RnJvbSBkZXYtcmV0dXJuLTEyNDY0My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgTm92IDI4IDE1OjMyOjM2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDY0My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBBOTg0NTE3NDlCCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMjggTm92IDIwMTcgMTU6MzI6MzYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0MDA0NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBOb3YgMjAxNyAxNTozMjozNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzk5NjQgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggTm92IDIwMTcgMTU6MzI6MzYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzOTk1MyBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IE5vdiAyMDE3IDE1OjMyOjM2IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDI4IE5vdiAyMDE3IDE1OjMyOjM2ICswMDAwClJlY2VpdmVkOiBmcm9tIEJBTEtJRUwgKHVua25vd24gWzE0MS4xMTUuNjYuMTldKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgNDRGMDgxQTAwOEQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDE1OjMyOjM0ICswMDAwIChVVEMpCkZyb206ICJFcmljIEJhcmJvbmkiIDxza3lnb0BhcGFjaGUub3JnPgpUbzogIidNYXZlbiBEZXZlbG9wZXJzIExpc3QnIiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClJlZmVyZW5jZXM6IDxDQVBMcFJRTDY9M3FrekFlPUZnUnJlaGVHeGZraXlkVXFCZHIteURDVm9HZVpUenJxYkFAbWFpbC5nbWFpbC5jb20+IDw3MjdkZDQxZC1mOTBkLTE5MzYtNGM1NC1iZDQzNzc3M2FhYTNAc3QuaW5mb3JtYXRpay50dS1kYXJtc3RhZHQuZGU+CkluLVJlcGx5LVRvOiA8NzI3ZGQ0MWQtZjkwZC0xOTM2LTRjNTQtYmQ0Mzc3NzNhYWEzQHN0LmluZm9ybWF0aWsudHUtZGFybXN0YWR0LmRlPgpTdWJqZWN0OiBSRTogW1ZPVEVdIFJlbGVhc2UgTWF2ZW4gSW5kZXhlciA2LjAuMApEYXRlOiBUdWUsIDI4IE5vdiAyMDE3IDE2OjMyOjM2ICswMTAwCk1lc3NhZ2UtSUQ6IDwwMDUyMDFkMzY4NWUkMWZmYjE3MDAkNWZmMTQ1MDAkQGFwYWNoZS5vcmc+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsKCWNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlClgtTWFpbGVyOiBNaWNyb3NvZnQgT3V0bG9vayAxNi4wClRocmVhZC1JbmRleDogQVFJZUVDV2FXVDJ6bU5pUTFTeW9MZGFSeW12UFhRRmZxLzFDb29tZGVaQT0KQ29udGVudC1MYW5ndWFnZTogZnIKCisxIChub24tYmluZGluZykKClRoZSBibG9ja2VkIHBsdWdpbiB3b3JrIHdlbGwgd2l0aCBpbmRleGVyIDYuMC4wCgpOb3Qgc3VyZSBpdCBpcyBpbXBvcnRhbnQ6ClRoZSBnZW5lcmF0ZWQgd2ViIHNpdGUgc2VlbXMgdG8gZm9sbG93IHRoZSBmb3JtZXIgdmVyc2lvbmluZyBzY2hlbWUuLgoKQmVzdCBSZWdhcmRzCkVyaWMKCi0tLS0tTWVzc2FnZSBkJ29yaWdpbmUtLS0tLQpEZSA6IEFuZHJlYXMgU2V3ZSBbbWFpbHRvOnNld2VAc3QuaW5mb3JtYXRpay50dS1kYXJtc3RhZHQuZGVdPTIwCkVudm95PUMzPUE5IDogbWFyZGkgMjggbm92ZW1icmUgMjAxNyAxNjoyNQo9QzM9ODAgOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpPYmpldCA6IFJlOiBbVk9URV0gUmVsZWFzZSBNYXZlbiBJbmRleGVyIDYuMC4wCgpUYW09QzM9QTFzIENzZXJ2ZW49QzM9QTFrIHdyb3RlOgo+IFtWT1RFXSBSZWxlYXNlIE1hdmVuIEluZGV4ZXIgNi4wLjAKClRlc3RlZCB0aGlzIGluIHR3byBhcHBsaWNhdGlvbnM6IGEgTWF2ZW4gcGx1Z2luIGFuZCBhIFNwcmluZyA9CmFwcGxpY2F0aW9uLiBJbiBib3RoIGNhc2VzLCBJIGV4cGVyaWVuY2VkIG5vIHRyb3VibGUuCgpUaGFua3MgZm9yIGRvaW5nIHRoZSByZWxlYXNlLCBUYW09QzM9QTFzLgoKQmVzdCB3aXNoZXMsCgpBbmRyZWFzCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDMwMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gT2N0IDIyIDA4OjIyOjI1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDMwMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAwM0M4NjEwMzE2Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMjIgT2N0IDIwMTcgMDg6MjI6MjUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2Nzg5MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMiBPY3QgMjAxNyAwODoyMjoyNCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjc3OTQgaW52b2tlZCBieSB1aWQgNTAwKTsgMjIgT2N0IDIwMTcgMDg6MjI6MjQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2Nzc4MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDIyIE9jdCAyMDE3IDA4OjIyOjI0IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDIyIE9jdCAyMDE3IDA4OjIyOjI0ICswMDAwClJlY2VpdmVkOiBmcm9tIFsxOTIuMTY4LjEuMTNdIChwM0U5RDJGQkEuZGlwMC50LWlwY29ubmVjdC5kZSBbNjIuMTU3LjQ3LjE4Nl0pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCBDRDhBMzFBMDQyRTsKCVN1biwgMjIgT2N0IDIwMTcgMDg6MjI6MjEgKzAwMDAgKFVUQykKU3ViamVjdDogUmU6IE1hdmVuIERvY2tlciBJbWFnZXMKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LAogTWFuZnJlZCBNb3NlciA8bWFuZnJlZEBzaW1wbGlnaWxpdHkuY29tPgpSZWZlcmVuY2VzOiA8Q0FKUnZGZG8tMzNaZnhpRnNKd2ppR1FKTVlUNW11MzFmcUQxZl91M0ZVUVRvSnY9VHVnQG1haWwuZ21haWwuY29tPgogPDE3MDgyODUueGJRUk9Jajk5WkBnaWdhPgogPENBK25Qbk14Q3V1cFA5NXZQalhtRXdfR3pkelVycjJDX1NmRkhEVGtvZXpBR0I9czFmUUBtYWlsLmdtYWlsLmNvbT4KIDwyNDczNDUyMy5hNkpzRThzZnNoQGdpZ2E+CiA8b3AueThnZms0eXVrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CiA8Q0FMSEZuNlBlS3YwUWstemNkQWlmdEZ5QkpZcVFiY2pmRmFlS3JHeFpLRERXaWhucnBBQG1haWwuZ21haWwuY29tPgogPDIwMTcxMDIyMDIyNDA3LkUzNzNGMjlDMDE0MEBkZDE3MzMyLmthc3NlcnZlci5jb20+CkZyb206IE1pY2hhZWwgT3NpcG92IDxtaWNoYWVsb0BhcGFjaGUub3JnPgpNZXNzYWdlLUlEOiA8MDFiODc2OGQtZjM5Ny00OTkxLWNiMzUtNGRiMjJlNjQ3NGNhQGFwYWNoZS5vcmc+CkRhdGU6IFN1biwgMjIgT2N0IDIwMTcgMTA6MjI6MTYgKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV09XNjQ7IHJ2OjUyLjApIEdlY2tvLzIwMTAwMTAxCiBUaHVuZGVyYmlyZC81Mi40LjAKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDwyMDE3MTAyMjAyMjQwNy5FMzczRjI5QzAxNDBAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tVVMKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdAoKQW0gMjAxNy0xMC0yMiB1bSAwNDoyNCBzY2hyaWViIE1hbmZyZWQgTW9zZXI6Cj4gRm9sbG93aW5nIHVwIG9uIHRoYXQgcmVtYXJrIGFuZCBteSBlYXJsaWVyIHJlbWFyayB0aGF0IHdlIHNob3VsZCBOT1QgbWFrZSB0aGlzIG9mZmljaWFsIC4uIGhlcmUgYXJlIG15IHJlbWFya3M6Cj4gCj4gLSBzbyBmYXIgdGhlIG9ubHkgYmluYXJpZXMgd2UgYXNzZW1ibGUgYW5kIGNhbGwgb2ZmaWNpYWwgYXJlIHRoZSB0YXIuZ3ogYW5kIHppcCBhcmNoaXZlcyAoYW5kIGV2ZW4gdGhhdCBpcyBhIGdyYXkgbGluZSBzaW5jZSBvZmZpY2lhbCB0aGVyZSBhcmUgb25seSBzb3VyY2VzIGZyb20gQXBhY2hlKQo+IC0gd2UgZG8gTk9UIHN1cHBvcnQgKGJ5IGNhbGxpbmcgdGhlbSBvZmZpY2lhbCkgYW55IG90aGVyIGJpbmFyaWVzIHN1Y2ggYXMKPiAgICAtIGxpbnV4IGRpc3RybyB2ZXJzaW9ucwo+ICAgIC0gb3N4IHBhY2thZ2UgdmVyc2lvbnMgKGJyZXdzLCBwb3J0cykKPiAgICAtIHdpbmRvd3MgcGFja2FnZXMKPiAgICAtIHNka21hbgo+ICAgIC0gYW5kIG1hbnkgb3RoZXJzCj4gLSB0aGUgY29tcGxleGl0eSBvZiB0aGUgZG9ja2VyIGltYWdlcyBpcyBncmVhdGVyIHRoYW4gYW55IG9mIHRoZSBhYm92ZSBzaW5jZSBpdCBpbmNsdWRlcyB0aG9zZSBmYWN0b3JzLi4KPiAKPiBIZXJlIGFyZSBhIGZldyBpc3N1ZXMgd2h5IEkgd291bGQgb2JqZWN0IHRvIHRoaXMgYmVpbmcgdGhlIG9mZmljaWFsIGltYWdlcwo+IAo+IC0gb25seSBvcGVuamRrIGFuZCBpYm0gamF2YSwgbm8gb3JhY2xlIGphdmEsIG5vIG90aGVycyBzdWNoIGFzIFp1bHUgb3Igd2hhdGV2ZXIKPiAtIGxpbWl0ZWQgb3Mgc2VsZWN0aW9uIChvbmx5IGFscGluZSBhbmQgZGViaWFuIGFuZCB3aW5kb3dzIGZyb20gd2hhdCBJIGNhbiB0ZWxsKSwgbm8gY2VudG9zLCBubyB1YnVudHUKPiAtIGJpbmFyaWVzIGFyZSBkb3dubG9hZCBmcm9tIGEgbWlycm9yIHJhdGhlciB0aGFuIHRoZSBhY3R1YWwgYXBhY2hlIHNlcnZlcnMgKGFsdGVybmF0aXZlbHkgbWF5YmUgY291bGQgdXNlIENlbnRyYWwpCj4gCj4gVGhlc2UgYWJvdmUgZmFjdG9ycyBpbWhvIHNob3cgdGhhdCB0aGVyZSBpcyBhIHNlbGVjdGlvbiB0aGF0IGhhcyBiZWVuIG1hZGUgYW5kIEkgZG8gbm90IHRoaW5rIHdlIGFzIHRoZSBBcGFjaGUgTWF2ZW4gcHJvamVjdCBzaG91bGQgbWFrZSB0aGlzIHNlbGVjdGlvbi4KPiAKPiBBcyBzdWNoIEkgd291bGQgc3VnZ2VzdCB0byBrZWVwIGl0IGFzIGlzLgo+IAo+IEFuIG9wZW4gc291cmNlIHByb2plY3QgZnJvbSBhbiBpbmRpdmlkdWFsIHRoYXQgcHJvdmlkZXMgTWF2ZW4gYmluYXJpZXMgb24gRG9ja2VyIGltYWdlcy4gSnVzdCBoYXBwZW5zIHRvIGJlIHRoZSBjYXNlIHRoYXQgdGhlIHNhbWUgcGVyc29uIGlzIGFsc28gYSBNYXZlbiBQTUMgKGdyZWF0IGJ0dyEpLgo+IAo+IElmIHdlIG1ha2UgdGhpcyBwYXJ0IG9mIHRoZSBvZmZpY2lhbGx5IHN1cHBsaWVkIGJpbmFyaWVzIHdlIGNvdWxkIGFsc28gdGhpbmsgYWJvdXQKPiAKPiAtIG1ha2luZyBiaW5hcmllcyBmb3IgdmFyaW91cyBMaW51eCBkaXN0cm9zIGluIHRoZSBmaXJzdCBwbGFjZSAodGhlbiB3ZSB3b3VsZG50IGV2ZW4gbmVlZCBkb2NrZXIgaW1hZ2VzIHNpbmNlIGl0IGNvdWxkIGJlIGEgb25lIGxpbmUgdG8gaW5zdGFsbCBhbiBvZmZpY2lhbCBNYXZlbiBkaXN0cm8gb24gdGhlbSkKPiAtIHN1cHBseWluZyBiaW5hcmllcyB0byBTREtNYW4sIHBvcnRzLCBicmV3LCBjaG9jb2xhdGV5IGFuZCBzbyBvbgo+IC0gcHVsbCBhbGwgbW9qb2hhdXMgcGx1Z2lucyBpbnRvIEFwYWNoZSAodGhleSBhcmUgbW9zdGx5IHRoZSBzYW1lIGNvbW1pdHRlcnMuLikKPiAtIHB1bGwgb3RoZXIgTWF2ZW4gcHJvamVjdHMgaW4gYXMgZGVzaXJlZAo+IAo+IFlvdSBzZWUgd2hlcmUgdGhpcyBsZWFkcy4uLiBhIExPVCBvZiB3b3JrLiBJbiBteSBvcGluaW9uIGFzIHRoZSBBcGFjaGUgTWF2ZW4gcHJvamVjdCB3ZSBzaG91bGQgZm9jdXMgb24ganVzdCB0aGF0LiBNYXZlbiBpdHNlbGYsIG91ciBjdXJyZW50IHBsdWdpbnMgYW5kIHJlbGF0ZWQgcHJvamVjdHMuIFdlIGFsbCBrbm93IHRoYXRzIGFscmVhZHkgbW9yZSB3b3JrIHRoYW4gd2UgY2FuIHJlYXNvbmFibHkgc2hvdWxkZXIuLiBJIHNlZSBubyByZWFzb24gdG8gYWRkIG1vcmUuCj4gCgoKUGVyZmVjdCwgeW91IHJlYWQgbXkgbWluZC4KKzIKCj4gQ2FybG9zIFNhbmNoZXogd3JvdGUgb24gMjAxNy0xMC0yMSAwMzo1OToKPiAKPj4gQlRXIHRoZXJlIGFyZSBwb3NzaWJseSBtb3JlIHRoYW4gb25lIGltYWdlIGJ1aWxkIGZvciBlYWNoIG1hdmVuIHZlcnNpb24uCj4+IEZvciBhIHZhcmlldHkgb2YgcmVhc29ucywgbGlrZSBzZWN1cml0eSBpc3N1ZXMgaW4gT1Mgb3IgdG8gdXBncmFkZSBKREsgb3IKPj4gYmVjYXVzZSBkb2NrZXIgcmVidWlsZHMgaXQsIHNvIGl0IGlzIG5vdCBmZWFzaWJsZSB0byB2b3RlIGVhY2ggb2YgdGhlbS4KPiAKPiAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiAKPiAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4NzAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IERlYyAyOCAxODo0MTo1NSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4NzAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgREQ1QzQxMEM5MAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDI4IERlYyAyMDE3IDE4OjQxOjU1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTI0NDIgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggRGVjIDIwMTcgMTg6NDE6NTAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDEyMzY1IGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IERlYyAyMDE3IDE4OjQxOjUwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTIzNTAgaW52b2tlZCBieSB1aWQgOTkpOyAyOCBEZWMgMjAxNyAxODo0MTo1MCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMjggRGVjIDIwMTcgMTg6NDE6NTAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBBRkY0RTE4MDU3RjsKCVRodSwgMjggRGVjIDIwMTcgMTg6NDE6NDkgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC43MDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuNzAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEN4V0pKdEh5MnA3SjsgVGh1LCAyOCBEZWMgMjAxNyAxODo0MTo0OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNS4xOF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA2RjE2ODVGMzlEOwoJVGh1LCAyOCBEZWMgMjAxNyAxODo0MTo0NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBLYXJsLUhlaW56cy1NYWNCb29rLVByby5sb2NhbCAoWzkyLjIwNC40Ni40N10pIGJ5IG1haWwuZ214LmNvbQogKG1yZ214MDAxIFsyMTIuMjI3LjE3LjE5MF0pIHdpdGggRVNNVFBTQSAoTmVtZXNpcykgaWQKIDBNZXk3Ti0xZUpPcHUxYWFQLTAwT1hIcjsgVGh1LCAyOCBEZWMgMjAxNyAxOTo0MTozOSArMDEwMApSZXBseS1UbzogaW5mb0Bzb2ViZXMuZGUKU3ViamVjdDogUmU6IHNlY29uZCBmaXggZm9yIE1ORy02MzMwIFtyZWdyZXNzaW9uXSBQYXJlbnRzIHJlbGF0aXZlUGF0aCBub3QKIHZlcmlmaWVkIGFueW1vcmUKVG86IFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4sCiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDYzogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KUmVmZXJlbmNlczogPG9wLnpieXVyem5ia2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgogPDcxMjk0NTg2LTg0MzItMDc2YS0xM2Y0LWVlY2MxMDlhNjEzZEBnbXguZGU+CiA8b3AuemJ5eDM4dG1rZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CiA8YTA2ZmZlNWEtYjU4Ni1hNzFlLTNkMGItNjk4M2ExNmQ1NGMyQGdteC5kZT4KIDxvcC56Ynl5OGxwbWtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KRnJvbTogS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+Ck1lc3NhZ2UtSUQ6IDwwMjYyNDQ2Zi0yMTgzLWVmYjEtNzM0MC0yM2MyYzg5NWY4NGFAZ214LmRlPgpEYXRlOiBUaHUsIDI4IERlYyAyMDE3IDE5OjQxOjM5ICswMTAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwLjExOyBydjo1Mi4wKQogR2Vja28vMjAxMDAxMDEgVGh1bmRlcmJpcmQvNTIuNS4wCk1JTUUtVmVyc2lvbjogMS4wCkluLVJlcGx5LVRvOiA8b3AuemJ5eThscG1rZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtODsgZm9ybWF0PWZsb3dlZApDb250ZW50LUxhbmd1YWdlOiBlbi1HQgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0ClgtUHJvdmFncy1JRDogVjAzOkswOmlEa1AzTHd3ZFQyeEozYzIxVDRZbmRSd2xWYzY4VlJ6RzJ6QnJiMWpOMEs0Rmszd0gwNQoga0w5RncyVkZzdCtNUEpCTmhLREJ1elQwazkvL0FPUGx2ZTR6aGtFYjQ1aTVvNWZIejYwY0ZxeHlVZHJ4NDhjMlRiYzg5TDMKIDdxZnFyOVVIRkVZRDJPK3FCM1lpVWRMdll6Szdad2g2MlhVa2RpSmt0cE1xZXVLM21BQUhIY29OQVJ3Um1BQi9EdWt3emJDCiBnbnZJMUo1V3J3N0VUekZ5a3pLdlE9PQpYLVVJLU91dC1GaWx0ZXJyZXN1bHRzOiBub3RqdW5rOjE7VjAxOkswOldHUWFUSzZ1YTFrPToySnNycFNKZFVmY3NOelRYUjJDMmVzCiBGK1MzcHJBdzJSS2VGazN0ZE5BVS9rUGRrTGtnV1R4ejJodndZL3owT2prNGVqcWE0bDhiM2JKL1BZQTBNWGxuQXNLb1hPSnhRCiB5US80UytqZUZuYTUvN3dJcUNkdmt5dDRjQ3hrTUJnMlQyZDMxSTdFY2VEWHg0Q2hZSWpvK0lKTWlRVUhJUDN2N2I3QUxtR0pKCiBndEhYSXM4VXBWQ0hKS2VYSmNJd05CbFo2ajRtZ3JCNklzMENIM1JSSXZkK1hRanU0TmM5b1FGMnd5b1JLZm8rZnB3cmVkRWJICiBWbkR3ZTM2QVo1UFFJVG8xT1lHVExVTVFBT2x0TW5rOGtwaWJtYnpXY2FhR1RPTkVnNUFEVVVCZnE4YmkwK2Z6bG0yUnhFWG5QCiBvWWZLR3FPQVFld2xTN2VaaGw0RUFHOWg4MWZqR3MzK3hJOEFwMUViY3d0Mm5mT1FTR1NlcUN2M2EwS1lqZlB4dlNsVjNVUW8rCiBUcjdmUzdjWWxsMlRkLzg0VEgwZENFSDRoTTZmUkNhQXkxNjk4Tlptb0R3dm9rellQWURTb21TazZHT2NsM1ZiTk80QXR0RzZwCiBKUC8wdU9PRjhqTUR5ZExZeGlQdnd0TGREVDdZTThGdWptU2dpUDhjZkxXeFFXMDJISmVjVDA5Rjk5ZEhTRU8rRm01SU5SblNxCiB6Z2VVTVBtQ2dXbU5adjJrUDNxcVRPYTVIazJTekR4L25HVGM3QzA5a3F2WGFRMjVmMFAxNFpNSmcyb2EvKzN3UG9wY1k1dGl3CiBpMFJVdVVZM0ZXQnlDTWtrTWhPK3VVSm5qQS9ydENVdlNYaGxGTzZMeGdubUorcWdJTlEwU3JUeGxLQXVPYmdqTVVGYTlaT2tWCiArNllOa1dUMlBqdWppeEtoYXRlN1RNY0pjdXlCbkc0c0Fnc3B2RG1QRlFqdEdLM2N1QnEzdWlaN04xdzFzeEVrYlVQTDRaVDdBCiBxdUdDaWF0S2wxSm1HQW5zV0ovQ0FMUmF3RVBlM1dvVVp6L0lySTBrUkdjT043aktnM21ZaWhLbTYrQkFraElNajRFRVg2bFByCiBYV1BuTFZDNnIyTUxpbENBNEdVeXcyZHJGTmpwZWc5WXpaRCtqdGV2MjRyZ3NQK0JtS2kyUUVoMVR1MEg0VVBTbVdadXNrNgoKSGkgUm9iZXJ0LAoKU28gSSBoYXZlIHJlc3RhcnRlZCB0aGUgbWFzdGVyIGJ1aWxkIGJhc2VkIG9uIHRoYXQgYW5kIHNlZSBpZiBldmVyeXRoaW5nIAppcyBmaW5lLi4od2hpY2ggSSBleHBlY3Qgb3RoZXJ3aXNlIHRoZSBicmFuY2ggc2hvdWxkIGhhdmUgc2hvd24gdGhlIHR3byAKdGVzdCBlcnJvcnMgYXMgd2VsbCkuLgoKS2luZCByZWdhcmRzCkthcmwgSGVpbnoKT24gMjgvMTIvMTcgMTk6MzQsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+IEhpIEthcmwgSGVpbnosCj4gCj4gQUZBSUsgeW91J3JlIGhpdHRpbmcgaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9JTkZSQS0xNTY4MQo+IAo+IHRoYW5rcywKPiBSb2JlcnQKPiAKPiBPbiBUaHUsIDI4IERlYyAyMDE3IDE5OjMxOjM1ICswMTAwLCBLYXJsIEhlaW56IE1hcmJhaXNlIAo+IDxraG1hcmJhaXNlQGdteC5kZT4gd3JvdGU6Cj4gCj4+IEhpIFJvYmVydCwKPj4KPj4gT24gMjgvMTIvMTcgMTk6MTAsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+Pj4gSGkgS2FybCBIZWlueiwKPj4+IMKganVzdCBsb29raW5nIGZvciBhICsxIGZyb20gYW5vdGhlciBjb21taXR0ZXIgYmVmb3JlIEkgbWVyZ2UgaXQgYmFjayAKPj4+IHRvIHRoZSBtYXN0ZXIuCj4+Cj4+IEFoIG9rLi4uU28gdGhlIGZpcnN0IHF1ZXN0aW9uIGlzIHdoeSBpcyB0aGUgbWFzdGVyIGF0IHRoZSBtb21lbnQgCj4+IHllbGxvdyB3aXRoIHR3byBmYWlsZWQgdGVzdHMgPyBEbyB5b3UgaGF2ZSBhbnkgY2x1ZSBhYm91dCB0aGF0ID8KPj4KPj4KPj4gS2luZCByZWdhcmRzCj4+IEthcmwgSGVpbnoKPj4KPj4KPj4KPj4KPj4KPj4+IMKgdGhhbmtzLAo+Pj4gUm9iZXJ0Cj4+PiDCoE9uIFRodSwgMjggRGVjIDIwMTcgMTg6NTU6MTUgKzAxMDAsIEthcmwgSGVpbnogTWFyYmFpc2UgCj4+PiA8a2htYXJiYWlzZUBnbXguZGU+IHdyb3RlOgo+Pj4KPj4+PiBIaSBSb2JlcnQsCj4+Pj4KPj4+Pgo+Pj4+IE9uIDI4LzEyLzE3IDE3OjU4LCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPj4+Pj4gSGksCj4+Pj4+IMKgTG9va2luZyBmb3Igc29tZW9uZSB0byBjb25maXJtIGFuZCBzZWNvbmQgTU5HLTYzMzBbMV0KPj4+Pgo+Pj4+IGhvdyBjYW4gSSBoZWxwIGhlcmU/Cj4+Pj4KPj4+PiBLYXJsIEhlaW56IE1hcmJhaXNlCj4+Pj4KPj4+Pj4gV2hpbGUgd29ya2luZyBvbiB0aGUgbWF2ZW4tcmVsZWFzZS1wbHVnaW4gSSBkaXNjb3ZlcmVkIHJlZ3Jlc3Npb24gCj4+Pj4+IGludHJvZHVjZWQgaW4gTWF2ZW4gMy41LjAgYnkgYSBjaGFuZ2UgdG8gdGhlIFJlYWN0b3JNb2RlbENhY2hlWzJdCj4+Pj4+IFRoaXMgb25seSBvY2N1cnMgd2hlbiBhIHBhcmVudCB3YXMgY2FjaGVkIGFuZCBhbm90aGVyIG1vZHVsZSBwb2ludHMgCj4+Pj4+IHRvIHRoaXMgcGFyZW50LCBldmVuIHRob3VnaCB0aGUgcmVsYXRpdmVQYXRoIGZvciB0aGlzIHBhcmVudCAKPj4+Pj4gcmVzdWx0cyBpbiBhIG5vbi1leGlzdGluZyBwb20gZmlsZS4KPj4+Pj4gQ2hhbmdlIGlzIGEgc2ltcGxlIG51bGwtY2hlY2tbM10KPj4+Pj4gUmVncmVzc2lvbiBjb3ZlcmVkIGJ5IGludGVncmF0aW9uIHRlc3RbNF0KPj4+Pj4gSmVua2lucyBpcyBoYXBweVs1XQo+Pj4+PiDCoHRoYW5rcywKPj4+Pj4gUm9iZXJ0Cj4+Pj4+IMKgWzFdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYzMzAKPj4+Pj4gWzJdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYwMzAKPj4+Pj4gWzNdIAo+Pj4+PiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL2NvbW1pdC80ZWI1NzQ3ZTgyMjlkMDIwMWI3MDcwNTJjZTdmOGFlMmZlMjRlZWMyIAo+Pj4+PiDCoFs0XSAKPj4+Pj4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9bWF2ZW4taW50ZWdyYXRpb24tdGVzdGluZy5naXQ7YT1jb21taXQ7aD1jZmQwY2M2MjljMmRkNDk2NTU0YzU5YzE2ODBmYjFkOTBiMTMxMWIzIAo+Pj4+PiDCoFs1XSAKPj4+Pj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy9qb2IvbWF2ZW4td2lwL2pvYi9tYXZlbi9qb2IvTU5HLTYzMzBfUmVsYXRpdmVQYXRoLyAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDAxMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgU2VwIDEzIDE3OjM0OjQ2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDAxMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFMUQxODFBMzZFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMTMgU2VwIDIwMTcgMTc6MzQ6NDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxOTUxOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMyBTZXAgMjAxNyAxNzozNDo0NiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTk0MTggaW52b2tlZCBieSB1aWQgNTAwKTsgMTMgU2VwIDIwMTcgMTc6MzQ6NDYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxOTQwMiBpbnZva2VkIGJ5IHVpZCA5OSk7IDEzIFNlcCAyMDE3IDE3OjM0OjQ2IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAxMyBTZXAgMjAxNyAxNzozNDo0NiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEFDMDJFMTgyQ0EyCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMyBTZXAgMjAxNyAxNzozNDo0NSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjcyMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC43MjEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W1JDVkRfSU5fRE5TV0xfTE9XPS0wLjcsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgempLYXM1YmdxRzBsIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJV2VkLCAxMyBTZXAgMjAxNyAxNzozNDo0NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNy4yMV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA5ODNDQzVGQkIwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMyBTZXAgMjAxNyAxNzozNDo0NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBLYXJsLUhlaW56cy1NYWNCb29rLVByby5mcml0ei5ib3ggKFsxNzguMTIuODguMTczXSkgYnkKIG1haWwuZ214LmNvbSAobXJnbXgxMDIgWzIxMi4yMjcuMTcuMTY4XSkgd2l0aCBFU01UUFNBIChOZW1lc2lzKSBpZAogME1TWTJxLTFlMXlmUTA4NUUtMDBSWWhVIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3CiAxOTozNDo0NCArMDIwMApSZXBseS1UbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogPT9VVEYtOD9RP1tDQU5DRUxdPWMyPWEwW1ZPVEVdX1JlbGVhc2VfQXBhY2hlX01hdmVuX0pNb2RfUGx1Z2luX3Zlcj89CiA9P1VURi04P1E/c2lvbl8zLjAuMC1hbHBoYS0xXz0yOEZpcnN0X1B1YmxpY19SZWxlYXNlPTI5Pz0KRnJvbTogS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8N2Y2Mjc3NjEtMjYyZi1lZDBkLTE0MzItZTJmMzA1YWFiYzdhQGdteC5kZT4KTWVzc2FnZS1JRDogPDA0NGM3MTVhLTFjNmItYjVhOC02MjFjLTU1YTkzNGVkZGZlMUBnbXguZGU+CkRhdGU6IFdlZCwgMTMgU2VwIDIwMTcgMTk6MzQ6NDMgKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi4yLjEKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDw3ZjYyNzc2MS0yNjJmLWVkMGQtMTQzMi1lMmYzMDVhYWJjN2FAZ214LmRlPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDpWeWVTdE45cGZCdFVFdzFPVUh3bk4rRnNreDNnR0E2VUkvdTN0S05sMU1veU1wN2xNZlYKIDVmOWxBK2M2NGE4Vk01M1Z6VzZvUUdaRStmdHZZTVQxbmIvaDI3NGk1WGFSbXJ6d3RXMjZzTDNFZjhFdTIvYVhQanc0OHovCiBmL0lvVldOUUVOT2JncE1kNlcvUE9HZTFxaVZJUHZiOFRuRStLUzU4Tm9tNGdCQzB6UlVRSE9xL1BHWWNUQnBpMmZkTUZoawogNXllcjROVnV5ZHdQbWhyajgwbTNnPT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDpGVzdZYTRiVTFnYz06dFlCSWYrTHNDYUk4R0JMZkpMWVhPbQogWGNvTkJMVnFCUE42eVFFdGdMMC9RTkdYK05WNVdINGx6MkNKcVBFNTZGUmRrRjFaeERxdlJuVnZETGlvTGFCQjJaZzFhYnpBeAogdWdwZFBnRGovVGRzcFZlYlZCbWV1QVV2RE4rcXYya2ZKQkJ6dVg2ZU1kQ3IzMTJFWCtqUnFpNjBmUytjUlByTUZoZUJ4NUxRSQogeFdFWHF3TDJ6SlprQTVtblJXQU1XWGgvN25oSHE0ZThBeGtjdG92UG9KTjI4MHMrRDh0UTJ4RUpyZ2ViUG9qcEIzNTJTcWl5OQogMHNmb3c0bDFOallkTUJ4cklwRDRKOG1ra2d5azN5QnRwVjlsR0VUTG1rNjRzUnorQm1LWWJCZE0wMDhmKzM2N05XVGFFTGlHSwogVmRzUnNhNlFLQTNUZy9aRGpRWDhCclRaSEF3R1UrcEtJakl6MHZveXorazU4LzhKOWR2RDBZMVg4YUhkcHZiemFqcjNDNHZvTQogNmJ1dElhd0tDQ1F5VnQ5ZVhsbk1FSEYyZStUYWVxd0ZxRUExbEtZdWFrN3ZSY1FKcnhmQld1Z0ludUNCbGpEY3VxdzVrRmM1TAogemhUazhMclZ3UUtyTFdNbm1HQnZYRkt3bEZicmdkWUllc3BlMmVIWC9CSjdNMFF1RjZmRWpxcjBBa2t5Y21TcEFUclIydjVYVQogTW9ENmxDY3BrQThRVit0c2V6MjJhV010Mm9PZWFMdDNmZTZ1cEFaVmJrQVRGRkdZOGxQSlRTY1NrSlZjWDRkbk1VSVQ4dllSLwogSmZkVTRGT1BGcnNFcTZ4TW1lVzFaWFgvVXhjV1ZYdUVLKy9RYVZueXNEemIwVHJSaDhzVkJuUTZrdEhOamU3dXB0aVlLSXJ4cgogdGFDWkU5aHMzTlFUamJBOEc1U3ltT1RLaW1OajA0WDFKNm5KdVNRbUdMQzlhSmttSlRSTUJwRDZCMnNwejkxblJ2Q0hKTjJaagogMi9jN1dyL2ViYjNqL0x1TzVyRURtUlpLcUFLdVM2S2VxSmxHUkxkeGpjYVRuVlVzNnhLUVhHUkNiWWZDNTZ4dzVxMXYrb2F6WAogSFA2Y2ExUU5xOHlMOHRGY05vOElxR2RnZ3Y2ZHJ0bndDM2lrRkh4VFZrNktkVXQ3cG89CgpJIHdpbGwgY2FuY2VsIHRoZSBWT1RFIGJhc2VkIG9uIGZvdW5kIGlzc3Vlcy4uCgpLaW5kIHJlZ2FyZHMKS2FybCBIZWlueiBNYXJiYWlzZQoKT24gMDkvMDkvMTcgMTU6NTIsIEthcmwgSGVpbnogTWFyYmFpc2Ugd3JvdGU6Cj4gSGksCj4gCj4gdGhpcyBpcyB0aGUgVk9URSBmb3IgdGhlIGZpcnN0IHB1YmxpYyByZWxlYXNlIGZvciBNYXZlbiBKTW9kIFBsdWdpbi4uLgo+IAo+IFdlIHNvbHZlZCAxIGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamVjdElkPTEyMzIxNDMzJnZlcnNpb249MTIzNDEzNjMgCj4gCj4gCj4gVGhlcmUgYXJlIGN1cnJlbnRseSBubyBpc3N1ZXMgbGVmdCBpbiBKSVJBLgo+IAo+IElmIHlvdSBoYXZlIGFueSBpc3N1ZSB0byByZXBvcnQgcGxlYXNlIG9wZW4gYW4gaXNzdWUgaW4gSklSQQo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9wcm9qZWN0cy9NSk1PRAo+IAo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzYxLwo+IAo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL21hdmVuLWptb2QtcGx1Z2luLzMuMC4wLWFscGhhLTEvbWF2ZW4tam1vZC1wbHVnaW4tMy4wLjAtYWxwaGEtMS1zb3VyY2UtcmVsZWFzZS56aXAgCj4gCj4gCj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gW05BTUUtT0ZdLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOiA4MDAyNzY3ZjZjZmZjN2JiYmNmNzZhOGU3ZjBjMTc5OWE0MmNhZjkzCj4gCj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWptb2QtcGx1Z2luLUxBVEVTVC8KPiAKPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+IAo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4gCj4gWyBdICsxCj4gWyBdICswCj4gWyBdIC0xCj4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQxMTctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IFNlcCAzMCAwOTowMzowNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxMTctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMEQ5NDAxMDcxOQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDMwIFNlcCAyMDE3IDA5OjAzOjA1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTM3MjAgaW52b2tlZCBieSB1aWQgNTAwKTsgMzAgU2VwIDIwMTcgMDk6MDM6MDQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUzMjAyIGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIFNlcCAyMDE3IDA5OjAzOjA0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTMxODUgaW52b2tlZCBieSB1aWQgOTkpOyAzMCBTZXAgMjAxNyAwOTowMzowNCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMzAgU2VwIDIwMTcgMDk6MDM6MDQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA3OTQ1MkMyRTU2OwoJU2F0LCAzMCBTZXAgMjAxNyAwOTowMzowMyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjIwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC4yMDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBnZThGZzhFSWR6Qjc7IFNhdCwgMzAgU2VwIDIwMTcgMDk6MDM6MDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbW91dC5nbXgubmV0IChtb3V0LmdteC5uZXQgWzIxMi4yMjcuMTUuMTldKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgREM2MUM1RkNDMTsKCVNhdCwgMzAgU2VwIDIwMTcgMDk6MDM6MDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gS2FybC1IZWluenMtTWFjQm9vay1Qcm8ubG9jYWwgKFs5Mi4yMDQuNjkuNTNdKSBieSBtYWlsLmdteC5jb20KIChtcmdteDAwMiBbMjEyLjIyNy4xNy4xOTBdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTTVMbXAtMWQ3amxwMVc5di0wMHpUNkw7IFNhdCwgMzAgU2VwIDIwMTcgMTE6MDI6NTQgKzAyMDAKUmVwbHktVG86IGluZm9Ac29lYmVzLmRlClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgRG94aWEgU2l0ZXRvb2xzIHZlcnNpb24gMS43LjUKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LAogUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8b3AueTY2cnpsbHprZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkZyb206IEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPgpNZXNzYWdlLUlEOiA8MDRkMzA5M2MtYmJiOS05YTJkLWEyMzYtNzJiMmQ2NDQ2MDE1QGdteC5kZT4KRGF0ZTogU2F0LCAzMCBTZXAgMjAxNyAxMDoyNDoxMCArMDIwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMTsgcnY6NTIuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzUyLjMuMApNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPG9wLnk2NnJ6bGx6a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDpMOER1OWgwTTZNNUlSQkE3dEV5NmhvN0hHa1owZkdYWDc3bmJyaHR0ZGdTNkhwbkJjNEkKIEFSd3NKZWt1M1pUa2xiME4za0xjdXIydGVTRlpSNVdZM1h2TVBkTXpSc1NLTW5mRkN2N1htRnlFNm1aUzBCRk1OcmhQSmVTCiBzM2VtbkNiRWdpM0VmOEF4WnUrMmZ5TXU2eFpuTU9VbXdoS2xYSXlaS2FBNlBDY0JEa2tURk1ab2JZUmRRZE14Z0RrZ1hWMAogL2J6WFBZNkJORlpFRU80SjJ4Z25nPT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDo3dHorZ1F5N2Jtaz06NVU3Y2U0UjhFdjdReFcvRjFIVXg1QgogdXVWUHY5TlozOVVqSXN3VVY2Y21YNjRudjY1SWhWd00xeTZVeUhOelRJQ0srdE1UZGV5RUx1VzZEeU5xcHNVQWtuUUd5YXdybgogOVg1Ym1SSE1kMkZiQ2JzUFg2aE1KN2U5WjFlNjJnTTR5cGx1U3ZhUXFmeG1SQlZZVld6NEd3djRReVlPL1g4czdZUVFjR1Y4ZgogekJRbTRrY0Z0NVI2dDc0c003N3JuTnBSN1JHdjVOVTI4UEUwR28wUTBkZnRuejU0Z21TWkZzWWFiVlFRMFpFY25sMW9OckFmbgogMXNlSmJGTloxbmZMbXVNb0RFREt6NDlObUtocU51ZVNidEFvMFVGd2RPR1RRU3VncnBMNHRPUGhvWmV6ZWx6UXdQVERUaFhTZgogN0tOTlhQdlRCdGhPNENqOWhSNzh6TnVWWnpzd3BKeXF2VWw2elU4N0Z2dGtKNTdHQ0FSSUZIV3VGVTFkTC9JZHFtM05VQXhkNQogQWg0ejQwMEFOYXVFd0hwMURjYXhma05pTnZLYmZvaXVwN3BqazYyNHVjcUVlU2ZJZDgzNFV2L0dMZmlKRWRKdUw1dzJ5eHZkNAogMFhvSUl4cUxWRmhZTktkcERrd28wWE1zc0lNMDNYNlF2VTFCR2krV2RwcDNhOG1xeTluWkFrd0xhUFNrWlZId3FiSjgyL2RzRwogQ1pSeExPVnJxeVF3c1Z5cndNMDVMcUU2YnczaUF2UGJoVE16MXc1NmREOW5obVBQcitlZlVWUFhwNVlPcCt1NjVSZk9ITlZZcwogWXBFd3dhdEYvTXFQeU5qU2lnUHVRaVpmUmlyRWZ5b1piUHlxOG5aSDlra0ZzNkhYQjhVSFNEV05Da0FPSGdvdEdtVXNjMEp1YwogZGVvdzR5R2plZGxGRkpIM2lMZ05RU0p3dDRyMkd1OEwvUWlOWGd2eTdYNHFLeEZXdE1rV0tQanlXTysvR1RXTHZpeGM0azNDYQoga3VZWWloZGpSN05Hdzl0TFlGQTNtYnlRUUIzTWpueWZITng4RVYvSlYzMHRsVkt2UjVzNmpsbmxoYzljK3grT0IrWGlVUHc2ZgogN0hJRk1XK044UWF0MGIwWUliMDJOOU8zd3N0eGFhTE10ZDc1aGZKZEs3V21xV2hVTW1zb0Y2VzgvYkpyeW1SeWxnWGNzL00KCkhpLAoKVGVzdGVkIHdpdGggc2V2ZXJhbCBNYXZlbiBWZXJzaW9ucyBhbmQgSkRLJ3Mgb24gTWFjIE9TOgoKamRrMS43LjBfNzkuamRrCiAgIGFwYWNoZS1tYXZlbi0zLjAuNQogICBhcGFjaGUtbWF2ZW4tMy4xLjEKICAgYXBhY2hlLW1hdmVuLTMuMi41CiAgIGFwYWNoZS1tYXZlbi0zLjMuMQogICBhcGFjaGUtbWF2ZW4tMy4zLjkKICAgYXBhY2hlLW1hdmVuLTMuNS4wCmpkazEuOC4wXzEzMS5qZGsKICAgYXBhY2hlLW1hdmVuLTMuMC41CiAgIGFwYWNoZS1tYXZlbi0zLjEuMQogICBhcGFjaGUtbWF2ZW4tMy4yLjUKICAgYXBhY2hlLW1hdmVuLTMuMy4xCiAgIGFwYWNoZS1tYXZlbi0zLjMuOQogICBhcGFjaGUtbWF2ZW4tMy41LjAKamRrMS44LjBfMTQ0LmpkawogICBhcGFjaGUtbWF2ZW4tMy4wLjUKICAgYXBhY2hlLW1hdmVuLTMuMS4xCiAgIGFwYWNoZS1tYXZlbi0zLjIuNQogICBhcGFjaGUtbWF2ZW4tMy4zLjEKICAgYXBhY2hlLW1hdmVuLTMuMy45CiAgIGFwYWNoZS1tYXZlbi0zLjUuMApqZGsxLjkuMF9lYSsxODEuamRrCiAgIGFwYWNoZS1tYXZlbi0zLjAuNQogICBhcGFjaGUtbWF2ZW4tMy4xLjEKICAgYXBhY2hlLW1hdmVuLTMuMi41CiAgIGFwYWNoZS1tYXZlbi0zLjMuMQogICBhcGFjaGUtbWF2ZW4tMy4zLjkKICAgYXBhY2hlLW1hdmVuLTMuNS4wCgp3aXRob3V0IGFueSBpc3N1ZS4uLgoKKzEgZnJvbSBtZS4uCgpLaW5kIHJlZ2FyZHMKS2FybCBIZWlueiBNYXJiYWlzZQoKT24gMjYvMDkvMTcgMjA6NTEsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+IEhpLAo+IAo+IFdlIHNvbHZlZCA1IGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamVjdElkPTEyMzE3MzIwJnZlcnNpb249MTIzMzg5ODImc3R5bGVOYW1lPVRleHQgCj4gCj4gCj4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPXByb2plY3QlMjAlM0QlMjAxMjMxNzMyMCUyMEFORCUyMHN0YXR1cyUyMCUzRCUyME9wZW4lMjBPUkRFUiUyMEJZJTIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQyAKPiAKPiAKPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3MC8KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzcwL29yZy9hcGFjaGUvbWF2ZW4vZG94aWEvZG94aWEtc2l0ZXRvb2xzLzEuNy41L2RveGlhLXNpdGV0b29scy0xLjcuNS1zb3VyY2UtcmVsZWFzZS56aXAgCj4gCj4gCj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gZG94aWEtc2l0ZXRvb2xzLTEuNy41LXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOiAKPiA5YWI4NzQxMjBiZDYwZjUzMmMxNjdhNDMwZDhlMDc3YzI5MTQwMTZkCj4gCj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9kb3hpYS9kb3hpYS1zaXRldG9vbHMtYXJjaGl2ZXMvZG94aWEtc2l0ZXRvb2xzLUxBVEVTVC8gCj4gCj4gCj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPiAKPiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+IAo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzODU3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBTZXAgIDIgMTI6MDY6MzYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzODU3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDJCOEI4MUFBMzcKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgMiBTZXAgMjAxNyAxMjowNjozNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE5MjI0IGludm9rZWQgYnkgdWlkIDUwMCk7IDIgU2VwIDIwMTcgMTI6MDY6MzUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE5MTQ5IGludm9rZWQgYnkgdWlkIDUwMCk7IDIgU2VwIDIwMTcgMTI6MDY6MzQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxOTEzMyBpbnZva2VkIGJ5IHVpZCA5OSk7IDIgU2VwIDIwMTcgMTI6MDY6MzQgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQ0LXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDAyIFNlcCAyMDE3IDEyOjA2OjM0ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQ0LXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kNC11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQzlDRjlDMjI3QjsKCVNhdCwgIDIgU2VwIDIwMTcgMTI6MDY6MzMgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQ0LXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjI3OQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjI3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDQtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjExXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBaYkU3RFpDbF95QmM7IFNhdCwgIDIgU2VwIDIwMTcgMTI6MDY6MjcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbW91dC5nbXgubmV0IChtb3V0LmdteC5uZXQgWzIxMi4yMjcuMTUuMTVdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNEQxODI2MENFNjsKCVNhdCwgIDIgU2VwIDIwMTcgMTI6MDY6MjcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gS2FybC1IZWluenMtTWFjQm9vay1Qcm8ubG9jYWwgKFsyMTcuMjQ3LjE2LjIwOF0pIGJ5CiBtYWlsLmdteC5jb20gKG1yZ214MDAxIFsyMTIuMjI3LjE3LjE5MF0pIHdpdGggRVNNVFBTQSAoTmVtZXNpcykgaWQKIDBNNEdSdi0xZFdBZlAzR2RmLTAwcnJGODsgU2F0LCAwMiBTZXAgMjAxNyAxNDowNjoyMCArMDIwMApSZXBseS1UbzogaW5mb0Bzb2ViZXMuZGUKU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBDb21waWxlciBQbHVnaW4gdmVyc2lvbiAzLjcuMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sCiBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+ClJlZmVyZW5jZXM6IDxvcC55NXYzZDZxMmtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KIDw2MDhkMzNkMy02NjViLTM4NGQtYmVjMi1iNmVhMzhiY2VjZDhAZ214LmRlPgogPG9wLnk1eHJraWM4a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpGcm9tOiBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4KTWVzc2FnZS1JRDogPDA2MTgyZTA2LWYyYTctMWFjZS05OWIzLTVhZmUwM2FiM2ZmM0BnbXguZGU+CkRhdGU6IFNhdCwgMiBTZXAgMjAxNyAxNDowNjoyMCArMDIwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMTsgcnY6NTIuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzUyLjIuMQpNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPG9wLnk1eHJraWM4a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDpCQURsSVIvcTRTSkFZc1V1RS9aTFliYlZPR1dZRzBrUEwxaFRjY0Y0SDgrcUpCcDNHTlAKIGxhdlpVTDYzYk4zSkxlVjRDUWJJeTdweXVHK0ZZNFZGK1cwUEFiOFFwQk9GaGxrZG5GMC9YMGg5Y2FJVS9neUs2cTk3YmxUCiByTEw3aDluMDB0blRCaTg3K2ZBZU9KYUhEMzdQRGxSOUZ1NVlXdk9uWktJciswY1d5RmVQUHZHalgrYzZaTXl0aXhlQnkvZgogeUdVWG5DQlp0ZGVNTEhtTU5WaUZBPT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDpBcTNVM3U3SFZlRT06bFpOWU9yQi95NEsyb2V6UXV6QVBBcgogcGJkOVFPYVJBRDk1NEtVQlU5bmpzbFZiUGg1RUlOMnJORDZjTHFUL3RYL2Jkb2dhci9qY1VJY3dlU28rQk1XY3BWQ1k2blRPdQogcG1HM281Y2Z0UWVvMGllZnZ2bGhYMU1ib0JKN2orQjg5M1l0bkVNYWhFeWgxcnNHMkJCcnhoSnpxSys3V1hWWWNTWk0zbXZuQwogd243OGwyend2V2orZUtjL21hTk00akM2N2MxaUYwQUt3ZC85dFJFOEl5c2NtdDJiaWRkL3BjYitVYmJtMitERFhFUmxPY1V3Ywogc1lyWmdSSnNyMVdwY1BSWTdGRVU3cW1FSW8wK3Nzc3pDZFR3Si9sMUdGdzZpbm9OcTFWMjRwbmxmTFQ2d3lyRElqYmZZcFBVeQogNDVJTG42REQ1bjZadi9WTWRpcXRBSEh2K25vL2hhUkZHajcrNEliQUJIaGJuZ1JGUFB6K3BKSVNvcWVPZXZhVHRHNUF5ZFMyOQogek1sNDVqTnF1cGNVNmxrQ2lQL3FXS0I2QTU4MmxmV2Z2cWtTb0ZPZmExUGM4RTkzZFMxUFl5Z21ocUdjRjgrRVdRcGVUSGY0bQogWHkxNnByTGlMdEJ4MFlnaUhiTFRxTlhxS3V3c2sxd2pmYTZxVngycHVqTGpSOVkrQVRZNm1WMVhaVHJpZnI0TjdmL3FDcTNyYgogR1lqVnNRMWVJRTZuV0xvOVFySU1kZ3pLZERzQkdiMGZmQkFVZ0ROeDF0aHdhUlM1TTRNanpJR1lMS1RWa0NTM1h4SGlSZEtEaAogVVpIOVJ5Wjlud0ZWOEpBb2lFTTJIcCtGR3NyQVRQUUlMWExUVitsSTJzNDFoTCtRVU1vNmZYWHg3OHRVcXg5TXh0anNtTzBqZwogRnR1N1phOHdnTE1iM1V5WTNrSURLU2ZhZEdOWWFNNCs2dDJBUzdhSzErblpLYzdJVEhZcC9IZ3JxK1dncEQ1K0tENld0MGRoTwogenQwNXdHTTE2NHRDNlp0b1ZjSU1WOWRjNlJ1OEM1cEI0VVpQNzYvcUVLTU9XMTQyS1RjQXo1Y0lZblRSbzR2V0xGZzE1NEYxRwogUXU4SjU2Qmt1NkJ0MFJQdUZNUXdZZW9NSjhIdStETUlTNEVCcHoyb3UzVWIyMVlWdmc9CgpIaSBSb2JlcnQsCgpPbiAwMi8wOS8xNyAxMzozMCwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4gSGkgS2FybCBIZWlueiwKPiAKPiB0aGlzIGlzIGEgcHJvYmxlbSB3aXRoIHRoZSBlcnJvci1wcm9uZS1jb21waWxlclsxXSwgYSBzcGVjaWZpYyAKPiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgY29tcGlsZXItYXBpIGFuZCBhbHNvIHdoZXJlIHRoaXMgbXVzdCBiZSBmaXhlZC4KPiBZb3UgbWlnaHQgd29uZGVyIGlmIGl0IHNob3VsZCBiZSB0ZXN0ZWQgaGVyZSwgYnV0IG5vdyB3ZSBhcmUgYXQgbGVhc3QgCj4gYXdhcmUgdGhhdCBjdXJyZW50IGVycm9yLXByb25lLWNvbXBpbGVyIGlzIG5vdCBKYXZhOSBjb21wYXRpYmxlLiBJdCAKPiBzaG91bGQgbm90IGJlIGEgYmxvY2tlciBmb3IgdGhlIG1hdmVuLWNvbXBpbGVyLXBsdWdpbiBpdHNlbGYuCgpPayB0aGUgcXVlc3Rpb24gaXMgd2hhdCBpcyBleGFjdGx5IHRoZSBwdXJwb3NlIGZvciB0aGlzIAplcnJvci1wcm9uZS1jb21waWxlciBwYXJ0IGluIE1hdmVuLUNvbXBpbGVyLVBsdWdpbiAocGxleHVzIGNvbXBpbGVyKSBhbmQgCndoYXQga2luZCBvZiBwdXJwb3NlIGRvZXMgaXQgZnVsZmlsbD8KCkFwYXJ0IGZyb20gdGhhdDogKzEgZnJvbSBtZSBmb3IgcmVsZWFzaW5nIG1hdmVuLWNvbXBpbGVyLXBsdWdpbi4uLml0IApmaXhlcyBvdGhlciBpc3N1ZXMuLi4KCktpbmQgcmVnYXJkcwpLYXJsIEhlaW56IE1hcmJhaXNlCgo+IAo+IHRoYW5rLAo+IFJvYmVydAo+IAo+IFsxXSAKPiBodHRwczovL2dpdGh1Yi5jb20vY29kZWhhdXMtcGxleHVzL3BsZXh1cy1jb21waWxlci90cmVlL21hc3Rlci9wbGV4dXMtY29tcGlsZXJzL3BsZXh1cy1jb21waWxlci1qYXZhYy1lcnJvcnByb25lIAo+IAo+IAo+IAo+IE9uIFNhdCwgMDIgU2VwIDIwMTcgMTM6MjM6NTAgKzAyMDAsIEthcmwgSGVpbnogTWFyYmFpc2UgCj4gPGtobWFyYmFpc2VAZ214LmRlPiB3cm90ZToKPiAKPj4gSGksCj4+Cj4+IEkgaGF2ZSB0ZXN0ZWQgdGhlIGZvbGxvd2luZyBjb21iaW5hdGlvbnM6Cj4+Cj4+IGpkazEuNy4wXzc5Lmpkawo+PiAgICBhcGFjaGUtbWF2ZW4tMy4wLjUKPj4gICAgYXBhY2hlLW1hdmVuLTMuMS4xCj4+ICAgIGFwYWNoZS1tYXZlbi0zLjIuNQo+PiAgICBhcGFjaGUtbWF2ZW4tMy4zLjEKPj4gICAgYXBhY2hlLW1hdmVuLTMuMy45Cj4+ICAgIGFwYWNoZS1tYXZlbi0zLjUuMAo+PiBqZGsxLjguMF8xMzEuamRrCj4+ICAgIGFwYWNoZS1tYXZlbi0zLjAuNQo+PiAgICBhcGFjaGUtbWF2ZW4tMy4xLjEKPj4gICAgYXBhY2hlLW1hdmVuLTMuMi41Cj4+ICAgIGFwYWNoZS1tYXZlbi0zLjMuMQo+PiAgICBhcGFjaGUtbWF2ZW4tMy4zLjkKPj4gICAgYXBhY2hlLW1hdmVuLTMuNS4wCj4+IGpkazEuOC4wXzE0NC5qZGsKPj4gICAgYXBhY2hlLW1hdmVuLTMuMC41Cj4+ICAgIGFwYWNoZS1tYXZlbi0zLjEuMQo+PiAgICBhcGFjaGUtbWF2ZW4tMy4yLjUKPj4gICAgYXBhY2hlLW1hdmVuLTMuMy4xCj4+ICAgIGFwYWNoZS1tYXZlbi0zLjMuOQo+PiAgICBhcGFjaGUtbWF2ZW4tMy41LjAKPj4gamRrMS45LjBfZWErMTgxLmpkawo+PiAgICBhcGFjaGUtbWF2ZW4tMy4wLjUgRkFJTEVEISEKPj4gICAgYXBhY2hlLW1hdmVuLTMuMS4xIEZBSUxFRCEhCj4+ICAgIGFwYWNoZS1tYXZlbi0zLjIuNSBGQUlMRUQhIQo+PiAgICBhcGFjaGUtbWF2ZW4tMy4zLjEgRkFJTEVEISEKPj4gICAgYXBhY2hlLW1hdmVuLTMuMy45IEZBSUxFRCEhCj4+ICAgIGFwYWNoZS1tYXZlbi0zLjUuMCBGQUlMRUQhIQo+Pgo+Pgo+PiBCdXQgdGhlIEpESzEuOS4wX2VhKzE4MSBoYXZlIHNob3cgdGhlIGZvbGxvd2luZyByZXN1bHQgKGZvciBhbGwgTWF2ZW4gCj4+IHZlcnNpb25zKToKPj4KPj4gICAgICAgICBbRVJST1JdIEZhaWxlZCB0byBleGVjdXRlIGdvYWwgCj4+IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczptYXZlbi1jb21waWxlci1wbHVnaW46My43LjA6Y29tcGlsZSAKPj4gKGRlZmF1bHQtY29tcGlsZSkgb24gcHJvamVjdCBlcnJvci1wcm9uZS1jb21waWxlcjogRmF0YWwgZXJyb3IgCj4+IGNvbXBpbGluZzogQ29tcGlsZXJFeGNlcHRpb246IEludm9jYXRpb25UYXJnZXRFeGNlcHRpb246IAo+PiBqYXZhLm5pby5maWxlLk5vdERpcmVjdG9yeUV4Y2VwdGlvbjogCj4+IC9MaWJyYXJ5L0phdmEvSmF2YVZpcnR1YWxNYWNoaW5lcy9qZGsxLjkuMF9lYSsxODEuamRrL0NvbnRlbnRzL0hvbWUvbGliL21vZHVsZXMgCj4+IC0+IFtIZWxwIDFdCj4+ICAgICAgICAgb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuTGlmZWN5Y2xlRXhlY3V0aW9uRXhjZXB0aW9uOiBGYWlsZWQgCj4+IHRvIGV4ZWN1dGUgZ29hbCAKPj4gb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zOm1hdmVuLWNvbXBpbGVyLXBsdWdpbjozLjcuMDpjb21waWxlIAo+PiAoZGVmYXVsdC1jb21waWxlKSBvbiBwcm9qZWN0IGVycm9yLXByb25lLWNvbXBpbGVyOiBGYXRhbCBlcnJvciBjb21waWxpbmcKPj4gICAgICAgICAgICAgYXQgCj4+IG9yZy5hcGFjaGUubWF2ZW4ubGlmZWN5Y2xlLmludGVybmFsLk1vam9FeGVjdXRvci5leGVjdXRlKE1vam9FeGVjdXRvci5qYXZhOjIxNykgCj4+Cj4+ICAgICAgICAgICAgIGF0IAo+PiBvcmcuYXBhY2hlLm1hdmVuLmxpZmVjeWNsZS5pbnRlcm5hbC5Nb2pvRXhlY3V0b3IuZXhlY3V0ZShNb2pvRXhlY3V0b3IuamF2YToxNTMpIAo+Pgo+PiAgICAgICAgICAgICBhdCAKPj4gb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuaW50ZXJuYWwuTW9qb0V4ZWN1dG9yLmV4ZWN1dGUoTW9qb0V4ZWN1dG9yLmphdmE6MTQ1KSAKPj4KPj4gICAgICAgICAgICAgYXQgCj4+IG9yZy5hcGFjaGUubWF2ZW4ubGlmZWN5Y2xlLmludGVybmFsLkxpZmVjeWNsZU1vZHVsZUJ1aWxkZXIuYnVpbGRQcm9qZWN0KExpZmVjeWNsZU1vZHVsZUJ1aWxkZXIuamF2YTo4NCkgCj4+Cj4+ICAgICAgICAgICAgIGF0IAo+PiBvcmcuYXBhY2hlLm1hdmVuLmxpZmVjeWNsZS5pbnRlcm5hbC5MaWZlY3ljbGVNb2R1bGVCdWlsZGVyLmJ1aWxkUHJvamVjdChMaWZlY3ljbGVNb2R1bGVCdWlsZGVyLmphdmE6NTkpIAo+Pgo+PiAgICAgICAgICAgICBhdCAKPj4gb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuaW50ZXJuYWwuTGlmZWN5Y2xlU3RhcnRlci5zaW5nbGVUaHJlYWRlZEJ1aWxkKExpZmVjeWNsZVN0YXJ0ZXIuamF2YToxODMpIAo+Pgo+PiAgICAgICAgICAgICBhdCAKPj4gb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuaW50ZXJuYWwuTGlmZWN5Y2xlU3RhcnRlci5leGVjdXRlKExpZmVjeWNsZVN0YXJ0ZXIuamF2YToxNjEpIAo+Pgo+PiAgICAgICAgICAgICBhdCAKPj4gb3JnLmFwYWNoZS5tYXZlbi5EZWZhdWx0TWF2ZW4uZG9FeGVjdXRlKERlZmF1bHRNYXZlbi5qYXZhOjMyMCkKPj4gICAgICAgICAgICAgYXQgCj4+IG9yZy5hcGFjaGUubWF2ZW4uRGVmYXVsdE1hdmVuLmV4ZWN1dGUoRGVmYXVsdE1hdmVuLmphdmE6MTU2KQo+PiAgICAgICAgICAgICBhdCBvcmcuYXBhY2hlLm1hdmVuLmNsaS5NYXZlbkNsaS5leGVjdXRlKE1hdmVuQ2xpLmphdmE6NTM3KQo+PiAgICAgICAgICAgICBhdCBvcmcuYXBhY2hlLm1hdmVuLmNsaS5NYXZlbkNsaS5kb01haW4oTWF2ZW5DbGkuamF2YToxOTYpCj4+ICAgICAgICAgICAgIGF0IG9yZy5hcGFjaGUubWF2ZW4uY2xpLk1hdmVuQ2xpLm1haW4oTWF2ZW5DbGkuamF2YToxNDEpCj4+ICAgICAgICAgICAgIGF0IAo+PiBqYXZhLmJhc2UvamRrLmludGVybmFsLnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZTAoTmF0aXZlIAo+PiBNZXRob2QpCj4+ICAgICAgICAgICAgIGF0IAo+PiBqYXZhLmJhc2UvamRrLmludGVybmFsLnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShOYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuamF2YTo2MikgCj4+Cj4+ICAgICAgICAgICAgIGF0IAo+PiBqYXZhLmJhc2UvamRrLmludGVybmFsLnJlZmxlY3QuRGVsZWdhdGluZ01ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoRGVsZWdhdGluZ01ldGhvZEFjY2Vzc29ySW1wbC5qYXZhOjQzKSAKPj4KPj4gICAgICAgICAgICAgYXQgamF2YS5iYXNlL2phdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZva2UoTWV0aG9kLmphdmE6NTY0KQo+PiAgICAgICAgICAgICBhdCAKPj4gb3JnLmNvZGVoYXVzLnBsZXh1cy5jbGFzc3dvcmxkcy5sYXVuY2hlci5MYXVuY2hlci5sYXVuY2hFbmhhbmNlZChMYXVuY2hlci5qYXZhOjI5MCkgCj4+Cj4+ICAgICAgICAgICAgIGF0IAo+PiBvcmcuY29kZWhhdXMucGxleHVzLmNsYXNzd29ybGRzLmxhdW5jaGVyLkxhdW5jaGVyLmxhdW5jaChMYXVuY2hlci5qYXZhOjIzMCkgCj4+Cj4+ICAgICAgICAgICAgIGF0IAo+PiBvcmcuY29kZWhhdXMucGxleHVzLmNsYXNzd29ybGRzLmxhdW5jaGVyLkxhdW5jaGVyLm1haW5XaXRoRXhpdENvZGUoTGF1bmNoZXIuamF2YTo0MDkpIAo+Pgo+PiAgICAgICAgICAgICBhdCAKPj4gb3JnLmNvZGVoYXVzLnBsZXh1cy5jbGFzc3dvcmxkcy5sYXVuY2hlci5MYXVuY2hlci5tYWluKExhdW5jaGVyLmphdmE6MzUyKQo+PiAgICAgICAgIENhdXNlZCBieTogb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW4uTW9qb0V4ZWN1dGlvbkV4Y2VwdGlvbjogCj4+IEZhdGFsIGVycm9yIGNvbXBpbGluZwo+PiAgICAgICAgICAgICBhdCAKPj4gb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW4uY29tcGlsZXIuQWJzdHJhY3RDb21waWxlck1vam8uZXhlY3V0ZShBYnN0cmFjdENvbXBpbGVyTW9qby5qYXZhOjEwODYpIAo+Pgo+PiAgICAgICAgICAgICBhdCAKPj4gb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW4uY29tcGlsZXIuQ29tcGlsZXJNb2pvLmV4ZWN1dGUoQ29tcGlsZXJNb2pvLmphdmE6MTY4KSAKPj4KPj4gICAgICAgICAgICAgYXQgCj4+IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLkRlZmF1bHRCdWlsZFBsdWdpbk1hbmFnZXIuZXhlY3V0ZU1vam8oRGVmYXVsdEJ1aWxkUGx1Z2luTWFuYWdlci5qYXZhOjEwMSkgCj4+Cj4+ICAgICAgICAgICAgIGF0IAo+PiBvcmcuYXBhY2hlLm1hdmVuLmxpZmVjeWNsZS5pbnRlcm5hbC5Nb2pvRXhlY3V0b3IuZXhlY3V0ZShNb2pvRXhlY3V0b3IuamF2YToyMDkpIAo+Pgo+PiAgICAgICAgICAgICAuLi4gMTkgbW9yZQo+PiAgICAgICAgIENhdXNlZCBieTogb3JnLmNvZGVoYXVzLnBsZXh1cy5jb21waWxlci5Db21waWxlckV4Y2VwdGlvbgo+PiAgICAgICAgICAgICBhdCAKPj4gb3JnLmNvZGVoYXVzLnBsZXh1cy5jb21waWxlci5qYXZhYy5lcnJvcnByb25lLkphdmFjQ29tcGlsZXJXaXRoRXJyb3JQcm9uZS5wZXJmb3JtQ29tcGlsZShKYXZhY0NvbXBpbGVyV2l0aEVycm9yUHJvbmUuamF2YTo5NSkgCj4+Cj4+ICAgICAgICAgICAgIGF0IAo+PiBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbi5jb21waWxlci5BYnN0cmFjdENvbXBpbGVyTW9qby5leGVjdXRlKEFic3RyYWN0Q29tcGlsZXJNb2pvLmphdmE6MTA3NSkgCj4+Cj4+ICAgICAgICAgICAgIC4uLiAyMiBtb3JlCj4+ICAgICAgICAgQ2F1c2VkIGJ5OiBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uCj4+ICAgICAgICAgICAgIGF0IAo+PiBqYXZhLmJhc2UvamRrLmludGVybmFsLnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZTAoTmF0aXZlIAo+PiBNZXRob2QpCj4+ICAgICAgICAgICAgIGF0IAo+PiBqYXZhLmJhc2UvamRrLmludGVybmFsLnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShOYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuamF2YTo2MikgCj4+Cj4+ICAgICAgICAgICAgIGF0IAo+PiBqYXZhLmJhc2UvamRrLmludGVybmFsLnJlZmxlY3QuRGVsZWdhdGluZ01ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoRGVsZWdhdGluZ01ldGhvZEFjY2Vzc29ySW1wbC5qYXZhOjQzKSAKPj4KPj4gICAgICAgICAgICAgYXQgamF2YS5iYXNlL2phdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZva2UoTWV0aG9kLmphdmE6NTY0KQo+PiAgICAgICAgICAgICBhdCAKPj4gb3JnLmNvZGVoYXVzLnBsZXh1cy5jb21waWxlci5qYXZhYy5lcnJvcnByb25lLkphdmFjQ29tcGlsZXJXaXRoRXJyb3JQcm9uZS5wZXJmb3JtQ29tcGlsZShKYXZhY0NvbXBpbGVyV2l0aEVycm9yUHJvbmUuamF2YTo5MSkgCj4+Cj4+ICAgICAgICAgICAgIC4uLiAyMyBtb3JlCj4+ICAgICAgICAgQ2F1c2VkIGJ5OiBqYXZhLmlvLlVuY2hlY2tlZElPRXhjZXB0aW9uOiAKPj4gamF2YS5uaW8uZmlsZS5Ob3REaXJlY3RvcnlFeGNlcHRpb246IAo+PiAvTGlicmFyeS9KYXZhL0phdmFWaXJ0dWFsTWFjaGluZXMvamRrMS45LjBfZWErMTgxLmpkay9Db250ZW50cy9Ib21lL2xpYi9tb2R1bGVzIAo+Pgo+PiAgICAgICAgICAgICBhdCAKPj4gY29tLnN1bi50b29scy5qYXZhYy5maWxlLkxvY2F0aW9ucyRCb290Q2xhc3NQYXRoTG9jYXRpb25IYW5kbGVyLmxhenkoTG9jYXRpb25zLmphdmE6NzI1KSAKPj4KPj4gICAgICAgICAgICAgYXQgCj4+IGNvbS5zdW4udG9vbHMuamF2YWMuZmlsZS5Mb2NhdGlvbnMkQm9vdENsYXNzUGF0aExvY2F0aW9uSGFuZGxlci5pc0RlZmF1bHQoTG9jYXRpb25zLmphdmE6NTU5KSAKPj4KPj4gICAgICAgICAgICAgYXQgCj4+IGNvbS5zdW4udG9vbHMuamF2YWMuZmlsZS5Mb2NhdGlvbnMuaXNEZWZhdWx0Qm9vdENsYXNzUGF0aChMb2NhdGlvbnMuamF2YToxMjkpIAo+Pgo+PiAgICAgICAgICAgICBhdCAKPj4gY29tLnN1bi50b29scy5qYXZhYy5maWxlLkJhc2VGaWxlTWFuYWdlci5pc0RlZmF1bHRCb290Q2xhc3NQYXRoKEJhc2VGaWxlTWFuYWdlci5qYXZhOjE0OSkgCj4+Cj4+ICAgICAgICAgICAgIGF0IAo+PiBjb20uc3VuLnRvb2xzLmphdmFjLm1haW4uQXJndW1lbnRzLnZhbGlkYXRlKEFyZ3VtZW50cy5qYXZhOjQxMSkKPj4gICAgICAgICAgICAgYXQgY29tLnN1bi50b29scy5qYXZhYy5tYWluLk1haW4uY29tcGlsZShNYWluLmphdmE6MjE4KQo+PiAgICAgICAgICAgICBhdCAKPj4gY29tLmdvb2dsZS5lcnJvcnByb25lLkJhc2VFcnJvclByb25lQ29tcGlsZXIucnVuKEJhc2VFcnJvclByb25lQ29tcGlsZXIuamF2YToxODcpIAo+Pgo+PiAgICAgICAgICAgICBhdCAKPj4gY29tLmdvb2dsZS5lcnJvcnByb25lLkJhc2VFcnJvclByb25lQ29tcGlsZXIucnVuKEJhc2VFcnJvclByb25lQ29tcGlsZXIuamF2YTo5OCkgCj4+Cj4+ICAgICAgICAgICAgIGF0IAo+PiBjb20uZ29vZ2xlLmVycm9ycHJvbmUuRXJyb3JQcm9uZUNvbXBpbGVyLnJ1bihFcnJvclByb25lQ29tcGlsZXIuamF2YToxMjgpCj4+ICAgICAgICAgICAgIGF0IAo+PiBvcmcuY29kZWhhdXMucGxleHVzLmNvbXBpbGVyLmphdmFjLmVycm9ycHJvbmUuSmF2YWNDb21waWxlcldpdGhFcnJvclByb25lJENvbXBpbGVySW52b2tlci5jb21waWxlKEphdmFjQ29tcGlsZXJXaXRoRXJyb3JQcm9uZS5qYXZhOjIyMikgCj4+Cj4+ICAgICAgICAgICAgIC4uLiAyOCBtb3JlCj4+ICAgICAgICAgQ2F1c2VkIGJ5OiBqYXZhLm5pby5maWxlLk5vdERpcmVjdG9yeUV4Y2VwdGlvbjogCj4+IC9MaWJyYXJ5L0phdmEvSmF2YVZpcnR1YWxNYWNoaW5lcy9qZGsxLjkuMF9lYSsxODEuamRrL0NvbnRlbnRzL0hvbWUvbGliL21vZHVsZXMgCj4+Cj4+ICAgICAgICAgICAgIGF0IAo+PiBqYXZhLmJhc2Uvc3VuLm5pby5mcy5Vbml4RmlsZVN5c3RlbVByb3ZpZGVyLm5ld0RpcmVjdG9yeVN0cmVhbShVbml4RmlsZVN5c3RlbVByb3ZpZGVyLmphdmE6NDA3KSAKPj4KPj4gICAgICAgICAgICAgYXQgCj4+IGphdmEuYmFzZS9qYXZhLm5pby5maWxlLkZpbGVzLm5ld0RpcmVjdG9yeVN0cmVhbShGaWxlcy5qYXZhOjQ2NSkKPj4gICAgICAgICAgICAgYXQgamF2YS5iYXNlL2phdmEubmlvLmZpbGUuRmlsZXMubGlzdChGaWxlcy5qYXZhOjM1MjQpCj4+ICAgICAgICAgICAgIGF0IAo+PiBjb20uc3VuLnRvb2xzLmphdmFjLmZpbGUuTG9jYXRpb25zJEJvb3RDbGFzc1BhdGhMb2NhdGlvbkhhbmRsZXIuc3lzdGVtQ2xhc3NlcyhMb2NhdGlvbnMuamF2YTo2NzgpIAo+Pgo+PiAgICAgICAgICAgICBhdCAKPj4gY29tLnN1bi50b29scy5qYXZhYy5maWxlLkxvY2F0aW9ucyRCb290Q2xhc3NQYXRoTG9jYXRpb25IYW5kbGVyLmNvbXB1dGVQYXRoKExvY2F0aW9ucy5qYXZhOjYzNCkgCj4+Cj4+ICAgICAgICAgICAgIGF0IAo+PiBjb20uc3VuLnRvb2xzLmphdmFjLmZpbGUuTG9jYXRpb25zJEJvb3RDbGFzc1BhdGhMb2NhdGlvbkhhbmRsZXIubGF6eShMb2NhdGlvbnMuamF2YTo3MjIpIAo+Pgo+PiAgICAgICAgICAgICAuLi4gMzcgbW9yZQo+PiAgICAgICAgIFtFUlJPUl0KPj4gICAgICAgICBbRVJST1JdCj4+ICAgICAgICAgW0VSUk9SXSBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXJyb3JzIGFuZCBwb3NzaWJsZSAKPj4gc29sdXRpb25zLCBwbGVhc2UgcmVhZCB0aGUgZm9sbG93aW5nIGFydGljbGVzOgo+PiAgICAgICAgIFtFUlJPUl0gW0hlbHAgMV0gCj4+IGh0dHA6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9Nb2pvRXhlY3V0aW9uRXhjZXB0aW9uCj4+ICAgICAgICAgUnVubmluZyBwb3N0LWJ1aWxkIHNjcmlwdDogCj4+IC9Vc2Vycy9rYW1hL21hdmVuLXJlbGVhc2UtY2hlY2tlci9yZWxlYXNlLXRlc3QvamRrMS45LjBfZWErMTgxLmpkay9hcGFjaGUtbWF2ZW4tMy4wLjUvbWF2ZW4tY29tcGlsZXItcGx1Z2luLTMuNy4wL3RhcmdldC9pdC9lcnJvci1wcm9uZS1jb21waWxlci92ZXJpZnkuZ3Jvb3Z5IAo+Pgo+Pgo+Pgo+PiBCYXNlZCBvbiB3aGF0IEkgY2FuIHNlZSBoZXJlIG9uIE1hY09TOiBUaGUgbW9kdWxlcyBpbiBKREsgOSBpcyBhIGZpbGUgCj4+IGFuZCBub3QgZGlyZWN0b3J5Li4uVGhlIHF1ZXN0aW9uIGlzIHRoaXMgYW4gTWFjT1Mgb25seSBwaGVub21lbm9uID8gT3IgCj4+IGlzIHRoaXMgYSBnZW5lcmFsIHNpdHVhdGlvbj8KPj4KPj4gS2luZCByZWdhcmRzCj4+IEthcmwgSGVpbnogTWFyYmFpc2UKPj4KPj4KPj4gT24gMDEvMDkvMTcgMTU6NTAsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+Pj4gSGksCj4+PiAgV2Ugc29sdmVkIDYgaXNzdWVzOgo+Pj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMxNzIyNSZ2ZXJzaW9uPTEyMzQxMjY2JnN0eWxlTmFtZT1UZXh0IAo+Pj4gICBUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKPj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJTNEJTIwMTIzMTcyMjUlMjBBTkQlMjBzdGF0dXMlMjAlM0QlMjBPcGVuJTIwT1JERVIlMjBCWSUyMGtleSUyMERFU0MlMkMlMjBwcmlvcml0eSUyMERFU0MgCj4+PiAgIFN0YWdpbmcgcmVwbzoKPj4+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNTkvCj4+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zZXJ2aWNlL2xvY2FsL3JlcG9zaXRvcmllcy9tYXZlbi0xMzU5L2NvbnRlbnQvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL21hdmVuLWNvbXBpbGVyLXBsdWdpbi8zLjcuMC9tYXZlbi1jb21waWxlci1wbHVnaW4tMy43LjAtc291cmNlLXJlbGVhc2UuemlwIAo+Pj4gICBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPj4+IG1hdmVuLWNvbXBpbGVyLXBsdWdpbi0zLjcuMC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogCj4+PiAxMTQ4ZDhhMWY4OWU2OTAwYWZiMGNhMWRiZjc0ZjY0OTMyNDAyY2ZkCj4+PiAgU3RhZ2luZyBzaXRlOgo+Pj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tY29tcGlsZXItcGx1Z2luLUxBVEVTVC8KPj4+ICBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPj4+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCj4+PiAgVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPj4+ICBbIF0gKzEKPj4+IFsgXSArMAo+Pj4gWyBdIC0xCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQxMTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIFNlcCAyOSAwODo0MjoxNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxMTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMjFCQTJDQTQ5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMjkgU2VwIDIwMTcgMDg6NDI6MTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2NDEyMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOSBTZXAgMjAxNyAwODo0MjoxMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjQwMjQgaW52b2tlZCBieSB1aWQgNTAwKTsgMjkgU2VwIDIwMTcgMDg6NDI6MTMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2NDAxMSBpbnZva2VkIGJ5IHVpZCA5OSk7IDI5IFNlcCAyMDE3IDA4OjQyOjEzIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAyOSBTZXAgMjAxNyAwODo0MjoxMyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEE1MjhDMUEwNUJCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAyOSBTZXAgMjAxNyAwODo0MjoxMiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xLjgyMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMS44MjEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9NRUQ9LTIuMywKCVJDVkRfSU5fTVNQSUtFX0g0PS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwKCVJQX01BVENIRVNfUkNWRD0tMC4wMDEsIFNQRl9QQVNTPS0wLjAwMSwgVU5QQVJTRUFCTEVfUkVMQVk9MC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEViREZWQkRKLUJ4ZyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCUZyaSwgMjkgU2VwIDIwMTcgMDg6NDI6MTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gYXNlcnAxMDQwLm9yYWNsZS5jb20gKGFzZXJwMTA0MC5vcmFjbGUuY29tIFsxNDEuMTQ2LjEyNi42OV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAwMDJFOTYxMDM3Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAyOSBTZXAgMjAxNyAwODo0MjoxMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSB1c2VydjAwMjIub3JhY2xlLmNvbSAodXNlcnYwMDIyLm9yYWNsZS5jb20gWzE1Ni4xNTEuMzEuNzRdKQoJYnkgYXNlcnAxMDQwLm9yYWNsZS5jb20gKFNlbnRyaW9uLU1UQS00LjMuMi9TZW50cmlvbi1NVEEtNC4zLjIpIHdpdGggRVNNVFAgaWQgdjhUOGcwQlMwMDI1MjcKCSh2ZXJzaW9uPVRMU3YxLjIgY2lwaGVyPUVDREhFLVJTQS1BRVMyNTYtR0NNLVNIQTM4NCBiaXRzPTI1NiB2ZXJpZnk9T0spOwoJRnJpLCAyOSBTZXAgMjAxNyAwODo0MjowMSBHTVQKUmVjZWl2ZWQ6IGZyb20gYXNlcnYwMTIxLm9yYWNsZS5jb20gKGFzZXJ2MDEyMS5vcmFjbGUuY29tIFsxNDEuMTQ2LjEyNi4yMzVdKQoJYnkgdXNlcnYwMDIyLm9yYWNsZS5jb20gKDguMTQuNC84LjE0LjQpIHdpdGggRVNNVFAgaWQgdjhUOGcwZU8wMDY5MjIKCSh2ZXJzaW9uPVRMU3YxL1NTTHYzIGNpcGhlcj1ESEUtUlNBLUFFUzI1Ni1HQ00tU0hBMzg0IGJpdHM9MjU2IHZlcmlmeT1PSyk7CglGcmksIDI5IFNlcCAyMDE3IDA4OjQyOjAwIEdNVApSZWNlaXZlZDogZnJvbSBhYmhtcDAwMTEub3JhY2xlLmNvbSAoYWJobXAwMDExLm9yYWNsZS5jb20gWzE0MS4xNDYuMTE2LjE3XSkKCWJ5IGFzZXJ2MDEyMS5vcmFjbGUuY29tICg4LjE0LjQvOC4xMy44KSB3aXRoIEVTTVRQIGlkIHY4VDhmeGJGMDA2NDA1OwoJRnJpLCAyOSBTZXAgMjAxNyAwODo0MTo1OSBHTVQKUmVjZWl2ZWQ6IGZyb20gZGhjcC11a2MxLXR3dnBuLTEtdnBucG9vbC0xMC0xNzUtMTc5LTY0LnZwbi5vcmFjbGUuY29tICgvMTAuMTc1LjE3OS42NCkKCWJ5IGRlZmF1bHQgKE9yYWNsZSBCZWVoaXZlIEdhdGV3YXkgdjQuMCkKCXdpdGggRVNNVFAgOyBGcmksIDI5IFNlcCAyMDE3IDAxOjQxOjU5IC0wNzAwClN1YmplY3Q6IFJlOiBbamlyYV0gKFNVUkVGSVJFLTE0MjQpIGphdmF4LnRyYW5zYWN0aW9uLlRyYW5zYWN0aW9uTWFuYWdlciBub3QKIHZpc2libGUgd2l0aCBKYXZhOQpUbzogRW5yaWNvIE9saXZlbGxpIDxlb2xpdmVsbGlAZ21haWwuY29tPiwKICAgICAgICBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDYzogIlRpYm9yIERpZ2FuYSAoSklSQSkiIDxqaXJhQGFwYWNoZS5vcmc+LAogICAgICAgIFN0ZXBoYW5lIE5pY29sbCA8c3RlcGhhbmUubmljb2xsQGdtYWlsLmNvbT4KUmVmZXJlbmNlczogPEpJUkEuMTMxMDUwMTYuMTUwNjQxMzc2ODAwMEBBdGxhc3NpYW4uSklSQT4KIDxKSVJBLjEzMTA1MDE2LjE1MDY0MTM3NjgwNDVAamlyYS1sdy11cy5hcGFjaGUub3JnPgogPEpJUkEuMTMxMDUwMTYuMTUwNjQxMzc2ODAwMC4yMzA0MDYuMTUwNjYzMzY2MDMxOUBBdGxhc3NpYW4uSklSQT4KIDxvcC55N2JnbzdteWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KIDxDQUNjZWZnZC1fNWVPOFE5NzF3bkFyYXdwbU1uTlErd2ZmRUVGcHJQMlYyRnZmK0oxa1FAbWFpbC5nbWFpbC5jb20+CkZyb206IEFsYW4gQmF0ZW1hbiA8QWxhbi5CYXRlbWFuQG9yYWNsZS5jb20+Ck1lc3NhZ2UtSUQ6IDwwOWQ2MjRlYi1kY2ZkLWNiZGItOGUwNi0xOWI4Y2YzMjVjODZAb3JhY2xlLmNvbT4KRGF0ZTogRnJpLCAyOSBTZXAgMjAxNyAwOTo0MTo1NCArMDEwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMjsgcnY6NTIuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzUyLjMuMApNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPENBQ2NlZmdkLV81ZU84UTk3MXduQXJhd3BtTW5OUSt3ZmZFRUZwclAyVjJGdmYrSjFrUUBtYWlsLmdtYWlsLmNvbT4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKQ29udGVudC1MYW5ndWFnZTogZW4tVVMKWC1Tb3VyY2UtSVA6IHVzZXJ2MDAyMi5vcmFjbGUuY29tIFsxNTYuMTUxLjMxLjc0XQoKT24gMjkvMDkvMjAxNyAwODo1NywgRW5yaWNvIE9saXZlbGxpIHdyb3RlOgo+IDoKPgo+IDIpIGRlYWxpbmcgd2l0aCBtb2R1bGVzIGxpa2UgamF2YS5zcWwgd2hpY2ggYXMgbm90IGluIGphdmEuYmFzZSAKPiAoaHR0cDovL2Rvd25sb2FkLmphdmEubmV0L2phdmEvamRrOS9kb2NzL2FwaS9qYXZhLmJhc2Utc3VtbWFyeS5odG1sKQo+IEN1cnJlbnRseSBJIGhhdmUgbm8gc29sdXRpb24gYXMgdGhlcmUgaXMgbm8gb2ZmaWNpYWwgbWF2ZW4gZGVwZW5kZW5jeSAKPiBmb3IgamF2YS5zcWwgcGFja2FnZQo+CllvdSBzaG91bGRuJ3QgbmVlZCB0byBiZSBjb25jZXJuZWQgd2l0aCB0aGUgamF2YS5zcWwgbW9kdWxlLiBUaGUgb25seSAKbW9kdWxlcyB0aGF0IHlvdSBuZWVkIHRvIGJlIGNvbmNlcm5lZCBhYm91dCBhcmU6CgpqYXZhLmNvcmJhCmphdmEudHJhbnNhY3Rpb24KamF2YS5hY3RpdmF0aW9uCmphdmEueG1sLmJpbmQKamF2YS54bWwud3MKamF2YS54bWwud3MuYW5ub3RhdGlvbgoKYW5kIHRoZSBqYXZhLnNlLmVlIGFnZ3JlZ2F0b3IuCgpUaGVzZSBtb2R1bGVzIGFyZSBkZXByZWNhdGVkIGluIEphdmEgU0UgYW5kIGFyZSBwcm9wb3NlZCB0byBiZSByZW1vdmVkIAppbiBhIGZ1dHVyZSByZWxlYXNlLgoKQXNpZGUgZnJvbSBqYXZhLmNvcmJhLCB0aGUgNSBtb2R1bGVzIHNoYXJlZCB3aXRoIEphdmEgRUUgYXJlIHN0YW5kYWxvbmUgCnRlY2hub2xvZ2llcywgZWFjaCB3aXRoIG9uZSBvciBtb3JlIEpTUnMgYW5kIGl0cyBvd24gZG93bmxvYWQuIEVhY2ggb2YgCnRoZXNlIHByb2plY3RzIHVzZWQgdG8gYmUgb24gamF2YS5uZXQgYnV0IG1vdmVkIHRvIHRoZSBKYXZhIEVFIGdpdGh1YiAKcHJvamVjdCByZWNlbnRseS4gSSBkb24ndCBrbm93IGlmIHRoZSBtb3ZlIHRvIEVjbGlwc2Ugd2lsbCBjaGFuZ2UgCmFueXRoaW5nIHRoZXJlLgoKSW4gYW55IGNhc2UsIGVhY2ggb2YgdGhlIHN0YW5kYWxvbmUgdmVyc2lvbnMgY2FuIGJlIGRlcGxveWVkIG9uIHRoZSAKY2xhc3MgcGF0aCB3aXRoIEpESyA5LgoKSW4gdGltZSB0aGV5IHdpbGwgYmUgZGVwbG95YWJsZSBhcyBtb2R1bGVzIHRvbyBhbmQgdGhpcyB3aWxsIGFsbG93IHRoZW0gCnRvIGJlIGRlcGxveWVkIG9uIHRoZSB1cGdyYWRlIG1vZHVsZSBwYXRoICgtLXVwZ3JhZGUtbW9kdWxlLXBhdGgpIHRvIAp1cGdyYWRlL292ZXJyaWRlIHRoZSBtb2R1bGUgaW4gdGhlIHJ1bi10aW1lIGltYWdlIHdpdGggdGhlIHN0YW5kYWxvbmUgb3IgCkphdmEgRUUgbW9kdWxlLiBUaGlzIHdpbGwgYWN0dWFsbHkgd29yayB3aXRoIGFsbCBleGNlcHQgZm9yIHRoZSAKdHJhbnNhY3Rpb24gQVBJIGFzIHRoZXJlIGFyZSBhIGNvdXBsZSBvZiBpc3N1ZXMgdG8gc29ydCBvdXQgdGhlcmUgYmVmb3JlIAppdCBjYW4gYmUgZGVwbG95ZWQgYXMgYSBtb2R1bGUuCgpBcyBJIHVuZGVyc3RhbmQgaXQsIHRoZSBTcHJpbmcgZm9sa3MgaW4gdGhlIEpJUkEgaXNzdWUgYXJlIGRlcGxveWluZyB0aGUgCkpUQSBKQVIgZmlsZSBvbiB0aGUgY2xhc3MgcGF0aC4gVGhhdCBzaG91bGQganVzdCB3b3JrIGJ1dCBpcyBjb21wbGljYXRlZCAKYnkgYC0tYWRkLW1vZHVsZT1qYXZhLnNlLmVlYCBhcyB0aGF0IHdpbGwgY2F1c2UgdGhlIGphdmEudHJhbnNhY3Rpb24gCm1vZHVsZSB0byBiZSByZXNvbHZlZC4gWW91IGNhbid0IHNwbGl0IHRoZSBqYXZheC50cmFuc2FjdGlvbiBwYWNrYWdlIApiZXR3ZWVuIGEgbW9kdWxlIGFuZCB0aGUgY2xhc3MgcGF0aC4KCkZvciB0aGUgc3VyZWZpcmUgcGx1Z2luIHRoZW4gZHJvcHBpbmcgdGhlIC0tYWRkLW1vZHVsZXMgc2hvdWxkIGJlIGxvb2tlZCAKYXQuIFlvdSdsbCBuZWVkIHRvIGRvIHRoYXQgYW55d2F5IG9uY2UgamF2YS5zZS5lZSBnb2VzIGF3YXkuIElmIHRoZSAKcGx1Z2luIHJlbGllcyBvbiBKQVhCIHRoZW4gYWRkaW5nIGEgZGVwZW5kZW5jeSBvbiB0aGUgc3RhbmRhbG9uZSB2ZXJzaW9uIApzaG91bGQgd29yay4KCi1BbGFuCgoKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0OTAzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBEZWMgMzEgMTI6Mjg6MzMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0OTAzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEQ2QzFGMTdBMEEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAzMSBEZWMgMjAxNyAxMjoyODozMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE1MDI5IGludm9rZWQgYnkgdWlkIDUwMCk7IDMxIERlYyAyMDE3IDEyOjI4OjI4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNDk2MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMSBEZWMgMjAxNyAxMjoyODoyOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE0OTQ3IGludm9rZWQgYnkgdWlkIDk5KTsgMzEgRGVjIDIwMTcgMTI6Mjg6MjggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDMxIERlYyAyMDE3IDEyOjI4OjI4ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQ0I5MzNDMEMxOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMzEgRGVjIDIwMTcgMTI6Mjg6MjcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC43MDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuNzAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgWTVIaWJ6eTlyTk5UIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAzMSBEZWMgMjAxNyAxMjoyODoyNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNy4yMl0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA0RDYyMjVGQUM0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAzMSBEZWMgMjAxNyAxMjoyODoyNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBLYXJsLUhlaW56cy1NYWNCb29rLVByby5sb2NhbCAoWzkyLjIwNC44OS4yMDJdKSBieSBtYWlsLmdteC5jb20KIChtcmdteDEwMSBbMjEyLjIyNy4xNy4xNjhdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTWV0cGwtMWVHUTl4MDFnZi0wME9XNkY7IFN1biwgMzEgRGVjIDIwMTcgMTM6Mjg6MjQgKzAxMDAKUmVwbHktVG86IGluZm9Ac29lYmVzLmRlClN1YmplY3Q6IFJlOiBbSU1QT1JUQU5UXSBSZTogR2l0IG1pZ3JhdGlvbiBuZXh0IHN0ZXBzClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwKID0/VVRGLTg/UT9IZXJ2PWMzPWE5X0JPVVRFTVk/PSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpSZWZlcmVuY2VzOiA8MjAwOTc2NTU5Mi4yMjk3MjIxNy4xNTE0MTA5MjU2NjMyLkphdmFNYWlsLnJvb3RAc3Bvb2xlcjQtZzI3PgogPENBK25Qbk15LTdfUi12c3ZrRmdoYj1keUtMVkVfK1hQQ2UweUhrSjVBdW5jN0c0enNiUUBtYWlsLmdtYWlsLmNvbT4KIDwyNzkyOTcwLlBicGFvdWdYZktAZ2lnYT4gPDUxMzgwODIuek1vQlV5aWVHUkBnaWdhPgpGcm9tOiBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4KTWVzc2FnZS1JRDogPDBjOTYyYTQ1LTI3YjctMmEzNC1hZTNmLWY0ZTFjNDhlODljY0BnbXguZGU+CkRhdGU6IFN1biwgMzEgRGVjIDIwMTcgMTM6Mjg6MjMgKzAxMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi41LjAKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDw1MTM4MDgyLnpNb0JVeWllR1JAZ2lnYT4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLUdCCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6aUh2ZjN0QkxNRzU4QXdjZkNkMWxLcTV3TCtBUEF3b1RKaUl5RURiR3ArMW1wMnQxRW1RCiBGOEU3Q3E5dmVpYzZZR0dzUEx3NWhIbVlWTjlvci9aWFlrUHBUUnRJQ0NGbWdpcXMyRTEwdjcxbVB3VDBpYkhqbFhQMjQ5bgogTjk4MTZWcmQzWThNQmZLUWtaY0JtRDFJV0xSL2p0cXFjMnpMa1dCOHBxWlBZQllvcmt1SjJYc0c5SG1OT1dXeHNLZmxMV2UKIDNjb0FWOEZhdjRVb21USTlyblhuZz09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6VWFZQnJNdkM3RjA9OkJXMk1nZzNFbzltY1VodjBDVCtoSEEKIFRwRmRDMDA1aUtaaHVKU0x0STRzTFExRXRRRk5vNHg3UnFsNmFnSldyMzBCM3UwU3dnODVrMGI4K0EvajMxbDB5bGtRMnU4NGMKIDVPbmFRR0cwTHFWbmF1WTdETmlTemdqeGMyMkppSlRIRGxSZ3kvSnlyVTAvNE9WVXJUQWFGMnZNc2pSQnZXalBuODNjUnRvdk4KIDAvbkIwS1VaQmFqbjF1Z3E3RjRndTY3M09mY1daSE9GdkhOWVR0cTBwNmU5dE0zTjU2R2lRQmtZb1AyNk04UkhzaVRjUEpVVjAKIGZqWTJweFZJWW5MRGcrdjFwRUdaazZUTE5ncnB3Q2NhSWNidWhDMEpzcE4wUDJYck1hZjloN0RvbVZlZUhoOW03SVFDZkFabzcKIEZlWE5BbC9BblVMVVRBbFhocmZhaTZOMnJjNXY5SThPcXFoczFXRG9waldIQVhXVFBta1p4WTU3UTZkeWJoLzUxcVdTdkJrS24KIERXRk5hUXptV05GU2NvWmlVOGVNdWJpZG1MdFN3TEZMdithUHA0SVJWTmtjQVREN3hocmRtbS9ORnBvU0l4WG0raVM1TUNDWEQKIEk3NjQ1VmxSN1kxZUFQNnBvckJRYVR5RmZSQ0hMeC9tWE1QLzlnc0ZQbEQxbXYxc3NhY09rYmdtMkROYldhUzVHbi9SNE9kRXUKIGxQWTNTVlJuMWZIa2NjQW90UW92SnlZcE45MEdDaEFaYjhPWmo4TmkyTElUUnlpa2NHZUxNdVJtYUNZR2RVS212NGF5Y25XbHUKIDhxMk96T1ZpKzlENGZkMXdQb1dnWHVUM3d2ZFpXRTZMSFNONW5TN0Q4ZTB1SGJNcmFqOUd6V3JxQ2RteWNWMUl5ekh5SVRHVUwKIHNZNzA2dmVhbGZ2anhQZE1WQ2xNT0NFZlR6anE4b3FpVnhsTmlUNnFWVDhTa0pNcFhabklaelczTnkwRjI0RmdtQlZWK3pBemsKICtzWUhSTlN1QlJicUsxTmtzWTV6aTFEUTBHRTByT0krMmQzZmlBc2hqR1ZoaC9NV1lSdnJEbHdZTzdndmlRbFJueU5nc2NYOHUKIENFZXRPcldTbGxCSnd0Y2VtaHAvY0NwSUpmSldXR0hzekZmZEp2UVM4dHhZc3JPRmZrPQoKSGksCgpPbiAzMS8xMi8xNyAxMjo0NCwgSGVydsOpIEJPVVRFTVkgd3JvdGU6Cj4gYW5vdGhlciBpbnRlcmVzdGluZyBjYXNlOgo+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvam9iL21hdmVuLWJveC9qb2IvbWF2ZW4tc2hhcmVkLXV0aWxzL2pvYi9tYXN0ZXIvCj4gCj4gd2hlbiB5b3UgbG9vayBhdCBlYWNoIHN0ZXAgbG9ncyBmcm9tIHRoZSBzdGFnZSB2aWV3LCB5b3Ugc2VlIG5vIGlzc3VlCj4gYnV0IHRoZSBidWlsZCBpcyBtYXJrZWQgYXMgZmFpbGVkCj4gCj4gYW5kIGlmIHlvdSBsb29rIGF0IHRoZSB1bml0IHRlc3RzIG1hcmtlZCBhcyBmYWlsZWQ6Cj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy9qb2IvbWF2ZW4tYm94L2pvYi9tYXZlbi1zaGFyZWQtdXRpbHMvam9iL21hc3Rlci8KPiBsYXN0Q29tcGxldGVkQnVpbGQvdGVzdFJlcG9ydC8KClRoZSBmYWlsdXJlcyBvbiB0aGUgdGVzdHMgaGVyZSBhcmUgYmFzZWQgb24gdGhlIGlzc3VlIHdpdGggdGhlICJAIiBpbiAKdGhlIGRpcmVjdG9yeSBuYW1lIChTZWUgCmh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvU1VSRUZJUkUtMTMxMikuLgoKVXBncmFkaW5nIHRvIHN1cmVmaXJlIDIuMjAuMSB3aWxsIHNvbHZlIHRoYXQgcHJvYmxlbS4uKEJhc2VkIG9uIHRoZSAKY3VycmVudCBzdGF0ZSBvZiBteSBleHBlcmllbmNlKS4uLgoKU2VlIApodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL2pvYi9tYXZlbi1ib3gvam9iL21hdmVuLXNoYXJlZC11dGlscy9qb2IvbWFzdGVyLzQvCgpLaW5kIHJlZ2FyZHMKS2FybCBIZWluegoKCgo+IAo+IHlvdSBkb24ndCBrbm93IG9uIHdoaWNoIGJ1aWxkIChPUypKREspIHRoZSBmYWlsdXJlcyBoYXBwZW4KPiAKPiBJTUhPLCBpbiBwYXJhbGxlbCB0byB0aGUgamF2YWRvYyBJVCBmYWlsdXJlIGludmVzdGlnYXRpb24sIHRoaXMgbWF2ZW4tc2hhcmVkLQo+IHV0aWxzIGdpdmVzIHVzIGFub3RoZXIgaW50ZXJlc3RpbmcgY2FzZSB0byBmaXgKPiAKPiBSZWdhcmRzLAo+IAo+IEhlcnbDqQo+IAo+IExlIGRpbWFuY2hlIDMxIGTDqWNlbWJyZSAyMDE3LCAxMTo0OTo1OSBDRVQgSGVydsOpIEJPVVRFTVkgYSDDqWNyaXQgOgo+PiBMZSBkaW1hbmNoZSAzMSBkw6ljZW1icmUgMjAxNywgMTE6MDU6MzkgQ0VUIFN0ZXBoZW4gQ29ubm9sbHkgYSDDqWNyaXQgOgo+PiBbLi4uXQo+Pgo+Pj4+PiB3aGF0IGFyZSBhbGwgdGhlIG9wZW4gdGFza3MgbGlua3M/Cj4+Pj4KPj4+PiB3YXMgc3VwcG9zZWQgdG8gYmUgZml4ZWQgYWZ0ZXIgSmVua2lucyBwbHVnaW4gdXBncmFkZSB0aGlzIHdlZWsKPj4+PiBAU3RlcGhlbiBpcyB0aGlzIGEga25vd24gaXNzdWU/Cj4+Pgo+Pj4gSSBtYXkgaGF2ZSB0byB0d2VhayB0aGUgc2hhcmVkIGxpYiBhbHNvLiBJdCB3aWxsIGJlIFR1ZXNkYXkgYmVmb3JlIEkgdHVybgo+Pj4gb24gbXkgTWFjCj4+Cj4+IHBlcmZlY3Q6IGhhdmUgbmljZSBob2xpZGF5cywgd29ya2luZyBvbiBpdCBuZXh0IHllYXIgaXMgcGVyZmVjdCA6KQo+Pgo+PiBbLi4uXQo+Pgo+Pj4+PiBIb25lc3RseSB0aGUgY3VycmVudCBqZW5raW5zIHJlc3VsdCBpcyBjb21wbGljYXRlZCB0byB1c2UuLi4uCj4+Pj4KPj4+PiB3aGVuIHRoZSByZXNldWx0IGlzIGEgcGFzc2luZyBidWlsZCwgaXQncyBwZXJmZWN0LCBidXQgSSBjb25maXJtIHRoYXQKPj4+PiB3aGVuCj4+Pj4gdGhlcmUgaXMgYSBmYWlsdXJlLCBpdCdzIGEgcGFpbiB0byB1bmRlcnN0YW5kIHdoZXJlIGlzIHRoZSBmYWlsdXJlCj4+Pj4gKHdoaWNoCj4+Pj4gT1MvCj4+Pj4gamRrLCB3aGljaCB0ZXN0KQo+Pj4+IGFuZCBldmVudHVhbGx5IGRldGVjdCBpZiB0aGVyZSBhcmUgZmFsc2UgcG9zaXRpdmVzIG9uIHNvbWUgY29uZGl0aW9ucy4uLgo+Pj4KPj4+IFNvIHRoZXJlIGFyZSB0d28gaXNzdWVzIGltaG86Cj4+Pgo+Pj4gMS4gRmFzdCBmYWlsIGtpbGxzIG90aGVyIHBhcmFsbGVsIGV4ZWN1dGlvbnMgaW4gc3VjaCBhIHdheSB0aGF0IHRoZXkKPj4+IHJlcG9ydAo+Pj4gYXMgZmFpbGVkLiBJ4oCZZCBsaWtlIHRoZW0gdG8gZmxhZyBhcyBhYm9ydGVkIGluc3RlYWQuIFRoYXQgd291bGQgbWFrZQo+Pj4gaWRlbnRpZmljYXRpb24gZnJvbSB0aGUgc3RhZ2UgdmlldyBvciBibHVlIG9jZWFuIGVhc2llci4KPj4KPj4geWVzLCB0aGlzIHdvdWxkIGJlIGEgZ29vZCBmaXJzdCBlbmhhbmNlbWVudAo+Pgo+Pj4gMi4gVGhlIHBhcmFsbGVsIGxvZ3MuIFRoaXMgaXMgYSBwaXBlbGluZSBkZXNpZ24gZGVjaXNpb24uIFlvdSBhcmUgYmV0dGVyCj4+PiBvZmYgdmlld2luZyBsb2dzIHRocm91Z2ggc3RhZ2UgdmlldyBvciBibHVlIG9jZWFuLgo+Pgo+PiBsYXN0IHRpbWUgSSB0cmllZCwgSSBkaWQgbm90IGZpbmQgb3V0cHV0IGNsZWFyOiBidXQgcGVyaGFwcyBpdCB3YXMgb24KPj4gYWJvcnRlZCBidWlsZHMgbWFya2VkIGFzIGZhaWxlZC4uLiBJJ2xsIGhhdmUgdG8gdHJ5IHdpdGggdGhhdCBpc3N1ZSBpbgo+PiBtaW5kLgo+Pj4+PiBBbmQgYXMgZmFyIEkgY2FuIHNlZSBTTkFQU0hPVCBhcmUgbm90IGFueW1vcmUgZGVwbG95ZWQgd2hlcmVhcyB0aGV5Cj4+Pj4+IHdlcmUKPj4+Pj4gZGVwbG95ZWQgcHJldmlvdXNseS4KPj4+Pj4gSU1ITyBpdCdzIHZlcnkgY29udmVuaWVudCBhcyBzb21lIHVzZXJzIHRlc3Qgb3VyIGZpeGVzLi4uLgo+Pj4+Cj4+Pj4gQFN0ZXBoZW4gYWRkaW5nIGF1dG8tZGVwbG95IGZvciBtYXN0ZXIgYnJhbmNoIGNvdWxkIG1ha2Ugc2Vuc2UsIGlzbid0Cj4+Pj4gaXQ/Cj4+Pgo+Pj4gSSByZWFsbHkgdGhpbmsgYXV0by1kZXBsb3kgb2Ygc25hcHNob3RzIGlzIGFuIGFudGktcGF0dGVybi4gSWYgd2Ugd2FudCBpdAo+Pj4gdG8gYmUgZm9yIENJIG9ubHkgaW4gYSBDSSBkZWRpY2F0ZWQgcmVwbywgSSBjYW4gZmluZCB0aGF0IGFjY2VwdGFibGUuLi4KPj4+IGJ1dAo+Pj4gb3RoZXJ3aXNlIEkgcmVhbGx5IGhhdGUgdGhlIGlkZWEuCj4+Cj4+IEkgZG9uJ3QgdW5kZXJzdGFuZDogYSBTTkFQU0hPVC1kZWRpY2F0ZWQgcmVwb3NpdG9yeSBpcyBsaWtlIGEgbWluaQo+PiBjb250aW51b3VzIGRlcGxveW1lbnQuIFdlIGhhdmUgYSBTTkFQU0hPVC1kZWRpY2F0ZWQgcmVwb3NpdG9yeSBleGFjdGx5IGZvcgo+PiB0aGF0LCBjb25maWd1cmVkIGFzIHJlcG9zaXRvcmllcyBhbmQgZGlzdHJpYnV0aW9uTWFuYWdlbWVudCBpbiBBcGFjaGUKPj4gUGFyZW50IFBPTSBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9wb20vYXNmLwo+Pgo+PiBJIHVuZGVyc3RhbmQgdGhlcmUgYXJlIGlzc3VlcyBpZiB3ZSBhdXRvLWRlcGxveSBmcm9tIGJyYW5jaGVzLCBzaW5jZSB3ZSBoYXZlCj4+IG5vIHZlcnNpb24gc2NoZW1lIHRvIG1ha2UgYSBkaWZmZXJlbmNlIGluIHRoZSBTTkFQU0hPVCByZXBvIGZvciBldmVyeQo+PiBicmFuY2g6IHRoYXQncyB3aHkgSSByZXN0cmljdCB0aGUgYXV0by1kZXBsb3ltZW50IHRvIG1hc3Rlci4KPj4KPj4gQnV0IGl0J3MgdGhlIGZpcnN0IHRpbWUgSSBoZWFyIGFib3V0IGlzc3VlcyB3aXRoIGEgU05BUFNIT1QgcmVwbyB0byBtYWtlCj4+IFNOQVBTSE9UcyBwdWJsaWMgKGFzIFNOQVBTSE9UcywgaWUgYWR2ZXJ0aXplZCBhcyBsYXRlc3QgJiBub24tcmVwcm9kdWNpYmxlLAo+PiB0byB0ZXN0IGVhcmx5KTogdGhlIG9ubHkgaXNzdWVzIEkgdW5kZXJzdG9vZCB3YXMgYWJvdXQgcGVvcGxlIHdhbnRpbmcgdG8KPj4gbWFrZSB0aGVzZSByZXByb2R1Y2libGUsIHRoZW4gYXZvaWQgU05BUFNIT1QgYW5kIGNhbGwgaXQgImNvbnRpbnVvdXMKPj4gZGVsaXZlcnkiICh3aGljaCBJTUhPIGFkZHMgYSBsb3Qgb2YgdW51c2VkIHJlbGVhc2VzIHRoYXQgeW91IGNhbid0IGRlbGV0ZQo+PiBpZiB5b3UgZG9uJ3QgbWFzdGVyIHByZWNpc2VseSB3aG8geW91ciBjb25zdW1lcnMgYXJlOiB0aGVuIGluIHN1Y2ggb3Blbgo+PiBzaXR1YXRpb24sIHlvdSBnZXQgYSBibG9hdGVkIHJlcG8uLi4pCj4+Cj4+IFJlZ2FyZHMsCj4+Cj4+IEhlcnbDqQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODczLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBEZWMgMjggMjA6MTc6MDAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODczLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDIwRjIzMTBFRkEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAyOCBEZWMgMjAxNyAyMDoxNzowMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDU0MzQ1IGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IERlYyAyMDE3IDIwOjE2OjU5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NDI1NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBEZWMgMjAxNyAyMDoxNjo1OSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU0MjQ0IGludm9rZWQgYnkgdWlkIDk5KTsgMjggRGVjIDIwMTcgMjA6MTY6NTkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDI4IERlYyAyMDE3IDIwOjE2OjU5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRjE4OEExQTBFNzYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDI4IERlYyAyMDE3IDIwOjE2OjU4ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuNzAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjcwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIE5TOEdMaFBTZ1FSdSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVRodSwgMjggRGVjIDIwMTcgMjA6MTY6NTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbW91dC5nbXgubmV0IChtb3V0LmdteC5uZXQgWzIxMi4yMjcuMTUuMTldKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQ0M3QTg1RjM5NgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjggRGVjIDIwMTcgMjA6MTY6NTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gS2FybC1IZWluenMtTWFjQm9vay1Qcm8ubG9jYWwgKFs5Mi4yMDQuNDYuNDddKSBieSBtYWlsLmdteC5jb20KIChtcmdteDAwMyBbMjEyLjIyNy4xNy4xOTBdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTWQzbGktMWVEWFNsMVdCVy0wMElFRGo7IFRodSwgMjggRGVjIDIwMTcgMjE6MTY6NDkgKzAxMDAKUmVwbHktVG86IGluZm9Ac29lYmVzLmRlClN1YmplY3Q6IFJlOiBwbGV4dXMtYXJjaGl2ZXIgLyBwbGV4dXMtdXRpbCBJc3N1ZQpUbzogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4sCiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwgaW5mb0Bzb2ViZXMuZGUKUmVmZXJlbmNlczogPDk1MGRlMjgwLTU5MjgtNGZlMy1hY2E4LTA5MjM0MTUyNGM2NkBnbXguZGU+CiA8Q0FMYVRlQ28wLS1fcDZkdU5GM2MwM2NWRk80WHZUdm8zWW5kd0NqX0g3NFhSdm93WkFnQG1haWwuZ21haWwuY29tPgogPENBTGFUZUNwYlo5YUMrcWRTa1QxUk0yaEJxRT1NY19iTHZiZkFDSGgtc2dVeW5INDhQd0BtYWlsLmdtYWlsLmNvbT4KIDxDQUpHN0RYMVNkYXh3b0pLNXFqYzEyMEZkZUhDWk9IUnppb2VibUV3R3FnejVrWG0xNndAbWFpbC5nbWFpbC5jb20+CiA8MjM3YjIwMTUtNzMwYi02NTlhLTFmYmMtNDUxYTRiZTQ0MjhkQGdteC5kZT4KIDxDQUpHN0RYMEp1MWlhRnBSX3lXb2lMakNMb0xjS0VaVWtKRWd1UmthKzI3b1F1Y3hWR1FAbWFpbC5nbWFpbC5jb20+CiA8MWMzY2NmMjMtYjc0My01ODU0LTVlNzYtMmQ2ZWIwOTM3MjJhQGdteC5kZT4KIDxDQStuUG5NeEEtYmR1MlNIeVVpQTVra1V1TU9kUFdoWXFnOExmS0xQRk1udXpUS3ZTREFAbWFpbC5nbWFpbC5jb20+CkZyb206IEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPgpNZXNzYWdlLUlEOiA8MGNiZjhhMzYtMWY0My02YWI3LTlkMGQtMzBkZmUzNDQ5MjA1QGdteC5kZT4KRGF0ZTogVGh1LCAyOCBEZWMgMjAxNyAyMToxNjo0OCArMDEwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMTsgcnY6NTIuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzUyLjUuMApNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPENBK25Qbk14QS1iZHUyU0h5VWlBNWtrVXVNT2RQV2hZcWc4TGZLTFBGTW51elRLdlNEQUBtYWlsLmdtYWlsLmNvbT4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLUdCCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6ZFZHWDdva3RjaVAxZndGajRsNXNpZk5SbmJTeldXQXB2aE1MS2UyVy9YVXpjT3BGQWYyCiAvMzlIQW44Sll6cWhQTXBqd1VhOGRrbnhMM2FOakg1UGhDOU5iSWd0SkJiR2tFSkEyTnNnUnJMb2VlaGpnNnpxTG53K1JyVwogRTZrQ0J1UmN6WjJkZklrOXNQdFBNb1poYWxHNCtMdjQ5VEt0RXN2Y3BmL0F0OGFwL2h5eEpkWTFoOVFwQWYrdFl0bldTc2MKIDR1TjJ3bmwwQVV3bVF2WlNsOTJwUT09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6WjFndk5lNGE1d0E9OitzRzZLaW5KRXFTM1JLWTRCWjhMM3cKIDcxcFNOYVZUZWtacU55aytSUGpGb0trUnRhRFAyVDJnUk9BUFNWL2RDQzBCUmtmYjZzK1QxL2cyM3Nwdnp6eHRmcWF5WEJYelgKIGRVTTVKNXY2ZGVwNkt6N3hCZ0VINXpIMTJXKzgxOWxhTFo5NkJnTUJERVdjeTZldW1YSkVRVGZqL1FReXBWQzNFeEp1VStiOHoKIHp6RWswRkZUekxYd0NZeHAzYml6VFNVMzBEY3RocDhDVWZjY3RNM081UGdETnV6bmRjZGU5TnJkRUU4SW5EY0dLYzdXdHYza0IKIE16eCtKWURsWW5yM3BKOGhlR216cngvVXlkUC9hS05TZlZwNHBXOVNEbVR6VEZBVlBtRkMyeWJkb0I3L2FJWFA5ZktYaVJPTGcKIGFTaTcwNUZuRnJlVWtLdUkwdEgyQk1yZFNyVEROVk5ianBqY3hZajd5cHNEV1dYL3QyZlJlTnRoUXFVMHZleFlJTHVkY0RaTWcKIC9yU2Y0Z1VmcXpweXJmWldnMHgxYmdoTFBnKzhDeTlUYko0UHlkNTlZemZoa1NDbzlYSHcwRTc0S0d2YnNkdmxYUWU2endTaVAKIDUwcjJiaFBCZkdqUDF6bGYxTThUc2ZvUkNuRUxTZ0pvczZUU05jQ2hnTW5UOEVobWtXRTZ1cEpxd29BYXcrRzhvZ09nK2kzWWgKIGVlaDN0ZkFCRnlncExUOEQvZ09wTGNLbkVlUFliNmM2Q09qQzdJNEQ4QXgyaWdLazdiTk1nL1hlZnpSbmJlR3ZidmdTQVBJMzUKIDU3QzBoNmZKcndHZkFPVitTS3JJdVoxQi9CalFSdVBPZ2x3QTBNNCtsb3BhZkxZWm1YQ3dUNEl3c3hNMUtnMXVDb1VWT1Npa0sKIFRvMFVkcHhZK3JYMGFKOFUrS2dyYWJ0d3hDUy85K1RpRGgzWmFtUE1OUjJJWkZGbDRzY1EyaFI4bE1pcFJPc3p1K2xndzh4ZE0KIEtNWm5JYlEvWjhNd24rZmlzM0NCUVNXbUVqUFJqNnRXS1dCa1M1aFV1cnRiZzZjb3ArT3p5T3Y4N3RNVGNwdDRZYXFCRlMvSHQKIGlMR1IxRndKTlNFYURXMVUyUUdiS1d0NGtrQllHK1BSa0Rhc1E0dnhlWG9LT0IyWlMxSDBweWlXdDlaSGFUYUdxd0x3anpQNXAKIFRuL1FHbjB3SmxRT3N4dVcwNjZhdFd0MFZvMWFIV1JwUFNudHpLd0J5citqOW9vbXdlNzZIWnpBTzQ4cWltMjR0dVVBQ2pTZGUKIGhHU3M2aE5pb25BPT0KCkhpLAoKT24gMjgvMTIvMTcgMjA6NDYsIFN0ZXBoZW4gQ29ubm9sbHkgd3JvdGU6Cj4gQnV0IHNob3VsZG7igJl0IHdlIGJlIGNvcHlpbmcgdGhlIGxhc3QgbW9kaWZpZWQgdGltZSBzdGFtcCBhbHdheXMgYW55d2F5CgpJJ20gdGhlIHNhbWUgb3Bpbmlvbi4uLmJ1dCB0aGF0IG1lYW5zIGluIGNvbnNlcXVlbmNlIHRoYXQgdGhlIHRlc3QgaW4gCnBsZXh1cy1hcmNoaXZlciBpcyBub3QgY29ycmVjdC4uLmNhdXNlIGl0J3Mgd2FpdGluZyBmb3IgYSBjaGFuZ2UgaW4gdGhlIApsYXN0LW1vZGlmaWVkIHRpbWUgLi4uCgpIbS4uLgoKS2luZCByZWdhcmRzCkthcmwgSGVpbnogTWFyYmFpc2UKCgo+IAo+IE9uIFRodSAyOCBEZWMgMjAxNyBhdCAxNDo1MiwgS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGUgCj4gPG1haWx0bzpraG1hcmJhaXNlQGdteC5kZT4+IHdyb3RlOgo+IAo+ICAgICBIaSwKPiAKPiAgICAgYWZ0ZXIgZGl2aW5nIG1vcmUgaW50byB0aGlzLi4KPiAKPiAgICAgSSBmb3VuZCB0aGF0IGlmIEkgdXBncmFkZSBwbGV4dXMtdXRpbHMgdG8gMy4xLjAgaW4gcGxleHVzLWFyY2hpdmVyIHRoZQo+ICAgICB0ZXN0cyBpbiBwbGV4dXMtYXJjaGl2ZXIgc3R1Y2sgY29tcGxldGVseS4uLmFzIEkgYWxyZWFkeSBvYnNlcnZlZCAod2hpY2gKPiAgICAgSSB0aG91Z2ggd2FzIGFub3RoZXIgY2F1c2UpLi4uCj4gCj4gICAgIGh0dHBzOi8vdHJhdmlzLWNpLm9yZy9jb2RlaGF1cy1wbGV4dXMvcGxleHVzLWFyY2hpdmVyL2pvYnMvMzIxODIxMjk0Cj4gCj4gICAgIFNvIG1vcmUgZGl2aW5nIGludG8gdGhlIGRldGFpbHMgSSByZWFsaXplZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29kZSBpbgo+ICAgICBwbGV4dXMtdXRpbHMgY2F1c2VzIHRoZSBpc3N1ZToKPiAKPiAgICAgRmlsZVV0aWxzLmphdmE6Cj4gCj4gICAgICDCoCDCoCDCoHByaXZhdGUgc3RhdGljIHZvaWQgZG9Db3B5RmlsZSggRmlsZSBzb3VyY2UsIEZpbGUgZGVzdGluYXRpb24gKQo+ICAgICAgwqAgwqAgwqAgwqAgwqB0aHJvd3MgSU9FeGNlcHRpb24KPiAgICAgIMKgIMKgIMKgewo+ICAgICAgwqAgwqAgwqAgwqAgwqAvLyBvZmZsb2FkIHRvIG9wZXJhdGluZyBzeXN0ZW0gaWYgc3VwcG9ydGVkCj4gICAgICDCoCDCoCDCoCDCoCDCoGlmICggSmF2YTdEZXRlY3Rvci5pc0phdmE3KCkgKQo+ICAgICAgwqAgwqAgwqAgwqAgwqB7Cj4gICAgICDCoCDCoCDCoCDCoCDCoCDCoCDCoGRvQ29weUZpbGVVc2luZ05ld0lPKCBzb3VyY2UsIGRlc3RpbmF0aW9uICk7Cj4gICAgICDCoCDCoCDCoCDCoCDCoH0KPiAgICAgIMKgIMKgIMKgIMKgIMKgZWxzZQo+ICAgICAgwqAgwqAgwqAgwqAgwqB7Cj4gICAgICDCoCDCoCDCoCDCoCDCoCDCoCDCoGRvQ29weUZpbGVVc2luZ0xlZ2FjeUlPKCBzb3VyY2UsIGRlc3RpbmF0aW9uICk7Cj4gICAgICDCoCDCoCDCoCDCoCDCoH0KPiAgICAgIMKgIMKgIMKgfQo+IAo+ICAgICBUaGUgcmVhbCBpc3N1ZSBpcyBsb2NhdGVkIGluIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBkb0NvcHlGaWxlVXNpbmdOZXdJTwo+ICAgICB3aGljaCB1c2VzOgo+IAo+IAo+IAo+ICAgICAgwqAgwqAgwqBwdWJsaWMgc3RhdGljIEZpbGUgY29weSggRmlsZSBzb3VyY2UsIEZpbGUgdGFyZ2V0ICkKPiAgICAgIMKgIMKgIMKgIMKgIMKgdGhyb3dzIElPRXhjZXB0aW9uCj4gICAgICDCoCDCoCDCoHsKPiAgICAgIMKgIMKgIMKgIMKgIMKgUGF0aCBjb3B5ID0gRmlsZXMuY29weSggc291cmNlLnRvUGF0aCgpLCB0YXJnZXQudG9QYXRoKCksCj4gICAgICDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBTdGFuZGFyZENvcHlPcHRpb24uUkVQTEFDRV9FWElTVElORywKPiAgICAgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIFN0YW5kYXJkQ29weU9wdGlvbi5DT1BZX0FUVFJJQlVURVMsCj4gICAgICDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBMaW5rT3B0aW9uLk5PRk9MTE9XX0xJTktTICk7Cj4gICAgICDCoCDCoCDCoCDCoCDCoHJldHVybiBjb3B5LnRvRmlsZSgpOwo+ICAgICAgwqAgwqAgwqB9Cj4gCj4gICAgIGFuZCBJZiBJIGNvcnJlY3RseSB1bmRlcnN0YW5kIHRoZSB3aG9sZSB0aGluZyBpcyB0aGUgcmVhbCBjYXVzZSBvZiB0aGF0Cj4gICAgIGJhc2VkIG9uIHRoZSB1c2FnZSBvZiBTdGFuZGFyZENvcHlPcHRpb24uQ09QWV9BVFRSSUJVVEVTIHdoaWNoIGluY2x1ZGVzCj4gICAgIGNvcHlpbmcgb2YgdGhlIGxhc3QtbW9kaWZpZWQgb2YgdGhlIGZpbGUuLi53aGljaCBtZWFucyBub3QgdG8gY2hhbmdlIHRoZQo+ICAgICBsYXN0LW1vZGlmaWVkIGVudHJ5IG9mIHRoZSBmaWxlIGFuZCBpbiByZXN1bHQgdGhhdCBpcyB0aGUgcmVhc29uIG9mIG5vdAo+ICAgICBjaGFuZ2luZyBpdCBhbmQgdGhlIHN0dWNraW5nIG9mIHRoZSB1bml0IHRlc3QgaW4gcGxleHVzLWFyY2hpdmVyLi4uKHNlZQo+ICAgICB0cmF2aXMgYnVpbGQgYWJvdmUpLi4KPiAKPiAKPiAgICAgQWZ0ZXIgSSBoYXZlIGNoYW5nZWQgdGhhdCBhbmQgb25seSB1c2UKPiAKPiAgICAgIMKgIMKgIMKgcHVibGljIHN0YXRpYyBGaWxlIGNvcHkoIEZpbGUgc291cmNlLCBGaWxlIHRhcmdldCApCj4gICAgICDCoCDCoCDCoCDCoCDCoHRocm93cyBJT0V4Y2VwdGlvbgo+ICAgICAgwqAgwqAgwqB7Cj4gICAgICDCoCDCoCDCoCDCoCDCoFBhdGggY29weSA9IEZpbGVzLmNvcHkoIHNvdXJjZS50b1BhdGgoKSwgdGFyZ2V0LnRvUGF0aCgpLAo+ICAgICAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgU3RhbmRhcmRDb3B5T3B0aW9uLlJFUExBQ0VfRVhJU1RJTkcsCj4gICAgICDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBMaW5rT3B0aW9uLk5PRk9MTE9XX0xJTktTICk7Cj4gICAgICDCoCDCoCDCoCDCoCDCoHJldHVybiBjb3B5LnRvRmlsZSgpOwo+ICAgICAgwqAgwqAgwqB9Cj4gCj4gICAgIGl0IGxvb2tzIGxpa2Ugd29ya2luZyAoc2VlIGJyYW5jaCBpc3N1ZS1maXgpOgo+IAo+ICAgICBXaGF0IERvIHlvdSB0aGluaz8KPiAKPiAgICAgS2luZCByZWdhcmRzCj4gICAgIEthcmwgSGVpbnogTWFyYmFpc2UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDg4OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gRGVjIDMxIDAwOjAyOjMzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg4OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBEMUI0QjE3REVCCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMzEgRGVjIDIwMTcgMDA6MDI6MzMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyNDMyIGludm9rZWQgYnkgdWlkIDUwMCk7IDMxIERlYyAyMDE3IDAwOjAyOjMzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMzUxIGludm9rZWQgYnkgdWlkIDUwMCk7IDMxIERlYyAyMDE3IDAwOjAyOjMzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjM0MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDMxIERlYyAyMDE3IDAwOjAyOjMzIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAzMSBEZWMgMjAxNyAwMDowMjozMyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEE1OUQwMTgwNUM4Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAzMSBEZWMgMjAxNyAwMDowMjozMiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBzM1J1aURzUWtUcDcgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sIDMxIERlYyAyMDE3IDAwOjAyOjI5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwNy5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyOV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA2NDQwMDVGM0NDCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAzMSBEZWMgMjAxNyAwMDowMjoyOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQzMCB3aXRoIE1FCglpZCBzUTJNMXcwMFMyMFVmZHkwM1EyTXRFOyBTdW4sIDMxIERlYyAyMDE3IDAxOjAyOjIyICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFN1biwgMzEgRGVjIDIwMTcgMDE6MDI6MjIgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDYzogc2Nvbm5vbGx5QGNsb3VkYmVlcy5jb20KU3ViamVjdDogUmU6IFtJTVBPUlRBTlRdIFJlOiBHaXQgbWlncmF0aW9uIG5leHQgc3RlcHMKRGF0ZTogU3VuLCAzMSBEZWMgMjAxNyAwMTowMjoyMSArMDEwMApNZXNzYWdlLUlEOiA8MTAwOTgyNzgxLm92S2k5VkdOcjVAZ2lnYT4KSW4tUmVwbHktVG86IDxDQVBveUJxUTF2TVNUYWJ3K0JMby1iNzdWUXBGaHJBa002R2VRc2RDcHVKMjV3WlZYPXdAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDwyMDA5NzY1NTkyLjIyOTcyMjE3LjE1MTQxMDkyNTY2MzIuSmF2YU1haWwucm9vdEBzcG9vbGVyNC1nMjc+IDwxOTE3NjcxMS5Pczd4eEtiODNmQGdpZ2E+IDxDQVBveUJxUTF2TVNUYWJ3K0JMby1iNzdWUXBGaHJBa002R2VRc2RDcHVKMjV3WlZYPXdAbWFpbC5nbWFpbC5jb20+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKTGUgZGltYW5jaGUgMzEgZD1FOWNlbWJyZSAyMDE3LCAwMDowNDo1OSBDRVQgT2xpdmllciBMYW15IGEgPUU5Y3JpdCA6Cj4gd29ya3MgZmluZSAob24gbXkgbWFjaGluZSA6LSkgKQo+IE9TWCArIGphdmEgMS44LjBfMTIxCm9rLCBJIGhhZCBhIGRlZXBlciBsb29rOiB0aGUgSVQgZXhwZWN0cyBhIHdhcm5pbmcgdGhhdCBleGlzdHMgd2l0aCBKYXZhIDg9MjAKKG1pc3NpbmcgQHBhcmFtKSBidXQgbm90IEphdmEgNyAobW9yZSBwZXJtaXNzaXZlIG9uIGRvY3VtZW50YXRpb24pCkkgYWRkZWQgYSBzZXJpYWx3YXJuOiB0aGlzIGNhdXNlcyBhIHdhcm5pbmcgaW4gSmF2YSA3IGFsc28sIHRoZW4gZml4ZXMgdGhlID0KSVQKClRoZXJlIGlzIG5vIGlzc3VlIG9uIG15IG1hY2hpbmUgYW55IG1vcmUgOikKCj49MjAKPiBXZWxsIFRCSCBJJ20gYSBiaXQgbG9zdCB3aXRoIEplbmtpbnMgcmVzdWx0IGRpc3BsYXkuLi4uCj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvam9iL21hdmVuLWphdj0KYWRvCj4gYy1wbHVnaW4vam9iL21hc3Rlci8KPj0yMAo+IHdoYXQgYXJlIGFsbCB0aGUgb3BlbiB0YXNrcyBsaW5rcz8Kd2FzIHN1cHBvc2VkIHRvIGJlIGZpeGVkIGFmdGVyIEplbmtpbnMgcGx1Z2luIHVwZ3JhZGUgdGhpcyB3ZWVrCkBTdGVwaGVuIGlzIHRoaXMgYSBrbm93biBpc3N1ZT8KCj49MjAKPiBJJ20gZXZlbiBtb3JlIGxvc3QgSWYgSSBsb29rIGF0IGEgYnVpbGQgcmVzdWx0Cj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvam9iL21hdmVuLWphdj0KYWRvCj4gYy1wbHVnaW4vam9iL21hc3Rlci8zLyBjaGFuZ2VzIGFyZSBkdXBsaWNhdGVkCj4ganVuaXQgcmVzdWx0IHNheXMgZmFpbHVyZQo+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tYm94L2pvYi9tYXZlbi1qYXY9CmFkbwo+IGMtcGx1Z2luL2pvYi9tYXN0ZXIvMy90ZXN0UmVwb3J0LyBidXQgbG9va2luZyBhdCBmYWlsZWQgdGVzdCByZXN1bHQgc2F5cwo+IHBhc3NlZAo+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tYm94L2pvYi9tYXZlbi1qYXY9CmFkbwo+IGMtcGx1Z2luL2pvYi9tYXN0ZXIvMy90ZXN0UmVwb3J0L29yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy5qYXZhZG9jL0phdmFkb2M9ClJlcAo+IG9ydFRlc3QvdGVzdEphdmFkb2NSZXNvdXJjZXMvCj49MjAKPiBBcyBJIGNhbiB1bmRlcnN0YW5kIGFsbCBidWlsZCBsb2dzIChsaW51eC93aW5kb3dzIHdpdGggZGlmZmVyZW50IGpka3MpIGFyZQo+IHRvdGFsbHkgbWl4ZWQgdXAgYWxsIHRvZ2V0aGVyCj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvam9iL21hdmVuLWphdj0KYWRvCj4gYy1wbHVnaW4vam9iL21hc3Rlci8zL2NvbnNvbGVGdWxsIFRCSCBpdCBhIHJlYWxseSBiaWcgcGFpbiB0byByZWFkISEgSSBkbz0Kbid0Cj4gd2FudCB0byBzcGVuZCBob3VycyBvbiB0aGF0Li4uLi4gU28gYWZ0ZXIgd2FzdGluZyBhIGJpdCBvZiB0aW1lIGl0IGxvb2tzCj4gdGhlIGJ1aWxkIGlzIGZhaWxpbmcgb24gd2luZG93cyBvbmx5Cml0IHNlZW1zIGl0J3MgYW5vdGhlciBjb21wbGV0ZWx5IHVucmVsYXRlZCBpc3N1ZSB0byBtaW5lLCB3aGljaCB3YXMgcmVsYXRlZD0KIHRvPTIwCkphdmEgNyBub3QgZ2V0dGluZyBhbnkgd2FybmluZyBvbiBhbiBJVCB0aGF0IGV4cGVjdGVkIGEgd2FybmluZwoKPj0yMAo+IFt3aW5kb3dzLWpkazhdIFtXQVJOSU5HXSBUaGUgZm9sbG93aW5nIGJ1aWxkcyBmYWlsZWQ6W3dpbmRvd3MtamRrOF0KPiBbV0FSTklOR10gKiAgZGV0ZWN0TGlua3NccG9tLnhtbAo+PTIwCj49MjAKPiBbd2luZG93cy1qZGs3XSBbV0FSTklOR10gVGhlIGZvbGxvd2luZyBidWlsZHMgZmFpbGVkOgo+PTIwCj4gW3dpbmRvd3MtamRrN10gW1dBUk5JTkddICogIGRldGVjdExpbmtzXHBvbS54bWwKPj0yMAo+PTIwCj4gSG9uZXN0bHkgdGhlIGN1cnJlbnQgamVua2lucyByZXN1bHQgaXMgY29tcGxpY2F0ZWQgdG8gdXNlLi4uLgp3aGVuIHRoZSByZXNldWx0IGlzIGEgcGFzc2luZyBidWlsZCwgaXQncyBwZXJmZWN0LCBidXQgSSBjb25maXJtIHRoYXQgd2hlbj0KPTIwCnRoZXJlIGlzIGEgZmFpbHVyZSwgaXQncyBhIHBhaW4gdG8gdW5kZXJzdGFuZCB3aGVyZSBpcyB0aGUgZmFpbHVyZSAod2hpY2ggTz0KUy8KamRrLCB3aGljaCB0ZXN0KQphbmQgZXZlbnR1YWxseSBkZXRlY3QgaWYgdGhlcmUgYXJlIGZhbHNlIHBvc2l0aXZlcyBvbiBzb21lIGNvbmRpdGlvbnMuLi4KCj4gQW5kIGFzIGZhciBJIGNhbiBzZWUgU05BUFNIT1QgYXJlIG5vdCBhbnltb3JlIGRlcGxveWVkIHdoZXJlYXMgdGhleSB3ZXJlCj4gZGVwbG95ZWQgcHJldmlvdXNseS4KPiBJTUhPIGl0J3MgdmVyeSBjb252ZW5pZW50IGFzIHNvbWUgdXNlcnMgdGVzdCBvdXIgZml4ZXMuLi4uCkBTdGVwaGVuIGFkZGluZyBhdXRvLWRlcGxveSBmb3IgbWFzdGVyIGJyYW5jaCBjb3VsZCBtYWtlIHNlbnNlLCBpc24ndCBpdD8KCj49MjAKPiBAaGVydmUgZG8geW91IGhhdmUgYW55IGxvZ3MgcmVnYXJkaW5nIHRoZSBidWlsZCBmYWlsaW5nIGZvciB5b3UuCj49MjAKPiBPbiAzMCBEZWNlbWJlciAyMDE3IGF0IDIwOjUxLCBIZXJ2PUU5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3JvPQp0ZToKPiA+IG1lcmdlIGRvbmU6IGNhbiB5b3UgY2hlY2sgaXQncyBhcyB5b3UgZXhwZWN0ZWQ/Cj4gPj0yMAo+ID4gbm90aWNlIHRoYXQgaWYgeW91IGhhdmUgZmFpbGluZyBJVCBvbiBNSkFWQURPQy01MDggbGlrZSBJIGhhdmUgbG9jYWxseSwKPiA+IGl0J3MKPiA+IG5vdCB0aGUgbWVyZ2UgYnV0IGl0IHdhcyBhbHJlYWR5IHByZXNlbnQgYmVmb3JlCj4gPj0yMAo+ID4gQE9saXZpZXI6IEkgZG9uJ3Qga25vdyBpbiB3aGljaCBjb25kaXRpb25zIHlvdSB0ZXN0ZWQgTUpBVkFET0MtNTA4LCBidXQ9CiBpdAo+ID4gaXMKPiA+IGZhaWxpbmcgZm9yIG1lOiBMaW51eCtKYXZhIDcKPiA+PTIwCj4gPiBSZWdhcmRzLAo+ID49MjAKPiA+IEhlcnY9RTkKPiA+PTIwCj4gPiBMZSBqZXVkaSAyOCBkPUU5Y2VtYnJlIDIwMTcsIDA5OjQ4OjMxIENFVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiA+ID4gb24gbWF2ZW4tamF2YWRvYy1wbHVnaW46IHdoYXQgYWJvdXQgbWVyZ2luZyBtYXN0ZXIyIGJyYW5jaCBpbnRvIG1hc3RlPQpyLAo+ID49MjAKPiA+IGxpa2UKPiA+PTIwCj4gPiA+IGlmIGl0IHdhcyBhIFBSPwo+ID4gPiBJbiBnZW5lcmFsLCBJIGRvbid0IGxpa2UgdGhpcyB3YXkgb2YgZG9pbmcgUFIgbWVyZ2VzIChJIHByZWZlciByZWJhc2k9Cm5nCj4gPj0yMAo+ID4gb3IKPiA+PTIwCj4gPiA+IGNoZXJyeSBwaWNraW5nLCB0byBhdm9pZCB0aGUgbWVyZ2UgY29tbWl0IGFuZCB0aGUgcGFyYWxsZWwgYnJhbmNoZXMKPiA+PTIwCj4gPiBzdGF5aW5nCj4gPj0yMAo+ID4gPiBmb3IgZXZlciBpbiB0aGUgcmVwbyksIGJ1dCBzaW5jZSB0aGlzIHdheSBvZiBtZXJnaW5nIFBScyBpcyBvZnRlbiB1c2VkCj4gPiA+IGJ5Cj4gPiA+IHRoZSB0ZWFtLCBsZXQncyB1c2UgdGhpcyB0ZWNobmlxdWUgb24gdGhlIGN1cnJlbnQgY2FzZSB3aGVyZSBpdCBtYWtlcwo+ID4gPiBvdXIKPiA+ID4gbGlmZSBlYXNpZXIKPiA+ID49MjAKPiA+ID4gUmVnYXJkcywKPiA+ID49MjAKPiA+ID4gSGVydj1FOQo+ID4gPj0yMAo+ID4gPiBMZSBkaW1hbmNoZSAyNCBkPUU5Y2VtYnJlIDIwMTcsIDEzOjA0OjU2IENFVCBSb2JlcnQgU2Nob2x0ZSBhID1FOWNyaXQ9CiA6Cj4gPiA+ID4gSSBkaWQgdGhlIGFzc3VtcHRpb24gdGhhdCB5b3UgY2FuIGlzb2xhdGUgYWxsIG1hdmVuLWphdmFkb2MtcGx1Z2luCj4gPiA+ID4gY29tbWl0cy4KPiA+ID4gPiBJZiBpdCBpcyBmb3IgYWxsIG1hdmVuLXBsdWdpbnMgb3Igbm90aGluZywgdGhlbiBpdCBpcyBhIGRpZmZlcmVudAo+ID49MjAKPiA+IHN0b3J5Lgo+ID49MjAKPiA+ID4gPiBPbiBTdW4sIDI0IERlYyAyMDE3IDEwOjU0OjE2ICswMTAwLCA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cm90ZToKPiA+ID4gPiA+IEknZCBzdWdnZXN0IHRvIHRyeSB0aGUgcHJvY2VzcyB0byBhIHBlcnNvbmFsIHBlcnNvbmFsIHJlcG8gb24gR2l0PQpIdWIKPiA+PTIwCj4gPiB0bwo+ID49MjAKPiA+ID4gPiA+IHNlZSBpZiB5b3UncmUgYWJsZSB0byBnZXQgYSBiZXR0ZXIgcmVzdWx0IGJlZm9yZSBpbnZvbHZpbmcgbWFudWFsCj4gPj0yMAo+ID4gd29yawo+ID49MjAKPiA+ID4gPiA+IGZyb20gSU5GUkEgKG9uIG1vcmUgdGhhbiA2MCByZXBvcy4uLikKPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiAoaXQncyBzYWQgdG8gc2VlIG5vYm9keSB0cnkgdG8gZXhwbGFpbiB3aGF0J3MgaGFwcGVubmluZyBvciBpbXBybz0KdmUKPiA+PTIwCj4gPiB0aGUKPiA+PTIwCj4gPiA+ID4gPiBkb2N1bWVudGVkIGNvbW1hbmRzLCBqdXN0IGdldCB0byBhIGNvbmNsdXNpb246IHJlLWRvIGV2ZXJ5dGhpbmcgYT0KbmQKPiA+ID4gPiA+IHByYXkpCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBIZXJ2PUU5Cj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gLS0tLS0gTWFpbCBvcmlnaW5hbCAtLS0tLQo+ID4gPiA+ID4gRGU6ICJLYXJsIEhlaW56IE1hcmJhaXNlIiA8a2htYXJiYWlzZUBnbXguZGU+Cj4gPiA+ID4gPiA9QzA6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sICJSb2JlcnQgU2Nobz0KbHRlIgo+ID4gPiA+ID4gPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgo+ID4gPiA+ID4gRW52b3k9RTk6IERpbWFuY2hlIDI0IEQ9RTljZW1icmUgMjAxNyAxMDo0Nzo0Mwo+ID4gPiA+ID4gT2JqZXQ6IFJlOiBbSU1QT1JUQU5UXSBSZTogR2l0IG1pZ3JhdGlvbiBuZXh0IHN0ZXBzCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gSGksCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gT24gMjQvMTIvMTcgMTA6NDAsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+ID4gPiA+ID4+IEhvdyBhYm91dCBhIGhhcmQgcmVzZXQgb3IgZHJvcHBpbmcgdGhlIHJlcG8gYW5kIGRvaW5nIGl0IGFsbCBvdmVyCj4gPiA+ID4gPj4gYWdhaW4/Cj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gSWYgSSBjb3JyZWN0bHkgc2VlbiB0aGF0IC4udGhlcmUgaGFkIG5vIGNvbW1pdCB5ZXQgb24gdGhlIG5ldyBnaXQKPiA+ID4gPiA+IHJlcG9zLi4KPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBTbyBJIHRoaW5rIGl0IHdvdWxkIGJlIHRoZSBlYXNpZXN0IHdheSB0byBkbyBhcyBSb2JlcnQgc3VnZ2VzdCAuLj0KPTJFdG8KPiA+ID4gPiA+IHJlZG8gbWlncmF0aW9uIGZvciB0aG9zZSByZXBvcy4uCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gS2luZCByZWdhcmRzCj4gPiA+ID4gPiBLYXJsIEhlaW56Cj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4+IE9uIFdlZCwgMjAgRGVjIDIwMTcgMTA6NDI6MzYgKzAxMDAsIEhlcnY9RTkgQk9VVEVNWQo+ID4gPiA+ID4+PTIwCj4gPiA+ID4gPj4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3JvdGU6Cj4gPiA+ID4gPj4+IElORlJBLTE1Njc5IGZpeGVkIGJ5IGluZnJhIHRlYW0KPiA+ID4gPiA+Pj4gdGhlbiBJIHJlLXJ1biBtaWdyYXRlLXBsdWdpbnMuc2ggc2NyaXB0IHRvIHNwbGl0IHRoZSBzdm4yZ2l0Cj4gPj0yMAo+ID4gbWlycm9yIHRvCj4gPj0yMAo+ID4gPiA+ID4+PiBwZXItCj4gPiA+ID4gPj4+IHBsdWdpbiBnaXQgcmVwbwo+ID4gPiA+ID4+PiBhbmQgSSBwdXNoZWQgIm1hc3RlcjIiIGJyYW5jaGVzIGZvciBtLWphdmFkb2MtcCwgbS1zaXRlLXAgYW5kCj4gPj0yMAo+ID4gbS1wZGYtcCwKPiA+PTIwCj4gPiA+ID4gPj4+IHdoaWNoCj4gPiA+ID4gPj4+IHdlcmUgdGhlIDMgcGx1Z2lucyB3aGljaCBzdWZmZXJlZCBmcm9tIG1pc3NpbmcgY29tbWl0cwo+ID4gPiA+ID4+Pj0yMAo+ID4gPiA+ID4+PiBvbiBtLXNpdGUtcCBhbmQgbS1wZGYtcCwgSSdsbCBjaGVycnkgcGljayB0aGUgdW5pcXVlIGNvbW1pdCB0aGF0Cj4gPj0yMAo+ID4gd2FzCj4gPj0yMAo+ID4gPiA+ID4+PiBtaXNzZWQ6Cj4gPiA+ID4gPj4+IG5vdCBhIGJpZyBkZWFsCj4gPiA+ID4gPj4+PTIwCj4gPiA+ID4gPj4+IG9uIG0tamF2YWRvYy1wLCB0aGUgc2l0dWF0aW9uIGlzIG1vcmUgY29wbGV4LCBzaW5jZSB0aGVyZSB3YXMgYQo+ID4gPiA+ID4+PiByZWxlYXNlCj4gPiA+ID4gPj4+PTIwCj4gPiA+ID4gPj4+IEkgYWxzbyBub3RpY2VkIHRoYXQgSSBmb3Jnb3QgdG8gcHVzaCB0YWdzIHdoZW4gaW1wb3J0aW5nOiBJCj4gPj0yMAo+ID4gc3RhcnRlZCB0bwo+ID49MjAKPiA+ID4gPiA+Pj4gZG8gImdpdAo+ID4gPiA+ID4+PiBwdXNoIC0tdGFncyIsIGJ1dCB0aGUgcmVzdWx0IGRvZXMgbm90IGxvb2sgYXMgSSBleHBlY3RlZDogaXQKPiA+PTIwCj4gPiBjcmVhdGVzIGEKPiA+PTIwCj4gPiA+ID4gPj4+IGxvdCBvZgo+ID4gPiA+ID4+PiBwYXJhbGxlbCBicmFuY2hlcwo+ID4gPiA+ID4+Pj0yMAo+ID4gPiA+ID4+PiBJJ2xsIG5lZWQgaGVscCBmcm9tIGdpdCBleHBlcnRzOiB3aGF0IGlzIGhhcHBlbmluZz8KPiA+ID4gPiA+Pj49MjAKPiA+ID4gPiA+Pj4gSSBzdG9wcGVkIHRoZSB0YWdzIHB1c2ggaGFsZiB0aGUgd2F5LCB3ZSdsbCBuZWVkIHRvIGRlY2lkZSB3aGF0PQogdG8KPiA+ID4gPiA+Pj4gZG8uLi4KPiA+ID4gPiA+Pj4gKEkga25ldyBJIHdhcyBub3QgYSBnaXQgZXhwZXJ0IGFuZCB0aGVyZSB3YXMgYSByaXNrIGZvciBzb21ldGhpPQpuZwo+ID4gPiA+ID4+PiB3ZWlyZCBsaWtlCj4gPiA+ID4gPj4+IHdoYXQncyBjdXJyZW50bHkgaGFwcGVuaW5nLi4uKQo+ID4gPiA+ID4+Pj0yMAo+ID4gPiA+ID4+PiBBbnkgaGludD8KPiA+ID4gPiA+Pj49MjAKPiA+ID4gPiA+Pj4gUmVnYXJkcywKPiA+ID4gPiA+Pj49MjAKPiA+ID4gPiA+Pj4gSGVydj1FOQo+ID4gPiA+ID4+Pj0yMAo+ID4gPiA+ID4+PiBMZSBzYW1lZGkgMTYgZD1FOWNlbWJyZSAyMDE3LCAxNjoyODo0OCBDRVQgSGVydj1FOSBCT1VURU1ZIGEgPQo9RTljcml0IDoKPiA+ID4gPiA+Pj4+IG9rLCBJIHdhcyBjb25mdXNlZCBieSB0aGUgZGlmZmVyZW50IHRha2VzIGF0IG0tamF2YWRvYy1wIDMuMC4wCj4gPiA+ID4gPj4+Pj0yMAo+ID4gPiA+ID4+Pj4geWVzLCBzdm4yZ2l0IG1pcnJvciBpcyBzdHVjayBbMV0gYXQgcjE4MTU2NzUKPiA+ID4gPiA+Pj4+PTIwCj4gPiA+ID4gPj4+PiBJIGp1c3Qgb3BlbmVkIGFuIElORlJBIEppcmEgaXNzdWUKPiA+ID4gPiA+Pj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvSU5GUkEtMTU2NzkKPiA+ID4gPiA+Pj4+PTIwCj4gPiA+ID4gPj4+PiBvbmNlIHRoZSBzdm4yZ2l0IG1pcnJvciB3aWxsIGJlIHVwZGF0ZWQsIHdlJ2xsIGhhdmUgdG8gcmUtcnVuID0KdGhlCj4gPiA+ID4gPj4+PiBzcGxpdAo+ID4gPiA+ID4+Pj4gc2NyaXB0cyBhbmQgY2hlcnJ5IHBpY2sgdGhlIG1pc3NpbmcgY29tbWl0cwo+ID4gPiA+ID4+Pj49MjAKPiA+ID4gPiA+Pj4+IFJlZ2FyZHMsCj4gPiA+ID4gPj4+Pj0yMAo+ID4gPiA+ID4+Pj4gSGVydj1FOQo+ID4gPiA+ID4+Pj49MjAKPiA+ID4gPiA+Pj4+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvY29tbWl0cy90cnVuawo+ID4gPiA+ID4+Pj49MjAKPiA+ID4gPiA+Pj4+IExlIHNhbWVkaSAxNiBkPUU5Y2VtYnJlIDIwMTcsIDEzOjAxOjA1IENFVCBSb2JlcnQgU2Nob2x0ZSBhID0KPUU5Y3JpdCA6Cj4gPiA+ID4gPj4+PiA+IEkgd2FzIHRyaWdnZXJlZCBieSBzb21lIGZhaWxpbmcgdW5pdCB0ZXN0cywgd2hpY2ggc2hvdWxkIGhhdmUKPiA+PTIwCj4gPiBiZWVuCj4gPj0yMAo+ID4gPiA+ID4+Pj4gc29sdmVkCj4gPiA+ID4gPj4+Pj0yMAo+ID4gPiA+ID4+Pj4gPiBpbiBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+ID4gPiA+ID4+Pj4gPj0yMAo+ID4gPiA+ID4+Pj4gPiBNeSBsYXN0IGNvbW1pdCBhY2NvcmRpbmcgdG8gR0lUIHdhcyBub3ZlbWJlciAxOHRoCj4gPiA+ID4gPj4+PiA+IE15IGxhc3QgY29tbWl0IGFjY29yZGluZyB0byBTVk4gd2FzIGRlY2VtYmVyIDNyZAo+ID4gPiA+ID4+Pj4gPj0yMAo+ID4gPiA+ID4+Pj4gPiBjb21wYXJpbmcgc3ZubG9nIHdpdGggZ2l0bG9nIG1vc3Qgb2YgdGhlc2UgY29tbWl0cyBhcmUgbG9zdDoKPiA+ID4gPiA+Pj4+ID49MjAKPiA+ID4gPiA+Pj4+ID4gbW92ZWQgdG8gZ2l0Cj4gPiA+ID4gPj4+PiA+IC0tLS0KPiA+ID4gPiA+Pj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIGZvciBuZXh0IGRldmVsb3BtZW50IGl0ZXJhdGlvbgo+ID4gPiA+ID4+Pj4gPiAtLS0tCj4gPiA+ID4gPj4+PiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSByZWxlYXNlCj4gPj0yMAo+ID4gbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAKPiA+PTIwCj4gPiA+ID4gPj4+PiA+IC0tLS0KPiA+ID4gPiA+Pj4+ID4gW01KQVZBRE9DLTQ5OF0gIm1vZHVsZSBub3QgZm91bmQiIHdoZW4gSmF2YSA5IG1vZHVsZS1pbmZvCj4gPj0yMAo+ID4gcHJlc2VudAo+ID49MjAKPiA+ID4gPiA+Pj4+ID4gU3VwcG9ydCBhZ2dyYXRlZCBqYXZhZG9jCj4gPiA+ID4gPj4+PiA+IC0tLS0KPiA+ID4gPiA+Pj4+ID4gU2tpcCBzZXZlcmFsIHVuaXR0ZXN0cyBmb3IgSmF2YTkKPiA+ID4gPiA+Pj4+ID4gLS0tLQo+ID4gPiA+ID4+Pj4gPiBKREstODAzMjIwNSB3YXMgY2xvc2VkIGFzIG5vdCBhbiBpc3N1ZSwgc28gbm90IHNvbHZlZCBpbiBKYXY9CmE5Lgo+ID4gPiA+ID4+Pj4gPiBOZWVkIHRvIHJldmlldyB0aGUgY29uY2x1c2lvbgo+ID4gPiA+ID4+Pj4gPiAtLS0tCj4gPiA+ID4gPj4+PiA+IFVwZ3JhZGUgbW9ja2l0byB0byByZW1vdmUgd2FybmluZyBhYm91dCBpbGxlZ2FsIHJlZmxlY3RpdmUKPiA+PTIwCj4gPiBhY2Nlc3MKPiA+PTIwCj4gPiA+ID4gPj4+PiA+IC0tLS0KPiA+ID4gPiA+Pj4+ID4gSW1wcm92ZSBUZXN0SmF2YWRvY1JlcG9ydFRlc3QjdGVzdFRlc3RKYXZhZG9jCj4gPiA+ID4gPj4+PiA+IEo4IHdhcm5zIGFuZCBjb250aW51ZXMgd2l0aCBtaXNzaW5nIGRlcGVuZGVuY3ksIEo5IGZhaWxzLgo+ID4gPiA+ID4+Pj4gPiBJbiBmYWN0IHRlc3Qgd2FzIHdyb25nOiBkZXBlbmRlbmN5IHNob3VsZCBoYXZlIGJlZW4gb24KPiA+ID4gPiA+Pj4+ID4gY2xhc3NwYXRoCj4gPiA+ID4gPj4+PiA+IC0tLS0KPiA+ID4gPiA+Pj4+ID4gdW5pdHRlc3Qgc2hvdWxkIHByZWZlciBKQVZBX0hPTUUgd2hlbiBleGVjdXRpbmcgZnJvbSBjbWRsaW5lCj4gPiA+ID4gPj4+PiA+IFdoZW4gcnVubmluZyB3aXRoIEphdmE5KyBubyBuZWVkIHRvIHN3aXRjaCBmcm9tIGpyZSB0byBqZGsKPiA+ID4gPiA+Pj4+ID4gZGlyZWN0b3J5Cj4gPiA+ID4gPj4+PiA+IChqZXAyMjApCj4gPiA+ID4gPj4+PiA+IC0tLS0KPiA+ID4gPiA+Pj4+ID4gTUpBVkFET0MtNTAyIFVwZGF0ZSBERUZBVUxUX0pBVkFfQVBJX0xJTktTCj4gPiA+ID4gPj4+PiA+IC0tLS0KPiA+ID4gPiA+Pj4+ID4gc2Vzc2lvbiBpcyByZXF1aXJlZCBwYXJhbWV0ZXIsIHNvIGNhbm5vdCBiZSBudWxsLiBGaXggcmVsYXRlZAo+ID4gPiA+ID4+Pj49MjAKPiA+ID4gPiA+Pj4+IHVuaXR0ZXN0cwo+ID4gPiA+ID4+Pj49MjAKPiA+ID4gPiA+Pj4+ID4gLS0tLQo+ID4gPiA+ID4+Pj4gPiBBZGQgcHJvamVjdC9hcnRpZmFjdCBrZXkgdG8gc2V0IG9mIHNvdXJjZVBhdGhzIHRvIHJlY29nbml6ZQo+ID49MjAKPiA+IHJlYWN0b3IKPiA+PTIwCj4gPiA+ID4gPj4+PiA+IHByb2plY3RzIHZlcnN1cyBkZXBlbmRlbmNpZXMKPiA+ID4gPiA+Pj4+ID4gLS0tLQo+ID4gPiA+ID4+Pj4gPiBHcm91cCBzZXRzIG9mIHNvdXJjZXBhdGhzIHBlciBwcm9qZWN0LCBpbiBwcmVwYXJlIG9mIHVzYWdlIG9mCj4gPiA+ID4gPj4+PiA+IG1vZHVsZS1zb3VyY2UtcGF0aC4KPiA+ID4gPiA+Pj4+ID4gLS0tLQo+ID4gPiA+ID4+Pj4gPiBTd2l0Y2ggZnJvbSBMaXN0IHRvIENvbGxlY3Rpb24gdG8gbWFrZSBpdCBlYXNpZXIgdG8gdXNlIFNldHMKPiA+PTIwCj4gPiB3aGVuCj4gPj0yMAo+ID4gPiA+ID4+Pj4gPiBwcmVmZXJyZWQKPiA+ID4gPiA+Pj4+ID4gLS0tLQo+ID4gPiA+ID4+Pj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgZm9yIG5leHQgZGV2ZWxvcG1lbnQgaXRlcmF0aW9uCj4gPiA+ID4gPj4+PiA+IC0tLS0KPiA+ID4gPiA+Pj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIHJlbGVhc2UKPiA+PTIwCj4gPiBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+ID49MjAKPiA+ID4gPiA+Pj4+ID4gLS0tLQo+ID4gPiA+ID4+Pj4gPj0yMAo+ID4gPiA+ID4+Pj4gPj0yMAo+ID4gPiA+ID4+Pj4gPj0yMAo+ID4gPiA+ID4+Pj4gPj0yMAo+ID4gPiA+ID4+Pj4gPiBPbiBTYXQsIDE2IERlYyAyMDE3IDEyOjUzOjIzICswMTAwLCBIZXJ2PUU5IEJPVVRFTVkKPiA+ID4gPiA+Pj4+PTIwCj4gPiA+ID4gPj4+PiA8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID4gPiA+ID4+Pj49MjAKPiA+ID4gPiA+Pj4+ID4gd3JvdGU6Cj4gPiA+ID4gPj4+PiA+ID4gbG9va2luZyBhdCBjb21taXRzQCBjb250ZW50IGh0dHBzOi8vbGlzdHMuYXBhY2hlLm9yZy9saXN0Lgo+ID49MjAKPiA+IGh0bWw/Cj4gPj0yMAo+ID4gPiA+ID4+Pj4gPiA+IGNvbW1pdHNAbWF2ZW4uYXBhY2hlLm9yZyB3aXRoIHN1YmplY3QgY29udGFpbmluZwo+ID4gPiA+ID4+Pj49MjAKPiA+ID4gPiA+Pj4+ICJtYXZlbi9wbHVnaW5zL3RydW5rIgo+ID4gPiA+ID4+Pj49MjAKPiA+ID4gPiA+Pj4+ID4gPiBhbmQgcGx1Z2lucyBzdm4yZ2l0IG1pcnJvcgo+ID4gPiA+ID4+Pj4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9jb21taXRzLwo+ID4gPiA+ID4+Pj4gPiA+IHRydW5rCj4gPiA+ID4gPj4+PiA+ID49MjAKPiA+ID4gPiA+Pj4+ID4gPiBvbmx5IDEgY29tbWl0IGlzIG1pc3Npbmc6IG15IGxhdGVzdCBjb21taXQgb24KPiA+PTIwCj4gPiBtYXZlbi1zaXRlLXBsdWdpbgo+ID49MjAKPiA+ID4gPiA+Pj4+ID4gPiAodGhlIGxhc3QgY29tbWl0IGZvciBHaXQgbWlncmF0aW9uIGlzIG5vdCB1c2VmdWwpCj4gPiA+ID4gPj4+PiA+ID49MjAKPiA+ID4gPiA+Pj4+ID4gPj0yMAo+ID4gPiA+ID4+Pj4gPiA+IFNhbWUgb24gc2hhcmVkIHNob3dlZCBubyBtaXNzaW5nIGNvbW1pdC4KPiA+ID4gPiA+Pj4+ID4gPj0yMAo+ID4gPiA+ID4+Pj4gPiA+PTIwCj4gPiA+ID4gPj4+PiA+ID4gd2hhdCBsYXRlc3QgY29tbWl0IG9mIG1hdmVuLWphdmFkb2MtcGx1Z2luIGFyZSB5b3UgbG9va2luZwo+ID49MjAKPiA+IGZvcj8KPiA+PTIwCj4gPiA+ID4gPj4+PiA+ID4gUmVnYXJkcywKPiA+ID4gPiA+Pj4+ID4gPj0yMAo+ID4gPiA+ID4+Pj4gPiA+IEhlcnY9RTkKPiA+ID4gPiA+Pj4+ID4gPj0yMAo+ID4gPiA+ID4+Pj4gPiA+IExlIHNhbWVkaSAxNiBkPUU5Y2VtYnJlIDIwMTcsIDExOjU2OjMxIENFVCBSb2JlcnQgU2Nob2x0ZSBhCj4gPj0yMAo+ID4gPUU5Y3JpdCA6Cj4gPiA+ID4gPj4+PiA+ID4+IEZvciBldmVyeWJvZHkganVzdCBhIHdhcm5pbmcgSSBmYWNlZCB0b2RheToKPiA+ID4gPiA+Pj4+ID4gPj4gSWYgeW91IHN3aXRjaCB0byB0aGUgZ2l0IHJlcG9zLCBwbGVhc2UgbWFrZSBzdXJlIGFsbCBjb21tPQppdHMKPiA+PTIwCj4gPiBhcmUKPiA+PTIwCj4gPiA+ID4gPj4+PiA+ID4+IG1pZ3JhdGVkLgo+ID4gPiA+ID4+Pj4gPiA+PiBJIG5vdGljZWQgdGhlIGxhdGVzdCBjb21taXRzIG9mIHRoZSBtYXZlbi1qYXZhZG9jLXBsdWdpbiA9CmdvdAo+ID4gPiA+ID4+Pj49MjAKPiA+ID4gPiA+Pj4+IGxvc3QuCj4gPiA+ID4gPj4+Pj0yMAo+ID4gPiA+ID4+Pj4gPiA+PiB0aGFua3MsCj4gPiA+ID4gPj4+PiA+ID4+IFJvYmVydAo+ID4gPiA+ID4+Pj4gPiA+Pj0yMAo+ID4gPiA+ID4+Pj4gPiA+PiBPbiBTYXQsIDA5IERlYyAyMDE3IDE3OjA2OjA5ICswMTAwLCBTdGVwaGVuIENvbm5vbGx5Cj4gPiA+ID4gPj4+PiA+ID4+PTIwCj4gPiA+ID4gPj4+PiA+ID4+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+ID4gPiA+Pj4+ID4gPj4gPiBJIHNlZSB3ZSBoYXZlIGEgbGFyZ2UgbnVtYmVyIG9mIHJlcG9zIG5vdyBvbiBnaXRib3ggOy0pCj4gPiA+ID4gPj4+PiA+ID4+ID49MjAKPiA+ID4gPiA+Pj4+ID4gPj4gPiBPbiBUaHUgNyBEZWMgMjAxNyBhdCAwNzowMCwgSGVydj1FOSBCT1VURU1ZCj4gPiA+ID4gPj4+Pj0yMAo+ID4gPiA+ID4+Pj4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPiA+ID4gPiA+Pj4+PTIwCj4gPiA+ID4gPj4+PiA+ID4+IHdyb3RlOgo+ID4gPiA+ID4+Pj4gPiA+PiA+PiBvaywgSSBkaWRuJ3QgdXBkYXRlIG15IHJlcG8gY2xvbmU6IG5vdyB0aGUgcnVuLWl0cwo+ID49MjAKPiA+IHByb2ZpbGUgaXMKPiA+PTIwCj4gPiA+ID4gPj4+PiA+ID4+IGFjdGl2YXRlZAo+ID4gPiA+ID4+Pj4gPiA+Pj0yMAo+ID4gPiA+ID4+Pj4gPiA+PiA+PiB0aGVuIHRoZSBwbGFuIHNob3VsZCBqdXN0IGNvbmZpcm0gIml0IHdvcmtzISIgOikKPiA+ID4gPiA+Pj4+ID4gPj4gPj49MjAKPiA+ID4gPiA+Pj4+ID4gPj4gPj4gYW5kIGZpbmQgd2hpY2ggam9icyBhcmUgc3BlY2lhbCwgbGlrZSBtYXZlbi1kaXN0LXRvb2wKPiA+PTIwCj4gPiAod2hpY2gKPiA+PTIwCj4gPiA+ID4gPj4+PiBoYXMgdG8KPiA+ID4gPiA+Pj4+PTIwCj4gPiA+ID4gPj4+PiA+ID4+IGJlCj4gPiA+ID4gPj4+PiA+ID4+PTIwCj4gPiA+ID4gPj4+PiA+ID4+ID4+IHNjaGVkdWxlZCBkYWlseSBpbnN0ZWFkIG9mIGNvZGUgY2hhbmdlLCBhbmQgb25lIHBsYXRmbz0Kcm0KPiA+ID4gPiA+Pj4+ID4gPj4gPj4gb25seSkKPiA+ID4gPiA+Pj4+ID4gPj4gPj49MjAKPiA+ID4gPiA+Pj4+ID4gPj4gPj4gUmVnYXJkcywKPiA+ID4gPiA+Pj4+ID4gPj4gPj49MjAKPiA+ID4gPiA+Pj4+ID4gPj4gPj4gSGVydj1FOQo+ID4gPiA+ID4+Pj4gPiA+PiA+Pj0yMAo+ID4gPiA+ID4+Pj4gPiA+PiA+PiBMZSBtZXJjcmVkaSA2IGQ9RTljZW1icmUgMjAxNywgMjM6NTg6NDUgQ0VUIFN0ZXBoZW4KPiA+PTIwCj4gPiBDb25ub2xseSBhCj4gPj0yMAo+ID4gPiA+ID4+Pj4gPUU5Y3JpdCA6Cj4gPiA+ID4gPj4+PiA+ID4+ID4+ID4gT24gV2VkIDYgRGVjIDIwMTcgYXQgMjI6MzgsIEhlcnY9RTkgQk9VVEVNWQo+ID4gPiA+ID4+Pj49MjAKPiA+ID4gPiA+Pj4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPiA+ID4gPj4+Pj0yMAo+ID4gPiA+ID4+Pj4gPiA+PiA+PiB3cm90ZToKPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IE5vdyB0aGF0IHdlIGhhdmUgMiBBU0YgT3JnYW5pemF0aW9uIEplbmtpbnMgam9icyAoPQpvbmUKPiA+PTIwCj4gPiBmb3IKPiA+PTIwCj4gPiA+ID4gPj4+PiBnaXRib3gKPiA+ID4gPiA+Pj4+PTIwCj4gPiA+ID4gPj4+PiA+ID4+IFsxXQo+ID4gPiA+ID4+Pj4gPiA+Pj0yMAo+ID4gPiA+ID4+Pj4gPiA+PiA+PiBhbmQKPiA+ID4gPiA+Pj4+ID4gPj4gPj49MjAKPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IG9uZQo+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gZm9yIGdpdC13aXA6IHRoYW5rIHlvdSBTdGVwaGVuKSBhbmQgdGhhdCBpdCBsb29rcwo+ID49MjAKPiA+IHF1aXRlCj4gPj0yMAo+ID4gPiA+ID4+Pj4gPiA+PiBzdWNjZXNzZnVsLAo+ID4gPiA+ID4+Pj4gPiA+Pj0yMAo+ID4gPiA+ID4+Pj4gPiA+PiA+PiBsZXQncwo+ID4gPiA+ID4+Pj4gPiA+PiA+Pj0yMAo+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gcGxhbgo+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gdGhlIG5leHQgc3RlcHMuCj4gPiA+ID4gPj4+PiA+ID4+ID4+ID4gPj0yMAo+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gSGVyZSBpcyB3aGF0IEkgc2VlOgo+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gMS4gcmVtb3ZhbCBvZiBoYW5kLWRlZmluZWQgSmVua2lucyBqb2JzIHRoYXQgYXJlIG49Cm93Cj4gPiA+ID4gPj4+Pj0yMAo+ID4gPiA+ID4+Pj4gZHVwbGljYXRlcwo+ID4gPiA+ID4+Pj49MjAKPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IDIuIHByZXBhcmF0aW9uIG9mIHRoZSA2MCBuZXcgZW1wdHkgZ2l0IHJlcG9zIGZvcgo+ID49MjAKPiA+IHNoYXJlZCAmCj4gPj0yMAo+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gcGx1Z2lucwo+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID49MjAKPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IDMuIG1pZ3JhdGlvbiBvZiB0aGUgMSBzaGFyZWQgY29tcG9uZW50IGFuZCAxIHBsdWdpbgo+ID49MjAKPiA+IHVzaW5nCj4gPj0yMAo+ID4gPiA+ID4+Pj4gPiA+PiA+PiBtaWdyYXRlLSouc2gKPiA+ID4gPiA+Pj4+ID4gPj4gPj49MjAKPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IHNjcmlwdHMKPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IFszXSB0byB0ZXN0IGFuZCBldmVudHVhbGx5IHJld29yayB0aGUgSmVua2luc2ZpbGUgPQooSQo+ID4gPiA+ID4+Pj49MjAKPiA+ID4gPiA+Pj4+IHN1cHBvc2UgaXQKPiA+ID4gPiA+Pj4+PTIwCj4gPiA+ID4gPj4+PiA+ID4+IHdpbGwKPiA+ID4gPiA+Pj4+ID4gPj49MjAKPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IHJlcXVpcmUKPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IHNvbWUgbGl0dGxlIGNoYW5nZSwgdG8gcnVuIGFkZCAicnVuLWl0cyIgcHJvZmlsZSkKPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPj0yMAo+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+IEFzIGZhciBhcyBJIHJlY2FsbCwgSSBhZGRlZCAtUCtydW4taXRzIGFscmVhZHkKPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPj0yMAo+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+IEZvciB0aGUgcGx1Z2luLCBJJ2QgbGlrZSB0byBkbyB0aGUgam9iIGZvcgo+ID4gPiA+ID4+Pj49MjAKPiA+ID4gPiA+Pj4+IG1hdmVuLXNpdGUtcGx1Z2luLAo+ID4gPiA+ID4+Pj49MjAKPiA+ID4gPiA+Pj4+ID4gPj4gc2luY2Ugd2UKPiA+ID4gPiA+Pj4+ID4gPj49MjAKPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IGV4cGVjdAo+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gdG8gcmVsZWFzZSBpdCBzb29uLgo+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gRm9yIHRoZSBzaGFyZWQgY29tcG9uZW50LCBJIGRvbid0IGtub3cgaWYgdGhlcmUgaXM9CiBhCj4gPj0yMAo+ID4gYmVzdAo+ID49MjAKPiA+ID4gPiA+Pj4+ID4gPj4gY2FuZGlkYXRlCj4gPiA+ID4gPj4+PiA+ID4+PTIwCj4gPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiA0LiBvbmNlIHByZXZpb3VzIHN0ZXAgaXMgb2ssIGRvIHRoZSBmdWxsIG1pZ3JhdGlvbjoKPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IGlmCj4gPiA+ID4gPj4+Pj0yMAo+ID4gPiA+ID4+Pj4gdGhlcmUgYXJlCj4gPiA+ID4gPj4+Pj0yMAo+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gdm9sdW50ZWVycwo+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gZm9yIGhlbHBpbmcsIHRoYXQgd291bGQgYmUgZ3JlYXQsIHNpbmNlIHBvcHVsYXRpbmc9CiA2MAo+ID49MjAKPiA+IGdpdAo+ID49MjAKPiA+ID4gPiA+Pj4+IHJlcG9zCj4gPiA+ID4gPj4+Pj0yMAo+ID4gPiA+ID4+Pj4gPiA+PiA+PiB3b24ndAo+ID4gPiA+ID4+Pj4gPiA+PiA+PiBiZQo+ID4gPiA+ID4+Pj4gPiA+PiA+Pj0yMAo+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gcmVhbGx5IGZ1bi4uLgo+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID49MjAKPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IEFuZCBhcyBwYXJ0IG9mIDYwIGVtcHR5IGdpdCByZXBvcyBjcmVhdGlvbiwgSSBwcm9wPQpvc2UKPiA+PTIwCj4gPiB0bwo+ID49MjAKPiA+ID4gPiA+Pj4+IG1pZ3JhdGUKPiA+ID4gPiA+Pj4+PTIwCj4gPiA+ID4gPj4+PiA+ID4+IHRoZQo+ID4gPiA+ID4+Pj4gPiA+Pj0yMAo+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gIkdvb2dsZQo+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gcmVwbyBtYW5pZmVzdCIgbWF2ZW4tYWdncmVnYXRvciBbNF0gdG8gQVNGOiBteQo+ID49MjAKPiA+IHBlcnNvbmFsCj4gPj0yMAo+ID4gPiA+ID4+Pj4gdXNlIGhhcwo+ID4gPiA+ID4+Pj49MjAKPiA+ID4gPiA+Pj4+ID4gPj4gYmVlbgo+ID4gPiA+ID4+Pj4gPiA+Pj0yMAo+ID4gPiA+ID4+Pj4gPiA+PiA+PiBxdWl0ZQo+ID4gPiA+ID4+Pj4gPiA+PiA+Pj0yMAo+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gc3VjY2Vzc2Z1bCwgSSBob3BlIGl0J3MgdGhlIHNhbWUgZm9yIG90aGVycy4gUGVyaGE9CnBzCj4gPiA+ID4gPj4+Pj0yMAo+ID4gPiA+ID4+Pj4gdGhlcmUgYXJlCj4gPiA+ID4gPj4+Pj0yMAo+ID4gPiA+ID4+Pj4gPiA+PiA+PiBiZXR0ZXIKPiA+ID4gPiA+Pj4+ID4gPj4gPj49MjAKPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IGlkZWFzCj4gPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBmb3IgaXRzIG5hbWU6IG1hdmVuLWFnZ3JlZ2F0b3IKPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+PTIwCj4gPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBBbnkgb3RoZXIgaWRlYT8gYW55IG9iamVjdGlvbj8KPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+PTIwCj4gPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBSZWdhcmRzLAo+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID49MjAKPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IEhlcnY9RTkKPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+PTIwCj4gPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBbMV0KPiA+ID4gPiA+Pj4+PTIwCj4gPiA+ID4gPj4+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC8KPiA+ID4gPiA+Pj4+PTIwCj4gPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBbMl0KPiA+ID4gPiA+Pj4+PTIwCj4gPiA+ID4gPj4+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLXdpcC8KPiA+ID4gPiA+Pj4+PTIwCj4gPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBbM10KPiA+ID4gPiA+Pj4+ID4gPj49MjAKPiA+ID4gPiA+Pj4+ID4gPj4gaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy92aWV3dmMvbWF2ZW4vc2FuZGJveC90cnVuay9zY3JpcHRzLwo+ID49MjAKPiA+IGdpdC8KPiA+PTIwCj4gPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBbNF0gaHR0cHM6Ly9naXRodWIuY29tL2hib3V0ZW15L21hdmVuLWFnZ3JlZ2F0b3IKPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PTIwCj4gPiAtLS0tLS0tLS0KPiA+PTIwCj4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID49MjAKPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PTIwCj4gPiAtLS0tLS0tLS0KPiA+PTIwCj4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+PTIwCj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KPTJELQo+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj0yMAo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MTk1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBPY3QgIDggMTc6Mjg6MTAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTk1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDZCMkUxMTBCMDYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAgOCBPY3QgMjAxNyAxNzoyODoxMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE2MTQ3IGludm9rZWQgYnkgdWlkIDUwMCk7IDggT2N0IDIwMTcgMTc6Mjg6MTAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE2MDU1IGludm9rZWQgYnkgdWlkIDUwMCk7IDggT2N0IDIwMTcgMTc6Mjg6MTAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNTk5OSBpbnZva2VkIGJ5IHVpZCA5OSk7IDggT2N0IDIwMTcgMTc6Mjg6MDkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDA4IE9jdCAyMDE3IDE3OjI4OjA5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMDEzNjAxOEI0RDkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sICA4IE9jdCAyMDE3IDE3OjI4OjA5ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEuMwpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMS4zIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgS0FNX05VTVNVQkpFQ1Q9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHBCSFZ1dF9zOHZmYSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgIDggT2N0IDIwMTcgMTc6Mjg6MDUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDEzLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTM1XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDI4QURBNUZEMUIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sICA4IE9jdCAyMDE3IDE3OjI4OjA1ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDc0IHdpdGggTUUKCWlkIEs1VTMxdzAwRTIwVWZkeTAzNVUzVzI7IFN1biwgMDggT2N0IDIwMTcgMTk6Mjg6MDQgKzAyMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogU3VuLCAwOCBPY3QgMjAxNyAxOToyODowNCArMDIwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBKZW5raW5zIGFuZCBNYXZlbiAzLjAuNSBvciBKREsgNwpEYXRlOiBTdW4sIDA4IE9jdCAyMDE3IDE5OjI4OjAzICswMjAwCk1lc3NhZ2UtSUQ6IDwxMDQ3NDQ3Ni5sOUZKcUZNUEoyQGdpZ2E+ClVzZXItQWdlbnQ6IEtNYWlsLzUuMi4zIChMaW51eC80LjEwLjAtMzUtZ2VuZXJpYzsgS0RFLzUuMzEuMDsgeDg2XzY0OyA7ICkKSW4tUmVwbHktVG86IDxDQStuUG5NeHlRNHRlN3JvNHhNPVhBcmlQdTdoUCtVVTdVWG9TVk12ZkR2UUo5RGk9R3dAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDwxMDU0NDYxNS5CNGhPM1BudkV6QGdpZ2E+IDwzMDY2MzA4LlJaNzZzTVQyYmNAZ2lnYT4gPENBK25Qbk14eVE0dGU3cm80eE09WEFyaVB1N2hQK1VVN1VYb1NWTXZmRHZRSjlEaT1Hd0BtYWlsLmdtYWlsLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKSSBkb24ndCBnZXQgdGhlIHRlY2huaWNhbCBkZXRhaWxzCmJ1dCBJSVVDLCB5b3UncmUgYWJsZSB0byBkbyBhIFBvQyB3aXRoIG91ciBhdmFpbGFibGUgZ2l0IHJlcG9zaXRvcmllcyBvZj0yMApKZW5raW5zIGpvYiBtYWludGVuYW5jZSAoZWFzeSBqb2IgY3JlYXRpb24gKyBlYXN5IEplbmtpbnNmaWxlIG1haW50ZW5hbmNlKSw9CiBhbmQ9MjAKeW91J3JlIGNvbmZpZGVudCB0aGF0IGl0IGNhbiBzY2FsZSB0byB0aGUgc2l6ZSB3ZSdyZSBleHBlY3Rpbmcgd2hlbiB3ZSdyZT0yMApzcGxpdHRpbmcgdGhlIGN1cnJlbnQgYWdncmVnYXRvciBzdm4gdG8gbWFueSBzbWFsbCBnaXQgcmVwb3MKCnRoYXQncyBpdD8KClJlZ2FyZHMsCgpIZXJ2PUMzPUE5CgpMZSBkaW1hbmNoZSA4IG9jdG9icmUgMjAxNywgMTY6MjE6MTAgQ0VTVCBTdGVwaGVuIENvbm5vbGx5IGEgPUMzPUE5Y3JpdCA6Cj4gT24gU3VuIDggT2N0IDIwMTcgYXQgMDM6NTUsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cj0Kb3RlOgo+ID4gVExEUjsgPTNECj4gPiBQZXJoYXBzIHdlIGNhbiBzdGFydCB3aXRoIDIgcHJvb2ZzIG9mIGNvbmNlcHQ6Cj4gPiAxLiBmdWxsIGdpdCBjbG9uZSArIEplbmtpbnMgam9icyBmb3IgdGhlIDcgZXhpc3RpbmcgZ2l0IHJlcG9zICh3aXRoIDYKPiA+IGFkZGl0aW9uYWwgb25lcyBpbiAyIGRheXMpCj4gPiAyLiBnaXQgc3BsaXQgb2Ygb25lIG9mIHRoZSBhZ2dyZWdhdG9yIHN2biB0cnVuazogc2tpbnMgb3IgZG94aWEtdG9vbHMgYz0KYW4KPiA+IGJlCj4gPiBlYXN5IGNob2ljZXMgc2luY2UgdGhleSBhcmUgbGlnaHQsIHdoZXJlIHBsdWdpbnMgb3Igc2hhcmVkIGFyZSBwZXJoYXBzID0KdG9vCj4gPiBoZWF2eS4gVGhlIG9uZSB3b3JraW5nIG9uIHRoaXMgUG9DIHdpbGwgbWFrZSBoaXMgY2hvaWNlCj4gPj0yMAo+ID4gdGhlbiBtb3JlIGRldGFpbGVkIGFuc3dlciBpbmxpbmUgdGhhdCBsZWFkIHRvIHRoaXMgUG9DcyBwcm9wb3NhbAo+ID49MjAKPiA+IFJlZ2FyZHMsCj4gPj0yMAo+ID4gSGVydj1DMz1BOQo+ID49MjAKPiA+IExlIGRpbWFuY2hlIDggb2N0b2JyZSAyMDE3LCAwMDowMjoxMCBDRVNUIFRpYm9yIERpZ2FuYSBhID1DMz1BOWNyaXQgOgo+ID4gPiBJIGRvbid0IHRoaW5rIHRoZSBkZXZzIHdvdWxkIHdvcmsgb24gYWxsIGFydGlmYWN0cyhwcm9qZWN0cykgYSB0aW1lLgo+ID49MjAKPiA+IHN1cmUsIEkgdGhpbmsgSSdtIG9uZSBvZiB0aGUgZmV3IHBlb3BsZSB3b3JraW5nIG9uIG5lYXIgZXZlcnl0aGluZyAod2l0aAo+ID4gcmFyZQo+ID4gZXhjZXB0aW9ucyBsaWtlIFN1cmVmaXJlLCBhcyB5b3Ugbm90aWNlZCA6KSApCj4gPiBidXQgZm9yIHVzdWFsIGNvbnRyaWJ1dG9yLCB0aGVyZSBpcyBubyBpc3N1ZQo+ID49MjAKPiA+IEknbSBub3QgYSBnaXQgZXhwZXJ0LCB0aGVuIEkgZG9uJ3Qga25vdyBpZiBlYXN5ICJmdWxsIE1hdmVuIGNsb25lIiBpcwo+ID4gYmV0dGVyCj4gPiBkb25lIHdpdGggYSBzaGVsbCBzY3JpcHQgb3Igc29tZSBnaXQgbW9kdWxlcwo+ID49MjAKPiA+ID4gSWYgdGhlIG5hbWluZyBjb252ZW50aW9uIG9mIHJlcG8gZm9yIGEgcGx1Z2luIHdvdWxkIGJlIGFydGlmYWN0SWQsIGxpPQprZQo+ID4gPiAvbWF2ZW4tY2xlYW4tcGx1Z2luLCB0aGVuIGV2ZW4gZWFzeSB0byBmaWd1cmUgb3V0IHdoaWNoIG9uZSB0byBjbG9uZS4KPiA+ID4gVGhlIG1vc3QgbGlrZWx5IHRoZSBkZXYgd291bGQganVzdCBjbG9uZSBvbmUgcmVwbyBzaGUvaGUgaXMgaW50ZXJlc3RlZAo+ID4gPiBpbgo+ID4gPiBhdCB0aGUgbW9tZW50LCBpLmUuIHJlcG9zaXRvcnkgL21hdmVuLWNsZWFuLXBsdWdpbiwgbGV0J3Mgc2F5Lgo+ID4gPiBJdCdzIGdvb2QgdG8gYXZvaWQgYW55IHNoYXJlZCBmaWxlcyBhY3Jvc3MgdGhlbSwgZXZlbiBJIGRvbid0IHRoaW5rIGQ9CmV2cwo+ID4gPiBzaGFyZSBzb21lIGluIHN2biB0b2RheS4gVGhlIHJlbGVhc2UgcHJvY2VzcyB3b3VsZCBiZSBxdWl0ZSB1c3VhbCwgaS49CmUuCj4gPj0yMAo+ID4gb25lCj4gPj0yMAo+ID4gPiByZXBvID0zRCBvbmUgcHJvamVjdCwgYW5kIG5ldyBkZXZzIGFscmVhZHkgaGF2ZSB0aGVzZSBleHBlcmllbmNlcyB3aGk9CmNoCj4gPj0yMAo+ID4gd2lsbAo+ID49MjAKPiA+ID4gYmUgc2ltcGxlIGZvciB0aGVtIHRvIGFkYXB0IGZhc3Rlci4KPiA+PTIwCj4gPiArMQo+ID4gdGhlIG9ubHkgZHJhd2JhY2sgSSBzZWUgY3VycmVudGx5IGlzIHRoYXQgdGhlcmUgaXMgbm8gbmF0dXJhbCBncm91cGluZywKPiA+IHRoZW4KPiA+IHdlIGhhdmUgYSBmbGF0IGxpdCBvZiBuZWFyIDEwMCBnaXQgcmVwb3Mgd2l0aG91dCB0aGUgY3VycmVudCBzdHJ1Y3R1cmUKPiA+IChwbHVnaW5zLCBzaGFyZWQgY29tcG9uZW50cywgc2tpbnMsIC4uLik6IEkgdGhpbmsgY29tcG9uZW50cyBzdHJ1Y3R1cmUgPQppcwo+ID4gdXNlZnVsIGZvciBtYWludGVuYWJpbGl0eQo+ID4gYnV0IG5vdCByZWFsbHkgYSBjb21wbGV0ZSBzaG93c3RvcHBlcgo+ID4gYW5kIHBlcmhhcHMgdGhlICJNYXZlbiBmdWxsIGNsb25lIiB0b29saW5nIGNhbiByZS1jcmVhdGUgc29tZSBncm91cGluZyA9CnRvCj4gPiBrZWVwCj4gPiB2aXNpYmxlIHN0cnVjdHVyZQo+ID49MjAKPiA+IE5vdywgc29tZW9uZSBoYXMgdG8ga25vdyBob3cgdG8gY3JlYXRlIHBlci1jb21wb25lbnQgZ2l0IHJlcG8gd2l0aCB0YWdzCj4gPiAoZWl0aGVyIGJ5IHJld29ya2luZyBleGl0aW5nIGdpdCBtaXJyb3JzLCBlaXRoZXIgYnkgcmVzdGFydGluZyBmcm9tIHN2bj0KKSwKPiA+IGFuZAo+ID4gdGhhdCdzIG5vdCBtZSA6KQo+ID49MjAKPiA+IGdpdmVuIHRoZSB2b2x1bWUgKGFkZGluZyA3MCBnaXQgcmVwb3MgZm9yIE1hdmVuKSwgd2UnbGwgaGF2ZSB0byB0ZWxsIGluPQpmcmEKPiA+IGFib3V0IGl0Lgo+ID49MjAKPiA+IFRoZW4gdGhlcmUgaXMgdGhlIEplbmtpbnMgam9icyBjb25maWd1cmF0aW9uOgo+ID4gLSB3ZSBuZWVkIGVhc3kgSmVua2luc2ZpbGUgaW4gZWFjaCByZXBvCj49MjAKPiBzbyB3ZSBjcmVhdGUgYSBzaGFyZWQgR3Jvb3Z5IGxpYnJhcnkgbGlrZSB0aGUgSmVua2lucyBwcm9qZWN0IGRvZXMgYW5kIHRoZQo+IEplbmtpbnNmaWxlIGJlY29tZXMgYGJ1aWxkUGx1Z2luYCBmb3IgYWxsIGV4Y2VwdCBjb3JlCj49MjAKPiA+IC0gd2UgbmVlZCBlYXN5IDgwIGpvYnMgY3JlYXRpb24gKG5vLCBJIHdvbid0IG1hbnVhbGx5IGNyZWF0ZSA4MCBqb2JzCj4gPiBwZXJzb25hbGx5KQo+PTIwCj4gU28gSSB3aWxsIGFkZCBTQ01OYXZpZ2F0b3IgZnVuY3Rpb25hbGl0eSB0byB0aGUgQVNGIGdpdC1KZW5raW5zIHBsdWdpbiBhbmQKPiB3ZSBqdXN0IGRlZmluZSBhbiBvcmctZm9sZGVyIGZvciBNYXZlbiBhbmQgYWxsIGdpdCByZXBvcyB3aXRoIGEgSmVua2luc2ZpPQpsZQo+IHdpbGwgYmUgYXV0by1tYWludGFpbmVkLgo+PTIwCj4gPiBBbmQgb25jZSBhZ2FpbiwgaW5mcmEgd2lsbCBoYXZlIHRvIGJlIGluIHRoZSBsb29wIChhdCBKZW5raW5zIHNpZGUgdGhpcwo+ID4gdGltZSksCj4gPiBzaW5jZSBJIGZlYXIgdGhlIGxvYWQgb24gSmVua2lucyBtYXN0ZXIgbm9kZSB3b24ndCBiZSBsaWdodDogcGVyaGFwcwo+ID4gdGhhdCdzCj4gPiB3aGVyZSBKZW5raW5zIGZvbGRlcnMgd2lsbCBiZSB1c2VmdWwsIGJ1dCBJJ20gbm90IGEgSmVua2lucyBleHBlcnQgZWl0aD0KZXIuCj49MjAKPiBJZiB3ZSB1c2UgYW4gb3JnIGZvbGRlciBpbnRlZ3JhdGVkIHdpdGggR2l0UHViU3ViIEkgZG8gbm90IHRoaW5rIHRoZXkgd2lsbAo+IGJlIG92ZXJseSBjb25jZXJuZWQKPj0yMAo+ID4gSWYgZXZlcnl0aGluZyBzZWVtcyBmZWFzaWJsZSB0byBzcGxpdCBvdXIgc3ZuIGNvZGUgaW50byAxIGdpdCByZXBvIHBlci0KPiA+IGNvbXBvbmVudCwgd2hpY2ggd2lsbCBicmluZyB1cyB0byAiZnVsbCBNYXZlbiBjb2RlIiBiZWluZyBuZWFyIDEwMCByZXBvPQpzLAo+ID4gSSdtCj4gPiBvayB3aXRoIGl0Lgo+ID4gV2UnbGwgbmVlZCB0aGUgaGVscCBvZiBtaXNjIGV4cGVydHMgb24gSmVua2lucyBhbmQgZ2l0IHRvIHByZXBhcmUgdGhpbmdzCj4gPiBhdAo+ID4gdGhpcyBzY2FsZS4KPj0yMAo+IEkgdGhpbmsgb25lIHJlcG8gcGVyIHJlbGVhc2Ugcm9vdCBpcyB0aGUgd2F5IHRvIGdvLgo+PTIwCj4gV2Ugc2hvdWxkIHN0YXJ0IGJ5IGRyYXdpbmcgdXAgYSBsaXN0IGFuZCBhbWFsZ2FtYXRpb24gd2hlcmUgYXBwcm9wcmlhdGU6Cj49MjAKPiBFZwo+PTIwCj4gKiBkb2VzIGl0IG1ha2Ugc2Vuc2UgdG8gcmVsZWFzZSBtYXZlbi1kZXBsb3ktcGx1Z2luIGFuZAo+IG1hdmVuLWluc3RhbGwtcGx1Z2luIGluZGVwZW5kZW50bHk/IFNlZW1zIHdlIG1vc3Qgb2Z0ZW4gbWFrZSBtaXJyb3JpbmcKPiBjaGFuZ2VzIHRvIGJvdGgsIGFuZCBwZXJoYXBzIGl0IHdvdWxkIGJlIGJldHRlciBpZiB3ZSBmb3JjZWQgdGhhdCBtb2RlbD8KPiAoRG9uPUUyPTgwPTk5dCBhbnN3ZXIgaW4gdGhpcyB0aHJlYWQsIGp1c3QgcG9pbnRpbmcgb3V0IGFuIGV4YW1wbGUpCj49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PTIwCj4gPiAtLQo+PTIwCj4gU2VudCBmcm9tIG15IHBob25lCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDE0OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgT2N0ICA2IDA1OjMyOjI4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDE0OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA5NEMzNzEwNTJGCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgIDYgT2N0IDIwMTcgMDU6MzI6MjggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1MzIzNSBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IE9jdCAyMDE3IDA1OjMyOjI4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MzE1MyBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IE9jdCAyMDE3IDA1OjMyOjI4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTMxNDIgaW52b2tlZCBieSB1aWQgOTkpOyA2IE9jdCAyMDE3IDA1OjMyOjI3IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAwNiBPY3QgMjAxNyAwNTozMjoyNyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDAwQUQzMTgwQTQ2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAgNiBPY3QgMjAxNyAwNTozMjoyNyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xLjMKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEuMyB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBEdjZqdXFJME5Qc0ggZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglGcmksICA2IE9jdCAyMDE3IDA1OjMyOjI1ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAxMS5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEzM10pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA2OERCNjVGQkVCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAgNiBPY3QgMjAxNyAwNTozMjoyNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQzNCB3aXRoIE1FCglpZCBKNVlIMXcwMFEyMFVmZHkwMzVZSlo0OyBGcmksIDA2IE9jdCAyMDE3IDA3OjMyOjE4ICswMjAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IEZyaSwgMDYgT2N0IDIwMTcgMDc6MzI6MTggKzAyMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBKZW5raW5zIGFuZCBNYXZlbiAzLjAuNSBvciBKREsgNwpEYXRlOiBGcmksIDA2IE9jdCAyMDE3IDA3OjMyOjE3ICswMjAwCk1lc3NhZ2UtSUQ6IDwxMDU0NDYxNS5CNGhPM1BudkV6QGdpZ2E+ClVzZXItQWdlbnQ6IEtNYWlsLzUuMi4zIChMaW51eC80LjEwLjAtMzUtZ2VuZXJpYzsgS0RFLzUuMzEuMDsgeDg2XzY0OyA7ICkKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpJIGp1c3QgZml4ZWQgYSBmZXcgZmFpbGluZyBqb2JzIFsxXSB0byBoYXZlIGFnYWluIGEgdXNhYmxlIEplbmtpbnMuCgpOb3cgSSdtIGZhY2luZyBzb21lIGlzc3VlcywgSSBzdXBwb3NlIGNhdXNlZCBieSBuZXdlciBKZW5raW5zIHZlcnNpb25zOgo9MkQgTWF2ZW4gMy4wLjUgY2F1c2VzIE5vU3VjaE1ldGhvZEVycm9yOiBvLmMucGxleHVzLnV0aWwueG1sLnB1bGwuTVhQYXJzZXI9CiBbMl0KPTJEIEkgaGFkIHRvIHN3aXRjaCB0byBKREsgOCBmb3IgbWF2ZW4tcGx1Z2luLXRvb2xzIGpvYiwgc2luY2UgSkRLIGNhdXNlcz0yMApmYWlsdXJlcyAobG9va3MgbGlrZSBKZW5raW5zIHVzZXMgYSBoYWNrIHRvIGluamVjdCBKREsgNyBhcyBhIHRvb2wgd2hpbGUgdGg9CmU9MjAKYnVpbGQgSlZNIGlzIEphdmEgOCkKClNob3VsZCB3ZSBkcm9wIE1hdmVuIDMuMC41IGJ1aWxkcyBhbmQgSkRLIDc/Ck5vdGljZSBJIGRpZG4ndCBjaGVjayB3aGljaCBpcyB0aGUgbWluaW11bSBNYXZlbiB2ZXJzaW9uIHJlcXVpcmVkLi4uCgpPciBwZXJoYXBzIHNpbXBseSBkb24ndCB1c2UgdGhlIEplbmtpbnMgTWF2ZW4gcGx1Z2luIHdpdGggdGhpcyBNYXZlbiAzLjAuNSA9Cm9yPTIwCkpESyA3IGNvbmZpZ3VyYXRpb246IGRlZmF1bHQgYnVpbGQgYXMgSmVua2lucyBNYXZlbiBwbHVnaW4gd2l0aCBKREsgOCArIGxhdD0KZXN0PTIwCk1hdmVuLCBhbmQgb3RoZXIgY29uZmlndXJhdGlvbnMgYXMgc2NyaXB0ZWQgam9icz8KCldlIG5lZWQgdG8gZGVmaW5lIG91ciBjb21tb24gc3RyYXRlZ3kgYW5kIGhhdmUgYSBjb25zaXN0ZW50IGNvbmZpZ3VyYXRpb24gZj0Kb3IgPTIwCmV2ZXJ5IGpvYiB1bmRlcnN0b29kIGJ5IGV2ZXJ5Ym9keQoKUmVnYXJkcywKCkhlcnY9RTkKClsxXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vCgpbMl0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1wbHVnaW4tdG9vbHMtamQ9CmstMS43LzE2Mi9jb25zb2xlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0OTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE5vdiAxNiAwNzo1MTozMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0OTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMEQ4M0ExN0FBNgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDE2IE5vdiAyMDE3IDA3OjUxOjMxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDgxMjQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTYgTm92IDIwMTcgMDc6NTE6MjUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ3ODMwIGludm9rZWQgYnkgdWlkIDUwMCk7IDE2IE5vdiAyMDE3IDA3OjUxOjI1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDc4MTkgaW52b2tlZCBieSB1aWQgOTkpOyAxNiBOb3YgMjAxNyAwNzo1MToyNSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMTYgTm92IDIwMTcgMDc6NTE6MjUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA0MTA1QjFBMENBQwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMTYgTm92IDIwMTcgMDc6NTE6MjQgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCA4RkxCYXBvZHJYQVkgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsIDE2IE5vdiAyMDE3IDA3OjUxOjIyICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwMS5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyM10pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBCODc1QzVGMjk5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAxNiBOb3YgMjAxNyAwNzo1MToyMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ1MyB3aXRoIE1FCglpZCBhWHJEMXcwMEEyMFVmZHkwM1hyREc5OyBUaHUsIDE2IE5vdiAyMDE3IDA4OjUxOjEzICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFRodSwgMTYgTm92IDIwMTcgMDg6NTE6MTMgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBSZTogTWF2ZW4gcmVzb2x2ZXIgYnJhbmNoIGNvbnNvbGlkYXRpb24KRGF0ZTogVGh1LCAxNiBOb3YgMjAxNyAwODo1MToxMyArMDEwMApNZXNzYWdlLUlEOiA8MTEwMzQ4OTAuY1lYSnFwZ3BxZUBnaWdhPgpJbi1SZXBseS1UbzogPDc5MTY4NzgueUxtTWNjRHlTN0BnaWdhPgpSZWZlcmVuY2VzOiA8MjAxNzExMDkwNTM1NTEuOTU3RDQyOUM1MEQxQGRkMTczMzIua2Fzc2VydmVyLmNvbT4gPDg1YzU0NjM4LWQ4MjUtNmMxYy1hNTA0LTEzODhmOGM3NzdjOUBhcGFjaGUub3JnPiA8NzkxNjg3OC55TG1NY2NEeVM3QGdpZ2E+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKSSBqdXN0IHB1c2hlZCBhbiB1cGRhdGUgb2YgZGVwZW5kZW5jaWVzIGltYWdlIHRoYXQgc2hvd3MgdGhlIGV4dGVybmFsIG1hdmVuLQpyZXNvbHZlci1wcm92aWRlciAoaW4geWVsbG93KSBpbnNpZGUgdGhlIHJlYWN0b3IgZGVwZW5kZW5jeSBncmFwaCAoaW4gYmx1ZSkKClRoYXQgc2hvd3MgdGhlIGNoaWNrZW4gYW5kIGVnZyBpc3N1ZSBvbiByZWxlYXNpbmcgd2UnbGwgaGF2ZSBvbiBBUEkgYnJlYWtpbj0KZz0yMApjaGFuZ2UuIFBlb3BsZSBhbHdheXMgYnVpbGRpbmcgZnJvbSBzb3VyY2UgKGxpa2UgRGViaWFuKSB3aWxsIGhhdmUgdGhlIGlzc3U9CmU9MjAKYWxzby4KCj00Nm9yIGRlbW9zLCB3aGljaCBhcmUgbm90IHJlYWxseSBwdWJsaXNoZWQgZHVyaW5nIHRoZSByZWxlYXNlIChqdXN0IGFzPTIwCmRvY3VtZW50YXRpb24pLCBkaXNhYmxpbmcgdGhlIG1vZHVsZSBpbiB0aGUgYnVpbGQgd2hlbiBuZWNlc3NhcnkgaXMgc3VmZmljaT0KZW50LD0yMAp3b24ndCBjaGFuZ2UgbWFueSB0aGluZ3MuIEZvciBhbnQgdGFza3MsIGRpc2FibGluZyB0aGUgbW9kdWxlIHdpbGwgbm90IHB1Ymw9CmlzaD0yMAp0aGUgYXJ0aWZhY3Q6IHRoaXMgd2lsbCBoYXZlIGEgdmlzaWJsZSBpbXBhY3QuCgpSZWdhcmRzLAoKSGVydj1FOQoKTGUgbWVyY3JlZGkgMTUgbm92ZW1icmUgMjAxNywgMjM6MDU6MTQgQ0VUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOgo+IGl0IHNlZW1zIEkgaGF2ZSBub3QgYmVlbiBjbGVhcjogSSdsbCB0cnkgdG8gZXhwbGFpbiBiZXR0ZXIKPj0yMAo+IDEuIG1hdmVuLXJlc29sdmVyLWFudC10YXNrcyBkZXBlbmRzIG9uIG1hdmVuLXJlc29sdmVyLXByb3ZpZGVyIChmcm9tIE1hdmVuCj4gY29yZSkKPiAyLiBtYXZlbi1yZXNvbHZlci1wcm92aWRlciAodGhlbiBNYXZlbiBjb3JlKSBkZXBlbmRzIG9uIG1hdmVuLXJlc29sdmVyCj49MjAKPiBpZiB3ZSBwdXQgbWF2ZW4tcmVzb2x2ZXItYW50LXRhc2tzIGluIHRoZSBzYW1lIHJlYWN0b3IgdGhhbiBtYXZlbi1yZXNvbHZlPQpyLAo+IHdlIGNhbid0IHJlbGVhc2UgYW55IG1hdmVuLXJlc29sdmVyIEFQSSBjaGFuZ2UgdGhhdCBicmVha3MgbWF2ZW4tcmVzb2x2ZXItCj4gcHJvdmlkZXIKPj0yMAo+IGV4YW1wbGU6IGlmIHdlIG1vdmUgbWF2ZW4tcmVzb2x2ZXIgY29kZSB0byBvcmcuYXBhY2hlLm1hdmVuIGphdmEgcGFja2FnZSA9CmluCj4gbWF2ZW4tcmVzb2x2ZXIgMi4wLjAtU05BUFNIT1QsIHdlIG5lZWQgbWF2ZW4tcmVzb2x2ZXItcHJvdmlkZXIKPiA0LjAuMC1TTkFQU0hPVCB0aGF0IHVzZXMgbWF2ZW4tcmVzb2x2ZXIgMi4wLjAtU05BUFNIT1Qgd2l0aCB0aGlzIG5ldyBqYXZhCj4gcGFja2FnZS4gVGhlbiB0cnkgdG8gcmVsZWFzZSBhbnl0aGluZzogeW91IGNhbid0LCB1bmxlc3MgeW91IGRvbid0IHRyeSB0bwo+IHJlbGVhc2UgbWF2ZW4tIHJlc29sdmVyLWFudC10YXNrcwo+PTIwCj4gKHRoZSBjb25zZXF1ZW5jZSBvbiB2ZXJzaW9uIGNvbnNpc3RlbmN5IGlzIGFub3RoZXIgd2F5IHRvIGRlc2NyaWJlIHRoZQo+IGlzc3VlLCBidXQgdGhhdCBpcyBtb3JlIHN1YnRsZSwgdGhlbiBJIGNob3NlIHRvIGRlc2NyaWJlIHRoZSBtb3N0IHZpc2libGUKPiBpc3N1ZSwgd2l0aCBBUEkgYnJlYWtpbmcgY2hhbmdlKQo+PTIwCj4gSU1ITywgYW5vdGhlciBjb25zZXF1ZW5jZSBjb3VsZCBiZTogbWF2ZW4tcmVzb2x2ZXItYW50LXRhc2tzIHdvdWxkIHBlcmhhcHMKPiBiZXR0ZXIgYmUgdmVyc2lvbm5lZCBsaWtlIG1hdmVuLXJlc29sdmVyLXByb3ZpZGVyCj49MjAKPj0yMAo+IE1lcmdpbmcgcmVzb2x2ZXItZGVtb3MgaXMgcmVhbGx5IHRoZSBncmVhdCBiaWcgaWRlYTogd2l0aCB0aGF0IG1lcmdlLAo+IG1vZGlmeWluZyBtYXZlbi1ycmVzb2x2ZXIgY2FuIGltbWVkaWF0ZWx5IGJlIHRlc3RlZCB3aXRoIGRlbW9zOiB0aGF0J2xsIGJlCj4gc28gbXVjaCBlYXNpZXIgdG8gbWFrZSBjaGFuZ2VzIHRvIG1hdmVuLXJlc29sdmVyIGNvZGUhCj49MjAKPiBSZWdhcmRzLAo+PTIwCj4gSGVydj1FOQo+PTIwCj4gTGUgbWVyY3JlZGkgMTUgbm92ZW1icmUgMjAxNywgMDk6MDI6MTIgQ0VUIE1pY2hhZWwgT3NpcG92IGEgPUU5Y3JpdCA6Cj4gPiBXaHkgLTEgb24gdGhlIEFudCB0YXNrcz8KPiA+PTIwCj4gPiBBbSAyMDE3LTExLTE1IHVtIDAwOjUwIHNjaHJpZWIgSGVydj1FOSBCT1VURU1ZOgo+ID4gPiBJIGFuc3dlcmVkIG9uIHRoZSBtYWlsaW5nIGxpc3QgYW5kIG9uIHRoZSAyIEppcmEgaXNzdWVzCj4gPiA+IEluIHN1bW1hcnksICsxIHRvIG1lcmdlIGRlbW9zLCAtMSB0byBtZXJnZSBhbnQtdGFza3MKPiA+ID49MjAKPiA+ID4gUmVnYXJkcywKPiA+ID49MjAKPiA+ID4gSGVydj1FOQo+ID4gPj0yMAo+ID4gPiBMZSBtYXJkaSAxNCBub3ZlbWJyZSAyMDE3LCAxODoxOTo0MCBDRVQgTWFuZnJlZCBNb3NlciBhID1FOWNyaXQgOgo+ID4gPj4gQW55IGZlZWRiYWNrIG9yIHNob3VsZCBJIGp1c3QgZ28gYWhlYWQgd2l0aCB0aGUgY2xlYW51cD8KPiA+ID4+PTIwCj4gPiA+PiBNYW5mcmVkCj4gPiA+Pj0yMAo+ID4gPj4gTWFuZnJlZCBNb3NlciB3cm90ZSBvbiAyMDE3LTExLTA4IDIxOjM1Ogo+ID4gPj4+IEhpIGFsbCwKPiA+ID4+Pj0yMAo+ID4gPj4+IEkgaGF2ZSBzdGFydGVkIGFuZCBtYWRlIGdvb2QgcHJvZ3Jlc3Mgb24gZ2V0dGluZyBNYXZlbiByZXNvbHZlciBhbGwKPiA+ID4+PiBpbnRvCj4gPiA+Pj4gdGhlIG1hc3RlciBicmFuY2ggaW5zdGVhZCBvZiBoYXZpbmcgbWFzdGVyLCBkZW1vcyBhbmQgYW50LXRhc2tzIGluCj4gPiA+Pj4gc2VwYXJhdGUgYnJhbmNoZXMuCj4gPiA+Pj49MjAKPiA+ID4+PiBEZXRhaWxzIGFyZSB0cmFja2VkIGluCj4gPiA+Pj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NUkVTT0xWRVItMjgKPiA+ID4+Pj0yMAo+ID4gPj4+IEFsbCBvZiBpdCBpcyBub3cgaW4gYSBuZXcgYnJhbmNoIGNhbGxlZCBtYXN0ZXItYWxsIGZvciB5b3UgdG8gc2VlLgo+ID4gPj4+PTIwCj4gPiA+Pj4gSSBhbSBub3cgd29uZGVyaW5nIHdoYXQgdGhlIG5leHQgc3RlcHMgYXJlLiBJIGFkZGVkIHdoYXQgSSB0aGluawo+ID4gPj4+IHNob3VsZAo+ID4gPj4+IGhhcHBlbiBuZXh0IGluIHRoZSBpc3N1ZSBpbiBhIGNvbW1lbnQgYW5kIHdvdWxkIGFwcHJlY2lhdGUgYW55IGlucHV0Cj4gPiA+Pj4gb24KPiA+ID4+PiB0aGUgY3VycmVudCBzZXR1cCBhbmQgbmV4dCBzdGVwcy4KPiA+ID4+Pj0yMAo+ID4gPj4+IEFueSBoZWxwIHdvdWxkIGJlIGFwcHJlY2lhdGVkLgo+ID4gPj4+PTIwCj4gPiA+Pj4gbWFuZnJlZAo+ID4gPj49MjAKPiA+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID49MjAKPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0MDItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAgNCAxMzo1NjoxNiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0MDItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQzQ2MkMxN0Y1RgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICA0IE5vdiAyMDE3IDEzOjU2OjE2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzYxMTUgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBOb3YgMjAxNyAxMzo1NjoxNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzYwNDAgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBOb3YgMjAxNyAxMzo1NjoxNiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM2MDIwIGludm9rZWQgYnkgdWlkIDk5KTsgNCBOb3YgMjAxNyAxMzo1NjoxNiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDQgTm92IDIwMTcgMTM6NTY6MTYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA2MEI5QTE4MDhDOAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMTM6NTY6MTUgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgQld5eFc1SGlQU0Q1IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAgNCBOb3YgMjAxNyAxMzo1NjoxMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDcuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjldKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMjM4RjM2MEY2QwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMTM6NTY6MTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkNDIgd2l0aCBNRQoJaWQgVnB3QzF3MDA3MjBVZmR5MDNwd0NwdjsgU2F0LCAwNCBOb3YgMjAxNyAxNDo1NjoxMiArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBTYXQsIDA0IE5vdiAyMDE3IDE0OjU2OjEyICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IG1pZ3JhdGluZyBzb21lIGNvZGUgdG8gR2l0CkRhdGU6IFNhdCwgMDQgTm92IDIwMTcgMTQ6NTY6MTIgKzAxMDAKTWVzc2FnZS1JRDogPDExMTk0NTQwLlBVR1BmRTF2RnhAZ2lnYT4KSW4tUmVwbHktVG86IDw1MTYzNjYwLnJUNVRDOEVwWHBAZ2lnYT4KUmVmZXJlbmNlczogPDU4NzgxMTAuVE1Fb3Q2VkV1dUBnaWdhPiA8MzYzMDc5Ni5wQ3gyRlBQZ0ZnQGdpZ2E+IDw1MTYzNjYwLnJUNVRDOEVwWHBAZ2lnYT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgptaWdyYXRpb24gZG9uZSBbMV0Kd2Ugbm93IGhhdmUgMjIgZ2l0IHJlcG9zIChtYXZlbi1yZXNvbHZlciBoYXMgMyBpbmRlcGVuZGFudCBicmFuY2hlcy4uLikKCkknbSB3YWl0aW5nIGZvciBmZWVkYmFjayBiZWZvcmUgY3JlYXRpbmcgbWF2ZW4tYWdncmVnYXRvciBAIEFTRiAoZm9yIEdvb2dsZT0KPTIwCnJlcG8gbWFuaWZlc3QpCgpuZXh0IGJpZyBtaWdyYXRpb25zIHdpbGwgYmUgc2hhcmVkIGFuZCBwbHVnaW5zIG9uY2UgU3RlcGhlbiB2aWRlb3MgYW5kPTIwCnNvbHV0aW9uIG9uIHNjYWxpbmcgSmVua2lucyBmb3Igb3VyIG9yZ2FuaXphdGlvbiB3aWxsIGJlIHJlYWR5CgpUaGVyZSBhIGZldyBjYXNlcyB0byBkaXNjdXNzOgo9MkQgQXBhY2hlIFJlc291cmNlIEJ1bmRsZXM6IHNob3VsZCBJTUhPIGJlIG1lcmdlZCBpbnRvIG9uZSB1bmlxdWUgcmVsZWFzZTo9CiBhbnk9MjAKdGFrZXI/Cj0yRCBBcmNoZXR5cGVzOiBzcGxpdCAod2FpdCBmb3IgSmVua2lucykgb3Igbm90IHNwbGl0IChhbmQgZG8gbm93KT8KPTJEIE1hdmVuIGFuZCBEb3hpYSBzaXRlczogbmVlZCB0byBzZWUgaWYgQ01TIGNhbiBjaGVja291dCBmcm9tIEdpdCwgb3IgZXZlPQpuIGlmPTIwCndlIHNob3VsZCBub3QgdXNlIENNUyBhbnkgbW9yZSB0byBidWlsZCBidXQgdXNlIEplbmtpbnMuLi4KClJlZ2FyZHMsCgpIZXJ2PUU5CgpbMV0gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9HaXQrTWlncmF0aW9uCgpMZSBzYW1lZGkgNCBub3ZlbWJyZSAyMDE3LCAwOTo1MDoyOCBDRVQgSGVydj1FOSBCT1VURU1ZIGEgPUU5Y3JpdCA6Cj4gbm8gb2JqZWN0aW9uOiBzdGFydGluZyB0aGUgbWlncmF0aW9uIG9mIHRoZXNlIDYgcmVwb3MKPj0yMAo+IFJlZ2FyZHMsCj49MjAKPiBIZXJ2PUU5Cj49MjAKPiBMZSBtZXJjcmVkaSAxIG5vdmVtYnJlIDIwMTcsIDEyOjA5OjU4IENFVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiA+IGFkZGluZyAyIG1vcmUgcmVwb3MgdG8gdGhlIGxpc3Q6Cj4gPiBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tZG94aWEtY29udmVydGVyCj4gPiBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tZG94aWEtbGlua2NoZWNrCj4gPj0yMAo+ID4gTGUgbWVyY3JlZGkgMSBub3ZlbWJyZSAyMDE3LCAwNzoyODowMiBDRVQgSGVydj1FOSBCT1VURU1ZIGEgPUU5Y3JpdCA6Cj4gPiA+IGZvciBsYXp5IHBlb3BsZSwgSSB0b29rIHRpbWUgdG8gY3JlYXRlIHRoZSA0IHJlcG8gb24gcGVyc29uYWwgR2l0SHViCj4gPiA+IHNwYWNlOgo+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tYXBhY2hlLXBhcmVudAo+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tcGFyZW50Cj4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1kZWZhdWx0LXNraW4KPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2hib3V0ZW15L21hdmVuLWZsdWlkby1za2luCj4gPiA+PTIwCj4gPiA+IEkgd29uJ3QgZG8gdGhlIHNhbWUgaW4gdGhlIGZ1dHVyZSBmb3IgdGhlIDI2IHNoYXJlZCBhbmQgNDUgcGx1Z2lucywKPiA+ID4gc2luY2UKPiA+ID4gbWFudWFsIHJlcG8gY3JlYXRpb24gaXMgbm90IGZ1bi4uLgo+ID4gPj0yMAo+ID4gPiBSZWdhcmRzLAo+ID4gPj0yMAo+ID4gPiBIZXJ2PUU5Cj4gPiA+PTIwCj4gPiA+IExlIG1hcmRpIDMxIG9jdG9icmUgMjAxNywgMTY6MDg6MDEgQ0VUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOgo+ID4gPiA+IEFzIHlvdSBwcm9iYWJseSBub3RpY2VkLCBJIG1pZ3JhdGVkIG1hdmVuLWRpc3QtdG9vbCBbMV0gdG8gZ2l0LCB1c2k9Cm5nCj4gPiA+ID4gc2VsZi0KPiA+ID4gPiBzZXJ2aWNlIEdpdGJveCBmb3IgdGhlIGVtcHR5IHJlcG8gY3JlYXRpb24gYW5kIGEgbWlncmF0ZS1zYW5kYm94LnNoCj4gPiA+ID4gc2hlbGwKPiA+ID4gPiBzY3JpcHQgWzJdIHRvIHBvcHVsYXRlIHRoZW0gKGFmdGVyIFNsaW5nIGV4YW1wbGUpCj4gPiA+ID49MjAKPiA+ID4gPiBJdCB3b3JrZWQgbGlrZSBhIGNoYXJtIQo+ID4gPiA+PTIwCj4gPiA+ID4gSWYgbm9ib2R5IG9iamVjdHMsIGluIDcyaCwgSSdsbCB1c2UgbWlncmF0ZS1wb20uc2ggYW5kCj4gPiA+ID4gbWlncmF0ZS1za2lucy5zaAo+ID4gPiA+IHRvCj4gPiA+ID4gY3JlYXRlIDQgbmV3IHJlcG9zOiBtYXZlbi1hcGFjaGUtcGFyZW50LCBtYXZlbi1wYXJlbnQsCj4gPiA+ID4gbWF2ZW4tZGVmYXVsdC1za2luCj4gPiA+ID4gYW5kIG1hdmVuLWZsdWlkby1za2luCj4gPiA+ID4gUGxlYXNlIHRha2UgdGltZSB0byBleGVjdXRlIHRoZSBzY3JpcHRzIGZvciB5b3Vyc2VsZiBhbmQgY2hlY2sgdGhhdAo+ID4gPiA+IHRoZQo+ID4gPiA+IHJlc3VsdCBpcyBvayBmb3IgeW91Lgo+ID4gPiA+PTIwCj4gPiA+ID4gSSBhbHJlYWR5IHByZXBhcmVkIG1pZ3JhdGUtcGx1Z2lucy5zaCBhbmQgbWlncmF0ZS1zaGFyZWQuc2ggc2NyaXB0czoKPiA+ID4gPiBJJ20KPiA+ID4gPiB3YWl0aW5nIGZvciBKZW5raW5zIGludGVncmF0aW9uIHJlc3VsdHMgYmVmb3JlIHRyeWluZyB0byBtaWdyYXRlIHRoPQppcwo+ID4gPiA+IHBhcnQsCj4gPiA+ID4gYnV0IHlvdSBjYW4gYWxzbyB0YWtlIHRpbWUgdG8gY2hlY2sgdGhhdCB0aGUgcmVzdWx0aW5nIGdpdCByZXBvcyBmcj0Kb20KPiA+ID4gPiB0aGUKPiA+ID4gPiBzY3JpcHRzIGFyZSBnb29kLgo+ID4gPiA+PTIwCj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPj0yMAo+ID4gPiA+IEhlcnY9RTkKPiA+ID4gPj0yMAo+ID4gPiA+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRpc3QtdG9vbC8KPiA+ID4gPj0yMAo+ID4gPiA+IFsyXSBodHRwczovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy9tYXZlbi9zYW5kYm94L3RydW5rL3NjcmlwdHMvZ2l0Lwo+ID4gPiA+PTIwCj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KPTJELQo+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj0yMAo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3NzYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIERlYyAxNSAwNjozNDoyOCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3NzYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQzRFNjMxMEVENgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDE1IERlYyAyMDE3IDA2OjM0OjI4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDMzOTMgaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgRGVjIDIwMTcgMDY6MzQ6MjggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQzMzEzIGludm9rZWQgYnkgdWlkIDUwMCk7IDE1IERlYyAyMDE3IDA2OjM0OjI4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDMzMDIgaW52b2tlZCBieSB1aWQgOTkpOyAxNSBEZWMgMjAxNyAwNjozNDoyNyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMTUgRGVjIDIwMTcgMDY6MzQ6MjcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA3NjBDNDE4MEEyRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTUgRGVjIDIwMTcgMDY6MzQ6MjcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgbUlDTFNkWk9kWGxTIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJRnJpLCAxNSBEZWMgMjAxNyAwNjozNDoyNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDEuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjNdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNjU3NUY1RjM2NgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTUgRGVjIDIwMTcgMDY6MzQ6MjQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkNTQgd2l0aCBNRQoJaWQgbTZhSjF3MDAxMjBVZmR5MDM2YUprTTsgRnJpLCAxNSBEZWMgMjAxNyAwNzozNDoxOCArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBGcmksIDE1IERlYyAyMDE3IDA3OjM0OjE4ICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IEdpdCBtaWdyYXRpb24gbmV4dCBzdGVwcwpEYXRlOiBGcmksIDE1IERlYyAyMDE3IDA3OjM0OjE3ICswMTAwCk1lc3NhZ2UtSUQ6IDwxMTQ2OTgzNC5wbm1kWjJMNHo4QGdpZ2E+CkluLVJlcGx5LVRvOiA8MTU4MTM2NS5zYjhnMDBLTVlpQGdpZ2E+ClJlZmVyZW5jZXM6IDwxOTAwNTU4LkdGeDlRbGZhRTJAZ2lnYT4gPENBK25Qbk15Ky1OdlBrbXB1NDJnTXo5d1FtK01ieHE9OVI2dUthdDFCRmtZQlpmTThOZ0BtYWlsLmdtYWlsLmNvbT4gPDE1ODEzNjUuc2I4ZzAwS01ZaUBnaWdhPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCmFub3RoZXIgc3RyYW5nZSB0aGluZyBbMV0KPTJEIHdoYXQgYXJlIHRoZSBtYW55ICJPcGVuIHRhc2tzIj8KPTJEIHdoeSBhcmUgY2hhbmdlcyB3cml0dGVuIDUgdGltZXM/CgpSZWdhcmRzCgpIZXJ2PUU5CgpbMV0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvam9iL21hdmVuLXM9Cml0ZS1wbHVnaW4vam9iL21hc3Rlci9jaGFuZ2VzCgpMZSBtZXJjcmVkaSAxMyBkPUU5Y2VtYnJlIDIwMTcsIDA1OjU4OjI4IENFVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiB0aGFuayB5b3U6IG9uZSBsZXNzIGlzc3VlCj49MjAKPiBhIG5ldyBmaW5kaW5nOiB0aGUgSmlyYSBtZXNzYWdlIHBvaW50cyB0byB0aGUgSmVua2lucyBidWlsZCwgd2h5IG5vdAo+IEJ1dCBpdCBkb2VzIG5vdCBwb2ludCB0byBHaXQgY29tbWl0IFsxXQo+PTIwCj4gdGhlIGxpbmsgdG8gdGhlIGdpdCBjb21taXQgaXMgdmVyeSB1c2VmdWwgdG8gdHJhY2sgaG93IHRoZSBmaXggd2FzIGRvbmUsID0KYW5kCj4gcmVtYWlucyB2YWxpZCBvbiBhIGxvbmcgcGVyaW9kICh3aGljaCBpcyBub3QgdGhlIGNhc2Ugb2YgdGhlIEplbmtpbnMgYnVpbD0KZCkKPj0yMAo+IElzIGl0IHBvc3NpYmxlIHRvIGhhdmUgdGhpcyBpbiBvdXIgc3RhbmRhcmQgYnVpbGQsIHBsZWFzZT8KPj0yMAo+IFJlZ2FyZHMsCj49MjAKPiBIZXJ2PUU5Cj49MjAKPiBbMV0gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9ET1hJQVNJVEVUT09MUy0xODIKPj0yMAo+IExlIGx1bmRpIDExIGQ9RTljZW1icmUgMjAxNywgMjE6Mjk6MTUgQ0VUIFN0ZXBoZW4gQ29ubm9sbHkgYSA9RTljcml0IDoKPiA+IE9uIFN1biAxMCBEZWMgMjAxNyBhdCAwOTo1OSwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdyPQpvdGU6Cj4gPiA+IGhlcmUgaXMgYSBsaXN0IG9mIHN0cmFuZ2UgaXNzdWVzIGluIENJIGpvYnM6Cj4gPiA+PTIwCj4gPiA+IC0gRG94aWEgU2l0ZXRvb2xzIGlzIGZhaWxpbmcgYXQgY2hlY2tvdXQgWzFdCj4gPiA+PTIwCj4gPiA+IC0gTWF2ZW4gY29yZSBicmFuY2hlcyBmYWlsIGluIG1hdmVuLXdpcCBbMl0gd2hpbGUgdGhlIG11bHRpLWJyYW5jaCBkbz0KZXMKPiA+ID4gbm90Cj4gPiA+IGZhaWwgWzNdOiBBRkFJSywgc2FtZSBKZW5raW5zIGZpbGVzIGFyZSB1c2VkLCBpc24ndCBpdD8KPiA+PTIwCj4gPiBVYnVudHUtNCB3YXMgaGF2aW5nIGlzc3Vlcwo+ID49MjAKPiA+ID4gUmVnYXJkcywKPiA+ID49MjAKPiA+ID4gSGVydj1FOQo+ID4gPj0yMAo+ID4gPiBbMV0KPiA+ID4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvam9iL21hdmVuPQo9MkRkbwo+ID4gPiB4aQo+ID4gPiBhLXNpdGV0b29scy9qb2IvbWFzdGVyLzQvY29uc29sZQo+ID4gPj0yMAo+ID4gPiBbMl0KPiA+ID4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi13aXAvam9iL21hdmVuLwo+ID4gPj0yMAo+ID4gPiBbM10KPiA+ID4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi0zLngtamVua2luc2ZpPQpsZS8KPiA+ID49MjAKPiA+ID4gTGUgZGltYW5jaGUgMTAgZD1FOWNlbWJyZSAyMDE3LCAwNjoyOToyMCBDRVQgSGVydj1FOSBCT1VURU1ZIGEgPUU5Y3JpPQp0IDoKPiA+ID4gPiB5ZXMsIGFuZCA4MyBtYXZlbi1ib3ggQ0kgam9icyBbMV0KPiA+ID4gPj0yMAo+ID4gPiA+IHNvbWUgQ0kgZmFpbHVyZXMgYXJlIG5vdCByZWFsbHkgZXhwZWN0ZWQsIGJ1dCBpbiBnZW5lcmFsLCB0aGUgcmVzdWx0Cj4gPiA+ID4gaXMKPiA+ID49MjAKPiA+ID4gZ29vZAo+ID4gPj0yMAo+ID4gPiA+IGl0J3MgdGltZSBmb3IgZXZlcnlib2R5IHRvIGNoZWNrIGhpcyBmYXZvcml0ZSBwbHVnaW4gb3Igc2hhcmVkCj4gPiA+ID4gY29tcG9uZW50Cj4gPiA+PTIwCj4gPiA+IGFuZAo+ID4gPj0yMAo+ID4gPiA+IGRvIHRoZSBsaXR0bGUgZml4ZXM6IHRoZSBnbG9iYWwgbWlncmF0aW9uIGlzIGRvbmUKPiA+ID4gPj0yMAo+ID4gPiA+IGFuZCBpdCdzIHRpbWUgYWxzbyB0byBzdGFydCByZXZpZXdpbmcgUFJzIGFuZCBtZXJnaW5nOiB0aGlzIHdhcyB0aGUKPiA+ID4gPiBiaWcKPiA+ID4gPiBvYmplY3RpdmUgd2l0aCBHaXQgbWlncmF0aW9uCj4gPiA+ID49MjAKPiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+PTIwCj4gPiA+ID4gSGVydj1FOQo+ID4gPiA+PTIwCj4gPiA+ID4gWzFdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tYm94Lwo+ID4gPiA+PTIwCj4gPiA+ID4gTGUgc2FtZWRpIDkgZD1FOWNlbWJyZSAyMDE3LCAxNzowNjowOSBDRVQgU3RlcGhlbiBDb25ub2xseSBhID1FOWNyaT0KdCA6Cj4gPiA+ID4gPiBJIHNlZSB3ZSBoYXZlIGEgbGFyZ2UgbnVtYmVyIG9mIHJlcG9zIG5vdyBvbiBnaXRib3ggOy0pCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gT24gVGh1IDcgRGVjIDIwMTcgYXQgMDc6MDAsIEhlcnY9RTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmY9CnI+Cj4gPiA+PTIwCj4gPiA+IHdyb3RlOgo+ID4gPiA+ID4gPiBvaywgSSBkaWRuJ3QgdXBkYXRlIG15IHJlcG8gY2xvbmU6IG5vdyB0aGUgcnVuLWl0cyBwcm9maWxlIGlzCj4gPiA+PTIwCj4gPiA+IGFjdGl2YXRlZAo+ID4gPj0yMAo+ID4gPiA+ID4gPiB0aGVuIHRoZSBwbGFuIHNob3VsZCBqdXN0IGNvbmZpcm0gIml0IHdvcmtzISIgOikKPiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gYW5kIGZpbmQgd2hpY2ggam9icyBhcmUgc3BlY2lhbCwgbGlrZSBtYXZlbi1kaXN0LXRvb2wgKHdoaWNoIGhhcwo+ID4gPiA+ID4gPiB0bwo+ID4gPj0yMAo+ID4gPiBiZQo+ID4gPj0yMAo+ID4gPiA+ID4gPiBzY2hlZHVsZWQgZGFpbHkgaW5zdGVhZCBvZiBjb2RlIGNoYW5nZSwgYW5kIG9uZSBwbGF0Zm9ybSBvbmx5KQo+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiBIZXJ2PUU5Cj4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+IExlIG1lcmNyZWRpIDYgZD1FOWNlbWJyZSAyMDE3LCAyMzo1ODo0NSBDRVQgU3RlcGhlbiBDb25ub2xseSBhID0KPUU5Y3JpdD0yMAo6Cj4gPiA+ID4gPiA+ID4gT24gV2VkIDYgRGVjIDIwMTcgYXQgMjI6MzgsIEhlcnY9RTkgQk9VVEVNWQo+ID4gPiA+ID4gPiA+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPiA+PTIwCj4gPiA+IHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gTm93IHRoYXQgd2UgaGF2ZSAyIEFTRiBPcmdhbml6YXRpb24gSmVua2lucyBqb2JzIChvbmUgZm9yCj4gPiA+ID4gPiA+ID4gPiBnaXRib3gKPiA+ID49MjAKPiA+ID4gWzFdCj4gPiA+PTIwCj4gPiA+ID4gPiA+IGFuZAo+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+ID4gb25lCj4gPiA+ID4gPiA+ID4gPiBmb3IgZ2l0LXdpcDogdGhhbmsgeW91IFN0ZXBoZW4pIGFuZCB0aGF0IGl0IGxvb2tzIHF1aXRlCj4gPiA+PTIwCj4gPiA+IHN1Y2Nlc3NmdWwsCj4gPiA+PTIwCj4gPiA+ID4gPiA+IGxldCdzCj4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gPiBwbGFuCj4gPiA+ID4gPiA+ID4gPiB0aGUgbmV4dCBzdGVwcy4KPiA+ID4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gPiBIZXJlIGlzIHdoYXQgSSBzZWU6Cj4gPiA+ID4gPiA+ID4gPiAxLiByZW1vdmFsIG9mIGhhbmQtZGVmaW5lZCBKZW5raW5zIGpvYnMgdGhhdCBhcmUgbm93Cj4gPiA+ID4gPiA+ID4gPiBkdXBsaWNhdGVzCj4gPiA+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+ID4gMi4gcHJlcGFyYXRpb24gb2YgdGhlIDYwIG5ldyBlbXB0eSBnaXQgcmVwb3MgZm9yIHNoYXJlZCAmCj4gPiA+ID4gPiA+ID4gPiBwbHVnaW5zCj4gPiA+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+ID4gMy4gbWlncmF0aW9uIG9mIHRoZSAxIHNoYXJlZCBjb21wb25lbnQgYW5kIDEgcGx1Z2luIHVzaW5nCj4gPiA+ID4gPiA+ID4gPiBtaWdyYXRlLSouc2gKPiA+ID4gPiA+ID4gPiA+IHNjcmlwdHMKPiA+ID4gPiA+ID4gPiA+IFszXSB0byB0ZXN0IGFuZCBldmVudHVhbGx5IHJld29yayB0aGUgSmVua2luc2ZpbGUgKEkgc3VwcG9zZQo+ID4gPiA+ID4gPiA+ID4gaXQKPiA+ID49MjAKPiA+ID4gd2lsbAo+ID4gPj0yMAo+ID4gPiA+ID4gPiA+ID4gcmVxdWlyZQo+ID4gPiA+ID4gPiA+ID4gc29tZSBsaXR0bGUgY2hhbmdlLCB0byBydW4gYWRkICJydW4taXRzIiBwcm9maWxlKQo+ID4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gQXMgZmFyIGFzIEkgcmVjYWxsLCBJIGFkZGVkIC1QK3J1bi1pdHMgYWxyZWFkeQo+ID4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gRm9yIHRoZSBwbHVnaW4sIEknZCBsaWtlIHRvIGRvIHRoZSBqb2IgZm9yIG1hdmVuLXNpdGUtcGx1Z2luLAo+ID4gPj0yMAo+ID4gPiBzaW5jZSB3ZQo+ID4gPj0yMAo+ID4gPiA+ID4gPiA+ID4gZXhwZWN0Cj4gPiA+ID4gPiA+ID4gPiB0byByZWxlYXNlIGl0IHNvb24uCj4gPiA+ID4gPiA+ID4gPiBGb3IgdGhlIHNoYXJlZCBjb21wb25lbnQsIEkgZG9uJ3Qga25vdyBpZiB0aGVyZSBpcyBhIGJlc3QKPiA+ID49MjAKPiA+ID4gY2FuZGlkYXRlCj4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gPiA0LiBvbmNlIHByZXZpb3VzIHN0ZXAgaXMgb2ssIGRvIHRoZSBmdWxsIG1pZ3JhdGlvbjogaWYgdGhlcmUKPiA+ID4gPiA+ID4gPiA+IGFyZQo+ID4gPiA+ID4gPiA+ID4gdm9sdW50ZWVycwo+ID4gPiA+ID4gPiA+ID4gZm9yIGhlbHBpbmcsIHRoYXQgd291bGQgYmUgZ3JlYXQsIHNpbmNlIHBvcHVsYXRpbmcgNjAgZ2l0Cj4gPiA+ID4gPiA+ID4gPiByZXBvcwo+ID4gPiA+ID4gPiA+ID4gd29uJ3QKPiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gYmUKPiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gPiA+IHJlYWxseSBmdW4uLi4KPiA+ID4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gPiBBbmQgYXMgcGFydCBvZiA2MCBlbXB0eSBnaXQgcmVwb3MgY3JlYXRpb24sIEkgcHJvcG9zZSB0bwo+ID4gPiA+ID4gPiA+ID4gbWlncmF0ZQo+ID4gPj0yMAo+ID4gPiB0aGUKPiA+ID49MjAKPiA+ID4gPiA+ID4gPiA+ICJHb29nbGUKPiA+ID4gPiA+ID4gPiA+IHJlcG8gbWFuaWZlc3QiIG1hdmVuLWFnZ3JlZ2F0b3IgWzRdIHRvIEFTRjogbXkgcGVyc29uYWwgdXNlCj4gPiA+ID4gPiA+ID4gPiBoYXMKPiA+ID49MjAKPiA+ID4gYmVlbgo+ID4gPj0yMAo+ID4gPiA+ID4gPiBxdWl0ZQo+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+ID4gc3VjY2Vzc2Z1bCwgSSBob3BlIGl0J3MgdGhlIHNhbWUgZm9yIG90aGVycy4gUGVyaGFwcyB0aGVyZSA9CmFyZQo+ID4gPiA+ID4gPiA+ID4gYmV0dGVyCj4gPiA+ID4gPiA+ID4gPiBpZGVhcwo+ID4gPiA+ID4gPiA+ID4gZm9yIGl0cyBuYW1lOiBtYXZlbi1hZ2dyZWdhdG9yCj4gPiA+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+ID4gQW55IG90aGVyIGlkZWE/IGFueSBvYmplY3Rpb24/Cj4gPiA+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gPiBIZXJ2PUU5Cj4gPiA+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+ID4gWzFdCj4gPiA+ID4gPiA+ID4gPiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC8KPiA+ID4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gPiBbMl0KPiA+ID4gPiA+ID4gPiA+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4td2lwLwo+ID4gPiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gPiA+IFszXQo+ID4gPj0yMAo+ID4gPiBodHRwczovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy9tYXZlbi9zYW5kYm94L3RydW5rL3NjcmlwdHMvZ2l0Lwo+ID4gPj0yMAo+ID4gPiA+ID4gPiA+ID4gWzRdIGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1hZ2dyZWdhdG9yCj4gPiA+PTIwCj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gPiAtCj4gPiA+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gPiA+IC0tCj4gPiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQo9MkQtLQo+ID4gPiA+ID4gPiAtLQo+ID4gPiA+ID4gPiAtCj4gPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gLS0KPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+ID4gPj0yMAo+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0KPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID49MjAKPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID49MjAKPiA+ID4gLS0KPiA+PTIwCj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM5ODctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIFNlcCAxMSAyMjo1ODoxNiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5ODctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMTRDRUQxOTVCMAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDIyOjU4OjE2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzYwIGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDIyOjU4OjE1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyODMgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgU2VwIDIwMTcgMjI6NTg6MTUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNjcgaW52b2tlZCBieSB1aWQgOTkpOyAxMSBTZXAgMjAxNyAyMjo1ODoxNSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMTEgU2VwIDIwMTcgMjI6NTg6MTUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAwMzJFNjE4M0NBOAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMjI6NTg6MTUgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC44ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjVdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHRkUml4dlRxYUttbSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMTEgU2VwIDIwMTcgMjI6NTg6MTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDA5LnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTMxXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDlERkFCNUZDMTIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDIyOjU4OjEzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDY5IHdpdGggTUUKCWlkIDhOeTcxdzAwUDIwVWZkeTAzTnk3UXc7IFR1ZSwgMTIgU2VwIDIwMTcgMDA6NTg6MDcgKzAyMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogVHVlLCAxMiBTZXAgMjAxNyAwMDo1ODowNyArMDIwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gRGVwZW5kZW5jeSBQbHVnaW4gdmVyc2lvbiAzLjAuMgpEYXRlOiBUdWUsIDEyIFNlcCAyMDE3IDAwOjU4OjA3ICswMjAwCk1lc3NhZ2UtSUQ6IDwxMTU4Mjc1MS5XNTY3WXhwWGZMQGdpZ2E+ClVzZXItQWdlbnQ6IEtNYWlsLzUuMi4zIChMaW51eC80LjEwLjAtMzMtZ2VuZXJpYzsgS0RFLzUuMzEuMDsgeDg2XzY0OyA7ICkKSW4tUmVwbHktVG86IDw3OGE1YWY5Mi1lNDcxLWY5ZjktN2RlMC1mMDJkMDlmYTQwMzVAZ214LmRlPgpSZWZlcmVuY2VzOiA8NzhhNWFmOTItZTQ3MS1mOWY5LTdkZTAtZjAyZDA5ZmE0MDM1QGdteC5kZT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgorMQoKUmVnYXJkcywKCkhlcnY9RTkKCkxlIHNhbWVkaSA5IHNlcHRlbWJyZSAyMDE3LCAxNDozNDo0OSBDRVNUIEthcmwgSGVpbnogTWFyYmFpc2UgYSA9RTljcml0IDoKPiBIaSwKPj0yMAo+IFdlIHNvbHZlZCA3IGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamVjdElkPTNEMTIzMTcyPQoyNyZ2ZQo+IHJzaW9uPTNEMTIzNDEyNTQKPj0yMAo+IFRoZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlM0QlMjBNREVQJTIwQU5EJTI9CjByZXNvCj4gbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJT0KMkMlCj4gMjB1cGRhdGVkJTIwREVTQwo+PTIwCj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjAKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzYwL29yZy9hcGFjaGUvPQptYXYKPiBlbi9wbHVnaW5zL21hdmVuLWRlcGVuZGVuY3ktcGx1Z2luLzMuMC4yL21hdmVuLWRlcGVuZGVuY3ktcGx1Z2luLTMuMC4yLXNvPQp1cmMKPiBlLXJlbGVhc2UuemlwCj49MjAKPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBtYXZlbi1kZXBlbmRlbmN5LXBsdWdpbi0zLjAuMi1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMToKPiAzYzRhYTcxNmUyOGIyNDE4MzRkNDdkMjJlMWZmNWY2ZTYyZjE2YjliCj49MjAKPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tZGVwZW5kZW5jeS1wbHVnaW4tTEFURVNULwo+PTIwCj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPj0yMAo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj49MjAKPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPj0yMAo+IEtpbmQgcmVnYXJkcwo+IEthcmwgSGVpbnogTWFyYmFpc2UKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3ODQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIERlYyAxOCAwNzo0Mjo0MyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3ODQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgREM2NkUxN0E4OAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDE4IERlYyAyMDE3IDA3OjQyOjQyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTI1NTEgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggRGVjIDIwMTcgMDc6NDI6MzcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDEyNDQxIGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IERlYyAyMDE3IDA3OjQyOjM3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTI0MzAgaW52b2tlZCBieSB1aWQgOTkpOyAxOCBEZWMgMjAxNyAwNzo0MjozNyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMTggRGVjIDIwMTcgMDc6NDI6MzcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBCQUM3NDFBMEE5QQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTggRGVjIDIwMTcgMDc6NDI6MzYgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMS44ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xLjggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgTElRSEJuVndxeEZNIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAxOCBEZWMgMjAxNyAwNzo0MjozNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMTAuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMzJdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNDFCRDU1RjI5NwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTggRGVjIDIwMTcgMDc6NDI6MzUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMjAgd2l0aCBNRQoJaWQgbktpVTF3MDBUMjBVZmR5MDNLaVVhSjsgTW9uLCAxOCBEZWMgMjAxNyAwODo0MjoyOCArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBNb24sIDE4IERlYyAyMDE3IDA4OjQyOjI4ICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogW0ZFRURCQUNLIFdBTlRFRF0gZWRpdCBidXR0b24gb24gYSBNYXZlbiBzaXRlCkRhdGU6IE1vbiwgMTggRGVjIDIwMTcgMDg6NDI6MjggKzAxMDAKTWVzc2FnZS1JRDogPDExOTIyMTcxLmJBekRlRUZpT01AZ2lnYT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpIaSwKCkkganVzdCBtYW5hZ2VkIHRvIGFkZCBhbiAiZWRpdCIgYnV0dG9uIGluIE1hdmVuIGdlbmVyYXRlZCBzaXRlcywgdGhhdCB3aWxsPQo9MjAKaGVscCBwZW9wbGUgZmluZCB0aGUgc291cmNlIG9mIHRoZSBkb2N1bWVudC4KClNlZSBhbiBleGFtcGxlIGhlcmUgKHRoZSBsaXR0bGUgaWNvbiBuZWFyIHRoZSB2ZXJzaW9uKToKaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvc2tpbnMtYXJjaGl2ZXMvbWF2ZW4tZmx1aWRvLXNraW4tTEFURVNULwoKSSB3YW50ZWQgdG8gcHVibGlzaCBpdCB0byBNYXZlbiBzaXRlIHRocm91Z2ggaHR0cDovL3N2bi5hcGFjaGUub3JnL3IxODE4NDg5PQo9MjAKYnV0IGJ1aWxkYm90IGRpZCBub3QgY2F0Y2ggdGhlIFNOQVBTSE9UIG0tc2l0ZS1wIHBsdWdpbjogd2UnbGwgaGF2ZSB0byB3YWl0PQo9MjAKZm9yIHRoZSByZWxlYXNlIChhZnRlciBEb3hpYSB0aGVuIERveGlhIFNpdGV0b29scyByZWxlYXNlczogcGxlYXNlIHZvdGUpLgoKPTQ2ZWVkYmFjayBhcHByZWNpYXRlZCBvbiB0aGUgbmV3IGljb24sIGl0cyBjb25maWd1cmF0aW9uLCBvciBhbnkgaWRlYSB0aGF0PQogY291bGQ9MjAKaW1wcm92ZSB0aGUgZmVhdHVyZS4KRG9uJ3QgaGVzaXRhdGUgdG8gcHJvcG9zZSBpbXByb3ZlbWVudHMgYXMgaHRtbCBjaGFuZ2VzOiB3ZSdsbCBzZWUgbGF0ZXIgaG93PQogdG89MjAKZ2V0IHRoZSB1cGRhdGUgaW4gdGhlIFZlbG9jaXR5IHRlbXBsYXRlIHRoYXQgZ2VuZXJhdGVkIHRoZSBodG1sLi4uCgpSZWdhcmRzLAoKSGVydj1FOQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NzY1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBEZWMgMTAgMTY6NDY6MjEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzY1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEIxQjc1MTA4NTAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxMCBEZWMgMjAxNyAxNjo0NjoyMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk3NjEwIGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIERlYyAyMDE3IDE2OjQ2OjIxIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NzUyMCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBEZWMgMjAxNyAxNjo0NjoyMSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk3NTA4IGludm9rZWQgYnkgdWlkIDk5KTsgMTAgRGVjIDIwMTcgMTY6NDY6MjEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDEwIERlYyAyMDE3IDE2OjQ2OjIxICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQUIzOUZDMzEyMAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgRGVjIDIwMTcgMTY6NDY6MjAgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjc5OQpYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuNzk5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFl2N1JTNHV5YVhEMSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgMTAgRGVjIDIwMTcgMTY6NDY6MTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDAxLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTIzXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEIyMzZFNUYyNTEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIERlYyAyMDE3IDE2OjQ2OjE4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDM2IHdpdGggTUUKCWlkIGtHbUExdzAwVjIwVWZkeTAzR21Ba2c7IFN1biwgMTAgRGVjIDIwMTcgMTc6NDY6MTAgKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogU3VuLCAxMCBEZWMgMjAxNyAxNzo0NjoxMCArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBtZXJnaW5nIE1ORy02MzA4IGRpc3BsYXkgcGFja2FnaW5nCkRhdGU6IFN1biwgMTAgRGVjIDIwMTcgMTc6NDY6MTAgKzAxMDAKTWVzc2FnZS1JRDogPDEyMDA5NjQ5LjhaVjlOUWNIYklAZ2lnYT4KSW4tUmVwbHktVG86IDxvcC56YTB6bzZnM2tka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KUmVmZXJlbmNlczogPDI3NTMwNDAuOFMxNXNsajdaNUBnaWdhPiA8b3AuemEwem82ZzNrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKTGUgZGltYW5jaGUgMTAgZD1FOWNlbWJyZSAyMDE3LCAxMTowNjozMiBDRVQgUm9iZXJ0IFNjaG9sdGUgYSA9RTljcml0IDoKPiBJIHN0aWxsIHRoaW5rIGl0IGlzIHVnbHkgdG8gdXNlIHRoZSBIUiBmb3IgdGhpcyBraW5kIG9mIGluZm8uCj4gSWYgeW91ICpyZWFsbHkqIHdhbnQgdGhpcyBpbmZvLCBJJ2QgcHJlZmVyIGEgbmV3IGxpbmUsIG9mZmVyaW5nIG1vcmUgc3BhY2UKPiBmb3IgYWRkaXRpb25hbCBpbmZvLgp5ZXMsIEkgKnJlYWxseSogd2FudCB0aGlzIGluZm86IHRoZSBwcmVjaXNlIGRldGFpbHMgb24gaG93IHRvIGRpc3BsYXkgaXQgaXM9Cj0yMApsZXNzIGltcG9ydGFudAoKPiBPdGhlciBvcHRpb24gaXMgdG8gbGVhdmUgaXQgYXMgaXQgaXMuIElmIGRldmVsb3BlcnMgd2FudCBpdCwgdGhleSBjYW4gcHV0Cj4gaXQgaW4gdGhlIG5hbWUuCnRoZSBpZGVhIGlzIHRoYXQgJHtwcm9qZWN0LnBhY2thZ2luZ30gZHJpdmVzIHRoZSBkZWZhdWx0IGJ1aWxkLCBiZWZvcmU9MjAKYWRkaXRpb25hbCBwbHVnaW5zIGJpbmRpbmdzOiBpdCdzIHVzZWZ1bCB0byBkaXNwbGF5IGl0IGFzIGl0IGlzIGEga2V5IGluZm8KCj49MjAKPiBTbyAtMSBmb3IgbWUuCmhvdyBkbyB5b3Ugd2FudCB0byBwcm9jZWVkIHRvIGNob29zZSB0aGUgYmVzdCBkaXNwbGF5PwoKUmVnYXJkcywKCkhlcnY9RTkKCj49MjAKPiBSb2JlcnQKPj0yMAo+PTIwCj4gT24gU3VuLCAxMCBEZWMgMjAxNyAxMTowMTo0MSArMDEwMCwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZj0Kcj4KPj0yMAo+IHdyb3RlOgo+ID4gaXMgdGhlcmUgYSBzZWNvbmRlciBmb3IgdGhpcyBlbmhhbmNlbWVudD8KPiA+PTIwCj4gPiBDSToKPiA+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tMy54LWplbmtpbnNmaWxlLwo+ID4gam9iL01ORy02MzA4X2Rpc3BsYXlfcGFja2FnaW5nLwo+ID49MjAKPiA+IEppcmEgaXNzdWU6IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYzMDgKPiA+PTIwCj4gPiBSZWdhcmRzLAo+ID49MjAKPiA+IEhlcnY9RTkKPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj49MjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NDczLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBOb3YgMTMgMDQ6MDg6MjkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDczLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEVCQjMzRkYxNAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDEzIE5vdiAyMDE3IDA0OjA4OjI4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTk3MzAgaW52b2tlZCBieSB1aWQgNTAwKTsgMTMgTm92IDIwMTcgMDQ6MDg6MjggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk5NjU3IGludm9rZWQgYnkgdWlkIDUwMCk7IDEzIE5vdiAyMDE3IDA0OjA4OjI4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTk2NDUgaW52b2tlZCBieSB1aWQgOTkpOyAxMyBOb3YgMjAxNyAwNDowODoyNyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMTMgTm92IDIwMTcgMDQ6MDg6MjcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAyMDMwMjFBMkJGRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTMgTm92IDIwMTcgMDQ6MDg6MjcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjk4ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuOTggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBIVE1MX01FU1NBR0U9MiwKCUtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41XSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPXRhbGlvcy1jb20uMjAxNTA2MjMuZ2FwcHNzbXRwLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgMVpHb25OVUMxVWRVIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAxMyBOb3YgMjAxNyAwNDowODoyNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXBnMC1mNDUuZ29vZ2xlLmNvbSAobWFpbC1wZzAtZjQ1Lmdvb2dsZS5jb20gWzc0LjEyNS44My40NV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA5RDdFOTVGRTBFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMyBOb3YgMjAxNyAwNDowODoyNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1wZzAtZjQ1Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHoxODRzbzYzOTY5MzdwZ2QuMTMKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMiBOb3YgMjAxNyAyMDowODoyNSAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9dGFsaW9zLWNvbS4yMDE1MDYyMy5nYXBwc3NtdHAuY29tOyBzPTIwMTUwNjIzOwogICAgICAgIGg9ZnJvbTp0bzpzdWJqZWN0OmRhdGU6bWVzc2FnZS1pZDppbi1yZXBseS10bzpyZWZlcmVuY2VzOm1pbWUtdmVyc2lvbjsKICAgICAgICBiaD1wWUdTNUVFR2w0OEsyR2gzUk1KYWQvSU44a3hFcEJET0JuY01INEgyMG9rPTsKICAgICAgICBiPUcxU2tFNCtXdEJTNlUvUzc2bDU5YzQvVFZnZmRrQUJESWI4Z3VPVkVOTXpNMm5kM3ArWWxSUVA1WlZjK3V4bVN5eAogICAgICAgICAwb3ArK2JwQ1dFNFBGclVET3RSU2xRR0NYRVFYRFpnT0xuUU1ZZWx5aTZMZk9PWVJZMWl3ZjZrejN0SERXODlLSTdtQwogICAgICAgICB5eXpIRXJuZ0lHeUdDY2gvV1pFdnZ3Z1psYk1SaSs2TG5qVXJBMUxMaGt1eVhRalBWc09YdExsTldkOFFwK2ZTTjd5NwogICAgICAgICAyakJ6aDR5b29VKzk2dnpQM1ppYlhuSUhoWGQ1T2tKUjZXVlFqcFJ5YjU0VjhSVXZzWUlJYUI3ZVFRa3VUWTN5c1llWQogICAgICAgICBqb2JNbnIyWDlYdE5mRHp1cVpNbEh3K3ZyV2grK0lsQlc4ZXlDRDBORlp5cDBUNmkwai9wUW5xUUowaGVCcW1sb3gxcAogICAgICAgICBFVkp3PT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTpmcm9tOnRvOnN1YmplY3Q6ZGF0ZTptZXNzYWdlLWlkOmluLXJlcGx5LXRvCiAgICAgICAgIDpyZWZlcmVuY2VzOm1pbWUtdmVyc2lvbjsKICAgICAgICBiaD1wWUdTNUVFR2w0OEsyR2gzUk1KYWQvSU44a3hFcEJET0JuY01INEgyMG9rPTsKICAgICAgICBiPVZBWERYc0xBTGNHYkp6eCttUGtrR2ExWnRSWDc2QlRkejBlNzY4VXZPd1VCd1dIM2lHTFcwYk02RzBLZTVNQ2g0TgogICAgICAgICBaaHk4U1FmdWFKY1c0aVR5ZjB3bGdHbXd0cFVYa3IwSEJlb3VFU2VuN0NMaHJlTUJ6QkxMWVBvaTcxTWI4M1pzMHJhWgogICAgICAgICA3QWIva2FqR3QyYmkrMHlNZFhaU0RxV2lEaGx5anVjMDMvK2oxdlZQRVlWWm9oWElnSkpVTkZ1c3h1cktPV1FZNUtQMgogICAgICAgICBVekhURFExSzFENHZtaDE1QlBPeFJ5WndwSnlic1VkemtEYVhMbllvT0JtM2F1NlRpcWtSVGx2S0YrakpRekdtS3VhQQogICAgICAgICBYd2M4ZWxNQlQyRmNLQVdoaHUrQ1VUeHZBcXVxNSt1czNFVE9KRjZJSlRuN0NDclZqZVpBcVYrRVdBV3FWdHBlMVZ1SQogICAgICAgICBaSHJ3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg1WnRNSS9iaTkzejQwclY5TWxDdGh0QVo4a1JpaDNid0crZjhzdzZkVDR6dnl3N3BCOAoJaGpMNHZ3VFRWU2ZheHdxTUJSSWNybUpTdFJ3VTA4az0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TWFNNEV5bk5GN21YZFpRTDhzeUZxREphRnhFSHdKSlg3QXlXZHZZM1d2QlNkODBRNmJucmhCOXdkMlEzMHRTVjUxK3hhdmowdz09ClgtUmVjZWl2ZWQ6IGJ5IDEwLjE1OS4yMzAuMTMgd2l0aCBTTVRQIGlkIHUxM21yNzY2NDExNXBscS4yMjYuMTUxMDU0NjA5ODA5NjsKICAgICAgICBTdW4sIDEyIE5vdiAyMDE3IDIwOjA4OjE4IC0wODAwIChQU1QpClJlY2VpdmVkOiBmcm9tIFsxMC4wLjIwMi44N10gKFsxMTMuMTk3LjY1LjIyXSkKICAgICAgICBieSBzbXRwLmdtYWlsLmNvbSB3aXRoIEVTTVRQU0EgaWQgdjc2c20yOTMwOTg2MXBmay43OC4yMDE3LjExLjEyLjIwLjA4LjE2CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KICAgICAgICAodmVyc2lvbj1UTFMxXzIgY2lwaGVyPUVDREhFLVJTQS1BRVMxMjgtR0NNLVNIQTI1NiBiaXRzPTEyOC8xMjgpOwogICAgICAgIFN1biwgMTIgTm92IDIwMTcgMjA6MDg6MTcgLTA4MDAgKFBTVCkKRnJvbTogIk1hcmsgRGVycmljdXR0IiA8bWFya0B0YWxpb3MuY29tPgpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogTWF2ZW4gNC4wLjAKRGF0ZTogTW9uLCAxMyBOb3YgMjAxNyAxNzowODoxMyArMTMwMApNZXNzYWdlLUlEOiA8MTI0MUFERjYtQkI5RC00MUQ1LTlCNTktMTE0QzdBQzU0M0U1QHRhbGlvcy5jb20+CkluLVJlcGx5LVRvOiA8Q0ErblBuTXdvdDlMdnBwT3dERDhpa2RoPVM4dXpVZ2hrZndxVit4Q0VmdHZfXytmN0R3QG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXdFSDlaMm15cDcxdWFTcmRjeUxKUkZyRS1WcnQyMDE5MXJkMDFoK1VmaGp3QG1haWwuZ21haWwuY29tPgogPENBSmNLekhHZXZYV3V1Tld2UVMtNWM0cUZrWTdQZ1lIX3Z6UHRDaHhUN243dE5kV0QzZ0BtYWlsLmdtYWlsLmNvbT4KIDxDQStuUG5Nd290OUx2cHBPd0REOGlrZGg9Uzh1elVnaGtmd3FWK3hDRWZ0dl9fK2Y3RHdAbWFpbC5nbWFpbC5jb20+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L3NpZ25lZDsKIGJvdW5kYXJ5PSI9X01haWxNYXRlXzUzQTQyNTQ5LUFFQTMtNEM3OS1CNTFELUE0MDExRjczQzZBN189IjsKIG1pY2FsZz1wZ3Atc2hhMTsgcHJvdG9jb2w9ImFwcGxpY2F0aW9uL3BncC1zaWduYXR1cmUiClgtTWFpbGVyOiBNYWlsTWF0ZSAoMi4wQkVUQXI2MDkzKQoKLS09X01haWxNYXRlXzUzQTQyNTQ5LUFFQTMtNEM3OS1CNTFELUE0MDExRjczQzZBN189CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOwogYm91bmRhcnk9Ij1fTWFpbE1hdGVfNzEyQzkyNjgtQzlERC00ODBELUExQUYtQzY3NEYwQjM0MjBCXz0iCgoKLS09X01haWxNYXRlXzcxMkM5MjY4LUM5REQtNDgwRC1BMUFGLUM2NzRGMEIzNDIwQl89CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgbWFya3VwPW1hcmtkb3duCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCk9uIDEyIE5vdiAyMDE3LCBhdCAyMzowNiwgU3RlcGhlbiBDb25ub2xseSB3cm90ZToKCj4gVGhhdCBjb3VsZCBlbmQgdXAgZHVwbGljYXRpbmcgdGhlIGxvY2FsIHJlcG8gY2FjaGUuLi4gdW5sZXNzIHdlIGRlZmF1bHQ9CiB0aGUKPiBjYWNoZSB0byB+Ly5tMi9yZXBvc2l0b3J5IGFueXdheS4uLiBvdG9oIGEgY29uY3VycmVuY3kgc2FmZSBsb2NhbCByZXBvCj4gY2FjaGUgbWF5IG1hbmRhdGUgYSBuZXcgbG9jYXRpb24uLi4gYnV0IGRvdWJsZSB0aGUgZG93bmxvYWRzIGZvciBpbnRlci09Cm9wCj4gd2l0aCBvbGRlciBNYXZlbiBpbnN0YWxscyBvbiB0aGUgc2FtZSBtYWNoaW5lIHNlZW1zIG5vdCBzbyBnb29kIHRvIG1lLgoKSWYgd2UncmUgdGFsa2luZyByZXN0cnVjdHVyaW5nIHRoZSBsb2NhbCByZXBvLCBJJ3ZlIGxvbmcgd2FudGluZyB0byBzZXBhcj0KYXRlIG91dCBsb2NhbGx5ICJtdm4gaW5zdGFsbCInZCBpdGVtcyBmcm9tIHRob3NlIGRvd25sb2FkZWQsIGVzc2VudGlhbGx5ID0KdGhpcyB3b3VsZCBrZWVwICggZm9yIHRoZSBtb3N0IHBhcnQgKSBsb2NhbCBTTkFQU0hPVHMgc2VwYXJhdGUgZnJvbSBhbnl0aD0KaW5nIGRvd25sb2FkZWQuCgpJIGd1ZXNzIHdoYXQgSSByZWFsbHkgd2FudCB0aGVyZSBpcyBhIGxvY2FsIHJlbGVhc2VzL3NuYXBoc2hvdHMgcmVwbyBzZXBhPQpyYXRpb24sIG9mdGVuIGl0J3MgaGFuZHkgdG8ganVzdCBibG93IGF3YXkgYWxsIHNuYXBzaG90cyBhbmQgcmVidWlsZCBpbnRvPQogYSBrbm93biBzdGF0ZS4gIEl0IGRvZXMgbWFrZSBmb3IgbW9yZSBjb21wbGV4aXR5IHRoby4KCgoKLS0tCiJUaGUgZWFzZSB3aXRoIHdoaWNoIGEgY2hhbmdlIGNhbiBiZSBpbXBsZW1lbnRlZCBoYXMgbm8gcmVsZXZhbmNlIGF0IGFsbCA9CnRvIHdoZXRoZXIgaXQgaXMgdGhlIHJpZ2h0IGNoYW5nZSBmb3IgdGhlIChKYXZhKSBQbGF0Zm9ybSBmb3IgYWxsIHRpbWUuIiA9CiZtZGFzaDsgTWFyayBSZWluaG9sZC4KCk1hcmsgRGVycmljdXR0Cmh0dHA6Ly93d3cudGhlb3J5aW5wcmFjdGljZS5uZXQKaHR0cDovL3d3dy5jaGFsaWNlb2ZibG9vZC5uZXQKaHR0cDovL3BsdXMuZ29vZ2xlLmNvbS8rTWFya0RlcnJpY3V0dApodHRwOi8vdHdpdHRlci5jb20vdGFsaW9zCmh0dHA6Ly9mYWNlYm9vay5jb20vbWRlcnJpY3V0dAoKLS09X01haWxNYXRlXzcxMkM5MjY4LUM5REQtNDgwRC1BMUFGLUM2NzRGMEIzNDIwQl89CkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPgo8aHRtbD4KPGhlYWQ+CjxtZXRhIGh0dHAtZXF1aXY9M0QiQ29udGVudC1UeXBlIiBjb250ZW50PTNEInRleHQveGh0bWw7IGNoYXJzZXQ9M0R1dGYtOCI9Cj4KPC9oZWFkPgo8Ym9keT4KPGRpdiBzdHlsZT0zRCJmb250LWZhbWlseTpzYW5zLXNlcmlmIj48ZGl2IHN0eWxlPTNEIndoaXRlLXNwYWNlOm5vcm1hbCI+CjxwIGRpcj0zRCJhdXRvIj5PbiAxMiBOb3YgMjAxNywgYXQgMjM6MDYsIFN0ZXBoZW4gQ29ubm9sbHkgd3JvdGU6PC9wPgoKPGJsb2NrcXVvdGUgc3R5bGU9M0QiYm9yZGVyLWxlZnQ6MnB4IHNvbGlkICM1ODU1RDU7IGNvbG9yOiM1ODU1RDU7IG1hcmdpbj0KOjAgMCA1cHg7IHBhZGRpbmctbGVmdDo1cHgiPgo8cCBkaXI9M0QiYXV0byI+VGhhdCBjb3VsZCBlbmQgdXAgZHVwbGljYXRpbmcgdGhlIGxvY2FsIHJlcG8gY2FjaGUuLi4gdW5sPQplc3Mgd2UgZGVmYXVsdCB0aGU8YnI+CmNhY2hlIHRvIH4vLm0yL3JlcG9zaXRvcnkgYW55d2F5Li4uIG90b2ggYSBjb25jdXJyZW5jeSBzYWZlIGxvY2FsIHJlcG88YnI9Cj4KY2FjaGUgbWF5IG1hbmRhdGUgYSBuZXcgbG9jYXRpb24uLi4gYnV0IGRvdWJsZSB0aGUgZG93bmxvYWRzIGZvciBpbnRlci1vcD0KPGJyPgp3aXRoIG9sZGVyIE1hdmVuIGluc3RhbGxzIG9uIHRoZSBzYW1lIG1hY2hpbmUgc2VlbXMgbm90IHNvIGdvb2QgdG8gbWUuPC9wPQo+CjwvYmxvY2txdW90ZT4KCjxwIGRpcj0zRCJhdXRvIj5JZiB3ZSdyZSB0YWxraW5nIHJlc3RydWN0dXJpbmcgdGhlIGxvY2FsIHJlcG8sIEkndmUgbG9uZyA9CndhbnRpbmcgdG8gc2VwYXJhdGUgb3V0IGxvY2FsbHkgIm12biBpbnN0YWxsIidkIGl0ZW1zIGZyb20gdGhvc2UgZG93bmxvYWQ9CmVkLCBlc3NlbnRpYWxseSB0aGlzIHdvdWxkIGtlZXAgKCBmb3IgdGhlIG1vc3QgcGFydCApIGxvY2FsIFNOQVBTSE9UcyBzZXA9CmFyYXRlIGZyb20gYW55dGhpbmcgZG93bmxvYWRlZC48L3A+Cgo8cCBkaXI9M0QiYXV0byI+SSBndWVzcyB3aGF0IEkgcmVhbGx5IHdhbnQgdGhlcmUgaXMgYSBsb2NhbCByZWxlYXNlcy9zbmFwPQpoc2hvdHMgcmVwbyBzZXBhcmF0aW9uLCBvZnRlbiBpdCdzIGhhbmR5IHRvIGp1c3QgYmxvdyBhd2F5IGFsbCBzbmFwc2hvdHMgPQphbmQgcmVidWlsZCBpbnRvIGEga25vd24gc3RhdGUuICBJdCBkb2VzIG1ha2UgZm9yIG1vcmUgY29tcGxleGl0eSB0aG8uPC9wPQo+Cgo8aHI+Cgo8cCBkaXI9M0QiYXV0byI+IlRoZSBlYXNlIHdpdGggd2hpY2ggYSBjaGFuZ2UgY2FuIGJlIGltcGxlbWVudGVkIGhhcyBubyByPQplbGV2YW5jZSBhdCBhbGwgdG8gd2hldGhlciBpdCBpcyB0aGUgcmlnaHQgY2hhbmdlIGZvciB0aGUgKEphdmEpIFBsYXRmb3JtPQogZm9yIGFsbCB0aW1lLiIgPUUyPTgwPTk0IE1hcmsgUmVpbmhvbGQuPC9wPgoKPHAgZGlyPTNEImF1dG8iPk1hcmsgRGVycmljdXR0PGJyPgo8YSBocmVmPTNEImh0dHA6Ly93d3cudGhlb3J5aW5wcmFjdGljZS5uZXQiPmh0dHA6Ly93d3cudGhlb3J5aW5wcmFjdGljZS5uPQpldDwvYT48YnI+CjxhIGhyZWY9M0QiaHR0cDovL3d3dy5jaGFsaWNlb2ZibG9vZC5uZXQiPmh0dHA6Ly93d3cuY2hhbGljZW9mYmxvb2QubmV0PC89CmE+PGJyPgo8YSBocmVmPTNEImh0dHA6Ly9wbHVzLmdvb2dsZS5jb20vK01hcmtEZXJyaWN1dHQiPmh0dHA6Ly9wbHVzLmdvb2dsZS5jb20vPQorTWFya0RlcnJpY3V0dDwvYT48YnI+CjxhIGhyZWY9M0QiaHR0cDovL3R3aXR0ZXIuY29tL3RhbGlvcyI+aHR0cDovL3R3aXR0ZXIuY29tL3RhbGlvczwvYT48YnI+CjxhIGhyZWY9M0QiaHR0cDovL2ZhY2Vib29rLmNvbS9tZGVycmljdXR0Ij5odHRwOi8vZmFjZWJvb2suY29tL21kZXJyaWN1dHQ9CjwvYT48L3A+CjwvZGl2Pgo8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+CgotLT1fTWFpbE1hdGVfNzEyQzkyNjgtQzlERC00ODBELUExQUYtQzY3NEYwQjM0MjBCXz0tLQoKLS09X01haWxNYXRlXzUzQTQyNTQ5LUFFQTMtNEM3OS1CNTFELUE0MDExRjczQzZBN189CkNvbnRlbnQtRGVzY3JpcHRpb246IE9wZW5QR1AgZGlnaXRhbCBzaWduYXR1cmUKQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9c2lnbmF0dXJlLmFzYwpDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3BncC1zaWduYXR1cmU7IG5hbWU9c2lnbmF0dXJlLmFzYwoKLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KVmVyc2lvbjogR251UEcvTWFjR1BHMiB2MgoKaVFGRUJBRUJBZ0F1RmlFRUxkU0tHTVQydENGbGhMeGs2TnFEWkhOTzBrVUZBbG9KR3EwUUhHMWhjbXRBZEdGcwphVzl6TG1OdmJRQUtDUkRvMm9Oa2MwN1NSZjdEQ0FDU1VBWkxPZElTMHlBOE5iMHBITm14S1VxNEhHaUxLNmtjCjRwKzVFUUNBN0t5THFDdlViVWpCaGFFWDN0dnZHMExYNElMZkRaMXlUbDZQNEovRUVXcGJGWFNDdUpXNU9mUkUKek5GNFc0V1gxSnROQ3BvZWxWVFhnTW9Hc2tuSUZMaElSZkxHTmZrMGhmc2ljblpSMllNWWI2Y1hOTHFHMTQwdApBa0UyWDZaT0lsQXZxdExWd0J1Q1RiY1gyOE91NVF0d3MwbXJ2VFdDZnAxSFhVMG5mZTRmU0R2QXFMS0sxeUJHCkR4OVkvaTMxMHkrZUU0aUI5dWpITlFnWFVWTVBWZ2RMZksyQXRPbTNsTmZqUDZ1N0JqallLeXZjN2c0c3JFUEMKSnd6VGFtQ2pZbzNQUXFFbjZYN0x0UWJtaWNqYUdleWM5blZMMGYyU1NuUFROZUtxYTQyNgo9WTdkeAotLS0tLUVORCBQR1AgU0lHTkFUVVJFLS0tLS0KCi0tPV9NYWlsTWF0ZV81M0E0MjU0OS1BRUEzLTRDNzktQjUxRC1BNDAxMUY3M0M2QTdfPS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0OTA4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBEZWMgMzEgMTU6Mjk6MTMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0OTA4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDAzRjdFMTdDNkEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAzMSBEZWMgMjAxNyAxNToyOToxMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI5NTAzIGludm9rZWQgYnkgdWlkIDUwMCk7IDMxIERlYyAyMDE3IDE1OjI5OjEyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyOTQxMCBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMSBEZWMgMjAxNyAxNToyOToxMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI5Mzk5IGludm9rZWQgYnkgdWlkIDk5KTsgMzEgRGVjIDIwMTcgMTU6Mjk6MTIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDMxIERlYyAyMDE3IDE1OjI5OjEyICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQ0U2RjMxODA1RTAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDMxIERlYyAyMDE3IDE1OjI5OjExICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEuMwpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMS4zIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgS0FNX05VTVNVQkpFQ1Q9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFgtdUdEaXZzZkpkSyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgMzEgRGVjIDIwMTcgMTU6Mjk6MTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDA3LnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI5XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEQyQ0E5NUZCOUUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDMxIERlYyAyMDE3IDE1OjI5OjA5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDY2IHdpdGggTUUKCWlkIHNmVjgxdzAwWjIwVWZkeTAzZlY4MjA7IFN1biwgMzEgRGVjIDIwMTcgMTY6Mjk6MDkgKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogU3VuLCAzMSBEZWMgMjAxNyAxNjoyOTowOSArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gU2l0ZSBQbHVnaW4gdmVyc2lvbiAzLjcKRGF0ZTogU3VuLCAzMSBEZWMgMjAxNyAxNjoyOTowOCArMDEwMApNZXNzYWdlLUlEOiA8MTMyOTA1NzcueWszdmpRQUViekBnaWdhPgpJbi1SZXBseS1UbzogPDIwZmQxODVhLTU2NmEtMTkyNS1jMmExLTVkZDI2NmEwNjQ0N0BhcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8MjUxNDkwNC55cnFmTkNRMTI0QGdpZ2E+IDwyMGZkMTg1YS01NjZhLTE5MjUtYzJhMS01ZGQyNjZhMDY0NDdAYXBhY2hlLm9yZz4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpMZSBkaW1hbmNoZSAzMSBkPUU5Y2VtYnJlIDIwMTcsIDEzOjM3OjI5IENFVCBNaWNoYWVsIE9zaXBvdiBhID1FOWNyaXQgOgo+IEFtIDIwMTctMTItMjggdW0gMTc6MjAgc2NocmllYiBIZXJ2PUU5IEJPVVRFTVk6Cj4gPiBIaSwKPiA+PTIwCj4gPiBXZSBzb2x2ZWQgOCBpc3N1ZXM6Cj4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4gPiBwcm9qZWN0SWQ9M0QxMjMxNzkyMyZ2ZXJzaW9uPTNEMTIzMzg3MjYmc3R5bGVOYW1lPTNEVGV4dAo+ID49MjAKPiA+IFRoZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUzRCUyME1TSVRFJTIwQU5ECj4gPiAlMjBzdGF0dXMlMjAlM0QlMjBPcGVuJTIwT1JERVIlMjBCWSUyMGtleSUyMERFU0MlMkMlMjBwcmlvcml0eSUyMERFU0MKPiA+PTIwCj4gPiBTdGFnaW5nIHJlcG86Cj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzg2Lwo+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM4Ni9vcmcvYXBhY2g9CmUvCj4gPiBtYXZlbi9wbHVnaW5zL21hdmVuLXNpdGUtcGx1Z2luLzMuNy9tYXZlbi1zaXRlLXBsdWdpbi0zLjctc291cmNlLXJlbGVhcz0KZS56Cj4gPiBpcAo+ID49MjAKPiA+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+ID4gbWF2ZW4tc2l0ZS1wbHVnaW4tMy43LXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOgo+ID4gOWZhNGIyODA1M2Y0Y2I3OWEwODg2MzU2OGE2NmMxZTg3ZDhiYmM5Mwo+ID49MjAKPiA+IFN0YWdpbmcgc2l0ZToKPiA+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLXNpdGUtcGx1Z2luLUxBVEVTVC8KPiA+PTIwCj4gPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiA+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCj4gPj0yMAo+ID4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPj0yMAo+IEF3ZXNvbWUgSGVydj1FOSwgKzEhCnRoYW5rczogSSdtIGhhcHB5IHlvdSBsaWtlIGl0IGFzIEkgZG8gOikKCmFuZCBoZXJlIGlzIHRoZSBwbGFuIGZvciB0aGUgbmV4dCB3ZWVrczoKPTJEIG9uY2UgdGhlIG0tc2l0ZS1wIHJlbGVhc2Ugd2lsbCBiZSBvdXQsIEknbGwgcmVsZWFzZSBGbHVpZG8gc2tpbgo9MkQgdGhlbiBlbmFibGUgZWRpdCBidXR0b24gb24gTWF2ZW4gcGFyZW50IHBvbSAoQXBhY2hlICYgTWF2ZW4gcGFyZW50IHBvbXM9Cj0yMApyZWxlYXNlKQo9MkQgdGhlbiB0cnkgdG8gdXNlIEplbmtpbnMgdG8gYnVpbGQgYW5kIHB1Ymxpc2ggTWF2ZW4gYW5kIERveGlhIHNpdGVzICh3aXQ9CmhvdXQ9MjAKc3RhZ2luZywgdGhhdCBpcyBub3QgdXNlZnVsIHRvIHVzKQo9MkQgdGhlbiBtaWdyYXRlIE1hdmVuIGFuZCBEb3hpYSBzaXRlcyBzb3VyY2VzIHRvIEdpdCwgd2l0aCBsaXZlIGVkaXQgb24gR2k9CnRIdWI9MjAKZm9yIHRob3NlIHdobyBsaWtlIGVkaXQgZnJvbSB0aGVpciBicm93c2VyCj0yRCB0aGVuIHdlJ2xsIGRpc2N1c3Mgd2hhdCB0byBkbyB3aXRoIHRoZSBmZXcgcmVtYWluaW5nIHBhcnRzIGluIHN2bi4uLgoKUmVnYXJkcywKCkhlcnY9RTkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQ5My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgTm92IDE1IDIyOjA2OjU2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQ5My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAwRjdCQzEwNTUzCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMTUgTm92IDIwMTcgMjI6MDY6NTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3NjI4MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNSBOb3YgMjAxNyAyMjowNjo1NSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzYxOTMgaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgTm92IDIwMTcgMjI6MDY6NTUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NjE3OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDE1IE5vdiAyMDE3IDIyOjA2OjU1IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAxNSBOb3YgMjAxNyAyMjowNjo1NSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEFEQzVGMUExRUVCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxNSBOb3YgMjAxNyAyMjowNjo1NCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHRXcm5kNjN0NjdhMyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgMTUgTm92IDIwMTcgMjI6MDY6NTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDAyLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI0XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDVBODFDNjBDRjEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDE1IE5vdiAyMDE3IDIyOjA2OjUyICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDA0IHdpdGggTUUKCWlkIGFONnMxdzAwQTIwVWZkeTAzTjZzeWY7IFdlZCwgMTUgTm92IDIwMTcgMjM6MDY6NTIgKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogV2VkLCAxNSBOb3YgMjAxNyAyMzowNjo1MiArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBNYXZlbiByZXNvbHZlciBicmFuY2ggY29uc29saWRhdGlvbgpEYXRlOiBXZWQsIDE1IE5vdiAyMDE3IDIzOjA2OjUxICswMTAwCk1lc3NhZ2UtSUQ6IDwxMzk5NTc1NC5LdWJVcEtJWFdmQGdpZ2E+CkluLVJlcGx5LVRvOiA8MjAxNzExMTUxNzM5MDYuM0ZEMEEyOUMwNEE2QGRkMTczMzIua2Fzc2VydmVyLmNvbT4KUmVmZXJlbmNlczogPDIwMTcxMTA5MDUzNTUxLjk1N0Q0MjlDNTBEMUBkZDE3MzMyLmthc3NlcnZlci5jb20+IDwxNjY3MTk1LnQ3SGcyT005YmVAZ2lnYT4gPDIwMTcxMTE1MTczOTA2LjNGRDBBMjlDMDRBNkBkZDE3MzMyLmthc3NlcnZlci5jb20+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKbGV0J3Mgc3RhcnQgd2l0aCBkZW1vczogdGhpcyBvbmUgaXMgcmVhbGx5IGEgZ3JlYXQgaWRlYQoKb24gYW50LXRhc2tzLCBJIGhvcGUgbXkgbmV3IGV4cGxhbmF0aW9ucyBtYWtlIHRoZSBpc3N1ZSBtb3JlIGNsZWFyCgpSZWdhcmRzLAoKSGVydj1FOQoKTGUgbWVyY3JlZGkgMTUgbm92ZW1icmUgMjAxNywgMTg6Mzk6MDYgQ0VUIE1hbmZyZWQgTW9zZXIgYSA9RTljcml0IDoKPiBTb3JyeSBoZXJ2ZS4gRm9yIHNvbWUgcmVhc29uIEkgdG90YWxseSBtaXNzZWQgdGhvc2UuIEkgY29tbWVudGVkIG9uIHRoZQo+IGlzc3Vlcy4KPj0yMAo+IEluIHN1bW1hcnkgSSB3b3VsZCBsaWtlIHRvIGdldCB0aGUgYW50LXRhc2tzIG1lcmdlZCBhcyB3ZWxsIHNpbmNlIHRoYXQgbWE9Cmtlcwo+IGEgbG90IG1vcmUgc2Vuc2UgdG8gbWUgdGhhbiBrZWVwaW5nIGl0IHNlcGFyYXRlLgo+PTIwCj4gTWFuZnJlZAo+PTIwCj4gSGVydj1FOSBCT1VURU1ZIHdyb3RlIG9uIDIwMTctMTEtMTQgMTU6NTA6Cj4gPiBJIGFuc3dlcmVkIG9uIHRoZSBtYWlsaW5nIGxpc3QgYW5kIG9uIHRoZSAyIEppcmEgaXNzdWVzCj4gPiBJbiBzdW1tYXJ5LCArMSB0byBtZXJnZSBkZW1vcywgLTEgdG8gbWVyZ2UgYW50LXRhc2tzCj4gPj0yMAo+ID4gUmVnYXJkcywKPiA+PTIwCj4gPiBIZXJ2PUU5Cj4gPj0yMAo+ID4gTGUgbWFyZGkgMTQgbm92ZW1icmUgMjAxNywgMTg6MTk6NDAgQ0VUIE1hbmZyZWQgTW9zZXIgYSA9RTljcml0IDoKPiA+PiBBbnkgZmVlZGJhY2sgb3Igc2hvdWxkIEkganVzdCBnbyBhaGVhZCB3aXRoIHRoZSBjbGVhbnVwPwo+ID4+PTIwCj4gPj4gTWFuZnJlZAo+ID4+PTIwCj4gPj4gTWFuZnJlZCBNb3NlciB3cm90ZSBvbiAyMDE3LTExLTA4IDIxOjM1Ogo+ID4+ID4gSGkgYWxsLAo+ID4+ID49MjAKPiA+PiA+IEkgaGF2ZSBzdGFydGVkIGFuZCBtYWRlIGdvb2QgcHJvZ3Jlc3Mgb24gZ2V0dGluZyBNYXZlbiByZXNvbHZlciBhbGwKPiA+PiA+IGludG8KPiA+PiA+IHRoZSBtYXN0ZXIgYnJhbmNoIGluc3RlYWQgb2YgaGF2aW5nIG1hc3RlciwgZGVtb3MgYW5kIGFudC10YXNrcyBpbgo+ID4+ID4gc2VwYXJhdGUgYnJhbmNoZXMuCj4gPj4gPj0yMAo+ID4+ID4gRGV0YWlscyBhcmUgdHJhY2tlZCBpbgo+ID4+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NUkVTT0xWRVItMjgKPiA+PiA+PTIwCj4gPj4gPiBBbGwgb2YgaXQgaXMgbm93IGluIGEgbmV3IGJyYW5jaCBjYWxsZWQgbWFzdGVyLWFsbCBmb3IgeW91IHRvIHNlZS4KPiA+PiA+PTIwCj4gPj4gPiBJIGFtIG5vdyB3b25kZXJpbmcgd2hhdCB0aGUgbmV4dCBzdGVwcyBhcmUuIEkgYWRkZWQgd2hhdCBJIHRoaW5rIHNobz0KdWxkCj4gPj4gPiBoYXBwZW4gbmV4dCBpbiB0aGUgaXNzdWUgaW4gYSBjb21tZW50IGFuZCB3b3VsZCBhcHByZWNpYXRlIGFueSBpbnB1dD0KIG9uCj4gPj4gPiB0aGUgY3VycmVudCBzZXR1cCBhbmQgbmV4dCBzdGVwcy4KPiA+PiA+PTIwCj4gPj4gPiBBbnkgaGVscCB3b3VsZCBiZSBhcHByZWNpYXRlZC4KPiA+PiA+PTIwCj4gPj4gPiBtYW5mcmVkCj4gPj49MjAKPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj49MjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzODY3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBTZXAgIDQgMTk6NTc6MzEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzODY3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDRFNzg3MUE5OEQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAgNCBTZXAgMjAxNyAxOTo1NzozMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDM3OTQ2IGludm9rZWQgYnkgdWlkIDUwMCk7IDQgU2VwIDIwMTcgMTk6NTc6MzEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM3ODIzIGludm9rZWQgYnkgdWlkIDUwMCk7IDQgU2VwIDIwMTcgMTk6NTc6MjkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNzgxMiBpbnZva2VkIGJ5IHVpZCA5OSk7IDQgU2VwIDIwMTcgMTk6NTc6MjkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDA0IFNlcCAyMDE3IDE5OjU3OjI5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMDNERDlEM0VEQQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgIDQgU2VwIDIwMTcgMTk6NTc6MjkgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjkyMgpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjkyMiB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9BRFNQX0NVU1RPTV9NRUQ9MC4wMDEsIEZSRUVNQUlMX0VOVkZST01fRU5EX0RJR0lUPTAuMjUsCglLQU1fTlVNU1VCSkVDVD0wLjUsIE5NTF9BRFNQX0NVU1RPTV9NRUQ9MS4yLCBTUEZfSEVMT19QQVNTPS0wLjAwMSwKCVNQRl9TT0ZURkFJTD0wLjk3Ml0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBaU0lqUm9fTWc1NmMgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sICA0IFNlcCAyMDE3IDE5OjU3OjI0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG41Lm5hYmJsZS5jb20gKG41Lm5hYmJsZS5jb20gWzE2Mi4yNTMuMTMzLjg0XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNTA4QjI2MTI2NwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgIDQgU2VwIDIwMTcgMTk6NTc6MjQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWppbS5uYWJibGUuY29tIChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBuNS5uYWJibGUuY29tIChQb3N0Zml4KSB3aXRoIEVTTVRQIGlkIDgxMzY4OUEzOUVGRgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgIDQgU2VwIDIwMTcgMTI6NTc6MTcgLTA3MDAgKE1TVCkKRGF0ZTogTW9uLCA0IFNlcCAyMDE3IDEyOjU3OjE3IC0wNzAwIChNU1QpCkZyb206IGRlamFuMjYwOSA8ZGVqYW4yNjA5QGdtYWlsLmNvbT4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDwxNTA0NTU1MDM3NTI2LTAucG9zdEBuNS5uYWJibGUuY29tPgpJbi1SZXBseS1UbzogPENBS0RVTjF2SERjWjR0RlFVRFFZVk84NGRBK0picjNxaDNLUkYrZjFiajdTVXlndXpCZ0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBS0RVTjF2SERjWjR0RlFVRFFZVk84NGRBK0picjNxaDNLUkYrZjFiajdTVXlndXpCZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBDb21waWxlciBQbHVnaW4gdmVyc2lvbiAzLjcuMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdAoKKisxICoKClRlc3RlZCB3aXRoIE1hdmVuIDMuNS4wIC8gT3JhY2xlIEphdmEgMS44LjBfMTMxIG9uIFdpbmRvd3MgMTAuCgoKCi0tClNlbnQgZnJvbTogaHR0cDovL21hdmVuLjQwMTc1Lm41Lm5hYmJsZS5jb20vTWF2ZW4tRGV2ZWxvcGVycy1mMTQyMTY2Lmh0bWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyMzg4NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgU2VwICA3IDA4OjQ2OjA4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzg4NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA2NjA4RTFBNDUyCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgIDcgU2VwIDIwMTcgMDg6NDY6MDggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzMjkzMSBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IFNlcCAyMDE3IDA4OjQ2OjA4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMjg0MCBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IFNlcCAyMDE3IDA4OjQ2OjA3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzI3NzcgaW52b2tlZCBieSB1aWQgOTkpOyA3IFNlcCAyMDE3IDA4OjQ2OjA3IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAwNyBTZXAgMjAxNyAwODo0NjowNyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDAwOTk5RDdENkEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsICA3IFNlcCAyMDE3IDA4OjQ2OjA3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi45MjMKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi45MjMgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fQURTUF9DVVNUT01fTUVEPTAuMDAxLCBGUkVFTUFJTF9FTlZGUk9NX0VORF9ESUdJVD0wLjI1LAoJS0FNX05VTVNVQkpFQ1Q9MC41LCBOTUxfQURTUF9DVVNUT01fTUVEPTEuMiwgU1BGX0hFTE9fUEFTUz0tMC4wMDEsCglTUEZfU09GVEZBSUw9MC45NzIsIFVSSUJMX0JMT0NLRUQ9MC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgU3IzTV9HYzdWdGV5IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVGh1LCAgNyBTZXAgMjAxNyAwODo0NjowMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBuNS5uYWJibGUuY29tIChuNS5uYWJibGUuY29tIFsxNjIuMjUzLjEzMy44MV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEQ0QjU3NjEyNTcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsICA3IFNlcCAyMDE3IDA4OjQ2OjAxICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG41Lm5hYmJsZS5jb20gKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IG41Lm5hYmJsZS5jb20gKFBvc3RmaXgpIHdpdGggRVNNVFAgaWQgNDY4QzNFOThCNQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgIDcgU2VwIDIwMTcgMDE6NDY6MDEgLTA3MDAgKE1TVCkKRGF0ZTogVGh1LCA3IFNlcCAyMDE3IDAxOjQ2OjAxIC0wNzAwIChNU1QpCkZyb206IGRlamFuMjYwOSA8ZGVqYW4yNjA5QGdtYWlsLmNvbT4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDwxNTA0NzczOTYxMjg2LTAucG9zdEBuNS5uYWJibGUuY29tPgpJbi1SZXBseS1UbzogPENBS0RVTjF2SERjWjR0RlFVRFFZVk84NGRBK0picjNxaDNLUkYrZjFiajdTVXlndXpCZ0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBS0RVTjF2SERjWjR0RlFVRFFZVk84NGRBK0picjNxaDNLUkYrZjFiajdTVXlndXpCZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBDb21waWxlciBQbHVnaW4gdmVyc2lvbiAzLjcuMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdAoKKisxICoKClRlc3RlZCB2aWEgTWF2ZW4gMy41LjAgYW5kIE9yYWNsZSBKYXZhIDEuOCBvbiBXaW5kb3dzIDEwIGFuZCBMaW51eCBDZW50b3MgNi4KCgoKLS0KU2VudCBmcm9tOiBodHRwOi8vbWF2ZW4uNDAxNzUubjUubmFiYmxlLmNvbS9NYXZlbi1EZXZlbG9wZXJzLWYxNDIxNjYuaHRtbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MDM4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBTZXAgMTUgMTI6MTI6MzAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDM4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDQ4QkIwMUFFOEEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAxNSBTZXAgMjAxNyAxMjoxMjozMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDUxMDU4IGludm9rZWQgYnkgdWlkIDUwMCk7IDE1IFNlcCAyMDE3IDEyOjEyOjI5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MDk3NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNSBTZXAgMjAxNyAxMjoxMjoyOSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUwOTY0IGludm9rZWQgYnkgdWlkIDk5KTsgMTUgU2VwIDIwMTcgMTI6MTI6MjkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDE1IFNlcCAyMDE3IDEyOjEyOjI5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMTI4NzExODRENjYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDE1IFNlcCAyMDE3IDEyOjEyOjI5ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC40OApYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjQ4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDEsCglVUklCTF9CTE9DS0VEPTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWlmZWRvcmVua28uY29tIGhlYWRlci5iPXBnNUxRMFdOOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPW1lc3NhZ2luZ2VuZ2luZS5jb20KCWhlYWRlci5iPWpmVEpWVVdJClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgRHRkQzlKd0h0UkE3IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJRnJpLCAxNSBTZXAgMjAxNyAxMjoxMjoyNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBvdXQ0LXNtdHAubWVzc2FnaW5nZW5naW5lLmNvbSAob3V0NC1zbXRwLm1lc3NhZ2luZ2VuZ2luZS5jb20gWzY2LjExMS40LjI4XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDEwQzQ2NUZCREYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDE1IFNlcCAyMDE3IDEyOjEyOjI2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGNvbXB1dGUyLmludGVybmFsIChjb21wdXRlMi5ueWkuaW50ZXJuYWwgWzEwLjIwMi4yLjQyXSkKCWJ5IG1haWxvdXQubnlpLmludGVybmFsIChQb3N0Zml4KSB3aXRoIEVTTVRQIGlkIEE4NDAyMjBENEUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDE1IFNlcCAyMDE3IDA4OjEyOjI1IC0wNDAwIChFRFQpClJlY2VpdmVkOiBmcm9tIHdlYjIgKFsxMC4yMDIuMi4yMTJdKQogIGJ5IGNvbXB1dGUyLmludGVybmFsIChNRVByb3h5KTsgRnJpLCAxNSBTZXAgMjAxNyAwODoxMjoyNSAtMDQwMApES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOyBkPWlmZWRvcmVua28uY29tOwoJIGg9Y29udGVudC10cmFuc2Zlci1lbmNvZGluZzpjb250ZW50LXR5cGU6ZGF0ZTpmcm9tOmluLXJlcGx5LXRvCgk6bWVzc2FnZS1pZDptaW1lLXZlcnNpb246cmVmZXJlbmNlczpzdWJqZWN0OnRvOngtbWUtc2VuZGVyCgk6eC1tZS1zZW5kZXI6eC1zYXNsLWVuYzsgcz1mbTE7IGJoPXE5enpPeXJiU29zNFEveDA3OWVQU1R0Z1RUSHhSCglpYU4rbElZWVVTWXdUYz07IGI9cGc1TFEwV05NSkx1TkF2WlRsVFo5bWRzQlZsdDZtTXdXRXI0dG4wOWZvbi80CglzbWpqSnpaZWM1YWMrUTRnUjZxUFFKWnhQSWpKQk1JVVJyWjdMYmgzd0ZqS3hkLy9RTERXSGUrcTJMY1h5MGVUCglENWpiWWZwbjQwV0tLREZuaUFua2FRRlMzZmZkQ3kwZ3ZiWVptSFBjUzIyYlo1ak0zaW80WjBFRExyTFA4a0JwCgk4ZDdISFA2ZEhuZDJaS1VhTlc5N2JvbzJxUno0UkkyeDluVWZ1MldHdERzTHJsVXhUWno3a0FZejlZNG5iNnUyCglFODBkQmF1UzV3M3RER2VlcEVRcVVBVUlQUklydTRuTUVOcFZFSDlDeVZ1NVVzRHRhdXg4ZHVxYSt2T0gvdFI0CglVRXlyMTBCSUZTbjljZkFCSmlkZmNHZVVyby9iMHV6ejNHRlZIWG1Kdz09CkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7IGQ9CgltZXNzYWdpbmdlbmdpbmUuY29tOyBoPWNvbnRlbnQtdHJhbnNmZXItZW5jb2Rpbmc6Y29udGVudC10eXBlCgk6ZGF0ZTpmcm9tOmluLXJlcGx5LXRvOm1lc3NhZ2UtaWQ6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXMKCTpzdWJqZWN0OnRvOngtbWUtc2VuZGVyOngtbWUtc2VuZGVyOngtc2FzbC1lbmM7IHM9Zm0xOyBiaD1xOXp6T3kKCXJiU29zNFEveDA3OWVQU1R0Z1RUSHhSaWFOK2xJWVlVU1l3VGM9OyBiPWpmVEpWVVdJdXlGUDhqekJrMjZ4RloKCVNwZjdxT2F6V1dJVG44VUhEcUl3VnJJc1NLUHBnZ2tRZUhlTndnTjJ0ejhnTFBzV0t6TDVHcDdxdlFST1VPTEIKCXIxcDhpcjA4emVxd0FUa0E3OVdqRU1ZZklFd1QrUlE1M3NQY3luOEZ0WGRxYWJobHlVdDZDUzd0dFd1eFFSYWYKCVc4UnNPVUxRcW1TdkxpdXlueUh2U0JWUlRZeFp6RXRBR1pzZ2VLQVJxTlBSRnEwVFVHeFBQdSswbmIzU1VvbGkKCUx4dEl2NExOZEY4TURwcWF2UlhaRGdBR3JSazNEWm9OY3V4WVFkbGVoOFRtdHZhci9Ldk92dmd1TE8rU2U3VDEKCU9JOVZnVG4xb0I4TkM4TmZoRDh2V3lja1M0L1JpQzlaMEkrakprb09HTG9BZEpLai9rekt2SDBrb1JySzJ3MlEKCT09ClgtTUUtU2VuZGVyOiA8eG1zOnFjTzdXZEc2dnU1WEVRQTlGV1Z0UFVwVjMxUjlHU0JWclE2WWE1VHVveURyanF2cG54T2FVUT4KUmVjZWl2ZWQ6IGJ5IG1haWx1c2VyLm55aS5pbnRlcm5hbCAoUG9zdGZpeCwgZnJvbSB1c2VyaWQgOTkpCglpZCA4NzNDOTYyNjREOyBGcmksIDE1IFNlcCAyMDE3IDA4OjEyOjI1IC0wNDAwIChFRFQpCk1lc3NhZ2UtSWQ6IDwxNTA1NDc3NTQ1LjIzOTI3Ny4xMTA3MTU3MDk2LjYzODQ2NkFDQHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KRnJvbTogSWdvciBGZWRvcmVua28gPGlnb3JAaWZlZG9yZW5rby5jb20+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0idXRmLTgiClgtTWFpbGVyOiBNZXNzYWdpbmdFbmdpbmUuY29tIFdlYm1haWwgSW50ZXJmYWNlIC0gYWpheC02NGIwODY5MgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xCkRhdGU6IEZyaSwgMTUgU2VwIDIwMTcgMDg6MTI6MjUgLTA0MDAKUmVmZXJlbmNlczogPENBK25Qbk14eUcyTmVQWHBWcWF3ZTlqUj1pdEhFVDZVdWRuTjlDakhodj1vby1LQ3J4d0BtYWlsLmdtYWlsLmNvbT4KIDxwb255LTU2YTNhZGVhZjYwYzQwNTk2ZmIyODRiMjQ1MjQxNDhmNjA1ZThkMjMtNTJkNDFjZDQwZjIzNDNjODk1Mjg4MGU4Zjg0ZGEzZTgwZDMzNTUwOUBkZXYubWF2ZW4uYXBhY2hlLm9yZz4KIDxDQStuUG5NeVMycTF1ZmFXK1M2c21oWloxSmN4aGY5aFk1LTNuQkotaUNXZWpQVUFEVkFAbWFpbC5nbWFpbC5jb20+CiA8MjA1Nzk0OC5rMUd5Zmp1R1hkQGdpZ2E+CiA8Q0ErblBuTXdjb0hGWnZVcVdpVXN5SEJoYU1tb1NjY3lkVEJzelNYZ3NHdEY9d05HREt3QG1haWwuZ21haWwuY29tPgogPENBS0RVTjF2NVRzRm4rby12djhIaDNQdXZHWFdlK2ZRbk0randEWnQrPXp0eHNwY2dnd0BtYWlsLmdtYWlsLmNvbT4KIDxDQUtEVU4xc20wS0tyTm9rcHhoK05CT1hrVUY4NEdCTHhoUVYyZmR3RUstRngrLXhuVndAbWFpbC5nbWFpbC5jb20+CiA8Q0FLRFVOMXRkRD1QeDVuOUw2MEtjYTJGdW5DVk4yd3JvUGQ5VXJRTkt4X3hiem10TTZ3QG1haWwuZ21haWwuY29tPgpJbi1SZXBseS1UbzogPENBS0RVTjF0ZEQ9UHg1bjlMNjBLY2EyRnVuQ1ZOMndyb1BkOVVyUU5LeF94YnptdE02d0BtYWlsLmdtYWlsLmNvbT4KCkkgYW5zd2VyZWQgaW4gbW9yZSBkZXRhaWxzIG9uIG0yZS1kZXYsIGJ1dCBJIGJlbGlldmUgd2UgY2FuIGNvbXBlbnNhdGUKZm9yIHRoZSBjaGFuZ2UgZnJvbSBtMmUgZW5kLiBJbiB0aGUgd29yc3QgY2FzZSB3ZSdsbCBidW5kbGUgaGFja2VkCnZlcnNpb24gb2YgRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyIHdpdGggbTJlLCBub3QgaWRlYWwsIGJ1dCBub3QgdGhlIGVuZApvZiB0aGUgd29ybGQgZWl0aGVyLj0yMAoKLS09MjAKUmVnYXJkcywKSWdvcgoKT24gRnJpLCBTZXAgMTUsIDIwMTcsIGF0IDA3OjIxIEFNLCBBbmRlcnMgSGFtbWFyIHdyb3RlOgo+IE9uIEZyaSwgU2VwIDE1LCAyMDE3IGF0IDg6MjkgQU0sIEFuZGVycyBIYW1tYXIgPGFuZGVyc0BoYW1tYXIubmV0PiB3cm90ZToKPj0yMAo+ID4gUmVwb3J0aW5nIGJhY2sgZnJvbSB0ZXN0cyBvZiBtMmUgd2l0aCBlbWJlZGRlZCBNYXZlbiAzLjUuMSwgd2Ugc2VlIHByb2I9CmxlbQo+ID4gd2l0aCB0aGUgamF4d3MtbWF2ZW4tcGx1Z2luIG1vam8uIFdlJ3JlIHR3byBwZW9wbGUgc2VlaW5nIHRoZSBpc3N1ZQo+ID4gaW5kZXBlbmRlbnRseSwgYnV0IHVuZm9ydHVuYXRlbHkgRnJlZCBCcmljb24gaGFzbid0IGJlZW4gYWJsZSB0byByZXByb2Q9CnVjZS4KPiA+Cj49MjAKPiBUbyBmb2xsb3cgdXAgb24gdGhpcywgbXkgdGVzdHMgaW5kaWNhdGUgdGhhdCBNYXZlbiAzLjUuMSBjYXVzZXMgY2hhbmdlZAo+IGNsYXNzIGxvYWRpbmcgdGhhdCBjb3VsZCBjYXVzZSBpc3N1ZXMgZm9yIHBsdWdpbnMgaW4gbTJlLiBJJ3ZlIGFza2VkIGZvcgo+IGlucHV0IGZyb20gdGhlIG0yZSBkZXZzIGlmIGl0IGlzIHBvc3NpYmxlIHRvIGhhbmRsZSBpbiBtMmUgYnV0IHRoZXkKPiBoYXZlbid0Cj4gcmVzcG9uZGVkIHlldC4KPj0yMAo+IC9BbmRlcnMKPj0yMAo+PTIwCj4gPgo+ID4gU28gY3VycmVudGx5IEknbSAwIG9uIHRoZSB2b3RpbmcgYnV0IEknbGwgaW52ZXN0aWdhdGUgc29tZSBtb3JlLgo+ID4KPiA+IC9BbmRlcnMKPiA+Cj4gPiBPbiBXZWQsIFNlcCAxMywgMjAxNyBhdCA5OjI2IEFNLCBBbmRlcnMgSGFtbWFyIDxhbmRlcnNAaGFtbWFyLm5ldD4gd3JvdD0KZToKPiA+Cj4gPj4KPiA+Pgo+ID4+IE9uIFR1ZSwgU2VwIDEyLCAyMDE3IGF0IDg6NTQgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4+Cj4gPj4+IEhhdmUgd2UgZ290IGFueSBmZWVkYmFjayBmcm9tIHRoZSBlbWJlZGRlciBpbnRlZ3JhdGlvbnMgeWV0Pwo+ID4+Pgo+ID4+Cj4gPj4gSSBoYXZlbid0IGhlYXJkIGFueXRoaW5nIGZyb20gdGhlIG0yZSBwZW9wbGUuIE1heWJlIHdlIG5lZWQgdG8gcGluZyB0aD0KZW0KPiA+PiBkaXJlY3RseS4gSSBjYW4gY29udGFjdCBGcmVkIEJyaWNvbi4KPiA+Pgo+ID4+IC9BbmRlcnMKPiA+Pgo+ID4+Cj4gPj4+Cj4gPj4+IE9uIE1vbiAxMSBTZXAgMjAxNyBhdCAyMjo1NywgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZj0Kcj4KPiA+Pj4gd3JvdGU6Cj4gPj4+Cj4gPj4+ID4ganVzdCBmb3IgdGhlIHJlY29yZHM6IGl0IGlzIFdpbmRvd3MgKyBHaXQgQmFzaCAoTUlOR1c2NCkgb25seQo+ID4+PiA+Cj4gPj4+ID4gYW5kIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgYWRkaW5nIC1EamFuc2kuZm9yY2U9M0R0cnVlIGNhbiBmb3JjZSBKQT0KbnNpCj4gPj4+ID4gYWN0aXZhdGlvbiAoZXZlbiBpZiBKQW5zaSBmYWlscyB0byBkZXRlY3QgdGhhdCBpdCBzaG91bGQgYXV0by1hY3Rpdj0KYXRlKQo+ID4+PiA+Cj4gPj4+ID4gZGV0YWlscyBvbiBpc3N1ZSBpbiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MjgyICwKPiA+Pj4gYW5kIGEKPiA+Pj4gPiBmdXR1cmUgSkFuc2kgaXNzdWUuLi4KPiA+Pj4gPgo+ID4+PiA+IFJlZ2FyZHMsCj4gPj4+ID4KPiA+Pj4gPiBIZXJ2PUMzPUE5Cj4gPj4+ID4KPiA+Pj4gPiBMZSBsdW5kaSAxMSBzZXB0ZW1icmUgMjAxNywgMTI6NTM6NDYgQ0VTVCBTdGVwaGVuIENvbm5vbGx5IGEgPUMzPUE5PQpjcml0IDoKPiA+Pj4gPiA+IFNvIHRoYXQgaXMgd2luZG93cyBvbmx5LCBvciB3ZXJlIHRoZXkgbG9zdCBvbiBvdGhlciBPU2VzIGZvciB5b3UuCj4gPj4+ID4gPgo+ID4+PiA+ID4gSSBoYXZlIGNvbG91cnMgb24gbGludXggKHZpYSBkb2NrZXIpIGFuZCBvcy14Cj4gPj4+ID4gPgo+ID4+PiA+ID4gT24gMTEgU2VwdGVtYmVyIDIwMTcgYXQgMTI6MzUsIGRlamFuMjYwOUBnbWFpbC5jb20gPAo+ID4+PiBkZWphbjI2MDlAZ21haWwuY29tPgo+ID4+PiA+ID4KPiA+Pj4gPiA+IHdyb3RlOgo+ID4+PiA+ID4gPiArMSAoY29uZGl0aW9uYWxseSkuCj4gPj4+ID4gPiA+Cj4gPj4+ID4gPiA+IFRlc3RlZCB2aWEgcHJvamVjdCB0aGF0IGluY2x1ZGVzIGRvemVuIG9mIHBsdWdpbnM6IDFzdCB0aWVyLAo+ID4+PiBNb2pvSGF1cwo+ID4+PiA+IGFuZAo+ID4+PiA+ID4gPiBmZXcgM3JkIHBhcnR5IHBsdWdpbnMgKHNvIHRvIHNheSkuCj4gPj4+ID4gPiA+Cj4gPj4+ID4gPiA+IEV2ZXJ5dGhpbmcgbG9va3MgZ29vZCB3aXRoIG9uZSBub3RhYmxlIHJlZ3Jlc3Npb246Cj4gPj4+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyODIgQ29uc29sZSBvdXRwdXQgaD0KYXMKPiA+Pj4gbm8KPiA+Pj4gPiA+ID4gY29sb3JzIChyZWdyZXNzaW9uIGluIE1hdmVuIDMuNS4xKQo+ID4+PiA+ID4gPgo+ID4+PiA+ID4gPiBSZWdhcmRzLAo+ID4+PiA+ID4gPiBEZWphbgo+ID4+PiA+ID4gPgo+ID4+PiA+ID4gPiBPbiAyMDE3LTA5LTEwIDE3OjM5LCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+Pj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbQo+ID4+PiA+ID4KPiA+Pj4gPiA+ID4KPiA+Pj4gPiA+ID4gd3JvdGU6Cj4gPj4+ID4gPiA+ID4gSGksCj4gPj4+ID4gPiA+ID4KPiA+Pj4gPiA+ID4gPiBXZSBzb2x2ZWQgMjUgaXNzdWVzOgo+ID4+PiA+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiA+Pj4gPiA+ID4KPiA+Pj4gPiA+ID4gdmVyc2lvbj0zRDEyMzM4OTY0JnN0eWxlTmFtZT0zRFRleHQmcHJvamVjdElkPTNEMTIzMTY5MjIKPiA+Pj4gPiA+ID4KPiA+Pj4gPiA+ID4gPiBUaGVyZSBhcmUgMzUwIGlzc3VlcyBsZWZ0IGluIEpJUkEgZm9yIE1hdmVuIGNvcmU6Cj4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUKPiA+Pj4gPiA+ID4KPiA+Pj4gPiA+ID4gM0QlMjBNTkclMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJQo+ID4+PiA+ID4gPiAyMEJZJTIwZHVlJTIwQVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwY3JlYXRlZCUyMEFTQwo+ID4+PiA+ID4gPgo+ID4+PiA+ID4gPiA+IFN0YWdpbmcgcmVwbzoKPiA+Pj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY0Lwo+ID4+PiA+ID4gPiA+Cj4gPj4+ID4gPiA+ID4gVGhlIGRpc3RyaWJ1dGFibGUgYmluYXJpZXMgYW5kIHNvdXJjZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tPiA+Cj4gPj4+ID4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvCj4gPj4+ID4gPiA+Cj4gPj4+ID4gPiA+ID4gU3BlY2lmaWNhbGx5IHRoZSB6aXAsIHRhcmJhbGwgYW5kIHNvdXJjZSBhcmNoaXZlcyBjYW4gYmUgZm91bmQKPiA+Pj4gaGVyZToKPiA+Pj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+ID4KPiA+Pj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtCj4gPj4+IGJpbi56aXAKPiA+Pj4gPiA+ID4KPiA+Pj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+ID4KPiA+Pj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtCj4gPj4+IGJpbi50YXIuZ3oKPiA+Pj4gPiA+ID4KPiA+Pj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+ID4KPiA+Pj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtCj4gPj4+IHNyYy56aXAKPiA+Pj4gPiA+ID4KPiA+Pj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+ID4KPiA+Pj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtCj4gPj4+IHNyYy50YXIuZ3oKPiA+Pj4gPiA+ID4KPiA+Pj4gPiA+ID4gPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiA+Pj4gPiA+ID4gPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5neiBzaGExOgo+ID4+PiA5ZWI4MjFmMTUzYzc2NjcxOTRhYTExY2NkMDk5YjcKPiA+Pj4gPiA+ID4KPiA+Pj4gPiA+ID4gYmQyMDU5NTYwZAo+ID4+PiA+ID4gPgo+ID4+PiA+ID4gPiA+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwOiBzaGExOiAxMjFkNTRiMDQ1MzgwYThhNDg5NWViMTM3OTc9CjBhYgo+ID4+PiA+ID4gPgo+ID4+PiA+ID4gPiA2OWU2OThlYjBlCj4gPj4+ID4gPiA+Cj4gPj4+ID4gPiA+ID4gR2l0IHRhZzoKPiA+Pj4gPiA+ID4gPiBodHRwczovL2dpdC13aXAtdXMuYXBhY2hlLm9yZy9yZXBvcy9hc2Y/cD0zRG1hdmVuLmdpdDthPTNEY29tPQptaXQ7aD0zRAo+ID4+PiA+ID4gPgo+ID4+PiA+ID4gPiAwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzCj4gPj4+ID4gPiA+Cj4gPj4+ID4gPiA+ID4gU3RhZ2luZyBzaXRlOgo+ID4+PiA+ID4gPiA+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9jb21wb25lbnRzL3JlZi8zLUxBVEVTVC8KPiA+Pj4gPiA+ID4gPgo+ID4+PiA+ID4gPiA+IFZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCj4gPj4+ID4gPiA+ID4KPiA+Pj4gPiA+ID4gPiBbIF0gKzEKPiA+Pj4gPiA+ID4gPiBbIF0gKzAKPiA+Pj4gPiA+ID4gPiBbIF0gLTEKPiA+Pj4gPiA+ID4gPgo+ID4+PiA+ID4gPiA+IFRoYW5rcywKPiA+Pj4gPiA+ID4gPgo+ID4+PiA+ID4gPiA+IFN0ZXBoZW4uCj4gPj4+ID4gPiA+Cj4gPj4+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+PiAtLS0tLS0tLS0KPiA+Pj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+PiA+Cj4gPj4+ID4KPiA+Pj4gPgo+ID4+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0tCj4gPj4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4+ID4KPiA+Pj4gPiAtLQo+ID4+PiBTZW50IGZyb20gbXkgcGhvbmUKPiA+Pj4KPiA+Pgo+ID4+Cj4gPgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MDQxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBTZXAgMTUgMTI6NDU6MTQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDQxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDU2RDMzMUFGNjMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAxNSBTZXAgMjAxNyAxMjo0NToxNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ4ODMgaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgU2VwIDIwMTcgMTI6NDU6MTQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ3OTUgaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgU2VwIDIwMTcgMTI6NDU6MTMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0Nzc4IGludm9rZWQgYnkgdWlkIDk5KTsgMTUgU2VwIDIwMTcgMTI6NDU6MTMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDE1IFNlcCAyMDE3IDEyOjQ1OjEzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMzAwRkZDM0UwNAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTUgU2VwIDIwMTcgMTI6NDU6MTMgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjQ4ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTAuNDggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTE9XPS0wLjcsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFNQRl9QQVNTPS0wLjAwMSwKCVVSSUJMX0JMT0NLRUQ9MC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9aWZlZG9yZW5rby5jb20gaGVhZGVyLmI9czBzaURpRFQ7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9bWVzc2FnaW5nZW5naW5lLmNvbQoJaGVhZGVyLmI9ZXh1a3JwY2MKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIG9Cb0VHN3hmY19vRiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCUZyaSwgMTUgU2VwIDIwMTcgMTI6NDU6MTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gb3V0NC1zbXRwLm1lc3NhZ2luZ2VuZ2luZS5jb20gKG91dDQtc210cC5tZXNzYWdpbmdlbmdpbmUuY29tIFs2Ni4xMTEuNC4yOF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBEM0IxQjVGQUYzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAxNSBTZXAgMjAxNyAxMjo0NToxMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBjb21wdXRlMi5pbnRlcm5hbCAoY29tcHV0ZTIubnlpLmludGVybmFsIFsxMC4yMDIuMi40Ml0pCglieSBtYWlsb3V0Lm55aS5pbnRlcm5hbCAoUG9zdGZpeCkgd2l0aCBFU01UUCBpZCBBQkFCQjIwQjVECglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAxNSBTZXAgMjAxNyAwODo0NToxMCAtMDQwMCAoRURUKQpSZWNlaXZlZDogZnJvbSB3ZWIyIChbMTAuMjAyLjIuMjEyXSkKICBieSBjb21wdXRlMi5pbnRlcm5hbCAoTUVQcm94eSk7IEZyaSwgMTUgU2VwIDIwMTcgMDg6NDU6MTAgLTA0MDAKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsgZD1pZmVkb3JlbmtvLmNvbTsKCSBoPWNvbnRlbnQtdHJhbnNmZXItZW5jb2Rpbmc6Y29udGVudC10eXBlOmRhdGU6ZnJvbTppbi1yZXBseS10bwoJOm1lc3NhZ2UtaWQ6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6c3ViamVjdDp0bzp4LW1lLXNlbmRlcgoJOngtbWUtc2VuZGVyOngtc2FzbC1lbmM7IHM9Zm0xOyBiaD1kdWR6cEZtNVFqZXN1QzNFM2pDbHBhZFB2OFBPTAoJWlh3NVUzOHpMM1NTZGc9OyBiPXMwc2lEaURUVk81MDJQL0daSWozb2pxeDJlZmRYbVR4dDhsTDg0QTJOeHcwawoJdU9pRnBnVXFUV09OUXVwMmhjTERBZXJUMlVZMFRudks3c291d0xOdTl6OENqdnpzK09EUmx5d05LV0xuMEd1UwoJQ2pzZktST1U0M01GYWFsTUJ3alVsUVd6eGZVV0R4OUFnL0ZDcjhna3NTaFg4cUFLeCtHblpBUzBYQTJXRW0vNQoJMDUxd1lqeHljYUR3aTN1VnNDUmlFUEN5eE11TklyOHVtWmFvSlhhak4vZWRFd2ZGZEUvZEZDeC9ER0pzbUk0dQoJQjB0ZGJlbkFPU2ZOelFwdEJvOHdyckJ5anRjWTFWZWVtUHdGbGV3TS9Xa29IODlDV2gxMUNaZFdSRVdrbVhVZwoJeVF4TDZxaXdHTTZpbUw3SXR0NlJ1VE12ay9sSXJSNTk0R3VFbElrUkE9PQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOyBkPQoJbWVzc2FnaW5nZW5naW5lLmNvbTsgaD1jb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOmNvbnRlbnQtdHlwZQoJOmRhdGU6ZnJvbTppbi1yZXBseS10bzptZXNzYWdlLWlkOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzCgk6c3ViamVjdDp0bzp4LW1lLXNlbmRlcjp4LW1lLXNlbmRlcjp4LXNhc2wtZW5jOyBzPWZtMTsgYmg9ZHVkenBGCgltNVFqZXN1QzNFM2pDbHBhZFB2OFBPTFpYdzVVMzh6TDNTU2RnPTsgYj1leHVrcnBjY3VVSjlEL2QvWDRRQlp5CglVbUJFaEgzVW9ndEdnQUhCQlhHSDcrRG5TNHQvcllYTzF0Vk5Xc1p6ZTk2bHdwTXdKUWxJYUhFajgyaVYxeXViCglIMmJNTFZoQUIwQzJhVjA2emQ1dWErbktzSVpJVTNQYWx1OVV5UXlDSEl1MWgyeWxMeVpIekJqbEwyckpib1lICglrVzJad3pTQTQydnRHRVVaeDZzblR1dm92RTdpbGxSTEpqZXR5Vy9pcVFRcFVkYVBuZWZ6RHB0UkErYlpuMnkxCglKMUxjTEN3c1UwbVVqcVVTMi9iNFY4M2pQUThGUVI3T3NubTFlS2xUM2hacUY4MksrM3NYNk5PajFvVmtHaUY3CglScXVpb0pCYkNLTisxNVBnYjMvVUpVcXZxWngvaTNrYjZmS1A1ZytCWHREd2RuZjkreWlYVm9VdnJ3Sys0RUxRCgk9PQpYLU1FLVNlbmRlcjogPHhtczpWc3U3V1NQR0NHeC1neXU1N0NGdTVtSjduTDZLeTZ1V1c2S1EtdkRjY0tiMHhZb0hRdEFzSFE+ClJlY2VpdmVkOiBieSBtYWlsdXNlci5ueWkuaW50ZXJuYWwgKFBvc3RmaXgsIGZyb20gdXNlcmlkIDk5KQoJaWQgN0UzNUI2MjY0RDsgRnJpLCAxNSBTZXAgMjAxNyAwODo0NToxMCAtMDQwMCAoRURUKQpNZXNzYWdlLUlkOiA8MTUwNTQ3OTUxMC4yNDYxNDguMTEwNzE4MDM4NC4yRTA1MkNDNEB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CkZyb206IElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY29tPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9InV0Zi04IgpYLU1haWxlcjogTWVzc2FnaW5nRW5naW5lLmNvbSBXZWJtYWlsIEludGVyZmFjZSAtIGFqYXgtNjRiMDg2OTIKU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMQpEYXRlOiBGcmksIDE1IFNlcCAyMDE3IDA4OjQ1OjEwIC0wNDAwCkluLVJlcGx5LVRvOiA8Q0FMWUdtMXdyLTdZd1Z3c3JPU2VWcHRuamd5NkJHalowaC05eDJyTVVaaHhvWDF5a1JRQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgogPHBvbnktNTZhM2FkZWFmNjBjNDA1OTZmYjI4NGIyNDUyNDE0OGY2MDVlOGQyMy01MmQ0MWNkNDBmMjM0M2M4OTUyODgwZThmODRkYTNlODBkMzM1NTA5QGRldi5tYXZlbi5hcGFjaGUub3JnPgogPENBK25Qbk15UzJxMXVmYVcrUzZzbWhaWjFKY3hoZjloWTUtM25CSi1pQ1dlalBVQURWQUBtYWlsLmdtYWlsLmNvbT4KIDwyMDU3OTQ4LmsxR3lmanVHWGRAZ2lnYT4KIDxDQStuUG5Nd2NvSEZadlVxV2lVc3lIQmhhTW1vU2NjeWRUQnN6U1hnc0d0Rj13TkdES3dAbWFpbC5nbWFpbC5jb20+CiA8Q0FLRFVOMXY1VHNGbitvLXZ2OEhoM1B1dkdYV2UrZlFuTStqd0RadCs9enR4c3BjZ2d3QG1haWwuZ21haWwuY29tPgogPENBS0RVTjFzbTBLS3JOb2tweGgrTkJPWGtVRjg0R0JMeGhRVjJmZHdFSy1GeCsteG5Wd0BtYWlsLmdtYWlsLmNvbT4KIDxDQUtEVU4xdGREPVB4NW45TDYwS2NhMkZ1bkNWTjJ3cm9QZDlVclFOS3hfeGJ6bXRNNndAbWFpbC5nbWFpbC5jb20+CiA8MTUwNTQ3NzU0NS4yMzkyNzcuMTEwNzE1NzA5Ni42Mzg0NjZBQ0B3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CiA8Q0FLRFVOMXZOa1NST2duU0xkYl8wanVodEJfZWhza0JrczZCdDlFLWlLQmNQOXJqeWpnQG1haWwuZ21haWwuY29tPgogPENBTFlHbTF3ci03WXdWd3NyT1NlVnB0bmpneTZCR2paMGgtOXgyck1VWmh4b1gxeWtSUUBtYWlsLmdtYWlsLmNvbT4KCkhhcyBhbnlvbmUgdHJpZWQgd2lyaW5nIGp2bSBleHRlbnNpb25zIENsYXNzTG9hZGVyIGFzIGZvcmVpZ24gaW1wb3J0IHRvCnBsdWdpbi9leHRlbnNpb25zIHJlYWxtcz8gSnZtIGV4dGVuc2lvbnMgY2xhc3Nsb2FkZXIgaXMgbGl0dGxlIHRyaWNreSB0bwpnZXQgdG8gKHNlZSBob3cgdGhpcyBpcyBkb25lIGluIGphdmEudXRpbC5TZXJ2aWNlTG9hZGVyLmxvYWRJbnN0YWxsZWQpLApidXQgSSB0aGluayB0aGlzIHdpbGwgc29sdmUgU2VydmljZUxvYWRlci9NTkctNjI3NSB3aXRob3V0IHBvbGx1dGluZwpwbHVnaW4gY2xhc3NwYXRoIHRvbyBtdWNoLgoKLS09MjAKUmVnYXJkcywKSWdvcgoKT24gRnJpLCBTZXAgMTUsIDIwMTcsIGF0IDA4OjMyIEFNLCBNYXJrIERlcnJpY3V0dCB3cm90ZToKPiBXb3VsZCBpdCBiZSBwb3NzaWJsZSB0byBoYW5kbGUgdGhpcyBpbiBhIHNvbWV3aGF0IHNpbWlsYXIgd2F5IHRvCj4gdGhyZWFkU2FmZQo+IG1vam9zIC0gc29tZSBmb3JtIG9mIHBsdWdpbiBmbGFnIHRoYXQgc2F5cyAiZXh0ZW5zaW9uU2FmZSIgWzFdLCB0aGF0IGlmCj4gdGhlCj4gcGx1Z2luIGhhcyA8ZXh0ZW5zaW9ucz50cnVlPC9leHRlbnNpb25zPiBkZWNsYXJlZCBhbmQgZG9lc24ndCBkZWNsYXJlCj4gaXRzZWxmIGFzIGJlaW5nIGV4dGVuc2lvblNhZmUvZXh0ZW5zaW9uQXdhcmUgdGhlbiB3ZSBsb2cgYSBidWlsZCB3YXJuaW5nCj4gLQo+IGl0IHdvdWxkbid0IHNvbHZlIGFueXRoaW5nLCBvdGhlciB0aGFuIGdpdmluZyBzb21lIGZlZWRiYWNrIHRvIHVzZXJzIHNvbWUKPiBpbmRpY2F0aW9uIG9mIFdIWSB0aGVpciBidWlsZCBmYWlscyB1bmRlciAzLjUuMSAtIGFuZCB0byBlaXRoZXIgcmVtb3ZlCj4gPGV4dGVuc2lvbnM+IG9yIGZpeC91cGRhdGUgdGhlaXIgcGx1Z2lucy4KPj0yMAo+IFsxXSBPciBldmVuIGp1c3QgaW5mZXIgdGhlIGFwcGxpY2FiaWxpdHkgb2YgZXh0ZW5zaW9ucyBieSB0aGUgcHJlc2VuY2Ugb2YKPiBjdXN0b20gbGlmZWN5Y2xlcywgb3IgTW9qb3MgaW1wbGVtZW50aW5nIHRoZSBleHRlbnNpb24gaW50ZXJmYWNlcyAoIGl0J3MKPiBtaWRuaWdodCwgYW5kIGEgaGF6eSB0aXJlZCB0aG91Z2h0ICkuCj49MjAKPiAtLT0yMAo+ICJHcmVhdCBhcnRpc3RzIGFyZSBleHRyZW1lbHkgc2VsZmlzaCBhbmQgYXJyb2dhbnQgdGhpbmdzIiA9RTI9ODA9OTQgU3RldmVuCj4gV2lsc29uLAo+IFBvcmN1cGluZSBUcmVlCj49MjAKPiBPbiBTYXQsIFNlcCAxNiwgMjAxNyBhdCAxMjoyMiBBTSwgQW5kZXJzIEhhbW1hciA8YW5kZXJzQGhhbW1hci5uZXQ+Cj4gd3JvdGU6Cj49MjAKPiA+IEJhc2VkIG9uIElnb3IncyBmZWVkYmFjayBJJ20gY2hhbmdpbmcgbXkgdm90ZSB0byArMS4KPiA+Cj4gPiBIYXZpbmcgdGhpcyBjbGFzcyBsb2FkZXIgY2hhbmdlIGluIGEgYnVnIGZpeCByZWxlYXNlIGlzIHByb2JhYmx5IG5vdAo+ID4gKHNlbXZlcikgaWRlYWwgdGhvdWdoLgo+ID4KPiA+IC9BbmRlcnMKPiA+Cj4gPiBPbiBGcmksIFNlcCAxNSwgMjAxNyBhdCAyOjEyIFBNLCBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvbT4KPiA+IHdyb3RlOgo+ID4KPiA+ID4gSSBhbnN3ZXJlZCBpbiBtb3JlIGRldGFpbHMgb24gbTJlLWRldiwgYnV0IEkgYmVsaWV2ZSB3ZSBjYW4gY29tcGVuc2F0ZQo+ID4gPiBmb3IgdGhlIGNoYW5nZSBmcm9tIG0yZSBlbmQuIEluIHRoZSB3b3JzdCBjYXNlIHdlJ2xsIGJ1bmRsZSBoYWNrZWQKPiA+ID4gdmVyc2lvbiBvZiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXIgd2l0aCBtMmUsIG5vdCBpZGVhbCwgYnV0IG5vdCB0aGUgPQplbmQKPiA+ID4gb2YgdGhlIHdvcmxkIGVpdGhlci4KPiA+ID4KPiA+ID4gLS0KPiA+ID4gUmVnYXJkcywKPiA+ID4gSWdvcgo+ID4gPgo+ID4gPiBPbiBGcmksIFNlcCAxNSwgMjAxNywgYXQgMDc6MjEgQU0sIEFuZGVycyBIYW1tYXIgd3JvdGU6Cj4gPiA+ID4gT24gRnJpLCBTZXAgMTUsIDIwMTcgYXQgODoyOSBBTSwgQW5kZXJzIEhhbW1hciA8YW5kZXJzQGhhbW1hci5uZXQ+Cj4gPiA+IHdyb3RlOgo+ID4gPiA+Cj4gPiA+ID4gPiBSZXBvcnRpbmcgYmFjayBmcm9tIHRlc3RzIG9mIG0yZSB3aXRoIGVtYmVkZGVkIE1hdmVuIDMuNS4xLCB3ZSBzZWUKPiA+ID4gcHJvYmxlbQo+ID4gPiA+ID4gd2l0aCB0aGUgamF4d3MtbWF2ZW4tcGx1Z2luIG1vam8uIFdlJ3JlIHR3byBwZW9wbGUgc2VlaW5nIHRoZSBpc3M9CnVlCj4gPiA+ID4gPiBpbmRlcGVuZGVudGx5LCBidXQgdW5mb3J0dW5hdGVseSBGcmVkIEJyaWNvbiBoYXNuJ3QgYmVlbiBhYmxlIHRvCj4gPiA+IHJlcHJvZHVjZS4KPiA+ID4gPiA+Cj4gPiA+ID4KPiA+ID4gPiBUbyBmb2xsb3cgdXAgb24gdGhpcywgbXkgdGVzdHMgaW5kaWNhdGUgdGhhdCBNYXZlbiAzLjUuMSBjYXVzZXMgY2hhPQpuZ2VkCj4gPiA+ID4gY2xhc3MgbG9hZGluZyB0aGF0IGNvdWxkIGNhdXNlIGlzc3VlcyBmb3IgcGx1Z2lucyBpbiBtMmUuIEkndmUgYXNrZWQKPiA+IGZvcgo+ID4gPiA+IGlucHV0IGZyb20gdGhlIG0yZSBkZXZzIGlmIGl0IGlzIHBvc3NpYmxlIHRvIGhhbmRsZSBpbiBtMmUgYnV0IHRoZXkKPiA+ID4gPiBoYXZlbid0Cj4gPiA+ID4gcmVzcG9uZGVkIHlldC4KPiA+ID4gPgo+ID4gPiA+IC9BbmRlcnMKPiA+ID4gPgo+ID4gPiA+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gU28gY3VycmVudGx5IEknbSAwIG9uIHRoZSB2b3RpbmcgYnV0IEknbGwgaW52ZXN0aWdhdGUgc29tZSBtb3JlLgo+ID4gPiA+ID4KPiA+ID4gPiA+IC9BbmRlcnMKPiA+ID4gPiA+Cj4gPiA+ID4gPiBPbiBXZWQsIFNlcCAxMywgMjAxNyBhdCA5OjI2IEFNLCBBbmRlcnMgSGFtbWFyIDxhbmRlcnNAaGFtbWFyLm5ldD4KPiA+ID4gd3JvdGU6Cj4gPiA+ID4gPgo+ID4gPiA+ID4+Cj4gPiA+ID4gPj4KPiA+ID4gPiA+PiBPbiBUdWUsIFNlcCAxMiwgMjAxNyBhdCA4OjU0IFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+ID4gPiA+PiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+ID4gPiA+Pgo+ID4gPiA+ID4+PiBIYXZlIHdlIGdvdCBhbnkgZmVlZGJhY2sgZnJvbSB0aGUgZW1iZWRkZXIgaW50ZWdyYXRpb25zIHlldD8KPiA+ID4gPiA+Pj4KPiA+ID4gPiA+Pgo+ID4gPiA+ID4+IEkgaGF2ZW4ndCBoZWFyZCBhbnl0aGluZyBmcm9tIHRoZSBtMmUgcGVvcGxlLiBNYXliZSB3ZSBuZWVkIHRvIHA9CmluZwo+ID4gPiB0aGVtCj4gPiA+ID4gPj4gZGlyZWN0bHkuIEkgY2FuIGNvbnRhY3QgRnJlZCBCcmljb24uCj4gPiA+ID4gPj4KPiA+ID4gPiA+PiAvQW5kZXJzCj4gPiA+ID4gPj4KPiA+ID4gPiA+Pgo+ID4gPiA+ID4+Pgo+ID4gPiA+ID4+PiBPbiBNb24gMTEgU2VwIDIwMTcgYXQgMjI6NTcsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUA9CmZyZWUuZnI+Cj4gPiA+ID4gPj4+IHdyb3RlOgo+ID4gPiA+ID4+Pgo+ID4gPiA+ID4+PiA+IGp1c3QgZm9yIHRoZSByZWNvcmRzOiBpdCBpcyBXaW5kb3dzICsgR2l0IEJhc2ggKE1JTkdXNjQpIG9ubHkKPiA+ID4gPiA+Pj4gPgo+ID4gPiA+ID4+PiA+IGFuZCB0aGVyZSBpcyBhIGNoYW5jZSB0aGF0IGFkZGluZyAtRGphbnNpLmZvcmNlPTNEdHJ1ZSBjYW4gZm89CnJjZQo+ID4gPiBKQW5zaQo+ID4gPiA+ID4+PiA+IGFjdGl2YXRpb24gKGV2ZW4gaWYgSkFuc2kgZmFpbHMgdG8gZGV0ZWN0IHRoYXQgaXQgc2hvdWxkCj4gPiA+IGF1dG8tYWN0aXZhdGUpCj4gPiA+ID4gPj4+ID4KPiA+ID4gPiA+Pj4gPiBkZXRhaWxzIG9uIGlzc3VlIGluIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvCj4gPiBqaXJhL2Jyb3dzZS9NTkctNjI4Mgo+ID4gPiAsCj4gPiA+ID4gPj4+IGFuZCBhCj4gPiA+ID4gPj4+ID4gZnV0dXJlIEpBbnNpIGlzc3VlLi4uCj4gPiA+ID4gPj4+ID4KPiA+ID4gPiA+Pj4gPiBSZWdhcmRzLAo+ID4gPiA+ID4+PiA+Cj4gPiA+ID4gPj4+ID4gSGVydj1DMz1BOQo+ID4gPiA+ID4+PiA+Cj4gPiA+ID4gPj4+ID4gTGUgbHVuZGkgMTEgc2VwdGVtYnJlIDIwMTcsIDEyOjUzOjQ2IENFU1QgU3RlcGhlbiBDb25ub2xseSBhCj4gPiA9QzM9QTljcml0Cj4gPiA+IDoKPiA+ID4gPiA+Pj4gPiA+IFNvIHRoYXQgaXMgd2luZG93cyBvbmx5LCBvciB3ZXJlIHRoZXkgbG9zdCBvbiBvdGhlciBPU2VzIGZvcgo+ID4geW91Lgo+ID4gPiA+ID4+PiA+ID4KPiA+ID4gPiA+Pj4gPiA+IEkgaGF2ZSBjb2xvdXJzIG9uIGxpbnV4ICh2aWEgZG9ja2VyKSBhbmQgb3MteAo+ID4gPiA+ID4+PiA+ID4KPiA+ID4gPiA+Pj4gPiA+IE9uIDExIFNlcHRlbWJlciAyMDE3IGF0IDEyOjM1LCBkZWphbjI2MDlAZ21haWwuY29tIDwKPiA+ID4gPiA+Pj4gZGVqYW4yNjA5QGdtYWlsLmNvbT4KPiA+ID4gPiA+Pj4gPiA+Cj4gPiA+ID4gPj4+ID4gPiB3cm90ZToKPiA+ID4gPiA+Pj4gPiA+ID4gKzEgKGNvbmRpdGlvbmFsbHkpLgo+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4+PiA+ID4gPiBUZXN0ZWQgdmlhIHByb2plY3QgdGhhdCBpbmNsdWRlcyBkb3plbiBvZiBwbHVnaW5zOiAxc3QgdGk9CmVyLAo+ID4gPiA+ID4+PiBNb2pvSGF1cwo+ID4gPiA+ID4+PiA+IGFuZAo+ID4gPiA+ID4+PiA+ID4gPiBmZXcgM3JkIHBhcnR5IHBsdWdpbnMgKHNvIHRvIHNheSkuCj4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPj4+ID4gPiA+IEV2ZXJ5dGhpbmcgbG9va3MgZ29vZCB3aXRoIG9uZSBub3RhYmxlIHJlZ3Jlc3Npb246Cj4gPiA+ID4gPj4+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyODIgQ29uc29sZQo+ID4gb3V0cHV0Cj4gPiA+IGhhcwo+ID4gPiA+ID4+PiBubwo+ID4gPiA+ID4+PiA+ID4gPiBjb2xvcnMgKHJlZ3Jlc3Npb24gaW4gTWF2ZW4gMy41LjEpCj4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPj4+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4gPj4+ID4gPiA+IERlamFuCj4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPj4+ID4gPiA+IE9uIDIwMTctMDktMTAgMTc6MzksIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4gPiA+ID4+PiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tCj4gPiA+ID4gPj4+ID4gPgo+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4+PiA+ID4gPiB3cm90ZToKPiA+ID4gPiA+Pj4gPiA+ID4gPiBIaSwKPiA+ID4gPiA+Pj4gPiA+ID4gPgo+ID4gPiA+ID4+PiA+ID4gPiA+IFdlIHNvbHZlZCAyNSBpc3N1ZXM6Cj4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhPwo+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4+PiA+ID4gPiB2ZXJzaW9uPTNEMTIzMzg5NjQmc3R5bGVOYW1lPTNEVGV4dCZwcm9qZWN0SWQ9M0QxMjMxNjkyMgo+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4+PiA+ID4gPiA+IFRoZXJlIGFyZSAzNTAgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKPiA+ID4gPiA+Pj4gPiA+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9M0Rwcm9qZWN0JTIwJQo+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4+PiA+ID4gPiAzRCUyME1ORyUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlCj4gPiA+ID4gPj4+ID4gPiA+IDIwQlklMjBkdWUlMjBBU0MlMkMlMjBwcmlvcml0eSUyMERFU0MlMkMlMjBjcmVhdGVkJTIwQVNDCj4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPj4+ID4gPiA+ID4gU3RhZ2luZyByZXBvOgo+ID4gPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmU9Cm4tCj4gPiA+IDEzNjQvCj4gPiA+ID4gPj4+ID4gPiA+ID4KPiA+ID4gPiA+Pj4gPiA+ID4gPiBUaGUgZGlzdHJpYnV0YWJsZSBiaW5hcmllcyBhbmQgc291cmNlcyBjYW4gYmUgZm91bmQgaGVyPQplOgo+ID4gPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmU9Cm4tPgo+ID4gPgo+ID4gPiA+ID4+PiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xLwo+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4+PiA+ID4gPiA+IFNwZWNpZmljYWxseSB0aGUgemlwLCB0YXJiYWxsIGFuZCBzb3VyY2UgYXJjaGl2ZXMgY2FuIGJlCj4gPiA+IGZvdW5kCj4gPiA+ID4gPj4+IGhlcmU6Cj4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZT0Kbi0+Cj4gPiA+Cj4gPiA+ID4gPj4+ID4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNT0KLjEtCj4gPiA+ID4gPj4+IGJpbi56aXAKPiA+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPiA+Pj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlPQpuLT4KPiA+ID4KPiA+ID4gPiA+Pj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41PQouMS0KPiA+ID4gPiA+Pj4gYmluLnRhci5nego+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmU9Cm4tPgo+ID4gPgo+ID4gPiA+ID4+PiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjU9Ci4xLQo+ID4gPiA+ID4+PiBzcmMuemlwCj4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZT0Kbi0+Cj4gPiA+Cj4gPiA+ID4gPj4+ID4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNT0KLjEtCj4gPiA+ID4gPj4+IHNyYy50YXIuZ3oKPiA+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPiA+Pj4gPiA+ID4gPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiA+ID4gPiA+Pj4gPiA+ID4gPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5neiBzaGExOgo+ID4gPiA+ID4+PiA5ZWI4MjFmMTUzYzc2NjcxOTRhYTExY2NkMDk5YjcKPiA+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPiA+Pj4gPiA+ID4gYmQyMDU5NTYwZAo+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4+PiA+ID4gPiA+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwOiBzaGExOgo+ID4gPiAxMjFkNTRiMDQ1MzgwYThhNDg5NWViMTM3OTcwYWIKPiA+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPiA+Pj4gPiA+ID4gNjllNjk4ZWIwZQo+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4+PiA+ID4gPiA+IEdpdCB0YWc6Cj4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9M0RtYXZlbi5naXQ7YT0KPTNECj4gPiA+IGNvbW1pdDtoPTNECj4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPj4+ID4gPiA+IDA5NGU0ZTMxYTVhZjU1YmIxN2JlODc2NzVkYTQxZDlhZWNhMDYyZjMKPiA+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPiA+Pj4gPiA+ID4gPiBTdGFnaW5nIHNpdGU6Cj4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2NvbXBvbmVudHMvcmVmLzMtTEFURVNULwo+ID4gPiA+ID4+PiA+ID4gPiA+Cj4gPiA+ID4gPj4+ID4gPiA+ID4gVm90ZSBvcGVuIGZvciA3MiBob3Vycy4KPiA+ID4gPiA+Pj4gPiA+ID4gPgo+ID4gPiA+ID4+PiA+ID4gPiA+IFsgXSArMQo+ID4gPiA+ID4+PiA+ID4gPiA+IFsgXSArMAo+ID4gPiA+ID4+PiA+ID4gPiA+IFsgXSAtMQo+ID4gPiA+ID4+PiA+ID4gPiA+Cj4gPiA+ID4gPj4+ID4gPiA+ID4gVGhhbmtzLAo+ID4gPiA+ID4+PiA+ID4gPiA+Cj4gPiA+ID4gPj4+ID4gPiA+ID4gU3RlcGhlbi4KPiA+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPiA+Pj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotLS0KPiA+ID4gPiA+Pj4gLS0tLS0tLS0tCj4gPiA+ID4gPj4+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPj4+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+Pj4gPgo+ID4gPiA+ID4+PiA+Cj4gPiA+ID4gPj4+ID4KPiA+ID4gPiA+Pj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gLS0tLS0tLS0tCj4gPiA+ID4gPj4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+Pj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPj4+ID4KPiA+ID4gPiA+Pj4gPiAtLQo+ID4gPiA+ID4+PiBTZW50IGZyb20gbXkgcGhvbmUKPiA+ID4gPiA+Pj4KPiA+ID4gPiA+Pgo+ID4gPiA+ID4+Cj4gPiA+ID4gPgo+ID4gPgo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPgo+ID4gPgo+ID4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDA0NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgU2VwIDE2IDAzOjA3OjM3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDA0NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3RUI5MTFBQzAyCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMTYgU2VwIDIwMTcgMDM6MDc6MzcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzNjc5IGludm9rZWQgYnkgdWlkIDUwMCk7IDE2IFNlcCAyMDE3IDAzOjA3OjM3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNjAxIGludm9rZWQgYnkgdWlkIDUwMCk7IDE2IFNlcCAyMDE3IDAzOjA3OjM2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzU4OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDE2IFNlcCAyMDE3IDAzOjA3OjM2IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAxNiBTZXAgMjAxNyAwMzowNzozNiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDBBNDc2MUExOUZFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAxNiBTZXAgMjAxNyAwMzowNzozNiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDAuNDc5ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTAuNDc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWlmZWRvcmVua28uY29tIGhlYWRlci5iPXFmMnlwT0h5OwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPW1lc3NhZ2luZ2VuZ2luZS5jb20KCWhlYWRlci5iPXBMWlQ4UkMyClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBqZjQ3NTNINFRPSXcgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsIDE2IFNlcCAyMDE3IDAzOjA3OjMzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG91dDEtc210cC5tZXNzYWdpbmdlbmdpbmUuY29tIChvdXQxLXNtdHAubWVzc2FnaW5nZW5naW5lLmNvbSBbNjYuMTExLjQuMjVdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQTkyMTA1RkFGNwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTYgU2VwIDIwMTcgMDM6MDc6MzIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gY29tcHV0ZTIuaW50ZXJuYWwgKGNvbXB1dGUyLm55aS5pbnRlcm5hbCBbMTAuMjAyLjIuNDJdKQoJYnkgbWFpbG91dC5ueWkuaW50ZXJuYWwgKFBvc3RmaXgpIHdpdGggRVNNVFAgaWQgMEQ0NTcyMEQ5RAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTUgU2VwIDIwMTcgMjM6MDc6MjYgLTA0MDAgKEVEVCkKUmVjZWl2ZWQ6IGZyb20gd2ViMiAoWzEwLjIwMi4yLjIxMl0pCiAgYnkgY29tcHV0ZTIuaW50ZXJuYWwgKE1FUHJveHkpOyBGcmksIDE1IFNlcCAyMDE3IDIzOjA3OjI2IC0wNDAwCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7IGQ9aWZlZG9yZW5rby5jb207CgkgaD1jb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOmNvbnRlbnQtdHlwZTpkYXRlOmZyb206aW4tcmVwbHktdG8KCTptZXNzYWdlLWlkOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOnN1YmplY3Q6dG86eC1tZS1zZW5kZXIKCTp4LW1lLXNlbmRlcjp4LXNhc2wtZW5jOyBzPWZtMTsgYmg9TXJUTEVIYnF4cS9wM3ZwV3FFdmYrTXBidkZOT1oKCVNNSWIxelZXcCtrdUZBPTsgYj1xZjJ5cE9IeTlOSExSMmpjS0FNdVNmaXA0V01sbzJDY0svWW43dnl5YlJGL1EKCVFBMXlXOTZrQU5IMEVrQjJVQisxSlkwOFdvOVBKTllrM3RHbkJlYXZ6S1NHbDZrOEg2S0lOSUg5UVpnV3k4Qk8KCWh0Nk8xMGhKMDA3ZGFLMkRoTDFoYzRoQjRBYkl2Z00vdEEybW5zOXJ4ekZDU2pYS1FkOTRYSlhsMlMzMm53TWEKCW5YWldsR0xkbWROVnBGK3pyMDJiV2JGL1cxai84WUVHWFppKzNxTFBWek1MV3VPZmh3TzFkQ2pxbnhRRUl4RlIKCUdjOThBMWIvNEhxckhWclNuRU13cXJiUlF0aW94ZnlYOG5ES3ZhekYzSENBMDhTSzFBVGhha2h2eFQyZXdubzQKCVNEVWRkRjBSQ2Ftdmh5RksrcjFqWkp1UHlzeEpqdlNpNGdvMm0yN0lnPT0KREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsgZD0KCW1lc3NhZ2luZ2VuZ2luZS5jb207IGg9Y29udGVudC10cmFuc2Zlci1lbmNvZGluZzpjb250ZW50LXR5cGUKCTpkYXRlOmZyb206aW4tcmVwbHktdG86bWVzc2FnZS1pZDptaW1lLXZlcnNpb246cmVmZXJlbmNlcwoJOnN1YmplY3Q6dG86eC1tZS1zZW5kZXI6eC1tZS1zZW5kZXI6eC1zYXNsLWVuYzsgcz1mbTE7IGJoPU1yVExFSAoJYnF4cS9wM3ZwV3FFdmYrTXBidkZOT1pTTUliMXpWV3Ara3VGQT07IGI9cExaVDhSQzI1MVFGSUlQNkQySXhQNQoJcGpzZ05HWVRYelJGSHYxR0VVMWgyeCszRlJIRnBqTlZTVk1Nblhnd1ZqelNMTElXRGpheVV2YWR4SmJSVmNZVQoJZmlLajl2NnowVDJjT2tOQWl3YS9YbTJ1dnB6dTJzVmtjSGRMV1BwT2pUNW4xK2R5cC84V2Y3VGJkQmRxc3JsYgoJTmxKeVNyS0t3ai9hejYrOFNEamtlL2M4blRiR1gwR2lIazdRa2hkMCtmSDFuM2xIZzU5QWNJbkhGT1pzaGhJWgoJZ2pGc1VwNnRsSWJqUkZJMUxLNVNCakpGNWZWRmFpUFNFQ0d0enJRcFF5cHZUTUlZZ28yditIM0JweXFwRG51MgoJVEdzRmUrOE9LaWZyb3hhVzI0bEQrLyszZk9RcDdRVVo5Tm83bGU1VkZPQ0x5WHRuWCtiQUJrZEJGN2xiQ3hIdwoJPT0KWC1NRS1TZW5kZXI6IDx4bXM6YlpXOFdlRW9ieV9QT1NYWTZqSG5Sd21GX3QxZW1zVmlBTC16ajhVa29DRmdWNkgyd2EyWG1nPgpSZWNlaXZlZDogYnkgbWFpbHVzZXIubnlpLmludGVybmFsIChQb3N0Zml4LCBmcm9tIHVzZXJpZCA5OSkKCWlkIEMwNEI2NjI2NEQ7IEZyaSwgMTUgU2VwIDIwMTcgMjM6MDc6MjUgLTA0MDAgKEVEVCkKTWVzc2FnZS1JZDogPDE1MDU1MzEyNDUuNDM4MjkyLjExMDc5MDQ0MjQuMTMwOUE3NTlAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgpGcm9tOiBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvbT4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJ1dGYtOCIKWC1NYWlsZXI6IE1lc3NhZ2luZ0VuZ2luZS5jb20gV2VibWFpbCBJbnRlcmZhY2UgLSBhamF4LTY0YjA4NjkyClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEKRGF0ZTogRnJpLCAxNSBTZXAgMjAxNyAyMzowNzoyNSAtMDQwMApSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgogPHBvbnktNTZhM2FkZWFmNjBjNDA1OTZmYjI4NGIyNDUyNDE0OGY2MDVlOGQyMy01MmQ0MWNkNDBmMjM0M2M4OTUyODgwZThmODRkYTNlODBkMzM1NTA5QGRldi5tYXZlbi5hcGFjaGUub3JnPgogPENBK25Qbk15UzJxMXVmYVcrUzZzbWhaWjFKY3hoZjloWTUtM25CSi1pQ1dlalBVQURWQUBtYWlsLmdtYWlsLmNvbT4KIDwyMDU3OTQ4LmsxR3lmanVHWGRAZ2lnYT4KIDxDQStuUG5Nd2NvSEZadlVxV2lVc3lIQmhhTW1vU2NjeWRUQnN6U1hnc0d0Rj13TkdES3dAbWFpbC5nbWFpbC5jb20+CiA8Q0FLRFVOMXY1VHNGbitvLXZ2OEhoM1B1dkdYV2UrZlFuTStqd0RadCs9enR4c3BjZ2d3QG1haWwuZ21haWwuY29tPgogPENBS0RVTjFzbTBLS3JOb2tweGgrTkJPWGtVRjg0R0JMeGhRVjJmZHdFSy1GeCsteG5Wd0BtYWlsLmdtYWlsLmNvbT4KIDxDQUtEVU4xdGREPVB4NW45TDYwS2NhMkZ1bkNWTjJ3cm9QZDlVclFOS3hfeGJ6bXRNNndAbWFpbC5nbWFpbC5jb20+CiA8MTUwNTQ3NzU0NS4yMzkyNzcuMTEwNzE1NzA5Ni42Mzg0NjZBQ0B3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CiA8Q0FLRFVOMXZOa1NST2duU0xkYl8wanVodEJfZWhza0JrczZCdDlFLWlLQmNQOXJqeWpnQG1haWwuZ21haWwuY29tPgogPENBTFlHbTF3ci03WXdWd3NyT1NlVnB0bmpneTZCR2paMGgtOXgyck1VWmh4b1gxeWtSUUBtYWlsLmdtYWlsLmNvbT4KIDwxNTA1NDc5NTEwLjI0NjE0OC4xMTA3MTgwMzg0LjJFMDUyQ0M0QHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KIDxDQStuUG5NeWZObWNrNVlOaGFPU1E5Rnp4V0c0d2FPSlZyTFFScV9YNVphRkF1OEhIT0FAbWFpbC5nbWFpbC5jb20+CkluLVJlcGx5LVRvOiA8Q0ErblBuTXlmTm1jazVZTmhhT1NROUZ6eFdHNHdhT0pWckxRUnFfWDVaYUZBdThISE9BQG1haWwuZ21haWwuY29tPgoKSSBkb24ndCByZWFsbHkgaGF2ZSBtdWNoIHRvIGFkZCwgYnV0IGxldCBtZSBhbnN3ZXIgYW55d2F5cyA6LSkKCjEpIEkgYW0gcmVhc29uYWJseSBjb25maWRlbnQgd2UgY2FuIGNvbXBlbnNhdGUgZm9yIHRoZSBuZXcgY2xhc3Nsb2FkZXIKYXJyYW5nZW1lbnQgaW4gbTJlIHdpdGhvdXQgbXVjaCBwcm9ibGVtcy4gVGhlIG5ldyBzZXR1cCBkb2VzIG1ha2UgcGx1Z2luCnJ1bnRpbWUgY2xhc3NwYXRoIGxlc3Mgc3RhYmxlLCBzbyB0aGVyZSBhcmUgbGlrZWx5IG90aGVyIHNjZW5hcmlvcyB3aGVyZQpwbHVnaW5zIHdpbGwgYmVoYXZlIGRpZmZlcmVudGx5IChiYWQpLiBPbiB0aGUgb3RoZXIgaGFuZCwgSSBkb24ndCBzZWUKYW55IGJldHRlciB3YXkgdG8gc3VwcG9ydCBTZXJ2aWNlTG9hZGVyLiBGb3IgamF2YSA4IGl0IG1heSBiZSBwb3NzaWJsZQp0byB1c2UgZm9yZWlnbi1pbXBvcnQgb2YgZXh0ZW5zaW9ucyBjbGFzc2xvYWRlciB0byBmaXggTU5HLTYyNzUsIGJ1dAp0aGF0IGNsYXNzbG9hZGVyIHdhcyByZW1vdmVkIGluIGphdmEgOSwgdW5sZXNzIEkgYW0gbWlzdGFrZW4uCgoyKSBJIGJlbGlldmUgVENDTCBpcyBhbHJlYWR5IHNldCB0byBwcm9qZWN0IHJlYWxtIGZvciBwcm9qZWN0cyB0aGF0IGhhdmUKZXh0ZW5zaW9ucyAoYW5kIHRvIHBsdWdpbiByZWFsbSBvdGhlcndpc2UpIGR1cmluZyBwbHVnaW4gZXhlY3V0aW9uLgpQcm9ibGVtIGlzLCBuZWl0aGVyIHByb2plY3QgcmVhbG0gbm9yIGFueSBvZiB0aGUgcGx1Z2luIHJlYWxtcyBoYXZlCmFjY2VzcyB0byBqdm0gZXh0ZW5zaW9ucyBjbGFzc2xvYWRlciwgc28gU2VydmljZUxvYWRlciBjYW4ndCBnZXQgY2xhc3Nlcwpmcm9tIHRoZXJlLj0yMAoKLS09MjAKUmVnYXJkcywKSWdvcgoKT24gRnJpLCBTZXAgMTUsIDIwMTcsIGF0IDEyOjA5IFBNLCBTdGVwaGVuIENvbm5vbGx5IHdyb3RlOgo+IEknbSBnb2luZyB0byBob2xkIG9mZiBjbG9zaW5nIHRoZSB2b3RlIG92ZXIgdGhlIHdlZWtlbmQgdG8gZ2l2ZSBJZ29yIGEKPiBjaGFuY2UgdG86Cj49MjAKPiAxLiBjb21tZW50IG9uIHdoZXRoZXIgd2UgbmVlZCBhbiBhbHRlcm5hdGl2ZSBmaXggZm9yIE1ORy02Mjc1IChhbmQgaW5kZWVkCj4gaWRlYWxseSBwcm92aWRlIG9uZSA7LSApOwo+IDIuIGNvbW1lbnQgb24gd2hldGhlciB0aGUgZml4IGZvciBNTkctNjIwOSBpcyBleHBvc2luZyBidWdzIGluIHBsdWdpbnMKPiB0aGF0Cj4gbWFkZSBpbmNvcnJlY3QgYXNzdW1wdGlvbnMgYWJvdXQgVENDTCwgb3Igd2hldGhlciB0aGUgZml4IGlzIGludmFsaWQgb3IKPiBldmVuIGluY29tcGxldGUgKEkgd29uZGVyIGlmIFRDQ0wgc2hvdWxkIGFsd2F5cyBiZQo+IHByb2plY3QuZ2V0Q2xhc3NSZWFsbSgpCj4gYXMgZXh0ZW5zaW9ucyBzaG91bGQgYmUgYXZhaWxhYmxlIHRvIGFsbCBwbHVnaW5zIG5vdCBqdXN0IHRob3NlIHRoYXQKPiBkZWNsYXJlIHRoZXkgYXJlIHByb3ZpZGluZyBleHRlbnNpb25zIC0gdW5sZXNzIEkgbWlzdW5kZXJzdGFuZCkKPj0yMAo+IE9uY2UgSSBoYXZlIHRoZSByZXF1aXJlZCBpbmZvcm1hdGlvbiBJIHdpbGwgYmUgYmV0dGVyIGFibGUgdG8gYXNzZXNzCj4gd2hldGhlciB3ZSBzaG91bGQgcmVsZWFzZSAzLjUuMSBhbmQgZm9sbG93IHVwIHdpdGggYSBxdWljayAzLjUuMiBvciBqdXN0Cj4gZHJvcCAzLjUuMSBhbmQgZ28gc3RyYWlnaHQgdG8gMy41LjIuCj49MjAKPiAtU3RlcGhlbgo+PTIwCj4gT24gMTUgU2VwdGVtYmVyIDIwMTcgYXQgMDU6NDUsIElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY29tPgo+IHdyb3RlOgo+PTIwCj4gPiBIYXMgYW55b25lIHRyaWVkIHdpcmluZyBqdm0gZXh0ZW5zaW9ucyBDbGFzc0xvYWRlciBhcyBmb3JlaWduIGltcG9ydCB0bwo+ID4gcGx1Z2luL2V4dGVuc2lvbnMgcmVhbG1zPyBKdm0gZXh0ZW5zaW9ucyBjbGFzc2xvYWRlciBpcyBsaXR0bGUgdHJpY2t5IHRvCj4gPiBnZXQgdG8gKHNlZSBob3cgdGhpcyBpcyBkb25lIGluIGphdmEudXRpbC5TZXJ2aWNlTG9hZGVyLmxvYWRJbnN0YWxsZWQpLAo+ID4gYnV0IEkgdGhpbmsgdGhpcyB3aWxsIHNvbHZlIFNlcnZpY2VMb2FkZXIvTU5HLTYyNzUgd2l0aG91dCBwb2xsdXRpbmcKPiA+IHBsdWdpbiBjbGFzc3BhdGggdG9vIG11Y2guCj4gPgo+ID4gLS0KPiA+IFJlZ2FyZHMsCj4gPiBJZ29yCj4gPgo+ID4gT24gRnJpLCBTZXAgMTUsIDIwMTcsIGF0IDA4OjMyIEFNLCBNYXJrIERlcnJpY3V0dCB3cm90ZToKPiA+ID4gV291bGQgaXQgYmUgcG9zc2libGUgdG8gaGFuZGxlIHRoaXMgaW4gYSBzb21ld2hhdCBzaW1pbGFyIHdheSB0bwo+ID4gPiB0aHJlYWRTYWZlCj4gPiA+IG1vam9zIC0gc29tZSBmb3JtIG9mIHBsdWdpbiBmbGFnIHRoYXQgc2F5cyAiZXh0ZW5zaW9uU2FmZSIgWzFdLCB0aGF0ID0KaWYKPiA+ID4gdGhlCj4gPiA+IHBsdWdpbiBoYXMgPGV4dGVuc2lvbnM+dHJ1ZTwvZXh0ZW5zaW9ucz4gZGVjbGFyZWQgYW5kIGRvZXNuJ3QgZGVjbGFyZQo+ID4gPiBpdHNlbGYgYXMgYmVpbmcgZXh0ZW5zaW9uU2FmZS9leHRlbnNpb25Bd2FyZSB0aGVuIHdlIGxvZyBhIGJ1aWxkIHdhcm49CmluZwo+ID4gPiAtCj4gPiA+IGl0IHdvdWxkbid0IHNvbHZlIGFueXRoaW5nLCBvdGhlciB0aGFuIGdpdmluZyBzb21lIGZlZWRiYWNrIHRvIHVzZXJzID0Kc29tZQo+ID4gPiBpbmRpY2F0aW9uIG9mIFdIWSB0aGVpciBidWlsZCBmYWlscyB1bmRlciAzLjUuMSAtIGFuZCB0byBlaXRoZXIgcmVtb3ZlCj4gPiA+IDxleHRlbnNpb25zPiBvciBmaXgvdXBkYXRlIHRoZWlyIHBsdWdpbnMuCj4gPiA+Cj4gPiA+IFsxXSBPciBldmVuIGp1c3QgaW5mZXIgdGhlIGFwcGxpY2FiaWxpdHkgb2YgZXh0ZW5zaW9ucyBieSB0aGUgcHJlc2VuYz0KZSBvZgo+ID4gPiBjdXN0b20gbGlmZWN5Y2xlcywgb3IgTW9qb3MgaW1wbGVtZW50aW5nIHRoZSBleHRlbnNpb24gaW50ZXJmYWNlcyAoIGk9CnQncwo+ID4gPiBtaWRuaWdodCwgYW5kIGEgaGF6eSB0aXJlZCB0aG91Z2h0ICkuCj4gPiA+Cj4gPiA+IC0tCj4gPiA+ICJHcmVhdCBhcnRpc3RzIGFyZSBleHRyZW1lbHkgc2VsZmlzaCBhbmQgYXJyb2dhbnQgdGhpbmdzIiA9RTI9ODA9OTQgUz0KdGV2ZW4KPiA+ID4gV2lsc29uLAo+ID4gPiBQb3JjdXBpbmUgVHJlZQo+ID4gPgo+ID4gPiBPbiBTYXQsIFNlcCAxNiwgMjAxNyBhdCAxMjoyMiBBTSwgQW5kZXJzIEhhbW1hciA8YW5kZXJzQGhhbW1hci5uZXQ+Cj4gPiA+IHdyb3RlOgo+ID4gPgo+ID4gPiA+IEJhc2VkIG9uIElnb3IncyBmZWVkYmFjayBJJ20gY2hhbmdpbmcgbXkgdm90ZSB0byArMS4KPiA+ID4gPgo+ID4gPiA+IEhhdmluZyB0aGlzIGNsYXNzIGxvYWRlciBjaGFuZ2UgaW4gYSBidWcgZml4IHJlbGVhc2UgaXMgcHJvYmFibHkgbm90Cj4gPiA+ID4gKHNlbXZlcikgaWRlYWwgdGhvdWdoLgo+ID4gPiA+Cj4gPiA+ID4gL0FuZGVycwo+ID4gPiA+Cj4gPiA+ID4gT24gRnJpLCBTZXAgMTUsIDIwMTcgYXQgMjoxMiBQTSwgSWdvciBGZWRvcmVua28gPGlnb3JAaWZlZG9yZW5rby5jbz0KbT4KPiA+ID4gPiB3cm90ZToKPiA+ID4gPgo+ID4gPiA+ID4gSSBhbnN3ZXJlZCBpbiBtb3JlIGRldGFpbHMgb24gbTJlLWRldiwgYnV0IEkgYmVsaWV2ZSB3ZSBjYW4KPiA+IGNvbXBlbnNhdGUKPiA+ID4gPiA+IGZvciB0aGUgY2hhbmdlIGZyb20gbTJlIGVuZC4gSW4gdGhlIHdvcnN0IGNhc2Ugd2UnbGwgYnVuZGxlIGhhY2tlZAo+ID4gPiA+ID4gdmVyc2lvbiBvZiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXIgd2l0aCBtMmUsIG5vdCBpZGVhbCwgYnV0IG5vdCA9CnRoZQo+ID4gZW5kCj4gPiA+ID4gPiBvZiB0aGUgd29ybGQgZWl0aGVyLgo+ID4gPiA+ID4KPiA+ID4gPiA+IC0tCj4gPiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+ID4gSWdvcgo+ID4gPiA+ID4KPiA+ID4gPiA+IE9uIEZyaSwgU2VwIDE1LCAyMDE3LCBhdCAwNzoyMSBBTSwgQW5kZXJzIEhhbW1hciB3cm90ZToKPiA+ID4gPiA+ID4gT24gRnJpLCBTZXAgMTUsIDIwMTcgYXQgODoyOSBBTSwgQW5kZXJzIEhhbW1hciA8YW5kZXJzQGhhbW1hci5uPQpldD4KPiA+ID4gPiA+IHdyb3RlOgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IFJlcG9ydGluZyBiYWNrIGZyb20gdGVzdHMgb2YgbTJlIHdpdGggZW1iZWRkZWQgTWF2ZW4gMy41LjEsIHdlCj4gPiBzZWUKPiA+ID4gPiA+IHByb2JsZW0KPiA+ID4gPiA+ID4gPiB3aXRoIHRoZSBqYXh3cy1tYXZlbi1wbHVnaW4gbW9qby4gV2UncmUgdHdvIHBlb3BsZSBzZWVpbmcgdGhlCj4gPiBpc3N1ZQo+ID4gPiA+ID4gPiA+IGluZGVwZW5kZW50bHksIGJ1dCB1bmZvcnR1bmF0ZWx5IEZyZWQgQnJpY29uIGhhc24ndCBiZWVuIGFibGU9CiB0bwo+ID4gPiA+ID4gcmVwcm9kdWNlLgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFRvIGZvbGxvdyB1cCBvbiB0aGlzLCBteSB0ZXN0cyBpbmRpY2F0ZSB0aGF0IE1hdmVuIDMuNS4xIGNhdXNlcwo+ID4gY2hhbmdlZAo+ID4gPiA+ID4gPiBjbGFzcyBsb2FkaW5nIHRoYXQgY291bGQgY2F1c2UgaXNzdWVzIGZvciBwbHVnaW5zIGluIG0yZS4gSSd2ZQo+ID4gYXNrZWQKPiA+ID4gPiBmb3IKPiA+ID4gPiA+ID4gaW5wdXQgZnJvbSB0aGUgbTJlIGRldnMgaWYgaXQgaXMgcG9zc2libGUgdG8gaGFuZGxlIGluIG0yZSBidXQgPQp0aGV5Cj4gPiA+ID4gPiA+IGhhdmVuJ3QKPiA+ID4gPiA+ID4gcmVzcG9uZGVkIHlldC4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gL0FuZGVycwo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gU28gY3VycmVudGx5IEknbSAwIG9uIHRoZSB2b3RpbmcgYnV0IEknbGwgaW52ZXN0aWdhdGUgc29tZSBtbz0KcmUuCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiAvQW5kZXJzCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBPbiBXZWQsIFNlcCAxMywgMjAxNyBhdCA5OjI2IEFNLCBBbmRlcnMgSGFtbWFyIDwKPiA+IGFuZGVyc0BoYW1tYXIubmV0Pgo+ID4gPiA+ID4gd3JvdGU6Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4gPj4gT24gVHVlLCBTZXAgMTIsIDIwMTcgYXQgODo1NCBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPiA+ID4gPiA+ID4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPiA+Pj4gSGF2ZSB3ZSBnb3QgYW55IGZlZWRiYWNrIGZyb20gdGhlIGVtYmVkZGVyIGludGVncmF0aW9ucyB5ZXQ/Cj4gPiA+ID4gPiA+ID4+Pgo+ID4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPiA+PiBJIGhhdmVuJ3QgaGVhcmQgYW55dGhpbmcgZnJvbSB0aGUgbTJlIHBlb3BsZS4gTWF5YmUgd2UgbmVlZCA9CnRvCj4gPiBwaW5nCj4gPiA+ID4gPiB0aGVtCj4gPiA+ID4gPiA+ID4+IGRpcmVjdGx5LiBJIGNhbiBjb250YWN0IEZyZWQgQnJpY29uLgo+ID4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPiA+PiAvQW5kZXJzCj4gPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+ID4+Pgo+ID4gPiA+ID4gPiA+Pj4gT24gTW9uIDExIFNlcCAyMDE3IGF0IDIyOjU3LCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+ID4gaGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID4gPiA+ID4gPiA+Pj4gd3JvdGU6Cj4gPiA+ID4gPiA+ID4+Pgo+ID4gPiA+ID4gPiA+Pj4gPiBqdXN0IGZvciB0aGUgcmVjb3JkczogaXQgaXMgV2luZG93cyArIEdpdCBCYXNoIChNSU5HVzY0KSA9Cm9ubHkKPiA+ID4gPiA+ID4gPj4+ID4KPiA+ID4gPiA+ID4gPj4+ID4gYW5kIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgYWRkaW5nIC1EamFuc2kuZm9yY2U9M0R0cnVlIGNhbgo+ID4gZm9yY2UKPiA+ID4gPiA+IEpBbnNpCj4gPiA+ID4gPiA+ID4+PiA+IGFjdGl2YXRpb24gKGV2ZW4gaWYgSkFuc2kgZmFpbHMgdG8gZGV0ZWN0IHRoYXQgaXQgc2hvdWxkCj4gPiA+ID4gPiBhdXRvLWFjdGl2YXRlKQo+ID4gPiA+ID4gPiA+Pj4gPgo+ID4gPiA+ID4gPiA+Pj4gPiBkZXRhaWxzIG9uIGlzc3VlIGluIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvCj4gPiA+ID4gamlyYS9icm93c2UvTU5HLTYyODIKPiA+ID4gPiA+ICwKPiA+ID4gPiA+ID4gPj4+IGFuZCBhCj4gPiA+ID4gPiA+ID4+PiA+IGZ1dHVyZSBKQW5zaSBpc3N1ZS4uLgo+ID4gPiA+ID4gPiA+Pj4gPgo+ID4gPiA+ID4gPiA+Pj4gPiBSZWdhcmRzLAo+ID4gPiA+ID4gPiA+Pj4gPgo+ID4gPiA+ID4gPiA+Pj4gPiBIZXJ2PUMzPUE5Cj4gPiA+ID4gPiA+ID4+PiA+Cj4gPiA+ID4gPiA+ID4+PiA+IExlIGx1bmRpIDExIHNlcHRlbWJyZSAyMDE3LCAxMjo1Mzo0NiBDRVNUIFN0ZXBoZW4gQ29ubm9sbD0KeSBhCj4gPiA+ID4gPUMzPUE5Y3JpdAo+ID4gPiA+ID4gOgo+ID4gPiA+ID4gPiA+Pj4gPiA+IFNvIHRoYXQgaXMgd2luZG93cyBvbmx5LCBvciB3ZXJlIHRoZXkgbG9zdCBvbiBvdGhlciBPU2VzCj4gPiBmb3IKPiA+ID4gPiB5b3UuCj4gPiA+ID4gPiA+ID4+PiA+ID4KPiA+ID4gPiA+ID4gPj4+ID4gPiBJIGhhdmUgY29sb3VycyBvbiBsaW51eCAodmlhIGRvY2tlcikgYW5kIG9zLXgKPiA+ID4gPiA+ID4gPj4+ID4gPgo+ID4gPiA+ID4gPiA+Pj4gPiA+IE9uIDExIFNlcHRlbWJlciAyMDE3IGF0IDEyOjM1LCBkZWphbjI2MDlAZ21haWwuY29tIDwKPiA+ID4gPiA+ID4gPj4+IGRlamFuMjYwOUBnbWFpbC5jb20+Cj4gPiA+ID4gPiA+ID4+PiA+ID4KPiA+ID4gPiA+ID4gPj4+ID4gPiB3cm90ZToKPiA+ID4gPiA+ID4gPj4+ID4gPiA+ICsxIChjb25kaXRpb25hbGx5KS4KPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPiA+ID4+PiA+ID4gPiBUZXN0ZWQgdmlhIHByb2plY3QgdGhhdCBpbmNsdWRlcyBkb3plbiBvZiBwbHVnaW5zOiAxc3QKPiA+IHRpZXIsCj4gPiA+ID4gPiA+ID4+PiBNb2pvSGF1cwo+ID4gPiA+ID4gPiA+Pj4gPiBhbmQKPiA+ID4gPiA+ID4gPj4+ID4gPiA+IGZldyAzcmQgcGFydHkgcGx1Z2lucyAoc28gdG8gc2F5KS4KPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPiA+ID4+PiA+ID4gPiBFdmVyeXRoaW5nIGxvb2tzIGdvb2Qgd2l0aCBvbmUgbm90YWJsZSByZWdyZXNzaW9uOgo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjI4MiBDb25zb2xlCj4gPiA+ID4gb3V0cHV0Cj4gPiA+ID4gPiBoYXMKPiA+ID4gPiA+ID4gPj4+IG5vCj4gPiA+ID4gPiA+ID4+PiA+ID4gPiBjb2xvcnMgKHJlZ3Jlc3Npb24gaW4gTWF2ZW4gMy41LjEpCj4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiA+ID4gPj4+ID4gPiA+IERlamFuCj4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gT24gMjAxNy0wOS0xMCAxNzozOSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPiA+ID4gPiA+ID4+PiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tCj4gPiA+ID4gPiA+ID4+PiA+ID4KPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPiA+ID4+PiA+ID4gPiB3cm90ZToKPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gSGksCj4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IFdlIHNvbHZlZCAyNSBpc3N1ZXM6Cj4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuaj0Kc3BhCj4gPiA/Cj4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gdmVyc2lvbj0zRDEyMzM4OTY0JnN0eWxlTmFtZT0zRFRleHQmcHJvamVjdElkPTNEMTIzMTY9CjkyMgo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gVGhlcmUgYXJlIDM1MCBpc3N1ZXMgbGVmdCBpbiBKSVJBIGZvciBNYXZlbiBjb3JlOgo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9M0Rwcm9qZWM9CnQlMjAlCj4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gM0QlMjBNTkclMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREU9ClIlCj4gPiA+ID4gPiA+ID4+PiA+ID4gPiAyMEJZJTIwZHVlJTIwQVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwY3JlYXRlZCUyMD0KQVNDCj4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBTdGFnaW5nIHJlcG86Cj4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnLwo+ID4gY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gPiA+ID4gPiAxMzY0Lwo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBUaGUgZGlzdHJpYnV0YWJsZSBiaW5hcmllcyBhbmQgc291cmNlcyBjYW4gYmUgZm91bmQKPiA+IGhlcmU6Cj4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnLwo+ID4gY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tPgo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPj4+ID4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvCj4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBTcGVjaWZpY2FsbHkgdGhlIHppcCwgdGFyYmFsbCBhbmQgc291cmNlIGFyY2hpdmVzIGM9CmFuCj4gPiBiZQo+ID4gPiA+ID4gZm91bmQKPiA+ID4gPiA+ID4gPj4+IGhlcmU6Cj4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnLwo+ID4gY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tPgo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPj4+ID4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtCj4gPiBtYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtCj4gPiA+ID4gPiA+ID4+PiBiaW4uemlwCj4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy8KPiA+IGNvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4KPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4+PiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLQo+ID4gbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLQo+ID4gPiA+ID4gPiA+Pj4gYmluLnRhci5nego+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvCj4gPiBjb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS0KPiA+IG1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS0KPiA+ID4gPiA+ID4gPj4+IHNyYy56aXAKPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnLwo+ID4gY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tPgo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPj4+ID4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtCj4gPiBtYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtCj4gPiA+ID4gPiA+ID4+PiBzcmMudGFyLmd6Cj4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy50YXIuZ3ogc2hhMToKPiA+ID4gPiA+ID4gPj4+IDllYjgyMWYxNTNjNzY2NzE5NGFhMTFjY2QwOTliNwo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPiA+ID4gPj4+ID4gPiA+IGJkMjA1OTU2MGQKPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwOiBzaGExOgo+ID4gPiA+ID4gMTIxZDU0YjA0NTM4MGE4YTQ4OTVlYjEzNzk3MGFiCj4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gNjllNjk4ZWIwZQo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gR2l0IHRhZzoKPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9M0RtYXZlbi5nPQppdDthPTNECj4gPiA+ID4gPiBjb21taXQ7aD0zRAo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPiA+ID4gPj4+ID4gPiA+IDA5NGU0ZTMxYTVhZjU1YmIxN2JlODc2NzVkYTQxZDlhZWNhMDYyZjMKPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IFN0YWdpbmcgc2l0ZToKPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2NvbXBvbmVudHMvcmVmLzMtTEFURVNULwo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBWb3RlIG9wZW4gZm9yIDcyIGhvdXJzLgo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBbIF0gKzEKPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gWyBdICswCj4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IFsgXSAtMQo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBUaGFua3MsCj4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IFN0ZXBoZW4uCj4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gPiA+ID4gPj4+IC0tLS0tLS0tLQo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS49Cm9yZwo+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDoKPiA+IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4gPj4+ID4KPiA+ID4gPiA+ID4gPj4+ID4KPiA+ID4gPiA+ID4gPj4+ID4KPiA+ID4gPiA+ID4gPj4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotLS0KPiA+ID4gPiA+IC0tLS0tLS0tLQo+ID4gPiA+ID4gPiA+Pj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPiA+Pj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiA+ID4+PiA+Cj4gPiA+ID4gPiA+ID4+PiA+IC0tCj4gPiA+ID4gPiA+ID4+PiBTZW50IGZyb20gbXkgcGhvbmUKPiA+ID4gPiA+ID4gPj4+Cj4gPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+Cj4gPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IC0tLS0tLS0tLQo+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+Cj4gPiA+ID4gPgo+ID4gPiA+Cj4gPgo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4KPiA+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQwNjQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIFNlcCAxOSAwNDo1NToxNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwNjQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNjQ2M0RDMDYzCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMTkgU2VwIDIwMTcgMDQ6NTU6MTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzMTE3NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOSBTZXAgMjAxNyAwNDo1NToxNCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzEwOTUgaW52b2tlZCBieSB1aWQgNTAwKTsgMTkgU2VwIDIwMTcgMDQ6NTU6MTMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMTA4MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDE5IFNlcCAyMDE3IDA0OjU1OjEzIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAxOSBTZXAgMjAxNyAwNDo1NToxMyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIERBRjhFMUEzMUI4Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxOSBTZXAgMjAxNyAwNDo1NToxMiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjAyClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjAyIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxLAoJVVJJQkxfQkxPQ0tFRD0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1pZmVkb3JlbmtvLmNvbSBoZWFkZXIuYj1LemZVWFhhdzsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1tZXNzYWdpbmdlbmdpbmUuY29tCgloZWFkZXIuYj1Cb0hJbytvbgpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgY2l6bG1xcjhCeHBrIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVHVlLCAxOSBTZXAgMjAxNyAwNDo1NTowOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBvdXQxLXNtdHAubWVzc2FnaW5nZW5naW5lLmNvbSAob3V0MS1zbXRwLm1lc3NhZ2luZ2VuZ2luZS5jb20gWzY2LjExMS40LjI1XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDM3Nzg3NUZEMUIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDE5IFNlcCAyMDE3IDA0OjU1OjA5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGNvbXB1dGUyLmludGVybmFsIChjb21wdXRlMi5ueWkuaW50ZXJuYWwgWzEwLjIwMi4yLjQyXSkKCWJ5IG1haWxvdXQubnlpLmludGVybmFsIChQb3N0Zml4KSB3aXRoIEVTTVRQIGlkIEEzQzg0MjBBRjcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDE5IFNlcCAyMDE3IDAwOjU1OjA4IC0wNDAwIChFRFQpClJlY2VpdmVkOiBmcm9tIHdlYjIgKFsxMC4yMDIuMi4yMTJdKQogIGJ5IGNvbXB1dGUyLmludGVybmFsIChNRVByb3h5KTsgVHVlLCAxOSBTZXAgMjAxNyAwMDo1NTowOCAtMDQwMApES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOyBkPWlmZWRvcmVua28uY29tOwoJIGg9Y29udGVudC10cmFuc2Zlci1lbmNvZGluZzpjb250ZW50LXR5cGU6ZGF0ZTpmcm9tOmluLXJlcGx5LXRvCgk6bWVzc2FnZS1pZDptaW1lLXZlcnNpb246cmVmZXJlbmNlczpzdWJqZWN0OnRvOngtbWUtc2VuZGVyCgk6eC1tZS1zZW5kZXI6eC1zYXNsLWVuYzsgcz1mbTE7IGJoPVJQcXRYWWo3Uit3dVpLTUwzSkRzZmp5UGNNRTVtCgkzZmsraVNKWkJxYWFIdz07IGI9S3pmVVhYYXdkV3l0Z1B3Z1ByUUtMUytjc2crVm5UMmZVT08wNXhzNnErSkUrCglyMWExSkkra1dYT0dRRG5vdjNOTkMyblN3V25GSTBOMWhMWkxBZ05JWDdZMk52VGJkVDlYN3d0RWZNRmFoQUZqCgk1L2pmN0dNb1E3WnNBNmg2YjlVRDB6aURDK3hzYVQ4MUc4dnFFR2N1blNpZ214ZEtSQTRmbVZwNkIwZWNGQ3g2Cgl2UmQxNU1MUHNPUUJ4QnlYUWhhUk90L3RHZWJxY2xGVmtkb2FLQWdEczgxd1Vpbm03d3h3QVVxMmRkdXdwM2JJCglhdHN5UW5KUzJKbm5yM2ZIK1JqRU95cDhDSzJST2c2dlJsWWpsUDJzRkkybHliejJPZGsyb1kzem9HYzRDSEJQCglyb3pDTWVyejhRVWlBQ2ZpK0wyckR6VGxtbGdsbHB2c3ZSbUVUT09tQT09CkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7IGQ9CgltZXNzYWdpbmdlbmdpbmUuY29tOyBoPWNvbnRlbnQtdHJhbnNmZXItZW5jb2Rpbmc6Y29udGVudC10eXBlCgk6ZGF0ZTpmcm9tOmluLXJlcGx5LXRvOm1lc3NhZ2UtaWQ6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXMKCTpzdWJqZWN0OnRvOngtbWUtc2VuZGVyOngtbWUtc2VuZGVyOngtc2FzbC1lbmM7IHM9Zm0xOyBiaD1SUHF0WFkKCWo3Uit3dVpLTUwzSkRzZmp5UGNNRTVtM2ZrK2lTSlpCcWFhSHc9OyBiPUJvSElvK29uWTJuOUJCMEpmQ3hwdDEKCWZnMlM2YVhyZ3VMWmJDcEtKRFA5cXFlck1xbjJ6RG5qRTRWZFo1ZitaS0FvSWhpLzk3L0drbjl4Qm5PYUxuYjYKCW15OEp6TkFUU2M4Q3NpbmFubVJqazBUNWpuU2VMZkFvTEJQSmtkMmZsWTlsYTVybDEwOTZKM05sdS85MmNwZzEKCS9TUGdFakQ5dHNtZWJPV0FvVDFIVm1XbXdTbUd5V21FTWhoM1FJVllJdUxyRDIzdDlwdmhCeU84NEVOcWVZVWYKCUVWMWlaYTZKaUVJUUhEK2JDZmg1VzFpSVdFRlcrQzVvYnRKeXpMelRTZC9TVko0UnBiYkszQmdOdGl5YW9ZOWYKCUNsRVZxTk4rMVRaNkFUa2JORlJWNjBrL1h1TXlxY040OGV3WVZtZW5NRElWQThUYUtTM0NETnFwa2lwd2xnRkEKCT09ClgtTUUtU2VuZGVyOiA8eG1zOkxLUEFXZENEWUNDZ1FRb2c5M2t4UVp2SDR6UXRNU1lZUWpQWDhTUTZURkwtdmlLVFN0QXhOUT4KUmVjZWl2ZWQ6IGJ5IG1haWx1c2VyLm55aS5pbnRlcm5hbCAoUG9zdGZpeCwgZnJvbSB1c2VyaWQgOTkpCglpZCA2MDcwNTYyNjRFOyBUdWUsIDE5IFNlcCAyMDE3IDAwOjU1OjA4IC0wNDAwIChFRFQpCk1lc3NhZ2UtSWQ6IDwxNTA1Nzk2OTA4LjI1MTY4MDguMTExMDY3MzEyOC42MzVBQzM1RkB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CkZyb206IElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY29tPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9InV0Zi04IgpYLU1haWxlcjogTWVzc2FnaW5nRW5naW5lLmNvbSBXZWJtYWlsIEludGVyZmFjZSAtIGFqYXgtNjRiMDg2OTIKSW4tUmVwbHktVG86IDxDQStuUG5Nd2ZfQmZ0WXVzLXJuUXJPN281K2R1R0Z6MFZFYTdOaW9oRzFfX1lVenJjNXdAbWFpbC5nbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTkgU2VwIDIwMTcgMDA6NTU6MDggLTA0MDAKU3ViamVjdDogUmU6IFVuZGVyc3RhbmRpbmcgTU5HLTYyMDkgKHdhczogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xKQpSZWZlcmVuY2VzOiA8Q0ErblBuTXdNQ3FPX0V0Y0JXNV8zck03MS10Q3JpdHA0VWtzeWZQbURHQVlyNnh6PW9RQG1haWwuZ21haWwuY29tPgogPEYxRjhCM0NGLUREQUMtNDRCQS1BRUI3LTQxMjJDODg3QzRBQkBob250b24ub3JnPgogPENBK25Qbk13Zl9CZnRZdXMtcm5Rck83bzUrZHVHRnowVkVhN05pb2hHMV9fWVV6cmM1d0BtYWlsLmdtYWlsLmNvbT4KClRMO0RSIHlvdXIgdGVzdCBwcm9qZWN0IGV4cG9zZWQgdHdvIGV4aXN0aW5nIGJ1Z3MsIG9uZSBjaGFuZ2UgaW4KYmVoYXZpb3VyIGFuZCBvbmUgcXVpcmsgSSBjYW4ndCBleHBsYWluCgoqIEJ1aWxkIGA8ZXh0ZW5zaW9ucz5gIGFyZSBsb2FkZWQgYnkgdHdvIGNsYXNzbG9hZGVycywgd2hpY2ggaXMgYSBidWcgaW4KRGVmYXVsdFByb2plY3RCdWlsZGluZ0hlbHBlciNjcmVhdGVQcm9qZWN0UmVhbG0gYW5kIGV4cGxhaW5zIHdoeSB5b3Ugc2VlCmV4dGphcjEvZXh0amFyMiBpbiB0aGUgb3V0cHV0CiogQ2xhc3NSZWFsbSBkb2VzIG5vdCBhbGxvdyBzYW1lIGZvcmVpZ24taW1wb3J0IGZyb20gbXVsdGlwbGUKY2xhc3Nsb2FkZXJzLCB3aGljaCBpcyBhIGJ1ZyBhbmQgZXhwbGFpbnMgd2h5IGl0IGlzIG5vdCBwb3NzaWJsZSB0byBsb2FkCnNhbWUgcmVzb3VyY2UgZnJvbSBtdWx0aXBsZSBwbHVnaW5zL2V4dGVuc2lvbnMKKiBUQ0NMIGRvZXMgbm90IGhhdmUgYWNjZXNzIHRvIHByaXZhdGUgKGkuZS4gbm90IGV4cG9ydGVkKSByZXNvdXJjZXMgb2YKdGhpcyBleHRlbnNpb25zIHBsdWdpbiwgd2hpY2ggaXMgYSBjaGFuZ2Ugb2YgYmVoYXZpb3VyIGludHJvZHVjZWQgYnkKbW5nLTYyMDkgZml4CiogQWxzbywgY29tcG9uZW50IGluamVjdGlvbiBvcmRlciBhcHBlYXJzIHRvIGJlIGJhY2t3YXJkcywgYnV0IG1heWJlClN0dWFydCBjYW4gZXhwbGFpbiB3aHkuCgoKQmVsb3cgaXMgbW9yZSBkZXRhaWxlZCBleHBsYW5hdGlvbiBvZiBleHBlY3RlZCBhbmQgb2JzZXJ2ZWQgYmVoYXZpb3VyCgoKIyMgQ29tcG9uZW50IGluamVjdGlvbiBkZXBlbmRzIG9uIHRoZSBjdXJyZW50bHkgcnVubmluZyBwbHVnaW4gYW5kIHRoZQppbmplY3Rpb24gc2l0ZQoKQ3VycmVudGx5IHJ1bm5pbmcgcGx1Z2lucyBoYXZlIGFjY2VzcyB0byB0aGUgZm9sbG93aW5nIGNvbXBvbmVudAppbXBsZW1lbnRhdGlvbnM6CgoqIFJlZ3VsYXIgcGx1Z2luIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50cyBpbXBsZW1lbnRlZCBieSB0aGUgcGx1Z2luLApwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMsIGlmIGFueSAodmlhIHByb2plY3QgY2xhc3MgcmVhbG0gZm9yZWlnbgppbXBvcnQpIGFuZCBNYXZlbiBDb3JlLgoqIEV4dGVuc2lvbiBwbHVnaW4gaGFzIGFjY2VzcyB0byBjb21wb25lbnRzIGltcGxlbWVudGVkIGJ5IHRoZSBwcm9qZWN0CmJ1aWxkIGV4dGVuc2lvbnMgYW5kIE1hdmVuIENvcmUuCiogV2l0aG91dCBhIHJ1bm5pbmcgcGx1Z2luIChlLmcuLCBkdXJpbmcgcHJvamVjdCBkZXBlbmRlbmN5IHJlc29sdXRpb24pLApjb21wb25lbnRzIGltcGxlbWVudGVkIGJ5IHRoZSBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMgYW5kIE1hdmVuIENvcmUKYXJlIGFjY2Vzc2libGUuCgpEaWZmZXJlbnQgaW5qZWN0aW9uIHNpdGVzIGhhdmUgYWNjZXNzIHRvIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50CmludGVyZmFjZXM6CgoqIE1hdmVuIENvcmUgaGFzIGFjY2VzcyB0byBjb21wb25lbnQgaW50ZXJmYWNlcyBkZWZpbmVkIGJ5IHRoZSBjb3JlCml0c2VsZiAob2J2aW91c2x5KQoqIFByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucyBoYXZlIGFjY2VzcyB0byAqKnB1YmxpYyoqIGNvbXBvbmVudAppbnRlcmZhY2VzIGRlZmluZWQgYnkgTWF2ZW4gQ29yZSBhbmQgY29tcG9uZW50IGludGVyZmFjZXMgZGVmaW5lZCBieSB0aGUKYnVpbGQgZXh0ZW5zaW9uIGl0c2VsZiAodGhlcmUgaXMgbm8gd2F5IHRvIGFjY2VzcyBjb21wb25lbnQgaW50ZXJmYWNlcwpkZWZpbmVkIGluIG90aGVyIGV4dGVuc2lvbnMpCiogUmVndWxhciBwbHVnaW5zIGhhdmUgYWNjZXNzIHRvICoqcHVibGljKiogY29tcG9uZW50IGludGVyZmFjZXMgZGVmaW5lZApieSBNYXZlbiBDb3JlLCBjb21wb25lbnQgaW50ZXJmYWNlcyAqKmV4cG9ydGVkKiogYnkgYnVpbGQgZXh0ZW5zaW9ucyBhbmQKY29tcG9uZW50IGludGVyZmFjZXMgZGVmaW5lZCBpbiB0aGUgcGx1Z2luIGl0c2VsZgoKRm9yIGluamVjdGlvbiB0byB3b3JrLCBpbmplY3Rpb24gc2l0ZSBoYXMgdG8gaGF2ZSBhY2Nlc3MgdG8gdGhlCmNvbXBvbmVudCBpbnRlcmZhY2UgYW5kIHRoZSBjb21wb25lbnQgaW1wbGVtZW50YXRpb24gbXVzdCBiZSBhY2Nlc3NpYmxlCnRocm91Z2ggdGhlIGN1cnJlbnQgY29udGV4dC4KCj5Gcm9tIHdoYXQgSSBjYW4gdGVsbCwgaW4geW91ciBleGFtcGxlIGFsbCBwbHVnaW5zIGhhdmUgYWNjZXNzIHRvIHRoZQpyaWdodCBjb21wb25lbnRzIHdoZW4gdXNpbmcgY3VycmVudCAzLjUuMi1TTkFQU0hPVC4gVGhlIGluamVjdGlvbiBvcmRlcgpkb2VzIGFwcGVhciB0byBiZSBiYWNrd2FyZHMgZnJvbSB3aGF0IEkgZXhwZWN0ZWQsIGhvd2V2ZXIuCgoKIyMgUmVzb3VyY2VzIGxvb2t1cCBmdWxseSBkZXBlbmRzIG9uIGNsYXNzcGF0aCB2aXNpYmlsaXR5LCBzcGVjaWZpY2FsbHkKCiogUmVndWxhciBwbHVnaW4gY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byByZXNvdXJjZXMgZnJvbSB0aGUgcGx1Z2luCml0c2VsZiwgZnJvbSAqKmV4cG9ydGVkKiogcGFja2FnZXMgb2YgdGhlIHByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucyBhbmQKKipwdWJsaWMqKiBNYXZlbiBDb3JlIHBhY2thZ2VzCiogRXh0ZW5zaW9ucyBwbHVnaW4gY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byB0aGUgcmVzb3VyY2VzIGZyb20gdGhlCmV4dGVuc2lvbnMgcGx1Z2luIGl0c2VsZiBhbmQgZnJvbSAqKnB1YmxpYyoqIE1hdmVuIENvcmUgcGFja2FnZXMKKiBQcm9qZWN0IGNsYXNzIHJlYWxtIGhhcyBhY2Nlc3MgdG8gY2xhc3NlcyBhbmQgcmVzb3VyY2VzICoqZXhwb3J0ZWQqKgpieSBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMgYW5kICoqcHVibGljKiogTWF2ZW4gQ29yZSBwYWNrYWdlcwoKSSBzZWUgdGhyZWUgcHJvYmxlbXMgaGVyZQoKKiBNYXZlbiBhZGRzIGJ1aWxkIHNpbmdsZS1qYXIgYDxleHRlbnNpb25zPmAgZWxlbWVudHMgZGlyZWN0bHkgdG8KcHJvamVjdCBjbGFzcyByZWFsbSAqKmFuZCoqIGNyZWF0ZXMgc2VwYXJhdGUgZXh0ZW5zaW9ucyBjbGFzcyByZWFsbXMgZm9yCnRoZW0uIFdoaWNoIHJlc3VsdHMgaW4gZHVwbGljYXRlIGNsYXNzZXMvcmVzb3VyY2VzIGxvYWRlZCBieSB0d28KY2xhc3Nsb2FkZXJzIGFuZCBleHBsYWlucyB3aHkgeW91IHNlZSBleHRqYXIxL2V4dGphcjIgb3V0cHV0ICh3aGljaCB5b3UKc2hvdWxkbid0IGFjY29yZGluZyB0byB0aGUgZXhwbGFuYXRpb24gYWJvdmUpCiogQ2xhc3NSZWFsbSBkb2VzIG5vdCBhbGxvdyBmb3JlaWduLWltcG9ydCBvZiB0aGUgc2FtZSBwYWNrYWdlIGZyb20KbXVsdGlwbGUgY2xhc3Nsb2FkZXJzLiBUaGlzIG1ha2VzIGl0IGltcG9zc2libGUgdG8gbG9hZCB0aGUgc2FtZQpyZXNvdXJjZSBmcm9tIG11bHRpcGxlIHBsdWdpbnMvZXh0ZW5zaW9ucy4KKiBFeHRlbnNpb25zIHBsdWdpbnMgY2Fubm90IGFjY2VzcyB0aGVpciBvd24gcHJpdmF0ZSAoaS5lLiBub3QgZXhwb3J0ZWQpCnJlc291cmNlcyB2aWEgVENDTCwgdGhpcyBpcyBjaGFuZ2UgaW4gYmVoYXZpb3VyIGludHJvZHVjZWQgYnkgbW5nLTYyMDkKZml4CgpIb3BlIHRoaXMgaGVscHMKCi0tIApSZWdhcmRzLApJZ29yCgpPbiBNb24sIFNlcCAxOCwgMjAxNywgYXQgMTE6NDYgQU0sIFN0ZXBoZW4gQ29ubm9sbHkgd3JvdGU6Cj4gT2ggaWYgb25seS4uLiB0aGVyZSBpcyBzb21lIHN1YnRsZXRpZXMgZ29pbmcgb24gaGVyZS4KPiAKPiBDbGFzc2VzIGFyZSBtYW5hZ2VkIGJ5IHRoZSAicGxleHVzIiAvICJjbGFzc3dvcmxkcyIgc3R1ZmYsIHNvIHlvdSBjYW5ub3QKPiBvdmVycmlkZSBjb3JlIGNsYXNzZXMgZXRjLgo+IAo+IFRoZSBwcm9ibGVtIGlzIHdoYXQgZXh0ZW5zaW9ucyBhcmUgdmlzaWJsZSBhbmQgZnJvbSB3aGljaCBjbGFzc2xvYWRlcgo+IAo+IE9uIDE4IFNlcHRlbWJlciAyMDE3IGF0IDA4OjQyLCBDaGFybGVzIEhvbnRvbiA8Y2hhc0Bob250b24ub3JnPiB3cm90ZToKPiAKPiA+IEZyb20gYSBzZWN1cml0eSBwZXJzcGVjdGl2ZSwgSSB3b3VsZCBleHBlY3QgdGhhdCBjb3JlIGNsYXNzZXMgY2FuIG5vdCBiZQo+ID4gb3ZlcnJpZGRlbiBieSBleHRlbnNpb25zIG9yIHBsdWdpbnMuICBMaWtld2lzZSwgZXh0ZW5zaW9uIGNsYXNzZXMgY2FuIG5vdAo+ID4gYmUgb3ZlcnJpZGRlbiBieSBwbHVnaW5zLgo+ID4KPiA+IEdpdmVuIHRoZSB1c2UgY2FzZSBvZiBkZWZhdWx0aW5nIHJlc291cmNlcywgSSB3b3VsZCBleHBlY3QgdGhhdCB0aGUgcGx1Z2luCj4gPiByZXNvdXJjZXMgYXJlIGZpcnN0LCBmb2xsb3dlZCBieSBwbHVnaW4gc3BlY2lmaWMgZXh0ZW5zaW9ucywgZm9sbG93ZWQgYnkKPiA+IGdsb2JhbCBleHRlbnNpb25zLCBmaW5hbGx5IGNvcmUgbWF2ZW4uICAoVGhpcyBhbGxvd3MgcmVzb3VyY2VzIHRvIGJlCj4gPiBzcGVjaWFsaXplZC4pCj4gPgo+ID4gcmVnYXJkcywKPiA+IGNoYXMKPiA+Cj4gPiA+IE9uIFNlcCAxOCwgMjAxNywgYXQgMzoyMCBBTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+ID4KPiA+ID4gSG1tbSwgc28gSSBkaWQgc29tZSBleHBlcmltZW50czoKPiA+ID4KPiA+ID4gSWYgeW91IHdhbnQgdG8gcmlkZSBhbG9uZywgdGhlIGV4cGVyaW1lbnRzIGFyZSBhdDoKPiA+ID4KPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoZW5jL21uZy02MjA5Cj4gPiA+Cj4gPiA+IFNvIGJhc2ljYWxseSBJIGhhdmUgYSBwbHVnaW4gdGhhdCBkb2VzIHRocmVlIGRpZmZlcmVudCB0ZXN0czoKPiA+ID4KPiA+ID4gICAgICAgIGdldExvZygpLmluZm8oIkluamVjdGVkIGJ5IEBDb21wb25lbnQ6Iik7Cj4gPiA+ICAgICAgICBmb3IgKExpZmVjeWNsZSBsIDogbGlmZWN5Y2xlcykgewo+ID4gPiAgICAgICAgICAgIGlmIChsLmdldElkKCkuc3RhcnRzV2l0aCgibW5nLTYyMDktIikpIHsKPiA+ID4gICAgICAgICAgICAgICAgZ2V0TG9nKCkuaW5mbygiICAiICsgbC5nZXRJZCgpLnN1YnN0cmluZyg5KSk7Cj4gPiA+ICAgICAgICAgICAgfQo+ID4gPiAgICAgICAgfQo+ID4gPiAgICAgICAgZ2V0TG9nKCkuaW5mbygiIik7Cj4gPiA+ICAgICAgICBnZXRMb2coKS5pbmZvKCJPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOiIpOwo+ID4gPiAgICAgICAgdHJ5IHsKPiA+ID4gICAgICAgICAgICBDbGFzc0xvYWRlciB0Y2NsID0gTGlzdE1vam8uY2xhc3MuZ2V0Q2xhc3NMb2FkZXIoKTsKPiA+ID4gICAgICAgICAgICBmb3IgKFVSTCB1cmwgOgo+ID4gPiBDb2xsZWN0aW9ucy5saXN0KHRjY2wuZ2V0UmVzb3VyY2VzKCJNRVRBLUlORi9wcm9iZS50eHQiKSkpIHsKPiA+ID4gICAgICAgICAgICAgICAgSW5wdXRTdHJlYW0gaXMgPSB1cmwub3BlblN0cmVhbSgpOwo+ID4gPiAgICAgICAgICAgICAgICB0cnkgewo+ID4gPiAgICAgICAgICAgICAgICAgICAgZ2V0TG9nKCkuaW5mbygiICAiICsgSU9VdGlsLnRvU3RyaW5nKGlzKS50cmltKCkpOwo+ID4gPiAgICAgICAgICAgICAgICB9IGZpbmFsbHkgewo+ID4gPiAgICAgICAgICAgICAgICAgICAgaXMuY2xvc2UoKTsKPiA+ID4gICAgICAgICAgICAgICAgfQo+ID4gPiAgICAgICAgICAgIH0KPiA+ID4gICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKPiA+ID4gICAgICAgICAgICB0aHJvdyBuZXcgTW9qb0V4ZWN1dGlvbkV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSwgZSk7Cj4gPiA+ICAgICAgICB9Cj4gPiA+ICAgICAgICBnZXRMb2coKS5pbmZvKCIiKTsKPiA+ID4gICAgICAgIGdldExvZygpLmluZm8oIk9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoiKTsKPiA+ID4gICAgICAgIHRyeSB7Cj4gPiA+ICAgICAgICAgICAgQ2xhc3NMb2FkZXIgdGNjbCA9Cj4gPiA+IFRocmVhZC5jdXJyZW50VGhyZWFkKCkuZ2V0Q29udGV4dENsYXNzTG9hZGVyKCk7Cj4gPiA+ICAgICAgICAgICAgZm9yIChVUkwgdXJsIDoKPiA+ID4gQ29sbGVjdGlvbnMubGlzdCh0Y2NsLmdldFJlc291cmNlcygiTUVUQS1JTkYvcHJvYmUudHh0IikpKSB7Cj4gPiA+ICAgICAgICAgICAgICAgIElucHV0U3RyZWFtIGlzID0gdXJsLm9wZW5TdHJlYW0oKTsKPiA+ID4gICAgICAgICAgICAgICAgdHJ5IHsKPiA+ID4gICAgICAgICAgICAgICAgICAgIGdldExvZygpLmluZm8oIiAgIiArIElPVXRpbC50b1N0cmluZyhpcykudHJpbSgpKTsKPiA+ID4gICAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKPiA+ID4gICAgICAgICAgICAgICAgICAgIGlzLmNsb3NlKCk7Cj4gPiA+ICAgICAgICAgICAgICAgIH0KPiA+ID4gICAgICAgICAgICB9Cj4gPiA+ICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7Cj4gPiA+ICAgICAgICAgICAgdGhyb3cgbmV3IE1vam9FeGVjdXRpb25FeGNlcHRpb24oZS5nZXRNZXNzYWdlKCksIGUpOwo+ID4gPiAgICAgICAgfQo+ID4gPgo+ID4gPgo+ID4gPiBGaXJzdCBvZmYsIEkgaGlqYWNrIHRoZSBAQ29tcG9uZW50IGluamVjdGlvbiB3aXRoIHNvbWUgZmFrZSAibGlmZWN5Y2xlcyIKPiA+IHRvCj4gPiA+IHNlZSB3aGF0ICJwbGV4dXMiIGV4cG9zZXMgdG8gdGhlIHBsdWdpbnMuCj4gPiA+Cj4gPiA+IFNlY29uZCwgSSBsb29rIGF0IHRoZSByZXNvdXJjZXMgdmlzaWJsZSBmcm9tIHRoZSBwbHVnaW4ncyBjbGFzc2xvYWRlci4KPiA+ID4KPiA+ID4gRmluYWxseSwgSSBsb29rIGF0IHRoZSByZXNvdXJjZXMgdmlzaWJsZSBmcm9tIHRoZSBUQ0NMLgo+ID4gPgo+ID4gPiBIZXJlJ3Mgd2hhdCAzLjUuMCBvdXRwdXRzOgo+ID4gPgo+ID4gPiBbSU5GT10KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFtJTkZPXSBCdWlsZGluZyBCb3RoIGV4dGVuc2lvbnMuIE9yZGVyOiBwbHVnaW4xLCBwbHVnaW4yIDEuMC1TTkFQU0hPVAo+ID4gPiBbSU5GT10KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFtJTkZPXQo+ID4gPiBbSU5GT10gLS0tIHBsdWdpbjE6MS4wLVNOQVBTSE9UOmxpc3QgKGRlZmF1bHQpIEAgcHJvYmUxIC0tLQo+ID4gPiBbSU5GT10gSW5qZWN0ZWQgYnkgQENvbXBvbmVudDoKPiA+ID4gW0lORk9dICAgcGx1Z2luMQo+ID4gPiBbSU5GT10KPiA+ID4gW0lORk9dIE9uIFBsdWdpbiBDbGFzcyBMb2FkZXI6Cj4gPiA+IFtJTkZPXSAgIHBsdWdpbjEKPiA+ID4gW0lORk9dCj4gPiA+IFtJTkZPXSBPbiBUaHJlYWQgQ29udGV4dCBDbGFzcyBMb2FkZXI6Cj4gPiA+IFtJTkZPXSAgIHBsdWdpbjEKPiA+ID4gW0lORk9dCj4gPiA+IFtJTkZPXSAtLS0gcGx1Z2luMjoxLjAtU05BUFNIT1Q6bGlzdCAoZGVmYXVsdCkgQCBwcm9iZTEgLS0tCj4gPiA+IFtJTkZPXSBJbmplY3RlZCBieSBAQ29tcG9uZW50Ogo+ID4gPiBbSU5GT10gICBwbHVnaW4yCj4gPiA+IFtJTkZPXQo+ID4gPiBbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKPiA+ID4gW0lORk9dICAgcGx1Z2luMgo+ID4gPiBbSU5GT10KPiA+ID4gW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKPiA+ID4gW0lORk9dICAgcGx1Z2luMgo+ID4gPiBbSU5GT10KPiA+ID4gW0lORk9dCj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiBbSU5GT10gQnVpbGRpbmcgT25seSBwbHVnaW4xIGV4dGVuc2lvbnMuIE9yZGVyOiBwbHVnaW4xLCBwbHVnaW4yCj4gPiA+IDEuMC1TTkFQU0hPVAo+ID4gPiBbSU5GT10KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFtJTkZPXQo+ID4gPiBbSU5GT10gLS0tIHBsdWdpbjE6MS4wLVNOQVBTSE9UOmxpc3QgKGRlZmF1bHQpIEAgcHJvYmUyIC0tLQo+ID4gPiBbSU5GT10gSW5qZWN0ZWQgYnkgQENvbXBvbmVudDoKPiA+ID4gW0lORk9dICAgcGx1Z2luMQo+ID4gPiBbSU5GT10KPiA+ID4gW0lORk9dIE9uIFBsdWdpbiBDbGFzcyBMb2FkZXI6Cj4gPiA+IFtJTkZPXSAgIHBsdWdpbjEKPiA+ID4gW0lORk9dCj4gPiA+IFtJTkZPXSBPbiBUaHJlYWQgQ29udGV4dCBDbGFzcyBMb2FkZXI6Cj4gPiA+IFtJTkZPXSAgIHBsdWdpbjEKPiA+ID4gW0lORk9dCj4gPiA+IFtJTkZPXSAtLS0gcGx1Z2luMjoxLjAtU05BUFNIT1Q6bGlzdCAoZGVmYXVsdCkgQCBwcm9iZTIgLS0tCj4gPiA+IFtJTkZPXSBJbmplY3RlZCBieSBAQ29tcG9uZW50Ogo+ID4gPiBbSU5GT10gICBwbHVnaW4yCj4gPiA+IFtJTkZPXSAgIHBsdWdpbjEKPiA+ID4gW0lORk9dICAgZXh0amFyMgo+ID4gPiBbSU5GT10gICBleHRqYXIxCj4gPiA+IFtJTkZPXQo+ID4gPiBbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKPiA+ID4gW0lORk9dICAgcGx1Z2luMgo+ID4gPiBbSU5GT10gICBleHRqYXIyCj4gPiA+IFtJTkZPXSAgIGV4dGphcjEKPiA+ID4gW0lORk9dCj4gPiA+IFtJTkZPXSBPbiBUaHJlYWQgQ29udGV4dCBDbGFzcyBMb2FkZXI6Cj4gPiA+IFtJTkZPXSAgIHBsdWdpbjIKPiA+ID4gW0lORk9dICAgZXh0amFyMgo+ID4gPiBbSU5GT10gICBleHRqYXIxCj4gPiA+IFtJTkZPXQo+ID4gPiBbSU5GT10KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFtJTkZPXSBCdWlsZGluZyBCb3RoIGV4dGVuc2lvbnMuIE9yZGVyOiBwbHVnaW4yLCBwbHVnaW4xIDEuMC1TTkFQU0hPVAo+ID4gPiBbSU5GT10KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFtJTkZPXQo+ID4gPiBbSU5GT10gLS0tIHBsdWdpbjI6MS4wLVNOQVBTSE9UOmxpc3QgKGRlZmF1bHQpIEAgcHJvYmUzIC0tLQo+ID4gPiBbSU5GT10gSW5qZWN0ZWQgYnkgQENvbXBvbmVudDoKPiA+ID4gW0lORk9dICAgcGx1Z2luMgo+ID4gPiBbSU5GT10KPiA+ID4gW0lORk9dIE9uIFBsdWdpbiBDbGFzcyBMb2FkZXI6Cj4gPiA+IFtJTkZPXSAgIHBsdWdpbjIKPiA+ID4gW0lORk9dCj4gPiA+IFtJTkZPXSBPbiBUaHJlYWQgQ29udGV4dCBDbGFzcyBMb2FkZXI6Cj4gPiA+IFtJTkZPXSAgIHBsdWdpbjIKPiA+ID4gW0lORk9dCj4gPiA+IFtJTkZPXSAtLS0gcGx1Z2luMToxLjAtU05BUFNIT1Q6bGlzdCAoZGVmYXVsdCkgQCBwcm9iZTMgLS0tCj4gPiA+IFtJTkZPXSBJbmplY3RlZCBieSBAQ29tcG9uZW50Ogo+ID4gPiBbSU5GT10gICBwbHVnaW4xCj4gPiA+IFtJTkZPXQo+ID4gPiBbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKPiA+ID4gW0lORk9dICAgcGx1Z2luMQo+ID4gPiBbSU5GT10KPiA+ID4gW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKPiA+ID4gW0lORk9dICAgcGx1Z2luMQo+ID4gPiBbSU5GT10KPiA+ID4gW0lORk9dCj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiBbSU5GT10gQnVpbGRpbmcgQm90aCBleHRlbnNpb25zLiBPcmRlcjogcGx1Z2luMSwgcGx1Z2luMi4gRXh0cmEKPiA+IGRlcGVuZGVuY3kKPiA+ID4gaW4gcGx1Z2luMSAxLjAtU05BUFNIT1QKPiA+ID4gW0lORk9dCj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiBbSU5GT10KPiA+ID4gW0lORk9dIC0tLSBwbHVnaW4xOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlNCAtLS0KPiA+ID4gW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6Cj4gPiA+IFtJTkZPXSAgIGV4dGphcjIKPiA+ID4gW0lORk9dICAgcGx1Z2luMQo+ID4gPiBbSU5GT10KPiA+ID4gW0lORk9dIE9uIFBsdWdpbiBDbGFzcyBMb2FkZXI6Cj4gPiA+IFtJTkZPXSAgIHBsdWdpbjEKPiA+ID4gW0lORk9dICAgZXh0amFyMgo+ID4gPiBbSU5GT10KPiA+ID4gW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKPiA+ID4gW0lORk9dICAgcGx1Z2luMQo+ID4gPiBbSU5GT10gICBleHRqYXIyCj4gPiA+IFtJTkZPXQo+ID4gPiBbSU5GT10gLS0tIHBsdWdpbjI6MS4wLVNOQVBTSE9UOmxpc3QgKGRlZmF1bHQpIEAgcHJvYmU0IC0tLQo+ID4gPiBbSU5GT10gSW5qZWN0ZWQgYnkgQENvbXBvbmVudDoKPiA+ID4gW0lORk9dICAgcGx1Z2luMgo+ID4gPiBbSU5GT10KPiA+ID4gW0lORk9dIE9uIFBsdWdpbiBDbGFzcyBMb2FkZXI6Cj4gPiA+IFtJTkZPXSAgIHBsdWdpbjIKPiA+ID4gW0lORk9dCj4gPiA+IFtJTkZPXSBPbiBUaHJlYWQgQ29udGV4dCBDbGFzcyBMb2FkZXI6Cj4gPiA+IFtJTkZPXSAgIHBsdWdpbjIKPiA+ID4gW0lORk9dCj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPgo+ID4gPiBOb3cgaWYgd2UgcnVuIHdpdGggMy41LjEgKHdoaWNoIGNvbnRhaW5zIHRoZSBmaXggZm9yIE1ORy02MjA5KQo+ID4gPgo+ID4gPiBbSU5GT10KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFtJTkZPXSBCdWlsZGluZyBCb3RoIGV4dGVuc2lvbnMuIE9yZGVyOiBwbHVnaW4xLCBwbHVnaW4yIDEuMC1TTkFQU0hPVAo+ID4gPiBbSU5GT10KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFtJTkZPXQo+ID4gPiBbSU5GT10gLS0tIHBsdWdpbjE6MS4wLVNOQVBTSE9UOmxpc3QgKGRlZmF1bHQpIEAgcHJvYmUxIC0tLQo+ID4gPiBbSU5GT10gSW5qZWN0ZWQgYnkgQENvbXBvbmVudDoKPiA+ID4gW0lORk9dICAgcGx1Z2luMgo+ID4gPiBbSU5GT10gICBwbHVnaW4xCj4gPiA+IFtJTkZPXSAgIGV4dGphcjIKPiA+ID4gW0lORk9dICAgZXh0amFyMQo+ID4gPgo+ID4gPiBJIHdvdWxkIGhhdmUgZXhwZWN0ZWQgdGhlIHNlcXVlbmNlIHRvIGJlOiAvYnVpbGQvZXh0ZW5zaW9ucyBpbiBwb20gb3JkZXIKPiA+ID4gZm9sbG93ZWQgYnkgL2J1aWxkL3BsdWdpbnMvcGx1Z2luW2V4dGVuc2lvbnM9dHJ1ZV0gaW4gcG9tIG9yZGVyLiBUaGlzCj4gPiBzZWVtcwo+ID4gPiB0byBiZSB0aGUgcmV2ZXJzZSBvcmRlci4gSXMgdGhpcyBhIGJ1Zz8KPiA+ID4KPiA+ID4gW0lORk9dCj4gPiA+IFtJTkZPXSBPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOgo+ID4gPiBbSU5GT10gICBwbHVnaW4xCj4gPiA+Cj4gPiA+IFdlIGhhdmVuJ3QgY2hhbmdlZCBob3cgdGhlIHBsdWdpbiBjbGFzc2xvYWRlciBnZXRzIGluc3RhbnRpYXRlZCBpbgo+ID4gPiBNTkctNjIwOS4gSXQgc2VlbXMgc3RyYW5nZSB0byBtZSB0aGF0IHRoaXMgZXhjbHVkZXMgdGhlCj4gPiA+IC9idWlsZC9leHRlbnNpb25zLi4uIG9uIHRoZSBvdGhlciBoYW5kIHRoaXMgY291bGQgYmUgYSBzaWRlLWVmZmVjdCBvZiBob3cKPiA+ID4gdGhlIGNsYXNzbG9hZGVyIGdldHMgaW5zdGFudGlhdGVkICh3aGljaCB3b3VsZCBtZWFuIHVzaW5nIHRoZSBwbHVnaW4ncwo+ID4gPiBjbGFzc2xvYWRlciBpcyBwcm9iYWJseSBhIGJhZCBpZGVhLCBwZXJoYXBzIHdlIG5lZWQgdG8gcHJvdmlkZSB0aGUKPiA+IGFiaWxpdHkKPiA+ID4gdG8gaW5qZWN0IHRoZSBjbGFzc2xvYWRlciBhcyBhIEBDb21wb25lbnQgb3Igc29tZXRoaW5nKQo+ID4gPgo+ID4gPiBbSU5GT10KPiA+ID4gW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKPiA+ID4gW0lORk9dICAgZXh0amFyMQo+ID4gPiBbSU5GT10gICBleHRqYXIyCj4gPiA+Cj4gPiA+IE9LLCB3ZSBzZWUgdGhlIGNoYW5nZSB2cyAzLjUuMCBhcyB0aGlzIGlzIG5vdyB0aGUgcHJvamVjdCByZWFsbS4uLgo+ID4gdGhvdWdoIEkKPiA+ID4gd291bGQgaGF2ZSBleHBlY3RlZCB0aGUgcHJvamVjdCByZWFsbSB0byBhbHNvIGluY2x1ZGUgdGhlIHBsdWdpbnMgdGhhdAo+ID4gd2VyZQo+ID4gPiBtYXJrZWQgYXMgZXh0ZW5zaW9ucy4uLgo+ID4gPgo+ID4gPiBbSU5GT10KPiA+ID4gW0lORk9dIC0tLSBwbHVnaW4yOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlMSAtLS0KPiA+ID4gW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6Cj4gPiA+IFtJTkZPXSAgIHBsdWdpbjIKPiA+ID4gW0lORk9dICAgcGx1Z2luMQo+ID4gPiBbSU5GT10gICBleHRqYXIyCj4gPiA+IFtJTkZPXSAgIGV4dGphcjEKPiA+ID4gW0lORk9dCj4gPiA+IFtJTkZPXSBPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOgo+ID4gPiBbSU5GT10gICBwbHVnaW4yCj4gPiA+IFtJTkZPXQo+ID4gPiBbSU5GT10gT24gVGhyZWFkIENvbnRleHQgQ2xhc3MgTG9hZGVyOgo+ID4gPiBbSU5GT10gICBleHRqYXIxCj4gPiA+IFtJTkZPXSAgIGV4dGphcjIKPiA+ID4gW0lORk9dCj4gPiA+IFtJTkZPXQo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gW0lORk9dIEJ1aWxkaW5nIE9ubHkgcGx1Z2luMSBleHRlbnNpb25zLiBPcmRlcjogcGx1Z2luMSwgcGx1Z2luMgo+ID4gPiAxLjAtU05BUFNIT1QKPiA+ID4gW0lORk9dCj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiBbSU5GT10KPiA+ID4gW0lORk9dIC0tLSBwbHVnaW4xOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlMiAtLS0KPiA+ID4gW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6Cj4gPiA+IFtJTkZPXSAgIHBsdWdpbjEKPiA+ID4gW0lORk9dICAgZXh0amFyMgo+ID4gPiBbSU5GT10gICBleHRqYXIxCj4gPiA+Cj4gPiA+IEFzIGV4cGVjdGVkLCBnaXZlbiB0aGF0IHBsdWdpbjIgaXMgbm90IGFuIGV4dGVuc2lvbiBoZXJlIChhcGFydCBmcm9tIHRoZQo+ID4gPiBvcmRlciBiZWluZyByZXZlcnNlIG9mIHdoYXQgSSBleHBlY3QpCj4gPiA+Cj4gPiA+IFtJTkZPXQo+ID4gPiBbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKPiA+ID4gW0lORk9dICAgcGx1Z2luMQo+ID4gPiBbSU5GT10KPiA+ID4gW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKPiA+ID4gW0lORk9dICAgZXh0amFyMgo+ID4gPiBbSU5GT10gICBleHRqYXIxCj4gPiA+IFtJTkZPXQo+ID4gPiBbSU5GT10gLS0tIHBsdWdpbjI6MS4wLVNOQVBTSE9UOmxpc3QgKGRlZmF1bHQpIEAgcHJvYmUyIC0tLQo+ID4gPiBbSU5GT10gSW5qZWN0ZWQgYnkgQENvbXBvbmVudDoKPiA+ID4gW0lORk9dICAgcGx1Z2luMgo+ID4gPiBbSU5GT10gICBwbHVnaW4xCj4gPiA+IFtJTkZPXSAgIGV4dGphcjIKPiA+ID4gW0lORk9dICAgZXh0amFyMQo+ID4gPgo+ID4gPiBBcyBleHBlY3RlZCAobW9kdWxvIG9yZGVyKSBiZWNhdXNlIGEgcGx1Z2luIHNob3VsZCBzZWUgYW55IHNlbGYtZGVmaW5lZAo+ID4gPiBleHRlbnNpb25zLiBJIHdvdWxkIGV4cGVjdCB0aGUgb3JkZXIgdG8gYmUgcGx1Z2luMiwgZXh0amFyMSwgZXh0amFyMiwKPiA+ID4gcGx1Z2luMSAoYmVjYXVzZSB0aGUgcGx1Z2luIGlzIG5vdCBhbiBleHRlbnNpb24sIGl0IHNob3VsZCBoYXZlIGl0cwo+ID4gPiBleHRlbnNpb25zIGFzIHByaW9yaXR5IG92ZXIgdGhlIHByb2plY3QgcmVhbG1zJ3MpCj4gPiA+Cj4gPiA+IFtJTkZPXQo+ID4gPiBbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKPiA+ID4gW0lORk9dICAgcGx1Z2luMgo+ID4gPiBbSU5GT10gICBleHRqYXIyCj4gPiA+IFtJTkZPXSAgIGV4dGphcjEKPiA+ID4KPiA+ID4gV0FUISBvaywgdGhpcyBJIGRvIG5vdCB1bmRlcnN0YW5kLiBTb21ldGhpbmcgaXMgd3Jvbmcgc29tZXdoZXJlLCBlaXRoZXIKPiA+ID4gcGx1Z2luMSdzIGNsYXNzbG9hZGVyIHNob3VsZCBhbHNvIGluY2x1ZGUgZXh0amFyMiBhbmQgZXh0amFyMSBvciB0aGlzIG9uZQo+ID4gPiBzaG91bGRuJ3QuIEFuZCBzaW5jZSB3ZSBoYXZlIGV4dGphcjEgYW5kIGV4dGphcjIgd2hlcmUgaXMgcGx1Z2luMT8gKGlmCj4gPiB0aGUKPiA+ID4gaW5jbHVzaW9uIGlzIGNvcnJlY3QgaGVyZSBJIGV4cGVjdCBwbHVnaW4yLCBleHRqYXIxLCBleHRqYXIyLCBwbHVnaW4xIGFzCj4gPiBhCj4gPiA+IHBsdWdpbiB0aGF0IGlzIG5vdCBhbiBleHRlbnNpb24gcGx1Z2luIHNob3VsZCBoYXZlIGl0cyBvd24gaW1wbGVtZW50YXRpb24KPiA+ID4gZmlyc3QgZm9sbG93ZWQgdGhlbiBieSAvYnVpbGQvZXh0ZW5zaW9ucyBpbiBwb20gb3JkZXIgYW5kIHRoZW4KPiA+ID4gL2J1aWxkL3BsdWdpbnMvcGx1Z2luW2V4dGVuc2lvbj09dHJ1ZV0KPiA+ID4KPiA+ID4gVGhpcyBpcyBtYWtpbmcgbm8gc2Vuc2UgYXQgYWxsIQo+ID4gPgo+ID4gPiBbSU5GT10KPiA+ID4gW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKPiA+ID4gW0lORk9dICAgcGx1Z2luMgo+ID4gPiBbSU5GT10gICBleHRqYXIyCj4gPiA+IFtJTkZPXSAgIGV4dGphcjEKPiA+ID4KPiA+ID4gU28gVENDTCBpcyB0aGUgcGx1Z2luIGNsYXNzbG9hZGVyIGhlcmUgYXMgZXhwZWN0ZWQKPiA+ID4KPiA+ID4gW0lORk9dCj4gPiA+IFtJTkZPXQo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gW0lORk9dIEJ1aWxkaW5nIEJvdGggZXh0ZW5zaW9ucy4gT3JkZXI6IHBsdWdpbjIsIHBsdWdpbjEgMS4wLVNOQVBTSE9UCj4gPiA+IFtJTkZPXQo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gW0lORk9dCj4gPiA+IFtJTkZPXSAtLS0gcGx1Z2luMjoxLjAtU05BUFNIT1Q6bGlzdCAoZGVmYXVsdCkgQCBwcm9iZTMgLS0tCj4gPiA+IFtJTkZPXSBJbmplY3RlZCBieSBAQ29tcG9uZW50Ogo+ID4gPiBbSU5GT10gICBwbHVnaW4yCj4gPiA+IFtJTkZPXSAgIHBsdWdpbjEKPiA+ID4gW0lORk9dICAgZXh0amFyMgo+ID4gPiBbSU5GT10gICBleHRqYXIxCj4gPiA+Cj4gPiA+IEkgbm90ZSB0aGF0IHRoZSBjaGFuZ2UgaW4gcG9tIG9yZGVyIGhhcyBoYWQgbm8gZWZmZWN0IG9uIHRoZSBjb21wb25lbnQKPiA+ID4gc2VxdWVuY2UuIFRoaXMgbGVhZHMgbWUgdG8gc3VzcGVjdCB0aGF0IHBsZXh1cyBoYXMgc29tZSBydWxlIHRoYXQgaXMKPiA+ID4gZGVmaW5pbmcgdGhlIHNlcXVlbmNpbmcuLi4gaXQgd291bGQgYmUgZ29vZCBpZiB3ZSBjb3VsZCBkb2N1bWVudCB0aGF0Cj4gPiA+IHNvbWV3aGVyZS4uLgo+ID4gPgo+ID4gPiBbSU5GT10KPiA+ID4gW0lORk9dIE9uIFBsdWdpbiBDbGFzcyBMb2FkZXI6Cj4gPiA+IFtJTkZPXSAgIHBsdWdpbjIKPiA+ID4gW0lORk9dCj4gPiA+IFtJTkZPXSBPbiBUaHJlYWQgQ29udGV4dCBDbGFzcyBMb2FkZXI6Cj4gPiA+IFtJTkZPXSAgIGV4dGphcjIKPiA+ID4gW0lORk9dICAgZXh0amFyMQo+ID4gPiBbSU5GT10KPiA+ID4gW0lORk9dIC0tLSBwbHVnaW4xOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlMyAtLS0KPiA+ID4gW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6Cj4gPiA+IFtJTkZPXSAgIHBsdWdpbjIKPiA+ID4gW0lORk9dICAgcGx1Z2luMQo+ID4gPiBbSU5GT10gICBleHRqYXIyCj4gPiA+IFtJTkZPXSAgIGV4dGphcjEKPiA+ID4gW0lORk9dCj4gPiA+IFtJTkZPXSBPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOgo+ID4gPiBbSU5GT10gICBwbHVnaW4xCj4gPiA+IFtJTkZPXQo+ID4gPiBbSU5GT10gT24gVGhyZWFkIENvbnRleHQgQ2xhc3MgTG9hZGVyOgo+ID4gPiBbSU5GT10gICBleHRqYXIyCj4gPiA+IFtJTkZPXSAgIGV4dGphcjEKPiA+ID4gW0lORk9dCj4gPiA+IFtJTkZPXQo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gW0lORk9dIEJ1aWxkaW5nIEJvdGggZXh0ZW5zaW9ucy4gT3JkZXI6IHBsdWdpbjEsIHBsdWdpbjIuIEV4dHJhCj4gPiBkZXBlbmRlbmN5Cj4gPiA+IGluIHBsdWdpbjEgMS4wLVNOQVBTSE9UCj4gPiA+IFtJTkZPXQo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gW0lORk9dCj4gPiA+IFtJTkZPXSAtLS0gcGx1Z2luMToxLjAtU05BUFNIT1Q6bGlzdCAoZGVmYXVsdCkgQCBwcm9iZTQgLS0tCj4gPiA+IFtJTkZPXSBJbmplY3RlZCBieSBAQ29tcG9uZW50Ogo+ID4gPiBbSU5GT10gICBwbHVnaW4xCj4gPiA+IFtJTkZPXSAgIGV4dGphcjIKPiA+ID4gW0lORk9dICAgcGx1Z2luMgo+ID4gPiBbSU5GT10gICBleHRqYXIyCj4gPiA+IFtJTkZPXSAgIGV4dGphcjEKPiA+ID4KPiA+ID4gV0FUISBzZWVtcyB0aGF0IEBDb21wb25lbnQgaXMgc29tZXdoYXQgaW4gcmFuZG9tIG9yZGVyLCBpbiB0aGlzIGNhc2Ugd2UKPiA+ID4gaGF2ZSBtb2RpZmllZCB0aGUgZGVwZW5kZW5jaWVzIGlmIHBsdWdpbjEgdG8gYWxzbyBpbmNsdWRlIGV4dGphcjIsIHRoZQo+ID4gPiBvcmRlciBJIHdvdWxkIGV4cGVjdCBpczoKPiA+ID4KPiA+ID4gZXh0amFyMSwgZXh0amFyMiwgcGx1Z2luMSwgZXh0amFyMiwgcGx1Z2luMgo+ID4gPgo+ID4gPiBHaXZlbiB0aGUgcHJldmlvdXMgZXhlY3V0aW9ucyBhbmQgdGhlIGZhY3QgdGhhdCBjaGFuZ2luZyB0aGUgc2VxdWVuY2Ugb2YKPiA+ID4gcGx1Z2luMSBhbmQgcGx1Z2luMiBpbiB0aGUgcG9tIGRpZCBub3QgYWZmZWN0IHRoZSBwcmV2aW91cyBleGVjdXRpb25zLCBpZgo+ID4gPiBwbGV4dXMgaGFkIGEgZGV0ZXJtaW5pc3RpYyBvcmRlcmluZyB0aGVuIEkgd291bGQgaGF2ZSBiZWVuIHNvbWV3aGF0IE9LCj4gPiB3aXRoOgo+ID4gPgo+ID4gPiBwbHVnaW4yLCBwbHVnaW4xLCBleHRqYXIyLCBleHRqYXIyLCBleHRqYXIxCj4gPiA+Cj4gPiA+IEJ1dCB0aGlzIHNlZW1zIHRvIHN1Z2dlc3QgdGhhdCB3ZSBoYXZlIGEgY29tcGxldGVseSBub24tZGV0ZXJtaW5pc3RpYwo+ID4gPiBvcmRlcmluZy4uLiB0aGF0IGlzIG5vdCBnb29kIGZvciByZXByb2R1Y2libGUgYnVpbGRzLi4uCj4gPiA+Cj4gPiA+IFtJTkZPXQo+ID4gPiBbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKPiA+ID4gW0lORk9dICAgcGx1Z2luMQo+ID4gPiBbSU5GT10gICBleHRqYXIyCj4gPiA+Cj4gPiA+IE5vdyB3ZSBzZWUgZXh0amFyMiBidXQgb25seSBiZWNhdXNlIGl0IGhhcyBiZWVuIGV4cGxpY2l0bHkgYWRkZWQgdG8gdGhlCj4gPiA+IHBsdWdpbnMgZGVwZW5kZW5jaWVzLCBJTUhPIGl0IHNob3VsZCBiZSBoZXJlIHR3aWNlLCBlLmcuCj4gPiA+Cj4gPiA+IGV4dGphcjEsIGV4dGphcjIsIHBsdWdpbjEsIGV4dGphcjIsIHBsdWdpbjIKPiA+ID4KPiA+ID4gQnV0IGl0IHNlZW1zIGFjY2VwdGFibGUgaWYgdGhpcyBpcyBpbnN0ZWFkIHBsdWdpbjEsIGV4dGphcjIgKHRob3VnaCBpdAo+ID4gPiBtYWtlcyB0aGUgcGx1Z2luIGNsYXNzbG9hZGVyIHVzZWxlc3MgZm9yIGRpc2NvdmVyeSkKPiA+ID4KPiA+ID4gW0lORk9dCj4gPiA+IFtJTkZPXSBPbiBUaHJlYWQgQ29udGV4dCBDbGFzcyBMb2FkZXI6Cj4gPiA+IFtJTkZPXSAgIGV4dGphcjEKPiA+ID4gW0lORk9dICAgZXh0amFyMgo+ID4gPiBbSU5GT10KPiA+ID4gW0lORk9dIC0tLSBwbHVnaW4yOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlNCAtLS0KPiA+ID4gW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6Cj4gPiA+IFtJTkZPXSAgIHBsdWdpbjEKPiA+ID4gW0lORk9dICAgZXh0amFyMgo+ID4gPiBbSU5GT10gICBwbHVnaW4yCj4gPiA+IFtJTkZPXSAgIGV4dGphcjIKPiA+ID4gW0lORk9dICAgZXh0amFyMQo+ID4gPiBbSU5GT10KPiA+ID4gW0lORk9dIE9uIFBsdWdpbiBDbGFzcyBMb2FkZXI6Cj4gPiA+IFtJTkZPXSAgIHBsdWdpbjIKPiA+ID4gW0lORk9dCj4gPiA+IFtJTkZPXSBPbiBUaHJlYWQgQ29udGV4dCBDbGFzcyBMb2FkZXI6Cj4gPiA+IFtJTkZPXSAgIGV4dGphcjEKPiA+ID4gW0lORk9dICAgZXh0amFyMgo+ID4gPiBbSU5GT10KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+Cj4gPgo+ID4KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Cj4gPgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MDY5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBTZXAgMTkgMjA6Mzk6MDQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDY5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEI3MzZEQ0IxMwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDE5IFNlcCAyMDE3IDIwOjM5OjA0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjkzNTIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTkgU2VwIDIwMTcgMjA6Mzk6MDQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI5MjgwIGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IFNlcCAyMDE3IDIwOjM5OjA0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjkyNjQgaW52b2tlZCBieSB1aWQgOTkpOyAxOSBTZXAgMjAxNyAyMDozOTowMyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMTkgU2VwIDIwMTcgMjA6Mzk6MDMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA4MDBDRDE4NEE2RgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTkgU2VwIDIwMTcgMjA6Mzk6MDMgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4wMgpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC4wMiB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUtBTV9BU0NJSV9ESVZJREVSUz0wLjgsIFJDVkRfSU5fRE5TV0xfTE9XPS0wLjcsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFNQRl9QQVNTPS0wLjAwMSwKCVVSSUJMX0JMT0NLRUQ9MC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9aWZlZG9yZW5rby5jb20gaGVhZGVyLmI9MVZFa2M4K2g7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9bWVzc2FnaW5nZW5naW5lLmNvbQoJaGVhZGVyLmI9cFJjTEhJa1oKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBUWms2dnNKVlNGVW8gZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUdWUsIDE5IFNlcCAyMDE3IDIwOjM5OjAxICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG91dDEtc210cC5tZXNzYWdpbmdlbmdpbmUuY29tIChvdXQxLXNtdHAubWVzc2FnaW5nZW5naW5lLmNvbSBbNjYuMTExLjQuMjVdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgM0I0NDM1RkU2QgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTkgU2VwIDIwMTcgMjA6Mzk6MDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gY29tcHV0ZTIuaW50ZXJuYWwgKGNvbXB1dGUyLm55aS5pbnRlcm5hbCBbMTAuMjAyLjIuNDJdKQoJYnkgbWFpbG91dC5ueWkuaW50ZXJuYWwgKFBvc3RmaXgpIHdpdGggRVNNVFAgaWQgM0Y4MjMyMERGOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTkgU2VwIDIwMTcgMTY6Mzk6MDAgLTA0MDAgKEVEVCkKUmVjZWl2ZWQ6IGZyb20gd2ViMiAoWzEwLjIwMi4yLjIxMl0pCiAgYnkgY29tcHV0ZTIuaW50ZXJuYWwgKE1FUHJveHkpOyBUdWUsIDE5IFNlcCAyMDE3IDE2OjM5OjAwIC0wNDAwCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7IGQ9aWZlZG9yZW5rby5jb207CgkgaD1jb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOmNvbnRlbnQtdHlwZTpkYXRlOmZyb206aW4tcmVwbHktdG8KCTptZXNzYWdlLWlkOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOnN1YmplY3Q6dG86eC1tZS1zZW5kZXIKCTp4LW1lLXNlbmRlcjp4LXNhc2wtZW5jOyBzPWZtMTsgYmg9QkFjOVBqZWVMTkNMZUYySXFtRHVSZmp5eTczVmgKCU5TN1ByMmw1WXprQTlJPTsgYj0xVkVrYzgraGhvcmZPMFhSb3hFdXVybU1uZmNJaGN5ckhIeVptaVNGcWNyejAKCVVqQ0x1RHIvWlJTRjArUWkyc3hYdDEvZEl0c3dtR056bmtQTmEvU3JCbDg0UUcxMjBxZ2NnbXhqRUhUY1VsLzUKCXEvYjE5dDlMQ0ZHN1Z4cGw3a0Y3Wm9yYTE1dzZKcnB3NkZnU0djbTlkWHRxa1phNWp0OHVZWE9YTThDNDhRanAKCUVSaWx4U2hvUEZzazl5Q1lXaXBOdHptRlFDbnBpM2NRbG4wZzI3K3M1T2pMdHV2eGRBOWI0Znh1TytLRHQrVmUKCWlieDJNY2JVUXNCbGdMQW1wWlZVNE5oZmhDaTl4ZGJKUXZXNTZuN3FPajFGcjI4cmEvQXdPTklzdWZPekNnNHkKCVdjUFQ2SVZYb3VKN1ljSXFkaG9TTVVCOC81Q1FWZjNLdURvMHN4QW5nPT0KREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsgZD0KCW1lc3NhZ2luZ2VuZ2luZS5jb207IGg9Y29udGVudC10cmFuc2Zlci1lbmNvZGluZzpjb250ZW50LXR5cGUKCTpkYXRlOmZyb206aW4tcmVwbHktdG86bWVzc2FnZS1pZDptaW1lLXZlcnNpb246cmVmZXJlbmNlcwoJOnN1YmplY3Q6dG86eC1tZS1zZW5kZXI6eC1tZS1zZW5kZXI6eC1zYXNsLWVuYzsgcz1mbTE7IGJoPUJBYzlQagoJZWVMTkNMZUYySXFtRHVSZmp5eTczVmhOUzdQcjJsNVl6a0E5ST07IGI9cFJjTEhJa1ozVGhVR2RzRVRtMVJmRwoJdVJqV3ZmTjdyTGliMnpva3A0eXJXU0g3RUE2bytZSXY1ZytQRHdYQlZTR1lTY0h6UkFNYUJjWTd1OVhQdm4zNwoJMjVHWGlQZjVpZ0tURlRvZVNFbXJhdVlyaVU3NTg0OVhLMmdUSXVJZkwzdUx3azVnbVVHR016MjJUYzdvcGpseQoJaEFxRlBWbkZnNlJEOUg2YjZUWjZJcWkwTHZmak1NVWFZcnFORDdyOWpyeEhKdmtyK243ZE5lSFNkZGFzUDBySgoJeE4wYVMwY1lYVDFGa2I3VFpheTFYeWxOWnFLNXcydkkrTWVlSVZHWS8ybnlKNVcwK0RTN0NZY056bURhenpwUAoJN1FsYlZ4YVUwV2FPelV2T3A0U2FIVmlnK0NtL3hxYWZwRFVuZmw4VWtNU2N3YTJpVDE1eDZETy9URFNlKzlwUQoJPT0KWC1NRS1TZW5kZXI6IDx4bXM6WklEQldYZ2JmdTdQeVBnYms3cFpTSnlIcHJOUjZaRXppWGtDNDBJNlFlcTFaRDJZakMwREt3PgpSZWNlaXZlZDogYnkgbWFpbHVzZXIubnlpLmludGVybmFsIChQb3N0Zml4LCBmcm9tIHVzZXJpZCA5OSkKCWlkIDE4RTcwNjI2NEU7IFR1ZSwgMTkgU2VwIDIwMTcgMTY6Mzk6MDAgLTA0MDAgKEVEVCkKTWVzc2FnZS1JZDogPDE1MDU4NTM1NDAuMzQ0MzQ2NS4xMTExNjIwNjQwLjMzMUJFNThBQHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KRnJvbTogSWdvciBGZWRvcmVua28gPGlnb3JAaWZlZG9yZW5rby5jb20+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0idXRmLTgiClgtTWFpbGVyOiBNZXNzYWdpbmdFbmdpbmUuY29tIFdlYm1haWwgSW50ZXJmYWNlIC0gYWpheC02NGIwODY5MgpJbi1SZXBseS1UbzogPG9wLnk2dHY1a2Yza2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpEYXRlOiBUdWUsIDE5IFNlcCAyMDE3IDE2OjM5OjAwIC0wNDAwClJlZmVyZW5jZXM6IDxDQStuUG5Nd01DcU9fRXRjQlc1XzNyTTcxLXRDcml0cDRVa3N5ZlBtREdBWXI2eHo9b1FAbWFpbC5nbWFpbC5jb20+CiA8RjFGOEIzQ0YtRERBQy00NEJBLUFFQjctNDEyMkM4ODdDNEFCQGhvbnRvbi5vcmc+CiA8Q0ErblBuTXdmX0JmdFl1cy1yblFyTzdvNStkdUdGejBWRWE3TmlvaEcxX19ZVXpyYzV3QG1haWwuZ21haWwuY29tPgogPDE1MDU3OTY5MDguMjUxNjgwOC4xMTEwNjczMTI4LjYzNUFDMzVGQHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KIDxvcC55NnR0bXJlYmtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KIDxDQStuUG5NeEZGRVRRbXF0ZTAtNTB1M0VGU3diZzZ5aXB3NVZTQmRMUHdUelBoZFZrNXdAbWFpbC5nbWFpbC5jb20+CiA8b3AueTZ0djVrZjNrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+ClN1YmplY3Q6IFJlOiBVbmRlcnN0YW5kaW5nIE1ORy02MjA5ICh3YXM6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMSkKCkp1c3QgdG8gY29uZmlybSBJIHVuZGVyc3RhbmQgd2hhdCB3ZSBhcmUgdHJ5aW5nIHRvIGVzdGFibGlzaCBoZXJlLiBXZQp3YW50IHRvIGRlY2lkZSB0aGUgZXhwZWN0ZWQvZGVzaXJlZCBjb21wb25lbnQgaW5qZWN0aW9uIGJlaGF2aW91ciBhbmQKY2xhc3NwYXRoIHZpc2liaWxpdHkgaW4gdGhlIGFic2VuY2Ugb2YgcGFja2FnZSBhbmQgYXJ0aWZhY3QgZXhwb3J0CmNvbmZpZ3VyYXRpb24gKGkuZS4gTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCBmaWxlKS4gRGlkIEkgZ2V0IHRoaXMKcmlnaHQ/CgotLSAKUmVnYXJkcywKSWdvcgoKT24gVHVlLCBTZXAgMTksIDIwMTcsIGF0IDAzOjUyIFBNLCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPiBMZXQncyBkbyBpdCBsaWtlIHRoaXM6Cj4gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZG93bmxvYWQvYXR0YWNobWVudHMvMjMyOTg0MS9jbGFzc3JlYWxtcy5wZGY/YXBpPXYyCj4gCj4gUm9iZXJ0Cj4gCj4gT24gVHVlLCAxOSBTZXAgMjAxNyAyMTowODozOSArMDIwMCwgU3RlcGhlbiBDb25ub2xseSAgCj4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+IAo+ID4gSSB0aGluayB5b3Ugd2lsbCBuZWVkIGEgbGluayB0byB0aGUgUERGIGFzIGF0dGFjaG1lbnRzIGFyZSBzdHJpcHBlZCBmcm9tCj4gPiB0aGUgTUwKPiA+Cj4gPiBPbiBUdWUgMTkgU2VwIDIwMTcgYXQgMTk6NTcsIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4gd3JvdGU6Cj4gPgo+ID4+IEF0dGFjaGVkIGEgc2luZ2xlIHBhZ2Ugb3ZlcnZpZXcuCj4gPj4KPiA+PiBQZXIgYmxvY2sgeW91J2xsIHNlZSBpbiB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgdGhlIGV4ZWN1dGVkIHBsdWdpbgo+ID4+IFRoZSBsZWZ0IGNvbHVtbiBjb250YWlucyB0aGUgZXh0ZW5zaW9ucyBhbmQgcGx1Z2luIGluIG9yZGVyYXMgc3BlY2lmaWVkICAKPiA+PiBpbgo+ID4+IHRoZSBwb20ueG1sCj4gPj4gSW4gZXZlcnkgY2xhc3Nsb2FkZXJjb2x1bW4geW91J2xsIHNlZSBudW1iZXJzIHdoaWNoIHJlcHJlc2VudCB0aGUgb3JkZXIuCj4gPj4KPiA+PiBJIGhvcGUgSSBkaWRuJ3QgbWFrZSBhbnkgbWlzdGFrZXMuCj4gPj4gVG9tb3Jyb3cgSSBoYXZlIGVub3VnaCB0aW1lIHRvIHNlZSBpZiBJIHVuZGVyc3RhbmQgd2hhdCdzIGhhcHBlbmluZyAgCj4gPj4gaGVyZS4KPiA+Pgo+ID4+IEkgd2lsbCBjb21lIGJhY2sgd2l0aCBteSBjb25jbHVzaW9ucy4KPiA+Pgo+ID4+IFJvYmVydAo+ID4+Cj4gPj4gT24gVHVlLCAxOSBTZXAgMjAxNyAwNjo1NTowOCArMDIwMCwgSWdvciBGZWRvcmVua28gPGlnb3JAaWZlZG9yZW5rby5jb20+Cj4gPj4gd3JvdGU6Cj4gPj4KPiA+PiA+IFRMO0RSIHlvdXIgdGVzdCBwcm9qZWN0IGV4cG9zZWQgdHdvIGV4aXN0aW5nIGJ1Z3MsIG9uZSBjaGFuZ2UgaW4KPiA+PiA+IGJlaGF2aW91ciBhbmQgb25lIHF1aXJrIEkgY2FuJ3QgZXhwbGFpbgo+ID4+ID4KPiA+PiA+ICogQnVpbGQgYDxleHRlbnNpb25zPmAgYXJlIGxvYWRlZCBieSB0d28gY2xhc3Nsb2FkZXJzLCB3aGljaCBpcyBhIGJ1ZyAgCj4gPj4gaW4KPiA+PiA+IERlZmF1bHRQcm9qZWN0QnVpbGRpbmdIZWxwZXIjY3JlYXRlUHJvamVjdFJlYWxtIGFuZCBleHBsYWlucyB3aHkgeW91ICAKPiA+PiBzZWUKPiA+PiA+IGV4dGphcjEvZXh0amFyMiBpbiB0aGUgb3V0cHV0Cj4gPj4gPiAqIENsYXNzUmVhbG0gZG9lcyBub3QgYWxsb3cgc2FtZSBmb3JlaWduLWltcG9ydCBmcm9tIG11bHRpcGxlCj4gPj4gPiBjbGFzc2xvYWRlcnMsIHdoaWNoIGlzIGEgYnVnIGFuZCBleHBsYWlucyB3aHkgaXQgaXMgbm90IHBvc3NpYmxlIHRvICAKPiA+PiBsb2FkCj4gPj4gPiBzYW1lIHJlc291cmNlIGZyb20gbXVsdGlwbGUgcGx1Z2lucy9leHRlbnNpb25zCj4gPj4gPiAqIFRDQ0wgZG9lcyBub3QgaGF2ZSBhY2Nlc3MgdG8gcHJpdmF0ZSAoaS5lLiBub3QgZXhwb3J0ZWQpIHJlc291cmNlcyAgCj4gPj4gb2YKPiA+PiA+IHRoaXMgZXh0ZW5zaW9ucyBwbHVnaW4sIHdoaWNoIGlzIGEgY2hhbmdlIG9mIGJlaGF2aW91ciBpbnRyb2R1Y2VkIGJ5Cj4gPj4gPiBtbmctNjIwOSBmaXgKPiA+PiA+ICogQWxzbywgY29tcG9uZW50IGluamVjdGlvbiBvcmRlciBhcHBlYXJzIHRvIGJlIGJhY2t3YXJkcywgYnV0IG1heWJlCj4gPj4gPiBTdHVhcnQgY2FuIGV4cGxhaW4gd2h5Lgo+ID4+ID4KPiA+PiA+Cj4gPj4gPiBCZWxvdyBpcyBtb3JlIGRldGFpbGVkIGV4cGxhbmF0aW9uIG9mIGV4cGVjdGVkIGFuZCBvYnNlcnZlZCBiZWhhdmlvdXIKPiA+PiA+Cj4gPj4gPgo+ID4+ID4gIyMgQ29tcG9uZW50IGluamVjdGlvbiBkZXBlbmRzIG9uIHRoZSBjdXJyZW50bHkgcnVubmluZyBwbHVnaW4gYW5kIHRoZQo+ID4+ID4gaW5qZWN0aW9uIHNpdGUKPiA+PiA+Cj4gPj4gPiBDdXJyZW50bHkgcnVubmluZyBwbHVnaW5zIGhhdmUgYWNjZXNzIHRvIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50Cj4gPj4gPiBpbXBsZW1lbnRhdGlvbnM6Cj4gPj4gPgo+ID4+ID4gKiBSZWd1bGFyIHBsdWdpbiBoYXMgYWNjZXNzIHRvIGNvbXBvbmVudHMgaW1wbGVtZW50ZWQgYnkgdGhlIHBsdWdpbiwKPiA+PiA+IHByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucywgaWYgYW55ICh2aWEgcHJvamVjdCBjbGFzcyByZWFsbSBmb3JlaWduCj4gPj4gPiBpbXBvcnQpIGFuZCBNYXZlbiBDb3JlLgo+ID4+ID4gKiBFeHRlbnNpb24gcGx1Z2luIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50cyBpbXBsZW1lbnRlZCBieSB0aGUgcHJvamVjdAo+ID4+ID4gYnVpbGQgZXh0ZW5zaW9ucyBhbmQgTWF2ZW4gQ29yZS4KPiA+PiA+ICogV2l0aG91dCBhIHJ1bm5pbmcgcGx1Z2luIChlLmcuLCBkdXJpbmcgcHJvamVjdCBkZXBlbmRlbmN5ICAKPiA+PiByZXNvbHV0aW9uKSwKPiA+PiA+IGNvbXBvbmVudHMgaW1wbGVtZW50ZWQgYnkgdGhlIHByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucyBhbmQgTWF2ZW4gQ29yZQo+ID4+ID4gYXJlIGFjY2Vzc2libGUuCj4gPj4gPgo+ID4+ID4gRGlmZmVyZW50IGluamVjdGlvbiBzaXRlcyBoYXZlIGFjY2VzcyB0byB0aGUgZm9sbG93aW5nIGNvbXBvbmVudAo+ID4+ID4gaW50ZXJmYWNlczoKPiA+PiA+Cj4gPj4gPiAqIE1hdmVuIENvcmUgaGFzIGFjY2VzcyB0byBjb21wb25lbnQgaW50ZXJmYWNlcyBkZWZpbmVkIGJ5IHRoZSBjb3JlCj4gPj4gPiBpdHNlbGYgKG9idmlvdXNseSkKPiA+PiA+ICogUHJvamVjdCBidWlsZCBleHRlbnNpb25zIGhhdmUgYWNjZXNzIHRvICoqcHVibGljKiogY29tcG9uZW50Cj4gPj4gPiBpbnRlcmZhY2VzIGRlZmluZWQgYnkgTWF2ZW4gQ29yZSBhbmQgY29tcG9uZW50IGludGVyZmFjZXMgZGVmaW5lZCBieSAgCj4gPj4gdGhlCj4gPj4gPiBidWlsZCBleHRlbnNpb24gaXRzZWxmICh0aGVyZSBpcyBubyB3YXkgdG8gYWNjZXNzIGNvbXBvbmVudCBpbnRlcmZhY2VzCj4gPj4gPiBkZWZpbmVkIGluIG90aGVyIGV4dGVuc2lvbnMpCj4gPj4gPiAqIFJlZ3VsYXIgcGx1Z2lucyBoYXZlIGFjY2VzcyB0byAqKnB1YmxpYyoqIGNvbXBvbmVudCBpbnRlcmZhY2VzICAKPiA+PiBkZWZpbmVkCj4gPj4gPiBieSBNYXZlbiBDb3JlLCBjb21wb25lbnQgaW50ZXJmYWNlcyAqKmV4cG9ydGVkKiogYnkgYnVpbGQgZXh0ZW5zaW9ucyAgCj4gPj4gYW5kCj4gPj4gPiBjb21wb25lbnQgaW50ZXJmYWNlcyBkZWZpbmVkIGluIHRoZSBwbHVnaW4gaXRzZWxmCj4gPj4gPgo+ID4+ID4gRm9yIGluamVjdGlvbiB0byB3b3JrLCBpbmplY3Rpb24gc2l0ZSBoYXMgdG8gaGF2ZSBhY2Nlc3MgdG8gdGhlCj4gPj4gPiBjb21wb25lbnQgaW50ZXJmYWNlIGFuZCB0aGUgY29tcG9uZW50IGltcGxlbWVudGF0aW9uIG11c3QgYmUgIAo+ID4+IGFjY2Vzc2libGUKPiA+PiA+IHRocm91Z2ggdGhlIGN1cnJlbnQgY29udGV4dC4KPiA+PiA+Cj4gPj4gPiBGcm9tIHdoYXQgSSBjYW4gdGVsbCwgaW4geW91ciBleGFtcGxlIGFsbCBwbHVnaW5zIGhhdmUgYWNjZXNzIHRvIHRoZQo+ID4+ID4gcmlnaHQgY29tcG9uZW50cyB3aGVuIHVzaW5nIGN1cnJlbnQgMy41LjItU05BUFNIT1QuIFRoZSBpbmplY3Rpb24gIAo+ID4+IG9yZGVyCj4gPj4gPiBkb2VzIGFwcGVhciB0byBiZSBiYWNrd2FyZHMgZnJvbSB3aGF0IEkgZXhwZWN0ZWQsIGhvd2V2ZXIuCj4gPj4gPgo+ID4+ID4KPiA+PiA+ICMjIFJlc291cmNlcyBsb29rdXAgZnVsbHkgZGVwZW5kcyBvbiBjbGFzc3BhdGggdmlzaWJpbGl0eSwgIAo+ID4+IHNwZWNpZmljYWxseQo+ID4+ID4KPiA+PiA+ICogUmVndWxhciBwbHVnaW4gY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byByZXNvdXJjZXMgZnJvbSB0aGUgcGx1Z2luCj4gPj4gPiBpdHNlbGYsIGZyb20gKipleHBvcnRlZCoqIHBhY2thZ2VzIG9mIHRoZSBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMgYW5kCj4gPj4gPiAqKnB1YmxpYyoqIE1hdmVuIENvcmUgcGFja2FnZXMKPiA+PiA+ICogRXh0ZW5zaW9ucyBwbHVnaW4gY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byB0aGUgcmVzb3VyY2VzIGZyb20gdGhlCj4gPj4gPiBleHRlbnNpb25zIHBsdWdpbiBpdHNlbGYgYW5kIGZyb20gKipwdWJsaWMqKiBNYXZlbiBDb3JlIHBhY2thZ2VzCj4gPj4gPiAqIFByb2plY3QgY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byBjbGFzc2VzIGFuZCByZXNvdXJjZXMgKipleHBvcnRlZCoqCj4gPj4gPiBieSBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMgYW5kICoqcHVibGljKiogTWF2ZW4gQ29yZSBwYWNrYWdlcwo+ID4+ID4KPiA+PiA+IEkgc2VlIHRocmVlIHByb2JsZW1zIGhlcmUKPiA+PiA+Cj4gPj4gPiAqIE1hdmVuIGFkZHMgYnVpbGQgc2luZ2xlLWphciBgPGV4dGVuc2lvbnM+YCBlbGVtZW50cyBkaXJlY3RseSB0bwo+ID4+ID4gcHJvamVjdCBjbGFzcyByZWFsbSAqKmFuZCoqIGNyZWF0ZXMgc2VwYXJhdGUgZXh0ZW5zaW9ucyBjbGFzcyByZWFsbXMgIAo+ID4+IGZvcgo+ID4+ID4gdGhlbS4gV2hpY2ggcmVzdWx0cyBpbiBkdXBsaWNhdGUgY2xhc3Nlcy9yZXNvdXJjZXMgbG9hZGVkIGJ5IHR3bwo+ID4+ID4gY2xhc3Nsb2FkZXJzIGFuZCBleHBsYWlucyB3aHkgeW91IHNlZSBleHRqYXIxL2V4dGphcjIgb3V0cHV0ICh3aGljaCAgCj4gPj4geW91Cj4gPj4gPiBzaG91bGRuJ3QgYWNjb3JkaW5nIHRvIHRoZSBleHBsYW5hdGlvbiBhYm92ZSkKPiA+PiA+ICogQ2xhc3NSZWFsbSBkb2VzIG5vdCBhbGxvdyBmb3JlaWduLWltcG9ydCBvZiB0aGUgc2FtZSBwYWNrYWdlIGZyb20KPiA+PiA+IG11bHRpcGxlIGNsYXNzbG9hZGVycy4gVGhpcyBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIGxvYWQgdGhlIHNhbWUKPiA+PiA+IHJlc291cmNlIGZyb20gbXVsdGlwbGUgcGx1Z2lucy9leHRlbnNpb25zLgo+ID4+ID4gKiBFeHRlbnNpb25zIHBsdWdpbnMgY2Fubm90IGFjY2VzcyB0aGVpciBvd24gcHJpdmF0ZSAoaS5lLiBub3QgIAo+ID4+IGV4cG9ydGVkKQo+ID4+ID4gcmVzb3VyY2VzIHZpYSBUQ0NMLCB0aGlzIGlzIGNoYW5nZSBpbiBiZWhhdmlvdXIgaW50cm9kdWNlZCBieSBtbmctNjIwOQo+ID4+ID4gZml4Cj4gPj4gPgo+ID4+ID4gSG9wZSB0aGlzIGhlbHBzCj4gPj4KPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDA3Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgU2VwIDIwIDAwOjI5OjM5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDA3Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAwMTVFNTEwNTVECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMjAgU2VwIDIwMTcgMDA6Mjk6MzkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5MTE2NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBTZXAgMjAxNyAwMDoyOTozOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTEwOTYgaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgU2VwIDIwMTcgMDA6Mjk6MzggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MTA4MSBpbnZva2VkIGJ5IHVpZCA5OSk7IDIwIFNlcCAyMDE3IDAwOjI5OjM4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAyMCBTZXAgMjAxNyAwMDoyOTozOCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIENDREUwQ0Q1MjgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDIwIFNlcCAyMDE3IDAwOjI5OjM3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuMDIxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjAyMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUtBTV9BU0NJSV9ESVZJREVSUz0wLjgsIFJDVkRfSU5fRE5TV0xfTE9XPS0wLjcsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9aWZlZG9yZW5rby5jb20gaGVhZGVyLmI9QklrMWxMZ2U7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9bWVzc2FnaW5nZW5naW5lLmNvbQoJaGVhZGVyLmI9TVlRY0drV3IKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHl5UmF2SG5vM1dYaiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgMjAgU2VwIDIwMTcgMDA6Mjk6MzUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gb3V0MS1zbXRwLm1lc3NhZ2luZ2VuZ2luZS5jb20gKG91dDEtc210cC5tZXNzYWdpbmdlbmdpbmUuY29tIFs2Ni4xMTEuNC4yNV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBCRjQ2RDVGNjU5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyMCBTZXAgMjAxNyAwMDoyOTozNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBjb21wdXRlMi5pbnRlcm5hbCAoY29tcHV0ZTIubnlpLmludGVybmFsIFsxMC4yMDIuMi40Ml0pCglieSBtYWlsb3V0Lm55aS5pbnRlcm5hbCAoUG9zdGZpeCkgd2l0aCBFU01UUCBpZCA0NjMwQTIwRDk2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxOSBTZXAgMjAxNyAyMDoyOTozNCAtMDQwMCAoRURUKQpSZWNlaXZlZDogZnJvbSB3ZWIyIChbMTAuMjAyLjIuMjEyXSkKICBieSBjb21wdXRlMi5pbnRlcm5hbCAoTUVQcm94eSk7IFR1ZSwgMTkgU2VwIDIwMTcgMjA6Mjk6MzQgLTA0MDAKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsgZD1pZmVkb3JlbmtvLmNvbTsKCSBoPWNvbnRlbnQtdHJhbnNmZXItZW5jb2Rpbmc6Y29udGVudC10eXBlOmRhdGU6ZnJvbTppbi1yZXBseS10bwoJOm1lc3NhZ2UtaWQ6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6c3ViamVjdDp0bzp4LW1lLXNlbmRlcgoJOngtbWUtc2VuZGVyOngtc2FzbC1lbmM7IHM9Zm0xOyBiaD1TMU0zV2hJcnBEczZTd2p1YnIwQ2NseWlZTXVmdAoJbEFqZFg1NjZwVStxVGc9OyBiPUJJazFsTGdlUG05TTRWUXp6b0Q3RVRlenAwdEU4M0x5T25YWTl1SzVKcVlDRgoJY2YwQittckNQVGhUbWRjaXZCKzNUUVB2T3ViaGtBeUVVdzRzSXYzZEt4NlRuZ0l4cVk2QVk5UTRSWm9FcU9aeQoJeGx2WU1aZnZud3E3MS8rZWdGcVpEME4rdVlrWFRwa2lNTHFkSDVZUjRyQVBtZXFKNG14NmdvWXNtMWFxcDRzZwoJdGRGYWZ4TUJrV1dFSUJqYVR3cnJlUU9aZDBaNHI0Z2FFaFBFYlR4WEJkWWZVZUNLbHNLYytqbWwxT2VwaGtuRgoJMkQ2ZCtydWZHR29ZVlJBUGd4K2JiSDV0aUlPbFVxR2ovbEN3aDZUcnI5R0JTcHJTd1BtOUxUREQ1cDhjMVZMcwoJMGRQb042N0FhdGhKb2MzYS90UFBnSVlvNVZScTZzMU12UGUvV1gyaUE9PQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOyBkPQoJbWVzc2FnaW5nZW5naW5lLmNvbTsgaD1jb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOmNvbnRlbnQtdHlwZQoJOmRhdGU6ZnJvbTppbi1yZXBseS10bzptZXNzYWdlLWlkOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzCgk6c3ViamVjdDp0bzp4LW1lLXNlbmRlcjp4LW1lLXNlbmRlcjp4LXNhc2wtZW5jOyBzPWZtMTsgYmg9UzFNM1doCglJcnBEczZTd2p1YnIwQ2NseWlZTXVmdGxBamRYNTY2cFUrcVRnPTsgYj1NWVFjR2tXcjR3V3d6ODFZdVBiYU4rCglSWUwvN2NiRjNpSTluQ05CN3BVMGJpc0pVQk5wVXhidUFtdE80bVJkNEFFb29WUFdxa3VxWGpFOFFvM25OZ3hpCglBZ00vRGkyaTA3M3JOZTk3eXRjVmZRR3pEcko5bnVoc1p3aXhQbGNyZys1VW54dVJKOUJxQnR3a3lPZjlDRDBhCgl0Z3pwM1RVR1BGbVFsYUNNbG1iZ3VUalR5dWI3RC9wbkZjbkFnV3VUUEp5Q0hxRTJvN1E5YlpidmgrdGVidFlxCgl4U005QTdlUGlMaWFVeWJuTHR4ZHN6NVpaOUUrbjdCaFZOd1NtWkhJZFJDVWdJVHJOZTRMbjNCMFkzTTV6bW9BCgk1SVZhM09vY2VlZ0NqQVRlMmRheTQzb0FoVmRqSlBxV1BtS1FXdUIyYkhwVUZPVEpua2dHNy8vYjVVeVJLWVNBCgk9PQpYLU1FLVNlbmRlcjogPHhtczpicmJCV1pqNFFtWDVFd1lVTEtlNnczNUh5V2lKRjJBUmZZa0JLSnpxOC03cWRQckI4WTFEcUE+ClJlY2VpdmVkOiBieSBtYWlsdXNlci5ueWkuaW50ZXJuYWwgKFBvc3RmaXgsIGZyb20gdXNlcmlkIDk5KQoJaWQgMTcxRUU2MjY0RTsgVHVlLCAxOSBTZXAgMjAxNyAyMDoyOTozNCAtMDQwMCAoRURUKQpNZXNzYWdlLUlkOiA8MTUwNTg2NzM3NC4zNDkzODQyLjExMTE3OTY1MjAuNTEyNEFDQTZAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgpGcm9tOiBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvbT4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJ1dGYtOCIKWC1NYWlsZXI6IE1lc3NhZ2luZ0VuZ2luZS5jb20gV2VibWFpbCBJbnRlcmZhY2UgLSBhamF4LTY0YjA4NjkyCkluLVJlcGx5LVRvOiA8Q0ErblBuTXprTnZCRl9GY3QtRT03cWZHUWZwSFVCS1QxOWNXQzM4U0NxdHE2a3ZpZTlnQG1haWwuZ21haWwuY29tPgpEYXRlOiBUdWUsIDE5IFNlcCAyMDE3IDIwOjI5OjM0IC0wNDAwClN1YmplY3Q6IFJlOiBVbmRlcnN0YW5kaW5nIE1ORy02MjA5ICh3YXM6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMSkKUmVmZXJlbmNlczogPENBK25Qbk13TUNxT19FdGNCVzVfM3JNNzEtdENyaXRwNFVrc3lmUG1ER0FZcjZ4ej1vUUBtYWlsLmdtYWlsLmNvbT4KIDxGMUY4QjNDRi1EREFDLTQ0QkEtQUVCNy00MTIyQzg4N0M0QUJAaG9udG9uLm9yZz4KIDxDQStuUG5Nd2ZfQmZ0WXVzLXJuUXJPN281K2R1R0Z6MFZFYTdOaW9oRzFfX1lVenJjNXdAbWFpbC5nbWFpbC5jb20+CiA8MTUwNTc5NjkwOC4yNTE2ODA4LjExMTA2NzMxMjguNjM1QUMzNUZAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgogPG9wLnk2dHRtcmVia2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgogPENBK25Qbk14RkZFVFFtcXRlMC01MHUzRUZTd2JnNnlpcHc1VlNCZExQd1R6UGhkVms1d0BtYWlsLmdtYWlsLmNvbT4KIDxvcC55NnR2NWtmM2tka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KIDwxNTA1ODUzNTQwLjM0NDM0NjUuMTExMTYyMDY0MC4zMzFCRTU4QUB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CiA8Q0ErblBuTXprTnZCRl9GY3QtRT03cWZHUWZwSFVCS1QxOWNXQzM4U0NxdHE2a3ZpZTlnQG1haWwuZ21haWwuY29tPgoKSW4gdGhhdCBjYXNlLCBjYW4gSSBzdWdnZXN0IGNvdXBsZSBvZiBjaGFuZ2VzIHRvIHRoZSB0ZXN0IHByb2plY3QKCiogSSB0aGlua3MgaXQgbWFrZXMgbW9yZSBzZW5zZSB0byBjb25maWd1cmUgZXh0amFyMSBhbmQgZXh0amFyMiBhcwpleHRlbnNpb25zIDxwbHVnaW4+IGVsZW1lbnRzIGluIHByb2JsZU4gcG9tLnhtbCBmaWxlcy4gRmlyc3QsIHRoZXJlIGlzCm5vIG1lYW5pbmdmdWwgb3JkZXIgYmV0d2VlbiA8ZXh0ZW5zaW9ucz4gYW5kIDxwbHVnaW5zPiBlbGVtZW50cy4gTW9yZQppbXBvcnRhbnRseSwgdGhvdWdoLCBzaW1wbGUgPGV4dGVuc2lvbnM+IGFyZSB0cmVhdGVkIGluIHNwZWNpYWwKbWF2ZW4yLWNvbXBhdCBtb2RlIGFuZCBhcmUgbm90IHJlcHJlc2VudGF0aXZlIG9mIGxpa2VseSByZWFsLXdvcmxkCmV4dGVuc2lvbnMuCgoqIEkgdGhpbmsgd2Ugc2hvdWxkIGludHJvZHVjZSBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sIHRvIHRoZSB0ZXN0CmV4dGVuc2lvbnMuIFRoaXMgbWV0YWRhdGEgd2hhdCBpbnRyb2R1Y2VkIHRvIGNvbmZpZ3VyZSBjbGFzc3BhdGgKdmlzaWJpbGl0eSwgc28gbGV0cyB1c2UgaXQuCgotLSAKUmVnYXJkcywKSWdvcgoKT24gVHVlLCBTZXAgMTksIDIwMTcsIGF0IDA1OjEyIFBNLCBTdGVwaGVuIENvbm5vbGx5IHdyb3RlOgo+IFllcywgdGhlIGV4cGVjdGF0aW9ucyBhcmUga2V5LiBEZXBlbmRpbmcgb24gd2hhdCB0aGV5IGFyZSB3ZSBtYXkgZWl0aGVyCj4gZHJvcCAzLjUuMSBvciBnbyBhaGVhZCBhcyBpdCBkZXBlbmRzIG9uIHdoZXRoZXIgdGhpcyBpcyBtb3JlIGNvcnJlY3QgdGhhbgo+IDMuNS4wIG9yIHN3YXBwaW5nIG9uZSBmaXggZm9yIGEgYnVnCj4gCj4gT24gVHVlIDE5IFNlcCAyMDE3IGF0IDIxOjM5LCBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvbT4gd3JvdGU6Cj4gCj4gPiBKdXN0IHRvIGNvbmZpcm0gSSB1bmRlcnN0YW5kIHdoYXQgd2UgYXJlIHRyeWluZyB0byBlc3RhYmxpc2ggaGVyZS4gV2UKPiA+IHdhbnQgdG8gZGVjaWRlIHRoZSBleHBlY3RlZC9kZXNpcmVkIGNvbXBvbmVudCBpbmplY3Rpb24gYmVoYXZpb3VyIGFuZAo+ID4gY2xhc3NwYXRoIHZpc2liaWxpdHkgaW4gdGhlIGFic2VuY2Ugb2YgcGFja2FnZSBhbmQgYXJ0aWZhY3QgZXhwb3J0Cj4gPiBjb25maWd1cmF0aW9uIChpLmUuIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgZmlsZSkuIERpZCBJIGdldCB0aGlzCj4gPiByaWdodD8KPiA+Cj4gPiAtLQo+ID4gUmVnYXJkcywKPiA+IElnb3IKPiA+Cj4gPiBPbiBUdWUsIFNlcCAxOSwgMjAxNywgYXQgMDM6NTIgUE0sIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+ID4gPiBMZXQncyBkbyBpdCBsaWtlIHRoaXM6Cj4gPiA+Cj4gPiBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kb3dubG9hZC9hdHRhY2htZW50cy8yMzI5ODQxL2NsYXNzcmVhbG1zLnBkZj9hcGk9djIKPiA+ID4KPiA+ID4gUm9iZXJ0Cj4gPiA+Cj4gPiA+IE9uIFR1ZSwgMTkgU2VwIDIwMTcgMjE6MDg6MzkgKzAyMDAsIFN0ZXBoZW4gQ29ubm9sbHkKPiA+ID4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPgo+ID4gPiA+IEkgdGhpbmsgeW91IHdpbGwgbmVlZCBhIGxpbmsgdG8gdGhlIFBERiBhcyBhdHRhY2htZW50cyBhcmUgc3RyaXBwZWQKPiA+IGZyb20KPiA+ID4gPiB0aGUgTUwKPiA+ID4gPgo+ID4gPiA+IE9uIFR1ZSAxOSBTZXAgMjAxNyBhdCAxOTo1NywgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgo+ID4gd3JvdGU6Cj4gPiA+ID4KPiA+ID4gPj4gQXR0YWNoZWQgYSBzaW5nbGUgcGFnZSBvdmVydmlldy4KPiA+ID4gPj4KPiA+ID4gPj4gUGVyIGJsb2NrIHlvdSdsbCBzZWUgaW4gdGhlIHVwcGVyIGxlZnQgY29ybmVyIHRoZSBleGVjdXRlZCBwbHVnaW4KPiA+ID4gPj4gVGhlIGxlZnQgY29sdW1uIGNvbnRhaW5zIHRoZSBleHRlbnNpb25zIGFuZCBwbHVnaW4gaW4gb3JkZXJhcwo+ID4gc3BlY2lmaWVkCj4gPiA+ID4+IGluCj4gPiA+ID4+IHRoZSBwb20ueG1sCj4gPiA+ID4+IEluIGV2ZXJ5IGNsYXNzbG9hZGVyY29sdW1uIHlvdSdsbCBzZWUgbnVtYmVycyB3aGljaCByZXByZXNlbnQgdGhlCj4gPiBvcmRlci4KPiA+ID4gPj4KPiA+ID4gPj4gSSBob3BlIEkgZGlkbid0IG1ha2UgYW55IG1pc3Rha2VzLgo+ID4gPiA+PiBUb21vcnJvdyBJIGhhdmUgZW5vdWdoIHRpbWUgdG8gc2VlIGlmIEkgdW5kZXJzdGFuZCB3aGF0J3MgaGFwcGVuaW5nCj4gPiA+ID4+IGhlcmUuCj4gPiA+ID4+Cj4gPiA+ID4+IEkgd2lsbCBjb21lIGJhY2sgd2l0aCBteSBjb25jbHVzaW9ucy4KPiA+ID4gPj4KPiA+ID4gPj4gUm9iZXJ0Cj4gPiA+ID4+Cj4gPiA+ID4+IE9uIFR1ZSwgMTkgU2VwIDIwMTcgMDY6NTU6MDggKzAyMDAsIElnb3IgRmVkb3JlbmtvIDwKPiA+IGlnb3JAaWZlZG9yZW5rby5jb20+Cj4gPiA+ID4+IHdyb3RlOgo+ID4gPiA+Pgo+ID4gPiA+PiA+IFRMO0RSIHlvdXIgdGVzdCBwcm9qZWN0IGV4cG9zZWQgdHdvIGV4aXN0aW5nIGJ1Z3MsIG9uZSBjaGFuZ2UgaW4KPiA+ID4gPj4gPiBiZWhhdmlvdXIgYW5kIG9uZSBxdWlyayBJIGNhbid0IGV4cGxhaW4KPiA+ID4gPj4gPgo+ID4gPiA+PiA+ICogQnVpbGQgYDxleHRlbnNpb25zPmAgYXJlIGxvYWRlZCBieSB0d28gY2xhc3Nsb2FkZXJzLCB3aGljaCBpcyBhCj4gPiBidWcKPiA+ID4gPj4gaW4KPiA+ID4gPj4gPiBEZWZhdWx0UHJvamVjdEJ1aWxkaW5nSGVscGVyI2NyZWF0ZVByb2plY3RSZWFsbSBhbmQgZXhwbGFpbnMgd2h5IHlvdQo+ID4gPiA+PiBzZWUKPiA+ID4gPj4gPiBleHRqYXIxL2V4dGphcjIgaW4gdGhlIG91dHB1dAo+ID4gPiA+PiA+ICogQ2xhc3NSZWFsbSBkb2VzIG5vdCBhbGxvdyBzYW1lIGZvcmVpZ24taW1wb3J0IGZyb20gbXVsdGlwbGUKPiA+ID4gPj4gPiBjbGFzc2xvYWRlcnMsIHdoaWNoIGlzIGEgYnVnIGFuZCBleHBsYWlucyB3aHkgaXQgaXMgbm90IHBvc3NpYmxlIHRvCj4gPiA+ID4+IGxvYWQKPiA+ID4gPj4gPiBzYW1lIHJlc291cmNlIGZyb20gbXVsdGlwbGUgcGx1Z2lucy9leHRlbnNpb25zCj4gPiA+ID4+ID4gKiBUQ0NMIGRvZXMgbm90IGhhdmUgYWNjZXNzIHRvIHByaXZhdGUgKGkuZS4gbm90IGV4cG9ydGVkKSByZXNvdXJjZXMKPiA+ID4gPj4gb2YKPiA+ID4gPj4gPiB0aGlzIGV4dGVuc2lvbnMgcGx1Z2luLCB3aGljaCBpcyBhIGNoYW5nZSBvZiBiZWhhdmlvdXIgaW50cm9kdWNlZCBieQo+ID4gPiA+PiA+IG1uZy02MjA5IGZpeAo+ID4gPiA+PiA+ICogQWxzbywgY29tcG9uZW50IGluamVjdGlvbiBvcmRlciBhcHBlYXJzIHRvIGJlIGJhY2t3YXJkcywgYnV0IG1heWJlCj4gPiA+ID4+ID4gU3R1YXJ0IGNhbiBleHBsYWluIHdoeS4KPiA+ID4gPj4gPgo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gQmVsb3cgaXMgbW9yZSBkZXRhaWxlZCBleHBsYW5hdGlvbiBvZiBleHBlY3RlZCBhbmQgb2JzZXJ2ZWQKPiA+IGJlaGF2aW91cgo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4KPiA+ID4gPj4gPiAjIyBDb21wb25lbnQgaW5qZWN0aW9uIGRlcGVuZHMgb24gdGhlIGN1cnJlbnRseSBydW5uaW5nIHBsdWdpbiBhbmQKPiA+IHRoZQo+ID4gPiA+PiA+IGluamVjdGlvbiBzaXRlCj4gPiA+ID4+ID4KPiA+ID4gPj4gPiBDdXJyZW50bHkgcnVubmluZyBwbHVnaW5zIGhhdmUgYWNjZXNzIHRvIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50Cj4gPiA+ID4+ID4gaW1wbGVtZW50YXRpb25zOgo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gKiBSZWd1bGFyIHBsdWdpbiBoYXMgYWNjZXNzIHRvIGNvbXBvbmVudHMgaW1wbGVtZW50ZWQgYnkgdGhlIHBsdWdpbiwKPiA+ID4gPj4gPiBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMsIGlmIGFueSAodmlhIHByb2plY3QgY2xhc3MgcmVhbG0gZm9yZWlnbgo+ID4gPiA+PiA+IGltcG9ydCkgYW5kIE1hdmVuIENvcmUuCj4gPiA+ID4+ID4gKiBFeHRlbnNpb24gcGx1Z2luIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50cyBpbXBsZW1lbnRlZCBieSB0aGUKPiA+IHByb2plY3QKPiA+ID4gPj4gPiBidWlsZCBleHRlbnNpb25zIGFuZCBNYXZlbiBDb3JlLgo+ID4gPiA+PiA+ICogV2l0aG91dCBhIHJ1bm5pbmcgcGx1Z2luIChlLmcuLCBkdXJpbmcgcHJvamVjdCBkZXBlbmRlbmN5Cj4gPiA+ID4+IHJlc29sdXRpb24pLAo+ID4gPiA+PiA+IGNvbXBvbmVudHMgaW1wbGVtZW50ZWQgYnkgdGhlIHByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucyBhbmQgTWF2ZW4KPiA+IENvcmUKPiA+ID4gPj4gPiBhcmUgYWNjZXNzaWJsZS4KPiA+ID4gPj4gPgo+ID4gPiA+PiA+IERpZmZlcmVudCBpbmplY3Rpb24gc2l0ZXMgaGF2ZSBhY2Nlc3MgdG8gdGhlIGZvbGxvd2luZyBjb21wb25lbnQKPiA+ID4gPj4gPiBpbnRlcmZhY2VzOgo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gKiBNYXZlbiBDb3JlIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50IGludGVyZmFjZXMgZGVmaW5lZCBieSB0aGUgY29yZQo+ID4gPiA+PiA+IGl0c2VsZiAob2J2aW91c2x5KQo+ID4gPiA+PiA+ICogUHJvamVjdCBidWlsZCBleHRlbnNpb25zIGhhdmUgYWNjZXNzIHRvICoqcHVibGljKiogY29tcG9uZW50Cj4gPiA+ID4+ID4gaW50ZXJmYWNlcyBkZWZpbmVkIGJ5IE1hdmVuIENvcmUgYW5kIGNvbXBvbmVudCBpbnRlcmZhY2VzIGRlZmluZWQgYnkKPiA+ID4gPj4gdGhlCj4gPiA+ID4+ID4gYnVpbGQgZXh0ZW5zaW9uIGl0c2VsZiAodGhlcmUgaXMgbm8gd2F5IHRvIGFjY2VzcyBjb21wb25lbnQKPiA+IGludGVyZmFjZXMKPiA+ID4gPj4gPiBkZWZpbmVkIGluIG90aGVyIGV4dGVuc2lvbnMpCj4gPiA+ID4+ID4gKiBSZWd1bGFyIHBsdWdpbnMgaGF2ZSBhY2Nlc3MgdG8gKipwdWJsaWMqKiBjb21wb25lbnQgaW50ZXJmYWNlcwo+ID4gPiA+PiBkZWZpbmVkCj4gPiA+ID4+ID4gYnkgTWF2ZW4gQ29yZSwgY29tcG9uZW50IGludGVyZmFjZXMgKipleHBvcnRlZCoqIGJ5IGJ1aWxkIGV4dGVuc2lvbnMKPiA+ID4gPj4gYW5kCj4gPiA+ID4+ID4gY29tcG9uZW50IGludGVyZmFjZXMgZGVmaW5lZCBpbiB0aGUgcGx1Z2luIGl0c2VsZgo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gRm9yIGluamVjdGlvbiB0byB3b3JrLCBpbmplY3Rpb24gc2l0ZSBoYXMgdG8gaGF2ZSBhY2Nlc3MgdG8gdGhlCj4gPiA+ID4+ID4gY29tcG9uZW50IGludGVyZmFjZSBhbmQgdGhlIGNvbXBvbmVudCBpbXBsZW1lbnRhdGlvbiBtdXN0IGJlCj4gPiA+ID4+IGFjY2Vzc2libGUKPiA+ID4gPj4gPiB0aHJvdWdoIHRoZSBjdXJyZW50IGNvbnRleHQuCj4gPiA+ID4+ID4KPiA+ID4gPj4gPiBGcm9tIHdoYXQgSSBjYW4gdGVsbCwgaW4geW91ciBleGFtcGxlIGFsbCBwbHVnaW5zIGhhdmUgYWNjZXNzIHRvIHRoZQo+ID4gPiA+PiA+IHJpZ2h0IGNvbXBvbmVudHMgd2hlbiB1c2luZyBjdXJyZW50IDMuNS4yLVNOQVBTSE9ULiBUaGUgaW5qZWN0aW9uCj4gPiA+ID4+IG9yZGVyCj4gPiA+ID4+ID4gZG9lcyBhcHBlYXIgdG8gYmUgYmFja3dhcmRzIGZyb20gd2hhdCBJIGV4cGVjdGVkLCBob3dldmVyLgo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4KPiA+ID4gPj4gPiAjIyBSZXNvdXJjZXMgbG9va3VwIGZ1bGx5IGRlcGVuZHMgb24gY2xhc3NwYXRoIHZpc2liaWxpdHksCj4gPiA+ID4+IHNwZWNpZmljYWxseQo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gKiBSZWd1bGFyIHBsdWdpbiBjbGFzcyByZWFsbSBoYXMgYWNjZXNzIHRvIHJlc291cmNlcyBmcm9tIHRoZSBwbHVnaW4KPiA+ID4gPj4gPiBpdHNlbGYsIGZyb20gKipleHBvcnRlZCoqIHBhY2thZ2VzIG9mIHRoZSBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMKPiA+IGFuZAo+ID4gPiA+PiA+ICoqcHVibGljKiogTWF2ZW4gQ29yZSBwYWNrYWdlcwo+ID4gPiA+PiA+ICogRXh0ZW5zaW9ucyBwbHVnaW4gY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byB0aGUgcmVzb3VyY2VzIGZyb20gdGhlCj4gPiA+ID4+ID4gZXh0ZW5zaW9ucyBwbHVnaW4gaXRzZWxmIGFuZCBmcm9tICoqcHVibGljKiogTWF2ZW4gQ29yZSBwYWNrYWdlcwo+ID4gPiA+PiA+ICogUHJvamVjdCBjbGFzcyByZWFsbSBoYXMgYWNjZXNzIHRvIGNsYXNzZXMgYW5kIHJlc291cmNlcwo+ID4gKipleHBvcnRlZCoqCj4gPiA+ID4+ID4gYnkgcHJvamVjdCBidWlsZCBleHRlbnNpb25zIGFuZCAqKnB1YmxpYyoqIE1hdmVuIENvcmUgcGFja2FnZXMKPiA+ID4gPj4gPgo+ID4gPiA+PiA+IEkgc2VlIHRocmVlIHByb2JsZW1zIGhlcmUKPiA+ID4gPj4gPgo+ID4gPiA+PiA+ICogTWF2ZW4gYWRkcyBidWlsZCBzaW5nbGUtamFyIGA8ZXh0ZW5zaW9ucz5gIGVsZW1lbnRzIGRpcmVjdGx5IHRvCj4gPiA+ID4+ID4gcHJvamVjdCBjbGFzcyByZWFsbSAqKmFuZCoqIGNyZWF0ZXMgc2VwYXJhdGUgZXh0ZW5zaW9ucyBjbGFzcyByZWFsbXMKPiA+ID4gPj4gZm9yCj4gPiA+ID4+ID4gdGhlbS4gV2hpY2ggcmVzdWx0cyBpbiBkdXBsaWNhdGUgY2xhc3Nlcy9yZXNvdXJjZXMgbG9hZGVkIGJ5IHR3bwo+ID4gPiA+PiA+IGNsYXNzbG9hZGVycyBhbmQgZXhwbGFpbnMgd2h5IHlvdSBzZWUgZXh0amFyMS9leHRqYXIyIG91dHB1dCAod2hpY2gKPiA+ID4gPj4geW91Cj4gPiA+ID4+ID4gc2hvdWxkbid0IGFjY29yZGluZyB0byB0aGUgZXhwbGFuYXRpb24gYWJvdmUpCj4gPiA+ID4+ID4gKiBDbGFzc1JlYWxtIGRvZXMgbm90IGFsbG93IGZvcmVpZ24taW1wb3J0IG9mIHRoZSBzYW1lIHBhY2thZ2UgZnJvbQo+ID4gPiA+PiA+IG11bHRpcGxlIGNsYXNzbG9hZGVycy4gVGhpcyBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIGxvYWQgdGhlIHNhbWUKPiA+ID4gPj4gPiByZXNvdXJjZSBmcm9tIG11bHRpcGxlIHBsdWdpbnMvZXh0ZW5zaW9ucy4KPiA+ID4gPj4gPiAqIEV4dGVuc2lvbnMgcGx1Z2lucyBjYW5ub3QgYWNjZXNzIHRoZWlyIG93biBwcml2YXRlIChpLmUuIG5vdAo+ID4gPiA+PiBleHBvcnRlZCkKPiA+ID4gPj4gPiByZXNvdXJjZXMgdmlhIFRDQ0wsIHRoaXMgaXMgY2hhbmdlIGluIGJlaGF2aW91ciBpbnRyb2R1Y2VkIGJ5Cj4gPiBtbmctNjIwOQo+ID4gPiA+PiA+IGZpeAo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gSG9wZSB0aGlzIGhlbHBzCj4gPiA+ID4+Cj4gPiA+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Cj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Cj4gPgo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4KPiA+IC0tCj4gU2VudCBmcm9tIG15IHBob25lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQwNzgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIFNlcCAyMCAxMTozMTo1MyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwNzgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgODEwN0RDQkYzCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMjAgU2VwIDIwMTcgMTE6MzE6NTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzNzQ5OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBTZXAgMjAxNyAxMTozMTo1MyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzc0MTggaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgU2VwIDIwMTcgMTE6MzE6NTMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNzM2MSBpbnZva2VkIGJ5IHVpZCA5OSk7IDIwIFNlcCAyMDE3IDExOjMxOjUyIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAyMCBTZXAgMjAxNyAxMTozMTo1MiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDQ5QTQ4RDIxNTUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDIwIFNlcCAyMDE3IDExOjMxOjUyICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuMDIxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjAyMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUtBTV9BU0NJSV9ESVZJREVSUz0wLjgsIFJDVkRfSU5fRE5TV0xfTE9XPS0wLjcsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9aWZlZG9yZW5rby5jb20gaGVhZGVyLmI9YVNZcW9CczM7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9bWVzc2FnaW5nZW5naW5lLmNvbQoJaGVhZGVyLmI9WXgwd09xM20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEtBSFg0ZHlENUtUbCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgMjAgU2VwIDIwMTcgMTE6MzE6NTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gb3V0MS1zbXRwLm1lc3NhZ2luZ2VuZ2luZS5jb20gKG91dDEtc210cC5tZXNzYWdpbmdlbmdpbmUuY29tIFs2Ni4xMTEuNC4yNV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA2RDZGODVGQzY5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyMCBTZXAgMjAxNyAxMTozMTo1MCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBjb21wdXRlMi5pbnRlcm5hbCAoY29tcHV0ZTIubnlpLmludGVybmFsIFsxMC4yMDIuMi40Ml0pCglieSBtYWlsb3V0Lm55aS5pbnRlcm5hbCAoUG9zdGZpeCkgd2l0aCBFU01UUCBpZCBCNTgzRTIwRDQwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyMCBTZXAgMjAxNyAwNzozMTo0NCAtMDQwMCAoRURUKQpSZWNlaXZlZDogZnJvbSB3ZWIyIChbMTAuMjAyLjIuMjEyXSkKICBieSBjb21wdXRlMi5pbnRlcm5hbCAoTUVQcm94eSk7IFdlZCwgMjAgU2VwIDIwMTcgMDc6MzE6NDQgLTA0MDAKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsgZD1pZmVkb3JlbmtvLmNvbTsKCSBoPWNvbnRlbnQtdHJhbnNmZXItZW5jb2Rpbmc6Y29udGVudC10eXBlOmRhdGU6ZnJvbTppbi1yZXBseS10bwoJOm1lc3NhZ2UtaWQ6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6c3ViamVjdDp0bzp4LW1lLXNlbmRlcgoJOngtbWUtc2VuZGVyOngtc2FzbC1lbmM7IHM9Zm0xOyBiaD0wOW14Unl0cHJteFNZQmNmUi9zb2t1RDk1RklseQoJQmFqNS9HYVVXbnYzbzA9OyBiPWFTWXFvQnMzYU5BVUNxZWYyc1IvWmhiUFpFNTZXV1FuYUVHcm5WaUkySmFUMQoJR1FGYWQ2eGZSTmpIdVgxMUpTTUtwM3hraUVJMnBGbDg0eXloOWl1Rlc3WWJzb2J6NUZhdWQyQjNxOEljbGlQQwoJM3c1d0JoWkk4YTRBWXdoeXYra3R2OFcvN0RHNm9Cc2pSRHF5VlJTYzN3QXJkUVd6WERoQkd0UW1ac3huSGt6ZQoJL1dUTVJIY2ZUSm9kc2MvR09kcVpoWG5Bb0w2UUdHV3A3UmJucUtSZ1YxNkp0TGp6TVRib1N5aU9PSGR1TkFOQgoJNXVOR0NNYUx0K0FYbm9xblp4bGh5Wnh4MFJKZzVEc3ZLWm04ZHczamdKSnk4NHlaVzdyRThsem5uMFVQdGZEbwoJSlJWNE81OUYrZ0MyNmhwSGJJVlRGL2xqN1k2WlJJSG1rb3k0OGp2d3c9PQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOyBkPQoJbWVzc2FnaW5nZW5naW5lLmNvbTsgaD1jb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOmNvbnRlbnQtdHlwZQoJOmRhdGU6ZnJvbTppbi1yZXBseS10bzptZXNzYWdlLWlkOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzCgk6c3ViamVjdDp0bzp4LW1lLXNlbmRlcjp4LW1lLXNlbmRlcjp4LXNhc2wtZW5jOyBzPWZtMTsgYmg9MDlteFJ5Cgl0cHJteFNZQmNmUi9zb2t1RDk1RklseUJhajUvR2FVV252M28wPTsgYj1ZeDB3T3EzbUhQdmpKc1Qydm0rWXlTCglaM1lHYzVxNS9rMUMxcjliRGFJODF0VEJjVGdaOGxXWUgvQzRaZkNLemRIcmVNNjVrcmtYeWI3Y01QeWFuMytwCgl3Y2poQXlZZ1I3eWk1dGYybVZWdjNuNDdFdEh4ZlJHcFJBM3JZUENPNFNxSWpoeEhnWVZsVVZ2L2hBSktOLzVUCgl3QTg2SXljVHk4UEJaN0xDNEVRMU85NDJWNFozTkxSclRGVEtVKzNVaGpLSlY0emwxOEhlVS9uWGh3d29yOWxzCglDK2NQSEZRdjEvNU1FOEJWeE9oemJaR2IxcjQzOHZkQUhEZm5EUm81UFBVSG12UVFQeVRiZzNpdTcwNFZJekYvCglYMlovbmUrcjgvOWdqS2VGVXZnU2FGWGtUS0l4QkRNNURpOXIvR1FoWllnTVBseHBHREhlcmJEK2QxUmJZTXdnCgk9PQpYLU1FLVNlbmRlcjogPHhtczpvRkhDV1hYZ2tSek9ZUjR3Wmd2Z2tOWFdrR3hCMzV0YWlVLVYwaXcyRHpEN053ZUhIZ2RCaGc+ClJlY2VpdmVkOiBieSBtYWlsdXNlci5ueWkuaW50ZXJuYWwgKFBvc3RmaXgsIGZyb20gdXNlcmlkIDk5KQoJaWQgODcyMjY2MjY0RTsgV2VkLCAyMCBTZXAgMjAxNyAwNzozMTo0NCAtMDQwMCAoRURUKQpNZXNzYWdlLUlkOiA8MTUwNTkwNzEwNC4yMjQ1NDMuMTExMjI2ODY2NC4zQUU4QTEyMkB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CkZyb206IElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY29tPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9InV0Zi04IgpYLU1haWxlcjogTWVzc2FnaW5nRW5naW5lLmNvbSBXZWJtYWlsIEludGVyZmFjZSAtIGFqYXgtNjRiMDg2OTIKSW4tUmVwbHktVG86IDxDQStuUG5NeHFIYTN5QlJGV3IraU9Fc09taGtYOExjZ2MwTTRkRzlzeXVjTHNQYUxSNUFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBVbmRlcnN0YW5kaW5nIE1ORy02MjA5ICh3YXM6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMSkKRGF0ZTogV2VkLCAyMCBTZXAgMjAxNyAwNzozMTo0NCAtMDQwMApSZWZlcmVuY2VzOiA8Q0ErblBuTXdNQ3FPX0V0Y0JXNV8zck03MS10Q3JpdHA0VWtzeWZQbURHQVlyNnh6PW9RQG1haWwuZ21haWwuY29tPgogPEYxRjhCM0NGLUREQUMtNDRCQS1BRUI3LTQxMjJDODg3QzRBQkBob250b24ub3JnPgogPENBK25Qbk13Zl9CZnRZdXMtcm5Rck83bzUrZHVHRnowVkVhN05pb2hHMV9fWVV6cmM1d0BtYWlsLmdtYWlsLmNvbT4KIDwxNTA1Nzk2OTA4LjI1MTY4MDguMTExMDY3MzEyOC42MzVBQzM1RkB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CiA8b3AueTZ0dG1yZWJrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CiA8Q0ErblBuTXhGRkVUUW1xdGUwLTUwdTNFRlN3Ymc2eWlwdzVWU0JkTFB3VHpQaGRWazV3QG1haWwuZ21haWwuY29tPgogPG9wLnk2dHY1a2Yza2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgogPDE1MDU4NTM1NDAuMzQ0MzQ2NS4xMTExNjIwNjQwLjMzMUJFNThBQHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KIDxDQStuUG5NemtOdkJGX0ZjdC1FPTdxZkdRZnBIVUJLVDE5Y1dDMzhTQ3F0cTZrdmllOWdAbWFpbC5nbWFpbC5jb20+CiA8MTUwNTg2NzM3NC4zNDkzODQyLjExMTE3OTY1MjAuNTEyNEFDQTZAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgogPENBK25Qbk14cUhhM3lCUkZXcitpT0VzT21oa1g4TGNnYzBNNGRHOXN5dWNMc1BhTFI1QUBtYWlsLmdtYWlsLmNvbT4KCkp1c3QgdG8gYmUgY2xlYXIsIHdoaWxlIEkgYWdyZWUgdGhlIGRvY3VtZW50YXRpb24gaXMgbGFja2luZywgbmVpdGhlcgpzcGVjaWFsLWNhc2luZyAic2ltcGxlIiA8ZXh0ZW5zaW9ucz4gbm9yIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWw9MjAKaXMgbmV3IGJlaGF2aW91ciBpbiAzLjUuMSwgYm90aCBleGlzdGVkIHNpbmNlIDMuMCBhbHBoYXMgaWlyYy4gQWxzbywKSGVydj1DMz1BOSBkaWQgYWRkIHNvbWUgZXh0ZW5zaW9uLnhtbCBkb2N1bWVudGF0aW9uIGNvdXBsZSBvZiB5ZWFycyBhZ28uCgpodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy00MzgxCgotLT0yMApSZWdhcmRzLApJZ29yCgpPbiBXZWQsIFNlcCAyMCwgMjAxNywgYXQgMDM6MTIgQU0sIFN0ZXBoZW4gQ29ubm9sbHkgd3JvdGU6Cj4gT24gV2VkIDIwIFNlcCAyMDE3IGF0IDAxOjI5LCBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvbT4gd3JvdGU6Cj49MjAKPiA+IEluIHRoYXQgY2FzZSwgY2FuIEkgc3VnZ2VzdCBjb3VwbGUgb2YgY2hhbmdlcyB0byB0aGUgdGVzdCBwcm9qZWN0Cj4gPgo+ID4gKiBJIHRoaW5rcyBpdCBtYWtlcyBtb3JlIHNlbnNlIHRvIGNvbmZpZ3VyZSBleHRqYXIxIGFuZCBleHRqYXIyIGFzCj4gPiBleHRlbnNpb25zIDxwbHVnaW4+IGVsZW1lbnRzIGluIHByb2JsZU4gcG9tLnhtbCBmaWxlcy4gRmlyc3QsIHRoZXJlIGlzCj4gPiBubyBtZWFuaW5nZnVsIG9yZGVyIGJldHdlZW4gPGV4dGVuc2lvbnM+IGFuZCA8cGx1Z2lucz4gZWxlbWVudHMuIE1vcmUKPiA+IGltcG9ydGFudGx5LCB0aG91Z2gsIHNpbXBsZSA8ZXh0ZW5zaW9ucz4gYXJlIHRyZWF0ZWQgaW4gc3BlY2lhbAo+ID4gbWF2ZW4yLWNvbXBhdCBtb2RlIGFuZCBhcmUgbm90IHJlcHJlc2VudGF0aXZlIG9mIGxpa2VseSByZWFsLXdvcmxkCj4gPiBleHRlbnNpb25zLgo+PTIwCj49MjAKPiBUaGF0IHNvdW5kcyBsaWtlIHdlIG5lZWQgZG9jdW1lbnRhdGlvbiB1cGRhdGVkIHRoZW4uIE5vbmUgb2YgdGhhdCBpcwo+IG9idmlvdXMgdG8gbWUuCj49MjAKPj0yMAo+ID4KPiA+ICogSSB0aGluayB3ZSBzaG91bGQgaW50cm9kdWNlIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgdG8gdGhlIHRlc3QKPiA+IGV4dGVuc2lvbnMuIFRoaXMgbWV0YWRhdGEgd2hhdCBpbnRyb2R1Y2VkIHRvIGNvbmZpZ3VyZSBjbGFzc3BhdGgKPiA+IHZpc2liaWxpdHksIHNvIGxldHMgdXNlIGl0Lgo+PTIwCj49MjAKPiBBZ2Fpbiwgbm90IG9idmlvdXMgdG8gbWUsIGlmIHRoYXQgZmlsZSBhbGxvd3MgY29udHJvbCBvZiBjbGFzc3BhdGgKPiB2aXNpYmlsaXR5IHRoZW4gaXQgbWF5IGJlIHRoYXQgdGhlIG9ubHkgaXNzdWUgKndpdGgqIDMuNS4xIGlzIHRoZSBsYWNrIG9mCj4gZG9jdW1lbnRhdGlvbi4uLiBub3cgcHJldmlvdXMgdmVyc2lvbnMgd291bGQgaGF2ZSBiZWVuIGFkZGluZyBicmVha2luZwo+IGNoYW5nZXMgZnJvbSBteSBQb1YgYnV0IHRoYXQgaXMgdGhlIHBhc3QgYW5kIHNob3VsZCBub3QgYWZmZWN0IHRoZSAzLjUuMQo+IHJlbGVhc2UuCj49MjAKPiBQUnMgZm9yIHRoZSBwcm9iZSBwcm9qZWN0IHdlbGNvbWUuIEkgYW0gaGFwcHkgdG8gdHJ5IGFuZCB3cml0ZSBkb2NzIG9uY2UKPiBJCj4gaGF2ZSBhbiB1bmRlcnN0YW5kaW5nIG9mIHdoYXQgdGhlIGV4cGVjdGVkIGJlaGF2aW91cnMgYXJlCj49MjAKPj0yMAo+ID4KPiA+IC0tCj4gPiBSZWdhcmRzLAo+ID4gSWdvcgo+ID4KPiA+IE9uIFR1ZSwgU2VwIDE5LCAyMDE3LCBhdCAwNToxMiBQTSwgU3RlcGhlbiBDb25ub2xseSB3cm90ZToKPiA+ID4gWWVzLCB0aGUgZXhwZWN0YXRpb25zIGFyZSBrZXkuIERlcGVuZGluZyBvbiB3aGF0IHRoZXkgYXJlIHdlIG1heSBlaXRoPQplcgo+ID4gPiBkcm9wIDMuNS4xIG9yIGdvIGFoZWFkIGFzIGl0IGRlcGVuZHMgb24gd2hldGhlciB0aGlzIGlzIG1vcmUgY29ycmVjdCA9CnRoYW4KPiA+ID4gMy41LjAgb3Igc3dhcHBpbmcgb25lIGZpeCBmb3IgYSBidWcKPiA+ID4KPiA+ID4gT24gVHVlIDE5IFNlcCAyMDE3IGF0IDIxOjM5LCBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvbT4gd3JvPQp0ZToKPiA+ID4KPiA+ID4gPiBKdXN0IHRvIGNvbmZpcm0gSSB1bmRlcnN0YW5kIHdoYXQgd2UgYXJlIHRyeWluZyB0byBlc3RhYmxpc2ggaGVyZS4gPQpXZQo+ID4gPiA+IHdhbnQgdG8gZGVjaWRlIHRoZSBleHBlY3RlZC9kZXNpcmVkIGNvbXBvbmVudCBpbmplY3Rpb24gYmVoYXZpb3VyIGE9Cm5kCj4gPiA+ID4gY2xhc3NwYXRoIHZpc2liaWxpdHkgaW4gdGhlIGFic2VuY2Ugb2YgcGFja2FnZSBhbmQgYXJ0aWZhY3QgZXhwb3J0Cj4gPiA+ID4gY29uZmlndXJhdGlvbiAoaS5lLiBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sIGZpbGUpLiBEaWQgSSBnZXQgdD0KaGlzCj4gPiA+ID4gcmlnaHQ/Cj4gPiA+ID4KPiA+ID4gPiAtLQo+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4gSWdvcgo+ID4gPiA+Cj4gPiA+ID4gT24gVHVlLCBTZXAgMTksIDIwMTcsIGF0IDAzOjUyIFBNLCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPiA+ID4gPiA+IExldCdzIGRvIGl0IGxpa2UgdGhpczoKPiA+ID4gPiA+Cj4gPiA+ID4KPiA+IGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rvd25sb2FkL2F0dGFjaG1lbnRzLzIzMjk4NDEvY2xhc3NyPQplYWxtcy5wZGY/YXBpPTNEdjIKPiA+ID4gPiA+Cj4gPiA+ID4gPiBSb2JlcnQKPiA+ID4gPiA+Cj4gPiA+ID4gPiBPbiBUdWUsIDE5IFNlcCAyMDE3IDIxOjA4OjM5ICswMjAwLCBTdGVwaGVuIENvbm5vbGx5Cj4gPiA+ID4gPiA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+ID4gPgo+ID4gPiA+ID4gPiBJIHRoaW5rIHlvdSB3aWxsIG5lZWQgYSBsaW5rIHRvIHRoZSBQREYgYXMgYXR0YWNobWVudHMgYXJlIHN0cmk9CnBwZWQKPiA+ID4gPiBmcm9tCj4gPiA+ID4gPiA+IHRoZSBNTAo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBPbiBUdWUgMTkgU2VwIDIwMTcgYXQgMTk6NTcsIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm89CnJnPgo+ID4gPiA+IHdyb3RlOgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPj4gQXR0YWNoZWQgYSBzaW5nbGUgcGFnZSBvdmVydmlldy4KPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+PiBQZXIgYmxvY2sgeW91J2xsIHNlZSBpbiB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgdGhlIGV4ZWN1dGVkIHBsdT0KZ2luCj4gPiA+ID4gPiA+PiBUaGUgbGVmdCBjb2x1bW4gY29udGFpbnMgdGhlIGV4dGVuc2lvbnMgYW5kIHBsdWdpbiBpbiBvcmRlcmFzCj4gPiA+ID4gc3BlY2lmaWVkCj4gPiA+ID4gPiA+PiBpbgo+ID4gPiA+ID4gPj4gdGhlIHBvbS54bWwKPiA+ID4gPiA+ID4+IEluIGV2ZXJ5IGNsYXNzbG9hZGVyY29sdW1uIHlvdSdsbCBzZWUgbnVtYmVycyB3aGljaCByZXByZXNlbnQgPQp0aGUKPiA+ID4gPiBvcmRlci4KPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+PiBJIGhvcGUgSSBkaWRuJ3QgbWFrZSBhbnkgbWlzdGFrZXMuCj4gPiA+ID4gPiA+PiBUb21vcnJvdyBJIGhhdmUgZW5vdWdoIHRpbWUgdG8gc2VlIGlmIEkgdW5kZXJzdGFuZCB3aGF0J3MKPiA+IGhhcHBlbmluZwo+ID4gPiA+ID4gPj4gaGVyZS4KPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+PiBJIHdpbGwgY29tZSBiYWNrIHdpdGggbXkgY29uY2x1c2lvbnMuCj4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPj4gUm9iZXJ0Cj4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPj4gT24gVHVlLCAxOSBTZXAgMjAxNyAwNjo1NTowOCArMDIwMCwgSWdvciBGZWRvcmVua28gPAo+ID4gPiA+IGlnb3JAaWZlZG9yZW5rby5jb20+Cj4gPiA+ID4gPiA+PiB3cm90ZToKPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+PiA+IFRMO0RSIHlvdXIgdGVzdCBwcm9qZWN0IGV4cG9zZWQgdHdvIGV4aXN0aW5nIGJ1Z3MsIG9uZSBjaGFuZz0KZSBpbgo+ID4gPiA+ID4gPj4gPiBiZWhhdmlvdXIgYW5kIG9uZSBxdWlyayBJIGNhbid0IGV4cGxhaW4KPiA+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4+ID4gKiBCdWlsZCBgPGV4dGVuc2lvbnM+YCBhcmUgbG9hZGVkIGJ5IHR3byBjbGFzc2xvYWRlcnMsIHdoaWNoPQogaXMKPiA+IGEKPiA+ID4gPiBidWcKPiA+ID4gPiA+ID4+IGluCj4gPiA+ID4gPiA+PiA+IERlZmF1bHRQcm9qZWN0QnVpbGRpbmdIZWxwZXIjY3JlYXRlUHJvamVjdFJlYWxtIGFuZCBleHBsYWlucwo+ID4gd2h5IHlvdQo+ID4gPiA+ID4gPj4gc2VlCj4gPiA+ID4gPiA+PiA+IGV4dGphcjEvZXh0amFyMiBpbiB0aGUgb3V0cHV0Cj4gPiA+ID4gPiA+PiA+ICogQ2xhc3NSZWFsbSBkb2VzIG5vdCBhbGxvdyBzYW1lIGZvcmVpZ24taW1wb3J0IGZyb20gbXVsdGlwbGUKPiA+ID4gPiA+ID4+ID4gY2xhc3Nsb2FkZXJzLCB3aGljaCBpcyBhIGJ1ZyBhbmQgZXhwbGFpbnMgd2h5IGl0IGlzIG5vdAo+ID4gcG9zc2libGUgdG8KPiA+ID4gPiA+ID4+IGxvYWQKPiA+ID4gPiA+ID4+ID4gc2FtZSByZXNvdXJjZSBmcm9tIG11bHRpcGxlIHBsdWdpbnMvZXh0ZW5zaW9ucwo+ID4gPiA+ID4gPj4gPiAqIFRDQ0wgZG9lcyBub3QgaGF2ZSBhY2Nlc3MgdG8gcHJpdmF0ZSAoaS5lLiBub3QgZXhwb3J0ZWQpCj4gPiByZXNvdXJjZXMKPiA+ID4gPiA+ID4+IG9mCj4gPiA+ID4gPiA+PiA+IHRoaXMgZXh0ZW5zaW9ucyBwbHVnaW4sIHdoaWNoIGlzIGEgY2hhbmdlIG9mIGJlaGF2aW91cgo+ID4gaW50cm9kdWNlZCBieQo+ID4gPiA+ID4gPj4gPiBtbmctNjIwOSBmaXgKPiA+ID4gPiA+ID4+ID4gKiBBbHNvLCBjb21wb25lbnQgaW5qZWN0aW9uIG9yZGVyIGFwcGVhcnMgdG8gYmUgYmFja3dhcmRzLCBiPQp1dAo+ID4gbWF5YmUKPiA+ID4gPiA+ID4+ID4gU3R1YXJ0IGNhbiBleHBsYWluIHdoeS4KPiA+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4+ID4gQmVsb3cgaXMgbW9yZSBkZXRhaWxlZCBleHBsYW5hdGlvbiBvZiBleHBlY3RlZCBhbmQgb2JzZXJ2ZWQKPiA+ID4gPiBiZWhhdmlvdXIKPiA+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4+ID4gIyMgQ29tcG9uZW50IGluamVjdGlvbiBkZXBlbmRzIG9uIHRoZSBjdXJyZW50bHkgcnVubmluZyBwbHVnPQppbgo+ID4gYW5kCj4gPiA+ID4gdGhlCj4gPiA+ID4gPiA+PiA+IGluamVjdGlvbiBzaXRlCj4gPiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+PiA+IEN1cnJlbnRseSBydW5uaW5nIHBsdWdpbnMgaGF2ZSBhY2Nlc3MgdG8gdGhlIGZvbGxvd2luZyBjb21wbz0KbmVudAo+ID4gPiA+ID4gPj4gPiBpbXBsZW1lbnRhdGlvbnM6Cj4gPiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+PiA+ICogUmVndWxhciBwbHVnaW4gaGFzIGFjY2VzcyB0byBjb21wb25lbnRzIGltcGxlbWVudGVkIGJ5IHRoZQo+ID4gcGx1Z2luLAo+ID4gPiA+ID4gPj4gPiBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMsIGlmIGFueSAodmlhIHByb2plY3QgY2xhc3MgcmVhbG0KPiA+IGZvcmVpZ24KPiA+ID4gPiA+ID4+ID4gaW1wb3J0KSBhbmQgTWF2ZW4gQ29yZS4KPiA+ID4gPiA+ID4+ID4gKiBFeHRlbnNpb24gcGx1Z2luIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50cyBpbXBsZW1lbnRlZCBieSB0PQpoZQo+ID4gPiA+IHByb2plY3QKPiA+ID4gPiA+ID4+ID4gYnVpbGQgZXh0ZW5zaW9ucyBhbmQgTWF2ZW4gQ29yZS4KPiA+ID4gPiA+ID4+ID4gKiBXaXRob3V0IGEgcnVubmluZyBwbHVnaW4gKGUuZy4sIGR1cmluZyBwcm9qZWN0IGRlcGVuZGVuY3kKPiA+ID4gPiA+ID4+IHJlc29sdXRpb24pLAo+ID4gPiA+ID4gPj4gPiBjb21wb25lbnRzIGltcGxlbWVudGVkIGJ5IHRoZSBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMgYW5kIE09CmF2ZW4KPiA+ID4gPiBDb3JlCj4gPiA+ID4gPiA+PiA+IGFyZSBhY2Nlc3NpYmxlLgo+ID4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPj4gPiBEaWZmZXJlbnQgaW5qZWN0aW9uIHNpdGVzIGhhdmUgYWNjZXNzIHRvIHRoZSBmb2xsb3dpbmcgY29tcG89Cm5lbnQKPiA+ID4gPiA+ID4+ID4gaW50ZXJmYWNlczoKPiA+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4+ID4gKiBNYXZlbiBDb3JlIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50IGludGVyZmFjZXMgZGVmaW5lZCBieSB0PQpoZQo+ID4gY29yZQo+ID4gPiA+ID4gPj4gPiBpdHNlbGYgKG9idmlvdXNseSkKPiA+ID4gPiA+ID4+ID4gKiBQcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMgaGF2ZSBhY2Nlc3MgdG8gKipwdWJsaWMqKiBjb21wb25lPQpudAo+ID4gPiA+ID4gPj4gPiBpbnRlcmZhY2VzIGRlZmluZWQgYnkgTWF2ZW4gQ29yZSBhbmQgY29tcG9uZW50IGludGVyZmFjZXMKPiA+IGRlZmluZWQgYnkKPiA+ID4gPiA+ID4+IHRoZQo+ID4gPiA+ID4gPj4gPiBidWlsZCBleHRlbnNpb24gaXRzZWxmICh0aGVyZSBpcyBubyB3YXkgdG8gYWNjZXNzIGNvbXBvbmVudAo+ID4gPiA+IGludGVyZmFjZXMKPiA+ID4gPiA+ID4+ID4gZGVmaW5lZCBpbiBvdGhlciBleHRlbnNpb25zKQo+ID4gPiA+ID4gPj4gPiAqIFJlZ3VsYXIgcGx1Z2lucyBoYXZlIGFjY2VzcyB0byAqKnB1YmxpYyoqIGNvbXBvbmVudCBpbnRlcmY9CmFjZXMKPiA+ID4gPiA+ID4+IGRlZmluZWQKPiA+ID4gPiA+ID4+ID4gYnkgTWF2ZW4gQ29yZSwgY29tcG9uZW50IGludGVyZmFjZXMgKipleHBvcnRlZCoqIGJ5IGJ1aWxkCj4gPiBleHRlbnNpb25zCj4gPiA+ID4gPiA+PiBhbmQKPiA+ID4gPiA+ID4+ID4gY29tcG9uZW50IGludGVyZmFjZXMgZGVmaW5lZCBpbiB0aGUgcGx1Z2luIGl0c2VsZgo+ID4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPj4gPiBGb3IgaW5qZWN0aW9uIHRvIHdvcmssIGluamVjdGlvbiBzaXRlIGhhcyB0byBoYXZlIGFjY2VzcyB0byA9CnRoZQo+ID4gPiA+ID4gPj4gPiBjb21wb25lbnQgaW50ZXJmYWNlIGFuZCB0aGUgY29tcG9uZW50IGltcGxlbWVudGF0aW9uIG11c3QgYmUKPiA+ID4gPiA+ID4+IGFjY2Vzc2libGUKPiA+ID4gPiA+ID4+ID4gdGhyb3VnaCB0aGUgY3VycmVudCBjb250ZXh0Lgo+ID4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPj4gPiBGcm9tIHdoYXQgSSBjYW4gdGVsbCwgaW4geW91ciBleGFtcGxlIGFsbCBwbHVnaW5zIGhhdmUgYWNjZXNzCj4gPiB0byB0aGUKPiA+ID4gPiA+ID4+ID4gcmlnaHQgY29tcG9uZW50cyB3aGVuIHVzaW5nIGN1cnJlbnQgMy41LjItU05BUFNIT1QuIFRoZQo+ID4gaW5qZWN0aW9uCj4gPiA+ID4gPiA+PiBvcmRlcgo+ID4gPiA+ID4gPj4gPiBkb2VzIGFwcGVhciB0byBiZSBiYWNrd2FyZHMgZnJvbSB3aGF0IEkgZXhwZWN0ZWQsIGhvd2V2ZXIuCj4gPiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+PiA+ICMjIFJlc291cmNlcyBsb29rdXAgZnVsbHkgZGVwZW5kcyBvbiBjbGFzc3BhdGggdmlzaWJpbGl0eSwKPiA+ID4gPiA+ID4+IHNwZWNpZmljYWxseQo+ID4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPj4gPiAqIFJlZ3VsYXIgcGx1Z2luIGNsYXNzIHJlYWxtIGhhcyBhY2Nlc3MgdG8gcmVzb3VyY2VzIGZyb20gdGhlCj4gPiBwbHVnaW4KPiA+ID4gPiA+ID4+ID4gaXRzZWxmLCBmcm9tICoqZXhwb3J0ZWQqKiBwYWNrYWdlcyBvZiB0aGUgcHJvamVjdCBidWlsZAo+ID4gZXh0ZW5zaW9ucwo+ID4gPiA+IGFuZAo+ID4gPiA+ID4gPj4gPiAqKnB1YmxpYyoqIE1hdmVuIENvcmUgcGFja2FnZXMKPiA+ID4gPiA+ID4+ID4gKiBFeHRlbnNpb25zIHBsdWdpbiBjbGFzcyByZWFsbSBoYXMgYWNjZXNzIHRvIHRoZSByZXNvdXJjZXMKPiA+IGZyb20gdGhlCj4gPiA+ID4gPiA+PiA+IGV4dGVuc2lvbnMgcGx1Z2luIGl0c2VsZiBhbmQgZnJvbSAqKnB1YmxpYyoqIE1hdmVuIENvcmUgcGFjaz0KYWdlcwo+ID4gPiA+ID4gPj4gPiAqIFByb2plY3QgY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byBjbGFzc2VzIGFuZCByZXNvdXJjZXMKPiA+ID4gPiAqKmV4cG9ydGVkKioKPiA+ID4gPiA+ID4+ID4gYnkgcHJvamVjdCBidWlsZCBleHRlbnNpb25zIGFuZCAqKnB1YmxpYyoqIE1hdmVuIENvcmUgcGFja2FnPQplcwo+ID4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPj4gPiBJIHNlZSB0aHJlZSBwcm9ibGVtcyBoZXJlCj4gPiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+PiA+ICogTWF2ZW4gYWRkcyBidWlsZCBzaW5nbGUtamFyIGA8ZXh0ZW5zaW9ucz5gIGVsZW1lbnRzIGRpcmVjdD0KbHkKPiA+IHRvCj4gPiA+ID4gPiA+PiA+IHByb2plY3QgY2xhc3MgcmVhbG0gKiphbmQqKiBjcmVhdGVzIHNlcGFyYXRlIGV4dGVuc2lvbnMgY2xhc3MKPiA+IHJlYWxtcwo+ID4gPiA+ID4gPj4gZm9yCj4gPiA+ID4gPiA+PiA+IHRoZW0uIFdoaWNoIHJlc3VsdHMgaW4gZHVwbGljYXRlIGNsYXNzZXMvcmVzb3VyY2VzIGxvYWRlZCBieT0KIHR3bwo+ID4gPiA+ID4gPj4gPiBjbGFzc2xvYWRlcnMgYW5kIGV4cGxhaW5zIHdoeSB5b3Ugc2VlIGV4dGphcjEvZXh0amFyMiBvdXRwdXQKPiA+ICh3aGljaAo+ID4gPiA+ID4gPj4geW91Cj4gPiA+ID4gPiA+PiA+IHNob3VsZG4ndCBhY2NvcmRpbmcgdG8gdGhlIGV4cGxhbmF0aW9uIGFib3ZlKQo+ID4gPiA+ID4gPj4gPiAqIENsYXNzUmVhbG0gZG9lcyBub3QgYWxsb3cgZm9yZWlnbi1pbXBvcnQgb2YgdGhlIHNhbWUgcGFja2E9CmdlCj4gPiBmcm9tCj4gPiA+ID4gPiA+PiA+IG11bHRpcGxlIGNsYXNzbG9hZGVycy4gVGhpcyBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIGxvYWQgdGhlID0Kc2FtZQo+ID4gPiA+ID4gPj4gPiByZXNvdXJjZSBmcm9tIG11bHRpcGxlIHBsdWdpbnMvZXh0ZW5zaW9ucy4KPiA+ID4gPiA+ID4+ID4gKiBFeHRlbnNpb25zIHBsdWdpbnMgY2Fubm90IGFjY2VzcyB0aGVpciBvd24gcHJpdmF0ZSAoaS5lLiBuPQpvdAo+ID4gPiA+ID4gPj4gZXhwb3J0ZWQpCj4gPiA+ID4gPiA+PiA+IHJlc291cmNlcyB2aWEgVENDTCwgdGhpcyBpcyBjaGFuZ2UgaW4gYmVoYXZpb3VyIGludHJvZHVjZWQgYnkKPiA+ID4gPiBtbmctNjIwOQo+ID4gPiA+ID4gPj4gPiBmaXgKPiA+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4+ID4gSG9wZSB0aGlzIGhlbHBzCj4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPj4KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiA+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+Cj4gPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLS0tLQo+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+Cj4gPiA+ID4KPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotLQo+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+Cj4gPiA+ID4gLS0KPiA+ID4gU2VudCBmcm9tIG15IHBob25lCj4gPgo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4KPiA+IC0tCj4gU2VudCBmcm9tIG15IHBob25lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQwNzktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIFNlcCAyMCAxMTo0NDo1NyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwNzktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQUNFMzZDQzk1Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMjAgU2VwIDIwMTcgMTE6NDQ6NTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2OTE4MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBTZXAgMjAxNyAxMTo0NDo1NyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjkxMDQgaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgU2VwIDIwMTcgMTE6NDQ6NTcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2OTA5MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDIwIFNlcCAyMDE3IDExOjQ0OjU2IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAyMCBTZXAgMjAxNyAxMTo0NDo1NiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDZBMDc0MUEwREMzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyMCBTZXAgMjAxNyAxMTo0NDo1NiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjAyMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC4wMjEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglLQU1fQVNDSUlfRElWSURFUlM9MC44LCBSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWlmZWRvcmVua28uY29tIGhlYWRlci5iPUhjakwwUFV3OwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPW1lc3NhZ2luZ2VuZ2luZS5jb20KCWhlYWRlci5iPXJJTUZQdkJ5ClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBMUUd2d2JBRmZPbGcgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsIDIwIFNlcCAyMDE3IDExOjQ0OjU0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG91dDEtc210cC5tZXNzYWdpbmdlbmdpbmUuY29tIChvdXQxLXNtdHAubWVzc2FnaW5nZW5naW5lLmNvbSBbNjYuMTExLjQuMjVdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgOUMzM0U2MEQ5MAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjAgU2VwIDIwMTcgMTE6NDQ6NTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gY29tcHV0ZTIuaW50ZXJuYWwgKGNvbXB1dGUyLm55aS5pbnRlcm5hbCBbMTAuMjAyLjIuNDJdKQoJYnkgbWFpbG91dC5ueWkuaW50ZXJuYWwgKFBvc3RmaXgpIHdpdGggRVNNVFAgaWQgQ0RFNkEyMEI4NwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjAgU2VwIDIwMTcgMDc6NDQ6NTIgLTA0MDAgKEVEVCkKUmVjZWl2ZWQ6IGZyb20gd2ViMiAoWzEwLjIwMi4yLjIxMl0pCiAgYnkgY29tcHV0ZTIuaW50ZXJuYWwgKE1FUHJveHkpOyBXZWQsIDIwIFNlcCAyMDE3IDA3OjQ0OjUyIC0wNDAwCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7IGQ9aWZlZG9yZW5rby5jb207CgkgaD1jb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOmNvbnRlbnQtdHlwZTpkYXRlOmZyb206aW4tcmVwbHktdG8KCTptZXNzYWdlLWlkOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOnN1YmplY3Q6dG86eC1tZS1zZW5kZXIKCTp4LW1lLXNlbmRlcjp4LXNhc2wtZW5jOyBzPWZtMTsgYmg9cnJ4MnJPRnJGUWpDamNaU2swVDQ5dkE4Q1hORVMKCXpTSHhyWXhsbzRCYk9zPTsgYj1IY2pMMFBVdy84RUZzbTF2TnplYmxhRGNtbjdkbFhjZjhhdmJJRXZJUVFVUXAKCUtDR0t6aC9SMnRtMXp2amZEMi9FbGlIVXdPL2JvdWRDOGJRazlVMW1OOGtOdlFwUWw1R0N4czV2dXFadHp1amMKCS9YTVdkLzJOQ2U3R0VZS3NsSFVPVXI5YUNHWm5TaFd2UUpZRWE5M2VTMHlqN0Z2SXlFVjVwMHc1UUdDVml3QzgKCUMzN0hqb2laSjZMTC9EcVNJd2lqNjhLdHBKNjJQclcrT1FLdWJvc0EwOGlHamNKc1BiczlrU2UzKzRzazJvS3EKCXh3Z2wxMVNVZUFHNVh4ZWtUcFpZeHBBSWpPdmpkbm5FNCs5dldwOHI1NmJLN2RZQXUya3IzcHl1YzBUVytVbUEKCUpwVmd2TVJLOXBWNWZYcjBmNkhldVVtMTkwajhtSFJHelVsQXQzYldRPT0KREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsgZD0KCW1lc3NhZ2luZ2VuZ2luZS5jb207IGg9Y29udGVudC10cmFuc2Zlci1lbmNvZGluZzpjb250ZW50LXR5cGUKCTpkYXRlOmZyb206aW4tcmVwbHktdG86bWVzc2FnZS1pZDptaW1lLXZlcnNpb246cmVmZXJlbmNlcwoJOnN1YmplY3Q6dG86eC1tZS1zZW5kZXI6eC1tZS1zZW5kZXI6eC1zYXNsLWVuYzsgcz1mbTE7IGJoPXJyeDJyTwoJRnJGUWpDamNaU2swVDQ5dkE4Q1hORVN6U0h4cll4bG80QmJPcz07IGI9cklNRlB2QnkzVWFMWEZsUncrVFhtNAoJekNUc1VzMHlFS05DUENMK3MxYThHM3BLNTMvRXdNd2NjZ3U2ejZsSWZ0a3g2VUd0UExXejg4TkRNWnNjOWxpNAoJMERNQUF3RFNLSGhIYldMVi8vNFdhRzcvR2JPSVcxRDFzcGsrN1pMNk1pY1p1c3pITmwzN3RCUXhwUEFjQ01hTAoJUlBhenpETjVPQUtPOEVZUGhUZkV1ZjJqVERVdjJZYmo1RjN2cUw5YkVMREZ0Z3JvYkEySjdMYWhKODYyZlB3SQoJdzlETWNaU1JHSnBkZG4vT3UwdGMvUHVOSTNidDhqUWgwNmpXSStSbjBmVXl5RllrckRvUHFsVFpVZ3V6TFlBRgoJTVJHQmlHQUFrT05PTXgvYnFhZ1R5SDZwYXdsZTBuMVlZdmk4UTFXaVpFU0RwdlM0bzh0RnNSdVR0R1VjRmxGZwoJPT0KWC1NRS1TZW5kZXI6IDx4bXM6dEZUQ1dUa2xDMWxCTlNFRVdSTGp4a1FHZ1hzN2c4MTByNHJVWWhkNUtBRTR1Nk94YzNtMFRBPgpSZWNlaXZlZDogYnkgbWFpbHVzZXIubnlpLmludGVybmFsIChQb3N0Zml4LCBmcm9tIHVzZXJpZCA5OSkKCWlkIDk4MTc0NjI2NEU7IFdlZCwgMjAgU2VwIDIwMTcgMDc6NDQ6NTIgLTA0MDAgKEVEVCkKTWVzc2FnZS1JZDogPDE1MDU5MDc4OTIuMjI3MjQ4LjExMTIyODIzMTIuMDkzREE4QzVAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgpGcm9tOiBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvbT4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJ1dGYtOCIKWC1NYWlsZXI6IE1lc3NhZ2luZ0VuZ2luZS5jb20gV2VibWFpbCBJbnRlcmZhY2UgLSBhamF4LTY0YjA4NjkyCkRhdGU6IFdlZCwgMjAgU2VwIDIwMTcgMDc6NDQ6NTIgLTA0MDAKUmVmZXJlbmNlczogPENBK25Qbk13TUNxT19FdGNCVzVfM3JNNzEtdENyaXRwNFVrc3lmUG1ER0FZcjZ4ej1vUUBtYWlsLmdtYWlsLmNvbT4KIDxGMUY4QjNDRi1EREFDLTQ0QkEtQUVCNy00MTIyQzg4N0M0QUJAaG9udG9uLm9yZz4KIDxDQStuUG5Nd2ZfQmZ0WXVzLXJuUXJPN281K2R1R0Z6MFZFYTdOaW9oRzFfX1lVenJjNXdAbWFpbC5nbWFpbC5jb20+CiA8MTUwNTc5NjkwOC4yNTE2ODA4LjExMTA2NzMxMjguNjM1QUMzNUZAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgogPG9wLnk2dHRtcmVia2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgogPENBK25Qbk14RkZFVFFtcXRlMC01MHUzRUZTd2JnNnlpcHc1VlNCZExQd1R6UGhkVms1d0BtYWlsLmdtYWlsLmNvbT4KIDxvcC55NnR2NWtmM2tka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KIDwxNTA1ODUzNTQwLjM0NDM0NjUuMTExMTYyMDY0MC4zMzFCRTU4QUB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CiA8Q0ErblBuTXprTnZCRl9GY3QtRT03cWZHUWZwSFVCS1QxOWNXQzM4U0NxdHE2a3ZpZTlnQG1haWwuZ21haWwuY29tPgogPDE1MDU4NjczNzQuMzQ5Mzg0Mi4xMTExNzk2NTIwLjUxMjRBQ0E2QHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KIDxDQStuUG5NeHFIYTN5QlJGV3IraU9Fc09taGtYOExjZ2MwTTRkRzlzeXVjTHNQYUxSNUFAbWFpbC5nbWFpbC5jb20+CiA8b3AueTZ1c2V1d3lrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+ClN1YmplY3Q6IFJlOiBVbmRlcnN0YW5kaW5nIE1ORy02MjA5ICh3YXM6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMSkKSW4tUmVwbHktVG86IDxvcC55NnVzZXV3eWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KClJlYWwtd29ybGQgc2NtIG9yIHdhZ29uIDxleHRlbnNpb25zPiB3b24ndCB0cmlnZ2VyIG1hdmVuMi1jb21wYXQgY29kZQpwYXRoIFsxXS4gVG8gYXZvaWQgdGhhdCBvYnNjdXJlIGNvZGUgcGF0aCB3ZSBjYW4gZWl0aGVyIG1ha2UgdGhlIHRlc3QKbW9yZSBlbGFib3JhdGUgKGkuZS4gYWRkIGRlcGVuZGVuY2llcyB0byBleHRqYXIxL2V4dGphcjIpIG9yIHdlIGNhbiB1c2UKZXh0ZW5zaW9ucyA8cGx1Z2luPi4gRWl0aGVyIHdheSBJIGRvbid0IHRoaW5rIHdlIHNob3VsZCBzcGVuZCB0aW1lIG9uCnRoZSBjb2RlIHBhdGggdW5saWtlbHkgdG8gYmUgdXNlZCBpbiByZWFsIGxpZmUuCgpbMV0KaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9ibG9iL21hdmVuLTMuNS4xL21hdmVuLWNvcmUvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3Byb2plY3QvRGVmYXVsdFByb2plY3RCdWlsZGluZ0hlbHBlci5qYXZhI0wyMTAtTDIxOQoKLS0gClJlZ2FyZHMsCklnb3IKCk9uIFdlZCwgU2VwIDIwLCAyMDE3LCBhdCAwMzoyOSBBTSwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4gT24gV2VkLCAyMCBTZXAgMjAxNyAwOToxMjo0NyArMDIwMCwgU3RlcGhlbiBDb25ub2xseSAgCj4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+IAo+ID4gT24gV2VkIDIwIFNlcCAyMDE3IGF0IDAxOjI5LCBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvbT4gd3JvdGU6Cj4gPgo+ID4+IEluIHRoYXQgY2FzZSwgY2FuIEkgc3VnZ2VzdCBjb3VwbGUgb2YgY2hhbmdlcyB0byB0aGUgdGVzdCBwcm9qZWN0Cj4gPj4KPiA+PiAqIEkgdGhpbmtzIGl0IG1ha2VzIG1vcmUgc2Vuc2UgdG8gY29uZmlndXJlIGV4dGphcjEgYW5kIGV4dGphcjIgYXMKPiA+PiBleHRlbnNpb25zIDxwbHVnaW4+IGVsZW1lbnRzIGluIHByb2JsZU4gcG9tLnhtbCBmaWxlcy4gRmlyc3QsIHRoZXJlIGlzCj4gPj4gbm8gbWVhbmluZ2Z1bCBvcmRlciBiZXR3ZWVuIDxleHRlbnNpb25zPiBhbmQgPHBsdWdpbnM+IGVsZW1lbnRzLiBNb3JlCj4gPj4gaW1wb3J0YW50bHksIHRob3VnaCwgc2ltcGxlIDxleHRlbnNpb25zPiBhcmUgdHJlYXRlZCBpbiBzcGVjaWFsCj4gPj4gbWF2ZW4yLWNvbXBhdCBtb2RlIGFuZCBhcmUgbm90IHJlcHJlc2VudGF0aXZlIG9mIGxpa2VseSByZWFsLXdvcmxkCj4gPj4gZXh0ZW5zaW9ucy4KPiA+Cj4gCj4gTm90IHN1cmUgSSBhZ3JlZSB3aXRoIHRoaXMuIEkgdGhpbmsgdGhlcmUgYXJlIGphcnMgd29ydGggc2hhcmluZyBhY3Jvc3MgIAo+IG11bHRpcGxlIHBsdWdpbnMsIGJ1dCB3aGVyZSBtYWtpbmcgdGhlIHBsdWdpbiBhbiBleHRlbnNpb24gaXMgYSBiaXQKPiB3ZWlyZC4KPiBJJ20gdGhpbmtpbmcgb2Ygc2NtIGFuZCB3YWdvbiBpbiB0aGlzIGNhc2UuCj4gCj4gPgo+ID4gVGhhdCBzb3VuZHMgbGlrZSB3ZSBuZWVkIGRvY3VtZW50YXRpb24gdXBkYXRlZCB0aGVuLiBOb25lIG9mIHRoYXQgaXMKPiA+IG9idmlvdXMgdG8gbWUuCj4gPgo+ID4KPiA+Pgo+ID4+ICogSSB0aGluayB3ZSBzaG91bGQgaW50cm9kdWNlIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgdG8gdGhlIHRlc3QKPiA+PiBleHRlbnNpb25zLiBUaGlzIG1ldGFkYXRhIHdoYXQgaW50cm9kdWNlZCB0byBjb25maWd1cmUgY2xhc3NwYXRoCj4gPj4gdmlzaWJpbGl0eSwgc28gbGV0cyB1c2UgaXQuCj4gPgo+ID4KPiA+IEFnYWluLCBub3Qgb2J2aW91cyB0byBtZSwgaWYgdGhhdCBmaWxlIGFsbG93cyBjb250cm9sIG9mIGNsYXNzcGF0aAo+ID4gdmlzaWJpbGl0eSB0aGVuIGl0IG1heSBiZSB0aGF0IHRoZSBvbmx5IGlzc3VlICp3aXRoKiAzLjUuMSBpcyB0aGUgbGFjayBvZgo+ID4gZG9jdW1lbnRhdGlvbi4uLiBub3cgcHJldmlvdXMgdmVyc2lvbnMgd291bGQgaGF2ZSBiZWVuIGFkZGluZyBicmVha2luZwo+ID4gY2hhbmdlcyBmcm9tIG15IFBvViBidXQgdGhhdCBpcyB0aGUgcGFzdCBhbmQgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIDMuNS4xCj4gPiByZWxlYXNlLgo+ID4KPiA+IFBScyBmb3IgdGhlIHByb2JlIHByb2plY3Qgd2VsY29tZS4gSSBhbSBoYXBweSB0byB0cnkgYW5kIHdyaXRlIGRvY3Mgb25jZSAgCj4gPiBJCj4gPiBoYXZlIGFuIHVuZGVyc3RhbmRpbmcgb2Ygd2hhdCB0aGUgZXhwZWN0ZWQgYmVoYXZpb3VycyBhcmUKPiA+Cj4gPgo+ID4+Cj4gPj4gLS0KPiA+PiBSZWdhcmRzLAo+ID4+IElnb3IKPiA+Pgo+ID4+IE9uIFR1ZSwgU2VwIDE5LCAyMDE3LCBhdCAwNToxMiBQTSwgU3RlcGhlbiBDb25ub2xseSB3cm90ZToKPiA+PiA+IFllcywgdGhlIGV4cGVjdGF0aW9ucyBhcmUga2V5LiBEZXBlbmRpbmcgb24gd2hhdCB0aGV5IGFyZSB3ZSBtYXkgIAo+ID4+IGVpdGhlcgo+ID4+ID4gZHJvcCAzLjUuMSBvciBnbyBhaGVhZCBhcyBpdCBkZXBlbmRzIG9uIHdoZXRoZXIgdGhpcyBpcyBtb3JlIGNvcnJlY3QgIAo+ID4+IHRoYW4KPiA+PiA+IDMuNS4wIG9yIHN3YXBwaW5nIG9uZSBmaXggZm9yIGEgYnVnCj4gPj4gPgo+ID4+ID4gT24gVHVlIDE5IFNlcCAyMDE3IGF0IDIxOjM5LCBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvbT4gIAo+ID4+IHdyb3RlOgo+ID4+ID4KPiA+PiA+ID4gSnVzdCB0byBjb25maXJtIEkgdW5kZXJzdGFuZCB3aGF0IHdlIGFyZSB0cnlpbmcgdG8gZXN0YWJsaXNoIGhlcmUuICAKPiA+PiBXZQo+ID4+ID4gPiB3YW50IHRvIGRlY2lkZSB0aGUgZXhwZWN0ZWQvZGVzaXJlZCBjb21wb25lbnQgaW5qZWN0aW9uIGJlaGF2aW91ciAgCj4gPj4gYW5kCj4gPj4gPiA+IGNsYXNzcGF0aCB2aXNpYmlsaXR5IGluIHRoZSBhYnNlbmNlIG9mIHBhY2thZ2UgYW5kIGFydGlmYWN0IGV4cG9ydAo+ID4+ID4gPiBjb25maWd1cmF0aW9uIChpLmUuIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgZmlsZSkuIERpZCBJIGdldCAgCj4gPj4gdGhpcwo+ID4+ID4gPiByaWdodD8KPiA+PiA+ID4KPiA+PiA+ID4gLS0KPiA+PiA+ID4gUmVnYXJkcywKPiA+PiA+ID4gSWdvcgo+ID4+ID4gPgo+ID4+ID4gPiBPbiBUdWUsIFNlcCAxOSwgMjAxNywgYXQgMDM6NTIgUE0sIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+ID4+ID4gPiA+IExldCdzIGRvIGl0IGxpa2UgdGhpczoKPiA+PiA+ID4gPgo+ID4+ID4gPgo+ID4+IGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rvd25sb2FkL2F0dGFjaG1lbnRzLzIzMjk4NDEvY2xhc3NyZWFsbXMucGRmP2FwaT12Mgo+ID4+ID4gPiA+Cj4gPj4gPiA+ID4gUm9iZXJ0Cj4gPj4gPiA+ID4KPiA+PiA+ID4gPiBPbiBUdWUsIDE5IFNlcCAyMDE3IDIxOjA4OjM5ICswMjAwLCBTdGVwaGVuIENvbm5vbGx5Cj4gPj4gPiA+ID4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4+ID4gPiA+Cj4gPj4gPiA+ID4gPiBJIHRoaW5rIHlvdSB3aWxsIG5lZWQgYSBsaW5rIHRvIHRoZSBQREYgYXMgYXR0YWNobWVudHMgYXJlICAKPiA+PiBzdHJpcHBlZAo+ID4+ID4gPiBmcm9tCj4gPj4gPiA+ID4gPiB0aGUgTUwKPiA+PiA+ID4gPiA+Cj4gPj4gPiA+ID4gPiBPbiBUdWUgMTkgU2VwIDIwMTcgYXQgMTk6NTcsIFJvYmVydCBTY2hvbHRlICAKPiA+PiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Cj4gPj4gPiA+IHdyb3RlOgo+ID4+ID4gPiA+ID4KPiA+PiA+ID4gPiA+PiBBdHRhY2hlZCBhIHNpbmdsZSBwYWdlIG92ZXJ2aWV3Lgo+ID4+ID4gPiA+ID4+Cj4gPj4gPiA+ID4gPj4gUGVyIGJsb2NrIHlvdSdsbCBzZWUgaW4gdGhlIHVwcGVyIGxlZnQgY29ybmVyIHRoZSBleGVjdXRlZCAgCj4gPj4gcGx1Z2luCj4gPj4gPiA+ID4gPj4gVGhlIGxlZnQgY29sdW1uIGNvbnRhaW5zIHRoZSBleHRlbnNpb25zIGFuZCBwbHVnaW4gaW4gb3JkZXJhcwo+ID4+ID4gPiBzcGVjaWZpZWQKPiA+PiA+ID4gPiA+PiBpbgo+ID4+ID4gPiA+ID4+IHRoZSBwb20ueG1sCj4gPj4gPiA+ID4gPj4gSW4gZXZlcnkgY2xhc3Nsb2FkZXJjb2x1bW4geW91J2xsIHNlZSBudW1iZXJzIHdoaWNoIHJlcHJlc2VudCAgCj4gPj4gdGhlCj4gPj4gPiA+IG9yZGVyLgo+ID4+ID4gPiA+ID4+Cj4gPj4gPiA+ID4gPj4gSSBob3BlIEkgZGlkbid0IG1ha2UgYW55IG1pc3Rha2VzLgo+ID4+ID4gPiA+ID4+IFRvbW9ycm93IEkgaGF2ZSBlbm91Z2ggdGltZSB0byBzZWUgaWYgSSB1bmRlcnN0YW5kIHdoYXQncwo+ID4+IGhhcHBlbmluZwo+ID4+ID4gPiA+ID4+IGhlcmUuCj4gPj4gPiA+ID4gPj4KPiA+PiA+ID4gPiA+PiBJIHdpbGwgY29tZSBiYWNrIHdpdGggbXkgY29uY2x1c2lvbnMuCj4gPj4gPiA+ID4gPj4KPiA+PiA+ID4gPiA+PiBSb2JlcnQKPiA+PiA+ID4gPiA+Pgo+ID4+ID4gPiA+ID4+IE9uIFR1ZSwgMTkgU2VwIDIwMTcgMDY6NTU6MDggKzAyMDAsIElnb3IgRmVkb3JlbmtvIDwKPiA+PiA+ID4gaWdvckBpZmVkb3JlbmtvLmNvbT4KPiA+PiA+ID4gPiA+PiB3cm90ZToKPiA+PiA+ID4gPiA+Pgo+ID4+ID4gPiA+ID4+ID4gVEw7RFIgeW91ciB0ZXN0IHByb2plY3QgZXhwb3NlZCB0d28gZXhpc3RpbmcgYnVncywgb25lICAKPiA+PiBjaGFuZ2UgaW4KPiA+PiA+ID4gPiA+PiA+IGJlaGF2aW91ciBhbmQgb25lIHF1aXJrIEkgY2FuJ3QgZXhwbGFpbgo+ID4+ID4gPiA+ID4+ID4KPiA+PiA+ID4gPiA+PiA+ICogQnVpbGQgYDxleHRlbnNpb25zPmAgYXJlIGxvYWRlZCBieSB0d28gY2xhc3Nsb2FkZXJzLCB3aGljaCAgCj4gPj4gaXMKPiA+PiBhCj4gPj4gPiA+IGJ1Zwo+ID4+ID4gPiA+ID4+IGluCj4gPj4gPiA+ID4gPj4gPiBEZWZhdWx0UHJvamVjdEJ1aWxkaW5nSGVscGVyI2NyZWF0ZVByb2plY3RSZWFsbSBhbmQgZXhwbGFpbnMKPiA+PiB3aHkgeW91Cj4gPj4gPiA+ID4gPj4gc2VlCj4gPj4gPiA+ID4gPj4gPiBleHRqYXIxL2V4dGphcjIgaW4gdGhlIG91dHB1dAo+ID4+ID4gPiA+ID4+ID4gKiBDbGFzc1JlYWxtIGRvZXMgbm90IGFsbG93IHNhbWUgZm9yZWlnbi1pbXBvcnQgZnJvbSBtdWx0aXBsZQo+ID4+ID4gPiA+ID4+ID4gY2xhc3Nsb2FkZXJzLCB3aGljaCBpcyBhIGJ1ZyBhbmQgZXhwbGFpbnMgd2h5IGl0IGlzIG5vdAo+ID4+IHBvc3NpYmxlIHRvCj4gPj4gPiA+ID4gPj4gbG9hZAo+ID4+ID4gPiA+ID4+ID4gc2FtZSByZXNvdXJjZSBmcm9tIG11bHRpcGxlIHBsdWdpbnMvZXh0ZW5zaW9ucwo+ID4+ID4gPiA+ID4+ID4gKiBUQ0NMIGRvZXMgbm90IGhhdmUgYWNjZXNzIHRvIHByaXZhdGUgKGkuZS4gbm90IGV4cG9ydGVkKQo+ID4+IHJlc291cmNlcwo+ID4+ID4gPiA+ID4+IG9mCj4gPj4gPiA+ID4gPj4gPiB0aGlzIGV4dGVuc2lvbnMgcGx1Z2luLCB3aGljaCBpcyBhIGNoYW5nZSBvZiBiZWhhdmlvdXIKPiA+PiBpbnRyb2R1Y2VkIGJ5Cj4gPj4gPiA+ID4gPj4gPiBtbmctNjIwOSBmaXgKPiA+PiA+ID4gPiA+PiA+ICogQWxzbywgY29tcG9uZW50IGluamVjdGlvbiBvcmRlciBhcHBlYXJzIHRvIGJlIGJhY2t3YXJkcywgIAo+ID4+IGJ1dAo+ID4+IG1heWJlCj4gPj4gPiA+ID4gPj4gPiBTdHVhcnQgY2FuIGV4cGxhaW4gd2h5Lgo+ID4+ID4gPiA+ID4+ID4KPiA+PiA+ID4gPiA+PiA+Cj4gPj4gPiA+ID4gPj4gPiBCZWxvdyBpcyBtb3JlIGRldGFpbGVkIGV4cGxhbmF0aW9uIG9mIGV4cGVjdGVkIGFuZCBvYnNlcnZlZAo+ID4+ID4gPiBiZWhhdmlvdXIKPiA+PiA+ID4gPiA+PiA+Cj4gPj4gPiA+ID4gPj4gPgo+ID4+ID4gPiA+ID4+ID4gIyMgQ29tcG9uZW50IGluamVjdGlvbiBkZXBlbmRzIG9uIHRoZSBjdXJyZW50bHkgcnVubmluZyAgCj4gPj4gcGx1Z2luCj4gPj4gYW5kCj4gPj4gPiA+IHRoZQo+ID4+ID4gPiA+ID4+ID4gaW5qZWN0aW9uIHNpdGUKPiA+PiA+ID4gPiA+PiA+Cj4gPj4gPiA+ID4gPj4gPiBDdXJyZW50bHkgcnVubmluZyBwbHVnaW5zIGhhdmUgYWNjZXNzIHRvIHRoZSBmb2xsb3dpbmcgIAo+ID4+IGNvbXBvbmVudAo+ID4+ID4gPiA+ID4+ID4gaW1wbGVtZW50YXRpb25zOgo+ID4+ID4gPiA+ID4+ID4KPiA+PiA+ID4gPiA+PiA+ICogUmVndWxhciBwbHVnaW4gaGFzIGFjY2VzcyB0byBjb21wb25lbnRzIGltcGxlbWVudGVkIGJ5IHRoZQo+ID4+IHBsdWdpbiwKPiA+PiA+ID4gPiA+PiA+IHByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucywgaWYgYW55ICh2aWEgcHJvamVjdCBjbGFzcyByZWFsbQo+ID4+IGZvcmVpZ24KPiA+PiA+ID4gPiA+PiA+IGltcG9ydCkgYW5kIE1hdmVuIENvcmUuCj4gPj4gPiA+ID4gPj4gPiAqIEV4dGVuc2lvbiBwbHVnaW4gaGFzIGFjY2VzcyB0byBjb21wb25lbnRzIGltcGxlbWVudGVkIGJ5ICAKPiA+PiB0aGUKPiA+PiA+ID4gcHJvamVjdAo+ID4+ID4gPiA+ID4+ID4gYnVpbGQgZXh0ZW5zaW9ucyBhbmQgTWF2ZW4gQ29yZS4KPiA+PiA+ID4gPiA+PiA+ICogV2l0aG91dCBhIHJ1bm5pbmcgcGx1Z2luIChlLmcuLCBkdXJpbmcgcHJvamVjdCBkZXBlbmRlbmN5Cj4gPj4gPiA+ID4gPj4gcmVzb2x1dGlvbiksCj4gPj4gPiA+ID4gPj4gPiBjb21wb25lbnRzIGltcGxlbWVudGVkIGJ5IHRoZSBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMgYW5kICAKPiA+PiBNYXZlbgo+ID4+ID4gPiBDb3JlCj4gPj4gPiA+ID4gPj4gPiBhcmUgYWNjZXNzaWJsZS4KPiA+PiA+ID4gPiA+PiA+Cj4gPj4gPiA+ID4gPj4gPiBEaWZmZXJlbnQgaW5qZWN0aW9uIHNpdGVzIGhhdmUgYWNjZXNzIHRvIHRoZSBmb2xsb3dpbmcgIAo+ID4+IGNvbXBvbmVudAo+ID4+ID4gPiA+ID4+ID4gaW50ZXJmYWNlczoKPiA+PiA+ID4gPiA+PiA+Cj4gPj4gPiA+ID4gPj4gPiAqIE1hdmVuIENvcmUgaGFzIGFjY2VzcyB0byBjb21wb25lbnQgaW50ZXJmYWNlcyBkZWZpbmVkIGJ5ICAKPiA+PiB0aGUKPiA+PiBjb3JlCj4gPj4gPiA+ID4gPj4gPiBpdHNlbGYgKG9idmlvdXNseSkKPiA+PiA+ID4gPiA+PiA+ICogUHJvamVjdCBidWlsZCBleHRlbnNpb25zIGhhdmUgYWNjZXNzIHRvICoqcHVibGljKiogIAo+ID4+IGNvbXBvbmVudAo+ID4+ID4gPiA+ID4+ID4gaW50ZXJmYWNlcyBkZWZpbmVkIGJ5IE1hdmVuIENvcmUgYW5kIGNvbXBvbmVudCBpbnRlcmZhY2VzCj4gPj4gZGVmaW5lZCBieQo+ID4+ID4gPiA+ID4+IHRoZQo+ID4+ID4gPiA+ID4+ID4gYnVpbGQgZXh0ZW5zaW9uIGl0c2VsZiAodGhlcmUgaXMgbm8gd2F5IHRvIGFjY2VzcyBjb21wb25lbnQKPiA+PiA+ID4gaW50ZXJmYWNlcwo+ID4+ID4gPiA+ID4+ID4gZGVmaW5lZCBpbiBvdGhlciBleHRlbnNpb25zKQo+ID4+ID4gPiA+ID4+ID4gKiBSZWd1bGFyIHBsdWdpbnMgaGF2ZSBhY2Nlc3MgdG8gKipwdWJsaWMqKiBjb21wb25lbnQgIAo+ID4+IGludGVyZmFjZXMKPiA+PiA+ID4gPiA+PiBkZWZpbmVkCj4gPj4gPiA+ID4gPj4gPiBieSBNYXZlbiBDb3JlLCBjb21wb25lbnQgaW50ZXJmYWNlcyAqKmV4cG9ydGVkKiogYnkgYnVpbGQKPiA+PiBleHRlbnNpb25zCj4gPj4gPiA+ID4gPj4gYW5kCj4gPj4gPiA+ID4gPj4gPiBjb21wb25lbnQgaW50ZXJmYWNlcyBkZWZpbmVkIGluIHRoZSBwbHVnaW4gaXRzZWxmCj4gPj4gPiA+ID4gPj4gPgo+ID4+ID4gPiA+ID4+ID4gRm9yIGluamVjdGlvbiB0byB3b3JrLCBpbmplY3Rpb24gc2l0ZSBoYXMgdG8gaGF2ZSBhY2Nlc3MgdG8gIAo+ID4+IHRoZQo+ID4+ID4gPiA+ID4+ID4gY29tcG9uZW50IGludGVyZmFjZSBhbmQgdGhlIGNvbXBvbmVudCBpbXBsZW1lbnRhdGlvbiBtdXN0IGJlCj4gPj4gPiA+ID4gPj4gYWNjZXNzaWJsZQo+ID4+ID4gPiA+ID4+ID4gdGhyb3VnaCB0aGUgY3VycmVudCBjb250ZXh0Lgo+ID4+ID4gPiA+ID4+ID4KPiA+PiA+ID4gPiA+PiA+IEZyb20gd2hhdCBJIGNhbiB0ZWxsLCBpbiB5b3VyIGV4YW1wbGUgYWxsIHBsdWdpbnMgaGF2ZSBhY2Nlc3MKPiA+PiB0byB0aGUKPiA+PiA+ID4gPiA+PiA+IHJpZ2h0IGNvbXBvbmVudHMgd2hlbiB1c2luZyBjdXJyZW50IDMuNS4yLVNOQVBTSE9ULiBUaGUKPiA+PiBpbmplY3Rpb24KPiA+PiA+ID4gPiA+PiBvcmRlcgo+ID4+ID4gPiA+ID4+ID4gZG9lcyBhcHBlYXIgdG8gYmUgYmFja3dhcmRzIGZyb20gd2hhdCBJIGV4cGVjdGVkLCBob3dldmVyLgo+ID4+ID4gPiA+ID4+ID4KPiA+PiA+ID4gPiA+PiA+Cj4gPj4gPiA+ID4gPj4gPiAjIyBSZXNvdXJjZXMgbG9va3VwIGZ1bGx5IGRlcGVuZHMgb24gY2xhc3NwYXRoIHZpc2liaWxpdHksCj4gPj4gPiA+ID4gPj4gc3BlY2lmaWNhbGx5Cj4gPj4gPiA+ID4gPj4gPgo+ID4+ID4gPiA+ID4+ID4gKiBSZWd1bGFyIHBsdWdpbiBjbGFzcyByZWFsbSBoYXMgYWNjZXNzIHRvIHJlc291cmNlcyBmcm9tIHRoZQo+ID4+IHBsdWdpbgo+ID4+ID4gPiA+ID4+ID4gaXRzZWxmLCBmcm9tICoqZXhwb3J0ZWQqKiBwYWNrYWdlcyBvZiB0aGUgcHJvamVjdCBidWlsZAo+ID4+IGV4dGVuc2lvbnMKPiA+PiA+ID4gYW5kCj4gPj4gPiA+ID4gPj4gPiAqKnB1YmxpYyoqIE1hdmVuIENvcmUgcGFja2FnZXMKPiA+PiA+ID4gPiA+PiA+ICogRXh0ZW5zaW9ucyBwbHVnaW4gY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byB0aGUgcmVzb3VyY2VzCj4gPj4gZnJvbSB0aGUKPiA+PiA+ID4gPiA+PiA+IGV4dGVuc2lvbnMgcGx1Z2luIGl0c2VsZiBhbmQgZnJvbSAqKnB1YmxpYyoqIE1hdmVuIENvcmUgIAo+ID4+IHBhY2thZ2VzCj4gPj4gPiA+ID4gPj4gPiAqIFByb2plY3QgY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byBjbGFzc2VzIGFuZCByZXNvdXJjZXMKPiA+PiA+ID4gKipleHBvcnRlZCoqCj4gPj4gPiA+ID4gPj4gPiBieSBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMgYW5kICoqcHVibGljKiogTWF2ZW4gQ29yZSAgCj4gPj4gcGFja2FnZXMKPiA+PiA+ID4gPiA+PiA+Cj4gPj4gPiA+ID4gPj4gPiBJIHNlZSB0aHJlZSBwcm9ibGVtcyBoZXJlCj4gPj4gPiA+ID4gPj4gPgo+ID4+ID4gPiA+ID4+ID4gKiBNYXZlbiBhZGRzIGJ1aWxkIHNpbmdsZS1qYXIgYDxleHRlbnNpb25zPmAgZWxlbWVudHMgIAo+ID4+IGRpcmVjdGx5Cj4gPj4gdG8KPiA+PiA+ID4gPiA+PiA+IHByb2plY3QgY2xhc3MgcmVhbG0gKiphbmQqKiBjcmVhdGVzIHNlcGFyYXRlIGV4dGVuc2lvbnMgY2xhc3MKPiA+PiByZWFsbXMKPiA+PiA+ID4gPiA+PiBmb3IKPiA+PiA+ID4gPiA+PiA+IHRoZW0uIFdoaWNoIHJlc3VsdHMgaW4gZHVwbGljYXRlIGNsYXNzZXMvcmVzb3VyY2VzIGxvYWRlZCBieSAgCj4gPj4gdHdvCj4gPj4gPiA+ID4gPj4gPiBjbGFzc2xvYWRlcnMgYW5kIGV4cGxhaW5zIHdoeSB5b3Ugc2VlIGV4dGphcjEvZXh0amFyMiBvdXRwdXQKPiA+PiAod2hpY2gKPiA+PiA+ID4gPiA+PiB5b3UKPiA+PiA+ID4gPiA+PiA+IHNob3VsZG4ndCBhY2NvcmRpbmcgdG8gdGhlIGV4cGxhbmF0aW9uIGFib3ZlKQo+ID4+ID4gPiA+ID4+ID4gKiBDbGFzc1JlYWxtIGRvZXMgbm90IGFsbG93IGZvcmVpZ24taW1wb3J0IG9mIHRoZSBzYW1lICAKPiA+PiBwYWNrYWdlCj4gPj4gZnJvbQo+ID4+ID4gPiA+ID4+ID4gbXVsdGlwbGUgY2xhc3Nsb2FkZXJzLiBUaGlzIG1ha2VzIGl0IGltcG9zc2libGUgdG8gbG9hZCB0aGUgIAo+ID4+IHNhbWUKPiA+PiA+ID4gPiA+PiA+IHJlc291cmNlIGZyb20gbXVsdGlwbGUgcGx1Z2lucy9leHRlbnNpb25zLgo+ID4+ID4gPiA+ID4+ID4gKiBFeHRlbnNpb25zIHBsdWdpbnMgY2Fubm90IGFjY2VzcyB0aGVpciBvd24gcHJpdmF0ZSAoaS5lLiAgCj4gPj4gbm90Cj4gPj4gPiA+ID4gPj4gZXhwb3J0ZWQpCj4gPj4gPiA+ID4gPj4gPiByZXNvdXJjZXMgdmlhIFRDQ0wsIHRoaXMgaXMgY2hhbmdlIGluIGJlaGF2aW91ciBpbnRyb2R1Y2VkIGJ5Cj4gPj4gPiA+IG1uZy02MjA5Cj4gPj4gPiA+ID4gPj4gPiBmaXgKPiA+PiA+ID4gPiA+PiA+Cj4gPj4gPiA+ID4gPj4gPiBIb3BlIHRoaXMgaGVscHMKPiA+PiA+ID4gPiA+Pgo+ID4+ID4gPiA+ID4+Cj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gPiA+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+ID4gPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPiA+ID4KPiA+PiA+ID4gPiAgCj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPiA+ID4KPiA+PiA+ID4KPiA+PiA+ID4gIAo+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPiA+Cj4gPj4gPiA+IC0tCj4gPj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+Pgo+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Cj4gPj4gLS0KPiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+IAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+IAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MDk0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBTZXAgMjQgMTc6NTk6MDIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDk0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDQyMUVGRjE0NQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDI0IFNlcCAyMDE3IDE3OjU5OjAyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDMyMzggaW52b2tlZCBieSB1aWQgNTAwKTsgMjQgU2VwIDIwMTcgMTc6NTg6NTcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQzMTY3IGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IFNlcCAyMDE3IDE3OjU4OjU2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDMxNTIgaW52b2tlZCBieSB1aWQgOTkpOyAyNCBTZXAgMjAxNyAxNzo1ODo1NiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMjQgU2VwIDIwMTcgMTc6NTg6NTYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBFRjJBOTE4MzVEMgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjQgU2VwIDIwMTcgMTc6NTg6NTUgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4wMjEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMDIxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1pZmVkb3JlbmtvLmNvbSBoZWFkZXIuYj1qMkZodG5sdDsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1tZXNzYWdpbmdlbmdpbmUuY29tCgloZWFkZXIuYj1LVGVJVU5wSwpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGFheDR1Z1JkVFdnOSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgMjQgU2VwIDIwMTcgMTc6NTg6NTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gb3V0MS1zbXRwLm1lc3NhZ2luZ2VuZ2luZS5jb20gKG91dDEtc210cC5tZXNzYWdpbmdlbmdpbmUuY29tIFs2Ni4xMTEuNC4yNV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAzMDUxNTVGMkFECglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAyNCBTZXAgMjAxNyAxNzo1ODo1MiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBjb21wdXRlMi5pbnRlcm5hbCAoY29tcHV0ZTIubnlpLmludGVybmFsIFsxMC4yMDIuMi40Ml0pCglieSBtYWlsb3V0Lm55aS5pbnRlcm5hbCAoUG9zdGZpeCkgd2l0aCBFU01UUCBpZCBFMzIwRTIwQkMzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAyNCBTZXAgMjAxNyAxMzo1ODo1MSAtMDQwMCAoRURUKQpSZWNlaXZlZDogZnJvbSB3ZWIyIChbMTAuMjAyLjIuMjEyXSkKICBieSBjb21wdXRlMi5pbnRlcm5hbCAoTUVQcm94eSk7IFN1biwgMjQgU2VwIDIwMTcgMTM6NTg6NTEgLTA0MDAKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsgZD1pZmVkb3JlbmtvLmNvbTsKCSBoPWNvbnRlbnQtdHJhbnNmZXItZW5jb2Rpbmc6Y29udGVudC10eXBlOmRhdGU6ZnJvbTppbi1yZXBseS10bwoJOm1lc3NhZ2UtaWQ6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6c3ViamVjdDp0bzp4LW1lLXNlbmRlcgoJOngtbWUtc2VuZGVyOngtc2FzbC1lbmM7IHM9Zm0xOyBiaD1ZSWtWOEdSaENOR0YvUTkyWkZVdXNKWnRmSnpKRAoJakhYaGFVU3BZbGUrZUU9OyBiPWoyRmh0bmx0Nll1ZndIbzJYYjRFZUc0OXBtTnV4VTFyM3pWNHFmTzhJY2NuWAoJYVRrb1hCY0xTZDlTOWo0eVdRVUJhMW11UndTc2FQZi9UbTFXbUdUZHNJa295WGlDdkdRdDk1ZVRVSC9uWkYrNgoJZjJUd3dvOTB4UVZuMHU1RDhqNm1US2ZrWTBrVFdiSUJIKzFQMk9sb0V1OVlMT3R2UnRxeDV3MlQ2TUo1RUdnWgoJWU9jSVphNHRJWlFIUmw3blJwMm5kYnJjMjFWOHJ1MEZPTmp1aUsxZko3QzkrczBtZmU0MnVTM09oRVRyUHVrUQoJb1JmR2g5QmNUYlRKN2JESytrOWh2Q2hiTTU3TVllckl1aVkxalc1dVM1bUN5dko5bkdSRnZjL2xnN0w4WDJFbAoJNUsreUlFbWdTdXJiM2lVOXV4aEZIVGZTMzNDQ0IvZEZySFlYWlpZcWc9PQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOyBkPQoJbWVzc2FnaW5nZW5naW5lLmNvbTsgaD1jb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOmNvbnRlbnQtdHlwZQoJOmRhdGU6ZnJvbTppbi1yZXBseS10bzptZXNzYWdlLWlkOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzCgk6c3ViamVjdDp0bzp4LW1lLXNlbmRlcjp4LW1lLXNlbmRlcjp4LXNhc2wtZW5jOyBzPWZtMTsgYmg9WUlrVjhHCglSaENOR0YvUTkyWkZVdXNKWnRmSnpKRGpIWGhhVVNwWWxlK2VFPTsgYj1LVGVJVU5wSzFFQVFHMWVrL3R4b1R5CglwMzR1ZzhLUUNTVTAyUlNHZnJFMEo3ZUJ2V0FPQXdRRml4a1RhZWh2N1EwUFRVbG9xMGEyc293Q0ZkRXRIbDU0CglXSVh5ZjJqeVJwL0pVMUpmVEhkNW5HNGpORmNFVWlObHErZzFZaUpmZnJsUFcxTXFIK1ZJVmdhWUdiZVdVQ1FJCglVdjNLYlArU2dvWFZVL053SnB2VW9KL3RSZFJzWmNLNUoyU2pOSjgwKytISkNFcklOSWNQMU5jQy9Nai9GR3gvCglZWk1FQlVCdHFyZmRzVmFCSFhaRDFpK1BwNlFVMlVnTDZhVkMxclp2Z2RmNDlOOGNBOUUwV3NNMExOT2V0emI3CgllaVQyYm44V1B1c1gwVEZxOW0yZTE2MUVtbWlnMjI5ekVINExwNmxVQ1pvM1VHME5pSDRXK0VqOEt5QWVTbHRBCgk9PQpYLU1FLVNlbmRlcjogPHhtczpXX0xIV1U1bUMzaXYzTGc1WHVJU3NBeWU0SkxTZ3g4di1vLUsxSTRudlBEMTIxOVR5UUVrRkE+ClJlY2VpdmVkOiBieSBtYWlsdXNlci5ueWkuaW50ZXJuYWwgKFBvc3RmaXgsIGZyb20gdXNlcmlkIDk5KQoJaWQgQjg2OTg2MjZBMjsgU3VuLCAyNCBTZXAgMjAxNyAxMzo1ODo1MSAtMDQwMCAoRURUKQpNZXNzYWdlLUlkOiA8MTUwNjI3NTkzMS4yMDgxODgxLjExMTY1Njc4NzIuNDUyQjJGMDRAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgpGcm9tOiBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvbT4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJ1dGYtOCIKWC1NYWlsZXI6IE1lc3NhZ2luZ0VuZ2luZS5jb20gV2VibWFpbCBJbnRlcmZhY2UgLSBhamF4LTY0YjA4NjkyClN1YmplY3Q6IFJlOiBVbmRlcnN0YW5kaW5nIE1ORy02MjA5ICh3YXM6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMSkKUmVmZXJlbmNlczogPENBK25Qbk13TUNxT19FdGNCVzVfM3JNNzEtdENyaXRwNFVrc3lmUG1ER0FZcjZ4ej1vUUBtYWlsLmdtYWlsLmNvbT4KIDxGMUY4QjNDRi1EREFDLTQ0QkEtQUVCNy00MTIyQzg4N0M0QUJAaG9udG9uLm9yZz4KIDxDQStuUG5Nd2ZfQmZ0WXVzLXJuUXJPN281K2R1R0Z6MFZFYTdOaW9oRzFfX1lVenJjNXdAbWFpbC5nbWFpbC5jb20+CiA8MTUwNTc5NjkwOC4yNTE2ODA4LjExMTA2NzMxMjguNjM1QUMzNUZAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgogPG9wLnk2dHRtcmVia2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgogPENBK25Qbk14RkZFVFFtcXRlMC01MHUzRUZTd2JnNnlpcHc1VlNCZExQd1R6UGhkVms1d0BtYWlsLmdtYWlsLmNvbT4KIDxvcC55NnR2NWtmM2tka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KIDwxNTA1ODUzNTQwLjM0NDM0NjUuMTExMTYyMDY0MC4zMzFCRTU4QUB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CiA8Q0ErblBuTXprTnZCRl9GY3QtRT03cWZHUWZwSFVCS1QxOWNXQzM4U0NxdHE2a3ZpZTlnQG1haWwuZ21haWwuY29tPgogPDE1MDU4NjczNzQuMzQ5Mzg0Mi4xMTExNzk2NTIwLjUxMjRBQ0E2QHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KIDxDQStuUG5NeHFIYTN5QlJGV3IraU9Fc09taGtYOExjZ2MwTTRkRzlzeXVjTHNQYUxSNUFAbWFpbC5nbWFpbC5jb20+CiA8b3AueTZ1c2V1d3lrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CiA8MTUwNTkwNzg5Mi4yMjcyNDguMTExMjI4MjMxMi4wOTNEQThDNUB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CiA8Q0ErblBuTXp1K1l2S1FYM3ZUPUFCa0szcGNHUC1NaHh0c2lva1QwQ3NrekFiak05eDdBQG1haWwuZ21haWwuY29tPgpJbi1SZXBseS1UbzogPENBK25Qbk16dStZdktRWDN2VD1BQmtLM3BjR1AtTWh4dHNpb2tUMENza3pBYmpNOXg3QUBtYWlsLmdtYWlsLmNvbT4KRGF0ZTogU3VuLCAyNCBTZXAgMjAxNyAxMzo1ODo1MSAtMDQwMAoKU2VlIG15IGFuc3dlcnMvY29tbWVudHMgaW5saW5lCgoKT24gU3VuLCBTZXAgMjQsIDIwMTcsIGF0IDEyOjA3IFBNLCBTdGVwaGVuIENvbm5vbGx5IHdyb3RlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvbWluaS9ndWlkZS1tYXZlbi1jbGFzc2xvYWRpbmcuaHRtbCBzYXlzOgo+IAo+ID4gV2hlbiBhIGJ1aWxkIHBsdWdpbiBpcyBleGVjdXRlZCwgdGhlIHRocmVhZCdzIGNvbnRleHQgY2xhc3Nsb2FkZXIgaXMgc2V0Cj4gdG8gdGhlIHBsdWdpbiBjbGFzc2xvYWRlci4KPiAKPiBTbyB3ZSdsbCBuZWVkIHRvIGZpeCBzb21ldGhpbmcgc29tZXdoZXJlLi4uCj4gCj4gaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL21hdmVuL2NvbnRlbnQvcmVmZXJlbmNlL21hdmVuLWNsYXNzbG9hZGluZy5odG1sCj4gaXMgdW5hY2Nlc3NpYmxlIGZyb20gdGhlIHdlYnNpdGUgZHVlIHRvIGEgcmV3cml0ZSBydWxlLi4uCj4gCj4gVGhpbmdzIHRoYXQgc2VlbSB0byBiZSBtaXNzaW5nOgo+IAo+ICogV2hhdCBpcyB0aGUgZGVzaXJlZCBjbGFzc2xvYWRpbmcgZm9yIGEgcGx1Z2luIHRoYXQgaXMgbWFya2VkIGFzIGFuCj4gZXh0ZW5zaW9uPyBDYW4gYSBwbHVnaW4gaGF2ZSBhIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgdG8gYWxsb3cKPiBleHBvcnRpbmcgY2xhc3NlcyBhbmQgYXJ0aWZhY3RzIHdoZW4gdXNlZCBhcyBhbiBleHRlbnNpb24/IEhvdyBzaG91bGQgdGhlCj4gY2xhc3Nsb2FkaW5nIGxvb2sgZm9yIHN1Y2ggYSBzdHJhbmdlIGJlYXN0LgoKVG8gbWUsIHRoZSBrZXkgcmVxdWlyZW1lbnQgaXMgdGhhdCBAU2luZ2xldG9uIGNvbXBvbmVudHMgYW5kIGNsYXNzCnN0YXRpYyBtZW1iZXJzIGFyZSBzaW5nbGV0b25zIHdoZW4gaW5qZWN0ZWQgaW4gTWF2ZW4gY29yZSBvciBpbiBATW9qb3MuClRoaXMgaW1wbGllcyB0aGF0IHRoZXJlIHNob3VsZCBiZSBzaW5nbGUgY2xhc3Nsb2FkZXIgcmVwcmVzZW50aW5nIGFuCmV4dGVuc2lvbnMgcGx1Z2lucyAoTU5HLTU3NDIpLgoKTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCBkZWNsYXJlcyB3aGF0IHBhY2thZ2VzIG9mIHRoZSBleHRlbnNpb24KcGx1Z2luIGFyZSB2aXNpYmxlIHRvIG90aGVyIChub24gZXh0ZW5zaW9uKSBwbHVnaW5zLgpNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sIGRvZXMgbm90IGFmZmVjdCBjbGFzc2xvYWRpbmcgb2YgdGhlCmV4dGVuc2lvbiBwbHVnaW4gbm9yIGl0IGFmZmVjdHMgdGhlICJzaGFwZSIgb2Ygb3RoZXIgY2xhc3Nsb2FkZXJzLgoKPiAqIEhvdyBkb2VzIG9uZSBhY2Nlc3MgdGhlIHBsdWdpbiBjbGFzc2xvYWRlciBpZiB3ZSB3YW50IFRDQ0wgdG8gYmUgb3RoZXIKPiB0aGFuIHRoYXQsIGlzIGl0IGEgRGVwZW5kZW5jeSBJbmplY3Rpb24gb3Igc29tZXRoaW5nIGVsc2U/Cgp0aGlzLmdldENsYXNzKCkuZ2V0Q2xhc3NMb2FkZXIoKSBpcyB0aGUgbW9zdCBkaXJlY3Qgd2F5IHRvIGFjY2VzcyBwbHVnaW4KY2xhc3Nsb2FkZXIuIFdoeSBkbyB5b3UgdGhpbmsgd2UgbmVlZCBhbnl0aGluZyBtb3JlIGVsYWJvcmF0ZT8KCgo+ICogV2hhdCBkaWZmZXJlbnRpYXRlcyBhIENvcmUgZXh0ZW5zaW9uIGZyb20gYSBCdWlsZCBleHRlbnNpb24gKGlzIGl0IHRoYXQKPiBhCj4gYnVpbGQgZXh0ZW5zaW9uIGxhY2tzIGEgTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCBhbmQgd2FzIG9ubHkKPiBkZWNsYXJlZAo+IGluIHRoZSBwb20ueG1sLCB3aGlsZSBhIGNvcmUgZXh0ZW5zaW9uIGVpdGhlciBoYXMgYQo+IE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgLSBpZiBkZWNsYXJlZCBpbiB0aGUgcG9tIC0gb3IgaXMgYW4KPiBleHRlbnNpb24KPiBkZWNsYXJlZCBpbiAubXZuL2V4dGVuc2lvbnMueG1sKQoKQ29yZSBleHRlbnNpb25zIGFyZSBsb2FkZWQgKmJlZm9yZSogYnVpbGQgc3RhcnRzLCBzbyB0aGV5IGNhbiBjb250cmlidXRlCkFic3RyYWN0TWF2ZW5MaWZlY3ljbGVQYXJ0aWNpcGFudCNhZnRlclNlc3Npb25TdGFydCwgZm9yIGV4YW1wbGUuIFRoZXkKY2FuIGFsc28gZXhwb3J0IHBhY2thZ2VzIHZpc2libGUgdG8gYWxsIGJ1aWxkIHBsdWdpbnMsIGluY2x1ZGluZwpleHRlbnNpb25zPXRydWUuIE9uIHRoZSBmbGlwIHNpZGUsIGVhY2ggY29yZSBleHRlbnNpb24gaXMgZWZmZWN0aXZlbHkKc2luZ2xldG9uLCB5b3UgY2FuJ3QgaGF2ZSB0d28gZGlmZmVyZW50IHZlcnNpb25zIG9mIHRoZSBzYW1lIENvcmUKZXh0ZW5zaW9uLiBDb3JlIGV4dGVuc2lvbnMgYWxzbyBoYXZlIGRpcmVjdCBhY2Nlc3MgdG8gTWF2ZW4gY29yZSBjbGFzc2VzCmFuZCBjYW4gZG8gbW9yZSBpbnRlcmVzdGluZyB0aGluZ3MgdGhlcmUgKGZvciBiZXR0ZXIgb3Igd29yc2UpLgoKQnVpbGQgZXh0ZW5zaW9ucyBhcmUgcGFydCBvZiB0aGUgcHJvamVjdCBidWlsZCBhbmQgYXMgc3VjaCBhcmUgbGltaXRlZAp3aGF0IGNvbXBvbmVudHMgdGhleSBjYW4gY29udHJpYnV0ZSB0byB0aGUgQ29yZSBhbmQgd2hhdCBjb3JlIGNsYXNzZXMKdGhleSBoYXZlIGFjY2VzcyB0by4KCkkgdHJpZWQgdG8gY2FwdHVyZSB0aGlzIGluIHRoZSBkaWFncmFtIEkgZHJldyBmb3IKaHR0cDovL3Rha2FyaS5pby9ib29rLzkxLW1hdmVuLWNsYXNzbG9hZGluZy5odG1sLgoKPiBBdCB0aGlzIHBvaW50IGluIHRpbWUgSSB0aGluayB3ZSBhcmUgbmVhcmluZyB0aGUgcG9pbnQgd2hlcmUgSSBtYXkgaGF2ZQo+IHRvCj4gZGVjbGFyZSAzLjUuMSBhYmFuZG9uZWQgYXMgSSB0aGluayB0aGUgY2xhc3Nsb2FkaW5nIGluIHRoYXQgaXMgYSBzeW1wdG9tCj4gb2YKPiB0b28gbWFueSBjb29rcyBhbGwgY2hhbmdpbmcgdGhpbmdzIGluIGRpZmZlcmVudCBkaXJlY3Rpb25zLiBXZSBuZWVkIGEKPiBjb25zaXN0ZW50IHZpc2lvbiBvZiB3aGVyZSB3ZSB3YW50IHRoaW5ncyB0byBnbyBhbmQgLSB3aGlsZSB3ZSBuZWVkIG5vdAo+IGdldAo+IHRoZXJlIGluIG9uZSBnbyAtIHRoZSBwYXRoIHByZXNlbnRlZCBmb3Igb3RoZXJzIHRvIHNlZS4KClRoZXJlIHdlcmUgdHdvIGNsYXNzbG9hZGluZyBjaGFuZ2VzIGluIDMuNS4xLCBuYW1lbHkgZXh0ZW5zaW9ucz10cnVlCnBsdWdpbnMgbm93IGhhdmUgcHJvamVjdCByZWFsbSBhcyBUQ0NMIGFuZCBhbGwgcmVhbG1zIG5vdyB1c2UKYXBwbGljYXRpb24gY2xhc3Nsb2FkZXIgYXMgdGhlIHBhcmVudC4gQXBhcnQgZnJvbSBsYWNraW5nIGRvY3VtZW50YXRpb24sCndoYXQgcHJhY3RpY2FsIHByb2JsZW1zIGhhdmUgYmVlbiBjYXVzZWQgYnkgdGhlc2UgdHdvIGNoYW5nZXM/Cgo+IAo+IFRoaW5ncyBJIHRoaW5rIHdlIHNob3VsZCBjb25zaWRlcjoKPiAKPiAxLiBEbyB3ZSB3YW50IHRvIGZvcm1hbGx5IGRlcHJlY2F0ZSBCdWlsZCBFeHRlbnNpb25zIGFuZCB0aGUKPiAvcHJvamVjdC9idWlsZC9leHRlbnNpb25zIGVsZW1lbnQgKHN0YXJ0IGxvZ2dpbmcgd2FybmluZ3MsIGV0Yyk/Cj4gMi4gRG8gd2Ugd2FudCB0byBmb3JtYWxseSBkZXByZWNhdGUgcGx1Z2lucyBhcyBleHRlbnNpb25zIGFuZCBzdGFydAo+IGxvZ2dpbmcKPiB3YXJuaW5ncyBmb3IKPiAvcHJvamVjdC9idWlsZC8ocGx1Z2luTWFuYWdlbWVudHwuKS9wbHVnaW5zL3BsdWdpbi9leHRlbnNpb25zW3RleHQoKT09dHJ1ZV0KCkknZCBrZWVwIHRoZW0gYm90aCwgYW5kIG1heWJlIGZpeC9yZW1vdmUgbWF2ZW4yLWNvbXBhdCBjb2RlcGF0aC4gSWYgSQpoYWQgdG8gY2hvb3NlIGJldHdlZW4gdGhlIHR3bywgaG93ZXZlciwgSSdkIGNob29zZSA8cGx1Z2luPiB3aXRoCmV4dGVuc2lvbnM9dHJ1ZS4gVGhpbmsgb2YgYSBjdXN0b20gcGFja2FnaW5nIHR5cGUgd2l0aCBtb2pvcyB0aGUgdXNlcgp3YW50cyB0byBjb25maWd1cmUgaW4gcG9tLnhtbCwgaXQnZCBiZSBtb3JlIHRlZGlvdXMgdG8gY29uZmlndXJlIGlmIEkKaGFkIHRvIGFkZCBidWlsZC9leHRlbnNpb24gYW5kIGJ1aWxkL3BsdWdpbi4KCj4gMy4gV2hhdCBpcyB0aGUgZGlmZmVyZW5jZSBpbiBjbGFzc2xvYWRpbmcgZm9yIGEgL3Byb2plY3QvYnVpbGQvZXh0ZW5zaW9ucwo+IHdoaWNoIGhhcyBhIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgYW5kIG9uZSB0aGF0IGRvZXNuJ3Q/CgpJIHRoaW5rIGV4dGVuc2lvbnMgd2l0aCBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sIHNob3VsZCBub3QgZ28KdGhyb3VnaCBtYXZlbjItY29tcGF0IGNvZGVwYXRoLiBJbiBvdGhlciB3b3Jkcywgd2UgbmVlZCB0byBjaGFuZ2UgdGhlCmN1cnJlbnQgYmVoYXZpb3VyLgoKRXh0ZW5zaW9ucyB3aXRob3V0IE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwuLi4gSSBhbSBub3Qgc3VyZS4KUHJvYmFibHkgc2FmZXIgdG8ga2VlcCB0aGUgY3VycmVudCBtYXZlbjItY29tcGF0IGJlaGF2aW91ci4KCj4gSSdtIGtlZXBpbmcgdGhlIDMuNS4xIHJlbGVhc2UgaW4gc3RhZ2luZyB1bnRpbCB3ZSBnZXQgYSBjbGVhciB2aXNpb24gZm9yCj4gaG93IHdlIHdhbnQgdG8gaGF2ZSBjbGFzc2xvYWRpbmcgc28gdGhhdCBJIGNhbiBhc3Nlc3Mgd2hldGhlciB0aGUgMy41LjEKPiBhY3R1YWxpdHkgaXMgb25seSBtb3ZpbmcgbmVhcmVyIHRvIHRoZSB2aXNpb24gKG9rIHRvIHJlbGVhc2UpIG9yIGhhcwo+IG1vdmVkCj4gbmVhcmVyIGluIHNvbWUgd2F5cyBidXQgZnVydGhlciBpbiBvdGhlcnMgKG5vdCBvayB0byByZWxlYXNlKQo+IAoKCi0tIApSZWdhcmRzLApJZ29yCgoKCj4gT24gMjAgU2VwdGVtYmVyIDIwMTcgYXQgMTI6NDQsIElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY29tPgo+IHdyb3RlOgo+IAo+ID4gUmVhbC13b3JsZCBzY20gb3Igd2Fnb24gPGV4dGVuc2lvbnM+IHdvbid0IHRyaWdnZXIgbWF2ZW4yLWNvbXBhdCBjb2RlCj4gPiBwYXRoIFsxXS4gVG8gYXZvaWQgdGhhdCBvYnNjdXJlIGNvZGUgcGF0aCB3ZSBjYW4gZWl0aGVyIG1ha2UgdGhlIHRlc3QKPiA+IG1vcmUgZWxhYm9yYXRlIChpLmUuIGFkZCBkZXBlbmRlbmNpZXMgdG8gZXh0amFyMS9leHRqYXIyKSBvciB3ZSBjYW4gdXNlCj4gPiBleHRlbnNpb25zIDxwbHVnaW4+LiBFaXRoZXIgd2F5IEkgZG9uJ3QgdGhpbmsgd2Ugc2hvdWxkIHNwZW5kIHRpbWUgb24KPiA+IHRoZSBjb2RlIHBhdGggdW5saWtlbHkgdG8gYmUgdXNlZCBpbiByZWFsIGxpZmUuCj4gPgo+ID4gWzFdCj4gPiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL2Jsb2IvbWF2ZW4tMy41LjEvbWF2ZW4tCj4gPiBjb3JlL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wcm9qZWN0L0RlZmF1bHRQcm9qZWN0QnVpbGRpbmdIZWxwZXIuCj4gPiBqYXZhI0wyMTAtTDIxOQo+ID4KPiA+IC0tCj4gPiBSZWdhcmRzLAo+ID4gSWdvcgo+ID4KPiA+IE9uIFdlZCwgU2VwIDIwLCAyMDE3LCBhdCAwMzoyOSBBTSwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4gPiA+IE9uIFdlZCwgMjAgU2VwIDIwMTcgMDk6MTI6NDcgKzAyMDAsIFN0ZXBoZW4gQ29ubm9sbHkKPiA+ID4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPgo+ID4gPiA+IE9uIFdlZCAyMCBTZXAgMjAxNyBhdCAwMToyOSwgSWdvciBGZWRvcmVua28gPGlnb3JAaWZlZG9yZW5rby5jb20+Cj4gPiB3cm90ZToKPiA+ID4gPgo+ID4gPiA+PiBJbiB0aGF0IGNhc2UsIGNhbiBJIHN1Z2dlc3QgY291cGxlIG9mIGNoYW5nZXMgdG8gdGhlIHRlc3QgcHJvamVjdAo+ID4gPiA+Pgo+ID4gPiA+PiAqIEkgdGhpbmtzIGl0IG1ha2VzIG1vcmUgc2Vuc2UgdG8gY29uZmlndXJlIGV4dGphcjEgYW5kIGV4dGphcjIgYXMKPiA+ID4gPj4gZXh0ZW5zaW9ucyA8cGx1Z2luPiBlbGVtZW50cyBpbiBwcm9ibGVOIHBvbS54bWwgZmlsZXMuIEZpcnN0LCB0aGVyZSBpcwo+ID4gPiA+PiBubyBtZWFuaW5nZnVsIG9yZGVyIGJldHdlZW4gPGV4dGVuc2lvbnM+IGFuZCA8cGx1Z2lucz4gZWxlbWVudHMuIE1vcmUKPiA+ID4gPj4gaW1wb3J0YW50bHksIHRob3VnaCwgc2ltcGxlIDxleHRlbnNpb25zPiBhcmUgdHJlYXRlZCBpbiBzcGVjaWFsCj4gPiA+ID4+IG1hdmVuMi1jb21wYXQgbW9kZSBhbmQgYXJlIG5vdCByZXByZXNlbnRhdGl2ZSBvZiBsaWtlbHkgcmVhbC13b3JsZAo+ID4gPiA+PiBleHRlbnNpb25zLgo+ID4gPiA+Cj4gPiA+Cj4gPiA+IE5vdCBzdXJlIEkgYWdyZWUgd2l0aCB0aGlzLiBJIHRoaW5rIHRoZXJlIGFyZSBqYXJzIHdvcnRoIHNoYXJpbmcgYWNyb3NzCj4gPiA+IG11bHRpcGxlIHBsdWdpbnMsIGJ1dCB3aGVyZSBtYWtpbmcgdGhlIHBsdWdpbiBhbiBleHRlbnNpb24gaXMgYSBiaXQKPiA+ID4gd2VpcmQuCj4gPiA+IEknbSB0aGlua2luZyBvZiBzY20gYW5kIHdhZ29uIGluIHRoaXMgY2FzZS4KPiA+ID4KPiA+ID4gPgo+ID4gPiA+IFRoYXQgc291bmRzIGxpa2Ugd2UgbmVlZCBkb2N1bWVudGF0aW9uIHVwZGF0ZWQgdGhlbi4gTm9uZSBvZiB0aGF0IGlzCj4gPiA+ID4gb2J2aW91cyB0byBtZS4KPiA+ID4gPgo+ID4gPiA+Cj4gPiA+ID4+Cj4gPiA+ID4+ICogSSB0aGluayB3ZSBzaG91bGQgaW50cm9kdWNlIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgdG8gdGhlIHRlc3QKPiA+ID4gPj4gZXh0ZW5zaW9ucy4gVGhpcyBtZXRhZGF0YSB3aGF0IGludHJvZHVjZWQgdG8gY29uZmlndXJlIGNsYXNzcGF0aAo+ID4gPiA+PiB2aXNpYmlsaXR5LCBzbyBsZXRzIHVzZSBpdC4KPiA+ID4gPgo+ID4gPiA+Cj4gPiA+ID4gQWdhaW4sIG5vdCBvYnZpb3VzIHRvIG1lLCBpZiB0aGF0IGZpbGUgYWxsb3dzIGNvbnRyb2wgb2YgY2xhc3NwYXRoCj4gPiA+ID4gdmlzaWJpbGl0eSB0aGVuIGl0IG1heSBiZSB0aGF0IHRoZSBvbmx5IGlzc3VlICp3aXRoKiAzLjUuMSBpcyB0aGUgbGFjawo+ID4gb2YKPiA+ID4gPiBkb2N1bWVudGF0aW9uLi4uIG5vdyBwcmV2aW91cyB2ZXJzaW9ucyB3b3VsZCBoYXZlIGJlZW4gYWRkaW5nIGJyZWFraW5nCj4gPiA+ID4gY2hhbmdlcyBmcm9tIG15IFBvViBidXQgdGhhdCBpcyB0aGUgcGFzdCBhbmQgc2hvdWxkIG5vdCBhZmZlY3QgdGhlCj4gPiAzLjUuMQo+ID4gPiA+IHJlbGVhc2UuCj4gPiA+ID4KPiA+ID4gPiBQUnMgZm9yIHRoZSBwcm9iZSBwcm9qZWN0IHdlbGNvbWUuIEkgYW0gaGFwcHkgdG8gdHJ5IGFuZCB3cml0ZSBkb2NzCj4gPiBvbmNlCj4gPiA+ID4gSQo+ID4gPiA+IGhhdmUgYW4gdW5kZXJzdGFuZGluZyBvZiB3aGF0IHRoZSBleHBlY3RlZCBiZWhhdmlvdXJzIGFyZQo+ID4gPiA+Cj4gPiA+ID4KPiA+ID4gPj4KPiA+ID4gPj4gLS0KPiA+ID4gPj4gUmVnYXJkcywKPiA+ID4gPj4gSWdvcgo+ID4gPiA+Pgo+ID4gPiA+PiBPbiBUdWUsIFNlcCAxOSwgMjAxNywgYXQgMDU6MTIgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgd3JvdGU6Cj4gPiA+ID4+ID4gWWVzLCB0aGUgZXhwZWN0YXRpb25zIGFyZSBrZXkuIERlcGVuZGluZyBvbiB3aGF0IHRoZXkgYXJlIHdlIG1heQo+ID4gPiA+PiBlaXRoZXIKPiA+ID4gPj4gPiBkcm9wIDMuNS4xIG9yIGdvIGFoZWFkIGFzIGl0IGRlcGVuZHMgb24gd2hldGhlciB0aGlzIGlzIG1vcmUgY29ycmVjdAo+ID4gPiA+PiB0aGFuCj4gPiA+ID4+ID4gMy41LjAgb3Igc3dhcHBpbmcgb25lIGZpeCBmb3IgYSBidWcKPiA+ID4gPj4gPgo+ID4gPiA+PiA+IE9uIFR1ZSAxOSBTZXAgMjAxNyBhdCAyMTozOSwgSWdvciBGZWRvcmVua28gPGlnb3JAaWZlZG9yZW5rby5jb20+Cj4gPiA+ID4+IHdyb3RlOgo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gPiBKdXN0IHRvIGNvbmZpcm0gSSB1bmRlcnN0YW5kIHdoYXQgd2UgYXJlIHRyeWluZyB0byBlc3RhYmxpc2ggaGVyZS4KPiA+ID4gPj4gV2UKPiA+ID4gPj4gPiA+IHdhbnQgdG8gZGVjaWRlIHRoZSBleHBlY3RlZC9kZXNpcmVkIGNvbXBvbmVudCBpbmplY3Rpb24gYmVoYXZpb3VyCj4gPiA+ID4+IGFuZAo+ID4gPiA+PiA+ID4gY2xhc3NwYXRoIHZpc2liaWxpdHkgaW4gdGhlIGFic2VuY2Ugb2YgcGFja2FnZSBhbmQgYXJ0aWZhY3QgZXhwb3J0Cj4gPiA+ID4+ID4gPiBjb25maWd1cmF0aW9uIChpLmUuIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgZmlsZSkuIERpZCBJIGdldAo+ID4gPiA+PiB0aGlzCj4gPiA+ID4+ID4gPiByaWdodD8KPiA+ID4gPj4gPiA+Cj4gPiA+ID4+ID4gPiAtLQo+ID4gPiA+PiA+ID4gUmVnYXJkcywKPiA+ID4gPj4gPiA+IElnb3IKPiA+ID4gPj4gPiA+Cj4gPiA+ID4+ID4gPiBPbiBUdWUsIFNlcCAxOSwgMjAxNywgYXQgMDM6NTIgUE0sIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+ID4gPiA+PiA+ID4gPiBMZXQncyBkbyBpdCBsaWtlIHRoaXM6Cj4gPiA+ID4+ID4gPiA+Cj4gPiA+ID4+ID4gPgo+ID4gPiA+PiBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kb3dubG9hZC9hdHRhY2htZW50cy8yMzI5ODQxLwo+ID4gY2xhc3NyZWFsbXMucGRmP2FwaT12Mgo+ID4gPiA+PiA+ID4gPgo+ID4gPiA+PiA+ID4gPiBSb2JlcnQKPiA+ID4gPj4gPiA+ID4KPiA+ID4gPj4gPiA+ID4gT24gVHVlLCAxOSBTZXAgMjAxNyAyMTowODozOSArMDIwMCwgU3RlcGhlbiBDb25ub2xseQo+ID4gPiA+PiA+ID4gPiA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+ID4+ID4gPiA+Cj4gPiA+ID4+ID4gPiA+ID4gSSB0aGluayB5b3Ugd2lsbCBuZWVkIGEgbGluayB0byB0aGUgUERGIGFzIGF0dGFjaG1lbnRzIGFyZQo+ID4gPiA+PiBzdHJpcHBlZAo+ID4gPiA+PiA+ID4gZnJvbQo+ID4gPiA+PiA+ID4gPiA+IHRoZSBNTAo+ID4gPiA+PiA+ID4gPiA+Cj4gPiA+ID4+ID4gPiA+ID4gT24gVHVlIDE5IFNlcCAyMDE3IGF0IDE5OjU3LCBSb2JlcnQgU2Nob2x0ZQo+ID4gPiA+PiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Cj4gPiA+ID4+ID4gPiB3cm90ZToKPiA+ID4gPj4gPiA+ID4gPgo+ID4gPiA+PiA+ID4gPiA+PiBBdHRhY2hlZCBhIHNpbmdsZSBwYWdlIG92ZXJ2aWV3Lgo+ID4gPiA+PiA+ID4gPiA+Pgo+ID4gPiA+PiA+ID4gPiA+PiBQZXIgYmxvY2sgeW91J2xsIHNlZSBpbiB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgdGhlIGV4ZWN1dGVkCj4gPiA+ID4+IHBsdWdpbgo+ID4gPiA+PiA+ID4gPiA+PiBUaGUgbGVmdCBjb2x1bW4gY29udGFpbnMgdGhlIGV4dGVuc2lvbnMgYW5kIHBsdWdpbiBpbiBvcmRlcmFzCj4gPiA+ID4+ID4gPiBzcGVjaWZpZWQKPiA+ID4gPj4gPiA+ID4gPj4gaW4KPiA+ID4gPj4gPiA+ID4gPj4gdGhlIHBvbS54bWwKPiA+ID4gPj4gPiA+ID4gPj4gSW4gZXZlcnkgY2xhc3Nsb2FkZXJjb2x1bW4geW91J2xsIHNlZSBudW1iZXJzIHdoaWNoIHJlcHJlc2VudAo+ID4gPiA+PiB0aGUKPiA+ID4gPj4gPiA+IG9yZGVyLgo+ID4gPiA+PiA+ID4gPiA+Pgo+ID4gPiA+PiA+ID4gPiA+PiBJIGhvcGUgSSBkaWRuJ3QgbWFrZSBhbnkgbWlzdGFrZXMuCj4gPiA+ID4+ID4gPiA+ID4+IFRvbW9ycm93IEkgaGF2ZSBlbm91Z2ggdGltZSB0byBzZWUgaWYgSSB1bmRlcnN0YW5kIHdoYXQncwo+ID4gPiA+PiBoYXBwZW5pbmcKPiA+ID4gPj4gPiA+ID4gPj4gaGVyZS4KPiA+ID4gPj4gPiA+ID4gPj4KPiA+ID4gPj4gPiA+ID4gPj4gSSB3aWxsIGNvbWUgYmFjayB3aXRoIG15IGNvbmNsdXNpb25zLgo+ID4gPiA+PiA+ID4gPiA+Pgo+ID4gPiA+PiA+ID4gPiA+PiBSb2JlcnQKPiA+ID4gPj4gPiA+ID4gPj4KPiA+ID4gPj4gPiA+ID4gPj4gT24gVHVlLCAxOSBTZXAgMjAxNyAwNjo1NTowOCArMDIwMCwgSWdvciBGZWRvcmVua28gPAo+ID4gPiA+PiA+ID4gaWdvckBpZmVkb3JlbmtvLmNvbT4KPiA+ID4gPj4gPiA+ID4gPj4gd3JvdGU6Cj4gPiA+ID4+ID4gPiA+ID4+Cj4gPiA+ID4+ID4gPiA+ID4+ID4gVEw7RFIgeW91ciB0ZXN0IHByb2plY3QgZXhwb3NlZCB0d28gZXhpc3RpbmcgYnVncywgb25lCj4gPiA+ID4+IGNoYW5nZSBpbgo+ID4gPiA+PiA+ID4gPiA+PiA+IGJlaGF2aW91ciBhbmQgb25lIHF1aXJrIEkgY2FuJ3QgZXhwbGFpbgo+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gPiA+ID4+ID4gKiBCdWlsZCBgPGV4dGVuc2lvbnM+YCBhcmUgbG9hZGVkIGJ5IHR3byBjbGFzc2xvYWRlcnMsCj4gPiB3aGljaAo+ID4gPiA+PiBpcwo+ID4gPiA+PiBhCj4gPiA+ID4+ID4gPiBidWcKPiA+ID4gPj4gPiA+ID4gPj4gaW4KPiA+ID4gPj4gPiA+ID4gPj4gPiBEZWZhdWx0UHJvamVjdEJ1aWxkaW5nSGVscGVyI2NyZWF0ZVByb2plY3RSZWFsbSBhbmQKPiA+IGV4cGxhaW5zCj4gPiA+ID4+IHdoeSB5b3UKPiA+ID4gPj4gPiA+ID4gPj4gc2VlCj4gPiA+ID4+ID4gPiA+ID4+ID4gZXh0amFyMS9leHRqYXIyIGluIHRoZSBvdXRwdXQKPiA+ID4gPj4gPiA+ID4gPj4gPiAqIENsYXNzUmVhbG0gZG9lcyBub3QgYWxsb3cgc2FtZSBmb3JlaWduLWltcG9ydCBmcm9tCj4gPiBtdWx0aXBsZQo+ID4gPiA+PiA+ID4gPiA+PiA+IGNsYXNzbG9hZGVycywgd2hpY2ggaXMgYSBidWcgYW5kIGV4cGxhaW5zIHdoeSBpdCBpcyBub3QKPiA+ID4gPj4gcG9zc2libGUgdG8KPiA+ID4gPj4gPiA+ID4gPj4gbG9hZAo+ID4gPiA+PiA+ID4gPiA+PiA+IHNhbWUgcmVzb3VyY2UgZnJvbSBtdWx0aXBsZSBwbHVnaW5zL2V4dGVuc2lvbnMKPiA+ID4gPj4gPiA+ID4gPj4gPiAqIFRDQ0wgZG9lcyBub3QgaGF2ZSBhY2Nlc3MgdG8gcHJpdmF0ZSAoaS5lLiBub3QgZXhwb3J0ZWQpCj4gPiA+ID4+IHJlc291cmNlcwo+ID4gPiA+PiA+ID4gPiA+PiBvZgo+ID4gPiA+PiA+ID4gPiA+PiA+IHRoaXMgZXh0ZW5zaW9ucyBwbHVnaW4sIHdoaWNoIGlzIGEgY2hhbmdlIG9mIGJlaGF2aW91cgo+ID4gPiA+PiBpbnRyb2R1Y2VkIGJ5Cj4gPiA+ID4+ID4gPiA+ID4+ID4gbW5nLTYyMDkgZml4Cj4gPiA+ID4+ID4gPiA+ID4+ID4gKiBBbHNvLCBjb21wb25lbnQgaW5qZWN0aW9uIG9yZGVyIGFwcGVhcnMgdG8gYmUgYmFja3dhcmRzLAo+ID4gPiA+PiBidXQKPiA+ID4gPj4gbWF5YmUKPiA+ID4gPj4gPiA+ID4gPj4gPiBTdHVhcnQgY2FuIGV4cGxhaW4gd2h5Lgo+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPj4gPiA+ID4gPj4gPiBCZWxvdyBpcyBtb3JlIGRldGFpbGVkIGV4cGxhbmF0aW9uIG9mIGV4cGVjdGVkIGFuZCBvYnNlcnZlZAo+ID4gPiA+PiA+ID4gYmVoYXZpb3VyCj4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+PiA+ID4gPiA+PiA+ICMjIENvbXBvbmVudCBpbmplY3Rpb24gZGVwZW5kcyBvbiB0aGUgY3VycmVudGx5IHJ1bm5pbmcKPiA+ID4gPj4gcGx1Z2luCj4gPiA+ID4+IGFuZAo+ID4gPiA+PiA+ID4gdGhlCj4gPiA+ID4+ID4gPiA+ID4+ID4gaW5qZWN0aW9uIHNpdGUKPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+PiA+ID4gPiA+PiA+IEN1cnJlbnRseSBydW5uaW5nIHBsdWdpbnMgaGF2ZSBhY2Nlc3MgdG8gdGhlIGZvbGxvd2luZwo+ID4gPiA+PiBjb21wb25lbnQKPiA+ID4gPj4gPiA+ID4gPj4gPiBpbXBsZW1lbnRhdGlvbnM6Cj4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPj4gPiA+ID4gPj4gPiAqIFJlZ3VsYXIgcGx1Z2luIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50cyBpbXBsZW1lbnRlZCBieQo+ID4gdGhlCj4gPiA+ID4+IHBsdWdpbiwKPiA+ID4gPj4gPiA+ID4gPj4gPiBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMsIGlmIGFueSAodmlhIHByb2plY3QgY2xhc3MgcmVhbG0KPiA+ID4gPj4gZm9yZWlnbgo+ID4gPiA+PiA+ID4gPiA+PiA+IGltcG9ydCkgYW5kIE1hdmVuIENvcmUuCj4gPiA+ID4+ID4gPiA+ID4+ID4gKiBFeHRlbnNpb24gcGx1Z2luIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50cyBpbXBsZW1lbnRlZCBieQo+ID4gPiA+PiB0aGUKPiA+ID4gPj4gPiA+IHByb2plY3QKPiA+ID4gPj4gPiA+ID4gPj4gPiBidWlsZCBleHRlbnNpb25zIGFuZCBNYXZlbiBDb3JlLgo+ID4gPiA+PiA+ID4gPiA+PiA+ICogV2l0aG91dCBhIHJ1bm5pbmcgcGx1Z2luIChlLmcuLCBkdXJpbmcgcHJvamVjdCBkZXBlbmRlbmN5Cj4gPiA+ID4+ID4gPiA+ID4+IHJlc29sdXRpb24pLAo+ID4gPiA+PiA+ID4gPiA+PiA+IGNvbXBvbmVudHMgaW1wbGVtZW50ZWQgYnkgdGhlIHByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucyBhbmQKPiA+ID4gPj4gTWF2ZW4KPiA+ID4gPj4gPiA+IENvcmUKPiA+ID4gPj4gPiA+ID4gPj4gPiBhcmUgYWNjZXNzaWJsZS4KPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+PiA+ID4gPiA+PiA+IERpZmZlcmVudCBpbmplY3Rpb24gc2l0ZXMgaGF2ZSBhY2Nlc3MgdG8gdGhlIGZvbGxvd2luZwo+ID4gPiA+PiBjb21wb25lbnQKPiA+ID4gPj4gPiA+ID4gPj4gPiBpbnRlcmZhY2VzOgo+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gPiA+ID4+ID4gKiBNYXZlbiBDb3JlIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50IGludGVyZmFjZXMgZGVmaW5lZCBieQo+ID4gPiA+PiB0aGUKPiA+ID4gPj4gY29yZQo+ID4gPiA+PiA+ID4gPiA+PiA+IGl0c2VsZiAob2J2aW91c2x5KQo+ID4gPiA+PiA+ID4gPiA+PiA+ICogUHJvamVjdCBidWlsZCBleHRlbnNpb25zIGhhdmUgYWNjZXNzIHRvICoqcHVibGljKioKPiA+ID4gPj4gY29tcG9uZW50Cj4gPiA+ID4+ID4gPiA+ID4+ID4gaW50ZXJmYWNlcyBkZWZpbmVkIGJ5IE1hdmVuIENvcmUgYW5kIGNvbXBvbmVudCBpbnRlcmZhY2VzCj4gPiA+ID4+IGRlZmluZWQgYnkKPiA+ID4gPj4gPiA+ID4gPj4gdGhlCj4gPiA+ID4+ID4gPiA+ID4+ID4gYnVpbGQgZXh0ZW5zaW9uIGl0c2VsZiAodGhlcmUgaXMgbm8gd2F5IHRvIGFjY2VzcyBjb21wb25lbnQKPiA+ID4gPj4gPiA+IGludGVyZmFjZXMKPiA+ID4gPj4gPiA+ID4gPj4gPiBkZWZpbmVkIGluIG90aGVyIGV4dGVuc2lvbnMpCj4gPiA+ID4+ID4gPiA+ID4+ID4gKiBSZWd1bGFyIHBsdWdpbnMgaGF2ZSBhY2Nlc3MgdG8gKipwdWJsaWMqKiBjb21wb25lbnQKPiA+ID4gPj4gaW50ZXJmYWNlcwo+ID4gPiA+PiA+ID4gPiA+PiBkZWZpbmVkCj4gPiA+ID4+ID4gPiA+ID4+ID4gYnkgTWF2ZW4gQ29yZSwgY29tcG9uZW50IGludGVyZmFjZXMgKipleHBvcnRlZCoqIGJ5IGJ1aWxkCj4gPiA+ID4+IGV4dGVuc2lvbnMKPiA+ID4gPj4gPiA+ID4gPj4gYW5kCj4gPiA+ID4+ID4gPiA+ID4+ID4gY29tcG9uZW50IGludGVyZmFjZXMgZGVmaW5lZCBpbiB0aGUgcGx1Z2luIGl0c2VsZgo+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gPiA+ID4+ID4gRm9yIGluamVjdGlvbiB0byB3b3JrLCBpbmplY3Rpb24gc2l0ZSBoYXMgdG8gaGF2ZSBhY2Nlc3MgdG8KPiA+ID4gPj4gdGhlCj4gPiA+ID4+ID4gPiA+ID4+ID4gY29tcG9uZW50IGludGVyZmFjZSBhbmQgdGhlIGNvbXBvbmVudCBpbXBsZW1lbnRhdGlvbiBtdXN0Cj4gPiBiZQo+ID4gPiA+PiA+ID4gPiA+PiBhY2Nlc3NpYmxlCj4gPiA+ID4+ID4gPiA+ID4+ID4gdGhyb3VnaCB0aGUgY3VycmVudCBjb250ZXh0Lgo+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gPiA+ID4+ID4gRnJvbSB3aGF0IEkgY2FuIHRlbGwsIGluIHlvdXIgZXhhbXBsZSBhbGwgcGx1Z2lucyBoYXZlCj4gPiBhY2Nlc3MKPiA+ID4gPj4gdG8gdGhlCj4gPiA+ID4+ID4gPiA+ID4+ID4gcmlnaHQgY29tcG9uZW50cyB3aGVuIHVzaW5nIGN1cnJlbnQgMy41LjItU05BUFNIT1QuIFRoZQo+ID4gPiA+PiBpbmplY3Rpb24KPiA+ID4gPj4gPiA+ID4gPj4gb3JkZXIKPiA+ID4gPj4gPiA+ID4gPj4gPiBkb2VzIGFwcGVhciB0byBiZSBiYWNrd2FyZHMgZnJvbSB3aGF0IEkgZXhwZWN0ZWQsIGhvd2V2ZXIuCj4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+PiA+ID4gPiA+PiA+ICMjIFJlc291cmNlcyBsb29rdXAgZnVsbHkgZGVwZW5kcyBvbiBjbGFzc3BhdGggdmlzaWJpbGl0eSwKPiA+ID4gPj4gPiA+ID4gPj4gc3BlY2lmaWNhbGx5Cj4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPj4gPiA+ID4gPj4gPiAqIFJlZ3VsYXIgcGx1Z2luIGNsYXNzIHJlYWxtIGhhcyBhY2Nlc3MgdG8gcmVzb3VyY2VzIGZyb20KPiA+IHRoZQo+ID4gPiA+PiBwbHVnaW4KPiA+ID4gPj4gPiA+ID4gPj4gPiBpdHNlbGYsIGZyb20gKipleHBvcnRlZCoqIHBhY2thZ2VzIG9mIHRoZSBwcm9qZWN0IGJ1aWxkCj4gPiA+ID4+IGV4dGVuc2lvbnMKPiA+ID4gPj4gPiA+IGFuZAo+ID4gPiA+PiA+ID4gPiA+PiA+ICoqcHVibGljKiogTWF2ZW4gQ29yZSBwYWNrYWdlcwo+ID4gPiA+PiA+ID4gPiA+PiA+ICogRXh0ZW5zaW9ucyBwbHVnaW4gY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byB0aGUgcmVzb3VyY2VzCj4gPiA+ID4+IGZyb20gdGhlCj4gPiA+ID4+ID4gPiA+ID4+ID4gZXh0ZW5zaW9ucyBwbHVnaW4gaXRzZWxmIGFuZCBmcm9tICoqcHVibGljKiogTWF2ZW4gQ29yZQo+ID4gPiA+PiBwYWNrYWdlcwo+ID4gPiA+PiA+ID4gPiA+PiA+ICogUHJvamVjdCBjbGFzcyByZWFsbSBoYXMgYWNjZXNzIHRvIGNsYXNzZXMgYW5kIHJlc291cmNlcwo+ID4gPiA+PiA+ID4gKipleHBvcnRlZCoqCj4gPiA+ID4+ID4gPiA+ID4+ID4gYnkgcHJvamVjdCBidWlsZCBleHRlbnNpb25zIGFuZCAqKnB1YmxpYyoqIE1hdmVuIENvcmUKPiA+ID4gPj4gcGFja2FnZXMKPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+PiA+ID4gPiA+PiA+IEkgc2VlIHRocmVlIHByb2JsZW1zIGhlcmUKPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+PiA+ID4gPiA+PiA+ICogTWF2ZW4gYWRkcyBidWlsZCBzaW5nbGUtamFyIGA8ZXh0ZW5zaW9ucz5gIGVsZW1lbnRzCj4gPiA+ID4+IGRpcmVjdGx5Cj4gPiA+ID4+IHRvCj4gPiA+ID4+ID4gPiA+ID4+ID4gcHJvamVjdCBjbGFzcyByZWFsbSAqKmFuZCoqIGNyZWF0ZXMgc2VwYXJhdGUgZXh0ZW5zaW9ucwo+ID4gY2xhc3MKPiA+ID4gPj4gcmVhbG1zCj4gPiA+ID4+ID4gPiA+ID4+IGZvcgo+ID4gPiA+PiA+ID4gPiA+PiA+IHRoZW0uIFdoaWNoIHJlc3VsdHMgaW4gZHVwbGljYXRlIGNsYXNzZXMvcmVzb3VyY2VzIGxvYWRlZAo+ID4gYnkKPiA+ID4gPj4gdHdvCj4gPiA+ID4+ID4gPiA+ID4+ID4gY2xhc3Nsb2FkZXJzIGFuZCBleHBsYWlucyB3aHkgeW91IHNlZSBleHRqYXIxL2V4dGphcjIKPiA+IG91dHB1dAo+ID4gPiA+PiAod2hpY2gKPiA+ID4gPj4gPiA+ID4gPj4geW91Cj4gPiA+ID4+ID4gPiA+ID4+ID4gc2hvdWxkbid0IGFjY29yZGluZyB0byB0aGUgZXhwbGFuYXRpb24gYWJvdmUpCj4gPiA+ID4+ID4gPiA+ID4+ID4gKiBDbGFzc1JlYWxtIGRvZXMgbm90IGFsbG93IGZvcmVpZ24taW1wb3J0IG9mIHRoZSBzYW1lCj4gPiA+ID4+IHBhY2thZ2UKPiA+ID4gPj4gZnJvbQo+ID4gPiA+PiA+ID4gPiA+PiA+IG11bHRpcGxlIGNsYXNzbG9hZGVycy4gVGhpcyBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIGxvYWQgdGhlCj4gPiA+ID4+IHNhbWUKPiA+ID4gPj4gPiA+ID4gPj4gPiByZXNvdXJjZSBmcm9tIG11bHRpcGxlIHBsdWdpbnMvZXh0ZW5zaW9ucy4KPiA+ID4gPj4gPiA+ID4gPj4gPiAqIEV4dGVuc2lvbnMgcGx1Z2lucyBjYW5ub3QgYWNjZXNzIHRoZWlyIG93biBwcml2YXRlIChpLmUuCj4gPiA+ID4+IG5vdAo+ID4gPiA+PiA+ID4gPiA+PiBleHBvcnRlZCkKPiA+ID4gPj4gPiA+ID4gPj4gPiByZXNvdXJjZXMgdmlhIFRDQ0wsIHRoaXMgaXMgY2hhbmdlIGluIGJlaGF2aW91ciBpbnRyb2R1Y2VkCj4gPiBieQo+ID4gPiA+PiA+ID4gbW5nLTYyMDkKPiA+ID4gPj4gPiA+ID4gPj4gPiBmaXgKPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+PiA+ID4gPiA+PiA+IEhvcGUgdGhpcyBoZWxwcwo+ID4gPiA+PiA+ID4gPiA+Pgo+ID4gPiA+PiA+ID4gPiA+Pgo+ID4gPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gPj4gPiA+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPj4gPiA+ID4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+PiA+ID4gPgo+ID4gPiA+PiA+ID4gPgo+ID4gPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gPj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+PiA+ID4gPgo+ID4gPiA+PiA+ID4KPiA+ID4gPj4gPiA+Cj4gPiA+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiA+PiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPj4gPiA+Cj4gPiA+ID4+ID4gPiAtLQo+ID4gPiA+PiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4gPiA+Pgo+ID4gPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+Pgo+ID4gPiA+PiAtLQo+ID4gPiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4gPgo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPgo+ID4KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Cj4gPgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MDk3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBTZXAgMjQgMTk6MDY6MTcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDk3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDFDRENFRjMxNAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDI0IFNlcCAyMDE3IDE5OjA2OjE3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjUwODMgaW52b2tlZCBieSB1aWQgNTAwKTsgMjQgU2VwIDIwMTcgMTk6MDY6MTYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI1MDExIGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IFNlcCAyMDE3IDE5OjA2OjE2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjQ5OTMgaW52b2tlZCBieSB1aWQgOTkpOyAyNCBTZXAgMjAxNyAxOTowNjoxNiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMjQgU2VwIDIwMTcgMTk6MDY6MTYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBDQkU4ODFBNTg0QgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjQgU2VwIDIwMTcgMTk6MDY6MTUgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4wMjEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMDIxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1pZmVkb3JlbmtvLmNvbSBoZWFkZXIuYj1rM2thOW1wdjsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1tZXNzYWdpbmdlbmdpbmUuY29tCgloZWFkZXIuYj1lYlU1UEJkUgpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgYVNGYjg5bjZiMkVLIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAyNCBTZXAgMjAxNyAxOTowNjoxMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBvdXQxLXNtdHAubWVzc2FnaW5nZW5naW5lLmNvbSAob3V0MS1zbXRwLm1lc3NhZ2luZ2VuZ2luZS5jb20gWzY2LjExMS40LjI1XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDBFMTU4NjBGQTMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDI0IFNlcCAyMDE3IDE5OjA2OjEwICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGNvbXB1dGUyLmludGVybmFsIChjb21wdXRlMi5ueWkuaW50ZXJuYWwgWzEwLjIwMi4yLjQyXSkKCWJ5IG1haWxvdXQubnlpLmludGVybmFsIChQb3N0Zml4KSB3aXRoIEVTTVRQIGlkIDlGNTk2MjBEMkEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDI0IFNlcCAyMDE3IDE1OjA2OjEwIC0wNDAwIChFRFQpClJlY2VpdmVkOiBmcm9tIHdlYjIgKFsxMC4yMDIuMi4yMTJdKQogIGJ5IGNvbXB1dGUyLmludGVybmFsIChNRVByb3h5KTsgU3VuLCAyNCBTZXAgMjAxNyAxNTowNjoxMCAtMDQwMApES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOyBkPWlmZWRvcmVua28uY29tOwoJIGg9Y29udGVudC10cmFuc2Zlci1lbmNvZGluZzpjb250ZW50LXR5cGU6ZGF0ZTpmcm9tOmluLXJlcGx5LXRvCgk6bWVzc2FnZS1pZDptaW1lLXZlcnNpb246cmVmZXJlbmNlczpzdWJqZWN0OnRvOngtbWUtc2VuZGVyCgk6eC1tZS1zZW5kZXI6eC1zYXNsLWVuYzsgcz1mbTE7IGJoPVFWWE1TTFNYdnZ3d0p1VXhUcU5INzBBTWNrVGlMCglCdk9LLzY0R3ZOZ2liYz07IGI9azNrYTltcHYyNFFXb1htODFlYWZtbExHNHhxRDhPTGdLT1VQcTVsQnlCVVd4CgltcnNmTzFwMGhBYUtTcFBlVEJ2RHFHcEVKNi9Gdlh3QlIzc0MrQ0JWUzRyeWdDZ1ZlL3IycEh4QXU1VUl5WnVGCgkvR2pqQnVNMGdLMUc5SXRlSlp0QlFZUk5OVFIrSGNLMSswZnV5RzRabVFUWjFhbmUreFdIaURaNElRYVlibml2CglIcEI1RTB0YmFhT3VWMjVDZno5bHVYTFhXdUFiNzRQbWtXL1ByekpkOWY5azF0b1dDelpLczlBQ05mZktnVEpSCglPai9JaEFRZ1Q2amc0WmNzT01LOCttRkFyMm1naU40ZXlHekZBVkNNdEt4UDJ5MEF6enRxM1h6QXpWTk1jLzRCCgk4WmZ0MzJ1aWxwU0FIbTRZOGhBbmtPdHJvWnMxU3hiVlJ0QVBvL3FXZz09CkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7IGQ9CgltZXNzYWdpbmdlbmdpbmUuY29tOyBoPWNvbnRlbnQtdHJhbnNmZXItZW5jb2Rpbmc6Y29udGVudC10eXBlCgk6ZGF0ZTpmcm9tOmluLXJlcGx5LXRvOm1lc3NhZ2UtaWQ6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXMKCTpzdWJqZWN0OnRvOngtbWUtc2VuZGVyOngtbWUtc2VuZGVyOngtc2FzbC1lbmM7IHM9Zm0xOyBiaD1RVlhNU0wKCVNYdnZ3d0p1VXhUcU5INzBBTWNrVGlMQnZPSy82NEd2TmdpYmM9OyBiPWViVTVQQmRScWFCU3FsWENxTkJtRWgKCVJKZEpwUVpaMlhTN3VyVitQZjVieXFGVmphUGlnZ24rcmRDbkUzL2VRYVJBMVRHaXNXR2pGTmlEc1VuUCsweXEKCWJjaVBBUjEwM1RmWHdvS0I1SnNBaHBGait5ZjFwTkl0ZU5RTnR2LzFMUkVQZzF1dzZOWXo0Q2pvWjNKSmNNMFoKCWhsbGM2UGFkVmRsWkZXS1JKaTExcS85R01rSG4vLzVYcGJnVnlrRHdyNEFadDREM3FlRkxMUkJ6TjloVFBCWkIKCVJmRGdTdTdoWlF1YWg4d2lpMmRnM3lqTTkvclZLdW5ValFRcVA0WUxuQ3F5S1VQTUU3US9FN3RIbm1qMmRTdEMKCVovNjk4Tm9VUXQyZmFtak9VeG9EbWNxckVGMzVJaDRQQks2b2RsclgrOWZJQ0JGaHJPb21OWDc3TFJ1cGtvSkEKCT09ClgtTUUtU2VuZGVyOiA8eG1zOklnTElXWXkxSklyRElpYW95ckNfYzMwZExwZXBrOHMybHlSUHVLU01vQ2NnMmtEaldIaDdmUT4KUmVjZWl2ZWQ6IGJ5IG1haWx1c2VyLm55aS5pbnRlcm5hbCAoUG9zdGZpeCwgZnJvbSB1c2VyaWQgOTkpCglpZCA2QjJENjYyNkEyOyBTdW4sIDI0IFNlcCAyMDE3IDE1OjA2OjEwIC0wNDAwIChFRFQpCk1lc3NhZ2UtSWQ6IDwxNTA2Mjc5OTcwLjIwOTQ1NTEuMTExNjYxNjM2OC4wNEJDRTVCRkB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CkZyb206IElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY29tPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9InV0Zi04IgpYLU1haWxlcjogTWVzc2FnaW5nRW5naW5lLmNvbSBXZWJtYWlsIEludGVyZmFjZSAtIGFqYXgtNjRiMDg2OTIKRGF0ZTogU3VuLCAyNCBTZXAgMjAxNyAxNTowNjoxMCAtMDQwMApSZWZlcmVuY2VzOiA8Q0ErblBuTXdNQ3FPX0V0Y0JXNV8zck03MS10Q3JpdHA0VWtzeWZQbURHQVlyNnh6PW9RQG1haWwuZ21haWwuY29tPgogPEYxRjhCM0NGLUREQUMtNDRCQS1BRUI3LTQxMjJDODg3QzRBQkBob250b24ub3JnPgogPENBK25Qbk13Zl9CZnRZdXMtcm5Rck83bzUrZHVHRnowVkVhN05pb2hHMV9fWVV6cmM1d0BtYWlsLmdtYWlsLmNvbT4KIDwxNTA1Nzk2OTA4LjI1MTY4MDguMTExMDY3MzEyOC42MzVBQzM1RkB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CiA8b3AueTZ0dG1yZWJrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CiA8Q0ErblBuTXhGRkVUUW1xdGUwLTUwdTNFRlN3Ymc2eWlwdzVWU0JkTFB3VHpQaGRWazV3QG1haWwuZ21haWwuY29tPgogPG9wLnk2dHY1a2Yza2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgogPDE1MDU4NTM1NDAuMzQ0MzQ2NS4xMTExNjIwNjQwLjMzMUJFNThBQHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KIDxDQStuUG5NemtOdkJGX0ZjdC1FPTdxZkdRZnBIVUJLVDE5Y1dDMzhTQ3F0cTZrdmllOWdAbWFpbC5nbWFpbC5jb20+CiA8MTUwNTg2NzM3NC4zNDkzODQyLjExMTE3OTY1MjAuNTEyNEFDQTZAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgogPENBK25Qbk14cUhhM3lCUkZXcitpT0VzT21oa1g4TGNnYzBNNGRHOXN5dWNMc1BhTFI1QUBtYWlsLmdtYWlsLmNvbT4KIDxvcC55NnVzZXV3eWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KIDwxNTA1OTA3ODkyLjIyNzI0OC4xMTEyMjgyMzEyLjA5M0RBOEM1QHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KIDxDQStuUG5NenUrWXZLUVgzdlQ9QUJrSzNwY0dQLU1oeHRzaW9rVDBDc2t6QWJqTTl4N0FAbWFpbC5nbWFpbC5jb20+CiA8MTUwNjI3NTkzMS4yMDgxODgxLjExMTY1Njc4NzIuNDUyQjJGMDRAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgogPENBK25Qbk14RWNGQUNoazgwaHNadkdhVUNoNDVCcm12MzIrWXRtcmU1PVpjeWdUY19fd0BtYWlsLmdtYWlsLmNvbT4KSW4tUmVwbHktVG86IDxDQStuUG5NeEVjRkFDaGs4MGhzWnZHYVVDaDQ1QnJtdjMyK1l0bXJlNT1aY3lnVGNfX3dAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBVbmRlcnN0YW5kaW5nIE1ORy02MjA5ICh3YXM6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMSkKCkxldHMgZGVjaWRlIHRoZSBhZ2VuZGEgZmlyc3QsIHRoZW4gd2hvIHlvdSBuZWVkIHRvIGF0dGVuZCAoYXNzdW1pbmcgeW91CmFyZSBkcml2aW5nIHRoaXMgZGlzY3Vzc2lvbi9kZWNpc2lvbiksIHRoZW4gcGljayB0aGUgdGltZSB0aGF0IHdvcmtzLgoKPkZyb20gbXkgc2lkZSwgSSBzdGlsbCBkb24ndCB1bmRlcnN0YW5kIHRoZSBwcm9ibGVtcyB3ZSBhcmUgdHJ5aW5nIHRvCnNvbHZlLiBJZiB0aGlzIGlzIHRoZSBsYWNraW5nIGRvY3VtZW50YXRpb24gYW5kIGdlbmVyYWwgInVuY29tZm9ydCIgdG8KbWVzcyB3aXRoIGNsYXNzbG9hZGluZyBpbiBidWcgZml4IHJlbGVhc2UsIHRoZW4gbWF5YmUgZG8gd2hhdCBBbmRlcnMKc3VnZ2VzdHMgKEkgdGhpbmspLCBidW1wIHRoZSB2ZXJzaW9uIHRvIDMuNi4wLCBkb2N1bWVudCB0aGUgYmVoYXZpb3VyIHdlCmhhdmUgb24gbWFzdGVyIGFuZCBtb3ZlIG9uLgoKLS09MjAKUmVnYXJkcywKSWdvcgoKT24gU3VuLCBTZXAgMjQsIDIwMTcsIGF0IDAyOjI4IFBNLCBTdGVwaGVuIENvbm5vbGx5IHdyb3RlOgo+IEkgd29uZGVyIHNob3VsZCB3ZSBkbyBhIGhhbmdvdXQgdG8gZGVjaWRlIHdoYXQgeW91IGRvPwo+PTIwCj4gV2hhdCB0aW1lcyBvbiBNb25kYXkgd29yayBiZXN0Pwo+PTIwCj4gSSBjYW4gbWF5YmUgZG8gODozMC05OjMwcG0gSXJpc2ggdGltZQo+PTIwCj4gaHR0cHM6Ly93d3cudGltZWFuZGRhdGUuY29tL3dvcmxkY2xvY2svbWVldGluZ2RldGFpbHMuaHRtbD95ZWFyPTNEMjAxNyZtbz0KbnRoPTNEOSZkYXk9M0QyNSZob3VyPTNEMTkmbWluPTNEMzAmc2VjPTNEMCZwMT0zRDc4JnAyPTNEMzcmcDM9M0QxNzkKPj0yMAo+IEJ1dCB3ZT1FMj04MD05OWQgbmVlZCB0byBkZWNpZGUgd2hvIHdlIG5lZWQgYW5kIGFuIGFjdHVhbCBhZ2VuZGEuCj49MjAKPiBJZiBNb25kYXkgaXMgdG9vIHNvb24gSSBjYW4gc2VlIGlmIEkgaGF2ZSBhIHdpbmRvdyBsYXRlciB0aGlzIHdlZWsKPj0yMAo+IE9uIFN1biAyNCBTZXAgMjAxNyBhdCAxODo1OCwgSWdvciBGZWRvcmVua28gPGlnb3JAaWZlZG9yZW5rby5jb20+IHdyb3RlOgo+PTIwCj4gPiBTZWUgbXkgYW5zd2Vycy9jb21tZW50cyBpbmxpbmUKPiA+Cj4gPgo+ID4gT24gU3VuLCBTZXAgMjQsIDIwMTcsIGF0IDEyOjA3IFBNLCBTdGVwaGVuIENvbm5vbGx5IHdyb3RlOgo+ID4gPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL21pbmkvZ3VpZGUtbWF2ZW4tY2xhc3Nsb2FkaW5nLmh0bWwgc2E9CnlzOgo+ID4gPgo+ID4gPiA+IFdoZW4gYSBidWlsZCBwbHVnaW4gaXMgZXhlY3V0ZWQsIHRoZSB0aHJlYWQncyBjb250ZXh0IGNsYXNzbG9hZGVyIGlzCj4gPiBzZXQKPiA+ID4gdG8gdGhlIHBsdWdpbiBjbGFzc2xvYWRlci4KPiA+ID4KPiA+ID4gU28gd2UnbGwgbmVlZCB0byBmaXggc29tZXRoaW5nIHNvbWV3aGVyZS4uLgo+ID4gPgo+ID4gPgo+ID4gaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL21hdmVuL2NvbnRlbnQvcmU9CmZlcmVuY2UvbWF2ZW4tY2xhc3Nsb2FkaW5nLmh0bWwKPiA+ID4gaXMgdW5hY2Nlc3NpYmxlIGZyb20gdGhlIHdlYnNpdGUgZHVlIHRvIGEgcmV3cml0ZSBydWxlLi4uCj4gPiA+Cj4gPiA+IFRoaW5ncyB0aGF0IHNlZW0gdG8gYmUgbWlzc2luZzoKPiA+ID4KPiA+ID4gKiBXaGF0IGlzIHRoZSBkZXNpcmVkIGNsYXNzbG9hZGluZyBmb3IgYSBwbHVnaW4gdGhhdCBpcyBtYXJrZWQgYXMgYW4KPiA+ID4gZXh0ZW5zaW9uPyBDYW4gYSBwbHVnaW4gaGF2ZSBhIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgdG8gYWxsb3cKPiA+ID4gZXhwb3J0aW5nIGNsYXNzZXMgYW5kIGFydGlmYWN0cyB3aGVuIHVzZWQgYXMgYW4gZXh0ZW5zaW9uPyBIb3cgc2hvdWxkPQogdGhlCj4gPiA+IGNsYXNzbG9hZGluZyBsb29rIGZvciBzdWNoIGEgc3RyYW5nZSBiZWFzdC4KPiA+Cj4gPiBUbyBtZSwgdGhlIGtleSByZXF1aXJlbWVudCBpcyB0aGF0IEBTaW5nbGV0b24gY29tcG9uZW50cyBhbmQgY2xhc3MKPiA+IHN0YXRpYyBtZW1iZXJzIGFyZSBzaW5nbGV0b25zIHdoZW4gaW5qZWN0ZWQgaW4gTWF2ZW4gY29yZSBvciBpbiBATW9qb3MuCj4gPiBUaGlzIGltcGxpZXMgdGhhdCB0aGVyZSBzaG91bGQgYmUgc2luZ2xlIGNsYXNzbG9hZGVyIHJlcHJlc2VudGluZyBhbgo+ID4gZXh0ZW5zaW9ucyBwbHVnaW5zIChNTkctNTc0MikuCj4gPgo+ID4gTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCBkZWNsYXJlcyB3aGF0IHBhY2thZ2VzIG9mIHRoZSBleHRlbnNpb24KPiA+IHBsdWdpbiBhcmUgdmlzaWJsZSB0byBvdGhlciAobm9uIGV4dGVuc2lvbikgcGx1Z2lucy4KPiA+IE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgZG9lcyBub3QgYWZmZWN0IGNsYXNzbG9hZGluZyBvZiB0aGUKPiA+IGV4dGVuc2lvbiBwbHVnaW4gbm9yIGl0IGFmZmVjdHMgdGhlICJzaGFwZSIgb2Ygb3RoZXIgY2xhc3Nsb2FkZXJzLgo+ID4KPiA+ID4gKiBIb3cgZG9lcyBvbmUgYWNjZXNzIHRoZSBwbHVnaW4gY2xhc3Nsb2FkZXIgaWYgd2Ugd2FudCBUQ0NMIHRvIGJlIG90PQpoZXIKPiA+ID4gdGhhbiB0aGF0LCBpcyBpdCBhIERlcGVuZGVuY3kgSW5qZWN0aW9uIG9yIHNvbWV0aGluZyBlbHNlPwo+ID4KPiA+IHRoaXMuZ2V0Q2xhc3MoKS5nZXRDbGFzc0xvYWRlcigpIGlzIHRoZSBtb3N0IGRpcmVjdCB3YXkgdG8gYWNjZXNzIHBsdWdpbgo+ID4gY2xhc3Nsb2FkZXIuIFdoeSBkbyB5b3UgdGhpbmsgd2UgbmVlZCBhbnl0aGluZyBtb3JlIGVsYWJvcmF0ZT8KPiA+Cj4gPgo+ID4gPiAqIFdoYXQgZGlmZmVyZW50aWF0ZXMgYSBDb3JlIGV4dGVuc2lvbiBmcm9tIGEgQnVpbGQgZXh0ZW5zaW9uIChpcyBpdCA9CnRoYXQKPiA+ID4gYQo+ID4gPiBidWlsZCBleHRlbnNpb24gbGFja3MgYSBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sIGFuZCB3YXMgb25seQo+ID4gPiBkZWNsYXJlZAo+ID4gPiBpbiB0aGUgcG9tLnhtbCwgd2hpbGUgYSBjb3JlIGV4dGVuc2lvbiBlaXRoZXIgaGFzIGEKPiA+ID4gTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCAtIGlmIGRlY2xhcmVkIGluIHRoZSBwb20gLSBvciBpcyBhbgo+ID4gPiBleHRlbnNpb24KPiA+ID4gZGVjbGFyZWQgaW4gLm12bi9leHRlbnNpb25zLnhtbCkKPiA+Cj4gPiBDb3JlIGV4dGVuc2lvbnMgYXJlIGxvYWRlZCAqYmVmb3JlKiBidWlsZCBzdGFydHMsIHNvIHRoZXkgY2FuIGNvbnRyaWJ1dGUKPiA+IEFic3RyYWN0TWF2ZW5MaWZlY3ljbGVQYXJ0aWNpcGFudCNhZnRlclNlc3Npb25TdGFydCwgZm9yIGV4YW1wbGUuIFRoZXkKPiA+IGNhbiBhbHNvIGV4cG9ydCBwYWNrYWdlcyB2aXNpYmxlIHRvIGFsbCBidWlsZCBwbHVnaW5zLCBpbmNsdWRpbmcKPiA+IGV4dGVuc2lvbnM9M0R0cnVlLiBPbiB0aGUgZmxpcCBzaWRlLCBlYWNoIGNvcmUgZXh0ZW5zaW9uIGlzIGVmZmVjdGl2ZWx5Cj4gPiBzaW5nbGV0b24sIHlvdSBjYW4ndCBoYXZlIHR3byBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgdGhlIHNhbWUgQ29yZQo+ID4gZXh0ZW5zaW9uLiBDb3JlIGV4dGVuc2lvbnMgYWxzbyBoYXZlIGRpcmVjdCBhY2Nlc3MgdG8gTWF2ZW4gY29yZSBjbGFzc2VzCj4gPiBhbmQgY2FuIGRvIG1vcmUgaW50ZXJlc3RpbmcgdGhpbmdzIHRoZXJlIChmb3IgYmV0dGVyIG9yIHdvcnNlKS4KPiA+Cj4gPiBCdWlsZCBleHRlbnNpb25zIGFyZSBwYXJ0IG9mIHRoZSBwcm9qZWN0IGJ1aWxkIGFuZCBhcyBzdWNoIGFyZSBsaW1pdGVkCj4gPiB3aGF0IGNvbXBvbmVudHMgdGhleSBjYW4gY29udHJpYnV0ZSB0byB0aGUgQ29yZSBhbmQgd2hhdCBjb3JlIGNsYXNzZXMKPiA+IHRoZXkgaGF2ZSBhY2Nlc3MgdG8uCj4gPgo+ID4gSSB0cmllZCB0byBjYXB0dXJlIHRoaXMgaW4gdGhlIGRpYWdyYW0gSSBkcmV3IGZvcgo+ID4gaHR0cDovL3Rha2FyaS5pby9ib29rLzkxLW1hdmVuLWNsYXNzbG9hZGluZy5odG1sLgo+ID4KPiA+ID4gQXQgdGhpcyBwb2ludCBpbiB0aW1lIEkgdGhpbmsgd2UgYXJlIG5lYXJpbmcgdGhlIHBvaW50IHdoZXJlIEkgbWF5IGhhPQp2ZQo+ID4gPiB0bwo+ID4gPiBkZWNsYXJlIDMuNS4xIGFiYW5kb25lZCBhcyBJIHRoaW5rIHRoZSBjbGFzc2xvYWRpbmcgaW4gdGhhdCBpcyBhIHN5bXA9CnRvbQo+ID4gPiBvZgo+ID4gPiB0b28gbWFueSBjb29rcyBhbGwgY2hhbmdpbmcgdGhpbmdzIGluIGRpZmZlcmVudCBkaXJlY3Rpb25zLiBXZSBuZWVkIGEKPiA+ID4gY29uc2lzdGVudCB2aXNpb24gb2Ygd2hlcmUgd2Ugd2FudCB0aGluZ3MgdG8gZ28gYW5kIC0gd2hpbGUgd2UgbmVlZCBuPQpvdAo+ID4gPiBnZXQKPiA+ID4gdGhlcmUgaW4gb25lIGdvIC0gdGhlIHBhdGggcHJlc2VudGVkIGZvciBvdGhlcnMgdG8gc2VlLgo+ID4KPiA+IFRoZXJlIHdlcmUgdHdvIGNsYXNzbG9hZGluZyBjaGFuZ2VzIGluIDMuNS4xLCBuYW1lbHkgZXh0ZW5zaW9ucz0zRHRydWUKPiA+IHBsdWdpbnMgbm93IGhhdmUgcHJvamVjdCByZWFsbSBhcyBUQ0NMIGFuZCBhbGwgcmVhbG1zIG5vdyB1c2UKPiA+IGFwcGxpY2F0aW9uIGNsYXNzbG9hZGVyIGFzIHRoZSBwYXJlbnQuIEFwYXJ0IGZyb20gbGFja2luZyBkb2N1bWVudGF0aW9uLAo+ID4gd2hhdCBwcmFjdGljYWwgcHJvYmxlbXMgaGF2ZSBiZWVuIGNhdXNlZCBieSB0aGVzZSB0d28gY2hhbmdlcz8KPiA+Cj4gPiA+Cj4gPiA+IFRoaW5ncyBJIHRoaW5rIHdlIHNob3VsZCBjb25zaWRlcjoKPiA+ID4KPiA+ID4gMS4gRG8gd2Ugd2FudCB0byBmb3JtYWxseSBkZXByZWNhdGUgQnVpbGQgRXh0ZW5zaW9ucyBhbmQgdGhlCj4gPiA+IC9wcm9qZWN0L2J1aWxkL2V4dGVuc2lvbnMgZWxlbWVudCAoc3RhcnQgbG9nZ2luZyB3YXJuaW5ncywgZXRjKT8KPiA+ID4gMi4gRG8gd2Ugd2FudCB0byBmb3JtYWxseSBkZXByZWNhdGUgcGx1Z2lucyBhcyBleHRlbnNpb25zIGFuZCBzdGFydAo+ID4gPiBsb2dnaW5nCj4gPiA+IHdhcm5pbmdzIGZvcgo+ID4gPgo+ID4gL3Byb2plY3QvYnVpbGQvKHBsdWdpbk1hbmFnZW1lbnR8LikvcGx1Z2lucy9wbHVnaW4vZXh0ZW5zaW9uc1t0ZXh0KCk9M0Q9Cj0zRHRydWVdCj4gPgo+ID4gSSdkIGtlZXAgdGhlbSBib3RoLCBhbmQgbWF5YmUgZml4L3JlbW92ZSBtYXZlbjItY29tcGF0IGNvZGVwYXRoLiBJZiBJCj4gPiBoYWQgdG8gY2hvb3NlIGJldHdlZW4gdGhlIHR3bywgaG93ZXZlciwgSSdkIGNob29zZSA8cGx1Z2luPiB3aXRoCj4gPiBleHRlbnNpb25zPTNEdHJ1ZS4gVGhpbmsgb2YgYSBjdXN0b20gcGFja2FnaW5nIHR5cGUgd2l0aCBtb2pvcyB0aGUgdXNlcgo+ID4gd2FudHMgdG8gY29uZmlndXJlIGluIHBvbS54bWwsIGl0J2QgYmUgbW9yZSB0ZWRpb3VzIHRvIGNvbmZpZ3VyZSBpZiBJCj4gPiBoYWQgdG8gYWRkIGJ1aWxkL2V4dGVuc2lvbiBhbmQgYnVpbGQvcGx1Z2luLgo+ID4KPiA+ID4gMy4gV2hhdCBpcyB0aGUgZGlmZmVyZW5jZSBpbiBjbGFzc2xvYWRpbmcgZm9yIGEgL3Byb2plY3QvYnVpbGQvZXh0ZW5zPQppb25zCj4gPiA+IHdoaWNoIGhhcyBhIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgYW5kIG9uZSB0aGF0IGRvZXNuJ3Q/Cj4gPgo+ID4gSSB0aGluayBleHRlbnNpb25zIHdpdGggTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCBzaG91bGQgbm90IGdvCj4gPiB0aHJvdWdoIG1hdmVuMi1jb21wYXQgY29kZXBhdGguIEluIG90aGVyIHdvcmRzLCB3ZSBuZWVkIHRvIGNoYW5nZSB0aGUKPiA+IGN1cnJlbnQgYmVoYXZpb3VyLgo+ID4KPiA+IEV4dGVuc2lvbnMgd2l0aG91dCBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sLi4uIEkgYW0gbm90IHN1cmUuCj4gPiBQcm9iYWJseSBzYWZlciB0byBrZWVwIHRoZSBjdXJyZW50IG1hdmVuMi1jb21wYXQgYmVoYXZpb3VyLgo+ID4KPiA+ID4gSSdtIGtlZXBpbmcgdGhlIDMuNS4xIHJlbGVhc2UgaW4gc3RhZ2luZyB1bnRpbCB3ZSBnZXQgYSBjbGVhciB2aXNpb24gPQpmb3IKPiA+ID4gaG93IHdlIHdhbnQgdG8gaGF2ZSBjbGFzc2xvYWRpbmcgc28gdGhhdCBJIGNhbiBhc3Nlc3Mgd2hldGhlciB0aGUgMy41PQouMQo+ID4gPiBhY3R1YWxpdHkgaXMgb25seSBtb3ZpbmcgbmVhcmVyIHRvIHRoZSB2aXNpb24gKG9rIHRvIHJlbGVhc2UpIG9yIGhhcwo+ID4gPiBtb3ZlZAo+ID4gPiBuZWFyZXIgaW4gc29tZSB3YXlzIGJ1dCBmdXJ0aGVyIGluIG90aGVycyAobm90IG9rIHRvIHJlbGVhc2UpCj4gPiA+Cj4gPgo+ID4KPiA+IC0tCj4gPiBSZWdhcmRzLAo+ID4gSWdvcgo+ID4KPiA+Cj4gPgo+ID4gPiBPbiAyMCBTZXB0ZW1iZXIgMjAxNyBhdCAxMjo0NCwgSWdvciBGZWRvcmVua28gPGlnb3JAaWZlZG9yZW5rby5jb20+Cj4gPiA+IHdyb3RlOgo+ID4gPgo+ID4gPiA+IFJlYWwtd29ybGQgc2NtIG9yIHdhZ29uIDxleHRlbnNpb25zPiB3b24ndCB0cmlnZ2VyIG1hdmVuMi1jb21wYXQgY289CmRlCj4gPiA+ID4gcGF0aCBbMV0uIFRvIGF2b2lkIHRoYXQgb2JzY3VyZSBjb2RlIHBhdGggd2UgY2FuIGVpdGhlciBtYWtlIHRoZSB0ZT0Kc3QKPiA+ID4gPiBtb3JlIGVsYWJvcmF0ZSAoaS5lLiBhZGQgZGVwZW5kZW5jaWVzIHRvIGV4dGphcjEvZXh0amFyMikgb3Igd2UgY2FuPQogdXNlCj4gPiA+ID4gZXh0ZW5zaW9ucyA8cGx1Z2luPi4gRWl0aGVyIHdheSBJIGRvbid0IHRoaW5rIHdlIHNob3VsZCBzcGVuZCB0aW1lID0Kb24KPiA+ID4gPiB0aGUgY29kZSBwYXRoIHVubGlrZWx5IHRvIGJlIHVzZWQgaW4gcmVhbCBsaWZlLgo+ID4gPiA+Cj4gPiA+ID4gWzFdCj4gPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9ibG9iL21hdmVuLTMuNS4xL21hdmVuLQo+ID4gPiA+Cj4gPiBjb3JlL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wcm9qZWN0L0RlZmF1bHRQcm9qZWN0QnVpbGRpbmdIZWxwZT0Kci4KPiA+ID4gPiBqYXZhI0wyMTAtTDIxOQo+ID4gPiA+Cj4gPiA+ID4gLS0KPiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+IElnb3IKPiA+ID4gPgo+ID4gPiA+IE9uIFdlZCwgU2VwIDIwLCAyMDE3LCBhdCAwMzoyOSBBTSwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4gPiA+ID4gPiBPbiBXZWQsIDIwIFNlcCAyMDE3IDA5OjEyOjQ3ICswMjAwLCBTdGVwaGVuIENvbm5vbGx5Cj4gPiA+ID4gPiA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+ID4gPgo+ID4gPiA+ID4gPiBPbiBXZWQgMjAgU2VwIDIwMTcgYXQgMDE6MjksIElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY289Cm0+Cj4gPiA+ID4gd3JvdGU6Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+PiBJbiB0aGF0IGNhc2UsIGNhbiBJIHN1Z2dlc3QgY291cGxlIG9mIGNoYW5nZXMgdG8gdGhlIHRlc3QgcHJvaj0KZWN0Cj4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPj4gKiBJIHRoaW5rcyBpdCBtYWtlcyBtb3JlIHNlbnNlIHRvIGNvbmZpZ3VyZSBleHRqYXIxIGFuZCBleHRqYXI9CjIgYXMKPiA+ID4gPiA+ID4+IGV4dGVuc2lvbnMgPHBsdWdpbj4gZWxlbWVudHMgaW4gcHJvYmxlTiBwb20ueG1sIGZpbGVzLiBGaXJzdCwKPiA+IHRoZXJlIGlzCj4gPiA+ID4gPiA+PiBubyBtZWFuaW5nZnVsIG9yZGVyIGJldHdlZW4gPGV4dGVuc2lvbnM+IGFuZCA8cGx1Z2lucz4gZWxlbWVudD0Kcy4KPiA+IE1vcmUKPiA+ID4gPiA+ID4+IGltcG9ydGFudGx5LCB0aG91Z2gsIHNpbXBsZSA8ZXh0ZW5zaW9ucz4gYXJlIHRyZWF0ZWQgaW4gc3BlY2lhbAo+ID4gPiA+ID4gPj4gbWF2ZW4yLWNvbXBhdCBtb2RlIGFuZCBhcmUgbm90IHJlcHJlc2VudGF0aXZlIG9mIGxpa2VseSByZWFsLXc9Cm9ybGQKPiA+ID4gPiA+ID4+IGV4dGVuc2lvbnMuCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gTm90IHN1cmUgSSBhZ3JlZSB3aXRoIHRoaXMuIEkgdGhpbmsgdGhlcmUgYXJlIGphcnMgd29ydGggc2hhcmluZwo+ID4gYWNyb3NzCj4gPiA+ID4gPiBtdWx0aXBsZSBwbHVnaW5zLCBidXQgd2hlcmUgbWFraW5nIHRoZSBwbHVnaW4gYW4gZXh0ZW5zaW9uIGlzIGEgYj0KaXQKPiA+ID4gPiA+IHdlaXJkLgo+ID4gPiA+ID4gSSdtIHRoaW5raW5nIG9mIHNjbSBhbmQgd2Fnb24gaW4gdGhpcyBjYXNlLgo+ID4gPiA+ID4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gVGhhdCBzb3VuZHMgbGlrZSB3ZSBuZWVkIGRvY3VtZW50YXRpb24gdXBkYXRlZCB0aGVuLiBOb25lIG9mIHRoPQphdAo+ID4gaXMKPiA+ID4gPiA+ID4gb2J2aW91cyB0byBtZS4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+PiAqIEkgdGhpbmsgd2Ugc2hvdWxkIGludHJvZHVjZSBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sIHRvID0KdGhlCj4gPiB0ZXN0Cj4gPiA+ID4gPiA+PiBleHRlbnNpb25zLiBUaGlzIG1ldGFkYXRhIHdoYXQgaW50cm9kdWNlZCB0byBjb25maWd1cmUgY2xhc3NwYT0KdGgKPiA+ID4gPiA+ID4+IHZpc2liaWxpdHksIHNvIGxldHMgdXNlIGl0Lgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBBZ2Fpbiwgbm90IG9idmlvdXMgdG8gbWUsIGlmIHRoYXQgZmlsZSBhbGxvd3MgY29udHJvbCBvZiBjbGFzc3A9CmF0aAo+ID4gPiA+ID4gPiB2aXNpYmlsaXR5IHRoZW4gaXQgbWF5IGJlIHRoYXQgdGhlIG9ubHkgaXNzdWUgKndpdGgqIDMuNS4xIGlzIHQ9CmhlCj4gPiBsYWNrCj4gPiA+ID4gb2YKPiA+ID4gPiA+ID4gZG9jdW1lbnRhdGlvbi4uLiBub3cgcHJldmlvdXMgdmVyc2lvbnMgd291bGQgaGF2ZSBiZWVuIGFkZGluZwo+ID4gYnJlYWtpbmcKPiA+ID4gPiA+ID4gY2hhbmdlcyBmcm9tIG15IFBvViBidXQgdGhhdCBpcyB0aGUgcGFzdCBhbmQgc2hvdWxkIG5vdCBhZmZlY3QgPQp0aGUKPiA+ID4gPiAzLjUuMQo+ID4gPiA+ID4gPiByZWxlYXNlLgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBQUnMgZm9yIHRoZSBwcm9iZSBwcm9qZWN0IHdlbGNvbWUuIEkgYW0gaGFwcHkgdG8gdHJ5IGFuZCB3cml0ZSA9CmRvY3MKPiA+ID4gPiBvbmNlCj4gPiA+ID4gPiA+IEkKPiA+ID4gPiA+ID4gaGF2ZSBhbiB1bmRlcnN0YW5kaW5nIG9mIHdoYXQgdGhlIGV4cGVjdGVkIGJlaGF2aW91cnMgYXJlCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPj4gLS0KPiA+ID4gPiA+ID4+IFJlZ2FyZHMsCj4gPiA+ID4gPiA+PiBJZ29yCj4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPj4gT24gVHVlLCBTZXAgMTksIDIwMTcsIGF0IDA1OjEyIFBNLCBTdGVwaGVuIENvbm5vbGx5IHdyb3RlOgo+ID4gPiA+ID4gPj4gPiBZZXMsIHRoZSBleHBlY3RhdGlvbnMgYXJlIGtleS4gRGVwZW5kaW5nIG9uIHdoYXQgdGhleSBhcmUgd2U9CiBtYXkKPiA+ID4gPiA+ID4+IGVpdGhlcgo+ID4gPiA+ID4gPj4gPiBkcm9wIDMuNS4xIG9yIGdvIGFoZWFkIGFzIGl0IGRlcGVuZHMgb24gd2hldGhlciB0aGlzIGlzIG1vcmUKPiA+IGNvcnJlY3QKPiA+ID4gPiA+ID4+IHRoYW4KPiA+ID4gPiA+ID4+ID4gMy41LjAgb3Igc3dhcHBpbmcgb25lIGZpeCBmb3IgYSBidWcKPiA+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4+ID4gT24gVHVlIDE5IFNlcCAyMDE3IGF0IDIxOjM5LCBJZ29yIEZlZG9yZW5rbyA8Cj4gPiBpZ29yQGlmZWRvcmVua28uY29tPgo+ID4gPiA+ID4gPj4gd3JvdGU6Cj4gPiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+PiA+ID4gSnVzdCB0byBjb25maXJtIEkgdW5kZXJzdGFuZCB3aGF0IHdlIGFyZSB0cnlpbmcgdG8gZXN0YWJsaT0Kc2gKPiA+IGhlcmUuCj4gPiA+ID4gPiA+PiBXZQo+ID4gPiA+ID4gPj4gPiA+IHdhbnQgdG8gZGVjaWRlIHRoZSBleHBlY3RlZC9kZXNpcmVkIGNvbXBvbmVudCBpbmplY3Rpb24KPiA+IGJlaGF2aW91cgo+ID4gPiA+ID4gPj4gYW5kCj4gPiA+ID4gPiA+PiA+ID4gY2xhc3NwYXRoIHZpc2liaWxpdHkgaW4gdGhlIGFic2VuY2Ugb2YgcGFja2FnZSBhbmQgYXJ0aWZhY3QKPiA+IGV4cG9ydAo+ID4gPiA+ID4gPj4gPiA+IGNvbmZpZ3VyYXRpb24gKGkuZS4gTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCBmaWxlKS4gRGk9CmQgSQo+ID4gZ2V0Cj4gPiA+ID4gPiA+PiB0aGlzCj4gPiA+ID4gPiA+PiA+ID4gcmlnaHQ/Cj4gPiA+ID4gPiA+PiA+ID4KPiA+ID4gPiA+ID4+ID4gPiAtLQo+ID4gPiA+ID4gPj4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4gPiA+PiA+ID4gSWdvcgo+ID4gPiA+ID4gPj4gPiA+Cj4gPiA+ID4gPiA+PiA+ID4gT24gVHVlLCBTZXAgMTksIDIwMTcsIGF0IDAzOjUyIFBNLCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPiA+ID4gPiA+ID4+ID4gPiA+IExldCdzIGRvIGl0IGxpa2UgdGhpczoKPiA+ID4gPiA+ID4+ID4gPiA+Cj4gPiA+ID4gPiA+PiA+ID4KPiA+ID4gPiA+ID4+IGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rvd25sb2FkL2F0dGFjaG1lbnRzLzIzMjk4PQo0MS8KPiA+ID4gPiBjbGFzc3JlYWxtcy5wZGY/YXBpPTNEdjIKPiA+ID4gPiA+ID4+ID4gPiA+Cj4gPiA+ID4gPiA+PiA+ID4gPiBSb2JlcnQKPiA+ID4gPiA+ID4+ID4gPiA+Cj4gPiA+ID4gPiA+PiA+ID4gPiBPbiBUdWUsIDE5IFNlcCAyMDE3IDIxOjA4OjM5ICswMjAwLCBTdGVwaGVuIENvbm5vbGx5Cj4gPiA+ID4gPiA+PiA+ID4gPiA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+ID4gPiA+PiA+ID4gPgo+ID4gPiA+ID4gPj4gPiA+ID4gPiBJIHRoaW5rIHlvdSB3aWxsIG5lZWQgYSBsaW5rIHRvIHRoZSBQREYgYXMgYXR0YWNobWVudHM9CiBhcmUKPiA+ID4gPiA+ID4+IHN0cmlwcGVkCj4gPiA+ID4gPiA+PiA+ID4gZnJvbQo+ID4gPiA+ID4gPj4gPiA+ID4gPiB0aGUgTUwKPiA+ID4gPiA+ID4+ID4gPiA+ID4KPiA+ID4gPiA+ID4+ID4gPiA+ID4gT24gVHVlIDE5IFNlcCAyMDE3IGF0IDE5OjU3LCBSb2JlcnQgU2Nob2x0ZQo+ID4gPiA+ID4gPj4gPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgo+ID4gPiA+ID4gPj4gPiA+IHdyb3RlOgo+ID4gPiA+ID4gPj4gPiA+ID4gPgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gQXR0YWNoZWQgYSBzaW5nbGUgcGFnZSBvdmVydmlldy4KPiA+ID4gPiA+ID4+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiBQZXIgYmxvY2sgeW91J2xsIHNlZSBpbiB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgdGhlCj4gPiBleGVjdXRlZAo+ID4gPiA+ID4gPj4gcGx1Z2luCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiBUaGUgbGVmdCBjb2x1bW4gY29udGFpbnMgdGhlIGV4dGVuc2lvbnMgYW5kIHBsdWdpbiBpbgo+ID4gb3JkZXJhcwo+ID4gPiA+ID4gPj4gPiA+IHNwZWNpZmllZAo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gaW4KPiA+ID4gPiA+ID4+ID4gPiA+ID4+IHRoZSBwb20ueG1sCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiBJbiBldmVyeSBjbGFzc2xvYWRlcmNvbHVtbiB5b3UnbGwgc2VlIG51bWJlcnMgd2hpY2gKPiA+IHJlcHJlc2VudAo+ID4gPiA+ID4gPj4gdGhlCj4gPiA+ID4gPiA+PiA+ID4gb3JkZXIuCj4gPiA+ID4gPiA+PiA+ID4gPiA+Pgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gSSBob3BlIEkgZGlkbid0IG1ha2UgYW55IG1pc3Rha2VzLgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gVG9tb3Jyb3cgSSBoYXZlIGVub3VnaCB0aW1lIHRvIHNlZSBpZiBJIHVuZGVyc3RhbmQgd2g9CmF0J3MKPiA+ID4gPiA+ID4+IGhhcHBlbmluZwo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gaGVyZS4KPiA+ID4gPiA+ID4+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiBJIHdpbGwgY29tZSBiYWNrIHdpdGggbXkgY29uY2x1c2lvbnMuCj4gPiA+ID4gPiA+PiA+ID4gPiA+Pgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gUm9iZXJ0Cj4gPiA+ID4gPiA+PiA+ID4gPiA+Pgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gT24gVHVlLCAxOSBTZXAgMjAxNyAwNjo1NTowOCArMDIwMCwgSWdvciBGZWRvcmVua28gPAo+ID4gPiA+ID4gPj4gPiA+IGlnb3JAaWZlZG9yZW5rby5jb20+Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiB3cm90ZToKPiA+ID4gPiA+ID4+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IFRMO0RSIHlvdXIgdGVzdCBwcm9qZWN0IGV4cG9zZWQgdHdvIGV4aXN0aW5nIGJ1Z3MsID0Kb25lCj4gPiA+ID4gPiA+PiBjaGFuZ2UgaW4KPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gYmVoYXZpb3VyIGFuZCBvbmUgcXVpcmsgSSBjYW4ndCBleHBsYWluCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogQnVpbGQgYDxleHRlbnNpb25zPmAgYXJlIGxvYWRlZCBieSB0d28gY2xhc3Nsb2FkZT0KcnMsCj4gPiA+ID4gd2hpY2gKPiA+ID4gPiA+ID4+IGlzCj4gPiA+ID4gPiA+PiBhCj4gPiA+ID4gPiA+PiA+ID4gYnVnCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiBpbgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBEZWZhdWx0UHJvamVjdEJ1aWxkaW5nSGVscGVyI2NyZWF0ZVByb2plY3RSZWFsbSBhbmQKPiA+ID4gPiBleHBsYWlucwo+ID4gPiA+ID4gPj4gd2h5IHlvdQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gc2VlCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGV4dGphcjEvZXh0amFyMiBpbiB0aGUgb3V0cHV0Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogQ2xhc3NSZWFsbSBkb2VzIG5vdCBhbGxvdyBzYW1lIGZvcmVpZ24taW1wb3J0IGZyb20KPiA+ID4gPiBtdWx0aXBsZQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBjbGFzc2xvYWRlcnMsIHdoaWNoIGlzIGEgYnVnIGFuZCBleHBsYWlucyB3aHkgaXQgaXM9CiBub3QKPiA+ID4gPiA+ID4+IHBvc3NpYmxlIHRvCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiBsb2FkCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IHNhbWUgcmVzb3VyY2UgZnJvbSBtdWx0aXBsZSBwbHVnaW5zL2V4dGVuc2lvbnMKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gKiBUQ0NMIGRvZXMgbm90IGhhdmUgYWNjZXNzIHRvIHByaXZhdGUgKGkuZS4gbm90Cj4gPiBleHBvcnRlZCkKPiA+ID4gPiA+ID4+IHJlc291cmNlcwo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gb2YKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gdGhpcyBleHRlbnNpb25zIHBsdWdpbiwgd2hpY2ggaXMgYSBjaGFuZ2Ugb2YgYmVoYXZpPQpvdXIKPiA+ID4gPiA+ID4+IGludHJvZHVjZWQgYnkKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gbW5nLTYyMDkgZml4Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogQWxzbywgY29tcG9uZW50IGluamVjdGlvbiBvcmRlciBhcHBlYXJzIHRvIGJlCj4gPiBiYWNrd2FyZHMsCj4gPiA+ID4gPiA+PiBidXQKPiA+ID4gPiA+ID4+IG1heWJlCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IFN0dWFydCBjYW4gZXhwbGFpbiB3aHkuCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IEJlbG93IGlzIG1vcmUgZGV0YWlsZWQgZXhwbGFuYXRpb24gb2YgZXhwZWN0ZWQgYW5kCj4gPiBvYnNlcnZlZAo+ID4gPiA+ID4gPj4gPiA+IGJlaGF2aW91cgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAjIyBDb21wb25lbnQgaW5qZWN0aW9uIGRlcGVuZHMgb24gdGhlIGN1cnJlbnRseSBydW49Cm5pbmcKPiA+ID4gPiA+ID4+IHBsdWdpbgo+ID4gPiA+ID4gPj4gYW5kCj4gPiA+ID4gPiA+PiA+ID4gdGhlCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGluamVjdGlvbiBzaXRlCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IEN1cnJlbnRseSBydW5uaW5nIHBsdWdpbnMgaGF2ZSBhY2Nlc3MgdG8gdGhlIGZvbGxvdz0KaW5nCj4gPiA+ID4gPiA+PiBjb21wb25lbnQKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gaW1wbGVtZW50YXRpb25zOgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIFJlZ3VsYXIgcGx1Z2luIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50cyBpbXBsZW1lbnQ9CmVkCj4gPiBieQo+ID4gPiA+IHRoZQo+ID4gPiA+ID4gPj4gcGx1Z2luLAo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMsIGlmIGFueSAodmlhIHByb2plY3QgY2xhc3MKPiA+IHJlYWxtCj4gPiA+ID4gPiA+PiBmb3JlaWduCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGltcG9ydCkgYW5kIE1hdmVuIENvcmUuCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogRXh0ZW5zaW9uIHBsdWdpbiBoYXMgYWNjZXNzIHRvIGNvbXBvbmVudHMKPiA+IGltcGxlbWVudGVkIGJ5Cj4gPiA+ID4gPiA+PiB0aGUKPiA+ID4gPiA+ID4+ID4gPiBwcm9qZWN0Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGJ1aWxkIGV4dGVuc2lvbnMgYW5kIE1hdmVuIENvcmUuCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogV2l0aG91dCBhIHJ1bm5pbmcgcGx1Z2luIChlLmcuLCBkdXJpbmcgcHJvamVjdAo+ID4gZGVwZW5kZW5jeQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gcmVzb2x1dGlvbiksCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGNvbXBvbmVudHMgaW1wbGVtZW50ZWQgYnkgdGhlIHByb2plY3QgYnVpbGQgZXh0ZW5zaT0Kb25zCj4gPiBhbmQKPiA+ID4gPiA+ID4+IE1hdmVuCj4gPiA+ID4gPiA+PiA+ID4gQ29yZQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBhcmUgYWNjZXNzaWJsZS4KPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gRGlmZmVyZW50IGluamVjdGlvbiBzaXRlcyBoYXZlIGFjY2VzcyB0byB0aGUgZm9sbG93PQppbmcKPiA+ID4gPiA+ID4+IGNvbXBvbmVudAo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBpbnRlcmZhY2VzOgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIE1hdmVuIENvcmUgaGFzIGFjY2VzcyB0byBjb21wb25lbnQgaW50ZXJmYWNlcwo+ID4gZGVmaW5lZCBieQo+ID4gPiA+ID4gPj4gdGhlCj4gPiA+ID4gPiA+PiBjb3JlCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGl0c2VsZiAob2J2aW91c2x5KQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIFByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucyBoYXZlIGFjY2VzcyB0byAqKnB1YmxpYyoqCj4gPiA+ID4gPiA+PiBjb21wb25lbnQKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gaW50ZXJmYWNlcyBkZWZpbmVkIGJ5IE1hdmVuIENvcmUgYW5kIGNvbXBvbmVudAo+ID4gaW50ZXJmYWNlcwo+ID4gPiA+ID4gPj4gZGVmaW5lZCBieQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gdGhlCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGJ1aWxkIGV4dGVuc2lvbiBpdHNlbGYgKHRoZXJlIGlzIG5vIHdheSB0byBhY2Nlc3MKPiA+IGNvbXBvbmVudAo+ID4gPiA+ID4gPj4gPiA+IGludGVyZmFjZXMKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gZGVmaW5lZCBpbiBvdGhlciBleHRlbnNpb25zKQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIFJlZ3VsYXIgcGx1Z2lucyBoYXZlIGFjY2VzcyB0byAqKnB1YmxpYyoqIGNvbXBvbmU9Cm50Cj4gPiA+ID4gPiA+PiBpbnRlcmZhY2VzCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiBkZWZpbmVkCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGJ5IE1hdmVuIENvcmUsIGNvbXBvbmVudCBpbnRlcmZhY2VzICoqZXhwb3J0ZWQqKiBieQo+ID4gYnVpbGQKPiA+ID4gPiA+ID4+IGV4dGVuc2lvbnMKPiA+ID4gPiA+ID4+ID4gPiA+ID4+IGFuZAo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBjb21wb25lbnQgaW50ZXJmYWNlcyBkZWZpbmVkIGluIHRoZSBwbHVnaW4gaXRzZWxmCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IEZvciBpbmplY3Rpb24gdG8gd29yaywgaW5qZWN0aW9uIHNpdGUgaGFzIHRvIGhhdmUKPiA+IGFjY2VzcyB0bwo+ID4gPiA+ID4gPj4gdGhlCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGNvbXBvbmVudCBpbnRlcmZhY2UgYW5kIHRoZSBjb21wb25lbnQgaW1wbGVtZW50YXRpb24KPiA+IG11c3QKPiA+ID4gPiBiZQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gYWNjZXNzaWJsZQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiB0aHJvdWdoIHRoZSBjdXJyZW50IGNvbnRleHQuCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IEZyb20gd2hhdCBJIGNhbiB0ZWxsLCBpbiB5b3VyIGV4YW1wbGUgYWxsIHBsdWdpbnMgaD0KYXZlCj4gPiA+ID4gYWNjZXNzCj4gPiA+ID4gPiA+PiB0byB0aGUKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gcmlnaHQgY29tcG9uZW50cyB3aGVuIHVzaW5nIGN1cnJlbnQgMy41LjItU05BUFNIT1QuPQogVGhlCj4gPiA+ID4gPiA+PiBpbmplY3Rpb24KPiA+ID4gPiA+ID4+ID4gPiA+ID4+IG9yZGVyCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGRvZXMgYXBwZWFyIHRvIGJlIGJhY2t3YXJkcyBmcm9tIHdoYXQgSSBleHBlY3RlZCwKPiA+IGhvd2V2ZXIuCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICMjIFJlc291cmNlcyBsb29rdXAgZnVsbHkgZGVwZW5kcyBvbiBjbGFzc3BhdGgKPiA+IHZpc2liaWxpdHksCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiBzcGVjaWZpY2FsbHkKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gKiBSZWd1bGFyIHBsdWdpbiBjbGFzcyByZWFsbSBoYXMgYWNjZXNzIHRvIHJlc291cmNlcwo+ID4gZnJvbQo+ID4gPiA+IHRoZQo+ID4gPiA+ID4gPj4gcGx1Z2luCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGl0c2VsZiwgZnJvbSAqKmV4cG9ydGVkKiogcGFja2FnZXMgb2YgdGhlIHByb2plY3QgYj0KdWlsZAo+ID4gPiA+ID4gPj4gZXh0ZW5zaW9ucwo+ID4gPiA+ID4gPj4gPiA+IGFuZAo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqKnB1YmxpYyoqIE1hdmVuIENvcmUgcGFja2FnZXMKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gKiBFeHRlbnNpb25zIHBsdWdpbiBjbGFzcyByZWFsbSBoYXMgYWNjZXNzIHRvIHRoZQo+ID4gcmVzb3VyY2VzCj4gPiA+ID4gPiA+PiBmcm9tIHRoZQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBleHRlbnNpb25zIHBsdWdpbiBpdHNlbGYgYW5kIGZyb20gKipwdWJsaWMqKiBNYXZlbiA9CkNvcmUKPiA+ID4gPiA+ID4+IHBhY2thZ2VzCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogUHJvamVjdCBjbGFzcyByZWFsbSBoYXMgYWNjZXNzIHRvIGNsYXNzZXMgYW5kCj4gPiByZXNvdXJjZXMKPiA+ID4gPiA+ID4+ID4gPiAqKmV4cG9ydGVkKioKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gYnkgcHJvamVjdCBidWlsZCBleHRlbnNpb25zIGFuZCAqKnB1YmxpYyoqIE1hdmVuIENvPQpyZQo+ID4gPiA+ID4gPj4gcGFja2FnZXMKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gSSBzZWUgdGhyZWUgcHJvYmxlbXMgaGVyZQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIE1hdmVuIGFkZHMgYnVpbGQgc2luZ2xlLWphciBgPGV4dGVuc2lvbnM+YCBlbGVtZW49CnRzCj4gPiA+ID4gPiA+PiBkaXJlY3RseQo+ID4gPiA+ID4gPj4gdG8KPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gcHJvamVjdCBjbGFzcyByZWFsbSAqKmFuZCoqIGNyZWF0ZXMgc2VwYXJhdGUgZXh0ZW5zPQppb25zCj4gPiA+ID4gY2xhc3MKPiA+ID4gPiA+ID4+IHJlYWxtcwo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gZm9yCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IHRoZW0uIFdoaWNoIHJlc3VsdHMgaW4gZHVwbGljYXRlIGNsYXNzZXMvcmVzb3VyY2VzCj4gPiBsb2FkZWQKPiA+ID4gPiBieQo+ID4gPiA+ID4gPj4gdHdvCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGNsYXNzbG9hZGVycyBhbmQgZXhwbGFpbnMgd2h5IHlvdSBzZWUgZXh0amFyMS9leHRqYT0KcjIKPiA+ID4gPiBvdXRwdXQKPiA+ID4gPiA+ID4+ICh3aGljaAo+ID4gPiA+ID4gPj4gPiA+ID4gPj4geW91Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IHNob3VsZG4ndCBhY2NvcmRpbmcgdG8gdGhlIGV4cGxhbmF0aW9uIGFib3ZlKQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIENsYXNzUmVhbG0gZG9lcyBub3QgYWxsb3cgZm9yZWlnbi1pbXBvcnQgb2YgdGhlIHM9CmFtZQo+ID4gPiA+ID4gPj4gcGFja2FnZQo+ID4gPiA+ID4gPj4gZnJvbQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBtdWx0aXBsZSBjbGFzc2xvYWRlcnMuIFRoaXMgbWFrZXMgaXQgaW1wb3NzaWJsZSB0bwo+ID4gbG9hZCB0aGUKPiA+ID4gPiA+ID4+IHNhbWUKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gcmVzb3VyY2UgZnJvbSBtdWx0aXBsZSBwbHVnaW5zL2V4dGVuc2lvbnMuCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogRXh0ZW5zaW9ucyBwbHVnaW5zIGNhbm5vdCBhY2Nlc3MgdGhlaXIgb3duIHByaXZhdGUKPiA+IChpLmUuCj4gPiA+ID4gPiA+PiBub3QKPiA+ID4gPiA+ID4+ID4gPiA+ID4+IGV4cG9ydGVkKQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiByZXNvdXJjZXMgdmlhIFRDQ0wsIHRoaXMgaXMgY2hhbmdlIGluIGJlaGF2aW91cgo+ID4gaW50cm9kdWNlZAo+ID4gPiA+IGJ5Cj4gPiA+ID4gPiA+PiA+ID4gbW5nLTYyMDkKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gZml4Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IEhvcGUgdGhpcyBoZWxwcwo+ID4gPiA+ID4gPj4gPiA+ID4gPj4KPiA+ID4gPiA+ID4+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+Pgo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLj0Kb3JnCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOgo+ID4gZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPj4gPiA+ID4KPiA+ID4gPiA+ID4+ID4gPiA+Cj4gPiA+ID4gPiA+Pgo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID4gPiA+PiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm89CnJnCj4gPiA+ID4gPiA+PiA+ID4gPgo+ID4gPiA+ID4gPj4gPiA+Cj4gPiA+ID4gPiA+PiA+ID4KPiA+ID4gPiA+ID4+Cj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gPiA+ID4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4+ID4gPgo+ID4gPiA+ID4gPj4gPiA+IC0tCj4gPiA+ID4gPiA+PiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4+Cj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gPiA+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPj4gLS0KPiA+ID4gPiA+ID4gU2VudCBmcm9tIG15IHBob25lCj4gPiA+ID4gPgo+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0tLS0KPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPgo+ID4gPiA+Cj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLS0KPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPgo+ID4gPiA+Cj4gPgo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4KPiA+IC0tCj4gU2VudCBmcm9tIG15IHBob25lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQwOTktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIFNlcCAyNSAxMzowMzo0NCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwOTktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMTA0MDUxMDA1MgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDI1IFNlcCAyMDE3IDEzOjAzOjQ0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjc1NzQgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgU2VwIDIwMTcgMTM6MDM6NDMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY3NDkyIGludm9rZWQgYnkgdWlkIDUwMCk7IDI1IFNlcCAyMDE3IDEzOjAzOjQzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjc0NjcgaW52b2tlZCBieSB1aWQgOTkpOyAyNSBTZXAgMjAxNyAxMzowMzo0MyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMjUgU2VwIDIwMTcgMTM6MDM6NDMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBCOTk3Q0RCRjMyCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAyNSBTZXAgMjAxNyAxMzowMzo0MiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjAyMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC4wMjEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglLQU1fQVNDSUlfRElWSURFUlM9MC44LCBSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWlmZWRvcmVua28uY29tIGhlYWRlci5iPWJrQ1Z0cEpLOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPW1lc3NhZ2luZ2VuZ2luZS5jb20KCWhlYWRlci5iPWRXL2xVcGxLClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCByR3RnVWY2TnBEeFUgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sIDI1IFNlcCAyMDE3IDEzOjAzOjM5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG91dDEtc210cC5tZXNzYWdpbmdlbmdpbmUuY29tIChvdXQxLXNtdHAubWVzc2FnaW5nZW5naW5lLmNvbSBbNjYuMTExLjQuMjVdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNDQ0MDI2MEU0QwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMjUgU2VwIDIwMTcgMTM6MDM6MzkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gY29tcHV0ZTIuaW50ZXJuYWwgKGNvbXB1dGUyLm55aS5pbnRlcm5hbCBbMTAuMjAyLjIuNDJdKQoJYnkgbWFpbG91dC5ueWkuaW50ZXJuYWwgKFBvc3RmaXgpIHdpdGggRVNNVFAgaWQgOTlFMzgyMEM0QQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMjUgU2VwIDIwMTcgMDk6MDM6MzcgLTA0MDAgKEVEVCkKUmVjZWl2ZWQ6IGZyb20gd2ViMiAoWzEwLjIwMi4yLjIxMl0pCiAgYnkgY29tcHV0ZTIuaW50ZXJuYWwgKE1FUHJveHkpOyBNb24sIDI1IFNlcCAyMDE3IDA5OjAzOjM3IC0wNDAwCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7IGQ9aWZlZG9yZW5rby5jb207CgkgaD1jb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOmNvbnRlbnQtdHlwZTpkYXRlOmZyb206aW4tcmVwbHktdG8KCTptZXNzYWdlLWlkOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOnN1YmplY3Q6dG86eC1tZS1zZW5kZXIKCTp4LW1lLXNlbmRlcjp4LXNhc2wtZW5jOyBzPWZtMTsgYmg9MXkrTmxxMHVrMmRDZ1RnSEp6bTU4d0w3aWRXSmQKCVpaOEkvM3ZZdUdiSE5jPTsgYj1ia0NWdHBKS0krRmlpU3ErU3FKeHdlODdMNTVjZVErekNLR3puU3lqekcvNzcKCTM2YXdZbjFqTml0YVQ3MnZPbjRZb2cwRTJwQWUxeERackhXczcvUjk5MmRaWFgycEYzRFkwYWQrM2lwbWpmdEkKCW1McFRGV1ZYSHRsNm00bjZ5Mi8zSTU3YUg0cm9aZHFmaGJQMGFvVlI4YktpQTNIR3R4NHVSSHM0dUNmSFBGNWEKCUdMNTFwNGFlTkJkaVNvVDRNVXZ3NkZtRFpjMlRyZFBqdUFZSU5VRCswcFNzMkhMbUFxSzE4cFArdmZLMnd5V2wKCXJaVzF4SDFkcUJqVGNoSTNxNVRWMkZwVnNVOXNNWjdtUmZDcjdhc1JrQThUVGMzdzhXQzlqc0tmRTZsaEF2TFAKCWcwK2ZVU1pWdCtiV2RtNCtveEtmYUlwUG5wR2UvcUc3RGZTbXVDcE1nPT0KREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsgZD0KCW1lc3NhZ2luZ2VuZ2luZS5jb207IGg9Y29udGVudC10cmFuc2Zlci1lbmNvZGluZzpjb250ZW50LXR5cGUKCTpkYXRlOmZyb206aW4tcmVwbHktdG86bWVzc2FnZS1pZDptaW1lLXZlcnNpb246cmVmZXJlbmNlcwoJOnN1YmplY3Q6dG86eC1tZS1zZW5kZXI6eC1tZS1zZW5kZXI6eC1zYXNsLWVuYzsgcz1mbTE7IGJoPTF5K05scQoJMHVrMmRDZ1RnSEp6bTU4d0w3aWRXSmRaWjhJLzN2WXVHYkhOYz07IGI9ZFcvbFVwbEtmRlRuNzVZVEFRbHQ3UQoJQVluUjZDV2dwcXU0U1dpTWpqR1pqSjQvakNxQUVLYmIrRXJEc3JUR0dmRHc4eWNrbUI4QzFxN1A5MHl2aFhlMAoJL1NmNXFScTVNaUgvZUl5V1hqbHd6ZzRkOTNyTTNQOFFYcGg5NlYrbEtrV2xVY3Y5TC9FMzhJMU1NNjNsdzhLQQoJQytXbkI5WDdZd0hYOXVhdWI5N3JUNUZxSTIyLzZWbDNaZkpnMDdrTkM0VCtEYno1eElHdDhyN1lUV3ZKN2JqRgoJSFNLUVRpakthSVZOcGZnczdja2VZZ0c2N0tBSUFHQmtjbUc0ZlNHTUNxb2ZmVjEzLzBJMXJFU2JBSEVGY2lyeAoJSC9LYlZrZDBEcnRWcDdxQjJDc3FEa04wV1Jhc3Urb0VXT1oxSlA5NHV4Rk4vRmlKRnh5ZzB4ZTNwS0JxdCtPdwoJPT0KWC1NRS1TZW5kZXI6IDx4bXM6cWY3SVdac1p6ZHhVZnBwU0JVZG5ORkNOQmNTSnFWRk0xc0w4SFdMX1BaNU4xWFpqQ3Q1SHJ3PgpSZWNlaXZlZDogYnkgbWFpbHVzZXIubnlpLmludGVybmFsIChQb3N0Zml4LCBmcm9tIHVzZXJpZCA5OSkKCWlkIDVGMzM4NjI2QTI7IE1vbiwgMjUgU2VwIDIwMTcgMDk6MDM6MzcgLTA0MDAgKEVEVCkKTWVzc2FnZS1JZDogPDE1MDYzNDQ2MTcuMzM1MjIxNS4xMTE3Mjc0OTg0LjEzOUQzNjYyQHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KRnJvbTogSWdvciBGZWRvcmVua28gPGlnb3JAaWZlZG9yZW5rby5jb20+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0idXRmLTgiClgtTWFpbGVyOiBNZXNzYWdpbmdFbmdpbmUuY29tIFdlYm1haWwgSW50ZXJmYWNlIC0gYWpheC02NGIwODY5MgpTdWJqZWN0OiBSZTogVW5kZXJzdGFuZGluZyBNTkctNjIwOSAod2FzOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEpCkRhdGU6IE1vbiwgMjUgU2VwIDIwMTcgMDk6MDM6MzcgLTA0MDAKSW4tUmVwbHktVG86IDxDQStuUG5Nek5qQzZUVnhmdTFQdUJwTD02WEpjNWc1dWdvdzJLQTBIQStRaWt5TXBOUGdAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQStuUG5Nd01DcU9fRXRjQlc1XzNyTTcxLXRDcml0cDRVa3N5ZlBtREdBWXI2eHo9b1FAbWFpbC5nbWFpbC5jb20+CiA8RjFGOEIzQ0YtRERBQy00NEJBLUFFQjctNDEyMkM4ODdDNEFCQGhvbnRvbi5vcmc+CiA8Q0ErblBuTXdmX0JmdFl1cy1yblFyTzdvNStkdUdGejBWRWE3TmlvaEcxX19ZVXpyYzV3QG1haWwuZ21haWwuY29tPgogPDE1MDU3OTY5MDguMjUxNjgwOC4xMTEwNjczMTI4LjYzNUFDMzVGQHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KIDxvcC55NnR0bXJlYmtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KIDxDQStuUG5NeEZGRVRRbXF0ZTAtNTB1M0VGU3diZzZ5aXB3NVZTQmRMUHdUelBoZFZrNXdAbWFpbC5nbWFpbC5jb20+CiA8b3AueTZ0djVrZjNrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CiA8MTUwNTg1MzU0MC4zNDQzNDY1LjExMTE2MjA2NDAuMzMxQkU1OEFAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgogPENBK25Qbk16a052QkZfRmN0LUU9N3FmR1FmcEhVQktUMTljV0MzOFNDcXRxNmt2aWU5Z0BtYWlsLmdtYWlsLmNvbT4KIDwxNTA1ODY3Mzc0LjM0OTM4NDIuMTExMTc5NjUyMC41MTI0QUNBNkB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CiA8Q0ErblBuTXhxSGEzeUJSRldyK2lPRXNPbWhrWDhMY2djME00ZEc5c3l1Y0xzUGFMUjVBQG1haWwuZ21haWwuY29tPgogPG9wLnk2dXNldXd5a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgogPDE1MDU5MDc4OTIuMjI3MjQ4LjExMTIyODIzMTIuMDkzREE4QzVAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgogPENBK25Qbk16dStZdktRWDN2VD1BQmtLM3BjR1AtTWh4dHNpb2tUMENza3pBYmpNOXg3QUBtYWlsLmdtYWlsLmNvbT4KIDwxNTA2Mjc1OTMxLjIwODE4ODEuMTExNjU2Nzg3Mi40NTJCMkYwNEB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CiA8Q0ErblBuTXhFY0ZBQ2hrODBoc1p2R2FVQ2g0NUJybXYzMitZdG1yZTU9WmN5Z1RjX193QG1haWwuZ21haWwuY29tPgogPDE1MDYyNzk5NzAuMjA5NDU1MS4xMTE2NjE2MzY4LjA0QkNFNUJGQHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KIDxDQStuUG5Nek5qQzZUVnhmdTFQdUJwTD02WEpjNWc1dWdvdzJLQTBIQStRaWt5TXBOUGdAbWFpbC5nbWFpbC5jb20+CgpTZWUgaW5saW5lCgoKT24gU3VuLCBTZXAgMjQsIDIwMTcsIGF0IDAzOjM3IFBNLCBTdGVwaGVuIENvbm5vbGx5IHdyb3RlOgo+IFJpZ2h0IG5vdyBJIGhhdmUgYSBzdWNjZXNzZnVsIHZvdGUgdG8gcmVsZWFzZSAzLjUuMQo+PTIwCgpbc25pcF0KCj4gTm93IEkgc2VlIDYyMDkgY2hhbmdpbmcgdGhlIGNsYXNzbG9hZGVyIGZvciBwbHVnaW5zIHRoYXQgYXJlIGFsc28gYnVpbGQKPiBleHRlbnNpb25zLi4uIHRoZSBxdWVzdGlvbiBoZXJlIGlzIHR3byBmb2xkOgo+PTIwCj4gMS4gSXMgdGhlIG5ldyBiZWhhdmlvdXIgKmNvcnJlY3QqIG9yIGp1c3QgKmxlc3Mgd3JvbmcqPwo+IDIuIElmID1FMj04MD05Q2xlc3Mgd3Jvbmc9RTI9ODA9OUQsIGlzIGl0IGxlc3Mgd3Jvbmcgb24gdGhlIHNhbWUgc2lkZSBvZiA9CmNvcnJlY3QgYXMgdGhlCj4gb2xkCj4gYmVoYXZpb3VyLCBvciBpcyBpdCBsZXNzIHdyb25nIG9uIHRoZSBvdGhlciBzaWRlIG9mIGNvcnJlY3Q/Cgo2MjA5IGRvZXMgbm90IGNoYW5nZSBwbHVnaW4gY2xhc3Nsb2FkaW5nIHBlciBzZSwgYnV0IGl0IGRvZXMgY2hhbmdlIFRDQ0wKdXNlZCB3aGVuIHJ1bm5pbmcgbW9qb3MgZnJvbSBleHRlbnNpb25zPTNEdHJ1ZSBwbHVnaW5zLgoKSSBiZWxpZXZlIHRoZSBuZXcgKmJlaGF2aW91ciogaXMgY29ycmVjdCwgdGhhdCBpcywgY29tcG9uZW50cyBmcm9tCmV4dGVuc2lvbnM9M0R0cnVlIHBsdWdpbnMgc2hvdWxkIGJlIHVzZWQgY29uc2lzdGVudGx5IHdpdGggb3Igd2l0aG91dApvdGhlciBleHRlbnNpb25zIHByZXNlbnQuIFRoaW5rIG9mIGEgY3VzdG9tIHdhZ29uIG9yIHBhY2thZ2luZyB0eXBlLAppdCdkIGJlIHZlcnkgc3VycHJpc2luZyBpZiB0aGVzZSBjb21wb25lbnQgd2VyZSBpZ25vcmVkIHdoZW4gcnVubmluZwptb2pvcyBmcm9tIG90aGVyIGV4dGVuc2lvbnM9M0R0cnVlIHBsdWdpbnMuCgpJIGFsc28gYmVsaWV2ZSBjaGFuZ2luZyBUQ0NMIGlzIHRoZSBvbmx5IHdheSB0byBpbXBsZW1lbnQgdGhlIGNvcnJlY3QKYmVoYXZpb3VyIGdpdmVuIGhvdyBTaXN1IGxvY2F0ZXMgY29tcG9uZW50cywgYnV0IEkgYW0gb3BlbiB0byBvdGhlcgppZGVhcy4gSSBhbHNvIHRoaW5rIHRoYXQgZXh0ZW5zaW9ucz0zRHRydWUgcGx1Z2lucyBhcmUgYSByZWxhdGl2ZQptaW5vcml0eSwgd2Ugb25seSBoYWQgc2luZ2xlIHByb2JsZW0gZXhwb3NlZCBieSB0aGUgVENDTCBjaGFuZ2UgKHJvb3QKY2F1c2UgYmVpbmcgYSBidWcgaW4gYXNzZW1ibHktcGx1Z2luKSwgc28gSSB3b25kZXIgaWYgd2UgYXJlCm90aGVydGhpbmtpbmcgdGhpcy4KCmh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyMDkKCj4gVGhlIG90aGVyIG9uZSBpcyA2Mjc1IGNoYW5naW5nIHRoZSBUQ0NMLiBXZSBoYXZlIHNpdGUgZG9jdW1lbnRhdGlvbgo+ICpzdGF0aW5nKiB0aGF0IFRDQ0wgd2lsbCBiZSB0aGUgcGx1Z2luIGNsYXNzbG9hZGVyLCBhbmQgd2UgYXJlIGNoYW5naW5nCj4gbm93Cj4gc28gdGhhdCBUQ0NMIGlzIG5vdC4KCgo2Mjc1IGRvZXMgbm90IGNoYW5nZSBUQ0NMLCBpdCBjaGFuZ2VzIGNsYXNzbG9hZGVyIHBhcmVudCBoaWVyYXJjaHkuClN0aWxsIGEgYmlnIGNoYW5nZSwgZXNwZWNpYWxseSBmb3IgYXBwbGljYXRpb25zIHRoYXQgZW1iZWQgTWF2ZW4sIGJ1dCBJCnRoaW5rIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gZmFsbHMgaW50byAibGVzcyB3cm9uZyIgY2F0ZWdvcnkgdG9vIGJ1dCBpdAppcyBsaWtlbHkgdGhlIGJlc3Qgd2UgY2FuIGRvIHRvIHN1cHBvcnQgU2VydmljZUxvYWRlckZhY3RvcnkgYW5kIGphdmE5Cih3aXRob3V0IGNvbXBsZXRlbHkgcmVkZXNpZ25pbmcgYW5kIHJlaW1wbGVtZW50aW5nIE1hdmVuIGNsYXNzbG9hZGluZywKYXQgbGVhc3QpLgoKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjI3NQoKPiAzLiBXaGljaCBkbyB3ZSBuZWVkIHRvIGZpeDogc2l0ZSBvciBjb2RlPwo+IDQuIEFyZSB3ZSBzdXJlIHdlIGNhbiBndWFyYW50ZWUgdGhhdCB0aGUgcGx1Z2luIGNsYXNzbG9hZGVyIGlzIGFsd2F5cyB0aGUKPiBjbGFzc2xvYWRlciB0aGF0IGxvYWRlZCB0aGUgcGx1Z2luIGNsYXNzOiB3aGF0IGlmIEkgaGF2ZSBwbHVnaW4gQQo+IGRlcGVuZGVuZHMgb24gUGx1Z2luIEIgKG5vdCB3aGF0IGk9RTI9ODA9OTlkIHJlY29tbWVuZCwgYnV0IHVzZXJzIGRvIGNyYXp5Cj4gdGhpbmdzKQo+IHNvIHdlIGhhdmUgdGhlIG1vam9zIGluIFBsdWdpbiBCIGNvbWluZyBmcm9tIGEgamFyIGRlcGVuZGVuY3kgb2YgUGx1Z2luCj4gQS4uLiBzbyBjb3VsZCB3ZSB0aGVuIHdlIGhhdmUgbGF5ZXJlZCBjbGFzc2xvYWRlcnMgaW4gd2hpY2ggY2FzZSB3aGVuIEkKPiBpbnZva2UgQTptb2pvLWZyb20tYiB3aWxsIGl0IGJlIGxvYWRlZCBieSBBPUUyPTgwPTk5cyBjbGFzc2xvYWRlciBvciBhIHBhPQpyZW50IG9mCj4gQQo+IHRoYXQgaG9sZCB0aGUgQiBqYXI/CgpJIGRvbid0IGJlbGlldmUgdGhpcyBiZWhhdmlvdXIgY2hhbmdlZCBpbiAzLjUuMS4gV2UgZG9uJ3QgZ3VhcmFudGVlCm1vam9zIGFyZSBhbHdheXMgbG9hZGVkIGZyb20gcGx1Z2luIGNsYXNzbG9hZGVyLCBidXQgd2UgZG8gZ3VhcmFudGVlCm1vam9zIGltcGxlbWVudGF0aW9uIGlzIGxvb2tlZCB1cCBpbiBwbHVnaW4gY2xhc3Nsb2FkZXIgZmlyc3QgKHNlZQpEZWZhdWx0TWF2ZW5QbHVnaW5NYW5hZ2VyLmdldENvbmZpZ3VyZWRNb2pvKS4gV2UgY291bGQgdmFsaWRhdGUgbW9qbwpjbGFzc2xvYWRlciA9M0Q9M0QgcGx1Z2luIGNsYXNzbG9hZGVyIGFuZCBmYWlsIHRoZSBidWlsZCBpZiB0aGF0J3Mgbm90IHRoZQpjYXNlLCBidXQgSSBkb24ndCBzZWUgdGhlIGFkdmFudGFnZXMgc3VjaCBjaGVjayB3b3VsZCBwcm92aWRlLgoKPiBPciB3aGF0IGlmIEkgd2VyZSB0byB1c2UgYW4gZXh0ZW5zaW9uIHRvIHByb3ZpZGUgdGhlIG1vam8gYnV0IGFkdmVydGlzaW5nCj4gdGhlIGV4dGVuc2lvbj1FMj04MD05OXMgbW9qbyBjbGFzcyB2aWEgYSBwbHVnaW4/CgpUaGlzIGNhbiBvbmx5IGhhcHBlbiB0aGUgbW9qbyBpcyBkZWNsYXJlZCBpbiBwbHVnaW4KTUVUQS1JTkYvbWF2ZW4vcGx1Z2luLnhtbCwgd2hpY2ggbWVhbnMgdGhlIHBsdWdpbiBhdXRob3JzIG1hZGUKZGVsaWJlcmF0ZSBlZmZvcnQgdG8gZW5hYmxlIHN1Y2ggYXJyYW5nZW1lbnQgYW5kIEkgY3VycmVudGx5IGRvbid0IHNlZQp3aHkgd2Ugc2hvdWxkIGF0dGVtcHQgdG8gYmxvY2sgaXQuCgo+PTIwCj4gVGhlc2UgYXJlIGFsbCAqcmVhbGx5KiBzdHVwaWQgdGhpbmdzIGluIG15IG9waW5pb24sIGJ1dCB3ZSBoYXZlbj1FMj04MD05OT0KdCBzYWlkCj4gPUUyPTgwPTlDdGhvdSBzaGFsdCBub3QgZXhwb3NlIG1vam9zIGZyb20gb3RoZXIgamFyIGZpbGVzPUUyPTgwPTlEIHNvIHNvbT0KZW9uZSAqY291bGQqCj4gaGF2ZQo+IGRvbmUgaXQuLi4gaG93IGFyZSB0aGV5IHRvIGdldCB0aGUgcGx1Z2luIGNsYXNzbG9hZGVyIG5vdyB0aGF0IDYyNzUgaXMKPiBsYW5kaW5nPyAoSSB0aGluayBhIGNvbXBvbmVudCBvZiB0eXBlIGNsYXNzbG9hZGVyIHdpdGggYSByb2xlLWhpbnQgb2YKPiA9RTI9ODA9OUNwbHVnaW49RTI9ODA9OUQgd291bGQgbWFrZSBzZW5zZSB0byBtZSkKPj0yMAo+IEFsdGVybmF0aXZlbHksIHdlIGRvY3VtZW50ID1FMj04MD05Q3Rob3Ugc2hhbHQgbm90PUUyPTgwPTlEIGFuZCBiZSBkb25lIHc9Cml0aCBpdC4uLgo+PTIwCj4gQnV0IHRoZXNlIGFyZSB0aGUga2luZHMgb2YgdGhpbmdzIHdlIG5lZWQgdG8gcmVzb2x2ZSBiZWZvcmUgSSBmZWVsIEkgY2FuCj4gY2xvc2UgdGhlIDMuNS4xIHZvdGUgb25lIHdheSBvciBhbm90aGVyLgo+PTIwCj49MjAKCgotLT0yMApSZWdhcmRzLApJZ29yCgoKPiBPbiBTdW4gMjQgU2VwIDIwMTcgYXQgMjA6MDYsIElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY29tPiB3cm90ZToKPj0yMAo+ID4gTGV0cyBkZWNpZGUgdGhlIGFnZW5kYSBmaXJzdCwgdGhlbiB3aG8geW91IG5lZWQgdG8gYXR0ZW5kIChhc3N1bWluZyB5b3UKPiA+IGFyZSBkcml2aW5nIHRoaXMgZGlzY3Vzc2lvbi9kZWNpc2lvbiksIHRoZW4gcGljayB0aGUgdGltZSB0aGF0IHdvcmtzLgo+ID4KPiA+IEZyb20gbXkgc2lkZSwgSSBzdGlsbCBkb24ndCB1bmRlcnN0YW5kIHRoZSBwcm9ibGVtcyB3ZSBhcmUgdHJ5aW5nIHRvCj4gPiBzb2x2ZS4gSWYgdGhpcyBpcyB0aGUgbGFja2luZyBkb2N1bWVudGF0aW9uIGFuZCBnZW5lcmFsICJ1bmNvbWZvcnQiIHRvCj4gPiBtZXNzIHdpdGggY2xhc3Nsb2FkaW5nIGluIGJ1ZyBmaXggcmVsZWFzZSwgdGhlbiBtYXliZSBkbyB3aGF0IEFuZGVycwo+ID4gc3VnZ2VzdHMgKEkgdGhpbmspLCBidW1wIHRoZSB2ZXJzaW9uIHRvIDMuNi4wLCBkb2N1bWVudCB0aGUgYmVoYXZpb3VyIHdlCj4gPiBoYXZlIG9uIG1hc3RlciBhbmQgbW92ZSBvbi4KPiA+Cj4gPiAtLQo+ID4gUmVnYXJkcywKPiA+IElnb3IKPiA+Cj4gPiBPbiBTdW4sIFNlcCAyNCwgMjAxNywgYXQgMDI6MjggUE0sIFN0ZXBoZW4gQ29ubm9sbHkgd3JvdGU6Cj4gPiA+IEkgd29uZGVyIHNob3VsZCB3ZSBkbyBhIGhhbmdvdXQgdG8gZGVjaWRlIHdoYXQgeW91IGRvPwo+ID4gPgo+ID4gPiBXaGF0IHRpbWVzIG9uIE1vbmRheSB3b3JrIGJlc3Q/Cj4gPiA+Cj4gPiA+IEkgY2FuIG1heWJlIGRvIDg6MzAtOTozMHBtIElyaXNoIHRpbWUKPiA+ID4KPiA+ID4KPiA+IGh0dHBzOi8vd3d3LnRpbWVhbmRkYXRlLmNvbS93b3JsZGNsb2NrL21lZXRpbmdkZXRhaWxzLmh0bWw/eWVhcj0zRDIwMTcmPQptb250aD0zRDkmZGF5PTNEMjUmaG91cj0zRDE5Jm1pbj0zRDMwJnNlYz0zRDAmcDE9M0Q3OCZwMj0zRDM3JnAzPTNEMTc5Cj4gPiA+Cj4gPiA+IEJ1dCB3ZT1FMj04MD05OWQgbmVlZCB0byBkZWNpZGUgd2hvIHdlIG5lZWQgYW5kIGFuIGFjdHVhbCBhZ2VuZGEuCj4gPiA+Cj4gPiA+IElmIE1vbmRheSBpcyB0b28gc29vbiBJIGNhbiBzZWUgaWYgSSBoYXZlIGEgd2luZG93IGxhdGVyIHRoaXMgd2Vlawo+ID4gPgo+ID4gPiBPbiBTdW4gMjQgU2VwIDIwMTcgYXQgMTg6NTgsIElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY29tPiB3cm89CnRlOgo+ID4gPgo+ID4gPiA+IFNlZSBteSBhbnN3ZXJzL2NvbW1lbnRzIGlubGluZQo+ID4gPiA+Cj4gPiA+ID4KPiA+ID4gPiBPbiBTdW4sIFNlcCAyNCwgMjAxNywgYXQgMTI6MDcgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgd3JvdGU6Cj4gPiA+ID4gPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL21pbmkvZ3VpZGUtbWF2ZW4tY2xhc3Nsb2FkaW5nLmh0bWwKPiA+IHNheXM6Cj4gPiA+ID4gPgo+ID4gPiA+ID4gPiBXaGVuIGEgYnVpbGQgcGx1Z2luIGlzIGV4ZWN1dGVkLCB0aGUgdGhyZWFkJ3MgY29udGV4dCBjbGFzc2xvYWQ9CmVyCj4gPiBpcwo+ID4gPiA+IHNldAo+ID4gPiA+ID4gdG8gdGhlIHBsdWdpbiBjbGFzc2xvYWRlci4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBTbyB3ZSdsbCBuZWVkIHRvIGZpeCBzb21ldGhpbmcgc29tZXdoZXJlLi4uCj4gPiA+ID4gPgo+ID4gPiA+ID4KPiA+ID4gPgo+ID4gaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL21hdmVuL2NvbnRlbnQvcmU9CmZlcmVuY2UvbWF2ZW4tY2xhc3Nsb2FkaW5nLmh0bWwKPiA+ID4gPiA+IGlzIHVuYWNjZXNzaWJsZSBmcm9tIHRoZSB3ZWJzaXRlIGR1ZSB0byBhIHJld3JpdGUgcnVsZS4uLgo+ID4gPiA+ID4KPiA+ID4gPiA+IFRoaW5ncyB0aGF0IHNlZW0gdG8gYmUgbWlzc2luZzoKPiA+ID4gPiA+Cj4gPiA+ID4gPiAqIFdoYXQgaXMgdGhlIGRlc2lyZWQgY2xhc3Nsb2FkaW5nIGZvciBhIHBsdWdpbiB0aGF0IGlzIG1hcmtlZCBhcz0KIGFuCj4gPiA+ID4gPiBleHRlbnNpb24/IENhbiBhIHBsdWdpbiBoYXZlIGEgTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCB0byBhbD0KbG93Cj4gPiA+ID4gPiBleHBvcnRpbmcgY2xhc3NlcyBhbmQgYXJ0aWZhY3RzIHdoZW4gdXNlZCBhcyBhbiBleHRlbnNpb24/IEhvdwo+ID4gc2hvdWxkIHRoZQo+ID4gPiA+ID4gY2xhc3Nsb2FkaW5nIGxvb2sgZm9yIHN1Y2ggYSBzdHJhbmdlIGJlYXN0Lgo+ID4gPiA+Cj4gPiA+ID4gVG8gbWUsIHRoZSBrZXkgcmVxdWlyZW1lbnQgaXMgdGhhdCBAU2luZ2xldG9uIGNvbXBvbmVudHMgYW5kIGNsYXNzCj4gPiA+ID4gc3RhdGljIG1lbWJlcnMgYXJlIHNpbmdsZXRvbnMgd2hlbiBpbmplY3RlZCBpbiBNYXZlbiBjb3JlIG9yIGluIEBNbz0Kam9zLgo+ID4gPiA+IFRoaXMgaW1wbGllcyB0aGF0IHRoZXJlIHNob3VsZCBiZSBzaW5nbGUgY2xhc3Nsb2FkZXIgcmVwcmVzZW50aW5nIGFuCj4gPiA+ID4gZXh0ZW5zaW9ucyBwbHVnaW5zIChNTkctNTc0MikuCj4gPiA+ID4KPiA+ID4gPiBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sIGRlY2xhcmVzIHdoYXQgcGFja2FnZXMgb2YgdGhlIGV4dGVuc2lvbgo+ID4gPiA+IHBsdWdpbiBhcmUgdmlzaWJsZSB0byBvdGhlciAobm9uIGV4dGVuc2lvbikgcGx1Z2lucy4KPiA+ID4gPiBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sIGRvZXMgbm90IGFmZmVjdCBjbGFzc2xvYWRpbmcgb2YgdGhlCj4gPiA+ID4gZXh0ZW5zaW9uIHBsdWdpbiBub3IgaXQgYWZmZWN0cyB0aGUgInNoYXBlIiBvZiBvdGhlciBjbGFzc2xvYWRlcnMuCj4gPiA+ID4KPiA+ID4gPiA+ICogSG93IGRvZXMgb25lIGFjY2VzcyB0aGUgcGx1Z2luIGNsYXNzbG9hZGVyIGlmIHdlIHdhbnQgVENDTCB0byBiZQo+ID4gb3RoZXIKPiA+ID4gPiA+IHRoYW4gdGhhdCwgaXMgaXQgYSBEZXBlbmRlbmN5IEluamVjdGlvbiBvciBzb21ldGhpbmcgZWxzZT8KPiA+ID4gPgo+ID4gPiA+IHRoaXMuZ2V0Q2xhc3MoKS5nZXRDbGFzc0xvYWRlcigpIGlzIHRoZSBtb3N0IGRpcmVjdCB3YXkgdG8gYWNjZXNzCj4gPiBwbHVnaW4KPiA+ID4gPiBjbGFzc2xvYWRlci4gV2h5IGRvIHlvdSB0aGluayB3ZSBuZWVkIGFueXRoaW5nIG1vcmUgZWxhYm9yYXRlPwo+ID4gPiA+Cj4gPiA+ID4KPiA+ID4gPiA+ICogV2hhdCBkaWZmZXJlbnRpYXRlcyBhIENvcmUgZXh0ZW5zaW9uIGZyb20gYSBCdWlsZCBleHRlbnNpb24gKGlzPQogaXQKPiA+IHRoYXQKPiA+ID4gPiA+IGEKPiA+ID4gPiA+IGJ1aWxkIGV4dGVuc2lvbiBsYWNrcyBhIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgYW5kIHdhcyBvbmx5Cj4gPiA+ID4gPiBkZWNsYXJlZAo+ID4gPiA+ID4gaW4gdGhlIHBvbS54bWwsIHdoaWxlIGEgY29yZSBleHRlbnNpb24gZWl0aGVyIGhhcyBhCj4gPiA+ID4gPiBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sIC0gaWYgZGVjbGFyZWQgaW4gdGhlIHBvbSAtIG9yIGlzIGFuCj4gPiA+ID4gPiBleHRlbnNpb24KPiA+ID4gPiA+IGRlY2xhcmVkIGluIC5tdm4vZXh0ZW5zaW9ucy54bWwpCj4gPiA+ID4KPiA+ID4gPiBDb3JlIGV4dGVuc2lvbnMgYXJlIGxvYWRlZCAqYmVmb3JlKiBidWlsZCBzdGFydHMsIHNvIHRoZXkgY2FuCj4gPiBjb250cmlidXRlCj4gPiA+ID4gQWJzdHJhY3RNYXZlbkxpZmVjeWNsZVBhcnRpY2lwYW50I2FmdGVyU2Vzc2lvblN0YXJ0LCBmb3IgZXhhbXBsZS4gVD0KaGV5Cj4gPiA+ID4gY2FuIGFsc28gZXhwb3J0IHBhY2thZ2VzIHZpc2libGUgdG8gYWxsIGJ1aWxkIHBsdWdpbnMsIGluY2x1ZGluZwo+ID4gPiA+IGV4dGVuc2lvbnM9M0R0cnVlLiBPbiB0aGUgZmxpcCBzaWRlLCBlYWNoIGNvcmUgZXh0ZW5zaW9uIGlzIGVmZmVjdGk9CnZlbHkKPiA+ID4gPiBzaW5nbGV0b24sIHlvdSBjYW4ndCBoYXZlIHR3byBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgdGhlIHNhbWUgQ29yZQo+ID4gPiA+IGV4dGVuc2lvbi4gQ29yZSBleHRlbnNpb25zIGFsc28gaGF2ZSBkaXJlY3QgYWNjZXNzIHRvIE1hdmVuIGNvcmUKPiA+IGNsYXNzZXMKPiA+ID4gPiBhbmQgY2FuIGRvIG1vcmUgaW50ZXJlc3RpbmcgdGhpbmdzIHRoZXJlIChmb3IgYmV0dGVyIG9yIHdvcnNlKS4KPiA+ID4gPgo+ID4gPiA+IEJ1aWxkIGV4dGVuc2lvbnMgYXJlIHBhcnQgb2YgdGhlIHByb2plY3QgYnVpbGQgYW5kIGFzIHN1Y2ggYXJlIGxpbWk9CnRlZAo+ID4gPiA+IHdoYXQgY29tcG9uZW50cyB0aGV5IGNhbiBjb250cmlidXRlIHRvIHRoZSBDb3JlIGFuZCB3aGF0IGNvcmUgY2xhc3M9CmVzCj4gPiA+ID4gdGhleSBoYXZlIGFjY2VzcyB0by4KPiA+ID4gPgo+ID4gPiA+IEkgdHJpZWQgdG8gY2FwdHVyZSB0aGlzIGluIHRoZSBkaWFncmFtIEkgZHJldyBmb3IKPiA+ID4gPiBodHRwOi8vdGFrYXJpLmlvL2Jvb2svOTEtbWF2ZW4tY2xhc3Nsb2FkaW5nLmh0bWwuCj4gPiA+ID4KPiA+ID4gPiA+IEF0IHRoaXMgcG9pbnQgaW4gdGltZSBJIHRoaW5rIHdlIGFyZSBuZWFyaW5nIHRoZSBwb2ludCB3aGVyZSBJIG1heQo+ID4gaGF2ZQo+ID4gPiA+ID4gdG8KPiA+ID4gPiA+IGRlY2xhcmUgMy41LjEgYWJhbmRvbmVkIGFzIEkgdGhpbmsgdGhlIGNsYXNzbG9hZGluZyBpbiB0aGF0IGlzIGEKPiA+IHN5bXB0b20KPiA+ID4gPiA+IG9mCj4gPiA+ID4gPiB0b28gbWFueSBjb29rcyBhbGwgY2hhbmdpbmcgdGhpbmdzIGluIGRpZmZlcmVudCBkaXJlY3Rpb25zLiBXZSBuZT0KZWQgYQo+ID4gPiA+ID4gY29uc2lzdGVudCB2aXNpb24gb2Ygd2hlcmUgd2Ugd2FudCB0aGluZ3MgdG8gZ28gYW5kIC0gd2hpbGUgd2UgbmU9CmVkCj4gPiBub3QKPiA+ID4gPiA+IGdldAo+ID4gPiA+ID4gdGhlcmUgaW4gb25lIGdvIC0gdGhlIHBhdGggcHJlc2VudGVkIGZvciBvdGhlcnMgdG8gc2VlLgo+ID4gPiA+Cj4gPiA+ID4gVGhlcmUgd2VyZSB0d28gY2xhc3Nsb2FkaW5nIGNoYW5nZXMgaW4gMy41LjEsIG5hbWVseSBleHRlbnNpb25zPTNEdD0KcnVlCj4gPiA+ID4gcGx1Z2lucyBub3cgaGF2ZSBwcm9qZWN0IHJlYWxtIGFzIFRDQ0wgYW5kIGFsbCByZWFsbXMgbm93IHVzZQo+ID4gPiA+IGFwcGxpY2F0aW9uIGNsYXNzbG9hZGVyIGFzIHRoZSBwYXJlbnQuIEFwYXJ0IGZyb20gbGFja2luZwo+ID4gZG9jdW1lbnRhdGlvbiwKPiA+ID4gPiB3aGF0IHByYWN0aWNhbCBwcm9ibGVtcyBoYXZlIGJlZW4gY2F1c2VkIGJ5IHRoZXNlIHR3byBjaGFuZ2VzPwo+ID4gPiA+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gVGhpbmdzIEkgdGhpbmsgd2Ugc2hvdWxkIGNvbnNpZGVyOgo+ID4gPiA+ID4KPiA+ID4gPiA+IDEuIERvIHdlIHdhbnQgdG8gZm9ybWFsbHkgZGVwcmVjYXRlIEJ1aWxkIEV4dGVuc2lvbnMgYW5kIHRoZQo+ID4gPiA+ID4gL3Byb2plY3QvYnVpbGQvZXh0ZW5zaW9ucyBlbGVtZW50IChzdGFydCBsb2dnaW5nIHdhcm5pbmdzLCBldGMpPwo+ID4gPiA+ID4gMi4gRG8gd2Ugd2FudCB0byBmb3JtYWxseSBkZXByZWNhdGUgcGx1Z2lucyBhcyBleHRlbnNpb25zIGFuZCBzdGE9CnJ0Cj4gPiA+ID4gPiBsb2dnaW5nCj4gPiA+ID4gPiB3YXJuaW5ncyBmb3IKPiA+ID4gPiA+Cj4gPiA+ID4KPiA+IC9wcm9qZWN0L2J1aWxkLyhwbHVnaW5NYW5hZ2VtZW50fC4pL3BsdWdpbnMvcGx1Z2luL2V4dGVuc2lvbnNbdGV4dCgpPTNEPQo9M0R0cnVlXQo+ID4gPiA+Cj4gPiA+ID4gSSdkIGtlZXAgdGhlbSBib3RoLCBhbmQgbWF5YmUgZml4L3JlbW92ZSBtYXZlbjItY29tcGF0IGNvZGVwYXRoLiBJZj0KIEkKPiA+ID4gPiBoYWQgdG8gY2hvb3NlIGJldHdlZW4gdGhlIHR3bywgaG93ZXZlciwgSSdkIGNob29zZSA8cGx1Z2luPiB3aXRoCj4gPiA+ID4gZXh0ZW5zaW9ucz0zRHRydWUuIFRoaW5rIG9mIGEgY3VzdG9tIHBhY2thZ2luZyB0eXBlIHdpdGggbW9qb3MgdGhlID0KdXNlcgo+ID4gPiA+IHdhbnRzIHRvIGNvbmZpZ3VyZSBpbiBwb20ueG1sLCBpdCdkIGJlIG1vcmUgdGVkaW91cyB0byBjb25maWd1cmUgaWY9CiBJCj4gPiA+ID4gaGFkIHRvIGFkZCBidWlsZC9leHRlbnNpb24gYW5kIGJ1aWxkL3BsdWdpbi4KPiA+ID4gPgo+ID4gPiA+ID4gMy4gV2hhdCBpcyB0aGUgZGlmZmVyZW5jZSBpbiBjbGFzc2xvYWRpbmcgZm9yIGEKPiA+IC9wcm9qZWN0L2J1aWxkL2V4dGVuc2lvbnMKPiA+ID4gPiA+IHdoaWNoIGhhcyBhIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgYW5kIG9uZSB0aGF0IGRvZXNuJ3Q/Cj4gPiA+ID4KPiA+ID4gPiBJIHRoaW5rIGV4dGVuc2lvbnMgd2l0aCBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sIHNob3VsZCBub3QgZ28KPiA+ID4gPiB0aHJvdWdoIG1hdmVuMi1jb21wYXQgY29kZXBhdGguIEluIG90aGVyIHdvcmRzLCB3ZSBuZWVkIHRvIGNoYW5nZSB0PQpoZQo+ID4gPiA+IGN1cnJlbnQgYmVoYXZpb3VyLgo+ID4gPiA+Cj4gPiA+ID4gRXh0ZW5zaW9ucyB3aXRob3V0IE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwuLi4gSSBhbSBub3Qgc3VyZS4KPiA+ID4gPiBQcm9iYWJseSBzYWZlciB0byBrZWVwIHRoZSBjdXJyZW50IG1hdmVuMi1jb21wYXQgYmVoYXZpb3VyLgo+ID4gPiA+Cj4gPiA+ID4gPiBJJ20ga2VlcGluZyB0aGUgMy41LjEgcmVsZWFzZSBpbiBzdGFnaW5nIHVudGlsIHdlIGdldCBhIGNsZWFyIHZpcz0KaW9uCj4gPiBmb3IKPiA+ID4gPiA+IGhvdyB3ZSB3YW50IHRvIGhhdmUgY2xhc3Nsb2FkaW5nIHNvIHRoYXQgSSBjYW4gYXNzZXNzIHdoZXRoZXIgdGhlCj4gPiAzLjUuMQo+ID4gPiA+ID4gYWN0dWFsaXR5IGlzIG9ubHkgbW92aW5nIG5lYXJlciB0byB0aGUgdmlzaW9uIChvayB0byByZWxlYXNlKSBvciA9Cmhhcwo+ID4gPiA+ID4gbW92ZWQKPiA+ID4gPiA+IG5lYXJlciBpbiBzb21lIHdheXMgYnV0IGZ1cnRoZXIgaW4gb3RoZXJzIChub3Qgb2sgdG8gcmVsZWFzZSkKPiA+ID4gPiA+Cj4gPiA+ID4KPiA+ID4gPgo+ID4gPiA+IC0tCj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiBJZ29yCj4gPiA+ID4KPiA+ID4gPgo+ID4gPiA+Cj4gPiA+ID4gPiBPbiAyMCBTZXB0ZW1iZXIgMjAxNyBhdCAxMjo0NCwgSWdvciBGZWRvcmVua28gPGlnb3JAaWZlZG9yZW5rby5jbz0KbT4KPiA+ID4gPiA+IHdyb3RlOgo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gUmVhbC13b3JsZCBzY20gb3Igd2Fnb24gPGV4dGVuc2lvbnM+IHdvbid0IHRyaWdnZXIgbWF2ZW4yLWNvbXBhdAo+ID4gY29kZQo+ID4gPiA+ID4gPiBwYXRoIFsxXS4gVG8gYXZvaWQgdGhhdCBvYnNjdXJlIGNvZGUgcGF0aCB3ZSBjYW4gZWl0aGVyIG1ha2UgdGhlCj4gPiB0ZXN0Cj4gPiA+ID4gPiA+IG1vcmUgZWxhYm9yYXRlIChpLmUuIGFkZCBkZXBlbmRlbmNpZXMgdG8gZXh0amFyMS9leHRqYXIyKSBvciB3ZQo+ID4gY2FuIHVzZQo+ID4gPiA+ID4gPiBleHRlbnNpb25zIDxwbHVnaW4+LiBFaXRoZXIgd2F5IEkgZG9uJ3QgdGhpbmsgd2Ugc2hvdWxkIHNwZW5kIHQ9CmltZQo+ID4gb24KPiA+ID4gPiA+ID4gdGhlIGNvZGUgcGF0aCB1bmxpa2VseSB0byBiZSB1c2VkIGluIHJlYWwgbGlmZS4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gWzFdCj4gPiA+ID4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vYmxvYi9tYXZlbi0zLjUuMS9tYXZlbi0KPiA+ID4gPiA+ID4KPiA+ID4gPgo+ID4gY29yZS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcHJvamVjdC9EZWZhdWx0UHJvamVjdEJ1aWxkaW5nSGVscGU9CnIuCj4gPiA+ID4gPiA+IGphdmEjTDIxMC1MMjE5Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IC0tCj4gPiA+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4gPiA+IElnb3IKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gT24gV2VkLCBTZXAgMjAsIDIwMTcsIGF0IDAzOjI5IEFNLCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPiA+ID4gPiA+ID4gPiBPbiBXZWQsIDIwIFNlcCAyMDE3IDA5OjEyOjQ3ICswMjAwLCBTdGVwaGVuIENvbm5vbGx5Cj4gPiA+ID4gPiA+ID4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBPbiBXZWQgMjAgU2VwIDIwMTcgYXQgMDE6MjksIElnb3IgRmVkb3JlbmtvIDwKPiA+IGlnb3JAaWZlZG9yZW5rby5jb20+Cj4gPiA+ID4gPiA+IHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+PiBJbiB0aGF0IGNhc2UsIGNhbiBJIHN1Z2dlc3QgY291cGxlIG9mIGNoYW5nZXMgdG8gdGhlIHRlc3QKPiA+IHByb2plY3QKPiA+ID4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPiA+ID4+ICogSSB0aGlua3MgaXQgbWFrZXMgbW9yZSBzZW5zZSB0byBjb25maWd1cmUgZXh0amFyMSBhbmQKPiA+IGV4dGphcjIgYXMKPiA+ID4gPiA+ID4gPiA+PiBleHRlbnNpb25zIDxwbHVnaW4+IGVsZW1lbnRzIGluIHByb2JsZU4gcG9tLnhtbCBmaWxlcy4gRmlyPQpzdCwKPiA+ID4gPiB0aGVyZSBpcwo+ID4gPiA+ID4gPiA+ID4+IG5vIG1lYW5pbmdmdWwgb3JkZXIgYmV0d2VlbiA8ZXh0ZW5zaW9ucz4gYW5kIDxwbHVnaW5zPgo+ID4gZWxlbWVudHMuCj4gPiA+ID4gTW9yZQo+ID4gPiA+ID4gPiA+ID4+IGltcG9ydGFudGx5LCB0aG91Z2gsIHNpbXBsZSA8ZXh0ZW5zaW9ucz4gYXJlIHRyZWF0ZWQgaW4KPiA+IHNwZWNpYWwKPiA+ID4gPiA+ID4gPiA+PiBtYXZlbjItY29tcGF0IG1vZGUgYW5kIGFyZSBub3QgcmVwcmVzZW50YXRpdmUgb2YgbGlrZWx5Cj4gPiByZWFsLXdvcmxkCj4gPiA+ID4gPiA+ID4gPj4gZXh0ZW5zaW9ucy4KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBOb3Qgc3VyZSBJIGFncmVlIHdpdGggdGhpcy4gSSB0aGluayB0aGVyZSBhcmUgamFycyB3b3J0aCBzaGFyPQppbmcKPiA+ID4gPiBhY3Jvc3MKPiA+ID4gPiA+ID4gPiBtdWx0aXBsZSBwbHVnaW5zLCBidXQgd2hlcmUgbWFraW5nIHRoZSBwbHVnaW4gYW4gZXh0ZW5zaW9uIGlzPQogYQo+ID4gYml0Cj4gPiA+ID4gPiA+ID4gd2VpcmQuCj4gPiA+ID4gPiA+ID4gSSdtIHRoaW5raW5nIG9mIHNjbSBhbmQgd2Fnb24gaW4gdGhpcyBjYXNlLgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gVGhhdCBzb3VuZHMgbGlrZSB3ZSBuZWVkIGRvY3VtZW50YXRpb24gdXBkYXRlZCB0aGVuLiBOb25lIG9mCj4gPiB0aGF0Cj4gPiA+ID4gaXMKPiA+ID4gPiA+ID4gPiA+IG9idmlvdXMgdG8gbWUuCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPiA+ID4+ICogSSB0aGluayB3ZSBzaG91bGQgaW50cm9kdWNlIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWw9CiB0bwo+ID4gdGhlCj4gPiA+ID4gdGVzdAo+ID4gPiA+ID4gPiA+ID4+IGV4dGVuc2lvbnMuIFRoaXMgbWV0YWRhdGEgd2hhdCBpbnRyb2R1Y2VkIHRvIGNvbmZpZ3VyZQo+ID4gY2xhc3NwYXRoCj4gPiA+ID4gPiA+ID4gPj4gdmlzaWJpbGl0eSwgc28gbGV0cyB1c2UgaXQuCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IEFnYWluLCBub3Qgb2J2aW91cyB0byBtZSwgaWYgdGhhdCBmaWxlIGFsbG93cyBjb250cm9sIG9mCj4gPiBjbGFzc3BhdGgKPiA+ID4gPiA+ID4gPiA+IHZpc2liaWxpdHkgdGhlbiBpdCBtYXkgYmUgdGhhdCB0aGUgb25seSBpc3N1ZSAqd2l0aCogMy41LjEgPQppcwo+ID4gdGhlCj4gPiA+ID4gbGFjawo+ID4gPiA+ID4gPiBvZgo+ID4gPiA+ID4gPiA+ID4gZG9jdW1lbnRhdGlvbi4uLiBub3cgcHJldmlvdXMgdmVyc2lvbnMgd291bGQgaGF2ZSBiZWVuIGFkZGk9Cm5nCj4gPiA+ID4gYnJlYWtpbmcKPiA+ID4gPiA+ID4gPiA+IGNoYW5nZXMgZnJvbSBteSBQb1YgYnV0IHRoYXQgaXMgdGhlIHBhc3QgYW5kIHNob3VsZCBub3QgYWZmPQplY3QKPiA+IHRoZQo+ID4gPiA+ID4gPiAzLjUuMQo+ID4gPiA+ID4gPiA+ID4gcmVsZWFzZS4KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBQUnMgZm9yIHRoZSBwcm9iZSBwcm9qZWN0IHdlbGNvbWUuIEkgYW0gaGFwcHkgdG8gdHJ5IGFuZCB3cj0KaXRlCj4gPiBkb2NzCj4gPiA+ID4gPiA+IG9uY2UKPiA+ID4gPiA+ID4gPiA+IEkKPiA+ID4gPiA+ID4gPiA+IGhhdmUgYW4gdW5kZXJzdGFuZGluZyBvZiB3aGF0IHRoZSBleHBlY3RlZCBiZWhhdmlvdXJzIGFyZQo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4gPiA+PiAtLQo+ID4gPiA+ID4gPiA+ID4+IFJlZ2FyZHMsCj4gPiA+ID4gPiA+ID4gPj4gSWdvcgo+ID4gPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+ID4gPj4gT24gVHVlLCBTZXAgMTksIDIwMTcsIGF0IDA1OjEyIFBNLCBTdGVwaGVuIENvbm5vbGx5IHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4+ID4gWWVzLCB0aGUgZXhwZWN0YXRpb25zIGFyZSBrZXkuIERlcGVuZGluZyBvbiB3aGF0IHRoZXkgYXJlCj4gPiB3ZSBtYXkKPiA+ID4gPiA+ID4gPiA+PiBlaXRoZXIKPiA+ID4gPiA+ID4gPiA+PiA+IGRyb3AgMy41LjEgb3IgZ28gYWhlYWQgYXMgaXQgZGVwZW5kcyBvbiB3aGV0aGVyIHRoaXMgaXMgPQptb3JlCj4gPiA+ID4gY29ycmVjdAo+ID4gPiA+ID4gPiA+ID4+IHRoYW4KPiA+ID4gPiA+ID4gPiA+PiA+IDMuNS4wIG9yIHN3YXBwaW5nIG9uZSBmaXggZm9yIGEgYnVnCj4gPiA+ID4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPiA+ID4+ID4gT24gVHVlIDE5IFNlcCAyMDE3IGF0IDIxOjM5LCBJZ29yIEZlZG9yZW5rbyA8Cj4gPiA+ID4gaWdvckBpZmVkb3JlbmtvLmNvbT4KPiA+ID4gPiA+ID4gPiA+PiB3cm90ZToKPiA+ID4gPiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+ID4gPj4gPiA+IEp1c3QgdG8gY29uZmlybSBJIHVuZGVyc3RhbmQgd2hhdCB3ZSBhcmUgdHJ5aW5nIHRvCj4gPiBlc3RhYmxpc2gKPiA+ID4gPiBoZXJlLgo+ID4gPiA+ID4gPiA+ID4+IFdlCj4gPiA+ID4gPiA+ID4gPj4gPiA+IHdhbnQgdG8gZGVjaWRlIHRoZSBleHBlY3RlZC9kZXNpcmVkIGNvbXBvbmVudCBpbmplY3Rpb24KPiA+ID4gPiBiZWhhdmlvdXIKPiA+ID4gPiA+ID4gPiA+PiBhbmQKPiA+ID4gPiA+ID4gPiA+PiA+ID4gY2xhc3NwYXRoIHZpc2liaWxpdHkgaW4gdGhlIGFic2VuY2Ugb2YgcGFja2FnZSBhbmQKPiA+IGFydGlmYWN0Cj4gPiA+ID4gZXhwb3J0Cj4gPiA+ID4gPiA+ID4gPj4gPiA+IGNvbmZpZ3VyYXRpb24gKGkuZS4gTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCBmaWxlKS4KPiA+IERpZCBJCj4gPiA+ID4gZ2V0Cj4gPiA+ID4gPiA+ID4gPj4gdGhpcwo+ID4gPiA+ID4gPiA+ID4+ID4gPiByaWdodD8KPiA+ID4gPiA+ID4gPiA+PiA+ID4KPiA+ID4gPiA+ID4gPiA+PiA+ID4gLS0KPiA+ID4gPiA+ID4gPiA+PiA+ID4gUmVnYXJkcywKPiA+ID4gPiA+ID4gPiA+PiA+ID4gSWdvcgo+ID4gPiA+ID4gPiA+ID4+ID4gPgo+ID4gPiA+ID4gPiA+ID4+ID4gPiBPbiBUdWUsIFNlcCAxOSwgMjAxNywgYXQgMDM6NTIgUE0sIFJvYmVydCBTY2hvbHRlIHdyb3Q9CmU6Cj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gTGV0J3MgZG8gaXQgbGlrZSB0aGlzOgo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPj4gPiA+Cj4gPiA+ID4gPiA+ID4gPj4KPiA+IGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rvd25sb2FkL2F0dGFjaG1lbnRzLzIzMjk4NDEvCj4gPiA+ID4gPiA+IGNsYXNzcmVhbG1zLnBkZj9hcGk9M0R2Mgo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gUm9iZXJ0Cj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiBPbiBUdWUsIDE5IFNlcCAyMDE3IDIxOjA4OjM5ICswMjAwLCBTdGVwaGVuIENvbm5vbGx5Cj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPiBJIHRoaW5rIHlvdSB3aWxsIG5lZWQgYSBsaW5rIHRvIHRoZSBQREYgYXMKPiA+IGF0dGFjaG1lbnRzIGFyZQo+ID4gPiA+ID4gPiA+ID4+IHN0cmlwcGVkCj4gPiA+ID4gPiA+ID4gPj4gPiA+IGZyb20KPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+IHRoZSBNTAo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+IE9uIFR1ZSAxOSBTZXAgMjAxNyBhdCAxOTo1NywgUm9iZXJ0IFNjaG9sdGUKPiA+ID4gPiA+ID4gPiA+PiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Cj4gPiA+ID4gPiA+ID4gPj4gPiA+IHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiBBdHRhY2hlZCBhIHNpbmdsZSBwYWdlIG92ZXJ2aWV3Lgo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gUGVyIGJsb2NrIHlvdSdsbCBzZWUgaW4gdGhlIHVwcGVyIGxlZnQgY29ybmVyIHRoZQo+ID4gPiA+IGV4ZWN1dGVkCj4gPiA+ID4gPiA+ID4gPj4gcGx1Z2luCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gVGhlIGxlZnQgY29sdW1uIGNvbnRhaW5zIHRoZSBleHRlbnNpb25zIGFuZCBwbHVnaT0KbiBpbgo+ID4gPiA+IG9yZGVyYXMKPiA+ID4gPiA+ID4gPiA+PiA+ID4gc3BlY2lmaWVkCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gaW4KPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiB0aGUgcG9tLnhtbAo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+IEluIGV2ZXJ5IGNsYXNzbG9hZGVyY29sdW1uIHlvdSdsbCBzZWUgbnVtYmVycyB3aGk9CmNoCj4gPiA+ID4gcmVwcmVzZW50Cj4gPiA+ID4gPiA+ID4gPj4gdGhlCj4gPiA+ID4gPiA+ID4gPj4gPiA+IG9yZGVyLgo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gSSBob3BlIEkgZGlkbid0IG1ha2UgYW55IG1pc3Rha2VzLgo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+IFRvbW9ycm93IEkgaGF2ZSBlbm91Z2ggdGltZSB0byBzZWUgaWYgSSB1bmRlcnN0YW5kCj4gPiB3aGF0J3MKPiA+ID4gPiA+ID4gPiA+PiBoYXBwZW5pbmcKPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiBoZXJlLgo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gSSB3aWxsIGNvbWUgYmFjayB3aXRoIG15IGNvbmNsdXNpb25zLgo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gUm9iZXJ0Cj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4KPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiBPbiBUdWUsIDE5IFNlcCAyMDE3IDA2OjU1OjA4ICswMjAwLCBJZ29yIEZlZG9yZW5rPQpvIDwKPiA+ID4gPiA+ID4gPiA+PiA+ID4gaWdvckBpZmVkb3JlbmtvLmNvbT4KPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiB3cm90ZToKPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+Pgo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gVEw7RFIgeW91ciB0ZXN0IHByb2plY3QgZXhwb3NlZCB0d28gZXhpc3RpbmcgYnU9CmdzLAo+ID4gb25lCj4gPiA+ID4gPiA+ID4gPj4gY2hhbmdlIGluCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBiZWhhdmlvdXIgYW5kIG9uZSBxdWlyayBJIGNhbid0IGV4cGxhaW4KPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIEJ1aWxkIGA8ZXh0ZW5zaW9ucz5gIGFyZSBsb2FkZWQgYnkgdHdvCj4gPiBjbGFzc2xvYWRlcnMsCj4gPiA+ID4gPiA+IHdoaWNoCj4gPiA+ID4gPiA+ID4gPj4gaXMKPiA+ID4gPiA+ID4gPiA+PiBhCj4gPiA+ID4gPiA+ID4gPj4gPiA+IGJ1Zwo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+IGluCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBEZWZhdWx0UHJvamVjdEJ1aWxkaW5nSGVscGVyI2NyZWF0ZVByb2plY3RSZWFsbT0KIGFuZAo+ID4gPiA+ID4gPiBleHBsYWlucwo+ID4gPiA+ID4gPiA+ID4+IHdoeSB5b3UKPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiBzZWUKPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGV4dGphcjEvZXh0amFyMiBpbiB0aGUgb3V0cHV0Cj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIENsYXNzUmVhbG0gZG9lcyBub3QgYWxsb3cgc2FtZSBmb3JlaWduLWltcG9ydAo+ID4gZnJvbQo+ID4gPiA+ID4gPiBtdWx0aXBsZQo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gY2xhc3Nsb2FkZXJzLCB3aGljaCBpcyBhIGJ1ZyBhbmQgZXhwbGFpbnMgd2h5IGl0Cj4gPiBpcyBub3QKPiA+ID4gPiA+ID4gPiA+PiBwb3NzaWJsZSB0bwo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+IGxvYWQKPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IHNhbWUgcmVzb3VyY2UgZnJvbSBtdWx0aXBsZSBwbHVnaW5zL2V4dGVuc2lvbnMKPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogVENDTCBkb2VzIG5vdCBoYXZlIGFjY2VzcyB0byBwcml2YXRlIChpLmUuIG5vdAo+ID4gPiA+IGV4cG9ydGVkKQo+ID4gPiA+ID4gPiA+ID4+IHJlc291cmNlcwo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+IG9mCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiB0aGlzIGV4dGVuc2lvbnMgcGx1Z2luLCB3aGljaCBpcyBhIGNoYW5nZSBvZgo+ID4gYmVoYXZpb3VyCj4gPiA+ID4gPiA+ID4gPj4gaW50cm9kdWNlZCBieQo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gbW5nLTYyMDkgZml4Cj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIEFsc28sIGNvbXBvbmVudCBpbmplY3Rpb24gb3JkZXIgYXBwZWFycyB0byBiZQo+ID4gPiA+IGJhY2t3YXJkcywKPiA+ID4gPiA+ID4gPiA+PiBidXQKPiA+ID4gPiA+ID4gPiA+PiBtYXliZQo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gU3R1YXJ0IGNhbiBleHBsYWluIHdoeS4KPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gQmVsb3cgaXMgbW9yZSBkZXRhaWxlZCBleHBsYW5hdGlvbiBvZiBleHBlY3RlZCA9CmFuZAo+ID4gPiA+IG9ic2VydmVkCj4gPiA+ID4gPiA+ID4gPj4gPiA+IGJlaGF2aW91cgo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAjIyBDb21wb25lbnQgaW5qZWN0aW9uIGRlcGVuZHMgb24gdGhlIGN1cnJlbnRseQo+ID4gcnVubmluZwo+ID4gPiA+ID4gPiA+ID4+IHBsdWdpbgo+ID4gPiA+ID4gPiA+ID4+IGFuZAo+ID4gPiA+ID4gPiA+ID4+ID4gPiB0aGUKPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGluamVjdGlvbiBzaXRlCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gQ3VycmVudGx5IHJ1bm5pbmcgcGx1Z2lucyBoYXZlIGFjY2VzcyB0byB0aGUKPiA+IGZvbGxvd2luZwo+ID4gPiA+ID4gPiA+ID4+IGNvbXBvbmVudAo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gaW1wbGVtZW50YXRpb25zOgo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogUmVndWxhciBwbHVnaW4gaGFzIGFjY2VzcyB0byBjb21wb25lbnRzCj4gPiBpbXBsZW1lbnRlZAo+ID4gPiA+IGJ5Cj4gPiA+ID4gPiA+IHRoZQo+ID4gPiA+ID4gPiA+ID4+IHBsdWdpbiwKPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IHByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucywgaWYgYW55ICh2aWEgcHJvamVjdCBjPQpsYXNzCj4gPiA+ID4gcmVhbG0KPiA+ID4gPiA+ID4gPiA+PiBmb3JlaWduCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBpbXBvcnQpIGFuZCBNYXZlbiBDb3JlLgo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gKiBFeHRlbnNpb24gcGx1Z2luIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50cwo+ID4gPiA+IGltcGxlbWVudGVkIGJ5Cj4gPiA+ID4gPiA+ID4gPj4gdGhlCj4gPiA+ID4gPiA+ID4gPj4gPiA+IHByb2plY3QKPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGJ1aWxkIGV4dGVuc2lvbnMgYW5kIE1hdmVuIENvcmUuCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIFdpdGhvdXQgYSBydW5uaW5nIHBsdWdpbiAoZS5nLiwgZHVyaW5nIHByb2plY3QKPiA+ID4gPiBkZXBlbmRlbmN5Cj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gcmVzb2x1dGlvbiksCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBjb21wb25lbnRzIGltcGxlbWVudGVkIGJ5IHRoZSBwcm9qZWN0IGJ1aWxkCj4gPiBleHRlbnNpb25zCj4gPiA+ID4gYW5kCj4gPiA+ID4gPiA+ID4gPj4gTWF2ZW4KPiA+ID4gPiA+ID4gPiA+PiA+ID4gQ29yZQo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gYXJlIGFjY2Vzc2libGUuCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gRGlmZmVyZW50IGluamVjdGlvbiBzaXRlcyBoYXZlIGFjY2VzcyB0byB0aGUKPiA+IGZvbGxvd2luZwo+ID4gPiA+ID4gPiA+ID4+IGNvbXBvbmVudAo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gaW50ZXJmYWNlczoKPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIE1hdmVuIENvcmUgaGFzIGFjY2VzcyB0byBjb21wb25lbnQgaW50ZXJmYWNlcwo+ID4gPiA+IGRlZmluZWQgYnkKPiA+ID4gPiA+ID4gPiA+PiB0aGUKPiA+ID4gPiA+ID4gPiA+PiBjb3JlCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBpdHNlbGYgKG9idmlvdXNseSkKPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogUHJvamVjdCBidWlsZCBleHRlbnNpb25zIGhhdmUgYWNjZXNzIHRvCj4gPiAqKnB1YmxpYyoqCj4gPiA+ID4gPiA+ID4gPj4gY29tcG9uZW50Cj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBpbnRlcmZhY2VzIGRlZmluZWQgYnkgTWF2ZW4gQ29yZSBhbmQgY29tcG9uZW50Cj4gPiA+ID4gaW50ZXJmYWNlcwo+ID4gPiA+ID4gPiA+ID4+IGRlZmluZWQgYnkKPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiB0aGUKPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGJ1aWxkIGV4dGVuc2lvbiBpdHNlbGYgKHRoZXJlIGlzIG5vIHdheSB0byBhY2NlPQpzcwo+ID4gPiA+IGNvbXBvbmVudAo+ID4gPiA+ID4gPiA+ID4+ID4gPiBpbnRlcmZhY2VzCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBkZWZpbmVkIGluIG90aGVyIGV4dGVuc2lvbnMpCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIFJlZ3VsYXIgcGx1Z2lucyBoYXZlIGFjY2VzcyB0byAqKnB1YmxpYyoqCj4gPiBjb21wb25lbnQKPiA+ID4gPiA+ID4gPiA+PiBpbnRlcmZhY2VzCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gZGVmaW5lZAo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gYnkgTWF2ZW4gQ29yZSwgY29tcG9uZW50IGludGVyZmFjZXMgKipleHBvcnRlZCo9CiogYnkKPiA+ID4gPiBidWlsZAo+ID4gPiA+ID4gPiA+ID4+IGV4dGVuc2lvbnMKPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiBhbmQKPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGNvbXBvbmVudCBpbnRlcmZhY2VzIGRlZmluZWQgaW4gdGhlIHBsdWdpbiBpdHNlPQpsZgo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IEZvciBpbmplY3Rpb24gdG8gd29yaywgaW5qZWN0aW9uIHNpdGUgaGFzIHRvIGhhPQp2ZQo+ID4gPiA+IGFjY2VzcyB0bwo+ID4gPiA+ID4gPiA+ID4+IHRoZQo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gY29tcG9uZW50IGludGVyZmFjZSBhbmQgdGhlIGNvbXBvbmVudAo+ID4gaW1wbGVtZW50YXRpb24KPiA+ID4gPiBtdXN0Cj4gPiA+ID4gPiA+IGJlCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gYWNjZXNzaWJsZQo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gdGhyb3VnaCB0aGUgY3VycmVudCBjb250ZXh0Lgo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IEZyb20gd2hhdCBJIGNhbiB0ZWxsLCBpbiB5b3VyIGV4YW1wbGUgYWxsIHBsdWdpPQpucwo+ID4gaGF2ZQo+ID4gPiA+ID4gPiBhY2Nlc3MKPiA+ID4gPiA+ID4gPiA+PiB0byB0aGUKPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IHJpZ2h0IGNvbXBvbmVudHMgd2hlbiB1c2luZyBjdXJyZW50Cj4gPiAzLjUuMi1TTkFQU0hPVC4gVGhlCj4gPiA+ID4gPiA+ID4gPj4gaW5qZWN0aW9uCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gb3JkZXIKPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGRvZXMgYXBwZWFyIHRvIGJlIGJhY2t3YXJkcyBmcm9tIHdoYXQgSSBleHBlY3RlPQpkLAo+ID4gPiA+IGhvd2V2ZXIuCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICMjIFJlc291cmNlcyBsb29rdXAgZnVsbHkgZGVwZW5kcyBvbiBjbGFzc3BhdGgKPiA+ID4gPiB2aXNpYmlsaXR5LAo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+IHNwZWNpZmljYWxseQo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogUmVndWxhciBwbHVnaW4gY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0bwo+ID4gcmVzb3VyY2VzCj4gPiA+ID4gZnJvbQo+ID4gPiA+ID4gPiB0aGUKPiA+ID4gPiA+ID4gPiA+PiBwbHVnaW4KPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGl0c2VsZiwgZnJvbSAqKmV4cG9ydGVkKiogcGFja2FnZXMgb2YgdGhlIHByb2plPQpjdAo+ID4gYnVpbGQKPiA+ID4gPiA+ID4gPiA+PiBleHRlbnNpb25zCj4gPiA+ID4gPiA+ID4gPj4gPiA+IGFuZAo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gKipwdWJsaWMqKiBNYXZlbiBDb3JlIHBhY2thZ2VzCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIEV4dGVuc2lvbnMgcGx1Z2luIGNsYXNzIHJlYWxtIGhhcyBhY2Nlc3MgdG8gdD0KaGUKPiA+ID4gPiByZXNvdXJjZXMKPiA+ID4gPiA+ID4gPiA+PiBmcm9tIHRoZQo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gZXh0ZW5zaW9ucyBwbHVnaW4gaXRzZWxmIGFuZCBmcm9tICoqcHVibGljKiogTWE9CnZlbgo+ID4gQ29yZQo+ID4gPiA+ID4gPiA+ID4+IHBhY2thZ2VzCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIFByb2plY3QgY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byBjbGFzc2VzIGFuZAo+ID4gPiA+IHJlc291cmNlcwo+ID4gPiA+ID4gPiA+ID4+ID4gPiAqKmV4cG9ydGVkKioKPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGJ5IHByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucyBhbmQgKipwdWJsaWMqKiBNYXZlbgo+ID4gQ29yZQo+ID4gPiA+ID4gPiA+ID4+IHBhY2thZ2VzCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gSSBzZWUgdGhyZWUgcHJvYmxlbXMgaGVyZQo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogTWF2ZW4gYWRkcyBidWlsZCBzaW5nbGUtamFyIGA8ZXh0ZW5zaW9ucz5gCj4gPiBlbGVtZW50cwo+ID4gPiA+ID4gPiA+ID4+IGRpcmVjdGx5Cj4gPiA+ID4gPiA+ID4gPj4gdG8KPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IHByb2plY3QgY2xhc3MgcmVhbG0gKiphbmQqKiBjcmVhdGVzIHNlcGFyYXRlCj4gPiBleHRlbnNpb25zCj4gPiA+ID4gPiA+IGNsYXNzCj4gPiA+ID4gPiA+ID4gPj4gcmVhbG1zCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gZm9yCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiB0aGVtLiBXaGljaCByZXN1bHRzIGluIGR1cGxpY2F0ZSBjbGFzc2VzL3Jlc291cj0KY2VzCj4gPiA+ID4gbG9hZGVkCj4gPiA+ID4gPiA+IGJ5Cj4gPiA+ID4gPiA+ID4gPj4gdHdvCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBjbGFzc2xvYWRlcnMgYW5kIGV4cGxhaW5zIHdoeSB5b3Ugc2VlCj4gPiBleHRqYXIxL2V4dGphcjIKPiA+ID4gPiA+ID4gb3V0cHV0Cj4gPiA+ID4gPiA+ID4gPj4gKHdoaWNoCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4geW91Cj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBzaG91bGRuJ3QgYWNjb3JkaW5nIHRvIHRoZSBleHBsYW5hdGlvbiBhYm92ZSkKPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogQ2xhc3NSZWFsbSBkb2VzIG5vdCBhbGxvdyBmb3JlaWduLWltcG9ydCBvZiB0PQpoZQo+ID4gc2FtZQo+ID4gPiA+ID4gPiA+ID4+IHBhY2thZ2UKPiA+ID4gPiA+ID4gPiA+PiBmcm9tCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBtdWx0aXBsZSBjbGFzc2xvYWRlcnMuIFRoaXMgbWFrZXMgaXQgaW1wb3NzaWJsZT0KIHRvCj4gPiA+ID4gbG9hZCB0aGUKPiA+ID4gPiA+ID4gPiA+PiBzYW1lCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiByZXNvdXJjZSBmcm9tIG11bHRpcGxlIHBsdWdpbnMvZXh0ZW5zaW9ucy4KPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogRXh0ZW5zaW9ucyBwbHVnaW5zIGNhbm5vdCBhY2Nlc3MgdGhlaXIgb3duCj4gPiBwcml2YXRlCj4gPiA+ID4gKGkuZS4KPiA+ID4gPiA+ID4gPiA+PiBub3QKPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiBleHBvcnRlZCkKPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IHJlc291cmNlcyB2aWEgVENDTCwgdGhpcyBpcyBjaGFuZ2UgaW4gYmVoYXZpb3VyCj4gPiA+ID4gaW50cm9kdWNlZAo+ID4gPiA+ID4gPiBieQo+ID4gPiA+ID4gPiA+ID4+ID4gPiBtbmctNjIwOQo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gZml4Cj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gSG9wZSB0aGlzIGhlbHBzCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4KPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+Pgo+ID4gPiA+ID4gPiA+ID4+Cj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLS0KPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOgo+ID4gZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOgo+ID4gPiA+IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4gPiA+PiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPj4KPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotLQo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6Cj4gPiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPiA+ID4+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6Cj4gPiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiA+ID4gPj4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+PiA+ID4KPiA+ID4gPiA+ID4gPiA+PiA+ID4KPiA+ID4gPiA+ID4gPiA+Pgo+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0tCj4gPiA+ID4gPiA+ID4gPj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUubz0KcmcKPiA+ID4gPiA+ID4gPiA+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDoKPiA+IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4gPiA+PiA+ID4KPiA+ID4gPiA+ID4gPiA+PiA+ID4gLS0KPiA+ID4gPiA+ID4gPiA+PiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4gPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+ID4gPj4KPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotLQo+ID4gPiA+ID4gPiA+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiA+ID4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+ID4gPj4gLS0KPiA+ID4gPiA+ID4gPiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+Cj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPgo+ID4gPiA+Cj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLS0KPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPgo+ID4gPiA+IC0tCj4gPiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Cj4gPiAtLQo+IFNlbnQgZnJvbSBteSBwaG9uZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MzE1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBPY3QgMjIgMjI6MTU6NDQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzE1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDg3ODIxMTAzNTUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAyMiBPY3QgMjAxNyAyMjoxNTo0NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE1Mjc5IGludm9rZWQgYnkgdWlkIDUwMCk7IDIyIE9jdCAyMDE3IDIyOjE1OjQ0IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNTE5MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMiBPY3QgMjAxNyAyMjoxNTo0NCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE1MTgxIGludm9rZWQgYnkgdWlkIDk5KTsgMjIgT2N0IDIwMTcgMjI6MTU6NDMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDIyIE9jdCAyMDE3IDIyOjE1OjQzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMzBGMEUxODA3MDUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDIyIE9jdCAyMDE3IDIyOjE1OjQzICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGNsLWtwUllxTExYRyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgMjIgT2N0IDIwMTcgMjI6MTU6NDAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDA3LnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI5XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDQ1MThFNUYzMDYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDIyIE9jdCAyMDE3IDIyOjE1OjQwICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDE0IHdpdGggTUUKCWlkIFFtRmExdzAwUDIwVWZkeTAzbUZheFU7IE1vbiwgMjMgT2N0IDIwMTcgMDA6MTU6MzQgKzAyMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogTW9uLCAyMyBPY3QgMjAxNyAwMDoxNTozNCArMDIwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBtaWdyYXRpbmcgc29tZSBjb2RlIHRvIEdpdApEYXRlOiBNb24sIDIzIE9jdCAyMDE3IDAwOjE1OjM0ICswMjAwCk1lc3NhZ2UtSUQ6IDwxNTA4NzMyOTgublVDbGdSbjlxZEBnaWdhPgpJbi1SZXBseS1UbzogPENBUG95QnFTS01zZithRlVrek9RYVk9bXBTKzBZUGRvc0dBWnp4dj1ybnJpbkxCblo5Z0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPDMwMDY0NzEuR3JTRmpTSmpHWEBnaWdhPiA8Q0FGTkNVLTlHTmR2K2l1TndlVENBdmRHRzg1alU1amRKK1huWE1wWnVuRT11d3F5d2p3QG1haWwuZ21haWwuY29tPiA8Q0FQb3lCcVNLTXNmK2FGVWt6T1FhWT1tcFMrMFlQZG9zR0Faenh2PXJucmluTEJuWjlnQG1haWwuZ21haWwuY29tPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCkknbSBoYXBweSB0byBkbyB3aGF0IEknbSBhYmxlIHRvIGRvCgpmb3IgdGhlIG5leHQgb25lcywgSSBmZWFyIEkgZG9uJ3Qga25vdyBob3cgdG8gcHJlcGFyZSB0YXJnZXQgZ2l0IHJlcG9zOiBJJ2w9Cmw9MjAKbmVlZCBoZWxwCgpSZWdhcmRzLAoKSGVydj1FOQoKTGUgZGltYW5jaGUgMjIgb2N0b2JyZSAyMDE3LCAyMzoyNjo0NCBDRVNUIE9saXZpZXIgTGFteSBhID1FOWNyaXQgOgo+IEdyZWF0IQo+IFRoYW5rcyB0byB0YWtlIGNhcmUgb2YgdGhpcyEKPj0yMAo+IE9uIE1vbiwgMjMgT2N0IDIwMTcgYXQgNzowMCBhbSwgQXJuYXVkIEg9RTlyaXRpZXIgPGFoZXJpdGllckBnbWFpbC5jb20+IHc9CnJvdGU6Cj4gPiBBd2Vzb21lICEKPiA+PTIwCj4gPiBPbiBTdW4sIE9jdCAyMiwgMjAxNyBhdCAxMjowMCBQTSwgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgo+ID49MjAKPiA+IHdyb3RlOgo+ID4gPiBHcmVhdCBqb2IsIHRoYW5rIHlvdSBhbGwhCj4gPiA+PTIwCj4gPiA+IFJvYmVydAo+ID4gPj0yMAo+ID4gPj0yMAo+ID4gPiBPbiBTdW4sIDIyIE9jdCAyMDE3IDExOjQ1OjAyICswMjAwLCBIZXJ2PUU5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnI9CmVlLmZyCj4gPiA+PTIwCj4gPiA+IHdyb3RlOgo+ID4gPj0yMAo+ID4gPiBtaWdyYXRpb24gZG9uZTogb25seSByZW1haW5pbmcgdGFzayBpcyB0byByZW5hbWUgInRydW5rIiBIRUFEIGJyYW5jaAo+ID4gPj0yMAo+ID4gPj4gaW5oZXJpdGVkCj4gPiA+PiBmcm9tIHN2biBoaXN0b3J5IHRvICJtYXN0ZXIiIChhbmQgZXZlbnR1YWxseSBhZGQgYSBNT1ZFRF9UT19HSVQgZmlsZT0KIGluCj4gPiA+PiBvcmlnaW4KPiA+ID4+IHN2bikKPiA+ID4+PTIwCj4gPiA+PiBUaGUgQXBhY2hlIGdpdCBob3N0aW5nIHByb3ZpZGVkIGlzIEdpdEJveCwgdW5saWtlIHByZXZpb3VzIGNvbXBvbmVudAo+ID49MjAKPiA+IHRoYXQKPiA+PTIwCj4gPiA+PiB1c2UKPiA+ID4+IEdpdC1XaXA6IHdpdGggR2l0Qm94LCB0aGUgY29udGVudCBpcyBtb2RpZmlhYmxlIGJvdGggYXQgQVNGIGdpdCByZXBvCj4gPiA+PiBhbmQKPiA+ID4+IEdpdEh1Ygo+ID4gPj4gbWlycm9yCj4gPiA+PiBZb3UnbGwgbmVlZCBzb21lIGNvbmZpZyBvbiB5b3VyIHNpZGUgaWYgeW91IHdhbnQgdG8gYmUgYWJsZSB0byBwdXNoCj4gPiA+PiBkaXJlY3RseSB0bwo+ID4gPj4gR2l0SHViOiBzZWUgaHR0cHM6Ly9naXRib3guYXBhY2hlLm9yZy9zZXR1cC8KPiA+ID4+PTIwCj4gPiA+PiBUaGFua3MgdG8gaW5mcmEgQ2hyaXMgTGFtYmVydHVzIGZvciBkb2luZyB0aGUgam9iIGZvciB1cwo+ID4gPj49MjAKPiA+ID4+IFJlZ2FyZHMsCj4gPiA+Pj0yMAo+ID4gPj4gSGVydj1FOQo+ID4gPj49MjAKPiA+ID4+IExlIG1hcmRpIDEwIG9jdG9icmUgMjAxNywgMTg6NDI6MjYgQ0VTVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiA+ID4+PiBqaXJhIGlzc3VlIGNyZWF0ZWQ6Cj4gPiA+Pj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9JTkZSQS0xNTI1Mwo+ID4gPj4+PTIwCj4gPiA+Pj4gUmVnYXJkcywKPiA+ID4+Pj0yMAo+ID4gPj4+IEhlcnY9RTkKPiA+ID4+Pj0yMAo+ID4gPj4+IExlIHNhbWVkaSA3IG9jdG9icmUgMjAxNywgMTI6MzI6MDAgQ0VTVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiA+ID4+PiA+IEkgd3JvdGUgYSBsaXR0bGUgc2hlbGwgc2NyaXB0IHRvIGNoZWNrIGRpZmZlcmVuY2VzIGJldHdlZW4gdGFncyBpbgo+ID49MjAKPiA+IHN2bgo+ID49MjAKPiA+ID4+PiBhbmQKPiA+ID4+Pj0yMAo+ID4gPj4+ID4gZ2l0IGNoZWNrb3V0Cj4gPiA+Pj4gPiB0aGUgb25seSBkaWZmZXJlbmNlcyBJIGZvdW5kIGZvciB0aGUgNiBnaXQgcmVwb3MgYXJlOgo+ID4gPj4+ID4gMS4gZW1wdHkgZGlycyAod2hpY2ggZXhpc3QgaW4gc3ZuIGJ1dCBhcmUgcHJ1bmVkIGluIGdpdCkKPiA+ID4+PiA+IDIuIG9uZSBzdHJhZ2UgY2FzZSBpbiBlbmZvcmNlci0xLjIgd2hlcmUgYSBmZXcgZmlsZXMgc2VlbSB0byBoYXZlCj4gPiA+Pj49MjAKPiA+ID4+PiBuZXdsaW5lcwo+ID4gPj4+PTIwCj4gPiA+Pj4gPiBpc3N1ZXMKPiA+ID4+PiA+PTIwCj4gPiA+Pj4gPiB0byBtZSwgdGhpcyBjYW4gYmUgc2FmZWx5IGlnbm9yZWQKPiA+ID4+PiA+PTIwCj4gPiA+Pj4gPiBpZiBub2JvZHkgb2JqZWN0cywgaW4gNzJoLCBJJ2xsIGNyZWF0ZSBJTkZSQSBqaXJhIGlzc3VlIHRvIHN3aXRjaAo+ID4gPj4+ID4gZm9sbG93aW5nCj4gPiA+Pj4gPiA2IGNvbXBvbmVudHMgZnJvbSBzdm4gdG8gdGhlIGN1cnJlbnQgZ2l0IG1pcnJvcjoKPiA+ID4+PiA+IC0gRG94aWEgY29yZQo+ID4gPj4+ID4gLSBEb3hpYSBTaXRldG9vbHMKPiA+ID4+PiA+IC0gRW5mb3JjZXIKPiA+ID4+PiA+IC0gSnhyCj4gPiA+Pj4gPiAtIFBsdWdpbiBUb29scwo+ID4gPj4+ID4gLSBSZWxlYXNlCj4gPiA+Pj4gPj0yMAo+ID4gPj4+ID49MjAKPiA+ID4+PiA+IFJlZ2FyZHMsCj4gPiA+Pj4gPj0yMAo+ID4gPj4+ID4gSGVydj1FOQo+ID4gPj4+ID49MjAKPiA+ID4+PiA+IExlIHNhbWVkaSA3IG9jdG9icmUgMjAxNywgMDQ6NDc6MzIgQ0VTVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0PQogOgo+ID4gPj4+ID4gPiByZS1yZWFkaW5nIG91ciBtaWdyYXRpb24gcHJvY2VzcyBkb2N1bWVudGF0aW9uIFsxXSwgSSBzZWUgImNoZWNrCj4gPiA+Pj4gPiA+IGVzcGVjaWFsbHkKPiA+ID4+PiA+ID4gYmVoYXZpb3VyIG9uIGNoZWNraW5nIG91dCB0YWciCj4gPiA+Pj4gPiA+PTIwCj4gPiA+Pj4gPiA+IEkgc3VwcG9zZSB0aGF0IHdlIGNvdWxkIGNvbXBhcmUgY29udGVudCBiZXR3ZWVuIGdpdCBjaGVja291dCBhbmQKPiA+PTIwCj4gPiBzdm4KPiA+PTIwCj4gPiA+Pj4gPiA+IGNoZWNrb3V0IGZvciBIRUFEIGFuZCBldmVyeSBwYXN0IHJlbGVhc2UKPiA+ID4+PiA+ID49MjAKPiA+ID4+PiA+ID4gZGlkIHNvbWVib2R5IHByZXBhcmUgYSBzaGVsbCBzY3JpcHQgZm9yIHRoYXQ/Cj4gPiA+Pj4gPiA+PTIwCj4gPiA+Pj4gPiA+IFJlZ2FyZHMsCj4gPiA+Pj4gPiA+PTIwCj4gPiA+Pj4gPiA+IEhlcnY9RTkKPiA+ID4+PiA+ID49MjAKPiA+ID4+PiA+ID4gWzFdIGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvTUFWRU4vR2l0Cj4gPiA+Pj4gPiA+ICtNaWdyYXRpb24jR2l0TWlncmF0aW9uLU1pZ3JhdGlvbnByb2Nlc3NkZXNjcmlwdGlvbgo+ID4gPj4+ID4gPj0yMAo+ID4gPj4+ID4gPiBMZSB2ZW5kcmVkaSA2IG9jdG9icmUgMjAxNywgMDA6MzQ6MTEgQ0VTVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTk9CmNyaXQgOgo+ID4gPj4+ID4gPiA+IGdyZWF0LCB0aGFuayB5b3UgZm9yIHlvdXIgaGVscAo+ID4gPj4+ID4gPiA+PTIwCj4gPiA+Pj4gPiA+ID4gaW4gZmFjdCwgQUZBSUssIEFwYWNoZSBoYXMgYWxyZWFkeSBhdXRvbWF0aWMgc3ZuMmdpdCBleHBvcnRzID0KWzFdCj4gPiA+Pj49MjAKPiA+ID4+PiB0aGF0Cj4gPiA+Pj49MjAKPiA+ID4+PiA+ID4gPiBhcmUKPiA+ID4+PiA+ID4gPiB0aGVuIG1pcnJvcmVkIHRvIGdpdGh1Yi4KPiA+ID4+PiA+ID4gPiBUaGVuIHdlIGFscmVhZHkgaGF2ZToKPiA+ID4+PiA+ID4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZG94aWEvCj4gPiA+Pj4gPiA+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRveGlhLXNpdGV0b29scy8KPiA+ID4+PiA+ID4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZW5mb3JjZXIvCj4gPiA+Pj4gPiA+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWp4ci8KPiA+ID4+PiA+ID4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2luLXRvb2xzLwo+ID4gPj4+ID4gPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1yZWxlYXNlLwo+ID4gPj4+ID4gPiA+PTIwCj4gPiA+Pj4gPiA+ID4gSSBzdXBwb3NlIHRoZXNlIGNvdWxkIGJlIHRoZSBuYXR1cmFsIHRhcmdldHMuCj4gPiA+Pj4gPiA+ID4gQnV0IEkgZG9uJ3QgcmVhbGx5IHNlZSB3aGF0IGNoZWNrcyB0byBkbyBvbiB0aGVzZS4KPiA+ID4+PiA+ID4gPj0yMAo+ID4gPj4+ID4gPiA+IEkgc3VwcG9zZSB0aGF0IG9uY2Ugd2UgYXJlIGNvbnZpbmNlZCB0aGlzIGNvbnRlbnQgaXMgb2ssIHdlIGM9CmFuCj4gPj0yMAo+ID4gYXNrCj4gPj0yMAo+ID4gPj4+ID4gPiA+IGluZnJhCj4gPiA+Pj4gPiA+ID4gdG8gc3dpdGNoIHRoZXNlIHRvIHRoZSBjYW5vbmljYWwgc291cmNlIChhbmQgZGlzYWJsZSB0aGUgc3ZuMj0KZ2l0Cj4gPiA+Pj4gPiA+ID4gZXhwb3J0cykKPiA+ID4+PiA+ID4gPj0yMAo+ID4gPj4+ID4gPiA+IERvIHlvdSBzZWUgYW55IGlzc3VlIGluIHRoZXNlIHJlcG9zPwo+ID4gPj4+ID4gPiA+PTIwCj4gPiA+Pj4gPiA+ID4gUmVnYXJkcywKPiA+ID4+PiA+ID4gPj0yMAo+ID4gPj4+ID4gPiA+IEhlcnY9RTkKPiA+ID4+PiA+ID4gPj0yMAo+ID4gPj4+ID4gPiA+IFsxXSBodHRwOi8vZ2l0LmFwYWNoZS5vcmcvCj4gPiA+Pj4gPiA+ID49MjAKPiA+ID4+PiA+ID4gPiBMZSBqZXVkaSA1IG9jdG9icmUgMjAxNywgMTE6NDU6MjMgQ0VTVCBEZWphbiBTdG9qYWRpbm92aWMgYQo+ID49MjAKPiA+ID1FOWNyaXQgOgo+ID4gPj4+ID4gPiA+ID4gQ291bnQgbWUgaW4gKGZvciBib3RoIGFjdHVhbCBtaWdyYXRpb24gYW5kIHJlbGF0ZWQgdGFza3MpLgo+ID4gPj4+ID4gPiA+ID49MjAKPiA+ID4+PiA+ID4gPiA+IE15IHdlYXBvbiBvZiBjaG9pY2UgZm9yIFNWTiAtLT4+R0lUIHdvdWxkIGJlOgo+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL25pcnZkcnVtL3N2bjJnaXQgKEkgbWFuYWdlZCB0byBtb3ZlIGRvemVuCj4gPj0yMAo+ID4gb2YKPiA+PTIwCj4gPiA+Pj4gPiA+ID4gPiByZXBvcwo+ID4gPj4+ID4gPiA+ID4gZmV3Cj4gPiA+Pj4gPiA+ID4gPiB5ZWFycyBhZ28pLgo+ID4gPj4+ID4gPiA+ID49MjAKPiA+ID4+PiA+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+Pj4gPiA+ID4gPiBEZWphbgo+ID4gPj4+ID4gPiA+ID49MjAKPiA+ID4+PiA+ID4gPiA+IE9uIDIwMTctMTAtMDQgMDE6NDgsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlPQo9MkVmcj4KPiA+ID4+Pj0yMAo+ID4gPj4+IHdyb3RlOgo+ID4gPj4+ID4gPiA+ID4gPiBJJ2QgbGlrZSB0byB3b3JrIG9uIFBsdWdpbiBUb29scyB3aXRoIGdpdAo+ID4gPj4+ID4gPiA+ID4gPj0yMAo+ID4gPj4+ID4gPiA+ID4gPiBXaGlsZSBhdCBpdCwgbG9va2luZyBhdCBvdXIgcGxhbiBbMV0sIEkgc2VlIHdlIGhhdmUgYSBmZXcKPiA+PTIwCj4gPiBvdGhlcgo+ID49MjAKPiA+ID4+PiA+ID4gPiA+ID4gY29tcG9uZW50cwo+ID4gPj4+ID4gPiA+ID4gPiB0aGF0IGFyZSByZWFkeSB0byBtaWdyYXRlOgo+ID4gPj4+ID4gPiA+ID4gPiAtIERveGlhIGNvcmUKPiA+ID4+PiA+ID4gPiA+ID4gLSBEb3hpYSBTaXRldG9vbHMKPiA+ID4+PiA+ID4gPiA+ID4gLSBFbmZvcmNlcgo+ID4gPj4+ID4gPiA+ID4gPiAtIEp4cgo+ID4gPj4+ID4gPiA+ID4gPiAtIFBsdWdpbiBUb29scwo+ID4gPj4+ID4gPiA+ID4gPiAtIFJlbGVhc2UKPiA+ID4+PiA+ID4gPiA+ID49MjAKPiA+ID4+PiA+ID4gPiA+ID4gV2hhdCBjaGVja3MgYXJlIHJlcXVpcmVkIGJlZm9yZSBzd2l0Y2hpbmcgdGhlc2UgNgo+ID4gPj4+ID4gPiA+ID4gPiBjb21wb25lbnRzPwo+ID4gPj4+ID4gPiA+ID4gPiBBbnkgdm9sdW50ZWVyPwo+ID4gPj4+ID4gPiA+ID4gPj0yMAo+ID4gPj4+ID4gPiA+ID4gPiBSZWdhcmRzLAo+ID4gPj4+ID4gPiA+ID4gPj0yMAo+ID4gPj4+ID4gPiA+ID4gPiBIZXJ2PUMzPUE5Cj4gPiA+Pj4gPiA+ID4gPiA+PTIwCj4gPiA+Pj4gPiA+ID4gPiA+IFsxXQo+ID4gPj4+ID4gPiA+ID4gPiBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL0dpdCtNaWc9CnJhdAo+ID4gPj4+PTIwCj4gPiA+Pj4gaW9uCj4gPiA+Pj49MjAKPiA+ID4+PiA+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQo9MkQtLQo+ID4gPj4+PTIwCj4gPiA+Pj4gLS0tLS0tCj4gPiA+Pj49MjAKPiA+ID4+PiA+ID4gPiA+ID4gLS0KPiA+ID4+PiA+ID4gPiA+ID4gLQo+ID4gPj4+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Pj4gPiA+ID4gPj0yMAo+ID4gPj4+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+Pj49MjAKPiA+ID4+PiAtLS0tLS0tLQo+ID4gPj4+PTIwCj4gPiA+Pj4gPiA+ID4gPiAtCj4gPiA+Pj4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4+ID4gPiA+PTIwCj4gPiA+Pj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+Pj49MjAKPiA+ID4+PiAtLS0tLS0tLS0KPiA+ID4+Pj0yMAo+ID4gPj4+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Pj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4+ID4gPj0yMAo+ID4gPj4+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4+Pj0yMAo+ID4gPj4+IC0tLS0tLS0tLQo+ID4gPj4+PTIwCj4gPiA+Pj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Pj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+PiA+PTIwCj4gPiA+Pj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KPTJELS0KPiA+ID4+PiA+IC0KPiA+ID4+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Pj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Pj49MjAKPiA+ID4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQo9MkQtCj4gPiA+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Pj0yMAo+ID4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj0yMAo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID49MjAKPiA+IC0tCj4gPiAtLS0tLQo+ID4gQXJuYXVkIEg9RTlyaXRpZXIKPiA+IGh0dHA6Ly9haGVyaXRpZXIubmV0Cj4gPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+ID4gVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzMTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIE9jdCAyMyAxMjo0Nzo1OCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzMTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgODNGNDIxMEZDMwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDIzIE9jdCAyMDE3IDEyOjQ3OjU4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTc0NTggaW52b2tlZCBieSB1aWQgNTAwKTsgMjMgT2N0IDIwMTcgMTI6NDc6NTggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE3MzkwIGludm9rZWQgYnkgdWlkIDUwMCk7IDIzIE9jdCAyMDE3IDEyOjQ3OjU4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTczNzkgaW52b2tlZCBieSB1aWQgOTkpOyAyMyBPY3QgMjAxNyAxMjo0Nzo1NyAtMDAwMApSZWNlaXZlZDogZnJvbSBlYzItNTItMjAyLTgwLTcwLmNvbXB1dGUtMS5hbWF6b25hd3MuY29tIChIRUxPIGdpdGJveC5hcGFjaGUub3JnKSAoNTIuMjAyLjgwLjcwKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDIzIE9jdCAyMDE3IDEyOjQ3OjU3ICswMDAwCkZyb206IEdpdEJveCA8Z2l0QGFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBbR2l0SHViXSBhc2ZnaXQgY2xvc2VkIHB1bGwgcmVxdWVzdCAjMjogUmVwbGFjZSBtb2R1bGUtbWFya2Rvd24gIHBlZ2Rvd24gcGFyc2VyIHRvIGZsZXhtYXJrLWphdmEKTWVzc2FnZS1JRDogPDE1MDg3NjI4NzcxNy42NTkxLjExNzE1OTU2NzQyMDgzODY0MTAuZ2l0Ym94QGdpdGJveC5hcGFjaGUub3JnPgoKYXNmZ2l0IGNsb3NlZCBwdWxsIHJlcXVlc3QgIzI6IFJlcGxhY2UgbW9kdWxlLW1hcmtkb3duICBwZWdkb3duIHBhcnNlciB0byBmbGV4bWFyay1qYXZhClVSTDogaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1kb3hpYS9wdWxsLzIKIAogCiAgIAoKVGhpcyBpcyBhIFBSIG1lcmdlZCBmcm9tIGEgZm9ya2VkIHJlcG9zaXRvcnkuCkFzIEdpdEh1YiBoaWRlcyB0aGUgb3JpZ2luYWwgZGlmZiBvbiBtZXJnZSwgaXQgaXMgZGlzcGxheWVkIGJlbG93IGZvcgp0aGUgc2FrZSBvZiBwcm92ZW5hbmNlOgoKQXMgdGhpcyBpcyBhIGZvcmVpZ24gcHVsbCByZXF1ZXN0IChmcm9tIGEgZm9yayksIHRoZSBkaWZmIGlzIHN1cHBsaWVkCmJlbG93IChhcyBpdCB3b24ndCBzaG93IG90aGVyd2lzZSBkdWUgdG8gR2l0SHViIG1hZ2ljKToKCmRpZmYgLS1naXQgYS9kb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS1tYXJrZG93bi9wb20ueG1sIGIvZG94aWEtbW9kdWxlcy9kb3hpYS1tb2R1bGUtbWFya2Rvd24vcG9tLnhtbAppbmRleCA0NTA2N2JkNy4uYmE5YmZhMTQgMTAwNjQ0Ci0tLSBhL2RveGlhLW1vZHVsZXMvZG94aWEtbW9kdWxlLW1hcmtkb3duL3BvbS54bWwKKysrIGIvZG94aWEtbW9kdWxlcy9kb3hpYS1tb2R1bGUtbWFya2Rvd24vcG9tLnhtbApAQCAtMzgsNiArMzgsMTIgQEAgdW5kZXIgdGhlIExpY2Vuc2UuCiAKICAgPGNvbnRyaWJ1dG9ycz4KICAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5WbGFkaW1pciBTY2huZWlkZXI8L25hbWU+CisgICAgICA8ZW1haWw+dmxhZGltaXJAdmxhZHNjaC5jb208L2VtYWlsPgorICAgICAgPG9yZ2FuaXphdGlvbj52bGFkc2NoLmNvbTwvb3JnYW5pemF0aW9uPgorICAgICAgPG9yZ2FuaXphdGlvblVybD5odHRwczovL3ZsYWRzY2guY29tLzwvb3JnYW5pemF0aW9uVXJsPgorICAgIDwvY29udHJpYnV0b3I+CisgICAgPGNvbnRyaWJ1dG9yPgogICAgICAgPG5hbWU+SnVsaWVuIE5pY291bGF1ZDwvbmFtZT4KICAgICAgIDxlbWFpbD5qdWxpZW4ubmljb3VsYXVkQGdtYWlsLmNvbTwvZW1haWw+CiAgICAgICA8dGltZXpvbmU+KzE8L3RpbWV6b25lPgpAQCAtNDUsMTEgKzUxLDE1IEBAIHVuZGVyIHRoZSBMaWNlbnNlLgogICAgIDwvY29udHJpYnV0b3I+CiAgIDwvY29udHJpYnV0b3JzPgogCisgIDxwcm9wZXJ0aWVzPgorICAgIDxtYXZlbi5jb21waWxlci50YXJnZXQ+MS43PC9tYXZlbi5jb21waWxlci50YXJnZXQ+PCEtLSByZXF1aXJlZCBieSBmbGV4bWFyayAtLT4KKyAgPC9wcm9wZXJ0aWVzPgorCiAgIDxkZXBlbmRlbmNpZXM+CiAgICAgPGRlcGVuZGVuY3k+Ci0gICAgICA8Z3JvdXBJZD5vcmcucGVnZG93bjwvZ3JvdXBJZD4KLSAgICAgIDxhcnRpZmFjdElkPnBlZ2Rvd248L2FydGlmYWN0SWQ+Ci0gICAgICA8dmVyc2lvbj4xLjIuMTwvdmVyc2lvbj4KKyAgICAgIDxncm91cElkPmNvbS52bGFkc2NoLmZsZXhtYXJrPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+ZmxleG1hcmstYWxsPC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+MC4xOC40PC92ZXJzaW9uPgogICAgIDwvZGVwZW5kZW5jeT4KICAgICA8ZGVwZW5kZW5jeT4KICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4uZG94aWE8L2dyb3VwSWQ+CkBAIC02MCw1ICs3MCw0IEBAIHVuZGVyIHRoZSBMaWNlbnNlLgogICAgICAgPGFydGlmYWN0SWQ+cGxleHVzLXV0aWxzPC9hcnRpZmFjdElkPgogICAgIDwvZGVwZW5kZW5jeT4KICAgPC9kZXBlbmRlbmNpZXM+Ci0KIDwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL2RveGlhLW1vZHVsZXMvZG94aWEtbW9kdWxlLW1hcmtkb3duL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9kb3hpYS9tb2R1bGUvbWFya2Rvd24vTWFya2Rvd25Eb3hpYUV4dGVuc2lvbi5qYXZhIGIvZG94aWEtbW9kdWxlcy9kb3hpYS1tb2R1bGUtbWFya2Rvd24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL2RveGlhL21vZHVsZS9tYXJrZG93bi9NYXJrZG93bkRveGlhRXh0ZW5zaW9uLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLjA4YjI2OWY3Ci0tLSAvZGV2L251bGwKKysrIGIvZG94aWEtbW9kdWxlcy9kb3hpYS1tb2R1bGUtbWFya2Rvd24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL2RveGlhL21vZHVsZS9tYXJrZG93bi9NYXJrZG93bkRveGlhRXh0ZW5zaW9uLmphdmEKQEAgLTAsMCArMSw1MCBAQAorcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLmRveGlhLm1vZHVsZS5tYXJrZG93bjsKKworLyoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisgKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworICogdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworaW1wb3J0IGNvbS52bGFkc2NoLmZsZXhtYXJrLkV4dGVuc2lvbjsKK2ltcG9ydCBjb20udmxhZHNjaC5mbGV4bWFyay5odG1sLkh0bWxSZW5kZXJlcjsKK2ltcG9ydCBjb20udmxhZHNjaC5mbGV4bWFyay51dGlsLm9wdGlvbnMuRGF0YUtleTsKK2ltcG9ydCBjb20udmxhZHNjaC5mbGV4bWFyay51dGlsLm9wdGlvbnMuTXV0YWJsZURhdGFIb2xkZXI7CisKKy8qKgorICogSW1wbGVtZW50cyBmbGV4bWFyay1qYXZhIGV4dGVuc2lvbiB0byByZW5kZXIgZmVuY2VkIGNvZGUgYW5kIGluZGVudGVkIGNvZGUgdXNpbmcgZG94aWEgZm9ybWF0CisgKi8KK2NsYXNzIE1hcmtkb3duRG94aWFFeHRlbnNpb24gaW1wbGVtZW50cyBIdG1sUmVuZGVyZXIuSHRtbFJlbmRlcmVyRXh0ZW5zaW9uCit7CisgICAgcHVibGljIHN0YXRpYyBmaW5hbCBEYXRhS2V5PFN0cmluZz4gSU5QVVRfRklMRV9FWFRFTlNJT04gPSBuZXcgRGF0YUtleTxTdHJpbmc+KCAiSU5QVVRfRklMRV9FWFRFTlNJT04iLCAibWQiICk7CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgdm9pZCByZW5kZXJlck9wdGlvbnMoIGZpbmFsIE11dGFibGVEYXRhSG9sZGVyIG9wdGlvbnMgKQorICAgIHsKKworICAgIH0KKworICAgIEBPdmVycmlkZQorICAgIHB1YmxpYyB2b2lkIGV4dGVuZCggSHRtbFJlbmRlcmVyLkJ1aWxkZXIgcmVuZGVyZXJCdWlsZGVyLCBTdHJpbmcgcmVuZGVyZXJUeXBlICkKKyAgICB7CisgICAgICAgIHJlbmRlcmVyQnVpbGRlci5ub2RlUmVuZGVyZXJGYWN0b3J5KCBuZXcgTWFya2Rvd25Eb3hpYU5vZGVSZW5kZXJlci5GYWN0b3J5KCkgKTsKKyAgICB9CisKKyAgICBwdWJsaWMgc3RhdGljIEV4dGVuc2lvbiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG5ldyBNYXJrZG93bkRveGlhRXh0ZW5zaW9uKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvZG94aWEtbW9kdWxlcy9kb3hpYS1tb2R1bGUtbWFya2Rvd24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL2RveGlhL21vZHVsZS9tYXJrZG93bi9NYXJrZG93bkRveGlhTm9kZVJlbmRlcmVyLmphdmEgYi9kb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS1tYXJrZG93bi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vZG94aWEvbW9kdWxlL21hcmtkb3duL01hcmtkb3duRG94aWFOb2RlUmVuZGVyZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uOTRjNzEwZjUKLS0tIC9kZXYvbnVsbAorKysgYi9kb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS1tYXJrZG93bi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vZG94aWEvbW9kdWxlL21hcmtkb3duL01hcmtkb3duRG94aWFOb2RlUmVuZGVyZXIuamF2YQpAQCAtMCwwICsxLDE0OCBAQAorcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLmRveGlhLm1vZHVsZS5tYXJrZG93bjsKKworLyoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisgKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworICogdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworaW1wb3J0IGNvbS52bGFkc2NoLmZsZXhtYXJrLmFzdC5GZW5jZWRDb2RlQmxvY2s7CitpbXBvcnQgY29tLnZsYWRzY2guZmxleG1hcmsuYXN0LkluZGVudGVkQ29kZUJsb2NrOworaW1wb3J0IGNvbS52bGFkc2NoLmZsZXhtYXJrLmh0bWwuQ3VzdG9tTm9kZVJlbmRlcmVyOworaW1wb3J0IGNvbS52bGFkc2NoLmZsZXhtYXJrLmh0bWwuSHRtbFdyaXRlcjsKK2ltcG9ydCBjb20udmxhZHNjaC5mbGV4bWFyay5odG1sLnJlbmRlcmVyLk5vZGVSZW5kZXJlcjsKK2ltcG9ydCBjb20udmxhZHNjaC5mbGV4bWFyay5odG1sLnJlbmRlcmVyLk5vZGVSZW5kZXJlckNvbnRleHQ7CitpbXBvcnQgY29tLnZsYWRzY2guZmxleG1hcmsuaHRtbC5yZW5kZXJlci5Ob2RlUmVuZGVyZXJGYWN0b3J5OworaW1wb3J0IGNvbS52bGFkc2NoLmZsZXhtYXJrLmh0bWwucmVuZGVyZXIuTm9kZVJlbmRlcmluZ0hhbmRsZXI7CitpbXBvcnQgY29tLnZsYWRzY2guZmxleG1hcmsudXRpbC5vcHRpb25zLkRhdGFIb2xkZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OworaW1wb3J0IGphdmEudXRpbC5TZXQ7CisKKy8qKgorICogVGhlIG5vZGUgcmVuZGVyZXIgdGhhdCByZW5kZXJzIGFsbCB0aGUgY29yZSBub2RlcyAoY29tZXMgbGFzdCBpbiB0aGUgb3JkZXIgb2Ygbm9kZSByZW5kZXJlcnMpLgorICovCitAU3VwcHJlc3NXYXJuaW5ncyggIldlYWtlckFjY2VzcyIgKQorY2xhc3MgTWFya2Rvd25Eb3hpYU5vZGVSZW5kZXJlciBpbXBsZW1lbnRzIE5vZGVSZW5kZXJlcgoreworICAgIHB1YmxpYyBNYXJrZG93bkRveGlhTm9kZVJlbmRlcmVyKCBEYXRhSG9sZGVyIG9wdGlvbnMgKQorICAgIHsKKyAgICB9CisKKyAgICBAT3ZlcnJpZGUKKyAgICBwdWJsaWMgU2V0PE5vZGVSZW5kZXJpbmdIYW5kbGVyPD8+PiBnZXROb2RlUmVuZGVyaW5nSGFuZGxlcnMoKQorICAgIHsKKyAgICAgICAgLy9ub2luc3BlY3Rpb24gdW5jaGVja2VkCisgICAgICAgIHJldHVybiBuZXcgSGFzaFNldDxOb2RlUmVuZGVyaW5nSGFuZGxlcjw/Pj4oIEFycmF5cy5hc0xpc3QoCisgICAgICAgICAgICAgICAgbmV3IE5vZGVSZW5kZXJpbmdIYW5kbGVyPEluZGVudGVkQ29kZUJsb2NrPiggSW5kZW50ZWRDb2RlQmxvY2suY2xhc3MsCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQ3VzdG9tTm9kZVJlbmRlcmVyPEluZGVudGVkQ29kZUJsb2NrPigpCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgQE92ZXJyaWRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIHZvaWQgcmVuZGVyKCBJbmRlbnRlZENvZGVCbG9jayBub2RlLCBOb2RlUmVuZGVyZXJDb250ZXh0IGNvbnRleHQsIEh0bWxXcml0ZXIgaHRtbCApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXJrZG93bkRveGlhTm9kZVJlbmRlcmVyLnRoaXMucmVuZGVyKCBub2RlLCBjb250ZXh0LCBodG1sICk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgfSApLAorICAgICAgICAgICAgICAgIG5ldyBOb2RlUmVuZGVyaW5nSGFuZGxlcjxGZW5jZWRDb2RlQmxvY2s+KCBGZW5jZWRDb2RlQmxvY2suY2xhc3MsCisgICAgICAgICAgICAgICAgICAgICAgICBuZXcgQ3VzdG9tTm9kZVJlbmRlcmVyPEZlbmNlZENvZGVCbG9jaz4oKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBPdmVycmlkZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIHJlbmRlciggRmVuY2VkQ29kZUJsb2NrIG5vZGUsIE5vZGVSZW5kZXJlckNvbnRleHQgY29udGV4dCwgSHRtbFdyaXRlciBodG1sICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hcmtkb3duRG94aWFOb2RlUmVuZGVyZXIudGhpcy5yZW5kZXIoIG5vZGUsIGNvbnRleHQsIGh0bWwgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICB9ICkKKyAgICAgICAgKSApOworICAgIH0KKworICAgIHByaXZhdGUgdm9pZCByZW5kZXIoIEluZGVudGVkQ29kZUJsb2NrIG5vZGUsIE5vZGVSZW5kZXJlckNvbnRleHQgY29udGV4dCwgSHRtbFdyaXRlciBodG1sICkKKyAgICB7CisgICAgICAgIGh0bWwubGluZSgpOworICAgICAgICBodG1sLmF0dHIoICJjbGFzcyIsICJzb3VyY2UiICkudGFnKCAiZGl2IiApOworICAgICAgICBodG1sLnNyY1Bvc1dpdGhFT0woIG5vZGUuZ2V0Q2hhcnMoKSApLndpdGhBdHRyKCkudGFnKCAicHJlIiApLm9wZW5QcmUoKTsKKworICAgICAgICBTdHJpbmcgbm9MYW5ndWFnZUNsYXNzID0gY29udGV4dC5nZXRIdG1sT3B0aW9ucygpLm5vTGFuZ3VhZ2VDbGFzcy50cmltKCk7CisgICAgICAgIGlmICggIW5vTGFuZ3VhZ2VDbGFzcy5pc0VtcHR5KCkgKQorICAgICAgICB7CisgICAgICAgICAgICBodG1sLmF0dHIoICJjbGFzcyIsIG5vTGFuZ3VhZ2VDbGFzcyApOworICAgICAgICB9CisKKyAgICAgICAgLy9odG1sLnNyY1Bvc1dpdGhFT0wobm9kZS5nZXRDb250ZW50Q2hhcnMoKSkud2l0aEF0dHIoQ29yZU5vZGVSZW5kZXJlci5DT0RFX0NPTlRFTlQpLnRhZygiY29kZSIpOworICAgICAgICBTdHJpbmcgcyA9IG5vZGUuZ2V0Q29udGVudENoYXJzKCkudHJpbVRhaWxCbGFua0xpbmVzKCkubm9ybWFsaXplRW5kV2l0aEVPTCgpOworICAgICAgICB3aGlsZSAoICFzLmlzRW1wdHkoKSAmJiBzLmNoYXJBdCggMCApID09ICdcbicgKQorICAgICAgICB7CisgICAgICAgICAgICBodG1sLnJhdyggIjxici8+IiApOworICAgICAgICAgICAgcyA9IHMuc3Vic3RyaW5nKCAxICk7CisgICAgICAgIH0KKyAgICAgICAgaHRtbC50ZXh0KCBzICk7CisKKyAgICAgICAgLy9odG1sLnRhZygiL2NvZGUiKTsKKyAgICAgICAgaHRtbC50YWcoICIvcHJlIiApLmNsb3NlUHJlKCk7CisgICAgICAgIGh0bWwudGFnKCAiL2RpdiIgKTsKKyAgICAgICAgaHRtbC5saW5lKCk7CisgICAgfQorCisgICAgcHJpdmF0ZSB2b2lkIHJlbmRlciggRmVuY2VkQ29kZUJsb2NrIG5vZGUsIE5vZGVSZW5kZXJlckNvbnRleHQgY29udGV4dCwgSHRtbFdyaXRlciBodG1sICkKKyAgICB7CisgICAgICAgIGh0bWwubGluZSgpOworICAgICAgICBodG1sLmF0dHIoICJjbGFzcyIsICJzb3VyY2UiICkudGFnKCAiZGl2IiApOworICAgICAgICBodG1sLnNyY1Bvc1dpdGhUcmFpbGluZ0VPTCggbm9kZS5nZXRDaGFycygpICkud2l0aEF0dHIoKS50YWcoICJwcmUiICkub3BlblByZSgpOworCisgICAgICAgIC8vQmFzZWRTZXF1ZW5jZSBpbmZvID0gbm9kZS5nZXRJbmZvKCk7CisgICAgICAgIC8vaWYgKGluZm8uaXNOb3ROdWxsKCkgJiYgIWluZm8uaXNCbGFuaygpKSB7CisgICAgICAgIC8vICAgIGludCBzcGFjZSA9IGluZm8uaW5kZXhPZignICcpOworICAgICAgICAvLyAgICBCYXNlZFNlcXVlbmNlIGxhbmd1YWdlOworICAgICAgICAvLyAgICBpZiAoc3BhY2UgPT0gLTEpIHsKKyAgICAgICAgLy8gICAgICAgIGxhbmd1YWdlID0gaW5mbzsKKyAgICAgICAgLy8gICAgfSBlbHNlIHsKKyAgICAgICAgLy8gICAgICAgIGxhbmd1YWdlID0gaW5mby5zdWJTZXF1ZW5jZSgwLCBzcGFjZSk7CisgICAgICAgIC8vICAgIH0KKyAgICAgICAgLy8gICAgaHRtbC5hdHRyKCJjbGFzcyIsIGNvbnRleHQuZ2V0SHRtbE9wdGlvbnMoKS5sYW5ndWFnZUNsYXNzUHJlZml4ICsgbGFuZ3VhZ2UudW5lc2NhcGUoKSk7CisgICAgICAgIC8vfSBlbHNlICB7CisgICAgICAgIC8vICAgIFN0cmluZyBub0xhbmd1YWdlQ2xhc3MgPSBjb250ZXh0LmdldEh0bWxPcHRpb25zKCkubm9MYW5ndWFnZUNsYXNzLnRyaW0oKTsKKyAgICAgICAgLy8gICAgaWYgKCFub0xhbmd1YWdlQ2xhc3MuaXNFbXB0eSgpKSB7CisgICAgICAgIC8vICAgICAgICBodG1sLmF0dHIoImNsYXNzIiwgbm9MYW5ndWFnZUNsYXNzKTsKKyAgICAgICAgLy8gICAgfQorICAgICAgICAvL30KKworICAgICAgICAvL2h0bWwuc3JjUG9zV2l0aEVPTChub2RlLmdldENvbnRlbnRDaGFycygpKS53aXRoQXR0cihDb3JlTm9kZVJlbmRlcmVyLkNPREVfQ09OVEVOVCkudGFnKCJjb2RlIik7CisgICAgICAgIFN0cmluZyBzID0gbm9kZS5nZXRDb250ZW50Q2hhcnMoKS5ub3JtYWxpemVFT0woKTsKKyAgICAgICAgd2hpbGUgKCAhcy5pc0VtcHR5KCkgJiYgcy5jaGFyQXQoIDAgKSA9PSAnXG4nICkKKyAgICAgICAgeworICAgICAgICAgICAgaHRtbC5yYXcoICI8YnIvPiIgKTsKKyAgICAgICAgICAgIHMgPSBzLnN1YnN0cmluZyggMSApOworICAgICAgICB9CisgICAgICAgIGh0bWwudGV4dCggcyApOworCisgICAgICAgIC8vaHRtbC50YWcoIi9jb2RlIik7CisgICAgICAgIGh0bWwudGFnKCAiL3ByZSIgKS5jbG9zZVByZSgpOworICAgICAgICBodG1sLnRhZyggIi9kaXYiICk7CisgICAgICAgIGh0bWwubGluZSgpOworICAgIH0KKworICAgIC8qKgorICAgICAqIEZhY3RvcnkgZm9yIGRveGlhIG5vZGUgcmVuZGVyZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIGNsYXNzIEZhY3RvcnkgaW1wbGVtZW50cyBOb2RlUmVuZGVyZXJGYWN0b3J5CisgICAgeworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIE5vZGVSZW5kZXJlciBjcmVhdGUoIGZpbmFsIERhdGFIb2xkZXIgb3B0aW9ucyApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTWFya2Rvd25Eb3hpYU5vZGVSZW5kZXJlciggb3B0aW9ucyApOworICAgICAgICB9CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvZG94aWEtbW9kdWxlcy9kb3hpYS1tb2R1bGUtbWFya2Rvd24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL2RveGlhL21vZHVsZS9tYXJrZG93bi9NYXJrZG93blBhcnNlci5qYXZhIGIvZG94aWEtbW9kdWxlcy9kb3hpYS1tb2R1bGUtbWFya2Rvd24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL2RveGlhL21vZHVsZS9tYXJrZG93bi9NYXJrZG93blBhcnNlci5qYXZhCmluZGV4IDMzNjc5NWIyLi4zZWU3N2JjNyAxMDA2NDQKLS0tIGEvZG94aWEtbW9kdWxlcy9kb3hpYS1tb2R1bGUtbWFya2Rvd24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL2RveGlhL21vZHVsZS9tYXJrZG93bi9NYXJrZG93blBhcnNlci5qYXZhCisrKyBiL2RveGlhLW1vZHVsZXMvZG94aWEtbW9kdWxlLW1hcmtkb3duL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9kb3hpYS9tb2R1bGUvbWFya2Rvd24vTWFya2Rvd25QYXJzZXIuamF2YQpAQCAtMTksNiArMTksMTUgQEAKICAqIHVuZGVyIHRoZSBMaWNlbnNlLgogICovCiAKK2ltcG9ydCBjb20udmxhZHNjaC5mbGV4bWFyay5FeHRlbnNpb247CitpbXBvcnQgY29tLnZsYWRzY2guZmxleG1hcmsuYXN0LkhlYWRpbmc7CitpbXBvcnQgY29tLnZsYWRzY2guZmxleG1hcmsuYXN0Lkh0bWxDb21tZW50QmxvY2s7CitpbXBvcnQgY29tLnZsYWRzY2guZmxleG1hcmsuYXN0Lk5vZGU7CitpbXBvcnQgY29tLnZsYWRzY2guZmxleG1hcmsuYXN0LnV0aWwuVGV4dENvbGxlY3RpbmdWaXNpdG9yOworaW1wb3J0IGNvbS52bGFkc2NoLmZsZXhtYXJrLmh0bWwuSHRtbFJlbmRlcmVyOworaW1wb3J0IGNvbS52bGFkc2NoLmZsZXhtYXJrLnByb2ZpbGVzLnBlZ2Rvd24uRXh0ZW5zaW9uczsKK2ltcG9ydCBjb20udmxhZHNjaC5mbGV4bWFyay5wcm9maWxlcy5wZWdkb3duLlBlZ2Rvd25PcHRpb25zQWRhcHRlcjsKK2ltcG9ydCBjb20udmxhZHNjaC5mbGV4bWFyay51dGlsLm9wdGlvbnMuTXV0YWJsZURhdGFIb2xkZXI7CiBpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxhbmcuU3RyaW5nRXNjYXBlVXRpbHM7CiBpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxhbmcuU3RyaW5nVXRpbHM7CiBpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5kb3hpYS5tYXJrdXAuSHRtbE1hcmt1cDsKQEAgLTMxLDM0ICs0MCwyNyBAQAogaW1wb3J0IG9yZy5jb2RlaGF1cy5wbGV4dXMuY29tcG9uZW50LmFubm90YXRpb25zLlJlcXVpcmVtZW50OwogaW1wb3J0IG9yZy5jb2RlaGF1cy5wbGV4dXMudXRpbC5JT1V0aWw7CiBpbXBvcnQgb3JnLmNvZGVoYXVzLnBsZXh1cy51dGlsLnhtbC5wdWxsLlhtbFB1bGxQYXJzZXI7Ci1pbXBvcnQgb3JnLnBlZ2Rvd24uRXh0ZW5zaW9uczsKLWltcG9ydCBvcmcucGVnZG93bi5QZWdEb3duUHJvY2Vzc29yOwotaW1wb3J0IG9yZy5wZWdkb3duLmFzdC5IZWFkZXJOb2RlOwotaW1wb3J0IG9yZy5wZWdkb3duLmFzdC5IdG1sQmxvY2tOb2RlOwotaW1wb3J0IG9yZy5wZWdkb3duLmFzdC5Ob2RlOwotaW1wb3J0IG9yZy5wZWdkb3duLmFzdC5Sb290Tm9kZTsKLWltcG9ydCBvcmcucGVnZG93bi5hc3QuU3VwZXJOb2RlOwotaW1wb3J0IG9yZy5wZWdkb3duLmFzdC5UZXh0Tm9kZTsKIAogaW1wb3J0IGphdmEuaW8uSU9FeGNlcHRpb247CiBpbXBvcnQgamF2YS5pby5SZWFkZXI7CiBpbXBvcnQgamF2YS5pby5TdHJpbmdSZWFkZXI7CitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKIGltcG9ydCBqYXZhLnV0aWwucmVnZXguTWF0Y2hlcjsKIGltcG9ydCBqYXZhLnV0aWwucmVnZXguUGF0dGVybjsKIAogLyoqCiAgKiBJbXBsZW1lbnRhdGlvbiBvZiB7QGxpbmsgb3JnLmFwYWNoZS5tYXZlbi5kb3hpYS5wYXJzZXIuUGFyc2VyfSBmb3IgTWFya2Rvd24gZG9jdW1lbnRzLgogICogPHAvPgotICogRGVmZXJzIGVmZmVjdGl2ZSBwYXJzaW5nIHRvIHRoZSA8YSBocmVmPSJodHRwOi8vcGVnZG93bi5vcmciPlBlZ0Rvd24gbGlicmFyeTwvYT4sIHdoaWNoIGdlbmVyYXRlcyBIVE1MIGNvbnRlbnQKLSAqIHRoZW4gZGVsZWdhdGVzIHBhcnNpbmcgb2YgdGhpcyBjb250ZW50IHRvIGEgc2xpZ2h0bHkgbW9kaWZpZWQgRG94aWEgWGh0bWwgcGFyc2VyLgorICogRGVmZXJzIGVmZmVjdGl2ZSBwYXJzaW5nIHRvIHRoZSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vdnNjaC9mbGV4bWFyay1qYXZhIj5mbGV4bWFyay1qYXZhIGxpYnJhcnk8L2E+LAorICogd2hpY2ggZ2VuZXJhdGVzIEhUTUwgY29udGVudCB0aGVuIGRlbGVnYXRlcyBwYXJzaW5nIG9mIHRoaXMgY29udGVudCB0byBhIHNsaWdodGx5IG1vZGlmaWVkIERveGlhIFhodG1sIHBhcnNlci4KICAqCisgKiBAYXV0aG9yIFZsYWRpbWlyIFNjaG5laWRlciA8dmxhZGltaXJAdmxhZHNjaC5jb20+CiAgKiBAYXV0aG9yIEp1bGllbiBOaWNvdWxhdWQgPGp1bGllbi5uaWNvdWxhdWRAZ21haWwuY29tPgotICogQHNpbmNlIDEuMwotICogQHNlZSBNYXJrZG93blRvRG94aWFIdG1sU2VyaWFsaXplcgorICogQHNpbmNlIDEuOAogICovCiBAQ29tcG9uZW50KCByb2xlID0gUGFyc2VyLmNsYXNzLCBoaW50ID0gIm1hcmtkb3duIiApCiBwdWJsaWMgY2xhc3MgTWFya2Rvd25QYXJzZXIKLSAgICBleHRlbmRzIEFic3RyYWN0UGFyc2VyCisgICAgICAgIGV4dGVuZHMgQWJzdHJhY3RQYXJzZXIKIHsKIAogICAgIC8qKgpAQCAtNjcsMjQgKzY5LDE2IEBACiAgICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgUk9MRV9ISU5UID0gIm1hcmtkb3duIjsKIAogICAgIC8qKgotICAgICAqIFRoZSB7QGxpbmsgUGVnRG93blByb2Nlc3Nvcn0gdXNlZCB0byBjb252ZXJ0IFBlZ2Rvd24gZG9jdW1lbnRzIHRvIEhUTUwuCi0gICAgICogQGRlcHJlY2F0ZWQgdGhpcyBpcyBub3QgdGhyZWFkc2FmZSwgY3JlYXRlIGFsd2F5cyBhIG5ldyBvbmUgb3Igc3luYyBhcHByb3ByaWF0ZWx5Ci0gICAgICovCi0gICAgQERlcHJlY2F0ZWQKLSAgICBwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIFBlZ0Rvd25Qcm9jZXNzb3IgUEVHRE9XTl9QUk9DRVNTT1IgPQotICAgICAgICBuZXcgUGVnRG93blByb2Nlc3NvciggRXh0ZW5zaW9ucy5BTEwgJiB+RXh0ZW5zaW9ucy5IQVJEV1JBUFMsIExvbmcuTUFYX1ZBTFVFICk7Ci0KLSAgICAvKioKICAgICAgKiBSZWdleCB0aGF0IGlkZW50aWZpZXMgYSBtdWx0aW1hcmtkb3duLXN0eWxlIG1ldGFkYXRhIHNlY3Rpb24gYXQgdGhlIHN0YXJ0IG9mIHRoZSBkb2N1bWVudAogICAgICAqLwogICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBNVUxUSV9NQVJLRE9XTl9NRVRBREFUQV9TRUNUSU9OID0KLSAgICAgICAgIl4oKCg/OlteXFxzOl1bXjpdKik6KD86LiooPzpccj9cblxccHtCbGFua30rW15cXHNdLiopKlxyP1xuKSkrKSg/Olxccypccj9cbikiOworICAgICAgICAgICAgIl4oKCg/OlteXFxzOl1bXjpdKik6KD86LiooPzpccj9cblxccHtCbGFua30rW15cXHNdLiopKlxyP1xuKSkrKSg/Olxccypccj9cbikiOwogCiAgICAgLyoqCiAgICAgICogUmVnZXggdGhhdCBjYXB0dXJlcyB0aGUga2V5IGFuZCB2YWx1ZSBvZiBhIG11bHRpbWFya2Rvd24tc3R5bGUgbWV0YWRhdGEgZW50cnkuCiAgICAgICovCiAgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE1VTFRJX01BUktET1dOX01FVEFEQVRBX0VOVFJZID0KLSAgICAgICAgIihbXlxcczpdW146XSopOiguKig/OlxyP1xuXFxwe0JsYW5rfStbXlxcc10uKikqKVxyP1xuIjsKKyAgICAgICAgICAgICIoW15cXHM6XVteOl0qKTooLiooPzpccj9cblxccHtCbGFua30rW15cXHNdLiopKilccj9cbiI7CiAKICAgICAvKioKICAgICAgKiBJbiBvcmRlciB0byBlbnN1cmUgdGhhdCB3ZSBoYXZlIG1pbmltYWwgcmlzayBvZiBmYWxzZSBwb3NpdGl2ZXMgd2hlbiBzbHVycGluZyBtZXRhZGF0YSBzZWN0aW9ucywgdGhlCkBAIC05Miw4ICs4Niw4IEBACiAgICAgICogaWdub3JlZC4KICAgICAgKi8KICAgICBwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmdbXSBTVEFOREFSRF9NRVRBREFUQV9LRVlTID0KLSAgICAgICAgeyAidGl0bGUiLCAiYXV0aG9yIiwgImRhdGUiLCAiYWRkcmVzcyIsICJhZmZpbGlhdGlvbiIsICJjb3B5cmlnaHQiLCAiZW1haWwiLCAia2V5d29yZHMiLCAibGFuZ3VhZ2UiLCAicGhvbmUiLAotICAgICAgICAgICAgInN1YnRpdGxlIiB9OworICAgICAgICAgICAgeyAidGl0bGUiLCAiYXV0aG9yIiwgImRhdGUiLCAiYWRkcmVzcyIsICJhZmZpbGlhdGlvbiIsICJjb3B5cmlnaHQiLCAiZW1haWwiLCAia2V5d29yZHMiLCAibGFuZ3VhZ2UiLAorICAgICAgICAgICAgICAgICAgICAicGhvbmUiLCAic3VidGl0bGUiIH07CiAKICAgICBwdWJsaWMgaW50IGdldFR5cGUoKQogICAgIHsKQEAgLTEwMSwxNCArOTUsMTQgQEAgcHVibGljIGludCBnZXRUeXBlKCkKICAgICB9CiAKICAgICBAUmVxdWlyZW1lbnQKLSAgICBwcml2YXRlIFBlZ0Rvd25IdG1sUGFyc2VyIHBhcnNlcjsKKyAgICBwcml2YXRlIE1hcmtkb3duSHRtbFBhcnNlciBwYXJzZXI7CiAKICAgICBwdWJsaWMgdm9pZCBwYXJzZSggUmVhZGVyIHNvdXJjZSwgU2luayBzaW5rICkKLSAgICAgICAgdGhyb3dzIFBhcnNlRXhjZXB0aW9uCisgICAgICAgICAgICB0aHJvd3MgUGFyc2VFeGNlcHRpb24KICAgICB7CiAgICAgICAgIHRyeQogICAgICAgICB7Ci0gICAgICAgICAgICAvLyBNYXJrZG93biB0byBIVE1MICh1c2luZyBQZWdkb3duIGxpYnJhcnkpCisgICAgICAgICAgICAvLyBNYXJrZG93biB0byBIVE1MICh1c2luZyBmbGV4bWFyay1qYXZhIGxpYnJhcnkpCiAgICAgICAgICAgICBTdHJpbmcgaHRtbCA9IHRvSHRtbCggc291cmNlICk7CiAgICAgICAgICAgICAvLyB0aGVuIEhUTUwgdG8gU2luayBBUEkKICAgICAgICAgICAgIHBhcnNlci5wYXJzZSggbmV3IFN0cmluZ1JlYWRlciggaHRtbCApLCBzaW5rICk7CkBAIC0xMjAsMTggKzExNCwzNSBAQCBwdWJsaWMgdm9pZCBwYXJzZSggUmVhZGVyIHNvdXJjZSwgU2luayBzaW5rICkKICAgICB9CiAKICAgICAvKioKLSAgICAgKiB1c2VzIFBlZ0Rvd24gbGlicmFyeSB0byBwYXJzZSBjb250ZW50IGFuZCBnZW5lcmF0ZSBIVE1MIG91dHB1dC4KKyAgICAgKiB1c2VzIGZsZXhtYXJrLWphdmEgbGlicmFyeSB0byBwYXJzZSBjb250ZW50IGFuZCBnZW5lcmF0ZSBIVE1MIG91dHB1dC4KICAgICAgKgogICAgICAqIEBwYXJhbSBzb3VyY2UgdGhlIE1hcmtkb3duIHNvdXJjZQotICAgICAqIEByZXR1cm4gSFRNTCBjb250ZW50IGdlbmVyYXRlZCBieSBQZWdEb3duCi0gICAgICogQHRocm93cyBJT0V4Y2VwdGlvbgotICAgICAqIEBzZWUgTWFya2Rvd25Ub0RveGlhSHRtbFNlcmlhbGl6ZXIKKyAgICAgKiBAcmV0dXJuIEhUTUwgY29udGVudCBnZW5lcmF0ZWQgYnkgZmxleG1hcmstamF2YQorICAgICAqIEB0aHJvd3MgSU9FeGNlcHRpb24gcGFzc2VkIHRocm91Z2gKICAgICAgKi8KICAgICBwcml2YXRlIFN0cmluZyB0b0h0bWwoIFJlYWRlciBzb3VyY2UgKQotICAgICAgICB0aHJvd3MgSU9FeGNlcHRpb24KKyAgICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbgogICAgIHsKICAgICAgICAgU3RyaW5nIHRleHQgPSBJT1V0aWwudG9TdHJpbmcoIHNvdXJjZSApOwotICAgICAgICBTdHJpbmdCdWlsZGVyIGh0bWwgPSBuZXcgU3RyaW5nQnVpbGRlciggdGV4dC5sZW5ndGgoKSAqIDIgKTsKKyAgICAgICAgTXV0YWJsZURhdGFIb2xkZXIgZmxleG1hcmtPcHRpb25zID0gUGVnZG93bk9wdGlvbnNBZGFwdGVyLmZsZXhtYXJrT3B0aW9ucygKKyAgICAgICAgICAgICAgICBFeHRlbnNpb25zLkFMTCAmIH4oIEV4dGVuc2lvbnMuSEFSRFdSQVBTIHwgRXh0ZW5zaW9ucy5BTkNIT1JMSU5LUyApICkudG9NdXRhYmxlKCk7CisgICAgICAgIEFycmF5TGlzdDxFeHRlbnNpb24+IGV4dGVuc2lvbnMgPSBuZXcgQXJyYXlMaXN0PEV4dGVuc2lvbj4oKTsKKyAgICAgICAgZm9yICggRXh0ZW5zaW9uIGV4dGVuc2lvbiA6IGZsZXhtYXJrT3B0aW9ucy5nZXQoIGNvbS52bGFkc2NoLmZsZXhtYXJrLnBhcnNlci5QYXJzZXIuRVhURU5TSU9OUyApICkKKyAgICAgICAgeworICAgICAgICAgICAgZXh0ZW5zaW9ucy5hZGQoIGV4dGVuc2lvbiApOworICAgICAgICB9CisKKyAgICAgICAgZXh0ZW5zaW9ucy5hZGQoIE1hcmtkb3duRG94aWFFeHRlbnNpb24uY3JlYXRlKCkgKTsKKyAgICAgICAgZmxleG1hcmtPcHRpb25zLnNldCggY29tLnZsYWRzY2guZmxleG1hcmsucGFyc2VyLlBhcnNlci5FWFRFTlNJT05TLCBleHRlbnNpb25zICk7CisgICAgICAgIGZsZXhtYXJrT3B0aW9ucy5zZXQoIEh0bWxSZW5kZXJlci5IVE1MX0JMT0NLX09QRU5fVEFHX0VPTCwgZmFsc2UgKTsKKyAgICAgICAgZmxleG1hcmtPcHRpb25zLnNldCggSHRtbFJlbmRlcmVyLkhUTUxfQkxPQ0tfQ0xPU0VfVEFHX0VPTCwgZmFsc2UgKTsKKyAgICAgICAgZmxleG1hcmtPcHRpb25zLnNldCggSHRtbFJlbmRlcmVyLk1BWF9UUkFJTElOR19CTEFOS19MSU5FUywgLTEgKTsKKworICAgICAgICBjb20udmxhZHNjaC5mbGV4bWFyay5wYXJzZXIuUGFyc2VyIHBhcnNlciA9IGNvbS52bGFkc2NoLmZsZXhtYXJrLnBhcnNlci5QYXJzZXIuYnVpbGRlciggZmxleG1hcmtPcHRpb25zICkKKyAgICAgICAgICAgICAgICAuYnVpbGQoKTsKKyAgICAgICAgSHRtbFJlbmRlcmVyIHJlbmRlcmVyID0gSHRtbFJlbmRlcmVyLmJ1aWxkZXIoIGZsZXhtYXJrT3B0aW9ucyApLmJ1aWxkKCk7CisKKyAgICAgICAgU3RyaW5nQnVpbGRlciBodG1sID0gbmV3IFN0cmluZ0J1aWxkZXIoIDEwMDAgKTsKICAgICAgICAgaHRtbC5hcHBlbmQoICI8aHRtbD4iICk7CiAgICAgICAgIGh0bWwuYXBwZW5kKCAiPGhlYWQ+IiApOwogICAgICAgICBQYXR0ZXJuIG1ldGFkYXRhUGF0dGVybiA9IFBhdHRlcm4uY29tcGlsZSggTVVMVElfTUFSS0RPV05fTUVUQURBVEFfU0VDVElPTiwgUGF0dGVybi5NVUxUSUxJTkUgKTsKQEAgLTE5Niw3NiArMjA3LDQ5IEBAIGVsc2UgaWYgKCAiZGF0ZSIuZXF1YWxzSWdub3JlQ2FzZSgga2V5ICkgKQogICAgICAgICAgICAgICAgIHRleHQgPSB0ZXh0LnN1YnN0cmluZyggbWV0YWRhdGFNYXRjaGVyLmVuZCgpICk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgUGVnRG93blByb2Nlc3NvciBwcm9jZXNzb3IgPSBuZXcgUGVnRG93blByb2Nlc3NvciggRXh0ZW5zaW9ucy5BTEwgJiB+RXh0ZW5zaW9ucy5IQVJEV1JBUFMsIExvbmcuTUFYX1ZBTFVFICk7Ci0gICAgICAgIFJvb3ROb2RlIHJvb3ROb2RlID0gcHJvY2Vzc29yLnBhcnNlTWFya2Rvd24oIHRleHQudG9DaGFyQXJyYXkoKSApOwotICAgICAgICBpZiAoICFoYXZlVGl0bGUgJiYgcm9vdE5vZGUuZ2V0Q2hpbGRyZW4oKS5zaXplKCkgPiAwICkKKworICAgICAgICBOb2RlIHJvb3ROb2RlID0gcGFyc2VyLnBhcnNlKCB0ZXh0ICk7CisgICAgICAgIFN0cmluZyBtYXJrZG93bkh0bWwgPSByZW5kZXJlci5yZW5kZXIoIHJvb3ROb2RlICk7CisKKyAgICAgICAgaWYgKCAhaGF2ZVRpdGxlICYmIHJvb3ROb2RlLmhhc0NoaWxkcmVuKCkgKQogICAgICAgICB7CiAgICAgICAgICAgICAvLyB1c2UgdGhlIGZpcnN0IChub24tY29tbWVudCkgbm9kZSBvbmx5IGlmIGl0IGlzIGEgaGVhZGluZwotICAgICAgICAgICAgaW50IGkgPSAwOwotICAgICAgICAgICAgTm9kZSBmaXJzdE5vZGUgPSBudWxsOwotICAgICAgICAgICAgd2hpbGUgKCBpIDwgcm9vdE5vZGUuZ2V0Q2hpbGRyZW4oKS5zaXplKCkgJiYgaXNIdG1sQ29tbWVudCgKLSAgICAgICAgICAgICAgICAoIGZpcnN0Tm9kZSA9IHJvb3ROb2RlLmdldENoaWxkcmVuKCkuZ2V0KCBpICkgKSApICkKKyAgICAgICAgICAgIE5vZGUgZmlyc3ROb2RlID0gcm9vdE5vZGUuZ2V0Rmlyc3RDaGlsZCgpOworICAgICAgICAgICAgd2hpbGUgKCBmaXJzdE5vZGUgIT0gbnVsbCAmJiAhKCBmaXJzdE5vZGUgaW5zdGFuY2VvZiBIZWFkaW5nICkgKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGkrKzsKKyAgICAgICAgICAgICAgICBpZiAoICEoIGZpcnN0Tm9kZSBpbnN0YW5jZW9mIEh0bWxDb21tZW50QmxvY2sgKSApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZmlyc3ROb2RlID0gZmlyc3ROb2RlLmdldE5leHQoKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICggZmlyc3ROb2RlIGluc3RhbmNlb2YgSGVhZGVyTm9kZSApCisKKyAgICAgICAgICAgIGlmICggZmlyc3ROb2RlIGluc3RhbmNlb2YgSGVhZGluZyApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgaHRtbC5hcHBlbmQoICI8dGl0bGU+IiApOwotICAgICAgICAgICAgICAgIGh0bWwuYXBwZW5kKCBTdHJpbmdFc2NhcGVVdGlscy5lc2NhcGVYbWwoIG5vZGVUZXh0KCBmaXJzdE5vZGUgKSApICk7CisgICAgICAgICAgICAgICAgVGV4dENvbGxlY3RpbmdWaXNpdG9yIGNvbGxlY3RpbmdWaXNpdG9yID0gbmV3IFRleHRDb2xsZWN0aW5nVmlzaXRvcigpOworICAgICAgICAgICAgICAgIFN0cmluZyBoZWFkaW5nVGV4dCA9IGNvbGxlY3RpbmdWaXNpdG9yLmNvbGxlY3RBbmRHZXRUZXh0KCBmaXJzdE5vZGUgKTsKKyAgICAgICAgICAgICAgICBodG1sLmFwcGVuZCggU3RyaW5nRXNjYXBlVXRpbHMuZXNjYXBlWG1sKCBoZWFkaW5nVGV4dCApICk7CiAgICAgICAgICAgICAgICAgaHRtbC5hcHBlbmQoICI8L3RpdGxlPiIgKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBodG1sLmFwcGVuZCggIjwvaGVhZD4iICk7CiAgICAgICAgIGh0bWwuYXBwZW5kKCAiPGJvZHk+IiApOwotICAgICAgICBodG1sLmFwcGVuZCggbmV3IE1hcmtkb3duVG9Eb3hpYUh0bWxTZXJpYWxpemVyKCkudG9IdG1sKCByb290Tm9kZSApICk7CisgICAgICAgIGh0bWwuYXBwZW5kKCBtYXJrZG93bkh0bWwgKTsKICAgICAgICAgaHRtbC5hcHBlbmQoICI8L2JvZHk+IiApOwogICAgICAgICBodG1sLmFwcGVuZCggIjwvaHRtbD4iICk7CiAKICAgICAgICAgcmV0dXJuIGh0bWwudG9TdHJpbmcoKTsKICAgICB9CiAKLSAgICBwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNIdG1sQ29tbWVudCggTm9kZSBub2RlICkKLSAgICB7Ci0gICAgICAgIGlmICggbm9kZSBpbnN0YW5jZW9mIEh0bWxCbG9ja05vZGUgKQotICAgICAgICB7Ci0gICAgICAgICAgICBIdG1sQmxvY2tOb2RlIGJsb2NrTm9kZSA9IChIdG1sQmxvY2tOb2RlKSBub2RlOwotICAgICAgICAgICAgcmV0dXJuIGJsb2NrTm9kZS5nZXRUZXh0KCkuc3RhcnRzV2l0aCggIjwhLS0iICk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIHB1YmxpYyBzdGF0aWMgU3RyaW5nIG5vZGVUZXh0KCBOb2RlIG5vZGUgKQotICAgIHsKLSAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKLSAgICAgICAgaWYgKCBub2RlIGluc3RhbmNlb2YgVGV4dE5vZGUgKQotICAgICAgICB7Ci0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZCggVGV4dE5vZGUuY2xhc3MuY2FzdCggbm9kZSApLmdldFRleHQoKSApOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UKLSAgICAgICAgewotICAgICAgICAgICAgZm9yICggTm9kZSBuIDogbm9kZS5nZXRDaGlsZHJlbigpICkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBpZiAoIG4gaW5zdGFuY2VvZiBUZXh0Tm9kZSApCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCggVGV4dE5vZGUuY2xhc3MuY2FzdCggbiApLmdldFRleHQoKSApOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBlbHNlIGlmICggbiBpbnN0YW5jZW9mIFN1cGVyTm9kZSApCi0gICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCggbm9kZVRleHQoIG4gKSApOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOwotICAgIH0KLQogICAgIC8qKgotICAgICAqIEludGVybmFsIHBhcnNlciBmb3IgSFRNTCBnZW5lcmF0ZWQgYnkgUGVnRG93biBsaWJyYXJ5LgorICAgICAqIEludGVybmFsIHBhcnNlciBmb3IgSFRNTCBnZW5lcmF0ZWQgYnkgZmxleG1hcmstamF2YSBsaWJyYXJ5LgogICAgICAqLwotICAgIEBDb21wb25lbnQoIHJvbGUgPSBQZWdEb3duSHRtbFBhcnNlci5jbGFzcyApCi0gICAgcHVibGljIHN0YXRpYyBjbGFzcyBQZWdEb3duSHRtbFBhcnNlcgotICAgICAgICBleHRlbmRzIFhodG1sUGFyc2VyCisgICAgQENvbXBvbmVudCggcm9sZSA9IE1hcmtkb3duSHRtbFBhcnNlci5jbGFzcyApCisgICAgcHVibGljIHN0YXRpYyBjbGFzcyBNYXJrZG93bkh0bWxQYXJzZXIKKyAgICAgICAgICAgIGV4dGVuZHMgWGh0bWxQYXJzZXIKICAgICB7Ci0gICAgICAgIHB1YmxpYyBQZWdEb3duSHRtbFBhcnNlcigpCisgICAgICAgIHB1YmxpYyBNYXJrZG93bkh0bWxQYXJzZXIoKQogICAgICAgICB7CiAgICAgICAgICAgICBzdXBlcigpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9kb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS1tYXJrZG93bi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vZG94aWEvbW9kdWxlL21hcmtkb3duL01hcmtkb3duVG9Eb3hpYUh0bWxTZXJpYWxpemVyLmphdmEgYi9kb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS1tYXJrZG93bi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vZG94aWEvbW9kdWxlL21hcmtkb3duL01hcmtkb3duVG9Eb3hpYUh0bWxTZXJpYWxpemVyLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyNDIzOTk2Li4wMDAwMDAwMAotLS0gYS9kb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS1tYXJrZG93bi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vZG94aWEvbW9kdWxlL21hcmtkb3duL01hcmtkb3duVG9Eb3hpYUh0bWxTZXJpYWxpemVyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi1wYWNrYWdlIG9yZy5hcGFjaGUubWF2ZW4uZG94aWEubW9kdWxlLm1hcmtkb3duOwotCi0vKgotICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQotICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCi0gKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgotICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQotICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQotICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQotICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotICoKLSAqICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0gKgotICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAotICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KLSAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQotICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCi0gKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCi0gKiB1bmRlciB0aGUgTGljZW5zZS4KLSAqLwotCi1pbXBvcnQgb3JnLnBlZ2Rvd24uTGlua1JlbmRlcmVyOwotaW1wb3J0IG9yZy5wZWdkb3duLlRvSHRtbFNlcmlhbGl6ZXI7Ci1pbXBvcnQgb3JnLnBlZ2Rvd24uYXN0LlZlcmJhdGltTm9kZTsKLQotLyoqCi0gKiBDdXN0b20gTWFya2Rvd24gdG8gSFRNTCBzZXJpYWxpemF0aW9uIHN0cmF0ZWd5IHRoYXQgYmV0dGVyIG1hdGNoZXMgdGhlCi0gKiBjb252ZW50aW9ucyBvZiBleGlzdGluZyBEb3hpYSBtb2R1bGVzLgotICoKLSAqIEBhdXRob3IgQnJpYW4gRmVycmlzIChiZGZlcnJpc0Bnb29nbGUuY29tKQotICovCi1wdWJsaWMgY2xhc3MgTWFya2Rvd25Ub0RveGlhSHRtbFNlcmlhbGl6ZXIKLSAgICBleHRlbmRzIFRvSHRtbFNlcmlhbGl6ZXIKLXsKLSAgICBwdWJsaWMgTWFya2Rvd25Ub0RveGlhSHRtbFNlcmlhbGl6ZXIoKQotICAgIHsKLSAgICAgICAgc3VwZXIoIG5ldyBMaW5rUmVuZGVyZXIoKSApOwotICAgIH0KLQotICAgIC8qKgotICAgICAqIHtAaW5oZXJpdERvY30KLSAgICAgKi8KLSAgICBAT3ZlcnJpZGUKLSAgICBwdWJsaWMgdm9pZCB2aXNpdCggVmVyYmF0aW1Ob2RlIG5vZGUgKQotICAgIHsKLSAgICAgICAgLy8gUGVnZG93biByZW5kZXJzIHZlcmJhdGltIGFzICI8cHJlPjxjb2RlPiIsIGJ1dCBEb3hpYSBiYXNlIFhodG1sIFNpbmsgcmVuZGVycyBhcyAiPGRpdiBjbGFzcz0uLj48cHJlPiIKLSAgICAgICAgLy8gc2VlIFhodG1sQmFzZVNpbmsudmVyYmF0aW0oU2lua0V2ZW50QXR0cmlidXRlcykgaW1wbGVtZW50YXRpb24KLSAgICAgICAgcHJpbnRlci5wcmludGxuKCkucHJpbnQoICI8ZGl2IGNsYXNzPVwic291cmNlXCI+PHByZT4iICk7Ci0gICAgICAgIFN0cmluZyB0ZXh0ID0gbm9kZS5nZXRUZXh0KCk7Ci0gICAgICAgIC8vIHByaW50IEhUTUwgYnJlYWtzIGZvciBhbGwgaW5pdGlhbCBuZXdsaW5lcwotICAgICAgICB3aGlsZSAoIHRleHQuY2hhckF0KCAwICkgPT0gJ1xuJyApCi0gICAgICAgIHsKLSAgICAgICAgICAgIHByaW50ZXIucHJpbnQoICI8YnIvPiIgKTsKLSAgICAgICAgICAgIHRleHQgPSB0ZXh0LnN1YnN0cmluZyggMSApOwotICAgICAgICB9Ci0gICAgICAgIHByaW50ZXIucHJpbnRFbmNvZGVkKCB0ZXh0ICk7Ci0gICAgICAgIHByaW50ZXIucHJpbnQoICI8L3ByZT48L2Rpdj4iICk7Ci0gICAgfQotfQpkaWZmIC0tZ2l0IGEvZG94aWEtbW9kdWxlcy9kb3hpYS1tb2R1bGUtbWFya2Rvd24vc3JjL3NpdGUvYXB0L2luZGV4LmFwdCBiL2RveGlhLW1vZHVsZXMvZG94aWEtbW9kdWxlLW1hcmtkb3duL3NyYy9zaXRlL2FwdC9pbmRleC5hcHQKaW5kZXggMmNkNGQ3NzQuLmNmMDZmYTQ2IDEwMDY0NAotLS0gYS9kb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS1tYXJrZG93bi9zcmMvc2l0ZS9hcHQvaW5kZXguYXB0CisrKyBiL2RveGlhLW1vZHVsZXMvZG94aWEtbW9kdWxlLW1hcmtkb3duL3NyYy9zaXRlL2FwdC9pbmRleC5hcHQKQEAgLTEsOSArMSw5IEBACiAgLS0tLS0KICBkb3hpYS1tb2R1bGUtbWFya2Rvd24KICAtLS0tLQotIEp1bGllbiBOaWNvdWxhdWQgPGp1bGllbi5uaWNvdWxhdWRAZ21haWwuY29tPgorIFZsYWRpbWlyIFNjaG5laWRlciA8dmxhZGltaXJAdmxhZHNjaC5jb20+LCBKdWxpZW4gTmljb3VsYXVkIDxqdWxpZW4ubmljb3VsYXVkQGdtYWlsLmNvbT4KICAtLS0tLS0KLSAyMDExLTA1LTI4CisgMjAxNy0wMy0wNAogIC0tLS0tLQogCiB+fiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCkBAIC0zMiw3ICszMiwzMSBAQCBkb3hpYS1tb2R1bGUtbWFya2Rvd24KICAgSXQgaXMgc3VwcG9ydGVkIGJ5IGEgbGFyZ2UgcGFuZWwgb2Ygd2Vic2l0ZXMsIHRleHQgZWRpdG9ycy9JREVzIGFuZCBjb252ZXJ0ZXIgdG9vbHMuCiAgIE1hcmtkb3duIGZvcm1hdCBpcyBvbmx5IHN1cHBvcnRlZCBhcyBEb3hpYSBzb3VyY2UgZm9ybWF0LgogCi0gIDw8UmVmZXJlbmNlcz4+CisqIE5vdGljZQorCisgIFRoaXMgRG94aWEgbW9kdWxlIHJlcXVpcmVzIEphdmEgNyBmb3Ige3t7aHR0cDovL2dpdGh1Yi5jb20vdnNjaC9mbGV4bWFyay1qYXZhfWZsZXhtYXJrLWphdmF9fSBwYXJzZXIsCisgIHVubGlrZSBvdGhlciBEb3hpYSBtb2R1bGVzIHdoaWNoIHJlcXVpcmUgb25seSBKYXZhIDYuCisKKyAgSWYgeW91ciBwcm9qZWN0IHJlcXVpcmVzIEphdmEgNiB0byBsYXVuY2ggTWF2ZW4sIHlvdSBtYXkgY29uc2lkZXIgdGhlIHVzZSBvZiBkb3hpYS1tb2R1bGUtbWFya2Rvd24gdmVyc2lvbiAxLjcuCisKKystLS0tKworICA8cGx1Z2luPgorICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KKyAgICA8YXJ0aWZhY3RJZD5tYXZlbi1zaXRlLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4uZG94aWE8L2dyb3VwSWQ+CisgICAgICAgIDxhcnRpZmFjdElkPmRveGlhLW1vZHVsZS1tYXJrZG93bjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgPHZlcnNpb24+MS43PC92ZXJzaW9uPjwhLS0gdG8ga2VlcCBKYXZhIDYgY29tcGF0aWJpbGl0eS0tPgorICAgICAgPC9kZXBlbmRlbmN5PgorICAgIDwvZGVwZW5kZW5jaWVzPgorICA8L3BsdWdpbj4KKystLS0tKworICAKKyAgSW4gdGhpcyBzaXR1YXRpb24sIHlvdSBzaG91bGQgYmUgYXdhcmUgdGhhdCBQZWdkb3duIGhhcyBrbm93biB0ZWNobmljYWwgaXNzdWVzIGFuZCB0aGF0CisgIHt7e2h0dHA6Ly9wZWdkb3duLm9yZ30iUGVnZG93biBoYXMgcmVhY2hlZCBpdHMgZW5kIG9mIGxpZmUifX0uCisKKyogUmVmZXJlbmNlcwogCiAgICAqIHt7e2h0dHA6Ly9kYXJpbmdmaXJlYmFsbC5uZXQvcHJvamVjdHMvbWFya2Rvd259TWFya2Rvd24gcHJvamVjdCB3ZWJzaXRlfX0KIApAQCAtNDAsNCArNjQsOCBAQCBkb3hpYS1tb2R1bGUtbWFya2Rvd24KIAogICAgKiB7e3todHRwOi8veGJldGEub3JnL3dpa2kvc2hvdy9NYXJrZG93bn1NYXJrZG93biB3aWtpfX0KIAotICAgKiB7e3todHRwOi8vcGVnZG93bi5vcmd9UGVnZG93bn19LCB0aGUgbGlicmFyeSB1c2VkIGJ5IHRoaXMgRG94aWEgbW9kdWxlCisgICAqIHt7e2h0dHA6Ly9naXRodWIuY29tL3ZzY2gvZmxleG1hcmstamF2YX1mbGV4bWFyay1qYXZhfX0sIHRoZSBsaWJyYXJ5IHVzZWQgYnkgdGhpcyBEb3hpYSBtb2R1bGUKKyAgICAgaW4ge3t7aHR0cDovL3BlZ2Rvd24ub3JnfVBlZ2Rvd259fSBjb21wYXRpYmlsaXR5IG1vZGUKKworICAgKiB7e3todHRwOi8vcGVnZG93bi5vcmd9UGVnZG93bn19IGEgZGVwcmVjYXRlZCBNYXJrZG93biBwcm9jZXNzaW5nIGxpYnJhcnkgdXNlZCBpbiBwcmV2aW91cworICAgICBkb3hpYS1tb2R1bGUtbWFya2Rvd24gdmVyc2lvbnMgMS4zIHRvIDEuNwpkaWZmIC0tZ2l0IGEvZG94aWEtbW9kdWxlcy9kb3hpYS1tb2R1bGUtbWFya2Rvd24vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL2RveGlhL21vZHVsZS9tYXJrZG93bi9NYXJrZG93blBhcnNlclRlc3QuamF2YSBiL2RveGlhLW1vZHVsZXMvZG94aWEtbW9kdWxlLW1hcmtkb3duL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9tYXZlbi9kb3hpYS9tb2R1bGUvbWFya2Rvd24vTWFya2Rvd25QYXJzZXJUZXN0LmphdmEKaW5kZXggYTlkMDdkNzYuLjNjYzRkZTQ4IDEwMDY0NAotLS0gYS9kb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS1tYXJrZG93bi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vZG94aWEvbW9kdWxlL21hcmtkb3duL01hcmtkb3duUGFyc2VyVGVzdC5qYXZhCisrKyBiL2RveGlhLW1vZHVsZXMvZG94aWEtbW9kdWxlLW1hcmtkb3duL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9tYXZlbi9kb3hpYS9tb2R1bGUvbWFya2Rvd24vTWFya2Rvd25QYXJzZXJUZXN0LmphdmEKQEAgLTE3Myw3ICsxNzMsNyBAQCBwdWJsaWMgdm9pZCB0ZXN0TGlzdFNpbmtFdmVudCgpCiAgICAgewogICAgICAgICBJdGVyYXRvcjxTaW5rRXZlbnRFbGVtZW50PiBpdCA9IHBhcnNlRmlsZVRvRXZlbnRUZXN0aW5nU2luayggImxpc3QiICkuZ2V0RXZlbnRMaXN0KCkuaXRlcmF0b3IoKTsKIAotICAgICAgICBhc3NlcnRFcXVhbHMoIGl0LCAiaGVhZCIsICJoZWFkXyIsICJib2R5IiwgImxpc3QiLCAidGV4dCIsICJsaXN0SXRlbSIsICJ0ZXh0IiwgImxpc3RJdGVtXyIsICJ0ZXh0IiwgImxpc3RJdGVtIiwgInRleHQiLAorICAgICAgICBhc3NlcnRFcXVhbHMoIGl0LCAiaGVhZCIsICJoZWFkXyIsICJib2R5IiwgImxpc3QiLCAidGV4dCIsICJsaXN0SXRlbSIsICJ0ZXh0IiwgImxpc3RJdGVtXyIsICJsaXN0SXRlbSIsICJ0ZXh0IiwKICAgICAgICAgICAgICAgICAgICAgICAibGlzdEl0ZW1fIiwgInRleHQiLCAibGlzdF8iLCAiYm9keV8iICk7CiAKICAgICAgICAgYXNzZXJ0RmFsc2UoIGl0Lmhhc05leHQoKSApOwpAQCAtMTg5LDcgKzE4OSw3IEBAIHB1YmxpYyB2b2lkIHRlc3ROdW1iZXJlZExpc3RTaW5rRXZlbnQoKQogICAgIHsKICAgICAgICAgSXRlcmF0b3I8U2lua0V2ZW50RWxlbWVudD4gaXQgPSBwYXJzZUZpbGVUb0V2ZW50VGVzdGluZ1NpbmsoICJudW1iZXJlZC1saXN0IiApLmdldEV2ZW50TGlzdCgpLml0ZXJhdG9yKCk7CiAKLSAgICAgICAgYXNzZXJ0RXF1YWxzKCBpdCwgImhlYWQiLCAiaGVhZF8iLCAiYm9keSIsICJudW1iZXJlZExpc3QiLCAidGV4dCIsICJudW1iZXJlZExpc3RJdGVtIiwgInRleHQiLCAibnVtYmVyZWRMaXN0SXRlbV8iLCAidGV4dCIsCisgICAgICAgIGFzc2VydEVxdWFscyggaXQsICJoZWFkIiwgImhlYWRfIiwgImJvZHkiLCAibnVtYmVyZWRMaXN0IiwgInRleHQiLCAibnVtYmVyZWRMaXN0SXRlbSIsICJ0ZXh0IiwgIm51bWJlcmVkTGlzdEl0ZW1fIiwKICAgICAgICAgICAgICAgICAgICAgICAibnVtYmVyZWRMaXN0SXRlbSIsICJ0ZXh0IiwgIm51bWJlcmVkTGlzdEl0ZW1fIiwgInRleHQiLCAibnVtYmVyZWRMaXN0XyIsICJib2R5XyIgKTsKIAogICAgICAgICBhc3NlcnRGYWxzZSggaXQuaGFzTmV4dCgpICk7CkBAIC0yNDEsNyArMjQxLDcgQEAgcHVibGljIHZvaWQgdGVzdENvbW1lbnRCZWZvcmVIZWFkaW5nU2lua0V2ZW50KCkKICAgICAgICAgSXRlcmF0b3I8U2lua0V2ZW50RWxlbWVudD4gaXQgPSBwYXJzZUZpbGVUb0V2ZW50VGVzdGluZ1NpbmsoICJjb21tZW50LWJlZm9yZS1oZWFkaW5nIiApLmdldEV2ZW50TGlzdCgpLml0ZXJhdG9yKCk7CiAKICAgICAgICAgLy8gTk9URTogSDEgaXMgcmVuZGVyZWQgYXMgInVua25vd24iIGFuZCBIMiBpcyAic2VjdGlvbjEiIChzZWUgRE9YSUEtMjAzKQotICAgICAgICBhc3NlcnRFcXVhbHMoIGl0LCAiaGVhZCIsICJ0aXRsZSIsICJ0ZXh0IiwgInRpdGxlXyIsICJoZWFkXyIsICJib2R5IiwgImNvbW1lbnQiLCAidW5rbm93biIsICJ0ZXh0IiwKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCBpdCwgImhlYWQiLCAidGl0bGUiLCAidGV4dCIsICJ0aXRsZV8iLCAiaGVhZF8iLCAiYm9keSIsICJjb21tZW50IiwgInRleHQiLCAidW5rbm93biIsICJ0ZXh0IiwKICAgICAgICAgICAgICAgICAgICAgICAidW5rbm93biIsICJwYXJhZ3JhcGgiLCAidGV4dCIsICJsaW5rIiwgInRleHQiLCAibGlua18iLCAidGV4dCIsICJwYXJhZ3JhcGhfIiwgImJvZHlfIiApOwogCiAgICAgICAgIGFzc2VydEZhbHNlKCBpdC5oYXNOZXh0KCkgKTsKQEAgLTMwNCw2ICszMDQsNiBAQCBwdWJsaWMgdm9pZCB0ZXN0VG9jTWFjcm8oKQogICAgICAgICAgICAgICAgICAgICAgICJib2R5IiwgImxpc3QiLAogICAgICAgICAgICAgICAgICAgICAgICJsaXN0SXRlbSIsICJsaW5rIiwgInRleHQiLCAibGlua18iLCAibGlzdEl0ZW1fIiwKICAgICAgICAgICAgICAgICAgICAgICAibGlzdEl0ZW0iLCAibGluayIsICJ0ZXh0IiwgImxpbmtfIiwgImxpc3RJdGVtXyIsCi0gICAgICAgICAgICAgICAgICAgICAgImxpc3RfIiwgInNlY3Rpb24xIiwgInNlY3Rpb24yIiApOworICAgICAgICAgICAgICAgICAgICAgICJsaXN0XyIsICJ0ZXh0IiwgInNlY3Rpb24xIiwgInNlY3Rpb24yIiApOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL2RveGlhLW1vZHVsZXMvZG94aWEtbW9kdWxlLW1hcmtkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9odG1sLWNvbnRlbnQubWQgYi9kb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS1tYXJrZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvaHRtbC1jb250ZW50Lm1kCmluZGV4IGUwZDc5NWEyLi5hYmQzM2E1NyAxMDA2NDQKLS0tIGEvZG94aWEtbW9kdWxlcy9kb3hpYS1tb2R1bGUtbWFya2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL2h0bWwtY29udGVudC5tZAorKysgYi9kb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS1tYXJrZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvaHRtbC1jb250ZW50Lm1kCkBAIC0xLDcgKzEsNiBAQAogCiA8ZGl2PgogPHA+PGI+RXhhbXBsZTwvYj4gaXMgYSA8Yj50ZXN0PC9iPiBvZiBtaXhpbmcgaHRtbCBhbmQgbWFya2Rvd24KLQogPC9wPgogPC9kaXY+CiAKQEAgLTE1LDQgKzE0LDQgQEAgU29tZSB0ZXh0CiA8dGFibGU+CiA8dHI+PHRoPmNvbHVtbjwvdGg+PC90cj4KIDx0cj48dGQ+ZGF0YTwvdGQ+PC90cj4KLTwvdGFibGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC90YWJsZT4KZGlmZiAtLWdpdCBhL2RveGlhLW1vZHVsZXMvZG94aWEtbW9kdWxlLW1hcmtkb3duL3NyYy90ZXN0L3Jlc291cmNlcy90ZXN0Lm1kIGIvZG94aWEtbW9kdWxlcy9kb3hpYS1tb2R1bGUtbWFya2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL3Rlc3QubWQKaW5kZXggYmMzYzBhMTQuLmVmMGJiNWEwIDEwMDY0NAotLS0gYS9kb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS1tYXJrZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvdGVzdC5tZAorKysgYi9kb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS1tYXJrZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvdGVzdC5tZApAQCAtMSw0NzM5ICsxLDQgQEAKIE1hcmtkb3duIHRlc3QgZG9jdW1lbnQKID09PT09PT09PT09PT09PT09PT09PT0KIAotVGhpcyBkb2N1bWVudCBhZ2dyZWdhdGVzIGFsbCB0ZXN0IGRvY3VtZW50cyBvZiB0aGUgUGVnZG93biBsaWJyYXJ5LCBpdCB3YXMgZ2VuZXJhdGVkIHRoaXMgd2F5OgotCi0gICAgZ2l0IGNsb25lIGdpdDovL2dpdGh1Yi5jb20vc2lydGhpYXMvcGVnZG93bi5naXQKLSAgICBmb3IgZG9jIGluIHBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzLyoqLyoubWQ7IGRvCi0gICAgICBlY2hvIC1lICJcblxuJGRvY1xuLS0tXG4iICA+PiB0ZXN0Lm1kCi0gICAgICBjYXQgIiRkb2MiICAgICAgICAgICAgICAgICA+PiB0ZXN0Lm1kCi0gICAgZG9uZQotCi1UaGVuIGV2ZXJ5IHRlc3QgZmFpbGluZyB3aXRoIERveGlhIGJlY2F1c2UgRG94aWEgaXMgbW9yZSBzdHJpY3QgYWJvdXQgSFRNTCBmb3JtYXR0aW5nIGhhcyBiZWVuIGRlbGV0ZWQuLi4KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9kb2NzLXBocC1tYXJrZG93bi10b2RvL0VtYWlsX2F1dG9fbGlua3MubWQKLS0tLQotCi08bWljaGVsLmZvcnRpbkBtaWNoZWxmLmNvbT4KLQotSW50ZXJuYXRpb25hbCBkb21haW4gbmFtZXM6IDxoZWxwQHQ/ZGFsaT8ubHY+Ci0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL2RvY3MtcGhwLW1hcmtkb3duLXRvZG8vRW1waGFzaXMubWQKLS0tLQotCi1Db21iaW5lZCBlbXBoYXNpczoKLQotMS4gICoqKnRlc3QgdGVzdCoqKgotMi4gIF9fX3Rlc3QgdGVzdF9fXwotMy4gICp0ZXN0ICoqdGVzdCoqKgotNC4gICoqdGVzdCAqdGVzdCoqKgotNS4gICoqKnRlc3QqIHRlc3QqKgotNi4gICoqKnRlc3QqKiB0ZXN0KgotNy4gICoqKnRlc3QqIHRlc3QqKgotOC4gICoqdGVzdCAqdGVzdCoqKgotOS4gICp0ZXN0ICoqdGVzdCoqKgotMTAuIF90ZXN0IF9fdGVzdF9fXwotMTEuIF9fdGVzdCBfdGVzdF9fXwotMTIuIF9fX3Rlc3RfIHRlc3RfXwotMTMuIF9fX3Rlc3RfXyB0ZXN0XwotMTQuIF9fX3Rlc3RfIHRlc3RfXwotMTUuIF9fdGVzdCBfdGVzdF9fXwotMTYuIF90ZXN0IF9fdGVzdF9fXwotCi0KLUluY29ycmVjdCBuZXN0aW5nOgotCi0xLiAgKnRlc3QgICoqdGVzdCogIHRlc3QqKgotMi4gIF90ZXN0ICBfX3Rlc3RfICB0ZXN0X18KLTMuICAqKnRlc3QgICp0ZXN0KiogdGVzdCoKLTQuICBfX3Rlc3QgIF90ZXN0X18gdGVzdF8KLTUuICAqdGVzdCAgICp0ZXN0KiAgdGVzdCoKLTYuICBfdGVzdCAgIF90ZXN0XyAgdGVzdF8KLTcuICAqKnRlc3QgKip0ZXN0KiogdGVzdCoqCi04LiAgX190ZXN0IF9fdGVzdF9fIHRlc3RfXwotCi0KLQotTm8gZW1waGFzaXM6Ci0KLTEuICB0ZXN0KiAgdGVzdCAgKnRlc3QKLTIuICB0ZXN0KiogdGVzdCAqKnRlc3QKLTMuICB0ZXN0XyAgdGVzdCAgX3Rlc3QKLTQuICB0ZXN0X18gdGVzdCBfX3Rlc3QKLQotCi0KLU1pZGRsZS13b3JkIGVtcGhhc2lzIChhc3Rlcmlza3MpOgotCi0xLiAgKmEqYgotMi4gICBhKmIqCi0zLiAgIGEqYipjCi00LiAqKmEqKmIKLTUuICAgYSoqYioqCi02LiAgIGEqKmIqKmMKLQotCi1NaWRkbGUtd29yZCBlbXBoYXNpcyAodW5kZXJzY29yZSk6Ci0KLTEuICBfYV9iCi0yLiAgIGFfYl8KLTMuICAgYV9iX2MKLTQuIF9fYV9fYgotNS4gICBhX19iX18KLTYuICAgYV9fYl9fYwotCi1teV9wcmVjaW91c19maWxlLnR4dAotCi0KLSMjIFRyaWNreSBDYXNlcwotCi1FKiouICoqVGVzdCoqIFRlc3RUZXN0VGVzdAotCi1FKiouICoqVGVzdCoqIFRlc3QgVGVzdCBUZXN0Ci0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvZG9jcy1waHAtbWFya2Rvd24tdG9kby9JbmxpbmVfSFRNTF8oU3BhbikubWQKLS0tLQotCi08YWJiciB0aXRsZT0iYCAqKkF0dHJpYnV0ZSBDb250ZW50IElzIE5vdCBBIENvZGUgU3BhbioqIGAiPkFDSU5BQ1M8L2FiYnI+Ci0KLTxhYmJyIHRpdGxlPSJgZmlyc3QgYmFja3RpY2shIj5TQjwvYWJicj4KLTxhYmJyIHRpdGxlPSJgc2Vjb25kIGJhY2t0aWNrISI+U0I8L2FiYnI+Ci0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL2RvY3MtcGhwLW1hcmtkb3duLXRvZG8vSW5zX2FuZF9kZWwubWQKLS0tLQotCi1IZXJlIGlzIGEgYmxvY2sgdGFnIGluczoKLQotPGlucz4KLTxwPlNvbWUgdGV4dDwvcD4KLTwvaW5zPgotCi08aW5zPkFuZCBoZXJlIGl0IGlzIGluc2lkZSBhIHBhcmFncmFwaC48L2lucz4KLQotQW5kIGhlcmUgaXQgaXMgPGlucz5pbiB0aGUgbWlkZGxlIG9mPC9pbnM+IGEgcGFyYWdyYXBoLgotCi08ZGVsPgotPHA+U29tZSB0ZXh0PC9wPgotPC9kZWw+Ci0KLTxkZWw+QW5kIGhlcmUgaXMgaW5zIGFzIGEgcGFyYWdyYXBoLjwvZGVsPgotCi1BbmQgaGVyZSBpdCBpcyA8ZGVsPmluIHRoZSBtaWRkbGUgb2Y8L2RlbD4gYSBwYXJhZ3JhcGguCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvZG9jcy1waHAtbWFya2Rvd24tdG9kby9MaW5rc19pbmxpbmVfc3R5bGUubWQKLS0tLQotCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvZG9jcy1waHAtbWFya2Rvd24tdG9kby9OZXN0aW5nLm1kCi0tLS0KLQotVmFsaWQgbmVzdGluZzoKLQotKipbTGlua10odXJsKSoqCi0KLVsqKkxpbmsqKl0odXJsKQotCi0qKlsqKkxpbmsqKl0odXJsKSoqCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvZG9jcy1waHAtbWFya2Rvd24tdG9kby9QYXJlbnNfaW5fVVJMLm1kCi0tLS0KLQotW0lubGluZSBsaW5rIDEgd2l0aCBwYXJlbnNdKC91cmxcKHRlc3RcKSAidGl0bGUiKS4KLQotW0lubGluZSBsaW5rIDIgd2l0aCBwYXJlbnNdKDwvdXJsXCh0ZXN0XCk+ICJ0aXRsZSIpLgotCi1bSW5saW5lIGxpbmsgMyB3aXRoIG5vbi1lc2NhcGVkIHBhcmVuc10oL3VybCh0ZXN0KSAidGl0bGUiKS4KLQotW0lubGluZSBsaW5rIDQgd2l0aCBub24tZXNjYXBlZCBwYXJlbnNdKDwvdXJsKHRlc3QpPiAidGl0bGUiKS4KLQotW1JlZmVyZW5jZSBsaW5rIDEgd2l0aCBwYXJlbnNdWzFdLgotCi1bUmVmZXJlbmNlIGxpbmsgMiB3aXRoIHBhcmVuc11bMl0uCi0KLSAgWzFdOiAvdXJsKHRlc3QpICJ0aXRsZSIKLSAgWzJdOiA8L3VybCh0ZXN0KT4gInRpdGxlIgotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL2RvY3MtcHl0aG9ubWFya2Rvd24yL2F1dG9fbGluay5tZAotLS0tCi0KLUkgY2FuIGhhcyBhdXRvbGluaz8gPGh0dHA6Ly9pY2FuaGFzY2hlZXNlYnVyZ2VyLmNvbT4KLQotQXNrIGdhcmZpZWxkOiA8Z2FyZmllbGRAZXhhbXBsZS5jb20+Ci0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvZG9jcy1weXRob25tYXJrZG93bjIvYXV0b19saW5rX3NhZmVfbW9kZS5tZAotLS0tCi0KLUkgY2FuIGhhcyBhdXRvbGluaz8gPGh0dHA6Ly9pY2FuaGFzY2hlZXNlYnVyZ2VyLmNvbT4KLQotQXNrIGdhcmZpZWxkOiA8Z2FyZmllbGRAZXhhbXBsZS5jb20+Ci0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvZG9jcy1weXRob25tYXJrZG93bjIvYmFzaWNfc2FmZV9tb2RlX2VzY2FwZS5tZAotLS0tCi0KLWJsYWggPGltZyBzcmM9ImRhbmdlcm91cyIvPiBibGFoCi0KLTxkaXY+eW93emVyITwvZGl2PgotCi1ibGFoCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvZG9jcy1weXRob25tYXJrZG93bjIvYmFzaWNfc2FmZV9tb2RlLm1kCi0tLS0KLQotYmxhaCA8aW1nIHNyYz0iZGFuZ2Vyb3VzIi8+IGJsYWgKLQotPGRpdj55b3d6ZXIhPC9kaXY+Ci0KLWJsYWgKLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9kb2NzLXB5dGhvbm1hcmtkb3duMi9ibG9ja3F1b3RlLm1kCi0tLS0KLQotW1RyZW50IHdyb3RlXQotPiBubyB3YXkKLQotW0plZmYgd3JvdGVdCi0+IHdheQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL2RvY3MtcHl0aG9ubWFya2Rvd24yL2Jsb2NrcXVvdGVfd2l0aF9wcmUubWQKLS0tLQotCi0+IE1hcmtkb3duIGluZGVudHMgYmxvY2txdW90ZXMgYSBjb3VwbGUgb2Ygc3BhY2VzCi0+IG5lY2Vzc2l0YXRpbmcgc29tZSB0d2Vha3MgZm9yIHByZS1ibG9ja3MgaW4gdGhhdAotPiBibG9ja3F1b3RlOgotPgotPiAgICAgaGVyZSBpcyBhIGNoZWNrCi0+ICAgICBmb3IgdGhhdAotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL2RvY3MtcHl0aG9ubWFya2Rvd24yL2NvZGVibG9jay5tZAotLS0tCi0KLSAgICBzb21lIGNvZGUKLQotc29tZSAnc3BsYWluaW5nCi0KLSAgICBzb21lIG1vcmUgY29kZQotICAgIDIgPiAxCi0KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9kb2NzLXB5dGhvbm1hcmtkb3duMi9jb2RlX2Jsb2NrX3dpdGhfdGFicy5tZAotLS0tCi0KLVRlc3Qgd2l0aCB0YWJzIGZvciBgX0RldGFiYDoKLQotCUNvZGUJJ2Jsb2NrJwl3aXRoCXNvbWUJInRhYnMiCWFuZAkicXVvdGVzIgotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL2RvY3MtcHl0aG9ubWFya2Rvd24yL2NvZGVfc2FmZV9lbXBoYXNpcy5tZAotLS0tCi0KLVRoaXMgaXMgKml0YWxpYyogYW5kIHRoaXMgaXMgKipib2xkKiouCi1UaGlzIGlzIE5PVCBfaXRhbGljXyBhbmQgdGhpcyBpcyBfX2JvbGRfXyBiZWNhdXNlIC0tY29kZS1zYWZlIGlzIHR1cm5lZCBvbi4KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9kb2NzLXB5dGhvbm1hcmtkb3duMi9jb2Rlc3BhbnMubWQKLS0tLQotCi1gVGhpc2AgaXMgYSBjb2RlIHNwYW4uCi1BbmQgYGBUaGlzIGlzIG9uZSB3aXRoIGFuIGBlbWJlZGRlZCBiYWNrdGlja2AgYGAuCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvZG9jcy1weXRob25tYXJrZG93bjIvY29kZXNwYW5zX3NhZmVfbW9kZS5tZAotLS0tCi0KLWBUaGlzYCBpcyBhIGNvZGUgc3Bhbi4KLUFuZCBgYFRoaXMgaXMgb25lIHdpdGggYW4gYGVtYmVkZGVkIGJhY2t0aWNrYCBgYC4KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9kb2NzLXB5dGhvbm1hcmtkb3duMi9lbWFjc19oZWFkX3ZhcnMubWQKLS0tLQotCi08IS0tIC0qLSBtYXJrZG93bi1leHRyYXM6IGNvZGUtZnJpZW5kbHkgLSotIC0tPgotCi1UaGlzIHNlbnRlbmNlIHRhbGtzIGFib3V0IHRoZSBQeXRob24gX19pbml0X18gbWV0aG9kLCB3aGljaCBJJ2QgcmF0aGVyIG5vdCBiZQotaW50ZXJwcmV0ZWQgYXMgTWFya2Rvd24ncyBzdHJvbmcuCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvZG9jcy1weXRob25tYXJrZG93bjIvZW1hY3NfdGFpbF92YXJzLm1kCi0tLS0KLQotVGhpcyBzZW50ZW5jZSB0YWxrcyBhYm91dCB0aGUgUHl0aG9uIF9faW5pdF9fIG1ldGhvZCwgd2hpY2ggSSdkIHJhdGhlciBub3QgYmUKLWludGVycHJldGVkIGFzIE1hcmtkb3duJ3Mgc3Ryb25nLgotCi08IS0tCi0gIExvY2FsIFZhcmlhYmxlczoKLSAgbWFya2Rvd24tZXh0cmFzOiBjb2RlLWZyaWVuZGx5Ci0gIEVuZDoKLSAgLS0+Ci0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvZG9jcy1weXRob25tYXJrZG93bjIvZW1waGFzaXMubWQKLS0tLQotCi1UaGlzIGlzICppdGFsaWMqIGFuZCB0aGlzIGlzICoqYm9sZCoqLgotVGhpcyBpcyBhbHNvIF9pdGFsaWNfIGFuZCB0aGlzIGlzIF9fYm9sZF9fLgotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL2RvY3MtcHl0aG9ubWFya2Rvd24yL2VzY2FwZXMubWQKLS0tLQotCi1cKlwqZG9uJ3Qgc2hvdXRcKlwqCi0KLVwqZG9uJ3QgZW1waGFzaXplXCoKLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9kb2NzLXB5dGhvbm1hcmtkb3duMi9mb290bm90ZXNfbGV0dGVycy5tZAotLS0tCi0KLVRoaXMgaXMgYSBwYXJhIHdpdGggYSBmb290bm90ZS5bXmZvb10KLQotVGhpcyBpcyBhbm90aGVyIHBhcmEgd2l0aCBhIGZvb3Rub3RlW15oeXBoZW4tYXRlZF0gaW4gaXQuIEFjdHVhbGx5IGl0IGhhcyB0d29bXkNhcGl0YWxdIG9mCi10aGVtLgotCi0KLVteZm9vXTogSGVyZSBpcyB0aGUgYm9keSBvZiB0aGUgZmlyc3QgZm9vdG5vdGUuCi0KLVteaHlwaGVuLWF0ZWRdOiBBbmQgb2YgdGhlIHNlY29uZCBmb290bm90ZS4KLQotICAgIFRoaXMgb25lIGhhcyBtdWx0aXBsZSBwYXJhZ3JhcGhzLgotCi1bXkNhcGl0YWxdOgotICAgIEhlcmUgaXMgYSBmb290bm90ZSBib2R5IHRoYXQgc3RhcnRzIG9uIG5leHQgbGluZS4KLQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL2RvY3MtcHl0aG9ubWFya2Rvd24yL2Zvb3Rub3Rlc19tYXJrdXAubWQKLS0tLQotCi1UaGlzIGlzIGEgcGFyYSB3aXRoIGEgZm9vdG5vdGUuW14xXQotCi1UaGlzIGlzIGFub3RoZXIgcGFyYSB3aXRoIGEgZm9vdG5vdGUuW14yXQotCi1bXjFdOiBBbmQgdGhlICoqYm9keSoqIG9mIHRoZSBmb290bm90ZSBoYXMgYG1hcmt1cGAuIEZvciBleGFtcGxlLAotICAgIGEgW2xpbmsgdG8gZGlnZ10oaHR0cDovL2RpZ2cuY29tKS4gQW5kIHNvbWUgY29kZToKLQotICAgICAgICBwcmludCAiSGVsbG8sIFdvcmxkISIKLQotW14yXTogVGhpcyBib2R5IGhhcyBtYXJrdXAgdG9vLCAqYnV0KiBkb2Vzbid0IGVuZCB3aXRoIGEgY29kZSBibG9jay4KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9kb2NzLXB5dGhvbm1hcmtkb3duMi9mb290bm90ZXMubWQKLS0tLQotCi1UaGlzIGlzIGEgcGFyYSB3aXRoIGEgZm9vdG5vdGUuW14xXQotCi1UaGlzIGlzIGFub3RoZXIgcGFyYSB3aXRoIGEgZm9vdG5vdGVbXjJdIGluIGl0LiBBY3R1YWxseSBpdCBoYXMgdHdvW14zXSBvZgotdGhlbS4gTm8sIHRocmVlW140XS4KLQotCi1bXjFdOiBIZXJlIGlzIHRoZSBib2R5IG9mIHRoZSBmaXJzdCBmb290bm90ZS4KLQotW14yXTogQW5kIG9mIHRoZSBzZWNvbmQgZm9vdG5vdGUuCi0KLSAgICBUaGlzIG9uZSBoYXMgbXVsdGlwbGUgcGFyYWdyYXBocy4KLQotW14zXToKLSAgICBIZXJlIGlzIGEgZm9vdG5vdGUgYm9keSB0aGF0IHN0YXJ0cyBvbiBuZXh0IGxpbmUuCi0KLVteNF06IHF1aWNraWUgInRoYXQgbG9va3MgbGlrZSBhIGxpbmsgcmVmIGlmIG5vdCBjYXJlZnVsIgotCi0KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9kb2NzLXB5dGhvbm1hcmtkb3duMi9mb290bm90ZXNfc2FmZV9tb2RlX2VzY2FwZS5tZAotLS0tCi0KLVRoaXMgaXMgYSBwYXJhIHdpdGggYSBmb290bm90ZS5bXjFdCi0KLVteMV06IEhlcmUgaXMgdGhlIDxlbT5ib2R5PC9lbT4gb2YgPHNwYW4gY2xhc3M9InlvIj50aGU8L3NwYW4+IGZvb3Rub3RlLgotCi0gICAgPGRpdiBjbGFzcz0iYmxhaCI+QW5kIGhlcmUgaXMgdGhlIHNlY29uZCBwYXJhIG9mIHRoZSBmb290bm90ZS48L2Rpdj4KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9kb2NzLXB5dGhvbm1hcmtkb3duMi9oci5tZAotLS0tCi0KLURhc2hlczoKLQotLS0tCi0KLSAtLS0KLQotICAtLS0KLQotICAgLS0tCi0KLQktLS0KLQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL2RvY3MtcHl0aG9ubWFya2Rvd24yL2ltZ19pbl9saW5rLm1kCi0tLS0KLQotVGhpcyBleGFtcGxlIGZyb20KLTxodHRwOi8vb3Jlc3Rpcy5nci9lbi9ibG9nLzIwMDcvMDUvMjgvcHl0aG9uLW1hcmtkb3duLXByb2JsZW1zLz46Ci0KLVshW3RoZSBnb29nbGUgbG9nb11bbG9nb11dW2dvb2dsZV0KLVtsb2dvXTogaHR0cDovL3d3dy5nb29nbGUuY29tL2ltYWdlcy9sb2dvLmdpZgotW2dvb2dsZV06IGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS8gImNsaWNrIHRvIHZpc2l0IEdvb2dsZS5jb20iCi0KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9kb2NzLXB5dGhvbm1hcmtkb3duMi9pbmxpbmVfbGlua3MubWQKLS0tLQotCi1hbiBpbmxpbmUgW2xpbmtdKC91cmwvKQotCi1hIFtsaW5rICJ3aXRoIiB0aXRsZV0oL3VybC8gInRpdGxlIikKLQotYW4gaW5saW5lICFbaW1hZ2UgbGlua10oL3VybC8pCi0KLWFuICFbaW1hZ2UgIndpdGgiIHRpdGxlXSgvdXJsLyAidGl0bGUiKQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL2RvY3MtcHl0aG9ubWFya2Rvd24yL2lzc3VlMl9zYWZlX21vZGVfYm9ya3NfbWFya3VwLm1kCi0tLS0KLQotIyMgSGVhZGluZyAyCi0KLWJsYWggPHNjcmlwdD5hbGVydCgndGhpcyBzaG91bGQgYmUgcmVtb3ZlZCcpPC9zY3JpcHQ+ICoqYmxhaCoqCi0KLTxzY3JpcHQ+YWxlcnQoJ2FzIHNob3VsZCB0aGlzJyk8L3NjcmlwdD4KLQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL2RvY3MtcHl0aG9ubWFya2Rvd24yL2xpbmtfZGVmbl9hbHRfdGl0bGVfZGVsaW1zLm1kCi0tLS0KLQotQWx0ZXJuYXRpdmUgZGVsaW1pdGVycyBmb3IgW2xpbmsgZGVmaW5pdGlvbnNdW2xpbmsxXSBhcmUgYWxsb3dlZCAtLSBhcyBvZgotTWFya2Rvd24gMS4wLjIsIEkgdGhpbmsuIEhlbmNlLCBbdGhpcyBsaW5rXVtsaW5rMl0gYW5kIFt0aGlzIGxpbmtdW2xpbmszXSB3b3JrCi10b28uCi0KLVtsaW5rMV06IGh0dHA6Ly9kYXJpbmdmaXJlYmFsbC5uZXQvcHJvamVjdHMvbWFya2Rvd24vc3ludGF4I2xpbmsgImxpbmsgc3ludGF4IgotW2xpbmsyXTogaHR0cDovL2RhcmluZ2ZpcmViYWxsLm5ldC9wcm9qZWN0cy9tYXJrZG93bi9zeW50YXgjbGluayAnbGluayBzeW50YXgnCi1bbGluazNdOiBodHRwOi8vZGFyaW5nZmlyZWJhbGwubmV0L3Byb2plY3RzL21hcmtkb3duL3N5bnRheCNsaW5rIChsaW5rIHN5bnRheCkKLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9kb2NzLXB5dGhvbm1hcmtkb3duMi9saW5rX3BhdHRlcm5zX2RvdWJsZV9oaXQubWQKLS0tLQotCi1UaGVyZSBvbmNlIHdhcyBhIE1vemlsbGEgYnVnIDEyMyBhbmQgYSBLb21vZG8gYnVnIDEyMy4KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9kb2NzLXB5dGhvbm1hcmtkb3duMi9saW5rX3BhdHRlcm5zX2VkZ2VfY2FzZXMubWQKLS0tLQotCi1CbGFoIDEyMyBiZWNvbWVzIGEgbGluZSB3aXRoIHR3byB1bmRlcnNjb3Jlcy4KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9kb2NzLXB5dGhvbm1hcmtkb3duMi9saW5rX3BhdHRlcm5zLm1kCi0tLS0KLQotUmVjaXBlIDEyMyBhbmQgS29tb2RvIGJ1ZyAyMzQgYXJlIHJlbGF0ZWQuCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvZG9jcy1weXRob25tYXJrZG93bjIvbGlzdHMubWQKLS0tLQotCi1jb3VudDoKLQotKiBvbmUKLSogdHdvCi0qIHRocmVlCi0KLWNvdW50IGluIHNwYW5pc2g6Ci0KLTEuIHVubwotMi4gZG9zCi0zLiB0cmVzCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvZG9jcy1weXRob25tYXJrZG93bjIvbWlzbWF0Y2hlZF9mb290bm90ZXMubWQKLS0tLQotCi1UaGlzIGlzIHNlbnRlbmNlIGhhcyBhIGZvb3Rub3RlIGZvb1teZm9vXSBhbmQgd2hhbW9bXndoYW1vXS4KLQotVGhpcyBpcyBhbm90aGVyIHBhcmEgd2l0aCBhIG51bWJlcmVkIGZvb3Rub3RlW142XS4KLQotCi1bXmZvb106IEhlcmUgaXMgdGhlIGJvZHkgb2YgdGhlIGZvb3Rub3RlIGZvby4KLVteYmFyXTogSGVyZSBpcyB0aGUgYm9keSBvZiB0aGUgZm9vdG5vdGUgYmFyLgotW142XTogSGVyZSBpcyB0aGUgYm9keSBvZiB0aGUgZm9vdG5vdGUgNi4KLQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL2RvY3MtcHl0aG9ubWFya2Rvd24yL21pc3NpbmdfbGlua19kZWZuLm1kCi0tLS0KLQotCi1UaGlzIGlzIGEgW21pc3NpbmcgbGlua11bbWlzc2luZ10gYW5kIGEgW3VzZWQgbGlua11bdXNlZF0uCi0KLQotW3VzZWRdOiBodHRwOi8vZm9vLmNvbQotW3VudXNlZF06IGh0dHA6Ly9mb28uY29tCi0KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9kb2NzLXB5dGhvbm1hcmtkb3duMi9uZXN0ZWRfbGlzdC5tZAotLS0tCi0KLXNob3BwaW5nIGxpc3Q6Ci0KLS0gdmVnZ2llcwotICAgICsgY2Fycm90cwotICAgICsgbGV0dHVjZQotLSBmcnVpdHMKLSAgICArIG9yYW5nZXMKLSAgICArIGFwcGxlcwotICAgICsgKnBlYWNoZXMqCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvZG9jcy1weXRob25tYXJrZG93bjIvbmVzdGVkX2xpc3Rfc2FmZV9tb2RlLm1kCi0tLS0KLQotc2hvcHBpbmcgbGlzdDoKLQotLSB2ZWdnaWVzCi0gICAgKyBjYXJyb3RzCi0gICAgKyBsZXR0dWNlCi0tIGZydWl0cwotICAgICsgb3JhbmdlcwotICAgICsgYXBwbGVzCi0gICAgKyAqcGVhY2hlcyoKLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9kb2NzLXB5dGhvbm1hcmtkb3duMi9wYXJlbnNfaW5fdXJsXzQubWQKLS0tLQotCi1bSW5saW5lIGxpbmsgNCB3aXRoIG5vbi1lc2NhcGVkIHBhcmVuc10oPC91cmwodGVzdCk+ICJ0aXRsZSIpLgotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL2RvY3MtcHl0aG9ubWFya2Rvd24yL3Jhd19odG1sLm1kCi0tLS0KLQotCi1IaSwgPHNwYW4gZm9vPSIqYmFyKiI+KnRoZXJlKjwvc3Bhbj4uIDwhLS0gKmJsYWgqIC0tPiBibGFoCi0KLTxkaXY+Ci0gICAgKiphY2sqKgotPC9kaXY+Ci0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvZG9jcy1weXRob25tYXJrZG93bjIvcmVmX2xpbmtzLm1kCi0tLS0KLQotW0dvb2dsZV1bXSBpcyBmYXN0ICFbc3Rhcl1bXS4KLQotW2dvb2dsZV06IGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS8KLVtzdGFyXTogL2ltZy9zdGFyLnBuZwotCi0KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9kb2NzLXB5dGhvbm1hcmtkb3duMi9zdWJsaXN0LXBhcmEubWQKLS0tLQotCi1Tb21lIHF1aWNrIHRob3VnaHRzIGZyb20gYSBjb2RlcidzIHBlcnNwZWN0aXZlOgotCi0tIFRoZSBzb3VyY2Ugd2lsbCBiZSBhdmFpbGFibGUgaW4gYSBNZXJjdXJpYWwgLi4uCi0KLS0gS29tb2RvIGlzIGEgTW96aWxsYS1iYXNlZCBhcHBsaWNhdGlvbi4uLgotCi0gIC0gR2V0IGEgc2xpZ2h0bHkgdHdlYWtlZCBtb3ppbGxhIGJ1aWxkIChDKyssIEphdmFTY3JpcHQsIFhVTCkuCi0gIC0gR2V0IGEgc2xpZ2h0bHkgdHdlYWtzIFB5dGhvbiBidWlsZCAoQykuCi0gIC0gQWRkIGEgYnVuY2ggb2YgY29yZSBsb2dpYyAoUHl0aG9uKS4uLgotICAtIEFkZCBLb21vZG8gY2hyb21lIChYVUwsIEphdmFTY3JpcHQsIENTUywgRFREcykuCi0KLSAgV2hhdCB0aGlzIG1lYW5zIGlzIHRoYXQgd29yayBvbiBhbmQgYWRkIHNpZ25pZmljYW50IGZ1bmN0aW9uYWxpdHkuLi4KLQotLSBLb21vZG8gdXNlcyB0aGUgc2FtZSBleHRlbnNpb24gbWVjaGFuaXNtcyBhcyBGaXJlZm94Li4uCi0KLS0gS29tb2RvIGJ1aWxkcyBhbmQgcnVucyBvbiBXaW5kb3dzLCBMaW51eCBhbmQgLi4uCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvZG9jcy1weXRob25tYXJrZG93bjIvc3ludGF4X2NvbG9yLm1kCi0tLS0KLQotSGVyZSBpcyBzb21lIHNhbXBsZSBjb2RlOgotCi0gICAgOjo6cHl0aG9uCi0gICAgaW1wb3J0IHN5cwotICAgIGRlZiBtYWluKGFyZ3Y9c3lzLmFyZ3YpOgotICAgICAgICBsb2dnaW5nLmJhc2ljQ29uZmlnKCkKLSAgICAgICAgbG9nLmluZm8oJ2hpJykKLQotYW5kOgotCi0gICAgOjo6cnVieQotICAgIHVzZSAnemxpYicKLSAgICBzdWIgbWFpbihhcmd2KQotICAgICAgICBwdXRzICdoaScKLSAgICBlbmQKLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9kb2NzLXB5dGhvbm1hcmtkb3duMi91bmRlcmxpbmVfaW5fYXV0b2xpbmsubWQKLS0tLQotCi1FcmljIHdyb3RlIHVwIGEgKGxvbmcpIGludHJvIHRvIHdyaXRpbmcgVURMIGRlZmluaXRpb25zIGEgd2hpbGUgYmFjayBvbgotaGlzIGJsb2c6IDxodHRwOi8vYmxvZ3MuYWN0aXZlc3RhdGUuY29tL2VyaWNwLzIwMDcvMDEva2lkX2FkZGluZ19hX25lLmh0bWw+Ci0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvTWFya2Rvd25UZXN0MTAzL0FtcHMgYW5kIGFuZ2xlIGVuY29kaW5nLm1kCi0tLS0KLQotQVQmVCBoYXMgYW4gYW1wZXJzYW5kIGluIHRoZWlyIG5hbWUuCi0KLUFUJmFtcDtUIGlzIGFub3RoZXIgd2F5IHRvIHdyaXRlIGl0LgotCi1UaGlzICYgdGhhdC4KLQotNCA8IDUuCi0KLTYgPiA1LgotCi1IZXJlJ3MgYSBbbGlua10gWzFdIHdpdGggYW4gYW1wZXJzYW5kIGluIHRoZSBVUkwuCi0KLUhlcmUncyBhIGxpbmsgd2l0aCBhbiBhbWVyc2FuZCBpbiB0aGUgbGluayB0ZXh0OiBbQVQmVF0gWzJdLgotCi0KLVsyXTogaHR0cDovL2F0dC5jb20vICAiQVQmVCIKLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJrZG93blRlc3QxMDMvQXV0byBsaW5rcy5tZAotLS0tCi0KLUxpbms6IDxodHRwOi8vZXhhbXBsZS5jb20vPi4KLQotCi0qIEluIGEgbGlzdD8KLSogPGh0dHA6Ly9leGFtcGxlLmNvbS8+Ci0qIEl0IHNob3VsZC4KLQotPiBCbG9ja3F1b3RlZDogPGh0dHA6Ly9leGFtcGxlLmNvbS8+Ci0KLUF1dG8tbGlua3Mgc2hvdWxkIG5vdCBvY2N1ciBoZXJlOiBgPGh0dHA6Ly9leGFtcGxlLmNvbS8+YAotCi0Jb3IgaGVyZTogPGh0dHA6Ly9leGFtcGxlLmNvbS8+Ci0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcmtkb3duVGVzdDEwMy9CYWNrc2xhc2ggZXNjYXBlcy5tZAotLS0tCi0KLVRoZXNlIHNob3VsZCBhbGwgZ2V0IGVzY2FwZWQ6Ci0KLUJhY2tzbGFzaDogXFwKLQotQmFja3RpY2s6IFxgCi0KLUFzdGVyaXNrOiBcKgotCi1VbmRlcnNjb3JlOiBcXwotCi1MZWZ0IGJyYWNlOiBcewotCi1SaWdodCBicmFjZTogXH0KLQotTGVmdCBicmFja2V0OiBcWwotCi1SaWdodCBicmFja2V0OiBcXQotCi1MZWZ0IHBhcmVuOiBcKAotCi1SaWdodCBwYXJlbjogXCkKLQotR3JlYXRlci10aGFuOiBcPgotCi1IYXNoOiBcIwotCi1QZXJpb2Q6IFwuCi0KLUJhbmc6IFwhCi0KLVBsdXM6IFwrCi0KLU1pbnVzOiBcLQotCi0KLQotVGhlc2Ugc2hvdWxkIG5vdCwgYmVjYXVzZSB0aGV5IG9jY3VyIHdpdGhpbiBhIGNvZGUgYmxvY2s6Ci0KLQlCYWNrc2xhc2g6IFxcCi0KLQlCYWNrdGljazogXGAKLQotCUFzdGVyaXNrOiBcKgotCi0JVW5kZXJzY29yZTogXF8KLQotCUxlZnQgYnJhY2U6IFx7Ci0KLQlSaWdodCBicmFjZTogXH0KLQotCUxlZnQgYnJhY2tldDogXFsKLQotCVJpZ2h0IGJyYWNrZXQ6IFxdCi0KLQlMZWZ0IHBhcmVuOiBcKAotCi0JUmlnaHQgcGFyZW46IFwpCi0KLQlHcmVhdGVyLXRoYW46IFw+Ci0KLQlIYXNoOiBcIwotCi0JUGVyaW9kOiBcLgotCi0JQmFuZzogXCEKLQotCVBsdXM6IFwrCi0KLQlNaW51czogXC0KLQotCi1Ob3Igc2hvdWxkIHRoZXNlLCB3aGljaCBvY2N1ciBpbiBjb2RlIHNwYW5zOgotCi1CYWNrc2xhc2g6IGBcXGAKLQotQmFja3RpY2s6IGBgIFxgIGBgCi0KLUFzdGVyaXNrOiBgXCpgCi0KLVVuZGVyc2NvcmU6IGBcX2AKLQotTGVmdCBicmFjZTogYFx7YAotCi1SaWdodCBicmFjZTogYFx9YAotCi1MZWZ0IGJyYWNrZXQ6IGBcW2AKLQotUmlnaHQgYnJhY2tldDogYFxdYAotCi1MZWZ0IHBhcmVuOiBgXChgCi0KLVJpZ2h0IHBhcmVuOiBgXClgCi0KLUdyZWF0ZXItdGhhbjogYFw+YAotCi1IYXNoOiBgXCNgCi0KLVBlcmlvZDogYFwuYAotCi1CYW5nOiBgXCFgCi0KLVBsdXM6IGBcK2AKLQotTWludXM6IGBcLWAKLQotCi1UaGVzZSBzaG91bGQgZ2V0IGVzY2FwZWQsIGV2ZW4gdGhvdWdoIHRoZXkncmUgbWF0Y2hpbmcgcGFpcnMgZm9yCi1vdGhlciBNYXJrZG93biBjb25zdHJ1Y3RzOgotCi1cKmFzdGVyaXNrc1wqCi0KLVxfdW5kZXJzY29yZXNcXwotCi1cYGJhY2t0aWNrc1xgCi0KLVRoaXMgaXMgYSBjb2RlIHNwYW4gd2l0aCBhIGxpdGVyYWwgYmFja3NsYXNoLWJhY2t0aWNrIHNlcXVlbmNlOiBgYCBcYCBgYAotCi1UaGlzIGlzIGEgdGFnIHdpdGggdW5lc2NhcGVkIGJhY2t0aWNrcyA8c3BhbiBhdHRyPSdgdGlja3NgJz5iYXI8L3NwYW4+LgotCi1UaGlzIGlzIGEgdGFnIHdpdGggYmFja3NsYXNoZXMgPHNwYW4gYXR0cj0nXFxiYWNrc2xhc2hlc1xcJz5iYXI8L3NwYW4+LgotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcmtkb3duVGVzdDEwMy9CbG9ja3F1b3RlcyB3aXRoIGNvZGUgYmxvY2tzLm1kCi0tLS0KLQotPiBFeGFtcGxlOgotPgotPiAgICAgc3ViIHN0YXR1cyB7Ci0+ICAgICAgICAgcHJpbnQgIndvcmtpbmciOwotPiAgICAgfQotPgotPiBPcjoKLT4KLT4gICAgIHN1YiBzdGF0dXMgewotPiAgICAgICAgIHJldHVybiAid29ya2luZyI7Ci0+ICAgICB9Ci0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvTWFya2Rvd25UZXN0MTAzL0NvZGUgQmxvY2tzLm1kCi0tLS0KLQotCWNvZGUgYmxvY2sgb24gdGhlIGZpcnN0IGxpbmUKLQotUmVndWxhciB0ZXh0LgotCi0gICAgY29kZSBibG9jayBpbmRlbnRlZCBieSBzcGFjZXMKLQotUmVndWxhciB0ZXh0LgotCi0JdGhlIGxpbmVzIGluIHRoaXMgYmxvY2sKLQlhbGwgY29udGFpbiB0cmFpbGluZyBzcGFjZXMKLQotUmVndWxhciBUZXh0LgotCi0JY29kZSBibG9jayBvbiB0aGUgbGFzdCBsaW5lCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcmtkb3duVGVzdDEwMy9Db2RlIFNwYW5zLm1kCi0tLS0KLQotYDx0ZXN0IGE9ImAgY29udGVudCBvZiBhdHRyaWJ1dGUgYCI+YAotCi1GaXggZm9yIGJhY2t0aWNrcyB3aXRoaW4gSFRNTCB0YWc6IDxzcGFuIGF0dHI9J2B0aWNrc2AnPmxpa2UgdGhpczwvc3Bhbj4KLQotSGVyZSdzIGhvdyB5b3UgcHV0IGBgIGBiYWNrdGlja3NgIGBgIGluIGEgY29kZSBzcGFuLgotCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvTWFya2Rvd25UZXN0MTAzL0hhcmQtd3JhcHBlZCBwYXJhZ3JhcGhzIHdpdGggbGlzdC1saWtlIGxpbmVzLm1kCi0tLS0KLQotSW4gTWFya2Rvd24gMS4wLjAgYW5kIGVhcmxpZXIuIFZlcnNpb24KLTguIFRoaXMgbGluZSB0dXJucyBpbnRvIGEgbGlzdCBpdGVtLgotQmVjYXVzZSBhIGhhcmQtd3JhcHBlZCBsaW5lIGluIHRoZQotbWlkZGxlIG9mIGEgcGFyYWdyYXBoIGxvb2tlZCBsaWtlIGEKLWxpc3QgaXRlbS4KLQotSGVyZSdzIG9uZSB3aXRoIGEgYnVsbGV0LgotKiBjcmltaW5leS4KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJrZG93blRlc3QxMDMvSG9yaXpvbnRhbCBydWxlcy5tZAotLS0tCi0KLURhc2hlczoKLQotLS0tCi0KLSAtLS0KLQotICAtLS0KLQotICAgLS0tCi0KLQktLS0KLQotLSAtIC0KLQotIC0gLSAtCi0KLSAgLSAtIC0KLQotICAgLSAtIC0KLQotCS0gLSAtCi0KLQotQXN0ZXJpc2tzOgotCi0qKioKLQotICoqKgotCi0gICoqKgotCi0gICAqKioKLQotCSoqKgotCi0qICogKgotCi0gKiAqICoKLQotICAqICogKgotCi0gICAqICogKgotCi0JKiAqICoKLQotCi1VbmRlcnNjb3JlczoKLQotX19fCi0KLSBfX18KLQotICBfX18KLQotICAgX19fCi0KLSAgICBfX18KLQotXyBfIF8KLQotIF8gXyBfCi0KLSAgXyBfIF8KLQotICAgXyBfIF8KLQotICAgIF8gXyBfCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvTWFya2Rvd25UZXN0MTAzL0lubGluZSBIVE1MIChBZHZhbmNlZCkubWQKLS0tLQotCi1TaW1wbGUgYmxvY2sgb24gb25lIGxpbmU6Ci0KLTxkaXY+Zm9vPC9kaXY+Ci0KLUFuZCBuZXN0ZWQgd2l0aG91dCBpbmRlbnRhdGlvbjoKLQotPGRpdj4KLTxkaXY+Ci08ZGl2PgotZm9vCi08L2Rpdj4KLTxkaXYgc3R5bGU9Ij4iLz4KLTwvZGl2PgotPGRpdj5iYXI8L2Rpdj4KLTwvZGl2PgotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcmtkb3duVGVzdDEwMy9JbmxpbmUgSFRNTCBjb21tZW50cy5tZAotLS0tCi0KLVBhcmFncmFwaCBvbmUuCi0KLTwhLS0gVGhpcyBpcyBhIHNpbXBsZSBjb21tZW50IC0tPgotCi08IS0tCi0JVGhpcyBpcyBhbm90aGVyIGNvbW1lbnQuCi0tLT4KLQotUGFyYWdyYXBoIHR3by4KLQotVGhlIGVuZC4KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJrZG93blRlc3QxMDMvSW5saW5lIEhUTUwgKFNpbXBsZSkubWQKLS0tLQotCi1IZXJlJ3MgYSBzaW1wbGUgYmxvY2s6Ci0KLTxkaXY+Ci0JZm9vCi08L2Rpdj4KLQotVGhpcyBzaG91bGQgYmUgYSBjb2RlIGJsb2NrLCB0aG91Z2g6Ci0KLQk8ZGl2PgotCQlmb28KLQk8L2Rpdj4KLQotQXMgc2hvdWxkIHRoaXM6Ci0KLQk8ZGl2PmZvbzwvZGl2PgotCi1Ob3csIG5lc3RlZDoKLQotPGRpdj4KLQk8ZGl2PgotCQk8ZGl2PgotCQkJZm9vCi0JCTwvZGl2PgotCTwvZGl2PgotPC9kaXY+Ci0KLVRoaXMgc2hvdWxkIGp1c3QgYmUgYW4gSFRNTCBjb21tZW50OgotCi08IS0tIENvbW1lbnQgLS0+Ci0KLU11bHRpbGluZToKLQotPCEtLQotQmxhaAotQmxhaAotLS0+Ci0KLUNvZGUgYmxvY2s6Ci0KLQk8IS0tIENvbW1lbnQgLS0+Ci0KLUp1c3QgcGxhaW4gY29tbWVudCwgd2l0aCB0cmFpbGluZyBzcGFjZXMgb24gdGhlIGxpbmU6Ci0KLTwhLS0gZm9vIC0tPgotCi1Db2RlOgotCi0JPGhyIC8+Ci0KLUhyJ3M6Ci0KLTxoci8+Ci0KLTxociAvPgotCi08aHIvPgotCi08aHIgLz4KLQotPGhyIGNsYXNzPSJmb28iIGlkPSJiYXIiIC8+Ci0KLTxociBjbGFzcz0iZm9vIiBpZD0iYmFyIi8+Ci0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvTWFya2Rvd25UZXN0MTAzL0xpbmtzLCBpbmxpbmUgc3R5bGUubWQKLS0tLQotCi1KdXN0IGEgW1VSTF0oL3VybC8pLgotCi1bVVJMIGFuZCB0aXRsZV0oL3VybC8gInRpdGxlIikuCi0KLVtVUkwgYW5kIHRpdGxlXSgvdXJsLyAgInRpdGxlIHByZWNlZGVkIGJ5IHR3byBzcGFjZXMiKS4KLQotW1VSTCBhbmQgdGl0bGVdKC91cmwvCSJ0aXRsZSBwcmVjZWRlZCBieSBhIHRhYiIpLgotCi1bVVJMIGFuZCB0aXRsZV0oL3VybC8gInRpdGxlIGhhcyBzcGFjZXMgYWZ0ZXJ3YXJkIiAgKS4KLQotCi1bRW1wdHldKCkuCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvTWFya2Rvd25UZXN0MTAzL0xpbmtzLCByZWZlcmVuY2Ugc3R5bGUubWQKLS0tLQotCi1Gb28gW2Jhcl0gWzFdLgotCi1Gb28gW2Jhcl1bMV0uCi0KLUZvbyBbYmFyXQotWzFdLgotCi1bMV06IC91cmwvICAiVGl0bGUiCi0KLQotV2l0aCBbZW1iZWRkZWQgW2JyYWNrZXRzXV0gW2JdLgotCi0KLUluZGVudGVkIFtvbmNlXVtdLgotCi1JbmRlbnRlZCBbdHdpY2VdW10uCi0KLUluZGVudGVkIFt0aHJpY2VdW10uCi0KLUluZGVudGVkIFtmb3VyXVtdIHRpbWVzLgotCi0gW29uY2VdOiAvdXJsCi0KLSAgW3R3aWNlXTogL3VybAotCi0gICBbdGhyaWNlXTogL3VybAotCi0gICAgW2ZvdXJdOiAvdXJsCi0KLQotW2JdOiAvdXJsLwotCi0qICogKgotCi1bdGhpc10gW3RoaXNdIHNob3VsZCB3b3JrCi0KLVNvIHNob3VsZCBbdGhpc11bdGhpc10uCi0KLUFuZCBbdGhpc10gW10uCi0KLUFuZCBbdGhpc11bXS4KLQotQW5kIFt0aGlzXS4KLQotQnV0IG5vdCBbdGhhdF0gW10uCi0KLU5vciBbdGhhdF1bXS4KLQotTm9yIFt0aGF0XS4KLQotW1NvbWV0aGluZyBpbiBicmFja2V0cyBsaWtlIFt0aGlzXVtdIHNob3VsZCB3b3JrXQotCi1bU2FtZSB3aXRoIFt0aGlzXS5dCi0KLUluIHRoaXMgY2FzZSwgW3RoaXNdKC9zb21ldGhpbmdlbHNlLykgcG9pbnRzIHRvIHNvbWV0aGluZyBlbHNlLgotCi1CYWNrc2xhc2hpbmcgc2hvdWxkIHN1cHByZXNzIFxbdGhpc10gYW5kIFt0aGlzXF0uCi0KLVt0aGlzXTogZm9vCi0KLQotKiAqICoKLQotSGVyZSdzIG9uZSB3aGVyZSB0aGUgW2xpbmsKLWJyZWFrc10gYWNyb3NzIGxpbmVzLgotCi1IZXJlJ3MgYW5vdGhlciB3aGVyZSB0aGUgW2xpbmsKLWJyZWFrc10gYWNyb3NzIGxpbmVzLCBidXQgd2l0aCBhIGxpbmUtZW5kaW5nIHNwYWNlLgotCi0KLVtsaW5rIGJyZWFrc106IC91cmwvCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvTWFya2Rvd25UZXN0MTAzL0xpbmtzLCBzaG9ydGN1dCByZWZlcmVuY2VzLm1kCi0tLS0KLQotVGhpcyBpcyB0aGUgW3NpbXBsZSBjYXNlXS4KLQotW3NpbXBsZSBjYXNlXTogL3NpbXBsZQotCi0KLQotVGhpcyBvbmUgaGFzIGEgW2xpbmUKLWJyZWFrXS4KLQotVGhpcyBvbmUgaGFzIGEgW2xpbmUKLWJyZWFrXSB3aXRoIGEgbGluZS1lbmRpbmcgc3BhY2UuCi0KLVtsaW5lIGJyZWFrXTogL2ZvbwotCi0KLVt0aGlzXSBbdGhhdF0gYW5kIHRoZSBbb3RoZXJdCi0KLVt0aGlzXTogL3RoaXMKLVt0aGF0XTogL3RoYXQKLVtvdGhlcl06IC9vdGhlcgotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcmtkb3duVGVzdDEwMy9MaXRlcmFsIHF1b3RlcyBpbiB0aXRsZXMubWQKLS0tLQotCi1Gb28gW2Jhcl1bXS4KLQotRm9vIFtiYXJdKC91cmwvICJUaXRsZSB3aXRoICJxdW90ZXMiIGluc2lkZSIpLgotCi0KLSAgW2Jhcl06IC91cmwvICJUaXRsZSB3aXRoICJxdW90ZXMiIGluc2lkZSIKLQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcmtkb3duVGVzdDEwMy9NYXJrZG93biBEb2N1bWVudGF0aW9uIC0gQmFzaWNzLm1kCi0tLS0KLQotTWFya2Rvd246IEJhc2ljcwotPT09PT09PT09PT09PT09PQotCi08dWwgaWQ9IlByb2plY3RTdWJtZW51Ij4KLSAgICA8bGk+PGEgaHJlZj0iL3Byb2plY3RzL21hcmtkb3duLyIgdGl0bGU9Ik1hcmtkb3duIFByb2plY3QgUGFnZSI+TWFpbjwvYT48L2xpPgotICAgIDxsaT48YSBjbGFzcz0ic2VsZWN0ZWQiIHRpdGxlPSJNYXJrZG93biBCYXNpY3MiPkJhc2ljczwvYT48L2xpPgotICAgIDxsaT48YSBocmVmPSIvcHJvamVjdHMvbWFya2Rvd24vc3ludGF4IiB0aXRsZT0iTWFya2Rvd24gU3ludGF4IERvY3VtZW50YXRpb24iPlN5bnRheDwvYT48L2xpPgotICAgIDxsaT48YSBocmVmPSIvcHJvamVjdHMvbWFya2Rvd24vbGljZW5zZSIgdGl0bGU9IlByaWNpbmcgYW5kIExpY2Vuc2UgSW5mb3JtYXRpb24iPkxpY2Vuc2U8L2E+PC9saT4KLSAgICA8bGk+PGEgaHJlZj0iL3Byb2plY3RzL21hcmtkb3duL2Rpbmd1cyIgdGl0bGU9Ik9ubGluZSBNYXJrZG93biBXZWIgRm9ybSI+RGluZ3VzPC9hPjwvbGk+Ci08L3VsPgotCi0KLUdldHRpbmcgdGhlIEdpc3Qgb2YgTWFya2Rvd24ncyBGb3JtYXR0aW5nIFN5bnRheAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVRoaXMgcGFnZSBvZmZlcnMgYSBicmllZiBvdmVydmlldyBvZiB3aGF0IGl0J3MgbGlrZSB0byB1c2UgTWFya2Rvd24uCi1UaGUgW3N5bnRheCBwYWdlXSBbc10gcHJvdmlkZXMgY29tcGxldGUsIGRldGFpbGVkIGRvY3VtZW50YXRpb24gZm9yCi1ldmVyeSBmZWF0dXJlLCBidXQgTWFya2Rvd24gc2hvdWxkIGJlIHZlcnkgZWFzeSB0byBwaWNrIHVwIHNpbXBseSBieQotbG9va2luZyBhdCBhIGZldyBleGFtcGxlcyBvZiBpdCBpbiBhY3Rpb24uIFRoZSBleGFtcGxlcyBvbiB0aGlzIHBhZ2UKLWFyZSB3cml0dGVuIGluIGEgYmVmb3JlL2FmdGVyIHN0eWxlLCBzaG93aW5nIGV4YW1wbGUgc3ludGF4IGFuZCB0aGUKLUhUTUwgb3V0cHV0IHByb2R1Y2VkIGJ5IE1hcmtkb3duLgotCi1JdCdzIGFsc28gaGVscGZ1bCB0byBzaW1wbHkgdHJ5IE1hcmtkb3duIG91dDsgdGhlIFtEaW5ndXNdIFtkXSBpcyBhCi13ZWIgYXBwbGljYXRpb24gdGhhdCBhbGxvd3MgeW91IHR5cGUgeW91ciBvd24gTWFya2Rvd24tZm9ybWF0dGVkIHRleHQKLWFuZCB0cmFuc2xhdGUgaXQgdG8gWEhUTUwuCi0KLSoqTm90ZToqKiBUaGlzIGRvY3VtZW50IGlzIGl0c2VsZiB3cml0dGVuIHVzaW5nIE1hcmtkb3duOyB5b3UKLWNhbiBbc2VlIHRoZSBzb3VyY2UgZm9yIGl0IGJ5IGFkZGluZyAnLnRleHQnIHRvIHRoZSBVUkxdIFtzcmNdLgotCi0gIFtzXTogL3Byb2plY3RzL21hcmtkb3duL3N5bnRheCAgIk1hcmtkb3duIFN5bnRheCIKLSAgW2RdOiAvcHJvamVjdHMvbWFya2Rvd24vZGluZ3VzICAiTWFya2Rvd24gRGluZ3VzIgotICBbc3JjXTogL3Byb2plY3RzL21hcmtkb3duL2Jhc2ljcy50ZXh0Ci0KLQotIyMgUGFyYWdyYXBocywgSGVhZGVycywgQmxvY2txdW90ZXMgIyMKLQotQSBwYXJhZ3JhcGggaXMgc2ltcGx5IG9uZSBvciBtb3JlIGNvbnNlY3V0aXZlIGxpbmVzIG9mIHRleHQsIHNlcGFyYXRlZAotYnkgb25lIG9yIG1vcmUgYmxhbmsgbGluZXMuIChBIGJsYW5rIGxpbmUgaXMgYW55IGxpbmUgdGhhdCBsb29rcyBsaWtlIGEKLWJsYW5rIGxpbmUgLS0gYSBsaW5lIGNvbnRhaW5pbmcgbm90aGluZyBzcGFjZXMgb3IgdGFicyBpcyBjb25zaWRlcmVkCi1ibGFuay4pIE5vcm1hbCBwYXJhZ3JhcGhzIHNob3VsZCBub3QgYmUgaW50ZW5kZWQgd2l0aCBzcGFjZXMgb3IgdGFicy4KLQotTWFya2Rvd24gb2ZmZXJzIHR3byBzdHlsZXMgb2YgaGVhZGVyczogKlNldGV4dCogYW5kICphdHgqLgotU2V0ZXh0LXN0eWxlIGhlYWRlcnMgZm9yIGA8aDE+YCBhbmQgYDxoMj5gIGFyZSBjcmVhdGVkIGJ5Ci0idW5kZXJsaW5pbmciIHdpdGggZXF1YWwgc2lnbnMgKGA9YCkgYW5kIGh5cGhlbnMgKGAtYCksIHJlc3BlY3RpdmVseS4KLVRvIGNyZWF0ZSBhbiBhdHgtc3R5bGUgaGVhZGVyLCB5b3UgcHV0IDEtNiBoYXNoIG1hcmtzIChgI2ApIGF0IHRoZQotYmVnaW5uaW5nIG9mIHRoZSBsaW5lIC0tIHRoZSBudW1iZXIgb2YgaGFzaGVzIGVxdWFscyB0aGUgcmVzdWx0aW5nCi1IVE1MIGhlYWRlciBsZXZlbC4KLQotQmxvY2txdW90ZXMgYXJlIGluZGljYXRlZCB1c2luZyBlbWFpbC1zdHlsZSAnYD5gJyBhbmdsZSBicmFja2V0cy4KLQotTWFya2Rvd246Ci0KLSAgICBBIEZpcnN0IExldmVsIEhlYWRlcgotICAgID09PT09PT09PT09PT09PT09PT09Ci0KLSAgICBBIFNlY29uZCBMZXZlbCBIZWFkZXIKLSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotICAgIE5vdyBpcyB0aGUgdGltZSBmb3IgYWxsIGdvb2QgbWVuIHRvIGNvbWUgdG8KLSAgICB0aGUgYWlkIG9mIHRoZWlyIGNvdW50cnkuIFRoaXMgaXMganVzdCBhCi0gICAgcmVndWxhciBwYXJhZ3JhcGguCi0KLSAgICBUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5Ci0gICAgZG9nJ3MgYmFjay4KLQotICAgICMjIyBIZWFkZXIgMwotCi0gICAgPiBUaGlzIGlzIGEgYmxvY2txdW90ZS4KLSAgICA+Ci0gICAgPiBUaGlzIGlzIHRoZSBzZWNvbmQgcGFyYWdyYXBoIGluIHRoZSBibG9ja3F1b3RlLgotICAgID4KLSAgICA+ICMjIFRoaXMgaXMgYW4gSDIgaW4gYSBibG9ja3F1b3RlCi0KLQotT3V0cHV0OgotCi0gICAgPGgxPkEgRmlyc3QgTGV2ZWwgSGVhZGVyPC9oMT4KLQotICAgIDxoMj5BIFNlY29uZCBMZXZlbCBIZWFkZXI8L2gyPgotCi0gICAgPHA+Tm93IGlzIHRoZSB0aW1lIGZvciBhbGwgZ29vZCBtZW4gdG8gY29tZSB0bwotICAgIHRoZSBhaWQgb2YgdGhlaXIgY291bnRyeS4gVGhpcyBpcyBqdXN0IGEKLSAgICByZWd1bGFyIHBhcmFncmFwaC48L3A+Ci0KLSAgICA8cD5UaGUgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5Ci0gICAgZG9nJ3MgYmFjay48L3A+Ci0KLSAgICA8aDM+SGVhZGVyIDM8L2gzPgotCi0gICAgPGJsb2NrcXVvdGU+Ci0gICAgICAgIDxwPlRoaXMgaXMgYSBibG9ja3F1b3RlLjwvcD4KLQotICAgICAgICA8cD5UaGlzIGlzIHRoZSBzZWNvbmQgcGFyYWdyYXBoIGluIHRoZSBibG9ja3F1b3RlLjwvcD4KLQotICAgICAgICA8aDI+VGhpcyBpcyBhbiBIMiBpbiBhIGJsb2NrcXVvdGU8L2gyPgotICAgIDwvYmxvY2txdW90ZT4KLQotCi0KLSMjIyBQaHJhc2UgRW1waGFzaXMgIyMjCi0KLU1hcmtkb3duIHVzZXMgYXN0ZXJpc2tzIGFuZCB1bmRlcnNjb3JlcyB0byBpbmRpY2F0ZSBzcGFucyBvZiBlbXBoYXNpcy4KLQotTWFya2Rvd246Ci0KLSAgICBTb21lIG9mIHRoZXNlIHdvcmRzICphcmUgZW1waGFzaXplZCouCi0gICAgU29tZSBvZiB0aGVzZSB3b3JkcyBfYXJlIGVtcGhhc2l6ZWQgYWxzb18uCi0KLSAgICBVc2UgdHdvIGFzdGVyaXNrcyBmb3IgKipzdHJvbmcgZW1waGFzaXMqKi4KLSAgICBPciwgaWYgeW91IHByZWZlciwgX191c2UgdHdvIHVuZGVyc2NvcmVzIGluc3RlYWRfXy4KLQotT3V0cHV0OgotCi0gICAgPHA+U29tZSBvZiB0aGVzZSB3b3JkcyA8ZW0+YXJlIGVtcGhhc2l6ZWQ8L2VtPi4KLSAgICBTb21lIG9mIHRoZXNlIHdvcmRzIDxlbT5hcmUgZW1waGFzaXplZCBhbHNvPC9lbT4uPC9wPgotCi0gICAgPHA+VXNlIHR3byBhc3Rlcmlza3MgZm9yIDxzdHJvbmc+c3Ryb25nIGVtcGhhc2lzPC9zdHJvbmc+LgotICAgIE9yLCBpZiB5b3UgcHJlZmVyLCA8c3Ryb25nPnVzZSB0d28gdW5kZXJzY29yZXMgaW5zdGVhZDwvc3Ryb25nPi48L3A+Ci0KLQotCi0jIyBMaXN0cyAjIwotCi1Vbm9yZGVyZWQgKGJ1bGxldGVkKSBsaXN0cyB1c2UgYXN0ZXJpc2tzLCBwbHVzZXMsIGFuZCBoeXBoZW5zIChgKmAsCi1gK2AsIGFuZCBgLWApIGFzIGxpc3QgbWFya2Vycy4gVGhlc2UgdGhyZWUgbWFya2VycyBhcmUKLWludGVyY2hhbmdhYmxlOyB0aGlzOgotCi0gICAgKiAgIENhbmR5LgotICAgICogICBHdW0uCi0gICAgKiAgIEJvb3plLgotCi10aGlzOgotCi0gICAgKyAgIENhbmR5LgotICAgICsgICBHdW0uCi0gICAgKyAgIEJvb3plLgotCi1hbmQgdGhpczoKLQotICAgIC0gICBDYW5keS4KLSAgICAtICAgR3VtLgotICAgIC0gICBCb296ZS4KLQotYWxsIHByb2R1Y2UgdGhlIHNhbWUgb3V0cHV0OgotCi0gICAgPHVsPgotICAgIDxsaT5DYW5keS48L2xpPgotICAgIDxsaT5HdW0uPC9saT4KLSAgICA8bGk+Qm9vemUuPC9saT4KLSAgICA8L3VsPgotCi1PcmRlcmVkIChudW1iZXJlZCkgbGlzdHMgdXNlIHJlZ3VsYXIgbnVtYmVycywgZm9sbG93ZWQgYnkgcGVyaW9kcywgYXMKLWxpc3QgbWFya2VyczoKLQotICAgIDEuICBSZWQKLSAgICAyLiAgR3JlZW4KLSAgICAzLiAgQmx1ZQotCi1PdXRwdXQ6Ci0KLSAgICA8b2w+Ci0gICAgPGxpPlJlZDwvbGk+Ci0gICAgPGxpPkdyZWVuPC9saT4KLSAgICA8bGk+Qmx1ZTwvbGk+Ci0gICAgPC9vbD4KLQotSWYgeW91IHB1dCBibGFuayBsaW5lcyBiZXR3ZWVuIGl0ZW1zLCB5b3UnbGwgZ2V0IGA8cD5gIHRhZ3MgZm9yIHRoZQotbGlzdCBpdGVtIHRleHQuIFlvdSBjYW4gY3JlYXRlIG11bHRpLXBhcmFncmFwaCBsaXN0IGl0ZW1zIGJ5IGluZGVudGluZwotdGhlIHBhcmFncmFwaHMgYnkgNCBzcGFjZXMgb3IgMSB0YWI6Ci0KLSAgICAqICAgQSBsaXN0IGl0ZW0uCi0KLSAgICAgICAgV2l0aCBtdWx0aXBsZSBwYXJhZ3JhcGhzLgotCi0gICAgKiAgIEFub3RoZXIgaXRlbSBpbiB0aGUgbGlzdC4KLQotT3V0cHV0OgotCi0gICAgPHVsPgotICAgIDxsaT48cD5BIGxpc3QgaXRlbS48L3A+Ci0gICAgPHA+V2l0aCBtdWx0aXBsZSBwYXJhZ3JhcGhzLjwvcD48L2xpPgotICAgIDxsaT48cD5Bbm90aGVyIGl0ZW0gaW4gdGhlIGxpc3QuPC9wPjwvbGk+Ci0gICAgPC91bD4KLQotCi0KLSMjIyBMaW5rcyAjIyMKLQotTWFya2Rvd24gc3VwcG9ydHMgdHdvIHN0eWxlcyBmb3IgY3JlYXRpbmcgbGlua3M6ICppbmxpbmUqIGFuZAotKnJlZmVyZW5jZSouIFdpdGggYm90aCBzdHlsZXMsIHlvdSB1c2Ugc3F1YXJlIGJyYWNrZXRzIHRvIGRlbGltaXQgdGhlCi10ZXh0IHlvdSB3YW50IHRvIHR1cm4gaW50byBhIGxpbmsuCi0KLUlubGluZS1zdHlsZSBsaW5rcyB1c2UgcGFyZW50aGVzZXMgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIGxpbmsgdGV4dC4KLUZvciBleGFtcGxlOgotCi0gICAgVGhpcyBpcyBhbiBbZXhhbXBsZSBsaW5rXShodHRwOi8vZXhhbXBsZS5jb20vKS4KLQotT3V0cHV0OgotCi0gICAgPHA+VGhpcyBpcyBhbiA8YSBocmVmPSJodHRwOi8vZXhhbXBsZS5jb20vIj4KLSAgICBleGFtcGxlIGxpbms8L2E+LjwvcD4KLQotT3B0aW9uYWxseSwgeW91IG1heSBpbmNsdWRlIGEgdGl0bGUgYXR0cmlidXRlIGluIHRoZSBwYXJlbnRoZXNlczoKLQotICAgIFRoaXMgaXMgYW4gW2V4YW1wbGUgbGlua10oaHR0cDovL2V4YW1wbGUuY29tLyAiV2l0aCBhIFRpdGxlIikuCi0KLU91dHB1dDoKLQotICAgIDxwPlRoaXMgaXMgYW4gPGEgaHJlZj0iaHR0cDovL2V4YW1wbGUuY29tLyIgdGl0bGU9IldpdGggYSBUaXRsZSI+Ci0gICAgZXhhbXBsZSBsaW5rPC9hPi48L3A+Ci0KLVJlZmVyZW5jZS1zdHlsZSBsaW5rcyBhbGxvdyB5b3UgdG8gcmVmZXIgdG8geW91ciBsaW5rcyBieSBuYW1lcywgd2hpY2gKLXlvdSBkZWZpbmUgZWxzZXdoZXJlIGluIHlvdXIgZG9jdW1lbnQ6Ci0KLSAgICBJIGdldCAxMCB0aW1lcyBtb3JlIHRyYWZmaWMgZnJvbSBbR29vZ2xlXVsxXSB0aGFuIGZyb20KLSAgICBbWWFob29dWzJdIG9yIFtNU05dWzNdLgotCi0gICAgWzFdOiBodHRwOi8vZ29vZ2xlLmNvbS8gICAgICAgICJHb29nbGUiCi0gICAgWzJdOiBodHRwOi8vc2VhcmNoLnlhaG9vLmNvbS8gICJZYWhvbyBTZWFyY2giCi0gICAgWzNdOiBodHRwOi8vc2VhcmNoLm1zbi5jb20vICAgICJNU04gU2VhcmNoIgotCi1PdXRwdXQ6Ci0KLSAgICA8cD5JIGdldCAxMCB0aW1lcyBtb3JlIHRyYWZmaWMgZnJvbSA8YSBocmVmPSJodHRwOi8vZ29vZ2xlLmNvbS8iCi0gICAgdGl0bGU9Ikdvb2dsZSI+R29vZ2xlPC9hPiB0aGFuIGZyb20gPGEgaHJlZj0iaHR0cDovL3NlYXJjaC55YWhvby5jb20vIgotICAgIHRpdGxlPSJZYWhvbyBTZWFyY2giPllhaG9vPC9hPiBvciA8YSBocmVmPSJodHRwOi8vc2VhcmNoLm1zbi5jb20vIgotICAgIHRpdGxlPSJNU04gU2VhcmNoIj5NU048L2E+LjwvcD4KLQotVGhlIHRpdGxlIGF0dHJpYnV0ZSBpcyBvcHRpb25hbC4gTGluayBuYW1lcyBtYXkgY29udGFpbiBsZXR0ZXJzLAotbnVtYmVycyBhbmQgc3BhY2VzLCBidXQgYXJlICpub3QqIGNhc2Ugc2Vuc2l0aXZlOgotCi0gICAgSSBzdGFydCBteSBtb3JuaW5nIHdpdGggYSBjdXAgb2YgY29mZmVlIGFuZAotICAgIFtUaGUgTmV3IFlvcmsgVGltZXNdW05ZIFRpbWVzXS4KLQotICAgIFtueSB0aW1lc106IGh0dHA6Ly93d3cubnl0aW1lcy5jb20vCi0KLU91dHB1dDoKLQotICAgIDxwPkkgc3RhcnQgbXkgbW9ybmluZyB3aXRoIGEgY3VwIG9mIGNvZmZlZSBhbmQKLSAgICA8YSBocmVmPSJodHRwOi8vd3d3Lm55dGltZXMuY29tLyI+VGhlIE5ldyBZb3JrIFRpbWVzPC9hPi48L3A+Ci0KLQotIyMjIEltYWdlcyAjIyMKLQotSW1hZ2Ugc3ludGF4IGlzIHZlcnkgbXVjaCBsaWtlIGxpbmsgc3ludGF4LgotCi1JbmxpbmUgKHRpdGxlcyBhcmUgb3B0aW9uYWwpOgotCi0gICAgIVthbHQgdGV4dF0oL3BhdGgvdG8vaW1nLmpwZyAiVGl0bGUiKQotCi1SZWZlcmVuY2Utc3R5bGU6Ci0KLSAgICAhW2FsdCB0ZXh0XVtpZF0KLQotICAgIFtpZF06IC9wYXRoL3RvL2ltZy5qcGcgIlRpdGxlIgotCi1Cb3RoIG9mIHRoZSBhYm92ZSBleGFtcGxlcyBwcm9kdWNlIHRoZSBzYW1lIG91dHB1dDoKLQotICAgIDxpbWcgc3JjPSIvcGF0aC90by9pbWcuanBnIiBhbHQ9ImFsdCB0ZXh0IiB0aXRsZT0iVGl0bGUiIC8+Ci0KLQotCi0jIyMgQ29kZSAjIyMKLQotSW4gYSByZWd1bGFyIHBhcmFncmFwaCwgeW91IGNhbiBjcmVhdGUgY29kZSBzcGFuIGJ5IHdyYXBwaW5nIHRleHQgaW4KLWJhY2t0aWNrIHF1b3Rlcy4gQW55IGFtcGVyc2FuZHMgKGAmYCkgYW5kIGFuZ2xlIGJyYWNrZXRzIChgPGAgb3IKLWA+YCkgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIHRyYW5zbGF0ZWQgaW50byBIVE1MIGVudGl0aWVzLiBUaGlzIG1ha2VzCi1pdCBlYXN5IHRvIHVzZSBNYXJrZG93biB0byB3cml0ZSBhYm91dCBIVE1MIGV4YW1wbGUgY29kZToKLQotICAgIEkgc3Ryb25nbHkgcmVjb21tZW5kIGFnYWluc3QgdXNpbmcgYW55IGA8Ymxpbms+YCB0YWdzLgotCi0gICAgSSB3aXNoIFNtYXJ0eVBhbnRzIHVzZWQgbmFtZWQgZW50aXRpZXMgbGlrZSBgJm1kYXNoO2AKLSAgICBpbnN0ZWFkIG9mIGRlY2ltYWwtZW5jb2RlZCBlbnRpdGVzIGxpa2UgYCYjODIxMjtgLgotCi1PdXRwdXQ6Ci0KLSAgICA8cD5JIHN0cm9uZ2x5IHJlY29tbWVuZCBhZ2FpbnN0IHVzaW5nIGFueQotICAgIDxjb2RlPiZsdDtibGluayZndDs8L2NvZGU+IHRhZ3MuPC9wPgotCi0gICAgPHA+SSB3aXNoIFNtYXJ0eVBhbnRzIHVzZWQgbmFtZWQgZW50aXRpZXMgbGlrZQotICAgIDxjb2RlPiZhbXA7bWRhc2g7PC9jb2RlPiBpbnN0ZWFkIG9mIGRlY2ltYWwtZW5jb2RlZAotICAgIGVudGl0ZXMgbGlrZSA8Y29kZT4mYW1wOyM4MjEyOzwvY29kZT4uPC9wPgotCi0KLVRvIHNwZWNpZnkgYW4gZW50aXJlIGJsb2NrIG9mIHByZS1mb3JtYXR0ZWQgY29kZSwgaW5kZW50IGV2ZXJ5IGxpbmUgb2YKLXRoZSBibG9jayBieSA0IHNwYWNlcyBvciAxIHRhYi4gSnVzdCBsaWtlIHdpdGggY29kZSBzcGFucywgYCZgLCBgPGAsCi1hbmQgYD5gIGNoYXJhY3RlcnMgd2lsbCBiZSBlc2NhcGVkIGF1dG9tYXRpY2FsbHkuCi0KLU1hcmtkb3duOgotCi0gICAgSWYgeW91IHdhbnQgeW91ciBwYWdlIHRvIHZhbGlkYXRlIHVuZGVyIFhIVE1MIDEuMCBTdHJpY3QsCi0gICAgeW91J3ZlIGdvdCB0byBwdXQgcGFyYWdyYXBoIHRhZ3MgaW4geW91ciBibG9ja3F1b3RlczoKLQotICAgICAgICA8YmxvY2txdW90ZT4KLSAgICAgICAgICAgIDxwPkZvciBleGFtcGxlLjwvcD4KLSAgICAgICAgPC9ibG9ja3F1b3RlPgotCi1PdXRwdXQ6Ci0KLSAgICA8cD5JZiB5b3Ugd2FudCB5b3VyIHBhZ2UgdG8gdmFsaWRhdGUgdW5kZXIgWEhUTUwgMS4wIFN0cmljdCwKLSAgICB5b3UndmUgZ290IHRvIHB1dCBwYXJhZ3JhcGggdGFncyBpbiB5b3VyIGJsb2NrcXVvdGVzOjwvcD4KLQotICAgIDxwcmU+PGNvZGU+Jmx0O2Jsb2NrcXVvdGUmZ3Q7Ci0gICAgICAgICZsdDtwJmd0O0ZvciBleGFtcGxlLiZsdDsvcCZndDsKLSAgICAmbHQ7L2Jsb2NrcXVvdGUmZ3Q7Ci0gICAgPC9jb2RlPjwvcHJlPgotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcmtkb3duVGVzdDEwMy9NYXJrZG93biBEb2N1bWVudGF0aW9uIC0gU3ludGF4Lm1kCi0tLS0KLQotTWFya2Rvd246IFN5bnRheAotPT09PT09PT09PT09PT09PQotCi08dWwgaWQ9IlByb2plY3RTdWJtZW51Ij4KLSAgICA8bGk+PGEgaHJlZj0iL3Byb2plY3RzL21hcmtkb3duLyIgdGl0bGU9Ik1hcmtkb3duIFByb2plY3QgUGFnZSI+TWFpbjwvYT48L2xpPgotICAgIDxsaT48YSBocmVmPSIvcHJvamVjdHMvbWFya2Rvd24vYmFzaWNzIiB0aXRsZT0iTWFya2Rvd24gQmFzaWNzIj5CYXNpY3M8L2E+PC9saT4KLSAgICA8bGk+PGEgY2xhc3M9InNlbGVjdGVkIiB0aXRsZT0iTWFya2Rvd24gU3ludGF4IERvY3VtZW50YXRpb24iPlN5bnRheDwvYT48L2xpPgotICAgIDxsaT48YSBocmVmPSIvcHJvamVjdHMvbWFya2Rvd24vbGljZW5zZSIgdGl0bGU9IlByaWNpbmcgYW5kIExpY2Vuc2UgSW5mb3JtYXRpb24iPkxpY2Vuc2U8L2E+PC9saT4KLSAgICA8bGk+PGEgaHJlZj0iL3Byb2plY3RzL21hcmtkb3duL2Rpbmd1cyIgdGl0bGU9Ik9ubGluZSBNYXJrZG93biBXZWIgRm9ybSI+RGluZ3VzPC9hPjwvbGk+Ci08L3VsPgotCi0KLSogICBbT3ZlcnZpZXddKCNvdmVydmlldykKLSAgICAqICAgW1BoaWxvc29waHldKCNwaGlsb3NvcGh5KQotICAgICogICBbSW5saW5lIEhUTUxdKCNodG1sKQotICAgICogICBbQXV0b21hdGljIEVzY2FwaW5nIGZvciBTcGVjaWFsIENoYXJhY3RlcnNdKCNhdXRvZXNjYXBlKQotKiAgIFtCbG9jayBFbGVtZW50c10oI2Jsb2NrKQotICAgICogICBbUGFyYWdyYXBocyBhbmQgTGluZSBCcmVha3NdKCNwKQotICAgICogICBbSGVhZGVyc10oI2hlYWRlcikKLSAgICAqICAgW0Jsb2NrcXVvdGVzXSgjYmxvY2txdW90ZSkKLSAgICAqICAgW0xpc3RzXSgjbGlzdCkKLSAgICAqICAgW0NvZGUgQmxvY2tzXSgjcHJlY29kZSkKLSAgICAqICAgW0hvcml6b250YWwgUnVsZXNdKCNocikKLSogICBbU3BhbiBFbGVtZW50c10oI3NwYW4pCi0gICAgKiAgIFtMaW5rc10oI2xpbmspCi0gICAgKiAgIFtFbXBoYXNpc10oI2VtKQotICAgICogICBbQ29kZV0oI2NvZGUpCi0gICAgKiAgIFtJbWFnZXNdKCNpbWcpCi0qICAgW01pc2NlbGxhbmVvdXNdKCNtaXNjKQotICAgICogICBbQmFja3NsYXNoIEVzY2FwZXNdKCNiYWNrc2xhc2gpCi0gICAgKiAgIFtBdXRvbWF0aWMgTGlua3NdKCNhdXRvbGluaykKLQotCi0qKk5vdGU6KiogVGhpcyBkb2N1bWVudCBpcyBpdHNlbGYgd3JpdHRlbiB1c2luZyBNYXJrZG93bjsgeW91Ci1jYW4gW3NlZSB0aGUgc291cmNlIGZvciBpdCBieSBhZGRpbmcgJy50ZXh0JyB0byB0aGUgVVJMXVtzcmNdLgotCi0gIFtzcmNdOiAvcHJvamVjdHMvbWFya2Rvd24vc3ludGF4LnRleHQKLQotKiAqICoKLQotPGgyIGlkPSJvdmVydmlldyI+T3ZlcnZpZXc8L2gyPgotCi08aDMgaWQ9InBoaWxvc29waHkiPlBoaWxvc29waHk8L2gzPgotCi1NYXJrZG93biBpcyBpbnRlbmRlZCB0byBiZSBhcyBlYXN5LXRvLXJlYWQgYW5kIGVhc3ktdG8td3JpdGUgYXMgaXMgZmVhc2libGUuCi0KLVJlYWRhYmlsaXR5LCBob3dldmVyLCBpcyBlbXBoYXNpemVkIGFib3ZlIGFsbCBlbHNlLiBBIE1hcmtkb3duLWZvcm1hdHRlZAotZG9jdW1lbnQgc2hvdWxkIGJlIHB1Ymxpc2hhYmxlIGFzLWlzLCBhcyBwbGFpbiB0ZXh0LCB3aXRob3V0IGxvb2tpbmcKLWxpa2UgaXQncyBiZWVuIG1hcmtlZCB1cCB3aXRoIHRhZ3Mgb3IgZm9ybWF0dGluZyBpbnN0cnVjdGlvbnMuIFdoaWxlCi1NYXJrZG93bidzIHN5bnRheCBoYXMgYmVlbiBpbmZsdWVuY2VkIGJ5IHNldmVyYWwgZXhpc3RpbmcgdGV4dC10by1IVE1MCi1maWx0ZXJzIC0tIGluY2x1ZGluZyBbU2V0ZXh0XSBbMV0sIFthdHhdIFsyXSwgW1RleHRpbGVdIFszXSwgW3JlU3RydWN0dXJlZFRleHRdIFs0XSwKLVtHcnV0YXRleHRdIFs1XSwgYW5kIFtFdFRleHRdIFs2XSAtLSB0aGUgc2luZ2xlIGJpZ2dlc3Qgc291cmNlIG9mCi1pbnNwaXJhdGlvbiBmb3IgTWFya2Rvd24ncyBzeW50YXggaXMgdGhlIGZvcm1hdCBvZiBwbGFpbiB0ZXh0IGVtYWlsLgotCi0gIFsxXTogaHR0cDovL2RvY3V0aWxzLnNvdXJjZWZvcmdlLm5ldC9taXJyb3Ivc2V0ZXh0Lmh0bWwKLSAgWzJdOiBodHRwOi8vd3d3LmFhcm9uc3cuY29tLzIwMDIvYXR4LwotICBbM106IGh0dHA6Ly90ZXh0aXNtLmNvbS90b29scy90ZXh0aWxlLwotICBbNF06IGh0dHA6Ly9kb2N1dGlscy5zb3VyY2Vmb3JnZS5uZXQvcnN0Lmh0bWwKLSAgWzVdOiBodHRwOi8vd3d3LnRyaXB0aWNvLmNvbS9zb2Z0d2FyZS9ncnV0YXR4dC5odG1sCi0gIFs2XTogaHR0cDovL2V0dGV4dC50YWludC5vcmcvZG9jLwotCi1UbyB0aGlzIGVuZCwgTWFya2Rvd24ncyBzeW50YXggaXMgY29tcHJpc2VkIGVudGlyZWx5IG9mIHB1bmN0dWF0aW9uCi1jaGFyYWN0ZXJzLCB3aGljaCBwdW5jdHVhdGlvbiBjaGFyYWN0ZXJzIGhhdmUgYmVlbiBjYXJlZnVsbHkgY2hvc2VuIHNvCi1hcyB0byBsb29rIGxpa2Ugd2hhdCB0aGV5IG1lYW4uIEUuZy4sIGFzdGVyaXNrcyBhcm91bmQgYSB3b3JkIGFjdHVhbGx5Ci1sb29rIGxpa2UgXCplbXBoYXNpc1wqLiBNYXJrZG93biBsaXN0cyBsb29rIGxpa2UsIHdlbGwsIGxpc3RzLiBFdmVuCi1ibG9ja3F1b3RlcyBsb29rIGxpa2UgcXVvdGVkIHBhc3NhZ2VzIG9mIHRleHQsIGFzc3VtaW5nIHlvdSd2ZSBldmVyCi11c2VkIGVtYWlsLgotCi0KLQotPGgzIGlkPSJodG1sIj5JbmxpbmUgSFRNTDwvaDM+Ci0KLU1hcmtkb3duJ3Mgc3ludGF4IGlzIGludGVuZGVkIGZvciBvbmUgcHVycG9zZTogdG8gYmUgdXNlZCBhcyBhCi1mb3JtYXQgZm9yICp3cml0aW5nKiBmb3IgdGhlIHdlYi4KLQotTWFya2Rvd24gaXMgbm90IGEgcmVwbGFjZW1lbnQgZm9yIEhUTUwsIG9yIGV2ZW4gY2xvc2UgdG8gaXQuIEl0cwotc3ludGF4IGlzIHZlcnkgc21hbGwsIGNvcnJlc3BvbmRpbmcgb25seSB0byBhIHZlcnkgc21hbGwgc3Vic2V0IG9mCi1IVE1MIHRhZ3MuIFRoZSBpZGVhIGlzICpub3QqIHRvIGNyZWF0ZSBhIHN5bnRheCB0aGF0IG1ha2VzIGl0IGVhc2llcgotdG8gaW5zZXJ0IEhUTUwgdGFncy4gSW4gbXkgb3BpbmlvbiwgSFRNTCB0YWdzIGFyZSBhbHJlYWR5IGVhc3kgdG8KLWluc2VydC4gVGhlIGlkZWEgZm9yIE1hcmtkb3duIGlzIHRvIG1ha2UgaXQgZWFzeSB0byByZWFkLCB3cml0ZSwgYW5kCi1lZGl0IHByb3NlLiBIVE1MIGlzIGEgKnB1Ymxpc2hpbmcqIGZvcm1hdDsgTWFya2Rvd24gaXMgYSAqd3JpdGluZyoKLWZvcm1hdC4gVGh1cywgTWFya2Rvd24ncyBmb3JtYXR0aW5nIHN5bnRheCBvbmx5IGFkZHJlc3NlcyBpc3N1ZXMgdGhhdAotY2FuIGJlIGNvbnZleWVkIGluIHBsYWluIHRleHQuCi0KLUZvciBhbnkgbWFya3VwIHRoYXQgaXMgbm90IGNvdmVyZWQgYnkgTWFya2Rvd24ncyBzeW50YXgsIHlvdSBzaW1wbHkKLXVzZSBIVE1MIGl0c2VsZi4gVGhlcmUncyBubyBuZWVkIHRvIHByZWZhY2UgaXQgb3IgZGVsaW1pdCBpdCB0bwotaW5kaWNhdGUgdGhhdCB5b3UncmUgc3dpdGNoaW5nIGZyb20gTWFya2Rvd24gdG8gSFRNTDsgeW91IGp1c3QgdXNlCi10aGUgdGFncy4KLQotVGhlIG9ubHkgcmVzdHJpY3Rpb25zIGFyZSB0aGF0IGJsb2NrLWxldmVsIEhUTUwgZWxlbWVudHMgLS0gZS5nLiBgPGRpdj5gLAotYDx0YWJsZT5gLCBgPHByZT5gLCBgPHA+YCwgZXRjLiAtLSBtdXN0IGJlIHNlcGFyYXRlZCBmcm9tIHN1cnJvdW5kaW5nCi1jb250ZW50IGJ5IGJsYW5rIGxpbmVzLCBhbmQgdGhlIHN0YXJ0IGFuZCBlbmQgdGFncyBvZiB0aGUgYmxvY2sgc2hvdWxkCi1ub3QgYmUgaW5kZW50ZWQgd2l0aCB0YWJzIG9yIHNwYWNlcy4gTWFya2Rvd24gaXMgc21hcnQgZW5vdWdoIG5vdAotdG8gYWRkIGV4dHJhICh1bndhbnRlZCkgYDxwPmAgdGFncyBhcm91bmQgSFRNTCBibG9jay1sZXZlbCB0YWdzLgotCi1Gb3IgZXhhbXBsZSwgdG8gYWRkIGFuIEhUTUwgdGFibGUgdG8gYSBNYXJrZG93biBhcnRpY2xlOgotCi0gICAgVGhpcyBpcyBhIHJlZ3VsYXIgcGFyYWdyYXBoLgotCi0gICAgPHRhYmxlPgotICAgICAgICA8dHI+Ci0gICAgICAgICAgICA8dGQ+Rm9vPC90ZD4KLSAgICAgICAgPC90cj4KLSAgICA8L3RhYmxlPgotCi0gICAgVGhpcyBpcyBhbm90aGVyIHJlZ3VsYXIgcGFyYWdyYXBoLgotCi1Ob3RlIHRoYXQgTWFya2Rvd24gZm9ybWF0dGluZyBzeW50YXggaXMgbm90IHByb2Nlc3NlZCB3aXRoaW4gYmxvY2stbGV2ZWwKLUhUTUwgdGFncy4gRS5nLiwgeW91IGNhbid0IHVzZSBNYXJrZG93bi1zdHlsZSBgKmVtcGhhc2lzKmAgaW5zaWRlIGFuCi1IVE1MIGJsb2NrLgotCi1TcGFuLWxldmVsIEhUTUwgdGFncyAtLSBlLmcuIGA8c3Bhbj5gLCBgPGNpdGU+YCwgb3IgYDxkZWw+YCAtLSBjYW4gYmUKLXVzZWQgYW55d2hlcmUgaW4gYSBNYXJrZG93biBwYXJhZ3JhcGgsIGxpc3QgaXRlbSwgb3IgaGVhZGVyLiBJZiB5b3UKLXdhbnQsIHlvdSBjYW4gZXZlbiB1c2UgSFRNTCB0YWdzIGluc3RlYWQgb2YgTWFya2Rvd24gZm9ybWF0dGluZzsgZS5nLiBpZgoteW91J2QgcHJlZmVyIHRvIHVzZSBIVE1MIGA8YT5gIG9yIGA8aW1nPmAgdGFncyBpbnN0ZWFkIG9mIE1hcmtkb3duJ3MKLWxpbmsgb3IgaW1hZ2Ugc3ludGF4LCBnbyByaWdodCBhaGVhZC4KLQotVW5saWtlIGJsb2NrLWxldmVsIEhUTUwgdGFncywgTWFya2Rvd24gc3ludGF4ICppcyogcHJvY2Vzc2VkIHdpdGhpbgotc3Bhbi1sZXZlbCB0YWdzLgotCi0KLTxoMyBpZD0iYXV0b2VzY2FwZSI+QXV0b21hdGljIEVzY2FwaW5nIGZvciBTcGVjaWFsIENoYXJhY3RlcnM8L2gzPgotCi1JbiBIVE1MLCB0aGVyZSBhcmUgdHdvIGNoYXJhY3RlcnMgdGhhdCBkZW1hbmQgc3BlY2lhbCB0cmVhdG1lbnQ6IGA8YAotYW5kIGAmYC4gTGVmdCBhbmdsZSBicmFja2V0cyBhcmUgdXNlZCB0byBzdGFydCB0YWdzOyBhbXBlcnNhbmRzIGFyZQotdXNlZCB0byBkZW5vdGUgSFRNTCBlbnRpdGllcy4gSWYgeW91IHdhbnQgdG8gdXNlIHRoZW0gYXMgbGl0ZXJhbAotY2hhcmFjdGVycywgeW91IG11c3QgZXNjYXBlIHRoZW0gYXMgZW50aXRpZXMsIGUuZy4gYCZsdDtgLCBhbmQKLWAmYW1wO2AuCi0KLUFtcGVyc2FuZHMgaW4gcGFydGljdWxhciBhcmUgYmVkZXZpbGluZyBmb3Igd2ViIHdyaXRlcnMuIElmIHlvdSB3YW50IHRvCi13cml0ZSBhYm91dCAnQVQmVCcsIHlvdSBuZWVkIHRvIHdyaXRlICdgQVQmYW1wO1RgJy4gWW91IGV2ZW4gbmVlZCB0bwotZXNjYXBlIGFtcGVyc2FuZHMgd2l0aGluIFVSTHMuIFRodXMsIGlmIHlvdSB3YW50IHRvIGxpbmsgdG86Ci0KLSAgICBodHRwOi8vaW1hZ2VzLmdvb2dsZS5jb20vaW1hZ2VzP251bT0zMCZxPWxhcnJ5K2JpcmQKLQoteW91IG5lZWQgdG8gZW5jb2RlIHRoZSBVUkwgYXM6Ci0KLSAgICBodHRwOi8vaW1hZ2VzLmdvb2dsZS5jb20vaW1hZ2VzP251bT0zMCZhbXA7cT1sYXJyeStiaXJkCi0KLWluIHlvdXIgYW5jaG9yIHRhZyBgaHJlZmAgYXR0cmlidXRlLiBOZWVkbGVzcyB0byBzYXksIHRoaXMgaXMgZWFzeSB0bwotZm9yZ2V0LCBhbmQgaXMgcHJvYmFibHkgdGhlIHNpbmdsZSBtb3N0IGNvbW1vbiBzb3VyY2Ugb2YgSFRNTCB2YWxpZGF0aW9uCi1lcnJvcnMgaW4gb3RoZXJ3aXNlIHdlbGwtbWFya2VkLXVwIHdlYiBzaXRlcy4KLQotTWFya2Rvd24gYWxsb3dzIHlvdSB0byB1c2UgdGhlc2UgY2hhcmFjdGVycyBuYXR1cmFsbHksIHRha2luZyBjYXJlIG9mCi1hbGwgdGhlIG5lY2Vzc2FyeSBlc2NhcGluZyBmb3IgeW91LiBJZiB5b3UgdXNlIGFuIGFtcGVyc2FuZCBhcyBwYXJ0IG9mCi1hbiBIVE1MIGVudGl0eSwgaXQgcmVtYWlucyB1bmNoYW5nZWQ7IG90aGVyd2lzZSBpdCB3aWxsIGJlIHRyYW5zbGF0ZWQKLWludG8gYCZhbXA7YC4KLQotU28sIGlmIHlvdSB3YW50IHRvIGluY2x1ZGUgYSBjb3B5cmlnaHQgc3ltYm9sIGluIHlvdXIgYXJ0aWNsZSwgeW91IGNhbiB3cml0ZToKLQotICAgICZjb3B5OwotCi1hbmQgTWFya2Rvd24gd2lsbCBsZWF2ZSBpdCBhbG9uZS4gQnV0IGlmIHlvdSB3cml0ZToKLQotICAgIEFUJlQKLQotTWFya2Rvd24gd2lsbCB0cmFuc2xhdGUgaXQgdG86Ci0KLSAgICBBVCZhbXA7VAotCi1TaW1pbGFybHksIGJlY2F1c2UgTWFya2Rvd24gc3VwcG9ydHMgW2lubGluZSBIVE1MXSgjaHRtbCksIGlmIHlvdSB1c2UKLWFuZ2xlIGJyYWNrZXRzIGFzIGRlbGltaXRlcnMgZm9yIEhUTUwgdGFncywgTWFya2Rvd24gd2lsbCB0cmVhdCB0aGVtIGFzCi1zdWNoLiBCdXQgaWYgeW91IHdyaXRlOgotCi0gICAgNCA8IDUKLQotTWFya2Rvd24gd2lsbCB0cmFuc2xhdGUgaXQgdG86Ci0KLSAgICA0ICZsdDsgNQotCi1Ib3dldmVyLCBpbnNpZGUgTWFya2Rvd24gY29kZSBzcGFucyBhbmQgYmxvY2tzLCBhbmdsZSBicmFja2V0cyBhbmQKLWFtcGVyc2FuZHMgYXJlICphbHdheXMqIGVuY29kZWQgYXV0b21hdGljYWxseS4gVGhpcyBtYWtlcyBpdCBlYXN5IHRvIHVzZQotTWFya2Rvd24gdG8gd3JpdGUgYWJvdXQgSFRNTCBjb2RlLiAoQXMgb3Bwb3NlZCB0byByYXcgSFRNTCwgd2hpY2ggaXMgYQotdGVycmlibGUgZm9ybWF0IGZvciB3cml0aW5nIGFib3V0IEhUTUwgc3ludGF4LCBiZWNhdXNlIGV2ZXJ5IHNpbmdsZSBgPGAKLWFuZCBgJmAgaW4geW91ciBleGFtcGxlIGNvZGUgbmVlZHMgdG8gYmUgZXNjYXBlZC4pCi0KLQotKiAqICoKLQotCi08aDIgaWQ9ImJsb2NrIj5CbG9jayBFbGVtZW50czwvaDI+Ci0KLQotPGgzIGlkPSJwIj5QYXJhZ3JhcGhzIGFuZCBMaW5lIEJyZWFrczwvaDM+Ci0KLUEgcGFyYWdyYXBoIGlzIHNpbXBseSBvbmUgb3IgbW9yZSBjb25zZWN1dGl2ZSBsaW5lcyBvZiB0ZXh0LCBzZXBhcmF0ZWQKLWJ5IG9uZSBvciBtb3JlIGJsYW5rIGxpbmVzLiAoQSBibGFuayBsaW5lIGlzIGFueSBsaW5lIHRoYXQgbG9va3MgbGlrZSBhCi1ibGFuayBsaW5lIC0tIGEgbGluZSBjb250YWluaW5nIG5vdGhpbmcgYnV0IHNwYWNlcyBvciB0YWJzIGlzIGNvbnNpZGVyZWQKLWJsYW5rLikgTm9ybWFsIHBhcmFncmFwaHMgc2hvdWxkIG5vdCBiZSBpbnRlbmRlZCB3aXRoIHNwYWNlcyBvciB0YWJzLgotCi1UaGUgaW1wbGljYXRpb24gb2YgdGhlICJvbmUgb3IgbW9yZSBjb25zZWN1dGl2ZSBsaW5lcyBvZiB0ZXh0IiBydWxlIGlzCi10aGF0IE1hcmtkb3duIHN1cHBvcnRzICJoYXJkLXdyYXBwZWQiIHRleHQgcGFyYWdyYXBocy4gVGhpcyBkaWZmZXJzCi1zaWduaWZpY2FudGx5IGZyb20gbW9zdCBvdGhlciB0ZXh0LXRvLUhUTUwgZm9ybWF0dGVycyAoaW5jbHVkaW5nIE1vdmFibGUKLVR5cGUncyAiQ29udmVydCBMaW5lIEJyZWFrcyIgb3B0aW9uKSB3aGljaCB0cmFuc2xhdGUgZXZlcnkgbGluZSBicmVhawotY2hhcmFjdGVyIGluIGEgcGFyYWdyYXBoIGludG8gYSBgPGJyIC8+YCB0YWcuCi0KLVdoZW4geW91ICpkbyogd2FudCB0byBpbnNlcnQgYSBgPGJyIC8+YCBicmVhayB0YWcgdXNpbmcgTWFya2Rvd24sIHlvdQotZW5kIGEgbGluZSB3aXRoIHR3byBvciBtb3JlIHNwYWNlcywgdGhlbiB0eXBlIHJldHVybi4KLQotWWVzLCB0aGlzIHRha2VzIGEgdGFkIG1vcmUgZWZmb3J0IHRvIGNyZWF0ZSBhIGA8YnIgLz5gLCBidXQgYSBzaW1wbGlzdGljCi0iZXZlcnkgbGluZSBicmVhayBpcyBhIGA8YnIgLz5gIiBydWxlIHdvdWxkbid0IHdvcmsgZm9yIE1hcmtkb3duLgotTWFya2Rvd24ncyBlbWFpbC1zdHlsZSBbYmxvY2txdW90aW5nXVticV0gYW5kIG11bHRpLXBhcmFncmFwaCBbbGlzdCBpdGVtc11bbF0KLXdvcmsgYmVzdCAtLSBhbmQgbG9vayBiZXR0ZXIgLS0gd2hlbiB5b3UgZm9ybWF0IHRoZW0gd2l0aCBoYXJkIGJyZWFrcy4KLQotICBbYnFdOiAjYmxvY2txdW90ZQotICBbbF06ICAjbGlzdAotCi0KLQotPGgzIGlkPSJoZWFkZXIiPkhlYWRlcnM8L2gzPgotCi1NYXJrZG93biBzdXBwb3J0cyB0d28gc3R5bGVzIG9mIGhlYWRlcnMsIFtTZXRleHRdIFsxXSBhbmQgW2F0eF0gWzJdLgotCi1TZXRleHQtc3R5bGUgaGVhZGVycyBhcmUgInVuZGVybGluZWQiIHVzaW5nIGVxdWFsIHNpZ25zIChmb3IgZmlyc3QtbGV2ZWwKLWhlYWRlcnMpIGFuZCBoeXBoZW5zIChmb3Igc2Vjb25kLWxldmVsIGhlYWRlcnMpLiBGb3IgZXhhbXBsZToKLQotICAgIFRoaXMgaXMgYW4gSDEKLSAgICA9PT09PT09PT09PT09Ci0KLSAgICBUaGlzIGlzIGFuIEgyCi0gICAgLS0tLS0tLS0tLS0tLQotCi1BbnkgbnVtYmVyIG9mIHVuZGVybGluaW5nIGA9YCdzIG9yIGAtYCdzIHdpbGwgd29yay4KLQotQXR4LXN0eWxlIGhlYWRlcnMgdXNlIDEtNiBoYXNoIGNoYXJhY3RlcnMgYXQgdGhlIHN0YXJ0IG9mIHRoZSBsaW5lLAotY29ycmVzcG9uZGluZyB0byBoZWFkZXIgbGV2ZWxzIDEtNi4gRm9yIGV4YW1wbGU6Ci0KLSAgICAjIFRoaXMgaXMgYW4gSDEKLQotICAgICMjIFRoaXMgaXMgYW4gSDIKLQotICAgICMjIyMjIyBUaGlzIGlzIGFuIEg2Ci0KLU9wdGlvbmFsbHksIHlvdSBtYXkgImNsb3NlIiBhdHgtc3R5bGUgaGVhZGVycy4gVGhpcyBpcyBwdXJlbHkKLWNvc21ldGljIC0tIHlvdSBjYW4gdXNlIHRoaXMgaWYgeW91IHRoaW5rIGl0IGxvb2tzIGJldHRlci4gVGhlCi1jbG9zaW5nIGhhc2hlcyBkb24ndCBldmVuIG5lZWQgdG8gbWF0Y2ggdGhlIG51bWJlciBvZiBoYXNoZXMKLXVzZWQgdG8gb3BlbiB0aGUgaGVhZGVyLiAoVGhlIG51bWJlciBvZiBvcGVuaW5nIGhhc2hlcwotZGV0ZXJtaW5lcyB0aGUgaGVhZGVyIGxldmVsLikgOgotCi0gICAgIyBUaGlzIGlzIGFuIEgxICMKLQotICAgICMjIFRoaXMgaXMgYW4gSDIgIyMKLQotICAgICMjIyBUaGlzIGlzIGFuIEgzICMjIyMjIwotCi0KLTxoMyBpZD0iYmxvY2txdW90ZSI+QmxvY2txdW90ZXM8L2gzPgotCi1NYXJrZG93biB1c2VzIGVtYWlsLXN0eWxlIGA+YCBjaGFyYWN0ZXJzIGZvciBibG9ja3F1b3RpbmcuIElmIHlvdSdyZQotZmFtaWxpYXIgd2l0aCBxdW90aW5nIHBhc3NhZ2VzIG9mIHRleHQgaW4gYW4gZW1haWwgbWVzc2FnZSwgdGhlbiB5b3UKLWtub3cgaG93IHRvIGNyZWF0ZSBhIGJsb2NrcXVvdGUgaW4gTWFya2Rvd24uIEl0IGxvb2tzIGJlc3QgaWYgeW91IGhhcmQKLXdyYXAgdGhlIHRleHQgYW5kIHB1dCBhIGA+YCBiZWZvcmUgZXZlcnkgbGluZToKLQotICAgID4gVGhpcyBpcyBhIGJsb2NrcXVvdGUgd2l0aCB0d28gcGFyYWdyYXBocy4gTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsCi0gICAgPiBjb25zZWN0ZXR1ZXIgYWRpcGlzY2luZyBlbGl0LiBBbGlxdWFtIGhlbmRyZXJpdCBtaSBwb3N1ZXJlIGxlY3R1cy4KLSAgICA+IFZlc3RpYnVsdW0gZW5pbSB3aXNpLCB2aXZlcnJhIG5lYywgZnJpbmdpbGxhIGluLCBsYW9yZWV0IHZpdGFlLCByaXN1cy4KLSAgICA+Ci0gICAgPiBEb25lYyBzaXQgYW1ldCBuaXNsLiBBbGlxdWFtIHNlbXBlciBpcHN1bSBzaXQgYW1ldCB2ZWxpdC4gU3VzcGVuZGlzc2UKLSAgICA+IGlkIHNlbSBjb25zZWN0ZXR1ZXIgbGliZXJvIGx1Y3R1cyBhZGlwaXNjaW5nLgotCi1NYXJrZG93biBhbGxvd3MgeW91IHRvIGJlIGxhenkgYW5kIG9ubHkgcHV0IHRoZSBgPmAgYmVmb3JlIHRoZSBmaXJzdAotbGluZSBvZiBhIGhhcmQtd3JhcHBlZCBwYXJhZ3JhcGg6Ci0KLSAgICA+IFRoaXMgaXMgYSBibG9ja3F1b3RlIHdpdGggdHdvIHBhcmFncmFwaHMuIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LAotICAgIGNvbnNlY3RldHVlciBhZGlwaXNjaW5nIGVsaXQuIEFsaXF1YW0gaGVuZHJlcml0IG1pIHBvc3VlcmUgbGVjdHVzLgotICAgIFZlc3RpYnVsdW0gZW5pbSB3aXNpLCB2aXZlcnJhIG5lYywgZnJpbmdpbGxhIGluLCBsYW9yZWV0IHZpdGFlLCByaXN1cy4KLQotICAgID4gRG9uZWMgc2l0IGFtZXQgbmlzbC4gQWxpcXVhbSBzZW1wZXIgaXBzdW0gc2l0IGFtZXQgdmVsaXQuIFN1c3BlbmRpc3NlCi0gICAgaWQgc2VtIGNvbnNlY3RldHVlciBsaWJlcm8gbHVjdHVzIGFkaXBpc2NpbmcuCi0KLUJsb2NrcXVvdGVzIGNhbiBiZSBuZXN0ZWQgKGkuZS4gYSBibG9ja3F1b3RlLWluLWEtYmxvY2txdW90ZSkgYnkKLWFkZGluZyBhZGRpdGlvbmFsIGxldmVscyBvZiBgPmA6Ci0KLSAgICA+IFRoaXMgaXMgdGhlIGZpcnN0IGxldmVsIG9mIHF1b3RpbmcuCi0gICAgPgotICAgID4gPiBUaGlzIGlzIG5lc3RlZCBibG9ja3F1b3RlLgotICAgID4KLSAgICA+IEJhY2sgdG8gdGhlIGZpcnN0IGxldmVsLgotCi1CbG9ja3F1b3RlcyBjYW4gY29udGFpbiBvdGhlciBNYXJrZG93biBlbGVtZW50cywgaW5jbHVkaW5nIGhlYWRlcnMsIGxpc3RzLAotYW5kIGNvZGUgYmxvY2tzOgotCi0JPiAjIyBUaGlzIGlzIGEgaGVhZGVyLgotCT4KLQk+IDEuICAgVGhpcyBpcyB0aGUgZmlyc3QgbGlzdCBpdGVtLgotCT4gMi4gICBUaGlzIGlzIHRoZSBzZWNvbmQgbGlzdCBpdGVtLgotCT4KLQk+IEhlcmUncyBzb21lIGV4YW1wbGUgY29kZToKLQk+Ci0JPiAgICAgcmV0dXJuIHNoZWxsX2V4ZWMoImVjaG8gJGlucHV0IHwgJG1hcmtkb3duX3NjcmlwdCIpOwotCi1BbnkgZGVjZW50IHRleHQgZWRpdG9yIHNob3VsZCBtYWtlIGVtYWlsLXN0eWxlIHF1b3RpbmcgZWFzeS4gRm9yCi1leGFtcGxlLCB3aXRoIEJCRWRpdCwgeW91IGNhbiBtYWtlIGEgc2VsZWN0aW9uIGFuZCBjaG9vc2UgSW5jcmVhc2UKLVF1b3RlIExldmVsIGZyb20gdGhlIFRleHQgbWVudS4KLQotCi08aDMgaWQ9Imxpc3QiPkxpc3RzPC9oMz4KLQotTWFya2Rvd24gc3VwcG9ydHMgb3JkZXJlZCAobnVtYmVyZWQpIGFuZCB1bm9yZGVyZWQgKGJ1bGxldGVkKSBsaXN0cy4KLQotVW5vcmRlcmVkIGxpc3RzIHVzZSBhc3Rlcmlza3MsIHBsdXNlcywgYW5kIGh5cGhlbnMgLS0gaW50ZXJjaGFuZ2FibHkKLS0tIGFzIGxpc3QgbWFya2VyczoKLQotICAgICogICBSZWQKLSAgICAqICAgR3JlZW4KLSAgICAqICAgQmx1ZQotCi1pcyBlcXVpdmFsZW50IHRvOgotCi0gICAgKyAgIFJlZAotICAgICsgICBHcmVlbgotICAgICsgICBCbHVlCi0KLWFuZDoKLQotICAgIC0gICBSZWQKLSAgICAtICAgR3JlZW4KLSAgICAtICAgQmx1ZQotCi1PcmRlcmVkIGxpc3RzIHVzZSBudW1iZXJzIGZvbGxvd2VkIGJ5IHBlcmlvZHM6Ci0KLSAgICAxLiAgQmlyZAotICAgIDIuICBNY0hhbGUKLSAgICAzLiAgUGFyaXNoCi0KLUl0J3MgaW1wb3J0YW50IHRvIG5vdGUgdGhhdCB0aGUgYWN0dWFsIG51bWJlcnMgeW91IHVzZSB0byBtYXJrIHRoZQotbGlzdCBoYXZlIG5vIGVmZmVjdCBvbiB0aGUgSFRNTCBvdXRwdXQgTWFya2Rvd24gcHJvZHVjZXMuIFRoZSBIVE1MCi1NYXJrZG93biBwcm9kdWNlcyBmcm9tIHRoZSBhYm92ZSBsaXN0IGlzOgotCi0gICAgPG9sPgotICAgIDxsaT5CaXJkPC9saT4KLSAgICA8bGk+TWNIYWxlPC9saT4KLSAgICA8bGk+UGFyaXNoPC9saT4KLSAgICA8L29sPgotCi1JZiB5b3UgaW5zdGVhZCB3cm90ZSB0aGUgbGlzdCBpbiBNYXJrZG93biBsaWtlIHRoaXM6Ci0KLSAgICAxLiAgQmlyZAotICAgIDEuICBNY0hhbGUKLSAgICAxLiAgUGFyaXNoCi0KLW9yIGV2ZW46Ci0KLSAgICAzLiBCaXJkCi0gICAgMS4gTWNIYWxlCi0gICAgOC4gUGFyaXNoCi0KLXlvdSdkIGdldCB0aGUgZXhhY3Qgc2FtZSBIVE1MIG91dHB1dC4gVGhlIHBvaW50IGlzLCBpZiB5b3Ugd2FudCB0bywKLXlvdSBjYW4gdXNlIG9yZGluYWwgbnVtYmVycyBpbiB5b3VyIG9yZGVyZWQgTWFya2Rvd24gbGlzdHMsIHNvIHRoYXQKLXRoZSBudW1iZXJzIGluIHlvdXIgc291cmNlIG1hdGNoIHRoZSBudW1iZXJzIGluIHlvdXIgcHVibGlzaGVkIEhUTUwuCi1CdXQgaWYgeW91IHdhbnQgdG8gYmUgbGF6eSwgeW91IGRvbid0IGhhdmUgdG8uCi0KLUlmIHlvdSBkbyB1c2UgbGF6eSBsaXN0IG51bWJlcmluZywgaG93ZXZlciwgeW91IHNob3VsZCBzdGlsbCBzdGFydCB0aGUKLWxpc3Qgd2l0aCB0aGUgbnVtYmVyIDEuIEF0IHNvbWUgcG9pbnQgaW4gdGhlIGZ1dHVyZSwgTWFya2Rvd24gbWF5IHN1cHBvcnQKLXN0YXJ0aW5nIG9yZGVyZWQgbGlzdHMgYXQgYW4gYXJiaXRyYXJ5IG51bWJlci4KLQotTGlzdCBtYXJrZXJzIHR5cGljYWxseSBzdGFydCBhdCB0aGUgbGVmdCBtYXJnaW4sIGJ1dCBtYXkgYmUgaW5kZW50ZWQgYnkKLXVwIHRvIHRocmVlIHNwYWNlcy4gTGlzdCBtYXJrZXJzIG11c3QgYmUgZm9sbG93ZWQgYnkgb25lIG9yIG1vcmUgc3BhY2VzCi1vciBhIHRhYi4KLQotVG8gbWFrZSBsaXN0cyBsb29rIG5pY2UsIHlvdSBjYW4gd3JhcCBpdGVtcyB3aXRoIGhhbmdpbmcgaW5kZW50czoKLQotICAgICogICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dWVyIGFkaXBpc2NpbmcgZWxpdC4KLSAgICAgICAgQWxpcXVhbSBoZW5kcmVyaXQgbWkgcG9zdWVyZSBsZWN0dXMuIFZlc3RpYnVsdW0gZW5pbSB3aXNpLAotICAgICAgICB2aXZlcnJhIG5lYywgZnJpbmdpbGxhIGluLCBsYW9yZWV0IHZpdGFlLCByaXN1cy4KLSAgICAqICAgRG9uZWMgc2l0IGFtZXQgbmlzbC4gQWxpcXVhbSBzZW1wZXIgaXBzdW0gc2l0IGFtZXQgdmVsaXQuCi0gICAgICAgIFN1c3BlbmRpc3NlIGlkIHNlbSBjb25zZWN0ZXR1ZXIgbGliZXJvIGx1Y3R1cyBhZGlwaXNjaW5nLgotCi1CdXQgaWYgeW91IHdhbnQgdG8gYmUgbGF6eSwgeW91IGRvbid0IGhhdmUgdG86Ci0KLSAgICAqICAgTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVlciBhZGlwaXNjaW5nIGVsaXQuCi0gICAgQWxpcXVhbSBoZW5kcmVyaXQgbWkgcG9zdWVyZSBsZWN0dXMuIFZlc3RpYnVsdW0gZW5pbSB3aXNpLAotICAgIHZpdmVycmEgbmVjLCBmcmluZ2lsbGEgaW4sIGxhb3JlZXQgdml0YWUsIHJpc3VzLgotICAgICogICBEb25lYyBzaXQgYW1ldCBuaXNsLiBBbGlxdWFtIHNlbXBlciBpcHN1bSBzaXQgYW1ldCB2ZWxpdC4KLSAgICBTdXNwZW5kaXNzZSBpZCBzZW0gY29uc2VjdGV0dWVyIGxpYmVybyBsdWN0dXMgYWRpcGlzY2luZy4KLQotSWYgbGlzdCBpdGVtcyBhcmUgc2VwYXJhdGVkIGJ5IGJsYW5rIGxpbmVzLCBNYXJrZG93biB3aWxsIHdyYXAgdGhlCi1pdGVtcyBpbiBgPHA+YCB0YWdzIGluIHRoZSBIVE1MIG91dHB1dC4gRm9yIGV4YW1wbGUsIHRoaXMgaW5wdXQ6Ci0KLSAgICAqICAgQmlyZAotICAgICogICBNYWdpYwotCi13aWxsIHR1cm4gaW50bzoKLQotICAgIDx1bD4KLSAgICA8bGk+QmlyZDwvbGk+Ci0gICAgPGxpPk1hZ2ljPC9saT4KLSAgICA8L3VsPgotCi1CdXQgdGhpczoKLQotICAgICogICBCaXJkCi0KLSAgICAqICAgTWFnaWMKLQotd2lsbCB0dXJuIGludG86Ci0KLSAgICA8dWw+Ci0gICAgPGxpPjxwPkJpcmQ8L3A+PC9saT4KLSAgICA8bGk+PHA+TWFnaWM8L3A+PC9saT4KLSAgICA8L3VsPgotCi1MaXN0IGl0ZW1zIG1heSBjb25zaXN0IG9mIG11bHRpcGxlIHBhcmFncmFwaHMuIEVhY2ggc3Vic2VxdWVudAotcGFyYWdyYXBoIGluIGEgbGlzdCBpdGVtIG11c3QgYmUgaW50ZW5kZWQgYnkgZWl0aGVyIDQgc3BhY2VzCi1vciBvbmUgdGFiOgotCi0gICAgMS4gIFRoaXMgaXMgYSBsaXN0IGl0ZW0gd2l0aCB0d28gcGFyYWdyYXBocy4gTG9yZW0gaXBzdW0gZG9sb3IKLSAgICAgICAgc2l0IGFtZXQsIGNvbnNlY3RldHVlciBhZGlwaXNjaW5nIGVsaXQuIEFsaXF1YW0gaGVuZHJlcml0Ci0gICAgICAgIG1pIHBvc3VlcmUgbGVjdHVzLgotCi0gICAgICAgIFZlc3RpYnVsdW0gZW5pbSB3aXNpLCB2aXZlcnJhIG5lYywgZnJpbmdpbGxhIGluLCBsYW9yZWV0Ci0gICAgICAgIHZpdGFlLCByaXN1cy4gRG9uZWMgc2l0IGFtZXQgbmlzbC4gQWxpcXVhbSBzZW1wZXIgaXBzdW0KLSAgICAgICAgc2l0IGFtZXQgdmVsaXQuCi0KLSAgICAyLiAgU3VzcGVuZGlzc2UgaWQgc2VtIGNvbnNlY3RldHVlciBsaWJlcm8gbHVjdHVzIGFkaXBpc2NpbmcuCi0KLUl0IGxvb2tzIG5pY2UgaWYgeW91IGluZGVudCBldmVyeSBsaW5lIG9mIHRoZSBzdWJzZXF1ZW50Ci1wYXJhZ3JhcGhzLCBidXQgaGVyZSBhZ2FpbiwgTWFya2Rvd24gd2lsbCBhbGxvdyB5b3UgdG8gYmUKLWxhenk6Ci0KLSAgICAqICAgVGhpcyBpcyBhIGxpc3QgaXRlbSB3aXRoIHR3byBwYXJhZ3JhcGhzLgotCi0gICAgICAgIFRoaXMgaXMgdGhlIHNlY29uZCBwYXJhZ3JhcGggaW4gdGhlIGxpc3QgaXRlbS4gWW91J3JlCi0gICAgb25seSByZXF1aXJlZCB0byBpbmRlbnQgdGhlIGZpcnN0IGxpbmUuIExvcmVtIGlwc3VtIGRvbG9yCi0gICAgc2l0IGFtZXQsIGNvbnNlY3RldHVlciBhZGlwaXNjaW5nIGVsaXQuCi0KLSAgICAqICAgQW5vdGhlciBpdGVtIGluIHRoZSBzYW1lIGxpc3QuCi0KLVRvIHB1dCBhIGJsb2NrcXVvdGUgd2l0aGluIGEgbGlzdCBpdGVtLCB0aGUgYmxvY2txdW90ZSdzIGA+YAotZGVsaW1pdGVycyBuZWVkIHRvIGJlIGluZGVudGVkOgotCi0gICAgKiAgIEEgbGlzdCBpdGVtIHdpdGggYSBibG9ja3F1b3RlOgotCi0gICAgICAgID4gVGhpcyBpcyBhIGJsb2NrcXVvdGUKLSAgICAgICAgPiBpbnNpZGUgYSBsaXN0IGl0ZW0uCi0KLVRvIHB1dCBhIGNvZGUgYmxvY2sgd2l0aGluIGEgbGlzdCBpdGVtLCB0aGUgY29kZSBibG9jayBuZWVkcwotdG8gYmUgaW5kZW50ZWQgKnR3aWNlKiAtLSA4IHNwYWNlcyBvciB0d28gdGFiczoKLQotICAgICogICBBIGxpc3QgaXRlbSB3aXRoIGEgY29kZSBibG9jazoKLQotICAgICAgICAgICAgPGNvZGUgZ29lcyBoZXJlPgotCi0KLUl0J3Mgd29ydGggbm90aW5nIHRoYXQgaXQncyBwb3NzaWJsZSB0byB0cmlnZ2VyIGFuIG9yZGVyZWQgbGlzdCBieQotYWNjaWRlbnQsIGJ5IHdyaXRpbmcgc29tZXRoaW5nIGxpa2UgdGhpczoKLQotICAgIDE5ODYuIFdoYXQgYSBncmVhdCBzZWFzb24uCi0KLUluIG90aGVyIHdvcmRzLCBhICpudW1iZXItcGVyaW9kLXNwYWNlKiBzZXF1ZW5jZSBhdCB0aGUgYmVnaW5uaW5nIG9mIGEKLWxpbmUuIFRvIGF2b2lkIHRoaXMsIHlvdSBjYW4gYmFja3NsYXNoLWVzY2FwZSB0aGUgcGVyaW9kOgotCi0gICAgMTk4NlwuIFdoYXQgYSBncmVhdCBzZWFzb24uCi0KLQotCi08aDMgaWQ9InByZWNvZGUiPkNvZGUgQmxvY2tzPC9oMz4KLQotUHJlLWZvcm1hdHRlZCBjb2RlIGJsb2NrcyBhcmUgdXNlZCBmb3Igd3JpdGluZyBhYm91dCBwcm9ncmFtbWluZyBvcgotbWFya3VwIHNvdXJjZSBjb2RlLiBSYXRoZXIgdGhhbiBmb3JtaW5nIG5vcm1hbCBwYXJhZ3JhcGhzLCB0aGUgbGluZXMKLW9mIGEgY29kZSBibG9jayBhcmUgaW50ZXJwcmV0ZWQgbGl0ZXJhbGx5LiBNYXJrZG93biB3cmFwcyBhIGNvZGUgYmxvY2sKLWluIGJvdGggYDxwcmU+YCBhbmQgYDxjb2RlPmAgdGFncy4KLQotVG8gcHJvZHVjZSBhIGNvZGUgYmxvY2sgaW4gTWFya2Rvd24sIHNpbXBseSBpbmRlbnQgZXZlcnkgbGluZSBvZiB0aGUKLWJsb2NrIGJ5IGF0IGxlYXN0IDQgc3BhY2VzIG9yIDEgdGFiLiBGb3IgZXhhbXBsZSwgZ2l2ZW4gdGhpcyBpbnB1dDoKLQotICAgIFRoaXMgaXMgYSBub3JtYWwgcGFyYWdyYXBoOgotCi0gICAgICAgIFRoaXMgaXMgYSBjb2RlIGJsb2NrLgotCi1NYXJrZG93biB3aWxsIGdlbmVyYXRlOgotCi0gICAgPHA+VGhpcyBpcyBhIG5vcm1hbCBwYXJhZ3JhcGg6PC9wPgotCi0gICAgPHByZT48Y29kZT5UaGlzIGlzIGEgY29kZSBibG9jay4KLSAgICA8L2NvZGU+PC9wcmU+Ci0KLU9uZSBsZXZlbCBvZiBpbmRlbnRhdGlvbiAtLSA0IHNwYWNlcyBvciAxIHRhYiAtLSBpcyByZW1vdmVkIGZyb20gZWFjaAotbGluZSBvZiB0aGUgY29kZSBibG9jay4gRm9yIGV4YW1wbGUsIHRoaXM6Ci0KLSAgICBIZXJlIGlzIGFuIGV4YW1wbGUgb2YgQXBwbGVTY3JpcHQ6Ci0KLSAgICAgICAgdGVsbCBhcHBsaWNhdGlvbiAiRm9vIgotICAgICAgICAgICAgYmVlcAotICAgICAgICBlbmQgdGVsbAotCi13aWxsIHR1cm4gaW50bzoKLQotICAgIDxwPkhlcmUgaXMgYW4gZXhhbXBsZSBvZiBBcHBsZVNjcmlwdDo8L3A+Ci0KLSAgICA8cHJlPjxjb2RlPnRlbGwgYXBwbGljYXRpb24gIkZvbyIKLSAgICAgICAgYmVlcAotICAgIGVuZCB0ZWxsCi0gICAgPC9jb2RlPjwvcHJlPgotCi1BIGNvZGUgYmxvY2sgY29udGludWVzIHVudGlsIGl0IHJlYWNoZXMgYSBsaW5lIHRoYXQgaXMgbm90IGluZGVudGVkCi0ob3IgdGhlIGVuZCBvZiB0aGUgYXJ0aWNsZSkuCi0KLVdpdGhpbiBhIGNvZGUgYmxvY2ssIGFtcGVyc2FuZHMgKGAmYCkgYW5kIGFuZ2xlIGJyYWNrZXRzIChgPGAgYW5kIGA+YCkKLWFyZSBhdXRvbWF0aWNhbGx5IGNvbnZlcnRlZCBpbnRvIEhUTUwgZW50aXRpZXMuIFRoaXMgbWFrZXMgaXQgdmVyeQotZWFzeSB0byBpbmNsdWRlIGV4YW1wbGUgSFRNTCBzb3VyY2UgY29kZSB1c2luZyBNYXJrZG93biAtLSBqdXN0IHBhc3RlCi1pdCBhbmQgaW5kZW50IGl0LCBhbmQgTWFya2Rvd24gd2lsbCBoYW5kbGUgdGhlIGhhc3NsZSBvZiBlbmNvZGluZyB0aGUKLWFtcGVyc2FuZHMgYW5kIGFuZ2xlIGJyYWNrZXRzLiBGb3IgZXhhbXBsZSwgdGhpczoKLQotICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXIiPgotICAgICAgICAgICAgJmNvcHk7IDIwMDQgRm9vIENvcnBvcmF0aW9uCi0gICAgICAgIDwvZGl2PgotCi13aWxsIHR1cm4gaW50bzoKLQotICAgIDxwcmU+PGNvZGU+Jmx0O2RpdiBjbGFzcz0iZm9vdGVyIiZndDsKLSAgICAgICAgJmFtcDtjb3B5OyAyMDA0IEZvbyBDb3Jwb3JhdGlvbgotICAgICZsdDsvZGl2Jmd0OwotICAgIDwvY29kZT48L3ByZT4KLQotUmVndWxhciBNYXJrZG93biBzeW50YXggaXMgbm90IHByb2Nlc3NlZCB3aXRoaW4gY29kZSBibG9ja3MuIEUuZy4sCi1hc3Rlcmlza3MgYXJlIGp1c3QgbGl0ZXJhbCBhc3Rlcmlza3Mgd2l0aGluIGEgY29kZSBibG9jay4gVGhpcyBtZWFucwotaXQncyBhbHNvIGVhc3kgdG8gdXNlIE1hcmtkb3duIHRvIHdyaXRlIGFib3V0IE1hcmtkb3duJ3Mgb3duIHN5bnRheC4KLQotCi0KLTxoMyBpZD0iaHIiPkhvcml6b250YWwgUnVsZXM8L2gzPgotCi1Zb3UgY2FuIHByb2R1Y2UgYSBob3Jpem9udGFsIHJ1bGUgdGFnIChgPGhyIC8+YCkgYnkgcGxhY2luZyB0aHJlZSBvcgotbW9yZSBoeXBoZW5zLCBhc3Rlcmlza3MsIG9yIHVuZGVyc2NvcmVzIG9uIGEgbGluZSBieSB0aGVtc2VsdmVzLiBJZiB5b3UKLXdpc2gsIHlvdSBtYXkgdXNlIHNwYWNlcyBiZXR3ZWVuIHRoZSBoeXBoZW5zIG9yIGFzdGVyaXNrcy4gRWFjaCBvZiB0aGUKLWZvbGxvd2luZyBsaW5lcyB3aWxsIHByb2R1Y2UgYSBob3Jpem9udGFsIHJ1bGU6Ci0KLSAgICAqICogKgotCi0gICAgKioqCi0KLSAgICAqKioqKgotCi0gICAgLSAtIC0KLQotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0JXyBfIF8KLQotCi0qICogKgotCi08aDIgaWQ9InNwYW4iPlNwYW4gRWxlbWVudHM8L2gyPgotCi08aDMgaWQ9ImxpbmsiPkxpbmtzPC9oMz4KLQotTWFya2Rvd24gc3VwcG9ydHMgdHdvIHN0eWxlIG9mIGxpbmtzOiAqaW5saW5lKiBhbmQgKnJlZmVyZW5jZSouCi0KLUluIGJvdGggc3R5bGVzLCB0aGUgbGluayB0ZXh0IGlzIGRlbGltaXRlZCBieSBbc3F1YXJlIGJyYWNrZXRzXS4KLQotVG8gY3JlYXRlIGFuIGlubGluZSBsaW5rLCB1c2UgYSBzZXQgb2YgcmVndWxhciBwYXJlbnRoZXNlcyBpbW1lZGlhdGVseQotYWZ0ZXIgdGhlIGxpbmsgdGV4dCdzIGNsb3Npbmcgc3F1YXJlIGJyYWNrZXQuIEluc2lkZSB0aGUgcGFyZW50aGVzZXMsCi1wdXQgdGhlIFVSTCB3aGVyZSB5b3Ugd2FudCB0aGUgbGluayB0byBwb2ludCwgYWxvbmcgd2l0aCBhbiAqb3B0aW9uYWwqCi10aXRsZSBmb3IgdGhlIGxpbmssIHN1cnJvdW5kZWQgaW4gcXVvdGVzLiBGb3IgZXhhbXBsZToKLQotICAgIFRoaXMgaXMgW2FuIGV4YW1wbGVdKGh0dHA6Ly9leGFtcGxlLmNvbS8gIlRpdGxlIikgaW5saW5lIGxpbmsuCi0KLSAgICBbVGhpcyBsaW5rXShodHRwOi8vZXhhbXBsZS5uZXQvKSBoYXMgbm8gdGl0bGUgYXR0cmlidXRlLgotCi1XaWxsIHByb2R1Y2U6Ci0KLSAgICA8cD5UaGlzIGlzIDxhIGhyZWY9Imh0dHA6Ly9leGFtcGxlLmNvbS8iIHRpdGxlPSJUaXRsZSI+Ci0gICAgYW4gZXhhbXBsZTwvYT4gaW5saW5lIGxpbmsuPC9wPgotCi0gICAgPHA+PGEgaHJlZj0iaHR0cDovL2V4YW1wbGUubmV0LyI+VGhpcyBsaW5rPC9hPiBoYXMgbm8KLSAgICB0aXRsZSBhdHRyaWJ1dGUuPC9wPgotCi1JZiB5b3UncmUgcmVmZXJyaW5nIHRvIGEgbG9jYWwgcmVzb3VyY2Ugb24gdGhlIHNhbWUgc2VydmVyLCB5b3UgY2FuCi11c2UgcmVsYXRpdmUgcGF0aHM6Ci0KLSAgICBTZWUgbXkgW0Fib3V0XSgvYWJvdXQvKSBwYWdlIGZvciBkZXRhaWxzLgotCi1SZWZlcmVuY2Utc3R5bGUgbGlua3MgdXNlIGEgc2Vjb25kIHNldCBvZiBzcXVhcmUgYnJhY2tldHMsIGluc2lkZQotd2hpY2ggeW91IHBsYWNlIGEgbGFiZWwgb2YgeW91ciBjaG9vc2luZyB0byBpZGVudGlmeSB0aGUgbGluazoKLQotICAgIFRoaXMgaXMgW2FuIGV4YW1wbGVdW2lkXSByZWZlcmVuY2Utc3R5bGUgbGluay4KLQotWW91IGNhbiBvcHRpb25hbGx5IHVzZSBhIHNwYWNlIHRvIHNlcGFyYXRlIHRoZSBzZXRzIG9mIGJyYWNrZXRzOgotCi0gICAgVGhpcyBpcyBbYW4gZXhhbXBsZV0gW2lkXSByZWZlcmVuY2Utc3R5bGUgbGluay4KLQotVGhlbiwgYW55d2hlcmUgaW4gdGhlIGRvY3VtZW50LCB5b3UgZGVmaW5lIHlvdXIgbGluayBsYWJlbCBsaWtlIHRoaXMsCi1vbiBhIGxpbmUgYnkgaXRzZWxmOgotCi0gICAgW2lkXTogaHR0cDovL2V4YW1wbGUuY29tLyAgIk9wdGlvbmFsIFRpdGxlIEhlcmUiCi0KLVRoYXQgaXM6Ci0KLSogICBTcXVhcmUgYnJhY2tldHMgY29udGFpbmluZyB0aGUgbGluayBpZGVudGlmaWVyIChvcHRpb25hbGx5Ci0gICAgaW5kZW50ZWQgZnJvbSB0aGUgbGVmdCBtYXJnaW4gdXNpbmcgdXAgdG8gdGhyZWUgc3BhY2VzKTsKLSogICBmb2xsb3dlZCBieSBhIGNvbG9uOwotKiAgIGZvbGxvd2VkIGJ5IG9uZSBvciBtb3JlIHNwYWNlcyAob3IgdGFicyk7Ci0qICAgZm9sbG93ZWQgYnkgdGhlIFVSTCBmb3IgdGhlIGxpbms7Ci0qICAgb3B0aW9uYWxseSBmb2xsb3dlZCBieSBhIHRpdGxlIGF0dHJpYnV0ZSBmb3IgdGhlIGxpbmssIGVuY2xvc2VkCi0gICAgaW4gZG91YmxlIG9yIHNpbmdsZSBxdW90ZXMuCi0KLVRoZSBsaW5rIFVSTCBtYXksIG9wdGlvbmFsbHksIGJlIHN1cnJvdW5kZWQgYnkgYW5nbGUgYnJhY2tldHM6Ci0KLSAgICBbaWRdOiA8aHR0cDovL2V4YW1wbGUuY29tLz4gICJPcHRpb25hbCBUaXRsZSBIZXJlIgotCi1Zb3UgY2FuIHB1dCB0aGUgdGl0bGUgYXR0cmlidXRlIG9uIHRoZSBuZXh0IGxpbmUgYW5kIHVzZSBleHRyYSBzcGFjZXMKLW9yIHRhYnMgZm9yIHBhZGRpbmcsIHdoaWNoIHRlbmRzIHRvIGxvb2sgYmV0dGVyIHdpdGggbG9uZ2VyIFVSTHM6Ci0KLSAgICBbaWRdOiBodHRwOi8vZXhhbXBsZS5jb20vbG9uZ2lzaC9wYXRoL3RvL3Jlc291cmNlL2hlcmUKLSAgICAgICAgIk9wdGlvbmFsIFRpdGxlIEhlcmUiCi0KLUxpbmsgZGVmaW5pdGlvbnMgYXJlIG9ubHkgdXNlZCBmb3IgY3JlYXRpbmcgbGlua3MgZHVyaW5nIE1hcmtkb3duCi1wcm9jZXNzaW5nLCBhbmQgYXJlIHN0cmlwcGVkIGZyb20geW91ciBkb2N1bWVudCBpbiB0aGUgSFRNTCBvdXRwdXQuCi0KLUxpbmsgZGVmaW5pdGlvbiBuYW1lcyBtYXkgY29uc3Rpc3Qgb2YgbGV0dGVycywgbnVtYmVycywgc3BhY2VzLCBhbmQgcHVuY3R1YXRpb24gLS0gYnV0IHRoZXkgYXJlICpub3QqIGNhc2Ugc2Vuc2l0aXZlLiBFLmcuIHRoZXNlIHR3byBsaW5rczoKLQotCVtsaW5rIHRleHRdW2FdCi0JW2xpbmsgdGV4dF1bQV0KLQotYXJlIGVxdWl2YWxlbnQuCi0KLVRoZSAqaW1wbGljaXQgbGluayBuYW1lKiBzaG9ydGN1dCBhbGxvd3MgeW91IHRvIG9taXQgdGhlIG5hbWUgb2YgdGhlCi1saW5rLCBpbiB3aGljaCBjYXNlIHRoZSBsaW5rIHRleHQgaXRzZWxmIGlzIHVzZWQgYXMgdGhlIG5hbWUuCi1KdXN0IHVzZSBhbiBlbXB0eSBzZXQgb2Ygc3F1YXJlIGJyYWNrZXRzIC0tIGUuZy4sIHRvIGxpbmsgdGhlIHdvcmQKLSJHb29nbGUiIHRvIHRoZSBnb29nbGUuY29tIHdlYiBzaXRlLCB5b3UgY291bGQgc2ltcGx5IHdyaXRlOgotCi0JW0dvb2dsZV1bXQotCi1BbmQgdGhlbiBkZWZpbmUgdGhlIGxpbms6Ci0KLQlbR29vZ2xlXTogaHR0cDovL2dvb2dsZS5jb20vCi0KLUJlY2F1c2UgbGluayBuYW1lcyBtYXkgY29udGFpbiBzcGFjZXMsIHRoaXMgc2hvcnRjdXQgZXZlbiB3b3JrcyBmb3IKLW11bHRpcGxlIHdvcmRzIGluIHRoZSBsaW5rIHRleHQ6Ci0KLQlWaXNpdCBbRGFyaW5nIEZpcmViYWxsXVtdIGZvciBtb3JlIGluZm9ybWF0aW9uLgotCi1BbmQgdGhlbiBkZWZpbmUgdGhlIGxpbms6Ci0KLQlbRGFyaW5nIEZpcmViYWxsXTogaHR0cDovL2RhcmluZ2ZpcmViYWxsLm5ldC8KLQotTGluayBkZWZpbml0aW9ucyBjYW4gYmUgcGxhY2VkIGFueXdoZXJlIGluIHlvdXIgTWFya2Rvd24gZG9jdW1lbnQuIEkKLXRlbmQgdG8gcHV0IHRoZW0gaW1tZWRpYXRlbHkgYWZ0ZXIgZWFjaCBwYXJhZ3JhcGggaW4gd2hpY2ggdGhleSdyZQotdXNlZCwgYnV0IGlmIHlvdSB3YW50LCB5b3UgY2FuIHB1dCB0aGVtIGFsbCBhdCB0aGUgZW5kIG9mIHlvdXIKLWRvY3VtZW50LCBzb3J0IG9mIGxpa2UgZm9vdG5vdGVzLgotCi1IZXJlJ3MgYW4gZXhhbXBsZSBvZiByZWZlcmVuY2UgbGlua3MgaW4gYWN0aW9uOgotCi0gICAgSSBnZXQgMTAgdGltZXMgbW9yZSB0cmFmZmljIGZyb20gW0dvb2dsZV0gWzFdIHRoYW4gZnJvbQotICAgIFtZYWhvb10gWzJdIG9yIFtNU05dIFszXS4KLQotICAgICAgWzFdOiBodHRwOi8vZ29vZ2xlLmNvbS8gICAgICAgICJHb29nbGUiCi0gICAgICBbMl06IGh0dHA6Ly9zZWFyY2gueWFob28uY29tLyAgIllhaG9vIFNlYXJjaCIKLSAgICAgIFszXTogaHR0cDovL3NlYXJjaC5tc24uY29tLyAgICAiTVNOIFNlYXJjaCIKLQotVXNpbmcgdGhlIGltcGxpY2l0IGxpbmsgbmFtZSBzaG9ydGN1dCwgeW91IGNvdWxkIGluc3RlYWQgd3JpdGU6Ci0KLSAgICBJIGdldCAxMCB0aW1lcyBtb3JlIHRyYWZmaWMgZnJvbSBbR29vZ2xlXVtdIHRoYW4gZnJvbQotICAgIFtZYWhvb11bXSBvciBbTVNOXVtdLgotCi0gICAgICBbZ29vZ2xlXTogaHR0cDovL2dvb2dsZS5jb20vICAgICAgICAiR29vZ2xlIgotICAgICAgW3lhaG9vXTogIGh0dHA6Ly9zZWFyY2gueWFob28uY29tLyAgIllhaG9vIFNlYXJjaCIKLSAgICAgIFttc25dOiAgICBodHRwOi8vc2VhcmNoLm1zbi5jb20vICAgICJNU04gU2VhcmNoIgotCi1Cb3RoIG9mIHRoZSBhYm92ZSBleGFtcGxlcyB3aWxsIHByb2R1Y2UgdGhlIGZvbGxvd2luZyBIVE1MIG91dHB1dDoKLQotICAgIDxwPkkgZ2V0IDEwIHRpbWVzIG1vcmUgdHJhZmZpYyBmcm9tIDxhIGhyZWY9Imh0dHA6Ly9nb29nbGUuY29tLyIKLSAgICB0aXRsZT0iR29vZ2xlIj5Hb29nbGU8L2E+IHRoYW4gZnJvbQotICAgIDxhIGhyZWY9Imh0dHA6Ly9zZWFyY2gueWFob28uY29tLyIgdGl0bGU9IllhaG9vIFNlYXJjaCI+WWFob288L2E+Ci0gICAgb3IgPGEgaHJlZj0iaHR0cDovL3NlYXJjaC5tc24uY29tLyIgdGl0bGU9Ik1TTiBTZWFyY2giPk1TTjwvYT4uPC9wPgotCi1Gb3IgY29tcGFyaXNvbiwgaGVyZSBpcyB0aGUgc2FtZSBwYXJhZ3JhcGggd3JpdHRlbiB1c2luZwotTWFya2Rvd24ncyBpbmxpbmUgbGluayBzdHlsZToKLQotICAgIEkgZ2V0IDEwIHRpbWVzIG1vcmUgdHJhZmZpYyBmcm9tIFtHb29nbGVdKGh0dHA6Ly9nb29nbGUuY29tLyAiR29vZ2xlIikKLSAgICB0aGFuIGZyb20gW1lhaG9vXShodHRwOi8vc2VhcmNoLnlhaG9vLmNvbS8gIllhaG9vIFNlYXJjaCIpIG9yCi0gICAgW01TTl0oaHR0cDovL3NlYXJjaC5tc24uY29tLyAiTVNOIFNlYXJjaCIpLgotCi1UaGUgcG9pbnQgb2YgcmVmZXJlbmNlLXN0eWxlIGxpbmtzIGlzIG5vdCB0aGF0IHRoZXkncmUgZWFzaWVyIHRvCi13cml0ZS4gVGhlIHBvaW50IGlzIHRoYXQgd2l0aCByZWZlcmVuY2Utc3R5bGUgbGlua3MsIHlvdXIgZG9jdW1lbnQKLXNvdXJjZSBpcyB2YXN0bHkgbW9yZSByZWFkYWJsZS4gQ29tcGFyZSB0aGUgYWJvdmUgZXhhbXBsZXM6IHVzaW5nCi1yZWZlcmVuY2Utc3R5bGUgbGlua3MsIHRoZSBwYXJhZ3JhcGggaXRzZWxmIGlzIG9ubHkgODEgY2hhcmFjdGVycwotbG9uZzsgd2l0aCBpbmxpbmUtc3R5bGUgbGlua3MsIGl0J3MgMTc2IGNoYXJhY3RlcnM7IGFuZCBhcyByYXcgSFRNTCwKLWl0J3MgMjM0IGNoYXJhY3RlcnMuIEluIHRoZSByYXcgSFRNTCwgdGhlcmUncyBtb3JlIG1hcmt1cCB0aGFuIHRoZXJlCi1pcyB0ZXh0LgotCi1XaXRoIE1hcmtkb3duJ3MgcmVmZXJlbmNlLXN0eWxlIGxpbmtzLCBhIHNvdXJjZSBkb2N1bWVudCBtdWNoIG1vcmUKLWNsb3NlbHkgcmVzZW1ibGVzIHRoZSBmaW5hbCBvdXRwdXQsIGFzIHJlbmRlcmVkIGluIGEgYnJvd3Nlci4gQnkKLWFsbG93aW5nIHlvdSB0byBtb3ZlIHRoZSBtYXJrdXAtcmVsYXRlZCBtZXRhZGF0YSBvdXQgb2YgdGhlIHBhcmFncmFwaCwKLXlvdSBjYW4gYWRkIGxpbmtzIHdpdGhvdXQgaW50ZXJydXB0aW5nIHRoZSBuYXJyYXRpdmUgZmxvdyBvZiB5b3VyCi1wcm9zZS4KLQotCi08aDMgaWQ9ImVtIj5FbXBoYXNpczwvaDM+Ci0KLU1hcmtkb3duIHRyZWF0cyBhc3Rlcmlza3MgKGAqYCkgYW5kIHVuZGVyc2NvcmVzIChgX2ApIGFzIGluZGljYXRvcnMgb2YKLWVtcGhhc2lzLiBUZXh0IHdyYXBwZWQgd2l0aCBvbmUgYCpgIG9yIGBfYCB3aWxsIGJlIHdyYXBwZWQgd2l0aCBhbgotSFRNTCBgPGVtPmAgdGFnOyBkb3VibGUgYCpgJ3Mgb3IgYF9gJ3Mgd2lsbCBiZSB3cmFwcGVkIHdpdGggYW4gSFRNTAotYDxzdHJvbmc+YCB0YWcuIEUuZy4sIHRoaXMgaW5wdXQ6Ci0KLSAgICAqc2luZ2xlIGFzdGVyaXNrcyoKLQotICAgIF9zaW5nbGUgdW5kZXJzY29yZXNfCi0KLSAgICAqKmRvdWJsZSBhc3Rlcmlza3MqKgotCi0gICAgX19kb3VibGUgdW5kZXJzY29yZXNfXwotCi13aWxsIHByb2R1Y2U6Ci0KLSAgICA8ZW0+c2luZ2xlIGFzdGVyaXNrczwvZW0+Ci0KLSAgICA8ZW0+c2luZ2xlIHVuZGVyc2NvcmVzPC9lbT4KLQotICAgIDxzdHJvbmc+ZG91YmxlIGFzdGVyaXNrczwvc3Ryb25nPgotCi0gICAgPHN0cm9uZz5kb3VibGUgdW5kZXJzY29yZXM8L3N0cm9uZz4KLQotWW91IGNhbiB1c2Ugd2hpY2hldmVyIHN0eWxlIHlvdSBwcmVmZXI7IHRoZSBsb25lIHJlc3RyaWN0aW9uIGlzIHRoYXQKLXRoZSBzYW1lIGNoYXJhY3RlciBtdXN0IGJlIHVzZWQgdG8gb3BlbiBhbmQgY2xvc2UgYW4gZW1waGFzaXMgc3Bhbi4KLQotRW1waGFzaXMgY2FuIGJlIHVzZWQgaW4gdGhlIG1pZGRsZSBvZiBhIHdvcmQ6Ci0KLSAgICB1bipmdWNraW5nKmJlbGlldmFibGUKLQotQnV0IGlmIHlvdSBzdXJyb3VuZCBhbiBgKmAgb3IgYF9gIHdpdGggc3BhY2VzLCBpdCdsbCBiZSB0cmVhdGVkIGFzIGEKLWxpdGVyYWwgYXN0ZXJpc2sgb3IgdW5kZXJzY29yZS4KLQotVG8gcHJvZHVjZSBhIGxpdGVyYWwgYXN0ZXJpc2sgb3IgdW5kZXJzY29yZSBhdCBhIHBvc2l0aW9uIHdoZXJlIGl0Ci13b3VsZCBvdGhlcndpc2UgYmUgdXNlZCBhcyBhbiBlbXBoYXNpcyBkZWxpbWl0ZXIsIHlvdSBjYW4gYmFja3NsYXNoCi1lc2NhcGUgaXQ6Ci0KLSAgICBcKnRoaXMgdGV4dCBpcyBzdXJyb3VuZGVkIGJ5IGxpdGVyYWwgYXN0ZXJpc2tzXCoKLQotCi0KLTxoMyBpZD0iY29kZSI+Q29kZTwvaDM+Ci0KLVRvIGluZGljYXRlIGEgc3BhbiBvZiBjb2RlLCB3cmFwIGl0IHdpdGggYmFja3RpY2sgcXVvdGVzIChgYCBgIGBgKS4KLVVubGlrZSBhIHByZS1mb3JtYXR0ZWQgY29kZSBibG9jaywgYSBjb2RlIHNwYW4gaW5kaWNhdGVzIGNvZGUgd2l0aGluIGEKLW5vcm1hbCBwYXJhZ3JhcGguIEZvciBleGFtcGxlOgotCi0gICAgVXNlIHRoZSBgcHJpbnRmKClgIGZ1bmN0aW9uLgotCi13aWxsIHByb2R1Y2U6Ci0KLSAgICA8cD5Vc2UgdGhlIDxjb2RlPnByaW50ZigpPC9jb2RlPiBmdW5jdGlvbi48L3A+Ci0KLVRvIGluY2x1ZGUgYSBsaXRlcmFsIGJhY2t0aWNrIGNoYXJhY3RlciB3aXRoaW4gYSBjb2RlIHNwYW4sIHlvdSBjYW4gdXNlCi1tdWx0aXBsZSBiYWNrdGlja3MgYXMgdGhlIG9wZW5pbmcgYW5kIGNsb3NpbmcgZGVsaW1pdGVyczoKLQotICAgIGBgVGhlcmUgaXMgYSBsaXRlcmFsIGJhY2t0aWNrIChgKSBoZXJlLmBgCi0KLXdoaWNoIHdpbGwgcHJvZHVjZSB0aGlzOgotCi0gICAgPHA+PGNvZGU+VGhlcmUgaXMgYSBsaXRlcmFsIGJhY2t0aWNrIChgKSBoZXJlLjwvY29kZT48L3A+Ci0KLVRoZSBiYWNrdGljayBkZWxpbWl0ZXJzIHN1cnJvdW5kaW5nIGEgY29kZSBzcGFuIG1heSBpbmNsdWRlIHNwYWNlcyAtLQotb25lIGFmdGVyIHRoZSBvcGVuaW5nLCBvbmUgYmVmb3JlIHRoZSBjbG9zaW5nLiBUaGlzIGFsbG93cyB5b3UgdG8gcGxhY2UKLWxpdGVyYWwgYmFja3RpY2sgY2hhcmFjdGVycyBhdCB0aGUgYmVnaW5uaW5nIG9yIGVuZCBvZiBhIGNvZGUgc3BhbjoKLQotCUEgc2luZ2xlIGJhY2t0aWNrIGluIGEgY29kZSBzcGFuOiBgYCBgIGBgCi0KLQlBIGJhY2t0aWNrLWRlbGltaXRlZCBzdHJpbmcgaW4gYSBjb2RlIHNwYW46IGBgIGBmb29gIGBgCi0KLXdpbGwgcHJvZHVjZToKLQotCTxwPkEgc2luZ2xlIGJhY2t0aWNrIGluIGEgY29kZSBzcGFuOiA8Y29kZT5gPC9jb2RlPjwvcD4KLQotCTxwPkEgYmFja3RpY2stZGVsaW1pdGVkIHN0cmluZyBpbiBhIGNvZGUgc3BhbjogPGNvZGU+YGZvb2A8L2NvZGU+PC9wPgotCi1XaXRoIGEgY29kZSBzcGFuLCBhbXBlcnNhbmRzIGFuZCBhbmdsZSBicmFja2V0cyBhcmUgZW5jb2RlZCBhcyBIVE1MCi1lbnRpdGllcyBhdXRvbWF0aWNhbGx5LCB3aGljaCBtYWtlcyBpdCBlYXN5IHRvIGluY2x1ZGUgZXhhbXBsZSBIVE1MCi10YWdzLiBNYXJrZG93biB3aWxsIHR1cm4gdGhpczoKLQotICAgIFBsZWFzZSBkb24ndCB1c2UgYW55IGA8Ymxpbms+YCB0YWdzLgotCi1pbnRvOgotCi0gICAgPHA+UGxlYXNlIGRvbid0IHVzZSBhbnkgPGNvZGU+Jmx0O2JsaW5rJmd0OzwvY29kZT4gdGFncy48L3A+Ci0KLVlvdSBjYW4gd3JpdGUgdGhpczoKLQotICAgIGAmIzgyMTI7YCBpcyB0aGUgZGVjaW1hbC1lbmNvZGVkIGVxdWl2YWxlbnQgb2YgYCZtZGFzaDtgLgotCi10byBwcm9kdWNlOgotCi0gICAgPHA+PGNvZGU+JmFtcDsjODIxMjs8L2NvZGU+IGlzIHRoZSBkZWNpbWFsLWVuY29kZWQKLSAgICBlcXVpdmFsZW50IG9mIDxjb2RlPiZhbXA7bWRhc2g7PC9jb2RlPi48L3A+Ci0KLQotCi08aDMgaWQ9ImltZyI+SW1hZ2VzPC9oMz4KLQotQWRtaXR0ZWRseSwgaXQncyBmYWlybHkgZGlmZmljdWx0IHRvIGRldmlzZSBhICJuYXR1cmFsIiBzeW50YXggZm9yCi1wbGFjaW5nIGltYWdlcyBpbnRvIGEgcGxhaW4gdGV4dCBkb2N1bWVudCBmb3JtYXQuCi0KLU1hcmtkb3duIHVzZXMgYW4gaW1hZ2Ugc3ludGF4IHRoYXQgaXMgaW50ZW5kZWQgdG8gcmVzZW1ibGUgdGhlIHN5bnRheAotZm9yIGxpbmtzLCBhbGxvd2luZyBmb3IgdHdvIHN0eWxlczogKmlubGluZSogYW5kICpyZWZlcmVuY2UqLgotCi1JbmxpbmUgaW1hZ2Ugc3ludGF4IGxvb2tzIGxpa2UgdGhpczoKLQotICAgICFbQWx0IHRleHRdKC9wYXRoL3RvL2ltZy5qcGcpCi0KLSAgICAhW0FsdCB0ZXh0XSgvcGF0aC90by9pbWcuanBnICJPcHRpb25hbCB0aXRsZSIpCi0KLVRoYXQgaXM6Ci0KLSogICBBbiBleGNsYW1hdGlvbiBtYXJrOiBgIWA7Ci0qICAgZm9sbG93ZWQgYnkgYSBzZXQgb2Ygc3F1YXJlIGJyYWNrZXRzLCBjb250YWluaW5nIHRoZSBgYWx0YAotICAgIGF0dHJpYnV0ZSB0ZXh0IGZvciB0aGUgaW1hZ2U7Ci0qICAgZm9sbG93ZWQgYnkgYSBzZXQgb2YgcGFyZW50aGVzZXMsIGNvbnRhaW5pbmcgdGhlIFVSTCBvciBwYXRoIHRvCi0gICAgdGhlIGltYWdlLCBhbmQgYW4gb3B0aW9uYWwgYHRpdGxlYCBhdHRyaWJ1dGUgZW5jbG9zZWQgaW4gZG91YmxlCi0gICAgb3Igc2luZ2xlIHF1b3Rlcy4KLQotUmVmZXJlbmNlLXN0eWxlIGltYWdlIHN5bnRheCBsb29rcyBsaWtlIHRoaXM6Ci0KLSAgICAhW0FsdCB0ZXh0XVtpZF0KLQotV2hlcmUgImlkIiBpcyB0aGUgbmFtZSBvZiBhIGRlZmluZWQgaW1hZ2UgcmVmZXJlbmNlLiBJbWFnZSByZWZlcmVuY2VzCi1hcmUgZGVmaW5lZCB1c2luZyBzeW50YXggaWRlbnRpY2FsIHRvIGxpbmsgcmVmZXJlbmNlczoKLQotICAgIFtpZF06IHVybC90by9pbWFnZSAgIk9wdGlvbmFsIHRpdGxlIGF0dHJpYnV0ZSIKLQotQXMgb2YgdGhpcyB3cml0aW5nLCBNYXJrZG93biBoYXMgbm8gc3ludGF4IGZvciBzcGVjaWZ5aW5nIHRoZQotZGltZW5zaW9ucyBvZiBhbiBpbWFnZTsgaWYgdGhpcyBpcyBpbXBvcnRhbnQgdG8geW91LCB5b3UgY2FuIHNpbXBseQotdXNlIHJlZ3VsYXIgSFRNTCBgPGltZz5gIHRhZ3MuCi0KLQotKiAqICoKLQotCi08aDIgaWQ9Im1pc2MiPk1pc2NlbGxhbmVvdXM8L2gyPgotCi08aDMgaWQ9ImF1dG9saW5rIj5BdXRvbWF0aWMgTGlua3M8L2gzPgotCi1NYXJrZG93biBzdXBwb3J0cyBhIHNob3J0Y3V0IHN0eWxlIGZvciBjcmVhdGluZyAiYXV0b21hdGljIiBsaW5rcyBmb3IgVVJMcyBhbmQgZW1haWwgYWRkcmVzc2VzOiBzaW1wbHkgc3Vycm91bmQgdGhlIFVSTCBvciBlbWFpbCBhZGRyZXNzIHdpdGggYW5nbGUgYnJhY2tldHMuIFdoYXQgdGhpcyBtZWFucyBpcyB0aGF0IGlmIHlvdSB3YW50IHRvIHNob3cgdGhlIGFjdHVhbCB0ZXh0IG9mIGEgVVJMIG9yIGVtYWlsIGFkZHJlc3MsIGFuZCBhbHNvIGhhdmUgaXQgYmUgYSBjbGlja2FibGUgbGluaywgeW91IGNhbiBkbyB0aGlzOgotCi0gICAgPGh0dHA6Ly9leGFtcGxlLmNvbS8+Ci0KLU1hcmtkb3duIHdpbGwgdHVybiB0aGlzIGludG86Ci0KLSAgICA8YSBocmVmPSJodHRwOi8vZXhhbXBsZS5jb20vIj5odHRwOi8vZXhhbXBsZS5jb20vPC9hPgotCi1BdXRvbWF0aWMgbGlua3MgZm9yIGVtYWlsIGFkZHJlc3NlcyB3b3JrIHNpbWlsYXJseSwgZXhjZXB0IHRoYXQKLU1hcmtkb3duIHdpbGwgYWxzbyBwZXJmb3JtIGEgYml0IG9mIHJhbmRvbWl6ZWQgZGVjaW1hbCBhbmQgaGV4Ci1lbnRpdHktZW5jb2RpbmcgdG8gaGVscCBvYnNjdXJlIHlvdXIgYWRkcmVzcyBmcm9tIGFkZHJlc3MtaGFydmVzdGluZwotc3BhbWJvdHMuIEZvciBleGFtcGxlLCBNYXJrZG93biB3aWxsIHR1cm4gdGhpczoKLQotICAgIDxhZGRyZXNzQGV4YW1wbGUuY29tPgotCi1pbnRvIHNvbWV0aGluZyBsaWtlIHRoaXM6Ci0KLSAgICA8YSBocmVmPSImI3g2RDsmI3g2MTtpJiN4NkM7JiN4NzQ7JiN4NkY7OiYjeDYxOyYjeDY0OyYjeDY0OyYjeDcyOyYjeDY1OwotICAgICYjMTE1OyYjMTE1OyYjNjQ7JiMxMDE7JiMxMjA7JiN4NjE7JiMxMDk7JiN4NzA7JiN4NkM7ZSYjeDJFOyYjOTk7JiMxMTE7Ci0gICAgJiMxMDk7Ij4mI3g2MTsmI3g2NDsmI3g2NDsmI3g3MjsmI3g2NTsmIzExNTsmIzExNTsmIzY0OyYjMTAxOyYjMTIwOyYjeDYxOwotICAgICYjMTA5OyYjeDcwOyYjeDZDO2UmI3gyRTsmIzk5OyYjMTExOyYjMTA5OzwvYT4KLQotd2hpY2ggd2lsbCByZW5kZXIgaW4gYSBicm93c2VyIGFzIGEgY2xpY2thYmxlIGxpbmsgdG8gImFkZHJlc3NAZXhhbXBsZS5jb20iLgotCi0oVGhpcyBzb3J0IG9mIGVudGl0eS1lbmNvZGluZyB0cmljayB3aWxsIGluZGVlZCBmb29sIG1hbnksIGlmIG5vdAotbW9zdCwgYWRkcmVzcy1oYXJ2ZXN0aW5nIGJvdHMsIGJ1dCBpdCBkZWZpbml0ZWx5IHdvbid0IGZvb2wgYWxsIG9mCi10aGVtLiBJdCdzIGJldHRlciB0aGFuIG5vdGhpbmcsIGJ1dCBhbiBhZGRyZXNzIHB1Ymxpc2hlZCBpbiB0aGlzIHdheQotd2lsbCBwcm9iYWJseSBldmVudHVhbGx5IHN0YXJ0IHJlY2VpdmluZyBzcGFtLikKLQotCi0KLTxoMyBpZD0iYmFja3NsYXNoIj5CYWNrc2xhc2ggRXNjYXBlczwvaDM+Ci0KLU1hcmtkb3duIGFsbG93cyB5b3UgdG8gdXNlIGJhY2tzbGFzaCBlc2NhcGVzIHRvIGdlbmVyYXRlIGxpdGVyYWwKLWNoYXJhY3RlcnMgd2hpY2ggd291bGQgb3RoZXJ3aXNlIGhhdmUgc3BlY2lhbCBtZWFuaW5nIGluIE1hcmtkb3duJ3MKLWZvcm1hdHRpbmcgc3ludGF4LiBGb3IgZXhhbXBsZSwgaWYgeW91IHdhbnRlZCB0byBzdXJyb3VuZCBhIHdvcmQgd2l0aAotbGl0ZXJhbCBhc3Rlcmlza3MgKGluc3RlYWQgb2YgYW4gSFRNTCBgPGVtPmAgdGFnKSwgeW91IGNhbiBiYWNrc2xhc2hlcwotYmVmb3JlIHRoZSBhc3Rlcmlza3MsIGxpa2UgdGhpczoKLQotICAgIFwqbGl0ZXJhbCBhc3Rlcmlza3NcKgotCi1NYXJrZG93biBwcm92aWRlcyBiYWNrc2xhc2ggZXNjYXBlcyBmb3IgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzOgotCi0gICAgXCAgIGJhY2tzbGFzaAotICAgIGAgICBiYWNrdGljawotICAgICogICBhc3RlcmlzawotICAgIF8gICB1bmRlcnNjb3JlCi0gICAge30gIGN1cmx5IGJyYWNlcwotICAgIFtdICBzcXVhcmUgYnJhY2tldHMKLSAgICAoKSAgcGFyZW50aGVzZXMKLSAgICAjICAgaGFzaCBtYXJrCi0JKwlwbHVzIHNpZ24KLQktCW1pbnVzIHNpZ24gKGh5cGhlbikKLSAgICAuICAgZG90Ci0gICAgISAgIGV4Y2xhbWF0aW9uIG1hcmsKLQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcmtkb3duVGVzdDEwMy9OZXN0ZWQgYmxvY2txdW90ZXMubWQKLS0tLQotCi0+IGZvbwotPgotPiA+IGJhcgotPgotPiBmb28KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJrZG93blRlc3QxMDMvT3JkZXJlZCBhbmQgdW5vcmRlcmVkIGxpc3RzLm1kCi0tLS0KLQotIyMgVW5vcmRlcmVkCi0KLUFzdGVyaXNrcyB0aWdodDoKLQotKglhc3RlcmlzayAxCi0qCWFzdGVyaXNrIDIKLSoJYXN0ZXJpc2sgMwotCi0KLUFzdGVyaXNrcyBsb29zZToKLQotKglhc3RlcmlzayAxCi0KLSoJYXN0ZXJpc2sgMgotCi0qCWFzdGVyaXNrIDMKLQotKiAqICoKLQotUGx1c2VzIHRpZ2h0OgotCi0rCVBsdXMgMQotKwlQbHVzIDIKLSsJUGx1cyAzCi0KLQotUGx1c2VzIGxvb3NlOgotCi0rCVBsdXMgMQotCi0rCVBsdXMgMgotCi0rCVBsdXMgMwotCi0qICogKgotCi0KLU1pbnVzZXMgdGlnaHQ6Ci0KLS0JTWludXMgMQotLQlNaW51cyAyCi0tCU1pbnVzIDMKLQotCi1NaW51c2VzIGxvb3NlOgotCi0tCU1pbnVzIDEKLQotLQlNaW51cyAyCi0KLS0JTWludXMgMwotCi0KLSMjIE9yZGVyZWQKLQotVGlnaHQ6Ci0KLTEuCUZpcnN0Ci0yLglTZWNvbmQKLTMuCVRoaXJkCi0KLWFuZDoKLQotMS4gT25lCi0yLiBUd28KLTMuIFRocmVlCi0KLQotTG9vc2UgdXNpbmcgdGFiczoKLQotMS4JRmlyc3QKLQotMi4JU2Vjb25kCi0KLTMuCVRoaXJkCi0KLWFuZCB1c2luZyBzcGFjZXM6Ci0KLTEuIE9uZQotCi0yLiBUd28KLQotMy4gVGhyZWUKLQotTXVsdGlwbGUgcGFyYWdyYXBoczoKLQotMS4JSXRlbSAxLCBncmFmIG9uZS4KLQotCUl0ZW0gMi4gZ3JhZiB0d28uIFRoZSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nJ3MKLQliYWNrLgotCi0yLglJdGVtIDIuCi0KLTMuCUl0ZW0gMy4KLQotCi0KLSMjIE5lc3RlZAotCi0qCVRhYgotCSoJVGFiCi0JCSoJVGFiCi0KLUhlcmUncyBhbm90aGVyOgotCi0xLiBGaXJzdAotMi4gU2Vjb25kOgotCSogRmVlCi0JKiBGaWUKLQkqIEZvZQotMy4gVGhpcmQKLQotU2FtZSB0aGluZyBidXQgd2l0aCBwYXJhZ3JhcGhzOgotCi0xLiBGaXJzdAotCi0yLiBTZWNvbmQ6Ci0JKiBGZWUKLQkqIEZpZQotCSogRm9lCi0KLTMuIFRoaXJkCi0KLQotVGhpcyB3YXMgYW4gZXJyb3IgaW4gTWFya2Rvd24gMS4wLjE6Ci0KLSoJdGhpcwotCi0JKglzdWIKLQotCXRoYXQKLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJrZG93blRlc3QxMDMvU3Ryb25nIGFuZCBlbSB0b2dldGhlci5tZAotLS0tCi0KLSoqKlRoaXMgaXMgc3Ryb25nIGFuZCBlbS4qKioKLQotU28gaXMgKioqdGhpcyoqKiB3b3JkLgotCi1fX19UaGlzIGlzIHN0cm9uZyBhbmQgZW0uX19fCi0KLVNvIGlzIF9fX3RoaXNfX18gd29yZC4KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJrZG93blRlc3QxMDMvVGFicy5tZAotLS0tCi0KLSsJdGhpcyBpcyBhIGxpc3QgaXRlbQotCWluZGVudGVkIHdpdGggdGFicwotCi0rICAgdGhpcyBpcyBhIGxpc3QgaXRlbQotICAgIGluZGVudGVkIHdpdGggc3BhY2VzCi0KLUNvZGU6Ci0KLQl0aGlzIGNvZGUgYmxvY2sgaXMgaW5kZW50ZWQgYnkgb25lIHRhYgotCi1BbmQ6Ci0KLQkJdGhpcyBjb2RlIGJsb2NrIGlzIGluZGVudGVkIGJ5IHR3byB0YWJzCi0KLUFuZDoKLQotCSsJdGhpcyBpcyBhbiBleGFtcGxlIGxpc3QgaXRlbQotCQlpbmRlbnRlZCB3aXRoIHRhYnMKLQotCSsgICB0aGlzIGlzIGFuIGV4YW1wbGUgbGlzdCBpdGVtCi0JICAgIGluZGVudGVkIHdpdGggc3BhY2VzCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvTWFya2Rvd25UZXN0MTAzL1RpZHluZXNzLm1kCi0tLS0KLQotPiBBIGxpc3Qgd2l0aGluIGEgYmxvY2txdW90ZToKLT4KLT4gKglhc3RlcmlzayAxCi0+ICoJYXN0ZXJpc2sgMgotPiAqCWFzdGVyaXNrIDMKLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJ1a3UvYWJicmV2aWF0aW9ucy5tZAotLS0tCi0KLQotVGhlIEhUTUwgc3BlY2lmaWNhdGlvbiBpcyBtYWludGFpbmVkIGJ5IHRoZSBXM0MuCi0KLSpbSFRNTF06IEh5cGVyIFRleHQgTWFya3VwIExhbmd1YWdlCi0qW1czQ106ICBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtCi0KLQotCi1PcGVyYXRpb24gVGlncmEgR2VuZXNpcyBpcyBnb2luZyB3ZWxsLgotCi0qW1RpZ3JhIEdlbmVzaXNdOgotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcnVrdS9hbHQubWQKLS0tLQotCi0gIVtiYXJdKC9mb28uanBnKQotCi0KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJ1a3UvYmxhbmsubWQKLS0tLQotCi0KLUxpbmVhIDEKLQotTGluZWEgMgotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcnVrdS9ibGFua3NfaW5fY29kZS5tZAotLS0tCi0KLVRoaXMgYmxvY2sgaXMgY29tcG9zZWQgb2YgdGhyZWUgbGluZXM6Ci0KLQlvbmUKLQotCXRocmVlCi0KLVRoaXMgYmxvY2sgaXMgY29tcG9zZWQgb2YgNQotCi0KLQlvbmUKLQotCi0JZm91cgotCi0KLVRoaXMgYmxvY2sgaXMgY29tcG9zZWQgb2YgMgotCi0KLQl0d28KLQotCi0KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJ1a3UvYnVnX2RlZi5tZAotLS0tCi0KLVt0ZXN0XVtdOgotCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvTWFydWt1L2J1Z190YWJsZS5tZAotLS0tCi0KLQotCi1oZWxsbwotezogc3VtbWFyeT0iVGFibGUgc3VtbWFyeSIgLmNsYXNzMSBzdHlsZT0iY29sb3I6cmVkIn0KLQotaCAgICAgICAgIHwgaAotLS0tLS0tLS0tLXwtLQotezp0fSAgYzEgIHwgYzIKLXs6IHN1bW1hcnk9IlRhYmxlIHN1bW1hcnkiIC5jbGFzczEgc3R5bGU9ImNvbG9yOnJlZCJ9Ci0KLQotCi17OnQ6IHNjb3BlPSJyb3cifQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcnVrdS9jb2RlMi5tZAotLS0tCi0KLT4gQ29kZQotPgotPiAgICAgQ2lhbwotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcnVrdS9jb2RlMy5tZAotLS0tCi0KLQotVGhpcyBpcyBjb2RlICg0IHNwYWNlcyk6Ci0KLSAgICBDb2RlCi1UaGlzIGlzIG5vdCBjb2RlCi0KLSAgICBDb2RlCi0KLVRoaXMgaXMgY29kZSAoMSB0YWIpOgotCi0JQ29kZQotVGhpcyBpcyBub3QgY29kZQotCi0JQ29kZQotCi0KLQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcnVrdS9jb2RlLm1kCi0tLS0KLQotSGVyZSBpcyBhbiBleGFtcGxlIG9mIEFwcGxlU2NyaXB0OgotCi0gICAgdGVsbCBhcHBsaWNhdGlvbiAiRm9vIgotICAgICAgICBiZWVwCi0gICAgZW5kIHRlbGwKLSAgICAJdGFiCi0KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJ1a3UvZGF0YV9sb3NzLm1kCi0tLS0KLQotMS4gYWJjZAotZWZnaAotaWprbAotCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvTWFydWt1L2Vhc3kubWQKLS0tLQotCi0qSGVsbG8hKiBob3cgYXJlICoqeW91Kio/Ci0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvTWFydWt1L2VtYWlsLm1kCi0tLS0KLQotCi0KLVRoaXMgaXMgYW4gZW1haWwgYWRkcmVzczogPGFuZHJlYUBpbnZhbGlkLml0PgotCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvTWFydWt1L2VudGl0aWVzLm1kCi0tLS0KLQotTWFydWt1IHRyYW5zbGF0ZXMgSFRNTCBlbnRpdGllcyB0byB0aGUgZXF1aXZhbGVudCBpbiBMYVRlWDoKLQotRW50aXR5ICAgICAgfCBSZXN1bHQKLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tCi1gJmNvcHk7YCAgICB8ICAmY29weTsKLWAmcG91bmQ7YCAgIHwgICZwb3VuZDsKLWBhJm5ic3A7YmAgIHwgIGEmbmJzcDtiCi1gJmxhbWJkYTtgICB8ICAmbGFtYmRhOwotYCZtZGFzaDtgICAgfCAgJm1kYXNoOwotCi0KLUVudGl0eS1zdWJzdGl0dXRpb24gZG9lcyBub3QgaGFwcGVuIGluIGNvZGUgYmxvY2tzIG9yIGlubGluZSBjb2RlLgotCi1UaGUgZm9sbG93aW5nIHNob3VsZCBub3QgYmUgdHJhbnNsYXRlZDoKLQotCSZjb3B5OwotCi1JdCBzaG91bGQgcmVhZCBqdXN0IGxpa2UgdGhpczogYCZjb3B5O2AuCi0KLQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcnVrdS9lc2NhcGluZy5tZAotLS0tCi0KLSBIZWxsbzogISBcISBcYCBceyBcfSBcWyBcXSBcKCBcKSBcIyBcLiBcISAqIFwqICoKLQotCi1PcmEsICplbXBoYXNpcyosICoqYm9sZCoqLCAqIDwtIGR1ZSBhc3RlcmlzY2hpLT4gKiAsIHVuIHVuZGVyc2NvcmUtPiBfICwgX2VtcGhhc2lzXywKLSBpbmNyZSpkaWJsZSplIQotCi1UaGlzIGlzIGBgQ29kZSB3aXRoIGEgc3BlY2lhbDogLT4gYCA8LSBgYChhZnRlcikKLQotYFN0YXJ0IGAgb2YgcGFyYWdyYXBoCi0KLUVuZCBvZiBgcGFyYWdyYXBoIGAKLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJ1a3UvZXh0cmFfZGwubWQKLS0tLQotCi1DU1M6IHN0eWxlLmNzcwotCi0KLUFwcGxlCi06ICAgUG9tYWNlb3VzIGZydWl0IG9mIHBsYW50cyBvZiB0aGUgZ2VudXMgTWFsdXMgaW4KLSAgICB0aGUgZmFtaWx5IFJvc2FjZWFlLgotCi1PcmFuZ2UKLTogICBUaGUgZnJ1aXQgb2YgYW4gZXZlcmdyZWVuIHRyZWUgb2YgdGhlIGdlbnVzIENpdHJ1cy4KLQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcnVrdS9leHRyYV9oZWFkZXJfaWQubWQKLS0tLQotCi1IZWFkZXIgMSAgICAgICAgICAgIHsjaGVhZGVyMX0KLT09PT09PT09Ci0KLUhlYWRlciAyICAgICAgICAgICAgeyNoZWFkZXIyfQotLS0tLS0tLS0KLQotIyMjIEhlYWRlciAzICMjIyAgICAgIHsjaGVhZGVyM30KLQotVGhlbiB5b3UgY2FuIGNyZWF0ZSBsaW5rcyB0byBkaWZmZXJlbnQgcGFydHMgb2YgdGhlIHNhbWUgZG9jdW1lbnQgbGlrZSB0aGlzOgotCi1bTGluayBiYWNrIHRvIGhlYWRlciAxXSgjaGVhZGVyMSksCi1bTGluayBiYWNrIHRvIGhlYWRlciAyXSgjaGVhZGVyMiksCi1bTGluayBiYWNrIHRvIGhlYWRlciAzXSgjaGVhZGVyMykKLQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcnVrdS9leHRyYV90YWJsZTEubWQKLS0tLQotCi0KLUZpcnN0IEhlYWRlciAgfCBTZWNvbmQgSGVhZGVyCi0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLQotQ29udGVudCBDZWxsICB8IENvbnRlbnQgQ2VsbAotQ29udGVudCBDZWxsICB8IENvbnRlbnQgQ2VsbAotCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvTWFydWt1L2Zvb3Rub3Rlcy5tZAotLS0tCi0KLVRoYXQncyBzb21lIHRleHQgd2l0aCBhIGZvb3Rub3RlIFteYl0gYW5kIGFub3RoZXIgW15jXSBhbmQgYW5vdGhlciBbXmFdLgotCi1bXmFdOiBBbmQgdGhhdCdzIHRoZSBmb290bm90ZS4KLQotICAgIFRoYXQncyB0aGUgc2Vjb25kIHBhcmFncmFwaCBvZiB0aGUgZm9vdG5vdGUuCi0KLQotW15iXTogQW5kIHRoYXQncyB0aGUgZm9vdG5vdGUuCi1UaGlzIGlzIHNlY29uZCBzZW50ZW5jZSAoc2FtZSBwYXJhZ3JhcGgpLgotCi1bXmNdOgotICAgIFRoaXMgaXMgdGhlIHZlcnkgbG9uZyBvbmUuCi0KLSAgICBUaGF0J3MgdGhlIHNlY29uZCBwYXJhZ3JhcGguCi0KLQotVGhpcyBpcyBub3QgYSBmb290bm90ZS4KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJ1a3UvaGVhZGVycy5tZAotLS0tCi0KLUEgdGl0bGUgd2l0aCAqZW1waGFzaXMqCi09PT09PT09PT09PT09PT09PT09PT09PQotCi1BIHRpdGxlIHdpdGggKmVtcGhhc2lzKgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotCi0jIyMjIEEgdGl0bGUgd2l0aCAqZW1waGFzaXMqICMjIyMKLQotCi0KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJ1a3UvaGV4X2VudGl0aWVzLm1kCi0tLS0KLQotRXhhbXBsZXMgb2YgbnVtZXJpYyBjaGFyYWN0ZXIgcmVmZXJlbmNlcyBpbmNsdWRlICYjMTY5OyBvciAmI3hBOTsgZm9yIHRoZSBjb3B5cmlnaHQgc3ltYm9sLCAmIzkxMzsgb3IgJiN4MzkxOyBmb3IgdGhlIEdyZWVrIGNhcGl0YWwgbGV0dGVyIGFscGhhLCBhbmQgJiMxNTc1OyBvciAmI3g2Mjc7IGZvciB0aGUgQXJhYmljIGxldHRlciBhbGVmLgotCi0KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJ1a3UvaHJ1bGUubWQKLS0tLQotCi0qICogKgotCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvTWFydWt1L2h0bWwyLm1kCi0tLS0KLQotT25lCi08ZGl2PjwvZGl2PjEyMwotCi08ZGl2PjwvZGl2PjEyMwotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcnVrdS9odG1sMy5tZAotLS0tCi0KLXRha2luZyBwYXJ0IGluIDxhIGhyZWY9Imh0dHA6Ly9zaWVkLmRpcy51bmlyb21hMS5pdC8iPnNvbWUgYXJjYW5lIGNvbnNwaXJhdGlvbnM8L2E+IHdoaWNoCi1pbnZvbHZlIDxiIGhyZWY9Imh0dHA6Ly93d3cuZmxpY2tyLmNvbS9waG90b3MvY2Vuc2kvNzA4OTMyNzcvIj5jb2ZmZWU8L2I+LAotPGEgaHJlZj0iaHR0cDovL2ZsaWNrci5jb20vcGhvdG9zL2NlbnNpLzQyNzc1NjY0L2luL3NldC05MzY2NzcvIj5yb2JvdHM8L2E+LAotPGEgaHJlZj0iaHR0cDovL3d3dy5mbGlja3IuY29tL3Bob3Rvcy9jZW5zaS80Mjc3NTg4OC9pbi9zZXQtOTM2Njc3LyI+c3VzaGk8L2E+LAotCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvTWFydWt1L2h0bWw0Lm1kCi0tLS0KLQotPGRpdiBjbGFzcz0iZnJhbWUiPgotCTxhICBjbGFzcz0icGhvdG8iIGhyZWY9Imh0dHA6Ly93d3cuZmxpY2tyLmNvbS9waG90b3MvY2Vuc2kvNTQ3NTcyNTYvIj48aW1nIGFsdD0iIgotICBtb3otZG8tbm90LXNlbmQ9InRydWUiCi0gIHNyYz0iaHR0cDovL3N0YXRpYy5mbGlja3IuY29tLzI3LzU0NzU3MjU2XzFhMmMxZDJhOTVfbS5qcGciIC8+PC9hPgotPC9kaXY+Ci0KLQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcnVrdS9odG1sNS5tZAotLS0tCi0KLSA8ZGl2IGNsYXNzPSJmcmFtZSI+Ci0gPGEgY2xhc3M9InBob3RvIiBocmVmPSJodHRwOi8vd3d3LmZsaWNrci5jb20vcGhvdG9zL2NlbnNpLzg4NTYxNTY4LyIgPjxpbWcgbW96LWRvLW5vdC1zZW5kPSJ0cnVlIiBzcmM9Imh0dHA6Ly9zdGF0aWMuZmxpY2tyLmNvbS8yOC84ODU2MTU2OF9hYjg0ZDI4MjQ1X20uanBnIiB3aWR0aD0iMjQwIiBoZWlnaHQ9IjE4MCIgYWx0PSJBcGVyaXRpZiIgLz48L2E+Ci0gPC9kaXY+Ci0KLQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcnVrdS9pZS5tZAotLS0tCi0KLWA8cD5oZXJlJ3MgYW4gYXBvc3Ryb3BoZSAmIGEgcXVvdGUgIjwvcD5gCi0KLQk8cD5oZXJlJ3MgYW4gYXBvc3Ryb3BoZSAmIGEgcXVvdGUgIjwvcD4KLXs6fQotCi0JPHA+aGVyZSdzIGFuIGFwb3N0cm9waGUgJiBhIHF1b3RlICI8L3A+Ci17Omxhbmc9eG1sfQotCi0JPHA+aGVyZSdzIGFuIGFwb3N0cm9waGUgJiBhIHF1b3RlICI8L3A+Ci17Omh0bWxfdXNlX3N5bnRheD10cnVlIGxhbmc9bm90X3N1cHBvcnRlZH0KLQotCTxwPmhlcmUncyBhbiBhcG9zdHJvcGhlICYgYSBxdW90ZSAiPC9wPgotezpodG1sX3VzZV9zeW50YXg9dHJ1ZSBsYW5nPXhtbH0KLQotCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvTWFydWt1L2ltYWdlczIubWQKLS0tLQotCi0KLVRoaXMgaXMgYW4gIVtpbWFnZV1bXS4KLQotVGhpcyBpcyBhbiAhW2ltYWdlXS4KLQotW2ltYWdlXTogaW1hZ2UuanBnCi0KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJ1a3UvaW1hZ2VzLm1kCi0tLS0KLQotCi1UaGlzIHBhZ2UgZG9lcyBub3QgdWlsaXplcyAhW0Nhc2NhZGluZyBTdHlsZSBTaGVldHNdKGh0dHA6Ly9qaWdzYXcudzMub3JnL2Nzcy12YWxpZGF0b3IvaW1hZ2VzL3Zjc3MpCi0KLQotUGxlYXNlIG1vdXNlb3ZlciB0byBzZWUgdGhlIHRpdGxlOiAhW0Nhc2NhZGluZyBTdHlsZSBTaGVldHNdKGh0dHA6Ly9qaWdzYXcudzMub3JnL2Nzcy12YWxpZGF0b3IvaW1hZ2VzL3Zjc3MgIlRpdGxlIG9rISIpCi0KLVBsZWFzZSBtb3VzZW92ZXIgdG8gc2VlIHRoZSB0aXRsZTogIVtDYXNjYWRpbmcgU3R5bGUgU2hlZXRzXShodHRwOi8vamlnc2F3LnczLm9yZy9jc3MtdmFsaWRhdG9yL2ltYWdlcy92Y3NzICdUaXRsZSBvayEnKQotCi0KLUknbGwgc2F5IGl0IG9uZSBtb3JlIHRpbWU6IHRoaXMgcGFnZSBkb2VzIG5vdCB1c2UgIVtDYXNjYWRpbmcgU3R5bGUgU2hlZXRzXSBbY3NzXQotCi1UaGlzIGlzIGRvdWJsZSBzaXplOiAhW0Nhc2NhZGluZyBTdHlsZSBTaGVldHNdIFtjc3MyXQotCi0KLQotW2Nzc106IGh0dHA6Ly9qaWdzYXcudzMub3JnL2Nzcy12YWxpZGF0b3IvaW1hZ2VzL3Zjc3MgIk9wdGlvbmFsIHRpdGxlIGF0dHJpYnV0ZSIKLQotW2NzczJdOiBodHRwOi8vamlnc2F3LnczLm9yZy9jc3MtdmFsaWRhdG9yL2ltYWdlcy92Y3NzICJPcHRpb25hbCB0aXRsZSBhdHRyaWJ1dGUiCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcnVrdS9pbmxpbmVfaHRtbDIubWQKLS0tLQotCi08ZGl2IG1hcmtkb3duPSIxIj5UZXN0ICoqYm9sZCoqPC9kaXY+Ci08cCBtYXJrZG93bj0iMSI+VGVzdCAqKmJvbGQqKjwvcD4KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJ1a3UvaW5saW5lX2h0bWwubWQKLS0tLQotCi1DU1M6IHN0eWxlLmNzcwotCi1JbnB1dDoKLQotCTxlbT5FbXBoYXNpczwvZW0+Ci0KLVJlc3VsdDogPGVtPkVtcGhhc2lzPC9lbT4KLQotSW5wdXQ6Ci0KLQk8aW1nIHNyYz0iaHR0cDovL2ppZ3Nhdy53My5vcmcvY3NzLXZhbGlkYXRvci9pbWFnZXMvdmNzcyIvPgotCi1SZXN1bHQgb24gc3BhbjogPGltZyBzcmM9Imh0dHA6Ly9qaWdzYXcudzMub3JnL2Nzcy12YWxpZGF0b3IvaW1hZ2VzL3Zjc3MiLz4KLQotUmVzdWx0IGFsb25lOgotCi08aW1nIHNyYz0iaHR0cDovL2ppZ3Nhdy53My5vcmcvY3NzLXZhbGlkYXRvci9pbWFnZXMvdmNzcyIvPgotCi08ZGl2IG1hcmtkb3duPSIxIj4KLQlUaGlzIGlzICp0cnVlKiBtYXJrZG93biB0ZXh0IChwYXJhZ3JhcGgpCi0KLQk8cCBtYXJrZG93bj0iMSI+Ci0JCVRoaXMgaXMgKnRydWUqIG1hcmtkb3duIHRleHQgKG5vIHBhcmFncmFwaCkKLQk8L3A+Ci0JPHAgbWFya2Rvd249ImJsb2NrIj4KLQkJVGhpcyBpcyAqdHJ1ZSogbWFya2Rvd24gdGV4dCAoYmxvY2sgcGFyYWdyYXBoKQotCTwvcD4KLTwvZGl2PgotCi08dGFibGU+Ci08dHI+Ci08dGQgbWFya2Rvd249IjEiPlRoaXMgaXMgKnRydWUqIG1hcmtkb3duIHRleHQuIChubyBwYXIpPC90ZD4KLTx0ZCBtYXJrZG93bj0iYmxvY2siPlRoaXMgaXMgKnRydWUqIG1hcmtkb3duIHRleHQuIChwYXIpPC90ZD4KLTwvdHI+Ci08L3RhYmxlPgotCi0KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJ1a3UvbGlua3MubWQKLS0tLQotCi0KLVNlYXJjaCBvbiBbR29vZ2xlXVtdCi0KLVNlYXJjaCBvbiBbR29vZ2xlXSBbXQotCi1TZWFyY2ggb24gW0dvb2dsZV0gW2dvb2dsZV0KLQotU2VhcmNoIG9uIFtHb29nbGVdIFtHb29nbGVdCi0KLVNlYXJjaCBvbiBbR29vZ2xlIGltYWdlc11bXQotCi1JbmxpbmU6IFtHb29nbGUgaW1hZ2VzXShodHRwOi8vZ29vZ2xlLmNvbSkKLQotSW5saW5lIHdpdGggdGl0bGU6IFtHb29nbGUgaW1hZ2VzXShodHRwOi8vZ29vZ2xlLmNvbSAiVGl0bGUiKQotCi1JbmxpbmUgd2l0aCB0aXRsZTogW0dvb2dsZSBpbWFnZXNdKCBodHRwOi8vZ29vZ2xlLmNvbSAgIlRpdGxlIiApCi0KLQotU2VhcmNoIG9uIDxodHRwOi8vd3d3LmdvZ29sZS5jb20+IG9yIDxodHRwOi8vSGVyZS5jb20+IG9yIGFzayA8YmlsbEBnb29nbGUuY29tPgotb3IgeW91IG1pZ2h0IGFzayBiaWxsQGdvb2dsZS5jb20uCi0KLUlmIGFsbCBlbHNlIGZhaWxzLCBhc2sgW0dvb2dsZV0oaHR0cDovL3d3dy5nb29nbGUuY29tKQotCi1bZ29vZ2xlXTogaHR0cDovL3d3dy5nb29nbGUuY29tCi0KLVtnb29nbGUyXTogaHR0cDovL3d3dy5nb29nbGUuY29tICdTaW5nbGUgcXVvdGVzJwotCi1bZ29vZ2xlM106IGh0dHA6Ly93d3cuZ29vZ2xlLmNvbSAiRG91YmxlIHF1b3RlcyIKLQotW2dvb2dsZTRdOiBodHRwOi8vd3d3Lmdvb2dsZS5jb20gKFBhcmVudGhlc2lzKQotCi1bR29vZ2xlIFNlYXJjaF06Ci0gaHR0cDovL3d3dy5nb29nbGUuY29tICJHb29nbGUgc2VhcmNoIgotCi1bR29vZ2xlIEltYWdlc106Ci0gaHR0cDovL2ltYWdlcy5nb29nbGUuY29tICAoR29vZ2xlIGltYWdlcykKLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJ1a3UvbGlzdDEubWQKLS0tLQotCi0qICAgQSBsaXN0IGl0ZW0gd2l0aCBhIGJsb2NrcXVvdGU6Ci0KLSAgICA+IFRoaXMgaXMgYSBibG9ja3F1b3RlCi0gICAgPiBpbnNpZGUgYSBsaXN0IGl0ZW0uCi0KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJ1a3UvbGlzdDIubWQKLS0tLQotCi0qICAgVGhpcyBpcyBhIGxpc3QgaXRlbSB3aXRoIHR3byBwYXJhZ3JhcGhzLgotCi0gICAgVGhpcyBpcyB0aGUgc2Vjb25kIHBhcmFncmFwaCBpbiB0aGUgbGlzdCBpdGVtLiBZb3UncmUKLW9ubHkgcmVxdWlyZWQgdG8gaW5kZW50IHRoZSBmaXJzdCBsaW5lLiBMb3JlbSBpcHN1bSBkb2xvcgotc2l0IGFtZXQsIGNvbnNlY3RldHVlciBhZGlwaXNjaW5nIGVsaXQuCi0KLSogICBvdGhlcgotCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvTWFydWt1L2xpc3QzLm1kCi0tLS0KLQotKiAgIEEgbGlzdCBpdGVtIHdpdGggYSBibG9ja3F1b3RlOgotCi0gICAgPiBUaGlzIGlzIGEgYmxvY2txdW90ZQotICAgID4gaW5zaWRlIGEgbGlzdCBpdGVtLgotCi0qICAgQSBsaXN0IGl0ZW0gd2l0aCBhIGNvZGUgYmxvY2s6Ci0KLSAgICAgICAgPGNvZGUgZ29lcyBoZXJlPgotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcnVrdS9saXN0NC5tZAotLS0tCi0KLVRoaXMgaXMgYSBsaXN0OgotKiBvbmUKLSogdHdvCi0KLVRoaXMgaXMgbm90IGEgbGlzdDoKLSogb25lCi1jaWFvCi0KLVRoaXMgaXMgYSBsaXN0OgotMS4gb25lCi0xLiB0d28KLQotVGhpcyBpcyBub3QgYSBsaXN0OgotMTk4Ny4gb25lCi1jaWFvCi0KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJ1a3UvbGlzdHMxMS5tZAotLS0tCi0KLS0gPz8/Ci0KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJ1a3UvbGlzdHM2Lm1kCi0tLS0KLQotCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvTWFydWt1L2xpc3RzN2IubWQKLS0tLQotCi0qIGEKLSAgICAqIGExCi0gICAgKiBhMgotKiBiCi0KLQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcnVrdS9saXN0czcubWQKLS0tLQotCi1DaWFvCi0KLSoJVGFiCi0JKglUYWIKLQkJKglUYWIKLQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcnVrdS9saXN0czgubWQKLS0tLQotCi1IZXJlIGlzIGEgcGFyYWdyYXBoLgotCi0KLSAgICogSXRlbSAxCi0gICAqIEl0ZW0gMgotICAgKiBJdGVtIDMKLQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcnVrdS9saXN0czkubWQKLS0tLQotCi0tIER1ZQotICAxLiB0cmUKLSAgMS4gdHJlCi0gIDEuIHRyZQotLSBEdWUKLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJ1a3UvbGlzdHNfYWZ0ZXJfcGFyYWdyYXBoLm1kCi0tLS0KLQotUGFyYWdyYXBoLCBsaXN0IHdpdGggbm8gc3BhY2U6Ci0qIGNpYW8KLQotUGFyYWdyYXBoLCBsaXN0IHdpdGggMSBzcGFjZToKLSAqIGNpYW8KLQotUGFyYWdyYXBoLCBsaXN0IHdpdGggMyBzcGFjZToKLSAgICogY2lhbwotCi1QYXJhZ3JhcGgsIGxpc3Qgd2l0aCA0IHNwYWNlczoKLSAgICAqIGNpYW8KLQotUGFyYWdyYXBoLCBsaXN0IHdpdGggMSB0YWI6Ci0JKiBjaWFvCi0KLVBhcmFncmFwaCAoMSBzcGFjZSBhZnRlciksIGxpc3Qgd2l0aCBubyBzcGFjZToKLSogY2lhbwotCi1QYXJhZ3JhcGggKDIgc3BhY2VzIGFmdGVyKSwgbGlzdCB3aXRoIG5vIHNwYWNlOgotKiBjaWFvCi0KLVBhcmFncmFwaCAoMyBzcGFjZXMgYWZ0ZXIpLCBsaXN0IHdpdGggbm8gc3BhY2U6Ci0qIGNpYW8KLQotUGFyYWdyYXBoIHdpdGggYmxvY2sgcXVvdGU6Ci0+IFF1b3RlZAotCi1QYXJhZ3JhcGggd2l0aCBoZWFkZXI6Ci0jIyMgaGVhZGVyICMjIwotCi1QYXJhZ3JhcGggd2l0aCBoZWFkZXIgb24gdHdvIGxpbmVzOgotaGVhZGVyCi0tLS0tLS0KLQotCi1QYXJhZ3JhcGggd2l0aCBodG1sIGFmdGVyCi08ZGl2PjwvZGl2PgotCi1QYXJhZ3JhcGggd2l0aCBodG1sIGFmdGVyLCBpbmRlbnRlZDoKLSAgICAgPGVtPkVtcGhhc2lzPC9lbT4KLQotUGFyYWdyYXBoIHdpdGggaHRtbCBhZnRlciwgaW5kZW50ZWQ6IDxlbT5FbXBoYXNpczwvZW0+ICp0cmFsbGEqIDxlbT5FbXBoPC9lbT4KLQotUGFyYWdyYXBoIHdpdGggaHRtbCBhZnRlciwgaW5kZW50ZWQ6IDxlbT5FbXBoYXNpcyAqdHJhbGxhKiBFbXBoPC9lbT4KLQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcnVrdS9saXN0cy5tZAotLS0tCi0KLSogICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dWVyIGFkaXBpc2NpbmcgZWxpdC4KLSAgICBBbGlxdWFtIGhlbmRyZXJpdCBtaSBwb3N1ZXJlIGxlY3R1cy4gVmVzdGlidWx1bSBlbmltIHdpc2ksCi0gICAgdml2ZXJyYSBuZWMsIGZyaW5naWxsYSBpbiwgbGFvcmVldCB2aXRhZSwgcmlzdXMuCi0qICAgRG9uZWMgc2l0IGFtZXQgbmlzbC4gQWxpcXVhbSBzZW1wZXIgaXBzdW0gc2l0IGFtZXQgdmVsaXQuCi0gICAgU3VzcGVuZGlzc2UgaWQgc2VtIGNvbnNlY3RldHVlciBsaWJlcm8gbHVjdHVzIGFkaXBpc2NpbmcuCi0qICAgRG9uZWMgc2l0IGFtZXQgbmlzbC4gQWxpcXVhbSBzZW1wZXIgaXBzdW0gc2l0IGFtZXQgdmVsaXQuCi1TdXNwZW5kaXNzZSBpZCBzZW0gY29uc2VjdGV0dWVyIGxpYmVybyBsdWN0dXMgYWRpcGlzY2luZy4KLSAqICBEb25lYyBzaXQgYW1ldCBuaXNsLiBBbGlxdWFtIHNlbXBlciBpcHN1bSBzaXQgYW1ldCB2ZWxpdC4KLVN1c3BlbmRpc3NlIGlkIHNlbSBjb25zZWN0ZXR1ZXIgbGliZXJvIGx1Y3R1cyBhZGlwaXNjaW5nLgotICogIERvbmVjIHNpdCBhbWV0IG5pc2wuIEFsaXF1YW0gc2VtcGVyIGlwc3VtIHNpdCBhbWV0IHZlbGl0LgotIFN1c3BlbmRpc3NlIGlkIHNlbSBjb25zZWN0ZXR1ZXIgbGliZXJvIGx1Y3R1cyBhZGlwaXNjaW5nLgotCi1BbmNvcmEKLQotKiAgIFRoaXMgaXMgYSBsaXN0IGl0ZW0gd2l0aCB0d28gcGFyYWdyYXBocy4gTG9yZW0gaXBzdW0gZG9sb3IKLSAgICBzaXQgYW1ldCwgY29uc2VjdGV0dWVyIGFkaXBpc2NpbmcgZWxpdC4gQWxpcXVhbSBoZW5kcmVyaXQKLSAgICBtaSBwb3N1ZXJlIGxlY3R1cy4KLQotICAgIEFUVEVOWklPTkUhCi0KLSogIFN1c3BlbmRpc3NlIGlkIHNlbSBjb25zZWN0ZXR1ZXIgbGliZXJvIGx1Y3R1cyBhZGlwaXNjaW5nLgotCi0KLUFuY29yYQotCi0qICAgVGhpcyBpcyBhIGxpc3QgaXRlbSB3aXRoIHR3byBwYXJhZ3JhcGhzLgotCi0gICAgVGhpcyBpcyB0aGUgc2Vjb25kIHBhcmFncmFwaCBpbiB0aGUgbGlzdCBpdGVtLiBZb3UncmUKLW9ubHkgcmVxdWlyZWQgdG8gaW5kZW50IHRoZSBmaXJzdCBsaW5lLiBMb3JlbSBpcHN1bSBkb2xvcgotc2l0IGFtZXQsIGNvbnNlY3RldHVlciBhZGlwaXNjaW5nIGVsaXQuCi0KLSogICBBbm90aGVyIGl0ZW0gaW4gdGhlIHNhbWUgbGlzdC4KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJ1a3UvbGlzdHNfb2wubWQKLS0tLQotCi0xLiAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ZXIgYWRpcGlzY2luZyBlbGl0LgotICAgIEFsaXF1YW0gaGVuZHJlcml0IG1pIHBvc3VlcmUgbGVjdHVzLiBWZXN0aWJ1bHVtIGVuaW0gd2lzaSwKLSAgICB2aXZlcnJhIG5lYywgZnJpbmdpbGxhIGluLCBsYW9yZWV0IHZpdGFlLCByaXN1cy4KLSAyLiAgIERvbmVjIHNpdCBhbWV0IG5pc2wuIEFsaXF1YW0gc2VtcGVyIGlwc3VtIHNpdCBhbWV0IHZlbGl0LgotICAgIFN1c3BlbmRpc3NlIGlkIHNlbSBjb25zZWN0ZXR1ZXIgbGliZXJvIGx1Y3R1cyBhZGlwaXNjaW5nLgotMy4gICBEb25lYyBzaXQgYW1ldCBuaXNsLiBBbGlxdWFtIHNlbXBlciBpcHN1bSBzaXQgYW1ldCB2ZWxpdC4KLVN1c3BlbmRpc3NlIGlkIHNlbSBjb25zZWN0ZXR1ZXIgbGliZXJvIGx1Y3R1cyBhZGlwaXNjaW5nLgotIDMuICBEb25lYyBzaXQgYW1ldCBuaXNsLiBBbGlxdWFtIHNlbXBlciBpcHN1bSBzaXQgYW1ldCB2ZWxpdC4KLVN1c3BlbmRpc3NlIGlkIHNlbSBjb25zZWN0ZXR1ZXIgbGliZXJvIGx1Y3R1cyBhZGlwaXNjaW5nLgotIDQuICBEb25lYyBzaXQgYW1ldCBuaXNsLiBBbGlxdWFtIHNlbXBlciBpcHN1bSBzaXQgYW1ldCB2ZWxpdC4KLSBTdXNwZW5kaXNzZSBpZCBzZW0gY29uc2VjdGV0dWVyIGxpYmVybyBsdWN0dXMgYWRpcGlzY2luZy4KLQotQW5jb3JhCi0KLTEuICBUaGlzIGlzIGEgbGlzdCBpdGVtIHdpdGggdHdvIHBhcmFncmFwaHMuIExvcmVtIGlwc3VtIGRvbG9yCi0gICAgc2l0IGFtZXQsIGNvbnNlY3RldHVlciBhZGlwaXNjaW5nIGVsaXQuIEFsaXF1YW0gaGVuZHJlcml0Ci0gICAgbWkgcG9zdWVyZSBsZWN0dXMuCi0KLSAgICBBVFRFTlpJT05FIQotCi0gICAgLSBVbm8KLSAgICAtIER1ZQotICAgICAgICAxLiB0cmUKLSAgICAgICAgMS4gdHJlCi0gICAgICAgIDEuIHRyZQotICAgIC0gRHVlCi0KLTIuICBTdXNwZW5kaXNzZSBpZCBzZW0gY29uc2VjdGV0dWVyIGxpYmVybyBsdWN0dXMgYWRpcGlzY2luZy4KLQotCi1BbmNvcmEKLQotKiAgIFRoaXMgaXMgYSBsaXN0IGl0ZW0gd2l0aCB0d28gcGFyYWdyYXBocy4KLQotICAgIFRoaXMgaXMgdGhlIHNlY29uZCBwYXJhZ3JhcGggaW4gdGhlIGxpc3QgaXRlbS4gWW91J3JlCi1vbmx5IHJlcXVpcmVkIHRvIGluZGVudCB0aGUgZmlyc3QgbGluZS4gTG9yZW0gaXBzdW0gZG9sb3IKLXNpdCBhbWV0LCBjb25zZWN0ZXR1ZXIgYWRpcGlzY2luZyBlbGl0LgotCi0qICAgQW5vdGhlciBpdGVtIGluIHRoZSBzYW1lIGxpc3QuCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvTWFydWt1L2xvc3MubWQKLS0tLQotCi08YnIvPjEyMwotCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvTWFydWt1L21pc2Nfc3cubWQKLS0tLQotCi1TdWJqZWN0OiBTb2Z0d2FyZSBub3QgcGFpbmZ1bCB0byB1c2UKLVN1YmplY3Rfc2hvcnQ6IHBhaW5sZXNzIHNvZnR3YXJlCi1Ub3BpYzogL21pc2MvY29vbHN3Ci1BcmNoaXZlOiBubwotRGF0ZTogTm92IDIwIDIwMDYKLU9yZGVyOiAtOS41Ci1pbk1lbnU6IHRydWUKLQotCi0jIyMgR2VuZXJhbCAjIyMKLQotKiAqT3BlcmF0aW5nIFN5c3RlbSogOiBbTWFjIE9TIFhdW3N3aXRjaF06IGhlYXZlbiwgYWZ0ZXIgdGhlIHB1cmdhdG9yeSBvZiBMaW51eAotICBhbmQgdGhlIGhlbGwgb2YgV2luZG93cy4KLSogKkJyb3dzZXIqOiBbRmlyZWZveF1bZmlyZWZveF0uIE9uIGEgTWFjLCBbQ2FtaW5vXVtjYW1pbm9dLgotKiAqRW1haWwqOiBbR01haWxdW2dtYWlsXSwgInNlYXJjaCwgZG9uJ3Qgc29ydCIgcmVhbGx5IHdvcmtzLgotKiAqVGV4dCBFZGl0b3IqOiBbVGV4dE1hdGVdW3RleHRtYXRlXSwgeW91IGhhdmUgdG8gYnV5IGl0LCBidXQgaXQncyB3b3J0aCBldmVyeQotICBwZW5ueS4gVGhlcmUgYXJlIHJ1bW91cnMgdGhhdCBpdCdzIGJlZW4gY29udmVydGluZyAocmVjb3ZlcmluZykgRW1hY3MKLSAgdXNlcnMgKGFkZGljdHMpLiBVbmZvcnR1bmF0ZWx5LCBpdCdzIE1hYyBvbmx5LiBBbiBhbHRlcm5hdGl2ZSBpcwotICBbamVkaXRdW2plZGl0XSAoR1BMLCBKYXZhKS4KLQotIyMjIERldmVsb3BtZW50ICMjIwotCi0qICpCdWlsZCBzeXN0ZW0qOiBbY21ha2VdW2NtYWtlXSwgdGhyb3cgdGhlIFthdXRvdG9vbHNdW2F1dG90b29sc10gYXdheS4KLSogKlNvdXJjZSBjb2RlIGNvbnRyb2wgc3lzdGVtKjogZGl0Y2ggQ1ZTIGZvciBbc3VidmVyc2lvbl1bc3VidmVyc2lvbl0uCi0qICpQcm9qZWN0IG1hbmFnZW1lbnQqOiBbVHJhY11bdHJhY10gdHJhY2tzIGV2ZXJ5dGhpbmcuCi0qICpTY3JpcHRpbmcgbGFuZ3VhZ2UqOiBbUnVieV1bcnVieV0gaXMgSmFwYW5lc2UgcHJhZ21hdGlzbSAoYW5kIGhhcyBhIFtwb2lnbmFudF1bcG9pZ25hbnRdIGd1aWRlKS4KLSAgIFB5dGhvbiwgeW91IHNheT8gUHl0aG9uIGlzIHRvbyBhY2FkZW1pYyBhbmQgc25vYjoKLQotICAgICAgJCBweXRob24KLSAgICAgIFB5dGhvbiAyLjQuMSAoXCMxLCBKdW4gIDQgMjAwNSwgMDA6NTQ6MzMpCi0gICAgICBUeXBlICJoZWxwIiwgImNvcHlyaWdodCIsICJjcmVkaXRzIiBvciAibGljZW5zZSIgZm9yIG1vcmUgaW5mb3JtYXRpb24uCi0gICAgICA+Pj4gZXhpdAotICAgICAgJ1VzZSBDdHJsLUQgKGkuZS4gRU9GKSB0byBleGl0LicKLSAgICAgID4+PiBxdWl0Ci0gICAgICAnVXNlIEN0cmwtRCAoaS5lLiBFT0YpIHRvIGV4aXQuJwotCi0qICpKYXZhIElERSo6IFtKQnVpbGRlcl1bamJ1aWxkZXJdIGlzIGdyZWF0IHNvZnR3YXJlIGFuZCBoYXMgYSBmcmVlIHZlcnNpb24gKElNSE8gYmV0dGVyIHRoYW4gRWNsaXBzZSkuIEphdmEKLSBpcyBub3QgYSBwYWluIGFueW1vcmUgc2luY2UgaXQgZ2FpbmVkIFtnZW5lcmljc11bamF2YS1nZW5lcmljc10gYW5kIGdvdCBvcGVuc291cmNlZC4KLSogKk1hcmstdXAgbGFuZ3VhZ2UqOiBIVE1MIGlzIHNvIDIwMDEsIHdoeSBkb24ndCB5b3UgdGFrZSBhdCBsb29rIGF0IFtNYXJrZG93bl1bbWFya2Rvd25dPyBbTG9vayBhdCB0aGUgc291cmNlIG9mIHRoaXMgcGFnZV0oZGF0YS9taXNjX21hcmtkb3duLnBuZykuCi0qICpDKysgbGlicmFyaWVzKjoKLSAgICAqIFtRVF1bcXRdIGZvciBHVUlzLgotICAgICogW0dTTF1bZ3NsXSBmb3IgbWF0aC4KLSAgICAqIFtNYWdpY2srK11bbWFnaWNrXSBmb3IgbWFuaXB1bGF0aW5nIGltYWdlcy4KLSAgICAqIFtDYWlyb11bY2Fpcm9dIGZvciBjcmVhdGluZyBQREZzLgotICAgICogW0Jvb3N0XVtib29zdF0gZm9yIGp1c3QgYWJvdXQgZXZlcnl0aGluZyBlbHNlLgotCi0KLSMjIyBSZXNlYXJjaCAjIyMKLQotKiAqV3JpdGluZyBwYXBlcnMqOiBbTGFUZVhdW2xhdGV4XQotKiAqV3JpdGluZyBwYXBlcnMgJiBlbmpveWluZyB0aGUgcHJvY2Vzcyo6IFtMeVhdW2x5eF0KLSogKkhhbmRzb21lIGZpZ3VyZXMgaW4geW91ciBwYXBlcnMqOiBbeGZpZ11beGZpZ10gb3IsIGJldHRlciwgW2pmaWddW2pmaWddLgotKiAqVGhlIG9jY2FzaW9uYWwgcHJlc2VudGF0aW9uIHdpdGggbWFueSBncmFwaGljYWwgY29udGVudCo6Ci0gIFtPcGVuT2ZmaWNlIEltcHJlc3NdW2ltcHJlc3NdICh1c2luZyB0aGUgW09PT2xhdGV4IHBsdWdpbl1bb29vbGF0ZXhdKTsKLSAgdGhlIGFsdGVybmF0aXZlIGlzIFBvd2VyUG9pbnQgd2l0aCB0aGUgW1RleFBvaW50XVt0ZXhwb2ludF0gcGx1Z2luLgotKiAqTWFuYWdpbmcgQmliVGVYKjogW2phYnJlZl1bamFicmVmXTogbXVsdGktcGxhdGZvcm0sIGZvciBhbGwgeW91ciBiaWJ0ZXggbmVlZHMuCi0qICpJRUVFeHBsb3JlIGFuZCBCaWJUZVgqOiBjb252ZXJ0IGNpdGF0aW9ucyB1c2luZyBbQmliQ29udmVydGVyXVtiaWJjb252ZXJ0ZXJdLgotCi0jIyMgQ29vbCB3ZWJzaXRlcyAjIyMKLQotKiAqQmVzdCBzaXRlIGluIHRoZSB3d3dvcmxkKjogW1dpa2lwZWRpYV1bd2lraXBlZGlhXQotKiBbTXV0b3BpYV1bbXV0b3BpYV0gZm9yIHNoZWV0IG11c2ljOyBbdGhlIEd1dGVuYmVyZyBQcm9qZWN0XVtndXRlbmJlcmddIGZvciBib29rczsgW0xpYmVyTGliZXJdW2xpYmVybGliZXJdIGZvciBib29rcyBpbiBpdGFsaWFuLgotKiAqQmxvZ3MqOiBbQmxvZ2xpbmVzXVtibG9nbGluZXNdCi0qICpTaGFyaW5nIHBob3Rvcyo6IFtmbGlja3JdW2ZsaWNrcl0gZXhwb3NlcyBhbiBBUEkgeW91IGNhbiB1c2UuCi0KLQotW2ZpcmVmb3hdOiAgIGh0dHA6Ly9nZXRmaXJlZm94LmNvbS8KLVtnbWFpbF06ICAgICBodHRwOi8vZ21haWwuY29tLwotW2Jsb2dsaW5lc106IGh0dHA6Ly9ibG9nbGluZXMuY29tLwotW3dpa2lwZWRpYV06IGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnLwotW3J1YnldOiAgICAgIGh0dHA6Ly93d3cucnVieS1sYW5nLm9yZy8KLVtwb2lnbmFudF06ICBodHRwOi8vcG9pZ25hbnRndWlkZS5uZXQvcnVieS8KLVt3ZWJnZW5dOiAgICBodHRwOi8vd2ViZ2VuLnJ1Ynlmb3JnZS5vcmcvCi1bbWFya2Rvd25dOiAgaHR0cDovL2RhcmluZ2ZpcmViYWxsLm5ldC9wcm9qZWN0cy9tYXJrZG93bi8KLVtsYXRleF06ICAgICBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0xhVGVYCi1bbHl4XTogICAgICAgaHR0cDovL3d3dy5seXgub3JnCi1baW1wcmVzc106ICAgaHR0cDovL3d3dy5vcGVub2ZmaWNlLm9yZy9wcm9kdWN0L2ltcHJlc3MuaHRtbAotW29vb2xhdGV4XTogIGh0dHA6Ly9vb29sYXRleC5zb3VyY2Vmb3JnZS5uZXQvCi1bdGV4cG9pbnRdOiAgaHR0cDovL3RleHBvaW50Lm5lY3VsYS5vcmcvCi1bamFicmVmXTogICAgaHR0cDovL2phYnJlZi5zb3VyY2Vmb3JnZS5uZXQvCi1bY2FtaW5vXTogICAgaHR0cDovL3d3dy5jYW1pbm9icm93c2VyLm9yZy8KLVtzd2l0Y2hdOiAgICBodHRwOi8vd3d3LmFwcGxlLmNvbS9nZXRhbWFjLwotW3RleHRtYXRlXTogIGh0dHA6Ly93d3cuYXBwbGUuY29tL2dldGFtYWMvCi1bY21ha2VdOiAgICAgaHR0cDovL3d3dy5jbWFrZS5vcmcvCi1beGZpZ106ICAgICAgaHR0cDovL3d3dy54ZmlnLm9yZy8KLVtqZmlnXTogICAgICAgICBodHRwOi8vdGFtcy13d3cuaW5mb3JtYXRpay51bmktaGFtYnVyZy5kZS9hcHBsZXRzL2pmaWcvCi1bc3VidmVyc2lvbl06ICAgaHR0cDovL3N1YnZlcnNpb24udGlncmlzLm9yZwotW2pidWlsZGVyXTogICAgIGh0dHA6Ly93d3cuYm9ybGFuZC5jb20vdXMvcHJvZHVjdHMvamJ1aWxkZXIvaW5kZXguaHRtbAotW2ZsaWNrcl06ICAgICAgIGh0dHA6Ly93d3cuZmxpY2tyLmNvbS8KLVtteWZsaWNrcl06ICAgICBodHRwOi8vd3d3LmZsaWNrci5jb20vcGhvdG9zL2NlbnNpCi1bYmliY29udmVydGVyXTogaHR0cDovL3d3dy5iaWJjb252ZXJ0ZXIubmV0L2llZWV4cGxvcmUvCi1bYXV0b3Rvb2xzXTogICAgaHR0cDovL3NvdXJjZXMucmVkaGF0LmNvbS9hdXRvYm9vay8KLVtqZWRpdF06ICAgICAgICBodHRwOi8vd3d3LmplZGl0Lm9yZy8KLVtxdF06ICAgICAgICAgICBodHRwOi8vd3d3LnRyb2xsdGVjaC5uby8KLVtnc2xdOiAgICAgICAgICBodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvZ3NsLwotW21hZ2lja106ICAgICAgIGh0dHA6Ly93d3cuaW1hZ2VtYWdpY2sub3JnL01hZ2ljaysrLwotW2NhaXJvXTogICAgICAgIGh0dHA6Ly9jYWlyb2dyYXBoaWNzLm9yZy8KLVtib29zdF06ICAgICAgICBodHRwOi8vd3d3LmJvb3N0Lm9yZy8KLVttYXJrZG93bl06ICAgICBodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL01hcmtkb3duCi1bdHJhY106ICAgICAgICAgaHR0cDovL3RyYWMuZWRnZXdhbGwub3JnLwotW211dG9waWFdOiAgICAgIGh0dHA6Ly93d3cubXV0b3BpYXByb2plY3Qub3JnLwotW2xpYmVybGliZXJdOiAgIGh0dHA6Ly93d3cubGliZXJsaWJlci5pdC8KLVtndXRlbmJlcmddOiAgICBodHRwOi8vd3d3Lmd1dGVuYmVyZy5vcmcvCi1bamF2YS1nZW5lcmljc106IGh0dHA6Ly9qYXZhLnN1bi5jb20vajJzZS8xLjUuMC9kb2NzL2d1aWRlL2xhbmd1YWdlL2dlbmVyaWNzLmh0bWwKLQotCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvTWFydWt1L29saXN0Lm1kCi0tLS0KLQotVGhpcyBpcyBhIGxpc3Q6Ci0KLTIuIG9uZQotMi4gdHdvCi0zLiB0aHJlZQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcnVrdS9vbmUubWQKLS0tLQotCi1PbmUgbGluZQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcnVrdS9wYXJhZ3JhcGgubWQKLS0tLQotCi1QYXJhZ3JhcGgKLQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcnVrdS9wYXJhZ3JhcGhzLm1kCi0tLS0KLQotUGFyYWdyYXBoIDEKLQotUGFyYWdyYXBoIDIKLQotCi1QYXJhZ3JhcGggMwotUGFyYWdyYXBoIDQKLVBhcmFncmFwaCBCci0+Ci1QYXJhZ3JhcGggNQotCi0KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJ1a3Uvc21hcnR5cGFudHMubWQKLS0tLQotCi0JJ1R3YXMgYSAidGVzdCIgdG8gJ3JlbWVtYmVyJyBpbiB0aGUgJzkwcy4KLSdUd2FzIGEgInRlc3QiIHRvICdyZW1lbWJlcicgaW4gdGhlICc5MHMuCi0KLQlJdCB3YXMgLS0tIGluIGEgc2Vuc2UgLS0tIHJlYWxseS4uLiBpbnRlcmVzdGluZy4KLUl0IHdhcyAtLS0gaW4gYSBzZW5zZSAtLS0gcmVhbGx5Li4uIGludGVyZXN0aW5nLgotCi0JSSAtLSB0b28gLS0gbWV0IDw8IHNvbWUgY3VybHkgcXVvdGVzID4+IHRoZXJlIG9yIDw8aGVyZT4+Tm8gc3BhY2UuCi1JIC0tIHRvbyAtLSBtZXQgPDwgc29tZSBjdXJseSBxdW90ZXMgPj4gdGhlcmUgb3IgPDxoZXJlPj5ObyBzcGFjZS4KLQotCi0JU2hlIHdhcyA2XCIxMlwnLgotPiBTaGUgd2FzIDZcIjEyXCcuCi0KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJ1a3Uvc3ludGF4X2hsLm1kCi0tLS0KLQotVGhpcyBpcyBydWJ5IGNvZGU6Ci0KLQlyZXF1aXJlICdtYXJ1a3UnCi0KLQlwdXRzIE1hcnVrdS5uZXcoJHN0ZGluKS50b19odG1sCi0KLVRoaXMgaXMgcnVieSBjb2RlOgotCi0JcmVxdWlyZSAnbWFydWt1JwotezogbGFuZz1ydWJ5IGh0bWxfdXNlX3N5bnRheH0KLQotCXB1dHMgTWFydWt1Lm5ldygkc3RkaW4pLnRvX2h0bWwKLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJ1a3UvdGFibGVfYXR0cmlidXRlcy5tZAotLS0tCi0KLQotaCAgICAgICAgIHwgaAotLS0tLS0tLS0tLXwtLQotezp0fSAgYzEgIHwgYzIKLXs6IHN1bW1hcnk9IlRhYmxlIHN1bW1hcnkiIC5jbGFzczEgc3R5bGU9ImNvbG9yOnJlZCIgYm9yZGVyPTMgd2lkdGg9IjUwJSIgZnJhbWU9bGhzIHJ1bGVzPWNvbHMgIGNlbGxzcGFjaW5nPTJlbSBjZWxscGFkZGluZz00cHh9Ci0KLXs6dDogc2NvcGU9InJvdyJ9Ci0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvTWFydWt1L3Rlc3QubWQKLS0tLQotCi0KLSAgICAgICAgICAgJCBweXRob24KLQotCi0KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJ1a3Uvd3JhcHBpbmcubWQKLS0tLQotCi1Mb3JlbSBpcHN1bSBkb2xvciBhbWV0LiBMb3JlbSBpcHN1bSBkb2xvciBhbWV0LiBMb3JlbSBpcHN1bSBkb2xvciBhbWV0LiBMb3JlbSBpcHN1bSBkb2xvciBhbWV0LiBMb3JlbSBpcHN1bSBkb2xvciBhbWV0LiBMb3JlbSBpcHN1bSBkb2xvciBhbWV0LiBMb3JlbSBpcHN1bSBkb2xvciBhbWV0LiBCcmVhazoKLUxvcmVtIGlwc3VtIGRvbG9yIGFtZXQuIExvcmVtIGlwc3VtIGRvbG9yIGFtZXQuIExvcmVtIGlwc3VtIGRvbG9yIGFtZXQuIExvcmVtIGlwc3VtIGRvbG9yIGFtZXQuCi0KLSogTG9yZW0gaXBzdW0gZG9sb3IgYW1ldC4gTG9yZW0gaXBzdW0gZG9sb3IgYW1ldC4gTG9yZW0gaXBzdW0gZG9sb3IgYW1ldC4gTG9yZW0gaXBzdW0gZG9sb3IgYW1ldAotICBMb3JlbSBpcHN1bSBCcmVhazoKLSAgTG9yZW0gaXBzdW0gZG9sb3IgYW1ldC4gTG9yZW0gaXBzdW0gZG9sb3IgYW1ldC4gTG9yZW0gaXBzdW0gZG9sb3IgYW1ldAotKiBMb3JlbSBpcHN1bSBkb2xvciBhbWV0LiBMb3JlbSBpcHN1bSBkb2xvciBhbWV0LiBMb3JlbSBpcHN1bSBkb2xvciBhbWV0LiBMb3JlbSBpcHN1bSBkb2xvciBhbWV0Ci0KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJ1a3UveG1sMi5tZAotLS0tCi0KLTwhLS0KLTwKLS0tPgotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL01hcnVrdS94bWwzLm1kCi0tLS0KLQotPHRhYmxlIG1hcmtkb3duPScxJz4KLQlCbGFoCi0JPHRoZWFkPgotCQk8dGQ+KmVtKjwvdGQ+Ci0JPC90aGVhZD4KLTwvdGFibGU+Ci0KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9NYXJ1a3UveG1sX2luc3RydWN0aW9uLm1kCi0tLS0KLQotCi08PyBub1RhcmdldD8+Ci08P3BocCA/PgotPD94bWwgPz4KLTw/bXJrID8+Ci0KLVRhcmdldHMgPD8gbm9UYXJnZXQ/PiA8P3BocCA/PiA8P3htbCA/PiA8P21yayA/PgotCi1JbnNpZGU6IDw/bXJrIHB1dHMgIkluc2lkZTogSGVsbG8iID8+IGxhc3QKLQotCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvTWFydWt1L3htbC5tZAotLS0tCi0KLQotPHN2ZzpzdmcvPgotCi08c3ZnOnN2Zwotd2lkdGg9IjYwMHB4IiBoZWlnaHQ9IjQwMHB4Ij4KLSAgPHN2ZzpnIGlkPSJncm91cCI+Ci0JPHN2ZzpjaXJjbGUgaWQ9ImNpcmMxIiByPSIxY20iIGN4PSIzY20iIGN5PSIzY20iIHN0eWxlPSJmaWxsOnJlZDsiPjwvc3ZnOmNpcmNsZT4KLQk8c3ZnOmNpcmNsZSBpZD0iY2lyYzIiIHI9IjFjbSIgY3g9IjdjbSIgY3k9IjNjbSIgc3R5bGU9ImZpbGw6cmVkOyIgLz4KLSAgPC9zdmc6Zz4KLTwvc3ZnOnN2Zz4KLQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL3BlZ2Rvd24vQWJicmV2aWF0aW9ucy5tZAotLS0tCi0KLQotVGhlIEhUTUwgc3BlY2lmaWNhdGlvbiBpcyBtYWludGFpbmVkIGJ5IHRoZSBXM0MuCi0KLSpbSFRNTF06IEh5cGVyIFRleHQgTWFya3VwIExhbmd1YWdlCi0qW1czQ106ICBXb3JsZCBXaWRlIFdlYiBDb25zb3J0aXVtCi0KLQotCi1PcGVyYXRpb24gVGlncmEgR2VuZXNpcyBpcyBnb2luZyB3ZWxsLgotCi0qW1RpZ3JhIEdlbmVzaXNdOgotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL3BlZ2Rvd24vQXN0VGV4dC5tZAotLS0tCi0KLSMgQXN0IFRlc3QKLQotVGhpcyBfaXNfIGEgKipzaW1wbGUqKiAmIHNtYWxsIHRleHQgdG8KLQotPiB0ZXN0Ci0+IHllcywgdGVzdAotCi10aGUgZnVuY3Rpb25hbGl0eSBvZgotCi0qIEFTVCBpbmRleCBjcmVhdGlvbgotICAgIC0gb25lIG1vcmUgbGV2ZWwKLQotKiBub3RoaW5nIG1vcmUKLQotICAgICAgICBTb21lIGNvZGUhCi0KLSogbXVsdGkKLSAgcGFyYWdyYXBoCi0KLSAgbGlzdCBpdGVtIQotCi1BbmQ6Ci0gIH4gYSBkZWZpbml0aW9uIQotCi1Bbm90aGVyIG9uZQotOiAgIFdpdGggbW9yZQotCi0gICAgdGhhbiBvbmUgcGFyYWdyYXBoIQotCi1FdmVyeXRoaW5nCi0KLSAgICBpcyBleHBlY3RlZAotICAgIHRvIGJlIGZpbmUKLQotQSBCbG9ja3F1b3RlCi0KLT4gZWFzeQotPgotPiBlYXN5IGVhc3kKLQotQSBjb2RlIGJsb2NrIHN0YXJ0aW5nIHdpdGggYSB0YWI6Ci0KLQk+IGJsYSBibGEKLQotQW5kIG1vcmUgdGV4dAotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9wZWdkb3duL0F1dG9saW5rcy5tZAotLS0tCi0KLSMgQXV0b2xpbmtzCi0KLUF1dG9saW5rcyBhcmUgc2ltcGxlIFVSSXMgbGlrZSBodHRwOi8vd3d3LnBhcmJvaWxlZC5vcmcsCi13aGljaCB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgImFjdGl2YXRlZCIgYnkgcGVnZG93bi4KLQotcGVnZG93biB0cmllcyB0byBiZSBzbWFydCBhbmQgbm90IGluY2x1ZGUgdHJhaWxpbmcKLXB1bmN0dWF0aW9uIG1hcmtzIGxpa2UgY29tbWFzIGFuZCBzdWNoIGluIHRoZSBlbWFpbAotYW5kIFVSSSBsaW5rcyAoam9lQHNvbWV3aGVyZS5jb20gaXMgc3VjaCBhbiBleGFtcGxlKS4KLWZ0cDovL3NvbWVzaXRlLm9yZzoxMjM0OiB0aGlzIHdvdWxkIGJlIGFub3RoZXIgb25lIQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL3BlZ2Rvd24vQnVnX2luXzAuOC41LjEubWQKLS0tLQotCi0qKkEqKmxsKipGKiphdGhlciB3byoqUioqbGQgKipPKipyZGVyIQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9wZWdkb3duL0J1Z19pbl8wLjguNS40Lm1kCi0tLS0KLQotICAqIEhlbGxvIFdvcmxkCi0gICAgKiBXb3J3ZSBxd29yaWp3ZXRvcgotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9wZWdkb3duL0J1Z19pbl8xLjAuMC5tZAotLS0tCi0KLVRoZSBmb2xsb3dpbmcgbGlzdCBjb250YWlucyBpdGVtcyB3aXRoIGNvZGUgYmxvY2tzOgotCi0qIExpc3QgSXRlbSBBCi0KLSAgICAgICAgVGhpcyBpcyBhIHZlcmJhdGltIGxpbmUKLSAgICAgICAgYW5kIGFub3RoZXIgb25lCi0KLSAgICAgICAgYWxsIG9mIHRoZXNlIHNob3VsZCBiZWNvbWUKLSAgICAgICAgcGFydCBvZiB0aGUKLQotICAgICAgICBzYW1lIHZlcmJhdGltIGJsb2NrCi0KLSAgICBvbmx5IHRoZXNlIGxpbmVzIGhlcmUKLQotICAgICAgICBzaG91bGQgaW50ZXJydXB0Ci0gICAgICAgIHRoZQotCi0gICAgICAgIHZlcmJhdGltcyBibG9ja3MKLQotKiBhbm90aGVyIExpc3QgSXRlbXMKLQotYW5kIHNvbWV0aGluZyBjb21wbGV0ZWx5IGRpZmZlcmVudCBoZXJlCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL3BlZ2Rvd24vSFRNTCBzdXBwcmVzc2lvbi5tZAotLS0tCi0KLUhUTUwgPGI+U1VQUFJFU1NJT048L2I+Ci09PT09PT09PT09PT09PT09PT09PT09PQotCi1UaGlzIGlzIGEgcGFyYWdyYXBoIGNvbnRhaW5pbmcgYSA8c3Ryb25nPnN0cm9uZzwvc3Ryb25nPiBpbmxpbmUgSFRNTCBlbGVtZW50IGFuZDoKLQotPGRpdj4KLSAgICA8cD5hbiBhY3R1YWwgYmxvY2sgb2YgSFRNTCE8L3A+Ci08L2Rpdj4KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9wZWdkb3duL0xpbmVicmVha3MubWQKLS0tLQotCi1MaW5lYnJlYWtzCi09PT09PT09PT09Ci0KLVdpdGggdGhlIEhBUkRXUkFQUyBleHRlbnNpb24KLWVuYWJsZWQgYWxsIHRoZXNlIGxpbmVicmVha3MKLXNob3VsZCBiZSBrZXB0IGFzIGlzIGluIHRoZQotY3JlYXRlZCBIVE1MCi0KLVRoZXNlIG9uZXMgaGVyZQotYXMKLXdlbGwhCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvcGVnZG93bi9ObyBGb2xsb3cgTGlua3MubWQKLS0tLQotCi0jIE5vIEZvbGxvdyBMaW5rcwotCi1BdXRvbGlua3MgYXJlIHNpbXBsZSBVUklzIGxpa2UgaHR0cDovL3d3dy5wYXJib2lsZWQub3JnLAotd2hpY2ggd2lsbCBiZSBhdXRvbWF0aWNhbGx5ICJhY3RpdmF0ZWQiIGJ5IHBlZ2Rvd24uCi0KLXBlZ2Rvd24gdHJpZXMgdG8gYmUgc21hcnQgYW5kIG5vdCBpbmNsdWRlIHRyYWlsaW5nCi1wdW5jdHVhdGlvbiBtYXJrcyBsaWtlIGNvbW1hcyBhbmQgc3VjaCBpbiB0aGUgZW1haWwKLWFuZCBVUkkgbGlua3MgKGpvZUBzb21ld2hlcmUuY29tIGlzIHN1Y2ggYW4gZXhhbXBsZSkuCi1mdHA6Ly9zb21lc2l0ZS5vcmc6MTIzNDogdGhpcyB3b3VsZCBiZSBhbm90aGVyIG9uZSEKLQotVGhpcyBpcyBhIFtyZWd1bGFyXShodHRwOi8vcmVndWxhci5jb20pIGxpbmsgYW5kCi1bdGhpcyBvbmUgaGVyZV1bXSBpcyBhIHJlZmVyZW5jZSBsaW5rLgotCi0gIFt0aGlzIG9uZSBoZXJlXTogaHR0cDovL2JsYWJsYS5jb20KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvcGVnZG93bi9QYXJlbnNfaW5fVVJMLm1kCi0tLS0KLQotW0lubGluZSBsaW5rIDEgd2l0aCBwYXJlbnNdKC91cmxcKHRlc3RcKSAidGl0bGUiKS4KLQotW0lubGluZSBsaW5rIDIgd2l0aCBwYXJlbnNdKDwvdXJsXCh0ZXN0XCk+ICJ0aXRsZSIpLgotCi1bUmVmZXJlbmNlIGxpbmsgMSB3aXRoIHBhcmVuc11bMV0uCi0KLVtSZWZlcmVuY2UgbGluayAyIHdpdGggcGFyZW5zXVsyXS4KLQotICBbMV06IC91cmwodGVzdCkgInRpdGxlIgotICBbMl06IDwvdXJsKHRlc3QpPiAidGl0bGUiCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvcGVnZG93bi9RdW90ZWQgQmxvY2txdW90ZS5tZAotLS0tCi0KLSAgICA+IExpbmUgQQotICAgID4gTGluZSBCCi0gICAgPgotICAgID4gTGluZSBhZnRlciBibGFuayBsaW5lLgotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL3BlZ2Rvd24vU21hcnR5cGFudHMubWQKLS0tLQotCi0jIFNtYXJ0IHF1b3RlcywgZWxsaXBzZXMsIGRhc2hlcwotCi0iSGVsbG8sIiBzYWlkIHRoZSBzcGlkZXIuICInU2hlbG9iJyBpcyBteSBuYW1lLiIKLQotJ0EnLCAnQicsIGFuZCAnQycgYXJlIGxldHRlcnMuCi0KLSdPYWssJyAnZWxtLCcgYW5kICdiZWVjaCcgYXJlIG5hbWVzIG9mIHRyZWVzLgotU28gaXMgJ3BpbmUuJwotCi0nSGUgc2FpZCwgIkkgd2FudCB0byBnby4iJwotV2VyZSB5b3UgYWxpdmUgaW4gdGhlIDcwJ3M/Ci0KLUhlcmUgaXMgc29tZSBxdW90ZWQgJ2Bjb2RlYCcgYW5kIGEgIltxdW90ZWQgbGlua11bMV0iLgotCi1JJ3ZlIGFsd2F5ZWQgdGhvdWdodCBJJ2QgcmF0aGVyIG5vdCBkbyBpdC4gQnV0IHRoZW4gd2UncmUgYWxsIHNjcmV3ZWQsIHNpbmNlIEknbSB0aGUgb25seSBvbmUhCi0KLVNvbWUgZGFzaGVzOiBvbmUtLS10d28gLS0tIHRocmVlLS1mb3VyIC0tIGZpdmUuCi0KLURhc2hlcyBiZXR3ZWVuIG51bWJlcnM6IDUtNywgMjU1LTY2LCAxOTg3LTE5OTkuCi0KLUVsbGlwc2VzLi4uYW5kLiAuIC5hbmQgLiAuIC4gLgotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9wZWdkb3duL1NwZWNpYWwgQ2hhcnMubWQKLS0tLQotCi0jIFNwZWNpYWwgY2hhcmFjdGVyIGhhbmRsaW5nCi0KLVF1b3RlIGZyb20gPGh0dHA6Ly9oZW5rZWxtYW5uLmV1LzIwMTEvMDEvMDYvYWN0dWFyaXVzX3JlbGVhc2Vfbm90ZT4KLQotQmV0dGVyIGhhbmRsaW5nIG9mIGVzY2FwZXMgdGhhbiBQZWdEb3duOiBQZWdEb3duIGRvZXMgbm90IGVzY2FwZQotc3BlY2lhbCBIVE1MIGNoYXJhY3RlcnMgbGlrZSA8LCA+LCAmLCAiIGFuZCAnIGluIG5vcm1hbCB0ZXh0IHBhcmFncmFwaHMsIGp1c3QgaW4gY29kZSBibG9ja3MuCi0KLU1heWJlIGlmPnRoZXkgYXJlJm5vdCAic3RhbmQtYWxvbmUiPwotCi1XZWxsLCBJIGRvbid0IHRoaW5rIHNvIDopCi0oYXQgbGVhc3Qgbm90IGFzIG9mICoqcGVnZG93biAwLjkuMioqISkKLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvcGVnZG93bi9UYWJsZXMubWQKLS0tLQotCi1UYWJsZXMKLS0tLS0tLQotCi1TaW1wbGUgVGFibGU6Ci0KLUZpcnN0IHwgU2Vjb25kCi0tLS0tLS18LS0tLS0tLQotQ29vbCAgfCBTaGl0Ci0KLVdpdGhvdXQgaGVhZGVyOgotCi18LS0tLS0tLS18LS0tLS0tLXwKLXxDb29sICAgIHwgU2hpdCAgfAotfGlzIHRoaXMgfCByZWFsbHkKLQotV2l0aCBzb21lIGFsaWdubWVudDoKLQotOi0tLS0tfC0tLS0tOnwtLS0tfDotLS06Ci1Db29sICB8IFNoaXQgfCBpbiB8IGhlcmUKLQotQW5kIG5vdyB0byBzb21lIGNvbHNwYW46Ci0KLU5hbWVzIHx8Ci0gTmFtZSB8IEZpcnN0bmFtZSB8IEFnZQotLS0tLS0tfC0tLS0tLS0tLS0tfC0tLS06Ci0gIEZveCB8IFBldGVyICAgICB8IDQyCi0gIEd1eSB8IFJpdGNoaWUgICB8IGNhLiA2MAotCi0KLU11bHRpbWFya2Rvd24gZXhhbXBsZToKLQotfCAgICAgICAgICAgICB8ICAgICAgICAgIEdyb3VwaW5nICAgICAgICAgICB8fAotRmlyc3QgSGVhZGVyICB8IFNlY29uZCBIZWFkZXIgfCBUaGlyZCBIZWFkZXIgfAotIC0tLS0tLS0tLS0tLSB8IDotLS0tLS0tLS0tLTogfCAtLS0tLS0tLS0tLTogfAotQ29udGVudCAgICAgICB8ICAgICAgICAgICpMb25nIENlbGwqICAgICAgICB8fAotQ29udGVudCAgICAgICB8ICAgKipDZWxsKiogICAgfCAgICAgICAgIENlbGwgfAotTmV3IHNlY3Rpb24gICB8ICAgICBNb3JlICAgICAgfCAgICAgICAgIERhdGEgfAotQW5kIG1vcmUgICAgICB8ICAgICAgICAgICAgICAgfCAgIEFuZCBtb3JlICAgfAotCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvUGhwTWFya2Rvd24vQmFja3NsYXNoX2VzY2FwZXMubWQKLS0tLQotCi1Ucmlja3kgY29tYmluYXRpb25zOgotCi1iYWNrc2xhc2ggd2l0aCBcLS0gdHdvIGh5cGhlbnMKLQotYmFja3NsYXNoIHdpdGggXD4gZ3JlYXRlciB0aGFuCi0KLVxbdGVzdF0obm90IGEgbGluaykKLQotXCpubyBlbXBoYXNpcyoKLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvUGhwTWFya2Rvd24vQ29kZV9ibG9ja19pbl9hX2xpc3RfaXRlbS5tZAotLS0tCi0KLQotKglMaXN0IEl0ZW06Ci0KLQkJY29kZSBibG9jawotCi0JCXdpdGggYSBibGFuayBsaW5lCi0KLQl3aXRoaW4gYSBsaXN0IGl0ZW0uCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL1BocE1hcmtkb3duL0NvZGVfU3BhbnMubWQKLS0tLQotCi1Gcm9tIGA8IS0tYCB0byBgLS0+YAotb24gdHdvIGxpbmVzLgotCi1Gcm9tIGA8IS0tYAotdG8gYC0tPmAKLW9uIHRocmVlIGxpbmVzLgotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL1BocE1hcmtkb3duL0VtYWlsX2F1dG9fbGlua3MubWQKLS0tLQotCi08bWljaGVsLmZvcnRpbkBtaWNoZWxmLmNvbT4KLQotSW50ZXJuYXRpb25hbCBkb21haW4gbmFtZXM6IDxoZWxwQHQ/ZGFsaT8ubHY+Ci0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL1BocE1hcmtkb3duL0VtcGhhc2lzLm1kCi0tLS0KLQotQ29tYmluZWQgZW1waGFzaXM6Ci0KLTEuICAqKip0ZXN0IHRlc3QqKioKLTIuICBfX190ZXN0IHRlc3RfX18KLTMuICAqdGVzdCAqKnRlc3QqKioKLTQuICAqKnRlc3QgKnRlc3QqKioKLTUuICAqKip0ZXN0KiB0ZXN0KioKLTYuICAqKip0ZXN0KiogdGVzdCoKLTcuICAqKip0ZXN0KiB0ZXN0KioKLTguICAqKnRlc3QgKnRlc3QqKioKLTkuICAqdGVzdCAqKnRlc3QqKioKLTEwLiBfdGVzdCBfX3Rlc3RfX18KLTExLiBfX3Rlc3QgX3Rlc3RfX18KLTEyLiBfX190ZXN0XyB0ZXN0X18KLTEzLiBfX190ZXN0X18gdGVzdF8KLTE0LiBfX190ZXN0XyB0ZXN0X18KLTE1LiBfX3Rlc3QgX3Rlc3RfX18KLTE2LiBfdGVzdCBfX3Rlc3RfX18KLQotCi1JbmNvcnJlY3QgbmVzdGluZzoKLQotMS4gICp0ZXN0ICAqKnRlc3QqICB0ZXN0KioKLTIuICBfdGVzdCAgX190ZXN0XyAgdGVzdF9fCi0zLiAgKip0ZXN0ICAqdGVzdCoqIHRlc3QqCi00LiAgX190ZXN0ICBfdGVzdF9fIHRlc3RfCi01LiAgKnRlc3QgICAqdGVzdCogIHRlc3QqCi02LiAgX3Rlc3QgICBfdGVzdF8gIHRlc3RfCi03LiAgKip0ZXN0ICoqdGVzdCoqIHRlc3QqKgotOC4gIF9fdGVzdCBfX3Rlc3RfXyB0ZXN0X18KLQotCi0KLU5vIGVtcGhhc2lzOgotCi0xLiAgdGVzdCogIHRlc3QgICp0ZXN0Ci0yLiAgdGVzdCoqIHRlc3QgKip0ZXN0Ci0zLiAgdGVzdF8gIHRlc3QgIF90ZXN0Ci00LiAgdGVzdF9fIHRlc3QgX190ZXN0Ci0KLQotCi1NaWRkbGUtd29yZCBlbXBoYXNpcyAoYXN0ZXJpc2tzKToKLQotMS4gICphKmIKLTIuICAgYSpiKgotMy4gICBhKmIqYwotNC4gKiphKipiCi01LiAgIGEqKmIqKgotNi4gICBhKipiKipjCi0KLQotTWlkZGxlLXdvcmQgZW1waGFzaXMgKHVuZGVyc2NvcmUpOgotCi0xLiAgX2FfYgotMi4gICBhX2JfCi0zLiAgIGFfYl9jCi00LiBfX2FfX2IKLTUuICAgYV9fYl9fCi02LiAgIGFfX2JfX2MKLQotbXlfcHJlY2lvdXNfZmlsZS50eHQKLQotCi0jIyBUcmlja3kgQ2FzZXMKLQotRSoqLiAqKlRlc3QqKiBUZXN0VGVzdFRlc3QKLQotRSoqLiAqKlRlc3QqKiBUZXN0IFRlc3QgVGVzdAotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL1BocE1hcmtkb3duRXh0cmEvQWJici5tZAotLS0tCi0KLVNvbWUgdGV4dCBhYm91dCBIVE1MLCBTR01MIGFuZCBIVE1MNC4KLQotTGV0J3MgdGFsayBhYm91dCB0aGUgVS5TLkEuLCAoPy5VLiBvciA/Li1VLiBkJ0EuIGluIEZyZW5jaCkuCi0KLSpbSFRNTDRdOiBIeXBlciBUZXh0IE1hcmt1cCBMYW5ndWFnZSB2ZXJzaW9uIDQKLSpbSFRNTF06IEh5cGVyIFRleHQgTWFya3VwIExhbmd1YWdlCi0qW1NHTUxdOiBTdGFuZGFyZCBHZW5lcmFsaXplZCBNYXJrdXAgTGFuZ3VhZ2UKLSpbVS5TLkEuXTogVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhCi0qWz8uVS5dIDogP3RhdHMtVW5pcyBkJ0FtP3JpcXVlCi0qWz8uLVUuIGQnQS5dIDogP3RhdHMtVW5pcyBkJ0FtP3JpcXVlCi0KLUFuZCBoZXJlIHdlIGhhdmUgYSBDRCwgc29tZSBDRHMsIGFuZCBzb21lIG90aGVyIENEJ3MuCi0KLSpbQ0RdOiBDb21wYWN0IERpc2sKLQotTGV0J3MgdHJhbnNmZXJ0IGRvY3VtZW50cyB0aHJvdWdoIFRDUC9JUCwgdXNpbmcgVENQIHBhY2tldHMuCi0KLSpbSVBdOiBJbnRlcm5ldCBQcm90b2NvbAotKltUQ1BdOiBUcmFuc21pc3Npb24gQ29udHJvbCBQcm90b2NvbAotCi0gLS0tCi0KLUJpZW52ZW51ZSBzdXIgW0NNU10oaHR0cDovL3d3dy5iaWR1bGVjbXMuY29tICJCaWR1bGUgQ01TIikuCi0KLSpbQ01TXTogQ29udGVudCBNYW5hZ2VtZW50IFN5c3RlbQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9QaHBNYXJrZG93bkV4dHJhL0VtcGhhc2lzLm1kCi0tLS0KLQotQ29tYmluZWQgZW1waGFzaXM6Ci0KLTEuICAqKip0ZXN0IHRlc3QqKioKLTIuICBfX190ZXN0IHRlc3RfX18KLTMuICAqdGVzdCAqKnRlc3QqKioKLTQuICAqKnRlc3QgKnRlc3QqKioKLTUuICAqKip0ZXN0KiB0ZXN0KioKLTYuICAqKip0ZXN0KiogdGVzdCoKLTcuICAqKip0ZXN0KiB0ZXN0KioKLTguICAqKnRlc3QgKnRlc3QqKioKLTkuICAqdGVzdCAqKnRlc3QqKioKLTEwLiBfdGVzdCBfX3Rlc3RfX18KLTExLiBfX3Rlc3QgX3Rlc3RfX18KLTEyLiBfX190ZXN0XyB0ZXN0X18KLTEzLiBfX190ZXN0X18gdGVzdF8KLTE0LiBfX190ZXN0XyB0ZXN0X18KLTE1LiBfX3Rlc3QgX3Rlc3RfX18KLTE2LiBfdGVzdCBfX3Rlc3RfX18KLQotCi1JbmNvcnJlY3QgbmVzdGluZzoKLQotMS4gICp0ZXN0ICAqKnRlc3QqICB0ZXN0KioKLTIuICBfdGVzdCAgX190ZXN0XyAgdGVzdF9fCi0zLiAgKip0ZXN0ICAqdGVzdCoqIHRlc3QqCi00LiAgX190ZXN0ICBfdGVzdF9fIHRlc3RfCi01LiAgKnRlc3QgICAqdGVzdCogIHRlc3QqCi02LiAgX3Rlc3QgICBfdGVzdF8gIHRlc3RfCi03LiAgKip0ZXN0ICoqdGVzdCoqIHRlc3QqKgotOC4gIF9fdGVzdCBfX3Rlc3RfXyB0ZXN0X18KLQotCi0KLU5vIGVtcGhhc2lzOgotCi0xLiAgdGVzdCogIHRlc3QgICp0ZXN0Ci0yLiAgdGVzdCoqIHRlc3QgKip0ZXN0Ci0zLiAgdGVzdF8gIHRlc3QgIF90ZXN0Ci00LiAgdGVzdF9fIHRlc3QgX190ZXN0Ci0KLQotCi1NaWRkbGUtd29yZCBlbXBoYXNpcyAoYXN0ZXJpc2tzKToKLQotMS4gICphKmIKLTIuICAgYSpiKgotMy4gICBhKmIqYwotNC4gKiphKipiCi01LiAgIGEqKmIqKgotNi4gICBhKipiKipjCi0KLQotTWlkZGxlLXdvcmQgZW1waGFzaXMgKHVuZGVyc2NvcmUpOgotCi0xLiAgX2FfYgotMi4gICBhX2JfCi0zLiAgIGFfYl9jCi00LiBfX2FfX2IKLTUuICAgYV9fYl9fCi02LiAgIGFfX2JfX2MKLQotbXlfcHJlY2lvdXNfZmlsZS50eHQKLQotCi0jIyBUcmlja3kgQ2FzZXMKLQotRSoqLiAqKlRlc3QqKiBUZXN0VGVzdFRlc3QKLQotRSoqLiAqKlRlc3QqKiBUZXN0IFRlc3QgVGVzdAotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL1BocE1hcmtkb3duRXh0cmEvRmVuY2VkX0NvZGVfQmxvY2tzLm1kCi0tLS0KLQotfn5+Ci1GZW5jZWQKLX5+fgotCi1Db2RlIGJsb2NrIHN0YXJ0aW5nIGFuZCBlbmRpbmcgd2l0aCBlbXB0eSBsaW5lczoKLQotfn5+Ci0KLQotRmVuY2VkCi0KLQotfn5+Ci0KLUluZGVudGVkIGNvZGUgYmxvY2sgY29udGFpbmluZyBmZW5jZWQgY29kZSBibG9jayBzYW1wbGU6Ci0KLQl+fn4KLQlGZW5jZWQKLQl+fn4KLQotRmVuY2VkIGNvZGUgYmxvY2sgd2l0aCBpbmRlbnRlZCBjb2RlIGJsb2NrIHNhbXBsZToKLQotfn5+Ci1Tb21lIHRleHQKLQotCUluZGVudGVkIGNvZGUgYmxvY2sgc2FtcGxlIGNvZGUKLX5+fgotCi1GZW5jZWQgY29kZSBibG9jayB3aXRoIGxvbmcgbWFya2VyczoKLQotfn5+fn5+fn5+fn5+fn5+fn5+Ci1GZW5jZWQKLX5+fn5+fn5+fn5+fn5+fn5+fgotCi1FbXB0eSBGZW5jZWQgY29kZSBibG9jazoKLQotfn5+fn5+fn5+fn5+fn5+fn5+Ci1+fn5+fn5+fn5+fn5+fn5+fn4KLQotRmVuY2VkIGNvZGUgYmxvY2sgd2l0aCBmZW5jZWQgY29kZSBibG9jayBtYXJrZXJzIG9mIGRpZmZlcmVudCBsZW5ndGggaW4gaXQ6Ci0KLX5+fn4KLUluIGNvZGUgYmxvY2sKLX5+fgotU3RpbGwgaW4gY29kZSBibG9jawotfn5+fn4KLVN0aWxsIGluIGNvZGUgYmxvY2sKLX5+fn4KLQotRmVuY2VkIGNvZGUgYmxvY2sgd2l0aCBNYXJrZG93biBoZWFkZXIgYW5kIGhvcml6b250YWwgcnVsZToKLQotfn5+Ci0jdGVzdAotLS0tCi1+fn4KLQotRmVuY2VkIGNvZGUgYmxvY2sgd2l0aCBsaW5rIGRlZmluaXRpb25zLCBmb290bm90ZSBkZWZpbml0aW9uIGFuZAotYWJicmV2aWF0aW9uIGRlZmluaXRpb25zOgotCi1+fn4KLVtleGFtcGxlXTogaHR0cDovL2V4YW1wbGUuY29tLwotCi1bXjFdOiBGb290bm90ZSBkZWYKLQotKltIVE1MXTogSHlwZXJUZXh0IE1hcmt1cCBMYW5ndWFnZQotfn5+Ci0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL1BocE1hcmtkb3duRXh0cmEvRm9vdG5vdGVzLm1kCi0tLS0KLQotVGhpcyBpcyB0aGUgZmlyc3QgcGFyYWdyYXBoLlteZmlyc3RdCi0KLVteZmlyc3RdOiAgVGhpcyBpcyB0aGUgZmlyc3Qgbm90ZS4KLQotKiBMaXN0IGl0ZW0gb25lLltec2Vjb25kXQotKiBMaXN0IGl0ZW0gdHdvLltedGhpcmRdCi0KLVtedGhpcmRdOiBUaGlzIGlzIHRoZSB0aGlyZCBub3RlLCBkZWZpbmVkIG91dCBvZiBvcmRlci4KLVtec2Vjb25kXTogVGhpcyBpcyB0aGUgc2Vjb25kIG5vdGUuCi1bXmZvdXJ0aF06IFRoaXMgaXMgdGhlIGZvdXJ0aCBub3RlLgotCi0jIEhlYWRlclteZm91cnRoXQotCi1Tb21lIHBhcmFncmFwaCB3aXRoIGEgZm9vdG5vdGVbXjFdLCBhbmQgYW5vdGhlclteMl0uCi0KLVteMV06IENvbnRlbnQgZm9yIGZpZnRoIGZvb3Rub3RlLgotW14yXTogQ29udGVudCBmb3Igc2l4dGggZm9vdG5vdGUgc3BhbmluZyBvbgotICAgIHRocmVlIGxpbmVzLCB3aXRoIHNvbWUgc3Bhbi1sZXZlbCBtYXJrdXAgbGlrZQotICAgIF9lbXBoYXNpc18sIGEgW2xpbmtdW10uCi0KLVtsaW5rXTogaHR0cDovL3d3dy5taWNoZWxmLmNvbS8KLQotQW5vdGhlciBwYXJhZ3JhcGggd2l0aCBhIG5hbWVkIGZvb3Rub3RlW15mbi1uYW1lXS4KLQotW15mbi1uYW1lXToKLSAgICBGb290bm90ZSBiZWdpbm5pbmcgb24gdGhlIGxpbmUgbmV4dCB0byB0aGUgbWFya2VyLgotCi1UaGlzIHBhcmFncmFwaCBzaG91bGQgbm90IGhhdmUgYSBmb290bm90ZSBtYXJrZXIgc2luY2UKLXRoZSBmb290bm90ZSBpcyB1bmRlZmluZWQuW14zXQotCi1UaGlzIHBhcmFncmFwaCBzaG91bGQgbm90IGhhdmUgYSBmb290bm90ZSBtYXJrZXIgc2luY2UKLXRoZSBmb290bm90ZSBoYXMgYWxyZWFkeSBiZWVuIHVzZWQgYmVmb3JlLlteMV0KLQotVGhpcyBwYXJhZ3JhcGggbGlua3MgdG8gYSBmb290bm90ZSB3aXRoIHBsZW50eSBvZgotYmxvY2stbGV2ZWwgY29udGVudC5bXmJsb2NrXQotCi1bXmJsb2NrXToKLQlQYXJhZ3JhcGguCi0KLQkqICAgTGlzdCBpdGVtCi0KLQk+IEJsb2NrcXVvdGUKLQotCSAgICBDb2RlIGJsb2NrCi0KLVRoaXMgcGFyYWdyYXBoIGhvc3QgdGhlIGZvb3Rub3RlIHJlZmVyZW5jZSB3aXRoaW4gYQotZm9vdG5vdGUgdGVzdFtecmVmZXJlbmNlXS4KLQotW15yZWZlcmVuY2VdOgotCVRoaXMgZm9vdG5vdGUgYXR0ZW1wcyB0byByZWZlciB0byBhbm90aGVyIGZvb3Rub3RlLiBUaGlzCi0Jc2hvdWxkIGJlIGltcG9zc2libGUuW15pbXBvc3NpYmxlXQotCi1bXmltcG9zc2libGVdOgotCVRoaXMgZm9vdG5vdGUgc2hvdWxkIG5vdCBhcHBlYXIsIGFzIGl0IGlzIHJlZmVyZWQgZnJvbQotCWFub3RoZXIgZm9vdG5vdGUsIHdoaWNoIGlzIG5vdCBhbGxvd2VkLgotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL1BocE1hcmtkb3duRXh0cmEvSW5saW5lX0hUTUxfd2l0aF9NYXJrZG93bl9jb250ZW50Lm1kCi0tLS0KLQotIyBNYXJrZG93biBpbnNpZGUgY29kZSBibG9ja3MKLQotPGRpdiBtYXJrZG93bj0iMSI+Ci1mb28KLTwvZGl2PgotCi08dGFibGU+Ci08dHI+PHRkIG1hcmtkb3duPSIxIj50ZXN0IF9lbXBoYXNpc18gKHNwYW4pPC90ZD48L3RyPgotPC90YWJsZT4KLQotPHRhYmxlPgotPHRyPjx0ZCBtYXJrZG93bj0ic3BhbiI+dGVzdCBfZW1waGFzaXNfIChzcGFuKTwvdGQ+PC90cj4KLTwvdGFibGU+Ci0KLTx0YWJsZT4KLTx0cj48dGQgbWFya2Rvd249ImJsb2NrIj50ZXN0IF9lbXBoYXNpc18gKGJsb2NrKTwvdGQ+PC90cj4KLTwvdGFibGU+Ci0KLSMjIE1vcmUgY29tcGxpY2F0ZWQKLQotPHRhYmxlPgotPHRyPjx0ZCBtYXJrZG93bj0iMSI+Ci0qIHRoaXMgaXMgX25vdF8gYSBsaXN0IGl0ZW08L3RkPjwvdHI+Ci08dHI+PHRkIG1hcmtkb3duPSJzcGFuIj4KLSogdGhpcyBpcyBfbm90XyBhIGxpc3QgaXRlbTwvdGQ+PC90cj4KLTx0cj48dGQgbWFya2Rvd249ImJsb2NrIj4KLSogdGhpcyBfaXNfIGEgbGlzdCBpdGVtCi08L3RkPjwvdHI+Ci08L3RhYmxlPgotCi0jIyBXaXRoIGluZGVudAotCi08ZGl2PgotICAgIDxkaXYgbWFya2Rvd249IjEiPgotCi0gICAgTWFya2Rvd24gY29udGVudCBpbiBIVE1MIGJsb2NrcyBpcyBhc3N1bWVkIHRvIGJlCi0gICAgaW5kZW50ZWQgdGhlIHNhbWUgYXMgdGhlIGJsb2NrIG9wZW5pbmcgdGFnLgotCi0gICAgKipUaGlzIHNob3VsZCBiZSB0aGUgdGhpcmQgcGFyYWdyYXBoIGFmdGVyIHRoZSBoZWFkZXIuKioKLSAgICA8L2Rpdj4KLTwvZGl2PgotCi0jIyBDb2RlIGJsb2NrIHdpdGggcm9ndWUgYDwvZGl2PmBzIGluIE1hcmtkb3duIGNvZGUgc3BhbiBhbmQgYmxvY2sKLQotPGRpdj4KLSAgPGRpdiBtYXJrZG93bj0iMSI+Ci0gICAgKiBMaXN0IGl0ZW0sIG5vdCBhIGNvZGUgYmxvY2sKLQotU29tZSB0ZXh0Ci0KLSAgICAgIFRoaXMgaXMgYSBjb2RlIGJsb2NrLgotICA8L2Rpdj4KLTwvZGl2PgotCi0jIyBObyBjb2RlIGJsb2NrIGluIG1hcmtkb3duIHNwYW4gbW9kZQotCi08cCBtYXJrZG93bj0iMSI+Ci0gICAgVGhpcyBpcyBub3QgYSBjb2RlIGJsb2NrIHNpbmNlIE1hcmtkb3duIHBhcnNlIHBhcmFncmFwaAotICAgIGNvbnRlbnQgYXMgc3Bhbi4gQ29kZSBzcGFucyBsaWtlIGA8L3A+YCBhcmUgYWxsb3dlZCB0aG91Z2guCi08L3A+Ci0KLTxwIG1hcmtkb3duPSIxIj5fSGVsbG9fIF93b3JsZF88L3A+Ci0KLSMjIFByZXNlcnZpbmcgYXR0cmlidXRlcyBhbmQgdGFncyBvbiBtb3JlIHRoYW4gb25lIGxpbmU6Ci0KLTxwIGNsYXNzPSJ0ZXN0IiBtYXJrZG93bj0iMSIKLWlkPSIxMiI+Ci1Tb21lIF9zcGFuXyBjb250ZW50LgotPC9wPgotCi0KLSMjIEhlYWRlciBjb25mdXNpb24gYnVnCi0KLTx0YWJsZSBjbGFzcz0iY2FudmFzIj4KLTx0cj4KLTx0ZCBpZD0ibWFpbiIgbWFya2Rvd249IjEiPkhlbGxvIFdvcmxkIQotPT09PT09PT09PT09Ci0KLUhlbGxvIFdvcmxkITwvdGQ+Ci08L3RyPgotPC90YWJsZT4KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9QaHBNYXJrZG93bkV4dHJhL1RhYmxlcy5tZAotLS0tCi0KLSMgU2ltcGxlIHRhYmxlcwotCi1IZWFkZXIgMSAgfCBIZWFkZXIgMgotLS0tLS0tLS0tIHwgLS0tLS0tLS0tCi1DZWxsIDEgICAgfCBDZWxsIDIKLUNlbGwgMyAgICB8IENlbGwgNAotCi1XaXRoIGxlYWRpbmcgcGlwZXM6Ci0KLXwgSGVhZGVyIDEgIHwgSGVhZGVyIDIKLXwgLS0tLS0tLS0tIHwgLS0tLS0tLS0tCi18IENlbGwgMSAgICB8IENlbGwgMgotfCBDZWxsIDMgICAgfCBDZWxsIDQKLQotV2l0aCB0YWlsaW5nIHBpcGVzOgotCi1IZWFkZXIgMSAgfCBIZWFkZXIgMiAgfAotLS0tLS0tLS0tIHwgLS0tLS0tLS0tIHwKLUNlbGwgMSAgICB8IENlbGwgMiAgICB8Ci1DZWxsIDMgICAgfCBDZWxsIDQgICAgfAotCi1XaXRoIGxlYWRpbmcgYW5kIHRhaWxpbmcgcGlwZXM6Ci0KLXwgSGVhZGVyIDEgIHwgSGVhZGVyIDIgIHwKLXwgLS0tLS0tLS0tIHwgLS0tLS0tLS0tIHwKLXwgQ2VsbCAxICAgIHwgQ2VsbCAyICAgIHwKLXwgQ2VsbCAzICAgIHwgQ2VsbCA0ICAgIHwKLQotKiAqICoKLQotIyBPbmUtY29sdW1uIG9uZS1yb3cgdGFibGUKLQotV2l0aCBsZWFkaW5nIHBpcGVzOgotCi18IEhlYWRlcgotfCAtLS0tLS0tCi18IENlbGwKLQotV2l0aCB0YWlsaW5nIHBpcGVzOgotCi1IZWFkZXIgIHwKLS0tLS0tLS0gfAotQ2VsbCAgICB8Ci0KLVdpdGggbGVhZGluZyBhbmQgdGFpbGluZyBwaXBlczoKLQotfCBIZWFkZXIgIHwKLXwgLS0tLS0tLSB8Ci18IENlbGwgICAgfAotCi0qICogKgotCi1UYWJsZSBhbGlnbmVtZW50OgotCi18IERlZmF1bHQgICB8IFJpZ2h0ICAgICB8ICBDZW50ZXIgICB8ICAgICBMZWZ0ICB8Ci18IC0tLS0tLS0tLSB8Oi0tLS0tLS0tLSB8Oi0tLS0tLS0tLTp8IC0tLS0tLS0tLTp8Ci18IExvbmcgQ2VsbCB8IExvbmcgQ2VsbCB8IExvbmcgQ2VsbCB8IExvbmcgQ2VsbCB8Ci18IENlbGwgICAgICB8IENlbGwgICAgICB8ICAgQ2VsbCAgICB8ICAgICBDZWxsICB8Ci0KLVRhYmxlIGFsaWduZW1lbnQgKGFsdGVybmF0ZSBzcGFjaW5nKToKLQotfCBEZWZhdWx0ICAgfCBSaWdodCAgICAgfCAgQ2VudGVyICAgfCAgICAgTGVmdCAgfAotfCAtLS0tLS0tLS0gfCA6LS0tLS0tLS0gfCA6LS0tLS0tLTogfCAtLS0tLS0tLTogfAotfCBMb25nIENlbGwgfCBMb25nIENlbGwgfCBMb25nIENlbGwgfCBMb25nIENlbGwgfAotfCBDZWxsICAgICAgfCBDZWxsICAgICAgfCAgIENlbGwgICAgfCAgICAgQ2VsbCAgfAotCi0qICogKgotCi0jIEVtcHR5IGNlbGxzCi0KLXwgSGVhZGVyIDEgIHwgSGVhZGVyIDIgIHwKLXwgLS0tLS0tLS0tIHwgLS0tLS0tLS0tIHwKLXwgQSAgICAgICAgIHwgQiAgICAgICAgIHwKLXwgQyAgICAgICAgIHwgICAgICAgICAgIHwKLQotSGVhZGVyIDEgIHwgSGVhZGVyIDIKLS0tLS0tLS0tLSB8IC0tLS0tLS0tLQotQSAgICAgICAgIHwgQgotICAgICAgICAgIHwgRAotCi0qICogKgotCi0jIE1pc3NpbmcgdGFpbGluZyBwaXBlCi0KLUhlYWRlciAxICB8IEhlYWRlciAyCi0tLS0tLS0tLS0gfCAtLS0tLS0tLS0gfAotQ2VsbCAgICAgIHwgQ2VsbCAgICAgIHwKLUNlbGwgICAgICB8IENlbGwgICAgICB8Ci0KLUhlYWRlciAxICB8IEhlYWRlciAyICB8Ci0tLS0tLS0tLS0gfCAtLS0tLS0tLS0KLUNlbGwgICAgICB8IENlbGwgICAgICB8Ci1DZWxsICAgICAgfCBDZWxsICAgICAgfAotCi1IZWFkZXIgMSAgfCBIZWFkZXIgMiAgfAotLS0tLS0tLS0tIHwgLS0tLS0tLS0tIHwKLUNlbGwgICAgICB8IENlbGwKLUNlbGwgICAgICB8IENlbGwgICAgICB8Ci0KLUhlYWRlciAxICB8IEhlYWRlciAyICB8Ci0tLS0tLS0tLS0gfCAtLS0tLS0tLS0gfAotQ2VsbCAgICAgIHwgQ2VsbCAgICAgIHwKLUNlbGwgICAgICB8IENlbGwKLQotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL1BocE1hcmtkb3duL0hlYWRlcnMubWQKLS0tLQotCi1IZWFkZXIKLT09PT09PQotCi1IZWFkZXIKLS0tLS0tLQotCi0jIyMgSGVhZGVyCi0KLSAtIC0gLQotCi1IZWFkZXIKLT09PT09PQotUGFyYWdyYXBoCi0KLUhlYWRlcgotLS0tLS0tCi1QYXJhZ3JhcGgKLQotIyMjIEhlYWRlcgotUGFyYWdyYXBoCi0KLSAtIC0gLQotCi1QYXJhZ3JhcGgKLUhlYWRlcgotPT09PT09Ci1QYXJhZ3JhcGgKLQotUGFyYWdyYXBoCi1IZWFkZXIKLS0tLS0tLQotUGFyYWdyYXBoCi0KLVBhcmFncmFwaAotIyMjIEhlYWRlcgotUGFyYWdyYXBoCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL1BocE1hcmtkb3duL0hvcml6b250YWxfUnVsZXMubWQKLS0tLQotCi1Ib3Jpem9udGFsIHJ1bGVzOgotCi0tIC0gLQotCi0qICogKgotCi0qKioKLQotLS0tCi0KLV9fXwotCi1Ob3QgaG9yaXpvbnRhbCBydWxlcyAodGVzdGluZyBmb3IgYSBidWcgaW4gMS4wLjFqKToKLQotKysrCi0KLSwsLAotCi09PT0KLQotPz8/Ci0KLUFBQQotCi1qamoKLQotaiBqIGoKLQotbiBuIG4KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9QaHBNYXJrZG93bi9JbmxpbmVfSFRNTF9jb21tZW50cy5tZAotLS0tCi0KLVBhcmFncmFwaCBvbmUuCi0KLVBhcmFncmFwaCB0d28uCi0KLTwhLS0gZW5jbG9zZWQgdGFnIDwvZGl2PiAtLT4KLQotVGhlIGVuZC4KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9QaHBNYXJrZG93bi9JbmxpbmVfSFRNTF8oU2ltcGxlKS5tZAotLS0tCi0KLVdpdGggc29tZSBhdHRyaWJ1dGVzOgotCi08ZGl2IGlkPSJ0ZXN0Ij4KLQlmb28KLTwvZGl2PgotCi08ZGl2IGlkPSJ0ZXN0IgotICAgICBjbGFzcz0ibm9ubyI+Ci0JZm9vCi08L2Rpdj4KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9QaHBNYXJrZG93bi9JbmxpbmVfSFRNTF8oU3BhbikubWQKLS0tLQotCi08YWJiciB0aXRsZT0iYCAqKkF0dHJpYnV0ZSBDb250ZW50IElzIE5vdCBBIENvZGUgU3BhbioqIGAiPkFDSU5BQ1M8L2FiYnI+Ci0KLTxhYmJyIHRpdGxlPSJgZmlyc3QgYmFja3RpY2shIj5TQjwvYWJicj4KLTxhYmJyIHRpdGxlPSJgc2Vjb25kIGJhY2t0aWNrISI+U0I8L2FiYnI+Ci0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL1BocE1hcmtkb3duL0luc19hbmRfZGVsLm1kCi0tLS0KLQotSGVyZSBpcyBhIGJsb2NrIHRhZyBpbnM6Ci0KLTxpbnM+Ci08cD5Tb21lIHRleHQ8L3A+Ci08L2lucz4KLQotPGlucz5BbmQgaGVyZSBpdCBpcyBpbnNpZGUgYSBwYXJhZ3JhcGguPC9pbnM+Ci0KLUFuZCBoZXJlIGl0IGlzIDxpbnM+aW4gdGhlIG1pZGRsZSBvZjwvaW5zPiBhIHBhcmFncmFwaC4KLQotPGRlbD4KLTxwPlNvbWUgdGV4dDwvcD4KLTwvZGVsPgotCi08ZGVsPkFuZCBoZXJlIGlzIGlucyBhcyBhIHBhcmFncmFwaC48L2RlbD4KLQotQW5kIGhlcmUgaXQgaXMgPGRlbD5pbiB0aGUgbWlkZGxlIG9mPC9kZWw+IGEgcGFyYWdyYXBoLgotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL1BocE1hcmtkb3duL0xpbmtzX2lubGluZV9zdHlsZS5tZAotLS0tCi0KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9QaHBNYXJrZG93bi9NRDVfSGFzaGVzLm1kCi0tLS0KLQotIyBDaGFyYWN0ZXIgRXNjYXBlcwotCi1UaGUgTUQ1IHZhbHVlIGZvciBgK2AgaXMgIjI2YjE3MjI1YjYyNmZiOTIzODg0OWZkNjBlYWJkZjYwIi4KLQotIyBIVE1MIEJsb2NrcwotCi08cD50ZXN0PC9wPgotCi1UaGUgTUQ1IHZhbHVlIGZvciBgPHA+dGVzdDwvcD5gIGlzOgotCi02MjA1MzMzYjc5M2YzNDI3M2Q3NTM3OTM1MGIzNjgyNgotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy9QaHBNYXJrZG93bi9OZXN0aW5nLm1kCi0tLS0KLQotVmFsaWQgbmVzdGluZzoKLQotKipbTGlua10odXJsKSoqCi0KLVsqKkxpbmsqKl0odXJsKQotCi0qKlsqKkxpbmsqKl0odXJsKSoqCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL1BocE1hcmtkb3duL1BhcmVuc19pbl9VUkwubWQKLS0tLQotCi1bSW5saW5lIGxpbmsgMSB3aXRoIHBhcmVuc10oL3VybFwodGVzdFwpICJ0aXRsZSIpLgotCi1bSW5saW5lIGxpbmsgMiB3aXRoIHBhcmVuc10oPC91cmxcKHRlc3RcKT4gInRpdGxlIikuCi0KLVtJbmxpbmUgbGluayAzIHdpdGggbm9uLWVzY2FwZWQgcGFyZW5zXSgvdXJsKHRlc3QpICJ0aXRsZSIpLgotCi1bSW5saW5lIGxpbmsgNCB3aXRoIG5vbi1lc2NhcGVkIHBhcmVuc10oPC91cmwodGVzdCk+ICJ0aXRsZSIpLgotCi1bUmVmZXJlbmNlIGxpbmsgMSB3aXRoIHBhcmVuc11bMV0uCi0KLVtSZWZlcmVuY2UgbGluayAyIHdpdGggcGFyZW5zXVsyXS4KLQotICBbMV06IC91cmwodGVzdCkgInRpdGxlIgotICBbMl06IDwvdXJsKHRlc3QpPiAidGl0bGUiCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvUGhwTWFya2Rvd24vUEhQLVNwZWNpZmljX0J1Z3MubWQKLS0tLQotCi1UaGlzIHRlc3RzIGZvciBhIGJ1ZyB3aGVyZSBxdW90ZXMgZXNjYXBlZCBieSBQSFAgd2hlbiB1c2luZwotYHByZWdfcmVwbGFjZWAgd2l0aCB0aGUgYC9lYCBtb2RpZmllciBtdXN0IGJlIGNvcnJlY3RseSB1bmVzY2FwZWQKLShoZW5jZSB0aGUgYF9VbnNsYXNoUXVvdGVzYCBmdW5jdGlvbiBmb3VuZCBvbmx5IGluIFBIUCBNYXJrZG93bikuCi0KLQotCi1IZWFkZXJzIGJlbG93IHNob3VsZCBhcHBlYXIgZXhhY3RseSBhcyB0aGV5IGFyZSB0eXBlZCAobm8gYmFja3NsYXNoCi1hZGRlZCBvciByZW1vdmVkKS4KLQotSGVhZGVyICJxdW90ZWRcIiBhZ2FpbiBcXCIiCi09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotSGVhZGVyICJxdW90ZWRcIiBhZ2FpbiBcXCIiCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotIyMjIEhlYWRlciAicXVvdGVkXCIgYWdhaW4gXFwiIiAjIyMKLQotCi0KLVRlc3Qgd2l0aCB0YWJzIGZvciBgX0RldGFiYDoKLQotCUNvZGUJJ2Jsb2NrJwl3aXRoCXNvbWUJInRhYnMiCWFuZAkicXVvdGVzIgotCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL1BocE1hcmtkb3duL1RpZ2h0X2Jsb2Nrcy5tZAotLS0tCi0KLVBhcmFncmFwaCBhbmQgbm8gc3BhY2U6Ci0qIGNpYW8KLQotUGFyYWdyYXBoIGFuZCAxIHNwYWNlOgotICogY2lhbwotCi1QYXJhZ3JhcGggYW5kIDMgc3BhY2VzOgotICAqIGNpYW8KLQotUGFyYWdyYXBoIGFuZCA0IHNwYWNlczoKLSAgICogY2lhbwotCi1QYXJhZ3JhcGggYmVmb3JlIGhlYWRlcjoKLSNIZWFkZXIKLQotUGFyYWdyYXBoIGJlZm9yZSBibG9ja3F1b3RlOgotPlNvbWUgcXVvdGUuCi0KLXBlZ2Rvd24vc3JjL3Rlc3QvcmVzb3VyY2VzL3RleHRtYXJrZG93bi9Db3JlRHVtcHM1LjgubWQKLS0tLQotCi0qIFVub3JkZXJlZAotMS4gT3JkZXJlZAotCi1UZXh0Ci0KLSogVW5vcmRlcmVkCi0xLiBPcmRlcmVkCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvdGV4dG1hcmtkb3duL0VtcGhhc2lzLm1kCi0tLS0KLQotX00qQSpTKkhfIGhlcmUgSSBhbSBnb2luZyB3aXRoIG9yaWdpbmFsIE1hcmtkb3duLi4KLQotZm9vX2Jhcl9iYXMgSSBhbSBnb2luZyB3aXRoIFBIUCBNYXJrZG93biBFeHRyYSBoZXJlIChieSBkZWZhdWx0LCB0aGVyZSBpcyBhbiBvcHRpb24gZm9yIG9yaWdpbmFsIHN0eWxlIGJlaGF2aW9yIC0gc2VlCi1kb2NzKS4uCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvdGV4dG1hcmtkb3duL0hUTUwtQ29tbWVudC1lbmNvZGluZy5tZAotLS0tCi0KLUEgbWFya2Rvd24gcGFyYWdyYXBoIHdpdGggYSBjb21tZW50IHRoYXQgKndpbGwqIGJlIHByb2Nlc3NlZCBieSBvcmlnaW5hbCBNYXJrZG93bi4gSG93ZXZlciBNdWx0aU1hcmtkb3duIGFuZCBQYW5kb2MgZG8gbm90IGNvbnZlcnQgdGhlICYgc2lnaWwgaW4gdGhlIGNvbW1lbnQuLgotCi1BIHBhcmFncmFwaCA8IS0tIFRoaXMgJiAqd2lsbCogYmUgY29udmVydGVkIGJ5IG9yaWdpbmFsIE1hcmtkb3duIC0tPgotCi08cD48IS0tIFRoaXMgJiB3aWxsICpub3QqIGJlIGNvbnZlcnRlZCAtLT48L3A+Ci0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvdGV4dG1hcmtkb3duL0xpbmtzX2JyYWNrZXRzLm1kCi0tLS0KLQotW1pJUCBhcmNoaXZlc10oaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9aSVBfKGZpbGVfZm9ybWF0KSAiWklQIChmaWxlIGZvcm1hdCkgLSBXaWtpcGVkaWEsIHRoZSBmcmVlIGVuY3ljbG9wZWRpYSIpCi0KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy90ZXh0bWFya2Rvd24vTGlua3NfbXVsdGlsaW5lX2J1Z3NfMS5tZAotLS0tCi0KLTxodHRwOi8vYnVncy5kZWJpYW4ub3JnLzQ1OTg4NT4KLQotW2xpbmsKLXRleHRdIFtsaW5rCi1pZF0KLQotW2xpbmsgaWRdOiAvc29tZXVybC8KLQotCi1wZWdkb3duL3NyYy90ZXN0L3Jlc291cmNlcy90ZXh0bWFya2Rvd24vTGlua3NfbXVsdGlsaW5lX2J1Z3NfMi5tZAotLS0tCi0KLTxodHRwOi8vYnVncy5kZWJpYW4ub3JnLzQ1OTg4NT4KLQotQmxhLCBibGEsIGJsYSwgYmxhLCBibGEsIGJsYSwgYmxhLCBibGEsIGJsYSwgYmxhIGJsYS4gVGhpcyBpcyBbbXkKLVVuaXZlcnNpdHldW10uCi0KLSAgW215IHVuaXZlcnNpdHldOiBodHRwOi8vd3d3LnVhLmVzCi0KLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvdGV4dG1hcmtkb3duL0xpbmtzX3JlZmVyZW5jZV9zdHlsZS5tZAotLS0tCi0KLUZvbyBbYmFyXSBbMV0uCi0KLUZvbyBbYmFyXVsxXS4KLQotRm9vIFtiYXJdCi1bMV0uCi0KLVsxXTogL3VybC8gICJUaXRsZSIKLQotCi1XaXRoIFtlbWJlZGRlZCBbYnJhY2tldHNdXSBbYl0uCi0KLQotSW5kZW50ZWQgW29uY2VdW10uCi0KLUluZGVudGVkIFt0d2ljZV1bXS4KLQotSW5kZW50ZWQgW3RocmljZV1bXS4KLQotSW5kZW50ZWQgW2ZvdXJdW10gdGltZXMuCi0KLSBbb25jZV06IC91cmwKLQotICBbdHdpY2VdOiAvdXJsCi0KLSAgIFt0aHJpY2VdOiAvdXJsCi0KLSAgICBbZm91cl06IC91cmwKLQotCi1bYl06IC91cmwvCi0KLSogKiAqCi0KLVt0aGlzXSBbdGhpc10gc2hvdWxkIHdvcmsKLQotU28gc2hvdWxkIFt0aGlzXVt0aGlzXS4KLQotQW5kIFt0aGlzXSBbXS4KLQotQW5kIFt0aGlzXVtdLgotCi1BbmQgW3RoaXNdLgotCi1CdXQgbm90IFt0aGF0XSBbXS4KLQotTm9yIFt0aGF0XVtdLgotCi1Ob3IgW3RoYXRdLgotCi1bU29tZXRoaW5nIGluIGJyYWNrZXRzIGxpa2UgW3RoaXNdW10gc2hvdWxkIHdvcmtdCi0KLVtTYW1lIHdpdGggW3RoaXNdLl0KLQotSW4gdGhpcyBjYXNlLCBbdGhpc10oL3NvbWV0aGluZ2Vsc2UvKSBwb2ludHMgdG8gc29tZXRoaW5nIGVsc2UuCi0KLUJhY2tzbGFzaGluZyBzaG91bGQgc3VwcHJlc3MgXFt0aGlzXSBhbmQgW3RoaXNcXS4KLQotW3RoaXNdOiBmb28KLQotCi0qICogKgotCi1IZXJlJ3Mgb25lIHdoZXJlIHRoZSBbbGluawotYnJlYWtzXSBhY3Jvc3MgbGluZXMuCi0KLUhlcmUncyBhbm90aGVyIHdoZXJlIHRoZSBbbGluawotYnJlYWtzXSBhY3Jvc3MgbGluZXMsIGJ1dCB3aXRoIGEgbGluZS1lbmRpbmcgc3BhY2UuCi0KLQotW2xpbmsgYnJlYWtzXTogL3VybC8KLQotTW9yZSBtdWx0aSBsaW5lIGVkZ2UgY2FzZXMuIEZpcnN0IGEgYnJva2VuIGxpbmsgaWQKLQotW2xpbmsKLXRleHRdIFtsaW5rCi1pZF0KLQotW2xpbmsgaWRdOiAvc29tZXVybC8KLQotVGhlbiBhIGxpbmUgd2l0aCAyIGNoYXJzIG9mIHRyYWlsaW5nIHdoaXRlc3BhY2UgYW5kIGEgbGluZSBicmVhayBbbXkKLVVuaXZlcnNpdHldW10uCi0KLVRoZSBhIHNob3J0Y3V0IHJlZmVyZW5jZSBsaW5rIHdpdGggMiBjaGFycyBvZiB0cmFpbGluZyB3aGl0ZXNwYWNlIGFuZCBhIGxpbmUgYnJlYWsgW215Ci1Vbml2ZXJzaXR5XS4KLQotICBbbXkgdW5pdmVyc2l0eV06IGh0dHA6Ly93d3cudWEuZXMKLQotcGVnZG93bi9zcmMvdGVzdC9yZXNvdXJjZXMvdGV4dG1hcmtkb3duL0xpc3RzLW11bHRpbGV2ZWwtbWQ1LWVkZ2VjYXNlLm1kCi0tLS0KLQotIyB0ZXh0MQotCi0gICogdGV4dDIKLQotICAgICogdGV4dDMKLQotICAgIHRleHQ0Ci0KLSMjIHRleHQ1Ci0KLSAgKiB0ZXh0NgotCi0gICAgKiB0ZXh0NwotCi0gIHRleHQ4Ci0KLSMjIHRleHQ5Ci0KLSAgKiB0ZXh0MTAKLQotICAgICogdGV4dDExCi0KLSAgICB0ZXh0MTIKLQotICAgIHRleHQxMworUGxhY2Vob2xkZXIgZm9yIGZ1dHVyZSBleHBhbnNpb24uCmRpZmYgLS1naXQgYS9wb20ueG1sIGIvcG9tLnhtbAppbmRleCBmNWExMTQ4MS4uZjQxNzAzMGYgMTAwNjQ0Ci0tLSBhL3BvbS54bWwKKysrIGIvcG9tLnhtbApAQCAtMjc3LDYgKzI3NywxMCBAQCB1bmRlciB0aGUgTGljZW5zZS4KICAgICAgICAgICAgIDwvZ29hbHM+CiAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4KICAgICAgICAgICAgICAgPGV4Y2x1ZGVzPgorICAgICAgICAgICAgICAgIDwhLS0gbW9kdWxlLW1hcmtkb3duIGZsZXhtYXJrLWphdmEgaW1wbGVtZW50YXRpb24gLS0+CisgICAgICAgICAgICAgICAgPGV4Y2x1ZGU+b3JnL2FwYWNoZS9tYXZlbi9kb3hpYS9tb2R1bGUvbWFya2Rvd24vTWFya2Rvd25QYXJzZXIkTWFya2Rvd25IdG1sUGFyc2VyPC9leGNsdWRlPgorICAgICAgICAgICAgICAgIDxleGNsdWRlPm9yZy9hcGFjaGUvbWF2ZW4vZG94aWEvbW9kdWxlL21hcmtkb3duL01hcmtkb3duUGFyc2VyJFBlZ0Rvd25IdG1sUGFyc2VyPC9leGNsdWRlPgorICAgICAgICAgICAgICAgIDxleGNsdWRlPm9yZy9hcGFjaGUvbWF2ZW4vZG94aWEvbW9kdWxlL21hcmtkb3duL01hcmtkb3duVG9Eb3hpYUh0bWxTZXJpYWxpemVyPC9leGNsdWRlPgogICAgICAgICAgICAgICAgIDxleGNsdWRlPm9yZy9hcGFjaGUvbWF2ZW4vZG94aWEvbW9kdWxlL2ZvL0ZvQWdncmVnYXRlU2luazwvZXhjbHVkZT4KICAgICAgICAgICAgICAgICA8IS0tIERPWElBLTUyNyAtLT4KICAgICAgICAgICAgICAgICA8ZXhjbHVkZT5vcmcvYXBhY2hlL21hdmVuL2RveGlhL3BhcnNlci9tb2R1bGUvKk1vZHVsZTwvZXhjbHVkZT4KCgogCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgaXMgYW4gYXV0b21hdGVkIG1lc3NhZ2UgZnJvbSB0aGUgQXBhY2hlIEdpdCBTZXJ2aWNlLgpUbyByZXNwb25kIHRvIHRoZSBtZXNzYWdlLCBwbGVhc2UgbG9nIG9uIEdpdEh1YiBhbmQgdXNlIHRoZQpVUkwgYWJvdmUgdG8gZ28gdG8gdGhlIHNwZWNpZmljIGNvbW1lbnQuCiAKRm9yIHF1ZXJpZXMgYWJvdXQgdGhpcyBzZXJ2aWNlLCBwbGVhc2UgY29udGFjdCBJbmZyYXN0cnVjdHVyZSBhdDoKdXNlcnNAaW5mcmEuYXBhY2hlLm9yZwoKCldpdGggcmVnYXJkcywKQXBhY2hlIEdpdCBTZXJ2aWNlcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MzMxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBPY3QgMjYgMDc6NDA6MDYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzMxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEYwNTc4MTdFMTYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAyNiBPY3QgMjAxNyAwNzo0MDowNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE0NjY3IGludm9rZWQgYnkgdWlkIDUwMCk7IDI2IE9jdCAyMDE3IDA3OjQwOjA2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNDU4NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBPY3QgMjAxNyAwNzo0MDowNiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE0NTY0IGludm9rZWQgYnkgdWlkIDk5KTsgMjYgT2N0IDIwMTcgMDc6NDA6MDYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZWMyLTUyLTIwMi04MC03MC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSAoSEVMTyBnaXRib3guYXBhY2hlLm9yZykgKDUyLjIwMi44MC43MCkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyNiBPY3QgMjAxNyAwNzo0MDowNiArMDAwMApGcm9tOiBHaXRCb3ggPGdpdEBhcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0dpdEh1Yl0gYXNmZ2l0IGNsb3NlZCBwdWxsIHJlcXVlc3QgIzY6IGFkZCBhIElUIGNhc2UgZm9yIGJhbm5lZERlcGVuZGVuY2llcyBpbiBhIG11bHRpIG1vZHVsZSBwcm9qZWN0Ck1lc3NhZ2UtSUQ6IDwxNTA5MDAzNjA1ODAuMTYxOS4xNjkxNTgxMDQ0Njg4NDkzODAzNi5naXRib3hAZ2l0Ym94LmFwYWNoZS5vcmc+Cgphc2ZnaXQgY2xvc2VkIHB1bGwgcmVxdWVzdCAjNjogYWRkIGEgSVQgY2FzZSBmb3IgYmFubmVkRGVwZW5kZW5jaWVzIGluIGEgbXVsdGkgbW9kdWxlIHByb2plY3QKVVJMOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWVuZm9yY2VyL3B1bGwvNgogCiAKICAgCgpUaGlzIGlzIGEgUFIgbWVyZ2VkIGZyb20gYSBmb3JrZWQgcmVwb3NpdG9yeS4KQXMgR2l0SHViIGhpZGVzIHRoZSBvcmlnaW5hbCBkaWZmIG9uIG1lcmdlLCBpdCBpcyBkaXNwbGF5ZWQgYmVsb3cgZm9yCnRoZSBzYWtlIG9mIHByb3ZlbmFuY2U6CgpBcyB0aGlzIGlzIGEgZm9yZWlnbiBwdWxsIHJlcXVlc3QgKGZyb20gYSBmb3JrKSwgdGhlIGRpZmYgaXMgc3VwcGxpZWQKYmVsb3cgKGFzIGl0IHdvbid0IHNob3cgb3RoZXJ3aXNlIGR1ZSB0byBHaXRIdWIgbWFnaWMpOgoKZGlmZiAtLWdpdCBhL21hdmVuLWVuZm9yY2VyLXBsdWdpbi9zcmMvaXQvcHJvamVjdHMvYmFubmVkLWRlcGVuZGVuY2llcy1tdWx0aS1tb2R1bGUvbW9kMS9wb20ueG1sIGIvbWF2ZW4tZW5mb3JjZXItcGx1Z2luL3NyYy9pdC9wcm9qZWN0cy9iYW5uZWQtZGVwZW5kZW5jaWVzLW11bHRpLW1vZHVsZS9tb2QxL3BvbS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmM2MjE5NwotLS0gL2Rldi9udWxsCisrKyBiL21hdmVuLWVuZm9yY2VyLXBsdWdpbi9zcmMvaXQvcHJvamVjdHMvYmFubmVkLWRlcGVuZGVuY2llcy1tdWx0aS1tb2R1bGUvbW9kMS9wb20ueG1sCkBAIC0wLDAgKzEsMzYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CisKKzwhLS0KK0xpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKK29yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KK3JlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKK3RvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKK3dpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCitzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCit1bmRlciB0aGUgTGljZW5zZS4KKy0tPgorCis8cHJvamVjdD4KKyAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorCisgIDxwYXJlbnQ+CisgIAk8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLml0cy5lbmZvcmNlcjwvZ3JvdXBJZD4KKyAgICA8YXJ0aWZhY3RJZD50ZXN0LW11bHRpbW9kdWxlLXByb2plY3Q8L2FydGlmYWN0SWQ+CisgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgorICA8L3BhcmVudD4KKworICA8YXJ0aWZhY3RJZD50ZXN0LW11bHRpbW9kdWxlLW1vZDE8L2FydGlmYWN0SWQ+CisKKyAgPGRlc2NyaXB0aW9uPgorICA8L2Rlc2NyaXB0aW9uPgorCis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9tYXZlbi1lbmZvcmNlci1wbHVnaW4vc3JjL2l0L3Byb2plY3RzL2Jhbm5lZC1kZXBlbmRlbmNpZXMtbXVsdGktbW9kdWxlL21vZDIvcG9tLnhtbCBiL21hdmVuLWVuZm9yY2VyLXBsdWdpbi9zcmMvaXQvcHJvamVjdHMvYmFubmVkLWRlcGVuZGVuY2llcy1tdWx0aS1tb2R1bGUvbW9kMi9wb20ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhYjk3YTIKLS0tIC9kZXYvbnVsbAorKysgYi9tYXZlbi1lbmZvcmNlci1wbHVnaW4vc3JjL2l0L3Byb2plY3RzL2Jhbm5lZC1kZXBlbmRlbmNpZXMtbXVsdGktbW9kdWxlL21vZDIvcG9tLnhtbApAQCAtMCwwICsxLDQzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorCis8IS0tCitMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCitvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKK2Rpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCityZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCit0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCit3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKK1VubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKK3NvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKK0tJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwordW5kZXIgdGhlIExpY2Vuc2UuCistLT4KKworPHByb2plY3Q+CisgIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KKworICA8cGFyZW50PgorICAJPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5pdHMuZW5mb3JjZXI8L2dyb3VwSWQ+CisgICAgPGFydGlmYWN0SWQ+dGVzdC1tdWx0aW1vZHVsZS1wcm9qZWN0PC9hcnRpZmFjdElkPgorICAgIDx2ZXJzaW9uPjEuMDwvdmVyc2lvbj4KKyAgPC9wYXJlbnQ+CisKKyAgPGFydGlmYWN0SWQ+dGVzdC1tdWx0aW1vZHVsZS1tb2QyPC9hcnRpZmFjdElkPgorCisgIDxkZXNjcmlwdGlvbj4KKyAgPC9kZXNjcmlwdGlvbj4KKyAgCisgIDxkZXBlbmRlbmNpZXM+CisgIAk8ZGVwZW5kZW5jeT4KKyAJICA8Z3JvdXBJZD4ke3Byb2plY3QuZ3JvdXBJZH08L2dyb3VwSWQ+CisJICA8YXJ0aWZhY3RJZD50ZXN0LW11bHRpbW9kdWxlLW1vZDE8L2FydGlmYWN0SWQ+CisgIAk8L2RlcGVuZGVuY3k+CisgIDwvZGVwZW5kZW5jaWVzPgorCis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9tYXZlbi1lbmZvcmNlci1wbHVnaW4vc3JjL2l0L3Byb2plY3RzL2Jhbm5lZC1kZXBlbmRlbmNpZXMtbXVsdGktbW9kdWxlL3BvbS54bWwgYi9tYXZlbi1lbmZvcmNlci1wbHVnaW4vc3JjL2l0L3Byb2plY3RzL2Jhbm5lZC1kZXBlbmRlbmNpZXMtbXVsdGktbW9kdWxlL3BvbS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjI4YjdlNwotLS0gL2Rldi9udWxsCisrKyBiL21hdmVuLWVuZm9yY2VyLXBsdWdpbi9zcmMvaXQvcHJvamVjdHMvYmFubmVkLWRlcGVuZGVuY2llcy1tdWx0aS1tb2R1bGUvcG9tLnhtbApAQCAtMCwwICsxLDc0IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorCis8IS0tCitMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCitvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKK2Rpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCityZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCit0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCit3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisKKyAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKK1VubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKK3NvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKK0tJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwordW5kZXIgdGhlIExpY2Vuc2UuCistLT4KKworPHByb2plY3Q+CisgIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KKworICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLml0cy5lbmZvcmNlcjwvZ3JvdXBJZD4KKyAgPGFydGlmYWN0SWQ+dGVzdC1tdWx0aW1vZHVsZS1wcm9qZWN0PC9hcnRpZmFjdElkPgorICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CisgIDxwYWNrYWdpbmc+cG9tPC9wYWNrYWdpbmc+CisKKyAgPGRlc2NyaXB0aW9uPgorICA8L2Rlc2NyaXB0aW9uPgorCisgIDxtb2R1bGVzPgorICAJPG1vZHVsZT5tb2QxPC9tb2R1bGU+CisgIAk8bW9kdWxlPm1vZDI8L21vZHVsZT4KKyAgPC9tb2R1bGVzPgorCisgIDxkZXBlbmRlbmN5TWFuYWdlbWVudD4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcGVuZGVuY3k+CisgCSAgICA8Z3JvdXBJZD4ke3Byb2plY3QuZ3JvdXBJZH08L2dyb3VwSWQ+CisJICAgIDxhcnRpZmFjdElkPnRlc3QtbXVsdGltb2R1bGUtbW9kMTwvYXJ0aWZhY3RJZD4KKwkgICAgPHZlcnNpb24+JHtwcm9qZWN0LnZlcnNpb259PC92ZXJzaW9uPgorICAJICA8L2RlcGVuZGVuY3k+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgIDwvZGVwZW5kZW5jeU1hbmFnZW1lbnQ+CisKKyAgPGJ1aWxkPgorICAgIDxwbHVnaW5zPgorICAgICAgPHBsdWdpbj4KKyAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1lbmZvcmNlci1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgIDx2ZXJzaW9uPkBwcm9qZWN0LnZlcnNpb25APC92ZXJzaW9uPgorICAgICAgICA8ZXhlY3V0aW9ucz4KKyAgICAgICAgICA8ZXhlY3V0aW9uPgorICAgICAgICAgICAgPGlkPnRlc3Q8L2lkPgorICAgICAgICAgICAgPGdvYWxzPgorICAgICAgICAgICAgICA8Z29hbD5lbmZvcmNlPC9nb2FsPgorICAgICAgICAgICAgPC9nb2Fscz4KKyAgICAgICAgICAgIDxjb25maWd1cmF0aW9uPgorICAgICAgICAgICAgICA8cnVsZXM+CisgICAgICAgICAgICAgICAgPEJhbm5lZERlcGVuZGVuY2llcz4KKyAgICAgICAgICAgICAgICAgIDxleGNsdWRlcz4KKyAgICAgICAgICAgICAgICAgICAgPGV4Y2x1ZGU+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zLmVuZm9yY2VyLml0czptZW5mb3JjZXI3Ml9sb2dnaW5nPC9leGNsdWRlPgorICAgICAgICAgICAgICAgICAgPC9leGNsdWRlcz4KKyAgICAgICAgICAgICAgICA8L0Jhbm5lZERlcGVuZGVuY2llcz4KKyAgICAgICAgICAgICAgPC9ydWxlcz4KKyAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4KKyAgICAgICAgICA8L2V4ZWN1dGlvbj4KKyAgICAgICAgPC9leGVjdXRpb25zPgorICAgICAgPC9wbHVnaW4+CisgICAgPC9wbHVnaW5zPgorICA8L2J1aWxkPgorPC9wcm9qZWN0PgoKCiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVGhpcyBpcyBhbiBhdXRvbWF0ZWQgbWVzc2FnZSBmcm9tIHRoZSBBcGFjaGUgR2l0IFNlcnZpY2UuClRvIHJlc3BvbmQgdG8gdGhlIG1lc3NhZ2UsIHBsZWFzZSBsb2cgb24gR2l0SHViIGFuZCB1c2UgdGhlClVSTCBhYm92ZSB0byBnbyB0byB0aGUgc3BlY2lmaWMgY29tbWVudC4KIApGb3IgcXVlcmllcyBhYm91dCB0aGlzIHNlcnZpY2UsIHBsZWFzZSBjb250YWN0IEluZnJhc3RydWN0dXJlIGF0Ogp1c2Vyc0BpbmZyYS5hcGFjaGUub3JnCgoKV2l0aCByZWdhcmRzLApBcGFjaGUgR2l0IFNlcnZpY2VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzMzItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE9jdCAyNiAwNzo0MDowNyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzMzItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNzJFODgxN0UxQQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDI2IE9jdCAyMDE3IDA3OjQwOjA3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTU0MjcgaW52b2tlZCBieSB1aWQgNTAwKTsgMjYgT2N0IDIwMTcgMDc6NDA6MDYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE1MTA1IGludm9rZWQgYnkgdWlkIDUwMCk7IDI2IE9jdCAyMDE3IDA3OjQwOjA2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTQ1NzUgaW52b2tlZCBieSB1aWQgOTkpOyAyNiBPY3QgMjAxNyAwNzo0MDowNiAtMDAwMApSZWNlaXZlZDogZnJvbSBlYzItNTItMjAyLTgwLTcwLmNvbXB1dGUtMS5hbWF6b25hd3MuY29tIChIRUxPIGdpdGJveC5hcGFjaGUub3JnKSAoNTIuMjAyLjgwLjcwKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDI2IE9jdCAyMDE3IDA3OjQwOjA2ICswMDAwCkZyb206IEdpdEJveCA8Z2l0QGFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBbR2l0SHViXSBhc2ZnaXQgY2xvc2VkIHB1bGwgcmVxdWVzdCAjMTY6IE1FTkZPUkNFUi0yNDEgYWxsb3cgaWdub3JpbmcgbWlub3IgYW5kIHBhdGNoIGxldmVsIG1pc21hdGNoZXMKTWVzc2FnZS1JRDogPDE1MDkwMDM2MDU5OS4xNjIyLjExODI4NzM2MjQxMzAxMzcwNjAzLmdpdGJveEBnaXRib3guYXBhY2hlLm9yZz4KCmFzZmdpdCBjbG9zZWQgcHVsbCByZXF1ZXN0ICMxNjogTUVORk9SQ0VSLTI0MSBhbGxvdyBpZ25vcmluZyBtaW5vciBhbmQgcGF0Y2ggbGV2ZWwgbWlzbWF0Y2hlcwpVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZW5mb3JjZXIvcHVsbC8xNgogCiAKICAgCgpUaGlzIGlzIGEgUFIgbWVyZ2VkIGZyb20gYSBmb3JrZWQgcmVwb3NpdG9yeS4KQXMgR2l0SHViIGhpZGVzIHRoZSBvcmlnaW5hbCBkaWZmIG9uIG1lcmdlLCBpdCBpcyBkaXNwbGF5ZWQgYmVsb3cgZm9yCnRoZSBzYWtlIG9mIHByb3ZlbmFuY2U6CgpBcyB0aGlzIGlzIGEgZm9yZWlnbiBwdWxsIHJlcXVlc3QgKGZyb20gYSBmb3JrKSwgdGhlIGRpZmYgaXMgc3VwcGxpZWQKYmVsb3cgKGFzIGl0IHdvbid0IHNob3cgb3RoZXJ3aXNlIGR1ZSB0byBHaXRIdWIgbWFnaWMpOgoKZGlmZiAtLWdpdCBhL2VuZm9yY2VyLXJ1bGVzL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL2VuZm9yY2VyL0RlcGVuZGVuY3lDb252ZXJnZW5jZS5qYXZhIGIvZW5mb3JjZXItcnVsZXMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvRGVwZW5kZW5jeUNvbnZlcmdlbmNlLmphdmEKaW5kZXggN2MyMWJkNi4uYTRhYzQwNSAxMDA2NDQKLS0tIGEvZW5mb3JjZXItcnVsZXMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvRGVwZW5kZW5jeUNvbnZlcmdlbmNlLmphdmEKKysrIGIvZW5mb3JjZXItcnVsZXMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvRGVwZW5kZW5jeUNvbnZlcmdlbmNlLmphdmEKQEAgLTQ5LDE1ICs0OSwzMSBAQAogICAgIGltcGxlbWVudHMgRW5mb3JjZXJSdWxlCiB7CiAKKyAgICAvKioKKyAgICAgKiBAYXV0aG9yIDxhIGhyZWY9Im1haWx0bzpzdGZAbW9saW5kby5hdCI+U3RlZmFuIEZ1c3NlbmVnZ2VyPC9hPgorICAgICAqLworICAgIHB1YmxpYyBlbnVtIERlZ3JlZQorICAgIHsKKyAgICAgICAgTUFKT1IsIE1JTk9SLCBQQVRDSCwgVU5JUVVFOworICAgIH0KKwogICAgIHByaXZhdGUgc3RhdGljIExvZyBsb2c7CiAKICAgICBwcml2YXRlIHN0YXRpYyBJMThOIGkxOG47CiAKLSAgICBwcml2YXRlIGJvb2xlYW4gdW5pcXVlVmVyc2lvbnM7CisgICAgcHJpdmF0ZSBEZWdyZWUgZGVncmVlID0gRGVncmVlLlBBVENIOwogCiAgICAgcHVibGljIHZvaWQgc2V0VW5pcXVlVmVyc2lvbnMoIGJvb2xlYW4gdW5pcXVlVmVyc2lvbnMgKQogICAgIHsKLSAgICAgICAgdGhpcy51bmlxdWVWZXJzaW9ucyA9IHVuaXF1ZVZlcnNpb25zOworICAgICAgICBpZiAoIHVuaXF1ZVZlcnNpb25zICkKKyAgICAgICAgeworICAgICAgICAgICAgc2V0RGVncmVlKCBEZWdyZWUuVU5JUVVFICk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXREZWdyZWUoIERlZ3JlZSBkZWdyZWUgKQorICAgIHsKKyAgICAgICAgdGhpcy5kZWdyZWUgPSBkZWdyZWUgPT0gbnVsbCA/IERlZ3JlZS5QQVRDSCA6IGRlZ3JlZTsKICAgICB9CiAKICAgICAvLyBDSEVDS1NUWUxFX09GRjogTGluZUxlbmd0aApAQCAtMTE5LDcgKzEzNSw3IEBAIHB1YmxpYyB2b2lkIGV4ZWN1dGUoIEVuZm9yY2VyUnVsZUhlbHBlciBoZWxwZXIgKQogICAgICAgICAgICAgfQogICAgICAgICAgICAgRGVwZW5kZW5jeU5vZGUgbm9kZSA9IGdldE5vZGUoIGhlbHBlciApOwogICAgICAgICAgICAgRGVwZW5kZW5jeVZlcnNpb25NYXAgdmlzaXRvciA9IG5ldyBEZXBlbmRlbmN5VmVyc2lvbk1hcCggbG9nICk7Ci0gICAgICAgICAgICB2aXNpdG9yLnNldFVuaXF1ZVZlcnNpb25zKCB1bmlxdWVWZXJzaW9ucyApOworICAgICAgICAgICAgdmlzaXRvci5zZXREZWdyZWUoIGRlZ3JlZSApOwogICAgICAgICAgICAgbm9kZS5hY2NlcHQoIHZpc2l0b3IgKTsKICAgICAgICAgICAgIExpc3Q8Q2hhclNlcXVlbmNlPiBlcnJvck1zZ3MgPSBuZXcgQXJyYXlMaXN0PENoYXJTZXF1ZW5jZT4oKTsKICAgICAgICAgICAgIGVycm9yTXNncy5hZGRBbGwoIGdldENvbnZlcmdlbmNlRXJyb3JNc2dzKCB2aXNpdG9yLmdldENvbmZsaWN0ZWRWZXJzaW9uTnVtYmVycygpICkgKTsKZGlmZiAtLWdpdCBhL2VuZm9yY2VyLXJ1bGVzL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL2VuZm9yY2VyL3V0aWxzL0RlcGVuZGVuY3lWZXJzaW9uTWFwLmphdmEgYi9lbmZvcmNlci1ydWxlcy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9lbmZvcmNlci91dGlscy9EZXBlbmRlbmN5VmVyc2lvbk1hcC5qYXZhCmluZGV4IDJlYzRhYzIuLmQzOTk5YjcgMTAwNjQ0Ci0tLSBhL2VuZm9yY2VyLXJ1bGVzL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL2VuZm9yY2VyL3V0aWxzL0RlcGVuZGVuY3lWZXJzaW9uTWFwLmphdmEKKysrIGIvZW5mb3JjZXItcnVsZXMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvdXRpbHMvRGVwZW5kZW5jeVZlcnNpb25NYXAuamF2YQpAQCAtMjUsNyArMjUsOSBAQAogaW1wb3J0IGphdmEudXRpbC5NYXA7CiAKIGltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0LkFydGlmYWN0OworaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QudmVyc2lvbmluZy5EZWZhdWx0QXJ0aWZhY3RWZXJzaW9uOwogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLmxvZ2dpbmcuTG9nOworaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy5lbmZvcmNlci5EZXBlbmRlbmN5Q29udmVyZ2VuY2UuRGVncmVlOwogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uc2hhcmVkLmRlcGVuZGVuY3kudHJlZS5EZXBlbmRlbmN5Tm9kZTsKIGltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnNoYXJlZC5kZXBlbmRlbmN5LnRyZWUudHJhdmVyc2FsLkRlcGVuZGVuY3lOb2RlVmlzaXRvcjsKIApAQCAtMzcsMjAgKzM5LDI5IEBACiAgICAgaW1wbGVtZW50cyBEZXBlbmRlbmN5Tm9kZVZpc2l0b3IKIHsKICAgICBwcml2YXRlIExvZyBsb2c7Ci0gICAgCi0gICAgcHJpdmF0ZSBib29sZWFuIHVuaXF1ZVZlcnNpb25zOworCisgICAgcHJpdmF0ZSBEZWdyZWUgZGVncmVlID0gRGVncmVlLlBBVENIOwogCiAgICAgcHJpdmF0ZSBNYXA8U3RyaW5nLCBMaXN0PERlcGVuZGVuY3lOb2RlPj4gaWRzVG9Ob2RlOwogCisKICAgICBwdWJsaWMgRGVwZW5kZW5jeVZlcnNpb25NYXAoIExvZyBsb2cgKQogICAgIHsKICAgICAgICAgdGhpcy5sb2cgPSBsb2c7CiAgICAgICAgIGlkc1RvTm9kZSA9IG5ldyBIYXNoTWFwPFN0cmluZywgTGlzdDxEZXBlbmRlbmN5Tm9kZT4+KCk7CiAgICAgfQotICAgIAorCiAgICAgcHVibGljIHZvaWQgc2V0VW5pcXVlVmVyc2lvbnMoIGJvb2xlYW4gdW5pcXVlVmVyc2lvbnMgKQogICAgIHsKLSAgICAgICAgdGhpcy51bmlxdWVWZXJzaW9ucyA9IHVuaXF1ZVZlcnNpb25zOworICAgICAgICBpZiAoIHVuaXF1ZVZlcnNpb25zICkKKyAgICAgICAgeworICAgICAgICAgICAgc2V0RGVncmVlKCBEZWdyZWUuVU5JUVVFICk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXREZWdyZWUoIERlZ3JlZSBkZWdyZWUgKQorICAgIHsKKyAgICAgICAgdGhpcy5kZWdyZWUgPSBkZWdyZWUgPT0gbnVsbCA/IERlZ3JlZS5QQVRDSCA6IGRlZ3JlZTsKICAgICB9CiAKICAgICBwdWJsaWMgYm9vbGVhbiB2aXNpdCggRGVwZW5kZW5jeU5vZGUgbm9kZSApCkBAIC04NSwxMCArOTYsMzMgQEAgcHVibGljIHZvaWQgYWRkRGVwZW5kZW5jeSggRGVwZW5kZW5jeU5vZGUgbm9kZSApCiAgICAgICAgIH0KICAgICAgICAgbm9kZXMuYWRkKCBub2RlICk7CiAgICAgfQotICAgIAorCiAgICAgcHJpdmF0ZSBTdHJpbmcgZ2V0VmVyc2lvbiggQXJ0aWZhY3QgYXJ0aWZhY3QgKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHVuaXF1ZVZlcnNpb25zID8gYXJ0aWZhY3QuZ2V0VmVyc2lvbigpIDogYXJ0aWZhY3QuZ2V0QmFzZVZlcnNpb24oKTsKKyAgICAgICAgaWYgKCBkZWdyZWUgPT0gRGVncmVlLlVOSVFVRSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBhcnRpZmFjdC5nZXRWZXJzaW9uKCk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoIGRlZ3JlZSA9PSBEZWdyZWUuUEFUQ0ggKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYXJ0aWZhY3QuZ2V0QmFzZVZlcnNpb24oKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIERlZmF1bHRBcnRpZmFjdFZlcnNpb24gdiA9IG5ldyBEZWZhdWx0QXJ0aWZhY3RWZXJzaW9uKCBhcnRpZmFjdC5nZXRCYXNlVmVyc2lvbigpICk7CisgICAgICAgICAgICBpZiAoIGRlZ3JlZSA9PSBEZWdyZWUuTUlOT1IgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiB2LmdldE1ham9yVmVyc2lvbigpICsgIi4iICsgdi5nZXRNaW5vclZlcnNpb24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKCBkZWdyZWUgPT0gRGVncmVlLk1BSk9SICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gSW50ZWdlci50b1N0cmluZyggdi5nZXRNYWpvclZlcnNpb24oKSApOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRocm93IG5ldyBJbGxlZ2FsU3RhdGVFeGNlcHRpb24oICJ1bmRleHBlY3RlZCBkZWdyZWU6ICIgKyBkZWdyZWUgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KIAogICAgIHByaXZhdGUgYm9vbGVhbiBjb250YWluc0NvbmZsaWN0cyggRGVwZW5kZW5jeU5vZGUgbm9kZSApCgoKIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDMzMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgT2N0IDI2IDA3OjQwOjA5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDMzMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAzN0IyRDE3RTIyCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjYgT2N0IDIwMTcgMDc6NDA6MDkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxNjAzNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBPY3QgMjAxNyAwNzo0MDowNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTU3NzAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjYgT2N0IDIwMTcgMDc6NDA6MDcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNTM0MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI2IE9jdCAyMDE3IDA3OjQwOjA2IC0wMDAwClJlY2VpdmVkOiBmcm9tIGVjMi01Mi0yMDItODAtNzAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20gKEhFTE8gZ2l0Ym94LmFwYWNoZS5vcmcpICg1Mi4yMDIuODAuNzApCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMjYgT2N0IDIwMTcgMDc6NDA6MDYgKzAwMDAKRnJvbTogR2l0Qm94IDxnaXRAYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtHaXRIdWJdIGFzZmdpdCBjbG9zZWQgcHVsbCByZXF1ZXN0ICMxNzogQWRkZWQgc3VwcG9ydCBmb3IgcmVhZGluZyBiYW5uZWQgZXhjbHVzaW9ucyBmcm9tIGEgVVJMCk1lc3NhZ2UtSUQ6IDwxNTA5MDAzNjA2MjIuMTYyMy4xOTY2OTA4MDU0ODQ5Njk0NTUwLmdpdGJveEBnaXRib3guYXBhY2hlLm9yZz4KCmFzZmdpdCBjbG9zZWQgcHVsbCByZXF1ZXN0ICMxNzogQWRkZWQgc3VwcG9ydCBmb3IgcmVhZGluZyBiYW5uZWQgZXhjbHVzaW9ucyBmcm9tIGEgVVJMClVSTDogaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1lbmZvcmNlci9wdWxsLzE3CiAKIAogICAKClRoaXMgaXMgYSBQUiBtZXJnZWQgZnJvbSBhIGZvcmtlZCByZXBvc2l0b3J5LgpBcyBHaXRIdWIgaGlkZXMgdGhlIG9yaWdpbmFsIGRpZmYgb24gbWVyZ2UsIGl0IGlzIGRpc3BsYXllZCBiZWxvdyBmb3IKdGhlIHNha2Ugb2YgcHJvdmVuYW5jZToKCkFzIHRoaXMgaXMgYSBmb3JlaWduIHB1bGwgcmVxdWVzdCAoZnJvbSBhIGZvcmspLCB0aGUgZGlmZiBpcyBzdXBwbGllZApiZWxvdyAoYXMgaXQgd29uJ3Qgc2hvdyBvdGhlcndpc2UgZHVlIHRvIEdpdEh1YiBtYWdpYyk6CgpkaWZmIC0tZ2l0IGEvZW5mb3JjZXItYXBpL3BvbS54bWwgYi9lbmZvcmNlci1hcGkvcG9tLnhtbAppbmRleCA0ODU5ZGE1Li45YzJiNWY0IDEwMDY0NAotLS0gYS9lbmZvcmNlci1hcGkvcG9tLnhtbAorKysgYi9lbmZvcmNlci1hcGkvcG9tLnhtbApAQCAtMjQsNyArMjQsNyBAQAogICA8cGFyZW50PgogICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4uZW5mb3JjZXI8L2dyb3VwSWQ+CiAgICAgPGFydGlmYWN0SWQ+ZW5mb3JjZXI8L2FydGlmYWN0SWQ+Ci0gICAgPHZlcnNpb24+MS40LjItU05BUFNIT1Q8L3ZlcnNpb24+CisgICAgPHZlcnNpb24+MS4wLjAtU05BUFNIT1Qtd2FsbWFydC0wMTwvdmVyc2lvbj4KICAgPC9wYXJlbnQ+CiAKICAgPGFydGlmYWN0SWQ+ZW5mb3JjZXItYXBpPC9hcnRpZmFjdElkPgpkaWZmIC0tZ2l0IGEvZW5mb3JjZXItcnVsZXMvcG9tLnhtbCBiL2VuZm9yY2VyLXJ1bGVzL3BvbS54bWwKaW5kZXggZGUzMTFlMy4uNWM0MGJiZCAxMDA2NDQKLS0tIGEvZW5mb3JjZXItcnVsZXMvcG9tLnhtbAorKysgYi9lbmZvcmNlci1ydWxlcy9wb20ueG1sCkBAIC0yNCw3ICsyNCw3IEBACiAgIDxwYXJlbnQ+CiAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5lbmZvcmNlcjwvZ3JvdXBJZD4KICAgICA8YXJ0aWZhY3RJZD5lbmZvcmNlcjwvYXJ0aWZhY3RJZD4KLSAgICA8dmVyc2lvbj4xLjQuMi1TTkFQU0hPVDwvdmVyc2lvbj4KKyAgICA8dmVyc2lvbj4xLjAuMC1TTkFQU0hPVC13YWxtYXJ0LTAxPC92ZXJzaW9uPgogICA8L3BhcmVudD4KIAogICA8YXJ0aWZhY3RJZD5lbmZvcmNlci1ydWxlczwvYXJ0aWZhY3RJZD4KQEAgLTkzLDkgKzkzLDIwIEBACiAgICAgICA8Z3JvdXBJZD5vcmcuY29kZWhhdXMucGxleHVzPC9ncm91cElkPgogICAgICAgPGFydGlmYWN0SWQ+cGxleHVzLWkxOG48L2FydGlmYWN0SWQ+CiAgICAgICA8dmVyc2lvbj4xLjAtYmV0YS02PC92ZXJzaW9uPgotICAgIDwvZGVwZW5kZW5jeT4gICAgCisgICAgPC9kZXBlbmRlbmN5PiAgCisgICAgPCEtLSBodHRwY2xpZW50IDQuNCsgb3IgdGFrYXJpIHdlYnNlcnZlciBjYW5ub3QgYmUgdXNlZCBzaW5jZSBlbmZvcmNlciBpcyByZXN0cmljdGVkIHRvIEpESyAxLjUgKGVuZm9yY2VkIGJ5IGVuZm9yY2UtYnl0ZWNvZGUtdmVyc2lvbiktLT4gCisJPGRlcGVuZGVuY3k+CisgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLmh0dHBjb21wb25lbnRzPC9ncm91cElkPgorICAgICAgICAgPGFydGlmYWN0SWQ+aHR0cGNsaWVudDwvYXJ0aWZhY3RJZD4KKyAgICAgICAgIDx2ZXJzaW9uPjQuMy42PC92ZXJzaW9uPgorICAgICA8L2RlcGVuZGVuY3k+IAorICAgICA8IS0tIEpldHR5IDcgaXMgbmVlZGVkIHNpbmNlIGVuZm9yY2VyIGlzIHJlc3RyaWN0ZWQgdG8gSkRLIDEuNSBhbmQgaGVuY2UgY2Fubm90IHJ1biB3aXRoIEpldHR5IDkgKGVuZm9yY2VkIGJ5IGVuZm9yY2UtYnl0ZWNvZGUtdmVyc2lvbiktLT4KKyAgICAgPGRlcGVuZGVuY3k+CisJCTxncm91cElkPm9yZy5lY2xpcHNlLmpldHR5PC9ncm91cElkPgorCQk8YXJ0aWZhY3RJZD5qZXR0eS1zZXJ2ZXI8L2FydGlmYWN0SWQ+CisJCTx2ZXJzaW9uPjcuNi4xOS52MjAxNjAyMDk8L3ZlcnNpb24+CisJPC9kZXBlbmRlbmN5PgogICA8L2RlcGVuZGVuY2llcz4KLQogICA8YnVpbGQ+CiAgICAgPHBsdWdpbnM+CiAgICAgICA8cGx1Z2luPgpAQCAtMTA5LDYgKzEyMCwxNSBAQAogICAgICAgICAgIDwvZXhlY3V0aW9uPgogICAgICAgICA8L2V4ZWN1dGlvbnM+CiAgICAgICA8L3BsdWdpbj4KKyAgICAgIDxwbHVnaW4+CisgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLnJhdDwvZ3JvdXBJZD4KKyAgICAgICAgIDxhcnRpZmFjdElkPmFwYWNoZS1yYXQtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgPGNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgIDxleGNsdWRlcyBjb21iaW5lLmNoaWxkcmVuPSJhcHBlbmQiPgorICAgICAgICAgICAgIDxleGNsdWRlPnNyYy90ZXN0L3Jlc291cmNlcy90ZXN0QmFubmVkRGVwZW5kZW5jaWVzL2JsYWNrbGlzdC50eHQ8L2V4Y2x1ZGU+CisgICAgICAgICAgIDwvZXhjbHVkZXM+CisgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CisgICAgICAgPC9wbHVnaW4+CiAgICAgPC9wbHVnaW5zPgogICA8L2J1aWxkPgogPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvZW5mb3JjZXItcnVsZXMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvQWJzdHJhY3RCYW5EZXBlbmRlbmNpZXMuamF2YSBiL2VuZm9yY2VyLXJ1bGVzL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL2VuZm9yY2VyL0Fic3RyYWN0QmFuRGVwZW5kZW5jaWVzLmphdmEKaW5kZXggZGNlMDBlNy4uODEyMmM2ZiAxMDA2NDQKLS0tIGEvZW5mb3JjZXItcnVsZXMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvQWJzdHJhY3RCYW5EZXBlbmRlbmNpZXMuamF2YQorKysgYi9lbmZvcmNlci1ydWxlcy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9lbmZvcmNlci9BYnN0cmFjdEJhbkRlcGVuZGVuY2llcy5qYXZhCkBAIC0xMzcsNiArMTM3LDEzIEBAIGVsc2UgaWYgKCBub2RlLmdldENoaWxkcmVuKCkgIT0gbnVsbCApCiAgICAgICAgICAgICAgICAgICAgIGRlcGVuZGVuY2llcy5hZGQoIGRlcE5vZGUuZ2V0QXJ0aWZhY3QoKSApOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy9hZGQgdGhlIHBhcmVudCBhcnRpZmFjdCB0byB0aGUgbGlzdCBvZiBkZXBlbmRlbmNpZXMgdG8gY2hlY2ssIHNpbmNlIHRoZSBwYXJlbnQgY291bGQgYmUgYSBiYW5uZWQgYXJ0aWZhY3QKKyAgICAgICAgICAgIGlmICggcHJvamVjdC5nZXRQYXJlbnRBcnRpZmFjdCgpICE9IG51bGwgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICBkZXBlbmRlbmNpZXMuYWRkKCBwcm9qZWN0LmdldFBhcmVudEFydGlmYWN0KCkgKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAogICAgICAgICB9CiAgICAgICAgIGNhdGNoICggRGVwZW5kZW5jeUdyYXBoQnVpbGRlckV4Y2VwdGlvbiBlICkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvZW5mb3JjZXItcnVsZXMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvQmFubmVkRGVwZW5kZW5jaWVzLmphdmEgYi9lbmZvcmNlci1ydWxlcy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9lbmZvcmNlci9CYW5uZWREZXBlbmRlbmNpZXMuamF2YQppbmRleCAyNWVkMmRkLi5hYTk2ZjYwIDEwMDY0NAotLS0gYS9lbmZvcmNlci1ydWxlcy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9lbmZvcmNlci9CYW5uZWREZXBlbmRlbmNpZXMuamF2YQorKysgYi9lbmZvcmNlci1ydWxlcy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9lbmZvcmNlci9CYW5uZWREZXBlbmRlbmNpZXMuamF2YQpAQCAtMjAsMTIgKzIwLDI0IEBACiAgKi8KIAogaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sYW5nLlN0cmluZ1V0aWxzOworaW1wb3J0IG9yZy5hcGFjaGUuaHR0cC5IdHRwUmVzcG9uc2U7CitpbXBvcnQgb3JnLmFwYWNoZS5odHRwLmNsaWVudC5jb25maWcuUmVxdWVzdENvbmZpZzsKK2ltcG9ydCBvcmcuYXBhY2hlLmh0dHAuY2xpZW50Lm1ldGhvZHMuSHR0cEdldDsKK2ltcG9ydCBvcmcuYXBhY2hlLmh0dHAuY2xpZW50Lm1ldGhvZHMuSHR0cFJlcXVlc3RCYXNlOworaW1wb3J0IG9yZy5hcGFjaGUuaHR0cC5pbXBsLmNsaWVudC5DbG9zZWFibGVIdHRwQ2xpZW50OworaW1wb3J0IG9yZy5hcGFjaGUuaHR0cC5pbXBsLmNsaWVudC5EZWZhdWx0SHR0cFJlcXVlc3RSZXRyeUhhbmRsZXI7CitpbXBvcnQgb3JnLmFwYWNoZS5odHRwLmltcGwuY2xpZW50Lkh0dHBDbGllbnRCdWlsZGVyOwogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QuQXJ0aWZhY3Q7CiBpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC52ZXJzaW9uaW5nLkludmFsaWRWZXJzaW9uU3BlY2lmaWNhdGlvbkV4Y2VwdGlvbjsKIGltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLmVuZm9yY2VyLnJ1bGUuYXBpLkVuZm9yY2VyUnVsZUV4Y2VwdGlvbjsKIGltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbi5sb2dnaW5nLkxvZzsKIGltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMuZW5mb3JjZXIudXRpbHMuQXJ0aWZhY3RNYXRjaGVyOwogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy5lbmZvcmNlci51dGlscy5BcnRpZmFjdE1hdGNoZXIuUGF0dGVybjsKKworaW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CitpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsKK2ltcG9ydCBqYXZhLm5ldC5Vbmtub3duSG9zdEV4Y2VwdGlvbjsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OwogaW1wb3J0IGphdmEudXRpbC5IYXNoU2V0OwogaW1wb3J0IGphdmEudXRpbC5MaXN0OwogaW1wb3J0IGphdmEudXRpbC5TZXQ7CkBAIC00MCw2ICs1Miw4IEBACiAgICAgZXh0ZW5kcyBBYnN0cmFjdEJhbkRlcGVuZGVuY2llcwogewogCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgSW50ZWdlciBTVEFUVVNfU1VDQ0VTUyA9IDIwMDsKKyAgICAKICAgICAvKioKICAgICAgKiBTcGVjaWZ5IHRoZSBiYW5uZWQgZGVwZW5kZW5jaWVzLiBUaGlzIGNhbiBiZSBhIGxpc3Qgb2YgYXJ0aWZhY3RzIGluIHRoZSBmb3JtYXQKICAgICAgKiA8Y29kZT5ncm91cElkWzphcnRpZmFjdElkXVs6dmVyc2lvbl08L2NvZGU+LiBBbnkgb2YgdGhlIHNlY3Rpb25zIGNhbiBiZSBhIHdpbGRjYXJkIApAQCAtNDksOCArNjMsMjUgQEAKICAgICAgKiAKICAgICAgKiBAc2VlIHtAbGluayAjc2V0RXhjbHVkZXMoTGlzdCl9CiAgICAgICogQHNlZSB7QGxpbmsgI2dldEV4Y2x1ZGVzKCl9CisgICAgICogCisgICAgICogQHNlZSB7QGxpbmsgI2V4Y2x1ZGVzVXJsfQogICAgICAqLwogICAgIHByaXZhdGUgTGlzdDxTdHJpbmc+IGV4Y2x1ZGVzID0gbnVsbDsKKyAgICAKKyAgICAvKioKKyAgICAgKiBVUkwgcG9pbnRpbmcgdG8gYSBsaXN0IG9mIGJhbm5lZCBkZXBlbmRlbmNpZXMgYXQgYSBzcGVjaWZpYyBsb2NhdGlvbi4gVGhpcyBjYW4gYmUgCisgICAgICogYSBsaXN0IG9mIGFydGlmYWN0cyBpbiB0aGUgZm9ybWF0IDxjb2RlPmdyb3VwSWRbOmFydGlmYWN0SWRdWzp2ZXJzaW9uXTwvY29kZT4uIAorICAgICAqIEFueSBvZiB0aGUgc2VjdGlvbnMgY2FuIGJlIGEgd2lsZGNhcmQgYnkgdXNpbmcgJyonIChpZSBncm91cDoqOjEuMCkgPGJyPiAKKyAgICAgKiBFaXRoZXIgPGI+ZXhjbHVkZXM8L2I+IG9yIDxiPmV4Y2x1ZGVzVXJsPC9iPiBvciBib3RoIGNhbiBiZSB1c2VkLgorICAgICAqIElmIGJvdGggYXJlIHVzZWQsIGFsbCBiYW5uZWQgZGVwZW5kZW5jaWVzIHNwZWNpZmllZCBhdCB0aGlzIDxiPmV4Y2x1ZGVzVXJsPC9iPiBsb2NhdGlvbiAKKyAgICAgKiB3aWxsIGJlIGNvbWJpbmVkIHdpdGggdGhlIGxpc3Qgb2YgYmFubmVkIGRlcGVuZGVuY2llcyBzcGVjaWZpZWQgaW4gPGI+ZXhjbHVkZXM8L2I+LgorICAgICAqIFRoZSBydWxlIHdpbGwgZmFpbCBpZiBhbnkgZGVwZW5kZW5jeSBtYXRjaGVzIGFueSBleGNsdWRlLCB1bmxlc3MgaXQgYWxzbyBtYXRjaGVzIAorICAgICAqIGFuIGluY2x1ZGUgcnVsZS4KKyAgICAgKiAKKyAgICAgKiBAc2VlIHtAbGluayAjc2V0RXhjbHVkZXNVcmwoU3RyaW5nKX0KKyAgICAgKiBAc2VlIHtAbGluayAjZ2V0RXhjbHVkZXNVcmwoKX0KKyAgICAgKi8KKyAgICBwcml2YXRlIFN0cmluZyBleGNsdWRlc1VybCA9IG51bGw7CiAKICAgICAvKioKICAgICAgKiBTcGVjaWZ5IHRoZSBhbGxvd2VkIGRlcGVuZGVuY2llcy4gVGhpcyBjYW4gYmUgYSBsaXN0IG9mIGFydGlmYWN0cyBpbiB0aGUgZm9ybWF0CkBAIC02NSwxNiArOTYsMjggQEAKICAgICAgKiBAc2VlIHtAbGluayAjZ2V0SW5jbHVkZXMoKX0KICAgICAgKi8KICAgICBwcml2YXRlIExpc3Q8U3RyaW5nPiBpbmNsdWRlcyA9IG51bGw7Ci0KKyAgICAKICAgICAvKioKICAgICAgKiB7QGluaGVyaXREb2N9CiAgICAgICovCiAgICAgcHJvdGVjdGVkIFNldDxBcnRpZmFjdD4gY2hlY2tEZXBlbmRlbmNpZXMoIFNldDxBcnRpZmFjdD4gdGhlRGVwZW5kZW5jaWVzLCBMb2cgbG9nICkKICAgICAgICAgdGhyb3dzIEVuZm9yY2VyUnVsZUV4Y2VwdGlvbgogICAgIHsKLQorICAgICAgICBsb2cuaW5mbyggImV4Y2x1ZGVzVXJsPSIgKyBleGNsdWRlc1VybCArICIsIGV4Y2x1ZGVzPSIgKyBleGNsdWRlcyApOworICAgICAgICBsb2cuaW5mbyggIk5vIG9mIGV4Y2x1ZGVzIGJlZm9yZSByZWFkaW5nIGZyb20gZXhjbHVkZXNVcmw9IiAKKyAgICAgICAgICAgICAgICAgICAgICArICggKCBleGNsdWRlcyAhPSBudWxsICkgPyBleGNsdWRlcy5zaXplKCkgOiAiMCIgKSApOworICAgICAgICAKKyAgICAgICAgaWYgKCBleGNsdWRlc1VybCAhPSBudWxsICYmICFleGNsdWRlc1VybC5pc0VtcHR5KCkgKQorICAgICAgICB7CisgICAgICAgICAgZmV0Y2hFeGNsdWRlZExpc3QoIGxvZyApOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBsb2cuaW5mbyggIk5vIG9mIGV4Y2x1ZGVzIGFmdGVyIHJlYWRpbmcgZnJvbSBleGNsdWRlc1VybD0iICsgKCAoIGV4Y2x1ZGVzICE9IG51bGwgKSA/IGV4Y2x1ZGVzLnNpemUoKSA6ICIwIiApICk7CisgICAgICAgIAogICAgICAgICBTZXQ8QXJ0aWZhY3Q+IGV4Y2x1ZGVkID0gY2hlY2tEZXBlbmRlbmNpZXMoIHRoZURlcGVuZGVuY2llcywgZXhjbHVkZXMgKTsKLQorICAgICAgICAKKyAgICAgICAgbG9nLmRlYnVnKCAiTm8gb2YgZXhjbHVkZWQgYXJ0aWZhY3RzID0gIiArICggZXhjbHVkZWQgIT0gbnVsbCA/IGV4Y2x1ZGVkLnNpemUoKSA6IDAgKSApOyAKKyAgICAgICAgCiAgICAgICAgIC8vIGFueXRoaW5nIHNwZWNpZmljYWxseSBpbmNsdWRlZCBzaG91bGQgYmUgcmVtb3ZlZAogICAgICAgICAvLyBmcm9tIHRoZSBiYW4gbGlzdC4KICAgICAgICAgaWYgKCBleGNsdWRlZCAhPSBudWxsICkKQEAgLTg5LDYgKzEzMiw4OCBAQAogICAgICAgICByZXR1cm4gZXhjbHVkZWQ7CiAKICAgICB9CisgICAgCisgICAgcHJpdmF0ZSB2b2lkIGZldGNoRXhjbHVkZWRMaXN0ICggTG9nIGxvZ2dlciApIHRocm93cyBFbmZvcmNlclJ1bGVFeGNlcHRpb24KKyAgICB7CisgICAgICBsb2dnZXIuZGVidWcoICJJbnNpZGUgZ2V0RXhjbHVkZWRMaXN0KCkuLi4iICk7CisgICAgICBpbnQgdGltZW91dCA9IDMgKiAxMDAwOyAvLyBtaWxsaXNlY29uZHMKKyAgICAgIENsb3NlYWJsZUh0dHBDbGllbnQgaHR0cENsaWVudCA9IG51bGw7CisgICAgICBIdHRwUmVxdWVzdEJhc2UgaHR0cFJlcXVlc3QgPSBudWxsOworICAgICAgdHJ5CisgICAgICB7CisgICAgICAgCisgICAgICAgIFJlcXVlc3RDb25maWcgcmVxdWVzdENvbmZpZyA9IFJlcXVlc3RDb25maWcuY3VzdG9tKCkuc2V0Q29ubmVjdFRpbWVvdXQoIHRpbWVvdXQgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNldFNvY2tldFRpbWVvdXQoIHRpbWVvdXQgKS5idWlsZCgpOworICAgICAgICBodHRwQ2xpZW50ID0gSHR0cENsaWVudEJ1aWxkZXIuY3JlYXRlKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZXREZWZhdWx0UmVxdWVzdENvbmZpZyggcmVxdWVzdENvbmZpZyApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc2V0TWF4Q29ublBlclJvdXRlKCAxMDAwICkuc2V0TWF4Q29ublRvdGFsKCAxMDAwICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZXRSZXRyeUhhbmRsZXIoIG5ldyBEZWZhdWx0SHR0cFJlcXVlc3RSZXRyeUhhbmRsZXIoKSApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYnVpbGQoICk7CisgICAgICAKKyAgICAgICAgaHR0cFJlcXVlc3QgPSBuZXcgSHR0cEdldCggZXhjbHVkZXNVcmwgKTsKKyAgICAgICAgCisgICAgICAgIEh0dHBSZXNwb25zZSByZXNwb25zZSA9IGh0dHBDbGllbnQuZXhlY3V0ZSggaHR0cFJlcXVlc3QgKTsKKyAgICAgICAgaW50IHN0YXR1c0NvZGUgPSAwOworICAgICAgICBTdHJpbmcgbGluZSA9IG51bGw7CisgICAgICAgIGlmICggcmVzcG9uc2UgIT0gbnVsbCApCisgICAgICAgIHsKKyAgICAgICAgICBpZiAoIHJlc3BvbnNlLmdldFN0YXR1c0xpbmUoICkgIT0gbnVsbCApCisgICAgICAgICAgeworICAgICAgICAgICAgc3RhdHVzQ29kZSA9IHJlc3BvbnNlLmdldFN0YXR1c0xpbmUoICkuZ2V0U3RhdHVzQ29kZSggKTsKKyAgICAgICAgICAgIGxvZ2dlci5pbmZvKCAiUmVzcG9uc2Ugc3RhdHVzIGNvZGUgZnJvbSBleGNsdWRlc1VybDogIiArIHN0YXR1c0NvZGUgKTsKKyAgICAgICAgICB9CisgICAgICAgICAgCisgICAgICAgICAgaWYgKCBzdGF0dXNDb2RlID09IFNUQVRVU19TVUNDRVNTICYmIHJlc3BvbnNlLmdldEVudGl0eSgpICE9IG51bGwgKQorICAgICAgICAgIHsKKyAgICAgICAgICAgIEJ1ZmZlcmVkUmVhZGVyIGJyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKCBuZXcgSW5wdXRTdHJlYW1SZWFkZXIoIHJlc3BvbnNlLmdldEVudGl0eSgpLmdldENvbnRlbnQoKSApICk7CisgICAgICAKKyAgICAgICAgICAgIGlmICggYnIgIT0gbnVsbCApIAorICAgICAgICAgICAgeworICAgICAgICAgICAgICB3aGlsZSAoICggbGluZSA9IGJyLnJlYWRMaW5lKCkgKSAhPSBudWxsICkgCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoIGV4Y2x1ZGVzID09IG51bGwgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVzID0gbmV3IEFycmF5TGlzdDxTdHJpbmc+KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmICggbGluZSAhPSBudWxsICYmICFsaW5lLnRyaW0oKS5pc0VtcHR5KCkgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZyggImJsYWNrbGlzdGVkIGFydGlmYWN0PSIgKyBsaW5lICk7CisgICAgICAgICAgICAgICAgICBleGNsdWRlcy5hZGQoIGxpbmUgKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICB9CisgICAgICBjYXRjaCAoIFVua25vd25Ib3N0RXhjZXB0aW9uIHVoZSApCisgICAgICB7CisgICAgICAgIGxvZ2dlci5pbmZvKCAiSW52YWxpZCBleGNsdWRlc1VybCB2YWx1ZSAtLT4gIiArIGV4Y2x1ZGVzVXJsICk7CisgICAgICAgIHRocm93IG5ldyBFbmZvcmNlclJ1bGVFeGNlcHRpb24oICJJbnZhbGlkIGV4Y2x1ZGVzVXJsIHZhbHVlIC0tPiAiICsgZXhjbHVkZXNVcmwsIHVoZSApOworICAgICAgfQorICAgICAgY2F0Y2ggKCBFeGNlcHRpb24gZSApCisgICAgICB7CisgICAgICAgIGxvZ2dlci5pbmZvKCAiRXJyb3Igd2hpbGUgcmVhZGluZyBmcm9tIGV4Y2x1ZGVzVXJsLCBlcnJvcj0iICsgZS5nZXRNZXNzYWdlKCkgKTsKKyAgICAgICAgdGhyb3cgbmV3IEVuZm9yY2VyUnVsZUV4Y2VwdGlvbiggIkVycm9yIHJlYWRpbmcgYmxhY2tsaXN0IGFydGlmYWN0cyBmcm9tIHVybCAiICsgZXhjbHVkZXNVcmwsIGUgKTsKKyAgICAgIH0KKyAgICAgIGZpbmFsbHkKKyAgICAgIHsKKyAgICAgICAgaHR0cFJlcXVlc3QucmVsZWFzZUNvbm5lY3Rpb24oKTsKKyAgICAgICAgdHJ5IAorICAgICAgICB7CisgICAgICAgICAgaWYgKCBodHRwQ2xpZW50ICE9IG51bGwgKQorICAgICAgICAgIHsKKyAgICAgICAgICAgIGh0dHBDbGllbnQuY2xvc2UoKTsKKyAgICAgICAgICB9CisgICAgICAgIH0gCisgICAgICAgIGNhdGNoICggRXhjZXB0aW9uIGUgKSAKKyAgICAgICAgeworICAgICAgICAgIGxvZ2dlci5pbmZvKCAiRXJyb3Igb2NjdXJlZCB3aGlsZSBjbG9zaW5nIGh0dHAgY2xpZW50LCBlcnJvcj0iICsgZS5nZXRNZXNzYWdlKCkgKTsKKyAgICAgICAgfQorICAgICAgfQorICAgICAgCisgICAgfQogCiAgICAgLyoqCiAgICAgICogQ2hlY2tzIHRoZSBzZXQgb2YgZGVwZW5kZW5jaWVzIGFnYWluc3QgdGhlIGxpc3Qgb2YgcGF0dGVybnMuCkBAIC0xMDIsNyArMjI3LDcgQEAKICAgICAgICAgdGhyb3dzIEVuZm9yY2VyUnVsZUV4Y2VwdGlvbgogICAgIHsKICAgICAgICAgU2V0PEFydGlmYWN0PiBmb3VuZE1hdGNoZXMgPSBudWxsOwotCisgICAgICAgIAogICAgICAgICBpZiAoIHRoZVBhdHRlcm5zICE9IG51bGwgJiYgdGhlUGF0dGVybnMuc2l6ZSgpID4gMCApCiAgICAgICAgIHsKIApAQCAtMjA5LDQgKzMzNCwxOCBAQCBwdWJsaWMgdm9pZCBzZXRJbmNsdWRlcyggTGlzdDxTdHJpbmc+IHRoZUluY2x1ZGVzICkKICAgICAgICAgdGhpcy5pbmNsdWRlcyA9IHRoZUluY2x1ZGVzOwogICAgIH0KIAorICAgIHB1YmxpYyBTdHJpbmcgZ2V0RXhjbHVkZXNVcmwoKSAKKyAgICB7CisgICAgICByZXR1cm4gZXhjbHVkZXNVcmw7CisgICAgfQorICAgIAorCisgICAgcHVibGljIHZvaWQgc2V0RXhjbHVkZXNVcmwoIFN0cmluZyBleGNsdWRlc1VybCApIAorICAgIHsKKyAgICAgIHRoaXMuZXhjbHVkZXNVcmwgPSBleGNsdWRlc1VybDsKKyAgICB9CisgICAgCisgICAgCisgICAgCisKIH0KZGlmZiAtLWdpdCBhL2VuZm9yY2VyLXJ1bGVzL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL2VuZm9yY2VyL0Jhbm5lZERlcGVuZGVuY2llc1Rlc3RTZXR1cC5qYXZhIGIvZW5mb3JjZXItcnVsZXMvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvQmFubmVkRGVwZW5kZW5jaWVzVGVzdFNldHVwLmphdmEKaW5kZXggMWQzNmVmNy4uMzc2NDZkMCAxMDA2NDQKLS0tIGEvZW5mb3JjZXItcnVsZXMvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvQmFubmVkRGVwZW5kZW5jaWVzVGVzdFNldHVwLmphdmEKKysrIGIvZW5mb3JjZXItcnVsZXMvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvQmFubmVkRGVwZW5kZW5jaWVzVGVzdFNldHVwLmphdmEKQEAgLTM3LDEzICszNywxOSBAQCBwdWJsaWMgQmFubmVkRGVwZW5kZW5jaWVzVGVzdFNldHVwKCkKICAgICB7CiAgICAgICAgIHRoaXMuZXhjbHVkZXMgPSBuZXcgQXJyYXlMaXN0PFN0cmluZz4oKTsKICAgICAgICAgdGhpcy5pbmNsdWRlcyA9IG5ldyBBcnJheUxpc3Q8U3RyaW5nPigpOwotCisgICAgICAgIHRoaXMuZXhjbHVkZXNVcmwgPSBudWxsOworICAgICAgICAKICAgICAgICAgQXJ0aWZhY3RTdHViRmFjdG9yeSBmYWN0b3J5ID0gbmV3IEFydGlmYWN0U3R1YkZhY3RvcnkoKTsKIAogICAgICAgICBNb2NrUHJvamVjdCBwcm9qZWN0ID0gbmV3IE1vY2tQcm9qZWN0KCk7CiAgICAgICAgIHByb2plY3Quc2V0QXJ0aWZhY3RzKCBmYWN0b3J5LmdldE1peGVkQXJ0aWZhY3RzKCkgKTsKICAgICAgICAgcHJvamVjdC5zZXREZXBlbmRlbmN5QXJ0aWZhY3RzKCBmYWN0b3J5LmdldFNjb3BlZEFydGlmYWN0cygpICk7Ci0KKyAgICAgICAgCisgICAgICAgIE1vY2tQcm9qZWN0IHByb2plY3QxID0gbmV3IE1vY2tQcm9qZWN0KCk7CisgICAgICAgIHByb2plY3QxLnNldEFydGlmYWN0KCBmYWN0b3J5LmNyZWF0ZUFydGlmYWN0KCAicGcxIiwgInBhMSIsICI0LjAiLEFydGlmYWN0LlNDT1BFX0NPTVBJTEUsICJwb20iLCIiKSApOworICAgICAgICBwcm9qZWN0LnNldFBhcmVudCggcHJvamVjdDEgKTsKKyAgICAgICAgcHJvamVjdC5zZXRQYXJlbnRBcnRpZmFjdCggZmFjdG9yeS5jcmVhdGVBcnRpZmFjdCggInBnMSIsICJwYTEiLCAiNC4wIixBcnRpZmFjdC5TQ09QRV9DT01QSUxFLCAicG9tIiwiIikgKTsgICAgCisgICAgICAgIAogICAgICAgICB0aGlzLmhlbHBlciA9IEVuZm9yY2VyVGVzdFV0aWxzLmdldEhlbHBlciggcHJvamVjdCApOwogCiAgICAgICAgIHRoaXMucnVsZSA9IG5ld0Jhbm5lZERlcGVuZGVuY2llc1J1bGUoKTsKQEAgLTUxLDExICs1NywxMyBAQCBwdWJsaWMgQmFubmVkRGVwZW5kZW5jaWVzVGVzdFNldHVwKCkKIAogICAgICAgICB0aGlzLnJ1bGUuc2V0RXhjbHVkZXMoIHRoaXMuZXhjbHVkZXMgKTsKICAgICAgICAgdGhpcy5ydWxlLnNldEluY2x1ZGVzKCB0aGlzLmluY2x1ZGVzICk7CisgICAgICAgIHRoaXMucnVsZS5zZXRFeGNsdWRlc1VybCggdGhpcy5leGNsdWRlc1VybCApOwogICAgIH0KIAogICAgIHByaXZhdGUgTGlzdDxTdHJpbmc+IGV4Y2x1ZGVzOwogICAgIHByaXZhdGUgTGlzdDxTdHJpbmc+IGluY2x1ZGVzOwotCisgICAgcHJpdmF0ZSBTdHJpbmcgZXhjbHVkZXNVcmw7CisgICAgCiAgICAgcHJpdmF0ZSBCYW5uZWREZXBlbmRlbmNpZXMgcnVsZTsKIAogICAgIHByaXZhdGUgRW5mb3JjZXJSdWxlSGVscGVyIGhlbHBlcjsKQEAgLTcxLDYgKzc5LDE1IEBAIHB1YmxpYyB2b2lkIGFkZEV4Y2x1ZGVBbmRSdW5SdWxlKCBTdHJpbmcgdG9BZGQgKQogICAgICAgICBleGNsdWRlcy5hZGQoIHRvQWRkICk7CiAgICAgICAgIHJ1bGUuZXhlY3V0ZSggaGVscGVyICk7CiAgICAgfQorICAgIAorICAgIHB1YmxpYyB2b2lkIGFkZEV4Y2x1ZGVVcmxBbmRSdW5SdWxlKCBTdHJpbmcgdXJsICkKKyAgICAgIHRocm93cyBFbmZvcmNlclJ1bGVFeGNlcHRpb24KKyAgeworICAgICAgZXhjbHVkZXNVcmwgPSB1cmw7CisgICAgICBydWxlLnNldEV4Y2x1ZGVzVXJsKGV4Y2x1ZGVzVXJsKTsKKyAgICAgIHJ1bGUuZXhlY3V0ZSggaGVscGVyICk7CisgIAorICB9CiAKICAgICBwdWJsaWMgdm9pZCBhZGRJbmNsdWRlRXhjbHVkZUFuZFJ1blJ1bGUgKFN0cmluZyBpbmNBZGQsIFN0cmluZyBleGNBZGQpIHRocm93cyBFbmZvcmNlclJ1bGVFeGNlcHRpb24gewogICAgICAgICBleGNsdWRlcy5hZGQoIGV4Y0FkZCApOwpAQCAtODcsNiArMTA0LDE2IEBAIHB1YmxpYyB2b2lkIHNldEV4Y2x1ZGVzKCBMaXN0PFN0cmluZz4gZXhjbHVkZXMgKQogICAgIHsKICAgICAgICAgdGhpcy5leGNsdWRlcyA9IGV4Y2x1ZGVzOwogICAgIH0KKyAgICAKKyAgICBwdWJsaWMgU3RyaW5nIGdldEV4Y2x1ZGVzVXJsKCkKKyAgICB7CisgICAgICAgIHJldHVybiBleGNsdWRlc1VybDsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBzZXRFeGNsdWRlc1VybCggU3RyaW5nIGV4Y2x1ZGVzVXJsICkKKyAgICB7CisgICAgICAgIHRoaXMuZXhjbHVkZXNVcmwgPSBleGNsdWRlc1VybDsKKyAgICB9CiAKICAgICBwcml2YXRlIEJhbm5lZERlcGVuZGVuY2llcyBuZXdCYW5uZWREZXBlbmRlbmNpZXNSdWxlKCkKICAgICB7CkBAIC05OCw3ICsxMjUsMTQgQEAgcHJpdmF0ZSBCYW5uZWREZXBlbmRlbmNpZXMgbmV3QmFubmVkRGVwZW5kZW5jaWVzUnVsZSgpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgLy8gdGhlIGludGVncmF0aW9uIHdpdGggZGVwZW5kZW5jeUdyYXBoVHJlZSBpcyB2ZXJpZmllZCB3aXRoIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0cwogICAgICAgICAgICAgICAgIC8vIGZvciB1bml0LXRlc3RpbmcKLSAgICAgICAgICAgICAgICByZXR1cm4gaXNTZWFyY2hUcmFuc2l0aXZlKCkgPyBwcm9qZWN0LmdldEFydGlmYWN0cygpIDogcHJvamVjdC5nZXREZXBlbmRlbmN5QXJ0aWZhY3RzKCk7CisgICAgICAgICAgICAgICAgU2V0PEFydGlmYWN0PiBhcnRpZmFjdHMxID0gcHJvamVjdC5nZXRBcnRpZmFjdHMoKTsKKyAgICAgICAgICAgICAgICBhcnRpZmFjdHMxLmFkZChwcm9qZWN0LmdldFBhcmVudEFydGlmYWN0KCkpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIFNldDxBcnRpZmFjdD4gYXJ0aWZhY3RzMiA9IHByb2plY3QuZ2V0RGVwZW5kZW5jeUFydGlmYWN0cygpOworICAgICAgICAgICAgICAgIGFydGlmYWN0czIuYWRkKHByb2plY3QuZ2V0UGFyZW50QXJ0aWZhY3QoKSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgLy9yZXR1cm4gaXNTZWFyY2hUcmFuc2l0aXZlKCkgPyBwcm9qZWN0LmdldEFydGlmYWN0cygpIDogcHJvamVjdC5nZXREZXBlbmRlbmN5QXJ0aWZhY3RzKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGlzU2VhcmNoVHJhbnNpdGl2ZSgpID8gYXJ0aWZhY3RzMSA6IGFydGlmYWN0czI7CiAgICAgICAgICAgICB9CiAgICAgICAgIH07CiAgICAgICAgIHJldHVybiBydWxlOwpkaWZmIC0tZ2l0IGEvZW5mb3JjZXItcnVsZXMvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvTW9ja1Byb2plY3QuamF2YSBiL2VuZm9yY2VyLXJ1bGVzL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL2VuZm9yY2VyL01vY2tQcm9qZWN0LmphdmEKaW5kZXggMmEwMjVmMi4uM2YwMmU4NiAxMDA2NDQKLS0tIGEvZW5mb3JjZXItcnVsZXMvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvTW9ja1Byb2plY3QuamF2YQorKysgYi9lbmZvcmNlci1ydWxlcy9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9lbmZvcmNlci9Nb2NrUHJvamVjdC5qYXZhCkBAIC0xNDgzLDcgKzE0ODMsMTAgQEAgcHVibGljIE1hcCBnZXRFeHRlbnNpb25BcnRpZmFjdE1hcCgpCiAgICAgICovCiAgICAgcHVibGljIHZvaWQgc2V0UGFyZW50QXJ0aWZhY3QoIEFydGlmYWN0IGFydGlmYWN0ICkKICAgICB7Ci0KKyAgICAgIGlmIChwYXJlbnQgIT1udWxsKQorICAgICAgeworICAgICAgICBwYXJlbnQuc2V0QXJ0aWZhY3QoYXJ0aWZhY3QpOworICAgICAgfQogICAgIH0KIAogICAgIC8qCmRpZmYgLS1naXQgYS9lbmZvcmNlci1ydWxlcy9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9lbmZvcmNlci9UZXN0QmFubmVkRGVwZW5kZW5jaWVzLmphdmEgYi9lbmZvcmNlci1ydWxlcy9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9lbmZvcmNlci9UZXN0QmFubmVkRGVwZW5kZW5jaWVzLmphdmEKaW5kZXggMDZmMmI1NS4uYTkxYzM2OSAxMDA2NDQKLS0tIGEvZW5mb3JjZXItcnVsZXMvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvVGVzdEJhbm5lZERlcGVuZGVuY2llcy5qYXZhCisrKyBiL2VuZm9yY2VyLXJ1bGVzL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL2VuZm9yY2VyL1Rlc3RCYW5uZWREZXBlbmRlbmNpZXMuamF2YQpAQCAtMjIsNiArMjIsMTMgQEAKIGltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOwogCiBpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5lbmZvcmNlci5ydWxlLmFwaS5FbmZvcmNlclJ1bGVFeGNlcHRpb247CisKK2ltcG9ydCBvcmcuY29kZWhhdXMucGxleHVzLnV0aWwuRmlsZVV0aWxzOworaW1wb3J0IG9yZy5lY2xpcHNlLmpldHR5LnNlcnZlci5IYW5kbGVyOworaW1wb3J0IG9yZy5lY2xpcHNlLmpldHR5LnNlcnZlci5TZXJ2ZXI7CitpbXBvcnQgb3JnLmVjbGlwc2UuamV0dHkuc2VydmVyLmhhbmRsZXIuSGFuZGxlckxpc3Q7CitpbXBvcnQgb3JnLmVjbGlwc2UuamV0dHkuc2VydmVyLmhhbmRsZXIuUmVzb3VyY2VIYW5kbGVyOworaW1wb3J0IG9yZy5qdW5pdC5BZnRlcjsKIGltcG9ydCBvcmcuanVuaXQuQmVmb3JlOwogaW1wb3J0IG9yZy5qdW5pdC5UZXN0OwogaW1wb3J0IG9yZy5qdW5pdC5leHBlcmltZW50YWwucnVubmVycy5FbmNsb3NlZDsKQEAgLTE0OSw2ICsxNTYsNyBAQCBwdWJsaWMgdm9pZCBncm91cElkQXJ0aWZhY3RJZFZlcnNpb25UeXBlU2NvcGUoKQogICAgIHsKIAogICAgICAgICBwcml2YXRlIEJhbm5lZERlcGVuZGVuY2llc1Rlc3RTZXR1cCBzZXR1cDsKKyAgICAgICAgCiAKICAgICAgICAgQEJlZm9yZQogICAgICAgICBwdWJsaWMgdm9pZCBiZWZvcmVNZXRob2QoKQpAQCAtMTU3LDcgKzE2NSw3IEBAIHB1YmxpYyB2b2lkIGJlZm9yZU1ldGhvZCgpCiAgICAgICAgICAgICB0aGlzLnNldHVwID0gbmV3IEJhbm5lZERlcGVuZGVuY2llc1Rlc3RTZXR1cCgpOwogICAgICAgICAgICAgdGhpcy5zZXR1cC5zZXRTZWFyY2hUcmFuc2l0aXZlKCB0cnVlICk7CiAgICAgICAgIH0KLQorICAgICAgICAKICAgICAgICAgcHJpdmF0ZSB2b2lkIGFkZEV4Y2x1ZGVBbmRSdW5SdWxlKCBTdHJpbmcgdG9BZGQgKQogICAgICAgICAgICAgdGhyb3dzIEVuZm9yY2VyUnVsZUV4Y2VwdGlvbgogICAgICAgICB7CkBAIC0xOTEsNiArMTk5LDIwMyBAQCBwdWJsaWMgdm9pZCB0ZXN0V2lsZGNhcmRGb3JHcm91cElkQXJ0aWZhY3RJZFdpbGRjYXJkRm9yVmVyc2lvbigpCiAgICAgICAgIHsKICAgICAgICAgICAgIGFkZEV4Y2x1ZGVBbmRSdW5SdWxlKCAiKjpyZWxlYXNlOioiICk7CiAgICAgICAgIH0KKyAgICAgICAgCisgICAgfQorICAgIAorICAgIHB1YmxpYyBzdGF0aWMgY2xhc3MgRXhjbHVkZXNVc2luZ0V4Y2x1ZGVzVXJsCisgICAgeworCisgICAgICAgIHByaXZhdGUgQmFubmVkRGVwZW5kZW5jaWVzVGVzdFNldHVwIHNldHVwOworICAgICAgICBwcml2YXRlIFNlcnZlciBzZXJ2ZXIgPSBudWxsOworICAgICAgICBwcml2YXRlIFN0cmluZyBleGNsdWRlc1VybCA9ICJodHRwOi8vbG9jYWxob3N0OjgwODEvIjsKKyAgICAgICAgcHJpdmF0ZSBTdHJpbmcgaW52YWxpZEV4Y2x1ZGVzVXJsID0gImh0dHA6Ly9oZ2dna2hraCI7CisgICAgICAgIHByaXZhdGUgU3RyaW5nIGJsYWNrbGlzdEZpbGVuYW1lID0gIi4vdGFyZ2V0L3Rlc3QtY2xhc3Nlcy90ZXN0QmFubmVkRGVwZW5kZW5jaWVzL2JsYWNrbGlzdC50eHQiOworICAgICAgICAKKyAgICAgICAgQEJlZm9yZQorICAgICAgICBwdWJsaWMgdm9pZCBiZWZvcmVNZXRob2QoKQorICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbgorICAgICAgICB7CisgICAgICAgICAgICB0aGlzLnNldHVwID0gbmV3IEJhbm5lZERlcGVuZGVuY2llc1Rlc3RTZXR1cCgpOworICAgICAgICAgICAgdGhpcy5zZXR1cC5zZXRTZWFyY2hUcmFuc2l0aXZlKCB0cnVlICk7CisgICAgICAgICAgICBzdGFydEVtYmVkZGVkSmV0dHlTZXJ2ZXIoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHJpdmF0ZSB2b2lkIHN0YXJ0RW1iZWRkZWRKZXR0eVNlcnZlcigpIHRocm93cyBFeGNlcHRpb257CisgICAgICAgICAgCisgICAgICAgICAgaWYgKHNlcnZlciA9PSBudWxsKSB7CisgICAgICAgICAgICBzZXJ2ZXIgPSBuZXcgU2VydmVyKDgwODEpOworICAgICAgICAgICAgc2VydmVyLnNldFN0b3BBdFNodXRkb3duKHRydWUpOworICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGVyIHJlc291cmNlSGFuZGxlciA9IG5ldyBSZXNvdXJjZUhhbmRsZXIoKTsKKyAgICAgICAgICAgIHJlc291cmNlSGFuZGxlci5zZXRSZXNvdXJjZUJhc2UoYmxhY2tsaXN0RmlsZW5hbWUpOworCisgICAgICAgICAgICBIYW5kbGVyTGlzdCBoYW5kbGVycyA9IG5ldyBIYW5kbGVyTGlzdCgpOworICAgICAgICAgICAgaGFuZGxlcnMuc2V0SGFuZGxlcnMobmV3IEhhbmRsZXJbXSB7IHJlc291cmNlSGFuZGxlciB9KTsKKyAgICAgICAgICAgIHNlcnZlci5zZXRIYW5kbGVyKGhhbmRsZXJzKTsKKyAgICAgICAgICAgIHNlcnZlci5zdGFydCgpOworICAgICAgICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIkpldHR5IHNlcnZlciBzdGFydGVkLi5pc1NlcnZlclJ1bm5pbmc9IitzZXJ2ZXIuaXNSdW5uaW5nKCkpOyAgCisgICAgICAgICAgfQorICAgICAgICB9CisgCisgICAgICAgIHByaXZhdGUgdm9pZCBhZGRFeGNsdWRlVXJsQW5kUnVuUnVsZSggU3RyaW5nIHVybCApCisgICAgICAgICAgICB0aHJvd3MgRW5mb3JjZXJSdWxlRXhjZXB0aW9uCisgICAgICAgIHsgCisgICAgICAgICAgICB0aGlzLnNldHVwLmFkZEV4Y2x1ZGVVcmxBbmRSdW5SdWxlKCB1cmwpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBAVGVzdCggZXhwZWN0ZWQgPSBFbmZvcmNlclJ1bGVFeGNlcHRpb24uY2xhc3MgKSAKKyAgICAgICAgcHVibGljIHZvaWQgdGVzdEludmFsaWRFeGNsdWRlc1VybCgpCisgICAgICAgICAgICB0aHJvd3MgRXhjZXB0aW9uCisgICAgICAgIHsKKyAgICAgICAgICBhZGRFeGNsdWRlVXJsQW5kUnVuUnVsZSggaW52YWxpZEV4Y2x1ZGVzVXJsICk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIEBUZXN0KCBleHBlY3RlZCA9IEVuZm9yY2VyUnVsZUV4Y2VwdGlvbi5jbGFzcyApCisgICAgICAgIHB1YmxpYyB2b2lkIHRlc3RCbGFja2xpc3RlZFBhcmVudCgpCisgICAgICAgICAgICB0aHJvd3MgRXhjZXB0aW9uCisgICAgICAgIHsKKyAgICAgICAgICBGaWxlVXRpbHMuZmlsZUFwcGVuZCggYmxhY2tsaXN0RmlsZW5hbWUsICJcbnBnMTpwYTE6WzQuMF0iICk7CisgICAgICAgICAgYWRkRXhjbHVkZVVybEFuZFJ1blJ1bGUoIGV4Y2x1ZGVzVXJsICk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIEBUZXN0KCBleHBlY3RlZCA9IEVuZm9yY2VyUnVsZUV4Y2VwdGlvbi5jbGFzcyApCisgICAgICAgIHB1YmxpYyB2b2lkIHRlc3RXaWxkY2FyZEJsYWNrbGlzdGVkUGFyZW50KCkKKyAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb24KKyAgICAgICAgeworICAgICAgICAgIEZpbGVVdGlscy5maWxlQXBwZW5kKCBibGFja2xpc3RGaWxlbmFtZSwgIlxucGcxOnBhMToqIiApOworICAgICAgICAgIGFkZEV4Y2x1ZGVVcmxBbmRSdW5SdWxlKCBleGNsdWRlc1VybCApOworICAgICAgICB9CisKKyAgICAgICAgQFRlc3QKKyAgICAgICAgcHVibGljIHZvaWQgdGVzdFdpbGRjYXJkRm9yR3JvdXBJZEFydGlmYWN0SWRWZXJzaW9uKCkKKyAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb24KKyAgICAgICAgeworICAgICAgICAgIEZpbGVVdGlscy5maWxlQXBwZW5kKCBibGFja2xpc3RGaWxlbmFtZSwgIlxuKjpyZWxlYXNlOjEuMiIgKTsKKyAgICAgICAgICBhZGRFeGNsdWRlVXJsQW5kUnVuUnVsZSggZXhjbHVkZXNVcmwgKTsKKyAgICAgICAgICAKKyAgICAgICAgfQorCisgICAgICAgIEBUZXN0KCBleHBlY3RlZCA9IEVuZm9yY2VyUnVsZUV4Y2VwdGlvbi5jbGFzcyApCisgICAgICAgIHB1YmxpYyB2b2lkIHRlc3RXaWxkQ2FyZEZvckdyb3VwSWRBcnRpZmFjdElkKCkKKyAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb24KKyAgICAgICAgeworICAgICAgICAgIEZpbGVVdGlscy5maWxlQXBwZW5kKCBibGFja2xpc3RGaWxlbmFtZSwgIlxuKjpyZWxlYXNlIiApOworICAgICAgICAgIGFkZEV4Y2x1ZGVVcmxBbmRSdW5SdWxlKCBleGNsdWRlc1VybCApOworICAgICAgICAgIAorICAgICAgICB9CisKKyAgICAgICAgQFRlc3QoIGV4cGVjdGVkID0gRW5mb3JjZXJSdWxlRXhjZXB0aW9uLmNsYXNzICkKKyAgICAgICAgcHVibGljIHZvaWQgdGVzdFdpbGRjYXJkRm9yR3JvdXBJZFdpbGRjYXJkRm9yQXJ0aWZhY3RJZFZlcnNpb24oKQorICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbgorICAgICAgICB7CisgICAgICAgICAgRmlsZVV0aWxzLmZpbGVBcHBlbmQoIGJsYWNrbGlzdEZpbGVuYW1lLCAiXG4qOio6MS4wIiApOworICAgICAgICAgIGFkZEV4Y2x1ZGVVcmxBbmRSdW5SdWxlKCBleGNsdWRlc1VybCApOworICAgICAgICAgIAorICAgICAgICB9CisKKyAgICAgICAgQFRlc3QoIGV4cGVjdGVkID0gRW5mb3JjZXJSdWxlRXhjZXB0aW9uLmNsYXNzICkKKyAgICAgICAgcHVibGljIHZvaWQgdGVzdFdpbGRjYXJkRm9yR3JvdXBJZEFydGlmYWN0SWRXaWxkY2FyZEZvclZlcnNpb24oKQorICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbgorICAgICAgICB7CisgICAgICAgICAgRmlsZVV0aWxzLmZpbGVBcHBlbmQoIGJsYWNrbGlzdEZpbGVuYW1lLCAiXG4qOnJlbGVhc2U6KiIgKTsKKyAgICAgICAgICBhZGRFeGNsdWRlVXJsQW5kUnVuUnVsZSggZXhjbHVkZXNVcmwgKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQFRlc3QoIGV4cGVjdGVkID0gRW5mb3JjZXJSdWxlRXhjZXB0aW9uLmNsYXNzICkKKyAgICAgICAgcHVibGljIHZvaWQgdGVzdEdyb3VwSWQoKQorICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbgorICAgICAgICB7CisgICAgICAgICAgRmlsZVV0aWxzLmZpbGVBcHBlbmQoIGJsYWNrbGlzdEZpbGVuYW1lLCAiXG50ZXN0R3JvdXBJZCIgKTsKKyAgICAgICAgICBhZGRFeGNsdWRlVXJsQW5kUnVuUnVsZSggZXhjbHVkZXNVcmwgKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQFRlc3QoIGV4cGVjdGVkID0gRW5mb3JjZXJSdWxlRXhjZXB0aW9uLmNsYXNzICkKKyAgICAgICAgcHVibGljIHZvaWQgdGVzdEdyb3VwSWRBcnRpZmFjdElkVmVyc2lvbigpCisgICAgICAgICAgICB0aHJvd3MgRXhjZXB0aW9uCisgICAgICAgIHsKKyAgICAgICAgICBGaWxlVXRpbHMuZmlsZUFwcGVuZCggYmxhY2tsaXN0RmlsZW5hbWUsICJcbnRlc3RHcm91cElkOnJlbGVhc2U6MS4wIiApOworICAgICAgICAgIGFkZEV4Y2x1ZGVVcmxBbmRSdW5SdWxlKCBleGNsdWRlc1VybCApOworICAgICAgICB9CisKKyAgICAgICAgQFRlc3QoIGV4cGVjdGVkID0gRW5mb3JjZXJSdWxlRXhjZXB0aW9uLmNsYXNzICkKKyAgICAgICAgcHVibGljIHZvaWQgdGVzdEdyb3VwSWRBcnRpZmFjdElkKCkKKyAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb24KKyAgICAgICAgeworICAgICAgICAgIEZpbGVVdGlscy5maWxlQXBwZW5kKCBibGFja2xpc3RGaWxlbmFtZSwgIlxudGVzdEdyb3VwSWQ6cmVsZWFzZSIgKTsKKyAgICAgICAgICBhZGRFeGNsdWRlVXJsQW5kUnVuUnVsZSggZXhjbHVkZXNVcmwgKTsKKyAgICAgICAgfQorCisgICAgICAgIEBUZXN0KCBleHBlY3RlZCA9IEVuZm9yY2VyUnVsZUV4Y2VwdGlvbi5jbGFzcyApCisgICAgICAgIHB1YmxpYyB2b2lkIHRlc3RTcGFjZVRyaW1taW5nR3JvdXBJZEFydGlmYWN0SWRWZXJzaW9uKCkKKyAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb24KKyAgICAgICAgeworICAgICAgICAgIEZpbGVVdGlscy5maWxlQXBwZW5kKCBibGFja2xpc3RGaWxlbmFtZSwgIlxuICB0ZXN0R3JvdXBJZCAgOiAgcmVsZWFzZSAgIDogICAxLjAgICAgIiApOworICAgICAgICAgIGFkZEV4Y2x1ZGVVcmxBbmRSdW5SdWxlKCBleGNsdWRlc1VybCApOworICAgICAgICB9CisKKyAgICAgICAgQFRlc3QoIGV4cGVjdGVkID0gRW5mb3JjZXJSdWxlRXhjZXB0aW9uLmNsYXNzICkKKyAgICAgICAgcHVibGljIHZvaWQgZ3JvdXBJZEFydGlmYWN0SWRWZXJzaW9uVHlwZSgpCisgICAgICAgICAgICB0aHJvd3MgRXhjZXB0aW9uCisgICAgICAgIHsKKyAgICAgICAgICBGaWxlVXRpbHMuZmlsZUFwcGVuZCggYmxhY2tsaXN0RmlsZW5hbWUsICJcbmc6YToxLjA6d2FyIiApOworICAgICAgICAgIGFkZEV4Y2x1ZGVVcmxBbmRSdW5SdWxlKCBleGNsdWRlc1VybCApOworICAgICAgICB9CisKKyAgICAgICAgQFRlc3QoIGV4cGVjdGVkID0gRW5mb3JjZXJSdWxlRXhjZXB0aW9uLmNsYXNzICkKKyAgICAgICAgcHVibGljIHZvaWQgZ3JvdXBJZEFydGlmYWN0SWRWZXJzaW9uVHlwZVNjb3BlKCkKKyAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb24KKyAgICAgICAgeworICAgICAgICAgIEZpbGVVdGlscy5maWxlQXBwZW5kKCBibGFja2xpc3RGaWxlbmFtZSwgIlxuZzphOjEuMDp3YXI6Y29tcGlsZSIgKTsKKyAgICAgICAgICBhZGRFeGNsdWRlVXJsQW5kUnVuUnVsZSggZXhjbHVkZXNVcmwgKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQFRlc3QoIGV4cGVjdGVkID0gSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uLmNsYXNzICkKKyAgICAgICAgcHVibGljIHZvaWQgb25seVRocmVlQ29sb25zV2l0aG91dEFueXRoaW5nRWxzZSgpCisgICAgICAgICAgICB0aHJvd3MgRXhjZXB0aW9uCisgICAgICAgIHsKKyAgICAgICAgICBGaWxlVXRpbHMuZmlsZUFwcGVuZCggYmxhY2tsaXN0RmlsZW5hbWUsICJcbjo6OiIgKTsKKyAgICAgICAgICBhZGRFeGNsdWRlVXJsQW5kUnVuUnVsZSggZXhjbHVkZXNVcmwgKTsKKyAgICAgICAgfQorCisgICAgICAgIEBUZXN0KCBleHBlY3RlZCA9IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbi5jbGFzcyApCisgICAgICAgIHB1YmxpYyB2b2lkIG9ubHlTZXZlbkNvbG9uc1dpdGhvdXRBbnl0aGluZ0Vsc2UoKQorICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbgorICAgICAgICB7CisgICAgICAgICAgRmlsZVV0aWxzLmZpbGVBcHBlbmQoIGJsYWNrbGlzdEZpbGVuYW1lLCAiXG46Ojo6Ojo6IiApOworICAgICAgICAgIGFkZEV4Y2x1ZGVVcmxBbmRSdW5SdWxlKCBleGNsdWRlc1VybCApOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBAVGVzdCggZXhwZWN0ZWQgPSBFbmZvcmNlclJ1bGVFeGNlcHRpb24uY2xhc3MgKQorICAgICAgICBwdWJsaWMgdm9pZCBncm91cElkQXJ0aWZhY3RJZFdpdGhXaWxkY2FyZCgpCisgICAgICAgICAgICB0aHJvd3MgRXhjZXB0aW9uCisgICAgICAgIHsKKyAgICAgICAgICBGaWxlVXRpbHMuZmlsZUFwcGVuZCggYmxhY2tsaXN0RmlsZW5hbWUsICJcbnRlc3RHcm91cElkOnJlKiIgKTsKKyAgICAgICAgICBhZGRFeGNsdWRlVXJsQW5kUnVuUnVsZSggZXhjbHVkZXNVcmwgKTsKKyAgICAgICAgfQorCisgICAgICAgIEBUZXN0KCBleHBlY3RlZCA9IEVuZm9yY2VyUnVsZUV4Y2VwdGlvbi5jbGFzcyApCisgICAgICAgIHB1YmxpYyB2b2lkIGdyb3VwSWRBcnRpZmFjdElkVmVyc2lvblR5cGVXaWxkY2FyZFNjb3BlKCkKKyAgICAgICAgICAgIHRocm93cyBFeGNlcHRpb24KKyAgICAgICAgeworICAgICAgICAgIEZpbGVVdGlscy5maWxlQXBwZW5kKCBibGFja2xpc3RGaWxlbmFtZSwgIlxuZzphOjEuMDp3YXI6Y28qIiApOworICAgICAgICAgIGFkZEV4Y2x1ZGVVcmxBbmRSdW5SdWxlKCBleGNsdWRlc1VybCApOworICAgICAgICB9CisKKyAgICAgICAgQFRlc3QoIGV4cGVjdGVkID0gRW5mb3JjZXJSdWxlRXhjZXB0aW9uLmNsYXNzICkKKyAgICAgICAgcHVibGljIHZvaWQgZ3JvdXBJZEFydGlmYWN0SWRWZXJzaW9uV2lsZGNhcmRUeXBlU2NvcGUoKQorICAgICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbgorICAgICAgICB7CisgICAgICAgICAgRmlsZVV0aWxzLmZpbGVBcHBlbmQoIGJsYWNrbGlzdEZpbGVuYW1lLCAiXG5nOmE6MS4wOncqOmNvbXBpbGUiICk7CisgICAgICAgICAgYWRkRXhjbHVkZVVybEFuZFJ1blJ1bGUoIGV4Y2x1ZGVzVXJsICk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIEBBZnRlcgorICAgICAgICBwdWJsaWMgdm9pZCBzaHV0RG93bkVtYmVkZGVkSmV0dHlTZXJ2ZXIoKSB0aHJvd3MgRXhjZXB0aW9ueworICAgICAgICAgIGlmIChzZXJ2ZXIgIT0gbnVsbCkKKyAgICAgICAgICB7CisgICAgICAgICAgICBzZXJ2ZXIuc3RvcCgpOworICAgICAgICAgIH0KKyAgICAgICAgICBGaWxlVXRpbHMuZmlsZURlbGV0ZShibGFja2xpc3RGaWxlbmFtZSk7CisgICAgICAgIH0KIAogICAgIH0KIApkaWZmIC0tZ2l0IGEvZW5mb3JjZXItcnVsZXMvc3JjL3Rlc3QvcmVzb3VyY2VzL3Rlc3RCYW5uZWREZXBlbmRlbmNpZXMvYmxhY2tsaXN0LnR4dCBiL2VuZm9yY2VyLXJ1bGVzL3NyYy90ZXN0L3Jlc291cmNlcy90ZXN0QmFubmVkRGVwZW5kZW5jaWVzL2JsYWNrbGlzdC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQpkaWZmIC0tZ2l0IGEvbWF2ZW4tZW5mb3JjZXItcGx1Z2luL3BvbS54bWwgYi9tYXZlbi1lbmZvcmNlci1wbHVnaW4vcG9tLnhtbAppbmRleCAxMDc0ODk2Li41NDQxNjU5IDEwMDY0NAotLS0gYS9tYXZlbi1lbmZvcmNlci1wbHVnaW4vcG9tLnhtbAorKysgYi9tYXZlbi1lbmZvcmNlci1wbHVnaW4vcG9tLnhtbApAQCAtMjQsNyArMjQsNyBAQAogICA8cGFyZW50PgogICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4uZW5mb3JjZXI8L2dyb3VwSWQ+CiAgICAgPGFydGlmYWN0SWQ+ZW5mb3JjZXI8L2FydGlmYWN0SWQ+Ci0gICAgPHZlcnNpb24+MS40LjItU05BUFNIT1Q8L3ZlcnNpb24+CisgICAgPHZlcnNpb24+MS4wLjAtU05BUFNIT1Qtd2FsbWFydC0wMTwvdmVyc2lvbj4KICAgPC9wYXJlbnQ+CiAKICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgpkaWZmIC0tZ2l0IGEvcG9tLnhtbCBiL3BvbS54bWwKaW5kZXggOTE2MjhhMC4uZDcyNzQyMCAxMDA2NDQKLS0tIGEvcG9tLnhtbAorKysgYi9wb20ueG1sCkBAIC0yOCw3ICsyOCw3IEBACiAgIDwvcGFyZW50PgogICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLmVuZm9yY2VyPC9ncm91cElkPgogICA8YXJ0aWZhY3RJZD5lbmZvcmNlcjwvYXJ0aWZhY3RJZD4KLSAgPHZlcnNpb24+MS40LjItU05BUFNIT1Q8L3ZlcnNpb24+CisgIDx2ZXJzaW9uPjEuMC4wLVNOQVBTSE9ULXdhbG1hcnQtMDE8L3ZlcnNpb24+CiAgIDxwYWNrYWdpbmc+cG9tPC9wYWNrYWdpbmc+CiAKICAgPG5hbWU+QXBhY2hlIE1hdmVuIEVuZm9yY2VyPC9uYW1lPgoKCiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVGhpcyBpcyBhbiBhdXRvbWF0ZWQgbWVzc2FnZSBmcm9tIHRoZSBBcGFjaGUgR2l0IFNlcnZpY2UuClRvIHJlc3BvbmQgdG8gdGhlIG1lc3NhZ2UsIHBsZWFzZSBsb2cgb24gR2l0SHViIGFuZCB1c2UgdGhlClVSTCBhYm92ZSB0byBnbyB0byB0aGUgc3BlY2lmaWMgY29tbWVudC4KIApGb3IgcXVlcmllcyBhYm91dCB0aGlzIHNlcnZpY2UsIHBsZWFzZSBjb250YWN0IEluZnJhc3RydWN0dXJlIGF0Ogp1c2Vyc0BpbmZyYS5hcGFjaGUub3JnCgoKV2l0aCByZWdhcmRzLApBcGFjaGUgR2l0IFNlcnZpY2VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzMzUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE9jdCAyNiAwNzo0MDoxMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzMzUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRjA5MDgxN0UyNgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDI2IE9jdCAyMDE3IDA3OjQwOjEwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTY2NDUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjYgT2N0IDIwMTcgMDc6NDA6MDcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE2MjcyIGludm9rZWQgYnkgdWlkIDUwMCk7IDI2IE9jdCAyMDE3IDA3OjQwOjA3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTU3MzkgaW52b2tlZCBieSB1aWQgOTkpOyAyNiBPY3QgMjAxNyAwNzo0MDowNyAtMDAwMApSZWNlaXZlZDogZnJvbSBlYzItNTItMjAyLTgwLTcwLmNvbXB1dGUtMS5hbWF6b25hd3MuY29tIChIRUxPIGdpdGJveC5hcGFjaGUub3JnKSAoNTIuMjAyLjgwLjcwKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDI2IE9jdCAyMDE3IDA3OjQwOjA3ICswMDAwCkZyb206IEdpdEJveCA8Z2l0QGFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBbR2l0SHViXSBhc2ZnaXQgY2xvc2VkIHB1bGwgcmVxdWVzdCAjMjA6IE1FTkZPUkNFUi0xOTUgLSB1c2UgRGVwZW5kZW5jeUdyYXBoQnVpbGRlciBBUEkgaW5zdGVhZCBvZiBEZXBlbmRlbmN5VHJlZUJ1aWxkZXIKTWVzc2FnZS1JRDogPDE1MDkwMDM2MDY0Ni4xNjI4LjExNzQ5Mzc3ODcyNTMxMTU4MTEuZ2l0Ym94QGdpdGJveC5hcGFjaGUub3JnPgoKYXNmZ2l0IGNsb3NlZCBwdWxsIHJlcXVlc3QgIzIwOiBNRU5GT1JDRVItMTk1IC0gdXNlIERlcGVuZGVuY3lHcmFwaEJ1aWxkZXIgQVBJIGluc3RlYWQgb2YgRGVwZW5kZW5jeVRyZWVCdWlsZGVyClVSTDogaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1lbmZvcmNlci9wdWxsLzIwCiAKIAogICAKClRoaXMgaXMgYSBQUiBtZXJnZWQgZnJvbSBhIGZvcmtlZCByZXBvc2l0b3J5LgpBcyBHaXRIdWIgaGlkZXMgdGhlIG9yaWdpbmFsIGRpZmYgb24gbWVyZ2UsIGl0IGlzIGRpc3BsYXllZCBiZWxvdyBmb3IKdGhlIHNha2Ugb2YgcHJvdmVuYW5jZToKCkFzIHRoaXMgaXMgYSBmb3JlaWduIHB1bGwgcmVxdWVzdCAoZnJvbSBhIGZvcmspLCB0aGUgZGlmZiBpcyBzdXBwbGllZApiZWxvdyAoYXMgaXQgd29uJ3Qgc2hvdyBvdGhlcndpc2UgZHVlIHRvIEdpdEh1YiBtYWdpYyk6CgpkaWZmIC0tZ2l0IGEvZW5mb3JjZXItcnVsZXMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvRGVwZW5kZW5jeUNvbnZlcmdlbmNlLmphdmEgYi9lbmZvcmNlci1ydWxlcy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9lbmZvcmNlci9EZXBlbmRlbmN5Q29udmVyZ2VuY2UuamF2YQppbmRleCA3YzIxYmQ2Li43NWQ5ODQyIDEwMDY0NAotLS0gYS9lbmZvcmNlci1ydWxlcy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9lbmZvcmNlci9EZXBlbmRlbmN5Q29udmVyZ2VuY2UuamF2YQorKysgYi9lbmZvcmNlci1ydWxlcy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9lbmZvcmNlci9EZXBlbmRlbmN5Q29udmVyZ2VuY2UuamF2YQpAQCAtMjQsMTAgKzI0LDYgQEAKIGltcG9ydCBqYXZhLnV0aWwuTGlzdDsKIAogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QuQXJ0aWZhY3Q7Ci1pbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5mYWN0b3J5LkFydGlmYWN0RmFjdG9yeTsKLWltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0Lm1ldGFkYXRhLkFydGlmYWN0TWV0YWRhdGFTb3VyY2U7Ci1pbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5yZXBvc2l0b3J5LkFydGlmYWN0UmVwb3NpdG9yeTsKLWltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0LnJlc29sdmVyLkFydGlmYWN0Q29sbGVjdG9yOwogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QucmVzb2x2ZXIuZmlsdGVyLkFydGlmYWN0RmlsdGVyOwogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uZW5mb3JjZXIucnVsZS5hcGkuRW5mb3JjZXJSdWxlOwogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uZW5mb3JjZXIucnVsZS5hcGkuRW5mb3JjZXJSdWxlRXhjZXB0aW9uOwpAQCAtMzUsOSArMzEsOSBAQAogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLmxvZ2dpbmcuTG9nOwogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy5lbmZvcmNlci51dGlscy5EZXBlbmRlbmN5VmVyc2lvbk1hcDsKIGltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnByb2plY3QuTWF2ZW5Qcm9qZWN0OwotaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uc2hhcmVkLmRlcGVuZGVuY3kudHJlZS5EZXBlbmRlbmN5Tm9kZTsKLWltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnNoYXJlZC5kZXBlbmRlbmN5LnRyZWUuRGVwZW5kZW5jeVRyZWVCdWlsZGVyOwotaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uc2hhcmVkLmRlcGVuZGVuY3kudHJlZS5EZXBlbmRlbmN5VHJlZUJ1aWxkZXJFeGNlcHRpb247CitpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5zaGFyZWQuZGVwZW5kZW5jeS5ncmFwaC5EZXBlbmRlbmN5R3JhcGhCdWlsZGVyOworaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uc2hhcmVkLmRlcGVuZGVuY3kuZ3JhcGguRGVwZW5kZW5jeUdyYXBoQnVpbGRlckV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnNoYXJlZC5kZXBlbmRlbmN5LmdyYXBoLkRlcGVuZGVuY3lOb2RlOwogaW1wb3J0IG9yZy5jb2RlaGF1cy5wbGV4dXMuY29tcG9uZW50LmNvbmZpZ3VyYXRvci5leHByZXNzaW9uLkV4cHJlc3Npb25FdmFsdWF0aW9uRXhjZXB0aW9uOwogaW1wb3J0IG9yZy5jb2RlaGF1cy5wbGV4dXMuY29tcG9uZW50LnJlcG9zaXRvcnkuZXhjZXB0aW9uLkNvbXBvbmVudExvb2t1cEV4Y2VwdGlvbjsKIGltcG9ydCBvcmcuY29kZWhhdXMucGxleHVzLmkxOG4uSTE4TjsKQEAgLTYzLDcgKzU5LDcgQEAgcHVibGljIHZvaWQgc2V0VW5pcXVlVmVyc2lvbnMoIGJvb2xlYW4gdW5pcXVlVmVyc2lvbnMgKQogICAgIC8vIENIRUNLU1RZTEVfT0ZGOiBMaW5lTGVuZ3RoCiAgICAgLyoqCiAgICAgICogVXNlcyB0aGUge0BsaW5rIEVuZm9yY2VyUnVsZUhlbHBlcn0gdG8gcG9wdWxhdGUgdGhlIHZhbHVlcyBvZiB0aGUKLSAgICAgKiB7QGxpbmsgRGVwZW5kZW5jeVRyZWVCdWlsZGVyI2J1aWxkRGVwZW5kZW5jeVRyZWUoTWF2ZW5Qcm9qZWN0LCBBcnRpZmFjdFJlcG9zaXRvcnksIEFydGlmYWN0RmFjdG9yeSwgQXJ0aWZhY3RNZXRhZGF0YVNvdXJjZSwgQXJ0aWZhY3RGaWx0ZXIsIEFydGlmYWN0Q29sbGVjdG9yKX0KKyAgICAgKiB7QGxpbmsgRGVwZW5kZW5jeUdyYXBoQnVpbGRlciNidWlsZERlcGVuZGVuY3lHcmFwaChNYXZlblByb2plY3QsIEFydGlmYWN0RmlsdGVyKX0KICAgICAgKiBmYWN0b3J5IG1ldGhvZC4gPGJyLz4KICAgICAgKiBUaGlzIG1ldGhvZCBzaW1wbHkgZXhpc3RzIHRvIGhpZGUgYWxsIHRoZSB1Z2x5IGxvb2t1cCB0aGF0IHRoZSB7QGxpbmsgRW5mb3JjZXJSdWxlSGVscGVyfSBoYXMgdG8gZG8uCiAgICAgICogCkBAIC03OCwxNyArNzQsMTEgQEAgcHJpdmF0ZSBEZXBlbmRlbmN5Tm9kZSBnZXROb2RlKCBFbmZvcmNlclJ1bGVIZWxwZXIgaGVscGVyICkKICAgICAgICAgdHJ5CiAgICAgICAgIHsKICAgICAgICAgICAgIE1hdmVuUHJvamVjdCBwcm9qZWN0ID0gKE1hdmVuUHJvamVjdCkgaGVscGVyLmV2YWx1YXRlKCAiJHtwcm9qZWN0fSIgKTsKLSAgICAgICAgICAgIERlcGVuZGVuY3lUcmVlQnVpbGRlciBkZXBlbmRlbmN5VHJlZUJ1aWxkZXIgPQotICAgICAgICAgICAgICAgIChEZXBlbmRlbmN5VHJlZUJ1aWxkZXIpIGhlbHBlci5nZXRDb21wb25lbnQoIERlcGVuZGVuY3lUcmVlQnVpbGRlci5jbGFzcyApOwotICAgICAgICAgICAgQXJ0aWZhY3RSZXBvc2l0b3J5IHJlcG9zaXRvcnkgPSAoQXJ0aWZhY3RSZXBvc2l0b3J5KSBoZWxwZXIuZXZhbHVhdGUoICIke2xvY2FsUmVwb3NpdG9yeX0iICk7Ci0gICAgICAgICAgICBBcnRpZmFjdEZhY3RvcnkgZmFjdG9yeSA9IChBcnRpZmFjdEZhY3RvcnkpIGhlbHBlci5nZXRDb21wb25lbnQoIEFydGlmYWN0RmFjdG9yeS5jbGFzcyApOwotICAgICAgICAgICAgQXJ0aWZhY3RNZXRhZGF0YVNvdXJjZSBtZXRhZGF0YVNvdXJjZSA9Ci0gICAgICAgICAgICAgICAgKEFydGlmYWN0TWV0YWRhdGFTb3VyY2UpIGhlbHBlci5nZXRDb21wb25lbnQoIEFydGlmYWN0TWV0YWRhdGFTb3VyY2UuY2xhc3MgKTsKLSAgICAgICAgICAgIEFydGlmYWN0Q29sbGVjdG9yIGNvbGxlY3RvciA9IChBcnRpZmFjdENvbGxlY3RvcikgaGVscGVyLmdldENvbXBvbmVudCggQXJ0aWZhY3RDb2xsZWN0b3IuY2xhc3MgKTsKKyAgICAgICAgICAgIERlcGVuZGVuY3lHcmFwaEJ1aWxkZXIgZGVwZW5kZW5jeUdyYXBoQnVpbGRlciA9CisgICAgICAgICAgICAgICAgKERlcGVuZGVuY3lHcmFwaEJ1aWxkZXIpIGhlbHBlci5nZXRDb21wb25lbnQoIERlcGVuZGVuY3lHcmFwaEJ1aWxkZXIuY2xhc3MgKTsKICAgICAgICAgICAgIEFydGlmYWN0RmlsdGVyIGZpbHRlciA9IG51bGw7IC8vIHdlIG5lZWQgdG8gZXZhbHVhdGUgYWxsIHNjb3BlcwotICAgICAgICAgICAgRGVwZW5kZW5jeU5vZGUgbm9kZSA9IGRlcGVuZGVuY3lUcmVlQnVpbGRlci5idWlsZERlcGVuZGVuY3lUcmVlKCBwcm9qZWN0LCByZXBvc2l0b3J5LCBmYWN0b3J5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YVNvdXJjZSwgZmlsdGVyLCBjb2xsZWN0b3IgKTsKLSAgICAgICAgICAgIHJldHVybiBub2RlOworCisgICAgICAgICAgICByZXR1cm4gZGVwZW5kZW5jeUdyYXBoQnVpbGRlci5idWlsZERlcGVuZGVuY3lHcmFwaCggcHJvamVjdCwgZmlsdGVyICk7CiAgICAgICAgIH0KICAgICAgICAgY2F0Y2ggKCBFeHByZXNzaW9uRXZhbHVhdGlvbkV4Y2VwdGlvbiBlICkKICAgICAgICAgewpAQCAtOTgsNyArODgsNyBAQCBwcml2YXRlIERlcGVuZGVuY3lOb2RlIGdldE5vZGUoIEVuZm9yY2VyUnVsZUhlbHBlciBoZWxwZXIgKQogICAgICAgICB7CiAgICAgICAgICAgICB0aHJvdyBuZXcgRW5mb3JjZXJSdWxlRXhjZXB0aW9uKCAiVW5hYmxlIHRvIGxvb2t1cCBhIGNvbXBvbmVudCAiICsgZS5nZXRMb2NhbGl6ZWRNZXNzYWdlKCksIGUgKTsKICAgICAgICAgfQotICAgICAgICBjYXRjaCAoIERlcGVuZGVuY3lUcmVlQnVpbGRlckV4Y2VwdGlvbiBlICkKKyAgICAgICAgY2F0Y2ggKCBEZXBlbmRlbmN5R3JhcGhCdWlsZGVyRXhjZXB0aW9uIGUgKQogICAgICAgICB7CiAgICAgICAgICAgICB0aHJvdyBuZXcgRW5mb3JjZXJSdWxlRXhjZXB0aW9uKCAiQ291bGQgbm90IGJ1aWxkIGRlcGVuZGVuY3kgdHJlZSAiICsgZS5nZXRMb2NhbGl6ZWRNZXNzYWdlKCksIGUgKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvZW5mb3JjZXItcnVsZXMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvUmVxdWlyZVVwcGVyQm91bmREZXBzLmphdmEgYi9lbmZvcmNlci1ydWxlcy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9lbmZvcmNlci9SZXF1aXJlVXBwZXJCb3VuZERlcHMuamF2YQppbmRleCA3MTIxMGUyLi40MjZjMzJkIDEwMDY0NAotLS0gYS9lbmZvcmNlci1ydWxlcy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9lbmZvcmNlci9SZXF1aXJlVXBwZXJCb3VuZERlcHMuamF2YQorKysgYi9lbmZvcmNlci1ydWxlcy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9lbmZvcmNlci9SZXF1aXJlVXBwZXJCb3VuZERlcHMuamF2YQpAQCAtMjYsMTAgKzI2LDYgQEAKIGltcG9ydCBqYXZhLnV0aWwuTWFwOwogCiBpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5BcnRpZmFjdDsKLWltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0LmZhY3RvcnkuQXJ0aWZhY3RGYWN0b3J5OwotaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QubWV0YWRhdGEuQXJ0aWZhY3RNZXRhZGF0YVNvdXJjZTsKLWltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0LnJlcG9zaXRvcnkuQXJ0aWZhY3RSZXBvc2l0b3J5OwotaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QucmVzb2x2ZXIuQXJ0aWZhY3RDb2xsZWN0b3I7CiBpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5yZXNvbHZlci5maWx0ZXIuQXJ0aWZhY3RGaWx0ZXI7CiBpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC52ZXJzaW9uaW5nLkFydGlmYWN0VmVyc2lvbjsKIGltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0LnZlcnNpb25pbmcuRGVmYXVsdEFydGlmYWN0VmVyc2lvbjsKQEAgLTM4LDEwICszNCwxMCBAQAogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uZW5mb3JjZXIucnVsZS5hcGkuRW5mb3JjZXJSdWxlSGVscGVyOwogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLmxvZ2dpbmcuTG9nOwogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4ucHJvamVjdC5NYXZlblByb2plY3Q7Ci1pbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5zaGFyZWQuZGVwZW5kZW5jeS50cmVlLkRlcGVuZGVuY3lOb2RlOwotaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uc2hhcmVkLmRlcGVuZGVuY3kudHJlZS5EZXBlbmRlbmN5VHJlZUJ1aWxkZXI7Ci1pbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5zaGFyZWQuZGVwZW5kZW5jeS50cmVlLkRlcGVuZGVuY3lUcmVlQnVpbGRlckV4Y2VwdGlvbjsKLWltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnNoYXJlZC5kZXBlbmRlbmN5LnRyZWUudHJhdmVyc2FsLkRlcGVuZGVuY3lOb2RlVmlzaXRvcjsKK2ltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnNoYXJlZC5kZXBlbmRlbmN5LmdyYXBoLkRlcGVuZGVuY3lHcmFwaEJ1aWxkZXI7CitpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5zaGFyZWQuZGVwZW5kZW5jeS5ncmFwaC5EZXBlbmRlbmN5R3JhcGhCdWlsZGVyRXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uc2hhcmVkLmRlcGVuZGVuY3kuZ3JhcGguRGVwZW5kZW5jeU5vZGU7CitpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5zaGFyZWQuZGVwZW5kZW5jeS5ncmFwaC50cmF2ZXJzYWwuRGVwZW5kZW5jeU5vZGVWaXNpdG9yOwogaW1wb3J0IG9yZy5jb2RlaGF1cy5wbGV4dXMuY29tcG9uZW50LmNvbmZpZ3VyYXRvci5leHByZXNzaW9uLkV4cHJlc3Npb25FdmFsdWF0aW9uRXhjZXB0aW9uOwogaW1wb3J0IG9yZy5jb2RlaGF1cy5wbGV4dXMuY29tcG9uZW50LnJlcG9zaXRvcnkuZXhjZXB0aW9uLkNvbXBvbmVudExvb2t1cEV4Y2VwdGlvbjsKIGltcG9ydCBvcmcuY29kZWhhdXMucGxleHVzLmkxOG4uSTE4TjsKQEAgLTc4LDcgKzc0LDcgQEAgcHVibGljIHZvaWQgc2V0VW5pcXVlVmVyc2lvbnMoIGJvb2xlYW4gdW5pcXVlVmVyc2lvbnMgKQogICAgIC8vIENIRUNLU1RZTEVfT0ZGOiBMaW5lTGVuZ3RoCiAgICAgLyoqCiAgICAgICogVXNlcyB0aGUge0BsaW5rIEVuZm9yY2VyUnVsZUhlbHBlcn0gdG8gcG9wdWxhdGUgdGhlIHZhbHVlcyBvZiB0aGUKLSAgICAgKiB7QGxpbmsgRGVwZW5kZW5jeVRyZWVCdWlsZGVyI2J1aWxkRGVwZW5kZW5jeVRyZWUoTWF2ZW5Qcm9qZWN0LCBBcnRpZmFjdFJlcG9zaXRvcnksIEFydGlmYWN0RmFjdG9yeSwgQXJ0aWZhY3RNZXRhZGF0YVNvdXJjZSwgQXJ0aWZhY3RGaWx0ZXIsIEFydGlmYWN0Q29sbGVjdG9yKX0KKyAgICAgKiB7QGxpbmsgRGVwZW5kZW5jeUdyYXBoQnVpbGRlciNidWlsZERlcGVuZGVuY3lHcmFwaChNYXZlblByb2plY3QsIEFydGlmYWN0RmlsdGVyKX0KICAgICAgKiBmYWN0b3J5IG1ldGhvZC4gPGJyLz4KICAgICAgKiBUaGlzIG1ldGhvZCBzaW1wbHkgZXhpc3RzIHRvIGhpZGUgYWxsIHRoZSB1Z2x5IGxvb2t1cCB0aGF0IHRoZSB7QGxpbmsgRW5mb3JjZXJSdWxlSGVscGVyfSBoYXMgdG8gZG8uCiAgICAgICogCkBAIC04NywyNCArODMsMTcgQEAgcHVibGljIHZvaWQgc2V0VW5pcXVlVmVyc2lvbnMoIGJvb2xlYW4gdW5pcXVlVmVyc2lvbnMgKQogICAgICAqIEB0aHJvd3MgRW5mb3JjZXJSdWxlRXhjZXB0aW9uIHdoZW4gdGhlIGJ1aWxkIHNob3VsZCBmYWlsCiAgICAgICovCiAgICAgLy8gQ0hFQ0tTVFlMRV9PTjogTGluZUxlbmd0aAotICAgIHByaXZhdGUgRGVwZW5kZW5jeU5vZGUgZ2V0Tm9kZSggRW5mb3JjZXJSdWxlSGVscGVyIGhlbHBlciApCisgICAgcHJpdmF0ZSBEZXBlbmRlbmN5Tm9kZSBnZXROb2RlKEVuZm9yY2VyUnVsZUhlbHBlciBoZWxwZXIgKQogICAgICAgICB0aHJvd3MgRW5mb3JjZXJSdWxlRXhjZXB0aW9uCiAgICAgewogICAgICAgICB0cnkKICAgICAgICAgewotICAgICAgICAgICAgTWF2ZW5Qcm9qZWN0IHByb2plY3QgPSAoTWF2ZW5Qcm9qZWN0KSBoZWxwZXIuZXZhbHVhdGUoICIke3Byb2plY3R9IiApOwotICAgICAgICAgICAgRGVwZW5kZW5jeVRyZWVCdWlsZGVyIGRlcGVuZGVuY3lUcmVlQnVpbGRlciA9Ci0gICAgICAgICAgICAgICAgKERlcGVuZGVuY3lUcmVlQnVpbGRlcikgaGVscGVyLmdldENvbXBvbmVudCggRGVwZW5kZW5jeVRyZWVCdWlsZGVyLmNsYXNzICk7Ci0gICAgICAgICAgICBBcnRpZmFjdFJlcG9zaXRvcnkgcmVwb3NpdG9yeSA9IChBcnRpZmFjdFJlcG9zaXRvcnkpIGhlbHBlci5ldmFsdWF0ZSggIiR7bG9jYWxSZXBvc2l0b3J5fSIgKTsKLSAgICAgICAgICAgIEFydGlmYWN0RmFjdG9yeSBmYWN0b3J5ID0gKEFydGlmYWN0RmFjdG9yeSkgaGVscGVyLmdldENvbXBvbmVudCggQXJ0aWZhY3RGYWN0b3J5LmNsYXNzICk7Ci0gICAgICAgICAgICBBcnRpZmFjdE1ldGFkYXRhU291cmNlIG1ldGFkYXRhU291cmNlID0KLSAgICAgICAgICAgICAgICAoQXJ0aWZhY3RNZXRhZGF0YVNvdXJjZSkgaGVscGVyLmdldENvbXBvbmVudCggQXJ0aWZhY3RNZXRhZGF0YVNvdXJjZS5jbGFzcyApOwotICAgICAgICAgICAgQXJ0aWZhY3RDb2xsZWN0b3IgY29sbGVjdG9yID0gKEFydGlmYWN0Q29sbGVjdG9yKSBoZWxwZXIuZ2V0Q29tcG9uZW50KCBBcnRpZmFjdENvbGxlY3Rvci5jbGFzcyApOworICAgICAgICAgICAgTWF2ZW5Qcm9qZWN0IHByb2plY3QgPSAoTWF2ZW5Qcm9qZWN0KSBoZWxwZXIuZXZhbHVhdGUoIiR7cHJvamVjdH0iKTsKKyAgICAgICAgICAgIERlcGVuZGVuY3lHcmFwaEJ1aWxkZXIgZGVwZW5kZW5jeUdyYXBoQnVpbGRlciA9CisgICAgICAgICAgICAgICAgICAgIChEZXBlbmRlbmN5R3JhcGhCdWlsZGVyKSBoZWxwZXIuZ2V0Q29tcG9uZW50KERlcGVuZGVuY3lHcmFwaEJ1aWxkZXIuY2xhc3MpOwogICAgICAgICAgICAgQXJ0aWZhY3RGaWx0ZXIgZmlsdGVyID0gbnVsbDsgLy8gd2UgbmVlZCB0byBldmFsdWF0ZSBhbGwgc2NvcGVzCi0gICAgICAgICAgICBEZXBlbmRlbmN5Tm9kZSBub2RlID0KLSAgICAgICAgICAgICAgICBkZXBlbmRlbmN5VHJlZUJ1aWxkZXIuYnVpbGREZXBlbmRlbmN5VHJlZSggcHJvamVjdCwgcmVwb3NpdG9yeSwgZmFjdG9yeSwgbWV0YWRhdGFTb3VyY2UsIGZpbHRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sbGVjdG9yICk7Ci0gICAgICAgICAgICByZXR1cm4gbm9kZTsKKworICAgICAgICAgICAgcmV0dXJuIGRlcGVuZGVuY3lHcmFwaEJ1aWxkZXIuYnVpbGREZXBlbmRlbmN5R3JhcGgocHJvamVjdCwgZmlsdGVyKTsKICAgICAgICAgfQogICAgICAgICBjYXRjaCAoIEV4cHJlc3Npb25FdmFsdWF0aW9uRXhjZXB0aW9uIGUgKQogICAgICAgICB7CkBAIC0xMTQsNyArMTAzLDcgQEAgcHJpdmF0ZSBEZXBlbmRlbmN5Tm9kZSBnZXROb2RlKCBFbmZvcmNlclJ1bGVIZWxwZXIgaGVscGVyICkKICAgICAgICAgewogICAgICAgICAgICAgdGhyb3cgbmV3IEVuZm9yY2VyUnVsZUV4Y2VwdGlvbiggIlVuYWJsZSB0byBsb29rdXAgYSBjb21wb25lbnQgIiArIGUuZ2V0TG9jYWxpemVkTWVzc2FnZSgpLCBlICk7CiAgICAgICAgIH0KLSAgICAgICAgY2F0Y2ggKCBEZXBlbmRlbmN5VHJlZUJ1aWxkZXJFeGNlcHRpb24gZSApCisgICAgICAgIGNhdGNoICggRGVwZW5kZW5jeUdyYXBoQnVpbGRlckV4Y2VwdGlvbiBlICkKICAgICAgICAgewogICAgICAgICAgICAgdGhyb3cgbmV3IEVuZm9yY2VyUnVsZUV4Y2VwdGlvbiggIkNvdWxkIG5vdCBidWlsZCBkZXBlbmRlbmN5IHRyZWUgIiArIGUuZ2V0TG9jYWxpemVkTWVzc2FnZSgpLCBlICk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL2VuZm9yY2VyLXJ1bGVzL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL2VuZm9yY2VyL3V0aWxzL0RlcGVuZGVuY3lWZXJzaW9uTWFwLmphdmEgYi9lbmZvcmNlci1ydWxlcy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9lbmZvcmNlci91dGlscy9EZXBlbmRlbmN5VmVyc2lvbk1hcC5qYXZhCmluZGV4IDJlYzRhYzIuLmVjZTc3MmIgMTAwNjQ0Ci0tLSBhL2VuZm9yY2VyLXJ1bGVzL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL2VuZm9yY2VyL3V0aWxzL0RlcGVuZGVuY3lWZXJzaW9uTWFwLmphdmEKKysrIGIvZW5mb3JjZXItcnVsZXMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvdXRpbHMvRGVwZW5kZW5jeVZlcnNpb25NYXAuamF2YQpAQCAtMjYsOCArMjYsOCBAQAogCiBpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5BcnRpZmFjdDsKIGltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbi5sb2dnaW5nLkxvZzsKLWltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnNoYXJlZC5kZXBlbmRlbmN5LnRyZWUuRGVwZW5kZW5jeU5vZGU7Ci1pbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5zaGFyZWQuZGVwZW5kZW5jeS50cmVlLnRyYXZlcnNhbC5EZXBlbmRlbmN5Tm9kZVZpc2l0b3I7CitpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5zaGFyZWQuZGVwZW5kZW5jeS5ncmFwaC5EZXBlbmRlbmN5Tm9kZTsKK2ltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnNoYXJlZC5kZXBlbmRlbmN5LmdyYXBoLnRyYXZlcnNhbC5EZXBlbmRlbmN5Tm9kZVZpc2l0b3I7CiAKIC8qKgogICogQGF1dGhvciBCcmlhbiBGb3gKCgogCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgaXMgYW4gYXV0b21hdGVkIG1lc3NhZ2UgZnJvbSB0aGUgQXBhY2hlIEdpdCBTZXJ2aWNlLgpUbyByZXNwb25kIHRvIHRoZSBtZXNzYWdlLCBwbGVhc2UgbG9nIG9uIEdpdEh1YiBhbmQgdXNlIHRoZQpVUkwgYWJvdmUgdG8gZ28gdG8gdGhlIHNwZWNpZmljIGNvbW1lbnQuCiAKRm9yIHF1ZXJpZXMgYWJvdXQgdGhpcyBzZXJ2aWNlLCBwbGVhc2UgY29udGFjdCBJbmZyYXN0cnVjdHVyZSBhdDoKdXNlcnNAaW5mcmEuYXBhY2hlLm9yZwoKCldpdGggcmVnYXJkcywKQXBhY2hlIEdpdCBTZXJ2aWNlcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MzM2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBPY3QgMjYgMDc6NDA6MTEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzM2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDFDRTg5MTdFMzQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAyNiBPY3QgMjAxNyAwNzo0MDoxMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE4MjM3IGludm9rZWQgYnkgdWlkIDUwMCk7IDI2IE9jdCAyMDE3IDA3OjQwOjA4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNjU3MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBPY3QgMjAxNyAwNzo0MDowNyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE1OTUyIGludm9rZWQgYnkgdWlkIDk5KTsgMjYgT2N0IDIwMTcgMDc6NDA6MDcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZWMyLTUyLTIwMi04MC03MC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSAoSEVMTyBnaXRib3guYXBhY2hlLm9yZykgKDUyLjIwMi44MC43MCkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyNiBPY3QgMjAxNyAwNzo0MDowNyArMDAwMApGcm9tOiBHaXRCb3ggPGdpdEBhcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0dpdEh1Yl0gYXNmZ2l0IGNsb3NlZCBwdWxsIHJlcXVlc3QgIzIxOiBBZGQgcnVsZTogYmFuUHJvZmlsZXMKTWVzc2FnZS1JRDogPDE1MDkwMDM2MDY1Mi4xNjI5LjU1MjY1MDM2MTczNjI0Mjc3NjQuZ2l0Ym94QGdpdGJveC5hcGFjaGUub3JnPgoKYXNmZ2l0IGNsb3NlZCBwdWxsIHJlcXVlc3QgIzIxOiBBZGQgcnVsZTogYmFuUHJvZmlsZXMKVVJMOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWVuZm9yY2VyL3B1bGwvMjEKIAogCiAgIAoKVGhpcyBpcyBhIFBSIG1lcmdlZCBmcm9tIGEgZm9ya2VkIHJlcG9zaXRvcnkuCkFzIEdpdEh1YiBoaWRlcyB0aGUgb3JpZ2luYWwgZGlmZiBvbiBtZXJnZSwgaXQgaXMgZGlzcGxheWVkIGJlbG93IGZvcgp0aGUgc2FrZSBvZiBwcm92ZW5hbmNlOgoKQXMgdGhpcyBpcyBhIGZvcmVpZ24gcHVsbCByZXF1ZXN0IChmcm9tIGEgZm9yayksIHRoZSBkaWZmIGlzIHN1cHBsaWVkCmJlbG93IChhcyBpdCB3b24ndCBzaG93IG90aGVyd2lzZSBkdWUgdG8gR2l0SHViIG1hZ2ljKToKCmRpZmYgLS1naXQgYS9lbmZvcmNlci1ydWxlcy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9lbmZvcmNlci9CYW5Qcm9maWxlcy5qYXZhIGIvZW5mb3JjZXItcnVsZXMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvQmFuUHJvZmlsZXMuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYzZkNjdhCi0tLSAvZGV2L251bGwKKysrIGIvZW5mb3JjZXItcnVsZXMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvQmFuUHJvZmlsZXMuamF2YQpAQCAtMCwwICsxLDEyOCBAQAorcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMuZW5mb3JjZXI7CisKKy8qCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisgKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisgKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisgKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworICogdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uZW5mb3JjZXIucnVsZS5hcGkuRW5mb3JjZXJSdWxlRXhjZXB0aW9uOworaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uZW5mb3JjZXIucnVsZS5hcGkuRW5mb3JjZXJSdWxlSGVscGVyOworaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4ubW9kZWwuUHJvZmlsZTsKK2ltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnByb2plY3QuTWF2ZW5Qcm9qZWN0OworaW1wb3J0IG9yZy5jb2RlaGF1cy5wbGV4dXMuY29tcG9uZW50LmNvbmZpZ3VyYXRvci5leHByZXNzaW9uLkV4cHJlc3Npb25FdmFsdWF0aW9uRXhjZXB0aW9uOworaW1wb3J0IG9yZy5jb2RlaGF1cy5wbGV4dXMudXRpbC5TdHJpbmdVdGlsczsKKworaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CisKKy8qKgorICogVGhpcyBydWxlIGNoZWNrcyB0aGF0IG9uZSBvciBtb3JlIHByb2ZpbGVzIGFyZSBub3QgYWN0aXZlLgorICovCitwdWJsaWMgY2xhc3MgQmFuUHJvZmlsZXMKKyAgICAgICAgZXh0ZW5kcyBBYnN0cmFjdE5vbkNhY2hlYWJsZUVuZm9yY2VyUnVsZQoreworCisgICAgLyoqCisgICAgICogQ29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgcHJvZmlsZXMgdG8gY2hlY2suCisgICAgICoKKyAgICAgKiBAc2VlICNzZXRQcm9maWxlcyhTdHJpbmcpCisgICAgICogQHNlZSAjZ2V0UHJvZmlsZXMoKQorICAgICAqLworICAgIHByaXZhdGUgU3RyaW5nIHByb2ZpbGVzOworCisgICAgcHVibGljIGZpbmFsIFN0cmluZyBnZXRQcm9maWxlcygpCisgICAgeworICAgICAgICByZXR1cm4gcHJvZmlsZXM7CisgICAgfQorCisgICAgcHVibGljIGZpbmFsIHZvaWQgc2V0UHJvZmlsZXMoIGZpbmFsIFN0cmluZyBwcm9maWxlcyApCisgICAgeworICAgICAgICB0aGlzLnByb2ZpbGVzID0gcHJvZmlsZXM7CisgICAgfQorCisgICAgLyoKKyAgICAgKiAobm9uLUphdmFkb2MpCisgICAgICoKKyAgICAgKiBAc2VlIG9yZy5hcGFjaGUubWF2ZW4uZW5mb3JjZXIucnVsZS5hcGkuRW5mb3JjZXJSdWxlI2V4ZWN1dGUob3JnLmFwYWNoZS5tYXZlbi5lbmZvcmNlci5ydWxlLmFwaS5FbmZvcmNlclJ1bGVIZWxwZXIpCisgICAgICovCisgICAgcHVibGljIHZvaWQgZXhlY3V0ZSggZmluYWwgRW5mb3JjZXJSdWxlSGVscGVyIHRoZUhlbHBlciApCisgICAgICAgICAgICB0aHJvd3MgRW5mb3JjZXJSdWxlRXhjZXB0aW9uCisgICAgeworICAgICAgICBmaW5hbCBMaXN0PFN0cmluZz4gYmFubmVkQWN0aXZlUHJvZmlsZXMgPSBuZXcgQXJyYXlMaXN0PFN0cmluZz4oKTsKKyAgICAgICAgdHJ5CisgICAgICAgIHsKKyAgICAgICAgICAgIGZpbmFsIE1hdmVuUHJvamVjdCBwcm9qZWN0ID0gKE1hdmVuUHJvamVjdCkgdGhlSGVscGVyLmV2YWx1YXRlKCAiJHtwcm9qZWN0fSIgKSA7CisgICAgICAgICAgICBpZiAoIFN0cmluZ1V0aWxzLmlzTm90RW1wdHkoIHByb2ZpbGVzICkgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZ1tdIHByb2ZzID0gcHJvZmlsZXMuc3BsaXQoICIsIiApOworICAgICAgICAgICAgICAgIGZvciAoIGZpbmFsIFN0cmluZyBwcm9maWxlIDogcHJvZnMgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCBpc1Byb2ZpbGVBY3RpdmUoIHByb2plY3QsIHByb2ZpbGUgKSApCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJhbm5lZEFjdGl2ZVByb2ZpbGVzLmFkZCggcHJvZmlsZSApOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKCAhYmFubmVkQWN0aXZlUHJvZmlsZXMuaXNFbXB0eSgpICkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIGZpbmFsIFN0cmluZyBtZXNzYWdlID0gZ2V0TWVzc2FnZSgpOworICAgICAgICAgICAgICAgICAgICBmaW5hbCBTdHJpbmdCdWlsZGVyIGJ1ZiA9IG5ldyBTdHJpbmdCdWlsZGVyKCk7CisgICAgICAgICAgICAgICAgICAgIGlmICggbWVzc2FnZSAhPSBudWxsICkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgYnVmLmFwcGVuZCggbWVzc2FnZSApLmFwcGVuZCggJ1xuJyApOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgZm9yICggZmluYWwgU3RyaW5nIHByb2ZpbGUgOiBiYW5uZWRBY3RpdmVQcm9maWxlcyApCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJ1Zi5hcHBlbmQoICJQcm9maWxlIFwiIiApLmFwcGVuZCggcHJvZmlsZSApLmFwcGVuZCggIlwiIGlzIGFjdGl2ZS5cbiIgKTsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFbmZvcmNlclJ1bGVFeGNlcHRpb24oIGJ1Zi50b1N0cmluZygpICk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGNhdGNoICggRXhwcmVzc2lvbkV2YWx1YXRpb25FeGNlcHRpb24gZSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBFbmZvcmNlclJ1bGVFeGNlcHRpb24oICJVbmFibGUgdG8gcmV0cmlldmUgdGhlIHByb2plY3QuIiwgZSApOworICAgICAgICB9CisgICAgfQorCisgICAgLyoqCisgICAgICogQ2hlY2tzIGlmIHByb2ZpbGUgaXMgYWN0aXZlLgorICAgICAqCisgICAgICogQHBhcmFtIHByb2plY3QgICAgIHRoZSBwcm9qZWN0CisgICAgICogQHBhcmFtIHByb2ZpbGVOYW1lIHRoZSBwcm9maWxlIG5hbWUKKyAgICAgKiBAcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHByb2ZpbGUgaXMgYWN0aXZlLCBvdGhlcndpc2UgPGNvZGU+ZmFsc2U8L2NvZGU+CisgICAgICovCisgICAgcHJpdmF0ZSBib29sZWFuIGlzUHJvZmlsZUFjdGl2ZSggZmluYWwgTWF2ZW5Qcm9qZWN0IHByb2plY3QsIGZpbmFsIFN0cmluZyBwcm9maWxlTmFtZSApCisgICAgeworICAgICAgICBAU3VwcHJlc3NXYXJuaW5ncyggInVuY2hlY2tlZCIgKQorICAgICAgICBmaW5hbCBMaXN0PFByb2ZpbGU+IGFjdGl2ZVByb2ZpbGVzID0gcHJvamVjdC5nZXRBY3RpdmVQcm9maWxlcygpOworICAgICAgICBpZiAoIGFjdGl2ZVByb2ZpbGVzICE9IG51bGwgJiYgIWFjdGl2ZVByb2ZpbGVzLmlzRW1wdHkoKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGZvciAoIGZpbmFsIFByb2ZpbGUgcHJvZmlsZSA6IGFjdGl2ZVByb2ZpbGVzICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoIHByb2ZpbGUuZ2V0SWQoKS5lcXVhbHMoIHByb2ZpbGVOYW1lICkgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KZGlmZiAtLWdpdCBhL2VuZm9yY2VyLXJ1bGVzL3NyYy9zaXRlL2FwdC9iYW5Qcm9maWxlcy5hcHQudm0gYi9lbmZvcmNlci1ydWxlcy9zcmMvc2l0ZS9hcHQvYmFuUHJvZmlsZXMuYXB0LnZtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhZGRjYWQKLS0tIC9kZXYvbnVsbAorKysgYi9lbmZvcmNlci1ydWxlcy9zcmMvc2l0ZS9hcHQvYmFuUHJvZmlsZXMuYXB0LnZtCkBAIC0wLDAgKzEsNzYgQEAKK35+IExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKK35+IG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorfn4gZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KK35+IHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKK35+IHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKK35+ICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKK35+IHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKK35+Cit+fiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKK35+Cit+fiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCit+fiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorfn4gIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCit+fiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKK35+IHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKK35+IHVuZGVyIHRoZSBMaWNlbnNlLiAgICAKKyAKKyAgLS0tLS0tCisgIEJhbiBQcm9maWxlcworICAtLS0tLS0KKyAgTWlra28gS29pdnVuYWxobworICAtLS0tLS0KKyAgSmFudWFyeSAyMDE3CisgIC0tLS0tLQorCitCYW4gUHJvZmlsZXMKKworICBUaGlzIHJ1bGUgY2hlY2tzIHRoYXQgbm9uZSBvZiB0aGUgc3BlY2lmaWVkIHByb2ZpbGVzIGFyZSBhY3RpdmUuCisKKyAgRm9yIHRoZSBvcHBvc2l0ZSwgcGxlYXNlIHNlZSBydWxlIHt7ey4vcmVxdWlyZUFjdGl2ZVByb2ZpbGUuaHRtbH1yZXF1aXJlQWN0aXZlUHJvZmlsZX19LgorCisKKyAgIFRoZSBmb2xsb3dpbmcgcGFyYW1ldGVycyBhcmUgc3VwcG9ydGVkIGJ5IHRoaXMgcnVsZToKKworICAgKiBtZXNzYWdlIC0gYW4gb3B0aW9uYWwgbWVzc2FnZSB0byB0aGUgdXNlciBpZiB0aGUgcnVsZSBmYWlscy4KKworICAgKiBwcm9maWxlcyAtIEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgcHJvZmlsZSB0byBjaGVjay4KKworICAgW10KKworICAgKiBOLkIuIFVubGlrZSBydWxlIFJlcXVpcmVBY3RpdmVQcm9maWxlLCB0aGlzIHJ1bGUgZG9lcyBub3QgaGF2ZSBlbGVtZW50IDxhbGw+IQorICAgCisgIFNhbXBsZSBQbHVnaW4gQ29uZmlndXJhdGlvbjoKKyAgCisrLS0tKworPHByb2plY3Q+CisgIFsuLi5dCisgIDxidWlsZD4KKyAgICA8cGx1Z2lucz4KKyAgICAgIDxwbHVnaW4+CisgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KKyAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tZW5mb3JjZXItcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICA8dmVyc2lvbj4ke3Byb2plY3QudmVyc2lvbn08L3ZlcnNpb24+CisgICAgICAgIDxleGVjdXRpb25zPgorICAgICAgICAgIDxleGVjdXRpb24+CisgICAgICAgICAgICA8aWQ+ZW5mb3JjZS1hbGwtcHJvZmlsZXMtYXJlLWFjdGl2YXRlZDwvaWQ+CisgICAgICAgICAgICA8Z29hbHM+CisgICAgICAgICAgICAgIDxnb2FsPmVuZm9yY2U8L2dvYWw+CisgICAgICAgICAgICA8L2dvYWxzPgorICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgIDxydWxlcz4KKyAgICAgICAgICAgICAgICA8QmFuUHJvZmlsZXM+CisgICAgICAgICAgICAgICAgICA8bWVzc2FnZT5CYW5uZWQgcHJvZmlsZXMgYWN0aXZhdGVkITwvbWVzc2FnZT4KKyAgICAgICAgICAgICAgICAgIDxwcm9maWxlcz5maXJzdCxzZWNvbmQ8L3Byb2ZpbGVzPgorICAgICAgICAgICAgICAgIDwvQmFuUHJvZmlsZXM+CisgICAgICAgICAgICAgIDwvcnVsZXM+CisgICAgICAgICAgICAgIDxmYWlsPnRydWU8L2ZhaWw+CisgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CisgICAgICAgICAgPC9leGVjdXRpb24+CisgICAgICAgIDwvZXhlY3V0aW9ucz4KKyAgICAgIDwvcGx1Z2luPgorICAgIDwvcGx1Z2lucz4KKyAgPC9idWlsZD4KKyAgWy4uLl0KKzwvcHJvamVjdD4KKystLS0rCmRpZmYgLS1naXQgYS9lbmZvcmNlci1ydWxlcy9zcmMvc2l0ZS9hcHQvaW5kZXguYXB0IGIvZW5mb3JjZXItcnVsZXMvc3JjL3NpdGUvYXB0L2luZGV4LmFwdAppbmRleCBlM2MwYTcwLi42YWIyNWY3IDEwMDY0NAotLS0gYS9lbmZvcmNlci1ydWxlcy9zcmMvc2l0ZS9hcHQvaW5kZXguYXB0CisrKyBiL2VuZm9yY2VyLXJ1bGVzL3NyYy9zaXRlL2FwdC9pbmRleC5hcHQKQEAgLTM5LDYgKzM5LDggQEAgU3RhbmRhcmQgUnVsZXMKICAgCiAgICoge3t7Li9iYW5uZWRQbHVnaW5zLmh0bWx9YmFubmVkUGx1Z2luc319IC0gZW5mb3JjZXMgdGhhdCBzcGVjaWZpYyBwbHVnaW5zIGFyZW4ndCBpbmNsdWRlZCBpbiB0aGUgYnVpbGQuCiAgIAorICAqIHt7ey4vYmFuUHJvZmlsZXMuaHRtbH1iYW5Qcm9maWxlc319IC0gZW5mb3JjZXMgb25lIG9yIG1vcmUgcHJvZmlsZXMgYXJlIG5vdCBhY3RpdmUuCisKICAgKiB7e3suL2Jhbm5lZFJlcG9zaXRvcmllcy5odG1sfWJhbm5lZFJlcG9zaXRvcmllc319IC0gZW5mb3JjZXMgdG8gbm90IGluY2x1ZGUgYmFubmVkIHJlcG9zaXRvcmllcy4KIAogICAqIHt7ey4vYmFuVHJhbnNpdGl2ZURlcGVuZGVuY2llcy5odG1sfWJhblRyYW5zaXRpdmVEZXBlbmRlbmNpZXN9fSAtIGVuZm9yY2VzIHRoYXQgcHJvamVjdCBkb2Vzbid0IGhhdmUgdHJhbnNpdGl2ZSBkZXBlbmRlbmNpZXMuCmRpZmYgLS1naXQgYS9lbmZvcmNlci1ydWxlcy9zcmMvc2l0ZS9hcHQvcmVxdWlyZUFjdGl2ZVByb2ZpbGUuYXB0LnZtIGIvZW5mb3JjZXItcnVsZXMvc3JjL3NpdGUvYXB0L3JlcXVpcmVBY3RpdmVQcm9maWxlLmFwdC52bQppbmRleCBmNjM5MjIzLi43NzZjYTkwIDEwMDY0NAotLS0gYS9lbmZvcmNlci1ydWxlcy9zcmMvc2l0ZS9hcHQvcmVxdWlyZUFjdGl2ZVByb2ZpbGUuYXB0LnZtCisrKyBiL2VuZm9yY2VyLXJ1bGVzL3NyYy9zaXRlL2FwdC9yZXF1aXJlQWN0aXZlUHJvZmlsZS5hcHQudm0KQEAgLTI3LDYgKzI3LDggQEAgUmVxdWlyZSBBY3RpdmUgUHJvZmlsZQogCiAgIFRoaXMgcnVsZSBjaGVja3MgdGhhdCBhIHNwZWNpZmllZCBsaXN0IG9mIHByb2ZpbGVzIGlzIGFjdGl2YXRlZC4KIAorICBGb3IgdGhlIG9wcG9zaXRlLCBwbGVhc2Ugc2VlIHJ1bGUge3t7Li9iYW5Qcm9maWxlcy5odG1sfWJhblByb2ZpbGVzfX0uCisgCiAKICAgIFRoZSBmb2xsb3dpbmcgcGFyYW1ldGVycyBhcmUgc3VwcG9ydGVkIGJ5IHRoaXMgcnVsZToKICAgIApkaWZmIC0tZ2l0IGEvZW5mb3JjZXItcnVsZXMvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvQmFuUHJvZmlsZXNUZXN0LmphdmEgYi9lbmZvcmNlci1ydWxlcy9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9lbmZvcmNlci9CYW5Qcm9maWxlc1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNDFkNjVjCi0tLSAvZGV2L251bGwKKysrIGIvZW5mb3JjZXItcnVsZXMvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvQmFuUHJvZmlsZXNUZXN0LmphdmEKQEAgLTAsMCArMSwxNTAgQEAKK3BhY2thZ2Ugb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zLmVuZm9yY2VyOworCisvKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK2ltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLmVuZm9yY2VyLnJ1bGUuYXBpLkVuZm9yY2VyUnVsZUV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLmVuZm9yY2VyLnJ1bGUuYXBpLkVuZm9yY2VyUnVsZUhlbHBlcjsKK2ltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLm1vZGVsLlByb2ZpbGU7CitpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5wcm9qZWN0Lk1hdmVuUHJvamVjdDsKK2ltcG9ydCBvcmcuY29kZWhhdXMucGxleHVzLmNvbXBvbmVudC5jb25maWd1cmF0b3IuZXhwcmVzc2lvbi5FeHByZXNzaW9uRXZhbHVhdGlvbkV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuanVuaXQuQmVmb3JlOworaW1wb3J0IG9yZy5qdW5pdC5UZXN0OworCitpbXBvcnQgamF2YS51dGlsLkFycmF5czsKK2ltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CisKK2ltcG9ydCBzdGF0aWMgb3JnLmp1bml0LkFzc2VydC5hc3NlcnRUcnVlOworaW1wb3J0IHN0YXRpYyBvcmcubW9ja2l0by5Nb2NraXRvLm1vY2s7CitpbXBvcnQgc3RhdGljIG9yZy5tb2NraXRvLk1vY2tpdG8ud2hlbjsKKworLyoqCisgKiBDaGVjayB0aGUgQmFuUHJvZmlsZXMgcnVsZS4KKyAqLworcHVibGljIGNsYXNzIEJhblByb2ZpbGVzVGVzdCB7CisgICAgcHJpdmF0ZSBNYXZlblByb2plY3QgcHJvamVjdDsKKworICAgIHByaXZhdGUgRW5mb3JjZXJSdWxlSGVscGVyIGhlbHBlcjsKKworICAgIHByaXZhdGUgQmFuUHJvZmlsZXMgcnVsZTsKKworICAgIEBCZWZvcmUKKyAgICBwdWJsaWMgdm9pZCBiZWZvcmUoKQorICAgICAgICAgICAgdGhyb3dzIEV4cHJlc3Npb25FdmFsdWF0aW9uRXhjZXB0aW9uIHsKKyAgICAgICAgcHJvamVjdCA9IG1vY2soTWF2ZW5Qcm9qZWN0LmNsYXNzKTsKKyAgICAgICAgaGVscGVyID0gbW9jayhFbmZvcmNlclJ1bGVIZWxwZXIuY2xhc3MpOworICAgICAgICB3aGVuKGhlbHBlci5ldmFsdWF0ZSgiJHtwcm9qZWN0fSIpKS50aGVuUmV0dXJuKHByb2plY3QpOworICAgICAgICBydWxlID0gbmV3IEJhblByb2ZpbGVzKCk7CisgICAgfQorCisgICAgQFRlc3QKKyAgICBwdWJsaWMgdm9pZCB0ZXN0Tm9BY3RpdmVQcm9maWxlc0luUHJvamVjdEFuZE5vQmFubmVkUHJvZmlsZXMoKQorICAgICAgICAgICAgdGhyb3dzIEVuZm9yY2VyUnVsZUV4Y2VwdGlvbiB7CisgICAgICAgIHdoZW4ocHJvamVjdC5nZXRBY3RpdmVQcm9maWxlcygpKS50aGVuUmV0dXJuKENvbGxlY3Rpb25zLjxQcm9maWxlPmVtcHR5TGlzdCgpKTsKKworICAgICAgICBydWxlLmV4ZWN1dGUoaGVscGVyKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZSh0cnVlKTsKKyAgICB9CisKKyAgICBAVGVzdAorICAgIHB1YmxpYyB2b2lkIHRlc3ROb0FjdGl2ZVByb2ZpbGVBbmRPbmVCYW5uZWRQcm9maWxlKCkKKyAgICAgICAgICAgIHRocm93cyBFbmZvcmNlclJ1bGVFeGNlcHRpb24geworICAgICAgICB3aGVuKHByb2plY3QuZ2V0QWN0aXZlUHJvZmlsZXMoKSkudGhlblJldHVybihDb2xsZWN0aW9ucy48UHJvZmlsZT5lbXB0eUxpc3QoKSk7CisKKyAgICAgICAgcnVsZS5zZXRQcm9maWxlcygicHJvZmlsZS0xIik7CisKKyAgICAgICAgcnVsZS5leGVjdXRlKGhlbHBlcik7CisgICAgICAgIGFzc2VydFRydWUodHJ1ZSk7CisgICAgfQorCisgICAgQFRlc3QKKyAgICBwdWJsaWMgdm9pZCB0ZXN0T25lQWN0aXZlUHJvZmlsZUFuZE5vQmFubmVkUHJvZmlsZSgpCisgICAgICAgICAgICB0aHJvd3MgRW5mb3JjZXJSdWxlRXhjZXB0aW9uIHsKKyAgICAgICAgd2hlbihwcm9qZWN0LmdldEFjdGl2ZVByb2ZpbGVzKCkpLnRoZW5SZXR1cm4oQ29sbGVjdGlvbnMuc2luZ2xldG9uTGlzdCgKKyAgICAgICAgICAgICAgICBjcmVhdGVQcm9maWxlKCJwcm9maWxlLTIiKQorICAgICAgICApKTsKKworICAgICAgICBydWxlLmV4ZWN1dGUoaGVscGVyKTsKKyAgICAgICAgYXNzZXJ0VHJ1ZSh0cnVlKTsKKyAgICB9CisKKyAgICBAVGVzdChleHBlY3RlZCA9IEVuZm9yY2VyUnVsZUV4Y2VwdGlvbi5jbGFzcykKKyAgICBwdWJsaWMgdm9pZCB0ZXN0T25lQWN0aXZlUHJvZmlsZUFuZFNhbWVCYW5uZWRQcm9maWxlKCkKKyAgICAgICAgICAgIHRocm93cyBFbmZvcmNlclJ1bGVFeGNlcHRpb24geworICAgICAgICB3aGVuKHByb2plY3QuZ2V0QWN0aXZlUHJvZmlsZXMoKSkudGhlblJldHVybihDb2xsZWN0aW9ucy5zaW5nbGV0b25MaXN0KAorICAgICAgICAgICAgICAgIGNyZWF0ZVByb2ZpbGUoInByb2ZpbGUtMiIpCisgICAgICAgICkpOworCisgICAgICAgIHJ1bGUuc2V0UHJvZmlsZXMoInByb2ZpbGUtMiIpOworCisgICAgICAgIHJ1bGUuZXhlY3V0ZShoZWxwZXIpOworICAgICAgICAvLyBpbnRlbnRpb25hbGx5IG5vIGFzc2VydFRydWUoLi4uKQorICAgIH0KKworICAgIEBUZXN0KGV4cGVjdGVkID0gRW5mb3JjZXJSdWxlRXhjZXB0aW9uLmNsYXNzKQorICAgIHB1YmxpYyB2b2lkIHRlc3RUd29BY3RpdmVQcm9maWxlc0FuZE9uZVNhbWVCYW5uZWRQcm9maWxlKCkKKyAgICAgICAgICAgIHRocm93cyBFbmZvcmNlclJ1bGVFeGNlcHRpb24geworCisgICAgICAgIHdoZW4ocHJvamVjdC5nZXRBY3RpdmVQcm9maWxlcygpKS50aGVuUmV0dXJuKEFycmF5cy5hc0xpc3QoCisgICAgICAgICAgICAgICAgY3JlYXRlUHJvZmlsZSgicHJvZmlsZS0xIiksCisgICAgICAgICAgICAgICAgY3JlYXRlUHJvZmlsZSgicHJvZmlsZS0yIikKKyAgICAgICAgKSk7CisKKyAgICAgICAgcnVsZS5zZXRQcm9maWxlcygicHJvZmlsZS0yIik7CisKKyAgICAgICAgcnVsZS5leGVjdXRlKGhlbHBlcik7CisgICAgICAgIC8vIGludGVudGlvbmFsbHkgbm8gYXNzZXJ0VHJ1ZSguLi4pCisgICAgfQorCisgICAgQFRlc3QoZXhwZWN0ZWQgPSBFbmZvcmNlclJ1bGVFeGNlcHRpb24uY2xhc3MpCisgICAgcHVibGljIHZvaWQgdGVzdE9uZUFjdGl2ZVByb2ZpbGVBbmRUd29CYW5uZWRQcm9maWxlc09uZVNhbWUoKQorICAgICAgICAgICAgdGhyb3dzIEVuZm9yY2VyUnVsZUV4Y2VwdGlvbiB7CisgICAgICAgIHdoZW4ocHJvamVjdC5nZXRBY3RpdmVQcm9maWxlcygpKS50aGVuUmV0dXJuKENvbGxlY3Rpb25zLnNpbmdsZXRvbkxpc3QoCisgICAgICAgICAgICAgICAgY3JlYXRlUHJvZmlsZSgicHJvZmlsZS0xIikKKyAgICAgICAgKSk7CisKKyAgICAgICAgcnVsZS5zZXRQcm9maWxlcygicHJvZmlsZS0xLHByb2ZpbGUtMiIpOworCisgICAgICAgIHJ1bGUuZXhlY3V0ZShoZWxwZXIpOworICAgICAgICAvLyBpbnRlbnRpb25hbGx5IG5vIGFzc2VydFRydWUoLi4uKQorICAgIH0KKworICAgIEBUZXN0KGV4cGVjdGVkID0gRW5mb3JjZXJSdWxlRXhjZXB0aW9uLmNsYXNzKQorICAgIHB1YmxpYyB2b2lkIHRlc3RUaHJlZUFjdGl2ZVByb2ZpbGVzQW5kVGhyZWVCYW5uZWRQcm9maWxlc1RocmVlU2FtZSgpCisgICAgICAgICAgICB0aHJvd3MgRW5mb3JjZXJSdWxlRXhjZXB0aW9uIHsKKyAgICAgICAgd2hlbihwcm9qZWN0LmdldEFjdGl2ZVByb2ZpbGVzKCkpLnRoZW5SZXR1cm4oQXJyYXlzLmFzTGlzdCgKKyAgICAgICAgICAgICAgICBjcmVhdGVQcm9maWxlKCJwcm9maWxlLTEiKSwKKyAgICAgICAgICAgICAgICBjcmVhdGVQcm9maWxlKCJwcm9maWxlLTIiKSwKKyAgICAgICAgICAgICAgICBjcmVhdGVQcm9maWxlKCJwcm9maWxlLTMiKSwKKyAgICAgICAgICAgICAgICBjcmVhdGVQcm9maWxlKCJwcm9maWxlLTQiKQorICAgICAgICApKTsKKworICAgICAgICBydWxlLnNldFByb2ZpbGVzKCJwcm9maWxlLTIscHJvZmlsZS0zLHByb2ZpbGUtNCIpOworCisgICAgICAgIHJ1bGUuZXhlY3V0ZShoZWxwZXIpOworICAgICAgICAvLyBpbnRlbnRpb25hbGx5IG5vIGFzc2VydFRydWUoLi4uKQorICAgIH0KKworICAgIHByaXZhdGUgUHJvZmlsZSBjcmVhdGVQcm9maWxlKFN0cmluZyBwcm9maWxlSWQpIHsKKyAgICAgICAgUHJvZmlsZSBwID0gbmV3IFByb2ZpbGUoKTsKKyAgICAgICAgcC5zZXRJZChwcm9maWxlSWQpOworICAgICAgICByZXR1cm4gcDsKKyAgICB9CisKK30KZGlmZiAtLWdpdCBhL3BvbS54bWwgYi9wb20ueG1sCmluZGV4IGQxYzg4OTguLjk4NzgyMWMgMTAwNjQ0Ci0tLSBhL3BvbS54bWwKKysrIGIvcG9tLnhtbApAQCAtMTY1LDYgKzE2NSwxOCBAQAogICAgICAgPGVtYWlsPndhbmd5ZjIwMTBAZ21haWwuY29tPC9lbWFpbD4KICAgICAgIDxvcmdhbml6YXRpb24+ZUJheSBJbmMuPC9vcmdhbml6YXRpb24+CiAgICAgPC9jb250cmlidXRvcj4KKyAgICA8Y29udHJpYnV0b3I+CisgICAgICA8bmFtZT5NaWtrbyBLb2l2dW5hbGhvPC9uYW1lPgorICAgICAgPGVtYWlsPm1pa2tvLmtvaXZ1bmFsaG9AaWtpLmZpPC9lbWFpbD4KKyAgICAgIDx1cmw+aHR0cDovL3d3dy5saW5rZWRpbi5jb20vaW4vbWlra29rb2l2dW5hbGhvLzwvdXJsPgorICAgICAgPHJvbGVzPgorICAgICAgICA8cm9sZT5kZXZlbG9wZXI8L3JvbGU+CisgICAgICA8L3JvbGVzPgorICAgICAgPHRpbWV6b25lPkV1cm9wZS9TdG9ja2hvbG08L3RpbWV6b25lPgorICAgICAgPHByb3BlcnRpZXM+CisgICAgICAgIDxnaXRIdWJVcmw+aHR0cHM6Ly9naXRodWIuY29tL21pa2tvaTwvZ2l0SHViVXJsPgorICAgICAgPC9wcm9wZXJ0aWVzPgorICAgIDwvY29udHJpYnV0b3I+CiAgIDwvY29udHJpYnV0b3JzPgogICA8YnVpbGQ+CiAgICAgPHBsdWdpbk1hbmFnZW1lbnQ+CgoKIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDMzNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgT2N0IDI2IDA3OjQwOjExIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDMzNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBGMTY1MDE3RTI3Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjYgT2N0IDIwMTcgMDc6NDA6MTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxNjc2OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBPY3QgMjAxNyAwNzo0MDowNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTYxNzggaW52b2tlZCBieSB1aWQgNTAwKTsgMjYgT2N0IDIwMTcgMDc6NDA6MDcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNTk1MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI2IE9jdCAyMDE3IDA3OjQwOjA3IC0wMDAwClJlY2VpdmVkOiBmcm9tIGVjMi01Mi0yMDItODAtNzAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20gKEhFTE8gZ2l0Ym94LmFwYWNoZS5vcmcpICg1Mi4yMDIuODAuNzApCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMjYgT2N0IDIwMTcgMDc6NDA6MDcgKzAwMDAKRnJvbTogR2l0Qm94IDxnaXRAYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtHaXRIdWJdIGFzZmdpdCBjbG9zZWQgcHVsbCByZXF1ZXN0ICMyNzogRml4ZWQgd3JvbmcgcGFnZSB0aXRsZSBmb3IgRGVwZW5kZW5jeSBDb252ZXJnZW5jZQpNZXNzYWdlLUlEOiA8MTUwOTAwMzYwNjU2LjE2MzUuOTA4MzQ1OTYyMzc0NDY0NjA0Ni5naXRib3hAZ2l0Ym94LmFwYWNoZS5vcmc+Cgphc2ZnaXQgY2xvc2VkIHB1bGwgcmVxdWVzdCAjMjc6IEZpeGVkIHdyb25nIHBhZ2UgdGl0bGUgZm9yIERlcGVuZGVuY3kgQ29udmVyZ2VuY2UKVVJMOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWVuZm9yY2VyL3B1bGwvMjcKIAogCiAgIAoKVGhpcyBpcyBhIFBSIG1lcmdlZCBmcm9tIGEgZm9ya2VkIHJlcG9zaXRvcnkuCkFzIEdpdEh1YiBoaWRlcyB0aGUgb3JpZ2luYWwgZGlmZiBvbiBtZXJnZSwgaXQgaXMgZGlzcGxheWVkIGJlbG93IGZvcgp0aGUgc2FrZSBvZiBwcm92ZW5hbmNlOgoKQXMgdGhpcyBpcyBhIGZvcmVpZ24gcHVsbCByZXF1ZXN0IChmcm9tIGEgZm9yayksIHRoZSBkaWZmIGlzIHN1cHBsaWVkCmJlbG93IChhcyBpdCB3b24ndCBzaG93IG90aGVyd2lzZSBkdWUgdG8gR2l0SHViIG1hZ2ljKToKCmRpZmYgLS1naXQgYS9lbmZvcmNlci1ydWxlcy9zcmMvc2l0ZS9hcHQvZGVwZW5kZW5jeUNvbnZlcmdlbmNlLmFwdC52bSBiL2VuZm9yY2VyLXJ1bGVzL3NyYy9zaXRlL2FwdC9kZXBlbmRlbmN5Q29udmVyZ2VuY2UuYXB0LnZtCmluZGV4IDg5MDgxNGEuLmJjN2RjZjkgMTAwNjQ0Ci0tLSBhL2VuZm9yY2VyLXJ1bGVzL3NyYy9zaXRlL2FwdC9kZXBlbmRlbmN5Q29udmVyZ2VuY2UuYXB0LnZtCisrKyBiL2VuZm9yY2VyLXJ1bGVzL3NyYy9zaXRlL2FwdC9kZXBlbmRlbmN5Q29udmVyZ2VuY2UuYXB0LnZtCkBAIC0xNiw3ICsxNiw3IEBACiAgfn4gdW5kZXIgdGhlIExpY2Vuc2UuCiAKICAtLS0tLQotIENvbXBhcmluZyBhZ2FpbnN0IGEgc3BlY2lmaWMgYXJ0aWZhY3QKKyBEZXBlbmRlbmN5IENvbnZlcmdlbmNlCiAgLS0tLS0KICAtLS0tLQogIDIwMDgtMDktMTMKCgogCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgaXMgYW4gYXV0b21hdGVkIG1lc3NhZ2UgZnJvbSB0aGUgQXBhY2hlIEdpdCBTZXJ2aWNlLgpUbyByZXNwb25kIHRvIHRoZSBtZXNzYWdlLCBwbGVhc2UgbG9nIG9uIEdpdEh1YiBhbmQgdXNlIHRoZQpVUkwgYWJvdmUgdG8gZ28gdG8gdGhlIHNwZWNpZmljIGNvbW1lbnQuCiAKRm9yIHF1ZXJpZXMgYWJvdXQgdGhpcyBzZXJ2aWNlLCBwbGVhc2UgY29udGFjdCBJbmZyYXN0cnVjdHVyZSBhdDoKdXNlcnNAaW5mcmEuYXBhY2hlLm9yZwoKCldpdGggcmVnYXJkcywKQXBhY2hlIEdpdCBTZXJ2aWNlcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MzM4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBPY3QgMjYgMDc6NDA6MTEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzM4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDA2NzBGMTdFMkMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAyNiBPY3QgMjAxNyAwNzo0MDoxMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE3OTA2IGludm9rZWQgYnkgdWlkIDUwMCk7IDI2IE9jdCAyMDE3IDA3OjQwOjA4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNjg1OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBPY3QgMjAxNyAwNzo0MDowOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE2MTMxIGludm9rZWQgYnkgdWlkIDk5KTsgMjYgT2N0IDIwMTcgMDc6NDA6MDcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZWMyLTUyLTIwMi04MC03MC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSAoSEVMTyBnaXRib3guYXBhY2hlLm9yZykgKDUyLjIwMi44MC43MCkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyNiBPY3QgMjAxNyAwNzo0MDowNyArMDAwMApGcm9tOiBHaXRCb3ggPGdpdEBhcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0dpdEh1Yl0gYXNmZ2l0IGNsb3NlZCBwdWxsIHJlcXVlc3QgIzI1OiBNRU5GT1JDRVItMjc2IC0gU3VwcG9ydCBpZ25vcmluZyBkZXBlbmRlbmN5IHNjb3BlcyBpbiBSZXF1aXJlVXBwZXJCb3VuZERlcHMKTWVzc2FnZS1JRDogPDE1MDkwMDM2MDY1OS4xNjMyLjc0OTgwMTUyMzcxNDY1ODgxNi5naXRib3hAZ2l0Ym94LmFwYWNoZS5vcmc+Cgphc2ZnaXQgY2xvc2VkIHB1bGwgcmVxdWVzdCAjMjU6IE1FTkZPUkNFUi0yNzYgLSBTdXBwb3J0IGlnbm9yaW5nIGRlcGVuZGVuY3kgc2NvcGVzIGluIFJlcXVpcmVVcHBlckJvdW5kRGVwcwpVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZW5mb3JjZXIvcHVsbC8yNQogCiAKICAgCgpUaGlzIGlzIGEgUFIgbWVyZ2VkIGZyb20gYSBmb3JrZWQgcmVwb3NpdG9yeS4KQXMgR2l0SHViIGhpZGVzIHRoZSBvcmlnaW5hbCBkaWZmIG9uIG1lcmdlLCBpdCBpcyBkaXNwbGF5ZWQgYmVsb3cgZm9yCnRoZSBzYWtlIG9mIHByb3ZlbmFuY2U6CgpBcyB0aGlzIGlzIGEgZm9yZWlnbiBwdWxsIHJlcXVlc3QgKGZyb20gYSBmb3JrKSwgdGhlIGRpZmYgaXMgc3VwcGxpZWQKYmVsb3cgKGFzIGl0IHdvbid0IHNob3cgb3RoZXJ3aXNlIGR1ZSB0byBHaXRIdWIgbWFnaWMpOgoKZGlmZiAtLWdpdCBhL2VuZm9yY2VyLXJ1bGVzL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL2VuZm9yY2VyL1JlcXVpcmVVcHBlckJvdW5kRGVwcy5qYXZhIGIvZW5mb3JjZXItcnVsZXMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvUmVxdWlyZVVwcGVyQm91bmREZXBzLmphdmEKaW5kZXggMjYwMGIzNi4uNGMwY2NkZSAxMDA2NDQKLS0tIGEvZW5mb3JjZXItcnVsZXMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvUmVxdWlyZVVwcGVyQm91bmREZXBzLmphdmEKKysrIGIvZW5mb3JjZXItcnVsZXMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvUmVxdWlyZVVwcGVyQm91bmREZXBzLmphdmEKQEAgLTIxLDkgKzIxLDExIEBACiAKIGltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OwogaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKK2ltcG9ydCBqYXZhLnV0aWwuSGFzaFNldDsKIGltcG9ydCBqYXZhLnV0aWwuTGlua2VkSGFzaE1hcDsKIGltcG9ydCBqYXZhLnV0aWwuTGlzdDsKIGltcG9ydCBqYXZhLnV0aWwuTWFwOworaW1wb3J0IGphdmEudXRpbC5TZXQ7CiAKIGltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0LkFydGlmYWN0OwogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QuZmFjdG9yeS5BcnRpZmFjdEZhY3Rvcnk7CkBAIC02Nyw2ICs2OSwxMyBAQAogICAgICAqIEBzaW5jZSBUQkQKICAgICAgKi8KICAgICBwcml2YXRlIExpc3Q8U3RyaW5nPiBleGNsdWRlcyA9IG51bGw7CisgICAgCisgICAgLyoqCisgICAgICogRGVwZW5kZW5jeSBzY29wZXMgdG8gaWdub3JlLgorICAgICAqIAorICAgICAqIEBzaW5jZSBUQkQKKyAgICAgKi8KKyAgICBwcml2YXRlIExpc3Q8U3RyaW5nPiBpZ25vcmVkRGVwZW5kZW5jeVNjb3BlczsKIAogICAgIC8qKgogICAgICAqIFNldCB0byB7QGNvZGUgdHJ1ZX0gaWYgdGltZXN0YW1wZWQgc25hcHNob3RzIHNob3VsZCBiZSB1c2VkLgpAQCAtODgsNiArOTcsMTcgQEAgcHVibGljIHZvaWQgc2V0RXhjbHVkZXMoIExpc3Q8U3RyaW5nPiBleGNsdWRlcyApCiAgICAgICAgIHRoaXMuZXhjbHVkZXMgPSBleGNsdWRlczsKICAgICB9CiAKKyAgICAvKioKKyAgICAgKiBJZ25vcmVzIHBhcnRpY3VsYXIgZGVwZW5kZW5jeSBzY29wZXMuCisgICAgICogCisgICAgICogQHBhcmFtIHNjb3BlcyBhIGxpc3Qgb2YgaWdub3JlZCBzY29wZXMKKyAgICAgKiBAc2luY2UgVEJECisgICAgICovCisgICAgcHVibGljIHZvaWQgc2V0SWdub3JlRGVwZW5kZW5jeVNjb3BlcyggTGlzdDxTdHJpbmc+IHNjb3BlcyApIAorICAgIHsKKyAgICAgICAgdGhpcy5pZ25vcmVkRGVwZW5kZW5jeVNjb3BlcyA9IHNjb3BlczsKKyAgICB9CisKICAgICAvLyBDSEVDS1NUWUxFX09GRjogTGluZUxlbmd0aAogICAgIC8qKgogICAgICAqIFVzZXMgdGhlIHtAbGluayBFbmZvcmNlclJ1bGVIZWxwZXJ9IHRvIHBvcHVsYXRlIHRoZSB2YWx1ZXMgb2YgdGhlCkBAIC0xNDMsOCArMTYzLDggQEAgcHVibGljIHZvaWQgZXhlY3V0ZSggRW5mb3JjZXJSdWxlSGVscGVyIGhlbHBlciApCiAgICAgICAgIHRyeQogICAgICAgICB7CiAgICAgICAgICAgICBEZXBlbmRlbmN5Tm9kZSBub2RlID0gZ2V0Tm9kZSggaGVscGVyICk7Ci0gICAgICAgICAgICBSZXF1aXJlVXBwZXJCb3VuZERlcHNWaXNpdG9yIHZpc2l0b3IgPSBuZXcgUmVxdWlyZVVwcGVyQm91bmREZXBzVmlzaXRvcigpOwotICAgICAgICAgICAgdmlzaXRvci5zZXRVbmlxdWVWZXJzaW9ucyggdW5pcXVlVmVyc2lvbnMgKTsKKyAgICAgICAgICAgIFJlcXVpcmVVcHBlckJvdW5kRGVwc1Zpc2l0b3IgdmlzaXRvciA9IG5ldyBSZXF1aXJlVXBwZXJCb3VuZERlcHNWaXNpdG9yCisgICAgICAgICAgICAgICAgICAgICggdW5pcXVlVmVyc2lvbnMsIGlnbm9yZWREZXBlbmRlbmN5U2NvcGVzLCBsb2cgKTsKICAgICAgICAgICAgIG5vZGUuYWNjZXB0KCB2aXNpdG9yICk7CiAgICAgICAgICAgICBMaXN0PFN0cmluZz4gZXJyb3JNZXNzYWdlcyA9IGJ1aWxkRXJyb3JNZXNzYWdlcyggdmlzaXRvci5nZXRDb25mbGljdHMoKSApOwogICAgICAgICAgICAgaWYgKCBlcnJvck1lc3NhZ2VzLnNpemUoKSA+IDAgKQpAQCAtMjQyLDExICsyNjIsMTYgQEAgcHJpdmF0ZSBTdHJpbmcgZ2V0RnVsbEFydGlmYWN0TmFtZSggRGVwZW5kZW5jeU5vZGUgbm9kZSwgYm9vbGVhbiB1c2VQcmVtYW5hZ2VkICkKICAgICAgICAgaW1wbGVtZW50cyBEZXBlbmRlbmN5Tm9kZVZpc2l0b3IKICAgICB7CiAKLSAgICAgICAgcHJpdmF0ZSBib29sZWFuIHVuaXF1ZVZlcnNpb25zOworICAgICAgICBwcml2YXRlIGZpbmFsIGJvb2xlYW4gdW5pcXVlVmVyc2lvbnM7CisgICAgICAgIHByaXZhdGUgZmluYWwgU2V0PFN0cmluZz4gaWdub3JlZERlcGVuZGVuY3lTY29wZXM7CisgICAgICAgIHByaXZhdGUgZmluYWwgTG9nIGxvZzsKIAotICAgICAgICBwdWJsaWMgdm9pZCBzZXRVbmlxdWVWZXJzaW9ucyggYm9vbGVhbiB1bmlxdWVWZXJzaW9ucyApCisgICAgICAgIHB1YmxpYyBSZXF1aXJlVXBwZXJCb3VuZERlcHNWaXNpdG9yKCBib29sZWFuIHVuaXF1ZVZlcnNpb25zLCBMaXN0PFN0cmluZz4gaWdub3JlZERlcGVuZGVuY3lTY29wZXMsIExvZyBsb2cgKQogICAgICAgICB7CiAgICAgICAgICAgICB0aGlzLnVuaXF1ZVZlcnNpb25zID0gdW5pcXVlVmVyc2lvbnM7CisgICAgICAgICAgICB0aGlzLmlnbm9yZWREZXBlbmRlbmN5U2NvcGVzID0gaWdub3JlZERlcGVuZGVuY3lTY29wZXMgIT0gbnVsbCAKKyAgICAgICAgICAgICAgICAgICAgPyBuZXcgSGFzaFNldDxTdHJpbmc+KCBpZ25vcmVkRGVwZW5kZW5jeVNjb3BlcyApIDogbnVsbDsKKyAgICAgICAgICAgIHRoaXMubG9nID0gbG9nOwogICAgICAgICB9CiAKICAgICAgICAgcHJpdmF0ZSBNYXA8U3RyaW5nLCBMaXN0PERlcGVuZGVuY3lOb2RlSG9wQ291bnRQYWlyPj4ga2V5VG9QYWlyc01hcCA9CkBAIC0yNTQsNiArMjc5LDE2IEBAIHB1YmxpYyB2b2lkIHNldFVuaXF1ZVZlcnNpb25zKCBib29sZWFuIHVuaXF1ZVZlcnNpb25zICkKIAogICAgICAgICBwdWJsaWMgYm9vbGVhbiB2aXNpdCggRGVwZW5kZW5jeU5vZGUgbm9kZSApCiAgICAgICAgIHsKKyAgICAgICAgICAgIEFydGlmYWN0IGFydGlmYWN0ID0gbm9kZS5nZXRBcnRpZmFjdCgpOworICAgICAgICAgICAgU3RyaW5nIGFydGlmYWN0U2NvcGUgPSBhcnRpZmFjdC5nZXRTY29wZSgpOworICAgICAgICAgICAgaWYgKCBpZ25vcmVkRGVwZW5kZW5jeVNjb3BlcyAhPSBudWxsICYmIGlnbm9yZWREZXBlbmRlbmN5U2NvcGVzLmNvbnRhaW5zKCBhcnRpZmFjdFNjb3BlICkgKSAKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBJZiB0aGUgc2NvcGUgaXMgaWdub3JlZCwgc2tpcCB0aGUgYXJ0aWZhY3QgYW5kIGl0cyBjaGlsZHJlbgorICAgICAgICAgICAgICAgIFN0cmluZyBncm91cEFydCA9IGFydGlmYWN0LmdldEdyb3VwSWQoKSArICI6IiArIGFydGlmYWN0LmdldEFydGlmYWN0SWQoKTsKKyAgICAgICAgICAgICAgICBsb2cud2FybiggIlNraXBwaW5nIGRlcGVuZGVuY3kgIiArIGdyb3VwQXJ0ICsgIi4gSXRzIHNjb3BlIGlzIGlnbm9yZWQ6ICIgKyBhcnRpZmFjdFNjb3BlICk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCiAgICAgICAgICAgICBEZXBlbmRlbmN5Tm9kZUhvcENvdW50UGFpciBwYWlyID0gbmV3IERlcGVuZGVuY3lOb2RlSG9wQ291bnRQYWlyKCBub2RlICk7CiAgICAgICAgICAgICBTdHJpbmcga2V5ID0gcGFpci5jb25zdHJ1Y3RLZXkoKTsKICAgICAgICAgICAgIExpc3Q8RGVwZW5kZW5jeU5vZGVIb3BDb3VudFBhaXI+IHBhaXJzID0ga2V5VG9QYWlyc01hcC5nZXQoIGtleSApOwpkaWZmIC0tZ2l0IGEvZW5mb3JjZXItcnVsZXMvc3JjL3NpdGUvYXB0L3JlcXVpcmVVcHBlckJvdW5kRGVwcy5hcHQudm0gYi9lbmZvcmNlci1ydWxlcy9zcmMvc2l0ZS9hcHQvcmVxdWlyZVVwcGVyQm91bmREZXBzLmFwdC52bQppbmRleCBiMzRhNmY0Li4xYzEzNmY3IDEwMDY0NAotLS0gYS9lbmZvcmNlci1ydWxlcy9zcmMvc2l0ZS9hcHQvcmVxdWlyZVVwcGVyQm91bmREZXBzLmFwdC52bQorKysgYi9lbmZvcmNlci1ydWxlcy9zcmMvc2l0ZS9hcHQvcmVxdWlyZVVwcGVyQm91bmREZXBzLmFwdC52bQpAQCAtMTA5LDYgKzEwOSwxMSBAQCBhbmQKICAgICAgICAgICAgICAgICAgICAgPGV4Y2x1ZGU+Y29tLmdvb2dsZS5ndWF2YTpndWF2YTwvZXhjbHVkZT4KICAgICAgICAgICAgICAgICAgIDwvZXhjbHVkZXM+CiAgICAgICAgICAgICAgICAgICAtLT4KKyAgICAgICAgICAgICAgICAgIDwhLS0gSWYgeW91IHdpc2ggdG8gaWdub3JlIGNlcnRhaW4gZGVwZW5kZW5jeSBzY29wZXM6CisgICAgICAgICAgICAgICAgICA8aWdub3JlRGVwZW5kZW5jeVNjb3Blcz4KKyAgICAgICAgICAgICAgICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgorICAgICAgICAgICAgICAgICAgPC9pZ25vcmVEZXBlbmRlbmN5U2NvcGVzPgorICAgICAgICAgICAgICAgICAgLS0+CiAgICAgICAgICAgICAgICAgPC9yZXF1aXJlVXBwZXJCb3VuZERlcHM+CiAgICAgICAgICAgICAgIDwvcnVsZXM+CiAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CmRpZmYgLS1naXQgYS9lbmZvcmNlci1ydWxlcy9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9lbmZvcmNlci9FbmZvcmNlclRlc3RVdGlscy5qYXZhIGIvZW5mb3JjZXItcnVsZXMvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvRW5mb3JjZXJUZXN0VXRpbHMuamF2YQppbmRleCBmMWJkMmMzLi4wM2JkODQ3IDEwMDY0NAotLS0gYS9lbmZvcmNlci1ydWxlcy9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9lbmZvcmNlci9FbmZvcmNlclRlc3RVdGlscy5qYXZhCisrKyBiL2VuZm9yY2VyLXJ1bGVzL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL2VuZm9yY2VyL0VuZm9yY2VyVGVzdFV0aWxzLmphdmEKQEAgLTEyMSw3ICsxMjEsMTkgQEAgcHVibGljIHN0YXRpYyBFbmZvcmNlclJ1bGVIZWxwZXIgZ2V0SGVscGVyKCBNYXZlblByb2plY3QgcHJvamVjdCApCiAgICAgICogQHBhcmFtIG1vY2tFeHByZXNzaW9uIHRoZSBtb2NrIGV4cHJlc3Npb24KICAgICAgKiBAcmV0dXJuIHRoZSBoZWxwZXIKICAgICAgKi8KLSAgICBwdWJsaWMgc3RhdGljIEVuZm9yY2VyUnVsZUhlbHBlciBnZXRIZWxwZXIoIE1hdmVuUHJvamVjdCBwcm9qZWN0LCBib29sZWFuIG1vY2tFeHByZXNzaW9uICkKKyAgICBwdWJsaWMgc3RhdGljIEVuZm9yY2VyUnVsZUhlbHBlciBnZXRIZWxwZXIoIE1hdmVuUHJvamVjdCBwcm9qZWN0LCBib29sZWFuIG1vY2tFeHByZXNzaW9uICkgeworICAgICAgICByZXR1cm4gZ2V0SGVscGVyKHByb2plY3QsIG1vY2tFeHByZXNzaW9uLCBudWxsKTsKKyAgICB9CisgICAgCisgICAgLyoqCisgICAgICogR2V0cyB0aGUgaGVscGVyLgorICAgICAqCisgICAgICogQHBhcmFtIHByb2plY3QgdGhlIHByb2plY3QKKyAgICAgKiBAcGFyYW0gbW9ja0V4cHJlc3Npb24gdGhlIG1vY2sgZXhwcmVzc2lvbgorICAgICAqIEBwYXJhbSBjb250YWluZXIgUGxleHVzIGNvbnRhaW5lciB0byBiZSB1c2VkLiBJZiB7QGNvZGUgbnVsbH0sIGEgZGVmYXVsdCBNYXZlbiBTZXNzaW9uIG9uZSB3aWxsIGJlIHVzZWQuCisgICAgICogQHJldHVybiB0aGUgaGVscGVyCisgICAgICovCisgICAgcHVibGljIHN0YXRpYyBFbmZvcmNlclJ1bGVIZWxwZXIgZ2V0SGVscGVyKCBNYXZlblByb2plY3QgcHJvamVjdCwgYm9vbGVhbiBtb2NrRXhwcmVzc2lvbiwgUGxleHVzQ29udGFpbmVyIGNvbnRhaW5lcikKICAgICB7CiAgICAgICAgIE1hdmVuU2Vzc2lvbiBzZXNzaW9uID0gZ2V0TWF2ZW5TZXNzaW9uKCk7CiAgICAgICAgIEV4cHJlc3Npb25FdmFsdWF0b3IgZXZhbDsKQEAgLTEzNiw3ICsxNDgsNyBAQCBwdWJsaWMgc3RhdGljIEVuZm9yY2VyUnVsZUhlbHBlciBnZXRIZWxwZXIoIE1hdmVuUHJvamVjdCBwcm9qZWN0LCBib29sZWFuIG1vY2tFeAogICAgICAgICAgICAgc2Vzc2lvbi5zZXRDdXJyZW50UHJvamVjdCggcHJvamVjdCApOwogICAgICAgICAgICAgZXZhbCA9IG5ldyBQbHVnaW5QYXJhbWV0ZXJFeHByZXNzaW9uRXZhbHVhdG9yKCBzZXNzaW9uLCBtb2NrRXhlY3V0aW9uICk7CiAgICAgICAgIH0KLSAgICAgICAgcmV0dXJuIG5ldyBEZWZhdWx0RW5mb3JjZW1lbnRSdWxlSGVscGVyKCBzZXNzaW9uLCBldmFsLCBuZXcgU3lzdGVtU3RyZWFtTG9nKCksIG51bGwgKTsKKyAgICAgICAgcmV0dXJuIG5ldyBEZWZhdWx0RW5mb3JjZW1lbnRSdWxlSGVscGVyKCBzZXNzaW9uLCBldmFsLCBuZXcgU3lzdGVtU3RyZWFtTG9nKCksIGNvbnRhaW5lciApOwogICAgIH0KIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvZW5mb3JjZXItcnVsZXMvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvVGVzdFJlcXVpcmVVcHBlckJvdW5kRGVwcy5qYXZhIGIvZW5mb3JjZXItcnVsZXMvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvVGVzdFJlcXVpcmVVcHBlckJvdW5kRGVwcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4YWE5MmUKLS0tIC9kZXYvbnVsbAorKysgYi9lbmZvcmNlci1ydWxlcy9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9lbmZvcmNlci9UZXN0UmVxdWlyZVVwcGVyQm91bmREZXBzLmphdmEKQEAgLTAsMCArMSwxODcgQEAKK3BhY2thZ2Ugb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zLmVuZm9yY2VyOworCitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOworaW1wb3J0IGphdmEudXRpbC5MaXN0OworaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QuQXJ0aWZhY3Q7CitpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5mYWN0b3J5LkFydGlmYWN0RmFjdG9yeTsKK2ltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0Lm1ldGFkYXRhLkFydGlmYWN0TWV0YWRhdGFTb3VyY2U7CitpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5yZXBvc2l0b3J5LkFydGlmYWN0UmVwb3NpdG9yeTsKK2ltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0LnJlc29sdmVyLkFydGlmYWN0Q29sbGVjdG9yOworaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QucmVzb2x2ZXIuZmlsdGVyLkFydGlmYWN0RmlsdGVyOworaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uZW5mb3JjZXIucnVsZS5hcGkuRW5mb3JjZXJSdWxlSGVscGVyOworaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLnRlc3RpbmcuQXJ0aWZhY3RTdHViRmFjdG9yeTsKK2ltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMuZW5mb3JjZXIudXRpbHMuVGVzdEVuZm9yY2VyUnVsZVV0aWxzOworaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4ucHJvamVjdC5NYXZlblByb2plY3Q7CitpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5zaGFyZWQuZGVwZW5kZW5jeS50cmVlLkRlcGVuZGVuY3lOb2RlOworaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uc2hhcmVkLmRlcGVuZGVuY3kudHJlZS5EZXBlbmRlbmN5VHJlZTsKK2ltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnNoYXJlZC5kZXBlbmRlbmN5LnRyZWUuRGVwZW5kZW5jeVRyZWVCdWlsZGVyOworaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uc2hhcmVkLmRlcGVuZGVuY3kudHJlZS5EZXBlbmRlbmN5VHJlZUJ1aWxkZXJFeGNlcHRpb247CitpbXBvcnQgb3JnLmNvZGVoYXVzLnBsZXh1cy5EZWZhdWx0UGxleHVzQ29udGFpbmVyOworaW1wb3J0IG9yZy5jb2RlaGF1cy5wbGV4dXMuUGxleHVzQ29udGFpbmVyOworaW1wb3J0IG9yZy5qdW5pdC5CZWZvcmU7CitpbXBvcnQgb3JnLmp1bml0LlRlc3Q7CisKKy8qCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisgKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisgKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisgKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworICogdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworLyoqCisgKiBUZXN0cyBmb3Ige0BsaW5rIFJlcXVpcmVVcHBlckJvdW5kRGVwc30uCisgKiBAYXV0aG9yIE9sZWcgTmVuYXNoZXYKKyAqLworcHVibGljIGNsYXNzIFRlc3RSZXF1aXJlVXBwZXJCb3VuZERlcHMgeworICAgIAorICAgIHByaXZhdGUgTWF2ZW5Qcm9qZWN0IHByb2plY3Q7CisKKyAgICBwcml2YXRlIEVuZm9yY2VyUnVsZUhlbHBlciBoZWxwZXI7CisKKyAgICBwcml2YXRlIEFydGlmYWN0U3R1YkZhY3RvcnkgZmFjdG9yeTsKKworICAgIHByaXZhdGUgUmVxdWlyZVVwcGVyQm91bmREZXBzIHJ1bGU7CisgICAgcHJpdmF0ZSBNb2NrRGVwZW5kZW5jeVRyZWVCdWlsZGVyIGRlcGVuZGVuY3lUcmVlOworICAgIAorICAgIEFydGlmYWN0IGxpYnJhcnkxXzEwLCBsaWJyYXJ5MV8yMCwgbGlicmFyeTJfMTA7CisgICAgCisgICAgQEJlZm9yZQorICAgIHB1YmxpYyB2b2lkIGJlZm9yZSgpIHRocm93cyBFeGNlcHRpb24KKyAgICB7CisgICAgICAgIFBsZXh1c0NvbnRhaW5lciBjID0gbmV3IERlZmF1bHRQbGV4dXNDb250YWluZXIoKTsKKyAgICAgICAgZGVwZW5kZW5jeVRyZWUgPSBuZXcgTW9ja0RlcGVuZGVuY3lUcmVlQnVpbGRlcigpOworICAgICAgICBmYWN0b3J5ID0gbmV3IEFydGlmYWN0U3R1YkZhY3RvcnkoKTsKKyAgICAgICAgCisgICAgICAgIHByb2plY3QgPSBuZXcgTW9ja1Byb2plY3QoKTsKKyAgICAgICAgcHJvamVjdC5zZXRBcnRpZmFjdChmYWN0b3J5LmNyZWF0ZUFydGlmYWN0KCJteSIsICJwcm9qZWN0IiwgIjEuMCIpKTsKKyAgICAgICAgbGlicmFyeTFfMTAgPSBmYWN0b3J5LmNyZWF0ZUFydGlmYWN0KCJteSIsICJsaWJyYXJ5MSIsICIxLjAiKTsKKyAgICAgICAgbGlicmFyeTFfMjAgPSBmYWN0b3J5LmNyZWF0ZUFydGlmYWN0KCJteSIsICJsaWJyYXJ5MSIsICIyLjAiKTsKKyAgICAgICAgbGlicmFyeTJfMTAgPSBmYWN0b3J5LmNyZWF0ZUFydGlmYWN0KCJteSIsICJsaWJyYXJ5MiIsICIxLjAiKTsKKyAgICAgICAgCisgICAgICAgIGhlbHBlciA9IEVuZm9yY2VyVGVzdFV0aWxzLmdldEhlbHBlcihwcm9qZWN0LCBmYWxzZSwgYyk7CisgICAgICAgIGhlbHBlci5nZXRDb250YWluZXIoKS5hZGRDb21wb25lbnQoZGVwZW5kZW5jeVRyZWUsIERlcGVuZGVuY3lUcmVlQnVpbGRlci5jbGFzcy5nZXROYW1lKCkpOworICAgICAgICAKKyAgICAgICAgcnVsZSA9IG5ldyBSZXF1aXJlVXBwZXJCb3VuZERlcHMoKTsgIAorICAgIH0KKyAgICAKKyAgICBAVGVzdAorICAgIHB1YmxpYyB2b2lkIHRlc3RTaG91bGRQYXNzRm9yU2FtZURlcGVuZGVuY2llcygpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBkZXBlbmRlbmN5VHJlZS5hZGREZXBlbmRlbmN5KGxpYnJhcnkxXzEwKTsKKyAgICAgICAgRGVwZW5kZW5jeU5vZGUgbiA9IG5ldyBEZXBlbmRlbmN5Tm9kZShsaWJyYXJ5Ml8xMCk7CisgICAgICAgIG4uYWRkQ2hpbGQobmV3IERlcGVuZGVuY3lOb2RlKGxpYnJhcnkxXzEwKSk7CisgICAgICAgIGRlcGVuZGVuY3lUcmVlLmFkZERlcGVuZGVuY3kobik7CisgICAgICAgICAgICAgICAgCisgICAgICAgIFRlc3RFbmZvcmNlclJ1bGVVdGlscy5leGVjdXRlKHJ1bGUsIGhlbHBlciwgZmFsc2UpOworICAgIH0KKyAgICAKKyAgICBAVGVzdAorICAgIHB1YmxpYyB2b2lkIHRlc3RTaG91bGRGYWlsRm9yTmV3ZXJEZXBlbmRlbmNpZXMoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgZGVwZW5kZW5jeVRyZWUuYWRkRGVwZW5kZW5jeShsaWJyYXJ5MV8xMCk7CisgICAgICAgIERlcGVuZGVuY3lOb2RlIG4gPSBuZXcgRGVwZW5kZW5jeU5vZGUobGlicmFyeTJfMTApOworICAgICAgICBuLmFkZENoaWxkKG5ldyBEZXBlbmRlbmN5Tm9kZShsaWJyYXJ5MV8yMCkpOworICAgICAgICBkZXBlbmRlbmN5VHJlZS5hZGREZXBlbmRlbmN5KG4pOworICAgICAgICAgICAgICAgIAorICAgICAgICBUZXN0RW5mb3JjZXJSdWxlVXRpbHMuZXhlY3V0ZShydWxlLCBoZWxwZXIsIHRydWUpOworICAgIH0KKyAgICAKKyAgICBAVGVzdAorICAgIHB1YmxpYyB2b2lkIHRlc3RTaG91bGRQYXNzRm9yT2xkZXJEZXBlbmRlbmNpZXMoKSB0aHJvd3MgRXhjZXB0aW9uIHsKKyAgICAgICAgZGVwZW5kZW5jeVRyZWUuYWRkRGVwZW5kZW5jeShsaWJyYXJ5MV8yMCk7CisgICAgICAgIERlcGVuZGVuY3lOb2RlIG4gPSBuZXcgRGVwZW5kZW5jeU5vZGUobGlicmFyeTJfMTApOworICAgICAgICBuLmFkZENoaWxkKG5ldyBEZXBlbmRlbmN5Tm9kZShsaWJyYXJ5MV8xMCkpOworICAgICAgICBkZXBlbmRlbmN5VHJlZS5hZGREZXBlbmRlbmN5KG4pOworICAgICAgICAgICAgICAgIAorICAgICAgICBUZXN0RW5mb3JjZXJSdWxlVXRpbHMuZXhlY3V0ZShydWxlLCBoZWxwZXIsIGZhbHNlKTsKKyAgICB9CisgICAgCisgICAgLy8gTUVORk9SQ0VSLTI3MworICAgIEBUZXN0CisgICAgcHVibGljIHZvaWQgdGVzdFNob3VsZFBhc3NGb3JPbGRlckRlcGVuZGVuY3lJZkV4Y2x1ZGVkKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGRlcGVuZGVuY3lUcmVlLmFkZERlcGVuZGVuY3kobGlicmFyeTFfMTApOworICAgICAgICBEZXBlbmRlbmN5Tm9kZSBuID0gbmV3IERlcGVuZGVuY3lOb2RlKGxpYnJhcnkyXzEwKTsKKyAgICAgICAgbi5hZGRDaGlsZChuZXcgRGVwZW5kZW5jeU5vZGUobGlicmFyeTFfMjApKTsKKyAgICAgICAgZGVwZW5kZW5jeVRyZWUuYWRkRGVwZW5kZW5jeShuKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgcnVsZS5zZXRFeGNsdWRlcyhBcnJheXMuYXNMaXN0KCJteTpsaWJyYXJ5MSIpKTsKKyAgICAgICAgVGVzdEVuZm9yY2VyUnVsZVV0aWxzLmV4ZWN1dGUocnVsZSwgaGVscGVyLCBmYWxzZSk7CisgICAgfQorICAgIAorICAgIC8vIE1FTkZPUkNFUi0yNzYKKyAgICBAVGVzdAorICAgIHB1YmxpYyB2b2lkIHRlc3RTaG91bGRQYXNzSWZUZXN0QXJ0aWZhY3RzQXJlSWdub3JlZCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBkZXBlbmRlbmN5VHJlZS5hZGREZXBlbmRlbmN5KGxpYnJhcnkxXzEwKTsKKyAgICAgICAgCisgICAgICAgIGxpYnJhcnkyXzEwLnNldFNjb3BlKCJ0ZXN0Iik7CisgICAgICAgIERlcGVuZGVuY3lOb2RlIG4gPSBuZXcgRGVwZW5kZW5jeU5vZGUobGlicmFyeTJfMTApOworICAgICAgICBuLmFkZENoaWxkKG5ldyBEZXBlbmRlbmN5Tm9kZShsaWJyYXJ5MV8yMCkpOworICAgICAgICBkZXBlbmRlbmN5VHJlZS5hZGREZXBlbmRlbmN5KG4pOworICAgICAgICAgICAgICAgIAorICAgICAgICBydWxlLnNldElnbm9yZURlcGVuZGVuY3lTY29wZXMoQXJyYXlzLmFzTGlzdCgidGVzdCIpKTsKKyAgICAgICAgVGVzdEVuZm9yY2VyUnVsZVV0aWxzLmV4ZWN1dGUocnVsZSwgaGVscGVyLCBmYWxzZSk7CisgICAgfQorICAgIAorICAgIC8vIE1FTkZPUkNFUi0yNzYKKyAgICBAVGVzdAorICAgIHB1YmxpYyB2b2lkIHRlc3RTaG91bGRGYWlsSWZXcm9uZ1Njb3BlSXNJZ25vcmVkKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIHRlc3RTaG91bGRQYXNzSWZUZXN0QXJ0aWZhY3RzQXJlSWdub3JlZCgpOyAgIAorICAgICAgICBydWxlLnNldElnbm9yZURlcGVuZGVuY3lTY29wZXMoQXJyYXlzLmFzTGlzdCgicHJvdmlkZWQiKSk7CisgICAgICAgIFRlc3RFbmZvcmNlclJ1bGVVdGlscy5leGVjdXRlKHJ1bGUsIGhlbHBlciwgdHJ1ZSk7CisgICAgfQorICAgIAorICAgIC8vIFRPRE86IG1ha2UgaXQgYSBnZW5lcmljIGNsYXNzCisgICAgcHJpdmF0ZSBzdGF0aWMgZmluYWwgY2xhc3MgTW9ja0RlcGVuZGVuY3lUcmVlQnVpbGRlciBpbXBsZW1lbnRzIERlcGVuZGVuY3lUcmVlQnVpbGRlciB7CisKKyAgICAgICAgTGlzdDxEZXBlbmRlbmN5Tm9kZT4gZGVwZW5kZW5jaWVzID0gbmV3IEFycmF5TGlzdDxEZXBlbmRlbmN5Tm9kZT4oKTsgICAgCisgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIGFkZERlcGVuZGVuY3koRGVwZW5kZW5jeU5vZGUgbm9kZSkgeworICAgICAgICAgICAgZGVwZW5kZW5jaWVzLmFkZChub2RlKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgcHVibGljIHZvaWQgYWRkRGVwZW5kZW5jeShBcnRpZmFjdCBhcnRpZmFjdCkgeworICAgICAgICAgICAgZGVwZW5kZW5jaWVzLmFkZChuZXcgRGVwZW5kZW5jeU5vZGUoYXJ0aWZhY3QpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyBEZXBlbmRlbmN5Tm9kZSBidWlsZERlcGVuZGVuY3lUcmVlKE1hdmVuUHJvamVjdCBwcm9qZWN0LCBBcnRpZmFjdFJlcG9zaXRvcnkgcmVwb3NpdG9yeSwgCisgICAgICAgICAgICAgICAgQXJ0aWZhY3RGYWN0b3J5IGZhY3RvcnksIEFydGlmYWN0TWV0YWRhdGFTb3VyY2UgbWV0YWRhdGFTb3VyY2UsIEFydGlmYWN0RmlsdGVyIGZpbHRlciwgCisgICAgICAgICAgICAgICAgQXJ0aWZhY3RDb2xsZWN0b3IgY29sbGVjdG9yKSB0aHJvd3MgRGVwZW5kZW5jeVRyZWVCdWlsZGVyRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIERlcGVuZGVuY3lOb2RlIHJvb3QgPSBuZXcgRGVwZW5kZW5jeU5vZGUocHJvamVjdC5nZXRBcnRpZmFjdCgpKTsKKyAgICAgICAgICAgIGZvciAoRGVwZW5kZW5jeU5vZGUgY2hpbGQgOiBkZXBlbmRlbmNpZXMpIHsKKyAgICAgICAgICAgICAgICByb290LmFkZENoaWxkKGNoaWxkKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiByb290OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIERlcGVuZGVuY3lUcmVlIGJ1aWxkRGVwZW5kZW5jeVRyZWUoTWF2ZW5Qcm9qZWN0IHByb2plY3QsIEFydGlmYWN0UmVwb3NpdG9yeSByZXBvc2l0b3J5LCAKKyAgICAgICAgICAgICAgICBBcnRpZmFjdEZhY3RvcnkgZmFjdG9yeSwgQXJ0aWZhY3RNZXRhZGF0YVNvdXJjZSBtZXRhZGF0YVNvdXJjZSwgCisgICAgICAgICAgICAgICAgQXJ0aWZhY3RDb2xsZWN0b3IgY29sbGVjdG9yKSB0aHJvd3MgRGVwZW5kZW5jeVRyZWVCdWlsZGVyRXhjZXB0aW9uIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBVbnN1cHBvcnRlZE9wZXJhdGlvbkV4Y2VwdGlvbigiTm90IHN1cHBvcnRlZCB5ZXQuIik7CisgICAgICAgIH0KKworCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgRGVwZW5kZW5jeU5vZGUgYnVpbGREZXBlbmRlbmN5VHJlZShNYXZlblByb2plY3QgcHJvamVjdCkgdGhyb3dzIERlcGVuZGVuY3lUcmVlQnVpbGRlckV4Y2VwdGlvbiB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBzdXBwb3J0ZWQgeWV0LiIpOworICAgICAgICB9CisKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyBEZXBlbmRlbmN5Tm9kZSBidWlsZERlcGVuZGVuY3lUcmVlKE1hdmVuUHJvamVjdCBhcmcwLCBBcnRpZmFjdFJlcG9zaXRvcnkgYXJnMSwgQXJ0aWZhY3RGaWx0ZXIgYXJnMikgdGhyb3dzIERlcGVuZGVuY3lUcmVlQnVpbGRlckV4Y2VwdGlvbiB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBzdXBwb3J0ZWQgeWV0LiIpOworICAgICAgICB9CisgICAgICAgIAorICAgIH0KK30KZGlmZiAtLWdpdCBhL21hdmVuLWVuZm9yY2VyLXBsdWdpbi9zcmMvaXQvcHJvamVjdHMvcmVxdWlyZS11cHBlci1ib3VuZC10ZXN0LWRlcHNfZmFpbHVyZS9pbnZva2VyLnByb3BlcnRpZXMgYi9tYXZlbi1lbmZvcmNlci1wbHVnaW4vc3JjL2l0L3Byb2plY3RzL3JlcXVpcmUtdXBwZXItYm91bmQtdGVzdC1kZXBzX2ZhaWx1cmUvaW52b2tlci5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5OGFjNGMKLS0tIC9kZXYvbnVsbAorKysgYi9tYXZlbi1lbmZvcmNlci1wbHVnaW4vc3JjL2l0L3Byb2plY3RzL3JlcXVpcmUtdXBwZXItYm91bmQtdGVzdC1kZXBzX2ZhaWx1cmUvaW52b2tlci5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMTggQEAKKyMgTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorIyBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyMgcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorIyB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyMgd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyMgc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyMgIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisjIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorIyBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisjIHVuZGVyIHRoZSBMaWNlbnNlLgorCitpbnZva2VyLmJ1aWxkUmVzdWx0PWZhaWx1cmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9tYXZlbi1lbmZvcmNlci1wbHVnaW4vc3JjL2l0L3Byb2plY3RzL3JlcXVpcmUtdXBwZXItYm91bmQtdGVzdC1kZXBzX2ZhaWx1cmUvbW9kdWxlL3BvbS54bWwgYi9tYXZlbi1lbmZvcmNlci1wbHVnaW4vc3JjL2l0L3Byb2plY3RzL3JlcXVpcmUtdXBwZXItYm91bmQtdGVzdC1kZXBzX2ZhaWx1cmUvbW9kdWxlL3BvbS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmQyYzFiYgotLS0gL2Rldi9udWxsCisrKyBiL21hdmVuLWVuZm9yY2VyLXBsdWdpbi9zcmMvaXQvcHJvamVjdHMvcmVxdWlyZS11cHBlci1ib3VuZC10ZXN0LWRlcHNfZmFpbHVyZS9tb2R1bGUvcG9tLnhtbApAQCAtMCwwICsxLDMwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLQorICAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKKyAgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyAgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKKyAgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisgICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAgKgorICAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAqCisgICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorICAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisgICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisgICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworICAqIHVuZGVyIHRoZSBMaWNlbnNlLiAKKyAgKgorLS0+Cis8cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy94c2QvbWF2ZW4tNC4wLjAueHNkIj4KKyAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorICA8cGFyZW50PgorICAgIDxncm91cElkPnRlc3Q8L2dyb3VwSWQ+CisgICAgPGFydGlmYWN0SWQ+VGVzdFBhcmVudDwvYXJ0aWZhY3RJZD4KKyAgICA8dmVyc2lvbj4xLjAtU05BUFNIT1Q8L3ZlcnNpb24+CisgIDwvcGFyZW50PgorICA8YXJ0aWZhY3RJZD5UZXN0TW9kdWxlPC9hcnRpZmFjdElkPgorICA8dmVyc2lvbj4xLjEtU05BUFNIT1Q8L3ZlcnNpb24+Cis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9tYXZlbi1lbmZvcmNlci1wbHVnaW4vc3JjL2l0L3Byb2plY3RzL3JlcXVpcmUtdXBwZXItYm91bmQtdGVzdC1kZXBzX2ZhaWx1cmUvcG9tLnhtbCBiL21hdmVuLWVuZm9yY2VyLXBsdWdpbi9zcmMvaXQvcHJvamVjdHMvcmVxdWlyZS11cHBlci1ib3VuZC10ZXN0LWRlcHNfZmFpbHVyZS9wb20ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMwNzk4N2EKLS0tIC9kZXYvbnVsbAorKysgYi9tYXZlbi1lbmZvcmNlci1wbHVnaW4vc3JjL2l0L3Byb2plY3RzL3JlcXVpcmUtdXBwZXItYm91bmQtdGVzdC1kZXBzX2ZhaWx1cmUvcG9tLnhtbApAQCAtMCwwICsxLDYzIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLQorICAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKKyAgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyAgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKKyAgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisgICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAgKgorICAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICAqCisgICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorICAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCisgICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisgICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucworICAqIHVuZGVyIHRoZSBMaWNlbnNlLiAKKyAgKgorLS0+Cis8cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy94c2QvbWF2ZW4tNC4wLjAueHNkIj4KKyAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMuZW5mb3JjZXIuaXRzPC9ncm91cElkPgorICA8YXJ0aWZhY3RJZD5tZW5mb3JjZXIyNzYvYXJ0aWZhY3RJZD4KKyAgPHZlcnNpb24+MS4wLVNOQVBTSE9UPC92ZXJzaW9uPgorICA8cGFja2FnaW5nPmphcjwvcGFja2FnaW5nPgorICA8ZGVwZW5kZW5jaWVzPgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zLmVuZm9yY2VyLml0czwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPm1lbmZvcmNlcjEyOF9hcGk8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4xLjQuMDwvdmVyc2lvbj4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMuZW5mb3JjZXIuaXRzPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+bWVuZm9yY2VyMTI4X2NsYXNzaWM8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4wLjkuOTwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICAgIDwhLS0gRGVwZW5kcyBvbiBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMuZW5mb3JjZXIuaXRzOm1lbmZvcmNlcjEyOF9hcGk6MS41LjAgLS0+CisgICAgPC9kZXBlbmRlbmN5PgorICA8L2RlcGVuZGVuY2llcz4KKyAgPGJ1aWxkPgorICAgIDxwbHVnaW5zPgorICAgICAgPHBsdWdpbj4KKyAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1lbmZvcmNlci1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgIDx2ZXJzaW9uPkBwcm9qZWN0LnZlcnNpb25APC92ZXJzaW9uPgorICAgICAgICA8ZXhlY3V0aW9ucz4KKyAgICAgICAgICA8ZXhlY3V0aW9uPgorICAgICAgICAgICAgPGlkPmVuZm9yY2U8L2lkPgorICAgICAgICAgICAgPGNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICAgIDxydWxlcz4KKyAgICAgICAgICAgICAgICA8UmVxdWlyZVVwcGVyQm91bmREZXBzLz4KKyAgICAgICAgICAgICAgPC9ydWxlcz4KKyAgICAgICAgICAgIDwvY29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgIDxnb2Fscz4KKyAgICAgICAgICAgICAgPGdvYWw+ZW5mb3JjZTwvZ29hbD4KKyAgICAgICAgICAgIDwvZ29hbHM+CisgICAgICAgICAgPC9leGVjdXRpb24+CisgICAgICAgIDwvZXhlY3V0aW9ucz4KKyAgICAgIDwvcGx1Z2luPgorICAgIDwvcGx1Z2lucz4KKyAgPC9idWlsZD4KKzwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL21hdmVuLWVuZm9yY2VyLXBsdWdpbi9zcmMvaXQvcHJvamVjdHMvcmVxdWlyZS11cHBlci1ib3VuZC10ZXN0LWRlcHNfZmFpbHVyZS92ZXJpZnkuZ3Jvb3Z5IGIvbWF2ZW4tZW5mb3JjZXItcGx1Z2luL3NyYy9pdC9wcm9qZWN0cy9yZXF1aXJlLXVwcGVyLWJvdW5kLXRlc3QtZGVwc19mYWlsdXJlL3ZlcmlmeS5ncm9vdnkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzhiYjY0OAotLS0gL2Rldi9udWxsCisrKyBiL21hdmVuLWVuZm9yY2VyLXBsdWdpbi9zcmMvaXQvcHJvamVjdHMvcmVxdWlyZS11cHBlci1ib3VuZC10ZXN0LWRlcHNfZmFpbHVyZS92ZXJpZnkuZ3Jvb3Z5CkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisgKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCisgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCisgKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgKgorICogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCitkZWYgTFMgPSBTeXN0ZW0uZ2V0UHJvcGVydHkoICJsaW5lLnNlcGFyYXRvciIgKQorRmlsZSBidWlsZExvZyA9IG5ldyBGaWxlKCBiYXNlZGlyLCAnYnVpbGQubG9nJyApCisKK2Fzc2VydCBidWlsZExvZy50ZXh0LmNvbnRhaW5zKCAnUnVsZSAwOiBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMuZW5mb3JjZXIuUmVxdWlyZVVwcGVyQm91bmREZXBzIGZhaWxlZCB3aXRoIG1lc3NhZ2U6JyApCitkZWYgbWVzc2FnZSA9IAorJ1JlcXVpcmUgdXBwZXIgYm91bmQgZGVwZW5kZW5jaWVzIGVycm9yIGZvciBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMuZW5mb3JjZXIuaXRzOm1lbmZvcmNlcjEyOF9hcGk6MS40LjAgcGF0aHMgdG8gZGVwZW5kZW5jeSBhcmU6JytMUysKKycrLW9yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy5lbmZvcmNlci5pdHM6bWVuZm9yY2VyMTI4OjEuMC1TTkFQU0hPVCcrTFMrCisnICArLW9yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy5lbmZvcmNlci5pdHM6bWVuZm9yY2VyMTI4X2FwaToxLjQuMCcrTFMrCisnYW5kJytMUysKKycrLW9yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy5lbmZvcmNlci5pdHM6bWVuZm9yY2VyMTI4OjEuMC1TTkFQU0hPVCcrTFMrCisnICArLW9yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy5lbmZvcmNlci5pdHM6bWVuZm9yY2VyMTI4X2NsYXNzaWM6MC45LjknK0xTKworJyAgICArLW9yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy5lbmZvcmNlci5pdHM6bWVuZm9yY2VyMTI4X2FwaToxLjUuMCcrTFMKK2Fzc2VydCBidWlsZExvZy50ZXh0LmNvbnRhaW5zKCBtZXNzYWdlICkKKwpkaWZmIC0tZ2l0IGEvbWF2ZW4tZW5mb3JjZXItcGx1Z2luL3NyYy9pdC9wcm9qZWN0cy9yZXF1aXJlLXVwcGVyLWJvdW5kLXRlc3QtZGVwc19pZ25vcmVkL21vZHVsZS9wb20ueG1sIGIvbWF2ZW4tZW5mb3JjZXItcGx1Z2luL3NyYy9pdC9wcm9qZWN0cy9yZXF1aXJlLXVwcGVyLWJvdW5kLXRlc3QtZGVwc19pZ25vcmVkL21vZHVsZS9wb20ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZkMmMxYmIKLS0tIC9kZXYvbnVsbAorKysgYi9tYXZlbi1lbmZvcmNlci1wbHVnaW4vc3JjL2l0L3Byb2plY3RzL3JlcXVpcmUtdXBwZXItYm91bmQtdGVzdC1kZXBzX2lnbm9yZWQvbW9kdWxlL3BvbS54bWwKQEAgLTAsMCArMSwzMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0KKyAgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisgICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAgKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisgICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyAgKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgICoKKyAgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAgKgorICAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyAgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorICAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorICAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAgKiB1bmRlciB0aGUgTGljZW5zZS4gCisgICoKKy0tPgorPHByb2plY3QgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCI+CisgIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KKyAgPHBhcmVudD4KKyAgICA8Z3JvdXBJZD50ZXN0PC9ncm91cElkPgorICAgIDxhcnRpZmFjdElkPlRlc3RQYXJlbnQ8L2FydGlmYWN0SWQ+CisgICAgPHZlcnNpb24+MS4wLVNOQVBTSE9UPC92ZXJzaW9uPgorICA8L3BhcmVudD4KKyAgPGFydGlmYWN0SWQ+VGVzdE1vZHVsZTwvYXJ0aWZhY3RJZD4KKyAgPHZlcnNpb24+MS4xLVNOQVBTSE9UPC92ZXJzaW9uPgorPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvbWF2ZW4tZW5mb3JjZXItcGx1Z2luL3NyYy9pdC9wcm9qZWN0cy9yZXF1aXJlLXVwcGVyLWJvdW5kLXRlc3QtZGVwc19pZ25vcmVkL3BvbS54bWwgYi9tYXZlbi1lbmZvcmNlci1wbHVnaW4vc3JjL2l0L3Byb2plY3RzL3JlcXVpcmUtdXBwZXItYm91bmQtdGVzdC1kZXBzX2lnbm9yZWQvcG9tLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYzBhYTc5Ci0tLSAvZGV2L251bGwKKysrIGIvbWF2ZW4tZW5mb3JjZXItcGx1Z2luL3NyYy9pdC9wcm9qZWN0cy9yZXF1aXJlLXVwcGVyLWJvdW5kLXRlc3QtZGVwc19pZ25vcmVkL3BvbS54bWwKQEAgLTAsMCArMSw2NyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhLS0KKyAgKiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisgICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAgKiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisgICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyAgKiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisgICoKKyAgKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAgKgorICAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKKyAgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorICAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQorICAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAgKiB1bmRlciB0aGUgTGljZW5zZS4gCisgICoKKy0tPgorPHByb2plY3QgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCI+CisgIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KKyAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zLmVuZm9yY2VyLml0czwvZ3JvdXBJZD4KKyAgPGFydGlmYWN0SWQ+bWVuZm9yY2VyMjc2PC9hcnRpZmFjdElkPgorICA8dmVyc2lvbj4xLjAtU05BUFNIT1Q8L3ZlcnNpb24+CisgIDxwYWNrYWdpbmc+amFyPC9wYWNrYWdpbmc+CisgIDxkZXBlbmRlbmNpZXM+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMuZW5mb3JjZXIuaXRzPC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+bWVuZm9yY2VyMTI4X2FwaTwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjEuNC4wPC92ZXJzaW9uPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy5lbmZvcmNlci5pdHM8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5tZW5mb3JjZXIxMjhfY2xhc3NpYzwvYXJ0aWZhY3RJZD4KKyAgICAgIDx2ZXJzaW9uPjAuOS45PC92ZXJzaW9uPgorICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgorICAgICAgPCEtLSBEZXBlbmRzIG9uIG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy5lbmZvcmNlci5pdHM6bWVuZm9yY2VyMTI4X2FwaToxLjUuMCAtLT4KKyAgICA8L2RlcGVuZGVuY3k+CisgIDwvZGVwZW5kZW5jaWVzPgorICA8YnVpbGQ+CisgICAgPHBsdWdpbnM+CisgICAgICA8cGx1Z2luPgorICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CisgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWVuZm9yY2VyLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgPHZlcnNpb24+QHByb2plY3QudmVyc2lvbkA8L3ZlcnNpb24+CisgICAgICAgIDxleGVjdXRpb25zPgorICAgICAgICAgIDxleGVjdXRpb24+CisgICAgICAgICAgICA8aWQ+ZW5mb3JjZTwvaWQ+CisgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgPHJ1bGVzPgorICAgICAgICAgICAgICAgIDxyZXF1aXJlVXBwZXJCb3VuZERlcHM+CisgICAgICAgICAgICAgICAgICA8aWdub3JlRGVwZW5kZW5jeVNjb3Blcz4KKyAgICAgICAgICAgICAgICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgorICAgICAgICAgICAgICAgICAgPC9pZ25vcmVEZXBlbmRlbmN5U2NvcGVzPgorICAgICAgICAgICAgICAgIDwvcmVxdWlyZVVwcGVyQm91bmREZXBzPgorICAgICAgICAgICAgICA8L3J1bGVzPgorICAgICAgICAgICAgPC9jb25maWd1cmF0aW9uPgorICAgICAgICAgICAgPGdvYWxzPgorICAgICAgICAgICAgICA8Z29hbD5lbmZvcmNlPC9nb2FsPgorICAgICAgICAgICAgPC9nb2Fscz4KKyAgICAgICAgICA8L2V4ZWN1dGlvbj4KKyAgICAgICAgPC9leGVjdXRpb25zPgorICAgICAgPC9wbHVnaW4+CisgICAgPC9wbHVnaW5zPgorICA8L2J1aWxkPgorPC9wcm9qZWN0PgoKCiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVGhpcyBpcyBhbiBhdXRvbWF0ZWQgbWVzc2FnZSBmcm9tIHRoZSBBcGFjaGUgR2l0IFNlcnZpY2UuClRvIHJlc3BvbmQgdG8gdGhlIG1lc3NhZ2UsIHBsZWFzZSBsb2cgb24gR2l0SHViIGFuZCB1c2UgdGhlClVSTCBhYm92ZSB0byBnbyB0byB0aGUgc3BlY2lmaWMgY29tbWVudC4KIApGb3IgcXVlcmllcyBhYm91dCB0aGlzIHNlcnZpY2UsIHBsZWFzZSBjb250YWN0IEluZnJhc3RydWN0dXJlIGF0Ogp1c2Vyc0BpbmZyYS5hcGFjaGUub3JnCgoKV2l0aCByZWdhcmRzLApBcGFjaGUgR2l0IFNlcnZpY2VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzMzctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE9jdCAyNiAwNzo0MDoxMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzMzctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMUI2MEYxN0UzMwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDI2IE9jdCAyMDE3IDA3OjQwOjExICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTczMTQgaW52b2tlZCBieSB1aWQgNTAwKTsgMjYgT2N0IDIwMTcgMDc6NDA6MDggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE2ODQ4IGludm9rZWQgYnkgdWlkIDUwMCk7IDI2IE9jdCAyMDE3IDA3OjQwOjA4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTYxMjkgaW52b2tlZCBieSB1aWQgOTkpOyAyNiBPY3QgMjAxNyAwNzo0MDowNyAtMDAwMApSZWNlaXZlZDogZnJvbSBlYzItNTItMjAyLTgwLTcwLmNvbXB1dGUtMS5hbWF6b25hd3MuY29tIChIRUxPIGdpdGJveC5hcGFjaGUub3JnKSAoNTIuMjAyLjgwLjcwKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDI2IE9jdCAyMDE3IDA3OjQwOjA3ICswMDAwCkZyb206IEdpdEJveCA8Z2l0QGFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBbR2l0SHViXSBhc2ZnaXQgY2xvc2VkIHB1bGwgcmVxdWVzdCAjMjg6IFtNRU5GT1JDRVItMjgxXSBhZGRlZCBJVCB0byBzaG93IHRoZSBpc3N1ZS4KTWVzc2FnZS1JRDogPDE1MDkwMDM2MDY2NC4xNjM5LjU4NjkxNzc1MjEzNDAyMTg0ODkuZ2l0Ym94QGdpdGJveC5hcGFjaGUub3JnPgoKYXNmZ2l0IGNsb3NlZCBwdWxsIHJlcXVlc3QgIzI4OiBbTUVORk9SQ0VSLTI4MV0gYWRkZWQgSVQgdG8gc2hvdyB0aGUgaXNzdWUuClVSTDogaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1lbmZvcmNlci9wdWxsLzI4CiAKIAogICAKClRoaXMgaXMgYSBQUiBtZXJnZWQgZnJvbSBhIGZvcmtlZCByZXBvc2l0b3J5LgpBcyBHaXRIdWIgaGlkZXMgdGhlIG9yaWdpbmFsIGRpZmYgb24gbWVyZ2UsIGl0IGlzIGRpc3BsYXllZCBiZWxvdyBmb3IKdGhlIHNha2Ugb2YgcHJvdmVuYW5jZToKCkFzIHRoaXMgaXMgYSBmb3JlaWduIHB1bGwgcmVxdWVzdCAoZnJvbSBhIGZvcmspLCB0aGUgZGlmZiBpcyBzdXBwbGllZApiZWxvdyAoYXMgaXQgd29uJ3Qgc2hvdyBvdGhlcndpc2UgZHVlIHRvIEdpdEh1YiBtYWdpYyk6CgpkaWZmIC0tZ2l0IGEvbWF2ZW4tZW5mb3JjZXItcGx1Z2luL3NyYy9pdC9wcm9qZWN0cy9yZXF1aXJlLXBsdWdpbi12ZXJzaW9ucy1tbS1jaS1mcmllbmRseS9pbnZva2VyLnByb3BlcnRpZXMgYi9tYXZlbi1lbmZvcmNlci1wbHVnaW4vc3JjL2l0L3Byb2plY3RzL3JlcXVpcmUtcGx1Z2luLXZlcnNpb25zLW1tLWNpLWZyaWVuZGx5L2ludm9rZXIucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDdkMmYxCi0tLSAvZGV2L251bGwKKysrIGIvbWF2ZW4tZW5mb3JjZXItcGx1Z2luL3NyYy9pdC9wcm9qZWN0cy9yZXF1aXJlLXBsdWdpbi12ZXJzaW9ucy1tbS1jaS1mcmllbmRseS9pbnZva2VyLnByb3BlcnRpZXMKQEAgLTAsMCArMSwxNyBAQAorIyBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCitpbnZva2VyLmdvYWxzID0gaW5zdGFsbCAtRHJldmlzaW9uPTAuMTAuMC1TTkFQU0hPVApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL21hdmVuLWVuZm9yY2VyLXBsdWdpbi9zcmMvaXQvcHJvamVjdHMvcmVxdWlyZS1wbHVnaW4tdmVyc2lvbnMtbW0tY2ktZnJpZW5kbHkvbWVuZm9yY2VyMjgxLW1vZHVsZS9wb20ueG1sIGIvbWF2ZW4tZW5mb3JjZXItcGx1Z2luL3NyYy9pdC9wcm9qZWN0cy9yZXF1aXJlLXBsdWdpbi12ZXJzaW9ucy1tbS1jaS1mcmllbmRseS9tZW5mb3JjZXIyODEtbW9kdWxlL3BvbS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTY4MDdhZgotLS0gL2Rldi9udWxsCisrKyBiL21hdmVuLWVuZm9yY2VyLXBsdWdpbi9zcmMvaXQvcHJvamVjdHMvcmVxdWlyZS1wbHVnaW4tdmVyc2lvbnMtbW0tY2ktZnJpZW5kbHkvbWVuZm9yY2VyMjgxLW1vZHVsZS9wb20ueG1sCkBAIC0wLDAgKzEsMzYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CisKKzwhLS0KK0xpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKK29yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KK3JlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKK3RvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKK3dpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCitzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCit1bmRlciB0aGUgTGljZW5zZS4KKy0tPgorCis8cHJvamVjdD4KKyAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorICA8cGFyZW50PgorICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4uaXRzLmVuZm9yY2VyPC9ncm91cElkPgorICAgIDxhcnRpZmFjdElkPm1lbmZvcmNlcjI4MS1wYXJlbnQ8L2FydGlmYWN0SWQ+CisgICAgPHZlcnNpb24+JHtyZXZpc2lvbn08L3ZlcnNpb24+CisgIDwvcGFyZW50PgorCisgIDxhcnRpZmFjdElkPm1lbmZvcmNlcjI4MS1tb2R1bGU8L2FydGlmYWN0SWQ+CisgIDxwYWNrYWdpbmc+cG9tPC9wYWNrYWdpbmc+CisKKyAgPGRlc2NyaXB0aW9uPgorICA8L2Rlc2NyaXB0aW9uPgorCis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9tYXZlbi1lbmZvcmNlci1wbHVnaW4vc3JjL2l0L3Byb2plY3RzL3JlcXVpcmUtcGx1Z2luLXZlcnNpb25zLW1tLWNpLWZyaWVuZGx5L3BvbS54bWwgYi9tYXZlbi1lbmZvcmNlci1wbHVnaW4vc3JjL2l0L3Byb2plY3RzL3JlcXVpcmUtcGx1Z2luLXZlcnNpb25zLW1tLWNpLWZyaWVuZGx5L3BvbS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTlkNjEzYgotLS0gL2Rldi9udWxsCisrKyBiL21hdmVuLWVuZm9yY2VyLXBsdWdpbi9zcmMvaXQvcHJvamVjdHMvcmVxdWlyZS1wbHVnaW4tdmVyc2lvbnMtbW0tY2ktZnJpZW5kbHkvcG9tLnhtbApAQCAtMCwwICsxLDExNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKworPCEtLQorTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCitkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQordG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQord2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCitVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCitzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCitLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKK3NwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKK3VuZGVyIHRoZSBMaWNlbnNlLgorLS0+CisKKzxwcm9qZWN0PgorICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CisKKyAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5pdHMuZW5mb3JjZXI8L2dyb3VwSWQ+CisgIDxhcnRpZmFjdElkPm1lbmZvcmNlcjI4MS1wYXJlbnQ8L2FydGlmYWN0SWQ+CisgIDx2ZXJzaW9uPiR7cmV2aXNpb259PC92ZXJzaW9uPgorICA8cGFja2FnaW5nPnBvbTwvcGFja2FnaW5nPgorCisgIDxkZXNjcmlwdGlvbj4KKyAgPC9kZXNjcmlwdGlvbj4KKyAgCisgIDxwcm9wZXJ0aWVzPgorICAgIDxyZXZpc2lvbj4wLjAuMS1TTkFQU0hPVDwvcmV2aXNpb24+CisgIDwvcHJvcGVydGllcz4KKworICA8YnVpbGQ+CisgICAgPHBsdWdpbk1hbmFnZW1lbnQ+CisgICAgICA8cGx1Z2lucz4KKyAgICAgICAgPHBsdWdpbj4KKyAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CisgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tY2xlYW4tcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgIDx2ZXJzaW9uPjIuNTwvdmVyc2lvbj4KKyAgICAgICAgPC9wbHVnaW4+CisgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXJlc291cmNlcy1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgPHZlcnNpb24+Mi42PC92ZXJzaW9uPgorICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgPHBsdWdpbj4KKyAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CisgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tY29tcGlsZXItcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgIDx2ZXJzaW9uPjIuNS4xPC92ZXJzaW9uPgorICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgPHBsdWdpbj4KKyAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CisgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tc3VyZWZpcmUtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICAgIDx2ZXJzaW9uPjIuMTIuNDwvdmVyc2lvbj4KKyAgICAgICAgPC9wbHVnaW4+CisgICAgICAgIDxwbHVnaW4+CisgICAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLWphci1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgPHZlcnNpb24+Mi40PC92ZXJzaW9uPgorICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgPHBsdWdpbj4KKyAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CisgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4taW5zdGFsbC1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgPHZlcnNpb24+Mi40PC92ZXJzaW9uPgorICAgICAgICA8L3BsdWdpbj4KKyAgICAgICAgPHBsdWdpbj4KKyAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CisgICAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tZGVwbG95LXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICA8dmVyc2lvbj4yLjc8L3ZlcnNpb24+CisgICAgICAgIDwvcGx1Z2luPgorICAgICAgICA8cGx1Z2luPgorICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KKyAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1zaXRlLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICA8dmVyc2lvbj4zLjI8L3ZlcnNpb24+CisgICAgICAgIDwvcGx1Z2luPgorICAgICAgICA8cGx1Z2luPgorICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KKyAgICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1lbmZvcmNlci1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgICAgPHZlcnNpb24+QHByb2plY3QudmVyc2lvbkA8L3ZlcnNpb24+CisgICAgICAgICAgPGV4ZWN1dGlvbnM+CisgICAgICAgICAgICA8ZXhlY3V0aW9uPgorICAgICAgICAgICAgICA8aWQ+dGVzdDwvaWQ+CisgICAgICAgICAgICAgIDxnb2Fscz4KKyAgICAgICAgICAgICAgICA8Z29hbD5lbmZvcmNlPC9nb2FsPgorICAgICAgICAgICAgICA8L2dvYWxzPgorICAgICAgICAgICAgICA8Y29uZmlndXJhdGlvbj4KKyAgICAgICAgICAgICAgICA8cnVsZXM+CisgICAgICAgICAgICAgICAgICA8cmVxdWlyZVBsdWdpblZlcnNpb25zPgorICAgICAgICAgICAgICAgICAgICA8YmFuU25hcHNob3RzPmZhbHNlPC9iYW5TbmFwc2hvdHM+CisgICAgICAgICAgICAgICAgICA8L3JlcXVpcmVQbHVnaW5WZXJzaW9ucz4KKyAgICAgICAgICAgICAgICA8L3J1bGVzPgorICAgICAgICAgICAgICA8L2NvbmZpZ3VyYXRpb24+CisgICAgICAgICAgICA8L2V4ZWN1dGlvbj4KKyAgICAgICAgICA8L2V4ZWN1dGlvbnM+CisgICAgICAgIDwvcGx1Z2luPgorICAgICAgPC9wbHVnaW5zPgorICAgIDwvcGx1Z2luTWFuYWdlbWVudD4KKworICAgIDxwbHVnaW5zPgorICAgICAgPHBsdWdpbj4KKyAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1lbmZvcmNlci1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgIDx2ZXJzaW9uPkBwcm9qZWN0LnZlcnNpb25APC92ZXJzaW9uPgorICAgICAgPC9wbHVnaW4+CisgICAgPC9wbHVnaW5zPgorICA8L2J1aWxkPgorICAKKyAgPG1vZHVsZXM+CisgICAgPG1vZHVsZT5tZW5mb3JjZXIyODEtbW9kdWxlPC9tb2R1bGU+CisgIDwvbW9kdWxlcz4KKzwvcHJvamVjdD4KCgogCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgaXMgYW4gYXV0b21hdGVkIG1lc3NhZ2UgZnJvbSB0aGUgQXBhY2hlIEdpdCBTZXJ2aWNlLgpUbyByZXNwb25kIHRvIHRoZSBtZXNzYWdlLCBwbGVhc2UgbG9nIG9uIEdpdEh1YiBhbmQgdXNlIHRoZQpVUkwgYWJvdmUgdG8gZ28gdG8gdGhlIHNwZWNpZmljIGNvbW1lbnQuCiAKRm9yIHF1ZXJpZXMgYWJvdXQgdGhpcyBzZXJ2aWNlLCBwbGVhc2UgY29udGFjdCBJbmZyYXN0cnVjdHVyZSBhdDoKdXNlcnNAaW5mcmEuYXBhY2hlLm9yZwoKCldpdGggcmVnYXJkcywKQXBhY2hlIEdpdCBTZXJ2aWNlcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MzM5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBPY3QgMjYgMDc6NDA6MTEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzM5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDFBQjUxMTdFMzIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAyNiBPY3QgMjAxNyAwNzo0MDoxMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE4MTA5IGludm9rZWQgYnkgdWlkIDUwMCk7IDI2IE9jdCAyMDE3IDA3OjQwOjA4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNzE5OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBPY3QgMjAxNyAwNzo0MDowOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE2MjI4IGludm9rZWQgYnkgdWlkIDk5KTsgMjYgT2N0IDIwMTcgMDc6NDA6MDcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZWMyLTUyLTIwMi04MC03MC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSAoSEVMTyBnaXRib3guYXBhY2hlLm9yZykgKDUyLjIwMi44MC43MCkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyNiBPY3QgMjAxNyAwNzo0MDowNyArMDAwMApGcm9tOiBHaXRCb3ggPGdpdEBhcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0dpdEh1Yl0gYXNmZ2l0IGNsb3NlZCBwdWxsIHJlcXVlc3QgIzI2OiBBZGQgVW5pdCB0ZXN0cyBmb3IgUmVxdWlyZVVwcGVyQm91bmREZXBzCk1lc3NhZ2UtSUQ6IDwxNTA5MDAzNjA2NzEuMTYzOC40Mjk4OTUyNjM3MDk0OTI4NTk4LmdpdGJveEBnaXRib3guYXBhY2hlLm9yZz4KCmFzZmdpdCBjbG9zZWQgcHVsbCByZXF1ZXN0ICMyNjogQWRkIFVuaXQgdGVzdHMgZm9yIFJlcXVpcmVVcHBlckJvdW5kRGVwcwpVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZW5mb3JjZXIvcHVsbC8yNgogCiAKICAgCgpUaGlzIGlzIGEgUFIgbWVyZ2VkIGZyb20gYSBmb3JrZWQgcmVwb3NpdG9yeS4KQXMgR2l0SHViIGhpZGVzIHRoZSBvcmlnaW5hbCBkaWZmIG9uIG1lcmdlLCBpdCBpcyBkaXNwbGF5ZWQgYmVsb3cgZm9yCnRoZSBzYWtlIG9mIHByb3ZlbmFuY2U6CgpBcyB0aGlzIGlzIGEgZm9yZWlnbiBwdWxsIHJlcXVlc3QgKGZyb20gYSBmb3JrKSwgdGhlIGRpZmYgaXMgc3VwcGxpZWQKYmVsb3cgKGFzIGl0IHdvbid0IHNob3cgb3RoZXJ3aXNlIGR1ZSB0byBHaXRIdWIgbWFnaWMpOgoKZGlmZiAtLWdpdCBhL2VuZm9yY2VyLXJ1bGVzL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL2VuZm9yY2VyL0VuZm9yY2VyVGVzdFV0aWxzLmphdmEgYi9lbmZvcmNlci1ydWxlcy9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9lbmZvcmNlci9FbmZvcmNlclRlc3RVdGlscy5qYXZhCmluZGV4IGYxYmQyYzMuLjAzYmQ4NDcgMTAwNjQ0Ci0tLSBhL2VuZm9yY2VyLXJ1bGVzL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL2VuZm9yY2VyL0VuZm9yY2VyVGVzdFV0aWxzLmphdmEKKysrIGIvZW5mb3JjZXItcnVsZXMvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvZW5mb3JjZXIvRW5mb3JjZXJUZXN0VXRpbHMuamF2YQpAQCAtMTIxLDcgKzEyMSwxOSBAQCBwdWJsaWMgc3RhdGljIEVuZm9yY2VyUnVsZUhlbHBlciBnZXRIZWxwZXIoIE1hdmVuUHJvamVjdCBwcm9qZWN0ICkKICAgICAgKiBAcGFyYW0gbW9ja0V4cHJlc3Npb24gdGhlIG1vY2sgZXhwcmVzc2lvbgogICAgICAqIEByZXR1cm4gdGhlIGhlbHBlcgogICAgICAqLwotICAgIHB1YmxpYyBzdGF0aWMgRW5mb3JjZXJSdWxlSGVscGVyIGdldEhlbHBlciggTWF2ZW5Qcm9qZWN0IHByb2plY3QsIGJvb2xlYW4gbW9ja0V4cHJlc3Npb24gKQorICAgIHB1YmxpYyBzdGF0aWMgRW5mb3JjZXJSdWxlSGVscGVyIGdldEhlbHBlciggTWF2ZW5Qcm9qZWN0IHByb2plY3QsIGJvb2xlYW4gbW9ja0V4cHJlc3Npb24gKSB7CisgICAgICAgIHJldHVybiBnZXRIZWxwZXIocHJvamVjdCwgbW9ja0V4cHJlc3Npb24sIG51bGwpOworICAgIH0KKyAgICAKKyAgICAvKioKKyAgICAgKiBHZXRzIHRoZSBoZWxwZXIuCisgICAgICoKKyAgICAgKiBAcGFyYW0gcHJvamVjdCB0aGUgcHJvamVjdAorICAgICAqIEBwYXJhbSBtb2NrRXhwcmVzc2lvbiB0aGUgbW9jayBleHByZXNzaW9uCisgICAgICogQHBhcmFtIGNvbnRhaW5lciBQbGV4dXMgY29udGFpbmVyIHRvIGJlIHVzZWQuIElmIHtAY29kZSBudWxsfSwgYSBkZWZhdWx0IE1hdmVuIFNlc3Npb24gb25lIHdpbGwgYmUgdXNlZC4KKyAgICAgKiBAcmV0dXJuIHRoZSBoZWxwZXIKKyAgICAgKi8KKyAgICBwdWJsaWMgc3RhdGljIEVuZm9yY2VyUnVsZUhlbHBlciBnZXRIZWxwZXIoIE1hdmVuUHJvamVjdCBwcm9qZWN0LCBib29sZWFuIG1vY2tFeHByZXNzaW9uLCBQbGV4dXNDb250YWluZXIgY29udGFpbmVyKQogICAgIHsKICAgICAgICAgTWF2ZW5TZXNzaW9uIHNlc3Npb24gPSBnZXRNYXZlblNlc3Npb24oKTsKICAgICAgICAgRXhwcmVzc2lvbkV2YWx1YXRvciBldmFsOwpAQCAtMTM2LDcgKzE0OCw3IEBAIHB1YmxpYyBzdGF0aWMgRW5mb3JjZXJSdWxlSGVscGVyIGdldEhlbHBlciggTWF2ZW5Qcm9qZWN0IHByb2plY3QsIGJvb2xlYW4gbW9ja0V4CiAgICAgICAgICAgICBzZXNzaW9uLnNldEN1cnJlbnRQcm9qZWN0KCBwcm9qZWN0ICk7CiAgICAgICAgICAgICBldmFsID0gbmV3IFBsdWdpblBhcmFtZXRlckV4cHJlc3Npb25FdmFsdWF0b3IoIHNlc3Npb24sIG1vY2tFeGVjdXRpb24gKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gbmV3IERlZmF1bHRFbmZvcmNlbWVudFJ1bGVIZWxwZXIoIHNlc3Npb24sIGV2YWwsIG5ldyBTeXN0ZW1TdHJlYW1Mb2coKSwgbnVsbCApOworICAgICAgICByZXR1cm4gbmV3IERlZmF1bHRFbmZvcmNlbWVudFJ1bGVIZWxwZXIoIHNlc3Npb24sIGV2YWwsIG5ldyBTeXN0ZW1TdHJlYW1Mb2coKSwgY29udGFpbmVyICk7CiAgICAgfQogCiAgICAgLyoqCmRpZmYgLS1naXQgYS9lbmZvcmNlci1ydWxlcy9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9lbmZvcmNlci9UZXN0UmVxdWlyZVVwcGVyQm91bmREZXBzLmphdmEgYi9lbmZvcmNlci1ydWxlcy9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9lbmZvcmNlci9UZXN0UmVxdWlyZVVwcGVyQm91bmREZXBzLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTBkMjI2NQotLS0gL2Rldi9udWxsCisrKyBiL2VuZm9yY2VyLXJ1bGVzL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL2VuZm9yY2VyL1Rlc3RSZXF1aXJlVXBwZXJCb3VuZERlcHMuamF2YQpAQCAtMCwwICsxLDE2NCBAQAorcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMuZW5mb3JjZXI7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5BcnJheXM7CitpbXBvcnQgamF2YS51dGlsLkxpc3Q7CitpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5BcnRpZmFjdDsKK2ltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0LmZhY3RvcnkuQXJ0aWZhY3RGYWN0b3J5OworaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QubWV0YWRhdGEuQXJ0aWZhY3RNZXRhZGF0YVNvdXJjZTsKK2ltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0LnJlcG9zaXRvcnkuQXJ0aWZhY3RSZXBvc2l0b3J5OworaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QucmVzb2x2ZXIuQXJ0aWZhY3RDb2xsZWN0b3I7CitpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5yZXNvbHZlci5maWx0ZXIuQXJ0aWZhY3RGaWx0ZXI7CitpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5lbmZvcmNlci5ydWxlLmFwaS5FbmZvcmNlclJ1bGVIZWxwZXI7CitpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW4udGVzdGluZy5BcnRpZmFjdFN0dWJGYWN0b3J5OworaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy5lbmZvcmNlci51dGlscy5UZXN0RW5mb3JjZXJSdWxlVXRpbHM7CitpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5wcm9qZWN0Lk1hdmVuUHJvamVjdDsKK2ltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnNoYXJlZC5kZXBlbmRlbmN5LnRyZWUuRGVwZW5kZW5jeU5vZGU7CitpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5zaGFyZWQuZGVwZW5kZW5jeS50cmVlLkRlcGVuZGVuY3lUcmVlOworaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uc2hhcmVkLmRlcGVuZGVuY3kudHJlZS5EZXBlbmRlbmN5VHJlZUJ1aWxkZXI7CitpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5zaGFyZWQuZGVwZW5kZW5jeS50cmVlLkRlcGVuZGVuY3lUcmVlQnVpbGRlckV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuY29kZWhhdXMucGxleHVzLkRlZmF1bHRQbGV4dXNDb250YWluZXI7CitpbXBvcnQgb3JnLmNvZGVoYXVzLnBsZXh1cy5QbGV4dXNDb250YWluZXI7CitpbXBvcnQgb3JnLmp1bml0LkJlZm9yZTsKK2ltcG9ydCBvcmcuanVuaXQuVGVzdDsKKworLyoKKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorICogZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyAqICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKKyAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisgKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisgKiB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisvKioKKyAqIFRlc3RzIGZvciB7QGxpbmsgUmVxdWlyZVVwcGVyQm91bmREZXBzfS4KKyAqIEBhdXRob3IgT2xlZyBOZW5hc2hldgorICovCitwdWJsaWMgY2xhc3MgVGVzdFJlcXVpcmVVcHBlckJvdW5kRGVwcyB7CisgICAgCisgICAgcHJpdmF0ZSBNYXZlblByb2plY3QgcHJvamVjdDsKKworICAgIHByaXZhdGUgRW5mb3JjZXJSdWxlSGVscGVyIGhlbHBlcjsKKworICAgIHByaXZhdGUgQXJ0aWZhY3RTdHViRmFjdG9yeSBmYWN0b3J5OworCisgICAgcHJpdmF0ZSBSZXF1aXJlVXBwZXJCb3VuZERlcHMgcnVsZTsKKyAgICBwcml2YXRlIE1vY2tEZXBlbmRlbmN5VHJlZUJ1aWxkZXIgZGVwZW5kZW5jeVRyZWU7CisgICAgCisgICAgQXJ0aWZhY3QgbGlicmFyeTFfMTAsIGxpYnJhcnkxXzIwLCBsaWJyYXJ5Ml8xMDsKKyAgICAKKyAgICBAQmVmb3JlCisgICAgcHVibGljIHZvaWQgYmVmb3JlKCkgdGhyb3dzIEV4Y2VwdGlvbgorICAgIHsKKyAgICAgICAgUGxleHVzQ29udGFpbmVyIGMgPSBuZXcgRGVmYXVsdFBsZXh1c0NvbnRhaW5lcigpOworICAgICAgICBkZXBlbmRlbmN5VHJlZSA9IG5ldyBNb2NrRGVwZW5kZW5jeVRyZWVCdWlsZGVyKCk7CisgICAgICAgIGZhY3RvcnkgPSBuZXcgQXJ0aWZhY3RTdHViRmFjdG9yeSgpOworICAgICAgICAKKyAgICAgICAgcHJvamVjdCA9IG5ldyBNb2NrUHJvamVjdCgpOworICAgICAgICBwcm9qZWN0LnNldEFydGlmYWN0KGZhY3RvcnkuY3JlYXRlQXJ0aWZhY3QoIm15IiwgInByb2plY3QiLCAiMS4wIikpOworICAgICAgICBsaWJyYXJ5MV8xMCA9IGZhY3RvcnkuY3JlYXRlQXJ0aWZhY3QoIm15IiwgImxpYnJhcnkxIiwgIjEuMCIpOworICAgICAgICBsaWJyYXJ5MV8yMCA9IGZhY3RvcnkuY3JlYXRlQXJ0aWZhY3QoIm15IiwgImxpYnJhcnkxIiwgIjIuMCIpOworICAgICAgICBsaWJyYXJ5Ml8xMCA9IGZhY3RvcnkuY3JlYXRlQXJ0aWZhY3QoIm15IiwgImxpYnJhcnkyIiwgIjEuMCIpOworICAgICAgICAKKyAgICAgICAgaGVscGVyID0gRW5mb3JjZXJUZXN0VXRpbHMuZ2V0SGVscGVyKHByb2plY3QsIGZhbHNlLCBjKTsKKyAgICAgICAgaGVscGVyLmdldENvbnRhaW5lcigpLmFkZENvbXBvbmVudChkZXBlbmRlbmN5VHJlZSwgRGVwZW5kZW5jeVRyZWVCdWlsZGVyLmNsYXNzLmdldE5hbWUoKSk7CisgICAgICAgIAorICAgICAgICBydWxlID0gbmV3IFJlcXVpcmVVcHBlckJvdW5kRGVwcygpOyAgCisgICAgfQorICAgIAorICAgIEBUZXN0CisgICAgcHVibGljIHZvaWQgdGVzdFNob3VsZFBhc3NGb3JTYW1lRGVwZW5kZW5jaWVzKCkgdGhyb3dzIEV4Y2VwdGlvbiB7CisgICAgICAgIGRlcGVuZGVuY3lUcmVlLmFkZERlcGVuZGVuY3kobGlicmFyeTFfMTApOworICAgICAgICBEZXBlbmRlbmN5Tm9kZSBuID0gbmV3IERlcGVuZGVuY3lOb2RlKGxpYnJhcnkyXzEwKTsKKyAgICAgICAgbi5hZGRDaGlsZChuZXcgRGVwZW5kZW5jeU5vZGUobGlicmFyeTFfMTApKTsKKyAgICAgICAgZGVwZW5kZW5jeVRyZWUuYWRkRGVwZW5kZW5jeShuKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgVGVzdEVuZm9yY2VyUnVsZVV0aWxzLmV4ZWN1dGUocnVsZSwgaGVscGVyLCBmYWxzZSk7CisgICAgfQorICAgIAorICAgIEBUZXN0CisgICAgcHVibGljIHZvaWQgdGVzdFNob3VsZEZhaWxGb3JOZXdlckRlcGVuZGVuY2llcygpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBkZXBlbmRlbmN5VHJlZS5hZGREZXBlbmRlbmN5KGxpYnJhcnkxXzEwKTsKKyAgICAgICAgRGVwZW5kZW5jeU5vZGUgbiA9IG5ldyBEZXBlbmRlbmN5Tm9kZShsaWJyYXJ5Ml8xMCk7CisgICAgICAgIG4uYWRkQ2hpbGQobmV3IERlcGVuZGVuY3lOb2RlKGxpYnJhcnkxXzIwKSk7CisgICAgICAgIGRlcGVuZGVuY3lUcmVlLmFkZERlcGVuZGVuY3kobik7CisgICAgICAgICAgICAgICAgCisgICAgICAgIFRlc3RFbmZvcmNlclJ1bGVVdGlscy5leGVjdXRlKHJ1bGUsIGhlbHBlciwgdHJ1ZSk7CisgICAgfQorICAgIAorICAgIEBUZXN0CisgICAgcHVibGljIHZvaWQgdGVzdFNob3VsZFBhc3NGb3JPbGRlckRlcGVuZGVuY2llcygpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBkZXBlbmRlbmN5VHJlZS5hZGREZXBlbmRlbmN5KGxpYnJhcnkxXzIwKTsKKyAgICAgICAgRGVwZW5kZW5jeU5vZGUgbiA9IG5ldyBEZXBlbmRlbmN5Tm9kZShsaWJyYXJ5Ml8xMCk7CisgICAgICAgIG4uYWRkQ2hpbGQobmV3IERlcGVuZGVuY3lOb2RlKGxpYnJhcnkxXzEwKSk7CisgICAgICAgIGRlcGVuZGVuY3lUcmVlLmFkZERlcGVuZGVuY3kobik7CisgICAgICAgICAgICAgICAgCisgICAgICAgIFRlc3RFbmZvcmNlclJ1bGVVdGlscy5leGVjdXRlKHJ1bGUsIGhlbHBlciwgZmFsc2UpOworICAgIH0KKyAgICAKKyAgICBAVGVzdAorICAgIHB1YmxpYyB2b2lkIHRlc3RTaG91bGRQYXNzRm9yT2xkZXJEZXBlbmRlbmN5SWZFeGNsdWRlZCgpIHRocm93cyBFeGNlcHRpb24geworICAgICAgICBkZXBlbmRlbmN5VHJlZS5hZGREZXBlbmRlbmN5KGxpYnJhcnkxXzEwKTsKKyAgICAgICAgRGVwZW5kZW5jeU5vZGUgbiA9IG5ldyBEZXBlbmRlbmN5Tm9kZShsaWJyYXJ5Ml8xMCk7CisgICAgICAgIG4uYWRkQ2hpbGQobmV3IERlcGVuZGVuY3lOb2RlKGxpYnJhcnkxXzIwKSk7CisgICAgICAgIGRlcGVuZGVuY3lUcmVlLmFkZERlcGVuZGVuY3kobik7CisgICAgICAgICAgICAgICAgCisgICAgICAgIHJ1bGUuc2V0RXhjbHVkZXMoQXJyYXlzLmFzTGlzdCgibXk6bGlicmFyeTEiKSk7CisgICAgICAgIFRlc3RFbmZvcmNlclJ1bGVVdGlscy5leGVjdXRlKHJ1bGUsIGhlbHBlciwgZmFsc2UpOworICAgIH0KKyAgICAKKyAgICAvLyBUT0RPOiBtYWtlIGl0IGEgZ2VuZXJpYyBjbGFzcworICAgIHByaXZhdGUgc3RhdGljIGZpbmFsIGNsYXNzIE1vY2tEZXBlbmRlbmN5VHJlZUJ1aWxkZXIgaW1wbGVtZW50cyBEZXBlbmRlbmN5VHJlZUJ1aWxkZXIgeworCisgICAgICAgIExpc3Q8RGVwZW5kZW5jeU5vZGU+IGRlcGVuZGVuY2llcyA9IG5ldyBBcnJheUxpc3Q8RGVwZW5kZW5jeU5vZGU+KCk7ICAgIAorICAgICAgIAorICAgICAgICBwdWJsaWMgdm9pZCBhZGREZXBlbmRlbmN5KERlcGVuZGVuY3lOb2RlIG5vZGUpIHsKKyAgICAgICAgICAgIGRlcGVuZGVuY2llcy5hZGQobm9kZSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHB1YmxpYyB2b2lkIGFkZERlcGVuZGVuY3koQXJ0aWZhY3QgYXJ0aWZhY3QpIHsKKyAgICAgICAgICAgIGRlcGVuZGVuY2llcy5hZGQobmV3IERlcGVuZGVuY3lOb2RlKGFydGlmYWN0KSk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgRGVwZW5kZW5jeU5vZGUgYnVpbGREZXBlbmRlbmN5VHJlZShNYXZlblByb2plY3QgcHJvamVjdCwgQXJ0aWZhY3RSZXBvc2l0b3J5IHJlcG9zaXRvcnksIAorICAgICAgICAgICAgICAgIEFydGlmYWN0RmFjdG9yeSBmYWN0b3J5LCBBcnRpZmFjdE1ldGFkYXRhU291cmNlIG1ldGFkYXRhU291cmNlLCBBcnRpZmFjdEZpbHRlciBmaWx0ZXIsIAorICAgICAgICAgICAgICAgIEFydGlmYWN0Q29sbGVjdG9yIGNvbGxlY3RvcikgdGhyb3dzIERlcGVuZGVuY3lUcmVlQnVpbGRlckV4Y2VwdGlvbiB7CisgICAgICAgICAgICBEZXBlbmRlbmN5Tm9kZSByb290ID0gbmV3IERlcGVuZGVuY3lOb2RlKHByb2plY3QuZ2V0QXJ0aWZhY3QoKSk7CisgICAgICAgICAgICBmb3IgKERlcGVuZGVuY3lOb2RlIGNoaWxkIDogZGVwZW5kZW5jaWVzKSB7CisgICAgICAgICAgICAgICAgcm9vdC5hZGRDaGlsZChjaGlsZCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gcm9vdDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgQE92ZXJyaWRlCisgICAgICAgIHB1YmxpYyBEZXBlbmRlbmN5VHJlZSBidWlsZERlcGVuZGVuY3lUcmVlKE1hdmVuUHJvamVjdCBwcm9qZWN0LCBBcnRpZmFjdFJlcG9zaXRvcnkgcmVwb3NpdG9yeSwgCisgICAgICAgICAgICAgICAgQXJ0aWZhY3RGYWN0b3J5IGZhY3RvcnksIEFydGlmYWN0TWV0YWRhdGFTb3VyY2UgbWV0YWRhdGFTb3VyY2UsIAorICAgICAgICAgICAgICAgIEFydGlmYWN0Q29sbGVjdG9yIGNvbGxlY3RvcikgdGhyb3dzIERlcGVuZGVuY3lUcmVlQnVpbGRlckV4Y2VwdGlvbiB7CisgICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRPcGVyYXRpb25FeGNlcHRpb24oIk5vdCBzdXBwb3J0ZWQgeWV0LiIpOworICAgICAgICB9CisKKworICAgICAgICBAT3ZlcnJpZGUKKyAgICAgICAgcHVibGljIERlcGVuZGVuY3lOb2RlIGJ1aWxkRGVwZW5kZW5jeVRyZWUoTWF2ZW5Qcm9qZWN0IHByb2plY3QpIHRocm93cyBEZXBlbmRlbmN5VHJlZUJ1aWxkZXJFeGNlcHRpb24geworICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3Qgc3VwcG9ydGVkIHlldC4iKTsKKyAgICAgICAgfQorCisgICAgICAgIEBPdmVycmlkZQorICAgICAgICBwdWJsaWMgRGVwZW5kZW5jeU5vZGUgYnVpbGREZXBlbmRlbmN5VHJlZShNYXZlblByb2plY3QgYXJnMCwgQXJ0aWZhY3RSZXBvc2l0b3J5IGFyZzEsIEFydGlmYWN0RmlsdGVyIGFyZzIpIHRocm93cyBEZXBlbmRlbmN5VHJlZUJ1aWxkZXJFeGNlcHRpb24geworICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9uKCJOb3Qgc3VwcG9ydGVkIHlldC4iKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICB9Cit9CgoKIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDM0MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgT2N0IDI2IDA3OjQxOjQzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDM0MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4MUNDMzE3RTZDCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjYgT2N0IDIwMTcgMDc6NDE6NDMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyNjYyOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBPY3QgMjAxNyAwNzo0MTo0MyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjY1MzcgaW52b2tlZCBieSB1aWQgNTAwKTsgMjYgT2N0IDIwMTcgMDc6NDE6NDMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNjUyNCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI2IE9jdCAyMDE3IDA3OjQxOjQzIC0wMDAwClJlY2VpdmVkOiBmcm9tIGVjMi01Mi0yMDItODAtNzAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20gKEhFTE8gZ2l0Ym94LmFwYWNoZS5vcmcpICg1Mi4yMDIuODAuNzApCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMjYgT2N0IDIwMTcgMDc6NDE6NDMgKzAwMDAKRnJvbTogR2l0Qm94IDxnaXRAYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtHaXRIdWJdIGFzZmdpdCBjbG9zZWQgcHVsbCByZXF1ZXN0ICM0OiBVcGRhdGUgdG8gQVNNNSBvcHNjb2RlLgpNZXNzYWdlLUlEOiA8MTUwOTAwMzcwMjU1LjIyNjEuNDQ4MjAzMTg0MTUyNjk4OTMzNi5naXRib3hAZ2l0Ym94LmFwYWNoZS5vcmc+Cgphc2ZnaXQgY2xvc2VkIHB1bGwgcmVxdWVzdCAjNDogVXBkYXRlIHRvIEFTTTUgb3BzY29kZS4KVVJMOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbi10b29scy9wdWxsLzQKIAogCiAgIAoKVGhpcyBpcyBhIFBSIG1lcmdlZCBmcm9tIGEgZm9ya2VkIHJlcG9zaXRvcnkuCkFzIEdpdEh1YiBoaWRlcyB0aGUgb3JpZ2luYWwgZGlmZiBvbiBtZXJnZSwgaXQgaXMgZGlzcGxheWVkIGJlbG93IGZvcgp0aGUgc2FrZSBvZiBwcm92ZW5hbmNlOgoKQXMgdGhpcyBpcyBhIGZvcmVpZ24gcHVsbCByZXF1ZXN0IChmcm9tIGEgZm9yayksIHRoZSBkaWZmIGlzIHN1cHBsaWVkCmJlbG93IChhcyBpdCB3b24ndCBzaG93IG90aGVyd2lzZSBkdWUgdG8gR2l0SHViIG1hZ2ljKToKCmRpZmYgLS1naXQgYS9tYXZlbi1wbHVnaW4tdG9vbHMtYW5ub3RhdGlvbnMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3Rvb2xzL3BsdWdpbi9hbm5vdGF0aW9ucy9zY2FubmVyL3Zpc2l0b3JzL01vam9Bbm5vdGF0aW9uVmlzaXRvci5qYXZhIGIvbWF2ZW4tcGx1Z2luLXRvb2xzLWFubm90YXRpb25zL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi90b29scy9wbHVnaW4vYW5ub3RhdGlvbnMvc2Nhbm5lci92aXNpdG9ycy9Nb2pvQW5ub3RhdGlvblZpc2l0b3IuamF2YQppbmRleCAyOTkzNTUzZC4uZTI0MTk4N2UgMTAwNjQ0Ci0tLSBhL21hdmVuLXBsdWdpbi10b29scy1hbm5vdGF0aW9ucy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vdG9vbHMvcGx1Z2luL2Fubm90YXRpb25zL3NjYW5uZXIvdmlzaXRvcnMvTW9qb0Fubm90YXRpb25WaXNpdG9yLmphdmEKKysrIGIvbWF2ZW4tcGx1Z2luLXRvb2xzLWFubm90YXRpb25zL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi90b29scy9wbHVnaW4vYW5ub3RhdGlvbnMvc2Nhbm5lci92aXNpdG9ycy9Nb2pvQW5ub3RhdGlvblZpc2l0b3IuamF2YQpAQCAtNDEsNyArNDEsNyBAQAogCiAgICAgTW9qb0Fubm90YXRpb25WaXNpdG9yKCBMb2dnZXIgbG9nZ2VyLCBTdHJpbmcgYW5ub3RhdGlvbkNsYXNzTmFtZSApCiAgICAgewotICAgICAgICBzdXBlciggT3Bjb2Rlcy5BU000ICk7CisgICAgICAgIHN1cGVyKCBPcGNvZGVzLkFTTTUgKTsKICAgICAgICAgdGhpcy5sb2dnZXIgPSBsb2dnZXI7CiAgICAgICAgIHRoaXMuYW5ub3RhdGlvbkNsYXNzTmFtZSA9IGFubm90YXRpb25DbGFzc05hbWU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvbWF2ZW4tcGx1Z2luLXRvb2xzLWFubm90YXRpb25zL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi90b29scy9wbHVnaW4vYW5ub3RhdGlvbnMvc2Nhbm5lci92aXNpdG9ycy9Nb2pvQ2xhc3NWaXNpdG9yLmphdmEgYi9tYXZlbi1wbHVnaW4tdG9vbHMtYW5ub3RhdGlvbnMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3Rvb2xzL3BsdWdpbi9hbm5vdGF0aW9ucy9zY2FubmVyL3Zpc2l0b3JzL01vam9DbGFzc1Zpc2l0b3IuamF2YQppbmRleCBmMjMzM2Q0Yi4uY2JlZGZlY2QgMTAwNjQ0Ci0tLSBhL21hdmVuLXBsdWdpbi10b29scy1hbm5vdGF0aW9ucy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vdG9vbHMvcGx1Z2luL2Fubm90YXRpb25zL3NjYW5uZXIvdmlzaXRvcnMvTW9qb0NsYXNzVmlzaXRvci5qYXZhCisrKyBiL21hdmVuLXBsdWdpbi10b29scy1hbm5vdGF0aW9ucy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vdG9vbHMvcGx1Z2luL2Fubm90YXRpb25zL3NjYW5uZXIvdmlzaXRvcnMvTW9qb0NsYXNzVmlzaXRvci5qYXZhCkBAIC01Myw3ICs1Myw3IEBACiAKICAgICBwdWJsaWMgTW9qb0NsYXNzVmlzaXRvciggTG9nZ2VyIGxvZ2dlciApCiAgICAgewotICAgICAgICBzdXBlciggT3Bjb2Rlcy5BU000ICk7CisgICAgICAgIHN1cGVyKCBPcGNvZGVzLkFTTTUgKTsKICAgICAgICAgdGhpcy5sb2dnZXIgPSBsb2dnZXI7CiAgICAgfQogCmRpZmYgLS1naXQgYS9tYXZlbi1wbHVnaW4tdG9vbHMtYW5ub3RhdGlvbnMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3Rvb2xzL3BsdWdpbi9hbm5vdGF0aW9ucy9zY2FubmVyL3Zpc2l0b3JzL01vam9GaWVsZFZpc2l0b3IuamF2YSBiL21hdmVuLXBsdWdpbi10b29scy1hbm5vdGF0aW9ucy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vdG9vbHMvcGx1Z2luL2Fubm90YXRpb25zL3NjYW5uZXIvdmlzaXRvcnMvTW9qb0ZpZWxkVmlzaXRvci5qYXZhCmluZGV4IDRhNjFhMDFlLi43ODNjYmNiZiAxMDA2NDQKLS0tIGEvbWF2ZW4tcGx1Z2luLXRvb2xzLWFubm90YXRpb25zL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi90b29scy9wbHVnaW4vYW5ub3RhdGlvbnMvc2Nhbm5lci92aXNpdG9ycy9Nb2pvRmllbGRWaXNpdG9yLmphdmEKKysrIGIvbWF2ZW4tcGx1Z2luLXRvb2xzLWFubm90YXRpb25zL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi90b29scy9wbHVnaW4vYW5ub3RhdGlvbnMvc2Nhbm5lci92aXNpdG9ycy9Nb2pvRmllbGRWaXNpdG9yLmphdmEKQEAgLTQ0LDcgKzQ0LDcgQEAKIAogICAgIE1vam9GaWVsZFZpc2l0b3IoIExvZ2dlciBsb2dnZXIsIFN0cmluZyBmaWVsZE5hbWUsIFN0cmluZyBjbGFzc05hbWUgKQogICAgIHsKLSAgICAgICAgc3VwZXIoIE9wY29kZXMuQVNNNCApOworICAgICAgICBzdXBlciggT3Bjb2Rlcy5BU001ICk7CiAgICAgICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyOwogICAgICAgICB0aGlzLmZpZWxkTmFtZSA9IGZpZWxkTmFtZTsKICAgICAgICAgdGhpcy5jbGFzc05hbWUgPSBjbGFzc05hbWU7CgoKIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDM0MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgT2N0IDI2IDA3OjQxOjQ0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDM0MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4NjhBOTE3RTcyCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjYgT2N0IDIwMTcgMDc6NDE6NDQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyNzQzNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBPY3QgMjAxNyAwNzo0MTo0MyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjczNTEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjYgT2N0IDIwMTcgMDc6NDE6NDMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNjY1MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDI2IE9jdCAyMDE3IDA3OjQxOjQzIC0wMDAwClJlY2VpdmVkOiBmcm9tIGVjMi01Mi0yMDItODAtNzAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20gKEhFTE8gZ2l0Ym94LmFwYWNoZS5vcmcpICg1Mi4yMDIuODAuNzApCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMjYgT2N0IDIwMTcgMDc6NDE6NDMgKzAwMDAKRnJvbTogR2l0Qm94IDxnaXRAYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtHaXRIdWJdIGFzZmdpdCBjbG9zZWQgcHVsbCByZXF1ZXN0ICM1OiBQcmVzZXJ2aW5nIHRoZSBhbm5vdGF0aW9ucyBhdCBydW50aW1lIGlzIHZlcnkgdXNlZnVsIGZvciB0ZXN0aW5nIApNZXNzYWdlLUlEOiA8MTUwOTAwMzcwMjY3LjIyNjQuMjg4MjY3NzIyODc5NjQ5Nzg1NS5naXRib3hAZ2l0Ym94LmFwYWNoZS5vcmc+Cgphc2ZnaXQgY2xvc2VkIHB1bGwgcmVxdWVzdCAjNTogUHJlc2VydmluZyB0aGUgYW5ub3RhdGlvbnMgYXQgcnVudGltZSBpcyB2ZXJ5IHVzZWZ1bCBmb3IgdGVzdGluZyAKVVJMOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbi10b29scy9wdWxsLzUKIAogCiAgIAoKVGhpcyBpcyBhIFBSIG1lcmdlZCBmcm9tIGEgZm9ya2VkIHJlcG9zaXRvcnkuCkFzIEdpdEh1YiBoaWRlcyB0aGUgb3JpZ2luYWwgZGlmZiBvbiBtZXJnZSwgaXQgaXMgZGlzcGxheWVkIGJlbG93IGZvcgp0aGUgc2FrZSBvZiBwcm92ZW5hbmNlOgoKQXMgdGhpcyBpcyBhIGZvcmVpZ24gcHVsbCByZXF1ZXN0IChmcm9tIGEgZm9yayksIHRoZSBkaWZmIGlzIHN1cHBsaWVkCmJlbG93IChhcyBpdCB3b24ndCBzaG93IG90aGVyd2lzZSBkdWUgdG8gR2l0SHViIG1hZ2ljKToKCmRpZmYgLS1naXQgYS9tYXZlbi1wbHVnaW4tYW5ub3RhdGlvbnMvcG9tLnhtbCBiL21hdmVuLXBsdWdpbi1hbm5vdGF0aW9ucy9wb20ueG1sCmluZGV4IDY0Yjk4NmEyLi5iMDJkMDI5ZCAxMDA2NDQKLS0tIGEvbWF2ZW4tcGx1Z2luLWFubm90YXRpb25zL3BvbS54bWwKKysrIGIvbWF2ZW4tcGx1Z2luLWFubm90YXRpb25zL3BvbS54bWwKQEAgLTM3LDUgKzM3LDExIEBACiAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1hcnRpZmFjdDwvYXJ0aWZhY3RJZD4KICAgICAgIDx2ZXJzaW9uPjMuMDwvdmVyc2lvbj4KICAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5qdW5pdDwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPmp1bml0PC9hcnRpZmFjdElkPgorICAgICAgPHZlcnNpb24+NC4xMTwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CiAgIDwvZGVwZW5kZW5jaWVzPgogPC9wcm9qZWN0PgpkaWZmIC0tZ2l0IGEvbWF2ZW4tcGx1Z2luLWFubm90YXRpb25zL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL2Fubm90YXRpb25zL0NvbXBvbmVudC5qYXZhIGIvbWF2ZW4tcGx1Z2luLWFubm90YXRpb25zL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL2Fubm90YXRpb25zL0NvbXBvbmVudC5qYXZhCmluZGV4IDlhZmJkNjViLi4yMmQyNDQ5MCAxMDA2NDQKLS0tIGEvbWF2ZW4tcGx1Z2luLWFubm90YXRpb25zL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL2Fubm90YXRpb25zL0NvbXBvbmVudC5qYXZhCisrKyBiL21hdmVuLXBsdWdpbi1hbm5vdGF0aW9ucy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9hbm5vdGF0aW9ucy9Db21wb25lbnQuamF2YQpAQCAtMzUsNyArMzUsNyBAQAogICogQHNpbmNlIDMuMAogICovCiBARG9jdW1lbnRlZAotQFJldGVudGlvbiggUmV0ZW50aW9uUG9saWN5LkNMQVNTICkKK0BSZXRlbnRpb24oIFJldGVudGlvblBvbGljeS5SVU5USU1FICkKIEBUYXJnZXQoIHsgRWxlbWVudFR5cGUuRklFTEQgfSApCiBASW5oZXJpdGVkCiBwdWJsaWMgQGludGVyZmFjZSBDb21wb25lbnQKZGlmZiAtLWdpdCBhL21hdmVuLXBsdWdpbi1hbm5vdGF0aW9ucy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9hbm5vdGF0aW9ucy9QYXJhbWV0ZXIuamF2YSBiL21hdmVuLXBsdWdpbi1hbm5vdGF0aW9ucy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9hbm5vdGF0aW9ucy9QYXJhbWV0ZXIuamF2YQppbmRleCBlYzlkYmNmNi4uYjRkMjhmYzYgMTAwNjQ0Ci0tLSBhL21hdmVuLXBsdWdpbi1hbm5vdGF0aW9ucy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9hbm5vdGF0aW9ucy9QYXJhbWV0ZXIuamF2YQorKysgYi9tYXZlbi1wbHVnaW4tYW5ub3RhdGlvbnMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvYW5ub3RhdGlvbnMvUGFyYW1ldGVyLmphdmEKQEAgLTM1LDcgKzM1LDcgQEAKICAqIEBzaW5jZSAzLjAKICAqLwogQERvY3VtZW50ZWQKLUBSZXRlbnRpb24oIFJldGVudGlvblBvbGljeS5DTEFTUyApCitAUmV0ZW50aW9uKCBSZXRlbnRpb25Qb2xpY3kuUlVOVElNRSApCiBAVGFyZ2V0KCB7IEVsZW1lbnRUeXBlLkZJRUxEIH0gKQogQEluaGVyaXRlZAogcHVibGljIEBpbnRlcmZhY2UgUGFyYW1ldGVyCmRpZmYgLS1naXQgYS9tYXZlbi1wbHVnaW4tYW5ub3RhdGlvbnMvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvYW5ub3RhdGlvbnMvUnVudGltZUFubm90YXRpb25zVGVzdC5qYXZhIGIvbWF2ZW4tcGx1Z2luLWFubm90YXRpb25zL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL2Fubm90YXRpb25zL1J1bnRpbWVBbm5vdGF0aW9uc1Rlc3QuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uMTFhYjA0YjAKLS0tIC9kZXYvbnVsbAorKysgYi9tYXZlbi1wbHVnaW4tYW5ub3RhdGlvbnMvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvYW5ub3RhdGlvbnMvUnVudGltZUFubm90YXRpb25zVGVzdC5qYXZhCkBAIC0wLDAgKzEsNDUgQEAKK3BhY2thZ2Ugb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zLmFubm90YXRpb25zOworCitpbXBvcnQgamF2YS5sYW5nLnJlZmxlY3QuRmllbGQ7CisKK2ltcG9ydCBvcmcuanVuaXQuQXNzZXJ0OworaW1wb3J0IG9yZy5qdW5pdC5SdWxlOworaW1wb3J0IG9yZy5qdW5pdC5UZXN0OworaW1wb3J0IG9yZy5qdW5pdC5ydWxlcy5UZXN0TmFtZTsKKworcHVibGljIGNsYXNzIFJ1bnRpbWVBbm5vdGF0aW9uc1Rlc3QgeworCisgIEBSdWxlCisgIHB1YmxpYyBUZXN0TmFtZSBuYW1lID0gbmV3IFRlc3ROYW1lKCk7CisKKyAgQFBhcmFtZXRlcgorICBwcml2YXRlIFN0cmluZyBwYXJhbWV0ZXI7CisKKworCisgIEBUZXN0CisgIHB1YmxpYyB2b2lkIHBhcmFtZXRlcigpIHsKKyAgICBBc3NlcnQuYXNzZXJ0VHJ1ZShmaWVsZCgpLmlzQW5ub3RhdGlvblByZXNlbnQoUGFyYW1ldGVyLmNsYXNzKSk7CisgIH0KKworICBAQ29tcG9uZW50CisgIHByaXZhdGUgT2JqZWN0IGNvbXBvbmVudDsKKworICBAVGVzdAorICBwdWJsaWMgdm9pZCBjb21wb25lbnQoKSB7CisgICAgQXNzZXJ0LmFzc2VydFRydWUoZmllbGQoKS5pc0Fubm90YXRpb25QcmVzZW50KENvbXBvbmVudC5jbGFzcykpOworICB9CisKKworICBwcml2YXRlIEZpZWxkIGZpZWxkKCkgeworICAgIHRyeSB7CisgICAgICByZXR1cm4gZ2V0Q2xhc3MoKS5nZXREZWNsYXJlZEZpZWxkKG5hbWUuZ2V0TWV0aG9kTmFtZSgpKTsKKyAgICB9CisgICAgY2F0Y2ggKE5vU3VjaEZpZWxkRXhjZXB0aW9uIGUpIHsKKyAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUpOworICAgIH0KKyAgICBjYXRjaCAoU2VjdXJpdHlFeGNlcHRpb24gZSkgeworICAgICAgdGhyb3cgbmV3IFJ1bnRpbWVFeGNlcHRpb24oZSk7CisgICAgfQorICB9Cit9CgoKIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDM0Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgT2N0IDI2IDA3OjQxOjQ0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDM0Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFRjUyNDE3RTc4Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjYgT2N0IDIwMTcgMDc6NDE6NDQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyNzU0MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBPY3QgMjAxNyAwNzo0MTo0MyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjczNTcgaW52b2tlZCBieSB1aWQgNTAwKTsgMjYgT2N0IDIwMTcgMDc6NDE6NDMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNzI4OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI2IE9jdCAyMDE3IDA3OjQxOjQzIC0wMDAwClJlY2VpdmVkOiBmcm9tIGVjMi01Mi0yMDItODAtNzAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20gKEhFTE8gZ2l0Ym94LmFwYWNoZS5vcmcpICg1Mi4yMDIuODAuNzApCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMjYgT2N0IDIwMTcgMDc6NDE6NDMgKzAwMDAKRnJvbTogR2l0Qm94IDxnaXRAYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtHaXRIdWJdIGFzZmdpdCBjbG9zZWQgcHVsbCByZXF1ZXN0ICM2OiBGb3IgR3Jvb3Z5L1NjYWxhIE1vam9zOiBBbGxvdyBNb2pvIGRvY3VtZW50YXRpb24gaW4gYW5ub3RhdGlvbnMsIHRvby4KTWVzc2FnZS1JRDogPDE1MDkwMDM3MDI4My4yMjY3LjE1NjY4NzQxNzMwMTk4Njg3MjM4LmdpdGJveEBnaXRib3guYXBhY2hlLm9yZz4KCmFzZmdpdCBjbG9zZWQgcHVsbCByZXF1ZXN0ICM2OiBGb3IgR3Jvb3Z5L1NjYWxhIE1vam9zOiBBbGxvdyBNb2pvIGRvY3VtZW50YXRpb24gaW4gYW5ub3RhdGlvbnMsIHRvby4KVVJMOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbi10b29scy9wdWxsLzYKIAogCiAgIAoKVGhpcyBpcyBhIFBSIG1lcmdlZCBmcm9tIGEgZm9ya2VkIHJlcG9zaXRvcnkuCkFzIEdpdEh1YiBoaWRlcyB0aGUgb3JpZ2luYWwgZGlmZiBvbiBtZXJnZSwgaXQgaXMgZGlzcGxheWVkIGJlbG93IGZvcgp0aGUgc2FrZSBvZiBwcm92ZW5hbmNlOgoKQXMgdGhpcyBpcyBhIGZvcmVpZ24gcHVsbCByZXF1ZXN0IChmcm9tIGEgZm9yayksIHRoZSBkaWZmIGlzIHN1cHBsaWVkCmJlbG93IChhcyBpdCB3b24ndCBzaG93IG90aGVyd2lzZSBkdWUgdG8gR2l0SHViIG1hZ2ljKToKCmRpZmYgLS1naXQgYS9tYXZlbi1wbHVnaW4tYW5ub3RhdGlvbnMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvYW5ub3RhdGlvbnMvTW9qby5qYXZhIGIvbWF2ZW4tcGx1Z2luLWFubm90YXRpb25zL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL2Fubm90YXRpb25zL01vam8uamF2YQppbmRleCBlNDQyMzEwZi4uNWE1ZDhkOGMgMTAwNjQ0Ci0tLSBhL21hdmVuLXBsdWdpbi1hbm5vdGF0aW9ucy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9hbm5vdGF0aW9ucy9Nb2pvLmphdmEKKysrIGIvbWF2ZW4tcGx1Z2luLWFubm90YXRpb25zL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL2Fubm90YXRpb25zL01vam8uamF2YQpAQCAtMTE3LDQgKzExNyw0NCBAQAogICAgICAqIEByZXR1cm4gaXMgdGhyZWFkIHNhZmUKICAgICAgKi8KICAgICBib29sZWFuIHRocmVhZFNhZmUoKSBkZWZhdWx0IGZhbHNlOworCisgICAgLyoqCisgICAgICogRGVzY3JpcHRpb24gZm9yIHRoaXMgTW9qby4gSGFzIHRoZSBzYW1lIGZvcm1hdCBhcyBhIEphdmFkb2MgY29tbWVudCBib2R5ICh0aGF0IGlzLCBIVE1MIHdpdGggSmF2YWRvYyBpbmxpbmUKKyAgICAgKiB0YWdzKS4KKyAgICAgKgorICAgICAqIDxwPk9yZGluYXJpbHksIHRoaXMgaW5mb3JtYXRpb24gaXMgdGFrZW4gZnJvbSBKYXZhZG9jIGNvbW1lbnRzLiBUaGlzIGFubm90YXRpb24gaXMgdXNlZCB3aGVuIGRvY3VtZW50aW5nIGEgTWF2ZW4KKyAgICAgKiBwbHVnaW4gdGhhdCBpcyB3cml0dGVuIGluIGEgbGFuZ3VhZ2Ugb3RoZXIgdGhhbiBKYXZhLCBidXQgd2hpY2ggc3VwcG9ydHMgSmF2YSBhbm5vdGF0aW9ucywgc3VjaCBhcyBHcm9vdnkgb3IKKyAgICAgKiBTY2FsYS48L3A+CisgICAgICoKKyAgICAgKiBAc2luY2UgMy41CisgICAgICovCisgICAgU3RyaW5nIGRlc2NyaXB0aW9uKCkgZGVmYXVsdCAiIjsKKworICAgIC8qKgorICAgICAqIFRoZSBmaXJzdCB2ZXJzaW9uIG9mIHRoZSBwbHVnaW4gd2hlbiB0aGlzIE1vam8gd2FzIGFkZGVkLgorICAgICAqCisgICAgICogPHA+T3JkaW5hcmlseSwgdGhpcyBpbmZvcm1hdGlvbiBpcyB0YWtlbiBmcm9tIEphdmFkb2MgY29tbWVudHMuIFRoaXMgYW5ub3RhdGlvbiBpcyB1c2VkIHdoZW4gZG9jdW1lbnRpbmcgYSBNYXZlbgorICAgICAqIHBsdWdpbiB0aGF0IGlzIHdyaXR0ZW4gaW4gYSBsYW5ndWFnZSBvdGhlciB0aGFuIEphdmEsIGJ1dCB3aGljaCBzdXBwb3J0cyBKYXZhIGFubm90YXRpb25zLCBzdWNoIGFzIEdyb292eSBvcgorICAgICAqIFNjYWxhLjwvcD4KKyAgICAgKgorICAgICAqIEBzaW5jZSAzLjUKKyAgICAgKi8KKyAgICBTdHJpbmcgc2luY2UoKSBkZWZhdWx0ICIiOworCisgICAgLyoqCisgICAgICogVGhlIHJlYXNvbiB3aHkgdGhpcyBNb2pvIGlzIGRlcHJlY2F0ZWQuCisgICAgICoKKyAgICAgKiA8cD5JZiB0aGlzIGlzIGdpdmVuLCB0aGVuIHRoZSBNb2pvIHNob3VsZCBhbHNvIGJlIGFubm90YXRlZCB3aXRoIHtAY29kZSBAfXtAbGluayBEZXByZWNhdGVkfSwgbGlrZSBzbzo8L3A+CisgICAgICoKKyAgICAgKiA8cHJlPjxjb2RlPkBEZXByZWNhdGVkCismIzY0O01vam8oLi4uLCBkZXByZWNhdGVkID0gInRoaXMgTW9qbyBpcyBubyBsb25nZXIgdXNlZCIpCitwdWJsaWMgY2xhc3MgRXhhbXBsZU1vam8gZXh0ZW5kcyBBYnN0cmFjdE1vam8geyAuLi4gfTwvY29kZT48L3ByZT4KKyAgICAgKgorICAgICAqIDxwPk9yZGluYXJpbHksIHRoaXMgaW5mb3JtYXRpb24gaXMgdGFrZW4gZnJvbSBKYXZhZG9jIGNvbW1lbnRzLiBUaGlzIGFubm90YXRpb24gaXMgdXNlZCB3aGVuIGRvY3VtZW50aW5nIGEgTWF2ZW4KKyAgICAgKiBwbHVnaW4gdGhhdCBpcyB3cml0dGVuIGluIGEgbGFuZ3VhZ2Ugb3RoZXIgdGhhbiBKYXZhLCBidXQgd2hpY2ggc3VwcG9ydHMgSmF2YSBhbm5vdGF0aW9ucywgc3VjaCBhcyBHcm9vdnkgb3IKKyAgICAgKiBTY2FsYS48L3A+CisgICAgICoKKyAgICAgKiBAc2luY2UgMy41CisgICAgICovCisgICAgU3RyaW5nIGRlcHJlY2F0ZWQoKSBkZWZhdWx0ICIiOwogfQpkaWZmIC0tZ2l0IGEvbWF2ZW4tcGx1Z2luLWFubm90YXRpb25zL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL2Fubm90YXRpb25zL1BhcmFtZXRlci5qYXZhIGIvbWF2ZW4tcGx1Z2luLWFubm90YXRpb25zL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL2Fubm90YXRpb25zL1BhcmFtZXRlci5qYXZhCmluZGV4IGVjOWRiY2Y2Li5mMzY0ZTk0NSAxMDA2NDQKLS0tIGEvbWF2ZW4tcGx1Z2luLWFubm90YXRpb25zL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL2Fubm90YXRpb25zL1BhcmFtZXRlci5qYXZhCisrKyBiL21hdmVuLXBsdWdpbi1hbm5vdGF0aW9ucy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9hbm5vdGF0aW9ucy9QYXJhbWV0ZXIuamF2YQpAQCAtODUsNCArODUsNDQgQEAKICAgICAgKiBAcmV0dXJuIDxjb2RlPnRydWU8L2NvZGU+IGlmIHRoZSB1c2VyIHNob3VsZCBub3QgYmUgYWxsb3dlZCB0byBjb25maWd1cmUgdGhlIHBhcmFtZXRlciBkaXJlY3RseQogICAgICAqLwogICAgIGJvb2xlYW4gcmVhZG9ubHkoKSBkZWZhdWx0IGZhbHNlOworCisgICAgLyoqCisgICAgICogRGVzY3JpcHRpb24gZm9yIHRoaXMgcGFyYW1ldGVyLiBIYXMgdGhlIHNhbWUgZm9ybWF0IGFzIGEgSmF2YWRvYyBjb21tZW50IGJvZHkgKHRoYXQgaXMsIEhUTUwgd2l0aCBKYXZhZG9jIGlubGluZQorICAgICAqIHRhZ3MpLgorICAgICAqCisgICAgICogPHA+T3JkaW5hcmlseSwgdGhpcyBpbmZvcm1hdGlvbiBpcyB0YWtlbiBmcm9tIEphdmFkb2MgY29tbWVudHMuIFRoaXMgYW5ub3RhdGlvbiBpcyB1c2VkIHdoZW4gZG9jdW1lbnRpbmcgYSBNYXZlbgorICAgICAqIHBsdWdpbiB0aGF0IGlzIHdyaXR0ZW4gaW4gYSBsYW5ndWFnZSBvdGhlciB0aGFuIEphdmEsIGJ1dCB3aGljaCBzdXBwb3J0cyBKYXZhIGFubm90YXRpb25zLCBzdWNoIGFzIEdyb292eSBvcgorICAgICAqIFNjYWxhLjwvcD4KKyAgICAgKgorICAgICAqIEBzaW5jZSAzLjUKKyAgICAgKi8KKyAgICBTdHJpbmcgZGVzY3JpcHRpb24oKSBkZWZhdWx0ICIiOworCisgICAgLyoqCisgICAgICogVGhlIGZpcnN0IHZlcnNpb24gb2YgdGhlIHBsdWdpbiB3aGVuIHRoaXMgcGFyYW1ldGVyIHdhcyBhZGRlZC4KKyAgICAgKgorICAgICAqIDxwPk9yZGluYXJpbHksIHRoaXMgaW5mb3JtYXRpb24gaXMgdGFrZW4gZnJvbSBKYXZhZG9jIGNvbW1lbnRzLiBUaGlzIGFubm90YXRpb24gaXMgdXNlZCB3aGVuIGRvY3VtZW50aW5nIGEgTWF2ZW4KKyAgICAgKiBwbHVnaW4gdGhhdCBpcyB3cml0dGVuIGluIGEgbGFuZ3VhZ2Ugb3RoZXIgdGhhbiBKYXZhLCBidXQgd2hpY2ggc3VwcG9ydHMgSmF2YSBhbm5vdGF0aW9ucywgc3VjaCBhcyBHcm9vdnkgb3IKKyAgICAgKiBTY2FsYS48L3A+CisgICAgICoKKyAgICAgKiBAc2luY2UgMy41CisgICAgICovCisgICAgU3RyaW5nIHNpbmNlKCkgZGVmYXVsdCAiIjsKKworICAgIC8qKgorICAgICAqIFRoZSByZWFzb24gd2h5IHRoaXMgcGFyYW1ldGVyIGlzIGRlcHJlY2F0ZWQuCisgICAgICoKKyAgICAgKiA8cD5JZiB0aGlzIGlzIGdpdmVuLCB0aGVuIHRoZSBwYXJhbWV0ZXIgc2hvdWxkIGFsc28gYmUgYW5ub3RhdGVkIHdpdGgge0Bjb2RlIEB9e0BsaW5rIERlcHJlY2F0ZWR9LCBsaWtlIHNvOjwvcD4KKyAgICAgKgorICAgICAqIDxwcmU+PGNvZGU+QERlcHJlY2F0ZWQKKyYjNjQ7UGFyYW1ldGVyKC4uLiwgZGVwcmVjYXRlZCA9ICJ0aGlzIHBhcmFtZXRlciBpcyBubyBsb25nZXIgdXNlZCIpCitwcml2YXRlIFN0cmluZyBvbGRQYXJhbWV0ZXJUaGF0Tm93RG9lc05vdGhpbmc7PC9jb2RlPjwvcHJlPgorICAgICAqCisgICAgICogPHA+T3JkaW5hcmlseSwgdGhpcyBpbmZvcm1hdGlvbiBpcyB0YWtlbiBmcm9tIEphdmFkb2MgY29tbWVudHMuIFRoaXMgYW5ub3RhdGlvbiBpcyB1c2VkIHdoZW4gZG9jdW1lbnRpbmcgYSBNYXZlbgorICAgICAqIHBsdWdpbiB0aGF0IGlzIHdyaXR0ZW4gaW4gYSBsYW5ndWFnZSBvdGhlciB0aGFuIEphdmEsIGJ1dCB3aGljaCBzdXBwb3J0cyBKYXZhIGFubm90YXRpb25zLCBzdWNoIGFzIEdyb292eSBvcgorICAgICAqIFNjYWxhLjwvcD4KKyAgICAgKgorICAgICAqIEBzaW5jZSAzLjUKKyAgICAgKi8KKyAgICBTdHJpbmcgZGVwcmVjYXRlZCgpIGRlZmF1bHQgIiI7CiB9CmRpZmYgLS1naXQgYS9tYXZlbi1wbHVnaW4tdG9vbHMtYW5ub3RhdGlvbnMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3Rvb2xzL3BsdWdpbi9leHRyYWN0b3IvYW5ub3RhdGlvbnMvZGF0YW1vZGVsL01vam9Bbm5vdGF0aW9uQ29udGVudC5qYXZhIGIvbWF2ZW4tcGx1Z2luLXRvb2xzLWFubm90YXRpb25zL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi90b29scy9wbHVnaW4vZXh0cmFjdG9yL2Fubm90YXRpb25zL2RhdGFtb2RlbC9Nb2pvQW5ub3RhdGlvbkNvbnRlbnQuamF2YQppbmRleCAzMzEwNGNiOC4uNjYzNDM1ZmYgMTAwNjQ0Ci0tLSBhL21hdmVuLXBsdWdpbi10b29scy1hbm5vdGF0aW9ucy9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vdG9vbHMvcGx1Z2luL2V4dHJhY3Rvci9hbm5vdGF0aW9ucy9kYXRhbW9kZWwvTW9qb0Fubm90YXRpb25Db250ZW50LmphdmEKKysrIGIvbWF2ZW4tcGx1Z2luLXRvb2xzLWFubm90YXRpb25zL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi90b29scy9wbHVnaW4vZXh0cmFjdG9yL2Fubm90YXRpb25zL2RhdGFtb2RlbC9Nb2pvQW5ub3RhdGlvbkNvbnRlbnQuamF2YQpAQCAtMjA3LDYgKzIwNywzNiBAQCBwdWJsaWMgdm9pZCBuYW1lKCBTdHJpbmcgbmFtZSApCiAgICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CiAgICAgfQogCisgICAgcHVibGljIFN0cmluZyBkZXByZWNhdGVkKCkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXREZXByZWNhdGVkKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZGVwcmVjYXRlZCggU3RyaW5nIGRlcHJlY2F0ZWQgKQorICAgIHsKKyAgICAgICAgc2V0RGVwcmVjYXRlZCggZGVwcmVjYXRlZCApOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgZGVzY3JpcHRpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldERlc2NyaXB0aW9uKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgZGVzY3JpcHRpb24oIFN0cmluZyBkZXNjcmlwdGlvbiApCisgICAgeworICAgICAgICBzZXREZXNjcmlwdGlvbiggZGVzY3JpcHRpb24gKTsKKyAgICB9CisKKyAgICBwdWJsaWMgU3RyaW5nIHNpbmNlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBnZXRTaW5jZSgpOworICAgIH0KKworICAgIHB1YmxpYyB2b2lkIHNpbmNlKCBTdHJpbmcgc2luY2UgKQorICAgIHsKKyAgICAgICAgc2V0U2luY2UoIHNpbmNlICk7CisgICAgfQorCiAgICAgQE92ZXJyaWRlCiAgICAgcHVibGljIFN0cmluZyB0b1N0cmluZygpCiAgICAgewpAQCAtMjI2LDYgKzI1Niw5IEBAIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKQogICAgICAgICBzYi5hcHBlbmQoICIsIGluaGVyaXRCeURlZmF1bHQ9IiApLmFwcGVuZCggaW5oZXJpdEJ5RGVmYXVsdCApOwogICAgICAgICBzYi5hcHBlbmQoICIsIGNvbmZpZ3VyYXRvcj0nIiApLmFwcGVuZCggY29uZmlndXJhdG9yICkuYXBwZW5kKCAnXCcnICk7CiAgICAgICAgIHNiLmFwcGVuZCggIiwgdGhyZWFkU2FmZT0iICkuYXBwZW5kKCB0aHJlYWRTYWZlICk7CisgICAgICAgIHNiLmFwcGVuZCggIiwgZGVwcmVjYXRlZD0nIiApLmFwcGVuZCggZGVwcmVjYXRlZCgpICkuYXBwZW5kKCAnXCcnICk7CisgICAgICAgIHNiLmFwcGVuZCggIiwgZGVzY3JpcHRpb249JyIgKS5hcHBlbmQoIGRlc2NyaXB0aW9uKCkgKS5hcHBlbmQoICdcJycgKTsKKyAgICAgICAgc2IuYXBwZW5kKCAiLCBzaW5jZT0nIiApLmFwcGVuZCggc2luY2UoKSApLmFwcGVuZCggJ1wnJyApOwogICAgICAgICBzYi5hcHBlbmQoICd9JyApOwogICAgICAgICByZXR1cm4gc2IudG9TdHJpbmcoKTsKICAgICB9CmRpZmYgLS1naXQgYS9tYXZlbi1wbHVnaW4tdG9vbHMtYW5ub3RhdGlvbnMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3Rvb2xzL3BsdWdpbi9leHRyYWN0b3IvYW5ub3RhdGlvbnMvZGF0YW1vZGVsL1BhcmFtZXRlckFubm90YXRpb25Db250ZW50LmphdmEgYi9tYXZlbi1wbHVnaW4tdG9vbHMtYW5ub3RhdGlvbnMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3Rvb2xzL3BsdWdpbi9leHRyYWN0b3IvYW5ub3RhdGlvbnMvZGF0YW1vZGVsL1BhcmFtZXRlckFubm90YXRpb25Db250ZW50LmphdmEKaW5kZXggOTE5YWFhNGIuLmNhOGE0OWZjIDEwMDY0NAotLS0gYS9tYXZlbi1wbHVnaW4tdG9vbHMtYW5ub3RhdGlvbnMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3Rvb2xzL3BsdWdpbi9leHRyYWN0b3IvYW5ub3RhdGlvbnMvZGF0YW1vZGVsL1BhcmFtZXRlckFubm90YXRpb25Db250ZW50LmphdmEKKysrIGIvbWF2ZW4tcGx1Z2luLXRvb2xzLWFubm90YXRpb25zL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi90b29scy9wbHVnaW4vZXh0cmFjdG9yL2Fubm90YXRpb25zL2RhdGFtb2RlbC9QYXJhbWV0ZXJBbm5vdGF0aW9uQ29udGVudC5qYXZhCkBAIC02Myw2ICs2MywxNiBAQCBwdWJsaWMgUGFyYW1ldGVyQW5ub3RhdGlvbkNvbnRlbnQoIFN0cmluZyBmaWVsZE5hbWUsIFN0cmluZyBhbGlhcywgU3RyaW5nIHByb3BlcgogICAgICAgICB0aGlzLnJlYWRvbmx5ID0gcmVhZG9ubHk7CiAgICAgfQogCisgICAgcHVibGljIFBhcmFtZXRlckFubm90YXRpb25Db250ZW50KCBTdHJpbmcgZmllbGROYW1lLCBTdHJpbmcgYWxpYXMsIFN0cmluZyBwcm9wZXJ0eSwgU3RyaW5nIGRlZmF1bHRWYWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW4gcmVxdWlyZWQsIGJvb2xlYW4gcmVhZG9ubHksIFN0cmluZyBjbGFzc05hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZGVwcmVjYXRlZCwgU3RyaW5nIGRlc2NyaXB0aW9uLCBTdHJpbmcgc2luY2UgKQorICAgIHsKKyAgICAgICAgdGhpcyggZmllbGROYW1lLCBhbGlhcywgcHJvcGVydHksIGRlZmF1bHRWYWx1ZSwgcmVxdWlyZWQsIHJlYWRvbmx5LCBjbGFzc05hbWUgKTsKKyAgICAgICAgZGVwcmVjYXRlZCggZGVwcmVjYXRlZCApOworICAgICAgICBkZXNjcmlwdGlvbiggZGVzY3JpcHRpb24gKTsKKyAgICAgICAgc2luY2UoIHNpbmNlICk7CisgICAgfQorCiAgICAgcHVibGljIFN0cmluZyBuYW1lKCkKICAgICB7CiAgICAgICAgIHJldHVybiBuYW1lOwpAQCAtMTIzLDYgKzEzMywzNiBAQCBwdWJsaWMgdm9pZCByZWFkb25seSggYm9vbGVhbiByZWFkb25seSApCiAgICAgICAgIHRoaXMucmVhZG9ubHkgPSByZWFkb25seTsKICAgICB9CiAKKyAgICBwdWJsaWMgU3RyaW5nIGRlcHJlY2F0ZWQoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldERlcHJlY2F0ZWQoKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBkZXByZWNhdGVkKCBTdHJpbmcgZGVwcmVjYXRlZCApCisgICAgeworICAgICAgICBzZXREZXByZWNhdGVkKCBkZXByZWNhdGVkICk7CisgICAgfQorCisgICAgcHVibGljIFN0cmluZyBkZXNjcmlwdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gZ2V0RGVzY3JpcHRpb24oKTsKKyAgICB9CisKKyAgICBwdWJsaWMgdm9pZCBkZXNjcmlwdGlvbiggU3RyaW5nIGRlc2NyaXB0aW9uICkKKyAgICB7CisgICAgICAgIHNldERlc2NyaXB0aW9uKCBkZXNjcmlwdGlvbiApOworICAgIH0KKworICAgIHB1YmxpYyBTdHJpbmcgc2luY2UoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGdldFNpbmNlKCk7CisgICAgfQorCisgICAgcHVibGljIHZvaWQgc2luY2UoIFN0cmluZyBzaW5jZSApCisgICAgeworICAgICAgICBzZXRTaW5jZSggc2luY2UgKTsKKyAgICB9CisKICAgICBwdWJsaWMgQ2xhc3M8PyBleHRlbmRzIEFubm90YXRpb24+IGFubm90YXRpb25UeXBlKCkKICAgICB7CiAgICAgICAgIHJldHVybiBudWxsOwpAQCAtMTUwLDYgKzE5MCw5IEBAIHB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKQogICAgICAgICBzYi5hcHBlbmQoICIsIGRlZmF1bHRWYWx1ZT0nIiApLmFwcGVuZCggZGVmYXVsdFZhbHVlICkuYXBwZW5kKCAnXCcnICk7CiAgICAgICAgIHNiLmFwcGVuZCggIiwgcmVxdWlyZWQ9IiApLmFwcGVuZCggcmVxdWlyZWQgKTsKICAgICAgICAgc2IuYXBwZW5kKCAiLCByZWFkb25seT0iICkuYXBwZW5kKCByZWFkb25seSApOworICAgICAgICBzYi5hcHBlbmQoICIsIGRlcHJlY2F0ZWQ9JyIgKS5hcHBlbmQoIGRlcHJlY2F0ZWQoKSApLmFwcGVuZCggJ1wnJyApOworICAgICAgICBzYi5hcHBlbmQoICIsIGRlc2NyaXB0aW9uPSciICkuYXBwZW5kKCBkZXNjcmlwdGlvbigpICkuYXBwZW5kKCAnXCcnICk7CisgICAgICAgIHNiLmFwcGVuZCggIiwgc2luY2U9JyIgKS5hcHBlbmQoIHNpbmNlKCkgKS5hcHBlbmQoICdcJycgKTsKICAgICAgICAgc2IuYXBwZW5kKCAnfScgKTsKICAgICAgICAgcmV0dXJuIHNiLnRvU3RyaW5nKCk7CiAgICAgfQpAQCAtMTk0LDYgKzIzNywxOCBAQCBwdWJsaWMgYm9vbGVhbiBlcXVhbHMoIE9iamVjdCBvICkKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CisgICAgICAgIGlmICggZGVwcmVjYXRlZCgpICE9IG51bGwgPyAhZGVwcmVjYXRlZCgpLmVxdWFscyggdGhhdC5kZXByZWNhdGVkKCkgKSA6IHRoYXQuZGVwcmVjYXRlZCgpICE9IG51bGwgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCBkZXNjcmlwdGlvbigpICE9IG51bGwgPyAhZGVzY3JpcHRpb24oKS5lcXVhbHMoIHRoYXQuZGVzY3JpcHRpb24oKSApIDogdGhhdC5kZXNjcmlwdGlvbigpICE9IG51bGwgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCBzaW5jZSgpICE9IG51bGwgPyAhc2luY2UoKS5lcXVhbHMoIHRoYXQuc2luY2UoKSApIDogdGhhdC5zaW5jZSgpICE9IG51bGwgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KIAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0yMDcsNiArMjYyLDkgQEAgcHVibGljIGludCBoYXNoQ29kZSgpCiAgICAgICAgIHJlc3VsdCA9IDMxICogcmVzdWx0ICsgKCBkZWZhdWx0VmFsdWUgIT0gbnVsbCA/IGRlZmF1bHRWYWx1ZS5oYXNoQ29kZSgpIDogMCApOwogICAgICAgICByZXN1bHQgPSAzMSAqIHJlc3VsdCArICggcmVxdWlyZWQgPyAxIDogMCApOwogICAgICAgICByZXN1bHQgPSAzMSAqIHJlc3VsdCArICggcmVhZG9ubHkgPyAxIDogMCApOworICAgICAgICByZXN1bHQgPSAzMSAqIHJlc3VsdCArICggZGVwcmVjYXRlZCgpICE9IG51bGwgPyBkZXByZWNhdGVkKCkuaGFzaENvZGUoKSA6IDAgKTsKKyAgICAgICAgcmVzdWx0ID0gMzEgKiByZXN1bHQgKyAoIGRlc2NyaXB0aW9uKCkgIT0gbnVsbCA/IGRlc2NyaXB0aW9uKCkuaGFzaENvZGUoKSA6IDAgKTsKKyAgICAgICAgcmVzdWx0ID0gMzEgKiByZXN1bHQgKyAoIHNpbmNlKCkgIT0gbnVsbCA/IHNpbmNlKCkuaGFzaENvZGUoKSA6IDAgKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9tYXZlbi1wbHVnaW4tdG9vbHMtYW5ub3RhdGlvbnMvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL3Rvb2xzL3BsdWdpbi9leHRyYWN0b3IvYW5ub3RhdGlvbnMvRm9vTW9qby5qYXZhIGIvbWF2ZW4tcGx1Z2luLXRvb2xzLWFubm90YXRpb25zL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9tYXZlbi90b29scy9wbHVnaW4vZXh0cmFjdG9yL2Fubm90YXRpb25zL0Zvb01vam8uamF2YQppbmRleCA2NzNmOGIxYS4uZWU4NTI3YjIgMTAwNjQ0Ci0tLSBhL21hdmVuLXBsdWdpbi10b29scy1hbm5vdGF0aW9ucy9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vdG9vbHMvcGx1Z2luL2V4dHJhY3Rvci9hbm5vdGF0aW9ucy9Gb29Nb2pvLmphdmEKKysrIGIvbWF2ZW4tcGx1Z2luLXRvb2xzLWFubm90YXRpb25zL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9tYXZlbi90b29scy9wbHVnaW4vZXh0cmFjdG9yL2Fubm90YXRpb25zL0Zvb01vam8uamF2YQpAQCAtMzMsNyArMzMsNyBAQAogLyoqCiAgKiBAYXV0aG9yIE9saXZpZXIgTGFteQogICovCi1ATW9qbyggbmFtZSA9ICJmb28iLCBkZWZhdWx0UGhhc2UgPSBMaWZlY3ljbGVQaGFzZS5DT01QSUxFLCB0aHJlYWRTYWZlID0gdHJ1ZSApCitATW9qbyggbmFtZSA9ICJmb28iLCBkZWZhdWx0UGhhc2UgPSBMaWZlY3ljbGVQaGFzZS5DT01QSUxFLCB0aHJlYWRTYWZlID0gdHJ1ZSwgZGVzY3JpcHRpb24gPSAiVGhpcyBpcyBhIGRlc2NyaXB0aW9uLiIsIHNpbmNlID0gIjMuNSIsIGRlcHJlY2F0ZWQgPSAiYmVjYXVzZSBJIHNhaWQgc28iICkKIEBFeGVjdXRlKCBnb2FsID0gImNvbXBpbGVyIiwgbGlmZWN5Y2xlID0gIm15LWxpZmVjeWNsZSIsIHBoYXNlID0gTGlmZWN5Y2xlUGhhc2UuUEFDS0FHRSApCiBwdWJsaWMgY2xhc3MgRm9vTW9qbwogICAgIGV4dGVuZHMgQWJzdHJhY3RNb2pvCkBAIC01Miw2ICs1MiwxMCBAQAogICAgIEBQYXJhbWV0ZXIoIHByb3BlcnR5ID0gInRoZWJlZXIiLCBkZWZhdWx0VmFsdWUgPSAiY29vbGJlZXIiICkKICAgICBwcm90ZWN0ZWQgU3RyaW5nIGJlZXI7CiAKKyAgICBAUGFyYW1ldGVyKCBkZXNjcmlwdGlvbiA9ICJ3aW5lIGZvciBmcmVuY2ggZm9sa3MiLCBzaW5jZSA9ICJmb3JldmVyIGFnbyIsIGRlcHJlY2F0ZWQgPSAiYmVlciBpcyBiZXR0ZXIiICkKKyAgICBARGVwcmVjYXRlZAorICAgIHByb3RlY3RlZCBTdHJpbmcgd2luZTsKKwogICAgIC8qKgogICAgICAqIFBsZXh1cyBjb21waWxlciBtYW5hZ2VyLgogICAgICAqLwpkaWZmIC0tZ2l0IGEvbWF2ZW4tcGx1Z2luLXRvb2xzLWFubm90YXRpb25zL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9tYXZlbi90b29scy9wbHVnaW4vZXh0cmFjdG9yL2Fubm90YXRpb25zL1Rlc3RBbm5vdGF0aW9uc1JlYWRlci5qYXZhIGIvbWF2ZW4tcGx1Z2luLXRvb2xzLWFubm90YXRpb25zL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9tYXZlbi90b29scy9wbHVnaW4vZXh0cmFjdG9yL2Fubm90YXRpb25zL1Rlc3RBbm5vdGF0aW9uc1JlYWRlci5qYXZhCmluZGV4IDE3YTI0YmZkLi4xMjM1OWJlZSAxMDA2NDQKLS0tIGEvbWF2ZW4tcGx1Z2luLXRvb2xzLWFubm90YXRpb25zL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9tYXZlbi90b29scy9wbHVnaW4vZXh0cmFjdG9yL2Fubm90YXRpb25zL1Rlc3RBbm5vdGF0aW9uc1JlYWRlci5qYXZhCisrKyBiL21hdmVuLXBsdWdpbi10b29scy1hbm5vdGF0aW9ucy9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vdG9vbHMvcGx1Z2luL2V4dHJhY3Rvci9hbm5vdGF0aW9ucy9UZXN0QW5ub3RhdGlvbnNSZWFkZXIuamF2YQpAQCAtNzEsNiArNzEsOSBAQCBwdWJsaWMgdm9pZCB0ZXN0UmVhZE1vam9DbGFzcygpCiAgICAgICAgIGFzc2VydEVxdWFscyggdHJ1ZSwgbW9qby50aHJlYWRTYWZlKCkgKTsKICAgICAgICAgYXNzZXJ0RXF1YWxzKCBmYWxzZSwgbW9qby5hZ2dyZWdhdG9yKCkgKTsKICAgICAgICAgYXNzZXJ0RXF1YWxzKCBMaWZlY3ljbGVQaGFzZS5DT01QSUxFLCBtb2pvLmRlZmF1bHRQaGFzZSgpICk7CisgICAgICAgIGFzc2VydEVxdWFscyggIlRoaXMgaXMgYSBkZXNjcmlwdGlvbi4iLCBtb2pvLmRlc2NyaXB0aW9uKCkgKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCAiMy41IiwgbW9qby5zaW5jZSgpICk7CisgICAgICAgIGFzc2VydEVxdWFscyggImJlY2F1c2UgSSBzYWlkIHNvIiwgbW9qby5kZXByZWNhdGVkKCkgKTsKIAogICAgICAgICBFeGVjdXRlIGV4ZWN1dGUgPSBtb2pvQW5ub3RhdGVkQ2xhc3MuZ2V0RXhlY3V0ZSgpOwogCkBAIC04Miw5ICs4NSwxMiBAQCBwdWJsaWMgdm9pZCB0ZXN0UmVhZE1vam9DbGFzcygpCiAgICAgICAgIEFzc2VydGlvbnMuYXNzZXJ0VGhhdCggY29tcG9uZW50cyApLmlzTm90TnVsbCgpLmlzTm90RW1wdHkoKS5oYXNTaXplKCAyICk7CiAKICAgICAgICAgQ29sbGVjdGlvbjxQYXJhbWV0ZXJBbm5vdGF0aW9uQ29udGVudD4gcGFyYW1ldGVycyA9IG1vam9Bbm5vdGF0ZWRDbGFzcy5nZXRQYXJhbWV0ZXJzKCkudmFsdWVzKCk7Ci0gICAgICAgIEFzc2VydGlvbnMuYXNzZXJ0VGhhdCggcGFyYW1ldGVycyApLmlzTm90TnVsbCgpLmlzTm90RW1wdHkoKS5oYXNTaXplKCAyICkuY29udGFpbnMoCisgICAgICAgIEFzc2VydGlvbnMuYXNzZXJ0VGhhdCggcGFyYW1ldGVycyApLmlzTm90TnVsbCgpLmlzTm90RW1wdHkoKS5oYXNTaXplKCAzICkuY29udGFpbnMoCiAgICAgICAgICAgICBuZXcgUGFyYW1ldGVyQW5ub3RhdGlvbkNvbnRlbnQoICJiYXIiLCBudWxsLCAidGhlYmFyIiwgImNvb2xiYXIiLCB0cnVlLCBmYWxzZSwgU3RyaW5nLmNsYXNzLmdldE5hbWUoKSApLAogICAgICAgICAgICAgbmV3IFBhcmFtZXRlckFubm90YXRpb25Db250ZW50KCAiYmVlciIsIG51bGwsICJ0aGViZWVyIiwgImNvb2xiZWVyIiwgZmFsc2UsIGZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTdHJpbmcuY2xhc3MuZ2V0TmFtZSgpICkgKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nLmNsYXNzLmdldE5hbWUoKSApLAorICAgICAgICAgICAgbmV3IFBhcmFtZXRlckFubm90YXRpb25Db250ZW50KCAid2luZSIsIG51bGwsIG51bGwsIG51bGwsIGZhbHNlLCBmYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nLmNsYXNzLmdldE5hbWUoKSwgImJlZXIgaXMgYmV0dGVyIiwgIndpbmUgZm9yIGZyZW5jaCBmb2xrcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb3JldmVyIGFnbyIgKSApOwogICAgIH0KIH0KCgogCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgaXMgYW4gYXV0b21hdGVkIG1lc3NhZ2UgZnJvbSB0aGUgQXBhY2hlIEdpdCBTZXJ2aWNlLgpUbyByZXNwb25kIHRvIHRoZSBtZXNzYWdlLCBwbGVhc2UgbG9nIG9uIEdpdEh1YiBhbmQgdXNlIHRoZQpVUkwgYWJvdmUgdG8gZ28gdG8gdGhlIHNwZWNpZmljIGNvbW1lbnQuCiAKRm9yIHF1ZXJpZXMgYWJvdXQgdGhpcyBzZXJ2aWNlLCBwbGVhc2UgY29udGFjdCBJbmZyYXN0cnVjdHVyZSBhdDoKdXNlcnNAaW5mcmEuYXBhY2hlLm9yZwoKCldpdGggcmVnYXJkcywKQXBhY2hlIEdpdCBTZXJ2aWNlcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MzQzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBPY3QgMjYgMDc6NDE6NDUgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzQzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDAwNjVEMTdFN0EKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAyNiBPY3QgMjAxNyAwNzo0MTo0NSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI3Nzc4IGludm9rZWQgYnkgdWlkIDUwMCk7IDI2IE9jdCAyMDE3IDA3OjQxOjQzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNzQwOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBPY3QgMjAxNyAwNzo0MTo0MyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI3MzE2IGludm9rZWQgYnkgdWlkIDk5KTsgMjYgT2N0IDIwMTcgMDc6NDE6NDMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZWMyLTUyLTIwMi04MC03MC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSAoSEVMTyBnaXRib3guYXBhY2hlLm9yZykgKDUyLjIwMi44MC43MCkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyNiBPY3QgMjAxNyAwNzo0MTo0MyArMDAwMApGcm9tOiBHaXRCb3ggPGdpdEBhcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0dpdEh1Yl0gYXNmZ2l0IGNsb3NlZCBwdWxsIHJlcXVlc3QgIzc6IE1QTFVHSU4tMjk0IC0gJ3JlcG9ydCcgbW9qbyBzaG91bGQgdXNlICdleHRyYWN0b3JzJyBjb25maWd1cmF0aW9uIHBhcmFtZXRlcgpNZXNzYWdlLUlEOiA8MTUwOTAwMzcwMjk3LjIyNjguMTc0MTY3OTUwNjU1MTc4NTE4MDEuZ2l0Ym94QGdpdGJveC5hcGFjaGUub3JnPgoKYXNmZ2l0IGNsb3NlZCBwdWxsIHJlcXVlc3QgIzc6IE1QTFVHSU4tMjk0IC0gJ3JlcG9ydCcgbW9qbyBzaG91bGQgdXNlICdleHRyYWN0b3JzJyBjb25maWd1cmF0aW9uIHBhcmFtZXRlcgpVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2luLXRvb2xzL3B1bGwvNwogCiAKICAgCgpUaGlzIGlzIGEgUFIgbWVyZ2VkIGZyb20gYSBmb3JrZWQgcmVwb3NpdG9yeS4KQXMgR2l0SHViIGhpZGVzIHRoZSBvcmlnaW5hbCBkaWZmIG9uIG1lcmdlLCBpdCBpcyBkaXNwbGF5ZWQgYmVsb3cgZm9yCnRoZSBzYWtlIG9mIHByb3ZlbmFuY2U6CgpBcyB0aGlzIGlzIGEgZm9yZWlnbiBwdWxsIHJlcXVlc3QgKGZyb20gYSBmb3JrKSwgdGhlIGRpZmYgaXMgc3VwcGxpZWQKYmVsb3cgKGFzIGl0IHdvbid0IHNob3cgb3RoZXJ3aXNlIGR1ZSB0byBHaXRIdWIgbWFnaWMpOgoKZGlmZiAtLWdpdCBhL21hdmVuLXBsdWdpbi1wbHVnaW4vc3JjL2l0L21wbHVnaW4tMjk0LXJlcG9ydC1leHRyYWN0b3JzL2ludm9rZXIucHJvcGVydGllcyBiL21hdmVuLXBsdWdpbi1wbHVnaW4vc3JjL2l0L21wbHVnaW4tMjk0LXJlcG9ydC1leHRyYWN0b3JzL2ludm9rZXIucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uYzMwYzRjODMKLS0tIC9kZXYvbnVsbAorKysgYi9tYXZlbi1wbHVnaW4tcGx1Z2luL3NyYy9pdC9tcGx1Z2luLTI5NC1yZXBvcnQtZXh0cmFjdG9ycy9pbnZva2VyLnByb3BlcnRpZXMKQEAgLTAsMCArMSwyMCBAQAorIyBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCisjIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorIyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorIyByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCisjIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorIyB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjIAorIyAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorIyAKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorIyBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorIyAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKKyMgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisjIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyMgdW5kZXIgdGhlIExpY2Vuc2UuCisKK2ludm9rZXIuZ29hbHMgPSBjbGVhbiBzaXRlIC1Ec2tpcFRlc3RzCisKKyNpbnZva2VyLmRlYnVnID0gZmFsc2UKZGlmZiAtLWdpdCBhL21hdmVuLXBsdWdpbi1wbHVnaW4vc3JjL2l0L21wbHVnaW4tMjk0LXJlcG9ydC1leHRyYWN0b3JzL3BvbS54bWwgYi9tYXZlbi1wbHVnaW4tcGx1Z2luL3NyYy9pdC9tcGx1Z2luLTI5NC1yZXBvcnQtZXh0cmFjdG9ycy9wb20ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi5mMDYwY2UzMgotLS0gL2Rldi9udWxsCisrKyBiL21hdmVuLXBsdWdpbi1wbHVnaW4vc3JjL2l0L21wbHVnaW4tMjk0LXJlcG9ydC1leHRyYWN0b3JzL3BvbS54bWwKQEAgLTAsMCArMSwxMDAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CisKKzwhLS0KK0xpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKK29yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQorZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KK3JlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKK3RvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKKyJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKK3dpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKworVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCitzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCit1bmRlciB0aGUgTGljZW5zZS4KKy0tPgorCis8cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy94c2QvbWF2ZW4tNC4wLjAueHNkIj4KKyAgPG1vZGVsVmVyc2lvbj40LjAuMDwvbW9kZWxWZXJzaW9uPgorCisgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4uaXRzPC9ncm91cElkPgorICA8YXJ0aWZhY3RJZD5wbHVnaW4tcmVwb3J0LWV4dHJhY3RvcnM8L2FydGlmYWN0SWQ+CisgIDx2ZXJzaW9uPjEuMC1TTkFQU0hPVDwvdmVyc2lvbj4KKyAgPHBhY2thZ2luZz5tYXZlbi1wbHVnaW48L3BhY2thZ2luZz4KKworICA8bmFtZT5NUExVR0lOLTI5NDwvbmFtZT4gCisgIDxkZXNjcmlwdGlvbj4KKyAgICBSZXBvcnQgd2l0aCAnamF2YS1hbm5vdGF0aW9ucycgZXh0cmFjdG9yIG9ubHkuCisgIDwvZGVzY3JpcHRpb24+CisKKyAgPHByb3BlcnRpZXM+CisgICAgPHByb2plY3QuYnVpbGQuc291cmNlRW5jb2Rpbmc+VVRGLTg8L3Byb2plY3QuYnVpbGQuc291cmNlRW5jb2Rpbmc+CisgIDwvcHJvcGVydGllcz4KKworICA8ZGVwZW5kZW5jaWVzPgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbjwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXBsdWdpbi1hcGk8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj4yLjA8L3ZlcnNpb24+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW4tdG9vbHM8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1wbHVnaW4tYW5ub3RhdGlvbnM8L2FydGlmYWN0SWQ+CisgICAgICA8dmVyc2lvbj5AcHJvamVjdC52ZXJzaW9uQDwvdmVyc2lvbj4KKyAgICAgIDxzY29wZT5wcm92aWRlZDwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICA8L2RlcGVuZGVuY2llcz4KKworICA8YnVpbGQ+CisgICAgPHBsdWdpbnM+CisgICAgICA8cGx1Z2luPgorICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CisgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXBsdWdpbi1wbHVnaW48L2FydGlmYWN0SWQ+CisgICAgICAgIDx2ZXJzaW9uPkBwcm9qZWN0LnZlcnNpb25APC92ZXJzaW9uPgorICAgICAgICA8Y29uZmlndXJhdGlvbj4KKyAgICAgICAgICA8ZXh0cmFjdG9ycz4KKyAgICAgICAgICAgIDxleHRyYWN0b3I+amF2YS1hbm5vdGF0aW9uczwvZXh0cmFjdG9yPgorICAgICAgICAgIDwvZXh0cmFjdG9ycz4KKyAgICAgICAgPC9jb25maWd1cmF0aW9uPgorICAgICAgPC9wbHVnaW4+CisgICAgICA8cGx1Z2luPgorICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CisgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXNpdGUtcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICA8dmVyc2lvbj5Ac2l0ZVBsdWdpblZlcnNpb25APC92ZXJzaW9uPgorICAgICAgPC9wbHVnaW4+CisgICAgPC9wbHVnaW5zPgorICA8L2J1aWxkPgorCisgIDxyZXBvcnRpbmc+CisgICAgPHBsdWdpbnM+CisgICAgICA8cGx1Z2luPgorICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CisgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXByb2plY3QtaW5mby1yZXBvcnRzLXBsdWdpbjwvYXJ0aWZhY3RJZD4KKyAgICAgICAgPHZlcnNpb24+Mi44LjE8L3ZlcnNpb24+CisgICAgICAgIDxyZXBvcnRTZXRzPgorICAgICAgICAgIDxyZXBvcnRTZXQ+CisgICAgICAgICAgICA8cmVwb3J0cz4KKyAgICAgICAgICAgICAgPHJlcG9ydD5pbmRleDwvcmVwb3J0PgorICAgICAgICAgICAgPC9yZXBvcnRzPgorICAgICAgICAgIDwvcmVwb3J0U2V0PgorICAgICAgICA8L3JlcG9ydFNldHM+CisgICAgICA8L3BsdWdpbj4KKworICAgICAgPHBsdWdpbj4KKyAgICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgorICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1wbHVnaW4tcGx1Z2luPC9hcnRpZmFjdElkPgorICAgICAgICA8dmVyc2lvbj5AcHJvamVjdC52ZXJzaW9uQDwvdmVyc2lvbj4KKyAgICAgICAgPGNvbmZpZ3VyYXRpb24+CisgICAgICAgICAgPGV4dHJhY3RvcnM+CisgICAgICAgICAgICA8ZXh0cmFjdG9yPmphdmEtYW5ub3RhdGlvbnM8L2V4dHJhY3Rvcj4KKyAgICAgICAgICA8L2V4dHJhY3RvcnM+CisgICAgICAgIDwvY29uZmlndXJhdGlvbj4KKyAgICAgIDwvcGx1Z2luPgorICAgIDwvcGx1Z2lucz4KKyAgPC9yZXBvcnRpbmc+Cis8L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9tYXZlbi1wbHVnaW4tcGx1Z2luL3NyYy9pdC9tcGx1Z2luLTI5NC1yZXBvcnQtZXh0cmFjdG9ycy9zcmMvbWFpbi9qYXZhL29yZy9NeU1vam8uamF2YSBiL21hdmVuLXBsdWdpbi1wbHVnaW4vc3JjL2l0L21wbHVnaW4tMjk0LXJlcG9ydC1leHRyYWN0b3JzL3NyYy9tYWluL2phdmEvb3JnL015TW9qby5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi44MmE5NWFiMwotLS0gL2Rldi9udWxsCisrKyBiL21hdmVuLXBsdWdpbi1wbHVnaW4vc3JjL2l0L21wbHVnaW4tMjk0LXJlcG9ydC1leHRyYWN0b3JzL3NyYy9tYWluL2phdmEvb3JnL015TW9qby5qYXZhCkBAIC0wLDAgKzEsNjUgQEAKK3BhY2thZ2Ugb3JnOworCisvKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoKKyAqICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAorICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KKyAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQorICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCisgKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCisgKiB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCitpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW4uQWJzdHJhY3RNb2pvOworaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy5hbm5vdGF0aW9ucy5SZXNvbHV0aW9uU2NvcGU7CitpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zLmFubm90YXRpb25zLkV4ZWN1dGU7CitpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zLmFubm90YXRpb25zLkxpZmVjeWNsZVBoYXNlOworaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy5hbm5vdGF0aW9ucy5Nb2pvOworaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy5hbm5vdGF0aW9ucy5QYXJhbWV0ZXI7CisKKy8qKgorICogRG9lcyBub3RoaW5nLgorICoKKyAqIEBzaW5jZSAxLjAKKyAqIEBkZXByZWNhdGVkIFlvdSBkb24ndCB1c2UgdGVzdCBnb2FscywgZG8geW91PworICovCitATW9qbyggbmFtZSA9ICJub29wIiwgZGVmYXVsdFBoYXNlID0gTGlmZWN5Y2xlUGhhc2UuUFJPQ0VTU19TT1VSQ0VTLAorICAgICAgIHJlcXVpcmVzRGVwZW5kZW5jeVJlc29sdXRpb24gPSBSZXNvbHV0aW9uU2NvcGUuVEVTVCwKKyAgICAgICByZXF1aXJlc0RpcmVjdEludm9jYXRpb24gPSB0cnVlLCByZXF1aXJlc09ubGluZSA9IHRydWUsIGluaGVyaXRCeURlZmF1bHQgPSBmYWxzZSwgYWdncmVnYXRvciA9IHRydWUgKQorQEV4ZWN1dGUoIHBoYXNlID0gTGlmZWN5Y2xlUGhhc2UuQ09NUElMRSApCitwdWJsaWMgY2xhc3MgTXlNb2pvCisgICAgZXh0ZW5kcyBBYnN0cmFjdE1vam8KK3sKKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgYSB0ZXN0LgorICAgICAqLworICAgIEBTdXBwcmVzc1dhcm5pbmdzKCAidW51c2VkIiApCisgICAgQFBhcmFtZXRlciggcmVxdWlyZWQgPSB0cnVlICkKKyAgICBwcml2YXRlIFN0cmluZyByZXF1aXJlZDsKKworICAgIC8qKgorICAgICAqIFRoaXMgaXMgYSB0ZXN0LgorICAgICAqCisgICAgICogQHNpbmNlIDEuMQorICAgICAqIEBkZXByZWNhdGVkIEp1c3QgdGVzdGluZy4KKyAgICAgKi8KKyAgICBAU3VwcHJlc3NXYXJuaW5ncyggInVudXNlZCIgKQorICAgIEBQYXJhbWV0ZXIoIHByb3BlcnR5ID0gInN0cmluZyIsIGRlZmF1bHRWYWx1ZSA9ICIke3Byb2plY3QudmVyc2lvbn0vPC9tYXJrdXAtbXVzdC1iZS1lc2NhcGVkPiIgKQorICAgIHByaXZhdGUgU3RyaW5nIHN0cmluZzsKKworICAgIHB1YmxpYyB2b2lkIGV4ZWN1dGUoKQorICAgIHsKKyAgICAgICAgLy8gaW50ZW50aW9uYWwgZG8gbm90aGluZworICAgIH0KKworfQpkaWZmIC0tZ2l0IGEvbWF2ZW4tcGx1Z2luLXBsdWdpbi9zcmMvaXQvbXBsdWdpbi0yOTQtcmVwb3J0LWV4dHJhY3RvcnMvdmVyaWZ5Lmdyb292eSBiL21hdmVuLXBsdWdpbi1wbHVnaW4vc3JjL2l0L21wbHVnaW4tMjk0LXJlcG9ydC1leHRyYWN0b3JzL3ZlcmlmeS5ncm9vdnkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLmUyMzJhZTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbWF2ZW4tcGx1Z2luLXBsdWdpbi9zcmMvaXQvbXBsdWdpbi0yOTQtcmVwb3J0LWV4dHJhY3RvcnMvdmVyaWZ5Lmdyb292eQpAQCAtMCwwICsxLDI3IEBACisvKgorICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQorICogb3IgbW9yZSBjb250cmlidXRvciBsaWNlbnNlIGFncmVlbWVudHMuICBTZWUgdGhlIE5PVElDRSBmaWxlCisgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQorICogdG8geW91IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZQorICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQorICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICogCisgKiAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICogCisgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCisgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgorICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCisgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKK2RlZiBmb3VuZCA9IGZhbHNlCituZXcgRmlsZShiYXNlZGlyLCAiYnVpbGQubG9nIikuZWFjaExpbmUgeworICAgIGxpbmUgLT4KKyAgICBpZiAobGluZS5jb250YWlucygiamF2YS1qYXZhZG9jIG1vam8gZXh0cmFjdG9yIikpIHsKKyAgICAgICAgZm91bmQgPSB0cnVlCisgICAgfQorfQorYXNzZXJ0ICFmb3VuZDogIlRoZSBidWlsZCBzaG91bGRuJ3QgdXNlICdqYXZhLWphdmFkb2MnIGV4dHJhY3Rvci4iCmRpZmYgLS1naXQgYS9tYXZlbi1wbHVnaW4tcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW4vcGx1Z2luL1BsdWdpblJlcG9ydC5qYXZhIGIvbWF2ZW4tcGx1Z2luLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2luL3BsdWdpbi9QbHVnaW5SZXBvcnQuamF2YQppbmRleCBmYTVjNDI0Mi4uMzIwNWZjNzggMTAwNjQ0Ci0tLSBhL21hdmVuLXBsdWdpbi1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbi9wbHVnaW4vUGx1Z2luUmVwb3J0LmphdmEKKysrIGIvbWF2ZW4tcGx1Z2luLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2luL3BsdWdpbi9QbHVnaW5SZXBvcnQuamF2YQpAQCAtMTQ0LDYgKzE0NCwzMiBAQAogICAgIHByb3RlY3RlZCBTdHJpbmcgZ29hbFByZWZpeDsKIAogICAgIC8qKgorICAgICAqIFRoZSByb2xlIG5hbWVzIG9mIG1vam8gZXh0cmFjdG9ycyB0byB1c2UuCisgICAgICogPHAvPgorICAgICAqIElmIG5vdCBzZXQsIGFsbCBtb2pvIGV4dHJhY3RvcnMgd2lsbCBiZSB1c2VkLiBJZiBzZXQgdG8gYW4gZW1wdHkgZXh0cmFjdG9yIG5hbWUsIG5vIG1vam8gZXh0cmFjdG9ycworICAgICAqIHdpbGwgYmUgdXNlZC4KKyAgICAgKiA8cC8+CisgICAgICogRXhhbXBsZToKKyAgICAgKiA8cC8+CisgICAgICogPHByZT4KKyAgICAgKiAgJmx0OyEtLSBVc2UgYWxsIG1vam8gZXh0cmFjdG9ycyAtLSZndDsKKyAgICAgKiAgJmx0O2V4dHJhY3RvcnMvJmd0OworICAgICAqCisgICAgICogICZsdDshLS0gVXNlIG5vIG1vam8gZXh0cmFjdG9ycyAtLSZndDsKKyAgICAgKiAgJmx0O2V4dHJhY3RvcnMmZ3Q7CisgICAgICogICAgICAmbHQ7ZXh0cmFjdG9yLyZndDsKKyAgICAgKiAgJmx0Oy9leHRyYWN0b3JzJmd0OworICAgICAqCisgICAgICogICZsdDshLS0gVXNlIG9ubHkgYnNoIG1vam8gZXh0cmFjdG9yIC0tJmd0OworICAgICAqICAmbHQ7ZXh0cmFjdG9ycyZndDsKKyAgICAgKiAgICAgICZsdDtleHRyYWN0b3ImZ3Q7YnNoJmx0Oy9leHRyYWN0b3ImZ3Q7CisgICAgICogICZsdDsvZXh0cmFjdG9ycyZndDsKKyAgICAgKiA8L3ByZT4KKyAgICAgKi8KKyAgICBAUGFyYW1ldGVyCisgICAgcHJvdGVjdGVkIFNldDxTdHJpbmc+IGV4dHJhY3RvcnM7CisKKyAgICAvKioKICAgICAgKiBTZXQgdGhpcyB0byAidHJ1ZSIgdG8gc2tpcCBpbnZva2luZyBhbnkgZ29hbHMgb3IgcmVwb3J0cyBvZiB0aGUgcGx1Z2luLgogICAgICAqCiAgICAgICogQHNpbmNlIDIuOApAQCAtMjU4LDYgKzI4NCw4IEBAIHByaXZhdGUgUGx1Z2luRGVzY3JpcHRvciBleHRyYWN0UGx1Z2luRGVzY3JpcHRvcigpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBkZWZhdWx0R29hbFByZWZpeCArICInLlxuIiApOwogICAgICAgICB9CiAKKyAgICAgICAgbW9qb1NjYW5uZXIuc2V0QWN0aXZlRXh0cmFjdG9ycyggZXh0cmFjdG9ycyApOworCiAgICAgICAgIC8vIFRPRE86IGNvdWxkIHVzZSB0aGlzIG1vcmUsIGVnIGluIHRoZSB3cml0aW5nIG9mIHRoZSBwbHVnaW4gZGVzY3JpcHRvciEKICAgICAgICAgUGx1Z2luRGVzY3JpcHRvciBwbHVnaW5EZXNjcmlwdG9yID0gbmV3IFBsdWdpbkRlc2NyaXB0b3IoKTsKIAoKCiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVGhpcyBpcyBhbiBhdXRvbWF0ZWQgbWVzc2FnZSBmcm9tIHRoZSBBcGFjaGUgR2l0IFNlcnZpY2UuClRvIHJlc3BvbmQgdG8gdGhlIG1lc3NhZ2UsIHBsZWFzZSBsb2cgb24gR2l0SHViIGFuZCB1c2UgdGhlClVSTCBhYm92ZSB0byBnbyB0byB0aGUgc3BlY2lmaWMgY29tbWVudC4KIApGb3IgcXVlcmllcyBhYm91dCB0aGlzIHNlcnZpY2UsIHBsZWFzZSBjb250YWN0IEluZnJhc3RydWN0dXJlIGF0Ogp1c2Vyc0BpbmZyYS5hcGFjaGUub3JnCgoKV2l0aCByZWdhcmRzLApBcGFjaGUgR2l0IFNlcnZpY2VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzNDUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE9jdCAyNiAwODozOTozNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzNDUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRjNFODgxMDA3NgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDI2IE9jdCAyMDE3IDA4OjM5OjM0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzc4MDUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjYgT2N0IDIwMTcgMDg6Mzk6MzQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM3NzAyIGludm9rZWQgYnkgdWlkIDUwMCk7IDI2IE9jdCAyMDE3IDA4OjM5OjM0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzc2OTEgaW52b2tlZCBieSB1aWQgOTkpOyAyNiBPY3QgMjAxNyAwODozOTozNCAtMDAwMApSZWNlaXZlZDogZnJvbSBlYzItNTItMjAyLTgwLTcwLmNvbXB1dGUtMS5hbWF6b25hd3MuY29tIChIRUxPIGdpdGJveC5hcGFjaGUub3JnKSAoNTIuMjAyLjgwLjcwKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDI2IE9jdCAyMDE3IDA4OjM5OjM0ICswMDAwCkZyb206IEdpdEJveCA8Z2l0QGFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBbR2l0SHViXSB0aGVpdCBvcGVuZWQgYSBuZXcgcHVsbCByZXF1ZXN0ICMxOTogRml4IGZvciBNUkVMRUFTRS04MzU6IEF1dG9tYXRpY2FsbHkgcmVzb2x2ZSBzbmFwc2hvdCBkZXBlbmRlbmNpZXMgaW4gcmVsZWFzZTpwcmVwYXJlCk1lc3NhZ2UtSUQ6IDwxNTA5MDA3MTczOTMuMjgyMDAuNjE5NzI0NzI4MTk4MTc3MDA4OS5naXRib3hAZ2l0Ym94LmFwYWNoZS5vcmc+Cgp0aGVpdCBvcGVuZWQgYSBuZXcgcHVsbCByZXF1ZXN0ICMxOTogRml4IGZvciBNUkVMRUFTRS04MzU6IEF1dG9tYXRpY2FsbHkgcmVzb2x2ZSBzbmFwc2hvdCBkZXBlbmRlbmNpZXMgaW4gcmVsZWFzZTpwcmVwYXJlClVSTDogaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1yZWxlYXNlL3B1bGwvMTkKIAogCiAgIFRoaXMgcHVsbCByZXF1ZXN0cyBhZGRzIHN1cHBvcnQgdG8gcmVsZWFzZTpwcmVwYXJlIHRvIGxldCBpdCBhdXRvbWF0aWNhbGx5IHJlc29sdmUgc25hcHNob3QgZGVwZW5kZW5jaWVzIHdpdGhvdXQgdXNlciBpbnRlcmFjdGlvbi4gV2l0aG91dCB0aGlzIGl0IGlzIChhbG1vc3QpIGltcG9zc2libGUgdG8gdXNlIHRoZSByZWxlYXNlIHBsdWdpbiBpbiBmdWxsIGJhdGNoIG1vZGU6CiAgIAogICBBc3N1bWUgeW91ciBwcm9qZWN0IEEncyBwb20ueG1sIGNvbnRhaW5zIGEgc25hcHNob3QgZGVwZW5kZW5jeSB0byBwcm9qZWN0IEIgd2hpY2ggd2FzIHJlbGVhc2VkIGluIHRoZSBtZWFudGltZS4gQXMgbG9uZyBhcyB5b3UncmUgcnVubmluZyAibXZuIHJlbGVhc2U6cHJlcGFyZSByZWxlYXNlOnBlcmZvcm0iIGluIGEgY29uc29sZSBvbiBwcm9qZWN0IEEsIGV2ZXJ5dGhpbmcgd29ya3M7IHRoZSB1c2VyIGlzIGFza2VkIHRvIHJlc29sdmUgdGhlIHNuYXBzaG90IGRlcGVuZGVuY3kuIFNvIGZhciwgc28gZ29vZC4KICAgSWYgeW91J3JlIHVzaW5nIGEgYnVpbGQgc2VydmVyIGZvciBkb2luZyByZWxlYXNlcyBpbiBiYXRjaCBtb2RlLCBpLmUuIHdpdGhvdXQgdGhlIGFiaWxpdHkgZm9yIHVzZXIgaW50ZXJhY3Rpb24sIHRoaXMgd29uJ3Qgd29yayBiZWNhdXNlIHJlbGVhc2U6cHJlcGFyZSBoYW5ncyB3aGlsZSB3YWl0aW5nIGZvciB1c2VyIGlucHV0IHRoYXQgbmV2ZXIgaGFwcGVucy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVGhpcyBpcyBhbiBhdXRvbWF0ZWQgbWVzc2FnZSBmcm9tIHRoZSBBcGFjaGUgR2l0IFNlcnZpY2UuClRvIHJlc3BvbmQgdG8gdGhlIG1lc3NhZ2UsIHBsZWFzZSBsb2cgb24gR2l0SHViIGFuZCB1c2UgdGhlClVSTCBhYm92ZSB0byBnbyB0byB0aGUgc3BlY2lmaWMgY29tbWVudC4KIApGb3IgcXVlcmllcyBhYm91dCB0aGlzIHNlcnZpY2UsIHBsZWFzZSBjb250YWN0IEluZnJhc3RydWN0dXJlIGF0Ogp1c2Vyc0BpbmZyYS5hcGFjaGUub3JnCgoKV2l0aCByZWdhcmRzLApBcGFjaGUgR2l0IFNlcnZpY2VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzNDctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE9jdCAyNiAxMTozMDo1OSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzNDctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMjZBMEYxMDY2NwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDI2IE9jdCAyMDE3IDExOjMwOjU5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzY4OTEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjYgT2N0IDIwMTcgMTE6MzA6NTggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM2ODE4IGludm9rZWQgYnkgdWlkIDUwMCk7IDI2IE9jdCAyMDE3IDExOjMwOjU4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzY4MDcgaW52b2tlZCBieSB1aWQgOTkpOyAyNiBPY3QgMjAxNyAxMTozMDo1OCAtMDAwMApSZWNlaXZlZDogZnJvbSBlYzItNTItMjAyLTgwLTcwLmNvbXB1dGUtMS5hbWF6b25hd3MuY29tIChIRUxPIGdpdGJveC5hcGFjaGUub3JnKSAoNTIuMjAyLjgwLjcwKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDI2IE9jdCAyMDE3IDExOjMwOjU4ICswMDAwCkZyb206IEdpdEJveCA8Z2l0QGFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBbR2l0SHViXSBhc2Zib3QgY29tbWVudGVkIG9uIGlzc3VlICM2OiBhZGQgYSBJVCBjYXNlIGZvciBiYW5uZWREZXBlbmRlbmNpZXMgaW4gYSBtdWx0aSBtb2R1bGUgcHJvamVjdApNZXNzYWdlLUlEOiA8MTUwOTAxNzQ1ODEzLjE5MTgwLjg0NTI0Mjk4MDMyMzcxNTAxMTIuZ2l0Ym94QGdpdGJveC5hcGFjaGUub3JnPgoKYXNmYm90IGNvbW1lbnRlZCBvbiBpc3N1ZSAjNjogYWRkIGEgSVQgY2FzZSBmb3IgYmFubmVkRGVwZW5kZW5jaWVzIGluIGEgbXVsdGkgbW9kdWxlIHByb2plY3QKVVJMOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWVuZm9yY2VyL3B1bGwvNiNpc3N1ZWNvbW1lbnQtMzM5NjM2NTU0CiAKIAogICBTdGVwaGVuIENvbm5vbGx5ICBvbiBkZXZAbWF2ZW4uYXBhY2hlLm9yZyByZXBsaWVzOgogICBjb3VsZCB3ZSBnZXQgdGhlc2Ugc2VudCB0byBjb21taXRzQG0uYS5vIHJhdGhlciB0aGFuIGRldkBtLmEubwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDM1Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgT2N0IDI3IDAwOjU0OjEwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDM1Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyOUQyMTEwQzkwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMjcgT2N0IDIwMTcgMDA6NTQ6MTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3MzA2MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBPY3QgMjAxNyAwMDo1NDowOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzI5MzYgaW52b2tlZCBieSB1aWQgNTAwKTsgMjcgT2N0IDIwMTcgMDA6NTQ6MDkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MjkyNSBpbnZva2VkIGJ5IHVpZCA5OSk7IDI3IE9jdCAyMDE3IDAwOjU0OjA5IC0wMDAwClJlY2VpdmVkOiBmcm9tIGVjMi01Mi0yMDItODAtNzAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20gKEhFTE8gZ2l0Ym94LmFwYWNoZS5vcmcpICg1Mi4yMDIuODAuNzApCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMjcgT2N0IDIwMTcgMDA6NTQ6MDkgKzAwMDAKRnJvbTogR2l0Qm94IDxnaXRAYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtHaXRIdWJdIGN0dWJic2lpIGNvbW1lbnRlZCBvbiBpc3N1ZSAjNDogW01SRUxFQVNFLTc5OF0gQ29tbWl0IGFkZGl0aW9uYWwgZmlsZXMgd2l0aCByZWxlYXNlIHBsdWdpbgpNZXNzYWdlLUlEOiA8MTUwOTA2NTY0OTE4LjEzODE5LjExNDU4MjA2MzY5MjU5NTA3MzA4LmdpdGJveEBnaXRib3guYXBhY2hlLm9yZz4KCmN0dWJic2lpIGNvbW1lbnRlZCBvbiBpc3N1ZSAjNDogW01SRUxFQVNFLTc5OF0gQ29tbWl0IGFkZGl0aW9uYWwgZmlsZXMgd2l0aCByZWxlYXNlIHBsdWdpbgpVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcmVsZWFzZS9wdWxsLzQjaXNzdWVjb21tZW50LTMzOTg0MjAzMAogCiAKICAgKzEgdG8gdGhpcyBmZWF0dXJlIHJlcXVlc3QKICAgCiAgIEknbSB0cnlpbmcgdG8gdXBkYXRlIGFuIE9TR2kgbWFuaWZlc3Qgd2l0aCB0aGUgdmVyc2lvbiBkZXJpdmVkIGZyb20gdGhlIHZlcnNpb24gaW4gdGhlIHBvbS54bWwuIFRoZSBidWlsZCB3aWxsIGZhaWwgaWYgdGhleSBkbyBub3QgbWF0Y2gsIHdoaWNoIG1lYW5zIEkgbXVzdCBkbyBtYW51YWwgcmVsZWFzZXMgYW5kIGNhbm5vdCB1c2UgdGhlIG1hdmVuLXJlbGVhc2UtcGx1Z2luLiBUaGlzIGlzIHVuZm9ydHVuYXRlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDM1My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgT2N0IDI3IDAyOjMzOjM4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDM1My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3RDUwMzEwRjExCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMjcgT2N0IDIwMTcgMDI6MzM6MzggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzNzgzMiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBPY3QgMjAxNyAwMjozMzozOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzc3MzAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjcgT2N0IDIwMTcgMDI6MzM6MzggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNzcxOSBpbnZva2VkIGJ5IHVpZCA5OSk7IDI3IE9jdCAyMDE3IDAyOjMzOjM4IC0wMDAwClJlY2VpdmVkOiBmcm9tIGVjMi01Mi0yMDItODAtNzAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20gKEhFTE8gZ2l0Ym94LmFwYWNoZS5vcmcpICg1Mi4yMDIuODAuNzApCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMjcgT2N0IDIwMTcgMDI6MzM6MzggKzAwMDAKRnJvbTogR2l0Qm94IDxnaXRAYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtHaXRIdWJdIG9sYW15IGNvbW1lbnRlZCBvbiBpc3N1ZSAjMTk6IEZpeCBmb3IgTVJFTEVBU0UtODM1OiBBdXRvbWF0aWNhbGx5IHJlc29sdmUgc25hcHNob3QgZGVwZW5kZW5jaWVzIGluIHJlbGVhc2U6cHJlcGFyZQpNZXNzYWdlLUlEOiA8MTUwOTA3MTYxNzQ3LjE3NDI4LjY5MTU2MDEyMDIzNjAzNzE0NjAuZ2l0Ym94QGdpdGJveC5hcGFjaGUub3JnPgoKb2xhbXkgY29tbWVudGVkIG9uIGlzc3VlICMxOTogRml4IGZvciBNUkVMRUFTRS04MzU6IEF1dG9tYXRpY2FsbHkgcmVzb2x2ZSBzbmFwc2hvdCBkZXBlbmRlbmNpZXMgaW4gcmVsZWFzZTpwcmVwYXJlClVSTDogaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1yZWxlYXNlL3B1bGwvMTkjaXNzdWVjb21tZW50LTMzOTg1NTg5MgogCiAKICAgQHRoZWl0IEknbSBoYXBweSB3aXRoIHRoaXMgY2hhbmdlcy4gRXhjZXB0IHRoZSBsYWNrIG9mIHRlc3QuIElzIHRoZXJlIGFueXRoaW5nIHlvdSBjYW4gZG8/IEEgcGx1Z2luIElUIHRlc3Q/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgaXMgYW4gYXV0b21hdGVkIG1lc3NhZ2UgZnJvbSB0aGUgQXBhY2hlIEdpdCBTZXJ2aWNlLgpUbyByZXNwb25kIHRvIHRoZSBtZXNzYWdlLCBwbGVhc2UgbG9nIG9uIEdpdEh1YiBhbmQgdXNlIHRoZQpVUkwgYWJvdmUgdG8gZ28gdG8gdGhlIHNwZWNpZmljIGNvbW1lbnQuCiAKRm9yIHF1ZXJpZXMgYWJvdXQgdGhpcyBzZXJ2aWNlLCBwbGVhc2UgY29udGFjdCBJbmZyYXN0cnVjdHVyZSBhdDoKdXNlcnNAaW5mcmEuYXBhY2hlLm9yZwoKCldpdGggcmVnYXJkcywKQXBhY2hlIEdpdCBTZXJ2aWNlcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MzU0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBPY3QgMjcgMDI6MzM6NTAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzU0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDA5MDA3MTBGMTUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAyNyBPY3QgMjAxNyAwMjozMzo1MCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDM4Njc4IGludm9rZWQgYnkgdWlkIDUwMCk7IDI3IE9jdCAyMDE3IDAyOjMzOjQ5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzODU4OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBPY3QgMjAxNyAwMjozMzo0OSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM4NTc3IGludm9rZWQgYnkgdWlkIDk5KTsgMjcgT2N0IDIwMTcgMDI6MzM6NDkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZWMyLTUyLTIwMi04MC03MC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSAoSEVMTyBnaXRib3guYXBhY2hlLm9yZykgKDUyLjIwMi44MC43MCkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAyNyBPY3QgMjAxNyAwMjozMzo0OSArMDAwMApGcm9tOiBHaXRCb3ggPGdpdEBhcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0dpdEh1Yl0gb2xhbXkgY29tbWVudGVkIG9uIGlzc3VlICMxOTogRml4IGZvciBNUkVMRUFTRS04MzU6IEF1dG9tYXRpY2FsbHkgcmVzb2x2ZSBzbmFwc2hvdCBkZXBlbmRlbmNpZXMgaW4gcmVsZWFzZTpwcmVwYXJlCk1lc3NhZ2UtSUQ6IDwxNTA5MDcxNjI5MDQuMTc4MjAuNjU5NzA1OTE0MDgyNzg5MzQzMC5naXRib3hAZ2l0Ym94LmFwYWNoZS5vcmc+CgpvbGFteSBjb21tZW50ZWQgb24gaXNzdWUgIzE5OiBGaXggZm9yIE1SRUxFQVNFLTgzNTogQXV0b21hdGljYWxseSByZXNvbHZlIHNuYXBzaG90IGRlcGVuZGVuY2llcyBpbiByZWxlYXNlOnByZXBhcmUKVVJMOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXJlbGVhc2UvcHVsbC8xOSNpc3N1ZWNvbW1lbnQtMzM5ODU1ODkyCiAKIAogICBAdGhlaXQgSSdtIGhhcHB5IHdpdGggdGhvc2UgY2hhbmdlcy4gRXhjZXB0IHRoZSBsYWNrIG9mIHRlc3QuIElzIHRoZXJlIGFueXRoaW5nIHlvdSBjYW4gZG8/IEEgcGx1Z2luIElUIHRlc3Q/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgaXMgYW4gYXV0b21hdGVkIG1lc3NhZ2UgZnJvbSB0aGUgQXBhY2hlIEdpdCBTZXJ2aWNlLgpUbyByZXNwb25kIHRvIHRoZSBtZXNzYWdlLCBwbGVhc2UgbG9nIG9uIEdpdEh1YiBhbmQgdXNlIHRoZQpVUkwgYWJvdmUgdG8gZ28gdG8gdGhlIHNwZWNpZmljIGNvbW1lbnQuCiAKRm9yIHF1ZXJpZXMgYWJvdXQgdGhpcyBzZXJ2aWNlLCBwbGVhc2UgY29udGFjdCBJbmZyYXN0cnVjdHVyZSBhdDoKdXNlcnNAaW5mcmEuYXBhY2hlLm9yZwoKCldpdGggcmVnYXJkcywKQXBhY2hlIEdpdCBTZXJ2aWNlcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0Mzc1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBOb3YgIDEgMDY6MDQ6NTMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0Mzc1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDE0MjA2MTBGQkMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAgMSBOb3YgMjAxNyAwNjowNDo1MiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ5MTA2IGludm9rZWQgYnkgdWlkIDUwMCk7IDEgTm92IDIwMTcgMDY6MDQ6NTEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ4MDE3IGludm9rZWQgYnkgdWlkIDUwMCk7IDEgTm92IDIwMTcgMDY6MDQ6NTEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0Nzk5MSBpbnZva2VkIGJ5IHVpZCA5OSk7IDEgTm92IDIwMTcgMDY6MDQ6NTAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZWMyLTUyLTIwMi04MC03MC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSAoSEVMTyBnaXRib3guYXBhY2hlLm9yZykgKDUyLjIwMi44MC43MCkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAwMSBOb3YgMjAxNyAwNjowNDo1MCArMDAwMApGcm9tOiBHaXRCb3ggPGdpdEBhcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0dpdEh1Yl0gaGJvdXRlbXkgY2xvc2VkIHB1bGwgcmVxdWVzdCAjNDogW01SRUxFQVNFLTc5OF0gQ29tbWl0IGFkZGl0aW9uYWwgZmlsZXMgd2l0aCByZWxlYXNlIHBsdWdpbgpNZXNzYWdlLUlEOiA8MTUwOTUxNjI5MDA2LjU3ODIuMTU1ODY2NzA4MDgyOTk0MjEzNS5naXRib3hAZ2l0Ym94LmFwYWNoZS5vcmc+CgpoYm91dGVteSBjbG9zZWQgcHVsbCByZXF1ZXN0ICM0OiBbTVJFTEVBU0UtNzk4XSBDb21taXQgYWRkaXRpb25hbCBmaWxlcyB3aXRoIHJlbGVhc2UgcGx1Z2luClVSTDogaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1yZWxlYXNlL3B1bGwvNAogCiAKICAgCgpUaGlzIGlzIGEgUFIgbWVyZ2VkIGZyb20gYSBmb3JrZWQgcmVwb3NpdG9yeS4KQXMgR2l0SHViIGhpZGVzIHRoZSBvcmlnaW5hbCBkaWZmIG9uIG1lcmdlLCBpdCBpcyBkaXNwbGF5ZWQgYmVsb3cgZm9yCnRoZSBzYWtlIG9mIHByb3ZlbmFuY2U6CgpBcyB0aGlzIGlzIGEgZm9yZWlnbiBwdWxsIHJlcXVlc3QgKGZyb20gYSBmb3JrKSwgdGhlIGRpZmYgaXMgc3VwcGxpZWQKYmVsb3cgKGFzIGl0IHdvbid0IHNob3cgb3RoZXJ3aXNlIGR1ZSB0byBHaXRIdWIgbWFnaWMpOgoKZGlmZiAtLWdpdCBhL21hdmVuLXJlbGVhc2UtbWFuYWdlci9wb20ueG1sIGIvbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyL3BvbS54bWwKaW5kZXggYmQyMDlhMzEuLmViYTIwOTI1IDEwMDY0NAotLS0gYS9tYXZlbi1yZWxlYXNlLW1hbmFnZXIvcG9tLnhtbAorKysgYi9tYXZlbi1yZWxlYXNlLW1hbmFnZXIvcG9tLnhtbApAQCAtMjM0LDcgKzIzNCw3IEBACiAgICAgICAgICAgPC9leGVjdXRpb24+CiAgICAgICAgIDwvZXhlY3V0aW9ucz4KICAgICAgICAgPGNvbmZpZ3VyYXRpb24+Ci0gICAgICAgICAgPHZlcnNpb24+Mi4zLjA8L3ZlcnNpb24+CisgICAgICAgICAgPHZlcnNpb24+Mi4zLjE8L3ZlcnNpb24+CiAgICAgICAgICAgPHBhY2thZ2VXaXRoVmVyc2lvbj5mYWxzZTwvcGFja2FnZVdpdGhWZXJzaW9uPgogICAgICAgICAgIDx1c2VKYXZhNT50cnVlPC91c2VKYXZhNT4KICAgICAgICAgICA8bW9kZWxzPgpkaWZmIC0tZ2l0IGEvbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9zaGFyZWQvcmVsZWFzZS9jb25maWcvUHJvcGVydGllc1JlbGVhc2VEZXNjcmlwdG9yU3RvcmUuamF2YSBiL21hdmVuLXJlbGVhc2UtbWFuYWdlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vc2hhcmVkL3JlbGVhc2UvY29uZmlnL1Byb3BlcnRpZXNSZWxlYXNlRGVzY3JpcHRvclN0b3JlLmphdmEKaW5kZXggMzJiZTI1NGUuLjk5Y2Y0NTIzIDEwMDY0NAotLS0gYS9tYXZlbi1yZWxlYXNlLW1hbmFnZXIvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3NoYXJlZC9yZWxlYXNlL2NvbmZpZy9Qcm9wZXJ0aWVzUmVsZWFzZURlc2NyaXB0b3JTdG9yZS5qYXZhCisrKyBiL21hdmVuLXJlbGVhc2UtbWFuYWdlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vc2hhcmVkL3JlbGVhc2UvY29uZmlnL1Byb3BlcnRpZXNSZWxlYXNlRGVzY3JpcHRvclN0b3JlLmphdmEKQEAgLTM2LDYgKzM2LDcgQEAKIGltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnNoYXJlZC5yZWxlYXNlLnNjbS5JZGVudGlmaWVkU2NtOwogaW1wb3J0IG9yZy5jb2RlaGF1cy5wbGV4dXMubG9nZ2luZy5BYnN0cmFjdExvZ0VuYWJsZWQ7CiBpbXBvcnQgb3JnLmNvZGVoYXVzLnBsZXh1cy51dGlsLklPVXRpbDsKK2ltcG9ydCBvcmcuY29kZWhhdXMucGxleHVzLnV0aWwuU3RyaW5nVXRpbHM7CiBpbXBvcnQgb3JnLnNvbmF0eXBlLnBsZXh1cy5jb21wb25lbnRzLmNpcGhlci5EZWZhdWx0UGxleHVzQ2lwaGVyOwogaW1wb3J0IG9yZy5zb25hdHlwZS5wbGV4dXMuY29tcG9uZW50cy5jaXBoZXIuUGxleHVzQ2lwaGVyRXhjZXB0aW9uOwogaW1wb3J0IG9yZy5zb25hdHlwZS5wbGV4dXMuY29tcG9uZW50cy5zZWMuZGlzcGF0Y2hlci5EZWZhdWx0U2VjRGlzcGF0Y2hlcjsKQEAgLTEzNSw2ICsxMzYsMTAgQEAgcHVibGljIHZvaWQgd3JpdGUoIFJlbGVhc2VEZXNjcmlwdG9yIGNvbmZpZywgRmlsZSBmaWxlICkKICAgICAgICAgewogICAgICAgICAgICAgcHJvcGVydGllcy5zZXRQcm9wZXJ0eSggImNvbW1pdEJ5UHJvamVjdCIsICJ0cnVlIiApOwogICAgICAgICB9CisgICAgICAgIGlmICggY29uZmlnLmdldEFkZGl0aW9uYWxDb21taXR0ZWRJbmNsdWRlcygpICE9IG51bGwgKQorICAgICAgICB7CisgICAgICAgICAgICBwcm9wZXJ0aWVzLnNldFByb3BlcnR5KCAiYWRkaXRpb25hbENvbW1pdHRlZEluY2x1ZGVzIiwgY29uZmlnLmdldEFkZGl0aW9uYWxDb21taXR0ZWRJbmNsdWRlcygpICk7CisgICAgICAgIH0KICAgICAgICAgcHJvcGVydGllcy5zZXRQcm9wZXJ0eSggInNjbS51cmwiLCBjb25maWcuZ2V0U2NtU291cmNlVXJsKCkgKTsKICAgICAgICAgaWYgKCBjb25maWcuZ2V0U2NtSWQoKSAhPSBudWxsICkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9zaGFyZWQvcmVsZWFzZS9jb25maWcvUmVsZWFzZVV0aWxzLmphdmEgYi9tYXZlbi1yZWxlYXNlLW1hbmFnZXIvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3NoYXJlZC9yZWxlYXNlL2NvbmZpZy9SZWxlYXNlVXRpbHMuamF2YQppbmRleCAzZjcwNTkwOS4uMDk2ZTlhZGUgMTAwNjQ0Ci0tLSBhL21hdmVuLXJlbGVhc2UtbWFuYWdlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vc2hhcmVkL3JlbGVhc2UvY29uZmlnL1JlbGVhc2VVdGlscy5qYXZhCisrKyBiL21hdmVuLXJlbGVhc2UtbWFuYWdlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vc2hhcmVkL3JlbGVhc2UvY29uZmlnL1JlbGVhc2VVdGlscy5qYXZhCkBAIC0yNyw2ICsyNyw3IEBACiBpbXBvcnQgamF2YS51dGlsLlNldDsKIAogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uc2hhcmVkLnJlbGVhc2Uuc2NtLklkZW50aWZpZWRTY207CitpbXBvcnQgb3JnLmNvZGVoYXVzLnBsZXh1cy51dGlsLlN0cmluZ1V0aWxzOwogCiAvKioKICAqIENsYXNzIHByb3ZpZGluZyB1dGlsaXR5IG1ldGhvZHMgdXNlZCBkdXJpbmcgdGhlIHJlbGVhc2UgcHJvY2VzcwpAQCAtMTIwLDYgKzEyMSw3IEBAIHB1YmxpYyBzdGF0aWMgUmVsZWFzZURlc2NyaXB0b3IgbWVyZ2UoIFJlbGVhc2VEZXNjcmlwdG9yIG1lcmdlSW50bywgUmVsZWFzZURlc2NyCiAgICAgICAgIC8vIE5vdCBvdmVycmlkZGVuIC0gbm90IGNvbmZpZ3VyZWQgZnJvbSBjYWxsZXIKICAgICAgICAgbWVyZ2VJbnRvLnNldENvbXBsZXRlZFBoYXNlKCBtZXJnZURlZmF1bHQoIG1lcmdlSW50by5nZXRDb21wbGV0ZWRQaGFzZSgpLCB0b0JlTWVyZ2VkLmdldENvbXBsZXRlZFBoYXNlKCkgKSApOwogCisgICAgICAgIG1lcmdlSW50by5zZXRBZGRpdGlvbmFsQ29tbWl0dGVkSW5jbHVkZXMobWVyZ2VPdmVycmlkZShtZXJnZUludG8uZ2V0QWRkaXRpb25hbENvbW1pdHRlZEluY2x1ZGVzKCksIHRvQmVNZXJnZWQuZ2V0QWRkaXRpb25hbENvbW1pdHRlZEluY2x1ZGVzKCkpKTsKICAgICAgICAgcmV0dXJuIG1lcmdlSW50bzsKICAgICB9CiAKQEAgLTE2OSw2ICsxNzEsMTIgQEAgcHVibGljIHN0YXRpYyBSZWxlYXNlRGVzY3JpcHRvciBjb3B5UHJvcGVydGllc1RvUmVsZWFzZURlc2NyaXB0b3IoIFByb3BlcnRpZXMgcHIKICAgICAgICAgU3RyaW5nIHB1c2hDaGFuZ2VzID0gcHJvcGVydGllcy5nZXRQcm9wZXJ0eSggInB1c2hDaGFuZ2VzIiApOwogICAgICAgICByZWxlYXNlRGVzY3JpcHRvci5zZXRQdXNoQ2hhbmdlcyggcHVzaENoYW5nZXMgPT0gbnVsbCA/IHRydWUgOiBCb29sZWFuLnZhbHVlT2YoIHB1c2hDaGFuZ2VzICkuYm9vbGVhblZhbHVlKCkgKTsKIAorICAgICAgICBTdHJpbmcgYWRkaXRpb25hbENvbW1pdGVkSW5jbHVkZXMgPSBwcm9wZXJ0aWVzLmdldFByb3BlcnR5KCAiYWRkaXRpb25hbENvbW1pdHRlZEluY2x1ZGVzIiApIDsKKyAgICAgICAgaWYgKCBTdHJpbmdVdGlscy5pc05vdEJsYW5rKGFkZGl0aW9uYWxDb21taXRlZEluY2x1ZGVzKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJlbGVhc2VEZXNjcmlwdG9yLnNldEFkZGl0aW9uYWxDb21taXR0ZWRJbmNsdWRlcyhhZGRpdGlvbmFsQ29tbWl0ZWRJbmNsdWRlcyk7CisgICAgICAgIH0KKyAgICAgICAgCiAgICAgICAgIGxvYWRSZXNvbHZlZERlcGVuZGVuY2llcyggcHJvcGVydGllcywgcmVsZWFzZURlc2NyaXB0b3IgKTsKIAogICAgICAgICAvLyBib29sZWFuIHByb3BlcnRpZXMgYXJlIG5vdCB3cml0dGVuIHRvIHRoZSBwcm9wZXJ0aWVzIGZpbGUgYmVjYXVzZSB0aGUgdmFsdWUgZnJvbSB0aGUgY2FsbGVyIGlzIGFsd2F5cyB1c2VkCmRpZmYgLS1naXQgYS9tYXZlbi1yZWxlYXNlLW1hbmFnZXIvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3NoYXJlZC9yZWxlYXNlL3BoYXNlL0Fic3RyYWN0U2NtQ29tbWl0UGhhc2UuamF2YSBiL21hdmVuLXJlbGVhc2UtbWFuYWdlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vc2hhcmVkL3JlbGVhc2UvcGhhc2UvQWJzdHJhY3RTY21Db21taXRQaGFzZS5qYXZhCmluZGV4IDY1ODAwYWVmLi5mNzk5NDBiNyAxMDA2NDQKLS0tIGEvbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9zaGFyZWQvcmVsZWFzZS9waGFzZS9BYnN0cmFjdFNjbUNvbW1pdFBoYXNlLmphdmEKKysrIGIvbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9zaGFyZWQvcmVsZWFzZS9waGFzZS9BYnN0cmFjdFNjbUNvbW1pdFBoYXNlLmphdmEKQEAgLTM3LDYgKzM3LDcgQEAKIGltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnNoYXJlZC5yZWxlYXNlLnNjbS5SZWxlYXNlU2NtUmVwb3NpdG9yeUV4Y2VwdGlvbjsKIGltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnNoYXJlZC5yZWxlYXNlLnNjbS5TY21SZXBvc2l0b3J5Q29uZmlndXJhdG9yOwogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uc2hhcmVkLnJlbGVhc2UudXRpbC5SZWxlYXNlVXRpbDsKK2ltcG9ydCBvcmcuY29kZWhhdXMucGxleHVzLnV0aWwuRGlyZWN0b3J5U2Nhbm5lcjsKIAogaW1wb3J0IGphdmEuaW8uRmlsZTsKIGltcG9ydCBqYXZhLnRleHQuTWVzc2FnZUZvcm1hdDsKQEAgLTEzMiw3ICsxMzMsMTEgQEAgcHJvdGVjdGVkIHZvaWQgcGVyZm9ybUNoZWNraW5zKCBSZWxlYXNlRGVzY3JpcHRvciByZWxlYXNlRGVzY3JpcHRvciwgUmVsZWFzZUVudmkKICAgICAgICAgICAgIGZvciAoIE1hdmVuUHJvamVjdCBwcm9qZWN0IDogcmVhY3RvclByb2plY3RzICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBMaXN0PEZpbGU+IHBvbUZpbGVzID0gY3JlYXRlUG9tRmlsZXMoIHJlbGVhc2VEZXNjcmlwdG9yLCBwcm9qZWN0ICk7Ci0gICAgICAgICAgICAgICAgU2NtRmlsZVNldCBmaWxlU2V0ID0gbmV3IFNjbUZpbGVTZXQoIHByb2plY3QuZ2V0RmlsZSgpLmdldFBhcmVudEZpbGUoKSwgcG9tRmlsZXMgKTsKKyAgICAgICAgICAgICAgICBMaXN0PEZpbGU+IGFkZGl0aW9uYWxGaWxlcyA9IGNyZWF0ZUFkZGl0aW9uYWxGaWxlcyhyZWxlYXNlRGVzY3JpcHRvciwgcHJvamVjdCkgOworICAgICAgICAgICAgICAgIExpc3Q8RmlsZT4gZmlsZXMgPSBuZXcgQXJyYXlMaXN0PEZpbGU+KCkgOworICAgICAgICAgICAgICAgIGZpbGVzLmFkZEFsbChwb21GaWxlcyk7CisgICAgICAgICAgICAgICAgZmlsZXMuYWRkQWxsKGFkZGl0aW9uYWxGaWxlcykgOworICAgICAgICAgICAgICAgIFNjbUZpbGVTZXQgZmlsZVNldCA9IG5ldyBTY21GaWxlU2V0KCBwcm9qZWN0LmdldEZpbGUoKS5nZXRQYXJlbnRGaWxlKCksIGZpbGVzICk7CiAKICAgICAgICAgICAgICAgICBjaGVja2luKCBwcm92aWRlciwgcmVwb3NpdG9yeSwgZmlsZVNldCwgcmVsZWFzZURlc2NyaXB0b3IsIG1lc3NhZ2UgKTsKICAgICAgICAgICAgIH0KQEAgLTE0MCw3ICsxNDUsMTEgQEAgcHJvdGVjdGVkIHZvaWQgcGVyZm9ybUNoZWNraW5zKCBSZWxlYXNlRGVzY3JpcHRvciByZWxlYXNlRGVzY3JpcHRvciwgUmVsZWFzZUVudmkKICAgICAgICAgZWxzZQogICAgICAgICB7CiAgICAgICAgICAgICBMaXN0PEZpbGU+IHBvbUZpbGVzID0gY3JlYXRlUG9tRmlsZXMoIHJlbGVhc2VEZXNjcmlwdG9yLCByZWFjdG9yUHJvamVjdHMgKTsKLSAgICAgICAgICAgIFNjbUZpbGVTZXQgZmlsZVNldCA9IG5ldyBTY21GaWxlU2V0KCBuZXcgRmlsZSggcmVsZWFzZURlc2NyaXB0b3IuZ2V0V29ya2luZ0RpcmVjdG9yeSgpICksIHBvbUZpbGVzICk7CisgICAgICAgICAgICBMaXN0PEZpbGU+IGFkZGl0aW9uYWxGaWxlcyA9IGNyZWF0ZUFkZGl0aW9uYWxGaWxlcyhyZWxlYXNlRGVzY3JpcHRvciwgcmVhY3RvclByb2plY3RzKSA7CisgICAgICAgICAgICBMaXN0PEZpbGU+IGZpbGVzID0gbmV3IEFycmF5TGlzdDxGaWxlPigpIDsKKyAgICAgICAgICAgIGZpbGVzLmFkZEFsbChwb21GaWxlcyk7CisgICAgICAgICAgICBmaWxlcy5hZGRBbGwoYWRkaXRpb25hbEZpbGVzKSA7CisgICAgICAgICAgICBTY21GaWxlU2V0IGZpbGVTZXQgPSBuZXcgU2NtRmlsZVNldCggbmV3IEZpbGUoIHJlbGVhc2VEZXNjcmlwdG9yLmdldFdvcmtpbmdEaXJlY3RvcnkoKSApLCBmaWxlcyApOwogCiAgICAgICAgICAgICBjaGVja2luKCBwcm92aWRlciwgcmVwb3NpdG9yeSwgZmlsZVNldCwgcmVsZWFzZURlc2NyaXB0b3IsIG1lc3NhZ2UgKTsKICAgICAgICAgfQpAQCAtMTc0LDcgKzE4MywxMSBAQCBwcm90ZWN0ZWQgdm9pZCBzaW11bGF0ZUNoZWNraW5zKCBSZWxlYXNlRGVzY3JpcHRvciByZWxlYXNlRGVzY3JpcHRvciwgTGlzdDxNYXZlbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlICkKICAgICB7CiAgICAgICAgIENvbGxlY3Rpb248RmlsZT4gcG9tRmlsZXMgPSBjcmVhdGVQb21GaWxlcyggcmVsZWFzZURlc2NyaXB0b3IsIHJlYWN0b3JQcm9qZWN0cyApOwotICAgICAgICBsb2dJbmZvKCByZXN1bHQsICJGdWxsIHJ1biB3b3VsZCBiZSBjb21taXQgIiArIHBvbUZpbGVzLnNpemUoKSArICIgZmlsZXMgd2l0aCBtZXNzYWdlOiAnIiArIG1lc3NhZ2UgKyAiJyIgKTsKKyAgICAgICAgQ29sbGVjdGlvbjxGaWxlPiBhZGRpdGlvbmFsRmlsZXMgPSBjcmVhdGVBZGRpdGlvbmFsRmlsZXMocmVsZWFzZURlc2NyaXB0b3IsIHJlYWN0b3JQcm9qZWN0cykgOworICAgICAgICBDb2xsZWN0aW9uPEZpbGU+IGZpbGVzID0gbmV3IEFycmF5TGlzdDxGaWxlPigpIDsKKyAgICAgICAgZmlsZXMuYWRkQWxsKHBvbUZpbGVzKSA7CisgICAgICAgIGZpbGVzLmFkZEFsbChhZGRpdGlvbmFsRmlsZXMpIDsKKyAgICAgICAgbG9nSW5mbyggcmVzdWx0LCAiRnVsbCBydW4gd291bGQgYmUgY29tbWl0ICIgKyBmaWxlcy5zaXplKCkgKyAiIGZpbGVzIHdpdGggbWVzc2FnZTogJyIgKyBtZXNzYWdlICsgIiciICk7IAogICAgIH0KIAogICAgIHByb3RlY3RlZCB2b2lkIHZhbGlkYXRlQ29uZmlndXJhdGlvbiggUmVsZWFzZURlc2NyaXB0b3IgcmVsZWFzZURlc2NyaXB0b3IgKQpAQCAtMjE1LDQgKzIyOCw0MyBAQCBwcm90ZWN0ZWQgU3RyaW5nIGNyZWF0ZU1lc3NhZ2UoIFJlbGVhc2VEZXNjcmlwdG9yIHJlbGVhc2VEZXNjcmlwdG9yICkKICAgICAgICAgfQogICAgICAgICByZXR1cm4gcG9tRmlsZXM7CiAgICAgfQorICAgIAorICAgIHByb3RlY3RlZCBzdGF0aWMgTGlzdDxGaWxlPiBjcmVhdGVBZGRpdGlvbmFsRmlsZXMoIFJlbGVhc2VEZXNjcmlwdG9yIHJlbGVhc2VEZXNjcmlwdG9yLCBNYXZlblByb2plY3QgcHJvamVjdCApCisgICAgeworICAgICAgICAKKyAgICAJTGlzdDxGaWxlPiBhZGRpdGlvbmFsRmlsZXMgPSBuZXcgQXJyYXlMaXN0PEZpbGU+KCk7CisgICAgCWlmKHJlbGVhc2VEZXNjcmlwdG9yLmdldEFkZGl0aW9uYWxDb21taXR0ZWRJbmNsdWRlcygpICE9IG51bGwpIHsKKwkgICAgCVN0cmluZ1tdIGFkZGl0aW9uYWxJbmNsdWRlcyA9IHJlbGVhc2VEZXNjcmlwdG9yLmdldEFkZGl0aW9uYWxDb21taXR0ZWRJbmNsdWRlcygpLnJlcGxhY2VBbGwoICJcXHMiLCAiIiApLnNwbGl0KCAiLCIgKTsgOworCSAgICAJCisJICAgIAlpZihhZGRpdGlvbmFsSW5jbHVkZXMgIT0gbnVsbCAmJiBhZGRpdGlvbmFsSW5jbHVkZXMubGVuZ3RoICE9MCkgeworCQkgICAgCQorCQkgICAgICAgIEZpbGUgYmFzZURpciA9IHByb2plY3QuZ2V0QmFzZWRpcigpIDsKKwkJICAgICAgICAKKwkJICAgICAgICBEaXJlY3RvcnlTY2FubmVyIHNjYW5uZXIgPSBuZXcgRGlyZWN0b3J5U2Nhbm5lcigpOworCQkgICAgICAgIHNjYW5uZXIuc2V0QmFzZWRpcihiYXNlRGlyKTsKKwkJICAgICAgICBzY2FubmVyLnNldEluY2x1ZGVzKGFkZGl0aW9uYWxJbmNsdWRlcyk7CisJCSAgICAgICAgCisJCSAgICAgICAgc2Nhbm5lci5zY2FuKCk7IAorCQkgICAgICAgIAorCQkgICAgICAgIGlmKHNjYW5uZXIuZ2V0SW5jbHVkZWRGaWxlcygpICE9IG51bGwpIHsKKwkJICAgICAgICAJZm9yKFN0cmluZyBmaWxlIDogc2Nhbm5lci5nZXRJbmNsdWRlZEZpbGVzKCkpIHsKKwkJICAgICAgICAJCWFkZGl0aW9uYWxGaWxlcy5hZGQobmV3IEZpbGUoYmFzZURpciwgZmlsZSkpIDsKKwkJICAgICAgICAJfQorCQkgICAgICAgIH0KKwkJICAgICAgICAKKwkgICAgCX0KKyAgICAJfQorCisgICAgICAgIHJldHVybiBhZGRpdGlvbmFsRmlsZXM7CisgICAgfQorCisgICAgcHJvdGVjdGVkIHN0YXRpYyBMaXN0PEZpbGU+IGNyZWF0ZUFkZGl0aW9uYWxGaWxlcyggUmVsZWFzZURlc2NyaXB0b3IgcmVsZWFzZURlc2NyaXB0b3IsIExpc3Q8TWF2ZW5Qcm9qZWN0PiByZWFjdG9yUHJvamVjdHMgKQorICAgIHsKKyAgICAgICAgTGlzdDxGaWxlPiBhZGRpdGlvbmFsRmlsZXMgPSBuZXcgQXJyYXlMaXN0PEZpbGU+KCk7CisgICAgICAgIGZvciAoIE1hdmVuUHJvamVjdCBwcm9qZWN0IDogcmVhY3RvclByb2plY3RzICkKKyAgICAgICAgeworICAgICAgICAgICAgYWRkaXRpb25hbEZpbGVzLmFkZEFsbCggY3JlYXRlQWRkaXRpb25hbEZpbGVzKCByZWxlYXNlRGVzY3JpcHRvciwgcHJvamVjdCApICk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGFkZGl0aW9uYWxGaWxlczsKKyAgICB9CiB9CmRpZmYgLS1naXQgYS9tYXZlbi1yZWxlYXNlLW1hbmFnZXIvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3NoYXJlZC9yZWxlYXNlL3BoYXNlL1NjbUNvbW1pdERldmVsb3BtZW50UGhhc2UuamF2YSBiL21hdmVuLXJlbGVhc2UtbWFuYWdlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vc2hhcmVkL3JlbGVhc2UvcGhhc2UvU2NtQ29tbWl0RGV2ZWxvcG1lbnRQaGFzZS5qYXZhCmluZGV4IDg4OWI5YzM1Li4wZGRjNzg5ZiAxMDA2NDQKLS0tIGEvbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9zaGFyZWQvcmVsZWFzZS9waGFzZS9TY21Db21taXREZXZlbG9wbWVudFBoYXNlLmphdmEKKysrIGIvbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9zaGFyZWQvcmVsZWFzZS9waGFzZS9TY21Db21taXREZXZlbG9wbWVudFBoYXNlLmphdmEKQEAgLTIxLDYgKzIxLDcgQEAKIAogaW1wb3J0IGphdmEuaW8uRmlsZTsKIGltcG9ydCBqYXZhLnRleHQuTWVzc2FnZUZvcm1hdDsKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OwogaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOwogaW1wb3J0IGphdmEudXRpbC5MaXN0OwogCkBAIC04Myw4ICs4NCwxMiBAQCBwcm90ZWN0ZWQgdm9pZCBydW5Mb2dpYyggUmVsZWFzZURlc2NyaXB0b3IgcmVsZWFzZURlc2NyaXB0b3IsIFJlbGVhc2VFbnZpcm9ubWVudAogICAgICAgICAgICAgaWYgKCBzaW11bGF0aW5nICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBDb2xsZWN0aW9uPEZpbGU+IHBvbUZpbGVzID0gY3JlYXRlUG9tRmlsZXMoIHJlbGVhc2VEZXNjcmlwdG9yLCByZWFjdG9yUHJvamVjdHMgKTsKKyAgICAgICAgICAgICAgICBDb2xsZWN0aW9uPEZpbGU+IGFkZGl0aW9uYWxGaWxlcyA9IGNyZWF0ZUFkZGl0aW9uYWxGaWxlcyhyZWxlYXNlRGVzY3JpcHRvciwgcmVhY3RvclByb2plY3RzKSA7CisgICAgICAgICAgICAgICAgQ29sbGVjdGlvbjxGaWxlPiBmaWxlcyA9IG5ldyBBcnJheUxpc3Q8RmlsZT4oKSA7CisgICAgICAgICAgICAgICAgZmlsZXMuYWRkQWxsKHBvbUZpbGVzKSA7CisgICAgICAgICAgICAgICAgZmlsZXMuYWRkQWxsKGFkZGl0aW9uYWxGaWxlcykgOwogICAgICAgICAgICAgICAgIGxvZ0luZm8oIHJlc3VsdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAiRnVsbCBydW4gd291bGQgYmUgY29tbWl0ICIgKyBwb21GaWxlcy5zaXplKCkgKyAiIGZpbGVzIHdpdGggbWVzc2FnZTogJyIgKyBtZXNzYWdlICsgIiciICk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIkZ1bGwgcnVuIHdvdWxkIGJlIGNvbW1pdCAiICsgZmlsZXMuc2l6ZSgpICsgIiBmaWxlcyB3aXRoIG1lc3NhZ2U6ICciICsgbWVzc2FnZSArICInIiApOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgewpkaWZmIC0tZ2l0IGEvbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyL3NyYy9tYWluL21kby9yZWxlYXNlLWRlc2NyaXB0b3IubWRvIGIvbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyL3NyYy9tYWluL21kby9yZWxlYXNlLWRlc2NyaXB0b3IubWRvCmluZGV4IDFkZmMzZjcxLi43M2M5ZTE2YiAxMDA2NDQKLS0tIGEvbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyL3NyYy9tYWluL21kby9yZWxlYXNlLWRlc2NyaXB0b3IubWRvCisrKyBiL21hdmVuLXJlbGVhc2UtbWFuYWdlci9zcmMvbWFpbi9tZG8vcmVsZWFzZS1kZXNjcmlwdG9yLm1kbwpAQCAtNDg5LDYgKzQ4OSwxNiBAQAogICAgICAgICAgICAgd2l0aCBAeyBhbmQgfQogICAgICAgICAgIDwvZGVzY3JpcHRpb24+CiAgICAgICAgIDwvZmllbGQ+CisgICAgICAgIAorIAkJPGZpZWxkPgorICAgICAgICAgIDxuYW1lPmFkZGl0aW9uYWxDb21taXR0ZWRJbmNsdWRlczwvbmFtZT4KKyAgICAgICAgICA8dmVyc2lvbj4yLjMuMSs8L3ZlcnNpb24+CisgICAgICAgICAgPHR5cGU+U3RyaW5nPC90eXBlPgorICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIEluIHNvbWUgZXhjZXB0aW9ucyB5b3Ugd2FudCB0byBjb21taXQgc29tZSBjaGFuZ2VzIHRvIHRoZSByZXBvc2l0b3J5IGluIGFkZGl0aW9uIHRvIHBvbSBmaWxlcy4gQ2hhbmdlcworICAgICAgICAgICAgdG8gZmlsZXMgbGlzdGVkIGhlcmUgd2lsbCBiZSBjb21taXR0ZWQuCisgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9maWVsZD4gICAgICAgIAogCiAgICAgICAgIDwhLS0gQW5ub3VuY2VtZW50IEluZm9ybWF0aW9uCiAKQEAgLTgxOSw2ICs4MjksMTEgQEAKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CisgICAgICAgIGlmICggIXNhZmVFcXVhbHMoIGFkZGl0aW9uYWxDb21taXR0ZWRJbmNsdWRlcywgdGhhdC5hZGRpdGlvbmFsQ29tbWl0dGVkSW5jbHVkZXMgKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICAKIAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC05MzksNiArOTU0LDcgQEAKICAgICAgICAgcmVzdWx0ID0gMjkgKiByZXN1bHQgKyAoIHBlcmZvcm1Hb2FscyAhPSBudWxsID8gcGVyZm9ybUdvYWxzLmhhc2hDb2RlKCkgOiAwICk7CiAgICAgICAgIHJlc3VsdCA9IDI5ICogcmVzdWx0ICsgKCBkZWZhdWx0UmVsZWFzZVZlcnNpb24gIT0gbnVsbCA/IGRlZmF1bHRSZWxlYXNlVmVyc2lvbi5oYXNoQ29kZSgpIDogMCApOwogICAgICAgICByZXN1bHQgPSAyOSAqIHJlc3VsdCArICggc2NtUmVsZWFzZWRQb21SZXZpc2lvbiAhPSBudWxsID8gc2NtUmVsZWFzZWRQb21SZXZpc2lvbi5oYXNoQ29kZSgpIDogMCApOworCQlyZXN1bHQgPSAyOSAqIHJlc3VsdCArICggYWRkaXRpb25hbENvbW1pdHRlZEluY2x1ZGVzICE9IG51bGwgPyBhZGRpdGlvbmFsQ29tbWl0dGVkSW5jbHVkZXMuaGFzaENvZGUoKSA6IDAgKTsKIAogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAtLWdpdCBhL21hdmVuLXJlbGVhc2UtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL3JlbGVhc2UvUHJlcGFyZVJlbGVhc2VNb2pvLmphdmEgYi9tYXZlbi1yZWxlYXNlLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9yZWxlYXNlL1ByZXBhcmVSZWxlYXNlTW9qby5qYXZhCmluZGV4IDg0MTIwNmIyLi41MjZkNDZlYyAxMDA2NDQKLS0tIGEvbWF2ZW4tcmVsZWFzZS1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvcmVsZWFzZS9QcmVwYXJlUmVsZWFzZU1vam8uamF2YQorKysgYi9tYXZlbi1yZWxlYXNlLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9yZWxlYXNlL1ByZXBhcmVSZWxlYXNlTW9qby5qYXZhCkBAIC0yMSw2ICsyMSw3IEBACiAKIGltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOwogCitpbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxhbmcuU3RyaW5nVXRpbHM7CiBpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW4uTW9qb0V4ZWN1dGlvbkV4Y2VwdGlvbjsKIGltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbi5Nb2pvRmFpbHVyZUV4Y2VwdGlvbjsKIGltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMuYW5ub3RhdGlvbnMuTW9qbzsKQEAgLTIxOCw2ICsyMTksMjIgQEAKICAgICBwcml2YXRlIGludCB3YWl0QmVmb3JlVGFnZ2luZzsKIAogICAgIC8qKgorICAgICAqIEEgbGlzdCBvZiBhZGRpdGlvbmFsIGluY2x1ZGUgZmlsdGVycyB0aGF0IHdpbGwgYmUgY29tbWl0ZWQgd2l0aCBwb20gZmlsZXMuIAorICAgICAqIAorICAgICAqIEBzaW5jZSAyLjQuMgorICAgICAqLworICAgIEBQYXJhbWV0ZXIKKyAgICBwcml2YXRlIFN0cmluZ1tdIGFkZGl0aW9uYWxDb21taXR0ZWRJbmNsdWRlczsKKyAgICAKKyAgICAvKioKKyAgICAgKiBDb21tYW5kLWxpbmUgdmVyc2lvbiBvZiBhZGRpdGlvbmFsQ29tbWl0dGVkSW5jbHVkZXMuCisgICAgICogCisgICAgICogQHNpbmNlIDIuNC4yCisgICAgICovCisgICAgQFBhcmFtZXRlciggcHJvcGVydHkgPSAiYWRkaXRpb25hbENvbW1pdHRlZEluY2x1ZGVMaXN0IiApCisgICAgcHJpdmF0ZSBTdHJpbmcgYWRkaXRpb25hbENvbW1pdHRlZEluY2x1ZGVMaXN0OyAgIAorICAgIAorICAgIC8qKgogICAgICAqIHtAaW5oZXJpdERvY30KICAgICAgKi8KICAgICBwdWJsaWMgdm9pZCBleGVjdXRlKCkKQEAgLTI2Niw2ICsyODMsMTYgQEAgcHJvdGVjdGVkIHZvaWQgcHJlcGFyZVJlbGVhc2UoIGJvb2xlYW4gZ2VuZXJhdGVSZWxlYXNlUG9tcyApCiAgICAgICAgIHsKICAgICAgICAgICAgIGNvbmZpZy5zZXRDaGVja01vZGlmaWNhdGlvbkV4Y2x1ZGVzKCBBcnJheXMuYXNMaXN0KCBjaGVja01vZGlmaWNhdGlvbkV4Y2x1ZGVzICkgKTsKICAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKCBhZGRpdGlvbmFsQ29tbWl0dGVkSW5jbHVkZUxpc3QgIT0gbnVsbCApCisgICAgICAgIHsKKyAgICAgICAgCWFkZGl0aW9uYWxDb21taXR0ZWRJbmNsdWRlcyA9IGFkZGl0aW9uYWxDb21taXR0ZWRJbmNsdWRlTGlzdC5yZXBsYWNlQWxsKCAiXFxzIiwgIiIgKS5zcGxpdCggIiwiICk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIGFkZGl0aW9uYWxDb21taXR0ZWRJbmNsdWRlcyAhPSBudWxsICkKKyAgICAgICAgeworICAgICAgICAgICAgY29uZmlnLnNldEFkZGl0aW9uYWxDb21taXR0ZWRJbmNsdWRlcyhTdHJpbmdVdGlscy5qb2luKCBhZGRpdGlvbmFsQ29tbWl0dGVkSW5jbHVkZXMsIiwiICkgKTsKKyAgICAgICAgfQogCiAgICAgICAgIC8vIENyZWF0ZSBhIGNvbmZpZyBjb250YWluaW5nIHZhbHVlcyBmcm9tIHRoZSBzZXNzaW9uIHByb3BlcnRpZXMgKGllIGNvbW1hbmQgbGluZSBwcm9wZXJ0aWVzIHdpdGggY2xpKS4KICAgICAgICAgUmVsZWFzZURlc2NyaXB0b3Igc3lzUHJvcGVydGllc0NvbmZpZyA9CgoKIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDM3NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgTm92ICAxIDA2OjA0OjUyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDM3NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAxMjBBOTEwRkJCCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgIDEgTm92IDIwMTcgMDY6MDQ6NTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0OTEwNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxIE5vdiAyMDE3IDA2OjA0OjUxIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0ODAxMyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxIE5vdiAyMDE3IDA2OjA0OjUwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDc5OTQgaW52b2tlZCBieSB1aWQgOTkpOyAxIE5vdiAyMDE3IDA2OjA0OjUwIC0wMDAwClJlY2VpdmVkOiBmcm9tIGVjMi01Mi0yMDItODAtNzAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20gKEhFTE8gZ2l0Ym94LmFwYWNoZS5vcmcpICg1Mi4yMDIuODAuNzApCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMDEgTm92IDIwMTcgMDY6MDQ6NTAgKzAwMDAKRnJvbTogR2l0Qm94IDxnaXRAYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtHaXRIdWJdIGhib3V0ZW15IGNsb3NlZCBwdWxsIHJlcXVlc3QgIzEzOiBNUkVMRUFTRS05ODAgQWxsb3cgY29tbWl0IGNvbW1lbnRzIHRvIGJlIGNvbnRyb2xsZWQKTWVzc2FnZS1JRDogPDE1MDk1MTYyOTAxMC41ODA5LjU2NDEzMDM1MjM4ODI5NjYwMC5naXRib3hAZ2l0Ym94LmFwYWNoZS5vcmc+CgpoYm91dGVteSBjbG9zZWQgcHVsbCByZXF1ZXN0ICMxMzogTVJFTEVBU0UtOTgwIEFsbG93IGNvbW1pdCBjb21tZW50cyB0byBiZSBjb250cm9sbGVkClVSTDogaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1yZWxlYXNlL3B1bGwvMTMKIAogCiAgIAoKVGhpcyBpcyBhIFBSIG1lcmdlZCBmcm9tIGEgZm9ya2VkIHJlcG9zaXRvcnkuCkFzIEdpdEh1YiBoaWRlcyB0aGUgb3JpZ2luYWwgZGlmZiBvbiBtZXJnZSwgaXQgaXMgZGlzcGxheWVkIGJlbG93IGZvcgp0aGUgc2FrZSBvZiBwcm92ZW5hbmNlOgoKQXMgdGhpcyBpcyBhIGZvcmVpZ24gcHVsbCByZXF1ZXN0IChmcm9tIGEgZm9yayksIHRoZSBkaWZmIGlzIHN1cHBsaWVkCmJlbG93IChhcyBpdCB3b24ndCBzaG93IG90aGVyd2lzZSBkdWUgdG8gR2l0SHViIG1hZ2ljKToKCmRpZmYgLS1naXQgYS9tYXZlbi1yZWxlYXNlLW1hbmFnZXIvc3JjL21haW4vY29tcG9uZW50cy1mcmFnbWVudC54bWwgYi9tYXZlbi1yZWxlYXNlLW1hbmFnZXIvc3JjL21haW4vY29tcG9uZW50cy1mcmFnbWVudC54bWwKaW5kZXggNTg4MGM3NWYuLjk3ZWNhNDA2IDEwMDY0NAotLS0gYS9tYXZlbi1yZWxlYXNlLW1hbmFnZXIvc3JjL21haW4vY29tcG9uZW50cy1mcmFnbWVudC54bWwKKysrIGIvbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyL3NyYy9tYWluL2NvbXBvbmVudHMtZnJhZ21lbnQueG1sCkBAIC0xNTIsNyArMTUyLDcgQEAKICAgICAgICAgPC9yZXF1aXJlbWVudD4KICAgICAgIDwvcmVxdWlyZW1lbnRzPgogICAgICAgPGNvbmZpZ3VyYXRpb24+Ci0gICAgICAgIDxtZXNzYWdlRm9ybWF0PnByZXBhcmUgcmVsZWFzZSB7MH08L21lc3NhZ2VGb3JtYXQ+CisgICAgICAgIDxkZXNjcmlwdG9yQ29tbWVudEdldHRlcj5nZXRTY21SZWxlYXNlQ29tbWl0Q29tbWVudDwvZGVzY3JpcHRvckNvbW1lbnRHZXR0ZXI+CiAgICAgICA8L2NvbmZpZ3VyYXRpb24+CiAgICAgPC9jb21wb25lbnQ+CiAgICAgPGNvbXBvbmVudD4KQEAgLTE2NSw3ICsxNjUsNyBAQAogICAgICAgICA8L3JlcXVpcmVtZW50PgogICAgICAgPC9yZXF1aXJlbWVudHM+CiAgICAgICA8Y29uZmlndXJhdGlvbj4KLSAgICAgICAgPG1lc3NhZ2VGb3JtYXQ+cHJlcGFyZSBmb3IgbmV4dCBkZXZlbG9wbWVudCBpdGVyYXRpb248L21lc3NhZ2VGb3JtYXQ+CisgICAgICAgIDxkZXNjcmlwdG9yQ29tbWVudEdldHRlcj5nZXRTY21EZXZlbG9wbWVudENvbW1pdENvbW1lbnQ8L2Rlc2NyaXB0b3JDb21tZW50R2V0dGVyPgogICAgICAgICA8cm9sbGJhY2tNZXNzYWdlRm9ybWF0PnJvbGxiYWNrIGNoYW5nZXMgZnJvbSByZWxlYXNlIHByZXBhcmF0aW9uIG9mIHswfTwvcm9sbGJhY2tNZXNzYWdlRm9ybWF0PgogICAgICAgPC9jb25maWd1cmF0aW9uPgogICAgIDwvY29tcG9uZW50PgpAQCAtMTc5LDcgKzE3OSw3IEBACiAgICAgICAgIDwvcmVxdWlyZW1lbnQ+CiAgICAgICA8L3JlcXVpcmVtZW50cz4KICAgICAgIDxjb25maWd1cmF0aW9uPgotICAgICAgICA8bWVzc2FnZUZvcm1hdD5wcmVwYXJlIGJyYW5jaCB7MH08L21lc3NhZ2VGb3JtYXQ+CisgICAgICAgIDxkZXNjcmlwdG9yQ29tbWVudEdldHRlcj5nZXRTY21CcmFuY2hDb21taXRDb21tZW50PC9kZXNjcmlwdG9yQ29tbWVudEdldHRlcj4KICAgICAgIDwvY29uZmlndXJhdGlvbj4KICAgICA8L2NvbXBvbmVudD4KICAgICA8Y29tcG9uZW50PgpAQCAtMTkyLDcgKzE5Miw3IEBACiAgICAgICAgIDwvcmVxdWlyZW1lbnQ+CiAgICAgICA8L3JlcXVpcmVtZW50cz4KICAgICAgIDxjb25maWd1cmF0aW9uPgotICAgICAgICA8bWVzc2FnZUZvcm1hdD5yb2xsYmFjayB0aGUgcmVsZWFzZSBvZiB7MH08L21lc3NhZ2VGb3JtYXQ+CisgICAgICAgIDxkZXNjcmlwdG9yQ29tbWVudEdldHRlcj5nZXRTY21Sb2xsYmFja0NvbW1pdENvbW1lbnQ8L2Rlc2NyaXB0b3JDb21tZW50R2V0dGVyPgogICAgICAgPC9jb25maWd1cmF0aW9uPgogICAgIDwvY29tcG9uZW50PgogICAgIDxjb21wb25lbnQ+CmRpZmYgLS1naXQgYS9tYXZlbi1yZWxlYXNlLW1hbmFnZXIvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3NoYXJlZC9yZWxlYXNlL2NvbmZpZy9Qcm9wZXJ0aWVzUmVsZWFzZURlc2NyaXB0b3JTdG9yZS5qYXZhIGIvbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9zaGFyZWQvcmVsZWFzZS9jb25maWcvUHJvcGVydGllc1JlbGVhc2VEZXNjcmlwdG9yU3RvcmUuamF2YQppbmRleCAyMzU1MTdiNi4uNTU5YTQ5MjEgMTAwNjQ0Ci0tLSBhL21hdmVuLXJlbGVhc2UtbWFuYWdlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vc2hhcmVkL3JlbGVhc2UvY29uZmlnL1Byb3BlcnRpZXNSZWxlYXNlRGVzY3JpcHRvclN0b3JlLmphdmEKKysrIGIvbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9zaGFyZWQvcmVsZWFzZS9jb25maWcvUHJvcGVydGllc1JlbGVhc2VEZXNjcmlwdG9yU3RvcmUuamF2YQpAQCAtMjExLDYgKzIxMSwyMiBAQCBwdWJsaWMgdm9pZCB3cml0ZSggUmVsZWFzZURlc2NyaXB0b3IgY29uZmlnLCBGaWxlIGZpbGUgKQogICAgICAgICB7CiAgICAgICAgICAgICBwcm9wZXJ0aWVzLnNldFByb3BlcnR5KCAic2NtLmNvbW1lbnRQcmVmaXgiLCBjb25maWcuZ2V0U2NtQ29tbWVudFByZWZpeCgpICk7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKCBjb25maWcuZ2V0U2NtRGV2ZWxvcG1lbnRDb21taXRDb21tZW50KCkgIT0gbnVsbCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHByb3BlcnRpZXMuc2V0UHJvcGVydHkoICJzY20uZGV2ZWxvcG1lbnRDb21taXRDb21tZW50IiwgY29uZmlnLmdldFNjbURldmVsb3BtZW50Q29tbWl0Q29tbWVudCgpICk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCBjb25maWcuZ2V0U2NtUmVsZWFzZUNvbW1pdENvbW1lbnQoKSAhPSBudWxsICkKKyAgICAgICAgeworICAgICAgICAgICAgcHJvcGVydGllcy5zZXRQcm9wZXJ0eSggInNjbS5yZWxlYXNlQ29tbWl0Q29tbWVudCIsIGNvbmZpZy5nZXRTY21SZWxlYXNlQ29tbWl0Q29tbWVudCgpICk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCBjb25maWcuZ2V0U2NtQnJhbmNoQ29tbWl0Q29tbWVudCgpICE9IG51bGwgKQorICAgICAgICB7CisgICAgICAgICAgICBwcm9wZXJ0aWVzLnNldFByb3BlcnR5KCAic2NtLmJyYW5jaENvbW1pdENvbW1lbnQiLCBjb25maWcuZ2V0U2NtQnJhbmNoQ29tbWl0Q29tbWVudCgpICk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCBjb25maWcuZ2V0U2NtUm9sbGJhY2tDb21taXRDb21tZW50KCkgIT0gbnVsbCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHByb3BlcnRpZXMuc2V0UHJvcGVydHkoICJzY20ucm9sbGJhY2tDb21taXRDb21tZW50IiwgY29uZmlnLmdldFNjbVJvbGxiYWNrQ29tbWl0Q29tbWVudCgpICk7CisgICAgICAgIH0KICAgICAgICAgaWYgKCBjb25maWcuZ2V0QWRkaXRpb25hbEFyZ3VtZW50cygpICE9IG51bGwgKQogICAgICAgICB7CiAgICAgICAgICAgICBwcm9wZXJ0aWVzLnNldFByb3BlcnR5KCAiZXhlYy5hZGRpdGlvbmFsQXJndW1lbnRzIiwgY29uZmlnLmdldEFkZGl0aW9uYWxBcmd1bWVudHMoKSApOwpkaWZmIC0tZ2l0IGEvbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9zaGFyZWQvcmVsZWFzZS9jb25maWcvUmVsZWFzZVV0aWxzLmphdmEgYi9tYXZlbi1yZWxlYXNlLW1hbmFnZXIvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3NoYXJlZC9yZWxlYXNlL2NvbmZpZy9SZWxlYXNlVXRpbHMuamF2YQppbmRleCA1MjJmZWY0YS4uNWRjYTViOGEgMTAwNjQ0Ci0tLSBhL21hdmVuLXJlbGVhc2UtbWFuYWdlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vc2hhcmVkL3JlbGVhc2UvY29uZmlnL1JlbGVhc2VVdGlscy5qYXZhCisrKyBiL21hdmVuLXJlbGVhc2UtbWFuYWdlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vc2hhcmVkL3JlbGVhc2UvY29uZmlnL1JlbGVhc2VVdGlscy5qYXZhCkBAIC02OSw2ICs2OSwxNiBAQCBwdWJsaWMgc3RhdGljIFJlbGVhc2VEZXNjcmlwdG9yIG1lcmdlKCBSZWxlYXNlRGVzY3JpcHRvciBtZXJnZUludG8sIFJlbGVhc2VEZXNjcgogICAgICAgICAgICAgbWVyZ2VPdmVycmlkZSggbWVyZ2VJbnRvLmdldFNjbVByaXZhdGVLZXlQYXNzUGhyYXNlKCksIHRvQmVNZXJnZWQuZ2V0U2NtUHJpdmF0ZUtleVBhc3NQaHJhc2UoKSApICk7CiAgICAgICAgIG1lcmdlSW50by5zZXRTY21Db21tZW50UHJlZml4KAogICAgICAgICAgICAgbWVyZ2VPdmVycmlkZSggbWVyZ2VJbnRvLmdldFNjbUNvbW1lbnRQcmVmaXgoKSwgdG9CZU1lcmdlZC5nZXRTY21Db21tZW50UHJlZml4KCkgKSApOworICAgICAgICBtZXJnZUludG8uc2V0U2NtRGV2ZWxvcG1lbnRDb21taXRDb21tZW50KAorICAgICAgICAgICAgICAgIG1lcmdlT3ZlcnJpZGUoIAorICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2VJbnRvLmdldFNjbURldmVsb3BtZW50Q29tbWl0Q29tbWVudCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgdG9CZU1lcmdlZC5nZXRTY21EZXZlbG9wbWVudENvbW1pdENvbW1lbnQoKSApICk7CisgICAgICAgIG1lcmdlSW50by5zZXRTY21SZWxlYXNlQ29tbWl0Q29tbWVudCgKKyAgICAgICAgICAgICAgICBtZXJnZU92ZXJyaWRlKCBtZXJnZUludG8uZ2V0U2NtUmVsZWFzZUNvbW1pdENvbW1lbnQoKSwgdG9CZU1lcmdlZC5nZXRTY21SZWxlYXNlQ29tbWl0Q29tbWVudCgpICkgKTsKKyAgICAgICAgbWVyZ2VJbnRvLnNldFNjbUJyYW5jaENvbW1pdENvbW1lbnQoCisgICAgICAgICAgICAgICAgbWVyZ2VPdmVycmlkZSggbWVyZ2VJbnRvLmdldFNjbUJyYW5jaENvbW1pdENvbW1lbnQoKSwgdG9CZU1lcmdlZC5nZXRTY21CcmFuY2hDb21taXRDb21tZW50KCkgKSApOworICAgICAgICBtZXJnZUludG8uc2V0U2NtUm9sbGJhY2tDb21taXRDb21tZW50KAorICAgICAgICAgICAgICAgIG1lcmdlT3ZlcnJpZGUoIG1lcmdlSW50by5nZXRTY21Sb2xsYmFja0NvbW1pdENvbW1lbnQoKSwgdG9CZU1lcmdlZC5nZXRTY21Sb2xsYmFja0NvbW1pdENvbW1lbnQoKSApICk7CiAgICAgICAgIG1lcmdlSW50by5zZXRBZGRpdGlvbmFsQXJndW1lbnRzKAogICAgICAgICAgICAgbWVyZ2VPdmVycmlkZSggbWVyZ2VJbnRvLmdldEFkZGl0aW9uYWxBcmd1bWVudHMoKSwgdG9CZU1lcmdlZC5nZXRBZGRpdGlvbmFsQXJndW1lbnRzKCkgKSApOwogICAgICAgICBtZXJnZUludG8uc2V0UHJlcGFyYXRpb25Hb2FscygKQEAgLTE1OCw2ICsxNjgsMjMgQEAgcHVibGljIHN0YXRpYyBSZWxlYXNlRGVzY3JpcHRvciBjb3B5UHJvcGVydGllc1RvUmVsZWFzZURlc2NyaXB0b3IoIFByb3BlcnRpZXMgcHIKICAgICAgICAgcmVsZWFzZURlc2NyaXB0b3Iuc2V0U2NtQnJhbmNoQmFzZSggcHJvcGVydGllcy5nZXRQcm9wZXJ0eSggInNjbS5icmFuY2hCYXNlIiApICk7CiAgICAgICAgIHJlbGVhc2VEZXNjcmlwdG9yLnNldFNjbVJlbGVhc2VMYWJlbCggcHJvcGVydGllcy5nZXRQcm9wZXJ0eSggInNjbS50YWciICkgKTsKICAgICAgICAgcmVsZWFzZURlc2NyaXB0b3Iuc2V0U2NtQ29tbWVudFByZWZpeCggcHJvcGVydGllcy5nZXRQcm9wZXJ0eSggInNjbS5jb21tZW50UHJlZml4IiApICk7CisgICAgICAgIGlmICggcHJvcGVydGllcy5nZXRQcm9wZXJ0eSggInNjbS5yZWxlYXNlQ29tbWl0Q29tbWVudCIgKSAhPSBudWxsICkKKyAgICAgICAgeworICAgICAgICAgICAgcmVsZWFzZURlc2NyaXB0b3Iuc2V0U2NtUmVsZWFzZUNvbW1pdENvbW1lbnQoIHByb3BlcnRpZXMuZ2V0UHJvcGVydHkoICJzY20ucmVsZWFzZUNvbW1pdENvbW1lbnQiICkgKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoIHByb3BlcnRpZXMuZ2V0UHJvcGVydHkoICJzY20uZGV2ZWxvcG1lbnRDb21taXRDb21tZW50IiApICE9IG51bGwgKQorICAgICAgICB7CisgICAgICAgICAgICByZWxlYXNlRGVzY3JpcHRvci5zZXRTY21EZXZlbG9wbWVudENvbW1pdENvbW1lbnQoCisgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXMuZ2V0UHJvcGVydHkoICJzY20uZGV2ZWxvcG1lbnRDb21taXRDb21tZW50IiApICk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCBwcm9wZXJ0aWVzLmdldFByb3BlcnR5KCAic2NtLmJyYW5jaENvbW1pdENvbW1lbnQiICkgIT0gbnVsbCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJlbGVhc2VEZXNjcmlwdG9yLnNldFNjbUJyYW5jaENvbW1pdENvbW1lbnQoIHByb3BlcnRpZXMuZ2V0UHJvcGVydHkoICJzY20uYnJhbmNoQ29tbWl0Q29tbWVudCIgKSApOworICAgICAgICB9CisgICAgICAgIGlmICggcHJvcGVydGllcy5nZXRQcm9wZXJ0eSggInNjbS5yb2xsYmFja0NvbW1pdENvbW1lbnQiICkgIT0gbnVsbCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJlbGVhc2VEZXNjcmlwdG9yLnNldFNjbVJvbGxiYWNrQ29tbWl0Q29tbWVudCggcHJvcGVydGllcy5nZXRQcm9wZXJ0eSggInNjbS5yb2xsYmFja0NvbW1pdENvbW1lbnQiICkgKTsKKyAgICAgICAgfQogICAgICAgICByZWxlYXNlRGVzY3JpcHRvci5zZXRBZGRpdGlvbmFsQXJndW1lbnRzKCBwcm9wZXJ0aWVzLmdldFByb3BlcnR5KCAiZXhlYy5hZGRpdGlvbmFsQXJndW1lbnRzIiApICk7CiAgICAgICAgIHJlbGVhc2VEZXNjcmlwdG9yLnNldFBvbUZpbGVOYW1lKCBwcm9wZXJ0aWVzLmdldFByb3BlcnR5KCAiZXhlYy5wb21GaWxlTmFtZSIgKSApOwogICAgICAgICByZWxlYXNlRGVzY3JpcHRvci5zZXRQcmVwYXJhdGlvbkdvYWxzKCBwcm9wZXJ0aWVzLmdldFByb3BlcnR5KCAicHJlcGFyYXRpb25Hb2FscyIgKSApOwpkaWZmIC0tZ2l0IGEvbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9zaGFyZWQvcmVsZWFzZS9waGFzZS9BYnN0cmFjdFNjbUNvbW1pdFBoYXNlLmphdmEgYi9tYXZlbi1yZWxlYXNlLW1hbmFnZXIvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3NoYXJlZC9yZWxlYXNlL3BoYXNlL0Fic3RyYWN0U2NtQ29tbWl0UGhhc2UuamF2YQppbmRleCA5OTAwNjBkNy4uZTY3ZmQyNjcgMTAwNjQ0Ci0tLSBhL21hdmVuLXJlbGVhc2UtbWFuYWdlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vc2hhcmVkL3JlbGVhc2UvcGhhc2UvQWJzdHJhY3RTY21Db21taXRQaGFzZS5qYXZhCisrKyBiL21hdmVuLXJlbGVhc2UtbWFuYWdlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vc2hhcmVkL3JlbGVhc2UvcGhhc2UvQWJzdHJhY3RTY21Db21taXRQaGFzZS5qYXZhCkBAIC0zOSw3ICszOSw2IEBACiBpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5zaGFyZWQucmVsZWFzZS51dGlsLlJlbGVhc2VVdGlsOwogCiBpbXBvcnQgamF2YS5pby5GaWxlOwotaW1wb3J0IGphdmEudGV4dC5NZXNzYWdlRm9ybWF0OwogaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CiBpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247CiBpbXBvcnQgamF2YS51dGlsLkxpc3Q7CkBAIC02Myw5ICs2Miw5IEBACiAgICAgcHJvdGVjdGVkIFNjbVJlcG9zaXRvcnlDb25maWd1cmF0b3Igc2NtUmVwb3NpdG9yeUNvbmZpZ3VyYXRvcjsKIAogICAgIC8qKgotICAgICAqIFRoZSBmb3JtYXQgZm9yIHRoZSBjb21taXQgbWVzc2FnZS4KKyAgICAgKiBUaGUgZ2V0dGVyIGluIHRoZSBkZXNjcmlwdG9yIGZvciB0aGUgY29tbWVudC4KICAgICAgKi8KLSAgICBwcm90ZWN0ZWQgU3RyaW5nIG1lc3NhZ2VGb3JtYXQ7CisgICAgcHJvdGVjdGVkIFN0cmluZyBkZXNjcmlwdG9yQ29tbWVudEdldHRlcjsKIAogICAgIHB1YmxpYyBSZWxlYXNlUmVzdWx0IGV4ZWN1dGUoIFJlbGVhc2VEZXNjcmlwdG9yIHJlbGVhc2VEZXNjcmlwdG9yLCBSZWxlYXNlRW52aXJvbm1lbnQgcmVsZWFzZUVudmlyb25tZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Q8TWF2ZW5Qcm9qZWN0PiByZWFjdG9yUHJvamVjdHMgKQpAQCAtMTg2LDEwICsxODUsNDcgQEAgcHJvdGVjdGVkIHZvaWQgdmFsaWRhdGVDb25maWd1cmF0aW9uKCBSZWxlYXNlRGVzY3JpcHRvciByZWxlYXNlRGVzY3JpcHRvciApCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBwcm90ZWN0ZWQgU3RyaW5nIGNyZWF0ZU1lc3NhZ2UoIFJlbGVhc2VEZXNjcmlwdG9yIHJlbGVhc2VEZXNjcmlwdG9yICkKKyAgICBwcm90ZWN0ZWQgU3RyaW5nIGNyZWF0ZU1lc3NhZ2UoIExpc3Q8TWF2ZW5Qcm9qZWN0PiByZWFjdG9yUHJvamVjdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxlYXNlRGVzY3JpcHRvciByZWxlYXNlRGVzY3JpcHRvciApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgUmVsZWFzZUV4ZWN1dGlvbkV4Y2VwdGlvbgogICAgIHsKLSAgICAgICAgcmV0dXJuIE1lc3NhZ2VGb3JtYXQuZm9ybWF0KCByZWxlYXNlRGVzY3JpcHRvci5nZXRTY21Db21tZW50UHJlZml4KCkgKyBtZXNzYWdlRm9ybWF0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBPYmplY3RbXXtyZWxlYXNlRGVzY3JpcHRvci5nZXRTY21SZWxlYXNlTGFiZWwoKX0gKTsKKyAgICAgICAgU3RyaW5nIGNvbW1lbnQ7CisgICAgICAgIGJvb2xlYW4gYnJhbmNoID0gZmFsc2U7CisgICAgICAgIGlmICggImdldFNjbVJlbGVhc2VDb21taXRDb21tZW50Ii5lcXVhbHMoIGRlc2NyaXB0b3JDb21tZW50R2V0dGVyICkgKQorICAgICAgICB7CisgICAgICAgICAgICBjb21tZW50ID0gcmVsZWFzZURlc2NyaXB0b3IuZ2V0U2NtUmVsZWFzZUNvbW1pdENvbW1lbnQoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmICggImdldFNjbURldmVsb3BtZW50Q29tbWl0Q29tbWVudCIuZXF1YWxzKCBkZXNjcmlwdG9yQ29tbWVudEdldHRlciApICkKKyAgICAgICAgeworICAgICAgICAgICAgY29tbWVudCA9IHJlbGVhc2VEZXNjcmlwdG9yLmdldFNjbURldmVsb3BtZW50Q29tbWl0Q29tbWVudCgpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKCAiZ2V0U2NtQnJhbmNoQ29tbWl0Q29tbWVudCIuZXF1YWxzKCBkZXNjcmlwdG9yQ29tbWVudEdldHRlciApICkKKyAgICAgICAgeworICAgICAgICAgICAgY29tbWVudCA9IHJlbGVhc2VEZXNjcmlwdG9yLmdldFNjbUJyYW5jaENvbW1pdENvbW1lbnQoKTsKKyAgICAgICAgICAgIGJyYW5jaCA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBpZiAoICJnZXRTY21Sb2xsYmFja0NvbW1pdENvbW1lbnQiLmVxdWFscyggZGVzY3JpcHRvckNvbW1lbnRHZXR0ZXIgKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGNvbW1lbnQgPSByZWxlYXNlRGVzY3JpcHRvci5nZXRTY21Sb2xsYmFja0NvbW1pdENvbW1lbnQoKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgICAgIHRocm93IG5ldyBSZWxlYXNlRXhlY3V0aW9uRXhjZXB0aW9uKCAiSW52YWxpZCBjb25maWd1cmF0aW9uIGluIGNvbXBvbmVudHMtZnJhZ21lbnQueG1sIiApOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBNYXZlblByb2plY3QgcHJvamVjdCA9IFJlbGVhc2VVdGlsLmdldFJvb3RQcm9qZWN0KCByZWFjdG9yUHJvamVjdHMgKTsKKyAgICAgICAgY29tbWVudCA9IGNvbW1lbnQucmVwbGFjZSggIkB7cHJlZml4fSIsIHJlbGVhc2VEZXNjcmlwdG9yLmdldFNjbUNvbW1lbnRQcmVmaXgoKS50cmltKCkgKTsKKyAgICAgICAgY29tbWVudCA9IGNvbW1lbnQucmVwbGFjZSggIkB7Z3JvdXBJZH0iLCBwcm9qZWN0LmdldEdyb3VwSWQoKSApOworICAgICAgICBjb21tZW50ID0gY29tbWVudC5yZXBsYWNlKCAiQHthcnRpZmFjdElkfSIsIHByb2plY3QuZ2V0QXJ0aWZhY3RJZCgpICk7CisgICAgICAgIGlmICggYnJhbmNoICkKKyAgICAgICAgeworICAgICAgICAgICAgY29tbWVudCA9IGNvbW1lbnQucmVwbGFjZSggIkB7YnJhbmNoTmFtZX0iLCByZWxlYXNlRGVzY3JpcHRvci5nZXRTY21SZWxlYXNlTGFiZWwoKSApOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAgY29tbWVudCA9IGNvbW1lbnQucmVwbGFjZSggIkB7cmVsZWFzZUxhYmVsfSIsIHJlbGVhc2VEZXNjcmlwdG9yLmdldFNjbVJlbGVhc2VMYWJlbCgpICk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGNvbW1lbnQ7CiAgICAgfQogCiAgICAgcHJvdGVjdGVkIHN0YXRpYyBMaXN0PEZpbGU+IGNyZWF0ZVBvbUZpbGVzKCBSZWxlYXNlRGVzY3JpcHRvciByZWxlYXNlRGVzY3JpcHRvciwgTWF2ZW5Qcm9qZWN0IHByb2plY3QgKQpkaWZmIC0tZ2l0IGEvbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9zaGFyZWQvcmVsZWFzZS9waGFzZS9TY21Db21taXREZXZlbG9wbWVudFBoYXNlLmphdmEgYi9tYXZlbi1yZWxlYXNlLW1hbmFnZXIvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3NoYXJlZC9yZWxlYXNlL3BoYXNlL1NjbUNvbW1pdERldmVsb3BtZW50UGhhc2UuamF2YQppbmRleCA4ODliOWMzNS4uYTFmYzk1NmUgMTAwNjQ0Ci0tLSBhL21hdmVuLXJlbGVhc2UtbWFuYWdlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vc2hhcmVkL3JlbGVhc2UvcGhhc2UvU2NtQ29tbWl0RGV2ZWxvcG1lbnRQaGFzZS5qYXZhCisrKyBiL21hdmVuLXJlbGVhc2UtbWFuYWdlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vc2hhcmVkL3JlbGVhc2UvcGhhc2UvU2NtQ29tbWl0RGV2ZWxvcG1lbnRQaGFzZS5qYXZhCkBAIC03OCwxMyArNzgsMTMgQEAgcHJvdGVjdGVkIHZvaWQgcnVuTG9naWMoIFJlbGVhc2VEZXNjcmlwdG9yIHJlbGVhc2VEZXNjcmlwdG9yLCBSZWxlYXNlRW52aXJvbm1lbnQKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAvLyBhIG5vcm1hbCBjb21taXQKLSAgICAgICAgICAgICAgICBtZXNzYWdlID0gY3JlYXRlTWVzc2FnZSggcmVsZWFzZURlc2NyaXB0b3IgKTsKKyAgICAgICAgICAgICAgICBtZXNzYWdlID0gY3JlYXRlTWVzc2FnZSggcmVhY3RvclByb2plY3RzLCByZWxlYXNlRGVzY3JpcHRvciApOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKCBzaW11bGF0aW5nICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBDb2xsZWN0aW9uPEZpbGU+IHBvbUZpbGVzID0gY3JlYXRlUG9tRmlsZXMoIHJlbGVhc2VEZXNjcmlwdG9yLCByZWFjdG9yUHJvamVjdHMgKTsKICAgICAgICAgICAgICAgICBsb2dJbmZvKCByZXN1bHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIkZ1bGwgcnVuIHdvdWxkIGJlIGNvbW1pdCAiICsgcG9tRmlsZXMuc2l6ZSgpICsgIiBmaWxlcyB3aXRoIG1lc3NhZ2U6ICciICsgbWVzc2FnZSArICInIiApOworICAgICAgICAgICAgICAgICAgICAgICAgICJGdWxsIHJ1biB3b3VsZCBjb21taXQgIiArIHBvbUZpbGVzLnNpemUoKSArICIgZmlsZXMgd2l0aCBtZXNzYWdlOiAnIiArIG1lc3NhZ2UgKyAiJyIgKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHsKZGlmZiAtLWdpdCBhL21hdmVuLXJlbGVhc2UtbWFuYWdlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vc2hhcmVkL3JlbGVhc2UvcGhhc2UvU2NtQ29tbWl0UHJlcGFyYXRpb25QaGFzZS5qYXZhIGIvbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9zaGFyZWQvcmVsZWFzZS9waGFzZS9TY21Db21taXRQcmVwYXJhdGlvblBoYXNlLmphdmEKaW5kZXggOGM2NWE2MGEuLjFiZWUyZmI0IDEwMDY0NAotLS0gYS9tYXZlbi1yZWxlYXNlLW1hbmFnZXIvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3NoYXJlZC9yZWxlYXNlL3BoYXNlL1NjbUNvbW1pdFByZXBhcmF0aW9uUGhhc2UuamF2YQorKysgYi9tYXZlbi1yZWxlYXNlLW1hbmFnZXIvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3NoYXJlZC9yZWxlYXNlL3BoYXNlL1NjbUNvbW1pdFByZXBhcmF0aW9uUGhhc2UuamF2YQpAQCAtMjgsNyArMjgsNiBAQAogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uc2hhcmVkLnJlbGVhc2Uuc2NtLlJlbGVhc2VTY21Db21tYW5kRXhjZXB0aW9uOwogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uc2hhcmVkLnJlbGVhc2Uuc2NtLlJlbGVhc2VTY21SZXBvc2l0b3J5RXhjZXB0aW9uOwogCi1pbXBvcnQgamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQ7CiBpbXBvcnQgamF2YS51dGlsLkxpc3Q7CiAKIC8qKgpAQCAtNDAsMTEgKzM5LDYgQEAKICAgICBleHRlbmRzIEFic3RyYWN0U2NtQ29tbWl0UGhhc2UKIHsKIAotICAgIC8qKgotICAgICAqIFRoZSBmb3JtYXQgZm9yIHRoZQotICAgICAqLwotICAgIHByaXZhdGUgU3RyaW5nIHJvbGxiYWNrTWVzc2FnZUZvcm1hdDsKLQogICAgIHByb3RlY3RlZCB2b2lkIHJ1bkxvZ2ljKCBSZWxlYXNlRGVzY3JpcHRvciByZWxlYXNlRGVzY3JpcHRvciwgUmVsZWFzZUVudmlyb25tZW50IHJlbGVhc2VFbnZpcm9ubWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdDxNYXZlblByb2plY3Q+IHJlYWN0b3JQcm9qZWN0cywgUmVsZWFzZVJlc3VsdCByZXN1bHQsIGJvb2xlYW4gc2ltdWxhdGluZyApCiAgICAgICAgIHRocm93cyBSZWxlYXNlU2NtQ29tbWFuZEV4Y2VwdGlvbiwgUmVsZWFzZUV4ZWN1dGlvbkV4Y2VwdGlvbiwgUmVsZWFzZVNjbVJlcG9zaXRvcnlFeGNlcHRpb24KQEAgLTY1LDggKzU5LDcgQEAgcHJvdGVjdGVkIHZvaWQgcnVuTG9naWMoIFJlbGVhc2VEZXNjcmlwdG9yIHJlbGVhc2VEZXNjcmlwdG9yLCBSZWxlYXNlRW52aXJvbm1lbnQKICAgICAgICAgLy8gY29tbWl0IGRldmVsb3BtZW50IHZlcnNpb25zIHJlcXVpcmVkCiAgICAgICAgIGVsc2UKICAgICAgICAgewotICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSBjcmVhdGVNZXNzYWdlKCByZWxlYXNlRGVzY3JpcHRvciApOwotCisgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSA9IGNyZWF0ZU1lc3NhZ2UoIHJlYWN0b3JQcm9qZWN0cywgcmVsZWFzZURlc2NyaXB0b3IgKTsKICAgICAgICAgICAgIGlmICggc2ltdWxhdGluZyApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgc2ltdWxhdGVDaGVja2lucyggcmVsZWFzZURlc2NyaXB0b3IsIHJlYWN0b3JQcm9qZWN0cywgcmVzdWx0LCBtZXNzYWdlICk7CkBAIC03OCwxMiArNzEsNiBAQCBwcm90ZWN0ZWQgdm9pZCBydW5Mb2dpYyggUmVsZWFzZURlc2NyaXB0b3IgcmVsZWFzZURlc2NyaXB0b3IsIFJlbGVhc2VFbnZpcm9ubWVudAogICAgICAgICB9CiAgICAgfQogCi0gICAgcHJpdmF0ZSBTdHJpbmcgY3JlYXRlUm9sbGJhY2tNZXNzYWdlKCBSZWxlYXNlRGVzY3JpcHRvciByZWxlYXNlRGVzY3JpcHRvciApCi0gICAgewotICAgICAgICByZXR1cm4gTWVzc2FnZUZvcm1hdC5mb3JtYXQoIHJlbGVhc2VEZXNjcmlwdG9yLmdldFNjbUNvbW1lbnRQcmVmaXgoKSArIHJvbGxiYWNrTWVzc2FnZUZvcm1hdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgT2JqZWN0W117cmVsZWFzZURlc2NyaXB0b3IuZ2V0U2NtUmVsZWFzZUxhYmVsKCl9ICk7Ci0gICAgfQotCiAgICAgcHJvdGVjdGVkIHZvaWQgdmFsaWRhdGVDb25maWd1cmF0aW9uKCBSZWxlYXNlRGVzY3JpcHRvciByZWxlYXNlRGVzY3JpcHRvciApCiAgICAgICAgIHRocm93cyBSZWxlYXNlRmFpbHVyZUV4Y2VwdGlvbgogICAgIHsKZGlmZiAtLWdpdCBhL21hdmVuLXJlbGVhc2UtbWFuYWdlci9zcmMvbWFpbi9tZG8vcmVsZWFzZS1kZXNjcmlwdG9yLm1kbyBiL21hdmVuLXJlbGVhc2UtbWFuYWdlci9zcmMvbWFpbi9tZG8vcmVsZWFzZS1kZXNjcmlwdG9yLm1kbwppbmRleCBmNjJiMGZmZC4uYzhkZWZiYzcgMTAwNjQ0Ci0tLSBhL21hdmVuLXJlbGVhc2UtbWFuYWdlci9zcmMvbWFpbi9tZG8vcmVsZWFzZS1kZXNjcmlwdG9yLm1kbworKysgYi9tYXZlbi1yZWxlYXNlLW1hbmFnZXIvc3JjL21haW4vbWRvL3JlbGVhc2UtZGVzY3JpcHRvci5tZG8KQEAgLTY5LDYgKzY5LDQyIEBACiAgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KICAgICAgICAgPC9maWVsZD4KICAgICAgICAgPGZpZWxkPgorICAgICAgICAgIDxuYW1lPnNjbVJlbGVhc2VDb21taXRDb21tZW50PC9uYW1lPgorICAgICAgICAgIDx2ZXJzaW9uPjMuMC4wKzwvdmVyc2lvbj4KKyAgICAgICAgICA8dHlwZT5TdHJpbmc8L3R5cGU+CisgICAgICAgICAgPGRlZmF1bHRWYWx1ZT5Ae3ByZWZpeH0gcHJlcGFyZSByZWxlYXNlIEB7cmVsZWFzZUxhYmVsfTwvZGVmYXVsdFZhbHVlPgorICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIFRoZSBTQ00gY29tbWl0IGNvbW1lbnQgd2hlbiBzZXR0aW5nIHBvbS54bWwgdG8gcmVsZWFzZQorICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvZmllbGQ+CisgICAgICAgIDxmaWVsZD4KKyAgICAgICAgICA8bmFtZT5zY21EZXZlbG9wbWVudENvbW1pdENvbW1lbnQ8L25hbWU+CisgICAgICAgICAgPHZlcnNpb24+My4wLjArPC92ZXJzaW9uPgorICAgICAgICAgIDx0eXBlPlN0cmluZzwvdHlwZT4KKyAgICAgICAgICA8ZGVmYXVsdFZhbHVlPkB7cHJlZml4fSBwcmVwYXJlIGZvciBuZXh0IGRldmVsb3BtZW50IGl0ZXJhdGlvbjwvZGVmYXVsdFZhbHVlPgorICAgICAgICAgIDxkZXNjcmlwdGlvbj4KKyAgICAgICAgICAgIFRoZSBTQ00gY29tbWl0IGNvbW1lbnQgd2hlbiBzZXR0aW5nIHBvbS54bWwgYmFjayB0byBkZXZlbG9wbWVudAorICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvZmllbGQ+CisgICAgICAgIDxmaWVsZD4KKyAgICAgICAgICA8bmFtZT5zY21CcmFuY2hDb21taXRDb21tZW50PC9uYW1lPgorICAgICAgICAgIDx2ZXJzaW9uPjMuMC4wKzwvdmVyc2lvbj4KKyAgICAgICAgICA8dHlwZT5TdHJpbmc8L3R5cGU+CisgICAgICAgICAgPGRlZmF1bHRWYWx1ZT5Ae3ByZWZpeH0gcHJlcGFyZSBicmFuY2ggQHtyZWxlYXNlTGFiZWx9PC9kZWZhdWx0VmFsdWU+CisgICAgICAgICAgPGRlc2NyaXB0aW9uPgorICAgICAgICAgICAgVGhlIFNDTSBjb21taXQgY29tbWVudCB3aGVuIGJyYW5jaGluZworICAgICAgICAgIDwvZGVzY3JpcHRpb24+CisgICAgICAgIDwvZmllbGQ+CisgICAgICAgIDxmaWVsZD4KKyAgICAgICAgICA8bmFtZT5zY21Sb2xsYmFja0NvbW1pdENvbW1lbnQ8L25hbWU+CisgICAgICAgICAgPHZlcnNpb24+My4wLjArPC92ZXJzaW9uPgorICAgICAgICAgIDx0eXBlPlN0cmluZzwvdHlwZT4KKyAgICAgICAgICA8ZGVmYXVsdFZhbHVlPkB7cHJlZml4fSByb2xsYmFjayB0aGUgcmVsZWFzZSBvZiBAe3JlbGVhc2VMYWJlbH08L2RlZmF1bHRWYWx1ZT4KKyAgICAgICAgICA8ZGVzY3JpcHRpb24+CisgICAgICAgICAgICBUaGUgU0NNIGNvbW1pdCBjb21tZW50IHdoZW4gcm9sbGluZyBiYWNrCisgICAgICAgICAgPC9kZXNjcmlwdGlvbj4KKyAgICAgICAgPC9maWVsZD4KKyAgICAgICAgPGZpZWxkPgogICAgICAgICAgIDxuYW1lPnNjbVNvdXJjZVVybDwvbmFtZT4KICAgICAgICAgICA8dmVyc2lvbj4xLjAuMCs8L3ZlcnNpb24+CiAgICAgICAgICAgPHR5cGU+U3RyaW5nPC90eXBlPgpAQCAtNzkzLDYgKzgyOSwyMiBAQAogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKCAhc2FmZUVxdWFscyggc2NtRGV2ZWxvcG1lbnRDb21taXRDb21tZW50LCB0aGF0LnNjbURldmVsb3BtZW50Q29tbWl0Q29tbWVudCApICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgICAgIGlmICggIXNhZmVFcXVhbHMoIHNjbVJlbGVhc2VDb21taXRDb21tZW50LCB0aGF0LnNjbVJlbGVhc2VDb21taXRDb21tZW50ICkgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCAhc2FmZUVxdWFscyggc2NtQnJhbmNoQ29tbWl0Q29tbWVudCwgdGhhdC5zY21CcmFuY2hDb21taXRDb21tZW50ICkgKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCAhc2FmZUVxdWFscyggc2NtUm9sbGJhY2tDb21taXRDb21tZW50LCB0aGF0LnNjbVJvbGxiYWNrQ29tbWl0Q29tbWVudCApICkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CiAgICAgICAgIGlmICggIXNhZmVFcXVhbHMoIHNjbVByaXZhdGVLZXlQYXNzUGhyYXNlLCB0aGF0LnNjbVByaXZhdGVLZXlQYXNzUGhyYXNlICkgKQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC05MjEsNiArOTczLDEwIEBACiAgICAgICAgIHJlc3VsdCA9IDI5ICogcmVzdWx0ICsgKCBjb21wbGV0aW9uR29hbHMgIT0gbnVsbCA/IGNvbXBsZXRpb25Hb2Fscy5oYXNoQ29kZSgpIDogMCApOwogICAgICAgICByZXN1bHQgPSAyOSAqIHJlc3VsdCArICggcG9tRmlsZU5hbWUgIT0gbnVsbCA/IHBvbUZpbGVOYW1lLmhhc2hDb2RlKCkgOiAwICk7CiAgICAgICAgIHJlc3VsdCA9IDI5ICogcmVzdWx0ICsgKCBjaGVja01vZGlmaWNhdGlvbkV4Y2x1ZGVzICE9IG51bGwgPyBjaGVja01vZGlmaWNhdGlvbkV4Y2x1ZGVzLmhhc2hDb2RlKCkgOiAwICk7CisgICAgICAgIHJlc3VsdCA9IDI5ICogcmVzdWx0ICsgKCBzY21EZXZlbG9wbWVudENvbW1pdENvbW1lbnQgIT0gbnVsbCA/IHNjbURldmVsb3BtZW50Q29tbWl0Q29tbWVudC5oYXNoQ29kZSgpIDogMCApOworICAgICAgICByZXN1bHQgPSAyOSAqIHJlc3VsdCArICggc2NtUmVsZWFzZUNvbW1pdENvbW1lbnQgIT0gbnVsbCA/IHNjbVJlbGVhc2VDb21taXRDb21tZW50Lmhhc2hDb2RlKCkgOiAwICk7CisgICAgICAgIHJlc3VsdCA9IDI5ICogcmVzdWx0ICsgKCBzY21CcmFuY2hDb21taXRDb21tZW50ICE9IG51bGwgPyBzY21CcmFuY2hDb21taXRDb21tZW50Lmhhc2hDb2RlKCkgOiAwICk7CisgICAgICAgIHJlc3VsdCA9IDI5ICogcmVzdWx0ICsgKCBzY21Sb2xsYmFja0NvbW1pdENvbW1lbnQgIT0gbnVsbCA/IHNjbVJvbGxiYWNrQ29tbWl0Q29tbWVudC5oYXNoQ29kZSgpIDogMCApOwogICAgICAgICByZXN1bHQgPSAyOSAqIHJlc3VsdCArICggc2NtVGFnQmFzZSAhPSBudWxsID8gc2NtVGFnQmFzZS5oYXNoQ29kZSgpIDogMCApOwogICAgICAgICByZXN1bHQgPSAyOSAqIHJlc3VsdCArICggc2NtQnJhbmNoQmFzZSAhPSBudWxsID8gc2NtQnJhbmNoQmFzZS5oYXNoQ29kZSgpIDogMCApOwogICAgICAgICByZXN1bHQgPSAyOSAqIHJlc3VsdCArICggc2NtVXNlcm5hbWUgIT0gbnVsbCA/IHNjbVVzZXJuYW1lLmhhc2hDb2RlKCkgOiAwICk7CmRpZmYgLS1naXQgYS9tYXZlbi1yZWxlYXNlLW1hbmFnZXIvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL3NoYXJlZC9yZWxlYXNlL3BoYXNlL1NjbUNvbW1pdERldmVsb3BtZW50UGhhc2VUZXN0LmphdmEgYi9tYXZlbi1yZWxlYXNlLW1hbmFnZXIvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL3NoYXJlZC9yZWxlYXNlL3BoYXNlL1NjbUNvbW1pdERldmVsb3BtZW50UGhhc2VUZXN0LmphdmEKaW5kZXggNTY4NzVjMGEuLjE0Zjk5OTM4IDEwMDY0NAotLS0gYS9tYXZlbi1yZWxlYXNlLW1hbmFnZXIvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL3NoYXJlZC9yZWxlYXNlL3BoYXNlL1NjbUNvbW1pdERldmVsb3BtZW50UGhhc2VUZXN0LmphdmEKKysrIGIvbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9tYXZlbi9zaGFyZWQvcmVsZWFzZS9waGFzZS9TY21Db21taXREZXZlbG9wbWVudFBoYXNlVGVzdC5qYXZhCkBAIC0xMTgsNiArMTE4LDIxIEBAIHB1YmxpYyB2b2lkIHRlc3RDb21taXRzTmV4dFZlcnNpb25zKCkKICAgICB9CiAKICAgICBAVGVzdAorICAgIHB1YmxpYyB2b2lkIHRlc3RDb21taXRzTmV4dFZlcnNpb25zQWx0ZXJuYXRlTWVzc2FnZSgpCisgICAgICAgIHRocm93cyBFeGNlcHRpb24KKyAgICB7CisgICAgICAgIGRlc2NyaXB0b3Iuc2V0VXBkYXRlV29ya2luZ0NvcHlWZXJzaW9ucyggdHJ1ZSApOworICAgICAgICBkZXNjcmlwdG9yLnNldFNjbUNvbW1lbnRQcmVmaXgoIltyZWxlYXNlXSIpOworICAgICAgICBkZXNjcmlwdG9yLnNldFNjbURldmVsb3BtZW50Q29tbWl0Q29tbWVudCgiQHtwcmVmaXh9IERldmVsb3BtZW50IG9mIEB7Z3JvdXBJZH06QHthcnRpZmFjdElkfSIpOworCisgICAgICAgIHByZXBhcmVDaGVja2luKCAiW3JlbGVhc2VdIERldmVsb3BtZW50IG9mIGdyb3VwSWQ6YXJ0aWZhY3RJZCIgKTsKKworICAgICAgICBwaGFzZS5leGVjdXRlKCBkZXNjcmlwdG9yLCBuZXcgRGVmYXVsdFJlbGVhc2VFbnZpcm9ubWVudCgpLCByZWFjdG9yUHJvamVjdHMgKTsKKworICAgICAgICB2ZXJpZnlDaGVja2luKCAiW3JlbGVhc2VdIERldmVsb3BtZW50IG9mIGdyb3VwSWQ6YXJ0aWZhY3RJZCIgKTsKKyAgICB9CisKKyAgICBAVGVzdAogICAgIHB1YmxpYyB2b2lkIHRlc3RDb21taXRzUm9sbGJhY2tQcmVwYXJlKCkKICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbgogICAgIHsKZGlmZiAtLWdpdCBhL21hdmVuLXJlbGVhc2UtbWFuYWdlci9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vc2hhcmVkL3JlbGVhc2UvcGhhc2UvU2NtQ29tbWl0UHJlcGFyYXRpb25QaGFzZVRlc3QuamF2YSBiL21hdmVuLXJlbGVhc2UtbWFuYWdlci9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vc2hhcmVkL3JlbGVhc2UvcGhhc2UvU2NtQ29tbWl0UHJlcGFyYXRpb25QaGFzZVRlc3QuamF2YQppbmRleCA5Y2M3MjU2Yy4uZWM4MjUwNzQgMTAwNjQ0Ci0tLSBhL21hdmVuLXJlbGVhc2UtbWFuYWdlci9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vc2hhcmVkL3JlbGVhc2UvcGhhc2UvU2NtQ29tbWl0UHJlcGFyYXRpb25QaGFzZVRlc3QuamF2YQorKysgYi9tYXZlbi1yZWxlYXNlLW1hbmFnZXIvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL3NoYXJlZC9yZWxlYXNlL3BoYXNlL1NjbUNvbW1pdFByZXBhcmF0aW9uUGhhc2VUZXN0LmphdmEKQEAgLTEyOSw2ICsxMjksNDEgQEAgcHVibGljIHZvaWQgdGVzdENvbW1pdCgpCiAgICAgfQogCiAgICAgQFRlc3QKKyAgICBwdWJsaWMgdm9pZCB0ZXN0Q29tbWl0QWx0ZXJuYXRlTWVzc2FnZSgpCisgICAgICAgIHRocm93cyBFeGNlcHRpb24KKyAgICB7CisgICAgICAgIC8vIHByZXBhcmUKKyAgICAgICAgTGlzdDxNYXZlblByb2plY3Q+IHJlYWN0b3JQcm9qZWN0cyA9IGNyZWF0ZVJlYWN0b3JQcm9qZWN0cygpOworICAgICAgICBSZWxlYXNlRGVzY3JpcHRvciBkZXNjcmlwdG9yID0gbmV3IFJlbGVhc2VEZXNjcmlwdG9yKCk7CisgICAgICAgIGRlc2NyaXB0b3Iuc2V0U2NtU291cmNlVXJsKCAic2NtLXVybCIgKTsKKyAgICAgICAgZGVzY3JpcHRvci5zZXRTY21Db21tZW50UHJlZml4KCJbcmVsZWFzZV0iKTsKKyAgICAgICAgZGVzY3JpcHRvci5zZXRTY21SZWxlYXNlQ29tbWl0Q29tbWVudCgiQHtwcmVmaXh9IFJlbGVhc2Ugb2YgQHtncm91cElkfTpAe2FydGlmYWN0SWR9IEB7cmVsZWFzZUxhYmVsfSIpOworICAgICAgICBNYXZlblByb2plY3Qgcm9vdFByb2plY3QgPSBSZWxlYXNlVXRpbC5nZXRSb290UHJvamVjdCggcmVhY3RvclByb2plY3RzICk7CisgICAgICAgIGRlc2NyaXB0b3Iuc2V0V29ya2luZ0RpcmVjdG9yeSggcm9vdFByb2plY3QuZ2V0RmlsZSgpLmdldFBhcmVudEZpbGUoKS5nZXRBYnNvbHV0ZVBhdGgoKSApOworICAgICAgICBkZXNjcmlwdG9yLnNldFNjbVJlbGVhc2VMYWJlbCggInJlbGVhc2UtbGFiZWwiICk7CisKKyAgICAgICAgU2NtRmlsZVNldCBmaWxlU2V0ID0gbmV3IFNjbUZpbGVTZXQoIHJvb3RQcm9qZWN0LmdldEZpbGUoKS5nZXRQYXJlbnRGaWxlKCksIHJvb3RQcm9qZWN0LmdldEZpbGUoKSApOworCisgICAgICAgIFNjbVByb3ZpZGVyIHNjbVByb3ZpZGVyTW9jayA9IG1vY2soIFNjbVByb3ZpZGVyLmNsYXNzICk7CisgICAgICAgIHdoZW4oIHNjbVByb3ZpZGVyTW9jay5jaGVja0luKCBpc0EoIFNjbVJlcG9zaXRvcnkuY2xhc3MgKSwgYXJnVGhhdCggbmV3IElzU2NtRmlsZVNldEVxdWFscyggZmlsZVNldCApICksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc051bGwoIFNjbVZlcnNpb24uY2xhc3MgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVxKCAiW3JlbGVhc2VdIFJlbGVhc2Ugb2YgZ3JvdXBJZDphcnRpZmFjdElkIHJlbGVhc2UtbGFiZWwiICkgKSApLnRoZW5SZXR1cm4oIG5ldyBDaGVja0luU2NtUmVzdWx0KCAiLi4uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29sbGVjdGlvbnMuc2luZ2xldG9uTGlzdCggbmV3IFNjbUZpbGUoIHJvb3RQcm9qZWN0LmdldEZpbGUoKS5nZXRQYXRoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTY21GaWxlU3RhdHVzLkNIRUNLRURfSU4gKSApICkgKTsKKworICAgICAgICBTY21NYW5hZ2VyU3R1YiBzdHViID0gKFNjbU1hbmFnZXJTdHViKSBsb29rdXAoIFNjbU1hbmFnZXIuUk9MRSApOworICAgICAgICBzdHViLnNldFNjbVByb3ZpZGVyKCBzY21Qcm92aWRlck1vY2sgKTsKKworICAgICAgICAvLyBleGVjdXRlCisgICAgICAgIHBoYXNlLmV4ZWN1dGUoIGRlc2NyaXB0b3IsIG5ldyBEZWZhdWx0UmVsZWFzZUVudmlyb25tZW50KCksIHJlYWN0b3JQcm9qZWN0cyApOworCisgICAgICAgIC8vIHZlcmlmeQorICAgICAgICB2ZXJpZnkoIHNjbVByb3ZpZGVyTW9jayApLmNoZWNrSW4oIGlzQSggU2NtUmVwb3NpdG9yeS5jbGFzcyApLCBhcmdUaGF0KCBuZXcgSXNTY21GaWxlU2V0RXF1YWxzKCBmaWxlU2V0ICkgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc051bGwoIFNjbVZlcnNpb24uY2xhc3MgKSwgZXEoICJbcmVsZWFzZV0gUmVsZWFzZSBvZiBncm91cElkOmFydGlmYWN0SWQgcmVsZWFzZS1sYWJlbCIgKSApOworICAgICAgICB2ZXJpZnlOb01vcmVJbnRlcmFjdGlvbnMoIHNjbVByb3ZpZGVyTW9jayApOworICAgIH0KKworICAgIEBUZXN0CiAgICAgcHVibGljIHZvaWQgdGVzdENvbW1pdE11bHRpTW9kdWxlKCkKICAgICAgICAgdGhyb3dzIEV4Y2VwdGlvbgogICAgIHsKQEAgLTIwNCw2ICsyMzksNDQgQEAgcHVibGljIHZvaWQgdGVzdENvbW1pdERldmVsb3BtZW50KCkKICAgICB9CiAKICAgICBAVGVzdAorICAgIHB1YmxpYyB2b2lkIHRlc3RDb21taXREZXZlbG9wbWVudEFsdGVybmF0ZU1lc3NhZ2UoKQorICAgICAgICB0aHJvd3MgRXhjZXB0aW9uCisgICAgeworICAgICAgICAvLyBwcmVwYXJlCisgICAgICAgIHBoYXNlID0gKFJlbGVhc2VQaGFzZSkgbG9va3VwKCBSZWxlYXNlUGhhc2UuUk9MRSwgInNjbS1jb21taXQtZGV2ZWxvcG1lbnQiICk7CisKKyAgICAgICAgUmVsZWFzZURlc2NyaXB0b3IgZGVzY3JpcHRvciA9IG5ldyBSZWxlYXNlRGVzY3JpcHRvcigpOworICAgICAgICBMaXN0PE1hdmVuUHJvamVjdD4gcmVhY3RvclByb2plY3RzID0gY3JlYXRlUmVhY3RvclByb2plY3RzKCk7CisgICAgICAgIGRlc2NyaXB0b3Iuc2V0U2NtU291cmNlVXJsKCAic2NtLXVybCIgKTsKKyAgICAgICAgZGVzY3JpcHRvci5zZXRTY21Db21tZW50UHJlZml4KCJbcmVsZWFzZV0iKTsKKyAgICAgICAgZGVzY3JpcHRvci5zZXRTY21EZXZlbG9wbWVudENvbW1pdENvbW1lbnQoIkB7cHJlZml4fSBCdW1wIHZlcnNpb24gb2YgQHtncm91cElkfTpAe2FydGlmYWN0SWR9IGFmdGVyIEB7cmVsZWFzZUxhYmVsfSIpOworICAgICAgICBNYXZlblByb2plY3Qgcm9vdFByb2plY3QgPSBSZWxlYXNlVXRpbC5nZXRSb290UHJvamVjdCggcmVhY3RvclByb2plY3RzICk7CisgICAgICAgIGRlc2NyaXB0b3Iuc2V0V29ya2luZ0RpcmVjdG9yeSggcm9vdFByb2plY3QuZ2V0RmlsZSgpLmdldFBhcmVudEZpbGUoKS5nZXRBYnNvbHV0ZVBhdGgoKSApOworICAgICAgICBkZXNjcmlwdG9yLnNldFNjbVJlbGVhc2VMYWJlbCggInJlbGVhc2UtbGFiZWwiICk7CisKKyAgICAgICAgU2NtRmlsZVNldCBmaWxlU2V0ID0gbmV3IFNjbUZpbGVTZXQoIHJvb3RQcm9qZWN0LmdldEZpbGUoKS5nZXRQYXJlbnRGaWxlKCksIHJvb3RQcm9qZWN0LmdldEZpbGUoKSApOworCisgICAgICAgIFNjbVByb3ZpZGVyIHNjbVByb3ZpZGVyTW9jayA9IG1vY2soIFNjbVByb3ZpZGVyLmNsYXNzICk7CisgICAgICAgIHdoZW4oIHNjbVByb3ZpZGVyTW9jay5jaGVja0luKCBpc0EoIFNjbVJlcG9zaXRvcnkuY2xhc3MgKSwgYXJnVGhhdCggbmV3IElzU2NtRmlsZVNldEVxdWFscyggZmlsZVNldCApICksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc051bGwoIFNjbVZlcnNpb24uY2xhc3MgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVxKCAiW3JlbGVhc2VdIEJ1bXAgdmVyc2lvbiBvZiBncm91cElkOmFydGlmYWN0SWQgYWZ0ZXIgcmVsZWFzZS1sYWJlbCIgKSApICkudGhlblJldHVybiggbmV3IENoZWNrSW5TY21SZXN1bHQoICIuLi4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbGxlY3Rpb25zLnNpbmdsZXRvbkxpc3QoIG5ldyBTY21GaWxlKCByb290UHJvamVjdC5nZXRGaWxlKCkuZ2V0UGF0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTY21GaWxlU3RhdHVzLkNIRUNLRURfSU4gKSApICkgKTsKKworICAgICAgICBTY21NYW5hZ2VyU3R1YiBzdHViID0gKFNjbU1hbmFnZXJTdHViKSBsb29rdXAoIFNjbU1hbmFnZXIuUk9MRSApOworICAgICAgICBzdHViLnNldFNjbVByb3ZpZGVyKCBzY21Qcm92aWRlck1vY2sgKTsKKworICAgICAgICAvLyBleGVjdXRlCisgICAgICAgIHBoYXNlLmV4ZWN1dGUoIGRlc2NyaXB0b3IsIG5ldyBEZWZhdWx0UmVsZWFzZUVudmlyb25tZW50KCksIHJlYWN0b3JQcm9qZWN0cyApOworCisgICAgICAgIC8vIHZlcmlmeQorICAgICAgICB2ZXJpZnkoIHNjbVByb3ZpZGVyTW9jayApLmNoZWNrSW4oIGlzQSggU2NtUmVwb3NpdG9yeS5jbGFzcyApLCBhcmdUaGF0KCBuZXcgSXNTY21GaWxlU2V0RXF1YWxzKCBmaWxlU2V0ICkgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc051bGwoIFNjbVZlcnNpb24uY2xhc3MgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcSggIltyZWxlYXNlXSBCdW1wIHZlcnNpb24gb2YgZ3JvdXBJZDphcnRpZmFjdElkIGFmdGVyIHJlbGVhc2UtbGFiZWwiICkgKTsKKyAgICAgICAgdmVyaWZ5Tm9Nb3JlSW50ZXJhY3Rpb25zKCBzY21Qcm92aWRlck1vY2sgKTsKKyAgICB9CisKKyAgICBAVGVzdAogICAgIHB1YmxpYyB2b2lkIHRlc3RDb21taXROb1JlbGVhc2VMYWJlbCgpCiAgICAgICAgIHRocm93cyBFeGNlcHRpb24KICAgICB7CmRpZmYgLS1naXQgYS9tYXZlbi1yZWxlYXNlLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9yZWxlYXNlL0JyYW5jaFJlbGVhc2VNb2pvLmphdmEgYi9tYXZlbi1yZWxlYXNlLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9yZWxlYXNlL0JyYW5jaFJlbGVhc2VNb2pvLmphdmEKaW5kZXggMDNhYTMxYmUuLjk4ODQzMzRhIDEwMDY0NAotLS0gYS9tYXZlbi1yZWxlYXNlLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9yZWxlYXNlL0JyYW5jaFJlbGVhc2VNb2pvLmphdmEKKysrIGIvbWF2ZW4tcmVsZWFzZS1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvcmVsZWFzZS9CcmFuY2hSZWxlYXNlTW9qby5qYXZhCkBAIC0yMDcsNiArMjA3LDI1IEBACiAgICAgcHJpdmF0ZSBTdHJpbmcgcHJvamVjdE5hbWluZ1BvbGljeUlkOwogCiAgICAgLyoqCisgICAgICogVGhlIFNDTSBjb21taXQgY29tbWVudCB3aGVuIGJyYW5jaGluZy4KKyAgICAgKiBEZWZhdWx0cyB0byAiQHtwcmVmaXh9IHByZXBhcmUgYnJhbmNoIEB7cmVsZWFzZUxhYmVsfSIuCisgICAgICogPHA+CisgICAgICogUHJvcGVydHkgaW50ZXJwb2xhdGlvbiBpcyBwZXJmb3JtZWQgb24gdGhlIHZhbHVlLCBidXQgaW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgdGhlIGludGVycG9sYXRpb24gb2NjdXJzCisgICAgICogZHVyaW5nIHJlbGVhc2UsIHlvdSBtdXN0IHVzZSA8Y29kZT5Aey4uLn08L2NvZGU+IHRvIHJlZmVyZW5jZSB0aGUgcHJvcGVydGllcyByYXRoZXIgdGhhbiA8Y29kZT4key4uLn08L2NvZGU+LgorICAgICAqIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYXZhaWxhYmxlOgorICAgICAqIDx1bD4KKyAgICAgKiAgICAgPGxpPjxjb2RlPnByZWZpeDwvY29kZT4gLSBUaGUgY29tbWVudCBwcmVmaXguCisgICAgICogICAgIDxsaT48Y29kZT5ncm91cElkPC9jb2RlPiAtIFRoZSBncm91cElkIG9mIHRoZSByb290IHByb2plY3QuCisgICAgICogICAgIDxsaT48Y29kZT5hcnRpZmFjdElkPC9jb2RlPiAtIFRoZSBhcnRpZmFjdElkIG9mIHRoZSByb290IHByb2plY3QuCisgICAgICogICAgIDxsaT48Y29kZT5yZWxlYXNlTGFiZWw8L2NvZGU+IC0gVGhlIHJlbGVhc2UgdmVyc2lvbiBvZiB0aGUgcm9vdCBwcm9qZWN0LgorICAgICAqIDwvdWw+CisgICAgICoKKyAgICAgKiBAc2luY2UgMy4wLjAKKyAgICAgKi8KKyAgICBAUGFyYW1ldGVyKCBkZWZhdWx0VmFsdWUgPSAiQHtwcmVmaXh9IHByZXBhcmUgYnJhbmNoIEB7cmVsZWFzZUxhYmVsfSIsIHByb3BlcnR5ID0gInNjbUJyYW5jaENvbW1pdENvbW1lbnQiICkKKyAgICBwcml2YXRlIFN0cmluZyBzY21CcmFuY2hDb21taXRDb21tZW50ID0gIkB7cHJlZml4fSBwcmVwYXJlIGJyYW5jaCBAe3JlbGVhc2VMYWJlbH0iOworCisgICAgLyoqCiAgICAgICoge0Bpbmhlcml0RG9jfQogICAgICAqLwogICAgIHB1YmxpYyB2b2lkIGV4ZWN1dGUoKQpAQCAtMjMxLDYgKzI1MCw3IEBAIHB1YmxpYyB2b2lkIGV4ZWN1dGUoKQogICAgICAgICBjb25maWcuc2V0U3VwcHJlc3NDb21taXRCZWZvcmVUYWdPckJyYW5jaCggc3VwcHJlc3NDb21taXRCZWZvcmVCcmFuY2ggKTsKICAgICAgICAgY29uZmlnLnNldFByb2plY3RWZXJzaW9uUG9saWN5SWQoIHByb2plY3RWZXJzaW9uUG9saWN5SWQgKTsKICAgICAgICAgY29uZmlnLnNldFByb2plY3ROYW1pbmdQb2xpY3lJZCggcHJvamVjdE5hbWluZ1BvbGljeUlkICk7CisgICAgICAgIGNvbmZpZy5zZXRTY21CcmFuY2hDb21taXRDb21tZW50KCBzY21CcmFuY2hDb21taXRDb21tZW50ICk7CiAKICAgICAgICAgLy8gQ3JlYXRlIGEgY29uZmlnIGNvbnRhaW5pbmcgdmFsdWVzIGZyb20gdGhlIHNlc3Npb24gcHJvcGVydGllcyAoaWUgY29tbWFuZCBsaW5lIHByb3BlcnRpZXMgd2l0aCBjbGkpLgogICAgICAgICBSZWxlYXNlRGVzY3JpcHRvciBzeXNQcm9wZXJ0aWVzQ29uZmlnCmRpZmYgLS1naXQgYS9tYXZlbi1yZWxlYXNlLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9yZWxlYXNlL1ByZXBhcmVSZWxlYXNlTW9qby5qYXZhIGIvbWF2ZW4tcmVsZWFzZS1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvcmVsZWFzZS9QcmVwYXJlUmVsZWFzZU1vam8uamF2YQppbmRleCA4NTJmNjFjZC4uYTBhZTNiMmQgMTAwNjQ0Ci0tLSBhL21hdmVuLXJlbGVhc2UtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL3JlbGVhc2UvUHJlcGFyZVJlbGVhc2VNb2pvLmphdmEKKysrIGIvbWF2ZW4tcmVsZWFzZS1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvcmVsZWFzZS9QcmVwYXJlUmVsZWFzZU1vam8uamF2YQpAQCAtMjM0LDYgKzIzNCw0NiBAQAogICAgIHByaXZhdGUgU3RyaW5nIHByb2plY3ROYW1pbmdQb2xpY3lJZDsKIAogICAgIC8qKgorICAgICAqIFRoZSBTQ00gY29tbWl0IGNvbW1lbnQgd2hlbiBzZXR0aW5nIHBvbS54bWwgdG8gcmVsZWFzZS4KKyAgICAgKiBEZWZhdWx0cyB0byAiQHtwcmVmaXh9IHByZXBhcmUgcmVsZWFzZSBAe3JlbGVhc2VMYWJlbH0iLgorICAgICAqIDxwPgorICAgICAqIFByb3BlcnR5IGludGVycG9sYXRpb24gaXMgcGVyZm9ybWVkIG9uIHRoZSB2YWx1ZSwgYnV0IGluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHRoZSBpbnRlcnBvbGF0aW9uIG9jY3VycworICAgICAqIGR1cmluZyByZWxlYXNlLCB5b3UgbXVzdCB1c2UgPGNvZGU+QHsuLi59PC9jb2RlPiB0byByZWZlcmVuY2UgdGhlIHByb3BlcnRpZXMgcmF0aGVyIHRoYW4gPGNvZGU+JHsuLi59PC9jb2RlPi4KKyAgICAgKiBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGF2YWlsYWJsZToKKyAgICAgKiA8dWw+CisgICAgICogICAgIDxsaT48Y29kZT5wcmVmaXg8L2NvZGU+IC0gVGhlIGNvbW1lbnQgcHJlZml4LgorICAgICAqICAgICA8bGk+PGNvZGU+Z3JvdXBJZDwvY29kZT4gLSBUaGUgZ3JvdXBJZCBvZiB0aGUgcm9vdCBwcm9qZWN0LgorICAgICAqICAgICA8bGk+PGNvZGU+YXJ0aWZhY3RJZDwvY29kZT4gLSBUaGUgYXJ0aWZhY3RJZCBvZiB0aGUgcm9vdCBwcm9qZWN0LgorICAgICAqICAgICA8bGk+PGNvZGU+cmVsZWFzZUxhYmVsPC9jb2RlPiAtIFRoZSByZWxlYXNlIHZlcnNpb24gb2YgdGhlIHJvb3QgcHJvamVjdC4KKyAgICAgKiA8L3VsPgorICAgICAqCisgICAgICogQHNpbmNlIDMuMC4wCisgICAgICovCisgICAgQFBhcmFtZXRlciggZGVmYXVsdFZhbHVlID0gIkB7cHJlZml4fSBwcmVwYXJlIHJlbGVhc2UgQHtyZWxlYXNlTGFiZWx9IiwgcHJvcGVydHkgPSAic2NtUmVsZWFzZUNvbW1pdENvbW1lbnQiICkKKyAgICBwcml2YXRlIFN0cmluZyBzY21SZWxlYXNlQ29tbWl0Q29tbWVudCA9ICJAe3ByZWZpeH0gcHJlcGFyZSByZWxlYXNlIEB7cmVsZWFzZUxhYmVsfSI7CisKKyAgICAvKioKKyAgICAgKiBUaGUgU0NNIGNvbW1pdCBjb21tZW50IHdoZW4gc2V0dGluZyBwb20ueG1sIGJhY2sgdG8gZGV2ZWxvcG1lbnQuCisgICAgICogRGVmYXVsdHMgdG8gIkB7cHJlZml4fSBwcmVwYXJlIGZvciBuZXh0IGRldmVsb3BtZW50IGl0ZXJhdGlvbiIuCisgICAgICogPHA+CisgICAgICogUHJvcGVydHkgaW50ZXJwb2xhdGlvbiBpcyBwZXJmb3JtZWQgb24gdGhlIHZhbHVlLCBidXQgaW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgdGhlIGludGVycG9sYXRpb24gb2NjdXJzCisgICAgICogZHVyaW5nIHJlbGVhc2UsIHlvdSBtdXN0IHVzZSA8Y29kZT5Aey4uLn08L2NvZGU+IHRvIHJlZmVyZW5jZSB0aGUgcHJvcGVydGllcyByYXRoZXIgdGhhbiA8Y29kZT4key4uLn08L2NvZGU+LgorICAgICAqIFRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyBhcmUgYXZhaWxhYmxlOgorICAgICAqIDx1bD4KKyAgICAgKiAgICAgPGxpPjxjb2RlPnByZWZpeDwvY29kZT4gLSBUaGUgY29tbWVudCBwcmVmaXguCisgICAgICogICAgIDxsaT48Y29kZT5ncm91cElkPC9jb2RlPiAtIFRoZSBncm91cElkIG9mIHRoZSByb290IHByb2plY3QuCisgICAgICogICAgIDxsaT48Y29kZT5hcnRpZmFjdElkPC9jb2RlPiAtIFRoZSBhcnRpZmFjdElkIG9mIHRoZSByb290IHByb2plY3QuCisgICAgICogICAgIDxsaT48Y29kZT5yZWxlYXNlTGFiZWw8L2NvZGU+IC0gVGhlIHJlbGVhc2UgdmVyc2lvbiBvZiB0aGUgcm9vdCBwcm9qZWN0LgorICAgICAqIDwvdWw+CisgICAgICoKKyAgICAgKiBAc2luY2UgMy4wLjAKKyAgICAgKi8KKyAgICBAUGFyYW1ldGVyKCAKKyAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9ICJAe3ByZWZpeH0gcHJlcGFyZSBmb3IgbmV4dCBkZXZlbG9wbWVudCBpdGVyYXRpb24iLCAKKyAgICAgICAgICAgIHByb3BlcnR5ID0gInNjbURldmVsb3BtZW50Q29tbWl0Q29tbWVudCIgKQorICAgIHByaXZhdGUgU3RyaW5nIHNjbURldmVsb3BtZW50Q29tbWl0Q29tbWVudCA9ICJAe3ByZWZpeH0gcHJlcGFyZSBmb3IgbmV4dCBkZXZlbG9wbWVudCBpdGVyYXRpb24iOworCisgICAgLyoqCiAgICAgICoge0Bpbmhlcml0RG9jfQogICAgICAqLwogICAgIHB1YmxpYyB2b2lkIGV4ZWN1dGUoKQpAQCAtMjc0LDYgKzMxNCw4IEBAIHByb3RlY3RlZCB2b2lkIHByZXBhcmVSZWxlYXNlKCBib29sZWFuIGdlbmVyYXRlUmVsZWFzZVBvbXMgKQogICAgICAgICBjb25maWcuc2V0V2FpdEJlZm9yZVRhZ2dpbmcoIHdhaXRCZWZvcmVUYWdnaW5nICk7CiAgICAgICAgIGNvbmZpZy5zZXRQcm9qZWN0VmVyc2lvblBvbGljeUlkKCBwcm9qZWN0VmVyc2lvblBvbGljeUlkICk7CiAgICAgICAgIGNvbmZpZy5zZXRQcm9qZWN0TmFtaW5nUG9saWN5SWQoIHByb2plY3ROYW1pbmdQb2xpY3lJZCApOworICAgICAgICBjb25maWcuc2V0U2NtRGV2ZWxvcG1lbnRDb21taXRDb21tZW50KCBzY21EZXZlbG9wbWVudENvbW1pdENvbW1lbnQgKTsKKyAgICAgICAgY29uZmlnLnNldFNjbVJlbGVhc2VDb21taXRDb21tZW50KCBzY21SZWxlYXNlQ29tbWl0Q29tbWVudCApOwogCiAgICAgICAgIGlmICggY2hlY2tNb2RpZmljYXRpb25FeGNsdWRlTGlzdCAhPSBudWxsICkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvbWF2ZW4tcmVsZWFzZS1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvcmVsZWFzZS9Sb2xsYmFja1JlbGVhc2VNb2pvLmphdmEgYi9tYXZlbi1yZWxlYXNlLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9yZWxlYXNlL1JvbGxiYWNrUmVsZWFzZU1vam8uamF2YQppbmRleCBmZDBjYWQwNy4uMmZjNjBkMjkgMTAwNjQ0Ci0tLSBhL21hdmVuLXJlbGVhc2UtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL3JlbGVhc2UvUm9sbGJhY2tSZWxlYXNlTW9qby5qYXZhCisrKyBiL21hdmVuLXJlbGVhc2UtcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL3JlbGVhc2UvUm9sbGJhY2tSZWxlYXNlTW9qby5qYXZhCkBAIC0yMiw2ICsyMiw3IEBACiBpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW4uTW9qb0V4ZWN1dGlvbkV4Y2VwdGlvbjsKIGltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbi5Nb2pvRmFpbHVyZUV4Y2VwdGlvbjsKIGltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMuYW5ub3RhdGlvbnMuTW9qbzsKK2ltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMuYW5ub3RhdGlvbnMuUGFyYW1ldGVyOwogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uc2hhcmVkLnJlbGVhc2UuUmVsZWFzZUV4ZWN1dGlvbkV4Y2VwdGlvbjsKIGltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnNoYXJlZC5yZWxlYXNlLlJlbGVhc2VGYWlsdXJlRXhjZXB0aW9uOwogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uc2hhcmVkLnJlbGVhc2UuY29uZmlnLlJlbGVhc2VEZXNjcmlwdG9yOwpAQCAtNDIsNiArNDMsMjcgQEAKIHsKIAogICAgIC8qKgorICAgICAqIFRoZSBTQ00gY29tbWl0IGNvbW1lbnQgd2hlbiByb2xsaW5nIGJhY2suCisgICAgICogRGVmYXVsdHMgdG8gIkB7cHJlZml4fSByb2xsYmFjayB0aGUgcmVsZWFzZSBvZiBAe3JlbGVhc2VMYWJlbH0iLgorICAgICAqIDxwPgorICAgICAqIFByb3BlcnR5IGludGVycG9sYXRpb24gaXMgcGVyZm9ybWVkIG9uIHRoZSB2YWx1ZSwgYnV0IGluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHRoZSBpbnRlcnBvbGF0aW9uIG9jY3VycworICAgICAqIGR1cmluZyByZWxlYXNlLCB5b3UgbXVzdCB1c2UgPGNvZGU+QHsuLi59PC9jb2RlPiB0byByZWZlcmVuY2UgdGhlIHByb3BlcnRpZXMgcmF0aGVyIHRoYW4gPGNvZGU+JHsuLi59PC9jb2RlPi4KKyAgICAgKiBUaGUgZm9sbG93aW5nIHByb3BlcnRpZXMgYXJlIGF2YWlsYWJsZToKKyAgICAgKiA8dWw+CisgICAgICogICAgIDxsaT48Y29kZT5wcmVmaXg8L2NvZGU+IC0gVGhlIGNvbW1lbnQgcHJlZml4LgorICAgICAqICAgICA8bGk+PGNvZGU+Z3JvdXBJZDwvY29kZT4gLSBUaGUgZ3JvdXBJZCBvZiB0aGUgcm9vdCBwcm9qZWN0LgorICAgICAqICAgICA8bGk+PGNvZGU+YXJ0aWZhY3RJZDwvY29kZT4gLSBUaGUgYXJ0aWZhY3RJZCBvZiB0aGUgcm9vdCBwcm9qZWN0LgorICAgICAqICAgICA8bGk+PGNvZGU+cmVsZWFzZUxhYmVsPC9jb2RlPiAtIFRoZSByZWxlYXNlIHZlcnNpb24gb2YgdGhlIHJvb3QgcHJvamVjdC4KKyAgICAgKiA8L3VsPgorICAgICAqCisgICAgICogQHNpbmNlIDMuMC4wCisgICAgICovCisgICAgQFBhcmFtZXRlcigKKyAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9ICJAe3ByZWZpeH0gcm9sbGJhY2sgdGhlIHJlbGVhc2Ugb2YgQHtyZWxlYXNlTGFiZWx9IiwgCisgICAgICAgICAgICBwcm9wZXJ0eSA9ICJzY21Sb2xsYmFja0NvbW1pdENvbW1lbnQiICkKKyAgICBwcml2YXRlIFN0cmluZyBzY21Sb2xsYmFja0NvbW1pdENvbW1lbnQgPSAiQHtwcmVmaXh9IHJvbGxiYWNrIHRoZSByZWxlYXNlIG9mIEB7cmVsZWFzZUxhYmVsfSI7CisKKyAgICAvKioKICAgICAgKiB7QGluaGVyaXREb2N9CiAgICAgICovCiAgICAgcHVibGljIHZvaWQgZXhlY3V0ZSgpCkBAIC01MCw2ICs3Miw3IEBAIHB1YmxpYyB2b2lkIGV4ZWN1dGUoKQogICAgICAgICBzdXBlci5leGVjdXRlKCk7CiAKICAgICAgICAgUmVsZWFzZURlc2NyaXB0b3IgY29uZmlnID0gY3JlYXRlUmVsZWFzZURlc2NyaXB0b3IoKTsKKyAgICAgICAgY29uZmlnLnNldFNjbVJvbGxiYWNrQ29tbWl0Q29tbWVudCggc2NtUm9sbGJhY2tDb21taXRDb21tZW50ICk7CiAKICAgICAgICAgdHJ5CiAgICAgICAgIHsKCgogCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgaXMgYW4gYXV0b21hdGVkIG1lc3NhZ2UgZnJvbSB0aGUgQXBhY2hlIEdpdCBTZXJ2aWNlLgpUbyByZXNwb25kIHRvIHRoZSBtZXNzYWdlLCBwbGVhc2UgbG9nIG9uIEdpdEh1YiBhbmQgdXNlIHRoZQpVUkwgYWJvdmUgdG8gZ28gdG8gdGhlIHNwZWNpZmljIGNvbW1lbnQuCiAKRm9yIHF1ZXJpZXMgYWJvdXQgdGhpcyBzZXJ2aWNlLCBwbGVhc2UgY29udGFjdCBJbmZyYXN0cnVjdHVyZSBhdDoKdXNlcnNAaW5mcmEuYXBhY2hlLm9yZwoKCldpdGggcmVnYXJkcywKQXBhY2hlIEdpdCBTZXJ2aWNlcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0Mzc4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBOb3YgIDEgMTQ6MTU6NTkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0Mzc4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDYwQzU3MTBFQTQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAgMSBOb3YgMjAxNyAxNDoxNTo1OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk0OTIxIGludm9rZWQgYnkgdWlkIDUwMCk7IDEgTm92IDIwMTcgMTQ6MTU6NTkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk0ODE0IGludm9rZWQgYnkgdWlkIDUwMCk7IDEgTm92IDIwMTcgMTQ6MTU6NTggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NDgwMyBpbnZva2VkIGJ5IHVpZCA5OSk7IDEgTm92IDIwMTcgMTQ6MTU6NTggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZWMyLTUyLTIwMi04MC03MC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSAoSEVMTyBnaXRib3guYXBhY2hlLm9yZykgKDUyLjIwMi44MC43MCkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAwMSBOb3YgMjAxNyAxNDoxNTo1OCArMDAwMApGcm9tOiBHaXRCb3ggPGdpdEBhcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0dpdEh1Yl0gamdhbmdlbWkgY29tbWVudGVkIG9uIGlzc3VlICM0OiBbTVJFTEVBU0UtNzk4XSBDb21taXQgYWRkaXRpb25hbCBmaWxlcyB3aXRoIHJlbGVhc2UgcGx1Z2luCk1lc3NhZ2UtSUQ6IDwxNTA5NTQ1NzU4MjcuMzA3NjQuMzU4Njg1MDQ1Njc1MzU0NjY5MS5naXRib3hAZ2l0Ym94LmFwYWNoZS5vcmc+CgpqZ2FuZ2VtaSBjb21tZW50ZWQgb24gaXNzdWUgIzQ6IFtNUkVMRUFTRS03OThdIENvbW1pdCBhZGRpdGlvbmFsIGZpbGVzIHdpdGggcmVsZWFzZSBwbHVnaW4KVVJMOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXJlbGVhc2UvcHVsbC80I2lzc3VlY29tbWVudC0zNDExMTgzOTcKIAogCiAgIHNvIHRoaXMgaXNzdWUgaXMgYmVpbmcgY2xvc2VkIG91dHJpZ2h0IGFuZCBub3QgZXZlbiBjb25zaWRlcmVkPyEhCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgaXMgYW4gYXV0b21hdGVkIG1lc3NhZ2UgZnJvbSB0aGUgQXBhY2hlIEdpdCBTZXJ2aWNlLgpUbyByZXNwb25kIHRvIHRoZSBtZXNzYWdlLCBwbGVhc2UgbG9nIG9uIEdpdEh1YiBhbmQgdXNlIHRoZQpVUkwgYWJvdmUgdG8gZ28gdG8gdGhlIHNwZWNpZmljIGNvbW1lbnQuCiAKRm9yIHF1ZXJpZXMgYWJvdXQgdGhpcyBzZXJ2aWNlLCBwbGVhc2UgY29udGFjdCBJbmZyYXN0cnVjdHVyZSBhdDoKdXNlcnNAaW5mcmEuYXBhY2hlLm9yZwoKCldpdGggcmVnYXJkcywKQXBhY2hlIEdpdCBTZXJ2aWNlcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0Mzc5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBOb3YgIDEgMTQ6MTY6MjYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0Mzc5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDA1NjM4MTBFQzUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAgMSBOb3YgMjAxNyAxNDoxNjoyNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk2OTQyIGludm9rZWQgYnkgdWlkIDUwMCk7IDEgTm92IDIwMTcgMTQ6MTY6MjUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk2ODU4IGludm9rZWQgYnkgdWlkIDUwMCk7IDEgTm92IDIwMTcgMTQ6MTY6MjUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5Njg0NiBpbnZva2VkIGJ5IHVpZCA5OSk7IDEgTm92IDIwMTcgMTQ6MTY6MjUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZWMyLTUyLTIwMi04MC03MC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSAoSEVMTyBnaXRib3guYXBhY2hlLm9yZykgKDUyLjIwMi44MC43MCkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAwMSBOb3YgMjAxNyAxNDoxNjoyNSArMDAwMApGcm9tOiBHaXRCb3ggPGdpdEBhcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0dpdEh1Yl0gamdhbmdlbWkgY29tbWVudGVkIG9uIGlzc3VlICM0OiBbTVJFTEVBU0UtNzk4XSBDb21taXQgYWRkaXRpb25hbCBmaWxlcyB3aXRoIHJlbGVhc2UgcGx1Z2luCk1lc3NhZ2UtSUQ6IDwxNTA5NTQ1Nzg1MDQuMzA4NzAuMTgwNjY4Mjg2ODY1MDk5NDYyMTAuZ2l0Ym94QGdpdGJveC5hcGFjaGUub3JnPgoKamdhbmdlbWkgY29tbWVudGVkIG9uIGlzc3VlICM0OiBbTVJFTEVBU0UtNzk4XSBDb21taXQgYWRkaXRpb25hbCBmaWxlcyB3aXRoIHJlbGVhc2UgcGx1Z2luClVSTDogaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1yZWxlYXNlL3B1bGwvNCNpc3N1ZWNvbW1lbnQtMzQxMTE4Mzk3CiAKIAogICBzbyB0aGlzIGlzc3VlIGlzIGJlaW5nIGNsb3NlZCBvdXRyaWdodCBhbmQgbm90IGV2ZW4gY29uc2lkZXJlZD8hIQogICAKICAgYW4gZXhwbGFuYXRpb24gYXMgdG8gd2h5IHdvdWxkIGJlIHJlYWwgbmljZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVGhpcyBpcyBhbiBhdXRvbWF0ZWQgbWVzc2FnZSBmcm9tIHRoZSBBcGFjaGUgR2l0IFNlcnZpY2UuClRvIHJlc3BvbmQgdG8gdGhlIG1lc3NhZ2UsIHBsZWFzZSBsb2cgb24gR2l0SHViIGFuZCB1c2UgdGhlClVSTCBhYm92ZSB0byBnbyB0byB0aGUgc3BlY2lmaWMgY29tbWVudC4KIApGb3IgcXVlcmllcyBhYm91dCB0aGlzIHNlcnZpY2UsIHBsZWFzZSBjb250YWN0IEluZnJhc3RydWN0dXJlIGF0Ogp1c2Vyc0BpbmZyYS5hcGFjaGUub3JnCgoKV2l0aCByZWdhcmRzLApBcGFjaGUgR2l0IFNlcnZpY2VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzODAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIE5vdiAgMSAxNTo1ODowNyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzODAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQjRGMUYxNzYxNAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsICAxIE5vdiAyMDE3IDE1OjU4OjA3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTA5NTggaW52b2tlZCBieSB1aWQgNTAwKTsgMSBOb3YgMjAxNyAxNTo1ODowNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTA4NjIgaW52b2tlZCBieSB1aWQgNTAwKTsgMSBOb3YgMjAxNyAxNTo1ODowNyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUwODUwIGludm9rZWQgYnkgdWlkIDk5KTsgMSBOb3YgMjAxNyAxNTo1ODowNyAtMDAwMApSZWNlaXZlZDogZnJvbSBlYzItNTItMjAyLTgwLTcwLmNvbXB1dGUtMS5hbWF6b25hd3MuY29tIChIRUxPIGdpdGJveC5hcGFjaGUub3JnKSAoNTIuMjAyLjgwLjcwKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDAxIE5vdiAyMDE3IDE1OjU4OjA3ICswMDAwCkZyb206IEdpdEJveCA8Z2l0QGFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBbR2l0SHViXSBoYm91dGVteSBjb21tZW50ZWQgb24gaXNzdWUgIzQ6IFtNUkVMRUFTRS03OThdIENvbW1pdCBhZGRpdGlvbmFsIGZpbGVzIHdpdGggcmVsZWFzZSBwbHVnaW4KTWVzc2FnZS1JRDogPDE1MDk1NTE4ODY3MS4xMTk1OS42NjYzMDAwMjE1MjMyNjAyODYwLmdpdGJveEBnaXRib3guYXBhY2hlLm9yZz4KCmhib3V0ZW15IGNvbW1lbnRlZCBvbiBpc3N1ZSAjNDogW01SRUxFQVNFLTc5OF0gQ29tbWl0IGFkZGl0aW9uYWwgZmlsZXMgd2l0aCByZWxlYXNlIHBsdWdpbgpVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcmVsZWFzZS9wdWxsLzQjaXNzdWVjb21tZW50LTM0MTE0OTk4MwogCiAKICAgdWghIHNvcnJ5LCB3ZSBqdXN0IG1pZ3JhdGVkIGFuZCBpdCBzZWVtcyBHaXRIdWIgaW50ZWdyYXRpb24gZGlkIHVuZXhwZWN0ZWQgdGhpbmdzIChhbmQgdGVsbHMgSSBkaWQgaXQsIHNpbmNlIEkgZGVsZXRlZCB0cnVuayBicmFuY2gsIGluIGZhdm9yIG9mIG1hc3RlcikKICAgcmVvcGVuaW5nLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgaXMgYW4gYXV0b21hdGVkIG1lc3NhZ2UgZnJvbSB0aGUgQXBhY2hlIEdpdCBTZXJ2aWNlLgpUbyByZXNwb25kIHRvIHRoZSBtZXNzYWdlLCBwbGVhc2UgbG9nIG9uIEdpdEh1YiBhbmQgdXNlIHRoZQpVUkwgYWJvdmUgdG8gZ28gdG8gdGhlIHNwZWNpZmljIGNvbW1lbnQuCiAKRm9yIHF1ZXJpZXMgYWJvdXQgdGhpcyBzZXJ2aWNlLCBwbGVhc2UgY29udGFjdCBJbmZyYXN0cnVjdHVyZSBhdDoKdXNlcnNAaW5mcmEuYXBhY2hlLm9yZwoKCldpdGggcmVnYXJkcywKQXBhY2hlIEdpdCBTZXJ2aWNlcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MzgxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBOb3YgIDEgMTU6NTg6MDggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzgxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDM2QTYzMTc2MTkKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAgMSBOb3YgMjAxNyAxNTo1ODowOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDUxNzExIGludm9rZWQgYnkgdWlkIDUwMCk7IDEgTm92IDIwMTcgMTU6NTg6MDcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUxNjQ0IGludm9rZWQgYnkgdWlkIDUwMCk7IDEgTm92IDIwMTcgMTU6NTg6MDcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MTYzMCBpbnZva2VkIGJ5IHVpZCA5OSk7IDEgTm92IDIwMTcgMTU6NTg6MDcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZWMyLTUyLTIwMi04MC03MC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSAoSEVMTyBnaXRib3guYXBhY2hlLm9yZykgKDUyLjIwMi44MC43MCkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAwMSBOb3YgMjAxNyAxNTo1ODowNyArMDAwMApGcm9tOiBHaXRCb3ggPGdpdEBhcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0dpdEh1Yl0gZW1lbmFjZWIgb3BlbmVkIGEgbmV3IHB1bGwgcmVxdWVzdCAjNDogW01SRUxFQVNFLTc5OF0gQ29tbWl0IGFkZGl0aW9uYWwgZmlsZXMgd2l0aCByZWxlYXNlIHBsdWdpbgpNZXNzYWdlLUlEOiA8MTUwOTU1MTg4NzE2LjExOTYyLjYwNzcwMjQwNDY5MzcyODIwNC5naXRib3hAZ2l0Ym94LmFwYWNoZS5vcmc+CgplbWVuYWNlYiBvcGVuZWQgYSBuZXcgcHVsbCByZXF1ZXN0ICM0OiBbTVJFTEVBU0UtNzk4XSBDb21taXQgYWRkaXRpb25hbCBmaWxlcyB3aXRoIHJlbGVhc2UgcGx1Z2luClVSTDogaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1yZWxlYXNlL3B1bGwvNAogCiAKICAgQWJpbGl0eSB0byBjb21taXQgYWRkaXRpb25hbCBmaWxlcyBvbiBwcmVwYXJlCiAgIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQwMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgTm92ICA0IDEzOjQ1OjEyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQwMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDQzZFNjE3RjE4Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMTM6NDU6MTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyNDI4OCBpbnZva2VkIGJ5IHVpZCA1MDApOyA0IE5vdiAyMDE3IDEzOjQ1OjEyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNDE3NCBpbnZva2VkIGJ5IHVpZCA1MDApOyA0IE5vdiAyMDE3IDEzOjQ1OjEyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjQxNjMgaW52b2tlZCBieSB1aWQgOTkpOyA0IE5vdiAyMDE3IDEzOjQ1OjEyIC0wMDAwClJlY2VpdmVkOiBmcm9tIGVjMi01Mi0yMDItODAtNzAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20gKEhFTE8gZ2l0Ym94LmFwYWNoZS5vcmcpICg1Mi4yMDIuODAuNzApCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDQgTm92IDIwMTcgMTM6NDU6MTIgKzAwMDAKRnJvbTogR2l0Qm94IDxnaXRAYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtHaXRIdWJdIGFyZW5kLXZvbi1yZWluZXJzZG9yZmYgY29tbWVudGVkIG9uIGlzc3VlICMyNzogRml4ZWQgd3JvbmcgcGFnZSB0aXRsZSBmb3IgRGVwZW5kZW5jeSBDb252ZXJnZW5jZQpNZXNzYWdlLUlEOiA8MTUwOTgwMzExMTc2LjI2ODU5Ljc0OTc5MDkxODI3NzAwNjkwODcuZ2l0Ym94QGdpdGJveC5hcGFjaGUub3JnPgoKYXJlbmQtdm9uLXJlaW5lcnNkb3JmZiBjb21tZW50ZWQgb24gaXNzdWUgIzI3OiBGaXhlZCB3cm9uZyBwYWdlIHRpdGxlIGZvciBEZXBlbmRlbmN5IENvbnZlcmdlbmNlClVSTDogaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1lbmZvcmNlci9wdWxsLzI3I2lzc3VlY29tbWVudC0zNDE4OTgxMjIKIAogCiAgIFdoYXQgd2FzIHRoZSByZWFzb24gdG8gY2xvc2UgdGhpcz8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVGhpcyBpcyBhbiBhdXRvbWF0ZWQgbWVzc2FnZSBmcm9tIHRoZSBBcGFjaGUgR2l0IFNlcnZpY2UuClRvIHJlc3BvbmQgdG8gdGhlIG1lc3NhZ2UsIHBsZWFzZSBsb2cgb24gR2l0SHViIGFuZCB1c2UgdGhlClVSTCBhYm92ZSB0byBnbyB0byB0aGUgc3BlY2lmaWMgY29tbWVudC4KIApGb3IgcXVlcmllcyBhYm91dCB0aGlzIHNlcnZpY2UsIHBsZWFzZSBjb250YWN0IEluZnJhc3RydWN0dXJlIGF0Ogp1c2Vyc0BpbmZyYS5hcGFjaGUub3JnCgoKV2l0aCByZWdhcmRzLApBcGFjaGUgR2l0IFNlcnZpY2VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0MDQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAgNCAxNDozMzowNyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0MDQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOUNCNEIxMDAwNgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICA0IE5vdiAyMDE3IDE0OjMzOjA3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODIzOTQgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBOb3YgMjAxNyAxNDozMzowNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODIzMTQgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBOb3YgMjAxNyAxNDozMzowNyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgyMzAzIGludm9rZWQgYnkgdWlkIDk5KTsgNCBOb3YgMjAxNyAxNDozMzowNyAtMDAwMApSZWNlaXZlZDogZnJvbSBlYzItNTItMjAyLTgwLTcwLmNvbXB1dGUtMS5hbWF6b25hd3MuY29tIChIRUxPIGdpdGJveC5hcGFjaGUub3JnKSAoNTIuMjAyLjgwLjcwKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA0IE5vdiAyMDE3IDE0OjMzOjA3ICswMDAwCkZyb206IEdpdEJveCA8Z2l0QGFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBbR2l0SHViXSBoYm91dGVteSBjb21tZW50ZWQgb24gaXNzdWUgIzI3OiBGaXhlZCB3cm9uZyBwYWdlIHRpdGxlIGZvciBEZXBlbmRlbmN5IENvbnZlcmdlbmNlCk1lc3NhZ2UtSUQ6IDwxNTA5ODA1OTg2NjAuOTc1Mi4zOTMyMDA3NTQzNjgxMTM0NDA0LmdpdGJveEBnaXRib3guYXBhY2hlLm9yZz4KCmhib3V0ZW15IGNvbW1lbnRlZCBvbiBpc3N1ZSAjMjc6IEZpeGVkIHdyb25nIHBhZ2UgdGl0bGUgZm9yIERlcGVuZGVuY3kgQ29udmVyZ2VuY2UKVVJMOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWVuZm9yY2VyL3B1bGwvMjcjaXNzdWVjb21tZW50LTM0MTkwMTI1MAogCiAKICAgc29ycnksIHRoaXMgd2FzIGF1dG9tYXRpY2FsbHkgY2xvc2VkIHdoZW4gbWlncmF0aW5nIHRvIEdpdCBhbmQgZGVsZXRpbmcgb2xkIHRydW5rIGJyYW5jaAogICByZW9wZW5pbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVGhpcyBpcyBhbiBhdXRvbWF0ZWQgbWVzc2FnZSBmcm9tIHRoZSBBcGFjaGUgR2l0IFNlcnZpY2UuClRvIHJlc3BvbmQgdG8gdGhlIG1lc3NhZ2UsIHBsZWFzZSBsb2cgb24gR2l0SHViIGFuZCB1c2UgdGhlClVSTCBhYm92ZSB0byBnbyB0byB0aGUgc3BlY2lmaWMgY29tbWVudC4KIApGb3IgcXVlcmllcyBhYm91dCB0aGlzIHNlcnZpY2UsIHBsZWFzZSBjb250YWN0IEluZnJhc3RydWN0dXJlIGF0Ogp1c2Vyc0BpbmZyYS5hcGFjaGUub3JnCgoKV2l0aCByZWdhcmRzLApBcGFjaGUgR2l0IFNlcnZpY2VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0MDUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAgNCAxNDozMzowOCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0MDUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMEE2N0QxMDAwQQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICA0IE5vdiAyMDE3IDE0OjMzOjA4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODMxNDQgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBOb3YgMjAxNyAxNDozMzowNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODMwNzYgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBOb3YgMjAxNyAxNDozMzowNyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgyODQyIGludm9rZWQgYnkgdWlkIDk5KTsgNCBOb3YgMjAxNyAxNDozMzowNyAtMDAwMApSZWNlaXZlZDogZnJvbSBlYzItNTItMjAyLTgwLTcwLmNvbXB1dGUtMS5hbWF6b25hd3MuY29tIChIRUxPIGdpdGJveC5hcGFjaGUub3JnKSAoNTIuMjAyLjgwLjcwKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA0IE5vdiAyMDE3IDE0OjMzOjA3ICswMDAwCkZyb206IEdpdEJveCA8Z2l0QGFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBbR2l0SHViXSBhcmVuZC12b24tcmVpbmVyc2RvcmZmIG9wZW5lZCBhIG5ldyBwdWxsIHJlcXVlc3QgIzI3OiBGaXhlZCB3cm9uZyBwYWdlIHRpdGxlIGZvciBEZXBlbmRlbmN5IENvbnZlcmdlbmNlCk1lc3NhZ2UtSUQ6IDwxNTA5ODA1OTg2ODMuOTk3NS45NzYwMzI5NTUzODA2MzYwNzY3LmdpdGJveEBnaXRib3guYXBhY2hlLm9yZz4KCmFyZW5kLXZvbi1yZWluZXJzZG9yZmYgb3BlbmVkIGEgbmV3IHB1bGwgcmVxdWVzdCAjMjc6IEZpeGVkIHdyb25nIHBhZ2UgdGl0bGUgZm9yIERlcGVuZGVuY3kgQ29udmVyZ2VuY2UKVVJMOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWVuZm9yY2VyL3B1bGwvMjcKIAogCiAgIENoZWNrIHBhZ2UgdGl0bGUgaGVyZToKICAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvZW5mb3JjZXIvZW5mb3JjZXItcnVsZXMvZGVwZW5kZW5jeUNvbnZlcmdlbmNlLmh0bWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVGhpcyBpcyBhbiBhdXRvbWF0ZWQgbWVzc2FnZSBmcm9tIHRoZSBBcGFjaGUgR2l0IFNlcnZpY2UuClRvIHJlc3BvbmQgdG8gdGhlIG1lc3NhZ2UsIHBsZWFzZSBsb2cgb24gR2l0SHViIGFuZCB1c2UgdGhlClVSTCBhYm92ZSB0byBnbyB0byB0aGUgc3BlY2lmaWMgY29tbWVudC4KIApGb3IgcXVlcmllcyBhYm91dCB0aGlzIHNlcnZpY2UsIHBsZWFzZSBjb250YWN0IEluZnJhc3RydWN0dXJlIGF0Ogp1c2Vyc0BpbmZyYS5hcGFjaGUub3JnCgoKV2l0aCByZWdhcmRzLApBcGFjaGUgR2l0IFNlcnZpY2VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0MDYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAgNCAxNDo0MTozNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0MDYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNTI5MDYxMDAyMgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICA0IE5vdiAyMDE3IDE0OjQxOjM1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTE0NDQgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBOb3YgMjAxNyAxNDo0MTozNCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTEzNDggaW52b2tlZCBieSB1aWQgNTAwKTsgNCBOb3YgMjAxNyAxNDo0MTozNCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkxMzM3IGludm9rZWQgYnkgdWlkIDk5KTsgNCBOb3YgMjAxNyAxNDo0MTozNCAtMDAwMApSZWNlaXZlZDogZnJvbSBlYzItNTItMjAyLTgwLTcwLmNvbXB1dGUtMS5hbWF6b25hd3MuY29tIChIRUxPIGdpdGJveC5hcGFjaGUub3JnKSAoNTIuMjAyLjgwLjcwKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA0IE5vdiAyMDE3IDE0OjQxOjM0ICswMDAwCkZyb206IEdpdEJveCA8Z2l0QGFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBbR2l0SHViXSBoYm91dGVteSBjb21tZW50ZWQgb24gaXNzdWUgIzI3OiBGaXhlZCB3cm9uZyBwYWdlIHRpdGxlIGZvciBEZXBlbmRlbmN5IENvbnZlcmdlbmNlCk1lc3NhZ2UtSUQ6IDwxNTA5ODA2NDk0MTMuMTI5NTguMTM2MzA5MDA4MzI5ODg5NTg5NTMuZ2l0Ym94QGdpdGJveC5hcGFjaGUub3JnPgoKaGJvdXRlbXkgY29tbWVudGVkIG9uIGlzc3VlICMyNzogRml4ZWQgd3JvbmcgcGFnZSB0aXRsZSBmb3IgRGVwZW5kZW5jeSBDb252ZXJnZW5jZQpVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZW5mb3JjZXIvcHVsbC8yNyNpc3N1ZWNvbW1lbnQtMzQxOTAxODY1CiAKIAogICBtZXJnZWQgaW4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1lbmZvcmNlci9jb21taXQvYTdiNjU2ZDJiNjBmYjljZjMxNjA5MGNiMzQ3NGU2NDc3Y2ZmMTg0OQogICB0aGFuayB5b3UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVGhpcyBpcyBhbiBhdXRvbWF0ZWQgbWVzc2FnZSBmcm9tIHRoZSBBcGFjaGUgR2l0IFNlcnZpY2UuClRvIHJlc3BvbmQgdG8gdGhlIG1lc3NhZ2UsIHBsZWFzZSBsb2cgb24gR2l0SHViIGFuZCB1c2UgdGhlClVSTCBhYm92ZSB0byBnbyB0byB0aGUgc3BlY2lmaWMgY29tbWVudC4KIApGb3IgcXVlcmllcyBhYm91dCB0aGlzIHNlcnZpY2UsIHBsZWFzZSBjb250YWN0IEluZnJhc3RydWN0dXJlIGF0Ogp1c2Vyc0BpbmZyYS5hcGFjaGUub3JnCgoKV2l0aCByZWdhcmRzLApBcGFjaGUgR2l0IFNlcnZpY2VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0MDctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAgNCAxNDo0MTozNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0MDctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOTY5RjYxMDAzOQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICA0IE5vdiAyMDE3IDE0OjQxOjM1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTIxMjMgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBOb3YgMjAxNyAxNDo0MTozNSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTIwNDAgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBOb3YgMjAxNyAxNDo0MTozNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkxNzk5IGludm9rZWQgYnkgdWlkIDk5KTsgNCBOb3YgMjAxNyAxNDo0MTozNCAtMDAwMApSZWNlaXZlZDogZnJvbSBlYzItNTItMjAyLTgwLTcwLmNvbXB1dGUtMS5hbWF6b25hd3MuY29tIChIRUxPIGdpdGJveC5hcGFjaGUub3JnKSAoNTIuMjAyLjgwLjcwKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA0IE5vdiAyMDE3IDE0OjQxOjM0ICswMDAwCkZyb206IEdpdEJveCA8Z2l0QGFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBbR2l0SHViXSBoYm91dGVteSBjbG9zZWQgcHVsbCByZXF1ZXN0ICMyNzogRml4ZWQgd3JvbmcgcGFnZSB0aXRsZSBmb3IgRGVwZW5kZW5jeSBDb252ZXJnZW5jZQpNZXNzYWdlLUlEOiA8MTUwOTgwNjQ5NDQ1LjEzMDA1LjE0MzcwMjM2OTc1NTA2OTQwODIuZ2l0Ym94QGdpdGJveC5hcGFjaGUub3JnPgoKaGJvdXRlbXkgY2xvc2VkIHB1bGwgcmVxdWVzdCAjMjc6IEZpeGVkIHdyb25nIHBhZ2UgdGl0bGUgZm9yIERlcGVuZGVuY3kgQ29udmVyZ2VuY2UKVVJMOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWVuZm9yY2VyL3B1bGwvMjcKIAogCiAgIAoKVGhpcyBpcyBhIFBSIG1lcmdlZCBmcm9tIGEgZm9ya2VkIHJlcG9zaXRvcnkuCkFzIEdpdEh1YiBoaWRlcyB0aGUgb3JpZ2luYWwgZGlmZiBvbiBtZXJnZSwgaXQgaXMgZGlzcGxheWVkIGJlbG93IGZvcgp0aGUgc2FrZSBvZiBwcm92ZW5hbmNlOgoKQXMgdGhpcyBpcyBhIGZvcmVpZ24gcHVsbCByZXF1ZXN0IChmcm9tIGEgZm9yayksIHRoZSBkaWZmIGlzIHN1cHBsaWVkCmJlbG93IChhcyBpdCB3b24ndCBzaG93IG90aGVyd2lzZSBkdWUgdG8gR2l0SHViIG1hZ2ljKToKCmRpZmYgLS1naXQgYS9lbmZvcmNlci1ydWxlcy9zcmMvc2l0ZS9hcHQvZGVwZW5kZW5jeUNvbnZlcmdlbmNlLmFwdC52bSBiL2VuZm9yY2VyLXJ1bGVzL3NyYy9zaXRlL2FwdC9kZXBlbmRlbmN5Q29udmVyZ2VuY2UuYXB0LnZtCmluZGV4IDg5MDgxNGEuLmJjN2RjZjkgMTAwNjQ0Ci0tLSBhL2VuZm9yY2VyLXJ1bGVzL3NyYy9zaXRlL2FwdC9kZXBlbmRlbmN5Q29udmVyZ2VuY2UuYXB0LnZtCisrKyBiL2VuZm9yY2VyLXJ1bGVzL3NyYy9zaXRlL2FwdC9kZXBlbmRlbmN5Q29udmVyZ2VuY2UuYXB0LnZtCkBAIC0xNiw3ICsxNiw3IEBACiAgfn4gdW5kZXIgdGhlIExpY2Vuc2UuCiAKICAtLS0tLQotIENvbXBhcmluZyBhZ2FpbnN0IGEgc3BlY2lmaWMgYXJ0aWZhY3QKKyBEZXBlbmRlbmN5IENvbnZlcmdlbmNlCiAgLS0tLS0KICAtLS0tLQogIDIwMDgtMDktMTMKCgogCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgaXMgYW4gYXV0b21hdGVkIG1lc3NhZ2UgZnJvbSB0aGUgQXBhY2hlIEdpdCBTZXJ2aWNlLgpUbyByZXNwb25kIHRvIHRoZSBtZXNzYWdlLCBwbGVhc2UgbG9nIG9uIEdpdEh1YiBhbmQgdXNlIHRoZQpVUkwgYWJvdmUgdG8gZ28gdG8gdGhlIHNwZWNpZmljIGNvbW1lbnQuCiAKRm9yIHF1ZXJpZXMgYWJvdXQgdGhpcyBzZXJ2aWNlLCBwbGVhc2UgY29udGFjdCBJbmZyYXN0cnVjdHVyZSBhdDoKdXNlcnNAaW5mcmEuYXBhY2hlLm9yZwoKCldpdGggcmVnYXJkcywKQXBhY2hlIEdpdCBTZXJ2aWNlcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NDA4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgIDQgMTQ6NDM6MDIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDA4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEI4M0U0MTAwNjEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxNDo0MzowMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk2NzkxIGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMTQ6NDM6MDIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk2NzE0IGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMTQ6NDM6MDIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NjcwMyBpbnZva2VkIGJ5IHVpZCA5OSk7IDQgTm92IDIwMTcgMTQ6NDM6MDIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZWMyLTUyLTIwMi04MC03MC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSAoSEVMTyBnaXRib3guYXBhY2hlLm9yZykgKDUyLjIwMi44MC43MCkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwNCBOb3YgMjAxNyAxNDo0MzowMiArMDAwMApGcm9tOiBHaXRCb3ggPGdpdEBhcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0dpdEh1Yl0ganRub3JkIG9wZW5lZCBhIG5ldyBwdWxsIHJlcXVlc3QgIzI4OiBbTUVORk9SQ0VSLTI4MV0gYWRkZWQgSVQgdG8gc2hvdyB0aGUgaXNzdWUuCk1lc3NhZ2UtSUQ6IDwxNTA5ODA2NTgxNzEuMTMzMzIuMTc5ODI2NDkyMTAxMTM3MDMyOC5naXRib3hAZ2l0Ym94LmFwYWNoZS5vcmc+CgpqdG5vcmQgb3BlbmVkIGEgbmV3IHB1bGwgcmVxdWVzdCAjMjg6IFtNRU5GT1JDRVItMjgxXSBhZGRlZCBJVCB0byBzaG93IHRoZSBpc3N1ZS4KVVJMOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWVuZm9yY2VyL3B1bGwvMjgKIAogCiAgIEFkZGVkIGFuIElUIHRvIGRlbW9uc3RyYXRlIFtNRU5GT1JDRVItMjgxXShodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01FTkZPUkNFUi0yODEpCiAgIAogICBGYWlscyB3aXRoIHRoZSBmb2xsb3dpbmcgd2hpY2ggaXMgc2xpZ2h0bHkgZGlmZmVyZW50IHRvIHdoYXQgaXMgb2JzZXJ2ZWQgaW4gdGhlIHJlYWwgcHJvamVjdCwgYnV0IGlzIGF0IGxlYXN0IGEgc3RhcnRlciBmb3IgMTAKICAgCiAgIGBgYAogICBbRVJST1JdIC9vcmcvYXBhY2hlL21hdmVuL2l0cy9lbmZvcmNlci9tZW5mb3JjZXIyODEtcGFyZW50LyQlN0JyZXZpc2lvbiU3RC9tZW5mb3JjZXIyODEtcGFyZW50LSQlN0JyZXZpc2lvbiU3RC5wb20KICAgamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjogSWxsZWdhbCBjaGFyYWN0ZXIgaW4gcGF0aCBhdCBpbmRleCAxMTA6IGh0dHBzOi8vWFhYWFgvb3JnL2FwYWNoZS9tYXZlbi9pdHMvZW5mb3JjZXIvbQogICBlbmZvcmNlcjI4MS1wYXJlbnQvJHtyZXZpc2lvbn0vbWF2ZW4tbWV0YWRhdGEueG1sCiAgICAgICAgICAgYXQgamF2YS5uZXQuVVJJLmNyZWF0ZShVUkkuamF2YTo4NTIpCiAgICAgICAgICAgYXQgb3JnLmFwYWNoZS5tYXZlbi53YWdvbi5wcm92aWRlcnMuaHR0cC5odHRwY2xpZW50LmNsaWVudC5tZXRob2RzLkh0dHBHZXQuPGluaXQ+KEh0dHBHZXQuamF2YTo2OSkKICAgICAgICAgICBhdCBvcmcuYXBhY2hlLm1hdmVuLndhZ29uLnByb3ZpZGVycy5odHRwLkFic3RyYWN0SHR0cENsaWVudFdhZ29uLmZpbGxJbnB1dERhdGEoQWJzdHJhY3RIdHRwQ2xpZW50V2Fnb24uamF2YTo5NzIpCiAgICAgICAgICAgYXQgb3JnLmFwYWNoZS5tYXZlbi53YWdvbi5wcm92aWRlcnMuaHR0cC5BYnN0cmFjdEh0dHBDbGllbnRXYWdvbi5maWxsSW5wdXREYXRhKEFic3RyYWN0SHR0cENsaWVudFdhZ29uLmphdmE6OTYyKQogICAgICAgICAgIGF0IG9yZy5hcGFjaGUubWF2ZW4ud2Fnb24uU3RyZWFtV2Fnb24uZ2V0SW5wdXRTdHJlYW0oU3RyZWFtV2Fnb24uamF2YToxMjYpCiAgICAgICAgICAgYXQgb3JnLmFwYWNoZS5tYXZlbi53YWdvbi5TdHJlYW1XYWdvbi5nZXRJZk5ld2VyKFN0cmVhbVdhZ29uLmphdmE6ODgpCiAgICAgICAgICAgYXQgb3JnLmFwYWNoZS5tYXZlbi53YWdvbi5TdHJlYW1XYWdvbi5nZXQoU3RyZWFtV2Fnb24uamF2YTo2MSkKICAgICAgICAgICBhdCBvcmcuYXBhY2hlLm1hdmVuLnJlcG9zaXRvcnkubGVnYWN5LkRlZmF1bHRXYWdvbk1hbmFnZXIuZ2V0UmVtb3RlRmlsZShEZWZhdWx0V2Fnb25NYW5hZ2VyLmphdmE6NDEzKQogICAgICAgICAgIGF0IG9yZy5hcGFjaGUubWF2ZW4ucmVwb3NpdG9yeS5sZWdhY3kuRGVmYXVsdFdhZ29uTWFuYWdlci5nZXRBcnRpZmFjdE1ldGFkYXRhKERlZmF1bHRXYWdvbk1hbmFnZXIuamF2YToyMzMpCiAgICAgICAgICAgYXQgb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5yZXBvc2l0b3J5Lm1ldGFkYXRhLkRlZmF1bHRSZXBvc2l0b3J5TWV0YWRhdGFNYW5hZ2VyLnJlc29sdmUoRGVmYXVsdFJlcG9zaXRvcnlNZXRhZGF0YU1hbmFnZXIuamF2YToxMzIpCiAgICAgICAgICAgYXQgb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5yZXBvc2l0b3J5Lm1ldGFkYXRhLkRlZmF1bHRSZXBvc2l0b3J5TWV0YWRhdGFNYW5hZ2VyLnJlc29sdmUoRGVmYXVsdFJlcG9zaXRvcnlNZXRhZGF0YU1hbmFnZXIuamF2YTo3MSkKICAgICAgICAgICBhdCBvcmcuY29kZWhhdXMubW9qby5tcm0ubWF2ZW4uUHJveHlBcnRpZmFjdFN0b3JlLmdldE1ldGFkYXRhKFByb3h5QXJ0aWZhY3RTdG9yZS5qYXZhOjQ4MCkKICAgICAgICAgICBhdCBvcmcuY29kZWhhdXMubW9qby5tcm0ubWF2ZW4uUHJveHlBcnRpZmFjdFN0b3JlLmdldE1ldGFkYXRhTGFzdE1vZGlmaWVkKFByb3h5QXJ0aWZhY3RTdG9yZS5qYXZhOjUzNikKICAgICAgICAgICBhdCBvcmcuY29kZWhhdXMubW9qby5tcm0uaW1wbC5tYXZlbi5Db21wb3NpdGVBcnRpZmFjdFN0b3JlLmdldE1ldGFkYXRhTGFzdE1vZGlmaWVkKENvbXBvc2l0ZUFydGlmYWN0U3RvcmUuamF2YTozMzkpCiAgICAgICAgICAgYXQgb3JnLmNvZGVoYXVzLm1vam8ubXJtLmltcGwubWF2ZW4uQXJ0aWZhY3RTdG9yZUZpbGVTeXN0ZW0ubGlzdEVudHJpZXMoQXJ0aWZhY3RTdG9yZUZpbGVTeXN0ZW0uamF2YToxNDcpCiAgICAgICAgICAgYXQgb3JnLmNvZGVoYXVzLm1vam8ubXJtLmltcGwuZGlnZXN0LkF1dG9EaWdlc3RGaWxlU3lzdGVtLmxpc3RFbnRyaWVzKEF1dG9EaWdlc3RGaWxlU3lzdGVtLmphdmE6MTAwKQogICAgICAgICAgIGF0IG9yZy5jb2RlaGF1cy5tb2pvLm1ybS5hcGkuQmFzZUZpbGVTeXN0ZW0uZ2V0KEJhc2VGaWxlU3lzdGVtLmphdmE6ODkpCiAgICAgICAgICAgYXQgb3JnLmNvZGVoYXVzLm1vam8ubXJtLmltcGwuZGlnZXN0LkF1dG9EaWdlc3RGaWxlU3lzdGVtLmdldChBdXRvRGlnZXN0RmlsZVN5c3RlbS5qYXZhOjE4NSkKICAgICAgICAgICBhdCBvcmcuY29kZWhhdXMubW9qby5tcm0uc2VydmxldC5GaWxlU3lzdGVtU2VydmxldC5kb0dldChGaWxlU3lzdGVtU2VydmxldC5qYXZhOjE1NykKICAgICAgICAgICBhdCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXQuc2VydmljZShIdHRwU2VydmxldC5qYXZhOjcwNykKICAgICAgICAgICBhdCBqYXZheC5zZXJ2bGV0Lmh0dHAuSHR0cFNlcnZsZXQuc2VydmljZShIdHRwU2VydmxldC5qYXZhOjgyMCkKICAgICAgICAgICBhdCBvcmcubW9ydGJheS5qZXR0eS5zZXJ2bGV0LlNlcnZsZXRIb2xkZXIuaGFuZGxlKFNlcnZsZXRIb2xkZXIuamF2YTo0ODcpCiAgICAgICAgICAgYXQgb3JnLm1vcnRiYXkuamV0dHkuc2VydmxldC5TZXJ2bGV0SGFuZGxlci5oYW5kbGUoU2VydmxldEhhbmRsZXIuamF2YTozNjIpCiAgICAgICAgICAgYXQgb3JnLm1vcnRiYXkuamV0dHkuc2VydmxldC5TZXNzaW9uSGFuZGxlci5oYW5kbGUoU2Vzc2lvbkhhbmRsZXIuamF2YToxODEpCiAgICAgICAgICAgYXQgb3JnLm1vcnRiYXkuamV0dHkuaGFuZGxlci5Db250ZXh0SGFuZGxlci5oYW5kbGUoQ29udGV4dEhhbmRsZXIuamF2YTo3MTIpCiAgICAgICAgICAgYXQgb3JnLm1vcnRiYXkuamV0dHkuaGFuZGxlci5IYW5kbGVyV3JhcHBlci5oYW5kbGUoSGFuZGxlcldyYXBwZXIuamF2YToxMzkpCiAgICAgICAgICAgYXQgb3JnLm1vcnRiYXkuamV0dHkuU2VydmVyLmhhbmRsZShTZXJ2ZXIuamF2YTozMTMpCiAgICAgICAgICAgYXQgb3JnLm1vcnRiYXkuamV0dHkuSHR0cENvbm5lY3Rpb24uaGFuZGxlUmVxdWVzdChIdHRwQ29ubmVjdGlvbi5qYXZhOjUwNikKICAgICAgICAgICBhdCBvcmcubW9ydGJheS5qZXR0eS5IdHRwQ29ubmVjdGlvbiRSZXF1ZXN0SGFuZGxlci5oZWFkZXJDb21wbGV0ZShIdHRwQ29ubmVjdGlvbi5qYXZhOjgzMCkKICAgICAgICAgICBhdCBvcmcubW9ydGJheS5qZXR0eS5IdHRwUGFyc2VyLnBhcnNlTmV4dChIdHRwUGFyc2VyLmphdmE6NTE0KQogICAgICAgICAgIGF0IG9yZy5tb3J0YmF5LmpldHR5Lkh0dHBQYXJzZXIucGFyc2VBdmFpbGFibGUoSHR0cFBhcnNlci5qYXZhOjIxMSkKICAgICAgICAgICBhdCBvcmcubW9ydGJheS5qZXR0eS5IdHRwQ29ubmVjdGlvbi5oYW5kbGUoSHR0cENvbm5lY3Rpb24uamF2YTozODEpCiAgICAgICAgICAgYXQgb3JnLm1vcnRiYXkuamV0dHkuYmlvLlNvY2tldENvbm5lY3RvciRDb25uZWN0aW9uLnJ1bihTb2NrZXRDb25uZWN0b3IuamF2YToyMjcpCiAgICAgICAgICAgYXQgb3JnLm1vcnRiYXkudGhyZWFkLkJvdW5kZWRUaHJlYWRQb29sJFBvb2xUaHJlYWQucnVuKEJvdW5kZWRUaHJlYWRQb29sLmphdmE6NDQyKQogICBDYXVzZWQgYnk6IGphdmEubmV0LlVSSVN5bnRheEV4Y2VwdGlvbjogSWxsZWdhbCBjaGFyYWN0ZXIgaW4gcGF0aCBhdCBpbmRleCAxMTA6IGh0dHBzOi8vWFhYWFhYL29yZy9hcGFjaGUvbWF2ZW4vaXRzL2VuZm9yYwogICBlci9tZW5mb3JjZXIyODEtcGFyZW50LyR7cmV2aXNpb259L21hdmVuLW1ldGFkYXRhLnhtbAogICAgICAgICAgIGF0IGphdmEubmV0LlVSSSRQYXJzZXIuZmFpbChVUkkuamF2YToyODQ4KQogICAgICAgICAgIGF0IGphdmEubmV0LlVSSSRQYXJzZXIuY2hlY2tDaGFycyhVUkkuamF2YTozMDIxKQogICAgICAgICAgIGF0IGphdmEubmV0LlVSSSRQYXJzZXIucGFyc2VIaWVyYXJjaGljYWwoVVJJLmphdmE6MzEwNSkKICAgICAgICAgICBhdCBqYXZhLm5ldC5VUkkkUGFyc2VyLnBhcnNlKFVSSS5qYXZhOjMwNTMpCiAgICAgICAgICAgYXQgamF2YS5uZXQuVVJJLjxpbml0PihVUkkuamF2YTo1ODgpCiAgICAgICAgICAgYXQgamF2YS5uZXQuVVJJLmNyZWF0ZShVUkkuamF2YTo4NTApCiAgICAgICAgICAgLi4uIDMzIG1vcmUKICAgW0lORk9dIC4uRkFJTEVEICg1LjcgcykKICAgYGBgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgaXMgYW4gYXV0b21hdGVkIG1lc3NhZ2UgZnJvbSB0aGUgQXBhY2hlIEdpdCBTZXJ2aWNlLgpUbyByZXNwb25kIHRvIHRoZSBtZXNzYWdlLCBwbGVhc2UgbG9nIG9uIEdpdEh1YiBhbmQgdXNlIHRoZQpVUkwgYWJvdmUgdG8gZ28gdG8gdGhlIHNwZWNpZmljIGNvbW1lbnQuCiAKRm9yIHF1ZXJpZXMgYWJvdXQgdGhpcyBzZXJ2aWNlLCBwbGVhc2UgY29udGFjdCBJbmZyYXN0cnVjdHVyZSBhdDoKdXNlcnNAaW5mcmEuYXBhY2hlLm9yZwoKCldpdGggcmVnYXJkcywKQXBhY2hlIEdpdCBTZXJ2aWNlcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NDA5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgIDQgMTQ6NDM6MjEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDA5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEIwQUQyMTAwNzEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxNDo0MzoyMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk4Njc4IGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMTQ6NDM6MjEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk4NTkxIGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMTQ6NDM6MjEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5ODU4MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDQgTm92IDIwMTcgMTQ6NDM6MjEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZWMyLTUyLTIwMi04MC03MC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSAoSEVMTyBnaXRib3guYXBhY2hlLm9yZykgKDUyLjIwMi44MC43MCkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwNCBOb3YgMjAxNyAxNDo0MzoyMSArMDAwMApGcm9tOiBHaXRCb3ggPGdpdEBhcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0dpdEh1Yl0gb2xlZy1uZW5hc2hldiBvcGVuZWQgYSBuZXcgcHVsbCByZXF1ZXN0ICMyNjogQWRkIFVuaXQgdGVzdHMgZm9yIFJlcXVpcmVVcHBlckJvdW5kRGVwcwpNZXNzYWdlLUlEOiA8MTUwOTgwNjYwMDc4LjEzMzk5LjEyMDMxMzI3MTg0NTA5MzU1ODQ4LmdpdGJveEBnaXRib3guYXBhY2hlLm9yZz4KCm9sZWctbmVuYXNoZXYgb3BlbmVkIGEgbmV3IHB1bGwgcmVxdWVzdCAjMjY6IEFkZCBVbml0IHRlc3RzIGZvciBSZXF1aXJlVXBwZXJCb3VuZERlcHMKVVJMOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWVuZm9yY2VyL3B1bGwvMjYKIAogCiAgIEkgZGVjb3VwbGVkIHRoZSB0ZXN0IGltcHJvdmVtZW50cyBjb21taXQgZnJvbSAjMjUuIEl0IGp1c3QgYWRkcyBuZXcgdGVzdHMgZm9yIHRoZSBleGlzdGluZyBmdW5jdGlvbmFsaXR5LgogICAKICAgQHJldmlld2J5YmVlcyBAamdsaWNrIEBzdGVwaGVuYyAKICAgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgaXMgYW4gYXV0b21hdGVkIG1lc3NhZ2UgZnJvbSB0aGUgQXBhY2hlIEdpdCBTZXJ2aWNlLgpUbyByZXNwb25kIHRvIHRoZSBtZXNzYWdlLCBwbGVhc2UgbG9nIG9uIEdpdEh1YiBhbmQgdXNlIHRoZQpVUkwgYWJvdmUgdG8gZ28gdG8gdGhlIHNwZWNpZmljIGNvbW1lbnQuCiAKRm9yIHF1ZXJpZXMgYWJvdXQgdGhpcyBzZXJ2aWNlLCBwbGVhc2UgY29udGFjdCBJbmZyYXN0cnVjdHVyZSBhdDoKdXNlcnNAaW5mcmEuYXBhY2hlLm9yZwoKCldpdGggcmVnYXJkcywKQXBhY2hlIEdpdCBTZXJ2aWNlcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NDEwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgIDQgMTQ6NDM6MzYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDEwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDI4RENBMTAwNzYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxNDo0MzozNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk5NTM1IGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMTQ6NDM6MzUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk5NDQ3IGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMTQ6NDM6MzUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5OTQzNSBpbnZva2VkIGJ5IHVpZCA5OSk7IDQgTm92IDIwMTcgMTQ6NDM6MzUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZWMyLTUyLTIwMi04MC03MC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSAoSEVMTyBnaXRib3guYXBhY2hlLm9yZykgKDUyLjIwMi44MC43MCkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwNCBOb3YgMjAxNyAxNDo0MzozNSArMDAwMApGcm9tOiBHaXRCb3ggPGdpdEBhcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0dpdEh1Yl0gb2xlZy1uZW5hc2hldiBvcGVuZWQgYSBuZXcgcHVsbCByZXF1ZXN0ICMyNTogTUVORk9SQ0VSLTI3NiAtIFN1cHBvcnQgaWdub3JpbmcgZGVwZW5kZW5jeSBzY29wZXMgaW4gUmVxdWlyZVVwcGVyQm91bmREZXBzCk1lc3NhZ2UtSUQ6IDwxNTA5ODA2NjE1MjQuMTM0NjkuNDExMjY1OTE4NDA5MDU5MzkxMi5naXRib3hAZ2l0Ym94LmFwYWNoZS5vcmc+CgpvbGVnLW5lbmFzaGV2IG9wZW5lZCBhIG5ldyBwdWxsIHJlcXVlc3QgIzI1OiBNRU5GT1JDRVItMjc2IC0gU3VwcG9ydCBpZ25vcmluZyBkZXBlbmRlbmN5IHNjb3BlcyBpbiBSZXF1aXJlVXBwZXJCb3VuZERlcHMKVVJMOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWVuZm9yY2VyL3B1bGwvMjUKIAogCiAgIFdlIGhhdmUgcmVjZW50bHkgYWRvcHRlZCBgUmVxdWlyZVVwcGVyQm91bmREZXBzYCBpbiB0aGUgSmVua2lucyBwcm9qZWN0IChodHRwczovL2dpdGh1Yi5jb20vamVua2luc2NpL3BsdWdpbi1wb20vcHVsbC82NykuIEluIG9yZGVyIHRvIGltcGxlbWVudCBpdCwgSmVzc2UgR2xpY2sgYWRkZWQgYSBzdXBwb3J0IG9mIGlnbm9yaW5nIHBhcnRpY3VsYXIgZGVwZW5kZW5jaWVzIGluIFtNRU5GT1JDRVItMjczXShodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01FTkZPUkNFUi0yNzMpLgogICAKICAgU29tZXRpbWVzIHdlIGRlY2xhcmUgZGVwZW5kZW5jaWVzIGJldHdlZW4gcGx1Z2lucyBmb3IgdGVzdGluZyBwdXJwb3NlcyAoc2NvcGU9dGVzdCksIGFuZCBpbiBzdWNoIGNhc2UgUmVxdWlyZVVwcGVyQm91bmREZXBzIGZhaWxzIHRoZSBidWlsZCBpZiB0aGVyZSBpcyBhIHRlc3QgZGVwZW5kZW5jeSBjb25mbGljdGluZyB3aXRoIHRoZSBtYWluIGNvZGUuIEFsdGhvdWdoIGl0IG1heSBjYXVzZSBpbnN0YWJpbGl0eSBvZiB0ZXN0cyAoaW5jbHVkaW5nIGZhbHNlIHBvc2l0aXZlIHJlc3VsdHMpLCBpdCBkb2VzIG5vdCByZWFsbHkgaW1wYWN0IHRoZSBkaXN0cmlidXRhYmxlIHBhY2thZ2UgaW4gb3VyIGNhc2UuCiAgIAogICBJIHByb3Bvc2UgdG8gYWRkIGFub3RoZXIgb3B0aW9uIGZvciBmaWx0ZXJpbmcgb2YgZGVwZW5kZW5jeSBzY29wZXMuIFRoaXMgcHVsbCByZXF1ZXN0IGFsc28gYWRkcyBzb21lIHVuaXQgdGVzdHMgZm9yIGBSZXF1aXJlVXBwZXJCb3VuZERlcHNgLiBQcmV2aW91c2x5IGl0IGhhZCBpbnRlZ3JhdGlvbiB0ZXN0cyBvbmx5LgogICAKICAgaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NRU5GT1JDRVItMjc2CiAgIAogICBAcmV2aWV3YnliZWVzIEBqZ2xpY2sgQHN0ZXBoZW5jIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQyNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gTm92ICA1IDIzOjI4OjE1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQyNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA2RTA2NDEwNjc4Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgIDUgTm92IDIwMTcgMjM6Mjg6MTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyNjYzIGludm9rZWQgYnkgdWlkIDUwMCk7IDUgTm92IDIwMTcgMjM6Mjg6MTUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI1ODMgaW52b2tlZCBieSB1aWQgNTAwKTsgNSBOb3YgMjAxNyAyMzoyODoxNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI1NzAgaW52b2tlZCBieSB1aWQgOTkpOyA1IE5vdiAyMDE3IDIzOjI4OjE1IC0wMDAwClJlY2VpdmVkOiBmcm9tIGVjMi01Mi0yMDItODAtNzAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20gKEhFTE8gZ2l0Ym94LmFwYWNoZS5vcmcpICg1Mi4yMDIuODAuNzApCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMDUgTm92IDIwMTcgMjM6Mjg6MTUgKzAwMDAKRnJvbTogR2l0Qm94IDxnaXRAYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtHaXRIdWJdIHNsYWNoaWV3aWN6IG9wZW5lZCBhIG5ldyBwdWxsIHJlcXVlc3QgIzI5OiBVcGRhdGUgdG8gTW9ja2l0byAyLjExCk1lc3NhZ2UtSUQ6IDwxNTA5OTI0NDk0NDAuMTY3MzkuMzM0NTkzMjgzMjYxODEwNDg1My5naXRib3hAZ2l0Ym94LmFwYWNoZS5vcmc+CgpzbGFjaGlld2ljeiBvcGVuZWQgYSBuZXcgcHVsbCByZXF1ZXN0ICMyOTogVXBkYXRlIHRvIE1vY2tpdG8gMi4xMQpVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZW5mb3JjZXIvcHVsbC8yOQogCiAKICAgRml4ZXMgTUVORk9SQ0VSLTI3OAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQ2OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gTm92IDEyIDE2OjA1OjA4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQ2OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBCNzc0Q0YxRTAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxMiBOb3YgMjAxNyAxNjowNTowOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDc1OTcxIGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIE5vdiAyMDE3IDE2OjA1OjA4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NTg4OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMiBOb3YgMjAxNyAxNjowNTowOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc1ODc3IGludm9rZWQgYnkgdWlkIDk5KTsgMTIgTm92IDIwMTcgMTY6MDU6MDggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZWMyLTUyLTIwMi04MC03MC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSAoSEVMTyBnaXRib3guYXBhY2hlLm9yZykgKDUyLjIwMi44MC43MCkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxMiBOb3YgMjAxNyAxNjowNTowOCArMDAwMApGcm9tOiBHaXRCb3ggPGdpdEBhcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0dpdEh1Yl0gYmhhdjA5MDQgb3BlbmVkIGEgbmV3IHB1bGwgcmVxdWVzdCAjMTogRml4IHR5cG9zIGluIEFic3RyYWN0SnhyUmVwb3J0LgpNZXNzYWdlLUlEOiA8MTUxMDUwMjcwNzY5LjcyMjQuMTA1Nzk0MTM2ODgxNzIzNDU2MjEuZ2l0Ym94QGdpdGJveC5hcGFjaGUub3JnPgoKYmhhdjA5MDQgb3BlbmVkIGEgbmV3IHB1bGwgcmVxdWVzdCAjMTogRml4IHR5cG9zIGluIEFic3RyYWN0SnhyUmVwb3J0LgpVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tanhyL3B1bGwvMQogCiAKICAgCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgaXMgYW4gYXV0b21hdGVkIG1lc3NhZ2UgZnJvbSB0aGUgQXBhY2hlIEdpdCBTZXJ2aWNlLgpUbyByZXNwb25kIHRvIHRoZSBtZXNzYWdlLCBwbGVhc2UgbG9nIG9uIEdpdEh1YiBhbmQgdXNlIHRoZQpVUkwgYWJvdmUgdG8gZ28gdG8gdGhlIHNwZWNpZmljIGNvbW1lbnQuCiAKRm9yIHF1ZXJpZXMgYWJvdXQgdGhpcyBzZXJ2aWNlLCBwbGVhc2UgY29udGFjdCBJbmZyYXN0cnVjdHVyZSBhdDoKdXNlcnNAaW5mcmEuYXBhY2hlLm9yZwoKCldpdGggcmVnYXJkcywKQXBhY2hlIEdpdCBTZXJ2aWNlcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NDcxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBOb3YgMTIgMTg6MTU6MjkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDcxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDMyQzU4RjQ0QQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDEyIE5vdiAyMDE3IDE4OjE1OjI5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzM5MzcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTIgTm92IDIwMTcgMTg6MTU6MjggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMzODI3IGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIE5vdiAyMDE3IDE4OjE1OjI4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzM4MTYgaW52b2tlZCBieSB1aWQgOTkpOyAxMiBOb3YgMjAxNyAxODoxNToyOCAtMDAwMApSZWNlaXZlZDogZnJvbSBlYzItNTItMjAyLTgwLTcwLmNvbXB1dGUtMS5hbWF6b25hd3MuY29tIChIRUxPIGdpdGJveC5hcGFjaGUub3JnKSAoNTIuMjAyLjgwLjcwKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDEyIE5vdiAyMDE3IDE4OjE1OjI4ICswMDAwCkZyb206IEdpdEJveCA8Z2l0QGFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBbR2l0SHViXSBoYm91dGVteSBjb21tZW50ZWQgb24gaXNzdWUgIzE6IEZpeCB0eXBvcyBpbiBBYnN0cmFjdEp4clJlcG9ydC4KTWVzc2FnZS1JRDogPDE1MTA1MTA1MjgxMC4yNjcxNy45OTEyNjY4MzEyMDMxMzU5MTMzLmdpdGJveEBnaXRib3guYXBhY2hlLm9yZz4KCmhib3V0ZW15IGNvbW1lbnRlZCBvbiBpc3N1ZSAjMTogRml4IHR5cG9zIGluIEFic3RyYWN0SnhyUmVwb3J0LgpVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tanhyL3B1bGwvMSNpc3N1ZWNvbW1lbnQtMzQzNzU1OTYxCiAKIAogICBtZXJnZWQgaW4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1qeHIvY29tbWl0L2IxYmMxNjZlNjMzNWYxNTI2ZWY5MDJmNDlhYjU5YjMyZjM0NzVhYjEKICAgCiAgIHRoYW5rIHlvdQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQ3Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gTm92IDEyIDE4OjE1OjI5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQ3Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBBMUM0MkY0NEUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxMiBOb3YgMjAxNyAxODoxNToyOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDM0Njc5IGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIE5vdiAyMDE3IDE4OjE1OjI5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNDYwNiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMiBOb3YgMjAxNyAxODoxNToyOSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM0NDA3IGludm9rZWQgYnkgdWlkIDk5KTsgMTIgTm92IDIwMTcgMTg6MTU6MjggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZWMyLTUyLTIwMi04MC03MC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSAoSEVMTyBnaXRib3guYXBhY2hlLm9yZykgKDUyLjIwMi44MC43MCkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxMiBOb3YgMjAxNyAxODoxNToyOCArMDAwMApGcm9tOiBHaXRCb3ggPGdpdEBhcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0dpdEh1Yl0gaGJvdXRlbXkgY2xvc2VkIHB1bGwgcmVxdWVzdCAjMTogRml4IHR5cG9zIGluIEFic3RyYWN0SnhyUmVwb3J0LgpNZXNzYWdlLUlEOiA8MTUxMDUxMDUyODQxLjI2NzIzLjU4MjUyNDk4OTg1ODU2OTYzNzIuZ2l0Ym94QGdpdGJveC5hcGFjaGUub3JnPgoKaGJvdXRlbXkgY2xvc2VkIHB1bGwgcmVxdWVzdCAjMTogRml4IHR5cG9zIGluIEFic3RyYWN0SnhyUmVwb3J0LgpVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tanhyL3B1bGwvMQogCiAKICAgCgpUaGlzIGlzIGEgUFIgbWVyZ2VkIGZyb20gYSBmb3JrZWQgcmVwb3NpdG9yeS4KQXMgR2l0SHViIGhpZGVzIHRoZSBvcmlnaW5hbCBkaWZmIG9uIG1lcmdlLCBpdCBpcyBkaXNwbGF5ZWQgYmVsb3cgZm9yCnRoZSBzYWtlIG9mIHByb3ZlbmFuY2U6CgpBcyB0aGlzIGlzIGEgZm9yZWlnbiBwdWxsIHJlcXVlc3QgKGZyb20gYSBmb3JrKSwgdGhlIGRpZmYgaXMgc3VwcGxpZWQKYmVsb3cgKGFzIGl0IHdvbid0IHNob3cgb3RoZXJ3aXNlIGR1ZSB0byBHaXRIdWIgbWFnaWMpOgoKZGlmZiAtLWdpdCBhL21hdmVuLWp4ci1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbi9qeHIvQWJzdHJhY3RKeHJSZXBvcnQuamF2YSBiL21hdmVuLWp4ci1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbi9qeHIvQWJzdHJhY3RKeHJSZXBvcnQuamF2YQppbmRleCA0M2I0YzczLi4xOTllMTVhIDEwMDY0NAotLS0gYS9tYXZlbi1qeHItcGx1Z2luL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW4vanhyL0Fic3RyYWN0SnhyUmVwb3J0LmphdmEKKysrIGIvbWF2ZW4tanhyLXBsdWdpbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2luL2p4ci9BYnN0cmFjdEp4clJlcG9ydC5qYXZhCkBAIC00NzQsMTEgKzQ3NCwxMSBAQCBwcm90ZWN0ZWQgdm9pZCBleGVjdXRlUmVwb3J0KCBMb2NhbGUgbG9jYWxlICkKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhdGNoICggSnhyRXhjZXB0aW9uIGUgKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHRocm93IG5ldyBNYXZlblJlcG9ydEV4Y2VwdGlvbiggIkVycm9yIHdoaWxlIGdlbmVyYXRpbmcgdGhlIEhUTUwgc291cmNlIGNvZGUgb2YgdGhlIHByb2pldC4iLCBlICk7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE1hdmVuUmVwb3J0RXhjZXB0aW9uKCAiRXJyb3Igd2hpbGUgZ2VuZXJhdGluZyB0aGUgSFRNTCBzb3VyY2UgY29kZSBvZiB0aGUgcHJvamVjdC4iLCBlICk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjYXRjaCAoIElPRXhjZXB0aW9uIGUgKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHRocm93IG5ldyBNYXZlblJlcG9ydEV4Y2VwdGlvbiggIkVycm9yIHdoaWxlIGdlbmVyYXRpbmcgdGhlIEhUTUwgc291cmNlIGNvZGUgb2YgdGhlIHByb2pldC4iLCBlICk7CisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE1hdmVuUmVwb3J0RXhjZXB0aW9uKCAiRXJyb3Igd2hpbGUgZ2VuZXJhdGluZyB0aGUgSFRNTCBzb3VyY2UgY29kZSBvZiB0aGUgcHJvamVjdC4iLCBlICk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CgoKIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDU5Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgTm92IDI1IDE2OjI1OjIxIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDU5Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAxRTE5QTE3MkZFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMjUgTm92IDIwMTcgMTY6MjU6MjEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzMDkxMiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNSBOb3YgMjAxNyAxNjoyNToyMCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzA4MjMgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgTm92IDIwMTcgMTY6MjU6MjAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMDgxMiBpbnZva2VkIGJ5IHVpZCA5OSk7IDI1IE5vdiAyMDE3IDE2OjI1OjIwIC0wMDAwClJlY2VpdmVkOiBmcm9tIGVjMi01Mi0yMDItODAtNzAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20gKEhFTE8gZ2l0Ym94LmFwYWNoZS5vcmcpICg1Mi4yMDIuODAuNzApCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMjUgTm92IDIwMTcgMTY6MjU6MjAgKzAwMDAKRnJvbTogR2l0Qm94IDxnaXRAYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtHaXRIdWJdIHNsYWNoaWV3aWN6IG9wZW5lZCBhIG5ldyBwdWxsIHJlcXVlc3QgIzU6IFtET1hJQS01MzRdIE1pZ3JhdGUgbG9nZ2luZyB0byBTbDRqCk1lc3NhZ2UtSUQ6IDwxNTExNjI3MTIwMTQuMTIzNTYuMTQxNzQ2MTI3MzAwMjkxNTUzNTIuZ2l0Ym94QGdpdGJveC5hcGFjaGUub3JnPgoKc2xhY2hpZXdpY3ogb3BlbmVkIGEgbmV3IHB1bGwgcmVxdWVzdCAjNTogW0RPWElBLTUzNF0gTWlncmF0ZSBsb2dnaW5nIHRvIFNsNGoKVVJMOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRveGlhL3B1bGwvNQogCiAKICAgUGxlYXNlIGNoZWNrLiAKICAgCiAgIEN1cnJlbnQgYnVpbGQgZmFpbHMgd2l0aCBjaXJyIGVycm9yIC0gZHVlIHRvIGludGVyZmFjZXMgY2hhbmdlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDU5Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgTm92IDI1IDE3OjA3OjEyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDU5Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDMEI4MjE3Mzg4Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMjUgTm92IDIwMTcgMTc6MDc6MTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1NDM3NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNSBOb3YgMjAxNyAxNzowNzoxMiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTQyOTAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgTm92IDIwMTcgMTc6MDc6MTIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NDI3OSBpbnZva2VkIGJ5IHVpZCA5OSk7IDI1IE5vdiAyMDE3IDE3OjA3OjEyIC0wMDAwClJlY2VpdmVkOiBmcm9tIGVjMi01Mi0yMDItODAtNzAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20gKEhFTE8gZ2l0Ym94LmFwYWNoZS5vcmcpICg1Mi4yMDIuODAuNzApCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMjUgTm92IDIwMTcgMTc6MDc6MTIgKzAwMDAKRnJvbTogR2l0Qm94IDxnaXRAYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtHaXRIdWJdIG1pY2hhZWwtbyBjb21tZW50ZWQgb24gYSBjaGFuZ2UgaW4gcHVsbCByZXF1ZXN0ICM1OiBbRE9YSUEtNTM0XSBNaWdyYXRlIGxvZ2dpbmcgdG8gU2w0agpNZXNzYWdlLUlEOiA8MTUxMTYyOTYzMTc2LjI3MjUwLjYxMjc4NjYwOTc3NTIyMzY0MTAuZ2l0Ym94QGdpdGJveC5hcGFjaGUub3JnPgoKbWljaGFlbC1vIGNvbW1lbnRlZCBvbiBhIGNoYW5nZSBpbiBwdWxsIHJlcXVlc3QgIzU6IFtET1hJQS01MzRdIE1pZ3JhdGUgbG9nZ2luZyB0byBTbDRqClVSTDogaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1kb3hpYS9wdWxsLzUjZGlzY3Vzc2lvbl9yMTUzMDUwMTA0CiAKIAoKICMjIyMjIyMjIyMKIEZpbGUgcGF0aDogZG94aWEtbW9kdWxlcy9kb3hpYS1tb2R1bGUtZm8vcG9tLnhtbAogIyMjIyMjIyMjIwogQEAgLTc4LDcgKzcyLDcgQEAgdW5kZXIgdGhlIExpY2Vuc2UuCiAgICAgPGRlcGVuZGVuY3k+CiAgICAgICA8Z3JvdXBJZD5jb21tb25zLWNvbGxlY3Rpb25zPC9ncm91cElkPgogICAgICAgPGFydGlmYWN0SWQ+Y29tbW9ucy1jb2xsZWN0aW9uczwvYXJ0aWZhY3RJZD4KLSAgICAgIDx2ZXJzaW9uPjMuMi4xPC92ZXJzaW9uPgorICAgICAgPHZlcnNpb24+My4yLjI8L3ZlcnNpb24+CiAKIFJldmlldyBjb21tZW50OgogICBUaGlzIHNob3VsZCBiZSBhIHNlcGVyYXRlIGlzc3VlIGlmIG5vdCBuZWNlc2FyeSBmb3IgdGhpcyBQUi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVGhpcyBpcyBhbiBhdXRvbWF0ZWQgbWVzc2FnZSBmcm9tIHRoZSBBcGFjaGUgR2l0IFNlcnZpY2UuClRvIHJlc3BvbmQgdG8gdGhlIG1lc3NhZ2UsIHBsZWFzZSBsb2cgb24gR2l0SHViIGFuZCB1c2UgdGhlClVSTCBhYm92ZSB0byBnbyB0byB0aGUgc3BlY2lmaWMgY29tbWVudC4KIApGb3IgcXVlcmllcyBhYm91dCB0aGlzIHNlcnZpY2UsIHBsZWFzZSBjb250YWN0IEluZnJhc3RydWN0dXJlIGF0Ogp1c2Vyc0BpbmZyYS5hcGFjaGUub3JnCgoKV2l0aCByZWdhcmRzLApBcGFjaGUgR2l0IFNlcnZpY2VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1OTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAyNSAxNzowOTowOCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1OTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNTE0RUExNzM5OQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDI1IE5vdiAyMDE3IDE3OjA5OjA4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTk5NjMgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgTm92IDIwMTcgMTc6MDk6MDggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU5ODkxIGludm9rZWQgYnkgdWlkIDUwMCk7IDI1IE5vdiAyMDE3IDE3OjA5OjA3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTk4ODAgaW52b2tlZCBieSB1aWQgOTkpOyAyNSBOb3YgMjAxNyAxNzowOTowNyAtMDAwMApSZWNlaXZlZDogZnJvbSBlYzItNTItMjAyLTgwLTcwLmNvbXB1dGUtMS5hbWF6b25hd3MuY29tIChIRUxPIGdpdGJveC5hcGFjaGUub3JnKSAoNTIuMjAyLjgwLjcwKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDI1IE5vdiAyMDE3IDE3OjA5OjA3ICswMDAwCkZyb206IEdpdEJveCA8Z2l0QGFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBbR2l0SHViXSBtaWNoYWVsLW8gY29tbWVudGVkIG9uIGEgY2hhbmdlIGluIHB1bGwgcmVxdWVzdCAjNTogW0RPWElBLTUzNF0gTWlncmF0ZSBsb2dnaW5nIHRvIFNsNGoKTWVzc2FnZS1JRDogPDE1MTE2Mjk3NDczNi4yODY4My4xNDIyOTc1ODAyMjY3MzIzMTExMS5naXRib3hAZ2l0Ym94LmFwYWNoZS5vcmc+CgptaWNoYWVsLW8gY29tbWVudGVkIG9uIGEgY2hhbmdlIGluIHB1bGwgcmVxdWVzdCAjNTogW0RPWElBLTUzNF0gTWlncmF0ZSBsb2dnaW5nIHRvIFNsNGoKVVJMOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRveGlhL3B1bGwvNSNkaXNjdXNzaW9uX3IxNTMwNTAxNDAKIAogCgogIyMjIyMjIyMjIwogRmlsZSBwYXRoOiBwb20ueG1sCiAjIyMjIyMjIyMjCiBAQCAtMTg1LDE1ICsxODAsMzMgQEAgdW5kZXIgdGhlIExpY2Vuc2UuCiAgICAgICA8ZGVwZW5kZW5jeT4KICAgICAgICAgPGdyb3VwSWQ+b3JnLmNvZGVoYXVzLnBsZXh1czwvZ3JvdXBJZD4KICAgICAgICAgPGFydGlmYWN0SWQ+cGxleHVzLXV0aWxzPC9hcnRpZmFjdElkPgotICAgICAgICA8dmVyc2lvbj4zLjAuMjQ8L3ZlcnNpb24+CisgICAgICAgIDx2ZXJzaW9uPjMuMS4wPC92ZXJzaW9uPgorICAgICAgPC9kZXBlbmRlbmN5PgorCisgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgPGdyb3VwSWQ+b3JnLnNsZjRqPC9ncm91cElkPgorICAgICAgICA8YXJ0aWZhY3RJZD5zbGY0ai1hcGk8L2FydGlmYWN0SWQ+CisgICAgICAgIDx2ZXJzaW9uPiR7c2w0ai52ZXJzaW9ufTwvdmVyc2lvbj4KKyAgICAgIDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICA8Z3JvdXBJZD5vcmcuc2xmNGo8L2dyb3VwSWQ+CisgICAgICAgIDxhcnRpZmFjdElkPnNsZjRqLXNpbXBsZTwvYXJ0aWZhY3RJZD4KKyAgICAgICAgPHZlcnNpb24+JHtzbDRqLnZlcnNpb259PC92ZXJzaW9uPgorICAgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CisgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgPGdyb3VwSWQ+b3JnLnNsZjRqPC9ncm91cElkPgorICAgICAgICA8YXJ0aWZhY3RJZD5sb2c0ai1vdmVyLXNsZjRqPC9hcnRpZmFjdElkPgorICAgICAgICA8dmVyc2lvbj4ke3NsNGoudmVyc2lvbn08L3ZlcnNpb24+CisgICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KICAgICAgIDwvZGVwZW5kZW5jeT4KICAgICA8L2RlcGVuZGVuY2llcz4KICAgPC9kZXBlbmRlbmN5TWFuYWdlbWVudD4KICAgPGRlcGVuZGVuY2llcz4KICAgICA8ZGVwZW5kZW5jeT4KICAgICAgIDxncm91cElkPmp1bml0PC9ncm91cElkPgogICAgICAgPGFydGlmYWN0SWQ+anVuaXQ8L2FydGlmYWN0SWQ+Ci0gICAgICA8dmVyc2lvbj40LjExPC92ZXJzaW9uPgorICAgICAgPHZlcnNpb24+NC4xMjwvdmVyc2lvbj4KIAogUmV2aWV3IGNvbW1lbnQ6CiAgIFNhbWUgYXMgY29tbW9ucy1jb2xsZWN0aW9ucwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDU5OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgTm92IDI1IDE3OjEwOjA2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDU5OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAwODc2OTE3M0EyCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMjUgTm92IDIwMTcgMTc6MTA6MDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2MDk4NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNSBOb3YgMjAxNyAxNzoxMDowNSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjA5MTIgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgTm92IDIwMTcgMTc6MTA6MDUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MDkwMCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI1IE5vdiAyMDE3IDE3OjEwOjA1IC0wMDAwClJlY2VpdmVkOiBmcm9tIGVjMi01Mi0yMDItODAtNzAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20gKEhFTE8gZ2l0Ym94LmFwYWNoZS5vcmcpICg1Mi4yMDIuODAuNzApCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMjUgTm92IDIwMTcgMTc6MTA6MDUgKzAwMDAKRnJvbTogR2l0Qm94IDxnaXRAYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtHaXRIdWJdIG1pY2hhZWwtbyBjb21tZW50ZWQgb24gYSBjaGFuZ2UgaW4gcHVsbCByZXF1ZXN0ICM1OiBbRE9YSUEtNTM0XSBNaWdyYXRlIGxvZ2dpbmcgdG8gU2w0agpNZXNzYWdlLUlEOiA8MTUxMTYyOTgwNTA5LjI5MDMwLjE0MTQyMTY4NTEwNjIyNDI5ODc4LmdpdGJveEBnaXRib3guYXBhY2hlLm9yZz4KCm1pY2hhZWwtbyBjb21tZW50ZWQgb24gYSBjaGFuZ2UgaW4gcHVsbCByZXF1ZXN0ICM1OiBbRE9YSUEtNTM0XSBNaWdyYXRlIGxvZ2dpbmcgdG8gU2w0agpVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZG94aWEvcHVsbC81I2Rpc2N1c3Npb25fcjE1MzA1MDE1OAogCiAKCiAjIyMjIyMjIyMjCiBGaWxlIHBhdGg6IGRveGlhLW1vZHVsZXMvZG94aWEtbW9kdWxlLWZvL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9kb3hpYS9tb2R1bGUvZm8vRm9BZ2dyZWdhdGVTaW5rLmphdmEKICMjIyMjIyMjIyMKIEBAIC0xMzIyLDEyICsxMzIyLDEyIEBAIHByaXZhdGUgU2lua0V2ZW50QXR0cmlidXRlU2V0IGdldEdyYXBoaWNzQXR0cmlidXRlcyggU3RyaW5nIGxvZ28gKQogICAgICAgICB9CiAgICAgICAgIGNhdGNoICggSU9FeGNlcHRpb24gZSApCiAgICAgICAgIHsKLSAgICAgICAgICAgIGdldExvZygpLmRlYnVnKCBlICk7CisgICAgICAgICAgICBnZXRMb2coKS5kZWJ1ZyggZS5nZXRNZXNzYWdlKCkgKTsKIAogUmV2aWV3IGNvbW1lbnQ6CiAgIExlYXZlIGl0IGFzIGBlYCwgU0ZMNEogYW5kIGJhY2tlbmRzIHdpbGwgZG8gdGhlIHJlc3QgZm9yIHVzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDYwMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgTm92IDI1IDE3OjEwOjU0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDYwMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBBNDhBODE3M0I2Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMjUgTm92IDIwMTcgMTc6MTA6NTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2MjU5NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNSBOb3YgMjAxNyAxNzoxMDo0OCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjI1MjEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgTm92IDIwMTcgMTc6MTA6NDggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MjUxMCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI1IE5vdiAyMDE3IDE3OjEwOjQ4IC0wMDAwClJlY2VpdmVkOiBmcm9tIGVjMi01Mi0yMDItODAtNzAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20gKEhFTE8gZ2l0Ym94LmFwYWNoZS5vcmcpICg1Mi4yMDIuODAuNzApCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMjUgTm92IDIwMTcgMTc6MTA6NDggKzAwMDAKRnJvbTogR2l0Qm94IDxnaXRAYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtHaXRIdWJdIG1pY2hhZWwtbyBjb21tZW50ZWQgb24gaXNzdWUgIzU6IFtET1hJQS01MzRdIE1pZ3JhdGUgbG9nZ2luZyB0byBTbDRqCk1lc3NhZ2UtSUQ6IDwxNTExNjI5ODQ3ODIuMjkxNzAuNzY5OTQ2NTc3NjgxODEzNDg2OS5naXRib3hAZ2l0Ym94LmFwYWNoZS5vcmc+CgptaWNoYWVsLW8gY29tbWVudGVkIG9uIGlzc3VlICM1OiBbRE9YSUEtNTM0XSBNaWdyYXRlIGxvZ2dpbmcgdG8gU2w0agpVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZG94aWEvcHVsbC81I2lzc3VlY29tbWVudC0zNDY5NTMyODcKIAogCiAgIEBoYm91dGVteSBMb29rcyBnb29kIHRvIG1lLiBUZXN0cyBwZW5kaW5nLi4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgaXMgYW4gYXV0b21hdGVkIG1lc3NhZ2UgZnJvbSB0aGUgQXBhY2hlIEdpdCBTZXJ2aWNlLgpUbyByZXNwb25kIHRvIHRoZSBtZXNzYWdlLCBwbGVhc2UgbG9nIG9uIEdpdEh1YiBhbmQgdXNlIHRoZQpVUkwgYWJvdmUgdG8gZ28gdG8gdGhlIHNwZWNpZmljIGNvbW1lbnQuCiAKRm9yIHF1ZXJpZXMgYWJvdXQgdGhpcyBzZXJ2aWNlLCBwbGVhc2UgY29udGFjdCBJbmZyYXN0cnVjdHVyZSBhdDoKdXNlcnNAaW5mcmEuYXBhY2hlLm9yZwoKCldpdGggcmVnYXJkcywKQXBhY2hlIEdpdCBTZXJ2aWNlcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NjAxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgMjUgMTc6Mjk6NDkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjAxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEI0RURDMTc0MEIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAyNSBOb3YgMjAxNyAxNzoyOTo0OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg5Njc3IGludm9rZWQgYnkgdWlkIDUwMCk7IDI1IE5vdiAyMDE3IDE3OjI5OjQ0IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4OTU4NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNSBOb3YgMjAxNyAxNzoyOTo0NCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg5NTcyIGludm9rZWQgYnkgdWlkIDk5KTsgMjUgTm92IDIwMTcgMTc6Mjk6NDQgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZWMyLTUyLTIwMi04MC03MC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSAoSEVMTyBnaXRib3guYXBhY2hlLm9yZykgKDUyLjIwMi44MC43MCkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAyNSBOb3YgMjAxNyAxNzoyOTo0NCArMDAwMApGcm9tOiBHaXRCb3ggPGdpdEBhcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0dpdEh1Yl0gaGJvdXRlbXkgY29tbWVudGVkIG9uIGlzc3VlICM1OiBbRE9YSUEtNTM0XSBNaWdyYXRlIGxvZ2dpbmcgdG8gU2w0agpNZXNzYWdlLUlEOiA8MTUxMTYzMDk4Mzg2LjkyMC40ODQ0NDk3NjExNTk4OTcyMzgzLmdpdGJveEBnaXRib3guYXBhY2hlLm9yZz4KCmhib3V0ZW15IGNvbW1lbnRlZCBvbiBpc3N1ZSAjNTogW0RPWElBLTUzNF0gTWlncmF0ZSBsb2dnaW5nIHRvIFNsNGoKVVJMOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRveGlhL3B1bGwvNSNpc3N1ZWNvbW1lbnQtMzQ2OTU0MzIxCiAKIAogICBJJ20gbm90IGluIGZhdm9yIG9mIHJlbW92aW5nIGRveGlhLWxvZ2dpbmc6IGRlcHJlY2F0aW5nIGFuZCBtb2RpZnlpbmcgaXQgdG8gdXNlIHNsZjRqIHdvdWxkIGJlIG1vcmUgY29tcGF0aWJsZQogICBJIGtub3cgdGhlcmUgYXJlIG5vdCBzbyBtdWNoIERveGlhIGV4dGVuc2lvbnMgaW4gdGhlIHdpbGQ6IHRoZXJlIGlzIGF0IGxlYXN0IGFzY2lpZG9jIEkga25vdyBvZi4gSSBkaWRuJ3QgY2hlY2ssIGJ1dCB3b3VsZCBiZSB1c2VmdWwgdG8gbm90IGJyZWFrIHRoaXMgb25lIGF0IGxlYXN0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgaXMgYW4gYXV0b21hdGVkIG1lc3NhZ2UgZnJvbSB0aGUgQXBhY2hlIEdpdCBTZXJ2aWNlLgpUbyByZXNwb25kIHRvIHRoZSBtZXNzYWdlLCBwbGVhc2UgbG9nIG9uIEdpdEh1YiBhbmQgdXNlIHRoZQpVUkwgYWJvdmUgdG8gZ28gdG8gdGhlIHNwZWNpZmljIGNvbW1lbnQuCiAKRm9yIHF1ZXJpZXMgYWJvdXQgdGhpcyBzZXJ2aWNlLCBwbGVhc2UgY29udGFjdCBJbmZyYXN0cnVjdHVyZSBhdDoKdXNlcnNAaW5mcmEuYXBhY2hlLm9yZwoKCldpdGggcmVnYXJkcywKQXBhY2hlIEdpdCBTZXJ2aWNlcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NjAyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgMjUgMTc6NDg6MDAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjAyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDJEMzkyMTc0NkUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAyNSBOb3YgMjAxNyAxNzo0ODowMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDUxOTcgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgTm92IDIwMTcgMTc6NDc6NTkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUxMTIgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgTm92IDIwMTcgMTc6NDc6NTkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MDU0IGludm9rZWQgYnkgdWlkIDk5KTsgMjUgTm92IDIwMTcgMTc6NDc6NTkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZWMyLTUyLTIwMi04MC03MC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSAoSEVMTyBnaXRib3guYXBhY2hlLm9yZykgKDUyLjIwMi44MC43MCkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAyNSBOb3YgMjAxNyAxNzo0Nzo1OSArMDAwMApGcm9tOiBHaXRCb3ggPGdpdEBhcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0dpdEh1Yl0gbWljaGFlbC1vIGNvbW1lbnRlZCBvbiBpc3N1ZSAjNTogW0RPWElBLTUzNF0gTWlncmF0ZSBsb2dnaW5nIHRvIFNsNGoKTWVzc2FnZS1JRDogPDE1MTE2MzIwNzkxMC42Nzg4LjEwMTEwMzM0NDQ5MjkxNjUwNDYyLmdpdGJveEBnaXRib3guYXBhY2hlLm9yZz4KCm1pY2hhZWwtbyBjb21tZW50ZWQgb24gaXNzdWUgIzU6IFtET1hJQS01MzRdIE1pZ3JhdGUgbG9nZ2luZyB0byBTbDRqClVSTDogaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1kb3hpYS9wdWxsLzUjaXNzdWVjb21tZW50LTM0Njk1NTMzMQogCiAKICAgV2h5IG5vdCBkZXByZWNhdGUgaW4gMS44IGFuZCByZW1vdmUgd2l0aCAyLjA/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgaXMgYW4gYXV0b21hdGVkIG1lc3NhZ2UgZnJvbSB0aGUgQXBhY2hlIEdpdCBTZXJ2aWNlLgpUbyByZXNwb25kIHRvIHRoZSBtZXNzYWdlLCBwbGVhc2UgbG9nIG9uIEdpdEh1YiBhbmQgdXNlIHRoZQpVUkwgYWJvdmUgdG8gZ28gdG8gdGhlIHNwZWNpZmljIGNvbW1lbnQuCiAKRm9yIHF1ZXJpZXMgYWJvdXQgdGhpcyBzZXJ2aWNlLCBwbGVhc2UgY29udGFjdCBJbmZyYXN0cnVjdHVyZSBhdDoKdXNlcnNAaW5mcmEuYXBhY2hlLm9yZwoKCldpdGggcmVnYXJkcywKQXBhY2hlIEdpdCBTZXJ2aWNlcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NjAzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgMjUgMTg6MjQ6MjIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjAzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEIxQjBGMTc0REUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAyNSBOb3YgMjAxNyAxODoyNDoyMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDM2MzAzIGludm9rZWQgYnkgdWlkIDUwMCk7IDI1IE5vdiAyMDE3IDE4OjI0OjIyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNjIzNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNSBOb3YgMjAxNyAxODoyNDoyMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM2MjI1IGludm9rZWQgYnkgdWlkIDk5KTsgMjUgTm92IDIwMTcgMTg6MjQ6MjIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZWMyLTUyLTIwMi04MC03MC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSAoSEVMTyBnaXRib3guYXBhY2hlLm9yZykgKDUyLjIwMi44MC43MCkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAyNSBOb3YgMjAxNyAxODoyNDoyMiArMDAwMApGcm9tOiBHaXRCb3ggPGdpdEBhcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0dpdEh1Yl0gaGJvdXRlbXkgY29tbWVudGVkIG9uIGlzc3VlICM1OiBbRE9YSUEtNTM0XSBNaWdyYXRlIGxvZ2dpbmcgdG8gU2w0agpNZXNzYWdlLUlEOiA8MTUxMTYzNDI2MTc3LjE2ODgyLjEwNzY5MzY1NzEwNjM4ODkwODk3LmdpdGJveEBnaXRib3guYXBhY2hlLm9yZz4KCmhib3V0ZW15IGNvbW1lbnRlZCBvbiBpc3N1ZSAjNTogW0RPWElBLTUzNF0gTWlncmF0ZSBsb2dnaW5nIHRvIFNsNGoKVVJMOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRveGlhL3B1bGwvNSNpc3N1ZWNvbW1lbnQtMzQ2OTU3NDg0CiAKIAogICArMQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDYwNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgTm92IDI1IDE5OjIzOjU2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDYwNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyNjZCODE3NjAwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMjUgTm92IDIwMTcgMTk6MjM6NTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxNTA4MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNSBOb3YgMjAxNyAxOToyMzo1NSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTQ5OTAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgTm92IDIwMTcgMTk6MjM6NTUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNDk3OSBpbnZva2VkIGJ5IHVpZCA5OSk7IDI1IE5vdiAyMDE3IDE5OjIzOjU1IC0wMDAwClJlY2VpdmVkOiBmcm9tIGVjMi01Mi0yMDItODAtNzAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20gKEhFTE8gZ2l0Ym94LmFwYWNoZS5vcmcpICg1Mi4yMDIuODAuNzApCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMjUgTm92IDIwMTcgMTk6MjM6NTUgKzAwMDAKRnJvbTogR2l0Qm94IDxnaXRAYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtHaXRIdWJdIG1pY2hhZWwtbyBjb21tZW50ZWQgb24gaXNzdWUgIzU6IFtET1hJQS01MzRdIE1pZ3JhdGUgbG9nZ2luZyB0byBTbDRqCk1lc3NhZ2UtSUQ6IDwxNTExNjM3ODM1MTguNDAxMi4xMTM2MDAzMDE0NzE4MTc1NDU4Mi5naXRib3hAZ2l0Ym94LmFwYWNoZS5vcmc+CgptaWNoYWVsLW8gY29tbWVudGVkIG9uIGlzc3VlICM1OiBbRE9YSUEtNTM0XSBNaWdyYXRlIGxvZ2dpbmcgdG8gU2w0agpVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZG94aWEvcHVsbC81I2lzc3VlY29tbWVudC0zNDY5NjA1NzQKIAogCiAgIEBzbGFjaGlld2ljeiBDYW4geW91IHNwYXduIGFub3RoZXIgdGlja2V0IGFuZCBjcmVhdGUgYSBuZXcgUFI/IFdlIHdpbGwgbGVhdmUgdGhpcyBvbmUgb3Blbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVGhpcyBpcyBhbiBhdXRvbWF0ZWQgbWVzc2FnZSBmcm9tIHRoZSBBcGFjaGUgR2l0IFNlcnZpY2UuClRvIHJlc3BvbmQgdG8gdGhlIG1lc3NhZ2UsIHBsZWFzZSBsb2cgb24gR2l0SHViIGFuZCB1c2UgdGhlClVSTCBhYm92ZSB0byBnbyB0byB0aGUgc3BlY2lmaWMgY29tbWVudC4KIApGb3IgcXVlcmllcyBhYm91dCB0aGlzIHNlcnZpY2UsIHBsZWFzZSBjb250YWN0IEluZnJhc3RydWN0dXJlIGF0Ogp1c2Vyc0BpbmZyYS5hcGFjaGUub3JnCgoKV2l0aCByZWdhcmRzLApBcGFjaGUgR2l0IFNlcnZpY2VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ2MDctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAyNSAyMDozNDo0NyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ2MDctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNEQ0MUYxNzcxMQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDI1IE5vdiAyMDE3IDIwOjM0OjQ3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzM3NDkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgTm92IDIwMTcgMjA6MzQ6NDYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDczNjY3IGludm9rZWQgYnkgdWlkIDUwMCk7IDI1IE5vdiAyMDE3IDIwOjM0OjQ2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzM2NTYgaW52b2tlZCBieSB1aWQgOTkpOyAyNSBOb3YgMjAxNyAyMDozNDo0NiAtMDAwMApSZWNlaXZlZDogZnJvbSBlYzItNTItMjAyLTgwLTcwLmNvbXB1dGUtMS5hbWF6b25hd3MuY29tIChIRUxPIGdpdGJveC5hcGFjaGUub3JnKSAoNTIuMjAyLjgwLjcwKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDI1IE5vdiAyMDE3IDIwOjM0OjQ2ICswMDAwCkZyb206IEdpdEJveCA8Z2l0QGFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBbR2l0SHViXSBzbGFjaGlld2ljeiBjb21tZW50ZWQgb24gYSBjaGFuZ2UgaW4gcHVsbCByZXF1ZXN0ICM1OiBbRE9YSUEtNTM0XSBNaWdyYXRlIGxvZ2dpbmcgdG8gU2w0agpNZXNzYWdlLUlEOiA8MTUxMTY0MjA4NjMzLjI3NTAyLjI4Njg4OTA4OTczMjI2MjgyNjAuZ2l0Ym94QGdpdGJveC5hcGFjaGUub3JnPgoKc2xhY2hpZXdpY3ogY29tbWVudGVkIG9uIGEgY2hhbmdlIGluIHB1bGwgcmVxdWVzdCAjNTogW0RPWElBLTUzNF0gTWlncmF0ZSBsb2dnaW5nIHRvIFNsNGoKVVJMOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRveGlhL3B1bGwvNSNkaXNjdXNzaW9uX3IxNTMwNTM4NDIKIAogCgogIyMjIyMjIyMjIwogRmlsZSBwYXRoOiBkb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS1mby9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vZG94aWEvbW9kdWxlL2ZvL0ZvQWdncmVnYXRlU2luay5qYXZhCiAjIyMjIyMjIyMjCiBAQCAtMTMyMiwxMiArMTMyMiwxMiBAQCBwcml2YXRlIFNpbmtFdmVudEF0dHJpYnV0ZVNldCBnZXRHcmFwaGljc0F0dHJpYnV0ZXMoIFN0cmluZyBsb2dvICkKICAgICAgICAgfQogICAgICAgICBjYXRjaCAoIElPRXhjZXB0aW9uIGUgKQogICAgICAgICB7Ci0gICAgICAgICAgICBnZXRMb2coKS5kZWJ1ZyggZSApOworICAgICAgICAgICAgZ2V0TG9nKCkuZGVidWcoIGUuZ2V0TWVzc2FnZSgpICk7CiAKIFJldmlldyBjb21tZW50OgogICB0aGVyZSBpcyBubyBjb25zdHJ1Y3RvciB3aXRoIEV4Y2VwdGlvbiwgaSB3aWxsIGNoYW5nZSB0byBlLmdldE1lc3NhZ2UoKSwgZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDYwOC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgTm92IDI1IDIwOjM1OjA2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDYwOC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFRjE4NTE3NzE5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMjUgTm92IDIwMTcgMjA6MzU6MDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3NDkwMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNSBOb3YgMjAxNyAyMDozNTowNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzQ4MjUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgTm92IDIwMTcgMjA6MzU6MDYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NDgxNCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI1IE5vdiAyMDE3IDIwOjM1OjA2IC0wMDAwClJlY2VpdmVkOiBmcm9tIGVjMi01Mi0yMDItODAtNzAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20gKEhFTE8gZ2l0Ym94LmFwYWNoZS5vcmcpICg1Mi4yMDIuODAuNzApCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMjUgTm92IDIwMTcgMjA6MzU6MDYgKzAwMDAKRnJvbTogR2l0Qm94IDxnaXRAYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtHaXRIdWJdIHNsYWNoaWV3aWN6IGNvbW1lbnRlZCBvbiBhIGNoYW5nZSBpbiBwdWxsIHJlcXVlc3QgIzU6IFtET1hJQS01MzRdIE1pZ3JhdGUgbG9nZ2luZyB0byBTbDRqCk1lc3NhZ2UtSUQ6IDwxNTExNjQyMTA2MDMuMjc1NjguMTM4OTA1ODMwMDM2NzI4Mzk0OTIuZ2l0Ym94QGdpdGJveC5hcGFjaGUub3JnPgoKc2xhY2hpZXdpY3ogY29tbWVudGVkIG9uIGEgY2hhbmdlIGluIHB1bGwgcmVxdWVzdCAjNTogW0RPWElBLTUzNF0gTWlncmF0ZSBsb2dnaW5nIHRvIFNsNGoKVVJMOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRveGlhL3B1bGwvNSNkaXNjdXNzaW9uX3IxNTMwNTM4NTMKIAogCgogIyMjIyMjIyMjIwogRmlsZSBwYXRoOiBwb20ueG1sCiAjIyMjIyMjIyMjCiBAQCAtMTg1LDE1ICsxODAsMzMgQEAgdW5kZXIgdGhlIExpY2Vuc2UuCiAgICAgICA8ZGVwZW5kZW5jeT4KICAgICAgICAgPGdyb3VwSWQ+b3JnLmNvZGVoYXVzLnBsZXh1czwvZ3JvdXBJZD4KICAgICAgICAgPGFydGlmYWN0SWQ+cGxleHVzLXV0aWxzPC9hcnRpZmFjdElkPgotICAgICAgICA8dmVyc2lvbj4zLjAuMjQ8L3ZlcnNpb24+CisgICAgICAgIDx2ZXJzaW9uPjMuMS4wPC92ZXJzaW9uPgorICAgICAgPC9kZXBlbmRlbmN5PgorCisgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgPGdyb3VwSWQ+b3JnLnNsZjRqPC9ncm91cElkPgorICAgICAgICA8YXJ0aWZhY3RJZD5zbGY0ai1hcGk8L2FydGlmYWN0SWQ+CisgICAgICAgIDx2ZXJzaW9uPiR7c2w0ai52ZXJzaW9ufTwvdmVyc2lvbj4KKyAgICAgIDwvZGVwZW5kZW5jeT4KKyAgICAgIDxkZXBlbmRlbmN5PgorICAgICAgICA8Z3JvdXBJZD5vcmcuc2xmNGo8L2dyb3VwSWQ+CisgICAgICAgIDxhcnRpZmFjdElkPnNsZjRqLXNpbXBsZTwvYXJ0aWZhY3RJZD4KKyAgICAgICAgPHZlcnNpb24+JHtzbDRqLnZlcnNpb259PC92ZXJzaW9uPgorICAgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CisgICAgICA8L2RlcGVuZGVuY3k+CisgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgPGdyb3VwSWQ+b3JnLnNsZjRqPC9ncm91cElkPgorICAgICAgICA8YXJ0aWZhY3RJZD5sb2c0ai1vdmVyLXNsZjRqPC9hcnRpZmFjdElkPgorICAgICAgICA8dmVyc2lvbj4ke3NsNGoudmVyc2lvbn08L3ZlcnNpb24+CisgICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KICAgICAgIDwvZGVwZW5kZW5jeT4KICAgICA8L2RlcGVuZGVuY2llcz4KICAgPC9kZXBlbmRlbmN5TWFuYWdlbWVudD4KICAgPGRlcGVuZGVuY2llcz4KICAgICA8ZGVwZW5kZW5jeT4KICAgICAgIDxncm91cElkPmp1bml0PC9ncm91cElkPgogICAgICAgPGFydGlmYWN0SWQ+anVuaXQ8L2FydGlmYWN0SWQ+Ci0gICAgICA8dmVyc2lvbj40LjExPC92ZXJzaW9uPgorICAgICAgPHZlcnNpb24+NC4xMjwvdmVyc2lvbj4KIAogUmV2aWV3IGNvbW1lbnQ6CiAgIG9rLCB3aWxsIGJlIGRpZmZyZXQgcHVsbCAtIG9ubHkgd2l0aCBkZXBlbmRlbmNlcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDYxMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgTm92IDI1IDIzOjA4OjMzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDYxMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA0RTc1OTE3OEJGCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMjUgTm92IDIwMTcgMjM6MDg6MzMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4MTY1OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNSBOb3YgMjAxNyAyMzowODozMiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODE1NzUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgTm92IDIwMTcgMjM6MDg6MzIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MTU2NCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI1IE5vdiAyMDE3IDIzOjA4OjMyIC0wMDAwClJlY2VpdmVkOiBmcm9tIGVjMi01Mi0yMDItODAtNzAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20gKEhFTE8gZ2l0Ym94LmFwYWNoZS5vcmcpICg1Mi4yMDIuODAuNzApCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMjUgTm92IDIwMTcgMjM6MDg6MzIgKzAwMDAKRnJvbTogR2l0Qm94IDxnaXRAYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtHaXRIdWJdIHNsYWNoaWV3aWN6IG9wZW5lZCBhIG5ldyBwdWxsIHJlcXVlc3QgIzY6IFtET1hJQS01MzVdIFVwZ3JhZGUgZGVwZW5kZW5jZXMgYW5kIHBsdWdpbiB2ZXJzaW9ucwpNZXNzYWdlLUlEOiA8MTUxMTY1MTMxMjE2Ljk4OTcuMTYyMjg3MzM2MTgzMjQ1Mjk3NDcuZ2l0Ym94QGdpdGJveC5hcGFjaGUub3JnPgoKc2xhY2hpZXdpY3ogb3BlbmVkIGEgbmV3IHB1bGwgcmVxdWVzdCAjNjogW0RPWElBLTUzNV0gVXBncmFkZSBkZXBlbmRlbmNlcyBhbmQgcGx1Z2luIHZlcnNpb25zClVSTDogaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1kb3hpYS9wdWxsLzYKIAogCiAgIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDYxNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gTm92IDI2IDIyOjIyOjIwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDYxNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBGMjdDRTEwOUI1Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMjYgTm92IDIwMTcgMjI6MjI6MTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyMjM3OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBOb3YgMjAxNyAyMjoyMjoxOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjIyODQgaW52b2tlZCBieSB1aWQgNTAwKTsgMjYgTm92IDIwMTcgMjI6MjI6MTkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMjI3MyBpbnZva2VkIGJ5IHVpZCA5OSk7IDI2IE5vdiAyMDE3IDIyOjIyOjE5IC0wMDAwClJlY2VpdmVkOiBmcm9tIGVjMi01Mi0yMDItODAtNzAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20gKEhFTE8gZ2l0Ym94LmFwYWNoZS5vcmcpICg1Mi4yMDIuODAuNzApCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMjYgTm92IDIwMTcgMjI6MjI6MTkgKzAwMDAKRnJvbTogR2l0Qm94IDxnaXRAYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtHaXRIdWJdIGhib3V0ZW15IGNvbW1lbnRlZCBvbiBpc3N1ZSAjNjogW0RPWElBLTU2Nl0gVXBncmFkZSBkZXBlbmRlbmNlcyBhbmQgcGx1Z2luIHZlcnNpb25zCk1lc3NhZ2UtSUQ6IDwxNTExNzM0OTM4ODIuMjQ5NzcuMTIwMDI4OTI4NTgzNzQ2NTg3ODIuZ2l0Ym94QGdpdGJveC5hcGFjaGUub3JnPgoKaGJvdXRlbXkgY29tbWVudGVkIG9uIGlzc3VlICM2OiBbRE9YSUEtNTY2XSBVcGdyYWRlIGRlcGVuZGVuY2VzIGFuZCBwbHVnaW4gdmVyc2lvbnMKVVJMOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRveGlhL3B1bGwvNiNpc3N1ZWNvbW1lbnQtMzQ3MDQzNDMxCiAKIAogICBwbGVhc2UgZG9uJ3QgdXBkYXRlIHBsdWdpbnM6IHRoaXMgd2lsbCBoYXBwZW4gd2l0aCBwYXJlbnQgcG9tLiBBRkFJSywgbm8gaHVycnkuCiAgIAogICB1cGdyYWRlIG9mIGRlcGVuZGVuY2llcyBpcyB3aGF0IEknZCBsaWtlIHRvIG1lcmdlIG9ubHk6IGNhbiB5b3UgdXBkYXRlIHRoZSBQUiwgcGxlYXNlPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDYxOC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gTm92IDI3IDAxOjM2OjAyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDYxOC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBGMDUwQTEwQ0EzCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMjcgTm92IDIwMTcgMDE6MzY6MDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1MTM1MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBOb3YgMjAxNyAwMTozNjowMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTEyNTYgaW52b2tlZCBieSB1aWQgNTAwKTsgMjcgTm92IDIwMTcgMDE6MzY6MDEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MTI0NSBpbnZva2VkIGJ5IHVpZCA5OSk7IDI3IE5vdiAyMDE3IDAxOjM2OjAxIC0wMDAwClJlY2VpdmVkOiBmcm9tIGVjMi01Mi0yMDItODAtNzAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20gKEhFTE8gZ2l0Ym94LmFwYWNoZS5vcmcpICg1Mi4yMDIuODAuNzApCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMjcgTm92IDIwMTcgMDE6MzY6MDEgKzAwMDAKRnJvbTogR2l0Qm94IDxnaXRAYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtHaXRIdWJdIGJoYXYwOTA0IG9wZW5lZCBhIG5ldyBwdWxsIHJlcXVlc3QgIzI6IFtKWFItMTAwXSBGaXggY3Jvc3MgcmVmZXJlbmNlIGdlbmVyYXRpb24gd2hlcmUgdGhlcmUgYXJlIHNwYWNlcyBiZWZvci4uCk1lc3NhZ2UtSUQ6IDwxNTExNzQ2NTYwODYuMTU4MDEuNDUzNjA2Mzc5MzEwMjc3MjA3NS5naXRib3hAZ2l0Ym94LmFwYWNoZS5vcmc+CgpiaGF2MDkwNCBvcGVuZWQgYSBuZXcgcHVsbCByZXF1ZXN0ICMyOiBbSlhSLTEwMF0gRml4IGNyb3NzIHJlZmVyZW5jZSBnZW5lcmF0aW9uIHdoZXJlIHRoZXJlIGFyZSBzcGFjZXMgYmVmb3IuLgpVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tanhyL3B1bGwvMgogCiAKICAgP2Ugb3IgYWZ0ZXIgcGFyYW50aGVzZXMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgaXMgYW4gYXV0b21hdGVkIG1lc3NhZ2UgZnJvbSB0aGUgQXBhY2hlIEdpdCBTZXJ2aWNlLgpUbyByZXNwb25kIHRvIHRoZSBtZXNzYWdlLCBwbGVhc2UgbG9nIG9uIEdpdEh1YiBhbmQgdXNlIHRoZQpVUkwgYWJvdmUgdG8gZ28gdG8gdGhlIHNwZWNpZmljIGNvbW1lbnQuCiAKRm9yIHF1ZXJpZXMgYWJvdXQgdGhpcyBzZXJ2aWNlLCBwbGVhc2UgY29udGFjdCBJbmZyYXN0cnVjdHVyZSBhdDoKdXNlcnNAaW5mcmEuYXBhY2hlLm9yZwoKCldpdGggcmVnYXJkcywKQXBhY2hlIEdpdCBTZXJ2aWNlcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NjIxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBOb3YgMjcgMTQ6MzE6MTkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjIxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDIzNjBCMTc1MjEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAyNyBOb3YgMjAxNyAxNDozMToxOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDM0MDY1IGludm9rZWQgYnkgdWlkIDUwMCk7IDI3IE5vdiAyMDE3IDE0OjMxOjE4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMzk4MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBOb3YgMjAxNyAxNDozMToxOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMzOTcxIGludm9rZWQgYnkgdWlkIDk5KTsgMjcgTm92IDIwMTcgMTQ6MzE6MTggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZWMyLTUyLTIwMi04MC03MC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSAoSEVMTyBnaXRib3guYXBhY2hlLm9yZykgKDUyLjIwMi44MC43MCkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAyNyBOb3YgMjAxNyAxNDozMToxOCArMDAwMApGcm9tOiBHaXRCb3ggPGdpdEBhcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0dpdEh1Yl0gcmZzY2hvbHRlIGNvbW1lbnRlZCBvbiBhIGNoYW5nZSBpbiBwdWxsIHJlcXVlc3QgIzI6IFtKWFItMTAwXSBGaXggY3Jvc3MgcmVmZXJlbmNlIGdlbmVyYXRpb24gd2hlcmUgdGhlcmUgYXJlIHNwYWNlcyBiZWZvci4uCk1lc3NhZ2UtSUQ6IDwxNTExNzkzMDc4MTkuMjUxNS4xMTA0MDM4MzYzMjkyNjE4MDY1LmdpdGJveEBnaXRib3guYXBhY2hlLm9yZz4KCnJmc2Nob2x0ZSBjb21tZW50ZWQgb24gYSBjaGFuZ2UgaW4gcHVsbCByZXF1ZXN0ICMyOiBbSlhSLTEwMF0gRml4IGNyb3NzIHJlZmVyZW5jZSBnZW5lcmF0aW9uIHdoZXJlIHRoZXJlIGFyZSBzcGFjZXMgYmVmb3IuLgpVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tanhyL3B1bGwvMiNkaXNjdXNzaW9uX3IxNTMyMTExOTYKIAogCgogIyMjIyMjIyMjIwogRmlsZSBwYXRoOiBtYXZlbi1qeHIvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL2p4ci9KYXZhQ29kZVRyYW5zZm9ybS5qYXZhCiAjIyMjIyMjIyMjCiBAQCAtNjc2LDI1ICs2NzYsNiBAQCBwdWJsaWMgZmluYWwgU3RyaW5nIHhyTGluZSggU3RyaW5nIGxpbmUsIFN0cmluZyBwYWNrYWdlTmFtZSwgQ2xhc3NUeXBlIGNsYXNzVHlwZQogICAgICAgICByZXR1cm4gYnVmZi50b1N0cmluZygpOwogICAgIH0KIAotICAgIC8qKgotICAgICAqIEhpZ2hsaWdodCB0aGUgcGFja2FnZSBpbiB0aGlzIGxpbmUuCi0gICAgICoKLSAgICAgKiBAcGFyYW0gbGluZSBpbnB1dCBsaW5lCi0gICAgICogQHBhcmFtIHBhY2thZ2VOYW1lIHBhY2thZ2UgbmFtZQotICAgICAqIEByZXR1cm4gaW5wdXQgbGluZSB3aXRoIGxpbmtlZCBwYWNrYWdlCi0gICAgICovCi0gICAgcHVibGljIGZpbmFsIFN0cmluZyB4ckxpbmUoIFN0cmluZyBsaW5lLCBTdHJpbmcgcGFja2FnZU5hbWUgKQogCiBSZXZpZXcgY29tbWVudDoKICAgSSBkb24ndCB0aGluayB0aGUgcmVtb3ZhbCBvZiB0aGlzIG1ldGhvZCBpcyBwYXJ0IG9mIHRoZSBpc3N1ZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDYyMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gTm92IDI3IDE0OjUwOjE0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDYyMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA5NDZGNDE3NUY0Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMjcgTm92IDIwMTcgMTQ6NTA6MTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2NTU5NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBOb3YgMjAxNyAxNDo1MDoxNCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjU1MTcgaW52b2tlZCBieSB1aWQgNTAwKTsgMjcgTm92IDIwMTcgMTQ6NTA6MTQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2NTUwNiBpbnZva2VkIGJ5IHVpZCA5OSk7IDI3IE5vdiAyMDE3IDE0OjUwOjE0IC0wMDAwClJlY2VpdmVkOiBmcm9tIGVjMi01Mi0yMDItODAtNzAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20gKEhFTE8gZ2l0Ym94LmFwYWNoZS5vcmcpICg1Mi4yMDIuODAuNzApCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMjcgTm92IDIwMTcgMTQ6NTA6MTQgKzAwMDAKRnJvbTogR2l0Qm94IDxnaXRAYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtHaXRIdWJdIGJoYXYwOTA0IGNvbW1lbnRlZCBvbiBpc3N1ZSAjMjogW0pYUi0xMDBdIEZpeCBjcm9zcyByZWZlcmVuY2UgZ2VuZXJhdGlvbiB3aGVyZSB0aGVyZSBhcmUgc3BhY2VzIGJlZm9yLi4KTWVzc2FnZS1JRDogPDE1MTE3OTQyMTM1Ni43ODA5LjkwNjQ3MzQ0MjY0NTAxMTg1ODAuZ2l0Ym94QGdpdGJveC5hcGFjaGUub3JnPgoKYmhhdjA5MDQgY29tbWVudGVkIG9uIGlzc3VlICMyOiBbSlhSLTEwMF0gRml4IGNyb3NzIHJlZmVyZW5jZSBnZW5lcmF0aW9uIHdoZXJlIHRoZXJlIGFyZSBzcGFjZXMgYmVmb3IuLgpVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tanhyL3B1bGwvMiNpc3N1ZWNvbW1lbnQtMzQ3MjA0ODQ2CiAKIAogICBJdD9zIG5vdCwgaXQgd2FzIGFuIHVudXNlZCBtZXRob2QgdGhhdCBJIGZvdW5kIGFuZCB3YW50ZWQgdG8gY2xlYW4gdXAuCiAgIAogICBPbiBNb24sIDI3IE5vdiAyMDE3IGF0IDk6MzEgQU0sIFJvYmVydCBTY2hvbHRlIDxub3RpZmljYXRpb25zQGdpdGh1Yi5jb20+CiAgIHdyb3RlOgogICAKICAgPiAqQHJmc2Nob2x0ZSogY29tbWVudGVkIG9uIHRoaXMgcHVsbCByZXF1ZXN0LgogICA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICA+CiAgID4gSW4gbWF2ZW4tanhyL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9qeHIvSmF2YUNvZGVUcmFuc2Zvcm0uamF2YQogICA+IDxodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWp4ci9wdWxsLzIjZGlzY3Vzc2lvbl9yMTUzMjExMTk2PjoKICAgPgogICA+ID4gQEAgLTY3NiwyNSArNjc2LDYgQEAgcHVibGljIGZpbmFsIFN0cmluZyB4ckxpbmUoIFN0cmluZyBsaW5lLCBTdHJpbmcgcGFja2FnZU5hbWUsIENsYXNzVHlwZSBjbGFzc1R5cGUKICAgPiAgICAgICAgICByZXR1cm4gYnVmZi50b1N0cmluZygpOwogICA+ICAgICAgfQogICA+CiAgID4gLSAgICAvKioKICAgPiAtICAgICAqIEhpZ2hsaWdodCB0aGUgcGFja2FnZSBpbiB0aGlzIGxpbmUuCiAgID4gLSAgICAgKgogICA+IC0gICAgICogQHBhcmFtIGxpbmUgaW5wdXQgbGluZQogICA+IC0gICAgICogQHBhcmFtIHBhY2thZ2VOYW1lIHBhY2thZ2UgbmFtZQogICA+IC0gICAgICogQHJldHVybiBpbnB1dCBsaW5lIHdpdGggbGlua2VkIHBhY2thZ2UKICAgPiAtICAgICAqLwogICA+IC0gICAgcHVibGljIGZpbmFsIFN0cmluZyB4ckxpbmUoIFN0cmluZyBsaW5lLCBTdHJpbmcgcGFja2FnZU5hbWUgKQogICA+CiAgID4gSSBkb24ndCB0aGluayB0aGUgcmVtb3ZhbCBvZiB0aGlzIG1ldGhvZCBpcyBwYXJ0IG9mIHRoZSBpc3N1ZQogICA+CiAgID4gPwogICA+IFlvdSBhcmUgcmVjZWl2aW5nIHRoaXMgYmVjYXVzZSB5b3UgYXV0aG9yZWQgdGhlIHRocmVhZC4KICAgPiBSZXBseSB0byB0aGlzIGVtYWlsIGRpcmVjdGx5LCB2aWV3IGl0IG9uIEdpdEh1YgogICA+IDxodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWp4ci9wdWxsLzIjcHVsbHJlcXVlc3RyZXZpZXctNzkxODQwMzQ+LAogICA+IG9yIG11dGUgdGhlIHRocmVhZAogICA+IDxodHRwczovL2dpdGh1Yi5jb20vbm90aWZpY2F0aW9ucy91bnN1YnNjcmliZS1hdXRoL0FCdEcwUXJpVGxwdF80cnlFQS1NWGNnWHJRVUVfSjBNa3M1czZzZTJnYUpwWk00UXJCTHA+CiAgID4gLgogICA+CiAgIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDYyOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gTm92IDI3IDIxOjAxOjQwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDYyOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA5NUM5NjE3OUJCCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMjcgTm92IDIwMTcgMjE6MDE6NDAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyMjExOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBOb3YgMjAxNyAyMTowMTo0MCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjIwMzAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjcgTm92IDIwMTcgMjE6MDE6NDAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMjAxNyBpbnZva2VkIGJ5IHVpZCA5OSk7IDI3IE5vdiAyMDE3IDIxOjAxOjM5IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAyNyBOb3YgMjAxNyAyMTowMTozOSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEYyNTU1QzRDOTQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDI3IE5vdiAyMDE3IDIxOjAxOjM4ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC4xNzkKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC4xNzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQl9XQU1fRlJPTV9OQU1FX1NJTkdMRVdPUkQ9MC4yLAoJUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWlmZWRvcmVua28uY29tIGhlYWRlci5iPU5lekxhQWtpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPW1lc3NhZ2luZ2VuZ2luZS5jb20KCWhlYWRlci5iPUUwb0RSTkFEClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBFb1hwb2ZLWHBFZjcgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sIDI3IE5vdiAyMDE3IDIxOjAxOjM4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG91dDQtc210cC5tZXNzYWdpbmdlbmdpbmUuY29tIChvdXQ0LXNtdHAubWVzc2FnaW5nZW5naW5lLmNvbSBbNjYuMTExLjQuMjhdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQkIzNDk1RjE3NwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMjcgTm92IDIwMTcgMjE6MDE6MzcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gY29tcHV0ZTIuaW50ZXJuYWwgKGNvbXB1dGUyLm55aS5pbnRlcm5hbCBbMTAuMjAyLjIuNDJdKQoJYnkgbWFpbG91dC5ueWkuaW50ZXJuYWwgKFBvc3RmaXgpIHdpdGggRVNNVFAgaWQgMUZCMkIyMEYwRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMjcgTm92IDIwMTcgMTY6MDE6MzcgLTA1MDAgKEVTVCkKUmVjZWl2ZWQ6IGZyb20gd2ViNCAoWzEwLjIwMi4yLjIxNF0pCiAgYnkgY29tcHV0ZTIuaW50ZXJuYWwgKE1FUHJveHkpOyBNb24sIDI3IE5vdiAyMDE3IDE2OjAxOjM3IC0wNTAwCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7IGQ9aWZlZG9yZW5rby5jb207CgkgaD1jb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOmNvbnRlbnQtdHlwZTpkYXRlOmZyb206aW4tcmVwbHktdG8KCTptZXNzYWdlLWlkOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOnN1YmplY3Q6dG86eC1tZS1zZW5kZXIKCTp4LW1lLXNlbmRlcjp4LXNhc2wtZW5jOyBzPWZtMjsgYmg9c3doV2FiU3poVWVoZlo3cFUvTjVYcWdFWERUQzAKCXQ1VE94L1ZPbnRMRVMwPTsgYj1OZXpMYUFraXlwWlh5dmM4YkJTVW4xTWFQTjdYMnU5Rzk3UlVrbVk4dVdkNCsKCVdaU1FHWmhNSWpnQkoyQWF6TnhWMHA1ZnlCMzFqRklhSXNzcGZIY1Z5aGRhTE1hVmNtVVVRMENWMWtUWlRPdlgKCW1Qa0hFalVPQTEydGkvNHpIQlMyQUtwOUsvVUg0MHE0NzBxajZDSGx3SElMalRtbC9jWlNvSEdBZ2d6U1RwNzUKCTlyWkNabVFnRnUrU3J2ZXV6MFlIK3FWTVVXQUtkZDBxMHhmK3M3UVlPY1Z4ZVR0S2N0dFl0emhaYjNRTTR1clIKCW5nMmNkZGJYZzVPUXZsZDVEaE1SMkY0MHRlSXQxSWhpb09Ic3dKREgxQ29BR3FBT3BKWGJFU2JUUXdOVjQ3WXQKCUVYeGRiQjRXRUk4ZUM2SDdTdGhlSjRESGRWcmJ3V01zWGg4ZW1rWVlnPT0KREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsgZD0KCW1lc3NhZ2luZ2VuZ2luZS5jb207IGg9Y29udGVudC10cmFuc2Zlci1lbmNvZGluZzpjb250ZW50LXR5cGUKCTpkYXRlOmZyb206aW4tcmVwbHktdG86bWVzc2FnZS1pZDptaW1lLXZlcnNpb246cmVmZXJlbmNlcwoJOnN1YmplY3Q6dG86eC1tZS1zZW5kZXI6eC1tZS1zZW5kZXI6eC1zYXNsLWVuYzsgcz1mbTE7IGJoPXN3aFdhYgoJU3poVWVoZlo3cFUvTjVYcWdFWERUQzB0NVRPeC9WT250TEVTMD07IGI9RTBvRFJOQURISzEybjc5Q21CK0Q4RAoJRkl1WW9EUE40TVRibTlqa0Z4RDRYbHdDNjBIV2d5eHhGdkZkM2ZDOWtJOWNJWkYyTkxxRXV1RUc2d0dXamhPbwoJTDNPb1hybXZFTWxSTTZPcXU3QWhBMlNDZ2dDMGQyTzgvS3NsaG1Ib3BNbERtemh3amtuM2c2aXhUTDFDODF5RwoJeEJvRDM3NmhxbEN5a2VoYTg2clFpdEQ0R0daSDZERGdseXFLTEZjR3NtYUtCakNsTWZ6NlB2cWUxdnVVMEJzcwoJQ0V1SkQ0RWdSNTBKV0RKWTV6YlhaSjVGa1cvSXk0Z2tTZlQ1aWRyRTJzV1JHcUhpRUd3Mjd3OFBYT0E4RWhDUAoJSklTYlA5cGhwWC9pZU9kRFFPNHFxUkxiT2NoTXh4UDRDVkZNVnYvT2xIV3hkMS9tL1gxMnpscUlBcEhZK2VjQQoJPT0KWC1NRS1TZW5kZXI6IDx4bXM6TVgwY1dvVGtZVnpvc3RTVkptLVdXaE1LNnZPME91ZUc1VjZPc1Aya0F6RWkxQXpqd2RVbEVBPgpSZWNlaXZlZDogYnkgbWFpbHVzZXIubnlpLmludGVybmFsIChQb3N0Zml4LCBmcm9tIHVzZXJpZCA5OSkKCWlkIEU5RkE3QkE3OUI7IE1vbiwgMjcgTm92IDIwMTcgMTY6MDE6MzYgLTA1MDAgKEVTVCkKTWVzc2FnZS1JZDogPDE1MTE4MTY0OTYuNzExNjEuMTE4NTk5OTk0NC41OTlDMzFDM0B3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CkZyb206IElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY29tPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9InV0Zi04IgpYLU1haWxlcjogTWVzc2FnaW5nRW5naW5lLmNvbSBXZWJtYWlsIEludGVyZmFjZSAtIGFqYXgtYTE2OTE2MWMKU3ViamVjdDogUmU6IGJlYW0gbGVhdmluZyBtYXZlbiwgYW55dGhpbmcgZG9hYmxlPwpEYXRlOiBNb24sIDI3IE5vdiAyMDE3IDE2OjAxOjM2IC0wNTAwCkluLVJlcGx5LVRvOiA8YjM0MzU4YjYtNzY1ZC1hODc4LWVkYTEtYjBkYTY5YmZjYWYyQGFwYWNoZS5vcmc+ClJlZmVyZW5jZXM6IDxDQUNMRT03Tmt5aWdZeG1oSnlUQzl1N1IzdFpYaEVvUE9BcGQ4ak9qR3VVRDIxWXFfeGdAbWFpbC5nbWFpbC5jb20+CiA8OWNlYjRjYTQtZjk4NC1iYmEzLTI1YWUtOWFlMGNlNDU0ZWI1QGFwYWNoZS5vcmc+CiA8Q0FDTEU9N1A0eF8zZUdSUndTejA4b0E5eUFlNVR1ekJqZU9fM05adnotcW8wcG1XYUpBQG1haWwuZ21haWwuY29tPgogPGIzNDM1OGI2LTc2NWQtYTg3OC1lZGExLWIwZGE2OWJmY2FmMkBhcGFjaGUub3JnPgoKSSB3b3VsZG4ndCBib3RoZXIgd2l0aCBUYWthcmkgbG9jYWwgcmVwb3NpdG9yeSwgaXQncyBicm9rZW4gYnJva2VuLCBzZWUKWzFdIGFuZCBbMl0uIERlZmF1bHQgQWV0aGVyIGxvY2FsIHJlcG9zaXRvcnkgaW1wbCBpcyB0aHJlYWQtc2FmZSBlbm91Z2gsCmF0IGxlYXN0IHdoZW4gbG9jYWwgcmVwb3NpdG9yeSBpcyB1c2VkIGZyb20gc2luZ2xlLXByb2Nlc3MKbXVsdGktdGhyZWFkZWQgYnVpbGQuCgpbMV0gaHR0cHM6Ly9naXRodWIuY29tL3Rha2FyaS90YWthcmktbG9jYWwtcmVwb3NpdG9yeS9pc3N1ZXMvNApbMl0gaHR0cHM6Ly9naXRodWIuY29tL3Rha2FyaS90YWthcmktbG9jYWwtcmVwb3NpdG9yeS9pc3N1ZXMvNQoKLS0gClJlZ2FyZHMsCklnb3IKCk9uIE1vbiwgTm92IDI3LCAyMDE3LCBhdCAwMzoyOCBQTSwgTWljaGFlbCBPc2lwb3Ygd3JvdGU6Cj4gSSByZWFsbHkgd291bGQgbGlrZSB0byBzZWUgdGhlIHNhbWUgbnVtYmVycyB3aXRoIFRha2FyaSBTbWFydCBCdWlsZGVyIAo+IGFuZCB0aHJlYWQtc2FmZSBsb2NhbCByZXBvIG1vZHVsZS4KPiAKPiBBbSAyMDE3LTExLTI3IHVtIDIwOjUyIHNjaHJpZWIgUm9tYWluIE1hbm5pLUJ1Y2F1Ogo+ID4gRXZlbiBkb2luZyBpdCB0aGUgZGlmZmVyZW5jZSBpcyBzaWduaWZpY2F0aXZlLiBUaGUgcGFyYWxsZWxpc20gYW5kCj4gPiBncmFwaCBjb21wdXRhdGlvbiAobGlua2VkIHRvIHRoZSBsb2NhbCByZXBvIHRocmVhZCBzYWZldHkpIGlzIHRoZSBtYWluCj4gPiBkcmF3YmFjayBvZiBtYXZlbiBpdCBzZWVtcy4KPiA+IAo+ID4gUm9tYWluIE1hbm5pLUJ1Y2F1Cj4gPiBAcm1hbm5pYnVjYXUgfCAgQmxvZyB8IE9sZCBCbG9nIHwgR2l0aHViIHwgTGlua2VkSW4KPiA+IAo+ID4gCj4gPiAyMDE3LTExLTI3IDIwOjQ3IEdNVCswMTowMCBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz46Cj4gPj4gQW0gMjAxNy0xMS0yNyB1bSAyMDoyNCBzY2hyaWViIFJvbWFpbiBNYW5uaS1CdWNhdToKPiA+Pj4KPiA+Pj4gSGkgZ3V5cywKPiA+Pj4KPiA+Pj4gYW55dGhpbmcgZG9hYmxlIG9uIG1hdmVuIHNpZGUgKGVpdGhlciB0dW5pbmcgb3IgY29kZSBjaGFuZ2VzKSB0byBiZSBhcwo+ID4+PiBnb29kIGFzIGdyYWRsZSBvbiBiZWFtIHByb2plY3QuIFRoZSBwcm9qZWN0IGlzIGdvaW5kIHRvIGxlYXZlIG1hdmVuIGFzCj4gPj4+IGJ1aWxkIHRvb2wgKFsxXSkgYW5kIEkgdGhpbmsgaXQgaXMgdmVyeSBiYWQgZm9yIDEuIHRoZSBjb21tdW5pdHkgYW5kCj4gPj4+IDIuIEFTRiBhcyBhbiBlY29zeXN0ZW0uCj4gPj4+Cj4gPj4+IFsxXQo+ID4+PiBodHRwczovL2xpc3RzLmFwYWNoZS5vcmcvdGhyZWFkLmh0bWwvNmQ2ZjdmZmM2NjYyMmRiMWRkNDU5ZTE3MDRjM2E1ZDhhNGJjMjljMmQ5YzBiNjAzNTRmZDNiNmFAJTNDZGV2LmJlYW0uYXBhY2hlLm9yZyUzRQo+ID4+Cj4gPj4KPiA+PiBEaWQgdGhleSBkaXNhYmxlIHRoZSBidWlsZCBkYWVtb24/IElmIG5vdCwgaXQgaXMgbm90IGEgZmFpciBjb21wYXJzaW9uLgo+ID4+Cj4gPj4gTWljaGFlbAo+ID4gCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiAKPiA+IAo+IAo+IAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+IAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NzMyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBEZWMgIDQgMTE6Mzk6MzUgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzMyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDlCNkUyMTc5MEQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAgNCBEZWMgMjAxNyAxMTozOTozNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE0NDI1IGludm9rZWQgYnkgdWlkIDUwMCk7IDQgRGVjIDIwMTcgMTE6Mzk6MzUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE0MzM0IGludm9rZWQgYnkgdWlkIDUwMCk7IDQgRGVjIDIwMTcgMTE6Mzk6MzUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNDMyMyBpbnZva2VkIGJ5IHVpZCA5OSk7IDQgRGVjIDIwMTcgMTE6Mzk6MzUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZWMyLTUyLTIwMi04MC03MC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSAoSEVMTyBnaXRib3guYXBhY2hlLm9yZykgKDUyLjIwMi44MC43MCkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAwNCBEZWMgMjAxNyAxMTozOTozNSArMDAwMApGcm9tOiBHaXRCb3ggPGdpdEBhcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0dpdEh1Yl0gc2xhY2hpZXdpY3ogY29tbWVudGVkIG9uIGlzc3VlICM2OiBbRE9YSUEtNTY2XSBVcGdyYWRlIGRlcGVuZGVuY2VzIGFuZCBwbHVnaW4gdmVyc2lvbnMKTWVzc2FnZS1JRDogPDE1MTIzODc1NzQ1OS4xNDUyMC43NTMyMTY1MDA3NjY4MjI0ODAzLmdpdGJveEBnaXRib3guYXBhY2hlLm9yZz4KCnNsYWNoaWV3aWN6IGNvbW1lbnRlZCBvbiBpc3N1ZSAjNjogW0RPWElBLTU2Nl0gVXBncmFkZSBkZXBlbmRlbmNlcyBhbmQgcGx1Z2luIHZlcnNpb25zClVSTDogaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1kb3hpYS9wdWxsLzYjaXNzdWVjb21tZW50LTM0ODkzNzkwNQogCiAKICAgb2ssIHBsdWdpbiB1cGRhdGVzIHJlbW92ZWQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVGhpcyBpcyBhbiBhdXRvbWF0ZWQgbWVzc2FnZSBmcm9tIHRoZSBBcGFjaGUgR2l0IFNlcnZpY2UuClRvIHJlc3BvbmQgdG8gdGhlIG1lc3NhZ2UsIHBsZWFzZSBsb2cgb24gR2l0SHViIGFuZCB1c2UgdGhlClVSTCBhYm92ZSB0byBnbyB0byB0aGUgc3BlY2lmaWMgY29tbWVudC4KIApGb3IgcXVlcmllcyBhYm91dCB0aGlzIHNlcnZpY2UsIHBsZWFzZSBjb250YWN0IEluZnJhc3RydWN0dXJlIGF0Ogp1c2Vyc0BpbmZyYS5hcGFjaGUub3JnCgoKV2l0aCByZWdhcmRzLApBcGFjaGUgR2l0IFNlcnZpY2VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3NDAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIERlYyAgNiAwMDoyNToxNiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3NDAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNjE3NkIxNzY5QgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsICA2IERlYyAyMDE3IDAwOjI1OjE2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODUzNDAgaW52b2tlZCBieSB1aWQgNTAwKTsgNiBEZWMgMjAxNyAwMDoyNToxNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODUyNjQgaW52b2tlZCBieSB1aWQgNTAwKTsgNiBEZWMgMjAxNyAwMDoyNToxNiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg1MjUzIGludm9rZWQgYnkgdWlkIDk5KTsgNiBEZWMgMjAxNyAwMDoyNToxNSAtMDAwMApSZWNlaXZlZDogZnJvbSBlYzItNTItMjAyLTgwLTcwLmNvbXB1dGUtMS5hbWF6b25hd3MuY29tIChIRUxPIGdpdGJveC5hcGFjaGUub3JnKSAoNTIuMjAyLjgwLjcwKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDA2IERlYyAyMDE3IDAwOjI1OjE1ICswMDAwCkZyb206IEdpdEJveCA8Z2l0QGFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBbR2l0SHViXSBoYm91dGVteSBjb21tZW50ZWQgb24gaXNzdWUgIzY6IFtET1hJQS01NjZdIFVwZ3JhZGUgZGVwZW5kZW5jZXMgYW5kIHBsdWdpbiB2ZXJzaW9ucwpNZXNzYWdlLUlEOiA8MTUxMjUxOTkxNTQwLjQ0MS4xODI3NDg5NTMxNzgzMDY1Mjg5MS5naXRib3hAZ2l0Ym94LmFwYWNoZS5vcmc+CgpoYm91dGVteSBjb21tZW50ZWQgb24gaXNzdWUgIzY6IFtET1hJQS01NjZdIFVwZ3JhZGUgZGVwZW5kZW5jZXMgYW5kIHBsdWdpbiB2ZXJzaW9ucwpVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZG94aWEvcHVsbC82I2lzc3VlY29tbWVudC0zNDk0ODc2MTcKIAogCiAgIFBSIG1lcmdlZAogICB0aGFuayB5b3UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVGhpcyBpcyBhbiBhdXRvbWF0ZWQgbWVzc2FnZSBmcm9tIHRoZSBBcGFjaGUgR2l0IFNlcnZpY2UuClRvIHJlc3BvbmQgdG8gdGhlIG1lc3NhZ2UsIHBsZWFzZSBsb2cgb24gR2l0SHViIGFuZCB1c2UgdGhlClVSTCBhYm92ZSB0byBnbyB0byB0aGUgc3BlY2lmaWMgY29tbWVudC4KIApGb3IgcXVlcmllcyBhYm91dCB0aGlzIHNlcnZpY2UsIHBsZWFzZSBjb250YWN0IEluZnJhc3RydWN0dXJlIGF0Ogp1c2Vyc0BpbmZyYS5hcGFjaGUub3JnCgoKV2l0aCByZWdhcmRzLApBcGFjaGUgR2l0IFNlcnZpY2VzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3NDEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIERlYyAgNiAwMDoyNToxNiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3NDEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQzdFREIxNzY5RgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsICA2IERlYyAyMDE3IDAwOjI1OjE2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODYxMTkgaW52b2tlZCBieSB1aWQgNTAwKTsgNiBEZWMgMjAxNyAwMDoyNToxNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODYwNDcgaW52b2tlZCBieSB1aWQgNTAwKTsgNiBEZWMgMjAxNyAwMDoyNToxNiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg2MDIzIGludm9rZWQgYnkgdWlkIDk5KTsgNiBEZWMgMjAxNyAwMDoyNToxNiAtMDAwMApSZWNlaXZlZDogZnJvbSBlYzItNTItMjAyLTgwLTcwLmNvbXB1dGUtMS5hbWF6b25hd3MuY29tIChIRUxPIGdpdGJveC5hcGFjaGUub3JnKSAoNTIuMjAyLjgwLjcwKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDA2IERlYyAyMDE3IDAwOjI1OjE2ICswMDAwCkZyb206IEdpdEJveCA8Z2l0QGFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBbR2l0SHViXSBoYm91dGVteSBjbG9zZWQgcHVsbCByZXF1ZXN0ICM2OiBbRE9YSUEtNTY2XSBVcGdyYWRlIGRlcGVuZGVuY2VzIGFuZCBwbHVnaW4gdmVyc2lvbnMKTWVzc2FnZS1JRDogPDE1MTI1MTk5MTU3MC40NDQuNzg1NzEzOTY0NTY5Mzc2ODg1Ny5naXRib3hAZ2l0Ym94LmFwYWNoZS5vcmc+CgpoYm91dGVteSBjbG9zZWQgcHVsbCByZXF1ZXN0ICM2OiBbRE9YSUEtNTY2XSBVcGdyYWRlIGRlcGVuZGVuY2VzIGFuZCBwbHVnaW4gdmVyc2lvbnMKVVJMOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRveGlhL3B1bGwvNgogCiAKICAgCgpUaGlzIGlzIGEgUFIgbWVyZ2VkIGZyb20gYSBmb3JrZWQgcmVwb3NpdG9yeS4KQXMgR2l0SHViIGhpZGVzIHRoZSBvcmlnaW5hbCBkaWZmIG9uIG1lcmdlLCBpdCBpcyBkaXNwbGF5ZWQgYmVsb3cgZm9yCnRoZSBzYWtlIG9mIHByb3ZlbmFuY2U6CgpBcyB0aGlzIGlzIGEgZm9yZWlnbiBwdWxsIHJlcXVlc3QgKGZyb20gYSBmb3JrKSwgdGhlIGRpZmYgaXMgc3VwcGxpZWQKYmVsb3cgKGFzIGl0IHdvbid0IHNob3cgb3RoZXJ3aXNlIGR1ZSB0byBHaXRIdWIgbWFnaWMpOgoKZGlmZiAtLWdpdCBhL2RveGlhLWNvcmUvcG9tLnhtbCBiL2RveGlhLWNvcmUvcG9tLnhtbAppbmRleCA3YjNjZTFmYy4uMzcxZTU2YWYgMTAwNjQ0Ci0tLSBhL2RveGlhLWNvcmUvcG9tLnhtbAorKysgYi9kb3hpYS1jb3JlL3BvbS54bWwKQEAgLTcyLDkgKzcyLDE0IEBAIHVuZGVyIHRoZSBMaWNlbnNlLgogCiAgICAgPCEtLSB0ZXN0IC0tPgogICAgIDxkZXBlbmRlbmN5PgotICAgICAgPGdyb3VwSWQ+eG1sdW5pdDwvZ3JvdXBJZD4KLSAgICAgIDxhcnRpZmFjdElkPnhtbHVuaXQ8L2FydGlmYWN0SWQ+Ci0gICAgICA8dmVyc2lvbj4xLjU8L3ZlcnNpb24+CisgICAgICA8Z3JvdXBJZD5vcmcueG1sdW5pdDwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPnhtbHVuaXQtY29yZTwvYXJ0aWZhY3RJZD4KKyAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5vcmcueG1sdW5pdDwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPnhtbHVuaXQtbWF0Y2hlcnM8L2FydGlmYWN0SWQ+CisgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CiAgICAgPC9kZXBlbmRlbmN5PgogCiAgIDwvZGVwZW5kZW5jaWVzPgpkaWZmIC0tZ2l0IGEvZG94aWEtY29yZS9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vZG94aWEvQWJzdHJhY3RNb2R1bGVUZXN0LmphdmEgYi9kb3hpYS1jb3JlL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9tYXZlbi9kb3hpYS9BYnN0cmFjdE1vZHVsZVRlc3QuamF2YQppbmRleCA5OTdkM2I0Mi4uYjU4M2E2MzAgMTAwNjQ0Ci0tLSBhL2RveGlhLWNvcmUvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL2RveGlhL0Fic3RyYWN0TW9kdWxlVGVzdC5qYXZhCisrKyBiL2RveGlhLWNvcmUvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL2RveGlhL0Fic3RyYWN0TW9kdWxlVGVzdC5qYXZhCkBAIC0xMDIsNiArMTAyLDE0IEBAIHByb3RlY3RlZCBXcml0ZXIgZ2V0WG1sVGVzdFdyaXRlciggU3RyaW5nIGJhc2VOYW1lICkKICAgICAgICAgcmV0dXJuIGdldFhtbFRlc3RXcml0ZXIoIGJhc2VOYW1lLCBvdXRwdXRFeHRlbnNpb24oKSApOwogICAgIH0KIAorICAgIHByb3RlY3RlZCBzdGF0aWMgU3RyaW5nIG5vcm1hbGl6ZUxpbmVFbmRzKFN0cmluZyBzKSB7CisgICAgICAgIGlmICggcyAhPSBudWxsKSB7CisgICAgICAgICAgICByZXR1cm4gcy5yZXBsYWNlQWxsKCJcclxuIiwgIlxuIiApCisgICAgICAgICAgICAgICAgICAgIC5yZXBsYWNlQWxsKCJcciIsICJcbiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICB9CiAgICAgLyoqCiAgICAgICogUmV0dXJucyBhbiBYTUwgRmlsZVdyaXRlciB0byB3cml0ZSB0byBhIGZpbGUgd2l0aCB0aGUgZ2l2ZW4gbmFtZQogICAgICAqIGluIHRoZSB0ZXN0IHRhcmdldCBvdXRwdXQgZGlyZWN0b3J5LgpkaWZmIC0tZ2l0IGEvZG94aWEtY29yZS9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vZG94aWEvc2luay9pbXBsL0Fic3RyYWN0U2lua1Rlc3QuamF2YSBiL2RveGlhLWNvcmUvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL2RveGlhL3NpbmsvaW1wbC9BYnN0cmFjdFNpbmtUZXN0LmphdmEKaW5kZXggNGE1YmFjYTMuLjRmYjFkN2ZkIDEwMDY0NAotLS0gYS9kb3hpYS1jb3JlL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9tYXZlbi9kb3hpYS9zaW5rL2ltcGwvQWJzdHJhY3RTaW5rVGVzdC5qYXZhCisrKyBiL2RveGlhLWNvcmUvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL2RveGlhL3NpbmsvaW1wbC9BYnN0cmFjdFNpbmtUZXN0LmphdmEKQEAgLTI3LDExICsyNywxMSBAQAogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uZG94aWEubG9nZ2luZy5QbGV4dXNMb2dnZXJXcmFwcGVyOwogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uZG94aWEuc2luay5TaW5rOwogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uZG94aWEuc2luay5TaW5rRXZlbnRBdHRyaWJ1dGVzOwotaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uZG94aWEuc2luay5pbXBsLlNpbmtFdmVudEF0dHJpYnV0ZVNldDsKIGltcG9ydCBvcmcuY29kZWhhdXMucGxleHVzLkRlZmF1bHRQbGV4dXNDb250YWluZXI7CiBpbXBvcnQgb3JnLmNvZGVoYXVzLnBsZXh1cy51dGlsLklPVXRpbDsKLWltcG9ydCBvcmcuY3VzdG9tbW9ua2V5LnhtbHVuaXQuRGlmZjsKLWltcG9ydCBvcmcuY3VzdG9tbW9ua2V5LnhtbHVuaXQuWE1MVW5pdDsKK2ltcG9ydCBvcmcueG1sdW5pdC5tYXRjaGVycy5Db21wYXJlTWF0Y2hlcjsKKworaW1wb3J0IHN0YXRpYyBvcmcuanVuaXQuQXNzZXJ0LmFzc2VydFRoYXQ7CiAKIC8qKgogICogQWJzdHJhY3QgYmFzZSBjbGFzcyB0byB0ZXN0IHNpbmtzLgpAQCAtMjA3LDggKzIwNyw4IEBAIHB1YmxpYyB2b2lkIHRlc3RIZWFkKCkKICAgICAgICAgc2luay5mbHVzaCgpOwogICAgICAgICBzaW5rLmNsb3NlKCk7CiAKLSAgICAgICAgU3RyaW5nIGFjdHVhbCA9IHRlc3RXcml0ZXIudG9TdHJpbmcoKTsKLSAgICAgICAgU3RyaW5nIGV4cGVjdGVkID0gZ2V0SGVhZEJsb2NrKCk7CisgICAgICAgIFN0cmluZyBhY3R1YWwgPSBub3JtYWxpemVMaW5lRW5kcyggdGVzdFdyaXRlci50b1N0cmluZygpICk7CisgICAgICAgIFN0cmluZyBleHBlY3RlZCA9IG5vcm1hbGl6ZUxpbmVFbmRzKCBnZXRIZWFkQmxvY2soKSApOwogCiAgICAgICAgIGFzc2VydEVxdWFscyggIldyb25nIGhlYWQhIiwgZXhwZWN0ZWQsIGFjdHVhbCApOwogICAgIH0KQEAgLTQ3MCwxMiArNDcwLDExIEBAIHB1YmxpYyB2b2lkIHRlc3RGaWd1cmUoKSB0aHJvd3MgRXhjZXB0aW9uCiAKICAgICAgICAgaWYgKCBpc1htbFNpbmsoKSApCiAgICAgICAgIHsKLSAgICAgICAgICAgIERpZmYgZGlmZiA9IFhNTFVuaXQuY29tcGFyZVhNTCggd3JhcFhtbCggZXhwZWN0ZWQgKSwgd3JhcFhtbCggYWN0dWFsICkgKTsKLSAgICAgICAgICAgIGFzc2VydFRydWUoICJXcm9uZyBmaWd1cmUhIiwgZGlmZi5pZGVudGljYWwoKSApOworICAgICAgICAgICAgYXNzZXJ0VGhhdCAoIHdyYXBYbWwoIGFjdHVhbCApLCBDb21wYXJlTWF0Y2hlci5pc0lkZW50aWNhbFRvKCB3cmFwWG1sKCBleHBlY3RlZCApICkpOwogICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgewotICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCAiV3JvbmcgZmlndXJlISIsIGV4cGVjdGVkLCBhY3R1YWwgKTsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscyggYWN0dWFsLCBleHBlY3RlZCApOwogICAgICAgICB9CiAgICAgfQogCkBAIC00OTQsMTIgKzQ5MywxMSBAQCBwdWJsaWMgdm9pZCB0ZXN0RmlndXJlV2l0aG91dENhcHRpb24oKSB0aHJvd3MgRXhjZXB0aW9uCiAKICAgICAgICAgaWYgKCBpc1htbFNpbmsoKSApCiAgICAgICAgIHsKLSAgICAgICAgICAgIERpZmYgZGlmZiA9IFhNTFVuaXQuY29tcGFyZVhNTCggd3JhcFhtbCggZXhwZWN0ZWQgKSwgd3JhcFhtbCggYWN0dWFsICkgKTsKLSAgICAgICAgICAgIGFzc2VydFRydWUoICJXcm9uZyBmaWd1cmUhIiwgZGlmZi5pZGVudGljYWwoKSApOworICAgICAgICAgICAgYXNzZXJ0VGhhdCAoIHdyYXBYbWwoIGFjdHVhbCApLCBDb21wYXJlTWF0Y2hlci5pc0lkZW50aWNhbFRvKCB3cmFwWG1sKCBleHBlY3RlZCApICkpOwogICAgICAgICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgewotICAgICAgICAgICAgYXNzZXJ0RXF1YWxzKCAiV3JvbmcgZmlndXJlISIsIGV4cGVjdGVkLCBhY3R1YWwgKTsKKyAgICAgICAgICAgIGFzc2VydEVxdWFscyggYWN0dWFsLCBleHBlY3RlZCApOwogICAgICAgICB9CiAgICAgfQogCkBAIC01MzYsMTIgKzUzNCwxMSBAQCBwdWJsaWMgdm9pZCB0ZXN0VGFibGUoKSB0aHJvd3MgRXhjZXB0aW9uCiAKICAgICAgICAgaWYgKCBpc1htbFNpbmsoKSApCiAgICAgICAgIHsKLSAgICAgICAgICAgIERpZmYgZGlmZiA9IFhNTFVuaXQuY29tcGFyZVhNTCggd3JhcFhtbCggZXhwZWN0ZWQgKSwgd3JhcFhtbCggYWN0dWFsICkgKTsKLSAgICAgICAgICAgIGFzc2VydFRydWUoICJXcm9uZyB0YWJsZSEiLCBkaWZmLmlkZW50aWNhbCgpICk7CisgICAgICAgICAgICBhc3NlcnRUaGF0ICggd3JhcFhtbCggYWN0dWFsICksIENvbXBhcmVNYXRjaGVyLmlzSWRlbnRpY2FsVG8oIHdyYXBYbWwoIGV4cGVjdGVkICkgKSk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZQogICAgICAgICB7Ci0gICAgICAgICAgICBhc3NlcnRFcXVhbHMoICJXcm9uZyB0YWJsZSEiLCBleHBlY3RlZCwgYWN0dWFsICk7CisgICAgICAgICAgICBhc3NlcnRFcXVhbHMoIGFjdHVhbCwgZXhwZWN0ZWQgKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvZG94aWEtbW9kdWxlcy9kb3hpYS1tb2R1bGUtYXB0L3BvbS54bWwgYi9kb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS1hcHQvcG9tLnhtbAppbmRleCBjM2U1YTA0OS4uNGU5MzA4ZGYgMTAwNjQ0Ci0tLSBhL2RveGlhLW1vZHVsZXMvZG94aWEtbW9kdWxlLWFwdC9wb20ueG1sCisrKyBiL2RveGlhLW1vZHVsZXMvZG94aWEtbW9kdWxlLWFwdC9wb20ueG1sCkBAIC00Niw1ICs0NiwxNSBAQCB1bmRlciB0aGUgTGljZW5zZS4KICAgICAgIDxncm91cElkPm9yZy5jb2RlaGF1cy5wbGV4dXM8L2dyb3VwSWQ+CiAgICAgICA8YXJ0aWZhY3RJZD5wbGV4dXMtdXRpbHM8L2FydGlmYWN0SWQ+CiAgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+b3JnLnhtbHVuaXQ8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD54bWx1bml0LWNvcmU8L2FydGlmYWN0SWQ+CisgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgorICAgIDxkZXBlbmRlbmN5PgorICAgICAgPGdyb3VwSWQ+b3JnLnhtbHVuaXQ8L2dyb3VwSWQ+CisgICAgICA8YXJ0aWZhY3RJZD54bWx1bml0LW1hdGNoZXJzPC9hcnRpZmFjdElkPgorICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KICAgPC9kZXBlbmRlbmNpZXM+CiA8L3Byb2plY3Q+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG94aWEtbW9kdWxlcy9kb3hpYS1tb2R1bGUtZG9jYm9vay1zaW1wbGUvcG9tLnhtbCBiL2RveGlhLW1vZHVsZXMvZG94aWEtbW9kdWxlLWRvY2Jvb2stc2ltcGxlL3BvbS54bWwKaW5kZXggMjgxYmE1ZTguLmNkYzkzMGJkIDEwMDY0NAotLS0gYS9kb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS1kb2Nib29rLXNpbXBsZS9wb20ueG1sCisrKyBiL2RveGlhLW1vZHVsZXMvZG94aWEtbW9kdWxlLWRvY2Jvb2stc2ltcGxlL3BvbS54bWwKQEAgLTQyLDUgKzQyLDE1IEBAIHVuZGVyIHRoZSBMaWNlbnNlLgogICAgICAgPGdyb3VwSWQ+b3JnLmNvZGVoYXVzLnBsZXh1czwvZ3JvdXBJZD4KICAgICAgIDxhcnRpZmFjdElkPnBsZXh1cy11dGlsczwvYXJ0aWZhY3RJZD4KICAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5vcmcueG1sdW5pdDwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPnhtbHVuaXQtY29yZTwvYXJ0aWZhY3RJZD4KKyAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5vcmcueG1sdW5pdDwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPnhtbHVuaXQtbWF0Y2hlcnM8L2FydGlmYWN0SWQ+CisgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgogICA8L2RlcGVuZGVuY2llcz4KIDwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL2RveGlhLW1vZHVsZXMvZG94aWEtbW9kdWxlLWZvL3BvbS54bWwgYi9kb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS1mby9wb20ueG1sCmluZGV4IGRmZWJkZmU5Li4wNTZlZWUzNiAxMDA2NDQKLS0tIGEvZG94aWEtbW9kdWxlcy9kb3hpYS1tb2R1bGUtZm8vcG9tLnhtbAorKysgYi9kb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS1mby9wb20ueG1sCkBAIC03OCw3ICs3OCw3IEBAIHVuZGVyIHRoZSBMaWNlbnNlLgogICAgIDxkZXBlbmRlbmN5PgogICAgICAgPGdyb3VwSWQ+Y29tbW9ucy1jb2xsZWN0aW9uczwvZ3JvdXBJZD4KICAgICAgIDxhcnRpZmFjdElkPmNvbW1vbnMtY29sbGVjdGlvbnM8L2FydGlmYWN0SWQ+Ci0gICAgICA8dmVyc2lvbj4zLjIuMTwvdmVyc2lvbj4KKyAgICAgIDx2ZXJzaW9uPjMuMi4yPC92ZXJzaW9uPgogICAgICAgPCEtLSBydW50aW1lIGRlcGVuZGVuY3kgZm9yIGNvbW1vbnMtY29uZmlndXJhdGlvbiAtLT4KICAgICAgIDxzY29wZT5ydW50aW1lPC9zY29wZT4KICAgICA8L2RlcGVuZGVuY3k+CkBAIC05MCwxMCArOTAsMjAgQEAgdW5kZXIgdGhlIExpY2Vuc2UuCiAgICAgPGRlcGVuZGVuY3k+CiAgICAgICA8Z3JvdXBJZD5sb2c0ajwvZ3JvdXBJZD4KICAgICAgIDxhcnRpZmFjdElkPmxvZzRqPC9hcnRpZmFjdElkPgotICAgICAgPHZlcnNpb24+MS4yLjEyPC92ZXJzaW9uPgorICAgICAgPHZlcnNpb24+MS4yLjE3PC92ZXJzaW9uPgogICAgICAgPCEtLSBydW50aW1lIGRlcCBmb3IgZm9wIC0tPgogICAgICAgPHNjb3BlPnJ1bnRpbWU8L3Njb3BlPgogICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPm9yZy54bWx1bml0PC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+eG1sdW5pdC1jb3JlPC9hcnRpZmFjdElkPgorICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPm9yZy54bWx1bml0PC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+eG1sdW5pdC1tYXRjaGVyczwvYXJ0aWZhY3RJZD4KKyAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CiAgIDwvZGVwZW5kZW5jaWVzPgogCiAgIDxidWlsZD4KZGlmZiAtLWdpdCBhL2RveGlhLW1vZHVsZXMvZG94aWEtbW9kdWxlLWZvL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9tYXZlbi9kb3hpYS9tb2R1bGUvZm8vRm9BZ2dyZWdhdGVTaW5rVGVzdC5qYXZhIGIvZG94aWEtbW9kdWxlcy9kb3hpYS1tb2R1bGUtZm8vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL2RveGlhL21vZHVsZS9mby9Gb0FnZ3JlZ2F0ZVNpbmtUZXN0LmphdmEKaW5kZXggYmQwN2M3ZDUuLjllNjc5MmU5IDEwMDY0NAotLS0gYS9kb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS1mby9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vZG94aWEvbW9kdWxlL2ZvL0ZvQWdncmVnYXRlU2lua1Rlc3QuamF2YQorKysgYi9kb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS1mby9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vZG94aWEvbW9kdWxlL2ZvL0ZvQWdncmVnYXRlU2lua1Rlc3QuamF2YQpAQCAtMzAsMTEgKzMwLDEyIEBACiBpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5kb3hpYS5kb2N1bWVudC5Eb2N1bWVudE1vZGVsOwogaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uZG94aWEubWFya3VwLk1hcmt1cDsKIGltcG9ydCBvcmcuY29kZWhhdXMucGxleHVzLnV0aWwuV3JpdGVyRmFjdG9yeTsKLWltcG9ydCBvcmcuY3VzdG9tbW9ua2V5LnhtbHVuaXQuRGlmZjsKLWltcG9ydCBvcmcuY3VzdG9tbW9ua2V5LnhtbHVuaXQuWE1MVW5pdDsKIGltcG9ydCBvcmcueG1sLnNheC5TQVhQYXJzZUV4Y2VwdGlvbjsKIAogaW1wb3J0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZTsKK2ltcG9ydCBvcmcueG1sdW5pdC5tYXRjaGVycy5Db21wYXJlTWF0Y2hlcjsKKworaW1wb3J0IHN0YXRpYyBvcmcuanVuaXQuQXNzZXJ0LmFzc2VydFRoYXQ7CiAKIC8qKgogICogVGVzdCBGb0FnZ3JlZ2F0ZVNpbmsuCkBAIC0xODQsOCArMTg1LDcgQEAgcHVibGljIHZvaWQgdGVzdEZpZ3VyZUdyYXBoaWNzKCkgdGhyb3dzIEV4Y2VwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgKyAid2lkdGg9XCIxMDAlXCIvPiIgKyBNYXJrdXAuRU9MOwogICAgICAgICBTdHJpbmcgYWN0dWFsID0gd3JpdGVyLnRvU3RyaW5nKCk7CiAKLSAgICAgICAgRGlmZiBkaWZmID0gWE1MVW5pdC5jb21wYXJlWE1MKCB3cmFwWG1sKCBleHBlY3RlZCApLCB3cmFwWG1sKCBhY3R1YWwgKSApOwotICAgICAgICBhc3NlcnRUcnVlKCAiV3JvbmcgZmlndXJlISIsIGRpZmYuaWRlbnRpY2FsKCkgKTsKKyAgICAgICAgYXNzZXJ0VGhhdCAoIHdyYXBYbWwoIGFjdHVhbCApLCBDb21wYXJlTWF0Y2hlci5pc0lkZW50aWNhbFRvKCB3cmFwWG1sKCBleHBlY3RlZCApICkpOwogICAgIH0KIAogICAgIC8qKgpkaWZmIC0tZ2l0IGEvZG94aWEtbW9kdWxlcy9kb3hpYS1tb2R1bGUtbGF0ZXgvcG9tLnhtbCBiL2RveGlhLW1vZHVsZXMvZG94aWEtbW9kdWxlLWxhdGV4L3BvbS54bWwKaW5kZXggNWY0MmRmZmEuLmMxYzlkM2VlIDEwMDY0NAotLS0gYS9kb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS1sYXRleC9wb20ueG1sCisrKyBiL2RveGlhLW1vZHVsZXMvZG94aWEtbW9kdWxlLWxhdGV4L3BvbS54bWwKQEAgLTQyLDUgKzQyLDE1IEBAIHVuZGVyIHRoZSBMaWNlbnNlLgogICAgICAgPGdyb3VwSWQ+b3JnLmNvZGVoYXVzLnBsZXh1czwvZ3JvdXBJZD4KICAgICAgIDxhcnRpZmFjdElkPnBsZXh1cy11dGlsczwvYXJ0aWZhY3RJZD4KICAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5vcmcueG1sdW5pdDwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPnhtbHVuaXQtY29yZTwvYXJ0aWZhY3RJZD4KKyAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5vcmcueG1sdW5pdDwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPnhtbHVuaXQtbWF0Y2hlcnM8L2FydGlmYWN0SWQ+CisgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgogICA8L2RlcGVuZGVuY2llcz4KIDwvcHJvamVjdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS14ZG9jL3BvbS54bWwgYi9kb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS14ZG9jL3BvbS54bWwKaW5kZXggN2MzYjliNGIuLjA1ZDgyZDRkIDEwMDY0NAotLS0gYS9kb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS14ZG9jL3BvbS54bWwKKysrIGIvZG94aWEtbW9kdWxlcy9kb3hpYS1tb2R1bGUteGRvYy9wb20ueG1sCkBAIC00OSw2ICs0OSwxNiBAQCB1bmRlciB0aGUgTGljZW5zZS4KICAgICAgIDxhcnRpZmFjdElkPmRveGlhLXRlc3QtZG9jczwvYXJ0aWZhY3RJZD4KICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KICAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5vcmcueG1sdW5pdDwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPnhtbHVuaXQtY29yZTwvYXJ0aWZhY3RJZD4KKyAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CisgICAgPGRlcGVuZGVuY3k+CisgICAgICA8Z3JvdXBJZD5vcmcueG1sdW5pdDwvZ3JvdXBJZD4KKyAgICAgIDxhcnRpZmFjdElkPnhtbHVuaXQtbWF0Y2hlcnM8L2FydGlmYWN0SWQ+CisgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CisgICAgPC9kZXBlbmRlbmN5PgogICA8L2RlcGVuZGVuY2llcz4KIAogICA8YnVpbGQ+CmRpZmYgLS1naXQgYS9kb3hpYS1tb2R1bGVzL2RveGlhLW1vZHVsZS14aHRtbC9wb20ueG1sIGIvZG94aWEtbW9kdWxlcy9kb3hpYS1tb2R1bGUteGh0bWwvcG9tLnhtbAppbmRleCAzNTVlMTkxMy4uODVkNzEwYTQgMTAwNjQ0Ci0tLSBhL2RveGlhLW1vZHVsZXMvZG94aWEtbW9kdWxlLXhodG1sL3BvbS54bWwKKysrIGIvZG94aWEtbW9kdWxlcy9kb3hpYS1tb2R1bGUteGh0bWwvcG9tLnhtbApAQCAtNDIsNSArNDIsMTUgQEAgdW5kZXIgdGhlIExpY2Vuc2UuCiAgICAgICA8Z3JvdXBJZD5vcmcuY29kZWhhdXMucGxleHVzPC9ncm91cElkPgogICAgICAgPGFydGlmYWN0SWQ+cGxleHVzLXV0aWxzPC9hcnRpZmFjdElkPgogICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPm9yZy54bWx1bml0PC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+eG1sdW5pdC1jb3JlPC9hcnRpZmFjdElkPgorICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgorICAgIDwvZGVwZW5kZW5jeT4KKyAgICA8ZGVwZW5kZW5jeT4KKyAgICAgIDxncm91cElkPm9yZy54bWx1bml0PC9ncm91cElkPgorICAgICAgPGFydGlmYWN0SWQ+eG1sdW5pdC1tYXRjaGVyczwvYXJ0aWZhY3RJZD4KKyAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KKyAgICA8L2RlcGVuZGVuY3k+CiAgIDwvZGVwZW5kZW5jaWVzPgogPC9wcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3BvbS54bWwgYi9wb20ueG1sCmluZGV4IDc4MGFlOGExLi44YWZhNmVmYiAxMDA2NDQKLS0tIGEvcG9tLnhtbAorKysgYi9wb20ueG1sCkBAIC0xNzYsMjQgKzE3Niw0NSBAQCB1bmRlciB0aGUgTGljZW5zZS4KICAgICAgICAgPHZlcnNpb24+JHtwcm9qZWN0LnZlcnNpb259PC92ZXJzaW9uPgogICAgICAgPC9kZXBlbmRlbmN5PgogCisgICAgICA8IS0tIHRlc3QgLS0+CisgICAgICA8ZGVwZW5kZW5jeT4KKyAgICAgICAgICA8Z3JvdXBJZD5vcmcueG1sdW5pdDwvZ3JvdXBJZD4KKyAgICAgICAgICA8YXJ0aWZhY3RJZD54bWx1bml0LWNvcmU8L2FydGlmYWN0SWQ+CisgICAgICAgICAgPHZlcnNpb24+Mi41LjE8L3ZlcnNpb24+CisgICAgICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgorICAgICAgPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgPGdyb3VwSWQ+b3JnLnhtbHVuaXQ8L2dyb3VwSWQ+CisgICAgICAgICAgPGFydGlmYWN0SWQ+eG1sdW5pdC1tYXRjaGVyczwvYXJ0aWZhY3RJZD4KKyAgICAgICAgICA8dmVyc2lvbj4yLjUuMTwvdmVyc2lvbj4KKyAgICAgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CisgICAgICA8L2RlcGVuZGVuY3k+CisKICAgICAgIDwhLS0gUGxleHVzIC0tPgogICAgICAgPGRlcGVuZGVuY3k+CiAgICAgICAgIDxncm91cElkPm9yZy5jb2RlaGF1cy5wbGV4dXM8L2dyb3VwSWQ+CiAgICAgICAgIDxhcnRpZmFjdElkPnBsZXh1cy1jb250YWluZXItZGVmYXVsdDwvYXJ0aWZhY3RJZD4KLSAgICAgICAgPHZlcnNpb24+MS41LjU8L3ZlcnNpb24+CisgICAgICAgIDx2ZXJzaW9uPjEuNy4xPC92ZXJzaW9uPgogICAgICAgPC9kZXBlbmRlbmN5PgorICAgICAgPGRlcGVuZGVuY3k+CisgICAgICAgICAgPGdyb3VwSWQ+b3JnLmNvZGVoYXVzLnBsZXh1czwvZ3JvdXBJZD4KKyAgICAgICAgICA8YXJ0aWZhY3RJZD5wbGV4dXMtY29tcG9uZW50LWFubm90YXRpb25zPC9hcnRpZmFjdElkPgorICAgICAgICAgIDx2ZXJzaW9uPjEuNy4xPC92ZXJzaW9uPgorICAgICAgPC9kZXBlbmRlbmN5PgorCiAgICAgICA8ZGVwZW5kZW5jeT4KICAgICAgICAgPGdyb3VwSWQ+b3JnLmNvZGVoYXVzLnBsZXh1czwvZ3JvdXBJZD4KICAgICAgICAgPGFydGlmYWN0SWQ+cGxleHVzLXV0aWxzPC9hcnRpZmFjdElkPgotICAgICAgICA8dmVyc2lvbj4zLjAuMjQ8L3ZlcnNpb24+CisgICAgICAgIDx2ZXJzaW9uPjMuMS4wPC92ZXJzaW9uPgogICAgICAgPC9kZXBlbmRlbmN5PgogICAgIDwvZGVwZW5kZW5jaWVzPgogICA8L2RlcGVuZGVuY3lNYW5hZ2VtZW50PgorCiAgIDxkZXBlbmRlbmNpZXM+CiAgICAgPGRlcGVuZGVuY3k+CiAgICAgICA8Z3JvdXBJZD5qdW5pdDwvZ3JvdXBJZD4KICAgICAgIDxhcnRpZmFjdElkPmp1bml0PC9hcnRpZmFjdElkPgotICAgICAgPHZlcnNpb24+NC4xMTwvdmVyc2lvbj4KKyAgICAgIDx2ZXJzaW9uPjQuMTI8L3ZlcnNpb24+CiAgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+CiAgICAgPC9kZXBlbmRlbmN5PgogICA8L2RlcGVuZGVuY2llcz4KCgogCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgaXMgYW4gYXV0b21hdGVkIG1lc3NhZ2UgZnJvbSB0aGUgQXBhY2hlIEdpdCBTZXJ2aWNlLgpUbyByZXNwb25kIHRvIHRoZSBtZXNzYWdlLCBwbGVhc2UgbG9nIG9uIEdpdEh1YiBhbmQgdXNlIHRoZQpVUkwgYWJvdmUgdG8gZ28gdG8gdGhlIHNwZWNpZmljIGNvbW1lbnQuCiAKRm9yIHF1ZXJpZXMgYWJvdXQgdGhpcyBzZXJ2aWNlLCBwbGVhc2UgY29udGFjdCBJbmZyYXN0cnVjdHVyZSBhdDoKdXNlcnNAaW5mcmEuYXBhY2hlLm9yZwoKCldpdGggcmVnYXJkcywKQXBhY2hlIEdpdCBTZXJ2aWNlcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NzUxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBEZWMgIDYgMjI6MjU6NDggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzUxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEJFNzQ2MTBENTcKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAgNiBEZWMgMjAxNyAyMjoyNTo0OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg3MjY0IGludm9rZWQgYnkgdWlkIDUwMCk7IDYgRGVjIDIwMTcgMjI6MjU6NDggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg3MTc2IGludm9rZWQgYnkgdWlkIDUwMCk7IDYgRGVjIDIwMTcgMjI6MjU6NDggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NzE2NSBpbnZva2VkIGJ5IHVpZCA5OSk7IDYgRGVjIDIwMTcgMjI6MjU6NDggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZWMyLTUyLTIwMi04MC03MC5jb21wdXRlLTEuYW1hem9uYXdzLmNvbSAoSEVMTyBnaXRib3guYXBhY2hlLm9yZykgKDUyLjIwMi44MC43MCkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAwNiBEZWMgMjAxNyAyMjoyNTo0OCArMDAwMApGcm9tOiBHaXRCb3ggPGdpdEBhcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0dpdEh1Yl0gZG9uLXZpcCBvcGVuZWQgYSBuZXcgcHVsbCByZXF1ZXN0ICM5OiB1cGdyYWRlIHRvIEFTTSA2LjAgKGZpbmFsKQpNZXNzYWdlLUlEOiA8MTUxMjU5OTE0NzgzLjEwMDU5LjIyMzI0NzU1MDYxMDc2MzUyOTAuZ2l0Ym94QGdpdGJveC5hcGFjaGUub3JnPgoKZG9uLXZpcCBvcGVuZWQgYSBuZXcgcHVsbCByZXF1ZXN0ICM5OiB1cGdyYWRlIHRvIEFTTSA2LjAgKGZpbmFsKQpVUkw6IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2luLXRvb2xzL3B1bGwvOQogCiAKICAgVGhlIEFMUEhBIGRlcGVuZGVuY3kgY2F1c2VzIHByb2JsZW1zIHRvIHByb2plY3RzIHVzaW5nIEVuZm9yY2VyIHJ1bGVzLCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2plbmtpbnNjaS9qYWNvY28tcGx1Z2luL3B1bGwvOTIjaXNzdWVjb21tZW50LTM0OTQ1NzQ0MQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDkxMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gRGVjIDMxIDIzOjQ2OjU2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDkxMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDQzY5NzEwM0U0Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMzEgRGVjIDIwMTcgMjM6NDY6NTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxOTAzMCBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMSBEZWMgMjAxNyAyMzo0Njo1NiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTg5NTUgaW52b2tlZCBieSB1aWQgNTAwKTsgMzEgRGVjIDIwMTcgMjM6NDY6NTYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxODk0MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDMxIERlYyAyMDE3IDIzOjQ2OjU2IC0wMDAwClJlY2VpdmVkOiBmcm9tIGVjMi01Mi0yMDItODAtNzAuY29tcHV0ZS0xLmFtYXpvbmF3cy5jb20gKEhFTE8gZ2l0Ym94LmFwYWNoZS5vcmcpICg1Mi4yMDIuODAuNzApCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMzEgRGVjIDIwMTcgMjM6NDY6NTYgKzAwMDAKRnJvbTogR2l0Qm94IDxnaXRAYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtHaXRIdWJdIGhhemVuZGF6IGNvbW1lbnRlZCBvbiBhIGNoYW5nZSBpbiBwdWxsIHJlcXVlc3QgIzU6IFtET1hJQS01MzRdIE1pZ3JhdGUgbG9nZ2luZyB0byBTbDRqCk1lc3NhZ2UtSUQ6IDwxNTE0NzY0MDE1MzkuOTk4NS41NzUxMTg4OTk2MTcxOTE0ODc5LmdpdGJveEBnaXRib3guYXBhY2hlLm9yZz4KCmhhemVuZGF6IGNvbW1lbnRlZCBvbiBhIGNoYW5nZSBpbiBwdWxsIHJlcXVlc3QgIzU6IFtET1hJQS01MzRdIE1pZ3JhdGUgbG9nZ2luZyB0byBTbDRqClVSTDogaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1kb3hpYS9wdWxsLzUjZGlzY3Vzc2lvbl9yMTU5MTQ3ODY4CiAKIAoKICMjIyMjIyMjIyMKIEZpbGUgcGF0aDogZG94aWEtbW9kdWxlcy9kb3hpYS1tb2R1bGUtZm8vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL2RveGlhL21vZHVsZS9mby9Gb0FnZ3JlZ2F0ZVNpbmsuamF2YQogIyMjIyMjIyMjIwogQEAgLTEzMjIsMTIgKzEzMjIsMTIgQEAgcHJpdmF0ZSBTaW5rRXZlbnRBdHRyaWJ1dGVTZXQgZ2V0R3JhcGhpY3NBdHRyaWJ1dGVzKCBTdHJpbmcgbG9nbyApCiAgICAgICAgIH0KICAgICAgICAgY2F0Y2ggKCBJT0V4Y2VwdGlvbiBlICkKICAgICAgICAgewotICAgICAgICAgICAgZ2V0TG9nKCkuZGVidWcoIGUgKTsKKyAgICAgICAgICAgIGdldExvZygpLmRlYnVnKCBlLmdldE1lc3NhZ2UoKSApOwogCiBSZXZpZXcgY29tbWVudDoKICAgQHNsYWNoaWV3aWN6IEBtaWNoYWVsLW8gUHJvcGVyIGNvZGUgaGVyZSB3b3VsZCBiZSBgYGBnZXRMb2coKS5kZWJ1ZygiIiwgZSlgYGAuICBUaGF0IGFzc3VtZXMgeW91IHdhbnQgdGhlIGZ1bGwgc3RhY2sgdHJhY2UgYW5kIG5vdCBqdXN0IHRoZSBtZXNzYWdlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUaGlzIGlzIGFuIGF1dG9tYXRlZCBtZXNzYWdlIGZyb20gdGhlIEFwYWNoZSBHaXQgU2VydmljZS4KVG8gcmVzcG9uZCB0byB0aGUgbWVzc2FnZSwgcGxlYXNlIGxvZyBvbiBHaXRIdWIgYW5kIHVzZSB0aGUKVVJMIGFib3ZlIHRvIGdvIHRvIHRoZSBzcGVjaWZpYyBjb21tZW50LgogCkZvciBxdWVyaWVzIGFib3V0IHRoaXMgc2VydmljZSwgcGxlYXNlIGNvbnRhY3QgSW5mcmFzdHJ1Y3R1cmUgYXQ6CnVzZXJzQGluZnJhLmFwYWNoZS5vcmcKCgpXaXRoIHJlZ2FyZHMsCkFwYWNoZSBHaXQgU2VydmljZXMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDI5MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgT2N0IDIxIDEwOjIyOjUxIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI5MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA2Mzg0NTEwQzhECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMjEgT2N0IDIwMTcgMTA6MjI6NTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5NDgxMCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBPY3QgMjAxNyAxMDoyMjo1MSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTQ3MzcgaW52b2tlZCBieSB1aWQgNTAwKTsgMjEgT2N0IDIwMTcgMTA6MjI6NTEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NDcyNiBpbnZva2VkIGJ5IHVpZCA5OSk7IDIxIE9jdCAyMDE3IDEwOjIyOjUwIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAyMSBPY3QgMjAxNyAxMDoyMjo1MCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDAwQTgzMUEwMTY2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAyMSBPY3QgMjAxNyAxMDoyMjo1MCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xLjgKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEuOCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB5U21YamZZRHVPcTEgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsIDIxIE9jdCAyMDE3IDEwOjIyOjQ5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwMS5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyM10pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA3RkQwQjVGNDdECglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAyMSBPY3QgMjAxNyAxMDoyMjo0OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ1MyB3aXRoIE1FCglpZCBRQU5uMXcwMDUyMFVmZHkwM0FObkRoOyBTYXQsIDIxIE9jdCAyMDE3IDEyOjIyOjQ3ICswMjAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFNhdCwgMjEgT2N0IDIwMTcgMTI6MjI6NDcgKzAyMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBtb3ZpbmcgR2l0SHViIGlzc3VlIG5vdGlmaWNhdGlvbnMgdG8gaXNzdWVzQG1hdmVuLmEubwpEYXRlOiBTYXQsIDIxIE9jdCAyMDE3IDEyOjIyOjQ3ICswMjAwCk1lc3NhZ2UtSUQ6IDwxNTIyODk5LklXRVFvVGlHZkVAZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zNy1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCkN1cnJlbnRseSwgY29tbWVudHMgYXJlIHNlbnQgdG8gZGV2QG1hdmVuLmEubwoKPTQ2b3Igb3VyIGNsYXNzaWNhbCBvZmZpY2lhbCBKaXJhIGlzc3VlIHRyYWNrZXIsIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgdG89Cj0yMAppc3N1ZXNAbWF2ZW4uYS5vCgpJZiBub2JvZHkgb2JqZWN0cyAoNzJoIGFzIHVzdWFsKSwgSSdsbCBhc2sgaW5mcmEgdG8gc3dpdGNoIEdpdEh1YiBpc3N1ZT0yMApub3RpZmljYXRpb25zIHRvIGlzc2V1c0BtYXZlbi5hLm8KClJlZ2FyZHMsCgpIZXJ2PUU5CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQxNTMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE9jdCAgNiAxODowNToxMiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxNTMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQUYyQzMxMDFCMgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksICA2IE9jdCAyMDE3IDE4OjA1OjEyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTc4NzIgaW52b2tlZCBieSB1aWQgNTAwKTsgNiBPY3QgMjAxNyAxODowNToxMiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTc3NzEgaW52b2tlZCBieSB1aWQgNTAwKTsgNiBPY3QgMjAxNyAxODowNToxMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE3NzU1IGludm9rZWQgYnkgdWlkIDk5KTsgNiBPY3QgMjAxNyAxODowNToxMiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMDYgT2N0IDIwMTcgMTg6MDU6MTIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAyODRFNTE4MTEyQwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgIDYgT2N0IDIwMTcgMTg6MDU6MTEgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMS4zClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xLjMgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgVkpWNm5LTTNVb3g5IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJRnJpLCAgNiBPY3QgMjAxNyAxODowNTowOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDYuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjhdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMjc0NTU2MERDNAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgIDYgT2N0IDIwMTcgMTg6MDU6MDkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMTIgd2l0aCBNRQoJaWQgSko1NzF3MDBaMjBVZmR5MDNKNTdqbzsgRnJpLCAwNiBPY3QgMjAxNyAyMDowNTowOCArMDIwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBGcmksIDA2IE9jdCAyMDE3IDIwOjA1OjA4ICswMjAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IEplbmtpbnMgYW5kIE1hdmVuIDMuMC41IG9yIEpESyA3CkRhdGU6IEZyaSwgMDYgT2N0IDIwMTcgMjA6MDU6MDcgKzAyMDAKTWVzc2FnZS1JRDogPDE1MjI5ODU3LmsxRHlCYVI5TkxAZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zNS1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpJbi1SZXBseS1UbzogPENBRk5DVS05cWFOZVhVZXM3TytCeFNQb0FwRHk1TERPVUJha1QxYzFGPWg4NkxKYkJTd0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPDEwNTQ0NjE1LkI0aE8zUG52RXpAZ2lnYT4gPENBK25Qbk14OW4zMFF3VDZIMVBiZlZSeE4zaTl0VHZ5Zm49bzR4UXdFZzFCZXNfNndRd0BtYWlsLmdtYWlsLmNvbT4gPENBRk5DVS05cWFOZVhVZXM3TytCeFNQb0FwRHk1TERPVUJha1QxYzFGPWg4NkxKYkJTd0BtYWlsLmdtYWlsLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKSSB3YXMgZXhwZWN0aW5nIHRoZSB1c3VhbCBsaXRhbnkKCndoYXQgSSdtIG5vdCBjb25maWRlbnQgY3VycmVudGx5IHdpdGggcGlwZWxpbmUgb24gTWF2ZW4gY29yZSBpcyB0aGF0IHdlIGhhdj0KZT0yMApmb3IgZXhhbXBsZSB0aGUgIm1hdmVuLTMueC1qZW5raW5zZmlsZS9NTkctNjI0MiAtIGJ1aWxkICMxIC0gbnVsbCIgbWVzc2FnZSw9Cj0yMAp3aXRoIHRoaXMgIm51bGwiIHBhcnQgdGhhdCBtYWtlcyBtZSB3b25kZXIgaWYgd2UgYXJlIHVzaW5nIGl0IGFzIGV4cGVjdGVkLgoKQW5kIGZvciBsYXJnZSBtdWx0aS1tb2R1bGUgc3ZuIHRydW5rcyAodGhlIG9uZXMgd2UgZG9uJ3QgbWlncmF0ZSB0byBnaXQ6PTIwCm1haW5seSBwbHVnaW5zIGFuZCBzaGFyZWQpLCBpcyB0aGVyZSBhIHNvbHV0aW9uIHRvIHJlYnVpbGQganVzdCBjaGFuZ2VkPTIwCm1vZHVsZXM/CgppZGVhbGx5LCB0aGUgcmVidWlsZCB3aGVuIGEgU05BUFNIT1QgZGVwZW5kZW5jeSBpcyBwdWJsaXNoZWQgd291bGQgaGF2ZSBiZWU9Cm4gYT0yMApwbHVzLCBidXQgdGhpcyBpcyBzdWZmaWNpZW50bHkgYSByYXJlIHVzZSB0aGF0IEkgd29uJ3QgYmUgZXh0cmVtaXN0CgoKVGhlbiBJSVVDLCB0aGlzIG1pZ3JhdGlvbiBqb2IgaXMgb25lIGFkZGl0aW9uYWwgVE9ETyBmb3IgbWUuLi4KClJlZ2FyZHMsCgpIZXJ2PUMzPUE5CgpMZSB2ZW5kcmVkaSA2IG9jdG9icmUgMjAxNywgMTc6NDY6NTMgQ0VTVCBBcm5hdWQgSD1DMz1BOXJpdGllciBhID1DMz1BOWNyaXQ9CiA6Cj4gSSBhZ3JlZSB0aGF0IHdlIHNob3VsZCB1c2UgcGlwZWxpbmUgbm93ZGF5cwo+IHBlcmhhcHMgYSBzaGFyZWQgbGliIGlmIHdlIHdhbnQgdG8gc3RhbmRhcmRpemUgc29tZSBzdHVmZnMgYW5kIGEgc2V0IG9mCj4gbXVsdGktYnJhbmNoZXMgam9icyAob3Igb3JnIGZvbGRlciBidXQgaXQgcmVxdWlyZXMgR2l0SHViIDooICkKPj0yMAo+IE9uIEZyaSwgT2N0IDYsIDIwMTcgYXQgOToxNiBBTSwgU3RlcGhlbiBDb25ub2xseSA8Cj49MjAKPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+IE9uIEZyaSA2IE9jdCAyMDE3IGF0IDA2OjMyLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gPQp3cm90ZToKPiA+ID4gSSBqdXN0IGZpeGVkIGEgZmV3IGZhaWxpbmcgam9icyBbMV0gdG8gaGF2ZSBhZ2FpbiBhIHVzYWJsZSBKZW5raW5zLgo+ID4gPj0yMAo+ID4gPiBOb3cgSSdtIGZhY2luZyBzb21lIGlzc3VlcywgSSBzdXBwb3NlIGNhdXNlZCBieSBuZXdlciBKZW5raW5zIHZlcnNpb249CnM6Cj4gPiA+IC0gTWF2ZW4gMy4wLjUgY2F1c2VzIE5vU3VjaE1ldGhvZEVycm9yOiBvLmMucGxleHVzLnV0aWwueG1sLnB1bGwuCj4gPj0yMAo+ID4gTVhQYXJzZXIKPiA+PTIwCj4gPiA+IFsyXQo+ID4gPiAtIEkgaGFkIHRvIHN3aXRjaCB0byBKREsgOCBmb3IgbWF2ZW4tcGx1Z2luLXRvb2xzIGpvYiwgc2luY2UgSkRLIGNhdXM9CmVzCj4gPiA+IGZhaWx1cmVzIChsb29rcyBsaWtlIEplbmtpbnMgdXNlcyBhIGhhY2sgdG8gaW5qZWN0IEpESyA3IGFzIGEgdG9vbCB3aD0KaWxlCj4gPiA+IHRoZQo+ID4gPiBidWlsZCBKVk0gaXMgSmF2YSA4KQo+ID4gPj0yMAo+ID4gPiBTaG91bGQgd2UgZHJvcCBNYXZlbiAzLjAuNSBidWlsZHMgYW5kIEpESyA3Pwo+ID4gPiBOb3RpY2UgSSBkaWRuJ3QgY2hlY2sgd2hpY2ggaXMgdGhlIG1pbmltdW0gTWF2ZW4gdmVyc2lvbiByZXF1aXJlZC4uLgo+ID4gPj0yMAo+ID4gPiBPciBwZXJoYXBzIHNpbXBseSBkb24ndCB1c2UgdGhlIEplbmtpbnMgTWF2ZW4gcGx1Z2luIHdpdGggdGhpcyBNYXZlbgo+ID49MjAKPiA+IDMuMC41Cj4gPj0yMAo+ID4gPiBvcgo+ID4gPiBKREsgNyBjb25maWd1cmF0aW9uOiBkZWZhdWx0IGJ1aWxkIGFzIEplbmtpbnMgTWF2ZW4gcGx1Z2luIHdpdGggSkRLIDg9CiArCj4gPiA+IGxhdGVzdAo+ID4gPiBNYXZlbiwgYW5kIG90aGVyIGNvbmZpZ3VyYXRpb25zIGFzIHNjcmlwdGVkIGpvYnM/Cj4gPj0yMAo+ID4gaHR0cDovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuaWUvMjAxMy8xMS9qZW5raW5zLW1hdmVuLWpvYi0+ID4gdHlwZS1jb249CnNpZGVyZWQtZXZpbC5odG1sCj4gPiA8aHR0cDovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuaWUvMjAxMy8xMS9qZW5raW5zLT4gPiBtYXZlbi1qb2ItdHlwZS1jbz0KbnNpZGVyZWQtZXZpbC5odG1sP209M0QxPgo+ID49MjAKPiA+IFdlIHNob3VsZCBzdG9wIHVzaW5nIHRoZSBldmlsIGpvYiB0eXBlIGFzIGl0PUUyPTgwPTk5cyBtaW5pbXVtIEphdmEgdmVyPQpzaW9uIGlzCj4gPiBkaWN0YXRlZCBieSBKZW5raW5zPUUyPTgwPTk5IEphdmEgbWluaW11bS4KPiA+PTIwCj4gPiA+IFdlIG5lZWQgdG8gZGVmaW5lIG91ciBjb21tb24gc3RyYXRlZ3kgYW5kIGhhdmUgYSBjb25zaXN0ZW50Cj4gPiA+IGNvbmZpZ3VyYXRpb24KPiA+ID4gZm9yCj4gPiA+IGV2ZXJ5IGpvYiB1bmRlcnN0b29kIGJ5IGV2ZXJ5Ym9keQo+ID49MjAKPiA+IEkgcmVjb21tZW5kIEplbmtpbnNmaWxlIGFuZCB0aGUgYHdpdGhNYXZlbmAgd3JhcHBlcgo+ID49MjAKPiA+ID4gUmVnYXJkcywKPiA+ID49MjAKPiA+ID4gSGVydj1DMz1BOQo+ID4gPj0yMAo+ID4gPiBbMV0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuLwo+ID4gPj0yMAo+ID4gPiBbMl0KPiA+ID4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi0+ID49MjAKPiA+IHBsdWdpbi10b29scy1qZGstMS43LzE2Mi9jb25zb2xlCj4gPj0yMAo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj0yMAo+ID4gPiAtLQo+ID49MjAKPiA+IFNlbnQgZnJvbSBteSBwaG9uZQoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ2MzYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE5vdiAyOCAwNjo1MzowMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ2MzYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRDgxQjExMEUyQwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDA2OjUzOjAxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzExOTMgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggTm92IDIwMTcgMDY6NTM6MDEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDcwOTUxIGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE5vdiAyMDE3IDA2OjUzOjAxIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzA5NDAgaW52b2tlZCBieSB1aWQgOTkpOyAyOCBOb3YgMjAxNyAwNjo1MzowMCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMjggTm92IDIwMTcgMDY6NTM6MDAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBCQjI3ODE4MDc4QQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjggTm92IDIwMTcgMDY6NTI6NTkgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMS44ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xLjggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFJHVTZJb0sxZGNXZyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVR1ZSwgMjggTm92IDIwMTcgMDY6NTI6NTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDA3LnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI5XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDI4QTRFNUYyMzIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDA2OjUyOjU4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDY2IHdpdGggTUUKCWlkIGZKc3IxdzAwNTIwVWZkeTAzSnNyV3Y7IFR1ZSwgMjggTm92IDIwMTcgMDc6NTI6NTEgKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogVHVlLCAyOCBOb3YgMjAxNyAwNzo1Mjo1MSArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBGWUkgSU5GUkEtMTU1MjQgY3JlYXRlZCBmb3IgdGhlIGJldHRlciBKZW5raW5zIFVYCkRhdGU6IFR1ZSwgMjggTm92IDIwMTcgMDc6NTI6NTEgKzAxMDAKTWVzc2FnZS1JRDogPDE1MjY2MTcuM2NwMWNERE04S0BnaWdhPgpJbi1SZXBseS1UbzogPENBK25Qbk15YVFjTE9PbWgzNTVjQ19hbVM1TGMxU253MWd3YXo5cmozb2t6dnd1dFYxQUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk16djBuOVYwPWpnNFNBY1BBMCtNbkRrRmdDRjhSdkpDejJKeTZZK3Q9RkRGZ0BtYWlsLmdtYWlsLmNvbT4gPENBK25Qbk15QncxYUt6N09WZEJKY0IzNFpCUnI2SzljRTRrUlJ0Yk9TX0xXNWtQQ3VRQUBtYWlsLmdtYWlsLmNvbT4gPENBK25Qbk15YVFjTE9PbWgzNTVjQ19hbVM1TGMxU253MWd3YXo5cmozb2t6dnd1dFYxQUBtYWlsLmdtYWlsLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgphd2Vzb21lIQpJdCBldmVuIHNob3dzIHRoZSBvd2wgaWNvbiA6KQoKbm93LCBldmVyeSBidWlsZCAgbG9va3MgdG8gZmFpbCwgYW5kIEkgY2FuJ3Qgb3BlbiBCbHVlIE9jZWFuIHRvIHRyeSB0byBmaWd1PQpyZT0yMApvdXQgYXQgd2hpY2ggc3RlcC4gRnJvbSBsb2csIElJVUMsIHRoZXJlIGlzIGFuIGlzc3VlIHdpdGggSkRLIDk6IHRoYXQncyBpdD8KCldlJ3JlIHJlYWxseSBpbiB0aGUgcmlnaHQgZGlyZWN0aW9uOiBzb29uLCB3ZSdsbCBiZSByZWFkeSB0byBzdGFydCBwbHVnaW5zID0KKDQwPTIwCnBsdWdpbnMpIGFuZCBzaGFyZWQgKDIwIGNvbXBvbmVudHMpIG1pZ3JhdGlvbi4uLgoKUmVnYXJkcywKCkhlcnY9RTkKCkxlIGx1bmRpIDI3IG5vdmVtYnJlIDIwMTcsIDExOjE2OjAzIENFVCBTdGVwaGVuIENvbm5vbGx5IGEgPUU5Y3JpdCA6Cj4gUEFSVFkgUEFSVFkgUEFSVFkgVElNRQo+PTIwCj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvCj49MjAKPiBPbiAyMiBOb3ZlbWJlciAyMDE3IGF0IDA5OjQ4LCBTdGVwaGVuIENvbm5vbGx5IDwKPj0yMAo+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gU2NoZWR1bGVkIGZvciB0aGUgTm92ZW1iZXIgMjZ0aCB1cGdyYWRlOiBodHRwczovL2N3aWtpLmFwYWNoZS4KPiA+IG9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvSU5GUkEvSmVua2lucytQbHVnaW4rVXBncmFkZXMKPiA+PTIwCj4gPiBPbiAyMSBOb3ZlbWJlciAyMDE3IGF0IDE0OjQ2LCBBcm5hdWQgSD1FOXJpdGllciA8YWhlcml0aWVyQGdtYWlsLmNvbT4gdz0Kcm90ZToKPiA+PiB5ZWFoICEhCj4gPj49MjAKPiA+PiBPbiBUdWUsIE5vdiAyMSwgMjAxNyBhdCAyOjEwIFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+Pj0yMAo+ID4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9JTkZSQS0xNTUyNAo+ID4+ID49MjAKPiA+PiA+IEhlcnY9RTkgaXQgaXMgbmVhcmx5IHRpbWUgdG8gcGFydHkhCj4gPj49MjAKPiA+PiAtLQo+ID4+IC0tLS0tCj4gPj4gQXJuYXVkIEg9RTlyaXRpZXIKPiA+PiBodHRwOi8vYWhlcml0aWVyLm5ldAo+ID4+IE1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tCj4gPj4gVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0MDMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAgNCAxNDozMDoxMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0MDMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQjFFQTUxN0ZGOAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICA0IE5vdiAyMDE3IDE0OjMwOjExICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODA0ODQgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBOb3YgMjAxNyAxNDozMDoxMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODAzOTEgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBOb3YgMjAxNyAxNDozMDoxMSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgwMzgwIGludm9rZWQgYnkgdWlkIDk5KTsgNCBOb3YgMjAxNyAxNDozMDoxMSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDQgTm92IDIwMTcgMTQ6MzA6MTEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAzMEM4MzE4MDE1RgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMTQ6MzA6MTAgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMS4zClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xLjMgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgbFEtckx1eWZoX0xZIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAgNCBOb3YgMjAxNyAxNDozMDowOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDcuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjldKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQUJCOUQ2MEQzNgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMTQ6MzA6MDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkNDIgd2l0aCBNRQoJaWQgVnFXNzF3MDA3MjBVZmR5MDNxVzc2MzsgU2F0LCAwNCBOb3YgMjAxNyAxNTozMDowNyArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBTYXQsIDA0IE5vdiAyMDE3IDE1OjMwOjA3ICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IE1hdmVuIDQuMC4wCkRhdGU6IFNhdCwgMDQgTm92IDIwMTcgMTU6MzA6MDcgKzAxMDAKTWVzc2FnZS1JRDogPDE1NDk4NTYuSGUxTVNCeDNVU0BnaWdhPgpJbi1SZXBseS1UbzogPENBSDl1MTBudG1GQlpjVGg5WXZBYkVLZ0R1Sk45WGQ1eHVlcE80ZmlSNUJLUnF1WkJQZ0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk13RUg5WjJteXA3MXVhU3JkY3lMSlJGckUtVnJ0MjAxOTFyZDAxaCtVZmhqd0BtYWlsLmdtYWlsLmNvbT4gPENBKzI5OFVqcDZkWkxWMXlOcWJQQmM0ZldCRHpvekV4Y0NtN0Y1NkNuPUUtOUZhRGE4QUBtYWlsLmdtYWlsLmNvbT4gPENBSDl1MTBudG1GQlpjVGg5WXZBYkVLZ0R1Sk45WGQ1eHVlcE80ZmlSNUJLUnF1WkJQZ0BtYWlsLmdtYWlsLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpMZSBzYW1lZGkgNCBub3ZlbWJyZSAyMDE3LCAxNDo0Mzo0NiBDRVQgSm9obiBQYXRyaWNrIGEgPUU5Y3JpdCA6Cj4gSSd2ZSBnb3QgIGEgZmV3IHVwZGF0ZXMgSSBmZWVsIHdvdWxkIGJlIHVzZWZ1bCBmb3IgdGhlIG5leHQgbWFqb3IgdmVyc2lvbjsKPj0yMAo+IDEpIFBhY2thZ2luZyB0eXBlIGdlbmVyaWMgJ2FyY2hpdmUnLCBvciBzcGVjaWZpYyB6aXAgb3IgdGFyLmd6Cj4gLSBtYXliZSBhIHVzZXIgcHJvcGVydHkgdG8gZW5hYmxlIHppcCBhbmQvb3IgdGFyLmd6Cj49MjAKPiAyKSBQYWNrYWdpbmcgdHlwZSBnZW5lcmljICdhcHBsaWNhdGlvbicsIG9yIHNwZWNpZmljIHJwbSBvciBkZWIKPiAtIGluIGZ1dHVyZSBjb3VsZCBiZSBleHRlbmRlZCBmb3Igd2luZG93cyBpbnN0YWxsZXJzIHRvbwo+PTIwCj4gT3ZlciB0aGUgcGFzdCA2IHllYXJzIEkndmUgbWFpbmx5IGNyZWF0ZWQgamFyLCB3YXIgb3IgZWFyLCBidXQgZm9yCj4gZGVwbG95bWVudCB0aGUgc3RhbmRhcmQgaXMgYnVuZGxlIGl0IHVwIGludG8gYSB0YXIuZ3ogb3IgemlwLCBhbG9uZwo+IHdpdGggdGhlIGFuc2libGUgc2NyaXB0cyBvciBjdXN0b20gc2NyaXB0cy4gU28gSSB1c3VhbGx5IHVzZSBwb20KPiBwYWNrYWdpbmcgdGhlbiBhZGRpbmcgYXNzZW1ibHkgcGx1Z2luLCBqdXN0IGZlZWxzIHN0cmFuZ2UgZG9pbmcgdGhhdAo+IGFsbCB0aGUgdGltZSBhbmQgaXQgbWlnaHQgbWFrZSBpdCBtb3JlIHNpbXBsZXIgZm9yIGV2ZXJ5b25lLgpkbyB5b3UgaGF2ZSBzb21lIGRlbW9zIG9mIHN1Y2ggcGFja2FnaW5ncz8KCj49MjAKPiAzKSBDaGVja3N1bSwgc3dpdGNoIHRvIFNIQTMsIGRyb3AgbWQ1IGFuZCBzaGExLiBJZiB3ZSBjYXJlIGFib3V0Cj4gc2VjdXJpdHksIHdlIHNob3VsZCBrZWVwIHVwIHRvIGRhdGUgd2l0aCB3aGF0IGlzIGNvbnNpZGVyZWQgc2VjdXJlCj4gc3RpbGwuCj0yRDEKY2hlY2tzdW1zIGFyZSBjaGVja3N1bXMsIG5vdCBzZWN1cml0eQppZiB5b3Ugd2FudCBzZWN1cml0eSwgZG9uJ3QgbG9vayBhdCBjaGVja3N1bXMgYnV0IGF0IHNpZ25hdHVyZXMKClRoaXMgbWFrZXMgbWUgdGhpbmsgdGhhdCB3ZSBzaG91bGQgZmluZCBhIHdheSB0byBzaG93IHNlY3VyaXR5ICh3aXRoIHRoZXNlPQo9MjAKc2lnbmF0dXJlcyk6IEkgZG9uJ3Qga25vdyBwcmVjaXNlbHkgaG93LCBidXQgdGhhdCB3b3VsZCBkZWZpbml0ZWx5IGJlIHVzZWZ1bAoKPj0yMAo+IDMpIERlYmlhbiBzdHlsZSByZXBvIG1hbmFnZW1lbnQuIEluc3RlYWQgb2YgaGF2aW5nIGEgbWFzc2l2ZSBidWNrZXQgb2YKPiBhcnRlZmFjdHMsIHN0YXJ0IGhhdmluZyByZXBvJ3MgZWl0aGVyIGJhc2VkIHVwb24gamF2YSBjbGFzcyB2ZXJzaW9uLAo+IG9yIG1hdmVuIG1ham9yIHJlbGVhc2UgdmVyc2lvbi4gQWxzbyBzcGxpdCBtb3JlIHRoYW4ganVzdCByZWxlYXNlIGFuZAo+IHNuYXBzaG90LCBtYXliZSBjb3JlLCBwbHVnaW5zLCBnZW5lcmFsLi4uCj49MjAKPiBOb3Qgc3VyZSBleGFjdGx5IHRoZSBiZXN0IHNvbHV0aW9uLCBidXQgYXMgbWF2ZW4gY2VudHJhbCBoYXMgc3R1ZmYKPiBnb2luZyBiYWNrIHllYXJzIGFuZCB5ZWFycy4gSG93IG11Y2ggb2YgdGhlIG9sZCBzdHVmZiB3aWxsIGJlIHVzZWQgZm9yCj4gbmV3IHByb2plY3RzIGdvaW5nIGZvcndhcmQuCndoYXQncyB0aGUgb2JqZWN0aXZlPwp3aXRoIExpbnV4IGRpc3RyaWJ1dGlvbnMsIHRoZXJlIGFyZSBjb21wYXRpYmlsaXR5IGlzc3VlcyB0aGF0IHJlcXVpcmU9MjAKZGlmZmVyZW50IGFydGlmYWN0cywgYW5kIGFuIG9iamVjdGl2ZSB0byBrZWVwIGRpc3RybyBvbiBvbmUgQ0QvRFZECkJ1dCBKYXZhIGFuZCBjZW50cmFsIGRvbid0IGhhdmUgc3VjaCBjb25zaWRlcmF0aW9ucwoKPj0yMAo+IEFueXdheSwgdGhvc2UgYXJlIHNvbWUgb2YgbXkgdGhvdWdodHMsIGlmIHRoZWlyIGlzIGEgbW9yZSBmb3JtYWwgd2F5Cj4gb2Ygc3VnZ2VzdGluZyB0aGVtIGxldCBtZSBrbm93IGFuZCBJJ2xsIGJlIGhhcHB5IHRvIHJhaXNlIHRoZW0KPiBzZXBhcmF0ZWx5IGZvciBjb25zaWRlcmF0aW9uIGFuZCBtYXliZSBhbHNvIGRvIHNvbWUgcHVsbCByZXF1ZXN0cyBmb3IKPiB0aGVtLgpJIHRoaW5rIHRoZSBwYWNrYWdpbmcgaWRlYXMgZGVzZXJ2ZSBzb21lIGRlbW9zIHRvIHNlZSBpZiBzb21ldGhpbmcgY2FuIGJlIG09CmFkZT0yMApnZW5lcmljIGVub3VnaAoKUmVnYXJkcywKCkhlcnY9RTkKCj49MjAKPiBKb2huCj49MjAKPiBPbiA0IE5vdmVtYmVyIDIwMTcgYXQgMTM6MTgsIFBhdWwgSGFtbWFudCA8cGF1bEBoYW1tYW50Lm9yZz4gd3JvdGU6Cj4gPj4gPiAqMy4gTW9yZSBwbHVnZ2FibGUgZGVwZW5kZW5jeSByZXNvbHZlcjoqCj4gPj49MjAKPiA+PiBJIGFtIHdpbGxpbmcgdG8gbGV0IHRoaXMgYmUgb3B0aW9uYWwgc2NvcGUgZm9yIG5vdy4gTWF5IGJlIHlhbmtlZCBpZiB0PQpvbwo+ID4+IHJpc2t5IG9yIG5vdCByZWFkeSBpbiB0aW1lCj4gPj0yMAo+ID4gSSBkb24ndCBzZWUgaG93IHlvdSBjYW4gZXZlbiBtYWtlIGl0IG9wdGlvbmFsIHdpdGhvdXQgYSBwb20gc3BlY2lmaWVkIHc9CmF5Cj4gPiBvZiBzYXlpbmcgIm5vdCBtYXZlbiBjZW50cmFsLCB0aGlzIHdheS9wbGFjZSBpbnN0ZWFkIgo+PTIwCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDUxNS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgTm92IDE4IDAwOjE4OjM5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDUxNS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4ODg5MjEwMDhFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMTggTm92IDIwMTcgMDA6MTg6MzkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4MjE5NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBOb3YgMjAxNyAwMDoxODozOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODIxMTIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggTm92IDIwMTcgMDA6MTg6MzkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MjA5OSBpbnZva2VkIGJ5IHVpZCA5OSk7IDE4IE5vdiAyMDE3IDAwOjE4OjM4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAxOCBOb3YgMjAxNyAwMDoxODozOCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEVFNTFDMTgwODMzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAxOCBOb3YgMjAxNyAwMDoxODozNyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB0MHRpbGxxYXhTY3IgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsIDE4IE5vdiAyMDE3IDAwOjE4OjM2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwMS5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyM10pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBCRkMyRTVGQzgxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAxOCBOb3YgMjAxNyAwMDoxODozNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQwMiB3aXRoIE1FCglpZCBiQ0pUMXcwMEEyMFVmZHkwM0NKVDJLOyBTYXQsIDE4IE5vdiAyMDE3IDAxOjE4OjI4ICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFNhdCwgMTggTm92IDIwMTcgMDE6MTg6MjggKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogRG93bmxvYWQgbGlua3MKRGF0ZTogU2F0LCAxOCBOb3YgMjAxNyAwMToxODoyNyArMDEwMApNZXNzYWdlLUlEOiA8MTU1MjYwMS5xbG0wM2dDOEp0QGdpZ2E+CkluLVJlcGx5LVRvOiA8NTc3Mzg4NC5OdXV2MERLb1ZKQGdpZ2E+ClJlZmVyZW5jZXM6IDxvcC55OXVoNG55d2tka2hyckBkZXNrdG9wLTJraHNrNDQ+IDw1NzczODg0Lk51dXYwREtvVkpAZ2lnYT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpvaywgeGRvYy9kb3dubG9hZC54bWwudm0gd2FzIG1pc3NpbmcgZm9yIHRoaXMgbmV3IHBsdWdpbjogSSBhZGRlZCBpdCBhbmQ9MjAKbWFudWFsbHkgYWRkZWQgYSBnZW5lcmF0ZWQgaHRtbCByZXN1bHQgdG8gc3ZucHVic3ViIGxvY2F0aW9uIFsxXQoKdGhpcyBpcyBub3QgeWV0IHN1ZmZpY2llbnQ6IEkgZG9uJ3Qga25vdyB3aHkgZG93bmxvYWQuY2dpIHNjcmlwdCBkb2VzIG5vdCBmPQppbmQ9MjAKZG93bmxvYWQuaHRtbAoKdGhpcyBpcyB3b3JraW5nIG9uIG1haW4gTWF2ZW4gc2l0ZSBbMl0gZnJvbSBpdHMgb3duIHN2bnB1YnN1YiBsb2NhdGlvbiBbM10KCmFueSBoaW50PwoKUmVnYXJkcywKCkhlcnY9RTkKClsxXSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vbWF2ZW4vY29tcG9uZW50cy8KcGx1Z2lucy9tYXZlbi1qZGVwcnNjYW4tcGx1Z2luLwoKWzJdIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL2Rvd25sb2FkLmNnaQoKWzNdIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9tYXZlbi9jb250ZW50LwoKTGUgdmVuZHJlZGkgMTcgbm92ZW1icmUgMjAxNywgMTI6NDc6NTEgQ0VUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOgo+IHRoZSBkZWVwbGluayB1c2VkIHRvIHdvcms6IHRoYXQncyB0aGUgb2JqZWN0aXZlIG9mIG91cgo+ICJyZXNvdXJjZXMvZG93bmxvYWQuY2dpICsgeGRvYy9kb3dubG9hZC54bWwudm0iIHBhdHRlcm4gdGhhdCB3YXMgY3JlYXRlZAo+IHNvbWUgeWVhcnMgYWdvLgo+IGRvd25sb2FkLmNnaSBpcyBzdXBwb3NlZCB0byB1c2Ugc3RhbmRhcmQgQVNGIHNjcmlwdCB0aGF0IHVzZXMgZG93bmxvYWQuaHQ9Cm1sCj4gYXMgY29udGVudAo+PTIwCj4gSSBkb24ndCBrbm93IHdoeSB0aGlzIGRvZXMgbm90IHdvcmsgYW55IG1vcmUuCj49MjAKPiBJIHZhZ3VlbHkgcmVtZW1iZXIgc29tZXRoaW5nIGEgZmV3IHllYXJzIGFnbyBhYm91dCBleGVjdXRhYmxlIGJpdCwgc29tZQo+IGhlYWRhY2hlIEkgaGFkIGF0IHRoYXQgdGltZSB0byB0cnkgdG8gZml4IHdvcmtpbmcgd2l0aCBpbnRlcmVzdGVkIHBlb3BsZQo+IChpZS4gbm90IG1hbnksIGJ1dCBTZWJiIHdhcyBwcm9iYWJseSBvbmUgb2YgdGhlIGZldykuIFBlcmhhcHMgaXQncyB0aW1lIHRvCj4gcmV3b3JrIG9uIGl0OiBJJ2xsIHNlZSB0b25pZ2h0IGlmIEkgY2FuIGZpbmQgcmVmZXJlbmNlcyBvbiB0aGUgYW5hbHlzaXMKPiBhbHJlYWR5IGRvbmUgYXQgdGhhdCB0aW1lLgo+PTIwCj4gUmVnYXJkcywKPj0yMAo+IEhlcnY9RTkKPj0yMAo+IExlIHZlbmRyZWRpIDE3IG5vdmVtYnJlIDIwMTcsIDEyOjI3OjQ5IENFVCBSb2JlcnQgU2Nob2x0ZSBhID1FOWNyaXQgOgo+ID4gVGhpcyB0b3BpYyBkZXNlcnZlcyBhIHNlcGFyYXRlIG1haWx0aHJlYWQuCj4gPj0yMAo+ID4gUXVvdGluZyBTZWJiIG9uIGEgZGlmZmVyZW50IHRocmVhZDoKPiA+ICJUaGUgZG93bmxvYWQgbGluayBwb2ludHMgdG8gdGhlIHRvcC1sZXZlbCBvZiB0aGUgQVNGIG1pcnJvciBzeXN0ZW0uCj4gPj0yMAo+ID4gVGhpcyBtYWtlcyBpdCB2ZXJ5IGhhcmQgdG8gdXNlLiIKPiA+PTIwCj4gPiBBRkFJSyB0aGUgQVNGIHNheXMgdGhlcmUgc2hvdWxkIGJlIGEgZG93bmxvYWQgYnV0dG9uIGZvciBldmVyeSByZWxlYXNlZAo+ID4gcHJvZHVjdC4KPiA+IEluIGNhc2Ugb2YgTWF2ZW4gd2UncmUgdGFsa2luZyBhYm91dCBhIGxvdCBvZiBwcm9qZWN0cywgYW5kIGRvd25sb2Fkcwo+ID4gc2hvdWxkIGJlIHJlZGlyZWN0ZWQgdmlhIGEgbWlycm9yLgo+ID4gSSBkb24ndCB0aGluayBpdCBpcyBwb3NzaWJsZSB0byBkbyBhIGRlZXBsaW5rIHRvIGEgc3BlY2lmaWMgZm9sZGVyLgo+ID49MjAKPiA+IEFsc28sIGluIGNhc2Ugb2YgTWF2ZW4gcGx1Z2lucyBhbmQgb3RoZXIgZGVwZW5kZW5jaWVzIChhbGwgZXhjbHVkaW5nIHRoZQo+ID4gTWF2ZW4gZGlzdHJpYnV0aW9uIGl0c2VsZikgaXQgaXMga2luZCBvZiBzdHJhbmdlIHRvIHByb3ZpZGUgYSBkb3dubG9hZAo+ID4gbGluayB3aGVuIHdlIGNvdWxkIGFzc3VtZSB0aGF0IHRoZXkgb25seSB3YW50IHRvIGhhdmUgdGhlCj4gPiBwbHVnaW4vZGVwZW5kZW5jeSBYTUwgZnJhZ21lbnQuCj4gPj0yMAo+ID4gSSBhZ3JlZSB0aGF0IHRoZSBsaW5rIGlzIGtpbmQgb2YgdXNlbGVzcyByaWdodCBub3csIGJ1dCBhbHNvIHRoZSBiZXN0IHdlCj4gPiBjYW4gZG8gd2hlbiBwcm92aWRpbmcgYSBkaXJlY3QgZG93bmxvYWQgbGluay4KPiA+IElmIHRoZXJlJ3Mgbm8gd2F5IHRvIGRvIGEgZGVlcGxpbmssIEknZCBwcmVmZXIgdG8gcmVtb3ZlIGl0IGZyb20gdGhlIHBhPQpnZXMKPiA+IGFuZCBhbm5vdW5jZW1lbnRzLgo+ID49MjAKPiA+IHRoYW5rcywKPiA+IFJvYmVydAo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQyNzAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE9jdCAyMCAwNTo0MDoxOCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyNzAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMEVFMkZDQkIwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMjAgT2N0IDIwMTcgMDU6NDA6MTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyODUxMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBPY3QgMjAxNyAwNTo0MDoxNSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjgwMzkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgT2N0IDIwMTcgMDU6NDA6MTUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyODAxNiBpbnZva2VkIGJ5IHVpZCA5OSk7IDIwIE9jdCAyMDE3IDA1OjQwOjE0IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAyMCBPY3QgMjAxNyAwNTo0MDoxNCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEUxMEVGQzAzOTYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDIwIE9jdCAyMDE3IDA1OjQwOjEzICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuOTk5ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjk5OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVVSSUJMX0JMT0NLRUQ9MC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgSks2OE96bkZObkRJIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJRnJpLCAyMCBPY3QgMjAxNyAwNTo0MDoxMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMTMuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMzVdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQTYwQzA1RkMzOAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjAgT2N0IDIwMTcgMDU6NDA6MDkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkNzYgd2l0aCBNRQoJaWQgUGhnMjF3MDBKMjBVZmR5MDNoZzJweTsgRnJpLCAyMCBPY3QgMjAxNyAwNzo0MDowMiArMDIwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBGcmksIDIwIE9jdCAyMDE3IDA3OjQwOjAyICswMjAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogdXNlcnNAbWF2ZW4uYXBhY2hlLm9yZywgTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IE1hdmVuIERvY2tlciBJbWFnZXMKRGF0ZTogRnJpLCAyMCBPY3QgMjAxNyAwNzo0MDowMiArMDIwMApNZXNzYWdlLUlEOiA8MTU1ODIwNy5PWlMzSUJsZWhvQGdpZ2E+ClVzZXItQWdlbnQ6IEtNYWlsLzUuMi4zIChMaW51eC80LjEwLjAtMzctZ2VuZXJpYzsgS0RFLzUuMzEuMDsgeDg2XzY0OyA7ICkKSW4tUmVwbHktVG86IDxDQUptYnM4aVVPaC13PWFZQllDZjlCT19TSl93dVE0X3JZUHlPWG1aRmtwaXBaMVo1MlFAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQUpSdkZkby0zM1pmeGlGc0p3amlHUUpNWVQ1bXUzMWZxRDFmX3UzRlVRVG9Kdj1UdWdAbWFpbC5nbWFpbC5jb20+IDxDQStHMzVPM21ZSFhMdU1EOXdQMVpYbmc2NC04ZzV3dz14ZDdEazRFNzFZWllkTkdCZEFAbWFpbC5nbWFpbC5jb20+IDxDQUptYnM4aVVPaC13PWFZQllDZjlCT19TSl93dVE0X3JZUHlPWG1aRmtwaXBaMVo1MlFAbWFpbC5nbWFpbC5jb20+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCmF3ZXNvbWU6IHRoZXJlIGlzIHNvbWUgY29tbW9uIHByYWN0aWNlIHdlIHNob3VsZCBnZXQgaW50bwoKZG8geW91IGtub3cgaWYgdGhlcmUgc29tZSBkb2NzIHNvbWV3aGVyZT8KSSBzdXBwb3NlIHRoZXJlIGFyZSBzb21lIGNyZWRlbnRpYWxzIGFzc29jaWF0ZWQgdG8gcHVibGlzaGluZyB0byBEb2NrZXJodWIKClJlZ2FyZHMsCgpIZXJ2PUMzPUE5CgpMZSB2ZW5kcmVkaSAyMCBvY3RvYnJlIDIwMTcsIDExOjM5OjIyIENFU1QgTWF4aW0gU29sb2Rvdm5payBhID1DMz1BOWNyaXQgOgo+IEluIHRoaXMgY2FzZSBkb2NrZXJodWIgaXMgcHJlZmVyYWJsZSA6KQo+PTIwCj4gT24gRnJpLCBPY3QgMjAsIDIwMTcgYXQgMTE6MDcgQU0sIEJpbmR1bCBCaG93bWlrIDxiaW5kdWxiaG93bWlrQGdtYWlsLmNvbT4KPj0yMAo+IHdyb3RlOgo+ID4gTWF4aW0sCj4gPj0yMAo+ID4gT24gVGh1LCBPY3QgMTksIDIwMTcgYXQgNzo1NCBQTSwgTWF4aW0gU29sb2Rvdm5payA8c29sb21heDY2NkBnbWFpbC5jb20+Cj4gPj0yMAo+ID4gd3JvdGU6Cj4gPiA+IEhlbGxvLAo+ID4gPj0yMAo+ID4gPiBoZXJlIGlzIHRoZSBwbGFjZSBmb3IgQXBhY2hlIGRvY2tlciBpbWFnZXMgbWFuYWdlZCBieSBpbmZyYSBhbmQgQXBhY2hlCj4gPiA+IHByb2plY3RzIGh0dHBzOi8vYmludHJheS5jb20vYXBhY2hlLyA6KQo+ID49MjAKPiA+IEZyb20gd2hhdCBJIGhhdmUgc2Vlbiwgd2hpbGUgdGhlcmUgYXJlIDQgcHJvamVjdHMgd2l0aCBkb2NrZXIKPiA+IHJlcG9zaXRvcmllcyBvbiBiaW50cmF5LCB0aGVyZSBzZWVtIHRvIGJlIGEgbG90IG1vcmUgYXQgZG9ja2VyaHViIFsxXS4KPiA+IEkgZGlkIGEgcXVpY2sgc2VhcmNoIG9uIElORlJBIEpJUkEgYW5kIGZvdW5kIHRoYXQgaW5mcmEgaGFzIHNldCBhIGZldwo+ID4gcHJvamVjdHMgdXAgb24gZG9ja2VyaHViIHJlY2VudGx5IFsyXSwgZm9yIGV4YW1wbGUgSU5GUkEtMTQ3NTYgWzNdIGZvcgo+ID4gYm9va2tlZXBlci4KPiA+PTIwCj4gPiBCaW5kdWwKPiA+PTIwCj4gPiBbMV0gaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL2FwYWNoZS8KPiA+IFsyXSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9M0Rjb21wb25lbnQlMjAlCj4gPiAzRCUyMERvY2tlciUyMEFORCUyMHByb2plY3QlMjAlM0QlMjBJTkZSQQo+ID4gWzNdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvSU5GUkEtMTQ3NTYKPiA+PTIwCj4gPiA+IE9uIEZyaSwgT2N0IDIwLCAyMDE3IGF0IDEyOjMwIEFNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZj0KcmVlLmZyPgo+ID4gPj0yMAo+ID4gPiB3cm90ZToKPiA+ID4gPiBncmVhdCBpZGVhCj4gPiA+ID49MjAKPiA+ID4gPiBvaywgd2UgbmVlZCBhIGdpdCByZXBvIGF0IEFTRgo+ID4gPiA+PTIwCj4gPiA+ID4gd2hhdCBlbHNlPwo+ID4gPiA+IElzIHRoZXJlIHNvbWUgc29ydCBvZiByZWxlYXNlIHByb2Nlc3M/IHNvbWUgc29ydCBvZiBzb3VyY2UgdG8gcmVsZWE9CnNlPwo+ID4gPiA+PTIwCj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPj0yMAo+ID4gPiA+IEhlcnY9QzM9QTkKPiA+ID4gPj0yMAo+ID4gPiA+IExlIGpldWRpIDE5IG9jdG9icmUgMjAxNywgMTM6NDc6NDUgQ0VTVCBNaWtlIERyb2IgYSA9QzM9QTljcml0IDoKPiA+ID4gPiA+IFRoYW5rcyBmb3IgdGhlIHBvaW50ZXIsIENhcmxvcyEgSSBoYWQgc2VhcmNoZWQgdGhlIGFyY2hpdmVzLCBidXQKPiA+PTIwCj4gPiBtYXliZSBJCj4gPj0yMAo+ID4gPiA+ID4gZGlkbid0IGdvIGJhY2sgZmFyIGVub3VnaC4KPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBJIHRoaW5rIG1vdmluZyB0aGVzZSBEb2NrZXJmaWxlcyBpbnRvIGFuIEFTRiByZXBvIHdvdWxkIGJlIGdyZWF0ID0KZm9yCj4gPiA+ID49MjAKPiA+ID4gPiB0aGVpcgo+ID4gPiA+PTIwCj4gPiA+ID4gPiBtYWludGFpbmFiaWxpdHkuCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gVGhhbmtzLAo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IE1pa2UKPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBPbiAyMDE3LTEwLTE5IDAzOjUwLCBDYXJsb3MgU2FuY2hleiA8Yy4uLkBhcGFjaGUub3JnPiB3cm90ZToKPiA+ID4gPiA+ID4gQXJuYXVkIGlzIGNvcnJlY3QsIEkgc2VudCBhbiBlbWFpbCB0byB1c2Vyc0AgYmFjayBvbiBGcmksIE5vdiA3LAo+ID4gPiA+PTIwCj4gPiA+ID4gMjAxNCw+Cj4gPiA+ID49MjAKPiA+ID4gPiA+ID4gMDA6MjMgd2hlbiBJIGNyZWF0ZWQgdGhlIGltYWdlPgo+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiBPbiBUaHUsIE9jdCAxOSwgMjAxNywgMTE6MTIgQXJuYXVkIEg9RUY9QkY9QkRyaXRpZXIgPGFoLi4uQGdtYWk9CmwuY29tPgo+ID49MjAKPiA+IHdyb3RlOj4KPiA+PTIwCj4gPiA+ID4gPiA+ID4gVGhlc2UgaW1hZ2VzIGFyZSBraW5kbHkgbWFuYWdlZCBieSBhIFBNQyBtZW1iZXIgb2Ygb3VyIHByb2plY3QKPiA+ID4gPj0yMAo+ID4gPiA+IChDYXJsb3MpCj4gPiA+ID49MjAKPiA+ID4gPiA+IGJ1dD4KPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4geWVzIHRoZXkgYXJlbid0IG1hbmFnZWQgZGlyZWN0bHkgYnkgdGhlIHByb2plY3Q+Cj4gPiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gPiBXZSBjYW4gZWFzaWx5IHNlZSB3aXRoIGhpbSB0byBpbXByb3ZlIHRoaXMgSU1PLj4KPiA+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+IFdoZW4gaGUgc3RhcnRlZCB0aGF0IChzZXZlcmFsIHllYXJzIGFnbykgRG9ja2VyIHdhc24ndCB3aGF0IGl0Cj4gPiA+ID4gPiA+ID4gaXMKPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBub3dhZGF5cy4+Cj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+IFdpdGggZG9ja2VyIGJlaW5nIG1haW5zdHJlYW0gSSBhZ3JlZSB0aGF0IHdlIGNhbiByZWNvbnNpZGVyCj4gPj0yMAo+ID4gdGhpcy4+Cj4gPj0yMAo+ID4gPiA+ID4gPiA+IFRoZSBkb2NrZXIgaW1hZ2UgYnVpbGQvZGlzdHJpYnV0aW9uIGNvdWxkIHBlcmhhcHMgYmUgcGFydCBvZiA9Cm91cgo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IHJlbGVhc2U+Cj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+IHByb2Nlc3MuPgo+ID4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gV0RZVCBDYXJsb3MgPz4KPiA+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+IE9uIFRodSwgT2N0IDE5LCAyMDE3IGF0IDQ6MTYgQU0sIE1pa2UgRHJvYiA8bWQuLi5AYXBhY2hlLm9yZz4KPiA+ID4gPj0yMAo+ID4gPiA+IHdyb3RlOj4KPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+ID4gSSBndWVzcyB0aGUgbmF0dXJhbCBmb2xsb3ctb24gcXVlc3Rpb24gaXMgd2hldGhlciB0aGUgTWF2ZW4KPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBjb21tdW5pdHk+Cj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+ID4gd291bGQgY29uc2lkZXIgcHVibGlzaGluZyBhbiBvZmZpY2lhbCBzZXQgb2YgaW1hZ2VzPyBPcgo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IGFsdGVybmF0aXZlbHk+Cj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+ID4gd2hldGhlciB0aGV5IHNob3VsZCBzZW5kIGEgdGFrZWRvd24gbm90aWNlIHRvIHByb3RlY3QgdGhlaXIKPiA+PTIwCj4gPiBicmFuZAo+ID49MjAKPiA+ID4gPiA+IGFuZD4KPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gPiB0cmFkZW1hcmtzLi4uPgo+ID4gPiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gPiA+IE9uIDIwMTctMTAtMTggMTg6MzYsICJNYW5mcmVkIE1vc2VyIiA8bWEuLi5Ac2ltcGxpZ2lsaXR5LmNvPQptPgo+ID4gPiA+PTIwCj4gPiA+ID4gd3JvdGU6Pgo+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gPiA+IE5vLiBBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBnaXRodWIgVVJMIHRoaXMgaXMgTk9UIGFuIGFwYT0KY2hlCj4gPiA+ID49MjAKPiA+ID4gPiBVUkwuPgo+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9jYXJsb3NzZy9kb2NrZXItbWF2ZW4+Cj4gPiA+ID4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gPiA+IE1pa2UgRHJvYiB3cm90ZSBvbiAyMDE3LTEwLTE4IDE2OjMyOj4KPiA+ID4gPiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gPiA+ID4gPiBIZWxsbyw+Cj4gPiA+ID4gPiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gPiA+ID4gPiBBcmUgdGhlIGltYWdlcyBhdCBodHRwczovL2h1Yi5kb2NrZXIuY29tL3IvXy9tYXZlbi8KPiA+ID4gPj0yMAo+ID4gPiA+IGNvbnNpZGVyZWQgdG8KPiA+ID4gPj0yMAo+ID4gPiA+ID4gYmU+Cj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+ID4gb2ZmaWNpYWw+Cj4gPiA+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+ID4gPiA+IG1hdmVuIGRvY2tlciBpbWFnZXMgYW5kIGJsZXNzZWQvcHVibGlzaGVkIGJ5IHRoZSBQTUM/Pgo+ID4gPiA+ID4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gPiA+ID4gVGhhbmtzLD4KPiA+ID4gPiA+ID4gPiA+ID4gPiBNaWtlPgo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID49MjAKPiA+IC0tLS0tLS0tLT4KPiA+PTIwCj4gPiA+ID4gPiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogdXNlcnMtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLj0Kb3JnCj4gPj0yMAo+ID4gPiA+ID4gPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6Cj4gPiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Cj4gPj0yMAo+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj0yMAo+ID4gLS0tLS0tLS0tPgo+ID49MjAKPiA+ID4gPiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogdXNlcnMtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yPQpnPgo+ID4gPiA+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS49Cm9yZwo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID49MjAKPiA+IC0tLS0tLS0tLT4KPiA+PTIwCj4gPiA+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgo+ID4gPiA+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogdXNlcnMtaGVscEBtYXZlbi5hcGFjaGUub3I9Cmc+Cj4gPiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gPiAtLT4KPiA+ID4gPiA+ID4gPiAtLS0tLT4KPiA+ID4gPiA+ID4gPiBBcm5hdWQgSD1FRj1CRj1CRHJpdGllcj4KPiA+ID4gPiA+ID4gPiBodHRwOi8vYWhlcml0aWVyLm5ldD4KPiA+ID4gPiA+ID4gPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbT4KPiA+ID4gPiA+ID4gPiBUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyPgo+ID4gPiA+PTIwCj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KPTJELQo+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IHVzZXJzLXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID49MjAKPiA+ID4gLS0KPiA+ID4gV0JSCj4gPiA+IE1heGltIGFrYSBzb2xvbWF4Cj4gPj0yMAo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzODUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE5vdiAgMiAxNjozODo0MSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzODUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgM0M4RUExMEQyOAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsICAyIE5vdiAyMDE3IDE2OjM4OjQxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDYyNTEgaW52b2tlZCBieSB1aWQgNTAwKTsgMiBOb3YgMjAxNyAxNjozODo0MCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDYxNDQgaW52b2tlZCBieSB1aWQgNTAwKTsgMiBOb3YgMjAxNyAxNjozODo0MCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ2MTMzIGludm9rZWQgYnkgdWlkIDk5KTsgMiBOb3YgMjAxNyAxNjozODo0MCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMDIgTm92IDIwMTcgMTY6Mzg6NDAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBCOTI3N0Q5NjcxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAgMiBOb3YgMjAxNyAxNjozODozOSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGI1alRDSkNZYUNYbCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVRodSwgIDIgTm92IDIwMTcgMTY6Mzg6MzggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDA2LnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI4XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEQ5RDI0NUY1NjYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsICAyIE5vdiAyMDE3IDE2OjM4OjM3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDYzIHdpdGggTUUKCWlkIFY0ZVgxdzAwVTIwVWZkeTAzNGVYRHE7IFRodSwgMDIgTm92IDIwMTcgMTc6Mzg6MzEgKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogVGh1LCAwMiBOb3YgMjAxNyAxNzozODozMSArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBtaWdyYXRpbmcgc29tZSBjb2RlIHRvIEdpdApEYXRlOiBUaHUsIDAyIE5vdiAyMDE3IDE3OjM4OjMxICswMTAwCk1lc3NhZ2UtSUQ6IDwxNTYyMzQxLmNQRkhtNFlWQ0pAZ2lnYT4KSW4tUmVwbHktVG86IDxDQVBveUJxVDE0N2ZydWlIZHZIV2dqMnZzY0g0RzhRMHQxczk9d09Md1BjM0dSd3dydlFAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDw1ODc4MTEwLlRNRW90NlZFdXVAZ2lnYT4gPDQ2NTU1OTMuakRJR2kydVVaOEBnaWdhPiA8Q0FQb3lCcVQxNDdmcnVpSGR2SFdnajJ2c2NINEc4UTB0MXM5PXdPTHdQYzNHUnd3cnZRQG1haWwuZ21haWwuY29tPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCmZvciBmcmVuY2ggc3BlYWtpbmcgcGVvcGxlLCBJIGZvdW5kIGEgdmVyeSBpbnRlcmVzdGluZyBibG9nIHBvc3QgdGhhdCBsb29rZT0KZD0yMAp0byBtYXRjaCBvdXIgdXNlIGNhc2UgPTNEIGp1c3QgYSBjb2xsZWN0aW9uIG9mIGdpdCByZXBvcyB3aXRob3V0IGNyb3NzLXJlcG89Cj0yMApkZXZlbG9wbWVudCBpbiB1c3VhbCBjYXNlcwoKc2VlIGh0dHA6Ly93d3cueW9hbm5zY3Vsby5mci9naXQtcmVwby1vdXRpbC1nZXN0aW9uLW11bHRpcGxlcy1yZXBvc2l0b3JpZXMtPQphcnJhY2hlci1jaGV2ZXV4LwoKdGhlcmUgYXJlIHNvbWUgc3VidGxlIGV4cGxhbmF0aW9uIGFib3V0IGJyYW5jaCBkZXN5bmNocm9uaXphdGlvbjogSSBkaWRuJ3Q9Cj0yMApyZWFsbHkgdHJ5LCBidXQgSSBmZWVsIHdlIG1heSBiZSBoaXQKCkkgZGlkIG5vdCByZWFsbHkgZmluZCBtdWNoIHVzZWZ1bCBkb2Mgb24gR29vZ2xlIHJlcG86IEkgZG9uJ3QgaWYgaXQncyB0aGUgbj0KYW1lPTIwCm9mIHRoZSB0b29sIHRoYXQgaXMgdG9vIGdlbmVyaWMgZm9yIGEgc2VhcmNoIGVuZ2luZS4KCkJ1dCBhdCBsZWFzdCwgd2l0aCB0aGlzIGJsb2cgcG9zdCwgSSBmb3VuZCBleGFjdGx5IG91ciB1c2UgY2FzZS4KClJlZ2FyZHMsCgpIZXJ2PUU5CgpMZSBqZXVkaSAyIG5vdmVtYnJlIDIwMTcsIDA0OjUzOjE4IENFVCBPbGl2aWVyIExhbXkgYSA9RTljcml0IDoKPiBpbXByZXNzaXZlISEKPiB0aGFua3MgdG8gc2V0dXAgdGhpcyEKPj0yMAo+IENoZWVycwo+IE9saXZpZXIKPj0yMAo+IE9uIDIgTm92ZW1iZXIgMjAxNyBhdCAwMzo0OCwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdyb3Q9CmU6Cj4gPiBhbmQgaGVyZSBpcyB0aGUgR29vZ2xlIHJlcG8gZGVtbywgd2l0aCBldmVyeSBnaXQgcmVwbyBjb25maWd1cmVkIChldmVuID0KdGhlCj4gPiA2Cj4gPiB0ZXN0cyk6Cj4gPiBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tYWdncmVnYXRvcgo+ID49MjAKPiA+IGxvb2tzIHByb21pc2luZzogaWYgeW91IHVzZSB0aGUgYm9vdHN0cmFwcGluZyBjb21tYW5kcyBmcm9tIHRoZSByZWFkbWUsCj4gPiB5b3UKPiA+IHNob3VsZCBiZSBhYmxlIHRvIHVzZSB0aGUgcmVwb3NpdG9yaWVzIGluIGEgbmF0dXJhbCB3YXkgd2l0aCBiYXNpYyBnaXQKPiA+IGNvbW1hbmRzCj4gPiBJZiB5b3UgZG9uJ3QgcGxheSB3aXRoIGJyYW5jaGVzLCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gcnVuICJyZXBvIHN5bmMiID0KYXQKPiA+IGFueQo+ID4gdGltZQo+ID49MjAKPiA+IFBsZWFzZSB0ZXN0IGFuZCByZXBvcnQgaWYgeW91J3JlIGNvbnZpbmNlZCBvciBub3QKPiA+PTIwCj4gPiBJZiBpdCB3b3JrcyB3ZWxsLCBJJ2xsIHB1dCB0aGlzIG1hdmVuLWFnZ3JlZ2F0b3IgZ2l0IHJlcG8gaW4gR2l0Qm94IGFzID0KYW4KPiA+IG9mZmljaWFsIHdheSB0byBnZXQgZnVsbCBNYXZlbiBzb3VyY2UgKGxvb2tzIGFzIGdvb2QgYXMgdHJ1bmtzIGZyb20gc3ZuKQo+ID49MjAKPiA+IFJlZ2FyZHMsCj4gPj0yMAo+ID4gSGVydj1FOQo+ID49MjAKPiA+IExlIG1lcmNyZWRpIDEgbm92ZW1icmUgMjAxNywgMTI6MDk6NTggQ0VUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOgo+ID4gPiBhZGRpbmcgMiBtb3JlIHJlcG9zIHRvIHRoZSBsaXN0Ogo+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tZG94aWEtY29udmVydGVyCj4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1kb3hpYS1saW5rY2hlY2sKPiA+ID49MjAKPiA+ID4gTGUgbWVyY3JlZGkgMSBub3ZlbWJyZSAyMDE3LCAwNzoyODowMiBDRVQgSGVydj1FOSBCT1VURU1ZIGEgPUU5Y3JpdCA6Cj4gPiA+ID4gZm9yIGxhenkgcGVvcGxlLCBJIHRvb2sgdGltZSB0byBjcmVhdGUgdGhlIDQgcmVwbyBvbiBwZXJzb25hbCBHaXRIdWIKPiA+ID4gPiBzcGFjZToKPiA+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tYXBhY2hlLXBhcmVudAo+ID4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1wYXJlbnQKPiA+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tZGVmYXVsdC1za2luCj4gPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2hib3V0ZW15L21hdmVuLWZsdWlkby1za2luCj4gPiA+ID49MjAKPiA+ID4gPiBJIHdvbid0IGRvIHRoZSBzYW1lIGluIHRoZSBmdXR1cmUgZm9yIHRoZSAyNiBzaGFyZWQgYW5kIDQ1IHBsdWdpbnMsCj4gPj0yMAo+ID4gc2luY2UKPiA+PTIwCj4gPiA+ID4gbWFudWFsIHJlcG8gY3JlYXRpb24gaXMgbm90IGZ1bi4uLgo+ID4gPiA+PTIwCj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPj0yMAo+ID4gPiA+IEhlcnY9RTkKPiA+ID4gPj0yMAo+ID4gPiA+IExlIG1hcmRpIDMxIG9jdG9icmUgMjAxNywgMTY6MDg6MDEgQ0VUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOgo+ID4gPiA+ID4gQXMgeW91IHByb2JhYmx5IG5vdGljZWQsIEkgbWlncmF0ZWQgbWF2ZW4tZGlzdC10b29sIFsxXSB0byBnaXQsCj4gPiA+ID4gPiB1c2luZwo+ID4gPiA+ID4gc2VsZi0KPiA+ID4gPiA+IHNlcnZpY2UgR2l0Ym94IGZvciB0aGUgZW1wdHkgcmVwbyBjcmVhdGlvbiBhbmQgYSBtaWdyYXRlLXNhbmRib3guPQpzaAo+ID4gPiA+ID4gc2hlbGwKPiA+ID4gPiA+IHNjcmlwdCBbMl0gdG8gcG9wdWxhdGUgdGhlbSAoYWZ0ZXIgU2xpbmcgZXhhbXBsZSkKPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBJdCB3b3JrZWQgbGlrZSBhIGNoYXJtIQo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IElmIG5vYm9keSBvYmplY3RzLCBpbiA3MmgsIEknbGwgdXNlIG1pZ3JhdGUtcG9tLnNoIGFuZAo+ID49MjAKPiA+IG1pZ3JhdGUtc2tpbnMuc2gKPiA+PTIwCj4gPiA+ID4gPiB0bwo+ID4gPiA+ID4gY3JlYXRlIDQgbmV3IHJlcG9zOiBtYXZlbi1hcGFjaGUtcGFyZW50LCBtYXZlbi1wYXJlbnQsCj4gPiA+ID4gPiBtYXZlbi1kZWZhdWx0LXNraW4KPiA+ID4gPiA+IGFuZCBtYXZlbi1mbHVpZG8tc2tpbgo+ID4gPiA+ID4gUGxlYXNlIHRha2UgdGltZSB0byBleGVjdXRlIHRoZSBzY3JpcHRzIGZvciB5b3Vyc2VsZiBhbmQgY2hlY2sgdGg9CmF0Cj4gPj0yMAo+ID4gdGhlCj4gPj0yMAo+ID4gPiA+ID4gcmVzdWx0IGlzIG9rIGZvciB5b3UuCj4gPj0yMAo+ID4gPiA+ID4gSSBhbHJlYWR5IHByZXBhcmVkIG1pZ3JhdGUtcGx1Z2lucy5zaCBhbmQgbWlncmF0ZS1zaGFyZWQuc2ggc2NyaXA9CnRzOgo+ID4gSSdtCj4gPj0yMAo+ID4gPiA+ID4gd2FpdGluZyBmb3IgSmVua2lucyBpbnRlZ3JhdGlvbiByZXN1bHRzIGJlZm9yZSB0cnlpbmcgdG8gbWlncmF0ZQo+ID4gPiA+ID4gdGhpcwo+ID4gPiA+ID4gcGFydCwKPiA+ID4gPiA+IGJ1dCB5b3UgY2FuIGFsc28gdGFrZSB0aW1lIHRvIGNoZWNrIHRoYXQgdGhlIHJlc3VsdGluZyBnaXQgcmVwb3MKPiA+ID4gPiA+IGZyb20KPiA+ID4gPiA+IHRoZQo+ID4gPiA+ID4gc2NyaXB0cyBhcmUgZ29vZC4KPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IEhlcnY9RTkKPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBbMV0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1kaXN0LXRvb2wvCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gWzJdIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL21hdmVuL3NhbmRib3gvdHJ1bmsvc2NyaXB0cy9naXQvCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj0yMAo+ID4gLS0tLS0tLS0tCj4gPj0yMAo+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPj0yMAo+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0KPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID49MjAKPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDE2Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgT2N0ICA3IDExOjUwOjUwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDE2Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyODcwODEwQzYxCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMTE6NTA6NTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxOTgzMyBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE9jdCAyMDE3IDExOjUwOjQ0IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxOTc3MCBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE9jdCAyMDE3IDExOjUwOjQ0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTk3NTYgaW52b2tlZCBieSB1aWQgOTkpOyA3IE9jdCAyMDE3IDExOjUwOjQ0IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwNyBPY3QgMjAxNyAxMTo1MDo0NCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEUzRjEzMTgwN0VBCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNyBPY3QgMjAxNyAxMTo1MDo0MyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjMKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMyB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bRlJFRU1BSUxfUkVQTFk9MSwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsCglLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgODBkSmpicnJ0Zk40IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAgNyBPY3QgMjAxNyAxMTo1MDozOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDMuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjVdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNzg5M0Y1RjVGRAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMTE6NTA6MzggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkNTAgd2l0aCBNRQoJaWQgSmJxZDF3MDBDMjBVZmR5MDNicWRvTjsgU2F0LCAwNyBPY3QgMjAxNyAxMzo1MDozOCArMDIwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBTYXQsIDA3IE9jdCAyMDE3IDEzOjUwOjM4ICswMjAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBXQVIgUGx1Z2luIHZlcnNpb24gMy4yLjAKRGF0ZTogU2F0LCAwNyBPY3QgMjAxNyAxMzo1MDozNyArMDIwMApNZXNzYWdlLUlEOiA8MTU2Mjg1NS5tYXQ5YmVpY1VEQGdpZ2E+ClVzZXItQWdlbnQ6IEtNYWlsLzUuMi4zIChMaW51eC80LjEwLjAtMzUtZ2VuZXJpYzsgS0RFLzUuMzEuMDsgeDg2XzY0OyA7ICkKSW4tUmVwbHktVG86IDw2ZTUxZmUxNy0xODYzLWY3MzItZDdlYy0zYjIwNjcxOWE5OGVAZ214LmRlPgpSZWZlcmVuY2VzOiA8ZDMwZWE0NzYtMDc5NC1mMDk2LWNlNjEtNWZiNDFiMDNiOTZhQGdteC5kZT4gPDZlNTFmZTE3LTE4NjMtZjczMi1kN2VjLTNiMjA2NzE5YTk4ZUBnbXguZGU+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKSUlVQywgTWlrYWlsIE9zaXBvdiAobW9zaXBvdkBnbXguZGUpIGlzIHRoZSB1c3VhbCBNaWNoYWVsIE9zaXBvdiBvbiB0aGUgUE1DPQogOikKCnRoZW4gd2l0aCB5b3UgYW5kIG1lLCB3ZSBoYXZlIHRoZSAzIFBNQyB2b3RlcywgaXNuJ3QgaXQ/CgpSZWdhcmRzLAoKSGVydj1FOQoKTGUgc2FtZWRpIDcgb2N0b2JyZSAyMDE3LCAxMzowNzowOSBDRVNUIEthcmwgSGVpbnogTWFyYmFpc2UgYSA9RTljcml0IDoKPiBIaSwKPj0yMAo+IHRoZXJlIGlzIG1pc3Npbmcgb25lIFBNQyB2b3RlID8KPj0yMAo+IEtpbmQgcmVnYXJkcwo+IEthcmwgSGVpbnogTWFyYmFpc2UKPj0yMAo+IE9uIDMwLzA5LzE3IDE3OjU1LCBLYXJsIEhlaW56IE1hcmJhaXNlIHdyb3RlOgo+ID4gSGksCj4gPj0yMAo+ID4gV2Ugc29sdmVkIDMgaXNzdWVzOgo+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0zRDEyMzE9CjgxMjEmCj4gPiB2ZXJzaW9uPTNEMTIzNDEzNzIKPiA+PTIwCj4gPj0yMAo+ID4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9M0Rwcm9qZWN0JTIwJTNEJTIwTVdBUiUyMEFORD0KJTIwcmUKPiA+IHNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBEPQpFU0MKPiA+ICUyQyUyMHVwZGF0ZWQlMjBERVNDCj4gPj0yMAo+ID49MjAKPiA+IFN0YWdpbmcgcmVwbzoKPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzEKPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzEvb3JnL2FwYWNoPQplL20KPiA+IGF2ZW4vcGx1Z2lucy9tYXZlbi13YXItcGx1Z2luLzMuMi4wL21hdmVuLXdhci1wbHVnaW4tMy4yLjAtc291cmNlLXJlbGVhPQpzZS4KPiA+IHppcAo+ID49MjAKPiA+PTIwCj4gPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiA+IG1hdmVuLXdhci1wbHVnaW4tMy4yLjAtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6Cj4gPiA1YzY2MWY0NTU0NjE2MTQ3NDkxMDM2ZGZhYzY4OWJhOWRiOTBjZWMyCj4gPj0yMAo+ID49MjAKPiA+IFN0YWdpbmcgc2l0ZToKPiA+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLXdhci1wbHVnaW4tTEFURVNULwo+ID49MjAKPiA+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+ID4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPiA+PTIwCj4gPiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+ID49MjAKPiA+IFsgXSArMQo+ID4gWyBdICswCj4gPiBbIF0gLTEKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3NzQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIERlYyAxMyAwNTowMTozMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3NzQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMzA2MUMxNzMzQwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDEzIERlYyAyMDE3IDA1OjAxOjMxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjAwNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMyBEZWMgMjAxNyAwNTowMTozMCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTc1NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMyBEZWMgMjAxNyAwNTowMTozMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU3NDEgaW52b2tlZCBieSB1aWQgOTkpOyAxMyBEZWMgMjAxNyAwNTowMTozMCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMTMgRGVjIDIwMTcgMDU6MDE6MzAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBERDlDOTFBMTJDMgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTMgRGVjIDIwMTcgMDU6MDE6MjkgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBBSVNNVG1RVlVibm4gZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsIDEzIERlYyAyMDE3IDA1OjAxOjI3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwNi5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyOF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA1MTQ5MzVGQjU0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMyBEZWMgMjAxNyAwNTowMToyNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQxMiB3aXRoIE1FCglpZCBsSDFLMXcwMFMyMFVmZHkwM0gxTEUxOyBXZWQsIDEzIERlYyAyMDE3IDA2OjAxOjIwICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFdlZCwgMTMgRGVjIDIwMTcgMDY6MDE6MjAgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogR2l0IG1pZ3JhdGlvbiBuZXh0IHN0ZXBzCkRhdGU6IFdlZCwgMTMgRGVjIDIwMTcgMDU6NTg6MjggKzAxMDAKTWVzc2FnZS1JRDogPDE1ODEzNjUuc2I4ZzAwS01ZaUBnaWdhPgpJbi1SZXBseS1UbzogPENBK25Qbk15Ky1OdlBrbXB1NDJnTXo5d1FtK01ieHE9OVI2dUthdDFCRmtZQlpmTThOZ0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPDE5MDA1NTguR0Z4OVFsZmFFMkBnaWdhPiA8MjE0NTIzMC5INTdTc1hCa2VFQGdpZ2E+IDxDQStuUG5NeSstTnZQa21wdTQyZ016OXdRbStNYnhxPTlSNnVLYXQxQkZrWUJaZk04TmdAbWFpbC5nbWFpbC5jb20+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKdGhhbmsgeW91OiBvbmUgbGVzcyBpc3N1ZQoKYSBuZXcgZmluZGluZzogdGhlIEppcmEgbWVzc2FnZSBwb2ludHMgdG8gdGhlIEplbmtpbnMgYnVpbGQsIHdoeSBub3QKQnV0IGl0IGRvZXMgbm90IHBvaW50IHRvIEdpdCBjb21taXQgWzFdCgp0aGUgbGluayB0byB0aGUgZ2l0IGNvbW1pdCBpcyB2ZXJ5IHVzZWZ1bCB0byB0cmFjayBob3cgdGhlIGZpeCB3YXMgZG9uZSwgYW49CmQ9MjAKcmVtYWlucyB2YWxpZCBvbiBhIGxvbmcgcGVyaW9kICh3aGljaCBpcyBub3QgdGhlIGNhc2Ugb2YgdGhlIEplbmtpbnMgYnVpbGQpCgpJcyBpdCBwb3NzaWJsZSB0byBoYXZlIHRoaXMgaW4gb3VyIHN0YW5kYXJkIGJ1aWxkLCBwbGVhc2U/CgpSZWdhcmRzLAoKSGVydj1FOQoKWzFdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvRE9YSUFTSVRFVE9PTFMtMTgyCgpMZSBsdW5kaSAxMSBkPUU5Y2VtYnJlIDIwMTcsIDIxOjI5OjE1IENFVCBTdGVwaGVuIENvbm5vbGx5IGEgPUU5Y3JpdCA6Cj4gT24gU3VuIDEwIERlYyAyMDE3IGF0IDA5OjU5LCBIZXJ2PUU5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3JvdD0KZToKPiA+IGhlcmUgaXMgYSBsaXN0IG9mIHN0cmFuZ2UgaXNzdWVzIGluIENJIGpvYnM6Cj4gPj0yMAo+ID4gLSBEb3hpYSBTaXRldG9vbHMgaXMgZmFpbGluZyBhdCBjaGVja291dCBbMV0KPiA+PTIwCj4gPiAtIE1hdmVuIGNvcmUgYnJhbmNoZXMgZmFpbCBpbiBtYXZlbi13aXAgWzJdIHdoaWxlIHRoZSBtdWx0aS1icmFuY2ggZG9lcwo+ID4gbm90Cj4gPiBmYWlsIFszXTogQUZBSUssIHNhbWUgSmVua2lucyBmaWxlcyBhcmUgdXNlZCwgaXNuJ3QgaXQ/Cj49MjAKPiBVYnVudHUtNCB3YXMgaGF2aW5nIGlzc3Vlcwo+PTIwCj4gPiBSZWdhcmRzLAo+ID49MjAKPiA+IEhlcnY9RTkKPiA+PTIwCj4gPiBbMV0KPiA+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tYm94L2pvYi9tYXZlbi1kPQpveGkKPiA+IGEtc2l0ZXRvb2xzL2pvYi9tYXN0ZXIvNC9jb25zb2xlCj4gPj0yMAo+ID4gWzJdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4td2lwL2pvYi9tYXY9CmVuLwo+ID49MjAKPiA+IFszXQo+ID4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi0zLngtamVua2luc2ZpbGUvCj4gPj0yMAo+ID4gTGUgZGltYW5jaGUgMTAgZD1FOWNlbWJyZSAyMDE3LCAwNjoyOToyMCBDRVQgSGVydj1FOSBCT1VURU1ZIGEgPUU5Y3JpdCA6Cj4gPiA+IHllcywgYW5kIDgzIG1hdmVuLWJveCBDSSBqb2JzIFsxXQo+ID4gPj0yMAo+ID4gPiBzb21lIENJIGZhaWx1cmVzIGFyZSBub3QgcmVhbGx5IGV4cGVjdGVkLCBidXQgaW4gZ2VuZXJhbCwgdGhlIHJlc3VsdCA9CmlzCj4gPj0yMAo+ID4gZ29vZAo+ID49MjAKPiA+ID4gaXQncyB0aW1lIGZvciBldmVyeWJvZHkgdG8gY2hlY2sgaGlzIGZhdm9yaXRlIHBsdWdpbiBvciBzaGFyZWQgY29tcG9uPQplbnQKPiA+PTIwCj4gPiBhbmQKPiA+PTIwCj4gPiA+IGRvIHRoZSBsaXR0bGUgZml4ZXM6IHRoZSBnbG9iYWwgbWlncmF0aW9uIGlzIGRvbmUKPiA+ID49MjAKPiA+ID4gYW5kIGl0J3MgdGltZSBhbHNvIHRvIHN0YXJ0IHJldmlld2luZyBQUnMgYW5kIG1lcmdpbmc6IHRoaXMgd2FzIHRoZSBiPQppZwo+ID4gPiBvYmplY3RpdmUgd2l0aCBHaXQgbWlncmF0aW9uCj4gPiA+PTIwCj4gPiA+IFJlZ2FyZHMsCj4gPiA+PTIwCj4gPiA+IEhlcnY9RTkKPiA+ID49MjAKPiA+ID4gWzFdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tYm94Lwo+ID4gPj0yMAo+ID4gPiBMZSBzYW1lZGkgOSBkPUU5Y2VtYnJlIDIwMTcsIDE3OjA2OjA5IENFVCBTdGVwaGVuIENvbm5vbGx5IGEgPUU5Y3JpdCA6Cj4gPiA+ID4gSSBzZWUgd2UgaGF2ZSBhIGxhcmdlIG51bWJlciBvZiByZXBvcyBub3cgb24gZ2l0Ym94IDstKQo+ID4gPiA+PTIwCj4gPiA+ID4gT24gVGh1IDcgRGVjIDIwMTcgYXQgMDc6MDAsIEhlcnY9RTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID49MjAKPiA+IHdyb3RlOgo+ID4gPiA+ID4gb2ssIEkgZGlkbid0IHVwZGF0ZSBteSByZXBvIGNsb25lOiBub3cgdGhlIHJ1bi1pdHMgcHJvZmlsZSBpcwo+ID49MjAKPiA+IGFjdGl2YXRlZAo+ID49MjAKPiA+ID4gPiA+IHRoZW4gdGhlIHBsYW4gc2hvdWxkIGp1c3QgY29uZmlybSAiaXQgd29ya3MhIiA6KQo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IGFuZCBmaW5kIHdoaWNoIGpvYnMgYXJlIHNwZWNpYWwsIGxpa2UgbWF2ZW4tZGlzdC10b29sICh3aGljaCBoYXMgPQp0bwo+ID49MjAKPiA+IGJlCj4gPj0yMAo+ID4gPiA+ID4gc2NoZWR1bGVkIGRhaWx5IGluc3RlYWQgb2YgY29kZSBjaGFuZ2UsIGFuZCBvbmUgcGxhdGZvcm0gb25seSkKPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IEhlcnY9RTkKPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBMZSBtZXJjcmVkaSA2IGQ9RTljZW1icmUgMjAxNywgMjM6NTg6NDUgQ0VUIFN0ZXBoZW4gQ29ubm9sbHkgYSA9Cj1FOWNyaXQgOgo+ID4gPiA+ID4gPiBPbiBXZWQgNiBEZWMgMjAxNyBhdCAyMjozOCwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWU9Cj0yRWZyPgo+ID49MjAKPiA+IHdyb3RlOgo+ID4gPiA+ID4gPiA+IE5vdyB0aGF0IHdlIGhhdmUgMiBBU0YgT3JnYW5pemF0aW9uIEplbmtpbnMgam9icyAob25lIGZvciBnaXQ9CmJveAo+ID49MjAKPiA+IFsxXQo+ID49MjAKPiA+ID4gPiA+IGFuZAo+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gPiBvbmUKPiA+ID4gPiA+ID4gPiBmb3IgZ2l0LXdpcDogdGhhbmsgeW91IFN0ZXBoZW4pIGFuZCB0aGF0IGl0IGxvb2tzIHF1aXRlCj4gPj0yMAo+ID4gc3VjY2Vzc2Z1bCwKPiA+PTIwCj4gPiA+ID4gPiBsZXQncwo+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gPiBwbGFuCj4gPiA+ID4gPiA+ID4gdGhlIG5leHQgc3RlcHMuCj4gPiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gPiBIZXJlIGlzIHdoYXQgSSBzZWU6Cj4gPiA+ID4gPiA+ID4gMS4gcmVtb3ZhbCBvZiBoYW5kLWRlZmluZWQgSmVua2lucyBqb2JzIHRoYXQgYXJlIG5vdyBkdXBsaWNhdD0KZXMKPiA+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+IDIuIHByZXBhcmF0aW9uIG9mIHRoZSA2MCBuZXcgZW1wdHkgZ2l0IHJlcG9zIGZvciBzaGFyZWQgJgo+ID4gPiA+ID4gPiA+IHBsdWdpbnMKPiA+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+IDMuIG1pZ3JhdGlvbiBvZiB0aGUgMSBzaGFyZWQgY29tcG9uZW50IGFuZCAxIHBsdWdpbiB1c2luZwo+ID4gPiA+ID4gPiA+IG1pZ3JhdGUtKi5zaAo+ID4gPiA+ID4gPiA+IHNjcmlwdHMKPiA+ID4gPiA+ID4gPiBbM10gdG8gdGVzdCBhbmQgZXZlbnR1YWxseSByZXdvcmsgdGhlIEplbmtpbnNmaWxlIChJIHN1cHBvc2UgPQppdAo+ID49MjAKPiA+IHdpbGwKPiA+PTIwCj4gPiA+ID4gPiA+ID4gcmVxdWlyZQo+ID4gPiA+ID4gPiA+IHNvbWUgbGl0dGxlIGNoYW5nZSwgdG8gcnVuIGFkZCAicnVuLWl0cyIgcHJvZmlsZSkKPiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gQXMgZmFyIGFzIEkgcmVjYWxsLCBJIGFkZGVkIC1QK3J1bi1pdHMgYWxyZWFkeQo+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiBGb3IgdGhlIHBsdWdpbiwgSSdkIGxpa2UgdG8gZG8gdGhlIGpvYiBmb3IgbWF2ZW4tc2l0ZS1wbHVnaW4sCj4gPj0yMAo+ID4gc2luY2Ugd2UKPiA+PTIwCj4gPiA+ID4gPiA+ID4gZXhwZWN0Cj4gPiA+ID4gPiA+ID4gdG8gcmVsZWFzZSBpdCBzb29uLgo+ID4gPiA+ID4gPiA+IEZvciB0aGUgc2hhcmVkIGNvbXBvbmVudCwgSSBkb24ndCBrbm93IGlmIHRoZXJlIGlzIGEgYmVzdAo+ID49MjAKPiA+IGNhbmRpZGF0ZQo+ID49MjAKPiA+ID4gPiA+ID4gPiA0LiBvbmNlIHByZXZpb3VzIHN0ZXAgaXMgb2ssIGRvIHRoZSBmdWxsIG1pZ3JhdGlvbjogaWYgdGhlcmUgPQphcmUKPiA+ID4gPiA+ID4gPiB2b2x1bnRlZXJzCj4gPiA+ID4gPiA+ID4gZm9yIGhlbHBpbmcsIHRoYXQgd291bGQgYmUgZ3JlYXQsIHNpbmNlIHBvcHVsYXRpbmcgNjAgZ2l0IHJlcD0Kb3MKPiA+ID4gPiA+ID4gPiB3b24ndAo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IGJlCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+IHJlYWxseSBmdW4uLi4KPiA+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+IEFuZCBhcyBwYXJ0IG9mIDYwIGVtcHR5IGdpdCByZXBvcyBjcmVhdGlvbiwgSSBwcm9wb3NlIHRvIG1pZ3I9CmF0ZQo+ID49MjAKPiA+IHRoZQo+ID49MjAKPiA+ID4gPiA+ID4gPiAiR29vZ2xlCj4gPiA+ID4gPiA+ID4gcmVwbyBtYW5pZmVzdCIgbWF2ZW4tYWdncmVnYXRvciBbNF0gdG8gQVNGOiBteSBwZXJzb25hbCB1c2UgaD0KYXMKPiA+PTIwCj4gPiBiZWVuCj4gPj0yMAo+ID4gPiA+ID4gcXVpdGUKPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gc3VjY2Vzc2Z1bCwgSSBob3BlIGl0J3MgdGhlIHNhbWUgZm9yIG90aGVycy4gUGVyaGFwcyB0aGVyZSBhcmUKPiA+ID4gPiA+ID4gPiBiZXR0ZXIKPiA+ID4gPiA+ID4gPiBpZGVhcwo+ID4gPiA+ID4gPiA+IGZvciBpdHMgbmFtZTogbWF2ZW4tYWdncmVnYXRvcgo+ID4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gQW55IG90aGVyIGlkZWE/IGFueSBvYmplY3Rpb24/Cj4gPiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gSGVydj1FOQo+ID4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gWzFdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tYj0Kb3gvCj4gPiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gPiBbMl0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi13PQppcC8KPiA+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+IFszXQo+ID49MjAKPiA+IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL21hdmVuL3NhbmRib3gvdHJ1bmsvc2NyaXB0cy9naXQvCj4gPj0yMAo+ID4gPiA+ID4gPiA+IFs0XSBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tYWdncmVnYXRvcgo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj0yMAo+ID4gPiA+ID4gPiA+IC0KPiA+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+IC0tCj4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQo9MkQtLQo+ID4gPiA+ID4gLQo+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiAtLQo+ID4gPiA+PTIwCj4gPiA+ID4gU2VudCBmcm9tIG15IHBob25lCj4gPiA+PTIwCj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj0yMAo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID49MjAKPiA+IC0tCj49MjAKPiBTZW50IGZyb20gbXkgcGhvbmUKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzODY0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBTZXAgIDQgMTc6Mzk6MDIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzODY0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEREOEREMUE2MUEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAgNCBTZXAgMjAxNyAxNzozOTowMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE5NTcxIGludm9rZWQgYnkgdWlkIDUwMCk7IDQgU2VwIDIwMTcgMTc6Mzk6MDEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE5NDUzIGludm9rZWQgYnkgdWlkIDUwMCk7IDQgU2VwIDIwMTcgMTc6Mzk6MDAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxOTQ0MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDQgU2VwIDIwMTcgMTc6Mzk6MDAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDA0IFNlcCAyMDE3IDE3OjM5OjAwICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQjEyOTcxODI4QzUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICA0IFNlcCAyMDE3IDE3OjM4OjU5ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEuMwpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMS4zIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgS0FNX05VTVNVQkpFQ1Q9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDNsSVJJUk1TWGFWciBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgIDQgU2VwIDIwMTcgMTc6Mzg6NTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDA1LnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI3XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDVDOTRFNjJGNUYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICA0IFNlcCAyMDE3IDE3OjI3OjIzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yNDUuMjI1LjMxXSkKCWJ5IG13aW5mNWQ0MCB3aXRoIE1FCglpZCA1VlRHMXcwMEowaEdQdjIwM1ZURzMyOyBNb24sIDA0IFNlcCAyMDE3IDE5OjI3OjE3ICswMjAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IE1vbiwgMDQgU2VwIDIwMTcgMTk6Mjc6MTcgKzAyMDAKWC1NRS1JUDogODYuMjQ1LjIyNS4zMQpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBDb21waWxlciBQbHVnaW4gdmVyc2lvbiAzLjcuMApEYXRlOiBNb24sIDA0IFNlcCAyMDE3IDE5OjI3OjE2ICswMjAwCk1lc3NhZ2UtSUQ6IDwxNTgyMTk0LlVXNjd4NDFnY0FAZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zMy1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpJbi1SZXBseS1UbzogPG9wLnk1djNkNnEya2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpSZWZlcmVuY2VzOiA8b3AueTV2M2Q2cTJrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKKzEKClJlZ2FyZHMsCgpIZXJ2PUU5CgpMZSB2ZW5kcmVkaSAxIHNlcHRlbWJyZSAyMDE3LCAxNTo1MDoyMCBDRVNUIFJvYmVydCBTY2hvbHRlIGEgPUU5Y3JpdCA6Cj4gSGksCj49MjAKPiBXZSBzb2x2ZWQgNiBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0zRDEyMzE3Mj0KMjUmdmUKPiByc2lvbj0zRDEyMzQxMjY2JnN0eWxlTmFtZT0zRFRleHQKPj0yMAo+IFRoZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlM0QlMjAxMjMxNzIyNSUyMEE9Ck5EJTIwCj4gc3RhdHVzJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDCj49MjAKPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM1OS8KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zZXJ2aWNlL2xvY2FsL3JlcG9zaXRvcmllcy9tYXZlbi0xMzU5L2NvbnRlPQpudC8KPiBvcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4tY29tcGlsZXItcGx1Z2luLzMuNy4wL21hdmVuLWNvbXBpbGVyLXBsdWdpPQpuLTMKPiAuNy4wLXNvdXJjZS1yZWxlYXNlLnppcAo+PTIwCj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gbWF2ZW4tY29tcGlsZXItcGx1Z2luLTMuNy4wLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOgo+IDExNDhkOGExZjg5ZTY5MDBhZmIwY2ExZGJmNzRmNjQ5MzI0MDJjZmQKPj0yMAo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1jb21waWxlci1wbHVnaW4tTEFURVNULwo+PTIwCj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPj0yMAo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj49MjAKPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3OTUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIERlYyAxOSAxMDo1NDoxOSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3OTUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOUE3OEYxMEM1NAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDE5IERlYyAyMDE3IDEwOjU0OjE5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTA4MjIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTkgRGVjIDIwMTcgMTA6NTQ6MTkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUwNzM5IGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IERlYyAyMDE3IDEwOjU0OjE5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTA3MjggaW52b2tlZCBieSB1aWQgOTkpOyAxOSBEZWMgMjAxNyAxMDo1NDoxOCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMTkgRGVjIDIwMTcgMTA6NTQ6MTggKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA2NTg4QUM0NDAzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxOSBEZWMgMjAxNyAxMDo1NDoxOCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDEuNzk5ClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MS43OTkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgVGxhelJ5R0NQS1RPIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVHVlLCAxOSBEZWMgMjAxNyAxMDo1NDoxNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDQuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjZdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgREY1OUE1RjI5NwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTkgRGVjIDIwMTcgMTA6NTQ6MTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMDggd2l0aCBNRQoJaWQgbm11OTF3MDA3MjBVZmR5MDNtdTljUDsgVHVlLCAxOSBEZWMgMjAxNyAxMTo1NDowOSArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBUdWUsIDE5IERlYyAyMDE3IDExOjU0OjA5ICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtJTVBPUlRBTlRdIFJlOiBHaXQgbWlncmF0aW9uIG5leHQgc3RlcHMKRGF0ZTogVHVlLCAxOSBEZWMgMjAxNyAxMTo1NDowOCArMDEwMApNZXNzYWdlLUlEOiA8MTU5MDY2My5WbFdHb0ltU2F6QGdpZ2E+CkluLVJlcGx5LVRvOiA8Q0FQb3lCcVNwaVF1VThSMV90d1g3aXBSc0pEb0RieEFWNE5aaEd1c3ppK0RLUTFKcHR3QG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8MTkwMDU1OC5HRng5UWxmYUUyQGdpZ2E+IDwyNjk4NjE2Lmh4Wmtrank5ZHBAZ2lnYT4gPENBUG95QnFTcGlRdVU4UjFfdHdYN2lwUnNKRG9EYnhBVjROWmhHdXN6aStES1ExSnB0d0BtYWlsLmdtYWlsLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpvaCwgSSBmb3Jnb3QgdG8gcHVzaCAod2FzIHdvcmtpbmcgcGVyZmVjdGx5IGZvciBtZSBsb2NhbGx5Li4uKTogZG9uZQoKc2hvdWxkIEkgbWlncmF0ZSB0aGlzIHJlcG8gdG8gQVNGPwpzYW1lIG5hbWUgIm1hdmVuLWFnZ3JlZ2F0b3IuZ2l0Ij8gb3IgYW55IGJldHRlciBpZGVhPwoibWF2ZW4tc291cmNlcy5naXQiPyAibWF2ZW4tc3JjLmdpdCI/CgphbmQgd2hhdCBhYm91dCBhZGRpbmcgcGxleHVzIHJlcG9zIChpbmNsdWRpbmcgbW9kZWxsbykgdG8gdGhlIGxpc3Q/CgpSZWdhcmRzLAoKSGVydj1FOQoKTGUgbWFyZGkgMTkgZD1FOWNlbWJyZSAyMDE3LCAwNzowNzo0MyBDRVQgT2xpdmllciBMYW15IGEgPUU5Y3JpdCA6Cj4gYW55IHBsYW4gdG8gdXBkYXRlIHRoZSBtYXZlbi1hZ2dyZWdhdG9yIGZpbGU/IDotKQo+PTIwCj4gT24gMTcgRGVjZW1iZXIgMjAxNyBhdCAwMjoyOCwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdybz0KdGU6Cj4gPiBvaywgSSB3YXMgY29uZnVzZWQgYnkgdGhlIGRpZmZlcmVudCB0YWtlcyBhdCBtLWphdmFkb2MtcCAzLjAuMAo+ID49MjAKPiA+IHllcywgc3ZuMmdpdCBtaXJyb3IgaXMgc3R1Y2sgWzFdIGF0IHIxODE1Njc1Cj4gPj0yMAo+ID4gSSBqdXN0IG9wZW5lZCBhbiBJTkZSQSBKaXJhIGlzc3VlCj4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0lORlJBLTE1Njc5Cj4gPj0yMAo+ID4gb25jZSB0aGUgc3ZuMmdpdCBtaXJyb3Igd2lsbCBiZSB1cGRhdGVkLCB3ZSdsbCBoYXZlIHRvIHJlLXJ1biB0aGUgc3BsaXQKPiA+IHNjcmlwdHMgYW5kIGNoZXJyeSBwaWNrIHRoZSBtaXNzaW5nIGNvbW1pdHMKPiA+PTIwCj4gPiBSZWdhcmRzLAo+ID49MjAKPiA+IEhlcnY9RTkKPiA+PTIwCj4gPiBbMV0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL2NvbW1pdHMvdHJ1bmsKPiA+PTIwCj4gPiBMZSBzYW1lZGkgMTYgZD1FOWNlbWJyZSAyMDE3LCAxMzowMTowNSBDRVQgUm9iZXJ0IFNjaG9sdGUgYSA9RTljcml0IDoKPiA+ID4gSSB3YXMgdHJpZ2dlcmVkIGJ5IHNvbWUgZmFpbGluZyB1bml0IHRlc3RzLCB3aGljaCBzaG91bGQgaGF2ZSBiZWVuCj4gPiA+IHNvbHZlZAo+ID4gPiBpbiBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+ID4gPj0yMAo+ID4gPiBNeSBsYXN0IGNvbW1pdCBhY2NvcmRpbmcgdG8gR0lUIHdhcyBub3ZlbWJlciAxOHRoCj4gPiA+IE15IGxhc3QgY29tbWl0IGFjY29yZGluZyB0byBTVk4gd2FzIGRlY2VtYmVyIDNyZAo+ID4gPj0yMAo+ID4gPiBjb21wYXJpbmcgc3ZubG9nIHdpdGggZ2l0bG9nIG1vc3Qgb2YgdGhlc2UgY29tbWl0cyBhcmUgbG9zdDoKPiA+ID49MjAKPiA+ID4gbW92ZWQgdG8gZ2l0Cj4gPiA+IC0tLS0KPiA+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIGZvciBuZXh0IGRldmVsb3BtZW50IGl0ZXJhdGlvbgo+ID4gPiAtLS0tCj4gPiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSByZWxlYXNlIG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wCj4gPiA+IC0tLS0KPiA+ID4gW01KQVZBRE9DLTQ5OF0gIm1vZHVsZSBub3QgZm91bmQiIHdoZW4gSmF2YSA5IG1vZHVsZS1pbmZvIHByZXNlbnQKPiA+ID4gU3VwcG9ydCBhZ2dyYXRlZCBqYXZhZG9jCj4gPiA+IC0tLS0KPiA+ID4gU2tpcCBzZXZlcmFsIHVuaXR0ZXN0cyBmb3IgSmF2YTkKPiA+ID4gLS0tLQo+ID4gPiBKREstODAzMjIwNSB3YXMgY2xvc2VkIGFzIG5vdCBhbiBpc3N1ZSwgc28gbm90IHNvbHZlZCBpbiBKYXZhOS4KPiA+ID4gTmVlZCB0byByZXZpZXcgdGhlIGNvbmNsdXNpb24KPiA+ID4gLS0tLQo+ID4gPiBVcGdyYWRlIG1vY2tpdG8gdG8gcmVtb3ZlIHdhcm5pbmcgYWJvdXQgaWxsZWdhbCByZWZsZWN0aXZlIGFjY2Vzcwo+ID4gPiAtLS0tCj4gPiA+IEltcHJvdmUgVGVzdEphdmFkb2NSZXBvcnRUZXN0I3Rlc3RUZXN0SmF2YWRvYwo+ID4gPiBKOCB3YXJucyBhbmQgY29udGludWVzIHdpdGggbWlzc2luZyBkZXBlbmRlbmN5LCBKOSBmYWlscy4KPiA+ID4gSW4gZmFjdCB0ZXN0IHdhcyB3cm9uZzogZGVwZW5kZW5jeSBzaG91bGQgaGF2ZSBiZWVuIG9uIGNsYXNzcGF0aAo+ID4gPiAtLS0tCj4gPiA+IHVuaXR0ZXN0IHNob3VsZCBwcmVmZXIgSkFWQV9IT01FIHdoZW4gZXhlY3V0aW5nIGZyb20gY21kbGluZQo+ID4gPiBXaGVuIHJ1bm5pbmcgd2l0aCBKYXZhOSsgbm8gbmVlZCB0byBzd2l0Y2ggZnJvbSBqcmUgdG8gamRrIGRpcmVjdG9yeQo+ID4gPiAoamVwMjIwKQo+ID4gPiAtLS0tCj4gPiA+IE1KQVZBRE9DLTUwMiBVcGRhdGUgREVGQVVMVF9KQVZBX0FQSV9MSU5LUwo+ID4gPiAtLS0tCj4gPiA+IHNlc3Npb24gaXMgcmVxdWlyZWQgcGFyYW1ldGVyLCBzbyBjYW5ub3QgYmUgbnVsbC4gRml4IHJlbGF0ZWQgdW5pdHRlcz0KdHMKPiA+ID4gLS0tLQo+ID4gPiBBZGQgcHJvamVjdC9hcnRpZmFjdCBrZXkgdG8gc2V0IG9mIHNvdXJjZVBhdGhzIHRvIHJlY29nbml6ZSByZWFjdG9yCj4gPiA+IHByb2plY3RzIHZlcnN1cyBkZXBlbmRlbmNpZXMKPiA+ID4gLS0tLQo+ID4gPiBHcm91cCBzZXRzIG9mIHNvdXJjZXBhdGhzIHBlciBwcm9qZWN0LCBpbiBwcmVwYXJlIG9mIHVzYWdlIG9mCj4gPiA+IG1vZHVsZS1zb3VyY2UtcGF0aC4KPiA+ID4gLS0tLQo+ID4gPiBTd2l0Y2ggZnJvbSBMaXN0IHRvIENvbGxlY3Rpb24gdG8gbWFrZSBpdCBlYXNpZXIgdG8gdXNlIFNldHMgd2hlbgo+ID49MjAKPiA+IHByZWZlcnJlZAo+ID49MjAKPiA+ID4gLS0tLQo+ID4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgZm9yIG5leHQgZGV2ZWxvcG1lbnQgaXRlcmF0aW9uCj4gPiA+IC0tLS0KPiA+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIHJlbGVhc2UgbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAKPiA+ID4gLS0tLQo+ID4gPj0yMAo+ID4gPj0yMAo+ID4gPj0yMAo+ID4gPj0yMAo+ID4gPiBPbiBTYXQsIDE2IERlYyAyMDE3IDEyOjUzOjIzICswMTAwLCBIZXJ2PUU5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnI9CmVlLmZyCj4gPiA+PTIwCj4gPiA+IHdyb3RlOgo+ID4gPiA+IGxvb2tpbmcgYXQgY29tbWl0c0AgY29udGVudCBodHRwczovL2xpc3RzLmFwYWNoZS5vcmcvbGlzdC5odG1sPwo+ID4gPiA+IGNvbW1pdHNAbWF2ZW4uYXBhY2hlLm9yZyB3aXRoIHN1YmplY3QgY29udGFpbmluZyAibWF2ZW4vcGx1Z2lucy90cnU9Cm5rIgo+ID4gPiA+PTIwCj4gPiA+ID4gYW5kIHBsdWdpbnMgc3ZuMmdpdCBtaXJyb3IKPiA+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvY29tbWl0cy8KPiA+ID4gPiB0cnVuawo+ID4gPiA+PTIwCj4gPiA+ID4gb25seSAxIGNvbW1pdCBpcyBtaXNzaW5nOiBteSBsYXRlc3QgY29tbWl0IG9uIG1hdmVuLXNpdGUtcGx1Z2luCj4gPiA+ID4gKHRoZSBsYXN0IGNvbW1pdCBmb3IgR2l0IG1pZ3JhdGlvbiBpcyBub3QgdXNlZnVsKQo+ID4gPiA+PTIwCj4gPiA+ID49MjAKPiA+ID4gPiBTYW1lIG9uIHNoYXJlZCBzaG93ZWQgbm8gbWlzc2luZyBjb21taXQuCj4gPiA+ID49MjAKPiA+ID4gPj0yMAo+ID4gPiA+IHdoYXQgbGF0ZXN0IGNvbW1pdCBvZiBtYXZlbi1qYXZhZG9jLXBsdWdpbiBhcmUgeW91IGxvb2tpbmcgZm9yPwo+ID4gPiA+PTIwCj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPj0yMAo+ID4gPiA+IEhlcnY9RTkKPiA+ID4gPj0yMAo+ID4gPiA+IExlIHNhbWVkaSAxNiBkPUU5Y2VtYnJlIDIwMTcsIDExOjU2OjMxIENFVCBSb2JlcnQgU2Nob2x0ZSBhID1FOWNyaXQ9CiA6Cj4gPiA+ID4+IEZvciBldmVyeWJvZHkganVzdCBhIHdhcm5pbmcgSSBmYWNlZCB0b2RheToKPiA+ID4gPj4gSWYgeW91IHN3aXRjaCB0byB0aGUgZ2l0IHJlcG9zLCBwbGVhc2UgbWFrZSBzdXJlIGFsbCBjb21taXRzIGFyZQo+ID4gPiA+PiBtaWdyYXRlZC4KPiA+ID4gPj4gSSBub3RpY2VkIHRoZSBsYXRlc3QgY29tbWl0cyBvZiB0aGUgbWF2ZW4tamF2YWRvYy1wbHVnaW4gZ290IGxvc3QuCj4gPiA+ID4+PTIwCj4gPiA+ID4+IHRoYW5rcywKPiA+ID4gPj4gUm9iZXJ0Cj4gPiA+ID4+PTIwCj4gPiA+ID4+IE9uIFNhdCwgMDkgRGVjIDIwMTcgMTc6MDY6MDkgKzAxMDAsIFN0ZXBoZW4gQ29ubm9sbHkKPiA+ID4gPj49MjAKPiA+ID4gPj4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiA+PiA+IEkgc2VlIHdlIGhhdmUgYSBsYXJnZSBudW1iZXIgb2YgcmVwb3Mgbm93IG9uIGdpdGJveCA7LSkKPiA+ID4gPj4gPj0yMAo+ID4gPiA+PiA+IE9uIFRodSA3IERlYyAyMDE3IGF0IDA3OjAwLCBIZXJ2PUU5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS49CmZyPgo+ID4gPiA+Pj0yMAo+ID4gPiA+PiB3cm90ZToKPiA+ID4gPj4gPj4gb2ssIEkgZGlkbid0IHVwZGF0ZSBteSByZXBvIGNsb25lOiBub3cgdGhlIHJ1bi1pdHMgcHJvZmlsZSBpcwo+ID4gPiA+Pj0yMAo+ID4gPiA+PiBhY3RpdmF0ZWQKPiA+ID4gPj49MjAKPiA+ID4gPj4gPj4gdGhlbiB0aGUgcGxhbiBzaG91bGQganVzdCBjb25maXJtICJpdCB3b3JrcyEiIDopCj4gPiA+ID4+ID4+PTIwCj4gPiA+ID4+ID4+IGFuZCBmaW5kIHdoaWNoIGpvYnMgYXJlIHNwZWNpYWwsIGxpa2UgbWF2ZW4tZGlzdC10b29sICh3aGljaCBoYXMKPiA+ID4gPj4gPj4gdG8KPiA+ID4gPj49MjAKPiA+ID4gPj4gYmUKPiA+ID4gPj49MjAKPiA+ID4gPj4gPj4gc2NoZWR1bGVkIGRhaWx5IGluc3RlYWQgb2YgY29kZSBjaGFuZ2UsIGFuZCBvbmUgcGxhdGZvcm0gb25seSkKPiA+ID4gPj4gPj49MjAKPiA+ID4gPj4gPj4gUmVnYXJkcywKPiA+ID4gPj4gPj49MjAKPiA+ID4gPj4gPj4gSGVydj1FOQo+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+PiA+PiBMZSBtZXJjcmVkaSA2IGQ9RTljZW1icmUgMjAxNywgMjM6NTg6NDUgQ0VUIFN0ZXBoZW4gQ29ubm9sbHkgYSA9Cj1FOWNyaXQKPiA+ID4gPj4gPj49MjAKPiA+ID4gPj4gPj4gPiBPbiBXZWQgNiBEZWMgMjAxNyBhdCAyMjozOCwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyPQplZS5mcgo+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+PiA+PiB3cm90ZToKPiA+ID4gPj4gPj4gPiA+IE5vdyB0aGF0IHdlIGhhdmUgMiBBU0YgT3JnYW5pemF0aW9uIEplbmtpbnMgam9icyAob25lIGZvcgo+ID49MjAKPiA+IGdpdGJveAo+ID49MjAKPiA+ID4gPj4gWzFdCj4gPiA+ID4+PTIwCj4gPiA+ID4+ID4+IGFuZAo+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+PiA+PiA+ID4gb25lCj4gPiA+ID4+ID4+ID4gPiBmb3IgZ2l0LXdpcDogdGhhbmsgeW91IFN0ZXBoZW4pIGFuZCB0aGF0IGl0IGxvb2tzIHF1aXRlCj4gPiA+ID4+PTIwCj4gPiA+ID4+IHN1Y2Nlc3NmdWwsCj4gPiA+ID4+PTIwCj4gPiA+ID4+ID4+IGxldCdzCj4gPiA+ID4+ID4+PTIwCj4gPiA+ID4+ID4+ID4gPiBwbGFuCj4gPiA+ID4+ID4+ID4gPiB0aGUgbmV4dCBzdGVwcy4KPiA+ID4gPj4gPj4gPiA+PTIwCj4gPiA+ID4+ID4+ID4gPiBIZXJlIGlzIHdoYXQgSSBzZWU6Cj4gPiA+ID4+ID4+ID4gPiAxLiByZW1vdmFsIG9mIGhhbmQtZGVmaW5lZCBKZW5raW5zIGpvYnMgdGhhdCBhcmUgbm93Cj4gPiA+ID4+ID4+ID4gPiBkdXBsaWNhdGVzCj4gPiA+ID4+ID4+ID4gPj0yMAo+ID4gPiA+PiA+PiA+ID4gMi4gcHJlcGFyYXRpb24gb2YgdGhlIDYwIG5ldyBlbXB0eSBnaXQgcmVwb3MgZm9yIHNoYXJlZCAmCj4gPj0yMAo+ID4gcGx1Z2lucwo+ID49MjAKPiA+ID4gPj4gPj4gPiA+IDMuIG1pZ3JhdGlvbiBvZiB0aGUgMSBzaGFyZWQgY29tcG9uZW50IGFuZCAxIHBsdWdpbiB1c2luZwo+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+PiA+PiBtaWdyYXRlLSouc2gKPiA+ID4gPj4gPj49MjAKPiA+ID4gPj4gPj4gPiA+IHNjcmlwdHMKPiA+ID4gPj4gPj4gPiA+IFszXSB0byB0ZXN0IGFuZCBldmVudHVhbGx5IHJld29yayB0aGUgSmVua2luc2ZpbGUgKEkgc3VwcG9zZQo+ID4gPiA+PiA+PiA+ID4gaXQKPiA+ID4gPj49MjAKPiA+ID4gPj4gd2lsbAo+ID4gPiA+Pj0yMAo+ID4gPiA+PiA+PiA+ID4gcmVxdWlyZQo+ID4gPiA+PiA+PiA+ID4gc29tZSBsaXR0bGUgY2hhbmdlLCB0byBydW4gYWRkICJydW4taXRzIiBwcm9maWxlKQo+ID4gPiA+PiA+PiA+PTIwCj4gPiA+ID4+ID4+ID4gQXMgZmFyIGFzIEkgcmVjYWxsLCBJIGFkZGVkIC1QK3J1bi1pdHMgYWxyZWFkeQo+ID4gPiA+PiA+PiA+PTIwCj4gPiA+ID4+ID4+ID4gRm9yIHRoZSBwbHVnaW4sIEknZCBsaWtlIHRvIGRvIHRoZSBqb2IgZm9yIG1hdmVuLXNpdGUtcGx1Z2luLAo+ID4gPiA+Pj0yMAo+ID4gPiA+PiBzaW5jZSB3ZQo+ID4gPiA+Pj0yMAo+ID4gPiA+PiA+PiA+ID4gZXhwZWN0Cj4gPiA+ID4+ID4+ID4gPiB0byByZWxlYXNlIGl0IHNvb24uCj4gPiA+ID4+ID4+ID4gPiBGb3IgdGhlIHNoYXJlZCBjb21wb25lbnQsIEkgZG9uJ3Qga25vdyBpZiB0aGVyZSBpcyBhIGJlc3QKPiA+ID4gPj49MjAKPiA+ID4gPj4gY2FuZGlkYXRlCj4gPiA+ID4+PTIwCj4gPiA+ID4+ID4+ID4gPiA0LiBvbmNlIHByZXZpb3VzIHN0ZXAgaXMgb2ssIGRvIHRoZSBmdWxsIG1pZ3JhdGlvbjogaWYgdGhlcmUKPiA+PTIwCj4gPiBhcmUKPiA+PTIwCj4gPiA+ID4+ID4+ID4gPiB2b2x1bnRlZXJzCj4gPiA+ID4+ID4+ID4gPiBmb3IgaGVscGluZywgdGhhdCB3b3VsZCBiZSBncmVhdCwgc2luY2UgcG9wdWxhdGluZyA2MCBnaXQKPiA+ID4gPj4gPj4gPiA+IHJlcG9zCj4gPiA+ID4+ID4+PTIwCj4gPiA+ID4+ID4+IHdvbid0Cj4gPiA+ID4+ID4+IGJlCj4gPiA+ID4+ID4+PTIwCj4gPiA+ID4+ID4+ID4gPiByZWFsbHkgZnVuLi4uCj4gPiA+ID4+ID4+ID4gPj0yMAo+ID4gPiA+PiA+PiA+ID4gQW5kIGFzIHBhcnQgb2YgNjAgZW1wdHkgZ2l0IHJlcG9zIGNyZWF0aW9uLCBJIHByb3Bvc2UgdG8KPiA+PTIwCj4gPiBtaWdyYXRlCj4gPj0yMAo+ID4gPiA+PiB0aGUKPiA+ID4gPj49MjAKPiA+ID4gPj4gPj4gPiA+ICJHb29nbGUKPiA+ID4gPj4gPj4gPiA+IHJlcG8gbWFuaWZlc3QiIG1hdmVuLWFnZ3JlZ2F0b3IgWzRdIHRvIEFTRjogbXkgcGVyc29uYWwgdXNlCj4gPiA+ID4+ID4+ID4gPiBoYXMKPiA+ID4gPj49MjAKPiA+ID4gPj4gYmVlbgo+ID4gPiA+Pj0yMAo+ID4gPiA+PiA+PiBxdWl0ZQo+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+PiA+PiA+ID4gc3VjY2Vzc2Z1bCwgSSBob3BlIGl0J3MgdGhlIHNhbWUgZm9yIG90aGVycy4gUGVyaGFwcyB0aGVyZSA9CmFyZQo+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+PiA+PiBiZXR0ZXIKPiA+ID4gPj4gPj49MjAKPiA+ID4gPj4gPj4gPiA+IGlkZWFzCj4gPiA+ID4+ID4+ID4gPiBmb3IgaXRzIG5hbWU6IG1hdmVuLWFnZ3JlZ2F0b3IKPiA+ID4gPj4gPj4gPiA+PTIwCj4gPiA+ID4+ID4+ID4gPiBBbnkgb3RoZXIgaWRlYT8gYW55IG9iamVjdGlvbj8KPiA+ID4gPj4gPj4gPiA+PTIwCj4gPiA+ID4+ID4+ID4gPiBSZWdhcmRzLAo+ID4gPiA+PiA+PiA+ID49MjAKPiA+ID4gPj4gPj4gPiA+IEhlcnY9RTkKPiA+ID4gPj4gPj4gPiA+PTIwCj4gPiA+ID4+ID4+ID4gPiBbMV0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbj0KPTJEPiA+PTIwCj4gPiBib3gvCj4gPj0yMAo+ID4gPiA+PiA+PiA+ID4gWzJdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW49Cj0yRD4gPj0yMAo+ID4gd2lwLwo+ID49MjAKPiA+ID4gPj4gPj4gPiA+IFszXQo+ID4gPiA+Pj0yMAo+ID4gPiA+PiBodHRwczovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy9tYXZlbi9zYW5kYm94L3RydW5rL3NjcmlwdHMvZ2l0Lwo+ID4gPiA+Pj0yMAo+ID4gPiA+PiA+PiA+ID4gWzRdIGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1hZ2dyZWdhdG9yCj4gPiA+ID4+ID4+PTIwCj4gPiA+ID4+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID49MjAKPiA+IC0tLS0tLS0tLQo+ID49MjAKPiA+ID4gPj4gPj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4+ID4+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4+ID4+ID4gPj0yMAo+ID4gPiA+PiA+PiA+ID4gLS0KPiA+ID4gPj4gPj4gPj0yMAo+ID4gPiA+PiA+PiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+PiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PTIwCj4gPiAtLS0tLS0tLS0KPiA+PTIwCj4gPiA+ID4+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPj4gPj49MjAKPiA+ID4gPj4gPj4gLS0KPiA+ID4gPj4gPj0yMAo+ID4gPiA+PiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4gPiA+Pj0yMAo+ID4gPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0tCj4gPiA+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPj0yMAo+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0KPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID49MjAKPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDE1OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgT2N0ICA3IDEwOjMyOjExIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDE1OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBENUYwNjEwQjZBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMTA6MzI6MTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1ODQxNiBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE9jdCAyMDE3IDEwOjMyOjA2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1ODMzNCBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE9jdCAyMDE3IDEwOjMyOjA2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTgzMjAgaW52b2tlZCBieSB1aWQgOTkpOyA3IE9jdCAyMDE3IDEwOjMyOjA2IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwNyBPY3QgMjAxNyAxMDozMjowNiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDc3REY4Q0U5MzMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDEwOjMyOjA1ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgVzVvbUNrZUpGQklaIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAgNyBPY3QgMjAxNyAxMDozMjowMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDIuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjRdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNEMyRjE1RjNGRgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMTA6MzI6MDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkNDkgd2l0aCBNRQoJaWQgSmFZMDF3MDBMMjBVZmR5MDNhWTBSRzsgU2F0LCAwNyBPY3QgMjAxNyAxMjozMjowMSArMDIwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBTYXQsIDA3IE9jdCAyMDE3IDEyOjMyOjAxICswMjAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IG1pZ3JhdGluZyBzb21lIGNvZGUgdG8gR2l0CkRhdGU6IFNhdCwgMDcgT2N0IDIwMTcgMTI6MzI6MDAgKzAyMDAKTWVzc2FnZS1JRDogPDE2MDA5MTAuR3RkdnhNMUs5MUBnaWdhPgpVc2VyLUFnZW50OiBLTWFpbC81LjIuMyAoTGludXgvNC4xMC4wLTM1LWdlbmVyaWM7IEtERS81LjMxLjA7IHg4Nl82NDsgOyApCkluLVJlcGx5LVRvOiA8MTczMzA3OS5mQkpvemdsNXZZQGdpZ2E+ClJlZmVyZW5jZXM6IDwzMDA2NDcxLkdyU0ZqU0pqR1hAZ2lnYT4gPDE3OTEzNzguOGswMmFVSjNycEBnaWdhPiA8MTczMzA3OS5mQkpvemdsNXZZQGdpZ2E+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKSSB3cm90ZSBhIGxpdHRsZSBzaGVsbCBzY3JpcHQgdG8gY2hlY2sgZGlmZmVyZW5jZXMgYmV0d2VlbiB0YWdzIGluIHN2biBhbmQgPQpnaXQ9MjAKY2hlY2tvdXQKdGhlIG9ubHkgZGlmZmVyZW5jZXMgSSBmb3VuZCBmb3IgdGhlIDYgZ2l0IHJlcG9zIGFyZToKMS4gZW1wdHkgZGlycyAod2hpY2ggZXhpc3QgaW4gc3ZuIGJ1dCBhcmUgcHJ1bmVkIGluIGdpdCkKMi4gb25lIHN0cmFnZSBjYXNlIGluIGVuZm9yY2VyLTEuMiB3aGVyZSBhIGZldyBmaWxlcyBzZWVtIHRvIGhhdmUgbmV3bGluZXM9Cj0yMAppc3N1ZXMKCnRvIG1lLCB0aGlzIGNhbiBiZSBzYWZlbHkgaWdub3JlZAoKaWYgbm9ib2R5IG9iamVjdHMsIGluIDcyaCwgSSdsbCBjcmVhdGUgSU5GUkEgamlyYSBpc3N1ZSB0byBzd2l0Y2ggZm9sbG93aW5nPQogNj0yMApjb21wb25lbnRzIGZyb20gc3ZuIHRvIHRoZSBjdXJyZW50IGdpdCBtaXJyb3I6Cj0yRCBEb3hpYSBjb3JlCj0yRCBEb3hpYSBTaXRldG9vbHMKPTJEIEVuZm9yY2VyCj0yRCBKeHIKPTJEIFBsdWdpbiBUb29scwo9MkQgUmVsZWFzZQoKClJlZ2FyZHMsCgpIZXJ2PUU5CgpMZSBzYW1lZGkgNyBvY3RvYnJlIDIwMTcsIDA0OjQ3OjMyIENFU1QgSGVydj1FOSBCT1VURU1ZIGEgPUU5Y3JpdCA6Cj4gcmUtcmVhZGluZyBvdXIgbWlncmF0aW9uIHByb2Nlc3MgZG9jdW1lbnRhdGlvbiBbMV0sIEkgc2VlICJjaGVjayBlc3BlY2lhbD0KbHkKPiBiZWhhdmlvdXIgb24gY2hlY2tpbmcgb3V0IHRhZyIKPj0yMAo+IEkgc3VwcG9zZSB0aGF0IHdlIGNvdWxkIGNvbXBhcmUgY29udGVudCBiZXR3ZWVuIGdpdCBjaGVja291dCBhbmQgc3ZuCj4gY2hlY2tvdXQgZm9yIEhFQUQgYW5kIGV2ZXJ5IHBhc3QgcmVsZWFzZQo+PTIwCj4gZGlkIHNvbWVib2R5IHByZXBhcmUgYSBzaGVsbCBzY3JpcHQgZm9yIHRoYXQ/Cj49MjAKPiBSZWdhcmRzLAo+PTIwCj4gSGVydj1FOQo+PTIwCj4gWzFdIGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvTUFWRU4vR2l0Cj4gK01pZ3JhdGlvbiNHaXRNaWdyYXRpb24tTWlncmF0aW9ucHJvY2Vzc2Rlc2NyaXB0aW9uCj49MjAKPiBMZSB2ZW5kcmVkaSA2IG9jdG9icmUgMjAxNywgMDA6MzQ6MTEgQ0VTVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiA+IGdyZWF0LCB0aGFuayB5b3UgZm9yIHlvdXIgaGVscAo+ID49MjAKPiA+IGluIGZhY3QsIEFGQUlLLCBBcGFjaGUgaGFzIGFscmVhZHkgYXV0b21hdGljIHN2bjJnaXQgZXhwb3J0cyBbMV0gdGhhdCBhPQpyZQo+ID4gdGhlbiBtaXJyb3JlZCB0byBnaXRodWIuCj4gPiBUaGVuIHdlIGFscmVhZHkgaGF2ZToKPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1kb3hpYS8KPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1kb3hpYS1zaXRldG9vbHMvCj4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZW5mb3JjZXIvCj4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tanhyLwo+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbi10b29scy8KPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1yZWxlYXNlLwo+ID49MjAKPiA+IEkgc3VwcG9zZSB0aGVzZSBjb3VsZCBiZSB0aGUgbmF0dXJhbCB0YXJnZXRzLgo+ID4gQnV0IEkgZG9uJ3QgcmVhbGx5IHNlZSB3aGF0IGNoZWNrcyB0byBkbyBvbiB0aGVzZS4KPiA+PTIwCj4gPiBJIHN1cHBvc2UgdGhhdCBvbmNlIHdlIGFyZSBjb252aW5jZWQgdGhpcyBjb250ZW50IGlzIG9rLCB3ZSBjYW4gYXNrIGluZj0KcmEKPiA+IHRvIHN3aXRjaCB0aGVzZSB0byB0aGUgY2Fub25pY2FsIHNvdXJjZSAoYW5kIGRpc2FibGUgdGhlIHN2bjJnaXQgZXhwb3J0PQpzKQo+ID49MjAKPiA+IERvIHlvdSBzZWUgYW55IGlzc3VlIGluIHRoZXNlIHJlcG9zPwo+ID49MjAKPiA+IFJlZ2FyZHMsCj4gPj0yMAo+ID4gSGVydj1FOQo+ID49MjAKPiA+IFsxXSBodHRwOi8vZ2l0LmFwYWNoZS5vcmcvCj4gPj0yMAo+ID4gTGUgamV1ZGkgNSBvY3RvYnJlIDIwMTcsIDExOjQ1OjIzIENFU1QgRGVqYW4gU3RvamFkaW5vdmljIGEgPUU5Y3JpdCA6Cj4gPiA+IENvdW50IG1lIGluIChmb3IgYm90aCBhY3R1YWwgbWlncmF0aW9uIGFuZCByZWxhdGVkIHRhc2tzKS4KPiA+ID49MjAKPiA+ID4gTXkgd2VhcG9uIG9mIGNob2ljZSBmb3IgU1ZOIC0tPj5HSVQgd291bGQgYmU6Cj4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9uaXJ2ZHJ1bS9zdm4yZ2l0IChJIG1hbmFnZWQgdG8gbW92ZSBkb3plbiBvZiByZXBvcwo+ID4gPiBmZXcKPiA+ID4geWVhcnMgYWdvKS4KPiA+ID49MjAKPiA+ID4gUmVnYXJkcywKPiA+ID4gRGVqYW4KPiA+ID49MjAKPiA+ID4gT24gMjAxNy0xMC0wNCAwMTo0OCwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdyb3RlOgo+ID4gPiA+IEknZCBsaWtlIHRvIHdvcmsgb24gUGx1Z2luIFRvb2xzIHdpdGggZ2l0Cj4gPiA+ID49MjAKPiA+ID4gPiBXaGlsZSBhdCBpdCwgbG9va2luZyBhdCBvdXIgcGxhbiBbMV0sIEkgc2VlIHdlIGhhdmUgYSBmZXcgb3RoZXIKPiA+ID4gPiBjb21wb25lbnRzCj4gPiA+ID4gdGhhdCBhcmUgcmVhZHkgdG8gbWlncmF0ZToKPiA+ID4gPiAtIERveGlhIGNvcmUKPiA+ID4gPiAtIERveGlhIFNpdGV0b29scwo+ID4gPiA+IC0gRW5mb3JjZXIKPiA+ID4gPiAtIEp4cgo+ID4gPiA+IC0gUGx1Z2luIFRvb2xzCj4gPiA+ID4gLSBSZWxlYXNlCj4gPiA+ID49MjAKPiA+ID4gPiBXaGF0IGNoZWNrcyBhcmUgcmVxdWlyZWQgYmVmb3JlIHN3aXRjaGluZyB0aGVzZSA2IGNvbXBvbmVudHM/Cj4gPiA+ID4gQW55IHZvbHVudGVlcj8KPiA+ID4gPj0yMAo+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID49MjAKPiA+ID4gPiBIZXJ2PUMzPUE5Cj4gPiA+ID49MjAKPiA+ID4gPiBbMV0gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9HaXQrTWlncmF0aW9uCj4gPiA+ID49MjAKPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQo9MkQtCj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+PTIwCj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj0yMAo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PTIwCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDc1NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgRGVjICA3IDA3OjAwOjMyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDc1NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA0NEE5RjE3REEzCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgIDcgRGVjIDIwMTcgMDc6MDA6MzIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1MDIyMiBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IERlYyAyMDE3IDA3OjAwOjMxIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MDE1NCBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IERlYyAyMDE3IDA3OjAwOjMxIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTAxNDMgaW52b2tlZCBieSB1aWQgOTkpOyA3IERlYyAyMDE3IDA3OjAwOjMxIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAwNyBEZWMgMjAxNyAwNzowMDozMSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDNCRTYyMTgwMjM1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAgNyBEZWMgMjAxNyAwNzowMDozMCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDAuOTgKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC45OCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDQ9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBtU0lFMXVUY2twNzkgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsICA3IERlYyAyMDE3IDA3OjAwOjI4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAxMy5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEzNV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA5RDZBRTVGMzZFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAgNyBEZWMgMjAxNyAwNzowMDoyNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ3MyB3aXRoIE1FCglpZCBpdjBLMXcwMFIyMFVmZHkwM3YwS1o2OyBUaHUsIDA3IERlYyAyMDE3IDA4OjAwOjIwICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFRodSwgMDcgRGVjIDIwMTcgMDg6MDA6MjAgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogR2l0IG1pZ3JhdGlvbiBuZXh0IHN0ZXBzCkRhdGU6IFRodSwgMDcgRGVjIDIwMTcgMDg6MDA6MTkgKzAxMDAKTWVzc2FnZS1JRDogPDE2MTgzMDIuRTNhck9yNUR5SkBnaWdhPgpJbi1SZXBseS1UbzogPENBK25Qbk15Vm5XbTQtdEFmYWVZdnRrMXg4SDVUMDBGRW8rU0o2cz15WVRnbj04SFh1UUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPDE5MDA1NTguR0Z4OVFsZmFFMkBnaWdhPiA8Q0ErblBuTXlWbldtNC10QWZhZVl2dGsxeDhINVQwMEZFbytTSjZzPXlZVGduPThIWHVRQG1haWwuZ21haWwuY29tPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCm9rLCBJIGRpZG4ndCB1cGRhdGUgbXkgcmVwbyBjbG9uZTogbm93IHRoZSBydW4taXRzIHByb2ZpbGUgaXMgYWN0aXZhdGVkCgp0aGVuIHRoZSBwbGFuIHNob3VsZCBqdXN0IGNvbmZpcm0gIml0IHdvcmtzISIgOikKCmFuZCBmaW5kIHdoaWNoIGpvYnMgYXJlIHNwZWNpYWwsIGxpa2UgbWF2ZW4tZGlzdC10b29sICh3aGljaCBoYXMgdG8gYmU9MjAKc2NoZWR1bGVkIGRhaWx5IGluc3RlYWQgb2YgY29kZSBjaGFuZ2UsIGFuZCBvbmUgcGxhdGZvcm0gb25seSkKClJlZ2FyZHMsCgpIZXJ2PUU5CgpMZSBtZXJjcmVkaSA2IGQ9RTljZW1icmUgMjAxNywgMjM6NTg6NDUgQ0VUIFN0ZXBoZW4gQ29ubm9sbHkgYSA9RTljcml0IDoKPiBPbiBXZWQgNiBEZWMgMjAxNyBhdCAyMjozOCwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdyb3RlOgo+ID4gTm93IHRoYXQgd2UgaGF2ZSAyIEFTRiBPcmdhbml6YXRpb24gSmVua2lucyBqb2JzIChvbmUgZm9yIGdpdGJveCBbMV0gYW5kCj4gPiBvbmUKPiA+IGZvciBnaXQtd2lwOiB0aGFuayB5b3UgU3RlcGhlbikgYW5kIHRoYXQgaXQgbG9va3MgcXVpdGUgc3VjY2Vzc2Z1bCwgbGV0PQoncwo+ID4gcGxhbgo+ID4gdGhlIG5leHQgc3RlcHMuCj4gPj0yMAo+ID4gSGVyZSBpcyB3aGF0IEkgc2VlOgo+ID4gMS4gcmVtb3ZhbCBvZiBoYW5kLWRlZmluZWQgSmVua2lucyBqb2JzIHRoYXQgYXJlIG5vdyBkdXBsaWNhdGVzCj4gPj0yMAo+ID4gMi4gcHJlcGFyYXRpb24gb2YgdGhlIDYwIG5ldyBlbXB0eSBnaXQgcmVwb3MgZm9yIHNoYXJlZCAmIHBsdWdpbnMKPiA+PTIwCj4gPiAzLiBtaWdyYXRpb24gb2YgdGhlIDEgc2hhcmVkIGNvbXBvbmVudCBhbmQgMSBwbHVnaW4gdXNpbmcgbWlncmF0ZS0qLnNoCj4gPiBzY3JpcHRzCj4gPiBbM10gdG8gdGVzdCBhbmQgZXZlbnR1YWxseSByZXdvcmsgdGhlIEplbmtpbnNmaWxlIChJIHN1cHBvc2UgaXQgd2lsbAo+ID4gcmVxdWlyZQo+ID4gc29tZSBsaXR0bGUgY2hhbmdlLCB0byBydW4gYWRkICJydW4taXRzIiBwcm9maWxlKQo+PTIwCj4gQXMgZmFyIGFzIEkgcmVjYWxsLCBJIGFkZGVkIC1QK3J1bi1pdHMgYWxyZWFkeQo+PTIwCj4gRm9yIHRoZSBwbHVnaW4sIEknZCBsaWtlIHRvIGRvIHRoZSBqb2IgZm9yIG1hdmVuLXNpdGUtcGx1Z2luLCBzaW5jZSB3ZQo+PTIwCj4gPiBleHBlY3QKPiA+IHRvIHJlbGVhc2UgaXQgc29vbi4KPiA+IEZvciB0aGUgc2hhcmVkIGNvbXBvbmVudCwgSSBkb24ndCBrbm93IGlmIHRoZXJlIGlzIGEgYmVzdCBjYW5kaWRhdGUKPiA+PTIwCj4gPiA0LiBvbmNlIHByZXZpb3VzIHN0ZXAgaXMgb2ssIGRvIHRoZSBmdWxsIG1pZ3JhdGlvbjogaWYgdGhlcmUgYXJlCj4gPiB2b2x1bnRlZXJzCj4gPiBmb3IgaGVscGluZywgdGhhdCB3b3VsZCBiZSBncmVhdCwgc2luY2UgcG9wdWxhdGluZyA2MCBnaXQgcmVwb3Mgd29uJ3QgYmUKPiA+IHJlYWxseSBmdW4uLi4KPiA+PTIwCj4gPiBBbmQgYXMgcGFydCBvZiA2MCBlbXB0eSBnaXQgcmVwb3MgY3JlYXRpb24sIEkgcHJvcG9zZSB0byBtaWdyYXRlIHRoZQo+ID4gIkdvb2dsZQo+ID4gcmVwbyBtYW5pZmVzdCIgbWF2ZW4tYWdncmVnYXRvciBbNF0gdG8gQVNGOiBteSBwZXJzb25hbCB1c2UgaGFzIGJlZW4gcXU9Cml0ZQo+ID4gc3VjY2Vzc2Z1bCwgSSBob3BlIGl0J3MgdGhlIHNhbWUgZm9yIG90aGVycy4gUGVyaGFwcyB0aGVyZSBhcmUgYmV0dGVyCj4gPiBpZGVhcwo+ID4gZm9yIGl0cyBuYW1lOiBtYXZlbi1hZ2dyZWdhdG9yCj4gPj0yMAo+ID4gQW55IG90aGVyIGlkZWE/IGFueSBvYmplY3Rpb24/Cj4gPj0yMAo+ID4gUmVnYXJkcywKPiA+PTIwCj4gPiBIZXJ2PUU5Cj4gPj0yMAo+ID4gWzFdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tYm94Lwo+ID49MjAKPiA+IFsyXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLXdpcC8KPiA+PTIwCj4gPiBbM10gaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy92aWV3dmMvbWF2ZW4vc2FuZGJveC90cnVuay9zY3JpcHRzL2dpdC8KPiA+PTIwCj4gPiBbNF0gaHR0cHM6Ly9naXRodWIuY29tL2hib3V0ZW15L21hdmVuLWFnZ3JlZ2F0b3IKPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj0yMAo+ID4gLS0KPj0yMAo+IFNlbnQgZnJvbSBteSBwaG9uZQoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0OTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE5vdiAxNiAxNzoyNDoyMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0OTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMEIzQkUxMDY5RAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDE2IE5vdiAyMDE3IDE3OjI0OjIwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzM2NzQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTYgTm92IDIwMTcgMTc6MjQ6MTkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMzNTg3IGludm9rZWQgYnkgdWlkIDUwMCk7IDE2IE5vdiAyMDE3IDE3OjI0OjE5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzM1NzYgaW52b2tlZCBieSB1aWQgOTkpOyAxNiBOb3YgMjAxNyAxNzoyNDoxOSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMTYgTm92IDIwMTcgMTc6MjQ6MTkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBBMDVEODE4MDg1MQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMTYgTm92IDIwMTcgMTc6MjQ6MTggKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMS4zClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xLjMgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBLQU1fTElOS0JBSVQ9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDdaWVNfXzlNUW02eSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVRodSwgMTYgTm92IDIwMTcgMTc6MjQ6MTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDAyLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI0XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDEwNDBFNUYzREUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDE2IE5vdiAyMDE3IDE3OjI0OjE2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDc4IHdpdGggTUUKCWlkIGFoUTkxdzAxazIwVWZkeTAzaFE5b287IFRodSwgMTYgTm92IDIwMTcgMTg6MjQ6MTAgKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogVGh1LCAxNiBOb3YgMjAxNyAxODoyNDoxMCArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IG1lcmdpbmcgTU5HLTYzMDIgdG8gbWFzdGVyCkRhdGU6IFRodSwgMTYgTm92IDIwMTcgMTg6MjQ6MDkgKzAxMDAKTWVzc2FnZS1JRDogPDE2MjExNzYuc0phaEVtOTMyNUBnaWdhPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCkkgdXBkYXRlZCBNTkctNjMwMiBpbXBsZW1lbnRhdGlvbjoKc2VlIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYzMDIKCmFyZSB0aGVyZSBzZWNvbmRlcnMgZm9yIHRoaXMgaW1wbGVtZW50YXRpb24/Cm9yIGlkZWFzIG9uIGJldHRlciBkaXNwbGF5cz8KClJlZ2FyZHMsCgpIZXJ2PUU5CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4NjItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IERlYyAyOCAxNTo0Mzo1NyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4NjItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQTI5NTMxMDY4MwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDI4IERlYyAyMDE3IDE1OjQzOjU3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTE4NTQgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggRGVjIDIwMTcgMTU6NDM6NTYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkxNzYwIGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IERlYyAyMDE3IDE1OjQzOjU2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTE3MzAgaW52b2tlZCBieSB1aWQgOTkpOyAyOCBEZWMgMjAxNyAxNTo0Mzo1NiAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyOCBEZWMgMjAxNyAxNTo0Mzo1NiArMDAwMApSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChMRmJuLTEtOTAyOS05My53ODYtMjM4LmFiby53YW5hZG9vLmZyIFs4Ni4yMzguMTYuOTNdKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgMzM0QTgxQTAwNTQ7CglUaHUsIDI4IERlYyAyMDE3IDE1OjQzOjU0ICswMDAwIChVVEMpCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCb3V0ZW15IDxoYm91dGVteUBhcGFjaGUub3JnPgpUbzogYW5ub3VuY2VAbWF2ZW4uYXBhY2hlLm9yZywgdXNlcnNAbWF2ZW4uYXBhY2hlLm9yZwpDYzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0FOTl0gQXBhY2hlIE1hdmVuIERveGlhIFNpdGV0b29scyAxLjggUmVsZWFzZWQKRGF0ZTogVGh1LCAyOCBEZWMgMjAxNyAxNjo0Mzo0NSArMDEwMApNZXNzYWdlLUlEOiA8MTYyMTM2MS5sSEJleEI2SUJJQGdpZ2E+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdCaXQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJ1cy1hc2NpaSIKClRoZSBBcGFjaGUgTWF2ZW4gdGVhbSBpcyBwbGVhc2VkIHRvIGFubm91bmNlIHRoZSByZWxlYXNlIG9mIHRoZSBBcGFjaGUgIApNYXZlbiBEb3hpYSBTaXRldG9vbHMsIHZlcnNpb24gMS44CgpEb3hpYSBTaXRldG9vbHMgaXMgYW4gZXh0ZW5zaW9uIG9mIGJhc2UgRG94aWEgY29tcG9uZW50IHRoYXQgZ2VuZXJhdGVzICAKZWl0aGVyIEhUTUwgc2l0ZXMsIGNvbnNpc3Rpbmcgb2YgZGVjb3JhdGlvbiBhbmQgY29udGVudCB0aGF0IHdhcyBnZW5lcmF0ZWQgIApieSBEb3hpYSwgb3IgZG9jdW1lbnRzIGxpa2UgUlRGIG9yIFBERi4KCkluIGFkZGl0aW9uLCBEb3hpYSBTaXRldG9vbHMgcHJvY2Vzc2VzIGZpbGVzIHdpdGggZXh0cmEgLnZtIGV4dGVuc2lvbiB3aXRoICAKVmVsb2NpdHkuCgpodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZG94aWEvZG94aWEtc2l0ZXRvb2xzLwoKWW91IGNhbiBkb3dubG9hZCB0aGUgYXBwcm9wcmlhdGUgc291cmNlcyBldGMuIGZyb20gdGhlIGRvd25sb2FkIHBhZ2U6CgpodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZG94aWEvZG94aWEtc2l0ZXRvb2xzL2Rvd25sb2FkLmNnaQoKUmVsZWFzZSBOb3RlcyAtIE1hdmVuIERveGlhIFNpdGV0b29scyAtIFZlcnNpb24gMS44CgoqKiBJbXByb3ZlbWVudAogICAgKiBbRE9YSUFTSVRFVE9PTFMtMTgxXSAtIGFkZCBkb2NSZW5kZXJpbmdDb250ZXh0IHRvIHRlbXBsYXRlIFZlbG9jaXR5IApjb250ZXh0CiAgICAqIFtET1hJQVNJVEVUT09MUy0xODJdIC0gY3JlYXRlIERvY3VtZW50Q29udGVudCBpbnRlcmZhY2UgdG8gbW9kZWwgClNpdGVSZW5kZXJlclNpbmsgb3V0cHV0CiAgICAqIFtET1hJQVNJVEVUT09MUy0xODRdIC0gYWRkIGdlbmVyYXRvciBmaWVsZCB0byBkb2N1bWVudCBSZW5kZXJpbmdDb250ZXh0IAp0byBnZXQgaW5mbyBvbiByZXBvcnQKICAgICogW0RPWElBU0lURVRPT0xTLTE4NV0gLSBhZGQgaGVscGVycyB0byB0cmF2ZXJzZSBjdXN0b20gc2tpbiBwYXJhbWV0ZXJzCgoqKiBOZXcgRmVhdHVyZQogICAgKiBbRE9YSUFTSVRFVE9PTFMtMTgzXSAtIGFkZCBlZGl0IHNvdXJjZSBmZWF0dXJlIHRvIGRvY3VtZW50IG1vZGVsIChiYXNlIAp1cmwpCgoqKiBUYXNrCiAgICAqIFtET1hJQVNJVEVUT09MUy0xODBdIC0gc3dpdGNoIHRvIEdpdAogICAgKiBbRE9YSUFTSVRFVE9PTFMtMTg2XSAtIGltcHJvdmUgZ2VuZXJhdGVkIGh0bWwgaW4gZGVmYXVsdCB0ZW1wbGF0ZTogYXZvaWQgCnVud2FudGVkIHNwYWNlCiAgICAKRW5qb3ksCiAgICAKLVRoZSBBcGFjaGUgTWF2ZW4gdGVhbQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NjExLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgMjUgMjI6MDA6MTAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjExLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDU0MjEwMTc4MzcKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAyNSBOb3YgMjAxNyAyMjowMDoxMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQyNzQ4IGludm9rZWQgYnkgdWlkIDUwMCk7IDI1IE5vdiAyMDE3IDIyOjAwOjEwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0MjY2OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNSBOb3YgMjAxNyAyMjowMDoxMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQyNjU3IGludm9rZWQgYnkgdWlkIDk5KTsgMjUgTm92IDIwMTcgMjI6MDA6MDkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDI1IE5vdiAyMDE3IDIyOjAwOjA5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgREZGNjdDNUZDNAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMjUgTm92IDIwMTcgMjI6MDA6MDggKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjk5OQpYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuOTk5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCUtCX1dBTV9GUk9NX05BTUVfU0lOR0xFV09SRD0wLjIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGdPS19zUWJLcHZCMiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgMjUgTm92IDIwMTcgMjI6MDA6MDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDEwLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTMyXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDUxMkIxNUZCRTUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDI1IE5vdiAyMDE3IDIyOjAwOjA2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDMzIHdpdGggTUUKCWlkIGVOMDAxdzAwRjIwVWZkeTAzTjAwTFE7IFNhdCwgMjUgTm92IDIwMTcgMjM6MDA6MDAgKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogU2F0LCAyNSBOb3YgMjAxNyAyMzowMDowMCArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBNYXZlbiByZXNvbHZlciBicmFuY2ggY29uc29saWRhdGlvbgpEYXRlOiBTYXQsIDI1IE5vdiAyMDE3IDIzOjAwOjAwICswMTAwCk1lc3NhZ2UtSUQ6IDwxNjM1MDk0Lm5UaFhvTXZqclZAZ2lnYT4KSW4tUmVwbHktVG86IDwyMDE3MTEyNTIxMDcxMi44Q0JDRTI5QzAyNDlAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPgpSZWZlcmVuY2VzOiA8MjAxNzExMDkwNTM1NTEuOTU3RDQyOUM1MEQxQGRkMTczMzIua2Fzc2VydmVyLmNvbT4gPDM3NzMzODAuTmtNTzlibzQyckBnaWdhPiA8MjAxNzExMjUyMTA3MTIuOENCQ0UyOUMwMjQ5QGRkMTczMzIua2Fzc2VydmVyLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpvaywgZG9uZTogaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1yZXNvbHZlci1hbnQtdGFza3MKClJlZ2FyZHMsCgpIZXJ2PUU5CgpMZSBzYW1lZGkgMjUgbm92ZW1icmUgMjAxNywgMjI6MDc6MTIgQ0VUIE1hbmZyZWQgTW9zZXIgYSA9RTljcml0IDoKPiBTbyAuLiBJIHRyaWVkIHRoaXMgbm93LiBTZWVtcyBsaWtlIHNvbWV0aGluZyBvbiBnaXRib3ggaXMgbm90IGNvbmZpZ3VyZWQKPiBjb3JyZWN0bHkgZm9yIG1lIGJlY2F1c2UgdGhlIFlvdXIgUE1DcyBkcm9wIGRvd24gY29udGFpbnMgbm8gZW50cmllcyBhcGFydAo+IGZyb20gWW91ciBQTUNzLgo+PTIwCj4gQ2FuIHNvbWVvbmUgZWl0aGVyIGZpeCB0aGlzIGZvciBtZSBvciBjcmVhdGUgbWF2ZW4tcmVzb2x2ZXItYW50LXRhc2tzCj4gcmVwb3NpdG9yeT8gVGhlbiBJIGNhbiBkbyB0aGUgcmVzdC4KPj0yMAo+IHRoeAo+PTIwCj4gbWFuZnJlZAo+PTIwCj4gSGVydj1FOSBCT1VURU1ZIHdyb3RlIG9uIDIwMTctMTEtMjMgMTU6MDY6Cj4gPiB5ZXMsIHRoYXQncyBHaXRCb3ggc2VsZiBzZXJ2aWNlIFsxXSwgZWFzeSB0byB1c2UsIGp1c3Q6Cj4gPiAxLiBzdGFydCBieSBjaG9vc2luZyB5b3VyIFBNQyBiZWZvcmUgZG9pbmcgYW55IG90aGVyIGNoYW5nZSAob3IgeW91IG1heQo+ID4gY3JlYXRlIGEgIm1hdmVuLW1hdmVuLXNvbWV0aGluZy5naXQiIGxpa2UgSSBkaWQpCj4gPiAyLiBjaGFuZ2UgIkdpdEh1YiBub3RpZmljYXRpb24gbGlzdCIgdG8gaXNzdWVzQG1hdmVuLmFwYWNoZS5vcmcKPiA+PTIwCj4gPiB0aGUgb25seSBpc3N1ZSBJIHNlZSBpcyB0aGUgbWl4IG9mIEFydGlmYWN0IFJlc29sdmVyIG9uIGdpdC13aXAgYW5kCj4gPiBBcnRpZmFjdCBSZXNvbHZlciBBbnQgVGFza3Mgb24gZ2l0Ym94OiBidXQgb25lIGRheSwgSU5GUkEtMTU0MzYgd2lsbAo+ID4gcHJvYmFibHkgYmUgZG9uZQo+ID49MjAKPiA+IFJlZ2FyZHMsCj4gPj0yMAo+ID4gSGVydj1FOQo+ID49MjAKPiA+IFsxXSBodHRwczovL2dpdGJveC5hcGFjaGUub3JnLwo+ID49MjAKPiA+IExlIGpldWRpIDIzIG5vdmVtYnJlIDIwMTcsIDE5OjI3OjA2IENFVCBTdGVwaGVuIENvbm5vbGx5IGEgPUU5Y3JpdCA6Cj4gPj4gSGVydj1FOSBtaWdodCBrbm93Li4uIGNvdWxkIGJlIHNlbGYtc2VydmljZSBvbiBnaXRib3ghCj4gPj49MjAKPiA+PiBJIGhhdmUgdHdvIHJlcG9zIHRvIGNyZWF0ZSBhZnRlciB0aGUgSmVua2lucyBTZXJ2ZXIgaXMgdXBncmFkZWQgb24KPiA+PiBTdW5kYXksCj4gPj4gc28gbGV0IG1lIGtub3cgdGhlIHByb2Nlc3MKPiA+Pj0yMAo+ID4+IE9uIFRodSAyMyBOb3YgMjAxNyBhdCAxNjoxMywgTWFuZnJlZCBNb3NlciA8bWFuZnJlZEBzaW1wbGlnaWxpdHkuY29tPj0KPTIwCndyb3RlOgo+ID4+ID4gU28gaG93IGRvIEkgbWFrZSB0aGlzIHJlcG8gY29weSBoYXBwZW4/IEFuIGluZnJhIHRpY2tldCBvciBzb21ldGhpbmcKPiA+PiA+IGxpa2UKPiA+PiA+IHRoYXQ/Cj4gPj4gPj0yMAo+ID4+ID4gU3RlcGhlbiBDb25ub2xseSB3cm90ZSBvbiAyMDE3LTExLTIyIDIzOjUzOgo+ID4+ID4gPiBPbiBUaHUgMjMgTm92IDIwMTcgYXQgMDQ6MjAsIE1hbmZyZWQgTW9zZXIgPG1hbmZyZWRAc2ltcGxpZ2lsaXR5LmM9Cm9tPgo+ID4+ID49MjAKPiA+PiA+IHdyb3RlOgo+ID4+ID4gPj4gU3RhdHVzIHVwZGF0ZSBhbmQgcXVlc3Rpb25zOgo+ID4+ID4gPj49MjAKPiA+PiA+ID4+IC0gZGVtb3MgYXJlIGFsbCBub3cgaW4gbWFzdGVyIGFuZCBwYXJ0IG9mIHRoZSBtdWx0aSBtb2R1bGUgYnVpbGQKPiA+PiA+ID4+IC0gbm8gY2hhbmdlcyBvbiB0aGUgYW50IHRhc2tzIGZvciBub3cKPiA+PiA+ID4+PTIwCj4gPj4gPiA+PiBRdWVzdGlvbnM6Cj4gPj4gPiA+Pj0yMAo+ID4+ID4gPj4gMS4gQ2FuIEkgZGVsZXRlIHRoZSBkZW1vcyBicmFuY2ggbm93IG9yIGRvIHdlIHdhaXQgdW50aWwgbmV4dAo+ID4+ID4gPj4gcmVsZWFzZT8KPiA+PiA+ID4+IEkKPiA+PiA+ID4+IHdvdWxkIHByZWZlciB0byBkZWxldGUgdGhlIGJyYW5jaCBhbmQgY2xvc2UgdGhlIHRpY2tldCB0byBiZSBob25lPQpzdC4KPiA+PiA+ID4+PTIwCj4gPj4gPiA+PiAyLiBJIGxpa2UgdGhlIGlkZWEgb2YgcHJvbW90aW5nIHRoZSBhbnQgdGFzayBmcm9tIGJlaW5nIGhpZGRlbiBpbgo+ID4+ID4gPj4gdGhlCj4gPj4gPiA+PiBicmFuY2ggaW50byB0aGVpciBvd24gcmVwby4gQWxsIHdlIHdvdWxkIGhhdmUgdG8gZG8gaXMgdG8gY29weSB0aGUKPiA+PiA+PTIwCj4gPj4gPiBleGlzdGluZwo+ID4+ID49MjAKPiA+PiA+ID4+IHJlcG8gc29tZWhvdyBpbnRvIGEgbmV3IHJlcG8gaW4gYXBhY2hlIGdpdC4gVGhlbiB3ZSBjYW4gZERlbGV0ZSBhPQpsbAo+ID4+ID4gPj4gdGhlCj4gPj4gPiA+PiBicmFuY2hlcyBhcGFydCBmcm9tIHRoZSBhbnQtdGFzayBicmFuY2ggYW5kIG1ha2UgdGhhdCB0aGUgbWFzdGVyLgo+ID4+ID4gPj4gRG9uZS4KPiA+PiA+PTIwCj4gPj4gPiBJCj4gPj4gPj0yMAo+ID4+ID4gPj4gYW0gaGFwcHkgdG8gZG8gdGhhdCBpbiB0ZXJtcyBvZiB0aGUgYnJhbmNoZXMgYW5kIHNvIG9uIGJ1dCBob3cgZG89CiBJCj4gPj4gPiA+PiBnbwo+ID4+ID4gPj4gYWJvdXQgZ2V0dGluZyB0aGUgcmVwbyBjb3BpZWQgaW50byBhIG5ldyByZXBvIG5hbWVkCj4gPj4gPiA+PiBtYXZlbi1yZXNvbHZlci1hbnQtdGFza3M/Cj4gPj4gPiA+PTIwCj4gPj4gPiA+IEkgbGlrZSB0aGF0IHNvbHV0aW9uIHRvbwo+ID4+ID4gPj0yMAo+ID4+ID4gPj4gVGhhbmtzCj4gPj4gPiA+Pj0yMAo+ID4+ID4gPj4gTWFuZnJlZAo+ID4+ID4gPj49MjAKPiA+PiA+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQo9MkQtLQo+ID4+ID4gPj4gLQo+ID4+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+ID4+PTIwCj4gPj4gPiA+PiAtLQo+ID4+ID4gPj0yMAo+ID4+ID4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+PiA+PTIwCj4gPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPj0yMAo+ID4+ID4gLS0KPiA+Pj0yMAo+ID4+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0OTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE5vdiAxNiAxMzo1MDowMiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0OTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNURCNzgxMDg4QwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDE2IE5vdiAyMDE3IDEzOjUwOjAyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzMyOTYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTYgTm92IDIwMTcgMTM6NTA6MDIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMzMjI3IGludm9rZWQgYnkgdWlkIDUwMCk7IDE2IE5vdiAyMDE3IDEzOjUwOjAxIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzMyMTYgaW52b2tlZCBieSB1aWQgOTkpOyAxNiBOb3YgMjAxNyAxMzo1MDowMSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMTYgTm92IDIwMTcgMTM6NTA6MDEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBEN0MyNDE4MDVBQQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMTYgTm92IDIwMTcgMTM6NTA6MDAgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgMk16XzEzNktjS3lFIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVGh1LCAxNiBOb3YgMjAxNyAxMzo0OTo1OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDYuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjhdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNTAxRjk1RkQ0NwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMTYgTm92IDIwMTcgMTM6NDk6NTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMjkgd2l0aCBNRQoJaWQgYWRweDF3MDBvMjBVZmR5MDNkcHhYVzsgVGh1LCAxNiBOb3YgMjAxNyAxNDo0OTo1NyArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBUaHUsIDE2IE5vdiAyMDE3IDE0OjQ5OjU3ICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IE1hdmVuIHJlc29sdmVyIGJyYW5jaCBjb25zb2xpZGF0aW9uCkRhdGU6IFRodSwgMTYgTm92IDIwMTcgMTQ6NDk6NTUgKzAxMDAKTWVzc2FnZS1JRDogPDE2NDAzNTcuNVhXbVlPTmJFYkBnaWdhPgpJbi1SZXBseS1UbzogPENBK25Qbk13ZWpoYWt1RE5UdVYwTDFEdzRtQVNtaExyPVNmcWc3dkJKNGpYTUJ2dno9QUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPDIwMTcxMTA5MDUzNTUxLjk1N0Q0MjlDNTBEMUBkZDE3MzMyLmthc3NlcnZlci5jb20+IDwxMTAzNDg5MC5jWVhKcXBncHFlQGdpZ2E+IDxDQStuUG5Nd2VqaGFrdUROVHVWMEwxRHc0bUFTbWhMcj1TZnFnN3ZCSjRqWE1CdnZ6PUFAbWFpbC5nbWFpbC5jb20+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKZmVhc2libGUsIGJ1dCBJIHJlYWxseSBkb24ndCBsaWtlIGl0OiBzZXBhcmF0aW9uIGlzIGdvb2QuCgpzZXJpb3VzbHksIGp1c3QgbWVyZ2UgZGVtb3MgYW5kIGxldCBhbnQtdGFza3Mgc2VwYXJhdGUsIGFuZCB3ZSBoYXZlIGEgcHJldHQ9Cnk9MjAKZ29vZCBjb21wcm9taXNlIG9uIGV2ZXJ5IGFzcGVjdAoob3IgZXZlbiBkcm9wIGFudCB0YXNrcyBpZiByZWFsbHkgdGhpcyBpcyBjYXVzaW5nIHVzIHRvbyBtdWNoIGhlYWRhY2hlLi4uKQoKUmVnYXJkcywKCkhlcnY9RTkKCkxlIGpldWRpIDE2IG5vdmVtYnJlIDIwMTcsIDEwOjAzOjA3IENFVCBTdGVwaGVuIENvbm5vbGx5IGEgPUU5Y3JpdCA6Cj4gT24gVGh1IDE2IE5vdiAyMDE3IGF0IDA3OjUxLCBIZXJ2PUU5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3JvdD0KZToKPiA+IEkganVzdCBwdXNoZWQgYW4gdXBkYXRlIG9mIGRlcGVuZGVuY2llcyBpbWFnZSB0aGF0IHNob3dzIHRoZSBleHRlcm5hbAo+ID4gbWF2ZW4tCj4gPiByZXNvbHZlci1wcm92aWRlciAoaW4geWVsbG93KSBpbnNpZGUgdGhlIHJlYWN0b3IgZGVwZW5kZW5jeSBncmFwaCAoaW4KPiA+IGJsdWUpCj4gPj0yMAo+ID4gVGhhdCBzaG93cyB0aGUgY2hpY2tlbiBhbmQgZWdnIGlzc3VlIG9uIHJlbGVhc2luZyB3ZSdsbCBoYXZlIG9uIEFQSQo+ID4gYnJlYWtpbmcKPiA+IGNoYW5nZS4gUGVvcGxlIGFsd2F5cyBidWlsZGluZyBmcm9tIHNvdXJjZSAobGlrZSBEZWJpYW4pIHdpbGwgaGF2ZSB0aGUKPiA+IGlzc3VlCj4gPiBhbHNvLgo+ID49MjAKPiA+IEZvciBkZW1vcywgd2hpY2ggYXJlIG5vdCByZWFsbHkgcHVibGlzaGVkIGR1cmluZyB0aGUgcmVsZWFzZSAoanVzdCBhcwo+ID4gZG9jdW1lbnRhdGlvbiksIGRpc2FibGluZyB0aGUgbW9kdWxlIGluIHRoZSBidWlsZCB3aGVuIG5lY2Vzc2FyeSBpcwo+ID4gc3VmZmljaWVudCwKPiA+IHdvbid0IGNoYW5nZSBtYW55IHRoaW5ncy4gRm9yIGFudCB0YXNrcywgZGlzYWJsaW5nIHRoZSBtb2R1bGUgd2lsbCBub3QKPiA+IHB1Ymxpc2gKPiA+IHRoZSBhcnRpZmFjdDogdGhpcyB3aWxsIGhhdmUgYSB2aXNpYmxlIGltcGFjdC4KPj0yMAo+IFNob3VsZCB3ZSBqdXN0IGJpdGUgdGhlIGJ1bGxldCBhbmQgYnJpbmcgcmVzb2x2ZXIgaW4tdHJlZSBhcyBtb2R1bGVzIGluCj4gbWF2ZW4gY29yZS4uLiBsZWF2aW5nIGRlbW9zIGFuZCBhbnQgdGFza3MgaGVyZT8KPj0yMAo+ID4gUmVnYXJkcywKPiA+PTIwCj4gPiBIZXJ2PUU5Cj4gPj0yMAo+ID4gTGUgbWVyY3JlZGkgMTUgbm92ZW1icmUgMjAxNywgMjM6MDU6MTQgQ0VUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOgo+ID4gPiBpdCBzZWVtcyBJIGhhdmUgbm90IGJlZW4gY2xlYXI6IEknbGwgdHJ5IHRvIGV4cGxhaW4gYmV0dGVyCj4gPiA+PTIwCj4gPiA+IDEuIG1hdmVuLXJlc29sdmVyLWFudC10YXNrcyBkZXBlbmRzIG9uIG1hdmVuLXJlc29sdmVyLXByb3ZpZGVyIChmcm9tCj4gPj0yMAo+ID4gTWF2ZW4KPiA+PTIwCj4gPiA+IGNvcmUpCj4gPiA+IDIuIG1hdmVuLXJlc29sdmVyLXByb3ZpZGVyICh0aGVuIE1hdmVuIGNvcmUpIGRlcGVuZHMgb24gbWF2ZW4tcmVzb2x2ZXIKPiA+ID49MjAKPiA+ID4gaWYgd2UgcHV0IG1hdmVuLXJlc29sdmVyLWFudC10YXNrcyBpbiB0aGUgc2FtZSByZWFjdG9yIHRoYW4KPiA+PTIwCj4gPiBtYXZlbi1yZXNvbHZlciwKPiA+PTIwCj4gPiA+IHdlIGNhbid0IHJlbGVhc2UgYW55IG1hdmVuLXJlc29sdmVyIEFQSSBjaGFuZ2UgdGhhdCBicmVha3MKPiA+PTIwCj4gPiBtYXZlbi1yZXNvbHZlci0KPiA+PTIwCj4gPiA+IHByb3ZpZGVyCj4gPiA+PTIwCj4gPiA+IGV4YW1wbGU6IGlmIHdlIG1vdmUgbWF2ZW4tcmVzb2x2ZXIgY29kZSB0byBvcmcuYXBhY2hlLm1hdmVuIGphdmEgcGFjaz0KYWdlCj4gPj0yMAo+ID4gaW4KPiA+PTIwCj4gPiA+IG1hdmVuLXJlc29sdmVyIDIuMC4wLVNOQVBTSE9ULCB3ZSBuZWVkIG1hdmVuLXJlc29sdmVyLXByb3ZpZGVyCj4gPiA+IDQuMC4wLVNOQVBTSE9UIHRoYXQgdXNlcyBtYXZlbi1yZXNvbHZlciAyLjAuMC1TTkFQU0hPVCB3aXRoIHRoaXMgbmV3Cj4gPiA+IGphdmEKPiA+ID4gcGFja2FnZS4gVGhlbiB0cnkgdG8gcmVsZWFzZSBhbnl0aGluZzogeW91IGNhbid0LCB1bmxlc3MgeW91IGRvbid0IHRyeQo+ID4gPiB0bwo+ID4gPiByZWxlYXNlIG1hdmVuLSByZXNvbHZlci1hbnQtdGFza3MKPiA+ID49MjAKPiA+ID4gKHRoZSBjb25zZXF1ZW5jZSBvbiB2ZXJzaW9uIGNvbnNpc3RlbmN5IGlzIGFub3RoZXIgd2F5IHRvIGRlc2NyaWJlIHRoZQo+ID4gPiBpc3N1ZSwgYnV0IHRoYXQgaXMgbW9yZSBzdWJ0bGUsIHRoZW4gSSBjaG9zZSB0byBkZXNjcmliZSB0aGUgbW9zdAo+ID4gPiB2aXNpYmxlCj4gPiA+IGlzc3VlLCB3aXRoIEFQSSBicmVha2luZyBjaGFuZ2UpCj4gPiA+PTIwCj4gPiA+IElNSE8sIGFub3RoZXIgY29uc2VxdWVuY2UgY291bGQgYmU6IG1hdmVuLXJlc29sdmVyLWFudC10YXNrcyB3b3VsZAo+ID49MjAKPiA+IHBlcmhhcHMKPiA+PTIwCj4gPiA+IGJldHRlciBiZSB2ZXJzaW9ubmVkIGxpa2UgbWF2ZW4tcmVzb2x2ZXItcHJvdmlkZXIKPiA+ID49MjAKPiA+ID49MjAKPiA+ID4gTWVyZ2luZyByZXNvbHZlci1kZW1vcyBpcyByZWFsbHkgdGhlIGdyZWF0IGJpZyBpZGVhOiB3aXRoIHRoYXQgbWVyZ2UsCj4gPiA+IG1vZGlmeWluZyBtYXZlbi1ycmVzb2x2ZXIgY2FuIGltbWVkaWF0ZWx5IGJlIHRlc3RlZCB3aXRoIGRlbW9zOiB0aGF0Jz0KbGwKPiA+PTIwCj4gPiBiZQo+ID49MjAKPiA+ID4gc28gbXVjaCBlYXNpZXIgdG8gbWFrZSBjaGFuZ2VzIHRvIG1hdmVuLXJlc29sdmVyIGNvZGUhCj4gPiA+PTIwCj4gPiA+IFJlZ2FyZHMsCj4gPiA+PTIwCj4gPiA+IEhlcnY9RTkKPiA+ID49MjAKPiA+ID4gTGUgbWVyY3JlZGkgMTUgbm92ZW1icmUgMjAxNywgMDk6MDI6MTIgQ0VUIE1pY2hhZWwgT3NpcG92IGEgPUU5Y3JpdCA6Cj4gPiA+ID4gV2h5IC0xIG9uIHRoZSBBbnQgdGFza3M/Cj4gPiA+ID49MjAKPiA+ID4gPiBBbSAyMDE3LTExLTE1IHVtIDAwOjUwIHNjaHJpZWIgSGVydj1FOSBCT1VURU1ZOgo+ID4gPiA+ID4gSSBhbnN3ZXJlZCBvbiB0aGUgbWFpbGluZyBsaXN0IGFuZCBvbiB0aGUgMiBKaXJhIGlzc3Vlcwo+ID4gPiA+ID4gSW4gc3VtbWFyeSwgKzEgdG8gbWVyZ2UgZGVtb3MsIC0xIHRvIG1lcmdlIGFudC10YXNrcwo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gSGVydj1FOQo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IExlIG1hcmRpIDE0IG5vdmVtYnJlIDIwMTcsIDE4OjE5OjQwIENFVCBNYW5mcmVkIE1vc2VyIGEgPUU5Y3JpdCA6Cj4gPiA+ID4gPj4gQW55IGZlZWRiYWNrIG9yIHNob3VsZCBJIGp1c3QgZ28gYWhlYWQgd2l0aCB0aGUgY2xlYW51cD8KPiA+ID4gPiA+Pj0yMAo+ID4gPiA+ID4+IE1hbmZyZWQKPiA+ID4gPiA+Pj0yMAo+ID4gPiA+ID4+IE1hbmZyZWQgTW9zZXIgd3JvdGUgb24gMjAxNy0xMS0wOCAyMTozNToKPiA+ID4gPiA+Pj4gSGkgYWxsLAo+ID4gPiA+ID4+Pj0yMAo+ID4gPiA+ID4+PiBJIGhhdmUgc3RhcnRlZCBhbmQgbWFkZSBnb29kIHByb2dyZXNzIG9uIGdldHRpbmcgTWF2ZW4gcmVzb2x2ZXIKPiA+ID4gPiA+Pj4gYWxsCj4gPiA+ID4gPj4+IGludG8KPiA+ID4gPiA+Pj4gdGhlIG1hc3RlciBicmFuY2ggaW5zdGVhZCBvZiBoYXZpbmcgbWFzdGVyLCBkZW1vcyBhbmQgYW50LXRhc2tzPQogaW4KPiA+ID4gPiA+Pj4gc2VwYXJhdGUgYnJhbmNoZXMuCj4gPiA+ID4gPj4+PTIwCj4gPiA+ID4gPj4+IERldGFpbHMgYXJlIHRyYWNrZWQgaW4KPiA+ID4gPiA+Pj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NUkVTT0xWRVItMjgKPiA+ID4gPiA+Pj49MjAKPiA+ID4gPiA+Pj4gQWxsIG9mIGl0IGlzIG5vdyBpbiBhIG5ldyBicmFuY2ggY2FsbGVkIG1hc3Rlci1hbGwgZm9yIHlvdSB0byBzPQplZS4KPiA+ID4gPiA+Pj49MjAKPiA+ID4gPiA+Pj4gSSBhbSBub3cgd29uZGVyaW5nIHdoYXQgdGhlIG5leHQgc3RlcHMgYXJlLiBJIGFkZGVkIHdoYXQgSSB0aGluawo+ID4gPiA+ID4+PiBzaG91bGQKPiA+ID4gPiA+Pj4gaGFwcGVuIG5leHQgaW4gdGhlIGlzc3VlIGluIGEgY29tbWVudCBhbmQgd291bGQgYXBwcmVjaWF0ZSBhbnkKPiA+PTIwCj4gPiBpbnB1dAo+ID49MjAKPiA+ID4gPiA+Pj4gb24KPiA+ID4gPiA+Pj4gdGhlIGN1cnJlbnQgc2V0dXAgYW5kIG5leHQgc3RlcHMuCj4gPiA+ID4gPj4+PTIwCj4gPiA+ID4gPj4+IEFueSBoZWxwIHdvdWxkIGJlIGFwcHJlY2lhdGVkLgo+ID4gPiA+ID4+Pj0yMAo+ID4gPiA+ID4+PiBtYW5mcmVkCj4gPj0yMAo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj0yMAo+ID4gPiA+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQo9MkQtLQo+ID4gPiA+ID4gLQo+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID49MjAKPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj0yMAo+ID4gLS0KPj0yMAo+IFNlbnQgZnJvbSBteSBwaG9uZQoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0ODAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE5vdiAxNCAyMzo1MDo1NSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0ODAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNzRDRjYxMERFOAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDE0IE5vdiAyMDE3IDIzOjUwOjU1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzY1IGludm9rZWQgYnkgdWlkIDUwMCk7IDE0IE5vdiAyMDE3IDIzOjUwOjU1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2NzAgaW52b2tlZCBieSB1aWQgNTAwKTsgMTQgTm92IDIwMTcgMjM6NTA6NTMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2NTkgaW52b2tlZCBieSB1aWQgOTkpOyAxNCBOb3YgMjAxNyAyMzo1MDo1MyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMTQgTm92IDIwMTcgMjM6NTA6NTMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAwNTBFOTE4MDhBMAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTQgTm92IDIwMTcgMjM6NTA6NTMgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMS44ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xLjggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGFVMHQxTHpVa21EWiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVR1ZSwgMTQgTm92IDIwMTcgMjM6NTA6NTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDAyLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI0XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDQ1MUNENUZDREEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDE0IE5vdiAyMDE3IDIzOjUwOjUxICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDc4IHdpdGggTUUKCWlkIFp6cWwxdzAwZTIwVWZkeTAzenFsd3U7IFdlZCwgMTUgTm92IDIwMTcgMDA6NTA6NDUgKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogV2VkLCAxNSBOb3YgMjAxNyAwMDo1MDo0NSArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBNYXZlbiByZXNvbHZlciBicmFuY2ggY29uc29saWRhdGlvbgpEYXRlOiBXZWQsIDE1IE5vdiAyMDE3IDAwOjUwOjQ1ICswMTAwCk1lc3NhZ2UtSUQ6IDwxNjY3MTk1LnQ3SGcyT005YmVAZ2lnYT4KSW4tUmVwbHktVG86IDwyMDE3MTExNDE3MTk0MC4xRUFGNjI5QzFGOTdAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPgpSZWZlcmVuY2VzOiA8MjAxNzExMDkwNTM1NTEuOTU3RDQyOUM1MEQxQGRkMTczMzIua2Fzc2VydmVyLmNvbT4gPDIwMTcxMTE0MTcxOTQwLjFFQUY2MjlDMUY5N0BkZDE3MzMyLmthc3NlcnZlci5jb20+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKSSBhbnN3ZXJlZCBvbiB0aGUgbWFpbGluZyBsaXN0IGFuZCBvbiB0aGUgMiBKaXJhIGlzc3VlcwpJbiBzdW1tYXJ5LCArMSB0byBtZXJnZSBkZW1vcywgLTEgdG8gbWVyZ2UgYW50LXRhc2tzCgpSZWdhcmRzLAoKSGVydj1FOQoKTGUgbWFyZGkgMTQgbm92ZW1icmUgMjAxNywgMTg6MTk6NDAgQ0VUIE1hbmZyZWQgTW9zZXIgYSA9RTljcml0IDoKPiBBbnkgZmVlZGJhY2sgb3Igc2hvdWxkIEkganVzdCBnbyBhaGVhZCB3aXRoIHRoZSBjbGVhbnVwPwo+PTIwCj4gTWFuZnJlZAo+PTIwCj4gTWFuZnJlZCBNb3NlciB3cm90ZSBvbiAyMDE3LTExLTA4IDIxOjM1Ogo+ID4gSGkgYWxsLAo+ID49MjAKPiA+IEkgaGF2ZSBzdGFydGVkIGFuZCBtYWRlIGdvb2QgcHJvZ3Jlc3Mgb24gZ2V0dGluZyBNYXZlbiByZXNvbHZlciBhbGwgaW50bwo+ID4gdGhlIG1hc3RlciBicmFuY2ggaW5zdGVhZCBvZiBoYXZpbmcgbWFzdGVyLCBkZW1vcyBhbmQgYW50LXRhc2tzIGluCj4gPiBzZXBhcmF0ZSBicmFuY2hlcy4KPiA+PTIwCj4gPiBEZXRhaWxzIGFyZSB0cmFja2VkIGluIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTVJFU09MVkVSLT0KMjgKPiA+PTIwCj4gPiBBbGwgb2YgaXQgaXMgbm93IGluIGEgbmV3IGJyYW5jaCBjYWxsZWQgbWFzdGVyLWFsbCBmb3IgeW91IHRvIHNlZS4KPiA+PTIwCj4gPiBJIGFtIG5vdyB3b25kZXJpbmcgd2hhdCB0aGUgbmV4dCBzdGVwcyBhcmUuIEkgYWRkZWQgd2hhdCBJIHRoaW5rIHNob3VsZAo+ID4gaGFwcGVuIG5leHQgaW4gdGhlIGlzc3VlIGluIGEgY29tbWVudCBhbmQgd291bGQgYXBwcmVjaWF0ZSBhbnkgaW5wdXQgb24KPiA+IHRoZSBjdXJyZW50IHNldHVwIGFuZCBuZXh0IHN0ZXBzLgo+ID49MjAKPiA+IEFueSBoZWxwIHdvdWxkIGJlIGFwcHJlY2lhdGVkLgo+ID49MjAKPiA+IG1hbmZyZWQKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQxOTAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE9jdCAgOCAxMzozOTozNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxOTAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQkQ4QUMxMDQ2NgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sICA4IE9jdCAyMDE3IDEzOjM5OjM0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDIwMjEgaW52b2tlZCBieSB1aWQgNTAwKTsgOCBPY3QgMjAxNyAxMzozOTozNCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDE5NDggaW52b2tlZCBieSB1aWQgNTAwKTsgOCBPY3QgMjAxNyAxMzozOTozNCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQxOTM3IGludm9rZWQgYnkgdWlkIDk5KTsgOCBPY3QgMjAxNyAxMzozOTozNCAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAwOCBPY3QgMjAxNyAxMzozOTozNCArMDAwMApSZWNlaXZlZDogZnJvbSBiZW5lZGlrdHMtbWJwLmxvY2FsIChkc2xiLTA4OC0wNzgtMjE1LTA3Ny4wODguMDc4LnBvb2xzLnZvZGFmb25lLWlwLmRlIFs4OC43OC4yMTUuNzddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgOEUxMzMxQTAwNTUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sICA4IE9jdCAyMDE3IDEzOjM5OjMzICswMDAwIChVVEMpCkZyb206IEJlbmVkaWt0IFJpdHRlciA8YnJpdHRlckBhcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47CgljaGFyc2V0PXV0Zi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKTWltZS1WZXJzaW9uOiAxLjAgKE1hYyBPUyBYIE1haWwgMTEuMCBcKDM0NDUuMS42XCkpClN1YmplY3Q6IFJlOiBNYXZlbiBTdXJlZmlyZSBhbmQgSlVuaXQgNQpEYXRlOiBTdW4sIDggT2N0IDIwMTcgMTU6Mzk6MzAgKzAyMDAKUmVmZXJlbmNlczogPEZFMTA3QjRELUQ3QjQtNDcxQi04NzA5LUIxOTcxNzE4RDE0MEBhcGFjaGUub3JnPgogPENBQ2NlZmdmZmRaR283TUQzbWV6ejByRy1MRGJWQkdxWmZZaU8xTjdtcHRMZXJyRHFmUUBtYWlsLmdtYWlsLmNvbT4KIDxiOGNhNzYxZS0zMTViLTAyMjYtMzg1Ny1mMGQzOTJhNzlkYjBAZ214LmRlPgogPENBQ2NlZmdkK21MaGFhVWFBUzRuQTlNU2E4WDhUQ29FQW5XMzdpVjlEal9vQ0tDMlh2QUBtYWlsLmdtYWlsLmNvbT4KIDxDQUt1VnpCUlo9c2g1PWIyUm9UenZRV1M1emcwXzhlOWttTVFfOWRnY1Zja3lUMFJlLXdAbWFpbC5nbWFpbC5jb20+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPENBS3VWekJSWj1zaDU9YjJSb1R6dlFXUzV6ZzBfOGU5a21NUV85ZGdjVmNreVQwUmUtd0BtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JZDogPDE2QjU4QkFBLTUxNDUtNDk2Ri05MUZFLUJBQjUzQkEzMDU1MUBhcGFjaGUub3JnPgpYLU1haWxlcjogQXBwbGUgTWFpbCAoMi4zNDQ1LjEuNikKCkhlbGxvIFRpYm9yCgo+IEFtIDA2LjEwLjIwMTcgdW0gMDE6MTggc2NocmllYiBUaWJvciBEaWdhbmEgPQo8dGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tPjoKPj0yMAo+IEhpIEJlbmVkaWt0LAo+PTIwCj4gV291bGQgeW91IGFncmVlIHdpdGggdGhpcyBwbGFuLgo+IFNpbmNlIHdlIHRyeSB0byByZWxlYXNlIHZlcnNpb24gMi4yMS4wIHdpdGggSmlnc2F3IG1vZHVsYXJpdHkgd2hpY2ggaXMgPQpKYXZhIDkgcmVsYXRlZCBmZWF0dXJlLCB3ZSBjYW4gbWFrZSB0aGUgc2FtZSBjb21wcm9taXNlIHdpdGggSlVuaXQ1IGluID0KbmV4dCB2ZXJzaW9uIDIuMjIuMC4gQWx0b3VnaCBTdXJpZmlyZSBpcyBjb21waWxlZCB3aXRoIGphdmFjIC1zb3VyY2UgMS42ID0KLXRhcmdldCAxLjYsIGFuZCBKVW5pdCA1L0phdmEgMS44IHByb3ZpZGVyIGlzIHN0YW5kYWxvbmUgamFyIGZpbGUgd2hpY2ggPQpkb2VzIG5vdCBmb3JjZSB0aGUgcGx1Z2luIGl0c2VsZiB0byBsb2FkIEphdmEgOCBjbGFzc2VzIGZyb20gdGhlID0KcHJvdmlkZXIsIHdlIGNhbiBmcmVlbHkgd29yayBvbiBKVW5pdCA1IHByb3ZpZGVyIGFmdGVyIHRoZSB2ZXJzaW9uID0KMi4yMS4wLkppZ3NhdyBoYXMgYmVlbiByZWxlYXNlZC4gSSBndWVzcyBJIHdpbGwgc3RhcnQgdGhlIHJlbGVhc2UgVm90ZSA9Cm5leHQgd2VlayBhbmQgdGhlbiB3ZSBjYW4gcGlja3VwIHlvdXIgY29tbWl0cyBmcm9tIHRoZSBicmFuY2gganVuaXQ1LCA9CnNxdWFzaCB0aGVtIGludG8gb25lIHNpbmdsZSBjb21taXQgYW5kIHJlYmFzZSBvbiB0aGUgdG9wIG9mIGZ1dHVyZSA9Cm1hc3Rlci9IRUFELgo+IEkgYmVsaWV2ZSB5b3Ugd2FudCB0byBtZXJnZSBzb21lIG1vcmUgZml4ZXMgZnJvbSBKVW5pdCB0ZWFtIGFmdGVyd2FyZHMgPQphbmQgbWF5YmUgdG8gYWRkIHNvbWUgbW9yZSB0ZXN0cy4KPj0yMAo+IFdoYXQgZG8geW91IHRoaW5rLCB3b3VsZCBpdCBiZSBwb3NzaWJsZSBmb3IgeW91PwoKVGhpcyB3b3VsZCBiZSBzbyBncmVhdCEgST1FMj04MD05OW0gY3VycmVudGx5IHJlYWxseSBibG9ja2VkIGJ5IHRoZSA9CmZhY3QsIHRoYXQgSSBjYW49RTI9ODA9OTl0IHJ1biB0aGUgc3VyZWZpcmUgYnVpbGQgd2l0aG91dCBlcnJvcnMuIElmIHlvdSA9CmNvdWxkIGhlbHAgZml4IHRoaXMsIG1heWJlIGJ5IHJlYmFzaW5nIGV2ZXJ5dGhpbmcsIHRoaXMgd291bGQgYmUgdmVyeSA9Cm11Y2ggYXBwcmVjaWF0ZWQuCgpMb29raW5nIGZvcndhcmQgdG8gaGVhcmluZyBmcm9tIHlvdSEKUmVnYXJkcywKQmVuZWRpa3QKCj49MjAKPiBDaGVlcnMKPiBUaWJvcgo+PTIwCj4gT24gU3VuLCBPY3QgMSwgMjAxNyBhdCA1OjEyIFBNLCBFbnJpY28gT2xpdmVsbGkgPGVvbGl2ZWxsaUBnbWFpbC5jb20+ID0Kd3JvdGU6Cj4gU29ycnkKPiBJIHdhbnRlZCB0byByZXBseSB0byBhbm90aGVyIG1lc3NhZ2UgZnJvbSBCZW5lZGlrdAo+IEVucmljbwo+PTIwCj4gSWwgZG9tIDEgb3R0IDIwMTcsIDE2OjE3IEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPiBoYSA9CnNjcml0dG86Cj49MjAKPiA+IEhpIEVucmljbywKPiA+Cj4gPiBPbiAwMS8xMC8xNyAxNjowMCwgRW5yaWNvIE9saXZlbGxpIHdyb3RlOgo+ID4gPiBCZW5lZGlrdCwKPiA+ID4gZGlkIHlvdSB0cnkgdG8gdXBkYXRlIGFsbCBvZiB5b3VyIG1hdmVuIHBsdWdpbnMgdG8gbGF0ZXN0IHZlcnNpb24/Cj4gPiA+IENhbiB5b3Ugc2hhcmUgc29tZSBzdGFja3RyYWNlPyBUaGlzIHdpbGwgZ2l2ZSBhIGZpcnN0IGhpbnQgd2l0aG91dCA9CmhhdmluZwo+ID4gPiB0byBidWlsZCBqVURESQo+ID4KPiA+IFRoaXMgaXMgdGhlIHdyb25nIG1haWxpbmcgbGlzdC4uLlVzZXJzIGxpc3Qgd2FzIHRoZSBzdWJqZWN0IGFib3V0ID0KalVEREkKPiA+IDstKS4uCj4gPgo+ID4gTm90IHJlbGF0ZWQgdG8gU3VyZWZpcmUgYW5kIEpVbml0IDUgLi4uCj4gPgo+ID4gS2luZCByZWdhcmRzCj4gPiBLYXJsIEhlaW56IE1hcmJhaXNlCj4gPiA+IENoZWVycwo+ID4gPgo+ID4gPiBFbnJpY28KPiA+ID4KPiA+ID4gSWwgc2FiIDMwIHNldCAyMDE3LCAxMDozNCBCZW5lZGlrdCBSaXR0ZXIgPGJyaXR0ZXJAYXBhY2hlLm9yZz4gaGEKPiA+IHNjcml0dG86Cj4gPiA+Cj4gPiA+PiBIZWxsbywKPiA+ID4+Cj4gPiA+PiBmb3Igb3ZlciBhIHllYXIgbm93IEk9RTI9ODA9OTltIHRyeWluZyB0byBoZWxwIGdldHRpbmcgSlVuaXQgNSA9CnN1cHBvcnQgaW50bwo+ID4gTWF2ZW4KPiA+ID4+IFN1cmVmaXJlLiBUaGlzIGhhcyBiZWVuIGhhcmQgc2luY2UgVGlib3Igc2VlbXMgdG8gYmUgdGhlIG9ubHkgb25lCj4gPiA+PiBtYWludGFpbmluZyBNYXZlbiBTdXJlZmlyZSBhbmQgaGUgaGFkIHRvIGNvbWUgd2l0aCBvdGhlciB0aGluZ3MuCj4gPiA+Pgo+ID4gPj4gRm9yIHRoaXMgcmVhc29uIEk9RTI9ODA9OTlkIGxpa2UgdG8gYXNrIG90aGVyIE1hdmVuIG1haW50YWluZXJzID0KdG8gaGVscCB3aXRoIHRoZQo+ID4gPj4gSlVuaXQgNSBzdXBwb3J0LiBJPUUyPTgwPTk5bSBoYXBweSB0byBkbyB0aGUgd29yaywgYnV0IEk9RTI9ODA9OTltID0KY29uc3RhbnRseSBibG9ja2VkIGJ5Cj4gPiA+PiBvYnNjdXJlIGJ1aWxkIGZhaWx1cmVzIHdoaWNoIEk9RTI9ODA9OTltIHVuYWJsZSB0byByZXNvbHZlIG15c2VsZiA9Cm9yIGJ5IGxhY2sgb2YKPiA+ID4+IGNvZGUgcmV2aWV3IHVuZCBtZXJnZSBvZiBjaGFuZ2VzLgo+ID4gPj4KPiA+ID4+IC0gV29yayBvbiBKVW5pdDUgc3VwcG9ydCBpcyBjdXJyZW50bHkgZG9uZSBpbiB0aGUganVuaXQ1IGJyYW5jaC4KPiA+ID4+IC0gSSBoYXZlIGRyYWZ0ZWQgYSBQcm92aWRlciBMb29rdXAgaW1wbGVtZW50YXRpb24gaW4gdGhlIGp1bml0NSA9CmJyYW5jaCwKPiA+ID4+IGJ1dCBJIGRvbj1FMj04MD05OXQga25vdyB3aGV0aGVyIGl0IHdvcmtzIGJlY2F1c2UgSSBjYW49RTI9ODA9OTl0ID0KZ2V0IHRoZSBpbnRlZ3JhdGlvbgo+ID4gdGVzdHMKPiA+ID4+IHJ1bm5pbmcKPiA+ID4+IC0gVGhlcmUgaXMgYW4gb3BlbiBQUiB0byBtZXJnZSB0aGUgbWFzdGVyIGJyYW5jaCBiYWNrIGludG8ganVuaXQ1Cj4gPiBicmFuY2gsCj4gPiA+PiBidXQgaXQgaGFzIGJ1aWxkIGZhaWx1cmVzIEkgZG9uPUUyPTgwPTk5dCB1bmRlcnN0YW5kIFsxXQo+ID4gPj4KPiA+ID4+IFBsZWFzZSBoZWxwIQo+ID4gPj4gQ2hlZXJzLAo+ID4gPj4gQmVuZWRpa3QKPiA+Cj4gLS0KPj0yMAo+PTIwCj4gLS0gRW5yaWNvIE9saXZlbGxpCj49MjAKPj0yMAo+PTIwCj4gLS09MjAKPiBDaGVlcnMKPiBUaWJvcgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDI4NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgT2N0IDIxIDAyOjE3OjM3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI4NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFMjhFNzEwM0ZCCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMjEgT2N0IDIwMTcgMDI6MTc6MzYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1Nzc4NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBPY3QgMjAxNyAwMjoxNzozNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTc2OTAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjEgT2N0IDIwMTcgMDI6MTc6MzYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NzY3OSBpbnZva2VkIGJ5IHVpZCA5OSk7IDIxIE9jdCAyMDE3IDAyOjE3OjM1IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAyMSBPY3QgMjAxNyAwMjoxNzozNSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDA2Nzc5QzJCQzUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDIxIE9jdCAyMDE3IDAyOjE3OjM1ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEuMwpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMS4zIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgS0FNX05VTVNVQkpFQ1Q9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgUHBQUVVpYmt4ajdBIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAyMSBPY3QgMjAxNyAwMjoxNzozMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDMuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjVdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMDU0MjI1RkI0RQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMjEgT2N0IDIwMTcgMDI6MTc6MzIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMjYgd2l0aCBNRQoJaWQgUTJIWDF3MDBIMjBVZmR5MDMySFhLWTsgU2F0LCAyMSBPY3QgMjAxNyAwNDoxNzozMSArMDIwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBTYXQsIDIxIE9jdCAyMDE3IDA0OjE3OjMxICswMjAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMgpEYXRlOiBTYXQsIDIxIE9jdCAyMDE3IDA0OjE3OjMxICswMjAwCk1lc3NhZ2UtSUQ6IDwxNzA0NDE5LnpmTlhNbHpBWUtAZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zNy1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpJbi1SZXBseS1UbzogPENBK25Qbk13dGpuWkUtNTNBTjUzeEY9TWY2SFktRmJHWXdaQVV3M0VVS0hBNGVLQjUyUUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk13dGpuWkUtNTNBTjUzeEY9TWY2SFktRmJHWXdaQVV3M0VVS0hBNGVLQjUyUUBtYWlsLmdtYWlsLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgorMQp0ZXN0ZWQgb24gTGludXggYW5kIFdpbmRvd3MgMTAgKHdpdGggY21kLCBQb3dlclNoZWxsLCBHaXRCYXNoLCBDeWd3aW4pCgp0aGlzIHRpbWUsIGNvbG9yIGFwcGVhcnMgb24gV2luZG93cyBpbiBldmVyeSBjb25maWd1cmF0aW9uIEkga25vdyBvZiA6KQoKdmVyaWZpY2F0aW9uIG9mIGJpbmFyeSBhcnRpZmFjdHM6IEkgdHJpZWQgdG8gY29tcGFyZSBiaW5hcnkgYXJ0aWZhY3RzIGJ1aWx0PQo9MjAKbG9jYWxseSB3aXRoIGFydGlmYWN0cyBpbiBzdGFnaW5nIHJlcG8gKHVzaW5nIGRpZmZvc2NvcGUpCgpHb29kIG5ld3M6IHVzaW5nIG15IG93biBKREsgOCAod2hpY2ggaXMgbm90IGV4YWN0bHkgdGhlIHNhbWUgYXMgU3RlcGhlbiwgYW49CmQgST0yMApzdXBwb3NlIHdlIGRvbid0IGhhdmUgdGhlIHNhbWUgT1M6IE9TWCB2cyBMaW51eCksIEkgZ290IHRoZSBzYW1lIC5jbGFzcz0yMApiaW5hcmllcwpUaGUgb25seSBkaWZmZXJlbmNlcyBhcmUgdGhlIHVzdWFsIG9uZXMgb24gZ2VuZXJhdGVkIGNvbnRlbnQ6IEkgZm91bmQgMj0yMApub3RhYmxlIG5ldyBsaXR0bGUgZGlmZmVyZW5jZXMgaW4gbWF2ZW4tY29yZS0zLjUuMi5qYXI6CjEuIE1FVEEtSU5GL3Npc3UvamF2YXguaW5qZWN0Lk5hbWVkIGNvbnRlbnQgb3JkZXJpbmcgKG5vdCBhIHN1cnByaXNlIGdpdmVuPQo9MjAKc2FtZSBpc3N1ZSBpbiBNRVRBLUlORi9wbGV4dXMvY29tcG9uZW50cy54bWwpCjIuIG9yZy9hcGFjaGUvbWF2ZW4vbWVzc2FnZXMvYnVpbGQucHJvcGVydGllczoKICAtYnVpbGROdW1iZXI9M0ROT04tQ0FOT05JQ0FMXzIwMTctMTAtMjBUMDA6MTY6MzUrMDI6MDBfaGVydmUKICAtdGltZXN0YW1wPTNEMTUwODQ1MTM5NTk4MwogICtidWlsZE51bWJlcj0zRDEzOGVkZDYxZmQxMDBlYzY1OGJmYTJkMzA3YzQzYjc2OTQwYTVkN2QKICArdGltZXN0YW1wPTNEMTUwODMxMzQ5MzU0NgoKdGhpcyBzZWNvbmQgZGlmZmVyZW5jZSBpcyBpbXBvcnRhbnQgdG8gbWUsIHNpbmNlIHRoaXMgaXMgZXhhY3RseSBvbmUgY2FzZT0yMAp3aGVyZSAicmVwcm9kdWNpYmxlIGJ1aWxkIiBvYmplY3RpdmUgaXMgYWdhaW5zdCBhbm90aGVyIGtleSBBcGFjaGUgb2JqZWN0aXY9CmUsPTIwCndoaWNoIGlzIHRvIGJ1aWxkIGZyb20gc291cmNlIHRhcmJhbGwgZGlzY29ubmVjdGVkIGZyb20gc2NtIGFuZCBrZWVwPTIwCnRyYWNlYWJpbGl0eSBpbnNpZGUgdGhlIGJ1aWx0IGFydGlmYWN0CgpidXQgaW4gZ2VuZXJhbCwgdGhpcyBtYWtlcyBtZSB0aGluayB0aGF0IGJ5IGRlZmluaW5nIHRoZSBtYWpvciBsZXZlbCBvZiBKREs9Cj0yMAp1c2VkIHRvIGJ1aWxkIHRoZSByZWZlcmVuY2UgYmluYXJ5IGFydGlmYWN0cyAoYW5kIGltcHJvdmluZyB0aGUga25vd24gaXNzdWU9CnMpLD0yMAp3ZSBjYW4gZ2V0IGJpbmFyeSB2ZXJpZmlhYmxlIGFydGlmYWN0cwppZSB3ZSBjYW4gY2hlY2sgdGhhdCB0aGUgYXJ0aWZhY3RzIGFyZSBub3QgbW9kaWZpZWQgYnkgc2ltcGx5IGNoZWNraW5nIGhhc2g9Cj0yMAooaW5zdGVhZCBvZiB1c2luZyBkaWZmb3Njb3BlIGFuZCBtYW51YWxseSBhbmFseXppbmcgdGhlIG91dHB1dCkKClJlZ2FyZHMsCgpIZXJ2PUU5CgpMZSBtZXJjcmVkaSAxOCBvY3RvYnJlIDIwMTcsIDAzOjUwOjQzIENFU1QgU3RlcGhlbiBDb25ub2xseSBhID1FOWNyaXQgOgo+IEhpLAo+PTIwCj4gV2Ugc29sdmVkIDI2IGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/dmVyc2lvbj0zRDEyMzM4OTY0PQomc3R5bAo+IGVOYW1lPTNEVGV4dCZwcm9qZWN0SWQ9M0QxMjMxNjkyMgo+PTIwCj4gVGhlcmUgYXJlIDM1NyBpc3N1ZXMgbGVmdCBpbiBKSVJBIGZvciBNYXZlbiBjb3JlOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlM0QlMjBNTkclMjBBTkQlMjA9CnJlc29sCj4gdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlMjBCWSUyMGR1ZSUyMEFTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQz0KJTIwCj4gY3JlYXRlZCUyMEFTQwo+PTIwCj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzMvCj49MjAKPiBUaGUgZGlzdHJpYnV0YWJsZSBiaW5hcmllcyBhbmQgc291cmNlcyBjYW4gYmUgZm91bmQgaGVyZToKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzczL29yZy9hcGFjaGUvPQptYXYKPiBlbi9hcGFjaGUtbWF2ZW4vMy41LjIvCj49MjAKPiBTcGVjaWZpY2FsbHkgdGhlIHppcCwgdGFyYmFsbCBhbmQgc291cmNlIGFyY2hpdmVzIGNhbiBiZSBmb3VuZCBoZXJlOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzMvb3JnL2FwYWNoZS89Cm1hdgo+IGVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItYmluLnppcAo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzMvb3JnL2FwYWNoZS89Cm1hCj4gdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItYmluLnRhci5nego+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzMvb3JnL2FwYWNoZS89Cm1hCj4gdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItc3JjLnppcAo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzMvb3JnL2FwYWNoZS89Cm1hCj4gdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItc3JjLnRhci5nego+PTIwCj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gYXBhY2hlLW1hdmVuLTMuNS4yLXNyYy50YXIuZ3ogc2hhMTogOTdkNmQ3YjE4NDg1Yjc5MDZkZDdmMzEzY2RkNDExOTFkMTZkZD0KZTQ2Cj4gYXBhY2hlLW1hdmVuLTMuNS4yLXNyYy56aXA6IHNoYTE6IGRjOGNhYTVjZGFjYjQwMDk0M2QyNDkxYTAyMGY3NDJhNTE4ZThmMDgKPj0yMAo+IEdpdCB0YWc6Cj4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9M0RtYXZlbi5naXQ7YT0zRGNvbW1pdDtoPTNEMTM4ZT0KZGQ2MWZkMTAwCj4gZWM2NThiZmEyZDMwN2M0M2I3Njk0MGE1ZDdkCj49MjAKPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2NvbXBvbmVudHMvcmVmLzMtTEFURVNULwo+PTIwCj4gVm90ZSBvcGVuIGZvciA3MiBob3Vycy4KPj0yMAo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQo+PTIwCj4gVGhhbmtzLAo+PTIwCj4gU3RlcGhlbi4KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0Mjg4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBPY3QgMjEgMDc6NDU6NTkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0Mjg4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDRGRUMzMTBBOTYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAyMSBPY3QgMjAxNyAwNzo0NTo1OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg4MjIyIGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIE9jdCAyMDE3IDA3OjQ1OjU4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4ODE1NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBPY3QgMjAxNyAwNzo0NTo1OCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg4MTQwIGludm9rZWQgYnkgdWlkIDk5KTsgMjEgT2N0IDIwMTcgMDc6NDU6NTcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDIxIE9jdCAyMDE3IDA3OjQ1OjU3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMjM2NUUxQTEyMzYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDIxIE9jdCAyMDE3IDA3OjQ1OjU3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuNQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC41IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBHZk5tNHBXd2hIWXAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsIDIxIE9jdCAyMDE3IDA3OjQ1OjU0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAxMy5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEzNV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA0MkUzQzVGQjA2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAyMSBPY3QgMjAxNyAwNzo0NTo1NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ3MiB3aXRoIE1FCglpZCBRN2xtMXcwME4yMFVmZHkwMzdsbVdROyBTYXQsIDIxIE9jdCAyMDE3IDA5OjQ1OjQ3ICswMjAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFNhdCwgMjEgT2N0IDIwMTcgMDk6NDU6NDcgKzAyMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogTWF2ZW4gRG9ja2VyIEltYWdlcwpEYXRlOiBTYXQsIDIxIE9jdCAyMDE3IDA5OjQ1OjQ2ICswMjAwCk1lc3NhZ2UtSUQ6IDwxNzA4Mjg1LnhiUVJPSWo5OVpAZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zNy1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpJbi1SZXBseS1UbzogPDIwMTcxMDIxMDQ1ODUwLkYzMzU4MjlDMDFDREBkZDE3MzMyLmthc3NlcnZlci5jb20+ClJlZmVyZW5jZXM6IDxDQUpSdkZkby0zM1pmeGlGc0p3amlHUUpNWVQ1bXUzMWZxRDFmX3UzRlVRVG9Kdj1UdWdAbWFpbC5nbWFpbC5jb20+IDwyNjc4NDE4LjZmOWpjQkYxckNAZ2lnYT4gPDIwMTcxMDIxMDQ1ODUwLkYzMzU4MjlDMDFDREBkZDE3MzMyLmthc3NlcnZlci5jb20+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCm9rLCBsZXQncyBzd2l0Y2ggZGlyZWN0bHkgdG8gdGhlIERvY2tlciBjYXNlCgpJJ20gbm90IGEgRG9ja2VyIGV4cGVydCwgdGhlbiBJJ20gZGlzY292ZXJpbmcgdGhpbmdzIHRoYXQgbXkgYmUgb2J2aW91cyB0bz0KPTIwCm90aGVycwoKSUlVQyBEb2NrZXIgaGFzIGFuICJvZmZpY2llbCBpbWFnZXMiIHByb2plY3QgWzFdIHdoZXJlIENhcmxvcyBwcm92aWRlZCBhIE1hPQp2ZW49MjAKaW1hZ2UgWzJdOiB0aGVuIHRoaXMgaW1hZ2UgaXMga25vd24gYXMgInRoZSBvZmZpY2lhbCBNYXZlbiBEb2NrZXIgaW1hZ2UiCkNhcmxvcyBpcyBhbiBpbmRpdmlkdWFsLCBoZSdzIGFsc28gYSBQTUMgbWVtYmVyIG9mIE1hdmVuCgp3aGF0IGRvIHdlIHdhbnQgdG8gc2F5OiB0aGUgUE1DIG1lbWJlciBoYXMgcHJvdmlkZWQgYW4gb2ZmaWNpYWwgRG9ja2VyIGltYWc9CmUgb3I9MjAKYW4gaW5kaXZpZHVhbCBoYXMgcHJvdmlkZWQgYW4gb2ZmaWNpYWwgRG9ja2VyIGltYWdlPwoKZGVwZW5kaW5nIG9uIHRoZSBhbnN3ZXIsIHNvbWUgd2F5IG9mIGRvaW5nIGhhcyB0byBiZSBjaGFuZ2VkIChHaXQgbG9jYXRpb24gPQpvcj0yMApuYW1pbmcgb2YgdGhlIG9mZmljaWFsIGltYWdlKQoKUmVnYXJkcywKCkhlcnY9QzM9QTkKClsxXSBodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyLWxpYnJhcnkvb2ZmaWNpYWwtaW1hZ2VzCgpbMl0gaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci1saWJyYXJ5L29mZmljaWFsLWltYWdlcy9ibG9iL21hc3Rlci9saWJyYXJ5L209CmF2ZW4KCkxlIHNhbWVkaSAyMSBvY3RvYnJlIDIwMTcsIDA2OjU4OjUwIENFU1QgTWFuZnJlZCBNb3NlciBhID1DMz1BOWNyaXQgOgo+IEZyb20gbXkgcGVyc3BlY3RpdmUgaXQgaXMganVzdCBsaWtlIHNka21hbiBpbmNsdWRpbmcgdGhlIGNvbmNsdXNpb24uIFdlIGg9CmF2ZQo+IG90aGVyIHRhc2tzIGF0IG91ciBoYW5kcywgbWFpbnRhaW5pbmcgYSBkb2NrZXIgaW1hZ2VzIGlzIG5vdCBzb21ldGhpbmcgd2UKPiBzaG91bGQgYm90aGVyIHdpdGguIEhvd2V2ZXIgbmVlZHMgb25lIGNhbiBlYXNpbHkgY3JlYXRlIG9uZSBhbmQgdGhlcmUgd2lsbAo+IGJlIHRob3VzYW5kcyBvZiB2YXJpYXRpb25zIGRpZmZlcmVudCB1c2VycyB3YW50Lgo+PTIwCj4gTGV0IHRoZW0gY3JlYXRlIGl0IG9uIHRoZWlyIG93bi4KPj0yMAo+IE1hbmZyZWQKPj0yMAo+IEhlcnY9QzM9QTkgQk9VVEVNWSB3cm90ZSBvbiAyMDE3LTEwLTIwIDE4OjQ2Ogo+ID4gdHJ1ZSwgZnJvbSBhIGdlbmVyYWwgcGVyc3BlY3RpdmUsIGl0J3MgbGlrZSBzZGttYW4KPiA+PTIwCj4gPiB3ZSBuZWVkIHRvIGRpc2N1c3MgdGhlbiBkZWNpZGUgaWYgd2Ugd2FudCB0byBtYWludGFpbiBNYXZlbiBEb2NrZXIKPiA+IGludGVncmF0aW9uIChjb250cmFyeSB0byBvdXIgY3VycmVudCBkZWNpc2lvbiB0byBub3QgbWFpbnRhaW4gTWF2ZW4KPiA+IHNka21hbiBpbnRlZ3JhdGlvbiBidXQgbGV0IHNka21hbiBjb21tdW5pdHkgZG8gaXQpCj4gPj0yMAo+ID4gY2FuIHdlIHRoaW5rIGFib3V0IGEgZ2VuZXJhbCBzb2x1dGlvbj8gcGVyaGFwcyBub3QgcmVhbGx5IGEgc29sdXRpb24sIGI9CnV0Cj4gPiBhCj4gPiBkZWNpc2lvbiBwcm9jZXNzLCB5ZXMKPiA+PTIwCj4gPiB0byBtZSwgb24gZWFjaCB0b29sIGludGVncmF0aW9uLCB0aGVyZSBhcmUga2V5IGRlY2lzaW9uIGRyaXZlcnM6Cj4gPiAtIGltcG9ydGFuY2Ugb2YgdGhlIHRvb2wgb24gdGhlIG1hcmtldAo+ID4gLSBpbnRlcmVzdCBvZiBNYXZlbiBkZXZzIHRvIGFjdHVhbGx5IGRvIGludGVncmF0aW9uIG1haW50ZW5hbmNlCj4gPiAtIGNvbXBsZXhpdHkgb2YgaW50ZWdyYXRpb24sIHRlY2huaWNhbCBwcmVyZXF1aXNpdGVzICh3aXRoIElERXMsIGZvcgo+ID4gZXhhbXBsZSwgYSBkZWRpY2F0ZWQgaW5kZXBlbmRhbnQgcHJvamVjdCBsaWtlIG0yZSBpcyBuZWNlc3NhcnkpCj4gPiAtIHRpbWUgZmFjdG9yOiB0aGluZ3MgZXZvbHZlIG92ZXIgdGltZSAoZS5nLiAyIHllYXJzIGFnbywgRG9ja2VyIHdhcyBub3QKPiA+IHdoYXQgaXQgaXMgbm93YWRheXMpCj4gPj0yMAo+ID4gYW55IG90aGVyIGtleSBkcml2ZXIgdG8gZG9jdW1lbnQ/Cj4gPj0yMAo+ID4gb25jZSBkb25lLCB3ZSdsbCBkaXNjdXNzIG1vcmUgcHJlY2lzZWx5IGFib3V0IHRoZSBEb2NrZXIgaW50ZWdyYXRpb24gY2E9CnNlCj4gPj0yMAo+ID4gYW5kIHByb2JhYmx5IGZpbmlzaCB3aXRoIGEgdm90ZSA6KQo+ID49MjAKPiA+IFJlZ2FyZHMsCj4gPj0yMAo+ID4gSGVydj1DMz1BOQo+ID49MjAKPiA+IExlIHZlbmRyZWRpIDIwIG9jdG9icmUgMjAxNywgMTE6MzA6NDkgQ0VTVCBSb2JlcnQgU2Nob2x0ZSBhID1DMz1BOWNyaXQgOgo+ID4+IElzbid0IHRoaXMgYWN0dWFsbHkgdGhlIHNhbWUgY2FzZSBhcyBzZGttYW5bMV0/Cj4gPj4gSnVzdCB3b25kZXJpbmcgaWYgd2UgbmVlZCB0byB0aGluayBhYm91dCBhIGdlbmVyYWwgc29sdXRpb24gaW5zdGVhZCBvZgo+ID4+IHB1bGxpbmcgZXZlcnl0aGluZyBpbnRvIG91ciBwcm9qZWN0IHdoZW4gcG9zc2libGUuCj4gPj49MjAKPiA+PiB0aGFua3MsCj4gPj4gUm9iZXJ0Cj4gPj49MjAKPiA+PiBbMV0gaHR0cDovL21hcmttYWlsLm9yZy9tZXNzYWdlL29vZnZzem1mNTZ0YnI3ZXQKPiA+Pj0yMAo+ID4+IE9uIFRodSwgMTkgT2N0IDIwMTcgMTk6MzA6NTcgKzAyMDAsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUA9CmZyZWUuZnI+Cj4gPj49MjAKPiA+PiB3cm90ZToKPiA+PiA+IGdyZWF0IGlkZWEKPiA+PiA+PTIwCj4gPj4gPiBvaywgd2UgbmVlZCBhIGdpdCByZXBvIGF0IEFTRgo+ID4+ID49MjAKPiA+PiA+IHdoYXQgZWxzZT8KPiA+PiA+IElzIHRoZXJlIHNvbWUgc29ydCBvZiByZWxlYXNlIHByb2Nlc3M/IHNvbWUgc29ydCBvZiBzb3VyY2UgdG8gcmVsZWFzPQplPwo+ID4+ID49MjAKPiA+PiA+IFJlZ2FyZHMsCj4gPj4gPj0yMAo+ID4+ID4gSGVydj1DMz1BOQo+ID4+ID49MjAKPiA+PiA+IExlIGpldWRpIDE5IG9jdG9icmUgMjAxNywgMTM6NDc6NDUgQ0VTVCBNaWtlIERyb2IgYSA9QzM9QTljcml0IDoKPiA+PiA+PiBUaGFua3MgZm9yIHRoZSBwb2ludGVyLCBDYXJsb3MhIEkgaGFkIHNlYXJjaGVkIHRoZSBhcmNoaXZlcywgYnV0IG1hPQp5YmUKPiA+PiA+PiBJCj4gPj4gPj4gZGlkbid0IGdvIGJhY2sgZmFyIGVub3VnaC4KPiA+PiA+Pj0yMAo+ID4+ID4+IEkgdGhpbmsgbW92aW5nIHRoZXNlIERvY2tlcmZpbGVzIGludG8gYW4gQVNGIHJlcG8gd291bGQgYmUgZ3JlYXQgZm9yCj4gPj4gPj4gdGhlaXIKPiA+PiA+PiBtYWludGFpbmFiaWxpdHkuCj4gPj4gPj49MjAKPiA+PiA+PiBUaGFua3MsCj4gPj4gPj49MjAKPiA+PiA+PiBNaWtlCj4gPj4gPj49MjAKPiA+PiA+PiBPbiAyMDE3LTEwLTE5IDAzOjUwLCBDYXJsb3MgU2FuY2hleiA8Yy4uLkBhcGFjaGUub3JnPiB3cm90ZToKPiA+PiA+PiA+IEFybmF1ZCBpcyBjb3JyZWN0LCBJIHNlbnQgYW4gZW1haWwgdG8gdXNlcnNAIGJhY2sgb24gRnJpLCBOb3YgNywKPiA+PiA+Pj0yMAo+ID4+ID4+IDIwMTQsPgo+ID4+ID4+PTIwCj4gPj4gPj4gPiAwMDoyMyB3aGVuIEkgY3JlYXRlZCB0aGUgaW1hZ2U+Cj4gPj4gPj4gPj0yMAo+ID4+ID4+ID49MjAKPiA+PiA+PiA+IE9uIFRodSwgT2N0IDE5LCAyMDE3LCAxMToxMiBBcm5hdWQgSD1FRj1CRj1CRHJpdGllciA8YWguLi5AZ21haWwuPQpjb20+Cj4gPj4gPj4gPiB3cm90ZTo+Cj4gPj4gPj4gPj0yMAo+ID4+ID4+ID4gPiBUaGVzZSBpbWFnZXMgYXJlIGtpbmRseSBtYW5hZ2VkIGJ5IGEgUE1DIG1lbWJlciBvZiBvdXIgcHJvamVjdAo+ID4+ID4+PTIwCj4gPj4gPj4gKENhcmxvcykKPiA+PiA+Pj0yMAo+ID4+ID4+IGJ1dD4KPiA+PiA+Pj0yMAo+ID4+ID4+ID4gPiB5ZXMgdGhleSBhcmVuJ3QgbWFuYWdlZCBkaXJlY3RseSBieSB0aGUgcHJvamVjdD4KPiA+PiA+PiA+ID49MjAKPiA+PiA+PiA+ID4gV2UgY2FuIGVhc2lseSBzZWUgd2l0aCBoaW0gdG8gaW1wcm92ZSB0aGlzIElNTy4+Cj4gPj4gPj4gPiA+PTIwCj4gPj4gPj4gPiA+IFdoZW4gaGUgc3RhcnRlZCB0aGF0IChzZXZlcmFsIHllYXJzIGFnbykgRG9ja2VyIHdhc24ndCB3aGF0IGl0ID0KaXMKPiA+PiA+Pj0yMAo+ID4+ID4+IG5vd2FkYXlzLj4KPiA+PiA+Pj0yMAo+ID4+ID4+ID4gPiBXaXRoIGRvY2tlciBiZWluZyBtYWluc3RyZWFtIEkgYWdyZWUgdGhhdCB3ZSBjYW4gcmVjb25zaWRlciB0aGk9CnMuPgo+ID4+ID4+ID4gPj0yMAo+ID4+ID4+ID4gPiBUaGUgZG9ja2VyIGltYWdlIGJ1aWxkL2Rpc3RyaWJ1dGlvbiBjb3VsZCBwZXJoYXBzIGJlIHBhcnQgb2Ygb3VyCj4gPj4gPj49MjAKPiA+PiA+PiByZWxlYXNlPgo+ID4+ID4+PTIwCj4gPj4gPj4gPiA+IHByb2Nlc3MuPgo+ID4+ID4+ID4gPj0yMAo+ID4+ID4+ID4gPiBXRFlUIENhcmxvcyA/Pgo+ID4+ID4+ID4gPj0yMAo+ID4+ID4+ID4gPiBPbiBUaHUsIE9jdCAxOSwgMjAxNyBhdCA0OjE2IEFNLCBNaWtlIERyb2IgPG1kLi4uQGFwYWNoZS5vcmc+Cj4gPj4gPj49MjAKPiA+PiA+PiB3cm90ZTo+Cj4gPj4gPj49MjAKPiA+PiA+PiA+ID4gPiBJIGd1ZXNzIHRoZSBuYXR1cmFsIGZvbGxvdy1vbiBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoZSBNYXZlbgo+ID4+ID4+PTIwCj4gPj4gPj4gY29tbXVuaXR5Pgo+ID4+ID4+PTIwCj4gPj4gPj4gPiA+ID4gd291bGQgY29uc2lkZXIgcHVibGlzaGluZyBhbiBvZmZpY2lhbCBzZXQgb2YgaW1hZ2VzPyBPcgo+ID4+ID4+PTIwCj4gPj4gPj4gYWx0ZXJuYXRpdmVseT4KPiA+PiA+Pj0yMAo+ID4+ID4+ID4gPiA+IHdoZXRoZXIgdGhleSBzaG91bGQgc2VuZCBhIHRha2Vkb3duIG5vdGljZSB0byBwcm90ZWN0IHRoZWlyCj4gPj4gPj4gPiA+ID4gYnJhbmQKPiA+PiA+Pj0yMAo+ID4+ID4+IGFuZD4KPiA+PiA+Pj0yMAo+ID4+ID4+ID4gPiA+IHRyYWRlbWFya3MuLi4+Cj4gPj4gPj4gPiA+ID49MjAKPiA+PiA+PiA+ID4gPiBPbiAyMDE3LTEwLTE4IDE4OjM2LCAiTWFuZnJlZCBNb3NlciIgPG1hLi4uQHNpbXBsaWdpbGl0eS5jb20+Cj4gPj4gPj49MjAKPiA+PiA+PiB3cm90ZTo+Cj4gPj4gPj49MjAKPiA+PiA+PiA+ID4gPiA+IE5vLiBBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBnaXRodWIgVVJMIHRoaXMgaXMgTk9UIGFuIGFwYWNoZQo+ID4+ID4+PTIwCj4gPj4gPj4gVVJMLj4KPiA+PiA+Pj0yMAo+ID4+ID4+ID4gPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2Nhcmxvc3NnL2RvY2tlci1tYXZlbj4KPiA+PiA+PiA+ID4gPiA+PTIwCj4gPj4gPj4gPiA+ID4gPj0yMAo+ID4+ID4+ID4gPiA+ID4gTWlrZSBEcm9iIHdyb3RlIG9uIDIwMTctMTAtMTggMTY6MzI6Pgo+ID4+ID4+ID4gPiA+ID49MjAKPiA+PiA+PiA+ID4gPiA+ID4gSGVsbG8sPgo+ID4+ID4+ID4gPiA+ID4gPj0yMAo+ID4+ID4+ID4gPiA+ID4gPiBBcmUgdGhlIGltYWdlcyBhdCBodHRwczovL2h1Yi5kb2NrZXIuY29tL3IvXy9tYXZlbi8KPiA+PiA+Pj0yMAo+ID4+ID4+IGNvbnNpZGVyZWQgdG8KPiA+PiA+Pj0yMAo+ID4+ID4+IGJlPgo+ID4+ID4+PTIwCj4gPj4gPj4gPiA+ID4gb2ZmaWNpYWw+Cj4gPj4gPj4gPiA+ID49MjAKPiA+PiA+PiA+ID4gPiA+ID4gbWF2ZW4gZG9ja2VyIGltYWdlcyBhbmQgYmxlc3NlZC9wdWJsaXNoZWQgYnkgdGhlIFBNQz8+Cj4gPj4gPj4gPiA+ID4gPiA+PTIwCj4gPj4gPj4gPiA+ID4gPiA+IFRoYW5rcyw+Cj4gPj4gPj4gPiA+ID4gPiA+IE1pa2U+Cj4gPj4gPj49MjAKPiA+PiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQo9MkQtPgo+ID4+ID4+PTIwCj4gPj4gPj4gPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IHVzZXJzLXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcj0KZz4KPiA+PiA+PiA+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDoKPiA+PiA+PiA+ID4gPiA+ID4gdXNlcnMtaGVscEBtYXZlbi5hcGFjaGUub3JnPgo+ID4+ID4+PTIwCj4gPj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KPTJELT4KPiA+PiA+Pj0yMAo+ID4+ID4+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogdXNlcnMtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KPiA+PiA+PiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IHVzZXJzLWhlbHBAbWF2ZW4uYXBhY2hlLm9yPQpnPgo+ID4+ID4+PTIwCj4gPj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KPTJELT4KPiA+PiA+Pj0yMAo+ID4+ID4+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IHVzZXJzLXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Cj4gPj4gPj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogdXNlcnMtaGVscEBtYXZlbi5hcGFjaGUub3JnPgo+ID4+ID4+ID4gPj0yMAo+ID4+ID4+ID4gPiAtLT4KPiA+PiA+PiA+ID4gLS0tLS0+Cj4gPj4gPj4gPiA+IEFybmF1ZCBIPUVGPUJGPUJEcml0aWVyPgo+ID4+ID4+ID4gPiBodHRwOi8vYWhlcml0aWVyLm5ldD4KPiA+PiA+PiA+ID4gTWFpbC9HVGFsazogYWhlcml0aWVyIEFUIGdtYWlsIERPVCBjb20+Cj4gPj4gPj4gPiA+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXI+Cj4gPj4gPj0yMAo+ID4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+PTIwCj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj0yMAo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PTIwCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDE1Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgT2N0ICA3IDAyOjQ3OjQzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDE1Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA5NEY0NjEwNUIyCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMDI6NDc6NDMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0ODEyMiBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE9jdCAyMDE3IDAyOjQ3OjQzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0ODA0MSBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE9jdCAyMDE3IDAyOjQ3OjQzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDgwMjkgaW52b2tlZCBieSB1aWQgOTkpOyA3IE9jdCAyMDE3IDAyOjQ3OjQyIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwNyBPY3QgMjAxNyAwMjo0Nzo0MiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEEwNTc4MUEwQTVCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNyBPY3QgMjAxNyAwMjo0Nzo0MSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGY5TnU3VTBVVldaNCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgIDcgT2N0IDIwMTcgMDI6NDc6MzkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDAyLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI0XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDZFNzk2NUZDM0MKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDAyOjQ3OjM5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDU2IHdpdGggTUUKCWlkIEpTblkxdzAwNTIwVWZkeTAzU25ZUnk7IFNhdCwgMDcgT2N0IDIwMTcgMDQ6NDc6MzIgKzAyMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogU2F0LCAwNyBPY3QgMjAxNyAwNDo0NzozMiArMDIwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBtaWdyYXRpbmcgc29tZSBjb2RlIHRvIEdpdApEYXRlOiBTYXQsIDA3IE9jdCAyMDE3IDA0OjQ3OjMyICswMjAwCk1lc3NhZ2UtSUQ6IDwxNzMzMDc5LmZCSm96Z2w1dllAZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zNS1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpJbi1SZXBseS1UbzogPDE3OTEzNzguOGswMmFVSjNycEBnaWdhPgpSZWZlcmVuY2VzOiA8MzAwNjQ3MS5HclNGalNKakdYQGdpZ2E+IDxwb255LTU2YTNhZGVhZjYwYzQwNTk2ZmIyODRiMjQ1MjQxNDhmNjA1ZThkMjMtYWQzYzUwNjI1MzJiN2JhYzQwOWYxMTc1Y2FhNDhkYWNlMzNkMDNlYkBkZXYubWF2ZW4uYXBhY2hlLm9yZz4gPDE3OTEzNzguOGswMmFVSjNycEBnaWdhPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCnJlLXJlYWRpbmcgb3VyIG1pZ3JhdGlvbiBwcm9jZXNzIGRvY3VtZW50YXRpb24gWzFdLCBJIHNlZSAiY2hlY2sgZXNwZWNpYWxseT0KPTIwCmJlaGF2aW91ciBvbiBjaGVja2luZyBvdXQgdGFnIgoKSSBzdXBwb3NlIHRoYXQgd2UgY291bGQgY29tcGFyZSBjb250ZW50IGJldHdlZW4gZ2l0IGNoZWNrb3V0IGFuZCBzdm4gY2hlY2tvPQp1dD0yMApmb3IgSEVBRCBhbmQgZXZlcnkgcGFzdCByZWxlYXNlCgpkaWQgc29tZWJvZHkgcHJlcGFyZSBhIHNoZWxsIHNjcmlwdCBmb3IgdGhhdD8KClJlZ2FyZHMsCgpIZXJ2PUU5CgpbMV0gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9HaXQKK01pZ3JhdGlvbiNHaXRNaWdyYXRpb24tTWlncmF0aW9ucHJvY2Vzc2Rlc2NyaXB0aW9uCgpMZSB2ZW5kcmVkaSA2IG9jdG9icmUgMjAxNywgMDA6MzQ6MTEgQ0VTVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiBncmVhdCwgdGhhbmsgeW91IGZvciB5b3VyIGhlbHAKPj0yMAo+IGluIGZhY3QsIEFGQUlLLCBBcGFjaGUgaGFzIGFscmVhZHkgYXV0b21hdGljIHN2bjJnaXQgZXhwb3J0cyBbMV0gdGhhdCBhcmUKPiB0aGVuIG1pcnJvcmVkIHRvIGdpdGh1Yi4KPiBUaGVuIHdlIGFscmVhZHkgaGF2ZToKPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZG94aWEvCj4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRveGlhLXNpdGV0b29scy8KPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZW5mb3JjZXIvCj4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWp4ci8KPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2luLXRvb2xzLwo+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1yZWxlYXNlLwo+PTIwCj4gSSBzdXBwb3NlIHRoZXNlIGNvdWxkIGJlIHRoZSBuYXR1cmFsIHRhcmdldHMuCj4gQnV0IEkgZG9uJ3QgcmVhbGx5IHNlZSB3aGF0IGNoZWNrcyB0byBkbyBvbiB0aGVzZS4KPj0yMAo+IEkgc3VwcG9zZSB0aGF0IG9uY2Ugd2UgYXJlIGNvbnZpbmNlZCB0aGlzIGNvbnRlbnQgaXMgb2ssIHdlIGNhbiBhc2sgaW5mcmE9CiB0bwo+IHN3aXRjaCB0aGVzZSB0byB0aGUgY2Fub25pY2FsIHNvdXJjZSAoYW5kIGRpc2FibGUgdGhlIHN2bjJnaXQgZXhwb3J0cykKPj0yMAo+IERvIHlvdSBzZWUgYW55IGlzc3VlIGluIHRoZXNlIHJlcG9zPwo+PTIwCj4gUmVnYXJkcywKPj0yMAo+IEhlcnY9RTkKPj0yMAo+IFsxXSBodHRwOi8vZ2l0LmFwYWNoZS5vcmcvCj49MjAKPiBMZSBqZXVkaSA1IG9jdG9icmUgMjAxNywgMTE6NDU6MjMgQ0VTVCBEZWphbiBTdG9qYWRpbm92aWMgYSA9RTljcml0IDoKPiA+IENvdW50IG1lIGluIChmb3IgYm90aCBhY3R1YWwgbWlncmF0aW9uIGFuZCByZWxhdGVkIHRhc2tzKS4KPiA+PTIwCj4gPiBNeSB3ZWFwb24gb2YgY2hvaWNlIGZvciBTVk4gLS0+PkdJVCB3b3VsZCBiZToKPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9uaXJ2ZHJ1bS9zdm4yZ2l0IChJIG1hbmFnZWQgdG8gbW92ZSBkb3plbiBvZiByZXBvcyBmPQpldwo+ID4geWVhcnMgYWdvKS4KPiA+PTIwCj4gPiBSZWdhcmRzLAo+ID4gRGVqYW4KPiA+PTIwCj4gPiBPbiAyMDE3LTEwLTA0IDAxOjQ4LCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3JvdGU6Cj4gPiA+IEknZCBsaWtlIHRvIHdvcmsgb24gUGx1Z2luIFRvb2xzIHdpdGggZ2l0Cj4gPiA+PTIwCj4gPiA+IFdoaWxlIGF0IGl0LCBsb29raW5nIGF0IG91ciBwbGFuIFsxXSwgSSBzZWUgd2UgaGF2ZSBhIGZldyBvdGhlcgo+ID4gPiBjb21wb25lbnRzCj4gPiA+IHRoYXQgYXJlIHJlYWR5IHRvIG1pZ3JhdGU6Cj4gPiA+IC0gRG94aWEgY29yZQo+ID4gPiAtIERveGlhIFNpdGV0b29scwo+ID4gPiAtIEVuZm9yY2VyCj4gPiA+IC0gSnhyCj4gPiA+IC0gUGx1Z2luIFRvb2xzCj4gPiA+IC0gUmVsZWFzZQo+ID4gPj0yMAo+ID4gPiBXaGF0IGNoZWNrcyBhcmUgcmVxdWlyZWQgYmVmb3JlIHN3aXRjaGluZyB0aGVzZSA2IGNvbXBvbmVudHM/Cj4gPiA+IEFueSB2b2x1bnRlZXI/Cj4gPiA+PTIwCj4gPiA+IFJlZ2FyZHMsCj4gPiA+PTIwCj4gPiA+IEhlcnY9QzM9QTkKPiA+ID49MjAKPiA+ID4gWzFdIGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvTUFWRU4vR2l0K01pZ3JhdGlvbgo+ID4gPj0yMAo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzNjktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE9jdCAyOSAwOToyMzowNiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzNjktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgODRBQ0UxMDZFMQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDI5IE9jdCAyMDE3IDA5OjIzOjA2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTc5MTEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjkgT2N0IDIwMTcgMDk6MjM6MDYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk3ODI2IGludm9rZWQgYnkgdWlkIDUwMCk7IDI5IE9jdCAyMDE3IDA5OjIzOjA2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTc4MTQgaW52b2tlZCBieSB1aWQgOTkpOyAyOSBPY3QgMjAxNyAwOToyMzowNSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMjkgT2N0IDIwMTcgMDk6MjM6MDUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAzNDJFNTE4MDVDOAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjkgT2N0IDIwMTcgMDk6MjM6MDUgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMS4zClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xLjMgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjVdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHBkSTNaS3kwRWFVWiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgMjkgT2N0IDIwMTcgMDk6MjM6MDQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDAyLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI0XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDcyRkU4NUYyQUUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDI5IE9jdCAyMDE3IDA5OjIzOjAzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDM3IHdpdGggTUUKCWlkIFRNTncxdzAwUTIwVWZkeTAzTU53MFQ7IFN1biwgMjkgT2N0IDIwMTcgMTA6MjI6NTcgKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogU3VuLCAyOSBPY3QgMjAxNyAxMDoyMjo1NyArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtNZWV0dXBdIHBhc3QgYW5kIGZ1dHVyZSBmcmVuY2ggbWVldHVwcwpEYXRlOiBTdW4sIDI5IE9jdCAyMDE3IDEwOjIyOjU2ICswMTAwCk1lc3NhZ2UtSUQ6IDwxNzY0MzA5LnlzdXI0aVdlaEFAZ2lnYT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpIaSwKCldpdGggQXJuYXVkIEg9RTlyaXRpZXIsIHdlIHRvb2sgb25lIGZ1bGwgZGF5IHRoaXMgd2VlayB0b2dldGhlciB0byB3b3JrIG9uPQo9MjAKTWF2ZW46IHlvdSBjYW4gaGF2ZSBhIGxvb2sgYXQgdGhlIHN1bW1hcnkgb24gTWF2ZW4gV0lraSBbMV0KVGhlIHdvcmsgb24gdGhlIHdpa2kgY29udGVudCBoYXMgcmVhbGx5IGJlZW4gZG9uZTogd2UgaG9wZSB5b3UnbGwgbGlrZSB0aGU9Cj0yMApyZXN1bHQgYW5kIGVhc2lseSBmaW5kIHlvdXIgcGF0aCB3aGVuIHlvdSdsbCB1cGRhdGUuCk9uIG90aGVyIHRvcGljcywgaXQgd2FzIG1vcmUgYWJvdXQgZGlzY3Vzc2lvbiwgc2hhcmluZyBpZGVhcy4KRGlzY3Vzc2lvbnMgYXJlIG9wZW4gb24gdGhpcyBNTCBpZiBhbnlib2R5IHdhbnRzIHRvIHdvcmsgb24gYW55IGNpdGVkIHRvcGljLgoKPTQ2b3IgZnJlbmNoIHNwZWFraW5nIHBlb3BsZSBsaXZpbmcgbmVhciBQYXJpcywgd2UnbGwgYmUgYXQgUGFyaXMgSGFja2VyZ2FyPQp0ZW49MjAKb24gdHVlc2RheSBbMl0KCkFuZCBJJ2xsIGJlIGF0IFBhcmlzIE9wZW4gU291cmNlIFN1bW1pdCBvbiBkZWNlbWJyZSA2JjcgWzNdIChJIGRvbid0IGtub3cgaT0KZj0yMApBcm5hdWQgd2lsbCBiZSB0aGVyZSkKCkkgaG9wZSB3ZSdsbCBtZWV0IHBlb3BsZSwgc2luY2UgdGhlc2UgZmFjZSB0byBmYWNlIG1lZXRpbmdzIGFyZSBhIGdyZWF0PTIwCmNvbXBsZW1lbnQgdG8gb3VyIGVsZWN0cm9uaWMgZGlzY3Vzc2lvbnMgKGFuZCBkZWNpc2lvbnM6IHJlbWVtYmVyIE1McyBhcmUgdD0KaGU9MjAKb25seSBwbGFjZSB3aGVyZSBkZWNpc2lvbnMgaGFwcGVuLi4uKQoKUmVnYXJkcywKCkhlcnY9RTkKClsxXSBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL0ZyZW5jaCtDb25uZWN0aW9uCisyMDE3K01lZXR1cAoKWzJdIGh0dHBzOi8vd3d3Lm1lZXR1cC5jb20vZnItRlIvUGFyaXMtSGFja2VyZ2FydGVuLwoKWzNdIGh0dHA6Ly93d3cub3BlbnNvdXJjZXN1bW1pdC5wYXJpcy8/bGc9M0RlbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MjQzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBPY3QgMTUgMDg6MjI6MjQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjQzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDUwQjI2QzI4MwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDE1IE9jdCAyMDE3IDA4OjIyOjI0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODYyODggaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgT2N0IDIwMTcgMDg6MjI6MjMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg2MTI3IGludm9rZWQgYnkgdWlkIDUwMCk7IDE1IE9jdCAyMDE3IDA4OjIyOjIzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODYxMTYgaW52b2tlZCBieSB1aWQgOTkpOyAxNSBPY3QgMjAxNyAwODoyMjoyMyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTUgT2N0IDIwMTcgMDg6MjI6MjMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA5NDhDQzE4MDhCQgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTUgT2N0IDIwMTcgMDg6MjI6MjIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMS4zClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xLjMgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgeFJacFFFM0FPV3ZuIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAxNSBPY3QgMjAxNyAwODoyMjoyMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMTAuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMzJdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNzI4NzU1RjNDRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTUgT2N0IDIwMTcgMDg6MjI6MjAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMTkgd2l0aCBNRQoJaWQgTWtORDF3MDA0MjBVZmR5MDNrTkRBZzsgU3VuLCAxNSBPY3QgMjAxNyAxMDoyMjoxNCArMDIwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBTdW4sIDE1IE9jdCAyMDE3IDEwOjIyOjE0ICswMjAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IGltcHJvdmVtZW50cyBmb3IgTWF2ZW4gMy41LjIKRGF0ZTogU3VuLCAxNSBPY3QgMjAxNyAxMDoyMjoxMyArMDIwMApNZXNzYWdlLUlEOiA8MTc4NTY4OS5RRGkzcHUyejhkQGdpZ2E+ClVzZXItQWdlbnQ6IEtNYWlsLzUuMi4zIChMaW51eC80LjEwLjAtMzctZ2VuZXJpYzsgS0RFLzUuMzEuMDsgeDg2XzY0OyA7ICkKSW4tUmVwbHktVG86IDxDQStuUG5Nemoyei11ZVJTQkQweXhCWHd2ZE9uT1AzTTVPMzdwd2JXMVlHOWY3WmJkVmdAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDwzMjk2NzU0Lm5ZRnpwN3kyczhAZ2lnYT4gPENBK25Qbk16ajJ6LXVlUlNCRDB5eEJYd3ZkT25PUDNNNU8zN3B3YlcxWUc5ZjdaYmRWZ0BtYWlsLmdtYWlsLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgptZXJnZWQsIHRoYW5rIHlvdQoKTGUgc2FtZWRpIDE0IG9jdG9icmUgMjAxNywgMTg6MTE6NTIgQ0VTVCBTdGVwaGVuIENvbm5vbGx5IGEgPUU5Y3JpdCA6Cj4gKzEKPj0yMAo+IE9uIFNhdCAxNCBPY3QgMjAxNyBhdCAxNjozMCwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdyb3Q9CmU6Cj4gPiBJJ2QgbGlrZSB0byBtZXJnZSB0byBtYXN0ZXIgZm9sbG93aW5nIGlzc3Vlcywgd2l0aCBjb3JyZXNwb25kaW5nIGNvZGUKPiA+IHJlYWR5IGluCj4gPiB0aGVpciBicmFuY2hlczoKPiA+IC0gTU5HLTYyNDIgTm8gY29sb3IgZm9yIG1hdmVuIG9uIEN5Z3dpbgo+ID4gLSBNTkctNjE5NiBVcGRhdGUgc2xmNGogYW5kIHNpbXBsaWZ5IGl0cyBjb2xvciBpbnRlZ3JhdGlvbgo+ID49MjAKPiA+IEFyZSB0aGVyZSBzZWNvbmRlcnM/Cj4gPj0yMAo+ID4gUmVnYXJkcywKPiA+PTIwCj4gPiBIZXJ2PUU5Cj4gPj0yMAo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID49MjAKPiA+IC0tCj49MjAKPiBTZW50IGZyb20gbXkgcGhvbmUKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MTQ3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBPY3QgIDUgMjI6MzQ6MjIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTQ3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEJCOEY1MTA4MEUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAgNSBPY3QgMjAxNyAyMjozNDoyMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDUzMjkyIGludm9rZWQgYnkgdWlkIDUwMCk7IDUgT2N0IDIwMTcgMjI6MzQ6MjIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUzMjI1IGludm9rZWQgYnkgdWlkIDUwMCk7IDUgT2N0IDIwMTcgMjI6MzQ6MjIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MzIxNCBpbnZva2VkIGJ5IHVpZCA5OSk7IDUgT2N0IDIwMTcgMjI6MzQ6MjIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDA1IE9jdCAyMDE3IDIyOjM0OjIyICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNTk1NjAxQTM1RTQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsICA1IE9jdCAyMDE3IDIyOjM0OjIxICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgVWJ6dUx1ODZWN0hoIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVGh1LCAgNSBPY3QgMjAxNyAyMjozNDoxOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDYuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjhdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNTBDQUI1RkJFRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgIDUgT2N0IDIwMTcgMjI6MzQ6MTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMTEgd2l0aCBNRQoJaWQgSHlhQzF3MDAxMjBVZmR5MDN5YUN4TDsgRnJpLCAwNiBPY3QgMjAxNyAwMDozNDoxMiArMDIwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBGcmksIDA2IE9jdCAyMDE3IDAwOjM0OjEyICswMjAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IG1pZ3JhdGluZyBzb21lIGNvZGUgdG8gR2l0CkRhdGU6IEZyaSwgMDYgT2N0IDIwMTcgMDA6MzQ6MTEgKzAyMDAKTWVzc2FnZS1JRDogPDE3OTEzNzguOGswMmFVSjNycEBnaWdhPgpVc2VyLUFnZW50OiBLTWFpbC81LjIuMyAoTGludXgvNC4xMC4wLTM1LWdlbmVyaWM7IEtERS81LjMxLjA7IHg4Nl82NDsgOyApCkluLVJlcGx5LVRvOiA8cG9ueS01NmEzYWRlYWY2MGM0MDU5NmZiMjg0YjI0NTI0MTQ4ZjYwNWU4ZDIzLWFkM2M1MDYyNTMyYjdiYWM0MDlmMTE3NWNhYTQ4ZGFjZTMzZDAzZWJAZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlZmVyZW5jZXM6IDwzMDA2NDcxLkdyU0ZqU0pqR1hAZ2lnYT4gPHBvbnktNTZhM2FkZWFmNjBjNDA1OTZmYjI4NGIyNDUyNDE0OGY2MDVlOGQyMy1hZDNjNTA2MjUzMmI3YmFjNDA5ZjExNzVjYWE0OGRhY2UzM2QwM2ViQGRldi5tYXZlbi5hcGFjaGUub3JnPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCmdyZWF0LCB0aGFuayB5b3UgZm9yIHlvdXIgaGVscAoKaW4gZmFjdCwgQUZBSUssIEFwYWNoZSBoYXMgYWxyZWFkeSBhdXRvbWF0aWMgc3ZuMmdpdCBleHBvcnRzIFsxXSB0aGF0IGFyZSB0PQpoZW49MjAKbWlycm9yZWQgdG8gZ2l0aHViLgpUaGVuIHdlIGFscmVhZHkgaGF2ZToKPTJEIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZG94aWEvCj0yRCBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRveGlhLXNpdGV0b29scy8KPTJEIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZW5mb3JjZXIvCj0yRCBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWp4ci8KPTJEIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2luLXRvb2xzLwo9MkQgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1yZWxlYXNlLwoKSSBzdXBwb3NlIHRoZXNlIGNvdWxkIGJlIHRoZSBuYXR1cmFsIHRhcmdldHMuCkJ1dCBJIGRvbid0IHJlYWxseSBzZWUgd2hhdCBjaGVja3MgdG8gZG8gb24gdGhlc2UuCgpJIHN1cHBvc2UgdGhhdCBvbmNlIHdlIGFyZSBjb252aW5jZWQgdGhpcyBjb250ZW50IGlzIG9rLCB3ZSBjYW4gYXNrIGluZnJhIHQ9Cm89MjAKc3dpdGNoIHRoZXNlIHRvIHRoZSBjYW5vbmljYWwgc291cmNlIChhbmQgZGlzYWJsZSB0aGUgc3ZuMmdpdCBleHBvcnRzKQoKRG8geW91IHNlZSBhbnkgaXNzdWUgaW4gdGhlc2UgcmVwb3M/CgpSZWdhcmRzLAoKSGVydj1FOQoKWzFdIGh0dHA6Ly9naXQuYXBhY2hlLm9yZy8KCkxlIGpldWRpIDUgb2N0b2JyZSAyMDE3LCAxMTo0NToyMyBDRVNUIERlamFuIFN0b2phZGlub3ZpYyBhID1FOWNyaXQgOgo+IENvdW50IG1lIGluIChmb3IgYm90aCBhY3R1YWwgbWlncmF0aW9uIGFuZCByZWxhdGVkIHRhc2tzKS4KPj0yMAo+IE15IHdlYXBvbiBvZiBjaG9pY2UgZm9yIFNWTiAtLT4+R0lUIHdvdWxkIGJlOgo+IGh0dHBzOi8vZ2l0aHViLmNvbS9uaXJ2ZHJ1bS9zdm4yZ2l0IChJIG1hbmFnZWQgdG8gbW92ZSBkb3plbiBvZiByZXBvcyBmZXcKPiB5ZWFycyBhZ28pLgo+PTIwCj4gUmVnYXJkcywKPiBEZWphbgo+PTIwCj4gT24gMjAxNy0xMC0wNCAwMTo0OCwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdyb3RlOgo+ID4gSSdkIGxpa2UgdG8gd29yayBvbiBQbHVnaW4gVG9vbHMgd2l0aCBnaXQKPiA+PTIwCj4gPiBXaGlsZSBhdCBpdCwgbG9va2luZyBhdCBvdXIgcGxhbiBbMV0sIEkgc2VlIHdlIGhhdmUgYSBmZXcgb3RoZXIgY29tcG9uZT0KbnRzCj4gPiB0aGF0IGFyZSByZWFkeSB0byBtaWdyYXRlOgo+ID4gLSBEb3hpYSBjb3JlCj4gPiAtIERveGlhIFNpdGV0b29scwo+ID4gLSBFbmZvcmNlcgo+ID4gLSBKeHIKPiA+IC0gUGx1Z2luIFRvb2xzCj4gPiAtIFJlbGVhc2UKPiA+PTIwCj4gPiBXaGF0IGNoZWNrcyBhcmUgcmVxdWlyZWQgYmVmb3JlIHN3aXRjaGluZyB0aGVzZSA2IGNvbXBvbmVudHM/Cj4gPiBBbnkgdm9sdW50ZWVyPwo+ID49MjAKPiA+IFJlZ2FyZHMsCj4gPj0yMAo+ID4gSGVydj1DMz1BOQo+ID49MjAKPiA+IFsxXSBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL0dpdCtNaWdyYXRpb24KPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj49MjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NTI5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgMTggMTY6Mzg6MjggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTI5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDc5MUE4MTc0RTkKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAxOCBOb3YgMjAxNyAxNjozODoyOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDIyNzQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggTm92IDIwMTcgMTY6Mzg6MjggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIxNzkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggTm92IDIwMTcgMTY6Mzg6MjggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMTY4IGludm9rZWQgYnkgdWlkIDk5KTsgMTggTm92IDIwMTcgMTY6Mzg6MjcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDE4IE5vdiAyMDE3IDE2OjM4OjI3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMjRCRUMxODA1QUEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDE4IE5vdiAyMDE3IDE2OjM4OjI3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEuMDUKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEuMDUgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9JTkZPVVNNRUJJWj0wLjc1LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBYTlZIRWNoOHUwb0UgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsIDE4IE5vdiAyMDE3IDE2OjM4OjI1ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAxMC5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEzMl0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBCODA2MzVGQ0U5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAxOCBOb3YgMjAxNyAxNjozODoyNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ0NSB3aXRoIE1FCglpZCBiVWVQMXcwMHUyMFVmZHkwM1VlUHA1OyBTYXQsIDE4IE5vdiAyMDE3IDE3OjM4OjI0ICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFNhdCwgMTggTm92IDIwMTcgMTc6Mzg6MjQgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIEphdmFkb2MgUGx1Z2luIHZlcnNpb24gMy4wLjAgKHRha2UgMikKRGF0ZTogU2F0LCAxOCBOb3YgMjAxNyAxNzozODoyMyArMDEwMApNZXNzYWdlLUlEOiA8MTgwNjAyNS5Cc21GOTYzUnFuQGdpZ2E+CkluLVJlcGx5LVRvOiA8MjAxNzExMTgxNjE4MDYuNWNjMTJlYTRAY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvPgpSZWZlcmVuY2VzOiA8b3AueTl3bTN3MHFrZGtocnJAZGVza3RvcC0ya2hzazQ0PiA8MjAxNzExMTgxNjE0MDQuN2E2MmY2ZDJAY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvPiA8MjAxNzExMTgxNjE4MDYuNWNjMTJlYTRAY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCkxlIHNhbWVkaSAxOCBub3ZlbWJyZSAyMDE3LCAxNzoxODowNiBDRVQgTWFyayBSYXluc2ZvcmQgYSA9RTljcml0IDoKPiBPbiAyMDE3LTExLTE4VDE2OjE0OjA0ICswMDAwCj49MjAKPiBNYXJrIFJheW5zZm9yZCA8b3JnLmFwYWNoZS5tYXZlbi51c2VyQGlvN20uY29tPiB3cm90ZToKPiA+IFByZXN1bWFibHksIHdpdGggdGhlIG1vZHVsZS1pbmZvLmphdmEgZmlsZXMKPiA+IGV4Y2x1ZGVkLCBpdCByZXZlcnRzIGJhY2sgdG8gcGxhaW4gY2xhc3NwYXRoIHN0eWxlIEphdmFEb2MuCj49MjAKPiBBY3R1YWxseSwgaXQgcmVzdWx0cyBpbiBzb3J0IG9mIHdlaXJkIGxvb2tpbmcgSmF2YURvYyB0aGF0IG9ubHkKPiBjb250YWlucyBhIHNpbmdsZSBtb2R1bGUsIGFuZCBjbGFpbXMgdGhhdCBhbGwgcGFja2FnZXMgYXJlIGluCj4gdGhhdCBtb2R1bGU6Cj49MjAKPiAgIGh0dHA6Ly9vdXRsYW5kLml3LmludC5hcmM3LmluZm8vMjAxNy8xMS8xOC9hcGlkb2NzL2luZGV4Lmh0bWwKPj0yMAo+IFRoYXQgYmVoYXZpb3VyIHNlZW1zIGxpa2UgaXQgbWlnaHQgYmUgYSBidWcgaW4gdGhlIGFjdHVhbCBKYXZhRG9jIHRvb2wKPiBpdHNlbGYuCklJVUMsIGphdmFkb2MgZG9lcyBub3QgY292ZXIgYWdncmVnYXRlZCBqYXZhZG9jcyBzY2VuYXJpbz8KCkkgd291bGQgbm90IGNhbGwgdGhhdCBhIGJ1ZywgYnV0IGEgbWlzc2luZyBmZWF0dXJlIDopCgpSZWdhcmRzLAoKSGVydj1FOQoKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODA4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBEZWMgMjEgMDk6MjM6MTMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODA4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDA3QjQzMTBGNDUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAyMSBEZWMgMjAxNyAwOToyMzoxMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDgwOTgwIGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIERlYyAyMDE3IDA5OjIzOjEyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MDkwNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBEZWMgMjAxNyAwOToyMzoxMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgwODkyIGludm9rZWQgYnkgdWlkIDk5KTsgMjEgRGVjIDIwMTcgMDk6MjM6MTIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDIxIERlYyAyMDE3IDA5OjIzOjEyICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQzREQjNDM0U2RAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjEgRGVjIDIwMTcgMDk6MjM6MTEgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjk5OQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjk5OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEUxcVYtWlBXOFFPYSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVRodSwgMjEgRGVjIDIwMTcgMDk6MjM6MTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDA5LnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTMxXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDE3MTdFNUZCNUUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDIxIERlYyAyMDE3IDA5OjIzOjEwICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDg1IHdpdGggTUUKCWlkIG9aUDgxdzAwbjIwVWZkeTAzWlA4QW47IFRodSwgMjEgRGVjIDIwMTcgMTA6MjM6MDggKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogVGh1LCAyMSBEZWMgMjAxNyAxMDoyMzowOCArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbRkVFREJBQ0sgV0FOVEVEXSBlZGl0IGJ1dHRvbiBvbiBhIE1hdmVuIHNpdGUKRGF0ZTogVGh1LCAyMSBEZWMgMjAxNyAxMDoyMzowOCArMDEwMApNZXNzYWdlLUlEOiA8MTgzMDU1MC5ocUd5S3I1QlNZQGdpZ2E+CkluLVJlcGx5LVRvOiA8Q0ErblBuTXpGekp2ZjlBdHlTZmpvaVNaMXdlMmFidlRPWS03ZG1PVExwTEFqMkQzVHJ3QG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8MTE5MjIxNzEuYkF6RGVFRmlPTUBnaWdhPiA8Q0ErblBuTXpGekp2ZjlBdHlTZmpvaVNaMXdlMmFidlRPWS03ZG1PVExwTEFqMkQzVHJ3QG1haWwuZ21haWwuY29tPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCkkgbGlrZSB0aGlzIGlkZWE6IGltcGxlbWVudGVkLCB5b3UgY2FuIHNlZSB0aGUgcmVzdWx0CkkgYWxzbyBpbXBsZW1lbnRlZCBBcm5hdWQncyAidGl0bGUiIGlkZWE6IGl0IGhlbHBzIGRpc2NvdmVyaW5nIHRoZSBvYmplY3Rpdj0KZT0yMAooYmVmb3JlIHBlb3BsZSBnZXQgdGhlIGhhYml0KQoKT24gdGhlIENNUyBpZGVhOgpDTVMgaXMgd2hhdCBpcyBibG9ja2luZyB1cyB0byBzd2l0Y2ggc2l0ZSBzb3VyY2UgZnJvbSBzdm4gdG8gR2l0LiBJSVVDLCBpbmY9CnJhPTIwCmhhcyBwcmVwYXJlZCBzb21lIEplbmtpbnMgbm9kZXMgd2l0aCBzcGVjaWZpYyBjcmVkZW50aWFscyB0byBiZSBhYmxlIHRvIHB1Yj0KbGlzaD0yMApnZW5lcmF0ZWQgaHRtbCB0byBzdm5wdWJzdWI6IHRoaXMgd291bGQgcGVybWl0IHVzIHRvIHB1dCBvdXIgc2l0ZSBzb3VyY2VzIHQ9Cm89MjAKR2l0Ym94LCBoYXZlIGEgSmVua2lucyBqb2IgYnVpbGQgdGhlbSBhbmQgcHVibGlzaCBodG1sIHJlc3VsdCBpbW1lZGlhdGVseS4gPQpUaGU9MjAKY29udGVudCB3b3VsZCBiZSBlZGl0YWJsZSBvbmxpbmUgZm9yIHRoZSB0ZWFtIHRocm91Z2ggZ2l0aHViIGZvciB0aG9zZSB3aG89Cj0yMApsb3ZlIGVkaXRpbmcgb25saW5lLiBBbmQgd2Ugd291bGQgbm90IGhhdmUgc3RhZ2luZyBhbnkgbW9yZTogYnV0IGlzIHN0YWdpbmc9Cj0yMApyZWFsbHkgYSB1c2VmdWwgZmVhdHVyZSBmb3IgdXMgb3IgYSBwYWluIChpLmUuIHRvIGhhdmUgYW4gYWRkaXRpb25hbCBzdGVwIHc9Cmhlbj0yMApwdWJsaXNoaW5nIHRoYXQgaXMgc29tZXRpbWVzIGZvcmdvdHRlbik/CgpJIHN0aWxsIG5lZWQgdG8gc3R1ZHkgbW9yZSBpbiBkZXRhaWxzIGhvdyB0aGlzIGhhcyBiZWVuIGltcGxlbWVudGVkIGZvciBBcGE9CmNoZT0yMApwcm9qZWN0cyB1c2luZyB0aGlzIEplbmtpbnMtYmFzZWQgc29sdXRpb24sIGJ1dCBpdCBzZWVtcyB0byBtZSB0aGUgd2F5IHRvIGc9Cm8sPTIwCmlzbid0IGl0PwoKUmVnYXJkcywKCkhlcnY9RTkKClsxXSBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvc2tpbnMtYXJjaGl2ZXMvbWF2ZW4tZmx1aWRvLXNraW4tTEFURVNULwoKTGUgbHVuZGkgMTggZD1FOWNlbWJyZSAyMDE3LCAxMDowNDoyMyBDRVQgU3RlcGhlbiBDb25ub2xseSBhID1FOWNyaXQgOgo+IEkgd29uZGVyIHdvdWxkIGl0IG1ha2UgbW9yZSBzZW5zZSBvbiB0aGUgbGVmdCBoYW5kIHNpZGUgb2YgdGhlIGJyZWFkY3J1bWIKPiBiYXI6Cj49MjAKPj0yMAo+ICAgIC0gQXBhY2hlIDxodHRwczovL3d3dy5hcGFjaGUub3JnLz4vCj4gICAgLSBNYXZlbiA8aHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2luZGV4Lmh0bWw+Lwo+ICAgIC0gU2tpbnMgPGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9za2lucy1hcmNoaXZlcy9pbmRleC5odG1sPi8KPiAgICAtIEFwYWNoZSBNYXZlbiBGbHVpZG8gU2tpbgo+ICA9MjAKPiA8aHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3NraW5zLWFyY2hpdmVzL21hdmVuLWZsdWlkby1za2luLUxBVEVTVC9pbmRleC5oPQp0bQo+IGw+IC8KPiAgICAtIEludHJvZHVjdGlvbiAoZWRpdCkKPj0yMAo+IE9uIDE4IERlY2VtYmVyIDIwMTcgYXQgMDc6NDIsIEhlcnY9RTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cm89CnRlOgo+ID4gSGksCj4gPj0yMAo+ID4gSSBqdXN0IG1hbmFnZWQgdG8gYWRkIGFuICJlZGl0IiBidXR0b24gaW4gTWF2ZW4gZ2VuZXJhdGVkIHNpdGVzLCB0aGF0IHc9CmlsbAo+ID4gaGVscCBwZW9wbGUgZmluZCB0aGUgc291cmNlIG9mIHRoZSBkb2N1bWVudC4KPiA+PTIwCj4gPiBTZWUgYW4gZXhhbXBsZSBoZXJlICh0aGUgbGl0dGxlIGljb24gbmVhciB0aGUgdmVyc2lvbik6Cj4gPiBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9za2lucy1hcmNoaXZlcy9tYXZlbi1mbHVpZG8tc2tpbi1MQVRFU1QvCj4gPj0yMAo+ID4gSSB3YW50ZWQgdG8gcHVibGlzaCBpdCB0byBNYXZlbiBzaXRlIHRocm91Z2gKPiA+IGh0dHA6Ly9zdm4uYXBhY2hlLm9yZy9yMTgxODQ4OQo+ID4gYnV0IGJ1aWxkYm90IGRpZCBub3QgY2F0Y2ggdGhlIFNOQVBTSE9UIG0tc2l0ZS1wIHBsdWdpbjogd2UnbGwgaGF2ZSB0bwo+ID4gd2FpdAo+ID4gZm9yIHRoZSByZWxlYXNlIChhZnRlciBEb3hpYSB0aGVuIERveGlhIFNpdGV0b29scyByZWxlYXNlczogcGxlYXNlIHZvdGU9CikuCj4gPj0yMAo+ID4gRmVlZGJhY2sgYXBwcmVjaWF0ZWQgb24gdGhlIG5ldyBpY29uLCBpdHMgY29uZmlndXJhdGlvbiwgb3IgYW55IGlkZWEgdGg9CmF0Cj4gPiBjb3VsZAo+ID4gaW1wcm92ZSB0aGUgZmVhdHVyZS4KPiA+IERvbid0IGhlc2l0YXRlIHRvIHByb3Bvc2UgaW1wcm92ZW1lbnRzIGFzIGh0bWwgY2hhbmdlczogd2UnbGwgc2VlIGxhdGVyCj4gPiBob3cgdG8KPiA+IGdldCB0aGUgdXBkYXRlIGluIHRoZSBWZWxvY2l0eSB0ZW1wbGF0ZSB0aGF0IGdlbmVyYXRlZCB0aGUgaHRtbC4uLgo+ID49MjAKPiA+IFJlZ2FyZHMsCj4gPj0yMAo+ID4gSGVydj1FOQo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0Mzg4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgIDQgMDg6NDk6NDkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0Mzg4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEM1QUM4MTc3QTcKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAwODo0OTo0OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDU2MjMgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBOb3YgMjAxNyAwODo0OTo0OSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTU0MSBpbnZva2VkIGJ5IHVpZCA1MDApOyA0IE5vdiAyMDE3IDA4OjQ5OjQ5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTUzMCBpbnZva2VkIGJ5IHVpZCA5OSk7IDQgTm92IDIwMTcgMDg6NDk6NDggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA0IE5vdiAyMDE3IDA4OjQ5OjQ4ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMzZCN0MxQTcxRTMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA0IE5vdiAyMDE3IDA4OjQ5OjQ4ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEuOApYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMS44IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHNINzZrc1lQTlE3NSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgIDQgTm92IDIwMTcgMDg6NDk6NDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDEwLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTMyXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDFFNzA0NUYyOUEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA0IE5vdiAyMDE3IDA4OjQ5OjQ2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDE5IHdpdGggTUUKCWlkIFZrcGYxdzAwMjIwVWZkeTAza3BmOUE7IFNhdCwgMDQgTm92IDIwMTcgMDk6NDk6MzkgKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogU2F0LCAwNCBOb3YgMjAxNyAwOTo0OTozOSArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBCZXR0ZXIgaW5jcmVtZW50YWwgYnVpbGQgaW4gZGVmYXVsdCBkaXN0cm8/CkRhdGU6IFNhdCwgMDQgTm92IDIwMTcgMDk6NDk6MzkgKzAxMDAKTWVzc2FnZS1JRDogPDE4NjEwMzYuTE1ZRDdYUG1WUEBnaWdhPgpJbi1SZXBseS1UbzogPENBQ0xFPTdNSFJKLTlxdlBTVlpmSlpPNl8zRz0yLXh4TWVxQnloS1JzZm9ZY3RqdVI4UUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBQ0xFPTdNSFJKLTlxdlBTVlpmSlpPNl8zRz0yLXh4TWVxQnloS1JzZm9ZY3RqdVI4UUBtYWlsLmdtYWlsLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpIaSwKCkxvb2tzIGxpa2Ugbm93IHRoYXQgd2UgaGF2ZSBjb2xvciBhbmQgSmF2YSA5IHN1cHBvcnQsIHRoaXMga2luZCBvZj0yMApvcHRpbWl6YXRpb24gaXMgdGhlIG5leHQgYmlnIHVzZXItdmlzaWJsZSBmZWF0dXJlIHRoYXQgaXMgcmVxdWlyZWQgdG8ga2VlcD0KPTIwCmN1cnJlbnQuCgpXZSd2ZSBoYWQgZGlzY3Vzc2lvbnMgaW4gdGhlIHBhc3QgYW5kIGV2ZW4gb25lIHByb3Bvc2FsIGluIE1hdmVuIFdpa2ksIGJ1dCA9Cml0PTIwCnNlZW1zIHdlIGRpZCBub3QgZ2V0IG11Y2ggdGVhbSB0cmFjdGlvbi4KCkkgZGlkbid0IGtub3cgS2FybCBIZWlueiBhcHByb2FjaCwgYmFzZWQgb24gc2NtIHRvIGRldGVjdCBjaGFuZ2VzLi4uCgpJIGRvbid0IGhhdmUgYW55IGFwcHJvYWNoIEkgbWluZCBteXNlbGYsIGJ1dCB3b3VsZCBiZSBnbGFkIHRvIHdvcmsgd2l0aD0yMAphbnlib2R5IHdobyBoYXMgYWxyZWFkeSBzb21ldGhpbmcgdG8gc2hhcmUKClJlZ2FyZHMsCgpIZXJ2PUU5CgpMZSB2ZW5kcmVkaSAzIG5vdmVtYnJlIDIwMTcsIDExOjIwOjM0IENFVCBSb21haW4gTWFubmktQnVjYXUgYSA9RTljcml0IDoKPiBIaSBndXlzLAo+PTIwCj4gQW55IHBsYW4gdG8gaW50ZWdyYXRlIHNvbWV0aGluZyBsaWtlCj4gaHR0cHM6Ly9naXRodWIuY29tL2tobWFyYmFpc2UvaW5jcmVtZW50YWwtbW9kdWxlLWJ1aWxkZXIgaW4gbWF2ZW4KPiBkaXN0cmlidXRpb24/IEl0IGNvdWxkIGJlIGEgYml0IG1vcmUgZmFuY3kgbGlrZSBoYXZlIGEgbXZuaSBzY3JpcHQgb3IKPiBzb21ldGhpbmcgbGlrZSB0aGF0Lgo+PTIwCj4gU29tZSBBU0YgcHJvamVjdHMgaW52ZXN0aWdhdGUgYWx0ZXJuYXRpdmVzIGJlY2F1c2UgdGhlaXIgbWF2ZW4gYnVpbGRzCj4gYXJlIHNsb3cgKGl0IGlzIG5vdCB0aGUgYmFja2JvbmUgb2YgbWF2ZW4gYnV0IGJ1dCBhIHJlYWwgcHJvamVjdCB3aXRoCj4gc2V2ZXJhbCBwbHVnaW5zKS4gTWFpbiBvdXRjb21lIGlzIHRoYXQgbGF1bmNoaW5nIGEgZnVsbCBidWlsZCB3aGVuCj4gb25seSBhIG1vZHVsZSBjaGFuZ2VkIGlzIHRvbyBjb3N0bHkgKGNvbmNyZXRlbHkgYSAyaCBidWlsZCBmb3IgYQo+IGNoYW5nZSBpbiBhIG1vZHVsZSB0YWtpbmcgMTBzIHRvIGJ1aWxkIGlzIG5vdCBhY2NlcHRhYmxlKS4gV29uZGVyIGlmCj4gd2UgY2FuIGdldCBzb21lIGhlbHAgaGVyZSBhbmQgZ28gdG8gc29tZXRoaW5nIGEgYml0IG1vcmUgaW5jcmVtZW50YWwKPiBhbmQgc21vb3RoIGZvciB0aGVzZSBiaWcgcHJvamVjdHM/Cj49MjAKPiBUaGFua3MsCj4gUm9tYWluIE1hbm5pLUJ1Y2F1Cj4gQHJtYW5uaWJ1Y2F1IHwgIEJsb2cgfCBPbGQgQmxvZyB8IEdpdGh1YiB8IExpbmtlZEluCj49MjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NjE1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBOb3YgMjYgMTM6MTQ6NTEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjE1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDAwMDhDMTdGRTcKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAyNiBOb3YgMjAxNyAxMzoxNDo1MCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDc0Mjg5IGludm9rZWQgYnkgdWlkIDUwMCk7IDI2IE5vdiAyMDE3IDEzOjE0OjUwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NDIxOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBOb3YgMjAxNyAxMzoxNDo1MCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc0MTQxIGludm9rZWQgYnkgdWlkIDk5KTsgMjYgTm92IDIwMTcgMTM6MTQ6NTAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDI2IE5vdiAyMDE3IDEzOjE0OjUwICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgN0RCNUIxQTAxRjcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDI2IE5vdiAyMDE3IDEzOjE0OjQ5ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgeUFmQ3N5VGJyWE5MIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAyNiBOb3YgMjAxNyAxMzoxNDo0NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDIuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjRdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgM0EzNEQ1RkJEMgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjYgTm92IDIwMTcgMTM6MTQ6NDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMDQgd2l0aCBNRQoJaWQgZWRFZjF3MDBWMjBVZmR5MDNkRWZZcTsgU3VuLCAyNiBOb3YgMjAxNyAxNDoxNDo0MCArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBTdW4sIDI2IE5vdiAyMDE3IDE0OjE0OjQwICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IE1hdmVuIHJlc29sdmVyIGJyYW5jaCBjb25zb2xpZGF0aW9uCkRhdGU6IFN1biwgMjYgTm92IDIwMTcgMTQ6MTQ6MzkgKzAxMDAKTWVzc2FnZS1JRDogPDE4NjY1NjM0LkM2YTY1bkU5VHRAZ2lnYT4KSW4tUmVwbHktVG86IDwyMDE3MTEyNTIyMDgyNy5BNEM2NTI5QzhDQjdAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPgpSZWZlcmVuY2VzOiA8MjAxNzExMDkwNTM1NTEuOTU3RDQyOUM1MEQxQGRkMTczMzIua2Fzc2VydmVyLmNvbT4gPDE2MzUwOTQublRoWG9NdmpyVkBnaWdhPiA8MjAxNzExMjUyMjA4MjcuQTRDNjUyOUM4Q0I3QGRkMTczMzIua2Fzc2VydmVyLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpwbGVhc2UgbG9vayBhdCB3aGF0IEkgZGlkIGluIERveGlhIG9yIHNraW5zOiBJIGNob3NlIHRvIHBvaW50IHRvIGdpdGJveCBmb3I9Cj0yMApjb25uZWN0aW9uIGFuZCBkZXZlbG9wZXJDb25uZWN0aW9uIGFuZCBnaXRodWIgZm9yIHVybAp0aGF0J3Mgb25seSBhIGNvbnZlbnRpb24gaW4gb3VyIHBvbS54bWw6IGJ1dCBnaXRib3ggYW5kIGdpdGh1YiB3b3JrCgpSZWdhcmRzLAoKSGVydj1FOQoKTGUgc2FtZWRpIDI1IG5vdmVtYnJlIDIwMTcsIDIzOjA4OjI3IENFVCBNYW5mcmVkIE1vc2VyIGEgPUU5Y3JpdCA6Cj4gQXdlc29tZSAuLi4gc2V0dGluZyB1cCBteSBnaXRodWIgYWNjb3VudCBhbmQgc3VjaCBub3cuIEluIHRlcm1zIG9mIHBvbS54bWwKPiAuLiBzaG91bGQgdGhlIHNjbSBpbmZvIGp1c3QgcG9pbnQgdG8gZ2l0aHViIHRoZW4/Cj49MjAKPiBNYW5mcmVkCj49MjAKPiBIZXJ2PUU5IEJPVVRFTVkgd3JvdGUgb24gMjAxNy0xMS0yNSAxNDowMDoKPiA+IG9rLCBkb25lOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXJlc29sdmVyLWFudC10YXNrcwo+ID49MjAKPiA+IFJlZ2FyZHMsCj4gPj0yMAo+ID4gSGVydj1FOQo+ID49MjAKPiA+IExlIHNhbWVkaSAyNSBub3ZlbWJyZSAyMDE3LCAyMjowNzoxMiBDRVQgTWFuZnJlZCBNb3NlciBhID1FOWNyaXQgOgo+ID4+IFNvIC4uIEkgdHJpZWQgdGhpcyBub3cuIFNlZW1zIGxpa2Ugc29tZXRoaW5nIG9uIGdpdGJveCBpcyBub3QgY29uZmlndXI9CmVkCj4gPj4gY29ycmVjdGx5IGZvciBtZSBiZWNhdXNlIHRoZSBZb3VyIFBNQ3MgZHJvcCBkb3duIGNvbnRhaW5zIG5vIGVudHJpZXMKPiA+PiBhcGFydAo+ID4+IGZyb20gWW91ciBQTUNzLgo+ID4+PTIwCj4gPj4gQ2FuIHNvbWVvbmUgZWl0aGVyIGZpeCB0aGlzIGZvciBtZSBvciBjcmVhdGUgbWF2ZW4tcmVzb2x2ZXItYW50LXRhc2tzCj4gPj4gcmVwb3NpdG9yeT8gVGhlbiBJIGNhbiBkbyB0aGUgcmVzdC4KPiA+Pj0yMAo+ID4+IHRoeAo+ID4+PTIwCj4gPj4gbWFuZnJlZAo+ID4+PTIwCj4gPj4gSGVydj1FOSBCT1VURU1ZIHdyb3RlIG9uIDIwMTctMTEtMjMgMTU6MDY6Cj4gPj4gPiB5ZXMsIHRoYXQncyBHaXRCb3ggc2VsZiBzZXJ2aWNlIFsxXSwgZWFzeSB0byB1c2UsIGp1c3Q6Cj4gPj4gPiAxLiBzdGFydCBieSBjaG9vc2luZyB5b3VyIFBNQyBiZWZvcmUgZG9pbmcgYW55IG90aGVyIGNoYW5nZSAob3IgeW91ID0KbWF5Cj4gPj4gPiBjcmVhdGUgYSAibWF2ZW4tbWF2ZW4tc29tZXRoaW5nLmdpdCIgbGlrZSBJIGRpZCkKPiA+PiA+IDIuIGNoYW5nZSAiR2l0SHViIG5vdGlmaWNhdGlvbiBsaXN0IiB0byBpc3N1ZXNAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID49MjAKPiA+PiA+IHRoZSBvbmx5IGlzc3VlIEkgc2VlIGlzIHRoZSBtaXggb2YgQXJ0aWZhY3QgUmVzb2x2ZXIgb24gZ2l0LXdpcCBhbmQKPiA+PiA+IEFydGlmYWN0IFJlc29sdmVyIEFudCBUYXNrcyBvbiBnaXRib3g6IGJ1dCBvbmUgZGF5LCBJTkZSQS0xNTQzNiB3aWxsCj4gPj4gPiBwcm9iYWJseSBiZSBkb25lCj4gPj4gPj0yMAo+ID4+ID4gUmVnYXJkcywKPiA+PiA+PTIwCj4gPj4gPiBIZXJ2PUU5Cj4gPj4gPj0yMAo+ID4+ID4gWzFdIGh0dHBzOi8vZ2l0Ym94LmFwYWNoZS5vcmcvCj4gPj4gPj0yMAo+ID4+ID4gTGUgamV1ZGkgMjMgbm92ZW1icmUgMjAxNywgMTk6Mjc6MDYgQ0VUIFN0ZXBoZW4gQ29ubm9sbHkgYSA9RTljcml0IDoKPiA+PiA+PiBIZXJ2PUU5IG1pZ2h0IGtub3cuLi4gY291bGQgYmUgc2VsZi1zZXJ2aWNlIG9uIGdpdGJveCEKPiA+PiA+Pj0yMAo+ID4+ID4+IEkgaGF2ZSB0d28gcmVwb3MgdG8gY3JlYXRlIGFmdGVyIHRoZSBKZW5raW5zIFNlcnZlciBpcyB1cGdyYWRlZCBvbgo+ID4+ID4+IFN1bmRheSwKPiA+PiA+PiBzbyBsZXQgbWUga25vdyB0aGUgcHJvY2Vzcwo+ID4+ID4+PTIwCj4gPj4gPj4gT24gVGh1IDIzIE5vdiAyMDE3IGF0IDE2OjEzLCBNYW5mcmVkIE1vc2VyIDxtYW5mcmVkQHNpbXBsaWdpbGl0eS5jbz0KbT4KPiA+PTIwCj4gPiB3cm90ZToKPiA+PiA+PiA+IFNvIGhvdyBkbyBJIG1ha2UgdGhpcyByZXBvIGNvcHkgaGFwcGVuPyBBbiBpbmZyYSB0aWNrZXQgb3Igc29tZXRoPQppbmcKPiA+PiA+PiA+IGxpa2UKPiA+PiA+PiA+IHRoYXQ/Cj4gPj4gPj4gPj0yMAo+ID4+ID4+ID4gU3RlcGhlbiBDb25ub2xseSB3cm90ZSBvbiAyMDE3LTExLTIyIDIzOjUzOgo+ID4+ID4+ID4gPiBPbiBUaHUgMjMgTm92IDIwMTcgYXQgMDQ6MjAsIE1hbmZyZWQgTW9zZXIKPiA+PiA+PiA+ID4gPG1hbmZyZWRAc2ltcGxpZ2lsaXR5LmNvbT4KPiA+PiA+PiA+PTIwCj4gPj4gPj4gPiB3cm90ZToKPiA+PiA+PiA+ID4+IFN0YXR1cyB1cGRhdGUgYW5kIHF1ZXN0aW9uczoKPiA+PiA+PiA+ID4+PTIwCj4gPj4gPj4gPiA+PiAtIGRlbW9zIGFyZSBhbGwgbm93IGluIG1hc3RlciBhbmQgcGFydCBvZiB0aGUgbXVsdGkgbW9kdWxlIGJ1aT0KbGQKPiA+PiA+PiA+ID4+IC0gbm8gY2hhbmdlcyBvbiB0aGUgYW50IHRhc2tzIGZvciBub3cKPiA+PiA+PiA+ID4+PTIwCj4gPj4gPj4gPiA+PiBRdWVzdGlvbnM6Cj4gPj4gPj4gPiA+Pj0yMAo+ID4+ID4+ID4gPj4gMS4gQ2FuIEkgZGVsZXRlIHRoZSBkZW1vcyBicmFuY2ggbm93IG9yIGRvIHdlIHdhaXQgdW50aWwgbmV4dAo+ID4+ID4+ID4gPj4gcmVsZWFzZT8KPiA+PiA+PiA+ID4+IEkKPiA+PiA+PiA+ID4+IHdvdWxkIHByZWZlciB0byBkZWxldGUgdGhlIGJyYW5jaCBhbmQgY2xvc2UgdGhlIHRpY2tldCB0byBiZQo+ID4+ID4+ID4gPj4gaG9uZXN0Lgo+ID4+ID4+ID4gPj49MjAKPiA+PiA+PiA+ID4+IDIuIEkgbGlrZSB0aGUgaWRlYSBvZiBwcm9tb3RpbmcgdGhlIGFudCB0YXNrIGZyb20gYmVpbmcgaGlkZGVuPQogaW4KPiA+PiA+PiA+ID4+IHRoZQo+ID4+ID4+ID4gPj4gYnJhbmNoIGludG8gdGhlaXIgb3duIHJlcG8uIEFsbCB3ZSB3b3VsZCBoYXZlIHRvIGRvIGlzIHRvIGNvcHkKPiA+PiA+PiA+ID4+IHRoZQo+ID4+ID4+ID49MjAKPiA+PiA+PiA+IGV4aXN0aW5nCj4gPj4gPj4gPj0yMAo+ID4+ID4+ID4gPj4gcmVwbyBzb21laG93IGludG8gYSBuZXcgcmVwbyBpbiBhcGFjaGUgZ2l0LiBUaGVuIHdlIGNhbiBkRGVsZXRlCj4gPj4gPj4gPiA+PiBhbGwKPiA+PiA+PiA+ID4+IHRoZQo+ID4+ID4+ID4gPj4gYnJhbmNoZXMgYXBhcnQgZnJvbSB0aGUgYW50LXRhc2sgYnJhbmNoIGFuZCBtYWtlIHRoYXQgdGhlIG1hc3Q9CmVyLgo+ID4+ID4+ID4gPj4gRG9uZS4KPiA+PiA+PiA+PTIwCj4gPj4gPj4gPiBJCj4gPj4gPj4gPj0yMAo+ID4+ID4+ID4gPj4gYW0gaGFwcHkgdG8gZG8gdGhhdCBpbiB0ZXJtcyBvZiB0aGUgYnJhbmNoZXMgYW5kIHNvIG9uIGJ1dCBob3c9CiBkbwo+ID4+ID4+ID4gPj4gSQo+ID4+ID4+ID4gPj4gZ28KPiA+PiA+PiA+ID4+IGFib3V0IGdldHRpbmcgdGhlIHJlcG8gY29waWVkIGludG8gYSBuZXcgcmVwbyBuYW1lZAo+ID4+ID4+ID4gPj4gbWF2ZW4tcmVzb2x2ZXItYW50LXRhc2tzPwo+ID4+ID4+ID4gPj0yMAo+ID4+ID4+ID4gPiBJIGxpa2UgdGhhdCBzb2x1dGlvbiB0b28KPiA+PiA+PiA+ID49MjAKPiA+PiA+PiA+ID4+IFRoYW5rcwo+ID4+ID4+ID4gPj49MjAKPiA+PiA+PiA+ID4+IE1hbmZyZWQKPiA+PiA+PiA+ID4+PTIwCj4gPj4gPj4gPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KPTJELS0KPiA+PiA+PiA+ID4+IC0tLQo+ID4+ID4+ID4gPj4gLQo+ID4+ID4+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+PiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+PiA+ID4+PTIwCj4gPj4gPj4gPiA+PiAtLQo+ID4+ID4+ID4gPj0yMAo+ID4+ID4+ID4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+PiA+PiA+PTIwCj4gPj4gPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KPTJELS0KPiA+PiA+PiA+IC0KPiA+PiA+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPj4gPj0yMAo+ID4+ID4+ID4gLS0KPiA+PiA+Pj0yMAo+ID4+ID4+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4+ID49MjAKPiA+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj0yMAo+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQyMDYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIE9jdCAgOSAyMDo1MzoxOSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyMDYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOEMxNjMxMDRFRgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sICA5IE9jdCAyMDE3IDIwOjUzOjE5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTg5IGludm9rZWQgYnkgdWlkIDUwMCk7IDkgT2N0IDIwMTcgMjA6NTM6MTkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDExMSBpbnZva2VkIGJ5IHVpZCA1MDApOyA5IE9jdCAyMDE3IDIwOjUzOjE5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTAwIGludm9rZWQgYnkgdWlkIDk5KTsgOSBPY3QgMjAxNyAyMDo1MzoxOCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMDkgT2N0IDIwMTcgMjA6NTM6MTggKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAxMzA5NTE4MDgxRAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgIDkgT2N0IDIwMTcgMjA6NTM6MTggKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC41ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjUgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLAoJS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHU0NzNIaEhiT1Z3ayBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgIDkgT2N0IDIwMTcgMjA6NTM6MTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDA4LnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTMwXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEExMjg0NUZFNjQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICA5IE9jdCAyMDE3IDIwOjUzOjE0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDE1IHdpdGggTUUKCWlkIEtZdDgxdzAwNjIwVWZkeTAzWXQ4OEo7IE1vbiwgMDkgT2N0IDIwMTcgMjI6NTM6MDggKzAyMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogTW9uLCAwOSBPY3QgMjAxNyAyMjo1MzowOCArMDIwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBKZW5raW5zIGFuZCBNYXZlbiAzLjAuNSBvciBKREsgNwpEYXRlOiBNb24sIDA5IE9jdCAyMDE3IDIyOjUzOjA4ICswMjAwCk1lc3NhZ2UtSUQ6IDwxODcyODcyLnJXS0MyaDJrVUlAZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zNS1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpJbi1SZXBseS1UbzogPG9wLnk3dXVrY25ta2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpSZWZlcmVuY2VzOiA8MTA1NDQ2MTUuQjRoTzNQbnZFekBnaWdhPiA8OTczMTY0Ny41amdrajM2YWl0QGdpZ2E+IDxvcC55N3V1a2NubWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKZnJvbSBhIHB1cmUgc3ludGF4IHBlcnNwZWN0aXZlLCBub3cgSSBzZWUgdGhlIHByb3Bvc2FsCgpmcm9tIGFuIGltcGxlbWVudGF0aW9uIHBvaW50IG9mIHZpZXcsIEkgZG9uJ3Qgd2FudCB0byBiZSBwZXNzaW1pc3RpYywgYnV0IHQ9Cmhpcz0yMAp3b3VsZCByZXF1aXJlIGEgZGVwZW5kZW5jeSBmcm9tIE1hdmVuIGNvcmUgdG8gbWF2ZW4tc2NtIGFuZCBhIGNvbXBsZXhpdHk9MjAKZHVyaW5nIHJlYWN0b3IgcG9tIHBhcnNpbmcuCgphbmQgaWYgaW4gdGhlb3J5IHRoaXMgY291bGQgc29sdmUgdGhlIGluaXRpYWwgY2xvbmUgcXVlc3Rpb24sIHRoaXMgd291bGQgbm89CnQ9MjAKcHJvdmlkZSBwdWxsL2ZldGNoCgpJTUhPLCBiZXR0ZXIgdG8gaGF2ZSBhIGJhc2ljIHNoZWxsIHNjcmlwdCBjb21wbGV0ZWx5IGluZGVwZW5kYW50IG9mIE1hdmVuCgpSZWdhcmRzLAoKSGVydj1DMz1BOQoKTGUgbHVuZGkgOSBvY3RvYnJlIDIwMTcsIDIwOjQ5OjE0IENFU1QgUm9iZXJ0IFNjaG9sdGUgYSA9QzM9QTljcml0IDoKPiBBbiBleGFtcGxlOgo+PTIwCj4gPHByb2plY3Q+Cj4gICAgPG1vZHVsZXM+Cj4gICAgICA8bW9kdWxlPnN1YjE8L21vZHVsZT4gPCEtLSBkaXJlY3RvcnkgLS0+Cj4gICAgICA8bW9kdWxlPnN1YjIvY3VzdG9tLXBvbS54bWw8L21vZHVsZT4gIDwhLS0gZm9sZGVyIC0tPgo+PTIwCj4gICAgICA8IS0tIHByb3Bvc2FsIC0tPgo+ICAgID0yMAo+IDxtb2R1bGU+c2NtOmdpdDpodHRwczovL2dpdC13aXAtdXMuYXBhY2hlLm9yZy9yZXBvcy9hc2YvbWF2ZW4tY2xlYW4tcGx1Z2k9Cm4uCj4gZ2l0PC9tb2R1bGU+IDwhLS0gc2NtIGJhc2VkIC0tPgo+ICAgIDxtb2R1bGVzPgo+IDwvcHJvamVjdD4KPj0yMAo+PTIwCj4gT24gTW9uLCAwOSBPY3QgMjAxNyAwMDowMToyOSArMDIwMCwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZT0KZS5mcj4KPj0yMAo+IHdyb3RlOgo+ID4gSSBkb24ndCByZWFsbHkgdW5kZXJzdGFuZCB0aGVzZSBhbnN3ZXJzOiBhIGRlbW8sIHBsZWFzZQo+ID49MjAKPiA+IFJlZ2FyZHMsCj4gPj0yMAo+ID4gSGVydj1DMz1BOQo+ID49MjAKPiA+IExlIGRpbWFuY2hlIDggb2N0b2JyZSAyMDE3LCAyMDozMjoyOSBDRVNUIFJvYmVydCBTY2hvbHRlIGEgPUMzPUE5Y3JpdCA6Cj4gPj4gT24gU3VuLCAwOCBPY3QgMjAxNyAyMDoyNzoxNyArMDIwMCwgU3RlcGhlbiBDb25ub2xseQo+ID4+PTIwCj4gPj4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4+ID4gT24gU3VuIDggT2N0IDIwMTcgYXQgMTg6MjgsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmY9CnI+Cj4gPj49MjAKPiA+PiB3cm90ZToKPiA+PiA+PiBJIGRvbid0IGdldCB0aGUgdGVjaG5pY2FsIGRldGFpbHMKPiA+PiA+PiBidXQgSUlVQywgeW91J3JlIGFibGUgdG8gZG8gYSBQb0Mgd2l0aCBvdXIgYXZhaWxhYmxlIGdpdAo+ID4+PTIwCj4gPj4gcmVwb3NpdG9yaWVzIG9mCj4gPj49MjAKPiA+PiA+PiBKZW5raW5zIGpvYiBtYWludGVuYW5jZSAoZWFzeSBqb2IgY3JlYXRpb24gKyBlYXN5IEplbmtpbnNmaWxlCj4gPj4gPj4gbWFpbnRlbmFuY2UpLAo+ID4+ID49MjAKPiA+PiA+IEpvYiBjcmVhdGVkIGF1dG9tYXRpY2FsbHkgb25jZSB0aGVyZSBpcyBhIGdpdCByZXBvICB3aXRoIGEgYnJhbmNoCj4gPj49MjAKPiA+PiB3aXRoIGEKPiA+Pj0yMAo+ID4+ID4gSmVua2luc2ZpbGUgLiBObyBodW1hbiBpbnRlcmFjdGlvbiByZXF1aXJlZCBhZnRlciBgZWNobwo+ID4+ID4gPUUyPTgwPTlDbWF2ZW5Qcm9qZWN0U3RkQnVpbGQoKTs9RTI9ODA9OUQgPiBKZW5raW5zZmlsZSAmJiBnaXQgYWRkIEo9CmVua2luc2ZpbGUgJiYgZ2l0Cj4gPj4gPiBjb21taXQgPUUyPTgwPTlDYWRkIEplbmtpbnNmaWxlPUUyPTgwPTlEICAmJiBnaXQgcHVzaGAKPiA+PiA+PTIwCj4gPj4gPiBKZW5raW5zZmlsZSBiZWluZyBqdXN0IG9uZSBsaW5lIGBtYXZlblByb2plY3RTdGRCdWlsZGAgb3Igc29tZXRoaW5nCj4gPj49MjAKPiA+PiBsaWtlCj4gPj49MjAKPiA+PiA+IHRoYXQuCj4gPj4gPj0yMAo+ID4+ID4gSXMgdGhhdCBlYXN5IGVub3VnaD8KPiA+Pj0yMAo+ID4+IElJUkMgdGhlcmUgaXMgdGhpcyBwcm9wb3NhbCB0byBsZXQgcG9tIG1vZHVsZXMgc3VwcG9ydCBkaXJlY3RvcmllcywgcG9tCj4gPj4gbG9jYXRpb25zICh0aGVzZSBhcmUgYWxyZWFkeSBzdXBwb3J0ZWQpIGFuZCBTQ00gcmVmZXJlbmNlcy4gTWlnaHQgYmUKPiA+PiBpbnRlcmVzdGluZyBmb3IgYW4gYWdncmVnYXRvciBwb20uCj4gPj49MjAKPiA+PiBSb2JlcnQKPiA+Pj0yMAo+ID4+ID4gYW5kCj4gPj4gPj0yMAo+ID4+ID4+IHlvdSdyZSBjb25maWRlbnQgdGhhdCBpdCBjYW4gc2NhbGUgdG8gdGhlIHNpemUgd2UncmUgZXhwZWN0aW5nIHdoZW4KPiA+PiA+PiB3ZSdyZQo+ID4+ID4+IHNwbGl0dGluZyB0aGUgY3VycmVudCBhZ2dyZWdhdG9yIHN2biB0byBtYW55IHNtYWxsIGdpdCByZXBvcwo+ID4+ID4+PTIwCj4gPj4gPj4gdGhhdCdzIGl0Pwo+ID4+ID4+PTIwCj4gPj4gPj4gUmVnYXJkcywKPiA+PiA+Pj0yMAo+ID4+ID4+IEhlcnY9QzM9QTkKPiA+PiA+Pj0yMAo+ID4+ID4+IExlIGRpbWFuY2hlIDggb2N0b2JyZSAyMDE3LCAxNjoyMToxMCBDRVNUIFN0ZXBoZW4gQ29ubm9sbHkgYSA9QzM9QTk9CmNyaXQgOgo+ID4+ID4+ID4gT24gU3VuIDggT2N0IDIwMTcgYXQgMDM6NTUsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmU9CmUuZnI+Cj4gPj4gPj49MjAKPiA+PiA+PiB3cm90ZToKPiA+PiA+PiA+ID4gVExEUjsgPTNECj4gPj4gPj4gPiA+IFBlcmhhcHMgd2UgY2FuIHN0YXJ0IHdpdGggMiBwcm9vZnMgb2YgY29uY2VwdDoKPiA+PiA+PiA+ID4gMS4gZnVsbCBnaXQgY2xvbmUgKyBKZW5raW5zIGpvYnMgZm9yIHRoZSA3IGV4aXN0aW5nIGdpdCByZXBvcwo+ID4+PTIwCj4gPj4gKHdpdGgKPiA+Pj0yMAo+ID4+ID4+IDYKPiA+PiA+Pj0yMAo+ID4+ID4+ID4gPiBhZGRpdGlvbmFsIG9uZXMgaW4gMiBkYXlzKQo+ID4+ID4+ID4gPiAyLiBnaXQgc3BsaXQgb2Ygb25lIG9mIHRoZSBhZ2dyZWdhdG9yIHN2biB0cnVuazogc2tpbnMgb3IKPiA+PiA+Pj0yMAo+ID4+ID4+IGRveGlhLXRvb2xzCj4gPj4gPj4gY2FuCj4gPj4gPj49MjAKPiA+PiA+PiA+ID4gYmUKPiA+PiA+PiA+ID4gZWFzeSBjaG9pY2VzIHNpbmNlIHRoZXkgYXJlIGxpZ2h0LCB3aGVyZSBwbHVnaW5zIG9yIHNoYXJlZCBhcmUKPiA+PiA+Pj0yMAo+ID4+ID4+IHBlcmhhcHMKPiA+PiA+PiB0b28KPiA+PiA+Pj0yMAo+ID4+ID4+ID4gPiBoZWF2eS4gVGhlIG9uZSB3b3JraW5nIG9uIHRoaXMgUG9DIHdpbGwgbWFrZSBoaXMgY2hvaWNlCj4gPj4gPj4gPiA+PTIwCj4gPj4gPj4gPiA+IHRoZW4gbW9yZSBkZXRhaWxlZCBhbnN3ZXIgaW5saW5lIHRoYXQgbGVhZCB0byB0aGlzIFBvQ3MgcHJvcG9zYWwKPiA+PiA+PiA+ID49MjAKPiA+PiA+PiA+ID4gUmVnYXJkcywKPiA+PiA+PiA+ID49MjAKPiA+PiA+PiA+ID4gSGVydj1DMz1BOQo+ID4+ID4+ID4gPj0yMAo+ID4+ID4+ID4gPiBMZSBkaW1hbmNoZSA4IG9jdG9icmUgMjAxNywgMDA6MDI6MTAgQ0VTVCBUaWJvciBEaWdhbmEgYSA9QzM9QTk9CmNyaXQgOgo+ID4+ID4+ID4gPiA+IEkgZG9uJ3QgdGhpbmsgdGhlIGRldnMgd291bGQgd29yayBvbiBhbGwgYXJ0aWZhY3RzKHByb2plY3RzKSBhCj4gPj4gPj49MjAKPiA+PiA+PiB0aW1lLgo+ID4+ID4+PTIwCj4gPj4gPj4gPiA+IHN1cmUsIEkgdGhpbmsgSSdtIG9uZSBvZiB0aGUgZmV3IHBlb3BsZSB3b3JraW5nIG9uIG5lYXIKPiA+Pj0yMAo+ID4+IGV2ZXJ5dGhpbmcKPiA+Pj0yMAo+ID4+ID4+ICh3aXRoCj4gPj4gPj49MjAKPiA+PiA+PiA+ID4gcmFyZQo+ID4+ID4+ID4gPiBleGNlcHRpb25zIGxpa2UgU3VyZWZpcmUsIGFzIHlvdSBub3RpY2VkIDopICkKPiA+PiA+PiA+ID4gYnV0IGZvciB1c3VhbCBjb250cmlidXRvciwgdGhlcmUgaXMgbm8gaXNzdWUKPiA+PiA+PiA+ID49MjAKPiA+PiA+PiA+ID4gSSdtIG5vdCBhIGdpdCBleHBlcnQsIHRoZW4gSSBkb24ndCBrbm93IGlmIGVhc3kgImZ1bGwgTWF2ZW4KPiA+Pj0yMAo+ID4+IGNsb25lIgo+ID4+PTIwCj4gPj4gPj4gaXMKPiA+PiA+Pj0yMAo+ID4+ID4+ID4gPiBiZXR0ZXIKPiA+PiA+PiA+ID4gZG9uZSB3aXRoIGEgc2hlbGwgc2NyaXB0IG9yIHNvbWUgZ2l0IG1vZHVsZXMKPiA+PiA+PiA+ID49MjAKPiA+PiA+PiA+ID4gPiBJZiB0aGUgbmFtaW5nIGNvbnZlbnRpb24gb2YgcmVwbyBmb3IgYSBwbHVnaW4gd291bGQgYmUKPiA+Pj0yMAo+ID4+IGFydGlmYWN0SWQsCj4gPj49MjAKPiA+PiA+PiBsaWtlCj4gPj4gPj49MjAKPiA+PiA+PiA+ID4gPiAvbWF2ZW4tY2xlYW4tcGx1Z2luLCB0aGVuIGV2ZW4gZWFzeSB0byBmaWd1cmUgb3V0IHdoaWNoIG9uZSB0bwo+ID4+ID4+PTIwCj4gPj4gPj4gY2xvbmUuCj4gPj4gPj49MjAKPiA+PiA+PiA+ID4gPiBUaGUgbW9zdCBsaWtlbHkgdGhlIGRldiB3b3VsZCBqdXN0IGNsb25lIG9uZSByZXBvIHNoZS9oZSBpcwo+ID4+ID4+PTIwCj4gPj4gPj4gaW50ZXJlc3RlZAo+ID4+ID4+PTIwCj4gPj4gPj4gPiA+ID4gaW4KPiA+PiA+PiA+ID4gPiBhdCB0aGUgbW9tZW50LCBpLmUuIHJlcG9zaXRvcnkgL21hdmVuLWNsZWFuLXBsdWdpbiwgbGV0J3Mgc2F5Lgo+ID4+ID4+ID4gPiA+IEl0J3MgZ29vZCB0byBhdm9pZCBhbnkgc2hhcmVkIGZpbGVzIGFjcm9zcyB0aGVtLCBldmVuIEkgZG9uJ3QKPiA+PiA+Pj0yMAo+ID4+ID4+IHRoaW5rCj4gPj4gPj4gZGV2cwo+ID4+ID4+PTIwCj4gPj4gPj4gPiA+ID4gc2hhcmUgc29tZSBpbiBzdm4gdG9kYXkuIFRoZSByZWxlYXNlIHByb2Nlc3Mgd291bGQgYmUgcXVpdGUKPiA+Pj0yMAo+ID4+IHVzdWFsLAo+ID4+PTIwCj4gPj4gPj4gaS5lLgo+ID4+ID4+PTIwCj4gPj4gPj4gPiA+IG9uZQo+ID4+ID4+ID4gPj0yMAo+ID4+ID4+ID4gPiA+IHJlcG8gPTNEIG9uZSBwcm9qZWN0LCBhbmQgbmV3IGRldnMgYWxyZWFkeSBoYXZlIHRoZXNlIGV4cGVyaWU9Cm5jZXMKPiA+PiA+Pj0yMAo+ID4+ID4+IHdoaWNoCj4gPj4gPj49MjAKPiA+PiA+PiA+ID4gd2lsbAo+ID4+ID4+ID4gPj0yMAo+ID4+ID4+ID4gPiA+IGJlIHNpbXBsZSBmb3IgdGhlbSB0byBhZGFwdCBmYXN0ZXIuCj4gPj4gPj4gPiA+PTIwCj4gPj4gPj4gPiA+ICsxCj4gPj4gPj4gPiA+IHRoZSBvbmx5IGRyYXdiYWNrIEkgc2VlIGN1cnJlbnRseSBpcyB0aGF0IHRoZXJlIGlzIG5vIG5hdHVyYWwKPiA+PiA+Pj0yMAo+ID4+ID4+IGdyb3VwaW5nLAo+ID4+ID4+PTIwCj4gPj4gPj4gPiA+IHRoZW4KPiA+PiA+PiA+ID4gd2UgaGF2ZSBhIGZsYXQgbGl0IG9mIG5lYXIgMTAwIGdpdCByZXBvcyB3aXRob3V0IHRoZSBjdXJyZW50Cj4gPj4gPj49MjAKPiA+PiA+PiBzdHJ1Y3R1cmUKPiA+PiA+Pj0yMAo+ID4+ID4+ID4gPiAocGx1Z2lucywgc2hhcmVkIGNvbXBvbmVudHMsIHNraW5zLCAuLi4pOiBJIHRoaW5rIGNvbXBvbmVudHMKPiA+PiA+Pj0yMAo+ID4+ID4+IHN0cnVjdHVyZQo+ID4+ID4+IGlzCj4gPj4gPj49MjAKPiA+PiA+PiA+ID4gdXNlZnVsIGZvciBtYWludGVuYWJpbGl0eQo+ID4+ID4+ID4gPiBidXQgbm90IHJlYWxseSBhIGNvbXBsZXRlIHNob3dzdG9wcGVyCj4gPj4gPj4gPiA+IGFuZCBwZXJoYXBzIHRoZSAiTWF2ZW4gZnVsbCBjbG9uZSIgdG9vbGluZyBjYW4gcmUtY3JlYXRlIHNvbWUKPiA+PiA+Pj0yMAo+ID4+ID4+IGdyb3VwaW5nCj4gPj4gPj4gdG8KPiA+PiA+Pj0yMAo+ID4+ID4+ID4gPiBrZWVwCj4gPj4gPj4gPiA+IHZpc2libGUgc3RydWN0dXJlCj4gPj4gPj4gPiA+PTIwCj4gPj4gPj4gPiA+IE5vdywgc29tZW9uZSBoYXMgdG8ga25vdyBob3cgdG8gY3JlYXRlIHBlci1jb21wb25lbnQgZ2l0IHJlcG8KPiA+Pj0yMAo+ID4+IHdpdGgKPiA+Pj0yMAo+ID4+ID4+IHRhZ3MKPiA+PiA+Pj0yMAo+ID4+ID4+ID4gPiAoZWl0aGVyIGJ5IHJld29ya2luZyBleGl0aW5nIGdpdCBtaXJyb3JzLCBlaXRoZXIgYnkgcmVzdGFydGluZwo+ID4+PTIwCj4gPj4gZnJvbQo+ID4+PTIwCj4gPj4gPj4gc3ZuKSwKPiA+PiA+Pj0yMAo+ID4+ID4+ID4gPiBhbmQKPiA+PiA+PiA+ID4gdGhhdCdzIG5vdCBtZSA6KQo+ID4+ID4+ID4gPj0yMAo+ID4+ID4+ID4gPiBnaXZlbiB0aGUgdm9sdW1lIChhZGRpbmcgNzAgZ2l0IHJlcG9zIGZvciBNYXZlbiksIHdlJ2xsIGhhdmUgdG8KPiA+Pj0yMAo+ID4+IHRlbGwKPiA+Pj0yMAo+ID4+ID4+IGluZnJhCj4gPj4gPj49MjAKPiA+PiA+PiA+ID4gYWJvdXQgaXQuCj4gPj4gPj4gPiA+PTIwCj4gPj4gPj4gPiA+IFRoZW4gdGhlcmUgaXMgdGhlIEplbmtpbnMgam9icyBjb25maWd1cmF0aW9uOgo+ID4+ID4+ID4gPiAtIHdlIG5lZWQgZWFzeSBKZW5raW5zZmlsZSBpbiBlYWNoIHJlcG8KPiA+PiA+PiA+PTIwCj4gPj4gPj4gPiBzbyB3ZSBjcmVhdGUgYSBzaGFyZWQgR3Jvb3Z5IGxpYnJhcnkgbGlrZSB0aGUgSmVua2lucyBwcm9qZWN0IGRvZXMKPiA+Pj0yMAo+ID4+IGFuZAo+ID4+PTIwCj4gPj4gPj4gdGhlCj4gPj4gPj49MjAKPiA+PiA+PiA+IEplbmtpbnNmaWxlIGJlY29tZXMgYGJ1aWxkUGx1Z2luYCBmb3IgYWxsIGV4Y2VwdCBjb3JlCj4gPj4gPj4gPj0yMAo+ID4+ID4+ID4gPiAtIHdlIG5lZWQgZWFzeSA4MCBqb2JzIGNyZWF0aW9uIChubywgSSB3b24ndCBtYW51YWxseSBjcmVhdGUgODAKPiA+Pj0yMAo+ID4+IGpvYnMKPiA+Pj0yMAo+ID4+ID4+ID4gPiBwZXJzb25hbGx5KQo+ID4+ID4+ID49MjAKPiA+PiA+PiA+IFNvIEkgd2lsbCBhZGQgU0NNTmF2aWdhdG9yIGZ1bmN0aW9uYWxpdHkgdG8gdGhlIEFTRiBnaXQtSmVua2lucwo+ID4+PTIwCj4gPj4gcGx1Z2luCj4gPj49MjAKPiA+PiA+PiBhbmQKPiA+PiA+Pj0yMAo+ID4+ID4+ID4gd2UganVzdCBkZWZpbmUgYW4gb3JnLWZvbGRlciBmb3IgTWF2ZW4gYW5kIGFsbCBnaXQgcmVwb3Mgd2l0aCBhCj4gPj4gPj49MjAKPiA+PiA+PiBKZW5raW5zZmlsZQo+ID4+ID4+PTIwCj4gPj4gPj4gPiB3aWxsIGJlIGF1dG8tbWFpbnRhaW5lZC4KPiA+PiA+PiA+PTIwCj4gPj4gPj4gPiA+IEFuZCBvbmNlIGFnYWluLCBpbmZyYSB3aWxsIGhhdmUgdG8gYmUgaW4gdGhlIGxvb3AgKGF0IEplbmtpbnMKPiA+Pj0yMAo+ID4+IHNpZGUKPiA+Pj0yMAo+ID4+ID4+IHRoaXMKPiA+PiA+Pj0yMAo+ID4+ID4+ID4gPiB0aW1lKSwKPiA+Pj0yMAo+ID4+ID4+ID4gPiBzaW5jZSBJIGZlYXIgdGhlIGxvYWQgb24gSmVua2lucyBtYXN0ZXIgbm9kZSB3b24ndCBiZSBsaWdodDoKPiA+PiBwZXJoYXBzCj4gPj49MjAKPiA+PiA+PiA+ID4gdGhhdCdzCj4gPj4gPj4gPiA+IHdoZXJlIEplbmtpbnMgZm9sZGVycyB3aWxsIGJlIHVzZWZ1bCwgYnV0IEknbSBub3QgYSBKZW5raW5zCj4gPj49MjAKPiA+PiBleHBlcnQKPiA+Pj0yMAo+ID4+ID4+IGVpdGhlci4KPiA+PiA+Pj0yMAo+ID4+ID4+ID4gSWYgd2UgdXNlIGFuIG9yZyBmb2xkZXIgaW50ZWdyYXRlZCB3aXRoIEdpdFB1YlN1YiBJIGRvIG5vdCB0aGluawo+ID4+PTIwCj4gPj4gdGhleQo+ID4+PTIwCj4gPj4gPj4gd2lsbAo+ID4+ID4+PTIwCj4gPj4gPj4gPiBiZSBvdmVybHkgY29uY2VybmVkCj4gPj4gPj4gPj0yMAo+ID4+ID4+ID4gPiBJZiBldmVyeXRoaW5nIHNlZW1zIGZlYXNpYmxlIHRvIHNwbGl0IG91ciBzdm4gY29kZSBpbnRvIDEgZ2l0Cj4gPj49MjAKPiA+PiByZXBvCj4gPj49MjAKPiA+PiA+PiBwZXItCj4gPj4gPj49MjAKPiA+PiA+PiA+ID4gY29tcG9uZW50LCB3aGljaCB3aWxsIGJyaW5nIHVzIHRvICJmdWxsIE1hdmVuIGNvZGUiIGJlaW5nIG5lYXIKPiA+Pj0yMAo+ID4+IDEwMAo+ID4+PTIwCj4gPj4gPj4gcmVwb3MsCj4gPj4gPj49MjAKPiA+PiA+PiA+ID4gSSdtCj4gPj4gPj4gPiA+IG9rIHdpdGggaXQuCj4gPj4gPj4gPiA+IFdlJ2xsIG5lZWQgdGhlIGhlbHAgb2YgbWlzYyBleHBlcnRzIG9uIEplbmtpbnMgYW5kIGdpdCB0byBwcmVwYT0KcmUKPiA+PiA+Pj0yMAo+ID4+ID4+IHRoaW5ncwo+ID4+ID4+PTIwCj4gPj4gPj4gPiA+IGF0Cj4gPj4gPj4gPiA+IHRoaXMgc2NhbGUuCj4gPj4gPj4gPj0yMAo+ID4+ID4+ID4gSSB0aGluayBvbmUgcmVwbyBwZXIgcmVsZWFzZSByb290IGlzIHRoZSB3YXkgdG8gZ28uCj4gPj4gPj4gPj0yMAo+ID4+ID4+ID4gV2Ugc2hvdWxkIHN0YXJ0IGJ5IGRyYXdpbmcgdXAgYSBsaXN0IGFuZCBhbWFsZ2FtYXRpb24gd2hlcmUKPiA+PiA+Pj0yMAo+ID4+ID4+IGFwcHJvcHJpYXRlOgo+ID4+ID4+ID4gRWcKPiA+PiA+PiA+PTIwCj4gPj4gPj4gPiAqIGRvZXMgaXQgbWFrZSBzZW5zZSB0byByZWxlYXNlIG1hdmVuLWRlcGxveS1wbHVnaW4gYW5kCj4gPj4gPj4gPiBtYXZlbi1pbnN0YWxsLXBsdWdpbiBpbmRlcGVuZGVudGx5PyBTZWVtcyB3ZSBtb3N0IG9mdGVuIG1ha2UKPiA+Pj0yMAo+ID4+IG1pcnJvcmluZwo+ID4+PTIwCj4gPj4gPj4gPiBjaGFuZ2VzIHRvIGJvdGgsIGFuZCBwZXJoYXBzIGl0IHdvdWxkIGJlIGJldHRlciBpZiB3ZSBmb3JjZWQgdGhhdAo+ID4+ID4+PTIwCj4gPj4gPj4gbW9kZWw/Cj4gPj4gPj49MjAKPiA+PiA+PiA+IChEb249RTI9ODA9OTl0IGFuc3dlciBpbiB0aGlzIHRocmVhZCwganVzdCBwb2ludGluZyBvdXQgYW4gZXhhbXBsPQplKQo+ID4+ID4+PTIwCj4gPj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KPTJELQo+ID4+ID4+PTIwCj4gPj4gPj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+PiA+ID49MjAKPiA+PiA+PiA+ID4gLS0KPiA+PiA+PiA+PTIwCj4gPj4gPj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+PiA+Pj0yMAo+ID4+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0KPiA+PiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+Pj0yMAo+ID4+ID4+IC0tCj4gPj4gPj0yMAo+ID4+ID4gU2VudCBmcm9tIG15IHBob25lCj4gPj49MjAKPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj49MjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0Njc0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBOb3YgMjkgMjI6MzY6MzUgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0Njc0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDdEMjM3MTdDMkYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyOSBOb3YgMjAxNyAyMjozNjozNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDU1MzExIGludm9rZWQgYnkgdWlkIDUwMCk7IDI5IE5vdiAyMDE3IDIyOjM2OjM1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NTIwNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOSBOb3YgMjAxNyAyMjozNjozNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU1MTk2IGludm9rZWQgYnkgdWlkIDk5KTsgMjkgTm92IDIwMTcgMjI6MzY6MzQgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDI5IE5vdiAyMDE3IDIyOjM2OjM0ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNjE5ODcxODA5MzEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDI5IE5vdiAyMDE3IDIyOjM2OjM0ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuOApYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC44IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgS0FNX05VTVNVQkpFQ1Q9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBMQ1VWOTJYcldzeWogZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsIDI5IE5vdiAyMDE3IDIyOjM2OjMyICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAxMS5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEzM10pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA1M0M3NTVGMjMxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyOSBOb3YgMjAxNyAyMjozNjozMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQyMSB3aXRoIE1FCglpZCBmeWNSMXcwMDYyMFVmZHkwM3ljUkhKOyBXZWQsIDI5IE5vdiAyMDE3IDIzOjM2OjI1ICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFdlZCwgMjkgTm92IDIwMTcgMjM6MzY6MjUgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgTWF2ZW4gSW5kZXhlciA2LjAuMApEYXRlOiBXZWQsIDI5IE5vdiAyMDE3IDIzOjM2OjI1ICswMTAwCk1lc3NhZ2UtSUQ6IDwxODc4MzIyLk1kbXZ4M2haeldAZ2lnYT4KSW4tUmVwbHktVG86IDxDQVBMcFJRTDY9M3FrekFlPUZnUnJlaGVHeGZraXlkVXFCZHIteURDVm9HZVpUenJxYkFAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQVBMcFJRTDY9M3FrekFlPUZnUnJlaGVHeGZraXlkVXFCZHIteURDVm9HZVpUenJxYkFAbWFpbC5nbWFpbC5jb20+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKKzEKCkkgdHJpZWQgdG8gdmVyaWZ5IHRoZSBidWlsZCB3aXRoIGRpZmZvc2NvcGU6IEkgZm91bmQgb25seSBrbm93IHN0dXBpZD0yMApkaWZmZXJlbmNlcyBpbiBNQU5JRkVTVCBhbmQgTUVUQS1JTkYvc2lzdS9qYXZheC5pbmplY3QuTmFtZWQKZ29vZCBuZXdzOiBJIGJ1aWxkIHdpdGggMS44LjBfMTMxIChvbiBMaW51eCkgd2hpbGUgVGFtYXMgYnVpbHQgd2l0aCAxLjguMF8xPQo1MT0yMAoocHJvYmFibHkgd2l0aCBNYWNPUykgYW5kIHRoaXMgdGltZSB0aGVyZSB3YXMgbm8gZGlmZmVyZW5jZSBpbiBieXRlY29kZQoKUmVnYXJkcywKCkhlcnY9RTkKCkxlIG1hcmRpIDI4IG5vdmVtYnJlIDIwMTcsIDExOjIwOjMxIENFVCBUYW09RTFzIENzZXJ2ZW49RTFrIGEgPUU5Y3JpdCA6Cj4gW1ZPVEVdIFJlbGVhc2UgTWF2ZW4gSW5kZXhlciA2LjAuMAo+PTIwCj4gSGksCj49MjAKPiBXZSBzb2x2ZWQgMjUgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZWN0SWQ9M0QxMjMxNzU9CjIzJnZlCj4gcnNpb249M0QxMjMzMDgwMgo+PTIwCj4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3Byb2plY3RzL01JTkRFWEVSL2lzc3Vlcy9NSU5ERVhFUi04MT9maWx0ZT0Kcj0zRGEKPiBsbG9wZW5pc3N1ZXMKPj0yMAo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzc5Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc2VydmljZS9sb2NhbC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3OS9jb250ZT0KbnQvCj4gb3JnL2FwYWNoZS9tYXZlbi9pbmRleGVyL21hdmVuLWluZGV4ZXIvNi4wLjAvbWF2ZW4taW5kZXhlci02LjAuMC1zb3VyY2Utcj0KZWxlCj4gYXNlLnppcAo+PTIwCj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gbWF2ZW4taW5kZXhlci02LjAuMC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMToKPiAyNzk5MzlmOGRlZmYwZjU1MTgzNjRjMDZkYTg0N2IzMmFiNjEwOGVkCj49MjAKPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvbWF2ZW4taW5kZXhlci1hcmNoaXZlcy9tYXZlbi1pbmRleGVyLUxBVEVTVC8KPj0yMAo+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCj49MjAKPiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+PTIwCj4gWyBdICsxCj4gWyBdICswCj4gWyBdIC0xCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MTkxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBPY3QgIDggMTM6NTQ6MzAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTkxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDJDMTY4MTA0RkEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAgOCBPY3QgMjAxNyAxMzo1NDozMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDU0NTg5IGludm9rZWQgYnkgdWlkIDUwMCk7IDggT2N0IDIwMTcgMTM6NTQ6MjkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU0NTA0IGludm9rZWQgYnkgdWlkIDUwMCk7IDggT2N0IDIwMTcgMTM6NTQ6MjkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NDQ5MyBpbnZva2VkIGJ5IHVpZCA5OSk7IDggT2N0IDIwMTcgMTM6NTQ6MjkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDA4IE9jdCAyMDE3IDEzOjU0OjI5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQUZFMjcxQTQ0RTgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sICA4IE9jdCAyMDE3IDEzOjU0OjI4ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgajlGdWx4V0wwM0lyIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAgOCBPY3QgMjAxNyAxMzo1NDoyNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDMuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjVdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMThCNjA1RkQ2NwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgIDggT2N0IDIwMTcgMTM6NTQ6MjUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkNTggd2l0aCBNRQoJaWQgSzF1SjF3MDA2MjBVZmR5MDMxdUpQRDsgU3VuLCAwOCBPY3QgMjAxNyAxNTo1NDoxOCArMDIwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBTdW4sIDA4IE9jdCAyMDE3IDE1OjU0OjE4ICswMjAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IGRlcGVuZGVuY3k6Z28tb2ZmbGluZSBicm9rZW4/CkRhdGU6IFN1biwgMDggT2N0IDIwMTcgMTU6NTQ6MTggKzAyMDAKTWVzc2FnZS1JRDogPDE4ODc4MjYuVjRHV3ZtZzAzbkBnaWdhPgpVc2VyLUFnZW50OiBLTWFpbC81LjIuMyAoTGludXgvNC4xMC4wLTM1LWdlbmVyaWM7IEtERS81LjMxLjA7IHg4Nl82NDsgOyApCkluLVJlcGx5LVRvOiA8RDJGRjBGNjYtRjc4RC00MzI4LTlCMjktNTM0QjlFMUZDMjAzQGFwYWNoZS5vcmc+ClJlZmVyZW5jZXM6IDw0OTU5NTIyQS0yMDkwLTQyMzktODIzMy1FMzIwMDBERTlBNUJAYXBhY2hlLm9yZz4gPDM5ODA3NzMuTWVqR0FhQjFxb0BnaWdhPiA8RDJGRjBGNjYtRjc4RC00MzI4LTlCMjktNTM0QjlFMUZDMjAzQGFwYWNoZS5vcmc+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCkxlIGRpbWFuY2hlIDggb2N0b2JyZSAyMDE3LCAxNTozNzo1NCBDRVNUIEJlbmVkaWt0IFJpdHRlciBhID1DMz1BOWNyaXQgOgo+IEhlbGxvIEhlcnY9QzM9QTkKPj0yMAo+ID4gVGhlbiBJIGFkZGVkIGEgcGx1Z2luTWFuYWdlbWVudCBzZWN0aW9uIHRvIHNlbGVjdCB2ZXJzaW9uIDMuMC4yIGFuZCByZS09CnJhbgo+ID4gdGhlIHRlc3Q6IHlvdSdsbCBzZWUgdGhlIG91dHB1dCBpcyBjb21wbGV0ZWx5IGRpZmZlcmVudC4KPiA+PTIwCj4gPiBBbmQgdGhlcmUgaXMgbm8gaXNzdWUgYW55IG1vcmUKPj0yMAo+IFRoYW5rIHlvdSBzbyBtdWNoLCB5b3UgdG9vayB0aGUgdGltZSB0byBpbnZlc3RpZ2F0ZSB0aGlzIGlzc3VlISBSZWFsbHkgbXU9CmNoCj4gYXBwcmVjaWF0ZWQuIE5vdyBJIHdvbmRlciwgd2h5IE1hdmVuIHVzZXMgYW4gb3V0ZGF0ZWQgdmVyc2lvbiBvZiB0aGUKPiBkZXBlbmRlbmN5IHBsdWdpbi4gSXMgdGhpcyBhIHByb2JsZW0gd2l0aCB0aGUgc3VwZXIgcG9tPwp0aGlzIGlzIGEgY2hvaWNlIHRvIGtlZXAgc3RhYmlsaXR5OgppZiBvbmUgZG93bmxvYWRzIGRlcGVuZGVuY2llcyB1c2luZyBNYXZlbiAzLjAuNSB0aGVuIGEgZmV3IGRheXMgbGF0ZXIgYnVpbGQ9CnM9MjAKb2ZmbGluZSB3aXRoIE1hdmVuIDMuNSwgaGUgZG9lcyBub3QgaGF2ZSBhbnkgaXNzdWUgKGFuZCBibGFtZSBkZXBlbmRlbmN5LXBsPQp1Z2luKQoKcmVtZW1iZXIgdGhlIGdvb2QgcHJhY3RpY2U6IGRlZmluZSB5b3VyIHBsdWdpbiB2ZXJzaW9ucywgZWl0aGVyIGluIHlvdXIgcG9tPQogb3I9MjAKYnkgdXNpbmcgYSBwYXJlbnQgdGhhdCBkb2VzIHRoZSBqb2IKCj49MjAKPiBGdXJ0aGVybW9yZSBJPUUyPTgwPTk5dmUgbm90aWNlZCwgdGhhdCBtdm4gLW8gdGVzdCBzdGlsbCBkb2VzIG5vdCB3b3JrLCBiPQplY2F1c2Ugc29tZQo+IHN1cmVmaXJlIGRlcGVuZGVuY2llcyBhcmUgbWlzc2luZzoKPj0yMAo+IFtFUlJPUl0gRmFpbGVkIHRvIGV4ZWN1dGUgZ29hbAo+IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczptYXZlbi1zdXJlZmlyZS1wbHVnaW46Mi4xMi40OnRlc3QgKGRlZmF1bHQtdGVzdCkKPiBvbiBwcm9qZWN0IGRlcGVuZGVuY3ktcGx1Z2luLWJ1ZzogVW5hYmxlIHRvIGdlbmVyYXRlIGNsYXNzcGF0aDoKPiBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0LnJlc29sdmVyLk11bHRpcGxlQXJ0aWZhY3RzTm90Rm91bmRFeGNlcHRpb246Cj4gTWlzc2luZzogW0VSUk9SXSAtLS0tLS0tLS0tCj4gW0VSUk9SXSAxKSBvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlOnN1cmVmaXJlLWp1bml0MzpqYXI6Mi4xMi40Cj4gW0VSUk9SXQo+IFtFUlJPUl0gVHJ5IGRvd25sb2FkaW5nIHRoZSBmaWxlIG1hbnVhbGx5IGZyb20gdGhlIHByb2plY3Qgd2Vic2l0ZS4KPiBbRVJST1JdCj4gW0VSUk9SXSBUaGVuLCBpbnN0YWxsIGl0IHVzaW5nIHRoZSBjb21tYW5kOgo+IFtFUlJPUl0gbXZuIGluc3RhbGw6aW5zdGFsbC1maWxlIC1EZ3JvdXBJZD0zRG9yZy5hcGFjaGUubWF2ZW4uc3VyZWZpcmUKPiAtRGFydGlmYWN0SWQ9M0RzdXJlZmlyZS1qdW5pdDMgLUR2ZXJzaW9uPTNEMi4xMi40IC1EcGFja2FnaW5nPTNEamFyCj4gLURmaWxlPTNEL3BhdGgvdG8vZmlsZSBbRVJST1JdCj4gW0VSUk9SXSBBbHRlcm5hdGl2ZWx5LCBpZiB5b3UgaG9zdCB5b3VyIG93biByZXBvc2l0b3J5IHlvdSBjYW4gZGVwbG95IHRoZQo+IGZpbGUgdGhlcmU6IFtFUlJPUl0gbXZuIGRlcGxveTpkZXBsb3ktZmlsZQo+IC1EZ3JvdXBJZD0zRG9yZy5hcGFjaGUubWF2ZW4uc3VyZWZpcmUgLURhcnRpZmFjdElkPTNEc3VyZWZpcmUtanVuaXQzCj4gLUR2ZXJzaW9uPTNEMi4xMi40IC1EcGFja2FnaW5nPTNEamFyIC1EZmlsZT0zRC9wYXRoL3RvL2ZpbGUgLUR1cmw9M0RbdXJsXQo+IC1EcmVwb3NpdG9yeUlkPTNEW2lkXSBbRVJST1JdCj4gW0VSUk9SXSBQYXRoIHRvIGRlcGVuZGVuY3k6Cj4gW0VSUk9SXSAxKSBkdW1teTpkdW1teTpqYXI6MS4wCj4gW0VSUk9SXSAyKSBvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlOnN1cmVmaXJlLWp1bml0MzpqYXI6Mi4xMi40Cj4gW0VSUk9SXQo+IFtFUlJPUl0gLS0tLS0tLS0tLQo+IFtFUlJPUl0gMSByZXF1aXJlZCBhcnRpZmFjdCBpcyBtaXNzaW5nLgo+IFtFUlJPUl0KPiBbRVJST1JdIGZvciBhcnRpZmFjdDoKPiBbRVJST1JdIGR1bW15OmR1bW15OmphcjoxLjAKPiBbRVJST1JdCj4gW0VSUk9SXSBmcm9tIHRoZSBzcGVjaWZpZWQgcmVtb3RlIHJlcG9zaXRvcmllczoKPiBbRVJST1JdIGNlbnRyYWwgKGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMiwgcmVsZWFzZXM9M0R0cnVlLAo+IHNuYXBzaG90cz0zRGZhbHNlKSBbRVJST1JdIC0+IFtIZWxwIDFdCj4gW0VSUk9SXQo+IFtFUlJPUl0gVG8gc2VlIHRoZSBmdWxsIHN0YWNrIHRyYWNlIG9mIHRoZSBlcnJvcnMsIHJlLXJ1biBNYXZlbiB3aXRoIHRoZSA9Cj0yRGUKPiBzd2l0Y2guIFtFUlJPUl0gUmUtcnVuIE1hdmVuIHVzaW5nIHRoZSAtWCBzd2l0Y2ggdG8gZW5hYmxlIGZ1bGwgZGVidWcKPiBsb2dnaW5nLiBbRVJST1JdCj4gW0VSUk9SXSBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXJyb3JzIGFuZCBwb3NzaWJsZSBzb2x1dGlvbnMsIHBsZT0KYXNlCj4gcmVhZCB0aGUgZm9sbG93aW5nIGFydGljbGVzOiBbRVJST1JdIFtIZWxwIDFdCj4gaHR0cDovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL01vam9FeGVjdXRpb25FeGNlcHRpb24KPj0yMAo+IFNpbmNlIHRoZXJlIGFyZSBvbmx5IGEgZmV3IGRlcGVuZGVuY2llcyBtaXNzaW5nLCBJIHdpbGwgcnVuIHRlc3Qgbm90IGluCj4gb2ZmbGluZSBtb2R1cyBvbiBteSBDSSBzZXJ2ZXIuIEJ1dCBJIHdvbmRlciB3aGV0aGVyIHRoaXMgaXMgYSBidWcuCkknbGwgaGF2ZSBhIGxvb2sgYXQgdGhpcyBvbmUgYW5kIHJlcG9ydAoKUmVnYXJkcywKCkhlcnY9QzM9QTkKCj49MjAKPiBSZWdhcmRzLAo+IEJlbmVkaWt0Cj49MjAKPiA+IFJlZ2FyZHMsCj4gPj0yMAo+ID4gSGVydj1DMz1BOQo+ID49MjAKPiA+IExlIG1lcmNyZWRpIDIwIHNlcHRlbWJyZSAyMDE3LCAyMjo0ODoxNSBDRVNUIEJlbmVkaWt0IFJpdHRlciBhID1DMz1BOWNyPQppdCA6Cj4gPj4gSGksCj4gPj49MjAKPiA+PiBhcyBmYXIgYXMgSSB1bmRlcnN0YW5kIGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBjYWxsIG12bgo+ID4+IGRlcGVuZGVuY3k6Z28tb2ZmbGluZSBhbmQgZnJvbSB0aGVyZSBvbiB3b3JrIGluIG9mZmxpbmUgbW9kZSAobXZuIC1vKS4KPiA+PiBJPUUyPTgwPTk5dmUgcHV0IGEgbWluaW1hbCBleGFtcGxlIHRvZ2V0aGVyIFsxXSB0aGF0IGRlbW9uc3RyYXRlcyB0aGF0PQogdGhpcwo+ID4+IGN1cnJlbnRseSBkb2VzIG5vdCB3b3JrLiBBbSBJIG1pc3NpbmcgYW55dGhpbmc/Cj4gPj49MjAKPiA+PiBUaGFuayB5b3UhCj4gPj4gQmVuZWRpa3QKPiA+Pj0yMAo+ID4+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vYnJpdHRlci9kZXBlbmRlbmN5LXBsdWdpbi1idWcKPiA+Pj0yMAo+ID4+PTIwCj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj0yMAo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PTIwCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDc1Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgRGVjICA2IDIyOjM4OjMwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDc1Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBENTkwQjEwRTE5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgIDYgRGVjIDIwMTcgMjI6Mzg6MjkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxMjAxNCBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IERlYyAyMDE3IDIyOjM4OjI5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMTk0OSBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IERlYyAyMDE3IDIyOjM4OjI5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTE5MzYgaW52b2tlZCBieSB1aWQgOTkpOyA2IERlYyAyMDE3IDIyOjM4OjI5IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAwNiBEZWMgMjAxNyAyMjozODoyOSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDgwMEVFMUExMjdBCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAgNiBEZWMgMjAxNyAyMjozODoyOCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xLjgKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEuOCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBIZmQtQ09fX0t0UTAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsICA2IERlYyAyMDE3IDIyOjM4OjI3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwOS5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEzMV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBGMEU3MzVGMjU2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAgNiBEZWMgMjAxNyAyMjozODoyNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ0NCB3aXRoIE1FCglpZCBpbWVLMXcwMGYyMFVmZHkwM21lTHFhOyBXZWQsIDA2IERlYyAyMDE3IDIzOjM4OjIwICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFdlZCwgMDYgRGVjIDIwMTcgMjM6Mzg6MjAgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBHaXQgbWlncmF0aW9uIG5leHQgc3RlcHMKRGF0ZTogV2VkLCAwNiBEZWMgMjAxNyAyMzozODoxOSArMDEwMApNZXNzYWdlLUlEOiA8MTkwMDU1OC5HRng5UWxmYUUyQGdpZ2E+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKTm93IHRoYXQgd2UgaGF2ZSAyIEFTRiBPcmdhbml6YXRpb24gSmVua2lucyBqb2JzIChvbmUgZm9yIGdpdGJveCBbMV0gYW5kIG9uPQplPTIwCmZvciBnaXQtd2lwOiB0aGFuayB5b3UgU3RlcGhlbikgYW5kIHRoYXQgaXQgbG9va3MgcXVpdGUgc3VjY2Vzc2Z1bCwgbGV0J3MgcD0KbGFuPTIwCnRoZSBuZXh0IHN0ZXBzLgoKSGVyZSBpcyB3aGF0IEkgc2VlOgoxLiByZW1vdmFsIG9mIGhhbmQtZGVmaW5lZCBKZW5raW5zIGpvYnMgdGhhdCBhcmUgbm93IGR1cGxpY2F0ZXMKCjIuIHByZXBhcmF0aW9uIG9mIHRoZSA2MCBuZXcgZW1wdHkgZ2l0IHJlcG9zIGZvciBzaGFyZWQgJiBwbHVnaW5zCgozLiBtaWdyYXRpb24gb2YgdGhlIDEgc2hhcmVkIGNvbXBvbmVudCBhbmQgMSBwbHVnaW4gdXNpbmcgbWlncmF0ZS0qLnNoIHNjcmk9CnB0cz0yMApbM10gdG8gdGVzdCBhbmQgZXZlbnR1YWxseSByZXdvcmsgdGhlIEplbmtpbnNmaWxlIChJIHN1cHBvc2UgaXQgd2lsbCByZXF1aXI9CmU9MjAKc29tZSBsaXR0bGUgY2hhbmdlLCB0byBydW4gYWRkICJydW4taXRzIiBwcm9maWxlKQo9NDZvciB0aGUgcGx1Z2luLCBJJ2QgbGlrZSB0byBkbyB0aGUgam9iIGZvciBtYXZlbi1zaXRlLXBsdWdpbiwgc2luY2Ugd2UgZXg9CnBlY3Q9MjAKdG8gcmVsZWFzZSBpdCBzb29uLgo9NDZvciB0aGUgc2hhcmVkIGNvbXBvbmVudCwgSSBkb24ndCBrbm93IGlmIHRoZXJlIGlzIGEgYmVzdCBjYW5kaWRhdGUKCjQuIG9uY2UgcHJldmlvdXMgc3RlcCBpcyBvaywgZG8gdGhlIGZ1bGwgbWlncmF0aW9uOiBpZiB0aGVyZSBhcmUgdm9sdW50ZWVycz0KPTIwCmZvciBoZWxwaW5nLCB0aGF0IHdvdWxkIGJlIGdyZWF0LCBzaW5jZSBwb3B1bGF0aW5nIDYwIGdpdCByZXBvcyB3b24ndCBiZT0yMApyZWFsbHkgZnVuLi4uCgpBbmQgYXMgcGFydCBvZiA2MCBlbXB0eSBnaXQgcmVwb3MgY3JlYXRpb24sIEkgcHJvcG9zZSB0byBtaWdyYXRlIHRoZSAiR29vZ2w9CmU9MjAKcmVwbyBtYW5pZmVzdCIgbWF2ZW4tYWdncmVnYXRvciBbNF0gdG8gQVNGOiBteSBwZXJzb25hbCB1c2UgaGFzIGJlZW4gcXVpdGU9Cj0yMApzdWNjZXNzZnVsLCBJIGhvcGUgaXQncyB0aGUgc2FtZSBmb3Igb3RoZXJzLiBQZXJoYXBzIHRoZXJlIGFyZSBiZXR0ZXIgaWRlYXM9Cj0yMApmb3IgaXRzIG5hbWU6IG1hdmVuLWFnZ3JlZ2F0b3IKCkFueSBvdGhlciBpZGVhPyBhbnkgb2JqZWN0aW9uPwoKUmVnYXJkcywKCkhlcnY9RTkKClsxXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC8KClsyXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLXdpcC8KClszXSBodHRwczovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy9tYXZlbi9zYW5kYm94L3RydW5rL3NjcmlwdHMvZ2l0LwoKWzRdIGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1hZ2dyZWdhdG9yCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1MzAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAxOCAxNjo0NDoyOCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1MzAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOTdDNjAxNzUwQQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDE4IE5vdiAyMDE3IDE2OjQ0OjI4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTkxODkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggTm92IDIwMTcgMTY6NDQ6MjggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE5MTIyIGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IE5vdiAyMDE3IDE2OjQ0OjI4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTkxMTEgaW52b2tlZCBieSB1aWQgOTkpOyAxOCBOb3YgMjAxNyAxNjo0NDoyNyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMTggTm92IDIwMTcgMTY6NDQ6MjcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAzQTU1OTFBMDlFMQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTggTm92IDIwMTcgMTY6NDQ6MjcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMS4wNQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMS4wNSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0lORk9VU01FQklaPTAuNzUsIEtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgajFzUDk2X01jcDVSIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAxOCBOb3YgMjAxNyAxNjo0NDoyNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMTAuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMzJdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgOTc0QkM1RjJDMwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTggTm92IDIwMTcgMTY6NDQ6MjQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkNDUgd2l0aCBNRQoJaWQgYlVrUDF3MDA4MjBVZmR5MDNVa1BscTsgU2F0LCAxOCBOb3YgMjAxNyAxNzo0NDoyMyArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBTYXQsIDE4IE5vdiAyMDE3IDE3OjQ0OjIzICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBKYXZhZG9jIFBsdWdpbiB2ZXJzaW9uIDMuMC4wICh0YWtlIDIpCkRhdGU6IFNhdCwgMTggTm92IDIwMTcgMTc6NDQ6MjMgKzAxMDAKTWVzc2FnZS1JRDogPDE5MTMxNjQuY3BXaXNOS1E0UUBnaWdhPgpJbi1SZXBseS1UbzogPDE4MDYwMjUuQnNtRjk2M1JxbkBnaWdhPgpSZWZlcmVuY2VzOiA8b3AueTl3bTN3MHFrZGtocnJAZGVza3RvcC0ya2hzazQ0PiA8MjAxNzExMTgxNjE4MDYuNWNjMTJlYTRAY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvPiA8MTgwNjAyNS5Cc21GOTYzUnFuQGdpZ2E+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKSkRLIGphdmFkb2Mgc2VlbXMgdG8gY292ZXIgdGhlICJhZ2dyZWdhdGVkIGphdmFkb2NzIiBzY2VuYXJpbzogaW4gSmF2YSA5PTIwCnRlcm1zLCB0aGF0J3MgIm11bHRpLW1vZHVsZXMiID0zRCBleGFjdGx5IHRoZSBjYXNlIGZvciBKREsgOSBqYXZhZG9jIFsxXQpJIGRvbid0IGtub3cgd2hhdCdzIHRoZSBjb21tYW5kIGxpbmUgdG8gcHJvZHVjZSB0aGlzLCBidXQgbG9va3MgZmVhc2libGUgZnI9Cm9tPTIwCmphdmFkb2Mgc2lkZQoKUmVnYXJkcywKCkhlcnY9RTkKClsxXSBodHRwczovL2RvY3Mub3JhY2xlLmNvbS9qYXZhc2UvOS9kb2NzL2FwaS9vdmVydmlldy1zdW1tYXJ5Lmh0bWwKCkxlIHNhbWVkaSAxOCBub3ZlbWJyZSAyMDE3LCAxNzozODoyMyBDRVQgSGVydj1FOSBCT1VURU1ZIGEgPUU5Y3JpdCA6Cj4gTGUgc2FtZWRpIDE4IG5vdmVtYnJlIDIwMTcsIDE3OjE4OjA2IENFVCBNYXJrIFJheW5zZm9yZCBhID1FOWNyaXQgOgo+ID4gT24gMjAxNy0xMS0xOFQxNjoxNDowNCArMDAwMAo+ID49MjAKPiA+IE1hcmsgUmF5bnNmb3JkIDxvcmcuYXBhY2hlLm1hdmVuLnVzZXJAaW83bS5jb20+IHdyb3RlOgo+ID4gPiBQcmVzdW1hYmx5LCB3aXRoIHRoZSBtb2R1bGUtaW5mby5qYXZhIGZpbGVzCj4gPiA+IGV4Y2x1ZGVkLCBpdCByZXZlcnRzIGJhY2sgdG8gcGxhaW4gY2xhc3NwYXRoIHN0eWxlIEphdmFEb2MuCj4gPj0yMAo+ID4gQWN0dWFsbHksIGl0IHJlc3VsdHMgaW4gc29ydCBvZiB3ZWlyZCBsb29raW5nIEphdmFEb2MgdGhhdCBvbmx5Cj4gPiBjb250YWlucyBhIHNpbmdsZSBtb2R1bGUsIGFuZCBjbGFpbXMgdGhhdCBhbGwgcGFja2FnZXMgYXJlIGluCj4gPj0yMAo+ID4gdGhhdCBtb2R1bGU6Cj4gPiAgIGh0dHA6Ly9vdXRsYW5kLml3LmludC5hcmM3LmluZm8vMjAxNy8xMS8xOC9hcGlkb2NzL2luZGV4Lmh0bWwKPiA+PTIwCj4gPiBUaGF0IGJlaGF2aW91ciBzZWVtcyBsaWtlIGl0IG1pZ2h0IGJlIGEgYnVnIGluIHRoZSBhY3R1YWwgSmF2YURvYyB0b29sCj4gPiBpdHNlbGYuCj49MjAKPiBJSVVDLCBqYXZhZG9jIGRvZXMgbm90IGNvdmVyIGFnZ3JlZ2F0ZWQgamF2YWRvY3Mgc2NlbmFyaW8/Cj49MjAKPiBJIHdvdWxkIG5vdCBjYWxsIHRoYXQgYSBidWcsIGJ1dCBhIG1pc3NpbmcgZmVhdHVyZSA6KQo+PTIwCj4gUmVnYXJkcywKPj0yMAo+IEhlcnY9RTkKPj0yMAo+PTIwCj49MjAKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0MjAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE5vdiAgNSAwNjowNTowNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0MjAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMjI4RUUxNzVEMQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sICA1IE5vdiAyMDE3IDA2OjA1OjA0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODI0MzMgaW52b2tlZCBieSB1aWQgNTAwKTsgNSBOb3YgMjAxNyAwNjowNTowMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODIxNjYgaW52b2tlZCBieSB1aWQgNTAwKTsgNSBOb3YgMjAxNyAwNjowNTowMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgyMTU1IGludm9rZWQgYnkgdWlkIDk5KTsgNSBOb3YgMjAxNyAwNjowNTowMyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMDUgTm92IDIwMTcgMDY6MDU6MDMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA2Mjk5ODE4MDgwNwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgIDUgTm92IDIwMTcgMDY6MDU6MDIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC44ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjVdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDdEdi1ZYjQxV1FvZiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgIDUgTm92IDIwMTcgMDY6MDU6MDAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDA1LnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI3XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDU1NEE1NUZERDQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sICA1IE5vdiAyMDE3IDA2OjA1OjAwICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDUyIHdpdGggTUUKCWlkIFc2NHUxdzAwOTIwVWZkeTAzNjR1N3U7IFN1biwgMDUgTm92IDIwMTcgMDc6MDQ6NTQgKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogU3VuLCAwNSBOb3YgMjAxNyAwNzowNDo1NCArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBNYXZlbiA0LjAuMApEYXRlOiBTdW4sIDA1IE5vdiAyMDE3IDA3OjA0OjU0ICswMTAwCk1lc3NhZ2UtSUQ6IDwxOTE3MjAwLnUwUkxlekYwRzNAZ2lnYT4KSW4tUmVwbHktVG86IDxvcC55ODY3bGx5YWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KUmVmZXJlbmNlczogPENBK25Qbk13RUg5WjJteXA3MXVhU3JkY3lMSlJGckUtVnJ0MjAxOTFyZDAxaCtVZmhqd0BtYWlsLmdtYWlsLmNvbT4gPENBQ0xFPTdNWUg1VHl3RVpDRFpoUFE9MkhidWFuMVpMeDl6clF1eHg4UFEtVlEyR3pYZ0BtYWlsLmdtYWlsLmNvbT4gPG9wLnk4NjdsbHlha2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCkxlIHNhbWVkaSA0IG5vdmVtYnJlIDIwMTcsIDIyOjM1OjM1IENFVCBSb2JlcnQgU2Nob2x0ZSBhID1FOWNyaXQgOgo+IE9uIFNhdCwgMDQgTm92IDIwMTcgMTg6MzQ6MTQgKzAxMDAsIFJvbWFpbiBNYW5uaS1CdWNhdQo+PTIwCj4gPHJtYW5uaWJ1Y2F1QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiAyMDE3LTExLTA0IDE4OjE3IEdNVCswMTowMCBTdGVwaGVuIENvbm5vbGx5Cj4gPj0yMAo+ID4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+Ogo+ID4+IE9uIFNhdCA0IE5vdiAyMDE3IGF0IDE3OjExLCBSb21haW4gTWFubmktQnVjYXUgPHJtYW5uaWJ1Y2F1QGdtYWlsLmNvbT4KPiA+Pj0yMAo+ID4+IHdyb3RlOgo+ID4+PiBNeSB3aXNobGlzdCBhcyBhIHVzZXIgd291bGQgYmU6Cj4gPj4+PTIwCj4gPj4+IC0gaW5jcmVtZW50YWwgYnVpbGQgKGJhc2VkIG9uIHNjbSBpcyBmaW5lKQo+ID4+PiAtIHNvbWUgYnVpbHQgaW4gc2NyaXB0aW5nIChncm9vdnkgYmFzZWQ/KQo+ID4+PTIwCj4gPj4gSSBoYXZlIGEgd29ycnkgZm9yIGdyb292eSB3aXRoIEphdmEgOSsKPiA+PTIwCj4gPiBVbmRlcnN0YW5kLCBoZXJlIGlzIHRoZSBsb25nIHZlcnNpb24gb2YgdGhhdCB3aXNoOgo+ID49MjAKPiA+IDEuIGphdmEgLT4gZ3Jvb3Z5IGlzIHZlcnkgZG9hYmxlIChjb21wYXJlZCB0byBvdGhlciBsYW5ndWFnZSkgc28gaXQgaXMKPiA+IHRoZSBuYXR1cmFsIGxhbmd1YWdlIGZvciBtYXZlbiBJTUhPCj4gPiAyLiBncm9vdnkgd2lsbCBoYXZlIHRvIHN1cHBvcnQgSmF2YSA5IC0gdG8gYmUgaG9uZXN0IEkgd29ycnkgYXMgbXVjaAo+ID4gZm9yIGEgcGxhaW4gamF2YSBsaWIgdGhhbiBmb3IgZ3Jvb3Z5IHNvIGd1ZXNzIGl0IGlzIDEtMQo+ID4gMy4gSSdtIGhhcHB5IHRvIGhhdmUgYSBqYXZhIHNjcmlwdGluZyBhbHRlcm5hdGl2ZSAoc3JjL2J1aWxkL2phdmEpCj4gPiB3aGljaCBpcyBub3QgYXZhaWxhYmxlIG91dHNpZGUgdGhlIHNjb3BlIG9mIGEgcGx1Z2luICg9M0Qgbm8gaW5oZXJpdGVkCj4gPiBpbiBjb21waWxlIG9yIHRlc3Qgc2NvcGVzKQo+ID49MjAKPiA+PiBBbmQgc2NyaXB0aW5nIGlzIHRoZSBwYXRoIHRvIHRoZSBkYXJrIHNpZGUgb2YgaW1wZXJhdGl2ZSBidWlsZHMuLi4gYnV0Cj4gPj4gcHJvcG9zYWxzIHdlbGNvbWUKPiA+PTIwCj4gPiBUaGlzIGlzIHRydWUgYnV0IHRoaXMgaXMgYWxzbyBtYW5kYXRvcnkgdG9kYXkuIFRoZXJlIGlzIGEgc21hbGwKPiA+IGFsdGVybmF0aXZlIHRvIHRoYXQgYW5kIEkgd291bGQgYmUgYXMgaGFwcHkgaWYgbWF2ZW4gY2FuIGRvIGl0Ogo+ID4gc3VwcG9ydCBtb2pvIGZyb20gdGhlIHJlYWN0b3IgKGllIGhhdmluZyBhIHByb2plY3Qgd2l0aCB0aGlzIGxheW91dDoKPiA+IHBhcmVudC9bbW9kdWxlMSwgbXktbWF2ZW4tcGx1Z2luXSkuIElmIHRoaXMgd29ya3MgdGhlbiBubyBuZWVkIG9mCj4gPiBzY3JpcHRpbmcKPiA+IGJ1dCB0b2RheSB5b3UgbXVzdCByZWxlYXNlIHRoZSBtb2pvIGJlZm9yZSB1c2luZyBpdCBpbiB5b3VyIGJ1aWxkCj4gPiB3aGljaCBpbXBvc2VzIHRvIHVzZSBzY3JpcHRpbmcuCj49MjAKPiBzb3VuZHMgbGlrZSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MTE4Cj4gcmlnaHQ/CgpubzogTU5HLTYxMTggaXMgYWJvdXQgcmVzdHJpY3Rpb25zIHdoZXJlIGEgcGx1Z2luIG1vam8gcnVucwoKaGVyZSwgaXQncyBhYm91dCB1c2luZyBhIHBsdWdpbiAqZnJvbSB0aGUgcmVhY3Rvcio6IHN1cmUsIHRoZXJlIGlzIGE9MjAKcmVzdHJpY3Rpb24gYmVjYXVzZSB0aGUgcGx1Z2luIG1vZHVsZSBoYXMgdG8gYmUgYnVpbHQgZmlyc3QsIHRvIGJlIGF2YWlsYWJsPQplPTIwCmZvciBvdGhlciBtb2R1bGVzIGNvbnN1bXB0aW9uLCBidXQgaXQncyBqdXN0IGEgY29uc2VxdWVuY2Ugb2YgdGhlIG5lZWQsIG5vdD0KPTIwCnJlYWxseSBhIGdvYWwgcGVyIHNlICh1bmxpa2UgTU5HLTYxMTgpCgpSZWdhcmRzLAoKSGVydj1FOQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODc4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBEZWMgMzAgMDk6NTE6MTMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODc4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEMzM0FBMTdDRDUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAzMCBEZWMgMjAxNyAwOTo1MToxMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQwMDk1IGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIERlYyAyMDE3IDA5OjUxOjEyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0MDAzMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMCBEZWMgMjAxNyAwOTo1MToxMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM5OTY5IGludm9rZWQgYnkgdWlkIDk5KTsgMzAgRGVjIDIwMTcgMDk6NTE6MTIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDMwIERlYyAyMDE3IDA5OjUxOjEyICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRjE5QzgxQTA1NkQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDMwIERlYyAyMDE3IDA5OjUxOjExICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS43OTkKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjc5OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB3M2pITVE3azFlRVggZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsIDMwIERlYyAyMDE3IDA5OjUxOjA4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwMS5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyM10pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAzMzU5QzVGMzk4Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAzMCBEZWMgMjAxNyAwOTo1MTowOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQzNiB3aXRoIE1FCglpZCBzOXI2MXcwMEUyMFVmZHkwMzlyNm1MOyBTYXQsIDMwIERlYyAyMDE3IDEwOjUxOjA3ICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFNhdCwgMzAgRGVjIDIwMTcgMTA6NTE6MDcgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW0lNUE9SVEFOVF0gUmU6IEdpdCBtaWdyYXRpb24gbmV4dCBzdGVwcwpEYXRlOiBTYXQsIDMwIERlYyAyMDE3IDEwOjUxOjA2ICswMTAwCk1lc3NhZ2UtSUQ6IDwxOTE3NjcxMS5Pczd4eEtiODNmQGdpZ2E+CkluLVJlcGx5LVRvOiA8MjU2NTg1NC5aZU00UERUWDRjQGdpZ2E+ClJlZmVyZW5jZXM6IDwyMDA5NzY1NTkyLjIyOTcyMjE3LjE1MTQxMDkyNTY2MzIuSmF2YU1haWwucm9vdEBzcG9vbGVyNC1nMjc+IDxvcC56YnEyaWkxbWtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4gPDI1NjU4NTQuWmVNNFBEVFg0Y0BnaWdhPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCm1lcmdlIGRvbmU6IGNhbiB5b3UgY2hlY2sgaXQncyBhcyB5b3UgZXhwZWN0ZWQ/Cgpub3RpY2UgdGhhdCBpZiB5b3UgaGF2ZSBmYWlsaW5nIElUIG9uIE1KQVZBRE9DLTUwOCBsaWtlIEkgaGF2ZSBsb2NhbGx5LCBpdCc9CnM9MjAKbm90IHRoZSBtZXJnZSBidXQgaXQgd2FzIGFscmVhZHkgcHJlc2VudCBiZWZvcmUKCkBPbGl2aWVyOiBJIGRvbid0IGtub3cgaW4gd2hpY2ggY29uZGl0aW9ucyB5b3UgdGVzdGVkIE1KQVZBRE9DLTUwOCwgYnV0IGl0ID0KaXM9MjAKZmFpbGluZyBmb3IgbWU6IExpbnV4K0phdmEgNwoKUmVnYXJkcywKCkhlcnY9RTkKCkxlIGpldWRpIDI4IGQ9RTljZW1icmUgMjAxNywgMDk6NDg6MzEgQ0VUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOgo+IG9uIG1hdmVuLWphdmFkb2MtcGx1Z2luOiB3aGF0IGFib3V0IG1lcmdpbmcgbWFzdGVyMiBicmFuY2ggaW50byBtYXN0ZXIsIGw9CmlrZQo+IGlmIGl0IHdhcyBhIFBSPwo+IEluIGdlbmVyYWwsIEkgZG9uJ3QgbGlrZSB0aGlzIHdheSBvZiBkb2luZyBQUiBtZXJnZXMgKEkgcHJlZmVyIHJlYmFzaW5nIG9yCj4gY2hlcnJ5IHBpY2tpbmcsIHRvIGF2b2lkIHRoZSBtZXJnZSBjb21taXQgYW5kIHRoZSBwYXJhbGxlbCBicmFuY2hlcyBzdGF5aT0KbmcKPiBmb3IgZXZlciBpbiB0aGUgcmVwbyksIGJ1dCBzaW5jZSB0aGlzIHdheSBvZiBtZXJnaW5nIFBScyBpcyBvZnRlbiB1c2VkIGJ5Cj4gdGhlIHRlYW0sIGxldCdzIHVzZSB0aGlzIHRlY2huaXF1ZSBvbiB0aGUgY3VycmVudCBjYXNlIHdoZXJlIGl0IG1ha2VzIG91cgo+IGxpZmUgZWFzaWVyCj49MjAKPiBSZWdhcmRzLAo+PTIwCj4gSGVydj1FOQo+PTIwCj4gTGUgZGltYW5jaGUgMjQgZD1FOWNlbWJyZSAyMDE3LCAxMzowNDo1NiBDRVQgUm9iZXJ0IFNjaG9sdGUgYSA9RTljcml0IDoKPiA+IEkgZGlkIHRoZSBhc3N1bXB0aW9uIHRoYXQgeW91IGNhbiBpc29sYXRlIGFsbCBtYXZlbi1qYXZhZG9jLXBsdWdpbgo+ID4gY29tbWl0cy4KPiA+IElmIGl0IGlzIGZvciBhbGwgbWF2ZW4tcGx1Z2lucyBvciBub3RoaW5nLCB0aGVuIGl0IGlzIGEgZGlmZmVyZW50IHN0b3J5Lgo+ID49MjAKPiA+IE9uIFN1biwgMjQgRGVjIDIwMTcgMTA6NTQ6MTYgKzAxMDAsIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdyb3RlOgo+ID4gPiBJJ2Qgc3VnZ2VzdCB0byB0cnkgdGhlIHByb2Nlc3MgdG8gYSBwZXJzb25hbCBwZXJzb25hbCByZXBvIG9uIEdpdEh1YiA9CnRvCj4gPiA+IHNlZSBpZiB5b3UncmUgYWJsZSB0byBnZXQgYSBiZXR0ZXIgcmVzdWx0IGJlZm9yZSBpbnZvbHZpbmcgbWFudWFsIHdvcmsKPiA+ID4gZnJvbSBJTkZSQSAob24gbW9yZSB0aGFuIDYwIHJlcG9zLi4uKQo+ID4gPj0yMAo+ID4gPiAoaXQncyBzYWQgdG8gc2VlIG5vYm9keSB0cnkgdG8gZXhwbGFpbiB3aGF0J3MgaGFwcGVubmluZyBvciBpbXByb3ZlIHQ9CmhlCj4gPiA+IGRvY3VtZW50ZWQgY29tbWFuZHMsIGp1c3QgZ2V0IHRvIGEgY29uY2x1c2lvbjogcmUtZG8gZXZlcnl0aGluZyBhbmQKPiA+ID4gcHJheSkKPiA+ID49MjAKPiA+ID4gUmVnYXJkcywKPiA+ID49MjAKPiA+ID4gSGVydj1FOQo+ID4gPj0yMAo+ID4gPiAtLS0tLSBNYWlsIG9yaWdpbmFsIC0tLS0tCj4gPiA+IERlOiAiS2FybCBIZWlueiBNYXJiYWlzZSIgPGtobWFyYmFpc2VAZ214LmRlPgo+ID4gPiA9QzA6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sICJSb2JlcnQgU2Nob2x0ZSIKPiA+ID4gPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgo+ID4gPiBFbnZveT1FOTogRGltYW5jaGUgMjQgRD1FOWNlbWJyZSAyMDE3IDEwOjQ3OjQzCj4gPiA+IE9iamV0OiBSZTogW0lNUE9SVEFOVF0gUmU6IEdpdCBtaWdyYXRpb24gbmV4dCBzdGVwcwo+ID4gPj0yMAo+ID4gPiBIaSwKPiA+ID49MjAKPiA+ID4gT24gMjQvMTIvMTcgMTA6NDAsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+ID4gPj4gSG93IGFib3V0IGEgaGFyZCByZXNldCBvciBkcm9wcGluZyB0aGUgcmVwbyBhbmQgZG9pbmcgaXQgYWxsIG92ZXIKPiA+ID4+IGFnYWluPwo+ID4gPj0yMAo+ID4gPiBJZiBJIGNvcnJlY3RseSBzZWVuIHRoYXQgLi50aGVyZSBoYWQgbm8gY29tbWl0IHlldCBvbiB0aGUgbmV3IGdpdAo+ID4gPiByZXBvcy4uCj4gPiA+PTIwCj4gPiA+IFNvIEkgdGhpbmsgaXQgd291bGQgYmUgdGhlIGVhc2llc3Qgd2F5IHRvIGRvIGFzIFJvYmVydCBzdWdnZXN0IC4uLnRvCj4gPiA+IHJlZG8gbWlncmF0aW9uIGZvciB0aG9zZSByZXBvcy4uCj4gPiA+PTIwCj4gPiA+IEtpbmQgcmVnYXJkcwo+ID4gPiBLYXJsIEhlaW56Cj4gPiA+PTIwCj4gPiA+PiBPbiBXZWQsIDIwIERlYyAyMDE3IDEwOjQyOjM2ICswMTAwLCBIZXJ2PUU5IEJPVVRFTVkKPiA+ID4+PTIwCj4gPiA+PiA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cm90ZToKPiA+ID4+PiBJTkZSQS0xNTY3OSBmaXhlZCBieSBpbmZyYSB0ZWFtCj4gPiA+Pj4gdGhlbiBJIHJlLXJ1biBtaWdyYXRlLXBsdWdpbnMuc2ggc2NyaXB0IHRvIHNwbGl0IHRoZSBzdm4yZ2l0IG1pcnJvcj0KIHRvCj4gPiA+Pj4gcGVyLQo+ID4gPj4+IHBsdWdpbiBnaXQgcmVwbwo+ID4gPj4+IGFuZCBJIHB1c2hlZCAibWFzdGVyMiIgYnJhbmNoZXMgZm9yIG0tamF2YWRvYy1wLCBtLXNpdGUtcCBhbmQgbS1wZGY9Cj0yRHAsCj4gPiA+Pj4gd2hpY2gKPiA+ID4+PiB3ZXJlIHRoZSAzIHBsdWdpbnMgd2hpY2ggc3VmZmVyZWQgZnJvbSBtaXNzaW5nIGNvbW1pdHMKPiA+ID4+Pj0yMAo+ID4gPj4+IG9uIG0tc2l0ZS1wIGFuZCBtLXBkZi1wLCBJJ2xsIGNoZXJyeSBwaWNrIHRoZSB1bmlxdWUgY29tbWl0IHRoYXQgd2FzCj4gPiA+Pj4gbWlzc2VkOgo+ID4gPj4+IG5vdCBhIGJpZyBkZWFsCj4gPiA+Pj49MjAKPiA+ID4+PiBvbiBtLWphdmFkb2MtcCwgdGhlIHNpdHVhdGlvbiBpcyBtb3JlIGNvcGxleCwgc2luY2UgdGhlcmUgd2FzIGEKPiA+ID4+PiByZWxlYXNlCj4gPiA+Pj49MjAKPiA+ID4+PiBJIGFsc28gbm90aWNlZCB0aGF0IEkgZm9yZ290IHRvIHB1c2ggdGFncyB3aGVuIGltcG9ydGluZzogSSBzdGFydGVkPQogdG8KPiA+ID4+PiBkbyAiZ2l0Cj4gPiA+Pj4gcHVzaCAtLXRhZ3MiLCBidXQgdGhlIHJlc3VsdCBkb2VzIG5vdCBsb29rIGFzIEkgZXhwZWN0ZWQ6IGl0IGNyZWF0ZT0KcyBhCj4gPiA+Pj4gbG90IG9mCj4gPiA+Pj4gcGFyYWxsZWwgYnJhbmNoZXMKPiA+ID4+Pj0yMAo+ID4gPj4+IEknbGwgbmVlZCBoZWxwIGZyb20gZ2l0IGV4cGVydHM6IHdoYXQgaXMgaGFwcGVuaW5nPwo+ID4gPj4+PTIwCj4gPiA+Pj4gSSBzdG9wcGVkIHRoZSB0YWdzIHB1c2ggaGFsZiB0aGUgd2F5LCB3ZSdsbCBuZWVkIHRvIGRlY2lkZSB3aGF0IHRvCj4gPiA+Pj4gZG8uLi4KPiA+ID4+PiAoSSBrbmV3IEkgd2FzIG5vdCBhIGdpdCBleHBlcnQgYW5kIHRoZXJlIHdhcyBhIHJpc2sgZm9yIHNvbWV0aGluZwo+ID4gPj4+IHdlaXJkIGxpa2UKPiA+ID4+PiB3aGF0J3MgY3VycmVudGx5IGhhcHBlbmluZy4uLikKPiA+ID4+Pj0yMAo+ID4gPj4+IEFueSBoaW50Pwo+ID4gPj4+PTIwCj4gPiA+Pj4gUmVnYXJkcywKPiA+ID4+Pj0yMAo+ID4gPj4+IEhlcnY9RTkKPiA+ID4+Pj0yMAo+ID4gPj4+IExlIHNhbWVkaSAxNiBkPUU5Y2VtYnJlIDIwMTcsIDE2OjI4OjQ4IENFVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcmk9CnQgOgo+ID4gPj4+PiBvaywgSSB3YXMgY29uZnVzZWQgYnkgdGhlIGRpZmZlcmVudCB0YWtlcyBhdCBtLWphdmFkb2MtcCAzLjAuMAo+ID4gPj4+Pj0yMAo+ID4gPj4+PiB5ZXMsIHN2bjJnaXQgbWlycm9yIGlzIHN0dWNrIFsxXSBhdCByMTgxNTY3NQo+ID4gPj4+Pj0yMAo+ID4gPj4+PiBJIGp1c3Qgb3BlbmVkIGFuIElORlJBIEppcmEgaXNzdWUKPiA+ID4+Pj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9JTkZSQS0xNTY3OQo+ID4gPj4+Pj0yMAo+ID4gPj4+PiBvbmNlIHRoZSBzdm4yZ2l0IG1pcnJvciB3aWxsIGJlIHVwZGF0ZWQsIHdlJ2xsIGhhdmUgdG8gcmUtcnVuIHRoZQo+ID4gPj4+PiBzcGxpdAo+ID4gPj4+PiBzY3JpcHRzIGFuZCBjaGVycnkgcGljayB0aGUgbWlzc2luZyBjb21taXRzCj4gPiA+Pj4+PTIwCj4gPiA+Pj4+IFJlZ2FyZHMsCj4gPiA+Pj4+PTIwCj4gPiA+Pj4+IEhlcnY9RTkKPiA+ID4+Pj49MjAKPiA+ID4+Pj4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9jb21taXRzL3RydW5rCj4gPiA+Pj4+PTIwCj4gPiA+Pj4+IExlIHNhbWVkaSAxNiBkPUU5Y2VtYnJlIDIwMTcsIDEzOjAxOjA1IENFVCBSb2JlcnQgU2Nob2x0ZSBhID1FOWNyaT0KdCA6Cj4gPiA+Pj4+ID4gSSB3YXMgdHJpZ2dlcmVkIGJ5IHNvbWUgZmFpbGluZyB1bml0IHRlc3RzLCB3aGljaCBzaG91bGQgaGF2ZSBiZT0KZW4KPiA+ID4+Pj49MjAKPiA+ID4+Pj4gc29sdmVkCj4gPiA+Pj4+PTIwCj4gPiA+Pj4+ID4gaW4gbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAKPiA+ID4+Pj4gPj0yMAo+ID4gPj4+PiA+IE15IGxhc3QgY29tbWl0IGFjY29yZGluZyB0byBHSVQgd2FzIG5vdmVtYmVyIDE4dGgKPiA+ID4+Pj4gPiBNeSBsYXN0IGNvbW1pdCBhY2NvcmRpbmcgdG8gU1ZOIHdhcyBkZWNlbWJlciAzcmQKPiA+ID4+Pj4gPj0yMAo+ID4gPj4+PiA+IGNvbXBhcmluZyBzdm5sb2cgd2l0aCBnaXRsb2cgbW9zdCBvZiB0aGVzZSBjb21taXRzIGFyZSBsb3N0Ogo+ID4gPj4+PiA+PTIwCj4gPiA+Pj4+ID4gbW92ZWQgdG8gZ2l0Cj4gPiA+Pj4+ID4gLS0tLQo+ID4gPj4+PiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSBmb3IgbmV4dCBkZXZlbG9wbWVudCBpdGVyYXRpb24KPiA+ID4+Pj4gPiAtLS0tCj4gPiA+Pj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIHJlbGVhc2UgbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAKPiA+ID4+Pj4gPiAtLS0tCj4gPiA+Pj4+ID4gW01KQVZBRE9DLTQ5OF0gIm1vZHVsZSBub3QgZm91bmQiIHdoZW4gSmF2YSA5IG1vZHVsZS1pbmZvIHByZXNlbnQKPiA+ID4+Pj4gPiBTdXBwb3J0IGFnZ3JhdGVkIGphdmFkb2MKPiA+ID4+Pj4gPiAtLS0tCj4gPiA+Pj4+ID4gU2tpcCBzZXZlcmFsIHVuaXR0ZXN0cyBmb3IgSmF2YTkKPiA+ID4+Pj4gPiAtLS0tCj4gPiA+Pj4+ID4gSkRLLTgwMzIyMDUgd2FzIGNsb3NlZCBhcyBub3QgYW4gaXNzdWUsIHNvIG5vdCBzb2x2ZWQgaW4gSmF2YTkuCj4gPiA+Pj4+ID4gTmVlZCB0byByZXZpZXcgdGhlIGNvbmNsdXNpb24KPiA+ID4+Pj4gPiAtLS0tCj4gPiA+Pj4+ID4gVXBncmFkZSBtb2NraXRvIHRvIHJlbW92ZSB3YXJuaW5nIGFib3V0IGlsbGVnYWwgcmVmbGVjdGl2ZSBhY2Nlc3MKPiA+ID4+Pj4gPiAtLS0tCj4gPiA+Pj4+ID4gSW1wcm92ZSBUZXN0SmF2YWRvY1JlcG9ydFRlc3QjdGVzdFRlc3RKYXZhZG9jCj4gPiA+Pj4+ID4gSjggd2FybnMgYW5kIGNvbnRpbnVlcyB3aXRoIG1pc3NpbmcgZGVwZW5kZW5jeSwgSjkgZmFpbHMuCj4gPiA+Pj4+ID4gSW4gZmFjdCB0ZXN0IHdhcyB3cm9uZzogZGVwZW5kZW5jeSBzaG91bGQgaGF2ZSBiZWVuIG9uIGNsYXNzcGF0aAo+ID4gPj4+PiA+IC0tLS0KPiA+ID4+Pj4gPiB1bml0dGVzdCBzaG91bGQgcHJlZmVyIEpBVkFfSE9NRSB3aGVuIGV4ZWN1dGluZyBmcm9tIGNtZGxpbmUKPiA+ID4+Pj4gPiBXaGVuIHJ1bm5pbmcgd2l0aCBKYXZhOSsgbm8gbmVlZCB0byBzd2l0Y2ggZnJvbSBqcmUgdG8gamRrCj4gPiA+Pj4+ID4gZGlyZWN0b3J5Cj4gPiA+Pj4+ID4gKGplcDIyMCkKPiA+ID4+Pj4gPiAtLS0tCj4gPiA+Pj4+ID4gTUpBVkFET0MtNTAyIFVwZGF0ZSBERUZBVUxUX0pBVkFfQVBJX0xJTktTCj4gPiA+Pj4+ID4gLS0tLQo+ID4gPj4+PiA+IHNlc3Npb24gaXMgcmVxdWlyZWQgcGFyYW1ldGVyLCBzbyBjYW5ub3QgYmUgbnVsbC4gRml4IHJlbGF0ZWQKPiA+ID4+Pj49MjAKPiA+ID4+Pj4gdW5pdHRlc3RzCj4gPiA+Pj4+PTIwCj4gPiA+Pj4+ID4gLS0tLQo+ID4gPj4+PiA+IEFkZCBwcm9qZWN0L2FydGlmYWN0IGtleSB0byBzZXQgb2Ygc291cmNlUGF0aHMgdG8gcmVjb2duaXplIHJlYWM9CnRvcgo+ID4gPj4+PiA+IHByb2plY3RzIHZlcnN1cyBkZXBlbmRlbmNpZXMKPiA+ID4+Pj4gPiAtLS0tCj4gPiA+Pj4+ID4gR3JvdXAgc2V0cyBvZiBzb3VyY2VwYXRocyBwZXIgcHJvamVjdCwgaW4gcHJlcGFyZSBvZiB1c2FnZSBvZgo+ID4gPj4+PiA+IG1vZHVsZS1zb3VyY2UtcGF0aC4KPiA+ID4+Pj4gPiAtLS0tCj4gPiA+Pj4+ID4gU3dpdGNoIGZyb20gTGlzdCB0byBDb2xsZWN0aW9uIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHVzZSBTZXRzIHdoZW4KPiA+ID4+Pj4gPiBwcmVmZXJyZWQKPiA+ID4+Pj4gPiAtLS0tCj4gPiA+Pj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIGZvciBuZXh0IGRldmVsb3BtZW50IGl0ZXJhdGlvbgo+ID4gPj4+PiA+IC0tLS0KPiA+ID4+Pj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgcmVsZWFzZSBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+ID4gPj4+PiA+IC0tLS0KPiA+ID4+Pj4gPj0yMAo+ID4gPj4+PiA+PTIwCj4gPiA+Pj4+ID49MjAKPiA+ID4+Pj4gPj0yMAo+ID4gPj4+PiA+IE9uIFNhdCwgMTYgRGVjIDIwMTcgMTI6NTM6MjMgKzAxMDAsIEhlcnY9RTkgQk9VVEVNWQo+ID4gPj4+Pj0yMAo+ID4gPj4+PiA8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID4gPj4+Pj0yMAo+ID4gPj4+PiA+IHdyb3RlOgo+ID4gPj4+PiA+ID4gbG9va2luZyBhdCBjb21taXRzQCBjb250ZW50IGh0dHBzOi8vbGlzdHMuYXBhY2hlLm9yZy9saXN0Lmh0bWw/Cj4gPiA+Pj4+ID4gPiBjb21taXRzQG1hdmVuLmFwYWNoZS5vcmcgd2l0aCBzdWJqZWN0IGNvbnRhaW5pbmcKPiA+ID4+Pj49MjAKPiA+ID4+Pj4gIm1hdmVuL3BsdWdpbnMvdHJ1bmsiCj4gPiA+Pj4+PTIwCj4gPiA+Pj4+ID4gPiBhbmQgcGx1Z2lucyBzdm4yZ2l0IG1pcnJvcgo+ID4gPj4+PiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL2NvbW1pdHMvCj4gPiA+Pj4+ID4gPiB0cnVuawo+ID4gPj4+PiA+ID49MjAKPiA+ID4+Pj4gPiA+IG9ubHkgMSBjb21taXQgaXMgbWlzc2luZzogbXkgbGF0ZXN0IGNvbW1pdCBvbiBtYXZlbi1zaXRlLXBsdWdpbgo+ID4gPj4+PiA+ID4gKHRoZSBsYXN0IGNvbW1pdCBmb3IgR2l0IG1pZ3JhdGlvbiBpcyBub3QgdXNlZnVsKQo+ID4gPj4+PiA+ID49MjAKPiA+ID4+Pj4gPiA+PTIwCj4gPiA+Pj4+ID4gPiBTYW1lIG9uIHNoYXJlZCBzaG93ZWQgbm8gbWlzc2luZyBjb21taXQuCj4gPiA+Pj4+ID4gPj0yMAo+ID4gPj4+PiA+ID49MjAKPiA+ID4+Pj4gPiA+IHdoYXQgbGF0ZXN0IGNvbW1pdCBvZiBtYXZlbi1qYXZhZG9jLXBsdWdpbiBhcmUgeW91IGxvb2tpbmcgZm9yPwo+ID4gPj4+PiA+ID49MjAKPiA+ID4+Pj4gPiA+IFJlZ2FyZHMsCj4gPiA+Pj4+ID4gPj0yMAo+ID4gPj4+PiA+ID4gSGVydj1FOQo+ID4gPj4+PiA+ID49MjAKPiA+ID4+Pj4gPiA+IExlIHNhbWVkaSAxNiBkPUU5Y2VtYnJlIDIwMTcsIDExOjU2OjMxIENFVCBSb2JlcnQgU2Nob2x0ZSBhID0KPUU5Y3JpdCA6Cj4gPiA+Pj4+ID4gPj4gRm9yIGV2ZXJ5Ym9keSBqdXN0IGEgd2FybmluZyBJIGZhY2VkIHRvZGF5Ogo+ID4gPj4+PiA+ID4+IElmIHlvdSBzd2l0Y2ggdG8gdGhlIGdpdCByZXBvcywgcGxlYXNlIG1ha2Ugc3VyZSBhbGwgY29tbWl0cyA9CmFyZQo+ID4gPj4+PiA+ID4+IG1pZ3JhdGVkLgo+ID4gPj4+PiA+ID4+IEkgbm90aWNlZCB0aGUgbGF0ZXN0IGNvbW1pdHMgb2YgdGhlIG1hdmVuLWphdmFkb2MtcGx1Z2luIGdvdAo+ID4gPj4+Pj0yMAo+ID4gPj4+PiBsb3N0Lgo+ID4gPj4+Pj0yMAo+ID4gPj4+PiA+ID4+IHRoYW5rcywKPiA+ID4+Pj4gPiA+PiBSb2JlcnQKPiA+ID4+Pj4gPiA+Pj0yMAo+ID4gPj4+PiA+ID4+IE9uIFNhdCwgMDkgRGVjIDIwMTcgMTc6MDY6MDkgKzAxMDAsIFN0ZXBoZW4gQ29ubm9sbHkKPiA+ID4+Pj4gPiA+Pj0yMAo+ID4gPj4+PiA+ID4+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+ID4+Pj4gPiA+PiA+IEkgc2VlIHdlIGhhdmUgYSBsYXJnZSBudW1iZXIgb2YgcmVwb3Mgbm93IG9uIGdpdGJveCA7LSkKPiA+ID4+Pj4gPiA+PiA+PTIwCj4gPiA+Pj4+ID4gPj4gPiBPbiBUaHUgNyBEZWMgMjAxNyBhdCAwNzowMCwgSGVydj1FOSBCT1VURU1ZCj4gPiA+Pj4+PTIwCj4gPiA+Pj4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPiA+Pj4+PTIwCj4gPiA+Pj4+ID4gPj4gd3JvdGU6Cj4gPiA+Pj4+ID4gPj4gPj4gb2ssIEkgZGlkbid0IHVwZGF0ZSBteSByZXBvIGNsb25lOiBub3cgdGhlIHJ1bi1pdHMgcHJvZmlsZT0KIGlzCj4gPiA+Pj4+ID4gPj49MjAKPiA+ID4+Pj4gPiA+PiBhY3RpdmF0ZWQKPiA+ID4+Pj4gPiA+Pj0yMAo+ID4gPj4+PiA+ID4+ID4+IHRoZW4gdGhlIHBsYW4gc2hvdWxkIGp1c3QgY29uZmlybSAiaXQgd29ya3MhIiA6KQo+ID4gPj4+PiA+ID4+ID4+PTIwCj4gPiA+Pj4+ID4gPj4gPj4gYW5kIGZpbmQgd2hpY2ggam9icyBhcmUgc3BlY2lhbCwgbGlrZSBtYXZlbi1kaXN0LXRvb2wgKHdoaT0KY2gKPiA+ID4+Pj49MjAKPiA+ID4+Pj4gaGFzIHRvCj4gPiA+Pj4+PTIwCj4gPiA+Pj4+ID4gPj4gYmUKPiA+ID4+Pj4gPiA+Pj0yMAo+ID4gPj4+PiA+ID4+ID4+IHNjaGVkdWxlZCBkYWlseSBpbnN0ZWFkIG9mIGNvZGUgY2hhbmdlLCBhbmQgb25lIHBsYXRmb3JtCj4gPiA+Pj4+ID4gPj4gPj4gb25seSkKPiA+ID4+Pj4gPiA+PiA+Pj0yMAo+ID4gPj4+PiA+ID4+ID4+IFJlZ2FyZHMsCj4gPiA+Pj4+ID4gPj4gPj49MjAKPiA+ID4+Pj4gPiA+PiA+PiBIZXJ2PUU5Cj4gPiA+Pj4+ID4gPj4gPj49MjAKPiA+ID4+Pj4gPiA+PiA+PiBMZSBtZXJjcmVkaSA2IGQ9RTljZW1icmUgMjAxNywgMjM6NTg6NDUgQ0VUIFN0ZXBoZW4gQ29ubm9sPQpseSBhCj4gPiA+Pj4+PTIwCj4gPiA+Pj4+ID1FOWNyaXQgOgo+ID4gPj4+PiA+ID4+ID4+ID4gT24gV2VkIDYgRGVjIDIwMTcgYXQgMjI6MzgsIEhlcnY9RTkgQk9VVEVNWQo+ID4gPj4+Pj0yMAo+ID4gPj4+PiA8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID4gPj4+Pj0yMAo+ID4gPj4+PiA+ID4+ID4+IHdyb3RlOgo+ID4gPj4+PiA+ID4+ID4+ID4gPiBOb3cgdGhhdCB3ZSBoYXZlIDIgQVNGIE9yZ2FuaXphdGlvbiBKZW5raW5zIGpvYnMgKG9uZSA9CmZvcgo+ID4gPj4+Pj0yMAo+ID4gPj4+PiBnaXRib3gKPiA+ID4+Pj49MjAKPiA+ID4+Pj4gPiA+PiBbMV0KPiA+ID4+Pj4gPiA+Pj0yMAo+ID4gPj4+PiA+ID4+ID4+IGFuZAo+ID4gPj4+PiA+ID4+ID4+PTIwCj4gPiA+Pj4+ID4gPj4gPj4gPiA+IG9uZQo+ID4gPj4+PiA+ID4+ID4+ID4gPiBmb3IgZ2l0LXdpcDogdGhhbmsgeW91IFN0ZXBoZW4pIGFuZCB0aGF0IGl0IGxvb2tzIHF1aXRlCj4gPiA+Pj4+ID4gPj49MjAKPiA+ID4+Pj4gPiA+PiBzdWNjZXNzZnVsLAo+ID4gPj4+PiA+ID4+PTIwCj4gPiA+Pj4+ID4gPj4gPj4gbGV0J3MKPiA+ID4+Pj4gPiA+PiA+Pj0yMAo+ID4gPj4+PiA+ID4+ID4+ID4gPiBwbGFuCj4gPiA+Pj4+ID4gPj4gPj4gPiA+IHRoZSBuZXh0IHN0ZXBzLgo+ID4gPj4+PiA+ID4+ID4+ID4gPj0yMAo+ID4gPj4+PiA+ID4+ID4+ID4gPiBIZXJlIGlzIHdoYXQgSSBzZWU6Cj4gPiA+Pj4+ID4gPj4gPj4gPiA+IDEuIHJlbW92YWwgb2YgaGFuZC1kZWZpbmVkIEplbmtpbnMgam9icyB0aGF0IGFyZSBub3cKPiA+ID4+Pj49MjAKPiA+ID4+Pj4gZHVwbGljYXRlcwo+ID4gPj4+Pj0yMAo+ID4gPj4+PiA+ID4+ID4+ID4gPiAyLiBwcmVwYXJhdGlvbiBvZiB0aGUgNjAgbmV3IGVtcHR5IGdpdCByZXBvcyBmb3Igc2hhcmU9CmQgJgo+ID4gPj4+PiA+ID4+ID4+ID4gPiBwbHVnaW5zCj4gPiA+Pj4+ID4gPj4gPj4gPiA+PTIwCj4gPiA+Pj4+ID4gPj4gPj4gPiA+IDMuIG1pZ3JhdGlvbiBvZiB0aGUgMSBzaGFyZWQgY29tcG9uZW50IGFuZCAxIHBsdWdpbiB1cz0KaW5nCj4gPiA+Pj4+ID4gPj4gPj49MjAKPiA+ID4+Pj4gPiA+PiA+PiBtaWdyYXRlLSouc2gKPiA+ID4+Pj4gPiA+PiA+Pj0yMAo+ID4gPj4+PiA+ID4+ID4+ID4gPiBzY3JpcHRzCj4gPiA+Pj4+ID4gPj4gPj4gPiA+IFszXSB0byB0ZXN0IGFuZCBldmVudHVhbGx5IHJld29yayB0aGUgSmVua2luc2ZpbGUgKEkKPiA+ID4+Pj49MjAKPiA+ID4+Pj4gc3VwcG9zZSBpdAo+ID4gPj4+Pj0yMAo+ID4gPj4+PiA+ID4+IHdpbGwKPiA+ID4+Pj4gPiA+Pj0yMAo+ID4gPj4+PiA+ID4+ID4+ID4gPiByZXF1aXJlCj4gPiA+Pj4+ID4gPj4gPj4gPiA+IHNvbWUgbGl0dGxlIGNoYW5nZSwgdG8gcnVuIGFkZCAicnVuLWl0cyIgcHJvZmlsZSkKPiA+ID4+Pj4gPiA+PiA+PiA+PTIwCj4gPiA+Pj4+ID4gPj4gPj4gPiBBcyBmYXIgYXMgSSByZWNhbGwsIEkgYWRkZWQgLVArcnVuLWl0cyBhbHJlYWR5Cj4gPiA+Pj4+ID4gPj4gPj4gPj0yMAo+ID4gPj4+PiA+ID4+ID4+ID4gRm9yIHRoZSBwbHVnaW4sIEknZCBsaWtlIHRvIGRvIHRoZSBqb2IgZm9yCj4gPiA+Pj4+PTIwCj4gPiA+Pj4+IG1hdmVuLXNpdGUtcGx1Z2luLAo+ID4gPj4+Pj0yMAo+ID4gPj4+PiA+ID4+IHNpbmNlIHdlCj4gPiA+Pj4+ID4gPj49MjAKPiA+ID4+Pj4gPiA+PiA+PiA+ID4gZXhwZWN0Cj4gPiA+Pj4+ID4gPj4gPj4gPiA+IHRvIHJlbGVhc2UgaXQgc29vbi4KPiA+ID4+Pj4gPiA+PiA+PiA+ID4gRm9yIHRoZSBzaGFyZWQgY29tcG9uZW50LCBJIGRvbid0IGtub3cgaWYgdGhlcmUgaXMgYSBiPQplc3QKPiA+ID4+Pj4gPiA+Pj0yMAo+ID4gPj4+PiA+ID4+IGNhbmRpZGF0ZQo+ID4gPj4+PiA+ID4+PTIwCj4gPiA+Pj4+ID4gPj4gPj4gPiA+IDQuIG9uY2UgcHJldmlvdXMgc3RlcCBpcyBvaywgZG8gdGhlIGZ1bGwgbWlncmF0aW9uOiBpZgo+ID4gPj4+Pj0yMAo+ID4gPj4+PiB0aGVyZSBhcmUKPiA+ID4+Pj49MjAKPiA+ID4+Pj4gPiA+PiA+PiA+ID4gdm9sdW50ZWVycwo+ID4gPj4+PiA+ID4+ID4+ID4gPiBmb3IgaGVscGluZywgdGhhdCB3b3VsZCBiZSBncmVhdCwgc2luY2UgcG9wdWxhdGluZyA2MCA9CmdpdAo+ID4gPj4+Pj0yMAo+ID4gPj4+PiByZXBvcwo+ID4gPj4+Pj0yMAo+ID4gPj4+PiA+ID4+ID4+IHdvbid0Cj4gPiA+Pj4+ID4gPj4gPj4gYmUKPiA+ID4+Pj4gPiA+PiA+Pj0yMAo+ID4gPj4+PiA+ID4+ID4+ID4gPiByZWFsbHkgZnVuLi4uCj4gPiA+Pj4+ID4gPj4gPj4gPiA+PTIwCj4gPiA+Pj4+ID4gPj4gPj4gPiA+IEFuZCBhcyBwYXJ0IG9mIDYwIGVtcHR5IGdpdCByZXBvcyBjcmVhdGlvbiwgSSBwcm9wb3NlID0KdG8KPiA+ID4+Pj49MjAKPiA+ID4+Pj4gbWlncmF0ZQo+ID4gPj4+Pj0yMAo+ID4gPj4+PiA+ID4+IHRoZQo+ID4gPj4+PiA+ID4+PTIwCj4gPiA+Pj4+ID4gPj4gPj4gPiA+ICJHb29nbGUKPiA+ID4+Pj4gPiA+PiA+PiA+ID4gcmVwbyBtYW5pZmVzdCIgbWF2ZW4tYWdncmVnYXRvciBbNF0gdG8gQVNGOiBteSBwZXJzb25hbAo+ID4gPj4+Pj0yMAo+ID4gPj4+PiB1c2UgaGFzCj4gPiA+Pj4+PTIwCj4gPiA+Pj4+ID4gPj4gYmVlbgo+ID4gPj4+PiA+ID4+PTIwCj4gPiA+Pj4+ID4gPj4gPj4gcXVpdGUKPiA+ID4+Pj4gPiA+PiA+Pj0yMAo+ID4gPj4+PiA+ID4+ID4+ID4gPiBzdWNjZXNzZnVsLCBJIGhvcGUgaXQncyB0aGUgc2FtZSBmb3Igb3RoZXJzLiBQZXJoYXBzCj4gPiA+Pj4+PTIwCj4gPiA+Pj4+IHRoZXJlIGFyZQo+ID4gPj4+Pj0yMAo+ID4gPj4+PiA+ID4+ID4+IGJldHRlcgo+ID4gPj4+PiA+ID4+ID4+PTIwCj4gPiA+Pj4+ID4gPj4gPj4gPiA+IGlkZWFzCj4gPiA+Pj4+ID4gPj4gPj4gPiA+IGZvciBpdHMgbmFtZTogbWF2ZW4tYWdncmVnYXRvcgo+ID4gPj4+PiA+ID4+ID4+ID4gPj0yMAo+ID4gPj4+PiA+ID4+ID4+ID4gPiBBbnkgb3RoZXIgaWRlYT8gYW55IG9iamVjdGlvbj8KPiA+ID4+Pj4gPiA+PiA+PiA+ID49MjAKPiA+ID4+Pj4gPiA+PiA+PiA+ID4gUmVnYXJkcywKPiA+ID4+Pj4gPiA+PiA+PiA+ID49MjAKPiA+ID4+Pj4gPiA+PiA+PiA+ID4gSGVydj1FOQo+ID4gPj4+PiA+ID4+ID4+ID4gPj0yMAo+ID4gPj4+PiA+ID4+ID4+ID4gPiBbMV0KPiA+ID4+Pj49MjAKPiA+ID4+Pj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvCj4gPiA+Pj4+PTIwCj4gPiA+Pj4+ID4gPj4gPj4gPiA+IFsyXQo+ID4gPj4+Pj0yMAo+ID4gPj4+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLXdpcC8KPiA+ID4+Pj49MjAKPiA+ID4+Pj4gPiA+PiA+PiA+ID4gWzNdCj4gPiA+Pj4+ID4gPj49MjAKPiA+ID4+Pj4gPiA+PiBodHRwczovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy9tYXZlbi9zYW5kYm94L3RydW5rL3NjcmlwdHMvZ2l0Lwo+ID4gPj4+PiA+ID4+PTIwCj4gPiA+Pj4+ID4gPj4gPj4gPiA+IFs0XSBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tYWdncmVnYXRvcgo+ID4gPj0yMAo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj0yMAo+ID4gPj0yMAo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQxNzEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE9jdCAgNyAxNzoxMTo1OCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxNzEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNjI4OTkxMDJENgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDE3OjExOjU4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzE5NTggaW52b2tlZCBieSB1aWQgNTAwKTsgNyBPY3QgMjAxNyAxNzoxMTo1OCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzE4NzggaW52b2tlZCBieSB1aWQgNTAwKTsgNyBPY3QgMjAxNyAxNzoxMTo1OCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMxODY3IGludm9rZWQgYnkgdWlkIDk5KTsgNyBPY3QgMjAxNyAxNzoxMTo1NyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDcgT2N0IDIwMTcgMTc6MTE6NTcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBFMkNENTFBMjYzMAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMTc6MTE6NTYgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjUKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC41IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtGUkVFTUFJTF9SRVBMWT0xLCBLQU1fQVNDSUlfRElWSURFUlM9MC44LAoJS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFZ1QkVrcFJoV3RDeSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgIDcgT2N0IDIwMTcgMTc6MTE6NTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDAzLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI1XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIENCRTc3NjBEMzEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDE3OjExOjUzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDU4IHdpdGggTUUKCWlkIEpoQnQxdzAwODIwVWZkeTAzaEJ0dFM7IFNhdCwgMDcgT2N0IDIwMTcgMTk6MTE6NTMgKzAyMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogU2F0LCAwNyBPY3QgMjAxNyAxOToxMTo1MyArMDIwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBKZW5raW5zIGFuZCBNYXZlbiAzLjAuNSBvciBKREsgNwpEYXRlOiBTYXQsIDA3IE9jdCAyMDE3IDE5OjExOjUzICswMjAwCk1lc3NhZ2UtSUQ6IDwxOTM0OTgzLnhSTThLeUlpbWlAZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zNS1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpJbi1SZXBseS1UbzogPENBS3VWekJRU2dSWFdWRWc4Q2dyWmRzTkd3ZFRmTnRjNHFXdDRHbnlKRG9vaXlhcjJOQUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPDEwNTQ0NjE1LkI0aE8zUG52RXpAZ2lnYT4gPENBS3VWekJSMncrZms1UzN1bkJRUjdCNTRlVTgwQ1FRYUM2NHV5WTVYTkVDSG9TSDZHZ0BtYWlsLmdtYWlsLmNvbT4gPENBS3VWekJRU2dSWFdWRWc4Q2dyWmRzTkd3ZFRmTnRjNHFXdDRHbnlKRG9vaXlhcjJOQUBtYWlsLmdtYWlsLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKd2UgY2FuIHN0YXJ0IHdpdGggbmFtaW5nIHRoZSBmdXR1cmUgZ2l0IHJlcG9zOiBJIHN1cHBvc2UgYWRkaW5nIGEgdGFibGUgYXQgPQp0aGU9MjAKZW5kIG9mIHRoZSBHaXQgbWlncmF0aW9uIFdpa2kgcGFnZSBjYW4gZ2l2ZSBhIGdvb2QgdmlldyBvZiB0aGUgcmVzdWx0ICh3aXRoPQogNzg9MjAKbmV3IHJlcG9zICsgZXhpc3RpbmcgNyByZXBvcyArIHRoZSA2IGluIG1pZ3JhdGlvbiBpZiBub2JvZHkgb2JqZWN0cyA9M0QgOTE9Cj0yMApyZXBvcykKCm9uY2Ugd2UncmUgYWxsIGNvbnZpbmNlZCBvZiB0aGUgdGFyZ2V0LCB3ZSdsbCBzZWUgaG93IHRvIHdvcmsgd2l0aCBpbmZyYQphbmQgSSBzdXBwb3NlIHRoZXkgYWxyZWFkeSBoYXZlIHRoZSByaWdodCBhdXRob3JzIGxpc3QsIGdpdmVuIHRoZSBjdXJyZW50PTIwCm1pcnJvcnMgYWxyZWFkeSBwdWJsaXNoZWQKClJlZ2FyZHMsCgpIZXJ2PUMzPUE5CgpMZSBzYW1lZGkgNyBvY3RvYnJlIDIwMTcsIDE2OjA1OjQ1IENFU1QgVGlib3IgRGlnYW5hIGEgPUMzPUE5Y3JpdCA6Cj4gSGVydmUsCj49MjAKPiBJIHRoaW5rLCBmaXJzdCBvZiBhbGwsIHdlIHNob3VsZCB3cml0ZSBhIGxpc3Qgd2l0aCBleGFjdCBuYW1lcyBvZiBnaXQKPiByZXBvc2l0b3JpZXMgZm9yIHdoaWNoIElORlJBIHdpbGwgY3JhdGUgdGhlbSBpbgo+IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnL3JlcG9zL2FzZgo+IGFuZCBtaXJyb3IgaW4gZ2l0aHViLmNvbS9hcGFjaGUKPj0yMAo+IEFuZCB0aGVuIHRoZSBhdXRob3JzLnR4dC4KPj0yMAo+IEluIG15IGNhc2UgSSBkaWQgbm90IG1pZ3JhdGUgdGFncyBhbmQgYnJhbmNoZXMgd2hpY2ggaXMgbXkgcHJvYmxlbSBnaXZlbiA9CmluCj4gbXkgZXhhbXBsZSB3aXRoIHByZXZpb3VzIGUtbWFpbC4KPj0yMAo+IE9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgMzo0OCBQTSwgVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPiB3cm89CnRlOgo+ID4gSGVydmUsCj4gPiBJIHRoaW5rIG1ha2luZyB0aGUgdGFnIGFzIEkgd2FudGVkIHdvdWxkIG5vdCBiZSBwb3NzaWJsZSBpbiBnaXQuCj4gPj0yMAo+ID4gTGV0J3MgbWFrZSBpdCB3aXRoIGFsbCA3OCBwcm9qZWN0cy4KPiA+IEluIDIwMTYgSSBtaWdyYXRlZCBteSBzdm4gcHJvamVjdCAiYXVkaXQiIGxvY2F0ZWQgaW4gc3ViLWZvbGRlciBiZWhpbmQKPiA+IHRydW5rICh0cnVuay9saWJzL2F1ZGl0KSB0byBnaXQgd2hpY2ggaXMgZXhhY3RseSB3aGF0IHdlIG5lZWQgdG8gZG8gaW4KPiA+IEFTRi4KPiA+PTIwCj4gPiBJbiBvdXIgY2FzZSB0aGUgY29tbWFuZHMgd291bGQgYmUgOTklIHRoZSBzYW1lLiBUaGUgMSUgaXMgdGhlIHNvdXJjZSBTVk4KPiA+IFVSTCBhbmQgdGFyZ2V0IEdpdEh1YiBVUkwuIFRoYXQncyBhbGwuIFRoZW4gaWYgd2UgcHJvdmlkZSBJTkZSQSB3aXRoIGJ1PQpuY2gKPiA+IG9mIGNvbW1hbmRzIGxpa2UgdGhlc2UgdGhlbiB0aGV5IHdpbGwgb25seSBleGVjdXRlIHRoZW0gd2l0aCB0aGVpcgo+ID4gcGVybWlzc2lvbnMuCj4gPiBJIGRvIG5vdCB0aGluayB0aGV5IHdpbGwgZ2l2ZSBtZSBhZG1pbiBwZXJtaXNzaW9ucyB0byBtYWtlIGl0Lgo+ID49MjAKPiA+IGdpdCBzdm4gY2xvbmUgLS1uby1tZXRhZGF0YSAtLWF1dGhvcnMtZmlsZT0zREU6XCphdXRob3JzLnR4dCogaHR0cDovLwo+ID4gKioqL3N2bi8qKiovKnRydW5rL2xpYnMvYXVkaXQgYXVkaXQqCj4gPiBnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIubmFtZSAiKioqICoqKiIKPiA+IGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5lbWFpbCAiKioqQCoqKi4qKioiCj4gPiBnaXQgcmVtb3RlIGFkZCBvcmlnaW4gaHR0cHM6Ly8qKipAZ2l0aHViLmNvbS9hcGFjaGUvKm1hdmVuLWNsZWFuLXBsdWdpbioKPiA+IC5naXQKPiA+IGdpdCBwdXNoIC11IG9yaWdpbiAtLWFsbAo+ID49MjAKPiA+IEkgb2JzZXJ2ZWQgdGhlICphdXRob3JzLnR4dCogZnJvbSBjb21tYW5kCj4gPiAqc3ZuIGxvZyAtcSoKPiA+IEVhY2ggcGVyc29uIGZyb20gYmV0d2VlbiBmaXJzdCB0d28gcGlwZXMsIGUuZy46Cj4gPiByMTIzNDU2NyB8IHRpYm9yZGlnYW5hIHwgMjAxNS0xMC0xOSAwMjoyMDowMAo+ID49MjAKPiA+IEV2ZXJ5IGRldmVsb3BlciBhZGRlZCBlLW1haWwgYW5kIGZ1bGwgbmFtZSwgaS5lLjoKPiA+IHRpYm9yZGlnYW5hID0zRCBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+Cj4gPiBldGMuCj4gPj0yMAo+ID4gVGhpcyBsaXN0IG9mIHVzZXJzIHdoaWNoIHNob3VsZCBiZSBjcmVhdGVkIGluIHByaW9yIHRvIGNvbnRhY3QgSU5GUkEuCj4gPiBOb3QgYWxsIHVzZXJzIGFyZSBhY3RpdmUgYWZ0ZXIgeWVhcnMgYnV0IGl0IHdvdWxkIGJlIG5pY2UgdG8gaW5jbHVkZSB0aD0KZW0KPiA+IHRvby4KPiA+IFRoaXMgbGlzdCBvZiB1c2VycyBpcyBvbmUgdGhpbmcgd2hpY2ggY2Fubm90IGJlIGF1dG9tYXRlZCEKPiA+PTIwCj4gPj0yMAo+ID49MjAKPiA+PTIwCj4gPiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDI6NDggUE0sIFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4KPiA+PTIwCj4gPiB3cm90ZToKPiA+PiBJbiBteSBjb21wYW55IEkgaGF2ZSBzdWNoIHNpdHVhdGlvbiBpbiBTVk4uIE1ha2luZyBhIHRhZyBmcm9tIHN1YmZvbGRlPQpyLgo+ID4+IEdpdCBhbHdheXMgbWFrZXMgdGhlIHRhZyBmcm9tIHRoZSByb290LCByaWdodD8KPiA+PiBMZXQncyBnb29nbGUgc29tZXRoaW5nLi4uCj4gPj49MjAKPiA+PiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDI6NDcgUE0sIFRpYm9yIERpZ2FuYSA8dGlib3IuZGlnYW5hQGdvb2dsZW1haWwuPQpjb20KPiA+Pj0yMAo+ID4+ID4gd3JvdGU6Cj4gPj4+IEluIG15IGNvbXBhbnkgSSBoYXZlIHN1Y2ggc2l0dWF0aW9uLgo+ID4+PiBNYWtpbmcgYSB0YWcgZnJvbSBzdWJmb2xkZXIuCj4gPj4+IEdpdCBhbHdheXMgbWFrZXMgdGhlIHRhZyBmcm9tIHRoZSByb290LCByaWdodD8KPiA+Pj4gTGV0J3MgZ29vZ2xlIHNvbWV0aGluZy4uLgo+ID4+Pj0yMAo+ID4+PiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDI6MDUgUE0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmU9CmUuZnI+Cj4gPj4+PTIwCj4gPj4+IHdyb3RlOgo+ID4+Pj4gdGhhbmtzIGZvciB5b3VyIGludGVyZXN0IGFuZCBmZWVkYmFjawo+ID4+Pj49MjAKPiA+Pj4+IExlIHNhbWVkaSA3IG9jdG9icmUgMjAxNywgMTI6MDA6MzIgQ0VTVCBUaWJvciBEaWdhbmEgYSA9QzM9QTljcml0IDoKPiA+Pj4+ID4gNzggaXMgdG9vIG11Y2guCj4gPj4+Pj0yMAo+ID4+Pj4gbm90aWNlIHRoYXQgdGhlcmUgd291bGQgYWxzbyBiZSBhIHF1ZXN0aW9uIG9uIHRoZSBnaXQgcmVwb3MgbmFtaW5nCj4gPj4+PiBjb252ZW50aW9uLAo+ID4+Pj4gdG8gYXZvaWQgZmxhdCA3OCBuYW1lcyBidXQga2VlcCBhdCBsZWFzdCAzIG1lYW5pbmdmdWwgZ3JvdXBzIChwbHVnaW49CnMsCj4gPj4+PiBzaGFyZWQsCj4gPj4+PiByZXNvdXJjZXM6IEkgdGhpbmsgdGhpcyBpcyBub3QgYWJzb2x1dGVseSBuZWNlc3NhcnkgZm9yIGRveGlhLXRvb2xzKQo+ID4+Pj49MjAKPiA+Pj4+ID4gVGhlcmUgaXMgbm8gcHJvYmxlbSB0byB0cmlnZ2VyIHJlbGVhc2Ugb3ZlciBzdWItZm9sZGVycyBhbmQgdGFnIGl0Cj4gPj4+Pj0yMAo+ID4+Pj4gd2l0aAo+ID4+Pj49MjAKPiA+Pj4+ID4gcHJlZml4IHdoaWNoIGlzIGFscmVhZHkgZG9uZSBpbiBTVk4uCj4gPj4+Pj0yMAo+ID4+Pj4gaXMgaXQgc3VwcG9ydGVkIGJ5IG1hdmVuLXJlbGVhc2UgcGx1Z2luIHdpdGggZ2l0Pwo+ID4+Pj49MjAKPiA+Pj4+IG5vdGljZSBJIGRpZCBub3Qga25vdyB0aGF0IGdpdCB3YXMgYWJsZSB0byB0YWcgb25seSBhIHN1YnRyZWU6IGJ1dCBJCj4gPj4+PiBrbmV3IEkKPiA+Pj4+IGRvbid0IHlldCB1bmRlcnN0YW5kIGV2ZXJ5IGFzcGVjdCBvZiBnaXQgbWFnaWMuLi4gOikKPiA+Pj4+PTIwCj4gPj4+PiA+IFRoZSBDSSBidWlsZCBjYW4gYWx3YXlzIHRyaWdnZXIgdGhlIHJvb3QgYW5kIEplbmtpbnNmaWxlIHdvdWxkIGhhdmUKPiA+Pj4+ID4gNDEKPiA+Pj4+ID4gc3RhZ2VzIGZvciBwbHVnaW5zLCAyNiBzdGFnZXMgZm9yIFNoYXJlZCwgZXRjLgo+ID4+Pj4gPiBJdCBjYW4gYmUgZG9uZSBpbiBKZW5raW5zZmlsZSBhbmQgc28gdGhlIHNoZWxsIHdvdWxkIG5vdCB0aHJvdwo+ID4+Pj49MjAKPiA+Pj4+IGV4Y2VwdGlvbgo+ID4+Pj49MjAKPiA+Pj4+ID4gYnV0IHN0YXR1cyB3b3VsZCBiZSBzZXQgaW5zdGVhZCBhbmQgZ29lcyB0byB0aGUgbmV4dCBzdGFnZS4KPiA+Pj4+ID4gSSBkbyBub3Qga25vdyBob3cgdG8gZGV0ZWN0IGluIEdpdFNDTSB3aGljaCBzdWItZm9sZGVyKHMpIHJlY2VpdmVkCj4gPj4+Pj0yMAo+ID4+Pj4gYnV0IEkKPiA+Pj4+PTIwCj4gPj4+PiA+IGd1ZXNzIHRoaXMgY2FuIGJlIGludmVzdGlnYXRlZC4KPiA+Pj4+PTIwCj4gPj4+PiArMQo+ID4+Pj4gYnV0IEkgZG9uJ3Qga25vdyB3aGVyZSB0byBsb29rIGZvciBteXNlbGY6IG9uIHRoYXQgcG9pbnQsIEkgaG9wZSB0bwo+ID4+Pj4gaGF2ZSBzb21lCj4gPj4+PiBoZWxwIGZyb20gSmVua2luc2ZpbGUgZXhwZXJ0cwo+ID4+Pj4gYW5kIGV2ZW50dWFsbHkgc3RhcnQgd2l0aCBzdm4sIHRvIGhhdmUgc29tZXRoaW5nIGJlZm9yZSB0aGUgZ2l0Cj4gPj4+PiBtaWdyYXRpb24KPiA+Pj4+PTIwCj4gPj4+PiA+IFRoZW4gaXQgY2FuIGJlIGEga2luZCBvZiBzd2l0Y2gtY2FzZSBvdmVyIGNvbW1pdHRlZCBmb2xkZXJzIGluCj4gPj4+Pj0yMAo+ID4+Pj4gSmVua2luc2ZpbGUuCj4gPj4+Pj0yMAo+ID4+Pj4gPiBUaGlzIG1lYW5zIHRoYXQgZXZlcnkgdGltZSBhbm90aGVyIHN0YWdlL3N1Yi1mb2xkZXIgaXMgc2hvd24gaW4KPiA+Pj4+PTIwCj4gPj4+PiBQaXBlbGluZQo+ID4+Pj49MjAKPiA+Pj4+ID4gd2hpY2ggd2lsbCBiZSBtZXNzeSBpbiB0aGUgVUkuIDooCj4gPj4+Pj0yMAo+ID4+Pj4gbm90aWNlIHRoYXQgd2UgY2FuIHBlcmhhcHMgc3BsaXQgdGhlIHJlcG9zIGluIGxlc3MgcGFydHMgdGhhbiB3ZSBoYXZlCj4gPj4+PiBjb21wb25lbnRzOiBvbiBwbHVnaW5zLCBmb3IgZXhhbXBsZSwgd2UgYWxyZWFkeSBoYXZlIDQgY2F0ZWdvcmllcyBbMV0KPiA+Pj4+IHdoaWNoCj4gPj4+PiB3b3VsZCBhdm9pZCAxIHJlcG8gd2l0aCA0MSBwbHVnaW5zLCBidXQgbW9yZSBzb21ldGhpbmcgbGlrZSA2KzEwKzEwKz0KMTUKPiA+Pj4+IEkgc3VwcG9zZSB3ZSBjb3VsZCBkbyB0aGUgc2FtZSBmb3Igc2hhcmVkIChyZXBvcnRpbmcgZm9sZGVyIGNvbWVzIHRvPQogbXkKPiA+Pj4+IG1pbmQpCj4gPj4+Pj0yMAo+ID4+Pj4gVGhlIGtleSBmZWFzaWJpbGl0eSBpc3N1ZSBpcyB0aGUgY2FwYWNpdHkgdG8gcmVsZWFzZSBhIHN1Yi1jb21wb25lbnQKPiA+Pj4+IGZyb20gZ2l0Cj4gPj4+PiB3aXRoIG1hdmVuLXJlbGVhc2UtcGx1Z2luLCBJTUhPCj4gPj4+PiAodGFraW5nIGFwYXJ0IHRoZSBnaXQgcHVyaXN0cyBpZGVhIG9mIDEgbGlmZWN5Y2xlID0zRCAxIGdpdCByZXBvKQo+ID4+Pj49MjAKPiA+Pj4+IFJlZ2FyZHMsCj4gPj4+Pj0yMAo+ID4+Pj4gSGVydj1DMz1BOQo+ID4+Pj49MjAKPiA+Pj4+PTIwCj4gPj4+PiBbMV0gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy8KPiA+Pj4+PTIwCj4gPj4+PiA+IE9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgNDoxNyBBTSwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QD0KZnJlZS5mcj4KPiA+Pj4+PTIwCj4gPj4+PiB3cm90ZToKPiA+Pj4+ID4gPiBUaGVyZSBhcmUgNiBzdm4gbG9jYXRpb25zIHdpdGhvdXQgYW55IHNwZWNpYWwgY29tcGxleGl0eSB0aGF0IGFyZQo+ID4+Pj49MjAKPiA+Pj4+IHdhaXRpbmcKPiA+Pj4+PTIwCj4gPj4+PiA+ID4gZm9yCj4gPj4+PiA+ID4gYSB2b2x1bnRlZXIgZm9yIGdpdCBtaWdyYXRpb24gZm9yIGEgZmV3IHllYXJzIGJ1dCBub2JvZHkgZG9lcwo+ID4+Pj49MjAKPiA+Pj4+IGFueXRoaW5nCj4gPj4+Pj0yMAo+ID4+Pj4gPiA+IGFib3V0Ogo+ID4+Pj4gPiA+IEkgc3RhcnRlZCAzIGRheXMgYWdvIHRvIGFzayBmb3IgaGVscCBhYm91dCBpdCBhbmQgZ290IHByZXR0eSBubwo+ID4+Pj49MjAKPiA+Pj4+IGZlZWRiYWNrCj4gPj4+Pj0yMAo+ID4+Pj4gPiA+IFsxXQo+ID4+Pj4gPiA+PTIwCj4gPj4+PiA+ID4gdGhlbiB0aGVyZSBhcmUgdGhlIDQgY29tcGxleCBzdm4gbG9jYXRpb25zIChwbHVnaW5zLCBzaGFyZWQsCj4gPj4+Pj0yMAo+ID4+Pj4gcmVzb3VyY2VzLAo+ID4+Pj49MjAKPiA+Pj4+ID4gPiBkb3hpYS0KPiA+Pj4+ID4gPiB0b29scykgdGhhdCByZXF1aXJlIG11Y2ggbW9yZSB3b3JrOiBJIHN1cHBvc2Ugd2UgY2FuJ3QgdGVsbCBnaXQKPiA+Pj4+PTIwCj4gPj4+PiBtaWdyYXRpb24KPiA+Pj4+PTIwCj4gPj4+PiA+ID4gaXMKPiA+Pj4+ID4gPiBhYmFuZG9uZWQsIGJ1dCBpdCB3aWxsIHJlcXVpcmUgc29tZW9uZSB0byB3b3JrIG9uIGl0IHNlcmlvdXNseQo+ID4+Pj4gPiA+IFJlbWVtYmVyIHRoYXQgdGhlIGtleSBxdWVzdGlvbiBbMl0gaXM6IGRvIHdlIHRyYW5zZm9ybSB0aGVzZSA0IHM9CnZuCj4gPj4+PiA+ID4gbG9jYXRpb25zCj4gPj4+PiA+ID4gaW50byA0MSArMjYgKyA2ICsgNSA9M0QgNzggaW5kZXBlbmRlbnQgZ2l0IHJlcG9zPwo+ID4+Pj4gPiA+IFllcywgSSB0b2xkIHRoYXQgSmVua2lucyBjb25maWd1cmF0aW9uIGlzIG9uZSBrZXkgYXNwZWN0IHdlIG5lZWQ9CiBhCj4gPj4+PiA+ID4gc3RyYXRlZ3kKPiA+Pj4+ID4gPiBhYm91dCwgaW4gcGFyYWxsZWwgd2l0aCBnaXQgc3RyYXRlZ3kuCj4gPj4+Pj0yMAo+ID4+Pj4gPiA+IHRoZW4gdGhlcmUgd2lsbCBiZSB0aGUgcmVtYWluaW5nIGNhc2VzIHdoZXJlIHdlIG5lZWQgdG8gZGVjaWRlOgo+ID4+Pj4gbG93ZXIKPiA+Pj4+PTIwCj4gPj4+PiA+ID4gaW1wYWN0LAo+ID4+Pj4gPiA+IGxvd2VyIHByaW9yaXR5Lgo+ID4+Pj4gPiA+PTIwCj4gPj4+PiA+ID49MjAKPiA+Pj4+ID4gPiBTdW1tYXJ5OiBub3RoaW5nIGlzIGFiYW5kb25lZCwgYnV0Ogo+ID4+Pj4gPiA+IC0gc2ltcGxlIGNhc2VzOiBubyB2b2x1bnRlZXIgdG8gZG8gdGhlIGpvYgo+ID4+Pj4gPiA+IC0gaGFyZCBjYXNlczogaXMgdGhlcmUgYSB2b2x1bnRlZXIgZWl0aGVyIHRvIGRlZmluZSBhIHN0cmF0ZWd5IG9yCj4gPj4+Pj0yMAo+ID4+Pj4gZG8gc29tZQo+ID4+Pj49MjAKPiA+Pj4+ID4gPiB3b3JrCj4gPj4+PiA+ID4gb24gaXQ/Cj4gPj4+PiA+ID49MjAKPiA+Pj4+ID4gPj0yMAo+ID4+Pj4gPiA+IFJlZ2FyZHMsCj4gPj4+PiA+ID49MjAKPiA+Pj4+ID4gPiBIZXJ2PUMzPUE5Cj4gPj4+PiA+ID49MjAKPiA+Pj4+ID4gPiBbMV0gaHR0cHM6Ly9saXN0cy5hcGFjaGUub3JnL3RocmVhZC5odG1sLwo+ID4+Pj4gPiA+IGVkZjM2NDJhN2JkZDUxNWYwY2FkNDIxYzI1NTg5NzQxODE5NDQ2NDYzNjE0YmYwNTE1ZTU2ZGJlQAo+ID4+Pj4gPiA+ICUzQ2Rldi5tYXZlbi5hcGFjaGUub3JnJTNFCj4gPj4+PiA+ID49MjAKPiA+Pj4+ID4gPiBbMl0gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9HaXQKPiA+Pj4+ID4gPiArTWlncmF0aW9uI0dpdE1pZ3JhdGlvbi1NaWdyYXRpbmdhbmFnZ3JlZ2F0b3J0cmVlaW50b2Fjb2xsZWMKPiA+Pj4+PTIwCj4gPj4+PiB0aW9ub2ZnaXRyZXBvcwo+ID4+Pj49MjAKPiA+Pj4+ID4gPiBMZSB2ZW5kcmVkaSA2IG9jdG9icmUgMjAxNywgMjA6MzU6NDUgQ0VTVCBBcm5hdWQgSD1DMz1BOXJpdGllciBhPQogPUMzPUE5Y3JpdCA6Cj4gPj4+PiA+ID4gPiBCdXQgZGlkIHdlIGNvbXBsZXRlbHkgYWJhbmRvbmVkIHRoZSBpZGVhIG9mIG1vdmluZyBldmVyeXRoaW5nID0KdG8KPiA+Pj4+PTIwCj4gPj4+PiBnaXQgPwo+ID4+Pj49MjAKPiA+Pj4+ID4gPiA+IFRoZSBDSSBzZXR1cCB3YXMgdGhlIG1haW4gc3RvcCBmb3IgaXQgPwo+ID4+Pj4gPiA+ID49MjAKPiA+Pj4+ID4gPiA+IE9uIEZyaSwgT2N0IDYsIDIwMTcgYXQgODowNSBQTSwgSGVydj1DMz1BOSBCT1VURU1ZIDwKPiA+Pj4+PTIwCj4gPj4+PiBoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPj4+Pj0yMAo+ID4+Pj4gPiA+IHdyb3RlOgo+ID4+Pj4gPiA+ID4gPiBJIHdhcyBleHBlY3RpbmcgdGhlIHVzdWFsIGxpdGFueQo+ID4+Pj4gPiA+ID4gPj0yMAo+ID4+Pj4gPiA+ID4gPiB3aGF0IEknbSBub3QgY29uZmlkZW50IGN1cnJlbnRseSB3aXRoIHBpcGVsaW5lIG9uIE1hdmVuIGNvcmU9CiBpcwo+ID4+Pj49MjAKPiA+Pj4+IHRoYXQKPiA+Pj4+PTIwCj4gPj4+PiA+ID4gPiA+IHdlCj4gPj4+PiA+ID4gPiA+IGhhdmUKPiA+Pj4+ID4gPiA+ID4gZm9yIGV4YW1wbGUgdGhlICJtYXZlbi0zLngtamVua2luc2ZpbGUvTU5HLTYyNDIgLSBidWlsZCAjMSAtCj4gPj4+Pj0yMAo+ID4+Pj4gbnVsbCIKPiA+Pj4+PTIwCj4gPj4+PiA+ID4gPiA+IG1lc3NhZ2UsCj4gPj4+PiA+ID4gPiA+IHdpdGggdGhpcyAibnVsbCIgcGFydCB0aGF0IG1ha2VzIG1lIHdvbmRlciBpZiB3ZSBhcmUgdXNpbmcgaXQKPiA+Pj4+ID4gPiA+ID4gYXMKPiA+Pj4+ID4gPj0yMAo+ID4+Pj4gPiA+IGV4cGVjdGVkLgo+ID4+Pj4gPiA+PTIwCj4gPj4+PiA+ID4gPiA+IEFuZCBmb3IgbGFyZ2UgbXVsdGktbW9kdWxlIHN2biB0cnVua3MgKHRoZSBvbmVzIHdlIGRvbid0Cj4gPj4+Pj0yMAo+ID4+Pj4gbWlncmF0ZSB0bwo+ID4+Pj49MjAKPiA+Pj4+ID4gPiBnaXQ6Cj4gPj4+PiA+ID4gPiA+IG1haW5seSBwbHVnaW5zIGFuZCBzaGFyZWQpLCBpcyB0aGVyZSBhIHNvbHV0aW9uIHRvIHJlYnVpbGQgaj0KdXN0Cj4gPj4+PiA+ID4gPiA+IGNoYW5nZWQKPiA+Pj4+ID4gPiA+ID4gbW9kdWxlcz8KPiA+Pj4+ID4gPiA+ID49MjAKPiA+Pj4+ID4gPiA+ID4gaWRlYWxseSwgdGhlIHJlYnVpbGQgd2hlbiBhIFNOQVBTSE9UIGRlcGVuZGVuY3kgaXMgcHVibGlzaGVkCj4gPj4+Pj0yMAo+ID4+Pj4gd291bGQKPiA+Pj4+PTIwCj4gPj4+PiA+ID4gPiA+IGhhdmUKPiA+Pj4+ID4gPiA+ID4gYmVlbiBhCj4gPj4+PiA+ID4gPiA+IHBsdXMsIGJ1dCB0aGlzIGlzIHN1ZmZpY2llbnRseSBhIHJhcmUgdXNlIHRoYXQgSSB3b24ndCBiZQo+ID4+Pj49MjAKPiA+Pj4+IGV4dHJlbWlzdAo+ID4+Pj49MjAKPiA+Pj4+ID4gPiA+ID4gVGhlbiBJSVVDLCB0aGlzIG1pZ3JhdGlvbiBqb2IgaXMgb25lIGFkZGl0aW9uYWwgVE9ETyBmb3IgbWUuPQo9MkUuCj4gPj4+PiA+ID4gPiA+PTIwCj4gPj4+PiA+ID4gPiA+IFJlZ2FyZHMsCj4gPj4+PiA+ID4gPiA+PTIwCj4gPj4+PiA+ID4gPiA+IEhlcnY9QzM9QTkKPiA+Pj4+ID4gPiA+ID49MjAKPiA+Pj4+ID4gPiA+ID4gTGUgdmVuZHJlZGkgNiBvY3RvYnJlIDIwMTcsIDE3OjQ2OjUzIENFU1QgQXJuYXVkIEg9QzM9QTlyaXRpPQplciBhCj4gPj4+Pj0yMAo+ID4+Pj4gPUMzPUE5Y3JpdCA6Cj4gPj4+PiA+ID4gPiA+ID4gSSBhZ3JlZSB0aGF0IHdlIHNob3VsZCB1c2UgcGlwZWxpbmUgbm93ZGF5cwo+ID4+Pj4gPiA+ID4gPiA+IHBlcmhhcHMgYSBzaGFyZWQgbGliIGlmIHdlIHdhbnQgdG8gc3RhbmRhcmRpemUgc29tZSBzdHVmZnMKPiA+Pj4+PTIwCj4gPj4+PiBhbmQgYSBzZXQKPiA+Pj4+PTIwCj4gPj4+PiA+ID4gb2YKPiA+Pj4+ID4gPj0yMAo+ID4+Pj4gPiA+ID4gPiA+IG11bHRpLWJyYW5jaGVzIGpvYnMgKG9yIG9yZyBmb2xkZXIgYnV0IGl0IHJlcXVpcmVzIEdpdEh1YiA9CjooCj4gPj4+PiA+ID4gPiA+ID4gKQo+ID4+Pj4gPiA+ID4gPiA+PTIwCj4gPj4+PiA+ID4gPiA+ID4gT24gRnJpLCBPY3QgNiwgMjAxNyBhdCA5OjE2IEFNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+Pj4+ID4gPiA+ID4gPj0yMAo+ID4+Pj4gPiA+ID4gPiA+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4+Pj4gPiA+ID4gPiA+ID4gT24gRnJpIDYgT2N0IDIwMTcgYXQgMDY6MzIsIEhlcnY9QzM9QTkgQk9VVEVNWSA8Cj4gPj4+Pj0yMAo+ID4+Pj4gaGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID4+Pj49MjAKPiA+Pj4+ID4gPiA+ID4gd3JvdGU6Cj4gPj4+PiA+ID4gPiA+ID4gPiA+IEkganVzdCBmaXhlZCBhIGZldyBmYWlsaW5nIGpvYnMgWzFdIHRvIGhhdmUgYWdhaW4gYQo+ID4+Pj4gPiA+ID4gPiA+ID4gPiB1c2FibGUKPiA+Pj4+ID4gPj0yMAo+ID4+Pj4gPiA+IEplbmtpbnMuCj4gPj4+PiA+ID49MjAKPiA+Pj4+ID4gPiA+ID4gPiA+ID4gTm93IEknbSBmYWNpbmcgc29tZSBpc3N1ZXMsIEkgc3VwcG9zZSBjYXVzZWQgYnkgbmV3ZXIKPiA+Pj4+PTIwCj4gPj4+PiBKZW5raW5zCj4gPj4+Pj0yMAo+ID4+Pj4gPiA+ID4gPiB2ZXJzaW9uczoKPiA+Pj4+ID4gPiA+ID4gPiA+ID4gLSBNYXZlbiAzLjAuNSBjYXVzZXMgTm9TdWNoTWV0aG9kRXJyb3I6Cj4gPj4+PiA+ID4gPiA+ID4gPiA+IG8uYy5wbGV4dXMudXRpbC54bWwucHVsbC4KPiA+Pj4+ID4gPiA+ID4gPiA+PTIwCj4gPj4+PiA+ID4gPiA+ID4gPiBNWFBhcnNlcgo+ID4+Pj4gPiA+ID4gPiA+ID49MjAKPiA+Pj4+ID4gPiA+ID4gPiA+ID4gWzJdCj4gPj4+PiA+ID4gPiA+ID4gPiA+IC0gSSBoYWQgdG8gc3dpdGNoIHRvIEpESyA4IGZvciBtYXZlbi1wbHVnaW4tdG9vbHMgam9iLAo+ID4+Pj49MjAKPiA+Pj4+IHNpbmNlIEpESwo+ID4+Pj49MjAKPiA+Pj4+ID4gPiA+ID4gY2F1c2VzCj4gPj4+PiA+ID4gPiA+PTIwCj4gPj4+PiA+ID4gPiA+ID4gPiA+IGZhaWx1cmVzIChsb29rcyBsaWtlIEplbmtpbnMgdXNlcyBhIGhhY2sgdG8gaW5qZWN0IEpESz0KIDcKPiA+Pj4+PTIwCj4gPj4+PiBhcyBhCj4gPj4+Pj0yMAo+ID4+Pj4gPiA+IHRvb2wKPiA+Pj4+ID4gPj0yMAo+ID4+Pj4gPiA+ID4gPiB3aGlsZQo+ID4+Pj4gPiA+ID4gPj0yMAo+ID4+Pj4gPiA+ID4gPiA+ID4gPiB0aGUKPiA+Pj4+ID4gPiA+ID4gPiA+ID4gYnVpbGQgSlZNIGlzIEphdmEgOCkKPiA+Pj4+ID4gPiA+ID4gPiA+ID49MjAKPiA+Pj4+ID4gPiA+ID4gPiA+ID4gU2hvdWxkIHdlIGRyb3AgTWF2ZW4gMy4wLjUgYnVpbGRzIGFuZCBKREsgNz8KPiA+Pj4+ID4gPiA+ID4gPiA+ID4gTm90aWNlIEkgZGlkbid0IGNoZWNrIHdoaWNoIGlzIHRoZSBtaW5pbXVtIE1hdmVuIHZlcnNpPQpvbgo+ID4+Pj4gPiA+PTIwCj4gPj4+PiA+ID4gcmVxdWlyZWQuLi4KPiA+Pj4+ID4gPj0yMAo+ID4+Pj4gPiA+ID4gPiA+ID4gPiBPciBwZXJoYXBzIHNpbXBseSBkb24ndCB1c2UgdGhlIEplbmtpbnMgTWF2ZW4gcGx1Z2luIHc9Cml0aAo+ID4+Pj49MjAKPiA+Pj4+IHRoaXMKPiA+Pj4+PTIwCj4gPj4+PiA+ID4gTWF2ZW4KPiA+Pj4+ID4gPj0yMAo+ID4+Pj4gPiA+ID4gPiA+ID4gMy4wLjUKPiA+Pj4+ID4gPiA+ID4gPiA+PTIwCj4gPj4+PiA+ID4gPiA+ID4gPiA+IG9yCj4gPj4+PiA+ID4gPiA+ID4gPiA+IEpESyA3IGNvbmZpZ3VyYXRpb246IGRlZmF1bHQgYnVpbGQgYXMgSmVua2lucyBNYXZlbgo+ID4+Pj49MjAKPiA+Pj4+IHBsdWdpbiB3aXRoCj4gPj4+Pj0yMAo+ID4+Pj4gPiA+IEpESwo+ID4+Pj4gPiA+PTIwCj4gPj4+PiA+ID4gPiA+IDggKwo+ID4+Pj4gPiA+ID4gPj0yMAo+ID4+Pj4gPiA+ID4gPiA+ID4gPiBsYXRlc3QKPiA+Pj4+ID4gPiA+ID4gPiA+ID4gTWF2ZW4sIGFuZCBvdGhlciBjb25maWd1cmF0aW9ucyBhcyBzY3JpcHRlZCBqb2JzPwo+ID4+Pj4gPiA+ID4gPiA+ID49MjAKPiA+Pj4+ID4gPiA+ID4gPiA+IGh0dHA6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90LmllLzIwMTMvMTEvamVua2lucy1tYXZlbi1qPQpvYi0+ID4+Pj4gPiA+ID4gPiA+ID4gPgo+ID4+Pj4gPiA+ID4gPj0yMAo+ID4+Pj4gPiA+ID4gPiB0eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sCj4gPj4+PiA+ID4gPiA+PTIwCj4gPj4+PiA+ID4gPiA+ID4gPiA8aHR0cDovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuaWUvMjAxMy8xMS9qZW5raW5zLT4gPgo+ID4+Pj4gPiA+ID4gPj0yMAo+ID4+Pj4gPiA+ID4gPiBtYXZlbi1qb2ItdHlwZS1jb25zaWRlcmVkLWV2aWwuaHRtbD9tPTNEMT4KPiA+Pj4+ID4gPiA+ID49MjAKPiA+Pj4+ID4gPiA+ID4gPiA+IFdlIHNob3VsZCBzdG9wIHVzaW5nIHRoZSBldmlsIGpvYiB0eXBlIGFzIGl0PUUyPTgwPTk5cyBtPQppbmltdW0gSmF2YQo+ID4+Pj4gPiA+PTIwCj4gPj4+PiA+ID4gdmVyc2lvbiBpcwo+ID4+Pj4gPiA+PTIwCj4gPj4+PiA+ID4gPiA+ID4gPiBkaWN0YXRlZCBieSBKZW5raW5zPUUyPTgwPTk5IEphdmEgbWluaW11bS4KPiA+Pj4+ID4gPiA+ID4gPiA+PTIwCj4gPj4+PiA+ID4gPiA+ID4gPiA+IFdlIG5lZWQgdG8gZGVmaW5lIG91ciBjb21tb24gc3RyYXRlZ3kgYW5kIGhhdmUgYQo+ID4+Pj49MjAKPiA+Pj4+IGNvbnNpc3RlbnQKPiA+Pj4+PTIwCj4gPj4+PiA+ID4gPiA+ID4gPiA+IGNvbmZpZ3VyYXRpb24KPiA+Pj4+ID4gPiA+ID4gPiA+ID4gZm9yCj4gPj4+PiA+ID4gPiA+ID4gPiA+IGV2ZXJ5IGpvYiB1bmRlcnN0b29kIGJ5IGV2ZXJ5Ym9keQo+ID4+Pj4gPiA+ID4gPiA+ID49MjAKPiA+Pj4+ID4gPiA+ID4gPiA+IEkgcmVjb21tZW5kIEplbmtpbnNmaWxlIGFuZCB0aGUgYHdpdGhNYXZlbmAgd3JhcHBlcgo+ID4+Pj4gPiA+ID4gPiA+ID49MjAKPiA+Pj4+ID4gPiA+ID4gPiA+ID4gUmVnYXJkcywKPiA+Pj4+ID4gPiA+ID4gPiA+ID49MjAKPiA+Pj4+ID4gPiA+ID4gPiA+ID4gSGVydj1DMz1BOQo+ID4+Pj4gPiA+ID4gPiA+ID4gPj0yMAo+ID4+Pj4gPiA+ID4gPiA+ID4gPiBbMV0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuLwo+ID4+Pj4gPiA+ID4gPiA+ID4gPj0yMAo+ID4+Pj4gPiA+ID4gPiA+ID4gPiBbMl0KPiA+Pj4+ID4gPiA+ID4gPiA+ID4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlPQpuLT4KPiA+Pj4+ID4gPiA+ID4gPiA+PTIwCj4gPj4+PiA+ID4gPiA+ID4gPiBwbHVnaW4tdG9vbHMtamRrLTEuNy8xNjIvY29uc29sZQo+ID4+Pj4gPiA+ID4gPiA+ID49MjAKPiA+Pj4+ID4gPiA+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+Pj0yMAo+ID4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+Pj0yMAo+ID4+Pj4gPiA+ID4gPiAtLS0tLS0tLS0KPiA+Pj4+ID4gPiA+ID49MjAKPiA+Pj4+ID4gPiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vPQpyZwo+ID4+Pj49MjAKPiA+Pj4+ID4gPiA+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDoKPiA+Pj4+IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4+PTIwCj4gPj4+PiA+ID4gPiA+ID4gPiA+IC0tCj4gPj4+PiA+ID4gPiA+ID4gPj0yMAo+ID4+Pj4gPiA+ID4gPiA+ID4gU2VudCBmcm9tIG15IHBob25lCj4gPj4+PiA+ID4gPiA+PTIwCj4gPj4+PiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+Pj49MjAKPiA+Pj4+IC0tLS0tLS0tLQo+ID4+Pj49MjAKPiA+Pj4+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Pj4gPiA+PTIwCj4gPj4+PiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+Pj0yMAo+ID4+Pj4gLS0tLS0tLS0tCj4gPj4+Pj0yMAo+ID4+Pj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Pj49MjAKPiA+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj49MjAKPiA+Pj4gLS0KPiA+Pj4gQ2hlZXJzCj4gPj4+IFRpYm9yCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyMzg1My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgU2VwICAyIDEwOjM3OjA1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzg1My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3MDY0MzFBOTA1Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDIgU2VwIDIwMTcgMTA6Mzc6MDUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0ODIxNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIFNlcCAyMDE3IDEwOjM3OjA1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0ODE0MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIFNlcCAyMDE3IDEwOjM3OjAzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDgxMzEgaW52b2tlZCBieSB1aWQgOTkpOyAyIFNlcCAyMDE3IDEwOjM3OjAzIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kNC11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwMiBTZXAgMjAxNyAxMDozNzowMyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kNC11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDQtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDFGNDhGQzIyNEIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICAyIFNlcCAyMDE3IDEwOjM3OjAzICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kNC11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEuMwpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMS4zIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgS0FNX05VTVNVQkpFQ1Q9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kNC11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTFdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDZuZ2NWOGNId0FnMiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgIDIgU2VwIDIwMTcgMTA6MzY6NTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDA1LnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI3XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEJEREZFNUY2QzgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICAyIFNlcCAyMDE3IDEwOjM2OjU3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yNDUuMjI1LjMxXSkKCWJ5IG13aW5mNWQ1MiB3aXRoIE1FCglpZCA0YWNxMXcwMDIwaEdQdjIwM2FjcUJuOyBTYXQsIDAyIFNlcCAyMDE3IDEyOjM2OjUwICswMjAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFNhdCwgMDIgU2VwIDIwMTcgMTI6MzY6NTAgKzAyMDAKWC1NRS1JUDogODYuMjQ1LjIyNS4zMQpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBKRGVwcyBQbHVnaW4gdmVyc2lvbiAzLjEuMApEYXRlOiBTYXQsIDAyIFNlcCAyMDE3IDEyOjM2OjQ5ICswMjAwCk1lc3NhZ2UtSUQ6IDwxOTQ5NjIwLm5qeW40ODJpOFRAZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zMy1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpJbi1SZXBseS1UbzogPG9wLnk1cjVyOW04a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpSZWZlcmVuY2VzOiA8b3AueTVyNXI5bThrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKKzEKClJlZ2FyZHMsCgpIZXJ2PUU5CgpMZSBtZXJjcmVkaSAzMCBhbz1GQnQgMjAxNywgMTI6NTE6MzUgQ0VTVCBSb2JlcnQgU2Nob2x0ZSBhID1FOWNyaXQgOgo+IEhpLAo+PTIwCj4gV2Ugc29sdmVkIDQgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZWN0SWQ9M0QxMjMxOTI9CjIzJnZlCj4gcnNpb249M0QxMjM0MTQxNSZzdHlsZU5hbWU9M0RUZXh0Cj49MjAKPiBUaGVyZSBpcyBzdGlsbCBvbmUgaXNzdWUgbGVmdCBpbiBKSVJBOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlM0QlMjAxMjMxOTIyMyUyMEE9Ck5EJTIwCj4gc3RhdHVzJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDCj49MjAKPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM1OC8KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zZXJ2aWNlL2xvY2FsL3JlcG9zaXRvcmllcy9tYXZlbi0xMzU4L2NvbnRlPQpudC8KPiBvcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4tamRlcHMtcGx1Z2luLzMuMS4wL21hdmVuLWpkZXBzLXBsdWdpbi0zLjEuPQowLXMKPiBvdXJjZS1yZWxlYXNlLnppcAo+PTIwCj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gbWF2ZW4tamRlcHMtcGx1Z2luLTMuMS4wLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOgo+IDI1YTU2ODYxMmI2M2QyNWE3NmU1NTRlNjIyNjI0YmZmYzFmMmVlY2UKPj0yMAo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1qZGVwcy1wbHVnaW4tTEFURVNULwo+PTIwCj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPj0yMAo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj49MjAKPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ5MTAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIERlYyAzMSAxNzowMzowNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ5MTAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMUQ0NTIxN0RFOQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDMxIERlYyAyMDE3IDE3OjAzOjA1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzU2NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMSBEZWMgMjAxNyAxNzowMzowMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzQ5MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMSBEZWMgMjAxNyAxNzowMzowMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM0NjMgaW52b2tlZCBieSB1aWQgOTkpOyAzMSBEZWMgMjAxNyAxNzowMzowMiAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAzMSBEZWMgMjAxNyAxNzowMzowMiArMDAwMApSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChMRmJuLTEtOTAyOS05My53ODYtMjM4LmFiby53YW5hZG9vLmZyIFs4Ni4yMzguMTYuOTNdKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgQzFCNDgxQTAwRkI7CglTdW4sIDMxIERlYyAyMDE3IDE3OjAzOjAxICswMDAwIChVVEMpCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCb3V0ZW15IDxoYm91dGVteUBhcGFjaGUub3JnPgpUbzogYW5ub3VuY2VAbWF2ZW4uYXBhY2hlLm9yZywgdXNlcnNAbWF2ZW4uYXBhY2hlLm9yZwpDYzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0FOTl0gQXBhY2hlIE1hdmVuIFNpdGUgUGx1Z2luIDMuNyBSZWxlYXNlZApEYXRlOiBTdW4sIDMxIERlYyAyMDE3IDE4OjAyOjUzICswMTAwCk1lc3NhZ2UtSUQ6IDwxOTcwNjMwLjdXc2VWZ1p6bFpAZ2lnYT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN0JpdApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9InVzLWFzY2lpIgoKVGhlIE1hdmVuIHRlYW0gaXMgcGxlYXNlZCB0byBhbm5vdW5jZSB0aGUgcmVsZWFzZSBvZiB0aGUgQXBhY2hlIE1hdmVuIFNpdGUgClBsdWdpbiwgdmVyc2lvbiAzLjcKClRoZSBNYXZlbiBTaXRlIFBsdWdpbiBpcyBhIHBsdWdpbiB0aGF0IGdlbmVyYXRlcyBhIHNpdGUgZm9yIHRoZSBjdXJyZW50IApwcm9qZWN0LgoKaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy9tYXZlbi1zaXRlLXBsdWdpbi8KCllvdSBzaG91bGQgc3BlY2lmeSB0aGUgdmVyc2lvbiBpbiB5b3VyIHByb2plY3QncyBwbHVnaW4gY29uZmlndXJhdGlvbjoKCjxwbHVnaW4+CiAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgogIDxhcnRpZmFjdElkPm1hdmVuLXNpdGUtcGx1Z2luPC9hcnRpZmFjdElkPgogIDx2ZXJzaW9uPjMuNzwvdmVyc2lvbj4KPC9wbHVnaW4+CgpZb3UgY2FuIGRvd25sb2FkIHRoZSBhcHByb3ByaWF0ZSBzb3VyY2VzIGV0Yy4gZnJvbSB0aGUgZG93bmxvYWQgcGFnZToKIApodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy9tYXZlbi1zaXRlLXBsdWdpbi9kb3dubG9hZC5jZ2kKICAgIApSZWxlYXNlIE5vdGVzIC0gTWF2ZW4gU2l0ZSBQbHVnaW4gLSBWZXJzaW9uIDMuNwoKKiogQnVnCiAgICAqIFtNU0lURS03OTZdIC0gVW5hYmxlIHRvIGdlbmVyYXRlIHNpdGUgd2l0aCBKREs5IC0gCmphdmEubGFuZy5FeGNlcHRpb25JbkluaXRpYWxpemVyRXJyb3IgLyBDYXVzZWQgYnk6IApqYXZhLmxhbmcuU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbjogYmVnaW4gMCwgZW5kIDMsIGxlbmd0aCAxCgoqKiBJbXByb3ZlbWVudAogICAgKiBbTVNJVEUtNzg3XSAtIGRpc3BsYXkgd2hhdCByZXBvcnRzIGFyZSBhZGRlZCBhdXRvbWF0aWNhbGx5IHdoZW4gbm8gCnJlcG9ydFNldCBpcyBkZWZpbmVkCiAgICAqIFtNU0lURS03OTFdIC0gdXBncmFkZSBEb3hpYSB0byAxLjggdG8gYmVuZWZpdCBmcm9tIG5ldyBNYXJrZG93biBwYXJzZXIgCihyZXF1aXJlIEphdmEgNykKICAgICogW01TSVRFLTc5N10gLSBzaW1wbGlmeSBzdGFja3RyYWNlIGluIGNhc2Ugb2YgcmVwb3J0IHBsdWdpbiBleGVjdXRpb24gCmZhaWx1cmUKICAgICogW01TSVRFLTgwNF0gLSB1cGRhdGUgRG94aWEgU2l0ZSBSZW5kZXJlciB0byAxLjgKCioqIFRhc2sKICAgICogW01TSVRFLTc5Ml0gLSBkcm9wIHJlcG9ydFBsdWdpbnMgcGFyYW1ldGVyICgibmV3IGZvcm1hdCIpCiAgICAqIFtNU0lURS04MDJdIC0gU3VwcG9ydCBtb3JlIHRoYW4gb25lIGRpcmVjdG9yeTogaW1wcm92ZSB0YXJnZXQvZ2VuZXJhdGVkLQpzaXRlIGRvY3VtZW50YXRpb24KICAgICogW01TSVRFLTgwNV0gLSBzd2l0Y2ggdG8gR2l0CiAgICAKRW5qb3ksCiAgICAKLVRoZSBBcGFjaGUgTWF2ZW4gdGVhbQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NzYwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBEZWMgMTAgMDU6Mjk6MzIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzYwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEUyQ0M5MTdCNjEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxMCBEZWMgMjAxNyAwNToyOTozMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg1NzI5IGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIERlYyAyMDE3IDA1OjI5OjMxIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NTYyNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBEZWMgMjAxNyAwNToyOTozMSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg1NjE0IGludm9rZWQgYnkgdWlkIDk5KTsgMTAgRGVjIDIwMTcgMDU6Mjk6MzEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDEwIERlYyAyMDE3IDA1OjI5OjMxICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQUNCOTMxQTAyRUUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIERlYyAyMDE3IDA1OjI5OjMwICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS43OApYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuNzggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0g0PS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgcmNFOWZMa2tjSlFwIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAxMCBEZWMgMjAxNyAwNToyOToyOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMTMuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMzVdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMDI1MzU1RjNCNwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgRGVjIDIwMTcgMDU6Mjk6MjcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkNzMgd2l0aCBNRQoJaWQgazVWTTF3MDAzMjBVZmR5MDM1Vk1BcTsgU3VuLCAxMCBEZWMgMjAxNyAwNjoyOToyMSArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBTdW4sIDEwIERlYyAyMDE3IDA2OjI5OjIxICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IEdpdCBtaWdyYXRpb24gbmV4dCBzdGVwcwpEYXRlOiBTdW4sIDEwIERlYyAyMDE3IDA2OjI5OjIwICswMTAwCk1lc3NhZ2UtSUQ6IDwxOTg1MTIyLllSZHpwYW5RSlJAZ2lnYT4KSW4tUmVwbHktVG86IDxDQStuUG5Nd2k5ZHhFUmM4VE42YXdnRWFHTkdMUHVEblJ6Y1M4ZEZKalRuelpjM1QzZlFAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDwxOTAwNTU4LkdGeDlRbGZhRTJAZ2lnYT4gPDE2MTgzMDIuRTNhck9yNUR5SkBnaWdhPiA8Q0ErblBuTXdpOWR4RVJjOFRONmF3Z0VhR05HTFB1RG5SemNTOGRGSmpUbnpaYzNUM2ZRQG1haWwuZ21haWwuY29tPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCnllcywgYW5kIDgzIG1hdmVuLWJveCBDSSBqb2JzIFsxXQoKc29tZSBDSSBmYWlsdXJlcyBhcmUgbm90IHJlYWxseSBleHBlY3RlZCwgYnV0IGluIGdlbmVyYWwsIHRoZSByZXN1bHQgaXMgZ29vZAoKaXQncyB0aW1lIGZvciBldmVyeWJvZHkgdG8gY2hlY2sgaGlzIGZhdm9yaXRlIHBsdWdpbiBvciBzaGFyZWQgY29tcG9uZW50IGFuPQpkPTIwCmRvIHRoZSBsaXR0bGUgZml4ZXM6IHRoZSBnbG9iYWwgbWlncmF0aW9uIGlzIGRvbmUKCmFuZCBpdCdzIHRpbWUgYWxzbyB0byBzdGFydCByZXZpZXdpbmcgUFJzIGFuZCBtZXJnaW5nOiB0aGlzIHdhcyB0aGUgYmlnPTIwCm9iamVjdGl2ZSB3aXRoIEdpdCBtaWdyYXRpb24KClJlZ2FyZHMsCgpIZXJ2PUU5CgpbMV0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvCgpMZSBzYW1lZGkgOSBkPUU5Y2VtYnJlIDIwMTcsIDE3OjA2OjA5IENFVCBTdGVwaGVuIENvbm5vbGx5IGEgPUU5Y3JpdCA6Cj4gSSBzZWUgd2UgaGF2ZSBhIGxhcmdlIG51bWJlciBvZiByZXBvcyBub3cgb24gZ2l0Ym94IDstKQo+PTIwCj4gT24gVGh1IDcgRGVjIDIwMTcgYXQgMDc6MDAsIEhlcnY9RTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cm90ZToKPiA+IG9rLCBJIGRpZG4ndCB1cGRhdGUgbXkgcmVwbyBjbG9uZTogbm93IHRoZSBydW4taXRzIHByb2ZpbGUgaXMgYWN0aXZhdGVkCj4gPj0yMAo+ID4gdGhlbiB0aGUgcGxhbiBzaG91bGQganVzdCBjb25maXJtICJpdCB3b3JrcyEiIDopCj4gPj0yMAo+ID4gYW5kIGZpbmQgd2hpY2ggam9icyBhcmUgc3BlY2lhbCwgbGlrZSBtYXZlbi1kaXN0LXRvb2wgKHdoaWNoIGhhcyB0byBiZQo+ID4gc2NoZWR1bGVkIGRhaWx5IGluc3RlYWQgb2YgY29kZSBjaGFuZ2UsIGFuZCBvbmUgcGxhdGZvcm0gb25seSkKPiA+PTIwCj4gPiBSZWdhcmRzLAo+ID49MjAKPiA+IEhlcnY9RTkKPiA+PTIwCj4gPiBMZSBtZXJjcmVkaSA2IGQ9RTljZW1icmUgMjAxNywgMjM6NTg6NDUgQ0VUIFN0ZXBoZW4gQ29ubm9sbHkgYSA9RTljcml0IDoKPiA+ID4gT24gV2VkIDYgRGVjIDIwMTcgYXQgMjI6MzgsIEhlcnY9RTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3PQpyb3RlOgo+ID4gPiA+IE5vdyB0aGF0IHdlIGhhdmUgMiBBU0YgT3JnYW5pemF0aW9uIEplbmtpbnMgam9icyAob25lIGZvciBnaXRib3ggWzFdCj4gPj0yMAo+ID4gYW5kCj4gPj0yMAo+ID4gPiA+IG9uZQo+ID4gPiA+IGZvciBnaXQtd2lwOiB0aGFuayB5b3UgU3RlcGhlbikgYW5kIHRoYXQgaXQgbG9va3MgcXVpdGUgc3VjY2Vzc2Z1bCwKPiA+PTIwCj4gPiBsZXQncwo+ID49MjAKPiA+ID4gPiBwbGFuCj4gPiA+ID4gdGhlIG5leHQgc3RlcHMuCj4gPiA+ID49MjAKPiA+ID4gPiBIZXJlIGlzIHdoYXQgSSBzZWU6Cj4gPiA+ID4gMS4gcmVtb3ZhbCBvZiBoYW5kLWRlZmluZWQgSmVua2lucyBqb2JzIHRoYXQgYXJlIG5vdyBkdXBsaWNhdGVzCj4gPiA+ID49MjAKPiA+ID4gPiAyLiBwcmVwYXJhdGlvbiBvZiB0aGUgNjAgbmV3IGVtcHR5IGdpdCByZXBvcyBmb3Igc2hhcmVkICYgcGx1Z2lucwo+ID4gPiA+PTIwCj4gPiA+ID4gMy4gbWlncmF0aW9uIG9mIHRoZSAxIHNoYXJlZCBjb21wb25lbnQgYW5kIDEgcGx1Z2luIHVzaW5nIG1pZ3JhdGUtKj0KPTJFc2gKPiA+ID4gPiBzY3JpcHRzCj4gPiA+ID4gWzNdIHRvIHRlc3QgYW5kIGV2ZW50dWFsbHkgcmV3b3JrIHRoZSBKZW5raW5zZmlsZSAoSSBzdXBwb3NlIGl0IHdpbGwKPiA+ID4gPiByZXF1aXJlCj4gPiA+ID4gc29tZSBsaXR0bGUgY2hhbmdlLCB0byBydW4gYWRkICJydW4taXRzIiBwcm9maWxlKQo+ID4gPj0yMAo+ID4gPiBBcyBmYXIgYXMgSSByZWNhbGwsIEkgYWRkZWQgLVArcnVuLWl0cyBhbHJlYWR5Cj4gPiA+PTIwCj4gPiA+IEZvciB0aGUgcGx1Z2luLCBJJ2QgbGlrZSB0byBkbyB0aGUgam9iIGZvciBtYXZlbi1zaXRlLXBsdWdpbiwgc2luY2Ugd2UKPiA+ID49MjAKPiA+ID4gPiBleHBlY3QKPiA+ID4gPiB0byByZWxlYXNlIGl0IHNvb24uCj4gPiA+ID4gRm9yIHRoZSBzaGFyZWQgY29tcG9uZW50LCBJIGRvbid0IGtub3cgaWYgdGhlcmUgaXMgYSBiZXN0IGNhbmRpZGF0ZQo+ID4gPiA+PTIwCj4gPiA+ID4gNC4gb25jZSBwcmV2aW91cyBzdGVwIGlzIG9rLCBkbyB0aGUgZnVsbCBtaWdyYXRpb246IGlmIHRoZXJlIGFyZQo+ID4gPiA+IHZvbHVudGVlcnMKPiA+ID4gPiBmb3IgaGVscGluZywgdGhhdCB3b3VsZCBiZSBncmVhdCwgc2luY2UgcG9wdWxhdGluZyA2MCBnaXQgcmVwb3Mgd29uPQondAo+ID49MjAKPiA+IGJlCj4gPj0yMAo+ID4gPiA+IHJlYWxseSBmdW4uLi4KPiA+ID4gPj0yMAo+ID4gPiA+IEFuZCBhcyBwYXJ0IG9mIDYwIGVtcHR5IGdpdCByZXBvcyBjcmVhdGlvbiwgSSBwcm9wb3NlIHRvIG1pZ3JhdGUgdGhlCj4gPiA+ID4gIkdvb2dsZQo+ID4gPiA+IHJlcG8gbWFuaWZlc3QiIG1hdmVuLWFnZ3JlZ2F0b3IgWzRdIHRvIEFTRjogbXkgcGVyc29uYWwgdXNlIGhhcyBiZWVuCj4gPj0yMAo+ID4gcXVpdGUKPiA+PTIwCj4gPiA+ID4gc3VjY2Vzc2Z1bCwgSSBob3BlIGl0J3MgdGhlIHNhbWUgZm9yIG90aGVycy4gUGVyaGFwcyB0aGVyZSBhcmUgYmV0dD0KZXIKPiA+ID4gPiBpZGVhcwo+ID4gPiA+IGZvciBpdHMgbmFtZTogbWF2ZW4tYWdncmVnYXRvcgo+ID4gPiA+PTIwCj4gPiA+ID4gQW55IG90aGVyIGlkZWE/IGFueSBvYmplY3Rpb24/Cj4gPiA+ID49MjAKPiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+PTIwCj4gPiA+ID4gSGVydj1FOQo+ID4gPiA+PTIwCj4gPiA+ID4gWzFdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tYm94Lwo+ID4gPiA+PTIwCj4gPiA+ID4gWzJdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4td2lwLwo+ID4gPiA+PTIwCj4gPiA+ID4gWzNdIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL21hdmVuL3NhbmRib3gvdHJ1bmsvc2NyaXB0cy9naXQvCj4gPiA+ID49MjAKPiA+ID4gPiBbNF0gaHR0cHM6Ly9naXRodWIuY29tL2hib3V0ZW15L21hdmVuLWFnZ3JlZ2F0b3IKPiA+ID4gPj0yMAo+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0KPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPj0yMAo+ID4gPiA+IC0tCj4gPiA+PTIwCj4gPiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PTIwCj4gPiAtLQo+PTIwCj4gU2VudCBmcm9tIG15IHBob25lCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDEzMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gT2N0ICAyIDE2OjM0OjA4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDEzMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDNDlEMTEwMDhFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgIDIgT2N0IDIwMTcgMTY6MzQ6MDggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2NDYzOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIE9jdCAyMDE3IDE2OjM0OjA4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2NDU1MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIE9jdCAyMDE3IDE2OjM0OjA4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjQ1MzkgaW52b2tlZCBieSB1aWQgOTkpOyAyIE9jdCAyMDE3IDE2OjM0OjA4IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDAyIE9jdCAyMDE3IDE2OjM0OjA4ICswMDAwClJlY2VpdmVkOiBmcm9tIGJlbmVkaWt0cy1tYnAubG9jYWwgKGRzbGItMDg4LTA3OC0yMTUtMDc3LjA4OC4wNzgucG9vbHMudm9kYWZvbmUtaXAuZGUgWzg4Ljc4LjIxNS43N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCAwQzRFQTFBMDAyOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgIDIgT2N0IDIwMTcgMTY6MzQ6MDYgKzAwMDAgKFVUQykKRnJvbTogQmVuZWRpa3QgUml0dGVyIDxicml0dGVyQGFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsKCWNoYXJzZXQ9dXRmLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpNaW1lLVZlcnNpb246IDEuMCAoTWFjIE9TIFggTWFpbCAxMS4wIFwoMzQ0NS4xLjZcKSkKU3ViamVjdDogUmU6IGRlcGVuZGVuY3k6Z28tb2ZmbGluZSBicm9rZW4/CkRhdGU6IE1vbiwgMiBPY3QgMjAxNyAxODozNDowMyArMDIwMApSZWZlcmVuY2VzOiA8NDk1OTUyMkEtMjA5MC00MjM5LTgyMzMtRTMyMDAwREU5QTVCQGFwYWNoZS5vcmc+CiA8Q0FNa19CZWh2LTBDajRrWTFuNjJBMXBWRmU4UGR6NzRFbWE4akNEeHZXY05IQWRmTFVRQG1haWwuZ21haWwuY29tPgogPEJDNDU0QkRBLUMxMTYtNERBNi04MTM1LUMyMEQ1QTM2Qjg1MEBhcGFjaGUub3JnPgogPENBTWtfQmVqendZODdLeUpKckNyTHZWeVRZV2hpVG49cmQtN0JPTXVCWnI2bzFzaFFBUUBtYWlsLmdtYWlsLmNvbT4KIDw4Njk3NTI0OC01QTc4LTQyMUMtQjBCOS0wQjhDNkU2QkVEREZAYXBhY2hlLm9yZz4KIDxDQU1rX0JlZ3lhQ0UwdWFIQnQ4OHdDQWsrWSsrTWF1K2RKWGRRM3ZSRFpvRUdIWmpYVkFAbWFpbC5nbWFpbC5jb20+CiA8Q0FMTFQ4a2dKNmd1NHROajA9SnhmOWp5dDRSWTFRWjZRWWZicXorR1NXPWUzOTMzT1RRQG1haWwuZ21haWwuY29tPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxDQUxMVDhrZ0o2Z3U0dE5qMD1KeGY5anl0NFJZMVFaNlFZZmJxeitHU1c9ZTM5MzNPVFFAbWFpbC5nbWFpbC5jb20+Ck1lc3NhZ2UtSWQ6IDwxRkE3MjY4Ni0yNDc5LTRCNEItQkQ0Qy1FNjg0RUM2Q0I4MTRAYXBhY2hlLm9yZz4KWC1NYWlsZXI6IEFwcGxlIE1haWwgKDIuMzQ0NS4xLjYpCgpIZWxsbyBBbGV4LAoKPiBBbSAwMS4xMC4yMDE3IHVtIDE4OjU1IHNjaHJpZWIgQWxleCBPJ1JlZSA8YWxleG9yZWVAYXBhY2hlLm9yZz46Cj49MjAKPiBUaGlzIGlzIHdoYXQgSSB1c2UgdG8gZ2V0IGFydGlmYWN0cyBiZWZvcmUgZHJvcHBpbmcgb2ZmbGluZSAoaXQgbWF5IG9yCj4gbWF5IG5vdCBoZWxwIHlvdXIgc2NlbmFyaW8pCj49MjAKPiBtdm4gZGVwZW5kZW5jeTpyZXNvbHZlIC1EY2xhc3NpZmllcj0zRGphdmFkb2MgZGVwZW5kZW5jeTpzb3VyY2VzCj4gZGVwZW5kZW5jeTpyZXNvbHZlLXBsdWdpbnMgLWZuCj49MjAKPiBUaGlzIGdldHMgc291cmNlcywgamF2YWRvY3MgYW5kIHBsdWdpbnMuIFRoaXMgd29ya3MgaW4gbW9zdCBjYXNlcywKPiBob3dldmVyIGlmIHlvdSdyZSB1c2luZyBhbnQgdG8gZG93bmxvYWQgc3R1ZmYgb3IgYW55IG90aGVyIGNhc2VzCj4gd2hlcmUncyB0aGVyZSdzIGRlY2xhcmVkIGRlcGVuZGVuY2llcyB0aGF0IGFyZSBvbmx5IHJlc29sdmVkIGJ5Cj4gcnVubmluZyBhIHNwZWNpZmljIHBoYXNlIG9yIHBsdWdpbiwgdGhlbiB5b3UnbGwgaGF2ZSB0byBmaWd1cmUgdGhvc2UKPiBvdXQsIHRoZW4gcHV0IHRoZW0gaW4gZGVwZW5kZW5jeSBtYW5hZ2VtZW50IGFuZCB0aGUgYWJvdmUgc2hvdWxkIHdvcmsKCkkgZ2F2ZSB0aGlzIGEgdHJ5OgoKZXhwb3J0IE1BVkVOX09QVFM9M0QtRG1hdmVuLnJlcG8ubG9jYWw9M0QvcGF0aC90by9teS9wcm9qZWN0Lm0yCgptdm4gZGVwZW5kZW5jeTpyZXNvbHZlIGRlcGVuZGVuY3k6cmVzb2x2ZS1wbHVnaW5zCm12biAtbyBmaW5kYnVnczpjaGVjawoKW0lORk9dIC0tLSBtYXZlbi1yZXNvdXJjZXMtcGx1Z2luOjIuNjpyZXNvdXJjZXMgKGRlZmF1bHQtcmVzb3VyY2VzKSBAID0KdG91cmVucGxhbnVuZy1iYWNrZW5kIC0tLQpbV0FSTklOR10gVGhlIFBPTSBmb3Igb3JnLmFwYWNoZS5tYXZlbjptYXZlbi1wcm9qZWN0OmphcjoyLjAuNiBpcyA9Cm1pc3NpbmcsIG5vIGRlcGVuZGVuY3kgaW5mb3JtYXRpb24gYXZhaWxhYmxlCltXQVJOSU5HXSBUaGUgUE9NIGZvciBvcmcuYXBhY2hlLm1hdmVuOm1hdmVuLWNvcmU6amFyOjIuMC42IGlzIG1pc3NpbmcsID0Kbm8gZGVwZW5kZW5jeSBpbmZvcm1hdGlvbiBhdmFpbGFibGUKW1dBUk5JTkddIFRoZSBQT00gZm9yIG9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tYXJ0aWZhY3Q6amFyOjIuMC42IGlzID0KbWlzc2luZywgbm8gZGVwZW5kZW5jeSBpbmZvcm1hdGlvbiBhdmFpbGFibGUKW1dBUk5JTkddIFRoZSBQT00gZm9yIG9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tc2V0dGluZ3M6amFyOjIuMC42IGlzID0KbWlzc2luZywgbm8gZGVwZW5kZW5jeSBpbmZvcm1hdGlvbiBhdmFpbGFibGUKW1dBUk5JTkddIFRoZSBQT00gZm9yIG9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tbW9kZWw6amFyOjIuMC42IGlzIG1pc3NpbmcsID0Kbm8gZGVwZW5kZW5jeSBpbmZvcm1hdGlvbiBhdmFpbGFibGUKW1dBUk5JTkddIFRoZSBQT00gZm9yIG9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tbW9uaXRvcjpqYXI6Mi4wLjYgaXMgPQptaXNzaW5nLCBubyBkZXBlbmRlbmN5IGluZm9ybWF0aW9uIGF2YWlsYWJsZQpbV0FSTklOR10gVGhlIFBPTSBmb3Igb3JnLmFwYWNoZS5tYXZlbi5zaGFyZWQ6bWF2ZW4tZmlsdGVyaW5nOmphcjoxLjEgaXMgPQptaXNzaW5nLCBubyBkZXBlbmRlbmN5IGluZm9ybWF0aW9uIGF2YWlsYWJsZQpbV0FSTklOR10gVGhlIFBPTSBmb3Igb3JnLmNvZGVoYXVzLnBsZXh1czpwbGV4dXMtaW50ZXJwb2xhdGlvbjpqYXI6MS4xMyA9CmlzIG1pc3NpbmcsIG5vIGRlcGVuZGVuY3kgaW5mb3JtYXRpb24gYXZhaWxhYmxlCltJTkZPXSA9Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpbSU5GT10gQlVJTEQgRkFJTFVSRQpbSU5GT10gPQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KW0lORk9dIFRvdGFsIHRpbWU6IDEuNDgyIHMKW0lORk9dIEZpbmlzaGVkIGF0OiAyMDE3LTEwLTAyVDE4OjMwOjM3KzAyOjAwCltJTkZPXSBGaW5hbCBNZW1vcnk6IDIyTS8zMDlNCltJTkZPXSA9Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpbRVJST1JdIEZhaWxlZCB0byBleGVjdXRlIGdvYWwgPQpvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM6bWF2ZW4tcmVzb3VyY2VzLXBsdWdpbjoyLjY6cmVzb3VyY2VzID0KKGRlZmF1bHQtcmVzb3VyY2VzKSBvbiBwcm9qZWN0IG15LXByb2plY3Q6IEV4ZWN1dGlvbiBkZWZhdWx0LXJlc291cmNlcyA9Cm9mIGdvYWwgb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zOm1hdmVuLXJlc291cmNlcy1wbHVnaW46Mi42OnJlc291cmNlcyA9CmZhaWxlZDogUGx1Z2luIG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczptYXZlbi1yZXNvdXJjZXMtcGx1Z2luOjIuNiBvciA9Cm9uZSBvZiBpdHMgZGVwZW5kZW5jaWVzIGNvdWxkIG5vdCBiZSByZXNvbHZlZDogQ2Fubm90IGFjY2VzcyBjZW50cmFsID0KKGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMikgaW4gb2ZmbGluZSBtb2RlIGFuZCB0aGUgYXJ0aWZhY3QgPQpjbGFzc3dvcmxkczpjbGFzc3dvcmxkczpqYXI6MS4xLWFscGhhLTIgaGFzIG5vdCBiZWVuIGRvd25sb2FkZWQgZnJvbSBpdCA9CmJlZm9yZS4gLT4gW0hlbHAgMV0KW0VSUk9SXQpbRVJST1JdIFRvIHNlZSB0aGUgZnVsbCBzdGFjayB0cmFjZSBvZiB0aGUgZXJyb3JzLCByZS1ydW4gTWF2ZW4gd2l0aCB0aGUgPQotZSBzd2l0Y2guCltFUlJPUl0gUmUtcnVuIE1hdmVuIHVzaW5nIHRoZSAtWCBzd2l0Y2ggdG8gZW5hYmxlIGZ1bGwgZGVidWcgbG9nZ2luZy4KW0VSUk9SXQpbRVJST1JdIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlcnJvcnMgYW5kIHBvc3NpYmxlIHNvbHV0aW9ucywgPQpwbGVhc2UgcmVhZCB0aGUgZm9sbG93aW5nIGFydGljbGVzOgpbRVJST1JdIFtIZWxwIDFdID0KaHR0cDovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL1BsdWdpblJlc29sdXRpb25FeGNlcHRpb249CgoKU28gdGhpcyBzdGlsbCBkb2Vzbj1FMj04MD05OXQgd29yaz1FMj04MD1BNgoKQ2hlZXJzLApCZW5lZGlrdAoKPj0yMAo+PTIwCj4gT24gV2VkLCBTZXAgMjcsIDIwMTcgYXQgNTo1OSBQTSwgQnJpYW4gRm94IDxicmlhbmZAaW5maW5pdHkubnU+IHdyb3RlOgo+PiBObywgSSBkb24ndCB0aGluayBpdCB3aWxsIHdvcmsuIFdoYXQgeW91IHJlYWxseSBuZWVkIGlzIGEgcmVwb3NpdG9yeQo+PiBtYW5hZ2VyIHRvIGNhY2hlIHRoaW5ncyBsb2NhbGx5IGZvciB5b3UuIFRoYXQncyB0aGUgcmVjb21tZW5kZWQgPQpzb2x1dGlvbgo+PiBhbnkgdGltZSB5b3UgZmVlbCBsaWtlIHlvdSdyZSBnb2luZyB0byBiZSBkb3dubG9hZGluZyBjb21wb25lbnRzIG1vcmUgPQp0aGFuCj4+IG9uY2UuLi53aGljaCBpcyByZWFsbHkgaW4gZXZlcnkgaW5zdGFuY2UuCj4+PTIwCj4+IE9uIFdlZCwgU2VwIDI3LCAyMDE3IGF0IDc6NTMgQU0sIEJlbmVkaWt0IFJpdHRlciA8YnJpdHRlckBhcGFjaGUub3JnPiA9Cndyb3RlOgo+Pj0yMAo+Pj4gSGVsbG8gQnJhaW4sCj4+Pj0yMAo+Pj4+IEFtIDI2LjA5LjIwMTcgdW0gMjM6MTAgc2NocmllYiBCcmlhbiBGb3ggPGJyaWFuZkBpbmZpbml0eS5udT46Cj4+Pj49MjAKPj4+PiBPbiBNb24sIFNlcCAyNSwgMjAxNyBhdCAyOjEwIFBNLCBCZW5lZGlrdCBSaXR0ZXIgPQo8YnJpdHRlckBhcGFjaGUub3JnPgo+Pj4gd3JvdGU6Cj4+Pj49MjAKPj4+Pj4gSGVsbG8gQnJpYW4sCj4+Pj4+PTIwCj4+Pj4+PiBBbSAyMC4wOS4yMDE3IHVtIDIzOjE2IHNjaHJpZWIgQnJpYW4gRm94IDxicmlhbmZAaW5maW5pdHkubnU+Ogo+Pj4+Pj49MjAKPj4+Pj4+IEl0J3MgYmVlbiBhIHJlYWxseSBsb25nIHRpbWUsIGJ1dCBJIHJlY2FsbCB0aGF0IHRoZXJlIHdlcmUgaXNzdWVzCj4+PiBnZXR0aW5nCj4+Pj4+PiB0aGUgZGVwZW5kZW5jaWVzIG9mIHBsdWdpbnMgYm91bmQgdG8gdGhlIGxpZmVjeWNsZS4gVGhpcyBsb29rcyB0byA9CmJlCj4+PiB0aGUKPj4+Pj4+IHNhbWUgcHJvYmxlbS4gSSB0aGluayB0aGUgZG9jdW1lbnRhdGlvbiB0YWxrZWQgYWJvdXQgYSB3YXkgdG8gZG8gPQp0aGlzCj4+Pj4+PiBlZmZlY3RpdmVseS4KPj4+Pj49MjAKPj4+Pj4gST1FMj04MD05OXZlIGxvb2tlZCB0aHJvdWdoIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBkZXBlbmRlbmN5ID0KcGx1Z2luLCBidXQgSQo+Pj4gY2FuCj4+Pj4+IG5vdCBmaW5kIGFueXRoaW5nIGFib3V0IHRoaXMuIERvIHlvdSByZWNhbGwgd2hlcmUgeW91IGZvdW5kIHRoYXQKPj4+Pj4gZG9jdW1lbnRhdGlvbj8KPj4+Pj49MjAKPj4+Pj49MjAKPj4+PiBIYSBubywgc2luY2UgSSB3cm90ZSB0aGF0IGdvYWwgMTAgeWVhcnMgYWdvIEknbSBzY3JhdGNoaW5nIHRoZSA9CmRlcHRoIG9mCj4+PiBteQo+Pj4+IG1lbW9yeS4gTWF5YmUgSSBqdXN0IGludGVuZGVkIHRvIGRlc2NyaWJlIGl0IDstKQo+Pj49MjAKPj4+IFRoYW5rIHlvdSBmb3IgeW91ciByZXNwb25zZS4gTWF5YmUgST1FMj04MD05OWxsIGp1c3QgZ2l2ZSBhIGxpdHRsZSA9Cm1vcmUgY29udGV4dAo+Pj4gYWJvdXQgd2hhdCBJPUUyPTgwPTk5bSB0cnlpbmcgdG8gYWNoaWV2ZS4gTWF5YmUgST1FMj04MD05OW0ganVzdCA9CmRvaW5nIHRoZSB3cm9uZyB0aGluZzoKPj4+PTIwCj4+PiBJIGhhdmUgYSBDSSBCdWlsZCBpbiBHaXRMYWIsIHdoZXJlIEkgd2FudCB0byBkZWZpbmUgYSBqb2IgdGhhdCA9CmRvd25sb2Fkcwo+Pj4gYWxsIHRoZSBhcnRpZmFjdHMgd2hpY2ggYXJlIG5lZWRlZCBmb3IgdGhlIGRpZmZlcmVudCBsaWZlY3ljbGUgPQpwaGFzZXMgYW5kCj4+PiBwbHVnaW4gZXhlY3V0aW9ucyBhcyB3ZWxsIGFzIGFsbCBwcm9qZWN0IGRlcGVuZGVuY2llcy4gSSBvbmx5IHdhbnQgPQp0bwo+Pj4gZG93bmxvYWQgYWxsIHRoZSBzdHVmZiBvbmNlIGFuZCB0aGVuIGNvcHkgdGhlIGFydGlmYWN0cyBiZXR3ZWVuIHRoZSA9CmJ1aWxkCj4+PiBzdGFnZXMuIEkgdGhvdWdodCB0aGlzIHdvdWxkIGJlIHBvc3NpYmxlIHdpdGggZGVwZW5kZW5jeTpnby1vZmZsaW5lID0Kc28gdGhhdAo+Pj4gbGF0ZXIgc3RlcHMgY2FuIGJlIHJ1biB3aXRoIG12biAtby4KPj4+IEFtIEkgbWlzc2luZyBzb21ldGhpbmcgb3IgaXMgdGhpcyBzaW1wbHkgbm90IHBvc3NpYmxlIGF0IHRoZSBtb21lbnQ/Cj4+Pj0yMAo+Pj4gUmVnYXJkcywKPj4+IEJlbmVkaWt0Cj4+Pj0yMAo+Pj4+PTIwCj4+Pj49MjAKPj4+Pj4gUmVnYXJkcywKPj4+Pj4gQmVuZWRpa3QKPj4+Pj49MjAKPj4+Pj4+PTIwCj4+Pj4+PiBPbiBXZWQsIFNlcCAyMCwgMjAxNyBhdCA0OjQ4IFBNLCBCZW5lZGlrdCBSaXR0ZXIgPQo8YnJpdHRlckBhcGFjaGUub3JnPgo+Pj4+PiB3cm90ZToKPj4+Pj4+PTIwCj4+Pj4+Pj4gSGksCj4+Pj4+Pj49MjAKPj4+Pj4+PiBhcyBmYXIgYXMgSSB1bmRlcnN0YW5kIGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBjYWxsIG12bgo+Pj4+Pj4+IGRlcGVuZGVuY3k6Z28tb2ZmbGluZSBhbmQgZnJvbSB0aGVyZSBvbiB3b3JrIGluIG9mZmxpbmUgbW9kZSA9Cihtdm4gLW8pLgo+Pj4+Pj4+IEk9RTI9ODA9OTl2ZSBwdXQgYSBtaW5pbWFsIGV4YW1wbGUgdG9nZXRoZXIgWzFdIHRoYXQgPQpkZW1vbnN0cmF0ZXMgdGhhdCB0aGlzCj4+Pj4+Pj4gY3VycmVudGx5IGRvZXMgbm90IHdvcmsuIEFtIEkgbWlzc2luZyBhbnl0aGluZz8KPj4+Pj4+Pj0yMAo+Pj4+Pj4+IFRoYW5rIHlvdSEKPj4+Pj4+PiBCZW5lZGlrdAo+Pj4+Pj4+PTIwCj4+Pj4+Pj4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9icml0dGVyL2RlcGVuZGVuY3ktcGx1Z2luLWJ1Zwo+Pj4+Pj4+PTIwCj4+Pj4+Pj49MjAKPj4+Pj4+PiA9Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+Pj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Pj4+PTIwCj4+Pj4+Pj49MjAKPj4+Pj49MjAKPj4+Pj49MjAKPj4+Pj4gPQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Pj0yMAo+Pj4+Pj0yMAo+Pj49MjAKPj4+PTIwCj4+PiA9Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+PTIwCj4+Pj0yMAo+PTIwCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj49MjAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4NjEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IERlYyAyOCAxNDo1Mjo1MyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4NjEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQjdFMjQxMDMzNwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDI4IERlYyAyMDE3IDE0OjUyOjUzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjExIGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IERlYyAyMDE3IDE0OjUyOjUzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNDcgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggRGVjIDIwMTcgMTQ6NTI6NTMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMzQgaW52b2tlZCBieSB1aWQgOTkpOyAyOCBEZWMgMjAxNyAxNDo1Mjo1MyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMjggRGVjIDIwMTcgMTQ6NTI6NTMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA3QUNDMUM0NzJCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyOCBEZWMgMjAxNyAxNDo1Mjo1MiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDAuNTA2ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTAuNTA2IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtNSVNTSU5HX0hFQURFUlM9MS4yMDcsIFJDVkRfSU5fRE5TV0xfTE9XPS0wLjcsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgeTlqU2l3Z2RNeUlZIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVGh1LCAyOCBEZWMgMjAxNyAxNDo1Mjo1MSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNS4xOV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBDQjk2QjVGMjAxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyOCBEZWMgMjAxNyAxNDo1Mjo1MCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBLYXJsLUhlaW56cy1NYWNCb29rLVByby5sb2NhbCAoWzkyLjIwNC40Ni40N10pIGJ5IG1haWwuZ214LmNvbQogKG1yZ214MDAyIFsyMTIuMjI3LjE3LjE5MF0pIHdpdGggRVNNVFBTQSAoTmVtZXNpcykgaWQKIDBNTUJ1bi0xZVpva2gxOXZwLTAwODZENiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyOCBEZWMgMjAxNwogMTU6NTI6NTAgKzAxMDAKUmVwbHktVG86IGluZm9Ac29lYmVzLmRlClN1YmplY3Q6IHBsZXh1cy1hcmNoaXZlciAvIHBsZXh1cy11dGlsIElzc3VlCkNjOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8OTUwZGUyODAtNTkyOC00ZmUzLWFjYTgtMDkyMzQxNTI0YzY2QGdteC5kZT4KIDxDQUxhVGVDbzAtLV9wNmR1TkYzYzAzY1ZGTzRYdlR2bzNZbmR3Q2pfSDc0WFJ2b3daQWdAbWFpbC5nbWFpbC5jb20+CiA8Q0FMYVRlQ3BiWjlhQytxZFNrVDFSTTJoQnFFPU1jX2JMdmJmQUNIaC1zZ1V5bkg0OFB3QG1haWwuZ21haWwuY29tPgogPENBSkc3RFgxU2RheHdvSks1cWpjMTIwRmRlSENaT0hSemlvZWJtRXdHcWd6NWtYbTE2d0BtYWlsLmdtYWlsLmNvbT4KIDwyMzdiMjAxNS03MzBiLTY1OWEtMWZiYy00NTFhNGJlNDQyOGRAZ214LmRlPgogPENBSkc3RFgwSnUxaWFGcFJfeVdvaUxqQ0xvTGNLRVpVa0pFZ3VSa2ErMjdvUXVjeFZHUUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+Ck1lc3NhZ2UtSUQ6IDwxYzNjY2YyMy1iNzQzLTU4NTQtNWU3Ni0yZDZlYjA5MzcyMmFAZ214LmRlPgpEYXRlOiBUaHUsIDI4IERlYyAyMDE3IDE1OjUyOjUwICswMTAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwLjExOyBydjo1Mi4wKQogR2Vja28vMjAxMDAxMDEgVGh1bmRlcmJpcmQvNTIuNS4wCk1JTUUtVmVyc2lvbjogMS4wCkluLVJlcGx5LVRvOiA8Q0FKRzdEWDBKdTFpYUZwUl95V29pTGpDTG9MY0tFWlVrSkVndVJrYSsyN29RdWN4VkdRQG1haWwuZ21haWwuY29tPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDpmR1BhcmxqcGNkVnZpelkvTSttTkFQVUJrbzR5ZFdlNEh0eFQ5UVdKZHZQREFGUUw5algKIDlBTG5IcmJad3ZTK2paWHNjSTBTZVBIK3B5TGg0U0JKeC90WXBPNUlIcWJaY2NoMnlwL1BPYnpLd2VjNUwvaVVwcnJTVHV1CiAranBZaFBIQVYxbTBCZSsvOTBPUWQ2aFl4eHJ1VGt5QmY5RWV6MVZZbk1XRVRTSkk2WDF5dFdIcGtUSk91Rm5MZ2RuTm5oYwogS1Q0RUZHc0pqOUN5MVRYNmwycG9nPT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDpXMnlWWTdhbW1QOD06UjNqOFlaQnRlK1FUUUJOODNSdjRtQwogK0tHanBDY1A3aXAwaWFZRVdmMzlXR2hkVTBKWVlRdjhwWEFxaFVEUlpFa3B1eUNoYzg3UmhwcTdHVFo5Y3RWYWM1Z2h1ek12MQogV2tvd3o2ZVJyUjB4cmJuQ1dVMVZHWFE2aURzYU5pcjNZS0k4clBxUDU2anRkbFRoNjNPbGxLZW9HWm12OFlZYStOclNDOGNINAogUlZsa2xVdzREcHNwQ1BoQTZyR2x6WmdaTkNkOWRQSzg1R25ieHU3Ri92d1hidVhiWWpsTmVGbVh6VFVMWmFoU0g0SW5HNmMzVgogYUd3V0t5WElyMklha3BtVHBsdldnZnR2aTMrQktzTFhuK09iSGtDeG0yd21nOFh6Z2RZeHFjTTFhSWxLdTh2QVhOeGl4TlNwRQogWnZjWTIveXF4d2JMTy9wTXRGa0NFeWF2aUd0SWgxSmFUMmJCdmlDNngvN2tEUmUrQ2ptQ2xibXpuSUlnME1xcmk0TEJpMzI0Rwogc2dpc25zRUd2SG1XZXNQVnBtUDRLK1R0TUYrMEJWL1Zzd1c2cmk3ZDhhUnFuVEViVSsyR2NpVmQya09xL3JRejZXbjZwVTVsQgogQWhsOE9MMXpEN04zK0tTNG56QkN3VEMwUVRvV3UzT1BLNDY1ZW54bFFTbW9GdFBmenRXLytCbGVndXVDSFpjSGg5Nmx0VVAzYQogWWZrTXhYWENTYzdnYlA2bSsrbmdkNzVHRjg3R09yYnBTVGg2dDJoaHJoL3lrdUdQU1YxZFFKR3FBR2lNWHFkc21RUTFWQWQ2SwogV0t4OGs1c1ROVFJpU0lBcEU2OSs1eUVCUE9ydUV6cjZ3Uks2N3I3aDVxQWZHcEsyd0ZkNC9CUFA0YjI2NHBzYXhxaEk5bTFTdAogUXptUklWV0xwZ2Y0TWdWNzBLZjlTTXBoT09BTDB4L09kaGcwVmdkaW5zeDBHeWRzbERIL3FuVHNPaHozL3BuUkxyYS9nQ1VUWgogTDliOE1ubFNJZ0k3QUtEN3BRSEZLaHp1a2w2QkZHVlFUbmIxaTkzY3lYM2JZNUh1SHRRMk1yWDUwZXpXMmh4NzFCRDB5c0xOZwogTjhPdllUbERUc1g2MG5xN3Z0T2tyM2dkUFVra1RKZ1I5RHVCM1VHYTR1U1B2SlRFbmM9CgpIaSwKCmFmdGVyIGRpdmluZyBtb3JlIGludG8gdGhpcy4uCgpJIGZvdW5kIHRoYXQgaWYgSSB1cGdyYWRlIHBsZXh1cy11dGlscyB0byAzLjEuMCBpbiBwbGV4dXMtYXJjaGl2ZXIgdGhlIAp0ZXN0cyBpbiBwbGV4dXMtYXJjaGl2ZXIgc3R1Y2sgY29tcGxldGVseS4uLmFzIEkgYWxyZWFkeSBvYnNlcnZlZCAod2hpY2ggCkkgdGhvdWdoIHdhcyBhbm90aGVyIGNhdXNlKS4uLgoKaHR0cHM6Ly90cmF2aXMtY2kub3JnL2NvZGVoYXVzLXBsZXh1cy9wbGV4dXMtYXJjaGl2ZXIvam9icy8zMjE4MjEyOTQKClNvIG1vcmUgZGl2aW5nIGludG8gdGhlIGRldGFpbHMgSSByZWFsaXplZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29kZSBpbiAKcGxleHVzLXV0aWxzIGNhdXNlcyB0aGUgaXNzdWU6CgpGaWxlVXRpbHMuamF2YToKCiAgICAgcHJpdmF0ZSBzdGF0aWMgdm9pZCBkb0NvcHlGaWxlKCBGaWxlIHNvdXJjZSwgRmlsZSBkZXN0aW5hdGlvbiApCiAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbgogICAgIHsKICAgICAgICAgLy8gb2ZmbG9hZCB0byBvcGVyYXRpbmcgc3lzdGVtIGlmIHN1cHBvcnRlZAogICAgICAgICBpZiAoIEphdmE3RGV0ZWN0b3IuaXNKYXZhNygpICkKICAgICAgICAgewogICAgICAgICAgICAgZG9Db3B5RmlsZVVzaW5nTmV3SU8oIHNvdXJjZSwgZGVzdGluYXRpb24gKTsKICAgICAgICAgfQogICAgICAgICBlbHNlCiAgICAgICAgIHsKICAgICAgICAgICAgIGRvQ29weUZpbGVVc2luZ0xlZ2FjeUlPKCBzb3VyY2UsIGRlc3RpbmF0aW9uICk7CiAgICAgICAgIH0KICAgICB9CgpUaGUgcmVhbCBpc3N1ZSBpcyBsb2NhdGVkIGluIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBkb0NvcHlGaWxlVXNpbmdOZXdJTyAKd2hpY2ggdXNlczoKCgoKICAgICBwdWJsaWMgc3RhdGljIEZpbGUgY29weSggRmlsZSBzb3VyY2UsIEZpbGUgdGFyZ2V0ICkKICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uCiAgICAgewogICAgICAgICBQYXRoIGNvcHkgPSBGaWxlcy5jb3B5KCBzb3VyY2UudG9QYXRoKCksIHRhcmdldC50b1BhdGgoKSwKICAgICAgICAgICAgICAgICAgICBTdGFuZGFyZENvcHlPcHRpb24uUkVQTEFDRV9FWElTVElORywKICAgICAgICAgICAgICAgICAgICBTdGFuZGFyZENvcHlPcHRpb24uQ09QWV9BVFRSSUJVVEVTLAogICAgICAgICAgICAgICAgICAgIExpbmtPcHRpb24uTk9GT0xMT1dfTElOS1MgKTsKICAgICAgICAgcmV0dXJuIGNvcHkudG9GaWxlKCk7CiAgICAgfQoKYW5kIElmIEkgY29ycmVjdGx5IHVuZGVyc3RhbmQgdGhlIHdob2xlIHRoaW5nIGlzIHRoZSByZWFsIGNhdXNlIG9mIHRoYXQgCmJhc2VkIG9uIHRoZSB1c2FnZSBvZiBTdGFuZGFyZENvcHlPcHRpb24uQ09QWV9BVFRSSUJVVEVTIHdoaWNoIGluY2x1ZGVzIApjb3B5aW5nIG9mIHRoZSBsYXN0LW1vZGlmaWVkIG9mIHRoZSBmaWxlLi4ud2hpY2ggbWVhbnMgbm90IHRvIGNoYW5nZSB0aGUgCmxhc3QtbW9kaWZpZWQgZW50cnkgb2YgdGhlIGZpbGUgYW5kIGluIHJlc3VsdCB0aGF0IGlzIHRoZSByZWFzb24gb2Ygbm90IApjaGFuZ2luZyBpdCBhbmQgdGhlIHN0dWNraW5nIG9mIHRoZSB1bml0IHRlc3QgaW4gcGxleHVzLWFyY2hpdmVyLi4uKHNlZSAKdHJhdmlzIGJ1aWxkIGFib3ZlKS4uCgoKQWZ0ZXIgSSBoYXZlIGNoYW5nZWQgdGhhdCBhbmQgb25seSB1c2UKCiAgICAgcHVibGljIHN0YXRpYyBGaWxlIGNvcHkoIEZpbGUgc291cmNlLCBGaWxlIHRhcmdldCApCiAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbgogICAgIHsKICAgICAgICAgUGF0aCBjb3B5ID0gRmlsZXMuY29weSggc291cmNlLnRvUGF0aCgpLCB0YXJnZXQudG9QYXRoKCksCiAgICAgICAgICAgICAgICAgICAgU3RhbmRhcmRDb3B5T3B0aW9uLlJFUExBQ0VfRVhJU1RJTkcsCiAgICAgICAgICAgICAgICAgICAgTGlua09wdGlvbi5OT0ZPTExPV19MSU5LUyApOwogICAgICAgICByZXR1cm4gY29weS50b0ZpbGUoKTsKICAgICB9CgppdCBsb29rcyBsaWtlIHdvcmtpbmcgKHNlZSBicmFuY2ggaXNzdWUtZml4KToKCldoYXQgRG8geW91IHRoaW5rPwoKS2luZCByZWdhcmRzCkthcmwgSGVpbnogTWFyYmFpc2UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDgyNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gRGVjIDI0IDA5OjU0OjIxIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDgyNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA5N0YyRDE3ODg2Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMjQgRGVjIDIwMTcgMDk6NTQ6MjEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1OTMyOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNCBEZWMgMjAxNyAwOTo1NDoyMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTkyNjEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjQgRGVjIDIwMTcgMDk6NTQ6MjEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1OTI1MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI0IERlYyAyMDE3IDA5OjU0OjIwIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAyNCBEZWMgMjAxNyAwOTo1NDoyMCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDdFMkMyQzM3NDYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDI0IERlYyAyMDE3IDA5OjU0OjIwICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC4yOApYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjI4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBGRUotMmNFNmxFMDIgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sIDI0IERlYyAyMDE3IDA5OjU0OjE4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAxLWcyMS5mcmVlLmZyIChzbXRwMS1nMjEuZnJlZS5mciBbMjEyLjI3LjQyLjFdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMkQ4OUQ1RjM5RAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjQgRGVjIDIwMTcgMDk6NTQ6MTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc3Bvb2xlcjQtZzI3LnByaXYucHJveGFkLm5ldCAodW5rbm93biBbMTcyLjIwLjI0My4yMzhdKQoJYnkgc210cDEtZzIxLmZyZWUuZnIgKFBvc3RmaXgpIHdpdGggRVNNVFAgaWQgMURGRDhCMDA0N0MKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDI0IERlYyAyMDE3IDEwOjU0OjE2ICswMTAwIChDRVQpCkRhdGU6IFN1biwgMjQgRGVjIDIwMTcgMTA6NTQ6MTYgKzAxMDAgKENFVCkKRnJvbTogaGVydmUuYm91dGVteUBmcmVlLmZyClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpNZXNzYWdlLUlEOiA8MjAwOTc2NTU5Mi4yMjk3MjIxNy4xNTE0MTA5MjU2NjMyLkphdmFNYWlsLnJvb3RAc3Bvb2xlcjQtZzI3PgpJbi1SZXBseS1UbzogPDczOGM5OWQzLTQ0NDEtNzQxZS0xNmRmLTc0N2M1ZjRmNWIxY0BnbXguZGU+ClN1YmplY3Q6IFJlOiBbSU1QT1JUQU5UXSBSZTogR2l0IG1pZ3JhdGlvbiBuZXh0IHN0ZXBzCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlClgtT3JpZ2luYXRpbmctSVA6IFs4Ni4xOTIuOTcuMzNdClgtTWFpbGVyOiBaaW1icmEgNy4yLjAtR0EyNTk4IChaaW1icmFXZWJDbGllbnQgLSBGRjMuMCAoTGludXgpLzcuMi4wLUdBMjU5OCkKWC1BdXRoZW50aWNhdGVkLVVzZXI6IGhlcnZlLmJvdXRlbXlAZnJlZS5mcgoKSSdkIHN1Z2dlc3QgdG8gdHJ5IHRoZSBwcm9jZXNzIHRvIGEgcGVyc29uYWwgcGVyc29uYWwgcmVwbyBvbiBHaXRIdWIgdG8gc2VlPQogaWYgeW91J3JlIGFibGUgdG8gZ2V0IGEgYmV0dGVyIHJlc3VsdCBiZWZvcmUgaW52b2x2aW5nIG1hbnVhbCB3b3JrIGZyb20gSU49CkZSQSAob24gbW9yZSB0aGFuIDYwIHJlcG9zLi4uKQoKKGl0J3Mgc2FkIHRvIHNlZSBub2JvZHkgdHJ5IHRvIGV4cGxhaW4gd2hhdCdzIGhhcHBlbm5pbmcgb3IgaW1wcm92ZSB0aGUgZG9jPQp1bWVudGVkIGNvbW1hbmRzLCBqdXN0IGdldCB0byBhIGNvbmNsdXNpb246IHJlLWRvIGV2ZXJ5dGhpbmcgYW5kIHByYXkpCgpSZWdhcmRzLAoKSGVydj1DMz1BOQoKLS0tLS0gTWFpbCBvcmlnaW5hbCAtLS0tLQpEZTogIkthcmwgSGVpbnogTWFyYmFpc2UiIDxraG1hcmJhaXNlQGdteC5kZT4KPUMzPTgwOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LCAiUm9iZXJ0IFNjaG9sdGUiIDxyPQpmc2Nob2x0ZUBhcGFjaGUub3JnPgpFbnZveT1DMz1BOTogRGltYW5jaGUgMjQgRD1DMz1BOWNlbWJyZSAyMDE3IDEwOjQ3OjQzCk9iamV0OiBSZTogW0lNUE9SVEFOVF0gUmU6IEdpdCBtaWdyYXRpb24gbmV4dCBzdGVwcwoKSGksCgpPbiAyNC8xMi8xNyAxMDo0MCwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4gSG93IGFib3V0IGEgaGFyZCByZXNldCBvciBkcm9wcGluZyB0aGUgcmVwbyBhbmQgZG9pbmcgaXQgYWxsIG92ZXIgYWdhaW4/CgpJZiBJIGNvcnJlY3RseSBzZWVuIHRoYXQgLi50aGVyZSBoYWQgbm8gY29tbWl0IHlldCBvbiB0aGUgbmV3IGdpdCByZXBvcy4uCgpTbyBJIHRoaW5rIGl0IHdvdWxkIGJlIHRoZSBlYXNpZXN0IHdheSB0byBkbyBhcyBSb2JlcnQgc3VnZ2VzdCAuLi50bz0yMApyZWRvIG1pZ3JhdGlvbiBmb3IgdGhvc2UgcmVwb3MuLgoKS2luZCByZWdhcmRzCkthcmwgSGVpbnoKPj0yMAo+IE9uIFdlZCwgMjAgRGVjIDIwMTcgMTA6NDI6MzYgKzAxMDAsIEhlcnY9QzM9QTkgQk9VVEVNWT0yMAo+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdyb3RlOgo+PTIwCj4+IElORlJBLTE1Njc5IGZpeGVkIGJ5IGluZnJhIHRlYW0KPj4gdGhlbiBJIHJlLXJ1biBtaWdyYXRlLXBsdWdpbnMuc2ggc2NyaXB0IHRvIHNwbGl0IHRoZSBzdm4yZ2l0IG1pcnJvciB0bz0KPTIwCj4+IHBlci0KPj4gcGx1Z2luIGdpdCByZXBvCj4+IGFuZCBJIHB1c2hlZCAibWFzdGVyMiIgYnJhbmNoZXMgZm9yIG0tamF2YWRvYy1wLCBtLXNpdGUtcCBhbmQgbS1wZGYtcCw9Cj0yMAo+PiB3aGljaAo+PiB3ZXJlIHRoZSAzIHBsdWdpbnMgd2hpY2ggc3VmZmVyZWQgZnJvbSBtaXNzaW5nIGNvbW1pdHMKPj4KPj4gb24gbS1zaXRlLXAgYW5kIG0tcGRmLXAsIEknbGwgY2hlcnJ5IHBpY2sgdGhlIHVuaXF1ZSBjb21taXQgdGhhdCB3YXM9MjAKPj4gbWlzc2VkOgo+PiBub3QgYSBiaWcgZGVhbAo+Pgo+PiBvbiBtLWphdmFkb2MtcCwgdGhlIHNpdHVhdGlvbiBpcyBtb3JlIGNvcGxleCwgc2luY2UgdGhlcmUgd2FzIGEgcmVsZWFzZQo+Pgo+PiBJIGFsc28gbm90aWNlZCB0aGF0IEkgZm9yZ290IHRvIHB1c2ggdGFncyB3aGVuIGltcG9ydGluZzogSSBzdGFydGVkIHRvPQo9MjAKPj4gZG8gImdpdAo+PiBwdXNoIC0tdGFncyIsIGJ1dCB0aGUgcmVzdWx0IGRvZXMgbm90IGxvb2sgYXMgSSBleHBlY3RlZDogaXQgY3JlYXRlcyBhPQo9MjAKPj4gbG90IG9mCj4+IHBhcmFsbGVsIGJyYW5jaGVzCj4+Cj4+IEknbGwgbmVlZCBoZWxwIGZyb20gZ2l0IGV4cGVydHM6IHdoYXQgaXMgaGFwcGVuaW5nPwo+Pgo+PiBJIHN0b3BwZWQgdGhlIHRhZ3MgcHVzaCBoYWxmIHRoZSB3YXksIHdlJ2xsIG5lZWQgdG8gZGVjaWRlIHdoYXQgdG8gZG8uLi4KPj4gKEkga25ldyBJIHdhcyBub3QgYSBnaXQgZXhwZXJ0IGFuZCB0aGVyZSB3YXMgYSByaXNrIGZvciBzb21ldGhpbmc9MjAKPj4gd2VpcmQgbGlrZQo+PiB3aGF0J3MgY3VycmVudGx5IGhhcHBlbmluZy4uLikKPj4KPj4gQW55IGhpbnQ/Cj4+Cj4+IFJlZ2FyZHMsCj4+Cj4+IEhlcnY9QzM9QTkKPj4KPj4gTGUgc2FtZWRpIDE2IGQ9QzM9QTljZW1icmUgMjAxNywgMTY6Mjg6NDggQ0VUIEhlcnY9QzM9QTkgQk9VVEVNWSBhID1DMz0KPUE5Y3JpdCA6Cj4+PiBvaywgSSB3YXMgY29uZnVzZWQgYnkgdGhlIGRpZmZlcmVudCB0YWtlcyBhdCBtLWphdmFkb2MtcCAzLjAuMAo+Pj4KPj4+IHllcywgc3ZuMmdpdCBtaXJyb3IgaXMgc3R1Y2sgWzFdIGF0IHIxODE1Njc1Cj4+Pgo+Pj4gSSBqdXN0IG9wZW5lZCBhbiBJTkZSQSBKaXJhIGlzc3VlCj4+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0lORlJBLTE1Njc5Cj4+Pgo+Pj4gb25jZSB0aGUgc3ZuMmdpdCBtaXJyb3Igd2lsbCBiZSB1cGRhdGVkLCB3ZSdsbCBoYXZlIHRvIHJlLXJ1biB0aGUgc3BsaXQKPj4+IHNjcmlwdHMgYW5kIGNoZXJyeSBwaWNrIHRoZSBtaXNzaW5nIGNvbW1pdHMKPj4+Cj4+PiBSZWdhcmRzLAo+Pj4KPj4+IEhlcnY9QzM9QTkKPj4+Cj4+PiBbMV0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL2NvbW1pdHMvdHJ1bmsKPj4+Cj4+PiBMZSBzYW1lZGkgMTYgZD1DMz1BOWNlbWJyZSAyMDE3LCAxMzowMTowNSBDRVQgUm9iZXJ0IFNjaG9sdGUgYSA9QzM9QTljcj0KaXQgOgo+Pj4gPiBJIHdhcyB0cmlnZ2VyZWQgYnkgc29tZSBmYWlsaW5nIHVuaXQgdGVzdHMsIHdoaWNoIHNob3VsZCBoYXZlIGJlZW49MjAKPj4+IHNvbHZlZAo+Pj4gPiBpbiBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+Pj4gPgo+Pj4gPiBNeSBsYXN0IGNvbW1pdCBhY2NvcmRpbmcgdG8gR0lUIHdhcyBub3ZlbWJlciAxOHRoCj4+PiA+IE15IGxhc3QgY29tbWl0IGFjY29yZGluZyB0byBTVk4gd2FzIGRlY2VtYmVyIDNyZAo+Pj4gPgo+Pj4gPiBjb21wYXJpbmcgc3ZubG9nIHdpdGggZ2l0bG9nIG1vc3Qgb2YgdGhlc2UgY29tbWl0cyBhcmUgbG9zdDoKPj4+ID4KPj4+ID4gbW92ZWQgdG8gZ2l0Cj4+PiA+IC0tLS0KPj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIGZvciBuZXh0IGRldmVsb3BtZW50IGl0ZXJhdGlvbgo+Pj4gPiAtLS0tCj4+PiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSByZWxlYXNlIG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wCj4+PiA+IC0tLS0KPj4+ID4gW01KQVZBRE9DLTQ5OF0gIm1vZHVsZSBub3QgZm91bmQiIHdoZW4gSmF2YSA5IG1vZHVsZS1pbmZvIHByZXNlbnQKPj4+ID4gU3VwcG9ydCBhZ2dyYXRlZCBqYXZhZG9jCj4+PiA+IC0tLS0KPj4+ID4gU2tpcCBzZXZlcmFsIHVuaXR0ZXN0cyBmb3IgSmF2YTkKPj4+ID4gLS0tLQo+Pj4gPiBKREstODAzMjIwNSB3YXMgY2xvc2VkIGFzIG5vdCBhbiBpc3N1ZSwgc28gbm90IHNvbHZlZCBpbiBKYXZhOS4KPj4+ID4gTmVlZCB0byByZXZpZXcgdGhlIGNvbmNsdXNpb24KPj4+ID4gLS0tLQo+Pj4gPiBVcGdyYWRlIG1vY2tpdG8gdG8gcmVtb3ZlIHdhcm5pbmcgYWJvdXQgaWxsZWdhbCByZWZsZWN0aXZlIGFjY2Vzcwo+Pj4gPiAtLS0tCj4+PiA+IEltcHJvdmUgVGVzdEphdmFkb2NSZXBvcnRUZXN0I3Rlc3RUZXN0SmF2YWRvYwo+Pj4gPiBKOCB3YXJucyBhbmQgY29udGludWVzIHdpdGggbWlzc2luZyBkZXBlbmRlbmN5LCBKOSBmYWlscy4KPj4+ID4gSW4gZmFjdCB0ZXN0IHdhcyB3cm9uZzogZGVwZW5kZW5jeSBzaG91bGQgaGF2ZSBiZWVuIG9uIGNsYXNzcGF0aAo+Pj4gPiAtLS0tCj4+PiA+IHVuaXR0ZXN0IHNob3VsZCBwcmVmZXIgSkFWQV9IT01FIHdoZW4gZXhlY3V0aW5nIGZyb20gY21kbGluZQo+Pj4gPiBXaGVuIHJ1bm5pbmcgd2l0aCBKYXZhOSsgbm8gbmVlZCB0byBzd2l0Y2ggZnJvbSBqcmUgdG8gamRrIGRpcmVjdG9yeQo+Pj4gPiAoamVwMjIwKQo+Pj4gPiAtLS0tCj4+PiA+IE1KQVZBRE9DLTUwMiBVcGRhdGUgREVGQVVMVF9KQVZBX0FQSV9MSU5LUwo+Pj4gPiAtLS0tCj4+PiA+IHNlc3Npb24gaXMgcmVxdWlyZWQgcGFyYW1ldGVyLCBzbyBjYW5ub3QgYmUgbnVsbC4gRml4IHJlbGF0ZWQ9MjAKPj4+IHVuaXR0ZXN0cwo+Pj4gPiAtLS0tCj4+PiA+IEFkZCBwcm9qZWN0L2FydGlmYWN0IGtleSB0byBzZXQgb2Ygc291cmNlUGF0aHMgdG8gcmVjb2duaXplIHJlYWN0b3IKPj4+ID4gcHJvamVjdHMgdmVyc3VzIGRlcGVuZGVuY2llcwo+Pj4gPiAtLS0tCj4+PiA+IEdyb3VwIHNldHMgb2Ygc291cmNlcGF0aHMgcGVyIHByb2plY3QsIGluIHByZXBhcmUgb2YgdXNhZ2Ugb2YKPj4+ID4gbW9kdWxlLXNvdXJjZS1wYXRoLgo+Pj4gPiAtLS0tCj4+PiA+IFN3aXRjaCBmcm9tIExpc3QgdG8gQ29sbGVjdGlvbiB0byBtYWtlIGl0IGVhc2llciB0byB1c2UgU2V0cyB3aGVuCj4+PiA+IHByZWZlcnJlZAo+Pj4gPiAtLS0tCj4+PiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSBmb3IgbmV4dCBkZXZlbG9wbWVudCBpdGVyYXRpb24KPj4+ID4gLS0tLQo+Pj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgcmVsZWFzZSBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+Pj4gPiAtLS0tCj4+PiA+Cj4+PiA+Cj4+PiA+Cj4+PiA+Cj4+PiA+IE9uIFNhdCwgMTYgRGVjIDIwMTcgMTI6NTM6MjMgKzAxMDAsIEhlcnY9QzM9QTkgQk9VVEVNWT0yMAo+Pj4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4+ID4KPj4+ID4gd3JvdGU6Cj4+PiA+ID4gbG9va2luZyBhdCBjb21taXRzQCBjb250ZW50IGh0dHBzOi8vbGlzdHMuYXBhY2hlLm9yZy9saXN0Lmh0bWw/Cj4+PiA+ID4gY29tbWl0c0BtYXZlbi5hcGFjaGUub3JnIHdpdGggc3ViamVjdCBjb250YWluaW5nPTIwCj4+PiAibWF2ZW4vcGx1Z2lucy90cnVuayIKPj4+ID4gPgo+Pj4gPiA+IGFuZCBwbHVnaW5zIHN2bjJnaXQgbWlycm9yCj4+PiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL2NvbW1pdHMvCj4+PiA+ID4gdHJ1bmsKPj4+ID4gPgo+Pj4gPiA+IG9ubHkgMSBjb21taXQgaXMgbWlzc2luZzogbXkgbGF0ZXN0IGNvbW1pdCBvbiBtYXZlbi1zaXRlLXBsdWdpbgo+Pj4gPiA+ICh0aGUgbGFzdCBjb21taXQgZm9yIEdpdCBtaWdyYXRpb24gaXMgbm90IHVzZWZ1bCkKPj4+ID4gPgo+Pj4gPiA+Cj4+PiA+ID4gU2FtZSBvbiBzaGFyZWQgc2hvd2VkIG5vIG1pc3NpbmcgY29tbWl0Lgo+Pj4gPiA+Cj4+PiA+ID4KPj4+ID4gPiB3aGF0IGxhdGVzdCBjb21taXQgb2YgbWF2ZW4tamF2YWRvYy1wbHVnaW4gYXJlIHlvdSBsb29raW5nIGZvcj8KPj4+ID4gPgo+Pj4gPiA+IFJlZ2FyZHMsCj4+PiA+ID4KPj4+ID4gPiBIZXJ2PUMzPUE5Cj4+PiA+ID4KPj4+ID4gPiBMZSBzYW1lZGkgMTYgZD1DMz1BOWNlbWJyZSAyMDE3LCAxMTo1NjozMSBDRVQgUm9iZXJ0IFNjaG9sdGUgYSA9QzM9Cj1BOWNyaXQgOgo+Pj4gPiA+PiBGb3IgZXZlcnlib2R5IGp1c3QgYSB3YXJuaW5nIEkgZmFjZWQgdG9kYXk6Cj4+PiA+ID4+IElmIHlvdSBzd2l0Y2ggdG8gdGhlIGdpdCByZXBvcywgcGxlYXNlIG1ha2Ugc3VyZSBhbGwgY29tbWl0cyBhcmUKPj4+ID4gPj4gbWlncmF0ZWQuCj4+PiA+ID4+IEkgbm90aWNlZCB0aGUgbGF0ZXN0IGNvbW1pdHMgb2YgdGhlIG1hdmVuLWphdmFkb2MtcGx1Z2luIGdvdCBsb3N0Lgo+Pj4gPiA+Pgo+Pj4gPiA+PiB0aGFua3MsCj4+PiA+ID4+IFJvYmVydAo+Pj4gPiA+Pgo+Pj4gPiA+PiBPbiBTYXQsIDA5IERlYyAyMDE3IDE3OjA2OjA5ICswMTAwLCBTdGVwaGVuIENvbm5vbGx5Cj4+PiA+ID4+Cj4+PiA+ID4+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4+ID4gPj4gPiBJIHNlZSB3ZSBoYXZlIGEgbGFyZ2UgbnVtYmVyIG9mIHJlcG9zIG5vdyBvbiBnaXRib3ggOy0pCj4+PiA+ID4+ID4KPj4+ID4gPj4gPiBPbiBUaHUgNyBEZWMgMjAxNyBhdCAwNzowMCwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyPQplZS5mcj4KPj4+ID4gPj4KPj4+ID4gPj4gd3JvdGU6Cj4+PiA+ID4+ID4+IG9rLCBJIGRpZG4ndCB1cGRhdGUgbXkgcmVwbyBjbG9uZTogbm93IHRoZSBydW4taXRzIHByb2ZpbGUgaXMKPj4+ID4gPj4KPj4+ID4gPj4gYWN0aXZhdGVkCj4+PiA+ID4+Cj4+PiA+ID4+ID4+IHRoZW4gdGhlIHBsYW4gc2hvdWxkIGp1c3QgY29uZmlybSAiaXQgd29ya3MhIiA6KQo+Pj4gPiA+PiA+Pgo+Pj4gPiA+PiA+PiBhbmQgZmluZCB3aGljaCBqb2JzIGFyZSBzcGVjaWFsLCBsaWtlIG1hdmVuLWRpc3QtdG9vbCAod2hpY2g9MjAKPj4+IGhhcyB0bwo+Pj4gPiA+Pgo+Pj4gPiA+PiBiZQo+Pj4gPiA+Pgo+Pj4gPiA+PiA+PiBzY2hlZHVsZWQgZGFpbHkgaW5zdGVhZCBvZiBjb2RlIGNoYW5nZSwgYW5kIG9uZSBwbGF0Zm9ybSBvbmx5KQo+Pj4gPiA+PiA+Pgo+Pj4gPiA+PiA+PiBSZWdhcmRzLAo+Pj4gPiA+PiA+Pgo+Pj4gPiA+PiA+PiBIZXJ2PUMzPUE5Cj4+PiA+ID4+ID4+Cj4+PiA+ID4+ID4+IExlIG1lcmNyZWRpIDYgZD1DMz1BOWNlbWJyZSAyMDE3LCAyMzo1ODo0NSBDRVQgU3RlcGhlbiBDb25ub2xseT0KIGE9MjAKPj4+ID1DMz1BOWNyaXQgOgo+Pj4gPiA+PiA+PiA+IE9uIFdlZCA2IERlYyAyMDE3IGF0IDIyOjM4LCBIZXJ2PUMzPUE5IEJPVVRFTVk9MjAKPj4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4+PiA+ID4+ID4+Cj4+PiA+ID4+ID4+IHdyb3RlOgo+Pj4gPiA+PiA+PiA+ID4gTm93IHRoYXQgd2UgaGF2ZSAyIEFTRiBPcmdhbml6YXRpb24gSmVua2lucyBqb2JzIChvbmUgZm9yPQo9MjAKPj4+IGdpdGJveAo+Pj4gPiA+Pgo+Pj4gPiA+PiBbMV0KPj4+ID4gPj4KPj4+ID4gPj4gPj4gYW5kCj4+PiA+ID4+ID4+Cj4+PiA+ID4+ID4+ID4gPiBvbmUKPj4+ID4gPj4gPj4gPiA+IGZvciBnaXQtd2lwOiB0aGFuayB5b3UgU3RlcGhlbikgYW5kIHRoYXQgaXQgbG9va3MgcXVpdGUKPj4+ID4gPj4KPj4+ID4gPj4gc3VjY2Vzc2Z1bCwKPj4+ID4gPj4KPj4+ID4gPj4gPj4gbGV0J3MKPj4+ID4gPj4gPj4KPj4+ID4gPj4gPj4gPiA+IHBsYW4KPj4+ID4gPj4gPj4gPiA+IHRoZSBuZXh0IHN0ZXBzLgo+Pj4gPiA+PiA+PiA+ID4KPj4+ID4gPj4gPj4gPiA+IEhlcmUgaXMgd2hhdCBJIHNlZToKPj4+ID4gPj4gPj4gPiA+IDEuIHJlbW92YWwgb2YgaGFuZC1kZWZpbmVkIEplbmtpbnMgam9icyB0aGF0IGFyZSBub3c9MjAKPj4+IGR1cGxpY2F0ZXMKPj4+ID4gPj4gPj4gPiA+Cj4+PiA+ID4+ID4+ID4gPiAyLiBwcmVwYXJhdGlvbiBvZiB0aGUgNjAgbmV3IGVtcHR5IGdpdCByZXBvcyBmb3Igc2hhcmVkICYKPj4+ID4gPj4gPj4gPiA+IHBsdWdpbnMKPj4+ID4gPj4gPj4gPiA+Cj4+PiA+ID4+ID4+ID4gPiAzLiBtaWdyYXRpb24gb2YgdGhlIDEgc2hhcmVkIGNvbXBvbmVudCBhbmQgMSBwbHVnaW4gdXNpbmcKPj4+ID4gPj4gPj4KPj4+ID4gPj4gPj4gbWlncmF0ZS0qLnNoCj4+PiA+ID4+ID4+Cj4+PiA+ID4+ID4+ID4gPiBzY3JpcHRzCj4+PiA+ID4+ID4+ID4gPiBbM10gdG8gdGVzdCBhbmQgZXZlbnR1YWxseSByZXdvcmsgdGhlIEplbmtpbnNmaWxlIChJPTIwCj4+PiBzdXBwb3NlIGl0Cj4+PiA+ID4+Cj4+PiA+ID4+IHdpbGwKPj4+ID4gPj4KPj4+ID4gPj4gPj4gPiA+IHJlcXVpcmUKPj4+ID4gPj4gPj4gPiA+IHNvbWUgbGl0dGxlIGNoYW5nZSwgdG8gcnVuIGFkZCAicnVuLWl0cyIgcHJvZmlsZSkKPj4+ID4gPj4gPj4gPgo+Pj4gPiA+PiA+PiA+IEFzIGZhciBhcyBJIHJlY2FsbCwgSSBhZGRlZCAtUCtydW4taXRzIGFscmVhZHkKPj4+ID4gPj4gPj4gPgo+Pj4gPiA+PiA+PiA+IEZvciB0aGUgcGx1Z2luLCBJJ2QgbGlrZSB0byBkbyB0aGUgam9iIGZvciBtYXZlbi1zaXRlLXBsdWdpbiwKPj4+ID4gPj4KPj4+ID4gPj4gc2luY2Ugd2UKPj4+ID4gPj4KPj4+ID4gPj4gPj4gPiA+IGV4cGVjdAo+Pj4gPiA+PiA+PiA+ID4gdG8gcmVsZWFzZSBpdCBzb29uLgo+Pj4gPiA+PiA+PiA+ID4gRm9yIHRoZSBzaGFyZWQgY29tcG9uZW50LCBJIGRvbid0IGtub3cgaWYgdGhlcmUgaXMgYSBiZXN0Cj4+PiA+ID4+Cj4+PiA+ID4+IGNhbmRpZGF0ZQo+Pj4gPiA+Pgo+Pj4gPiA+PiA+PiA+ID4gNC4gb25jZSBwcmV2aW91cyBzdGVwIGlzIG9rLCBkbyB0aGUgZnVsbCBtaWdyYXRpb246IGlmPTIwCj4+PiB0aGVyZSBhcmUKPj4+ID4gPj4gPj4gPiA+IHZvbHVudGVlcnMKPj4+ID4gPj4gPj4gPiA+IGZvciBoZWxwaW5nLCB0aGF0IHdvdWxkIGJlIGdyZWF0LCBzaW5jZSBwb3B1bGF0aW5nIDYwIGdpdD0KPTIwCj4+PiByZXBvcwo+Pj4gPiA+PiA+Pgo+Pj4gPiA+PiA+PiB3b24ndAo+Pj4gPiA+PiA+PiBiZQo+Pj4gPiA+PiA+Pgo+Pj4gPiA+PiA+PiA+ID4gcmVhbGx5IGZ1bi4uLgo+Pj4gPiA+PiA+PiA+ID4KPj4+ID4gPj4gPj4gPiA+IEFuZCBhcyBwYXJ0IG9mIDYwIGVtcHR5IGdpdCByZXBvcyBjcmVhdGlvbiwgSSBwcm9wb3NlIHRvPTIwCj4+PiBtaWdyYXRlCj4+PiA+ID4+Cj4+PiA+ID4+IHRoZQo+Pj4gPiA+Pgo+Pj4gPiA+PiA+PiA+ID4gIkdvb2dsZQo+Pj4gPiA+PiA+PiA+ID4gcmVwbyBtYW5pZmVzdCIgbWF2ZW4tYWdncmVnYXRvciBbNF0gdG8gQVNGOiBteSBwZXJzb25hbD0yMAo+Pj4gdXNlIGhhcwo+Pj4gPiA+Pgo+Pj4gPiA+PiBiZWVuCj4+PiA+ID4+Cj4+PiA+ID4+ID4+IHF1aXRlCj4+PiA+ID4+ID4+Cj4+PiA+ID4+ID4+ID4gPiBzdWNjZXNzZnVsLCBJIGhvcGUgaXQncyB0aGUgc2FtZSBmb3Igb3RoZXJzLiBQZXJoYXBzPTIwCj4+PiB0aGVyZSBhcmUKPj4+ID4gPj4gPj4KPj4+ID4gPj4gPj4gYmV0dGVyCj4+PiA+ID4+ID4+Cj4+PiA+ID4+ID4+ID4gPiBpZGVhcwo+Pj4gPiA+PiA+PiA+ID4gZm9yIGl0cyBuYW1lOiBtYXZlbi1hZ2dyZWdhdG9yCj4+PiA+ID4+ID4+ID4gPgo+Pj4gPiA+PiA+PiA+ID4gQW55IG90aGVyIGlkZWE/IGFueSBvYmplY3Rpb24/Cj4+PiA+ID4+ID4+ID4gPgo+Pj4gPiA+PiA+PiA+ID4gUmVnYXJkcywKPj4+ID4gPj4gPj4gPiA+Cj4+PiA+ID4+ID4+ID4gPiBIZXJ2PUMzPUE5Cj4+PiA+ID4+ID4+ID4gPgo+Pj4gPiA+PiA+PiA+ID4gWzFdPTIwCj4+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC8KPj4+ID4gPj4gPj4gPiA+Cj4+PiA+ID4+ID4+ID4gPiBbMl09MjAKPj4+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4td2lwLwo+Pj4gPiA+PiA+PiA+ID4KPj4+ID4gPj4gPj4gPiA+IFszXQo+Pj4gPiA+Pgo+Pj4gPiA+PiBodHRwczovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy9tYXZlbi9zYW5kYm94L3RydW5rL3NjcmlwdHMvZ2l0Lwo+Pj4gPiA+Pgo+Pj4gPiA+PiA+PiA+ID4gWzRdIGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1hZ2dyZWdhdG9yCj4+PiA+ID4+ID4+Cj4+PiA+ID4+ID4+PTIwCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDE1Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgT2N0ICA3IDAyOjE3OjUxIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDE1Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAwMDQyRTEwNTQ5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMDI6MTc6NTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyMzk5NCBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE9jdCAyMDE3IDAyOjE3OjUwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMzkyNCBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE9jdCAyMDE3IDAyOjE3OjUwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjM5MTEgaW52b2tlZCBieSB1aWQgOTkpOyA3IE9jdCAyMDE3IDAyOjE3OjUwIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwNyBPY3QgMjAxNyAwMjoxNzo1MCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDhEODI1MUEyMjFGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNyBPY3QgMjAxNyAwMjoxNzo0OSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjUKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuNSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsCglLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBtRHVSdmlkMTFadzkgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsICA3IE9jdCAyMDE3IDAyOjE3OjQ3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwMi5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyNF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAwQ0YxMjVGMUJBCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNyBPY3QgMjAxNyAwMjoxNzo0NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ1NiB3aXRoIE1FCglpZCBKU0hsMXcwMDcyMFVmZHkwM1NIbFJVOyBTYXQsIDA3IE9jdCAyMDE3IDA0OjE3OjQ1ICswMjAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFNhdCwgMDcgT2N0IDIwMTcgMDQ6MTc6NDUgKzAyMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogSmVua2lucyBhbmQgTWF2ZW4gMy4wLjUgb3IgSkRLIDcKRGF0ZTogU2F0LCAwNyBPY3QgMjAxNyAwNDoxNzo0NSArMDIwMApNZXNzYWdlLUlEOiA8MjAxNDI2My45aTdsY0Ezakx5QGdpZ2E+ClVzZXItQWdlbnQ6IEtNYWlsLzUuMi4zIChMaW51eC80LjEwLjAtMzUtZ2VuZXJpYzsgS0RFLzUuMzEuMDsgeDg2XzY0OyA7ICkKSW4tUmVwbHktVG86IDxDQUZOQ1UtLTBFWnQ0RUJUeG1BRXN0Ti1mNnFSM3ROS2dESlc2ND1uUXpTNmlTMkI0d2dAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDwxMDU0NDYxNS5CNGhPM1BudkV6QGdpZ2E+IDwxNTIyOTg1Ny5rMUR5QmFSOU5MQGdpZ2E+IDxDQUZOQ1UtLTBFWnQ0RUJUeG1BRXN0Ti1mNnFSM3ROS2dESlc2ND1uUXpTNmlTMkI0d2dAbWFpbC5nbWFpbC5jb20+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKClRoZXJlIGFyZSA2IHN2biBsb2NhdGlvbnMgd2l0aG91dCBhbnkgc3BlY2lhbCBjb21wbGV4aXR5IHRoYXQgYXJlIHdhaXRpbmcgZj0Kb3I9MjAKYSB2b2x1bnRlZXIgZm9yIGdpdCBtaWdyYXRpb24gZm9yIGEgZmV3IHllYXJzIGJ1dCBub2JvZHkgZG9lcyBhbnl0aGluZyBhYm91PQp0Oj0yMApJIHN0YXJ0ZWQgMyBkYXlzIGFnbyB0byBhc2sgZm9yIGhlbHAgYWJvdXQgaXQgYW5kIGdvdCBwcmV0dHkgbm8gZmVlZGJhY2sgWzFdCgp0aGVuIHRoZXJlIGFyZSB0aGUgNCBjb21wbGV4IHN2biBsb2NhdGlvbnMgKHBsdWdpbnMsIHNoYXJlZCwgcmVzb3VyY2VzLCBkb3g9CmlhLQp0b29scykgdGhhdCByZXF1aXJlIG11Y2ggbW9yZSB3b3JrOiBJIHN1cHBvc2Ugd2UgY2FuJ3QgdGVsbCBnaXQgbWlncmF0aW9uIGk9CnM9MjAKYWJhbmRvbmVkLCBidXQgaXQgd2lsbCByZXF1aXJlIHNvbWVvbmUgdG8gd29yayBvbiBpdCBzZXJpb3VzbHkKUmVtZW1iZXIgdGhhdCB0aGUga2V5IHF1ZXN0aW9uIFsyXSBpczogZG8gd2UgdHJhbnNmb3JtIHRoZXNlIDQgc3ZuIGxvY2F0aW9uPQpzPTIwCmludG8gNDEgKzI2ICsgNiArIDUgPTNEIDc4IGluZGVwZW5kZW50IGdpdCByZXBvcz8KWWVzLCBJIHRvbGQgdGhhdCBKZW5raW5zIGNvbmZpZ3VyYXRpb24gaXMgb25lIGtleSBhc3BlY3Qgd2UgbmVlZCBhIHN0cmF0ZWd5PQo9MjAKYWJvdXQsIGluIHBhcmFsbGVsIHdpdGggZ2l0IHN0cmF0ZWd5LgoKdGhlbiB0aGVyZSB3aWxsIGJlIHRoZSByZW1haW5pbmcgY2FzZXMgd2hlcmUgd2UgbmVlZCB0byBkZWNpZGU6IGxvd2VyIGltcGFjPQp0LD0yMApsb3dlciBwcmlvcml0eS4KCgpTdW1tYXJ5OiBub3RoaW5nIGlzIGFiYW5kb25lZCwgYnV0Ogo9MkQgc2ltcGxlIGNhc2VzOiBubyB2b2x1bnRlZXIgdG8gZG8gdGhlIGpvYgo9MkQgaGFyZCBjYXNlczogaXMgdGhlcmUgYSB2b2x1bnRlZXIgZWl0aGVyIHRvIGRlZmluZSBhIHN0cmF0ZWd5IG9yIGRvIHNvbWU9CiB3b3JrPTIwCm9uIGl0PwoKClJlZ2FyZHMsCgpIZXJ2PUMzPUE5CgpbMV0gaHR0cHM6Ly9saXN0cy5hcGFjaGUub3JnL3RocmVhZC5odG1sLwplZGYzNjQyYTdiZGQ1MTVmMGNhZDQyMWMyNTU4OTc0MTgxOTQ0NjQ2MzYxNGJmMDUxNWU1NmRiZUAKJTNDZGV2Lm1hdmVuLmFwYWNoZS5vcmclM0UKClsyXSBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL0dpdAorTWlncmF0aW9uI0dpdE1pZ3JhdGlvbi1NaWdyYXRpbmdhbmFnZ3JlZ2F0b3J0cmVlaW50b2Fjb2xsZWN0aW9ub2ZnaXRyZXBvcwoKTGUgdmVuZHJlZGkgNiBvY3RvYnJlIDIwMTcsIDIwOjM1OjQ1IENFU1QgQXJuYXVkIEg9QzM9QTlyaXRpZXIgYSA9QzM9QTljcml0PQogOgo+IEJ1dCBkaWQgd2UgY29tcGxldGVseSBhYmFuZG9uZWQgdGhlIGlkZWEgb2YgbW92aW5nIGV2ZXJ5dGhpbmcgdG8gZ2l0ID8KPiBUaGUgQ0kgc2V0dXAgd2FzIHRoZSBtYWluIHN0b3AgZm9yIGl0ID8KPj0yMAo+IE9uIEZyaSwgT2N0IDYsIDIwMTcgYXQgODowNSBQTSwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI9Cj4gd3JvdGU6Cj4gPiBJIHdhcyBleHBlY3RpbmcgdGhlIHVzdWFsIGxpdGFueQo+ID49MjAKPiA+IHdoYXQgSSdtIG5vdCBjb25maWRlbnQgY3VycmVudGx5IHdpdGggcGlwZWxpbmUgb24gTWF2ZW4gY29yZSBpcyB0aGF0IHdlCj4gPiBoYXZlCj4gPiBmb3IgZXhhbXBsZSB0aGUgIm1hdmVuLTMueC1qZW5raW5zZmlsZS9NTkctNjI0MiAtIGJ1aWxkICMxIC0gbnVsbCIKPiA+IG1lc3NhZ2UsCj4gPiB3aXRoIHRoaXMgIm51bGwiIHBhcnQgdGhhdCBtYWtlcyBtZSB3b25kZXIgaWYgd2UgYXJlIHVzaW5nIGl0IGFzIGV4cGVjdD0KZWQuCj4gPj0yMAo+ID4gQW5kIGZvciBsYXJnZSBtdWx0aS1tb2R1bGUgc3ZuIHRydW5rcyAodGhlIG9uZXMgd2UgZG9uJ3QgbWlncmF0ZSB0byBnaXQ6Cj4gPiBtYWlubHkgcGx1Z2lucyBhbmQgc2hhcmVkKSwgaXMgdGhlcmUgYSBzb2x1dGlvbiB0byByZWJ1aWxkIGp1c3QgY2hhbmdlZAo+ID4gbW9kdWxlcz8KPiA+PTIwCj4gPiBpZGVhbGx5LCB0aGUgcmVidWlsZCB3aGVuIGEgU05BUFNIT1QgZGVwZW5kZW5jeSBpcyBwdWJsaXNoZWQgd291bGQgaGF2ZQo+ID4gYmVlbiBhCj4gPiBwbHVzLCBidXQgdGhpcyBpcyBzdWZmaWNpZW50bHkgYSByYXJlIHVzZSB0aGF0IEkgd29uJ3QgYmUgZXh0cmVtaXN0Cj4gPj0yMAo+ID49MjAKPiA+IFRoZW4gSUlVQywgdGhpcyBtaWdyYXRpb24gam9iIGlzIG9uZSBhZGRpdGlvbmFsIFRPRE8gZm9yIG1lLi4uCj4gPj0yMAo+ID4gUmVnYXJkcywKPiA+PTIwCj4gPiBIZXJ2PUMzPUE5Cj4gPj0yMAo+ID4gTGUgdmVuZHJlZGkgNiBvY3RvYnJlIDIwMTcsIDE3OjQ2OjUzIENFU1QgQXJuYXVkIEg9QzM9QTlyaXRpZXIgYSA9QzM9QTk9CmNyaXQgOgo+ID4gPiBJIGFncmVlIHRoYXQgd2Ugc2hvdWxkIHVzZSBwaXBlbGluZSBub3dkYXlzCj4gPiA+IHBlcmhhcHMgYSBzaGFyZWQgbGliIGlmIHdlIHdhbnQgdG8gc3RhbmRhcmRpemUgc29tZSBzdHVmZnMgYW5kIGEgc2V0ID0Kb2YKPiA+ID4gbXVsdGktYnJhbmNoZXMgam9icyAob3Igb3JnIGZvbGRlciBidXQgaXQgcmVxdWlyZXMgR2l0SHViIDooICkKPiA+ID49MjAKPiA+ID4gT24gRnJpLCBPY3QgNiwgMjAxNyBhdCA5OjE2IEFNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+ID49MjAKPiA+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+ID4gT24gRnJpIDYgT2N0IDIwMTcgYXQgMDY6MzIsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLj0KZnI+Cj4gPj0yMAo+ID4gd3JvdGU6Cj4gPiA+ID4gPiBJIGp1c3QgZml4ZWQgYSBmZXcgZmFpbGluZyBqb2JzIFsxXSB0byBoYXZlIGFnYWluIGEgdXNhYmxlIEplbmtpbj0Kcy4KPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBOb3cgSSdtIGZhY2luZyBzb21lIGlzc3VlcywgSSBzdXBwb3NlIGNhdXNlZCBieSBuZXdlciBKZW5raW5zCj4gPj0yMAo+ID4gdmVyc2lvbnM6Cj4gPiA+ID4gPiAtIE1hdmVuIDMuMC41IGNhdXNlcyBOb1N1Y2hNZXRob2RFcnJvcjogby5jLnBsZXh1cy51dGlsLnhtbC5wdWxsLgo+ID4gPiA+PTIwCj4gPiA+ID4gTVhQYXJzZXIKPiA+ID4gPj0yMAo+ID4gPiA+ID4gWzJdCj4gPiA+ID4gPiAtIEkgaGFkIHRvIHN3aXRjaCB0byBKREsgOCBmb3IgbWF2ZW4tcGx1Z2luLXRvb2xzIGpvYiwgc2luY2UgSkRLCj4gPj0yMAo+ID4gY2F1c2VzCj4gPj0yMAo+ID4gPiA+ID4gZmFpbHVyZXMgKGxvb2tzIGxpa2UgSmVua2lucyB1c2VzIGEgaGFjayB0byBpbmplY3QgSkRLIDcgYXMgYSB0b29sCj4gPj0yMAo+ID4gd2hpbGUKPiA+PTIwCj4gPiA+ID4gPiB0aGUKPiA+ID4gPiA+IGJ1aWxkIEpWTSBpcyBKYXZhIDgpCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gU2hvdWxkIHdlIGRyb3AgTWF2ZW4gMy4wLjUgYnVpbGRzIGFuZCBKREsgNz8KPiA+ID4gPiA+IE5vdGljZSBJIGRpZG4ndCBjaGVjayB3aGljaCBpcyB0aGUgbWluaW11bSBNYXZlbiB2ZXJzaW9uIHJlcXVpcmVkPQo9MkUuLgo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IE9yIHBlcmhhcHMgc2ltcGx5IGRvbid0IHVzZSB0aGUgSmVua2lucyBNYXZlbiBwbHVnaW4gd2l0aCB0aGlzIE1hPQp2ZW4KPiA+ID4gPj0yMAo+ID4gPiA+IDMuMC41Cj4gPiA+ID49MjAKPiA+ID4gPiA+IG9yCj4gPiA+ID4gPiBKREsgNyBjb25maWd1cmF0aW9uOiBkZWZhdWx0IGJ1aWxkIGFzIEplbmtpbnMgTWF2ZW4gcGx1Z2luIHdpdGggSj0KREsKPiA+PTIwCj4gPiA4ICsKPiA+PTIwCj4gPiA+ID4gPiBsYXRlc3QKPiA+ID4gPiA+IE1hdmVuLCBhbmQgb3RoZXIgY29uZmlndXJhdGlvbnMgYXMgc2NyaXB0ZWQgam9icz8KPiA+ID4gPj0yMAo+ID4gPiA+IGh0dHA6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90LmllLzIwMTMvMTEvamVua2lucy1tYXZlbi1qb2ItPiA+Cj4gPj0yMAo+ID4gdHlwZS1jb25zaWRlcmVkLWV2aWwuaHRtbAo+ID49MjAKPiA+ID4gPiA8aHR0cDovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuaWUvMjAxMy8xMS9qZW5raW5zLT4gPgo+ID49MjAKPiA+IG1hdmVuLWpvYi10eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sP209M0QxPgo+ID49MjAKPiA+ID4gPiBXZSBzaG91bGQgc3RvcCB1c2luZyB0aGUgZXZpbCBqb2IgdHlwZSBhcyBpdD1FMj04MD05OXMgbWluaW11bSBKYXZhPQogdmVyc2lvbiBpcwo+ID4gPiA+IGRpY3RhdGVkIGJ5IEplbmtpbnM9RTI9ODA9OTkgSmF2YSBtaW5pbXVtLgo+ID4gPiA+PTIwCj4gPiA+ID4gPiBXZSBuZWVkIHRvIGRlZmluZSBvdXIgY29tbW9uIHN0cmF0ZWd5IGFuZCBoYXZlIGEgY29uc2lzdGVudAo+ID4gPiA+ID4gY29uZmlndXJhdGlvbgo+ID4gPiA+ID4gZm9yCj4gPiA+ID4gPiBldmVyeSBqb2IgdW5kZXJzdG9vZCBieSBldmVyeWJvZHkKPiA+ID4gPj0yMAo+ID4gPiA+IEkgcmVjb21tZW5kIEplbmtpbnNmaWxlIGFuZCB0aGUgYHdpdGhNYXZlbmAgd3JhcHBlcgo+ID4gPiA+PTIwCj4gPiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IEhlcnY9QzM9QTkKPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBbMV0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuLwo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IFsyXQo+ID4gPiA+ID4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi0+ID4KPiA+ID4gPj0yMAo+ID4gPiA+IHBsdWdpbi10b29scy1qZGstMS43LzE2Mi9jb25zb2xlCj4gPiA+ID49MjAKPiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID49MjAKPiA+IC0tLS0tLS0tLQo+ID49MjAKPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gLS0KPiA+ID4gPj0yMAo+ID4gPiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzODYyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBTZXAgIDMgMjM6MDU6MzMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzODYyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDUwQkEyMTlBQkEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAgMyBTZXAgMjAxNyAyMzowNTozMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE4Nzc3IGludm9rZWQgYnkgdWlkIDUwMCk7IDMgU2VwIDIwMTcgMjM6MDU6MzMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE4NzExIGludm9rZWQgYnkgdWlkIDUwMCk7IDMgU2VwIDIwMTcgMjM6MDU6MzIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxODcwMCBpbnZva2VkIGJ5IHVpZCA5OSk7IDMgU2VwIDIwMTcgMjM6MDU6MzEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDAzIFNlcCAyMDE3IDIzOjA1OjMxICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDBGRTgyRjMyRkM7IFN1biwgIDMgU2VwIDIwMTcgMjM6MDU6MzAgKzAwMDAgKFVUQykKRnJvbTogam9obmt0aW1zIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNTAtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE1MC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzE1MDogU1VSRUZJUkUtMTM3MiBGaWx0ZXIgdGVzdHMgdG8gYmUgcmVydW4gYnkgZGVzY3JpcC4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcwOTAzMjMwNTMxLjBGRTgyRjMyRkNAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFN1biwgIDMgU2VwIDIwMTcgMjM6MDU6MzAgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIGpvaG5rdGltcyBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNTAKICAKICAgIEN1Y3VtYmVyIDIuMC4wIHdhcyByZWxlYXNlZCBhIGZldyBkYXlzIGFnby4KCgotLS0KSWYgeW91ciBwcm9qZWN0IGlzIHNldCB1cCBmb3IgaXQsIHlvdSBjYW4gcmVwbHkgdG8gdGhpcyBlbWFpbCBhbmQgaGF2ZSB5b3VyCnJlcGx5IGFwcGVhciBvbiBHaXRIdWIgYXMgd2VsbC4gSWYgeW91ciBwcm9qZWN0IGRvZXMgbm90IGhhdmUgdGhpcyBmZWF0dXJlCmVuYWJsZWQgYW5kIHdpc2hlcyBzbywgb3IgaWYgdGhlIGZlYXR1cmUgaXMgZW5hYmxlZCBidXQgbm90IHdvcmtpbmcsIHBsZWFzZQpjb250YWN0IGluZnJhc3RydWN0dXJlIGF0IGluZnJhc3RydWN0dXJlQGFwYWNoZS5vcmcgb3IgZmlsZSBhIEpJUkEgdGlja2V0CndpdGggSU5GUkEuCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzODY5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBTZXAgIDUgMDk6MDM6NTQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzODY5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEE4MUMwMUE3NDMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAgNSBTZXAgMjAxNyAwOTowMzo1NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDcwMTYgaW52b2tlZCBieSB1aWQgNTAwKTsgNSBTZXAgMjAxNyAwOTowMzo1NCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjg1NSBpbnZva2VkIGJ5IHVpZCA1MDApOyA1IFNlcCAyMDE3IDA5OjAzOjU0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjg0NCBpbnZva2VkIGJ5IHVpZCA5OSk7IDUgU2VwIDIwMTcgMDk6MDM6NTMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDA1IFNlcCAyMDE3IDA5OjAzOjUzICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDhFMEFERjMzMjY7IFR1ZSwgIDUgU2VwIDIwMTcgMDk6MDM6NTMgKzAwMDAgKFVUQykKRnJvbTogVGlib3IxNyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTUwLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNTAtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIHB1bGwgcmVxdWVzdCAjMTUwOiBTVVJFRklSRS0xMzcyIEZpbHRlciB0ZXN0cyB0byBiZSByZXJ1biBieSAuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MDkwNTA5MDM1My44RTBBREYzMzI2QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBUdWUsICA1IFNlcCAyMDE3IDA5OjAzOjUzICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBUaWJvcjE3IGNvbW1lbnRlZCBvbiBhIGRpZmYgaW4gdGhlIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTUwI2Rpc2N1c3Npb25fcjEzNjkzMTM5OQogIAogICAgLS0tIERpZmY6IHN1cmVmaXJlLWludGVncmF0aW9uLXRlc3RzL3NyYy90ZXN0L3Jlc291cmNlcy9qdW5pdDQ3LXJlcnVuLWZhaWxpbmctdGVzdHMtd2l0aC1jdWN1bWJlci9wb20ueG1sIC0tLQogICAgQEAgLTAsMCArMSw4OCBAQAogICAgKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CiAgICArPCEtLQogICAgKyAgfiBMaWNlbnNlZCB0byB0aGUgQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24gKEFTRikgdW5kZXIgb25lCiAgICArICB+IG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQogICAgKyAgfiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgogICAgKyAgfiByZWdhcmRpbmcgY29weXJpZ2h0IG93bmVyc2hpcC4gIFRoZSBBU0YgbGljZW5zZXMgdGhpcyBmaWxlCiAgICArICB+IHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKICAgICsgIH4gIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQogICAgKyAgfiB3aXRoIHRoZSBMaWNlbnNlLiAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CiAgICArICB+CiAgICArICB+ICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKICAgICsgIH4KICAgICsgIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAogICAgKyAgfiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgogICAgKyAgfiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKICAgICsgIH4gS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiAgICArICB+IHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKICAgICsgIH4gdW5kZXIgdGhlIExpY2Vuc2UuCiAgICArICAtLT4KICAgICsKICAgICs8cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIgogICAgKyAgICAgICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCiAgICArICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAgaHR0cDovL21hdmVuLmFwYWNoZS5vcmcveHNkL21hdmVuLTQuMC4wLnhzZCI+CiAgICArICAgIDxtb2RlbFZlcnNpb24+NC4wLjA8L21vZGVsVmVyc2lvbj4KICAgICsKICAgICsgICAgPHBhcmVudD4KICAgICsgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4uc3VyZWZpcmU8L2dyb3VwSWQ+CiAgICArICAgICAgICA8YXJ0aWZhY3RJZD5pdC1wYXJlbnQ8L2FydGlmYWN0SWQ+CiAgICArICAgICAgICA8dmVyc2lvbj4xLjA8L3ZlcnNpb24+CiAgICArICAgIDwvcGFyZW50PgogICAgKwogICAgKyAgICA8YXJ0aWZhY3RJZD5qdW5pdDQ3LXJlcnVuLWZhaWxpbmctdGVzdHMtd2l0aC1jdWN1bWJlcjwvYXJ0aWZhY3RJZD4KICAgICsgICAgPHBhY2thZ2luZz5qYXI8L3BhY2thZ2luZz4KICAgICsKICAgICsgICAgPG5hbWU+VGVzdCBmb3IgcmVydW4gZmFpbGluZyBjdWN1bWJlciB0ZXN0cyBpbiBKVW5pdCA0NzwvbmFtZT4KICAgICsKICAgICsgICAgPHByb3BlcnRpZXM+CiAgICArICAgICAgICA8Y3VjdW1iZXIudmVyc2lvbj4yLjAuMC1TTkFQU0hPVDwvY3VjdW1iZXIudmVyc2lvbj4KICAgICsgICAgPC9wcm9wZXJ0aWVzPgogICAgKwogICAgKyAgICA8YnVpbGQ+CiAgICArICAgICAgICA8cGx1Z2lucz4KICAgICsgICAgICAgICAgICA8cGx1Z2luPgogICAgKyAgICAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CiAgICArICAgICAgICAgICAgICAgIDxhcnRpZmFjdElkPm1hdmVuLXN1cmVmaXJlLXBsdWdpbjwvYXJ0aWZhY3RJZD4KICAgICsgICAgICAgICAgICAgICAgPHZlcnNpb24+JHtzdXJlZmlyZS52ZXJzaW9ufTwvdmVyc2lvbj4KICAgICsgICAgICAgICAgICAgICAgPGRlcGVuZGVuY2llcz4KICAgICsgICAgICAgICAgICAgICAgICAgIDxkZXBlbmRlbmN5PgogICAgKyAgICAgICAgICAgICAgICAgICAgICAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4uc3VyZWZpcmU8L2dyb3VwSWQ+CiAgICArICAgICAgICAgICAgICAgICAgICAgICAgPGFydGlmYWN0SWQ+c3VyZWZpcmUtanVuaXQ0NzwvYXJ0aWZhY3RJZD4KICAgICsgICAgICAgICAgICAgICAgICAgICAgICA8dmVyc2lvbj4ke3N1cmVmaXJlLnZlcnNpb259PC92ZXJzaW9uPgogICAgKyAgICAgICAgICAgICAgICAgICAgPC9kZXBlbmRlbmN5PgogICAgKyAgICAgICAgICAgICAgICA8L2RlcGVuZGVuY2llcz4KICAgICsgICAgICAgICAgICA8L3BsdWdpbj4KICAgICsgICAgICAgIDwvcGx1Z2lucz4KICAgICsgICAgPC9idWlsZD4KICAgICsKICAgICsgICAgPGRlcGVuZGVuY2llcz4KICAgICsgICAgICAgIDxkZXBlbmRlbmN5PgogICAgKyAgICAgICAgICAgIDxncm91cElkPmp1bml0PC9ncm91cElkPgogICAgKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmp1bml0PC9hcnRpZmFjdElkPgogICAgKyAgICAgICAgICAgIDx2ZXJzaW9uPiR7anVuaXQudmVyc2lvbn08L3ZlcnNpb24+CiAgICArICAgICAgICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgogICAgKyAgICAgICAgPC9kZXBlbmRlbmN5PgogICAgKyAgICAgICAgPGRlcGVuZGVuY3k+CiAgICArICAgICAgICAgICAgPGdyb3VwSWQ+aW8uY3VjdW1iZXI8L2dyb3VwSWQ+CiAgICArICAgICAgICAgICAgPGFydGlmYWN0SWQ+Y3VjdW1iZXItamF2YTwvYXJ0aWZhY3RJZD4KICAgICsgICAgICAgICAgICA8dmVyc2lvbj4ke2N1Y3VtYmVyLnZlcnNpb259PC92ZXJzaW9uPgogICAgKyAgICAgICAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KICAgICsgICAgICAgIDwvZGVwZW5kZW5jeT4KICAgICsgICAgICAgIDxkZXBlbmRlbmN5PgogICAgKyAgICAgICAgICAgIDxncm91cElkPmlvLmN1Y3VtYmVyPC9ncm91cElkPgogICAgKyAgICAgICAgICAgIDxhcnRpZmFjdElkPmN1Y3VtYmVyLWp1bml0PC9hcnRpZmFjdElkPgogICAgKyAgICAgICAgICAgIDx2ZXJzaW9uPiR7Y3VjdW1iZXIudmVyc2lvbn08L3ZlcnNpb24+CiAgICArICAgICAgICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgogICAgKyAgICAgICAgPC9kZXBlbmRlbmN5PgogICAgKyAgICA8L2RlcGVuZGVuY2llcz4KICAgICsKICAgICsgICAgPHJlcG9zaXRvcmllcz4KICAgIC0tLSBFbmQgZGlmZiAtLQogICAgCiAgICBUaGlzIGNhbiBiZSByZW1vdmVkLgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzODcwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBTZXAgIDUgMDk6MDQ6MjEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzODcwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEIwOTA2MUE3NTEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAgNSBTZXAgMjAxNyAwOTowNDoyMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk2NDUgaW52b2tlZCBieSB1aWQgNTAwKTsgNSBTZXAgMjAxNyAwOTowNDoyMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTU2MCBpbnZva2VkIGJ5IHVpZCA1MDApOyA1IFNlcCAyMDE3IDA5OjA0OjIxIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTQwOSBpbnZva2VkIGJ5IHVpZCA5OSk7IDUgU2VwIDIwMTcgMDk6MDQ6MjAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDA1IFNlcCAyMDE3IDA5OjA0OjIwICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIENBRjAwRjMzMjY7IFR1ZSwgIDUgU2VwIDIwMTcgMDk6MDQ6MjAgKzAwMDAgKFVUQykKRnJvbTogVGlib3IxNyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTUwLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNTAtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIHB1bGwgcmVxdWVzdCAjMTUwOiBTVVJFRklSRS0xMzcyIEZpbHRlciB0ZXN0cyB0byBiZSByZXJ1biBieSAuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MDkwNTA5MDQyMC5DQUYwMEYzMzI2QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBUdWUsICA1IFNlcCAyMDE3IDA5OjA0OjIwICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBUaWJvcjE3IGNvbW1lbnRlZCBvbiBhIGRpZmYgaW4gdGhlIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTUwI2Rpc2N1c3Npb25fcjEzNjkzMTUxNQogIAogICAgLS0tIERpZmY6IG1hdmVuLXN1cmVmaXJlLXBsdWdpbi9zcmMvc2l0ZS9hcHQvZXhhbXBsZXMvcmVydW4tZmFpbGluZy10ZXN0cy5hcHQudm0gLS0tCiAgICBAQCAtMTQwLDEwICsxNDAsMTQgQEAgbXZuIC1EJHt0aGlzUGx1Z2luLnRvTG93ZXJDYXNlKCl9LnJlcnVuRmFpbGluZ1Rlc3RzQ291bnQ9MiB0ZXN0CiAgICAgICBUaGUgcHJvdmlkZXIgPDw8c3VyZWZpcmUtanVuaXQ0Pj4+IGV4ZWN1dGVzIGluZGl2aWR1YWwgdGVzdCBjbGFzcyBhbmQgY29uc2VxdWVudGx5IHJlLXJ1bnMgZmFpbGVkIHRlc3RzLgogICAgICAgVGhlIHByb3ZpZGVyIDw8PHN1cmVmaXJlLWp1bml0NDc+Pj4gZXhlY3V0ZXMgYWxsIHRlc3QgY2xhc3NlcyBhbmQgcmUtcnVucyBmYWlsZWQgdGVzdHMgYWZ0ZXJ3YXJkcy4KICAgICAKICAgICsqIFJlLXJ1biBleGVjdXRpb24gaW4gQ3VjdW1iZXIgSlZNCiAgICArCiAgICArICBTaW5jZSBvZiAyLjIxIHRoZSBwcm92aWRlciA8PDxzdXJlZmlyZS1qdW5pdDQ3Pj4+IGNhbiByZXJ1biBzY2VuYXJpb3MgY3JlYXRlZCBieSA8PGN1Y3VtYmVyLWp2bT4+CiAgICArICAyLjAuMC1TTkFQU0hPVCBhbmQgaGlnaGVyLgogICAgLS0tIEVuZCBkaWZmIC0tCiAgICAKICAgIFBscyBjaGFuZ2UgdG8gMi4wLjAgd2l0aG91dCBTTkFQU0hPVC4KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyMzg3MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgU2VwICA1IDA5OjA0OjM0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzg3MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4NzVGNTFBNzU2Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgIDUgU2VwIDIwMTcgMDk6MDQ6MzQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxMDk1NSBpbnZva2VkIGJ5IHVpZCA1MDApOyA1IFNlcCAyMDE3IDA5OjA0OjM0IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMDg4MCBpbnZva2VkIGJ5IHVpZCA1MDApOyA1IFNlcCAyMDE3IDA5OjA0OjM0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTA4NjQgaW52b2tlZCBieSB1aWQgOTkpOyA1IFNlcCAyMDE3IDA5OjA0OjMzIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAwNSBTZXAgMjAxNyAwOTowNDozMyArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBBN0M4M0YzMzI2OyBUdWUsICA1IFNlcCAyMDE3IDA5OjA0OjMzICswMDAwIChVVEMpCkZyb206IFRpYm9yMTcgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE1MC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTUwLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBwdWxsIHJlcXVlc3QgIzE1MDogU1VSRUZJUkUtMTM3MiBGaWx0ZXIgdGVzdHMgdG8gYmUgcmVydW4gYnkgLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzA5MDUwOTA0MzMuQTdDODNGMzMyNkBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogVHVlLCAgNSBTZXAgMjAxNyAwOTowNDozMyArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgVGlib3IxNyBjb21tZW50ZWQgb24gYSBkaWZmIGluIHRoZSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE1MCNkaXNjdXNzaW9uX3IxMzY5MzE1NTIKICAKICAgIC0tLSBEaWZmOiBzdXJlZmlyZS1pbnRlZ3JhdGlvbi10ZXN0cy9zcmMvdGVzdC9yZXNvdXJjZXMvanVuaXQ0Ny1yZXJ1bi1mYWlsaW5nLXRlc3RzLXdpdGgtY3VjdW1iZXIvcG9tLnhtbCAtLS0KICAgIEBAIC0wLDAgKzEsODggQEAKICAgICs8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgogICAgKzwhLS0KICAgICsgIH4gTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQogICAgKyAgfiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKICAgICsgIH4gZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHdvcmsgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KICAgICsgIH4gcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQogICAgKyAgfiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCiAgICArICB+ICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2UKICAgICsgIH4gd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAogICAgKyAgfgogICAgKyAgfiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiAgICArICB+CiAgICArICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKICAgICsgIH4gc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KICAgICsgIH4gIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCiAgICArICB+IEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQogICAgKyAgfiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCiAgICArICB+IHVuZGVyIHRoZSBMaWNlbnNlLgogICAgKyAgLS0+CiAgICArCiAgICArPHByb2plY3QgeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCIKICAgICsgICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgogICAgKyAgICAgICAgIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiPgogICAgKyAgICA8bW9kZWxWZXJzaW9uPjQuMC4wPC9tb2RlbFZlcnNpb24+CiAgICArCiAgICArICAgIDxwYXJlbnQ+CiAgICArICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlPC9ncm91cElkPgogICAgKyAgICAgICAgPGFydGlmYWN0SWQ+aXQtcGFyZW50PC9hcnRpZmFjdElkPgogICAgKyAgICAgICAgPHZlcnNpb24+MS4wPC92ZXJzaW9uPgogICAgKyAgICA8L3BhcmVudD4KICAgICsKICAgICsgICAgPGFydGlmYWN0SWQ+anVuaXQ0Ny1yZXJ1bi1mYWlsaW5nLXRlc3RzLXdpdGgtY3VjdW1iZXI8L2FydGlmYWN0SWQ+CiAgICArICAgIDxwYWNrYWdpbmc+amFyPC9wYWNrYWdpbmc+CiAgICArCiAgICArICAgIDxuYW1lPlRlc3QgZm9yIHJlcnVuIGZhaWxpbmcgY3VjdW1iZXIgdGVzdHMgaW4gSlVuaXQgNDc8L25hbWU+CiAgICArCiAgICArICAgIDxwcm9wZXJ0aWVzPgogICAgKyAgICAgICAgPGN1Y3VtYmVyLnZlcnNpb24+Mi4wLjAtU05BUFNIT1Q8L2N1Y3VtYmVyLnZlcnNpb24+CiAgICAtLS0gRW5kIGRpZmYgLS0KICAgIAogICAgVGhpcyB0b28uCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM4NzItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIFNlcCAgNSAwOTowNzowMiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM4NzItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNDg3MEYxQTc3QwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsICA1IFNlcCAyMDE3IDA5OjA3OjAyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTk1NDAgaW52b2tlZCBieSB1aWQgNTAwKTsgNSBTZXAgMjAxNyAwOTowNzowMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTk0NTcgaW52b2tlZCBieSB1aWQgNTAwKTsgNSBTZXAgMjAxNyAwOTowNzowMSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE5NDQ2IGludm9rZWQgYnkgdWlkIDk5KTsgNSBTZXAgMjAxNyAwOTowNzowMSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMDUgU2VwIDIwMTcgMDk6MDc6MDEgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNUZFRjJGMzMyNjsgVHVlLCAgNSBTZXAgMjAxNyAwOTowNzowMSArMDAwMCAoVVRDKQpGcm9tOiBUaWJvcjE3IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNTAtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE1MC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgcHVsbCByZXF1ZXN0ICMxNTA6IFNVUkVGSVJFLTEzNzIgRmlsdGVyIHRlc3RzIHRvIGJlIHJlcnVuIGJ5IC4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcwOTA1MDkwNzAxLjVGRUYyRjMzMjZAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFR1ZSwgIDUgU2VwIDIwMTcgMDk6MDc6MDEgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIFRpYm9yMTcgY29tbWVudGVkIG9uIGEgZGlmZiBpbiB0aGUgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNTAjZGlzY3Vzc2lvbl9yMTM2OTMyMDYyCiAgCiAgICAtLS0gRGlmZjogc3VyZWZpcmUtcHJvdmlkZXJzL2NvbW1vbi1qdW5pdDQ4L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9zdXJlZmlyZS9jb21tb24vanVuaXQ0OC9GYWlsaW5nTWV0aG9kRmlsdGVyLmphdmEgLS0tCiAgICBAQCAtMSw4NSArMCwwIEBACiAgICAtcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlLmNvbW1vbi5qdW5pdDQ4OwogICAgLQogICAgLS8qCiAgICAtICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQogICAgLSAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQogICAgLSAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCiAgICAtICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQogICAgLSAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKICAgIC0gKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCiAgICAtICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAogICAgLSAqCiAgICAtICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogICAgLSAqCiAgICAtICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAogICAgLSAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCiAgICAtICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCiAgICAtICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiAgICAtICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwogICAgLSAqIHVuZGVyIHRoZSBMaWNlbnNlLgogICAgLSAqLwogICAgLQogICAgLWltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnNoYXJlZC51dGlscy5pby5TZWxlY3RvclV0aWxzOwogICAgLWltcG9ydCBvcmcuanVuaXQucnVubmVyLkRlc2NyaXB0aW9uOwogICAgLWltcG9ydCBvcmcuanVuaXQucnVubmVyLm1hbmlwdWxhdGlvbi5GaWx0ZXI7CiAgICAtCiAgICAtaW1wb3J0IGphdmEudXRpbC5NYXA7CiAgICAtaW1wb3J0IGphdmEudXRpbC5TZXQ7CiAgICAtCiAgICAtLyoqCiAgICAtICogT25seSBydW4gdGVzdCBtZXRob2RzIGluIHRoZSBnaXZlbiBpbnB1dCBtYXAsIGluZGV4ZWQgYnkgdGVzdCBjbGFzcwogICAgLSAqLwogICAgLWZpbmFsIGNsYXNzIEZhaWxpbmdNZXRob2RGaWx0ZXIKICAgIC0tLSBFbmQgZGlmZiAtLQogICAgCiAgICBJIGRvbid0IHRoaW5rIHRoaXMgY2FuIGJlIHJlbW92ZWQuIEkgaGF2ZSB0byBjaGVjayB0aGUgYWxnb3JpdGhtcyBvZiBGYWlsaW5nTWV0aG9kRmlsdGVyIGFuZCBNYXRjaE1ldGhvZERlc2NyaXB0aW9ucy4KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyMzg3My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgU2VwICA1IDA5OjA3OjUxIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzg3My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFQTAxRTFBNzg3Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgIDUgU2VwIDIwMTcgMDk6MDc6NTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyMjg4OSBpbnZva2VkIGJ5IHVpZCA1MDApOyA1IFNlcCAyMDE3IDA5OjA3OjUwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMjgxMSBpbnZva2VkIGJ5IHVpZCA1MDApOyA1IFNlcCAyMDE3IDA5OjA3OjUwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjI4MDAgaW52b2tlZCBieSB1aWQgOTkpOyA1IFNlcCAyMDE3IDA5OjA3OjUwIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAwNSBTZXAgMjAxNyAwOTowNzo1MCArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCAwMjU2M0YzMzI2OyBUdWUsICA1IFNlcCAyMDE3IDA5OjA3OjUwICswMDAwIChVVEMpCkZyb206IFRpYm9yMTcgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE1MC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTUwLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBwdWxsIHJlcXVlc3QgIzE1MDogU1VSRUZJUkUtMTM3MiBGaWx0ZXIgdGVzdHMgdG8gYmUgcmVydW4gYnkgLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzA5MDUwOTA3NTAuMDI1NjNGMzMyNkBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogVHVlLCAgNSBTZXAgMjAxNyAwOTowNzo1MCArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgVGlib3IxNyBjb21tZW50ZWQgb24gYSBkaWZmIGluIHRoZSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE1MCNkaXNjdXNzaW9uX3IxMzY5MzIyNTYKICAKICAgIC0tLSBEaWZmOiBzdXJlZmlyZS1wcm92aWRlcnMvY29tbW9uLWp1bml0NDgvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3N1cmVmaXJlL2NvbW1vbi9qdW5pdDQ4L01hdGNoTWV0aG9kRGVzY3JpcHRpb25zLmphdmEgLS0tCiAgICBAQCAtMCwwICsxLDc0IEBACiAgICArcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlLmNvbW1vbi5qdW5pdDQ4OwogICAgKwogICAgKy8qCiAgICArICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQogICAgKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQogICAgKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCiAgICArICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQogICAgKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKICAgICsgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCiAgICArICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAogICAgKyAqCiAgICArICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogICAgKyAqCiAgICArICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAogICAgKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCiAgICArICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCiAgICArICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiAgICArICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwogICAgKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgogICAgKyAqLwogICAgKwogICAgK2ltcG9ydCBvcmcuanVuaXQucnVubmVyLkRlc2NyaXB0aW9uOwogICAgK2ltcG9ydCBvcmcuanVuaXQucnVubmVyLm1hbmlwdWxhdGlvbi5GaWx0ZXI7CiAgICArCiAgICAraW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CiAgICAraW1wb3J0IGphdmEudXRpbC5MaXN0OwogICAgKwogICAgKy8qKgogICAgKyAqIE9ubHkgcnVuIHRlc3QgbWV0aG9kcyBpbiB0aGUgZ2l2ZW4gZmFpbHVyZSBzZXQKICAgICsgKgogICAgKyAqIEBhdXRob3IgbXBrb3JzdGFuamUKICAgICsgKi8KICAgICtmaW5hbCBjbGFzcyBNYXRjaE1ldGhvZERlc2NyaXB0aW9ucwogICAgKyAgICBleHRlbmRzIEZpbHRlcgogICAgK3sKICAgICsKICAgICsgICAgcHJpdmF0ZSBmaW5hbCBMaXN0PEZpbHRlcj4gZmlsdGVycyA9IG5ldyBBcnJheUxpc3Q8RmlsdGVyPigpOwogICAgKwogICAgKyAgICBNYXRjaE1ldGhvZERlc2NyaXB0aW9ucyggSXRlcmFibGU8RGVzY3JpcHRpb24+IGRlc2NyaXB0aW9ucyApCiAgICArICAgIHsKICAgICsgICAgICAgIGZvciAoIERlc2NyaXB0aW9uIGRlc2NyaXB0aW9uIDogZGVzY3JpcHRpb25zICkKICAgICsgICAgICAgIHsKICAgICsgICAgICAgICAgICBmaWx0ZXJzLmFkZCggbWF0Y2hNZXRob2REZXNjcmlwdGlvbiAoIGRlc2NyaXB0aW9uICkgKTsKICAgICsgICAgICAgIH0KICAgICsgICAgfQogICAgKwogICAgKyAgICBAT3ZlcnJpZGUKICAgICsgICAgcHVibGljIGJvb2xlYW4gc2hvdWxkUnVuKCBEZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiApCiAgICArICAgIHsKICAgICsgICAgICAgIGZvciAoIEZpbHRlciBmaWx0ZXIgOiBmaWx0ZXJzICkKICAgICsgICAgICAgIHsKICAgICsgICAgICAgICAgICBpZiAoIGZpbHRlci5zaG91bGRSdW4oIGRlc2NyaXB0aW9uICkgKQogICAgKyAgICAgICAgICAgIHsKICAgICsgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICArICAgICAgICAgICAgfQogICAgKyAgICAgICAgfQogICAgKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgKyAgICB9CiAgICArCiAgICArICAgIEBPdmVycmlkZQogICAgKyAgICBwdWJsaWMgU3RyaW5nIGRlc2NyaWJlKCkKICAgICsgICAgewogICAgKyAgICAgICAgU3RyaW5nQnVpbGRlciBkZXNjcmlwdGlvbiA9IG5ldyBTdHJpbmdCdWlsZGVyKCAiTWF0Y2hpbmcgZGVzY3JpcHRpb24gIiApOwogICAgKyAgICAgICAgZm9yICggaW50IGkgPSAwOyBpIDwgZmlsdGVycy5zaXplKCk7IGkrKyApCiAgICArICAgICAgICB7CiAgICArICAgICAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kKCBmaWx0ZXJzLmdldCggaSApLmRlc2NyaWJlKCkgKTsKICAgICsgICAgICAgICAgICBpZiAoIGkgIT0gZmlsdGVycy5zaXplKCkgLSAxICkKICAgICsgICAgICAgICAgICB7CiAgICArICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZCggIiBPUiAiICk7CiAgICArICAgICAgICAgICAgfQogICAgKyAgICAgICAgfQogICAgKyAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uLnRvU3RyaW5nKCk7CiAgICArICAgIH0KICAgICt9CiAgICAtLS0gRW5kIGRpZmYgLS0KICAgIAogICAgSGVyZSBhIG5ldyBsaW5lIHNob3VsZCBiZSBhZGRlZC4KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyMzg3NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgU2VwICA1IDA5OjA4OjM1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzg3NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBCRUU4NDFBN0E2Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgIDUgU2VwIDIwMTcgMDk6MDg6MzUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyODk4MSBpbnZva2VkIGJ5IHVpZCA1MDApOyA1IFNlcCAyMDE3IDA5OjA4OjM1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyODg5NCBpbnZva2VkIGJ5IHVpZCA1MDApOyA1IFNlcCAyMDE3IDA5OjA4OjM1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjg4ODMgaW52b2tlZCBieSB1aWQgOTkpOyA1IFNlcCAyMDE3IDA5OjA4OjM0IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAwNSBTZXAgMjAxNyAwOTowODozNCArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBDNDBFNUYzMzI2OyBUdWUsICA1IFNlcCAyMDE3IDA5OjA4OjM0ICswMDAwIChVVEMpCkZyb206IFRpYm9yMTcgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE1MC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTUwLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBwdWxsIHJlcXVlc3QgIzE1MDogU1VSRUZJUkUtMTM3MiBGaWx0ZXIgdGVzdHMgdG8gYmUgcmVydW4gYnkgLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzA5MDUwOTA4MzQuQzQwRTVGMzMyNkBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogVHVlLCAgNSBTZXAgMjAxNyAwOTowODozNCArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgVGlib3IxNyBjb21tZW50ZWQgb24gYSBkaWZmIGluIHRoZSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE1MCNkaXNjdXNzaW9uX3IxMzY5MzI0ODcKICAKICAgIC0tLSBEaWZmOiBzdXJlZmlyZS1wcm92aWRlcnMvY29tbW9uLWp1bml0NDgvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3N1cmVmaXJlL2NvbW1vbi9qdW5pdDQ4L01hdGNoTWV0aG9kRGVzY3JpcHRpb25zLmphdmEgLS0tCiAgICBAQCAtMCwwICsxLDc0IEBACiAgICArcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlLmNvbW1vbi5qdW5pdDQ4OwogICAgKwogICAgKy8qCiAgICArICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQogICAgKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQogICAgKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCiAgICArICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQogICAgKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKICAgICsgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCiAgICArICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAogICAgKyAqCiAgICArICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogICAgKyAqCiAgICArICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAogICAgKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCiAgICArICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCiAgICArICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiAgICArICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwogICAgKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgogICAgKyAqLwogICAgKwogICAgK2ltcG9ydCBvcmcuanVuaXQucnVubmVyLkRlc2NyaXB0aW9uOwogICAgK2ltcG9ydCBvcmcuanVuaXQucnVubmVyLm1hbmlwdWxhdGlvbi5GaWx0ZXI7CiAgICArCiAgICAraW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CiAgICAraW1wb3J0IGphdmEudXRpbC5MaXN0OwogICAgKwogICAgKy8qKgogICAgKyAqIE9ubHkgcnVuIHRlc3QgbWV0aG9kcyBpbiB0aGUgZ2l2ZW4gZmFpbHVyZSBzZXQKICAgICsgKgogICAgKyAqIEBhdXRob3IgbXBrb3JzdGFuamUKICAgICsgKi8KICAgICtmaW5hbCBjbGFzcyBNYXRjaE1ldGhvZERlc2NyaXB0aW9ucwogICAgKyAgICBleHRlbmRzIEZpbHRlcgogICAgK3sKICAgICsKICAgICsgICAgcHJpdmF0ZSBmaW5hbCBMaXN0PEZpbHRlcj4gZmlsdGVycyA9IG5ldyBBcnJheUxpc3Q8RmlsdGVyPigpOwogICAgKwogICAgKyAgICBNYXRjaE1ldGhvZERlc2NyaXB0aW9ucyggSXRlcmFibGU8RGVzY3JpcHRpb24+IGRlc2NyaXB0aW9ucyApCiAgICArICAgIHsKICAgICsgICAgICAgIGZvciAoIERlc2NyaXB0aW9uIGRlc2NyaXB0aW9uIDogZGVzY3JpcHRpb25zICkKICAgICsgICAgICAgIHsKICAgICsgICAgICAgICAgICBmaWx0ZXJzLmFkZCggbWF0Y2hNZXRob2REZXNjcmlwdGlvbiAoIGRlc2NyaXB0aW9uICkgKTsKICAgICsgICAgICAgIH0KICAgICsgICAgfQogICAgKwogICAgKyAgICBAT3ZlcnJpZGUKICAgICsgICAgcHVibGljIGJvb2xlYW4gc2hvdWxkUnVuKCBEZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiApCiAgICArICAgIHsKICAgICsgICAgICAgIGZvciAoIEZpbHRlciBmaWx0ZXIgOiBmaWx0ZXJzICkKICAgIC0tLSBFbmQgZGlmZiAtLQogICAgCiAgICBUaGlzIGxvb3AgaXMgZGlmZmVyZW50IGZyb20gdGhlIGRlbGV0ZWQgY2xhc3MgYnV0IEkgbmVlZCB0byBoYXZlIHNwYXJlIHRpbWUgdG8gaGF2ZSBkZWVwIGxvb2tpbmcuCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM4NzUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIFNlcCAgNSAwOTowOTo1NCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM4NzUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQzMwOEIxQTdCQQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsICA1IFNlcCAyMDE3IDA5OjA5OjU0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzQ1NTQgaW52b2tlZCBieSB1aWQgNTAwKTsgNSBTZXAgMjAxNyAwOTowOTo1NCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzQ0NjcgaW52b2tlZCBieSB1aWQgNTAwKTsgNSBTZXAgMjAxNyAwOTowOTo1NCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM0NDU2IGludm9rZWQgYnkgdWlkIDk5KTsgNSBTZXAgMjAxNyAwOTowOTo1MyAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMDUgU2VwIDIwMTcgMDk6MDk6NTMgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgRDlFMTNGMzMyNjsgVHVlLCAgNSBTZXAgMjAxNyAwOTowOTo1MyArMDAwMCAoVVRDKQpGcm9tOiBUaWJvcjE3IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNTAtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE1MC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgcHVsbCByZXF1ZXN0ICMxNTA6IFNVUkVGSVJFLTEzNzIgRmlsdGVyIHRlc3RzIHRvIGJlIHJlcnVuIGJ5IC4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcwOTA1MDkwOTUzLkQ5RTEzRjMzMjZAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFR1ZSwgIDUgU2VwIDIwMTcgMDk6MDk6NTMgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIFRpYm9yMTcgY29tbWVudGVkIG9uIGEgZGlmZiBpbiB0aGUgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNTAjZGlzY3Vzc2lvbl9yMTM2OTMyNzU1CiAgCiAgICAtLS0gRGlmZjogc3VyZWZpcmUtcHJvdmlkZXJzL2NvbW1vbi1qdW5pdDQ4L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9zdXJlZmlyZS9jb21tb24vanVuaXQ0OC9GYWlsaW5nTWV0aG9kRmlsdGVyLmphdmEgLS0tCiAgICBAQCAtMSw4NSArMCwwIEBACiAgICAtcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlLmNvbW1vbi5qdW5pdDQ4OwogICAgLQogICAgLS8qCiAgICAtICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQogICAgLSAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQogICAgLSAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCiAgICAtICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQogICAgLSAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKICAgIC0gKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCiAgICAtICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAogICAgLSAqCiAgICAtICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogICAgLSAqCiAgICAtICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAogICAgLSAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCiAgICAtICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCiAgICAtICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiAgICAtICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwogICAgLSAqIHVuZGVyIHRoZSBMaWNlbnNlLgogICAgLSAqLwogICAgLQogICAgLWltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnNoYXJlZC51dGlscy5pby5TZWxlY3RvclV0aWxzOwogICAgLWltcG9ydCBvcmcuanVuaXQucnVubmVyLkRlc2NyaXB0aW9uOwogICAgLWltcG9ydCBvcmcuanVuaXQucnVubmVyLm1hbmlwdWxhdGlvbi5GaWx0ZXI7CiAgICAtCiAgICAtaW1wb3J0IGphdmEudXRpbC5NYXA7CiAgICAtaW1wb3J0IGphdmEudXRpbC5TZXQ7CiAgICAtCiAgICAtLyoqCiAgICAtICogT25seSBydW4gdGVzdCBtZXRob2RzIGluIHRoZSBnaXZlbiBpbnB1dCBtYXAsIGluZGV4ZWQgYnkgdGVzdCBjbGFzcwogICAgLSAqLwogICAgLWZpbmFsIGNsYXNzIEZhaWxpbmdNZXRob2RGaWx0ZXIKICAgIC0tLSBFbmQgZGlmZiAtLQogICAgCiAgICBCZWZvcmUgZGVsZXRpbmcgYSBjbGFzcywgdGVzdHMgd2l0aCBoaWdoIGNvdmVyYWdlIHNob3VsZCBiZSBhZGRlZCBhbmQgbmV3IGltcGxlbWVudGF0aW9uIHNob3VsZCBwYXNzIG9uIHRoZW0uCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM4ODItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIFNlcCAgNiAyMTowMjo0MSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM4ODItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQjJFNzcxQUU3QgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsICA2IFNlcCAyMDE3IDIxOjAyOjQxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjQzMzUgaW52b2tlZCBieSB1aWQgNTAwKTsgNiBTZXAgMjAxNyAyMTowMjo0MCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjQyMTQgaW52b2tlZCBieSB1aWQgNTAwKTsgNiBTZXAgMjAxNyAyMTowMjo0MCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI0MTgwIGludm9rZWQgYnkgdWlkIDk5KTsgNiBTZXAgMjAxNyAyMTowMjo0MCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMDYgU2VwIDIwMTcgMjE6MDI6NDAgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgQTg3RDNFMEFGNjsgV2VkLCAgNiBTZXAgMjAxNyAyMTowMjozOSArMDAwMCAoVVRDKQpGcm9tOiBUaWJvcjE3IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNjQtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE2NC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzE2NDogU1VSRUZJUkUtMTM4MzogU3BsaXQgSVQ1NjkgaW4gdG8gbXVsdGlwbGUgbGlmZWN5Yy4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcwOTA2MjEwMjM5LkE4N0QzRTBBRjZAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFdlZCwgIDYgU2VwIDIwMTcgMjE6MDI6MzkgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIFRpYm9yMTcgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY0CiAgCiAgICBAb3dlbmZhcnJlbGwgCiAgICBTb3JyeSBJIGNvdWxkIG5vdCBoYXZlIGEgbG9vay4gSSB3YXMgYnVzeS4gTm93IEkgd2FudCB0byBmaW5pc2ggbXkgY29kZSBhbmQgb3BlbiBpdCBmb3IgY29udHJpYnV0aW9uLgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzODg5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBTZXAgIDcgMjI6MjM6MTIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzODg5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEEzQTNFMUE4QTgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAgNyBTZXAgMjAxNyAyMjoyMzoxMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQzMTc4IGludm9rZWQgYnkgdWlkIDUwMCk7IDcgU2VwIDIwMTcgMjI6MjM6MTIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQzMDk4IGludm9rZWQgYnkgdWlkIDUwMCk7IDcgU2VwIDIwMTcgMjI6MjM6MTIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0MjgyMyBpbnZva2VkIGJ5IHVpZCA5OSk7IDcgU2VwIDIwMTcgMjI6MjM6MTEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDA3IFNlcCAyMDE3IDIyOjIzOjExICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDUwODEyRjU1NjY7IFRodSwgIDcgU2VwIDIwMTcgMjI6MjM6MTAgKzAwMDAgKFVUQykKRnJvbTogVGlib3IxNyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTE0LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xMTQtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxMTQ6IFBhcmFsbGVsIHJ1bm5lciBzaG91bGQgbm90IGRyb3AgYXdheSBydW5uZXJzIHRoYXQuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MDkwNzIyMjMxMC41MDgxMkY1NTY2QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBUaHUsICA3IFNlcCAyMDE3IDIyOjIzOjEwICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBUaWJvcjE3IGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzExNAogIAogICAgaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9TVVJFRklSRS0xNDA5CgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM5MDItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIFNlcCAgOCAyMToxMDoxOSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5MDItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMEJDMEMxQUMyRAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksICA4IFNlcCAyMDE3IDIxOjEwOjE5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDE2MTggaW52b2tlZCBieSB1aWQgNTAwKTsgOCBTZXAgMjAxNyAyMToxMDoxOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDE1NTAgaW52b2tlZCBieSB1aWQgNTAwKTsgOCBTZXAgMjAxNyAyMToxMDoxOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQxNTM4IGludm9rZWQgYnkgdWlkIDk5KTsgOCBTZXAgMjAxNyAyMToxMDoxNyAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMDggU2VwIDIwMTcgMjE6MTA6MTcgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgQjk1NTBFMEFGNjsgRnJpLCAgOCBTZXAgMjAxNyAyMToxMDoxNyArMDAwMCAoVVRDKQpGcm9tOiBUaWJvcjE3IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xMTQtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTExNC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzExNDogUGFyYWxsZWwgcnVubmVyIHNob3VsZCBub3QgZHJvcCBhd2F5IHJ1bm5lcnMgdGhhdC4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcwOTA4MjExMDE3LkI5NTUwRTBBRjZAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IEZyaSwgIDggU2VwIDIwMTcgMjE6MTA6MTcgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIFRpYm9yMTcgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTE0CiAgCiAgICBARnV1ZCAKICAgIFRoaXMgYnJhbmNoIHdhcyByZWJhc2VkIGFuZCBwdXNoZWQgdG8gbWFzdGVyLiBQbGVhc2UgY2xvc2UgaXQuCiAgICBUaHggZm9yIGNvbnRyaWJ1dGluZy4KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyMzkwMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgU2VwICA4IDIxOjI1OjE4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzkwMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBCQzFGRjFBQ0QxCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgIDggU2VwIDIwMTcgMjE6MjU6MTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3ODk4MCBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IFNlcCAyMDE3IDIxOjI1OjE4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3ODg4NyBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IFNlcCAyMDE3IDIxOjI1OjE4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzg4NzYgaW52b2tlZCBieSB1aWQgOTkpOyA4IFNlcCAyMDE3IDIxOjI1OjE4IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAwOCBTZXAgMjAxNyAyMToyNToxOCArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCA2RjQ0QkUwQUY2OyBGcmksICA4IFNlcCAyMDE3IDIxOjI1OjE3ICswMDAwIChVVEMpCkZyb206IFRpYm9yMTcgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE1OS1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTU5LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBpc3N1ZSAjMTU5OiBTVVJFRklSRS0xMzkxOiBFbGltaW5hdGUgcmVkdW5kYW50IGNhbGwgaW4gY2FsY3VsLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzA5MDgyMTI1MTcuNkY0NEJFMEFGNkBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogRnJpLCAgOCBTZXAgMjAxNyAyMToyNToxNyArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgVGlib3IxNyBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNTkKICAKICAgIEBhbmRyZXctai1jb2hlbgogICAgV2UgZG8gbm90IGhhdmUgcmlnaHRzIHRvIGNsb3NlIHRoaXMgaXNzdWUuIFBsZWFzZSBjbG9zZSBpdCEKCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyMzkwNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgU2VwICA4IDIxOjI4OjEzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzkwNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBEMjk4RTFBRDA2Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgIDggU2VwIDIwMTcgMjE6Mjg6MTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4ODE5MCBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IFNlcCAyMDE3IDIxOjI4OjEzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4ODEyMSBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IFNlcCAyMDE3IDIxOjI4OjEzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODgxMTAgaW52b2tlZCBieSB1aWQgOTkpOyA4IFNlcCAyMDE3IDIxOjI4OjEzIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAwOCBTZXAgMjAxNyAyMToyODoxMyArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCAxQTU0NkY1NTY4OyBGcmksICA4IFNlcCAyMDE3IDIxOjI4OjEzICswMDAwIChVVEMpCkZyb206IFRpYm9yMTcgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE0MS1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTQxLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBpc3N1ZSAjMTQxOiBTVVJFRklSRS0xMzMxOiBCdW1wIHZlcnNpb24gbnVtYmVyIGZvciAzLjAuMCByZWxlLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzA5MDgyMTI4MTMuMUE1NDZGNTU2OEBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogRnJpLCAgOCBTZXAgMjAxNyAyMToyODoxMyArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgVGlib3IxNyBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNDEKICAKICAgIEBicml0dGVyIAogICAgSSB0aGluayB0aGlzIHdhcyBmb3Jnb3R0ZW4uIFNob3VsZCBJIHByb2Nlc3MgaXQ/CgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM5MDUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIFNlcCAgOCAyMTozNTo1MSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5MDUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMzBEOUUxQUQ1NQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksICA4IFNlcCAyMDE3IDIxOjM1OjUxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDkxMyBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IFNlcCAyMDE3IDIxOjM1OjUwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0ODM3IGludm9rZWQgYnkgdWlkIDUwMCk7IDggU2VwIDIwMTcgMjE6MzU6NDkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0ODI1IGludm9rZWQgYnkgdWlkIDk5KTsgOCBTZXAgMjAxNyAyMTozNTo0OSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMDggU2VwIDIwMTcgMjE6MzU6NDkgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNEJGQjZGNTVBNzsgRnJpLCAgOCBTZXAgMjAxNyAyMTozNTo0OSArMDAwMCAoVVRDKQpGcm9tOiBUaWJvcjE3IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNDMtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE0My1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzE0MzogbWF2ZW4tc3VyZWZpcmUtcGFyc2VyOiBhZGQgbmV3IG1ldGhvZCBpc0Vycm9yIGluIC4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcwOTA4MjEzNTQ5LjRCRkI2RjU1QTdAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IEZyaSwgIDggU2VwIDIwMTcgMjE6MzU6NDkgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIFRpYm9yMTcgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTQzCiAgCiAgICBAc3VybGkgCiAgICBZb3UgaGF2ZSBub3QgYW5zd2VyZWQgbXkgcXVlc3Rpb25zIHlldC4gTGV0J3MgZG8gaXQgbm93IGFib3V0IG1ha2luZyByZWxlYXNlcy4gUmVnaXN0ZXIgaW4gSmlyYSBhbmQgb3BlbiBpc3N1ZSBpbiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL1NVUkVGSVJFLiBUaGUgbWVzc2FnZSBvZiB0aGUgY29tbWl0IHNob3VsZCBiZSByZW5hbWVkIHRvIHNvbWV0aGluZyBsaWtlOgogICAgYFtTVVJFRklSRS0xMjM0NV0gU2FtZSBpc3N1ZSB0aXRsZSBhcyBpbiBHaXRIdWJgLgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzOTA2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBTZXAgIDggMjE6Mzk6MTYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTA2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEFDNTUyMUFEOEYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAgOCBTZXAgMjAxNyAyMTozOToxNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE5MDQ3IGludm9rZWQgYnkgdWlkIDUwMCk7IDggU2VwIDIwMTcgMjE6Mzk6MTYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE4OTUwIGludm9rZWQgYnkgdWlkIDUwMCk7IDggU2VwIDIwMTcgMjE6Mzk6MTUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxODkyNSBpbnZva2VkIGJ5IHVpZCA5OSk7IDggU2VwIDIwMTcgMjE6Mzk6MTUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDA4IFNlcCAyMDE3IDIxOjM5OjE1ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIERGMzU0RjU1QTc7IEZyaSwgIDggU2VwIDIwMTcgMjE6Mzk6MTQgKzAwMDAgKFVUQykKRnJvbTogVGlib3IxNyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTYzLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNjMtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIHB1bGwgcmVxdWVzdCAjMTYzOiBTdXJlZmlyZS1yZXBvcnQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MDkwODIxMzkxNC5ERjM1NEY1NUE3QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBGcmksICA4IFNlcCAyMDE3IDIxOjM5OjE0ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBUaWJvcjE3IGNvbW1lbnRlZCBvbiBhIGRpZmYgaW4gdGhlIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTYzI2Rpc2N1c3Npb25fcjEzNzg5NTM5NQogIAogICAgLS0tIERpZmY6IG1hdmVuLXN1cmVmaXJlLXJlcG9ydC1wbHVnaW4vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvc3VyZWZpcmUvcmVwb3J0L0Fic3RyYWN0U3VyZWZpcmVSZXBvcnRNb2pvLmphdmEgLS0tCiAgICBAQCAtMzQsMTMgKzI3LDIxIEBACiAgICAgaW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uc2hhcmVkLnV0aWxzLlBhdGhUb29sOwogICAgIGltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnNoYXJlZC51dGlscy5TdHJpbmdVdGlsczsKICAgICAKICAgICtpbXBvcnQgamF2YS5pby5GaWxlOwogICAgK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OwogICAgK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlzOwogICAgK2ltcG9ydCBqYXZhLnV0aWwuSXRlcmF0b3I7CiAgICAraW1wb3J0IGphdmEudXRpbC5MaXN0OwogICAgK2ltcG9ydCBqYXZhLnV0aWwuTG9jYWxlOwogICAgK2ltcG9ydCBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU7CiAgICArCiAgICAgLyoqCiAgICAgICogQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3IgcmVwb3J0aW5nIHRlc3QgcmVzdWx0cyB1c2luZyBTdXJlZmlyZS4KICAgICAgKgogICAgICAqIEBhdXRob3IgU3RlcGhlbiBDb25ub2xseQogICAgICAqLwogICAgIHB1YmxpYyBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFN1cmVmaXJlUmVwb3J0TW9qbwogICAgLSAgICBleHRlbmRzIEFic3RyYWN0TWF2ZW5SZXBvcnQKICAgICsgICAgICAgIGV4dGVuZHMgQWJzdHJhY3RNYXZlblJlcG9ydAogICAgLS0tIEVuZCBkaWZmIC0tCiAgICAKICAgIERvIG5vdCBjaGFuZ2UgbGluZXMgb25seSBiZWNhdXNlIG9mIGNoZWNrc3R5bGUuIERvIGl0IGFnYWluIGFuZCBmaXggb25seSBsaW5lcyBmb3IgdGhlIHB1cnBvc2Ugb2YgdGhpcyBpc3N1ZSBvbmx5LgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzOTA3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBTZXAgIDggMjE6NDI6NTMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTA3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDk4RURCMUFEQUIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAgOCBTZXAgMjAxNyAyMTo0Mjo1MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI3NDE5IGludm9rZWQgYnkgdWlkIDUwMCk7IDggU2VwIDIwMTcgMjE6NDI6NDggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI3MzUwIGludm9rZWQgYnkgdWlkIDUwMCk7IDggU2VwIDIwMTcgMjE6NDI6NDcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNzMzNiBpbnZva2VkIGJ5IHVpZCA5OSk7IDggU2VwIDIwMTcgMjE6NDI6NDcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDA4IFNlcCAyMDE3IDIxOjQyOjQ3ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDk1MDIzRjU1QTc7IEZyaSwgIDggU2VwIDIwMTcgMjE6NDI6NDcgKzAwMDAgKFVUQykKRnJvbTogVGlib3IxNyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTYzLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNjMtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNjM6IFN1cmVmaXJlLXJlcG9ydApDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcwOTA4MjE0MjQ3Ljk1MDIzRjU1QTdAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IEZyaSwgIDggU2VwIDIwMTcgMjE6NDI6NDcgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIFRpYm9yMTcgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTYzCiAgCiAgICBAc2hhZml1bGxhcyAKICAgIFJlZ2lzdGVyIGluIEppcmEgYW5kIG9wZW4gaXNzdWUgaW4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9TVVJFRklSRS4gVGhlIG1lc3NhZ2Ugb2YgdGhlIGNvbW1pdCBhbmQgR2l0SHViIGlzc3VlIHNob3VsZCBiZSByZW5hbWVkIHRvIHNvbWV0aGluZyBsaWtlOgogICAgW1NVUkVGSVJFLTEyMzQ1XSBTYW1lIGlzc3VlIHRpdGxlIGFzIGN1cnJlbnQgR2l0SHViLgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzOTA4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBTZXAgIDggMjE6NDM6MTAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTA4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDlEMTE3MUFEQjEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAgOCBTZXAgMjAxNyAyMTo0MzoxMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI4NDU1IGludm9rZWQgYnkgdWlkIDUwMCk7IDggU2VwIDIwMTcgMjE6NDM6MTAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI4MzI3IGludm9rZWQgYnkgdWlkIDUwMCk7IDggU2VwIDIwMTcgMjE6NDM6MTAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyODMxNiBpbnZva2VkIGJ5IHVpZCA5OSk7IDggU2VwIDIwMTcgMjE6NDM6MDkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDA4IFNlcCAyMDE3IDIxOjQzOjA5ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIEQxNjlBRjU1QTc7IEZyaSwgIDggU2VwIDIwMTcgMjE6NDM6MDkgKzAwMDAgKFVUQykKRnJvbTogVGlib3IxNyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTYzLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNjMtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNjM6IFN1cmVmaXJlLXJlcG9ydApDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcwOTA4MjE0MzA5LkQxNjlBRjU1QTdAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IEZyaSwgIDggU2VwIDIwMTcgMjE6NDM6MDkgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIFRpYm9yMTcgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTYzCiAgCiAgICBAc2hhZml1bGxhcyAKICAgIFBsZWFzZSByZWJhc2UgeW91ciBicmFuY2guCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM5MTMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IFNlcCAgOSAxMjo0NDozMyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5MTMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgM0U1MDUxOTJERAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICA5IFNlcCAyMDE3IDEyOjQ0OjMzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODU1MTYgaW52b2tlZCBieSB1aWQgNTAwKTsgOSBTZXAgMjAxNyAxMjo0NDozMiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODU0MjcgaW52b2tlZCBieSB1aWQgNTAwKTsgOSBTZXAgMjAxNyAxMjo0NDozMSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg1NDE2IGludm9rZWQgYnkgdWlkIDk5KTsgOSBTZXAgMjAxNyAxMjo0NDozMSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDkgU2VwIDIwMTcgMTI6NDQ6MzEgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgN0I0NzlFMzYxQzsgU2F0LCAgOSBTZXAgMjAxNyAxMjo0NDozMCArMDAwMCAoVVRDKQpGcm9tOiBhbmRyZXctai1jb2hlbiA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTU5LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNTktbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIHB1bGwgcmVxdWVzdCAjMTU5OiBTVVJFRklSRS0xMzkxOiBFbGltaW5hdGUgcmVkdW5kYW50IGNhbGwgaW4uLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MDkwOTEyNDQzMC43QjQ3OUUzNjFDQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBTYXQsICA5IFNlcCAyMDE3IDEyOjQ0OjMwICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBhbmRyZXctai1jb2hlbiBjbG9zZWQgdGhlIHB1bGwgcmVxdWVzdCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTU5CgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM5MTctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IFNlcCAgOSAxOTozODowMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5MTctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQTk4QjMxOUI2QwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICA5IFNlcCAyMDE3IDE5OjM4OjAxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTcwODEgaW52b2tlZCBieSB1aWQgNTAwKTsgOSBTZXAgMjAxNyAxOTozODowMCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTcwMDQgaW52b2tlZCBieSB1aWQgNTAwKTsgOSBTZXAgMjAxNyAxOTozODowMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk2OTkzIGludm9rZWQgYnkgdWlkIDk5KTsgOSBTZXAgMjAxNyAxOTozODowMCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDkgU2VwIDIwMTcgMTk6Mzg6MDAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBGMkYwNjE4Q0EzOAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDkgU2VwIDIwMTcgMTk6Mzc6NTkgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIE1WUEdWeHBEWUd5SiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgIDkgU2VwIDIwMTcgMTk6Mzc6NTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZGQxNzMzMi5rYXNzZXJ2ZXIuY29tIChkZDE3MzMyLmthc3NlcnZlci5jb20gWzg1LjEzLjEzOC4yNl0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAzQTVBNzYwRTE3Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgOSBTZXAgMjAxNyAxOTozNzo1OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBkZDE3MzMyLmthc3NlcnZlci5jb20gKGRkMDgwMi5rYXNzZXJ2ZXIuY29tIFs4NS4xMy4xNDMuMV0pCglieSBkZDE3MzMyLmthc3NlcnZlci5jb20gKFBvc3RmaXgpIHdpdGggRVNNVFBTQSBpZCBERkE4RDI5QzAxNDA7CglTYXQsICA5IFNlcCAyMDE3IDIxOjM3OjUwICswMjAwIChDRVNUKQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0ClgtU2VuZGVySVA6IDk2LjU0LjIzNy4xClVzZXItQWdlbnQ6IEFMTC1JTktMIFdlYm1haWwgMi4xMQpJbi1SZXBseS1UbzogPDdmNjI3NzYxLTI2MmYtZWQwZC0xNDMyLWUyZjMwNWFhYmM3YUBnbXguZGU+ClJlZmVyZW5jZXM6IDw3ZjYyNzc2MS0yNjJmLWVkMGQtMTQzMi1lMmYzMDVhYWJjN2FAZ214LmRlPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIEpNb2QgUGx1Z2luIHZlcnNpb24gMy4wLjAtYWxwaGEtMSAoRmlyc3QgUHVibGljIFJlbGVhc2UpCkZyb206ICJNYW5mcmVkIE1vc2VyIiA8bWFuZnJlZEBzaW1wbGlnaWxpdHkuY29tPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcsIGRldkBtYXZlbi5hcGFjaGUub3JnLCBpbmZvQHNvZWJlcy5kZQpNZXNzYWdlLUlkOiA8MjAxNzA5MDkxOTM3NTAuREZBOEQyOUMwMTQwQGRkMTczMzIua2Fzc2VydmVyLmNvbT4KRGF0ZTogU2F0LCAgOSBTZXAgMjAxNyAyMTozNzo1MCArMDIwMCAoQ0VTVCkKCisxIAoKU2hpcCBpdC4gCgpLYXJsIEhlaW56IE1hcmJhaXNlIHdyb3RlIG9uIDIwMTctMDktMDkgMDY6NTI6Cgo+IEhpLAo+IAo+IHRoaXMgaXMgdGhlIFZPVEUgZm9yIHRoZSBmaXJzdCBwdWJsaWMgcmVsZWFzZSBmb3IgTWF2ZW4gSk1vZCBQbHVnaW4uLi4KPiAKPiBXZSBzb2x2ZWQgMSBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMyMTQzMyZ2ZXJzaW9uPTEyMzQxMzYzCj4gCj4gVGhlcmUgYXJlIGN1cnJlbnRseSBubyBpc3N1ZXMgbGVmdCBpbiBKSVJBLgo+IAo+IElmIHlvdSBoYXZlIGFueSBpc3N1ZSB0byByZXBvcnQgcGxlYXNlIG9wZW4gYW4gaXNzdWUgaW4gSklSQQo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9wcm9qZWN0cy9NSk1PRAo+IAo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzYxLwo+IAo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL21hdmVuLWptb2QtcGx1Z2luLzMuMC4wLWFscGhhLTEvbWF2ZW4tam1vZC1wbHVnaW4tMy4wLjAtYWxwaGEtMS1zb3VyY2UtcmVsZWFzZS56aXAKPiAKPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBbTkFNRS1PRl0tc291cmNlLXJlbGVhc2UuemlwIHNoYTE6IDgwMDI3NjdmNmNmZmM3YmJiY2Y3NmE4ZTdmMGMxNzk5YTQyY2FmOTMKPiAKPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tam1vZC1wbHVnaW4tTEFURVNULwo+IAo+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCj4gCj4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPiAKPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPiAKPiBLaW5kIHJlZ2FyZHMKPiBLYXJsIEhlaW56IE1hcmJhaXNlCj4gCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzOTUwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBTZXAgMTEgMDQ6MDI6NTUgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTUwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDE3QTVCMUE3MDcKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAwNDowMjo1NSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDYxNTgwIGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDA0OjAyOjQ5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MTUwMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAwNDowMjo0OSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYxNDc0IGludm9rZWQgYnkgdWlkIDk5KTsgMTEgU2VwIDIwMTcgMDQ6MDI6NDggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDExIFNlcCAyMDE3IDA0OjAyOjQ4ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIERDQ0Y5RjU1Q0I7IE1vbiwgMTEgU2VwIDIwMTcgMDQ6MDI6NDcgKzAwMDAgKFVUQykKRnJvbTogRnV1ZCA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTE0LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xMTQtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxMTQ6IFBhcmFsbGVsIHJ1bm5lciBzaG91bGQgbm90IGRyb3AgYXdheSBydW5uZXJzIHRoYXQuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MDkxMTA0MDI0Ny5EQ0NGOUY1NUNCQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBNb24sIDExIFNlcCAyMDE3IDA0OjAyOjQ3ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBGdXVkIGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzExNAogIAogICAgVGhhbmsgeW91LgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzOTUxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBTZXAgMTEgMDQ6MDI6NTAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTUxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDkzQ0E4MUE3MDIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAwNDowMjo1MCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDYyMzc4IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDA0OjAyOjUwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MjI5NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAwNDowMjo1MCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYxNDg5IGludm9rZWQgYnkgdWlkIDk5KTsgMTEgU2VwIDIwMTcgMDQ6MDI6NDkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDExIFNlcCAyMDE3IDA0OjAyOjQ5ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDJGNDM1RTBBRjY7IE1vbiwgMTEgU2VwIDIwMTcgMDQ6MDI6NDcgKzAwMDAgKFVUQykKRnJvbTogRnV1ZCA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTE0LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xMTQtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIHB1bGwgcmVxdWVzdCAjMTE0OiBQYXJhbGxlbCBydW5uZXIgc2hvdWxkIG5vdCBkcm9wIGF3YXkgcnVubmUuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MDkxMTA0MDI0OC4yRjQzNUUwQUY2QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBNb24sIDExIFNlcCAyMDE3IDA0OjAyOjQ3ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBGdXVkIGNsb3NlZCB0aGUgcHVsbCByZXF1ZXN0IGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xMTQKCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyMzk1Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gU2VwIDExIDA4OjI1OjMyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzk1Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFNjVENTE5MDRECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMDg6MjU6MzEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxNTgxNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAwODoyNTozMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTU3NDkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgU2VwIDIwMTcgMDg6MjU6MzEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNTczOCBpbnZva2VkIGJ5IHVpZCA5OSk7IDExIFNlcCAyMDE3IDA4OjI1OjMxIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAxMSBTZXAgMjAxNyAwODoyNTozMSArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCAwRkUxMkY1NUU3OyBNb24sIDExIFNlcCAyMDE3IDA4OjI1OjI5ICswMDAwIChVVEMpCkZyb206IHN1cmxpIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNDMtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE0My1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzE0MzogbWF2ZW4tc3VyZWZpcmUtcGFyc2VyOiBhZGQgbmV3IG1ldGhvZCBpc0Vycm9yIGluIC4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcwOTExMDgyNTMwLjBGRTEyRjU1RTdAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IE1vbiwgMTEgU2VwIDIwMTcgMDg6MjU6MjkgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIHN1cmxpIGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE0MwogIAogICAgSGkgQFRpYm9yMTcgc29ycnkgSSBtaXNzZWQgeW91ciBwcmV2aW91cyByZXZpZXcsIEknbGwgbWFrZSBjaGFuZ2VzIGluIHRoZSBjb21pbmcgZGF5cyBhbmQgb3BlbiB0aGUgaXNzdWUgb24gSklSQQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzOTU5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBTZXAgMTEgMDg6NDg6NTcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTU5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEFDRUQyMTkxMzYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAwODo0ODo1NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDYwODQzIGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDA4OjQ4OjU3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MDc0NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAwODo0ODo1NyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYwNzI0IGludm9rZWQgYnkgdWlkIDk5KTsgMTEgU2VwIDIwMTcgMDg6NDg6NTYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDExIFNlcCAyMDE3IDA4OjQ4OjU2ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIEQwOERFRjU2NEI7IE1vbiwgMTEgU2VwIDIwMTcgMDg6NDg6NTYgKzAwMDAgKFVUQykKRnJvbTogc3VybGkgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE0My1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTQzLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBwdWxsIHJlcXVlc3QgIzE0MzogbWF2ZW4tc3VyZWZpcmUtcGFyc2VyOiBhZGQgbmV3IG1ldGhvZCBpc0VyLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzA5MTEwODQ4NTYuRDA4REVGNTY0QkBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogTW9uLCAxMSBTZXAgMjAxNyAwODo0ODo1NiArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgc3VybGkgY29tbWVudGVkIG9uIGEgZGlmZiBpbiB0aGUgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNDMjZGlzY3Vzc2lvbl9yMTM4MDEyMjQ3CiAgCiAgICAtLS0gRGlmZjogc3VyZWZpcmUtcmVwb3J0LXBhcnNlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9zdXJlZmlyZS9yZXBvcnQvVGVzdFN1aXRlWG1sUGFyc2VyLmphdmEgLS0tCiAgICBAQCAtMTk2LDcgKzE5Niw4IEBAIGVsc2UgaWYgKCAiZmFpbHVyZSIuZXF1YWxzKCBxTmFtZSApICkKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICggImVycm9yIi5lcXVhbHMoIHFOYW1lICkgKQogICAgICAgICAgICAgICAgICAgICB7CiAgICAtICAgICAgICAgICAgICAgICAgICB0ZXN0Q2FzZS5zZXRGYWlsdXJlKCBhdHRyaWJ1dGVzLmdldFZhbHVlKCAibWVzc2FnZSIgKSwgYXR0cmlidXRlcy5nZXRWYWx1ZSggInR5cGUiICkgKTsKICAgICsgICAgICAgICAgICAgICAgICAgIHRlc3RDYXNlLnNldEZhaWx1cmUoIGF0dHJpYnV0ZXMuZ2V0VmFsdWUoICJtZXNzYWdlIiApLCBhdHRyaWJ1dGVzLmdldFZhbHVlKCAidHlwZSIgKSApCiAgICAtLS0gRW5kIGRpZmYgLS0KICAgIAogICAgPiBJZiBoYXZpbmcgYW4gZXJyb3IsIHRoZW4gZmFpbHVyZSBhbmQgZXJyb3IgYXJlIHNldCBib3RoLiBXaHk/CiAgICAKICAgIEFuIGVycm9yIGlzIGEgc3BlY2lmaWMga2luZCBvZiBmYWlsdXJlOiBpZiBJIHN0YXJ0IHRvIGludHJvZHVjZSBlcnJvciBkZXRhaWxzLCB0aGVuIEkgc2hvdWxkIGFsc28gYWRkIGVycm9yIHR5cGUsIG1lc3NhZ2UsIGxpbmUsIGFuZCBJJ2xsIGdvdCBldmVyeSBmaWVsZCBvZiBgUmVwb3J0VGVzdENhc2VgIGR1cGxpY2F0ZWQuIE15IHB1cnBvc2Ugd2FzIHRvIGtlZXAgdGhlIGZpZWxkIG9mIGBSZXBvcnRUZXN0Q2FzZWAgdG8gcmVwb3J0IHRoZSBpbmZvcm1hdGlvbiBhcm91bmQgdGhlIGZhaWx1cmUsIGJ1dCB0byBiZSBhYmxlIHRvIGZsYWcgaXQgYXMgYW4gZXJyb3IgaW5zdGVhZCBvZiBhIGZhaWx1cmUuIAoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzOTYyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBTZXAgMTEgMDk6MDI6NDQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTYyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEU5OTJEMTkyMUEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAwOTowMjo0MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk3OTU4IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDA5OjAyOjQzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5Nzg2MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAwOTowMjo0MiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk3ODQ4IGludm9rZWQgYnkgdWlkIDk5KTsgMTEgU2VwIDIwMTcgMDk6MDI6NDEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDExIFNlcCAyMDE3IDA5OjAyOjQxICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIEVGNDM2RjU2MTc7IE1vbiwgMTEgU2VwIDIwMTcgMDk6MDI6NDAgKzAwMDAgKFVUQykKRnJvbTogc3VybGkgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE0My1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTQzLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBwdWxsIHJlcXVlc3QgIzE0MzogbWF2ZW4tc3VyZWZpcmUtcGFyc2VyOiBhZGQgbmV3IG1ldGhvZCBpc0VyLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzA5MTEwOTAyNDAuRUY0MzZGNTYxN0BnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogTW9uLCAxMSBTZXAgMjAxNyAwOTowMjo0MCArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgc3VybGkgY29tbWVudGVkIG9uIGEgZGlmZiBpbiB0aGUgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNDMjZGlzY3Vzc2lvbl9yMTM4MDE1NTEwCiAgCiAgICAtLS0gRGlmZjogc3VyZWZpcmUtcmVwb3J0LXBhcnNlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9zdXJlZmlyZS9yZXBvcnQvUmVwb3J0VGVzdENhc2UuamF2YSAtLS0KICAgIEBAIC0xNTYsNiArMTU4LDE1IEBAIHB1YmxpYyBib29sZWFuIGhhc0ZhaWx1cmUoKQogICAgICAgICAgICAgcmV0dXJuIGhhc0ZhaWx1cmU7CiAgICAgICAgIH0KICAgICAKICAgICsgICAgcHVibGljIGJvb2xlYW4gaXNFcnJvcigpIHsKICAgIC0tLSBFbmQgZGlmZiAtLQogICAgCiAgICA+IFlvdSBhcmUgbm90IGNhbGxpbmcgdGhlIGdldHRlciBpbiBTdXJlZmlyZVJlcG9ydEdlbmVyYXRvcgogICAgCiAgICBJIGp1c3QgY29tbWl0dGVkIHNvbWV0aGluZyBpbiB0aGF0IGRpcmVjdGlvbiBidXQgbm90IHN1cmUgYWJvdXQgdGhlIG1vZGlmaWNhdGlvbiBvZiB0aGUgSUQgaW4gdGhlIGdlbmVyYXRlZCByZXBvcnQuLi4gCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM5NjMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIFNlcCAxMSAwOTowNzozOCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5NjMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQzlDRkQxOTI0MwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDA5OjA3OjM4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzUwOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAwOTowNzozOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzQ0NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAwOTowNzozNyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM0MzYgaW52b2tlZCBieSB1aWQgOTkpOyAxMSBTZXAgMjAxNyAwOTowNzozNyAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMTEgU2VwIDIwMTcgMDk6MDc6MzcgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgODE4MTNGNTYxNzsgTW9uLCAxMSBTZXAgMjAxNyAwOTowNzozNyArMDAwMCAoVVRDKQpGcm9tOiBLcm9BcnRlbSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTQxLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNDEtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNDE6IFNVUkVGSVJFLTEzMzE6IEJ1bXAgdmVyc2lvbiBudW1iZXIgZm9yIDMuMC4wIHJlbGUuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MDkxMTA5MDczNy44MTgxM0Y1NjE3QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBNb24sIDExIFNlcCAyMDE3IDA5OjA3OjM3ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBLcm9BcnRlbSBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNDEKICAKICAgIE5vdCBzdXJlIGFib3V0IDMuMCBzdHVmZiBidXQgMi4yMC4xIHdpdGggbGFzdCBmaXhlcyBpcyBoaWdobHkgZm9ydGhjb21pbmcuIPCfmIMgCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM5ODEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIFNlcCAxMSAxOTo0MDoxNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5ODEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRjBCNEMxQUJENwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDE5OjQwOjE1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTMyMTYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgU2VwIDIwMTcgMTk6NDA6MTUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUzMTM3IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDE5OjQwOjE1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTMxMjYgaW52b2tlZCBieSB1aWQgOTkpOyAxMSBTZXAgMjAxNyAxOTo0MDoxNSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMTEgU2VwIDIwMTcgMTk6NDA6MTUgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgRTgwRUJGNTc2OTsgTW9uLCAxMSBTZXAgMjAxNyAxOTo0MDoxNCArMDAwMCAoVVRDKQpGcm9tOiBtcGtvcnN0YW5qZSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTUwLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNTAtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIHB1bGwgcmVxdWVzdCAjMTUwOiBTVVJFRklSRS0xMzcyIEZpbHRlciB0ZXN0cyB0byBiZSByZXJ1biBieSAuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MDkxMTE5NDAxNC5FODBFQkY1NzY5QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBNb24sIDExIFNlcCAyMDE3IDE5OjQwOjE0ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBtcGtvcnN0YW5qZSBjb21tZW50ZWQgb24gYSBkaWZmIGluIHRoZSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE1MCNkaXNjdXNzaW9uX3IxMzgxNzA1MzUKICAKICAgIC0tLSBEaWZmOiBzdXJlZmlyZS1wcm92aWRlcnMvY29tbW9uLWp1bml0NDgvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3N1cmVmaXJlL2NvbW1vbi9qdW5pdDQ4L01hdGNoTWV0aG9kRGVzY3JpcHRpb25zLmphdmEgLS0tCiAgICBAQCAtMCwwICsxLDc0IEBACiAgICArcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlLmNvbW1vbi5qdW5pdDQ4OwogICAgKwogICAgKy8qCiAgICArICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQogICAgKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQogICAgKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCiAgICArICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQogICAgKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKICAgICsgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCiAgICArICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAogICAgKyAqCiAgICArICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogICAgKyAqCiAgICArICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAogICAgKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCiAgICArICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCiAgICArICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiAgICArICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwogICAgKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgogICAgKyAqLwogICAgKwogICAgK2ltcG9ydCBvcmcuanVuaXQucnVubmVyLkRlc2NyaXB0aW9uOwogICAgK2ltcG9ydCBvcmcuanVuaXQucnVubmVyLm1hbmlwdWxhdGlvbi5GaWx0ZXI7CiAgICArCiAgICAraW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CiAgICAraW1wb3J0IGphdmEudXRpbC5MaXN0OwogICAgKwogICAgKy8qKgogICAgKyAqIE9ubHkgcnVuIHRlc3QgbWV0aG9kcyBpbiB0aGUgZ2l2ZW4gZmFpbHVyZSBzZXQKICAgICsgKgogICAgKyAqIEBhdXRob3IgbXBrb3JzdGFuamUKICAgICsgKi8KICAgICtmaW5hbCBjbGFzcyBNYXRjaE1ldGhvZERlc2NyaXB0aW9ucwogICAgKyAgICBleHRlbmRzIEZpbHRlcgogICAgK3sKICAgICsKICAgICsgICAgcHJpdmF0ZSBmaW5hbCBMaXN0PEZpbHRlcj4gZmlsdGVycyA9IG5ldyBBcnJheUxpc3Q8RmlsdGVyPigpOwogICAgKwogICAgKyAgICBNYXRjaE1ldGhvZERlc2NyaXB0aW9ucyggSXRlcmFibGU8RGVzY3JpcHRpb24+IGRlc2NyaXB0aW9ucyApCiAgICArICAgIHsKICAgICsgICAgICAgIGZvciAoIERlc2NyaXB0aW9uIGRlc2NyaXB0aW9uIDogZGVzY3JpcHRpb25zICkKICAgICsgICAgICAgIHsKICAgICsgICAgICAgICAgICBmaWx0ZXJzLmFkZCggbWF0Y2hNZXRob2REZXNjcmlwdGlvbiAoIGRlc2NyaXB0aW9uICkgKTsKICAgICsgICAgICAgIH0KICAgICsgICAgfQogICAgKwogICAgKyAgICBAT3ZlcnJpZGUKICAgICsgICAgcHVibGljIGJvb2xlYW4gc2hvdWxkUnVuKCBEZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiApCiAgICArICAgIHsKICAgICsgICAgICAgIGZvciAoIEZpbHRlciBmaWx0ZXIgOiBmaWx0ZXJzICkKICAgIC0tLSBFbmQgZGlmZiAtLQogICAgCiAgICBgTWF0Y2hNZXRob2REZXNjcmlwdGlvbnNgIGlzIGNyZWF0ZWQgd2l0aCBhIGxpc3Qgb2YgZmFpbGVkIHRlc3QgZGVzY3JpcHRpb25zLiBGYWlsaW5nTWV0aG9kRmlsdGVyIHdhcyBjcmVhdGVkIHdpdGggYSBsaXN0IG9mIGZhaWxlZCBjbGFzcy1tZXRob2QgdHVwbGVzLgogICAgCiAgICBXaGVuIGBzaG91bGRSdW5gIGlzIGNhbGxlZCB0aGUgYEZhaWxpbmdNZXRob2RGaWx0ZXJgIHdvdWxkIHJlY3Vyc2UgZG93biB0aGUgZGVzY3JpcHRpb24gdHJlZSB0byBmaW5kIGEgbGVhdmUgKGEgdGVzdCBjYXNlKS4gIEZvciBlYWNoIGxlYXZlIGl0IHVzZXMgdGhlIGNsYXNzIG9mIHRoZSBkZXNjcmlwdGlvbiB0byBmaW5kIHRoZSBzZXQgb2YgZmFpbGVkIG1ldGhvZHMgZm9yIHRoYXQgY2xhc3MuIFRoZW4gaXQgdGVzdHMgaWYgdGhlIHNldCBvZiBmYWlsZWQgbWV0aG9kcyBjb250YWluIHRoZSBtZXRob2Qgb2YgdGhlIGRlc2NyaXB0aW9uLiBJZiBzbyBpdCByZXR1cm5zIHRydWUgYW5kIHRoZSB0ZXN0IHNob3VsZCBiZSByZXJ1bi4KICAgIAogICAgV2hlbiBgc2hvdWxkUnVuYCBpcyBjYWxsZWQgdGhlIGBNYXRjaE1ldGhvZERlc2NyaXB0aW9uc2Agd2lsbCBjaGVjayBmb3IgZWFjaCBmYWlsZWQtdGVzdC1kZXNjcmlwdGlvbiBpZiBpdCBjYW4gYmUgZm91bmQgaW4gdGhlIHRoZSB0cmVlIG9mIGRlc2NyaXB0aW9ucy4gVGhpcyBpcyBkb25lIGJ5IGRlbGVnYXRpbmcgdGhlIHJlY3Vyc2l2ZSBkZXNjZW50IHNlYXJjaCB0byBgRmlsdGVyI21hdGNoTWV0aG9kRGVzY3JpcHRpb25gLiBgbWF0Y2hNZXRob2REZXNjcmlwdGlvbmAgcmVjdXJzZXMgdW50aWwgaXQgZmluZHMgYSBsZWF2ZSwgd2hlbiBmb3VuZCBpdCBjb21wYXJlcyBkZXNjcmlwdGlvbnMuCiAgICAKICAgIFRoaXMgc2hvdWxkIGV4cGxhaW4gd2hlcmUgdGhlIHJlY3Vyc2lvbiBoYXMgYmVlbiByZW1vdmVkLgogICAgCgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzOTgyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBTZXAgMTEgMTk6NDI6MTQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTgyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDQ3REE2MUFCRUUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAxOTo0MjoxNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDU4MjQ3IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDE5OjQyOjEzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1ODE3MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAxOTo0MjoxMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU3ODc5IGludm9rZWQgYnkgdWlkIDk5KTsgMTEgU2VwIDIwMTcgMTk6NDI6MTMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDExIFNlcCAyMDE3IDE5OjQyOjEzICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIEFDRTQzRjU3Njk7IE1vbiwgMTEgU2VwIDIwMTcgMTk6NDI6MTIgKzAwMDAgKFVUQykKRnJvbTogbXBrb3JzdGFuamUgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE1MC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTUwLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBpc3N1ZSAjMTUwOiBTVVJFRklSRS0xMzcyIEZpbHRlciB0ZXN0cyB0byBiZSByZXJ1biBieSBkZXNjcmlwLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzA5MTExOTQyMTIuQUNFNDNGNTc2OUBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogTW9uLCAxMSBTZXAgMjAxNyAxOTo0MjoxMiArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgbXBrb3JzdGFuamUgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTUwCiAgCiAgICBJJ2xsIHRyeSB0byBhZGRyZXNzIHRoZSBtaW5vciBjaGFuZ2VzIHNvb248c3VwPnRtPC9zdXA+LgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzOTg1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBTZXAgMTEgMjI6NDE6MDAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTg1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDUxQjJEMTk1MjgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAyMjo0MTowMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDczODkwIGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDIyOjQwOjU5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MzgwOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAyMjo0MDo1OSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDczNzg2IGludm9rZWQgYnkgdWlkIDk5KTsgMTEgU2VwIDIwMTcgMjI6NDA6NTkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDExIFNlcCAyMDE3IDIyOjQwOjU5ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIERBNzZBRjU3Njk7IE1vbiwgMTEgU2VwIDIwMTcgMjI6NDA6NTggKzAwMDAgKFVUQykKRnJvbTogZGVqYW4yNjA5IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xMjktbWF2ZW5AZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTEyOS1tYXZlbkBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4gaXNzdWUgIzEyOTogW01ORy02MjgyXSBqYW5zaSBkb3duZ3JhZGVkIGZyb20gMS4xNiB0byAxLjE1IGluIG9yZGVyIHRvIC4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcwOTExMjI0MDU4LkRBNzZBRjU3NjlAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IE1vbiwgMTEgU2VwIDIwMTcgMjI6NDA6NTggKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIGRlamFuMjYwOSBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vcHVsbC8xMjkKICAKICAgIENsb3NlZCBhcyBwZXIgY29udmVyc2F0aW9uIHdpdGggQGhib3V0ZW15IG9uIEpJUkEsIHNlZSB0aGlzIFtjb21tZW50XShodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MjgyP2ZvY3VzZWRDb21tZW50SWQ9MTYxNjE5NzcmcGFnZT1jb20uYXRsYXNzaWFuLmppcmEucGx1Z2luLnN5c3RlbS5pc3N1ZXRhYnBhbmVsczpjb21tZW50LXRhYnBhbmVsI2NvbW1lbnQtMTYxNjE5NzcpLgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzOTg2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBTZXAgMTEgMjI6NDE6MDUgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTg2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDAwOUIwMTk1MzUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAyMjo0MTowNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDc0MTcyIGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDIyOjQxOjAwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MzgxMiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAyMjo0MDo1OSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDczNzk3IGludm9rZWQgYnkgdWlkIDk5KTsgMTEgU2VwIDIwMTcgMjI6NDA6NTkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDExIFNlcCAyMDE3IDIyOjQwOjU5ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDRGNkFERjU3Njk7IE1vbiwgMTEgU2VwIDIwMTcgMjI6NDA6NTkgKzAwMDAgKFVUQykKRnJvbTogZGVqYW4yNjA5IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xMjktbWF2ZW5AZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTEyOS1tYXZlbkBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4gcHVsbCByZXF1ZXN0ICMxMjk6IFtNTkctNjI4Ml0gamFuc2kgZG93bmdyYWRlZCBmcm9tIDEuMTYgdG8gMS4xNSBpbiBvci4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcwOTExMjI0MDU5LjRGNkFERjU3NjlAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IE1vbiwgMTEgU2VwIDIwMTcgMjI6NDA6NTkgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIGRlamFuMjYwOSBjbG9zZWQgdGhlIHB1bGwgcmVxdWVzdCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL3B1bGwvMTI5CgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM5OTAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIFNlcCAxMiAwODoxNjoxMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5OTAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQjBCN0MxQTU1MgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDEyIFNlcCAyMDE3IDA4OjE2OjEwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzM5NjYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTIgU2VwIDIwMTcgMDg6MTY6MTAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMzODgxIGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIFNlcCAyMDE3IDA4OjE2OjEwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzM4NjkgaW52b2tlZCBieSB1aWQgOTkpOyAxMiBTZXAgMjAxNyAwODoxNjowOSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMTIgU2VwIDIwMTcgMDg6MTY6MDkgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNzM1MzBGNTU0MDsgVHVlLCAxMiBTZXAgMjAxNyAwODoxNjowNyArMDAwMCAoVVRDKQpGcm9tOiBLcm9BcnRlbSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTQxLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNDEtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNDE6IFNVUkVGSVJFLTEzMzE6IEJ1bXAgdmVyc2lvbiBudW1iZXIgZm9yIDMuMC4wIHJlbGUuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MDkxMjA4MTYwOC43MzUzMEY1NTQwQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBUdWUsIDEyIFNlcCAyMDE3IDA4OjE2OjA3ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBLcm9BcnRlbSBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNDEKICAKICAgIFdlbGwsIDMuMCBhbHNvIGJlY29tZXMgaGlnaGx5IGFwcHJlY2lhdGVkIGFzIEpVbml0IDUgd2FzIG9mZmljaWFsbHkgcmVsZWFzZWQgcmVjZW50bHkuCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM5OTMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIFNlcCAxMiAwOToyMjo1NiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5OTMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRDhCRkMxQTdBNAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDEyIFNlcCAyMDE3IDA5OjIyOjU2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODcwNDAgaW52b2tlZCBieSB1aWQgNTAwKTsgMTIgU2VwIDIwMTcgMDk6MjI6NTYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg2OTUyIGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIFNlcCAyMDE3IDA5OjIyOjU2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODY5NDEgaW52b2tlZCBieSB1aWQgOTkpOyAxMiBTZXAgMjAxNyAwOToyMjo1NSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMTIgU2VwIDIwMTcgMDk6MjI6NTUgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNzhGM0VGNTcxRDsgVHVlLCAxMiBTZXAgMjAxNyAwOToyMjo1NCArMDAwMCAoVVRDKQpGcm9tOiBicml0dGVyIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNDEtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE0MS1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzE0MTogU1VSRUZJUkUtMTMzMTogQnVtcCB2ZXJzaW9uIG51bWJlciBmb3IgMy4wLjAgcmVsZS4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcwOTEyMDkyMjU0Ljc4RjNFRjU3MURAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFR1ZSwgMTIgU2VwIDIwMTcgMDk6MjI6NTQgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIGJyaXR0ZXIgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTQxCiAgCiAgICBAVGlib3IxNyBJJ20gbm90IHdvcmtpbmcgb24gdGhlIDMuMCBicmFuY2ggYW55IG1vcmUuIEl0J3MgdXAgdG8geW91LiBJIHRoaW5rIHRoZSAzLjAgYnJhbmNoIHNob3VsZCBoYXZlIHZlcnNpb24gMy4wLgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzOTk0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBTZXAgMTIgMTg6MTg6NDQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTk0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDM2MkE4MUFGQkQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAxMiBTZXAgMjAxNyAxODoxODo0NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDMxMDgzIGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIFNlcCAyMDE3IDE4OjE4OjQzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMTAwNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMiBTZXAgMjAxNyAxODoxODo0MyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMwOTk0IGludm9rZWQgYnkgdWlkIDk5KTsgMTIgU2VwIDIwMTcgMTg6MTg6NDIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDEyIFNlcCAyMDE3IDE4OjE4OjQyICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDlFNTU2RjU3REQ7IFR1ZSwgMTIgU2VwIDIwMTcgMTg6MTg6NDIgKzAwMDAgKFVUQykKRnJvbTogVGlib3IxNyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTUwLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNTAtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNTA6IFNVUkVGSVJFLTEzNzIgRmlsdGVyIHRlc3RzIHRvIGJlIHJlcnVuIGJ5IGRlc2NyaXAuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MDkxMjE4MTg0Mi45RTU1NkY1N0REQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBUdWUsIDEyIFNlcCAyMDE3IDE4OjE4OjQyICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBUaWJvcjE3IGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE1MAogIAogICAgQG1wa29yc3RhbmplIAogICAgQ3VycmVudGx5IHdlIGFyZSBjdXR0aW5nIHR3byB2ZXJzaW9ucy4gVGhpcyB3ZWVrIGAyLjIwLjFgIGFuZCBgMi4yMS4wLkppZ3Nhd2AgbmV4dCB3ZWVrIGhhdmluZyBzdXBwb3J0IHdpdGggSmlnc2F3IG9mIEphdmEgOS4KICAgIFRoaXMgUFIgaXMgcGxhbm5lZCBpbiBgMi4yMC4yYCBidXQgdGhlIHZlcnNpb24gd2lsbCBiZSByZW5hbWVkIHRvIGAyLjIxLjFgIGluIEppcmEgaGF2aW5nIDMgZml4ZXMgd2hpY2ggc2hvdWxkIGJlIGZhc3QgcmVsZWFzZSwgYW5kIHRoZW4gYDIuMjAuMmAgd2l0aCBvbmUgYnV0IGJpZyBmaXggd2hpY2ggcmVtb3ZlcyAyIGJsb2NrZXJzLiBBZnRlciB0aGlzIHRoZSBwbHVnaW5zIHNob3VsZCBiZSBzdGFibGUsIEkgaG9wZSwgYW5kIHdlIGNhbiBjdXQgYDMuMC4wLk0xYCBhbmQgd2Ugd2lsbCBicmVhayBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBpbiBwYXJhbWV0ZXJzIGFuZCB0aGVpciBwcm9wZXJ0aWVzLgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzOTk3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBTZXAgMTIgMjE6MzY6NDUgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTk3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDgxNEE4MUE5QjMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAxMiBTZXAgMjAxNyAyMTozNjo0NSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDUxMTIwIGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIFNlcCAyMDE3IDIxOjM2OjQ1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MTAzOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMiBTZXAgMjAxNyAyMTozNjo0NSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUxMDI3IGludm9rZWQgYnkgdWlkIDk5KTsgMTIgU2VwIDIwMTcgMjE6MzY6NDQgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDEyIFNlcCAyMDE3IDIxOjM2OjQ0ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDIzM0E3RjU2NkU7IFR1ZSwgMTIgU2VwIDIwMTcgMjE6MzY6NDMgKzAwMDAgKFVUQykKRnJvbTogbXBrb3JzdGFuamUgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE1MC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTUwLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBwdWxsIHJlcXVlc3QgIzE1MDogU1VSRUZJUkUtMTM3MiBGaWx0ZXIgdGVzdHMgdG8gYmUgcmVydW4gYnkgLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzA5MTIyMTM2NDQuMjMzQTdGNTY2RUBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogVHVlLCAxMiBTZXAgMjAxNyAyMTozNjo0MyArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgbXBrb3JzdGFuamUgY29tbWVudGVkIG9uIGEgZGlmZiBpbiB0aGUgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNTAjZGlzY3Vzc2lvbl9yMTM4NDcyOTc5CiAgCiAgICAtLS0gRGlmZjogc3VyZWZpcmUtcHJvdmlkZXJzL2NvbW1vbi1qdW5pdDQ4L3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9zdXJlZmlyZS9jb21tb24vanVuaXQ0OC9GYWlsaW5nTWV0aG9kRmlsdGVyLmphdmEgLS0tCiAgICBAQCAtMSw4NSArMCwwIEBACiAgICAtcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlLmNvbW1vbi5qdW5pdDQ4OwogICAgLQogICAgLS8qCiAgICAtICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQogICAgLSAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQogICAgLSAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCiAgICAtICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQogICAgLSAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKICAgIC0gKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCiAgICAtICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAogICAgLSAqCiAgICAtICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogICAgLSAqCiAgICAtICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAogICAgLSAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCiAgICAtICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCiAgICAtICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiAgICAtICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwogICAgLSAqIHVuZGVyIHRoZSBMaWNlbnNlLgogICAgLSAqLwogICAgLQogICAgLWltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnNoYXJlZC51dGlscy5pby5TZWxlY3RvclV0aWxzOwogICAgLWltcG9ydCBvcmcuanVuaXQucnVubmVyLkRlc2NyaXB0aW9uOwogICAgLWltcG9ydCBvcmcuanVuaXQucnVubmVyLm1hbmlwdWxhdGlvbi5GaWx0ZXI7CiAgICAtCiAgICAtaW1wb3J0IGphdmEudXRpbC5NYXA7CiAgICAtaW1wb3J0IGphdmEudXRpbC5TZXQ7CiAgICAtCiAgICAtLyoqCiAgICAtICogT25seSBydW4gdGVzdCBtZXRob2RzIGluIHRoZSBnaXZlbiBpbnB1dCBtYXAsIGluZGV4ZWQgYnkgdGVzdCBjbGFzcwogICAgLSAqLwogICAgLWZpbmFsIGNsYXNzIEZhaWxpbmdNZXRob2RGaWx0ZXIKICAgIC0tLSBFbmQgZGlmZiAtLQogICAgCiAgICBUaGlzIGlzIG5vdCByZWFsbHkgcG9zc2libGUgYXMgYXMgdGhlIHdheSB3ZSdyZSBkZWFsaW5nIHNlbGVjdGluZyB0aGUgdGVzdHMgdG8gcmVydW4gaGFzIGNoYW5nZWQgZnVuZGFtZW50YWxseS4gSSBoYXZlIGhvd2V2ZXIgYWRkZWQgYEpVbml0NFByb3ZpZGVyVXRpbFRlc3QjdGVzdEdlbmVyYXRlRmFpbGluZ1Rlc3REZXNjcmlwdGlvbnNgIHRvIHNob3cgZXF1aXZhbGVuY2UgdG8gYEpVbml0NFByb3ZpZGVyVXRpbFRlc3QjdGVzdEdlbmVyYXRlRmFpbGluZ1Rlc3RzYAogICAgCiAgICBUaGlzIHNob3dzIHRoYXQgdGhlIHNldCBvZiBmYWlsZWQgdGVzdHMgaXMgdGhlIHNhbWUgYXMgYmVmb3JlIC0gdGhvdWdoIGRlc2NyaWJlZCBpbiBhIGRpZmZlcmVudCBmb3JtYXQuCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM5OTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIFNlcCAxMiAyMjowMDoxMyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5OTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOTIwN0IxQUFENgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDEyIFNlcCAyMDE3IDIyOjAwOjEzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzU3OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMiBTZXAgMjAxNyAyMjowMDoxMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzQ3MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMiBTZXAgMjAxNyAyMjowMDoxMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc0NTkgaW52b2tlZCBieSB1aWQgOTkpOyAxMiBTZXAgMjAxNyAyMjowMDoxMiAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMTIgU2VwIDIwMTcgMjI6MDA6MTIgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNkE3Q0FGNTVFMjsgVHVlLCAxMiBTZXAgMjAxNyAyMjowMDoxMiArMDAwMCAoVVRDKQpGcm9tOiBtcGtvcnN0YW5qZSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTUwLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNTAtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIHB1bGwgcmVxdWVzdCAjMTUwOiBTVVJFRklSRS0xMzcyIEZpbHRlciB0ZXN0cyB0byBiZSByZXJ1biBieSAuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MDkxMjIyMDAxMi42QTdDQUY1NUUyQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBUdWUsIDEyIFNlcCAyMDE3IDIyOjAwOjEyICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBtcGtvcnN0YW5qZSBjb21tZW50ZWQgb24gYSBkaWZmIGluIHRoZSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE1MCNkaXNjdXNzaW9uX3IxMzg0Nzc4OTAKICAKICAgIC0tLSBEaWZmOiBzdXJlZmlyZS1wcm92aWRlcnMvY29tbW9uLWp1bml0NDgvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3N1cmVmaXJlL2NvbW1vbi9qdW5pdDQ4L01hdGNoTWV0aG9kRGVzY3JpcHRpb25zLmphdmEgLS0tCiAgICBAQCAtMCwwICsxLDc0IEBACiAgICArcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlLmNvbW1vbi5qdW5pdDQ4OwogICAgKwogICAgKy8qCiAgICArICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQogICAgKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQogICAgKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCiAgICArICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQogICAgKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKICAgICsgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCiAgICArICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAogICAgKyAqCiAgICArICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAogICAgKyAqCiAgICArICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLAogICAgKyAqIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuCiAgICArICogIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZCiAgICArICogS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4gIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlCiAgICArICogc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwogICAgKyAqIHVuZGVyIHRoZSBMaWNlbnNlLgogICAgKyAqLwogICAgKwogICAgK2ltcG9ydCBvcmcuanVuaXQucnVubmVyLkRlc2NyaXB0aW9uOwogICAgK2ltcG9ydCBvcmcuanVuaXQucnVubmVyLm1hbmlwdWxhdGlvbi5GaWx0ZXI7CiAgICArCiAgICAraW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CiAgICAraW1wb3J0IGphdmEudXRpbC5MaXN0OwogICAgKwogICAgKy8qKgogICAgKyAqIE9ubHkgcnVuIHRlc3QgbWV0aG9kcyBpbiB0aGUgZ2l2ZW4gZmFpbHVyZSBzZXQKICAgICsgKgogICAgKyAqIEBhdXRob3IgbXBrb3JzdGFuamUKICAgICsgKi8KICAgICtmaW5hbCBjbGFzcyBNYXRjaE1ldGhvZERlc2NyaXB0aW9ucwogICAgKyAgICBleHRlbmRzIEZpbHRlcgogICAgK3sKICAgICsKICAgICsgICAgcHJpdmF0ZSBmaW5hbCBMaXN0PEZpbHRlcj4gZmlsdGVycyA9IG5ldyBBcnJheUxpc3Q8RmlsdGVyPigpOwogICAgKwogICAgKyAgICBNYXRjaE1ldGhvZERlc2NyaXB0aW9ucyggSXRlcmFibGU8RGVzY3JpcHRpb24+IGRlc2NyaXB0aW9ucyApCiAgICArICAgIHsKICAgICsgICAgICAgIGZvciAoIERlc2NyaXB0aW9uIGRlc2NyaXB0aW9uIDogZGVzY3JpcHRpb25zICkKICAgICsgICAgICAgIHsKICAgICsgICAgICAgICAgICBmaWx0ZXJzLmFkZCggbWF0Y2hNZXRob2REZXNjcmlwdGlvbiAoIGRlc2NyaXB0aW9uICkgKTsKICAgICsgICAgICAgIH0KICAgICsgICAgfQogICAgKwogICAgKyAgICBAT3ZlcnJpZGUKICAgICsgICAgcHVibGljIGJvb2xlYW4gc2hvdWxkUnVuKCBEZXNjcmlwdGlvbiBkZXNjcmlwdGlvbiApCiAgICArICAgIHsKICAgICsgICAgICAgIGZvciAoIEZpbHRlciBmaWx0ZXIgOiBmaWx0ZXJzICkKICAgICsgICAgICAgIHsKICAgICsgICAgICAgICAgICBpZiAoIGZpbHRlci5zaG91bGRSdW4oIGRlc2NyaXB0aW9uICkgKQogICAgKyAgICAgICAgICAgIHsKICAgICsgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICArICAgICAgICAgICAgfQogICAgKyAgICAgICAgfQogICAgKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgKyAgICB9CiAgICArCiAgICArICAgIEBPdmVycmlkZQogICAgKyAgICBwdWJsaWMgU3RyaW5nIGRlc2NyaWJlKCkKICAgICsgICAgewogICAgKyAgICAgICAgU3RyaW5nQnVpbGRlciBkZXNjcmlwdGlvbiA9IG5ldyBTdHJpbmdCdWlsZGVyKCAiTWF0Y2hpbmcgZGVzY3JpcHRpb24gIiApOwogICAgKyAgICAgICAgZm9yICggaW50IGkgPSAwOyBpIDwgZmlsdGVycy5zaXplKCk7IGkrKyApCiAgICArICAgICAgICB7CiAgICArICAgICAgICAgICAgZGVzY3JpcHRpb24uYXBwZW5kKCBmaWx0ZXJzLmdldCggaSApLmRlc2NyaWJlKCkgKTsKICAgICsgICAgICAgICAgICBpZiAoIGkgIT0gZmlsdGVycy5zaXplKCkgLSAxICkKICAgICsgICAgICAgICAgICB7CiAgICArICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uLmFwcGVuZCggIiBPUiAiICk7CiAgICArICAgICAgICAgICAgfQogICAgKyAgICAgICAgfQogICAgKyAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uLnRvU3RyaW5nKCk7CiAgICArICAgIH0KICAgICt9CiAgICAtLS0gRW5kIGRpZmYgLS0KICAgIAogICAgRG9uZS4KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDAyOC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgU2VwIDE0IDE3OjIyOjEzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDAyOC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFQTM1MTFBODk3Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMTQgU2VwIDIwMTcgMTc6MjI6MTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxNDUxMiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNCBTZXAgMjAxNyAxNzoyMjowOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTQ0MjggaW52b2tlZCBieSB1aWQgNTAwKTsgMTQgU2VwIDIwMTcgMTc6MjI6MDggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNDM5OSBpbnZva2VkIGJ5IHVpZCA5OSk7IDE0IFNlcCAyMDE3IDE3OjIyOjA4IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1pbm90YXVyLmFwYWNoZS5vcmcgKEhFTE8gbWlub3RhdXIuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuOSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAxNCBTZXAgMjAxNyAxNzoyMjowOCArMDAwMApSZWNlaXZlZDogYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCwgZnJvbSB1c2VyaWQgNjAwNCkKCWlkIDdBM0JBMUE4OEY7IFRodSwgMTQgU2VwIDIwMTcgMTc6MjI6MDggKzAwMDAgKFVUQykKVG86IGFubm91bmNlQG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0FOTl0gQXBhY2hlIE1hdmVuIERlcGVuZGVuY3kgUGx1Z2luIFZlcnNpb24gMy4wLjIgUmVsZWFzZWQKQ2M6IGRldkBtYXZlbi5hcGFjaGUub3JnLHVzZXJzQG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JZDogPDIwMTcwOTE0MTcyMjA4LjdBM0JBMUE4OEZAbWlub3RhdXIuYXBhY2hlLm9yZz4KRGF0ZTogVGh1LCAxNCBTZXAgMjAxNyAxNzoyMjowOCArMDAwMCAoVVRDKQpGcm9tOiBraG1hcmJhaXNlQGFwYWNoZS5vcmcgKEthcmwgSGVpbnogTWFyYmFpc2UpCgpUaGUgQXBhY2hlIE1hdmVuIHRlYW0gaXMgcGxlYXNlZCB0byBhbm5vdW5jZSB0aGUgcmVsZWFzZSBvZiB0aGUgCkFwYWNoZSBNYXZlbiBEZXBlbmRlbmN5IFBsdWdpbiBWZXJzaW9uIDMuMC4yLgogCmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zL21hdmVuLWRlcGVuZGVuY3ktcGx1Z2luLwoKSW1wb3J0YW50IE5vdGUgc2luY2UgMy4wLjA6CgogKiBNYXZlbiAzLlggb25seQogKiBKREsgNiBtaW5pbXVtIHJlcXVpcmVtZW50CgpZb3Ugc2hvdWxkIHNwZWNpZnkgdGhlIHZlcnNpb24gaW4geW91ciBwcm9qZWN0J3MgcGx1Z2luIGNvbmZpZ3VyYXRpb246CiAKPHBsdWdpbj4KICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CiAgPGFydGlmYWN0SWQ+bWF2ZW4tZGVwZW5kZW5jeS1wbHVnaW48L2FydGlmYWN0SWQ+CiAgPHZlcnNpb24+My4wLjI8L3ZlcnNpb24+CjwvcGx1Z2luPgoKWW91IGNhbiBkb3dubG9hZCB0aGUgYXBwcm9wcmlhdGUgc291cmNlcyBldGMuIGZyb20gdGhlIGRvd25sb2FkIHBhZ2U6CiAKaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMvbWF2ZW4tZGVwZW5kZW5jeS1wbHVnaW4vZG93bmxvYWQuY2dpCiAKUmVsZWFzZSBOb3RlcyBNYXZlbiBEZXBlbmRlbmN5IFBsdWdpbiAzLjAuMgoKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMxNzIyNyZ2ZXJzaW9uPTEyMzM4ODc0CgpCdWdzOgoKICogW01ERVAtNTcxXSAtIEpESzk6IElzc3VlIHdpdGggbGlzdCBnb2FsIGZhaWxzIHdpdGggamF2YS5sYW5nLk5vU3VjaE1ldGhvZEV4Y2VwdGlvbgogKiBbTURFUC01NzNdIC0gInB1cmdlLWxvY2FsLXJlcG9zaXRvcnkgLURpbmNsdWRlIiBkb2VzIG5vdCB3b3JrIGFzIGRlc2NyaWJlZAogKiBbTURFUC01NzddIC0gZGVwZW5kZW5jeTpsaXN0IGRvZXNuJ3Qgc2hvdyBtb2R1bGUgbmFtZQogKiBbTURFUC01ODNdIC0gRmFpbGVkIHRvIGNyZWF0ZSByZWxlYXNlIG9uIEpESyA4IGJhc2VkIG9uIEphdmFEb2MgaXNzdWVzCgpJbXByb3ZlbWVudHM6CgogKiBbTURFUC01NzhdIC0gQWRkIG1lc3NhZ2UgaW4gY2FzZSBtb2R1bGUgbmFtZSBjYW5ub3QgYmUgZXh0cmFjdGVkIGZyb20gamFyLgogKiBbTURFUC01ODBdIC0gUmVjb2duaXplIHNvdXJjZSBvZiBuYW1lIGZvciBhdXRvbWF0aWMgbW9kdWxlcwoKVGFzazoKCiAqIFtNREVQLTU4MV0gLSBEb3duZ3JhZGUgbWF2ZW4tYXJ0aWZhY3QtdHJhbnNmZXIgdG8gcmVsZWFzZSB2ZXJzaW9uIGluc3RlYWQgb2YgU05BUFNIT1QKCk1hbnkgdGhhbmtzIHRvIGFsbCByZXBvcnRlcnMvY29udHJpYnV0b3JzL3Rlc3RlcnMgb2YgdGhpcyByZWxlYXNlLgoKRW5qb3MsCiAKLVRoZSBBcGFjaGUgTWF2ZW4gdGVhbQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MDI5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBTZXAgMTQgMTc6MzU6MzIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDI5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEEyOUY2MUE4RkQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAxNCBTZXAgMjAxNyAxNzozNTozMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ5NjM0IGludm9rZWQgYnkgdWlkIDUwMCk7IDE0IFNlcCAyMDE3IDE3OjM1OjMxIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0OTU1MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNCBTZXAgMjAxNyAxNzozNTozMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ5NTIyIGludm9rZWQgYnkgdWlkIDk5KTsgMTQgU2VwIDIwMTcgMTc6MzU6MzAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWlub3RhdXIuYXBhY2hlLm9yZyAoSEVMTyBtaW5vdGF1ci5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS45KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDE0IFNlcCAyMDE3IDE3OjM1OjMwICswMDAwClJlY2VpdmVkOiBieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4LCBmcm9tIHVzZXJpZCA2MDA0KQoJaWQgODFDMTAxQThGQjsgVGh1LCAxNCBTZXAgMjAxNyAxNzozNTozMCArMDAwMCAoVVRDKQpUbzogYW5ub3VuY2VAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBbQU5OXSBBcGFjaGUgTWF2ZW4gSkxpbmsgUGx1Z2luIFZlcnNpb24gMy4wLjAtYWxwaGEtMSBSZWxlYXNlZApDYzogZGV2QG1hdmVuLmFwYWNoZS5vcmcsdXNlcnNAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlkOiA8MjAxNzA5MTQxNzM1MzAuODFDMTAxQThGQkBtaW5vdGF1ci5hcGFjaGUub3JnPgpEYXRlOiBUaHUsIDE0IFNlcCAyMDE3IDE3OjM1OjMwICswMDAwIChVVEMpCkZyb206IGtobWFyYmFpc2VAYXBhY2hlLm9yZyAoS2FybCBIZWlueiBNYXJiYWlzZSkKClRoZSBBcGFjaGUgTWF2ZW4gdGVhbSBpcyBwbGVhc2VkIHRvIGFubm91bmNlIHRoZSByZWxlYXNlIG9mIHRoZSAKQXBhY2hlIE1hdmVuIEpMaW5rIFBsdWdpbiBWZXJzaW9uIDMuMC4wLWFscGhhLTEgcmVsZWFzZQogCmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zL21hdmVuLWpsaW5rLXBsdWdpbi8KClRoZSBwbHVnaW4gaGFzIGdvdCB0aGUgbWFqb3IgdmVyc2lvbiAzIHRvIG1ha2UgY2xlYXIgdGhpcyBwbHVnaW4KaXMgb25seSBmb3IgTWF2ZW4gMysuCgogKiBNYXZlbiAzLlggb25seQogKiBKREsgNyBtaW5pbXVtIHJlcXVpcmVtZW50CgpZb3Ugc2hvdWxkIHNwZWNpZnkgdGhlIHZlcnNpb24gaW4geW91ciBwcm9qZWN0J3MgcGx1Z2luIGNvbmZpZ3VyYXRpb246CiAKPHBsdWdpbj4KICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CiAgPGFydGlmYWN0SWQ+bWF2ZW4tamxpbmstcGx1Z2luPC9hcnRpZmFjdElkPgogIDx2ZXJzaW9uPjMuMC4wLWFscGhhLTE8L3ZlcnNpb24+CiAgPGV4dGVuc2lvbnM+dHJ1ZTwvZXh0ZW5zaW9ucz4KPC9wbHVnaW4+CgpZb3UgY2FuIGRvd25sb2FkIHRoZSBhcHByb3ByaWF0ZSBzb3VyY2VzIGV0Yy4gZnJvbSB0aGUgZG93bmxvYWQgcGFnZToKIApodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy9tYXZlbi1qbGluay1wbHVnaW4vZG93bmxvYWQuY2dpCiAKUmVsZWFzZSBOb3RlcyBNYXZlbiBKbGluayBQbHVnaW4gMy4wLjAtYWxwaGEtMQoKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMxNzIyNyZ2ZXJzaW9uPTEyMzM4ODc0CgpEZXBlbmRlbmN5IHVwZ3JhZGU6CgogKiBbTUpMSU5LLTJdIC0gVXBncmFkZSBzZXZlcmFsIHBsdWdpbnMgdG8gZ2V0IGEgd29ya2luZyBzaXRlIGdlbmVyYXRpb24KCkVuam95LAogCi1UaGUgQXBhY2hlIE1hdmVuIHRlYW0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDA1NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gU2VwIDE4IDE1OjEyOjAyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDA1NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAxQUVCQUY4MTMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxOCBTZXAgMjAxNyAxNToxMjowMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDIxMjQxIGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IFNlcCAyMDE3IDE1OjExOjU5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMTE0MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBTZXAgMjAxNyAxNToxMTo1OSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIxMDgwIGludm9rZWQgYnkgdWlkIDk5KTsgMTggU2VwIDIwMTcgMTU6MTE6NTkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDE4IFNlcCAyMDE3IDE1OjExOjU5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgODBEQjFDMEVENgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTggU2VwIDIwMTcgMTU6MTE6NTggKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4wMDIKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMDAyIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtSUF9NQVRDSEVTX1JDVkQ9LTAuMDAxLCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgakgxSG9IdURiVjZrIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAxOCBTZXAgMjAxNyAxNToxMTo1NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLmlvN20uY29tIChtYWlsLmlvN20uY29tIFs0NS43Ny43Ni45Ml0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA1QUMxQjVGRDFCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxOCBTZXAgMjAxNyAxNToxMTo1NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBjb3BwZXJoZWFkLmludC5hcmM3LmluZm8gKGN1c3QxODctZHNsNjEuaWRuZXQubmV0IFsyMTIuNjkuNjEuMTg3XSkKCWJ5IG1haWwuaW83bS5jb20gKFBvc3RmaXgpIHdpdGggRVNNVFBTQSBpZCBCMjNDODNFQjMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE4IFNlcCAyMDE3IDE1OjExOjUwICswMDAwIChVVEMpCkRhdGU6IE1vbiwgMTggU2VwIDIwMTcgMTU6MTE6MzkgKzAwMDAKRnJvbTogTWFyayBSYXluc2ZvcmQgPG9yZy5hcGFjaGUubWF2ZW4udXNlckBpbzdtLmNvbT4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFN0YXJ0aW5nIGEgcHVyZSBKYXZhIDkgbW9kdWxhciBwcm9qZWN0Ck1lc3NhZ2UtSUQ6IDwyMDE3MDkxODE1MTEzOS41MDA1MjM4YkBjb3BwZXJoZWFkLmludC5hcmM3LmluZm8+Ck9yZ2FuaXphdGlvbjogaW83bS5jb20KT3BlblBHUDogaWQ9ODE2OERBRTIyQjE1RDNFREM3MjJDMjNEMEYxNUI3RDA2RkE4MENCODsKIHVybD1odHRwOi8vaW83bS5jb20vcGdwLzgxNjhfREFFMl8yQjE1X0QzRURfQzcyMl9DMjNEXzBGMTVfQjdEMF82RkE4XzBDQjgua2V5Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L3NpZ25lZDsgbWljYWxnPXBncC1zaGE1MTI7CiBib3VuZGFyeT0iU2lnXy9rZjNLLnJrUUZkTXc9U1pnci5EWGlHcCI7IHByb3RvY29sPSJhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlIgoKLS1TaWdfL2tmM0sucmtRRmRNdz1TWmdyLkRYaUdwCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VUy1BU0NJSQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpIZWxsby4KCldpdGggSmF2YSA5IGR1ZSBvdXQgaW4gYSBmZXcgZGF5cyB0aW1lLCBJJ20gbG9va2luZyBhdCBtb3ZpbmcgYWxsIG9mIG15CjYwKyBwcm9qZWN0cyB0byBKYXZhIDkuIEkgaGF2ZSBubyBpbnRlbnRpb24gb2Yga2VlcGluZyBzdXBwb3J0IGZvciBhbnkKdmVyc2lvbiBvZiBKYXZhIGxlc3MgdGhhbiA5LCBzbyB0aGUgcHJvamVjdHMgd2lsbCBiZWNvbWUgcHVyZSBKYXZhIDkKKG1vZHVsYXJpemVkKSBwcm9qZWN0cy4KCkknbSBjdXJpb3VzIGFzIHdoZXRoZXIgSmF2YSA5IGNoYW5nZXMgYW55IG9mIHRoZSBjb252ZW50aW9ucyB0aGF0IEkndmUKYmVlbiB1c2VkIHRvIGluIE1hdmVuIGZvciB0aGUgcGFzdCBmaXZlIG9yIHNvIHllYXJzLiBGb3IgZXhhbXBsZSwgb25lCnRoaW5nIEkgc2VlIGZyZXF1ZW50bHkgaW4gSmF2YSA5IHR1dG9yaWFscyBpcyB0aGF0IHRoZXkgdXNlIGEKZGlyZWN0b3J5IGxheW91dCB0aGF0IGRpZmZlcnMgZnJvbSB0aGUgTWF2ZW4gc3RhbmRhcmQuIEZvciBleGFtcGxlLApjb25zaWRlciB0aGlzIHR1dG9yaWFsOgoKICBodHRwczovL2R6b25lLmNvbS9hcnRpY2xlcy9qYXZhLTktdHV0b3JpYWwtc3RlcC1ieS1zdGVwLWZyb20temVyby10by1tb2R1PQpsZXMKClRoZSBkaXJlY3RvcnkgbGF5b3V0IGlzICJzcmMvY29tLm1lLm15bW9kdWxlL21vZHVsZS1pbmZvLmphdmEiLiBUaGlzCm9idmlvdXNseSBkb2Vzbid0IG1hdGNoIHRoZSAic3JjL21haW4vamF2YSIgY29udmVudGlvbiB0aGF0IE1hdmVuIHVzZXMuCgpJcyB0aGUgaW50ZW50aW9uIHRvIG1hcCBNYXZlbiBtb2R1bGVzIDE6MSB3aXRoIEppZ3NhdyBtb2R1bGVzPyBPciBpZgpub3QgMToxLCB0aGVuIHBlcmhhcHMgIm5vIG1vcmUgdGhhbiBvbmUgSmlnc2F3IG1vZHVsZSBwZXIgTWF2ZW4gbW9kdWxlIi4KCklzIHRoZXJlIGRvY3VtZW50YXRpb24gYXZhaWxhYmxlIGFueXdoZXJlIHRoYXQgZGVzY3JpYmVzIGhvdyBuZXcgcHVyZQpKYXZhIDkgKG11bHRpLW1vZHVsZSEpIHByb2plY3RzIHNob3VsZCBiZSBzZXQgdXA/CgotLT0yMApNYXJrIFJheW5zZm9yZCB8IGh0dHA6Ly93d3cuaW83bS5jb20KCi0tU2lnXy9rZjNLLnJrUUZkTXc9U1pnci5EWGlHcApDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3BncC1zaWduYXR1cmUKQ29udGVudC1EZXNjcmlwdGlvbjogT3BlblBHUCBkaWdpdGFsIHNpZ25hdHVyZQoKLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KCmlRSXpCQUVCQ2dBZEZpRUVnV2phNGlzVjArM0hJc0k5RHhXMzBHK29ETGdGQWxtLzRpc0FDZ2tRRHhXMzBHK28KRExoTjd4QUFyK0VDUTU4akxjajFjUFRpVWFXZVhWUmpOMVBwSWhSMEsxNmh0YU1ZUjlPV0h5N1EzOXVKQ2c3Kwo2eVpyM1Z6bllVbnp6Q1ljZk4rRmRITzNnREl1ZStEb1VxOEdsMFBjYWlQQ1BNV2sxWHlhWUtybWZoRzFaRk5vCml6TzR6UktPVC9JQ0dGbGNMZmMxVVM3WWJ3NjZYeldlU2dVZmdhV1pjTWVPY29KRGJqYmZXS2trRGFseWZqRWwKdnArUi9GOEhWZG1ZYmRIalJ4S3Q5b2UwNHVkM1QwZkw5NVZtMFJlWm1QM1hTSnBsdWdJTGp2T05sMlBER1A3QQpaZ1Yxd0R1elI3bTB1YWVheHB5MmJiL0MzNXdJckVmWHFHbERObUwvM1U4TzBGOHlvSWdCUWY3Vkw4OEhoMENWCjQrVlRtVjJnUmFLTVl2anZIMTNkV2NlSjgrekxyVUNOL3U2LzZuTjdrRHkydFlrdFhaT0krM2VuSVFkVmZhN2kKNUR2ZHVOMEl5WDdFbW5yMVBmeG1xaHM4YTB5UGRyaFRtNjNMVlhyYVpVV2g1WmE4Y0lmbVZYNmJab3hPb3FyaApRaUVNSlZlY0l4WHM2TUdVdDZuTWRxQjc1WG1LRGFycGlrcVRBeUNCZ3N4S1krT0ZYdEVKV0wyaWY2TjhyR2YxCm9Db3U4N2JJMWhxV1N6OUNDVkFGaHZPQlZmSFczenRzRUM3WnFhMTFRb0FvN1V5MHNPRTZ6MlBOWDh3NTNqNGkKMmZ6REFWTHREV0xHZEZVVCtOdTJ3WmNmTnhYWkF6c05hbjc5TU9RTG1qM1ZYeWFpb0F3bkFXZjRQd01oeG8yVQpCczNZYXZBNlEyVDF0a2ZIZ0ZQSUU1TDRwMWFTVDQyOVFENjdzNmlkZEZSbDV3WmhIRFk9Cj1UbE4zCi0tLS0tRU5EIFBHUCBTSUdOQVRVUkUtLS0tLQoKLS1TaWdfL2tmM0sucmtRRmRNdz1TWmdyLkRYaUdwLS0KCkZyb20gZGV2LXJldHVybi0xMjQwNjAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIFNlcCAxOCAxNzo1Mzo0MCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwNjAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMkU1QkVDNDUxCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMTggU2VwIDIwMTcgMTc6NTM6NDAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzOTE3MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBTZXAgMjAxNyAxNzo1MzozOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzkwOTEgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggU2VwIDIwMTcgMTc6NTM6MzkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzOTA4MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDE4IFNlcCAyMDE3IDE3OjUzOjM5IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAxOCBTZXAgMjAxNyAxNzo1MzozOSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDA1QjRCQzdENzQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE4IFNlcCAyMDE3IDE3OjUzOjM5ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuMDAyClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjAwMiB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bUlBfTUFUQ0hFU19SQ1ZEPS0wLjAwMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFp4d29PclBwV2h3biBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMTggU2VwIDIwMTcgMTc6NTM6MzUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC5pbzdtLmNvbSAobWFpbC5pbzdtLmNvbSBbNDUuNzcuNzYuOTJdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRUU3OTI1RkNFOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTggU2VwIDIwMTcgMTc6NTM6MzQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvIChjdXN0MTg3LWRzbDYxLmlkbmV0Lm5ldCBbMjEyLjY5LjYxLjE4N10pCglieSBtYWlsLmlvN20uY29tIChQb3N0Zml4KSB3aXRoIEVTTVRQU0EgaWQgQ0Y4RUQzRjI3Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxOCBTZXAgMjAxNyAxNzo1MzoyNyArMDAwMCAoVVRDKQpEYXRlOiBNb24sIDE4IFNlcCAyMDE3IDE3OjUzOjE2ICswMDAwCkZyb206IE1hcmsgUmF5bnNmb3JkIDxvcmcuYXBhY2hlLm1hdmVuLnVzZXJAaW83bS5jb20+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBSZTogU3RhcnRpbmcgYSBwdXJlIEphdmEgOSBtb2R1bGFyIHByb2plY3QKTWVzc2FnZS1JRDogPDIwMTcwOTE4MTc1MzE2LjZjYjMyMGRhQGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbz4KSW4tUmVwbHktVG86IDwzMWE5NDU2NS03YjMyLWRhMDUtMDRhNy00Yzc0MTRmZGE3NzJAZ214LmRlPgpSZWZlcmVuY2VzOiA8MjAxNzA5MTgxNTExMzkuNTAwNTIzOGJAY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvPgoJPDMxYTk0NTY1LTdiMzItZGEwNS0wNGE3LTRjNzQxNGZkYTc3MkBnbXguZGU+Ck9yZ2FuaXphdGlvbjogaW83bS5jb20KT3BlblBHUDogaWQ9ODE2OERBRTIyQjE1RDNFREM3MjJDMjNEMEYxNUI3RDA2RkE4MENCODsKIHVybD1odHRwOi8vaW83bS5jb20vcGdwLzgxNjhfREFFMl8yQjE1X0QzRURfQzcyMl9DMjNEXzBGMTVfQjdEMF82RkE4XzBDQjgua2V5Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L3NpZ25lZDsgbWljYWxnPXBncC1zaGE1MTI7CiBib3VuZGFyeT0iU2lnXy9HZGxmX05XUFBkbVZFZmdENkcwL1greiI7IHByb3RvY29sPSJhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlIgoKLS1TaWdfL0dkbGZfTldQUGRtVkVmZ0Q2RzAvWCt6CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VUy1BU0NJSQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPbiAyMDE3LTA5LTE4VDE5OjA2OjEyICswMjAwCkthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPiB3cm90ZToKCj4gSGkgTWFyaywKPj0yMAo+IE9uIDE4LzA5LzE3IDE3OjExLCBNYXJrIFJheW5zZm9yZCB3cm90ZToKPiA+PTIwCj4gPiBUaGUgZGlyZWN0b3J5IGxheW91dCBpcyAic3JjL2NvbS5tZS5teW1vZHVsZS9tb2R1bGUtaW5mby5qYXZhIi4gVGhpcwo+ID4gb2J2aW91c2x5IGRvZXNuJ3QgbWF0Y2ggdGhlICJzcmMvbWFpbi9qYXZhIiBjb252ZW50aW9uIHRoYXQgTWF2ZW4gdXNlcy49CiA9MjAKPj0yMAo+IFRoYXQgaXMgdGhlIHNhbWUgd2hpY2ggY29tZXMgdG8gbXkgbWluZCBpZiBJIHNlZSBzdWNoIGV4YW1wbGVzLi4uCj49MjAKPiBCdXQgSSBkb24ndCBzZWUgYW55IHJlcXVpcmVtZW50IGZvciB0aGF0IG5vciBkbyBJIHNlZSBhbnkgYWR2YW50YWdlPTIwCj4gYWJvdXQgdGhpcyBhcHByb2FjaGU/Li4uCgpNZSBuZWl0aGVyLiBJIGdldCB0aGUgZmVlbGluZyB0aGV5IGp1c3QgbWFkZSBvbmUgdXAgYXMgdGhleSBtb2R1bGFyaXplZAp0aGUgSkRLLiBJJ3ZlIGJ1aWx0IHRoZSBKREsgcXVpdGUgYSBmZXcgdGltZXMsIGJ1dCBJIG5ldmVyIGFjdHVhbGx5Cmxvb2tlZCBpbnRvIHdoYXQgdGhleSdyZSB1c2luZyB0byBidWlsZCB0aGUgSmF2YSBzb3VyY2VzLiBJdCBhcHBlYXJzCnRoYXQgaXQncyBqdXN0IE1ha2VmaWxlcywgc28gdGhleSBwcmVzdW1hYmx5IGRpZG4ndCBoYXZlIHRoZQpjb252ZW50aW9ucyBvZiBhbnkgZXhpc3RpbmcgdG9vbCB0byB3b3JrIHdpdGguCgo+IFdoYXQgSSd2ZSBzZWVuIGluIE9TR2kgaXMgdG8gbmFtZSB0aGUgZGlyZWN0b3JpZXMgYWNjb3JkaW5nIHRvIHRoZT0yMAo+IG1vZHVsZXMgKGJ1bmRsZSBuYW1lcykgYnV0IHRoaXMgb2Z0ZW4gbGVhZHMgaW50byBkdXBsaWNhdGlvbgo+IGxpa2U6CgpZZXAsIEkgYWN0dWFsbHkgYWRvcHRlZCB0aGlzIGNvbnZlbnRpb24gbXlzZWxmIGF0IHRoZSBzdGFydCBvZiB0aGUKeWVhci4gSSB0aGluayB0aGUgb25lIGFkdmFudGFnZSB0byB0aGlzIG92ZXIgdGhlIHNob3J0IGZvcm0gaXMgdGhhdCBpdApjYW4gbWFrZSBpdCBzbGlnaHRseSBlYXNpZXIgdG8gZmluZCBtb2R1bGVzIGluIHRoZSBmaWxlc3lzdGVtIGlmIHlvdQpoYXZlIGEgbG90IG9mIHNvdXJjZSB0cmVlczoKCiAgJCBmaW5kIC4gLW5hbWUgJ2NvbS5pbzdtLmV4YW1wbGUnIC10eXBlIGQKCj4gSSB0aGluayB0aGUgYmVzdCBzdWdnZXN0aW9uIEkgY2FuIGdpdmUgaXMgdG8ga2VlcCB0aGUgY29udmVudGlvbnM9MjAKPiAuLi5jYXVzZSBmcm9tIG15IGN1cnJlbnQgcG9pbnQgb2YgdmlldyB5b3UgZG9uJ3QgaGF2ZSBkaXNhZHZhbnRhZ2VzLi4uCj4KPiBCdXQgd2Ugd291bGQgYmUgdmVyeSBpbnRlcmVzdGVkIGlmIHRoZXJlIGFyZSBzb21lIGlmIHlvdSBtYWtlPTIwCj4gZXhwZXJpZW5jZXMgaW4gdGhhdCB3YXkuLi4KClllYWgsIEkgd291bGQgcHJlZmVyIHRvIHN0aWNrIHRvIHRoZSBNYXZlbiBjb252ZW50aW9ucy4KCj4gPiBJcyB0aGUgaW50ZW50aW9uIHRvIG1hcCBNYXZlbiBtb2R1bGVzIDE6MSB3aXRoIEppZ3NhdyBtb2R1bGVzPyBPciBpZgo+ID4gbm90IDE6MSwgdGhlbiBwZXJoYXBzICJubyBtb3JlIHRoYW4gb25lIEppZ3NhdyBtb2R1bGUgcGVyIE1hdmVuIG1vZHVsZSI9Ci4gPTIwCj49MjAKPiBJIHRoaW5rIG9uZSBKaWdzYXcgbW9kdWxlIHBlciBNYXZlbiBtb2R1bGUgb3RoZXJ3aXNlIHlvdSBuZWVkIHRvIGxlYXZlPTIwCj4gdGhlIGNvbnZlbnRpb25zIGJhc2VkIG9uIG1vZHVsZS1pbmZvLmphdmEuLi4uZXRjLi4uCgpSaWdodC4KCj4gPiBJcyB0aGVyZSBkb2N1bWVudGF0aW9uIGF2YWlsYWJsZSBhbnl3aGVyZSB0aGF0IGRlc2NyaWJlcyBob3cgbmV3IHB1cmUKPiA+IEphdmEgOSAobXVsdGktbW9kdWxlISkgcHJvamVjdHMgc2hvdWxkIGJlIHNldCB1cD8KPiA+ICA9MjAKPj0yMAo+IEkgdGhpbmsgaXQncyB0aW1lIHRvIG1ha2Ugc29tZSBkb2NzIGJhc2VkIG9uIHRoZSBjdXJyZW50IHN0YXRlIG9mPTIwCj4gZXhwZXJpZW5jZSBhbmQgaWYgeW91IGxpa2UgcGxlYXNlIGFkZCBpbmZvcm1hdGlvbiBvciBiZWdpbiB3aXRoIHN1Y2g9MjAKPiBkb2NzIGFib3V0IHRoYXQuLndlIHdvdWxkIGFwcHJlY2lhdGUgc3VjaCB0aGluZ3MuLi4KCldlbGwsIGluIGEgZmV3IHdlZWtzIHRpbWUsIEknbGwgaGF2ZSBhdCBsZWFzdCBhdHRlbXB0ZWQgdG8gbW9kdWxhcml6ZQpzb21lIDYwIGRpZmZlcmVudCBwcm9qZWN0cy4gVGhleSdyZSBhbGwgT1NHaSBjb21wYXRpYmxlLCBzbyB0aGUKZGlmZmljdWx0IHdvcmsgaGFzIGFscmVhZHkgYmVlbiBkb25lLiBKdXN0IG5lZWQgdG8gd3JpdGUgbW9kdWxlCmRlc2NyaXB0b3JzIGFuZCB1cGRhdGUgcGx1Z2lucyBhbmQgZGVmaW5pdGlvbnMgdG8gcHJvZHVjZSA5IGJ5dGVjb2RlLgoKSSBjYW4gY2VydGFpbmx5IHdyaXRlIHNvbWV0aGluZyB1cC4gV2hlcmUgd291bGQgSSBiZSBwdXR0aW5nIHRoaXMKZG9jdW1lbnRhdGlvbj8KCi0tPTIwCk1hcmsgUmF5bnNmb3JkIHwgaHR0cDovL3d3dy5pbzdtLmNvbQoKLS1TaWdfL0dkbGZfTldQUGRtVkVmZ0Q2RzAvWCt6CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vcGdwLXNpZ25hdHVyZQpDb250ZW50LURlc2NyaXB0aW9uOiBPcGVuUEdQIGRpZ2l0YWwgc2lnbmF0dXJlCgotLS0tLUJFR0lOIFBHUCBTSUdOQVRVUkUtLS0tLQoKaVFJekJBRUJDZ0FkRmlFRWdXamE0aXNWMCszSElzSTlEeFczMEcrb0RMZ0ZBbG5BQ0EwQUNna1FEeFczMEcrbwpETGhjL1EvL2I1aUR2SC9BNlhTUTk2MEswMXBkTG15TTdzZDc5ellxaTJGelJpb1ltK0xxc1JTNVQxRFllcWEvCk83Y1NvZXZkdzFWY09uMXFLMFZHN3F2NExiM1R4TER4ZEdyeWNXYy9HNWxNQWZGZjFkWGp4YlM4V2oyRGoxNHEKVVRFRDQ5VnMzakdsMUJ1bVpxcEU0c1NYR1FrWVFQamE3VFdxcVhFQU5GeE9aTkZZY0tIS1FBT3BpaFVqaUcvSwpRdE8zR3YwSDBNd0tpTEZHMW1kLzRFQ0FzOGZ6UTlOZXRleGU1Q3BTWkxzSnJvUlZ6Zjh5bGJ5bXdxZnRoS1dYCkw2S1JYYzNQVGwwRU5ZRncxSGhqQmJuMXRvSHdpVUFiL2JrVFRPMm1vaVZZbHRyN05maVRTeGp1cWlMR0c2eEwKUmI0dkUwNE5DNmh5UnM4Z1Zwb3VtWmhjQ1UzTmFjN2d2bVhqTzJBdEdqd0l6V3VWNE0zQ1g4UG94RVZsd1pzYwpHeWprQjlOSGROQVdOeEx4TVZJc0JsaWpZK0Z2OXpjMkE2NldZWm5lM0ZUUzIvcUxobXRkSzhiUERnNDB2Y24vCjRiRVVBbmU1WFprV3l1Q3ZjeEZ6VTRVVzZiSlJDMkdoY29QQSsrVmg3VkRudFJSc1dtWU5US2duWXpJZ3dKVmEKVVEzaGRQaHp1OXp5NTdodTk3M1dlRkNJOGhnTTV4MWdlYlpKa3ZXaHZrbks2bkRSVUZvRkdEMGloV1MvQWpSQQpGQ3NoWWdsNW9PdENVbnZRWDVKRXd2cTBzUHlKT1hMQmpXNVVFZC9VaGRTRVNwU3NqTFJnSnlISnFuWWQwSllJCk12MzhSUXBIb25GWUVhNFhDYTAybUlFU0tJZEZaanhJSEs2WVJmRGw2dkYra2pGWDdVMD0KPTAreUQKLS0tLS1FTkQgUEdQIFNJR05BVFVSRS0tLS0tCgotLVNpZ18vR2RsZl9OV1BQZG1WRWZnRDZHMC9YK3otLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDA2MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gU2VwIDE4IDE3OjU3OjM3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDA2MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA5REMxM0M0OTMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxOCBTZXAgMjAxNyAxNzo1NzozNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ5NzkwIGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IFNlcCAyMDE3IDE3OjU3OjM3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0OTcxNiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBTZXAgMjAxNyAxNzo1NzozNyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ5NzA1IGludm9rZWQgYnkgdWlkIDk5KTsgMTggU2VwIDIwMTcgMTc6NTc6MzcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDE4IFNlcCAyMDE3IDE3OjU3OjM2ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgOTUxMDAxODM3NjYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE4IFNlcCAyMDE3IDE3OjU3OjM2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuMDAyClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjAwMiB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bUlBfTUFUQ0hFU19SQ1ZEPS0wLjAwMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBxZEJLTVNGQjlleHUgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sIDE4IFNlcCAyMDE3IDE3OjU3OjM1ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwuaW83bS5jb20gKG1haWwuaW83bS5jb20gWzQ1Ljc3Ljc2LjkyXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDJFNDk2NUZCNzYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE4IFNlcCAyMDE3IDE3OjU3OjM1ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbyAoY3VzdDE4Ny1kc2w2MS5pZG5ldC5uZXQgWzIxMi42OS42MS4xODddKQoJYnkgbWFpbC5pbzdtLmNvbSAoUG9zdGZpeCkgd2l0aCBFU01UUFNBIGlkIDM4NzU3M0YyQwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTggU2VwIDIwMTcgMTc6NTc6MzQgKzAwMDAgKFVUQykKRGF0ZTogTW9uLCAxOCBTZXAgMjAxNyAxNzo1NzozMyArMDAwMApGcm9tOiBNYXJrIFJheW5zZm9yZCA8b3JnLmFwYWNoZS5tYXZlbi51c2VyQGlvN20uY29tPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogUmU6IFN0YXJ0aW5nIGEgcHVyZSBKYXZhIDkgbW9kdWxhciBwcm9qZWN0Ck1lc3NhZ2UtSUQ6IDwyMDE3MDkxODE3NTczMy4yNTE3ZjZjMUBjb3BwZXJoZWFkLmludC5hcmM3LmluZm8+CkluLVJlcGx5LVRvOiA8b3AueTZydms0cm5rZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+ClJlZmVyZW5jZXM6IDwyMDE3MDkxODE1MTEzOS41MDA1MjM4YkBjb3BwZXJoZWFkLmludC5hcmM3LmluZm8+Cgk8b3AueTZydms0cm5rZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+Ck9yZ2FuaXphdGlvbjogaW83bS5jb20KT3BlblBHUDogaWQ9ODE2OERBRTIyQjE1RDNFREM3MjJDMjNEMEYxNUI3RDA2RkE4MENCODsKIHVybD1odHRwOi8vaW83bS5jb20vcGdwLzgxNjhfREFFMl8yQjE1X0QzRURfQzcyMl9DMjNEXzBGMTVfQjdEMF82RkE4XzBDQjgua2V5Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L3NpZ25lZDsgbWljYWxnPXBncC1zaGE1MTI7CiBib3VuZGFyeT0iU2lnXy9iTnA4MENCaVBGcGZwT0xvcDUzPUM0SiI7IHByb3RvY29sPSJhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlIgoKLS1TaWdfL2JOcDgwQ0JpUEZwZnBPTG9wNTM9QzRKCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VUy1BU0NJSQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPbiAyMDE3LTA5LTE4VDE5OjQ0OjU0ICswMjAwCiJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPiB3cm90ZToKCj4gRm9yIGV2ZXJ5IGRlbGl2ZXJhYmxlIHlvdSB3aWxsIGhhdmUgb25lIE1hdmVuIHByb2plY3QgKGFuZCAxIHBvbS54bWwpLgo+IFNvIGZvciBhIE1hdmVuIHBvaW50IG9mIHZpZXcgaXQgZG9lc24ndCBtYWtlIHNlbnNlIHRvIHN1cHBvcnQgdGhlIGppZ3NhdyA9Cj0yMAo+IG11bHRpIG1vZHVsZSBvcHRpb24uCgpHb29kISBUaGF0J3Mgd2hhdCBJJ2Qgc3VzcGVjdGVkIChhbmQgaG9wZWQhKQoKPiBIZXJlIGFyZSB0aGUgdGhpbmdzIHlvdSAqRE9OJ1QqIGhhdmUgdG8gY2hhbmdlOgo+IC0gZm9sZGVyIHN0cnVjdHVyZQo+IC0gZGVwZW5kZW5jaWVzIG9mIHlvdXIgcG9tLnhtbCAoeW91IGRvbid0IHNwZWNpZnkgd2hpY2ggamFycyBhcmUgbW9kdWxlcyA9Cj0yMAo+IGFuZCB3aGljaCBhcmVuJ3QsIE1hdmVuIHdpbGwgcmVzb2x2ZSB0aGF0IGZvciB5b3UuCj49MjAKPiBZb3Ugb25seSBoYXZlIHRvIGFkZCB0aGUgbW9kdWxlLWluZm8uamF2YSB0byB0aGUgc291cmNlIHJvb3QgYW5kIHVzZSBhdCA9Cj0yMAo+IGxlYXN0IG1hdmVuLWNvbXBpbGVyLXBsdWdpbiAzLjcuMAoKR290IGl0LgoKUHJlc3VtYWJseSBJIGFsc28gbmVlZCB0byB0ZWxsIHRoZSBjb21waWxlciB0aGF0IEkgd2FudCB0byBwcm9kdWNlIGNvZGUKZm9yIHJlbGVhc2UgOSB2aWEgdGhlIHBsdWdpbiBlcXVpdmFsZW50IG9mIHRoZSBuZXcgLS1yZWxlYXNlIGZsYWc/CkFzc3VtaW5nIHRoZXJlIGlzIG9uZSwgdGhhdCBpcy4gSSB1bmRlcnN0YW5kIHRoZSBieXRlY29kZSB2ZXJzaW9uIGhhcwpiZWVuIGluY3JlbWVudGVkIGFnYWluLCBzbyBJJ2Qgd2FudCB0byBiZSBwcm9kdWNpbmcgOSBieXRlY29kZS4KCi0tPTIwCk1hcmsgUmF5bnNmb3JkIHwgaHR0cDovL3d3dy5pbzdtLmNvbQoKLS1TaWdfL2JOcDgwQ0JpUEZwZnBPTG9wNTM9QzRKCkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vcGdwLXNpZ25hdHVyZQpDb250ZW50LURlc2NyaXB0aW9uOiBPcGVuUEdQIGRpZ2l0YWwgc2lnbmF0dXJlCgotLS0tLUJFR0lOIFBHUCBTSUdOQVRVUkUtLS0tLQoKaVFJekJBRUJDZ0FkRmlFRWdXamE0aXNWMCszSElzSTlEeFczMEcrb0RMZ0ZBbG5BQ1EwQUNna1FEeFczMEcrbwpETGg4MHhBQWhyWVRWZXlUc0JsdzU3eXg0YnkyUkF6U04wVklTU2NXenZlVVhEM3FXZVdVUWFxWnhuUDh0bGI2CmxNU3VUMkhvZ0NCODJqalZvWnpBL1R1cVVBRUhROFoydUhEN2pDR2FkdHZXbU52elNrWHlJcVFxRjNPbTNNZ1cKZjBZbTBYTGY2bUNlcDU4MVhGTFEwMW5vVktkNUZrMUZpY0ZsaXJ6R1BzU053Y1lIdDV4Q3NpV0xSU1NISG1NMwoyaU95MDN6aytXK20wQzhZK0NGTzRzRkU3cVZqMjVtaE0yMVJhTldYL0puRmswOXVnN3BLK0NWa0cyMGJ2ZExQCjhaWkNSNDVVZTYvUnQ4TW9aWkdJK25oRUhraG5nUVkycXdpK0hwZTdneGRCNms2cGs5alFCMkFXcnAxZVRSRDAKNmN5ZEpBUG1xODg0UVJFcm9tTWp2VUVicmpQcUVPcHdUYWR4cU1zcHhQUVJILy9lcklqclR2a1hWRm0vcFBWRgpUbVdsenptTWQ3Mi96Slg5KzgvbEVrd29WWTVTb04vTm81dGpqYXcvNG5XZjZWSktEemZsUEpVbTAwcnV4SWdnCkdCQlJxdjBoNkkxWmc1cFdnb0Voc2ZtaEJSOUM0cm54SnE0U0FHWjYxUDZBL1QySnBhOEoxMFlCblF5RGJHNG0KMW5WQzBaZEZsVzFhbW5CRWRiWmJNbWtEUkNMNlFCb284OFQvM01KMTBqb29VcDdoQnRKcXAzVjdWaVBJVHdZOQpVVi9WSlNzL0d0NmFnUHgrZkNJYTZxYm5LWmkzOFZwOTRpTURwYkxpZ3FPcW1BN3FGVTdXK1MwT3k0TkZzVU43Ci9LMXR3amMvVUJPaTlGaGI3eThuTkNzZFFjNnZtcVhGbUJhcEdjang0K1pmclUrUHhsQT0KPThlSS8KLS0tLS1FTkQgUEdQIFNJR05BVFVSRS0tLS0tCgotLVNpZ18vYk5wODBDQmlQRnBmcE9Mb3A1Mz1DNEotLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDA4Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgU2VwIDIwIDE4OjE2OjU5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDA4Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFN0U5REM3N0YKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyMCBTZXAgMjAxNyAxODoxNjo1OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg3NjE0IGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIFNlcCAyMDE3IDE4OjE2OjU3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NzUyNiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBTZXAgMjAxNyAxODoxNjo1NyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg3NDkwIGludm9rZWQgYnkgdWlkIDk5KTsgMjAgU2VwIDIwMTcgMTg6MTY6NTcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWlub3RhdXIuYXBhY2hlLm9yZyAoSEVMTyBtaW5vdGF1ci5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS45KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDIwIFNlcCAyMDE3IDE4OjE2OjU3ICswMDAwClJlY2VpdmVkOiBieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4LCBmcm9tIHVzZXJpZCA2MDA0KQoJaWQgOEM0MzZDNzdFOyBXZWQsIDIwIFNlcCAyMDE3IDE4OjE2OjU3ICswMDAwIChVVEMpClRvOiBhbm5vdW5jZUBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtBTk5dIEFwYWNoZSBNYXZlbiBKTW9kIFBsdWdpbiBWZXJzaW9uIDMuMC4wLWFscGhhLTEgUmVsZWFzZWQKQ2M6IGRldkBtYXZlbi5hcGFjaGUub3JnLHVzZXJzQG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JZDogPDIwMTcwOTIwMTgxNjU3LjhDNDM2Qzc3RUBtaW5vdGF1ci5hcGFjaGUub3JnPgpEYXRlOiBXZWQsIDIwIFNlcCAyMDE3IDE4OjE2OjU3ICswMDAwIChVVEMpCkZyb206IGtobWFyYmFpc2VAYXBhY2hlLm9yZyAoS2FybCBIZWlueiBNYXJiYWlzZSkKClRoZSBBcGFjaGUgTWF2ZW4gdGVhbSBpcyBwbGVhc2VkIHRvIGFubm91bmNlIHRoZSByZWxlYXNlIG9mIHRoZSAKQXBhY2hlIE1hdmVuIEpNb2QgUGx1Z2luIFZlcnNpb24gMy4wLjAtYWxwaGEtMSByZWxlYXNlCiAKaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMvbWF2ZW4tam1vZC1wbHVnaW4vCgpUaGUgSk1vZCBQbHVnaW4gaXMgdXNlZCB0byBjcmVhdGUgSk1vZCBGaWxlcyBodHRwOi8vb3Blbmpkay5qYXZhLm5ldC9qZXBzLzI2MQoKVGhlIHBsdWdpbiBoYXMgZ290IHRoZSBtYWpvciB2ZXJzaW9uIDMgdG8gbWFrZSBjbGVhciB0aGlzIHBsdWdpbgppcyBvbmx5IGZvciBNYXZlbiAzKy4KCiAqIE1hdmVuIDMuWCBvbmx5CiAqIEpESyA3IG1pbmltdW0gcmVxdWlyZW1lbnQKCllvdSBzaG91bGQgc3BlY2lmeSB0aGUgdmVyc2lvbiBpbiB5b3VyIHByb2plY3QncyBwbHVnaW4gY29uZmlndXJhdGlvbjoKIAo8cGx1Z2luPgogIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KICA8YXJ0aWZhY3RJZD5tYXZlbi1qbW9kLXBsdWdpbjwvYXJ0aWZhY3RJZD4KICA8dmVyc2lvbj4zLjAuMC1hbHBoYS0xPC92ZXJzaW9uPgogIDxleHRlbnNpb25zPnRydWU8L2V4dGVuc2lvbnM+CjwvcGx1Z2luPgoKWW91IGNhbiBkb3dubG9hZCB0aGUgYXBwcm9wcmlhdGUgc291cmNlcyBldGMuIGZyb20gdGhlIGRvd25sb2FkIHBhZ2U6CiAKaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMvbWF2ZW4tam1vZC1wbHVnaW4vZG93bmxvYWQuY2dpCiAKUmVsZWFzZSBOb3RlcyBNYXZlbiBKTW9kIFBsdWdpbiAzLjAuMC1hbHBoYS0xCgpodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamVjdElkPTEyMzIxNDMzJnZlcnNpb249MTIzNDEzNjMKCkltcHJvdmVtZW50czoKCiAqIFtNSk1PRC0xXSAtIFVwZ3JhZGUgZGVwZW5kZW5jaWVzIGluIGNvbXBvbmVudAogKiBbTUpNT0QtMl0gLSBDbGFzc3BhdGggLyBNb2R1bGVwYXRoIHVzaW5nIHRoZSBkZXBlbmRlbmNpZXMgb2YgdGhlIGN1cnJlbnQgcHJvamVjdC4KICogW01KTU9ELTNdIC0gQ2hhbmdlZCBtb2R1bGVOYW1lIGludG8gb3V0cHV0RmlsZU5hbWUgdG8gcHJldmVudCBjb25mdXNpb24KICogW01KTU9ELTVdIC0gVXNhZ2Ugb2YgbW9kdWxlTmFtZSBpbiBkZXNjcmliZS9saXN0IGdvYWwgLyBjbGFzc3BhdGggdXNhZ2UgaW4gY3JlYXRlIGdvYWwKCkVuam95LAogCi1UaGUgQXBhY2hlIE1hdmVuIHRlYW0KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQwODgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IFNlcCAyMyAxNTo0NDozMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwODgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNjU5NDYxMDJGOQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDIzIFNlcCAyMDE3IDE1OjQ0OjMxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjcwNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMyBTZXAgMjAxNyAxNTo0NDozMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjYxMCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMyBTZXAgMjAxNyAxNTo0NDozMSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY1OTkgaW52b2tlZCBieSB1aWQgOTkpOyAyMyBTZXAgMjAxNyAxNTo0NDozMCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMjMgU2VwIDIwMTcgMTU6NDQ6MzAgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgRTIyNzhGNTc0ODsgU2F0LCAyMyBTZXAgMjAxNyAxNTo0NDoyOSArMDAwMCAoVVRDKQpGcm9tOiBNaWNoYWVsV2FybmVja2UgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTEzMC1tYXZlbkBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTMwLW1hdmVuQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbiBwdWxsIHJlcXVlc3QgIzEzMDogW01ORy02MjMxXSBWYWxpZGF0ZSBzY29wZSBpbiBkZXBlbmRlbmN5TWFuYWdlbWVudApDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcwOTIzMTU0NDI5LkUyMjc4RjU3NDhAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFNhdCwgMjMgU2VwIDIwMTcgMTU6NDQ6MjkgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIE1pY2hhZWxXYXJuZWNrZSBjbG9zZWQgdGhlIHB1bGwgcmVxdWVzdCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL3B1bGwvMTMwCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQxMDUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIFNlcCAyNyAwMToxMDowNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxMDUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNUU5RjIxMDY5MgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDI3IFNlcCAyMDE3IDAxOjEwOjA1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTYyMDAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjcgU2VwIDIwMTcgMDE6MTA6MDUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU2MDgwIGludm9rZWQgYnkgdWlkIDUwMCk7IDI3IFNlcCAyMDE3IDAxOjEwOjA0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTYwNjkgaW52b2tlZCBieSB1aWQgOTkpOyAyNyBTZXAgMjAxNyAwMToxMDowNCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMjcgU2VwIDIwMTcgMDE6MTA6MDQgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgOUNDQ0FGNTczODsgV2VkLCAyNyBTZXAgMjAxNyAwMToxMDowMiArMDAwMCAoVVRDKQpGcm9tOiBvd2VuZmFycmVsbCA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTU3LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNTctbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNTc6IFNVUkVGSVJFLTEzODMgZGVwZW5kZW5jaWVzVG9TY2FuIERvZXMgTm90IExldmVyYWcuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MDkyNzAxMTAwMy45Q0NDQUY1NzM4QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBXZWQsIDI3IFNlcCAyMDE3IDAxOjEwOjAyICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBvd2VuZmFycmVsbCBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNTcKICAKICAgIEBUaWJvcjE3IC0gYW55IHVwZGF0ZXM/CgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQxMDgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIFNlcCAyNyAxNzowMzozNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxMDgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOUY5NTExMEMzMwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDI3IFNlcCAyMDE3IDE3OjAzOjM1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzUyMzEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjcgU2VwIDIwMTcgMTc6MDM6MzUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc1MTY0IGludm9rZWQgYnkgdWlkIDUwMCk7IDI3IFNlcCAyMDE3IDE3OjAzOjM1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzUxNTMgaW52b2tlZCBieSB1aWQgOTkpOyAyNyBTZXAgMjAxNyAxNzowMzozNCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMjcgU2VwIDIwMTcgMTc6MDM6MzQgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgQ0FCRjdGNTczMDsgV2VkLCAyNyBTZXAgMjAxNyAxNzowMzozNCArMDAwMCAoVVRDKQpGcm9tOiBUaWJvcjE3IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNTctbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE1Ny1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzE1NzogU1VSRUZJUkUtMTM4MyBkZXBlbmRlbmNpZXNUb1NjYW4gRG9lcyBOb3QgTGV2ZXJhZy4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcwOTI3MTcwMzM0LkNBQkY3RjU3MzBAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFdlZCwgMjcgU2VwIDIwMTcgMTc6MDM6MzQgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIFRpYm9yMTcgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTU3CiAgCiAgICBAb3dlbmZhcnJlbGwgCiAgICBZZWFoLCBJIGhhdmUgcmVsZWFzZWQgMi4yMC4xIGFuZCBJIGhhZCB0byBwb3N0cG9uZSB0aGlzIGlzc3VlIGZvciAyLjIxLjEuCiAgICBPT00gd2FzIGZpeGVkIGluIDIuMjAuMSBhbmQgdXNlcnMgY291bGQgbm90IHdhaXQgbG9uZ2VyLiBUaGlzIGluY2x1ZGVkIEphdmE5IHN1cHBvcnQuCiAgICBKYXZhIDkgaXMgb3V0IGFuZCBJIHdhbnQgdG8gcmVsZWFzZSBTdXJlZmlyZSAyLjIxLjAuSmlnc2F3IGluIG5leHQgZmV3IGRheXMgd2hpY2ggaGFzIGhpZ2hlciBwcmlvcml0eS4KICAgIEFuZCB0aGVuIFN1cmVmaXJlIDIuMjEuMSBpcyBwbGFuZWQgZm9yIHlvdXIgYW5kIG90aGVyIHB1bGwgcmVxdWVzdCBmaXhlZCBhcyB3ZWxsLgogICAgVGhlbiAyLjIxLjIgd2lsbCBmaXggYSBibG9ja2VyIGlzc3VlLCBhbmQgdGhlbiB3ZSB3aWxsIGNvbmNlbnRyYXRlIG9uIDMuMC4wLk0xIGFuZCBKVW5pdDUuCiAgICBTbyB0aGlzIGlzIG15IHBsYW4uCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQxMzUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE9jdCAgMyAxMDoyNDoyMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxMzUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNDVDMUQxMEIyRQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsICAzIE9jdCAyMDE3IDEwOjI0OjIwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzc0MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAzIE9jdCAyMDE3IDEwOjI0OjE5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNjU0IGludm9rZWQgYnkgdWlkIDUwMCk7IDMgT2N0IDIwMTcgMTA6MjQ6MTkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNjQzIGludm9rZWQgYnkgdWlkIDk5KTsgMyBPY3QgMjAxNyAxMDoyNDoxOSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMDMgT2N0IDIwMTcgMTA6MjQ6MTkgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNzdBODJGNTU2MTsgVHVlLCAgMyBPY3QgMjAxNyAxMDoyNDoxNyArMDAwMCAoVVRDKQpGcm9tOiBzY2VsYSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTctbWF2ZW4taW5kZXhlckBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTctbWF2ZW4taW5kZXhlckBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4taW5kZXhlciBwdWxsIHJlcXVlc3QgIzE3OiBNaWdyYXRpb24gdG8gTHVjZW5lIDYuMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzEwMDMxMDI0MTguNzdBODJGNTU2MUBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogVHVlLCAgMyBPY3QgMjAxNyAxMDoyNDoxNyArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgc2NlbGEgY2xvc2VkIHRoZSBwdWxsIHJlcXVlc3QgYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1pbmRleGVyL3B1bGwvMTcKCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDEzNi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgT2N0ICAzIDEwOjMxOjE5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDEzNi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAzRUUwMzEwQjdBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgIDMgT2N0IDIwMTcgMTA6MzE6MTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxNjM3OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAzIE9jdCAyMDE3IDEwOjMxOjE4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNjI5MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAzIE9jdCAyMDE3IDEwOjMxOjE4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTYyODAgaW52b2tlZCBieSB1aWQgOTkpOyAzIE9jdCAyMDE3IDEwOjMxOjE4IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAwMyBPY3QgMjAxNyAxMDozMToxOCArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCA4MEMxOEY1NzE1OyBUdWUsICAzIE9jdCAyMDE3IDEwOjMxOjE4ICswMDAwIChVVEMpCkZyb206IHNjZWxhIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNy1tYXZlbi1pbmRleGVyQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNy1tYXZlbi1pbmRleGVyQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1pbmRleGVyIGlzc3VlICMxNzogTWlncmF0aW9uIHRvIEx1Y2VuZSA2LjEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMDAzMTAzMTE4LjgwQzE4RjU3MTVAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFR1ZSwgIDMgT2N0IDIwMTcgMTA6MzE6MTggKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIHNjZWxhIGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1pbmRleGVyL3B1bGwvMTcKICAKICAgIEknbGwgYmUgcHJlcGFyaW5nIGEgbWlncmF0aW9uIGRpcmVjdGx5IHRvIGp1c3QtcmVsZWFzZWQgTHVjZW5lIDcuCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQxNDUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE9jdCAgNSAwNzoxNzo0MCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxNDUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNDZBQzMxMEI2RQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsICA1IE9jdCAyMDE3IDA3OjE3OjQwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODI1NjUgaW52b2tlZCBieSB1aWQgNTAwKTsgNSBPY3QgMjAxNyAwNzoxNzozOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODI0ODAgaW52b2tlZCBieSB1aWQgNTAwKTsgNSBPY3QgMjAxNyAwNzoxNzozOSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgyNDY5IGludm9rZWQgYnkgdWlkIDk5KTsgNSBPY3QgMjAxNyAwNzoxNzozOSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMDUgT2N0IDIwMTcgMDc6MTc6MzkgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgN0MwQTNGNTcxNTsgVGh1LCAgNSBPY3QgMjAxNyAwNzoxNzozNyArMDAwMCAoVVRDKQpGcm9tOiBzZ2FyZWxsZSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTMxLW1hdmVuLXBsdWdpbnNAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTEzMS1tYXZlbi1wbHVnaW5zQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1wbHVnaW5zIHB1bGwgcmVxdWVzdCAjMTMxOiBNUERGLTQ4IE1ha2UgUERGIHBsdWdpbiBydW4gcmVwb3J0cyB3aGVuIHVzLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzEwMDUwNzE3MzguN0MwQTNGNTcxNUBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogVGh1LCAgNSBPY3QgMjAxNyAwNzoxNzozNyArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgc2dhcmVsbGUgY2xvc2VkIHRoZSBwdWxsIHJlcXVlc3QgYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL3B1bGwvMTMxCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQxODgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE9jdCAgOCAxMzowODo0OCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxODgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgODA2MzMxMDM1MQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sICA4IE9jdCAyMDE3IDEzOjA4OjQ4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjgzNiBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IE9jdCAyMDE3IDEzOjA4OjQ4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2NzQ2IGludm9rZWQgYnkgdWlkIDUwMCk7IDggT2N0IDIwMTcgMTM6MDg6NDggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2NzE3IGludm9rZWQgYnkgdWlkIDk5KTsgOCBPY3QgMjAxNyAxMzowODo0OCAtMDAwMApSZWNlaXZlZDogZnJvbSBtaW5vdGF1ci5hcGFjaGUub3JnIChIRUxPIG1pbm90YXVyLmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjkpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMDggT2N0IDIwMTcgMTM6MDg6NDcgKzAwMDAKUmVjZWl2ZWQ6IGJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgsIGZyb20gdXNlcmlkIDYwMDQpCglpZCBBQjUyQTEwMzUwOyBTdW4sICA4IE9jdCAyMDE3IDEzOjA4OjQ3ICswMDAwIChVVEMpClRvOiBhbm5vdW5jZUBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtBTk5dIEFwYWNoZSBNYXZlbiBXQVIgUGx1Z2luIFZlcnNpb24gMy4yLjAgUmVsZWFzZWQKQ2M6IGRldkBtYXZlbi5hcGFjaGUub3JnLHVzZXJzQG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JZDogPDIwMTcxMDA4MTMwODQ3LkFCNTJBMTAzNTBAbWlub3RhdXIuYXBhY2hlLm9yZz4KRGF0ZTogU3VuLCAgOCBPY3QgMjAxNyAxMzowODo0NyArMDAwMCAoVVRDKQpGcm9tOiBraG1hcmJhaXNlQGFwYWNoZS5vcmcgKEthcmwgSGVpbnogTWFyYmFpc2UpCgpUaGUgQXBhY2hlIE1hdmVuIHRlYW0gaXMgcGxlYXNlZCB0byBhbm5vdW5jZSB0aGUgcmVsZWFzZSBvZiB0aGUgCkFwYWNoZSBNYXZlbiBXQVIgUGx1Z2luLCB2ZXJzaW9uIDMuMi4wLgoKVGhlIFdBUiBQbHVnaW4gaXMgcmVzcG9uc2libGUgZm9yIGNvbGxlY3RpbmcgYWxsIGFydGlmYWN0IGRlcGVuZGVuY2llcywgY2xhc3NlcwphbmQgcmVzb3VyY2VzIG9mIHRoZSB3ZWIgYXBwbGljYXRpb24gYW5kIHBhY2thZ2luZyB0aGVtIGludG8gYSB3ZWIgYXBwbGljYXRpb24KYXJjaGl2ZS4KCmh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMvbWF2ZW4td2FyLXBsdWdpbi8KCllvdSBzaG91bGQgc3BlY2lmeSB0aGUgdmVyc2lvbiBpbiB5b3VyIHByb2plY3QncyBwbHVnaW4gY29uZmlndXJhdGlvbjoKCjxwbHVnaW4+CiAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgogIDxhcnRpZmFjdElkPm1hdmVuLXdhci1wbHVnaW48L2FydGlmYWN0SWQ+CiAgPHZlcnNpb24+My4yLjA8L3ZlcnNpb24+CjwvcGx1Z2luPgoKWW91IGNhbiBkb3dubG9hZCB0aGUgYXBwcm9wcmlhdGUgc291cmNlcyBldGMuIGZyb20gdGhlIGRvd25sb2FkIHBhZ2U6CgpodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy9tYXZlbi13YXItcGx1Z2luL2Rvd25sb2FkLmNnaQoKSW1wb3J0YW50IE5vdGU6IAoKICogTWF2ZW4gMy5YIG9ubHkKICogSkRLIDcgbWluaW11bSByZXF1aXJlbWVudAoKUmVsZWFzZSBOb3RlcyAtIE1hdmVuIFdBUiBQbHVnaW4gLSBWZXJzaW9uIDMuMi4wCgpodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamVjdElkPTEyMzE4MTIxJnZlcnNpb249MTIzNDEzNzIKCgpCdWc6CgogKiBbTVdBUi00MDddIC0gQmluYXJ5IGZpbGVzIGFyZSBtb2RpZmllZCBkdXJpbmcgd2ViLnhtbCBmaWx0ZXJpbmc7IHJldmVydCBNV0FSLTQwNAoKRGVwZW5kZW5jeSB1cGdyYWRlczoKCiAqIFtNV0FSLTQwOV0gLSBVcGdyYWRlIG1hdmVuLWFyY2hpdmVyIHRvIDMuMi4wIC8gcGxleHVzLWFyY2hpdmVyIDMuNQogKiBbTVdBUi00MTBdIC0gVXBncmFkZSBwbGV4dXMtdXRpbHMgdG8gdmVyc2lvbiAzLjEuMAoKRW5qb3ksCgotVGhlIEFwYWNoZSBNYXZlbiB0ZWFtCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MjAxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBPY3QgIDkgMDQ6MDY6NTMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjAxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEYyMjIzMTA4MEIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAgOSBPY3QgMjAxNyAwNDowNjo1MiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI1MzE0IGludm9rZWQgYnkgdWlkIDUwMCk7IDkgT2N0IDIwMTcgMDQ6MDY6NTIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI1MjQxIGludm9rZWQgYnkgdWlkIDUwMCk7IDkgT2N0IDIwMTcgMDQ6MDY6NTIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNTIzMCBpbnZva2VkIGJ5IHVpZCA5OSk7IDkgT2N0IDIwMTcgMDQ6MDY6NTIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDA5IE9jdCAyMDE3IDA0OjA2OjUyICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDNEQTdERTdEQTI7IE1vbiwgIDkgT2N0IDIwMTcgMDQ6MDY6NTIgKzAwMDAgKFVUQykKRnJvbToga3JtYWhhZGV2YW4gPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE2Ni1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTY2LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBpc3N1ZSAjMTY2OiBTdXBwb3J0IGZpbHRlcmluZyBvZiB0ZXN0cyBmcm9tIEJhc2UgQ2xhc3MgKFRlc3ROLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzEwMDkwNDA2NTIuM0RBN0RFN0RBMkBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogTW9uLCAgOSBPY3QgMjAxNyAwNDowNjo1MiArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIga3JtYWhhZGV2YW4gY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY2CiAgCiAgICBwaW5nIEBUaWJvcjE3IC0gVGhpcyBQUiBiYXNpY2FsbHkgYWRkcmVzc2VzIG9ubHkgdGhlICpUZXN0TkcqIHBvcnRpb24gb2YgdGhlIGJ1ZyBodHRwczovL2dpdGh1Yi5jb20vY2JldXN0L3Rlc3RuZy9pc3N1ZXMvMTU2MwoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MjA1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBPY3QgIDkgMjA6NTA6MzAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjA1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDU3Mjc0MTA0QzMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAgOSBPY3QgMjAxNyAyMDo1MDozMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg5NTA4IGludm9rZWQgYnkgdWlkIDUwMCk7IDkgT2N0IDIwMTcgMjA6NTA6MzAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg5NDI4IGludm9rZWQgYnkgdWlkIDUwMCk7IDkgT2N0IDIwMTcgMjA6NTA6MjkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4OTQxNyBpbnZva2VkIGJ5IHVpZCA5OSk7IDkgT2N0IDIwMTcgMjA6NTA6MjkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDA5IE9jdCAyMDE3IDIwOjUwOjI5ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDk2MkVDRjVDOUE7IE1vbiwgIDkgT2N0IDIwMTcgMjA6NTA6MjkgKzAwMDAgKFVUQykKRnJvbTogYXNmZ2l0IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0yMC1tYXZlbi1zaGFyZWRAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTIwLW1hdmVuLXNoYXJlZEBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc2hhcmVkIHB1bGwgcmVxdWVzdCAjMjA6IENoYW5nZWQgdGhlIHNjb3BlRmlsdGVyIHRvIHVzZSBhIExpbmtlZEhhc2hTZS4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMDA5MjA1MDI5Ljk2MkVDRjVDOUFAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IE1vbiwgIDkgT2N0IDIwMTcgMjA6NTA6MjkgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIGFzZmdpdCBjbG9zZWQgdGhlIHB1bGwgcmVxdWVzdCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXNoYXJlZC9wdWxsLzIwCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQyMTktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIE9jdCAxMSAxODoyNDozMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyMTktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRTczQ0UxMDg3NAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDExIE9jdCAyMDE3IDE4OjI0OjI5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTAyMzIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgT2N0IDIwMTcgMTg6MjQ6MjkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkwMTQwIGludm9rZWQgYnkgdWlkIDUwMCk7IDExIE9jdCAyMDE3IDE4OjI0OjI5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTAxMjkgaW52b2tlZCBieSB1aWQgOTkpOyAxMSBPY3QgMjAxNyAxODoyNDoyOSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMTEgT2N0IDIwMTcgMTg6MjQ6MjkgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgMkI2MjBERkEzRDsgV2VkLCAxMSBPY3QgMjAxNyAxODoyNDoyOSArMDAwMCAoVVRDKQpGcm9tOiBUaWJvcjE3IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNjctbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE2Ny1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzE2NzogU3BlZWR1cCBTdGFuZGFyZCBPdXRwdXQgaWYgVGVzdHMKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTAxMTE4MjQyOS4yQjYyMERGQTNEQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBXZWQsIDExIE9jdCAyMDE3IDE4OjI0OjI5ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBUaWJvcjE3IGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2NwogIAogICAgWW91IGNvbXBsZXRlbHkgY2hhbmdlZCBjb2RlIHN0eWxlLgogICAgUGxlYXNlIHVzZSBBU0YgTWF2ZW4gY29kZSBzdHlsZSBiZWNhdXNlIGhlcmUgSSBkbyBub3Qgc2VlIHJlbGV2YW50IGNoYW5nZXMuCiAgICAKICAgIE9uIFdlZCwgT2N0IDExLCAyMDE3IGF0IDU6NTIgUE0sIERhR2VSZSA8bm90aWZpY2F0aW9uc0BnaXRodWIuY29tPiB3cm90ZToKICAgIAogICAgPiBDdXJyZW50bHksIHN1cmVmaXJlIGNyZWF0ZXMgYSBuZXcgYnl0ZSBhcnJheSB3aXRoIHNpemUgb2YgdGhlIGlucHV0ICozIGZvcgogICAgPiBzYXZpbmcgdGhlIHVuZXNjYXBlZCBpbnB1dC4gVGhpcyBtYWRlIHN1cmVmaXJlIHdheSBzbG93ZXIgdGhhbiBydW5uaW5nIGEKICAgID4gdGVzdCBkaXJlY3RseSBpbiBlY2xpcHNlIG9yIHdpdGggZ3JhZGxlLCBpZiBpdCB1c2VkIHN0YW5kYXJkb3V0IG9yIGVycm9yCiAgICA+IGhlYXZpbHkuCiAgICA+IEJ5IHVzaW5nIGEgbGlzdCBmb3Igc2F2aW5nIHRoZSBlbGVtZW50cyBhbmQgY29udmVydGluZyB0aGVtIHRvIGFuIGFycmF5CiAgICA+IGFmdGVyd2FyZHMsIHRoaXMgcHJvYmxlbSBpcyBzb2x2ZWQsIGFuZCBzdGRvdXQtaGVhdnkgc3VyZWZpcmUgdGVzdHMgZ2V0CiAgICA+IGZhc3Rlci4KICAgID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICA+IFlvdSBjYW4gdmlldywgY29tbWVudCBvbiwgb3IgbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3Qgb25saW5lIGF0OgogICAgPgogICAgPiAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNjcKICAgID4gQ29tbWl0IFN1bW1hcnkKICAgID4KICAgID4gICAgLSBCZWZvcmUsIHN1cmVmaXJlIGNyZWF0ZWQgYSBuZXcgYnl0ZSBhcnJheSB3aXRoIHNpemUgb2YgdGhlIGlucHV0ICozCiAgICA+ICAgIGZvciBzYXZpbmcgdGhlIHVuZXNjYXBlZCBpbnB1dC4gVGhpcyBtYWRlCiAgICA+CiAgICA+IEZpbGUgQ2hhbmdlcwogICAgPgogICAgPiAgICAtICpNKiBzdXJlZmlyZS1hcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3N1cmVmaXJlLwogICAgPiAgICBib290ZXIvRm9ya2luZ1J1bkxpc3RlbmVyLmphdmEKICAgID4gICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNjcvZmlsZXMjZGlmZi0wPiAoMjc4KQogICAgPiAgICAtICpNKiBzdXJlZmlyZS1hcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3N1cmVmaXJlLwogICAgPiAgICB1dGlsL2ludGVybmFsL1N0cmluZ1V0aWxzLmphdmEKICAgID4gICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNjcvZmlsZXMjZGlmZi0xPiAoMzI3KQogICAgPiAgICAtICpNKiBzdXJlZmlyZS1hcGkvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL3N1cmVmaXJlLwogICAgPiAgICB1dGlsL2ludGVybmFsL1N0cmluZ1V0aWxzVGVzdC5qYXZhCiAgICA+ICAgIDxodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY3L2ZpbGVzI2RpZmYtMj4gKDg0KQogICAgPgogICAgPiBQYXRjaCBMaW5rczoKICAgID4KICAgID4gICAgLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY3LnBhdGNoCiAgICA+ICAgIC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2Ny5kaWZmCiAgICA+CiAgICA+IOKAlAogICAgPiBZb3UgYXJlIHJlY2VpdmluZyB0aGlzIGJlY2F1c2UgeW91IGFyZSBzdWJzY3JpYmVkIHRvIHRoaXMgdGhyZWFkLgogICAgPiBSZXBseSB0byB0aGlzIGVtYWlsIGRpcmVjdGx5LCB2aWV3IGl0IG9uIEdpdEh1YgogICAgPiA8aHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2Nz4sIG9yIG11dGUgdGhlIHRocmVhZAogICAgPiA8aHR0cHM6Ly9naXRodWIuY29tL25vdGlmaWNhdGlvbnMvdW5zdWJzY3JpYmUtYXV0aC9BQV95UjBEWGlnZktnQTZmSHlza3Iyb24zcmxHTjNKamtzNXNyT1JFZ2FKcFpNNFAxdHJ1PgogICAgPiAuCiAgICA+CiAgICAKICAgIAogICAgCiAgICAtLSAKICAgIENoZWVycwogICAgVGlib3IKCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQyMjAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIE9jdCAxMSAxODo0MToxOCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyMjAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNkJFQzkxMDhGRQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDExIE9jdCAyMDE3IDE4OjQxOjE4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTU0ODcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgT2N0IDIwMTcgMTg6MzE6NDIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk1NDI4IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIE9jdCAyMDE3IDE4OjMxOjQyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTU0MTIgaW52b2tlZCBieSB1aWQgOTkpOyAxMSBPY3QgMjAxNyAxODozMTozOSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMTEgT2N0IDIwMTcgMTg6MzE6MzkgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgMEYxQkVERkI2RTsgV2VkLCAxMSBPY3QgMjAxNyAxODozMTozOCArMDAwMCAoVVRDKQpGcm9tOiBUaWJvcjE3IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNjctbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE2Ny1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzE2NzogU3BlZWR1cCBTdGFuZGFyZCBPdXRwdXQgaWYgVGVzdHMKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTAxMTE4MzEzOC4wRjFCRURGQjZFQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBXZWQsIDExIE9jdCAyMDE3IDE4OjMxOjM4ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBUaWJvcjE3IGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2NwogIAogICAgUGxzIGRvIGl0IGluIGEgbmV3IFBSLiBIZXJlIGlzIGxpbmsgZm9yIEVjbGlwc2UvSWRlYSBjb2RlIHN0eWxlIHhtbAogICAgaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2RldmVsb3BlcnMvY29udmVudGlvbnMvY29kZS5odG1sCiAgICAKICAgIE9uIFdlZCwgT2N0IDExLCAyMDE3IGF0IDg6MjQgUE0sIFRpYm9yIERpZ2FuYSA8dGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tPgogICAgd3JvdGU6CiAgICAKICAgID4gWW91IGNvbXBsZXRlbHkgY2hhbmdlZCBjb2RlIHN0eWxlLgogICAgPiBQbGVhc2UgdXNlIEFTRiBNYXZlbiBjb2RlIHN0eWxlIGJlY2F1c2UgaGVyZSBJIGRvIG5vdCBzZWUgcmVsZXZhbnQgY2hhbmdlcy4KICAgID4KICAgID4gT24gV2VkLCBPY3QgMTEsIDIwMTcgYXQgNTo1MiBQTSwgRGFHZVJlIDxub3RpZmljYXRpb25zQGdpdGh1Yi5jb20+IHdyb3RlOgogICAgPgogICAgPj4gQ3VycmVudGx5LCBzdXJlZmlyZSBjcmVhdGVzIGEgbmV3IGJ5dGUgYXJyYXkgd2l0aCBzaXplIG9mIHRoZSBpbnB1dCAqMwogICAgPj4gZm9yIHNhdmluZyB0aGUgdW5lc2NhcGVkIGlucHV0LiBUaGlzIG1hZGUgc3VyZWZpcmUgd2F5IHNsb3dlciB0aGFuIHJ1bm5pbmcKICAgID4+IGEgdGVzdCBkaXJlY3RseSBpbiBlY2xpcHNlIG9yIHdpdGggZ3JhZGxlLCBpZiBpdCB1c2VkIHN0YW5kYXJkb3V0IG9yIGVycm9yCiAgICA+PiBoZWF2aWx5LgogICAgPj4gQnkgdXNpbmcgYSBsaXN0IGZvciBzYXZpbmcgdGhlIGVsZW1lbnRzIGFuZCBjb252ZXJ0aW5nIHRoZW0gdG8gYW4gYXJyYXkKICAgID4+IGFmdGVyd2FyZHMsIHRoaXMgcHJvYmxlbSBpcyBzb2x2ZWQsIGFuZCBzdGRvdXQtaGVhdnkgc3VyZWZpcmUgdGVzdHMgZ2V0CiAgICA+PiBmYXN0ZXIuCiAgICA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgID4+IFlvdSBjYW4gdmlldywgY29tbWVudCBvbiwgb3IgbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3Qgb25saW5lIGF0OgogICAgPj4KICAgID4+ICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2NwogICAgPj4gQ29tbWl0IFN1bW1hcnkKICAgID4+CiAgICA+PiAgICAtIEJlZm9yZSwgc3VyZWZpcmUgY3JlYXRlZCBhIG5ldyBieXRlIGFycmF5IHdpdGggc2l6ZSBvZiB0aGUgaW5wdXQgKjMKICAgID4+ICAgIGZvciBzYXZpbmcgdGhlIHVuZXNjYXBlZCBpbnB1dC4gVGhpcyBtYWRlCiAgICA+PgogICAgPj4gRmlsZSBDaGFuZ2VzCiAgICA+PgogICAgPj4gICAgLSAqTSogc3VyZWZpcmUtYXBpL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9zdXJlZmlyZS9ib290ZXIvCiAgICA+PiAgICBGb3JraW5nUnVuTGlzdGVuZXIuamF2YQogICAgPj4gICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNjcvZmlsZXMjZGlmZi0wPgogICAgPj4gICAgKDI3OCkKICAgID4+ICAgIC0gKk0qIHN1cmVmaXJlLWFwaS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vc3VyZWZpcmUvdXRpbC8KICAgID4+ICAgIGludGVybmFsL1N0cmluZ1V0aWxzLmphdmEKICAgID4+ICAgIDxodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY3L2ZpbGVzI2RpZmYtMT4KICAgID4+ICAgICgzMjcpCiAgICA+PiAgICAtICpNKiBzdXJlZmlyZS1hcGkvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL3N1cmVmaXJlL3V0aWwvCiAgICA+PiAgICBpbnRlcm5hbC9TdHJpbmdVdGlsc1Rlc3QuamF2YQogICAgPj4gICAgPGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNjcvZmlsZXMjZGlmZi0yPiAoODQpCiAgICA+PgogICAgPj4gUGF0Y2ggTGlua3M6CiAgICA+PgogICAgPj4gICAgLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY3LnBhdGNoCiAgICA+PiAgICAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNjcuZGlmZgogICAgPj4KICAgID4+IOKAlAogICAgPj4gWW91IGFyZSByZWNlaXZpbmcgdGhpcyBiZWNhdXNlIHlvdSBhcmUgc3Vic2NyaWJlZCB0byB0aGlzIHRocmVhZC4KICAgID4+IFJlcGx5IHRvIHRoaXMgZW1haWwgZGlyZWN0bHksIHZpZXcgaXQgb24gR2l0SHViCiAgICA+PiA8aHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2Nz4sIG9yIG11dGUgdGhlIHRocmVhZAogICAgPj4gPGh0dHBzOi8vZ2l0aHViLmNvbS9ub3RpZmljYXRpb25zL3Vuc3Vic2NyaWJlLWF1dGgvQUFfeVIwRFhpZ2ZLZ0E2Zkh5c2tyMm9uM3JsR04zSmprczVzck9SRWdhSnBaTTRQMXRydT4KICAgID4+IC4KICAgID4+CiAgICA+CiAgICA+CiAgICA+CiAgICA+IC0tCiAgICA+IENoZWVycwogICAgPiBUaWJvcgogICAgPgogICAgCiAgICAKICAgIAogICAgLS0gCiAgICBDaGVlcnMKICAgIFRpYm9yCgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MjIyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBPY3QgMTEgMjM6MTM6MDYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjIyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDUyOTk1MTA2RDIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAxMSBPY3QgMjAxNyAyMzoxMzowNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDc5ODEyIGludm9rZWQgYnkgdWlkIDUwMCk7IDExIE9jdCAyMDE3IDIzOjEzOjA2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3OTcyNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBPY3QgMjAxNyAyMzoxMzowNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc5NzA3IGludm9rZWQgYnkgdWlkIDk5KTsgMTEgT2N0IDIwMTcgMjM6MTM6MDUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDExIE9jdCAyMDE3IDIzOjEzOjA1ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDgzNzBDREY5RkE7IFdlZCwgMTEgT2N0IDIwMTcgMjM6MTM6MDUgKzAwMDAgKFVUQykKRnJvbTogRGFHZVJlIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNjctbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE2Ny1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzE2NzogU3BlZWR1cCBTdGFuZGFyZCBPdXRwdXQgaWYgVGVzdHMKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTAxMTIzMTMwNS44MzcwQ0RGOUZBQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBXZWQsIDExIE9jdCAyMDE3IDIzOjEzOjA1ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBEYUdlUmUgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY3CiAgCiAgICBJIGFkanVzdGVkIHRoZSBjdXJyZW50IGNvbW1pdCBhbmQgUFIgdG8gY29kZSBzdHlsZSwgY291bGQgeW91IHJlLXJldmlldyB0aGlzIG9uZT8KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDIyNS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgT2N0IDEyIDEyOjEyOjQ1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDIyNS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4M0U3QTEwMkJFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMTIgT2N0IDIwMTcgMTI6MTI6NDUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3NTg1MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMiBPY3QgMjAxNyAxMjoxMjo0NSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzU3NzUgaW52b2tlZCBieSB1aWQgNTAwKTsgMTIgT2N0IDIwMTcgMTI6MTI6NDUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NTc2MyBpbnZva2VkIGJ5IHVpZCA5OSk7IDEyIE9jdCAyMDE3IDEyOjEyOjQ0IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAxMiBPY3QgMjAxNyAxMjoxMjo0NCArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCAyMjg0RURGQTZEOyBUaHUsIDEyIE9jdCAyMDE3IDEyOjEyOjQzICswMDAwIChVVEMpCkZyb206IGNrdXJiYW4gPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE1MC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTUwLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBpc3N1ZSAjMTUwOiBTVVJFRklSRS0xMzcyIEZpbHRlciB0ZXN0cyB0byBiZSByZXJ1biBieSBkZXNjcmlwLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzEwMTIxMjEyNDQuMjI4NEVERkE2REBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogVGh1LCAxMiBPY3QgMjAxNyAxMjoxMjo0MyArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgY2t1cmJhbiBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNTAKICAKICAgIEBUaWJvcjE3IHdoYXRzIEVUQSBmb3IgdGhpcyA/IAoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MjMwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBPY3QgMTMgMDY6NDE6MDIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjMwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDlDQUFDMTAxQ0YKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAxMyBPY3QgMjAxNyAwNjo0MTowMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDkyOTU3IGludm9rZWQgYnkgdWlkIDUwMCk7IDEzIE9jdCAyMDE3IDA2OjQxOjAyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5Mjg2NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMyBPY3QgMjAxNyAwNjo0MTowMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkyODU1IGludm9rZWQgYnkgdWlkIDk5KTsgMTMgT2N0IDIwMTcgMDY6NDE6MDEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDEzIE9jdCAyMDE3IDA2OjQxOjAxICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIENEMjkyREZBMUI7IEZyaSwgMTMgT2N0IDIwMTcgMDY6NDA6NTggKzAwMDAgKFVUQykKRnJvbTogVGlib3IxNyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTUwLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNTAtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNTA6IFNVUkVGSVJFLTEzNzIgRmlsdGVyIHRlc3RzIHRvIGJlIHJlcnVuIGJ5IGRlc2NyaXAuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTAxMzA2NDA1OS5DRDI5MkRGQTFCQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBGcmksIDEzIE9jdCAyMDE3IDA2OjQwOjU4ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBUaWJvcjE3IGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE1MAogIAogICAgQGNrdXJiYW4gCiAgICBJIGNvdWxkIG5vdCByZWxlYXNlIGAyLjIxLjAuSmlnc2F3YCBiZWNhdXNlIEkgd2FzIGlsbC4gSXQncyBub3QgbXVjaCB3b3JrIGRvIHRvLgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MjMxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBPY3QgMTMgMDk6MzM6NTggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjMxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDk3MzNFMTA5MjAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAxMyBPY3QgMjAxNyAwOTozMzo1OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDMwMjgzIGludm9rZWQgYnkgdWlkIDUwMCk7IDEzIE9jdCAyMDE3IDA5OjMzOjU4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMDE5NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMyBPY3QgMjAxNyAwOTozMzo1OCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMwMTgyIGludm9rZWQgYnkgdWlkIDk5KTsgMTMgT2N0IDIwMTcgMDk6MzM6NTcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDEzIE9jdCAyMDE3IDA5OjMzOjU3ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIEQ4OTgwREZBRTE7IEZyaSwgMTMgT2N0IDIwMTcgMDk6MzM6NTcgKzAwMDAgKFVUQykKRnJvbTogc2dhcmVsbGUgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTEzMi1tYXZlbi1wbHVnaW5zQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xMzItbWF2ZW4tcGx1Z2luc0BnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tcGx1Z2lucyBwdWxsIHJlcXVlc3QgIzEzMjogTVBERi00ODogVXBkYXRlIHNpdGUgZG9jdW1lbnRhdGlvbiAmIG5vbiBzdS4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMDEzMDkzMzU3LkQ4OTgwREZBRTFAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IEZyaSwgMTMgT2N0IDIwMTcgMDk6MzM6NTcgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIHNnYXJlbGxlIGNsb3NlZCB0aGUgcHVsbCByZXF1ZXN0IGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9wdWxsLzEzMgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MjM3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBPY3QgMTQgMDE6NDg6NTAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjM3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDFDN0REMTAwQjAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAxNCBPY3QgMjAxNyAwMTo0ODo1MCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk3MzkzIGludm9rZWQgYnkgdWlkIDUwMCk7IDE0IE9jdCAyMDE3IDAxOjQ4OjQ5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NzMxMCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNCBPY3QgMjAxNyAwMTo0ODo0OSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk3MjkxIGludm9rZWQgYnkgdWlkIDk5KTsgMTQgT2N0IDIwMTcgMDE6NDg6NDkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDE0IE9jdCAyMDE3IDAxOjQ4OjQ5ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDRDRDk1REZCMzE7IFNhdCwgMTQgT2N0IDIwMTcgMDE6NDg6NDkgKzAwMDAgKFVUQykKRnJvbTogc3B5aHVudGVyOTkgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTQtbWF2ZW4tZG94aWFAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTQtbWF2ZW4tZG94aWFAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLWRveGlhIHB1bGwgcmVxdWVzdCAjNDogRE9YSUEtNTYyIGluaXRpYWwgY29tbWl0IGZvciB0b2Mgc3VwcG9ydCwgdGl0bGUuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTAxNDAxNDg0OS40Q0Q5NURGQjMxQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBTYXQsIDE0IE9jdCAyMDE3IDAxOjQ4OjQ5ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBzcHlodW50ZXI5OSBjbG9zZWQgdGhlIHB1bGwgcmVxdWVzdCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRveGlhL3B1bGwvNAoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MjUxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBPY3QgMTYgMTY6MTI6MzUgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjUxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDgzQzI1MTAyOUEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxNiBPY3QgMjAxNyAxNjoxMjozNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk3MjA2IGludm9rZWQgYnkgdWlkIDUwMCk7IDE2IE9jdCAyMDE3IDE2OjEyOjM1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NzExNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNiBPY3QgMjAxNyAxNjoxMjozNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk3MTAzIGludm9rZWQgYnkgdWlkIDk5KTsgMTYgT2N0IDIwMTcgMTY6MTI6MzQgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDE2IE9jdCAyMDE3IDE2OjEyOjM0ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMjYwOTIxODA4RTQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE2IE9jdCAyMDE3IDE2OjEyOjM0ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMQpYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBWSG5qdHBWZWJualcgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sIDE2IE9jdCAyMDE3IDE2OjEyOjMzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGRkMTczMzIua2Fzc2VydmVyLmNvbSAoZGQxNzMzMi5rYXNzZXJ2ZXIuY29tIFs4NS4xMy4xMzguMjZdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQzhFNkQ1RjMwQgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTYgT2N0IDIwMTcgMTY6MTI6MzIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZGQxNzMzMi5rYXNzZXJ2ZXIuY29tIChkZDA4MDMua2Fzc2VydmVyLmNvbSBbODUuMTMuMTQ2LjM0XSkKCWJ5IGRkMTczMzIua2Fzc2VydmVyLmNvbSAoUG9zdGZpeCkgd2l0aCBFU01UUFNBIGlkIDJBNkZBMjlDMDU5OAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTYgT2N0IDIwMTcgMTg6MTI6MjYgKzAyMDAgKENFU1QpCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKWC1TZW5kZXJJUDogMjE2LjIwNy40Mi4xNDAKVXNlci1BZ2VudDogQUxMLUlOS0wgV2VibWFpbCAyLjExCkluLVJlcGx5LVRvOiA8Q0ErMjk4VWhlNWthcHdGM0JjdHg5UFZadU5FdVF4VzJUWUU5MTZxM01xN19QTm10ajJ3QG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0FFeU16eW1zSEh2T0JGLWJ0cVR2ajhrdjByRkxnQmQ9SkdIcnVQWmpFeVlabz1BLTBnQG1haWwuZ21haWwuY29tPiA8NDEwOTdiMGQtODFmYS01YmQwLWI4ZGUtZTEyYzQzNDhjOGNkQGdteC5kZT4gPENBRXlNenlrdGRlTENSR1pQX2JWbzR2QitTNHFnM2doUmpRM2dCUW5BbmZHOVZxeFFLZ0BtYWlsLmdtYWlsLmNvbT4gPGE1Y2RiN2JjLWFiMzgtNTFhZi02ZWQxLTE0YjUyMTEzYmYzOEByZWRoYXQuY29tPjxDQSsyOThVaGU1a2Fwd0YzQmN0eDlQVlp1TkV1UXhXMlRZRTkxNnEzTXE3X1BObXRqMndAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiBQbHVnaW4gdGhhdCBwcm92aWRlcyBhbHRlcm5hdGl2ZSByZXBvc2l0b3J5CkZyb206ICJNYW5mcmVkIE1vc2VyIiA8bWFuZnJlZEBzaW1wbGlnaWxpdHkuY29tPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JZDogPDIwMTcxMDE2MTYxMjI2LjJBNkZBMjlDMDU5OEBkZDE3MzMyLmthc3NlcnZlci5jb20+CkRhdGU6IE1vbiwgMTYgT2N0IDIwMTcgMTg6MTI6MjYgKzAyMDAgKENFU1QpCgpJIHRoaW5rIHRoaXMgd291bGQgbW9kaWZ5IHRoZSBvdmVyYWxsIE1hdmVuIGJlaGF2aW91ciBhbmQgeW91IHdvdWxkIHRoZXJlZm9yZSBoYXZlIHRvIGltcGxlbWVudCB0aGlzIGFzIGFuIGV4dGVuc2lvbiByYXRoZXIgdGhhbiBhcyBhIHBsdWdpbi4gRnlpLiB3ZSBoYXZlIHN1Y2ggYW4gZXh0ZW5zaW9uIHRoYXQgbW9kaWZpZXMgdXNhZ2Ugb2YgdGhlIGxvY2FsIHJlcG9zaXRvcnkgYWxyZWFkeSB3aXRoaW4gVGFrYXJpLgoKVXNlIGl0IGFzIGluc3BpcmF0aW9uLi4gCgpodHRwczovL2dpdGh1Yi5jb20vdGFrYXJpL3Rha2FyaS1sb2NhbC1yZXBvc2l0b3J5CgpNYW5mcmVkCgpQYXVsIEhhbW1hbnQgd3JvdGUgb24gMjAxNy0xMC0xNiAwMzozOToKCj4+Cj4+IFRoaXMgc2hvdWxkIGJlIHBvc3NpYmxlIGJ5IHByb3ZpZGluZyBXb3Jrc3BhY2VSZWFkZXIgaW1wbGVtZW50YXRpb24gLQo+PiBAQ29tcG9uZW50KCByb2xlID0gV29ya3NwYWNlUmVhZGVyLmNsYXNzLCBoaW50ID0gImlkZSIgKQo+Pgo+PiBOb3RlIHRoYXQgTWF2ZW4gdHJpZXMgcmVzb2x1dGlvbiBmcm9tIHdvcmtzcGFjZSAqYmVmb3JlKiByZXBvc2l0b3JpZXMgLQo+PiB3b3Jrc3BhY2UgcmVhZGVyIGhhcyBwcmlvcml0eSBsb3dlciB0aGFuIHJlYWN0b3IsIGJ1dCBoaWdoZXIgdGhhbiByZW1vdGUKPj4gcmVwb3Mga25vd24gdG8gTWF2ZW4uCj4gCj4gV29ya3NwYWNlUmVhZGVyIGZ1bmN0aW9uYWxpdHkgaXMgb3IgaXMgbm90IGEgdGhpbmcgdGhhdCBjYW4gYmUgc2V0IGluCj4gcG9tLnhtbCBmaWxlcz8KPiAKPiBBcmUgdGhlcmUgYW55IGV4YW1wbGVzIGluIHB1YmxpYyB0aGF0IHVzZSBXb3Jrc3BhY2VSZWFkZXIgaW4gdXNlIHRvCj4gc291cmNlIGEgZGVwIGZyb20gb3V0c2lkZSBvZiBtYXZlbiBjZW50cmFsIChvciB0aGUgcHJvamVjdHMgc2libGluZwo+IG1vZHVsZXMpPwo+IAo+IC0gUGF1bAo+IAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+IAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDI3NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgT2N0IDIwIDExOjEzOjM5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI3NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAzNDdBQzEwNzc0Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMjAgT2N0IDIwMTcgMTE6MTM6MzkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0MzMzNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBPY3QgMjAxNyAxMToxMzozOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDMyNjIgaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgT2N0IDIwMTcgMTE6MTM6MzggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0MzI1MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDIwIE9jdCAyMDE3IDExOjEzOjM4IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAyMCBPY3QgMjAxNyAxMToxMzozOCArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCAwNTU1NkRGQUUwOyBGcmksIDIwIE9jdCAyMDE3IDExOjEzOjM2ICswMDAwIChVVEMpCkZyb206IHNsYWNoaWV3aWN6IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xMDktbWF2ZW5AZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTEwOS1tYXZlbkBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4gcHVsbCByZXF1ZXN0ICMxMDk6IFVwZGF0ZSBNb2NraXRvIHRvIDIueApDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMDIwMTExMzM3LjA1NTU2REZBRTBAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IEZyaSwgMjAgT2N0IDIwMTcgMTE6MTM6MzYgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIHNsYWNoaWV3aWN6IGNsb3NlZCB0aGUgcHVsbCByZXF1ZXN0IGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vcHVsbC8xMDkKCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDI3NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgT2N0IDIwIDExOjEzOjQwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI3NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA0N0U5RTEwNzdECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMjAgT2N0IDIwMTcgMTE6MTM6NDAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0NDE2MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBPY3QgMjAxNyAxMToxMzozOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDQwNzkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgT2N0IDIwMTcgMTE6MTM6MzkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0NDA2MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDIwIE9jdCAyMDE3IDExOjEzOjM5IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAyMCBPY3QgMjAxNyAxMToxMzozOSArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBCRDY1MERGQjc3OyBGcmksIDIwIE9jdCAyMDE3IDExOjEzOjM3ICswMDAwIChVVEMpCkZyb206IHNsYWNoaWV3aWN6IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xMDktbWF2ZW5AZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTEwOS1tYXZlbkBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4gaXNzdWUgIzEwOTogVXBkYXRlIE1vY2tpdG8gdG8gMi54CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzEwMjAxMTEzMzcuQkQ2NTBERkI3N0BnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogRnJpLCAyMCBPY3QgMjAxNyAxMToxMzozNyArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgc2xhY2hpZXdpY3ogY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL3B1bGwvMTA5CiAgCiAgICBvaywgTU5HLTYxOTYgd2l0aCBzbGY0aiB3YXMgbWVyZ2VkIHRvIG1hc3RlciAtIGknbSBjbG9zc2luZyB0aGlzIGlzc3VlLiBNb2NraXRvIHdpbGwgYmUgaW4gZGlmZnJlbnQgcHVsbC4KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDI3Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgT2N0IDIwIDEyOjI2OjU4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI3Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAwNkM1MTEwOTU5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMjAgT2N0IDIwMTcgMTI6MjY6NTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1NzU0NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBPY3QgMjAxNyAxMjoyNjo1NyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTc0NjMgaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgT2N0IDIwMTcgMTI6MjY6NTcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NzQ1MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDIwIE9jdCAyMDE3IDEyOjI2OjU3IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAyMCBPY3QgMjAxNyAxMjoyNjo1NyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDkzMDgwQzU0NzgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDIwIE9jdCAyMDE3IDEyOjI2OjU2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuMDAyClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjAwMiB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bUlBfTUFUQ0hFU19SQ1ZEPS0wLjAwMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFQzMGZYa1otMXJxayBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCUZyaSwgMjAgT2N0IDIwMTcgMTI6MjY6NTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC5pbzdtLmNvbSAobWFpbC5pbzdtLmNvbSBbNDUuNzcuNzYuOTJdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRDNFNzM1RkI0RQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjAgT2N0IDIwMTcgMTI6MjY6NTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvICh1bmtub3duIFtJUHY2OjJhMDI6MzkwOjc1MDI6MjowOjI6MTowXSkKCWJ5IG1haWwuaW83bS5jb20gKFBvc3RmaXgpIHdpdGggRVNNVFBTQSBpZCBCRDAyMTFBODE0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAyMCBPY3QgMjAxNyAxMjoyNjo0NiArMDAwMCAoVVRDKQpEYXRlOiBGcmksIDIwIE9jdCAyMDE3IDEyOjI2OjM1ICswMDAwCkZyb206IE1hcmsgUmF5bnNmb3JkIDxvcmcuYXBhY2hlLm1hdmVuLnVzZXJAaW83bS5jb20+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBNYXZlbiBwbHVnaW5zLCBKYXZhIDksIGFuZCBzcGxpdCBwYWNrYWdlcwpNZXNzYWdlLUlEOiA8MjAxNzEwMjAxMjI2MTguNjRmMmEzNTJAY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvPgpPcmdhbml6YXRpb246IGlvN20uY29tCk9wZW5QR1A6IGlkPTgxNjhEQUUyMkIxNUQzRURDNzIyQzIzRDBGMTVCN0QwNkZBODBDQjg7CiB1cmw9aHR0cDovL2lvN20uY29tL3BncC84MTY4X0RBRTJfMkIxNV9EM0VEX0M3MjJfQzIzRF8wRjE1X0I3RDBfNkZBOF8wQ0I4LmtleQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IG11bHRpcGFydC9zaWduZWQ7IG1pY2FsZz1wZ3Atc2hhNTEyOwogYm91bmRhcnk9IlNpZ18vVGJtRHZIb1Y0eG1Tb0xZM2o1bE04UmwiOyBwcm90b2NvbD0iYXBwbGljYXRpb24vcGdwLXNpZ25hdHVyZSIKCi0tU2lnXy9UYm1EdkhvVjR4bVNvTFkzajVsTThSbApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVMtQVNDSUkKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSGVsbG8uCgpJJ20gZXhwZXJpbWVudGluZyB3aXRoIG1vZHVsYXJpemluZyBhbiBleGlzdGluZyBwbHVnaW4gKGphcGljbXAgWzBdKQphbmQgYW0gcnVubmluZyBpbnRvIGh1bmRyZWRzIG9mIGVycm9ycyBvZiB0aGUgZm9ybToKCltFUlJPUl0gdGhlIHVubmFtZWQgbW9kdWxlIHJlYWRzIHBhY2thZ2Ugb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW4gZnJvbSBib3RoID0KbWF2ZW4ucGx1Z2luLmFwaSBhbmQgbWF2ZW4uY29yZQpbRVJST1JdIHRoZSB1bm5hbWVkIG1vZHVsZSByZWFkcyBwYWNrYWdlIG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QgZnJvbSBib3Q9CmggbWF2ZW4uYXJ0aWZhY3QgYW5kIG1hdmVuLmNvcmUKW0VSUk9SXSB0aGUgdW5uYW1lZCBtb2R1bGUgcmVhZHMgcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0LnJlc29sdmVyPQogZnJvbSBib3RoIG1hdmVuLmFydGlmYWN0IGFuZCBtYXZlbi5jb3JlCltFUlJPUl0gdGhlIHVubmFtZWQgbW9kdWxlIHJlYWRzIHBhY2thZ2Ugb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5yZXNvbHZlcj0KLmZpbHRlciBmcm9tIGJvdGggbWF2ZW4uYXJ0aWZhY3QgYW5kIG1hdmVuLmNvcmUKW0VSUk9SXSB0aGUgdW5uYW1lZCBtb2R1bGUgcmVhZHMgcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0LnJlcG9zaXRvPQpyeSBmcm9tIGJvdGggbWF2ZW4uYXJ0aWZhY3QgYW5kIG1hdmVuLmNvcmUKW0VSUk9SXSB0aGUgdW5uYW1lZCBtb2R1bGUgcmVhZHMgcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0LnJlcG9zaXRvPQpyeS5tZXRhZGF0YSBmcm9tIGJvdGggbWF2ZW4uYXJ0aWZhY3QgYW5kIG1hdmVuLmNvcmUKW0VSUk9SXSB0aGUgdW5uYW1lZCBtb2R1bGUgcmVhZHMgcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0LnJlcG9zaXRvPQpyeS5sYXlvdXQgZnJvbSBib3RoIG1hdmVuLmFydGlmYWN0IGFuZCBtYXZlbi5jb3JlCltFUlJPUl0gdGhlIHVubmFtZWQgbW9kdWxlIHJlYWRzIHBhY2thZ2Ugb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5tZXRhZGF0YT0KIGZyb20gYm90aCBtYXZlbi5hcnRpZmFjdCBhbmQgbWF2ZW4uY29yZQpbRVJST1JdIHRoZSB1bm5hbWVkIG1vZHVsZSByZWFkcyBwYWNrYWdlIG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QuaGFuZGxlciA9CmZyb20gYm90aCBtYXZlbi5hcnRpZmFjdCBhbmQgbWF2ZW4uY29yZQpbRVJST1JdIHRoZSB1bm5hbWVkIG1vZHVsZSByZWFkcyBwYWNrYWdlIG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QuaGFuZGxlci49Cm1hbmFnZXIgZnJvbSBib3RoIG1hdmVuLmFydGlmYWN0IGFuZCBtYXZlbi5jb3JlCltFUlJPUl0gdGhlIHVubmFtZWQgbW9kdWxlIHJlYWRzIHBhY2thZ2Ugb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5mYWN0b3J5ID0KZnJvbSBib3RoIG1hdmVuLmFydGlmYWN0IGFuZCBtYXZlbi5jb3JlCltFUlJPUl0gbW9kdWxlIG1hdmVuLnBsdWdpbi5hbm5vdGF0aW9ucyByZWFkcyBwYWNrYWdlIG9yZy5hcGFjaGUubWF2ZW4ucGx1Zz0KaW4gZnJvbSBib3RoIG1hdmVuLnBsdWdpbi5hcGkgYW5kIG1hdmVuLmNvcmUKW0VSUk9SXSBtb2R1bGUgbWF2ZW4ucGx1Z2luLmFubm90YXRpb25zIHJlYWRzIHBhY2thZ2Ugb3JnLmFwYWNoZS5tYXZlbi5hcnRpPQpmYWN0IGZyb20gYm90aCBtYXZlbi5hcnRpZmFjdCBhbmQgbWF2ZW4uY29yZQpbRVJST1JdIG1vZHVsZSBtYXZlbi5wbHVnaW4uYW5ub3RhdGlvbnMgcmVhZHMgcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLmFydGk9CmZhY3QucmVzb2x2ZXIgZnJvbSBib3RoIG1hdmVuLmFydGlmYWN0IGFuZCBtYXZlbi5jb3JlCltFUlJPUl0gbW9kdWxlIG1hdmVuLnBsdWdpbi5hbm5vdGF0aW9ucyByZWFkcyBwYWNrYWdlIG9yZy5hcGFjaGUubWF2ZW4uYXJ0aT0KZmFjdC5yZXNvbHZlci5maWx0ZXIgZnJvbSBib3RoIG1hdmVuLmFydGlmYWN0IGFuZCBtYXZlbi5jb3JlCltFUlJPUl0gbW9kdWxlIG1hdmVuLnBsdWdpbi5hbm5vdGF0aW9ucyByZWFkcyBwYWNrYWdlIG9yZy5hcGFjaGUubWF2ZW4uYXJ0aT0KZmFjdC5yZXBvc2l0b3J5IGZyb20gYm90aCBtYXZlbi5hcnRpZmFjdCBhbmQgbWF2ZW4uY29yZQpbRVJST1JdIG1vZHVsZSBtYXZlbi5wbHVnaW4uYW5ub3RhdGlvbnMgcmVhZHMgcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLmFydGk9CmZhY3QucmVwb3NpdG9yeS5tZXRhZGF0YSBmcm9tIGJvdGggbWF2ZW4uYXJ0aWZhY3QgYW5kIG1hdmVuLmNvcmUKW0VSUk9SXSBtb2R1bGUgbWF2ZW4ucGx1Z2luLmFubm90YXRpb25zIHJlYWRzIHBhY2thZ2Ugb3JnLmFwYWNoZS5tYXZlbi5hcnRpPQpmYWN0LnJlcG9zaXRvcnkubGF5b3V0IGZyb20gYm90aCBtYXZlbi5hcnRpZmFjdCBhbmQgbWF2ZW4uY29yZQpbRVJST1JdIG1vZHVsZSBtYXZlbi5wbHVnaW4uYW5ub3RhdGlvbnMgcmVhZHMgcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLmFydGk9CmZhY3QubWV0YWRhdGEgZnJvbSBib3RoIG1hdmVuLmFydGlmYWN0IGFuZCBtYXZlbi5jb3JlCltFUlJPUl0gbW9kdWxlIG1hdmVuLnBsdWdpbi5hbm5vdGF0aW9ucyByZWFkcyBwYWNrYWdlIG9yZy5hcGFjaGUubWF2ZW4uYXJ0aT0KZmFjdC5oYW5kbGVyIGZyb20gYm90aCBtYXZlbi5hcnRpZmFjdCBhbmQgbWF2ZW4uY29yZQpbRVJST1JdIG1vZHVsZSBtYXZlbi5wbHVnaW4uYW5ub3RhdGlvbnMgcmVhZHMgcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLmFydGk9CmZhY3QuaGFuZGxlci5tYW5hZ2VyIGZyb20gYm90aCBtYXZlbi5hcnRpZmFjdCBhbmQgbWF2ZW4uY29yZQpbRVJST1JdIG1vZHVsZSBtYXZlbi5wbHVnaW4uYW5ub3RhdGlvbnMgcmVhZHMgcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLmFydGk9CmZhY3QuZmFjdG9yeSBmcm9tIGJvdGggbWF2ZW4uYXJ0aWZhY3QgYW5kIG1hdmVuLmNvcmUKW0VSUk9SXSBtb2R1bGUgbWF2ZW4ucGx1Z2luLmFwaSByZWFkcyBwYWNrYWdlIG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luIGZyb20gPQpib3RoIG1hdmVuLnBsdWdpbi5hcGkgYW5kIG1hdmVuLmNvcmUKW0VSUk9SXSBtb2R1bGUgbWF2ZW4ucGx1Z2luLmFwaSByZWFkcyBwYWNrYWdlIG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QgZnJvPQptIGJvdGggbWF2ZW4uYXJ0aWZhY3QgYW5kIG1hdmVuLmNvcmUKW0VSUk9SXSBtb2R1bGUgbWF2ZW4ucGx1Z2luLmFwaSByZWFkcyBwYWNrYWdlIG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QucmVzPQpvbHZlciBmcm9tIGJvdGggbWF2ZW4uYXJ0aWZhY3QgYW5kIG1hdmVuLmNvcmUKW0VSUk9SXSBtb2R1bGUgbWF2ZW4ucGx1Z2luLmFwaSByZWFkcyBwYWNrYWdlIG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QucmVzPQpvbHZlci5maWx0ZXIgZnJvbSBib3RoIG1hdmVuLmFydGlmYWN0IGFuZCBtYXZlbi5jb3JlCltFUlJPUl0gbW9kdWxlIG1hdmVuLnBsdWdpbi5hcGkgcmVhZHMgcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0LnJlcD0Kb3NpdG9yeSBmcm9tIGJvdGggbWF2ZW4uYXJ0aWZhY3QgYW5kIG1hdmVuLmNvcmUKW0VSUk9SXSBtb2R1bGUgbWF2ZW4ucGx1Z2luLmFwaSByZWFkcyBwYWNrYWdlIG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QucmVwPQpvc2l0b3J5Lm1ldGFkYXRhIGZyb20gYm90aCBtYXZlbi5hcnRpZmFjdCBhbmQgbWF2ZW4uY29yZQpbRVJST1JdIG1vZHVsZSBtYXZlbi5wbHVnaW4uYXBpIHJlYWRzIHBhY2thZ2Ugb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5yZXA9Cm9zaXRvcnkubGF5b3V0IGZyb20gYm90aCBtYXZlbi5hcnRpZmFjdCBhbmQgbWF2ZW4uY29yZQpbRVJST1JdIG1vZHVsZSBtYXZlbi5wbHVnaW4uYXBpIHJlYWRzIHBhY2thZ2Ugb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5tZXQ9CmFkYXRhIGZyb20gYm90aCBtYXZlbi5hcnRpZmFjdCBhbmQgbWF2ZW4uY29yZQpbRVJST1JdIG1vZHVsZSBtYXZlbi5wbHVnaW4uYXBpIHJlYWRzIHBhY2thZ2Ugb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5oYW49CmRsZXIgZnJvbSBib3RoIG1hdmVuLmFydGlmYWN0IGFuZCBtYXZlbi5jb3JlCltFUlJPUl0gbW9kdWxlIG1hdmVuLnBsdWdpbi5hcGkgcmVhZHMgcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0Lmhhbj0KZGxlci5tYW5hZ2VyIGZyb20gYm90aCBtYXZlbi5hcnRpZmFjdCBhbmQgbWF2ZW4uY29yZQpbRVJST1JdIG1vZHVsZSBtYXZlbi5wbHVnaW4uYXBpIHJlYWRzIHBhY2thZ2Ugb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5mYWM9CnRvcnkgZnJvbSBib3RoIG1hdmVuLmFydGlmYWN0IGFuZCBtYXZlbi5jb3JlCltFUlJPUl0gbW9kdWxlIG1hdmVuLmFydGlmYWN0IHJlYWRzIHBhY2thZ2Ugb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW4gZnJvbSBibz0KdGggbWF2ZW4ucGx1Z2luLmFwaSBhbmQgbWF2ZW4uY29yZQpbRVJST1JdIG1vZHVsZSBtYXZlbi5hcnRpZmFjdCByZWFkcyBwYWNrYWdlIG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QgZnJvbSA9CmJvdGggbWF2ZW4uYXJ0aWZhY3QgYW5kIG1hdmVuLmNvcmUKW0VSUk9SXSBtb2R1bGUgbWF2ZW4uYXJ0aWZhY3QgcmVhZHMgcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0LnJlc29sPQp2ZXIgZnJvbSBib3RoIG1hdmVuLmFydGlmYWN0IGFuZCBtYXZlbi5jb3JlCltFUlJPUl0gbW9kdWxlIG1hdmVuLmFydGlmYWN0IHJlYWRzIHBhY2thZ2Ugb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5yZXNvbD0KdmVyLmZpbHRlciBmcm9tIGJvdGggbWF2ZW4uYXJ0aWZhY3QgYW5kIG1hdmVuLmNvcmUKW0VSUk9SXSBtb2R1bGUgbWF2ZW4uYXJ0aWZhY3QgcmVhZHMgcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0LnJlcG9zPQppdG9yeSBmcm9tIGJvdGggbWF2ZW4uYXJ0aWZhY3QgYW5kIG1hdmVuLmNvcmUKW0VSUk9SXSBtb2R1bGUgbWF2ZW4uYXJ0aWZhY3QgcmVhZHMgcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0LnJlcG9zPQppdG9yeS5tZXRhZGF0YSBmcm9tIGJvdGggbWF2ZW4uYXJ0aWZhY3QgYW5kIG1hdmVuLmNvcmUKW0VSUk9SXSBtb2R1bGUgbWF2ZW4uYXJ0aWZhY3QgcmVhZHMgcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0LnJlcG9zPQppdG9yeS5sYXlvdXQgZnJvbSBib3RoIG1hdmVuLmFydGlmYWN0IGFuZCBtYXZlbi5jb3JlCltFUlJPUl0gbW9kdWxlIG1hdmVuLmFydGlmYWN0IHJlYWRzIHBhY2thZ2Ugb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5tZXRhZD0KYXRhIGZyb20gYm90aCBtYXZlbi5hcnRpZmFjdCBhbmQgbWF2ZW4uY29yZQpbRVJST1JdIG1vZHVsZSBtYXZlbi5hcnRpZmFjdCByZWFkcyBwYWNrYWdlIG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QuaGFuZGw9CmVyIGZyb20gYm90aCBtYXZlbi5hcnRpZmFjdCBhbmQgbWF2ZW4uY29yZQpbRVJST1JdIG1vZHVsZSBtYXZlbi5hcnRpZmFjdCByZWFkcyBwYWNrYWdlIG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QuaGFuZGw9CmVyLm1hbmFnZXIgZnJvbSBib3RoIG1hdmVuLmFydGlmYWN0IGFuZCBtYXZlbi5jb3JlCltFUlJPUl0gbW9kdWxlIG1hdmVuLmFydGlmYWN0IHJlYWRzIHBhY2thZ2Ugb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5mYWN0bz0KcnkgZnJvbSBib3RoIG1hdmVuLmFydGlmYWN0IGFuZCBtYXZlbi5jb3JlCltFUlJPUl0gbW9kdWxlIGNvbS5nb29nbGUuY29tbW9uIHJlYWRzIHBhY2thZ2Ugb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW4gZnJvbT0KIGJvdGggbWF2ZW4ucGx1Z2luLmFwaSBhbmQgbWF2ZW4uY29yZQpbRVJST1JdIG1vZHVsZSBjb20uZ29vZ2xlLmNvbW1vbiByZWFkcyBwYWNrYWdlIG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QgZnI9Cm9tIGJvdGggbWF2ZW4uYXJ0aWZhY3QgYW5kIG1hdmVuLmNvcmUKW0VSUk9SXSBtb2R1bGUgY29tLmdvb2dsZS5jb21tb24gcmVhZHMgcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0LnJlPQpzb2x2ZXIgZnJvbSBib3RoIG1hdmVuLmFydGlmYWN0IGFuZCBtYXZlbi5jb3JlCltFUlJPUl0gbW9kdWxlIGNvbS5nb29nbGUuY29tbW9uIHJlYWRzIHBhY2thZ2Ugb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5yZT0Kc29sdmVyLmZpbHRlciBmcm9tIGJvdGggbWF2ZW4uYXJ0aWZhY3QgYW5kIG1hdmVuLmNvcmUKW0VSUk9SXSBtb2R1bGUgY29tLmdvb2dsZS5jb21tb24gcmVhZHMgcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0LnJlPQpwb3NpdG9yeSBmcm9tIGJvdGggbWF2ZW4uYXJ0aWZhY3QgYW5kIG1hdmVuLmNvcmUKW0VSUk9SXSBtb2R1bGUgY29tLmdvb2dsZS5jb21tb24gcmVhZHMgcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0LnJlPQpwb3NpdG9yeS5tZXRhZGF0YSBmcm9tIGJvdGggbWF2ZW4uYXJ0aWZhY3QgYW5kIG1hdmVuLmNvcmUKW0VSUk9SXSBtb2R1bGUgY29tLmdvb2dsZS5jb21tb24gcmVhZHMgcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLmFydGlmYWN0LnJlPQpwb3NpdG9yeS5sYXlvdXQgZnJvbSBib3RoIG1hdmVuLmFydGlmYWN0IGFuZCBtYXZlbi5jb3JlCltFUlJPUl0gbW9kdWxlIGNvbS5nb29nbGUuY29tbW9uIHJlYWRzIHBhY2thZ2Ugb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5tZT0KdGFkYXRhIGZyb20gYm90aCBtYXZlbi5hcnRpZmFjdCBhbmQgbWF2ZW4uY29yZQpbRVJST1JdIG1vZHVsZSBjb20uZ29vZ2xlLmNvbW1vbiByZWFkcyBwYWNrYWdlIG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QuaGE9Cm5kbGVyIGZyb20gYm90aCBtYXZlbi5hcnRpZmFjdCBhbmQgbWF2ZW4uY29yZQpbRVJST1JdIG1vZHVsZSBjb20uZ29vZ2xlLmNvbW1vbiByZWFkcyBwYWNrYWdlIG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QuaGE9Cm5kbGVyLm1hbmFnZXIgZnJvbSBib3RoIG1hdmVuLmFydGlmYWN0IGFuZCBtYXZlbi5jb3JlCltFUlJPUl0gbW9kdWxlIGNvbS5nb29nbGUuY29tbW9uIHJlYWRzIHBhY2thZ2Ugb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5mYT0KY3RvcnkgZnJvbSBib3RoIG1hdmVuLmFydGlmYWN0IGFuZCBtYXZlbi5jb3JlCgpUaGlzIGxvb2tzIHRvIGJlIGEgY2FzZSBvZiBzcGxpdCBwYWNrYWdlcyBhbW9uZ3N0IGFsbCBvZiB0aGUgdmFyaW91cwpNYXZlbiBhcnRpZmFjdHMuIEknbSBhZGRpbmcgZGVwZW5kZW5jeSBleGNsdXNpb25zIHRvIHRyeSB0byB3b3JrIGFyb3VuZAp0aGUgaXNzdWVzLCBidXQgSSdtIG5vdCBjb25maWRlbnQgdGhhdCdsbCBhY3R1YWxseSB3b3JrLgoKQXJlIHRoZXJlIGVmZm9ydHMgdW5kZXJ3YXkgdG8gY2xlYW4gdGhpcyBzdHVmZiB1cD8KClRoZSByZWFzb24gSSdtIG1vZHVsYXJpemluZyB0aGUgcGx1Z2luIGlzIGR1ZSB0byB0aGlzOgoKICAiVG8gYnVpbGQgYW5kIHJ1biBqYXBpY21wIHVuZGVyIEphdmEgMS45LCB5b3UgbXVzdCBhZGQgdGhlIGZvbGxvd2luZyBtb2R1PQpsZTogamF2YS54bWwuYmluZC4gVGhpcyBjYW4gYmUgZG9uZSBmb3IgdGhlIG1hdmVuIHBsdWdpbiBmb3IgZXhhbXBsZSBieToKCmV4cG9ydCBNQVZFTl9PUFRTPTNEIi0tYWRkLW1vZHVsZXMgamF2YS54bWwuYmluZCIKCkknZCByYXRoZXIgbm90IGhhdmUgdG8gZG8gdGhpcyBhcyBJJ20gY29tbWl0dGVkIHRvIGhhdmluZyBhbGwgb2YgbXkKcHJvamVjdCBidWlsZHMgcnVuIHdpdGhvdXQgbmVlZGluZyBleHRyYSBNYXZlbiBmbGFnczogIm12biBjbGVhbiBpbnN0YWxsIgoqbXVzdCoganVzdCB3b3JrIG9uIGV2ZXJ5IHN5c3RlbSwgbm8gZXhjZXB0aW9ucy4KCkFtIEkgdW5kZXJ0YWtpbmcgYSBmb29sJ3MgZXJyYW5kIHRyeWluZyB0byBnZXQgdGhpcyBzdHVmZiB0byB3b3JrIGNsZWFubHk/CklmIG5vdCwgaXMgdGhlcmUgYW55IGRvY3VtZW50YXRpb24gb24gbW9kdWxhcml6aW5nIGV4aXN0aW5nIHBsdWdpbnM/CgpbMF0gaHR0cHM6Ly9naXRodWIuY29tL3Npb203OS9qYXBpY21wLwoKLS09MjAKTWFyayBSYXluc2ZvcmQgfCBodHRwOi8vd3d3LmlvN20uY29tCgoKLS1TaWdfL1RibUR2SG9WNHhtU29MWTNqNWxNOFJsCkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vcGdwLXNpZ25hdHVyZQpDb250ZW50LURlc2NyaXB0aW9uOiBPcGVuUEdQIGRpZ2l0YWwgc2lnbmF0dXJlCgotLS0tLUJFR0lOIFBHUCBTSUdOQVRVUkUtLS0tLQoKaVFJekJBRUJDZ0FkRmlFRWdXamE0aXNWMCszSElzSTlEeFczMEcrb0RMZ0ZBbG5wNjNzQUNna1FEeFczMEcrbwpETGoySlEvL2IyekNkSncyUHFFMUZDN2VVczBpTkEzQ2JTdlcyUnZKdDZTeElaTDFsVEl0YXo3OWZEQmZNUGpQClVmZU9LTGN1Zm1wbEk4TVBzUDZWU0NaejlNdk9SSk05RExWNEdaRUZnWm9uUXZHWHRCZ245RW1lSlEwTHRrcVMKdWJMK0FUU09PUlNyV1d2TnJ3c0JGOWkwbEhvbnpEcTI2RjRGT2F3M3JkT2NJZktabGdBdnlvM3Jpa1hsSmgvVAptQ3ZFZEN6NnNncTlkMkFTTC8xZ0FWdUduRHdUQVJsZXl0VDhpbkRML2FuVUx0TlhvWk9wMTJFeFQrZWVubXFDCnQ2WEZXenJoR1YxVXpGeWJ0SmtDT2pMWWRvN1QzdGoyZHBQN05hcXlVaFZramJnRERGQ21aS1NrVnBoMHE5QnIKcndTMWdwc3J2U1A2ZEdwOUdkc1VyUm5RYU1hWXRsVWxnY2FWUUlWVk1BMkRHMDlLd0syV3UyTGR5N09rVDF1MAprbGgrQkJGY3gvY1ZwYzV4QWl6aFc0NlBSQnF0ZWdjQi9OT0J2VFg0WW9VQ3ZIZVVGOUx2b0hoUkZRTmxPZHM5CncwZUtjWEtaakxDZ0xzZE9aWG5hUTJjRUNyZnRVRmR1WnUxUmZvc3o2T0dZZXhtYUtQMFJReU5zWFphK0diWXMKQlh1NTNJeC84c0hFWWNEVC9ubGpXbHJRS1hxUlNVSXNSMFR6NGUreG5IaS9ENjhucWVrT3VQREVyazNKL1FMaAp5RUpIcm1ZK0JsWmVETjBiNTFSY3piWFh5MDNwU1h2dFh2ZjBDUU9iTjRpWkQ5WER2ek9rZFFjZTdySXFJV1NlCjZFNG1oeENPYWUyYVMzbGJINWRZU2xYVCs0OTVqSGxHU29MZ2VSdEpXaExwTTJMbm5ERT0KPTdOL2gKLS0tLS1FTkQgUEdQIFNJR05BVFVSRS0tLS0tCgotLVNpZ18vVGJtRHZIb1Y0eG1Tb0xZM2o1bE04UmwtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDI3OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgT2N0IDIwIDE0OjM4OjQxIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI3OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4NkYzQTEwRjI2Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMjAgT2N0IDIwMTcgMTQ6Mzg6NDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5NDExNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBPY3QgMjAxNyAxNDozODo0MSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTQwMzUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgT2N0IDIwMTcgMTQ6Mzg6NDEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NDAyNCBpbnZva2VkIGJ5IHVpZCA5OSk7IDIwIE9jdCAyMDE3IDE0OjM4OjQwIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAyMCBPY3QgMjAxNyAxNDozODo0MCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEVGQjAyMUEwOTFGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAyMCBPY3QgMjAxNyAxNDozODozOSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjAwMgpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC4wMDIgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W1JQX01BVENIRVNfUkNWRD0tMC4wMDEsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBlTm12WEVJME1sVVIgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglGcmksIDIwIE9jdCAyMDE3IDE0OjM4OjM4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwuaW83bS5jb20gKG1haWwuaW83bS5jb20gWzQ1Ljc3Ljc2LjkyXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEQ0QTJENUZFNjQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDIwIE9jdCAyMDE3IDE0OjM4OjM3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbyAodW5rbm93biBbSVB2NjoyYTAyOjM5MDo3NTAyOjI6MDoyOjE6MF0pCglieSBtYWlsLmlvN20uY29tIChQb3N0Zml4KSB3aXRoIEVTTVRQU0EgaWQgMjI3RDIxQTg5OAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjAgT2N0IDIwMTcgMTQ6Mzg6MzYgKzAwMDAgKFVUQykKRGF0ZTogRnJpLCAyMCBPY3QgMjAxNyAxNDozODoyNCArMDAwMApGcm9tOiBNYXJrIFJheW5zZm9yZCA8b3JnLmFwYWNoZS5tYXZlbi51c2VyQGlvN20uY29tPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogUmU6IE1hdmVuIHBsdWdpbnMsIEphdmEgOSwgYW5kIHNwbGl0IHBhY2thZ2VzCk1lc3NhZ2UtSUQ6IDwyMDE3MTAyMDE0MzgyNC42MWUyMGJjYUBjb3BwZXJoZWFkLmludC5hcmM3LmluZm8+CkluLVJlcGx5LVRvOiA8b3AueThlcXplMWVrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+ClJlZmVyZW5jZXM6IDwyMDE3MTAyMDEyMjYxOC42NGYyYTM1MkBjb3BwZXJoZWFkLmludC5hcmM3LmluZm8+Cgk8b3AueThlcXplMWVrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+Ck9yZ2FuaXphdGlvbjogaW83bS5jb20KT3BlblBHUDogaWQ9ODE2OERBRTIyQjE1RDNFREM3MjJDMjNEMEYxNUI3RDA2RkE4MENCODsKIHVybD1odHRwOi8vaW83bS5jb20vcGdwLzgxNjhfREFFMl8yQjE1X0QzRURfQzcyMl9DMjNEXzBGMTVfQjdEMF82RkE4XzBDQjgua2V5Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L3NpZ25lZDsgbWljYWxnPXBncC1zaGE1MTI7CiBib3VuZGFyeT0iU2lnXy8zaExYQ0E2THo0UnFmXy9LZjM3MS5RYiI7IHByb3RvY29sPSJhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlIgoKLS1TaWdfLzNoTFhDQTZMejRScWZfL0tmMzcxLlFiCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VUy1BU0NJSQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPbiAyMDE3LTEwLTIwVDE0OjQzOjUyICswMjAwCiJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPiB3cm90ZToKPgo+ID4gVGhpcyBsb29rcyB0byBiZSBhIGNhc2Ugb2Ygc3BsaXQgcGFja2FnZXMgYW1vbmdzdCBhbGwgb2YgdGhlIHZhcmlvdXMKPiA+IE1hdmVuIGFydGlmYWN0cy4gSSdtIGFkZGluZyBkZXBlbmRlbmN5IGV4Y2x1c2lvbnMgdG8gdHJ5IHRvIHdvcmsgYXJvdW5kCj4gPiB0aGUgaXNzdWVzLCBidXQgSSdtIG5vdCBjb25maWRlbnQgdGhhdCdsbCBhY3R1YWxseSB3b3JrLgo+ID4KPiA+IEFyZSB0aGVyZSBlZmZvcnRzIHVuZGVyd2F5IHRvIGNsZWFuIHRoaXMgc3R1ZmYgdXA/ID0yMAo+PTIwCj4gTm8sIE1hdmVuIGhhcyBpdHMgb3duIG1vZHVsYXIgc3lzdGVtIGxvbmcgYmVmb3JlIHRoZSBKYXZhIFBsYXRmb3JtIE1vZHVsYT0KciA9MjAKPiBTeXN0ZW0gKEpQTVMpLi4uCgpPSywgbWFrZXMgc2Vuc2UuIEkgd2FzIHNlZWluZyBlcnJvcnMgcmVsYXRlZCB0byBDbGFzcy5ieU5hbWUgaW4gc29tZSBvZgp0aGUgZXhjZXB0aW9ucyBJIHdhcyBzZWVpbmcsIHNvIEkgbWlzdGFrZW5seSBhc3N1bWVkIHRoYXQgdGhlcmUgd2FzCnNvbWUgZGVncmVlIG9mIG1vZHVsYXJpemF0aW9uIHVuZGVyd2F5IHRoYXQgcG9zc2libHkgd2Fzbid0IHF1aXRlCmNvbXBsZXRlIHlldC4gSSBzdXNwZWN0IHRoZSBhY3R1YWwgcHJvYmxlbXMgSSdtIHNlZWluZyBoZXJlIGFyZSBqdXN0Cm91dC1vZi1kYXRlIGRlcGVuZGVuY2llcy4KCj4gPiBUaGUgcmVhc29uIEknbSBtb2R1bGFyaXppbmcgdGhlIHBsdWdpbiBpcyBkdWUgdG8gdGhpczoKPiA+Cj4gPiAgICJUbyBidWlsZCBhbmQgcnVuIGphcGljbXAgdW5kZXIgSmF2YSAxLjksIHlvdSBtdXN0IGFkZCB0aGUgZm9sbG93aW5nID0KPTIwCj4gPiBtb2R1bGU6IGphdmEueG1sLmJpbmQuIFRoaXMgY2FuIGJlIGRvbmUgZm9yIHRoZSBtYXZlbiBwbHVnaW4gZm9yIGV4YW1wbD0KZSA9MjAKPiA+IGJ5Ogo+ID4KPiA+IGV4cG9ydCBNQVZFTl9PUFRTPTNEIi0tYWRkLW1vZHVsZXMgamF2YS54bWwuYmluZCIgPTIwCj49MjAKPiBJSVVDIHRoaXMgZG9lc24ndCBtZWFuIHlvdSBoYXZlIHRvIGludHJvZHVjZSBhIG1vZHVsZSBkZXNjcmlwdG9yIChpLmUuID0yMAo+IG1vZHVsZS1pbmZvLmphdmEgKS4KPj0yMAo+IFRoZSByZWFzb24gaXMgdGhhdCB0aGlzIG1vZHVsZSBpcyBtYXJrZWQgYXMgZGVwcmVjYXRlZCBhbmQgd29uJ3QgYmUgPTIwCj4gYWN0aXZhdGVkIGJ5IHRoZSBKREsvSlJFIGJ5IGRlZmF1bHQuIEJ5IGFkZGluZyB0aGlzIGFyZ3VtZW50IGl0IGlzIGxvYWRlZD0KID0yMAo+IGFueXdheS4KPj0yMAo+IFdoYXQgeW91IHNob3VsZCB0cnkgdG8gZG8gaW5zdGVhZCBpcyBhZGQgdGhlIGZvbGxvd2luZyBkZXBlbmRlbmN5Ogo+IDxkZXBlbmRlbmN5Pgo+ICAgICAgPGdyb3VwSWQ+amF2YXgueG1sLmJpbmQ8L2dyb3VwSWQ+Cj4gICAgICA8YXJ0aWZhY3RJZD5qYXhiLWFwaTwvYXJ0aWZhY3RJZD4KPiAgICAgIDx2ZXJzaW9uPjIuMy4wPC92ZXJzaW9uPgo+IDwvZGVwZW5kZW5jeT4KCk5vdGVkLCB0aGFua3MhIEknbGwgYmUgdGVzdGluZyB0aGlzIG91dCB0b2RheS4KCi0tPTIwCk1hcmsgUmF5bnNmb3JkIHwgaHR0cDovL3d3dy5pbzdtLmNvbQoKCi0tU2lnXy8zaExYQ0E2THo0UnFmXy9LZjM3MS5RYgpDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3BncC1zaWduYXR1cmUKQ29udGVudC1EZXNjcmlwdGlvbjogT3BlblBHUCBkaWdpdGFsIHNpZ25hdHVyZQoKLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KCmlRSXpCQUVCQ2dBZEZpRUVnV2phNGlzVjArM0hJc0k5RHhXMzBHK29ETGdGQWxucUNtQUFDZ2tRRHhXMzBHK28KRExoNjZ4QUFwS1BZVTZpa1ZrZkdUdTJrZnNoTG43NEduV1pRYzlTQ2F2K0JqTTUxWExBbHZ3Zjlla3FsTURLbwpqVFN0VElYbHVwZS9mS2tKY3lxSzkvVjFOV1oxUkFWVTBqK1FYY0xEVXhzU2lYWVB1UjdkNkhUWE40SEpQNythCjRLMmJJWjVQcGxZQzg4cHB1Z2U1REZ1K3l4dXo0TldUbWNDb0VHZS94MkhlVzJZOVdPWEQvd082YlgweVorR3cKRmI3d0liakxySTV3QlVCRnZnNHNEUVJRQm80d1JjQmN0VVFMZmw2cjA2SERsTHRuSXh2K0VEK3o4OU1zZTFsVQpNNXhiaFVxcVpiTCt4RmIvdjBQOGxGMjFhcFViYUFGWXpNTVZZQTMrOXdpeHQwQnFhQ1RUbDBpa0g4amI4aEg2CnBtWk5HUUM2NW9NWml5TVUrVVFReldVUXBKRnU5dFk3SVJvU0ZBek04MTc4N1U5UEw4bGZMQmpCL1E1VnhMR2cKQUdNUklnZlV6L21ybmhJZXM2emR1Q3hETUZtdWhMM09jOUtzd3ZoYW5rWjdVQmVUTU9lOUFpME9Yajd4UU1tZwp0cVVGWVNqUWtRclhlenBkc2IrVm1UY1pYZ241ZUpEZFN6QkIzUzl4MWphYUJ0b3EyeVArc3dCNkVmaDNvM2F6CmYwU2daZllyQlV6RFJpTnNnay9kUmR2RU80WHNPTWUyY2pyUVNCU3pMdW9uWlJpMGtqWnBTY3daVUd3RXlPTkcKa3dDT1lva1hSRTNRdXc2OEljUTBRcXlWV0cycmx4bUE2VHFYbS81ZXNtUFZSTVhsOEhLNEIvb21DcnorSmd2OQppeWF0dzVrb2dZWnJZM2lGdHhrNmJSQ3JFcWVNYmlDVEF3emlWRDdiZy9LWnNPQU10Rlk9Cj1JbTA2Ci0tLS0tRU5EIFBHUCBTSUdOQVRVUkUtLS0tLQoKLS1TaWdfLzNoTFhDQTZMejRScWZfL0tmMzcxLlFiLS0KCkZyb20gZGV2LXJldHVybi0xMjQyODMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE9jdCAyMSAwMTozMDowNiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyODMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNTRBMzAxMDI0RQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDIxIE9jdCAyMDE3IDAxOjMwOjA2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTA3NjIgaW52b2tlZCBieSB1aWQgNTAwKTsgMjEgT2N0IDIwMTcgMDE6MzA6MDYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDEwNjgzIGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIE9jdCAyMDE3IDAxOjMwOjA1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTA2NjEgaW52b2tlZCBieSB1aWQgOTkpOyAyMSBPY3QgMjAxNyAwMTozMDowNSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMjEgT2N0IDIwMTcgMDE6MzA6MDUgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNDRBQ0ZERkIzMjsgU2F0LCAyMSBPY3QgMjAxNyAwMTozMDowMyArMDAwMCAoVVRDKQpGcm9tOiBoYm91dGVteSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTA5LW1hdmVuQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xMDktbWF2ZW5AZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuIGlzc3VlICMxMDk6IFVwZGF0ZSBNb2NraXRvIHRvIDIueApDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMDIxMDEzMDA0LjQ0QUNGREZCMzJAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFNhdCwgMjEgT2N0IDIwMTcgMDE6MzA6MDMgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIGhib3V0ZW15IGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9wdWxsLzEwOQogIAogICAgZ3JlYXQsIHRoYW5rIHlvdQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0Mjg3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBPY3QgMjEgMDQ6NTk6MDIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0Mjg3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDBFREMwMTA2QzIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAyMSBPY3QgMjAxNyAwNDo1OTowMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDgxNzcwIGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIE9jdCAyMDE3IDA0OjU5OjAxIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MTY5OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBPY3QgMjAxNyAwNDo1OTowMSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgxNjg1IGludm9rZWQgYnkgdWlkIDk5KTsgMjEgT2N0IDIwMTcgMDQ6NTk6MDEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDIxIE9jdCAyMDE3IDA0OjU5OjAxICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNDAwODMxODA3RTUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDIxIE9jdCAyMDE3IDA0OjU5OjAwICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS44ClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MS44IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MV0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGwtX0QyVHZDYzNuTiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgMjEgT2N0IDIwMTcgMDQ6NTg6NTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZGQxNzMzMi5rYXNzZXJ2ZXIuY29tIChkZDE3MzMyLmthc3NlcnZlci5jb20gWzg1LjEzLjEzOC4yNl0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA2MkYyNTVGMjM4Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAyMSBPY3QgMjAxNyAwNDo1ODo1NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBkZDE3MzMyLmthc3NlcnZlci5jb20gKGRkMDgwMi5rYXNzZXJ2ZXIuY29tIFs4NS4xMy4xNDMuMV0pCglieSBkZDE3MzMyLmthc3NlcnZlci5jb20gKFBvc3RmaXgpIHdpdGggRVNNVFBTQSBpZCBGMzM1ODI5QzAxQ0QKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDIxIE9jdCAyMDE3IDA2OjU4OjUwICswMjAwIChDRVNUKQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdApYLVNlbmRlcklQOiA5Ni41NC4yMzcuMQpVc2VyLUFnZW50OiBBTEwtSU5LTCBXZWJtYWlsIDIuMTEKSW4tUmVwbHktVG86IDwyNjc4NDE4LjZmOWpjQkYxckNAZ2lnYT4KUmVmZXJlbmNlczogPENBSlJ2RmRvLTMzWmZ4aUZzSndqaUdRSk1ZVDVtdTMxZnFEMWZfdTNGVVFUb0p2PVR1Z0BtYWlsLmdtYWlsLmNvbT4gPDg2MjMwMTMuNHEyQlRyVlkzMkBnaWdhPiA8b3AueThlaDFuZHNrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+PDI2Nzg0MTguNmY5amNCRjFyQ0BnaWdhPgpTdWJqZWN0OiBSZTogTWF2ZW4gRG9ja2VyIEltYWdlcwpGcm9tOiAiTWFuZnJlZCBNb3NlciIgPG1hbmZyZWRAc2ltcGxpZ2lsaXR5LmNvbT4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSWQ6IDwyMDE3MTAyMTA0NTg1MC5GMzM1ODI5QzAxQ0RAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPgpEYXRlOiBTYXQsIDIxIE9jdCAyMDE3IDA2OjU4OjUwICswMjAwIChDRVNUKQoKPkZyb20gbXkgcGVyc3BlY3RpdmUgaXQgaXMganVzdCBsaWtlIHNka21hbiBpbmNsdWRpbmcgdGhlIGNvbmNsdXNpb24uIFdlIGhhdmUgb3RoZXIgdGFza3MgYXQgb3VyIGhhbmRzLCBtYWludGFpbmluZyBhIGRvY2tlciBpbWFnZXMgaXMgbm90IHNvbWV0aGluZyB3ZSBzaG91bGQgYm90aGVyIHdpdGguIEhvd2V2ZXIgbmVlZHMgb25lIGNhbiBlYXNpbHkgY3JlYXRlIG9uZSBhbmQgdGhlcmUgd2lsbCBiZSB0aG91c2FuZHMgb2YgdmFyaWF0aW9ucyBkaWZmZXJlbnQgdXNlcnMgd2FudC4gCgpMZXQgdGhlbSBjcmVhdGUgaXQgb24gdGhlaXIgb3duLgoKTWFuZnJlZAoKSGVydsOpIEJPVVRFTVkgd3JvdGUgb24gMjAxNy0xMC0yMCAxODo0NjoKCj4gdHJ1ZSwgZnJvbSBhIGdlbmVyYWwgcGVyc3BlY3RpdmUsIGl0J3MgbGlrZSBzZGttYW4KPiAKPiB3ZSBuZWVkIHRvIGRpc2N1c3MgdGhlbiBkZWNpZGUgaWYgd2Ugd2FudCB0byBtYWludGFpbiBNYXZlbiBEb2NrZXIgaW50ZWdyYXRpb24gCj4gKGNvbnRyYXJ5IHRvIG91ciBjdXJyZW50IGRlY2lzaW9uIHRvIG5vdCBtYWludGFpbiBNYXZlbiBzZGttYW4gaW50ZWdyYXRpb24gYnV0IAo+IGxldCBzZGttYW4gY29tbXVuaXR5IGRvIGl0KQo+IAo+IGNhbiB3ZSB0aGluayBhYm91dCBhIGdlbmVyYWwgc29sdXRpb24/IHBlcmhhcHMgbm90IHJlYWxseSBhIHNvbHV0aW9uLCBidXQgYSAKPiBkZWNpc2lvbiBwcm9jZXNzLCB5ZXMKPiAKPiB0byBtZSwgb24gZWFjaCB0b29sIGludGVncmF0aW9uLCB0aGVyZSBhcmUga2V5IGRlY2lzaW9uIGRyaXZlcnM6Cj4gLSBpbXBvcnRhbmNlIG9mIHRoZSB0b29sIG9uIHRoZSBtYXJrZXQKPiAtIGludGVyZXN0IG9mIE1hdmVuIGRldnMgdG8gYWN0dWFsbHkgZG8gaW50ZWdyYXRpb24gbWFpbnRlbmFuY2UKPiAtIGNvbXBsZXhpdHkgb2YgaW50ZWdyYXRpb24sIHRlY2huaWNhbCBwcmVyZXF1aXNpdGVzICh3aXRoIElERXMsIGZvciBleGFtcGxlLCAKPiBhIGRlZGljYXRlZCBpbmRlcGVuZGFudCBwcm9qZWN0IGxpa2UgbTJlIGlzIG5lY2Vzc2FyeSkKPiAtIHRpbWUgZmFjdG9yOiB0aGluZ3MgZXZvbHZlIG92ZXIgdGltZSAoZS5nLiAyIHllYXJzIGFnbywgRG9ja2VyIHdhcyBub3Qgd2hhdCAKPiBpdCBpcyBub3dhZGF5cykKPiAKPiBhbnkgb3RoZXIga2V5IGRyaXZlciB0byBkb2N1bWVudD8KPiAKPiBvbmNlIGRvbmUsIHdlJ2xsIGRpc2N1c3MgbW9yZSBwcmVjaXNlbHkgYWJvdXQgdGhlIERvY2tlciBpbnRlZ3JhdGlvbiBjYXNlCj4gCj4gYW5kIHByb2JhYmx5IGZpbmlzaCB3aXRoIGEgdm90ZSA6KQo+IAo+IFJlZ2FyZHMsCj4gCj4gSGVydsOpCj4gCj4gTGUgdmVuZHJlZGkgMjAgb2N0b2JyZSAyMDE3LCAxMTozMDo0OSBDRVNUIFJvYmVydCBTY2hvbHRlIGEgw6ljcml0IDoKPj4gSXNuJ3QgdGhpcyBhY3R1YWxseSB0aGUgc2FtZSBjYXNlIGFzIHNka21hblsxXT8KPj4gSnVzdCB3b25kZXJpbmcgaWYgd2UgbmVlZCB0byB0aGluayBhYm91dCBhIGdlbmVyYWwgc29sdXRpb24gaW5zdGVhZCBvZgo+PiBwdWxsaW5nIGV2ZXJ5dGhpbmcgaW50byBvdXIgcHJvamVjdCB3aGVuIHBvc3NpYmxlLgo+PiAKPj4gdGhhbmtzLAo+PiBSb2JlcnQKPj4gCj4+IFsxXSBodHRwOi8vbWFya21haWwub3JnL21lc3NhZ2Uvb29mdnN6bWY1NnRicjdldAo+PiAKPj4gT24gVGh1LCAxOSBPY3QgMjAxNyAxOTozMDo1NyArMDIwMCwgSGVydsOpIEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4gCj4+IHdyb3RlOgo+PiA+IGdyZWF0IGlkZWEKPj4gPiAKPj4gPiBvaywgd2UgbmVlZCBhIGdpdCByZXBvIGF0IEFTRgo+PiA+IAo+PiA+IHdoYXQgZWxzZT8KPj4gPiBJcyB0aGVyZSBzb21lIHNvcnQgb2YgcmVsZWFzZSBwcm9jZXNzPyBzb21lIHNvcnQgb2Ygc291cmNlIHRvIHJlbGVhc2U/Cj4+ID4gCj4+ID4gUmVnYXJkcywKPj4gPiAKPj4gPiBIZXJ2w6kKPj4gPiAKPj4gPiBMZSBqZXVkaSAxOSBvY3RvYnJlIDIwMTcsIDEzOjQ3OjQ1IENFU1QgTWlrZSBEcm9iIGEgw6ljcml0IDoKPj4gPj4gVGhhbmtzIGZvciB0aGUgcG9pbnRlciwgQ2FybG9zISBJIGhhZCBzZWFyY2hlZCB0aGUgYXJjaGl2ZXMsIGJ1dCBtYXliZSBJCj4+ID4+IGRpZG4ndCBnbyBiYWNrIGZhciBlbm91Z2guCj4+ID4+IAo+PiA+PiBJIHRoaW5rIG1vdmluZyB0aGVzZSBEb2NrZXJmaWxlcyBpbnRvIGFuIEFTRiByZXBvIHdvdWxkIGJlIGdyZWF0IGZvcgo+PiA+PiB0aGVpcgo+PiA+PiBtYWludGFpbmFiaWxpdHkuCj4+ID4+IAo+PiA+PiBUaGFua3MsCj4+ID4+IAo+PiA+PiBNaWtlCj4+ID4+IAo+PiA+PiBPbiAyMDE3LTEwLTE5IDAzOjUwLCBDYXJsb3MgU2FuY2hleiA8Yy4uLkBhcGFjaGUub3JnPiB3cm90ZToKPj4gPj4gPiBBcm5hdWQgaXMgY29ycmVjdCwgSSBzZW50IGFuIGVtYWlsIHRvIHVzZXJzQCBiYWNrIG9uIEZyaSwgTm92IDcsCj4+ID4+IAo+PiA+PiAyMDE0LD4KPj4gPj4gCj4+ID4+ID4gMDA6MjMgd2hlbiBJIGNyZWF0ZWQgdGhlIGltYWdlPgo+PiA+PiA+IAo+PiA+PiA+IAo+PiA+PiA+IE9uIFRodSwgT2N0IDE5LCAyMDE3LCAxMToxMiBBcm5hdWQgSO+/vXJpdGllciA8YWguLi5AZ21haWwuY29tPiB3cm90ZTo+Cj4+ID4+ID4gCj4+ID4+ID4gPiBUaGVzZSBpbWFnZXMgYXJlIGtpbmRseSBtYW5hZ2VkIGJ5IGEgUE1DIG1lbWJlciBvZiBvdXIgcHJvamVjdAo+PiA+PiAKPj4gPj4gKENhcmxvcykKPj4gPj4gCj4+ID4+IGJ1dD4KPj4gPj4gCj4+ID4+ID4gPiB5ZXMgdGhleSBhcmVuJ3QgbWFuYWdlZCBkaXJlY3RseSBieSB0aGUgcHJvamVjdD4KPj4gPj4gPiA+IAo+PiA+PiA+ID4gV2UgY2FuIGVhc2lseSBzZWUgd2l0aCBoaW0gdG8gaW1wcm92ZSB0aGlzIElNTy4+Cj4+ID4+ID4gPiAKPj4gPj4gPiA+IFdoZW4gaGUgc3RhcnRlZCB0aGF0IChzZXZlcmFsIHllYXJzIGFnbykgRG9ja2VyIHdhc24ndCB3aGF0IGl0IGlzCj4+ID4+IAo+PiA+PiBub3dhZGF5cy4+Cj4+ID4+IAo+PiA+PiA+ID4gV2l0aCBkb2NrZXIgYmVpbmcgbWFpbnN0cmVhbSBJIGFncmVlIHRoYXQgd2UgY2FuIHJlY29uc2lkZXIgdGhpcy4+Cj4+ID4+ID4gPiAKPj4gPj4gPiA+IFRoZSBkb2NrZXIgaW1hZ2UgYnVpbGQvZGlzdHJpYnV0aW9uIGNvdWxkIHBlcmhhcHMgYmUgcGFydCBvZiBvdXIKPj4gPj4gCj4+ID4+IHJlbGVhc2U+Cj4+ID4+IAo+PiA+PiA+ID4gcHJvY2Vzcy4+Cj4+ID4+ID4gPiAKPj4gPj4gPiA+IFdEWVQgQ2FybG9zID8+Cj4+ID4+ID4gPiAKPj4gPj4gPiA+IE9uIFRodSwgT2N0IDE5LCAyMDE3IGF0IDQ6MTYgQU0sIE1pa2UgRHJvYiA8bWQuLi5AYXBhY2hlLm9yZz4KPj4gPj4gCj4+ID4+IHdyb3RlOj4KPj4gPj4gCj4+ID4+ID4gPiA+IEkgZ3Vlc3MgdGhlIG5hdHVyYWwgZm9sbG93LW9uIHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhlIE1hdmVuCj4+ID4+IAo+PiA+PiBjb21tdW5pdHk+Cj4+ID4+IAo+PiA+PiA+ID4gPiB3b3VsZCBjb25zaWRlciBwdWJsaXNoaW5nIGFuIG9mZmljaWFsIHNldCBvZiBpbWFnZXM/IE9yCj4+ID4+IAo+PiA+PiBhbHRlcm5hdGl2ZWx5Pgo+PiA+PiAKPj4gPj4gPiA+ID4gd2hldGhlciB0aGV5IHNob3VsZCBzZW5kIGEgdGFrZWRvd24gbm90aWNlIHRvIHByb3RlY3QgdGhlaXIgYnJhbmQKPj4gPj4gCj4+ID4+IGFuZD4KPj4gPj4gCj4+ID4+ID4gPiA+IHRyYWRlbWFya3MuLi4+Cj4+ID4+ID4gPiA+IAo+PiA+PiA+ID4gPiBPbiAyMDE3LTEwLTE4IDE4OjM2LCAiTWFuZnJlZCBNb3NlciIgPG1hLi4uQHNpbXBsaWdpbGl0eS5jb20+Cj4+ID4+IAo+PiA+PiB3cm90ZTo+Cj4+ID4+IAo+PiA+PiA+ID4gPiA+IE5vLiBBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBnaXRodWIgVVJMIHRoaXMgaXMgTk9UIGFuIGFwYWNoZQo+PiA+PiAKPj4gPj4gVVJMLj4KPj4gPj4gCj4+ID4+ID4gPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2Nhcmxvc3NnL2RvY2tlci1tYXZlbj4KPj4gPj4gPiA+ID4gPiAKPj4gPj4gPiA+ID4gPiAKPj4gPj4gPiA+ID4gPiBNaWtlIERyb2Igd3JvdGUgb24gMjAxNy0xMC0xOCAxNjozMjo+Cj4+ID4+ID4gPiA+ID4gCj4+ID4+ID4gPiA+ID4gPiBIZWxsbyw+Cj4+ID4+ID4gPiA+ID4gPiAKPj4gPj4gPiA+ID4gPiA+IEFyZSB0aGUgaW1hZ2VzIGF0IGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9fL21hdmVuLwo+PiA+PiAKPj4gPj4gY29uc2lkZXJlZCB0bwo+PiA+PiAKPj4gPj4gYmU+Cj4+ID4+IAo+PiA+PiA+ID4gPiBvZmZpY2lhbD4KPj4gPj4gPiA+ID4gCj4+ID4+ID4gPiA+ID4gPiBtYXZlbiBkb2NrZXIgaW1hZ2VzIGFuZCBibGVzc2VkL3B1Ymxpc2hlZCBieSB0aGUgUE1DPz4KPj4gPj4gPiA+ID4gPiA+IAo+PiA+PiA+ID4gPiA+ID4gVGhhbmtzLD4KPj4gPj4gPiA+ID4gPiA+IE1pa2U+Cj4+ID4+IAo+PiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+Cj4+ID4+IAo+PiA+PiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogdXNlcnMtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KPj4gPj4gPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IHVzZXJzLWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KPj4gPj4gCj4+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT4KPj4gPj4gCj4+ID4+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogdXNlcnMtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KPj4gPj4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Cj4+ID4+IAo+PiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+Cj4+ID4+IAo+PiA+PiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgo+PiA+PiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Cj4+ID4+ID4gPiAKPj4gPj4gPiA+IC0tPgo+PiA+PiA+ID4gLS0tLS0+Cj4+ID4+ID4gPiBBcm5hdWQgSO+/vXJpdGllcj4KPj4gPj4gPiA+IGh0dHA6Ly9haGVyaXRpZXIubmV0Pgo+PiA+PiA+ID4gTWFpbC9HVGFsazogYWhlcml0aWVyIEFUIGdtYWlsIERPVCBjb20+Cj4+ID4+ID4gPiBUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyPgo+PiA+IAo+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiAKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiAKPiAKPiAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzMDItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE9jdCAyMiAwMjoyNDoxOSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzMDItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgN0VENDUxMEQ1QwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDIyIE9jdCAyMDE3IDAyOjI0OjE5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjA2OTcgaW52b2tlZCBieSB1aWQgNTAwKTsgMjIgT2N0IDIwMTcgMDI6MjQ6MTkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIwNTk3IGludm9rZWQgYnkgdWlkIDUwMCk7IDIyIE9jdCAyMDE3IDAyOjI0OjE5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjA1ODYgaW52b2tlZCBieSB1aWQgOTkpOyAyMiBPY3QgMjAxNyAwMjoyNDoxOCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMjIgT2N0IDIwMTcgMDI6MjQ6MTggKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBDQzNGMzFBMDkxMwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjIgT2N0IDIwMTcgMDI6MjQ6MTcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgaFdQN2w0X1RFb3hkIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAyMiBPY3QgMjAxNyAwMjoyNDoxNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBkZDE3MzMyLmthc3NlcnZlci5jb20gKGRkMTczMzIua2Fzc2VydmVyLmNvbSBbODUuMTMuMTM4LjI2XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDVFQjlCNUZCMDYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDIyIE9jdCAyMDE3IDAyOjI0OjE1ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGRkMTczMzIua2Fzc2VydmVyLmNvbSAoZGQwODAyLmthc3NlcnZlci5jb20gWzg1LjEzLjE0My4xXSkKCWJ5IGRkMTczMzIua2Fzc2VydmVyLmNvbSAoUG9zdGZpeCkgd2l0aCBFU01UUFNBIGlkIEUzNzNGMjlDMDE0MAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjIgT2N0IDIwMTcgMDQ6MjQ6MDcgKzAyMDAgKENFU1QpCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKWC1TZW5kZXJJUDogOTYuNTQuMjM3LjEKVXNlci1BZ2VudDogQUxMLUlOS0wgV2VibWFpbCAyLjExCkluLVJlcGx5LVRvOiA8Q0FMSEZuNlBlS3YwUWstemNkQWlmdEZ5QkpZcVFiY2pmRmFlS3JHeFpLRERXaWhucnBBQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0FKUnZGZG8tMzNaZnhpRnNKd2ppR1FKTVlUNW11MzFmcUQxZl91M0ZVUVRvSnY9VHVnQG1haWwuZ21haWwuY29tPiA8MTcwODI4NS54YlFST0lqOTlaQGdpZ2E+IDxDQStuUG5NeEN1dXBQOTV2UGpYbUV3X0d6ZHpVcnIyQ19TZkZIRFRrb2V6QUdCPXMxZlFAbWFpbC5nbWFpbC5jb20+IDwyNDczNDUyMy5hNkpzRThzZnNoQGdpZ2E+IDxvcC55OGdmazR5dWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD48Q0FMSEZuNlBlS3YwUWstemNkQWlmdEZ5QkpZcVFiY2pmRmFlS3JHeFpLRERXaWhucnBBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogTWF2ZW4gRG9ja2VyIEltYWdlcwpGcm9tOiAiTWFuZnJlZCBNb3NlciIgPG1hbmZyZWRAc2ltcGxpZ2lsaXR5LmNvbT4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSWQ6IDwyMDE3MTAyMjAyMjQwNy5FMzczRjI5QzAxNDBAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPgpEYXRlOiBTdW4sIDIyIE9jdCAyMDE3IDA0OjI0OjA3ICswMjAwIChDRVNUKQoKRm9sbG93aW5nIHVwIG9uIHRoYXQgcmVtYXJrIGFuZCBteSBlYXJsaWVyIHJlbWFyayB0aGF0IHdlIHNob3VsZCBOT1QgbWFrZSB0aGlzIG9mZmljaWFsIC4uIGhlcmUgYXJlIG15IHJlbWFya3M6CgotIHNvIGZhciB0aGUgb25seSBiaW5hcmllcyB3ZSBhc3NlbWJsZSBhbmQgY2FsbCBvZmZpY2lhbCBhcmUgdGhlIHRhci5neiBhbmQgemlwIGFyY2hpdmVzIChhbmQgZXZlbiB0aGF0IGlzIGEgZ3JheSBsaW5lIHNpbmNlIG9mZmljaWFsIHRoZXJlIGFyZSBvbmx5IHNvdXJjZXMgZnJvbSBBcGFjaGUpCi0gd2UgZG8gTk9UIHN1cHBvcnQgKGJ5IGNhbGxpbmcgdGhlbSBvZmZpY2lhbCkgYW55IG90aGVyIGJpbmFyaWVzIHN1Y2ggYXMKICAtIGxpbnV4IGRpc3RybyB2ZXJzaW9ucwogIC0gb3N4IHBhY2thZ2UgdmVyc2lvbnMgKGJyZXdzLCBwb3J0cykKICAtIHdpbmRvd3MgcGFja2FnZXMKICAtIHNka21hbgogIC0gYW5kIG1hbnkgb3RoZXJzCi0gdGhlIGNvbXBsZXhpdHkgb2YgdGhlIGRvY2tlciBpbWFnZXMgaXMgZ3JlYXRlciB0aGFuIGFueSBvZiB0aGUgYWJvdmUgc2luY2UgaXQgaW5jbHVkZXMgdGhvc2UgZmFjdG9ycy4uIAoKSGVyZSBhcmUgYSBmZXcgaXNzdWVzIHdoeSBJIHdvdWxkIG9iamVjdCB0byB0aGlzIGJlaW5nIHRoZSBvZmZpY2lhbCBpbWFnZXMKCi0gb25seSBvcGVuamRrIGFuZCBpYm0gamF2YSwgbm8gb3JhY2xlIGphdmEsIG5vIG90aGVycyBzdWNoIGFzIFp1bHUgb3Igd2hhdGV2ZXIKLSBsaW1pdGVkIG9zIHNlbGVjdGlvbiAob25seSBhbHBpbmUgYW5kIGRlYmlhbiBhbmQgd2luZG93cyBmcm9tIHdoYXQgSSBjYW4gdGVsbCksIG5vIGNlbnRvcywgbm8gdWJ1bnR1Ci0gYmluYXJpZXMgYXJlIGRvd25sb2FkIGZyb20gYSBtaXJyb3IgcmF0aGVyIHRoYW4gdGhlIGFjdHVhbCBhcGFjaGUgc2VydmVycyAoYWx0ZXJuYXRpdmVseSBtYXliZSBjb3VsZCB1c2UgQ2VudHJhbCkKClRoZXNlIGFib3ZlIGZhY3RvcnMgaW1obyBzaG93IHRoYXQgdGhlcmUgaXMgYSBzZWxlY3Rpb24gdGhhdCBoYXMgYmVlbiBtYWRlIGFuZCBJIGRvIG5vdCB0aGluayB3ZSBhcyB0aGUgQXBhY2hlIE1hdmVuIHByb2plY3Qgc2hvdWxkIG1ha2UgdGhpcyBzZWxlY3Rpb24uCgpBcyBzdWNoIEkgd291bGQgc3VnZ2VzdCB0byBrZWVwIGl0IGFzIGlzLiAKCkFuIG9wZW4gc291cmNlIHByb2plY3QgZnJvbSBhbiBpbmRpdmlkdWFsIHRoYXQgcHJvdmlkZXMgTWF2ZW4gYmluYXJpZXMgb24gRG9ja2VyIGltYWdlcy4gSnVzdCBoYXBwZW5zIHRvIGJlIHRoZSBjYXNlIHRoYXQgdGhlIHNhbWUgcGVyc29uIGlzIGFsc28gYSBNYXZlbiBQTUMgKGdyZWF0IGJ0dyEpLgoKSWYgd2UgbWFrZSB0aGlzIHBhcnQgb2YgdGhlIG9mZmljaWFsbHkgc3VwcGxpZWQgYmluYXJpZXMgd2UgY291bGQgYWxzbyB0aGluayBhYm91dAoKLSBtYWtpbmcgYmluYXJpZXMgZm9yIHZhcmlvdXMgTGludXggZGlzdHJvcyBpbiB0aGUgZmlyc3QgcGxhY2UgKHRoZW4gd2Ugd291bGRudCBldmVuIG5lZWQgZG9ja2VyIGltYWdlcyBzaW5jZSBpdCBjb3VsZCBiZSBhIG9uZSBsaW5lIHRvIGluc3RhbGwgYW4gb2ZmaWNpYWwgTWF2ZW4gZGlzdHJvIG9uIHRoZW0pCi0gc3VwcGx5aW5nIGJpbmFyaWVzIHRvIFNES01hbiwgcG9ydHMsIGJyZXcsIGNob2NvbGF0ZXkgYW5kIHNvIG9uCi0gcHVsbCBhbGwgbW9qb2hhdXMgcGx1Z2lucyBpbnRvIEFwYWNoZSAodGhleSBhcmUgbW9zdGx5IHRoZSBzYW1lIGNvbW1pdHRlcnMuLikKLSBwdWxsIG90aGVyIE1hdmVuIHByb2plY3RzIGluIGFzIGRlc2lyZWQgCgpZb3Ugc2VlIHdoZXJlIHRoaXMgbGVhZHMuLi4gYSBMT1Qgb2Ygd29yay4gSW4gbXkgb3BpbmlvbiBhcyB0aGUgQXBhY2hlIE1hdmVuIHByb2plY3Qgd2Ugc2hvdWxkIGZvY3VzIG9uIGp1c3QgdGhhdC4gTWF2ZW4gaXRzZWxmLCBvdXIgY3VycmVudCBwbHVnaW5zIGFuZCByZWxhdGVkIHByb2plY3RzLiBXZSBhbGwga25vdyB0aGF0cyBhbHJlYWR5IG1vcmUgd29yayB0aGFuIHdlIGNhbiByZWFzb25hYmx5IHNob3VsZGVyLi4gSSBzZWUgbm8gcmVhc29uIHRvIGFkZCBtb3JlLgoKTWFuZnJlZAoKCgpDYXJsb3MgU2FuY2hleiB3cm90ZSBvbiAyMDE3LTEwLTIxIDAzOjU5OgoKPiBCVFcgdGhlcmUgYXJlIHBvc3NpYmx5IG1vcmUgdGhhbiBvbmUgaW1hZ2UgYnVpbGQgZm9yIGVhY2ggbWF2ZW4gdmVyc2lvbi4KPiBGb3IgYSB2YXJpZXR5IG9mIHJlYXNvbnMsIGxpa2Ugc2VjdXJpdHkgaXNzdWVzIGluIE9TIG9yIHRvIHVwZ3JhZGUgSkRLIG9yCj4gYmVjYXVzZSBkb2NrZXIgcmVidWlsZHMgaXQsIHNvIGl0IGlzIG5vdCBmZWFzaWJsZSB0byB2b3RlIGVhY2ggb2YgdGhlbS4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzMjUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE9jdCAyNCAxNDoyMTowNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzMjUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNzU3MjIxMDU3QQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDI0IE9jdCAyMDE3IDE0OjIxOjA0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTQ5MjIgaW52b2tlZCBieSB1aWQgNTAwKTsgMjQgT2N0IDIwMTcgMTQ6MjE6MDQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU0ODQ0IGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IE9jdCAyMDE3IDE0OjIxOjA0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTQ4MjAgaW52b2tlZCBieSB1aWQgOTkpOyAyNCBPY3QgMjAxNyAxNDoyMTowMyAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMjQgT2N0IDIwMTcgMTQ6MjE6MDMgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgQjc3REVERkJDNjsgVHVlLCAyNCBPY3QgMjAxNyAxNDoyMTowMyArMDAwMCAoVVRDKQpGcm9tOiBvd2VuZmFycmVsbCA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTY0LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNjQtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNjQ6IFNVUkVGSVJFLTEzODM6IFNwbGl0IElUNTY5IGluIHRvIG11bHRpcGxlIGxpZmVjeWMuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTAyNDE0MjEwMy5CNzdERURGQkM2QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBUdWUsIDI0IE9jdCAyMDE3IDE0OjIxOjAzICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBvd2VuZmFycmVsbCBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNjQKICAKICAgIEBUaWJvcjE3IC0gSXMgdGhpcyB3aGF0IHlvdSB3ZXJlIHRoaW5raW5nIG9mIHdoZW4geW91IGFza2VkIHRvIGNsZWFuIHVwIHRoZSBkaXN0aW5jdCBjaGFuZ2Ugc2V0cyByZWxhdGVkIHRvICMxNTc/CgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzNDktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE9jdCAyNiAxNDowNTo1NCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzNDktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgN0FENjUxMEFCMgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDI2IE9jdCAyMDE3IDE0OjA1OjU0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDc3NTIgaW52b2tlZCBieSB1aWQgNTAwKTsgMjYgT2N0IDIwMTcgMTQ6MDU6NTQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ3NjYwIGludm9rZWQgYnkgdWlkIDUwMCk7IDI2IE9jdCAyMDE3IDE0OjA1OjU0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDc2NDkgaW52b2tlZCBieSB1aWQgOTkpOyAyNiBPY3QgMjAxNyAxNDowNTo1MyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMjYgT2N0IDIwMTcgMTQ6MDU6NTMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAxOTM2NTE4MDcyRAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjYgT2N0IDIwMTcgMTQ6MDU6NTMgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4wMDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMDAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtSUF9NQVRDSEVTX1JDVkQ9LTAuMDAxLCBTUEZfUEFTUz0tMC4wMDEsIFVSSUJMX0JMT0NLRUQ9MC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBGdElzY283M1REY3MgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsIDI2IE9jdCAyMDE3IDE0OjA1OjQ3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwuaW83bS5jb20gKG1haWwuaW83bS5jb20gWzQ1Ljc3Ljc2LjkyXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDY5OThBNUZEOEIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDI2IE9jdCAyMDE3IDE0OjA1OjQ3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbyAodW5rbm93biBbSVB2NjoyYTAyOjM5MDo3NTAyOjI6MDoyOjE6MF0pCglieSBtYWlsLmlvN20uY29tIChQb3N0Zml4KSB3aXRoIEVTTVRQU0EgaWQgMDQzQUMxQUUyOAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjYgT2N0IDIwMTcgMTQ6MDU6MDIgKzAwMDAgKFVUQykKRGF0ZTogVGh1LCAyNiBPY3QgMjAxNyAxNDowNTowMSArMDAwMApGcm9tOiBNYXJrIFJheW5zZm9yZCA8b3JnLmFwYWNoZS5tYXZlbi51c2VyQGlvN20uY29tPgpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBtYXZlbi1wbHVnaW4tcGx1Z2luIGR1ZSBhbnkgdGltZSBzb29uPwpNZXNzYWdlLUlEOiA8MjAxNzEwMjYxNDAwNTIuNjAzYjUxYTBAY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvPgpPcmdhbml6YXRpb246IGlvN20uY29tCk9wZW5QR1A6IGlkPTgxNjhEQUUyMkIxNUQzRURDNzIyQzIzRDBGMTVCN0QwNkZBODBDQjg7CiB1cmw9aHR0cDovL2lvN20uY29tL3BncC84MTY4X0RBRTJfMkIxNV9EM0VEX0M3MjJfQzIzRF8wRjE1X0I3RDBfNkZBOF8wQ0I4LmtleQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IG11bHRpcGFydC9zaWduZWQ7IG1pY2FsZz1wZ3Atc2hhNTEyOwogYm91bmRhcnk9IlNpZ18vS1JlNmwvdHdEbVhZTGN6MEtqMjVNYUsiOyBwcm90b2NvbD0iYXBwbGljYXRpb24vcGdwLXNpZ25hdHVyZSIKCi0tU2lnXy9LUmU2bC90d0RtWFlMY3owS2oyNU1hSwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVMtQVNDSUkKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSGVsbG8uCgpJJ20gcnVubmluZyBpbnRvIHdoYXQgSSB0aGluayBpcyBNUExVR0lOLTMwNCBbMF0gd2hlbiB1cGdyYWRpbmcKc2V2ZXJhbCBvZiBteSBNYXZlbiBwbHVnaW5zIHRvIEpESyA5LiBUaGUgaXNzdWUgaGFzIGJlZW4gZml4ZWQsIGJ1dCBJCmRvbid0IHRoaW5rIHRoYXQgZml4IGhhcyBtYWRlIGl0IGludG8gYW55IHJlbGVhc2UgeWV0LiBJcyB0aGVyZSBhCnJlbGVhc2Ugb2YgbWF2ZW4tcGx1Z2luLXBsdWdpbiBkdWUgYW55IHRpbWUgc29vbj8KCkFwb2xvZ2llcyBpZiB0aGlzIGluZm9ybWF0aW9uIGlzIG9ubGluZSBzb21ld2hlcmUuLi4gSSBoYXZlIG5vIGlkZWEKd2hlcmUgdG8gbG9vayEKClswXSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01QTFVHSU4tMzA0CgotLT0yMApNYXJrIFJheW5zZm9yZCB8IGh0dHA6Ly93d3cuaW83bS5jb20KCgotLVNpZ18vS1JlNmwvdHdEbVhZTGN6MEtqMjVNYUsKQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlCkNvbnRlbnQtRGVzY3JpcHRpb246IE9wZW5QR1AgZGlnaXRhbCBzaWduYXR1cmUKCi0tLS0tQkVHSU4gUEdQIFNJR05BVFVSRS0tLS0tCgppUUl6QkFFQkNnQWRGaUVFZ1dqYTRpc1YwKzNISXNJOUR4VzMwRytvRExnRkFsbng2NDBBQ2drUUR4VzMwRytvCkRMai81US8vV0dpNktOS1ZUdDRmTjF3aVo2MExzSHhqcUJMbFFtMWF2c2tyUnNOUXBrRjZmRS9oeG1hNW4zUmMKMUhLMUkvZjVna1R5WUZaZU1kNXA4RGNQc0l4SmwyQnNxbGkxMVFTZlNSaW0wdFBTeWZoUDJvUExOdmsrc1pBZQo3emRYUlF5alZqS1YwRkxWTFBNS2FUMkZrcXJ5YThEMWROTnA0c2dYL3h6anFsbklqQXJnVDBSU0pndHIyUWNvCmtiK0x6a3BjU05sM0wrVUZ5dVdPeTk1SHFCdWpVamNjZWI5UytWN2JmNGI0dTJKSzdwNUJtbXBRNFJTYURIOXgKaFlDUzkwZnJWU1F2Y0t4RW04dC9jZXpDeUlJQzM1MERibUsxb25NYkFpT01FUCtMZ2Y3bFZXS1ArY2hIVEhPMApFcE5mMVo5QTdaMHFFd1YzdWxtdnV5cVBWRUdHdWd3YWNuQ3ZybklUQWU4K0VyUWEzOWozYVJwM05pR1NjcmJtCkJ5dFNZU0ZUUjJ0dG9lZGpHYlZLbXZQZ3JCbXBLV1B1dmwzdXRBa1g0M2hEbVFtTWN1eGtyMHdoeHo1MmIrd0MKeFpORUdWdTBhODJKejdyQWxIcWtJa05WcWJSWHE0ZERsUTFMRCs5aHdMbFBJRms4MkV3K0VQQ1U1Q1l1RmVPegowbFRuMStVRlZMUGhvV0dRelVOakIrU0xiVUZQSzRXcld1SW4wY2M2NU84eTNRRGdrTW9RQjFubHNRWE1PWitSCjlCcStWZ09ueDlhcmx6azNKN3Z3Njh5ZmtIZ2tCdjMrR0RkWmtLeUVnMS8wWURGM1E3TjBuWTdhUld4cWYzVXAKMUNhYmtaL05EeE5wbHZyZXZ0Yk9KTWRVT3FqSTlSK1UxanVHWVAvdkFaWEo4VE50c2lFPQo9VThKYwotLS0tLUVORCBQR1AgU0lHTkFUVVJFLS0tLS0KCi0tU2lnXy9LUmU2bC90d0RtWFlMY3owS2oyNU1hSy0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MzUwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBPY3QgMjYgMTQ6MzE6MTQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzUwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDFEMTFGMTBDN0QKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAyNiBPY3QgMjAxNyAxNDozMToxNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDM2NzgwIGludm9rZWQgYnkgdWlkIDUwMCk7IDI2IE9jdCAyMDE3IDE0OjMxOjEzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNjcwMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBPY3QgMjAxNyAxNDozMToxMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM2NjkwIGludm9rZWQgYnkgdWlkIDk5KTsgMjYgT2N0IDIwMTcgMTQ6MzE6MTMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDI2IE9jdCAyMDE3IDE0OjMxOjEzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQjkyNzMxQTA5NTQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDI2IE9jdCAyMDE3IDE0OjMxOjEyICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuMDAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjAwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bUlBfTUFUQ0hFU19SQ1ZEPS0wLjAwMSwgU1BGX1BBU1M9LTAuMDAxLCBVUklCTF9CTE9DS0VEPTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBUdVZCX2tCS3NhRVogZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsIDI2IE9jdCAyMDE3IDE0OjMxOjExICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwuaW83bS5jb20gKG1haWwuaW83bS5jb20gWzQ1Ljc3Ljc2LjkyXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEI0OUEyNUZCRjYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDI2IE9jdCAyMDE3IDE0OjMxOjExICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbyAodW5rbm93biBbSVB2NjoyYTAyOjM5MDo3NTAyOjI6MDoyOjE6MF0pCglieSBtYWlsLmlvN20uY29tIChQb3N0Zml4KSB3aXRoIEVTTVRQU0EgaWQgQjRDNjIxQUUzRgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjYgT2N0IDIwMTcgMTQ6MzE6MTAgKzAwMDAgKFVUQykKRGF0ZTogVGh1LCAyNiBPY3QgMjAxNyAxNDozMDo1OSArMDAwMApGcm9tOiBNYXJrIFJheW5zZm9yZCA8b3JnLmFwYWNoZS5tYXZlbi51c2VyQGlvN20uY29tPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogUmU6IG1hdmVuLXBsdWdpbi1wbHVnaW4gZHVlIGFueSB0aW1lIHNvb24/Ck1lc3NhZ2UtSUQ6IDwyMDE3MTAyNjE0MzA1OS4wYTg3ZTQ1M0Bjb3BwZXJoZWFkLmludC5hcmM3LmluZm8+CkluLVJlcGx5LVRvOiA8MjAxNzEwMjYxNDAwNTIuNjAzYjUxYTBAY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvPgpSZWZlcmVuY2VzOiA8MjAxNzEwMjYxNDAwNTIuNjAzYjUxYTBAY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvPgpPcmdhbml6YXRpb246IGlvN20uY29tCk9wZW5QR1A6IGlkPTgxNjhEQUUyMkIxNUQzRURDNzIyQzIzRDBGMTVCN0QwNkZBODBDQjg7CiB1cmw9aHR0cDovL2lvN20uY29tL3BncC84MTY4X0RBRTJfMkIxNV9EM0VEX0M3MjJfQzIzRF8wRjE1X0I3RDBfNkZBOF8wQ0I4LmtleQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IG11bHRpcGFydC9zaWduZWQ7IG1pY2FsZz1wZ3Atc2hhNTEyOwogYm91bmRhcnk9IlNpZ18veTdjdEVUYVJaQVFSU1NrZFZYV21lVTMiOyBwcm90b2NvbD0iYXBwbGljYXRpb24vcGdwLXNpZ25hdHVyZSIKCi0tU2lnXy95N2N0RVRhUlpBUVJTU2tkVlhXbWVVMwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVMtQVNDSUkKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gMjAxNy0xMC0yNlQxNDowNTowMSArMDAwMApNYXJrIFJheW5zZm9yZCA8b3JnLmFwYWNoZS5tYXZlbi51c2VyQGlvN20uY29tPiB3cm90ZToKPgo+IEknbSBydW5uaW5nIGludG8gd2hhdCBJIHRoaW5rIGlzIE1QTFVHSU4tMzA0IFswXSB3aGVuIHVwZ3JhZGluZwo+IHNldmVyYWwgb2YgbXkgTWF2ZW4gcGx1Z2lucyB0byBKREsgOS4gVGhlIGlzc3VlIGhhcyBiZWVuIGZpeGVkLCBidXQgSQo+IGRvbid0IHRoaW5rIHRoYXQgZml4IGhhcyBtYWRlIGl0IGludG8gYW55IHJlbGVhc2UgeWV0LgoKU29ycnkgZm9yIHRoZSBub2lzZTogSSBtYWRlIGEgbWlzdGFrZS4gSSB0aG91Z2h0IEkgd2FzIHVzaW5nIDMuNSBidXQgaXQKdHVybnMgb3V0IEkgd2FzIGFjdHVhbGx5IHVzaW5nIDMuNC4gVXBncmFkaW5nIHRvIDMuNSBmaXhlZCB0aGUgaXNzdWUuCgotLT0yMApNYXJrIFJheW5zZm9yZCB8IGh0dHA6Ly93d3cuaW83bS5jb20KCgotLVNpZ18veTdjdEVUYVJaQVFSU1NrZFZYV21lVTMKQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlCkNvbnRlbnQtRGVzY3JpcHRpb246IE9wZW5QR1AgZGlnaXRhbCBzaWduYXR1cmUKCi0tLS0tQkVHSU4gUEdQIFNJR05BVFVSRS0tLS0tCgppUUl6QkFFQkNnQWRGaUVFZ1dqYTRpc1YwKzNISXNJOUR4VzMwRytvRExnRkFsbng4YU1BQ2drUUR4VzMwRytvCkRMampHZy8vZmtvV0VpYXBmR3ZxTGd6Vkk1Q0ZhL0RtaUNWblkvcGxTcUpBOEUrMVg1VDhubnpDeGJsZU1uYkoKSzhIYjE2N1lpTXBJMEZwcWZqVkFreHd1UGFmcVBINGZIZS82bnByWS8zNm10ZmVHc0tIZDBheFdYSjBzenc1Mgp2RjN1bTNxemw0aWJwQk8wMkZZNEZCMjA0SVBBc0FhaVBDdmgrcXVFcUt2OGJ3MnBiUng3UHRsenJ1SWpkU3VMCnk2R2JRWlJXYWxIemZaR09FMmxjL05RdnBkNmRTZzZYNFAxejRaUTJzeFJJS1BIN29Ea0RmdGQ5SWIyK0ZyQkEKeG10NXRnakx4VHkybVJlUG92b0RGS0Z4aDZ0SlZnMVVCVWR6c3IyRDZXanNYSk42MytKaXVIQ1hxNDRDbjQrUAo5NDNTcU9PUFVQaUJEWm56RS9HQzAwbXROMUk2WDl3a3YxK3VMSVFmbmdtdE1YYllHZEMyYU5uWXlrYnRvY0FwClhEUWE5aFlWNzFJMElmZ2ZxUzdXMmdLeEZXN1pSVjVqdlJ3dUszeG56K0NxbXZkaUtBQUgrVjFMMmIwQ20wS1cKNFZ3ZFY0d01sTmN0akpmN09YNVpucXpKZXFXYkNqT0U3V1Z0UE8vbmF0bEE1ZEFCTXpwY25CVmVtSkE1VzF4agpGRldtanVtci84a2VyZ1ljaVVjYkkwV0FWYVd5WkVZV0YwZVpPOWg2WWpzK1p0NGkrSldINDJRSjZKZUNoVXFGClU1cGx0eXQ5RjlQUjd6WnVnYWZzMDhxVE1KZXdDWXoybFJWaGFYbjFRTjhFRW5LOWltNmE5MkgySFFkQW9uVVIKYVlvendrT3J0Q0t3bnpBNStSUHByZ3BoQ25BSVVFZ282UXFKREtGN0o5Ni9neE5tQTRZPQo9eDBjSwotLS0tLUVORCBQR1AgU0lHTkFUVVJFLS0tLS0KCi0tU2lnXy95N2N0RVRhUlpBUVJTU2tkVlhXbWVVMy0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MzY2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBPY3QgMjggMTQ6NDM6MTYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzY2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEE0OEFEMTc1QTQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAyOCBPY3QgMjAxNyAxNDo0MzoxNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQxMyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBPY3QgMjAxNyAxNDo0MzoxNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzIyIGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE9jdCAyMDE3IDE0OjQzOjE2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzExIGludm9rZWQgYnkgdWlkIDk5KTsgMjggT2N0IDIwMTcgMTQ6NDM6MTYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDI4IE9jdCAyMDE3IDE0OjQzOjE2ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDJBMThBREZBMEE7IFNhdCwgMjggT2N0IDIwMTcgMTQ6NDM6MTMgKzAwMDAgKFVUQykKRnJvbTogdmFkZWcgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTQtbWF2ZW4tcGx1Z2luLXRlc3RpbmdAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTQtbWF2ZW4tcGx1Z2luLXRlc3RpbmdAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXBsdWdpbi10ZXN0aW5nIGlzc3VlICM0OiBBZGRlZCBzdXBwb3J0IGZvciBwbHVnaW5zIHdpdGhvdXQgY29uZmlndXJhdGkuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTAyODE0NDMxNC4yQTE4QURGQTBBQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBTYXQsIDI4IE9jdCAyMDE3IDE0OjQzOjEzICswMDAwIChVVEMpCgpHaXRodWIgdXNlciB2YWRlZyBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2luLXRlc3RpbmcvcHVsbC80CiAgCiAgICBIZWxsbyEKICAgIAogICAgQXJlIHRoZXJlIGFueSB1cGRhdGVzPwoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MzY4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBPY3QgMjkgMDg6MTI6NDkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzY4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDlEQ0UyMTA1RDQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAyOSBPY3QgMjAxNyAwODoxMjo0OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ5MjYxIGludm9rZWQgYnkgdWlkIDUwMCk7IDI5IE9jdCAyMDE3IDA4OjEyOjQ5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0OTE3NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOSBPY3QgMjAxNyAwODoxMjo0OSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ5MTYzIGludm9rZWQgYnkgdWlkIDk5KTsgMjkgT2N0IDIwMTcgMDg6MTI6NDggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDI5IE9jdCAyMDE3IDA4OjEyOjQ4ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIEQwRTUxREZBQjQ7IFN1biwgMjkgT2N0IDIwMTcgMDg6MTI6NDcgKzAwMDAgKFVUQykKRnJvbTogcmZzY2hvbHRlIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci00LW1hdmVuLXBsdWdpbi10ZXN0aW5nQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci00LW1hdmVuLXBsdWdpbi10ZXN0aW5nQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1wbHVnaW4tdGVzdGluZyBpc3N1ZSAjNDogQWRkZWQgc3VwcG9ydCBmb3IgcGx1Z2lucyB3aXRob3V0IGNvbmZpZ3VyYXRpLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzEwMjkwODEyNDcuRDBFNTFERkFCNEBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogU3VuLCAyOSBPY3QgMjAxNyAwODoxMjo0NyArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgcmZzY2hvbHRlIGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW4tdGVzdGluZy9wdWxsLzQKICAKICAgIERvIHlvdSBrbm93IHRoZSByZWFzb24gd2h5IHNvbWVib2R5IGltcGxlbWVudGVkIHRoZSBgQ29uZmlndXJhdGlvbkV4Y2VwdGlvbmAgYmVpbmcgdGhyb3duPwoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MzcwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBPY3QgMjkgMTE6MDk6MjMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzcwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDlEMUE2MTA4QTgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAyOSBPY3QgMjAxNyAxMTowOToyMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDgyODY1IGludm9rZWQgYnkgdWlkIDUwMCk7IDI5IE9jdCAyMDE3IDExOjA5OjIzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4Mjc4MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOSBPY3QgMjAxNyAxMTowOToyMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgyNzcyIGludm9rZWQgYnkgdWlkIDk5KTsgMjkgT2N0IDIwMTcgMTE6MDk6MjIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDI5IE9jdCAyMDE3IDExOjA5OjIyICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIEQwRDY0REZBQjQ7IFN1biwgMjkgT2N0IDIwMTcgMTE6MDk6MjIgKzAwMDAgKFVUQykKRnJvbTogdmFkZWcgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTQtbWF2ZW4tcGx1Z2luLXRlc3RpbmdAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTQtbWF2ZW4tcGx1Z2luLXRlc3RpbmdAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXBsdWdpbi10ZXN0aW5nIGlzc3VlICM0OiBBZGRlZCBzdXBwb3J0IGZvciBwbHVnaW5zIHdpdGhvdXQgY29uZmlndXJhdGkuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTAyOTExMDkyMi5EMEQ2NERGQUI0QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBTdW4sIDI5IE9jdCAyMDE3IDExOjA5OjIyICswMDAwIChVVEMpCgpHaXRodWIgdXNlciB2YWRlZyBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2luLXRlc3RpbmcvcHVsbC80CiAgCiAgICBAcmZzY2hvbHRlIEkgZG8gbm90IGtub3cgdGhlIHJlYXNvbi4gV2hhdCBJIGtub3cgZm9yIHN1cmUgdGhhdCBtYXZlbiBwbHVnaW4gY2FuIGJlIHdpdGhvdXQgY29uZmlndXJhdGlvbiBhdCBhbGwuCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0MzktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIE5vdiAgNiAxNjoyODo0NyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0MzktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNUY1RUYxNzQwNAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sICA2IE5vdiAyMDE3IDE2OjI4OjQ3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjU4ODMgaW52b2tlZCBieSB1aWQgNTAwKTsgNiBOb3YgMjAxNyAxNjoyODo0NyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjU4MDYgaW52b2tlZCBieSB1aWQgNTAwKTsgNiBOb3YgMjAxNyAxNjoyODo0NyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI1NzkwIGludm9rZWQgYnkgdWlkIDk5KTsgNiBOb3YgMjAxNyAxNjoyODo0NiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMDYgTm92IDIwMTcgMTY6Mjg6NDYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAwRERBODFBMENFQQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgIDYgTm92IDIwMTcgMTY6Mjg6NDYgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4wMDIKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMDAyIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtSUF9NQVRDSEVTX1JDVkQ9LTAuMDAxLCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgOVFaQWRqWFJXLXV1IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAgNiBOb3YgMjAxNyAxNjoyODo0MSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLmlvN20uY29tIChtYWlsLmlvN20uY29tIFs0NS43Ny43Ni45Ml0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA5QzBGQjVGM0UwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAgNiBOb3YgMjAxNyAxNjoyODo0MSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBjb3BwZXJoZWFkLmludC5hcmM3LmluZm8gKHVua25vd24gW0lQdjY6MmEwMjozOTA6NzUwMjoyOjA6MjoxOjBdKQoJYnkgbWFpbC5pbzdtLmNvbSAoUG9zdGZpeCkgd2l0aCBFU01UUFNBIGlkIEU4ODIxMTg4REEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICA2IE5vdiAyMDE3IDE2OjI4OjM0ICswMDAwIChVVEMpCkRhdGU6IE1vbiwgNiBOb3YgMjAxNyAxNjoyODoyMyArMDAwMApGcm9tOiBNYXJrIFJheW5zZm9yZCA8b3JnLmFwYWNoZS5tYXZlbi51c2VyQGlvN20uY29tPgpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBBbnkgRVRBIGZvciBtYXZlbi1qYXZhZG9jLXBsdWdpbiAzLjAuMD8KTWVzc2FnZS1JRDogPDIwMTcxMTA2MTYyODIzLjQ1NDNlYTdkQGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbz4KT3JnYW5pemF0aW9uOiBpbzdtLmNvbQpPcGVuUEdQOiBpZD04MTY4REFFMjJCMTVEM0VEQzcyMkMyM0QwRjE1QjdEMDZGQTgwQ0I4OwogdXJsPWh0dHA6Ly9pbzdtLmNvbS9wZ3AvODE2OF9EQUUyXzJCMTVfRDNFRF9DNzIyX0MyM0RfMEYxNV9CN0QwXzZGQThfMENCOC5rZXkKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvc2lnbmVkOyBtaWNhbGc9cGdwLXNoYTUxMjsKIGJvdW5kYXJ5PSJTaWdfLyswdXgxUXo4Mj14ZFNQZ1hJV0NKQms0IjsgcHJvdG9jb2w9ImFwcGxpY2F0aW9uL3BncC1zaWduYXR1cmUiCgotLVNpZ18vKzB1eDFRejgyPXhkU1BnWElXQ0pCazQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVTLUFTQ0lJCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCidMby4KCkknbSBpbiB0aGUgcHJvY2VzcyBvZiBjb252ZXJ0aW5nIGEgdG9uIG9mIHByb2plY3RzIHRvIEphdmEgOSBhbmQgYW0KY3VycmVudGx5IGJsb2NrZWQgb24gTUpBVkFET0MtNDk4WzBdLiBUaGUgaXNzdWUgaGFzIGFjdHVhbGx5IGJlZW4KZml4ZWQsIGl0IGp1c3QgaGFzbid0IG1hZGUgaXQgdG8gYSByZWxlYXNlIHlldC4KCklmIDMuMC4wIGlzbid0IGR1ZSBmb3IgYSB3aGlsZSB5ZXQsIGlzIHRoZXJlIGFueSBjaGFuY2Ugb2YgZ2V0dGluZyBhCjMuMC4wLU0yPwoKWzBdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTUpBVkFET0MtNDk4CgotLT0yMApNYXJrIFJheW5zZm9yZCB8IGh0dHA6Ly93d3cuaW83bS5jb20KCgotLVNpZ18vKzB1eDFRejgyPXhkU1BnWElXQ0pCazQKQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlCkNvbnRlbnQtRGVzY3JpcHRpb246IE9wZW5QR1AgZGlnaXRhbCBzaWduYXR1cmUKCi0tLS0tQkVHSU4gUEdQIFNJR05BVFVSRS0tLS0tCgppUUl6QkFFQkNnQWRGaUVFZ1dqYTRpc1YwKzNISXNJOUR4VzMwRytvRExnRkFsb0FqYWNBQ2drUUR4VzMwRytvCkRMaFJqUS85RU9oU3ExbWZPRUhuRmVRSVpyRGZMYlR4blBrUTcxWGtqK1lRTEhaaDRSUGVmMEdGdGMyNWxaN3AKTjN4L0NvUVljZUsxeW1lSGYrNm8ydlJPTHhSeTNJaVlGbFR1QVBvR0hHY1ZmSm9HUDFkN1FZL2NEQVlWcW9PNgpsS3luTUQzMERzTWRRRGdGL1dHc2NwZDZycnhMdzloZjNQVmlBU0M1Ni9hVGtWVDJia0NGaG5JcC8wMjNnMjhhCmNnbzhpSGZZR08xS1VxRHdseFVhbnE2czFyLzFaS3N6QllYYkNLNUQ1dVg3d0tSNE9IbkhtN3lWTDNZNXdqK0MKU2E3Wk1NV3hMTUlyeHJPQVVHTW9nbUFuQU1VZFNSTzdTZnN6b1hQbEZvcXp1c0x1UHRJc2FYSmo5VWlwWHB2cwo3aVUvM3VSRjZmanUwbGdtZSszNWsrT0dFL3RLV2QzTXVjYWk5ZlJlWmxicHZWQmFKRzQ3UzIzN0NITGFiS3dxCml6V1BYM0NkWW1sMzN1SFBMbWxCL2toYW9tVHIrMEk0L2RBaW1lRGN3OFBJNWxOdktsT2dULzRSWjk5d0U5Y0kKdlJqemlZTXdKbTNCanQrRFh3Z0Z1RTVVQ3IvTlhSTzRrMENYSWpLRkk0Q1NrU0VEUHBiNCs5WGdHMEd2Y3FlTQpSNGsyL1JaUFhPQkEwRjZuVU1CT0V3NmI0TXVGbkw1QjRHMXVUNUdlZ2RaQlRTZXBmQ3JiSDVXUnc3M1ZFTXJDCkRvZEFnd3lpQWRGQ1JqeWhTWFBCck54TlgycHUyQ0oxVjB0ZUVwOEFLQ2ZLMUJtUUh3TEdrK2Rra2JYUjNiT0YKZ1FMdnkzNER1LzR5NlJIdlFZeElDcHpjbk1Kb2hOY1ZyQkVJUXo2UjliRi9GZFdhMUVnPQo9a2NydQotLS0tLUVORCBQR1AgU0lHTkFUVVJFLS0tLS0KCi0tU2lnXy8rMHV4MVF6ODI9eGRTUGdYSVdDSkJrNC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NDQwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBOb3YgIDYgMTY6NDE6MDkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDQwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEJDRjMzMTc0OTgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAgNiBOb3YgMjAxNyAxNjo0MTowOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDYwMDIzIGludm9rZWQgYnkgdWlkIDUwMCk7IDYgTm92IDIwMTcgMTY6NDE6MDkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU5OTQ5IGludm9rZWQgYnkgdWlkIDUwMCk7IDYgTm92IDIwMTcgMTY6NDE6MDkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1OTkzNiBpbnZva2VkIGJ5IHVpZCA5OSk7IDYgTm92IDIwMTcgMTY6NDE6MDkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDA2IE5vdiAyMDE3IDE2OjQxOjA5ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDRBODc4REZCQUI7IE1vbiwgIDYgTm92IDIwMTcgMTY6NDE6MDcgKzAwMDAgKFVUQykKRnJvbTogc2xhY2hpZXdpY3ogPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTExOC1tYXZlbkBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTE4LW1hdmVuQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbiBpc3N1ZSAjMTE4OiBVcGdyYWRlIFNMRjRKIHRvIDEuNy4yNQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMTA2MTY0MTA4LjRBODc4REZCQUJAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IE1vbiwgIDYgTm92IDIwMTcgMTY6NDE6MDcgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIHNsYWNoaWV3aWN6IGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9wdWxsLzExOAogIAogICAgVGhpcyBvbmUgY2FuIGJlIGNsb3NlZC4KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQ0NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgTm92ICA3IDA4OjU1OjI3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQ0NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAzOEI3RTE3OTE1Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgIDcgTm92IDIwMTcgMDg6NTU6MjcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyMDI0MCBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE5vdiAyMDE3IDA4OjU1OjI2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMDE3MyBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE5vdiAyMDE3IDA4OjU1OjI2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjAxNjIgaW52b2tlZCBieSB1aWQgOTkpOyA3IE5vdiAyMDE3IDA4OjU1OjI2IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAwNyBOb3YgMjAxNyAwODo1NToyNiArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCAyNzZCOERGQkNBOyBUdWUsICA3IE5vdiAyMDE3IDA4OjU1OjI2ICswMDAwIChVVEMpCkZyb206IGViYXJib25pIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0yMC1tYXZlbi1pbmRleGVyQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0yMC1tYXZlbi1pbmRleGVyQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1pbmRleGVyIGlzc3VlICMyMDogRml4IGlzc3VlIHRyYWNrZXIgVVJJIGluIFJFQURNRQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMTA3MDg1NTI2LjI3NkI4REZCQ0FAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFR1ZSwgIDcgTm92IDIwMTcgMDg6NTU6MjYgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIGViYXJib25pIGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1pbmRleGVyL3B1bGwvMjAKICAKICAgIGhpLCBpZiB5b3UgZWRpdCB0aGUgUFIgdGl0bGUgdG8gY29udGFpbnMgTUlOREVYRVItMTA1IGl0IHdpbGwgY29ubmVjdCB0aGUgZ2l0aGIgdG8gdG8gdGhlIHJlbGF0ZWQgamlyYSBpc3N1ZS4KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQ0Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgTm92ICA3IDEwOjA1OjA3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQ0Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA1REZDMDE3QTQ5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgIDcgTm92IDIwMTcgMTA6MDU6MDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3NjQyNCBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE5vdiAyMDE3IDEwOjA1OjA3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NjM1NCBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE5vdiAyMDE3IDEwOjA1OjA2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzYzNDMgaW52b2tlZCBieSB1aWQgOTkpOyA3IE5vdiAyMDE3IDEwOjA1OjA2IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAwNyBOb3YgMjAxNyAxMDowNTowNiArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCA4NTEwQkRGOUFGOyBUdWUsICA3IE5vdiAyMDE3IDEwOjA1OjA2ICswMDAwIChVVEMpCkZyb206IHNld2UgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTIwLW1hdmVuLWluZGV4ZXJAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTIwLW1hdmVuLWluZGV4ZXJAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLWluZGV4ZXIgaXNzdWUgIzIwOiBGaXggaXNzdWUgdHJhY2tlciBVUkkgaW4gUkVBRE1FCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzExMDcxMDA1MDYuODUxMEJERjlBRkBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogVHVlLCAgNyBOb3YgMjAxNyAxMDowNTowNiArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgc2V3ZSBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4taW5kZXhlci9wdWxsLzIwCiAgCiAgICA+IGhpLCBpZiB5b3UgZWRpdCB0aGUgUFIgdGl0bGUgdG8gY29udGFpbnMgTUlOREVYRVItMTA1IGl0IHdpbGwgY29ubmVjdCB0aGUgZ2l0aGIgdG8gdG8gdGhlIHJlbGF0ZWQgamlyYSBpc3N1ZS4KICAgIAogICAgQGViYXJib25pIERvbmUuCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0NDctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE5vdiAgNyAxMDoxNDo1OSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0NDctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOEVCQUIxN0UxQQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsICA3IE5vdiAyMDE3IDEwOjE0OjU5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDI1OTggaW52b2tlZCBieSB1aWQgNTAwKTsgNyBOb3YgMjAxNyAxMDoxNDo1OSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDI1MjcgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBOb3YgMjAxNyAxMDoxNDo1OSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQyMjY2IGludm9rZWQgYnkgdWlkIDk5KTsgNyBOb3YgMjAxNyAxMDoxNDo1OCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMDcgTm92IDIwMTcgMTA6MTQ6NTggKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgQzVENUFERjlBRjsgVHVlLCAgNyBOb3YgMjAxNyAxMDoxNDo1OCArMDAwMCAoVVRDKQpGcm9tOiBhc2ZnaXQgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTIwLW1hdmVuLWluZGV4ZXJAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTIwLW1hdmVuLWluZGV4ZXJAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLWluZGV4ZXIgcHVsbCByZXF1ZXN0ICMyMDogRml4IGlzc3VlIHRyYWNrZXIgVVJJIGluIFJFQURNRQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMTA3MTAxNDU4LkM1RDVBREY5QUZAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFR1ZSwgIDcgTm92IDIwMTcgMTA6MTQ6NTggKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIGFzZmdpdCBjbG9zZWQgdGhlIHB1bGwgcmVxdWVzdCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWluZGV4ZXIvcHVsbC8yMAoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NDUzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBOb3YgIDkgMDU6MzY6MDAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDUzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEMyRTQ3MTdGNTIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAgOSBOb3YgMjAxNyAwNTozNjowMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDEwNDA0IGludm9rZWQgYnkgdWlkIDUwMCk7IDkgTm92IDIwMTcgMDU6MzY6MDAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDEwMjgzIGludm9rZWQgYnkgdWlkIDUwMCk7IDkgTm92IDIwMTcgMDU6MzY6MDAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMDI3MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDkgTm92IDIwMTcgMDU6MzU6NTkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDA5IE5vdiAyMDE3IDA1OjM1OjU5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMkZGMkQxQTM3NzcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsICA5IE5vdiAyMDE3IDA1OjM1OjU5ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMQpYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIG5LUTJCcmhpTGxkZiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVRodSwgIDkgTm92IDIwMTcgMDU6MzU6NTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZGQxNzMzMi5rYXNzZXJ2ZXIuY29tIChkZDE3MzMyLmthc3NlcnZlci5jb20gWzg1LjEzLjEzOC4yNl0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA1N0NFRjVGQjZBCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAgOSBOb3YgMjAxNyAwNTozNTo1NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBkZDE3MzMyLmthc3NlcnZlci5jb20gKGRkMDgwMC5rYXNzZXJ2ZXIuY29tIFs4NS4xMy4xNDMuMjA0XSkKCWJ5IGRkMTczMzIua2Fzc2VydmVyLmNvbSAoUG9zdGZpeCkgd2l0aCBFU01UUFNBIGlkIDk1N0Q0MjlDNTBEMQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgIDkgTm92IDIwMTcgMDY6MzU6NTEgKzAxMDAgKENFVCkKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTEKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdApYLVNlbmRlcklQOiAxNzMuMjQ0LjQ0LjYzClVzZXItQWdlbnQ6IEFMTC1JTktMIFdlYm1haWwgMi4xMQpTdWJqZWN0OiBNYXZlbiByZXNvbHZlciBicmFuY2ggY29uc29saWRhdGlvbgpGcm9tOiAiTWFuZnJlZCBNb3NlciIgPG1hbmZyZWRAc2ltcGxpZ2lsaXR5LmNvbT4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSWQ6IDwyMDE3MTEwOTA1MzU1MS45NTdENDI5QzUwRDFAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPgpEYXRlOiBUaHUsICA5IE5vdiAyMDE3IDA2OjM1OjUxICswMTAwIChDRVQpCgpIaSBhbGwsCgpJIGhhdmUgc3RhcnRlZCBhbmQgbWFkZSBnb29kIHByb2dyZXNzIG9uIGdldHRpbmcgTWF2ZW4gcmVzb2x2ZXIgYWxsIGludG8gdGhlIG1hc3RlciBicmFuY2ggaW5zdGVhZCBvZiBoYXZpbmcgbWFzdGVyLCBkZW1vcyBhbmQgYW50LXRhc2tzIGluIHNlcGFyYXRlIGJyYW5jaGVzLgoKRGV0YWlscyBhcmUgdHJhY2tlZCBpbiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01SRVNPTFZFUi0yOAoKQWxsIG9mIGl0IGlzIG5vdyBpbiBhIG5ldyBicmFuY2ggY2FsbGVkIG1hc3Rlci1hbGwgZm9yIHlvdSB0byBzZWUuCgpJIGFtIG5vdyB3b25kZXJpbmcgd2hhdCB0aGUgbmV4dCBzdGVwcyBhcmUuIEkgYWRkZWQgd2hhdCBJIHRoaW5rIHNob3VsZCBoYXBwZW4gbmV4dCBpbiB0aGUgaXNzdWUgaW4gYSBjb21tZW50IGFuZCB3b3VsZCBhcHByZWNpYXRlIGFueSBpbnB1dCBvbiB0aGUgY3VycmVudCBzZXR1cCBhbmQgbmV4dCBzdGVwcy4gCgpBbnkgaGVscCB3b3VsZCBiZSBhcHByZWNpYXRlZC4KCm1hbmZyZWQKCgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0NTctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE5vdiAgOSAwODo0MTowNyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0NTctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMjdCQUExMDU2NQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsICA5IE5vdiAyMDE3IDA4OjQxOjA3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTQzMzQgaW52b2tlZCBieSB1aWQgNTAwKTsgOSBOb3YgMjAxNyAwODo0MTowNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTQyNTggaW52b2tlZCBieSB1aWQgNTAwKTsgOSBOb3YgMjAxNyAwODo0MTowNiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE0MjQ3IGludm9rZWQgYnkgdWlkIDk5KTsgOSBOb3YgMjAxNyAwODo0MTowNiAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMDkgTm92IDIwMTcgMDg6NDE6MDYgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNkI0RTJERkI3NzsgVGh1LCAgOSBOb3YgMjAxNyAwODo0MTowNiArMDAwMCAoVVRDKQpGcm9tOiBtaWNoYWVsLW8gPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTEzNi1tYXZlbkBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTM2LW1hdmVuQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbiBpc3N1ZSAjMTM2OiBbTU5HLTYzMDJdIGxvZ2dpbmcgdGhlIG1vZHVsZSBjb3VudApDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMTA5MDg0MTA2LjZCNEUyREZCNzdAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFRodSwgIDkgTm92IDIwMTcgMDg6NDE6MDYgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIG1pY2hhZWwtbyBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vcHVsbC8xMzYKICAKICAgIExvb2tzIGdvb2QgdG8gbWUuCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0NTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE5vdiAgOSAxMDoxNzoxMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0NTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNjkwNUExMDg0OAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsICA5IE5vdiAyMDE3IDEwOjE3OjExICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTQ3NiBpbnZva2VkIGJ5IHVpZCA1MDApOyA5IE5vdiAyMDE3IDEwOjE3OjExIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5Mzg3IGludm9rZWQgYnkgdWlkIDUwMCk7IDkgTm92IDIwMTcgMTA6MTc6MTEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5Mzc2IGludm9rZWQgYnkgdWlkIDk5KTsgOSBOb3YgMjAxNyAxMDoxNzoxMCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMDkgTm92IDIwMTcgMTA6MTc6MTAgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgQzU5NUZERkFFQjsgVGh1LCAgOSBOb3YgMjAxNyAxMDoxNzowMiArMDAwMCAoVVRDKQpGcm9tOiBzdGVwaGVuYyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTM2LW1hdmVuQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xMzYtbWF2ZW5AZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuIGlzc3VlICMxMzY6IFtNTkctNjMwMl0gbG9nZ2luZyB0aGUgbW9kdWxlIGNvdW50CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzExMDkxMDE3MDkuQzU5NUZERkFFQkBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogVGh1LCAgOSBOb3YgMjAxNyAxMDoxNzowMiArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgc3RlcGhlbmMgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL3B1bGwvMTM2CiAgCiAgICDwn5GNIAoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NDY1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBOb3YgMTIgMTE6MDc6NTkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDY1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEFDRkE0MTA5RUMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxMiBOb3YgMjAxNyAxMTowNzo1OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI4NDM2IGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIE5vdiAyMDE3IDExOjA3OjU5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyODM1MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMiBOb3YgMjAxNyAxMTowNzo1OSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI4MzM5IGludm9rZWQgYnkgdWlkIDk5KTsgMTIgTm92IDIwMTcgMTE6MDc6NTggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDEyIE5vdiAyMDE3IDExOjA3OjU4ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRjE3MjdDNzcxQgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTIgTm92IDIwMTcgMTE6MDc6NTcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4wMDIKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMDAyIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtSUF9NQVRDSEVTX1JDVkQ9LTAuMDAxLCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgTTFHdWZyVkxsTFIxIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAxMiBOb3YgMjAxNyAxMTowNzo1NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLmlvN20uY29tIChtYWlsLmlvN20uY29tIFs0NS43Ny43Ni45Ml0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBERDJBRTVGQzZDCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMiBOb3YgMjAxNyAxMTowNzo1NSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBjb3BwZXJoZWFkLmludC5hcmM3LmluZm8gKHVua25vd24gW0lQdjY6MmEwMjozOTA6NzUwMjoyOjA6MjoxOjBdKQoJYnkgbWFpbC5pbzdtLmNvbSAoUG9zdGZpeCkgd2l0aCBFU01UUFNBIGlkIDlGRDkzMTgyMjUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEyIE5vdiAyMDE3IDExOjA3OjQ4ICswMDAwIChVVEMpCkRhdGU6IFN1biwgMTIgTm92IDIwMTcgMTE6MDc6MzUgKzAwMDAKRnJvbTogTWFyayBSYXluc2ZvcmQgPG9yZy5hcGFjaGUubWF2ZW4udXNlckBpbzdtLmNvbT4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFJlOiBBbnkgRVRBIGZvciBtYXZlbi1qYXZhZG9jLXBsdWdpbiAzLjAuMD8KTWVzc2FnZS1JRDogPDIwMTcxMTEyMTEwNzM1LjQ0YzAxZmQ3QGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbz4KSW4tUmVwbHktVG86IDxvcC55OWpqOWVyN2tka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KUmVmZXJlbmNlczogPDIwMTcxMTA2MTYyODIzLjQ1NDNlYTdkQGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbz4KCTxvcC55OWpqOWVyN2tka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KT3JnYW5pemF0aW9uOiBpbzdtLmNvbQpPcGVuUEdQOiBpZD04MTY4REFFMjJCMTVEM0VEQzcyMkMyM0QwRjE1QjdEMDZGQTgwQ0I4OwogdXJsPWh0dHA6Ly9pbzdtLmNvbS9wZ3AvODE2OF9EQUUyXzJCMTVfRDNFRF9DNzIyX0MyM0RfMEYxNV9CN0QwXzZGQThfMENCOC5rZXkKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvc2lnbmVkOyBtaWNhbGc9cGdwLXNoYTUxMjsKIGJvdW5kYXJ5PSJTaWdfL1lUbzc1SS5jVjJ0c25CYTdUNHFEL3RNIjsgcHJvdG9jb2w9ImFwcGxpY2F0aW9uL3BncC1zaWduYXR1cmUiCgotLVNpZ18vWVRvNzVJLmNWMnRzbkJhN1Q0cUQvdE0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVTLUFTQ0lJCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCidFbGxvLgoKT24gMjAxNy0xMS0xMVQxNDo0MDoxNiArMDEwMAoiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4gd3JvdGU6Cgo+IEknZCBob3BlIHRvIGRvIGEgcmVsZWFzZSB0aGlzIG1vbnRoLiBOb3Qgc3VyZSBpZiBpdCdsbCBiZSBhIE0yIG9yIG5vdCwgPTIwCj4gZGVwZW5kcyBpZiBhbGwgMy4wLjAgcHJlcmVxdWlzaXRlcyBhcmUgbWV0LgoKUmlnaHQuCgo9NDZyb20gd2hhdCBJIGNhbiBzZWUsIG9ubHkgTUpBVkFET0MtNDc1IGlzIG5vdCByZWFsbHkgKmNyaXRpY2FsKiB0byB0aGUKcmVsZWFzZSBhcyBpdCdzIGp1c3QgYSBuZXcgZmVhdHVyZS4gVGhlIG90aGVyIHR3byBpc3N1ZXMsIE1KQVZBRE9DLTQ1NwphbmQgTUpBVkFET0MtNDk5LCBzZWVtIHRvIGJlIGltcG9ydGFudC4gVGhlIGZvcm1lciBoYXMgYmVlbiBmaXhlZCwgYW5kCnRoZSBsYXR0ZXIgYXBwZWFycyB0byBiZSBsZWFuaW5nIHRvd2FyZHMgYmVpbmcgcmVqZWN0ZWQuIEkgd291bGQgcmVhbGx5CmFwcHJlY2lhdGUgYW4gTTIgcmVsZWFzZSBpZiBNSkFWQURPQy00NzUgaXMgZ29pbmcgdG8gb3RoZXJ3aXNlIGRlbGF5CjMuMC4wLgoKSWYgdGhlcmUncyBhbnl0aGluZyBJIGNhbiBkbyB0byBhc3Npc3QsIEknbSBhdmFpbGFibGUuIFJpZ2h0IG5vdywKTUpBVkFET0MtNDk4IHdvdWxkIGFwcGVhciB0byBwcmV2ZW50IHRoZSBkZXBsb3ltZW50IG9mIGFueSBtb2R1bGFyCnByb2plY3QgdG8gTWF2ZW4gQ2VudHJhbDogSWYgbW9kdWxlIEEgaW4gdGhlIHByb2plY3QgZGVwZW5kcwpvbiBtb2R1bGUgQiwgdGhlbiBKYXZhRG9jIGNhbm5vdCBiZSBnZW5lcmF0ZWQuIFRoaXMgd291bGQgbmVjZXNzaXRhdGUKYWRkaW5nIGEgdGVtcG9yYXJ5IHdvcmthcm91bmQgdGhhdCBzdWJtaXRzIGFuIGVtcHR5IGphdmFkb2MgamFyIHRvCkNlbnRyYWwgKG90aGVyd2lzZSB0aGUgQ2VudHJhbCBydWxlc2V0IHJlamVjdHMgdGhlIGRlcGxveW1lbnQgZHVlIHRvCm1pc3NpbmcgSmF2YURvYykuIEkgaGF2ZSBzb21lIDMwLTQwIHByb2plY3RzIHRoYXQgYXJlIGl0Y2hpbmcgdG8gYmUKZGVwbG95ZWQgYnV0IGNhbid0IGJlIHVubGVzcyBJIGFkZCBhIHdvcmthcm91bmQgb3IgYnVpbGQgYW5kIGRlcGxveSBhCmN1c3RvbSB2ZXJzaW9uIG9mIHRoZSBwbHVnaW4gbXlzZWxmLiBJJ2Qgb2J2aW91c2x5IHByZWZlciBub3QgdG8gaGF2ZQp0byBkbyB0aGF0LgoKLS09MjAKTWFyayBSYXluc2ZvcmQgfCBodHRwOi8vd3d3LmlvN20uY29tCgoKLS1TaWdfL1lUbzc1SS5jVjJ0c25CYTdUNHFEL3RNCkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vcGdwLXNpZ25hdHVyZQpDb250ZW50LURlc2NyaXB0aW9uOiBPcGVuUEdQIGRpZ2l0YWwgc2lnbmF0dXJlCgotLS0tLUJFR0lOIFBHUCBTSUdOQVRVUkUtLS0tLQoKaVFJekJBRUJDZ0FkRmlFRWdXamE0aXNWMCszSElzSTlEeFczMEcrb0RMZ0ZBbG9JSzNjQUNna1FEeFczMEcrbwpETGl4aWcvN0JQenNVcGh3VDcyN0dIVG51N0tXekRBZ1JjUmxQU1lQTU5YbjdmcW9pb0dDNTVHQ0NRTWVJOXZTCkhjTFNYMjZLc1BKNFpNZkhRSmZIUHp5NTFWcDg4MUh6WDFPMlRrczViUHVPWnlWUzVuREVSQVUvN1lGYzRUZGYKWXpMaTlTZzhWbWZNY210L1lYcytCK0xzNGdObGVFVDVReHUvSzBYUXdlZkdHSDVZUFRXYlBLMzdrRWVPQS9qYwpQVURsMExrZ0dwcEZYb2hJQnI2VXZOdDErQ1pyKzBYWTJmemJsMWQrcElBUFRaWW9KbGxuYTlpNTZGQXVNVEdnCktWbU04eVZ4WnZsLyt0cXNYSWlvN2orYkZVb3VjRWpFNG8rS0Q1ZFVrZ0U5akIvR0I1d3BZbmlSWHJvN0hKTHkKSzR3OGhLR1NXL3VSNnY5Q3VDNGpSVnZUOHZkVlh0MFlka0hYVnZLYTZOMDcrYzFpMFRSMkk5YnlORDNhQXdEWgpXdnk1NkRSeVB4cGcwRzVXeTQ2TlBvMjV4MktOMVV2MTRaRGloZTJVMFY5eG9vSkQydjFEU3QrUGlTVXl4TWFDCndXNnQybDNXT2VDUm9jK0ZZNUZlVk54Z3RJZS9HSGZmaU5YUHhUeXc5WDlTOGZ6cVRjRkRvT1IvZTZWbC93OGcKY2oxamNDVFZGK1RZSmRuWjFjeGlRcFZpUi9rMTBnNldzR0FCTVFoMEI3VnVIb1RYZ3EvZkdFYitjdWhKQi8xZApDZDFaT041N05LWFpENTdCY1ZtUExUS0xoS1FtOS90RzI1QXk2SXBGWVNIYzhSTnY0K3ZDM3pQK1FFWi8rTlpaCjhRU0FQdElTS1JOQjNhdUwrU0p4VjdnYXVYN200amJFOFBoUWwwbkJpYnY0TVF6ZHd2ST0KPVR6VFQKLS0tLS1FTkQgUEdQIFNJR05BVFVSRS0tLS0tCgotLVNpZ18vWVRvNzVJLmNWMnRzbkJhN1Q0cUQvdE0tLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDQ3MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gTm92IDEyIDE3OjAwOjM1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQ3MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDRDlCMUYyQzAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxMiBOb3YgMjAxNyAxNzowMDozNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE1MjU5IGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIE5vdiAyMDE3IDE3OjAwOjM1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNTE3NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMiBOb3YgMjAxNyAxNzowMDozNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE1MTYzIGludm9rZWQgYnkgdWlkIDk5KTsgMTIgTm92IDIwMTcgMTc6MDA6MzUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDEyIE5vdiAyMDE3IDE3OjAwOjM1ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNzQ4ODgxODA3RDAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEyIE5vdiAyMDE3IDE3OjAwOjM0ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuMDAyClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjAwMiB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bUlBfTUFUQ0hFU19SQ1ZEPS0wLjAwMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBSLThDcVNhYVJ4QUYgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sIDEyIE5vdiAyMDE3IDE3OjAwOjMyICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwuaW83bS5jb20gKG1haWwuaW83bS5jb20gWzQ1Ljc3Ljc2LjkyXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDhFM0Q2NUZFMEUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEyIE5vdiAyMDE3IDE3OjAwOjMyICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbyAodW5rbm93biBbSVB2NjoyYTAyOjM5MDo3NTAyOjI6MDoyOjE6MF0pCglieSBtYWlsLmlvN20uY29tIChQb3N0Zml4KSB3aXRoIEVTTVRQU0EgaWQgRUY4MTUxODJGMzsKCVN1biwgMTIgTm92IDIwMTcgMTc6MDA6MjQgKzAwMDAgKFVUQykKRGF0ZTogU3VuLCAxMiBOb3YgMjAxNyAxNzowMDoxMiArMDAwMApGcm9tOiBNYXJrIFJheW5zZm9yZCA8b3JnLmFwYWNoZS5tYXZlbi51c2VyQGlvN20uY29tPgpUbzogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+CkNjOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBBbnkgRVRBIGZvciBtYXZlbi1qYXZhZG9jLXBsdWdpbiAzLjAuMD8KTWVzc2FnZS1JRDogPDIwMTcxMTEyMTcwMDEyLjMzMjMxNGE1QGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbz4KSW4tUmVwbHktVG86IDxvcC55OWxna251amtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KUmVmZXJlbmNlczogPDIwMTcxMTA2MTYyODIzLjQ1NDNlYTdkQGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbz4KCTxvcC55OWpqOWVyN2tka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KCTwyMDE3MTExMjExMDczNS40NGMwMWZkN0Bjb3BwZXJoZWFkLmludC5hcmM3LmluZm8+Cgk8b3AueTlsZ2tudWprZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+Ck9yZ2FuaXphdGlvbjogaW83bS5jb20KT3BlblBHUDogaWQ9ODE2OERBRTIyQjE1RDNFREM3MjJDMjNEMEYxNUI3RDA2RkE4MENCODsKIHVybD1odHRwOi8vaW83bS5jb20vcGdwLzgxNjhfREFFMl8yQjE1X0QzRURfQzcyMl9DMjNEXzBGMTVfQjdEMF82RkE4XzBDQjgua2V5Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L3NpZ25lZDsgbWljYWxnPXBncC1zaGE1MTI7CiBib3VuZGFyeT0iU2lnXy9OTXVEVSsyM1JtVW1HZ1J4M1lCNmxXViI7IHByb3RvY29sPSJhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlIgoKLS1TaWdfL05NdURVKzIzUm1VbUdnUngzWUI2bFdWCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VUy1BU0NJSQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPbiAyMDE3LTExLTEyVDE1OjE1OjQ5ICswMTAwCiJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPiB3cm90ZToKCj4gTUpBVkFET0MtNDc1IGlzIGFib3V0IHJlcGxhY2luZyBhIHBhcmFtZXRlciwgd2hpY2ggbWFrZXMgaXQgYXMgY3JpdGljYWwgYT0KcyA9MjAKPiBNSkFWQURPQy00NTcuCj4gV2UganVzdCBjb25zaWRlciAzLjAuMCB0byBiZSBUSEUgdmVyc2lvbiB0byBiZSBhYmxlIHRvIGRvIGEgY2xlYW51cCwgaGVuYz0KZSA9MjAKPiBNSkFWQURPQy00NzUgbXVzdCBiZSBmaXhlZCBhcyB3ZWxsLgo+PTIwCj4gVGhlIGdvb2QgbmV3cyBpczogTUpBVkFET0MtNDU3IGFuZCBNSkFWQURPQy00NzUgYXJlIGZpbmlzaGVkLiBJIGRvbid0IHNlZT0KID0yMAo+IGFueSBkZXByZWNhdGVkIHBhcmFtZXRlcnMgYW55bW9yZS4KPj0yMAo+IE1KQVZBRE9DLTQ5OSBpcyBhIHRvbyBkYW5nZXJvdXMgcHJvcG9zYWwgZm9yIG1lLiBTbyBJIGRvbid0IG1pbmQgbW92aW5nID0KPTIwCj4gdGhhdCBpc3N1ZSBmb3J3YXJkLCBpdCBpcyBub3QgY3JpdGljYWwgZm9yIDMuMC4wLCB0aGVyZSBpcyBhIHdvcmthcm91bmQgPQo9MjAKPiAob3IgcHJlZmVycmVkIHNvbHV0aW9uIGRlcGVuZGluZyBvbiB3aG8geW91IGFzaykgZm9yIHRoaXMgaXNzdWUuCj49MjAKPiBXaGljaCBtZWFucyBJIGNhbiBwcmVwYXJlIHRoZSByZWxlYXNlIHRoaXMgd2Vlay4KPiBKdXN0IG5lZWQgdG8gZW5zdXJlIGFsbCBDSSBzZXJ2ZXJzIHN0aWxsIGFjY2VwdCB0aGUgY2hhbmdlcy4KCk9LLCB0aGFua3MhCgpJIGxvb2sgZm9yd2FyZCB0byBpdC4KCi0tPTIwCk1hcmsgUmF5bnNmb3JkIHwgaHR0cDovL3d3dy5pbzdtLmNvbQoKCi0tU2lnXy9OTXVEVSsyM1JtVW1HZ1J4M1lCNmxXVgpDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3BncC1zaWduYXR1cmUKQ29udGVudC1EZXNjcmlwdGlvbjogT3BlblBHUCBkaWdpdGFsIHNpZ25hdHVyZQoKLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KCmlRSXpCQUVCQ2dBZEZpRUVnV2phNGlzVjArM0hJc0k5RHhXMzBHK29ETGdGQWxvSWZod0FDZ2tRRHhXMzBHK28KRExnWUdSQUFwTVg5cnIrWVlJQnZ2Z3ZRK0tORWhlekJyVG04aXM2RjRXNWxDNDhldU9KcDI4M015VS9vbUM2UQoyZ1pqdEZuejlod2lsQ1RIOUlJR0EwL0RHamtOQmtJdThYaGdybGV1M1RxalJLVk1JWGVsb2hLdmJ5bWFlUVNQCkU5cnFsejRWNHJRL0xVd2JXU21hano4N0NhSHpTV3ExNW52c0pCNlk2dUR5dVFzZ1R5S0p6cHBabVBRb2hCd08KV2ZLaWUzSGt1eS90SlNnRTFZY3JCVFp3K1VSUG44aFoveUo4cDg3UjA3eGF4YnIyalZ1T2hKUVYxSDI4Y29UMAoyUUZRTUYvMnJ1YjRSMzh0QUxlZ0NCNm54cG9STEVLTjduenRVN0RldVJwMWhUcEV2ZVdIOG4vT0dvL0hHY1NsCjY1d1NuY0gvdHVLUDJQbUpmdXdKcW11UlFEeEtzcXlpV2lkQTZtQUhwQWJqMHVYUlFMLzBETzNmMS9tMHNOSnMKL1EyNFQyay9yQXhIQ0FETzJPTUZaenJHZnlWaFlFSHA5T3FCanhRY290WnB4ZGFSdkxZYkkzUUxaL3dwKzF3bApjandZUXR5Mzdic1k1KzRWVkZqTTRMeFllSUUrc1NuWjVtWWQvenY0YXYwRXNydi9xTFhzZHE0N29LUktNcUlaCnhncjBaSE9HazdLdE1NeXFCa0NOOFBwYzZxQmhCSTM5ZEdaOGhoTkhlV1AvOUxrRjUraTV0VXREbVlYME04T24Kb255Wm9yKzNjWlMrYU9KSnhlbWI4Y2JEYW80RE9zcHBzdFV5ZkdGaDcweHpJc2NSa3RXS2pua3Q3RmlRT0lNZgpCNVJsNHhmaWJ1czR4OVJUQm4rVzZFR0dyN0NIaWxoNEZKeDBIc0ppdkU0dUpnU3BibWM9Cj1UL0oxCi0tLS0tRU5EIFBHUCBTSUdOQVRVUkUtLS0tLQoKLS1TaWdfL05NdURVKzIzUm1VbUdnUngzWUI2bFdWLS0KCkZyb20gZGV2LXJldHVybi0xMjQ0NzgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE5vdiAxNCAxNzoxOTo0OSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0NzgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgN0U5MTgxMEIzOQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDE0IE5vdiAyMDE3IDE3OjE5OjQ5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTM1NjggaW52b2tlZCBieSB1aWQgNTAwKTsgMTQgTm92IDIwMTcgMTc6MTk6NDkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkzNDQ2IGludm9rZWQgYnkgdWlkIDUwMCk7IDE0IE5vdiAyMDE3IDE3OjE5OjQ5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTM0MzUgaW52b2tlZCBieSB1aWQgOTkpOyAxNCBOb3YgMjAxNyAxNzoxOTo0OCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMTQgTm92IDIwMTcgMTc6MTk6NDggKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAxRkQ3QjFBMDJEMgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTQgTm92IDIwMTcgMTc6MTk6NDggKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgdlp5QjExWl9IQnlxIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVHVlLCAxNCBOb3YgMjAxNyAxNzoxOTo0NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBkZDE3MzMyLmthc3NlcnZlci5jb20gKGRkMTczMzIua2Fzc2VydmVyLmNvbSBbODUuMTMuMTM4LjI2XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDY4NDc2NUZCMkQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDE0IE5vdiAyMDE3IDE3OjE5OjQ2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGRkMTczMzIua2Fzc2VydmVyLmNvbSAoZGQwODAzLmthc3NlcnZlci5jb20gWzg1LjEzLjE0Ni4zNF0pCglieSBkZDE3MzMyLmthc3NlcnZlci5jb20gKFBvc3RmaXgpIHdpdGggRVNNVFBTQSBpZCAxRUFGNjI5QzFGOTcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDE0IE5vdiAyMDE3IDE4OjE5OjQwICswMTAwIChDRVQpCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKWC1TZW5kZXJJUDogMjE2LjIwNy40Mi4xNDAKVXNlci1BZ2VudDogQUxMLUlOS0wgV2VibWFpbCAyLjExCkluLVJlcGx5LVRvOiA8MjAxNzExMDkwNTM1NTEuOTU3RDQyOUM1MEQxQGRkMTczMzIua2Fzc2VydmVyLmNvbT4KUmVmZXJlbmNlczogPDIwMTcxMTA5MDUzNTUxLjk1N0Q0MjlDNTBEMUBkZDE3MzMyLmthc3NlcnZlci5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiByZXNvbHZlciBicmFuY2ggY29uc29saWRhdGlvbgpGcm9tOiAiTWFuZnJlZCBNb3NlciIgPG1hbmZyZWRAc2ltcGxpZ2lsaXR5LmNvbT4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSWQ6IDwyMDE3MTExNDE3MTk0MC4xRUFGNjI5QzFGOTdAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPgpEYXRlOiBUdWUsIDE0IE5vdiAyMDE3IDE4OjE5OjQwICswMTAwIChDRVQpCgpBbnkgZmVlZGJhY2sgb3Igc2hvdWxkIEkganVzdCBnbyBhaGVhZCB3aXRoIHRoZSBjbGVhbnVwPwoKTWFuZnJlZAoKTWFuZnJlZCBNb3NlciB3cm90ZSBvbiAyMDE3LTExLTA4IDIxOjM1OgoKPiBIaSBhbGwsCj4gCj4gSSBoYXZlIHN0YXJ0ZWQgYW5kIG1hZGUgZ29vZCBwcm9ncmVzcyBvbiBnZXR0aW5nIE1hdmVuIHJlc29sdmVyIGFsbCBpbnRvIHRoZQo+IG1hc3RlciBicmFuY2ggaW5zdGVhZCBvZiBoYXZpbmcgbWFzdGVyLCBkZW1vcyBhbmQgYW50LXRhc2tzIGluIHNlcGFyYXRlCj4gYnJhbmNoZXMuCj4gCj4gRGV0YWlscyBhcmUgdHJhY2tlZCBpbiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01SRVNPTFZFUi0yOAo+IAo+IEFsbCBvZiBpdCBpcyBub3cgaW4gYSBuZXcgYnJhbmNoIGNhbGxlZCBtYXN0ZXItYWxsIGZvciB5b3UgdG8gc2VlLgo+IAo+IEkgYW0gbm93IHdvbmRlcmluZyB3aGF0IHRoZSBuZXh0IHN0ZXBzIGFyZS4gSSBhZGRlZCB3aGF0IEkgdGhpbmsgc2hvdWxkIGhhcHBlbgo+IG5leHQgaW4gdGhlIGlzc3VlIGluIGEgY29tbWVudCBhbmQgd291bGQgYXBwcmVjaWF0ZSBhbnkgaW5wdXQgb24gdGhlIGN1cnJlbnQKPiBzZXR1cCBhbmQgbmV4dCBzdGVwcy4gCj4gCj4gQW55IGhlbHAgd291bGQgYmUgYXBwcmVjaWF0ZWQuCj4gCj4gbWFuZnJlZAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQ4Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgTm92IDE1IDAyOjU4OjE5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQ4Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3RkMxMDE3NEMxCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMTUgTm92IDIwMTcgMDI6NTg6MTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0MjM0MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNSBOb3YgMjAxNyAwMjo1ODoxOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDIyNzcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgTm92IDIwMTcgMDI6NTg6MTkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0MjI2NiBpbnZva2VkIGJ5IHVpZCA5OSk7IDE1IE5vdiAyMDE3IDAyOjU4OjE4IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAxNSBOb3YgMjAxNyAwMjo1ODoxOCArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBCRjJGM0RGQzc2OyBXZWQsIDE1IE5vdiAyMDE3IDAyOjU4OjE3ICswMDAwIChVVEMpCkZyb206IGhib3V0ZW15IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xMzYtbWF2ZW5AZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTEzNi1tYXZlbkBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4gaXNzdWUgIzEzNjogW01ORy02MzAyXSBsb2dnaW5nIHRoZSBtb2R1bGUgY291bnQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTExNTAyNTgxNy5CRjJGM0RGQzc2QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBXZWQsIDE1IE5vdiAyMDE3IDAyOjU4OjE3ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBoYm91dGVteSBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vcHVsbC8xMzYKICAKICAgIG1lcmdlZCBhcyBhIGJyYW5jaCBpbiBNYXZlbiBnaXQgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi90cmVlL01ORy02MzAyX21vZHVsZS1wcm9ncmVzcwogICAgYW5kIHJld29ya2VkIHRvIGF2b2lkIGFkZGl0aW9uYWwgbGluZSAiTW9kdWxlIGkvbiIgYnV0IGhhdmUgaW5zdGVhZCBpbnRlZ3JhdGVkIGF0IHRoZSBlbmQgb2YgIkJ1aWxkaW5nIiBsaW5lOgogICAgYGBgCiAgICBbSU5GT10gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBbSU5GT10gQnVpbGRpbmcgQXBhY2hlIE1hdmVuIERpc3RyaWJ1dGlvbiAzLjUuMy1TTkFQU0hPVCAgICAgICAgICAgICAgICBbMTUvMTVdCiAgICBbSU5GT10gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBgYGAKCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQ4NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgTm92IDE1IDA5OjQ1OjExIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQ4NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3QjY1MzE3RjRFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMTUgTm92IDIwMTcgMDk6NDU6MTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxODYzNiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNSBOb3YgMjAxNyAwOTo0NToxMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTg1MzkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgTm92IDIwMTcgMDk6NDU6MTEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxODUyOCBpbnZva2VkIGJ5IHVpZCA5OSk7IDE1IE5vdiAyMDE3IDA5OjQ1OjEwIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAxNSBOb3YgMjAxNyAwOTo0NToxMCArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBBRDlBQkRGRkQ3OyBXZWQsIDE1IE5vdiAyMDE3IDA5OjQ1OjEwICswMDAwIChVVEMpCkZyb206IG1pY2hhZWwtbyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTM2LW1hdmVuQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xMzYtbWF2ZW5AZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuIGlzc3VlICMxMzY6IFtNTkctNjMwMl0gbG9nZ2luZyB0aGUgbW9kdWxlIGNvdW50CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzExMTUwOTQ1MTAuQUQ5QUJERkZEN0BnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogV2VkLCAxNSBOb3YgMjAxNyAwOTo0NToxMCArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgbWljaGFlbC1vIGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9wdWxsLzEzNgogIAogICAgQGhib3V0ZW15IFRlc3RlZCB5b3VyIGJyYW5jaC4gR3JlYXQgaW1wcm92ZW1lbnQgdG8gdGhlIFBSISArMQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NDg2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBOb3YgMTUgMTc6Mzk6MTUgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDg2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEQ0Njg3MTc2NjEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAxNSBOb3YgMjAxNyAxNzozOToxNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg0Mzg1IGludm9rZWQgYnkgdWlkIDUwMCk7IDE1IE5vdiAyMDE3IDE3OjM5OjE1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NDMwNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNSBOb3YgMjAxNyAxNzozOToxNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg0Mjk2IGludm9rZWQgYnkgdWlkIDk5KTsgMTUgTm92IDIwMTcgMTc6Mzk6MTUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDE1IE5vdiAyMDE3IDE3OjM5OjE1ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNzZCMTBDNDMxOAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTUgTm92IDIwMTcgMTc6Mzk6MTQgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjgKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xXQoJYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB3cG5kSEpVbmM5Q1kgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsIDE1IE5vdiAyMDE3IDE3OjM5OjEzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGRkMTczMzIua2Fzc2VydmVyLmNvbSAoZGQxNzMzMi5rYXNzZXJ2ZXIuY29tIFs4NS4xMy4xMzguMjZdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgOEJBMDA2MEQzMwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTUgTm92IDIwMTcgMTc6Mzk6MTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZGQxNzMzMi5rYXNzZXJ2ZXIuY29tIChkZDA4MDIua2Fzc2VydmVyLmNvbSBbODUuMTMuMTQzLjFdKQoJYnkgZGQxNzMzMi5rYXNzZXJ2ZXIuY29tIChQb3N0Zml4KSB3aXRoIEVTTVRQU0EgaWQgM0ZEMEEyOUMwNEE2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxNSBOb3YgMjAxNyAxODozOTowNiArMDEwMCAoQ0VUKQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0ClgtU2VuZGVySVA6IDk2LjU0LjIzNy4xClVzZXItQWdlbnQ6IEFMTC1JTktMIFdlYm1haWwgMi4xMQpJbi1SZXBseS1UbzogPDE2NjcxOTUudDdIZzJPTTliZUBnaWdhPgpSZWZlcmVuY2VzOiA8MjAxNzExMDkwNTM1NTEuOTU3RDQyOUM1MEQxQGRkMTczMzIua2Fzc2VydmVyLmNvbT4gPDIwMTcxMTE0MTcxOTQwLjFFQUY2MjlDMUY5N0BkZDE3MzMyLmthc3NlcnZlci5jb20+PDE2NjcxOTUudDdIZzJPTTliZUBnaWdhPgpTdWJqZWN0OiBSZTogTWF2ZW4gcmVzb2x2ZXIgYnJhbmNoIGNvbnNvbGlkYXRpb24KRnJvbTogIk1hbmZyZWQgTW9zZXIiIDxtYW5mcmVkQHNpbXBsaWdpbGl0eS5jb20+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlkOiA8MjAxNzExMTUxNzM5MDYuM0ZEMEEyOUMwNEE2QGRkMTczMzIua2Fzc2VydmVyLmNvbT4KRGF0ZTogV2VkLCAxNSBOb3YgMjAxNyAxODozOTowNiArMDEwMCAoQ0VUKQoKU29ycnkgaGVydmUuIEZvciBzb21lIHJlYXNvbiBJIHRvdGFsbHkgbWlzc2VkIHRob3NlLiBJIGNvbW1lbnRlZCBvbiB0aGUgaXNzdWVzLiAKCkluIHN1bW1hcnkgSSB3b3VsZCBsaWtlIHRvIGdldCB0aGUgYW50LXRhc2tzIG1lcmdlZCBhcyB3ZWxsIHNpbmNlIHRoYXQgbWFrZXMgYSBsb3QgbW9yZSBzZW5zZSB0byBtZSB0aGFuIGtlZXBpbmcgaXQgc2VwYXJhdGUuIAoKTWFuZnJlZAoKSGVydukgQk9VVEVNWSB3cm90ZSBvbiAyMDE3LTExLTE0IDE1OjUwOgoKPiBJIGFuc3dlcmVkIG9uIHRoZSBtYWlsaW5nIGxpc3QgYW5kIG9uIHRoZSAyIEppcmEgaXNzdWVzCj4gSW4gc3VtbWFyeSwgKzEgdG8gbWVyZ2UgZGVtb3MsIC0xIHRvIG1lcmdlIGFudC10YXNrcwo+IAo+IFJlZ2FyZHMsCj4gCj4gSGVydukKPiAKPiBMZSBtYXJkaSAxNCBub3ZlbWJyZSAyMDE3LCAxODoxOTo0MCBDRVQgTWFuZnJlZCBNb3NlciBhIOljcml0IDoKPj4gQW55IGZlZWRiYWNrIG9yIHNob3VsZCBJIGp1c3QgZ28gYWhlYWQgd2l0aCB0aGUgY2xlYW51cD8KPj4gCj4+IE1hbmZyZWQKPj4gCj4+IE1hbmZyZWQgTW9zZXIgd3JvdGUgb24gMjAxNy0xMS0wOCAyMTozNToKPj4gPiBIaSBhbGwsCj4+ID4gCj4+ID4gSSBoYXZlIHN0YXJ0ZWQgYW5kIG1hZGUgZ29vZCBwcm9ncmVzcyBvbiBnZXR0aW5nIE1hdmVuIHJlc29sdmVyIGFsbCBpbnRvCj4+ID4gdGhlIG1hc3RlciBicmFuY2ggaW5zdGVhZCBvZiBoYXZpbmcgbWFzdGVyLCBkZW1vcyBhbmQgYW50LXRhc2tzIGluCj4+ID4gc2VwYXJhdGUgYnJhbmNoZXMuCj4+ID4gCj4+ID4gRGV0YWlscyBhcmUgdHJhY2tlZCBpbiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01SRVNPTFZFUi0yOAo+PiA+IAo+PiA+IEFsbCBvZiBpdCBpcyBub3cgaW4gYSBuZXcgYnJhbmNoIGNhbGxlZCBtYXN0ZXItYWxsIGZvciB5b3UgdG8gc2VlLgo+PiA+IAo+PiA+IEkgYW0gbm93IHdvbmRlcmluZyB3aGF0IHRoZSBuZXh0IHN0ZXBzIGFyZS4gSSBhZGRlZCB3aGF0IEkgdGhpbmsgc2hvdWxkCj4+ID4gaGFwcGVuIG5leHQgaW4gdGhlIGlzc3VlIGluIGEgY29tbWVudCBhbmQgd291bGQgYXBwcmVjaWF0ZSBhbnkgaW5wdXQgb24KPj4gPiB0aGUgY3VycmVudCBzZXR1cCBhbmQgbmV4dCBzdGVwcy4KPj4gPiAKPj4gPiBBbnkgaGVscCB3b3VsZCBiZSBhcHByZWNpYXRlZC4KPj4gPiAKPj4gPiBtYW5mcmVkCj4+IAo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+IAo+IAo+IAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+IAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQ5Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgTm92IDE2IDE3OjEzOjI3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQ5Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBEMUU1RDEwNUZBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMTYgTm92IDIwMTcgMTc6MTM6MjcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3NTc3IGludm9rZWQgYnkgdWlkIDUwMCk7IDE2IE5vdiAyMDE3IDE3OjEzOjI3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NDg0IGludm9rZWQgYnkgdWlkIDUwMCk7IDE2IE5vdiAyMDE3IDE3OjEzOjI3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzQ3MSBpbnZva2VkIGJ5IHVpZCA5OSk7IDE2IE5vdiAyMDE3IDE3OjEzOjI3IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAxNiBOb3YgMjAxNyAxNzoxMzoyNyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDQ0OUMxMTgwODUxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAxNiBOb3YgMjAxNyAxNzoxMzoyNiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDEuOApYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuOCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTFdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBRQUlrYkxfTVdrR2UgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsIDE2IE5vdiAyMDE3IDE3OjEzOjI0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGRkMTczMzIua2Fzc2VydmVyLmNvbSAoZGQxNzMzMi5rYXNzZXJ2ZXIuY29tIFs4NS4xMy4xMzguMjZdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRTYxQzE1RkQxQgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMTYgTm92IDIwMTcgMTc6MTM6MjMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZGQxNzMzMi5rYXNzZXJ2ZXIuY29tIChkZDA4MDMua2Fzc2VydmVyLmNvbSBbODUuMTMuMTQ2LjM0XSkKCWJ5IGRkMTczMzIua2Fzc2VydmVyLmNvbSAoUG9zdGZpeCkgd2l0aCBFU01UUFNBIGlkIDM2NjM2MjlDMDA4MQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMTYgTm92IDIwMTcgMTg6MTM6MTUgKzAxMDAgKENFVCkKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTEKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdApYLVNlbmRlcklQOiAyMTYuMjA3LjQyLjE0MApVc2VyLUFnZW50OiBBTEwtSU5LTCBXZWJtYWlsIDIuMTEKSW4tUmVwbHktVG86IDwxNjQwMzU3LjVYV21ZT05iRWJAZ2lnYT4KUmVmZXJlbmNlczogPDIwMTcxMTA5MDUzNTUxLjk1N0Q0MjlDNTBEMUBkZDE3MzMyLmthc3NlcnZlci5jb20+IDwxMTAzNDg5MC5jWVhKcXBncHFlQGdpZ2E+IDxDQStuUG5Nd2VqaGFrdUROVHVWMEwxRHc0bUFTbWhMcj1TZnFnN3ZCSjRqWE1CdnZ6PUFAbWFpbC5nbWFpbC5jb20+PDE2NDAzNTcuNVhXbVlPTmJFYkBnaWdhPgpTdWJqZWN0OiBSZTogTWF2ZW4gcmVzb2x2ZXIgYnJhbmNoIGNvbnNvbGlkYXRpb24KRnJvbTogIk1hbmZyZWQgTW9zZXIiIDxtYW5mcmVkQHNpbXBsaWdpbGl0eS5jb20+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlkOiA8MjAxNzExMTYxNzEzMTUuMzY2MzYyOUMwMDgxQGRkMTczMzIua2Fzc2VydmVyLmNvbT4KRGF0ZTogVGh1LCAxNiBOb3YgMjAxNyAxODoxMzoxNSArMDEwMCAoQ0VUKQoKVGhhbmtzIGZvciB0aGUgZXhwbGFuYXRpb24gYW5kIGRldGFpbHMgSGVydmUuIFNlZW1zIHRvIGJlIHRoYXQgdG8gZG8gdGhpcyBjbGVhbmx5IHdlIGhhdmUgdG8gYnJlYWsgdGhlIGNpcmNsZS4gRnJvbSBteSBsaW1pdGVkIGtub3dsZWRnZSB0aGVyZSBhcmUgdHdvIHdheXMgdG8gZG8gdGhhdC4KCjEuIEFzIHN0ZXBoZW4gc3VnZ2VzdGVkLi4gZ2V0IHRoZSByZXNvbHZlciBpbnRvIG1hdmVuIGNvcmUgdHJlZS4gVGhhdCBtYWtlcyBjb3JlIGJpZ2dlciBhZ2FpbiBhbmQgdGllcyB0aGUgdHdvIHByb2plY3RzIGludG8gb25lIHJlbGVhc2UgY3ljbGUuIEZlYXNpYmxlIGJ1dCBJIGFtIG5vdCBhIGZhbi4KCjIuIEkgYW0gbm90IHN1cmUgaWYgcG9zc2libGUgYnV0IC4uIGNvdWxkIHdlIGdldCB0aGUgbWF2ZW4gcmVzb2x2ZXIgcHJvdmlkZXIgb3V0IG9mIG1hdmVuIGNvcmUgYW5kIGludG8gdGhlIHJlc29sdmVyIHByb2plY3QgYW5kIGhhdmUgaXQgYWxsIHRvZ2V0aGVyIGluIHRoZXJlPwoKSW4gZWl0aGVyIGNhc2UgLi4gYm90aCBvZiB0aG9zZSBzZWVtIHJhdGhlciBsYXJnZSB0YXNrcyBzbyBJIHdpbGwgZGVmaW5pdGVseSBnbyBhaGVhZCB3aXRoIGRlbW8gYnJhbmNoIG1lcmdlIGZpcnN0LiBJIGp1c3QgaGF2ZSB0byByZWRvIHRoZSB3b3JrIEkgZGlkIHdpdGhvdXQgdGhlIGFudCB0YXNrcyBpbiB0aGUgdHJlZS4gU3RheSB0dW5lZCBvbiB0aGF0Li4gCgpNYW5mcmVkCgpIZXJ26SBCT1VURU1ZIHdyb3RlIG9uIDIwMTctMTEtMTYgMDU6NDk6Cgo+IGZlYXNpYmxlLCBidXQgSSByZWFsbHkgZG9uJ3QgbGlrZSBpdDogc2VwYXJhdGlvbiBpcyBnb29kLgo+IAo+IHNlcmlvdXNseSwganVzdCBtZXJnZSBkZW1vcyBhbmQgbGV0IGFudC10YXNrcyBzZXBhcmF0ZSwgYW5kIHdlIGhhdmUgYSBwcmV0dHkgCj4gZ29vZCBjb21wcm9taXNlIG9uIGV2ZXJ5IGFzcGVjdAo+IChvciBldmVuIGRyb3AgYW50IHRhc2tzIGlmIHJlYWxseSB0aGlzIGlzIGNhdXNpbmcgdXMgdG9vIG11Y2ggaGVhZGFjaGUuLi4pCj4gCj4gUmVnYXJkcywKPiAKPiBIZXJ26Qo+IAo+IExlIGpldWRpIDE2IG5vdmVtYnJlIDIwMTcsIDEwOjAzOjA3IENFVCBTdGVwaGVuIENvbm5vbGx5IGEg6WNyaXQgOgo+PiBPbiBUaHUgMTYgTm92IDIwMTcgYXQgMDc6NTEsIEhlcnbpIEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3JvdGU6Cj4+ID4gSSBqdXN0IHB1c2hlZCBhbiB1cGRhdGUgb2YgZGVwZW5kZW5jaWVzIGltYWdlIHRoYXQgc2hvd3MgdGhlIGV4dGVybmFsCj4+ID4gbWF2ZW4tCj4+ID4gcmVzb2x2ZXItcHJvdmlkZXIgKGluIHllbGxvdykgaW5zaWRlIHRoZSByZWFjdG9yIGRlcGVuZGVuY3kgZ3JhcGggKGluCj4+ID4gYmx1ZSkKPj4gPiAKPj4gPiBUaGF0IHNob3dzIHRoZSBjaGlja2VuIGFuZCBlZ2cgaXNzdWUgb24gcmVsZWFzaW5nIHdlJ2xsIGhhdmUgb24gQVBJCj4+ID4gYnJlYWtpbmcKPj4gPiBjaGFuZ2UuIFBlb3BsZSBhbHdheXMgYnVpbGRpbmcgZnJvbSBzb3VyY2UgKGxpa2UgRGViaWFuKSB3aWxsIGhhdmUgdGhlCj4+ID4gaXNzdWUKPj4gPiBhbHNvLgo+PiA+IAo+PiA+IEZvciBkZW1vcywgd2hpY2ggYXJlIG5vdCByZWFsbHkgcHVibGlzaGVkIGR1cmluZyB0aGUgcmVsZWFzZSAoanVzdCBhcwo+PiA+IGRvY3VtZW50YXRpb24pLCBkaXNhYmxpbmcgdGhlIG1vZHVsZSBpbiB0aGUgYnVpbGQgd2hlbiBuZWNlc3NhcnkgaXMKPj4gPiBzdWZmaWNpZW50LAo+PiA+IHdvbid0IGNoYW5nZSBtYW55IHRoaW5ncy4gRm9yIGFudCB0YXNrcywgZGlzYWJsaW5nIHRoZSBtb2R1bGUgd2lsbCBub3QKPj4gPiBwdWJsaXNoCj4+ID4gdGhlIGFydGlmYWN0OiB0aGlzIHdpbGwgaGF2ZSBhIHZpc2libGUgaW1wYWN0Lgo+PiAKPj4gU2hvdWxkIHdlIGp1c3QgYml0ZSB0aGUgYnVsbGV0IGFuZCBicmluZyByZXNvbHZlciBpbi10cmVlIGFzIG1vZHVsZXMgaW4KPj4gbWF2ZW4gY29yZS4uLiBsZWF2aW5nIGRlbW9zIGFuZCBhbnQgdGFza3MgaGVyZT8KPj4gCj4+ID4gUmVnYXJkcywKPj4gPiAKPj4gPiBIZXJ26Qo+PiA+IAo+PiA+IExlIG1lcmNyZWRpIDE1IG5vdmVtYnJlIDIwMTcsIDIzOjA1OjE0IENFVCBIZXJ26SBCT1VURU1ZIGEg6WNyaXQgOgo+PiA+ID4gaXQgc2VlbXMgSSBoYXZlIG5vdCBiZWVuIGNsZWFyOiBJJ2xsIHRyeSB0byBleHBsYWluIGJldHRlcgo+PiA+ID4gCj4+ID4gPiAxLiBtYXZlbi1yZXNvbHZlci1hbnQtdGFza3MgZGVwZW5kcyBvbiBtYXZlbi1yZXNvbHZlci1wcm92aWRlciAoZnJvbQo+PiA+IAo+PiA+IE1hdmVuCj4+ID4gCj4+ID4gPiBjb3JlKQo+PiA+ID4gMi4gbWF2ZW4tcmVzb2x2ZXItcHJvdmlkZXIgKHRoZW4gTWF2ZW4gY29yZSkgZGVwZW5kcyBvbiBtYXZlbi1yZXNvbHZlcgo+PiA+ID4gCj4+ID4gPiBpZiB3ZSBwdXQgbWF2ZW4tcmVzb2x2ZXItYW50LXRhc2tzIGluIHRoZSBzYW1lIHJlYWN0b3IgdGhhbgo+PiA+IAo+PiA+IG1hdmVuLXJlc29sdmVyLAo+PiA+IAo+PiA+ID4gd2UgY2FuJ3QgcmVsZWFzZSBhbnkgbWF2ZW4tcmVzb2x2ZXIgQVBJIGNoYW5nZSB0aGF0IGJyZWFrcwo+PiA+IAo+PiA+IG1hdmVuLXJlc29sdmVyLQo+PiA+IAo+PiA+ID4gcHJvdmlkZXIKPj4gPiA+IAo+PiA+ID4gZXhhbXBsZTogaWYgd2UgbW92ZSBtYXZlbi1yZXNvbHZlciBjb2RlIHRvIG9yZy5hcGFjaGUubWF2ZW4gamF2YSBwYWNrYWdlCj4+ID4gCj4+ID4gaW4KPj4gPiAKPj4gPiA+IG1hdmVuLXJlc29sdmVyIDIuMC4wLVNOQVBTSE9ULCB3ZSBuZWVkIG1hdmVuLXJlc29sdmVyLXByb3ZpZGVyCj4+ID4gPiA0LjAuMC1TTkFQU0hPVCB0aGF0IHVzZXMgbWF2ZW4tcmVzb2x2ZXIgMi4wLjAtU05BUFNIT1Qgd2l0aCB0aGlzIG5ldwo+PiA+ID4gamF2YQo+PiA+ID4gcGFja2FnZS4gVGhlbiB0cnkgdG8gcmVsZWFzZSBhbnl0aGluZzogeW91IGNhbid0LCB1bmxlc3MgeW91IGRvbid0IHRyeQo+PiA+ID4gdG8KPj4gPiA+IHJlbGVhc2UgbWF2ZW4tIHJlc29sdmVyLWFudC10YXNrcwo+PiA+ID4gCj4+ID4gPiAodGhlIGNvbnNlcXVlbmNlIG9uIHZlcnNpb24gY29uc2lzdGVuY3kgaXMgYW5vdGhlciB3YXkgdG8gZGVzY3JpYmUgdGhlCj4+ID4gPiBpc3N1ZSwgYnV0IHRoYXQgaXMgbW9yZSBzdWJ0bGUsIHRoZW4gSSBjaG9zZSB0byBkZXNjcmliZSB0aGUgbW9zdAo+PiA+ID4gdmlzaWJsZQo+PiA+ID4gaXNzdWUsIHdpdGggQVBJIGJyZWFraW5nIGNoYW5nZSkKPj4gPiA+IAo+PiA+ID4gSU1ITywgYW5vdGhlciBjb25zZXF1ZW5jZSBjb3VsZCBiZTogbWF2ZW4tcmVzb2x2ZXItYW50LXRhc2tzIHdvdWxkCj4+ID4gCj4+ID4gcGVyaGFwcwo+PiA+IAo+PiA+ID4gYmV0dGVyIGJlIHZlcnNpb25uZWQgbGlrZSBtYXZlbi1yZXNvbHZlci1wcm92aWRlcgo+PiA+ID4gCj4+ID4gPiAKPj4gPiA+IE1lcmdpbmcgcmVzb2x2ZXItZGVtb3MgaXMgcmVhbGx5IHRoZSBncmVhdCBiaWcgaWRlYTogd2l0aCB0aGF0IG1lcmdlLAo+PiA+ID4gbW9kaWZ5aW5nIG1hdmVuLXJyZXNvbHZlciBjYW4gaW1tZWRpYXRlbHkgYmUgdGVzdGVkIHdpdGggZGVtb3M6IHRoYXQnbGwKPj4gPiAKPj4gPiBiZQo+PiA+IAo+PiA+ID4gc28gbXVjaCBlYXNpZXIgdG8gbWFrZSBjaGFuZ2VzIHRvIG1hdmVuLXJlc29sdmVyIGNvZGUhCj4+ID4gPiAKPj4gPiA+IFJlZ2FyZHMsCj4+ID4gPiAKPj4gPiA+IEhlcnbpCj4+ID4gPiAKPj4gPiA+IExlIG1lcmNyZWRpIDE1IG5vdmVtYnJlIDIwMTcsIDA5OjAyOjEyIENFVCBNaWNoYWVsIE9zaXBvdiBhIOljcml0IDoKPj4gPiA+ID4gV2h5IC0xIG9uIHRoZSBBbnQgdGFza3M/Cj4+ID4gPiA+IAo+PiA+ID4gPiBBbSAyMDE3LTExLTE1IHVtIDAwOjUwIHNjaHJpZWIgSGVydukgQk9VVEVNWToKPj4gPiA+ID4gPiBJIGFuc3dlcmVkIG9uIHRoZSBtYWlsaW5nIGxpc3QgYW5kIG9uIHRoZSAyIEppcmEgaXNzdWVzCj4+ID4gPiA+ID4gSW4gc3VtbWFyeSwgKzEgdG8gbWVyZ2UgZGVtb3MsIC0xIHRvIG1lcmdlIGFudC10YXNrcwo+PiA+ID4gPiA+IAo+PiA+ID4gPiA+IFJlZ2FyZHMsCj4+ID4gPiA+ID4gCj4+ID4gPiA+ID4gSGVydukKPj4gPiA+ID4gPiAKPj4gPiA+ID4gPiBMZSBtYXJkaSAxNCBub3ZlbWJyZSAyMDE3LCAxODoxOTo0MCBDRVQgTWFuZnJlZCBNb3NlciBhIOljcml0IDoKPj4gPiA+ID4gPj4gQW55IGZlZWRiYWNrIG9yIHNob3VsZCBJIGp1c3QgZ28gYWhlYWQgd2l0aCB0aGUgY2xlYW51cD8KPj4gPiA+ID4gPj4gCj4+ID4gPiA+ID4+IE1hbmZyZWQKPj4gPiA+ID4gPj4gCj4+ID4gPiA+ID4+IE1hbmZyZWQgTW9zZXIgd3JvdGUgb24gMjAxNy0xMS0wOCAyMTozNToKPj4gPiA+ID4gPj4+IEhpIGFsbCwKPj4gPiA+ID4gPj4+IAo+PiA+ID4gPiA+Pj4gSSBoYXZlIHN0YXJ0ZWQgYW5kIG1hZGUgZ29vZCBwcm9ncmVzcyBvbiBnZXR0aW5nIE1hdmVuIHJlc29sdmVyCj4+ID4gPiA+ID4+PiBhbGwKPj4gPiA+ID4gPj4+IGludG8KPj4gPiA+ID4gPj4+IHRoZSBtYXN0ZXIgYnJhbmNoIGluc3RlYWQgb2YgaGF2aW5nIG1hc3RlciwgZGVtb3MgYW5kIGFudC10YXNrcyBpbgo+PiA+ID4gPiA+Pj4gc2VwYXJhdGUgYnJhbmNoZXMuCj4+ID4gPiA+ID4+PiAKPj4gPiA+ID4gPj4+IERldGFpbHMgYXJlIHRyYWNrZWQgaW4KPj4gPiA+ID4gPj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTVJFU09MVkVSLTI4Cj4+ID4gPiA+ID4+PiAKPj4gPiA+ID4gPj4+IEFsbCBvZiBpdCBpcyBub3cgaW4gYSBuZXcgYnJhbmNoIGNhbGxlZCBtYXN0ZXItYWxsIGZvciB5b3UgdG8gc2VlLgo+PiA+ID4gPiA+Pj4gCj4+ID4gPiA+ID4+PiBJIGFtIG5vdyB3b25kZXJpbmcgd2hhdCB0aGUgbmV4dCBzdGVwcyBhcmUuIEkgYWRkZWQgd2hhdCBJIHRoaW5rCj4+ID4gPiA+ID4+PiBzaG91bGQKPj4gPiA+ID4gPj4+IGhhcHBlbiBuZXh0IGluIHRoZSBpc3N1ZSBpbiBhIGNvbW1lbnQgYW5kIHdvdWxkIGFwcHJlY2lhdGUgYW55Cj4+ID4gCj4+ID4gaW5wdXQKPj4gPiAKPj4gPiA+ID4gPj4+IG9uCj4+ID4gPiA+ID4+PiB0aGUgY3VycmVudCBzZXR1cCBhbmQgbmV4dCBzdGVwcy4KPj4gPiA+ID4gPj4+IAo+PiA+ID4gPiA+Pj4gQW55IGhlbHAgd291bGQgYmUgYXBwcmVjaWF0ZWQuCj4+ID4gPiA+ID4+PiAKPj4gPiA+ID4gPj4+IG1hbmZyZWQKPj4gPiAKPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gPiAKPj4gPiA+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+ID4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4gPiA+IAo+PiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ID4gPiA+ID4gLQo+PiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4gCj4+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4gCj4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4gCj4+ID4gLS0KPj4gCj4+IFNlbnQgZnJvbSBteSBwaG9uZQo+IAo+IAo+IAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+IAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDUxMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgTm92IDE3IDE2OjQwOjI2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDUxMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFOENGNzEwQkMwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMTcgTm92IDIwMTcgMTY6NDA6MjYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5MTA0MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNyBOb3YgMjAxNyAxNjo0MDoyNSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTA5NzIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTcgTm92IDIwMTcgMTY6NDA6MjUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MDQzOCBpbnZva2VkIGJ5IHVpZCA5OSk7IDE3IE5vdiAyMDE3IDE2OjQwOjI1IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAxNyBOb3YgMjAxNyAxNjo0MDoyNSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDRGRTJFQzE5M0YKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDE3IE5vdiAyMDE3IDE2OjQwOjI0ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS44ClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MS44IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MV0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgR1hYbVRudlNETHVpIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJRnJpLCAxNyBOb3YgMjAxNyAxNjo0MDoyMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBkZDE3MzMyLmthc3NlcnZlci5jb20gKGRkMTczMzIua2Fzc2VydmVyLmNvbSBbODUuMTMuMTM4LjI2XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDg3OTBGNUY1NjgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDE3IE5vdiAyMDE3IDE2OjQwOjIyICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGRkMTczMzIua2Fzc2VydmVyLmNvbSAoZGQwODAyLmthc3NlcnZlci5jb20gWzg1LjEzLjE0My4xXSkKCWJ5IGRkMTczMzIua2Fzc2VydmVyLmNvbSAoUG9zdGZpeCkgd2l0aCBFU01UUFNBIGlkIDMyQTMyMjlDNjNCQwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTcgTm92IDIwMTcgMTc6NDA6MjEgKzAxMDAgKENFVCkKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTEKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdApYLVNlbmRlcklQOiA5Ni41NC4yMzcuMQpVc2VyLUFnZW50OiBBTEwtSU5LTCBXZWJtYWlsIDIuMTEKSW4tUmVwbHktVG86IDxvcC55OXVoY2JtaWtka2hyckBkZXNrdG9wLTJraHNrNDQ+ClJlZmVyZW5jZXM6IDwyMDE3MTEwOTA1MzU1MS45NTdENDI5QzUwRDFAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPiA8MTEwMzQ4OTAuY1lYSnFwZ3BxZUBnaWdhPiA8Q0ErblBuTXdlamhha3VETlR1VjBMMUR3NG1BU21oTHI9U2ZxZzd2Qko0alhNQnZ2ej1BQG1haWwuZ21haWwuY29tPiA8MTY0MDM1Ny41WFdtWU9OYkViQGdpZ2E+IDwyMDE3MTExNjE3MTMxNS4zNjYzNjI5QzAwODFAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPjxvcC55OXVoY2JtaWtka2hyckBkZXNrdG9wLTJraHNrNDQ+ClN1YmplY3Q6IFJlOiBNYXZlbiByZXNvbHZlciBicmFuY2ggY29uc29saWRhdGlvbgpGcm9tOiAiTWFuZnJlZCBNb3NlciIgPG1hbmZyZWRAc2ltcGxpZ2lsaXR5LmNvbT4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSWQ6IDwyMDE3MTExNzE2NDAyMS4zMkEzMjI5QzYzQkNAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPgpEYXRlOiBGcmksIDE3IE5vdiAyMDE3IDE3OjQwOjIxICswMTAwIChDRVQpCgpIYWhhaCAuLi4gd2hhdCBhIHBhaW4uIFNpbmNlIHNvIGF0IHRoaXMgc3RhZ2UgSSB0aGluayBJIHdpbGwgbW92ZSB0aGUgZGVtb3MgaW50byB0aGUgbWFzdGVyIGFuZCBsZWF2ZSB0aGUgYW50IHRhc2tzIGFzIHRoZXkgc3RhbmQgYW5kIApjbG9zZSB0aGUgcmVsZXZhbnQgdGlja2V0cyB3aXRoIHJlbWFya3MgdGhhdCBkZXRhaWxzIHRoaXMgc2l0dWF0aW9uLgoKTWFuZnJlZAoKUm9iZXJ0IFNjaG9sdGUgd3JvdGUgb24gMjAxNy0xMS0xNyAwMzoxMDoKCj4gIldlIGNhbiBzb2x2ZSBhbnkgcHJvYmxlbSBieSBpbnRyb2R1Y2luZyBhbiBleHRyYSBsZXZlbCBvZiBpbmRpcmVjdGlvbi4iICAKPiBbMV0KPiAKPiBMb29raW5nIGF0IHRoaXMgbmV3IGltYWdlWzFdIGl0IGlzIHdlaXJkIHRvIG1lIHRoYXQgYW50LXRhc2tzIGhhcyBhIGRpcmVjdCAgCj4gZGVwZW5kZW5jeSBvbiBtYXZlbi1yZXNvbHZlci1wcm92aWRlci4gSSB3b3VsZCBoYXZlIGV4cGVjdGVkIHNvbWUgcHJvdmlkZXIgIAo+IGFic3RyYWN0aW9uIHdoZXJlIHlvdSBjYW4gY2hvb3NlIHRvIHVzZSB0aGUgbWF2ZW4tcmVzb2x2ZXItcHJvdmlkZXIuCj4gCj4gTWVyZ2luZyBpdCBpbnRvIG9uZSBwcm9qZWN0IGlzIGFuIGludGVyZXN0aW5nIG9wdGlvbiwgYnV0IEkgdGhpbmsgdGhlICAKPiBtYXZlbi1hcnRpZmFjdC1yZXNvbHZlciBpcyBpc29sYXRlZCBlbm91Z2ggdG8gZGVzZXJ2ZSBpdHMgb3duIHByb2plY3QuCj4gCj4gdGhhbmtzLAo+IFJvYmVydAo+IAo+IFsxXSAgCj4gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRnVuZGFtZW50YWxfdGhlb3JlbV9vZl9zb2Z0d2FyZV9lbmdpbmVlcmluZwo+IFsyXSAgCj4gaHR0cHM6Ly9naXQxLXVzLXdlc3QuYXBhY2hlLm9yZy9yZXBvcy9hc2Y/cD1tYXZlbi1yZXNvbHZlci5naXQ7YT1ibG9iX3BsYWluO2Y9c3JjL3NpdGUvcmVzb3VyY2VzL2ltYWdlcy9tYXZlbi1yZXNvbHZlci1kZXBzLnBuZztoYj1mNTQzOWZkZQo+IAo+IE9uIFRodSwgMTYgTm92IDIwMTcgMTg6MTM6MTUgKzAxMDAsIE1hbmZyZWQgTW9zZXIgIAo+IDxtYW5mcmVkQHNpbXBsaWdpbGl0eS5jb20+IHdyb3RlOgo+IAo+PiBUaGFua3MgZm9yIHRoZSBleHBsYW5hdGlvbiBhbmQgZGV0YWlscyBIZXJ2ZS4gU2VlbXMgdG8gYmUgdGhhdCB0byBkbyAgCj4+IHRoaXMgY2xlYW5seSB3ZSBoYXZlIHRvIGJyZWFrIHRoZSBjaXJjbGUuIEZyb20gbXkgbGltaXRlZCBrbm93bGVkZ2UgIAo+PiB0aGVyZSBhcmUgdHdvIHdheXMgdG8gZG8gdGhhdC4KPj4KPj4gMS4gQXMgc3RlcGhlbiBzdWdnZXN0ZWQuLiBnZXQgdGhlIHJlc29sdmVyIGludG8gbWF2ZW4gY29yZSB0cmVlLiBUaGF0ICAKPj4gbWFrZXMgY29yZSBiaWdnZXIgYWdhaW4gYW5kIHRpZXMgdGhlIHR3byBwcm9qZWN0cyBpbnRvIG9uZSByZWxlYXNlICAKPj4gY3ljbGUuIEZlYXNpYmxlIGJ1dCBJIGFtIG5vdCBhIGZhbi4KPj4KPj4gMi4gSSBhbSBub3Qgc3VyZSBpZiBwb3NzaWJsZSBidXQgLi4gY291bGQgd2UgZ2V0IHRoZSBtYXZlbiByZXNvbHZlciAgCj4+IHByb3ZpZGVyIG91dCBvZiBtYXZlbiBjb3JlIGFuZCBpbnRvIHRoZSByZXNvbHZlciBwcm9qZWN0IGFuZCBoYXZlIGl0IGFsbCAgCj4+IHRvZ2V0aGVyIGluIHRoZXJlPwo+Pgo+PiBJbiBlaXRoZXIgY2FzZSAuLiBib3RoIG9mIHRob3NlIHNlZW0gcmF0aGVyIGxhcmdlIHRhc2tzIHNvIEkgd2lsbCAgCj4+IGRlZmluaXRlbHkgZ28gYWhlYWQgd2l0aCBkZW1vIGJyYW5jaCBtZXJnZSBmaXJzdC4gSSBqdXN0IGhhdmUgdG8gcmVkbyAgCj4+IHRoZSB3b3JrIEkgZGlkIHdpdGhvdXQgdGhlIGFudCB0YXNrcyBpbiB0aGUgdHJlZS4gU3RheSB0dW5lZCBvbiB0aGF0Li4KPj4KPj4gTWFuZnJlZAo+Pgo+PiBIZXJ26SBCT1VURU1ZIHdyb3RlIG9uIDIwMTctMTEtMTYgMDU6NDk6Cj4+Cj4+PiBmZWFzaWJsZSwgYnV0IEkgcmVhbGx5IGRvbid0IGxpa2UgaXQ6IHNlcGFyYXRpb24gaXMgZ29vZC4KPj4+Cj4+PiBzZXJpb3VzbHksIGp1c3QgbWVyZ2UgZGVtb3MgYW5kIGxldCBhbnQtdGFza3Mgc2VwYXJhdGUsIGFuZCB3ZSBoYXZlIGEgIAo+Pj4gcHJldHR5Cj4+PiBnb29kIGNvbXByb21pc2Ugb24gZXZlcnkgYXNwZWN0Cj4+PiAob3IgZXZlbiBkcm9wIGFudCB0YXNrcyBpZiByZWFsbHkgdGhpcyBpcyBjYXVzaW5nIHVzIHRvbyBtdWNoICAKPj4+IGhlYWRhY2hlLi4uKQo+Pj4KPj4+IFJlZ2FyZHMsCj4+Pgo+Pj4gSGVydukKPj4+Cj4+PiBMZSBqZXVkaSAxNiBub3ZlbWJyZSAyMDE3LCAxMDowMzowNyBDRVQgU3RlcGhlbiBDb25ub2xseSBhIOljcml0IDoKPj4+PiBPbiBUaHUgMTYgTm92IDIwMTcgYXQgMDc6NTEsIEhlcnbpIEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gIAo+Pj4+IHdyb3RlOgo+Pj4+ID4gSSBqdXN0IHB1c2hlZCBhbiB1cGRhdGUgb2YgZGVwZW5kZW5jaWVzIGltYWdlIHRoYXQgc2hvd3MgdGhlIGV4dGVybmFsCj4+Pj4gPiBtYXZlbi0KPj4+PiA+IHJlc29sdmVyLXByb3ZpZGVyIChpbiB5ZWxsb3cpIGluc2lkZSB0aGUgcmVhY3RvciBkZXBlbmRlbmN5IGdyYXBoIChpbgo+Pj4+ID4gYmx1ZSkKPj4+PiA+Cj4+Pj4gPiBUaGF0IHNob3dzIHRoZSBjaGlja2VuIGFuZCBlZ2cgaXNzdWUgb24gcmVsZWFzaW5nIHdlJ2xsIGhhdmUgb24gQVBJCj4+Pj4gPiBicmVha2luZwo+Pj4+ID4gY2hhbmdlLiBQZW9wbGUgYWx3YXlzIGJ1aWxkaW5nIGZyb20gc291cmNlIChsaWtlIERlYmlhbikgd2lsbCBoYXZlICAKPj4+PiB0aGUKPj4+PiA+IGlzc3VlCj4+Pj4gPiBhbHNvLgo+Pj4+ID4KPj4+PiA+IEZvciBkZW1vcywgd2hpY2ggYXJlIG5vdCByZWFsbHkgcHVibGlzaGVkIGR1cmluZyB0aGUgcmVsZWFzZSAoanVzdCBhcwo+Pj4+ID4gZG9jdW1lbnRhdGlvbiksIGRpc2FibGluZyB0aGUgbW9kdWxlIGluIHRoZSBidWlsZCB3aGVuIG5lY2Vzc2FyeSBpcwo+Pj4+ID4gc3VmZmljaWVudCwKPj4+PiA+IHdvbid0IGNoYW5nZSBtYW55IHRoaW5ncy4gRm9yIGFudCB0YXNrcywgZGlzYWJsaW5nIHRoZSBtb2R1bGUgd2lsbCAgCj4+Pj4gbm90Cj4+Pj4gPiBwdWJsaXNoCj4+Pj4gPiB0aGUgYXJ0aWZhY3Q6IHRoaXMgd2lsbCBoYXZlIGEgdmlzaWJsZSBpbXBhY3QuCj4+Pj4KPj4+PiBTaG91bGQgd2UganVzdCBiaXRlIHRoZSBidWxsZXQgYW5kIGJyaW5nIHJlc29sdmVyIGluLXRyZWUgYXMgbW9kdWxlcyBpbgo+Pj4+IG1hdmVuIGNvcmUuLi4gbGVhdmluZyBkZW1vcyBhbmQgYW50IHRhc2tzIGhlcmU/Cj4+Pj4KPj4+PiA+IFJlZ2FyZHMsCj4+Pj4gPgo+Pj4+ID4gSGVydukKPj4+PiA+Cj4+Pj4gPiBMZSBtZXJjcmVkaSAxNSBub3ZlbWJyZSAyMDE3LCAyMzowNToxNCBDRVQgSGVydukgQk9VVEVNWSBhIOljcml0IDoKPj4+PiA+ID4gaXQgc2VlbXMgSSBoYXZlIG5vdCBiZWVuIGNsZWFyOiBJJ2xsIHRyeSB0byBleHBsYWluIGJldHRlcgo+Pj4+ID4gPgo+Pj4+ID4gPiAxLiBtYXZlbi1yZXNvbHZlci1hbnQtdGFza3MgZGVwZW5kcyBvbiBtYXZlbi1yZXNvbHZlci1wcm92aWRlciAgCj4+Pj4gKGZyb20KPj4+PiA+Cj4+Pj4gPiBNYXZlbgo+Pj4+ID4KPj4+PiA+ID4gY29yZSkKPj4+PiA+ID4gMi4gbWF2ZW4tcmVzb2x2ZXItcHJvdmlkZXIgKHRoZW4gTWF2ZW4gY29yZSkgZGVwZW5kcyBvbiAgCj4+Pj4gbWF2ZW4tcmVzb2x2ZXIKPj4+PiA+ID4KPj4+PiA+ID4gaWYgd2UgcHV0IG1hdmVuLXJlc29sdmVyLWFudC10YXNrcyBpbiB0aGUgc2FtZSByZWFjdG9yIHRoYW4KPj4+PiA+Cj4+Pj4gPiBtYXZlbi1yZXNvbHZlciwKPj4+PiA+Cj4+Pj4gPiA+IHdlIGNhbid0IHJlbGVhc2UgYW55IG1hdmVuLXJlc29sdmVyIEFQSSBjaGFuZ2UgdGhhdCBicmVha3MKPj4+PiA+Cj4+Pj4gPiBtYXZlbi1yZXNvbHZlci0KPj4+PiA+Cj4+Pj4gPiA+IHByb3ZpZGVyCj4+Pj4gPiA+Cj4+Pj4gPiA+IGV4YW1wbGU6IGlmIHdlIG1vdmUgbWF2ZW4tcmVzb2x2ZXIgY29kZSB0byBvcmcuYXBhY2hlLm1hdmVuIGphdmEgIAo+Pj4+IHBhY2thZ2UKPj4+PiA+Cj4+Pj4gPiBpbgo+Pj4+ID4KPj4+PiA+ID4gbWF2ZW4tcmVzb2x2ZXIgMi4wLjAtU05BUFNIT1QsIHdlIG5lZWQgbWF2ZW4tcmVzb2x2ZXItcHJvdmlkZXIKPj4+PiA+ID4gNC4wLjAtU05BUFNIT1QgdGhhdCB1c2VzIG1hdmVuLXJlc29sdmVyIDIuMC4wLVNOQVBTSE9UIHdpdGggdGhpcyAgCj4+Pj4gbmV3Cj4+Pj4gPiA+IGphdmEKPj4+PiA+ID4gcGFja2FnZS4gVGhlbiB0cnkgdG8gcmVsZWFzZSBhbnl0aGluZzogeW91IGNhbid0LCB1bmxlc3MgeW91IGRvbid0ICAKPj4+PiB0cnkKPj4+PiA+ID4gdG8KPj4+PiA+ID4gcmVsZWFzZSBtYXZlbi0gcmVzb2x2ZXItYW50LXRhc2tzCj4+Pj4gPiA+Cj4+Pj4gPiA+ICh0aGUgY29uc2VxdWVuY2Ugb24gdmVyc2lvbiBjb25zaXN0ZW5jeSBpcyBhbm90aGVyIHdheSB0byBkZXNjcmliZSAgCj4+Pj4gdGhlCj4+Pj4gPiA+IGlzc3VlLCBidXQgdGhhdCBpcyBtb3JlIHN1YnRsZSwgdGhlbiBJIGNob3NlIHRvIGRlc2NyaWJlIHRoZSBtb3N0Cj4+Pj4gPiA+IHZpc2libGUKPj4+PiA+ID4gaXNzdWUsIHdpdGggQVBJIGJyZWFraW5nIGNoYW5nZSkKPj4+PiA+ID4KPj4+PiA+ID4gSU1ITywgYW5vdGhlciBjb25zZXF1ZW5jZSBjb3VsZCBiZTogbWF2ZW4tcmVzb2x2ZXItYW50LXRhc2tzIHdvdWxkCj4+Pj4gPgo+Pj4+ID4gcGVyaGFwcwo+Pj4+ID4KPj4+PiA+ID4gYmV0dGVyIGJlIHZlcnNpb25uZWQgbGlrZSBtYXZlbi1yZXNvbHZlci1wcm92aWRlcgo+Pj4+ID4gPgo+Pj4+ID4gPgo+Pj4+ID4gPiBNZXJnaW5nIHJlc29sdmVyLWRlbW9zIGlzIHJlYWxseSB0aGUgZ3JlYXQgYmlnIGlkZWE6IHdpdGggdGhhdCAgCj4+Pj4gbWVyZ2UsCj4+Pj4gPiA+IG1vZGlmeWluZyBtYXZlbi1ycmVzb2x2ZXIgY2FuIGltbWVkaWF0ZWx5IGJlIHRlc3RlZCB3aXRoIGRlbW9zOiAgCj4+Pj4gdGhhdCdsbAo+Pj4+ID4KPj4+PiA+IGJlCj4+Pj4gPgo+Pj4+ID4gPiBzbyBtdWNoIGVhc2llciB0byBtYWtlIGNoYW5nZXMgdG8gbWF2ZW4tcmVzb2x2ZXIgY29kZSEKPj4+PiA+ID4KPj4+PiA+ID4gUmVnYXJkcywKPj4+PiA+ID4KPj4+PiA+ID4gSGVydukKPj4+PiA+ID4KPj4+PiA+ID4gTGUgbWVyY3JlZGkgMTUgbm92ZW1icmUgMjAxNywgMDk6MDI6MTIgQ0VUIE1pY2hhZWwgT3NpcG92IGEg6WNyaXQgOgo+Pj4+ID4gPiA+IFdoeSAtMSBvbiB0aGUgQW50IHRhc2tzPwo+Pj4+ID4gPiA+Cj4+Pj4gPiA+ID4gQW0gMjAxNy0xMS0xNSB1bSAwMDo1MCBzY2hyaWViIEhlcnbpIEJPVVRFTVk6Cj4+Pj4gPiA+ID4gPiBJIGFuc3dlcmVkIG9uIHRoZSBtYWlsaW5nIGxpc3QgYW5kIG9uIHRoZSAyIEppcmEgaXNzdWVzCj4+Pj4gPiA+ID4gPiBJbiBzdW1tYXJ5LCArMSB0byBtZXJnZSBkZW1vcywgLTEgdG8gbWVyZ2UgYW50LXRhc2tzCj4+Pj4gPiA+ID4gPgo+Pj4+ID4gPiA+ID4gUmVnYXJkcywKPj4+PiA+ID4gPiA+Cj4+Pj4gPiA+ID4gPiBIZXJ26Qo+Pj4+ID4gPiA+ID4KPj4+PiA+ID4gPiA+IExlIG1hcmRpIDE0IG5vdmVtYnJlIDIwMTcsIDE4OjE5OjQwIENFVCBNYW5mcmVkIE1vc2VyIGEg6WNyaXQgOgo+Pj4+ID4gPiA+ID4+IEFueSBmZWVkYmFjayBvciBzaG91bGQgSSBqdXN0IGdvIGFoZWFkIHdpdGggdGhlIGNsZWFudXA/Cj4+Pj4gPiA+ID4gPj4KPj4+PiA+ID4gPiA+PiBNYW5mcmVkCj4+Pj4gPiA+ID4gPj4KPj4+PiA+ID4gPiA+PiBNYW5mcmVkIE1vc2VyIHdyb3RlIG9uIDIwMTctMTEtMDggMjE6MzU6Cj4+Pj4gPiA+ID4gPj4+IEhpIGFsbCwKPj4+PiA+ID4gPiA+Pj4KPj4+PiA+ID4gPiA+Pj4gSSBoYXZlIHN0YXJ0ZWQgYW5kIG1hZGUgZ29vZCBwcm9ncmVzcyBvbiBnZXR0aW5nIE1hdmVuICAKPj4+PiByZXNvbHZlcgo+Pj4+ID4gPiA+ID4+PiBhbGwKPj4+PiA+ID4gPiA+Pj4gaW50bwo+Pj4+ID4gPiA+ID4+PiB0aGUgbWFzdGVyIGJyYW5jaCBpbnN0ZWFkIG9mIGhhdmluZyBtYXN0ZXIsIGRlbW9zIGFuZCAgCj4+Pj4gYW50LXRhc2tzIGluCj4+Pj4gPiA+ID4gPj4+IHNlcGFyYXRlIGJyYW5jaGVzLgo+Pj4+ID4gPiA+ID4+Pgo+Pj4+ID4gPiA+ID4+PiBEZXRhaWxzIGFyZSB0cmFja2VkIGluCj4+Pj4gPiA+ID4gPj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTVJFU09MVkVSLTI4Cj4+Pj4gPiA+ID4gPj4+Cj4+Pj4gPiA+ID4gPj4+IEFsbCBvZiBpdCBpcyBub3cgaW4gYSBuZXcgYnJhbmNoIGNhbGxlZCBtYXN0ZXItYWxsIGZvciB5b3UgIAo+Pj4+IHRvIHNlZS4KPj4+PiA+ID4gPiA+Pj4KPj4+PiA+ID4gPiA+Pj4gSSBhbSBub3cgd29uZGVyaW5nIHdoYXQgdGhlIG5leHQgc3RlcHMgYXJlLiBJIGFkZGVkIHdoYXQgSSAgCj4+Pj4gdGhpbmsKPj4+PiA+ID4gPiA+Pj4gc2hvdWxkCj4+Pj4gPiA+ID4gPj4+IGhhcHBlbiBuZXh0IGluIHRoZSBpc3N1ZSBpbiBhIGNvbW1lbnQgYW5kIHdvdWxkIGFwcHJlY2lhdGUgIAo+Pj4+IGFueQo+Pj4+ID4KPj4+PiA+IGlucHV0Cj4+Pj4gPgo+Pj4+ID4gPiA+ID4+PiBvbgo+Pj4+ID4gPiA+ID4+PiB0aGUgY3VycmVudCBzZXR1cCBhbmQgbmV4dCBzdGVwcy4KPj4+PiA+ID4gPiA+Pj4KPj4+PiA+ID4gPiA+Pj4gQW55IGhlbHAgd291bGQgYmUgYXBwcmVjaWF0ZWQuCj4+Pj4gPiA+ID4gPj4+Cj4+Pj4gPiA+ID4gPj4+IG1hbmZyZWQKPj4+PiA+Cj4+Pj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+PiA+Cj4+Pj4gPiA+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+PiA+ID4gPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Pj4gPiA+ID4gPgo+Pj4+ID4gPiA+ID4gIAo+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4gPiA+ID4gPiAtCj4+Pj4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+ID4gPgo+Pj4+ID4gPiAgCj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+Pj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+PiA+Cj4+Pj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+Pj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Pj4gPgo+Pj4+ID4gLS0KPj4+Pgo+Pj4+IFNlbnQgZnJvbSBteSBwaG9uZQo+Pj4KPj4+Cj4+Pgo+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4KPj4KPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1MTMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE5vdiAxNyAxOTowMTowNyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1MTMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNjc0QjcxNzRFNwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDE3IE5vdiAyMDE3IDE5OjAxOjA3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTkxNiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNyBOb3YgMjAxNyAxOTowMTowNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTg0MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNyBOb3YgMjAxNyAxOTowMTowNyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE4MzAgaW52b2tlZCBieSB1aWQgOTkpOyAxNyBOb3YgMjAxNyAxOTowMTowNiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMTcgTm92IDIwMTcgMTk6MDE6MDYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAxNjVCRDFBMTM4MQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTcgTm92IDIwMTcgMTk6MDE6MDYgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjQ5OApYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjQ5OCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX05VTVNVQkpFQ1Q9MC41LCBSUF9NQVRDSEVTX1JDVkQ9LTAuMDAxLCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDJPRzZOQU9xQ2NCMiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCUZyaSwgMTcgTm92IDIwMTcgMTk6MDE6MDQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC5pbzdtLmNvbSAobWFpbC5pbzdtLmNvbSBbNDUuNzcuNzYuOTJdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNzkyNEM1RjIzOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTcgTm92IDIwMTcgMTk6MDE6MDMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvICh1bmtub3duIFtJUHY2OjJhMDI6MzkwOjc1MDI6MjowOjI6MTowXSkKCWJ5IG1haWwuaW83bS5jb20gKFBvc3RmaXgpIHdpdGggRVNNVFBTQSBpZCAwMDZFMTFDOEM5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAxNyBOb3YgMjAxNyAxOTowMDo1NSArMDAwMCAoVVRDKQpEYXRlOiBGcmksIDE3IE5vdiAyMDE3IDE5OjAwOjU0ICswMDAwCkZyb206IE1hcmsgUmF5bnNmb3JkIDxvcmcuYXBhY2hlLm1hdmVuLnVzZXJAaW83bS5jb20+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIEphdmFkb2MgUGx1Z2luIHZlcnNpb24gMy4wLjAKTWVzc2FnZS1JRDogPDIwMTcxMTE3MTkwMDU0LjFhOGIyNmM3QGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbz4KSW4tUmVwbHktVG86IDxvcC55OXV5OGVjNWtka2hyckBkZXNrdG9wLTJraHNrNDQ+ClJlZmVyZW5jZXM6IDxvcC55OXV5OGVjNWtka2hyckBkZXNrdG9wLTJraHNrNDQ+Ck9yZ2FuaXphdGlvbjogaW83bS5jb20KT3BlblBHUDogaWQ9ODE2OERBRTIyQjE1RDNFREM3MjJDMjNEMEYxNUI3RDA2RkE4MENCODsKIHVybD1odHRwOi8vaW83bS5jb20vcGdwLzgxNjhfREFFMl8yQjE1X0QzRURfQzcyMl9DMjNEXzBGMTVfQjdEMF82RkE4XzBDQjgua2V5Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L3NpZ25lZDsgbWljYWxnPXBncC1zaGE1MTI7CiBib3VuZGFyeT0iU2lnXy9fWWNXQT1ULjgya0Nha1hXcEZ6NFNPNSI7IHByb3RvY29sPSJhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlIgoKLS1TaWdfL19ZY1dBPVQuODJrQ2FrWFdwRno0U081CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VUy1BU0NJSQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgotMSAobm9uLWJpbmRpbmcpCgpUaGUgc3RhZ2VkIHZlcnNpb24gc3RpbGwgZmFpbHMgd2l0aCBhIGJhc2ljIG1vZHVsZSBzZXR1cDoKCiAgaHR0cHM6Ly9naXRodWIuY29tL2lvN20vbWF2ZW4tamF2YWRvYy1idWctMjAxNzExMTcKCi0tPTIwCk1hcmsgUmF5bnNmb3JkIHwgaHR0cDovL3d3dy5pbzdtLmNvbQoKCi0tU2lnXy9fWWNXQT1ULjgya0Nha1hXcEZ6NFNPNQpDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3BncC1zaWduYXR1cmUKQ29udGVudC1EZXNjcmlwdGlvbjogT3BlblBHUCBkaWdpdGFsIHNpZ25hdHVyZQoKLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KCmlRSXpCQUVCQ2dBZEZpRUVnV2phNGlzVjArM0hJc0k5RHhXMzBHK29ETGdGQWxvUE1lWUFDZ2tRRHhXMzBHK28KRExqTEdoQUFsOUdtQXZvek5ZbjRRSTl5eVNQQ296NU5JV09GSTB6RDd0eWw3TEZsbDBFS2tPUy9Tb2NMWUFkQwpnK2Y3YW1vckc3bGtsRDBlZzJNVExDYXpIN2RoNnJUWlVsUllZdEwyWWNHMXlIa240UHFvZko0L1hqR2JSSmc4CkI1bTVPcTBlUk5XRGt0N05sYTg0RWpJU1FDSWtaY1l1MTdDOVlQemx1M1NJMjhBWDhya3lsZGZyT09xZzNjTzAKSlZvbEJkWTdEVThRaTVsZTFKQnoyS0o2cXc2SXlhL2VSODhkdTdBNGFRdkhyUnZDVG02N3N0TWRkQ0lMc1lZSwpHY3VXRTB4Mm5UL0V5dDZ1dXFpU3VUZi9tYnRPYXBFM3YrVTRUUlRBdkdqSkVQM3p2UGc1ZzB6cEtyS2hIa0tXCk0yU3ppdWNCZThWQVBSZjgrK3NVc2lHeEdzcHNyVEhoNWxLQ2hNZnVVR3drejdUcjE4SWJDRjNHZDhHNGJ5WFoKdUpXOURJcUxERm1QWVJMU2xpYXdsdXBUTGxtOWliMytEQm9JT2g2czRSZ0dYNlU2dVZKWVhRYlJPejF1Z2psVgpnVDRlcE9OMlpjdzFXMHlISFVLL2tMVXl0NkM5Q3hsRFJQa05vdkkvS3VHc21zdXFRS3MyMnVoSzY3MWlIb3NSCkNwS2UrdG1WQ3JObVd3aXloUEV1cjhoakNqRTRvTkJBZVgvdDJuZlpOdFhrVVpzODU2T3hnVkR3SHFHMXM3MmgKc1V4S3pFYk9JY3JMZm9ISlRFOHpHdmJMSzE1TnBnSnBRdlE4N3ZkTGU4b1N3TTUrNE1IZ2NPUVRCbEFMTUlFNwpRem5Cclo5QXArK3l1N0lFcHg1M1Y4SjdCTVEvZS9vM0V6bmNEU2hDNFR0cExNNkxzajQ9Cj1yNklyCi0tLS0tRU5EIFBHUCBTSUdOQVRVUkUtLS0tLQoKLS1TaWdfL19ZY1dBPVQuODJrQ2FrWFdwRno0U081LS0KCkZyb20gZGV2LXJldHVybi0xMjQ1MTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAxOCAxMTozMTo0MSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1MTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNENGRjExMEJERAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDE4IE5vdiAyMDE3IDExOjMxOjQxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODQ2MTcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggTm92IDIwMTcgMTE6MzE6NDAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg0NTM2IGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IE5vdiAyMDE3IDExOjMxOjQwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODQ1MjUgaW52b2tlZCBieSB1aWQgOTkpOyAxOCBOb3YgMjAxNyAxMTozMTo0MCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMTggTm92IDIwMTcgMTE6MzE6NDAgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgQ0MzNzVERkUxRTsgU2F0LCAxOCBOb3YgMjAxNyAxMTozMTozOSArMDAwMCAoVVRDKQpGcm9tOiBpbzdtIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xMzUtbWF2ZW4tcGx1Z2luc0BnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTM1LW1hdmVuLXBsdWdpbnNAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXBsdWdpbnMgcHVsbCByZXF1ZXN0ICMxMzU6IFtNREVQLTU4NF0gVXBkYXRlIHBsZXh1cy11dGlscyB0byAzLjEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMTE4MTEzMTM5LkNDMzc1REZFMUVAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFNhdCwgMTggTm92IDIwMTcgMTE6MzE6MzkgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIGlvN20gY2xvc2VkIHRoZSBwdWxsIHJlcXVlc3QgYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL3B1bGwvMTM1CgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1MTktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAxOCAxMTo0Njo1NyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1MTktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQkQyOUUxMEMyRAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDE4IE5vdiAyMDE3IDExOjQ2OjU3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTU2MjIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggTm92IDIwMTcgMTE6NDY6NTcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk1NTU0IGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IE5vdiAyMDE3IDExOjQ2OjU3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTU1NDIgaW52b2tlZCBieSB1aWQgOTkpOyAxOCBOb3YgMjAxNyAxMTo0Njo1NyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMTggTm92IDIwMTcgMTE6NDY6NTcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA2OEFENjE4MDc4MQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTggTm92IDIwMTcgMTE6NDY6NTYgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjQ5OApYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjQ5OCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX05VTVNVQkpFQ1Q9MC41LCBSUF9NQVRDSEVTX1JDVkQ9LTAuMDAxLCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCA2ckRZc3pId3h5X2sgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsIDE4IE5vdiAyMDE3IDExOjQ2OjU1ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwuaW83bS5jb20gKG1haWwuaW83bS5jb20gWzQ1Ljc3Ljc2LjkyXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEIyQzk3NUZDNkEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDE4IE5vdiAyMDE3IDExOjQ2OjU0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbyAodW5rbm93biBbSVB2NjoyYTAyOjM5MDo3NTAyOjI6MDoyOjE6MF0pCglieSBtYWlsLmlvN20uY29tIChQb3N0Zml4KSB3aXRoIEVTTVRQU0EgaWQgMDc4NTAxQ0I2RgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTggTm92IDIwMTcgMTE6NDY6NTIgKzAwMDAgKFVUQykKRGF0ZTogU2F0LCAxOCBOb3YgMjAxNyAxMTo0Njo1MSArMDAwMApGcm9tOiBNYXJrIFJheW5zZm9yZCA8b3JnLmFwYWNoZS5tYXZlbi51c2VyQGlvN20uY29tPgpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIEphdmFkb2MgUGx1Z2luIHZlcnNpb24gMy4wLjAKTWVzc2FnZS1JRDogPDIwMTcxMTE4MTE0NjUxLjdmYWI3NDYwQGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbz4KSW4tUmVwbHktVG86IDwyMDE3MTExNzE5MDA1NC4xYThiMjZjN0Bjb3BwZXJoZWFkLmludC5hcmM3LmluZm8+ClJlZmVyZW5jZXM6IDxvcC55OXV5OGVjNWtka2hyckBkZXNrdG9wLTJraHNrNDQ+Cgk8MjAxNzExMTcxOTAwNTQuMWE4YjI2YzdAY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvPgpPcmdhbml6YXRpb246IGlvN20uY29tCk9wZW5QR1A6IGlkPTgxNjhEQUUyMkIxNUQzRURDNzIyQzIzRDBGMTVCN0QwNkZBODBDQjg7CiB1cmw9aHR0cDovL2lvN20uY29tL3BncC84MTY4X0RBRTJfMkIxNV9EM0VEX0M3MjJfQzIzRF8wRjE1X0I3RDBfNkZBOF8wQ0I4LmtleQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IG11bHRpcGFydC9zaWduZWQ7IG1pY2FsZz1wZ3Atc2hhNTEyOwogYm91bmRhcnk9IlNpZ18vWFp4aXpYdUJ1WmdfQzdQNUlWeHhQWGciOyBwcm90b2NvbD0iYXBwbGljYXRpb24vcGdwLXNpZ25hdHVyZSIKCi0tU2lnXy9YWnhpelh1QnVaZ19DN1A1SVZ4eFBYZwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVMtQVNDSUkKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gMjAxNy0xMS0xN1QxOTowMDo1NCArMDAwMApNYXJrIFJheW5zZm9yZCA8b3JnLmFwYWNoZS5tYXZlbi51c2VyQGlvN20uY29tPiB3cm90ZToKCj4gLTEgKG5vbi1iaW5kaW5nKQo+PTIwCj4gVGhlIHN0YWdlZCB2ZXJzaW9uIHN0aWxsIGZhaWxzIHdpdGggYSBiYXNpYyBtb2R1bGUgc2V0dXA6Cj49MjAKPiAgIGh0dHBzOi8vZ2l0aHViLmNvbS9pbzdtL21hdmVuLWphdmFkb2MtYnVnLTIwMTcxMTE3CgpJJ3ZlIHN1Ym1pdHRlZCBhIFBSIHRoYXQgSSBiZWxpZXZlIGZpeGVzIHRoZSBpc3N1ZSwgYnV0IEknbSBub3Qgc3VyZSBpZgppdCdzIGFscmVhZHkgdG9vIGxhdGUgdG8gZ2V0IGl0IGludG8gMy4wLjA6CgogIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9wdWxsLzEzNwoKUmVsZWFzaW5nIDMuMC4wIGFzIGlzIHNpbXBseSB3b24ndCB3b3JrIGZvciBtdWx0aS1tb2R1bGUgYnVpbGRzIChhbmQKbWF5IGJlIGJyb2tlbiBlbHNld2hlcmUsIEkgZG9uJ3Qga25vdykuCgotLT0yMApNYXJrIFJheW5zZm9yZCB8IGh0dHA6Ly93d3cuaW83bS5jb20KCgotLVNpZ18vWFp4aXpYdUJ1WmdfQzdQNUlWeHhQWGcKQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlCkNvbnRlbnQtRGVzY3JpcHRpb246IE9wZW5QR1AgZGlnaXRhbCBzaWduYXR1cmUKCi0tLS0tQkVHSU4gUEdQIFNJR05BVFVSRS0tLS0tCgppUUl6QkFFQkNnQWRGaUVFZ1dqYTRpc1YwKzNISXNJOUR4VzMwRytvRExnRkFsb1FIYXNBQ2drUUR4VzMwRytvCkRMaVgwUkFBdEV0NFRNc01RNXNoajJldUlDY2tLamZJZzI2MnQycWRscjNFWEd5K3FqS2s5b203SVJERGZZYmEKT3lOcytZbmJDQjBsVGR6YjZOakZhSmlGbExuRXhIZWVMUytqaG5CNkVFTllDK3FabzYzMSt1aTZrTVZJdlVlbwpTN0FTSkEvWEZ0eEprOXFlV0ZId0xFMEdRMlZtV0F6UjlKaUtybkFaM0V1UGMrOVR4bU85MDJrd1N5QnBLRkZzClY5d3l1bGxUSzZGdEQ0bFFjNlRJbmRlRXFuY3J1V1cvL3U1SWR4U2JkeDJmY1A1YU0zSkpodklMMzV0enBQMS8KVXVXMm40emJHRVByNDNROGhsNklsNjdQRE9Gd0NnUE9hN1BJMkRZbmxNUG9LNnExK054dGduSGkyTkhIYzBOcQpyZG5pRlRTcFZUUjN1cjMyMThGL0hQSE9uelhBSEFpcmZ4em9MdCtCRytPd3Y4T2s2QWhCOEY4dFBTVmMraytkCkJEeGJGaytxNjdDZmxkYi9ubXBZb09KWS9WTjMyajlRWVlsaGVxS2owV2I4MXdYcWdPUXRPcnNpcno2WTVlVUQKK3kyalVWQmF6TmhPaVNiRndpWjJxWG9yVmNOM1JodlpUb1d6WGxxK0Y2UFo1S2pjTC84NGlaUkhReTJ2cHBndQprT01xOXZPcUFCWjdqcWJsOWhiTzhpNCtiQ1p0U25MSFNaYWpQL0N6aG1xa3NneWQwdVh5VHJJMytoTjdTWXE5ClBUQXVTTmtsN3JDTlJUaHdaejNNZFpIWlMySlZBZllnSm9XMkF1cUU5QmJiNElRTU8yeEVTSXJKbW14b3A1RWEKSjBoNW02ZkFiM2tLWHVKd1NIRXhvY0JFMW5nbkNRUEY5cnpQaVVYTmRLZmZsbzF0UDlRPQo9dWd3ZgotLS0tLUVORCBQR1AgU0lHTkFUVVJFLS0tLS0KCi0tU2lnXy9YWnhpelh1QnVaZ19DN1A1SVZ4eFBYZy0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NTI1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgMTggMTU6NTc6NDggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTI1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEE1NzBDMTc0M0MKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAxOCBOb3YgMjAxNyAxNTo1Nzo0OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDY5NDg1IGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IE5vdiAyMDE3IDE1OjU3OjQ4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2OTQyMCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBOb3YgMjAxNyAxNTo1Nzo0OCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY5NDA5IGludm9rZWQgYnkgdWlkIDk5KTsgMTggTm92IDIwMTcgMTU6NTc6NDggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDE4IE5vdiAyMDE3IDE1OjU3OjQ4ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMjM4MkNDNTg0NwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTggTm92IDIwMTcgMTU6NTc6NDcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4wMDIKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMDAyIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtSUF9NQVRDSEVTX1JDVkQ9LTAuMDAxLCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgWG96ZklHT3FibFg2IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAxOCBOb3YgMjAxNyAxNTo1Nzo0NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLmlvN20uY29tIChtYWlsLmlvN20uY29tIFs0NS43Ny43Ni45Ml0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA5QzE3RDVGM0RFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAxOCBOb3YgMjAxNyAxNTo1Nzo0NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBjb3BwZXJoZWFkLmludC5hcmM3LmluZm8gKHVua25vd24gW0lQdjY6MmEwMjozOTA6NzUwMjoyOjA6MjoxOjBdKQoJYnkgbWFpbC5pbzdtLmNvbSAoUG9zdGZpeCkgd2l0aCBFU01UUFNBIGlkIEM1ODVFMUNDMDc7CglTYXQsIDE4IE5vdiAyMDE3IDE1OjU3OjM3ICswMDAwIChVVEMpCkRhdGU6IFNhdCwgMTggTm92IDIwMTcgMTU6NTc6MzYgKzAwMDAKRnJvbTogTWFyayBSYXluc2ZvcmQgPG9yZy5hcGFjaGUubWF2ZW4udXNlckBpbzdtLmNvbT4KVG86ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpDYzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIEphdmFkb2MgUGx1Z2luIHZlcnNpb24gMy4wLjAgKHRha2UKIDIpCk1lc3NhZ2UtSUQ6IDwyMDE3MTExODE1NTczNi4wNDg1ZjkwMEBjb3BwZXJoZWFkLmludC5hcmM3LmluZm8+CkluLVJlcGx5LVRvOiA8b3AueTl3bTN3MHFrZGtocnJAZGVza3RvcC0ya2hzazQ0PgpSZWZlcmVuY2VzOiA8b3AueTl3bTN3MHFrZGtocnJAZGVza3RvcC0ya2hzazQ0PgpPcmdhbml6YXRpb246IGlvN20uY29tCk9wZW5QR1A6IGlkPTgxNjhEQUUyMkIxNUQzRURDNzIyQzIzRDBGMTVCN0QwNkZBODBDQjg7CiB1cmw9aHR0cDovL2lvN20uY29tL3BncC84MTY4X0RBRTJfMkIxNV9EM0VEX0M3MjJfQzIzRF8wRjE1X0I3RDBfNkZBOF8wQ0I4LmtleQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IG11bHRpcGFydC9zaWduZWQ7IG1pY2FsZz1wZ3Atc2hhNTEyOwogYm91bmRhcnk9IlNpZ18vdURjQUFYcGtzMG9HTUpPLzl4T1RZSGsiOyBwcm90b2NvbD0iYXBwbGljYXRpb24vcGdwLXNpZ25hdHVyZSIKCi0tU2lnXy91RGNBQVhwa3Mwb0dNSk8vOXhPVFlIawpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVMtQVNDSUkKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSGVsbG8hCgpJJ2QgbGlrZSB0byB2b3RlIG9uIHRoaXMgaXNzdWUsIGJ1dCBJIHN0aWxsIGhhdmUgYSByZW1haW5pbmcgcHJvYmxlbQphbmQgYW0gbm90IHN1cmUgaWYgaXQncyBiZWNhdXNlIHRoZSBwbHVnaW4gaXMgYnJva2VuIGR1ZSB0byB0aGUgbmV3Cm1vZHVsZSBjaGFuZ2VzLCBvciBqdXN0IGJlY2F1c2UgbXkgcHJvamVjdCBzZXR1cCBpcyBzbGlnaHRseQp1bnVzdWFsLgoKU2VlIGhlcmU6CgpodHRwczovL2dpdGh1Yi5jb20vaW83bS9tYXZlbi1qYXZhZG9jLWJ1Zy0yMDE3MTExOAoKVGhlICJjIiBtb2R1bGUgYXR0ZW1wdHMgdG8gYWdncmVnYXRlIHRoZSBqYXZhZG9jIG9mIHRoZSBvdGhlciBtb2R1bGVzCmluIHRoZSByZWFjdG9yIGludG8gYSBzaW5nbGUgZGlyZWN0b3J5LiBJdCBmYWlscyBiZWNhdXNlIHRoZSBwbHVnaW4KYXR0ZW1wdHMgdG8gbG9hZCB0aGUgbW9kdWxlIGRlc2NyaXB0b3JzIG9mIHRoZSBvdGhlciBwcm9qZWN0cywKcmVzdWx0aW5nIGluIGEgInRvbyBtYW55IG1vZHVsZSBkZXNjcmlwdG9ycyIgZXJyb3IuCgpUaGlzIGlzIGEgc2ltcGxpZmllZCB2ZXJzaW9uIG9mIGEgcmVhbCBwcm9qZWN0IGhlcmUgKGFsbCBvZiBteQpwcm9qZWN0cyBmb2xsb3cgdGhlIHNhbWUgYmFzaWMgc3RydWN0dXJlKToKCiAgaHR0cHM6Ly9naXRodWIuY29tL2lvN20vamVxdWFsaXR5CgpUaGUgamF2YWRvYyBvZiBhbGwgb2YgdGhlIG1vZHVsZXMgaXMgYWdncmVnYXRlZCBpbnRvIGEgZGlyZWN0b3J5IGFuZApjb21iaW5lZCB3aXRoIHNvbWUgb3RoZXIgZG9jdW1lbnRhdGlvbiBpbnRvIGEgLnppcCBmb3IgZGVwbG95bWVudC4KCkknZCBjb3VsZCB1c2UgdGhlICJhZ2dyZWdhdGUiIGdvYWwsIGJ1dCB0aGF0IGNhdXNlcyB0b28gbWFueSBwcm9ibGVtcwpkdWUgdG8gdGhlIHdheSB0aGF0IHRoZSBnb2FsIGZvcmtzIGFuZCByZS1ydW5zIHByZXZpb3VzIGdvYWxzIGJvdW5kIHRvCnRoZSBjb21waWxlIHBoYXNlLiBBcGFydCBmcm9tIGFueXRoaW5nLCBpbiBsYXJnZXIgcHJvamVjdHMgd2l0aCBsb3RzIG9mCm1vZHVsZXMsIHJlLXJ1bm5pbmcgYWxsIG9mIHRob3NlIGdvYWxzIHRha2VzIHVuYWNjZXB0YWJseSBsb25nLgoKSXQncyBub3QgY2xlYXIgdG8gbWUgaWYgdGhpcyBpcyBhY3R1YWxseSBhIHByb2JsZW0gd2l0aCB0aGUgY3VycmVudApwbHVnaW4sIG9yIGp1c3QgYmVjYXVzZSBJJ20gbm90IHN1cHBvc2VkIHRvIGRvIHRoaW5ncyB0aGlzIHdheS4KCi0tPTIwCk1hcmsgUmF5bnNmb3JkIHwgaHR0cDovL3d3dy5pbzdtLmNvbQoKCi0tU2lnXy91RGNBQVhwa3Mwb0dNSk8vOXhPVFlIawpDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3BncC1zaWduYXR1cmUKQ29udGVudC1EZXNjcmlwdGlvbjogT3BlblBHUCBkaWdpdGFsIHNpZ25hdHVyZQoKLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KCmlRSXpCQUVCQ2dBZEZpRUVnV2phNGlzVjArM0hJc0k5RHhXMzBHK29ETGdGQWxvUVdIQUFDZ2tRRHhXMzBHK28KRExnclZBLytLWVVlUzRqdnN5WkJMb0hGbDlyVk9mbTAyZzZlbkJQSFNrRWN3ai9lbjhSVlhrUVQzendZbUorVApUdEcrOFpEeEd5bVNhS1h4cEZpbngxa3R3RFhYV2Y5aGs4YUhQb0FmL3lFSmZxY25ydEx3S0VJUGNxSnNtbWdnCnVCYUVIbzRzdlJVNWJLcnA4YkhVOGFiRkJlamFZL3cxMzZJd1h4Ni9CeTZGYVg2MHJPMlVQbmxxSDQ0ejBVWjAKZG9NQXRKQTlWNG1vN3dHQ0J5K3JWNUdodTFOU3c5MHUyR1RYZWFGc1dGRjdXWmIxcU1rWUt4MnNZbkQ1VkxSZwpmU3N5b0tUMUlrOGpsc3lia0txN3RaRVdWUm0yaFl0VXZDa21tRzgwUDI3TnRnSVVrSlJnWXQ1WS9ycEM2UE1tCklOVTJ6bFpuSW8vRmpsVE1NYWNQK1lUNWo1dkphQmt2Mk1JQ1pHaWdjQTVkTXFFNzRUYVVvdUpHbmI1bFFhMWoKRlRrOHZlOWhpRTE5RmJyRS9vYTNCNmFtNHBzOEVHc1U0dGNtRmtoNm5YZmJScFhsenZyMkVaMXoyR0dzSUczRApndzEyRkQvU2NJUTZldW81L3ppajNLMi9GN3p6amRMYXU4a0R4WHorUkVlVW9tdFZmYWtIVWVFWnFyWTYrc0RmCm15VDhsek56dWYrRHZEclN0dFZjNmVPVlFZbkRUSmhXc2FjQUJlWjZRcDAxZEVDYXZ1d0xYOVZZTFdDYkdyK0oKZHlFdXpLWmNuYllLcGZIU0JsSlY4Sm94cUtPU3FXV0FsNEZvbXRacy9aSDlPV0ZQYnM1WU03THY5RGJpREZvRwpINFJKRjlIV0R0d3YrTUh3elY4RU92MkxnZjgzeWxkMkNVWU8wNlV2alNuSDZIWXJSK1U9Cj14VFlBCi0tLS0tRU5EIFBHUCBTSUdOQVRVUkUtLS0tLQoKLS1TaWdfL3VEY0FBWHBrczBvR01KTy85eE9UWUhrLS0KCkZyb20gZGV2LXJldHVybi0xMjQ1MjctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAxOCAxNjoxNDoxOSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1MjctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQ0UxQzcxNzQ5NQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDE4IE5vdiAyMDE3IDE2OjE0OjE5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODU3MTQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggTm92IDIwMTcgMTY6MTQ6MTkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg1NjQyIGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IE5vdiAyMDE3IDE2OjE0OjE5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODU2MzEgaW52b2tlZCBieSB1aWQgOTkpOyAxOCBOb3YgMjAxNyAxNjoxNDoxOSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMTggTm92IDIwMTcgMTY6MTQ6MTkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAyMzhBODE4MDcxNAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTggTm92IDIwMTcgMTY6MTQ6MTcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4wMDIKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMDAyIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtSUF9NQVRDSEVTX1JDVkQ9LTAuMDAxLCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGZtbE50R1IwYlBPUCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgMTggTm92IDIwMTcgMTY6MTQ6MTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC5pbzdtLmNvbSAobWFpbC5pbzdtLmNvbSBbNDUuNzcuNzYuOTJdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNTI3QjQ1RkQ0NwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTggTm92IDIwMTcgMTY6MTQ6MTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvICh1bmtub3duIFtJUHY2OjJhMDI6MzkwOjc1MDI6MjowOjI6MTowXSkKCWJ5IG1haWwuaW83bS5jb20gKFBvc3RmaXgpIHdpdGggRVNNVFBTQSBpZCA2NzI0MzFDQzBFOwoJU2F0LCAxOCBOb3YgMjAxNyAxNjoxNDoxNSArMDAwMCAoVVRDKQpEYXRlOiBTYXQsIDE4IE5vdiAyMDE3IDE2OjE0OjA0ICswMDAwCkZyb206IE1hcmsgUmF5bnNmb3JkIDxvcmcuYXBhY2hlLm1hdmVuLnVzZXJAaW83bS5jb20+ClRvOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KQ2M6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBKYXZhZG9jIFBsdWdpbiB2ZXJzaW9uIDMuMC4wICh0YWtlCiAyKQpNZXNzYWdlLUlEOiA8MjAxNzExMTgxNjE0MDQuN2E2MmY2ZDJAY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvPgpJbi1SZXBseS1UbzogPG9wLnk5d3BsYXB4a2RraHJyQGRlc2t0b3AtMmtoc2s0ND4KUmVmZXJlbmNlczogPG9wLnk5d20zdzBxa2RraHJyQGRlc2t0b3AtMmtoc2s0ND4KCTwyMDE3MTExODE1NTczNi4wNDg1ZjkwMEBjb3BwZXJoZWFkLmludC5hcmM3LmluZm8+Cgk8b3AueTl3cGxhcHhrZGtocnJAZGVza3RvcC0ya2hzazQ0PgpPcmdhbml6YXRpb246IGlvN20uY29tCk9wZW5QR1A6IGlkPTgxNjhEQUUyMkIxNUQzRURDNzIyQzIzRDBGMTVCN0QwNkZBODBDQjg7CiB1cmw9aHR0cDovL2lvN20uY29tL3BncC84MTY4X0RBRTJfMkIxNV9EM0VEX0M3MjJfQzIzRF8wRjE1X0I3RDBfNkZBOF8wQ0I4LmtleQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IG11bHRpcGFydC9zaWduZWQ7IG1pY2FsZz1wZ3Atc2hhNTEyOwogYm91bmRhcnk9IlNpZ18vVFlPTWxKdzV4MlFZV3guWW12VG5SbXoiOyBwcm90b2NvbD0iYXBwbGljYXRpb24vcGdwLXNpZ25hdHVyZSIKCi0tU2lnXy9UWU9NbEp3NXgyUVlXeC5ZbXZUblJtegpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVMtQVNDSUkKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gMjAxNy0xMS0xOFQxNzowNDoxMiArMDEwMAoiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4gd3JvdGU6Cgo+IFRoYXQncyBzaW1pbGFyIHRvIE1KQVZBRE9DLTQ3OVsxXQo+PTIwCj4gU2VlbXMgbGlrZSBhbGwgSmF2YSA5IGlzc3VlcyBhcmUgbm90IHJlc29sdmVkIHlldC4KPiBJIGRvbid0IG1pbmQgY2FuY2VsaW5nIHRoZSB2b3RlIGlmIHdlIGNhbiBmaXggdGhpcyBhcyB3ZWxsLgo+PTIwCj4gdGhhbmtzLAo+IFJvYmVydAo+PTIwCj4gWzFdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTUpBVkFET0MtNDc5CgpZZWFoLCB0aGF0IGRvZXMgc2VlbSB0byBiZSB0aGUgb25lLgoKSSB0aGluayBpdCdkIGJlIGJlc3QgdG8gZml4IHRoaXMuIElmIEkgY291bGQgYXBwbHkgYSB3b3JrYXJvdW5kLCBJJ2QKdm90ZSB0byByZWxlYXNlLCBidXQgaXQgc2VlbXMgdGhhdCB0aGUgd29ya2Fyb3VuZCAoZXhjbHVkaW5nCm1vZHVsZS1pbmZvLmphdmEgZmlsZXMpIHJlc3VsdHMgaW4gSmF2YURvYyB0aGF0IGRvZXNuJ3QgY29udGFpbiBhbnkKbW9kdWxlIGluZm9ybWF0aW9uLiBQcmVzdW1hYmx5LCB3aXRoIHRoZSBtb2R1bGUtaW5mby5qYXZhIGZpbGVzCmV4Y2x1ZGVkLCBpdCByZXZlcnRzIGJhY2sgdG8gcGxhaW4gY2xhc3NwYXRoIHN0eWxlIEphdmFEb2MuCgpZb3VyIGNhbGwhCgotLT0yMApNYXJrIFJheW5zZm9yZCB8IGh0dHA6Ly93d3cuaW83bS5jb20KCgotLVNpZ18vVFlPTWxKdzV4MlFZV3guWW12VG5SbXoKQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlCkNvbnRlbnQtRGVzY3JpcHRpb246IE9wZW5QR1AgZGlnaXRhbCBzaWduYXR1cmUKCi0tLS0tQkVHSU4gUEdQIFNJR05BVFVSRS0tLS0tCgppUUl6QkFFQkNnQWRGaUVFZ1dqYTRpc1YwKzNISXNJOUR4VzMwRytvRExnRkFsb1FYRXdBQ2drUUR4VzMwRytvCkRMaitXdy85R1F0MHJPL3dlTTJwYzJTYmh1S0Z1UkgvVHErb3B1V1VudDBmTzk0emp3Y3d2SGZTZUI5UVFVZW8KRU1Hb2d4TWppcFFCYmRQbGlmc1o2d2o5cEo5ZUdmYkk0SDUvNDlWZ2QvSmdvdVo5ZWMza3R6TWNLTWJRcCt4SwphWS9KWkh1bW9hSWVxb1RZbWZndWRVUFlicW4vL1ZzMXY4VGIxNEZ0OFJzWGdUb0NsVGhodlNsMGtyWXFTb1FJCmtqUGpZMEMyTFJHVkJXandXU2tUMGlHMmlKSVZiN0VKeE41RkszWFhNMkNoSmtlREcrd2kzQjNIQzFYRE5YcmMKcU15UzJSSEQ0QnE1Vk9Pd2Y4V0hDQmdBZ0FST1VVTjB6RjgzcGE4U1hQQTRwTVNPQUc1L2VIRWpVQ2h1dGRnZQpuNkRML2pmL05BeWQ0VWFmSmhEM01BTC9JSkRhZkMyQVdmdFVmUHUvMFc1Q05wMCtUazdlclVVQlNVVjhVYXJkCjk1cGJSazI1Nng5TzFndzJ4azBqaGV2ZEZsVHRWSTI2cGk4NllBcGlNYzQ0M2IxandRY21ZWjBiTmdLaC9qL0QKeDBETlhOZU9vZFJ6OTVDcHAwVEVFK0Yvb2FxcGVlQ0NUaGt5WGU2VHljUFlKd0Vrbkdmb0UxZ2NuR0xQNXhmdQpKTC9kcnluSWdBZGRXNDBXOGhwWjBYNUdaS2dkcFRKczBSK0VUYzJlV3dsazFRdXpiQXlBQ1orVGlrOElEZC83CnBpUWZFM1JjV2VOc0JMU1VNV1U3M0hrUzRvbWx2bWE0QkxGL3BzNzZMUGNZb1lLMjRXVUxCa3ZpWVJIZW1iQTYKU0lUaDMxeWkwZWdFR2U4S2dMWnZOK1VUU010cEtBT1h1aGxCdERwSHY1d3VVNmJvUGNJPQo9WTE2aAotLS0tLUVORCBQR1AgU0lHTkFUVVJFLS0tLS0KCi0tU2lnXy9UWU9NbEp3NXgyUVlXeC5ZbXZUblJtei0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NTI4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgMTggMTY6MTg6MTIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTI4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDQwRjJCMTc0OUYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAxOCBOb3YgMjAxNyAxNjoxODoxMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg3NDY3IGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IE5vdiAyMDE3IDE2OjE4OjExIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NzM5NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBOb3YgMjAxNyAxNjoxODoxMSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg3Mzg1IGludm9rZWQgYnkgdWlkIDk5KTsgMTggTm92IDIwMTcgMTY6MTg6MTEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDE4IE5vdiAyMDE3IDE2OjE4OjExICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRTZCNTRDMkRGMAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTggTm92IDIwMTcgMTY6MTg6MTAgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjc0OApYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjc0OCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0lORk9VU01FQklaPTAuNzUsIFJQX01BVENIRVNfUkNWRD0tMC4wMDEsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgNDdOZWtCdXVEd1p5IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAxOCBOb3YgMjAxNyAxNjoxODowOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLmlvN20uY29tIChtYWlsLmlvN20uY29tIFs0NS43Ny43Ni45Ml0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBGMEE0NzVGNTY5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAxOCBOb3YgMjAxNyAxNjoxODowOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBjb3BwZXJoZWFkLmludC5hcmM3LmluZm8gKHVua25vd24gW0lQdjY6MmEwMjozOTA6NzUwMjoyOjA6MjoxOjBdKQoJYnkgbWFpbC5pbzdtLmNvbSAoUG9zdGZpeCkgd2l0aCBFU01UUFNBIGlkIEQxQkE5MUNDMTI7CglTYXQsIDE4IE5vdiAyMDE3IDE2OjE4OjA3ICswMDAwIChVVEMpCkRhdGU6IFNhdCwgMTggTm92IDIwMTcgMTY6MTg6MDYgKzAwMDAKRnJvbTogTWFyayBSYXluc2ZvcmQgPG9yZy5hcGFjaGUubWF2ZW4udXNlckBpbzdtLmNvbT4KVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ2M6ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIEphdmFkb2MgUGx1Z2luIHZlcnNpb24gMy4wLjAgKHRha2UKIDIpCk1lc3NhZ2UtSUQ6IDwyMDE3MTExODE2MTgwNi41Y2MxMmVhNEBjb3BwZXJoZWFkLmludC5hcmM3LmluZm8+CkluLVJlcGx5LVRvOiA8MjAxNzExMTgxNjE0MDQuN2E2MmY2ZDJAY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvPgpSZWZlcmVuY2VzOiA8b3AueTl3bTN3MHFrZGtocnJAZGVza3RvcC0ya2hzazQ0PgoJPDIwMTcxMTE4MTU1NzM2LjA0ODVmOTAwQGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbz4KCTxvcC55OXdwbGFweGtka2hyckBkZXNrdG9wLTJraHNrNDQ+Cgk8MjAxNzExMTgxNjE0MDQuN2E2MmY2ZDJAY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvPgpPcmdhbml6YXRpb246IGlvN20uY29tCk9wZW5QR1A6IGlkPTgxNjhEQUUyMkIxNUQzRURDNzIyQzIzRDBGMTVCN0QwNkZBODBDQjg7CiB1cmw9aHR0cDovL2lvN20uY29tL3BncC84MTY4X0RBRTJfMkIxNV9EM0VEX0M3MjJfQzIzRF8wRjE1X0I3RDBfNkZBOF8wQ0I4LmtleQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IG11bHRpcGFydC9zaWduZWQ7IG1pY2FsZz1wZ3Atc2hhNTEyOwogYm91bmRhcnk9IlNpZ18vUVk3a3ZQbUQ0bXFFd0JuWFFIX19FN00iOyBwcm90b2NvbD0iYXBwbGljYXRpb24vcGdwLXNpZ25hdHVyZSIKCi0tU2lnXy9RWTdrdlBtRDRtcUV3Qm5YUUhfX0U3TQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVMtQVNDSUkKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gMjAxNy0xMS0xOFQxNjoxNDowNCArMDAwMApNYXJrIFJheW5zZm9yZCA8b3JnLmFwYWNoZS5tYXZlbi51c2VyQGlvN20uY29tPiB3cm90ZToKPiBQcmVzdW1hYmx5LCB3aXRoIHRoZSBtb2R1bGUtaW5mby5qYXZhIGZpbGVzCj4gZXhjbHVkZWQsIGl0IHJldmVydHMgYmFjayB0byBwbGFpbiBjbGFzc3BhdGggc3R5bGUgSmF2YURvYy4KCkFjdHVhbGx5LCBpdCByZXN1bHRzIGluIHNvcnQgb2Ygd2VpcmQgbG9va2luZyBKYXZhRG9jIHRoYXQgb25seQpjb250YWlucyBhIHNpbmdsZSBtb2R1bGUsIGFuZCBjbGFpbXMgdGhhdCBhbGwgcGFja2FnZXMgYXJlIGluCnRoYXQgbW9kdWxlOgoKICBodHRwOi8vb3V0bGFuZC5pdy5pbnQuYXJjNy5pbmZvLzIwMTcvMTEvMTgvYXBpZG9jcy9pbmRleC5odG1sCgpUaGF0IGJlaGF2aW91ciBzZWVtcyBsaWtlIGl0IG1pZ2h0IGJlIGEgYnVnIGluIHRoZSBhY3R1YWwgSmF2YURvYyB0b29sCml0c2VsZi4KCi0tPTIwCk1hcmsgUmF5bnNmb3JkIHwgaHR0cDovL3d3dy5pbzdtLmNvbQoKCi0tU2lnXy9RWTdrdlBtRDRtcUV3Qm5YUUhfX0U3TQpDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3BncC1zaWduYXR1cmUKQ29udGVudC1EZXNjcmlwdGlvbjogT3BlblBHUCBkaWdpdGFsIHNpZ25hdHVyZQoKLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KCmlRSXpCQUVCQ2dBZEZpRUVnV2phNGlzVjArM0hJc0k5RHhXMzBHK29ETGdGQWxvUVhUNEFDZ2tRRHhXMzBHK28KRExoWXJoQUFtdTN6cmRPQTY4cGkybkIydCtBYzlqMHFTTFN0Nk1iN0x5QUJLQklpbVVBbzlEWWt6K1p2dXkxawpFQTZvYUNKekJSbWdkMkZxVXk0S1pMSllTME9NUzM0N281cnpZN0VkUzZWa0dpNmUxM2ZNQ2N6WXlmYnU2bm5zCjV4emEvMndWOEMvRnEwYms2U09ic0lRb2hGOXNFSmUyZ0xuc2hQZWlZWEF2VjYyeUpUbDIxNzY1S0tMc0VIYkoKaDBsQk9mK1dvQ3RHaW1SWmEycVNUdUQ2dXZVZFRHZWJMR0xRcDJEeXhmVXQzSERYdm5GWGRQeVFhRzBJL3hyawprSGY1WVhQeUwrMGpuVmg0NllhcXV4SWR5YS85c0ZpNzQ4QmZaTWVNN1d6UnRSZHBlWGR5aE9GZkJ3UHQvcDZBCllSaS9hdzhQL0xZZXZWYkUwSUhTdFBPMlhzQkZPNXRUQUdkYUpZcDRhV1p3TGRrOVdORW5obWh1MG56VEFBYWcKZS9GOHBnL1hiTTVmaGNRaG92U3I4UTJoeXRlQUhGUVFiRUhTSUJ6U3dOUlpwWUNMR081R2VBMTZWYzFScERtVQpoNTh6Ym5mVzhzZ09yQm9vMmVZSXRaamhHb3RxZ3hjanFmZHcxYmxJakp0bkhvckxQdlFmU3Q1ME1QOWQxNXNKCmRNRU5JUmh4ZENabWZxVE45c3FhaHhYQmpoYVU1cWxvQUg2WTBBeDdtYzUrYlAxMjg4N0RtUDB3cDgyRnRvMnIKUXVWdDQ4aXBwMFVOanZxUlJPUmhWSU93d2tQQ0Z6elVLSUR5dngrVE81NmcxbEh3MDU2eW84OU1NZlhrVFJMQQoxV2VNZ3dUWVBlR0owK0s4dXp2Vk5QdGJua1R3MW1KTmtsMVpYWHltYnVGUjR1VHlEaEU9Cj1HZUYxCi0tLS0tRU5EIFBHUCBTSUdOQVRVUkUtLS0tLQoKLS1TaWdfL1FZN2t2UG1ENG1xRXdCblhRSF9fRTdNLS0KCkZyb20gZGV2LXJldHVybi0xMjQ1MzItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAxOCAxNzowMzoyMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1MzItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMUE0ODAxNzU0NgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDE4IE5vdiAyMDE3IDE3OjAzOjIwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjkyNDMgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggTm92IDIwMTcgMTc6MDM6MTkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI5MTY5IGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IE5vdiAyMDE3IDE3OjAzOjE5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjkxNTggaW52b2tlZCBieSB1aWQgOTkpOyAxOCBOb3YgMjAxNyAxNzowMzoxOSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMTggTm92IDIwMTcgMTc6MDM6MTkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBDMTA1REM1OEE1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAxOCBOb3YgMjAxNyAxNzowMzoxOCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjAwMgpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC4wMDIgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W1JQX01BVENIRVNfUkNWRD0tMC4wMDEsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBxWC1BTXEwcUE2X2wgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsIDE4IE5vdiAyMDE3IDE3OjAzOjE3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwuaW83bS5jb20gKG1haWwuaW83bS5jb20gWzQ1Ljc3Ljc2LjkyXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIERBMTlGNUZFMEUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDE4IE5vdiAyMDE3IDE3OjAzOjE2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbyAodW5rbm93biBbSVB2NjoyYTAyOjM5MDo3NTAyOjI6MDoyOjE6MF0pCglieSBtYWlsLmlvN20uY29tIChQb3N0Zml4KSB3aXRoIEVTTVRQU0EgaWQgOUVBMEIxQ0MzNzsKCVNhdCwgMTggTm92IDIwMTcgMTc6MDM6MTUgKzAwMDAgKFVUQykKRGF0ZTogU2F0LCAxOCBOb3YgMjAxNyAxNzowMzoxNCArMDAwMApGcm9tOiBNYXJrIFJheW5zZm9yZCA8b3JnLmFwYWNoZS5tYXZlbi51c2VyQGlvN20uY29tPgpUbzogPT9VVEYtOD9CP1NHVnlkc09wPz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpDYzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIEphdmFkb2MgUGx1Z2luIHZlcnNpb24gMy4wLjAgKHRha2UKIDIpCk1lc3NhZ2UtSUQ6IDwyMDE3MTExODE3MDMxNC4wZGU3MjljYUBjb3BwZXJoZWFkLmludC5hcmM3LmluZm8+CkluLVJlcGx5LVRvOiA8MTkxMzE2NC5jcFdpc05LUTRRQGdpZ2E+ClJlZmVyZW5jZXM6IDxvcC55OXdtM3cwcWtka2hyckBkZXNrdG9wLTJraHNrNDQ+Cgk8MjAxNzExMTgxNjE4MDYuNWNjMTJlYTRAY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvPgoJPDE4MDYwMjUuQnNtRjk2M1JxbkBnaWdhPgoJPDE5MTMxNjQuY3BXaXNOS1E0UUBnaWdhPgpPcmdhbml6YXRpb246IGlvN20uY29tCk9wZW5QR1A6IGlkPTgxNjhEQUUyMkIxNUQzRURDNzIyQzIzRDBGMTVCN0QwNkZBODBDQjg7CiB1cmw9aHR0cDovL2lvN20uY29tL3BncC84MTY4X0RBRTJfMkIxNV9EM0VEX0M3MjJfQzIzRF8wRjE1X0I3RDBfNkZBOF8wQ0I4LmtleQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IG11bHRpcGFydC9zaWduZWQ7IG1pY2FsZz1wZ3Atc2hhNTEyOwogYm91bmRhcnk9IlNpZ18vOGlFenpUUjB3azBlZkQxQ01fblYuVzIiOyBwcm90b2NvbD0iYXBwbGljYXRpb24vcGdwLXNpZ25hdHVyZSIKCi0tU2lnXy84aUV6elRSMHdrMGVmRDFDTV9uVi5XMgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gMjAxNy0xMS0xOFQxNzo0NDoyMyArMDEwMApIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3JvdGU6Cgo+IEpESyBqYXZhZG9jIHNlZW1zIHRvIGNvdmVyIHRoZSAiYWdncmVnYXRlZCBqYXZhZG9jcyIgc2NlbmFyaW86IGluIEphdmEgOT0KPTIwCj4gdGVybXMsIHRoYXQncyAibXVsdGktbW9kdWxlcyIgPTNEIGV4YWN0bHkgdGhlIGNhc2UgZm9yIEpESyA5IGphdmFkb2MgWzFdCj4gSSBkb24ndCBrbm93IHdoYXQncyB0aGUgY29tbWFuZCBsaW5lIHRvIHByb2R1Y2UgdGhpcywgYnV0IGxvb2tzIGZlYXNpYmxlID0KZnJvbT0yMAo+IGphdmFkb2Mgc2lkZQo+PTIwCgpJdCBsb29rZWQgbGlrZSBhIGJ1ZyBpbiB0aGUgSmF2YURvYyB0b29sIGJlY2F1c2UgdGhlIGdlbmVyYXRpb24gd2VudAphaGVhZCBhbmQgeWV0IHBhY2thZ2VzIHdlcmUgcGxhY2VkIGludG8gdGhlIHdyb25nIG1vZHVsZXMgaW4gdGhlCm91dHB1dCwgYnV0IEkgdGhpbmsgaXQgbWlnaHQganVzdCBiZSBhIG1hdHRlciBvZiBwZXJzcGVjdGl2ZS4gSSB0aGluawp0aGUgdG9vbCBtYXliZSB3b3JrZWQgY29ycmVjdGx5IGJhc2VkIG9uIHdoYXQgaXQgd2FzIGdpdmVuIChhIHBpbGUgb2YKc291cmNlcyB3aXRoIHNvbWUgaW1wb3J0YW50IG1vZHVsZSBkZXNjcmlwdG9ycyB0YWtlbiBvdXQpLgoKLS09MjAKTWFyayBSYXluc2ZvcmQgfCBodHRwOi8vd3d3LmlvN20uY29tCgoKLS1TaWdfLzhpRXp6VFIwd2swZWZEMUNNX25WLlcyCkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vcGdwLXNpZ25hdHVyZQpDb250ZW50LURlc2NyaXB0aW9uOiBPcGVuUEdQIGRpZ2l0YWwgc2lnbmF0dXJlCgotLS0tLUJFR0lOIFBHUCBTSUdOQVRVUkUtLS0tLQoKaVFJekJBRUJDZ0FkRmlFRWdXamE0aXNWMCszSElzSTlEeFczMEcrb0RMZ0ZBbG9RWjlJQUNna1FEeFczMEcrbwpETGhvREEvL2M5eDF1RFJ6Z0lERmZCbUpWakhuVkd6ZTAwNU8xZi9nUEpaT1FWZGtHb3pMQWlEWGk1ZVZabUo4CmxkckNlTEZqcWd6WXcyb2hiSnoycER5ZkpFSisvaTVrS25pOEJjUWtXRm5NQ0ZNOXRkdVlNRUtocmE3ckVoZUMKYnVHZ0hDK0dVUmRLdEplNnJJRXpjanFnMW9XNEJkcTdWQ0krOCt4U2dTN08wTFpFSzhPMHA0V0JBK0NLTFhCWQpsc1hUQmhJcDBBckh1bFJySFRlYnVyOWVzb1pFYnZOODNTc2F0R0xmbStjRS84UkpVTWR3RU9uMm1NUm1YZWg2CmMrZXMwaTc4Yll0ZWVLRU5lRi9GdFhTZVY5RjFwQ1hPSFZwUjROdGYyWGc3N1FJeGlGRExMRGdKRG8zN3pQdXgKb2JrYkdOWUZQTlF3SElqQmhjS3JvZ2x2d3h1d05oNitHV0pydDFkaDc1SDQ1d3ovdjRFWWVjczN5SEVFK2ZGRQo4TmNpQ1JqTW5Nd3MzQWxlUWNFa2ttRUMveEFqSjVHL1RubklFalQvSExQeTVVV3ZXL2FYMlREZkJBR0tjNFpGCnhzRTcxanMydXFSQUlKZUdWcEpFOXQvRzVZd1JZTkxEekt0MXFCTVc2QUlIZjNRQUtWcDRZVkxpOFZHVHAzbFoKMGp4ZzdqUllWcEdubG9sTnNJT01ud2t2UGFXQWtqTnpKTVBSRkZQR2ZLTm9iOEFhNmRXWXpTV3F4dXpiczMrUgpFSDZuSnJ0Vy9WTExac3hNTUd0UGpIcmthZis1cHBwT0NDUjdidW1WOE1JZFJnTWpLRFdVb3RtTUR0MENROEk4CjNQMVlWTjdBK2lUKzc2aTJNb1Ywd1Uza3RHMGhFK3dveUljWTJOMmQxMHp0dFVHK0hxcz0KPVVPb0QKLS0tLS1FTkQgUEdQIFNJR05BVFVSRS0tLS0tCgotLVNpZ18vOGlFenpUUjB3azBlZkQxQ01fblYuVzItLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDUzNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gTm92IDE5IDEwOjA0OjM0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDUzNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFN0EyRjE3RkVFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMTkgTm92IDIwMTcgMTA6MDQ6MzQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0MjczIGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IE5vdiAyMDE3IDEwOjA0OjM0IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0MTg3IGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IE5vdiAyMDE3IDEwOjA0OjM0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDE3NiBpbnZva2VkIGJ5IHVpZCA5OSk7IDE5IE5vdiAyMDE3IDEwOjA0OjM0IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxOSBOb3YgMjAxNyAxMDowNDozNCArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCAyRjA1OERGRjE3OyBTdW4sIDE5IE5vdiAyMDE3IDEwOjA0OjMyICswMDAwIChVVEMpCkZyb206IFRpYm9yMTcgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE2OC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTY4LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBwdWxsIHJlcXVlc3QgIzE2ODogU1VSRUZJUkUtMTQyNCBqYXZheC50cmFuc2FjdGlvbi5UcmFuc2FjdGlvLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzExMTkxMDA0MzMuMkYwNThERkYxN0BnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogU3VuLCAxOSBOb3YgMjAxNyAxMDowNDozMiArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgVGlib3IxNyBjb21tZW50ZWQgb24gYSBkaWZmIGluIHRoZSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2OCNkaXNjdXNzaW9uX3IxNTE4NjAwNTkKICAKICAgIC0tLSBEaWZmOiBtYXZlbi1zdXJlZmlyZS1wbHVnaW4vc3JjL3NpdGUvbWFya2Rvd24vamF2YTkubWQgLS0tCiAgICBAQCAtMTcsMTUgKzE3LDYgQEAgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucwogICAgIHVuZGVyIHRoZSBMaWNlbnNlLgogICAgIC0tPgogICAgIAogICAgLUphdmEgOSBpbiBKQVZBX0hPTUUKICAgIC0tLSBFbmQgZGlmZiAtLQogICAgCiAgICBZb3Ugc2hvdWxkIGJyaW5nIGJhY2sgdGhlIGhpc3RvcnkuIFNvbWUgdXNlcnMgc3RpbGwgdXNlIDIuMjAuMSBhbmQgdGhlcmUgd2FzIGFub3RoZXIgYmVoYXZpb3IuIFdlIHNob3VsZCBhZGQgYSBuZXcgcG9pbnQgZm9yIDIuMjEgYW5kIHJlY29tbWVuZGF0aW9ucy4gUGxlYXNlIGFkZCB0aGUgbGlzdCBvZiBKYXZhIEFQSSBmcm9tIEppcmEgdGhhdCB0aGUgT3JhY2xlIGd1eSBsaXN0ZWQgTWF2ZW4gYXJ0aWZhY3RzLCBpbXBsZW1lbnRhdGlvbnMuIFRoaXMgaXMgbWlzc2luZyBpbiBKYXZhIGRvY3VtZW50YXRpb24gYW5kIHBlb3BsZSB3aWxsIG5lZWRlZCB0byBiZSBhbm5vdW5jZWQgYWJvdXQgdGhlbS4KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDUzNS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gTm92IDE5IDEwOjA1OjA4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDUzNS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyMUM2MjE3RkY4Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMTkgTm92IDIwMTcgMTA6MDU6MDggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1NDUxIGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IE5vdiAyMDE3IDEwOjA1OjA3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MzUxIGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IE5vdiAyMDE3IDEwOjA1OjA3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTM0MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDE5IE5vdiAyMDE3IDEwOjA1OjA3IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxOSBOb3YgMjAxNyAxMDowNTowNyArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCA1Rjk1OERGRjE3OyBTdW4sIDE5IE5vdiAyMDE3IDEwOjA1OjA3ICswMDAwIChVVEMpCkZyb206IFRpYm9yMTcgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE2OC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTY4LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBwdWxsIHJlcXVlc3QgIzE2ODogU1VSRUZJUkUtMTQyNCBqYXZheC50cmFuc2FjdGlvbi5UcmFuc2FjdGlvLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzExMTkxMDA1MDcuNUY5NThERkYxN0BnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogU3VuLCAxOSBOb3YgMjAxNyAxMDowNTowNyArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgVGlib3IxNyBjb21tZW50ZWQgb24gYSBkaWZmIGluIHRoZSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2OCNkaXNjdXNzaW9uX3IxNTE4NjAwNzAKICAKICAgIC0tLSBEaWZmOiBzdXJlZmlyZS1pbnRlZ3JhdGlvbi10ZXN0cy9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vc3VyZWZpcmUvaXRzL0phdmE5RnVsbEFwaUlULmphdmEgLS0tCiAgICBAQCAtNzgsMTIgKzgzLDEzIEBAIHB1YmxpYyB2b2lkIHNob3VsZExvYWRNdWx0aXBsZUphdmFNb2R1bGVzX1Rvb2xjaGFpbnNYTUwoKSB0aHJvd3MgSU9FeGNlcHRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hZGRHb2FsKCAiLS10b29sY2hhaW5zIiApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYWRkR29hbCggU3lzdGVtLmdldFByb3BlcnR5KCAibWF2ZW4udG9vbGNoYWlucy5maWxlIiApICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5leGVjdXRlKCAidmVyaWZ5IiApCiAgICAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmVyaWZ5RXJyb3JGcmVlKCAyICk7CiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmVyaWZ5RXJyb3JGcmVlKCAxICk7CiAgICAtLS0gRW5kIGRpZmYgLS0KICAgIAogICAgV2h5IGl0IGhhcyBjaGFuZ2VkIGZyb20gMiB0byAxPwogICAgVGhlcmUgd2FzIHR3byB0ZXN0cz8KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDUzNi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gTm92IDE5IDEwOjA2OjI1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDUzNi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDRkQwMDEwMDA3Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMTkgTm92IDIwMTcgMTA6MDY6MjUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3MjkxIGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IE5vdiAyMDE3IDEwOjA2OjI1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MjAyIGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IE5vdiAyMDE3IDEwOjA2OjI1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzE5MSBpbnZva2VkIGJ5IHVpZCA5OSk7IDE5IE5vdiAyMDE3IDEwOjA2OjI1IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxOSBOb3YgMjAxNyAxMDowNjoyNSArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCAxREVFRERGRjE3OyBTdW4sIDE5IE5vdiAyMDE3IDEwOjA2OjI1ICswMDAwIChVVEMpCkZyb206IGVvbGl2ZWxsaSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTY4LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNjgtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIHB1bGwgcmVxdWVzdCAjMTY4OiBTVVJFRklSRS0xNDI0IGphdmF4LnRyYW5zYWN0aW9uLlRyYW5zYWN0aW8uLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTExOTEwMDYyNS4xREVFRERGRjE3QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBTdW4sIDE5IE5vdiAyMDE3IDEwOjA2OjI1ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBlb2xpdmVsbGkgY29tbWVudGVkIG9uIGEgZGlmZiBpbiB0aGUgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNjgjZGlzY3Vzc2lvbl9yMTUxODYwMDg4CiAgCiAgICAtLS0gRGlmZjogbWF2ZW4tc3VyZWZpcmUtcGx1Z2luL3NyYy9zaXRlL21hcmtkb3duL2phdmE5Lm1kIC0tLQogICAgQEAgLTE3LDE1ICsxNyw2IEBAIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKICAgICB1bmRlciB0aGUgTGljZW5zZS4KICAgICAtLT4KICAgICAKICAgIC1KYXZhIDkgaW4gSkFWQV9IT01FCiAgICAtLS0gRW5kIGRpZmYgLS0KICAgIAogICAgd2lsbCBkbwoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NTM3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBOb3YgMTkgMTA6MDc6MDcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTM3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDdGNjM0MTAwMTEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxOSBOb3YgMjAxNyAxMDowNzowNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg0NjYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTkgTm92IDIwMTcgMTA6MDc6MDcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgzOTYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTkgTm92IDIwMTcgMTA6MDc6MDcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4Mzg1IGludm9rZWQgYnkgdWlkIDk5KTsgMTkgTm92IDIwMTcgMTA6MDc6MDYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDE5IE5vdiAyMDE3IDEwOjA3OjA2ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIEJEOUMxREZGMTc7IFN1biwgMTkgTm92IDIwMTcgMTA6MDc6MDYgKzAwMDAgKFVUQykKRnJvbTogVGlib3IxNyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTY4LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNjgtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNjg6IFNVUkVGSVJFLTE0MjQgamF2YXgudHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25NYW5hZ2UuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTExOTEwMDcwNi5CRDlDMURGRjE3QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBTdW4sIDE5IE5vdiAyMDE3IDEwOjA3OjA2ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBUaWJvcjE3IGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2OAogIAogICAgSSBoYWQgdG8gcHJlZmVyIHB1c2hpbmcgbXkgY29tbWl0IHJlZ2FyZGluZyBKaWdzYXcgbW9kdWxhcml0eSBzdXBwb3J0ZWQgaW4gU3VyZWZpcmUgcHJvamVjdCBiZWNhdXNlIGl0IHdhcyB0b28gYmlnIHRvIG1lcmdlIGFmdGVyIHlvdXJzLiBQbGVhc2UgY3JlYXRlIGEgbmV3IFBSIHdpdGggeW91ciBjaGFuZ2VzLgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NTM4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBOb3YgMTkgMTA6MDk6MDcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTM4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDYwRjJBMTAwMjAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxOSBOb3YgMjAxNyAxMDowOTowNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDEwNDYxIGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IE5vdiAyMDE3IDEwOjA5OjA1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMDM5MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOSBOb3YgMjAxNyAxMDowOTowNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDEwMzY4IGludm9rZWQgYnkgdWlkIDk5KTsgMTkgTm92IDIwMTcgMTA6MDk6MDUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDE5IE5vdiAyMDE3IDEwOjA5OjA1ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDI1MzIyREZGMTc7IFN1biwgMTkgTm92IDIwMTcgMTA6MDk6MDUgKzAwMDAgKFVUQykKRnJvbTogZW9saXZlbGxpIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNjgtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE2OC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgcHVsbCByZXF1ZXN0ICMxNjg6IFNVUkVGSVJFLTE0MjQgamF2YXgudHJhbnNhY3Rpb24uVHJhbnNhY3Rpby4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMTE5MTAwOTA1LjI1MzIyREZGMTdAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFN1biwgMTkgTm92IDIwMTcgMTA6MDk6MDUgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIGVvbGl2ZWxsaSBjb21tZW50ZWQgb24gYSBkaWZmIGluIHRoZSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2OCNkaXNjdXNzaW9uX3IxNTE4NjAxNTIKICAKICAgIC0tLSBEaWZmOiBzdXJlZmlyZS1pbnRlZ3JhdGlvbi10ZXN0cy9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vc3VyZWZpcmUvaXRzL0phdmE5RnVsbEFwaUlULmphdmEgLS0tCiAgICBAQCAtNzgsMTIgKzgzLDEzIEBAIHB1YmxpYyB2b2lkIHNob3VsZExvYWRNdWx0aXBsZUphdmFNb2R1bGVzX1Rvb2xjaGFpbnNYTUwoKSB0aHJvd3MgSU9FeGNlcHRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hZGRHb2FsKCAiLS10b29sY2hhaW5zIiApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYWRkR29hbCggU3lzdGVtLmdldFByb3BlcnR5KCAibWF2ZW4udG9vbGNoYWlucy5maWxlIiApICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5leGVjdXRlKCAidmVyaWZ5IiApCiAgICAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmVyaWZ5RXJyb3JGcmVlKCAyICk7CiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmVyaWZ5RXJyb3JGcmVlKCAxICk7CiAgICAtLS0gRW5kIGRpZmYgLS0KICAgIAogICAgSSBoYXZlIGRyb3BwZWQgdGV0X2NvcmJhX21vZC4KICAgIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBoYXZlICBsZWdhY3kgImNvcmJhIG1vZHVsZSIgKyBkZXBlbmRlbmN5IG9mIEpUQSwgYmVjYXVzZSBtb2R1bGUgamF2YS5jb3JiYSByZXF1aXJlIGxlZ2FjeSB0cmFuc2FjdGlvbiBwYWNrYWdlcyB3aGljaCBiZSBsb2FkZWQgZnJvbSB0aGUgSkRLIGFuZCBzbyBpbiB0dXJuIHRoaXMgd2lsbCBoaWRlIHRoZSBleHBsaWNpdCBkZXBlbmRlbmN5LgogICAgCiAgICBJIGNvdWxkIGNyZWF0ZSBvbmUgbW9yZSBJVCBvbmx5IGZvciBjb3JiYQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NTM5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBOb3YgMTkgMTA6MDk6MDYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTM5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDQ1NkM0MTAwMUUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxOSBOb3YgMjAxNyAxMDowOTowNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDEwOTcxIGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IE5vdiAyMDE3IDEwOjA5OjA1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMDg1OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOSBOb3YgMjAxNyAxMDowOTowNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDEwMzc5IGludm9rZWQgYnkgdWlkIDk5KTsgMTkgTm92IDIwMTcgMTA6MDk6MDUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDE5IE5vdiAyMDE3IDEwOjA5OjA1ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDNFMTUzRTA1M0Q7IFN1biwgMTkgTm92IDIwMTcgMTA6MDk6MDUgKzAwMDAgKFVUQykKRnJvbTogVGlib3IxNyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTY4LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNjgtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNjg6IFNVUkVGSVJFLTE0MjQgamF2YXgudHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25NYW5hZ2UuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTExOTEwMDkwNS4zRTE1M0UwNTNEQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBTdW4sIDE5IE5vdiAyMDE3IDEwOjA5OjA1ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBUaWJvcjE3IGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2OAogIAogICAgVHJ5IHRvIG5hbWUgdGhlIFBSIGxpa2UgdGhpcyAoW10gYnJhY2tldHMpOgogICAgW1NVUkVGSVJFLTE0MjRdIGphdmF4LnRyYW5zYWN0aW9uLlRyYW5zYWN0aW9uTWFuYWdlciBub3QgdmlzaWJsZSB3aXRoIEphdmE5CgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1NDAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE5vdiAxOSAxMDoxMToxOCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1NDAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQjREQTAxMDA0OQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDE5IE5vdiAyMDE3IDEwOjExOjE4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjAwNzIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTkgTm92IDIwMTcgMTA6MTE6MTggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE5OTk0IGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IE5vdiAyMDE3IDEwOjExOjE4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTk5NDIgaW52b2tlZCBieSB1aWQgOTkpOyAxOSBOb3YgMjAxNyAxMDoxMToxOCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTkgTm92IDIwMTcgMTA6MTE6MTggKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNDAyOTNERkYxNzsgU3VuLCAxOSBOb3YgMjAxNyAxMDoxMToxNiArMDAwMCAoVVRDKQpGcm9tOiBlb2xpdmVsbGkgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE2OC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTY4LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBpc3N1ZSAjMTY4OiBbU1VSRUZJUkUtMTQyNF0gamF2YXgudHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25NYW5hLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzExMTkxMDExMTcuNDAyOTNERkYxN0BnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogU3VuLCAxOSBOb3YgMjAxNyAxMDoxMToxNiArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgZW9saXZlbGxpIGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2OAogIAogICAgU3VyZSwgSSB3aWxsIHJlYmFzZSBvbmNlIHlvdSBtZXJnZWQgeW91ciBiaWcgY2hhbmdlcwoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NTQxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBOb3YgMTkgMTA6NTE6MTIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTQxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEUzMEM1MTAxMUIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxOSBOb3YgMjAxNyAxMDo1MToxMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDU3MjEyIGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IE5vdiAyMDE3IDEwOjUxOjA2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NzEyOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOSBOb3YgMjAxNyAxMDo1MTowNiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU3MTE3IGludm9rZWQgYnkgdWlkIDk5KTsgMTkgTm92IDIwMTcgMTA6NTE6MDYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDE5IE5vdiAyMDE3IDEwOjUxOjA2ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDg0OTc0REZGQjU7IFN1biwgMTkgTm92IDIwMTcgMTA6NTE6MDUgKzAwMDAgKFVUQykKRnJvbTogVGlib3IxNyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTY4LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNjgtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNjg6IFtTVVJFRklSRS0xNDI0XSBqYXZheC50cmFuc2FjdGlvbi5UcmFuc2FjdGlvbk1hbmEuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTExOTEwNTEwNS44NDk3NERGRkI1QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBTdW4sIDE5IE5vdiAyMDE3IDEwOjUxOjA1ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBUaWJvcjE3IGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2OAogIAogICAgSXQgd2FzIGRvbmUuIEJ1dCBJIGRvbid0IHRoaW5rIHlvdSBjYW4gZWFzaWx5IHJlYmFzZSBpdCBzaW5jZSBzb21lIGNsYXNzZXMgd2VyZSBkZWxldGVkIG9yIG1ldGhvZHMgbW92ZWQuCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1NDItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE5vdiAxOSAxMToyOTowMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1NDItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMkIwQUYxMDFCNwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDE5IE5vdiAyMDE3IDExOjI5OjAxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTQxNjUgaW52b2tlZCBieSB1aWQgNTAwKTsgMTkgTm92IDIwMTcgMTE6Mjk6MDAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk0MDgxIGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IE5vdiAyMDE3IDExOjI5OjAwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTQwNzAgaW52b2tlZCBieSB1aWQgOTkpOyAxOSBOb3YgMjAxNyAxMToyOTowMCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTkgTm92IDIwMTcgMTE6Mjk6MDAgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNzBDMzNERkY5RjsgU3VuLCAxOSBOb3YgMjAxNyAxMToyOTowMCArMDAwMCAoVVRDKQpGcm9tOiBUaWJvcjE3IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNjktbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE2OS1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzE2OTogW1NVUkVGSVJFLTE0MDVdIEFsbG93cyB1c2VyIHRvIGV4dGVuZCBSdW5PcmRlciAmIC4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMTE5MTEyOTAwLjcwQzMzREZGOUZAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFN1biwgMTkgTm92IDIwMTcgMTE6Mjk6MDAgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIFRpYm9yMTcgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY5CiAgCiAgICBUaHggZm9yIHlvdXIgZWZmb3J0IGJ1dCB3ZSBoYXZlIHRvIHdhaXQgZm9yIHRoaXMgdGlsbCB0aGUgdmVyc2lvbiAzLjAuCiAgICBUaGUgYnJhbmNoIHdpbGwgaGF2ZSBtb3JlIG1lcmdlIGNvbmZsaWN0cy4gUGxlYXNlIHJlYmFzZSB0aGlzIGluIGZldyBtb250aHMgd2hlbiB3ZSB3aWxsIGJlIGFib3V0IGRldmVsb3AgMy4wLgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NTQzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBOb3YgMTkgMTE6MzE6NDggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTQzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEMzRkFBMTAxQzMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxOSBOb3YgMjAxNyAxMTozMTo0OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk1NjY3IGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IE5vdiAyMDE3IDExOjMxOjQ4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NTYwMCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOSBOb3YgMjAxNyAxMTozMTo0OCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk1NTg5IGludm9rZWQgYnkgdWlkIDk5KTsgMTkgTm92IDIwMTcgMTE6MzE6NDggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDE5IE5vdiAyMDE3IDExOjMxOjQ4ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDQxMzNDREZGOUY7IFN1biwgMTkgTm92IDIwMTcgMTE6MzE6NDYgKzAwMDAgKFVUQykKRnJvbTogVGlib3IxNyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTcwLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNzAtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNzA6IENsYXJpZmllZCBzcGVjaWZ5aW5nIG11bHRpcGxlIGNhdGVnb3JpZXMKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTExOTExMzE0Ny40MTMzQ0RGRjlGQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBTdW4sIDE5IE5vdiAyMDE3IDExOjMxOjQ2ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBUaWJvcjE3IGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE3MAogIAogICAgQGNsYXljZXBoYXMgCiAgICBOaWNlISBQbGVhc2UgY3JlYXRlIEppcmEgdGlja2V0IGFuZCByZW5hbWUgdGhpcyBQUiB0byBmb3JtYXQ6CiAgICBbU1VSRUZJUkUtPGppcmEgaWQ+XSA8amlyYSB0aWNrZXQgdGl0bGU+CgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1NDQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE5vdiAxOSAxMTozNTo0NSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1NDQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNDVCMTgxMDFEMwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDE5IE5vdiAyMDE3IDExOjM1OjQ1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTgyNzggaW52b2tlZCBieSB1aWQgNTAwKTsgMTkgTm92IDIwMTcgMTE6MzU6NDQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk4MTgwIGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IE5vdiAyMDE3IDExOjM1OjQ0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTgxNjggaW52b2tlZCBieSB1aWQgOTkpOyAxOSBOb3YgMjAxNyAxMTozNTo0NCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTkgTm92IDIwMTcgMTE6MzU6NDQgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgQkY3RDdERkY5RjsgU3VuLCAxOSBOb3YgMjAxNyAxMTozNTo0MyArMDAwMCAoVVRDKQpGcm9tOiBUaWJvcjE3IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNjctbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE2Ny1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzE2NzogU3BlZWR1cCBTdGFuZGFyZCBPdXRwdXQgaWYgVGVzdHMKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTExOTExMzU0My5CRjdEN0RGRjlGQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBTdW4sIDE5IE5vdiAyMDE3IDExOjM1OjQzICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBUaWJvcjE3IGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2NwogIAogICAgRGlkIHlvdSB0ZXN0IGl0IHdpdGggVWJ1bnR1IFVURi04IGFuZCBvbiBXaW5kb3dzIHdpdGggZW5jb2RpbmcgMTI1MiBhbmQgd2l0aCBzcGVjaWFsIGNoYXJhY3RlcnMgYW5kIHNvbWUgbGFuZ3VhZ2UgZGlhbGVjdHMgYXMgd2VsbD8KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDU0NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gTm92IDE5IDE1OjQ2OjQyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDU0NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA0Qjk0MDEwNUJFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMTkgTm92IDIwMTcgMTU6NDY6NDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3NzY2NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOSBOb3YgMjAxNyAxNTo0Njo0MSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzc1NzkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTkgTm92IDIwMTcgMTU6NDY6NDEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NzU2OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDE5IE5vdiAyMDE3IDE1OjQ2OjQxIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxOSBOb3YgMjAxNyAxNTo0Njo0MSArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCA2NUM4NEUwNDMzOyBTdW4sIDE5IE5vdiAyMDE3IDE1OjQ2OjQwICswMDAwIChVVEMpCkZyb206IGVvbGl2ZWxsaSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTY4LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNjgtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNjg6IFtTVVJFRklSRS0xNDI0XSBqYXZheC50cmFuc2FjdGlvbi5UcmFuc2FjdGlvbk1hbmEuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTExOTE1NDY0MC42NUM4NEUwNDMzQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBTdW4sIDE5IE5vdiAyMDE3IDE1OjQ2OjQwICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBlb2xpdmVsbGkgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY4CiAgCiAgICBObyBwcm9ibGVtLCB0aGUgY2hhbmdlIHdhcyBtaW5pbWFsLCBJIHdpbGwgc3RhcnQgZnJvbSBzY3JhdGNoCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1NDctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE5vdiAxOSAxOTozNDo0MCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1NDctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMkRGQkMxMDk1OAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDE5IE5vdiAyMDE3IDE5OjM0OjQwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDU0NjYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTkgTm92IDIwMTcgMTk6MzQ6MzQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ1Mzk0IGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IE5vdiAyMDE3IDE5OjM0OjM0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDUzODIgaW52b2tlZCBieSB1aWQgOTkpOyAxOSBOb3YgMjAxNyAxOTozNDozNCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTkgTm92IDIwMTcgMTk6MzQ6MzQgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgODQ1OTJERkFFMzsgU3VuLCAxOSBOb3YgMjAxNyAxOTozNDozNCArMDAwMCAoVVRDKQpGcm9tOiBhc2ZnaXQgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTEzNi1tYXZlbkBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTM2LW1hdmVuQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbiBwdWxsIHJlcXVlc3QgIzEzNjogW01ORy02MzAyXSBsb2dnaW5nIHRoZSBtb2R1bGUgY291bnQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTExOTE5MzQzNC44NDU5MkRGQUUzQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBTdW4sIDE5IE5vdiAyMDE3IDE5OjM0OjM0ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBhc2ZnaXQgY2xvc2VkIHRoZSBwdWxsIHJlcXVlc3QgYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9wdWxsLzEzNgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NTUyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBOb3YgMjAgMDg6MDQ6MzkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTUyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEYyQkFBMTc4QzIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAyMCBOb3YgMjAxNyAwODowNDozOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ3MTExIGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIE5vdiAyMDE3IDA4OjA0OjM4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0Njg3MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBOb3YgMjAxNyAwODowNDozOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ2ODYwIGludm9rZWQgYnkgdWlkIDk5KTsgMjAgTm92IDIwMTcgMDg6MDQ6MzggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDIwIE5vdiAyMDE3IDA4OjA0OjM4ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIERDMEJEREZGMTc7IE1vbiwgMjAgTm92IDIwMTcgMDg6MDQ6MzcgKzAwMDAgKFVUQykKRnJvbTogZGlwYWstcGF3YXIgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE2OS1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTY5LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBpc3N1ZSAjMTY5OiBbU1VSRUZJUkUtMTQwNV0gQWxsb3dzIHVzZXIgdG8gZXh0ZW5kIFJ1bk9yZGVyICYgLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzExMjAwODA0MzcuREMwQkRERkYxN0BnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogTW9uLCAyMCBOb3YgMjAxNyAwODowNDozNyArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgZGlwYWstcGF3YXIgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY5CiAgCiAgICBTdXJlLCB3ZSB3aWxsIGJlIGhhcHB5IHRvIG1vdmUgaXQgZm9yd2FyZC4gUGxlYXNlIGtlZXAgdGhpcyBQUiBvcGVuIGFuZCBsZXQgdXMga25vdyBieSBjb21tZW50aW5nIGhlcmUgd2hlbiBpdCB3aWxsIG1ha2Ugc2Vuc2UgdG8gcmVzdW1lIHRoZSBlZmZvcnQuIEkgcmVhbGx5IGhvcGUgd2UgY2FuIG1ha2UgaXQgdXBzdHJlYW0uIAoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NTYyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBOb3YgMjEgMjA6MTA6NDAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTYyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEEyQ0REMTBDQjAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAyMSBOb3YgMjAxNyAyMDoxMDo0MCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ2NTIxIGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIE5vdiAyMDE3IDIwOjEwOjQwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0NjQ0MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBOb3YgMjAxNyAyMDoxMDo0MCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ2NDMwIGludm9rZWQgYnkgdWlkIDk5KTsgMjEgTm92IDIwMTcgMjA6MTA6NDAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDIxIE5vdiAyMDE3IDIwOjEwOjQwICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIEUyMUE2REZDRkM7IFR1ZSwgMjEgTm92IDIwMTcgMjA6MTA6MzkgKzAwMDAgKFVUQykKRnJvbTogY2xheWNlcGhhcyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTcwLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNzAtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNzA6IFtTVVJFRklSRS0xNDQ4XSBDbGFyaWZpZWQgc3BlY2lmeWluZyBtdWx0aXBsZSBjYXQuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTEyMTIwMTAzOS5FMjFBNkRGQ0ZDQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBUdWUsIDIxIE5vdiAyMDE3IDIwOjEwOjM5ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBjbGF5Y2VwaGFzIGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE3MAogIAogICAgQFRpYm9yMTcgZG9uZQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NTY3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBOb3YgMjMgMDM6NDY6MDMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTY3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEE3Rjg3MTc3NkYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAyMyBOb3YgMjAxNyAwMzo0NjowMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDkyNzI2IGludm9rZWQgYnkgdWlkIDUwMCk7IDIzIE5vdiAyMDE3IDAzOjQ2OjAzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MjE3NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMyBOb3YgMjAxNyAwMzo0NjowMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkyMTY1IGludm9rZWQgYnkgdWlkIDk5KTsgMjMgTm92IDIwMTcgMDM6NDY6MDIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDIzIE5vdiAyMDE3IDAzOjQ2OjAyICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDc2RDkwREZCODY7IFRodSwgMjMgTm92IDIwMTcgMDM6NDY6MDEgKzAwMDAgKFVUQykKRnJvbTogVGlib3IxNyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTY4LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNjgtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNjg6IFtTVVJFRklSRS0xNDI0XSBqYXZheC50cmFuc2FjdGlvbi5UcmFuc2FjdGlvbk1hbmEuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTEyMzAzNDYwMS43NkQ5MERGQjg2QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBUaHUsIDIzIE5vdiAyMDE3IDAzOjQ2OjAxICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBUaWJvcjE3IGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2OAogIAogICAgQGVvbGl2ZWxsaSAKICAgIEkgaGF2ZSBmaW5pc2hlZCBteSBjaGFuZ2VzIGluIG1hc3Rlci4gQ2FuIHlvdSBjb250aW51ZT8KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDU2OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgTm92IDIzIDA0OjA1OjMzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDU2OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA2OTA5NjE3OERCCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjMgTm92IDIwMTcgMDQ6MDU6MzMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyMzQwMCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMyBOb3YgMjAxNyAwNDowNTozMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjMyODEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjMgTm92IDIwMTcgMDQ6MDU6MzIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMzI0OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDIzIE5vdiAyMDE3IDA0OjA1OjMyIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyMyBOb3YgMjAxNyAwNDowNTozMiArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCAxQzQxQ0RGQjdEOyBUaHUsIDIzIE5vdiAyMDE3IDA0OjA1OjMyICswMDAwIChVVEMpCkZyb206IG9sYW15IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci01Ni1tYXZlbi1zY21AZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTU2LW1hdmVuLXNjbUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc2NtIGlzc3VlICM1NjogW1NDTS03MzldIFVzZSBzaGFsbG93IGNsb25lcyB3aGVuIGNsb25pbmcgYSBnaXQgcmVwbwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMTIzMDQwNTMyLjFDNDFDREZCN0RAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFRodSwgMjMgTm92IDIwMTcgMDQ6MDU6MzIgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIG9sYW15IGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zY20vcHVsbC81NgogIAogICAgR29vZCBpZGVhISEgYnV0IHRoZSBjaGFuZ2UgaXMgbm90IGJhY2t3YXJkIGNvbXBhdCBzbyBJTUhPIHdlIG5lZWQgc29tZXRoaW5nIGNvbmZpZ3VyYWJsZS4gCiAgICBEZWZhdWx0IGNsb25lIG11c3QgYSBjb21wbGV0ZSBwZXIgZGVmYXVsdCBhbmQgd2UgY2FuIGFkZCBhIG5ldyBwYXJhbWV0ZXIgZm9yIHRoaXMgKHJlbGVhc2UgcGx1Z2luIG11c3QgYmUgY2hhbmdlZCB0byB1c2UgdGhlIG5ldyBwYXJhbWV0ZXIpCiAgICBXRFlUPwoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NTY5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBOb3YgMjMgMDQ6MjA6MjcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTY5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDJCMUJFMTc5NTkKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAyMyBOb3YgMjAxNyAwNDoyMDoyNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ0OTE2IGludm9rZWQgYnkgdWlkIDUwMCk7IDIzIE5vdiAyMDE3IDA0OjIwOjI2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0NDQ5NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMyBOb3YgMjAxNyAwNDoyMDoyNiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ0NDgzIGludm9rZWQgYnkgdWlkIDk5KTsgMjMgTm92IDIwMTcgMDQ6MjA6MjYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDIzIE5vdiAyMDE3IDA0OjIwOjI2ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDFBRDY3REZCN0Q7IFRodSwgMjMgTm92IDIwMTcgMDQ6MjA6MjYgKzAwMDAgKFVUQykKRnJvbTogVGlib3IxNyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTcwLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNzAtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNzA6IFtTVVJFRklSRS0xNDQ4XSBDbGFyaWZpZWQgc3BlY2lmeWluZyBtdWx0aXBsZSBjYXQuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTEyMzA0MjAyNi4xQUQ2N0RGQjdEQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBUaHUsIDIzIE5vdiAyMDE3IDA0OjIwOjI2ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBUaWJvcjE3IGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE3MAogIAogICAgU29ycnksIEkgbWVhbiB0aGUgY29tbWl0IG1lc3NhZ2UuIFdlIGhhdmUgb25lIHN0YW5kYXJkIG9mIG5hbWluZyBjb252ZW50aW9ucyBpbiBnaXQgaGlzdG9yeS4KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDU3MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgTm92IDIzIDA0OjIwOjU1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDU3MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3NzQzNDE3OTVFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjMgTm92IDIwMTcgMDQ6MjA6NTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0Njg2OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMyBOb3YgMjAxNyAwNDoyMDo1NSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDY3NjkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjMgTm92IDIwMTcgMDQ6MjA6NTUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0Njc1OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDIzIE5vdiAyMDE3IDA0OjIwOjU0IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyMyBOb3YgMjAxNyAwNDoyMDo1NCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEVENUJFMTgwMzUyCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyMyBOb3YgMjAxNyAwNDoyMDo1MyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDEKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgZktwY1RqeFZIU3o1IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVGh1LCAyMyBOb3YgMjAxNyAwNDoyMDo1MiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBkZDE3MzMyLmthc3NlcnZlci5jb20gKGRkMTczMzIua2Fzc2VydmVyLmNvbSBbODUuMTMuMTM4LjI2XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDVEOUE5NUYzREUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDIzIE5vdiAyMDE3IDA0OjIwOjUyICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGRkMTczMzIua2Fzc2VydmVyLmNvbSAoZGQwODAzLmthc3NlcnZlci5jb20gWzg1LjEzLjE0Ni4zNF0pCglieSBkZDE3MzMyLmthc3NlcnZlci5jb20gKFBvc3RmaXgpIHdpdGggRVNNVFBTQSBpZCA5QzgyODI5QzAzRDQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDIzIE5vdiAyMDE3IDA1OjIwOjQ1ICswMTAwIChDRVQpCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKWC1TZW5kZXJJUDogMTk2LjUyLjYwLjc3ClVzZXItQWdlbnQ6IEFMTC1JTktMIFdlYm1haWwgMi4xMQpJbi1SZXBseS1UbzogPDQxZWNlMzI3LTBhNzYtOTQwZS05ZGZiLTZjMzNiYzYyMTQ1NEBhcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8MjAxNzExMDkwNTM1NTEuOTU3RDQyOUM1MEQxQGRkMTczMzIua2Fzc2VydmVyLmNvbT4gPDE2NjcxOTUudDdIZzJPTTliZUBnaWdhPiA8ODVjNTQ2MzgtZDgyNS02YzFjLWE1MDQtMTM4OGY4Yzc3N2M5QGFwYWNoZS5vcmc+IDw3OTE2ODc4LnlMbU1jY0R5UzdAZ2lnYT48NDFlY2UzMjctMGE3Ni05NDBlLTlkZmItNmMzM2JjNjIxNDU0QGFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBNYXZlbiByZXNvbHZlciBicmFuY2ggY29uc29saWRhdGlvbgpGcm9tOiAiTWFuZnJlZCBNb3NlciIgPG1hbmZyZWRAc2ltcGxpZ2lsaXR5LmNvbT4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSWQ6IDwyMDE3MTEyMzA0MjA0NS45QzgyODI5QzAzRDRAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPgpEYXRlOiBUaHUsIDIzIE5vdiAyMDE3IDA1OjIwOjQ1ICswMTAwIChDRVQpCgpTdGF0dXMgdXBkYXRlIGFuZCBxdWVzdGlvbnM6CgotIGRlbW9zIGFyZSBhbGwgbm93IGluIG1hc3RlciBhbmQgcGFydCBvZiB0aGUgbXVsdGkgbW9kdWxlIGJ1aWxkCi0gbm8gY2hhbmdlcyBvbiB0aGUgYW50IHRhc2tzIGZvciBub3cKClF1ZXN0aW9uczoKCjEuIENhbiBJIGRlbGV0ZSB0aGUgZGVtb3MgYnJhbmNoIG5vdyBvciBkbyB3ZSB3YWl0IHVudGlsIG5leHQgcmVsZWFzZT8gSSB3b3VsZCBwcmVmZXIgdG8gZGVsZXRlIHRoZSBicmFuY2ggYW5kIGNsb3NlIHRoZSB0aWNrZXQgdG8gYmUgaG9uZXN0LiAKCjIuIEkgbGlrZSB0aGUgaWRlYSBvZiBwcm9tb3RpbmcgdGhlIGFudCB0YXNrIGZyb20gYmVpbmcgaGlkZGVuIGluIHRoZSBicmFuY2ggaW50byB0aGVpciBvd24gcmVwby4gQWxsIHdlIHdvdWxkIGhhdmUgdG8gZG8gaXMgdG8gY29weSB0aGUgZXhpc3RpbmcgcmVwbyBzb21laG93IGludG8gYSBuZXcgcmVwbyBpbiBhcGFjaGUgZ2l0LiBUaGVuIHdlIGNhbiBkRGVsZXRlIGFsbCB0aGUgYnJhbmNoZXMgYXBhcnQgZnJvbSB0aGUgYW50LXRhc2sgYnJhbmNoIGFuZCBtYWtlIHRoYXQgdGhlIG1hc3Rlci4gRG9uZS4gSSBhbSBoYXBweSB0byBkbyB0aGF0IGluIHRlcm1zIG9mIHRoZSBicmFuY2hlcyBhbmQgc28gb24gYnV0IGhvdyBkbyBJIGdvIGFib3V0IGdldHRpbmcgdGhlIHJlcG8gY29waWVkIGludG8gYSBuZXcgcmVwbyBuYW1lZCBtYXZlbi1yZXNvbHZlci1hbnQtdGFza3M/IAoKVGhhbmtzCgpNYW5mcmVkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1NzEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE5vdiAyMyAwNjoyMjozOSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1NzEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgN0RDMTExN0I5MgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDIzIE5vdiAyMDE3IDA2OjIyOjM5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODE5MDQgaW52b2tlZCBieSB1aWQgNTAwKTsgMjMgTm92IDIwMTcgMDY6MjI6MzkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgxNzI0IGludm9rZWQgYnkgdWlkIDUwMCk7IDIzIE5vdiAyMDE3IDA2OjIyOjM4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODE3MTIgaW52b2tlZCBieSB1aWQgOTkpOyAyMyBOb3YgMjAxNyAwNjoyMjozOCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMjMgTm92IDIwMTcgMDY6MjI6MzggKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgMjNDQ0JFMDc3OTsgVGh1LCAyMyBOb3YgMjAxNyAwNjoyMjozOCArMDAwMCAoVVRDKQpGcm9tOiBlb2xpdmVsbGkgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE2OC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTY4LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBpc3N1ZSAjMTY4OiBbU1VSRUZJUkUtMTQyNF0gamF2YXgudHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25NYW5hLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzExMjMwNjIyMzguMjNDQ0JFMDc3OUBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogVGh1LCAyMyBOb3YgMjAxNyAwNjoyMjozOCArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgZW9saXZlbGxpIGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2OAogIAogICAgT2sgd2lsbCBkbyBhc2FwCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1NzUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE5vdiAyMyAxMzo1ODoyNyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1NzUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNDgzMEMxMEJEOQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDIzIE5vdiAyMDE3IDEzOjU4OjI3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjQ3MzAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjMgTm92IDIwMTcgMTM6NTg6MjYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI0NjQ5IGludm9rZWQgYnkgdWlkIDUwMCk7IDIzIE5vdiAyMDE3IDEzOjU4OjI2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjQ2MzcgaW52b2tlZCBieSB1aWQgOTkpOyAyMyBOb3YgMjAxNyAxMzo1ODoyNiAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMjMgTm92IDIwMTcgMTM6NTg6MjYgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNkRERThFMDc3OTsgVGh1LCAyMyBOb3YgMjAxNyAxMzo1ODoyNiArMDAwMCAoVVRDKQpGcm9tOiB6bmVyZCA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItNTYtbWF2ZW4tc2NtQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci01Ni1tYXZlbi1zY21AZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXNjbSBpc3N1ZSAjNTY6IFtTQ00tNzM5XSBVc2Ugc2hhbGxvdyBjbG9uZXMgd2hlbiBjbG9uaW5nIGEgZ2l0IHJlcG8KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTEyMzEzNTgyNi42RERFOEUwNzc5QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBUaHUsIDIzIE5vdiAyMDE3IDEzOjU4OjI2ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciB6bmVyZCBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc2NtL3B1bGwvNTYKICAKICAgIEBvbGFteSBHb29kIHBvaW50LgogICAgCiAgICBTdWdnZXN0ZWQgYXBwcm9hY2g6CiAgICAxLiBJbnRyb2R1Y2UgYSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciBub3csIGUuZy4gYHNoYWxsb3dgIOKAk8KgYW5kIGRlZmF1bHQgdG8gYGZhbHNlYC4gVGhpcyBtYXkgbm90IHJlcXVpcmUgYSBtYWpvciB2ZXJzaW9uIGJ1bXAuCiAgICAyLiBPbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2Ugb2YgdGhlIHBsdWdpbiwgZGVmYXVsdCB0byBgdHJ1ZWAg4oCTIGFuZCBkb2N1bWVudCB0aGlzIGluIHRoZSByZWxlYXNlIG5vdGVzLgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NTc2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBOb3YgMjMgMTY6MDM6MDQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTc2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEI0M0VBMTczREMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAyMyBOb3YgMjAxNyAxNjowMzowNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDkwNjE1IGludm9rZWQgYnkgdWlkIDUwMCk7IDIzIE5vdiAyMDE3IDE2OjAyOjU5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MDUyMCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMyBOb3YgMjAxNyAxNjowMjo1OSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkwNTAxIGludm9rZWQgYnkgdWlkIDk5KTsgMjMgTm92IDIwMTcgMTY6MDI6NTkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDIzIE5vdiAyMDE3IDE2OjAyOjU5ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDA0QzYwRTA0RjE7IFRodSwgMjMgTm92IDIwMTcgMTY6MDI6NTkgKzAwMDAgKFVUQykKRnJvbTogZW9saXZlbGxpIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNjgtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE2OC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgcHVsbCByZXF1ZXN0ICMxNjg6IFtTVVJFRklSRS0xNDI0XSBqYXZheC50cmFuc2FjdGlvbi5UcmFuc2FjdC4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMTIzMTYwMjU5LjA0QzYwRTA0RjFAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFRodSwgMjMgTm92IDIwMTcgMTY6MDI6NTkgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIGVvbGl2ZWxsaSBjb21tZW50ZWQgb24gYSBkaWZmIGluIHRoZSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2OCNkaXNjdXNzaW9uX3IxNTI4MzUyMzMKICAKICAgIC0tLSBEaWZmOiBzdXJlZmlyZS1pbnRlZ3JhdGlvbi10ZXN0cy9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vc3VyZWZpcmUvaXRzL0phdmE5RnVsbEFwaUlULmphdmEgLS0tCiAgICBAQCAtNzgsMTIgKzgzLDEzIEBAIHB1YmxpYyB2b2lkIHNob3VsZExvYWRNdWx0aXBsZUphdmFNb2R1bGVzX1Rvb2xjaGFpbnNYTUwoKSB0aHJvd3MgSU9FeGNlcHRpb24KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5hZGRHb2FsKCAiLS10b29sY2hhaW5zIiApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuYWRkR29hbCggU3lzdGVtLmdldFByb3BlcnR5KCAibWF2ZW4udG9vbGNoYWlucy5maWxlIiApICkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5leGVjdXRlKCAidmVyaWZ5IiApCiAgICAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmVyaWZ5RXJyb3JGcmVlKCAyICk7CiAgICArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudmVyaWZ5RXJyb3JGcmVlKCAxICk7CiAgICAtLS0gRW5kIGRpZmYgLS0KICAgIAogICAgQFRpYm9yMTcgZG8geW91IHRoaW5rIGl0IGhhcyBzb21lIHZhbHVlIHRvIGhhdmUgYW4gSVQgZm9yIGNvcmJhID8gSSB0aGluayB0aGF0IHRoZSBnaXZlbiBvbmUgaXMgYWxyZWFkeSBhIGdvb2QgcHJvb2YsIGl0IHRlc3RzIG90aGVyIG1vcmUgaW1wb3J0YW50IG1vZHVsZXMuCiAgICBUZWxsIG1lLCBpZiB5b3Ugd2FudCBJIHdpbGwgY2xvbmUgdGhpcyBJVCB0ZXN0IG9ubHkgb2YgY29yYmEKCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDU3Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgTm92IDIzIDE2OjA0OjMxIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDU3Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBGMTk3NDE3M0VECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjMgTm92IDIwMTcgMTY6MDQ6MzAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5Mzc5NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMyBOb3YgMjAxNyAxNjowNDozMCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTM2OTkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjMgTm92IDIwMTcgMTY6MDQ6MzAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MzY4OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDIzIE5vdiAyMDE3IDE2OjA0OjMwIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyMyBOb3YgMjAxNyAxNjowNDozMCArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCAzM0NGQkUwNEYxOyBUaHUsIDIzIE5vdiAyMDE3IDE2OjA0OjMwICswMDAwIChVVEMpCkZyb206IGVvbGl2ZWxsaSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTY4LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNjgtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNjg6IFtTVVJFRklSRS0xNDI0XSBqYXZheC50cmFuc2FjdGlvbi5UcmFuc2FjdGlvbk1hbmEuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTEyMzE2MDQzMC4zM0NGQkUwNEYxQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBUaHUsIDIzIE5vdiAyMDE3IDE2OjA0OjMwICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBlb2xpdmVsbGkgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY4CiAgCiAgICBAVGlib3IxNyAgSSBoYXZlIHJld3JpdHRlbiB0aGUgcGF0Y2ggYW5kIGFkZHJlc3MgeW91ciBjb21tZW50IG9mIG5vdCBhbHRlcmluZyB0aGUgZG9jcy4KICAgIFRlbGwgbWUgdGhlIG5leHQgc3RlcCBpbiB5b3VyIHZpc2lvbiwgSSB3aWxsIGJlIGhhcHB5IHRvIG1vdmUgZm9yd2FyZCBhbmQgZmluaXNoIHRoaXMgaW1wb3J0YW50IHRhc2sKCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDU3OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgTm92IDIzIDE2OjEzOjQ5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDU3OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyNDIxQjE3NDI1Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjMgTm92IDIwMTcgMTY6MTM6NDkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5MjAxIGludm9rZWQgYnkgdWlkIDUwMCk7IDIzIE5vdiAyMDE3IDE2OjEzOjQ4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MTIyIGludm9rZWQgYnkgdWlkIDUwMCk7IDIzIE5vdiAyMDE3IDE2OjEzOjQ4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTExMSBpbnZva2VkIGJ5IHVpZCA5OSk7IDIzIE5vdiAyMDE3IDE2OjEzOjQ4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyMyBOb3YgMjAxNyAxNjoxMzo0OCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEM2MUFDMUEwQzcwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyMyBOb3YgMjAxNyAxNjoxMzo0NyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDEKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCA3UHNMTXlIS3A4VWggZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsIDIzIE5vdiAyMDE3IDE2OjEzOjQ2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGRkMTczMzIua2Fzc2VydmVyLmNvbSAoZGQxNzMzMi5rYXNzZXJ2ZXIuY29tIFs4NS4xMy4xMzguMjZdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQkU3NUM1RkI4RAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjMgTm92IDIwMTcgMTY6MTM6NDUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZGQxNzMzMi5rYXNzZXJ2ZXIuY29tIChkZDA4MDIua2Fzc2VydmVyLmNvbSBbODUuMTMuMTQzLjFdKQoJYnkgZGQxNzMzMi5rYXNzZXJ2ZXIuY29tIChQb3N0Zml4KSB3aXRoIEVTTVRQU0EgaWQgNUNBMTgyOUMwNkY3Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyMyBOb3YgMjAxNyAxNzoxMzo0NSArMDEwMCAoQ0VUKQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0ClgtU2VuZGVySVA6IDk2LjU0LjIzNy4xClVzZXItQWdlbnQ6IEFMTC1JTktMIFdlYm1haWwgMi4xMQpJbi1SZXBseS1UbzogPENBK25Qbk16TGR0RTYxQ1hjK3ZPNTh4dG49amJWUkJYVUZSalNLUk1aeEN2S0dOQi16d0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPDIwMTcxMTA5MDUzNTUxLjk1N0Q0MjlDNTBEMUBkZDE3MzMyLmthc3NlcnZlci5jb20+IDwxNjY3MTk1LnQ3SGcyT005YmVAZ2lnYT4gPDg1YzU0NjM4LWQ4MjUtNmMxYy1hNTA0LTEzODhmOGM3NzdjOUBhcGFjaGUub3JnPiA8NzkxNjg3OC55TG1NY2NEeVM3QGdpZ2E+IDw0MWVjZTMyNy0wYTc2LTk0MGUtOWRmYi02YzMzYmM2MjE0NTRAYXBhY2hlLm9yZz4gPDIwMTcxMTIzMDQyMDQ1LjlDODI4MjlDMDNENEBkZDE3MzMyLmthc3NlcnZlci5jb20+PENBK25Qbk16TGR0RTYxQ1hjK3ZPNTh4dG49amJWUkJYVUZSalNLUk1aeEN2S0dOQi16d0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IE1hdmVuIHJlc29sdmVyIGJyYW5jaCBjb25zb2xpZGF0aW9uCkZyb206ICJNYW5mcmVkIE1vc2VyIiA8bWFuZnJlZEBzaW1wbGlnaWxpdHkuY29tPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JZDogPDIwMTcxMTIzMTYxMzQ1LjVDQTE4MjlDMDZGN0BkZDE3MzMyLmthc3NlcnZlci5jb20+CkRhdGU6IFRodSwgMjMgTm92IDIwMTcgMTc6MTM6NDUgKzAxMDAgKENFVCkKClNvIGhvdyBkbyBJIG1ha2UgdGhpcyByZXBvIGNvcHkgaGFwcGVuPyBBbiBpbmZyYSB0aWNrZXQgb3Igc29tZXRoaW5nIGxpa2UgdGhhdD8gCgpTdGVwaGVuIENvbm5vbGx5IHdyb3RlIG9uIDIwMTctMTEtMjIgMjM6NTM6Cgo+IE9uIFRodSAyMyBOb3YgMjAxNyBhdCAwNDoyMCwgTWFuZnJlZCBNb3NlciA8bWFuZnJlZEBzaW1wbGlnaWxpdHkuY29tPiB3cm90ZToKPiAKPj4gU3RhdHVzIHVwZGF0ZSBhbmQgcXVlc3Rpb25zOgo+Pgo+PiAtIGRlbW9zIGFyZSBhbGwgbm93IGluIG1hc3RlciBhbmQgcGFydCBvZiB0aGUgbXVsdGkgbW9kdWxlIGJ1aWxkCj4+IC0gbm8gY2hhbmdlcyBvbiB0aGUgYW50IHRhc2tzIGZvciBub3cKPj4KPj4gUXVlc3Rpb25zOgo+Pgo+PiAxLiBDYW4gSSBkZWxldGUgdGhlIGRlbW9zIGJyYW5jaCBub3cgb3IgZG8gd2Ugd2FpdCB1bnRpbCBuZXh0IHJlbGVhc2U/IEkKPj4gd291bGQgcHJlZmVyIHRvIGRlbGV0ZSB0aGUgYnJhbmNoIGFuZCBjbG9zZSB0aGUgdGlja2V0IHRvIGJlIGhvbmVzdC4KPj4KPj4gMi4gSSBsaWtlIHRoZSBpZGVhIG9mIHByb21vdGluZyB0aGUgYW50IHRhc2sgZnJvbSBiZWluZyBoaWRkZW4gaW4gdGhlCj4+IGJyYW5jaCBpbnRvIHRoZWlyIG93biByZXBvLiBBbGwgd2Ugd291bGQgaGF2ZSB0byBkbyBpcyB0byBjb3B5IHRoZSBleGlzdGluZwo+PiByZXBvIHNvbWVob3cgaW50byBhIG5ldyByZXBvIGluIGFwYWNoZSBnaXQuIFRoZW4gd2UgY2FuIGREZWxldGUgYWxsIHRoZQo+PiBicmFuY2hlcyBhcGFydCBmcm9tIHRoZSBhbnQtdGFzayBicmFuY2ggYW5kIG1ha2UgdGhhdCB0aGUgbWFzdGVyLiBEb25lLiBJCj4+IGFtIGhhcHB5IHRvIGRvIHRoYXQgaW4gdGVybXMgb2YgdGhlIGJyYW5jaGVzIGFuZCBzbyBvbiBidXQgaG93IGRvIEkgZ28KPj4gYWJvdXQgZ2V0dGluZyB0aGUgcmVwbyBjb3BpZWQgaW50byBhIG5ldyByZXBvIG5hbWVkCj4+IG1hdmVuLXJlc29sdmVyLWFudC10YXNrcz8KPiAKPiAKPiBJIGxpa2UgdGhhdCBzb2x1dGlvbiB0b28KPiAKPj4KPj4KPj4gVGhhbmtzCj4+Cj4+IE1hbmZyZWQKPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KPj4gLS0KPiBTZW50IGZyb20gbXkgcGhvbmUKPiAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1ODMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE5vdiAyMyAyMjoyMToxMiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1ODMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMDZCMDMxN0FGMgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDIzIE5vdiAyMDE3IDIyOjIxOjEyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTA3ODUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjMgTm92IDIwMTcgMjI6MjE6MDYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDEwNzAyIGludm9rZWQgYnkgdWlkIDUwMCk7IDIzIE5vdiAyMDE3IDIyOjIxOjA2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTA2OTEgaW52b2tlZCBieSB1aWQgOTkpOyAyMyBOb3YgMjAxNyAyMjoyMTowNiAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMjMgTm92IDIwMTcgMjI6MjE6MDYgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgRjNEQzNERkRFMjsgVGh1LCAyMyBOb3YgMjAxNyAyMjoyMTowNSArMDAwMCAoVVRDKQpGcm9tOiBjc3RhbWFzIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xOS1tYXZlbi1pbmRleGVyQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xOS1tYXZlbi1pbmRleGVyQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1pbmRleGVyIGlzc3VlICMxOTogTWlncmF0ZSB0byBMdWNlbmUgNwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMTIzMjIyMTA1LkYzREMzREZERTJAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFRodSwgMjMgTm92IDIwMTcgMjI6MjE6MDUgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIGNzdGFtYXMgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWluZGV4ZXIvcHVsbC8xOQogIAogICAgQHNjZWxhIAogICAgCiAgICBXaXRoIHRoaXMgUFIgYWdhaW5zdCBjdXJyZW50IG1hc3RlciBJIGhhdmUgdGhpcyByZXN1bHQ6CiAgICAKICAgIGBgYAogICAgVGVzdHMgcnVuOiAyMjAsIEZhaWx1cmVzOiAzLCBFcnJvcnM6IDE5OSwgU2tpcHBlZDogMAogICAgCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFJlYWN0b3IgU3VtbWFyeToKICAgIAogICAgTWF2ZW4tSW5kZXhlciAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiBTVUNDRVNTIFsgIDMuODUwIHNdCiAgICBNYXZlbiA6OiBJbmRleGVyIENvcmUgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIEZBSUxVUkUgWyAxNS4yMzYgc10KICAgIE1hdmVuIDo6IEluZGV4ZXIgQ0xJIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gU0tJUFBFRAogICAgTWF2ZW4gOjogSW5kZXhlciBSZWFkZXIgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiBTS0lQUEVECiAgICBNYXZlbiA6OiBJbmRleGVyIEV4YW1wbGVzIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIFNLSVBQRUQKICAgIE1hdmVuIDo6IEluZGV4ZXIgRXhhbXBsZXMgW0Jhc2ljXSAuLi4uLi4uLi4uLi4uLi4uLi4gU0tJUFBFRAogICAgTWF2ZW4gOjogSW5kZXhlciBFeGFtcGxlcyBbU3ByaW5nXSAuLi4uLi4uLi4uLi4uLi4uLiBTS0lQUEVECiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIEJVSUxEIEZBSUxVUkUKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgYGBgCiAgICAKICAgIEZvciBleGFtcGxlLCB0aGVyZSBpcyBhIG5lZ2F0aW9uIG1pc3NlZCBoZXJlOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWluZGV4ZXIvcHVsbC8xOS9maWxlcyNkaWZmLTg5ZGRhMjdhNTZiNDk5ZmYzNGFhMWRkOTJkYWFkY2NhTDEwNAogICAgCiAgICBEaWQgeW91IHJ1biB0aGlzIGxvY2FsbHk/CgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1ODktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE5vdiAyNCAxMjoxNzo1OCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1ODktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgREJBMzUxMEIwNgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDI0IE5vdiAyMDE3IDEyOjE3OjU3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTAwMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNCBOb3YgMjAxNyAxMjoxNzo1NyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODkyNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNCBOb3YgMjAxNyAxMjoxNzo1NyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg5MTMgaW52b2tlZCBieSB1aWQgOTkpOyAyNCBOb3YgMjAxNyAxMjoxNzo1NyAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMjQgTm92IDIwMTcgMTI6MTc6NTcgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgMTEwQkNERkNGNTsgRnJpLCAyNCBOb3YgMjAxNyAxMjoxNzo1NyArMDAwMCAoVVRDKQpGcm9tOiBhc2ZnaXQgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTIyLW1hdmVuLWluZGV4ZXJAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTIyLW1hdmVuLWluZGV4ZXJAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLWluZGV4ZXIgcHVsbCByZXF1ZXN0ICMyMjogTUlOREVYRVItMTA4OiBMaWZ0IHRoZSB3aWxkY2FyZCBwcmVmaXggcmVzdHIuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTEyNDEyMTc1Ny4xMTBCQ0RGQ0Y1QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBGcmksIDI0IE5vdiAyMDE3IDEyOjE3OjU3ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBhc2ZnaXQgY2xvc2VkIHRoZSBwdWxsIHJlcXVlc3QgYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1pbmRleGVyL3B1bGwvMjIKCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDU5MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgTm92IDI0IDEyOjE5OjA4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDU5MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4MjI1RjEwQjE2Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMjQgTm92IDIwMTcgMTI6MTk6MDggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxMTk3MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNCBOb3YgMjAxNyAxMjoxOTowOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTE4ODkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjQgTm92IDIwMTcgMTI6MTk6MDggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMTg3OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI0IE5vdiAyMDE3IDEyOjE5OjA3IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAyNCBOb3YgMjAxNyAxMjoxOTowNyArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBCMThBM0RGQ0Y1OyBGcmksIDI0IE5vdiAyMDE3IDEyOjE5OjA3ICswMDAwIChVVEMpCkZyb206IGNzdGFtYXMgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTIxLW1hdmVuLWluZGV4ZXJAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTIxLW1hdmVuLWluZGV4ZXJAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLWluZGV4ZXIgaXNzdWUgIzIxOiBQcmVwYXJlIGZvciBuZXh0IG1ham9yIHJlbGVhc2UgKDYueCkKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTEyNDEyMTkwNy5CMThBM0RGQ0Y1QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBGcmksIDI0IE5vdiAyMDE3IDEyOjE5OjA3ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBjc3RhbWFzIGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1pbmRleGVyL3B1bGwvMjEKICAKICAgIE1hbnVhbGx5IG1lcmdlZCwgb25seSAxc3QgdHdvIGNvbW1pdHMgZnJvbSB0aGlzIFBSLCB3aGlsZSAzcmQgY29tbWl0IHB1bGxlZCBvdXQgYW5kIG1lcmdlZCBzZXBhcmF0ZWx5IChodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWluZGV4ZXIvY29tbWl0LzMzOWVlYzYwNTJhNzRmZWE5MWE5OWRhMmUzM2NiYmQ2YTk1YWVlM2YpIGFzIGl0IGlzIGFjdHVhbGx5IGRpZmZlcmVudCBKSVJBIGlzc3VlLCB0byBoYXZlIGNsZWFuIGhpc3RvcnkuCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1OTEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE5vdiAyNCAxMjoxOToxMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1OTEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNUZCQTMxMEIxRAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDI0IE5vdiAyMDE3IDEyOjE5OjExICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTI3NzggaW52b2tlZCBieSB1aWQgNTAwKTsgMjQgTm92IDIwMTcgMTI6MTk6MTEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDEyNjk4IGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IE5vdiAyMDE3IDEyOjE5OjExIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTI2ODYgaW52b2tlZCBieSB1aWQgOTkpOyAyNCBOb3YgMjAxNyAxMjoxOToxMCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMjQgTm92IDIwMTcgMTI6MTk6MTAgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgQTI2QjZERkNGNTsgRnJpLCAyNCBOb3YgMjAxNyAxMjoxOToxMCArMDAwMCAoVVRDKQpGcm9tOiBjc3RhbWFzIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0yMS1tYXZlbi1pbmRleGVyQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0yMS1tYXZlbi1pbmRleGVyQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1pbmRleGVyIHB1bGwgcmVxdWVzdCAjMjE6IFByZXBhcmUgZm9yIG5leHQgbWFqb3IgcmVsZWFzZSAoNi54KQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMTI0MTIxOTEwLkEyNkI2REZDRjVAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IEZyaSwgMjQgTm92IDIwMTcgMTI6MTk6MTAgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIGNzdGFtYXMgY2xvc2VkIHRoZSBwdWxsIHJlcXVlc3QgYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1pbmRleGVyL3B1bGwvMjEKCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDU5My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgTm92IDI0IDE5OjA0OjQ3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDU5My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA2M0JFNjEwNjZBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMjQgTm92IDIwMTcgMTk6MDQ6NDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5Mjk2NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNCBOb3YgMjAxNyAxOTowNDo0NyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTI4ODQgaW52b2tlZCBieSB1aWQgNTAwKTsgMjQgTm92IDIwMTcgMTk6MDQ6NDcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5Mjg3MyBpbnZva2VkIGJ5IHVpZCA5OSk7IDI0IE5vdiAyMDE3IDE5OjA0OjQ2IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAyNCBOb3YgMjAxNyAxOTowNDo0NiArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBBMEIxOURGQzI1OyBGcmksIDI0IE5vdiAyMDE3IDE5OjA0OjQ2ICswMDAwIChVVEMpCkZyb206IGFydGVhbSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItNTYtbWF2ZW4tc2NtQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci01Ni1tYXZlbi1zY21AZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXNjbSBpc3N1ZSAjNTY6IFtTQ00tNzM5XSBVc2Ugc2hhbGxvdyBjbG9uZXMgd2hlbiBjbG9uaW5nIGEgZ2l0IHJlcG8KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTEyNDE5MDQ0Ni5BMEIxOURGQzI1QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBGcmksIDI0IE5vdiAyMDE3IDE5OjA0OjQ2ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBhcnRlYW0gY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXNjbS9wdWxsLzU2CiAgCiAgICBJIGxpa2UgdGhlIHByb3Bvc2FsLCBidXQgSSBhbSBhIGEgbGl0dGxlIGJpdCBjb25mdXNlZC4gRG9lcyB0aGUgbmV3IHBhcmFtZXRlciBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIGBleGVjdXRlQ2hlY2tPdXRDb21tYW5kYCBtZXRob2QgKGxpa2UgYHJlY3Vyc2l2ZWApIGFuZCBiZSBpbXBsZW1lbnRlZCBieSB0aGUgYWxsIGBBYnN0cmFjdENoZWNrT3V0Q29tbWFuZGAgaW1wbGVtZW50YXRpb25zIG9yIHNob3VsZCBpdCBiZSBhIGZpZWxkIGluIGBHaXRDaGVja091dENvbW1hbmRgPwoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NTk1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBOb3YgMjQgMjI6NTY6MDkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTk1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDQ5QjY2MTA5ODgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAyNCBOb3YgMjAxNyAyMjo1NjowOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDgwOTgzIGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IE5vdiAyMDE3IDIyOjU2OjA4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MDkwNiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNCBOb3YgMjAxNyAyMjo1NjowOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgwODk1IGludm9rZWQgYnkgdWlkIDk5KTsgMjQgTm92IDIwMTcgMjI6NTY6MDggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDI0IE5vdiAyMDE3IDIyOjU2OjA4ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDg3NTg1REZCQzc7IEZyaSwgMjQgTm92IDIwMTcgMjI6NTY6MDggKzAwMDAgKFVUQykKRnJvbTogYXNmZ2l0IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xMzgtbWF2ZW5AZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTEzOC1tYXZlbkBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4gcHVsbCByZXF1ZXN0ICMxMzg6IE1ORy02MzA2IHJlbW92ZSBHdWF2YSB1c2FnZSBmcm9tIG1hdmVuLXJlc29sdmVyLXByby4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMTI0MjI1NjA4Ljg3NTg1REZCQzdAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IEZyaSwgMjQgTm92IDIwMTcgMjI6NTY6MDggKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIGFzZmdpdCBjbG9zZWQgdGhlIHB1bGwgcmVxdWVzdCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL3B1bGwvMTM4CgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ2MDUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAyNSAxOToyOTo0NCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ2MDUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQUQxREIxNzYxNQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDI1IE5vdiAyMDE3IDE5OjI5OjQ0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTgyNDkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgTm92IDIwMTcgMTk6Mjk6NDQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE4MTc2IGludm9rZWQgYnkgdWlkIDUwMCk7IDI1IE5vdiAyMDE3IDE5OjI5OjQ0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTgxNjQgaW52b2tlZCBieSB1aWQgOTkpOyAyNSBOb3YgMjAxNyAxOToyOTo0NCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMjUgTm92IDIwMTcgMTk6Mjk6NDQgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgRUM2Q0FERkZEOTsgU2F0LCAyNSBOb3YgMjAxNyAxOToyOTo0MyArMDAwMCAoVVRDKQpGcm9tOiBjc3RhbWFzIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0yMy1tYXZlbi1pbmRleGVyQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0yMy1tYXZlbi1pbmRleGVyQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1pbmRleGVyIHB1bGwgcmVxdWVzdCAjMjM6IEZ1bGwgY29kZWJhc2UgcmVmb3JtYXQsIG1pbm9yIGNsZWFudXAsIG5vIGNvLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzExMjUxOTI5NDMuRUM2Q0FERkZEOUBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogU2F0LCAyNSBOb3YgMjAxNyAxOToyOTo0MyArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgY3N0YW1hcyBjbG9zZWQgdGhlIHB1bGwgcmVxdWVzdCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWluZGV4ZXIvcHVsbC8yMwoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NjA2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgMjUgMTk6NDM6NDkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjA2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDUzNTEyMTc2NTQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAyNSBOb3YgMjAxNyAxOTo0Mzo0OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDMwNzk1IGludm9rZWQgYnkgdWlkIDUwMCk7IDI1IE5vdiAyMDE3IDE5OjQzOjQ5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMDcyMyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNSBOb3YgMjAxNyAxOTo0Mzo0OSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMwNzA5IGludm9rZWQgYnkgdWlkIDk5KTsgMjUgTm92IDIwMTcgMTk6NDM6NDggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDI1IE5vdiAyMDE3IDE5OjQzOjQ4ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIERCQzVEREZGRDk7IFNhdCwgMjUgTm92IDIwMTcgMTk6NDM6NDcgKzAwMDAgKFVUQykKRnJvbTogY3N0YW1hcyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMjMtbWF2ZW4taW5kZXhlckBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMjMtbWF2ZW4taW5kZXhlckBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4taW5kZXhlciBpc3N1ZSAjMjM6IEZ1bGwgY29kZWJhc2UgcmVmb3JtYXQsIG1pbm9yIGNsZWFudXAsIG5vIGNvZGUvbG9naS4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMTI1MTk0MzQ3LkRCQzVEREZGRDlAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFNhdCwgMjUgTm92IDIwMTcgMTk6NDM6NDcgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIGNzdGFtYXMgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWluZGV4ZXIvcHVsbC8yMwogIAogICAgTm90IG1lcmdlZCwgZ2F2ZSB1cC4KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDYwOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgTm92IDI1IDIxOjA3OjIzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDYwOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA0QzcxMTE3NzhCCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMjUgTm92IDIwMTcgMjE6MDc6MjMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5NDgyNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNSBOb3YgMjAxNyAyMTowNzoyMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTQ3NDkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgTm92IDIwMTcgMjE6MDc6MjIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NDczOCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI1IE5vdiAyMDE3IDIxOjA3OjIyIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAyNSBOb3YgMjAxNyAyMTowNzoyMiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEMzODNGQzIxQTUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDI1IE5vdiAyMDE3IDIxOjA3OjIxICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMgpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCUtCX1dBTV9GUk9NX05BTUVfU0lOR0xFV09SRD0wLjJdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgajhpYzY0MWlaQmlFIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAyNSBOb3YgMjAxNyAyMTowNzoxOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBkZDE3MzMyLmthc3NlcnZlci5jb20gKGRkMTczMzIua2Fzc2VydmVyLmNvbSBbODUuMTMuMTM4LjI2XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEM3OEE3NUYzOUYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDI1IE5vdiAyMDE3IDIxOjA3OjE4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGRkMTczMzIua2Fzc2VydmVyLmNvbSAoZGQwODAyLmthc3NlcnZlci5jb20gWzg1LjEzLjE0My4xXSkKCWJ5IGRkMTczMzIua2Fzc2VydmVyLmNvbSAoUG9zdGZpeCkgd2l0aCBFU01UUFNBIGlkIDhDQkNFMjlDMDI0OQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMjUgTm92IDIwMTcgMjI6MDc6MTIgKzAxMDAgKENFVCkKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTEKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdApYLVNlbmRlcklQOiA5Ni41NC4yMzcuMQpVc2VyLUFnZW50OiBBTEwtSU5LTCBXZWJtYWlsIDIuMTEKSW4tUmVwbHktVG86IDwzNzczMzgwLk5rTU85Ym80MnJAZ2lnYT4KUmVmZXJlbmNlczogPDIwMTcxMTA5MDUzNTUxLjk1N0Q0MjlDNTBEMUBkZDE3MzMyLmthc3NlcnZlci5jb20+IDwyMDE3MTEyMzE2MTM0NS41Q0ExODI5QzA2RjdAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPiA8Q0ErblBuTXlXWnFwNk5yX2hoRDNZN2FXb051VXZYWT1CTVFxWHFPOFd6ZFBjX3JzaTlRQG1haWwuZ21haWwuY29tPjwzNzczMzgwLk5rTU85Ym80MnJAZ2lnYT4KU3ViamVjdDogUmU6IE1hdmVuIHJlc29sdmVyIGJyYW5jaCBjb25zb2xpZGF0aW9uCkZyb206ICJNYW5mcmVkIE1vc2VyIiA8bWFuZnJlZEBzaW1wbGlnaWxpdHkuY29tPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JZDogPDIwMTcxMTI1MjEwNzEyLjhDQkNFMjlDMDI0OUBkZDE3MzMyLmthc3NlcnZlci5jb20+CkRhdGU6IFNhdCwgMjUgTm92IDIwMTcgMjI6MDc6MTIgKzAxMDAgKENFVCkKClNvIC4uIEkgdHJpZWQgdGhpcyBub3cuIFNlZW1zIGxpa2Ugc29tZXRoaW5nIG9uIGdpdGJveCBpcyBub3QgY29uZmlndXJlZCBjb3JyZWN0bHkgZm9yIG1lIGJlY2F1c2UgdGhlIFlvdXIgUE1DcyBkcm9wIGRvd24gY29udGFpbnMgbm8gZW50cmllcyBhcGFydCBmcm9tIFlvdXIgUE1Dcy4KCkNhbiBzb21lb25lIGVpdGhlciBmaXggdGhpcyBmb3IgbWUgb3IgY3JlYXRlIG1hdmVuLXJlc29sdmVyLWFudC10YXNrcyByZXBvc2l0b3J5PyBUaGVuIEkgY2FuIGRvIHRoZSByZXN0LgoKdGh4CgptYW5mcmVkCgpIZXJ26SBCT1VURU1ZIHdyb3RlIG9uIDIwMTctMTEtMjMgMTU6MDY6Cgo+IHllcywgdGhhdCdzIEdpdEJveCBzZWxmIHNlcnZpY2UgWzFdLCBlYXN5IHRvIHVzZSwganVzdDoKPiAxLiBzdGFydCBieSBjaG9vc2luZyB5b3VyIFBNQyBiZWZvcmUgZG9pbmcgYW55IG90aGVyIGNoYW5nZSAob3IgeW91IG1heSBjcmVhdGUgCj4gYSAibWF2ZW4tbWF2ZW4tc29tZXRoaW5nLmdpdCIgbGlrZSBJIGRpZCkKPiAyLiBjaGFuZ2UgIkdpdEh1YiBub3RpZmljYXRpb24gbGlzdCIgdG8gaXNzdWVzQG1hdmVuLmFwYWNoZS5vcmcKPiAKPiB0aGUgb25seSBpc3N1ZSBJIHNlZSBpcyB0aGUgbWl4IG9mIEFydGlmYWN0IFJlc29sdmVyIG9uIGdpdC13aXAgYW5kIEFydGlmYWN0IAo+IFJlc29sdmVyIEFudCBUYXNrcyBvbiBnaXRib3g6IGJ1dCBvbmUgZGF5LCBJTkZSQS0xNTQzNiB3aWxsIHByb2JhYmx5IGJlIGRvbmUKPiAKPiBSZWdhcmRzLAo+IAo+IEhlcnbpCj4gCj4gWzFdIGh0dHBzOi8vZ2l0Ym94LmFwYWNoZS5vcmcvCj4gCj4gTGUgamV1ZGkgMjMgbm92ZW1icmUgMjAxNywgMTk6Mjc6MDYgQ0VUIFN0ZXBoZW4gQ29ubm9sbHkgYSDpY3JpdCA6Cj4+IEhlcnbpIG1pZ2h0IGtub3cuLi4gY291bGQgYmUgc2VsZi1zZXJ2aWNlIG9uIGdpdGJveCEKPj4gCj4+IEkgaGF2ZSB0d28gcmVwb3MgdG8gY3JlYXRlIGFmdGVyIHRoZSBKZW5raW5zIFNlcnZlciBpcyB1cGdyYWRlZCBvbiBTdW5kYXksCj4+IHNvIGxldCBtZSBrbm93IHRoZSBwcm9jZXNzCj4+IAo+PiBPbiBUaHUgMjMgTm92IDIwMTcgYXQgMTY6MTMsIE1hbmZyZWQgTW9zZXIgPG1hbmZyZWRAc2ltcGxpZ2lsaXR5LmNvbT4gd3JvdGU6Cj4+ID4gU28gaG93IGRvIEkgbWFrZSB0aGlzIHJlcG8gY29weSBoYXBwZW4/IEFuIGluZnJhIHRpY2tldCBvciBzb21ldGhpbmcgbGlrZQo+PiA+IHRoYXQ/Cj4+ID4gCj4+ID4gU3RlcGhlbiBDb25ub2xseSB3cm90ZSBvbiAyMDE3LTExLTIyIDIzOjUzOgo+PiA+ID4gT24gVGh1IDIzIE5vdiAyMDE3IGF0IDA0OjIwLCBNYW5mcmVkIE1vc2VyIDxtYW5mcmVkQHNpbXBsaWdpbGl0eS5jb20+Cj4+ID4gCj4+ID4gd3JvdGU6Cj4+ID4gPj4gU3RhdHVzIHVwZGF0ZSBhbmQgcXVlc3Rpb25zOgo+PiA+ID4+IAo+PiA+ID4+IC0gZGVtb3MgYXJlIGFsbCBub3cgaW4gbWFzdGVyIGFuZCBwYXJ0IG9mIHRoZSBtdWx0aSBtb2R1bGUgYnVpbGQKPj4gPiA+PiAtIG5vIGNoYW5nZXMgb24gdGhlIGFudCB0YXNrcyBmb3Igbm93Cj4+ID4gPj4gCj4+ID4gPj4gUXVlc3Rpb25zOgo+PiA+ID4+IAo+PiA+ID4+IDEuIENhbiBJIGRlbGV0ZSB0aGUgZGVtb3MgYnJhbmNoIG5vdyBvciBkbyB3ZSB3YWl0IHVudGlsIG5leHQgcmVsZWFzZT8KPj4gPiA+PiBJCj4+ID4gPj4gd291bGQgcHJlZmVyIHRvIGRlbGV0ZSB0aGUgYnJhbmNoIGFuZCBjbG9zZSB0aGUgdGlja2V0IHRvIGJlIGhvbmVzdC4KPj4gPiA+PiAKPj4gPiA+PiAyLiBJIGxpa2UgdGhlIGlkZWEgb2YgcHJvbW90aW5nIHRoZSBhbnQgdGFzayBmcm9tIGJlaW5nIGhpZGRlbiBpbiB0aGUKPj4gPiA+PiBicmFuY2ggaW50byB0aGVpciBvd24gcmVwby4gQWxsIHdlIHdvdWxkIGhhdmUgdG8gZG8gaXMgdG8gY29weSB0aGUKPj4gPiAKPj4gPiBleGlzdGluZwo+PiA+IAo+PiA+ID4+IHJlcG8gc29tZWhvdyBpbnRvIGEgbmV3IHJlcG8gaW4gYXBhY2hlIGdpdC4gVGhlbiB3ZSBjYW4gZERlbGV0ZSBhbGwgdGhlCj4+ID4gPj4gYnJhbmNoZXMgYXBhcnQgZnJvbSB0aGUgYW50LXRhc2sgYnJhbmNoIGFuZCBtYWtlIHRoYXQgdGhlIG1hc3Rlci4gRG9uZS4KPj4gPiAKPj4gPiBJCj4+ID4gCj4+ID4gPj4gYW0gaGFwcHkgdG8gZG8gdGhhdCBpbiB0ZXJtcyBvZiB0aGUgYnJhbmNoZXMgYW5kIHNvIG9uIGJ1dCBob3cgZG8gSSBnbwo+PiA+ID4+IGFib3V0IGdldHRpbmcgdGhlIHJlcG8gY29waWVkIGludG8gYSBuZXcgcmVwbyBuYW1lZAo+PiA+ID4+IG1hdmVuLXJlc29sdmVyLWFudC10YXNrcz8KPj4gPiA+IAo+PiA+ID4gSSBsaWtlIHRoYXQgc29sdXRpb24gdG9vCj4+ID4gPiAKPj4gPiA+PiBUaGFua3MKPj4gPiA+PiAKPj4gPiA+PiBNYW5mcmVkCj4+ID4gPj4gCj4+ID4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPj4gCj4+ID4gPj4gLS0KPj4gPiA+IAo+PiA+ID4gU2VudCBmcm9tIG15IHBob25lCj4+ID4gCj4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4gCj4+ID4gLS0KPj4gCj4+IFNlbnQgZnJvbSBteSBwaG9uZQo+IAo+IAo+IAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+IAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDYxMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgTm92IDI1IDIxOjU2OjM0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDYxMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA0MkZCNjE3ODBGCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMjUgTm92IDIwMTcgMjE6NTY6MzQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzNDY3NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNSBOb3YgMjAxNyAyMTo1NjozMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzQ1OTcgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgTm92IDIwMTcgMjE6NTY6MzMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNDU4NCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI1IE5vdiAyMDE3IDIxOjU2OjMzIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAyNSBOb3YgMjAxNyAyMTo1NjozMyArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCA4MDE2NkRGQzNFOyBTYXQsIDI1IE5vdiAyMDE3IDIxOjU2OjMyICswMDAwIChVVEMpCkZyb206IGhib3V0ZW15IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0yMy1tYXZlbi1pbmRleGVyQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0yMy1tYXZlbi1pbmRleGVyQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1pbmRleGVyIGlzc3VlICMyMzogRnVsbCBjb2RlYmFzZSByZWZvcm1hdCwgbWlub3IgY2xlYW51cCwgbm8gY29kZS9sb2dpLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzExMjUyMTU2MzIuODAxNjZERkMzRUBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogU2F0LCAyNSBOb3YgMjAxNyAyMTo1NjozMiArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgaGJvdXRlbXkgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWluZGV4ZXIvcHVsbC8yMwogIAogICAgc29ycnksIEkgZGlkIG5vdCBub3RpY2UgeW91IHdlcmUgd29ya2luZyBvbiBpdCwgSSBkaWQgc29tZSBjaGVja3N0eWxlIGZpeGVzIHRoYXQgbWVzc2VkIHlvdXIgd29yayA6KAoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NjEyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgMjUgMjI6MDg6MzcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjEyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEQ3QzA3MTc4NTEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAyNSBOb3YgMjAxNyAyMjowODozNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ2NDU2IGludm9rZWQgYnkgdWlkIDUwMCk7IDI1IE5vdiAyMDE3IDIyOjA4OjM3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0NjM3NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNSBOb3YgMjAxNyAyMjowODozNyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ2MzY0IGludm9rZWQgYnkgdWlkIDk5KTsgMjUgTm92IDIwMTcgMjI6MDg6MzcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDI1IE5vdiAyMDE3IDIyOjA4OjM3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNjFERDYxODA2NzYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDI1IE5vdiAyMDE3IDIyOjA4OjM2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS44ClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MS44IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MV0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDNCcHlxTFFCZEZTWiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgMjUgTm92IDIwMTcgMjI6MDg6MzQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZGQxNzMzMi5rYXNzZXJ2ZXIuY29tIChkZDE3MzMyLmthc3NlcnZlci5jb20gWzg1LjEzLjEzOC4yNl0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAyNTBBMTVGRDNFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAyNSBOb3YgMjAxNyAyMjowODozNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBkZDE3MzMyLmthc3NlcnZlci5jb20gKGRkMDgwMi5rYXNzZXJ2ZXIuY29tIFs4NS4xMy4xNDMuMV0pCglieSBkZDE3MzMyLmthc3NlcnZlci5jb20gKFBvc3RmaXgpIHdpdGggRVNNVFBTQSBpZCBBNEM2NTI5QzhDQjcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDI1IE5vdiAyMDE3IDIzOjA4OjI3ICswMTAwIChDRVQpCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKWC1TZW5kZXJJUDogOTYuNTQuMjM3LjEKVXNlci1BZ2VudDogQUxMLUlOS0wgV2VibWFpbCAyLjExCkluLVJlcGx5LVRvOiA8MTYzNTA5NC5uVGhYb012anJWQGdpZ2E+ClJlZmVyZW5jZXM6IDwyMDE3MTEwOTA1MzU1MS45NTdENDI5QzUwRDFAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPiA8Mzc3MzM4MC5Oa01POWJvNDJyQGdpZ2E+IDwyMDE3MTEyNTIxMDcxMi44Q0JDRTI5QzAyNDlAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPjwxNjM1MDk0Lm5UaFhvTXZqclZAZ2lnYT4KU3ViamVjdDogUmU6IE1hdmVuIHJlc29sdmVyIGJyYW5jaCBjb25zb2xpZGF0aW9uCkZyb206ICJNYW5mcmVkIE1vc2VyIiA8bWFuZnJlZEBzaW1wbGlnaWxpdHkuY29tPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JZDogPDIwMTcxMTI1MjIwODI3LkE0QzY1MjlDOENCN0BkZDE3MzMyLmthc3NlcnZlci5jb20+CkRhdGU6IFNhdCwgMjUgTm92IDIwMTcgMjM6MDg6MjcgKzAxMDAgKENFVCkKCkF3ZXNvbWUgLi4uIHNldHRpbmcgdXAgbXkgZ2l0aHViIGFjY291bnQgYW5kIHN1Y2ggbm93LiBJbiB0ZXJtcyBvZiBwb20ueG1sIC4uIHNob3VsZCB0aGUgc2NtIGluZm8ganVzdCBwb2ludCB0byBnaXRodWIgdGhlbj8gCgpNYW5mcmVkCgpIZXJ26SBCT1VURU1ZIHdyb3RlIG9uIDIwMTctMTEtMjUgMTQ6MDA6Cgo+IG9rLCBkb25lOiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXJlc29sdmVyLWFudC10YXNrcwo+IAo+IFJlZ2FyZHMsCj4gCj4gSGVydukKPiAKPiBMZSBzYW1lZGkgMjUgbm92ZW1icmUgMjAxNywgMjI6MDc6MTIgQ0VUIE1hbmZyZWQgTW9zZXIgYSDpY3JpdCA6Cj4+IFNvIC4uIEkgdHJpZWQgdGhpcyBub3cuIFNlZW1zIGxpa2Ugc29tZXRoaW5nIG9uIGdpdGJveCBpcyBub3QgY29uZmlndXJlZAo+PiBjb3JyZWN0bHkgZm9yIG1lIGJlY2F1c2UgdGhlIFlvdXIgUE1DcyBkcm9wIGRvd24gY29udGFpbnMgbm8gZW50cmllcyBhcGFydAo+PiBmcm9tIFlvdXIgUE1Dcy4KPj4gCj4+IENhbiBzb21lb25lIGVpdGhlciBmaXggdGhpcyBmb3IgbWUgb3IgY3JlYXRlIG1hdmVuLXJlc29sdmVyLWFudC10YXNrcwo+PiByZXBvc2l0b3J5PyBUaGVuIEkgY2FuIGRvIHRoZSByZXN0Lgo+PiAKPj4gdGh4Cj4+IAo+PiBtYW5mcmVkCj4+IAo+PiBIZXJ26SBCT1VURU1ZIHdyb3RlIG9uIDIwMTctMTEtMjMgMTU6MDY6Cj4+ID4geWVzLCB0aGF0J3MgR2l0Qm94IHNlbGYgc2VydmljZSBbMV0sIGVhc3kgdG8gdXNlLCBqdXN0Ogo+PiA+IDEuIHN0YXJ0IGJ5IGNob29zaW5nIHlvdXIgUE1DIGJlZm9yZSBkb2luZyBhbnkgb3RoZXIgY2hhbmdlIChvciB5b3UgbWF5Cj4+ID4gY3JlYXRlIGEgIm1hdmVuLW1hdmVuLXNvbWV0aGluZy5naXQiIGxpa2UgSSBkaWQpCj4+ID4gMi4gY2hhbmdlICJHaXRIdWIgbm90aWZpY2F0aW9uIGxpc3QiIHRvIGlzc3Vlc0BtYXZlbi5hcGFjaGUub3JnCj4+ID4gCj4+ID4gdGhlIG9ubHkgaXNzdWUgSSBzZWUgaXMgdGhlIG1peCBvZiBBcnRpZmFjdCBSZXNvbHZlciBvbiBnaXQtd2lwIGFuZAo+PiA+IEFydGlmYWN0IFJlc29sdmVyIEFudCBUYXNrcyBvbiBnaXRib3g6IGJ1dCBvbmUgZGF5LCBJTkZSQS0xNTQzNiB3aWxsCj4+ID4gcHJvYmFibHkgYmUgZG9uZQo+PiA+IAo+PiA+IFJlZ2FyZHMsCj4+ID4gCj4+ID4gSGVydukKPj4gPiAKPj4gPiBbMV0gaHR0cHM6Ly9naXRib3guYXBhY2hlLm9yZy8KPj4gPiAKPj4gPiBMZSBqZXVkaSAyMyBub3ZlbWJyZSAyMDE3LCAxOToyNzowNiBDRVQgU3RlcGhlbiBDb25ub2xseSBhIOljcml0IDoKPj4gPj4gSGVydukgbWlnaHQga25vdy4uLiBjb3VsZCBiZSBzZWxmLXNlcnZpY2Ugb24gZ2l0Ym94IQo+PiA+PiAKPj4gPj4gSSBoYXZlIHR3byByZXBvcyB0byBjcmVhdGUgYWZ0ZXIgdGhlIEplbmtpbnMgU2VydmVyIGlzIHVwZ3JhZGVkIG9uCj4+ID4+IFN1bmRheSwKPj4gPj4gc28gbGV0IG1lIGtub3cgdGhlIHByb2Nlc3MKPj4gPj4gCj4+ID4+IE9uIFRodSAyMyBOb3YgMjAxNyBhdCAxNjoxMywgTWFuZnJlZCBNb3NlciA8bWFuZnJlZEBzaW1wbGlnaWxpdHkuY29tPiAKPiB3cm90ZToKPj4gPj4gPiBTbyBob3cgZG8gSSBtYWtlIHRoaXMgcmVwbyBjb3B5IGhhcHBlbj8gQW4gaW5mcmEgdGlja2V0IG9yIHNvbWV0aGluZwo+PiA+PiA+IGxpa2UKPj4gPj4gPiB0aGF0Pwo+PiA+PiA+IAo+PiA+PiA+IFN0ZXBoZW4gQ29ubm9sbHkgd3JvdGUgb24gMjAxNy0xMS0yMiAyMzo1MzoKPj4gPj4gPiA+IE9uIFRodSAyMyBOb3YgMjAxNyBhdCAwNDoyMCwgTWFuZnJlZCBNb3NlciA8bWFuZnJlZEBzaW1wbGlnaWxpdHkuY29tPgo+PiA+PiA+IAo+PiA+PiA+IHdyb3RlOgo+PiA+PiA+ID4+IFN0YXR1cyB1cGRhdGUgYW5kIHF1ZXN0aW9uczoKPj4gPj4gPiA+PiAKPj4gPj4gPiA+PiAtIGRlbW9zIGFyZSBhbGwgbm93IGluIG1hc3RlciBhbmQgcGFydCBvZiB0aGUgbXVsdGkgbW9kdWxlIGJ1aWxkCj4+ID4+ID4gPj4gLSBubyBjaGFuZ2VzIG9uIHRoZSBhbnQgdGFza3MgZm9yIG5vdwo+PiA+PiA+ID4+IAo+PiA+PiA+ID4+IFF1ZXN0aW9uczoKPj4gPj4gPiA+PiAKPj4gPj4gPiA+PiAxLiBDYW4gSSBkZWxldGUgdGhlIGRlbW9zIGJyYW5jaCBub3cgb3IgZG8gd2Ugd2FpdCB1bnRpbCBuZXh0Cj4+ID4+ID4gPj4gcmVsZWFzZT8KPj4gPj4gPiA+PiBJCj4+ID4+ID4gPj4gd291bGQgcHJlZmVyIHRvIGRlbGV0ZSB0aGUgYnJhbmNoIGFuZCBjbG9zZSB0aGUgdGlja2V0IHRvIGJlIGhvbmVzdC4KPj4gPj4gPiA+PiAKPj4gPj4gPiA+PiAyLiBJIGxpa2UgdGhlIGlkZWEgb2YgcHJvbW90aW5nIHRoZSBhbnQgdGFzayBmcm9tIGJlaW5nIGhpZGRlbiBpbgo+PiA+PiA+ID4+IHRoZQo+PiA+PiA+ID4+IGJyYW5jaCBpbnRvIHRoZWlyIG93biByZXBvLiBBbGwgd2Ugd291bGQgaGF2ZSB0byBkbyBpcyB0byBjb3B5IHRoZQo+PiA+PiA+IAo+PiA+PiA+IGV4aXN0aW5nCj4+ID4+ID4gCj4+ID4+ID4gPj4gcmVwbyBzb21laG93IGludG8gYSBuZXcgcmVwbyBpbiBhcGFjaGUgZ2l0LiBUaGVuIHdlIGNhbiBkRGVsZXRlIGFsbAo+PiA+PiA+ID4+IHRoZQo+PiA+PiA+ID4+IGJyYW5jaGVzIGFwYXJ0IGZyb20gdGhlIGFudC10YXNrIGJyYW5jaCBhbmQgbWFrZSB0aGF0IHRoZSBtYXN0ZXIuCj4+ID4+ID4gPj4gRG9uZS4KPj4gPj4gPiAKPj4gPj4gPiBJCj4+ID4+ID4gCj4+ID4+ID4gPj4gYW0gaGFwcHkgdG8gZG8gdGhhdCBpbiB0ZXJtcyBvZiB0aGUgYnJhbmNoZXMgYW5kIHNvIG9uIGJ1dCBob3cgZG8gSQo+PiA+PiA+ID4+IGdvCj4+ID4+ID4gPj4gYWJvdXQgZ2V0dGluZyB0aGUgcmVwbyBjb3BpZWQgaW50byBhIG5ldyByZXBvIG5hbWVkCj4+ID4+ID4gPj4gbWF2ZW4tcmVzb2x2ZXItYW50LXRhc2tzPwo+PiA+PiA+ID4gCj4+ID4+ID4gPiBJIGxpa2UgdGhhdCBzb2x1dGlvbiB0b28KPj4gPj4gPiA+IAo+PiA+PiA+ID4+IFRoYW5rcwo+PiA+PiA+ID4+IAo+PiA+PiA+ID4+IE1hbmZyZWQKPj4gPj4gPiA+PiAKPj4gPj4gPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiA+PiA+ID4+IC0KPj4gPj4gPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+PiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4gPj4gPiA+PiAKPj4gPj4gPiA+PiAtLQo+PiA+PiA+ID4gCj4+ID4+ID4gPiBTZW50IGZyb20gbXkgcGhvbmUKPj4gPj4gPiAKPj4gPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gPj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+PiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4gPj4gPiAKPj4gPj4gPiAtLQo+PiA+PiAKPj4gPj4gU2VudCBmcm9tIG15IHBob25lCj4+ID4gCj4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+IAo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+IAo+IAo+IAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+IAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDYxNi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gTm92IDI2IDIxOjM2OjI5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDYxNi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBENTYzMDEwOEFFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMjYgTm92IDIwMTcgMjE6MzY6MjkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3NjMwOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBOb3YgMjAxNyAyMTozNjoyOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzYyMjUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjYgTm92IDIwMTcgMjE6MzY6MjkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NjIxNCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI2IE5vdiAyMDE3IDIxOjM2OjI5IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAyNiBOb3YgMjAxNyAyMTozNjoyOSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDgxMTA4QzMxOTQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDI2IE5vdiAyMDE3IDIxOjM2OjI4ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS4yClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MS4yIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgS0JfV0FNX0ZST01fTkFNRV9TSU5HTEVXT1JEPTAuMl0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgSTIwc1EyNmZjdDJDIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAyNiBOb3YgMjAxNyAyMTozNjoyNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBkZDE3MzMyLmthc3NlcnZlci5jb20gKGRkMTczMzIua2Fzc2VydmVyLmNvbSBbODUuMTMuMTM4LjI2XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDI3QkMwNUYxOUQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDI2IE5vdiAyMDE3IDIxOjM2OjI3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGRkMTczMzIua2Fzc2VydmVyLmNvbSAoZGQwODAyLmthc3NlcnZlci5jb20gWzg1LjEzLjE0My4xXSkKCWJ5IGRkMTczMzIua2Fzc2VydmVyLmNvbSAoUG9zdGZpeCkgd2l0aCBFU01UUFNBIGlkIDIyMDI0MjlDMEE3NQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjYgTm92IDIwMTcgMjI6MzY6MjAgKzAxMDAgKENFVCkKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTEKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdApYLVNlbmRlcklQOiA5Ni41NC4yMzcuMQpVc2VyLUFnZW50OiBBTEwtSU5LTCBXZWJtYWlsIDIuMTEKSW4tUmVwbHktVG86IDwxODY2NTYzNC5DNmE2NW5FOVR0QGdpZ2E+ClJlZmVyZW5jZXM6IDwyMDE3MTEwOTA1MzU1MS45NTdENDI5QzUwRDFAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPiA8MTYzNTA5NC5uVGhYb012anJWQGdpZ2E+IDwyMDE3MTEyNTIyMDgyNy5BNEM2NTI5QzhDQjdAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPjwxODY2NTYzNC5DNmE2NW5FOVR0QGdpZ2E+ClN1YmplY3Q6IFJlOiBNYXZlbiByZXNvbHZlciBicmFuY2ggY29uc29saWRhdGlvbgpGcm9tOiAiTWFuZnJlZCBNb3NlciIgPG1hbmZyZWRAc2ltcGxpZ2lsaXR5LmNvbT4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSWQ6IDwyMDE3MTEyNjIxMzYyMC4yMjAyNDI5QzBBNzVAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPgpEYXRlOiBTdW4sIDI2IE5vdiAyMDE3IDIyOjM2OjIwICswMTAwIChDRVQpCgpBbGwgZG9uZSBvbiBkZW1vcyBpbmNsdWRpbmcgY2xlYW51cCBhbmQgY2xvc2luZyB0aGUgaXNzdWUuCgpGb3IgdGhlIGFudCB0YXNrcyBldmVyeXRoaW5nIGlzIHJlYWR5IGluIHRoZSBuZXcgcmVwby4gSWYgc29tZW9uZSBjb3VsZCBzZXQgdXAgdGhlIENJIGplbmtpbnMgYnVpbGQgdGhhdCB3b3VsZCBiZSBnb29kLgoKT25jZSB3ZSBhcmUgaGFwcHkgSSBjYW4gZGVsZXRlIHRoZSBicmFuY2ggaW4gdGhlIG9sZCByZXBvLgoKQW5kIEkgdGhpbmsgd2UgYWxzbyBoYXZlIHRvIGN1dCBhIHJlbGVhc2Ugb2YgdGhlIGFudCB0YXNrcy4gTm90IHN1cmUgd2hhdCBpdCB0YWtlcyB0byBkbyB0aGF0Li4gdGhlIGNvZGViYXNlIHNlZW1zIHJlYWR5IGZyb20gbXkgcG9pbnQgb2Ygdmlldy4uIAoKTWFuZnJlZAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDYzMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gTm92IDI3IDIyOjAyOjA0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDYzMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyMDFCMzE3QkZECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMjcgTm92IDIwMTcgMjI6MDI6MDQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2MTM1OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBOb3YgMjAxNyAyMjowMjowMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjEyNzUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjcgTm92IDIwMTcgMjI6MDI6MDMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MTEyNiBpbnZva2VkIGJ5IHVpZCA5OSk7IDI3IE5vdiAyMDE3IDIyOjAyOjAzIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAyNyBOb3YgMjAxNyAyMjowMjowMyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDg4NkZCMUExMkU1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAyNyBOb3YgMjAxNyAyMjowMjowMiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDEuOApYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuOCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTFdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGViTHJxU1c1OThPciBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMjcgTm92IDIwMTcgMjI6MDI6MDAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZGQxNzMzMi5rYXNzZXJ2ZXIuY29tIChkZDE3MzMyLmthc3NlcnZlci5jb20gWzg1LjEzLjEzOC4yNl0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA0RUIwRDVGMjFFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAyNyBOb3YgMjAxNyAyMjowMjowMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBkZDE3MzMyLmthc3NlcnZlci5jb20gKGRkMDgwMS5rYXNzZXJ2ZXIuY29tIFs4NS4xMy4xNDMuMjA1XSkKCWJ5IGRkMTczMzIua2Fzc2VydmVyLmNvbSAoUG9zdGZpeCkgd2l0aCBFU01UUFNBIGlkIDJFNEJCMjlDNDNDOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMjcgTm92IDIwMTcgMjM6MDE6NTMgKzAxMDAgKENFVCkKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PUlTTy04ODU5LTEKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdApYLVNlbmRlcklQOiAxODQuNjkuMTI2LjEyMgpVc2VyLUFnZW50OiBBTEwtSU5LTCBXZWJtYWlsIDIuMTEKSW4tUmVwbHktVG86IDxDQUNMRT03UC03RDYwUGpGNUs9WD13X1B1NUFqOVNRTEIzaFdUdm1fciswNkxCWmdvckFAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQUNMRT03Tmt5aWdZeG1oSnlUQzl1N1IzdFpYaEVvUE9BcGQ4ak9qR3VVRDIxWXFfeGdAbWFpbC5nbWFpbC5jb20+IDw5Y2ViNGNhNC1mOTg0LWJiYTMtMjVhZS05YWUwY2U0NTRlYjVAYXBhY2hlLm9yZz4gPENBQ0xFPTdQNHhfM2VHUlJ3U3owOG9BOXlBZTVUdXpCamVPXzNOWnZ6LXFvMHBtV2FKQUBtYWlsLmdtYWlsLmNvbT4gPGIzNDM1OGI2LTc2NWQtYTg3OC1lZGExLWIwZGE2OWJmY2FmMkBhcGFjaGUub3JnPiA8MTUxMTgxNjQ5Ni43MTE2MS4xMTg1OTk5OTQ0LjU5OUMzMUMzQHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT48Q0FDTEU9N1AtN0Q2MFBqRjVLPVg9d19QdTVBajlTUUxCM2hXVHZtX3IrMDZMQlpnb3JBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogYmVhbSBsZWF2aW5nIG1hdmVuLCBhbnl0aGluZyBkb2FibGU/CkZyb206ICJNYW5mcmVkIE1vc2VyIiA8bWFuZnJlZEBzaW1wbGlnaWxpdHkuY29tPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JZDogPDIwMTcxMTI3MjIwMTUzLjJFNEJCMjlDNDNDOUBkZDE3MzMyLmthc3NlcnZlci5jb20+CkRhdGU6IE1vbiwgMjcgTm92IDIwMTcgMjM6MDE6NTMgKzAxMDAgKENFVCkKCkp1c3QgbXkgMmMgYXMgYSBsb25nIHRlcm1zIE1hdmVuIHVzZXIgYW5kIGNvbW1pdHRlci4uIAoKUGVvcGxlIGhhdmUgYmVlbiBtb3ZpbmcgZnJvbSBvbmUgYnVpbGQgdG9vbCB0aGUgb3RoZXIgZm9yIHllYXJzLiBUaGF0IGluY2x1ZGVzIHRvIEdyYWRsZSwgdG8gTWF2ZW4gYW5kIHRvIGFsbCBzb3J0cyBvZiBvdGhlcnMgc3R1ZmYgYW5kIGJhY2suIElmIHRoZSBCZWFtIHByb2plY3QgdGhpbmtzIHRoZXkgd2lsbCBnZXQgc2lnbmlmaWNhbnQgaW1wcm92ZW1lbnRzIGZvciB0aGVpciBidWlsZCB0aW1lcyBhbmQgdGhleSB3YW50IHRvIG1pZ3JhdGUuLiBsZXQgdGhlbS4gVGhleSB3aWxsIGhhdmUgdG8gbGVhcm4gYSB3aG9sZSBidW5jaCBvZiBkaWZmZXJlbnQgdGhpbmdzIGFuZCBzZWUgc29tZSBhZHZhbnRhZ2VzIGFzIHdlbGwgYXMgbG90IG9mIGRpc2FkdmFudGFnZXMuIAoKPkZyb20gbXkgcGVyc3BlY3RpdmUgdGhlIGJ1aWxkIHRpbWUgaXMgTk9UIHNpZ25pZmljYW50bHkgZmFzdGVyIHdpdGggR3JhZGxlIGFuZCBkZXBlbmRzIGEgTE9UIG9uIHdoYXQgeW91ciBidWlsZCBhY3R1YWxseSBkb2VzLiBNb3JlIGltcG9ydGFudGx5IHRoZSBpbnRlZ3JhdGlvbiB3aXRoIElERXMgYW5kIG90aGVyIHRvb2xzIGlzIGEgbG90IHdvcnNlIGluIG1hbnkgYXNwZWN0cy4gCgpBcyBsb25nIGFzIHRoZXkgY2FuIG1ha2Ugc3VyZSB0aGF0IHRoZWlyIGJpbmFyaWVzIGFyZSBwdWJsaXNoZWQgc28gdGhhdCBhbnkgdXNlciBjYW4gZWFzaWx5IGNvbnN1bWUgdGhlbSAoZS5hLiB0aGV5IHB1Ymxpc2ggcHJvcGVyIGJpbmFyaWVzIGFuZCBwb20gZmlsZXMgdG8gdGhlIENlbnRyYWwgUmVwb3NpdG9yeSkgSSBoYXZlIG5vIG9iamVjdGlvbi4gCgpPZiBjb3Vyc2UgaWYgdGhleSB3b3VsZCBzdGVwIHVwIGFuZCBoZWxwIHVzIHdpdGggTWF2ZW4gYW5kIG1ha2UgaXQgYmV0dGVyIHRoYXQgd291bGQgY2VydGFpbmx5IGJlIGJldHRlciB0aGFuIHB1dHRpbmcgZWZmb3J0IGludG8gbWlncmF0aW5nLi4uIGJ1dCB0aGF0cyBhIGRpZmZlcmVudCBzdG9yeS4KCkFuZCBhbm90aGVyIG9uZSBvZiBjb3Vyc2UgaXMgdGhhdCBHcmFkbGUgaXMgb3BlbiBzb3VyY2UgcHJvamVjdCBtb3N0bHkgc3BvbnNvcmVkIGJ5IGEgc2luZ2xlIGNvbXBhbnkgYW5kIGhlbmNlIHVuZGVyIGEgdmVyeSBkaWZmZXJlbnQgY29udHJvbCBjb21wYXJlZCB0byBNYXZlbi4uIAoKTWFuZnJlZAoKUm9tYWluIE1hbm5pLUJ1Y2F1IHdyb3RlIG9uIDIwMTctMTEtMjcgMTM6NDM6Cgo+IERvZXNudCBjaGFuZ2UgYW55dGhpbmcgc2lnbmlmaWNhdGl2ZSAtIHRoaXMgaXMgbXkgc2V0dXAuCj4gCj4gTGUgMjcgbm92LiAyMDE3IDIyOjAxLCAiSWdvciBGZWRvcmVua28iIDxpZ29yQGlmZWRvcmVua28uY29tPiBhIOljcml0IDoKPiAKPj4gSSB3b3VsZG4ndCBib3RoZXIgd2l0aCBUYWthcmkgbG9jYWwgcmVwb3NpdG9yeSwgaXQncyBicm9rZW4gYnJva2VuLCBzZWUKPj4gWzFdIGFuZCBbMl0uIERlZmF1bHQgQWV0aGVyIGxvY2FsIHJlcG9zaXRvcnkgaW1wbCBpcyB0aHJlYWQtc2FmZSBlbm91Z2gsCj4+IGF0IGxlYXN0IHdoZW4gbG9jYWwgcmVwb3NpdG9yeSBpcyB1c2VkIGZyb20gc2luZ2xlLXByb2Nlc3MKPj4gbXVsdGktdGhyZWFkZWQgYnVpbGQuCj4+Cj4+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vdGFrYXJpL3Rha2FyaS1sb2NhbC1yZXBvc2l0b3J5L2lzc3Vlcy80Cj4+IFsyXSBodHRwczovL2dpdGh1Yi5jb20vdGFrYXJpL3Rha2FyaS1sb2NhbC1yZXBvc2l0b3J5L2lzc3Vlcy81Cj4+Cj4+IC0tCj4+IFJlZ2FyZHMsCj4+IElnb3IKPj4KPj4gT24gTW9uLCBOb3YgMjcsIDIwMTcsIGF0IDAzOjI4IFBNLCBNaWNoYWVsIE9zaXBvdiB3cm90ZToKPj4gPiBJIHJlYWxseSB3b3VsZCBsaWtlIHRvIHNlZSB0aGUgc2FtZSBudW1iZXJzIHdpdGggVGFrYXJpIFNtYXJ0IEJ1aWxkZXIKPj4gPiBhbmQgdGhyZWFkLXNhZmUgbG9jYWwgcmVwbyBtb2R1bGUuCj4+ID4KPj4gPiBBbSAyMDE3LTExLTI3IHVtIDIwOjUyIHNjaHJpZWIgUm9tYWluIE1hbm5pLUJ1Y2F1Ogo+PiA+ID4gRXZlbiBkb2luZyBpdCB0aGUgZGlmZmVyZW5jZSBpcyBzaWduaWZpY2F0aXZlLiBUaGUgcGFyYWxsZWxpc20gYW5kCj4+ID4gPiBncmFwaCBjb21wdXRhdGlvbiAobGlua2VkIHRvIHRoZSBsb2NhbCByZXBvIHRocmVhZCBzYWZldHkpIGlzIHRoZSBtYWluCj4+ID4gPiBkcmF3YmFjayBvZiBtYXZlbiBpdCBzZWVtcy4KPj4gPiA+Cj4+ID4gPiBSb21haW4gTWFubmktQnVjYXUKPj4gPiA+IEBybWFubmlidWNhdSB8ICBCbG9nIHwgT2xkIEJsb2cgfCBHaXRodWIgfCBMaW5rZWRJbgo+PiA+ID4KPj4gPiA+Cj4+ID4gPiAyMDE3LTExLTI3IDIwOjQ3IEdNVCswMTowMCBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz46Cj4+ID4gPj4gQW0gMjAxNy0xMS0yNyB1bSAyMDoyNCBzY2hyaWViIFJvbWFpbiBNYW5uaS1CdWNhdToKPj4gPiA+Pj4KPj4gPiA+Pj4gSGkgZ3V5cywKPj4gPiA+Pj4KPj4gPiA+Pj4gYW55dGhpbmcgZG9hYmxlIG9uIG1hdmVuIHNpZGUgKGVpdGhlciB0dW5pbmcgb3IgY29kZSBjaGFuZ2VzKSB0byBiZQo+PiBhcwo+PiA+ID4+PiBnb29kIGFzIGdyYWRsZSBvbiBiZWFtIHByb2plY3QuIFRoZSBwcm9qZWN0IGlzIGdvaW5kIHRvIGxlYXZlIG1hdmVuCj4+IGFzCj4+ID4gPj4+IGJ1aWxkIHRvb2wgKFsxXSkgYW5kIEkgdGhpbmsgaXQgaXMgdmVyeSBiYWQgZm9yIDEuIHRoZSBjb21tdW5pdHkgYW5kCj4+ID4gPj4+IDIuIEFTRiBhcyBhbiBlY29zeXN0ZW0uCj4+ID4gPj4+Cj4+ID4gPj4+IFsxXQo+PiA+ID4+PiBodHRwczovL2xpc3RzLmFwYWNoZS5vcmcvdGhyZWFkLmh0bWwvNmQ2ZjdmZmM2NjYyMmRiMWRkNDU5ZTE3MDRjM2E1Cj4+IGQ4YTRiYzI5YzJkOWMwYjYwMzU0ZmQzYjZhQCUzQ2Rldi5iZWFtLmFwYWNoZS5vcmclM0UKPj4gPiA+Pgo+PiA+ID4+Cj4+ID4gPj4gRGlkIHRoZXkgZGlzYWJsZSB0aGUgYnVpbGQgZGFlbW9uPyBJZiBub3QsIGl0IGlzIG5vdCBhIGZhaXIKPj4gY29tcGFyc2lvbi4KPj4gPiA+Pgo+PiA+ID4+IE1pY2hhZWwKPj4gPiA+Cj4+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPgo+PiA+ID4KPj4gPgo+PiA+Cj4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4KPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KPj4KPiAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ2NDQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE5vdiAyOCAxNjowNzo0NSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ2NDQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQ0NEM0IxNzVGRgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDE2OjA3OjQ1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDIxMjMgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggTm92IDIwMTcgMTY6MDc6NDAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQyMDM1IGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE5vdiAyMDE3IDE2OjA3OjQwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDIwMjQgaW52b2tlZCBieSB1aWQgOTkpOyAyOCBOb3YgMjAxNyAxNjowNzo0MCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMjggTm92IDIwMTcgMTY6MDc6NDAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA4MUQ2NzFBMTNERAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjggTm92IDIwMTcgMTY6MDc6MzkgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjUKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjUgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBLQU1fTlVNU1VCSkVDVD0wLjVdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHpmdVZUUDQ4Z3ZnbiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVR1ZSwgMjggTm92IDIwMTcgMTY6MDc6MzggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZGQxNzMzMi5rYXNzZXJ2ZXIuY29tIChkZDE3MzMyLmthc3NlcnZlci5jb20gWzg1LjEzLjEzOC4yNl0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBFQzYzMjVGMUIzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAxNjowNzozNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBkZDE3MzMyLmthc3NlcnZlci5jb20gKGRkMDgwMi5rYXNzZXJ2ZXIuY29tIFs4NS4xMy4xNDMuMV0pCglieSBkZDE3MzMyLmthc3NlcnZlci5jb20gKFBvc3RmaXgpIHdpdGggRVNNVFBTQSBpZCA2RkU2QzI5QzAyNDkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDE3OjA3OjM2ICswMTAwIChDRVQpCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKWC1TZW5kZXJJUDogOTYuNTQuMjM3LjEKVXNlci1BZ2VudDogQUxMLUlOS0wgV2VibWFpbCAyLjExCkluLVJlcGx5LVRvOiA8Q0FQTHBSUUw2PTNxa3pBZT1GZ1JyZWhlR3hma2l5ZFVxQmRyLXlEQ1ZvR2VaVHpycWJBQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0FQTHBSUUw2PTNxa3pBZT1GZ1JyZWhlR3hma2l5ZFVxQmRyLXlEQ1ZvR2VaVHpycWJBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgTWF2ZW4gSW5kZXhlciA2LjAuMApGcm9tOiAiTWFuZnJlZCBNb3NlciIgPG1hbmZyZWRAc2ltcGxpZ2lsaXR5LmNvbT4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSWQ6IDwyMDE3MTEyODE2MDczNi42RkU2QzI5QzAyNDlAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPgpEYXRlOiBUdWUsIDI4IE5vdiAyMDE3IDE3OjA3OjM2ICswMTAwIChDRVQpCgpBd2Vzb21lISArMSAKClRhbeFzIENzZXJ2ZW7hayB3cm90ZSBvbiAyMDE3LTExLTI4IDAyOjIwOgoKPiBbVk9URV0gUmVsZWFzZSBNYXZlbiBJbmRleGVyIDYuMC4wCj4gCj4gSGksCj4gCj4gV2Ugc29sdmVkIDI1IGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamVjdElkPTEyMzE3NTIzJnZlcnNpb249MTIzMzA4MDIKPiAKPiBUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvcHJvamVjdHMvTUlOREVYRVIvaXNzdWVzL01JTkRFWEVSLTgxP2ZpbHRlcj1hbGxvcGVuaXNzdWVzCj4gCj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzkKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zZXJ2aWNlL2xvY2FsL3JlcG9zaXRvcmllcy9tYXZlbi0xMzc5L2NvbnRlbnQvb3JnL2FwYWNoZS9tYXZlbi9pbmRleGVyL21hdmVuLWluZGV4ZXIvNi4wLjAvbWF2ZW4taW5kZXhlci02LjAuMC1zb3VyY2UtcmVsZWFzZS56aXAKPiAKPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBtYXZlbi1pbmRleGVyLTYuMC4wLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOgo+IDI3OTkzOWY4ZGVmZjBmNTUxODM2NGMwNmRhODQ3YjMyYWI2MTA4ZWQKPiAKPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvbWF2ZW4taW5kZXhlci1hcmNoaXZlcy9tYXZlbi1pbmRleGVyLUxBVEVTVC8KPiAKPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+IAo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4gCj4gWyBdICsxCj4gWyBdICswCj4gWyBdIC0xCj4gCj4gLS0gCj4gVGhhbmtzLAo+IH50fgo+IAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDY0NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgTm92IDI4IDE2OjQyOjA3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDY0NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA1M0E0ODE3NzE2Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMjggTm92IDIwMTcgMTY6NDI6MDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyNTc3NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBOb3YgMjAxNyAxNjo0MjowNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjU2ODQgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggTm92IDIwMTcgMTY6NDI6MDYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNTY2NCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IE5vdiAyMDE3IDE2OjQyOjA2IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAyOCBOb3YgMjAxNyAxNjo0MjowNiArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCA3RkVCQ0RGQTBGOyBUdWUsIDI4IE5vdiAyMDE3IDE2OjQyOjA2ICswMDAwIChVVEMpCkZyb206IGNsYXljZXBoYXMgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE3MC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTcwLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBpc3N1ZSAjMTcwOiBbU1VSRUZJUkUtMTQ0OF0gQ2xhcmlmaWVkIHNwZWNpZnlpbmcgbXVsdGlwbGUgY2F0Li4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzExMjgxNjQyMDYuN0ZFQkNERkEwRkBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogVHVlLCAyOCBOb3YgMjAxNyAxNjo0MjowNiArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgY2xheWNlcGhhcyBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNzAKICAKICAgIEBUaWJvcjE3IGdvdGNoYS4gT2ssIHJld3JvdGUgdGhlIGNvbW1pdCBtZXNzYWdlLiBMZXQgbWUga25vdyBpZiB5b3UgbmVlZCBhbnl0aGluZyBlbHNlIHR3ZWFrZWQuIFRoYW5rcyEKCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDY1MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgTm92IDI4IDIwOjQ1OjA1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDY1MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFREI1MDE3M0YxCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMjggTm92IDIwMTcgMjA6NDU6MDQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxNjE3OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBOb3YgMjAxNyAyMDo0NTowNCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTYxMTAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggTm92IDIwMTcgMjA6NDU6MDQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNjA5NCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IE5vdiAyMDE3IDIwOjQ1OjA0IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAyOCBOb3YgMjAxNyAyMDo0NTowNCArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBEQTcwN0RGQTI5OyBUdWUsIDI4IE5vdiAyMDE3IDIwOjQ1OjAwICswMDAwIChVVEMpCkZyb206IHRpbWpvbmVzZGV2IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci05LW1hdmVuLWFyY2hldHlwZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItOS1tYXZlbi1hcmNoZXR5cGVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLWFyY2hldHlwZSBpc3N1ZSAjOTogQWRkIHByb3BlcnRpZXMgdG8gZW5hYmxlIG9yIGRpc2FibGUgZ2VuZXJhdGlvbiBvZiAuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTEyODIwNDUwMS5EQTcwN0RGQTI5QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBUdWUsIDI4IE5vdiAyMDE3IDIwOjQ1OjAwICswMDAwIChVVEMpCgpHaXRodWIgdXNlciB0aW1qb25lc2RldiBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tYXJjaGV0eXBlL3B1bGwvOQogIAogICAgSGVsbG8gQHB0YWhjaGlldiAsCiAgICBJIGp1c3QgcG9zdGVkIGEgcXVlc3Rpb24gdG8gU3RhY2sgT3ZlcmZsb3cgYWJvdXQgdXNpbmcgdGhpcyBmZWF0dXJlLCBzcGVjaWZpY2FsbHkgYWJvdXQgcmVzb2x2aW5nIEdyb292eSBkZXBlbmRlbmNpZXMuIElmL3doZW4geW91IGhhdmUgdGltZSwgY291bGQgeW91IHBsZWFzZSB0YWtlIGEgbG9vaz8gVGhhbmsgeW91LgogICAgCiAgICBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3EvNDc1NDA1OTgvNjUyMDQ3NwoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NjUzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBOb3YgMjggMjI6NTA6MTEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjUzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDE1Mzg5MTc5NTYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAyMjo1MDoxMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDMyOTQ0IGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE5vdiAyMDE3IDIyOjUwOjEwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMjg2MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBOb3YgMjAxNyAyMjo1MDoxMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMyODQ5IGludm9rZWQgYnkgdWlkIDk5KTsgMjggTm92IDIwMTcgMjI6NTA6MTAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDI4IE5vdiAyMDE3IDIyOjUwOjEwICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDUwQjAxRTAyRjU7IFR1ZSwgMjggTm92IDIwMTcgMjI6NTA6MTAgKzAwMDAgKFVUQykKRnJvbTogVGlib3IxNyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTY4LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNjgtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNjg6IFtTVVJFRklSRS0xNDI0XSBqYXZheC50cmFuc2FjdGlvbi5UcmFuc2FjdGlvbk1hbmEuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTEyODIyNTAxMC41MEIwMUUwMkY1QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBUdWUsIDI4IE5vdiAyMDE3IDIyOjUwOjEwICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBUaWJvcjE3IGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2OAogIAogICAgQGVvbGl2ZWxsaSAKICAgIEkgd2lsbCBoYXZlIGEgbG9vay4gSSB3YXMgYnVzeSBsYXN0IHdlZWsuCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ2NTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE5vdiAyOCAyMzowNDo1MiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ2NTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNDQxMUUxNzlGMAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDIzOjA0OjUyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjM1ODMgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggTm92IDIwMTcgMjM6MDQ6NTEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYzNDkxIGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE5vdiAyMDE3IDIzOjA0OjUxIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjM0ODAgaW52b2tlZCBieSB1aWQgOTkpOyAyOCBOb3YgMjAxNyAyMzowNDo1MSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMjggTm92IDIwMTcgMjM6MDQ6NTEgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgODdFMzJERkI3ODsgVHVlLCAyOCBOb3YgMjAxNyAyMzowNDo1MSArMDAwMCAoVVRDKQpGcm9tOiBUaWJvcjE3IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNzEtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE3MS1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgcHVsbCByZXF1ZXN0ICMxNzE6IFtTVVJFRklSRS0xNDQ1XSBFeHBsaWNpdGx5IGRlZmluZSBTdXJlZmlyZS4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMTI4MjMwNDUxLjg3RTMyREZCNzhAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFR1ZSwgMjggTm92IDIwMTcgMjM6MDQ6NTEgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIFRpYm9yMTcgY29tbWVudGVkIG9uIGEgZGlmZiBpbiB0aGUgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNzEjZGlzY3Vzc2lvbl9yMTUzNjUwNDM5CiAgCiAgICAtLS0gRGlmZjogbWF2ZW4tc3VyZWZpcmUtY29tbW9uL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW4vc3VyZWZpcmUvU3VyZWZpcmVQcm9wZXJ0aWVzLmphdmEgLS0tCiAgICBAQCAtNzEsMTMgKzcxLDIyIEBAIHB1YmxpYyBTdXJlZmlyZVByb3BlcnRpZXMoIEtleVZhbHVlU291cmNlIHNvdXJjZSApCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAKICAgICsgICAgQE92ZXJyaWRlCiAgICArICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgdm9pZCBwdXRBbGwoTWFwPD8sID8+IHQpIHsKICAgIC0tLSBFbmQgZGlmZiAtLQogICAgCiAgICBXZSBoYXZlIGRpZmZlcmVudCBjb252ZW50aW9ucy4gUGxlYXNlIHNlZSB0aGUgc3BhY2VzIGFyb3VuZCBicmFja2V0cyBhbmQgbmV3IGxpbmVzLgogICAgVGhlIGNoZWNrc3R5bGUgcGx1Z2luIHdvdWxkIGNyYXNoIHRoZSBidWlsZC4gRGlkIHlvdSB0cnkgdG8gcnVuICJtdm4gaW5zdGFsbCAtUCBydW4taXRzIj8KICAgIEl0IHdvdWxkIHRha2UgcXVpdGUgbG9uZyB0aW1lIHRvIGNvbXBsZXRlIHRoZSBidWlsZCwgY2NhIG9uZSBob3VyLgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NjU1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBOb3YgMjggMjM6MDU6MjMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjU1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDc2QzdGMTdBMDMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAyMzowNToyMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDY1NTU1IGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE5vdiAyMDE3IDIzOjA1OjIzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2NTQ3NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBOb3YgMjAxNyAyMzowNToyMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY1NDYzIGludm9rZWQgYnkgdWlkIDk5KTsgMjggTm92IDIwMTcgMjM6MDU6MjIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDI4IE5vdiAyMDE3IDIzOjA1OjIyICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIEJGNTczREZCNzg7IFR1ZSwgMjggTm92IDIwMTcgMjM6MDU6MjIgKzAwMDAgKFVUQykKRnJvbTogVGlib3IxNyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTcxLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNzEtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIHB1bGwgcmVxdWVzdCAjMTcxOiBbU1VSRUZJUkUtMTQ0NV0gRXhwbGljaXRseSBkZWZpbmUgU3VyZWZpcmUuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTEyODIzMDUyMi5CRjU3M0RGQjc4QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBUdWUsIDI4IE5vdiAyMDE3IDIzOjA1OjIyICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBUaWJvcjE3IGNvbW1lbnRlZCBvbiBhIGRpZmYgaW4gdGhlIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTcxI2Rpc2N1c3Npb25fcjE1MzY1MDU2OAogIAogICAgLS0tIERpZmY6IG1hdmVuLXN1cmVmaXJlLWNvbW1vbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2luL3N1cmVmaXJlL1N1cmVmaXJlUHJvcGVydGllcy5qYXZhIC0tLQogICAgQEAgLTcxLDEzICs3MSwyMiBAQCBwdWJsaWMgU3VyZWZpcmVQcm9wZXJ0aWVzKCBLZXlWYWx1ZVNvdXJjZSBzb3VyY2UgKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgCiAgICArICAgIEBPdmVycmlkZQogICAgKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgcHV0QWxsKE1hcDw/LCA/PiB0KSB7CiAgICArICAgICAgICBmb3IgKE1hcC5FbnRyeTw/LCA/PiBlbnRyeSA6IHQuZW50cnlTZXQoKSkgewogICAgKyAgICAgICAgICAgIHRoaXMucHV0KGVudHJ5LmdldEtleSgpLCBlbnRyeS5nZXRWYWx1ZSgpKTsKICAgIC0tLSBFbmQgZGlmZiAtLQogICAgCiAgICAidGhpcy4iIGlzIG5vdCBuZWNlc3NhcnkuCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ2NTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE5vdiAyOCAyMzoxMzo1NyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ2NTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQUNFN0QxN0E1OAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDIzOjEzOjU3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODQ3MjEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggTm92IDIwMTcgMjM6MTM6NTcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg0NjI1IGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE5vdiAyMDE3IDIzOjEzOjU3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODQ2MTQgaW52b2tlZCBieSB1aWQgOTkpOyAyOCBOb3YgMjAxNyAyMzoxMzo1NyAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMjggTm92IDIwMTcgMjM6MTM6NTcgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNDNDRDFERkI3ODsgVHVlLCAyOCBOb3YgMjAxNyAyMzoxMzo1NSArMDAwMCAoVVRDKQpGcm9tOiBUaWJvcjE3IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNzEtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE3MS1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgcHVsbCByZXF1ZXN0ICMxNzE6IFtTVVJFRklSRS0xNDQ1XSBFeHBsaWNpdGx5IGRlZmluZSBTdXJlZmlyZS4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMTI4MjMxMzU2LjQzQ0QxREZCNzhAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFR1ZSwgMjggTm92IDIwMTcgMjM6MTM6NTUgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIFRpYm9yMTcgY29tbWVudGVkIG9uIGEgZGlmZiBpbiB0aGUgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNzEjZGlzY3Vzc2lvbl9yMTUzNjUyMDU2CiAgCiAgICAtLS0gRGlmZjogbWF2ZW4tc3VyZWZpcmUtY29tbW9uL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW4vc3VyZWZpcmUvU3VyZWZpcmVQcm9wZXJ0aWVzLmphdmEgLS0tCiAgICBAQCAtNzEsMTMgKzcxLDIyIEBAIHB1YmxpYyBTdXJlZmlyZVByb3BlcnRpZXMoIEtleVZhbHVlU291cmNlIHNvdXJjZSApCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAKICAgICsgICAgQE92ZXJyaWRlCiAgICArICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgdm9pZCBwdXRBbGwoTWFwPD8sID8+IHQpIHsKICAgICsgICAgICAgIGZvciAoTWFwLkVudHJ5PD8sID8+IGVudHJ5IDogdC5lbnRyeVNldCgpKSB7CiAgICArICAgICAgICAgICAgdGhpcy5wdXQoZW50cnkuZ2V0S2V5KCksIGVudHJ5LmdldFZhbHVlKCkpOwogICAgLS0tIEVuZCBkaWZmIC0tCiAgICAKICAgIFRoZSBjb25zdHJ1Y3RvciBhbHNvIGhhcyAidGhpcy4iLiBQbGVhc2UgcmVtb3ZlIGl0IGFzIHdlbGwuIFRoeC4KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDY1Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgTm92IDI4IDIzOjE2OjM1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDY1Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDOUY0NzE3QTdBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMjggTm92IDIwMTcgMjM6MTY6MzUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5NDM1MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBOb3YgMjAxNyAyMzoxNjozMCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTQyNzQgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggTm92IDIwMTcgMjM6MTY6MzAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NDI2MyBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IE5vdiAyMDE3IDIzOjE2OjMwIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAyOCBOb3YgMjAxNyAyMzoxNjozMCArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCA3MzYzNERGQjc4OyBUdWUsIDI4IE5vdiAyMDE3IDIzOjE2OjI5ICswMDAwIChVVEMpCkZyb206IFRpYm9yMTcgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE3MS1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTcxLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBwdWxsIHJlcXVlc3QgIzE3MTogW1NVUkVGSVJFLTE0NDVdIEV4cGxpY2l0bHkgZGVmaW5lIFN1cmVmaXJlLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzExMjgyMzE2MjkuNzM2MzRERkI3OEBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogVHVlLCAyOCBOb3YgMjAxNyAyMzoxNjoyOSArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgVGlib3IxNyBjb21tZW50ZWQgb24gYSBkaWZmIGluIHRoZSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE3MSNkaXNjdXNzaW9uX3IxNTM2NTI1MTUKICAKICAgIC0tLSBEaWZmOiBtYXZlbi1zdXJlZmlyZS1jb21tb24vc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbi9zdXJlZmlyZS9TdXJlZmlyZVByb3BlcnRpZXNUZXN0LmphdmEgLS0tCiAgICBAQCAtNzAsOSArNzAsMTYgQEAgcHVibGljIHZvaWQgdGVzdENvbnN0cnVjdFdpdGhPdGhlcigpCiAgICAgICAgICAgICBzcmMuc2V0UHJvcGVydHkoICJiIiwgIjIiICk7CiAgICAgICAgICAgICBTdXJlZmlyZVByb3BlcnRpZXMgb3JkZXJlZFByb3BlcnRpZXMgPSBuZXcgU3VyZWZpcmVQcm9wZXJ0aWVzKCBzcmMgKTsKICAgICAgICAgICAgIC8vIENhbm5vdCBtYWtlIGFzc3VtcHRpb25zIGFib3V0IGluc2VydGlvbiBvcmRlcgogICAgLSAgICAgICAgYXNzZXJ0RXF1YWxzKCAyLCBvcmRlcmVkUHJvcGVydGllcy5zaXplKCkgKTsKICAgIC0KICAgIC0KICAgICsgICAgICAgIGludCBleHBlY3RlZENvdW50ID0gMDsKICAgICsgICAgICAgIC8vIGtleXMoKSB1c2VzIHRoZSBpdGVtcyBwcm9wZXJ0eSwgbW9yZSByZWxpYWJsZSB0byB0ZXN0IHRoYW4gc2l6ZSgpLAogICAgKyAgICAgICAgLy8gd2hpY2ggaXMgYmFzZWQgb24gdGhlIFByb3BlcnRpZXMgY2xhc3MKICAgICsgICAgICAgIC8vIHNlZSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL1NVUkVGSVJFLTE0NDUKICAgICsgICAgICAgIEVudW1lcmF0aW9uPE9iamVjdD4ga2V5cyA9IG9yZGVyZWRQcm9wZXJ0aWVzLmtleXMoKTsKICAgICsgICAgICAgIHdoaWxlIChrZXlzLmhhc01vcmVFbGVtZW50cygpKSB7CiAgICArICAgICAgICAgICAga2V5cy5uZXh0RWxlbWVudCgpOwogICAgKyAgICAgICAgICAgIGV4cGVjdGVkQ291bnQrKzsKICAgICsgICAgICAgIH0KICAgICsgICAgICAgIGFzc2VydEVxdWFscyggMiwgZXhwZWN0ZWRDb3VudCApOwogICAgLS0tIEVuZCBkaWZmIC0tCiAgICAKICAgIENhbiB5b3UgZG8gdGhlIHNhbWUgYXNzZXJ0IHdpdGggYGdldFN0cmluZ0tleVNldCgpYD8KICAgIFRoaXMgaXMgZmluZSB5b3UgYWRkZWQgYnV0IGNhbiB5b3UgYWRkIGEgbmV3IHRlc3QgZXhwbGljaXRseSBjYWxsaW5nIHB1dEFsbCgpPwoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NjU4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBOb3YgMjggMjM6MjE6MDggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjU4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEM2RDU2MTdBOTkKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAyMzoyMTowOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDY5MjAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggTm92IDIwMTcgMjM6MjE6MDggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY4MzMgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggTm92IDIwMTcgMjM6MjE6MDggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2ODIyIGludm9rZWQgYnkgdWlkIDk5KTsgMjggTm92IDIwMTcgMjM6MjE6MDggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDI4IE5vdiAyMDE3IDIzOjIxOjA4ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDc5RUVFREZCNzg7IFR1ZSwgMjggTm92IDIwMTcgMjM6MjE6MDcgKzAwMDAgKFVUQykKRnJvbTogVGlib3IxNyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTcxLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNzEtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIHB1bGwgcmVxdWVzdCAjMTcxOiBbU1VSRUZJUkUtMTQ0NV0gRXhwbGljaXRseSBkZWZpbmUgU3VyZWZpcmUuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTEyODIzMjEwNy43OUVFRURGQjc4QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBUdWUsIDI4IE5vdiAyMDE3IDIzOjIxOjA3ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBUaWJvcjE3IGNvbW1lbnRlZCBvbiBhIGRpZmYgaW4gdGhlIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTcxI2Rpc2N1c3Npb25fcjE1MzY1MzM4NAogIAogICAgLS0tIERpZmY6IG1hdmVuLXN1cmVmaXJlLWNvbW1vbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2luL3N1cmVmaXJlL1N1cmVmaXJlUHJvcGVydGllcy5qYXZhIC0tLQogICAgQEAgLTcxLDEzICs3MSwyMiBAQCBwdWJsaWMgU3VyZWZpcmVQcm9wZXJ0aWVzKCBLZXlWYWx1ZVNvdXJjZSBzb3VyY2UgKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgCiAgICArICAgIEBPdmVycmlkZQogICAgKyAgICBwdWJsaWMgc3luY2hyb25pemVkIHZvaWQgcHV0QWxsKE1hcDw/LCA/PiB0KSB7CiAgICAtLS0gRW5kIGRpZmYgLS0KICAgIAogICAgUGxlYXNlIGtlZXAgdXNpbmcgb25lIGNvbW1pciBpbiBQUi4KICAgIEkgcmVjb21tZW5kIHlvdSB0byBkbyBgZ2l0IGNvbW1pdC0tYW1lbmRgIGFuZCB0aGVuIGZvcmNlZCBwdXNoIGBnaXQgcHVzaCBvcmlnaW4gK21hc3RlcmAuCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ2NTktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE5vdiAyOCAyMzoyNjo1MSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ2NTktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQUI5MEMxN0FEOAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDIzOjI2OjUxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTU3NzYgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggTm92IDIwMTcgMjM6MjY6NTEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE1Njk0IGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE5vdiAyMDE3IDIzOjI2OjUxIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTU2ODMgaW52b2tlZCBieSB1aWQgOTkpOyAyOCBOb3YgMjAxNyAyMzoyNjo1MSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMjggTm92IDIwMTcgMjM6MjY6NTEgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNTI5MjZERkI3ODsgVHVlLCAyOCBOb3YgMjAxNyAyMzoyNjo0OSArMDAwMCAoVVRDKQpGcm9tOiBUaWJvcjE3IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNzEtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE3MS1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgcHVsbCByZXF1ZXN0ICMxNzE6IFtTVVJFRklSRS0xNDQ1XSBFeHBsaWNpdGx5IGRlZmluZSBTdXJlZmlyZS4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMTI4MjMyNjUwLjUyOTI2REZCNzhAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFR1ZSwgMjggTm92IDIwMTcgMjM6MjY6NDkgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIFRpYm9yMTcgY29tbWVudGVkIG9uIGEgZGlmZiBpbiB0aGUgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNzEjZGlzY3Vzc2lvbl9yMTUzNjU0MzkyCiAgCiAgICAtLS0gRGlmZjogbWF2ZW4tc3VyZWZpcmUtY29tbW9uL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW4vc3VyZWZpcmUvU3VyZWZpcmVQcm9wZXJ0aWVzLmphdmEgLS0tCiAgICBAQCAtNzEsMTMgKzcxLDIyIEBAIHB1YmxpYyBTdXJlZmlyZVByb3BlcnRpZXMoIEtleVZhbHVlU291cmNlIHNvdXJjZSApCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAKICAgICsgICAgQE92ZXJyaWRlCiAgICArICAgIHB1YmxpYyBzeW5jaHJvbml6ZWQgdm9pZCBwdXRBbGwoTWFwPD8sID8+IHQpIHsKICAgICsgICAgICAgIGZvciAoTWFwLkVudHJ5PD8sID8+IGVudHJ5IDogdC5lbnRyeVNldCgpKSB7CiAgICArICAgICAgICAgICAgdGhpcy5wdXQoZW50cnkuZ2V0S2V5KCksIGVudHJ5LmdldFZhbHVlKCkpOwogICAgKyAgICAgICAgfQogICAgKyAgICB9CiAgICArCiAgICAgICAgIEBPdmVycmlkZQogICAgICAgICBwdWJsaWMgc3luY2hyb25pemVkIE9iamVjdCBwdXQoIE9iamVjdCBrZXksIE9iamVjdCB2YWx1ZSApCiAgICAgICAgIHsKICAgICAgICAgICAgIGl0ZW1zLmFkZCgga2V5ICk7CiAgICAgICAgICAgICByZXR1cm4gc3VwZXIucHV0KCBrZXksIHZhbHVlICk7CiAgICAgICAgIH0KICAgICAKICAgICsKICAgICsKICAgIC0tLSBFbmQgZGlmZiAtLQogICAgCiAgICBIZXJlIG9ubHkgb25lIGVtcHR5IGxpbmUgYmV0d2VlbiB0d28gbWV0aG9kcy4gRmVlbCBmcmVlIHRvIHJlbW92ZSB0aGVzZSB0d28geW91IGhhdmUgYWRkZWQuIFRoeC4KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDY2MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgTm92IDI4IDIzOjQ3OjA5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDY2MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA2ODhFRTE3QkFFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMjggTm92IDIwMTcgMjM6NDc6MDkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1Njk5MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBOb3YgMjAxNyAyMzo0NzowOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTY5MDggaW52b2tlZCBieSB1aWQgNTAwKTsgMjggTm92IDIwMTcgMjM6NDc6MDkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1Njg5NyBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IE5vdiAyMDE3IDIzOjQ3OjA4IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAyOCBOb3YgMjAxNyAyMzo0NzowOCArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBCMDY3NEUxMEM1OyBUdWUsIDI4IE5vdiAyMDE3IDIzOjQ3OjA4ICswMDAwIChVVEMpCkZyb206IGpnbGljayA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMjUtbWF2ZW4taW50ZWdyYXRpb24tdGVzdGluZ0BnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMjUtbWF2ZW4taW50ZWdyYXRpb24tdGVzdGluZ0BnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4taW50ZWdyYXRpb24tdGVzdGluZyBwdWxsIHJlcXVlc3QgIzI1OiBJbXBvcnRpbmcgYSBCT00gd29ya3MgZXZlbiB3aGVuIC4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMTI4MjM0NzA4LkIwNjc0RTEwQzVAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFR1ZSwgMjggTm92IDIwMTcgMjM6NDc6MDggKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIGpnbGljayBjb21tZW50ZWQgb24gYSBkaWZmIGluIHRoZSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1pbnRlZ3JhdGlvbi10ZXN0aW5nL3B1bGwvMjUjZGlzY3Vzc2lvbl9yMTUzNjU3NTA1CiAgCiAgICAtLS0gRGlmZjogY29yZS1pdC1zdWl0ZS9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vaXQvSW50ZWdyYXRpb25UZXN0U3VpdGUuamF2YSAtLS0KICAgIEBAIC02NTQsNiArNjU0LDcgQEAgcHVibGljIHN0YXRpYyBUZXN0IHN1aXRlKCkKICAgICAgICAgICAgIHN1aXRlLmFkZFRlc3RTdWl0ZSggTWF2ZW5JVG1uZzAyNDlSZXNvbHZlRGVwc0Zyb21SZWFjdG9yVGVzdC5jbGFzcyApOwogICAgICAgICAgICAgc3VpdGUuYWRkVGVzdFN1aXRlKCBNYXZlbklUbW5nMDE4N0NvbGxlY3RlZFByb2plY3RzVGVzdC5jbGFzcyApOwogICAgICAgICAgICAgc3VpdGUuYWRkVGVzdFN1aXRlKCBNYXZlbklUbW5nMDA5NVJlYWN0b3JGYWlsdXJlQmVoYXZpb3JUZXN0LmNsYXNzICk7CiAgICArICAgICAgICBzdWl0ZS5hZGRUZXN0U3VpdGUoIE1hdmVuSVQwMTk5Q3ljbGljSW1wb3J0U2NvcGVUZXN0LmNsYXNzICk7CiAgICAtLS0gRW5kIGRpZmYgLS0KICAgIAogICAgV2FzIHVuY2xlYXIgd2hhdCB0aGUgbmFtaW5nIHNjaGVtZSB3YXMgaGVyZSwgc28gSSBqdXN0IG1hZGUgc29tZXRoaW5nIHVwLgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NjYyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBOb3YgMjggMjM6NDc6MTEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjYyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIERCRkE1MTdCQjMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAyMzo0NzoxMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDU3OTAxIGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE5vdiAyMDE3IDIzOjQ3OjEwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NzgzMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBOb3YgMjAxNyAyMzo0NzoxMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU3NjkwIGludm9rZWQgYnkgdWlkIDk5KTsgMjggTm92IDIwMTcgMjM6NDc6MTAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDI4IE5vdiAyMDE3IDIzOjQ3OjEwICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDIzREYyRTEwQzU7IFR1ZSwgMjggTm92IDIwMTcgMjM6NDc6MTAgKzAwMDAgKFVUQykKRnJvbTogamdsaWNrIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0yNS1tYXZlbi1pbnRlZ3JhdGlvbi10ZXN0aW5nQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0yNS1tYXZlbi1pbnRlZ3JhdGlvbi10ZXN0aW5nQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1pbnRlZ3JhdGlvbi10ZXN0aW5nIHB1bGwgcmVxdWVzdCAjMjU6IEltcG9ydGluZyBhIEJPTSB3b3JrcyBldmVuIHdoZW4gLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzExMjgyMzQ3MTAuMjNERjJFMTBDNUBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogVHVlLCAyOCBOb3YgMjAxNyAyMzo0NzoxMCArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgamdsaWNrIGNvbW1lbnRlZCBvbiBhIGRpZmYgaW4gdGhlIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWludGVncmF0aW9uLXRlc3RpbmcvcHVsbC8yNSNkaXNjdXNzaW9uX3IxNTM2NTc3MjcKICAKICAgIC0tLSBEaWZmOiBjb3JlLWl0LXN1aXRlL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9tYXZlbi9pdC9NYXZlbklUMDE5OUN5Y2xpY0ltcG9ydFNjb3BlVGVzdC5qYXZhIC0tLQogICAgQEAgLTAsMCArMSw1NiBAQAogICAgK3BhY2thZ2Ugb3JnLmFwYWNoZS5tYXZlbi5pdDsKICAgICsKICAgICsvKgogICAgKyAqIExpY2Vuc2VkIHRvIHRoZSBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbiAoQVNGKSB1bmRlciBvbmUKICAgICsgKiBvciBtb3JlIGNvbnRyaWJ1dG9yIGxpY2Vuc2UgYWdyZWVtZW50cy4gIFNlZSB0aGUgTk9USUNFIGZpbGUKICAgICsgKiBkaXN0cmlidXRlZCB3aXRoIHRoaXMgd29yayBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgogICAgKyAqIHJlZ2FyZGluZyBjb3B5cmlnaHQgb3duZXJzaGlwLiAgVGhlIEFTRiBsaWNlbnNlcyB0aGlzIGZpbGUKICAgICsgKiB0byB5b3UgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlCiAgICArICogIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZQogICAgKyAqIHdpdGggdGhlIExpY2Vuc2UuICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKICAgICsgKgogICAgKyAqICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCiAgICArICoKICAgICsgKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsCiAgICArICogc29mdHdhcmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4KICAgICsgKiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkKICAgICsgKiBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLiAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUKICAgICsgKiBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zCiAgICArICogdW5kZXIgdGhlIExpY2Vuc2UuCiAgICArICovCiAgICArCiAgICAraW1wb3J0IGphdmEuaW8uRmlsZTsKICAgICtpbXBvcnQgb3JnLmFwYWNoZS5tYXZlbi5pdC51dGlsLlJlc291cmNlRXh0cmFjdG9yOwogICAgKwogICAgK3B1YmxpYyBjbGFzcyBNYXZlbklUMDE5OUN5Y2xpY0ltcG9ydFNjb3BlVGVzdCBleHRlbmRzIEFic3RyYWN0TWF2ZW5JbnRlZ3JhdGlvblRlc3RDYXNlIHsKICAgICsKICAgICsgICAgcHVibGljIE1hdmVuSVQwMTk5Q3ljbGljSW1wb3J0U2NvcGVUZXN0KCkgewogICAgKyAgICAgICAgc3VwZXIoQUxMX01BVkVOX1ZFUlNJT05TKTsKICAgIC0tLSBFbmQgZGlmZiAtLQogICAgCiAgICBXZWxsLCB0ZXN0ZWQgYWdhaW5zdCAzLjUuMi4gRGlkIG5vdCB0cnkgcnVubmluZyBhZ2FpbnN0LCBzYXksIDIueC4gSXMgdGhlcmUgc29tZSBhdXRvbWF0ZWQgcHJvY2VzcyB3aGljaCBkb2VzIHRoaXM/CgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ2NjMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE5vdiAyOCAyMzo0NzoxMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ2NjMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQkZBRjYxN0JCNwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDIzOjQ3OjExICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTg3MDggaW52b2tlZCBieSB1aWQgNTAwKTsgMjggTm92IDIwMTcgMjM6NDc6MTEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU4NjM2IGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE5vdiAyMDE3IDIzOjQ3OjExIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTg2MjAgaW52b2tlZCBieSB1aWQgOTkpOyAyOCBOb3YgMjAxNyAyMzo0NzoxMSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMjggTm92IDIwMTcgMjM6NDc6MTEgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgMEVGOEFFMTBDNTsgVHVlLCAyOCBOb3YgMjAxNyAyMzo0NzoxMSArMDAwMCAoVVRDKQpGcm9tOiBqZ2xpY2sgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTI1LW1hdmVuLWludGVncmF0aW9uLXRlc3RpbmdAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTI1LW1hdmVuLWludGVncmF0aW9uLXRlc3RpbmdAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLWludGVncmF0aW9uLXRlc3RpbmcgcHVsbCByZXF1ZXN0ICMyNTogSW1wb3J0aW5nIGEgQk9NIHdvcmtzIGV2ZW4gd2hlbiAuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTEyODIzNDcxMS4wRUY4QUUxMEM1QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBUdWUsIDI4IE5vdiAyMDE3IDIzOjQ3OjExICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBqZ2xpY2sgY29tbWVudGVkIG9uIGEgZGlmZiBpbiB0aGUgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4taW50ZWdyYXRpb24tdGVzdGluZy9wdWxsLzI1I2Rpc2N1c3Npb25fcjE1MzY1NzY1NwogIAogICAgLS0tIERpZmY6IGNvcmUtaXQtc3VpdGUvc3JjL3Rlc3QvamF2YS9vcmcvYXBhY2hlL21hdmVuL2l0L01hdmVuSVQwMTk5Q3ljbGljSW1wb3J0U2NvcGVUZXN0LmphdmEgLS0tCiAgICBAQCAtMCwwICsxLDU2IEBACiAgICArcGFja2FnZSBvcmcuYXBhY2hlLm1hdmVuLml0OwogICAgKwogICAgKy8qCiAgICArICogTGljZW5zZWQgdG8gdGhlIEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIChBU0YpIHVuZGVyIG9uZQogICAgKyAqIG9yIG1vcmUgY29udHJpYnV0b3IgbGljZW5zZSBhZ3JlZW1lbnRzLiAgU2VlIHRoZSBOT1RJQ0UgZmlsZQogICAgKyAqIGRpc3RyaWJ1dGVkIHdpdGggdGhpcyB3b3JrIGZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCiAgICArICogcmVnYXJkaW5nIGNvcHlyaWdodCBvd25lcnNoaXAuICBUaGUgQVNGIGxpY2Vuc2VzIHRoaXMgZmlsZQogICAgKyAqIHRvIHlvdSB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUKICAgICsgKiAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlCiAgICArICogd2l0aCB0aGUgTGljZW5zZS4gIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAogICAgKyAqCiAgICArICogICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKICAgICsgKgogICAgKyAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywKICAgICsgKiBzb2Z0d2FyZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbgogICAgKyAqICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWQogICAgKyAqIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZQogICAgKyAqIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMKICAgICsgKiB1bmRlciB0aGUgTGljZW5zZS4KICAgICsgKi8KICAgICsKICAgICtpbXBvcnQgamF2YS5pby5GaWxlOwogICAgK2ltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLml0LnV0aWwuUmVzb3VyY2VFeHRyYWN0b3I7CiAgICArCiAgICArcHVibGljIGNsYXNzIE1hdmVuSVQwMTk5Q3ljbGljSW1wb3J0U2NvcGVUZXN0IGV4dGVuZHMgQWJzdHJhY3RNYXZlbkludGVncmF0aW9uVGVzdENhc2UgewogICAgKwogICAgKyAgICBwdWJsaWMgTWF2ZW5JVDAxOTlDeWNsaWNJbXBvcnRTY29wZVRlc3QoKSB7CiAgICArICAgICAgICBzdXBlcihBTExfTUFWRU5fVkVSU0lPTlMpOwogICAgKyAgICB9CiAgICArCiAgICArICAgIHB1YmxpYyB2b2lkIHRlc3RpdDAxOTkoKSB0aHJvd3MgRXhjZXB0aW9uIHsKICAgICsgICAgICAgIC8vIHYxOiBwYXJlbnQgbm90IHVzaW5nIEJPTTsgZXhwbGljaXQgZGVwIGZyb20gY29tcG9uZW50QiDihpIgY29tcG9uZW50QQogICAgKyAgICAgICAgLy8gdjI6IEJPTSBpbnRyb2R1Y2VkOyBjb21wb25lbnRCIOKGkiBjb21wb25lbnRBIHBpY2tzIHVwIGltcGxpY2l0IHZlcnNpb24gMSBmcm9tIG1haW5AdjEKICAgICsgICAgICAgIC8vIHYzOiBjb21wb25lbnRzIG5vdyBpbmhlcml0aW5nIGluZGlyZWN0bHkgZnJvbSBhbiBvbGRlciB2ZXJzaW9uIG9mIHRoZSBCT00gdGhhdCBpbmNsdWRlcyB0aGVtOyBjb21wb25lbnRCIOKGkiBjb21wb25lbnRBIHZlcnNpb24gb3ZlcnJpZGRlbgogICAgKyAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gMzsgaSsrKSB7CiAgICArICAgICAgICAgICAgYnVpbGQoInYiICsgaSArICIvcGFyZW50IiwgbnVsbCk7CiAgICArICAgICAgICAgICAgYnVpbGQoInYiICsgaSArICIvY29tcG9uZW50QSIsICJ0YXJnZXQvY29tcG9uZW50QS0iICsgaSArICIuamFyIik7CiAgICArICAgICAgICAgICAgYnVpbGQoInYiICsgaSArICIvY29tcG9uZW50QiIsICJ0YXJnZXQvY29tcG9uZW50Qi0iICsgaSArICIuamFyIik7CiAgICArICAgICAgICAgICAgYnVpbGQoInYiICsgaSArICIvbWFpbiIsICJidW5kbGUvdGFyZ2V0L2J1bmRsZS0iICsgaSArICIuamFyIik7CiAgICArICAgICAgICB9CiAgICArICAgIH0KICAgICsKICAgICsgICAgcHJpdmF0ZSB2b2lkIGJ1aWxkKFN0cmluZyBtb2R1bGUsIFN0cmluZyBleHBlY3RlZEFydGlmYWN0KSB0aHJvd3MgRXhjZXB0aW9uIHsKICAgICsgICAgICAgIEZpbGUgdGVzdERpciA9IFJlc291cmNlRXh0cmFjdG9yLnNpbXBsZUV4dHJhY3RSZXNvdXJjZXMoZ2V0Q2xhc3MoKSwgIi9jeWNsaWMtaW1wb3J0LXNjb3BlIik7CiAgICArICAgICAgICBWZXJpZmllciB2ZXJpZmllciA9IG5ld1ZlcmlmaWVyKG5ldyBGaWxlKHRlc3REaXIuZ2V0QWJzb2x1dGVQYXRoKCksIG1vZHVsZSkuZ2V0QWJzb2x1dGVQYXRoKCkpOwogICAgKyAgICAgICAgdmVyaWZpZXIuc2V0QXV0b2NsZWFuKGZhbHNlKTsKICAgICsgICAgICAgIHZlcmlmaWVyLmRlbGV0ZURpcmVjdG9yeSgidGFyZ2V0Iik7CiAgICArICAgICAgICB2ZXJpZmllci5leGVjdXRlR29hbCgiaW5zdGFsbCIpOwogICAgLS0tIEVuZCBkaWZmIC0tCiAgICAKICAgIFRlc3RlZCBpdGVyYXRpdmVseSB1c2luZwogICAgCiAgICBgYGBzaAogICAgcm0gLXJmdiByZXBvL3Rlc3QKICAgIG12biBjbGVhbiB0ZXN0IC1mIGNvcmUtaXQtc3VpdGUgLVBydW4taXRzIC1EbWF2ZW4ucmVwby5sb2NhbD1gcHdkYC9yZXBvIC1EdGVzdD1vcmcuYXBhY2hlLm1hdmVuLml0Lk1hdmVuSVQwMTk5Q3ljbGljSW1wb3J0U2NvcGVUZXN0CiAgICBgYGAKCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDY2Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgTm92IDI5IDEwOjIwOjE3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDY2Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBBRUJGQTEwNDcwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMjkgTm92IDIwMTcgMTA6MjA6MTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4Nzk0IGludm9rZWQgYnkgdWlkIDUwMCk7IDI5IE5vdiAyMDE3IDEwOjIwOjE3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NzEzIGludm9rZWQgYnkgdWlkIDUwMCk7IDI5IE5vdiAyMDE3IDEwOjIwOjE3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODcwMiBpbnZva2VkIGJ5IHVpZCA5OSk7IDI5IE5vdiAyMDE3IDEwOjIwOjE3IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAyOSBOb3YgMjAxNyAxMDoyMDoxNyArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCA0RjQ4RkRGQTBDOyBXZWQsIDI5IE5vdiAyMDE3IDEwOjIwOjE2ICswMDAwIChVVEMpCkZyb206IGFjb2dvbHVlZ25lcyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTcxLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNzEtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIHB1bGwgcmVxdWVzdCAjMTcxOiBbU1VSRUZJUkUtMTQ0NV0gRXhwbGljaXRseSBkZWZpbmUgU3VyZWZpcmUuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTEyOTEwMjAxNi40RjQ4RkRGQTBDQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBXZWQsIDI5IE5vdiAyMDE3IDEwOjIwOjE2ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBhY29nb2x1ZWduZXMgY29tbWVudGVkIG9uIGEgZGlmZiBpbiB0aGUgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNzEjZGlzY3Vzc2lvbl9yMTUzNzQ1MDUyCiAgCiAgICAtLS0gRGlmZjogbWF2ZW4tc3VyZWZpcmUtY29tbW9uL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW4vc3VyZWZpcmUvU3VyZWZpcmVQcm9wZXJ0aWVzVGVzdC5qYXZhIC0tLQogICAgQEAgLTcwLDkgKzcwLDE2IEBAIHB1YmxpYyB2b2lkIHRlc3RDb25zdHJ1Y3RXaXRoT3RoZXIoKQogICAgICAgICAgICAgc3JjLnNldFByb3BlcnR5KCAiYiIsICIyIiApOwogICAgICAgICAgICAgU3VyZWZpcmVQcm9wZXJ0aWVzIG9yZGVyZWRQcm9wZXJ0aWVzID0gbmV3IFN1cmVmaXJlUHJvcGVydGllcyggc3JjICk7CiAgICAgICAgICAgICAvLyBDYW5ub3QgbWFrZSBhc3N1bXB0aW9ucyBhYm91dCBpbnNlcnRpb24gb3JkZXIKICAgIC0gICAgICAgIGFzc2VydEVxdWFscyggMiwgb3JkZXJlZFByb3BlcnRpZXMuc2l6ZSgpICk7CiAgICAtCiAgICAtCiAgICArICAgICAgICBpbnQgZXhwZWN0ZWRDb3VudCA9IDA7CiAgICArICAgICAgICAvLyBrZXlzKCkgdXNlcyB0aGUgaXRlbXMgcHJvcGVydHksIG1vcmUgcmVsaWFibGUgdG8gdGVzdCB0aGFuIHNpemUoKSwKICAgICsgICAgICAgIC8vIHdoaWNoIGlzIGJhc2VkIG9uIHRoZSBQcm9wZXJ0aWVzIGNsYXNzCiAgICArICAgICAgICAvLyBzZWUgaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9TVVJFRklSRS0xNDQ1CiAgICArICAgICAgICBFbnVtZXJhdGlvbjxPYmplY3Q+IGtleXMgPSBvcmRlcmVkUHJvcGVydGllcy5rZXlzKCk7CiAgICArICAgICAgICB3aGlsZSAoa2V5cy5oYXNNb3JlRWxlbWVudHMoKSkgewogICAgKyAgICAgICAgICAgIGtleXMubmV4dEVsZW1lbnQoKTsKICAgICsgICAgICAgICAgICBleHBlY3RlZENvdW50Kys7CiAgICArICAgICAgICB9CiAgICArICAgICAgICBhc3NlcnRFcXVhbHMoIDIsIGV4cGVjdGVkQ291bnQgKTsKICAgIC0tLSBFbmQgZGlmZiAtLQogICAgCiAgICBJIGRvbid0IGdldCBpdC4gSSB1c2VkIGBrZXlzKClgIG9uIHB1cnBvc2UgYmVjYXVzZSBpdCByZWxpZXMgb24gYGl0ZW1zYCwgd2hpY2ggd2FzIG5vdCBpbi1zeW5jIGluIHRoZSBmaXJzdCBwbGFjZS4gYGdldFN0cmluZ0tleVNldCgpYCByZWxpZXMgYGtleVNldCgpYCwgd2hpY2ggdXNlcyB0aGUgYmFzZSBjbGFzcy4gQm90aCB3b3VsZCB3b3JrLCBidXQgYGdldFN0cmluZ0tleVNldCgpYCBkb2Vzbid0IGNhdGNoIHRoZSBidWcuIERvZXMgdGhhdCBtYWtlIHNlbnNlPwoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NjY3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBOb3YgMjkgMTA6MjA6MzYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjY3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDU2RDNGMTA0NzYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyOSBOb3YgMjAxNyAxMDoyMDozNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk3OTIgaW52b2tlZCBieSB1aWQgNTAwKTsgMjkgTm92IDIwMTcgMTA6MjA6MzYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk2OTUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjkgTm92IDIwMTcgMTA6MjA6MzYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5Njc5IGludm9rZWQgYnkgdWlkIDk5KTsgMjkgTm92IDIwMTcgMTA6MjA6MzUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDI5IE5vdiAyMDE3IDEwOjIwOjM1ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDkwNUM5REZBMEM7IFdlZCwgMjkgTm92IDIwMTcgMTA6MjA6MzUgKzAwMDAgKFVUQykKRnJvbTogYWNvZ29sdWVnbmVzIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNzEtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE3MS1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzE3MTogW1NVUkVGSVJFLTE0NDVdIEV4cGxpY2l0bHkgZGVmaW5lIFN1cmVmaXJlUHJvcGVydC4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMTI5MTAyMDM1LjkwNUM5REZBMENAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFdlZCwgMjkgTm92IDIwMTcgMTA6MjA6MzUgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIGFjb2dvbHVlZ25lcyBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNzEKICAKICAgIEBUaWJvcjE3IFRoYW5rcyBmb3IgcmV2aWV3aW5nISBJIHB1c2hlZCBhIG5ldyB2ZXJzaW9uLgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NjcxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBOb3YgMjkgMjE6MDI6MjkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjcxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDZEN0FFMTc4OEIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyOSBOb3YgMjAxNyAyMTowMjoyOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDIzODg3IGludm9rZWQgYnkgdWlkIDUwMCk7IDI5IE5vdiAyMDE3IDIxOjAyOjI5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMzgwNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOSBOb3YgMjAxNyAyMTowMjoyOSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIzNzk2IGludm9rZWQgYnkgdWlkIDk5KTsgMjkgTm92IDIwMTcgMjE6MDI6MjggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDI5IE5vdiAyMDE3IDIxOjAyOjI4ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIEE4RTdFREZCRUM7IFdlZCwgMjkgTm92IDIwMTcgMjE6MDI6MjggKzAwMDAgKFVUQykKRnJvbTogVGlib3IxNyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTY4LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNjgtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNjg6IFtTVVJFRklSRS0xNDI0XSBqYXZheC50cmFuc2FjdGlvbi5UcmFuc2FjdGlvbk1hbmEuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTEyOTIxMDIyOC5BOEU3RURGQkVDQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBXZWQsIDI5IE5vdiAyMDE3IDIxOjAyOjI4ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBUaWJvcjE3IGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2OAogIAogICAgQGVvbGl2ZWxsaSAKICAgIFdlIG5lZWQgdG8gYWRkIGEgbmV3IGNoYXB0ZXIgb24gdGhlIHRvcCBpbiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL2Jsb2IvbWFzdGVyL21hdmVuLXN1cmVmaXJlLXBsdWdpbi9zcmMvc2l0ZS9tYXJrZG93bi9qYXZhOS5tZCBhbmQgYWRkIHRoZSBmb2xsb3dpbmcgQVBJLiBQbGVhc2UgbWVudGlvbiB0aGF0IHZlcnNpb24gMi4yMS4wKyBkb2VzIG5vdCBhZGQgIi0tYWRkLW1vZHVsZXMgamF2YS5zZS5lZSIsIHRoZSB1c2VyIHNob3VsZCBzcGVjaWZ5IGRlcGVuZGVuY2llcyB3aXRoIEFQSSBhbmQgaW1wbGVtZW50YXRpb24sIGFuZCB0aGF0IHdlIHN1cHBvcnQgSmlnc2F3IG1vZHVsYXJpdHkgYXMgd2VsbC4KICAgIAogICAgQ29tbW9ucyBBbm5vdGF0aW9ucwogICAgamF2YXguYW5ub3RhdGlvbjpqYXZheC5hbm5vdGF0aW9uLWFwaToxLjMuMQogICAgCiAgICBKYXZhQmVhbnMgQWN0aXZhdGlvbiBGcmFtZXdvcmsKICAgIGphdmF4LmFjdGl2YXRpb246amF2YXguYWN0aXZhdGlvbi1hcGk6MS4yLjAKICAgIAogICAgSmF2YSBUcmFuc2FjdGlvbiBBUEkKICAgIGphdmF4LnRyYW5zYWN0aW9uOmphdmF4LnRyYW5zYWN0aW9uLWFwaToxLjIKICAgIAogICAgSkFYQgogICAgamF2YXgueG1sLmJpbmQ6amF4Yi1hcGk6Mi4zLjAKICAgIG9yZy5nbGFzc2Zpc2guamF4YjpqYXhiLXJ1bnRpbWU6Mi4zLjAgKGltcGxlbWVudGF0aW9uKQogICAgCiAgICBKQVgtV1MKICAgIGphdmF4LnhtbC53czpqYXh3cy1hcGk6Mi4zLjAKICAgIGNvbS5zdW4ueG1sLndzOmpheHdzLXJ0OjoyLjMuMCAoaW1wbGVtZW50YXRpb24pCiAgICAKICAgIFRoZSBzb3VyY2UgY29kZSBmb3IgZWFjaCBvZiB0aGVzZSBpcyBtYWludGFpbmVkIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9qYXZhZWUgLgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NjcyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBOb3YgMjkgMjE6MzI6MzEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjcyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDJDM0YzMTc5QUYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyOSBOb3YgMjAxNyAyMTozMjozMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE0NTI3IGludm9rZWQgYnkgdWlkIDUwMCk7IDI5IE5vdiAyMDE3IDIxOjMyOjMwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNDQ1MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOSBOb3YgMjAxNyAyMTozMjozMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE0NDQxIGludm9rZWQgYnkgdWlkIDk5KTsgMjkgTm92IDIwMTcgMjE6MzI6MzAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDI5IE5vdiAyMDE3IDIxOjMyOjMwICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDZCODYyRTEwQzU7IFdlZCwgMjkgTm92IDIwMTcgMjE6MzI6MzAgKzAwMDAgKFVUQykKRnJvbTogZW9saXZlbGxpIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNjgtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE2OC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzE2ODogW1NVUkVGSVJFLTE0MjRdIGphdmF4LnRyYW5zYWN0aW9uLlRyYW5zYWN0aW9uTWFuYS4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMTI5MjEzMjMwLjZCODYyRTEwQzVAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFdlZCwgMjkgTm92IDIwMTcgMjE6MzI6MzAgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIGVvbGl2ZWxsaSBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNjgKICAKICAgIEBUaWJvcjE3IG9rIEkgd2lsbCBkbyB0aGlzIGNoYW5nZS4gV2lsbCBzZW5kIHRvbW9ycm93LgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0Njc4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBOb3YgMzAgMTA6Mjg6MDggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0Njc4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDU1NjNDMTBBMkIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAzMCBOb3YgMjAxNyAxMDoyODowOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDUyNjY5IGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIE5vdiAyMDE3IDEwOjI4OjA4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MjU5NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMCBOb3YgMjAxNyAxMDoyODowOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUyNTg1IGludm9rZWQgYnkgdWlkIDk5KTsgMzAgTm92IDIwMTcgMTA6Mjg6MDcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDMwIE5vdiAyMDE3IDEwOjI4OjA3ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDhENkNERTM2RDQ7IFRodSwgMzAgTm92IDIwMTcgMTA6Mjg6MDcgKzAwMDAgKFVUQykKRnJvbTogc3RlZmFuc2VpZmVydCA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTktbWF2ZW4tYXJjaGV0eXBlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xOS1tYXZlbi1hcmNoZXR5cGVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLWFyY2hldHlwZSBpc3N1ZSAjMTk6IEFSQ0hFVFlQRS01MzYgVXBkYXRlIEdyb292eSBEZXBlbmRlbmN5IGFuZCBJbmNsdWQuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTEzMDEwMjgwNy44RDZDREUzNkQ0QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBUaHUsIDMwIE5vdiAyMDE3IDEwOjI4OjA3ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBzdGVmYW5zZWlmZXJ0IGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1hcmNoZXR5cGUvcHVsbC8xOQogIAogICAgdWgsIHRoaXMgd2FzIHdyb25nIGJyYW5jaCAtIGNsb3NpbmcKCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDY3OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgTm92IDMwIDEwOjI4OjA5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDY3OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3ODA0MTEwQTMxCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMzAgTm92IDIwMTcgMTA6Mjg6MDkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1MzQ3NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMCBOb3YgMjAxNyAxMDoyODowOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTMzOTMgaW52b2tlZCBieSB1aWQgNTAwKTsgMzAgTm92IDIwMTcgMTA6Mjg6MDkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MzM4MSBpbnZva2VkIGJ5IHVpZCA5OSk7IDMwIE5vdiAyMDE3IDEwOjI4OjA4IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAzMCBOb3YgMjAxNyAxMDoyODowOCArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBBQzQ2NEUzNkQ0OyBUaHUsIDMwIE5vdiAyMDE3IDEwOjI4OjA4ICswMDAwIChVVEMpCkZyb206IHN0ZWZhbnNlaWZlcnQgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE5LW1hdmVuLWFyY2hldHlwZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTktbWF2ZW4tYXJjaGV0eXBlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1hcmNoZXR5cGUgcHVsbCByZXF1ZXN0ICMxOTogQVJDSEVUWVBFLTUzNiBVcGRhdGUgR3Jvb3Z5IERlcGVuZGVuY3kgYW5kLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzExMzAxMDI4MDguQUM0NjRFMzZENEBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogVGh1LCAzMCBOb3YgMjAxNyAxMDoyODowOCArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgc3RlZmFuc2VpZmVydCBjbG9zZWQgdGhlIHB1bGwgcmVxdWVzdCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWFyY2hldHlwZS9wdWxsLzE5CgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ2ODEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE5vdiAzMCAxOToyMToxNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ2ODEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRTJCMzMxMDQ2MwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDMwIE5vdiAyMDE3IDE5OjIxOjE1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjgwNzYgaW52b2tlZCBieSB1aWQgNTAwKTsgMzAgTm92IDIwMTcgMTk6MjE6MTUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY3OTkzIGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIE5vdiAyMDE3IDE5OjIxOjE1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjc5ODIgaW52b2tlZCBieSB1aWQgOTkpOyAzMCBOb3YgMjAxNyAxOToyMToxNSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMzAgTm92IDIwMTcgMTk6MjE6MTUgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgQkE3NDRERkJFQzsgVGh1LCAzMCBOb3YgMjAxNyAxOToyMToxNCArMDAwMCAoVVRDKQpGcm9tOiBUaWJvcjE3IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNjctbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE2Ny1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgcHVsbCByZXF1ZXN0ICMxNjc6IFNwZWVkdXAgU3RhbmRhcmQgT3V0cHV0IGlmIFRlc3RzCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzExMzAxOTIxMTQuQkE3NDRERkJFQ0BnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogVGh1LCAzMCBOb3YgMjAxNyAxOToyMToxNCArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgVGlib3IxNyBjb21tZW50ZWQgb24gYSBkaWZmIGluIHRoZSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2NyNkaXNjdXNzaW9uX3IxNTQxNzQ2NzQKICAKICAgIC0tLSBEaWZmOiBzdXJlZmlyZS1hcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3N1cmVmaXJlL2Jvb3Rlci9Gb3JraW5nUnVuTGlzdGVuZXIuamF2YSAtLS0KICAgIEBAIC0yMDAsMTQgKzIwMCw4IEBAIHZvaWQgc2VuZFByb3BzKCkKICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlVGVzdE91dHB1dCggYnl0ZVtdIGJ1ZiwgaW50IG9mZiwgaW50IGxlbiwgYm9vbGVhbiBzdGRvdXQgKQogICAgICAgICB7CiAgICAtICAgICAgICBieXRlW10gaGVhZGVyID0gc3Rkb3V0ID8gc3RkT3V0SGVhZGVyIDogc3RkRXJySGVhZGVyOwogICAgLSAgICAgICAgYnl0ZVtdIGNvbnRlbnQgPQogICAgLSAgICAgICAgICAgIG5ldyBieXRlW2J1Zi5sZW5ndGggKiAzICsgMV07IC8vIEhleC1lc2NhcGluZyBjYW4gYmUgdXAgdG8gMyB0aW1lcyBsZW5ndGggb2YgYSByZWd1bGFyIGJ5dGUuCiAgICAtICAgICAgICBpbnQgaSA9IGVzY2FwZUJ5dGVzVG9QcmludGFibGUoIGNvbnRlbnQsIDAsIGJ1Ziwgb2ZmLCBsZW4gKTsKICAgIC0gICAgICAgIGNvbnRlbnRbaSsrXSA9IChieXRlKSAnXG4nOwogICAgLSAgICAgICAgYnl0ZVtdIGVuY29kZUJ5dGVzID0gbmV3IGJ5dGVbaGVhZGVyLmxlbmd0aCArIGldOwogICAgLSAgICAgICAgU3lzdGVtLmFycmF5Y29weSggaGVhZGVyLCAwLCBlbmNvZGVCeXRlcywgMCwgaGVhZGVyLmxlbmd0aCApOwogICAgLSAgICAgICAgU3lzdGVtLmFycmF5Y29weSggY29udGVudCwgMCwgZW5jb2RlQnl0ZXMsIGhlYWRlci5sZW5ndGgsIGkgKTsKICAgICsgICAgICAgIGZpbmFsIGJ5dGVbXSBoZWFkZXIgPSBzdGRvdXQgPyBzdGRPdXRIZWFkZXIgOiBzdGRFcnJIZWFkZXI7CiAgICArICAgICAgICBmaW5hbCBieXRlW10gZW5jb2RlQnl0ZXMgPSBlc2NhcGVCeXRlc1RvUHJpbnRhYmxlKCBoZWFkZXIsIGJ1Ziwgb2ZmLCBsZW4gKTsKICAgIC0tLSBFbmQgZGlmZiAtLQogICAgCiAgICBXaHkgaXQgaXMgc28gY29tcGxleC4gV2h5IHlvdSBkaWQgbm90IHdyaXRlIHRoZSBzdHJlYW0gdG8gYFByaW50U3RyZWFtI3dyaXRlKGJ5dGUgYnVmW10sIGludCBvZmYsIGludCBsZW4pYCBhbmQgd2h5IHlvdSBkaWQgbm90IGNoYW5nZSBgZXNjYXBlQnl0ZXNUb1ByaW50YWJsZWAgc28gdGhhdCBgaGVhZGVyYCwgJ2J1Zicgd291bGQgZ28gdG8gdGhlIG1ldGhvZCBwYXJhbWV0ZXJzIGFuZCBqdXN0IG9ubHkgb25lIGFycmF5IGNvdWxkIGJlIGFsbG9jYXRlZCB3aXRob3V0IGFueSBjb3B5LXBhc3RlIGJ5dGVzPwoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NjgyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBOb3YgMzAgMTk6MzI6MjkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjgyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDI1RTcyMTA1MkYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAzMCBOb3YgMjAxNyAxOTozMjoyOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk3NTcxIGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIE5vdiAyMDE3IDE5OjMyOjI4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NzQ5NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMCBOb3YgMjAxNyAxOTozMjoyOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk3NDc5IGludm9rZWQgYnkgdWlkIDk5KTsgMzAgTm92IDIwMTcgMTk6MzI6MjggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDMwIE5vdiAyMDE3IDE5OjMyOjI4ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIEFCNTU0REZCRDc7IFRodSwgMzAgTm92IDIwMTcgMTk6MzI6MjcgKzAwMDAgKFVUQykKRnJvbTogVGlib3IxNyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTY3LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNjctbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNjc6IFNwZWVkdXAgU3RhbmRhcmQgT3V0cHV0IGlmIFRlc3RzCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzExMzAxOTMyMjcuQUI1NTRERkJEN0BnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogVGh1LCAzMCBOb3YgMjAxNyAxOTozMjoyNyArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgVGlib3IxNyBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNjcKICAKICAgIEBEYUdlUmUgCiAgICBEaWQgeW91IGNyZWF0ZSBhIHRpY2tldCBpbiBKSVJBPwogICAgaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9TVVJFRklSRQogICAgSWYgeW91IGRpZCwgd2hpY2ggdGlja2V0IG51bWJlciBpdCBpcz8KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDY4My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgTm92IDMwIDIwOjI4OjU5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDY4My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA2NkU5NzEwOEQzCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMzAgTm92IDIwMTcgMjA6Mjg6NTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0NDkxNiBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMCBOb3YgMjAxNyAyMDoyODo1OSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDQ4NDAgaW52b2tlZCBieSB1aWQgNTAwKTsgMzAgTm92IDIwMTcgMjA6Mjg6NTkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0NDgyOSBpbnZva2VkIGJ5IHVpZCA5OSk7IDMwIE5vdiAyMDE3IDIwOjI4OjU4IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAzMCBOb3YgMjAxNyAyMDoyODo1OCArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBFMTEzNEVFRTI2OyBUaHUsIDMwIE5vdiAyMDE3IDIwOjI4OjU3ICswMDAwIChVVEMpCkZyb206IFRpYm9yMTcgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE3MC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTcwLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBpc3N1ZSAjMTcwOiBbU1VSRUZJUkUtMTQ0OF0gQ2xhcmlmaWVkIHNwZWNpZnlpbmcgbXVsdGlwbGUgY2F0Li4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzExMzAyMDI4NTcuRTExMzRFRUUyNkBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogVGh1LCAzMCBOb3YgMjAxNyAyMDoyODo1NyArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgVGlib3IxNyBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNzAKICAKICAgIFRoeCwgdGhpcyBQUiBjYW4gYmUgY2xvc2VkLgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0Njg0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBOb3YgMzAgMjA6MzY6NDkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0Njg0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDEzNDYwMTA5NDMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAzMCBOb3YgMjAxNyAyMDozNjo0OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDc4NzEyIGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIE5vdiAyMDE3IDIwOjM2OjQ4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3ODYyNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMCBOb3YgMjAxNyAyMDozNjo0OCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc4NjEzIGludm9rZWQgYnkgdWlkIDk5KTsgMzAgTm92IDIwMTcgMjA6MzY6NDggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDMwIE5vdiAyMDE3IDIwOjM2OjQ4ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDRCQjBFRUVFMjY7IFRodSwgMzAgTm92IDIwMTcgMjA6MzY6NDggKzAwMDAgKFVUQykKRnJvbTogVGlib3IxNyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTcxLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNzEtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIHB1bGwgcmVxdWVzdCAjMTcxOiBbU1VSRUZJUkUtMTQ0NV0gRXhwbGljaXRseSBkZWZpbmUgU3VyZWZpcmUuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTEzMDIwMzY0OC40QkIwRUVFRTI2QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBUaHUsIDMwIE5vdiAyMDE3IDIwOjM2OjQ4ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBUaWJvcjE3IGNvbW1lbnRlZCBvbiBhIGRpZmYgaW4gdGhlIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTcxI2Rpc2N1c3Npb25fcjE1NDE5MzgwMgogIAogICAgLS0tIERpZmY6IG1hdmVuLXN1cmVmaXJlLWNvbW1vbi9zcmMvdGVzdC9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2luL3N1cmVmaXJlL1N1cmVmaXJlUHJvcGVydGllc1Rlc3QuamF2YSAtLS0KICAgIEBAIC03MCw5ICs3MCwzNSBAQCBwdWJsaWMgdm9pZCB0ZXN0Q29uc3RydWN0V2l0aE90aGVyKCkKICAgICAgICAgICAgIHNyYy5zZXRQcm9wZXJ0eSggImIiLCAiMiIgKTsKICAgICAgICAgICAgIFN1cmVmaXJlUHJvcGVydGllcyBvcmRlcmVkUHJvcGVydGllcyA9IG5ldyBTdXJlZmlyZVByb3BlcnRpZXMoIHNyYyApOwogICAgICAgICAgICAgLy8gQ2Fubm90IG1ha2UgYXNzdW1wdGlvbnMgYWJvdXQgaW5zZXJ0aW9uIG9yZGVyCiAgICAtICAgICAgICBhc3NlcnRFcXVhbHMoIDIsIG9yZGVyZWRQcm9wZXJ0aWVzLnNpemUoKSApOwogICAgLQogICAgKyAgICAgICAgaW50IGV4cGVjdGVkQ291bnQgPSAwOwogICAgKyAgICAgICAgLy8ga2V5cygpIHVzZXMgdGhlIGl0ZW1zIHByb3BlcnR5LCBtb3JlIHJlbGlhYmxlIHRvIHRlc3QgdGhhbiBzaXplKCksCiAgICArICAgICAgICAvLyB3aGljaCBpcyBiYXNlZCBvbiB0aGUgUHJvcGVydGllcyBjbGFzcwogICAgKyAgICAgICAgLy8gc2VlIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvU1VSRUZJUkUtMTQ0NQogICAgKyAgICAgICAgRW51bWVyYXRpb248T2JqZWN0PiBrZXlzID0gb3JkZXJlZFByb3BlcnRpZXMua2V5cygpOwogICAgKyAgICAgICAgd2hpbGUgKCBrZXlzLmhhc01vcmVFbGVtZW50cygpICkgewogICAgKyAgICAgICAgICAgIGtleXMubmV4dEVsZW1lbnQoKTsKICAgICsgICAgICAgICAgICBleHBlY3RlZENvdW50Kys7CiAgICArICAgICAgICB9CiAgICArICAgICAgICBhc3NlcnRFcXVhbHMoIDIsIGV4cGVjdGVkQ291bnQgKTsKICAgIC0tLSBFbmQgZGlmZiAtLQogICAgCiAgICBXZSBtaXNzZWQgb25lIG1ldGhvZCBJIG1lbnRpb25lZCBiZWZvcmUuIENhbiB5b3UgYWRkIGFuIGFzc2VydCB0aGF0IG1ldGhvZCBgZ2V0U3RyaW5nS2V5U2V0KClgIHJldHVybnMgc2FtZSBlbGVtZW50cyBsaWtlIGl0IGlzIGluIGBrZXlzKClgLiBNYXliZSB0aGlzIHdpbGwgaGVscDoKICAgIGBqYXZhLnV0aWwuQ29sbGVjdGlvbnMjbGlzdChFbnVtZXJhdGlvbik6IExpc3RgCiAgICBXZSBjYW4gZG8gaXQgaW4gYm90aCB0ZXN0cy4KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDY4NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgTm92IDMwIDIxOjM4OjA3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDY4NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBEQkY5OTEwQzdECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMzAgTm92IDIwMTcgMjE6Mzg6MDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzMjkyOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMCBOb3YgMjAxNyAyMTozODowMiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzI4MzUgaW52b2tlZCBieSB1aWQgNTAwKTsgMzAgTm92IDIwMTcgMjE6Mzg6MDIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMjgyMyBpbnZva2VkIGJ5IHVpZCA5OSk7IDMwIE5vdiAyMDE3IDIxOjM4OjAyIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAzMCBOb3YgMjAxNyAyMTozODowMiArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCAyQzJEOERGQkQ3OyBUaHUsIDMwIE5vdiAyMDE3IDIxOjM4OjAyICswMDAwIChVVEMpCkZyb206IERhR2VSZSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTY3LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNjctbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIHB1bGwgcmVxdWVzdCAjMTY3OiBTcGVlZHVwIFN0YW5kYXJkIE91dHB1dCBpZiBUZXN0cwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMTMwMjEzODAyLjJDMkQ4REZCRDdAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFRodSwgMzAgTm92IDIwMTcgMjE6Mzg6MDIgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIERhR2VSZSBjb21tZW50ZWQgb24gYSBkaWZmIGluIHRoZSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2NyNkaXNjdXNzaW9uX3IxNTQyMDg4MDUKICAKICAgIC0tLSBEaWZmOiBzdXJlZmlyZS1hcGkvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3N1cmVmaXJlL2Jvb3Rlci9Gb3JraW5nUnVuTGlzdGVuZXIuamF2YSAtLS0KICAgIEBAIC0yMDAsMTQgKzIwMCw4IEBAIHZvaWQgc2VuZFByb3BzKCkKICAgICAgICAgQE92ZXJyaWRlCiAgICAgICAgIHB1YmxpYyB2b2lkIHdyaXRlVGVzdE91dHB1dCggYnl0ZVtdIGJ1ZiwgaW50IG9mZiwgaW50IGxlbiwgYm9vbGVhbiBzdGRvdXQgKQogICAgICAgICB7CiAgICAtICAgICAgICBieXRlW10gaGVhZGVyID0gc3Rkb3V0ID8gc3RkT3V0SGVhZGVyIDogc3RkRXJySGVhZGVyOwogICAgLSAgICAgICAgYnl0ZVtdIGNvbnRlbnQgPQogICAgLSAgICAgICAgICAgIG5ldyBieXRlW2J1Zi5sZW5ndGggKiAzICsgMV07IC8vIEhleC1lc2NhcGluZyBjYW4gYmUgdXAgdG8gMyB0aW1lcyBsZW5ndGggb2YgYSByZWd1bGFyIGJ5dGUuCiAgICAtICAgICAgICBpbnQgaSA9IGVzY2FwZUJ5dGVzVG9QcmludGFibGUoIGNvbnRlbnQsIDAsIGJ1Ziwgb2ZmLCBsZW4gKTsKICAgIC0gICAgICAgIGNvbnRlbnRbaSsrXSA9IChieXRlKSAnXG4nOwogICAgLSAgICAgICAgYnl0ZVtdIGVuY29kZUJ5dGVzID0gbmV3IGJ5dGVbaGVhZGVyLmxlbmd0aCArIGldOwogICAgLSAgICAgICAgU3lzdGVtLmFycmF5Y29weSggaGVhZGVyLCAwLCBlbmNvZGVCeXRlcywgMCwgaGVhZGVyLmxlbmd0aCApOwogICAgLSAgICAgICAgU3lzdGVtLmFycmF5Y29weSggY29udGVudCwgMCwgZW5jb2RlQnl0ZXMsIGhlYWRlci5sZW5ndGgsIGkgKTsKICAgICsgICAgICAgIGZpbmFsIGJ5dGVbXSBoZWFkZXIgPSBzdGRvdXQgPyBzdGRPdXRIZWFkZXIgOiBzdGRFcnJIZWFkZXI7CiAgICArICAgICAgICBmaW5hbCBieXRlW10gZW5jb2RlQnl0ZXMgPSBlc2NhcGVCeXRlc1RvUHJpbnRhYmxlKCBoZWFkZXIsIGJ1Ziwgb2ZmLCBsZW4gKTsKICAgIC0tLSBFbmQgZGlmZiAtLQogICAgCiAgICBJbiBteSBleHBlcmltZW50cywgbWFueSBjYWxscyBvZiBQcmludFN0cmVhbSN3cml0ZSBsZWFkIHRvIGEgaGVhdmlseSBkZWNyZWFzZWQgcGVyZm9ybWFuY2UgY29tcGFyZWQgdG8gc2VuZGluZyBiaWdnZXIgYXJyYXlzIHRvIHRoZSBQcmludFN0cmVhbS4gVGhlcmVmb3JlLCBJIGNvbnN0cnVjdGVkIGEgYmlnIGFycmF5IGV2ZXJ5IHRpbWUsIGFuZCB0aGlzIG5lZWRlZCBkaWZmZXJlbmQgaGFuZGxpbmcuCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ2ODYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE5vdiAzMCAyMTo0MDoxMyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ2ODYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQkEzOEMxMEM5QwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDMwIE5vdiAyMDE3IDIxOjQwOjEzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDM1ODcgaW52b2tlZCBieSB1aWQgNTAwKTsgMzAgTm92IDIwMTcgMjE6NDA6MTMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQzNTE0IGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIE5vdiAyMDE3IDIxOjQwOjEzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDM1MDMgaW52b2tlZCBieSB1aWQgOTkpOyAzMCBOb3YgMjAxNyAyMTo0MDoxMyAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMzAgTm92IDIwMTcgMjE6NDA6MTMgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgRjJGRDFERkJENzsgVGh1LCAzMCBOb3YgMjAxNyAyMTo0MDoxMiArMDAwMCAoVVRDKQpGcm9tOiBEYUdlUmUgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE2Ny1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTY3LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBpc3N1ZSAjMTY3OiBTcGVlZHVwIFN0YW5kYXJkIE91dHB1dCBpZiBUZXN0cwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMTMwMjE0MDEyLkYyRkQxREZCRDdAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFRodSwgMzAgTm92IDIwMTcgMjE6NDA6MTIgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIERhR2VSZSBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNjcKICAKICAgIEkgZGlkIG5vdCBjcmVhdGUgYSB0aWNrZXQsIGlzIHRoaXMgcmVjb21tZW5kZWQ/IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtbWF2ZW4tZGV2ZWxvcG1lbnQuaHRtbCNDcmVhdGluZ19hbmRfc3VibWl0dGluZ19hX3BhdGNoIG9ubHkgY292ZXJzIHBhdGNoaW5nIGluIFNWTi4uCiAgICAKICAgIEkgZGlkIG5vdCB0ZXN0IGl0IHdpdGggb3RoZXIgZW5jb2RpbmdzLiBJIHdpbGwgZG8gc28gYW5kIHJlcG9ydC4KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDY5My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgRGVjICAxIDEwOjAxOjUzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDY5My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4M0FERTEwNTg0Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgIDEgRGVjIDIwMTcgMTA6MDE6NTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0ODMwNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxIERlYyAyMDE3IDEwOjAxOjUzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0ODIyNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxIERlYyAyMDE3IDEwOjAxOjUzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDgyMTYgaW52b2tlZCBieSB1aWQgOTkpOyAxIERlYyAyMDE3IDEwOjAxOjUyIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAwMSBEZWMgMjAxNyAxMDowMTo1MiArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBDQUEyRkUwMUM0OyBGcmksICAxIERlYyAyMDE3IDEwOjAxOjUxICswMDAwIChVVEMpCkZyb206IGFjb2dvbHVlZ25lcyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTcxLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNzEtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIHB1bGwgcmVxdWVzdCAjMTcxOiBbU1VSRUZJUkUtMTQ0NV0gRXhwbGljaXRseSBkZWZpbmUgU3VyZWZpcmUuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTIwMTEwMDE1MS5DQUEyRkUwMUM0QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBGcmksICAxIERlYyAyMDE3IDEwOjAxOjUxICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBhY29nb2x1ZWduZXMgY29tbWVudGVkIG9uIGEgZGlmZiBpbiB0aGUgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNzEjZGlzY3Vzc2lvbl9yMTU0MzA3OTMzCiAgCiAgICAtLS0gRGlmZjogbWF2ZW4tc3VyZWZpcmUtY29tbW9uL3NyYy90ZXN0L2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW4vc3VyZWZpcmUvU3VyZWZpcmVQcm9wZXJ0aWVzVGVzdC5qYXZhIC0tLQogICAgQEAgLTcwLDkgKzcwLDM1IEBAIHB1YmxpYyB2b2lkIHRlc3RDb25zdHJ1Y3RXaXRoT3RoZXIoKQogICAgICAgICAgICAgc3JjLnNldFByb3BlcnR5KCAiYiIsICIyIiApOwogICAgICAgICAgICAgU3VyZWZpcmVQcm9wZXJ0aWVzIG9yZGVyZWRQcm9wZXJ0aWVzID0gbmV3IFN1cmVmaXJlUHJvcGVydGllcyggc3JjICk7CiAgICAgICAgICAgICAvLyBDYW5ub3QgbWFrZSBhc3N1bXB0aW9ucyBhYm91dCBpbnNlcnRpb24gb3JkZXIKICAgIC0gICAgICAgIGFzc2VydEVxdWFscyggMiwgb3JkZXJlZFByb3BlcnRpZXMuc2l6ZSgpICk7CiAgICAtCiAgICArICAgICAgICBpbnQgZXhwZWN0ZWRDb3VudCA9IDA7CiAgICArICAgICAgICAvLyBrZXlzKCkgdXNlcyB0aGUgaXRlbXMgcHJvcGVydHksIG1vcmUgcmVsaWFibGUgdG8gdGVzdCB0aGFuIHNpemUoKSwKICAgICsgICAgICAgIC8vIHdoaWNoIGlzIGJhc2VkIG9uIHRoZSBQcm9wZXJ0aWVzIGNsYXNzCiAgICArICAgICAgICAvLyBzZWUgaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9TVVJFRklSRS0xNDQ1CiAgICArICAgICAgICBFbnVtZXJhdGlvbjxPYmplY3Q+IGtleXMgPSBvcmRlcmVkUHJvcGVydGllcy5rZXlzKCk7CiAgICArICAgICAgICB3aGlsZSAoIGtleXMuaGFzTW9yZUVsZW1lbnRzKCkgKSB7CiAgICArICAgICAgICAgICAga2V5cy5uZXh0RWxlbWVudCgpOwogICAgKyAgICAgICAgICAgIGV4cGVjdGVkQ291bnQrKzsKICAgICsgICAgICAgIH0KICAgICsgICAgICAgIGFzc2VydEVxdWFscyggMiwgZXhwZWN0ZWRDb3VudCApOwogICAgLS0tIEVuZCBkaWZmIC0tCiAgICAKICAgIEdvdCBpdCwgZG9uZS4KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDY5NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgRGVjICAxIDE2OjMzOjMwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDY5NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFMkNDMTE3NkE1Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgIDEgRGVjIDIwMTcgMTY6MzM6MjkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1NjgwNiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxIERlYyAyMDE3IDE2OjMzOjI5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NjcyNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxIERlYyAyMDE3IDE2OjMzOjI5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTY3MDkgaW52b2tlZCBieSB1aWQgOTkpOyAxIERlYyAyMDE3IDE2OjMzOjI5IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAwMSBEZWMgMjAxNyAxNjozMzoyOSArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCAyODIyMURGQTBGOyBGcmksICAxIERlYyAyMDE3IDE2OjMzOjI5ICswMDAwIChVVEMpCkZyb206IGVvbGl2ZWxsaSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTY4LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNjgtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNjg6IFtTVVJFRklSRS0xNDI0XSBqYXZheC50cmFuc2FjdGlvbi5UcmFuc2FjdGlvbk1hbmEuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTIwMTE2MzMyOS4yODIyMURGQTBGQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBGcmksICAxIERlYyAyMDE3IDE2OjMzOjI5ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBlb2xpdmVsbGkgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY4CiAgCiAgICBAVGlib3IxNyBJIGFtIHRyeWluZyB0byB1cGRhdGUgdGhlIHNpdGUsIGhvdyBjYW4gSSByZWJ1aWxkIHRoZSBzaXRlIGxvY2FsbHkgPwogICAgSSBhbSB0cnlpbmcgd2l0aCAibXZuIHNpdGUiIGJ1dCBpdCBmYWlscwoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0Njk1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBEZWMgIDEgMTY6MzU6MjcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0Njk1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDMxMjY0MTc2QzMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAgMSBEZWMgMjAxNyAxNjozNToyNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDYzNzgwIGludm9rZWQgYnkgdWlkIDUwMCk7IDEgRGVjIDIwMTcgMTY6MzU6MjYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYzNzEwIGludm9rZWQgYnkgdWlkIDUwMCk7IDEgRGVjIDIwMTcgMTY6MzU6MjYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MzY5OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDEgRGVjIDIwMTcgMTY6MzU6MjYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDAxIERlYyAyMDE3IDE2OjM1OjI2ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDY3MEIzREZBMEY7IEZyaSwgIDEgRGVjIDIwMTcgMTY6MzU6MjYgKzAwMDAgKFVUQykKRnJvbTogZW9saXZlbGxpIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNjgtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE2OC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzE2ODogW1NVUkVGSVJFLTE0MjRdIGphdmF4LnRyYW5zYWN0aW9uLlRyYW5zYWN0aW9uTWFuYS4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMjAxMTYzNTI2LjY3MEIzREZBMEZAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IEZyaSwgIDEgRGVjIDIwMTcgMTY6MzU6MjYgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIGVvbGl2ZWxsaSBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNjgKICAKICAgIE9oLCBnb3QgaXQsIEkgaGF2ZSB0byBydW4gIm12biBzaXRlIiBvbiB0aGUgcm9vdCBvZiB0aGUgcHJvamVjdCBub3Qgb25seSBvbiBtYXZlbi1zdXJlZmlyZS1wbHVnaW4KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDY5Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgRGVjICAxIDE2OjQzOjUyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDY5Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBBOTAxNjE3NzBBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgIDEgRGVjIDIwMTcgMTY6NDM6NTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4ODE5MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxIERlYyAyMDE3IDE2OjQzOjUyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4ODEyMiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxIERlYyAyMDE3IDE2OjQzOjUyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODgxMTEgaW52b2tlZCBieSB1aWQgOTkpOyAxIERlYyAyMDE3IDE2OjQzOjUyIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAwMSBEZWMgMjAxNyAxNjo0Mzo1MiArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBFREY5NERGQTBGOyBGcmksICAxIERlYyAyMDE3IDE2OjQzOjUwICswMDAwIChVVEMpCkZyb206IGVvbGl2ZWxsaSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTY4LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNjgtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNjg6IFtTVVJFRklSRS0xNDI0XSBqYXZheC50cmFuc2FjdGlvbi5UcmFuc2FjdGlvbk1hbmEuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTIwMTE2NDM1MC5FREY5NERGQTBGQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBGcmksICAxIERlYyAyMDE3IDE2OjQzOjUwICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBlb2xpdmVsbGkgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY4CiAgCiAgICBAVGlib3IxNyBwbGVhc2UgY2hlY2sgaXQgb3V0CgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ2OTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIERlYyAgMSAxOToyMzozOSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ2OTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMUUwMzgxN0QzMwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksICAxIERlYyAyMDE3IDE5OjIzOjM5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTkyODQgaW52b2tlZCBieSB1aWQgNTAwKTsgMSBEZWMgMjAxNyAxOToyMzozOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTkyMDkgaW52b2tlZCBieSB1aWQgNTAwKTsgMSBEZWMgMjAxNyAxOToyMzozOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk5MTk4IGludm9rZWQgYnkgdWlkIDk5KTsgMSBEZWMgMjAxNyAxOToyMzozOCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMDEgRGVjIDIwMTcgMTk6MjM6MzggKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNjM5QzhGNjAyNDsgRnJpLCAgMSBEZWMgMjAxNyAxOToyMzozOCArMDAwMCAoVVRDKQpGcm9tOiBUaWJvcjE3IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNzAtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE3MC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzE3MDogW1NVUkVGSVJFLTE0NDhdIENsYXJpZmllZCBzcGVjaWZ5aW5nIG11bHRpcGxlIGNhdC4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMjAxMTkyMzM4LjYzOUM4RjYwMjRAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IEZyaSwgIDEgRGVjIDIwMTcgMTk6MjM6MzggKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIFRpYm9yMTcgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTcwCiAgCiAgICBAY2xheWNlcGhhcyAKICAgIFRoaXMgUFIgd2FzIHB1c2hlZCB0byBtYXN0ZXIgeWVzdGVyZGF5LgogICAgUGxlYXNlIGNsb3NlIHRoaXMgUFIsIFRoeC4KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDY5OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgRGVjICAxIDE5OjM0OjE2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDY5OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA5OTMwMTE3REExCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgIDEgRGVjIDIwMTcgMTk6MzQ6MTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyNTI3NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxIERlYyAyMDE3IDE5OjM0OjE2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNTIwNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxIERlYyAyMDE3IDE5OjM0OjE2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjUxOTMgaW52b2tlZCBieSB1aWQgOTkpOyAxIERlYyAyMDE3IDE5OjM0OjE1IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAwMSBEZWMgMjAxNyAxOTozNDoxNSArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBEOERDRERGQkVDOyBGcmksICAxIERlYyAyMDE3IDE5OjM0OjE1ICswMDAwIChVVEMpCkZyb206IGNsYXljZXBoYXMgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE3MC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTcwLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBwdWxsIHJlcXVlc3QgIzE3MDogW1NVUkVGSVJFLTE0NDhdIENsYXJpZmllZCBzcGVjaWZ5aW5nIG11bHRpLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzEyMDExOTM0MTUuRDhEQ0RERkJFQ0BnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogRnJpLCAgMSBEZWMgMjAxNyAxOTozNDoxNSArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgY2xheWNlcGhhcyBjbG9zZWQgdGhlIHB1bGwgcmVxdWVzdCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTcwCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3MDAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIERlYyAgMSAyMzoxMzozMyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3MDAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNURBRUYxMDY3QQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksICAxIERlYyAyMDE3IDIzOjEzOjMzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTY2MzggaW52b2tlZCBieSB1aWQgNTAwKTsgMSBEZWMgMjAxNyAyMzoxMzozMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTY1MDIgaW52b2tlZCBieSB1aWQgNTAwKTsgMSBEZWMgMjAxNyAyMzoxMzozMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk2NDkxIGludm9rZWQgYnkgdWlkIDk5KTsgMSBEZWMgMjAxNyAyMzoxMzozMiAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMDEgRGVjIDIwMTcgMjM6MTM6MzIgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgOTk2MzJERkEwRjsgRnJpLCAgMSBEZWMgMjAxNyAyMzoxMzozMiArMDAwMCAoVVRDKQpGcm9tOiBhc2ZnaXQgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTU2LW1hdmVuLXNjbUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItNTYtbWF2ZW4tc2NtQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zY20gcHVsbCByZXF1ZXN0ICM1NjogW1NDTS03MzldIFVzZSBzaGFsbG93IGNsb25lcyB3aGVuIGNsb25pbmcgYSBnaXQgLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzEyMDEyMzEzMzIuOTk2MzJERkEwRkBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogRnJpLCAgMSBEZWMgMjAxNyAyMzoxMzozMiArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgYXNmZ2l0IGNsb3NlZCB0aGUgcHVsbCByZXF1ZXN0IGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc2NtL3B1bGwvNTYKCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDcwMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgRGVjICAyIDAxOjMwOjU2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDcwMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA1OENDNTEwQjBCCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDIgRGVjIDIwMTcgMDE6MzA6NTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzNjg1MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIERlYyAyMDE3IDAxOjMwOjU2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNjU2OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIERlYyAyMDE3IDAxOjMwOjU1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzY1NTcgaW52b2tlZCBieSB1aWQgOTkpOyAyIERlYyAyMDE3IDAxOjMwOjU1IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwMiBEZWMgMjAxNyAwMTozMDo1NSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEIwQjhEMUEwMkM5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgMiBEZWMgMjAxNyAwMTozMDo1NCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDEuNQpYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuNSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIEtBTV9MSU5LQkFJVD0wLjVdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDI5dUZVTUxSeTFlciBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgIDIgRGVjIDIwMTcgMDE6MzA6NTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZGQxNzMzMi5rYXNzZXJ2ZXIuY29tIChkZDE3MzMyLmthc3NlcnZlci5jb20gWzg1LjEzLjEzOC4yNl0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA1Q0FGNDVGMjRBCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgMiBEZWMgMjAxNyAwMTozMDo1MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBkZDE3MzMyLmthc3NlcnZlci5jb20gKGRkMDgwMi5rYXNzZXJ2ZXIuY29tIFs4NS4xMy4xNDMuMV0pCglieSBkZDE3MzMyLmthc3NlcnZlci5jb20gKFBvc3RmaXgpIHdpdGggRVNNVFBTQSBpZCAwNENEODI5QzA4NTIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICAyIERlYyAyMDE3IDAyOjMwOjQ1ICswMTAwIChDRVQpCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKWC1TZW5kZXJJUDogOTYuNTQuMjM3LjEKVXNlci1BZ2VudDogQUxMLUlOS0wgV2VibWFpbCAyLjExCkluLVJlcGx5LVRvOiA8MjAxNzExMjYyMTM2MjAuMjIwMjQyOUMwQTc1QGRkMTczMzIua2Fzc2VydmVyLmNvbT4KUmVmZXJlbmNlczogPDIwMTcxMTA5MDUzNTUxLjk1N0Q0MjlDNTBEMUBkZDE3MzMyLmthc3NlcnZlci5jb20+IDwxNjM1MDk0Lm5UaFhvTXZqclZAZ2lnYT4gPDIwMTcxMTI1MjIwODI3LkE0QzY1MjlDOENCN0BkZDE3MzMyLmthc3NlcnZlci5jb20+PDE4NjY1NjM0LkM2YTY1bkU5VHRAZ2lnYT48MjAxNzExMjYyMTM2MjAuMjIwMjQyOUMwQTc1QGRkMTczMzIua2Fzc2VydmVyLmNvbT4KU3ViamVjdDogUmU6IE1hdmVuIHJlc29sdmVyIGJyYW5jaCBjb25zb2xpZGF0aW9uCkZyb206ICJNYW5mcmVkIE1vc2VyIiA8bWFuZnJlZEBzaW1wbGlnaWxpdHkuY29tPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JZDogPDIwMTcxMjAyMDEzMDQ2LjA0Q0Q4MjlDMDg1MkBkZDE3MzMyLmthc3NlcnZlci5jb20+CkRhdGU6IFNhdCwgIDIgRGVjIDIwMTcgMDI6MzA6NDUgKzAxMDAgKENFVCkKCkFsbCBkb25lIG9uIHRoZSBhbnQtdGFza3MgbWlncmF0aW9uIG5vdyBhcyB3ZWxsLiAKCk5leHQgd291bGQgYmUgYSByZWxlYXNlIG9mIHRoZSBhbnQtdGFza3MgZm9yIHdoaWNoIEkgZmlsZWQgaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NUkVTT0xWRVItMzcKCkltaG8gd2Ugc2hvdWxkIGRvIHRoYXQgYnV0IEkgZG9uJ3Qga25vdyB3aGF0IGlzIGludm9sdmVkIGFuZCB3b250IGJlIGFibGUgdG8gd29yayBvbiBpdCB1bnRpbCBzb21lIHRpbWUgaW4gSmFudWFyeS4gCgptYW5mcmVkCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3MDMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IERlYyAgMiAxMDoxODozMyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3MDMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNkU2N0UxNzRERgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICAyIERlYyAyMDE3IDEwOjE4OjMzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjgzMTMgaW52b2tlZCBieSB1aWQgNTAwKTsgMiBEZWMgMjAxNyAxMDoxODozMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjgyMjMgaW52b2tlZCBieSB1aWQgNTAwKTsgMiBEZWMgMjAxNyAxMDoxODozMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY4MjEyIGludm9rZWQgYnkgdWlkIDk5KTsgMiBEZWMgMjAxNyAxMDoxODozMiAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDIgRGVjIDIwMTcgMTA6MTg6MzIgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNjZDMjZERkY4MTsgU2F0LCAgMiBEZWMgMjAxNyAxMDoxODozMSArMDAwMCAoVVRDKQpGcm9tOiBUaWJvcjE3IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNjgtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE2OC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzE2ODogW1NVUkVGSVJFLTE0MjRdIGphdmF4LnRyYW5zYWN0aW9uLlRyYW5zYWN0aW9uTWFuYS4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMjAyMTAxODMxLjY2QzI2REZGODFAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFNhdCwgIDIgRGVjIDIwMTcgMTA6MTg6MzEgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIFRpYm9yMTcgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY4CiAgCiAgICBJZiB5b3UgY291bGQgc3F1YXNoIHRoZXNlIHR3byBjb21taXRzIGluIG9uZSwgaXQgd291bGQgYmUgZ3JlYXQuCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3MDQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IERlYyAgMiAxMDoyMjozMiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3MDQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQzUyRjcxNzRGMAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICAyIERlYyAyMDE3IDEwOjIyOjMyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzcwNjYgaW52b2tlZCBieSB1aWQgNTAwKTsgMiBEZWMgMjAxNyAxMDoyMjoyNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzY5OTAgaW52b2tlZCBieSB1aWQgNTAwKTsgMiBEZWMgMjAxNyAxMDoyMjoyNyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc2OTc5IGludm9rZWQgYnkgdWlkIDk5KTsgMiBEZWMgMjAxNyAxMDoyMjoyNyAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDIgRGVjIDIwMTcgMTA6MjI6MjcgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNzRGNURERkY4MTsgU2F0LCAgMiBEZWMgMjAxNyAxMDoyMjoyNSArMDAwMCAoVVRDKQpGcm9tOiBUaWJvcjE3IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNjgtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE2OC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzE2ODogW1NVUkVGSVJFLTE0MjRdIGphdmF4LnRyYW5zYWN0aW9uLlRyYW5zYWN0aW9uTWFuYS4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMjAyMTAyMjI2Ljc0RjVEREZGODFAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFNhdCwgIDIgRGVjIDIwMTcgMTA6MjI6MjUgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIFRpYm9yMTcgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY4CiAgCiAgICBUaGUgY29tbWVudCBgW1NVUkVGSVJFLTE0MjRdIGphdmF4LnRyYW5zYWN0aW9uLlRyYW5zYWN0aW9uTWFuYWdlciBub3QgdmlzaWJsZSB3aXRoIEphdmE5YCBzaG91bGQgYmUgaW4gY29tbWl0LgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NzA5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBEZWMgIDIgMTE6MzY6NDYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzA5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDRGMEJFMTc1RTgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgMiBEZWMgMjAxNyAxMTozNjo0NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDMxMTUwIGludm9rZWQgYnkgdWlkIDUwMCk7IDIgRGVjIDIwMTcgMTE6MzY6NDEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMxMDgxIGludm9rZWQgYnkgdWlkIDUwMCk7IDIgRGVjIDIwMTcgMTE6MzY6NDEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMTA3MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDIgRGVjIDIwMTcgMTE6MzY6NDAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDAyIERlYyAyMDE3IDExOjM2OjQwICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDg0MTQyREZGODE7IFNhdCwgIDIgRGVjIDIwMTcgMTE6MzY6MzkgKzAwMDAgKFVUQykKRnJvbTogZW9saXZlbGxpIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNjgtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE2OC1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzE2ODogW1NVUkVGSVJFLTE0MjRdIGphdmF4LnRyYW5zYWN0aW9uLlRyYW5zYWN0aW9uTWFuYS4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMjAyMTEzNjM5Ljg0MTQyREZGODFAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFNhdCwgIDIgRGVjIDIwMTcgMTE6MzY6MzkgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIGVvbGl2ZWxsaSBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNjgKICAKICAgIE9rLCB3aWxsIGRvIHRoaXMgYWZ0ZXJub29uLiBUaGFua3MKCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDcxMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgRGVjICAyIDEyOjQwOjUyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDcxMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBEOTFFMjE3NzNDCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDIgRGVjIDIwMTcgMTI6NDA6NTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3NTQ2OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIERlYyAyMDE3IDEyOjQwOjUyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NTM5MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIERlYyAyMDE3IDEyOjQwOjUyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzUzODIgaW52b2tlZCBieSB1aWQgOTkpOyAyIERlYyAyMDE3IDEyOjQwOjUyIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwMiBEZWMgMjAxNyAxMjo0MDo1MiArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCAwRjU4RUUwMjE5OyBTYXQsICAyIERlYyAyMDE3IDEyOjQwOjUwICswMDAwIChVVEMpCkZyb206IGVvbGl2ZWxsaSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTY4LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNjgtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNjg6IFtTVVJFRklSRS0xNDI0XSBqYXZheC50cmFuc2FjdGlvbi5UcmFuc2FjdGlvbk1hbmEuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTIwMjEyNDA1MS4wRjU4RUUwMjE5QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBTYXQsICAyIERlYyAyMDE3IDEyOjQwOjUwICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBlb2xpdmVsbGkgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY4CiAgCiAgICBAVGlib3IxNyBJaGF2ZSBzcXVhc2hlZCB0aGUgY29tbWl0cyBhbmQgcmV3b3JkZWQgdGhlIGNvbW1pdCBtc2cuCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3MTEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IERlYyAgMiAxNToyNTowNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3MTEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOEJFOUMxN0EyNgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICAyIERlYyAyMDE3IDE1OjI1OjA0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTYzMDIgaW52b2tlZCBieSB1aWQgNTAwKTsgMiBEZWMgMjAxNyAxNToyNDo1OSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTYyMzEgaW52b2tlZCBieSB1aWQgNTAwKTsgMiBEZWMgMjAxNyAxNToyNDo1OSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE2MjE4IGludm9rZWQgYnkgdWlkIDk5KTsgMiBEZWMgMjAxNyAxNToyNDo1OCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDIgRGVjIDIwMTcgMTU6MjQ6NTggKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgMkZFOUJERkY4MTsgU2F0LCAgMiBEZWMgMjAxNyAxNToyNDo1NyArMDAwMCAoVVRDKQpGcm9tOiBUaWJvcjE3IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNzEtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE3MS1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzE3MTogW1NVUkVGSVJFLTE0NDVdIEV4cGxpY2l0bHkgZGVmaW5lIFN1cmVmaXJlUHJvcGVydC4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMjAyMTUyNDU4LjJGRTlCREZGODFAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFNhdCwgIDIgRGVjIDIwMTcgMTU6MjQ6NTcgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIFRpYm9yMTcgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTcxCiAgCiAgICBAYWNvZ29sdWVnbmVzIAogICAgVGh4IGZvciBzdXBwb3J0IHJlZ2FyZGluZyBKYXZhIDkuCiAgICBQbGVhc2UgY2xvc2UgdGhpcyBQUi4gSSBleHRlbmRlZCB0aGUgdGVzdCBhbmQgYWxyZWFkeSBwdXNoZWQgdG8gbWFzdGVyLgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NzEyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBEZWMgIDIgMTY6MTQ6NTAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzEyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDQ2OUZGMTdCMDYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgMiBEZWMgMjAxNyAxNjoxNDo1MCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDY0OTkzIGludm9rZWQgYnkgdWlkIDUwMCk7IDIgRGVjIDIwMTcgMTY6MTQ6NDkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY0ODk3IGludm9rZWQgYnkgdWlkIDUwMCk7IDIgRGVjIDIwMTcgMTY6MTQ6NDkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2NDg4NiBpbnZva2VkIGJ5IHVpZCA5OSk7IDIgRGVjIDIwMTcgMTY6MTQ6NDkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDAyIERlYyAyMDE3IDE2OjE0OjQ5ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDg0M0IwRTJGMDM7IFNhdCwgIDIgRGVjIDIwMTcgMTY6MTQ6NDggKzAwMDAgKFVUQykKRnJvbTogVGlib3IxNyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTY4LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNjgtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIGlzc3VlICMxNjg6IFtTVVJFRklSRS0xNDI0XSBqYXZheC50cmFuc2FjdGlvbi5UcmFuc2FjdGlvbk1hbmEuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTIwMjE2MTQ0OC44NDNCMEUyRjAzQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBTYXQsICAyIERlYyAyMDE3IDE2OjE0OjQ4ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBUaWJvcjE3IGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2OAogIAogICAgQGVvbGl2ZWxsaSAKICAgIFRoeCBmb3IgY29udHJpYnV0aW5nLiBDbG9zZSB0aGlzIFBSLiBJdCB3YXMgcHVzaGVkIHRvIG1hc3Rlci4KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDcxMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgRGVjICAyIDE2OjIwOjA3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDcxMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA0NTRBQjE3QjFFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDIgRGVjIDIwMTcgMTY6MjA6MDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3NzY5OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIERlYyAyMDE3IDE2OjIwOjA2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NzYyNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIERlYyAyMDE3IDE2OjIwOjA2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzc2MTQgaW52b2tlZCBieSB1aWQgOTkpOyAyIERlYyAyMDE3IDE2OjIwOjA2IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwMiBEZWMgMjAxNyAxNjoyMDowNiArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCA4NjRGOEUyRjAzOyBTYXQsICAyIERlYyAyMDE3IDE2OjIwOjA2ICswMDAwIChVVEMpCkZyb206IFRpYm9yMTcgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE2Ny1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTY3LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBpc3N1ZSAjMTY3OiBTcGVlZHVwIFN0YW5kYXJkIE91dHB1dCBpZiBUZXN0cwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMjAyMTYyMDA2Ljg2NEY4RTJGMDNAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFNhdCwgIDIgRGVjIDIwMTcgMTY6MjA6MDYgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIFRpYm9yMTcgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY3CiAgCiAgICBARGFHZVJlIAogICAgWWVzIHdlIG5lZWQgdG8gYWRkIHlvdXIgSmlyYSBpc3N1ZSB0byBhIGZpbmFsIHJlcG9ydCB3aGljaCBpcyBwYXJ0IG9yIGZpbmFsIHBsdWdpbiByZWxlYXNlLgogICAgT25seSB5b3UgYmVzdCBrbm93IGFsbCBkZXRhaWxzIHRvIGJlIHdyaXR0ZW4gaW4gZGVzY3JpcHRpb24gaW4gSmlyYSwgcGxhdGZvcm0geW91IGhhdmUgdXNlZCwgZm91bmQgYnVnZ3kgdmVyc2lvbiwgb3RoZXIgcmVmZXJlbmNlcywgYSBsaW5rIHRvIEdpdEh1YiBQUiwgZXRjLgogICAgSGVyZSBpcyB0aGUgbGluayBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvcHJvamVjdHMvU1VSRUZJUkUKCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDcxNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgRGVjICAyIDE2OjQ3OjEwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDcxNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDNzYwOTE3QjkzCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDIgRGVjIDIwMTcgMTY6NDc6MTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5NTU5MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIERlYyAyMDE3IDE2OjQ3OjEwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NTUxNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIERlYyAyMDE3IDE2OjQ3OjEwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTU1MDYgaW52b2tlZCBieSB1aWQgOTkpOyAyIERlYyAyMDE3IDE2OjQ3OjEwIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwMiBEZWMgMjAxNyAxNjo0NzoxMCArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCAxOTVEOEUwMjE5OyBTYXQsICAyIERlYyAyMDE3IDE2OjQ3OjA4ICswMDAwIChVVEMpCkZyb206IGVvbGl2ZWxsaSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTY4LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNjgtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIHB1bGwgcmVxdWVzdCAjMTY4OiBbU1VSRUZJUkUtMTQyNF0gamF2YXgudHJhbnNhY3Rpb24uVHJhbnNhY3QuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTIwMjE2NDcwOS4xOTVEOEUwMjE5QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBTYXQsICAyIERlYyAyMDE3IDE2OjQ3OjA4ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBlb2xpdmVsbGkgY2xvc2VkIHRoZSBwdWxsIHJlcXVlc3QgYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2OAoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NzE1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBEZWMgIDIgMTc6Mjg6MDkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzE1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDA3RDgzMTdDNUEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgMiBEZWMgMjAxNyAxNzoyODowOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDM5NzAzIGludm9rZWQgYnkgdWlkIDUwMCk7IDIgRGVjIDIwMTcgMTc6Mjg6MDggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM5NjIwIGludm9rZWQgYnkgdWlkIDUwMCk7IDIgRGVjIDIwMTcgMTc6Mjg6MDggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzOTYwOSBpbnZva2VkIGJ5IHVpZCA5OSk7IDIgRGVjIDIwMTcgMTc6Mjg6MDggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDAyIERlYyAyMDE3IDE3OjI4OjA4ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDkyOTMzRTAzNDE7IFNhdCwgIDIgRGVjIDIwMTcgMTc6Mjg6MDcgKzAwMDAgKFVUQykKRnJvbTogYWNvZ29sdWVnbmVzIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNzEtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE3MS1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgcHVsbCByZXF1ZXN0ICMxNzE6IFtTVVJFRklSRS0xNDQ1XSBFeHBsaWNpdGx5IGRlZmluZSBTdXJlZmlyZS4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMjAyMTcyODA3LjkyOTMzRTAzNDFAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFNhdCwgIDIgRGVjIDIwMTcgMTc6Mjg6MDcgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIGFjb2dvbHVlZ25lcyBjbG9zZWQgdGhlIHB1bGwgcmVxdWVzdCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTcxCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3MTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IERlYyAgMiAxNzozNjoxNyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3MTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMkYzQTQxN0M4RgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICAyIERlYyAyMDE3IDE3OjM2OjE3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDY0MDEgaW52b2tlZCBieSB1aWQgNTAwKTsgMiBEZWMgMjAxNyAxNzozNjoxNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDYzMjAgaW52b2tlZCBieSB1aWQgNTAwKTsgMiBEZWMgMjAxNyAxNzozNjoxNiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ2MzA4IGludm9rZWQgYnkgdWlkIDk5KTsgMiBEZWMgMjAxNyAxNzozNjoxNiAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDIgRGVjIDIwMTcgMTc6MzY6MTYgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgQjExNUVFMkYwMzsgU2F0LCAgMiBEZWMgMjAxNyAxNzozNjoxNSArMDAwMCAoVVRDKQpGcm9tOiBUaWJvcjE3IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNjctbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE2Ny1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzE2NzogU3BlZWR1cCBTdGFuZGFyZCBPdXRwdXQgaWYgVGVzdHMKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTIwMjE3MzYxNS5CMTE1RUUyRjAzQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBTYXQsICAyIERlYyAyMDE3IDE3OjM2OjE1ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBUaWJvcjE3IGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2NwogIAogICAgQERhR2VSZSAKICAgIFBscyBydW4gdGhlIGJ1aWxkIGBtdm4gaW5zdGFsbCAtUCBydW4taXRzICItRGpkay5ob21lPWU6XFByb2dyYW0gRmlsZXNcSmF2YVxqZGs5XCJgIHdpdGggZGVmYXVsdCBKREsgOCBhbmQgYWRkaXRpb25hbCBKREs5IGZvciBmZXcgdGVzdHMgYXMgeW91IGNhbiBzZWUgaW4gc3lzdGVtIHByb3BlcnR5IGBqZGsuaG9tZWAuCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3MTctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIERlYyAgMyAwOTo0ODo0OSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3MTctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMkU2MDYxN0FFMwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sICAzIERlYyAyMDE3IDA5OjQ4OjQ5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjc2MjIgaW52b2tlZCBieSB1aWQgNTAwKTsgMyBEZWMgMjAxNyAwOTo0ODo0OCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjc1NDIgaW52b2tlZCBieSB1aWQgNTAwKTsgMyBEZWMgMjAxNyAwOTo0ODo0OCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY3NTMxIGludm9rZWQgYnkgdWlkIDk5KTsgMyBEZWMgMjAxNyAwOTo0ODo0OCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMDMgRGVjIDIwMTcgMDk6NDg6NDggKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgOUQxOUNERkU1RjsgU3VuLCAgMyBEZWMgMjAxNyAwOTo0ODo0NyArMDAwMCAoVVRDKQpGcm9tOiBUaWJvcjE3IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNjYtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE2Ni1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgcHVsbCByZXF1ZXN0ICMxNjY6IFN1cHBvcnQgZmlsdGVyaW5nIG9mIHRlc3RzIGZyb20gQmFzZSBDbGFzcy4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMjAzMDk0ODQ3LjlEMTlDREZFNUZAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFN1biwgIDMgRGVjIDIwMTcgMDk6NDg6NDcgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIFRpYm9yMTcgY29tbWVudGVkIG9uIGEgZGlmZiBpbiB0aGUgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNjYjZGlzY3Vzc2lvbl9yMTU0NTE5MTU5CiAgCiAgICAtLS0gRGlmZjogc3VyZWZpcmUtcHJvdmlkZXJzL3N1cmVmaXJlLXRlc3RuZy11dGlscy9zcmMvdGVzdC90ZXN0bmcvdXRpbHMvTWV0aG9kU2VsZWN0b3JUZXN0LmphdmEgLS0tCiAgICBAQCAtMCwwICsxLDI5OSBAQAogICAgK3BhY2thZ2UgdGVzdG5nLnV0aWxzOwogICAgKwogICAgK2ltcG9ydCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2U7CiAgICAraW1wb3J0IG9yZy5hcGFjaGUubWF2ZW4uc3VyZWZpcmUudGVzdG5nLnV0aWxzLk1ldGhvZFNlbGVjdG9yOwogICAgK2ltcG9ydCBvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlLnRlc3RzZXQuVGVzdExpc3RSZXNvbHZlcjsKICAgICtpbXBvcnQgb3JnLnRlc3RuZy5Bc3NlcnQ7CiAgICAraW1wb3J0IG9yZy50ZXN0bmcuSUNsYXNzOwogICAgK2ltcG9ydCBvcmcudGVzdG5nLklSZXRyeUFuYWx5emVyOwogICAgK2ltcG9ydCBvcmcudGVzdG5nLklUZXN0Q2xhc3M7CiAgICAraW1wb3J0IG9yZy50ZXN0bmcuSVRlc3ROR01ldGhvZDsKICAgICtpbXBvcnQgb3JnLnRlc3RuZy5pbnRlcm5hbC5EZWZhdWx0TWV0aG9kU2VsZWN0b3JDb250ZXh0OwogICAgKwogICAgK2ltcG9ydCBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2Q7CiAgICArCiAgICArcHVibGljIGNsYXNzIE1ldGhvZFNlbGVjdG9yVGVzdCBleHRlbmRzIFRlc3RDYXNlIHsKICAgICsgICAgcHVibGljIHZvaWQgdGVzdEluY2x1c2lvbk9mTWV0aG9kRnJvbUJhc2VDbGFzcygpIHsKICAgICsgICAgICAgIE1ldGhvZFNlbGVjdG9yIHNlbGVjdG9yID0gbmV3IE1ldGhvZFNlbGVjdG9yKCk7CiAgICArICAgICAgICBEZWZhdWx0TWV0aG9kU2VsZWN0b3JDb250ZXh0IGNvbnRleHQgPSBuZXcgRGVmYXVsdE1ldGhvZFNlbGVjdG9yQ29udGV4dCgpOwogICAgKyAgICAgICAgSVRlc3ROR01ldGhvZCB0ZXN0bmdNZXRob2QgPSBuZXcgRmFrZVRlc3ROR01ldGhvZChDaGlsZENsYXNzU2FtcGxlLmNsYXNzLCAiYmFzZUNsYXNzTWV0aG9kVG9CZUluY2x1ZGVkIik7CiAgICArICAgICAgICBUZXN0TGlzdFJlc29sdmVyIHJlc29sdmVyID0gbmV3IFRlc3RMaXN0UmVzb2x2ZXIoQmFzZUNsYXNzU2FtcGxlLmNsYXNzLmdldE5hbWUoKSArICIjYmFzZUNsYXNzTWV0aG9kVG9CZUluY2x1ZGVkIik7CiAgICArICAgICAgICBNZXRob2RTZWxlY3Rvci5zZXRUZXN0TGlzdFJlc29sdmVyKHJlc29sdmVyKTsKICAgICsgICAgICAgIGJvb2xlYW4gaW5jbHVkZSA9IHNlbGVjdG9yLmluY2x1ZGVNZXRob2QoY29udGV4dCwgdGVzdG5nTWV0aG9kLCB0cnVlKTsKICAgICsgICAgICAgIEFzc2VydC5hc3NlcnRUcnVlKGluY2x1ZGUpOwogICAgKyAgICB9CiAgICArCiAgICArICAgIHByaXZhdGUgc3RhdGljIGNsYXNzIEZha2VUZXN0TkdNZXRob2QgaW1wbGVtZW50cyBJVGVzdE5HTWV0aG9kIHsKICAgICsgICAgICAgIHByaXZhdGUgQ2xhc3M8Pz4gY2xheno7CiAgICArICAgICAgICBwcml2YXRlIFN0cmluZyBtZXRob2ROYW1lOwogICAgKwogICAgKyAgICAgICAgRmFrZVRlc3ROR01ldGhvZChDbGFzczw/PiBjbGF6eiwgU3RyaW5nIG1ldGhvZE5hbWUpIHsKICAgICsgICAgICAgICAgICB0aGlzLmNsYXp6ID0gY2xheno7CiAgICArICAgICAgICAgICAgdGhpcy5tZXRob2ROYW1lID0gbWV0aG9kTmFtZTsKICAgICsgICAgICAgIH0KICAgICsKICAgICsgICAgICAgIEBPdmVycmlkZQogICAgKyAgICAgICAgcHVibGljIENsYXNzIGdldFJlYWxDbGFzcygpIHsKICAgICsgICAgICAgICAgICByZXR1cm4gY2xheno7CiAgICArICAgICAgICB9CiAgICArCiAgICArICAgICAgICBAT3ZlcnJpZGUKICAgICsgICAgICAgIHB1YmxpYyBJVGVzdENsYXNzIGdldFRlc3RDbGFzcygpIHsKICAgICsgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICsgICAgICAgIH0KICAgICsKICAgICsgICAgICAgIEBPdmVycmlkZQogICAgKyAgICAgICAgcHVibGljIHZvaWQgc2V0VGVzdENsYXNzKElUZXN0Q2xhc3MgaVRlc3RDbGFzcykgewogICAgKwogICAgKyAgICAgICAgfQogICAgKwogICAgKyAgICAgICAgQE92ZXJyaWRlCiAgICArICAgICAgICBwdWJsaWMgTWV0aG9kIGdldE1ldGhvZCgpIHsKICAgICsgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICsgICAgICAgIH0KICAgICsKICAgICsgICAgICAgIEBPdmVycmlkZQogICAgKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRNZXRob2ROYW1lKCkgewogICAgKyAgICAgICAgICAgIHJldHVybiB0aGlzLm1ldGhvZE5hbWU7CiAgICArICAgICAgICB9CiAgICArCiAgICArICAgICAgICBAT3ZlcnJpZGUKICAgICsgICAgICAgIHB1YmxpYyBPYmplY3RbXSBnZXRJbnN0YW5jZXMoKSB7CiAgICArICAgICAgICAgICAgcmV0dXJuIG5ldyBPYmplY3RbMF07CiAgICArICAgICAgICB9CiAgICArCiAgICArICAgICAgICBAT3ZlcnJpZGUKICAgICsgICAgICAgIHB1YmxpYyBsb25nW10gZ2V0SW5zdGFuY2VIYXNoQ29kZXMoKSB7CiAgICArICAgICAgICAgICAgcmV0dXJuIG5ldyBsb25nWzBdOwogICAgKyAgICAgICAgfQogICAgKwogICAgKyAgICAgICAgQE92ZXJyaWRlCiAgICArICAgICAgICBwdWJsaWMgU3RyaW5nW10gZ2V0R3JvdXBzKCkgewogICAgKyAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nWzBdOwogICAgKyAgICAgICAgfQogICAgKwogICAgKyAgICAgICAgQE92ZXJyaWRlCiAgICArICAgICAgICBwdWJsaWMgU3RyaW5nW10gZ2V0R3JvdXBzRGVwZW5kZWRVcG9uKCkgewogICAgKyAgICAgICAgICAgIHJldHVybiBuZXcgU3RyaW5nWzBdOwogICAgKyAgICAgICAgfQogICAgKwogICAgKyAgICAgICAgQE92ZXJyaWRlCiAgICArICAgICAgICBwdWJsaWMgU3RyaW5nIGdldE1pc3NpbmdHcm91cCgpIHsKICAgICsgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICsgICAgICAgIH0KICAgICsKICAgICsgICAgICAgIEBPdmVycmlkZQogICAgKyAgICAgICAgcHVibGljIHZvaWQgc2V0TWlzc2luZ0dyb3VwKFN0cmluZyBzKSB7CiAgICArCiAgICArICAgICAgICB9CiAgICArCiAgICArICAgICAgICBAT3ZlcnJpZGUKICAgICsgICAgICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRCZWZvcmVHcm91cHMoKSB7CiAgICArICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdbMF07CiAgICArICAgICAgICB9CiAgICArCiAgICArICAgICAgICBAT3ZlcnJpZGUKICAgICsgICAgICAgIHB1YmxpYyBTdHJpbmdbXSBnZXRBZnRlckdyb3VwcygpIHsKICAgICsgICAgICAgICAgICByZXR1cm4gbmV3IFN0cmluZ1swXTsKICAgICsgICAgICAgIH0KICAgICsKICAgICsgICAgICAgIEBPdmVycmlkZQogICAgKyAgICAgICAgcHVibGljIFN0cmluZ1tdIGdldE1ldGhvZHNEZXBlbmRlZFVwb24oKSB7CiAgICArICAgICAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdbMF07CiAgICArICAgICAgICB9CiAgICArCiAgICArICAgICAgICBAT3ZlcnJpZGUKICAgICsgICAgICAgIHB1YmxpYyB2b2lkIGFkZE1ldGhvZERlcGVuZGVkVXBvbihTdHJpbmcgcykgewogICAgKwogICAgKyAgICAgICAgfQogICAgKwogICAgKyAgICAgICAgQE92ZXJyaWRlCiAgICArICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc1Rlc3QoKSB7CiAgICArICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgKyAgICAgICAgfQogICAgKwogICAgKyAgICAgICAgQE92ZXJyaWRlCiAgICArICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc0JlZm9yZU1ldGhvZENvbmZpZ3VyYXRpb24oKSB7CiAgICArICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgKyAgICAgICAgfQogICAgKwogICAgKyAgICAgICAgQE92ZXJyaWRlCiAgICArICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc0FmdGVyTWV0aG9kQ29uZmlndXJhdGlvbigpIHsKICAgICsgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICArICAgICAgICB9CiAgICArCiAgICArICAgICAgICBAT3ZlcnJpZGUKICAgICsgICAgICAgIHB1YmxpYyBib29sZWFuIGlzQmVmb3JlQ2xhc3NDb25maWd1cmF0aW9uKCkgewogICAgKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICsgICAgICAgIH0KICAgICsKICAgICsgICAgICAgIEBPdmVycmlkZQogICAgKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNBZnRlckNsYXNzQ29uZmlndXJhdGlvbigpIHsKICAgICsgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICArICAgICAgICB9CiAgICArCiAgICArICAgICAgICBAT3ZlcnJpZGUKICAgICsgICAgICAgIHB1YmxpYyBib29sZWFuIGlzQmVmb3JlU3VpdGVDb25maWd1cmF0aW9uKCkgewogICAgKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICsgICAgICAgIH0KICAgICsKICAgICsgICAgICAgIEBPdmVycmlkZQogICAgKyAgICAgICAgcHVibGljIGJvb2xlYW4gaXNBZnRlclN1aXRlQ29uZmlndXJhdGlvbigpIHsKICAgICsgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICArICAgICAgICB9CiAgICArCiAgICArICAgICAgICBAT3ZlcnJpZGUKICAgICsgICAgICAgIHB1YmxpYyBib29sZWFuIGlzQmVmb3JlVGVzdENvbmZpZ3VyYXRpb24oKSB7CiAgICArICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgKyAgICAgICAgfQogICAgKwogICAgKyAgICAgICAgQE92ZXJyaWRlCiAgICArICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc0FmdGVyVGVzdENvbmZpZ3VyYXRpb24oKSB7CiAgICArICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgKyAgICAgICAgfQogICAgKwogICAgKyAgICAgICAgQE92ZXJyaWRlCiAgICArICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc0JlZm9yZUdyb3Vwc0NvbmZpZ3VyYXRpb24oKSB7CiAgICArICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgKyAgICAgICAgfQogICAgKwogICAgKyAgICAgICAgQE92ZXJyaWRlCiAgICArICAgICAgICBwdWJsaWMgYm9vbGVhbiBpc0FmdGVyR3JvdXBzQ29uZmlndXJhdGlvbigpIHsKICAgICsgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICArICAgICAgICB9CiAgICArCiAgICArICAgICAgICBAT3ZlcnJpZGUKICAgICsgICAgICAgIHB1YmxpYyBsb25nIGdldFRpbWVPdXQoKSB7CiAgICArICAgICAgICAgICAgcmV0dXJuIDA7CiAgICArICAgICAgICB9CiAgICArCiAgICArICAgICAgICBAT3ZlcnJpZGUKICAgICsgICAgICAgIHB1YmxpYyBpbnQgZ2V0SW52b2NhdGlvbkNvdW50KCkgewogICAgKyAgICAgICAgICAgIHJldHVybiAwOwogICAgKyAgICAgICAgfQogICAgKwogICAgKyAgICAgICAgQE92ZXJyaWRlCiAgICArICAgICAgICBwdWJsaWMgdm9pZCBzZXRJbnZvY2F0aW9uQ291bnQoaW50IGkpIHsKICAgICsKICAgICsgICAgICAgIH0KICAgICsKICAgICsgICAgICAgIEBPdmVycmlkZQogICAgKyAgICAgICAgcHVibGljIGludCBnZXRTdWNjZXNzUGVyY2VudGFnZSgpIHsKICAgICsgICAgICAgICAgICByZXR1cm4gMDsKICAgICsgICAgICAgIH0KICAgICsKICAgICsgICAgICAgIEBPdmVycmlkZQogICAgKyAgICAgICAgcHVibGljIFN0cmluZyBnZXRJZCgpIHsKICAgICsgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICsgICAgICAgIH0KICAgICsKICAgICsgICAgICAgIEBPdmVycmlkZQogICAgKyAgICAgICAgcHVibGljIHZvaWQgc2V0SWQoU3RyaW5nIHMpIHsKICAgICsKICAgICsgICAgICAgIH0KICAgICsKICAgICsgICAgICAgIEBPdmVycmlkZQogICAgKyAgICAgICAgcHVibGljIGxvbmcgZ2V0RGF0ZSgpIHsKICAgICsgICAgICAgICAgICByZXR1cm4gMDsKICAgICsgICAgICAgIH0KICAgICsKICAgICsgICAgICAgIEBPdmVycmlkZQogICAgKyAgICAgICAgcHVibGljIHZvaWQgc2V0RGF0ZShsb25nIGwpIHsKICAgICsKICAgICsgICAgICAgIH0KICAgICsKICAgICsgICAgICAgIEBPdmVycmlkZQogICAgKyAgICAgICAgcHVibGljIGJvb2xlYW4gY2FuUnVuRnJvbUNsYXNzKElDbGFzcyBpQ2xhc3MpIHsKICAgICsgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICArICAgICAgICB9CiAgICArCiAgICArICAgICAgICBAT3ZlcnJpZGUKICAgICsgICAgICAgIHB1YmxpYyBib29sZWFuIGlzQWx3YXlzUnVuKCkgewogICAgKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICsgICAgICAgIH0KICAgICsKICAgICsgICAgICAgIEBPdmVycmlkZQogICAgKyAgICAgICAgcHVibGljIGludCBnZXRUaHJlYWRQb29sU2l6ZSgpIHsKICAgICsgICAgICAgICAgICByZXR1cm4gMDsKICAgICsgICAgICAgIH0KICAgICsKICAgICsgICAgICAgIEBPdmVycmlkZQogICAgKyAgICAgICAgcHVibGljIHZvaWQgc2V0VGhyZWFkUG9vbFNpemUoaW50IGkpIHsKICAgICsKICAgICsgICAgICAgIH0KICAgICsKICAgICsgICAgICAgIEBPdmVycmlkZQogICAgKyAgICAgICAgcHVibGljIFN0cmluZyBnZXREZXNjcmlwdGlvbigpIHsKICAgICsgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICsgICAgICAgIH0KICAgICsKICAgICsgICAgICAgIEBPdmVycmlkZQogICAgKyAgICAgICAgcHVibGljIHZvaWQgaW5jcmVtZW50Q3VycmVudEludm9jYXRpb25Db3VudCgpIHsKICAgICsKICAgICsgICAgICAgIH0KICAgICsKICAgICsgICAgICAgIEBPdmVycmlkZQogICAgKyAgICAgICAgcHVibGljIGludCBnZXRDdXJyZW50SW52b2NhdGlvbkNvdW50KCkgewogICAgKyAgICAgICAgICAgIHJldHVybiAwOwogICAgKyAgICAgICAgfQogICAgKwogICAgKyAgICAgICAgQE92ZXJyaWRlCiAgICArICAgICAgICBwdWJsaWMgdm9pZCBzZXRQYXJhbWV0ZXJJbnZvY2F0aW9uQ291bnQoaW50IGkpIHsKICAgICsKICAgICsgICAgICAgIH0KICAgICsKICAgICsgICAgICAgIEBPdmVycmlkZQogICAgKyAgICAgICAgcHVibGljIGludCBnZXRQYXJhbWV0ZXJJbnZvY2F0aW9uQ291bnQoKSB7CiAgICArICAgICAgICAgICAgcmV0dXJuIDA7CiAgICArICAgICAgICB9CiAgICArCiAgICArICAgICAgICBAT3ZlcnJpZGUKICAgICsgICAgICAgIHB1YmxpYyBJVGVzdE5HTWV0aG9kIGNsb25lKCkgewogICAgKyAgICAgICAgICAgIHRyeSB7CiAgICArICAgICAgICAgICAgICAgIHJldHVybiAoSVRlc3ROR01ldGhvZCkgc3VwZXIuY2xvbmUoKTsKICAgICsgICAgICAgICAgICB9IGNhdGNoIChDbG9uZU5vdFN1cHBvcnRlZEV4Y2VwdGlvbiBlKSB7CiAgICArICAgICAgICAgICAgICAgIHRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKGUpOwogICAgKyAgICAgICAgICAgIH0KICAgICsgICAgICAgIH0KICAgICsKICAgICsgICAgICAgIEBPdmVycmlkZQogICAgKyAgICAgICAgcHVibGljIElSZXRyeUFuYWx5emVyIGdldFJldHJ5QW5hbHl6ZXIoKSB7CiAgICArICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICArICAgICAgICB9CiAgICArCiAgICArICAgICAgICBAT3ZlcnJpZGUKICAgICsgICAgICAgIHB1YmxpYyB2b2lkIHNldFJldHJ5QW5hbHl6ZXIoSVJldHJ5QW5hbHl6ZXIgaVJldHJ5QW5hbHl6ZXIpIHsKICAgICsKICAgICsgICAgICAgIH0KICAgICsKICAgICsgICAgICAgIEBPdmVycmlkZQogICAgKyAgICAgICAgcHVibGljIGJvb2xlYW4gc2tpcEZhaWxlZEludm9jYXRpb25zKCkgewogICAgKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICsgICAgICAgIH0KICAgICsKICAgICsgICAgICAgIEBPdmVycmlkZQogICAgKyAgICAgICAgcHVibGljIHZvaWQgc2V0U2tpcEZhaWxlZEludm9jYXRpb25zKGJvb2xlYW4gYikgewogICAgKwogICAgKyAgICAgICAgfQogICAgKwogICAgKyAgICAgICAgQE92ZXJyaWRlCiAgICArICAgICAgICBwdWJsaWMgbG9uZyBnZXRJbnZvY2F0aW9uVGltZU91dCgpIHsKICAgICsgICAgICAgICAgICByZXR1cm4gMDsKICAgICsgICAgICAgIH0KICAgICsKICAgICsgICAgICAgIEBPdmVycmlkZQogICAgKyAgICAgICAgcHVibGljIGJvb2xlYW4gaWdub3JlTWlzc2luZ0RlcGVuZGVuY2llcygpIHsKICAgICsgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICArICAgICAgICB9CiAgICArCiAgICArICAgICAgICBAT3ZlcnJpZGUKICAgICsgICAgICAgIHB1YmxpYyB2b2lkIHNldElnbm9yZU1pc3NpbmdEZXBlbmRlbmNpZXMoYm9vbGVhbiBiKSB7CiAgICArCiAgICArICAgICAgICB9CiAgICArCiAgICArICAgICAgICBAT3ZlcnJpZGUKICAgICsgICAgICAgIHB1YmxpYyBpbnQgY29tcGFyZVRvKE9iamVjdCBvKSB7CiAgICArICAgICAgICAgICAgcmV0dXJuIDA7CiAgICArICAgICAgICB9CiAgICArICAgIH0KICAgICt9CiAgICAtLS0gRW5kIGRpZmYgLS0KICAgIAogICAgUGxzIGFkZCBlbXB0eSBuZXcgbGluZSBhZnRlciB0aGlzIGNsYXNzLiBUaHguCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3MTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIERlYyAgMyAwOTo1NDowMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3MTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNDhBRTQxN0FGMgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sICAzIERlYyAyMDE3IDA5OjU0OjAxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzE2MDEgaW52b2tlZCBieSB1aWQgNTAwKTsgMyBEZWMgMjAxNyAwOTo1NDowMCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzE1MjYgaW52b2tlZCBieSB1aWQgNTAwKTsgMyBEZWMgMjAxNyAwOTo1NDowMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDcxNTE0IGludm9rZWQgYnkgdWlkIDk5KTsgMyBEZWMgMjAxNyAwOTo1NDowMCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMDMgRGVjIDIwMTcgMDk6NTQ6MDAgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgQ0ZEMjRERkU1RjsgU3VuLCAgMyBEZWMgMjAxNyAwOTo1Mzo1OSArMDAwMCAoVVRDKQpGcm9tOiBUaWJvcjE3IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNjYtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE2Ni1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzE2NjogU3VwcG9ydCBmaWx0ZXJpbmcgb2YgdGVzdHMgZnJvbSBCYXNlIENsYXNzIChUZXN0Ti4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMjAzMDk1MzU5LkNGRDI0REZFNUZAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFN1biwgIDMgRGVjIDIwMTcgMDk6NTM6NTkgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIFRpYm9yMTcgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY2CiAgCiAgICBAa3JtYWhhZGV2YW4gCiAgICBTb3JyeSBmb3IgbGF0ZSByZXBseS4gSSB3YXMgaWxsIGxhc3QgdGltZSBhbmQgYnVzeSBpbiB0aGUgd29yay4KICAgIFRoZSBjb2RlIGNvbnZlbnRpb25zIGFyZSBsaXN0ZWQgaW4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2RldmVsb3BlcnMvY29udmVudGlvbnMvY29kZS5odG1sCiAgICBJbiB0aGUgbWlkZGxlIG9mIHRoZSBwYWdlIGlzIFhNTCBmb3IgRWNsaXBzZSBhbmQgSURFQS4gWW91IGNhbiB1c2UgaXQgdG8gY29uZmlndXJlIHlvdXIgdG9vbC4KICAgIFRoZW4gcnVuIHRoZSBsb2NhbCBidWlsZCBgbXZuIGluc3RhbGwgLVAgcnVuLWl0c2AuIFRoZSBidWlsZCBoYXMgMTQwMCB0ZXN0cywgc28gaXQgdXN1YWxseSB0YWtlcyA1MCBtaW51dGVzIHRvIGNvbXBsZXRlIG9uIFNTRCBkaXNrLgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NzE5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBEZWMgIDMgMDk6NTc6MTIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzE5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEFEMjQ3MTdCMDEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAgMyBEZWMgMjAxNyAwOTo1NzoxMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDczMzk3IGludm9rZWQgYnkgdWlkIDUwMCk7IDMgRGVjIDIwMTcgMDk6NTc6MTIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDczMzIzIGludm9rZWQgYnkgdWlkIDUwMCk7IDMgRGVjIDIwMTcgMDk6NTc6MTIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MzMxMiBpbnZva2VkIGJ5IHVpZCA5OSk7IDMgRGVjIDIwMTcgMDk6NTc6MTIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDAzIERlYyAyMDE3IDA5OjU3OjEyICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDJFMDM1REZGQzA7IFN1biwgIDMgRGVjIDIwMTcgMDk6NTc6MTAgKzAwMDAgKFVUQykKRnJvbTogVGlib3IxNyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTY2LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNjYtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIHB1bGwgcmVxdWVzdCAjMTY2OiBTdXBwb3J0IGZpbHRlcmluZyBvZiB0ZXN0cyBmcm9tIEJhc2UgQ2xhc3MuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTIwMzA5NTcxMS4yRTAzNURGRkMwQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBTdW4sICAzIERlYyAyMDE3IDA5OjU3OjEwICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBUaWJvcjE3IGNvbW1lbnRlZCBvbiBhIGRpZmYgaW4gdGhlIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY2I2Rpc2N1c3Npb25fcjE1NDUxOTMyMQogIAogICAgLS0tIERpZmY6IHN1cmVmaXJlLXByb3ZpZGVycy9zdXJlZmlyZS10ZXN0bmctdXRpbHMvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3N1cmVmaXJlL3Rlc3RuZy91dGlscy9NZXRob2RTZWxlY3Rvci5qYXZhIC0tLQogICAgQEAgLTYyLDYgKzYyLDE3IEBAIHByaXZhdGUgc3RhdGljIGJvb2xlYW4gc2hvdWxkUnVuKCBJVGVzdE5HTWV0aG9kIHRlc3QgKQogICAgICAgICB7CiAgICAgICAgICAgICBUZXN0TGlzdFJlc29sdmVyIHJlc29sdmVyID0gdGVzdExpc3RSZXNvbHZlcjsKICAgICAgICAgICAgIGJvb2xlYW4gaGFzVGVzdFJlc29sdmVyID0gcmVzb2x2ZXIgIT0gbnVsbCAmJiAhcmVzb2x2ZXIuaXNFbXB0eSgpOwogICAgLSAgICAgICAgcmV0dXJuIGhhc1Rlc3RSZXNvbHZlciAmJiByZXNvbHZlci5zaG91bGRSdW4oIHRlc3QuZ2V0UmVhbENsYXNzKCksIHRlc3QuZ2V0TWV0aG9kTmFtZSgpICk7CiAgICArICAgICAgICBib29sZWFuIHJlc29sdmVkID0gZmFsc2U7CiAgICArICAgICAgICBDbGFzczw/PiBjbGF6eiA9IHRlc3QuZ2V0UmVhbENsYXNzKCk7CiAgICArICAgICAgICBpZiAocmVzb2x2ZXIgIT0gbnVsbCkgewogICAgLS0tIEVuZCBkaWZmIC0tCiAgICAKICAgIFBsZWFzZSByZXdvcmsgdGhlIGNvZGUgc3R5bGUgYWNjb3JkaW5nIHRvIE1hdmVuIGNvbnZlbnRpb24gaW4gb3VyIHByb2plY3QgYW5kIHVzZSBgZ2l0IGNvbW1pdCAtLWFtbWVuZGAuIFRoZXJlIHNob3VsZCBiZSBvbmx5IHNpbmdsZSBjb21taXQgcGVyIFBSIGFuZCB0aGUgbWVzc2FnZSBzaG91bGQgcmVmZXIgdG8gSklSQSBJRCwgc29tZXRoaW5nIGxpa2U6CiAgICBbU1VSRUZJUkUtMTIzNDVdIFN1cHBvcnQgZmlsdGVyaW5nIG9mIHRlc3RzIGZyb20gQmFzZSBDbGFzcyAoVGVzdE5HKQogICAgYW5kIHlvdSBjYW4gcmVnaXN0ZXIgYXQgb3VyIEppcmEgaGVyZToKICAgIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9wcm9qZWN0cy9TVVJFRklSRQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NzI4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBEZWMgIDMgMjI6MDc6MDIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzI4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEM5QjBEMTA2NEMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAgMyBEZWMgMjAxNyAyMjowNzowMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDEyMTYwIGludm9rZWQgYnkgdWlkIDUwMCk7IDMgRGVjIDIwMTcgMjI6MDc6MDIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDEyMDM3IGludm9rZWQgYnkgdWlkIDUwMCk7IDMgRGVjIDIwMTcgMjI6MDc6MDIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMjAyNiBpbnZva2VkIGJ5IHVpZCA5OSk7IDMgRGVjIDIwMTcgMjI6MDc6MDIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDAzIERlYyAyMDE3IDIyOjA3OjAyICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNzY3RDkxQTA0Q0YKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sICAzIERlYyAyMDE3IDIyOjA3OjAxICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuMDAyClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjAwMiB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bUlBfTUFUQ0hFU19SQ1ZEPS0wLjAwMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEZBdHhwaXl5eW1qQiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgIDMgRGVjIDIwMTcgMjI6MDc6MDAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC5pbzdtLmNvbSAobWFpbC5pbzdtLmNvbSBbNDUuNzcuNzYuOTJdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgN0VEQzI1RjJBOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgIDMgRGVjIDIwMTcgMjI6MDY6NTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvICh1bmtub3duIFtJUHY2OjJhMDI6MzkwOjc1MDI6MjowOjI6MTowXSkKCWJ5IG1haWwuaW83bS5jb20gKFBvc3RmaXgpIHdpdGggRVNNVFBTQSBpZCAyMjE2ODFERUU1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAgMyBEZWMgMjAxNyAyMjowNjo1MyArMDAwMCAoVVRDKQpEYXRlOiBTdW4sIDMgRGVjIDIwMTcgMjI6MDY6NDAgKzAwMDAKRnJvbTogTWFyayBSYXluc2ZvcmQgPG9yZy5hcGFjaGUubWF2ZW4udXNlckBpbzdtLmNvbT4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gSmF2YWRvYyBQbHVnaW4gdmVyc2lvbiAzLjAuMCAodGFrZQogMykKTWVzc2FnZS1JRDogPDIwMTcxMjAzMjIwNjQwLjNmNTk1MTdjQGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbz4KSW4tUmVwbHktVG86IDxvcC56YW94bXNvNWtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KUmVmZXJlbmNlczogPG9wLnphb3htc281a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgpPcmdhbml6YXRpb246IGlvN20uY29tCk9wZW5QR1A6IGlkPTgxNjhEQUUyMkIxNUQzRURDNzIyQzIzRDBGMTVCN0QwNkZBODBDQjg7CiB1cmw9aHR0cDovL2lvN20uY29tL3BncC84MTY4X0RBRTJfMkIxNV9EM0VEX0M3MjJfQzIzRF8wRjE1X0I3RDBfNkZBOF8wQ0I4LmtleQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IG11bHRpcGFydC9zaWduZWQ7IG1pY2FsZz1wZ3Atc2hhNTEyOwogYm91bmRhcnk9IlNpZ18vVXJOSi5wK1hEd3VSczhlYytwdXJvbUkiOyBwcm90b2NvbD0iYXBwbGljYXRpb24vcGdwLXNpZ25hdHVyZSIKCi0tU2lnXy9Vck5KLnArWER3dVJzOGVjK3B1cm9tSQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVMtQVNDSUkKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gMjAxNy0xMi0wM1QyMjo1MDo0MiArMDEwMAoiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4gd3JvdGU6Cj4KPiBXZSBzb2x2ZWQgMjcgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZWN0SWQ9M0QxMjMxNzU9CjI5JnZlcnNpb249M0QxMjMzMDg3NSZzdHlsZU5hbWU9M0RUZXh0Cj49MjAKCisxIChub24tYmluZGluZykKClByZXR0eSBoZWF2aWx5IHRlc3RlZCBvbiBtdWx0aXBsZSBwcm9qZWN0cy4gQm90aCB0aGUgamF2YWRvYyBhbmQKYWdncmVnYXRpb24gZ29hbHMgaGF2ZSBiZWVuIHRlc3RlZCB3aXRoIG5vIGlzc3Vlcy4KCi0tPTIwCk1hcmsgUmF5bnNmb3JkIHwgaHR0cDovL3d3dy5pbzdtLmNvbQoKCi0tU2lnXy9Vck5KLnArWER3dVJzOGVjK3B1cm9tSQpDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3BncC1zaWduYXR1cmUKQ29udGVudC1EZXNjcmlwdGlvbjogT3BlblBHUCBkaWdpdGFsIHNpZ25hdHVyZQoKLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KCmlRSXpCQUVCQ2dBZEZpRUVnV2phNGlzVjArM0hJc0k5RHhXMzBHK29ETGdGQWxva2RYRUFDZ2tRRHhXMzBHK28KRExobzhoQUFxQnVNNndTcUtkTE9jY0kwSWx2dGJteVhLWWJxVTBEMFM3cEt0ck11WEd3c1R2WnVZbERWMnNObgpPY3Vsd3kwMi9rSDNwK3dJbUdocjlXaGdEcmVEOVZhdXBIbXdRbmtCc1JpK2xqK3cwUW5zYkoyb3dNcS83ODcxCnZsdkl5Z0lvTmNjYkZNNWpKOGxPVVZlVHFnU2QxV0p0Q3R5OU40b3UyeFBMM01NdEI2ZGRudEtQWDZ0MTZNazYKY0JzT21xUEs2TW5YMGhOdkEycVM3azJkUTZuWnUzUFFXemwwSUtsL3ZPM284QkxOVzVJemhjOVpyNVFhZ2VYawpsT2cvS3hTUFhiNVZ3aEZCNWJLd2VmNmovVjJwMkw0MFlQZHlqeDlkU1hyV2wyOTJGTWxDKzdQK3VIS2FSclArCnZuSTcyTHhDSnlSTDhGODBqZk9MQjRZcTlTa0xKTUdQNis3L2dzWXM2TDByU2NnUUpRWXduT3k0U3JPSXJmak0KMUx2OXRkN2ZSckhIdW4wdERWVWdDL2dvaUlyREJBSGg4T3RJZEtYelVtZE00TXZZYVVNUHhON2xWOGFZNlpDeApYTEs2ZDBUeFlRbGltbFlhWSswMjhFQnN2QlRZOCsrNGc0MVhpNE9vbDVvNlk2c2FzdG1ucEN4QUFiSnYraU43ClR1aHMwS2Nzem9jb1Z6TzZZUjlCVzhWenBuL0dxSzNQNUsySEZlKzBac2FXVXNSb3hXUVFpUUF3b3BDczdOWnkKVnBDaXNNZnB0RURGQmN2QlB0ejZYa0dhekRwMEtrSGpLTEpteEg3dmhXRGhyb2lpYitwWTJVWm5acTVDUDRMdAp0MWcyakU1d0IzcEhoejk4MG51ZTBCQXhYaENoQlNYeDVZVFNEc1hNSlpIZHVqSmNkMlk9Cj1WbzkvCi0tLS0tRU5EIFBHUCBTSUdOQVRVUkUtLS0tLQoKLS1TaWdfL1VyTkoucCtYRHd1UnM4ZWMrcHVyb21JLS0KCkZyb20gZGV2LXJldHVybi0xMjQ3MzUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIERlYyAgNCAyMDo1Nzo0MyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3MzUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMUNBN0MxNzQyQwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sICA0IERlYyAyMDE3IDIwOjU3OjQzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjI4MzQgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBEZWMgMjAxNyAyMDo1Nzo0MiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjI3NzMgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBEZWMgMjAxNyAyMDo1Nzo0MiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYyNzYxIGludm9rZWQgYnkgdWlkIDk5KTsgNCBEZWMgMjAxNyAyMDo1Nzo0MiAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMDQgRGVjIDIwMTcgMjA6NTc6NDIgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNEIzMzlGNjBGQjsgTW9uLCAgNCBEZWMgMjAxNyAyMDo1Nzo0MiArMDAwMCAoVVRDKQpGcm9tOiBUaWJvcjE3IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNjMtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE2My1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzE2MzogU3VyZWZpcmUtcmVwb3J0CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzEyMDQyMDU3NDIuNEIzMzlGNjBGQkBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogTW9uLCAgNCBEZWMgMjAxNyAyMDo1Nzo0MiArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgVGlib3IxNyBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNjMKICAKICAgIEBzaGFmaXVsbGFzCiAgICBUaGlzIGNvbW1pdCBpcyBxdWl0ZSBnb29kIGJ1dCB5b3UgaGF2ZSB0byBmaXggdGhlIGNvZGUgc3R5bGUgYW5kIHJlZ2lzdGVyIHRoaXMgaXNzdWUgYXQgSklSQS4KICAgIFRoZSBjb2RlIGNvbnZlbnRpb25zIGFyZSBsaXN0ZWQgaW4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2RldmVsb3BlcnMvY29udmVudGlvbnMvY29kZS5odG1sCiAgICBJbiB0aGUgbWlkZGxlIG9mIHRoZSBwYWdlIGlzIFhNTCBmb3IgRWNsaXBzZSBhbmQgSURFQS4gWW91IGNhbiB1c2UgaXQgdG8gY29uZmlndXJlIHlvdXIgdG9vbC4KICAgIFRoZW4gcnVuIHRoZSBsb2NhbCBidWlsZCBtdm4gaW5zdGFsbCAtUCBydW4taXRzLiBUaGUgYnVpbGQgaGFzIDE0MDAgdGVzdHMsIHNvIGl0IHVzdWFsbHkgdGFrZXMgNTAgbWludXRlcyB0byBjb21wbGV0ZSBvbiBTU0QgZGlzay4KICAgIFBsZWFzZSByZXdvcmsgdGhlIGNvZGUgc3R5bGUgYWNjb3JkaW5nIHRvIE1hdmVuIGNvbnZlbnRpb24gaW4gb3VyIHByb2plY3QgYW5kIHVzZSBgZ2l0IGNvbW1pdCAtLWFtbWVuZGAuIFRoZXJlIHNob3VsZCBiZSBvbmx5IHNpbmdsZSBjb21taXQgcGVyIFBSIGFuZCB0aGUgbWVzc2FnZSBzaG91bGQgcmVmZXIgdG8gSklSQSBJRCwgc29tZXRoaW5nIGxpa2U6CiAgICBbU1VSRUZJUkUtMTIzNDVdIFN1cmVmaXJlLXJlcG9ydAogICAgYW5kIHlvdSBjYW4gcmVnaXN0ZXIgYXQgb3VyIEpJUkEgaGVyZToKICAgIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9wcm9qZWN0cy9TVVJFRklSRQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NzM3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBEZWMgIDUgMTc6MTg6MTIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzM3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDM2NjNBMTc0MTkKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAgNSBEZWMgMjAxNyAxNzoxODoxMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE3MjM4IGludm9rZWQgYnkgdWlkIDUwMCk7IDUgRGVjIDIwMTcgMTc6MTg6MTEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE3MTY5IGludm9rZWQgYnkgdWlkIDUwMCk7IDUgRGVjIDIwMTcgMTc6MTg6MTEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNzE1OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDUgRGVjIDIwMTcgMTc6MTg6MTEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDA1IERlYyAyMDE3IDE3OjE4OjExICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDZGNTI4RTAwQkQ7IFR1ZSwgIDUgRGVjIDIwMTcgMTc6MTg6MTEgKzAwMDAgKFVUQykKRnJvbTogamtmZiA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMzctbWF2ZW4td2Fnb25AZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTM3LW1hdmVuLXdhZ29uQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi13YWdvbiBpc3N1ZSAjMzc6IG1ha2luZyB0aGUgcmV0cnkgaGFuZGxlIG9mIGh0dHAgY2xpZW50IGNvbmZpZ3VyYWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMjA1MTcxODExLjZGNTI4RTAwQkRAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFR1ZSwgIDUgRGVjIDIwMTcgMTc6MTg6MTEgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIGprZmYgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXdhZ29uL3B1bGwvMzcKICAKICAgIFZlcnkgbmljZSEgQ291bGQgeW91IGNvbW1lbnQgbW9yZSBvbiBob3cgdG8gdXNlIHRoaXMgaW4gcHJhY3RpY2UgdG8gaW1wcm92ZSByZWxpYWJpbGl0eSB3LnIudC4gY29tbW9uIG5ldHdvcmsgaXNzdWVzPyBJcyB0aGUgZGVmYXVsdCBiZWhhdmlvciBjaGFuZ2VkPwoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NzM4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBEZWMgIDUgMTc6Mzc6MzUgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzM4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIERDM0U3MTc0RDEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAgNSBEZWMgMjAxNyAxNzozNzozNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDYxMDU0IGludm9rZWQgYnkgdWlkIDUwMCk7IDUgRGVjIDIwMTcgMTc6Mzc6MzUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYwOTY2IGludm9rZWQgYnkgdWlkIDUwMCk7IDUgRGVjIDIwMTcgMTc6Mzc6MzUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MDk1MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDUgRGVjIDIwMTcgMTc6Mzc6MzUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDA1IERlYyAyMDE3IDE3OjM3OjM1ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDJBNkY4RjYwRTQ7IFR1ZSwgIDUgRGVjIDIwMTcgMTc6Mzc6MzUgKzAwMDAgKFVUQykKRnJvbTogcm1hbm5pYnVjYXUgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTM3LW1hdmVuLXdhZ29uQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0zNy1tYXZlbi13YWdvbkBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4td2Fnb24gaXNzdWUgIzM3OiBtYWtpbmcgdGhlIHJldHJ5IGhhbmRsZSBvZiBodHRwIGNsaWVudCBjb25maWd1cmFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTIwNTE3MzczNS4yQTZGOEY2MEU0QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBUdWUsICA1IERlYyAyMDE3IDE3OjM3OjM1ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBybWFubmlidWNhdSBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4td2Fnb24vcHVsbC8zNwogIAogICAgQGprZmYgZGVmYXVsdCBkaWRudCBjaGFuZ2UgKGJhY2t3ZCBjb21wYXQgYnV0IG9wZW4gdG8gc3VnZ2VzdGlvbnMpCiAgICAKICAgIGlkZWEgaXMgdG8gYWRkIHN5c3RlbSBwcm9wZXJ0aWVzIHRvIG1hdmVuIChNQVZFTl9PUFRTKS4gSGVyZSBhcmUgc29tZSBzYW1wbGVzOgogICAgCiAgICAKICAgICAgICAtRG1hdmVuLndhZ29uLmh0dHAucmV0cnloYW5kbGVyLmNsYXNzPWRlZmF1bHQKICAgICAgICAtRG1hdmVuLndhZ29uLmh0dHAucmV0cnloYW5kbGVyLmNvdW50PTUKICAgICAgICAtRG1hdmVuLndhZ29uLmh0dHAucmV0cnloYW5kbGVyLnJlcXVlc3RTZW50RW5hYmxlZD1mYWxzZSAjZGVmYXVsdAogICAgICAgIC1EbWF2ZW4ud2Fnb24uaHR0cC5yZXRyeWhhbmRsZXIubm9uUmV0cnlhYmxlQ2xhc3Nlcz1qYXZheC5uZXQuc3NsLlNTTEV4Y2VwdGlvbixqYXZhLm5ldC5Vbmtub3duSG9zdEV4Y2VwdGlvbgogICAgCiAgICBOb3RlIHRoYXQgYC1EbWF2ZW4ud2Fnb24uaHR0cC5yZXRyeWhhbmRsZXIuY2xhc3M9ZGVmYXVsdGAgY2FuIGJlIHN3aXRjaGVkIHRvIGAtRG1hdmVuLndhZ29uLmh0dHAucmV0cnloYW5kbGVyLmNsYXNzPXN0YW5kYXJkYCB0byB1c2UgdGhlIHN0YW5kYXJkIHJldHJ5IGhhbmRsZXIgaW1wbC4gdXNpbmcgYSBmcW4gY2xhc3MgbmFtZSBvZiBhIGh0dHAgcmV0cnkgaGFuZGxlciBpdCB3aWxsIHJlcGxhY2UgdGhlIGRlZmF1bHQgaW1wbCB3aXRoIHlvdXIgY3VzdG9tIGNsYXNzICh5b3UgbXVzdCBhZGQgdGhlIGphciB0byBtYXZlbiBsaWJzKS4KCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3NDItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIERlYyAgNiAwMzozOTowMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3NDItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOUNBNDgxN0JEOQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsICA2IERlYyAyMDE3IDAzOjM5OjAwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDg0MTQgaW52b2tlZCBieSB1aWQgNTAwKTsgNiBEZWMgMjAxNyAwMzozOTowMCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDgxMzcgaW52b2tlZCBieSB1aWQgNTAwKTsgNiBEZWMgMjAxNyAwMzozOTowMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ4MTIwIGludm9rZWQgYnkgdWlkIDk5KTsgNiBEZWMgMjAxNyAwMzozODo1OSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMDYgRGVjIDIwMTcgMDM6Mzg6NTkgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgODZDRUNFMDBCRDsgV2VkLCAgNiBEZWMgMjAxNyAwMzozODo1OSArMDAwMCAoVVRDKQpGcm9tOiBqa2ZmIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0zNy1tYXZlbi13YWdvbkBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMzctbWF2ZW4td2Fnb25AZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXdhZ29uIGlzc3VlICMzNzogbWFraW5nIHRoZSByZXRyeSBoYW5kbGUgb2YgaHR0cCBjbGllbnQgY29uZmlndXJhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzEyMDYwMzM4NTkuODZDRUNFMDBCREBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogV2VkLCAgNiBEZWMgMjAxNyAwMzozODo1OSArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgamtmZiBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4td2Fnb24vcHVsbC8zNwogIAogICAgSSBzZWUuIFNvLCBmb3IgZXhhbXBsZSwgd2hhdCdzIHRoZSBzaG9ydGVzdCB3YXkgdG8gY29uZmlndXJlIHRoaXMgdG8gc2ltcGx5IHJldHJ5IGV2ZXJ5dGhpbmcsIGluY2x1ZGluZyBzb2NrZXQgZXhjZXB0aW9ucywgaG9zdCByZXNvbHV0aW9uIGV4Y2VwdGlvbnMgZXRjPyAod2hhdCB3ZSB3YW50IGluIEJlYW0gYnVpbGRzIHdoZW4gZG93bmxvYWRpbmcgYXJ0aWZhY3RzKSBXb3VsZCBpdCBiZSBgLURtYXZlbi53YWdvbi5odHRwLnJldHJ5aGFuZGxlci5jbGFzcz1zdGFuZGFyZGAgPwoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NzQzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBEZWMgIDYgMDY6MDc6MjQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzQzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDE4NzlDMTdFRDIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAgNiBEZWMgMjAxNyAwNjowNzoyNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDY0MTIgaW52b2tlZCBieSB1aWQgNTAwKTsgNiBEZWMgMjAxNyAwNjowNzoyMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjIyNyBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IERlYyAyMDE3IDA2OjA3OjIzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjIxMyBpbnZva2VkIGJ5IHVpZCA5OSk7IDYgRGVjIDIwMTcgMDY6MDc6MjMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDA2IERlYyAyMDE3IDA2OjA3OjIzICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDIzN0RFRTAyMTk7IFdlZCwgIDYgRGVjIDIwMTcgMDY6MDc6MjMgKzAwMDAgKFVUQykKRnJvbTogcm1hbm5pYnVjYXUgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTM3LW1hdmVuLXdhZ29uQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0zNy1tYXZlbi13YWdvbkBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4td2Fnb24gaXNzdWUgIzM3OiBtYWtpbmcgdGhlIHJldHJ5IGhhbmRsZSBvZiBodHRwIGNsaWVudCBjb25maWd1cmFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTIwNjA2MDcyMy4yMzdERUUwMjE5QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBXZWQsICA2IERlYyAyMDE3IDA2OjA3OjIzICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBybWFubmlidWNhdSBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4td2Fnb24vcHVsbC8zNwogIAogICAgSSBndWVzcwogICAgCiAgICAgICAgLURtYXZlbi53YWdvbi5odHRwLnJldHJ5aGFuZGxlci5jbGFzcz1kZWZhdWx0CiAgICAgICAgLURtYXZlbi53YWdvbi5odHRwLnJldHJ5aGFuZGxlci5ub25SZXRyeWFibGVDbGFzc2VzPWphdmEubmV0LlVua25vd25Ib3N0RXhjZXB0aW9uCiAgICAKICAgIGNhbiBiZSBhIGdvb2Qgc3RhcnQKCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDc0Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgRGVjICA2IDE3OjI4OjAwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDc0Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3RkE3NjE3RTY0Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgIDYgRGVjIDIwMTcgMTc6Mjg6MDAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3MjE5OSBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IERlYyAyMDE3IDE3OjI3OjU1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MjA4OCBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IERlYyAyMDE3IDE3OjI3OjU1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzIwNzcgaW52b2tlZCBieSB1aWQgOTkpOyA2IERlYyAyMDE3IDE3OjI3OjU0IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAwNiBEZWMgMjAxNyAxNzoyNzo1NCArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBDNDE4QUUwNEYxOyBXZWQsICA2IERlYyAyMDE3IDE3OjI3OjU0ICswMDAwIChVVEMpCkZyb206IGprZmYgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTM3LW1hdmVuLXdhZ29uQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0zNy1tYXZlbi13YWdvbkBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4td2Fnb24gaXNzdWUgIzM3OiBtYWtpbmcgdGhlIHJldHJ5IGhhbmRsZSBvZiBodHRwIGNsaWVudCBjb25maWd1cmFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTIwNjE3Mjc1NC5DNDE4QUUwNEYxQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBXZWQsICA2IERlYyAyMDE3IDE3OjI3OjU0ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBqa2ZmIGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi13YWdvbi9wdWxsLzM3CiAgCiAgICBXYWl0OiB0aGUgZGVmYXVsdCBvbmUgd291bGQgZ2l2ZSBjdXJyZW50IGJlaGF2aW9yLCB3aGljaCBkb2Vzbid0IHJldHJ5IG9uIHNvY2tldCBlcnJvcnMuIERpZCB5b3UgbWVhbiBgLURtYXZlbi53YWdvbi5odHRwLnJldHJ5aGFuZGxlci5jbGFzcz1zdGFuZGFyZGAgcGVyaGFwcywgYW5kIHdpdGhvdXQgdGhlIGBub25SZXRyeWFibGVDbGFzc2VzYCBhcmd1bWVudCAoY2F1c2UgSSdkIHByZWZlciBVbmtub3duSG9zdCB0byBhbHNvIGJlIHJldHJpZWQsIGl0IGNhbiBoYXBwZW4gZHVlIHRvIHRyYW5zaWVudCBuZXR3b3JrIGlzc3Vlcyk/CiAgICBJdCdzIGEgYml0IGNvbmZ1c2luZyB0aGF0IGBkZWZhdWx0YCBhbmQgYHN0YW5kYXJkYCBoYXZlIHN1Y2ggZGlmZmVyZW50IG1lYW5pbmdzLi4uCiAgICAKICAgIEFueXdheTogaG9wZSB0aGF0IHNvbWUgb2YgdGhlIG1haW50YWluZXJzIGNhbiBjaGltZSBpbiBwZXJoYXBzPwoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NzQ4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBEZWMgIDYgMTc6MzQ6MjggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzQ4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDM3MDcwMTdFQUQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAgNiBEZWMgMjAxNyAxNzozNDoyOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk3MDU4IGludm9rZWQgYnkgdWlkIDUwMCk7IDYgRGVjIDIwMTcgMTc6MzQ6MjcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk2OTc0IGludm9rZWQgYnkgdWlkIDUwMCk7IDYgRGVjIDIwMTcgMTc6MzQ6MjcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5Njk2MyBpbnZva2VkIGJ5IHVpZCA5OSk7IDYgRGVjIDIwMTcgMTc6MzQ6MjcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDA2IERlYyAyMDE3IDE3OjM0OjI3ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIEI3QzI3RTAyMTk7IFdlZCwgIDYgRGVjIDIwMTcgMTc6MzQ6MjYgKzAwMDAgKFVUQykKRnJvbTogcm1hbm5pYnVjYXUgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTM3LW1hdmVuLXdhZ29uQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0zNy1tYXZlbi13YWdvbkBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4td2Fnb24gaXNzdWUgIzM3OiBtYWtpbmcgdGhlIHJldHJ5IGhhbmRsZSBvZiBodHRwIGNsaWVudCBjb25maWd1cmFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTIwNjE3MzQyNi5CN0MyN0UwMjE5QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBXZWQsICA2IERlYyAyMDE3IDE3OjM0OjI2ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBybWFubmlidWNhdSBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4td2Fnb24vcHVsbC8zNwogIAogICAgU21hbGwgbWlzdW5kZXJzdGFuZGluZzogZGVmYXVsdCBiZWhhdmlvciBpcyB0aGUgY3VycmVudCBvbmUgYnV0IGRlZmF1bHQgKHNhbWUgZm9yIHN0YW5kYXJkKSBjbGFzcSB2YWx1ZSBhY3R1YWxseSByZWZlcmVuY2VzIHRoZSBuYW1lIG9mIHRoZSBpbXBsIC0KICAgIHdpdGggYSBzaG9ydG5hbWUgdG8gYmUgaHVtYW4gZmVpZW5kbHkgLSBhbmQgZGVmYXVsdCBpbXBsIHN1cHBvcnRzIHJldHJ5YWJsZSBleGNlcHRpb24gY2xhc3NlcyBjb25maWd1cmF0aW9uLgoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NzU0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBEZWMgIDcgMDQ6MzM6MDcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzU0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEI4ODhCMTdBQTIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAgNyBEZWMgMjAxNyAwNDozMzowNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDgwNDU3IGludm9rZWQgYnkgdWlkIDUwMCk7IDcgRGVjIDIwMTcgMDQ6MzM6MDcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgwMTcyIGludm9rZWQgYnkgdWlkIDUwMCk7IDcgRGVjIDIwMTcgMDQ6MzM6MDcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MDE2MSBpbnZva2VkIGJ5IHVpZCA5OSk7IDcgRGVjIDIwMTcgMDQ6MzM6MDYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDA3IERlYyAyMDE3IDA0OjMzOjA2ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIENFQjVBRThGMjk7IFRodSwgIDcgRGVjIDIwMTcgMDQ6MzM6MDUgKzAwMDAgKFVUQykKRnJvbTogb2xhbXkgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTM3LW1hdmVuLXdhZ29uQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0zNy1tYXZlbi13YWdvbkBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4td2Fnb24gaXNzdWUgIzM3OiBtYWtpbmcgdGhlIHJldHJ5IGhhbmRsZSBvZiBodHRwIGNsaWVudCBjb25maWd1cmFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTIwNzA0MzMwNS5DRUI1QUU4RjI5QGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBUaHUsICA3IERlYyAyMDE3IDA0OjMzOjA1ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBvbGFteSBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4td2Fnb24vcHVsbC8zNwogIAogICAgaW50ZXJlc3RpbmcgZmVhdHVyZS4gSSB3b25kZXIgeW91IGNvdWxkIGFkZCBzb21lIGRvY3VtZW50YXRpb24gbWF5YmUgaGVyZTogaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvd2Fnb24vd2Fnb24tcHJvdmlkZXJzL3dhZ29uLWh0dHAvCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3NTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IERlYyAgNyAwODo0MDo1OSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3NTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgREY2RTIxMDAwNQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsICA3IERlYyAyMDE3IDA4OjQwOjU4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzE1OSBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IERlYyAyMDE3IDA4OjQwOjU4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MDU0IGludm9rZWQgYnkgdWlkIDUwMCk7IDcgRGVjIDIwMTcgMDg6NDA6NTggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MDQzIGludm9rZWQgYnkgdWlkIDk5KTsgNyBEZWMgMjAxNyAwODo0MDo1OCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMDcgRGVjIDIwMTcgMDg6NDA6NTggKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgMUMwRUZFMDQzMzsgVGh1LCAgNyBEZWMgMjAxNyAwODo0MDo1OCArMDAwMCAoVVRDKQpGcm9tOiBybWFubmlidWNhdSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMzctbWF2ZW4td2Fnb25AZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTM3LW1hdmVuLXdhZ29uQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi13YWdvbiBpc3N1ZSAjMzc6IG1ha2luZyB0aGUgcmV0cnkgaGFuZGxlIG9mIGh0dHAgY2xpZW50IGNvbmZpZ3VyYWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMjA3MDg0MDU4LjFDMEVGRTA0MzNAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFRodSwgIDcgRGVjIDIwMTcgMDg6NDA6NTggKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIHJtYW5uaWJ1Y2F1IGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi13YWdvbi9wdWxsLzM3CiAgCiAgICBAb2xhbXkgdXBkYXRlZCBzaXRlIGFwdAoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NzU3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBEZWMgIDcgMTA6MjU6MzAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzU3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIENDRjMxMTA0RUQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAgNyBEZWMgMjAxNyAxMDoyNTozMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE0MDcyIGludm9rZWQgYnkgdWlkIDUwMCk7IDcgRGVjIDIwMTcgMTA6MjU6MzAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE0MDAzIGludm9rZWQgYnkgdWlkIDUwMCk7IDcgRGVjIDIwMTcgMTA6MjU6MzAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMzk4MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDcgRGVjIDIwMTcgMTA6MjU6MzAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDA3IERlYyAyMDE3IDEwOjI1OjMwICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDEzOTYwRTA4MjM7IFRodSwgIDcgRGVjIDIwMTcgMTA6MjU6MzAgKzAwMDAgKFVUQykKRnJvbTogbWljaGFlbC1vIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0zNy1tYXZlbi13YWdvbkBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMzctbWF2ZW4td2Fnb25AZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXdhZ29uIGlzc3VlICMzNzogbWFraW5nIHRoZSByZXRyeSBoYW5kbGUgb2YgaHR0cCBjbGllbnQgY29uZmlndXJhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzEyMDcxMDI1MzAuMTM5NjBFMDgyM0BnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogVGh1LCAgNyBEZWMgMjAxNyAxMDoyNTozMCArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgbWljaGFlbC1vIGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi13YWdvbi9wdWxsLzM3CiAgCiAgICBUaGVyZSBpcyBiaXQgb2YgYSBjaGFvcyBub3cuIEkga25vdyB0aGF0IHRoZSBEZXBsb3kgUGx1Z2luIHN1cHBvcnRzIHNvbWV0aGluZyBzaW1pbGFyIGFuZCBwZW9wbGUgYXJlIHJlcXVlc3RpbmcgdGhlIHNhbWUgZmVhdHVyZSBmb3IgdGhpcyBwcm9ibGVtIGFyZWEuIEknbGwgY29sbGVjdCBhbmQgaGF2ZSBhIGxvb2sgYXQgaXQuCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3NTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IERlYyAgNyAxOTo0MTozMiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3NTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRjJBNkUxN0Q1NAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsICA3IERlYyAyMDE3IDE5OjQxOjMxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDg2ODYgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBEZWMgMjAxNyAxOTo0MTozMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDg1NzkgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBEZWMgMjAxNyAxOTo0MTozMSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ4NTYzIGludm9rZWQgYnkgdWlkIDk5KTsgNyBEZWMgMjAxNyAxOTo0MTozMSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMDcgRGVjIDIwMTcgMTk6NDE6MzEgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgOTg1NUFERkE1NTsgVGh1LCAgNyBEZWMgMjAxNyAxOTo0MTozMCArMDAwMCAoVVRDKQpGcm9tOiBUaWJvcjE3IDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNjUtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE2NS1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgaXNzdWUgIzE2NTogTWVyZ2UgbWFzdGVyIHRvIGp1bml0NQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMjA3MTk0MTMwLjk4NTVBREZBNTVAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFRodSwgIDcgRGVjIDIwMTcgMTk6NDE6MzAgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIFRpYm9yMTcgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY1CiAgCiAgICBAYnJpdHRlciAKICAgIFNvcnJ5IGZvciBsYXRlIHJlcGx5LiBUaGlzIGVycm9yIGlzIG5vcm1hbCBiZWhhdmlvciBiZWNhdXNlIHlvdSB1c2VkIGBtdm4gdmVyaWZ5YC4gSW4gc3VyZWZpcmUgeW91IHNob3VsZCB1c2UgYG12biBpbnN0YWxsIC1QIHJ1bi1pdHNgLgogICAgV2UgY2Fubm90IG1lcmdlIG1hc3RlciB0byBqdW5pdDUgYmVjYXVzZSBwdXNoaW5nIGJhY2sgd291bGQgYmVjb21lIG11bHRpcGxlIGNvbW1pdHMuIFdoYXQgYWJvdXQgaWYgSSBzcXVhc2ggeW91ciBjb21taXRzIHRvIG9uZT8gQW5kIHRoZW4gaXQgd291bGQgZ28gdG8gYSBuZXcgYnJhbmNoIGJhc2VkIG9uIG1hc3RlciBjdXJyZW50IEhFQUQ/CiAgICBUaGlzIGJyYW5jaCBoYXMgb2xkIGhpc3RvcnkuCiAgICBRdWVzdGlvbiwgRG8geW91IGhhdmUgYW55dGhpbmcgaW4gb3VyIGNvZGUgdG8gYWRkIHJlZ2FyZGluZyBqdW5pdDUgYWN0aXZpdHk/IFlvdSBrbm93IGJlc3QuCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4OTEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIERlYyAzMSAwNjoyMDozNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4OTEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRTY2NkUxNzUxRAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDMxIERlYyAyMDE3IDA2OjIwOjMzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTYwMTMgaW52b2tlZCBieSB1aWQgNTAwKTsgMzEgRGVjIDIwMTcgMDY6MjA6MzMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE1ODkyIGludm9rZWQgYnkgdWlkIDUwMCk7IDMxIERlYyAyMDE3IDA2OjIwOjMzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTU4NjMgaW52b2tlZCBieSB1aWQgOTkpOyAzMSBEZWMgMjAxNyAwNjoyMDozMiAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMzEgRGVjIDIwMTcgMDY6MjA6MzIgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgQjlERENERkQ2RjsgU3VuLCAzMSBEZWMgMjAxNyAwNjoyMDozMiArMDAwMCAoVVRDKQpGcm9tOiBDaHJpc3RpYW5TY2h1bHRlIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNDMtbWF2ZW5AZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE0My1tYXZlbkBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4gaXNzdWUgIzE0MzogW01ORy01MzU5XSBEZWNsYXJlZCBleGVjdXRpb24gaW4gUGx1Z2luTWdtdCBnZXRzIGJvdW5kIHRvIC4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMjMxMDYyMDMyLkI5RERDREZENkZAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFN1biwgMzEgRGVjIDIwMTcgMDY6MjA6MzIgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIENocmlzdGlhblNjaHVsdGUgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL3B1bGwvMTQzCiAgCiAgICBbQ29ycmVzcG9uZGluZyBJVCBwdWxsIHJlcXVlc3QuXShodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWludGVncmF0aW9uLXRlc3RpbmcvcHVsbC8yNykKCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDg5My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gRGVjIDMxIDA2OjI3OjU2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg5My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAwRjE1QzE3NTQyCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMzEgRGVjIDIwMTcgMDY6Mjc6NTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyMjQ3MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMSBEZWMgMjAxNyAwNjoyNzo1NSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjIzNDEgaW52b2tlZCBieSB1aWQgNTAwKTsgMzEgRGVjIDIwMTcgMDY6Mjc6NTUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMjMzMCBpbnZva2VkIGJ5IHVpZCA5OSk7IDMxIERlYyAyMDE3IDA2OjI3OjU0IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAzMSBEZWMgMjAxNyAwNjoyNzo1NCArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBCQ0UyRERGRjEzOyBTdW4sIDMxIERlYyAyMDE3IDA2OjI3OjU0ICswMDAwIChVVEMpCkZyb206IENocmlzdGlhblNjaHVsdGUgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Z2l0LXByLTE0Ni1tYXZlbkBnaXQuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxnaXQtcHItMTQ2LW1hdmVuQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbiBpc3N1ZSAjMTQ2OiBbTU5HLTQ0NjNdIERlcGVuZGVuY3kgbWFuYWdlbWVudCBpbXBvcnQgc2hvdWxkIHN1cHBvcnQgdmVyLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpNZXNzYWdlLUlkOiA8MjAxNzEyMzEwNjI3NTQuQkNFMkRERkYxM0BnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogU3VuLCAzMSBEZWMgMjAxNyAwNjoyNzo1NCArMDAwMCAoVVRDKQoKR2l0aHViIHVzZXIgQ2hyaXN0aWFuU2NodWx0ZSBjb21tZW50ZWQgb24gdGhlIGlzc3VlOgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vcHVsbC8xNDYKICAKICAgIFtDb3JyZXNwb25kaW5nIElUIHB1bGwgcmVxdWVzdC5dKGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4taW50ZWdyYXRpb24tdGVzdGluZy9wdWxsLzI4KQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODk1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBEZWMgMzEgMDY6MzQ6MjkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODk1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEUyQzMwMTc1ODgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAzMSBEZWMgMjAxNyAwNjozNDoyOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI5NzE4IGludm9rZWQgYnkgdWlkIDUwMCk7IDMxIERlYyAyMDE3IDA2OjM0OjI4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyOTYyMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMSBEZWMgMjAxNyAwNjozNDoyOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI5NjEwIGludm9rZWQgYnkgdWlkIDk5KTsgMzEgRGVjIDIwMTcgMDY6MzQ6MjggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDMxIERlYyAyMDE3IDA2OjM0OjI4ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIEYyRjIwREZGMEI7IFN1biwgMzEgRGVjIDIwMTcgMDY6MzQ6MjcgKzAwMDAgKFVUQykKRnJvbTogQ2hyaXN0aWFuU2NodWx0ZSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxnaXQtcHItMTQ3LW1hdmVuQGdpdC5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGdpdC1wci0xNDctbWF2ZW5AZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuIGlzc3VlICMxNDc6IFtNTkctNTUyN10gRGVwZW5kZW5jeSBtYW5hZ2VtZW50IGltcG9ydCBzaG91bGQgc3VwcG9ydCByZWwuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCk1lc3NhZ2UtSWQ6IDwyMDE3MTIzMTA2MzQyNy5GMkYyMERGRjBCQGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnPgpEYXRlOiBTdW4sIDMxIERlYyAyMDE3IDA2OjM0OjI3ICswMDAwIChVVEMpCgpHaXRodWIgdXNlciBDaHJpc3RpYW5TY2h1bHRlIGNvbW1lbnRlZCBvbiB0aGUgaXNzdWU6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9wdWxsLzE0NwogIAogICAgW0NvcnJlc3BvbmRpbmcgSVQgcHVsbCByZXF1ZXN0Ll0oaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1pbnRlZ3JhdGlvbi10ZXN0aW5nL3B1bGwvMjkpCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4OTctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIERlYyAzMSAwNjozODo1OCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4OTctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMUM4NkMxNzVBNQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDMxIERlYyAyMDE3IDA2OjM4OjU4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzM0MDIgaW52b2tlZCBieSB1aWQgNTAwKTsgMzEgRGVjIDIwMTcgMDY6Mzg6NTcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMzMjkwIGludm9rZWQgYnkgdWlkIDUwMCk7IDMxIERlYyAyMDE3IDA2OjM4OjU3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzMyNzkgaW52b2tlZCBieSB1aWQgOTkpOyAzMSBEZWMgMjAxNyAwNjozODo1NyAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMzEgRGVjIDIwMTcgMDY6Mzg6NTcgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgMzRDQjFERkYwQjsgU3VuLCAzMSBEZWMgMjAxNyAwNjozODo1NyArMDAwMCAoVVRDKQpGcm9tOiBDaHJpc3RpYW5TY2h1bHRlIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPGdpdC1wci0xNDgtbWF2ZW5AZ2l0LmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Z2l0LXByLTE0OC1tYXZlbkBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4gaXNzdWUgIzE0ODogW01ORy01NjAwXSBEZXBlbmRlbmN5IG1hbmFnZW1lbnQgaW1wb3J0IHNob3VsZCBzdXBwb3J0IGV4Yy4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KTWVzc2FnZS1JZDogPDIwMTcxMjMxMDYzODU3LjM0Q0IxREZGMEJAZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmc+CkRhdGU6IFN1biwgMzEgRGVjIDIwMTcgMDY6Mzg6NTcgKzAwMDAgKFVUQykKCkdpdGh1YiB1c2VyIENocmlzdGlhblNjaHVsdGUgY29tbWVudGVkIG9uIHRoZSBpc3N1ZToKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL3B1bGwvMTQ4CiAgCiAgICBbQ29ycmVzcG9uZGluZyBJVCBwdWxsIHJlcXVlc3QuXShodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWludGVncmF0aW9uLXRlc3RpbmcvcHVsbC8zMCkKCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDM3Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgTm92ICAxIDA2OjI4OjEzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDM3Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4NkM5MDEwMDlFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgIDEgTm92IDIwMTcgMDY6Mjg6MTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5Mjg5MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxIE5vdiAyMDE3IDA2OjI4OjEzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MjY2NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxIE5vdiAyMDE3IDA2OjI4OjEyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTI2NTUgaW52b2tlZCBieSB1aWQgOTkpOyAxIE5vdiAyMDE3IDA2OjI4OjEyIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAwMSBOb3YgMjAxNyAwNjoyODoxMiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEI5OTQ3QzY2NTYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsICAxIE5vdiAyMDE3IDA2OjI4OjExICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEuMwpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMS4zIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44LCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFNBNWpoaVFYUzlXMCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgIDEgTm92IDIwMTcgMDY6Mjg6MDkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDA2LnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI4XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDdEOTJFNjBEMjgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsICAxIE5vdiAyMDE3IDA2OjI4OjA5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDI5IHdpdGggTUUKCWlkIFVXVTIxdzAwTjIwVWZkeTAzV1UzaHE7IFdlZCwgMDEgTm92IDIwMTcgMDc6Mjg6MDMgKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogV2VkLCAwMSBOb3YgMjAxNyAwNzoyODowMyArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBtaWdyYXRpbmcgc29tZSBjb2RlIHRvIEdpdApEYXRlOiBXZWQsIDAxIE5vdiAyMDE3IDA3OjI4OjAyICswMTAwCk1lc3NhZ2UtSUQ6IDwyMDI4ODgwLjFIZ0ZtUkpTMHBAZ2lnYT4KSW4tUmVwbHktVG86IDw1ODc4MTEwLlRNRW90NlZFdXVAZ2lnYT4KUmVmZXJlbmNlczogPDU4NzgxMTAuVE1Fb3Q2VkV1dUBnaWdhPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCmZvciBsYXp5IHBlb3BsZSwgSSB0b29rIHRpbWUgdG8gY3JlYXRlIHRoZSA0IHJlcG8gb24gcGVyc29uYWwgR2l0SHViIHNwYWNlOgpodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tYXBhY2hlLXBhcmVudApodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tcGFyZW50Cmh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1kZWZhdWx0LXNraW4KaHR0cHM6Ly9naXRodWIuY29tL2hib3V0ZW15L21hdmVuLWZsdWlkby1za2luCgpJIHdvbid0IGRvIHRoZSBzYW1lIGluIHRoZSBmdXR1cmUgZm9yIHRoZSAyNiBzaGFyZWQgYW5kIDQ1IHBsdWdpbnMsIHNpbmNlPTIwCm1hbnVhbCByZXBvIGNyZWF0aW9uIGlzIG5vdCBmdW4uLi4KClJlZ2FyZHMsCgpIZXJ2PUU5CgpMZSBtYXJkaSAzMSBvY3RvYnJlIDIwMTcsIDE2OjA4OjAxIENFVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiBBcyB5b3UgcHJvYmFibHkgbm90aWNlZCwgSSBtaWdyYXRlZCBtYXZlbi1kaXN0LXRvb2wgWzFdIHRvIGdpdCwgdXNpbmcgc2VsPQpmLQo+IHNlcnZpY2UgR2l0Ym94IGZvciB0aGUgZW1wdHkgcmVwbyBjcmVhdGlvbiBhbmQgYSBtaWdyYXRlLXNhbmRib3guc2ggc2hlbGwKPiBzY3JpcHQgWzJdIHRvIHBvcHVsYXRlIHRoZW0gKGFmdGVyIFNsaW5nIGV4YW1wbGUpCj49MjAKPiBJdCB3b3JrZWQgbGlrZSBhIGNoYXJtIQo+PTIwCj4gSWYgbm9ib2R5IG9iamVjdHMsIGluIDcyaCwgSSdsbCB1c2UgbWlncmF0ZS1wb20uc2ggYW5kIG1pZ3JhdGUtc2tpbnMuc2ggdG8KPiBjcmVhdGUgNCBuZXcgcmVwb3M6IG1hdmVuLWFwYWNoZS1wYXJlbnQsIG1hdmVuLXBhcmVudCwgbWF2ZW4tZGVmYXVsdC1za2luCj4gYW5kIG1hdmVuLWZsdWlkby1za2luCj4gUGxlYXNlIHRha2UgdGltZSB0byBleGVjdXRlIHRoZSBzY3JpcHRzIGZvciB5b3Vyc2VsZiBhbmQgY2hlY2sgdGhhdCB0aGUKPiByZXN1bHQgaXMgb2sgZm9yIHlvdS4KPj0yMAo+IEkgYWxyZWFkeSBwcmVwYXJlZCBtaWdyYXRlLXBsdWdpbnMuc2ggYW5kIG1pZ3JhdGUtc2hhcmVkLnNoIHNjcmlwdHM6IEknbQo+IHdhaXRpbmcgZm9yIEplbmtpbnMgaW50ZWdyYXRpb24gcmVzdWx0cyBiZWZvcmUgdHJ5aW5nIHRvIG1pZ3JhdGUgdGhpcyBwYXI9CnQsCj4gYnV0IHlvdSBjYW4gYWxzbyB0YWtlIHRpbWUgdG8gY2hlY2sgdGhhdCB0aGUgcmVzdWx0aW5nIGdpdCByZXBvcyBmcm9tIHRoZQo+IHNjcmlwdHMgYXJlIGdvb2QuCj49MjAKPiBSZWdhcmRzLAo+PTIwCj4gSGVydj1FOQo+PTIwCj4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZGlzdC10b29sLwo+PTIwCj4gWzJdIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL21hdmVuL3NhbmRib3gvdHJ1bmsvc2NyaXB0cy9naXQvCj49MjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzODYwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBTZXAgIDIgMTY6MjI6MTcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzODYwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIENGMEJGMUFFODUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgMiBTZXAgMjAxNyAxNjoyMjoxNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg1Mjc5IGludm9rZWQgYnkgdWlkIDUwMCk7IDIgU2VwIDIwMTcgMTY6MjI6MTcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg1MTc5IGludm9rZWQgYnkgdWlkIDUwMCk7IDIgU2VwIDIwMTcgMTY6MjI6MTYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NTE2OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDIgU2VwIDIwMTcgMTY6MjI6MTYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDAyIFNlcCAyMDE3IDE2OjIyOjE2ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgM0IzRUYxQTIyNzYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICAyIFNlcCAyMDE3IDE2OjIyOjE2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTMuMDAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0zLjAwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBGY0k4S0JLeVJhWmsgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsICAyIFNlcCAyMDE3IDE2OjIyOjExICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1vdXQuZ214Lm5ldCAobW91dC5nbXgubmV0IFsyMTIuMjI3LjE1LjE5XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDAxQUNGNUZCRUEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICAyIFNlcCAyMDE3IDE2OjIyOjEwICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIEthcmwtSGVpbnpzLU1hY0Jvb2stUHJvLmxvY2FsIChbMjE3LjI0Ny4xNi4yMDhdKSBieQogbWFpbC5nbXguY29tIChtcmdteDAwMSBbMjEyLjIyNy4xNy4xOTBdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTTdHajgtMWRiSkM4MDZOaS0wMHg2dzggZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMDIgU2VwIDIwMTcKIDE4OjIyOjEwICswMjAwClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogaW5mb0Bzb2ViZXMuZGUKRnJvbTogS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+ClN1YmplY3Q6IE1hdmVuIE1hcHBpbmcgU2hhcmVkIENvbXBvbmVudApNZXNzYWdlLUlEOiA8MjAzYzBhMDUtZDhkMy00YzMwLWEwYjMtMjVhOTJkYmU1ZmRkQGdteC5kZT4KRGF0ZTogU2F0LCAyIFNlcCAyMDE3IDE4OjIyOjA5ICswMjAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwLjExOyBydjo1Mi4wKQogR2Vja28vMjAxMDAxMDEgVGh1bmRlcmJpcmQvNTIuMi4xCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtODsgZm9ybWF0PWZsb3dlZApDb250ZW50LUxhbmd1YWdlOiBlbi1HQgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0ClgtUHJvdmFncy1JRDogVjAzOkswOjJOYVBTcXhWa3JwSlRjMnZRYndzSFJzWk9kYzBMTkcxbzFabWY0bUdtckc1eEZ1Z2IyRwogSWtSY200QTB6R1VpeXd1RTl1NGRrZldtaTdJOTRBR3puU2VFSVFsSnJYOW5ibk40YzlNakJKRWl1aVpObjBaV3M2ZkxuaFcKIGNHNnU1WlR3NDdOdy80cFhJWXhNem9WM2FpOU55aXZBem9hTnAxNTRWTTNQVHNNVDN5WXk4UWhQbU9RaHJ3QmVYSlhFeUEvCiBNYkREeEM2dU1vekhTK0ZOK2lHVEE9PQpYLVVJLU91dC1GaWx0ZXJyZXN1bHRzOiBub3RqdW5rOjE7VjAxOkswOkpna2E4L2F1ZU1JPTpmZFoxSkxzdlF3dFlzRDU1a1BMZmN0CiBscW9MSFMzTHlFRVdubGhsdlJsb2ZUQ1RlSWd3N0J5a1d0Yyt5eVBZNXlJQS9XQ0YrYmRHNG5ncHdnbFpxYTBRTUFCWmJXQy9MCiBucFpvVnpjYS9Zb3JET2tUYkN5MURtcDY5Zks5OUcvQlhMMFNpZktpSEJaeUVOdzBsbVp5MHJlTncwdWVIRnU3dlRvNG43bGFvCiBOMEJVa2pXQWdvZGJmTlowWmpycmtUcWUwaVlRYzd0Tml3NExyQng0ak8wR0s3SjBHTk85L0Z3aFZNYno0WWFsS0ljeis0U2FvCiBXbzRqYVo1SFA3TEN2aDdGL3BaZmFUcUdxZ1lwQzFnYTBDVzdySmtvV2tNQ2xlcnpkTWRhVGowbkxMK2EvZGFsM243QXhzMHZKCiBlL0hOeFlwYzY1Q2Y1alozK3YwVStaUXNiSW4wSjZGZ1VjWE5QRTBYQmlCbTJBUlEvNkV6NDVXRUMxNE9PeitmVWhpWm8xUHBPCiBvVHNKZFJYQ2I0SGxHUDFHbmZjRWpVR3NTanFjVTNVNEo1WDZYbm1HTS9IT3liVGRiVTdpd2duZTVoRkRYSFJWMVk3OFc1SlZwCiBMQldsdU1zTnkvQytxVlR6ZVpoLzlkVk00bnRzME81V1IrYkxqWTFzTmREN2hqNmRnc2pJdzRhNTZndmtKcUVvUCtLMlNnWGRkCiBVT1NUUDZNNkkxRUpydmZzWFZscklKNDY5RHduWHREZVpOMVZldHBlR3V2ZUJEOUFZSjk4M0pFMDBRVndNb0xVTW0ySUJLb2R1CiBpMk5ocGVxcTlndTEvcFpacGlKdE5kd0gwU1ZPQ3ZJNGFKdDRkUStzOEtwR2FQQmpaNytWMUc1eWVvaUx3VjRUZ3JjNHlicWhBCiBrWHc4MFIvK0VHck15RkhLeG9hRzQ0dklnY01PUU4zNjZyQ3dDVkZveVZoN2ZBeG02K0hISGlod2JkUE5BTlNHWElEbVF4dC8rCiBlRWwzUUY5KzhFMlB4ZjF3SXJHSExJN1pROTJ5YUR6RnZSaDNvemVxazBKaEZYTkprRUE0SGFlaWNGUG1lalpSbnpUNDRVUVFyCiBOb0xzVmJwK05Kc1laOFRSRUFoZkRpM0tub0xJTlN2QS9rNkNRSUx3aXEwVm1hV3ViUT0KCkhpLAoKYnkgdGFraW5nIGEgbG9vayBpbnRvIHVzaW5nIG1hdmVuLW1hcHBpbmcgZm9yIHNvbWUgZmlsZSBuYW1lIG1hcHBpbmdzIAoodXNpbmcgaW4gTWF2ZW4gRUFSIFBsdWdpbikgSSBoYXZlIHN0dW1ibGVkIG92ZXIgYSB0aGluZyB3aGljaCBJIGRvbid0IAp1bmRlcnN0YW5kIGF0IHRoZSBtb21lbXQuCgpXaXRoaW4gdGhlIG1hdmVuLW1hcHBpbmcgc2hhcmVkIGNvbXBvbmVudCB0aGUgZGVmYXVsdCBtYXBwaW5ncyBsb29rcyAKbGlrZSB0aGlzOgoKQHthcnRpZmFjdElkfUAtQHtiYXNlVmVyc2lvbn1ALkB7ZXh0ZW5zaW9ufUAKCldoZXJlIEknbSB1bnN1cmUgaXMgdGhlICJiYXNlVmVyc2lvbiI/IFRoZSBxdWVzdGlvbiBpczogV2h5IGRvZXMgaXQgbm90IAp1c2UgICJ2ZXJzaW9uIiBpbnN0ZWFkID8gSSd2ZSBzZWVuIHRoaW5ncyBsaWtlIHZlcnNpb24gaXM6IAoiMS4wLjAtU05BUFNIT1QiIHdoZXJlIGJhc2VWZXJzaW9uIGlzOiAiMS4wLjAtVElNRVNUQU1QIi4uID8gKE1hdmVuIEVBUiAKUGx1Z2luKS4uCgpJbiBjb250cmFkaWN0aW9uIHRoZSBkb2N1bWVudGF0aW9uWzFdIHNheXMgZGlmZmVyZW50IG1lYW5zIHVzaW5nIAoidmVyc2lvbiIgaW5zdGVhZCBvZiAiYmFzZVZlcnNpb24iLi4uCgpTbyBpcyB0aGlzIGEgYnVnIG9yIGlzIHRoaXMgYSBtaXN1bmRlcnN0YW5kaW5nIG9uIG15IHNpdGU/CgpLaW5kIHJlZ2FyZHMKS2FybCBIZWlueiBNYXJiYWlzZQoKClsxXTogaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvc2hhcmVkL21hdmVuLW1hcHBpbmcvYXBpZG9jcy9pbmRleC5odG1sCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM5ODQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIFNlcCAxMSAyMTo1NzoxMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5ODQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMjg1ODkxOTJGOAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDIxOjU3OjEwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDMxMDYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgU2VwIDIwMTcgMjE6NTc6MDkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQzMDMxIGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDIxOjU3OjA4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDMwMjAgaW52b2tlZCBieSB1aWQgOTkpOyAxMSBTZXAgMjAxNyAyMTo1NzowOCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMTEgU2VwIDIwMTcgMjE6NTc6MDggKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBCNjhBRjFBMjk3OQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMjE6NTc6MDcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4zClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjMgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0ZSRUVNQUlMX1JFUExZPTEsIEtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLAoJS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgNWpzc0JhdmxCZnFFIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAxMSBTZXAgMjAxNyAyMTo1NzowNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDUuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjddKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMTJDODM1RkQwQwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMjE6NTc6MDUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkNDAgd2l0aCBNRQoJaWQgOE13eTF3MDBVMjBVZmR5MDNNd3p1YjsgTW9uLCAxMSBTZXAgMjAxNyAyMzo1Njo1OSArMDIwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBNb24sIDExIFNlcCAyMDE3IDIzOjU2OjU5ICswMjAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMQpEYXRlOiBNb24sIDExIFNlcCAyMDE3IDIzOjU2OjU4ICswMjAwCk1lc3NhZ2UtSUQ6IDwyMDU3OTQ4LmsxR3lmanVHWGRAZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zMy1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpJbi1SZXBseS1UbzogPENBK25Qbk15UzJxMXVmYVcrUzZzbWhaWjFKY3hoZjloWTUtM25CSi1pQ1dlalBVQURWQUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk14eUcyTmVQWHBWcWF3ZTlqUj1pdEhFVDZVdWRuTjlDakhodj1vby1LQ3J4d0BtYWlsLmdtYWlsLmNvbT4gPHBvbnktNTZhM2FkZWFmNjBjNDA1OTZmYjI4NGIyNDUyNDE0OGY2MDVlOGQyMy01MmQ0MWNkNDBmMjM0M2M4OTUyODgwZThmODRkYTNlODBkMzM1NTA5QGRldi5tYXZlbi5hcGFjaGUub3JnPiA8Q0ErblBuTXlTMnExdWZhVytTNnNtaFpaMUpjeGhmOWhZNS0zbkJKLWlDV2VqUFVBRFZBQG1haWwuZ21haWwuY29tPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCmp1c3QgZm9yIHRoZSByZWNvcmRzOiBpdCBpcyBXaW5kb3dzICsgR2l0IEJhc2ggKE1JTkdXNjQpIG9ubHkKCmFuZCB0aGVyZSBpcyBhIGNoYW5jZSB0aGF0IGFkZGluZyAtRGphbnNpLmZvcmNlPTNEdHJ1ZSBjYW4gZm9yY2UgSkFuc2k9MjAKYWN0aXZhdGlvbiAoZXZlbiBpZiBKQW5zaSBmYWlscyB0byBkZXRlY3QgdGhhdCBpdCBzaG91bGQgYXV0by1hY3RpdmF0ZSkKCmRldGFpbHMgb24gaXNzdWUgaW4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjI4MiAsIGFuZCBhPQo9MjAKZnV0dXJlIEpBbnNpIGlzc3VlLi4uCgpSZWdhcmRzLAoKSGVydj1FOQoKTGUgbHVuZGkgMTEgc2VwdGVtYnJlIDIwMTcsIDEyOjUzOjQ2IENFU1QgU3RlcGhlbiBDb25ub2xseSBhID1FOWNyaXQgOgo+IFNvIHRoYXQgaXMgd2luZG93cyBvbmx5LCBvciB3ZXJlIHRoZXkgbG9zdCBvbiBvdGhlciBPU2VzIGZvciB5b3UuCj49MjAKPiBJIGhhdmUgY29sb3VycyBvbiBsaW51eCAodmlhIGRvY2tlcikgYW5kIG9zLXgKPj0yMAo+IE9uIDExIFNlcHRlbWJlciAyMDE3IGF0IDEyOjM1LCBkZWphbjI2MDlAZ21haWwuY29tIDxkZWphbjI2MDlAZ21haWwuY29tPgo+PTIwCj4gd3JvdGU6Cj4gPiArMSAoY29uZGl0aW9uYWxseSkuCj4gPj0yMAo+ID4gVGVzdGVkIHZpYSBwcm9qZWN0IHRoYXQgaW5jbHVkZXMgZG96ZW4gb2YgcGx1Z2luczogMXN0IHRpZXIsIE1vam9IYXVzIGE9Cm5kCj4gPiBmZXcgM3JkIHBhcnR5IHBsdWdpbnMgKHNvIHRvIHNheSkuCj4gPj0yMAo+ID4gRXZlcnl0aGluZyBsb29rcyBnb29kIHdpdGggb25lIG5vdGFibGUgcmVncmVzc2lvbjoKPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyODIgQ29uc29sZSBvdXRwdXQgaGFzIG5vCj4gPiBjb2xvcnMgKHJlZ3Jlc3Npb24gaW4gTWF2ZW4gMy41LjEpCj4gPj0yMAo+ID4gUmVnYXJkcywKPiA+IERlamFuCj4gPj0yMAo+ID4gT24gMjAxNy0wOS0xMCAxNzozOSwgU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KPiA+PTIwCj4gPiB3cm90ZToKPiA+ID4gSGksCj4gPiA+PTIwCj4gPiA+IFdlIHNvbHZlZCAyNSBpc3N1ZXM6Cj4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiA+PTIwCj4gPiB2ZXJzaW9uPTNEMTIzMzg5NjQmc3R5bGVOYW1lPTNEVGV4dCZwcm9qZWN0SWQ9M0QxMjMxNjkyMgo+ID49MjAKPiA+ID4gVGhlcmUgYXJlIDM1MCBpc3N1ZXMgbGVmdCBpbiBKSVJBIGZvciBNYXZlbiBjb3JlOgo+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9M0Rwcm9qZWN0JTIwJQo+ID49MjAKPiA+IDNEJTIwTU5HJTIwQU5EJTIwcmVzb2x1dGlvbiUyMCUzRCUyMFVucmVzb2x2ZWQlMjBPUkRFUiUKPiA+IDIwQlklMjBkdWUlMjBBU0MlMkMlMjBwcmlvcml0eSUyMERFU0MlMkMlMjBjcmVhdGVkJTIwQVNDCj4gPj0yMAo+ID4gPiBTdGFnaW5nIHJlcG86Cj4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjQvCj4gPiA+PTIwCj4gPiA+IFRoZSBkaXN0cmlidXRhYmxlIGJpbmFyaWVzIGFuZCBzb3VyY2VzIGNhbiBiZSBmb3VuZCBoZXJlOgo+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+ID49MjAKPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvCj4gPj0yMAo+ID4gPiBTcGVjaWZpY2FsbHkgdGhlIHppcCwgdGFyYmFsbCBhbmQgc291cmNlIGFyY2hpdmVzIGNhbiBiZSBmb3VuZCBoZXJlOgo+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+ID49MjAKPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLWJpbi56aXAKPiA+PTIwCj4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4gPj0yMAo+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtYmluLnRhci5nego+ID49MjAKPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tPiA+PTIwCj4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwCj4gPj0yMAo+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+ID49MjAKPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy50YXIuZ3oKPiA+PTIwCj4gPiA+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+ID4gPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5neiBzaGExOiA5ZWI4MjFmMTUzYzc2NjcxOTRhYTExY2NkMDk5YjcKPiA+PTIwCj4gPiBiZDIwNTk1NjBkCj4gPj0yMAo+ID4gPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcDogc2hhMTogMTIxZDU0YjA0NTM4MGE4YTQ4OTVlYjEzNzk3MGFiCj4gPj0yMAo+ID4gNjllNjk4ZWIwZQo+ID49MjAKPiA+ID4gR2l0IHRhZzoKPiA+ID4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9M0RtYXZlbi5naXQ7YT0zRGNvbW1pdDtoPTNECj4gPj0yMAo+ID4gMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMwo+ID49MjAKPiA+ID4gU3RhZ2luZyBzaXRlOgo+ID4gPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvY29tcG9uZW50cy9yZWYvMy1MQVRFU1QvCj4gPiA+PTIwCj4gPiA+IFZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCj4gPiA+PTIwCj4gPiA+IFsgXSArMQo+ID4gPiBbIF0gKzAKPiA+ID4gWyBdIC0xCj4gPiA+PTIwCj4gPiA+IFRoYW5rcywKPiA+ID49MjAKPiA+ID4gU3RlcGhlbi4KPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDc0NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgRGVjICA2IDA3OjIwOjEwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDc0NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBCQ0IwRTEwMENDCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgIDYgRGVjIDIwMTcgMDc6MjA6MTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzMjY2MyBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IERlYyAyMDE3IDA3OjIwOjEwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMjQyOSBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IERlYyAyMDE3IDA3OjIwOjEwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzIzNTYgaW52b2tlZCBieSB1aWQgOTkpOyA2IERlYyAyMDE3IDA3OjIwOjA5IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAwNiBEZWMgMjAxNyAwNzoyMDowOSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDNFNTk0QzA4NUQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsICA2IERlYyAyMDE3IDA3OjIwOjA5ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC45NDcKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC45NDcgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0wLjA1M10gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBOU2FxT1dMTGViUzEgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsICA2IERlYyAyMDE3IDA3OjIwOjA4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwMS5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyM10pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA5NDk1QTVGMkFBCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAgNiBEZWMgMjAxNyAwNzoyMDowNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ3NyB3aXRoIE1FCglpZCBpWEwwMXcwME4yMFVmZHkwM1hMMVJlOyBXZWQsIDA2IERlYyAyMDE3IDA4OjIwOjAxICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFdlZCwgMDYgRGVjIDIwMTcgMDg6MjA6MDEgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIEphdmFkb2MgUGx1Z2luIHZlcnNpb24gMy4wLjAgKHRha2UgMykKRGF0ZTogV2VkLCAwNiBEZWMgMjAxNyAwODoyMDowMCArMDEwMApNZXNzYWdlLUlEOiA8MjA1ODY2Ni42RE9mYzJ1R1EwQGdpZ2E+CkluLVJlcGx5LVRvOiA8b3AuemFveG1zbzVrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+ClJlZmVyZW5jZXM6IDxvcC56YW94bXNvNWtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgorMQoKdHJpZWQgdG8gcmVwcm9kdWNlIHRoZSBidWlsZCBhbmQgY2hlY2sgdGhlIHJlc3VsdCB3aXRoIGRpZmZvc2NvcGU6IGp1c3QgZm91PQpuZD0yMAprbm93IGxpdHRsZSBmaWxlcyBkYXRlcyBub2lzZQoKUmVnYXJkcywKCkhlcnY9RTkKCkxlIGRpbWFuY2hlIDMgZD1FOWNlbWJyZSAyMDE3LCAyMjo1MDo0MiBDRVQgUm9iZXJ0IFNjaG9sdGUgYSA9RTljcml0IDoKPiBIaSwKPj0yMAo+IFdlIHNvbHZlZCAyNyBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0zRDEyMzE3NT0KMjkmdmUKPiByc2lvbj0zRDEyMzMwODc1JnN0eWxlTmFtZT0zRFRleHQKPj0yMAo+IFRoZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlM0QlMjAxMjMxNzUyOSUyMEE9Ck5EJTIwCj4gc3RhdHVzJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDCj49MjAKPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM4MC8KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zZXJ2aWNlL2xvY2FsL3JlcG9zaXRvcmllcy9tYXZlbi0xMzgwL2NvbnRlPQpudC8KPiBvcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4tamF2YWRvYy1wbHVnaW4vMy4wLjAvbWF2ZW4tamF2YWRvYy1wbHVnaW4tPQozLjAKPiAuMC1zb3VyY2UtcmVsZWFzZS56aXAKPj0yMAo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOgo+IGU5N2VhNzQ0ZTBmMGY3YzAyNWUyOTRlNThiMTQ4YTE3OGIzZDI0ZGEKPj0yMAo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1qYXZhZG9jLXBsdWdpbi1MQVRFU1QvCj49MjAKPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+PTIwCj4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPj0yMAo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQo+PTIwCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDE4My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gT2N0ICA4IDAyOjIxOjQ5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDE4My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4RkFFQjEwQUM2Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgIDggT2N0IDIwMTcgMDI6MjE6NDkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4NzkzNiBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IE9jdCAyMDE3IDAyOjIxOjQ5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4Nzg1OCBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IE9jdCAyMDE3IDAyOjIxOjQ5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODc4NDcgaW52b2tlZCBieSB1aWQgOTkpOyA4IE9jdCAyMDE3IDAyOjIxOjQ4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAwOCBPY3QgMjAxNyAwMjoyMTo0OCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDFEQkNGMTgwNzEzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAgOCBPY3QgMjAxNyAwMjoyMTo0OCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCA0OE10V3g5Y28yY0sgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sICA4IE9jdCAyMDE3IDAyOjIxOjQ1ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwMy5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyNV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA1NzczMDVGM0ZGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAgOCBPY3QgMjAxNyAwMjoyMTo0NSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ1OCB3aXRoIE1FCglpZCBKcU1mMXcwMDUyMFVmZHkwM3FNZmtVOyBTdW4sIDA4IE9jdCAyMDE3IDA0OjIxOjM5ICswMjAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFN1biwgMDggT2N0IDIwMTcgMDQ6MjE6MzkgKzAyMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogbWlncmF0aW5nIHNvbWUgY29kZSB0byBHaXQKRGF0ZTogU3VuLCAwOCBPY3QgMjAxNyAwNDoyMTozOSArMDIwMApNZXNzYWdlLUlEOiA8MjA2MTc1My5vVHhFMEkzVEZQQGdpZ2E+ClVzZXItQWdlbnQ6IEtNYWlsLzUuMi4zIChMaW51eC80LjEwLjAtMzUtZ2VuZXJpYzsgS0RFLzUuMzEuMDsgeDg2XzY0OyA7ICkKSW4tUmVwbHktVG86IDxDQUZOQ1UtOGJEWDdHZ0U9T3F2VEg2LUNKYlJaRzdtUWpBc1g5MGVFcGhCZkhNWFRSU0FAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDwzMDA2NDcxLkdyU0ZqU0pqR1hAZ2lnYT4gPDE2MDA5MTAuR3RkdnhNMUs5MUBnaWdhPiA8Q0FGTkNVLThiRFg3R2dFPU9xdlRINi1DSmJSWkc3bVFqQXNYOTBlRXBoQmZITVhUUlNBQG1haWwuZ21haWwuY29tPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IG11bHRpcGFydC9taXhlZDsgYm91bmRhcnk9Im5leHRQYXJ0MTY3NzM0NS5IcTdub0FRVVU0IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Qml0CgotLW5leHRQYXJ0MTY3NzM0NS5IcTdub0FRVVU0CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKdHJ5aW5nIGFzIGF0dGFjaG1lbnQ6IGhvcGUgdGhpcyB3aWxsIGJlIGtlcHQgYnkgdGhlIE1MCgp1c3VhbGx5LCBvbmx5IHRoZSBmaXJzdCB2YXJpYWJsZSAiTUFWRU5fUkVQTz0zRHh4eCIgaGFzIHRvIGJlIGNoYW5nZWQsIGJ1dCA9CkRveGlhPTIwCmNvbXBvbmVudHMgcmVxdWlyZWQgYSBsaXR0bGUgdHdlYWsgb24gdGhlIG5leHQgMiB2YXJpYWJsZXMgIlNWTkJBU0U9M0QiIGFuZD0KPTIwCiJHSVRSRVBPPTNEIgoKUmVnYXJkcywKCkhlcnY9RTkKCkxlIHNhbWVkaSA3IG9jdG9icmUgMjAxNywgMjI6MzU6MDcgQ0VTVCBBcm5hdWQgSD1FOXJpdGllciBhID1FOWNyaXQgOgo+ICsxCj49MjAKPiBDYW4geW91IHNoYXJlIHRoZSBzY3JpcHQgPwo+PTIwCj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCAxMjozMiBQTSwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj49MjAKPiB3cm90ZToKPiA+IEkgd3JvdGUgYSBsaXR0bGUgc2hlbGwgc2NyaXB0IHRvIGNoZWNrIGRpZmZlcmVuY2VzIGJldHdlZW4gdGFncyBpbiBzdm4gPQphbmQKPiA+IGdpdAo+ID4gY2hlY2tvdXQKPiA+IHRoZSBvbmx5IGRpZmZlcmVuY2VzIEkgZm91bmQgZm9yIHRoZSA2IGdpdCByZXBvcyBhcmU6Cj4gPiAxLiBlbXB0eSBkaXJzICh3aGljaCBleGlzdCBpbiBzdm4gYnV0IGFyZSBwcnVuZWQgaW4gZ2l0KQo+ID4gMi4gb25lIHN0cmFnZSBjYXNlIGluIGVuZm9yY2VyLTEuMiB3aGVyZSBhIGZldyBmaWxlcyBzZWVtIHRvIGhhdmUgbmV3bGk9Cm5lcwo+ID4gaXNzdWVzCj4gPj0yMAo+ID4gdG8gbWUsIHRoaXMgY2FuIGJlIHNhZmVseSBpZ25vcmVkCj4gPj0yMAo+ID4gaWYgbm9ib2R5IG9iamVjdHMsIGluIDcyaCwgSSdsbCBjcmVhdGUgSU5GUkEgamlyYSBpc3N1ZSB0byBzd2l0Y2gKPiA+IGZvbGxvd2luZyA2Cj4gPiBjb21wb25lbnRzIGZyb20gc3ZuIHRvIHRoZSBjdXJyZW50IGdpdCBtaXJyb3I6Cj4gPiAtIERveGlhIGNvcmUKPiA+IC0gRG94aWEgU2l0ZXRvb2xzCj4gPiAtIEVuZm9yY2VyCj4gPiAtIEp4cgo+ID4gLSBQbHVnaW4gVG9vbHMKPiA+IC0gUmVsZWFzZQo+ID49MjAKPiA+PTIwCj4gPiBSZWdhcmRzLAo+ID49MjAKPiA+IEhlcnY9RTkKPiA+PTIwCj4gPiBMZSBzYW1lZGkgNyBvY3RvYnJlIDIwMTcsIDA0OjQ3OjMyIENFU1QgSGVydj1FOSBCT1VURU1ZIGEgPUU5Y3JpdCA6Cj4gPiA+IHJlLXJlYWRpbmcgb3VyIG1pZ3JhdGlvbiBwcm9jZXNzIGRvY3VtZW50YXRpb24gWzFdLCBJIHNlZSAiY2hlY2sKPiA+PTIwCj4gPiBlc3BlY2lhbGx5Cj4gPj0yMAo+ID4gPiBiZWhhdmlvdXIgb24gY2hlY2tpbmcgb3V0IHRhZyIKPiA+ID49MjAKPiA+ID4gSSBzdXBwb3NlIHRoYXQgd2UgY291bGQgY29tcGFyZSBjb250ZW50IGJldHdlZW4gZ2l0IGNoZWNrb3V0IGFuZCBzdm4KPiA+ID4gY2hlY2tvdXQgZm9yIEhFQUQgYW5kIGV2ZXJ5IHBhc3QgcmVsZWFzZQo+ID4gPj0yMAo+ID4gPiBkaWQgc29tZWJvZHkgcHJlcGFyZSBhIHNoZWxsIHNjcmlwdCBmb3IgdGhhdD8KPiA+ID49MjAKPiA+ID4gUmVnYXJkcywKPiA+ID49MjAKPiA+ID4gSGVydj1FOQo+ID4gPj0yMAo+ID4gPiBbMV0gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9HaXQKPiA+ID4gK01pZ3JhdGlvbiNHaXRNaWdyYXRpb24tTWlncmF0aW9ucHJvY2Vzc2Rlc2NyaXB0aW9uCj4gPiA+PTIwCj4gPiA+IExlIHZlbmRyZWRpIDYgb2N0b2JyZSAyMDE3LCAwMDozNDoxMSBDRVNUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOgo+ID4gPiA+IGdyZWF0LCB0aGFuayB5b3UgZm9yIHlvdXIgaGVscAo+ID4gPiA+PTIwCj4gPiA+ID4gaW4gZmFjdCwgQUZBSUssIEFwYWNoZSBoYXMgYWxyZWFkeSBhdXRvbWF0aWMgc3ZuMmdpdCBleHBvcnRzIFsxXSB0aD0KYXQKPiA+PTIwCj4gPiBhcmUKPiA+PTIwCj4gPiA+ID4gdGhlbiBtaXJyb3JlZCB0byBnaXRodWIuCj4gPiA+ID4gVGhlbiB3ZSBhbHJlYWR5IGhhdmU6Cj4gPiA+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRveGlhLwo+ID4gPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1kb3hpYS1zaXRldG9vbHMvCj4gPiA+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWVuZm9yY2VyLwo+ID4gPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1qeHIvCj4gPiA+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbi10b29scy8KPiA+ID4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcmVsZWFzZS8KPiA+ID4gPj0yMAo+ID4gPiA+IEkgc3VwcG9zZSB0aGVzZSBjb3VsZCBiZSB0aGUgbmF0dXJhbCB0YXJnZXRzLgo+ID4gPiA+IEJ1dCBJIGRvbid0IHJlYWxseSBzZWUgd2hhdCBjaGVja3MgdG8gZG8gb24gdGhlc2UuCj4gPiA+ID49MjAKPiA+ID4gPiBJIHN1cHBvc2UgdGhhdCBvbmNlIHdlIGFyZSBjb252aW5jZWQgdGhpcyBjb250ZW50IGlzIG9rLCB3ZSBjYW4gYXNrCj4gPj0yMAo+ID4gaW5mcmEKPiA+PTIwCj4gPiA+ID4gdG8gc3dpdGNoIHRoZXNlIHRvIHRoZSBjYW5vbmljYWwgc291cmNlIChhbmQgZGlzYWJsZSB0aGUgc3ZuMmdpdAo+ID49MjAKPiA+IGV4cG9ydHMpCj4gPj0yMAo+ID4gPiA+IERvIHlvdSBzZWUgYW55IGlzc3VlIGluIHRoZXNlIHJlcG9zPwo+ID4gPiA+PTIwCj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPj0yMAo+ID4gPiA+IEhlcnY9RTkKPiA+ID4gPj0yMAo+ID4gPiA+IFsxXSBodHRwOi8vZ2l0LmFwYWNoZS5vcmcvCj4gPiA+ID49MjAKPiA+ID4gPiBMZSBqZXVkaSA1IG9jdG9icmUgMjAxNywgMTE6NDU6MjMgQ0VTVCBEZWphbiBTdG9qYWRpbm92aWMgYSA9RTljcml0PQogOgo+ID4gPiA+ID4gQ291bnQgbWUgaW4gKGZvciBib3RoIGFjdHVhbCBtaWdyYXRpb24gYW5kIHJlbGF0ZWQgdGFza3MpLgo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IE15IHdlYXBvbiBvZiBjaG9pY2UgZm9yIFNWTiAtLT4+R0lUIHdvdWxkIGJlOgo+ID4gPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL25pcnZkcnVtL3N2bjJnaXQgKEkgbWFuYWdlZCB0byBtb3ZlIGRvemVuIG9mCj4gPj0yMAo+ID4gcmVwb3MKPiA+PTIwCj4gPiA+ID4gPiBmZXcKPiA+ID4gPiA+IHllYXJzIGFnbykuCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiA+IERlamFuCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gT24gMjAxNy0xMC0wNCAwMTo0OCwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHc9CnJvdGU6Cj4gPiA+ID4gPiA+IEknZCBsaWtlIHRvIHdvcmsgb24gUGx1Z2luIFRvb2xzIHdpdGggZ2l0Cj4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+IFdoaWxlIGF0IGl0LCBsb29raW5nIGF0IG91ciBwbGFuIFsxXSwgSSBzZWUgd2UgaGF2ZSBhIGZldyBvdGhlcgo+ID4gPiA+ID4gPiBjb21wb25lbnRzCj4gPiA+ID4gPiA+IHRoYXQgYXJlIHJlYWR5IHRvIG1pZ3JhdGU6Cj4gPiA+ID4gPiA+IC0gRG94aWEgY29yZQo+ID4gPiA+ID4gPiAtIERveGlhIFNpdGV0b29scwo+ID4gPiA+ID4gPiAtIEVuZm9yY2VyCj4gPiA+ID4gPiA+IC0gSnhyCj4gPiA+ID4gPiA+IC0gUGx1Z2luIFRvb2xzCj4gPiA+ID4gPiA+IC0gUmVsZWFzZQo+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiBXaGF0IGNoZWNrcyBhcmUgcmVxdWlyZWQgYmVmb3JlIHN3aXRjaGluZyB0aGVzZSA2IGNvbXBvbmVudHM/Cj4gPiA+ID4gPiA+IEFueSB2b2x1bnRlZXI/Cj4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+IEhlcnY9QzM9QTkKPiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gWzFdIGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvTUFWRU4vR2l0Kwo+ID49MjAKPiA+IE1pZ3JhdGlvbgo+ID49MjAKPiA+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj0yMAo+ID4gLS0tLS0tLS0tCj4gPj0yMAo+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj0yMAo+ID4gLS0tLS0tLS0tCj4gPj0yMAo+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPj0yMAo+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0KPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID49MjAKPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKLS1uZXh0UGFydDE2NzczNDUuSHE3bm9BUVVVNApDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iY2hlY2tfc3ZuMmdpdC5zaCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN0JpdApDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3gtc2hlbGxzY3JpcHQ7IG5hbWU9ImNoZWNrX3N2bjJnaXQuc2giCgojIS9iaW4vYmFzaAoKTUFWRU5fUkVQTz1qeHIKClNWTkJBU0U9aHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2YvbWF2ZW4vJE1BVkVOX1JFUE8KR0lUUkVQTz1naXQ6Ly9naXQuYXBhY2hlLm9yZy9tYXZlbi0kTUFWRU5fUkVQTy5naXQKCnN2biBjbyAkU1ZOQkFTRS90cnVuayBzdm4tdHJ1bmsKc3ZuIGNvICRTVk5CQVNFL3RhZ3Mgc3ZuLXRhZ3MKZ2l0IGNsb25lICRHSVRSRVBPIGdpdAoKZWNobyAtZSAiXGVbMW0tLS0tLSBjaGVjayB0cnVuayAtLS0tLVxlWzBtIgpjZCBnaXQKZ2l0IGNoZWNrb3V0IHRydW5rCmNkIC4uCmVjaG8gIj09IGRpZmYgcmVzdWx0OiIKZGlmZiAtciAtSSAnXCRJZCcgc3ZuLXRydW5rLyBnaXQvIHwgZ3JlcCAtdiAnXC5naXQnIHwgZ3JlcCAtdiAnXC5zdm4nCgpyZWFkCgpjZCBzdm4tdGFncwoKZm9yIHRhZyBpbiAqCmRvCiAgZWNobyAtZSAiXGVbMW0tLS0tLSBjaGVjayB0YWcgJHRhZyAtLS0tLVxlWzBtIgogIGNkIC4uL2dpdAogIGdpdCBjaGVja291dCAkdGFnCiAgY2QgLi4vc3ZuLXRhZ3MKICBlY2hvICI9PSBkaWZmIHJlc3VsdDoiCiAgZGlmZiAtciAtSSAnXCRJZCcgJHRhZy8gLi4vZ2l0LyB8IGdyZXAgLXYgJ1wuZ2l0JyB8IGdyZXAgLXYgJ1wuc3ZuJwogIHJlYWQKZG9uZQogIAoKCi0tbmV4dFBhcnQxNjc3MzQ1LkhxN25vQVFVVTQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKLS1uZXh0UGFydDE2NzczNDUuSHE3bm9BUVVVNC0tCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQ2Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gTm92IDEyIDEyOjMxOjEzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQ2Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBCNDE5MDEwQzJECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMTIgTm92IDIwMTcgMTI6MzE6MTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyNjQ2IGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIE5vdiAyMDE3IDEyOjMxOjEzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNTc1IGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIE5vdiAyMDE3IDEyOjMxOjEzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjU2NCBpbnZva2VkIGJ5IHVpZCA5OSk7IDEyIE5vdiAyMDE3IDEyOjMxOjEzIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxMiBOb3YgMjAxNyAxMjozMToxMyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDJGQUZEMTg0MTVFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMiBOb3YgMjAxNyAxMjozMToxMiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xLjgKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEuOCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgWVN2RlpHSkpCb1p6IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAxMiBOb3YgMjAxNyAxMjozMToxMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDkuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMzFdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRTc5QUE2MEREQgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTIgTm92IDIwMTcgMTI6MzE6MDkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMzIgd2l0aCBNRQoJaWQgWjBYMjF3MDBKMjBVZmR5MDMwWDMzTjsgU3VuLCAxMiBOb3YgMjAxNyAxMzozMTowMyArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBTdW4sIDEyIE5vdiAyMDE3IDEzOjMxOjAzICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IE1hdmVuIHJlc29sdmVyIGJyYW5jaCBjb25zb2xpZGF0aW9uCkRhdGU6IFN1biwgMTIgTm92IDIwMTcgMTM6MzE6MDIgKzAxMDAKTWVzc2FnZS1JRDogPDIwNjMyOTUub1FRZTBkbEV0V0BnaWdhPgpJbi1SZXBseS1UbzogPDIwMTcxMTA5MDUzNTUxLjk1N0Q0MjlDNTBEMUBkZDE3MzMyLmthc3NlcnZlci5jb20+ClJlZmVyZW5jZXM6IDwyMDE3MTEwOTA1MzU1MS45NTdENDI5QzUwRDFAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCkhpLAoKSSBsaWtlIHRoZSBpZGVhIG9mIHNpbXBsaWZpY2F0aW9uOiBJIGp1c3QgZmFjdG9yaXplZCBtYXZlblZlcnNpb24gcHJvcGVydHkgPQp0bz0yMApwYXJlbnQgcG9tLgoKSSBoYXZlIG9ubHkgb25lIGZlYXI6IHdoYXQgaGFwcGVucyB3aGVuIHRoZSBBUEkgY2hhbmdlcyBpbiBhbiBpbmNvbXBhdGlibGUgPQp3YXk9MjAKdGhlbiB3ZSBtdXN0IHJlbGVhc2UgbWF2ZW4tYXJ0aWZhY3QtcmVzb2x2ZXIsIHRoZW4gbWF2ZW4tcmVzb2x2ZXIgcHJvdmlkZXIsPQo9MjAKdGhlbiBhbnQtdGFza3MgYW5kIGRlbW9zLgoKQUZBSUssIHRoaXMgY2hpY2tlbiBhbmQgZWdnIGlzc3VlIGlzIGV4YWN0bHkgd2h5IGV2ZXJ5dGhpbmcgd2FzIHJlbGVhc2VkIGluPQogMz0yMAppbmRlcGVuZGVudCBjb21wb25lbnRzICh3aXRoIGFzc29jaWF0ZWQgY29tcGxleGl0eSB0aGF0IEknZCBsaWtlIGFsc28gdG89MjAKcmVtb3ZlKQoKV2hhdCBhYm91dCBjcmVhdGluZyBhICJ3aXRoTWF2ZW5Qcm92aWRlciIgbW9kdWxlIHdoZXJlIHdlIGNvdWxkIHB1dCBhbnQgdGFzPQprcz0yMAphbmQgZGVtb3MsIHdoaWNoIHdvdWxkIGRlZmluZSB0aGUgbWF2ZW5WZXJzaW9uIHByb3BlcnR5PwpJbiBjYXNlIG9mIHN1Y2ggYnJlYWtpbmcgY2hhbmdlLCB3ZSB3b3VsZCBqdXN0IGhhdmUgdG8gc2tpcCB0aGlzIG1vZHVsZSAoYW49CmQ9MjAKaXRzIHN1Yi1tb2R1bGVzKSBmb3IgdGhlIEFQSSBicmVha2luZyByZWxlYXNlLCB0aGVuIG9uY2UgdGhlIG5ldyBjb21wYXRpYmxlPQo9MjAKTWF2ZW4gcHJvdmlkZXIgaXMgcmVsZWFzZWQsIHdlIGNvdWxkIGNvbnRpbnVlICJ0aGUgc2ltcGxlIHdheSIKCnRoaXMgd291bGQgZ2l2ZSB1cyB0aGUgYmVuZWZpdCBvZiBiZWluZyBzaW1wbGUgaW4gZ2VuZXJhbCwgYW5kIGhhdmUganVzdD0yMApzb21ldGhpbmcgYSBsaXR0bGUgbW9yZSBjb21wbGV4IGluIHNwZWNpYWwgaW5jb21wYXRpYmxlIGNhc2VzLgpIZXJlLCBpdCB3b3VsZCBiZSAiYml6YXJyZSIsIHNpbmNlIHdvdWxkIGJyaW5nIGEgcGFydGlhbCByZWxlYXNlIGZvciBhcnRpZmE9CmN0PTIwCnJlc29sdmVyLgoKQW5vdGhlciAiYml6YXJyZSBlZmZlY3QiIG9mIHRoaXMgd2F5IG9mIHJlbGVhc2luZyBpczoKQXJ0aWZhY3QgUmVzb2x2ZXIgMS4xLjEgd2lsbCBwcm92aWRlIEFudCBUYXNrcyBhbmQgZGVtb3MgdXNpbmcgTWF2ZW4gUmVzb2x2PQplcj0yMApQcm92aWRlciAzLjUuMCwgYnV0IE1hdmVuIFJlc29sdmVyIFByb3ZpZGVyIDMuNS4zIChvciAzLjYuMCBvciA0LjAuMCkgd2lsbCA9CmJlPTIwCnRoZSBmaXJzdCB1c2luZyBBcnRpZmFjdCBSZXNvbHZlciAxLjEuMQoKClBlcmhhcHMgdGhlcmUgaXMgYW5vdGhlciBzaW1wbGlmaWNhdGlvbiBpZGVhIHRoYXQgd291bGQgYXZvaWQgdGhpcyBpc3N1ZToKPTJEIG1lcmdlIGRlbW9zIGluIGFydGlmYWN0IHJlc29sdmVyIG1hc3Rlciwgc2luY2UgZGVtb3MgYXJlIG5ldmVyIHJlYWxseT0yMApyZWxlYXNlZAo9MkQgbGV0IEFudCBUYXNrcyBpbiBhbiBpbmRlcGVuZGVudCBicmFuY2ggKG9yIGNvbXBvbmVudCBvbmUgZGF5KQoKUmVnYXJkcywKCkhlcnY9RTkKCkxlIGpldWRpIDkgbm92ZW1icmUgMjAxNywgMDY6MzU6NTEgQ0VUIE1hbmZyZWQgTW9zZXIgYSA9RTljcml0IDoKPiBIaSBhbGwsCj49MjAKPiBJIGhhdmUgc3RhcnRlZCBhbmQgbWFkZSBnb29kIHByb2dyZXNzIG9uIGdldHRpbmcgTWF2ZW4gcmVzb2x2ZXIgYWxsIGludG8gPQp0aGUKPiBtYXN0ZXIgYnJhbmNoIGluc3RlYWQgb2YgaGF2aW5nIG1hc3RlciwgZGVtb3MgYW5kIGFudC10YXNrcyBpbiBzZXBhcmF0ZQo+IGJyYW5jaGVzLgo+PTIwCj4gRGV0YWlscyBhcmUgdHJhY2tlZCBpbiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01SRVNPTFZFUi0yOAo+PTIwCj4gQWxsIG9mIGl0IGlzIG5vdyBpbiBhIG5ldyBicmFuY2ggY2FsbGVkIG1hc3Rlci1hbGwgZm9yIHlvdSB0byBzZWUuCj49MjAKPiBJIGFtIG5vdyB3b25kZXJpbmcgd2hhdCB0aGUgbmV4dCBzdGVwcyBhcmUuIEkgYWRkZWQgd2hhdCBJIHRoaW5rIHNob3VsZAo+IGhhcHBlbiBuZXh0IGluIHRoZSBpc3N1ZSBpbiBhIGNvbW1lbnQgYW5kIHdvdWxkIGFwcHJlY2lhdGUgYW55IGlucHV0IG9uIHQ9CmhlCj4gY3VycmVudCBzZXR1cCBhbmQgbmV4dCBzdGVwcy4KPj0yMAo+IEFueSBoZWxwIHdvdWxkIGJlIGFwcHJlY2lhdGVkLgo+PTIwCj4gbWFuZnJlZAo+PTIwCj49MjAKPj0yMAo+PTIwCj49MjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NTU2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBOb3YgMjAgMjM6MDU6MjAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTU2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDg2QjMyMTdDQ0UKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAyMCBOb3YgMjAxNyAyMzowNToyMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDczMTE4IGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIE5vdiAyMDE3IDIzOjA1OjIwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MzAzOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBOb3YgMjAxNyAyMzowNToyMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDczMDI3IGludm9rZWQgYnkgdWlkIDk5KTsgMjAgTm92IDIwMTcgMjM6MDU6MTkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDIwIE5vdiAyMDE3IDIzOjA1OjE5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMkNFRTNDN0E4NQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMjAgTm92IDIwMTcgMjM6MDU6MTkgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjE5OQpYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuMTk5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgS0JfV0FNX0ZST01fTkFNRV9TSU5HTEVXT1JEPTAuMiwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIENTcmZGcGx2TTVPRCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMjAgTm92IDIwMTcgMjM6MDU6MTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDExLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTMzXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDVERTU2NUZDRjkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDIwIE5vdiAyMDE3IDIzOjA1OjE3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDIyIHdpdGggTUUKCWlkIGNQNUExdzAwUDIwVWZkeTAzUDVBNVA7IFR1ZSwgMjEgTm92IDIwMTcgMDA6MDU6MTEgKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogVHVlLCAyMSBOb3YgMjAxNyAwMDowNToxMSArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBTZWNvbmQgTU5HLTYyOTY6IE5ldyBvcHRpb24gLURzdHlsZS5jb2xvciBpcyBub3Qgd29ya2luZwpEYXRlOiBUdWUsIDIxIE5vdiAyMDE3IDAwOjA1OjEwICswMTAwCk1lc3NhZ2UtSUQ6IDwyMDc1NjgyLlVEbW5wTVg3anNAZ2lnYT4KSW4tUmVwbHktVG86IDxvcC55OXduMjZvYWtka2hyckBkZXNrdG9wLTJraHNrNDQ+ClJlZmVyZW5jZXM6IDxvcC55OXduMjZvYWtka2hyckBkZXNrdG9wLTJraHNrNDQ+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKKzEKCm5vIGxvZ2dpbmcgaW4gcHJvcGVydGllcyggY2xpUmVxdWVzdCApLCB0aGVuIG5vIGlzc3VlIGZvdW5kIHdoZW4gY2FsbGluZz0yMApiZWZvcmUgaW5pdGlhbGl6aW5nIGxvZ2dpbmcKClJlZ2FyZHMsCgpIZXJ2PUU5CgpMZSBzYW1lZGkgMTggbm92ZW1icmUgMjAxNywgMTY6MzE6NDQgQ0VUIFJvYmVydCBTY2hvbHRlIGEgPUU5Y3JpdCA6Cj4gSGksCj49MjAKPiBNTkctNjIyMFsxXSB3YXMgaW5jb21wbGV0ZSwgd2hpY2ggd2lsbCBiZSBmaXhlZCB3aXRoIE1ORy02Mjk2WzJdLgo+PTIwCj4gQ29tbWl0Ogo+IGh0dHBzOi8vZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9M0RtYXZlbi5naXQ7YT0zRGNvbW1pdDtoPTNEYjI9CmFmYWZlNQo+IENJOgo+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tMy54LWplbmtpbnNmaWxlL2o9Cm9iLwo+IE1ORy02Mjk2Lwo+PTIwCj4gV2hvIHdhbnRzIHRvIHNlY29uZCB0aGlzPwo+PTIwCj4gdGhhbmtzLAo+IFJvYmVydAo+PTIwCj4gWzFdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyMjAKPiBbMl0gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjI5Ngo+PTIwCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDkwNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gRGVjIDMxIDEzOjQ4OjU3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDkwNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAxMDc2OTE3QjM4Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMzEgRGVjIDIwMTcgMTM6NDg6NTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2MDI3MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMSBEZWMgMjAxNyAxMzo0ODo1NiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjAxOTYgaW52b2tlZCBieSB1aWQgNTAwKTsgMzEgRGVjIDIwMTcgMTM6NDg6NTYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MDE4NSBpbnZva2VkIGJ5IHVpZCA5OSk7IDMxIERlYyAyMDE3IDEzOjQ4OjU2IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAzMSBEZWMgMjAxNyAxMzo0ODo1NiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEUwMzg1MTgwNkU5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAzMSBEZWMgMjAxNyAxMzo0ODo1NSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xLjMKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEuMyB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB3RlZDamZZUENoZ24gZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sIDMxIERlYyAyMDE3IDEzOjQ4OjU0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwNy5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyOV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAwRUNDMzVGMkVDCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAzMSBEZWMgMjAxNyAxMzo0ODo1MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ2NiB3aXRoIE1FCglpZCBzZG9tMXcwMDcyMFVmZHkwM2RvbVdHOyBTdW4sIDMxIERlYyAyMDE3IDE0OjQ4OjQ2ICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFN1biwgMzEgRGVjIDIwMTcgMTQ6NDg6NDYgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIFNpdGUgUGx1Z2luIHZlcnNpb24gMy43CkRhdGU6IFN1biwgMzEgRGVjIDIwMTcgMTQ6NDg6NDYgKzAxMDAKTWVzc2FnZS1JRDogPDIwOTI3MTYuUElnN1dYWk00akBnaWdhPgpJbi1SZXBseS1UbzogPDI1MTQ5MDQueXJxZk5DUTEyNEBnaWdhPgpSZWZlcmVuY2VzOiA8MjUxNDkwNC55cnFmTkNRMTI0QGdpZ2E+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKaGVyZSBpcyBteSArMQoKUmVnYXJkcywKCkhlcnY9RTkKCkxlIGpldWRpIDI4IGQ9RTljZW1icmUgMjAxNywgMTc6MjA6MzMgQ0VUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOgo+IEhpLAo+PTIwCj4gV2Ugc29sdmVkIDggaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiBwcm9qZWN0SWQ9M0QxMjMxNzkyMyZ2ZXJzaW9uPTNEMTIzMzg3MjYmc3R5bGVOYW1lPTNEVGV4dAo+PTIwCj4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUzRCUyME1TSVRFJTIwQU5ECj4gJTIwc3RhdHVzJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDCj49MjAKPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM4Ni8KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzg2L29yZy9hcGFjaGUvCj4gbWF2ZW4vcGx1Z2lucy9tYXZlbi1zaXRlLXBsdWdpbi8zLjcvbWF2ZW4tc2l0ZS1wbHVnaW4tMy43LXNvdXJjZS1yZWxlYXNlLj0KemlwCj49MjAKPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBtYXZlbi1zaXRlLXBsdWdpbi0zLjctc291cmNlLXJlbGVhc2UuemlwIHNoYTE6Cj4gOWZhNGIyODA1M2Y0Y2I3OWEwODg2MzU2OGE2NmMxZTg3ZDhiYmM5Mwo+PTIwCj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLXNpdGUtcGx1Z2luLUxBVEVTVC8KPj0yMAo+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCj49MjAKPiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+PTIwCj4gWyBdICsxCj4gWyBdICswCj4gWyBdIC0xCj49MjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0OTA0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBEZWMgMzEgMTI6Mzc6MzYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0OTA0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEVGRkQxMTdBNDUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAzMSBEZWMgMjAxNyAxMjozNzozNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDIxNzQ1IGludm9rZWQgYnkgdWlkIDUwMCk7IDMxIERlYyAyMDE3IDEyOjM3OjM2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMTY2OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMSBEZWMgMjAxNyAxMjozNzozNiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIxNjU4IGludm9rZWQgYnkgdWlkIDk5KTsgMzEgRGVjIDIwMTcgMTI6Mzc6MzYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMzEgRGVjIDIwMTcgMTI6Mzc6MzYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gWzE5Mi4xNjguMS4xM10gKHA1NDhGOUY3My5kaXAwLnQtaXBjb25uZWN0LmRlIFs4NC4xNDMuMTU5LjExNV0pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCAwMTM2QjFBMDBFMgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMzEgRGVjIDIwMTcgMTI6Mzc6MzMgKzAwMDAgKFVUQykKRnJvbTogTWljaGFlbCBPc2lwb3YgPG1pY2hhZWxvQGFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gU2l0ZSBQbHVnaW4gdmVyc2lvbiAzLjcKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClJlZmVyZW5jZXM6IDwyNTE0OTA0LnlycWZOQ1ExMjRAZ2lnYT4KTWVzc2FnZS1JRDogPDIwZmQxODVhLTU2NmEtMTkyNS1jMmExLTVkZDI2NmEwNjQ0N0BhcGFjaGUub3JnPgpEYXRlOiBTdW4sIDMxIERlYyAyMDE3IDEzOjM3OjI5ICswMTAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdPVzY0OyBydjo1Mi4wKSBHZWNrby8yMDEwMDEwMQogVGh1bmRlcmJpcmQvNTIuNS4yCk1JTUUtVmVyc2lvbjogMS4wCkluLVJlcGx5LVRvOiA8MjUxNDkwNC55cnFmTkNRMTI0QGdpZ2E+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtODsgZm9ybWF0PWZsb3dlZApDb250ZW50LUxhbmd1YWdlOiBlbi1VUwpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpBbSAyMDE3LTEyLTI4IHVtIDE3OjIwIHNjaHJpZWIgSGVydj1DMz1BOSBCT1VURU1ZOgo+IEhpLAo+ICAgICA9MjAKPiBXZSBzb2x2ZWQgOCBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhPwo+IHByb2plY3RJZD0zRDEyMzE3OTIzJnZlcnNpb249M0QxMjMzODcyNiZzdHlsZU5hbWU9M0RUZXh0Cj4gICAgID0yMAo+IFRoZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlM0QlMjBNU0lURSUyMEFOPQpECj4gJTIwc3RhdHVzJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDCj4gICAgID0yMAo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzg2Lwo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzODYvb3JnL2FwYWNoPQplLwo+IG1hdmVuL3BsdWdpbnMvbWF2ZW4tc2l0ZS1wbHVnaW4vMy43L21hdmVuLXNpdGUtcGx1Z2luLTMuNy1zb3VyY2UtcmVsZWFzPQplLnppcAo+ICAgICA9MjAKPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBtYXZlbi1zaXRlLXBsdWdpbi0zLjctc291cmNlLXJlbGVhc2UuemlwIHNoYTE6Cj4gOWZhNGIyODA1M2Y0Y2I3OWEwODg2MzU2OGE2NmMxZTg3ZDhiYmM5Mwo+ICAgICA9MjAKPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tc2l0ZS1wbHVnaW4tTEFURVNULwo+ICAgICA9MjAKPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbD0KCj4gICAgID0yMAo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCgpBd2Vzb21lIEhlcnY9QzM9QTksICsxIQoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQyMTAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIE9jdCAxMSAwMTo0MzoyMiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyMTAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgODczMDgxMDMwNwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDExIE9jdCAyMDE3IDAxOjQzOjIyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzEyMDUgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgT2N0IDIwMTcgMDE6NDM6MjIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDcxMTAyIGludm9rZWQgYnkgdWlkIDUwMCk7IDExIE9jdCAyMDE3IDAxOjQzOjIyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzEwODUgaW52b2tlZCBieSB1aWQgOTkpOyAxMSBPY3QgMjAxNyAwMTo0MzoyMSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMTEgT2N0IDIwMTcgMDE6NDM6MjEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAwNDk5MkRBMUVECglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMSBPY3QgMjAxNyAwMTo0MzoyMSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjUKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuNSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsCglLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBIbUU5bDVucEUwZ3cgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsIDExIE9jdCAyMDE3IDAxOjQzOjE4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAxMS5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEzM10pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAxRDc3QzVGMTIxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMSBPY3QgMjAxNyAwMTo0MzoxOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ0NiB3aXRoIE1FCglpZCBMMWpIMXcwMFEyMFVmZHkwMzFqSG1tOyBXZWQsIDExIE9jdCAyMDE3IDAzOjQzOjE3ICswMjAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFdlZCwgMTEgT2N0IDIwMTcgMDM6NDM6MTcgKzAyMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xCkRhdGU6IFdlZCwgMTEgT2N0IDIwMTcgMDM6NDM6MTcgKzAyMDAKTWVzc2FnZS1JRDogPDIxMjY5NDEuQmhlWk1LZmlqcEBnaWdhPgpVc2VyLUFnZW50OiBLTWFpbC81LjIuMyAoTGludXgvNC4xMC4wLTM1LWdlbmVyaWM7IEtERS81LjMxLjA7IHg4Nl82NDsgOyApCkluLVJlcGx5LVRvOiA8MzQwNjc4OC50OTdHUGZxZXlaQGdpZ2E+ClJlZmVyZW5jZXM6IDxDQStuUG5NeHlHMk5lUFhwVnFhd2U5alI9aXRIRVQ2VXVkbk45Q2pIaHY9b28tS0NyeHdAbWFpbC5nbWFpbC5jb20+IDxvcC55N3dvNm5rNmtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4gPDM0MDY3ODgudDk3R1BmcWV5WkBnaWdhPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCnBlcmhhcHMgd2Ugc2hvdWxkIGNyZWF0ZSBhIFdpa2kgcGFnZSBmb3IgamF2YS5sYW5nLkNsYXNzTm90Rm91bmRFeGNlcHRpb24gYT0KbmQ9MjAKbGlzdCB0aGUgcGx1Z2lucyB3aXRoIGtub3duIGlzc3VlcyBhbmQgbWluaW11bSBmaXhlZCB2ZXJzaW9uCgp0byBiZSBhZGRlZCBpbgogaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9FcnJvcnMrYW5kK1NvbHV0aW9ucwoKUmVnYXJkcywKCkhlcnY9RTkKCkxlIG1lcmNyZWRpIDExIG9jdG9icmUgMjAxNywgMDI6NTI6NTMgQ0VTVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiBJSVVDLCBpdCdzIE1ERVBMT1ktMjIxIGFib3V0IG5ldC5mbGV4bW9qb3Mub3NzOmZsZXhtb2pvcy1tYXZlbi1wbHVnaW4KPj0yMAo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTURFUExPWS0yMjEKPj0yMAo+IFJlZ2FyZHMsCj49MjAKPiBIZXJ2PUU5Cj49MjAKPiBMZSBtYXJkaSAxMCBvY3RvYnJlIDIwMTcsIDIwOjQ4OjEzIENFU1QgUm9iZXJ0IFNjaG9sdGUgYSA9RTljcml0IDoKPiA+IEZZSSwgTURFUExPWS0xMjEgbWVudGlvbnMgYW5vdGhlciBwbHVnaW4gYmVpbmcgaGl0IGJ5IHRoZSBjbGFzc2xvYWRlcgo+ID4gY2hhbmdlcy4KPiA+PTIwCj4gPiBSb2JlcnQKPiA+PTIwCj4gPj0yMAo+ID4gT24gVHVlLCAwMyBPY3QgMjAxNyAyMDoyMjoxOCArMDIwMCwgQXJuYXVkIEg9RTlyaXRpZXIgPGFoZXJpdGllckBnbWFpbC49CmNvbT4KPiA+PTIwCj4gPiB3cm90ZToKPiA+ID4gVGhhbmtzIFN0ZXBoZW4KPiA+ID49MjAKPiA+ID4gT24gVHVlLCBPY3QgMywgMjAxNyBhdCA4OjE4IFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+ID49MjAKPiA+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+PiBJIGFtIGhvcGluZyBJIGNhbiBmaW5kIHNvbWUgdGltZSB0byBkbyBhIGZpbmFsIHJvdW5kIG9mIGV4cGVyaW1lbnRzID0KYW5kCj4gPiA+PiB0aGVuIGNsb3NlIHRoZSB2b3RlIHdpdGggc3VjY2VzcyBhbmQgcHVibGlzaC4KPiA+ID4+PTIwCj4gPiA+PiBPbiBUdWUgMyBPY3QgMjAxNyBhdCAxMToxMywgQXJuYXVkIEg9RTlyaXRpZXIgPGFoZXJpdGllckBnbWFpbC5jb20+PQo9MjAKd3JvdGU6Cj4gPiA+PiA+IEBTdGVwaGVuIFdoYXQgc2hvdWxkIHdlIGRvIG5vdyA/Cj4gPiA+PiA+PTIwCj4gPiA+PiA+PTIwCj4gPiA+PiA+IE9uIFR1ZSwgU2VwIDE5LCAyMDE3IGF0IDM6MTQgQU0sIE9saXZpZXIgTGFteSA8b2xhbXlAYXBhY2hlLm9yZz4KPiA+ID4+PTIwCj4gPiA+PiB3cm90ZToKPiA+ID4+ID4+IEhpCj4gPiA+PiA+PiBTb3JyeSBhIGJpdCBvdXQgb2YgdGltZSBBVE0gZm9yIHRlc3RpbmcgdGhpcy4KPiA+ID4+ID4+IFdlbGwgSSB0cnVzdCBBcm5hdWQgdGVzdGluZyB0aGF0IGVzcGVjaWFsbHkgaWYgdGhpcyBpbXByb3ZlIHRoZQo+ID4gPj4gPj4gcGVyZm9ybWFuY2UKPiA+ID4+ID4+IG9mIHRoaXMgdmVyeSBncmVhdC9hd2Vzb21lL3VzZXJzIG9yaWVudGVkIHBsdWdpbiA6UAo+ID4gPj4gPj49MjAKPiA+ID4+ID4+IE9uIDEzIFNlcHRlbWJlciAyMDE3IGF0IDIyOjE5LCBBcm5hdWQgSD1FOXJpdGllcgo+ID4gPj4gPj4gPGFoZXJpdGllckBhcGFjaGUub3JnPgo+ID4gPj4gPj49MjAKPiA+ID4+ID4+IHdyb3RlOgo+ID4gPj4gPj4gPiBEYW1uZWQsIGNhbid0IHdlIGJlIGFub255bW91cyBvbiBHaXRodWIgPwo+ID4gPj4gPj4gPiBJIG1haW50YWluIGl0IGlzIGEgYmlnIHdvcmQsIEknbSB0cnlpbmcgdG8gZml4IG1vcmUgYnVncyB0aGFuIEkKPiA+ID4+ID4+ID4gYWRkCj4gPiA+Pj0yMAo+ID4gPj4gbmV3Cj4gPiA+Pj0yMAo+ID4gPj4gPj4gPiBvbmVzCj4gPiA+PiA+PiA+IEkgYWRkZWQgT2xlZyBpbiB0aGUgbG9vcCBhcyBoZSBjb250cmlidXRlZCBhIGxvdCBvbiBpdCB0b28KPiA+ID4+ID4+ID4gSSBkaWQgYSBxdWljayB0ZXN0IHRvIGJ1aWxkIG9uIEplbmtpbnMgMi42MC4zIG91ciBtYXZlbiBjb3JlIHdpPQp0aAo+ID4gPj49MjAKPiA+ID4+IHRoZQo+ID4gPj49MjAKPiA+ID4+ID4+IEV2aWwKPiA+ID4+ID4+PTIwCj4gPiA+PiA+PiA+IE1hdmVuIHBsdWdpbiAyLjE3IG9uIGEgbG9jYWwgU1NIIGFnZW50IGFuZCBpdCBpcyBvawo+ID4gPj4gPj4gPiBCdXQgaXQgaXMgcmVhbGx5IGEgcXVpY2sgdGVzdCAuLi4KPiA+ID4+ID4+ID49MjAKPiA+ID4+ID4+ID4gQ2hlZXJzCj4gPiA+PiA+PiA+PTIwCj4gPiA+PiA+PiA+PTIwCj4gPiA+PiA+PiA+PTIwCj4gPiA+PiA+PiA+IE9uIFdlZCwgU2VwIDEzLCAyMDE3IGF0IDEwOjA3IEFNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+ID4+ID4+ID49MjAKPiA+ID4+ID4+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+PiA+PiA+ID4gT24gMTMgU2VwdGVtYmVyIDIwMTcgYXQgMDE6MDUsIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4gPj4gPj4gPiA+PTIwCj4gPiA+PiA+PiA+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+PiA+PiA+ID4+IE9uIDEzIFNlcHRlbWJlciAyMDE3IGF0IDAwOjI2LCBBbmRlcnMgSGFtbWFyCj4gPiA+PiA+PiA+ID4+IDxhbmRlcnNAaGFtbWFyLm5ldD4KPiA+ID4+ID4+PTIwCj4gPiA+PiA+PiB3cm90ZToKPiA+ID4+ID4+ID4gPj4+IE9uIFR1ZSwgU2VwIDEyLCAyMDE3IGF0IDg6NTQgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4gPj4gPj4gPiA+Pj49MjAKPiA+ID4+ID4+ID4gPj4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPj4gPj4gPiA+Pj4gPiBIYXZlIHdlIGdvdCBhbnkgZmVlZGJhY2sgZnJvbSB0aGUgZW1iZWRkZXIgaW50ZWdyYXRpb25zIHk9CmV0Pwo+ID4gPj4gPj4gPiA+Pj49MjAKPiA+ID4+ID4+ID4gPj4+IEkgaGF2ZW4ndCBoZWFyZCBhbnl0aGluZyBmcm9tIHRoZSBtMmUgcGVvcGxlLiBNYXliZSB3ZSBuZWVkPQogdG8KPiA+ID4+PTIwCj4gPiA+PiBwaW5nCj4gPiA+Pj0yMAo+ID4gPj4gPj4gPiB0aGVtCj4gPiA+PiA+PiA+PTIwCj4gPiA+PiA+PiA+ID4+PiBkaXJlY3RseS4gSSBjYW4gY29udGFjdCBGcmVkIEJyaWNvbi4KPiA+ID4+ID4+ID4gPj4+PTIwCj4gPiA+PiA+PiA+ID4+PiAvQW5kZXJzCj4gPiA+PiA+PiA+ID4+PTIwCj4gPiA+PiA+PiA+ID4+IFBsZWFzZSBkbywgYWxzbyBpZiBhbnlvbmUgaGFzIGEgY29udGFjdCBpbiBuZXRiZWFucyBvciBpbnRlbD0KbGlqCj4gPiA+Pj0yMAo+ID4gPj4gYW5kCj4gPiA+Pj0yMAo+ID4gPj4gPj4gPiBjb3VsZAo+ID4gPj4gPj4gPj0yMAo+ID4gPj4gPj4gPiA+PiBsZXQgdGhlbSBrbm93IHdlJ2QgbGlrZSBlaXRoZXIgZmVlZGJhY2sgb3IgIndlJ3JlIG9rIGlmCj4gPiA+PiA+PiA+ID4+IE1ORy02Mjc1Cj4gPiA+PiA+Pj0yMAo+ID4gPj4gPj4gbWFrZXMKPiA+ID4+ID4+PTIwCj4gPiA+PiA+PiA+ID4+IHRyb3VibGUgZm9yIHVzLCBnbyBhaGVhZCBhbmQgcmVsZWFzZSIuIEknZCBsaWtlIHRvIGNsb3NlIHRoZQo+ID4gPj49MjAKPiA+ID4+IHZvdGUKPiA+ID4+IG9uCj4gPiA+Pj0yMAo+ID4gPj4gPj4gPiBGcmlkYXkKPiA+ID4+ID4+ID49MjAKPiA+ID4+ID4+ID4gPj4gMTM6MDAgVVRDLgo+ID4gPj4gPj4gPiA+PTIwCj4gPiA+PiA+PiA+ID4gT2xpdmllciAvIEFybmF1ZCwgaGF2ZSBlaXRoZXIgb2YgeW91IGhhZCBhIGNoYW5jZSB0byB0ZXN0IHRoaXMKPiA+ID4+PTIwCj4gPiA+PiB3aXRoCj4gPiA+Pj0yMAo+ID4gPj4gPj4gdGhlCj4gPiA+PiA+Pj0yMAo+ID4gPj4gPj4gPiA+IGV2aWwgcHJvamVjdCB0eXBlWzFdIGFzIHlvdSB0d28gc2VlbSB0byBiZSB0aGUgYWN0aXZlCj4gPiA+Pj0yMAo+ID4gPj4gbWFpbnRhaW5lcnNbMl0KPiA+ID4+PTIwCj4gPiA+PiA+PiA+ID4gWzFdOiBodHRwczovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuaWUvMjAxMy8xMS9qZW5raW5zLT4gPj4gPj0KPiA+Cj4gPiA+PiA+PiA+ID4gPiBtYXZlbi1qb2ItdHlwZS1jb25zaWRlcmVkLWV2aWwuaHRtbCBbMl06Cj4gPiA+PiA+PiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2plbmtpbnNjaS9tYXZlbi1wbHVnaW4vY29tbWl0cy9tYXN0ZXIKPiA+ID4+ID4+ID49MjAKPiA+ID4+ID4+ID4gLS0KPiA+ID4+ID4+ID49MjAKPiA+ID4+ID4+ID4gQXJuYXVkCj4gPiA+PiA+Pj0yMAo+ID4gPj4gPj4gLS0KPiA+ID4+ID4+IE9saXZpZXIgTGFteQo+ID4gPj4gPj4gaHR0cDovL3R3aXR0ZXIuY29tL29sYW15IHwgaHR0cDovL2xpbmtlZGluLmNvbS9pbi9vbGFteQo+ID4gPj4gPj0yMAo+ID4gPj4gPiAtLQo+ID4gPj4gPiAtLS0tLQo+ID4gPj4gPiBBcm5hdWQgSD1FOXJpdGllcgo+ID4gPj4gPiBodHRwOi8vYWhlcml0aWVyLm5ldAo+ID4gPj4gPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+ID4gPj4gPiBUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyCj4gPiA+Pj0yMAo+ID4gPj4gLS0KPiA+ID4+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3NjEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIERlYyAxMCAwOTo1OToxNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3NjEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMkQ2QUExN0Y0QwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDEwIERlYyAyMDE3IDA5OjU5OjE1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODMwMzUgaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgRGVjIDIwMTcgMDk6NTk6MTQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgyOTUwIGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIERlYyAyMDE3IDA5OjU5OjE0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODI5MzkgaW52b2tlZCBieSB1aWQgOTkpOyAxMCBEZWMgMjAxNyAwOTo1OToxNCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTAgRGVjIDIwMTcgMDk6NTk6MTQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAxOEIyRjE4MDc4QgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgRGVjIDIwMTcgMDk6NTk6MTQgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgWEVsVFdVY25YT0p3IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAxMCBEZWMgMjAxNyAwOTo1OToxMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDkuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMzFdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQkFFNjY1RjI1MQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgRGVjIDIwMTcgMDk6NTk6MTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMzIgd2l0aCBNRQoJaWQgazl6NDF3MDAzMjBVZmR5MDM5ejR4ZjsgU3VuLCAxMCBEZWMgMjAxNyAxMDo1OTowNCArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBTdW4sIDEwIERlYyAyMDE3IDEwOjU5OjA0ICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IEdpdCBtaWdyYXRpb24gbmV4dCBzdGVwcwpEYXRlOiBTdW4sIDEwIERlYyAyMDE3IDEwOjU5OjAzICswMTAwCk1lc3NhZ2UtSUQ6IDwyMTQ1MjMwLkg1N1NzWEJrZUVAZ2lnYT4KSW4tUmVwbHktVG86IDwxOTg1MTIyLllSZHpwYW5RSlJAZ2lnYT4KUmVmZXJlbmNlczogPDE5MDA1NTguR0Z4OVFsZmFFMkBnaWdhPiA8Q0ErblBuTXdpOWR4RVJjOFRONmF3Z0VhR05HTFB1RG5SemNTOGRGSmpUbnpaYzNUM2ZRQG1haWwuZ21haWwuY29tPiA8MTk4NTEyMi5ZUmR6cGFuUUpSQGdpZ2E+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKaGVyZSBpcyBhIGxpc3Qgb2Ygc3RyYW5nZSBpc3N1ZXMgaW4gQ0kgam9iczoKCj0yRCBEb3hpYSBTaXRldG9vbHMgaXMgZmFpbGluZyBhdCBjaGVja291dCBbMV0KCj0yRCBNYXZlbiBjb3JlIGJyYW5jaGVzIGZhaWwgaW4gbWF2ZW4td2lwIFsyXSB3aGlsZSB0aGUgbXVsdGktYnJhbmNoIGRvZXMgbj0Kb3Q9MjAKZmFpbCBbM106IEFGQUlLLCBzYW1lIEplbmtpbnMgZmlsZXMgYXJlIHVzZWQsIGlzbid0IGl0PwoKUmVnYXJkcywKCkhlcnY9RTkKClsxXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC9qb2IvbWF2ZW4tZD0Kb3hpYS1zaXRldG9vbHMvam9iL21hc3Rlci80L2NvbnNvbGUKClsyXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLXdpcC9qb2IvbWF2ZW4vCgpbM10gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi0zLngtamVua2luc2ZpbGUvCgpMZSBkaW1hbmNoZSAxMCBkPUU5Y2VtYnJlIDIwMTcsIDA2OjI5OjIwIENFVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiB5ZXMsIGFuZCA4MyBtYXZlbi1ib3ggQ0kgam9icyBbMV0KPj0yMAo+IHNvbWUgQ0kgZmFpbHVyZXMgYXJlIG5vdCByZWFsbHkgZXhwZWN0ZWQsIGJ1dCBpbiBnZW5lcmFsLCB0aGUgcmVzdWx0IGlzIGc9Cm9vZAo+PTIwCj4gaXQncyB0aW1lIGZvciBldmVyeWJvZHkgdG8gY2hlY2sgaGlzIGZhdm9yaXRlIHBsdWdpbiBvciBzaGFyZWQgY29tcG9uZW50ID0KYW5kCj4gZG8gdGhlIGxpdHRsZSBmaXhlczogdGhlIGdsb2JhbCBtaWdyYXRpb24gaXMgZG9uZQo+PTIwCj4gYW5kIGl0J3MgdGltZSBhbHNvIHRvIHN0YXJ0IHJldmlld2luZyBQUnMgYW5kIG1lcmdpbmc6IHRoaXMgd2FzIHRoZSBiaWcKPiBvYmplY3RpdmUgd2l0aCBHaXQgbWlncmF0aW9uCj49MjAKPiBSZWdhcmRzLAo+PTIwCj4gSGVydj1FOQo+PTIwCj4gWzFdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tYm94Lwo+PTIwCj4gTGUgc2FtZWRpIDkgZD1FOWNlbWJyZSAyMDE3LCAxNzowNjowOSBDRVQgU3RlcGhlbiBDb25ub2xseSBhID1FOWNyaXQgOgo+ID4gSSBzZWUgd2UgaGF2ZSBhIGxhcmdlIG51bWJlciBvZiByZXBvcyBub3cgb24gZ2l0Ym94IDstKQo+ID49MjAKPiA+IE9uIFRodSA3IERlYyAyMDE3IGF0IDA3OjAwLCBIZXJ2PUU5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3JvPQp0ZToKPiA+ID4gb2ssIEkgZGlkbid0IHVwZGF0ZSBteSByZXBvIGNsb25lOiBub3cgdGhlIHJ1bi1pdHMgcHJvZmlsZSBpcyBhY3RpdmF0PQplZAo+ID4gPj0yMAo+ID4gPiB0aGVuIHRoZSBwbGFuIHNob3VsZCBqdXN0IGNvbmZpcm0gIml0IHdvcmtzISIgOikKPiA+ID49MjAKPiA+ID4gYW5kIGZpbmQgd2hpY2ggam9icyBhcmUgc3BlY2lhbCwgbGlrZSBtYXZlbi1kaXN0LXRvb2wgKHdoaWNoIGhhcyB0byBiZQo+ID4gPiBzY2hlZHVsZWQgZGFpbHkgaW5zdGVhZCBvZiBjb2RlIGNoYW5nZSwgYW5kIG9uZSBwbGF0Zm9ybSBvbmx5KQo+ID4gPj0yMAo+ID4gPiBSZWdhcmRzLAo+ID4gPj0yMAo+ID4gPiBIZXJ2PUU5Cj4gPiA+PTIwCj4gPiA+IExlIG1lcmNyZWRpIDYgZD1FOWNlbWJyZSAyMDE3LCAyMzo1ODo0NSBDRVQgU3RlcGhlbiBDb25ub2xseSBhID1FOWNyaT0KdCA6Cj4gPiA+ID4gT24gV2VkIDYgRGVjIDIwMTcgYXQgMjI6MzgsIEhlcnY9RTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPj0KPTIwCndyb3RlOgo+ID4gPiA+ID4gTm93IHRoYXQgd2UgaGF2ZSAyIEFTRiBPcmdhbml6YXRpb24gSmVua2lucyBqb2JzIChvbmUgZm9yIGdpdGJveCA9ClsxXQo+ID4gPj0yMAo+ID4gPiBhbmQKPiA+ID49MjAKPiA+ID4gPiA+IG9uZQo+ID4gPiA+ID4gZm9yIGdpdC13aXA6IHRoYW5rIHlvdSBTdGVwaGVuKSBhbmQgdGhhdCBpdCBsb29rcyBxdWl0ZSBzdWNjZXNzZnU9CmwsCj4gPiA+PTIwCj4gPiA+IGxldCdzCj4gPiA+PTIwCj4gPiA+ID4gPiBwbGFuCj4gPiA+ID4gPiB0aGUgbmV4dCBzdGVwcy4KPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBIZXJlIGlzIHdoYXQgSSBzZWU6Cj4gPiA+ID4gPiAxLiByZW1vdmFsIG9mIGhhbmQtZGVmaW5lZCBKZW5raW5zIGpvYnMgdGhhdCBhcmUgbm93IGR1cGxpY2F0ZXMKPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiAyLiBwcmVwYXJhdGlvbiBvZiB0aGUgNjAgbmV3IGVtcHR5IGdpdCByZXBvcyBmb3Igc2hhcmVkICYgcGx1Z2lucwo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IDMuIG1pZ3JhdGlvbiBvZiB0aGUgMSBzaGFyZWQgY29tcG9uZW50IGFuZCAxIHBsdWdpbiB1c2luZwo+ID4gPiA+ID4gbWlncmF0ZS0qLnNoCj4gPiA+ID4gPiBzY3JpcHRzCj4gPiA+ID4gPiBbM10gdG8gdGVzdCBhbmQgZXZlbnR1YWxseSByZXdvcmsgdGhlIEplbmtpbnNmaWxlIChJIHN1cHBvc2UgaXQgdz0KaWxsCj4gPiA+ID4gPiByZXF1aXJlCj4gPiA+ID4gPiBzb21lIGxpdHRsZSBjaGFuZ2UsIHRvIHJ1biBhZGQgInJ1bi1pdHMiIHByb2ZpbGUpCj4gPiA+ID49MjAKPiA+ID4gPiBBcyBmYXIgYXMgSSByZWNhbGwsIEkgYWRkZWQgLVArcnVuLWl0cyBhbHJlYWR5Cj4gPiA+ID49MjAKPiA+ID4gPiBGb3IgdGhlIHBsdWdpbiwgSSdkIGxpa2UgdG8gZG8gdGhlIGpvYiBmb3IgbWF2ZW4tc2l0ZS1wbHVnaW4sIHNpbmNlPQogd2UKPiA+ID4gPj0yMAo+ID4gPiA+ID4gZXhwZWN0Cj4gPiA+ID4gPiB0byByZWxlYXNlIGl0IHNvb24uCj4gPiA+ID4gPiBGb3IgdGhlIHNoYXJlZCBjb21wb25lbnQsIEkgZG9uJ3Qga25vdyBpZiB0aGVyZSBpcyBhIGJlc3QgY2FuZGlkYT0KdGUKPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA0LiBvbmNlIHByZXZpb3VzIHN0ZXAgaXMgb2ssIGRvIHRoZSBmdWxsIG1pZ3JhdGlvbjogaWYgdGhlcmUgYXJlCj4gPiA+ID4gPiB2b2x1bnRlZXJzCj4gPiA+ID4gPiBmb3IgaGVscGluZywgdGhhdCB3b3VsZCBiZSBncmVhdCwgc2luY2UgcG9wdWxhdGluZyA2MCBnaXQgcmVwb3MKPiA+ID4gPiA+IHdvbid0Cj4gPiA+PTIwCj4gPiA+IGJlCj4gPiA+PTIwCj4gPiA+ID4gPiByZWFsbHkgZnVuLi4uCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gQW5kIGFzIHBhcnQgb2YgNjAgZW1wdHkgZ2l0IHJlcG9zIGNyZWF0aW9uLCBJIHByb3Bvc2UgdG8gbWlncmF0ZSA9CnRoZQo+ID4gPiA+ID4gIkdvb2dsZQo+ID4gPiA+ID4gcmVwbyBtYW5pZmVzdCIgbWF2ZW4tYWdncmVnYXRvciBbNF0gdG8gQVNGOiBteSBwZXJzb25hbCB1c2UgaGFzIGI9CmVlbgo+ID4gPj0yMAo+ID4gPiBxdWl0ZQo+ID4gPj0yMAo+ID4gPiA+ID4gc3VjY2Vzc2Z1bCwgSSBob3BlIGl0J3MgdGhlIHNhbWUgZm9yIG90aGVycy4gUGVyaGFwcyB0aGVyZSBhcmUKPiA+ID4gPiA+IGJldHRlcgo+ID4gPiA+ID4gaWRlYXMKPiA+ID4gPiA+IGZvciBpdHMgbmFtZTogbWF2ZW4tYWdncmVnYXRvcgo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IEFueSBvdGhlciBpZGVhPyBhbnkgb2JqZWN0aW9uPwo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gSGVydj1FOQo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IFsxXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC8KPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBbMl0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi13aXAvCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gWzNdIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL21hdmVuL3NhbmRib3gvdHJ1bmsvc2NyaXB0cy9naXQvCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gWzRdIGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1hZ2dyZWdhdG9yCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0tCj4gPiA+ID4gPiAtCj4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IC0tCj4gPiA+ID49MjAKPiA+ID4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+ID49MjAKPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID49MjAKPiA+ID4gLS0KPiA+PTIwCj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3OTktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIERlYyAyMCAwOTo0Mjo0OCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3OTktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgM0Q5NDkxNzQ4QQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDIwIERlYyAyMDE3IDA5OjQyOjQ4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjE1MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBEZWMgMjAxNyAwOTo0Mjo0NyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjA3MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBEZWMgMjAxNyAwOTo0Mjo0NyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYwNTcgaW52b2tlZCBieSB1aWQgOTkpOyAyMCBEZWMgMjAxNyAwOTo0Mjo0NyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMjAgRGVjIDIwMTcgMDk6NDI6NDcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAxMTU1QTFBMDg4QgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjAgRGVjIDIwMTcgMDk6NDI6NDcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC45OTkKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuOTk5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJVVJJQkxfQkxPQ0tFRD0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBQX3hqMTQzYy1SWkMgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsIDIwIERlYyAyMDE3IDA5OjQyOjQ0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwNi5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyOF0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBDQzRDODVGMjU0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyMCBEZWMgMjAxNyAwOTo0Mjo0MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQxMSB3aXRoIE1FCglpZCBvOWljMXcwMGIyMFVmZHkwMzlpY1R5OyBXZWQsIDIwIERlYyAyMDE3IDEwOjQyOjM3ICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFdlZCwgMjAgRGVjIDIwMTcgMTA6NDI6MzcgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW0lNUE9SVEFOVF0gUmU6IEdpdCBtaWdyYXRpb24gbmV4dCBzdGVwcwpEYXRlOiBXZWQsIDIwIERlYyAyMDE3IDEwOjQyOjM2ICswMTAwCk1lc3NhZ2UtSUQ6IDwyMTQ5NTEyLlI4U003WTJVZmhAZ2lnYT4KSW4tUmVwbHktVG86IDwyNjk4NjE2Lmh4Wmtrank5ZHBAZ2lnYT4KUmVmZXJlbmNlczogPDE5MDA1NTguR0Z4OVFsZmFFMkBnaWdhPiA8b3AuemJiOHozenprZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+IDwyNjk4NjE2Lmh4Wmtrank5ZHBAZ2lnYT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpJTkZSQS0xNTY3OSBmaXhlZCBieSBpbmZyYSB0ZWFtCnRoZW4gSSByZS1ydW4gbWlncmF0ZS1wbHVnaW5zLnNoIHNjcmlwdCB0byBzcGxpdCB0aGUgc3ZuMmdpdCBtaXJyb3IgdG8gcGVyLQpwbHVnaW4gZ2l0IHJlcG8KYW5kIEkgcHVzaGVkICJtYXN0ZXIyIiBicmFuY2hlcyBmb3IgbS1qYXZhZG9jLXAsIG0tc2l0ZS1wIGFuZCBtLXBkZi1wLCB3aGljPQpoPTIwCndlcmUgdGhlIDMgcGx1Z2lucyB3aGljaCBzdWZmZXJlZCBmcm9tIG1pc3NpbmcgY29tbWl0cwoKb24gbS1zaXRlLXAgYW5kIG0tcGRmLXAsIEknbGwgY2hlcnJ5IHBpY2sgdGhlIHVuaXF1ZSBjb21taXQgdGhhdCB3YXMgbWlzc2VkPQo6PTIwCm5vdCBhIGJpZyBkZWFsCgpvbiBtLWphdmFkb2MtcCwgdGhlIHNpdHVhdGlvbiBpcyBtb3JlIGNvcGxleCwgc2luY2UgdGhlcmUgd2FzIGEgcmVsZWFzZQoKSSBhbHNvIG5vdGljZWQgdGhhdCBJIGZvcmdvdCB0byBwdXNoIHRhZ3Mgd2hlbiBpbXBvcnRpbmc6IEkgc3RhcnRlZCB0byBkbyAiPQpnaXQ9MjAKcHVzaCAtLXRhZ3MiLCBidXQgdGhlIHJlc3VsdCBkb2VzIG5vdCBsb29rIGFzIEkgZXhwZWN0ZWQ6IGl0IGNyZWF0ZXMgYSBsb3QgPQpvZj0yMApwYXJhbGxlbCBicmFuY2hlcwoKSSdsbCBuZWVkIGhlbHAgZnJvbSBnaXQgZXhwZXJ0czogd2hhdCBpcyBoYXBwZW5pbmc/CgpJIHN0b3BwZWQgdGhlIHRhZ3MgcHVzaCBoYWxmIHRoZSB3YXksIHdlJ2xsIG5lZWQgdG8gZGVjaWRlIHdoYXQgdG8gZG8uLi4KKEkga25ldyBJIHdhcyBub3QgYSBnaXQgZXhwZXJ0IGFuZCB0aGVyZSB3YXMgYSByaXNrIGZvciBzb21ldGhpbmcgd2VpcmQgbGlrPQplPTIwCndoYXQncyBjdXJyZW50bHkgaGFwcGVuaW5nLi4uKQoKQW55IGhpbnQ/CgpSZWdhcmRzLAoKSGVydj1FOQoKTGUgc2FtZWRpIDE2IGQ9RTljZW1icmUgMjAxNywgMTY6Mjg6NDggQ0VUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOgo+IG9rLCBJIHdhcyBjb25mdXNlZCBieSB0aGUgZGlmZmVyZW50IHRha2VzIGF0IG0tamF2YWRvYy1wIDMuMC4wCj49MjAKPiB5ZXMsIHN2bjJnaXQgbWlycm9yIGlzIHN0dWNrIFsxXSBhdCByMTgxNTY3NQo+PTIwCj4gSSBqdXN0IG9wZW5lZCBhbiBJTkZSQSBKaXJhIGlzc3VlCj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9JTkZSQS0xNTY3OQo+PTIwCj4gb25jZSB0aGUgc3ZuMmdpdCBtaXJyb3Igd2lsbCBiZSB1cGRhdGVkLCB3ZSdsbCBoYXZlIHRvIHJlLXJ1biB0aGUgc3BsaXQKPiBzY3JpcHRzIGFuZCBjaGVycnkgcGljayB0aGUgbWlzc2luZyBjb21taXRzCj49MjAKPiBSZWdhcmRzLAo+PTIwCj4gSGVydj1FOQo+PTIwCj4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9jb21taXRzL3RydW5rCj49MjAKPiBMZSBzYW1lZGkgMTYgZD1FOWNlbWJyZSAyMDE3LCAxMzowMTowNSBDRVQgUm9iZXJ0IFNjaG9sdGUgYSA9RTljcml0IDoKPiA+IEkgd2FzIHRyaWdnZXJlZCBieSBzb21lIGZhaWxpbmcgdW5pdCB0ZXN0cywgd2hpY2ggc2hvdWxkIGhhdmUgYmVlbiBzb2x2PQplZAo+ID4gaW4gbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAKPiA+PTIwCj4gPiBNeSBsYXN0IGNvbW1pdCBhY2NvcmRpbmcgdG8gR0lUIHdhcyBub3ZlbWJlciAxOHRoCj4gPiBNeSBsYXN0IGNvbW1pdCBhY2NvcmRpbmcgdG8gU1ZOIHdhcyBkZWNlbWJlciAzcmQKPiA+PTIwCj4gPiBjb21wYXJpbmcgc3ZubG9nIHdpdGggZ2l0bG9nIG1vc3Qgb2YgdGhlc2UgY29tbWl0cyBhcmUgbG9zdDoKPiA+PTIwCj4gPiBtb3ZlZCB0byBnaXQKPiA+IC0tLS0KPiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSBmb3IgbmV4dCBkZXZlbG9wbWVudCBpdGVyYXRpb24KPiA+IC0tLS0KPiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSByZWxlYXNlIG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wCj4gPiAtLS0tCj4gPiBbTUpBVkFET0MtNDk4XSAibW9kdWxlIG5vdCBmb3VuZCIgd2hlbiBKYXZhIDkgbW9kdWxlLWluZm8gcHJlc2VudAo+ID4gU3VwcG9ydCBhZ2dyYXRlZCBqYXZhZG9jCj4gPiAtLS0tCj4gPiBTa2lwIHNldmVyYWwgdW5pdHRlc3RzIGZvciBKYXZhOQo+ID4gLS0tLQo+ID4gSkRLLTgwMzIyMDUgd2FzIGNsb3NlZCBhcyBub3QgYW4gaXNzdWUsIHNvIG5vdCBzb2x2ZWQgaW4gSmF2YTkuCj4gPiBOZWVkIHRvIHJldmlldyB0aGUgY29uY2x1c2lvbgo+ID4gLS0tLQo+ID4gVXBncmFkZSBtb2NraXRvIHRvIHJlbW92ZSB3YXJuaW5nIGFib3V0IGlsbGVnYWwgcmVmbGVjdGl2ZSBhY2Nlc3MKPiA+IC0tLS0KPiA+IEltcHJvdmUgVGVzdEphdmFkb2NSZXBvcnRUZXN0I3Rlc3RUZXN0SmF2YWRvYwo+ID4gSjggd2FybnMgYW5kIGNvbnRpbnVlcyB3aXRoIG1pc3NpbmcgZGVwZW5kZW5jeSwgSjkgZmFpbHMuCj4gPiBJbiBmYWN0IHRlc3Qgd2FzIHdyb25nOiBkZXBlbmRlbmN5IHNob3VsZCBoYXZlIGJlZW4gb24gY2xhc3NwYXRoCj4gPiAtLS0tCj4gPiB1bml0dGVzdCBzaG91bGQgcHJlZmVyIEpBVkFfSE9NRSB3aGVuIGV4ZWN1dGluZyBmcm9tIGNtZGxpbmUKPiA+IFdoZW4gcnVubmluZyB3aXRoIEphdmE5KyBubyBuZWVkIHRvIHN3aXRjaCBmcm9tIGpyZSB0byBqZGsgZGlyZWN0b3J5Cj4gPiAoamVwMjIwKQo+ID4gLS0tLQo+ID4gTUpBVkFET0MtNTAyIFVwZGF0ZSBERUZBVUxUX0pBVkFfQVBJX0xJTktTCj4gPiAtLS0tCj4gPiBzZXNzaW9uIGlzIHJlcXVpcmVkIHBhcmFtZXRlciwgc28gY2Fubm90IGJlIG51bGwuIEZpeCByZWxhdGVkIHVuaXR0ZXN0cwo+ID4gLS0tLQo+ID4gQWRkIHByb2plY3QvYXJ0aWZhY3Qga2V5IHRvIHNldCBvZiBzb3VyY2VQYXRocyB0byByZWNvZ25pemUgcmVhY3Rvcgo+ID4gcHJvamVjdHMgdmVyc3VzIGRlcGVuZGVuY2llcwo+ID4gLS0tLQo+ID4gR3JvdXAgc2V0cyBvZiBzb3VyY2VwYXRocyBwZXIgcHJvamVjdCwgaW4gcHJlcGFyZSBvZiB1c2FnZSBvZgo+ID4gbW9kdWxlLXNvdXJjZS1wYXRoLgo+ID4gLS0tLQo+ID4gU3dpdGNoIGZyb20gTGlzdCB0byBDb2xsZWN0aW9uIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHVzZSBTZXRzIHdoZW4KPiA+IHByZWZlcnJlZAo+ID4gLS0tLQo+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIGZvciBuZXh0IGRldmVsb3BtZW50IGl0ZXJhdGlvbgo+ID4gLS0tLQo+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIHJlbGVhc2UgbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAKPiA+IC0tLS0KPiA+PTIwCj4gPj0yMAo+ID49MjAKPiA+PTIwCj4gPiBPbiBTYXQsIDE2IERlYyAyMDE3IDEyOjUzOjIzICswMTAwLCBIZXJ2PUU5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZT0KPTJFZnI+Cj4gPj0yMAo+ID4gd3JvdGU6Cj4gPiA+IGxvb2tpbmcgYXQgY29tbWl0c0AgY29udGVudCBodHRwczovL2xpc3RzLmFwYWNoZS5vcmcvbGlzdC5odG1sPwo+ID4gPiBjb21taXRzQG1hdmVuLmFwYWNoZS5vcmcgd2l0aCBzdWJqZWN0IGNvbnRhaW5pbmcgIm1hdmVuL3BsdWdpbnMvdHJ1bmsiCj4gPiA+PTIwCj4gPiA+IGFuZCBwbHVnaW5zIHN2bjJnaXQgbWlycm9yCj4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9jb21taXRzLwo+ID4gPiB0cnVuawo+ID4gPj0yMAo+ID4gPiBvbmx5IDEgY29tbWl0IGlzIG1pc3Npbmc6IG15IGxhdGVzdCBjb21taXQgb24gbWF2ZW4tc2l0ZS1wbHVnaW4KPiA+ID4gKHRoZSBsYXN0IGNvbW1pdCBmb3IgR2l0IG1pZ3JhdGlvbiBpcyBub3QgdXNlZnVsKQo+ID4gPj0yMAo+ID4gPj0yMAo+ID4gPiBTYW1lIG9uIHNoYXJlZCBzaG93ZWQgbm8gbWlzc2luZyBjb21taXQuCj4gPiA+PTIwCj4gPiA+PTIwCj4gPiA+IHdoYXQgbGF0ZXN0IGNvbW1pdCBvZiBtYXZlbi1qYXZhZG9jLXBsdWdpbiBhcmUgeW91IGxvb2tpbmcgZm9yPwo+ID4gPj0yMAo+ID4gPiBSZWdhcmRzLAo+ID4gPj0yMAo+ID4gPiBIZXJ2PUU5Cj4gPiA+PTIwCj4gPiA+IExlIHNhbWVkaSAxNiBkPUU5Y2VtYnJlIDIwMTcsIDExOjU2OjMxIENFVCBSb2JlcnQgU2Nob2x0ZSBhID1FOWNyaXQgOgo+ID4gPj4gRm9yIGV2ZXJ5Ym9keSBqdXN0IGEgd2FybmluZyBJIGZhY2VkIHRvZGF5Ogo+ID4gPj4gSWYgeW91IHN3aXRjaCB0byB0aGUgZ2l0IHJlcG9zLCBwbGVhc2UgbWFrZSBzdXJlIGFsbCBjb21taXRzIGFyZQo+ID4gPj4gbWlncmF0ZWQuCj4gPiA+PiBJIG5vdGljZWQgdGhlIGxhdGVzdCBjb21taXRzIG9mIHRoZSBtYXZlbi1qYXZhZG9jLXBsdWdpbiBnb3QgbG9zdC4KPiA+ID4+PTIwCj4gPiA+PiB0aGFua3MsCj4gPiA+PiBSb2JlcnQKPiA+ID4+PTIwCj4gPiA+PiBPbiBTYXQsIDA5IERlYyAyMDE3IDE3OjA2OjA5ICswMTAwLCBTdGVwaGVuIENvbm5vbGx5Cj4gPiA+Pj0yMAo+ID4gPj4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPj4gPiBJIHNlZSB3ZSBoYXZlIGEgbGFyZ2UgbnVtYmVyIG9mIHJlcG9zIG5vdyBvbiBnaXRib3ggOy0pCj4gPiA+PiA+PTIwCj4gPiA+PiA+IE9uIFRodSA3IERlYyAyMDE3IGF0IDA3OjAwLCBIZXJ2PUU5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPiA+ID4+PTIwCj4gPiA+PiB3cm90ZToKPiA+ID4+ID4+IG9rLCBJIGRpZG4ndCB1cGRhdGUgbXkgcmVwbyBjbG9uZTogbm93IHRoZSBydW4taXRzIHByb2ZpbGUgaXMKPiA+ID4+PTIwCj4gPiA+PiBhY3RpdmF0ZWQKPiA+ID4+PTIwCj4gPiA+PiA+PiB0aGVuIHRoZSBwbGFuIHNob3VsZCBqdXN0IGNvbmZpcm0gIml0IHdvcmtzISIgOikKPiA+ID4+ID4+PTIwCj4gPiA+PiA+PiBhbmQgZmluZCB3aGljaCBqb2JzIGFyZSBzcGVjaWFsLCBsaWtlIG1hdmVuLWRpc3QtdG9vbCAod2hpY2ggaGFzID0KdG8KPiA+ID4+PTIwCj4gPiA+PiBiZQo+ID4gPj49MjAKPiA+ID4+ID4+IHNjaGVkdWxlZCBkYWlseSBpbnN0ZWFkIG9mIGNvZGUgY2hhbmdlLCBhbmQgb25lIHBsYXRmb3JtIG9ubHkpCj4gPiA+PiA+Pj0yMAo+ID4gPj4gPj4gUmVnYXJkcywKPiA+ID4+ID4+PTIwCj4gPiA+PiA+PiBIZXJ2PUU5Cj4gPiA+PiA+Pj0yMAo+ID4gPj4gPj4gTGUgbWVyY3JlZGkgNiBkPUU5Y2VtYnJlIDIwMTcsIDIzOjU4OjQ1IENFVCBTdGVwaGVuIENvbm5vbGx5IGEgPQo9RTljcml0IDoKPiA+ID4+ID4+ID4gT24gV2VkIDYgRGVjIDIwMTcgYXQgMjI6MzgsIEhlcnY9RTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlPQo9MkVmcj4KPiA+ID4+ID4+PTIwCj4gPiA+PiA+PiB3cm90ZToKPiA+ID4+ID4+ID4gPiBOb3cgdGhhdCB3ZSBoYXZlIDIgQVNGIE9yZ2FuaXphdGlvbiBKZW5raW5zIGpvYnMgKG9uZSBmb3IgZ2l0PQpib3gKPiA+ID4+PTIwCj4gPiA+PiBbMV0KPiA+ID4+PTIwCj4gPiA+PiA+PiBhbmQKPiA+ID4+ID4+PTIwCj4gPiA+PiA+PiA+ID4gb25lCj4gPiA+PiA+PiA+ID4gZm9yIGdpdC13aXA6IHRoYW5rIHlvdSBTdGVwaGVuKSBhbmQgdGhhdCBpdCBsb29rcyBxdWl0ZQo+ID4gPj49MjAKPiA+ID4+IHN1Y2Nlc3NmdWwsCj4gPiA+Pj0yMAo+ID4gPj4gPj4gbGV0J3MKPiA+ID4+ID4+PTIwCj4gPiA+PiA+PiA+ID4gcGxhbgo+ID4gPj4gPj4gPiA+IHRoZSBuZXh0IHN0ZXBzLgo+ID4gPj4gPj4gPiA+PTIwCj4gPiA+PiA+PiA+ID4gSGVyZSBpcyB3aGF0IEkgc2VlOgo+ID4gPj4gPj4gPiA+IDEuIHJlbW92YWwgb2YgaGFuZC1kZWZpbmVkIEplbmtpbnMgam9icyB0aGF0IGFyZSBub3cgZHVwbGljYXQ9CmVzCj4gPiA+PiA+PiA+ID49MjAKPiA+ID4+ID4+ID4gPiAyLiBwcmVwYXJhdGlvbiBvZiB0aGUgNjAgbmV3IGVtcHR5IGdpdCByZXBvcyBmb3Igc2hhcmVkICYKPiA+ID4+ID4+ID4gPiBwbHVnaW5zCj4gPiA+PiA+PiA+ID49MjAKPiA+ID4+ID4+ID4gPiAzLiBtaWdyYXRpb24gb2YgdGhlIDEgc2hhcmVkIGNvbXBvbmVudCBhbmQgMSBwbHVnaW4gdXNpbmcKPiA+ID4+ID4+PTIwCj4gPiA+PiA+PiBtaWdyYXRlLSouc2gKPiA+ID4+ID4+PTIwCj4gPiA+PiA+PiA+ID4gc2NyaXB0cwo+ID4gPj4gPj4gPiA+IFszXSB0byB0ZXN0IGFuZCBldmVudHVhbGx5IHJld29yayB0aGUgSmVua2luc2ZpbGUgKEkgc3VwcG9zZSA9Cml0Cj4gPiA+Pj0yMAo+ID4gPj4gd2lsbAo+ID4gPj49MjAKPiA+ID4+ID4+ID4gPiByZXF1aXJlCj4gPiA+PiA+PiA+ID4gc29tZSBsaXR0bGUgY2hhbmdlLCB0byBydW4gYWRkICJydW4taXRzIiBwcm9maWxlKQo+ID4gPj4gPj4gPj0yMAo+ID4gPj4gPj4gPiBBcyBmYXIgYXMgSSByZWNhbGwsIEkgYWRkZWQgLVArcnVuLWl0cyBhbHJlYWR5Cj4gPiA+PiA+PiA+PTIwCj4gPiA+PiA+PiA+IEZvciB0aGUgcGx1Z2luLCBJJ2QgbGlrZSB0byBkbyB0aGUgam9iIGZvciBtYXZlbi1zaXRlLXBsdWdpbiwKPiA+ID4+PTIwCj4gPiA+PiBzaW5jZSB3ZQo+ID4gPj49MjAKPiA+ID4+ID4+ID4gPiBleHBlY3QKPiA+ID4+ID4+ID4gPiB0byByZWxlYXNlIGl0IHNvb24uCj4gPiA+PiA+PiA+ID4gRm9yIHRoZSBzaGFyZWQgY29tcG9uZW50LCBJIGRvbid0IGtub3cgaWYgdGhlcmUgaXMgYSBiZXN0Cj4gPiA+Pj0yMAo+ID4gPj4gY2FuZGlkYXRlCj4gPiA+Pj0yMAo+ID4gPj4gPj4gPiA+IDQuIG9uY2UgcHJldmlvdXMgc3RlcCBpcyBvaywgZG8gdGhlIGZ1bGwgbWlncmF0aW9uOiBpZiB0aGVyZSA9CmFyZQo+ID4gPj4gPj4gPiA+IHZvbHVudGVlcnMKPiA+ID4+ID4+ID4gPiBmb3IgaGVscGluZywgdGhhdCB3b3VsZCBiZSBncmVhdCwgc2luY2UgcG9wdWxhdGluZyA2MCBnaXQgcmVwPQpvcwo+ID4gPj4gPj49MjAKPiA+ID4+ID4+IHdvbid0Cj4gPiA+PiA+PiBiZQo+ID4gPj4gPj49MjAKPiA+ID4+ID4+ID4gPiByZWFsbHkgZnVuLi4uCj4gPiA+PiA+PiA+ID49MjAKPiA+ID4+ID4+ID4gPiBBbmQgYXMgcGFydCBvZiA2MCBlbXB0eSBnaXQgcmVwb3MgY3JlYXRpb24sIEkgcHJvcG9zZSB0byBtaWdyPQphdGUKPiA+ID4+PTIwCj4gPiA+PiB0aGUKPiA+ID4+PTIwCj4gPiA+PiA+PiA+ID4gIkdvb2dsZQo+ID4gPj4gPj4gPiA+IHJlcG8gbWFuaWZlc3QiIG1hdmVuLWFnZ3JlZ2F0b3IgWzRdIHRvIEFTRjogbXkgcGVyc29uYWwgdXNlIGg9CmFzCj4gPiA+Pj0yMAo+ID4gPj4gYmVlbgo+ID4gPj49MjAKPiA+ID4+ID4+IHF1aXRlCj4gPiA+PiA+Pj0yMAo+ID4gPj4gPj4gPiA+IHN1Y2Nlc3NmdWwsIEkgaG9wZSBpdCdzIHRoZSBzYW1lIGZvciBvdGhlcnMuIFBlcmhhcHMgdGhlcmUgYXJlCj4gPiA+PiA+Pj0yMAo+ID4gPj4gPj4gYmV0dGVyCj4gPiA+PiA+Pj0yMAo+ID4gPj4gPj4gPiA+IGlkZWFzCj4gPiA+PiA+PiA+ID4gZm9yIGl0cyBuYW1lOiBtYXZlbi1hZ2dyZWdhdG9yCj4gPiA+PiA+PiA+ID49MjAKPiA+ID4+ID4+ID4gPiBBbnkgb3RoZXIgaWRlYT8gYW55IG9iamVjdGlvbj8KPiA+ID4+ID4+ID4gPj0yMAo+ID4gPj4gPj4gPiA+IFJlZ2FyZHMsCj4gPiA+PiA+PiA+ID49MjAKPiA+ID4+ID4+ID4gPiBIZXJ2PUU5Cj4gPiA+PiA+PiA+ID49MjAKPiA+ID4+ID4+ID4gPiBbMV0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1iPQpveC8KPiA+ID4+ID4+ID4gPj0yMAo+ID4gPj4gPj4gPiA+IFsyXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLXc9CmlwLwo+ID4gPj4gPj4gPiA+PTIwCj4gPiA+PiA+PiA+ID4gWzNdCj4gPiA+Pj0yMAo+ID4gPj4gaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy92aWV3dmMvbWF2ZW4vc2FuZGJveC90cnVuay9zY3JpcHRzL2dpdC8KPiA+ID4+PTIwCj4gPiA+PiA+PiA+ID4gWzRdIGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1hZ2dyZWdhdG9yCj4gPiA+PiA+Pj0yMAo+ID4gPj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0tCj4gPiA+PiA+PiAtCj4gPiA+PiA+Pj0yMAo+ID4gPj4gPj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+PiA+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4gPj4gPiA+PTIwCj4gPiA+PiA+PiA+ID4gLS0KPiA+ID4+ID4+ID49MjAKPiA+ID4+ID4+ID4gU2VudCBmcm9tIG15IHBob25lCj4gPiA+PiA+Pj0yMAo+ID4gPj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0tCj4gPiA+PiA+PiAtCj4gPiA+PiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4gPj49MjAKPiA+ID4+ID4+IC0tCj4gPiA+PiA+PTIwCj4gPiA+PiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4gPj49MjAKPiA+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID49MjAKPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj49MjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MDc0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBTZXAgMjAgMDU6NTI6NTAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDc0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEVENDUwMTBFQUQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyMCBTZXAgMjAxNyAwNTo1Mjo1MCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI5MzY5IGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIFNlcCAyMDE3IDA1OjUyOjUwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyOTA3NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBTZXAgMjAxNyAwNTo1Mjo1MCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI5MDYxIGludm9rZWQgYnkgdWlkIDk5KTsgMjAgU2VwIDIwMTcgMDU6NTI6NDkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDIwIFNlcCAyMDE3IDA1OjUyOjQ5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNDkzMEYxOEIxM0IKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDIwIFNlcCAyMDE3IDA1OjUyOjQ5ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEuMwpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMS4zIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgS0FNX05VTVNVQkpFQ1Q9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHQ4dVBNMWRnbUh4UCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgMjAgU2VwIDIwMTcgMDU6NTI6NDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDAzLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI1XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDNDMEU0NjEwRTAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDIwIFNlcCAyMDE3IDA1OjUyOjQ3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDc5IHdpdGggTUUKCWlkIEJoc2YxdzAwQjIwVWZkeTAzaHNmTGs7IFdlZCwgMjAgU2VwIDIwMTcgMDc6NTI6NDAgKzAyMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogV2VkLCAyMCBTZXAgMjAxNyAwNzo1Mjo0MCArMDIwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gSk1vZCBQbHVnaW4gdmVyc2lvbiAzLjAuMC1hbHBoYS0xIChGaXJzdCBQdWJsaWMgUmVsZWFzZSkgVGFrZSAzCkRhdGU6IFdlZCwgMjAgU2VwIDIwMTcgMDc6NTI6MzkgKzAyMDAKTWVzc2FnZS1JRDogPDIxODI3NDg2LmNkc1JMQUZzcGtAZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zNS1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpJbi1SZXBseS1UbzogPDcwYzBiMWE4LWZlZDYtZjRiZi0xZWQzLTY4NjI0OTMzNjkzYkBnbXguZGU+ClJlZmVyZW5jZXM6IDw3MGMwYjFhOC1mZWQ2LWY0YmYtMWVkMy02ODYyNDkzMzY5M2JAZ214LmRlPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCnRlc3RlZCAibXZuIHZlcmlmeSIgYW5kIGdvdCBmYWlsdXJlIGZvciBldmVyeSBJVDoKCkNhdXNlZCBieTogb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW4uUGx1Z2luRXhlY3V0aW9uRXhjZXB0aW9uOiBFeGVjdXRpb249MjAKZGVmYXVsdC1jcmVhdGUgb2YgZ29hbCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM6bWF2ZW4tam1vZC1wbHVnaW46My4wLjAtCmFscGhhLTE6Y3JlYXRlIGZhaWxlZDogOQoJYXQ9MjAKb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW4uRGVmYXVsdEJ1aWxkUGx1Z2luTWFuYWdlci5leGVjdXRlTW9qbyhEZWZhdWx0QnVpbGRQPQpsdWdpbk1hbmFnZXIuamF2YToKMTQ4KQoJYXQ9MjAKb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuaW50ZXJuYWwuTW9qb0V4ZWN1dG9yLmV4ZWN1dGUoTW9qb0V4ZWN1dG9yLmphdmE6CjIwOCkKCS4uLiAyMCBtb3JlCkNhdXNlZCBieTogamF2YS5sYW5nLkFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbjogOQoJYXQgb3JnLm9iamVjdHdlYi5hc20uQ2xhc3NSZWFkZXIucmVhZFVURjgoVW5rbm93biBTb3VyY2UpCglhdCBvcmcub2JqZWN0d2ViLmFzbS5DbGFzc1JlYWRlci5hKFVua25vd24gU291cmNlKQoJYXQgb3JnLm9iamVjdHdlYi5hc20uQ2xhc3NSZWFkZXIucmVhZE1vZHVsZShVbmtub3duIFNvdXJjZSkKCWF0IG9yZy5vYmplY3R3ZWIuYXNtLkNsYXNzUmVhZGVyLmEoVW5rbm93biBTb3VyY2UpCglhdCBvcmcub2JqZWN0d2ViLmFzbS5DbGFzc1JlYWRlci5hY2NlcHQoVW5rbm93biBTb3VyY2UpCglhdCBvcmcub2JqZWN0d2ViLmFzbS5DbGFzc1JlYWRlci5hY2NlcHQoVW5rbm93biBTb3VyY2UpCglhdD0yMApvcmcuY29kZWhhdXMucGxleHVzLmxhbmd1YWdlcy5qYXZhLmpwbXMuQXNtTW9kdWxlSW5mb1BhcnNlci5wYXJzZShBc21Nb2R1bGU9CkluZm9QYXJzZXIuamF2YToKOTApCglhdD0yMApvcmcuY29kZWhhdXMucGxleHVzLmxhbmd1YWdlcy5qYXZhLmpwbXMuQXNtTW9kdWxlSW5mb1BhcnNlci5nZXRNb2R1bGVEZXNjcmk9CnB0b3IoQXNtTW9kdWxlSW5mb1BhcnNlci5qYXZhOgo1NCkKCWF0PTIwCm9yZy5jb2RlaGF1cy5wbGV4dXMubGFuZ3VhZ2VzLmphdmEuanBtcy5Mb2NhdGlvbk1hbmFnZXIucmVzb2x2ZVBhdGhzKExvY2F0aT0Kb25NYW5hZ2VyLmphdmE6CjExNykKCWF0PTIwCm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy5qbW9kLkpNb2RDcmVhdGVNb2pvLnByZXBhcmVQYXRocyhKTW9kQ3JlYXRlTW9qby5qYT0KdmE6CjQ4NCkKCWF0PTIwCm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy5qbW9kLkpNb2RDcmVhdGVNb2pvLmV4ZWN1dGUoSk1vZENyZWF0ZU1vam8uamF2YTozMD0KNikKCWF0PTIwCm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLkRlZmF1bHRCdWlsZFBsdWdpbk1hbmFnZXIuZXhlY3V0ZU1vam8oRGVmYXVsdEJ1aWxkUD0KbHVnaW5NYW5hZ2VyLmphdmE6CjEzNykKCS4uLiAyMSBtb3JlCgpSZWdhcmRzLAoKSGVydj1FOQoKTGUgZGltYW5jaGUgMTcgc2VwdGVtYnJlIDIwMTcsIDEzOjQwOjUwIENFU1QgS2FybCBIZWlueiBNYXJiYWlzZSBhID1FOWNyaXQgOgo+IEhpLAo+PTIwCj4gdGhpcyBpcyB0aGUgVk9URSBmb3IgdGhlIGZpcnN0IHB1YmxpYyByZWxlYXNlIGZvciBNYXZlbiBKTW9kIFBsdWdpbi4uLgo+PTIwCj4gV2Ugc29sdmVkIDQgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZWN0SWQ9M0QxMjMyMTQ9CjMzJnZlCj4gcnNpb249M0QxMjM0MTM2Mwo+PTIwCj4gVGhlcmUgYXJlIGN1cnJlbnRseSBubyBpc3N1ZXMgbGVmdCBpbiBKSVJBLgo+PTIwCj4gSWYgeW91IGhhdmUgYW55IGlzc3VlIHRvIHJlcG9ydCBwbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBKSVJBCj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3Byb2plY3RzL01KTU9ECj49MjAKPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2OS8KPj0yMAo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjkvb3JnL2FwYWNoZS89Cm1hdgo+IGVuL3BsdWdpbnMvbWF2ZW4tam1vZC1wbHVnaW4vMy4wLjAtYWxwaGEtMS9tYXZlbi1qbW9kLXBsdWdpbi0zLjAuMC1hbHBoYS09CjEtcwo+IG91cmNlLXJlbGVhc2UuemlwCj49MjAKPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBtYXZlbi1qbW9kLXBsdWdpbi0zLjAuMC1hbHBoYS0xLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOgo+IGFhMDBiOThjNTM0ZjI0ZTgxNDFlZTBiZWFjZTJhZmYzYmU4OTk2ODgKPj0yMAo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1qbW9kLXBsdWdpbi1MQVRFU1QvCj49MjAKPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+PTIwCj4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPj0yMAo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQo+PTIwCj4gS2luZCByZWdhcmRzCj4gS2FybCBIZWlueiBNYXJiYWlzZQo+PTIwCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDE2NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgT2N0ICA3IDEyOjA2OjA1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDE2NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBGMEM4RDEwQ0FCCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMTI6MDY6MDQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzMTM5OSBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE9jdCAyMDE3IDEyOjA2OjA0IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMTMyMiBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE9jdCAyMDE3IDEyOjA2OjA0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzEzMTAgaW52b2tlZCBieSB1aWQgOTkpOyA3IE9jdCAyMDE3IDEyOjA2OjA0IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwNyBPY3QgMjAxNyAxMjowNjowNCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDg4MkJERDJBMzIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDEyOjA2OjAzICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuNQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC41IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCUtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHhiM3hFelhCWk1DaCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgIDcgT2N0IDIwMTcgMTI6MDY6MDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDAzLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI1XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDI3MEQ0NUY1NjkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDEyOjA2OjAxICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDUwIHdpdGggTUUKCWlkIEpjNXUxdzAwMzIwVWZkeTAzYzV1cHQ7IFNhdCwgMDcgT2N0IDIwMTcgMTQ6MDU6NTQgKzAyMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogU2F0LCAwNyBPY3QgMjAxNyAxNDowNTo1NCArMDIwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBKZW5raW5zIGFuZCBNYXZlbiAzLjAuNSBvciBKREsgNwpEYXRlOiBTYXQsIDA3IE9jdCAyMDE3IDE0OjA1OjU0ICswMjAwCk1lc3NhZ2UtSUQ6IDwyMTg3MDI5LkszNEUxN000am5AZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zNS1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpJbi1SZXBseS1UbzogPENBS3VWekJSTkNER2hBd0VuRzVuU2hyQ3dXPWIzT1pSY0VFZSs3ZkZNZVpuY0ZPYzZqd0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPDEwNTQ0NjE1LkI0aE8zUG52RXpAZ2lnYT4gPDIwMTQyNjMuOWk3bGNBM2pMeUBnaWdhPiA8Q0FLdVZ6QlJOQ0RHaEF3RW5HNW5TaHJDd1c9YjNPWlJjRUVlKzdmRk1lWm5jRk9jNmp3QG1haWwuZ21haWwuY29tPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgp0aGFua3MgZm9yIHlvdXIgaW50ZXJlc3QgYW5kIGZlZWRiYWNrCgpMZSBzYW1lZGkgNyBvY3RvYnJlIDIwMTcsIDEyOjAwOjMyIENFU1QgVGlib3IgRGlnYW5hIGEgPUMzPUE5Y3JpdCA6Cj4gNzggaXMgdG9vIG11Y2guCm5vdGljZSB0aGF0IHRoZXJlIHdvdWxkIGFsc28gYmUgYSBxdWVzdGlvbiBvbiB0aGUgZ2l0IHJlcG9zIG5hbWluZyBjb252ZW50aT0Kb24sPTIwCnRvIGF2b2lkIGZsYXQgNzggbmFtZXMgYnV0IGtlZXAgYXQgbGVhc3QgMyBtZWFuaW5nZnVsIGdyb3VwcyAocGx1Z2lucywgc2hhcj0KZWQsPTIwCnJlc291cmNlczogSSB0aGluayB0aGlzIGlzIG5vdCBhYnNvbHV0ZWx5IG5lY2Vzc2FyeSBmb3IgZG94aWEtdG9vbHMpCgo+IFRoZXJlIGlzIG5vIHByb2JsZW0gdG8gdHJpZ2dlciByZWxlYXNlIG92ZXIgc3ViLWZvbGRlcnMgYW5kIHRhZyBpdCB3aXRoCj4gcHJlZml4IHdoaWNoIGlzIGFscmVhZHkgZG9uZSBpbiBTVk4uCmlzIGl0IHN1cHBvcnRlZCBieSBtYXZlbi1yZWxlYXNlIHBsdWdpbiB3aXRoIGdpdD8KCm5vdGljZSBJIGRpZCBub3Qga25vdyB0aGF0IGdpdCB3YXMgYWJsZSB0byB0YWcgb25seSBhIHN1YnRyZWU6IGJ1dCBJIGtuZXcgST0KPTIwCmRvbid0IHlldCB1bmRlcnN0YW5kIGV2ZXJ5IGFzcGVjdCBvZiBnaXQgbWFnaWMuLi4gOikKCj4gVGhlIENJIGJ1aWxkIGNhbiBhbHdheXMgdHJpZ2dlciB0aGUgcm9vdCBhbmQgSmVua2luc2ZpbGUgd291bGQgaGF2ZSA0MQo+IHN0YWdlcyBmb3IgcGx1Z2lucywgMjYgc3RhZ2VzIGZvciBTaGFyZWQsIGV0Yy4KPiBJdCBjYW4gYmUgZG9uZSBpbiBKZW5raW5zZmlsZSBhbmQgc28gdGhlIHNoZWxsIHdvdWxkIG5vdCB0aHJvdyBleGNlcHRpb24KPiBidXQgc3RhdHVzIHdvdWxkIGJlIHNldCBpbnN0ZWFkIGFuZCBnb2VzIHRvIHRoZSBuZXh0IHN0YWdlLgo+IEkgZG8gbm90IGtub3cgaG93IHRvIGRldGVjdCBpbiBHaXRTQ00gd2hpY2ggc3ViLWZvbGRlcihzKSByZWNlaXZlZCBidXQgSQo+IGd1ZXNzIHRoaXMgY2FuIGJlIGludmVzdGlnYXRlZC4KKzEKYnV0IEkgZG9uJ3Qga25vdyB3aGVyZSB0byBsb29rIGZvciBteXNlbGY6IG9uIHRoYXQgcG9pbnQsIEkgaG9wZSB0byBoYXZlIHNvPQptZT0yMApoZWxwIGZyb20gSmVua2luc2ZpbGUgZXhwZXJ0cwphbmQgZXZlbnR1YWxseSBzdGFydCB3aXRoIHN2biwgdG8gaGF2ZSBzb21ldGhpbmcgYmVmb3JlIHRoZSBnaXQgbWlncmF0aW9uCgo+IFRoZW4gaXQgY2FuIGJlIGEga2luZCBvZiBzd2l0Y2gtY2FzZSBvdmVyIGNvbW1pdHRlZCBmb2xkZXJzIGluIEplbmtpbnNmaWw9CmUuCj4gVGhpcyBtZWFucyB0aGF0IGV2ZXJ5IHRpbWUgYW5vdGhlciBzdGFnZS9zdWItZm9sZGVyIGlzIHNob3duIGluIFBpcGVsaW5lCj4gd2hpY2ggd2lsbCBiZSBtZXNzeSBpbiB0aGUgVUkuIDooCm5vdGljZSB0aGF0IHdlIGNhbiBwZXJoYXBzIHNwbGl0IHRoZSByZXBvcyBpbiBsZXNzIHBhcnRzIHRoYW4gd2UgaGF2ZT0yMApjb21wb25lbnRzOiBvbiBwbHVnaW5zLCBmb3IgZXhhbXBsZSwgd2UgYWxyZWFkeSBoYXZlIDQgY2F0ZWdvcmllcyBbMV0gd2hpY2g9Cj0yMAp3b3VsZCBhdm9pZCAxIHJlcG8gd2l0aCA0MSBwbHVnaW5zLCBidXQgbW9yZSBzb21ldGhpbmcgbGlrZSA2KzEwKzEwKzE1Ckkgc3VwcG9zZSB3ZSBjb3VsZCBkbyB0aGUgc2FtZSBmb3Igc2hhcmVkIChyZXBvcnRpbmcgZm9sZGVyIGNvbWVzIHRvIG15IG1pbj0KZCkKClRoZSBrZXkgZmVhc2liaWxpdHkgaXNzdWUgaXMgdGhlIGNhcGFjaXR5IHRvIHJlbGVhc2UgYSBzdWItY29tcG9uZW50IGZyb20gZz0KaXQ9MjAKd2l0aCBtYXZlbi1yZWxlYXNlLXBsdWdpbiwgSU1ITwoodGFraW5nIGFwYXJ0IHRoZSBnaXQgcHVyaXN0cyBpZGVhIG9mIDEgbGlmZWN5Y2xlID0zRCAxIGdpdCByZXBvKQoKUmVnYXJkcywKCkhlcnY9QzM9QTkKCgpbMV0gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy8KPj0yMAo+IE9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgNDoxNyBBTSwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI9Cj4gd3JvdGU6Cj4gPiBUaGVyZSBhcmUgNiBzdm4gbG9jYXRpb25zIHdpdGhvdXQgYW55IHNwZWNpYWwgY29tcGxleGl0eSB0aGF0IGFyZSB3YWl0aT0KbmcKPiA+IGZvcgo+ID4gYSB2b2x1bnRlZXIgZm9yIGdpdCBtaWdyYXRpb24gZm9yIGEgZmV3IHllYXJzIGJ1dCBub2JvZHkgZG9lcyBhbnl0aGluZwo+ID4gYWJvdXQ6Cj4gPiBJIHN0YXJ0ZWQgMyBkYXlzIGFnbyB0byBhc2sgZm9yIGhlbHAgYWJvdXQgaXQgYW5kIGdvdCBwcmV0dHkgbm8gZmVlZGJhY2sKPiA+IFsxXQo+ID49MjAKPiA+IHRoZW4gdGhlcmUgYXJlIHRoZSA0IGNvbXBsZXggc3ZuIGxvY2F0aW9ucyAocGx1Z2lucywgc2hhcmVkLCByZXNvdXJjZXMsCj4gPiBkb3hpYS0KPiA+IHRvb2xzKSB0aGF0IHJlcXVpcmUgbXVjaCBtb3JlIHdvcms6IEkgc3VwcG9zZSB3ZSBjYW4ndCB0ZWxsIGdpdCBtaWdyYXRpPQpvbgo+ID4gaXMKPiA+IGFiYW5kb25lZCwgYnV0IGl0IHdpbGwgcmVxdWlyZSBzb21lb25lIHRvIHdvcmsgb24gaXQgc2VyaW91c2x5Cj4gPiBSZW1lbWJlciB0aGF0IHRoZSBrZXkgcXVlc3Rpb24gWzJdIGlzOiBkbyB3ZSB0cmFuc2Zvcm0gdGhlc2UgNCBzdm4KPiA+IGxvY2F0aW9ucwo+ID4gaW50byA0MSArMjYgKyA2ICsgNSA9M0QgNzggaW5kZXBlbmRlbnQgZ2l0IHJlcG9zPwo+ID4gWWVzLCBJIHRvbGQgdGhhdCBKZW5raW5zIGNvbmZpZ3VyYXRpb24gaXMgb25lIGtleSBhc3BlY3Qgd2UgbmVlZCBhCj4gPiBzdHJhdGVneQo+ID4gYWJvdXQsIGluIHBhcmFsbGVsIHdpdGggZ2l0IHN0cmF0ZWd5Lgo+ID49MjAKPiA+IHRoZW4gdGhlcmUgd2lsbCBiZSB0aGUgcmVtYWluaW5nIGNhc2VzIHdoZXJlIHdlIG5lZWQgdG8gZGVjaWRlOiBsb3dlcgo+ID4gaW1wYWN0LAo+ID4gbG93ZXIgcHJpb3JpdHkuCj4gPj0yMAo+ID49MjAKPiA+IFN1bW1hcnk6IG5vdGhpbmcgaXMgYWJhbmRvbmVkLCBidXQ6Cj4gPiAtIHNpbXBsZSBjYXNlczogbm8gdm9sdW50ZWVyIHRvIGRvIHRoZSBqb2IKPiA+IC0gaGFyZCBjYXNlczogaXMgdGhlcmUgYSB2b2x1bnRlZXIgZWl0aGVyIHRvIGRlZmluZSBhIHN0cmF0ZWd5IG9yIGRvIHNvPQptZQo+ID4gd29yawo+ID4gb24gaXQ/Cj4gPj0yMAo+ID49MjAKPiA+IFJlZ2FyZHMsCj4gPj0yMAo+ID4gSGVydj1DMz1BOQo+ID49MjAKPiA+IFsxXSBodHRwczovL2xpc3RzLmFwYWNoZS5vcmcvdGhyZWFkLmh0bWwvCj4gPiBlZGYzNjQyYTdiZGQ1MTVmMGNhZDQyMWMyNTU4OTc0MTgxOTQ0NjQ2MzYxNGJmMDUxNWU1NmRiZUAKPiA+ICUzQ2Rldi5tYXZlbi5hcGFjaGUub3JnJTNFCj4gPj0yMAo+ID4gWzJdIGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvTUFWRU4vR2l0Cj4gPiArTWlncmF0aW9uI0dpdE1pZ3JhdGlvbi1NaWdyYXRpbmdhbmFnZ3JlZ2F0b3J0cmVlaW50b2Fjb2xsZWN0aW9ub2ZnaXRyZT0KcG9zCj4gPj0yMAo+ID4gTGUgdmVuZHJlZGkgNiBvY3RvYnJlIDIwMTcsIDIwOjM1OjQ1IENFU1QgQXJuYXVkIEg9QzM9QTlyaXRpZXIgYSA9QzM9QTk9CmNyaXQgOgo+ID4gPiBCdXQgZGlkIHdlIGNvbXBsZXRlbHkgYWJhbmRvbmVkIHRoZSBpZGVhIG9mIG1vdmluZyBldmVyeXRoaW5nIHRvIGdpdCA/Cj4gPiA+IFRoZSBDSSBzZXR1cCB3YXMgdGhlIG1haW4gc3RvcCBmb3IgaXQgPwo+ID4gPj0yMAo+ID4gPiBPbiBGcmksIE9jdCA2LCAyMDE3IGF0IDg6MDUgUE0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmU9CmUuZnI+Cj4gPj0yMAo+ID4gd3JvdGU6Cj4gPiA+ID4gSSB3YXMgZXhwZWN0aW5nIHRoZSB1c3VhbCBsaXRhbnkKPiA+ID4gPj0yMAo+ID4gPiA+IHdoYXQgSSdtIG5vdCBjb25maWRlbnQgY3VycmVudGx5IHdpdGggcGlwZWxpbmUgb24gTWF2ZW4gY29yZSBpcyB0aGF0Cj4gPiA+ID4gd2UKPiA+ID4gPiBoYXZlCj4gPiA+ID4gZm9yIGV4YW1wbGUgdGhlICJtYXZlbi0zLngtamVua2luc2ZpbGUvTU5HLTYyNDIgLSBidWlsZCAjMSAtIG51bGwiCj4gPiA+ID4gbWVzc2FnZSwKPiA+ID4gPiB3aXRoIHRoaXMgIm51bGwiIHBhcnQgdGhhdCBtYWtlcyBtZSB3b25kZXIgaWYgd2UgYXJlIHVzaW5nIGl0IGFzCj4gPj0yMAo+ID4gZXhwZWN0ZWQuCj4gPj0yMAo+ID4gPiA+IEFuZCBmb3IgbGFyZ2UgbXVsdGktbW9kdWxlIHN2biB0cnVua3MgKHRoZSBvbmVzIHdlIGRvbid0IG1pZ3JhdGUgdG8KPiA+PTIwCj4gPiBnaXQ6Cj4gPiA+ID4gbWFpbmx5IHBsdWdpbnMgYW5kIHNoYXJlZCksIGlzIHRoZXJlIGEgc29sdXRpb24gdG8gcmVidWlsZCBqdXN0Cj4gPiA+ID4gY2hhbmdlZAo+ID4gPiA+IG1vZHVsZXM/Cj4gPiA+ID49MjAKPiA+ID4gPiBpZGVhbGx5LCB0aGUgcmVidWlsZCB3aGVuIGEgU05BUFNIT1QgZGVwZW5kZW5jeSBpcyBwdWJsaXNoZWQgd291bGQKPiA+ID4gPiBoYXZlCj4gPiA+ID4gYmVlbiBhCj4gPiA+ID4gcGx1cywgYnV0IHRoaXMgaXMgc3VmZmljaWVudGx5IGEgcmFyZSB1c2UgdGhhdCBJIHdvbid0IGJlIGV4dHJlbWlzdAo+ID4gPiA+PTIwCj4gPiA+ID49MjAKPiA+ID4gPiBUaGVuIElJVUMsIHRoaXMgbWlncmF0aW9uIGpvYiBpcyBvbmUgYWRkaXRpb25hbCBUT0RPIGZvciBtZS4uLgo+ID4gPiA+PTIwCj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPj0yMAo+ID4gPiA+IEhlcnY9QzM9QTkKPiA+ID4gPj0yMAo+ID4gPiA+IExlIHZlbmRyZWRpIDYgb2N0b2JyZSAyMDE3LCAxNzo0Njo1MyBDRVNUIEFybmF1ZCBIPUMzPUE5cml0aWVyIGEgPQo9QzM9QTljcml0IDoKPiA+ID4gPiA+IEkgYWdyZWUgdGhhdCB3ZSBzaG91bGQgdXNlIHBpcGVsaW5lIG5vd2RheXMKPiA+ID4gPiA+IHBlcmhhcHMgYSBzaGFyZWQgbGliIGlmIHdlIHdhbnQgdG8gc3RhbmRhcmRpemUgc29tZSBzdHVmZnMgYW5kIGEgPQpzZXQKPiA+PTIwCj4gPiBvZgo+ID49MjAKPiA+ID4gPiA+IG11bHRpLWJyYW5jaGVzIGpvYnMgKG9yIG9yZyBmb2xkZXIgYnV0IGl0IHJlcXVpcmVzIEdpdEh1YiA6KCApCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gT24gRnJpLCBPY3QgNiwgMjAxNyBhdCA5OjE2IEFNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+ID4gPiA+ID4gT24gRnJpIDYgT2N0IDIwMTcgYXQgMDY6MzIsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmPQpyZWUuZnI+Cj4gPiA+ID49MjAKPiA+ID4gPiB3cm90ZToKPiA+ID4gPiA+ID4gPiBJIGp1c3QgZml4ZWQgYSBmZXcgZmFpbGluZyBqb2JzIFsxXSB0byBoYXZlIGFnYWluIGEgdXNhYmxlCj4gPj0yMAo+ID4gSmVua2lucy4KPiA+PTIwCj4gPiA+ID4gPiA+ID4gTm93IEknbSBmYWNpbmcgc29tZSBpc3N1ZXMsIEkgc3VwcG9zZSBjYXVzZWQgYnkgbmV3ZXIgSmVua2lucwo+ID4gPiA+PTIwCj4gPiA+ID4gdmVyc2lvbnM6Cj4gPiA+ID4gPiA+ID4gLSBNYXZlbiAzLjAuNSBjYXVzZXMgTm9TdWNoTWV0aG9kRXJyb3I6Cj4gPiA+ID4gPiA+ID4gby5jLnBsZXh1cy51dGlsLnhtbC5wdWxsLgo+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiBNWFBhcnNlcgo+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+IFsyXQo+ID4gPiA+ID4gPiA+IC0gSSBoYWQgdG8gc3dpdGNoIHRvIEpESyA4IGZvciBtYXZlbi1wbHVnaW4tdG9vbHMgam9iLCBzaW5jZSA9CkpESwo+ID4gPiA+PTIwCj4gPiA+ID4gY2F1c2VzCj4gPiA+ID49MjAKPiA+ID4gPiA+ID4gPiBmYWlsdXJlcyAobG9va3MgbGlrZSBKZW5raW5zIHVzZXMgYSBoYWNrIHRvIGluamVjdCBKREsgNyBhcyBhCj4gPj0yMAo+ID4gdG9vbAo+ID49MjAKPiA+ID4gPiB3aGlsZQo+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gdGhlCj4gPiA+ID4gPiA+ID4gYnVpbGQgSlZNIGlzIEphdmEgOCkKPiA+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+IFNob3VsZCB3ZSBkcm9wIE1hdmVuIDMuMC41IGJ1aWxkcyBhbmQgSkRLIDc/Cj4gPiA+ID4gPiA+ID4gTm90aWNlIEkgZGlkbid0IGNoZWNrIHdoaWNoIGlzIHRoZSBtaW5pbXVtIE1hdmVuIHZlcnNpb24KPiA+PTIwCj4gPiByZXF1aXJlZC4uLgo+ID49MjAKPiA+ID4gPiA+ID4gPiBPciBwZXJoYXBzIHNpbXBseSBkb24ndCB1c2UgdGhlIEplbmtpbnMgTWF2ZW4gcGx1Z2luIHdpdGggdGhpcwo+ID49MjAKPiA+IE1hdmVuCj4gPj0yMAo+ID4gPiA+ID4gPiAzLjAuNQo+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+IG9yCj4gPiA+ID4gPiA+ID4gSkRLIDcgY29uZmlndXJhdGlvbjogZGVmYXVsdCBidWlsZCBhcyBKZW5raW5zIE1hdmVuIHBsdWdpbiB3aT0KdGgKPiA+PTIwCj4gPiBKREsKPiA+PTIwCj4gPiA+ID4gOCArCj4gPiA+ID49MjAKPiA+ID4gPiA+ID4gPiBsYXRlc3QKPiA+ID4gPiA+ID4gPiBNYXZlbiwgYW5kIG90aGVyIGNvbmZpZ3VyYXRpb25zIGFzIHNjcmlwdGVkIGpvYnM/Cj4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+IGh0dHA6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90LmllLzIwMTMvMTEvamVua2lucy1tYXZlbi1qb2ItPiA+Cj4gPiA+ID49MjAKPiA+ID4gPiB0eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sCj4gPiA+ID49MjAKPiA+ID4gPiA+ID4gPGh0dHA6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90LmllLzIwMTMvMTEvamVua2lucy0+ID4KPiA+ID4gPj0yMAo+ID4gPiA+IG1hdmVuLWpvYi10eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sP209M0QxPgo+ID4gPiA+PTIwCj4gPiA+ID4gPiA+IFdlIHNob3VsZCBzdG9wIHVzaW5nIHRoZSBldmlsIGpvYiB0eXBlIGFzIGl0PUUyPTgwPTk5cyBtaW5pbXVtID0KSmF2YQo+ID49MjAKPiA+IHZlcnNpb24gaXMKPiA+PTIwCj4gPiA+ID4gPiA+IGRpY3RhdGVkIGJ5IEplbmtpbnM9RTI9ODA9OTkgSmF2YSBtaW5pbXVtLgo+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+IFdlIG5lZWQgdG8gZGVmaW5lIG91ciBjb21tb24gc3RyYXRlZ3kgYW5kIGhhdmUgYSBjb25zaXN0ZW50Cj4gPiA+ID4gPiA+ID4gY29uZmlndXJhdGlvbgo+ID4gPiA+ID4gPiA+IGZvcgo+ID4gPiA+ID4gPiA+IGV2ZXJ5IGpvYiB1bmRlcnN0b29kIGJ5IGV2ZXJ5Ym9keQo+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiBJIHJlY29tbWVuZCBKZW5raW5zZmlsZSBhbmQgdGhlIGB3aXRoTWF2ZW5gIHdyYXBwZXIKPiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gSGVydj1DMz1BOQo+ID4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gWzFdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi8KPiA+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+IFsyXQo+ID4gPiA+ID4gPiA+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tPiA+Cj4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+IHBsdWdpbi10b29scy1qZGstMS43LzE2Mi9jb25zb2xlCj4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID49MjAKPiA+ID4gPiAtLS0tLS0tLS0KPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+ID4gLS0KPiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gU2VudCBmcm9tIG15IHBob25lCj4gPiA+ID49MjAKPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQo9MkQtCj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj0yMAo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4MTEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IERlYyAyMSAyMjozMToyNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4MTEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQkJBNzExNzI2MgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDIxIERlYyAyMDE3IDIyOjMxOjI0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzEyNjkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjEgRGVjIDIwMTcgMjI6MzE6MjQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMxMjAwIGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIERlYyAyMDE3IDIyOjMxOjI0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzExODkgaW52b2tlZCBieSB1aWQgOTkpOyAyMSBEZWMgMjAxNyAyMjozMToyNCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMjEgRGVjIDIwMTcgMjI6MzE6MjQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA5RTZGOTE4MDk2QwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjEgRGVjIDIwMTcgMjI6MzE6MjMgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMS4zClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xLjMgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgSkJhbFBvNG83NFppIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVGh1LCAyMSBEZWMgMjAxNyAyMjozMToyMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDYuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjhdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRTdFNTY1RjM5RAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjEgRGVjIDIwMTcgMjI6MzE6MjEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkNDEgd2l0aCBNRQoJaWQgb21YRTF3MDBTMjBVZmR5MDNtWEUyaDsgVGh1LCAyMSBEZWMgMjAxNyAyMzozMToxNSArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBUaHUsIDIxIERlYyAyMDE3IDIzOjMxOjE1ICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIERveGlhIFNpdGV0b29scyB2ZXJzaW9uIDEuOApEYXRlOiBUaHUsIDIxIERlYyAyMDE3IDIzOjMxOjE0ICswMTAwCk1lc3NhZ2UtSUQ6IDwyMTkzMTA3LmNpQTNOT2RUT05AZ2lnYT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN0JpdApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9InVzLWFzY2lpIgoKSGksCiAgICAKV2Ugc29sdmVkIDcgaXNzdWVzOgpodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/CnByb2plY3RJZD0xMjMxNzMyMCZ2ZXJzaW9uPTEyMzM5NjEzJnN0eWxlTmFtZT1UZXh0CiAgICAKVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cmh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJTNEJTIwRE9YSUFTSVRFVE9PTFMKJTIwQU5EJTIwc3RhdHVzJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDCiAgICAKU3RhZ2luZyByZXBvOgpodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzg0LwpodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzg0L29yZy9hcGFjaGUvCm1hdmVuL2RveGlhL2RveGlhLXNpdGV0b29scy8xLjgvZG94aWEtc2l0ZXRvb2xzLTEuOC1zb3VyY2UtcmVsZWFzZS56aXAKICAgIApTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKZG94aWEtc2l0ZXRvb2xzLTEuOC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogCjAwNTFhZjNkYTJiYTYzMmE5ZTBmNzUzYjBmZmJjMTUzNTg5ODZjY2QKICAgIApTdGFnaW5nIHNpdGU6Cmh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL2RveGlhL2RveGlhLXNpdGV0b29scy1hcmNoaXZlcy9kb3hpYS1zaXRldG9vbHMtTEFURVNULwogICAgCkd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgpodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAogICAgClZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCiAgICAKWyBdICsxClsgXSArMApbIF0gLTEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDAxMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgU2VwIDEzIDE3OjM0OjI2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDAxMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA1NUI5MjFBMzY4Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMTMgU2VwIDIwMTcgMTc6MzQ6MjYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxODQwNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMyBTZXAgMjAxNyAxNzozNDoyNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTgzMTcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTMgU2VwIDIwMTcgMTc6MzQ6MjUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxODI5NyBpbnZva2VkIGJ5IHVpZCA5OSk7IDEzIFNlcCAyMDE3IDE3OjM0OjI1IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAxMyBTZXAgMjAxNyAxNzozNDoyNSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDhDRjEwQ0E0RTM7CglXZWQsIDEzIFNlcCAyMDE3IDE3OjM0OjI0ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTIuNwpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMi43IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgU1BGX1BBU1M9LTAuMDAxLCBVUklCTF9CTE9DS0VEPTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBhNXdEekZhaHBLM3k7IFdlZCwgMTMgU2VwIDIwMTcgMTc6MzQ6MjMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbW91dC5nbXgubmV0IChtb3V0LmdteC5uZXQgWzIxMi4yMjcuMTcuMjJdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRDc5RTM1RkI5NjsKCVdlZCwgMTMgU2VwIDIwMTcgMTc6MzQ6MjIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gS2FybC1IZWluenMtTWFjQm9vay1Qcm8uZnJpdHouYm94IChbMTc4LjEyLjg4LjE3M10pIGJ5CiBtYWlsLmdteC5jb20gKG1yZ214MTAxIFsyMTIuMjI3LjE3LjE2OF0pIHdpdGggRVNNVFBTQSAoTmVtZXNpcykgaWQKIDBMc1B3YS0xZFBjN2o0NGpJLTAxMXl4STsgV2VkLCAxMyBTZXAgMjAxNyAxOTozNDoxNiArMDIwMApSZXBseS1UbzogaW5mb0Bzb2ViZXMuZGUKU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBKTW9kIFBsdWdpbiB2ZXJzaW9uIDMuMC4wLWFscGhhLTEKIChGaXJzdCBQdWJsaWMgUmVsZWFzZSkKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LAogUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8N2Y2Mjc3NjEtMjYyZi1lZDBkLTE0MzItZTJmMzA1YWFiYzdhQGdteC5kZT4KIDxvcC55NmUwd3J0bGtka2hyckBkZXNrdG9wLTJraHNrNDQ+CkZyb206IEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPgpNZXNzYWdlLUlEOiA8MjFiNWQwYjEtZGY1MS03Yzg2LWZhN2YtNzkyMjUwNzkwZjkwQGdteC5kZT4KRGF0ZTogV2VkLCAxMyBTZXAgMjAxNyAxOTozNDoxNSArMDIwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMTsgcnY6NTIuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzUyLjIuMQpNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPG9wLnk2ZTB3cnRsa2RraHJyQGRlc2t0b3AtMmtoc2s0ND4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLUdCCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6OUxVeFVGeHEwYjZZb05vcWRlajJVUllCTWV4NVhacDI0K2lMd2VqeXM0Y1ZUankwallkCiBGRUxUa1hXUDJPa004bHVOM1JkK29GQjN1d1FKaWI5V3hQWDFVVXR3cU9vYkE0VDh1a3IvZ0Rja2t4ZTFuOVhNdmpjcEhTbAogdGNCUlBMZlF6T09MWEp6K1E4TytRamllUHhibGZPT09RaTVlTitSLzVPTWJhaXFnb1FwNWVnOXYyZ3JHRTc5LzFEY1d0aW4KIFdGNm82WUdjK0kzVnBSVFR0S1VGZz09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6WUVLbi9XS21GTUU9OllTdUNDbDdkblUwaGJSMnQ0czBpcncKIGJGdzd1V2dlZ2NGU3FCMDJ3aThERWlZSWk1ZkNIZ0poNTUzbEpBckZNQ3hvekdvcmFqd1l6eWFOVDkrdDQxSVdQY3N1dXVXenMKIGE2MjJvaG9yWCs3ZUNIb3dHcm5ZNnNqMGRrR2VONjJ0cnBhMGFxVmdxeTdEb21BamZGRmFKUDBzOVZ1KzljbEJHWDd3ckJrWWEKIHpQTGJtRmN6UjRFL1NXZk5HWkxIMXBBVU9xTUlvbDhrZis4K1lJdEoyb1pRdTFRUVBjOFFQY0p6ai9HNDFqdXlEMU01YWdqdjkKIGh5WnF2L2d5U2NuUktrT1dEOVJsOUFQdDZNSzZjcXlMakdYbGVTUFJjeGM0bU05aTN6SmFWaFg3YzJSMk1KZGRNNGpkTC9JdWUKIDdWeDNkZ3B1blo4WCsrQTcvblFGOE1CaXpXZ0ZDZXM2TDF1bERNOFd2ZDRJSmw1aUhGQnFGMzdxcExIWFNFZ3lhdnVvR044cDUKIHVYeGZPTVIwTmM0ams1MmFIdGtONDY4V2NRTStqS1U1M2ZnOVVmeGZiWHRHbGxONEp2bHZvbUZxQlJ2VkxzbUZtOFNLTnczQloKIHplRkZ5SzN0RnlmbDJ1OWRJbnhGcDFiMjdNeTdVdGhLRU1va3BPQmNsNUtGMEl3VktKWmJadzRMbnZ1bEF5MzNlYi9UUTh5UkEKIE1IblVIalBWdjduWUVpNVhkS2krV2M1MStqdHA2WGtkK2plNEdTcHN5T25xM3Z3eUNHS2xJOWpCRkQ2Y29Kb0pxNGFlMWZ5VlgKIGN2SzU3VWFNb21OMmp6Z0RIQUdGMzBtb0M5VDg2ZHoxU2FXa285eFp2RE83ZW1LV2g4aitNM0ZocTcyYnhLWmtkdDNtcVhPbCsKIDU5WU0xMkM1ckI4TlRBMlBnbVkwNXgxcjZ3bnU2OVlxdG1Fay9OVTc4eUhQMjUzTzhrU3RtRzVYNUE1anduVHhEcHNyVmZKMXgKIFloUm4rVVdJbGRldjBIeXltdDY4SUpOUXM1REZpbUdiNGdwZlJNb1VyMFE5TG5VR2I3bzZaNmdwK1dadXY5KzQ1em1ocm4wMjIKIDhpMGt2bUY4Rmg0a2JRSkdkKzFTR1Q1c3BIUHk2R2JGR0QvRlNqY0lCRFFQbGhNMzdrPQoKSGkgUm9iZXJ0LAoKT24gMTEvMDkvMTcgMjE6MTEsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+IEhpLAo+IAo+IGlzbid0IGl0IHdlaXJkIHRoYXQgam1vZDpjcmVhdGUgaGFzIHBhcmFtZXRlcnMgZm9yIGNsYXNzcGF0aCBhbmQgCj4gbW9kdWxlcGF0aD8KPiB3aHkgbm90IHN0YXJ0IHVzaW5nIHRoZSBkZXBlbmRlbmNpZXMgYXMgc3BlY2lmaWVkIGluIHRoZSBwb20/Cj4gCj4gYW5kIHRoZSBwbHVnaW4gc2hvdWxkbid0IHVzZSBhcnRpZmFjdElkIGFzIGRlZmF1bHQgZm9yIHRoZSBtb2R1bGVuYW1lLgo+IEN1cnJlbnQgYmVzdCBwcmFjdGljZSBpcyB0byBpbmNsdWRlIHRoZSBwYWNrYWdlbmFtZSBhcyBuYW1lc3BhY2UuCj4gQW5kIGlmIHRoZSBtb2R1bGUtaW5mby5jbGFzcyBpcyB0aGVyZSwgaXQgaXMgYWxzbyBwb3NzaWJsZSB0byBleHRyYWN0IAo+IHRoaXMgdmFsdWUgd2l0aCBwbGV4dXMtamF2YQo+IAo+IEknbSBzb3JyeSwgYnV0IEkgaGF2ZSB0byBnaXZlIHRoaXMgYSAtMS4KCk5vIG5lZWQgdG8gYXBwbG9naXplLi4uVmVyeSBnb29kIGhpbnRzLi4uCgo+IEkgY2FuIGhlbHAgZml4IHRoZXNlIHRoaW5ncy4KCj4gCj4gUm9iZXJ0Cj4gCj4gCj4gT24gU2F0LCAwOSBTZXAgMjAxNyAxNTo1MjoyNCArMDIwMCwgS2FybCBIZWlueiBNYXJiYWlzZSAKPiA8a2htYXJiYWlzZUBnbXguZGU+IHdyb3RlOgo+IAo+PiBIaSwKPj4KPj4gdGhpcyBpcyB0aGUgVk9URSBmb3IgdGhlIGZpcnN0IHB1YmxpYyByZWxlYXNlIGZvciBNYXZlbiBKTW9kIFBsdWdpbi4uLgo+Pgo+PiBXZSBzb2x2ZWQgMSBpc3N1ZXM6Cj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZWN0SWQ9MTIzMjE0MzMmdmVyc2lvbj0xMjM0MTM2MyAKPj4KPj4KPj4gVGhlcmUgYXJlIGN1cnJlbnRseSBubyBpc3N1ZXMgbGVmdCBpbiBKSVJBLgo+Pgo+PiBJZiB5b3UgaGF2ZSBhbnkgaXNzdWUgdG8gcmVwb3J0IHBsZWFzZSBvcGVuIGFuIGlzc3VlIGluIEpJUkEKPj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3Byb2plY3RzL01KTU9ECj4+Cj4+IFN0YWdpbmcgcmVwbzoKPj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2MS8KPj4KPj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2MS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4tam1vZC1wbHVnaW4vMy4wLjAtYWxwaGEtMS9tYXZlbi1qbW9kLXBsdWdpbi0zLjAuMC1hbHBoYS0xLXNvdXJjZS1yZWxlYXNlLnppcCAKPj4KPj4KPj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4+IFtOQU1FLU9GXS1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogCj4+IDgwMDI3NjdmNmNmZmM3YmJiY2Y3NmE4ZTdmMGMxNzk5YTQyY2FmOTMKPj4KPj4gU3RhZ2luZyBzaXRlOgo+PiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1qbW9kLXBsdWdpbi1MQVRFU1QvCj4+Cj4+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+PiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+Pgo+PiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+Pgo+PiBbIF0gKzEKPj4gWyBdICswCj4+IFsgXSAtMQo+Pgo+PiBLaW5kIHJlZ2FyZHMKPj4gS2FybCBIZWlueiBNYXJiYWlzZQo+Pgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+IAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+IAo+IAoKCk1pdCBmcmV1bmRsaWNoZW0gR3J1w58KS2FybC1IZWlueiBNYXJiYWlzZQotLSAKU29mdHdhcmVFbnR3aWNrbHVuZyBCZXJhdHVuZyBTY2h1bHVuZyAgICBUZWwuOiArNDkgKDApIDI0MDUgLyA0MTUgODkzCkRpcGwuSW5nLihGSCkgS2FybC1IZWlueiBNYXJiYWlzZSAgICAgICAgVVN0LklkTnI6IERFMTkxMzQ3NTc5CkhhdXB0c3RyYXNzZSAxNzcKNTIxNDYgV8O8cnNlbGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5zb2ViZXMuZGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDU0Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gTm92IDE5IDE3OjU5OjEwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDU0Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyNDMzQTEwN0RBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMTkgTm92IDIwMTcgMTc6NTk6MTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2OTAyMiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOSBOb3YgMjAxNyAxNzo1OTowOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjg5MzcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTkgTm92IDIwMTcgMTc6NTk6MDkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2ODkyNiBpbnZva2VkIGJ5IHVpZCA5OSk7IDE5IE5vdiAyMDE3IDE3OjU5OjA5IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxOSBOb3YgMjAxNyAxNzo1OTowOSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEFBOTRBMTgwNjQzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxOSBOb3YgMjAxNyAxNzo1OTowOCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBqT0xnbUNXOFc3WjQgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sIDE5IE5vdiAyMDE3IDE3OjU5OjA2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwOS5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEzMV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAzODQzMTVGM0ZFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxOSBOb3YgMjAxNyAxNzo1OTowNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQxNyB3aXRoIE1FCglpZCBidHowMXcwMEQyMFVmZHkwM3R6MFEwOyBTdW4sIDE5IE5vdiAyMDE3IDE4OjU5OjAwICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFN1biwgMTkgTm92IDIwMTcgMTg6NTk6MDAgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogRG93bmxvYWQgbGlua3MKRGF0ZTogU3VuLCAxOSBOb3YgMjAxNyAxODo1OTowMCArMDEwMApNZXNzYWdlLUlEOiA8MjIwMjI1NC5pYm9NUDVCdGFBQGdpZ2E+CkluLVJlcGx5LVRvOiA8MzQ2MDU3Ni5zTE1ZVnBoT3R1QGdpZ2E+ClJlZmVyZW5jZXM6IDxvcC55OXVoNG55d2tka2hyckBkZXNrdG9wLTJraHNrNDQ+IDwxNTUyNjAxLnFsbTAzZ0M4SnRAZ2lnYT4gPDM0NjA1NzYuc0xNWVZwaE90dUBnaWdhPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCmlzc3VlIGZpeGVkLCBhbmQgZXZlbiBtb3JlISEhCmV2ZXJ5IGlzc3VlIHdpdGggcmV3cml0ZSBydWxlcyBhcmUgZml4ZWQ6IHRoZW5rcyB0byBTZWJiIGlkZWEsIEkgcmVwbGFjZWQgdD0KaGU9MjAKcmV3cml0ZSBydWxlcyB3aXRoIHN5bWxpbmtzCgpub3cgaXQncyBlYXN5IHRvIHVuZGVyc3RhbmQgKGV2ZW4gdGhlIG1pcnJvciBzY3JpcHQgY2FuKSBhbmQgZXZlcnl0aGluZyB3b3I9CmtzPTIwCmFzIGV4cGVjdGVkOiBubyBtb3JlIC9jb21wb25lbnRzIHJlZGlyZWN0aW9uIHdoZW4geW91IGZvcmdvdCB0cmFpbGluZyAvIG9uID0KYT0yMApkaXJlY3RvcnkKCgp3b3csIHRoYXQncyBnb29kIHRvIGZpeCBzdWNoIGEgbG9uZ3N0YW5kaW5nIGlzc3VlLi4uCgpSZWdhcmRzLAoKSGVydj1FOQoKTGUgc2FtZWRpIDE4IG5vdmVtYnJlIDIwMTcsIDEzOjAzOjQ4IENFVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiBmb3VuZCBzb21ldGhpbmcgdGhhdCBjYW4gZXhwbGFpbjogd2hlbiB1c2luZyB0aGUgcmVhbCB1cmwgc3RhcnRpbmcgd2l0aCAvCj4gY29tcG9uZW50cy8sIHRoZSBDR0kgc2NyaXB0IHdvcmtzIFs0XQo+IEJ1dCBub3Qgd2hlbiB1c2luZyB0aGUgdXNlci12aXNpYmxlIHVybCAodGhhdCB1c2VzIC5odGFjY2VzcyByZXdyaXRlIHJ1bGU9CnMpCj4gWzVdCj49MjAKPiBJTkZSQSBKaXJhIGlzc3VlIG9wZW5lZDogaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9JTkZSQS0xNTUxMwo+PTIwCj4gUmVnYXJkcywKPj0yMAo+IEhlcnY9RTkKPj0yMAo+PTIwCj4gWzRdIGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9jb21wb25lbnRzL3BsdWdpbnMvbWF2ZW4tamRlcHJzY2FuLXBsdWdpbi8KPiBkb3dubG9hZC5jZ2kKPj0yMAo+IFs1XSBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy9tYXZlbi1qZGVwcnNjYW4tcGx1Z2luL2Rvd25sb2FkLmNnaQo+PTIwCj4gTGUgc2FtZWRpIDE4IG5vdmVtYnJlIDIwMTcsIDAxOjE4OjI3IENFVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiA+IG9rLCB4ZG9jL2Rvd25sb2FkLnhtbC52bSB3YXMgbWlzc2luZyBmb3IgdGhpcyBuZXcgcGx1Z2luOiBJIGFkZGVkIGl0IGFuZAo+ID4gbWFudWFsbHkgYWRkZWQgYSBnZW5lcmF0ZWQgaHRtbCByZXN1bHQgdG8gc3ZucHVic3ViIGxvY2F0aW9uIFsxXQo+ID49MjAKPiA+IHRoaXMgaXMgbm90IHlldCBzdWZmaWNpZW50OiBJIGRvbid0IGtub3cgd2h5IGRvd25sb2FkLmNnaSBzY3JpcHQgZG9lcyBuPQpvdAo+ID4gZmluZCBkb3dubG9hZC5odG1sCj4gPj0yMAo+ID4gdGhpcyBpcyB3b3JraW5nIG9uIG1haW4gTWF2ZW4gc2l0ZSBbMl0gZnJvbSBpdHMgb3duIHN2bnB1YnN1YiBsb2NhdGlvbiA9ClszXQo+ID49MjAKPiA+IGFueSBoaW50Pwo+ID49MjAKPiA+IFJlZ2FyZHMsCj4gPj0yMAo+ID4gSGVydj1FOQo+ID49MjAKPiA+IFsxXQo+ID4gaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL21hdmVuL2NvbXBvbmVudHMvCj4gPiBwbHVnaW5zL21hdmVuLWpkZXByc2Nhbi1wbHVnaW4vCj4gPj0yMAo+ID4gWzJdIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL2Rvd25sb2FkLmNnaQo+ID49MjAKPiA+IFszXSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vbWF2ZW4vY29udGVuPQp0Lwo+ID49MjAKPiA+IExlIHZlbmRyZWRpIDE3IG5vdmVtYnJlIDIwMTcsIDEyOjQ3OjUxIENFVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiA+ID4gdGhlIGRlZXBsaW5rIHVzZWQgdG8gd29yazogdGhhdCdzIHRoZSBvYmplY3RpdmUgb2Ygb3VyCj4gPiA+ICJyZXNvdXJjZXMvZG93bmxvYWQuY2dpICsgeGRvYy9kb3dubG9hZC54bWwudm0iIHBhdHRlcm4gdGhhdCB3YXMgY3JlYT0KdGVkCj4gPiA+IHNvbWUgeWVhcnMgYWdvLgo+ID4gPiBkb3dubG9hZC5jZ2kgaXMgc3VwcG9zZWQgdG8gdXNlIHN0YW5kYXJkIEFTRiBzY3JpcHQgdGhhdCB1c2VzCj4gPiA+IGRvd25sb2FkLmh0bWwKPiA+ID4gYXMgY29udGVudAo+ID4gPj0yMAo+ID4gPiBJIGRvbid0IGtub3cgd2h5IHRoaXMgZG9lcyBub3Qgd29yayBhbnkgbW9yZS4KPiA+ID49MjAKPiA+ID4gSSB2YWd1ZWx5IHJlbWVtYmVyIHNvbWV0aGluZyBhIGZldyB5ZWFycyBhZ28gYWJvdXQgZXhlY3V0YWJsZSBiaXQsIHNvPQptZQo+ID4gPiBoZWFkYWNoZSBJIGhhZCBhdCB0aGF0IHRpbWUgdG8gdHJ5IHRvIGZpeCB3b3JraW5nIHdpdGggaW50ZXJlc3RlZCBwZW89CnBsZQo+ID4gPiAoaWUuIG5vdCBtYW55LCBidXQgU2ViYiB3YXMgcHJvYmFibHkgb25lIG9mIHRoZSBmZXcpLiBQZXJoYXBzIGl0J3MgdGk9Cm1lCj4gPiA+IHRvCj4gPiA+IHJld29yayBvbiBpdDogSSdsbCBzZWUgdG9uaWdodCBpZiBJIGNhbiBmaW5kIHJlZmVyZW5jZXMgb24gdGhlIGFuYWx5cz0KaXMKPiA+ID4gYWxyZWFkeSBkb25lIGF0IHRoYXQgdGltZS4KPiA+ID49MjAKPiA+ID4gUmVnYXJkcywKPiA+ID49MjAKPiA+ID4gSGVydj1FOQo+ID4gPj0yMAo+ID4gPiBMZSB2ZW5kcmVkaSAxNyBub3ZlbWJyZSAyMDE3LCAxMjoyNzo0OSBDRVQgUm9iZXJ0IFNjaG9sdGUgYSA9RTljcml0IDoKPiA+ID4gPiBUaGlzIHRvcGljIGRlc2VydmVzIGEgc2VwYXJhdGUgbWFpbHRocmVhZC4KPiA+ID4gPj0yMAo+ID4gPiA+IFF1b3RpbmcgU2ViYiBvbiBhIGRpZmZlcmVudCB0aHJlYWQ6Cj4gPiA+ID4gIlRoZSBkb3dubG9hZCBsaW5rIHBvaW50cyB0byB0aGUgdG9wLWxldmVsIG9mIHRoZSBBU0YgbWlycm9yIHN5c3RlbS4KPiA+ID4gPj0yMAo+ID4gPiA+IFRoaXMgbWFrZXMgaXQgdmVyeSBoYXJkIHRvIHVzZS4iCj4gPiA+ID49MjAKPiA+ID4gPiBBRkFJSyB0aGUgQVNGIHNheXMgdGhlcmUgc2hvdWxkIGJlIGEgZG93bmxvYWQgYnV0dG9uIGZvciBldmVyeQo+ID4gPiA+IHJlbGVhc2VkCj4gPiA+ID4gcHJvZHVjdC4KPiA+ID4gPiBJbiBjYXNlIG9mIE1hdmVuIHdlJ3JlIHRhbGtpbmcgYWJvdXQgYSBsb3Qgb2YgcHJvamVjdHMsIGFuZCBkb3dubG9hPQpkcwo+ID4gPiA+IHNob3VsZCBiZSByZWRpcmVjdGVkIHZpYSBhIG1pcnJvci4KPiA+ID4gPiBJIGRvbid0IHRoaW5rIGl0IGlzIHBvc3NpYmxlIHRvIGRvIGEgZGVlcGxpbmsgdG8gYSBzcGVjaWZpYyBmb2xkZXIuCj4gPiA+ID49MjAKPiA+ID4gPiBBbHNvLCBpbiBjYXNlIG9mIE1hdmVuIHBsdWdpbnMgYW5kIG90aGVyIGRlcGVuZGVuY2llcyAoYWxsIGV4Y2x1ZGluZwo+ID4gPiA+IHRoZQo+ID4gPiA+IE1hdmVuIGRpc3RyaWJ1dGlvbiBpdHNlbGYpIGl0IGlzIGtpbmQgb2Ygc3RyYW5nZSB0byBwcm92aWRlIGEgZG93bmw9Cm9hZAo+ID4gPiA+IGxpbmsgd2hlbiB3ZSBjb3VsZCBhc3N1bWUgdGhhdCB0aGV5IG9ubHkgd2FudCB0byBoYXZlIHRoZQo+ID4gPiA+IHBsdWdpbi9kZXBlbmRlbmN5IFhNTCBmcmFnbWVudC4KPiA+ID4gPj0yMAo+ID4gPiA+IEkgYWdyZWUgdGhhdCB0aGUgbGluayBpcyBraW5kIG9mIHVzZWxlc3MgcmlnaHQgbm93LCBidXQgYWxzbyB0aGUgYmU9CnN0Cj4gPiA+ID4gd2UKPiA+ID4gPiBjYW4gZG8gd2hlbiBwcm92aWRpbmcgYSBkaXJlY3QgZG93bmxvYWQgbGluay4KPiA+ID4gPiBJZiB0aGVyZSdzIG5vIHdheSB0byBkbyBhIGRlZXBsaW5rLCBJJ2QgcHJlZmVyIHRvIHJlbW92ZSBpdCBmcm9tIHRoZQo+ID4gPiA+IHBhZ2VzCj4gPiA+ID4gYW5kIGFubm91bmNlbWVudHMuCj4gPiA+ID49MjAKPiA+ID4gPiB0aGFua3MsCj4gPiA+ID4gUm9iZXJ0Cj4gPiA+ID49MjAKPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQo9MkQtCj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+PTIwCj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj0yMAo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PTIwCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDEwNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgU2VwIDI2IDIyOjUyOjQ4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDEwNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDNEY2MjEwMUYwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMjYgU2VwIDIwMTcgMjI6NTI6NDggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyMjA1OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBTZXAgMjAxNyAyMjo1Mjo0OCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjE5NzkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjYgU2VwIDIwMTcgMjI6NTI6NDggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMTk2OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI2IFNlcCAyMDE3IDIyOjUyOjQ4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAyNiBTZXAgMjAxNyAyMjo1Mjo0OCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDlGRkM4Qzg3QTQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDI2IFNlcCAyMDE3IDIyOjUyOjQ3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEuOApYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMS44IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFZkb0w0emhqOVFTSyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVR1ZSwgMjYgU2VwIDIwMTcgMjI6NTI6NDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDEyLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTM0XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDdDNDQ1NUY2NjYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDI2IFNlcCAyMDE3IDIyOjUyOjQ2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDQ3IHdpdGggTUUKCWlkIEVOc2YxdzAwRzIwVWZkeTAzTnNmRjg7IFdlZCwgMjcgU2VwIDIwMTcgMDA6NTI6NDAgKzAyMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogV2VkLCAyNyBTZXAgMjAxNyAwMDo1Mjo0MCArMDIwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IEFwYWNoZSBNYXZlbiBEZXYgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBbSEVMUCBXQU5URURdIGZpeCB0ZXJtaW5hbCBkZXRlY3Rpb24gZm9yIEN5Z3dpbi9NaW5ndyBpbiBqYW5zaS1uYXRpdmUKRGF0ZTogV2VkLCAyNyBTZXAgMjAxNyAwMDo1MjozOSArMDIwMApNZXNzYWdlLUlEOiA8MjMwMDk3My5IQTh1R01SUjg5QGdpZ2E+ClVzZXItQWdlbnQ6IEtNYWlsLzUuMi4zIChMaW51eC80LjEwLjAtMzUtZ2VuZXJpYzsgS0RFLzUuMzEuMDsgeDg2XzY0OyA7ICkKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpJdCBzZWVtcyB3ZSBmb3VuZCB0aGUgY2F1c2UgZm9yIEphbnNpIG5vdCBhY3RpdmF0aW5nIEFOU0kgY29sb3Igd2l0aCBDeWd3aW4vCk1pbmd3OiB0aGVyZSBpcyBzb21lIFdpbmRvd3MgbmF0aXZlIGNvZGUgdG8gYWRkIHRvIGRldGVjdCBDeWd3aW4vTWluZ3cKCnNlZSBodHRwczovL2dpdGh1Yi5jb20vZnVzZXNvdXJjZS9qYW5zaS1uYXRpdmUvaXNzdWVzLzExCgpXaGF0IGhhcyB0byBiZSBkb25lIHNlZW1zIHdlbGwgZGVmaW5lZCAoc2luY2UgdGhhdCdzIGEgdHJpY2sgdGhhdCBnaXQgaXRzZWw9CmY9MjAKZGlkKSwgYnV0IEkgZG9uJ3QgaGF2ZSBrbm93bGVkZ2Ugbm9yIGNvbXBpbGVyIHRvIGFjdHVhbGx5IHByb3Bvc2UgYW49MjAKaW1wbGVtZW50YXRpb24KCklzIGFueWJvZHkgaW4gTWF2ZW4gY29tbXVuaXR5IGFibGUgdG8gaW1wbGVtZW50IHRoZSBmaXggYW5kIHByb3Bvc2UgYSBQUj8gST0KJ2xsPTIwCmNvb3JkaW5hdGUgd2l0aCBKYW5zaSBjb21tdW5pdHkgdG8gaGF2ZSB0aGUgUFIgbWVyZ2VkLgoKVGhhbmtzIGluIGFkdmFuY2UKCkhlcnY9RTkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDg1Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgRGVjIDI4IDA4OjMwOjA4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg1Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFMzRGNTE3ODMxCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjggRGVjIDIwMTcgMDg6MzA6MDggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3MjQ3NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBEZWMgMjAxNyAwODozMDowOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzIzNzAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggRGVjIDIwMTcgMDg6MzA6MDggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MjI2NSBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IERlYyAyMDE3IDA4OjMwOjA4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyOCBEZWMgMjAxNyAwODozMDowOCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEJGQTVEQzIyQzgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDI4IERlYyAyMDE3IDA4OjMwOjA3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS40OTkKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjQ5OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFJaSFd3WTFTWEpqSiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVRodSwgMjggRGVjIDIwMTcgMDg6MzA6MDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDA1LnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI3XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEFGMEE4NUZCMjkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDI4IERlYyAyMDE3IDA4OjMwOjA2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDYyIHdpdGggTUUKCWlkIHJMVzUxdzAwSDIwVWZkeTAzTFc1bjU7IFRodSwgMjggRGVjIDIwMTcgMDk6MzA6MDUgKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogVGh1LCAyOCBEZWMgMjAxNyAwOTozMDowNSArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNjOiBNYXZlbiBQcm9qZWN0IE1hbmFnZW1lbnQgQ29tbWl0dGVlIExpc3QgPHByaXZhdGVAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogW1JFU1VMVF0gW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIFBERiBQbHVnaW4gdmVyc2lvbiAxLjQKRGF0ZTogVGh1LCAyOCBEZWMgMjAxNyAwOTozMDowNSArMDEwMApNZXNzYWdlLUlEOiA8MjMxMTk0NC4zRENTTFZFVWpFQGdpZ2E+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKSGksCiAgID0yMApUaGUgdm90ZSBoYXMgcGFzc2VkIHdpdGggdGhlIGZvbGxvd2luZyByZXN1bHQ6CiAgID0yMAorMSA6IFJvYmVydCBTY2hvbHRlLCBLYXJsIEhlaW56IE1hcmJhaXNlLCBIZXJ2PUU5IEJvdXRlbXkKICAgPTIwClBNQyBxdW9ydW0gcmVhY2hlZAogICA9MjAKSSB3aWxsIHByb21vdGUgdGhlIGFydGlmYWN0cyB0byB0aGUgY2VudHJhbCByZXBvLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODQ4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBEZWMgMjcgMTI6MzE6NDEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODQ4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDM4Nzk5MTc3QjUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyNyBEZWMgMjAxNyAxMjozMTo0MSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDU4MjgwIGludm9rZWQgYnkgdWlkIDUwMCk7IDI3IERlYyAyMDE3IDEyOjMxOjQwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1ODIxNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBEZWMgMjAxNyAxMjozMTo0MCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU4MjA0IGludm9rZWQgYnkgdWlkIDk5KTsgMjcgRGVjIDIwMTcgMTI6MzE6NDAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDI3IERlYyAyMDE3IDEyOjMxOjQwICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRTY0MkMxODA1QTUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDI3IERlYyAyMDE3IDEyOjMxOjM5ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuMjAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjIwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwKCVNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgUDhEbjlkbExyaU5HIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJV2VkLCAyNyBEZWMgMjAxNyAxMjozMTozOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNS4xNV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA1RDA2NjVGMzBCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyNyBEZWMgMjAxNyAxMjozMTozOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBLYXJsLUhlaW56cy1NYWNCb29rLVByby5sb2NhbCAoWzkyLjIwNC4zMC4xOV0pIGJ5IG1haWwuZ214LmNvbQogKG1yZ214MDAyIFsyMTIuMjI3LjE3LjE5MF0pIHdpdGggRVNNVFBTQSAoTmVtZXNpcykgaWQKIDBNN3BJMC0xZXE1UlIxWUhvLTAwdk9NbDsgV2VkLCAyNyBEZWMgMjAxNyAxMzozMTozNyArMDEwMApSZXBseS1UbzogaW5mb0Bzb2ViZXMuZGUKU3ViamVjdDogUmU6IG1hdmVuLWFyY2hpdmVyIGJ1aWxkIG9uIEplbmtpbnMgLSBUZXN0IEZhaWx1cmVzClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwKIFN5bHdlc3RlciBMYWNoaWV3aWN6IDxzbGFjaGlld2ljekBnbWFpbC5jb20+CkNjOiBpbmZvQHNvZWJlcy5kZQpSZWZlcmVuY2VzOiA8OTUwZGUyODAtNTkyOC00ZmUzLWFjYTgtMDkyMzQxNTI0YzY2QGdteC5kZT4KIDxDQUxhVGVDbzAtLV9wNmR1TkYzYzAzY1ZGTzRYdlR2bzNZbmR3Q2pfSDc0WFJ2b3daQWdAbWFpbC5nbWFpbC5jb20+CiA8Q0FMYVRlQ3BiWjlhQytxZFNrVDFSTTJoQnFFPU1jX2JMdmJmQUNIaC1zZ1V5bkg0OFB3QG1haWwuZ21haWwuY29tPgogPENBSkc3RFgxU2RheHdvSks1cWpjMTIwRmRlSENaT0hSemlvZWJtRXdHcWd6NWtYbTE2d0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+Ck1lc3NhZ2UtSUQ6IDwyMzdiMjAxNS03MzBiLTY1OWEtMWZiYy00NTFhNGJlNDQyOGRAZ214LmRlPgpEYXRlOiBXZWQsIDI3IERlYyAyMDE3IDEzOjMxOjM3ICswMTAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwLjExOyBydjo1Mi4wKQogR2Vja28vMjAxMDAxMDEgVGh1bmRlcmJpcmQvNTIuNS4wCk1JTUUtVmVyc2lvbjogMS4wCkluLVJlcGx5LVRvOiA8Q0FKRzdEWDFTZGF4d29KSzVxamMxMjBGZGVIQ1pPSFJ6aW9lYm1Fd0dxZ3o1a1htMTZ3QG1haWwuZ21haWwuY29tPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDpOWVlyRnFQV2VWWjhOcDUwY1lxeUsxTFozRE5adS9PUmQ4NVMvTHdHWitJWDMyVzdhc1UKIFZndm9xWitoa290dHREQ3ltelg0K1gwR2FoVEd0QTBubjJ0QjhITXBSNWcyMDJla1l0MXJvWTE1Ly9yZlZVdXNLRDBKMzJwCiAxWkgzLzZtZUFMN3A2QWUyYkZDNGdVSjNhWjV3UlJUbEVUMERmUGpMc3J1MUdrNkF5TmFiUTFJUmFVcGRQZmlOL1hQUUQwaAogdENNekFOQXFNc1BQdWdnR3NGQW9nPT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDpyRWtpQ0VPYnMrOD06VmdpYTRHeWYxM3c1T2NNNVVxSkNuLwogNXFOQ3BEaTJONm5MaXI1c2ZPc2pCL0tTVjQveXM1ajdrUVdLUnp4a1p6SWtTZmRyQXFuRlNaT29INHFOL1ZFR2tCYmVSS3ZKbwogNHZGVDVUMERoci9XVS9QWlVKSlZna2dNd1lQVWx6MWZwbkQ1NFFvUXhsakpOSmwxZjhZZ3FZUXdyOXg5akZkQTU1bzEvMExPUwogMHdjOXEzYS8wUmlIR1dxUWhwcElSa3ZGa1hTWEV6RkMzSU4xeHMyYXZnNTMrd1RKQ1pqTU8xUm1qYlp5dVdxRkpacXpqOEpaZQogMDlFbXZadVZURWhvZzRNd1J1a0M1U3BzbmtUeGtEcUVRVHRCNk4zS1p4VFQzYWM5SEpDUnVGdllJZGtHM2pTN0d1R1poVll6agogSUN4N2F2KzFLcW9tRU15SGsza2ZSYk5RMlNZV0U0Q25LWmZoRlVqVkdBZjNBQ0xnM2Mzd043S3BUNS9hN1BpbGFnQTFPaGJ5YgogbWhGbVlUakdFY2Q2QVplekUxaThxZWo5T3pNaHpGVDhsRXhLMnZDNWU5VGN3elEvQXlsdkcybkZ2QkdKdGZnWmJNTnU0aXFuQQogNWpsZ3QzQXlCQndHaUYzRTZsTnluaEJJVkduUjUyVVloRjU2UTM3bWRLUlZpMStKVmJJYUppZXdLbGg2VjAzaFQ4VVJQc1pQUQogazlpNFVYa2h1K0lGbHhocmt2TEk5M20vQXRVTk9YYXhaK0R0SC9yck5EeWs3S3lVRitwL01mRjJoZURmQzJRVHJVNGJqSkRsWQogbzRVUE1udTJzd0R1dElWZVNtQWx4cktwZU5jdWJyNFlndi9MQ0Fmb0syYkEweU9GOVNURDdmdmd0MDkxODJXOEROTUUvRVFPRwogaEEyendvemhubzYwUzFPZCtoMFdRTDJ1SmxVamp6QmdsQ3Z1NjVMcFRyTXloYWgwczhlUkY4elZzNm5RdlQrQUJ2Q0NMcmpheQogVHE3cklidnNFMnVQTEVmWk9JMTNBTjRERW9ROFZCZ3FxQ0xrL3Juam9mVThXcjhFV3U5eFVYV2s3RytxZkk3NU1CaEU2Vm5VNgogWDJyeStxVHQ2eUVvemlrQjc3UG1POUcrNXo4M2VBUFhVcjB4bjkrRlZ6OWlSc0wzQVl6czFuaTRjeUIrdVhqTjFWQXUwazIvZwogVk5JUTIra1R4cVhTMk41MkJsRnVWa095U29oYUFXU2RHT2t1cE11YzhzZ2tvYkNIdG1jMHJET0lMYUZtNHUKCkhpLAoKT24gMjcvMTIvMTcgMTM6MDEsIFN5bHdlc3RlciBMYWNoaWV3aWN6IHdyb3RlOgo+IEJ1aWxkIGZhaWxzIHdpdGggbG9uZyBkaXJlY3RvcnkgbmFtZSAtIGFsc28gb24gd2luZG93cy4KPiBVcGdyYWRlIG1hdmVuLXN1cmVmaXJlLXBsdWdpbiB0byAyLjIwLjEgZml4ZXMgdGVzdCBlcnJvci4KCkhtLi50aGlzIGlzIGEgbGl0dGxlIGJpdCBjb25mdXNpbmcsIGNhdXNlIHRoZSBsZW5ndGggZm9yIHdpbmRvd3MgYXJlIAphYm91dCAxNDEgY2hhcmFjdGVycyAoYWxyZWFkeSB0aG91Z2h0IGFib3V0IHNvbWV0aGluZyBzaW1pbGFyKSBidXQgdGhlIAp1cGdyYWRlIGNoYW5nZXMgdGhlIHNpdHVhdGlvbiBjb21wbGV0ZWx5IC4uLlRoYW5rcyBmb3IgdGhhdCBoaW50Li4KCgpKdXN0IG9uZSB0ZXN0IGNhc2VzIGlzIGZhaWxpbmcuLi4KCktpZG4gcmVnYXJkcwpLYXJsIEhlaW56IE1hcmJhaXNlCgo+IAo+IAo+IMWbci4sIDI3IGdydSAyMDE3IG8gMDg6NDkgdcW8eXRrb3duaWsgUGxhbWVuIFRvdGV2IDxwbGFtZW4uaXYudG90ZXZAZ21haWwuY29tPgo+IG5hcGlzYcWCOgo+IAo+PiBBbmQgaWYgdGhpcyBjb3VsZCBoZWxwIChJIGtub3cgaXQncyBvYnZpb3VzIGJ1dCBtYXkgc2FmZSB0aW1lKSBpdAo+PiBsb29rcyB0aGUgcmVhc29uIGZvciB0aGUgZmFpbGluZyB0ZXN0cyBpcyB0aGUgc2FtZS4gVGhlIGZvbGxvd2luZyBjb2RlCj4+IGZhaWxzIHdpdGggYXNzZXJ0aW9uIGVycm9yOgo+Pgo+PiAgICAgICAgICBmaW5hbCBNYW5pZmVzdCBtYW5pZmVzdCA9IGdldEphckZpbGVNYW5pZmVzdCggamFyRmlsZSApOwo+PiAgICAgICAgICBTdHJpbmcgY2xhc3NQYXRoID0gbWFuaWZlc3QuZ2V0TWFpbkF0dHJpYnV0ZXMoKS5nZXRWYWx1ZSgKPj4gQXR0cmlidXRlcy5OYW1lLkNMQVNTX1BBVEggKTsKPj4gICAgICAgICAgYXNzZXJ0Tm90TnVsbCggY2xhc3NQYXRoICk7Cj4+Cj4+IFRoZSBOdWxsUG9pbnRlckV4Y2VwdGlvbnMgZnJvbSB0aGUgcmVzdCBvZiB0aGUgdGVzdHMgYXJlIGNvbWluZyBmcm9tCj4+IHRoZSBzYW1lIGV4cHJlc3Npb24gKGBtYW5pZmVzdC5nZXRNYWluQXR0cmlidXRlcygpLmdldFZhbHVlKAo+PiAiQ2xhc3MtUGF0aCIgKS5nZXRCeXRlcygpYCkuCj4+Cj4+IE9uIFdlZCwgRGVjIDI3LCAyMDE3IGF0IDk6MzkgQU0sIFBsYW1lbiBUb3RldiA8cGxhbWVuLml2LnRvdGV2QGdtYWlsLmNvbT4KPj4gd3JvdGU6Cj4+PiBIaSwKPj4+Cj4+PiBPbiBUdWUsIERlYyAyNiwgMjAxNyBhdCA5OjAxIFBNLCBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4KPj4gd3JvdGU6Cj4+Pgo+Pj4+IElzIHNvbWVvbmUgb3V0IHRoZXJlIHdobyBjYW4gY2hlY2sgdGhlIGN1cnJlbnQgc3RhdGUgb2YgbWF2ZW4tYXJjaGl2ZXIKPj4gZ2l0Cj4+Pj4gcmVwbyBvbiBXaW5kb3dzIGFuZCBjYW4gcmVwcm9kdWNlIHRoZSBpc3N1ZSA/Cj4+Pgo+Pj4gSSByYW4gdGhlIGJ1aWxkIGEgY291cGxlIG9mIHRpbWVzKGp1c3QgaW4gY2FzZSkgb24gV2luZG93cyAxMCwgTWF2ZW4KPj4+IDMuNS4yLCBKREsgOS4wLjEgYW5kIGV2ZXJ5dGhpbmcgaXMgb2suIEFuZCBpdCBsb29rcyBsaWtlIHRoZSBidWlsZCBpcwo+Pj4gZmFpbGluZyBvbiBMaW51eCBKREsgOSBhbmQgV2luZG93cyBKREsgOCBhcyB3ZWxsLCBzbyBpZiB0aGVyZSBpcyBhIGJ1Zwo+Pj4gKGFuZCBub3QgYSBwcm9ibGVtIHdpdGggdGhlIGJ1aWxkKSB0aGVuIGl0IGlzIHByb2JhYmx5IG5vdCBhIFdpbmRvd3MKPj4+IG9yIEpESyA5IHJlbGF0ZWQuCj4+Pgo+Pj4gUmVnYXJkcywKPj4+IFBsYW1lbiBUb3RldgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NzY5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBEZWMgMTAgMTk6NDY6NDkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzY5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEUzODg0MTBCNTYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxMCBEZWMgMjAxNyAxOTo0Njo0OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDMxNDQ4IGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIERlYyAyMDE3IDE5OjQ2OjQ4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMTM4MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBEZWMgMjAxNyAxOTo0Njo0OCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMxMzcwIGludm9rZWQgYnkgdWlkIDk5KTsgMTAgRGVjIDIwMTcgMTk6NDY6NDggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDEwIERlYyAyMDE3IDE5OjQ2OjQ4ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRDA3QjIxQTA4RjgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIERlYyAyMDE3IDE5OjQ2OjQ3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgUWJHdElSdktSTGttIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAxMCBEZWMgMjAxNyAxOTo0Njo0NSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDEuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjNdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNDA1OUE1RjI5NgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgRGVjIDIwMTcgMTk6NDY6NDUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkNTQgd2l0aCBNRQoJaWQga0ttZTF3MDA0MjBVZmR5MDNLbWVxeDsgU3VuLCAxMCBEZWMgMjAxNyAyMDo0NjozOSArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBTdW4sIDEwIERlYyAyMDE3IDIwOjQ2OjM5ICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IG1lcmdpbmcgTU5HLTYzMDggZGlzcGxheSBwYWNrYWdpbmcKRGF0ZTogU3VuLCAxMCBEZWMgMjAxNyAyMDo0NjozOCArMDEwMApNZXNzYWdlLUlEOiA8MjM5OTk5MS5jU2FIVkJ6QXpiQGdpZ2E+CkluLVJlcGx5LVRvOiA8b3AuemExbXUzcWJrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+ClJlZmVyZW5jZXM6IDwyNzUzMDQwLjhTMTVzbGo3WjVAZ2lnYT4gPENBK25Qbk13WXMtNVNUMFBranV4eDAyc0pzUF8wdlRnMEJIVVZ6T2o2LUJWTVBra21yd0BtYWlsLmdtYWlsLmNvbT4gPG9wLnphMW11M3Fia2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpMZSBkaW1hbmNoZSAxMCBkPUMzPUE5Y2VtYnJlIDIwMTcsIDE5OjI2OjUzIENFVCBSb2JlcnQgU2Nob2x0ZSBhID1DMz1BOWNyaXQ9CiA6Cj4gT24gU3VuLCAxMCBEZWMgMjAxNyAxODozODo1NSArMDEwMCwgU3RlcGhlbiBDb25ub2xseQo+PTIwCj4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gT24gU3VuIDEwIERlYyAyMDE3IGF0IDE3OjEyLCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+IHdyb3Q9CmU6Cj4gPj4gT24gU3VuLCAxMCBEZWMgMjAxNyAxNzo0NjoxMCArMDEwMCwgSGVydj1DMz1BOSBCT1VURU1ZCj4gPj4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPiA+Pj0yMAo+ID4+IHdyb3RlOgo+ID4+ID4gTGUgZGltYW5jaGUgMTAgZD1DMz1BOWNlbWJyZSAyMDE3LCAxMTowNjozMiBDRVQgUm9iZXJ0IFNjaG9sdGUgYSA9QzM9Cj1BOWNyaXQgOgo+ID4+ID4+IEkgc3RpbGwgdGhpbmsgaXQgaXMgdWdseSB0byB1c2UgdGhlIEhSIGZvciB0aGlzIGtpbmQgb2YgaW5mby4KPiA+PiA+PiBJZiB5b3UgKnJlYWxseSogd2FudCB0aGlzIGluZm8sIEknZCBwcmVmZXIgYSBuZXcgbGluZSwgb2ZmZXJpbmcgbW9yZQo+ID4+ID4+IHNwYWNlCj4gPj4gPj4gZm9yIGFkZGl0aW9uYWwgaW5mby4KPiA+PiA+PTIwCj4gPj4gPiB5ZXMsIEkgKnJlYWxseSogd2FudCB0aGlzIGluZm86IHRoZSBwcmVjaXNlIGRldGFpbHMgb24gaG93IHRvIGRpc3BsYXkKPiA+Pj0yMAo+ID4+IGl0Cj4gPj49MjAKPiA+PiA+IGlzCj4gPj4gPiBsZXNzIGltcG9ydGFudAo+ID4+ID49MjAKPiA+PiA+PiBPdGhlciBvcHRpb24gaXMgdG8gbGVhdmUgaXQgYXMgaXQgaXMuIElmIGRldmVsb3BlcnMgd2FudCBpdCwgdGhleSBjPQphbgo+ID4+ID4+IHB1dAo+ID4+ID4+IGl0IGluIHRoZSBuYW1lLgo+ID4+ID49MjAKPiA+PiA+IHRoZSBpZGVhIGlzIHRoYXQgJHtwcm9qZWN0LnBhY2thZ2luZ30gZHJpdmVzIHRoZSBkZWZhdWx0IGJ1aWxkLCBiZWZvPQpyZQo+ID4+ID4gYWRkaXRpb25hbCBwbHVnaW5zIGJpbmRpbmdzOiBpdCdzIHVzZWZ1bCB0byBkaXNwbGF5IGl0IGFzIGl0IGlzIGEga2V5Cj4gPj4gPiBpbmZvCj4gPj4gPj0yMAo+ID4+ID4+IFNvIC0xIGZvciBtZS4KPiA+PiA+PTIwCj4gPj4gPiBob3cgZG8geW91IHdhbnQgdG8gcHJvY2VlZCB0byBjaG9vc2UgdGhlIGJlc3QgZGlzcGxheT8KPiA+Pj0yMAo+ID4+IElzIGl0IGFjY2VwdGFibGUgdG8gYWRkIGl0IHRvIHRoZSAiUmVhY3RvciBCdWlsZCBPcmRlciI/IEl0IGhhcyBlbm91Z2gKPiA+PiBzcGFjZSBmb3IgdGhpcyBraW5kIG9mIGluZm9ybWF0aW9uLgo+ID49MjAKPiA+IEk9RTI9ODA9OTlkIGxpa2UgaXQgaW4gYm90aCBwbGFjZXMuIDstKQorMQppZiB3ZSBoYXZlIGluZm8gb25seSBvbiAiUmVhY3RvciBCdWlsZCBPcmRlciIsIEkgc2VlIG9uZSBtaXNzaW5nIGNhc2U6IHdoZW49Cj0yMAppdCdzIGEgc2ltcGxlIG1vZHVsZSBidWlsZCwgd2l0aG91dCByZWFjdG9yCgo+PTIwCj4gU2VlbXMgbGlrZSBJJ20gb25lIG9mIHRoZSBmZXcgd2hvIGRvZXNuJ3QgdW5kZXJzdGFuZCB3aGF0IHRoaXMgaW5mbyBhZGRzLgo+IElmIGl0IHNheXMgcG9tLCBpdCdsbCBydW4gKmF0IGxlYXN0KiB0aGUgbS1pbnN0YWxsLXAgYW5kIG0tZGVwbG95LXAuCj4gSWYgSSBvbmx5IHNlZSB0aGUgbS1pbnN0YWxsLXAgYW5kIG0tZGVwbG95LXAgYmVpbmcgZXhlY3V0ZWQsIGl0IG11c3QgYmUgYQo+IHBvbS4KPiBJbiBnZW5lcmFsIEkgY2FuIHNlZSBieSB0aGUgbmFtZSB3aGF0IHdpbGwgaGFwcGVuLgo+PTIwCj4gSWYgd2UncmUgZGlzY3Vzc2luZyBtb2R1bGUgImhlYWRlciIgaW5mb3JtYXRpb246Cj4gV2hhdCBJIGFtIG1pc3NpbmcgaXMgYSB0aW1lc3RhbXAgd2hlbiB0aGUgbW9kdWxlIHN0YXJ0ZWQuCj4gUmVhc29uOiBpbiBjYXNlIG9mIGEgbG9uZyBidWlsZCBJIHdvdWxkIGxpa2UgdG8gYmUgYWJsZSB0byBlc3RpbWF0ZSBpZiB0aGUKPiBidWlsZCBpcyBzdGlsbCBhY3RpdmUgb3IgaGFuZ2luZy4Kb24gdGhpcyByZXF1aXJlbWVudCwgSSdkIG1vcmUgYWRkIHNvbWUgdGltZXIgInNpbmNlIHRoZSBsYXN0IGxvZyIgdGhhbiBhPTIwCnRpbWVzdGFtcCBvbiBlYWNoIGxpbmUKCj4gQWxzbyBpbiBzb21lIGNhc2VzIEkgd291bGQgbGlrZSB0byBzZWUgR0FWIGluc3RlYWQgb2YgdGhlIG5hbWUsIGJlY2F1c2UKPiB0aGF0IGNhbiBoZWxwIGludmVzdGlnYXRpbmcgaW4gY2FzZSBvZiBhIG11bHRpbW9kdWxlIHByb2plY3Qgd2hlbiB0aGVyZQo+IGFyZSBpc3N1ZXMgd2l0aCBzb21lIGRlcGVuZGVuY3kgKD0zREdBVikuCmRlcGVuZGVuY3kgYmV0d2VlbiBtb2R1bGVzIGluIHRoZSByZWFjdG9yPyBJIGRvbid0IHJlYWxseSB1bmRlcnN0YW5kCkJ1dCBmb3IgdGhpcywgd2UgYWxyZWFkeSBoYXZlICJAIGFydGlmYWN0SWQiIG9uIGVhY2ggZ29hbCBzdGFydCwgYW5kIHZlcnNpbz0Kbj0yMAppbiB0aGUgIkJ1aWxkaW5nIiBtZXNzYWdlOiBncm91cElkLCBmb3IgdGhlIHJlYWN0b3IsIEkgZG9uJ3Qgc2VlIHRoZSBuZWVkCgo+PTIwCj4gU28gdGhlcmUncyBlbm91Z2ggdG8gdGhpbmsgb2YgdG8gZmlsbCBhbiBleHRyYSByb3cgOykKc29ycnksIEkgZG9uJ3QgdGhpbmsgd2UnbGwgZmlsbCBhIHJvdyB3aXRoIHJlYWxseSB1c2VmdWwgYWRkaXRpb25hbCBpbmZvCgphbnkgb3RoZXIgb3Bpbmlvbj8KClJlZ2FyZHMsCgpIZXJ2PUMzPUE5Cgo+PTIwCj4gPj4gPiBSZWdhcmRzLAo+ID4+ID49MjAKPiA+PiA+IEhlcnY9QzM9QTkKPiA+PiA+PTIwCj4gPj4gPj4gUm9iZXJ0Cj4gPj4gPj49MjAKPiA+PiA+Pj0yMAo+ID4+ID4+IE9uIFN1biwgMTAgRGVjIDIwMTcgMTE6MDE6NDEgKzAxMDAsIEhlcnY9QzM9QTkgQk9VVEVNWQo+ID4+ID4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPj4gPj49MjAKPiA+PiA+PiB3cm90ZToKPiA+PiA+PiA+IGlzIHRoZXJlIGEgc2Vjb25kZXIgZm9yIHRoaXMgZW5oYW5jZW1lbnQ/Cj4gPj49MjAKPiA+PiA+PiA+IENJOgo+ID4+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tMy54LWplbmtpbnNmaWw9CmUvCj4gPj49MjAKPiA+PiA+PiA+IGpvYi9NTkctNjMwOF9kaXNwbGF5X3BhY2thZ2luZy8KPiA+PiA+PiA+PTIwCj4gPj4gPj4gPiBKaXJhIGlzc3VlOiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MzA4Cj4gPj4gPj4gPj0yMAo+ID4+ID4+ID4gUmVnYXJkcywKPiA+PiA+PiA+PTIwCj4gPj4gPj4gPiBIZXJ2PUMzPUE5Cj4gPj49MjAKPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+Pj0yMAo+ID4+ID4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+PiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+Pj0yMAo+ID4+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0KPiA+PiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+PTIwCj4gPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj49MjAKPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj0yMAo+ID4+IC0tCj4gPj0yMAo+ID4gU2VudCBmcm9tIG15IHBob25lCj49MjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODU5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBEZWMgMjggMDk6MDU6MTAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODU5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDZFNkNFMTc5NDYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAyOCBEZWMgMjAxNyAwOTowNToxMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE3MzkyIGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IERlYyAyMDE3IDA5OjA1OjEwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNzI4MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBEZWMgMjAxNyAwOTowNToxMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE3MjcxIGludm9rZWQgYnkgdWlkIDk5KTsgMjggRGVjIDIwMTcgMDk6MDU6MDkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDI4IERlYyAyMDE3IDA5OjA1OjA5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNTEwNkMxODA3QTYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDI4IERlYyAyMDE3IDA5OjA1OjA5ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEuOApYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMS44IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBXbHNmZkdUT3hCM3IgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsIDI4IERlYyAyMDE3IDA5OjA1OjA3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwNS5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyN10pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAzNTIzNDVGM0RGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyOCBEZWMgMjAxNyAwOTowNTowNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ2MiB3aXRoIE1FCglpZCByTTU2MXcwMFcyMFVmZHkwM001NkZxOyBUaHUsIDI4IERlYyAyMDE3IDEwOjA1OjA2ICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFRodSwgMjggRGVjIDIwMTcgMTA6MDU6MDYgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpDYzogUm9iIFRvbXBraW5zIDxjaHRvbXBraUBnbWFpbC5jb20+LCBDb21tb25zIERldmVsb3BlcnMgTGlzdCA8ZGV2QGNvbW1vbnMuYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFF1ZXN0aW9ucyByZWdhcmRpbmcgaW1wcm92aW5nIHRoZSBBcGFjaGUgQ29tbW9ucyByZWxlYXNlIHByb2Nlc3MuCkRhdGU6IFRodSwgMjggRGVjIDIwMTcgMTA6MDU6MDYgKzAxMDAKTWVzc2FnZS1JRDogPDI0MDQyMjUxLmdpOEVLQ3I2eXZAZ2lnYT4KSW4tUmVwbHktVG86IDwzM0IzNTFCNS01MjkxLTREQjAtOUU4NS00NzhENzZDRjNFQzRAZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8MzQ2OTc5M0ItNDU4Mi00MUY3LUI2NDEtNTAyRUZGN0RBREIzQGFwYWNoZS5vcmc+IDxDQStuUG5NekdkSkY4S1FpbkROZ0NOclBiVFZXbjh5TnJwQjZCeF9hVTYzZ0xhYV9rc1FAbWFpbC5nbWFpbC5jb20+IDwzM0IzNTFCNS01MjkxLTREQjAtOUU4NS00NzhENzZDRjNFQzRAZ21haWwuY29tPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpIaSBSb2IsCgpvbmUgYWRkaXRpb25hbCBwb2ludDogY3VycmVudGx5LCBmb3IgTWF2ZW4gaXRzZWxmLCBpbnN0ZWFkIG9mIGFkZGluZyBuZXc9MjAKTWF2ZW4tc3BlY2lmaWMgUmVsZWFzZVBoYXNlKHMpIHRvIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24sIG9yIGNvbmZpZ3VyZSB0PQpoZW0gaW49MjAKb3VyIHBhcmVudCBwb20gKEknbSBub3Qgc3VyZSBkb2N1bWVudGF0aW9uIG9uIGhvdyB0byBkbyB0aGF0IGlzIGF2YWlsYWJsZTogPQpJPTIwCmNvdWxkIG5vdCBmaW5kIGl0KSwgd2UgY2hvc2UgZmlyc3QgdG8gY3JlYXRlIGEgc2VwYXJhdGUgImRpc3QtdG9vbCIgdG8gY2hlYz0Kaz0yMApjb25zaXN0ZW5jeSBvZiB3aGF0IGlzIGN1cnJlbnRseSBwdWJsaXNoZWQgaW4gbWlzYyBwbGFjZXMgYW5kIHByb3ZpZGUgc29tZT0KPTIwCmNvbW1hbmRzIHRvIGZpeCB3aGVuIGFuIGluY29uc2lzdGVuY3kgaXMgZm91bmQuCgpUaGlzIGhhcHBlbnMgdGhyb3VnaCBkYWlseSByZXBvcnRzIGRvbmUgYnkgYSBKZW5raW5zIGpvYiBbMV06Cj0yRCBkaXN0cmlidXRpb24gYXJlYSB2cyBNYXZlbiBDZW50cmFsIFsyXT0yMAo9MkQgdmVyc2lvbiBmcm9tIE1hdmVuIHNpdGUgdnMgTWF2ZW4gQ2VudHJhbCBbM10KCldlIGRpZCBub3QgcHJvZHVjZSBhbnkgcmVsZWFzZSBub3IgbWFkZSBpdCByZWFsbHkgY29uZmlndXJhYmxlIGZvciBjb252ZW50aT0Kb25zPTIwCmRpZmZlcmVudCBmcm9tIE1hdmVuIG9uZXMgKGxpa2UgQ29tbW9uJ3MgLXNyYyAmIC1iaW4pLCBidXQgYXQgbGVhc3QgdGhlcmUgaT0KcyBhPTIwCmNvbmZpZ3VyYXRpb24gZmlsZSB0byBkZWZpbmUgYXJ0aWZhY3RzIHRvIGNoZWNrIFs0XQoKSFRICgpIZXJ2PUMzPUE5CgoKWzFdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvZGlzdC10b29sLXBsdWdpbi8KClsyXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL2Rpc3QtdG9vbC1wbHVnaW4vc2l0ZS8KZGlzdC10b29sLWNoZWNrLXNvdXJjZS1yZWxlYXNlLmh0bWwKClszXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL2Rpc3QtdG9vbC1wbHVnaW4vc2l0ZS8KZGlzdC10b29sLWNoZWNrLWluZGV4LXBhZ2UuaHRtbAoKWzRdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvZGlzdC10b29sLXBsdWdpbi9zaXRlLwpkaXN0LXRvb2wuY29uZi5odG1sCgpMZSBtZXJjcmVkaSAyNyBkPUMzPUE5Y2VtYnJlIDIwMTcsIDIzOjMyOjQ5IENFVCBSb2IgVG9tcGtpbnMgYSA9QzM9QTljcml0IDoKPiBTdGVwaGVuLAo+PTIwCj4gSSBjYW49RTI9ODA9OTl0IHRoYW5rIHlvdSBlbm91Z2ggZm9yIHlvdXIgcmVwbHkuIEk9RTI9ODA9OTlsbCB0YWtlIHlvdXIgcz0KdWdnZXN0aW9ucyBhbmQKPiBjb250aW51ZSB0byBzYW5kYm94IGFyb3VuZCB1c2luZyB0aGUgbWF2ZW4tcmVsZWFzZS1wbHVnaW4gYXMgYSBndWlkZWxpbmUuCj49MjAKPiBBbGwgdGhlIGJlc3QgYW5kIGhhcHB5IGhvbGlkYXlzLAo+IC1Sb2IKPj0yMAo+ID4gT24gRGVjIDI2LCAyMDE3LCBhdCA1OjI3IEFNLCBTdGVwaGVuIENvbm5vbGx5Cj4gPiA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Pj0yMAo+ID4gT24gVHVlIDI2IERlYyAyMDE3IGF0IDAzOjEwLCBSb2IgVG9tcGtpbnMgPGNodG9tcGtpQGFwYWNoZS5vcmc9MjAKPG1haWx0bzpjaHRvbXBraUBhcGFjaGUub3JnPj4gd3JvdGU6Cj4gPj4gSGVsbG8gYWxsLAo+ID4+PTIwCj4gPj4gUGFyZG9uLCBtYXliZSB0aGlzIHNob3VsZCBoYXZlIGdvbmUgdG8geW91ciBAdXNlciBsaXN0LCBidXQgd2h5IG5vdCBwaT0KbmcKPiA+PiB0aGUgZGV2IGNyZXcuIEk9RTI9ODA9OTl2ZSBiZWVuIHBsYXlpbmcgYXJvdW5kIHRoZSBpZGVhcyBzdXJyb3VuZGluZyBvPQp1ciBmYWlybHkKPiA+PiBtYW51YWwgcmVsZWFzZSBwcm9jZXNzIGZvciB0aGUgY29tcG9uZW50cyBpbiBDb21tb25zLCBhbmQgSSB3YXMgaG9waW5nCj4gPj4gZm9yCj4gPj4gc29tZSBpbnNpZ2h0cy4KPiA+Pj0yMAo+ID4+IFNjcmlwdGluZyB0aGUgdmVyc2lvbiBjaGFuZ2VzIGlzbj1FMj04MD05OXQgcmVhbGx5IHRoYXQgYmlnIG9mIGEgZGVhbCA9CmZvciB1cywgYW5kCj4gPj4gdGhhdCBJIGNhbiBtYW5hZ2UuIEJ1dCwgd2hlbiBpdCBjb21lcyB0byBwdWJsaXNoaW5nIG91ciBhcnRpZmFjdHMgdG8gdD0KaGUKPiA+PiBhcGFjaGUgbmV4dXMgcmVwb3NpdG9yeSwgYW5kIHRoZW4gc2VwYXJhdGVseSBwdWJsaXNoaW5nIG91ciAtc3JjIGFuZCAtPQpiaW4KPiA+PiBhc3NlbWJsaWVzIHRvIHRoZSBkZXYgZGlzdCBzdWJ2ZXJzaW9uIHJlcG9zaXRvcnkgKGFuZCBjb25zZXF1ZW50bHkKPiA+PiBkZWxldGluZwo+ID4+IHRob3NlIGFydGlmYWN0cyBmcm9tIG5leHVzIGFzIHRoZXk9RTI9ODA9OTlyZSA9RTI9ODA9OUNhdHRhY2hlZD1FMj04MD0KPTlEIGZvciB0aGUgcHVycG9zZSBvZiBncGcKPiA+PiBzaWduaW5nKSwgSSBmZWVsIGl0IGEgdGFkIGN1bWJlcnNvbWUuCj4gPj49MjAKPiA+PiBJPUUyPTgwPTk5dmUgZmlkZGxlZCBhcm91bmQgYSBsaXR0bGUgd2l0aCB0aGUgaWRlYSBvZiBkZXRhY2hpbmcgdGhlIC1zPQpyYyBhbmQgLWJpbgo+ID4+IGFzc2VtYmxpZXMgYWZ0ZXIgZ3BnIHNpZ25pbmcgd2l0aCBzb21lIHN1Y2Nlc3MsIGJ1dCB0aGVuIEkgaGF2ZSB0byBkZWw9CnZlCj4gPj4gaW50byB0aGUgbWVjaGFuaWNzIG9mIHB1Ymxpc2hpbmcgdGhvc2UgdXAgdG8gdGhlIHN1YnZlcnNpb24gcmVwb3NpdG9yeSwKPiA+PiBhbmQKPiA+PiBjbGVhcmx5IHRoYXQgcHJvYmxlbSBoYXMgYWxyZWFkeSBiZWVuIHNvbHZlZC4KPiA+PTIwCj4gPiBJcyB5b3VyIHByb2JsZW0geW91IGRvbj1FMj04MD05OXQgd2FudCB0aG9zZSBnb2luZyB0byBOZXh1cyBzdGFnaW5nIGJ1dD0KIG9ubHkgdG8KPiA+IGRpc3Q/IE9yIGlzIGl0IHRoYXQgeW91IHdhbnQgdGhlbSAqYWxzbyogZ29pbmcgdG8gZGlzdC4KPiA+PTIwCj4gPiBQZXJzb25hbGx5Li4uIEkgc2VlIG5vIHJlYXNvbiB0byByZW1vdmUgdGhlbSBmcm9tIGdvaW5nIHRvIE5leHVzIHN0YWdpbmcKPiA+IChpbiBmYWN0IEkgaGF2ZSBhIGJhY2tncm91bmQgcGxhbiB0byBhZGQgc2Vjb25kYXJ5IHNpZ25pbmcgc3VwcG9ydCB0bwo+ID4gc3RhZ2luZy4uLiBpPUUyPTgwPTk5bSBXYWl0aW5nIHRvIHNlZSB0aGUgTmV4dXMgMyBzdGFnaW5nIEFQSXMgYmVmb3JlIGE9CnR0ZW1wdGluZwo+ID4gdGhvdWdoLiBUaGF0IHdvdWxkIG1lYW4gdGhhdCB0aGUgUE1DIHdvdWxkIGJlIGFibGUgdG8gKmFkZCogdGhlaXIgR1BHCj4gPiBzaWduYXR1cmUgdG8gdGhlIHN0YWdlZCBhcnRpZmFjdHMgYXMgcGFydCBvZiB0aGUgdm90aW5nLi4uIGluIHdoaWNoIGNhc2UKPiA+IHlvdT1FMj04MD05OWQgd2FudCB0byBob2xkIG9mZiB1cGxvYWRpbmcgdG8gZGlzdCB1bnRpbCAqYWZ0ZXIqIHRoZSB2b3RlPQogc28geW91IGdldAo+ID4gdGhlIGZ1bGwgc2V0IG9mIHNpZ25hdHVyZXMpCj4gPj0yMAo+ID4gSWYgeW91IHdhbnQgdG8gdXBsb2FkIGEgc3Vic2V0IG9mIGF0dGFjaGVkIGFydGlmYWN0cyB0byBkaXN0IGFzIHBhcnQgb2YKPiA+IHRoZQo+ID4gcmVsZWFzZSwgdGhhdCBzZWVtcyBtdWNoIG1vcmUgdGVuYWJsZS4uLiBqdXN0IGEgZGVyaXZhdGl2ZSBvZiB0aGUKPiA+IHNjbS1wdWJsaXNoIHBsdWdpbiBmcm9tIHdoYXQgSSBjYW4gc2VlLgo+ID49MjAKPiA+IFNvIEkgZmluZCBteXNlbGYgaW4gdGhlIHNwYWNlIG9mIHRyeWluZyB0byBzaG9laG9ybiBvdXIgcHJvY2VzcyBpbnRvIGl0cwo+ID49MjAKPiA+PiB0aGUgbWFpbiBtYXZlbi1yZWxlYXNlLXBsdWdpbiwgd2hpY2ggST1FMj04MD05OXZlIGZvdW5kIGEgdGFkIGRpZmZpY3VsPQp0LCB2ZXJzdXMKPiA+PiB3cml0aW5nIG91ciBvd24gcmVsZWFzZSBwbHVnaW4sIHdoaWNoIGZlZWxzIGxpa2UgSSB3b3VsZCBiZSBkdXBsaWNhdGluZwo+ID4+IHRvbnMgb2YgY29kZSAod2hpY2ggSSBkb249RTI9ODA9OTl0IHdhbnQgdG8gZG8pLgo+ID49MjAKPiA+IFNvIHRoZSByZWxlYXNlIHBsdWdpbiBpcyByZWFsbHkgdHdvIHBhcnRzOgo+ID49MjAKPiA+IDEuIEEgdG9vbGtpdCBmb3Igd3JpdGluZyByZWxlYXNlIHBsdWdpbnMKPiA+PTIwCj4gPiAyLiBBbiBleGFtcGxlIHRoYXQgZG9lcyB0aGUgam9iIGZvciB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoZSBNYXZlbiBUTFAgYT0KbmQKPiA+IGhhcyBzZWVtZWQgPUUyPTgwPTlDc3VmZmljaWVudD1FMj04MD05RCBmb3IgYSBsb3Qgb2Ygb3RoZXIgcGVvcGxlLgo+ID49MjAKPiA+IEFzIHN1Y2gsIGlmIHlvdSBoYXZlIGRpZmZlcmVudCBuZWVkcywgZG8gbm90IGZlZWwgYmFkIGFib3V0IGhhdmluZyB0bwo+ID4gZW5jb2RlIGRpZmZlcmVudGx5Li4uIGhvcGVmdWxseSB0aGUgdG9vbGtpdCBoYWxmIG9mIHRoZSBjb2RlYmFzZSBpcwo+ID4gc3VmZmljaWVudCBmb3IgeW91Lgo+ID49MjAKPiA+PiBJPUUyPTgwPTk5bSBjdXJpb3VzIGlmIHlvdSBndXlzIGhhdmUgYW55IHRob3VnaHRzIG9uIHRoZSBtYXR0ZXIgYXMgST0KPUUyPTgwPTk5dmUgYmVlbgo+ID4+IHBsYXlpbmcgYXJvdW5kIGluIHRoZSBzcGFjZSBmb3IgYSBsaXR0bGUgd2hpbGUgbm93Lgo+ID4+PTIwCj4gPj4gQ2hlZXJzIGFuZCBoYXBweSBob2xpZGF5cyBmcm9tIFVUQy01LAo+ID4+IC1Sb2IKPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLAo+ID4+IGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZyA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Cj4gPj49MjAKPiA+PiAtLQo+ID49MjAKPiA+IFNlbnQgZnJvbSBteSBwaG9uZQoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQxNzAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE9jdCAgNyAxNjo1NDo1OCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxNzAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOTVGOTIxMDI4NAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDE2OjU0OjU4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzQwOSBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE9jdCAyMDE3IDE2OjU0OjU4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MzQyIGludm9rZWQgYnkgdWlkIDUwMCk7IDcgT2N0IDIwMTcgMTY6NTQ6NTggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MzMxIGludm9rZWQgYnkgdWlkIDk5KTsgNyBPY3QgMjAxNyAxNjo1NDo1NyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDcgT2N0IDIwMTcgMTY6NTQ6NTcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAyMzFDNzE4MDcwMwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMTY6NTQ6NTcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC41ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjUgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLAoJS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHdyUDZBcW9LWkowMCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgIDcgT2N0IDIwMTcgMTY6NTQ6NTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDAzLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI1XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDFDQjk5NjBEMzEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDE2OjU0OjU0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDU4IHdpdGggTUUKCWlkIEpndXQxdzAwMzIwVWZkeTAzZ3V0U007IFNhdCwgMDcgT2N0IDIwMTcgMTg6NTQ6NTMgKzAyMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogU2F0LCAwNyBPY3QgMjAxNyAxODo1NDo1MyArMDIwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBKZW5raW5zIGFuZCBNYXZlbiAzLjAuNSBvciBKREsgNwpEYXRlOiBTYXQsIDA3IE9jdCAyMDE3IDE4OjU0OjUzICswMjAwCk1lc3NhZ2UtSUQ6IDwyNDEwNDAzLlV1cmc0TjA5TW1AZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zNS1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpJbi1SZXBseS1UbzogPENBS3VWekJSUG91dkYyVjV3ZnhYcmJDUmNjdUt2Y1poQkROM2dDanJMUGIwU0pnb3RKQUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPDEwNTQ0NjE1LkI0aE8zUG52RXpAZ2lnYT4gPENBS3VWekJRTVcwOUdhUzI3WHEwQ2JKenFkTFZKN3Jra1ZTSE44cTZQMmFWMXZ3Vz1Hd0BtYWlsLmdtYWlsLmNvbT4gPENBS3VWekJSUG91dkYyVjV3ZnhYcmJDUmNjdUt2Y1poQkROM2dDanJMUGIwU0pnb3RKQUBtYWlsLmdtYWlsLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKTGUgc2FtZWRpIDcgb2N0b2JyZSAyMDE3LCAxNDo0ODozMiBDRVNUIFRpYm9yIERpZ2FuYSBhID1DMz1BOWNyaXQgOgo+IEluIG15IGNvbXBhbnkgSSBoYXZlIHN1Y2ggc2l0dWF0aW9uIGluIFNWTi4gTWFraW5nIGEgdGFnIGZyb20gc3ViZm9sZGVyLgo+IEdpdCBhbHdheXMgbWFrZXMgdGhlIHRhZyBmcm9tIHRoZSByb290LCByaWdodD8KaXQgbG9va3MgbGlrZSBnaXQgY2FuIHRhZyBhIHN1YmZvbGRlcjoKaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL3RyZWUvbWF2ZW4td2FyLXBsdWdpbi0zLjIuMAoKdGhpcyBpcyB0YWtlbiBmcm9tIGEgc3ZuMmdpdCBtaXJyb3IsIEkgZG9uJ3Qga25vdyBob3cgdGhpcyBpcyBmZWFzaWJsZSB3aXRoPQogYT0yMApnaXQgY29tbWFuZAoKPiBMZXQncyBnb29nbGUgc29tZXRoaW5nLi4uCj49MjAKPiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDI6NDcgUE0sIFRpYm9yIERpZ2FuYSA8dGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tPgo+PTIwCj4gd3JvdGU6Cj4gPiBJbiBteSBjb21wYW55IEkgaGF2ZSBzdWNoIHNpdHVhdGlvbi4KPiA+IE1ha2luZyBhIHRhZyBmcm9tIHN1YmZvbGRlci4KPiA+IEdpdCBhbHdheXMgbWFrZXMgdGhlIHRhZyBmcm9tIHRoZSByb290LCByaWdodD8KPiA+IExldCdzIGdvb2dsZSBzb21ldGhpbmcuLi4KPiA+PTIwCj4gPiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDI6MDUgUE0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLj0KZnI+Cj4gPj0yMAo+ID4gd3JvdGU6Cj4gPj4gdGhhbmtzIGZvciB5b3VyIGludGVyZXN0IGFuZCBmZWVkYmFjawo+ID4+PTIwCj4gPj4gTGUgc2FtZWRpIDcgb2N0b2JyZSAyMDE3LCAxMjowMDozMiBDRVNUIFRpYm9yIERpZ2FuYSBhID1DMz1BOWNyaXQgOgo+ID4+ID4gNzggaXMgdG9vIG11Y2guCj4gPj49MjAKPiA+PiBub3RpY2UgdGhhdCB0aGVyZSB3b3VsZCBhbHNvIGJlIGEgcXVlc3Rpb24gb24gdGhlIGdpdCByZXBvcyBuYW1pbmcKPiA+PiBjb252ZW50aW9uLAo+ID4+IHRvIGF2b2lkIGZsYXQgNzggbmFtZXMgYnV0IGtlZXAgYXQgbGVhc3QgMyBtZWFuaW5nZnVsIGdyb3VwcyAocGx1Z2lucywKPiA+PiBzaGFyZWQsCj4gPj4gcmVzb3VyY2VzOiBJIHRoaW5rIHRoaXMgaXMgbm90IGFic29sdXRlbHkgbmVjZXNzYXJ5IGZvciBkb3hpYS10b29scykKPiA+Pj0yMAo+ID4+ID4gVGhlcmUgaXMgbm8gcHJvYmxlbSB0byB0cmlnZ2VyIHJlbGVhc2Ugb3ZlciBzdWItZm9sZGVycyBhbmQgdGFnIGl0IHc9Cml0aAo+ID4+ID4gcHJlZml4IHdoaWNoIGlzIGFscmVhZHkgZG9uZSBpbiBTVk4uCj4gPj49MjAKPiA+PiBpcyBpdCBzdXBwb3J0ZWQgYnkgbWF2ZW4tcmVsZWFzZSBwbHVnaW4gd2l0aCBnaXQ/Cj4gPj49MjAKPiA+PiBub3RpY2UgSSBkaWQgbm90IGtub3cgdGhhdCBnaXQgd2FzIGFibGUgdG8gdGFnIG9ubHkgYSBzdWJ0cmVlOiBidXQgSSBrPQpuZXcKPiA+PiBJCj4gPj4gZG9uJ3QgeWV0IHVuZGVyc3RhbmQgZXZlcnkgYXNwZWN0IG9mIGdpdCBtYWdpYy4uLiA6KQo+ID4+PTIwCj4gPj4gPiBUaGUgQ0kgYnVpbGQgY2FuIGFsd2F5cyB0cmlnZ2VyIHRoZSByb290IGFuZCBKZW5raW5zZmlsZSB3b3VsZCBoYXZlID0KNDEKPiA+PiA+IHN0YWdlcyBmb3IgcGx1Z2lucywgMjYgc3RhZ2VzIGZvciBTaGFyZWQsIGV0Yy4KPiA+PiA+IEl0IGNhbiBiZSBkb25lIGluIEplbmtpbnNmaWxlIGFuZCBzbyB0aGUgc2hlbGwgd291bGQgbm90IHRocm93Cj4gPj4gPiBleGNlcHRpb24KPiA+PiA+IGJ1dCBzdGF0dXMgd291bGQgYmUgc2V0IGluc3RlYWQgYW5kIGdvZXMgdG8gdGhlIG5leHQgc3RhZ2UuCj4gPj4gPiBJIGRvIG5vdCBrbm93IGhvdyB0byBkZXRlY3QgaW4gR2l0U0NNIHdoaWNoIHN1Yi1mb2xkZXIocykgcmVjZWl2ZWQgYj0KdXQKPiA+PiA+IEkKPiA+PiA+IGd1ZXNzIHRoaXMgY2FuIGJlIGludmVzdGlnYXRlZC4KPiA+Pj0yMAo+ID4+ICsxCj4gPj4gYnV0IEkgZG9uJ3Qga25vdyB3aGVyZSB0byBsb29rIGZvciBteXNlbGY6IG9uIHRoYXQgcG9pbnQsIEkgaG9wZSB0byBoYT0KdmUKPiA+PiBzb21lCj4gPj4gaGVscCBmcm9tIEplbmtpbnNmaWxlIGV4cGVydHMKPiA+PiBhbmQgZXZlbnR1YWxseSBzdGFydCB3aXRoIHN2biwgdG8gaGF2ZSBzb21ldGhpbmcgYmVmb3JlIHRoZSBnaXQgbWlncmF0PQppb24KPiA+Pj0yMAo+ID4+ID4gVGhlbiBpdCBjYW4gYmUgYSBraW5kIG9mIHN3aXRjaC1jYXNlIG92ZXIgY29tbWl0dGVkIGZvbGRlcnMgaW4KPiA+Pj0yMAo+ID4+IEplbmtpbnNmaWxlLgo+ID4+PTIwCj4gPj4gPiBUaGlzIG1lYW5zIHRoYXQgZXZlcnkgdGltZSBhbm90aGVyIHN0YWdlL3N1Yi1mb2xkZXIgaXMgc2hvd24gaW4KPiA+PiA+IFBpcGVsaW5lCj4gPj4gPiB3aGljaCB3aWxsIGJlIG1lc3N5IGluIHRoZSBVSS4gOigKPiA+Pj0yMAo+ID4+IG5vdGljZSB0aGF0IHdlIGNhbiBwZXJoYXBzIHNwbGl0IHRoZSByZXBvcyBpbiBsZXNzIHBhcnRzIHRoYW4gd2UgaGF2ZQo+ID4+IGNvbXBvbmVudHM6IG9uIHBsdWdpbnMsIGZvciBleGFtcGxlLCB3ZSBhbHJlYWR5IGhhdmUgNCBjYXRlZ29yaWVzIFsxXQo+ID4+IHdoaWNoCj4gPj4gd291bGQgYXZvaWQgMSByZXBvIHdpdGggNDEgcGx1Z2lucywgYnV0IG1vcmUgc29tZXRoaW5nIGxpa2UgNisxMCsxMCsxNQo+ID4+IEkgc3VwcG9zZSB3ZSBjb3VsZCBkbyB0aGUgc2FtZSBmb3Igc2hhcmVkIChyZXBvcnRpbmcgZm9sZGVyIGNvbWVzIHRvIG15Cj4gPj4gbWluZCkKPiA+Pj0yMAo+ID4+IFRoZSBrZXkgZmVhc2liaWxpdHkgaXNzdWUgaXMgdGhlIGNhcGFjaXR5IHRvIHJlbGVhc2UgYSBzdWItY29tcG9uZW50IGY9CnJvbQo+ID4+IGdpdAo+ID4+IHdpdGggbWF2ZW4tcmVsZWFzZS1wbHVnaW4sIElNSE8KPiA+PiAodGFraW5nIGFwYXJ0IHRoZSBnaXQgcHVyaXN0cyBpZGVhIG9mIDEgbGlmZWN5Y2xlID0zRCAxIGdpdCByZXBvKQo+ID4+PTIwCj4gPj4gUmVnYXJkcywKPiA+Pj0yMAo+ID4+IEhlcnY9QzM9QTkKPiA+Pj0yMAo+ID4+PTIwCj4gPj4gWzFdIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMvCj4gPj49MjAKPiA+PiA+IE9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgNDoxNyBBTSwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyPQplZS5mcj4KPiA+Pj0yMAo+ID4+IHdyb3RlOgo+ID4+ID4gPiBUaGVyZSBhcmUgNiBzdm4gbG9jYXRpb25zIHdpdGhvdXQgYW55IHNwZWNpYWwgY29tcGxleGl0eSB0aGF0IGFyZQo+ID4+PTIwCj4gPj4gd2FpdGluZwo+ID4+PTIwCj4gPj4gPiA+IGZvcgo+ID4+ID4gPiBhIHZvbHVudGVlciBmb3IgZ2l0IG1pZ3JhdGlvbiBmb3IgYSBmZXcgeWVhcnMgYnV0IG5vYm9keSBkb2VzCj4gPj4gPiA+IGFueXRoaW5nCj4gPj4gPiA+IGFib3V0Ogo+ID4+ID4gPiBJIHN0YXJ0ZWQgMyBkYXlzIGFnbyB0byBhc2sgZm9yIGhlbHAgYWJvdXQgaXQgYW5kIGdvdCBwcmV0dHkgbm8KPiA+Pj0yMAo+ID4+IGZlZWRiYWNrCj4gPj49MjAKPiA+PiA+ID4gWzFdCj4gPj4gPiA+PTIwCj4gPj4gPiA+IHRoZW4gdGhlcmUgYXJlIHRoZSA0IGNvbXBsZXggc3ZuIGxvY2F0aW9ucyAocGx1Z2lucywgc2hhcmVkLAo+ID4+PTIwCj4gPj4gcmVzb3VyY2VzLAo+ID4+PTIwCj4gPj4gPiA+IGRveGlhLQo+ID4+ID4gPiB0b29scykgdGhhdCByZXF1aXJlIG11Y2ggbW9yZSB3b3JrOiBJIHN1cHBvc2Ugd2UgY2FuJ3QgdGVsbCBnaXQKPiA+Pj0yMAo+ID4+IG1pZ3JhdGlvbgo+ID4+PTIwCj4gPj4gPiA+IGlzCj4gPj4gPiA+IGFiYW5kb25lZCwgYnV0IGl0IHdpbGwgcmVxdWlyZSBzb21lb25lIHRvIHdvcmsgb24gaXQgc2VyaW91c2x5Cj4gPj4gPiA+IFJlbWVtYmVyIHRoYXQgdGhlIGtleSBxdWVzdGlvbiBbMl0gaXM6IGRvIHdlIHRyYW5zZm9ybSB0aGVzZSA0IHN2bgo+ID4+ID4gPiBsb2NhdGlvbnMKPiA+PiA+ID4gaW50byA0MSArMjYgKyA2ICsgNSA9M0QgNzggaW5kZXBlbmRlbnQgZ2l0IHJlcG9zPwo+ID4+ID4gPiBZZXMsIEkgdG9sZCB0aGF0IEplbmtpbnMgY29uZmlndXJhdGlvbiBpcyBvbmUga2V5IGFzcGVjdCB3ZSBuZWVkIGEKPiA+PiA+ID4gc3RyYXRlZ3kKPiA+PiA+ID4gYWJvdXQsIGluIHBhcmFsbGVsIHdpdGggZ2l0IHN0cmF0ZWd5Lgo+ID4+ID4gPj0yMAo+ID4+ID4gPiB0aGVuIHRoZXJlIHdpbGwgYmUgdGhlIHJlbWFpbmluZyBjYXNlcyB3aGVyZSB3ZSBuZWVkIHRvIGRlY2lkZTogbG89Cndlcgo+ID4+ID4gPiBpbXBhY3QsCj4gPj4gPiA+IGxvd2VyIHByaW9yaXR5Lgo+ID4+ID4gPj0yMAo+ID4+ID4gPj0yMAo+ID4+ID4gPiBTdW1tYXJ5OiBub3RoaW5nIGlzIGFiYW5kb25lZCwgYnV0Ogo+ID4+ID4gPiAtIHNpbXBsZSBjYXNlczogbm8gdm9sdW50ZWVyIHRvIGRvIHRoZSBqb2IKPiA+PiA+ID4gLSBoYXJkIGNhc2VzOiBpcyB0aGVyZSBhIHZvbHVudGVlciBlaXRoZXIgdG8gZGVmaW5lIGEgc3RyYXRlZ3kgb3IgPQpkbwo+ID4+PTIwCj4gPj4gc29tZQo+ID4+PTIwCj4gPj4gPiA+IHdvcmsKPiA+PiA+ID4gb24gaXQ/Cj4gPj4gPiA+PTIwCj4gPj4gPiA+PTIwCj4gPj4gPiA+IFJlZ2FyZHMsCj4gPj4gPiA+PTIwCj4gPj4gPiA+IEhlcnY9QzM9QTkKPiA+PiA+ID49MjAKPiA+PiA+ID4gWzFdIGh0dHBzOi8vbGlzdHMuYXBhY2hlLm9yZy90aHJlYWQuaHRtbC8KPiA+PiA+ID4gZWRmMzY0MmE3YmRkNTE1ZjBjYWQ0MjFjMjU1ODk3NDE4MTk0NDY0NjM2MTRiZjA1MTVlNTZkYmVACj4gPj4gPiA+ICUzQ2Rldi5tYXZlbi5hcGFjaGUub3JnJTNFCj4gPj4gPiA+PTIwCj4gPj4gPiA+IFsyXSBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL0dpdAo+ID4+ID4gPiArTWlncmF0aW9uI0dpdE1pZ3JhdGlvbi1NaWdyYXRpbmdhbmFnZ3JlZ2F0b3J0cmVlaW50b2Fjb2xsZWMKPiA+Pj0yMAo+ID4+IHRpb25vZmdpdHJlcG9zCj4gPj49MjAKPiA+PiA+ID4gTGUgdmVuZHJlZGkgNiBvY3RvYnJlIDIwMTcsIDIwOjM1OjQ1IENFU1QgQXJuYXVkIEg9QzM9QTlyaXRpZXIgYSA9Cj1DMz1BOWNyaXQgOgo+ID4+ID4gPiA+IEJ1dCBkaWQgd2UgY29tcGxldGVseSBhYmFuZG9uZWQgdGhlIGlkZWEgb2YgbW92aW5nIGV2ZXJ5dGhpbmcgdG8KPiA+Pj0yMAo+ID4+IGdpdCA/Cj4gPj49MjAKPiA+PiA+ID4gPiBUaGUgQ0kgc2V0dXAgd2FzIHRoZSBtYWluIHN0b3AgZm9yIGl0ID8KPiA+PiA+ID4gPj0yMAo+ID4+ID4gPiA+IE9uIEZyaSwgT2N0IDYsIDIwMTcgYXQgODowNSBQTSwgSGVydj1DMz1BOSBCT1VURU1ZIDwKPiA+Pj0yMAo+ID4+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPiA+Pj0yMAo+ID4+ID4gPiB3cm90ZToKPiA+PiA+ID4gPiA+IEkgd2FzIGV4cGVjdGluZyB0aGUgdXN1YWwgbGl0YW55Cj4gPj4gPiA+ID4gPj0yMAo+ID4+ID4gPiA+ID4gd2hhdCBJJ20gbm90IGNvbmZpZGVudCBjdXJyZW50bHkgd2l0aCBwaXBlbGluZSBvbiBNYXZlbiBjb3JlIGlzCj4gPj49MjAKPiA+PiB0aGF0Cj4gPj49MjAKPiA+PiA+ID4gPiA+IHdlCj4gPj4gPiA+ID4gPiBoYXZlCj4gPj4gPiA+ID4gPiBmb3IgZXhhbXBsZSB0aGUgIm1hdmVuLTMueC1qZW5raW5zZmlsZS9NTkctNjI0MiAtIGJ1aWxkICMxIC0KPiA+Pj0yMAo+ID4+IG51bGwiCj4gPj49MjAKPiA+PiA+ID4gPiA+IG1lc3NhZ2UsCj4gPj4gPiA+ID4gPiB3aXRoIHRoaXMgIm51bGwiIHBhcnQgdGhhdCBtYWtlcyBtZSB3b25kZXIgaWYgd2UgYXJlIHVzaW5nIGl0ID0KYXMKPiA+PiA+ID49MjAKPiA+PiA+ID4gZXhwZWN0ZWQuCj4gPj4gPiA+PTIwCj4gPj4gPiA+ID4gPiBBbmQgZm9yIGxhcmdlIG11bHRpLW1vZHVsZSBzdm4gdHJ1bmtzICh0aGUgb25lcyB3ZSBkb24ndCBtaWdyYT0KdGUKPiA+Pj0yMAo+ID4+IHRvCj4gPj49MjAKPiA+PiA+ID4gZ2l0Ogo+ID4+ID4gPiA+ID4gbWFpbmx5IHBsdWdpbnMgYW5kIHNoYXJlZCksIGlzIHRoZXJlIGEgc29sdXRpb24gdG8gcmVidWlsZCBqdXN0Cj4gPj4gPiA+ID4gPiBjaGFuZ2VkCj4gPj4gPiA+ID4gPiBtb2R1bGVzPwo+ID4+ID4gPiA+ID49MjAKPiA+PiA+ID4gPiA+IGlkZWFsbHksIHRoZSByZWJ1aWxkIHdoZW4gYSBTTkFQU0hPVCBkZXBlbmRlbmN5IGlzIHB1Ymxpc2hlZAo+ID4+ID4gPiA+ID4gd291bGQKPiA+PiA+ID4gPiA+IGhhdmUKPiA+PiA+ID4gPiA+IGJlZW4gYQo+ID4+ID4gPiA+ID4gcGx1cywgYnV0IHRoaXMgaXMgc3VmZmljaWVudGx5IGEgcmFyZSB1c2UgdGhhdCBJIHdvbid0IGJlCj4gPj49MjAKPiA+PiBleHRyZW1pc3QKPiA+Pj0yMAo+ID4+ID4gPiA+ID4gVGhlbiBJSVVDLCB0aGlzIG1pZ3JhdGlvbiBqb2IgaXMgb25lIGFkZGl0aW9uYWwgVE9ETyBmb3IgbWUuLi4KPiA+PiA+ID4gPiA+PTIwCj4gPj4gPiA+ID4gPiBSZWdhcmRzLAo+ID4+ID4gPiA+ID49MjAKPiA+PiA+ID4gPiA+IEhlcnY9QzM9QTkKPiA+PiA+ID4gPiA+PTIwCj4gPj4gPiA+ID4gPiBMZSB2ZW5kcmVkaSA2IG9jdG9icmUgMjAxNywgMTc6NDY6NTMgQ0VTVCBBcm5hdWQgSD1DMz1BOXJpdGllcj0KIGEgPUMzPUE5Y3JpdAo+ID4+ID4gPiA+ID49MjAKPiA+PiA+ID4gPiA+ID4gSSBhZ3JlZSB0aGF0IHdlIHNob3VsZCB1c2UgcGlwZWxpbmUgbm93ZGF5cwo+ID4+ID4gPiA+ID4gPiBwZXJoYXBzIGEgc2hhcmVkIGxpYiBpZiB3ZSB3YW50IHRvIHN0YW5kYXJkaXplIHNvbWUgc3R1ZmZzIGE9Cm5kCj4gPj49MjAKPiA+PiBhIHNldAo+ID4+PTIwCj4gPj4gPiA+IG9mCj4gPj4gPiA+PTIwCj4gPj4gPiA+ID4gPiA+IG11bHRpLWJyYW5jaGVzIGpvYnMgKG9yIG9yZyBmb2xkZXIgYnV0IGl0IHJlcXVpcmVzIEdpdEh1YiA6KD0KICkKPiA+PiA+ID4gPiA+ID49MjAKPiA+PiA+ID4gPiA+ID4gT24gRnJpLCBPY3QgNiwgMjAxNyBhdCA5OjE2IEFNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+PiA+ID4gPiA+ID49MjAKPiA+PiA+ID4gPiA+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPj4gPiA+ID4gPiA+ID4gT24gRnJpIDYgT2N0IDIwMTcgYXQgMDY6MzIsIEhlcnY9QzM9QTkgQk9VVEVNWSA8Cj4gPj49MjAKPiA+PiBoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPj49MjAKPiA+PiA+ID4gPiA+IHdyb3RlOgo+ID4+ID4gPiA+ID4gPiA+ID4gSSBqdXN0IGZpeGVkIGEgZmV3IGZhaWxpbmcgam9icyBbMV0gdG8gaGF2ZSBhZ2FpbiBhIHVzYWI9CmxlCj4gPj4gPiA+PTIwCj4gPj4gPiA+IEplbmtpbnMuCj4gPj4gPiA+PTIwCj4gPj4gPiA+ID4gPiA+ID4gPiBOb3cgSSdtIGZhY2luZyBzb21lIGlzc3VlcywgSSBzdXBwb3NlIGNhdXNlZCBieSBuZXdlcgo+ID4+PTIwCj4gPj4gSmVua2lucwo+ID4+PTIwCj4gPj4gPiA+ID4gPiB2ZXJzaW9uczoKPiA+PiA+ID4gPiA+ID4gPiA+IC0gTWF2ZW4gMy4wLjUgY2F1c2VzIE5vU3VjaE1ldGhvZEVycm9yOgo+ID4+ID4gPiA+ID4gPiA+ID4gby5jLnBsZXh1cy51dGlsLnhtbC5wdWxsLgo+ID4+ID4gPiA+ID4gPiA+PTIwCj4gPj4gPiA+ID4gPiA+ID4gTVhQYXJzZXIKPiA+PiA+ID4gPiA+ID4gPj0yMAo+ID4+ID4gPiA+ID4gPiA+ID4gWzJdCj4gPj4gPiA+ID4gPiA+ID4gPiAtIEkgaGFkIHRvIHN3aXRjaCB0byBKREsgOCBmb3IgbWF2ZW4tcGx1Z2luLXRvb2xzIGpvYiwKPiA+Pj0yMAo+ID4+IHNpbmNlIEpESwo+ID4+PTIwCj4gPj4gPiA+ID4gPiBjYXVzZXMKPiA+PiA+ID4gPiA+PTIwCj4gPj4gPiA+ID4gPiA+ID4gPiBmYWlsdXJlcyAobG9va3MgbGlrZSBKZW5raW5zIHVzZXMgYSBoYWNrIHRvIGluamVjdCBKREsgNz0KIGFzCj4gPj49MjAKPiA+PiBhCj4gPj49MjAKPiA+PiA+ID4gdG9vbAo+ID4+ID4gPj0yMAo+ID4+ID4gPiA+ID4gd2hpbGUKPiA+PiA+ID4gPiA+PTIwCj4gPj4gPiA+ID4gPiA+ID4gPiB0aGUKPiA+PiA+ID4gPiA+ID4gPiA+IGJ1aWxkIEpWTSBpcyBKYXZhIDgpCj4gPj4gPiA+ID4gPiA+ID4gPj0yMAo+ID4+ID4gPiA+ID4gPiA+ID4gU2hvdWxkIHdlIGRyb3AgTWF2ZW4gMy4wLjUgYnVpbGRzIGFuZCBKREsgNz8KPiA+PiA+ID4gPiA+ID4gPiA+IE5vdGljZSBJIGRpZG4ndCBjaGVjayB3aGljaCBpcyB0aGUgbWluaW11bSBNYXZlbiB2ZXJzaW9uCj4gPj4gPiA+PTIwCj4gPj4gPiA+IHJlcXVpcmVkLi4uCj4gPj4gPiA+PTIwCj4gPj4gPiA+ID4gPiA+ID4gPiBPciBwZXJoYXBzIHNpbXBseSBkb24ndCB1c2UgdGhlIEplbmtpbnMgTWF2ZW4gcGx1Z2luIHdpdGgKPiA+Pj0yMAo+ID4+IHRoaXMKPiA+Pj0yMAo+ID4+ID4gPiBNYXZlbgo+ID4+ID4gPj0yMAo+ID4+ID4gPiA+ID4gPiA+IDMuMC41Cj4gPj4gPiA+ID4gPiA+ID49MjAKPiA+PiA+ID4gPiA+ID4gPiA+IG9yCj4gPj4gPiA+ID4gPiA+ID4gPiBKREsgNyBjb25maWd1cmF0aW9uOiBkZWZhdWx0IGJ1aWxkIGFzIEplbmtpbnMgTWF2ZW4gcGx1Zz0KaW4KPiA+Pj0yMAo+ID4+IHdpdGgKPiA+Pj0yMAo+ID4+ID4gPiBKREsKPiA+PiA+ID49MjAKPiA+PiA+ID4gPiA+IDggKwo+ID4+ID4gPiA+ID49MjAKPiA+PiA+ID4gPiA+ID4gPiA+IGxhdGVzdAo+ID4+ID4gPiA+ID4gPiA+ID4gTWF2ZW4sIGFuZCBvdGhlciBjb25maWd1cmF0aW9ucyBhcyBzY3JpcHRlZCBqb2JzPwo+ID4+ID4gPiA+ID4gPiA+PTIwCj4gPj4gPiA+ID4gPiA+ID4gaHR0cDovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuaWUvMjAxMy8xMS9qZW5raW5zLW1hdmVuLWpvYj0KPTJEPgo+ID4+ID4gPiA+ID49MjAKPiA+PiA+ID4gPiA+IHR5cGUtY29uc2lkZXJlZC1ldmlsLmh0bWwKPiA+PiA+ID4gPiA+PTIwCj4gPj4gPiA+ID4gPiA+ID4gPGh0dHA6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90LmllLzIwMTMvMTEvamVua2lucy0+ID4KPiA+PiA+ID4gPiA+PTIwCj4gPj4gPiA+ID4gPiBtYXZlbi1qb2ItdHlwZS1jb25zaWRlcmVkLWV2aWwuaHRtbD9tPTNEMT4KPiA+PiA+ID4gPiA+PTIwCj4gPj4gPiA+ID4gPiA+ID4gV2Ugc2hvdWxkIHN0b3AgdXNpbmcgdGhlIGV2aWwgam9iIHR5cGUgYXMgaXQ9RTI9ODA9OTlzIG1pbj0KaW11bSBKYXZhCj4gPj4gPiA+PTIwCj4gPj4gPiA+IHZlcnNpb24gaXMKPiA+PiA+ID49MjAKPiA+PiA+ID4gPiA+ID4gPiBkaWN0YXRlZCBieSBKZW5raW5zPUUyPTgwPTk5IEphdmEgbWluaW11bS4KPiA+PiA+ID4gPiA+ID4gPj0yMAo+ID4+ID4gPiA+ID4gPiA+ID4gV2UgbmVlZCB0byBkZWZpbmUgb3VyIGNvbW1vbiBzdHJhdGVneSBhbmQgaGF2ZSBhIGNvbnNpc3Q9CmVudAo+ID4+ID4gPiA+ID4gPiA+ID4gY29uZmlndXJhdGlvbgo+ID4+ID4gPiA+ID4gPiA+ID4gZm9yCj4gPj4gPiA+ID4gPiA+ID4gPiBldmVyeSBqb2IgdW5kZXJzdG9vZCBieSBldmVyeWJvZHkKPiA+PiA+ID4gPiA+ID4gPj0yMAo+ID4+ID4gPiA+ID4gPiA+IEkgcmVjb21tZW5kIEplbmtpbnNmaWxlIGFuZCB0aGUgYHdpdGhNYXZlbmAgd3JhcHBlcgo+ID4+ID4gPiA+ID4gPiA+PTIwCj4gPj4gPiA+ID4gPiA+ID4gPiBSZWdhcmRzLAo+ID4+ID4gPiA+ID4gPiA+ID49MjAKPiA+PiA+ID4gPiA+ID4gPiA+IEhlcnY9QzM9QTkKPiA+PiA+ID4gPiA+ID4gPiA+PTIwCj4gPj4gPiA+ID4gPiA+ID4gPiBbMV0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuLwo+ID4+ID4gPiA+ID4gPiA+ID49MjAKPiA+PiA+ID4gPiA+ID4gPiA+IFsyXQo+ID4+ID4gPiA+ID4gPiA+ID4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi09Cj4gPgo+ID4+ID4gPiA+ID4gPiA+PTIwCj4gPj4gPiA+ID4gPiA+ID4gcGx1Z2luLXRvb2xzLWpkay0xLjcvMTYyL2NvbnNvbGUKPiA+PiA+ID4gPiA+ID4gPj0yMAo+ID4+ID4gPiA+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj49MjAKPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+Pj0yMAo+ID4+ID4gPiA+ID4gLS0tLS0tLS0tCj4gPj4gPiA+ID4gPj0yMAo+ID4+ID4gPiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+ID4gPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vPQpyZwo+ID4+ID4gPiA+ID4gPiA+ID49MjAKPiA+PiA+ID4gPiA+ID4gPiA+IC0tCj4gPj4gPiA+ID4gPiA+ID49MjAKPiA+PiA+ID4gPiA+ID4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+PiA+ID4gPiA+PTIwCj4gPj4gPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+Pj0yMAo+ID4+IC0tLS0tLS0tLQo+ID4+PTIwCj4gPj4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4gPj0yMAo+ID4+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0tCj4gPj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj0yMAo+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID49MjAKPiA+IC0tCj4gPiBDaGVlcnMKPiA+IFRpYm9yCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDYzNS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgTm92IDI4IDA2OjQ2OjE4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDYzNS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAzODE0QzEwRDkxCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMjggTm92IDIwMTcgMDY6NDY6MTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2MzQ2NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBOb3YgMjAxNyAwNjo0NjoxNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjMxMTUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggTm92IDIwMTcgMDY6NDY6MTcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MzA5OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IE5vdiAyMDE3IDA2OjQ2OjE3IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAyOCBOb3YgMjAxNyAwNjo0NjoxNyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDg4NTI5QzNBOTYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDA2OjQ2OjE2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS45OTkKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjk5OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsCglLQl9XQU1fRlJPTV9OQU1FX1NJTkdMRVdPUkQ9MC4yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBKdzE2Y2VsemR4X3QgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUdWUsIDI4IE5vdiAyMDE3IDA2OjQ2OjE0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwNy5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyOV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA2NjUxRDVGMTlECglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAwNjo0NjoxMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ2NiB3aXRoIE1FCglpZCBmSm03MXcwMFAyMFVmZHkwM0ptN3J6OyBUdWUsIDI4IE5vdiAyMDE3IDA3OjQ2OjA3ICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFR1ZSwgMjggTm92IDIwMTcgMDc6NDY6MDcgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogYmVhbSBsZWF2aW5nIG1hdmVuLCBhbnl0aGluZyBkb2FibGU/CkRhdGU6IFR1ZSwgMjggTm92IDIwMTcgMDc6NDY6MDcgKzAxMDAKTWVzc2FnZS1JRDogPDI0MTM3OTUueWh2cHpsdjVReEBnaWdhPgpJbi1SZXBseS1UbzogPENBQ0xFPTdQb1dqR3I9LTVDREdfYnRKOEFPMW1pYVY1UUgrZnJLZnh2Wm9HN0ZXOC1zZ0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBQ0xFPTdOa3lpZ1l4bWhKeVRDOXU3UjN0WlhoRW9QT0FwZDhqT2pHdVVEMjFZcV94Z0BtYWlsLmdtYWlsLmNvbT4gPDIwMTcxMTI3MjIwMTUzLjJFNEJCMjlDNDNDOUBkZDE3MzMyLmthc3NlcnZlci5jb20+IDxDQUNMRT03UG9XakdyPS01Q0RHX2J0SjhBTzFtaWFWNVFIK2ZyS2Z4dlpvRzdGVzgtc2dAbWFpbC5nbWFpbC5jb20+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKPiBXaXRoIHNvIG11Y2ggZGlmZmVyZW5jZSBJIHN0cm9uZ2x5IHRoaW5rIHRoZXJlIGFyZSByb29tIGZvciBpbXByb3ZlbWVudCBiPQp1dAo+IGZhaWwgdG8gc2VlIGhvdyBtYXZlbiBncmFwaCBjb21wdXRhdGlvbiBjYW4gbG9vayB0aGF0IGJhZCA6KC4KSU1ITywgdmlzdWFsaXppbmcgdGhhdCBncmFwaCBhbmQgdGhlIGVmZmVjdGl2ZSB0aW1lIG9uIGVhY2ggYnVpbGQgc3RlcCBpcyB0PQpoZT0yMApmaXJzdCB0aGluZyB0byBkbyBiZWZvcmUgdHJ5aW5nIHRvIGNoYW5nZSBhbnl0aGluZwpJdCdzIG9uIG15IFRPRE8gbGlzdCBmb3IgYSBsb25nIHRpbWU6IGhhdmluZyBzb21lIGNvbW1vbiB3b3JrIG9uIGl0IHdvdWxkIGg9CmVscAoKUmVnYXJkcywKCkhlcnY9RTkKCkxlIG1hcmRpIDI4IG5vdmVtYnJlIDIwMTcsIDA3OjA0OjA0IENFVCBSb21haW4gTWFubmktQnVjYXUgYSA9RTljcml0IDoKPiBMZSAyNyBub3YuIDIwMTcgMjM6MDIsICJNYW5mcmVkIE1vc2VyIiA8bWFuZnJlZEBzaW1wbGlnaWxpdHkuY29tPiBhID1FOWNyPQppdCA6Cj49MjAKPiBKdXN0IG15IDJjIGFzIGEgbG9uZyB0ZXJtcyBNYXZlbiB1c2VyIGFuZCBjb21taXR0ZXIuLgo+PTIwCj4gUGVvcGxlIGhhdmUgYmVlbiBtb3ZpbmcgZnJvbSBvbmUgYnVpbGQgdG9vbCB0aGUgb3RoZXIgZm9yIHllYXJzLiBUaGF0Cj4gaW5jbHVkZXMgdG8gR3JhZGxlLCB0byBNYXZlbiBhbmQgdG8gYWxsIHNvcnRzIG9mIG90aGVycyBzdHVmZiBhbmQgYmFjay4gSWYKPiB0aGUgQmVhbSBwcm9qZWN0IHRoaW5rcyB0aGV5IHdpbGwgZ2V0IHNpZ25pZmljYW50IGltcHJvdmVtZW50cyBmb3IgdGhlaXIKPiBidWlsZCB0aW1lcyBhbmQgdGhleSB3YW50IHRvIG1pZ3JhdGUuLiBsZXQgdGhlbS4gVGhleSB3aWxsIGhhdmUgdG8gbGVhcm4gYQo+IHdob2xlIGJ1bmNoIG9mIGRpZmZlcmVudCB0aGluZ3MgYW5kIHNlZSBzb21lIGFkdmFudGFnZXMgYXMgd2VsbCBhcyBsb3Qgb2YKPiBkaXNhZHZhbnRhZ2VzLgo+PTIwCj49MjAKPiBUaGV5IGFscmVhZHkgaGF2ZSBncmFkbGUgYnVpbGQgZnVuY3Rpb25hbC4KPj0yMAo+PTIwCj49MjAKPiBGcm9tIG15IHBlcnNwZWN0aXZlIHRoZSBidWlsZCB0aW1lIGlzIE5PVCBzaWduaWZpY2FudGx5IGZhc3RlciB3aXRoIEdyYWRsZQo+IGFuZCBkZXBlbmRzIGEgTE9UIG9uIHdoYXQgeW91ciBidWlsZCBhY3R1YWxseSBkb2VzLiBNb3JlIGltcG9ydGFudGx5IHRoZQo+IGludGVncmF0aW9uIHdpdGggSURFcyBhbmQgb3RoZXIgdG9vbHMgaXMgYSBsb3Qgd29yc2UgaW4gbWFueSBhc3BlY3RzLgo+PTIwCj49MjAKPiBJdCBpcyBmb3IgbXVsdGltb2R1a2UgcHJvamVjdC4gSSBkaWRudCByZXByb2R1Y2UgdGhlaXIgZmlndXJlcyBidXQgc2tpcHBpPQpuZwo+IHRoZWlyIHB5dGhvbiBwYXJ0IGl0IGlzIHJlYWxseSBsaWtlIDMwJSBmYXN0ZXIgZm9yIG1lIGZvciB0aGUgc2FtZSB0aGcuCj49MjAKPj0yMAo+PTIwCj4gQXMgbG9uZyBhcyB0aGV5IGNhbiBtYWtlIHN1cmUgdGhhdCB0aGVpciBiaW5hcmllcyBhcmUgcHVibGlzaGVkIHNvIHRoYXQgYT0KbnkKPiB1c2VyIGNhbiBlYXNpbHkgY29uc3VtZSB0aGVtIChlLmEuIHRoZXkgcHVibGlzaCBwcm9wZXIgYmluYXJpZXMgYW5kIHBvbQo+IGZpbGVzIHRvIHRoZSBDZW50cmFsIFJlcG9zaXRvcnkpIEkgaGF2ZSBubyBvYmplY3Rpb24uCj49MjAKPiBPZiBjb3Vyc2UgaWYgdGhleSB3b3VsZCBzdGVwIHVwIGFuZCBoZWxwIHVzIHdpdGggTWF2ZW4gYW5kIG1ha2UgaXQgYmV0dGVyCj4gdGhhdCB3b3VsZCBjZXJ0YWlubHkgYmUgYmV0dGVyIHRoYW4gcHV0dGluZyBlZmZvcnQgaW50byBtaWdyYXRpbmcuLi4gYnV0Cj4gdGhhdHMgYSBkaWZmZXJlbnQgc3RvcnkuCj49MjAKPiBBbmQgYW5vdGhlciBvbmUgb2YgY291cnNlIGlzIHRoYXQgR3JhZGxlIGlzIG9wZW4gc291cmNlIHByb2plY3QgbW9zdGx5Cj4gc3BvbnNvcmVkIGJ5IGEgc2luZ2xlIGNvbXBhbnkgYW5kIGhlbmNlIHVuZGVyIGEgdmVyeSBkaWZmZXJlbnQgY29udHJvbAo+IGNvbXBhcmVkIHRvIE1hdmVuLi4KPj0yMAo+PTIwCj49MjAKPiBBZ3JlZSBiaXQgLzIgLSBmb3IgbW9zdCBvdGhlciBwZW9wbGUgLSB0aGUgYnVpbGQgdGltZSB3aGljaCBpcyBzaWduaWZpY2FudAo+IChpdCBpcyBub3QgYSBjb21tbW9ucyBwcm9qZWN0IHlvdSBjYW4gYnVpbGQgaW4gbGVzcyB0aGFuIDVtbiA7KSkuCj49MjAKPiBXaXRoIHNvIG11Y2ggZGlmZmVyZW5jZSBJIHN0cm9uZ2x5IHRoaW5rIHRoZXJlIGFyZSByb29tIGZvciBpbXByb3ZlbWVudCBiPQp1dAo+IGZhaWwgdG8gc2VlIGhvdyBtYXZlbiBncmFwaCBjb21wdXRhdGlvbiBjYW4gbG9vayB0aGF0IGJhZCA6KC4KPj0yMAo+PTIwCj4gTWFuZnJlZAo+PTIwCj4gUm9tYWluIE1hbm5pLUJ1Y2F1IHdyb3RlIG9uIDIwMTctMTEtMjcgMTM6NDM6Cj4gPiBEb2VzbnQgY2hhbmdlIGFueXRoaW5nIHNpZ25pZmljYXRpdmUgLSB0aGlzIGlzIG15IHNldHVwLgo+ID49MjAKPiA+IExlIDI3IG5vdi4gMjAxNyAyMjowMSwgIklnb3IgRmVkb3JlbmtvIiA8aWdvckBpZmVkb3JlbmtvLmNvbT4gYSA9RTljcml0PQogOgo+ID4+IEkgd291bGRuJ3QgYm90aGVyIHdpdGggVGFrYXJpIGxvY2FsIHJlcG9zaXRvcnksIGl0J3MgYnJva2VuIGJyb2tlbiwgc2VlCj4gPj4gWzFdIGFuZCBbMl0uIERlZmF1bHQgQWV0aGVyIGxvY2FsIHJlcG9zaXRvcnkgaW1wbCBpcyB0aHJlYWQtc2FmZSBlbm91Zz0KaCwKPiA+PiBhdCBsZWFzdCB3aGVuIGxvY2FsIHJlcG9zaXRvcnkgaXMgdXNlZCBmcm9tIHNpbmdsZS1wcm9jZXNzCj4gPj4gbXVsdGktdGhyZWFkZWQgYnVpbGQuCj4gPj49MjAKPiA+PiBbMV0gaHR0cHM6Ly9naXRodWIuY29tL3Rha2FyaS90YWthcmktbG9jYWwtcmVwb3NpdG9yeS9pc3N1ZXMvNAo+ID4+IFsyXSBodHRwczovL2dpdGh1Yi5jb20vdGFrYXJpL3Rha2FyaS1sb2NhbC1yZXBvc2l0b3J5L2lzc3Vlcy81Cj4gPj49MjAKPiA+PiAtLQo+ID4+IFJlZ2FyZHMsCj4gPj4gSWdvcgo+ID4+PTIwCj4gPj4gT24gTW9uLCBOb3YgMjcsIDIwMTcsIGF0IDAzOjI4IFBNLCBNaWNoYWVsIE9zaXBvdiB3cm90ZToKPiA+PiA+IEkgcmVhbGx5IHdvdWxkIGxpa2UgdG8gc2VlIHRoZSBzYW1lIG51bWJlcnMgd2l0aCBUYWthcmkgU21hcnQgQnVpbGRlcgo+ID4+ID4gYW5kIHRocmVhZC1zYWZlIGxvY2FsIHJlcG8gbW9kdWxlLgo+ID4+ID49MjAKPiA+PiA+IEFtIDIwMTctMTEtMjcgdW0gMjA6NTIgc2NocmllYiBSb21haW4gTWFubmktQnVjYXU6Cj4gPj4gPiA+IEV2ZW4gZG9pbmcgaXQgdGhlIGRpZmZlcmVuY2UgaXMgc2lnbmlmaWNhdGl2ZS4gVGhlIHBhcmFsbGVsaXNtIGFuZAo+ID4+ID4gPiBncmFwaCBjb21wdXRhdGlvbiAobGlua2VkIHRvIHRoZSBsb2NhbCByZXBvIHRocmVhZCBzYWZldHkpIGlzIHRoZQo+PTIwCj4gbWFpbgo+PTIwCj4gPj4gPiA+IGRyYXdiYWNrIG9mIG1hdmVuIGl0IHNlZW1zLgo+ID4+ID4gPj0yMAo+ID4+ID4gPiBSb21haW4gTWFubmktQnVjYXUKPiA+PiA+ID4gQHJtYW5uaWJ1Y2F1IHwgIEJsb2cgfCBPbGQgQmxvZyB8IEdpdGh1YiB8IExpbmtlZEluCj4gPj4gPiA+PTIwCj4gPj4gPiA+IDIwMTctMTEtMjcgMjA6NDcgR01UKzAxOjAwIE1pY2hhZWwgT3NpcG92IDxtaWNoYWVsb0BhcGFjaGUub3JnPjoKPiA+PiA+ID4+IEFtIDIwMTctMTEtMjcgdW0gMjA6MjQgc2NocmllYiBSb21haW4gTWFubmktQnVjYXU6Cj4gPj4gPiA+Pj4gSGkgZ3V5cywKPiA+PiA+ID4+Pj0yMAo+ID4+ID4gPj4+IGFueXRoaW5nIGRvYWJsZSBvbiBtYXZlbiBzaWRlIChlaXRoZXIgdHVuaW5nIG9yIGNvZGUgY2hhbmdlcykgdG89CiBiZQo+ID4+PTIwCj4gPj4gYXMKPiA+Pj0yMAo+ID4+ID4gPj4+IGdvb2QgYXMgZ3JhZGxlIG9uIGJlYW0gcHJvamVjdC4gVGhlIHByb2plY3QgaXMgZ29pbmQgdG8gbGVhdmUgbWE9CnZlbgo+ID4+PTIwCj4gPj4gYXMKPiA+Pj0yMAo+ID4+ID4gPj4+IGJ1aWxkIHRvb2wgKFsxXSkgYW5kIEkgdGhpbmsgaXQgaXMgdmVyeSBiYWQgZm9yIDEuIHRoZSBjb21tdW5pdHkKPj0yMAo+IGFuZAo+PTIwCj4gPj4gPiA+Pj4gMi4gQVNGIGFzIGFuIGVjb3N5c3RlbS4KPiA+PiA+ID4+Pj0yMAo+ID4+ID4gPj4+IFsxXQo+ID4+ID4gPj4+IGh0dHBzOi8vbGlzdHMuYXBhY2hlLm9yZy90aHJlYWQuaHRtbC82ZDZmN2ZmYzY2NjIyZGIxZGQ0NTllMTcwNGM9CjNhNQo+ID4+PTIwCj4gPj4gZDhhNGJjMjljMmQ5YzBiNjAzNTRmZDNiNmFAJTNDZGV2LmJlYW0uYXBhY2hlLm9yZyUzRQo+ID4+PTIwCj4gPj4gPiA+PiBEaWQgdGhleSBkaXNhYmxlIHRoZSBidWlsZCBkYWVtb24/IElmIG5vdCwgaXQgaXMgbm90IGEgZmFpcgo+ID4+PTIwCj4gPj4gY29tcGFyc2lvbi4KPiA+Pj0yMAo+ID4+ID4gPj4gTWljaGFlbAo+ID4+ID4gPj0yMAo+ID4+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0tCj4gPj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+PTIwCj4gPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj49MjAKPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1NDktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE5vdiAxOSAxOTozNjoxMiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1NDktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNTlBNTAxMDk3NAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDE5IE5vdiAyMDE3IDE5OjM2OjEyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDgzNTEgaW52b2tlZCBieSB1aWQgNTAwKTsgMTkgTm92IDIwMTcgMTk6MzY6MTIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ4MjU0IGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IE5vdiAyMDE3IDE5OjM2OjEyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDgyMzkgaW52b2tlZCBieSB1aWQgOTkpOyAxOSBOb3YgMjAxNyAxOTozNjoxMSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTkgTm92IDIwMTcgMTk6MzY6MTEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAwM0UyQjE4MDYzMwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTkgTm92IDIwMTcgMTk6MzY6MTEgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgMnZYTWlXUC01VHV0IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAxOSBOb3YgMjAxNyAxOTozNjowOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMTIuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMzRdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMzZDNTg1RjU2OQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTkgTm92IDIwMTcgMTk6MzY6MDkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMjMgd2l0aCBNRQoJaWQgYnZjMTF3MDBGMjBVZmR5MDN2YzFDcTsgU3VuLCAxOSBOb3YgMjAxNyAyMDozNjowMSArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBTdW4sIDE5IE5vdiAyMDE3IDIwOjM2OjAxICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IG1lcmdpbmcgTU5HLTYzMDIgdG8gbWFzdGVyCkRhdGU6IFN1biwgMTkgTm92IDIwMTcgMjA6MzY6MDEgKzAxMDAKTWVzc2FnZS1JRDogPDI0MjQzMzYuSmh4Vkw1SGhNMEBnaWdhPgpJbi1SZXBseS1UbzogPENBRk5DVS05YUsxQk1tTkZwNFNQRmtSPXJFc05mNzZpUzN5Rmk4TXdkUHN4blM2OWRZUUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPDE2MjExNzYuc0phaEVtOTMyNUBnaWdhPiA8b3AueTlzNDJ6cjhrZGtocnJAZGVza3RvcC0ya2hzazQ0PiA8Q0FGTkNVLTlhSzFCTW1ORnA0U1BGa1I9ckVzTmY3NmlTM3lGaThNd2RQc3huUzY5ZFlRQG1haWwuZ21haWwuY29tPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCm1lcmdlZAp0aGFuayB5b3UKCkxlIGpldWRpIDE2IG5vdmVtYnJlIDIwMTcsIDIyOjQ2OjU0IENFVCBBcm5hdWQgSD1FOXJpdGllciBhID1FOWNyaXQgOgo+ICsxCj49MjAKPiBPbiBUaHUsIE5vdiAxNiwgMjAxNyBhdCAxMTo0OCBBTSwgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgo+PTIwCj4gd3JvdGU6Cj4gPiArMQo+ID49MjAKPiA+PTIwCj4gPj0yMAo+ID4gT24gVGh1LCAxNiBOb3YgMjAxNyAxODoyNDowOSArMDEwMCwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWU9Cj0yRWZyPgo+ID4gd3JvdGU6Cj4gPj0yMAo+ID4gSSB1cGRhdGVkIE1ORy02MzAyIGltcGxlbWVudGF0aW9uOgo+ID4+IHNlZSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MzAyCj4gPj49MjAKPiA+PiBhcmUgdGhlcmUgc2Vjb25kZXJzIGZvciB0aGlzIGltcGxlbWVudGF0aW9uPwo+ID4+IG9yIGlkZWFzIG9uIGJldHRlciBkaXNwbGF5cz8KPiA+Pj0yMAo+ID4+IFJlZ2FyZHMsCj4gPj49MjAKPiA+PiBIZXJ2PUU5Cj4gPj49MjAKPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDI5MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgT2N0IDIxIDEwOjE5OjU5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI5MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAzQUE2MDEwQzdECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMjEgT2N0IDIwMTcgMTA6MTk6NTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4ODgyMCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBPY3QgMjAxNyAxMDoxOTo1OCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODg3MTMgaW52b2tlZCBieSB1aWQgNTAwKTsgMjEgT2N0IDIwMTcgMTA6MTk6NTggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4ODcwMiBpbnZva2VkIGJ5IHVpZCA5OSk7IDIxIE9jdCAyMDE3IDEwOjE5OjU4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAyMSBPY3QgMjAxNyAxMDoxOTo1OCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEE0QkNEMUEwNzI0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAyMSBPY3QgMjAxNyAxMDoxOTo1NyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHE4NTU0UF9KMlNKUCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgMjEgT2N0IDIwMTcgMTA6MTk6NTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDAxLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTIzXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDBFRDI1NUY0N0QKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDIxIE9jdCAyMDE3IDEwOjE5OjUzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDUzIHdpdGggTUUKCWlkIFFBS20xdzAwTTIwVWZkeTAzQUttajg7IFNhdCwgMjEgT2N0IDIwMTcgMTI6MTk6NDcgKzAyMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogU2F0LCAyMSBPY3QgMjAxNyAxMjoxOTo0NyArMDIwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBNYXZlbiBEb2NrZXIgSW1hZ2VzCkRhdGU6IFNhdCwgMjEgT2N0IDIwMTcgMTI6MTk6NDYgKzAyMDAKTWVzc2FnZS1JRDogPDI0NzM0NTIzLmE2SnNFOHNmc2hAZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zNy1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpJbi1SZXBseS1UbzogPENBK25Qbk14Q3V1cFA5NXZQalhtRXdfR3pkelVycjJDX1NmRkhEVGtvZXpBR0I9czFmUUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBSlJ2RmRvLTMzWmZ4aUZzSndqaUdRSk1ZVDVtdTMxZnFEMWZfdTNGVVFUb0p2PVR1Z0BtYWlsLmdtYWlsLmNvbT4gPDE3MDgyODUueGJRUk9Jajk5WkBnaWdhPiA8Q0ErblBuTXhDdXVwUDk1dlBqWG1Fd19HemR6VXJyMkNfU2ZGSERUa29lekFHQj1zMWZRQG1haWwuZ21haWwuY29tPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpMZSBzYW1lZGkgMjEgb2N0b2JyZSAyMDE3LCAwODoxNjozNSBDRVNUIFN0ZXBoZW4gQ29ubm9sbHkgYSA9QzM9QTljcml0IDoKPiBPbiBTYXQgMjEgT2N0IDIwMTcgYXQgMDg6NDUsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3PQpyb3RlOgo+ID4gb2ssIGxldCdzIHN3aXRjaCBkaXJlY3RseSB0byB0aGUgRG9ja2VyIGNhc2UKPiA+PTIwCj4gPiBJJ20gbm90IGEgRG9ja2VyIGV4cGVydCwgdGhlbiBJJ20gZGlzY292ZXJpbmcgdGhpbmdzIHRoYXQgbXkgYmUgb2J2aW91cz0KIHRvCj4gPiBvdGhlcnMKPiA+PTIwCj4gPiBJSVVDIERvY2tlciBoYXMgYW4gIm9mZmljaWVsIGltYWdlcyIgcHJvamVjdCBbMV0gd2hlcmUgQ2FybG9zIHByb3ZpZGVkIGEKPiA+IE1hdmVuCj4gPiBpbWFnZSBbMl06IHRoZW4gdGhpcyBpbWFnZSBpcyBrbm93biBhcyAidGhlIG9mZmljaWFsIE1hdmVuIERvY2tlciBpbWFnZSIKPiA+IENhcmxvcyBpcyBhbiBpbmRpdmlkdWFsLCBoZSdzIGFsc28gYSBQTUMgbWVtYmVyIG9mIE1hdmVuCj4gPj0yMAo+ID4gd2hhdCBkbyB3ZSB3YW50IHRvIHNheTogdGhlIFBNQyBtZW1iZXIgaGFzIHByb3ZpZGVkIGFuIG9mZmljaWFsIERvY2tlcgo+ID4gaW1hZ2Ugb3IKPiA+IGFuIGluZGl2aWR1YWwgaGFzIHByb3ZpZGVkIGFuIG9mZmljaWFsIERvY2tlciBpbWFnZT8KPiA+PTIwCj4gPiBkZXBlbmRpbmcgb24gdGhlIGFuc3dlciwgc29tZSB3YXkgb2YgZG9pbmcgaGFzIHRvIGJlIGNoYW5nZWQgKEdpdCBsb2NhdD0KaW9uCj4gPiBvcgo+ID4gbmFtaW5nIG9mIHRoZSBvZmZpY2lhbCBpbWFnZSkKPj0yMAo+IEk9RTI9ODA9OTltIGluIGZhdm91ciBvZiBjcmVhdGluZyBhIHJlcG8gZm9yIHRoZSBkb2NrZXJmaWxlLCBsaWNlbnNlLnR4dCw9CiByZWFkIG1lLAo+IG5vdGljZXMsIGV0YwpvaywgaGVyZSBJIGZvbGxvdwoKPiBhbmQgZm9sbG93IHRoZSBzdGFuZGFyZCByZWxlYXNlIHZvdGUgbGlmZWN5Y2xlIGZvciB0aGF0Cj4gZG9ja2VyZmlsZS4KaGVyZSwgSSdtIG5vdCBzdXJlIHRoaXMgcmVhbGx5IGhhcyBhIG1lYW5pbmcgaW4gdGhlc2Ugb2ZmaWNpYWwgRG9ja2VyIGltYWdlPQpzPTIwCmNhc2VzOiBJSVVDLCBvbiBhIG5ldyBNYXZlbiBjb3JlIHJlbGVhc2UgdGhhdCB3ZSB3YW50IHRvIHByb21vdGUsIHRoZXJlIGFyZT0KIDI9MjAKYWN0aW9ucyB0aGF0IGFyZSByZXF1aXJlZDoKMS4gbW9kaWZ5IHRoZSBNQVZFTl9WRVJTSU9OIGFuZCBTSEEgdmFsdWVzIGluICovRG9ja2VyZmlsZSBpbiB0aGUgZ2l0IHJlcG8gPQpbMV0KMi4gaGF2ZSBhIFBSIG1lcmdlZCB0byBEb2NrZXIgb2ZmaWNpYWwtaW1hZ2VzIHRvIHVwZGF0ZSB0aGUgc2hhMSBpbiBvZmZpY2lhPQpsLQppbWFnZXMvbGlicmFyeS9tYXZlbiBbMl0KCkJldHdlZW4gdGhlIDIgc3RlcHMsIHdlIGNhbiBjaG9vc2UgdG8gdm90ZSwgb3Igbm90IHRvIHZvdGUsIEkgZG9uJ3Qga25vdz0yMAp3aGF0J3MgdGhlIGJlc3Q6IHdlIGFscmVhZHkgdm90ZWQgZm9yIHRoZSBNYXZlbiByZWxlYXNlIHRoYXQgZ2V0cyB0aGUgbmV3PTIwCnJlY29tbWVuZGVkIHZlcnNpb24uCldoYXQgaXMgaW1wb3J0YW50IHRvIG1lIGlzIHRoYXQgYW55Ym9keSBmcm9tIHRoZSBQTUMgY2FuIGRvIHRoZSBQUiB0byBEb2NrZT0Kcj0yMApvZmZpY2lhbC1pbWFnZXMgKGlmIHdlIGRlY2lkZSB0aGF0IHdlIG1haW50YWluIHRoZSBvZmZpY2lhbCBpbWFnZSwgbm90IG9ubHk9Cj0yMApDYXJsb3MpOiB0aGVyZSBpcyBub3Qgc3BlY2lmaWMgY3JlZGVudGlhbHMKCk9uZSB0aGluZyBJIHNlZSBpcyB0aGF0IHdlIGNhbiBhdXRvbWF0ZSBhIGNoZWNrIHRoYXQgdGhlIGN1cnJlbnQgb2ZmaWNpYWwtaT0KbWFnZT0yMAppcyBvdXIgY3VycmVudGx5IHJlY29tbWVuZGVkIE1hdmVuIHZlcnNpb246IGl0J3MganVzdCBhYm91dCBhZGRpbmcgYSBuZXcgY2g9CmVjaz0yMAp0byBkaXN0LXRvb2wtcGx1Z2luIHRoYXQgd2lsbCBiZSBjaGVja2VkIGV2ZXJ5IGRheSBieSBKZW5raW5zIGpvYiBbM10KClsxXSBodHRwczovL2dpdGh1Yi5jb20vY2FybG9zc2cvZG9ja2VyLW1hdmVuCgpbMl0gaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci1saWJyYXJ5L29mZmljaWFsLWltYWdlcy9ibG9iL21hc3Rlci9saWJyYXJ5L209CmF2ZW4KClszXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL2Rpc3QtdG9vbC1wbHVnaW4vc2l0ZS8KCj49MjAKPiBJZiB3ZSB3YW50IHRoYXQgZG9ja2VyZmlsZSBpbiBNYXZlbi1jb3JlIHJlcG8sIGk9RTI9ODA9OTltIEZpbmUgd2l0aCB0aGF0PQogdG9vCmdpdmVuIHRoZSBjb250ZW50LCBhIHNlcGFyYXRlIHJlcG8gbW9yZSByZWFzb25hYmxlCgo+PTIwCj4gTm93IHRoZSBvdGhlciBxdWVzdGlvbiBpcyBob3cgdG8gZ2V0IHRoZSBpbWFnZSBmcm9tIHRoYXQgZG9ja2VyZmlsZSBpbnRvCj4gZG9ja2VyLi4uCklJVUMsIHRoYXQncyB0aGUgc2Vjb25kIHBvaW50IEkgd3JvdGU6IHdlIGRvbid0IHJlYWxseSBwdXQgdGhlIGltYWdlIGJ1dD0yMAp1cGRhdGUgYSBjb21taXQgcmVmZXJlbmNlIHRvIG91ciBEb2NrZXJmaWxlcwoKPj0yMAo+IEk9RTI9ODA9OTltIGhhcHB5IGZvciBDYXJsb3MgdG8gY29udGludWUgZG9pbmcgaW4gYSBwZXJzb25hbCBjYXBhY2l0eS4uLgorMQpJJ2QgYmUgaGFwcHkgdG8ganVzdCBoYXZlIHRoaXMgYXMgYW4gb2ZmaWNpYWwgUE1DIGFzc2V0LCB3aXRoIENhcmxvcyBhcyBvdXI9Cj0yMApleHBlcnQgd2hvIHdyb3RlIHRoZSBzdWJ0bGUgYnVuY2ggb2YgaW1hZ2VzLCBzaW5jZSBJSVVDLCBpdCdzIG5vdCByZWFsbHkgb249CmU9MjAKaW1hZ2UgYnV0IGEgY29sbGVjdGlvbiB0aGF0IG9uZSBjYW4gY2hvb3NlIGZyb20KClJlZ2FyZHMsCgpIZXJ2PUMzPUE5Cgo+PTIwCj4gU28gaT1FMj04MD05OWQgYmUKPj0yMAo+ID1FMj04MD05Q1RoZSBkb2NrZXJmaWxlIGhhcyBiZWVuIHJlbGVhc2VkIGJ5IHRoZSBNYXZlbiBwcm9qZWN0IGFuZCBhIG1lbWI9CmVyIG9mIHRoZQo+IFBNQyBoYXMgdXBsb2FkZWQgdGhlIGltYWdlPUUyPTgwPTlECj49MjAKPiA+IFJlZ2FyZHMsCj4gPj0yMAo+ID4gSGVydj1DMz1BOQo+ID49MjAKPiA+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyLWxpYnJhcnkvb2ZmaWNpYWwtaW1hZ2VzCj4gPj0yMAo+ID4gWzJdCj4gPiBodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyLWxpYnJhcnkvb2ZmaWNpYWwtaW1hZ2VzL2Jsb2IvbWFzdGVyL2xpYnJhcnkvbT0KYXZlCj4gPiBuCj4gPj0yMAo+ID4gTGUgc2FtZWRpIDIxIG9jdG9icmUgMjAxNywgMDY6NTg6NTAgQ0VTVCBNYW5mcmVkIE1vc2VyIGEgPUMzPUE5Y3JpdCA6Cj4gPiA+IEZyb20gbXkgcGVyc3BlY3RpdmUgaXQgaXMganVzdCBsaWtlIHNka21hbiBpbmNsdWRpbmcgdGhlIGNvbmNsdXNpb24uID0KV2UKPiA+PTIwCj4gPiBoYXZlCj4gPj0yMAo+ID4gPiBvdGhlciB0YXNrcyBhdCBvdXIgaGFuZHMsIG1haW50YWluaW5nIGEgZG9ja2VyIGltYWdlcyBpcyBub3Qgc29tZXRoaW5nCj4gPiA+IHdlCj4gPiA+IHNob3VsZCBib3RoZXIgd2l0aC4gSG93ZXZlciBuZWVkcyBvbmUgY2FuIGVhc2lseSBjcmVhdGUgb25lIGFuZCB0aGVyZQo+ID49MjAKPiA+IHdpbGwKPiA+PTIwCj4gPiA+IGJlIHRob3VzYW5kcyBvZiB2YXJpYXRpb25zIGRpZmZlcmVudCB1c2VycyB3YW50Lgo+ID4gPj0yMAo+ID4gPiBMZXQgdGhlbSBjcmVhdGUgaXQgb24gdGhlaXIgb3duLgo+ID4gPj0yMAo+ID4gPiBNYW5mcmVkCj4gPiA+PTIwCj4gPiA+IEhlcnY9QzM9QTkgQk9VVEVNWSB3cm90ZSBvbiAyMDE3LTEwLTIwIDE4OjQ2Ogo+ID4gPiA+IHRydWUsIGZyb20gYSBnZW5lcmFsIHBlcnNwZWN0aXZlLCBpdCdzIGxpa2Ugc2RrbWFuCj4gPiA+ID49MjAKPiA+ID4gPiB3ZSBuZWVkIHRvIGRpc2N1c3MgdGhlbiBkZWNpZGUgaWYgd2Ugd2FudCB0byBtYWludGFpbiBNYXZlbiBEb2NrZXIKPiA+ID4gPiBpbnRlZ3JhdGlvbiAoY29udHJhcnkgdG8gb3VyIGN1cnJlbnQgZGVjaXNpb24gdG8gbm90IG1haW50YWluIE1hdmVuCj4gPiA+ID4gc2RrbWFuIGludGVncmF0aW9uIGJ1dCBsZXQgc2RrbWFuIGNvbW11bml0eSBkbyBpdCkKPiA+ID4gPj0yMAo+ID4gPiA+IGNhbiB3ZSB0aGluayBhYm91dCBhIGdlbmVyYWwgc29sdXRpb24/IHBlcmhhcHMgbm90IHJlYWxseSBhIHNvbHV0aW89Cm4sCj4gPj0yMAo+ID4gYnV0Cj4gPj0yMAo+ID4gPiA+IGEKPiA+ID4gPiBkZWNpc2lvbiBwcm9jZXNzLCB5ZXMKPiA+ID4gPj0yMAo+ID4gPiA+IHRvIG1lLCBvbiBlYWNoIHRvb2wgaW50ZWdyYXRpb24sIHRoZXJlIGFyZSBrZXkgZGVjaXNpb24gZHJpdmVyczoKPiA+ID4gPiAtIGltcG9ydGFuY2Ugb2YgdGhlIHRvb2wgb24gdGhlIG1hcmtldAo+ID4gPiA+IC0gaW50ZXJlc3Qgb2YgTWF2ZW4gZGV2cyB0byBhY3R1YWxseSBkbyBpbnRlZ3JhdGlvbiBtYWludGVuYW5jZQo+ID4gPiA+IC0gY29tcGxleGl0eSBvZiBpbnRlZ3JhdGlvbiwgdGVjaG5pY2FsIHByZXJlcXVpc2l0ZXMgKHdpdGggSURFcywgZm9yCj4gPiA+ID4gZXhhbXBsZSwgYSBkZWRpY2F0ZWQgaW5kZXBlbmRhbnQgcHJvamVjdCBsaWtlIG0yZSBpcyBuZWNlc3NhcnkpCj4gPiA+ID4gLSB0aW1lIGZhY3RvcjogdGhpbmdzIGV2b2x2ZSBvdmVyIHRpbWUgKGUuZy4gMiB5ZWFycyBhZ28sIERvY2tlciB3YXMKPiA+PTIwCj4gPiBub3QKPiA+PTIwCj4gPiA+ID4gd2hhdCBpdCBpcyBub3dhZGF5cykKPiA+ID4gPj0yMAo+ID4gPiA+IGFueSBvdGhlciBrZXkgZHJpdmVyIHRvIGRvY3VtZW50Pwo+ID4gPiA+PTIwCj4gPiA+ID4gb25jZSBkb25lLCB3ZSdsbCBkaXNjdXNzIG1vcmUgcHJlY2lzZWx5IGFib3V0IHRoZSBEb2NrZXIgaW50ZWdyYXRpb24KPiA+PTIwCj4gPiBjYXNlCj4gPj0yMAo+ID4gPiA+IGFuZCBwcm9iYWJseSBmaW5pc2ggd2l0aCBhIHZvdGUgOikKPiA+ID4gPj0yMAo+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID49MjAKPiA+ID4gPiBIZXJ2PUMzPUE5Cj4gPiA+ID49MjAKPiA+ID4gPiBMZSB2ZW5kcmVkaSAyMCBvY3RvYnJlIDIwMTcsIDExOjMwOjQ5IENFU1QgUm9iZXJ0IFNjaG9sdGUgYSA9QzM9QTljPQpyaXQgOgo+ID4gPiA+PiBJc24ndCB0aGlzIGFjdHVhbGx5IHRoZSBzYW1lIGNhc2UgYXMgc2RrbWFuWzFdPwo+ID4gPiA+PiBKdXN0IHdvbmRlcmluZyBpZiB3ZSBuZWVkIHRvIHRoaW5rIGFib3V0IGEgZ2VuZXJhbCBzb2x1dGlvbiBpbnN0ZWFkCj4gPiA+ID4+IG9mCj4gPiA+ID4+IHB1bGxpbmcgZXZlcnl0aGluZyBpbnRvIG91ciBwcm9qZWN0IHdoZW4gcG9zc2libGUuCj4gPiA+ID4+PTIwCj4gPiA+ID4+IHRoYW5rcywKPiA+ID4gPj4gUm9iZXJ0Cj4gPiA+ID4+PTIwCj4gPiA+ID4+IFsxXSBodHRwOi8vbWFya21haWwub3JnL21lc3NhZ2Uvb29mdnN6bWY1NnRicjdldAo+ID4gPiA+Pj0yMAo+ID4gPiA+PiBPbiBUaHUsIDE5IE9jdCAyMDE3IDE5OjMwOjU3ICswMjAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+ID49MjAKPiA+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPiA+PTIwCj4gPiA+ID4+IHdyb3RlOgo+ID4gPiA+PiA+IGdyZWF0IGlkZWEKPiA+ID4gPj4gPj0yMAo+ID4gPiA+PiA+IG9rLCB3ZSBuZWVkIGEgZ2l0IHJlcG8gYXQgQVNGCj4gPiA+ID4+ID49MjAKPiA+ID4gPj4gPiB3aGF0IGVsc2U/Cj4gPiA+ID4+ID4gSXMgdGhlcmUgc29tZSBzb3J0IG9mIHJlbGVhc2UgcHJvY2Vzcz8gc29tZSBzb3J0IG9mIHNvdXJjZSB0bwo+ID49MjAKPiA+IHJlbGVhc2U/Cj4gPj0yMAo+ID4gPiA+PiA+IFJlZ2FyZHMsCj4gPiA+ID4+ID49MjAKPiA+ID4gPj4gPiBIZXJ2PUMzPUE5Cj4gPiA+ID4+ID49MjAKPiA+ID4gPj4gPiBMZSBqZXVkaSAxOSBvY3RvYnJlIDIwMTcsIDEzOjQ3OjQ1IENFU1QgTWlrZSBEcm9iIGEgPUMzPUE5Y3JpdCA6Cj4gPiA+ID4+ID4+IFRoYW5rcyBmb3IgdGhlIHBvaW50ZXIsIENhcmxvcyEgSSBoYWQgc2VhcmNoZWQgdGhlIGFyY2hpdmVzLCBidXQKPiA+PTIwCj4gPiBtYXliZQo+ID49MjAKPiA+ID4gPj4gPj4gSQo+ID4gPiA+PiA+PiBkaWRuJ3QgZ28gYmFjayBmYXIgZW5vdWdoLgo+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+PiA+PiBJIHRoaW5rIG1vdmluZyB0aGVzZSBEb2NrZXJmaWxlcyBpbnRvIGFuIEFTRiByZXBvIHdvdWxkIGJlIGdyZWF0Cj4gPj0yMAo+ID4gZm9yCj4gPj0yMAo+ID4gPiA+PiA+PiB0aGVpcgo+ID4gPiA+PiA+PiBtYWludGFpbmFiaWxpdHkuCj4gPiA+ID4+ID4+PTIwCj4gPiA+ID4+ID4+IFRoYW5rcywKPiA+ID4gPj4gPj49MjAKPiA+ID4gPj4gPj4gTWlrZQo+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+PiA+PiBPbiAyMDE3LTEwLTE5IDAzOjUwLCBDYXJsb3MgU2FuY2hleiA8Yy4uLkBhcGFjaGUub3JnPiB3cm90ZToKPiA+ID4gPj4gPj4gPiBBcm5hdWQgaXMgY29ycmVjdCwgSSBzZW50IGFuIGVtYWlsIHRvIHVzZXJzQCBiYWNrIG9uIEZyaSwgTm92PQogNywKPiA+ID4gPj4gPj49MjAKPiA+ID4gPj4gPj4gMjAxNCw+Cj4gPiA+ID4+ID4+PTIwCj4gPiA+ID4+ID4+ID4gMDA6MjMgd2hlbiBJIGNyZWF0ZWQgdGhlIGltYWdlPgo+ID4gPiA+PiA+PiA+PTIwCj4gPiA+ID4+ID4+ID49MjAKPiA+ID4gPj4gPj4gPiBPbiBUaHUsIE9jdCAxOSwgMjAxNywgMTE6MTIgQXJuYXVkIEg9RUY9QkY9QkRyaXRpZXIgPGFoLi4uQGdtPQphaWwuY29tPgo+ID4gPiA+PiA+PiA+IHdyb3RlOj4KPiA+ID4gPj4gPj4gPj0yMAo+ID4gPiA+PiA+PiA+ID4gVGhlc2UgaW1hZ2VzIGFyZSBraW5kbHkgbWFuYWdlZCBieSBhIFBNQyBtZW1iZXIgb2Ygb3VyIHByb2o9CmVjdAo+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+PiA+PiAoQ2FybG9zKQo+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+PiA+PiBidXQ+Cj4gPiA+ID4+ID4+PTIwCj4gPiA+ID4+ID4+ID4gPiB5ZXMgdGhleSBhcmVuJ3QgbWFuYWdlZCBkaXJlY3RseSBieSB0aGUgcHJvamVjdD4KPiA+ID4gPj4gPj4gPiA+PTIwCj4gPiA+ID4+ID4+ID4gPiBXZSBjYW4gZWFzaWx5IHNlZSB3aXRoIGhpbSB0byBpbXByb3ZlIHRoaXMgSU1PLj4KPiA+ID4gPj4gPj4gPiA+PTIwCj4gPiA+ID4+ID4+ID4gPiBXaGVuIGhlIHN0YXJ0ZWQgdGhhdCAoc2V2ZXJhbCB5ZWFycyBhZ28pIERvY2tlciB3YXNuJ3Qgd2hhdD0KIGl0Cj4gPj0yMAo+ID4gaXMKPiA+PTIwCj4gPiA+ID4+ID4+IG5vd2FkYXlzLj4KPiA+ID4gPj4gPj49MjAKPiA+ID4gPj4gPj4gPiA+IFdpdGggZG9ja2VyIGJlaW5nIG1haW5zdHJlYW0gSSBhZ3JlZSB0aGF0IHdlIGNhbiByZWNvbnNpZGVyCj4gPj0yMAo+ID4gdGhpcy4+Cj4gPj0yMAo+ID4gPiA+PiA+PiA+ID4gVGhlIGRvY2tlciBpbWFnZSBidWlsZC9kaXN0cmlidXRpb24gY291bGQgcGVyaGFwcyBiZSBwYXJ0IG9mCj4gPj0yMAo+ID4gb3VyCj4gPj0yMAo+ID4gPiA+PiA+PiByZWxlYXNlPgo+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+PiA+PiA+ID4gcHJvY2Vzcy4+Cj4gPiA+ID4+ID4+ID4gPj0yMAo+ID4gPiA+PiA+PiA+ID4gV0RZVCBDYXJsb3MgPz4KPiA+ID4gPj4gPj4gPiA+PTIwCj4gPiA+ID4+ID4+ID4gPiBPbiBUaHUsIE9jdCAxOSwgMjAxNyBhdCA0OjE2IEFNLCBNaWtlIERyb2IgPG1kLi4uQGFwYWNoZS5vcj0KZz4KPiA+ID4gPj4gPj49MjAKPiA+ID4gPj4gPj4gd3JvdGU6Pgo+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+PiA+PiA+ID4gPiBJIGd1ZXNzIHRoZSBuYXR1cmFsIGZvbGxvdy1vbiBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoZSBNYXY9CmVuCj4gPiA+ID4+ID4+PTIwCj4gPiA+ID4+ID4+IGNvbW11bml0eT4KPiA+ID4gPj4gPj49MjAKPiA+ID4gPj4gPj4gPiA+ID4gd291bGQgY29uc2lkZXIgcHVibGlzaGluZyBhbiBvZmZpY2lhbCBzZXQgb2YgaW1hZ2VzPyBPcgo+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+PiA+PiBhbHRlcm5hdGl2ZWx5Pgo+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+PiA+PiA+ID4gPiB3aGV0aGVyIHRoZXkgc2hvdWxkIHNlbmQgYSB0YWtlZG93biBub3RpY2UgdG8gcHJvdGVjdCB0aGU9CmlyCj4gPiA+ID4+ID4+ID4gPiA+IGJyYW5kCj4gPiA+ID4+ID4+PTIwCj4gPiA+ID4+ID4+IGFuZD4KPiA+ID4gPj4gPj49MjAKPiA+ID4gPj4gPj4gPiA+ID4gdHJhZGVtYXJrcy4uLj4KPiA+ID4gPj4gPj4gPiA+ID49MjAKPiA+ID4gPj4gPj4gPiA+ID4gT24gMjAxNy0xMC0xOCAxODozNiwgIk1hbmZyZWQgTW9zZXIiIDxtYS4uLkBzaW1wbGlnaWxpdHkuPQpjb20KPiA+ID4gPj4gPj49MjAKPiA+ID4gPj4gPj4gd3JvdGU6Pgo+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+PiA+PiA+ID4gPiA+IE5vLiBBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBnaXRodWIgVVJMIHRoaXMgaXMgTk9UIGFuCj4gPj0yMAo+ID4gYXBhY2hlCj4gPj0yMAo+ID4gPiA+PiA+PiBVUkwuPgo+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+PiA+PiA+ID4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9jYXJsb3NzZy9kb2NrZXItbWF2ZW4+Cj4gPiA+ID4+ID4+ID4gPiA+ID49MjAKPiA+ID4gPj4gPj4gPiA+ID4gPj0yMAo+ID4gPiA+PiA+PiA+ID4gPiA+IE1pa2UgRHJvYiB3cm90ZSBvbiAyMDE3LTEwLTE4IDE2OjMyOj4KPiA+ID4gPj4gPj4gPiA+ID4gPj0yMAo+ID4gPiA+PiA+PiA+ID4gPiA+ID4gSGVsbG8sPgo+ID4gPiA+PiA+PiA+ID4gPiA+ID49MjAKPiA+ID4gPj4gPj4gPiA+ID4gPiA+IEFyZSB0aGUgaW1hZ2VzIGF0IGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9fL21hdmVuLwo+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+PiA+PiBjb25zaWRlcmVkIHRvCj4gPiA+ID4+ID4+PTIwCj4gPiA+ID4+ID4+IGJlPgo+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+PiA+PiA+ID4gPiBvZmZpY2lhbD4KPiA+ID4gPj4gPj4gPiA+ID49MjAKPiA+ID4gPj4gPj4gPiA+ID4gPiA+IG1hdmVuIGRvY2tlciBpbWFnZXMgYW5kIGJsZXNzZWQvcHVibGlzaGVkIGJ5IHRoZSBQTUM/Pgo+ID4gPiA+PiA+PiA+ID4gPiA+ID49MjAKPiA+ID4gPj4gPj4gPiA+ID4gPiA+IFRoYW5rcyw+Cj4gPiA+ID4+ID4+ID4gPiA+ID4gPiBNaWtlPgo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT4KPiA+PTIwCj4gPiA+ID4+ID4+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOgo+ID4gdXNlcnMtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KPiA+PTIwCj4gPiA+ID4+ID4+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOgo+ID4gPiA+PiA+PiA+ID4gPiA+ID4gdXNlcnMtaGVscEBtYXZlbi5hcGFjaGUub3JnPgo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT4KPiA+PTIwCj4gPiA+ID4+ID4+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogdXNlcnMtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLj0Kb3JnCj4gPj0yMAo+ID4gPiA+PiA+PiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6Cj4gPiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Cj4gPj0yMAo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT4KPiA+PTIwCj4gPiA+ID4+ID4+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IHVzZXJzLXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcj0KZz4KPiA+ID4gPj4gPj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogdXNlcnMtaGVscEBtYXZlbi5hcGFjaGUuPQpvcmcKPiA+ID4gPj4gPj4gPiA+PTIwCj4gPiA+ID4+ID4+ID4gPiAtLT4KPiA+ID4gPj4gPj4gPiA+IC0tLS0tPgo+ID4gPiA+PiA+PiA+ID4gQXJuYXVkIEg9RUY9QkY9QkRyaXRpZXI+Cj4gPiA+ID4+ID4+ID4gPiBodHRwOi8vYWhlcml0aWVyLm5ldD4KPiA+ID4gPj4gPj4gPiA+IE1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tPgo+ID4gPiA+PiA+PiA+ID4gVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcj4KPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PTIwCj4gPiA+ID4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4+PTIwCj4gPiA+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KPTJELS0KPiA+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+PTIwCj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KPTJELQo+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj0yMAo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PTIwCj4gPiAtLQo+PTIwCj4gU2VudCBmcm9tIG15IHBob25lCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDg2My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgRGVjIDI4IDE1OjQ3OjA3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg2My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyRUJDNjEwNjk5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjggRGVjIDIwMTcgMTU6NDc6MDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5NzY4OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBEZWMgMjAxNyAxNTo0NzowNCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTc2MTEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggRGVjIDIwMTcgMTU6NDc6MDQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NzU4MSBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IERlYyAyMDE3IDE1OjQ3OjA0IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDI4IERlYyAyMDE3IDE1OjQ3OjA0ICswMDAwClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKExGYm4tMS05MDI5LTkzLnc4Ni0yMzguYWJvLndhbmFkb28uZnIgWzg2LjIzOC4xNi45M10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCAwMjNBNDFBMDA1NDsKCVRodSwgMjggRGVjIDIwMTcgMTU6NDc6MDIgKzAwMDAgKFVUQykKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJvdXRlbXkgPGhib3V0ZW15QGFwYWNoZS5vcmc+ClRvOiBhbm5vdW5jZUBtYXZlbi5hcGFjaGUub3JnLCB1c2Vyc0BtYXZlbi5hcGFjaGUub3JnCkNjOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBbQU5OXSBBcGFjaGUgTWF2ZW4gUERGIFBsdWdpbiAxLjQgUmVsZWFzZWQKRGF0ZTogVGh1LCAyOCBEZWMgMjAxNyAxNjo0Njo1NiArMDEwMApNZXNzYWdlLUlEOiA8MjQ5MDE1Ni54Yzk4alJLMUpNQGdpZ2E+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdCaXQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJ1cy1hc2NpaSIKClRoZSBBcGFjaGUgTWF2ZW4gdGVhbSBpcyBwbGVhc2VkIHRvIGFubm91bmNlIHRoZSByZWxlYXNlIG9mIHRoZSBBcGFjaGUgTWF2ZW4gClBERiBQbHVnaW4sIHZlcnNpb24gMS40CiAgICAKVGhpcyBwbHVnaW4gYWxsb3dzIHlvdSB0byBnZW5lcmF0ZSBhIFBERiB2ZXJzaW9uIG9mIHlvdXIgcHJvamVjdCdzIApkb2N1bWVudGF0aW9uLgogICAgCmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zL21hdmVuLXBkZi1wbHVnaW4vCiAgICAKWW91IHNob3VsZCBzcGVjaWZ5IHRoZSB2ZXJzaW9uIGluIHlvdXIgcHJvamVjdCdzIHBsdWdpbiBjb25maWd1cmF0aW9uOgogICAgCjxwbHVnaW4+CiAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CiAgICA8YXJ0aWZhY3RJZD5tYXZlbi1wZGYtcGx1Z2luPC9hcnRpZmFjdElkPgogICAgPHZlcnNpb24+MS40PC92ZXJzaW9uPgo8L3BsdWdpbj4KICAgIApZb3UgY2FuIGRvd25sb2FkIHRoZSBhcHByb3ByaWF0ZSBzb3VyY2VzIGV0Yy4gZnJvbSB0aGUgZG93bmxvYWQgcGFnZToKICAgIApodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy9tYXZlbi1wZGYtcGx1Z2luL2Rvd25sb2FkLmNnaQogICAgClJlbGVhc2UgTm90ZXMgLSBNYXZlbiBQREYgUGx1Z2luIC0gVmVyc2lvbiAxLjQKCioqIEJ1ZwogICAgKiBbTVBERi00N10gLSBkb2NEZXNjcmlwdG9ycyBvZiBvdGhlciBsb2NhbGVzIHRoYW4gZGVmYXVsdCBhcmUgaWdub3JlZCBmb3IgCnBkZiBnZW5lcmF0aW9uCiAgICAqIFtNUERGLTU5XSAtIEluICJUYWJsZSBvZiBDb250ZW50cyIgdGhlIFRPQyBpdHNlbGYgaXMgY2hhcHRlciAxLCBidXQgbm90IAppbiB0aGUgZG9jdW1lbnQKICAgICogW01QREYtNjJdIC0gUERGIHBsdWdpbiBkb2Vzbid0IHdvcmsgd2l0aCBkb3hpYS1tb2R1bGUtbWFya2Rvd24KCioqIEltcHJvdmVtZW50CiAgICAqIFtNUERGLTQ4XSAtIG1ha2UgUERGIHBsdWdpbiBydW4gcmVwb3J0cyB3aGVuIHVzZWQgd2l0aCBNYXZlbiAzCiAgICAqIFtNUERGLTc0XSAtIHVwZ3JhZGUgRG94aWEgZnJvbSAxLjIgdG8gMS44CiAgICAqIFtNUERGLTc1XSAtIEZsdWlkbyBTa2luCiAgICAqIFtNUERGLTc2XSAtIE1hdmVuIFBhcmVudCBWZXJzaW9uIDI3CiAgICAqIFtNUERGLTc3XSAtIFJlbW92ZSBsaW1pdGF0aW9ucyBkb2N1bWVudGF0aW9uIGZvciBNYXZlbiAyLjAuNgogICAgKiBbTVBERi03OF0gLSBDb21wYXRpYmlsaXR5IHdpdGggZG94aWEtbW9kdWxlLWRvY2Jvb2stc2ltcGxlIDEuNwogICAgKiBbTVBERi04NF0gLSBkaXNwbGF5IHBkZiBnZW5lcmF0ZWQgZmlsZSBsb2NhdGlvbgoKKiogVGFzawogICAgKiBbTVBERi03OV0gLSBVcGdyYWRlIG9mIHBsZXh1cy1pbnRlcnBvbGF0aW9uIHRvIDEuMjQuCiAgICAqIFtNUERGLTg1XSAtIHN3aXRjaCB0byBHaXQKICAgIApFbmpveSwKICAgIAotVGhlIEFwYWNoZSBNYXZlbiB0ZWFtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM5MzctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIFNlcCAxMCAyMToxMjo1MCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5MzctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNjdGQ0IxQUZFNgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDIxOjEyOjUwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjI0MDEgaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgU2VwIDIwMTcgMjE6MTI6NTAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYyMzI3IGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIFNlcCAyMDE3IDIxOjEyOjUwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjIzMTYgaW52b2tlZCBieSB1aWQgOTkpOyAxMCBTZXAgMjAxNyAyMToxMjo0OSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTAgU2VwIDIwMTcgMjE6MTI6NDkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAwRjY3MzFBMjI1MAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMjE6MTI6NDkgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjA3OQpYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuMDc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFFFLTFfLWpQOUJVWSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgMTAgU2VwIDIwMTcgMjE6MTI6NDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbW91dC5nbXgubmV0IChtb3V0LmdteC5uZXQgWzIxMi4yMjcuMTcuMjFdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgOTgxQzM1RkM2OQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMjE6MTI6NDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gWzE5Mi4xNjguMS4xM10gKFs2Mi4xNTcuMzkuMjQzXSkgYnkgbWFpbC5nbXguY29tIChtcmdteDEwMQogWzIxMi4yMjcuMTcuMTY4XSkgd2l0aCBFU01UUFNBIChOZW1lc2lzKSBpZCAwTGZYbXYtMWQ2V0JoM292eC0wMHA4aFE7IFN1biwgMTAKIFNlcCAyMDE3IDIzOjEyOjQ1ICswMjAwClN1YmplY3Q6IFJlOiBUZXN0cyBmb3IgTU5HLTYyNzUgZmFpbCBvbiBKYXZhIDEuNy4wXzE1MS1iMDEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LAogVGlib3IgRGlnYW5hIDx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+CkNjOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8ZWZiOTc5NjAtZTFiNy00MjI3LTU5OTgtZGUyYzI0MDE1YmIwQGFwYWNoZS5vcmc+CiA8Q0ErblBuTXc3b2c1Z3JxSlpOeVljM0p5TUpjSD1yY2hTLUdZWURfYU1BdmVBaWNKb1V3QG1haWwuZ21haWwuY29tPgogPDc4YWY5NjU1LTc2YmMtZjU2Yy0yZWI1LTFhZjJjMTIwZjQzZkBhcGFjaGUub3JnPgogPENBS3VWekJRcTRaMGFNWGc2ZFc5dnhlM3hCZitkSEYwUzJOZmRIdk1QREZuZThIcll1d0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogTWljaGFlbCBPc2lwb3YgPG1vc2lwb3ZAZ214LmRlPgpNZXNzYWdlLUlEOiA8MjRjYzM4ZTgtNWMzYS02NDAyLWNmZmYtODc2YjMyNGFhODcxQGdteC5kZT4KRGF0ZTogU3VuLCAxMCBTZXAgMjAxNyAyMzoxMjo0MiArMDIwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXT1c2NDsgcnY6NTIuMCkgR2Vja28vMjAxMDAxMDEKIFRodW5kZXJiaXJkLzUyLjMuMApNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPENBS3VWekJRcTRaMGFNWGc2ZFc5dnhlM3hCZitkSEYwUzJOZmRIdk1QREZuZThIcll1d0BtYWlsLmdtYWlsLmNvbT4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLVVTCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6WnYxQXZVMFdOaVNOcU45Ymk2MDZZdWJ6RVkweHRMQytac3AxenZRK2djclBEVEVna3QwCiAzOGMyREFUem94bFJXbEtJSHJGOEFudUlnWkFFc0RKTUNBYjFydkRjQ0JFRmdXTXV1ckdiVkxNakFKeWVMNmtNMWM3MkI0SgogVjVGZmhXSmtjYzJ0OVJCbUZpbDNzdzBnNk5nODkyRXlFSXZQcFErYlhmWjF5bmJzSjArTUhZc0ZZMVN3eVJyaU1mSzZPM3kKIGYyeGtsSERSSVowVjNwaG5lVVVhUT09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6L0tNMHAwbkdsVDg9OlhwYWM3b0FIQ2Nray9TRWFiM1RKa0gKIERLMHg3YUNjUktUeEoweGt6MVo5UHBHRTcvNW5LSHBjclNNTzQ4ZTZOWk1La0hmLzQ1WldZLzJaangvbHhoWk92L3NnOEJsYkMKIFpzdXZCYk93a3VJMVc0VjFaK040bkN1djlKcytNNEMrb0xaWnFhOXVkL0FlNXNPKzR1YzY0MWhORTIyaDlLTkVWbTBIdzlQUXAKIFhMNXNTYVVjRUNqY3lsVi9OaWhBK2wxYytwOVU3elFBY2JoUVFEQUp0cUJ2WVpJNXlxNEw3ZGZZRXc4djlvaGtRUFhhcCt6L0YKIGRqeU4ybXZqQ1BOYk5lL2Z2MlkxaFQ4WmpVbFFRK1libCtjaHZzSCt5Vks5ZmdwWDd3ZFJxU2pjZkZZMkY0cElSeW1uNW9HbUQKIGl6b2o2NmZsMDZYTEFseklCMzdIRnJFQS9jYkNqdXp1QUl4djRMYjZqMjBjaHJUOUVyOFA0SVRJQ0hUWCtmaDdnSkN1L1lYLysKIGs1Z1NsMFprTDZvOUlqTUFqdFd0OWVEbWpYLytEUjMzVUNYZTY3WmcrcGNCRTFQeFpVeVVUN2RPcUtlUG13TzFsY3NzZ3l6bEEKIHNYRDg3VGxOd3pYR2hRa0hpZ0xqVE1MZEt3NERRY1dodVZZb2dTMWs5cjBvbDkxa2NPMUhzQVV3SjQ2bm42b0ZmQ3lHd2N6RUMKIHNyZzg4UlJLbVdFMzh2R3VsS1E2bXpaWktDZG9zV2wyVVFTUVhoSUFqZXYrSGFIbWtYSVIxUnZiTzQyM0ZGVE9HWGdZZTg0ZVkKIEFRazFVZ0RjUzlQSFQ3OGxkbDF3ZGlPS0hSemViTWRiR0FaNCtueEtCUnJFbSs3ZFl2SjhZaWp5UzR1R3YyWTN2QWVWajg2eEEKIFh6ajA4SDZuN0V1OGpYMHhqR1BiY01hVk1Pdy9lWFVBZG5xWVZNVE4rUTRVTHNqWkgxT29pYVplcXRzd1JocitTK3prY0NuVnEKIHNId0ZMTFV4azFNUHBDWjAxaCs1dHVUTUNneTJXazNFL3NHVXdHbnpFQjRERlBxQ21odWdVTTIwNm8vU2dZUzVZNlhWRXdmd0gKIEpQTlB1YngvdlVxZkxDOVNSbSt6SkNnbjJIcWNPMjhLRVFDN3RQNEJOYmljT1lDdTRnPQoKQW0gMjAxNy0wOS0xMCB1bSAyMzowNyBzY2hyaWViIFRpYm9yIERpZ2FuYToKPiBNaWNoYWVsLCBub3cgdHJ5IHdpdGggT3JhY2xlIEphdmEgNy4KCkxhc3QgcHVibGljIHZlcnNpb24gb3IgdXAtdG8tZGF0ZSBwYWlkIHZlcnNpb24/Cgo+IE9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDExOjAyIFBNLCBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz4KPiB3cm90ZToKPiAKPj4gQW0gMjAxNy0wOS0xMCB1bSAyMjoyNyBzY2hyaWViIFN0ZXBoZW4gQ29ubm9sbHk6Cj4+Cj4+PiBXZWxsIEkgcmFuIHRoZSByZWxlYXNlIHdpdGggMS43LjBfODAgd2hpY2ggaWlyYyBpcyB0aGUgbGFzdCBwdWJsaWMgcmVsZWFzZQo+Pj4gb2YgT3JhY2xlIEphdmEgNy4uLgo+Pj4KPj4KPj4gRmFpbHMgYWxzbyBvbiBXaW5kb3dzIHdpdGggWnVsdSA3Ogo+PiAkIG12biAtdgo+PiBBcGFjaGUgTWF2ZW4gMy41LjAgKGZmOGY1ZTc0NDQwNDU2MzlhZjY1ZjYwOTVjNjIyMTBiNTcxM2Y0MjY7Cj4+IDIwMTctMDQtMDNUMjE6Mzk6MDYrMDI6MDApCj4+IE1hdmVuIGhvbWU6IEQ6XEVudHdpY2tsdW5nXFByb2dyYW1tZVxhcGFjaGUtbWF2ZW4tMy41LjAKPj4gSmF2YSB2ZXJzaW9uOiAxLjcuMF8xNTQsIHZlbmRvcjogQXp1bCBTeXN0ZW1zLCBJbmMuCj4+IEphdmEgaG9tZTogQzpcUHJvZ3JhbSBGaWxlc1xadWx1XHp1bHUtN1xqcmUKPj4gRGVmYXVsdCBsb2NhbGU6IGRlX0RFLCBwbGF0Zm9ybSBlbmNvZGluZzogQ3AxMjUyCj4+IE9TIG5hbWU6ICJ3aW5kb3dzIDEwIiwgdmVyc2lvbjogIjEwLjAiLCBhcmNoOiAiYW1kNjQiLCBmYW1pbHk6ICJ3aW5kb3dzIgo+Pgo+Pgo+Pgo+PiBPbiBTdW4gMTAgU2VwIDIwMTcgYXQgMjE6MDgsIE1pY2hhZWwgT3NpcG92IDxtaWNoYWVsb0BhcGFjaGUub3JnPiB3cm90ZToKPj4+Cj4+PiBGb2xrcywKPj4+Pgo+Pj4+IHRyaWVkIHJ1bm5pbmcgbWFzdGVyIG9uCj4+Pj4gTWF2ZW4gaG9tZTogL3Vzci9sb2NhbC9zaGFyZS9qYXZhL21hdmVuCj4+Pj4gSmF2YSB2ZXJzaW9uOiAxLjcuMF8xNTEsIHZlbmRvcjogT3JhY2xlIENvcnBvcmF0aW9uCj4+Pj4gSmF2YSBob21lOiAvdXNyL2xvY2FsL29wZW5qZGs3L2pyZQo+Pj4+IERlZmF1bHQgbG9jYWxlOiBkZV9ERSwgcGxhdGZvcm0gZW5jb2Rpbmc6IFVURi04Cj4+Pj4gT1MgbmFtZTogImZyZWVic2QiLCB2ZXJzaW9uOiAiMTEuMS1yZWxlYXNlLXAxIiwgYXJjaDogImkzODYiLCBmYW1pbHk6Cj4+Pj4gInVuaXgiCj4+Pj4KPj4+PiBhbmQgSSBnZXQgdGhpczoKPj4+PiBGYWlsZWQgdGVzdHM6Cj4+Pj4KPj4+Pgo+Pj4+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfY29yZVJlYWxtRGVmYXVsdFBhcgo+Pj4+IGVudENsYXNzTG9hZGVyOjk5Cj4+Pj4gbnVsbAo+Pj4+Cj4+Pj4KPj4+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X2V4dGVuc2lvblJlYWxtRGVmYXUKPj4+PiBsdFBhcmVudENsYXNzTG9hZGVyOjczCj4+Pj4gbnVsbAo+Pj4+Cj4+Pj4KPj4+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X21hdmVuQXBpUmVhbG1EZWZhdWwKPj4+PiB0UGFyZW50Q2xhc3NMb2FkZXI6OTEKPj4+PiBudWxsCj4+Pj4KPj4+Pgo+Pj4+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfcGx1Z2luUmVhbG1EZWZhdWx0UAo+Pj4+IGFyZW50Q2xhc3NMb2FkZXI6NjIKPj4+PiBudWxsCj4+Pj4KPj4+Pgo+Pj4+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfcHJvamVjdFJlYWxtRGVmYXVsdAo+Pj4+IFBhcmVudENsYXNzTG9hZGVyOjgzCj4+Pj4gbnVsbAo+Pj4+Cj4+Pj4gQWxsIHRlc3RzIGZhaWwgd2l0aCAianVuaXQuZnJhbWV3b3JrLkFzc2VydGlvbkZhaWxlZEVycm9yOiBudWxsIi4KPj4+Pgo+Pj4+IFJ1bm5pbmcgd2l0aAo+Pj4+IE1hdmVuIGhvbWU6IC91c3IvbG9jYWwvc2hhcmUvamF2YS9tYXZlbgo+Pj4+IEphdmEgdmVyc2lvbjogMS44LjBfMTQ0LCB2ZW5kb3I6IE9yYWNsZSBDb3Jwb3JhdGlvbgo+Pj4+IEphdmEgaG9tZTogL3Vzci9sb2NhbC9vcGVuamRrOC9qcmUKPj4+PiBEZWZhdWx0IGxvY2FsZTogZGVfREUsIHBsYXRmb3JtIGVuY29kaW5nOiBVVEYtOAo+Pj4+IE9TIG5hbWU6ICJmcmVlYnNkIiwgdmVyc2lvbjogIjExLjEtcmVsZWFzZS1wMSIsIGFyY2g6ICJpMzg2IiwgZmFtaWx5Ogo+Pj4+ICJ1bml4Igo+Pj4+Cj4+Pj4gd29ya3MgZmxhd2xlc3NseS4KPj4+Pgo+Pj4+IEFueSBpZGVhcz8KPj4+Pgo+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Cj4+Pj4gLS0KPj4+Pgo+Pj4gU2VudCBmcm9tIG15IHBob25lCj4+Pgo+Pj4KPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KPj4KPiAKPiAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4NjQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IERlYyAyOCAxNjoyMDozOCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4NjQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgODlERDcxMDg0OQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDI4IERlYyAyMDE3IDE2OjIwOjM4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODUzMjkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggRGVjIDIwMTcgMTY6MjA6MzggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg1MjY1IGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IERlYyAyMDE3IDE2OjIwOjM4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODUyNTQgaW52b2tlZCBieSB1aWQgOTkpOyAyOCBEZWMgMjAxNyAxNjoyMDozNyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMjggRGVjIDIwMTcgMTY6MjA6MzcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA2QTIwQkMyQzk1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyOCBEZWMgMjAxNyAxNjoyMDozNyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDEuNDk5ClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MS40OTkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBJYmY5OURvYUo1c3cgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsIDI4IERlYyAyMDE3IDE2OjIwOjM1ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwNC5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyNl0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBDRTlBQTVGMjAxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyOCBEZWMgMjAxNyAxNjoyMDozNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ2MCB3aXRoIE1FCglpZCByVUxhMXcwMEgyMFVmZHkwM1VMYWp1OyBUaHUsIDI4IERlYyAyMDE3IDE3OjIwOjM0ICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFRodSwgMjggRGVjIDIwMTcgMTc6MjA6MzQgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gU2l0ZSBQbHVnaW4gdmVyc2lvbiAzLjcKRGF0ZTogVGh1LCAyOCBEZWMgMjAxNyAxNzoyMDozMyArMDEwMApNZXNzYWdlLUlEOiA8MjUxNDkwNC55cnFmTkNRMTI0QGdpZ2E+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdCaXQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJ1cy1hc2NpaSIKCkhpLAogICAgCldlIHNvbHZlZCA4IGlzc3VlczoKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhPwpwcm9qZWN0SWQ9MTIzMTc5MjMmdmVyc2lvbj0xMjMzODcyNiZzdHlsZU5hbWU9VGV4dAogICAgClRoZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBpc3N1ZXMgbGVmdCBpbiBKSVJBOgpodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9cHJvamVjdCUyMCUzRCUyME1TSVRFJTIwQU5ECiUyMHN0YXR1cyUyMCUzRCUyME9wZW4lMjBPUkRFUiUyMEJZJTIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQwogICAgClN0YWdpbmcgcmVwbzoKaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM4Ni8KaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM4Ni9vcmcvYXBhY2hlLwptYXZlbi9wbHVnaW5zL21hdmVuLXNpdGUtcGx1Z2luLzMuNy9tYXZlbi1zaXRlLXBsdWdpbi0zLjctc291cmNlLXJlbGVhc2UuemlwCiAgICAKU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cm1hdmVuLXNpdGUtcGx1Z2luLTMuNy1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogCjlmYTRiMjgwNTNmNGNiNzlhMDg4NjM1NjhhNjZjMWU4N2Q4YmJjOTMKICAgIApTdGFnaW5nIHNpdGU6Cmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLXNpdGUtcGx1Z2luLUxBVEVTVC8KICAgIApHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKICAgIApWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgogICAgClsgXSArMQpbIF0gKzAKWyBdIC0xCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4NTctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IERlYyAyOCAwODo0NDowNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4NTctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRDlBNzIxNzg5QwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDI4IERlYyAyMDE3IDA4OjQ0OjA0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTA2MTUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggRGVjIDIwMTcgMDg6NDQ6MDQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkwNTQ0IGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IERlYyAyMDE3IDA4OjQ0OjA0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTA1MzIgaW52b2tlZCBieSB1aWQgOTkpOyAyOCBEZWMgMjAxNyAwODo0NDowNCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMjggRGVjIDIwMTcgMDg6NDQ6MDQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBBNjRCNjFBMENDMAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjggRGVjIDIwMTcgMDg6NDQ6MDMgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBvMmRQUnlqVjAxbjQgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsIDI4IERlYyAyMDE3IDA4OjQ0OjAwICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwNS5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyN10pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBERkE2MTVGMzk2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyOCBEZWMgMjAxNyAwODo0Mzo1OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ2MiB3aXRoIE1FCglpZCByTGp5MXcwMHIyMFVmZHkwM0xqeU5mOyBUaHUsIDI4IERlYyAyMDE3IDA5OjQzOjU4ICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFRodSwgMjggRGVjIDIwMTcgMDk6NDM6NTggKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW0lNUE9SVEFOVF0gUmU6IEdpdCBtaWdyYXRpb24gbmV4dCBzdGVwcwpEYXRlOiBUaHUsIDI4IERlYyAyMDE3IDA5OjQzOjU4ICswMTAwCk1lc3NhZ2UtSUQ6IDwyNTY1ODU0LjgwSjhMeDJ2THVAZ2lnYT4KSW4tUmVwbHktVG86IDxDQUxhVGVDcE09RUJaN3NWQ3c1R3RQTWl6UXNNeldudEtXZkI1UjlyRjdjbmhCNGRrdmdAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDw3MzhjOTlkMy00NDQxLTc0MWUtMTZkZi03NDdjNWY0ZjViMWNAZ214LmRlPiA8MjAwOTc2NTU5Mi4yMjk3MjIxNy4xNTE0MTA5MjU2NjMyLkphdmFNYWlsLnJvb3RAc3Bvb2xlcjQtZzI3PiA8Q0FMYVRlQ3BNPUVCWjdzVkN3NUd0UE1pelFzTXpXbnRLV2ZCNVI5ckY3Y25oQjRka3ZnQG1haWwuZ21haWwuY29tPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCkhpIFBsYW1lbiwKClRoYW5rIHlvdSBmb3IgeW91ciBoZWxwCgpZZXMsIEkgbG9va2VkIG1vcmUgaW4gZGVwdGggdG8gbWF2ZW4tcGx1Z2lucyBzdm4yZ2l0IG1pcnJvciBhbmQgdGhlIHNwbGl0PTIwCnJlc3VsdCAoZ290IGZyb20gdGhlIHNwbGl0IHNjcmlwdCk6IHRoZSBpc3N1ZSB3aXRoIHRhZ3MgaXMgYWxyZWFkeSB0aGVyZQoKSSBsaWtlIHRoZSBpZGVhIG9mIHJlY3JlYXRpbmcgdGFncyBmcm9tICJbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmU9MjAKcmVsZWFzZSA8bmFtZSBvZiB0aGUgdGFnPiIgY29tbWl0LCBpZ25vcmluZyB0aGUgIlttYXZlbi1yZWxlYXNlLXBsdWdpbl0gY29wPQp5PTIwCmZvciB0YWcgPG5hbWUgb2YgdGhlIHRhZz4iIGNvbW1pdCB0aGF0IGRvbid0IGNoYW5nZSBhbnl0aGluZyBpbiBjb2RlCgpJZiB5b3UgY2FuIHByZXBhcmUgYSBzY3JpcHQgdG8gY3JlYXRlIHRoZSB0YWdzIHdpdGggdGhpcyBjb252ZW50aW9uLCBpdCB3b3U9CmxkPTIwCnJlYWxseSBiZSB1c2VmdWwgKGRvbid0IGZvcmdldCB0aGF0IHNvbWV0aW1lcyB0aGVyZSBhcmUgbXVsdGlwbGUgdHJpZXMgYXQgbz0KbmU9MjAKcmVsZWFzZSwgdGhlbiB0aGUgdXNlZnVsIHRhZyBpcyB0aGUgbGFzdCBvbmUgaW4gdGltZSkKClJlZ2FyZHMsCgpIZXJ2PUU5CgpMZSBsdW5kaSAyNSBkPUU5Y2VtYnJlIDIwMTcsIDA5OjU4OjM2IENFVCBQbGFtZW4gVG90ZXYgYSA9RTljcml0IDoKPiBIaSwKPj0yMAo+IFdoYXQgSSBjYW4gc2VlIGlzIHRoYXQgdGhlIHRhZ3MgYWN0dWFsbHkgaW50cm9kdWNlIG5ldyBicmFuY2hlcyB0aGF0Cj4gY29udGFpbiBjb21taXRzIHdpdGggdGhlIHNhbWUgY29udGVudCBhcyB0aGUgb25lIGluIHRoZSBtYXN0ZXIgKHRydW5rKQo+IGJyYW5jaC4gQnV0IHRoaXMgaXMgbm90IGNhdXNlZCBieSB0aGUgc2NyaXB0IHRoYXQgc3BsaXRzIG9mIHRoZQo+IHJlcG9zaXRvcnkgLSB0aGUgcHJvYmxlbSBleGlzdHMgaW4gdGhlIG1hdmVuLXBsdWdpbnMgR2l0IHJlcG9zaXRvcnkgYXMKPiB3ZWxsLiBNYXliZSBpdCdzIG5vdCBxdWl0ZSB2aXNpYmxlIGJlY2F1c2UgdGhlcmUgYXJlIGEgbG90IG9mIGNvbW1pdHMsCj4gYnV0IGl0J3MgdGhlcmUuCj49MjAKPiBIb3cgY2FuIGl0IGJlIGZpeGVkPyBJIHRoaW5rIGl0IHdvdWxkIGJlIGVhc2llciB0byBmaXggdGhlIGluZGl2aWR1YWwKPiBwbHVnaW4gcmVwb3NpdG9yaWVzIChhZnRlciB0aGUgc3BsaXQpIGFzIHRoZXkgYXJlIHNtYWxsZXIgYW5kIGVhc2llcgo+IHRvIHdvcmsgd2l0aC4gVGhlIHBsYW4gaXMgc2ltcGxlIC0gYXMgdGhlIGJyYW5jaGVzIGNyZWF0ZWQgYnkgdGhlIHRhZ3MKPiBkb2VzIG5vdCBjb250YWluIG5ldyBjb21taXRzKHdpdGggYSBzaW5nbGUgZXhjZXB0aW9uIGJ1dCBJJ2xsIGV4cGxhaW4KPiB0aGF0IGluIGEgbWludXRlKSBhbmQgYWxsIG9mIHRoZW0gYXJlIHByZXNlbnQgaW4gdGhlIG1hc3RlciBicmFuY2ggIHdlCj4gY291bGQganVzdCBjaGFuZ2UgdGhlIHRhZyB0byBwb2ludCB0byB0aGUgc2FtZSBjb21taXRzIGJ1dCBpbiB0aGUKPiBtYXN0ZXIgYnJhbmNoLiBUaGF0IHdpbGwgY2F1c2UgYWxsIGV4dHJhIGNvbW1pdHMgYW5kIGJyYW5jaGVzIHRvIGJlCj4gZ2FyYmFnZSBjb2xsZWN0ZWQgYXMgdGhleSBhcmUgYWNjZXNzaWJsZSBvbmx5IGZyb20gdGhlIHRhZ3MuIEZvciBvdXIKPiBwdXJwb3NlcyBjb21taXRzIGFyZSBlcXVhbCBpZiB0aGV5IHBvaW50IHRvIHRoZSBzYW1lIHJvb3QgdHJlZSAodGhlCj4gc2FtZSBmaWxlcyB3aXRoIHRoZSBzYW1lIGNvbnRlbnQpLiBCdXQgdW5mb3J0dW5hdGVseSB0aGVyZSBpcyBhIGNhdGNoLgo+IFdoYXQgSSBzYWlkIGFib3V0IHRoZSBicmFuY2hlcyBjcmVhdGVkIGJ5IHRoZSB0YWdzIGlzIG5vdCBzdHJpY3RseQo+IHRydWUgLSB0aGV5IGRvIGhhdmUgc29tZSBleHRyYSBjb21taXRzLiBXaGVuIHlvdSByZWxlYXNlIGluIFNWTiB5b3UKPiBoYXZlIHRoZSBmb2xsb3dpbmcgc2VxdWVuY2Ugb2YgY29tbWl0czoKPj0yMAo+ICogW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBjb3B5IGZvciB0YWcgbWF2ZW4td2FyLXBsdWdpbi0zLjIuMCAodGhpcyBpcwo+IHRoZSB0YWdnZWQgY29tbWl0KQo+ICogW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIHJlbGVhc2UgbWF2ZW4td2FyLXBsdWdpbi0zLjIuMAo+PTIwCj4gQWZ0ZXIgdGhlIG1pZ3JhdGlvbiB0byBHaXQgdGhlIG1hc3RlciAodHJ1bmspIGJyYW5jaCBjb250YWluIG9ubHkgdGhlCj4gJ3ByZXBhcmUgcmVsZWFzZScgY29tbWl0IGJ1dCBub3QgdGhlICdjb3B5IGZvciB0YWcnIGNvbW1pdC4gU28gaWYgd2UKPiBhcHBseSBteSBwbGFuIHRoZW4gdGhlICdjb3B5IGZvciB0YWcnIGNvbW1pdCB3aWxsIGJlIGxvc3QuIEl0J3MganVzdCBhCj4gY29weSAobm8gY2hhbmdlcywgaXQgY29udGFpbnMgdGhlIHNhbWUgZmlsZXMgYXMgdGhlIHByZXZpb3VzIGNvbW1pdCkKPiBzbyBJIGRvbid0IHRoaW5rIGl0J3MgYSBwcm9ibGVtIGJ1dCB3b3VsZCBiZSBuaWNlIGlmIHNvbWVib2R5Cj4gY29uZmlybXMuCj49MjAKPiBTbyB0aGUgcHJvcG9zZWQgcGxhbiBoYXZlIHRoZSBmb2xsb3dpbmcgY2F2ZWF0czoKPj0yMAo+ICogdGhlICdjb3B5IGZvciB0YWcnIGNvbW1pdHMgd2lsbCBiZSBsb3N0LiBObyBjaGFuZ2VzIHdpbGwgYmUgbG9zdCBhcwo+IHRob3NlIGFyZSBvbmx5IGNvcHkgY29tbWl0cwo+ICogdGhlIHRhZ3Mgd2lsbCBwb2ludCB0byB0aGUgcHJldmlvdXMgJ3ByZXBhcmUgcmVsZWFzZScgY29tbWl0cwo+ICogdGhlIHRhZ3MgU0hBIHdpbGwgYmUgY2hhbmdlZCBiZWNhdXNlIHRoZXkgcG9pbnQgdG8gYSBkaWZmZXJlbnQgY29tbWl0Cj49MjAKPiBJZiB0aGF0IGlzIE9LIEkgY2FuIHdyaXRlIGEgc2NyaXB0IHRoYXQgd2lsbCBhcHBseSB0aG9zZSBjaGFuZ2VzLgo+PTIwCj4gV2hhdCBjYXVzZXMgdGhlIGJyYW5jaGVzIGFuZCBhbGwgdGhvc2UgZHVwbGljYXRpbmcgY29tbWl0cz8gV2VsbCB0aGUKPiBtYXN0ZXIgYnJhbmNoIHRyYWNrcwo+IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2NvbXBvbmVudHMvdHJ1bmsvbWF2ZW4tcGx1Z2lucwo+IGJ1dCB0aGUgdGFncyBmb3IgdGhlIHBsdWdpbnMgYXJlIGFjdHVhbGx5IHRyYWNraW5nIHRoZSBwbHVnaW4KPiBkaXJlY3RvcnkgKGZvciBleGFtcGxlOgo+IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2NvbXBvbmVudHMvdHJ1bmsvbWF2ZW4tcGx1Z2lucy9tYXY9CmVuLT4gd2FyLXBsdWdpbikuIFNvIGZvciBtYXZlbi13YXItcGx1Z2lucyB5b3UgaGF2ZSB0d28gY29tbWl0cyBpbiB0aGUKPiBtYXZlbi1wbHVnaW5zIEdpdCByZXBvc2l0b3J5IC0gb25lIGZvcgo+IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2NvbXBvbmVudHMvdHJ1bmsvbWF2ZW4tcGx1Z2lucy9tYXY9CmVuLT4gd2FyLXBsdWdpbiBhbmQgb25lIGZvcgo+IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2NvbXBvbmVudHMvdHJ1bmsvIG5vIG1hdHRlciB0aGF0Cj4gYWN0dWFsbHkgdGhvc2UgY29tbWl0cyBhcmUgdGhlIHNhbWUgLSBzYW1lIGRhdGUsCj4gYXV0aG9yLCBtZXNzYWdlLCBmaWxlcywgZXRjLgo+PTIwCj4gUmVnYXJkcywKPiBQbGFtZW4gVG90ZXYKPj0yMAo+IE9uIFN1biwgRGVjIDI0LCAyMDE3IGF0IDExOjU0IEFNLCAgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3JvdGU6Cj4gPiBJJ2Qgc3VnZ2VzdCB0byB0cnkgdGhlIHByb2Nlc3MgdG8gYSBwZXJzb25hbCBwZXJzb25hbCByZXBvIG9uIEdpdEh1YiB0bwo+ID4gc2VlIGlmIHlvdSdyZSBhYmxlIHRvIGdldCBhIGJldHRlciByZXN1bHQgYmVmb3JlIGludm9sdmluZyBtYW51YWwgd29yawo+ID4gZnJvbSBJTkZSQSAob24gbW9yZSB0aGFuIDYwIHJlcG9zLi4uKQo+ID49MjAKPiA+IChpdCdzIHNhZCB0byBzZWUgbm9ib2R5IHRyeSB0byBleHBsYWluIHdoYXQncyBoYXBwZW5uaW5nIG9yIGltcHJvdmUgdGhlCj4gPiBkb2N1bWVudGVkIGNvbW1hbmRzLCBqdXN0IGdldCB0byBhIGNvbmNsdXNpb246IHJlLWRvIGV2ZXJ5dGhpbmcgYW5kIHByYT0KeSkKPiA+PTIwCj4gPiBSZWdhcmRzLAo+ID49MjAKPiA+IEhlcnY9RTkKPiA+PTIwCj4gPiAtLS0tLSBNYWlsIG9yaWdpbmFsIC0tLS0tCj4gPiBEZTogIkthcmwgSGVpbnogTWFyYmFpc2UiIDxraG1hcmJhaXNlQGdteC5kZT4KPiA+ID1DMDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwgIlJvYmVydCBTY2hvbHRlIgo+ID4gPHJmc2Nob2x0ZUBhcGFjaGUub3JnPiBFbnZveT1FOTogRGltYW5jaGUgMjQgRD1FOWNlbWJyZSAyMDE3IDEwOjQ3OjQzCj4gPiBPYmpldDogUmU6IFtJTVBPUlRBTlRdIFJlOiBHaXQgbWlncmF0aW9uIG5leHQgc3RlcHMKPiA+PTIwCj4gPiBIaSwKPiA+PTIwCj4gPiBPbiAyNC8xMi8xNyAxMDo0MCwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4gPj4gSG93IGFib3V0IGEgaGFyZCByZXNldCBvciBkcm9wcGluZyB0aGUgcmVwbyBhbmQgZG9pbmcgaXQgYWxsIG92ZXIgYWdhaT0Kbj8KPiA+PTIwCj4gPiBJZiBJIGNvcnJlY3RseSBzZWVuIHRoYXQgLi50aGVyZSBoYWQgbm8gY29tbWl0IHlldCBvbiB0aGUgbmV3IGdpdCByZXBvcz0KPTJFLgo+ID49MjAKPiA+IFNvIEkgdGhpbmsgaXQgd291bGQgYmUgdGhlIGVhc2llc3Qgd2F5IHRvIGRvIGFzIFJvYmVydCBzdWdnZXN0IC4uLnRvCj4gPiByZWRvIG1pZ3JhdGlvbiBmb3IgdGhvc2UgcmVwb3MuLgo+ID49MjAKPiA+IEtpbmQgcmVnYXJkcwo+ID4gS2FybCBIZWluego+ID49MjAKPiA+PiBPbiBXZWQsIDIwIERlYyAyMDE3IDEwOjQyOjM2ICswMTAwLCBIZXJ2PUU5IEJPVVRFTVkKPiA+Pj0yMAo+ID4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdyb3RlOgo+ID4+PiBJTkZSQS0xNTY3OSBmaXhlZCBieSBpbmZyYSB0ZWFtCj4gPj4+IHRoZW4gSSByZS1ydW4gbWlncmF0ZS1wbHVnaW5zLnNoIHNjcmlwdCB0byBzcGxpdCB0aGUgc3ZuMmdpdCBtaXJyb3IgdG8KPiA+Pj4gcGVyLQo+ID4+PiBwbHVnaW4gZ2l0IHJlcG8KPiA+Pj4gYW5kIEkgcHVzaGVkICJtYXN0ZXIyIiBicmFuY2hlcyBmb3IgbS1qYXZhZG9jLXAsIG0tc2l0ZS1wIGFuZCBtLXBkZi1wLAo+ID4+PiB3aGljaAo+ID4+PiB3ZXJlIHRoZSAzIHBsdWdpbnMgd2hpY2ggc3VmZmVyZWQgZnJvbSBtaXNzaW5nIGNvbW1pdHMKPiA+Pj49MjAKPiA+Pj4gb24gbS1zaXRlLXAgYW5kIG0tcGRmLXAsIEknbGwgY2hlcnJ5IHBpY2sgdGhlIHVuaXF1ZSBjb21taXQgdGhhdCB3YXMKPiA+Pj4gbWlzc2VkOgo+ID4+PiBub3QgYSBiaWcgZGVhbAo+ID4+Pj0yMAo+ID4+PiBvbiBtLWphdmFkb2MtcCwgdGhlIHNpdHVhdGlvbiBpcyBtb3JlIGNvcGxleCwgc2luY2UgdGhlcmUgd2FzIGEgcmVsZWE9CnNlCj4gPj4+PTIwCj4gPj4+IEkgYWxzbyBub3RpY2VkIHRoYXQgSSBmb3Jnb3QgdG8gcHVzaCB0YWdzIHdoZW4gaW1wb3J0aW5nOiBJIHN0YXJ0ZWQgdG8KPiA+Pj4gZG8gImdpdAo+ID4+PiBwdXNoIC0tdGFncyIsIGJ1dCB0aGUgcmVzdWx0IGRvZXMgbm90IGxvb2sgYXMgSSBleHBlY3RlZDogaXQgY3JlYXRlcyBhCj4gPj4+IGxvdCBvZgo+ID4+PiBwYXJhbGxlbCBicmFuY2hlcwo+ID4+Pj0yMAo+ID4+PiBJJ2xsIG5lZWQgaGVscCBmcm9tIGdpdCBleHBlcnRzOiB3aGF0IGlzIGhhcHBlbmluZz8KPiA+Pj49MjAKPiA+Pj4gSSBzdG9wcGVkIHRoZSB0YWdzIHB1c2ggaGFsZiB0aGUgd2F5LCB3ZSdsbCBuZWVkIHRvIGRlY2lkZSB3aGF0IHRvIGRvPQo9MkUuLgo+ID4+PiAoSSBrbmV3IEkgd2FzIG5vdCBhIGdpdCBleHBlcnQgYW5kIHRoZXJlIHdhcyBhIHJpc2sgZm9yIHNvbWV0aGluZwo+ID4+PiB3ZWlyZCBsaWtlCj4gPj4+IHdoYXQncyBjdXJyZW50bHkgaGFwcGVuaW5nLi4uKQo+ID4+Pj0yMAo+ID4+PiBBbnkgaGludD8KPiA+Pj49MjAKPiA+Pj4gUmVnYXJkcywKPiA+Pj49MjAKPiA+Pj4gSGVydj1FOQo+ID4+Pj0yMAo+ID4+PiBMZSBzYW1lZGkgMTYgZD1FOWNlbWJyZSAyMDE3LCAxNjoyODo0OCBDRVQgSGVydj1FOSBCT1VURU1ZIGEgPUU5Y3JpdCA6Cj4gPj4+PiBvaywgSSB3YXMgY29uZnVzZWQgYnkgdGhlIGRpZmZlcmVudCB0YWtlcyBhdCBtLWphdmFkb2MtcCAzLjAuMAo+ID4+Pj49MjAKPiA+Pj4+IHllcywgc3ZuMmdpdCBtaXJyb3IgaXMgc3R1Y2sgWzFdIGF0IHIxODE1Njc1Cj4gPj4+Pj0yMAo+ID4+Pj4gSSBqdXN0IG9wZW5lZCBhbiBJTkZSQSBKaXJhIGlzc3VlCj4gPj4+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0lORlJBLTE1Njc5Cj4gPj4+Pj0yMAo+ID4+Pj4gb25jZSB0aGUgc3ZuMmdpdCBtaXJyb3Igd2lsbCBiZSB1cGRhdGVkLCB3ZSdsbCBoYXZlIHRvIHJlLXJ1biB0aGUgc3A9CmxpdAo+ID4+Pj4gc2NyaXB0cyBhbmQgY2hlcnJ5IHBpY2sgdGhlIG1pc3NpbmcgY29tbWl0cwo+ID4+Pj49MjAKPiA+Pj4+IFJlZ2FyZHMsCj4gPj4+Pj0yMAo+ID4+Pj4gSGVydj1FOQo+ID4+Pj49MjAKPiA+Pj4+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvY29tbWl0cy90cnVuawo+ID4+Pj49MjAKPiA+Pj4+IExlIHNhbWVkaSAxNiBkPUU5Y2VtYnJlIDIwMTcsIDEzOjAxOjA1IENFVCBSb2JlcnQgU2Nob2x0ZSBhID1FOWNyaXQgOgo+ID4+Pj4gPiBJIHdhcyB0cmlnZ2VyZWQgYnkgc29tZSBmYWlsaW5nIHVuaXQgdGVzdHMsIHdoaWNoIHNob3VsZCBoYXZlIGJlZW4KPiA+Pj4+PTIwCj4gPj4+PiBzb2x2ZWQKPiA+Pj4+PTIwCj4gPj4+PiA+IGluIG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wCj4gPj4+PiA+PTIwCj4gPj4+PiA+IE15IGxhc3QgY29tbWl0IGFjY29yZGluZyB0byBHSVQgd2FzIG5vdmVtYmVyIDE4dGgKPiA+Pj4+ID4gTXkgbGFzdCBjb21taXQgYWNjb3JkaW5nIHRvIFNWTiB3YXMgZGVjZW1iZXIgM3JkCj4gPj4+PiA+PTIwCj4gPj4+PiA+IGNvbXBhcmluZyBzdm5sb2cgd2l0aCBnaXRsb2cgbW9zdCBvZiB0aGVzZSBjb21taXRzIGFyZSBsb3N0Ogo+ID4+Pj4gPj0yMAo+ID4+Pj4gPiBtb3ZlZCB0byBnaXQKPiA+Pj4+ID4gLS0tLQo+ID4+Pj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgZm9yIG5leHQgZGV2ZWxvcG1lbnQgaXRlcmF0aW9uCj4gPj4+PiA+IC0tLS0KPiA+Pj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIHJlbGVhc2UgbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAKPiA+Pj4+ID4gLS0tLQo+ID4+Pj4gPiBbTUpBVkFET0MtNDk4XSAibW9kdWxlIG5vdCBmb3VuZCIgd2hlbiBKYXZhIDkgbW9kdWxlLWluZm8gcHJlc2VudAo+ID4+Pj4gPiBTdXBwb3J0IGFnZ3JhdGVkIGphdmFkb2MKPiA+Pj4+ID4gLS0tLQo+ID4+Pj4gPiBTa2lwIHNldmVyYWwgdW5pdHRlc3RzIGZvciBKYXZhOQo+ID4+Pj4gPiAtLS0tCj4gPj4+PiA+IEpESy04MDMyMjA1IHdhcyBjbG9zZWQgYXMgbm90IGFuIGlzc3VlLCBzbyBub3Qgc29sdmVkIGluIEphdmE5Lgo+ID4+Pj4gPiBOZWVkIHRvIHJldmlldyB0aGUgY29uY2x1c2lvbgo+ID4+Pj4gPiAtLS0tCj4gPj4+PiA+IFVwZ3JhZGUgbW9ja2l0byB0byByZW1vdmUgd2FybmluZyBhYm91dCBpbGxlZ2FsIHJlZmxlY3RpdmUgYWNjZXNzCj4gPj4+PiA+IC0tLS0KPiA+Pj4+ID4gSW1wcm92ZSBUZXN0SmF2YWRvY1JlcG9ydFRlc3QjdGVzdFRlc3RKYXZhZG9jCj4gPj4+PiA+IEo4IHdhcm5zIGFuZCBjb250aW51ZXMgd2l0aCBtaXNzaW5nIGRlcGVuZGVuY3ksIEo5IGZhaWxzLgo+ID4+Pj4gPiBJbiBmYWN0IHRlc3Qgd2FzIHdyb25nOiBkZXBlbmRlbmN5IHNob3VsZCBoYXZlIGJlZW4gb24gY2xhc3NwYXRoCj4gPj4+PiA+IC0tLS0KPiA+Pj4+ID4gdW5pdHRlc3Qgc2hvdWxkIHByZWZlciBKQVZBX0hPTUUgd2hlbiBleGVjdXRpbmcgZnJvbSBjbWRsaW5lCj4gPj4+PiA+IFdoZW4gcnVubmluZyB3aXRoIEphdmE5KyBubyBuZWVkIHRvIHN3aXRjaCBmcm9tIGpyZSB0byBqZGsgZGlyZWN0bz0KcnkKPiA+Pj4+ID4gKGplcDIyMCkKPiA+Pj4+ID4gLS0tLQo+ID4+Pj4gPiBNSkFWQURPQy01MDIgVXBkYXRlIERFRkFVTFRfSkFWQV9BUElfTElOS1MKPiA+Pj4+ID4gLS0tLQo+ID4+Pj4gPiBzZXNzaW9uIGlzIHJlcXVpcmVkIHBhcmFtZXRlciwgc28gY2Fubm90IGJlIG51bGwuIEZpeCByZWxhdGVkCj4gPj4+Pj0yMAo+ID4+Pj4gdW5pdHRlc3RzCj4gPj4+Pj0yMAo+ID4+Pj4gPiAtLS0tCj4gPj4+PiA+IEFkZCBwcm9qZWN0L2FydGlmYWN0IGtleSB0byBzZXQgb2Ygc291cmNlUGF0aHMgdG8gcmVjb2duaXplIHJlYWN0b3IKPiA+Pj4+ID4gcHJvamVjdHMgdmVyc3VzIGRlcGVuZGVuY2llcwo+ID4+Pj4gPiAtLS0tCj4gPj4+PiA+IEdyb3VwIHNldHMgb2Ygc291cmNlcGF0aHMgcGVyIHByb2plY3QsIGluIHByZXBhcmUgb2YgdXNhZ2Ugb2YKPiA+Pj4+ID4gbW9kdWxlLXNvdXJjZS1wYXRoLgo+ID4+Pj4gPiAtLS0tCj4gPj4+PiA+IFN3aXRjaCBmcm9tIExpc3QgdG8gQ29sbGVjdGlvbiB0byBtYWtlIGl0IGVhc2llciB0byB1c2UgU2V0cyB3aGVuCj4gPj4+PiA+IHByZWZlcnJlZAo+ID4+Pj4gPiAtLS0tCj4gPj4+PiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSBmb3IgbmV4dCBkZXZlbG9wbWVudCBpdGVyYXRpb24KPiA+Pj4+ID4gLS0tLQo+ID4+Pj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgcmVsZWFzZSBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+ID4+Pj4gPiAtLS0tCj4gPj4+PiA+PTIwCj4gPj4+PiA+PTIwCj4gPj4+PiA+PTIwCj4gPj4+PiA+PTIwCj4gPj4+PiA+IE9uIFNhdCwgMTYgRGVjIDIwMTcgMTI6NTM6MjMgKzAxMDAsIEhlcnY9RTkgQk9VVEVNWQo+ID4+Pj49MjAKPiA+Pj4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPj4+Pj0yMAo+ID4+Pj4gPiB3cm90ZToKPiA+Pj4+ID4gPiBsb29raW5nIGF0IGNvbW1pdHNAIGNvbnRlbnQgaHR0cHM6Ly9saXN0cy5hcGFjaGUub3JnL2xpc3QuaHRtbD8KPiA+Pj4+ID4gPiBjb21taXRzQG1hdmVuLmFwYWNoZS5vcmcgd2l0aCBzdWJqZWN0IGNvbnRhaW5pbmcKPiA+Pj4+PTIwCj4gPj4+PiAibWF2ZW4vcGx1Z2lucy90cnVuayIKPiA+Pj4+PTIwCj4gPj4+PiA+ID4gYW5kIHBsdWdpbnMgc3ZuMmdpdCBtaXJyb3IKPiA+Pj4+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvY29tbWl0cy8KPiA+Pj4+ID4gPiB0cnVuawo+ID4+Pj4gPiA+PTIwCj4gPj4+PiA+ID4gb25seSAxIGNvbW1pdCBpcyBtaXNzaW5nOiBteSBsYXRlc3QgY29tbWl0IG9uIG1hdmVuLXNpdGUtcGx1Z2luCj4gPj4+PiA+ID4gKHRoZSBsYXN0IGNvbW1pdCBmb3IgR2l0IG1pZ3JhdGlvbiBpcyBub3QgdXNlZnVsKQo+ID4+Pj4gPiA+PTIwCj4gPj4+PiA+ID49MjAKPiA+Pj4+ID4gPiBTYW1lIG9uIHNoYXJlZCBzaG93ZWQgbm8gbWlzc2luZyBjb21taXQuCj4gPj4+PiA+ID49MjAKPiA+Pj4+ID4gPj0yMAo+ID4+Pj4gPiA+IHdoYXQgbGF0ZXN0IGNvbW1pdCBvZiBtYXZlbi1qYXZhZG9jLXBsdWdpbiBhcmUgeW91IGxvb2tpbmcgZm9yPwo+ID4+Pj4gPiA+PTIwCj4gPj4+PiA+ID4gUmVnYXJkcywKPiA+Pj4+ID4gPj0yMAo+ID4+Pj4gPiA+IEhlcnY9RTkKPiA+Pj4+ID4gPj0yMAo+ID4+Pj4gPiA+IExlIHNhbWVkaSAxNiBkPUU5Y2VtYnJlIDIwMTcsIDExOjU2OjMxIENFVCBSb2JlcnQgU2Nob2x0ZSBhID1FOWM9CnJpdCA6Cj4gPj4+PiA+ID4+IEZvciBldmVyeWJvZHkganVzdCBhIHdhcm5pbmcgSSBmYWNlZCB0b2RheToKPiA+Pj4+ID4gPj4gSWYgeW91IHN3aXRjaCB0byB0aGUgZ2l0IHJlcG9zLCBwbGVhc2UgbWFrZSBzdXJlIGFsbCBjb21taXRzIGFyZQo+ID4+Pj4gPiA+PiBtaWdyYXRlZC4KPiA+Pj4+ID4gPj4gSSBub3RpY2VkIHRoZSBsYXRlc3QgY29tbWl0cyBvZiB0aGUgbWF2ZW4tamF2YWRvYy1wbHVnaW4gZ290IGxvPQpzdC4KPiA+Pj4+ID4gPj49MjAKPiA+Pj4+ID4gPj4gdGhhbmtzLAo+ID4+Pj4gPiA+PiBSb2JlcnQKPiA+Pj4+ID4gPj49MjAKPiA+Pj4+ID4gPj4gT24gU2F0LCAwOSBEZWMgMjAxNyAxNzowNjowOSArMDEwMCwgU3RlcGhlbiBDb25ub2xseQo+ID4+Pj4gPiA+Pj0yMAo+ID4+Pj4gPiA+PiA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPj4+PiA+ID4+ID4gSSBzZWUgd2UgaGF2ZSBhIGxhcmdlIG51bWJlciBvZiByZXBvcyBub3cgb24gZ2l0Ym94IDstKQo+ID4+Pj4gPiA+PiA+PTIwCj4gPj4+PiA+ID4+ID4gT24gVGh1IDcgRGVjIDIwMTcgYXQgMDc6MDAsIEhlcnY9RTkgQk9VVEVNWQo+ID4+Pj4gPiA+PiA+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPj4+PiA+ID4+PTIwCj4gPj4+PiA+ID4+IHdyb3RlOgo+ID4+Pj4gPiA+PiA+PiBvaywgSSBkaWRuJ3QgdXBkYXRlIG15IHJlcG8gY2xvbmU6IG5vdyB0aGUgcnVuLWl0cyBwcm9maWxlIGlzCj4gPj4+PiA+ID4+PTIwCj4gPj4+PiA+ID4+IGFjdGl2YXRlZAo+ID4+Pj4gPiA+Pj0yMAo+ID4+Pj4gPiA+PiA+PiB0aGVuIHRoZSBwbGFuIHNob3VsZCBqdXN0IGNvbmZpcm0gIml0IHdvcmtzISIgOikKPiA+Pj4+ID4gPj4gPj49MjAKPiA+Pj4+ID4gPj4gPj4gYW5kIGZpbmQgd2hpY2ggam9icyBhcmUgc3BlY2lhbCwgbGlrZSBtYXZlbi1kaXN0LXRvb2wgKHdoaWNoCj4gPj4+Pj0yMAo+ID4+Pj4gaGFzIHRvCj4gPj4+Pj0yMAo+ID4+Pj4gPiA+PiBiZQo+ID4+Pj4gPiA+Pj0yMAo+ID4+Pj4gPiA+PiA+PiBzY2hlZHVsZWQgZGFpbHkgaW5zdGVhZCBvZiBjb2RlIGNoYW5nZSwgYW5kIG9uZSBwbGF0Zm9ybSBvbmw9CnkpCj4gPj4+PiA+ID4+ID4+PTIwCj4gPj4+PiA+ID4+ID4+IFJlZ2FyZHMsCj4gPj4+PiA+ID4+ID4+PTIwCj4gPj4+PiA+ID4+ID4+IEhlcnY9RTkKPiA+Pj4+ID4gPj4gPj49MjAKPiA+Pj4+ID4gPj4gPj4gTGUgbWVyY3JlZGkgNiBkPUU5Y2VtYnJlIDIwMTcsIDIzOjU4OjQ1IENFVCBTdGVwaGVuIENvbm5vbGx5PQogYQo+ID4+Pj49MjAKPiA+Pj4+ID1FOWNyaXQgOgo+ID4+Pj4gPiA+PiA+PiA+IE9uIFdlZCA2IERlYyAyMDE3IGF0IDIyOjM4LCBIZXJ2PUU5IEJPVVRFTVkKPiA+Pj4+PTIwCj4gPj4+PiA8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID4+Pj49MjAKPiA+Pj4+ID4gPj4gPj4gd3JvdGU6Cj4gPj4+PiA+ID4+ID4+ID4gPiBOb3cgdGhhdCB3ZSBoYXZlIDIgQVNGIE9yZ2FuaXphdGlvbiBKZW5raW5zIGpvYnMgKG9uZSBmb3IKPiA+Pj4+PTIwCj4gPj4+PiBnaXRib3gKPiA+Pj4+PTIwCj4gPj4+PiA+ID4+IFsxXQo+ID4+Pj4gPiA+Pj0yMAo+ID4+Pj4gPiA+PiA+PiBhbmQKPiA+Pj4+ID4gPj4gPj49MjAKPiA+Pj4+ID4gPj4gPj4gPiA+IG9uZQo+ID4+Pj4gPiA+PiA+PiA+ID4gZm9yIGdpdC13aXA6IHRoYW5rIHlvdSBTdGVwaGVuKSBhbmQgdGhhdCBpdCBsb29rcyBxdWl0ZQo+ID4+Pj4gPiA+Pj0yMAo+ID4+Pj4gPiA+PiBzdWNjZXNzZnVsLAo+ID4+Pj4gPiA+Pj0yMAo+ID4+Pj4gPiA+PiA+PiBsZXQncwo+ID4+Pj4gPiA+PiA+Pj0yMAo+ID4+Pj4gPiA+PiA+PiA+ID4gcGxhbgo+ID4+Pj4gPiA+PiA+PiA+ID4gdGhlIG5leHQgc3RlcHMuCj4gPj4+PiA+ID4+ID4+ID4gPj0yMAo+ID4+Pj4gPiA+PiA+PiA+ID4gSGVyZSBpcyB3aGF0IEkgc2VlOgo+ID4+Pj4gPiA+PiA+PiA+ID4gMS4gcmVtb3ZhbCBvZiBoYW5kLWRlZmluZWQgSmVua2lucyBqb2JzIHRoYXQgYXJlIG5vdwo+ID4+Pj49MjAKPiA+Pj4+IGR1cGxpY2F0ZXMKPiA+Pj4+PTIwCj4gPj4+PiA+ID4+ID4+ID4gPiAyLiBwcmVwYXJhdGlvbiBvZiB0aGUgNjAgbmV3IGVtcHR5IGdpdCByZXBvcyBmb3Igc2hhcmVkICYKPiA+Pj4+ID4gPj4gPj4gPiA+IHBsdWdpbnMKPiA+Pj4+ID4gPj4gPj4gPiA+PTIwCj4gPj4+PiA+ID4+ID4+ID4gPiAzLiBtaWdyYXRpb24gb2YgdGhlIDEgc2hhcmVkIGNvbXBvbmVudCBhbmQgMSBwbHVnaW4gdXNpbmcKPiA+Pj4+ID4gPj4gPj49MjAKPiA+Pj4+ID4gPj4gPj4gbWlncmF0ZS0qLnNoCj4gPj4+PiA+ID4+ID4+PTIwCj4gPj4+PiA+ID4+ID4+ID4gPiBzY3JpcHRzCj4gPj4+PiA+ID4+ID4+ID4gPiBbM10gdG8gdGVzdCBhbmQgZXZlbnR1YWxseSByZXdvcmsgdGhlIEplbmtpbnNmaWxlIChJCj4gPj4+Pj0yMAo+ID4+Pj4gc3VwcG9zZSBpdAo+ID4+Pj49MjAKPiA+Pj4+ID4gPj4gd2lsbAo+ID4+Pj4gPiA+Pj0yMAo+ID4+Pj4gPiA+PiA+PiA+ID4gcmVxdWlyZQo+ID4+Pj4gPiA+PiA+PiA+ID4gc29tZSBsaXR0bGUgY2hhbmdlLCB0byBydW4gYWRkICJydW4taXRzIiBwcm9maWxlKQo+ID4+Pj4gPiA+PiA+PiA+PTIwCj4gPj4+PiA+ID4+ID4+ID4gQXMgZmFyIGFzIEkgcmVjYWxsLCBJIGFkZGVkIC1QK3J1bi1pdHMgYWxyZWFkeQo+ID4+Pj4gPiA+PiA+PiA+PTIwCj4gPj4+PiA+ID4+ID4+ID4gRm9yIHRoZSBwbHVnaW4sIEknZCBsaWtlIHRvIGRvIHRoZSBqb2IgZm9yIG1hdmVuLXNpdGUtcGx1Zz0KaW4sCj4gPj4+PiA+ID4+PTIwCj4gPj4+PiA+ID4+IHNpbmNlIHdlCj4gPj4+PiA+ID4+PTIwCj4gPj4+PiA+ID4+ID4+ID4gPiBleHBlY3QKPiA+Pj4+ID4gPj4gPj4gPiA+IHRvIHJlbGVhc2UgaXQgc29vbi4KPiA+Pj4+ID4gPj4gPj4gPiA+IEZvciB0aGUgc2hhcmVkIGNvbXBvbmVudCwgSSBkb24ndCBrbm93IGlmIHRoZXJlIGlzIGEgYmVzdAo+ID4+Pj4gPiA+Pj0yMAo+ID4+Pj4gPiA+PiBjYW5kaWRhdGUKPiA+Pj4+ID4gPj49MjAKPiA+Pj4+ID4gPj4gPj4gPiA+IDQuIG9uY2UgcHJldmlvdXMgc3RlcCBpcyBvaywgZG8gdGhlIGZ1bGwgbWlncmF0aW9uOiBpZgo+ID4+Pj49MjAKPiA+Pj4+IHRoZXJlIGFyZQo+ID4+Pj49MjAKPiA+Pj4+ID4gPj4gPj4gPiA+IHZvbHVudGVlcnMKPiA+Pj4+ID4gPj4gPj4gPiA+IGZvciBoZWxwaW5nLCB0aGF0IHdvdWxkIGJlIGdyZWF0LCBzaW5jZSBwb3B1bGF0aW5nIDYwIGdpdAo+ID4+Pj49MjAKPiA+Pj4+IHJlcG9zCj4gPj4+Pj0yMAo+ID4+Pj4gPiA+PiA+PiB3b24ndAo+ID4+Pj4gPiA+PiA+PiBiZQo+ID4+Pj4gPiA+PiA+Pj0yMAo+ID4+Pj4gPiA+PiA+PiA+ID4gcmVhbGx5IGZ1bi4uLgo+ID4+Pj4gPiA+PiA+PiA+ID49MjAKPiA+Pj4+ID4gPj4gPj4gPiA+IEFuZCBhcyBwYXJ0IG9mIDYwIGVtcHR5IGdpdCByZXBvcyBjcmVhdGlvbiwgSSBwcm9wb3NlIHRvCj4gPj4+Pj0yMAo+ID4+Pj4gbWlncmF0ZQo+ID4+Pj49MjAKPiA+Pj4+ID4gPj4gdGhlCj4gPj4+PiA+ID4+PTIwCj4gPj4+PiA+ID4+ID4+ID4gPiAiR29vZ2xlCj4gPj4+PiA+ID4+ID4+ID4gPiByZXBvIG1hbmlmZXN0IiBtYXZlbi1hZ2dyZWdhdG9yIFs0XSB0byBBU0Y6IG15IHBlcnNvbmFsCj4gPj4+Pj0yMAo+ID4+Pj4gdXNlIGhhcwo+ID4+Pj49MjAKPiA+Pj4+ID4gPj4gYmVlbgo+ID4+Pj4gPiA+Pj0yMAo+ID4+Pj4gPiA+PiA+PiBxdWl0ZQo+ID4+Pj4gPiA+PiA+Pj0yMAo+ID4+Pj4gPiA+PiA+PiA+ID4gc3VjY2Vzc2Z1bCwgSSBob3BlIGl0J3MgdGhlIHNhbWUgZm9yIG90aGVycy4gUGVyaGFwcwo+ID4+Pj49MjAKPiA+Pj4+IHRoZXJlIGFyZQo+ID4+Pj49MjAKPiA+Pj4+ID4gPj4gPj4gYmV0dGVyCj4gPj4+PiA+ID4+ID4+PTIwCj4gPj4+PiA+ID4+ID4+ID4gPiBpZGVhcwo+ID4+Pj4gPiA+PiA+PiA+ID4gZm9yIGl0cyBuYW1lOiBtYXZlbi1hZ2dyZWdhdG9yCj4gPj4+PiA+ID4+ID4+ID4gPj0yMAo+ID4+Pj4gPiA+PiA+PiA+ID4gQW55IG90aGVyIGlkZWE/IGFueSBvYmplY3Rpb24/Cj4gPj4+PiA+ID4+ID4+ID4gPj0yMAo+ID4+Pj4gPiA+PiA+PiA+ID4gUmVnYXJkcywKPiA+Pj4+ID4gPj4gPj4gPiA+PTIwCj4gPj4+PiA+ID4+ID4+ID4gPiBIZXJ2PUU5Cj4gPj4+PiA+ID4+ID4+ID4gPj0yMAo+ID4+Pj4gPiA+PiA+PiA+ID4gWzFdCj4gPj4+Pj0yMAo+ID4+Pj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvCj4gPj4+Pj0yMAo+ID4+Pj4gPiA+PiA+PiA+ID4gWzJdCj4gPj4+Pj0yMAo+ID4+Pj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi13aXAvCj4gPj4+Pj0yMAo+ID4+Pj4gPiA+PiA+PiA+ID4gWzNdCj4gPj4+PiA+ID4+PTIwCj4gPj4+PiA+ID4+IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL21hdmVuL3NhbmRib3gvdHJ1bmsvc2NyaXB0cy9naXQvCj4gPj4+PiA+ID4+PTIwCj4gPj4+PiA+ID4+ID4+ID4gPiBbNF0gaHR0cHM6Ly9naXRodWIuY29tL2hib3V0ZW15L21hdmVuLWFnZ3JlZ2F0b3IKPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj0yMAo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4NTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IERlYyAyOCAwODo0ODozNyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4NTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMTBGNzYxNzhEOAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDI4IERlYyAyMDE3IDA4OjQ4OjM3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTczMjkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggRGVjIDIwMTcgMDg6NDg6MzYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk3MjUwIGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IERlYyAyMDE3IDA4OjQ4OjM2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTcyMzkgaW52b2tlZCBieSB1aWQgOTkpOyAyOCBEZWMgMjAxNyAwODo0ODozNiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMjggRGVjIDIwMTcgMDg6NDg6MzYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBENTI1OTFBMENDOAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjggRGVjIDIwMTcgMDg6NDg6MzUgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCA5bkdrR1ozSktEX0ogZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsIDI4IERlYyAyMDE3IDA4OjQ4OjMzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwNS5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyN10pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBBQ0JEOTVGQUY2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyOCBEZWMgMjAxNyAwODo0ODozMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ2MiB3aXRoIE1FCglpZCByTG9ZMXcwMDEyMFVmZHkwM0xvWTFGOyBUaHUsIDI4IERlYyAyMDE3IDA5OjQ4OjMyICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFRodSwgMjggRGVjIDIwMTcgMDk6NDg6MzIgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW0lNUE9SVEFOVF0gUmU6IEdpdCBtaWdyYXRpb24gbmV4dCBzdGVwcwpEYXRlOiBUaHUsIDI4IERlYyAyMDE3IDA5OjQ4OjMxICswMTAwCk1lc3NhZ2UtSUQ6IDwyNTY1ODU0LlplTTRQRFRYNGNAZ2lnYT4KSW4tUmVwbHktVG86IDxvcC56YnEyaWkxbWtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KUmVmZXJlbmNlczogPDIwMDk3NjU1OTIuMjI5NzIyMTcuMTUxNDEwOTI1NjYzMi5KYXZhTWFpbC5yb290QHNwb29sZXI0LWcyNz4gPG9wLnpicTJpaTFta2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCm9uIG1hdmVuLWphdmFkb2MtcGx1Z2luOiB3aGF0IGFib3V0IG1lcmdpbmcgbWFzdGVyMiBicmFuY2ggaW50byBtYXN0ZXIsIGxpaz0KZT0yMAppZiBpdCB3YXMgYSBQUj8KSW4gZ2VuZXJhbCwgSSBkb24ndCBsaWtlIHRoaXMgd2F5IG9mIGRvaW5nIFBSIG1lcmdlcyAoSSBwcmVmZXIgcmViYXNpbmcgb3I9Cj0yMApjaGVycnkgcGlja2luZywgdG8gYXZvaWQgdGhlIG1lcmdlIGNvbW1pdCBhbmQgdGhlIHBhcmFsbGVsIGJyYW5jaGVzIHN0YXlpbmc9Cj0yMApmb3IgZXZlciBpbiB0aGUgcmVwbyksIGJ1dCBzaW5jZSB0aGlzIHdheSBvZiBtZXJnaW5nIFBScyBpcyBvZnRlbiB1c2VkIGJ5IHQ9CmhlPTIwCnRlYW0sIGxldCdzIHVzZSB0aGlzIHRlY2huaXF1ZSBvbiB0aGUgY3VycmVudCBjYXNlIHdoZXJlIGl0IG1ha2VzIG91ciBsaWZlPQo9MjAKZWFzaWVyPTIwCgpSZWdhcmRzLAoKSGVydj1FOQoKTGUgZGltYW5jaGUgMjQgZD1FOWNlbWJyZSAyMDE3LCAxMzowNDo1NiBDRVQgUm9iZXJ0IFNjaG9sdGUgYSA9RTljcml0IDoKPiBJIGRpZCB0aGUgYXNzdW1wdGlvbiB0aGF0IHlvdSBjYW4gaXNvbGF0ZSBhbGwgbWF2ZW4tamF2YWRvYy1wbHVnaW4gY29tbWl0PQpzLgo+IElmIGl0IGlzIGZvciBhbGwgbWF2ZW4tcGx1Z2lucyBvciBub3RoaW5nLCB0aGVuIGl0IGlzIGEgZGlmZmVyZW50IHN0b3J5Lgo+PTIwCj4gT24gU3VuLCAyNCBEZWMgMjAxNyAxMDo1NDoxNiArMDEwMCwgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3JvdGU6Cj4gPiBJJ2Qgc3VnZ2VzdCB0byB0cnkgdGhlIHByb2Nlc3MgdG8gYSBwZXJzb25hbCBwZXJzb25hbCByZXBvIG9uIEdpdEh1YiB0bwo+ID4gc2VlIGlmIHlvdSdyZSBhYmxlIHRvIGdldCBhIGJldHRlciByZXN1bHQgYmVmb3JlIGludm9sdmluZyBtYW51YWwgd29yawo+ID4gZnJvbSBJTkZSQSAob24gbW9yZSB0aGFuIDYwIHJlcG9zLi4uKQo+ID49MjAKPiA+IChpdCdzIHNhZCB0byBzZWUgbm9ib2R5IHRyeSB0byBleHBsYWluIHdoYXQncyBoYXBwZW5uaW5nIG9yIGltcHJvdmUgdGhlCj4gPiBkb2N1bWVudGVkIGNvbW1hbmRzLCBqdXN0IGdldCB0byBhIGNvbmNsdXNpb246IHJlLWRvIGV2ZXJ5dGhpbmcgYW5kIHByYT0KeSkKPiA+PTIwCj4gPiBSZWdhcmRzLAo+ID49MjAKPiA+IEhlcnY9RTkKPiA+PTIwCj4gPiAtLS0tLSBNYWlsIG9yaWdpbmFsIC0tLS0tCj4gPiBEZTogIkthcmwgSGVpbnogTWFyYmFpc2UiIDxraG1hcmJhaXNlQGdteC5kZT4KPiA+ID1DMDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwgIlJvYmVydCBTY2hvbHRlIgo+ID4gPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgo+ID4gRW52b3k9RTk6IERpbWFuY2hlIDI0IEQ9RTljZW1icmUgMjAxNyAxMDo0Nzo0Mwo+ID4gT2JqZXQ6IFJlOiBbSU1QT1JUQU5UXSBSZTogR2l0IG1pZ3JhdGlvbiBuZXh0IHN0ZXBzCj4gPj0yMAo+ID4gSGksCj4gPj0yMAo+ID4gT24gMjQvMTIvMTcgMTA6NDAsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+ID4+IEhvdyBhYm91dCBhIGhhcmQgcmVzZXQgb3IgZHJvcHBpbmcgdGhlIHJlcG8gYW5kIGRvaW5nIGl0IGFsbCBvdmVyIGFnYWk9Cm4/Cj4gPj0yMAo+ID4gSWYgSSBjb3JyZWN0bHkgc2VlbiB0aGF0IC4udGhlcmUgaGFkIG5vIGNvbW1pdCB5ZXQgb24gdGhlIG5ldyBnaXQgcmVwb3M9Cj0yRS4KPiA+PTIwCj4gPiBTbyBJIHRoaW5rIGl0IHdvdWxkIGJlIHRoZSBlYXNpZXN0IHdheSB0byBkbyBhcyBSb2JlcnQgc3VnZ2VzdCAuLi50bwo+ID4gcmVkbyBtaWdyYXRpb24gZm9yIHRob3NlIHJlcG9zLi4KPiA+PTIwCj4gPiBLaW5kIHJlZ2FyZHMKPiA+IEthcmwgSGVpbnoKPiA+PTIwCj4gPj4gT24gV2VkLCAyMCBEZWMgMjAxNyAxMDo0MjozNiArMDEwMCwgSGVydj1FOSBCT1VURU1ZCj4gPj49MjAKPiA+PiA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cm90ZToKPiA+Pj4gSU5GUkEtMTU2NzkgZml4ZWQgYnkgaW5mcmEgdGVhbQo+ID4+PiB0aGVuIEkgcmUtcnVuIG1pZ3JhdGUtcGx1Z2lucy5zaCBzY3JpcHQgdG8gc3BsaXQgdGhlIHN2bjJnaXQgbWlycm9yIHRvCj4gPj4+IHBlci0KPiA+Pj4gcGx1Z2luIGdpdCByZXBvCj4gPj4+IGFuZCBJIHB1c2hlZCAibWFzdGVyMiIgYnJhbmNoZXMgZm9yIG0tamF2YWRvYy1wLCBtLXNpdGUtcCBhbmQgbS1wZGYtcCwKPiA+Pj4gd2hpY2gKPiA+Pj4gd2VyZSB0aGUgMyBwbHVnaW5zIHdoaWNoIHN1ZmZlcmVkIGZyb20gbWlzc2luZyBjb21taXRzCj4gPj4+PTIwCj4gPj4+IG9uIG0tc2l0ZS1wIGFuZCBtLXBkZi1wLCBJJ2xsIGNoZXJyeSBwaWNrIHRoZSB1bmlxdWUgY29tbWl0IHRoYXQgd2FzCj4gPj4+IG1pc3NlZDoKPiA+Pj4gbm90IGEgYmlnIGRlYWwKPiA+Pj49MjAKPiA+Pj4gb24gbS1qYXZhZG9jLXAsIHRoZSBzaXR1YXRpb24gaXMgbW9yZSBjb3BsZXgsIHNpbmNlIHRoZXJlIHdhcyBhIHJlbGVhPQpzZQo+ID4+Pj0yMAo+ID4+PiBJIGFsc28gbm90aWNlZCB0aGF0IEkgZm9yZ290IHRvIHB1c2ggdGFncyB3aGVuIGltcG9ydGluZzogSSBzdGFydGVkIHRvCj4gPj4+IGRvICJnaXQKPiA+Pj4gcHVzaCAtLXRhZ3MiLCBidXQgdGhlIHJlc3VsdCBkb2VzIG5vdCBsb29rIGFzIEkgZXhwZWN0ZWQ6IGl0IGNyZWF0ZXMgYQo+ID4+PiBsb3Qgb2YKPiA+Pj4gcGFyYWxsZWwgYnJhbmNoZXMKPiA+Pj49MjAKPiA+Pj4gSSdsbCBuZWVkIGhlbHAgZnJvbSBnaXQgZXhwZXJ0czogd2hhdCBpcyBoYXBwZW5pbmc/Cj4gPj4+PTIwCj4gPj4+IEkgc3RvcHBlZCB0aGUgdGFncyBwdXNoIGhhbGYgdGhlIHdheSwgd2UnbGwgbmVlZCB0byBkZWNpZGUgd2hhdCB0bwo+ID4+PiBkby4uLgo+ID4+PiAoSSBrbmV3IEkgd2FzIG5vdCBhIGdpdCBleHBlcnQgYW5kIHRoZXJlIHdhcyBhIHJpc2sgZm9yIHNvbWV0aGluZwo+ID4+PiB3ZWlyZCBsaWtlCj4gPj4+IHdoYXQncyBjdXJyZW50bHkgaGFwcGVuaW5nLi4uKQo+ID4+Pj0yMAo+ID4+PiBBbnkgaGludD8KPiA+Pj49MjAKPiA+Pj4gUmVnYXJkcywKPiA+Pj49MjAKPiA+Pj4gSGVydj1FOQo+ID4+Pj0yMAo+ID4+PiBMZSBzYW1lZGkgMTYgZD1FOWNlbWJyZSAyMDE3LCAxNjoyODo0OCBDRVQgSGVydj1FOSBCT1VURU1ZIGEgPUU5Y3JpdCA6Cj4gPj4+PiBvaywgSSB3YXMgY29uZnVzZWQgYnkgdGhlIGRpZmZlcmVudCB0YWtlcyBhdCBtLWphdmFkb2MtcCAzLjAuMAo+ID4+Pj49MjAKPiA+Pj4+IHllcywgc3ZuMmdpdCBtaXJyb3IgaXMgc3R1Y2sgWzFdIGF0IHIxODE1Njc1Cj4gPj4+Pj0yMAo+ID4+Pj4gSSBqdXN0IG9wZW5lZCBhbiBJTkZSQSBKaXJhIGlzc3VlCj4gPj4+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0lORlJBLTE1Njc5Cj4gPj4+Pj0yMAo+ID4+Pj4gb25jZSB0aGUgc3ZuMmdpdCBtaXJyb3Igd2lsbCBiZSB1cGRhdGVkLCB3ZSdsbCBoYXZlIHRvIHJlLXJ1biB0aGUKPiA+Pj4+IHNwbGl0Cj4gPj4+PiBzY3JpcHRzIGFuZCBjaGVycnkgcGljayB0aGUgbWlzc2luZyBjb21taXRzCj4gPj4+Pj0yMAo+ID4+Pj4gUmVnYXJkcywKPiA+Pj4+PTIwCj4gPj4+PiBIZXJ2PUU5Cj4gPj4+Pj0yMAo+ID4+Pj4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9jb21taXRzL3RydW5rCj4gPj4+Pj0yMAo+ID4+Pj4gTGUgc2FtZWRpIDE2IGQ9RTljZW1icmUgMjAxNywgMTM6MDE6MDUgQ0VUIFJvYmVydCBTY2hvbHRlIGEgPUU5Y3JpdCA6Cj4gPj4+PiA+IEkgd2FzIHRyaWdnZXJlZCBieSBzb21lIGZhaWxpbmcgdW5pdCB0ZXN0cywgd2hpY2ggc2hvdWxkIGhhdmUgYmVlbgo+ID4+Pj49MjAKPiA+Pj4+IHNvbHZlZAo+ID4+Pj49MjAKPiA+Pj4+ID4gaW4gbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAKPiA+Pj4+ID49MjAKPiA+Pj4+ID4gTXkgbGFzdCBjb21taXQgYWNjb3JkaW5nIHRvIEdJVCB3YXMgbm92ZW1iZXIgMTh0aAo+ID4+Pj4gPiBNeSBsYXN0IGNvbW1pdCBhY2NvcmRpbmcgdG8gU1ZOIHdhcyBkZWNlbWJlciAzcmQKPiA+Pj4+ID49MjAKPiA+Pj4+ID4gY29tcGFyaW5nIHN2bmxvZyB3aXRoIGdpdGxvZyBtb3N0IG9mIHRoZXNlIGNvbW1pdHMgYXJlIGxvc3Q6Cj4gPj4+PiA+PTIwCj4gPj4+PiA+IG1vdmVkIHRvIGdpdAo+ID4+Pj4gPiAtLS0tCj4gPj4+PiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSBmb3IgbmV4dCBkZXZlbG9wbWVudCBpdGVyYXRpb24KPiA+Pj4+ID4gLS0tLQo+ID4+Pj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgcmVsZWFzZSBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+ID4+Pj4gPiAtLS0tCj4gPj4+PiA+IFtNSkFWQURPQy00OThdICJtb2R1bGUgbm90IGZvdW5kIiB3aGVuIEphdmEgOSBtb2R1bGUtaW5mbyBwcmVzZW50Cj4gPj4+PiA+IFN1cHBvcnQgYWdncmF0ZWQgamF2YWRvYwo+ID4+Pj4gPiAtLS0tCj4gPj4+PiA+IFNraXAgc2V2ZXJhbCB1bml0dGVzdHMgZm9yIEphdmE5Cj4gPj4+PiA+IC0tLS0KPiA+Pj4+ID4gSkRLLTgwMzIyMDUgd2FzIGNsb3NlZCBhcyBub3QgYW4gaXNzdWUsIHNvIG5vdCBzb2x2ZWQgaW4gSmF2YTkuCj4gPj4+PiA+IE5lZWQgdG8gcmV2aWV3IHRoZSBjb25jbHVzaW9uCj4gPj4+PiA+IC0tLS0KPiA+Pj4+ID4gVXBncmFkZSBtb2NraXRvIHRvIHJlbW92ZSB3YXJuaW5nIGFib3V0IGlsbGVnYWwgcmVmbGVjdGl2ZSBhY2Nlc3MKPiA+Pj4+ID4gLS0tLQo+ID4+Pj4gPiBJbXByb3ZlIFRlc3RKYXZhZG9jUmVwb3J0VGVzdCN0ZXN0VGVzdEphdmFkb2MKPiA+Pj4+ID4gSjggd2FybnMgYW5kIGNvbnRpbnVlcyB3aXRoIG1pc3NpbmcgZGVwZW5kZW5jeSwgSjkgZmFpbHMuCj4gPj4+PiA+IEluIGZhY3QgdGVzdCB3YXMgd3Jvbmc6IGRlcGVuZGVuY3kgc2hvdWxkIGhhdmUgYmVlbiBvbiBjbGFzc3BhdGgKPiA+Pj4+ID4gLS0tLQo+ID4+Pj4gPiB1bml0dGVzdCBzaG91bGQgcHJlZmVyIEpBVkFfSE9NRSB3aGVuIGV4ZWN1dGluZyBmcm9tIGNtZGxpbmUKPiA+Pj4+ID4gV2hlbiBydW5uaW5nIHdpdGggSmF2YTkrIG5vIG5lZWQgdG8gc3dpdGNoIGZyb20ganJlIHRvIGpkayBkaXJlY3RvPQpyeQo+ID4+Pj4gPiAoamVwMjIwKQo+ID4+Pj4gPiAtLS0tCj4gPj4+PiA+IE1KQVZBRE9DLTUwMiBVcGRhdGUgREVGQVVMVF9KQVZBX0FQSV9MSU5LUwo+ID4+Pj4gPiAtLS0tCj4gPj4+PiA+IHNlc3Npb24gaXMgcmVxdWlyZWQgcGFyYW1ldGVyLCBzbyBjYW5ub3QgYmUgbnVsbC4gRml4IHJlbGF0ZWQKPiA+Pj4+PTIwCj4gPj4+PiB1bml0dGVzdHMKPiA+Pj4+PTIwCj4gPj4+PiA+IC0tLS0KPiA+Pj4+ID4gQWRkIHByb2plY3QvYXJ0aWZhY3Qga2V5IHRvIHNldCBvZiBzb3VyY2VQYXRocyB0byByZWNvZ25pemUgcmVhY3Rvcgo+ID4+Pj4gPiBwcm9qZWN0cyB2ZXJzdXMgZGVwZW5kZW5jaWVzCj4gPj4+PiA+IC0tLS0KPiA+Pj4+ID4gR3JvdXAgc2V0cyBvZiBzb3VyY2VwYXRocyBwZXIgcHJvamVjdCwgaW4gcHJlcGFyZSBvZiB1c2FnZSBvZgo+ID4+Pj4gPiBtb2R1bGUtc291cmNlLXBhdGguCj4gPj4+PiA+IC0tLS0KPiA+Pj4+ID4gU3dpdGNoIGZyb20gTGlzdCB0byBDb2xsZWN0aW9uIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHVzZSBTZXRzIHdoZW4KPiA+Pj4+ID4gcHJlZmVycmVkCj4gPj4+PiA+IC0tLS0KPiA+Pj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIGZvciBuZXh0IGRldmVsb3BtZW50IGl0ZXJhdGlvbgo+ID4+Pj4gPiAtLS0tCj4gPj4+PiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSByZWxlYXNlIG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wCj4gPj4+PiA+IC0tLS0KPiA+Pj4+ID49MjAKPiA+Pj4+ID49MjAKPiA+Pj4+ID49MjAKPiA+Pj4+ID49MjAKPiA+Pj4+ID4gT24gU2F0LCAxNiBEZWMgMjAxNyAxMjo1MzoyMyArMDEwMCwgSGVydj1FOSBCT1VURU1ZCj4gPj4+Pj0yMAo+ID4+Pj4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPiA+Pj4+PTIwCj4gPj4+PiA+IHdyb3RlOgo+ID4+Pj4gPiA+IGxvb2tpbmcgYXQgY29tbWl0c0AgY29udGVudCBodHRwczovL2xpc3RzLmFwYWNoZS5vcmcvbGlzdC5odG1sPwo+ID4+Pj4gPiA+IGNvbW1pdHNAbWF2ZW4uYXBhY2hlLm9yZyB3aXRoIHN1YmplY3QgY29udGFpbmluZwo+ID4+Pj49MjAKPiA+Pj4+ICJtYXZlbi9wbHVnaW5zL3RydW5rIgo+ID4+Pj49MjAKPiA+Pj4+ID4gPiBhbmQgcGx1Z2lucyBzdm4yZ2l0IG1pcnJvcgo+ID4+Pj4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9jb21taXRzLwo+ID4+Pj4gPiA+IHRydW5rCj4gPj4+PiA+ID49MjAKPiA+Pj4+ID4gPiBvbmx5IDEgY29tbWl0IGlzIG1pc3Npbmc6IG15IGxhdGVzdCBjb21taXQgb24gbWF2ZW4tc2l0ZS1wbHVnaW4KPiA+Pj4+ID4gPiAodGhlIGxhc3QgY29tbWl0IGZvciBHaXQgbWlncmF0aW9uIGlzIG5vdCB1c2VmdWwpCj4gPj4+PiA+ID49MjAKPiA+Pj4+ID4gPj0yMAo+ID4+Pj4gPiA+IFNhbWUgb24gc2hhcmVkIHNob3dlZCBubyBtaXNzaW5nIGNvbW1pdC4KPiA+Pj4+ID4gPj0yMAo+ID4+Pj4gPiA+PTIwCj4gPj4+PiA+ID4gd2hhdCBsYXRlc3QgY29tbWl0IG9mIG1hdmVuLWphdmFkb2MtcGx1Z2luIGFyZSB5b3UgbG9va2luZyBmb3I/Cj4gPj4+PiA+ID49MjAKPiA+Pj4+ID4gPiBSZWdhcmRzLAo+ID4+Pj4gPiA+PTIwCj4gPj4+PiA+ID4gSGVydj1FOQo+ID4+Pj4gPiA+PTIwCj4gPj4+PiA+ID4gTGUgc2FtZWRpIDE2IGQ9RTljZW1icmUgMjAxNywgMTE6NTY6MzEgQ0VUIFJvYmVydCBTY2hvbHRlIGEgPUU5Yz0Kcml0IDoKPiA+Pj4+ID4gPj4gRm9yIGV2ZXJ5Ym9keSBqdXN0IGEgd2FybmluZyBJIGZhY2VkIHRvZGF5Ogo+ID4+Pj4gPiA+PiBJZiB5b3Ugc3dpdGNoIHRvIHRoZSBnaXQgcmVwb3MsIHBsZWFzZSBtYWtlIHN1cmUgYWxsIGNvbW1pdHMgYXJlCj4gPj4+PiA+ID4+IG1pZ3JhdGVkLgo+ID4+Pj4gPiA+PiBJIG5vdGljZWQgdGhlIGxhdGVzdCBjb21taXRzIG9mIHRoZSBtYXZlbi1qYXZhZG9jLXBsdWdpbiBnb3QKPiA+Pj4+PTIwCj4gPj4+PiBsb3N0Lgo+ID4+Pj49MjAKPiA+Pj4+ID4gPj4gdGhhbmtzLAo+ID4+Pj4gPiA+PiBSb2JlcnQKPiA+Pj4+ID4gPj49MjAKPiA+Pj4+ID4gPj4gT24gU2F0LCAwOSBEZWMgMjAxNyAxNzowNjowOSArMDEwMCwgU3RlcGhlbiBDb25ub2xseQo+ID4+Pj4gPiA+Pj0yMAo+ID4+Pj4gPiA+PiA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPj4+PiA+ID4+ID4gSSBzZWUgd2UgaGF2ZSBhIGxhcmdlIG51bWJlciBvZiByZXBvcyBub3cgb24gZ2l0Ym94IDstKQo+ID4+Pj4gPiA+PiA+PTIwCj4gPj4+PiA+ID4+ID4gT24gVGh1IDcgRGVjIDIwMTcgYXQgMDc6MDAsIEhlcnY9RTkgQk9VVEVNWQo+ID4+Pj49MjAKPiA+Pj4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPj4+Pj0yMAo+ID4+Pj4gPiA+PiB3cm90ZToKPiA+Pj4+ID4gPj4gPj4gb2ssIEkgZGlkbid0IHVwZGF0ZSBteSByZXBvIGNsb25lOiBub3cgdGhlIHJ1bi1pdHMgcHJvZmlsZSBpcwo+ID4+Pj4gPiA+Pj0yMAo+ID4+Pj4gPiA+PiBhY3RpdmF0ZWQKPiA+Pj4+ID4gPj49MjAKPiA+Pj4+ID4gPj4gPj4gdGhlbiB0aGUgcGxhbiBzaG91bGQganVzdCBjb25maXJtICJpdCB3b3JrcyEiIDopCj4gPj4+PiA+ID4+ID4+PTIwCj4gPj4+PiA+ID4+ID4+IGFuZCBmaW5kIHdoaWNoIGpvYnMgYXJlIHNwZWNpYWwsIGxpa2UgbWF2ZW4tZGlzdC10b29sICh3aGljaAo+ID4+Pj49MjAKPiA+Pj4+IGhhcyB0bwo+ID4+Pj49MjAKPiA+Pj4+ID4gPj4gYmUKPiA+Pj4+ID4gPj49MjAKPiA+Pj4+ID4gPj4gPj4gc2NoZWR1bGVkIGRhaWx5IGluc3RlYWQgb2YgY29kZSBjaGFuZ2UsIGFuZCBvbmUgcGxhdGZvcm0gb25sPQp5KQo+ID4+Pj4gPiA+PiA+Pj0yMAo+ID4+Pj4gPiA+PiA+PiBSZWdhcmRzLAo+ID4+Pj4gPiA+PiA+Pj0yMAo+ID4+Pj4gPiA+PiA+PiBIZXJ2PUU5Cj4gPj4+PiA+ID4+ID4+PTIwCj4gPj4+PiA+ID4+ID4+IExlIG1lcmNyZWRpIDYgZD1FOWNlbWJyZSAyMDE3LCAyMzo1ODo0NSBDRVQgU3RlcGhlbiBDb25ub2xseT0KIGEKPiA+Pj4+PTIwCj4gPj4+PiA9RTljcml0IDoKPiA+Pj4+ID4gPj4gPj4gPiBPbiBXZWQgNiBEZWMgMjAxNyBhdCAyMjozOCwgSGVydj1FOSBCT1VURU1ZCj4gPj4+Pj0yMAo+ID4+Pj4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPiA+Pj4+PTIwCj4gPj4+PiA+ID4+ID4+IHdyb3RlOgo+ID4+Pj4gPiA+PiA+PiA+ID4gTm93IHRoYXQgd2UgaGF2ZSAyIEFTRiBPcmdhbml6YXRpb24gSmVua2lucyBqb2JzIChvbmUgZm9yCj4gPj4+Pj0yMAo+ID4+Pj4gZ2l0Ym94Cj4gPj4+Pj0yMAo+ID4+Pj4gPiA+PiBbMV0KPiA+Pj4+ID4gPj49MjAKPiA+Pj4+ID4gPj4gPj4gYW5kCj4gPj4+PiA+ID4+ID4+PTIwCj4gPj4+PiA+ID4+ID4+ID4gPiBvbmUKPiA+Pj4+ID4gPj4gPj4gPiA+IGZvciBnaXQtd2lwOiB0aGFuayB5b3UgU3RlcGhlbikgYW5kIHRoYXQgaXQgbG9va3MgcXVpdGUKPiA+Pj4+ID4gPj49MjAKPiA+Pj4+ID4gPj4gc3VjY2Vzc2Z1bCwKPiA+Pj4+ID4gPj49MjAKPiA+Pj4+ID4gPj4gPj4gbGV0J3MKPiA+Pj4+ID4gPj4gPj49MjAKPiA+Pj4+ID4gPj4gPj4gPiA+IHBsYW4KPiA+Pj4+ID4gPj4gPj4gPiA+IHRoZSBuZXh0IHN0ZXBzLgo+ID4+Pj4gPiA+PiA+PiA+ID49MjAKPiA+Pj4+ID4gPj4gPj4gPiA+IEhlcmUgaXMgd2hhdCBJIHNlZToKPiA+Pj4+ID4gPj4gPj4gPiA+IDEuIHJlbW92YWwgb2YgaGFuZC1kZWZpbmVkIEplbmtpbnMgam9icyB0aGF0IGFyZSBub3cKPiA+Pj4+PTIwCj4gPj4+PiBkdXBsaWNhdGVzCj4gPj4+Pj0yMAo+ID4+Pj4gPiA+PiA+PiA+ID4gMi4gcHJlcGFyYXRpb24gb2YgdGhlIDYwIG5ldyBlbXB0eSBnaXQgcmVwb3MgZm9yIHNoYXJlZCAmCj4gPj4+PiA+ID4+ID4+ID4gPiBwbHVnaW5zCj4gPj4+PiA+ID4+ID4+ID4gPj0yMAo+ID4+Pj4gPiA+PiA+PiA+ID4gMy4gbWlncmF0aW9uIG9mIHRoZSAxIHNoYXJlZCBjb21wb25lbnQgYW5kIDEgcGx1Z2luIHVzaW5nCj4gPj4+PiA+ID4+ID4+PTIwCj4gPj4+PiA+ID4+ID4+IG1pZ3JhdGUtKi5zaAo+ID4+Pj4gPiA+PiA+Pj0yMAo+ID4+Pj4gPiA+PiA+PiA+ID4gc2NyaXB0cwo+ID4+Pj4gPiA+PiA+PiA+ID4gWzNdIHRvIHRlc3QgYW5kIGV2ZW50dWFsbHkgcmV3b3JrIHRoZSBKZW5raW5zZmlsZSAoSQo+ID4+Pj49MjAKPiA+Pj4+IHN1cHBvc2UgaXQKPiA+Pj4+PTIwCj4gPj4+PiA+ID4+IHdpbGwKPiA+Pj4+ID4gPj49MjAKPiA+Pj4+ID4gPj4gPj4gPiA+IHJlcXVpcmUKPiA+Pj4+ID4gPj4gPj4gPiA+IHNvbWUgbGl0dGxlIGNoYW5nZSwgdG8gcnVuIGFkZCAicnVuLWl0cyIgcHJvZmlsZSkKPiA+Pj4+ID4gPj4gPj4gPj0yMAo+ID4+Pj4gPiA+PiA+PiA+IEFzIGZhciBhcyBJIHJlY2FsbCwgSSBhZGRlZCAtUCtydW4taXRzIGFscmVhZHkKPiA+Pj4+ID4gPj4gPj4gPj0yMAo+ID4+Pj4gPiA+PiA+PiA+IEZvciB0aGUgcGx1Z2luLCBJJ2QgbGlrZSB0byBkbyB0aGUgam9iIGZvcgo+ID4+Pj49MjAKPiA+Pj4+IG1hdmVuLXNpdGUtcGx1Z2luLAo+ID4+Pj49MjAKPiA+Pj4+ID4gPj4gc2luY2Ugd2UKPiA+Pj4+ID4gPj49MjAKPiA+Pj4+ID4gPj4gPj4gPiA+IGV4cGVjdAo+ID4+Pj4gPiA+PiA+PiA+ID4gdG8gcmVsZWFzZSBpdCBzb29uLgo+ID4+Pj4gPiA+PiA+PiA+ID4gRm9yIHRoZSBzaGFyZWQgY29tcG9uZW50LCBJIGRvbid0IGtub3cgaWYgdGhlcmUgaXMgYSBiZXN0Cj4gPj4+PiA+ID4+PTIwCj4gPj4+PiA+ID4+IGNhbmRpZGF0ZQo+ID4+Pj4gPiA+Pj0yMAo+ID4+Pj4gPiA+PiA+PiA+ID4gNC4gb25jZSBwcmV2aW91cyBzdGVwIGlzIG9rLCBkbyB0aGUgZnVsbCBtaWdyYXRpb246IGlmCj4gPj4+Pj0yMAo+ID4+Pj4gdGhlcmUgYXJlCj4gPj4+Pj0yMAo+ID4+Pj4gPiA+PiA+PiA+ID4gdm9sdW50ZWVycwo+ID4+Pj4gPiA+PiA+PiA+ID4gZm9yIGhlbHBpbmcsIHRoYXQgd291bGQgYmUgZ3JlYXQsIHNpbmNlIHBvcHVsYXRpbmcgNjAgZ2l0Cj4gPj4+Pj0yMAo+ID4+Pj4gcmVwb3MKPiA+Pj4+PTIwCj4gPj4+PiA+ID4+ID4+IHdvbid0Cj4gPj4+PiA+ID4+ID4+IGJlCj4gPj4+PiA+ID4+ID4+PTIwCj4gPj4+PiA+ID4+ID4+ID4gPiByZWFsbHkgZnVuLi4uCj4gPj4+PiA+ID4+ID4+ID4gPj0yMAo+ID4+Pj4gPiA+PiA+PiA+ID4gQW5kIGFzIHBhcnQgb2YgNjAgZW1wdHkgZ2l0IHJlcG9zIGNyZWF0aW9uLCBJIHByb3Bvc2UgdG8KPiA+Pj4+PTIwCj4gPj4+PiBtaWdyYXRlCj4gPj4+Pj0yMAo+ID4+Pj4gPiA+PiB0aGUKPiA+Pj4+ID4gPj49MjAKPiA+Pj4+ID4gPj4gPj4gPiA+ICJHb29nbGUKPiA+Pj4+ID4gPj4gPj4gPiA+IHJlcG8gbWFuaWZlc3QiIG1hdmVuLWFnZ3JlZ2F0b3IgWzRdIHRvIEFTRjogbXkgcGVyc29uYWwKPiA+Pj4+PTIwCj4gPj4+PiB1c2UgaGFzCj4gPj4+Pj0yMAo+ID4+Pj4gPiA+PiBiZWVuCj4gPj4+PiA+ID4+PTIwCj4gPj4+PiA+ID4+ID4+IHF1aXRlCj4gPj4+PiA+ID4+ID4+PTIwCj4gPj4+PiA+ID4+ID4+ID4gPiBzdWNjZXNzZnVsLCBJIGhvcGUgaXQncyB0aGUgc2FtZSBmb3Igb3RoZXJzLiBQZXJoYXBzCj4gPj4+Pj0yMAo+ID4+Pj4gdGhlcmUgYXJlCj4gPj4+Pj0yMAo+ID4+Pj4gPiA+PiA+PiBiZXR0ZXIKPiA+Pj4+ID4gPj4gPj49MjAKPiA+Pj4+ID4gPj4gPj4gPiA+IGlkZWFzCj4gPj4+PiA+ID4+ID4+ID4gPiBmb3IgaXRzIG5hbWU6IG1hdmVuLWFnZ3JlZ2F0b3IKPiA+Pj4+ID4gPj4gPj4gPiA+PTIwCj4gPj4+PiA+ID4+ID4+ID4gPiBBbnkgb3RoZXIgaWRlYT8gYW55IG9iamVjdGlvbj8KPiA+Pj4+ID4gPj4gPj4gPiA+PTIwCj4gPj4+PiA+ID4+ID4+ID4gPiBSZWdhcmRzLAo+ID4+Pj4gPiA+PiA+PiA+ID49MjAKPiA+Pj4+ID4gPj4gPj4gPiA+IEhlcnY9RTkKPiA+Pj4+ID4gPj4gPj4gPiA+PTIwCj4gPj4+PiA+ID4+ID4+ID4gPiBbMV0KPiA+Pj4+PTIwCj4gPj4+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC8KPiA+Pj4+PTIwCj4gPj4+PiA+ID4+ID4+ID4gPiBbMl0KPiA+Pj4+PTIwCj4gPj4+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLXdpcC8KPiA+Pj4+PTIwCj4gPj4+PiA+ID4+ID4+ID4gPiBbM10KPiA+Pj4+ID4gPj49MjAKPiA+Pj4+ID4gPj4gaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy92aWV3dmMvbWF2ZW4vc2FuZGJveC90cnVuay9zY3JpcHRzL2dpdC8KPiA+Pj4+ID4gPj49MjAKPiA+Pj4+ID4gPj4gPj4gPiA+IFs0XSBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tYWdncmVnYXRvcgo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PTIwCj4gPj0yMAo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PTIwCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDUwMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgTm92IDE3IDA4OjQwOjM1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDUwMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDRkIwRTE3OUNBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMTcgTm92IDIwMTcgMDg6NDA6MzUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxMzMxMyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNyBOb3YgMjAxNyAwODo0MDozNSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTMyMjggaW52b2tlZCBieSB1aWQgNTAwKTsgMTcgTm92IDIwMTcgMDg6NDA6MzUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMzIxNyBpbnZva2VkIGJ5IHVpZCA5OSk7IDE3IE5vdiAyMDE3IDA4OjQwOjM1IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAxNyBOb3YgMjAxNyAwODo0MDozNSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDA0NzhDMTgwODhGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAxNyBOb3YgMjAxNyAwODo0MDozMyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBRTnJDTEdKQnJ4QncgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglGcmksIDE3IE5vdiAyMDE3IDA4OjQwOjMxICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwMy5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyNV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA3OTZGOTVGNTY5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAxNyBOb3YgMjAxNyAwODo0MDoyOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ1MCB3aXRoIE1FCglpZCBhd2dOMXcwMEsyMFVmZHkwM3dnTmhnOyBGcmksIDE3IE5vdiAyMDE3IDA5OjQwOjIyICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IEZyaSwgMTcgTm92IDIwMTcgMDk6NDA6MjIgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogTWF2ZW4gcmVzb2x2ZXIgYnJhbmNoIGNvbnNvbGlkYXRpb24KRGF0ZTogRnJpLCAxNyBOb3YgMjAxNyAwOTo0MDoyMiArMDEwMApNZXNzYWdlLUlEOiA8MjU2Nzg3OC44QU54R29zdGZYQGdpZ2E+CkluLVJlcGx5LVRvOiA8MjAxNzExMTYxNzEzMTUuMzY2MzYyOUMwMDgxQGRkMTczMzIua2Fzc2VydmVyLmNvbT4KUmVmZXJlbmNlczogPDIwMTcxMTA5MDUzNTUxLjk1N0Q0MjlDNTBEMUBkZDE3MzMyLmthc3NlcnZlci5jb20+IDwxNjQwMzU3LjVYV21ZT05iRWJAZ2lnYT4gPDIwMTcxMTE2MTcxMzE1LjM2NjM2MjlDMDA4MUBkZDE3MzMyLmthc3NlcnZlci5jb20+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L21peGVkOyBib3VuZGFyeT0ibmV4dFBhcnQyMzk4OTY4NC40WGJlZWxoZnJhIgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Qml0CgotLW5leHRQYXJ0MjM5ODk2ODQuNFhiZWVsaGZyYQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCm9uIHRoZSBzZWNvbmQgb3B0aW9uLCBJIHdhcyByZWFkeSB0byBqdXN0IGFuc3dlciAibm90IHBvc3NpYmxlIiwgYnV0IGRlY2lkZT0KZCBJPTIwCmNvdWxkIHRyeSBhdCBoaWdoIGxldmVsIGJlZm9yZSBhbnN3ZXJpbmcuLi4KCkkgdG9vayBNYXZlbiBjb3JlIGRlcGVuZGVuY3kgdHJlZSBbMV0sIHBpY2tlZCBncmVlbiBjb2xvciBhcyB0aGUgZGVmaW5pdGlvbj0KIG9mPTIwCk1hdmVuIEFydGlmYWN0IFJlc29sdmVyLCBwdXQgbWF2ZW4tcmVzb2x2ZXItcHJvdmlkZXIgaW4gZ3JlZW4gKyBzZXR0aW5ncz0yMApidWlsZGVyIChzaW5jZSB1c2VkIGJ5IHJlc29sdmVyIGFudCB0YXNrczogdGhhdCdzIGEgZGV0YWlsIEkgZGlkbid0IHB1dCBpbj0KPTIwCmxhdGVzdCByZXNvbHZlciBkZXBlbmRlbmN5IHRyZWUpClRoZW4gSSBleHRlbmRlZCBncmVlbiB0byBldmVyeSB0cmFuc2l0aXZlIGRlcGVuZGVuY3kgdG8gaGF2ZSBhbiBpbmRlcGVuZGVudD0KPTIwCnJlbGVhc2FibGUgcmVhY3RvcgoKWW91J2xsIGZpbmQgYXMgYSByZXN1bHQgdGhlIGF0dGFjaGVkIGltYWdlLgoKQW5hbHlzaXM6Cj0yRCB0aGlzIHNwbGl0cyBNYXZlbiBjb3JlIGluIDIgcGFydHM6IGxvd2VyIHBhcnQgb24gZGVwZW5kZW5jeSByZXNvbHV0aW9uLD0KPTIwCmhpZ2hlciBwYXJ0IG9uIGJ1aWxkCj0yRCBzZXR0aW5ncy54bWwgYW5kIHBvbS54bWwgYXJlIGluIGRlcGVuZGVuY3kgcmVzb2x1dGlvbgoKUmVhY3Rpb246IGl0IGNvdWxkIGJlIGZvciBNYXZlbiA1IG9yIDYsIHdoZW4gY29uc3VtZXIgcG9tIGlzIHN0cmljdGx5IHNlcGFyPQphdGU9MjAKZnJvbSBidWlsZCBwb20uLi4KClJlZ2FyZHMsCgpIZXJ2PUU5CgpbMV0gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvcmVmLzMuNS4yLwoKTGUgamV1ZGkgMTYgbm92ZW1icmUgMjAxNywgMTg6MTM6MTUgQ0VUIE1hbmZyZWQgTW9zZXIgYSA9RTljcml0IDoKPiBUaGFua3MgZm9yIHRoZSBleHBsYW5hdGlvbiBhbmQgZGV0YWlscyBIZXJ2ZS4gU2VlbXMgdG8gYmUgdGhhdCB0byBkbyB0aGlzCj4gY2xlYW5seSB3ZSBoYXZlIHRvIGJyZWFrIHRoZSBjaXJjbGUuIEZyb20gbXkgbGltaXRlZCBrbm93bGVkZ2UgdGhlcmUgYXJlCj4gdHdvIHdheXMgdG8gZG8gdGhhdC4KPj0yMAo+IDEuIEFzIHN0ZXBoZW4gc3VnZ2VzdGVkLi4gZ2V0IHRoZSByZXNvbHZlciBpbnRvIG1hdmVuIGNvcmUgdHJlZS4gVGhhdCBtYWs9CmVzCj4gY29yZSBiaWdnZXIgYWdhaW4gYW5kIHRpZXMgdGhlIHR3byBwcm9qZWN0cyBpbnRvIG9uZSByZWxlYXNlIGN5Y2xlLgo+IEZlYXNpYmxlIGJ1dCBJIGFtIG5vdCBhIGZhbi4KPj0yMAo+IDIuIEkgYW0gbm90IHN1cmUgaWYgcG9zc2libGUgYnV0IC4uIGNvdWxkIHdlIGdldCB0aGUgbWF2ZW4gcmVzb2x2ZXIgcHJvdmk9CmRlcgo+IG91dCBvZiBtYXZlbiBjb3JlIGFuZCBpbnRvIHRoZSByZXNvbHZlciBwcm9qZWN0IGFuZCBoYXZlIGl0IGFsbCB0b2dldGhlciA9CmluCj4gdGhlcmU/Cj49MjAKPiBJbiBlaXRoZXIgY2FzZSAuLiBib3RoIG9mIHRob3NlIHNlZW0gcmF0aGVyIGxhcmdlIHRhc2tzIHNvIEkgd2lsbCBkZWZpbml0PQplbHkKPiBnbyBhaGVhZCB3aXRoIGRlbW8gYnJhbmNoIG1lcmdlIGZpcnN0LiBJIGp1c3QgaGF2ZSB0byByZWRvIHRoZSB3b3JrIEkgZGlkCj4gd2l0aG91dCB0aGUgYW50IHRhc2tzIGluIHRoZSB0cmVlLiBTdGF5IHR1bmVkIG9uIHRoYXQuLgo+PTIwCj4gTWFuZnJlZAo+PTIwCj4gSGVydj1FOSBCT1VURU1ZIHdyb3RlIG9uIDIwMTctMTEtMTYgMDU6NDk6Cj4gPiBmZWFzaWJsZSwgYnV0IEkgcmVhbGx5IGRvbid0IGxpa2UgaXQ6IHNlcGFyYXRpb24gaXMgZ29vZC4KPiA+PTIwCj4gPiBzZXJpb3VzbHksIGp1c3QgbWVyZ2UgZGVtb3MgYW5kIGxldCBhbnQtdGFza3Mgc2VwYXJhdGUsIGFuZCB3ZSBoYXZlIGEKPiA+IHByZXR0eSBnb29kIGNvbXByb21pc2Ugb24gZXZlcnkgYXNwZWN0Cj4gPiAob3IgZXZlbiBkcm9wIGFudCB0YXNrcyBpZiByZWFsbHkgdGhpcyBpcyBjYXVzaW5nIHVzIHRvbyBtdWNoIGhlYWRhY2hlLj0KPTJFLikKPiA+PTIwCj4gPiBSZWdhcmRzLAo+ID49MjAKPiA+IEhlcnY9RTkKPiA+PTIwCj4gPiBMZSBqZXVkaSAxNiBub3ZlbWJyZSAyMDE3LCAxMDowMzowNyBDRVQgU3RlcGhlbiBDb25ub2xseSBhID1FOWNyaXQgOgo+ID4+IE9uIFRodSAxNiBOb3YgMjAxNyBhdCAwNzo1MSwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHc9CnJvdGU6Cj4gPj4gPiBJIGp1c3QgcHVzaGVkIGFuIHVwZGF0ZSBvZiBkZXBlbmRlbmNpZXMgaW1hZ2UgdGhhdCBzaG93cyB0aGUgZXh0ZXJuYWwKPiA+PiA+IG1hdmVuLQo+ID4+ID4gcmVzb2x2ZXItcHJvdmlkZXIgKGluIHllbGxvdykgaW5zaWRlIHRoZSByZWFjdG9yIGRlcGVuZGVuY3kgZ3JhcGggKGluCj4gPj4gPiBibHVlKQo+ID4+ID49MjAKPiA+PiA+IFRoYXQgc2hvd3MgdGhlIGNoaWNrZW4gYW5kIGVnZyBpc3N1ZSBvbiByZWxlYXNpbmcgd2UnbGwgaGF2ZSBvbiBBUEkKPiA+PiA+IGJyZWFraW5nCj4gPj4gPiBjaGFuZ2UuIFBlb3BsZSBhbHdheXMgYnVpbGRpbmcgZnJvbSBzb3VyY2UgKGxpa2UgRGViaWFuKSB3aWxsIGhhdmUgdD0KaGUKPiA+PiA+IGlzc3VlCj4gPj4gPiBhbHNvLgo+ID4+ID49MjAKPiA+PiA+IEZvciBkZW1vcywgd2hpY2ggYXJlIG5vdCByZWFsbHkgcHVibGlzaGVkIGR1cmluZyB0aGUgcmVsZWFzZSAoanVzdCBhcwo+ID4+ID4gZG9jdW1lbnRhdGlvbiksIGRpc2FibGluZyB0aGUgbW9kdWxlIGluIHRoZSBidWlsZCB3aGVuIG5lY2Vzc2FyeSBpcwo+ID4+ID4gc3VmZmljaWVudCwKPiA+PiA+IHdvbid0IGNoYW5nZSBtYW55IHRoaW5ncy4gRm9yIGFudCB0YXNrcywgZGlzYWJsaW5nIHRoZSBtb2R1bGUgd2lsbCBuPQpvdAo+ID4+ID4gcHVibGlzaAo+ID4+ID4gdGhlIGFydGlmYWN0OiB0aGlzIHdpbGwgaGF2ZSBhIHZpc2libGUgaW1wYWN0Lgo+ID4+PTIwCj4gPj4gU2hvdWxkIHdlIGp1c3QgYml0ZSB0aGUgYnVsbGV0IGFuZCBicmluZyByZXNvbHZlciBpbi10cmVlIGFzIG1vZHVsZXMgaW4KPiA+PiBtYXZlbiBjb3JlLi4uIGxlYXZpbmcgZGVtb3MgYW5kIGFudCB0YXNrcyBoZXJlPwo+ID4+PTIwCj4gPj4gPiBSZWdhcmRzLAo+ID4+ID49MjAKPiA+PiA+IEhlcnY9RTkKPiA+PiA+PTIwCj4gPj4gPiBMZSBtZXJjcmVkaSAxNSBub3ZlbWJyZSAyMDE3LCAyMzowNToxNCBDRVQgSGVydj1FOSBCT1VURU1ZIGEgPUU5Y3JpdD0KIDoKPiA+PiA+ID4gaXQgc2VlbXMgSSBoYXZlIG5vdCBiZWVuIGNsZWFyOiBJJ2xsIHRyeSB0byBleHBsYWluIGJldHRlcgo+ID4+ID4gPj0yMAo+ID4+ID4gPiAxLiBtYXZlbi1yZXNvbHZlci1hbnQtdGFza3MgZGVwZW5kcyBvbiBtYXZlbi1yZXNvbHZlci1wcm92aWRlciAoZnI9Cm9tCj4gPj4gPj0yMAo+ID4+ID4gTWF2ZW4KPiA+PiA+PTIwCj4gPj4gPiA+IGNvcmUpCj4gPj4gPiA+IDIuIG1hdmVuLXJlc29sdmVyLXByb3ZpZGVyICh0aGVuIE1hdmVuIGNvcmUpIGRlcGVuZHMgb24KPiA+PiA+ID4gbWF2ZW4tcmVzb2x2ZXIKPiA+PiA+ID49MjAKPiA+PiA+ID4gaWYgd2UgcHV0IG1hdmVuLXJlc29sdmVyLWFudC10YXNrcyBpbiB0aGUgc2FtZSByZWFjdG9yIHRoYW4KPiA+PiA+PTIwCj4gPj4gPiBtYXZlbi1yZXNvbHZlciwKPiA+PiA+PTIwCj4gPj4gPiA+IHdlIGNhbid0IHJlbGVhc2UgYW55IG1hdmVuLXJlc29sdmVyIEFQSSBjaGFuZ2UgdGhhdCBicmVha3MKPiA+PiA+PTIwCj4gPj4gPiBtYXZlbi1yZXNvbHZlci0KPiA+PiA+PTIwCj4gPj4gPiA+IHByb3ZpZGVyCj4gPj4gPiA+PTIwCj4gPj4gPiA+IGV4YW1wbGU6IGlmIHdlIG1vdmUgbWF2ZW4tcmVzb2x2ZXIgY29kZSB0byBvcmcuYXBhY2hlLm1hdmVuIGphdmEKPiA+PiA+ID4gcGFja2FnZQo+ID4+ID49MjAKPiA+PiA+IGluCj4gPj4gPj0yMAo+ID4+ID4gPiBtYXZlbi1yZXNvbHZlciAyLjAuMC1TTkFQU0hPVCwgd2UgbmVlZCBtYXZlbi1yZXNvbHZlci1wcm92aWRlcgo+ID4+ID4gPiA0LjAuMC1TTkFQU0hPVCB0aGF0IHVzZXMgbWF2ZW4tcmVzb2x2ZXIgMi4wLjAtU05BUFNIT1Qgd2l0aCB0aGlzIG49CmV3Cj4gPj4gPiA+IGphdmEKPiA+PiA+ID4gcGFja2FnZS4gVGhlbiB0cnkgdG8gcmVsZWFzZSBhbnl0aGluZzogeW91IGNhbid0LCB1bmxlc3MgeW91IGRvbid0Cj4gPj4gPiA+IHRyeQo+ID4+ID4gPiB0bwo+ID4+ID4gPiByZWxlYXNlIG1hdmVuLSByZXNvbHZlci1hbnQtdGFza3MKPiA+PiA+ID49MjAKPiA+PiA+ID4gKHRoZSBjb25zZXF1ZW5jZSBvbiB2ZXJzaW9uIGNvbnNpc3RlbmN5IGlzIGFub3RoZXIgd2F5IHRvIGRlc2NyaWJlCj4gPj4gPiA+IHRoZQo+ID4+ID4gPiBpc3N1ZSwgYnV0IHRoYXQgaXMgbW9yZSBzdWJ0bGUsIHRoZW4gSSBjaG9zZSB0byBkZXNjcmliZSB0aGUgbW9zdAo+ID4+ID4gPiB2aXNpYmxlCj4gPj4gPiA+IGlzc3VlLCB3aXRoIEFQSSBicmVha2luZyBjaGFuZ2UpCj4gPj4gPiA+PTIwCj4gPj4gPiA+IElNSE8sIGFub3RoZXIgY29uc2VxdWVuY2UgY291bGQgYmU6IG1hdmVuLXJlc29sdmVyLWFudC10YXNrcyB3b3VsZAo+ID4+ID49MjAKPiA+PiA+IHBlcmhhcHMKPiA+PiA+PTIwCj4gPj4gPiA+IGJldHRlciBiZSB2ZXJzaW9ubmVkIGxpa2UgbWF2ZW4tcmVzb2x2ZXItcHJvdmlkZXIKPiA+PiA+ID49MjAKPiA+PiA+ID49MjAKPiA+PiA+ID4gTWVyZ2luZyByZXNvbHZlci1kZW1vcyBpcyByZWFsbHkgdGhlIGdyZWF0IGJpZyBpZGVhOiB3aXRoIHRoYXQgbWVyPQpnZSwKPiA+PiA+ID4gbW9kaWZ5aW5nIG1hdmVuLXJyZXNvbHZlciBjYW4gaW1tZWRpYXRlbHkgYmUgdGVzdGVkIHdpdGggZGVtb3M6Cj4gPj4gPiA+IHRoYXQnbGwKPiA+PiA+PTIwCj4gPj4gPiBiZQo+ID4+ID49MjAKPiA+PiA+ID4gc28gbXVjaCBlYXNpZXIgdG8gbWFrZSBjaGFuZ2VzIHRvIG1hdmVuLXJlc29sdmVyIGNvZGUhCj4gPj4gPiA+PTIwCj4gPj4gPiA+IFJlZ2FyZHMsCj4gPj4gPiA+PTIwCj4gPj4gPiA+IEhlcnY9RTkKPiA+PiA+ID49MjAKPiA+PiA+ID4gTGUgbWVyY3JlZGkgMTUgbm92ZW1icmUgMjAxNywgMDk6MDI6MTIgQ0VUIE1pY2hhZWwgT3NpcG92IGEgPUU5Y3JpPQp0IDoKPiA+PiA+ID4gPiBXaHkgLTEgb24gdGhlIEFudCB0YXNrcz8KPiA+PiA+ID4gPj0yMAo+ID4+ID4gPiA+IEFtIDIwMTctMTEtMTUgdW0gMDA6NTAgc2NocmllYiBIZXJ2PUU5IEJPVVRFTVk6Cj4gPj4gPiA+ID4gPiBJIGFuc3dlcmVkIG9uIHRoZSBtYWlsaW5nIGxpc3QgYW5kIG9uIHRoZSAyIEppcmEgaXNzdWVzCj4gPj4gPiA+ID4gPiBJbiBzdW1tYXJ5LCArMSB0byBtZXJnZSBkZW1vcywgLTEgdG8gbWVyZ2UgYW50LXRhc2tzCj4gPj4gPiA+ID4gPj0yMAo+ID4+ID4gPiA+ID4gUmVnYXJkcywKPiA+PiA+ID4gPiA+PTIwCj4gPj4gPiA+ID4gPiBIZXJ2PUU5Cj4gPj4gPiA+ID4gPj0yMAo+ID4+ID4gPiA+ID4gTGUgbWFyZGkgMTQgbm92ZW1icmUgMjAxNywgMTg6MTk6NDAgQ0VUIE1hbmZyZWQgTW9zZXIgYSA9RTljcmk9CnQgOgo+ID4+ID4gPiA+ID4+IEFueSBmZWVkYmFjayBvciBzaG91bGQgSSBqdXN0IGdvIGFoZWFkIHdpdGggdGhlIGNsZWFudXA/Cj4gPj4gPiA+ID4gPj49MjAKPiA+PiA+ID4gPiA+PiBNYW5mcmVkCj4gPj4gPiA+ID4gPj49MjAKPiA+PiA+ID4gPiA+PiBNYW5mcmVkIE1vc2VyIHdyb3RlIG9uIDIwMTctMTEtMDggMjE6MzU6Cj4gPj4gPiA+ID4gPj4+IEhpIGFsbCwKPiA+PiA+ID4gPiA+Pj49MjAKPiA+PiA+ID4gPiA+Pj4gSSBoYXZlIHN0YXJ0ZWQgYW5kIG1hZGUgZ29vZCBwcm9ncmVzcyBvbiBnZXR0aW5nIE1hdmVuIHJlc29sPQp2ZXIKPiA+PiA+ID4gPiA+Pj4gYWxsCj4gPj4gPiA+ID4gPj4+IGludG8KPiA+PiA+ID4gPiA+Pj4gdGhlIG1hc3RlciBicmFuY2ggaW5zdGVhZCBvZiBoYXZpbmcgbWFzdGVyLCBkZW1vcyBhbmQgYW50LXRhPQpza3MKPiA+PiA+ID4gPiA+Pj4gaW4KPiA+PiA+ID4gPiA+Pj4gc2VwYXJhdGUgYnJhbmNoZXMuCj4gPj4gPiA+ID4gPj4+PTIwCj4gPj4gPiA+ID4gPj4+IERldGFpbHMgYXJlIHRyYWNrZWQgaW4KPiA+PiA+ID4gPiA+Pj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NUkVTT0xWRVItMjgKPiA+PiA+ID4gPiA+Pj49MjAKPiA+PiA+ID4gPiA+Pj4gQWxsIG9mIGl0IGlzIG5vdyBpbiBhIG5ldyBicmFuY2ggY2FsbGVkIG1hc3Rlci1hbGwgZm9yIHlvdSB0bwo+ID4+ID4gPiA+ID4+PiBzZWUuCj4gPj4gPiA+ID4gPj4+PTIwCj4gPj4gPiA+ID4gPj4+IEkgYW0gbm93IHdvbmRlcmluZyB3aGF0IHRoZSBuZXh0IHN0ZXBzIGFyZS4gSSBhZGRlZCB3aGF0IEkKPiA+PiA+ID4gPiA+Pj4gdGhpbmsKPiA+PiA+ID4gPiA+Pj4gc2hvdWxkCj4gPj4gPiA+ID4gPj4+IGhhcHBlbiBuZXh0IGluIHRoZSBpc3N1ZSBpbiBhIGNvbW1lbnQgYW5kIHdvdWxkIGFwcHJlY2lhdGUgYT0KbnkKPiA+PiA+PTIwCj4gPj4gPiBpbnB1dAo+ID4+ID49MjAKPiA+PiA+ID4gPiA+Pj4gb24KPiA+PiA+ID4gPiA+Pj4gdGhlIGN1cnJlbnQgc2V0dXAgYW5kIG5leHQgc3RlcHMuCj4gPj4gPiA+ID4gPj4+PTIwCj4gPj4gPiA+ID4gPj4+IEFueSBoZWxwIHdvdWxkIGJlIGFwcHJlY2lhdGVkLgo+ID4+ID4gPiA+ID4+Pj0yMAo+ID4+ID4gPiA+ID4+PiBtYW5mcmVkCj4gPj4gPj0yMAo+ID4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gPj0yMAo+ID4+ID4gPiA+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPiA+ID4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4gPiA+ID49MjAKPiA+PiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQo9MkQtLQo+ID4+ID4gPiA+ID4gLS0tCj4gPj4gPiA+ID4gPiAtCj4gPj4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4gPj0yMAo+ID4+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0tCj4gPj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+PTIwCj4gPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPj0yMAo+ID4+ID4gLS0KPiA+Pj0yMAo+ID4+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLW5leHRQYXJ0MjM5ODk2ODQuNFhiZWVsaGZyYQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwotLW5leHRQYXJ0MjM5ODk2ODQuNFhiZWVsaGZyYS0tCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDI4NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgT2N0IDIxIDAxOjQ2OjQ0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI4NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA1RDA0MTEwMkU0Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMjEgT2N0IDIwMTcgMDE6NDY6NDQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyODI1MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBPY3QgMjAxNyAwMTo0Njo0NCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjgxNzUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjEgT2N0IDIwMTcgMDE6NDY6NDMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyODE2NCBpbnZva2VkIGJ5IHVpZCA5OSk7IDIxIE9jdCAyMDE3IDAxOjQ2OjQzIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAyMSBPY3QgMjAxNyAwMTo0Njo0MyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEExMkY2MUEwNjI1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAyMSBPY3QgMjAxNyAwMTo0Njo0MiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHFHUHRsNElpbDNzRyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgMjEgT2N0IDIwMTcgMDE6NDY6MzggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDAzLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI1XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDQyQjY2NUZDRDMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDIxIE9jdCAyMDE3IDAxOjQ2OjM4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDI2IHdpdGggTUUKCWlkIFExbVgxdzAwQTIwVWZkeTAzMW1YNjc7IFNhdCwgMjEgT2N0IDIwMTcgMDM6NDY6MzIgKzAyMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogU2F0LCAyMSBPY3QgMjAxNyAwMzo0NjozMiArMDIwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBNYXZlbiBEb2NrZXIgSW1hZ2VzCkRhdGU6IFNhdCwgMjEgT2N0IDIwMTcgMDM6NDY6MzEgKzAyMDAKTWVzc2FnZS1JRDogPDI2Nzg0MTguNmY5amNCRjFyQ0BnaWdhPgpVc2VyLUFnZW50OiBLTWFpbC81LjIuMyAoTGludXgvNC4xMC4wLTM3LWdlbmVyaWM7IEtERS81LjMxLjA7IHg4Nl82NDsgOyApCkluLVJlcGx5LVRvOiA8b3AueThlaDFuZHNrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+ClJlZmVyZW5jZXM6IDxDQUpSdkZkby0zM1pmeGlGc0p3amlHUUpNWVQ1bXUzMWZxRDFmX3UzRlVRVG9Kdj1UdWdAbWFpbC5nbWFpbC5jb20+IDw4NjIzMDEzLjRxMkJUclZZMzJAZ2lnYT4gPG9wLnk4ZWgxbmRza2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgp0cnVlLCBmcm9tIGEgZ2VuZXJhbCBwZXJzcGVjdGl2ZSwgaXQncyBsaWtlIHNka21hbgoKd2UgbmVlZCB0byBkaXNjdXNzIHRoZW4gZGVjaWRlIGlmIHdlIHdhbnQgdG8gbWFpbnRhaW4gTWF2ZW4gRG9ja2VyIGludGVncmF0PQppb249MjAKKGNvbnRyYXJ5IHRvIG91ciBjdXJyZW50IGRlY2lzaW9uIHRvIG5vdCBtYWludGFpbiBNYXZlbiBzZGttYW4gaW50ZWdyYXRpb24gPQpidXQ9MjAKbGV0IHNka21hbiBjb21tdW5pdHkgZG8gaXQpCgogY2FuIHdlIHRoaW5rIGFib3V0IGEgZ2VuZXJhbCBzb2x1dGlvbj8gcGVyaGFwcyBub3QgcmVhbGx5IGEgc29sdXRpb24sIGJ1dCA9CmE9MjAKZGVjaXNpb24gcHJvY2VzcywgeWVzCgp0byBtZSwgb24gZWFjaCB0b29sIGludGVncmF0aW9uLCB0aGVyZSBhcmUga2V5IGRlY2lzaW9uIGRyaXZlcnM6Cj0yRCBpbXBvcnRhbmNlIG9mIHRoZSB0b29sIG9uIHRoZSBtYXJrZXQKPTJEIGludGVyZXN0IG9mIE1hdmVuIGRldnMgdG8gYWN0dWFsbHkgZG8gaW50ZWdyYXRpb24gbWFpbnRlbmFuY2UKPTJEIGNvbXBsZXhpdHkgb2YgaW50ZWdyYXRpb24sIHRlY2huaWNhbCBwcmVyZXF1aXNpdGVzICh3aXRoIElERXMsIGZvciBleGFtPQpwbGUsPTIwCmEgZGVkaWNhdGVkIGluZGVwZW5kYW50IHByb2plY3QgbGlrZSBtMmUgaXMgbmVjZXNzYXJ5KQo9MkQgdGltZSBmYWN0b3I6IHRoaW5ncyBldm9sdmUgb3ZlciB0aW1lIChlLmcuIDIgeWVhcnMgYWdvLCBEb2NrZXIgd2FzIG5vdCA9CndoYXQ9MjAKaXQgaXMgbm93YWRheXMpCgphbnkgb3RoZXIga2V5IGRyaXZlciB0byBkb2N1bWVudD8KCm9uY2UgZG9uZSwgd2UnbGwgZGlzY3VzcyBtb3JlIHByZWNpc2VseSBhYm91dCB0aGUgRG9ja2VyIGludGVncmF0aW9uIGNhc2UKCmFuZCBwcm9iYWJseSBmaW5pc2ggd2l0aCBhIHZvdGUgOikKClJlZ2FyZHMsCgpIZXJ2PUMzPUE5CgpMZSB2ZW5kcmVkaSAyMCBvY3RvYnJlIDIwMTcsIDExOjMwOjQ5IENFU1QgUm9iZXJ0IFNjaG9sdGUgYSA9QzM9QTljcml0IDoKPiBJc24ndCB0aGlzIGFjdHVhbGx5IHRoZSBzYW1lIGNhc2UgYXMgc2RrbWFuWzFdPwo+IEp1c3Qgd29uZGVyaW5nIGlmIHdlIG5lZWQgdG8gdGhpbmsgYWJvdXQgYSBnZW5lcmFsIHNvbHV0aW9uIGluc3RlYWQgb2YKPiBwdWxsaW5nIGV2ZXJ5dGhpbmcgaW50byBvdXIgcHJvamVjdCB3aGVuIHBvc3NpYmxlLgo+PTIwCj4gdGhhbmtzLAo+IFJvYmVydAo+PTIwCj4gWzFdIGh0dHA6Ly9tYXJrbWFpbC5vcmcvbWVzc2FnZS9vb2Z2c3ptZjU2dGJyN2V0Cj49MjAKPiBPbiBUaHUsIDE5IE9jdCAyMDE3IDE5OjMwOjU3ICswMjAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlPQplLmZyPgo+PTIwCj4gd3JvdGU6Cj4gPiBncmVhdCBpZGVhCj4gPj0yMAo+ID4gb2ssIHdlIG5lZWQgYSBnaXQgcmVwbyBhdCBBU0YKPiA+PTIwCj4gPiB3aGF0IGVsc2U/Cj4gPiBJcyB0aGVyZSBzb21lIHNvcnQgb2YgcmVsZWFzZSBwcm9jZXNzPyBzb21lIHNvcnQgb2Ygc291cmNlIHRvIHJlbGVhc2U/Cj4gPj0yMAo+ID4gUmVnYXJkcywKPiA+PTIwCj4gPiBIZXJ2PUMzPUE5Cj4gPj0yMAo+ID4gTGUgamV1ZGkgMTkgb2N0b2JyZSAyMDE3LCAxMzo0Nzo0NSBDRVNUIE1pa2UgRHJvYiBhID1DMz1BOWNyaXQgOgo+ID4+IFRoYW5rcyBmb3IgdGhlIHBvaW50ZXIsIENhcmxvcyEgSSBoYWQgc2VhcmNoZWQgdGhlIGFyY2hpdmVzLCBidXQgbWF5YmU9CiBJCj4gPj4gZGlkbid0IGdvIGJhY2sgZmFyIGVub3VnaC4KPiA+Pj0yMAo+ID4+IEkgdGhpbmsgbW92aW5nIHRoZXNlIERvY2tlcmZpbGVzIGludG8gYW4gQVNGIHJlcG8gd291bGQgYmUgZ3JlYXQgZm9yCj4gPj4gdGhlaXIKPiA+PiBtYWludGFpbmFiaWxpdHkuCj4gPj49MjAKPiA+PiBUaGFua3MsCj4gPj49MjAKPiA+PiBNaWtlCj4gPj49MjAKPiA+PiBPbiAyMDE3LTEwLTE5IDAzOjUwLCBDYXJsb3MgU2FuY2hleiA8Yy4uLkBhcGFjaGUub3JnPiB3cm90ZToKPiA+PiA+IEFybmF1ZCBpcyBjb3JyZWN0LCBJIHNlbnQgYW4gZW1haWwgdG8gdXNlcnNAIGJhY2sgb24gRnJpLCBOb3YgNywKPiA+Pj0yMAo+ID4+IDIwMTQsPgo+ID4+PTIwCj4gPj4gPiAwMDoyMyB3aGVuIEkgY3JlYXRlZCB0aGUgaW1hZ2U+Cj4gPj4gPj0yMAo+ID4+ID49MjAKPiA+PiA+IE9uIFRodSwgT2N0IDE5LCAyMDE3LCAxMToxMiBBcm5hdWQgSD1FRj1CRj1CRHJpdGllciA8YWguLi5AZ21haWwuY29tPQo+IHdyb3RlOj4KPiA+PiA+PTIwCj4gPj4gPiA+IFRoZXNlIGltYWdlcyBhcmUga2luZGx5IG1hbmFnZWQgYnkgYSBQTUMgbWVtYmVyIG9mIG91ciBwcm9qZWN0Cj4gPj49MjAKPiA+PiAoQ2FybG9zKQo+ID4+PTIwCj4gPj4gYnV0Pgo+ID4+PTIwCj4gPj4gPiA+IHllcyB0aGV5IGFyZW4ndCBtYW5hZ2VkIGRpcmVjdGx5IGJ5IHRoZSBwcm9qZWN0Pgo+ID4+ID4gPj0yMAo+ID4+ID4gPiBXZSBjYW4gZWFzaWx5IHNlZSB3aXRoIGhpbSB0byBpbXByb3ZlIHRoaXMgSU1PLj4KPiA+PiA+ID49MjAKPiA+PiA+ID4gV2hlbiBoZSBzdGFydGVkIHRoYXQgKHNldmVyYWwgeWVhcnMgYWdvKSBEb2NrZXIgd2Fzbid0IHdoYXQgaXQgaXMKPiA+Pj0yMAo+ID4+IG5vd2FkYXlzLj4KPiA+Pj0yMAo+ID4+ID4gPiBXaXRoIGRvY2tlciBiZWluZyBtYWluc3RyZWFtIEkgYWdyZWUgdGhhdCB3ZSBjYW4gcmVjb25zaWRlciB0aGlzLj4KPiA+PiA+ID49MjAKPiA+PiA+ID4gVGhlIGRvY2tlciBpbWFnZSBidWlsZC9kaXN0cmlidXRpb24gY291bGQgcGVyaGFwcyBiZSBwYXJ0IG9mIG91cgo+ID4+PTIwCj4gPj4gcmVsZWFzZT4KPiA+Pj0yMAo+ID4+ID4gPiBwcm9jZXNzLj4KPiA+PiA+ID49MjAKPiA+PiA+ID4gV0RZVCBDYXJsb3MgPz4KPiA+PiA+ID49MjAKPiA+PiA+ID4gT24gVGh1LCBPY3QgMTksIDIwMTcgYXQgNDoxNiBBTSwgTWlrZSBEcm9iIDxtZC4uLkBhcGFjaGUub3JnPgo+ID4+PTIwCj4gPj4gd3JvdGU6Pgo+ID4+PTIwCj4gPj4gPiA+ID4gSSBndWVzcyB0aGUgbmF0dXJhbCBmb2xsb3ctb24gcXVlc3Rpb24gaXMgd2hldGhlciB0aGUgTWF2ZW4KPiA+Pj0yMAo+ID4+IGNvbW11bml0eT4KPiA+Pj0yMAo+ID4+ID4gPiA+IHdvdWxkIGNvbnNpZGVyIHB1Ymxpc2hpbmcgYW4gb2ZmaWNpYWwgc2V0IG9mIGltYWdlcz8gT3IKPiA+Pj0yMAo+ID4+IGFsdGVybmF0aXZlbHk+Cj4gPj49MjAKPiA+PiA+ID4gPiB3aGV0aGVyIHRoZXkgc2hvdWxkIHNlbmQgYSB0YWtlZG93biBub3RpY2UgdG8gcHJvdGVjdCB0aGVpciBicmFuZAo+ID4+PTIwCj4gPj4gYW5kPgo+ID4+PTIwCj4gPj4gPiA+ID4gdHJhZGVtYXJrcy4uLj4KPiA+PiA+ID4gPj0yMAo+ID4+ID4gPiA+IE9uIDIwMTctMTAtMTggMTg6MzYsICJNYW5mcmVkIE1vc2VyIiA8bWEuLi5Ac2ltcGxpZ2lsaXR5LmNvbT4KPiA+Pj0yMAo+ID4+IHdyb3RlOj4KPiA+Pj0yMAo+ID4+ID4gPiA+ID4gTm8uIEFzIHlvdSBjYW4gc2VlIGZyb20gdGhlIGdpdGh1YiBVUkwgdGhpcyBpcyBOT1QgYW4gYXBhY2hlCj4gPj49MjAKPiA+PiBVUkwuPgo+ID4+PTIwCj4gPj4gPiA+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vY2FybG9zc2cvZG9ja2VyLW1hdmVuPgo+ID4+ID4gPiA+ID49MjAKPiA+PiA+ID4gPiA+PTIwCj4gPj4gPiA+ID4gPiBNaWtlIERyb2Igd3JvdGUgb24gMjAxNy0xMC0xOCAxNjozMjo+Cj4gPj4gPiA+ID4gPj0yMAo+ID4+ID4gPiA+ID4gPiBIZWxsbyw+Cj4gPj4gPiA+ID4gPiA+PTIwCj4gPj4gPiA+ID4gPiA+IEFyZSB0aGUgaW1hZ2VzIGF0IGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9fL21hdmVuLwo+ID4+PTIwCj4gPj4gY29uc2lkZXJlZCB0bwo+ID4+PTIwCj4gPj4gYmU+Cj4gPj49MjAKPiA+PiA+ID4gPiBvZmZpY2lhbD4KPiA+PiA+ID4gPj0yMAo+ID4+ID4gPiA+ID4gPiBtYXZlbiBkb2NrZXIgaW1hZ2VzIGFuZCBibGVzc2VkL3B1Ymxpc2hlZCBieSB0aGUgUE1DPz4KPiA+PiA+ID4gPiA+ID49MjAKPiA+PiA+ID4gPiA+ID4gVGhhbmtzLD4KPiA+PiA+ID4gPiA+ID4gTWlrZT4KPiA+Pj0yMAo+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT4KPiA+Pj0yMAo+ID4+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgo+ID4+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Cj4gPj49MjAKPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+Cj4gPj49MjAKPiA+PiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IHVzZXJzLXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Cj4gPj4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Cj4gPj49MjAKPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+Cj4gPj49MjAKPiA+PiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgo+ID4+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IHVzZXJzLWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KPiA+PiA+ID49MjAKPiA+PiA+ID4gLS0+Cj4gPj4gPiA+IC0tLS0tPgo+ID4+ID4gPiBBcm5hdWQgSD1FRj1CRj1CRHJpdGllcj4KPiA+PiA+ID4gaHR0cDovL2FoZXJpdGllci5uZXQ+Cj4gPj4gPiA+IE1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tPgo+ID4+ID4gPiBUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyPgo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3ODEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IERlYyAxNiAxNToyODo1OSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3ODEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMjI5QzMxN0ZCNAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDE2IERlYyAyMDE3IDE1OjI4OjU5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzUzOTYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTYgRGVjIDIwMTcgMTU6Mjg6NTggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc1MzAyIGludm9rZWQgYnkgdWlkIDUwMCk7IDE2IERlYyAyMDE3IDE1OjI4OjU4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzUyOTEgaW52b2tlZCBieSB1aWQgOTkpOyAxNiBEZWMgMjAxNyAxNToyODo1OCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMTYgRGVjIDIwMTcgMTU6Mjg6NTggKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAwNDhGMUMyMDc5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAxNiBEZWMgMjAxNyAxNToyODo1OCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDEuNzk5ClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MS43OTkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgNnB5d2N0WE1IV1NjIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAxNiBEZWMgMjAxNyAxNToyODo1NSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDQuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjZdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNDZFM0U1RjIwQgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTYgRGVjIDIwMTcgMTU6Mjg6NTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMzkgd2l0aCBNRQoJaWQgbWZVbzF3MDBjMjBVZmR5MDNmVXBuRzsgU2F0LCAxNiBEZWMgMjAxNyAxNjoyODo0OSArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBTYXQsIDE2IERlYyAyMDE3IDE2OjI4OjQ5ICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtJTVBPUlRBTlRdIFJlOiBHaXQgbWlncmF0aW9uIG5leHQgc3RlcHMKRGF0ZTogU2F0LCAxNiBEZWMgMjAxNyAxNjoyODo0OCArMDEwMApNZXNzYWdlLUlEOiA8MjY5ODYxNi5oeFpra2p5OWRwQGdpZ2E+CkluLVJlcGx5LVRvOiA8b3AuemJiOHozenprZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+ClJlZmVyZW5jZXM6IDwxOTAwNTU4LkdGeDlRbGZhRTJAZ2lnYT4gPDMyNzIxNDEuVHNISHFVWkRrcEBnaWdhPiA8b3AuemJiOHozenprZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKb2ssIEkgd2FzIGNvbmZ1c2VkIGJ5IHRoZSBkaWZmZXJlbnQgdGFrZXMgYXQgbS1qYXZhZG9jLXAgMy4wLjAKCnllcywgc3ZuMmdpdCBtaXJyb3IgaXMgc3R1Y2sgWzFdIGF0IHIxODE1Njc1CgpJIGp1c3Qgb3BlbmVkIGFuIElORlJBIEppcmEgaXNzdWUKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9JTkZSQS0xNTY3OQoKb25jZSB0aGUgc3ZuMmdpdCBtaXJyb3Igd2lsbCBiZSB1cGRhdGVkLCB3ZSdsbCBoYXZlIHRvIHJlLXJ1biB0aGUgc3BsaXQ9MjAKc2NyaXB0cyBhbmQgY2hlcnJ5IHBpY2sgdGhlIG1pc3NpbmcgY29tbWl0cwoKUmVnYXJkcywKCkhlcnY9RTkKClsxXSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvY29tbWl0cy90cnVuawoKTGUgc2FtZWRpIDE2IGQ9RTljZW1icmUgMjAxNywgMTM6MDE6MDUgQ0VUIFJvYmVydCBTY2hvbHRlIGEgPUU5Y3JpdCA6Cj4gSSB3YXMgdHJpZ2dlcmVkIGJ5IHNvbWUgZmFpbGluZyB1bml0IHRlc3RzLCB3aGljaCBzaG91bGQgaGF2ZSBiZWVuIHNvbHZlZAo+IGluIG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wCj49MjAKPiBNeSBsYXN0IGNvbW1pdCBhY2NvcmRpbmcgdG8gR0lUIHdhcyBub3ZlbWJlciAxOHRoCj4gTXkgbGFzdCBjb21taXQgYWNjb3JkaW5nIHRvIFNWTiB3YXMgZGVjZW1iZXIgM3JkCj49MjAKPiBjb21wYXJpbmcgc3ZubG9nIHdpdGggZ2l0bG9nIG1vc3Qgb2YgdGhlc2UgY29tbWl0cyBhcmUgbG9zdDoKPj0yMAo+IG1vdmVkIHRvIGdpdAo+IC0tLS0KPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgZm9yIG5leHQgZGV2ZWxvcG1lbnQgaXRlcmF0aW9uCj4gLS0tLQo+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSByZWxlYXNlIG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wCj4gLS0tLQo+IFtNSkFWQURPQy00OThdICJtb2R1bGUgbm90IGZvdW5kIiB3aGVuIEphdmEgOSBtb2R1bGUtaW5mbyBwcmVzZW50Cj4gU3VwcG9ydCBhZ2dyYXRlZCBqYXZhZG9jCj4gLS0tLQo+IFNraXAgc2V2ZXJhbCB1bml0dGVzdHMgZm9yIEphdmE5Cj4gLS0tLQo+IEpESy04MDMyMjA1IHdhcyBjbG9zZWQgYXMgbm90IGFuIGlzc3VlLCBzbyBub3Qgc29sdmVkIGluIEphdmE5Lgo+IE5lZWQgdG8gcmV2aWV3IHRoZSBjb25jbHVzaW9uCj4gLS0tLQo+IFVwZ3JhZGUgbW9ja2l0byB0byByZW1vdmUgd2FybmluZyBhYm91dCBpbGxlZ2FsIHJlZmxlY3RpdmUgYWNjZXNzCj4gLS0tLQo+IEltcHJvdmUgVGVzdEphdmFkb2NSZXBvcnRUZXN0I3Rlc3RUZXN0SmF2YWRvYwo+IEo4IHdhcm5zIGFuZCBjb250aW51ZXMgd2l0aCBtaXNzaW5nIGRlcGVuZGVuY3ksIEo5IGZhaWxzLgo+IEluIGZhY3QgdGVzdCB3YXMgd3Jvbmc6IGRlcGVuZGVuY3kgc2hvdWxkIGhhdmUgYmVlbiBvbiBjbGFzc3BhdGgKPiAtLS0tCj4gdW5pdHRlc3Qgc2hvdWxkIHByZWZlciBKQVZBX0hPTUUgd2hlbiBleGVjdXRpbmcgZnJvbSBjbWRsaW5lCj4gV2hlbiBydW5uaW5nIHdpdGggSmF2YTkrIG5vIG5lZWQgdG8gc3dpdGNoIGZyb20ganJlIHRvIGpkayBkaXJlY3RvcnkKPiAoamVwMjIwKQo+IC0tLS0KPiBNSkFWQURPQy01MDIgVXBkYXRlIERFRkFVTFRfSkFWQV9BUElfTElOS1MKPiAtLS0tCj4gc2Vzc2lvbiBpcyByZXF1aXJlZCBwYXJhbWV0ZXIsIHNvIGNhbm5vdCBiZSBudWxsLiBGaXggcmVsYXRlZCB1bml0dGVzdHMKPiAtLS0tCj4gQWRkIHByb2plY3QvYXJ0aWZhY3Qga2V5IHRvIHNldCBvZiBzb3VyY2VQYXRocyB0byByZWNvZ25pemUgcmVhY3Rvcgo+IHByb2plY3RzIHZlcnN1cyBkZXBlbmRlbmNpZXMKPiAtLS0tCj4gR3JvdXAgc2V0cyBvZiBzb3VyY2VwYXRocyBwZXIgcHJvamVjdCwgaW4gcHJlcGFyZSBvZiB1c2FnZSBvZgo+IG1vZHVsZS1zb3VyY2UtcGF0aC4KPiAtLS0tCj4gU3dpdGNoIGZyb20gTGlzdCB0byBDb2xsZWN0aW9uIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHVzZSBTZXRzIHdoZW4gcHJlZmVycj0KZWQKPiAtLS0tCj4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIGZvciBuZXh0IGRldmVsb3BtZW50IGl0ZXJhdGlvbgo+IC0tLS0KPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgcmVsZWFzZSBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+IC0tLS0KPj0yMAo+PTIwCj49MjAKPj0yMAo+IE9uIFNhdCwgMTYgRGVjIDIwMTcgMTI6NTM6MjMgKzAxMDAsIEhlcnY9RTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmY9CnI+Cj49MjAKPiB3cm90ZToKPiA+IGxvb2tpbmcgYXQgY29tbWl0c0AgY29udGVudCBodHRwczovL2xpc3RzLmFwYWNoZS5vcmcvbGlzdC5odG1sPwo+ID4gY29tbWl0c0BtYXZlbi5hcGFjaGUub3JnIHdpdGggc3ViamVjdCBjb250YWluaW5nICJtYXZlbi9wbHVnaW5zL3RydW5rIgo+ID49MjAKPiA+IGFuZCBwbHVnaW5zIHN2bjJnaXQgbWlycm9yCj4gPiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvY29tbWl0cy8KPiA+IHRydW5rCj4gPj0yMAo+ID4gb25seSAxIGNvbW1pdCBpcyBtaXNzaW5nOiBteSBsYXRlc3QgY29tbWl0IG9uIG1hdmVuLXNpdGUtcGx1Z2luCj4gPiAodGhlIGxhc3QgY29tbWl0IGZvciBHaXQgbWlncmF0aW9uIGlzIG5vdCB1c2VmdWwpCj4gPj0yMAo+ID49MjAKPiA+IFNhbWUgb24gc2hhcmVkIHNob3dlZCBubyBtaXNzaW5nIGNvbW1pdC4KPiA+PTIwCj4gPj0yMAo+ID4gd2hhdCBsYXRlc3QgY29tbWl0IG9mIG1hdmVuLWphdmFkb2MtcGx1Z2luIGFyZSB5b3UgbG9va2luZyBmb3I/Cj4gPj0yMAo+ID4gUmVnYXJkcywKPiA+PTIwCj4gPiBIZXJ2PUU5Cj4gPj0yMAo+ID4gTGUgc2FtZWRpIDE2IGQ9RTljZW1icmUgMjAxNywgMTE6NTY6MzEgQ0VUIFJvYmVydCBTY2hvbHRlIGEgPUU5Y3JpdCA6Cj4gPj4gRm9yIGV2ZXJ5Ym9keSBqdXN0IGEgd2FybmluZyBJIGZhY2VkIHRvZGF5Ogo+ID4+IElmIHlvdSBzd2l0Y2ggdG8gdGhlIGdpdCByZXBvcywgcGxlYXNlIG1ha2Ugc3VyZSBhbGwgY29tbWl0cyBhcmUKPiA+PiBtaWdyYXRlZC4KPiA+PiBJIG5vdGljZWQgdGhlIGxhdGVzdCBjb21taXRzIG9mIHRoZSBtYXZlbi1qYXZhZG9jLXBsdWdpbiBnb3QgbG9zdC4KPiA+Pj0yMAo+ID4+IHRoYW5rcywKPiA+PiBSb2JlcnQKPiA+Pj0yMAo+ID4+IE9uIFNhdCwgMDkgRGVjIDIwMTcgMTc6MDY6MDkgKzAxMDAsIFN0ZXBoZW4gQ29ubm9sbHkKPiA+Pj0yMAo+ID4+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+PiA+IEkgc2VlIHdlIGhhdmUgYSBsYXJnZSBudW1iZXIgb2YgcmVwb3Mgbm93IG9uIGdpdGJveCA7LSkKPiA+PiA+PTIwCj4gPj4gPiBPbiBUaHUgNyBEZWMgMjAxNyBhdCAwNzowMCwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPj49MjAKPiA+PiB3cm90ZToKPiA+PiA+PiBvaywgSSBkaWRuJ3QgdXBkYXRlIG15IHJlcG8gY2xvbmU6IG5vdyB0aGUgcnVuLWl0cyBwcm9maWxlIGlzCj4gPj49MjAKPiA+PiBhY3RpdmF0ZWQKPiA+Pj0yMAo+ID4+ID4+IHRoZW4gdGhlIHBsYW4gc2hvdWxkIGp1c3QgY29uZmlybSAiaXQgd29ya3MhIiA6KQo+ID4+ID4+PTIwCj4gPj4gPj4gYW5kIGZpbmQgd2hpY2ggam9icyBhcmUgc3BlY2lhbCwgbGlrZSBtYXZlbi1kaXN0LXRvb2wgKHdoaWNoIGhhcyB0bwo+ID4+PTIwCj4gPj4gYmUKPiA+Pj0yMAo+ID4+ID4+IHNjaGVkdWxlZCBkYWlseSBpbnN0ZWFkIG9mIGNvZGUgY2hhbmdlLCBhbmQgb25lIHBsYXRmb3JtIG9ubHkpCj4gPj4gPj49MjAKPiA+PiA+PiBSZWdhcmRzLAo+ID4+ID4+PTIwCj4gPj4gPj4gSGVydj1FOQo+ID4+ID4+PTIwCj4gPj4gPj4gTGUgbWVyY3JlZGkgNiBkPUU5Y2VtYnJlIDIwMTcsIDIzOjU4OjQ1IENFVCBTdGVwaGVuIENvbm5vbGx5IGEgPUU5Yz0Kcml0IDoKPiA+PiA+PiA+IE9uIFdlZCA2IERlYyAyMDE3IGF0IDIyOjM4LCBIZXJ2PUU5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mPQpyPgo+ID4+ID4+PTIwCj4gPj4gPj4gd3JvdGU6Cj4gPj4gPj4gPiA+IE5vdyB0aGF0IHdlIGhhdmUgMiBBU0YgT3JnYW5pemF0aW9uIEplbmtpbnMgam9icyAob25lIGZvciBnaXRib3gKPiA+Pj0yMAo+ID4+IFsxXQo+ID4+PTIwCj4gPj4gPj4gYW5kCj4gPj4gPj49MjAKPiA+PiA+PiA+ID4gb25lCj4gPj4gPj4gPiA+IGZvciBnaXQtd2lwOiB0aGFuayB5b3UgU3RlcGhlbikgYW5kIHRoYXQgaXQgbG9va3MgcXVpdGUKPiA+Pj0yMAo+ID4+IHN1Y2Nlc3NmdWwsCj4gPj49MjAKPiA+PiA+PiBsZXQncwo+ID4+ID4+PTIwCj4gPj4gPj4gPiA+IHBsYW4KPiA+PiA+PiA+ID4gdGhlIG5leHQgc3RlcHMuCj4gPj4gPj4gPiA+PTIwCj4gPj4gPj4gPiA+IEhlcmUgaXMgd2hhdCBJIHNlZToKPiA+PiA+PiA+ID4gMS4gcmVtb3ZhbCBvZiBoYW5kLWRlZmluZWQgSmVua2lucyBqb2JzIHRoYXQgYXJlIG5vdyBkdXBsaWNhdGVzCj4gPj4gPj4gPiA+PTIwCj4gPj4gPj4gPiA+IDIuIHByZXBhcmF0aW9uIG9mIHRoZSA2MCBuZXcgZW1wdHkgZ2l0IHJlcG9zIGZvciBzaGFyZWQgJiBwbHVnaT0KbnMKPiA+PiA+PiA+ID49MjAKPiA+PiA+PiA+ID4gMy4gbWlncmF0aW9uIG9mIHRoZSAxIHNoYXJlZCBjb21wb25lbnQgYW5kIDEgcGx1Z2luIHVzaW5nCj4gPj4gPj49MjAKPiA+PiA+PiBtaWdyYXRlLSouc2gKPiA+PiA+Pj0yMAo+ID4+ID4+ID4gPiBzY3JpcHRzCj4gPj4gPj4gPiA+IFszXSB0byB0ZXN0IGFuZCBldmVudHVhbGx5IHJld29yayB0aGUgSmVua2luc2ZpbGUgKEkgc3VwcG9zZSBpdAo+ID4+PTIwCj4gPj4gd2lsbAo+ID4+PTIwCj4gPj4gPj4gPiA+IHJlcXVpcmUKPiA+PiA+PiA+ID4gc29tZSBsaXR0bGUgY2hhbmdlLCB0byBydW4gYWRkICJydW4taXRzIiBwcm9maWxlKQo+ID4+ID4+ID49MjAKPiA+PiA+PiA+IEFzIGZhciBhcyBJIHJlY2FsbCwgSSBhZGRlZCAtUCtydW4taXRzIGFscmVhZHkKPiA+PiA+PiA+PTIwCj4gPj4gPj4gPiBGb3IgdGhlIHBsdWdpbiwgSSdkIGxpa2UgdG8gZG8gdGhlIGpvYiBmb3IgbWF2ZW4tc2l0ZS1wbHVnaW4sCj4gPj49MjAKPiA+PiBzaW5jZSB3ZQo+ID4+PTIwCj4gPj4gPj4gPiA+IGV4cGVjdAo+ID4+ID4+ID4gPiB0byByZWxlYXNlIGl0IHNvb24uCj4gPj4gPj4gPiA+IEZvciB0aGUgc2hhcmVkIGNvbXBvbmVudCwgSSBkb24ndCBrbm93IGlmIHRoZXJlIGlzIGEgYmVzdAo+ID4+PTIwCj4gPj4gY2FuZGlkYXRlCj4gPj49MjAKPiA+PiA+PiA+ID4gNC4gb25jZSBwcmV2aW91cyBzdGVwIGlzIG9rLCBkbyB0aGUgZnVsbCBtaWdyYXRpb246IGlmIHRoZXJlIGFyZQo+ID4+ID4+ID4gPiB2b2x1bnRlZXJzCj4gPj4gPj4gPiA+IGZvciBoZWxwaW5nLCB0aGF0IHdvdWxkIGJlIGdyZWF0LCBzaW5jZSBwb3B1bGF0aW5nIDYwIGdpdCByZXBvcwo+ID4+ID4+PTIwCj4gPj4gPj4gd29uJ3QKPiA+PiA+PiBiZQo+ID4+ID4+PTIwCj4gPj4gPj4gPiA+IHJlYWxseSBmdW4uLi4KPiA+PiA+PiA+ID49MjAKPiA+PiA+PiA+ID4gQW5kIGFzIHBhcnQgb2YgNjAgZW1wdHkgZ2l0IHJlcG9zIGNyZWF0aW9uLCBJIHByb3Bvc2UgdG8gbWlncmF0ZQo+ID4+PTIwCj4gPj4gdGhlCj4gPj49MjAKPiA+PiA+PiA+ID4gIkdvb2dsZQo+ID4+ID4+ID4gPiByZXBvIG1hbmlmZXN0IiBtYXZlbi1hZ2dyZWdhdG9yIFs0XSB0byBBU0Y6IG15IHBlcnNvbmFsIHVzZSBoYXMKPiA+Pj0yMAo+ID4+IGJlZW4KPiA+Pj0yMAo+ID4+ID4+IHF1aXRlCj4gPj4gPj49MjAKPiA+PiA+PiA+ID4gc3VjY2Vzc2Z1bCwgSSBob3BlIGl0J3MgdGhlIHNhbWUgZm9yIG90aGVycy4gUGVyaGFwcyB0aGVyZSBhcmUKPiA+PiA+Pj0yMAo+ID4+ID4+IGJldHRlcgo+ID4+ID4+PTIwCj4gPj4gPj4gPiA+IGlkZWFzCj4gPj4gPj4gPiA+IGZvciBpdHMgbmFtZTogbWF2ZW4tYWdncmVnYXRvcgo+ID4+ID4+ID4gPj0yMAo+ID4+ID4+ID4gPiBBbnkgb3RoZXIgaWRlYT8gYW55IG9iamVjdGlvbj8KPiA+PiA+PiA+ID49MjAKPiA+PiA+PiA+ID4gUmVnYXJkcywKPiA+PiA+PiA+ID49MjAKPiA+PiA+PiA+ID4gSGVydj1FOQo+ID4+ID4+ID4gPj0yMAo+ID4+ID4+ID4gPiBbMV0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvCj4gPj4gPj4gPiA+PTIwCj4gPj4gPj4gPiA+IFsyXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLXdpcC8KPiA+PiA+PiA+ID49MjAKPiA+PiA+PiA+ID4gWzNdCj4gPj49MjAKPiA+PiBodHRwczovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy9tYXZlbi9zYW5kYm94L3RydW5rL3NjcmlwdHMvZ2l0Lwo+ID4+PTIwCj4gPj4gPj4gPiA+IFs0XSBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tYWdncmVnYXRvcgo+ID4+ID4+PTIwCj4gPj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KPTJELQo+ID4+ID4+PTIwCj4gPj4gPj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+PiA+ID49MjAKPiA+PiA+PiA+ID4gLS0KPiA+PiA+PiA+PTIwCj4gPj4gPj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+PiA+Pj0yMAo+ID4+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0KPiA+PiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+Pj0yMAo+ID4+ID4+IC0tCj4gPj4gPj0yMAo+ID4+ID4gU2VudCBmcm9tIG15IHBob25lCj4gPj49MjAKPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj49MjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NzYyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBEZWMgMTAgMTA6MDE6NDkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzYyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEEwOTIwMTdGNUUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxMCBEZWMgMjAxNyAxMDowMTo0OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg0NDQ2IGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIERlYyAyMDE3IDEwOjAxOjQ5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NDM4MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBEZWMgMjAxNyAxMDowMTo0OSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg0MzcwIGludm9rZWQgYnkgdWlkIDk5KTsgMTAgRGVjIDIwMTcgMTA6MDE6NDkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDEwIERlYyAyMDE3IDEwOjAxOjQ5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgOTBDNUUxQTBBMEEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIERlYyAyMDE3IDEwOjAxOjQ4ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEuMwpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMS4zIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgS0FNX0xJTktCQUlUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGFjM1h1MldiUVREdyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgMTAgRGVjIDIwMTcgMTA6MDE6NDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDA5LnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTMxXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDRCNzg1NUYyRUUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIERlYyAyMDE3IDEwOjAxOjQ3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDMyIHdpdGggTUUKCWlkIGtBMWgxdzAwMzIwVWZkeTAzQTFoQzU7IFN1biwgMTAgRGVjIDIwMTcgMTE6MDE6NDEgKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogU3VuLCAxMCBEZWMgMjAxNyAxMTowMTo0MSArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IG1lcmdpbmcgTU5HLTYzMDggZGlzcGxheSBwYWNrYWdpbmcKRGF0ZTogU3VuLCAxMCBEZWMgMjAxNyAxMTowMTo0MSArMDEwMApNZXNzYWdlLUlEOiA8Mjc1MzA0MC44UzE1c2xqN1o1QGdpZ2E+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKaXMgdGhlcmUgYSBzZWNvbmRlciBmb3IgdGhpcyBlbmhhbmNlbWVudD8KCkNJOiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLTMueC1qZW5raW5zZmlsZS8Kam9iL01ORy02MzA4X2Rpc3BsYXlfcGFja2FnaW5nLwoKSmlyYSBpc3N1ZTogaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjMwOAoKUmVnYXJkcywKCkhlcnY9RTkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDMzMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgT2N0IDI2IDA2OjEzOjIzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDMzMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyNTNDODE3QUUyCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjYgT2N0IDIwMTcgMDY6MTM6MjMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyNDgzMiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBPY3QgMjAxNyAwNjoxMzoyMiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjQ0MDAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjYgT2N0IDIwMTcgMDY6MTM6MjIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNDM4NCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI2IE9jdCAyMDE3IDA2OjEzOjIyIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyNiBPY3QgMjAxNyAwNjoxMzoyMiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDdDREY0MUEwOEZDCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyNiBPY3QgMjAxNyAwNjoxMzoyMSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xLjc5OQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMS43OTkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsIFVSSUJMX0JMT0NLRUQ9MC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgMmJIc0JjUU9UMUtYIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVGh1LCAyNiBPY3QgMjAxNyAwNjoxMzoyMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDcuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjldKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgOTE1NTY2MENEMwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjYgT2N0IDIwMTcgMDY6MTM6MTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkNjYgd2l0aCBNRQoJaWQgUzZERDF3MDBEMjBVZmR5MDM2REQ1RjsgVGh1LCAyNiBPY3QgMjAxNyAwODoxMzoxMyArMDIwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBUaHUsIDI2IE9jdCAyMDE3IDA4OjEzOjEzICswMjAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ2M6IFBhdWwgSGFtbWFudCA8cGF1bEBoYW1tYW50Lm9yZz4KU3ViamVjdDogUmU6IG5leHQgY2FuZGlkYXRlcyBmb3IgR2l0IG1pZ3JhdGlvbgpEYXRlOiBUaHUsIDI2IE9jdCAyMDE3IDA4OjEzOjEzICswMjAwCk1lc3NhZ2UtSUQ6IDwyNzU5ODI1LkN4U3FidE14N3hAZ2lnYT4KSW4tUmVwbHktVG86IDw2ODkxMjAxLm9vMm03MXNsWGdAZ2lnYT4KUmVmZXJlbmNlczogPDY4OTEyMDEub28ybTcxc2xYZ0BnaWdhPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCm9uIHRoZSBnaXQgbW9kdWxlcyBpZGVhLCBBcGFjaGUgU2xpbmcgaXMgY3VycmVudGx5IG1pZ3JhdGluZyBmcm9tIDEgc3ZuIHJlcD0Kbz0yMAp0byAyMDAgZ2l0IHJlcG9zIFsxXTogbG9va3MgbGlrZSB0aGV5IGFyZSBiZWF0aW5nIHVzIDopCgpvbiB0aGUgbWFzcyBjbG9uZSBhbmQgcHVsbCBxdWVzdGlvbiwgdGhleSd2ZSBqdXN0IGltcGxlbWVudGVkIFsyXSBhbj0yMAphZ2dyZWdhdG9yIHJlcG8gdXNpbmcgdGhlICJyZXBvIiBjb21tYW5kIGZyb20gQW5kcm9pZCBbM10KCmxvb2tzIGludGVyZXN0aW5nOiBkb2VzIGFueWJvZHkgaGF2ZSBleHBlcmllbmNlIG9uIHRoaXM/ClBhdWw/CgpSZWdhcmRzLAoKSGVydj1FOQoKWzFdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvU0xJTkctMzk4NwoKWzJdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvU0xJTkctNzE2NAoKWzNdIGh0dHBzOi8vc291cmNlLmFuZHJvaWQuY29tL3NvdXJjZS91c2luZy1yZXBvCgpMZSBkaW1hbmNoZSAyMiBvY3RvYnJlIDIwMTcsIDE2OjExOjU0IENFU1QgSGVydj1FOSBCT1VURU1ZIGEgPUU5Y3JpdCA6Cj4gbm93IHdlIGhhdmUgMTUgZ2l0IHJlcG9zOiA5IEdpdC1XSVAgKyA2IEdpdEJveAo+IEkgZGlkbid0IHRyeSB0aGUgZ2l0IG1vZHVsZXMgc3RyYXRlZ3kgdG8gaGF2ZSBhbiBlYXN5IGNsb25lL3B1bGw6IGlmCj4gc29tZWJvZHkgdHJpZWQsIHBsZWFzZSBzaGFyZSByZXN1bHRzCj49MjAKPiBsZXQncyBzZWUgdGhlIG5leHQgY2FuZGlkYXRlcyBbMV0sIHdoaWNoIGFyZSBsZXNzIG9idmlvdXMgdGhhbiB0aGUgMTUgZmlyPQpzdAo+IG9uZXM6Cj49MjAKPiAtIDIgc2l0ZXMgKE1hdmVuIGFuZCBEb3hpYSk6IGFueWJvZHkga25vd3MgaWYgQ01TIHN1cHBvcnRzIHNvdXJjZSBpbiBHaXQ/Cj49MjAKPiAtIDIgcGFyZW50IHBvbXM6IEFTRiBhbmQgbWF2ZW4tcGFyZW50LiBTZWVtcyBmZWFzaWJsZSB0byBoYXZlIDIgcmVwb3MuIE9uPQpseQo+IGlzc3VlcyBJIHNlZSBhcmU6Cj4gICAtIGhvdyB0byBuYW1lIHRoZSByZXBvIGZvciBBU0Y/Cj4gICAtIGhvdyB0byBnZXQgdGhlIGhpc3RvcnkgZm9yIG1hdmVuLXBhcmVudCwgZ2l2ZW4gdGhlcmUgd2VyZSBhIGxvdHMgb2YKPiBtb3Zlcz8KPj0yMAo+IC0gNiByZXNvdXJjZSBidW5kbGVzOiBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9hcGFjaGUtcmVzb3VyY2UtYnVuZGxlcy8KPiB3aGF0IGFib3V0IGRvaW5nIDEgZ2l0IHJlcG8gb25seSwgd2l0aCBvbmUgdW5pcXVlIGNvbW1vbiB2ZXJzaW9uPwo+PTIwCj4gLSAyIHNraW5zOiBzZWVtcyBmZWFzaWJsZSB0byBoYXZlIDIgcmVwb3MgKEkgZG9uJ3Qga25vdyBpZiBnZXR0aW5nIGhpc3RvcnkKPiBpcyBlYXN5IG9yIG5vdCkKPj0yMAo+IC0gNSBkb3hpYSB0b29sczogNSByZXBvcyBzZWVtcyByZWFzb25hYmxlCj49MjAKPiAtIDQxIHBsdWdpbnMKPiAtIDI2IHNoYXJlZCBjb21wb25lbnRzCj4gcmVhbGx5LCB0aGlzIHdpbGwgYmUgdGhlIGhhcmQgcGFydHMuLi4KPj0yMAo+IC0gYXJjaGV0eXBlczogbG9va3MgaXQgaGFzIG1vdmVkIHRvIDEwIGluZGVwZW5kYW50IGFyY2hldHlwZXMKPj0yMAo+PTIwCj4gVGhlIGJlZ2lubmluZyBvZiB0aGUgbGlzdCBzZWVtcyBmZWFzaWJsZTogbm90IGFzIGVhc3kgYXMgcHJldmlvdXNseSwgYnV0Cj4gZmVhc2libGUKPiBBcmUgdGhlcmUgdm9sdW50ZWVycyB0byBwcmVwYXJlIHJlZmVyZW5jZSB0YXJnZXQgZ2l0IHJlcG9zPwo+PTIwCj4gSWYgd2UgY2FuJ3QgZ2V0IHRoZSBqb2IgZG9uZSBvbiB0aGVzZSwgSSB0aGluayB0aGF0IHRhbGtpbmcgYWJvdXQgcGx1Z2lucwo+ICtzaGFyZWQrYXJjaGV0eXBlcyBpcyBqdXN0IGEgd2FzdGUgb2YgdGltZQo+PTIwCj4gUmVnYXJkcywKPj0yMAo+IEhlcnY9RTkKPj0yMAo+PTIwCj4gWzFdIGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvTUFWRU4vR2l0K01pZ3JhdGlvbgo+PTIwCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDg5OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gRGVjIDMxIDEwOjUwOjExIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg5OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3REU5OTE3OENDCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMzEgRGVjIDIwMTcgMTA6NTA6MTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2MTk2NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMSBEZWMgMjAxNyAxMDo1MDoxMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjE4OTQgaW52b2tlZCBieSB1aWQgNTAwKTsgMzEgRGVjIDIwMTcgMTA6NTA6MTEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MTg4MyBpbnZva2VkIGJ5IHVpZCA5OSk7IDMxIERlYyAyMDE3IDEwOjUwOjEwIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAzMSBEZWMgMjAxNyAxMDo1MDoxMCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDk4MDQ3QzFBMjEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDMxIERlYyAyMDE3IDEwOjUwOjA5ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC45OTkKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC45OTkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBHZWlkYm4wdlg4UnEgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sIDMxIERlYyAyMDE3IDEwOjUwOjA4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAxMC5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEzMl0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA4NTBCNTVGMjdFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAzMSBEZWMgMjAxNyAxMDo1MDowNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQyMCB3aXRoIE1FCglpZCBzYXB6MXcwMDQyMFVmZHkwM2FwenBVOyBTdW4sIDMxIERlYyAyMDE3IDExOjUwOjAwICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFN1biwgMzEgRGVjIDIwMTcgMTE6NTA6MDAgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW0lNUE9SVEFOVF0gUmU6IEdpdCBtaWdyYXRpb24gbmV4dCBzdGVwcwpEYXRlOiBTdW4sIDMxIERlYyAyMDE3IDExOjQ5OjU5ICswMTAwCk1lc3NhZ2UtSUQ6IDwyNzkyOTcwLlBicGFvdWdYZktAZ2lnYT4KSW4tUmVwbHktVG86IDxDQStuUG5NeS03X1ItdnN2a0ZnaGI9ZHlLTFZFXytYUENlMHlIa0o1QXVuYzdHNHpzYlFAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDwyMDA5NzY1NTkyLjIyOTcyMjE3LjE1MTQxMDkyNTY2MzIuSmF2YU1haWwucm9vdEBzcG9vbGVyNC1nMjc+IDwxMDA5ODI3ODEub3ZLaTlWR05yNUBnaWdhPiA8Q0ErblBuTXktN19SLXZzdmtGZ2hiPWR5S0xWRV8rWFBDZTB5SGtKNUF1bmM3RzR6c2JRQG1haWwuZ21haWwuY29tPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpMZSBkaW1hbmNoZSAzMSBkPUMzPUE5Y2VtYnJlIDIwMTcsIDExOjA1OjM5IENFVCBTdGVwaGVuIENvbm5vbGx5IGEgPUMzPUE5Y3I9Cml0IDoKWy4uLl0KPiA+ID4gd2hhdCBhcmUgYWxsIHRoZSBvcGVuIHRhc2tzIGxpbmtzPwo+ID49MjAKPiA+IHdhcyBzdXBwb3NlZCB0byBiZSBmaXhlZCBhZnRlciBKZW5raW5zIHBsdWdpbiB1cGdyYWRlIHRoaXMgd2Vlawo+ID4gQFN0ZXBoZW4gaXMgdGhpcyBhIGtub3duIGlzc3VlPwo+PTIwCj4gSSBtYXkgaGF2ZSB0byB0d2VhayB0aGUgc2hhcmVkIGxpYiBhbHNvLiBJdCB3aWxsIGJlIFR1ZXNkYXkgYmVmb3JlIEkgdHVybgo+IG9uIG15IE1hYwpwZXJmZWN0OiBoYXZlIG5pY2UgaG9saWRheXMsIHdvcmtpbmcgb24gaXQgbmV4dCB5ZWFyIGlzIHBlcmZlY3QgOikKClsuLi5dCj4gPiA+IEhvbmVzdGx5IHRoZSBjdXJyZW50IGplbmtpbnMgcmVzdWx0IGlzIGNvbXBsaWNhdGVkIHRvIHVzZS4uLi4KPiA+PTIwCj4gPiB3aGVuIHRoZSByZXNldWx0IGlzIGEgcGFzc2luZyBidWlsZCwgaXQncyBwZXJmZWN0LCBidXQgSSBjb25maXJtIHRoYXQgdz0KaGVuCj4gPiB0aGVyZSBpcyBhIGZhaWx1cmUsIGl0J3MgYSBwYWluIHRvIHVuZGVyc3RhbmQgd2hlcmUgaXMgdGhlIGZhaWx1cmUgKHdoaT0KY2gKPiA+IE9TLwo+ID4gamRrLCB3aGljaCB0ZXN0KQo+ID4gYW5kIGV2ZW50dWFsbHkgZGV0ZWN0IGlmIHRoZXJlIGFyZSBmYWxzZSBwb3NpdGl2ZXMgb24gc29tZSBjb25kaXRpb25zLi4uCj49MjAKPiBTbyB0aGVyZSBhcmUgdHdvIGlzc3VlcyBpbWhvOgo+PTIwCj4gMS4gRmFzdCBmYWlsIGtpbGxzIG90aGVyIHBhcmFsbGVsIGV4ZWN1dGlvbnMgaW4gc3VjaCBhIHdheSB0aGF0IHRoZXkgcmVwbz0KcnQKPiBhcyBmYWlsZWQuIEk9RTI9ODA9OTlkIGxpa2UgdGhlbSB0byBmbGFnIGFzIGFib3J0ZWQgaW5zdGVhZC4gVGhhdCB3b3VsZCBtPQpha2UKPiBpZGVudGlmaWNhdGlvbiBmcm9tIHRoZSBzdGFnZSB2aWV3IG9yIGJsdWUgb2NlYW4gZWFzaWVyLgp5ZXMsIHRoaXMgd291bGQgYmUgYSBnb29kIGZpcnN0IGVuaGFuY2VtZW50Cgo+PTIwCj4gMi4gVGhlIHBhcmFsbGVsIGxvZ3MuIFRoaXMgaXMgYSBwaXBlbGluZSBkZXNpZ24gZGVjaXNpb24uIFlvdSBhcmUgYmV0dGVyCj4gb2ZmIHZpZXdpbmcgbG9ncyB0aHJvdWdoIHN0YWdlIHZpZXcgb3IgYmx1ZSBvY2Vhbi4KbGFzdCB0aW1lIEkgdHJpZWQsIEkgZGlkIG5vdCBmaW5kIG91dHB1dCBjbGVhcjogYnV0IHBlcmhhcHMgaXQgd2FzIG9uIGFib3J0PQplZD0yMApidWlsZHMgbWFya2VkIGFzIGZhaWxlZC4uLiBJJ2xsIGhhdmUgdG8gdHJ5IHdpdGggdGhhdCBpc3N1ZSBpbiBtaW5kLgoKPj0yMAo+ID4gPiBBbmQgYXMgZmFyIEkgY2FuIHNlZSBTTkFQU0hPVCBhcmUgbm90IGFueW1vcmUgZGVwbG95ZWQgd2hlcmVhcyB0aGV5IHc9CmVyZQo+ID4gPiBkZXBsb3llZCBwcmV2aW91c2x5Lgo+ID4gPiBJTUhPIGl0J3MgdmVyeSBjb252ZW5pZW50IGFzIHNvbWUgdXNlcnMgdGVzdCBvdXIgZml4ZXMuLi4uCj4gPj0yMAo+ID4gQFN0ZXBoZW4gYWRkaW5nIGF1dG8tZGVwbG95IGZvciBtYXN0ZXIgYnJhbmNoIGNvdWxkIG1ha2Ugc2Vuc2UsIGlzbid0IGk9CnQ/Cj49MjAKPiBJIHJlYWxseSB0aGluayBhdXRvLWRlcGxveSBvZiBzbmFwc2hvdHMgaXMgYW4gYW50aS1wYXR0ZXJuLiBJZiB3ZSB3YW50IGl0Cj4gdG8gYmUgZm9yIENJIG9ubHkgaW4gYSBDSSBkZWRpY2F0ZWQgcmVwbywgSSBjYW4gZmluZCB0aGF0IGFjY2VwdGFibGUuLi4gYj0KdXQKPiBvdGhlcndpc2UgSSByZWFsbHkgaGF0ZSB0aGUgaWRlYS4KSSBkb24ndCB1bmRlcnN0YW5kOiBhIFNOQVBTSE9ULWRlZGljYXRlZCByZXBvc2l0b3J5IGlzIGxpa2UgYSBtaW5pIGNvbnRpbnVvPQp1cz0yMApkZXBsb3ltZW50LiBXZSBoYXZlIGEgU05BUFNIT1QtZGVkaWNhdGVkIHJlcG9zaXRvcnkgZXhhY3RseSBmb3IgdGhhdCw9MjAKY29uZmlndXJlZCBhcyByZXBvc2l0b3JpZXMgYW5kIGRpc3RyaWJ1dGlvbk1hbmFnZW1lbnQgaW4gQXBhY2hlIFBhcmVudCBQT009Cj0yMApodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9wb20vYXNmLwoKSSB1bmRlcnN0YW5kIHRoZXJlIGFyZSBpc3N1ZXMgaWYgd2UgYXV0by1kZXBsb3kgZnJvbSBicmFuY2hlcywgc2luY2Ugd2UgaGF2PQplPTIwCm5vIHZlcnNpb24gc2NoZW1lIHRvIG1ha2UgYSBkaWZmZXJlbmNlIGluIHRoZSBTTkFQU0hPVCByZXBvIGZvciBldmVyeSBicmFuYz0KaDo9MjAKdGhhdCdzIHdoeSBJIHJlc3RyaWN0IHRoZSBhdXRvLWRlcGxveW1lbnQgdG8gbWFzdGVyLgoKQnV0IGl0J3MgdGhlIGZpcnN0IHRpbWUgSSBoZWFyIGFib3V0IGlzc3VlcyB3aXRoIGEgU05BUFNIT1QgcmVwbyB0byBtYWtlPTIwClNOQVBTSE9UcyBwdWJsaWMgKGFzIFNOQVBTSE9UcywgaWUgYWR2ZXJ0aXplZCBhcyBsYXRlc3QgJiBub24tcmVwcm9kdWNpYmxlLD0KIHRvPTIwCnRlc3QgZWFybHkpOiB0aGUgb25seSBpc3N1ZXMgSSB1bmRlcnN0b29kIHdhcyBhYm91dCBwZW9wbGUgd2FudGluZyB0byBtYWtlPQo9MjAKdGhlc2UgcmVwcm9kdWNpYmxlLCB0aGVuIGF2b2lkIFNOQVBTSE9UIGFuZCBjYWxsIGl0ICJjb250aW51b3VzIGRlbGl2ZXJ5Ij0yMAood2hpY2ggSU1ITyBhZGRzIGEgbG90IG9mIHVudXNlZCByZWxlYXNlcyB0aGF0IHlvdSBjYW4ndCBkZWxldGUgaWYgeW91IGRvbic9CnQ9MjAKbWFzdGVyIHByZWNpc2VseSB3aG8geW91ciBjb25zdW1lcnMgYXJlOiB0aGVuIGluIHN1Y2ggb3BlbiBzaXR1YXRpb24sIHlvdSBnPQpldD0yMAphIGJsb2F0ZWQgcmVwby4uLikKClJlZ2FyZHMsCgpIZXJ2PUMzPUE5CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4MTItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIERlYyAyMiAwNzowODoyNyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4MTItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQTkyNUUxMDA2NAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDIyIERlYyAyMDE3IDA3OjA4OjI3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDMzNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMiBEZWMgMjAxNyAwNzowODoyNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDI2NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMiBEZWMgMjAxNyAwNzowODoyNiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQyMzkgaW52b2tlZCBieSB1aWQgOTkpOyAyMiBEZWMgMjAxNyAwNzowODoyNiAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAyMiBEZWMgMjAxNyAwNzowODoyNiArMDAwMApSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChMRmJuLTEtOTAyOS05My53ODYtMjM4LmFiby53YW5hZG9vLmZyIFs4Ni4yMzguMTYuOTNdKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgNTc4NjkxQTAwOUM7CglGcmksIDIyIERlYyAyMDE3IDA3OjA4OjI2ICswMDAwIChVVEMpCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCb3V0ZW15IDxoYm91dGVteUBhcGFjaGUub3JnPgpUbzogYW5ub3VuY2VAbWF2ZW4uYXBhY2hlLm9yZywgdXNlcnNAbWF2ZW4uYXBhY2hlLm9yZwpDYzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogW0FOTl0gQXBhY2hlIE1hdmVuIERveGlhIDEuOCBSZWxlYXNlZApEYXRlOiBGcmksIDIyIERlYyAyMDE3IDA4OjA4OjE5ICswMTAwCk1lc3NhZ2UtSUQ6IDwyODA1Nzk4LmRZblNiV2Q2ZjRAZ2lnYT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN0JpdApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9InVzLWFzY2lpIgoKVGhlIEFwYWNoZSBNYXZlbiB0ZWFtIGlzIHBsZWFzZWQgdG8gYW5ub3VuY2UgdGhlIHJlbGVhc2Ugb2YgdGhlIEFwYWNoZSBNYXZlbiAKRG94aWEsIHZlcnNpb24gMS44ICh3aGljaCB3aWxsIGJlIHVzZWQgaW4gYSBmdXR1cmUgMy43IHZlcnNpb24gb2YgbWF2ZW4tc2l0ZS0KcGx1Z2luKQogCkRveGlhIGlzIGEgY29udGVudCBnZW5lcmF0aW9uIGZyYW1ld29yayB0aGF0IHByb3ZpZGVzIHBvd2VyZnVsIHRlY2huaXF1ZXMgZm9yIApnZW5lcmF0aW5nIHN0YXRpYyBhbmQgZHluYW1pYyBjb250ZW50LCBzdXBwb3J0aW5nIGEgdmFyaWV0eSBvZiBtYXJrdXAgCmxhbmd1YWdlcy4KIApodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZG94aWEvZG94aWEvCiAKWW91IGNhbiBkb3dubG9hZCB0aGUgYXBwcm9wcmlhdGUgc291cmNlcyBldGMuIGZyb20gdGhlIGRvd25sb2FkIHBhZ2U6CiAKaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2RveGlhL2RveGlhL2Rvd25sb2FkLmNnaQogICAgClJlbGVhc2UgTm90ZXMgLSBNYXZlbiBEb3hpYSAtIFZlcnNpb24gMS44CgoqKiBCdWcKICAgICogW0RPWElBLTUyM10gLSBBbXBlcnNhbmRzIGFmdGVyIGhhc2ggaW4gbWFya2Rvd24gbGluayBzeW50YXggYXJlIG5vdyAKdGhyb3dpbmcgcGFyc2UgZXJyb3JzLgogICAgKiBbRE9YSUEtNTQzXSAtIG1hdmVuLWRveGlhLW1hcmtkb3duIGZhaWxzIGluIHBhcmFsbGVsIGJ1aWxkcwogICAgKiBbRE9YSUEtNTQ2XSAtIERveGlhVXRpbHMjZW5jb2RlSWQoKSBwcm9kdWNlcyBpbnZhbGlkIGlkCiAgICAqIFtET1hJQS01NDddIC0gVXBncmFkZSB0byBNYXZlbiBQYXJlbnQgMzAKICAgICogW0RPWElBLTU1NF0gLSBQYXJzaW5nIE1hcmtkb3duIGRvY3VtZW50cyBjYW4gaGFuZyBzaXRlIGdlbmVyYXRpb246IApzd2l0Y2ggcGFyc2VyIGZyb20gUGVnZG93biB0byBGbGV4bWFyawogICAgKiBbRE9YSUEtNTU5XSAtIERveGlhIG1hY3JvIGZhaWxzIHdpdGggbWFya2Rvd24gaGVhZGVycyBwYXN0IGxldmVsIDQKICAgICogW0RPWElBLTU2NF0gLSBhdm9pZCBudW1iZXJpbmcgVE9DIGVudHJ5IGFuZCBmaXggaXRlbSBudW1iZXJpbmcgd2hpY2ggaGFzIAoyIGRvdHMKCioqIERlcGVuZGVuY3kgdXBncmFkZQogICAgKiBbRE9YSUEtNTY2XSAtIFVwZGF0ZSBkZXBlbmRlbmNlcyB0byBsYXRlc3QgdmVyc2lvbgoKKiogSW1wcm92ZW1lbnQKICAgICogW0RPWElBLTUwNF0gLSBVcGRhdGUgdG8gbGF0ZXN0IFBsZXh1cyBDb250YWluZXIKICAgICogW0RPWElBLTUyMl0gLSBNYWtlIHNuaXBwZXQgbWFjcm8gbGVzcyBwZXJtaXNzaXZlIG9mIGlzc3VlcwogICAgKiBbRE9YSUEtNTQ0XSAtIFNldCBkb2N1bWVudCB0YWcgb24gY2hhcHRlciBoZWFkZXIgZm9yIEZPIGZvcm1hdAogICAgKiBbRE9YSUEtNTUwXSAtIENoYW5nZSBiZWhhdmlvciBvZiBIdG1sVG9vbHMjZW5jb2RlSWQoKQogICAgKiBbRE9YSUEtNTUzXSAtIFJlcGxhY2UgcGVnZG93biBkdWUgdG8gZGVwcmVjYXRpb24gYW5kIGVuZCBvZiBsaWZlIG5vdGljZQogICAgKiBbRE9YSUEtNTU4XSAtIFVwZ3JhZGUgdG8gQ29tbW9ucyBMYW5nIDMKICAgICogW0RPWElBLTU2NV0gLSBpbXByb3ZlIERveGlhIGRvY3VtZW50IGRlc2NyaXB0b3IgZG9jdW1lbnRhdGlvbgoKKiogVGFzawogICAgKiBbRE9YSUEtNTQxXSAtIERvY3VtZW50IGRhdGUoKSBBUEkgYXMgKmxhc3QgbW9kaWZpZWQqIG9yICpjcmVhdGVkKiBkYXRlCiAgICAqIFtET1hJQS01NDhdIC0gVXBncmFkZSBQbGV4dXMgVXRpbHMgdG8gMy4wLjI0CiAgICAqIFtET1hJQS01NDldIC0gRGVwcmVjYXRlIGFuZCByZXBsYWNlIERveGlhVXRpbHMjYnl0ZVRvSGV4KCkgd2l0aCAKU3RyaW5nI2Zvcm1hdCgpCiAgICAqIFtET1hJQS01NjNdIC0gc3dpdGNoIHRvIEdpdAogICAgCkVuam95LAogICAgCi1UaGUgQXBhY2hlIE1hdmVuIHRlYW0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDMxOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gT2N0IDIzIDE2OjI0OjQyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDMxOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBEMzY1RDEwQ0MwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMjMgT2N0IDIwMTcgMTY6MjQ6NDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1NjE2NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMyBPY3QgMjAxNyAxNjoyNDo0MiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTYwODYgaW52b2tlZCBieSB1aWQgNTAwKTsgMjMgT2N0IDIwMTcgMTY6MjQ6NDIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NjA3NSBpbnZva2VkIGJ5IHVpZCA5OSk7IDIzIE9jdCAyMDE3IDE2OjI0OjQyIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAyMyBPY3QgMjAxNyAxNjoyNDo0MiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDZFRTQ1QzA2MDgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDIzIE9jdCAyMDE3IDE2OjI0OjQxICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgOWdfUUZBdHFUOFRKIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAyMyBPY3QgMjAxNyAxNjoyNDozOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDUuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjddKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMTI5RkM1RjIzOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMjMgT2N0IDIwMTcgMTY6MjQ6MzggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkNDAgd2l0aCBNRQoJaWQgUjRRWDF3MDBwMjBVZmR5MDM0UVhwNTsgTW9uLCAyMyBPY3QgMjAxNyAxODoyNDozMiArMDIwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBNb24sIDIzIE9jdCAyMDE3IDE4OjI0OjMyICswMjAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IG1pZ3JhdGluZyBzb21lIGNvZGUgdG8gR2l0CkRhdGU6IE1vbiwgMjMgT2N0IDIwMTcgMTg6MjQ6MzEgKzAyMDAKTWVzc2FnZS1JRDogPDI4Mjc2ODEucVVnN0J6ZmwyUkBnaWdhPgpJbi1SZXBseS1UbzogPENBRk5DVS05MzFCZ18tblltZFVUTU5OelRvTWlpLStUek9LdHk3ZUI2UGoxYkpNcjlYQUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPDMwMDY0NzEuR3JTRmpTSmpHWEBnaWdhPiA8MTUwODczMjk4Lm5VQ2xnUm45cWRAZ2lnYT4gPENBRk5DVS05MzFCZ18tblltZFVUTU5OelRvTWlpLStUek9LdHk3ZUI2UGoxYkpNcjlYQUBtYWlsLmdtYWlsLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpncmVhdCwgdGhhbmsgeW91IQp3ZSdsbCBkaXNjdXNzIGl0IG9uIHRodXJzZGF5LCB3aGVuIHdlIG1lZXQgOikKClJlZ2FyZHMsCgpIZXJ2PUU5CgpMZSBsdW5kaSAyMyBvY3RvYnJlIDIwMTcsIDEwOjM0OjI5IENFU1QgQXJuYXVkIEg9RTlyaXRpZXIgYSA9RTljcml0IDoKPiBJIGNhbiBoZWxwIHlvdSBvbiB0aGlzCj49MjAKPiBPbiBNb24sIE9jdCAyMywgMjAxNyBhdCAxMjoxNSBBTSwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj49MjAKPiB3cm90ZToKPiA+IEknbSBoYXBweSB0byBkbyB3aGF0IEknbSBhYmxlIHRvIGRvCj4gPj0yMAo+ID4gZm9yIHRoZSBuZXh0IG9uZXMsIEkgZmVhciBJIGRvbid0IGtub3cgaG93IHRvIHByZXBhcmUgdGFyZ2V0IGdpdCByZXBvczoKPiA+IEknbGwKPiA+IG5lZWQgaGVscAo+ID49MjAKPiA+IFJlZ2FyZHMsCj4gPj0yMAo+ID4gSGVydj1FOQo+ID49MjAKPiA+IExlIGRpbWFuY2hlIDIyIG9jdG9icmUgMjAxNywgMjM6MjY6NDQgQ0VTVCBPbGl2aWVyIExhbXkgYSA9RTljcml0IDoKPiA+ID4gR3JlYXQhCj4gPiA+IFRoYW5rcyB0byB0YWtlIGNhcmUgb2YgdGhpcyEKPiA+ID49MjAKPiA+ID4gT24gTW9uLCAyMyBPY3QgMjAxNyBhdCA3OjAwIGFtLCBBcm5hdWQgSD1FOXJpdGllciA8YWhlcml0aWVyQGdtYWlsLmNvPQptPgo+ID49MjAKPiA+IHdyb3RlOgo+ID4gPiA+IEF3ZXNvbWUgIQo+ID4gPiA+PTIwCj4gPiA+ID4gT24gU3VuLCBPY3QgMjIsIDIwMTcgYXQgMTI6MDAgUE0sIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLj0Kb3JnCj4gPiA+ID49MjAKPiA+ID4gPiB3cm90ZToKPiA+ID4gPiA+IEdyZWF0IGpvYiwgdGhhbmsgeW91IGFsbCEKPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBSb2JlcnQKPiA+ID4gPiA+PTIwCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gT24gU3VuLCAyMiBPY3QgMjAxNyAxMTo0NTowMiArMDIwMCwgSGVydj1FOSBCT1VURU1ZIDwKPiA+PTIwCj4gPiBoZXJ2ZS5ib3V0ZW15QGZyZWUuZnIKPiA+PTIwCj4gPiA+ID4gPiB3cm90ZToKPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBtaWdyYXRpb24gZG9uZTogb25seSByZW1haW5pbmcgdGFzayBpcyB0byByZW5hbWUgInRydW5rIiBIRUFEIGJyYT0KbmNoCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4+IGluaGVyaXRlZAo+ID4gPiA+ID4+IGZyb20gc3ZuIGhpc3RvcnkgdG8gIm1hc3RlciIgKGFuZCBldmVudHVhbGx5IGFkZCBhIE1PVkVEX1RPX0dJVAo+ID49MjAKPiA+IGZpbGUgaW4KPiA+PTIwCj4gPiA+ID4gPj4gb3JpZ2luCj4gPiA+ID4gPj4gc3ZuKQo+ID4gPiA+ID4+PTIwCj4gPiA+ID4gPj4gVGhlIEFwYWNoZSBnaXQgaG9zdGluZyBwcm92aWRlZCBpcyBHaXRCb3gsIHVubGlrZSBwcmV2aW91cwo+ID4gPiA+ID4+IGNvbXBvbmVudAo+ID4gPiA+PTIwCj4gPiA+ID4gdGhhdAo+ID4gPiA+PTIwCj4gPiA+ID4gPj4gdXNlCj4gPiA+ID4gPj4gR2l0LVdpcDogd2l0aCBHaXRCb3gsIHRoZSBjb250ZW50IGlzIG1vZGlmaWFibGUgYm90aCBhdCBBU0YgZ2l0Cj4gPiA+ID4gPj4gcmVwbwo+ID4gPiA+ID4+IGFuZAo+ID4gPiA+ID4+IEdpdEh1Ygo+ID4gPiA+ID4+IG1pcnJvcgo+ID4gPiA+ID4+IFlvdSdsbCBuZWVkIHNvbWUgY29uZmlnIG9uIHlvdXIgc2lkZSBpZiB5b3Ugd2FudCB0byBiZSBhYmxlIHRvIHA9CnVzaAo+ID4gPiA+ID4+IGRpcmVjdGx5IHRvCj4gPiA+ID4gPj4gR2l0SHViOiBzZWUgaHR0cHM6Ly9naXRib3guYXBhY2hlLm9yZy9zZXR1cC8KPiA+ID4gPiA+Pj0yMAo+ID4gPiA+ID4+IFRoYW5rcyB0byBpbmZyYSBDaHJpcyBMYW1iZXJ0dXMgZm9yIGRvaW5nIHRoZSBqb2IgZm9yIHVzCj4gPiA+ID4gPj49MjAKPiA+ID4gPiA+PiBSZWdhcmRzLAo+ID4gPiA+ID4+PTIwCj4gPiA+ID4gPj4gSGVydj1FOQo+ID4gPiA+ID4+PTIwCj4gPiA+ID4gPj4gTGUgbWFyZGkgMTAgb2N0b2JyZSAyMDE3LCAxODo0MjoyNiBDRVNUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaT0KdCA6Cj4gPiA+ID4gPj4+IGppcmEgaXNzdWUgY3JlYXRlZDoKPiA+ID4gPiA+Pj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9JTkZSQS0xNTI1Mwo+ID4gPiA+ID4+Pj0yMAo+ID4gPiA+ID4+PiBSZWdhcmRzLAo+ID4gPiA+ID4+Pj0yMAo+ID4gPiA+ID4+PiBIZXJ2PUU5Cj4gPiA+ID4gPj4+PTIwCj4gPiA+ID4gPj4+IExlIHNhbWVkaSA3IG9jdG9icmUgMjAxNywgMTI6MzI6MDAgQ0VTVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcj0KaXQgOgo+ID4gPiA+ID4+PiA+IEkgd3JvdGUgYSBsaXR0bGUgc2hlbGwgc2NyaXB0IHRvIGNoZWNrIGRpZmZlcmVuY2VzIGJldHdlZW4gdGE9CmdzCj4gPj0yMAo+ID4gaW4KPiA+PTIwCj4gPiA+ID4gc3ZuCj4gPiA+ID49MjAKPiA+ID4gPiA+Pj4gYW5kCj4gPiA+ID4gPj4+PTIwCj4gPiA+ID4gPj4+ID4gZ2l0IGNoZWNrb3V0Cj4gPiA+ID4gPj4+ID4gdGhlIG9ubHkgZGlmZmVyZW5jZXMgSSBmb3VuZCBmb3IgdGhlIDYgZ2l0IHJlcG9zIGFyZToKPiA+ID4gPiA+Pj4gPiAxLiBlbXB0eSBkaXJzICh3aGljaCBleGlzdCBpbiBzdm4gYnV0IGFyZSBwcnVuZWQgaW4gZ2l0KQo+ID4gPiA+ID4+PiA+IDIuIG9uZSBzdHJhZ2UgY2FzZSBpbiBlbmZvcmNlci0xLjIgd2hlcmUgYSBmZXcgZmlsZXMgc2VlbSB0bwo+ID4gPiA+ID4+PiA+IGhhdmUKPiA+ID4gPiA+Pj49MjAKPiA+ID4gPiA+Pj4gbmV3bGluZXMKPiA+ID4gPiA+Pj49MjAKPiA+ID4gPiA+Pj4gPiBpc3N1ZXMKPiA+ID4gPiA+Pj4gPj0yMAo+ID4gPiA+ID4+PiA+IHRvIG1lLCB0aGlzIGNhbiBiZSBzYWZlbHkgaWdub3JlZAo+ID4gPiA+ID4+PiA+PTIwCj4gPiA+ID4gPj4+ID4gaWYgbm9ib2R5IG9iamVjdHMsIGluIDcyaCwgSSdsbCBjcmVhdGUgSU5GUkEgamlyYSBpc3N1ZSB0bwo+ID4gPiA+ID4+PiA+IHN3aXRjaAo+ID4gPiA+ID4+PiA+IGZvbGxvd2luZwo+ID4gPiA+ID4+PiA+IDYgY29tcG9uZW50cyBmcm9tIHN2biB0byB0aGUgY3VycmVudCBnaXQgbWlycm9yOgo+ID4gPiA+ID4+PiA+IC0gRG94aWEgY29yZQo+ID4gPiA+ID4+PiA+IC0gRG94aWEgU2l0ZXRvb2xzCj4gPiA+ID4gPj4+ID4gLSBFbmZvcmNlcgo+ID4gPiA+ID4+PiA+IC0gSnhyCj4gPiA+ID4gPj4+ID4gLSBQbHVnaW4gVG9vbHMKPiA+ID4gPiA+Pj4gPiAtIFJlbGVhc2UKPiA+ID4gPiA+Pj4gPj0yMAo+ID4gPiA+ID4+PiA+PTIwCj4gPiA+ID4gPj4+ID4gUmVnYXJkcywKPiA+ID4gPiA+Pj4gPj0yMAo+ID4gPiA+ID4+PiA+IEhlcnY9RTkKPiA+ID4gPiA+Pj4gPj0yMAo+ID4gPiA+ID4+PiA+IExlIHNhbWVkaSA3IG9jdG9icmUgMjAxNywgMDQ6NDc6MzIgQ0VTVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTk9CmNyaXQgOgo+ID4gPiA+ID4+PiA+ID4gcmUtcmVhZGluZyBvdXIgbWlncmF0aW9uIHByb2Nlc3MgZG9jdW1lbnRhdGlvbiBbMV0sIEkgc2VlCj4gPj0yMAo+ID4gImNoZWNrCj4gPj0yMAo+ID4gPiA+ID4+PiA+ID4gZXNwZWNpYWxseQo+ID4gPiA+ID4+PiA+ID4gYmVoYXZpb3VyIG9uIGNoZWNraW5nIG91dCB0YWciCj4gPiA+ID4gPj4+ID4gPj0yMAo+ID4gPiA+ID4+PiA+ID4gSSBzdXBwb3NlIHRoYXQgd2UgY291bGQgY29tcGFyZSBjb250ZW50IGJldHdlZW4gZ2l0IGNoZWNrb3V0Cj4gPj0yMAo+ID4gYW5kCj4gPj0yMAo+ID4gPiA+IHN2bgo+ID4gPiA+PTIwCj4gPiA+ID4gPj4+ID4gPiBjaGVja291dCBmb3IgSEVBRCBhbmQgZXZlcnkgcGFzdCByZWxlYXNlCj4gPiA+ID4gPj4+ID4gPj0yMAo+ID4gPiA+ID4+PiA+ID4gZGlkIHNvbWVib2R5IHByZXBhcmUgYSBzaGVsbCBzY3JpcHQgZm9yIHRoYXQ/Cj4gPiA+ID4gPj4+ID4gPj0yMAo+ID4gPiA+ID4+PiA+ID4gUmVnYXJkcywKPiA+ID4gPiA+Pj4gPiA+PTIwCj4gPiA+ID4gPj4+ID4gPiBIZXJ2PUU5Cj4gPiA+ID4gPj4+ID4gPj0yMAo+ID4gPiA+ID4+PiA+ID4gWzFdIGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvTUFWRU4vR2l0Cj4gPiA+ID4gPj4+ID4gPiArTWlncmF0aW9uI0dpdE1pZ3JhdGlvbi1NaWdyYXRpb25wcm9jZXNzZGVzY3JpcHRpb24KPiA+ID4gPiA+Pj4gPiA+PTIwCj4gPiA+ID4gPj4+ID4gPiBMZSB2ZW5kcmVkaSA2IG9jdG9icmUgMjAxNywgMDA6MzQ6MTEgQ0VTVCBIZXJ2PUU5IEJPVVRFTVkgYQo+ID49MjAKPiA+ID1FOWNyaXQgOgo+ID4gPiA+ID4+PiA+ID4gPiBncmVhdCwgdGhhbmsgeW91IGZvciB5b3VyIGhlbHAKPiA+ID4gPiA+Pj4gPiA+ID49MjAKPiA+ID4gPiA+Pj4gPiA+ID4gaW4gZmFjdCwgQUZBSUssIEFwYWNoZSBoYXMgYWxyZWFkeSBhdXRvbWF0aWMgc3ZuMmdpdCBleHBvPQpydHMKPiA+PTIwCj4gPiBbMV0KPiA+PTIwCj4gPiA+ID4gPj4+IHRoYXQKPiA+ID4gPiA+Pj49MjAKPiA+ID4gPiA+Pj4gPiA+ID4gYXJlCj4gPiA+ID4gPj4+ID4gPiA+IHRoZW4gbWlycm9yZWQgdG8gZ2l0aHViLgo+ID4gPiA+ID4+PiA+ID4gPiBUaGVuIHdlIGFscmVhZHkgaGF2ZToKPiA+ID4gPiA+Pj4gPiA+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRveGlhLwo+ID4gPiA+ID4+PiA+ID4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZG94aWEtc2l0ZXRvb2xzLwo+ID4gPiA+ID4+PiA+ID4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZW5mb3JjZXIvCj4gPiA+ID4gPj4+ID4gPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1qeHIvCj4gPiA+ID4gPj4+ID4gPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW4tdG9vbHMvCj4gPiA+ID4gPj4+ID4gPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1yZWxlYXNlLwo+ID4gPiA+ID4+PiA+ID4gPj0yMAo+ID4gPiA+ID4+PiA+ID4gPiBJIHN1cHBvc2UgdGhlc2UgY291bGQgYmUgdGhlIG5hdHVyYWwgdGFyZ2V0cy4KPiA+ID4gPiA+Pj4gPiA+ID4gQnV0IEkgZG9uJ3QgcmVhbGx5IHNlZSB3aGF0IGNoZWNrcyB0byBkbyBvbiB0aGVzZS4KPiA+ID4gPiA+Pj4gPiA+ID49MjAKPiA+ID4gPiA+Pj4gPiA+ID4gSSBzdXBwb3NlIHRoYXQgb25jZSB3ZSBhcmUgY29udmluY2VkIHRoaXMgY29udGVudCBpcyBvaywgPQp3ZQo+ID49MjAKPiA+IGNhbgo+ID49MjAKPiA+ID4gPiBhc2sKPiA+ID4gPj0yMAo+ID4gPiA+ID4+PiA+ID4gPiBpbmZyYQo+ID4gPiA+ID4+PiA+ID4gPiB0byBzd2l0Y2ggdGhlc2UgdG8gdGhlIGNhbm9uaWNhbCBzb3VyY2UgKGFuZCBkaXNhYmxlIHRoZQo+ID49MjAKPiA+IHN2bjJnaXQKPiA+PTIwCj4gPiA+ID4gPj4+ID4gPiA+IGV4cG9ydHMpCj4gPiA+ID4gPj4+ID4gPiA+PTIwCj4gPiA+ID4gPj4+ID4gPiA+IERvIHlvdSBzZWUgYW55IGlzc3VlIGluIHRoZXNlIHJlcG9zPwo+ID4gPiA+ID4+PiA+ID4gPj0yMAo+ID4gPiA+ID4+PiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+ID4+PiA+ID4gPj0yMAo+ID4gPiA+ID4+PiA+ID4gPiBIZXJ2PUU5Cj4gPiA+ID4gPj4+ID4gPiA+PTIwCj4gPiA+ID4gPj4+ID4gPiA+IFsxXSBodHRwOi8vZ2l0LmFwYWNoZS5vcmcvCj4gPiA+ID4gPj4+ID4gPiA+PTIwCj4gPiA+ID4gPj4+ID4gPiA+IExlIGpldWRpIDUgb2N0b2JyZSAyMDE3LCAxMTo0NToyMyBDRVNUIERlamFuIFN0b2phZGlub3ZpYz0KIGEKPiA+ID4gPj0yMAo+ID4gPiA+ID1FOWNyaXQgOgo+ID4gPiA+ID4+PiA+ID4gPiA+IENvdW50IG1lIGluIChmb3IgYm90aCBhY3R1YWwgbWlncmF0aW9uIGFuZCByZWxhdGVkIHRhc2s9CnMpLgo+ID4gPiA+ID4+PiA+ID4gPiA+PTIwCj4gPiA+ID4gPj4+ID4gPiA+ID4gTXkgd2VhcG9uIG9mIGNob2ljZSBmb3IgU1ZOIC0tPj5HSVQgd291bGQgYmU6Cj4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL25pcnZkcnVtL3N2bjJnaXQgKEkgbWFuYWdlZCB0byBtb3ZlCj4gPj0yMAo+ID4gZG96ZW4KPiA+PTIwCj4gPiA+ID4gb2YKPiA+ID4gPj0yMAo+ID4gPiA+ID4+PiA+ID4gPiA+IHJlcG9zCj4gPiA+ID4gPj4+ID4gPiA+ID4gZmV3Cj4gPiA+ID4gPj4+ID4gPiA+ID4geWVhcnMgYWdvKS4KPiA+ID4gPiA+Pj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4+PiA+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4gPj4+ID4gPiA+ID4gRGVqYW4KPiA+ID4gPiA+Pj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4+PiA+ID4gPiA+IE9uIDIwMTctMTAtMDQgMDE6NDgsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUA9CmZyZWUuZnIKPiA+ID4gPiA+Pj49MjAKPiA+ID4gPiA+Pj4gd3JvdGU6Cj4gPiA+ID4gPj4+ID4gPiA+ID4gPiBJJ2QgbGlrZSB0byB3b3JrIG9uIFBsdWdpbiBUb29scyB3aXRoIGdpdAo+ID4gPiA+ID4+PiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+Pj4gPiA+ID4gPiA+IFdoaWxlIGF0IGl0LCBsb29raW5nIGF0IG91ciBwbGFuIFsxXSwgSSBzZWUgd2UgaGF2ZSBhCj4gPiA+ID4gPj4+ID4gPiA+ID4gPiBmZXcKPiA+ID4gPj0yMAo+ID4gPiA+IG90aGVyCj4gPiA+ID49MjAKPiA+ID4gPiA+Pj4gPiA+ID4gPiA+IGNvbXBvbmVudHMKPiA+ID4gPiA+Pj4gPiA+ID4gPiA+IHRoYXQgYXJlIHJlYWR5IHRvIG1pZ3JhdGU6Cj4gPiA+ID4gPj4+ID4gPiA+ID4gPiAtIERveGlhIGNvcmUKPiA+ID4gPiA+Pj4gPiA+ID4gPiA+IC0gRG94aWEgU2l0ZXRvb2xzCj4gPiA+ID4gPj4+ID4gPiA+ID4gPiAtIEVuZm9yY2VyCj4gPiA+ID4gPj4+ID4gPiA+ID4gPiAtIEp4cgo+ID4gPiA+ID4+PiA+ID4gPiA+ID4gLSBQbHVnaW4gVG9vbHMKPiA+ID4gPiA+Pj4gPiA+ID4gPiA+IC0gUmVsZWFzZQo+ID4gPiA+ID4+PiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+Pj4gPiA+ID4gPiA+IFdoYXQgY2hlY2tzIGFyZSByZXF1aXJlZCBiZWZvcmUgc3dpdGNoaW5nIHRoZXNlIDYKPiA+ID4gPiA+Pj4gPiA+ID4gPiA+IGNvbXBvbmVudHM/Cj4gPiA+ID4gPj4+ID4gPiA+ID4gPiBBbnkgdm9sdW50ZWVyPwo+ID4gPiA+ID4+PiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+Pj4gPiA+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4gPj4+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4+PiA+ID4gPiA+ID4gSGVydj1DMz1BOQo+ID4gPiA+ID4+PiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+Pj4gPiA+ID4gPiA+IFsxXQo+ID4gPiA+ID4+PiA+ID4gPiA+ID4gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9HaXQrCj4gPj0yMAo+ID4gTWlncmF0Cj4gPj0yMAo+ID4gPiA+ID4+PiBpb24KPiA+ID4gPiA+Pj49MjAKPiA+ID4gPiA+Pj4gPiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID49MjAKPiA+ID4gPiA+Pj4gLS0tLS0tCj4gPiA+ID4gPj4+PTIwCj4gPiA+ID4gPj4+ID4gPiA+ID4gPiAtLQo+ID4gPiA+ID4+PiA+ID4gPiA+ID4gLQo+ID4gPiA+ID4+PiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS49Cm9yZwo+ID49MjAKPiA+ID4gPiA+Pj4gPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6Cj4gPiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj0yMAo+ID4gPiA+ID4+PiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID49MjAKPiA+ID4gPiA+Pj4gLS0tLS0tLS0KPiA+ID4gPiA+Pj49MjAKPiA+ID4gPiA+Pj4gPiA+ID4gPiAtCj4gPiA+ID4gPj4+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+Pj4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUuPQpvcmcKPiA+ID4gPiA+Pj4gPiA+ID49MjAKPiA+ID4gPiA+Pj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQo9MkQtLQo+ID4gPiA+ID4+Pj0yMAo+ID4gPiA+ID4+PiAtLS0tLS0tLS0KPiA+ID4gPiA+Pj49MjAKPiA+ID4gPiA+Pj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+Pj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4+PiA+ID49MjAKPiA+ID4gPiA+Pj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiA+ID4+Pj0yMAo+ID4gPiA+ID4+PiAtLS0tLS0tLS0KPiA+ID4gPiA+Pj49MjAKPiA+ID4gPiA+Pj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPj4+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPj4+ID49MjAKPiA+ID4gPiA+Pj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PTIwCj4gPiAtLS0tLS0tLQo+ID49MjAKPiA+ID4gPiA+Pj4gPiAtCj4gPiA+ID4gPj4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+Pj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPj4+PTIwCj4gPiA+ID4gPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID49MjAKPiA+IC0tLS0tLS0tLQo+ID49MjAKPiA+ID4gPiA+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4+PTIwCj4gPiA+ID4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj0yMAo+ID4gLS0tLS0tLS0tCj4gPj0yMAo+ID4gPiA+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID49MjAKPiA+IC0tLS0tLS0tLQo+ID49MjAKPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID49MjAKPiA+ID4gPiAtLQo+ID4gPiA+IC0tLS0tCj4gPiA+ID4gQXJuYXVkIEg9RTlyaXRpZXIKPiA+ID4gPiBodHRwOi8vYWhlcml0aWVyLm5ldAo+ID4gPiA+IE1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tCj4gPiA+ID4gVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcgo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODE3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBEZWMgMjIgMTE6MTk6MTggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODE3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDk0MTU1MTBBRDAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAyMiBEZWMgMjAxNyAxMToxOToxOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk0NDEzIGludm9rZWQgYnkgdWlkIDUwMCk7IDIyIERlYyAyMDE3IDExOjE5OjE4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NDMwMyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMiBEZWMgMjAxNyAxMToxOToxOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk0MjkyIGludm9rZWQgYnkgdWlkIDk5KTsgMjIgRGVjIDIwMTcgMTE6MTk6MTcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDIyIERlYyAyMDE3IDExOjE5OjE3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNUQwNDlDMERERQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjIgRGVjIDIwMTcgMTE6MTk6MTcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjI5OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjI5OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsCglLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFZSaGQ0WTZzSFNncyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCUZyaSwgMjIgRGVjIDIwMTcgMTE6MTk6MTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDA5LnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTMxXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDk1MkZBNUYzNjcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDIyIERlYyAyMDE3IDExOjE5OjE1ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDY5IHdpdGggTUUKCWlkIG96SzgxdzAwQjIwVWZkeTAzeks4aGc7IEZyaSwgMjIgRGVjIDIwMTcgMTI6MTk6MDggKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogRnJpLCAyMiBEZWMgMjAxNyAxMjoxOTowOCArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gUERGIFBsdWdpbiB2ZXJzaW9uIDEuNApEYXRlOiBGcmksIDIyIERlYyAyMDE3IDEyOjE5OjA4ICswMTAwCk1lc3NhZ2UtSUQ6IDwyODc1MDkzLlUwbkY0SjRES0pAZ2lnYT4KSW4tUmVwbHktVG86IDxBTTRQUjA4TUIxMjE5NDI3OUIzQzgyRDFBNjc2RDFFNEVGRjAyMEBBTTRQUjA4TUIxMjE5LmV1cnByZDA4LnByb2Qub3V0bG9vay5jb20+ClJlZmVyZW5jZXM6IDwzMTExMDMyLkV0RmVVMUFsUHBAZ2lnYT4gPEFNNFBSMDhNQjEyMTk0Mjc5QjNDODJEMUE2NzZEMUU0RUZGMDIwQEFNNFBSMDhNQjEyMTkuZXVycHJkMDgucHJvZC5vdXRsb29rLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgp0aGFua3MgZm9yIHRoZSBmZWVkYmFjazogZ3JlYXRseSBhcHByZWNpYXRlZAoKTGUgdmVuZHJlZGkgMjIgZD1FOWNlbWJyZSAyMDE3LCAxMDozODo1MSBDRVQgQmVybmQgRWNrZW5mZWxzIGEgPUU5Y3JpdCA6Cj4gSGVsbG8sCj49MjAKPiAoTm90IGEgUmVsZWFzZSBzaG93c3RvcHBlciBJIGd1ZXNzKQp5ZXMsIGJ1dCBhIHJlY3VycmluZyBpc3N1ZTogcGVvcGxlIHNlZSBkb2N1bWVudGF0aW9uIGZpeGVzIHdoaWxlIHZvdGluZy4gQW49Cnk9MjAKaWRlYSBvbiBob3cgdG8gZ2V0IGZlZWRiYWNrL2ZpeGVzIGVhcmxpZXI/Cgo+PTIwCj4gVGhlcmUgaXMgc29tZSB0ZXh0IGFib3V0IG1hdmVuMyByZXBvcnQgc2hvcnRjb21pbmdzIHdoaWNoIGhhcyBhIGppcmEgbGluawo+IHdoaWNoIGlzIG1hcmtlZCBhcyBmaXhlZCwgbWF5YmUgdGhlIGRvY3VtZW50YXRpb24gbmVlZHMgYW4gdXBkYXRlLCB0b28/Ckkgc3VwcG9zZSB3ZSBjYW4gcmVtb3ZlIGV2ZXJ5dGhpbmcgYWJvdXQgaXNzdWVzIHdpdGggcGx1Z2luczogdGhpcyBpcyBmaXhlZD0KPTIwCihlaXRoZXIgZm9yIGEgbG9uZyB0aW1lLCBlaXRoZXIgaW4gdGhpcyByZWxlYXNlKQoKSSdsbCB0d2VhayB0aGUgZ2VuZXJhdGVkIHNpdGUgdG8gcmVtb3ZlIHRoaXMgb2xkIGluZm8gKGFuZCBnZXQgdGhlIGltcHJvdmVtPQplbnQ9MjAKd2l0aG91dCBibG9ja2luZyB0aGUgcmVsZWFzZSkuIEFuZCB3aGlsZSBhdCBpdCwgSSdsbCB1c2UgdGhlIG5ldyBGbHVpZG8gc2tpPQpuPTIwCndpdGggZWRpdCBmZWF0dXJlOiB0aGlzIHdpbGwgZ2l2ZSBvbmUgbW9yZSBvcHBvcnR1bml0eSB0byBoYXZlIGZlZWRiYWNrIDopCgo+PTIwCj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NUERGLTQxCj4gaHR0cHM6Ly9naXRib3guYXBhY2hlLm9yZy9yZXBvcy9hc2Y/cD0zRG1hdmVuLXBkZi1wbHVnaW4uZ2l0O2E9M0RibG9iO2Y9Cj0zRHNyYy9zaXRlCj4gL3hkb2MvZXhhbXBsZXMvY29uZmlndXJpbmctcmVwb3J0cy54bWwudm07aD0zRDFmY2ZiZDE3YTY5YTNjZWMxMzNhMmYwYTc3ZD0KZTU1YmMKPiA1OWU5MDA3YTtoYj0zRGQ3Y2VjNDU3MmZkYWVjYzBkNmUwNDM4Y2M3N2RiNGU1NTMxOWRjMDAKPj0yMAo+IEFsc28gdGhlIG9sZCBTVk4gdmVyc2lvbiBpcyBhdmFpbGFibGUgb24gR2l0L2dpdGh1YiBtaXJyb3JzLCBpdCBzaG91bGQgbWE9CnliZQo+IGhhdmUgYSBVUkwgdG8gdGhlIGdpdGJveCBSZXBvc2l0b3J5Pwo+PTIwCj4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL2Jsb2IvdHJ1bmsvbWF2ZW4tcGRmLXBsdWdpbi9NT1ZFRD0KX1RPCj4gX0dJVApvaywgSSdsbCBpbXByb3ZlIHRoZSBjb250ZW50IHRvIGluY2x1ZGUgYSBsaW5rIHRvIHRoZSBuZXcgbG9jYXRpb24KClJlZ2FyZHMsCgpIZXJ2PUU5Cgo+PTIwCj4gR3J1c3MKPiBCZXJuZAo+PTIwCj4gR3J1c3MKPiBCZXJuZAo+IC0tCj4gaHR0cDovL2Jlcm5kLmVja2VuZmVscy5uZXQKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEZyb206IEhlcnY9RTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+IFNlbnQ6IEZyaWRheSwgRGVjZW1iZXIgMjIsIDIwMTcgMTA6MTE6MzIgQU0KPiBUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0Cj4gU3ViamVjdDogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIFBERiBQbHVnaW4gdmVyc2lvbiAxLjQKPj0yMAo+IEhpLAo+PTIwCj4gV2Ugc29sdmVkIDEyIGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4gcHJvamVjdElkPTNEMTIzMTc2MjAmdmVyc2lvbj0zRDEyMzMzMzM4JnN0eWxlTmFtZT0zRFRleHQKPj0yMAo+IFRoZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlM0QlMjBNUERGJTIwQU5EJTI9CjBzdGF0Cj4gdXMgJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDCj49MjAKPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM4NS8KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzg1L29yZy9hcGFjaGUvCj4gbWF2ZW4vcGx1Z2lucy9tYXZlbi1wZGYtcGx1Z2luLzEuNC9tYXZlbi1wZGYtcGx1Z2luLTEuNC1zb3VyY2UtcmVsZWFzZS56aXAKPj0yMAo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IG1hdmVuLXBkZi1wbHVnaW4tMS40LXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOgo+IDg4ZDJkMjU0ZTY3NDkzOGIxOTdkZjZiMzdiNTRjNzVlYzgxN2ZjZjQKPj0yMAo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1wZGYtcGx1Z2luLUxBVEVTVC8KPj0yMAo+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCj49MjAKPiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+PTIwCj4gWyBdICsxCj4gWyBdICswCj4gWyBdIC0xCj49MjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MzA0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBPY3QgMjIgMDk6NDU6MTQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzA0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDJCM0FGMTA1NUYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAyMiBPY3QgMjAxNyAwOTo0NToxNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQyOTA2IGludm9rZWQgYnkgdWlkIDUwMCk7IDIyIE9jdCAyMDE3IDA5OjQ1OjEzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0Mjc3OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMiBPY3QgMjAxNyAwOTo0NToxMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQyNzY4IGludm9rZWQgYnkgdWlkIDk5KTsgMjIgT2N0IDIwMTcgMDk6NDU6MTMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDIyIE9jdCAyMDE3IDA5OjQ1OjEzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQUFDQTUxQTBBOEMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDIyIE9jdCAyMDE3IDA5OjQ1OjEyICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgRU02a2VKUVAzVzRSIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAyMiBPY3QgMjAxNyAwOTo0NToxMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDkuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMzFdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMzkxOTQ1RkQ2NwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjIgT2N0IDIwMTcgMDk6NDU6MTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMTcgd2l0aCBNRQoJaWQgUVpsMjF3MDBQMjBVZmR5MDNabDJIeTsgU3VuLCAyMiBPY3QgMjAxNyAxMTo0NTowMyArMDIwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBTdW4sIDIyIE9jdCAyMDE3IDExOjQ1OjAzICswMjAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ2M6IGNtbEBhcGFjaGUub3JnClN1YmplY3Q6IFJlOiBtaWdyYXRpbmcgc29tZSBjb2RlIHRvIEdpdApEYXRlOiBTdW4sIDIyIE9jdCAyMDE3IDExOjQ1OjAyICswMjAwCk1lc3NhZ2UtSUQ6IDwyOTIwMzYwLlFHR0VlT3hjYUNAZ2lnYT4KSW4tUmVwbHktVG86IDw1ODY5Nzk2Ljd2aTFQVHowbUpAZ2lnYT4KUmVmZXJlbmNlczogPDMwMDY0NzEuR3JTRmpTSmpHWEBnaWdhPiA8MTYwMDkxMC5HdGR2eE0xSzkxQGdpZ2E+IDw1ODY5Nzk2Ljd2aTFQVHowbUpAZ2lnYT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgptaWdyYXRpb24gZG9uZTogb25seSByZW1haW5pbmcgdGFzayBpcyB0byByZW5hbWUgInRydW5rIiBIRUFEIGJyYW5jaCBpbmhlcmk9CnRlZD0yMApmcm9tIHN2biBoaXN0b3J5IHRvICJtYXN0ZXIiIChhbmQgZXZlbnR1YWxseSBhZGQgYSBNT1ZFRF9UT19HSVQgZmlsZSBpbiBvcmk9Cmdpbj0yMApzdm4pCgpUaGUgQXBhY2hlIGdpdCBob3N0aW5nIHByb3ZpZGVkIGlzIEdpdEJveCwgdW5saWtlIHByZXZpb3VzIGNvbXBvbmVudCB0aGF0IHU9CnNlPTIwCkdpdC1XaXA6IHdpdGggR2l0Qm94LCB0aGUgY29udGVudCBpcyBtb2RpZmlhYmxlIGJvdGggYXQgQVNGIGdpdCByZXBvIGFuZCBHaT0KdEh1Yj0yMAptaXJyb3IKWW91J2xsIG5lZWQgc29tZSBjb25maWcgb24geW91ciBzaWRlIGlmIHlvdSB3YW50IHRvIGJlIGFibGUgdG8gcHVzaCBkaXJlY3RsPQp5IHRvPTIwCkdpdEh1Yjogc2VlIGh0dHBzOi8vZ2l0Ym94LmFwYWNoZS5vcmcvc2V0dXAvCgpUaGFua3MgdG8gaW5mcmEgQ2hyaXMgTGFtYmVydHVzIGZvciBkb2luZyB0aGUgam9iIGZvciB1cwoKUmVnYXJkcywKCkhlcnY9RTkKCkxlIG1hcmRpIDEwIG9jdG9icmUgMjAxNywgMTg6NDI6MjYgQ0VTVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiBqaXJhIGlzc3VlIGNyZWF0ZWQ6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9JTkZSQS0xNTI1Mwo+PTIwCj4gUmVnYXJkcywKPj0yMAo+IEhlcnY9RTkKPj0yMAo+IExlIHNhbWVkaSA3IG9jdG9icmUgMjAxNywgMTI6MzI6MDAgQ0VTVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiA+IEkgd3JvdGUgYSBsaXR0bGUgc2hlbGwgc2NyaXB0IHRvIGNoZWNrIGRpZmZlcmVuY2VzIGJldHdlZW4gdGFncyBpbiBzdm4gPQphbmQKPiA+IGdpdCBjaGVja291dAo+ID4gdGhlIG9ubHkgZGlmZmVyZW5jZXMgSSBmb3VuZCBmb3IgdGhlIDYgZ2l0IHJlcG9zIGFyZToKPiA+IDEuIGVtcHR5IGRpcnMgKHdoaWNoIGV4aXN0IGluIHN2biBidXQgYXJlIHBydW5lZCBpbiBnaXQpCj4gPiAyLiBvbmUgc3RyYWdlIGNhc2UgaW4gZW5mb3JjZXItMS4yIHdoZXJlIGEgZmV3IGZpbGVzIHNlZW0gdG8gaGF2ZSBuZXdsaT0KbmVzCj4gPiBpc3N1ZXMKPiA+PTIwCj4gPiB0byBtZSwgdGhpcyBjYW4gYmUgc2FmZWx5IGlnbm9yZWQKPiA+PTIwCj4gPiBpZiBub2JvZHkgb2JqZWN0cywgaW4gNzJoLCBJJ2xsIGNyZWF0ZSBJTkZSQSBqaXJhIGlzc3VlIHRvIHN3aXRjaAo+ID4gZm9sbG93aW5nCj4gPiA2IGNvbXBvbmVudHMgZnJvbSBzdm4gdG8gdGhlIGN1cnJlbnQgZ2l0IG1pcnJvcjoKPiA+IC0gRG94aWEgY29yZQo+ID4gLSBEb3hpYSBTaXRldG9vbHMKPiA+IC0gRW5mb3JjZXIKPiA+IC0gSnhyCj4gPiAtIFBsdWdpbiBUb29scwo+ID4gLSBSZWxlYXNlCj4gPj0yMAo+ID49MjAKPiA+IFJlZ2FyZHMsCj4gPj0yMAo+ID4gSGVydj1FOQo+ID49MjAKPiA+IExlIHNhbWVkaSA3IG9jdG9icmUgMjAxNywgMDQ6NDc6MzIgQ0VTVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiA+ID4gcmUtcmVhZGluZyBvdXIgbWlncmF0aW9uIHByb2Nlc3MgZG9jdW1lbnRhdGlvbiBbMV0sIEkgc2VlICJjaGVjawo+ID4gPiBlc3BlY2lhbGx5Cj4gPiA+IGJlaGF2aW91ciBvbiBjaGVja2luZyBvdXQgdGFnIgo+ID4gPj0yMAo+ID4gPiBJIHN1cHBvc2UgdGhhdCB3ZSBjb3VsZCBjb21wYXJlIGNvbnRlbnQgYmV0d2VlbiBnaXQgY2hlY2tvdXQgYW5kIHN2bgo+ID4gPiBjaGVja291dCBmb3IgSEVBRCBhbmQgZXZlcnkgcGFzdCByZWxlYXNlCj4gPiA+PTIwCj4gPiA+IGRpZCBzb21lYm9keSBwcmVwYXJlIGEgc2hlbGwgc2NyaXB0IGZvciB0aGF0Pwo+ID4gPj0yMAo+ID4gPiBSZWdhcmRzLAo+ID4gPj0yMAo+ID4gPiBIZXJ2PUU5Cj4gPiA+PTIwCj4gPiA+IFsxXSBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL0dpdAo+ID4gPiArTWlncmF0aW9uI0dpdE1pZ3JhdGlvbi1NaWdyYXRpb25wcm9jZXNzZGVzY3JpcHRpb24KPiA+ID49MjAKPiA+ID4gTGUgdmVuZHJlZGkgNiBvY3RvYnJlIDIwMTcsIDAwOjM0OjExIENFU1QgSGVydj1FOSBCT1VURU1ZIGEgPUU5Y3JpdCA6Cj4gPiA+ID4gZ3JlYXQsIHRoYW5rIHlvdSBmb3IgeW91ciBoZWxwCj4gPiA+ID49MjAKPiA+ID4gPiBpbiBmYWN0LCBBRkFJSywgQXBhY2hlIGhhcyBhbHJlYWR5IGF1dG9tYXRpYyBzdm4yZ2l0IGV4cG9ydHMgWzFdIHRoPQphdAo+ID4gPiA+IGFyZQo+ID4gPiA+IHRoZW4gbWlycm9yZWQgdG8gZ2l0aHViLgo+ID4gPiA+IFRoZW4gd2UgYWxyZWFkeSBoYXZlOgo+ID4gPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1kb3hpYS8KPiA+ID4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZG94aWEtc2l0ZXRvb2xzLwo+ID4gPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1lbmZvcmNlci8KPiA+ID4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tanhyLwo+ID4gPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW4tdG9vbHMvCj4gPiA+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXJlbGVhc2UvCj4gPiA+ID49MjAKPiA+ID4gPiBJIHN1cHBvc2UgdGhlc2UgY291bGQgYmUgdGhlIG5hdHVyYWwgdGFyZ2V0cy4KPiA+ID4gPiBCdXQgSSBkb24ndCByZWFsbHkgc2VlIHdoYXQgY2hlY2tzIHRvIGRvIG9uIHRoZXNlLgo+ID4gPiA+PTIwCj4gPiA+ID4gSSBzdXBwb3NlIHRoYXQgb25jZSB3ZSBhcmUgY29udmluY2VkIHRoaXMgY29udGVudCBpcyBvaywgd2UgY2FuIGFzawo+ID4gPiA+IGluZnJhCj4gPiA+ID4gdG8gc3dpdGNoIHRoZXNlIHRvIHRoZSBjYW5vbmljYWwgc291cmNlIChhbmQgZGlzYWJsZSB0aGUgc3ZuMmdpdAo+ID4gPiA+IGV4cG9ydHMpCj4gPiA+ID49MjAKPiA+ID4gPiBEbyB5b3Ugc2VlIGFueSBpc3N1ZSBpbiB0aGVzZSByZXBvcz8KPiA+ID4gPj0yMAo+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID49MjAKPiA+ID4gPiBIZXJ2PUU5Cj4gPiA+ID49MjAKPiA+ID4gPiBbMV0gaHR0cDovL2dpdC5hcGFjaGUub3JnLwo+ID4gPiA+PTIwCj4gPiA+ID4gTGUgamV1ZGkgNSBvY3RvYnJlIDIwMTcsIDExOjQ1OjIzIENFU1QgRGVqYW4gU3RvamFkaW5vdmljIGEgPUU5Y3JpdD0KIDoKPiA+ID4gPiA+IENvdW50IG1lIGluIChmb3IgYm90aCBhY3R1YWwgbWlncmF0aW9uIGFuZCByZWxhdGVkIHRhc2tzKS4KPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBNeSB3ZWFwb24gb2YgY2hvaWNlIGZvciBTVk4gLS0+PkdJVCB3b3VsZCBiZToKPiA+ID4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9uaXJ2ZHJ1bS9zdm4yZ2l0IChJIG1hbmFnZWQgdG8gbW92ZSBkb3plbiBvZgo+ID4gPiA+ID4gcmVwb3MKPiA+ID4gPiA+IGZldwo+ID4gPiA+ID4geWVhcnMgYWdvKS4KPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+ID4gRGVqYW4KPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBPbiAyMDE3LTEwLTA0IDAxOjQ4LCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gdz0Kcm90ZToKPiA+ID4gPiA+ID4gSSdkIGxpa2UgdG8gd29yayBvbiBQbHVnaW4gVG9vbHMgd2l0aCBnaXQKPiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gV2hpbGUgYXQgaXQsIGxvb2tpbmcgYXQgb3VyIHBsYW4gWzFdLCBJIHNlZSB3ZSBoYXZlIGEgZmV3IG90aGVyCj4gPiA+ID4gPiA+IGNvbXBvbmVudHMKPiA+ID4gPiA+ID4gdGhhdCBhcmUgcmVhZHkgdG8gbWlncmF0ZToKPiA+ID4gPiA+ID4gLSBEb3hpYSBjb3JlCj4gPiA+ID4gPiA+IC0gRG94aWEgU2l0ZXRvb2xzCj4gPiA+ID4gPiA+IC0gRW5mb3JjZXIKPiA+ID4gPiA+ID4gLSBKeHIKPiA+ID4gPiA+ID4gLSBQbHVnaW4gVG9vbHMKPiA+ID4gPiA+ID4gLSBSZWxlYXNlCj4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+IFdoYXQgY2hlY2tzIGFyZSByZXF1aXJlZCBiZWZvcmUgc3dpdGNoaW5nIHRoZXNlIDYgY29tcG9uZW50cz8KPiA+ID4gPiA+ID4gQW55IHZvbHVudGVlcj8KPiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gSGVydj1DMz1BOQo+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiBbMV0KPiA+ID4gPiA+ID4gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9HaXQrTWlncmF0aW9uCj4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KPTJELS0KPiA+ID4gPiA+ID4gLS0KPiA+ID4gPiA+ID4gLQo+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0tCj4gPiA+ID4gPiAtCj4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+PTIwCj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KPTJELQo+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj0yMAo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM4ODMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IFNlcCAgNyAwNzoyNjo0NSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM4ODMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMjRGQkUxQTE0MgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsICA3IFNlcCAyMDE3IDA3OjI2OjQ1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTA1MjcgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBTZXAgMjAxNyAwNzoyNjo0NCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTA0NTggaW52b2tlZCBieSB1aWQgNTAwKTsgNyBTZXAgMjAxNyAwNzoyNjo0NCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUwNDQ1IGludm9rZWQgYnkgdWlkIDk5KTsgNyBTZXAgMjAxNyAwNzoyNjo0NCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMDcgU2VwIDIwMTcgMDc6MjY6NDQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBBMEFEMTFBNkUzMAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgIDcgU2VwIDIwMTcgMDc6MjY6NDMgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMS40ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xLjQgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglGUkVFTUFJTF9SRVBMWT0xLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMSwgVVJJQkxfQkxPQ0tFRD0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBwakFTakppQ1RaelkgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsICA3IFNlcCAyMDE3IDA3OjI2OjM4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtaW8wLWYxODIuZ29vZ2xlLmNvbSAobWFpbC1pbzAtZjE4Mi5nb29nbGUuY29tIFsyMDkuODUuMjIzLjE4Ml0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA2NjQ3MDVGNUZECglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAgNyBTZXAgMjAxNyAwNzoyNjozOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1pbzAtZjE4Mi5nb29nbGUuY29tIHdpdGggU01UUCBpZCBpMTRzbzIyNTA4MjRpb2UuMgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDA3IFNlcCAyMDE3IDAwOjI2OjM4IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1mcm9tOmNvbnRlbnQtdHJhbnNmZXItZW5jb2Rpbmc6bWltZS12ZXJzaW9uOmRhdGU6c3ViamVjdDptZXNzYWdlLWlkCiAgICAgICAgIDpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOnRvOwogICAgICAgIGJoPTY4NEZ3aytuRWVFSXRkL2hGVkhVaDkySWExNXFYZzA0NWQ2M2NuNCtmK0U9OwogICAgICAgIGI9TjY4L1poMFB5VHdPYnVORFVrSFV2NGZjb1VjZStiLzcyZ1M1ai9tYTlRNmFaZUJuZEJCZ2hUWUhGYWlLYkwwOGs5CiAgICAgICAgIGJTSmxiMlBKOVZ5azhLaWF0cENyS1RaSVRqM3E1RitickI0blc4QkY4OGFkRXBPK1hWQTEralFsd3NBNGVjWk9rQ1NyCiAgICAgICAgIGtBa1kxTmlVZFJDTldGS0t4by96V3ptY0U2OHM0UWVEMWtHUlQ3eXk2Zy9vaWhrMVRQajJQd3hrQTF0Y0w3Sk5rdjcrCiAgICAgICAgIHN0ekFkNDRxV0dWY2pGY1Bsd2FVdlBxVkRVSnYrWUlsRGkxelRSOElQNURtOGZhK2dTdGV5TDZUZ3lPWlZRYlZiaE1zCiAgICAgICAgIEhNTWt4RjlBNFFOZ3BCejBkZDhzcnAyUllCTUsyOXVMTldYUTJSZGdDdDI4U0VZU1c4VFpQL3ZyNE1UbUpTcGFNTVI0CiAgICAgICAgIGloeEE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOmZyb206Y29udGVudC10cmFuc2Zlci1lbmNvZGluZzptaW1lLXZlcnNpb246ZGF0ZQogICAgICAgICA6c3ViamVjdDptZXNzYWdlLWlkOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86dG87CiAgICAgICAgYmg9Njg0RndrK25FZUVJdGQvaEZWSFVoOTJJYTE1cVhnMDQ1ZDYzY240K2YrRT07CiAgICAgICAgYj1kVFB5QlpIYXhYMTFXRlZlQk5FZkRhOXhXeFNqNDdEMEQ3bUVRUEd4amJyaTk2d3pHcDE4UFdGdC9vWVVrcXcraEgKICAgICAgICAgQ1JUM1BvYmJGM290K2V0YlhDK1daNllPRTZIaTlhckhURGRGRzBuU3pJWXJURUQ2aWRTR2F4clFDcWgzODNxc2w0bmEKICAgICAgICAgZWhXb2RaNmFCNkZCUkRSaldZQis0aGpYczlpaDRHNExPalFWRnMzdHB4S0FacGZYVXgzcXQra1lRRXE5S1JWelJ2THQKICAgICAgICAgYm16RG1NemZqSHI4d3BLOVFiQml1VllCWjd6VFJqRFFqWnNybkE0dTVacmIwRHRIQUx4dWg1R2xaUllWTDlCRDQxR2sKICAgICAgICAgVUVjRTZheHFGNnpPd3ZubnhsU2hTK3MxTm1hTnJ1dFlwaFRTWm1uenYzanVuZ1NzM2ZuOGFFR3dhQ2cwOHZ0Rjh3NlkKICAgICAgICAgUExqQT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVanMzei9FRmJKaDFQWUFXcjFQS1VGekpkOGc0SW10cUNGMm1GckFvalpDTkhZS2E1dVoKCUQzdnVlaGlFTkt0bkREYzJRZmc9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FDMTl1a3hJZG8rWFBreW1QR2VhQVkwMlJzWEkzWXdWREdiQ2RMMGwrL2ZaZklySzdGL2JGRUJMdzVtL2JLdXk1dEtrSzNRckE9PQpYLVJlY2VpdmVkOiBieSAxMC4xMDcuMjEyLjEyIHdpdGggU01UUCBpZCBsMTJtcjIyOTI2MTVpb2cuNDguMTUwNDc2OTE5Njk0NTsKICAgICAgICBUaHUsIDA3IFNlcCAyMDE3IDAwOjI2OjM2IC0wNzAwIChQRFQpClJlY2VpdmVkOiBmcm9tIFsxMC44OS4xNTMuMTIzXSAoWzEyMC4yMS4yMzUuOTldKQogICAgICAgIGJ5IHNtdHAuZ21haWwuY29tIHdpdGggRVNNVFBTQSBpZCBtMTg3c200NjY0MjhpdGIuMC4yMDE3LjA5LjA3LjAwLjI2LjM1CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KICAgICAgICAodmVyc2lvbj1UTFMxXzIgY2lwaGVyPUVDREhFLVJTQS1BRVMxMjgtR0NNLVNIQTI1NiBiaXRzPTEyOC8xMjgpOwogICAgICAgIFRodSwgMDcgU2VwIDIwMTcgMDA6MjY6MzYgLTA3MDAgKFBEVCkKRnJvbTogQ2hyaXMgR3JhaGFtIDxjaHJpc2d3YXJwQGdtYWlsLmNvbT4KWC1Hb29nbGUtT3JpZ2luYWwtRnJvbTogQ2hyaXMgR3JhaGFtIDxDaHJpc0dXYXJwQGdtYWlsLmNvbT4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOwoJY2hhcnNldD11cy1hc2NpaQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCk1pbWUtVmVyc2lvbjogMS4wICgxLjApCkRhdGU6IFRodSwgNyBTZXAgMjAxNyAxNzoyNjozMyArMTAwMApTdWJqZWN0OiBSZTogUXVlc3Rpb24uLi5jb25jZXJuaW5nIGNsYXNzaWZpZXIKTWVzc2FnZS1JZDogPDJGMDVGNTFELTBBMzAtNDVDNy04MkNBLTlGRUQ5MDU1MTA1NUBnbWFpbC5jb20+ClJlZmVyZW5jZXM6IDw1NjgxN0I5MS4xMDIwMTA4QGdteC5kZT4gPENBS3VWekJTMjc0VHBPSnBGbU1vQ013QVlvQUNZSGZnRCtjTzNnTDVuaTVlSytSTVRjZ0BtYWlsLmdtYWlsLmNvbT4gPDU2ODE4MDY4LjcwMTAxMDlAZ214LmRlPgpJbi1SZXBseS1UbzogPDU2ODE4MDY4LjcwMTAxMDlAZ214LmRlPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KWC1NYWlsZXI6IGlQaG9uZSBNYWlsICgxNEc2MCkKCkhpIEthcmwsCgpEaWQgeW91IGV2ZXIgZmluZCB3aGF0IHlvdSB3ZXJlIGxvb2tpbmcgZm9yPwoKSSBjYW1lIGFjcm9zcyB0aGlzIGluIGEgc2VhcmNoIG9uIGNsYXNzaWZpZXJzIGFzIEkgd2FudCB0byBiZSBhYmxlIHRvIGFjY2Vzcz0KIHRoZW0gYXMgYSBwYXJ0IG9mIGEgZmlsdGVyL3RyYW5zZm9ybWF0aW9uIHdoZW4gdGhlIGFzc2VtYmxlIHBsdWdpbiBkb2VzIGl0Jz0KcyBqb2IuCgpJIGFtIGZpbmRpbmcgdGhhdCBjbGFzc2lmaWVycyBhcmUgbm90IHdlbGwgZG9jdW1lbnRlZCB0aGVpciB1c2FnZSBhdCBhbGwhIDotPQooCgpTZW50IGZyb20gbXkgaVBob25lCgo+IE9uIDI5IERlYyAyMDE1LCBhdCA1OjMzIGFtLCBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4gd3JvdGU6PQoKPj0yMAo+IEhpIFRpYm9yLAo+PTIwCj4+IE9uIDEyLzI4LzE1IDc6MjIgUE0sIFRpYm9yIERpZ2FuYSB3cm90ZToKPj4gSG0sIGNsYXNzaWZpZXJzIGluIHBsdWdpbnMsIG5vdCByZWFsbHkgdXNlZCBhdCBhbGwuIERlcGVuZGVuY2llcyB5ZXMuIEkKPj4gZ3Vlc3MgY2xhc3NpZmllciBpcyBtb3JlIG92ZXJoZWFkIGFuZCBldmlsIHRoYW4gYmVuZWZpdC4KPj0yMAo+IElmIHlvdSBidWlsZCBmb3Igc2V2ZXJhbCBlbnZpcm9ubWVudHMgdGhhbiB5b3UgbmVlZCBjbGFzc2lmaWVycyAoZS5nLiB3aXRoPQogbWF2ZW4tYXNzZW1ibHktcGx1Z2luKSwgbWF2ZW4tamFyLXBsdWdpbiAodGVzdC1qYXIsIGphciksIG1hdmVuLWRlcGxveS1wbHVnPQppbiwgbWF2ZW4tc291cmNlLXBsdWdpbiwgbWF2ZW4tamF2YWRvYy1wbHVnaW4uLmp1c3QgbWVudGlvbiBzb21lIGV4YW1wbGVzLi4gZT0KdGMuLi5pIHdvdWxkbid0IGNhbGwgaXQgZXZpbC4uLgo+PTIwCj4+IEkgcmVtZW1iZXIgTWF2ZW4gZG9jdSB0YWxrZWQgYWJvdXQgY2xhc3NpZmllciBqZGsxLjUgYXMgYW4gZXhhbXBsZSBhbmQKPj4gbWF5YmUgZW52aXJvbm1lbnQgc3BlY2lmaWNzLCBidXQgSSBndWVzcyBpdCB3YXMgdGhlIG9ubHkgZXhhbXBsZXMgaW4gdGhlCj4+IHR1dG9yaWFsLgo+PTIwCj4gWWVzIHRoYXQncyB3aGF0IGkga25vdyBvZiBhcyB3ZWxsLi4uCj49MjAKPj4gUmVnYXJkaW5nIHZhbGlkIGNoYXJhY3RlcnMgaW4gY2xhc3NpZmllciAtIG5vIGlkZWEgaWYgYW55IGV4aXN0cy4KPj0yMAo+IEV4YWN0bHkgdGhhdCdzIHdoYXQgaSdtIHNlYXJjaGluZyBmb3IuLi4KPj0yMAo+PTIwCj4+PTIwCj4+IE9uIE1vbiwgRGVjIDI4LCAyMDE1IGF0IDc6MTIgUE0sIEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlCj4+IDxtYWlsdG86a2htYXJiYWlzZUBnbXguZGU+PiB3cm90ZToKPj49MjAKPj4gICAgSGksCj4+PTIwCj4+ICAgIGR1cmluZyBteSBpbXBsZW1lbnRhdGlvbnMgaSBoYXZlIGNvbWUgdG8gdGhlIGNvbmNsdXNpb24gaWYgc29tZW9uZQo+PiAgICBzZXRzIGEgY2xhc3NpZmllciBmb3IgdGhlIGV4ZWN1dGlvbiBvZiBhIHBsdWdpbi4uLml0IHdvdWxkIGJlIHVzZWZ1bAo+PiAgICB0byBjaGVjayB0aGUgdmFsaWRpdHkgb2YgdGhlIGNsYXNzaWZpZXIuLi4KPj49MjAKPj4gICAgQmFzZWQgb24gdGhhdCBpIHN0YXJ0ZWQgdG8gc2VhcmNoIGJ1dCB1bmZvcnR1bmF0ZWx5IGkgZGlkbid0IGZvdW5kIGEKPj4gICAgZGVmaW5pdGlvbiBldGMuIGRvY3VtZW50YXRpb24gaG93IGEgdmFsaWQgY2xhc3NpZmllciBsb29rcyBsaWtlIG9yCj4+ICAgIHRoZSBpbnZlcnNlIHdoYXQgaXQgZG9lcyBub3QgYWxsb3dlZCB0byBiZS4uCj4+PTIwCj4+ICAgIFNvIGRvZXMgc29tZW9uZSBrbm93IG9mIGFueSBraW5kIG9mIGRlZmluaXRpb24gaG93IGEgdmFsaWQKPj4gICAgY2xhc3NpZmllciBsb29rcyBsaWtlPyBTb21lIGtpbmQgb2YgcmVmZXJlbmNlID8KPj49MjAKPj4gICAgS2luZCByZWdhcmRzCj4+ICAgIEthcmwgSGVpbnogTWFyYmFpc2UKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PTIwCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM4OTktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIFNlcCAgOCAxOTozMDo0NSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM4OTktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQ0U4Q0MxQTcxNQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksICA4IFNlcCAyMDE3IDE5OjMwOjQ1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTYyMTEgaW52b2tlZCBieSB1aWQgNTAwKTsgOCBTZXAgMjAxNyAxOTozMDo0MCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTYxMjAgaW52b2tlZCBieSB1aWQgNTAwKTsgOCBTZXAgMjAxNyAxOTozMDozOSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU2MTA0IGludm9rZWQgYnkgdWlkIDk5KTsgOCBTZXAgMjAxNyAxOTozMDozOSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMDggU2VwIDIwMTcgMTk6MzA6MzkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA5OENCN0M2OEEzOwoJRnJpLCAgOCBTZXAgMjAxNyAxOTozMDozOCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjIwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC4yMDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W1JDVkRfSU5fRE5TV0xfTE9XPS0wLjcsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsCglTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgbGNiN3k4ZjV5ZXIwOyBGcmksICA4IFNlcCAyMDE3IDE5OjMwOjM2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1vdXQuZ214Lm5ldCAobW91dC5nbXgubmV0IFsyMTIuMjI3LjE3LjIxXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDJGMUI3NUZEQkY7CglGcmksICA4IFNlcCAyMDE3IDE5OjMwOjM2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIEthcmwtSGVpbnpzLU1hY0Jvb2stUHJvLmxvY2FsIChbMjE3LjI0Ny40NC4xMzNdKSBieQogbWFpbC5nbXguY29tIChtcmdteDEwMiBbMjEyLjIyNy4xNy4xNjhdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTHowYUMtMWRMTmJnMWNjaS0wMTRCSTQ7IEZyaSwgMDggU2VwIDIwMTcgMjE6MzA6MjggKzAyMDAKUmVwbHktVG86IGluZm9Ac29lYmVzLmRlClN1YmplY3Q6IFJlOiBVc2VycyBjYW4gYXNzaWduIEZpeCBWZXJzaW9uL3MgaW4gSmlyYQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sCiBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+LAogVGlib3IgRGlnYW5hIDx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+CkNjOiBBbmRlcnMgSGFtbWFyIDxhbmRlcnNAaGFtbWFyLm5ldD4KUmVmZXJlbmNlczogPENBS3VWekJTLVVSUGNtaTgxUjIteG9MUkpiUFFmQjg4N2ItdStNTlBoQlRmN2hUNkZ5Z0BtYWlsLmdtYWlsLmNvbT4KIDwyZjEzYWU0Zi03NTRhLTQ1YjEtNTg4OC0yZjMyNTNlNDg0ZmFAYXBhY2hlLm9yZz4KIDxDQUtEVU4xdHRpWjdSUmpoZkV5Nm1fV3llVHByMXZxQ1l4OEQ4M0N2YV9CaDNYeEM3eFFAbWFpbC5nbWFpbC5jb20+CiA8b3AueTU4bDNjdm1rZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CiA8Q0FLdVZ6QlJVX2RTWDVVenpYbytwdXdKWnRhaj1rWkFQYm9LRU1RVVJwUzhXNkdfdzJRQG1haWwuZ21haWwuY29tPgogPG9wLnk1ODgwbm1ja2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpGcm9tOiBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4KTWVzc2FnZS1JRDogPDJlODU4MjIyLTY0YmMtNDQ1Mi0zNzQ4LWMzNzc2M2IwMmI5M0BnbXguZGU+CkRhdGU6IEZyaSwgOCBTZXAgMjAxNyAyMTozMDoyNyArMDIwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMTsgcnY6NTIuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzUyLjIuMQpNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPG9wLnk1ODgwbm1ja2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDo4RnhDV2IxdDJ5MW8vS2g1ZHFDM3BFL1BEYVBMM2RtUHhJNXpKZmZSeCtMeVZISDJYM24KIEsvVGRtSVIrTm9QcmVXaDIyck5HU1BnZmFsbUR0MUI0WURya0tpZ2htQk9PTy9IZ0JhMmdiUVVHYkFSYUtlVnVlc09EMC9DCiBGbVp4OXFPVkJBSnZ5YnRxZnZPOWx4NGErWGdHdlg3NzRsaFpGZFR3emZORU9IdE9wUGlrYmgyVnF4RmlHSGRjYjlzTGEvegogU1E1eU05MXdyOG5SV1NVQldQTzdnPT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDp5NGc0OGlUVzB4Zz06QXFvRWIxbXlNUnNiYUw5Mkx1UWwzdwogbUFyLzhiRUs3K0RSMWJQSTRRTTZhWjVoUmVJMnJ0bkk0c2Q2eXM2Y1BaZFNQSWJ0eFM3cTBsdDY1NnN5c2FHN3dCejdOc2JxZQogeVNWVDJONkNlelkwYUZsQ01ZMmFTa0RPMEdMRVN4QklIK3lGRnF6Zjc0ZGlVaDMwaVFLekFTQjRiRlc1QTZabHU0aExxN3R2YwogY1RRUjlJRS9wcmZYRWlQemRnN1dWbHlUZ1dZRW8wK0tRL2lHYi93NHE3Vk5OVTJzWndrZzF2amY0azNDWVgrWnh6SXF5dW83cwogZDdFSHBPdVVpT0l0SjNuRDI1UTF6Vms0UW5veXpocnY1SXViRy9ESmk2K1ljRVJQRkIwK09hMHN4Mm9iSWRxRXN1aXBoL3V4cgogaDNlWGdsUlR3U0hZb1NEMEcyV0VPcEJJZXJqSnF3dEs0N0V6UkVnWjhVeFhHYjZ3MW5NdjZlKzVUZ051c1BEYmZGNk1OL2tOcgogYlZhNU0rbHJVU0dBSW9xRGtYbTFEOEl2TzR4akZYZVJwV09kS3lKd1plVGZhZk94QkRORnFldE1IOGlBS2xIbno3bHp5cklwSgoga1ZLVkhqUFhHaFZWc0hVb2RnOWVyTXJFZW5RRmM2RXVlaUVsWHkwMExjTVZ2TU9ENG1GZENuZGJOYVZsbTBSVjhoVkZkOGEvNwogWXYvTzh0TUdHdkRYTkd3MS9SWGo1cS8zbi85TkxBcmxPK3o0S1cvdmIwSWl0UVk0SkNGcjhjMlpwRXhMaVNnRmNXV0REd1huQgogaWRDcHVUTEttMkJQNnFvR3MwelBKUTVaY0NlaVEyZG9BYy9LQWdIWkVsREk1WlJleWFZZEJZTUkwS1ZZQ2Q5U3dQMTY3VkRsOQogMWNGSVZmRGZ2MEd6bEZmYlNCQlRmK0swdzNvS0wrU0xrNG9PUWJYSXZLdVIvb3NpSmcxTUJBSURvR3Vna2NvS1BHbzVKeWFDNwogSmJtTWdQU0hQS0tUTFZuVGRFVlNDZmZTcHZ2emlqbEZyMmJCZjM2enQ2QnNncS9CN0Y4MHdCRk94UUx6RG1McnlIYXhBVXVJUQogZ3dheHUyRWVwakRNWTg0ZEhkbGlLWElkaDJwaUhEdlY3dEo2dEhnVW0wcmFLQUFmdnc9CgpIaSwKCmJhc2VkIG9uIG15IGVhcmxpZXIgcmVxdWVzdCBpbiBJTkZSQSB0aWNrZXRbMV0gYSBuZXcgc2NoZW1hIGlzIGFscmVhZHkgCnRoZXJlIGNhdXNlIHRoZXJlIHdlcmUgdGhpbmdzIG5vdCB0aGUgYmVzdCBmb3IgZXhhbXBsZSBoYXZpbmcgYW4gZW50cnkgCiJRdWVzdGlvbiIgd2hpY2ggb2Z0ZW4gbGVhZCBwZW9wbGUgdG8gdXNlIEpJUkEgYXMgYSB1c2VyIGZvcnVtLi53aGljaCBpcyAKbm93IG5vIHBvc3NpYmxlIGFueW1vcmUuLi4KCiBGcm9tIG15IHBvaW50IG9mIHZpZXcgdGhpcyBzY2hlbWEgb25seSBuZWVkcyB0byBiZSBlbmhhbmNlZCBmb3IgdGhlIApyZXF1ZXN0ZWQgcGFydCBhc3NpZ25pbmcgYSB2ZXJzaW9uIHRvIGEgdGlja2V0Li4uCgpLaW5kIHJlZ2FyZHMKS2FybCBIZWlueiBNYXJiYWlzZQoKWzFdOiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0lORlJBLTE0ODk4CgpPbiAwOC8wOS8xNyAxODoyMCwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4gQUZBSUsgdGhlIHNjaGVtZSBzdGlsbCBoYXMgdG8gYmUgY3JlYXRlZCBhbmQgdmVyaWZpZWQsIHRoaXMgaXMganVzdCAKPiBhbm90aGVyIHBhcnQgb2YgdGhhdC4KPiBJIGRvbid0IHRoaW5rIGl0J3Mgd29ydGggdm90aW5nIGZvciBldmVyeSAobGl0dGxlKSBjaGFuZ2UsIGVzcGVjaWFsbHkgCj4gbm90IG5vdyB0aGVyZSdzIG5vIGZpbmFsIHNjaGVtZSB5ZXQuCj4gCj4gUm9iZXJ0Cj4gCj4gT24gRnJpLCAwOCBTZXAgMjAxNyAxNzo0NjoxMyArMDIwMCwgVGlib3IgRGlnYW5hIAo+IDx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+IHdyb3RlOgo+IAo+ICAgICBEb2VzIGl0IG1lYW4gdGhhdCB3ZSBoYXZlIHRvIHBvc3QgbmV3IFZvdGUgb24gc2VwYXJhdGUgTWF2ZW4gU2NoZW1lPwo+IAo+ICAgICBPbiBGcmksIFNlcCA4LCAyMDE3IGF0IDEwOjA1IEFNLCBSb2JlcnQgU2Nob2x0ZQo+ICAgICA8cmZzY2hvbHRlQGFwYWNoZS5vcmcgPG1haWx0bzpyZnNjaG9sdGVAYXBhY2hlLm9yZz4+IHdyb3RlOgo+IAo+ICAgICAgICAgVGhpcyBpcyBwYXJ0IG9mIHRoZSBzY2hlbWUgaW4gSmlyYS4KPiAgICAgICAgIFNpbmNlIHRoZXJlJ3MgYSBwcm9wb3NhbCB0byBtYWtlIGEgc2VwYXJhdGUgTWF2ZW4gU2NoZW1lLCB0aGlzCj4gICAgICAgICByZXF1ZXN0IHNob3VsZCBiZSBhZGRlZCBhcyB3ZWxsLgo+IAo+ICAgICAgICAgUm9iZXJ0Cj4gCj4gCj4gCj4gICAgICAgICBPbiBGcmksIDA4IFNlcCAyMDE3IDA4OjUzOjMxICswMjAwLCBBbmRlcnMgSGFtbWFyCj4gICAgICAgICA8YW5kZXJzQGhhbW1hci5uZXQgPG1haWx0bzphbmRlcnNAaGFtbWFyLm5ldD4+IHdyb3RlOgo+IAo+ICAgICAgICAgICAgIEkgYWdyZWUsIGl0J3MgZm9yIHVzIGFzIGNvbW1pdHRlcnMgdG8gZGVjaWRlLgo+IAo+ICAgICAgICAgICAgIC9BbmRlcnMKPiAKPiAgICAgICAgICAgICBPbiBGcmksIFNlcCA4LCAyMDE3IGF0IDg6NTEgQU0sIE1pY2hhZWwgT3NpcG92Cj4gICAgICAgICAgICAgPG1pY2hhZWxvQGFwYWNoZS5vcmcgPG1haWx0bzptaWNoYWVsb0BhcGFjaGUub3JnPj4gd3JvdGU6Cj4gCj4gICAgICAgICAgICAgICAgIEFtIDIwMTctMDktMDggdW0gMDA6NDIgc2NocmllYiBUaWJvciBEaWdhbmE6Cj4gCj4gICAgICAgICAgICAgICAgICAgICBJIGZvdW5kIG91dCB0aGF0IHVzZXJzIGNyZWF0ZSBhbiBpc3N1ZSBpbiBKaXJhIGFuZAo+ICAgICAgICAgICAgICAgICAgICAgKmFzc2lnbiB2ZXJzaW9uKiBbMV0uCj4gICAgICAgICAgICAgICAgICAgICBJIHJlbWVtYmVyIHRoaXMgZGlkIG5vdCBoYXBwZW4gaW4gb2xkIEppcmEuCj4gICAgICAgICAgICAgICAgICAgICBTbyBJIGRlY2lkZSB0byByZXBvcnQgYSB0aWNrZXQgaW4gSU5GUkEuCj4gCj4gICAgICAgICAgICAgICAgICAgICBEbyB5b3UgaGF2ZSB0aGUgc2FtZSBleHBlcmllbmNlcz8KPiAgICAgICAgICAgICAgICAgICAgIFdoYXQncyB5b3VyIG9waW5pb24gYWJvdXQgaXQ/Cj4gCj4gICAgICAgICAgICAgICAgICAgICBbMV06IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvSU5GUkEtMTUwNDcKPiAKPiAKPiAgICAgICAgICAgICAgICAgVGhpcyBpcyBhbiBhbm5veWluZyBidWcuIEkgY29uc3RhbnRseSByZW1vdmUKPiAgICAgICAgICAgICAgICAgdXNlci1hc3NpZ25lZCB2ZXJzaW9uIHdoZW4gSQo+ICAgICAgICAgICAgICAgICBzZWUgaXQsIGJlY2F1c2UgdGhpcyBkZWNpc2lvbiBzaG91bGQgb25seSBiZSB1cHRvIHVzLAo+ICAgICAgICAgICAgICAgICBub3QgdGhlbS4KPiAKPiAgICAgICAgICAgICAgICAgTWljaGFlbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzODkyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBTZXAgIDggMDY6NTI6MDEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzODkyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDk5M0QzMUE2OEQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAgOCBTZXAgMjAxNyAwNjo1MjowMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDMwNzMgaW52b2tlZCBieSB1aWQgNTAwKTsgOCBTZXAgMjAxNyAwNjo1MjowMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjk4NCBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IFNlcCAyMDE3IDA2OjUyOjAxIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjk3MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDggU2VwIDIwMTcgMDY6NTI6MDEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMDggU2VwIDIwMTcgMDY6NTI6MDEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gWzE5Mi4xNjguMS4xM10gKHAzRTlEMjdGMy5kaXAwLnQtaXBjb25uZWN0LmRlIFs2Mi4xNTcuMzkuMjQzXSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDUwNUMyMUEwMEE1OwoJRnJpLCAgOCBTZXAgMjAxNyAwNjo1MjowMCArMDAwMCAoVVRDKQpTdWJqZWN0OiBSZTogVXNlcnMgY2FuIGFzc2lnbiBGaXggVmVyc2lvbi9zIGluIEppcmEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LAogVGlib3IgRGlnYW5hIDx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQUt1VnpCUy1VUlBjbWk4MVIyLXhvTFJKYlBRZkI4ODdiLXUrTU5QaEJUZjdoVDZGeWdAbWFpbC5nbWFpbC5jb20+CkZyb206IE1pY2hhZWwgT3NpcG92IDxtaWNoYWVsb0BhcGFjaGUub3JnPgpNZXNzYWdlLUlEOiA8MmYxM2FlNGYtNzU0YS00NWIxLTU4ODgtMmYzMjUzZTQ4NGZhQGFwYWNoZS5vcmc+CkRhdGU6IEZyaSwgOCBTZXAgMjAxNyAwODo1MTo1NiArMDIwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXT1c2NDsgcnY6NTIuMCkgR2Vja28vMjAxMDAxMDEKIFRodW5kZXJiaXJkLzUyLjMuMApNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPENBS3VWekJTLVVSUGNtaTgxUjIteG9MUkpiUFFmQjg4N2ItdStNTlBoQlRmN2hUNkZ5Z0BtYWlsLmdtYWlsLmNvbT4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLVVTCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKCkFtIDIwMTctMDktMDggdW0gMDA6NDIgc2NocmllYiBUaWJvciBEaWdhbmE6Cj4gSSBmb3VuZCBvdXQgdGhhdCB1c2VycyBjcmVhdGUgYW4gaXNzdWUgaW4gSmlyYSBhbmQgKmFzc2lnbiB2ZXJzaW9uKiBbMV0uCj4gSSByZW1lbWJlciB0aGlzIGRpZCBub3QgaGFwcGVuIGluIG9sZCBKaXJhLgo+IFNvIEkgZGVjaWRlIHRvIHJlcG9ydCBhIHRpY2tldCBpbiBJTkZSQS4KPiAKPiBEbyB5b3UgaGF2ZSB0aGUgc2FtZSBleHBlcmllbmNlcz8KPiBXaGF0J3MgeW91ciBvcGluaW9uIGFib3V0IGl0Pwo+IAo+IFsxXTogaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9JTkZSQS0xNTA0NwoKVGhpcyBpcyBhbiBhbm5veWluZyBidWcuIEkgY29uc3RhbnRseSByZW1vdmUgdXNlci1hc3NpZ25lZCB2ZXJzaW9uIHdoZW4gCkkgc2VlIGl0LCBiZWNhdXNlIHRoaXMgZGVjaXNpb24gc2hvdWxkIG9ubHkgYmUgdXB0byB1cywgbm90IHRoZW0uCgpNaWNoYWVsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQxNDMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE9jdCAgMyAyMzo0OTowNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxNDMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRTBBRUQxMDNGQgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsICAzIE9jdCAyMDE3IDIzOjQ5OjAzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjg1NTYgaW52b2tlZCBieSB1aWQgNTAwKTsgMyBPY3QgMjAxNyAyMzo0OTowMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjg0NTYgaW52b2tlZCBieSB1aWQgNTAwKTsgMyBPY3QgMjAxNyAyMzo0OTowMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI4NDQ0IGludm9rZWQgYnkgdWlkIDk5KTsgMyBPY3QgMjAxNyAyMzo0OTowMyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMDMgT2N0IDIwMTcgMjM6NDk6MDMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA3NDREQzE4NEVEQwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgIDMgT2N0IDIwMTcgMjM6NDk6MDIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC44ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBLQU1fTElOS0JBSVQ9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBvbU5ETHhJY0RfeXogZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUdWUsICAzIE9jdCAyMDE3IDIzOjQ5OjAxICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAxMy5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEzNV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAxMUQ4MTVGQkVBCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAgMyBPY3QgMjAxNyAyMzo0OTowMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ3MSB3aXRoIE1FCglpZCBIQm96MXcwME4yMFVmZHkwM0JvemhvOyBXZWQsIDA0IE9jdCAyMDE3IDAxOjQ5OjAwICswMjAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFdlZCwgMDQgT2N0IDIwMTcgMDE6NDk6MDAgKzAyMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBtaWdyYXRpbmcgc29tZSBjb2RlIHRvIEdpdApEYXRlOiBXZWQsIDA0IE9jdCAyMDE3IDAxOjQ4OjU5ICswMjAwCk1lc3NhZ2UtSUQ6IDwzMDA2NDcxLkdyU0ZqU0pqR1hAZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zNS1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCkknZCBsaWtlIHRvIHdvcmsgb24gUGx1Z2luIFRvb2xzIHdpdGggZ2l0CgpXaGlsZSBhdCBpdCwgbG9va2luZyBhdCBvdXIgcGxhbiBbMV0sIEkgc2VlIHdlIGhhdmUgYSBmZXcgb3RoZXIgY29tcG9uZW50cz0KPTIwCnRoYXQgYXJlIHJlYWR5IHRvIG1pZ3JhdGU6Cj0yRCBEb3hpYSBjb3JlCj0yRCBEb3hpYSBTaXRldG9vbHMKPTJEIEVuZm9yY2VyCj0yRCBKeHIKPTJEIFBsdWdpbiBUb29scwo9MkQgUmVsZWFzZQoKV2hhdCBjaGVja3MgYXJlIHJlcXVpcmVkIGJlZm9yZSBzd2l0Y2hpbmcgdGhlc2UgNiBjb21wb25lbnRzPwpBbnkgdm9sdW50ZWVyPwoKUmVnYXJkcywKCkhlcnY9RTkKClsxXSBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL0dpdCtNaWdyYXRpb24KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDg1NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgRGVjIDI4IDA4OjI2OjQ1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg1NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyM0EyNzE3ODFGCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjggRGVjIDIwMTcgMDg6MjY6NDUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2OTg3MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBEZWMgMjAxNyAwODoyNjo0NCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjk4MDQgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggRGVjIDIwMTcgMDg6MjY6NDQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2OTc5MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IERlYyAyMDE3IDA4OjI2OjQ0IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyOCBEZWMgMjAxNyAwODoyNjo0NCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDA2QkJEMTgwNzg1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyOCBEZWMgMjAxNyAwODoyNjo0NCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xLjMKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEuMyB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBJUXpQTEJxdTg2eXYgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsIDI4IERlYyAyMDE3IDA4OjI2OjQzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwNS5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyN10pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBERTU3QjVGMzlECglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyOCBEZWMgMjAxNyAwODoyNjo0MiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ2MiB3aXRoIE1FCglpZCByTFNjMXcwME4yMFVmZHkwM0xTY0VvOyBUaHUsIDI4IERlYyAyMDE3IDA5OjI2OjM2ICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFRodSwgMjggRGVjIDIwMTcgMDk6MjY6MzYgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIFBERiBQbHVnaW4gdmVyc2lvbiAxLjQKRGF0ZTogVGh1LCAyOCBEZWMgMjAxNyAwOToyNjozNiArMDEwMApNZXNzYWdlLUlEOiA8MzAzODMwMS5neklKRkQxMDY5QGdpZ2E+CkluLVJlcGx5LVRvOiA8MzExMTAzMi5FdEZlVTFBbFBwQGdpZ2E+ClJlZmVyZW5jZXM6IDwzMTExMDMyLkV0RmVVMUFsUHBAZ2lnYT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpoZXJlIGlzIG15ICsxCgpSZWdhcmRzLAoKSGVydj1FOQoKTGUgdmVuZHJlZGkgMjIgZD1FOWNlbWJyZSAyMDE3LCAxMDoxMTozMiBDRVQgSGVydj1FOSBCT1VURU1ZIGEgPUU5Y3JpdCA6Cj4gSGksCj49MjAKPiBXZSBzb2x2ZWQgMTIgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiBwcm9qZWN0SWQ9M0QxMjMxNzYyMCZ2ZXJzaW9uPTNEMTIzMzMzMzgmc3R5bGVOYW1lPTNEVGV4dAo+PTIwCj4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUzRCUyME1QREYlMjBBTkQlMj0KMHN0YXQKPiB1cyAlMjAlM0QlMjBPcGVuJTIwT1JERVIlMjBCWSUyMGtleSUyMERFU0MlMkMlMjBwcmlvcml0eSUyMERFU0MKPj0yMAo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzg1Lwo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzODUvb3JnL2FwYWNoZS8KPiBtYXZlbi9wbHVnaW5zL21hdmVuLXBkZi1wbHVnaW4vMS40L21hdmVuLXBkZi1wbHVnaW4tMS40LXNvdXJjZS1yZWxlYXNlLnppcAo+PTIwCj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gbWF2ZW4tcGRmLXBsdWdpbi0xLjQtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6Cj4gODhkMmQyNTRlNjc0OTM4YjE5N2RmNmIzN2I1NGM3NWVjODE3ZmNmNAo+PTIwCj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLXBkZi1wbHVnaW4tTEFURVNULwo+PTIwCj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPj0yMAo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj49MjAKPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQxODQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE9jdCAgOCAwMjo1NTo1NyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxODQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRTQ3RUIxMEFERgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sICA4IE9jdCAyMDE3IDAyOjU1OjU3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTM5MDIgaW52b2tlZCBieSB1aWQgNTAwKTsgOCBPY3QgMjAxNyAwMjo1NTo1NyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTM2OTQgaW52b2tlZCBieSB1aWQgNTAwKTsgOCBPY3QgMjAxNyAwMjo1NTo1NyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkzNjgwIGludm9rZWQgYnkgdWlkIDk5KTsgOCBPY3QgMjAxNyAwMjo1NTo1NiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMDggT2N0IDIwMTcgMDI6NTU6NTYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBGMUY1RUNBRTZBCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAgOCBPY3QgMjAxNyAwMjo1NTo1NCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xLjMKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEuMyB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGRpanh4TjZxOFpCdyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgIDggT2N0IDIwMTcgMDI6NTU6NTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDAzLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI1XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDVDNkRENUYyMzgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sICA4IE9jdCAyMDE3IDAyOjU1OjUxICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDU4IHdpdGggTUUKCWlkIEpxdnExdzAwUDIwVWZkeTAzcXZyTVE7IFN1biwgMDggT2N0IDIwMTcgMDQ6NTU6NTEgKzAyMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogU3VuLCAwOCBPY3QgMjAxNyAwNDo1NTo1MSArMDIwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBKZW5raW5zIGFuZCBNYXZlbiAzLjAuNSBvciBKREsgNwpEYXRlOiBTdW4sIDA4IE9jdCAyMDE3IDA0OjU1OjUwICswMjAwCk1lc3NhZ2UtSUQ6IDwzMDY2MzA4LlJaNzZzTVQyYmNAZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zNS1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpJbi1SZXBseS1UbzogPENBS3VWekJULVp3M0hkMENMcVQ2NGtRWDJwU3FGQytOdndEOXVNRmV5UjVrODlGNm43QUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPDEwNTQ0NjE1LkI0aE8zUG52RXpAZ2lnYT4gPDQxQzQ2NDdBLTM4MDgtNEU2QS1CNEIyLTIyRjdGMjU5RTgxNUBob250b24ub3JnPiA8Q0FLdVZ6QlQtWnczSGQwQ0xxVDY0a1FYMnBTcUZDK052d0Q5dU1GZXlSNWs4OUY2bjdBQG1haWwuZ21haWwuY29tPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKClRMRFI7ID0zRApQZXJoYXBzIHdlIGNhbiBzdGFydCB3aXRoIDIgcHJvb2ZzIG9mIGNvbmNlcHQ6CjEuIGZ1bGwgZ2l0IGNsb25lICsgSmVua2lucyBqb2JzIGZvciB0aGUgNyBleGlzdGluZyBnaXQgcmVwb3MgKHdpdGggNj0yMAphZGRpdGlvbmFsIG9uZXMgaW4gMiBkYXlzKQoyLiBnaXQgc3BsaXQgb2Ygb25lIG9mIHRoZSBhZ2dyZWdhdG9yIHN2biB0cnVuazogc2tpbnMgb3IgZG94aWEtdG9vbHMgY2FuIGI9CmU9MjAKZWFzeSBjaG9pY2VzIHNpbmNlIHRoZXkgYXJlIGxpZ2h0LCB3aGVyZSBwbHVnaW5zIG9yIHNoYXJlZCBhcmUgcGVyaGFwcyB0b289Cj0yMApoZWF2eS4gVGhlIG9uZSB3b3JraW5nIG9uIHRoaXMgUG9DIHdpbGwgbWFrZSBoaXMgY2hvaWNlCgp0aGVuIG1vcmUgZGV0YWlsZWQgYW5zd2VyIGlubGluZSB0aGF0IGxlYWQgdG8gdGhpcyBQb0NzIHByb3Bvc2FsCgpSZWdhcmRzLAoKSGVydj1FOQoKTGUgZGltYW5jaGUgOCBvY3RvYnJlIDIwMTcsIDAwOjAyOjEwIENFU1QgVGlib3IgRGlnYW5hIGEgPUU5Y3JpdCA6Cj4gSSBkb24ndCB0aGluayB0aGUgZGV2cyB3b3VsZCB3b3JrIG9uIGFsbCBhcnRpZmFjdHMocHJvamVjdHMpIGEgdGltZS4Kc3VyZSwgSSB0aGluayBJJ20gb25lIG9mIHRoZSBmZXcgcGVvcGxlIHdvcmtpbmcgb24gbmVhciBldmVyeXRoaW5nICh3aXRoIHJhPQpyZT0yMApleGNlcHRpb25zIGxpa2UgU3VyZWZpcmUsIGFzIHlvdSBub3RpY2VkIDopICkKYnV0IGZvciB1c3VhbCBjb250cmlidXRvciwgdGhlcmUgaXMgbm8gaXNzdWUKCkknbSBub3QgYSBnaXQgZXhwZXJ0LCB0aGVuIEkgZG9uJ3Qga25vdyBpZiBlYXN5ICJmdWxsIE1hdmVuIGNsb25lIiBpcyBiZXR0ZT0Kcj0yMApkb25lIHdpdGggYSBzaGVsbCBzY3JpcHQgb3Igc29tZSBnaXQgbW9kdWxlcwoKPiBJZiB0aGUgbmFtaW5nIGNvbnZlbnRpb24gb2YgcmVwbyBmb3IgYSBwbHVnaW4gd291bGQgYmUgYXJ0aWZhY3RJZCwgbGlrZQo+IC9tYXZlbi1jbGVhbi1wbHVnaW4sIHRoZW4gZXZlbiBlYXN5IHRvIGZpZ3VyZSBvdXQgd2hpY2ggb25lIHRvIGNsb25lLgo+IFRoZSBtb3N0IGxpa2VseSB0aGUgZGV2IHdvdWxkIGp1c3QgY2xvbmUgb25lIHJlcG8gc2hlL2hlIGlzIGludGVyZXN0ZWQgaW4KPiBhdCB0aGUgbW9tZW50LCBpLmUuIHJlcG9zaXRvcnkgL21hdmVuLWNsZWFuLXBsdWdpbiwgbGV0J3Mgc2F5Lgo+IEl0J3MgZ29vZCB0byBhdm9pZCBhbnkgc2hhcmVkIGZpbGVzIGFjcm9zcyB0aGVtLCBldmVuIEkgZG9uJ3QgdGhpbmsgZGV2cwo+IHNoYXJlIHNvbWUgaW4gc3ZuIHRvZGF5LiBUaGUgcmVsZWFzZSBwcm9jZXNzIHdvdWxkIGJlIHF1aXRlIHVzdWFsLCBpLmUuIG89Cm5lCj4gcmVwbyA9M0Qgb25lIHByb2plY3QsIGFuZCBuZXcgZGV2cyBhbHJlYWR5IGhhdmUgdGhlc2UgZXhwZXJpZW5jZXMgd2hpY2ggdz0KaWxsCj4gYmUgc2ltcGxlIGZvciB0aGVtIHRvIGFkYXB0IGZhc3Rlci4KKzEKdGhlIG9ubHkgZHJhd2JhY2sgSSBzZWUgY3VycmVudGx5IGlzIHRoYXQgdGhlcmUgaXMgbm8gbmF0dXJhbCBncm91cGluZywgdGhlPQpuPTIwCndlIGhhdmUgYSBmbGF0IGxpdCBvZiBuZWFyIDEwMCBnaXQgcmVwb3Mgd2l0aG91dCB0aGUgY3VycmVudCBzdHJ1Y3R1cmU9MjAKKHBsdWdpbnMsIHNoYXJlZCBjb21wb25lbnRzLCBza2lucywgLi4uKTogSSB0aGluayBjb21wb25lbnRzIHN0cnVjdHVyZSBpcz0yMAp1c2VmdWwgZm9yIG1haW50ZW5hYmlsaXR5CmJ1dCBub3QgcmVhbGx5IGEgY29tcGxldGUgc2hvd3N0b3BwZXIKYW5kIHBlcmhhcHMgdGhlICJNYXZlbiBmdWxsIGNsb25lIiB0b29saW5nIGNhbiByZS1jcmVhdGUgc29tZSBncm91cGluZyB0byBrPQplZXA9MjAKdmlzaWJsZSBzdHJ1Y3R1cmUKCk5vdywgc29tZW9uZSBoYXMgdG8ga25vdyBob3cgdG8gY3JlYXRlIHBlci1jb21wb25lbnQgZ2l0IHJlcG8gd2l0aCB0YWdzPTIwCihlaXRoZXIgYnkgcmV3b3JraW5nIGV4aXRpbmcgZ2l0IG1pcnJvcnMsIGVpdGhlciBieSByZXN0YXJ0aW5nIGZyb20gc3ZuKSwgYT0KbmQ9MjAKdGhhdCdzIG5vdCBtZSA6KQoKZ2l2ZW4gdGhlIHZvbHVtZSAoYWRkaW5nIDcwIGdpdCByZXBvcyBmb3IgTWF2ZW4pLCB3ZSdsbCBoYXZlIHRvIHRlbGwgaW5mcmE9Cj0yMAphYm91dCBpdC4KClRoZW4gdGhlcmUgaXMgdGhlIEplbmtpbnMgam9icyBjb25maWd1cmF0aW9uOgo9MkQgd2UgbmVlZCBlYXN5IEplbmtpbnNmaWxlIGluIGVhY2ggcmVwbwo9MkQgd2UgbmVlZCBlYXN5IDgwIGpvYnMgY3JlYXRpb24gKG5vLCBJIHdvbid0IG1hbnVhbGx5IGNyZWF0ZSA4MCBqb2JzPTIwCnBlcnNvbmFsbHkpCkFuZCBvbmNlIGFnYWluLCBpbmZyYSB3aWxsIGhhdmUgdG8gYmUgaW4gdGhlIGxvb3AgKGF0IEplbmtpbnMgc2lkZSB0aGlzIHRpbT0KZSksPTIwCnNpbmNlIEkgZmVhciB0aGUgbG9hZCBvbiBKZW5raW5zIG1hc3RlciBub2RlIHdvbid0IGJlIGxpZ2h0OiBwZXJoYXBzIHRoYXQncz0KPTIwCndoZXJlIEplbmtpbnMgZm9sZGVycyB3aWxsIGJlIHVzZWZ1bCwgYnV0IEknbSBub3QgYSBKZW5raW5zIGV4cGVydCBlaXRoZXIuCgoKSWYgZXZlcnl0aGluZyBzZWVtcyBmZWFzaWJsZSB0byBzcGxpdCBvdXIgc3ZuIGNvZGUgaW50byAxIGdpdCByZXBvIHBlci0KY29tcG9uZW50LCB3aGljaCB3aWxsIGJyaW5nIHVzIHRvICJmdWxsIE1hdmVuIGNvZGUiIGJlaW5nIG5lYXIgMTAwIHJlcG9zLCBJPQonbT0yMApvayB3aXRoIGl0LgpXZSdsbCBuZWVkIHRoZSBoZWxwIG9mIG1pc2MgZXhwZXJ0cyBvbiBKZW5raW5zIGFuZCBnaXQgdG8gcHJlcGFyZSB0aGluZ3MgYXQ9Cj0yMAp0aGlzIHNjYWxlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MzYwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBPY3QgMjggMDg6MzA6NTggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzYwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDMwQzBFMTBDQTYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAyOCBPY3QgMjAxNyAwODozMDo1OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDYyNjk1IGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE9jdCAyMDE3IDA4OjMwOjU4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MTk3MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBPY3QgMjAxNyAwODozMDo1NyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYxOTYxIGludm9rZWQgYnkgdWlkIDk5KTsgMjggT2N0IDIwMTcgMDg6MzA6NTcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMjggT2N0IDIwMTcgMDg6MzA6NTcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gWzE5Mi4xNjguMTc4LjU1XSAoaXA1ZjViZmNmMS5keW5hbWljLmthYmVsLWRldXRzY2hsYW5kLmRlIFs5NS45MS4yNTIuMjQxXSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDI1RDk3MUEwNERFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAyOCBPY3QgMjAxNyAwODozMDo1NSArMDAwMCAoVVRDKQpGcm9tOiBBbmRyZWFzIERhbmdlbCA8YWRhbmdlbEBhcGFjaGUub3JnPgpTdWJqZWN0OiBtLXBtZC1wIC0gVXBncmFkZSB0byBNYXZlbiAzClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpNZXNzYWdlLUlEOiA8MzBlM2JhODAtNTA0Ny1hNzdlLTEyYjgtN2UxYmFjYTJhNDRjQGFwYWNoZS5vcmc+CkRhdGU6IFNhdCwgMjggT2N0IDIwMTcgMTA6MzA6NTEgKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0OyBydjo1Mi4wKSBHZWNrby8yMDEwMDEwMQogVGh1bmRlcmJpcmQvNTIuNC4wCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLVVTCgpIaSwKCkknbSB3b3JraW5nIG9uIE1QTUQtMjQwIFsxXSBhbmQgdGhlIGN1cnJlbnQgdHJ1bmsgdmVyc2lvbiBvZiB0aGUgcGx1Z2luCmlzIDMuOS1TTkFQU0hPVC4KClNoYWxsIEkgbW92ZSBpdHMgdmVyc2lvbiB0byA0LjAuMC1TTkFQU0hPVD8gT3RoZXIgcGx1Z2lucyB3aGVyZSBhdCAyLngKYmVmb3JlIHRoZSBtYXZlbiAzIHVwZ3JhZGUgYW5kIG1vdmVkIHRvIDMuMC4wLVNOQVBTSE9UIGFmdGVyd2FyZHMuCgpJcyB0aGUgbWF0Y2hpbmcgbWFqb3IgdmVyc2lvbiBvZiB0aGUgcGx1Z2luIGFuZCBtYXZlbiB2ZXJzaW9uIGp1c3QgYQpjb2luY2lkZW5jZSBvciBhY3R1YWxseSByZXF1aXJlZD8gV291bGQgaXQgYmUgYW55IHByb2JsZW0sIHRoYXQgdGhlIG5leHQKbS1wbWQtcCB3b3VsZCBiZSA0LjAuMD8KCkFuZCBvbmUgbW9yZSBxdWVzdGlvbjogNC4wLjAtU05BUFNIT1Qgb3IgNC4wLVNOQVBTSE9UPwoKClJlZ2FyZHMsCgpBbmRyZWFzCgoKWzFdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTVBNRC0yNDAKCi0tPTIwCkFuZHJlYXMgRGFuZ2VsCmh0dHBzOi8vZ2l0aHViLmNvbS9hZGFuZ2VsCnNreXBlOiBhbmRyZWFzX2RhbmdlbAoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4MTMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIERlYyAyMiAwOToxMTo0MiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4MTMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOTk0OEQxMDVGNgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDIyIERlYyAyMDE3IDA5OjExOjQyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODIwODAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjIgRGVjIDIwMTcgMDk6MTE6NDIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgxOTk2IGludm9rZWQgYnkgdWlkIDUwMCk7IDIyIERlYyAyMDE3IDA5OjExOjQyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODE5ODUgaW52b2tlZCBieSB1aWQgOTkpOyAyMiBEZWMgMjAxNyAwOToxMTo0MSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMjIgRGVjIDIwMTcgMDk6MTE6NDEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA1NkZENDE4MDc5OQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjIgRGVjIDIwMTcgMDk6MTE6NDEgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMS4zClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xLjMgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgYlkzXzc5MDk2NmtXIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJRnJpLCAyMiBEZWMgMjAxNyAwOToxMTo0MCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMTEuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMzNdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQTIzQUU1RjEyMQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjIgRGVjIDIwMTcgMDk6MTE6MzkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMjEgd2l0aCBNRQoJaWQgb3hCWTF3MDBVMjBVZmR5MDN4QllVcjsgRnJpLCAyMiBEZWMgMjAxNyAxMDoxMTozMyArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBGcmksIDIyIERlYyAyMDE3IDEwOjExOjMzICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIFBERiBQbHVnaW4gdmVyc2lvbiAxLjQKRGF0ZTogRnJpLCAyMiBEZWMgMjAxNyAxMDoxMTozMiArMDEwMApNZXNzYWdlLUlEOiA8MzExMTAzMi5FdEZlVTFBbFBwQGdpZ2E+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdCaXQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJ1cy1hc2NpaSIKCkhpLAogICAgCldlIHNvbHZlZCAxMiBpc3N1ZXM6Cmh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KcHJvamVjdElkPTEyMzE3NjIwJnZlcnNpb249MTIzMzMzMzgmc3R5bGVOYW1lPVRleHQKICAgIApUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPXByb2plY3QlMjAlM0QlMjBNUERGJTIwQU5EJTIwc3RhdHVzCiUyMCUzRCUyME9wZW4lMjBPUkRFUiUyMEJZJTIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQwogICAgClN0YWdpbmcgcmVwbzoKaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM4NS8KaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM4NS9vcmcvYXBhY2hlLwptYXZlbi9wbHVnaW5zL21hdmVuLXBkZi1wbHVnaW4vMS40L21hdmVuLXBkZi1wbHVnaW4tMS40LXNvdXJjZS1yZWxlYXNlLnppcAogICAgClNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgptYXZlbi1wZGYtcGx1Z2luLTEuNC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogCjg4ZDJkMjU0ZTY3NDkzOGIxOTdkZjZiMzdiNTRjNzVlYzgxN2ZjZjQKICAgIApTdGFnaW5nIHNpdGU6Cmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLXBkZi1wbHVnaW4tTEFURVNULwogICAgCkd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgpodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAogICAgClZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCiAgICAKWyBdICsxClsgXSArMApbIF0gLTEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDg1My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgRGVjIDI4IDA4OjI2OjEwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg1My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAzQjI4MjE3ODFCCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjggRGVjIDIwMTcgMDg6MjY6MTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2OTA1MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBEZWMgMjAxNyAwODoyNjowOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjg5NzEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggRGVjIDIwMTcgMDg6MjY6MDkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2ODk2MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IERlYyAyMDE3IDA4OjI2OjA5IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyOCBEZWMgMjAxNyAwODoyNjowOSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDA5MjExMUEwODE1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyOCBEZWMgMjAxNyAwODoyNjowOSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xLjMKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEuMyB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIENhNXc0T0ZYVEhGYyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVRodSwgMjggRGVjIDIwMTcgMDg6MjY6MDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDA1LnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI3XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEM0RTYxNUYyMDEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDI4IERlYyAyMDE3IDA4OjI2OjA2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDYyIHdpdGggTUUKCWlkIHJMUzUxdzAyRzIwVWZkeTAzTFM2OW47IFRodSwgMjggRGVjIDIwMTcgMDk6MjY6MDYgKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogVGh1LCAyOCBEZWMgMjAxNyAwOToyNjowNiArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gRG94aWEgU2l0ZXRvb2xzIHZlcnNpb24gMS44CkRhdGU6IFRodSwgMjggRGVjIDIwMTcgMDk6MjY6MDUgKzAxMDAKTWVzc2FnZS1JRDogPDMxMjU5MDguN1piVXRqVGx1a0BnaWdhPgpJbi1SZXBseS1UbzogPDIxOTMxMDcuY2lBM05PZFRPTkBnaWdhPgpSZWZlcmVuY2VzOiA8MjE5MzEwNy5jaUEzTk9kVE9OQGdpZ2E+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKaGVyZSBpcyBteSArMQoKUmVnYXJkcywKCkhlcnY9RTkKCkxlIGpldWRpIDIxIGQ9RTljZW1icmUgMjAxNywgMjM6MzE6MTQgQ0VUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOgo+IEhpLAo+PTIwCj4gV2Ugc29sdmVkIDcgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiBwcm9qZWN0SWQ9M0QxMjMxNzMyMCZ2ZXJzaW9uPTNEMTIzMzk2MTMmc3R5bGVOYW1lPTNEVGV4dAo+PTIwCj4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUzRCUyMERPWElBU0lURVRPTz0KTFMKPiAlMjBBTkQlMjBzdGF0dXMlMjAlM0QlMjBPcGVuJTIwT1JERVIlMjBCWSUyMGtleSUyMERFU0MlMkMlMjBwcmlvcml0eSUyMERFPQpTQwo+PTIwCj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzODQvCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM4NC9vcmcvYXBhY2hlLwo+IG1hdmVuL2RveGlhL2RveGlhLXNpdGV0b29scy8xLjgvZG94aWEtc2l0ZXRvb2xzLTEuOC1zb3VyY2UtcmVsZWFzZS56aXAKPj0yMAo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IGRveGlhLXNpdGV0b29scy0xLjgtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6Cj4gMDA1MWFmM2RhMmJhNjMyYTllMGY3NTNiMGZmYmMxNTM1ODk4NmNjZAo+PTIwCj4gU3RhZ2luZyBzaXRlOgo+IGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL2RveGlhL2RveGlhLXNpdGV0b29scy1hcmNoaXZlcy9kb3hpYS1zaXRldG9vbHMtTEE9ClRFUwo+IFQvCj49MjAKPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+PTIwCj4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPj0yMAo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQo+PTIwCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDI1My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gT2N0IDE2IDIyOjM2OjI5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI1My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA1NTIyQzEwNkRBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMTYgT2N0IDIwMTcgMjI6MzY6MjkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5NTc5NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNiBPY3QgMjAxNyAyMjozNjoyOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTU2ODcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTYgT2N0IDIwMTcgMjI6MzY6MjggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NTY2NiBpbnZva2VkIGJ5IHVpZCA5OSk7IDE2IE9jdCAyMDE3IDIyOjM2OjI4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAxNiBPY3QgMjAxNyAyMjozNjoyOCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDIwNEFFMUEyQTY4Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxNiBPY3QgMjAxNyAyMjozNjoyOCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xLjgyOApYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMS44MjggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W1JDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJU1BGX1NPRlRGQUlMPTAuOTcyXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHkyQmhLaTdWWFZpQiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMTYgT2N0IDIwMTcgMjI6MzY6MjcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDA1LnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI3XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDFDODBFNUYzREUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE2IE9jdCAyMDE3IDIyOjM2OjI3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDA5IHdpdGggTUUKCWlkIE5OY0wxdzAwMTIwVWZkeTAzTmNMMmY7IFR1ZSwgMTcgT2N0IDIwMTcgMDA6MzY6MjAgKzAyMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogVHVlLCAxNyBPY3QgMjAxNyAwMDozNjoyMCArMDIwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJvdXRlbXkgPGhib3V0ZW15QGFwYWNoZS5vcmc+ClRvOiBhbm5vdW5jZUBtYXZlbi5hcGFjaGUub3JnLCB1c2Vyc0BtYXZlbi5hcGFjaGUub3JnCkNjOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBbQU5OXSBBcGFjaGUgTWF2ZW4gUmVwb3J0aW5nIEV4ZWN1dG9yIDEuNCBSZWxlYXNlZApEYXRlOiBUdWUsIDE3IE9jdCAyMDE3IDAwOjM2OjE5ICswMjAwCk1lc3NhZ2UtSUQ6IDwzMTMxNTg1LkgzNktCdXVJb0tAZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zNy1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Qml0CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0idXMtYXNjaWkiCgpUaGUgTWF2ZW4gdGVhbSBpcyBwbGVhc2VkIHRvIGFubm91bmNlIHRoZSByZWxlYXNlIG9mIHRoZSBBcGFjaGUgTWF2ZW4gClJlcG9ydGluZyBFeGVjdXRvciwgdmVyc2lvbiAxLjQKCkNsYXNzZXMgdG8gbWFuYWdlIHJlcG9ydCBwbHVnaW4gZXhlY3V0aW9ucyB3aXRoIE1hdmVuIDMuCgpodHRwczovL21hdmVuLmFwYWNoZS5vcmcvc2hhcmVkL21hdmVuLXJlcG9ydGluZy1leGVjLwoKWW91IHNob3VsZCBzcGVjaWZ5IHRoZSB2ZXJzaW9uIGluIHlvdXIgcHJvamVjdCdzIGRlcGVuZGVuY3kgY29uZmlndXJhdGlvbjoKCjxkZXBlbmRlbmN5PgogIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4uc2hhcmVkPC9ncm91cElkPgogIDxhcnRpZmFjdElkPm1hdmVuLXJlcG9ydGluZy1leGVjPC9hcnRpZmFjdElkPgogIDx2ZXJzaW9uPjEuNDwvdmVyc2lvbj4KPC9kZXBlbmRlbmN5PgoKClJlbGVhc2UgTm90ZXMgLSBBcGFjaGUgTWF2ZW4gUmVwb3J0aW5nIEV4ZWN1dG9yIC0gVmVyc2lvbiAxLjQKCkJ1ZwoqIFtNU0hBUkVELTYxNl0gRGVwZW5kZW5jaWVzIGluc2lkZSBwbHVnaW5NYW5hZ2VtZW50IGFyZSBub3QgdGFrZW4gaW50byAKYWNjb3VudCBpbiByZXBvcnRpbmcKCkltcHJvdmVtZW50CiogW01TSEFSRUQtNjQ3XSBkaXNwbGF5IHdoYXQgcmVwb3J0cyBhcmUgYWRkZWQgYXV0b21hdGljYWxseSB3aGVuIG5vIHJlcG9ydFNldCAKaXMgZGVmaW5lZAoqIFtNU0hBUkVELTYyOF0gc3VwcG9ydCBtYXZlbi1tb2RlbCBSZXBvcnRQbHVnaW4gaW4gYWRkaXRpb24gdG8gbG9jYWwgY29weQoKCkVuam95LAoKLVRoZSBNYXZlbiB0ZWFtCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODgwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBEZWMgMzAgMTc6MjY6NTggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODgwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEQ2NDQ1MTc2NUIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAzMCBEZWMgMjAxNyAxNzoyNjo1OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDkxMTU4IGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIERlYyAyMDE3IDE3OjI2OjU4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MTA3MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMCBEZWMgMjAxNyAxNzoyNjo1OCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkxMDYxIGludm9rZWQgYnkgdWlkIDk5KTsgMzAgRGVjIDIwMTcgMTc6MjY6NTggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDMwIERlYyAyMDE3IDE3OjI2OjU4ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQTc1NzBDMzIwRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMzAgRGVjIDIwMTcgMTc6MjY6NTcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjA0OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjA0OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsCglLQU1fTE9UU09GSEFTSD0wLjI1LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB3OWFaLVEyWUo2TjIgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsIDMwIERlYyAyMDE3IDE3OjI2OjU0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwNC5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyNl0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAyQTM0RTVGMjNECglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAzMCBEZWMgMjAxNyAxNzoyNjo1NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ1MSB3aXRoIE1FCglpZCBzSFNzMXcwMDYyMFVmZHkwM0hTc3dQOyBTYXQsIDMwIERlYyAyMDE3IDE4OjI2OjUzICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFNhdCwgMzAgRGVjIDIwMTcgMTg6MjY6NTMgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW0lNUE9SVEFOVF0gUmU6IEdpdCBtaWdyYXRpb24gbmV4dCBzdGVwcwpEYXRlOiBTYXQsIDMwIERlYyAyMDE3IDE4OjI2OjUyICswMTAwCk1lc3NhZ2UtSUQ6IDwzMTg2MjU5Lmd5ZVZOV2s5NmdAZ2lnYT4KSW4tUmVwbHktVG86IDxDQUxhVGVDck8rTzdNVGRReFVVY1Q5SG83SEFVX05hTzlhQjBKTUU4RXFOcXdfZWJfNEFAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDw3MzhjOTlkMy00NDQxLTc0MWUtMTZkZi03NDdjNWY0ZjViMWNAZ214LmRlPiA8MjU2NTg1NC44MEo4THgydkx1QGdpZ2E+IDxDQUxhVGVDck8rTzdNVGRReFVVY1Q5SG83SEFVX05hTzlhQjBKTUU4RXFOcXdfZWJfNEFAbWFpbC5nbWFpbC5jb20+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKdGhhbmsgeW91IFBsYW1lbjogdGhpcyBzY3JpcHQgaXMgcmVhbGx5IGF3ZXNvbWUhCgpJIHJld29ya2VkIGl0IGEgbGl0dGxlIGJpdCBhbmQganVzdCBhZGRlZCBpdCB0byBvdXIgc3ZuIGdpdCBtaWdyYXRpb24gc2NyaXA9CnRzPTIwCmFyZWEgWzFdCgpBbmQgSSBqdXN0IHB1c2hlZCB0aGUgcmVzdWx0IG9uIG1hdmVuLWFjci1wbHVnaW46IHlvdSBjYW4gc2VlIHRoZSByZXN1bHQgbGk9CnZlLgpBcyB5b3UgY2FuIHNlZSwgdGhlIHRhZ3Mgb24gR2l0Qm94IFsyXSBhcmUgdXBkYXRlZCBidXQgbm90IHRoZSB0YWdzIG9uIEdpdEg9CnViPTIwClszXSBldmVuIGlmIEkgdHJpZWQgdG8gZm9yY2UgdG8gR2l0SHViIChhbmQgaXQgbG9va2VkIG9rKQpJIGRvbid0IGtub3cgaWYgaXQncyBhIG1ham9yIGlzc3VlCgpUaGUgcmV3b3JrIG9mIHRhZ3MgaXMgb2sgZm9yIDQyMCB0YWdzIG9uIHBsdWdpbnMsIGFuZCBmYWlscyBmb3IgMzE6Cj0yRCAxNiB0YWdzIGRvbid0IHBvaW50IHRvIGEgcmVsZWFzZSBwbHVnaW4gY29tbWl0IFs0XQo9MkQgMTUgdGFncyBoYXZlIGFuIGlzc3VlIEkgZG9uJ3QgcmVhbGx5IHVuZGVyc3RhbmQgeWV0IFs1XQoKSSdsbCBzdGlsbCBpbnZlc3RpZ2F0ZSBvbiB0aGVzZSAzMSBpc3N1ZXMgdG8gc2VlIGlmIHNvbWUgY2FuIGJlIGZpeGVkIGVhc2lseQoKVGhlbiB3ZSdsbCBoYXZlIHRvIGRlY2lkZSBpZiB3ZSBwdXNoIHRoZXNlIG5ldyB0YWdzIG9uIHBsdWdpbnMgKHdpdGggcmV3cml0PQplPTIwCmZvciBzb21lKS4KQW5kIHNhbWUgd2lsbCBoYXZlIHRvIGJlIGRvbmUgb24gc2hhcmVkLCBhbmQgb24gc2tpbnMgKEkgY2hlY2tlZDogc2FtZT0yMApicmFuY2hlcyBpc3N1ZXMgdGhhdCB3ZXJlIG5vdCBzZWVuIGJlZm9yZS4uLikKCgpPbmNlIGFnYWluLCB0aGFuayB5b3UgUGxhbWVuIGZvciB5b3VyIGhlbHA6IHdpdGhvdXQgaXQsIHdlIHdvdWxkIGhhdmUgYmVlbiA9CmluPTIwCmEgaGFyZCBzaXR1YXRpb24KClJlZ2FyZHMsCgpIZXJ2PUU5CgpbMV0gaHR0cDovL3N2bi5hcGFjaGUub3JnL3IxODE5NjMyCgpbMl0gaHR0cHM6Ly9naXRib3guYXBhY2hlLm9yZy9yZXBvcy9hc2Y/cD0zRG1hdmVuLWFjci1wbHVnaW4uZ2l0O2E9M0R0YWdzCgpbM10gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1hY3ItcGx1Z2luL3RyZWUvbWF2ZW4tYWNyLXBsdWdpbi0zLjAuMAoKWzRdPTIwCm1hdmVuLWFzc2VtYmx5LXBsdWdpbi0yLjItYmV0YS00Cm1hdmVuLWFzc2VtYmx5LXBsdWdpbi0yLjYKbWF2ZW4tY2hlY2tzdHlsZS1wbHVnaW4tMi4xMQptYXZlbi1jb21waWxlci1wbHVnaW4tMi4wLjEKbWF2ZW4tZGVwZW5kZW5jeS1wbHVnaW4tMi4wLWFscGhhLTEtUkMyCm1hdmVuLWRlcGVuZGVuY3ktcGx1Z2luLTIuMC1hbHBoYS0yCm1hdmVuLWhlbHAtcGx1Z2luLTIuMC4xCm1hdmVuLXByb2plY3QtaW5mby1yZXBvcnRzLXBsdWdpbi1tdm4lMjByZWxlYXNlJTNBcHJlcGFyZQptYXZlbi1zaGFkZS1wbHVnaW4tMS4wLWFscGhhLTEzCm1hdmVuLXNoYWRlLXBsdWdpbi0xLjAtYWxwaGEtMTQKbWF2ZW4tc2hhZGUtcGx1Z2luLTEuMC1hbHBoYS0xNQptYXZlbi1zaXRlLXBsdWdpbi0yLjQKbWF2ZW4tc2l0ZS1wbHVnaW4tMy4wLWJldGEtMQptYXZlbi1zaXRlLXBsdWdpbi0zLjAtYmV0YS0yCm1hdmVuLXNpdGUtcGx1Z2luLTMuMC1iZXRhLTMKbWF2ZW4tc2l0ZS1wbHVnaW4tcHJlLWNvbXBhdC13aXRoLWRveGlhLTEuMC1hbHBoYS03CgpbNV09MjAKbWF2ZW4tYW50cnVuLXBsdWdpbi0xLjUgLSB0aGUgY29tbWl0IGNyZWF0ZWQgYnkgdGhlIHJlbGVhc2UgcGx1Zy1pbj0yMAo2NTEwNTI0MTJhNGIzMWIwNDU5NzQ2NzdkMmY5MDMwZDliZDA3NmJhIGRvZXMgbm90IGhhdmUgdGhlIHNhbWUgZmlsZXMgYXMgdGg9CmU9MjAKdGFnIDZkY2RiOGYxYThjNTNkZmI4ZGZlYWYxMjI4MGMwOTk1YzYwMjI1MDIuIFNraXBwaW5nLgptYXZlbi1hc3NlbWJseS1wbHVnaW4tMi4xIC0gdGhlIGNvbW1pdCBjcmVhdGVkIGJ5IHRoZSByZWxlYXNlIHBsdWctaW49MjAKZjJkZWM3YWRlYzgyNTVjYjZmNTkxOWJjYzA5OGEzMWQxZTA3YTQ2YiBkb2VzIG5vdCBoYXZlIHRoZSBzYW1lIGZpbGVzIGFzIHRoPQplPTIwCnRhZyBmY2JkZTE3ZTA0YzYwMGI2YWQ3YjM5N2I2YmQyOTk0NjUwZjBhYmY1LiBTa2lwcGluZy4KbWF2ZW4tYXNzZW1ibHktcGx1Z2luLTIuMi1iZXRhLTEgLSB0aGUgY29tbWl0IGNyZWF0ZWQgYnkgdGhlIHJlbGVhc2UgcGx1Zy1pPQpuPTIwCmEyNjIyYzhlMTU5YjdjYWM2NTNjMTllZTM3MmMzOTY3NzdkYTg3NzMgZG9lcyBub3QgaGF2ZSB0aGUgc2FtZSBmaWxlcyBhcyB0aD0KZT0yMAp0YWcgMmU5Njc2NWE5NjVmY2U1ZTYwMGY1OTgxNzFkY2ZlZmQ4NzcwOTQ2YS4gU2tpcHBpbmcuCm1hdmVuLWNsZWFuLXBsdWdpbi0yLjMgLSB0aGUgY29tbWl0IGNyZWF0ZWQgYnkgdGhlIHJlbGVhc2UgcGx1Zy1pbj0yMAphMjM5N2M0Y2I3OWJjZTU4NTQ1NzEwNTNlNWU2YmI1N2Y4MTFmZTViIGRvZXMgbm90IGhhdmUgdGhlIHNhbWUgZmlsZXMgYXMgdGg9CmU9MjAKdGFnIDgzYjU1ZmEwZWZkMTk3ZWRhM2NjZjlkNDFmMGU2NTg0MjdkZTE2YmYuIFNraXBwaW5nLgptYXZlbi1kZXBlbmRlbmN5LXBsdWdpbi0yLjAgLSB0aGUgY29tbWl0IGNyZWF0ZWQgYnkgdGhlIHJlbGVhc2UgcGx1Zy1pbj0yMAo0M2EwMWY1ZjlkMGE5ODk1NjAzNDkyNzFkOTA4MWZiYTQwMmVkMjEyIGRvZXMgbm90IGhhdmUgdGhlIHNhbWUgZmlsZXMgYXMgdGg9CmU9MjAKdGFnIDQzNWFiN2RmMjRmNTJlMWEyYmU2YjA3MThkYmI2YTZjOTg0NTJkZWIuIFNraXBwaW5nLgptYXZlbi1kZXBlbmRlbmN5LXBsdWdpbi0yLjAtYWxwaGEtMSAtIHRoZSBjb21taXQgY3JlYXRlZCBieSB0aGUgcmVsZWFzZSBwbHU9CmctCmluIGEwOGQ2NWU2OGRmNzM3Zjg4ZjUzMmE0YzgyODcxNTI0OWMzMGI1N2UgZG9lcyBub3QgaGF2ZSB0aGUgc2FtZSBmaWxlcyBhcz0KIHRoZT0yMAp0YWcgZTJhMTVkNjc5ZThlMGM0NmFjMGE0NTI1YWIwMTI3ZDU4ZGQ4OWUxNi4gU2tpcHBpbmcuCm1hdmVuLWRlcGVuZGVuY3ktcGx1Z2luLTIuMSAtIHRoZSBjb21taXQgY3JlYXRlZCBieSB0aGUgcmVsZWFzZSBwbHVnLWluPTIwCmI5Y2JhYmMwYmUyZDQ0ZmEwNWM0Y2ZmMmNkYjEwMzAwY2ZlMWMzYjEgZG9lcyBub3QgaGF2ZSB0aGUgc2FtZSBmaWxlcyBhcyB0aD0KZT0yMAp0YWcgNmM3MWE5NzE4YzZjZTg3OWQ1YjY0YjFiNWQwOGY1NDE5ZTI0ZTYxNS4gU2tpcHBpbmcuCm1hdmVuLWhlbHAtcGx1Z2luLTIuMCAtIHRoZSBjb21taXQgY3JlYXRlZCBieSB0aGUgcmVsZWFzZSBwbHVnLWluPTIwCjI3N2RiZGEwZjEwYTI5OGM2ZDcyOTM5YTIzZmQ2ZDM2YzA0YzgzN2IgZG9lcyBub3QgaGF2ZSB0aGUgc2FtZSBmaWxlcyBhcyB0aD0KZT0yMAp0YWcgNmYzNjBlM2JkNjIxYTlhY2Q0OWQyODQwMDY0NDBkZjU2M2ViNTZkNy4gU2tpcHBpbmcuCm1hdmVuLWludm9rZXItcGx1Z2luLTEuOC4xIC0gdGhlIGNvbW1pdCBjcmVhdGVkIGJ5IHRoZSByZWxlYXNlIHBsdWctaW49MjAKMzNiYWUwYmQ2YTViYTkyMjE1YjdiODVmZDgyZDBjNjhmYjAwYmM4ZSBkb2VzIG5vdCBoYXZlIHRoZSBzYW1lIGZpbGVzIGFzIHRoPQplPTIwCnRhZyBiNzViMjc0ZDAzYzY0ZGM5ZTljMTY0YzExOGEyYTI1YTA0NDZiMTAwLiBTa2lwcGluZy4KbWF2ZW4tamF2YWRvYy1wbHVnaW4tMi4yIC0gdGhlIGNvbW1pdCBjcmVhdGVkIGJ5IHRoZSByZWxlYXNlIHBsdWctaW49MjAKOGE0ZDYwODU3MTc5NTEzMWY3Nzc5Y2FlMWVjOWRjMTQzMTFiMzZiOSBkb2VzIG5vdCBoYXZlIHRoZSBzYW1lIGZpbGVzIGFzIHRoPQplPTIwCnRhZyBlMjk0Nzk0NGNkODkwNTVlOTBmYjU3YjgwYTg0Njk3YjgzZDU1YzViLiBTa2lwcGluZy4KbWF2ZW4tcmFyLXBsdWdpbi0yLjEgLSB0aGUgY29tbWl0IGNyZWF0ZWQgYnkgdGhlIHJlbGVhc2UgcGx1Zy1pbj0yMAphYjJkMTM2ZGVlZTYxZGM5NDdmNmU5YmJmNWQxZDQzNzM3NjA0ZGI2IGRvZXMgbm90IGhhdmUgdGhlIHNhbWUgZmlsZXMgYXMgdGg9CmU9MjAKdGFnIGIyNDZjYjU1OGE5NGQzZWU4NWRhMTdhNzI4ZTYwNTkwYTc3NzZlMGUuIFNraXBwaW5nLgptYXZlbi1yZW1vdGUtcmVzb3VyY2VzLXBsdWdpbi0xLjAtYWxwaGEtNiAtIHRoZSBjb21taXQgY3JlYXRlZCBieSB0aGUgcmVsZWE9CnNlPTIwCnBsdWctaW4gY2EwNTQ2YjYxNTQxMDY3OTgzYmQ4MTkzNTBhMTNiYWQyNTU5MmQ3MiBkb2VzIG5vdCBoYXZlIHRoZSBzYW1lIGZpbD0KZXM9MjAKYXMgdGhlIHRhZyA4MTk0M2I3NjY4ODhjMTkwMjEwOGRlYzExYWNlN2M0MjEzNjBlM2Y5LiBTa2lwcGluZy4KbWF2ZW4tc2hhZGUtcGx1Z2luLTEuMCAtIHRoZSBjb21taXQgY3JlYXRlZCBieSB0aGUgcmVsZWFzZSBwbHVnLWluPTIwCjBiYmJjZjE4ZTU0MjhjNjNkZDA1OTBhMWEyNDM1YjYyMTc1ZTE5Y2QgZG9lcyBub3QgaGF2ZSB0aGUgc2FtZSBmaWxlcyBhcyB0aD0KZT0yMAp0YWcgYjJkODA4YTk0ZjFiZWU2MzVkZTFiMzJkYTI2MDVkM2EwYjk0M2MwMy4gU2tpcHBpbmcuCm1hdmVuLXNoYWRlLXBsdWdpbi0yLjQuMyAtIHRoZSBjb21taXQgY3JlYXRlZCBieSB0aGUgcmVsZWFzZSBwbHVnLWluPTIwCmE0YTRiYzk1YTYxYWVlOWU3MGU3ZDQ0YWUxNDAyMDM0NDBkZTY0ZGUgZG9lcyBub3QgaGF2ZSB0aGUgc2FtZSBmaWxlcyBhcyB0aD0KZT0yMAp0YWcgZTExZGQzOTgyMjQ5YTQ1MmIxYzFlYzFhZDNjY2MyYTI0MjhmODYwZi4gU2tpcHBpbmcuCm1hdmVuLXNvdXJjZS1wbHVnaW4tMi4wLjIgLSB0aGUgY29tbWl0IGNyZWF0ZWQgYnkgdGhlIHJlbGVhc2UgcGx1Zy1pbj0yMAo2ZGZjNDRiMWZhY2NlNTRjZGNjYmVhNDRmZWEyNmRiMDk2N2U2ZjM3IGRvZXMgbm90IGhhdmUgdGhlIHNhbWUgZmlsZXMgYXMgdGg9CmU9MjAKdGFnIDUwMjk1MjI3MTZiNWE4ODYxNTU5NjdkOWQ0Y2EwZTlhZWMzNjM4NzYuIFNraXBwaW5nLgoKCkxlIHZlbmRyZWRpIDI5IGQ9RTljZW1icmUgMjAxNywgMTA6MjY6MTcgQ0VUIFBsYW1lbiBUb3RldiBhID1FOWNyaXQgOgo+IEhpLAo+PTIwCj4gSSd2ZSBjcmVhdGVkIHRoZSBzY3JpcHQuIE5vdCBzdXJlIGhvdyB0byBzaGFyZSBpdCB3aXRoIHRoZSBsaXN0IHNvCj4gSSd2ZSBjcmVhdGVkIGEgZ2lzdCAtCj4gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vcGxhbWVudG90ZXYvYjgzNWRkNjJjNzRhM2E1YmVjZDRjMzE3Yjk3NDAzYTQKPj0yMAo+IEl0IHdpbGwgbWlncmF0ZSB0aGUgdGFncyBmb3IgYWxsIHJlcG9zaXRvcmllcyBpbiBwbHVnaW5zL21hdmVuLSogQWxzbwo+IGl0IGNoZWNrcyBmb3IgdGhlICdnaXQtc3ZuJyBzdHJpbmcgaW4gdGhlIGNvbW1pdCBtZXNzYWdlIHNvIGl0IHdpbGwKPiBub3QgbWlncmF0ZSB0YWdzIGNyZWF0ZWQgYWZ0ZXIgdGhlIGdpdCBtaWdyYXRpb24uCj4gQW5kIEkgaGF2ZSBjb21tZW50ZWQgdGhlIGBnaXQgdGFnYCBjb21tYW5kIHNvIGJ5IGRlZmF1bHQgaXQgd2lsbCBiZQo+IHJ1biBpbiAiZHJ5IG1vZGUiIHRoYXQgd2lsbCBwcmludCBhbGwgZXJyb3JzIGZvdW5kIHdpdGhvdXQgY2hhbmdpbmcKPiB0aGUgcmVwb3NpdG9yaWVzLgo+PTIwCj4gU3BlYWtpbmcgb2YgZXJyb3JzIC0gdGhlcmUgYXJlIGFib3V0IDMwIHRhZ3MgdGhhdCBjb3VsZCBub3QgYmUKPiBhdXRvbWF0aWNhbGx5IG1pZ3JhdGVkLiBUaGV5IGFyZSBhY3R1YWxseSB0d28gZ3JvdXAgb2YgZXJyb3JzOgo+PTIwCj4gKiB0aGUgInByZXBhcmUgcmVsZWFzZSIgY29tbWl0IGRvZXMgbm90IGhhdmUgdGhlIHNhbWUgZmlsZXMgYXMgdGhlIHRhZwo+IC0gbWVhbmluZyB0aGF0IG1vc3QgbGlrZWx5IHRoZSB0YWcgaW4gU1ZOIGlzIG5vdCBqdXN0IGEgY29weSBvZiB0aGUKPiAicHJlcGFyZSByZWxlYXNlIiBjb21taXQgYW5kIGNvbnRhaW5zIHNvbWUgY2hhbmdlcyBtYWRlIGFmdGVyIHRoYXQKPiAqIHRoZXJlIGlzIG5vICJwcmVwYXJlIHJlbGVhc2UiIGNvbW1pdCByZWFjaGFibGUgZnJvbSBtYXN0ZXIuIFRoYXQKPiBjb3VsZCBtZWFuIHRoYXQgdGhlIHRhZyBpcyBub3QgY3JlYXRlZCBieSB0aGUgcmVsZWFzZSBwbHVnaW4gYW5kCj4gc29tZXRpbWVzIHRoYXQgaXMgdGhlIGNhc2UsIGJ1dCBpdCBsb29rcyBsaWtlIHRoZSBtYWpvcml0eSBvZiB0aGUKPiBjYXNlcyBhcmUgYmVjYXVzZSB0aGUgcmVsZWFzZSBpcyBjcmVhdGVkIGZyb20gYnJhbmNoIGFuZCBub3QgZnJvbQo+IHRydW5rLiBBbmQgd2hpbGUgd2UncmUgb24gdGhlIHRvcGljIC0gbG9va3MgbGlrZSB0aGUgYnJhbmNoZXMgYXJlIG5vdAo+IG1pZ3JhdGVkIGludG8gdGhlIG1hdmVuLXBsdWdpbnMgcmVwb3NpdG9yeS4KPj0yMAo+IEFsc28gYXMgdGhlIHNjcmlwdCBtb2RpZmllcyB0aGUgdGFnIEkgZmVsbCBvYmxpZ2F0ZWQgdG8gbWVudGlvbiB0aGUKPiB1c3VhbCB3YXJuaW5nIHdoZW4gY2hhbmdpbmcgdGFncyAtCj4gaHR0cHM6Ly9naXQtc2NtLmNvbS9kb2NzL2dpdC10YWcjX29uX2JhY2tkYXRpbmdfdGFncwo+PTIwCj4gUmVnYXJkcywKPiBQbGFtZW4gVG90ZXYKPj0yMAo+IE9uIFRodSwgRGVjIDI4LCAyMDE3IGF0IDEwOjQzIEFNLCBIZXJ2PUU5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj49Cj0yMAp3cm90ZToKPiA+IEhpIFBsYW1lbiwKPiA+PTIwCj4gPiBUaGFuayB5b3UgZm9yIHlvdXIgaGVscAo+ID49MjAKPiA+IFllcywgSSBsb29rZWQgbW9yZSBpbiBkZXB0aCB0byBtYXZlbi1wbHVnaW5zIHN2bjJnaXQgbWlycm9yIGFuZCB0aGUgc3BsPQppdAo+ID4gcmVzdWx0IChnb3QgZnJvbSB0aGUgc3BsaXQgc2NyaXB0KTogdGhlIGlzc3VlIHdpdGggdGFncyBpcyBhbHJlYWR5IHRoZXJlCj4gPj0yMAo+ID4gSSBsaWtlIHRoZSBpZGVhIG9mIHJlY3JlYXRpbmcgdGFncyBmcm9tICJbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUKPiA+IHJlbGVhc2UgPG5hbWUgb2YgdGhlIHRhZz4iIGNvbW1pdCwgaWdub3JpbmcgdGhlICJbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dCj4gPiBjb3B5IGZvciB0YWcgPG5hbWUgb2YgdGhlIHRhZz4iIGNvbW1pdCB0aGF0IGRvbid0IGNoYW5nZSBhbnl0aGluZyBpbiBjbz0KZGUKPiA+PTIwCj4gPiBJZiB5b3UgY2FuIHByZXBhcmUgYSBzY3JpcHQgdG8gY3JlYXRlIHRoZSB0YWdzIHdpdGggdGhpcyBjb252ZW50aW9uLCBpdAo+ID4gd291bGQgcmVhbGx5IGJlIHVzZWZ1bCAoZG9uJ3QgZm9yZ2V0IHRoYXQgc29tZXRpbWVzIHRoZXJlIGFyZSBtdWx0aXBsZQo+ID4gdHJpZXMgYXQgb25lIHJlbGVhc2UsIHRoZW4gdGhlIHVzZWZ1bCB0YWcgaXMgdGhlIGxhc3Qgb25lIGluIHRpbWUpCj4gPj0yMAo+ID4gUmVnYXJkcywKPiA+PTIwCj4gPiBIZXJ2PUU5Cj4gPj0yMAo+ID4gTGUgbHVuZGkgMjUgZD1FOWNlbWJyZSAyMDE3LCAwOTo1ODozNiBDRVQgUGxhbWVuIFRvdGV2IGEgPUU5Y3JpdCA6Cj4gPj4gSGksCj4gPj49MjAKPiA+PiBXaGF0IEkgY2FuIHNlZSBpcyB0aGF0IHRoZSB0YWdzIGFjdHVhbGx5IGludHJvZHVjZSBuZXcgYnJhbmNoZXMgdGhhdAo+ID4+IGNvbnRhaW4gY29tbWl0cyB3aXRoIHRoZSBzYW1lIGNvbnRlbnQgYXMgdGhlIG9uZSBpbiB0aGUgbWFzdGVyICh0cnVuaykKPiA+PiBicmFuY2guIEJ1dCB0aGlzIGlzIG5vdCBjYXVzZWQgYnkgdGhlIHNjcmlwdCB0aGF0IHNwbGl0cyBvZiB0aGUKPiA+PiByZXBvc2l0b3J5IC0gdGhlIHByb2JsZW0gZXhpc3RzIGluIHRoZSBtYXZlbi1wbHVnaW5zIEdpdCByZXBvc2l0b3J5IGFzCj4gPj4gd2VsbC4gTWF5YmUgaXQncyBub3QgcXVpdGUgdmlzaWJsZSBiZWNhdXNlIHRoZXJlIGFyZSBhIGxvdCBvZiBjb21taXRzLAo+ID4+IGJ1dCBpdCdzIHRoZXJlLgo+ID4+PTIwCj4gPj4gSG93IGNhbiBpdCBiZSBmaXhlZD8gSSB0aGluayBpdCB3b3VsZCBiZSBlYXNpZXIgdG8gZml4IHRoZSBpbmRpdmlkdWFsCj4gPj4gcGx1Z2luIHJlcG9zaXRvcmllcyAoYWZ0ZXIgdGhlIHNwbGl0KSBhcyB0aGV5IGFyZSBzbWFsbGVyIGFuZCBlYXNpZXIKPiA+PiB0byB3b3JrIHdpdGguIFRoZSBwbGFuIGlzIHNpbXBsZSAtIGFzIHRoZSBicmFuY2hlcyBjcmVhdGVkIGJ5IHRoZSB0YWdzCj4gPj4gZG9lcyBub3QgY29udGFpbiBuZXcgY29tbWl0cyh3aXRoIGEgc2luZ2xlIGV4Y2VwdGlvbiBidXQgSSdsbCBleHBsYWluCj4gPj4gdGhhdCBpbiBhIG1pbnV0ZSkgYW5kIGFsbCBvZiB0aGVtIGFyZSBwcmVzZW50IGluIHRoZSBtYXN0ZXIgYnJhbmNoICB3ZQo+ID4+IGNvdWxkIGp1c3QgY2hhbmdlIHRoZSB0YWcgdG8gcG9pbnQgdG8gdGhlIHNhbWUgY29tbWl0cyBidXQgaW4gdGhlCj4gPj4gbWFzdGVyIGJyYW5jaC4gVGhhdCB3aWxsIGNhdXNlIGFsbCBleHRyYSBjb21taXRzIGFuZCBicmFuY2hlcyB0byBiZQo+ID4+IGdhcmJhZ2UgY29sbGVjdGVkIGFzIHRoZXkgYXJlIGFjY2Vzc2libGUgb25seSBmcm9tIHRoZSB0YWdzLiBGb3Igb3VyCj4gPj4gcHVycG9zZXMgY29tbWl0cyBhcmUgZXF1YWwgaWYgdGhleSBwb2ludCB0byB0aGUgc2FtZSByb290IHRyZWUgKHRoZQo+ID4+IHNhbWUgZmlsZXMgd2l0aCB0aGUgc2FtZSBjb250ZW50KS4gQnV0IHVuZm9ydHVuYXRlbHkgdGhlcmUgaXMgYSBjYXRjaC4KPiA+PiBXaGF0IEkgc2FpZCBhYm91dCB0aGUgYnJhbmNoZXMgY3JlYXRlZCBieSB0aGUgdGFncyBpcyBub3Qgc3RyaWN0bHkKPiA+PiB0cnVlIC0gdGhleSBkbyBoYXZlIHNvbWUgZXh0cmEgY29tbWl0cy4gV2hlbiB5b3UgcmVsZWFzZSBpbiBTVk4geW91Cj4gPj4gaGF2ZSB0aGUgZm9sbG93aW5nIHNlcXVlbmNlIG9mIGNvbW1pdHM6Cj4gPj49MjAKPiA+PiAqIFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gY29weSBmb3IgdGFnIG1hdmVuLXdhci1wbHVnaW4tMy4yLjAgKHRoaXMgaXMKPiA+PiB0aGUgdGFnZ2VkIGNvbW1pdCkKPiA+PiAqIFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSByZWxlYXNlIG1hdmVuLXdhci1wbHVnaW4tMy4yLjAKPiA+Pj0yMAo+ID4+IEFmdGVyIHRoZSBtaWdyYXRpb24gdG8gR2l0IHRoZSBtYXN0ZXIgKHRydW5rKSBicmFuY2ggY29udGFpbiBvbmx5IHRoZQo+ID4+ICdwcmVwYXJlIHJlbGVhc2UnIGNvbW1pdCBidXQgbm90IHRoZSAnY29weSBmb3IgdGFnJyBjb21taXQuIFNvIGlmIHdlCj4gPj4gYXBwbHkgbXkgcGxhbiB0aGVuIHRoZSAnY29weSBmb3IgdGFnJyBjb21taXQgd2lsbCBiZSBsb3N0LiBJdCdzIGp1c3QgYQo+ID4+IGNvcHkgKG5vIGNoYW5nZXMsIGl0IGNvbnRhaW5zIHRoZSBzYW1lIGZpbGVzIGFzIHRoZSBwcmV2aW91cyBjb21taXQpCj4gPj4gc28gSSBkb24ndCB0aGluayBpdCdzIGEgcHJvYmxlbSBidXQgd291bGQgYmUgbmljZSBpZiBzb21lYm9keQo+ID4+IGNvbmZpcm1zLgo+ID4+PTIwCj4gPj4gU28gdGhlIHByb3Bvc2VkIHBsYW4gaGF2ZSB0aGUgZm9sbG93aW5nIGNhdmVhdHM6Cj4gPj49MjAKPiA+PiAqIHRoZSAnY29weSBmb3IgdGFnJyBjb21taXRzIHdpbGwgYmUgbG9zdC4gTm8gY2hhbmdlcyB3aWxsIGJlIGxvc3QgYXMKPiA+PiB0aG9zZSBhcmUgb25seSBjb3B5IGNvbW1pdHMKPiA+PiAqIHRoZSB0YWdzIHdpbGwgcG9pbnQgdG8gdGhlIHByZXZpb3VzICdwcmVwYXJlIHJlbGVhc2UnIGNvbW1pdHMKPiA+PiAqIHRoZSB0YWdzIFNIQSB3aWxsIGJlIGNoYW5nZWQgYmVjYXVzZSB0aGV5IHBvaW50IHRvIGEgZGlmZmVyZW50IGNvbW1pdAo+ID4+PTIwCj4gPj4gSWYgdGhhdCBpcyBPSyBJIGNhbiB3cml0ZSBhIHNjcmlwdCB0aGF0IHdpbGwgYXBwbHkgdGhvc2UgY2hhbmdlcy4KPiA+Pj0yMAo+ID4+IFdoYXQgY2F1c2VzIHRoZSBicmFuY2hlcyBhbmQgYWxsIHRob3NlIGR1cGxpY2F0aW5nIGNvbW1pdHM/IFdlbGwgdGhlCj4gPj4gbWFzdGVyIGJyYW5jaCB0cmFja3MKPiA+PiBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9jb21wb25lbnRzL3RydW5rL21hdmVuLXBsdWdpbnMKPiA+PiBidXQgdGhlIHRhZ3MgZm9yIHRoZSBwbHVnaW5zIGFyZSBhY3R1YWxseSB0cmFja2luZyB0aGUgcGx1Z2luCj4gPj4gZGlyZWN0b3J5IChmb3IgZXhhbXBsZToKPiA+PiBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9jb21wb25lbnRzL3RydW5rL21hdmVuLXBsdWdpbnMvPQptYXYKPiA+PiBlbi0+IHdhci1wbHVnaW4pLiBTbyBmb3IgbWF2ZW4td2FyLXBsdWdpbnMgeW91IGhhdmUgdHdvIGNvbW1pdHMgaW4gdGhlCj4gPj4gbWF2ZW4tcGx1Z2lucyBHaXQgcmVwb3NpdG9yeSAtIG9uZSBmb3IKPiA+PiBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9jb21wb25lbnRzL3RydW5rL21hdmVuLXBsdWdpbnMvPQptYXYKPiA+PiBlbi0+IHdhci1wbHVnaW4gYW5kIG9uZSBmb3IKPiA+PiBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9jb21wb25lbnRzL3RydW5rLyBubyBtYXR0ZXIgdGhhdAo+ID4+IGFjdHVhbGx5IHRob3NlIGNvbW1pdHMgYXJlIHRoZSBzYW1lIC0gc2FtZSBkYXRlLAo+ID4+IGF1dGhvciwgbWVzc2FnZSwgZmlsZXMsIGV0Yy4KPiA+Pj0yMAo+ID4+IFJlZ2FyZHMsCj4gPj4gUGxhbWVuIFRvdGV2Cj4gPj49MjAKPiA+PiBPbiBTdW4sIERlYyAyNCwgMjAxNyBhdCAxMTo1NCBBTSwgIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdyb3RlOgo+ID4+ID4gSSdkIHN1Z2dlc3QgdG8gdHJ5IHRoZSBwcm9jZXNzIHRvIGEgcGVyc29uYWwgcGVyc29uYWwgcmVwbyBvbiBHaXRIdWI9CiB0bwo+ID4+ID4gc2VlIGlmIHlvdSdyZSBhYmxlIHRvIGdldCBhIGJldHRlciByZXN1bHQgYmVmb3JlIGludm9sdmluZyBtYW51YWwgd289CnJrCj4gPj4gPiBmcm9tIElORlJBIChvbiBtb3JlIHRoYW4gNjAgcmVwb3MuLi4pCj4gPj4gPj0yMAo+ID4+ID4gKGl0J3Mgc2FkIHRvIHNlZSBub2JvZHkgdHJ5IHRvIGV4cGxhaW4gd2hhdCdzIGhhcHBlbm5pbmcgb3IgaW1wcm92ZSA9CnRoZQo+ID4+ID4gZG9jdW1lbnRlZCBjb21tYW5kcywganVzdCBnZXQgdG8gYSBjb25jbHVzaW9uOiByZS1kbyBldmVyeXRoaW5nIGFuZAo+ID4+ID4gcHJheSkKPiA+PiA+PTIwCj4gPj4gPiBSZWdhcmRzLAo+ID4+ID49MjAKPiA+PiA+IEhlcnY9RTkKPiA+PiA+PTIwCj4gPj4gPiAtLS0tLSBNYWlsIG9yaWdpbmFsIC0tLS0tCj4gPj4gPiBEZTogIkthcmwgSGVpbnogTWFyYmFpc2UiIDxraG1hcmJhaXNlQGdteC5kZT4KPiA+PiA+ID1DMDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwgIlJvYmVydCBTY2hvbHRlIgo+ID4+ID4gPHJmc2Nob2x0ZUBhcGFjaGUub3JnPiBFbnZveT1FOTogRGltYW5jaGUgMjQgRD1FOWNlbWJyZSAyMDE3IDEwOjQ3OjQzCj4gPj4gPiBPYmpldDogUmU6IFtJTVBPUlRBTlRdIFJlOiBHaXQgbWlncmF0aW9uIG5leHQgc3RlcHMKPiA+PiA+PTIwCj4gPj4gPiBIaSwKPiA+PiA+PTIwCj4gPj4gPiBPbiAyNC8xMi8xNyAxMDo0MCwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4gPj4gPj4gSG93IGFib3V0IGEgaGFyZCByZXNldCBvciBkcm9wcGluZyB0aGUgcmVwbyBhbmQgZG9pbmcgaXQgYWxsIG92ZXIKPiA+PiA+PiBhZ2Fpbj8KPiA+PiA+PTIwCj4gPj4gPiBJZiBJIGNvcnJlY3RseSBzZWVuIHRoYXQgLi50aGVyZSBoYWQgbm8gY29tbWl0IHlldCBvbiB0aGUgbmV3IGdpdAo+ID4+ID4gcmVwb3MuLgo+ID4+ID49MjAKPiA+PiA+IFNvIEkgdGhpbmsgaXQgd291bGQgYmUgdGhlIGVhc2llc3Qgd2F5IHRvIGRvIGFzIFJvYmVydCBzdWdnZXN0IC4uLnRvCj4gPj4gPiByZWRvIG1pZ3JhdGlvbiBmb3IgdGhvc2UgcmVwb3MuLgo+ID4+ID49MjAKPiA+PiA+IEtpbmQgcmVnYXJkcwo+ID4+ID4gS2FybCBIZWluego+ID4+ID49MjAKPiA+PiA+PiBPbiBXZWQsIDIwIERlYyAyMDE3IDEwOjQyOjM2ICswMTAwLCBIZXJ2PUU5IEJPVVRFTVkKPiA+PiA+Pj0yMAo+ID4+ID4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdyb3RlOgo+ID4+ID4+PiBJTkZSQS0xNTY3OSBmaXhlZCBieSBpbmZyYSB0ZWFtCj4gPj4gPj4+IHRoZW4gSSByZS1ydW4gbWlncmF0ZS1wbHVnaW5zLnNoIHNjcmlwdCB0byBzcGxpdCB0aGUgc3ZuMmdpdCBtaXJyb3IKPiA+PiA+Pj4gdG8KPiA+PiA+Pj4gcGVyLQo+ID4+ID4+PiBwbHVnaW4gZ2l0IHJlcG8KPiA+PiA+Pj4gYW5kIEkgcHVzaGVkICJtYXN0ZXIyIiBicmFuY2hlcyBmb3IgbS1qYXZhZG9jLXAsIG0tc2l0ZS1wIGFuZAo+ID4+ID4+PiBtLXBkZi1wLAo+ID4+ID4+PiB3aGljaAo+ID4+ID4+PiB3ZXJlIHRoZSAzIHBsdWdpbnMgd2hpY2ggc3VmZmVyZWQgZnJvbSBtaXNzaW5nIGNvbW1pdHMKPiA+PiA+Pj49MjAKPiA+PiA+Pj4gb24gbS1zaXRlLXAgYW5kIG0tcGRmLXAsIEknbGwgY2hlcnJ5IHBpY2sgdGhlIHVuaXF1ZSBjb21taXQgdGhhdCB3PQphcwo+ID4+ID4+PiBtaXNzZWQ6Cj4gPj4gPj4+IG5vdCBhIGJpZyBkZWFsCj4gPj4gPj4+PTIwCj4gPj4gPj4+IG9uIG0tamF2YWRvYy1wLCB0aGUgc2l0dWF0aW9uIGlzIG1vcmUgY29wbGV4LCBzaW5jZSB0aGVyZSB3YXMgYQo+ID4+ID4+PiByZWxlYXNlCj4gPj4gPj4+PTIwCj4gPj4gPj4+IEkgYWxzbyBub3RpY2VkIHRoYXQgSSBmb3Jnb3QgdG8gcHVzaCB0YWdzIHdoZW4gaW1wb3J0aW5nOiBJIHN0YXJ0ZWQKPiA+PiA+Pj4gdG8KPiA+PiA+Pj4gZG8gImdpdAo+ID4+ID4+PiBwdXNoIC0tdGFncyIsIGJ1dCB0aGUgcmVzdWx0IGRvZXMgbm90IGxvb2sgYXMgSSBleHBlY3RlZDogaXQgY3JlYXQ9CmVzCj4gPj4gPj4+IGEKPiA+PiA+Pj4gbG90IG9mCj4gPj4gPj4+IHBhcmFsbGVsIGJyYW5jaGVzCj4gPj4gPj4+PTIwCj4gPj4gPj4+IEknbGwgbmVlZCBoZWxwIGZyb20gZ2l0IGV4cGVydHM6IHdoYXQgaXMgaGFwcGVuaW5nPwo+ID4+ID4+Pj0yMAo+ID4+ID4+PiBJIHN0b3BwZWQgdGhlIHRhZ3MgcHVzaCBoYWxmIHRoZSB3YXksIHdlJ2xsIG5lZWQgdG8gZGVjaWRlIHdoYXQgdG8KPiA+PiA+Pj4gZG8uLi4KPiA+PiA+Pj4gKEkga25ldyBJIHdhcyBub3QgYSBnaXQgZXhwZXJ0IGFuZCB0aGVyZSB3YXMgYSByaXNrIGZvciBzb21ldGhpbmcKPiA+PiA+Pj4gd2VpcmQgbGlrZQo+ID4+ID4+PiB3aGF0J3MgY3VycmVudGx5IGhhcHBlbmluZy4uLikKPiA+PiA+Pj49MjAKPiA+PiA+Pj4gQW55IGhpbnQ/Cj4gPj4gPj4+PTIwCj4gPj4gPj4+IFJlZ2FyZHMsCj4gPj4gPj4+PTIwCj4gPj4gPj4+IEhlcnY9RTkKPiA+PiA+Pj49MjAKPiA+PiA+Pj4gTGUgc2FtZWRpIDE2IGQ9RTljZW1icmUgMjAxNywgMTY6Mjg6NDggQ0VUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyPQppdCA6Cj4gPj4gPj4+PiBvaywgSSB3YXMgY29uZnVzZWQgYnkgdGhlIGRpZmZlcmVudCB0YWtlcyBhdCBtLWphdmFkb2MtcCAzLjAuMAo+ID4+ID4+Pj49MjAKPiA+PiA+Pj4+IHllcywgc3ZuMmdpdCBtaXJyb3IgaXMgc3R1Y2sgWzFdIGF0IHIxODE1Njc1Cj4gPj4gPj4+Pj0yMAo+ID4+ID4+Pj4gSSBqdXN0IG9wZW5lZCBhbiBJTkZSQSBKaXJhIGlzc3VlCj4gPj4gPj4+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0lORlJBLTE1Njc5Cj4gPj4gPj4+Pj0yMAo+ID4+ID4+Pj4gb25jZSB0aGUgc3ZuMmdpdCBtaXJyb3Igd2lsbCBiZSB1cGRhdGVkLCB3ZSdsbCBoYXZlIHRvIHJlLXJ1biB0aGUKPiA+PiA+Pj4+IHNwbGl0Cj4gPj4gPj4+PiBzY3JpcHRzIGFuZCBjaGVycnkgcGljayB0aGUgbWlzc2luZyBjb21taXRzCj4gPj4gPj4+Pj0yMAo+ID4+ID4+Pj4gUmVnYXJkcywKPiA+PiA+Pj4+PTIwCj4gPj4gPj4+PiBIZXJ2PUU5Cj4gPj4gPj4+Pj0yMAo+ID4+ID4+Pj4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9jb21taXRzL3RydW5rCj4gPj4gPj4+Pj0yMAo+ID4+ID4+Pj4gTGUgc2FtZWRpIDE2IGQ9RTljZW1icmUgMjAxNywgMTM6MDE6MDUgQ0VUIFJvYmVydCBTY2hvbHRlIGEgPUU5Y3I9Cml0IDoKPiA+PiA+Pj4+ID4gSSB3YXMgdHJpZ2dlcmVkIGJ5IHNvbWUgZmFpbGluZyB1bml0IHRlc3RzLCB3aGljaCBzaG91bGQgaGF2ZSBiPQplZW4KPiA+PiA+Pj4+PTIwCj4gPj4gPj4+PiBzb2x2ZWQKPiA+PiA+Pj4+PTIwCj4gPj4gPj4+PiA+IGluIG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wCj4gPj4gPj4+PiA+PTIwCj4gPj4gPj4+PiA+IE15IGxhc3QgY29tbWl0IGFjY29yZGluZyB0byBHSVQgd2FzIG5vdmVtYmVyIDE4dGgKPiA+PiA+Pj4+ID4gTXkgbGFzdCBjb21taXQgYWNjb3JkaW5nIHRvIFNWTiB3YXMgZGVjZW1iZXIgM3JkCj4gPj4gPj4+PiA+PTIwCj4gPj4gPj4+PiA+IGNvbXBhcmluZyBzdm5sb2cgd2l0aCBnaXRsb2cgbW9zdCBvZiB0aGVzZSBjb21taXRzIGFyZSBsb3N0Ogo+ID4+ID4+Pj4gPj0yMAo+ID4+ID4+Pj4gPiBtb3ZlZCB0byBnaXQKPiA+PiA+Pj4+ID4gLS0tLQo+ID4+ID4+Pj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgZm9yIG5leHQgZGV2ZWxvcG1lbnQgaXRlcmF0aW9uCj4gPj4gPj4+PiA+IC0tLS0KPiA+PiA+Pj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIHJlbGVhc2UgbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wPQo9MkUwCj4gPj4gPj4+PiA+IC0tLS0KPiA+PiA+Pj4+ID4gW01KQVZBRE9DLTQ5OF0gIm1vZHVsZSBub3QgZm91bmQiIHdoZW4gSmF2YSA5IG1vZHVsZS1pbmZvIHByZXNlPQpudAo+ID4+ID4+Pj4gPiBTdXBwb3J0IGFnZ3JhdGVkIGphdmFkb2MKPiA+PiA+Pj4+ID4gLS0tLQo+ID4+ID4+Pj4gPiBTa2lwIHNldmVyYWwgdW5pdHRlc3RzIGZvciBKYXZhOQo+ID4+ID4+Pj4gPiAtLS0tCj4gPj4gPj4+PiA+IEpESy04MDMyMjA1IHdhcyBjbG9zZWQgYXMgbm90IGFuIGlzc3VlLCBzbyBub3Qgc29sdmVkIGluIEphdmE5Lgo+ID4+ID4+Pj4gPiBOZWVkIHRvIHJldmlldyB0aGUgY29uY2x1c2lvbgo+ID4+ID4+Pj4gPiAtLS0tCj4gPj4gPj4+PiA+IFVwZ3JhZGUgbW9ja2l0byB0byByZW1vdmUgd2FybmluZyBhYm91dCBpbGxlZ2FsIHJlZmxlY3RpdmUgYWNjZT0Kc3MKPiA+PiA+Pj4+ID4gLS0tLQo+ID4+ID4+Pj4gPiBJbXByb3ZlIFRlc3RKYXZhZG9jUmVwb3J0VGVzdCN0ZXN0VGVzdEphdmFkb2MKPiA+PiA+Pj4+ID4gSjggd2FybnMgYW5kIGNvbnRpbnVlcyB3aXRoIG1pc3NpbmcgZGVwZW5kZW5jeSwgSjkgZmFpbHMuCj4gPj4gPj4+PiA+IEluIGZhY3QgdGVzdCB3YXMgd3Jvbmc6IGRlcGVuZGVuY3kgc2hvdWxkIGhhdmUgYmVlbiBvbiBjbGFzc3BhdGgKPiA+PiA+Pj4+ID4gLS0tLQo+ID4+ID4+Pj4gPiB1bml0dGVzdCBzaG91bGQgcHJlZmVyIEpBVkFfSE9NRSB3aGVuIGV4ZWN1dGluZyBmcm9tIGNtZGxpbmUKPiA+PiA+Pj4+ID4gV2hlbiBydW5uaW5nIHdpdGggSmF2YTkrIG5vIG5lZWQgdG8gc3dpdGNoIGZyb20ganJlIHRvIGpkawo+ID4+ID4+Pj4gPiBkaXJlY3RvcnkKPiA+PiA+Pj4+ID4gKGplcDIyMCkKPiA+PiA+Pj4+ID4gLS0tLQo+ID4+ID4+Pj4gPiBNSkFWQURPQy01MDIgVXBkYXRlIERFRkFVTFRfSkFWQV9BUElfTElOS1MKPiA+PiA+Pj4+ID4gLS0tLQo+ID4+ID4+Pj4gPiBzZXNzaW9uIGlzIHJlcXVpcmVkIHBhcmFtZXRlciwgc28gY2Fubm90IGJlIG51bGwuIEZpeCByZWxhdGVkCj4gPj4gPj4+Pj0yMAo+ID4+ID4+Pj4gdW5pdHRlc3RzCj4gPj4gPj4+Pj0yMAo+ID4+ID4+Pj4gPiAtLS0tCj4gPj4gPj4+PiA+IEFkZCBwcm9qZWN0L2FydGlmYWN0IGtleSB0byBzZXQgb2Ygc291cmNlUGF0aHMgdG8gcmVjb2duaXplCj4gPj4gPj4+PiA+IHJlYWN0b3IKPiA+PiA+Pj4+ID4gcHJvamVjdHMgdmVyc3VzIGRlcGVuZGVuY2llcwo+ID4+ID4+Pj4gPiAtLS0tCj4gPj4gPj4+PiA+IEdyb3VwIHNldHMgb2Ygc291cmNlcGF0aHMgcGVyIHByb2plY3QsIGluIHByZXBhcmUgb2YgdXNhZ2Ugb2YKPiA+PiA+Pj4+ID4gbW9kdWxlLXNvdXJjZS1wYXRoLgo+ID4+ID4+Pj4gPiAtLS0tCj4gPj4gPj4+PiA+IFN3aXRjaCBmcm9tIExpc3QgdG8gQ29sbGVjdGlvbiB0byBtYWtlIGl0IGVhc2llciB0byB1c2UgU2V0cyB3aD0KZW4KPiA+PiA+Pj4+ID4gcHJlZmVycmVkCj4gPj4gPj4+PiA+IC0tLS0KPiA+PiA+Pj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIGZvciBuZXh0IGRldmVsb3BtZW50IGl0ZXJhdGlvbgo+ID4+ID4+Pj4gPiAtLS0tCj4gPj4gPj4+PiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSByZWxlYXNlIG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMD0KPTJFMAo+ID4+ID4+Pj4gPiAtLS0tCj4gPj4gPj4+PiA+PTIwCj4gPj4gPj4+PiA+PTIwCj4gPj4gPj4+PiA+PTIwCj4gPj4gPj4+PiA+PTIwCj4gPj4gPj4+PiA+IE9uIFNhdCwgMTYgRGVjIDIwMTcgMTI6NTM6MjMgKzAxMDAsIEhlcnY9RTkgQk9VVEVNWQo+ID4+ID4+Pj49MjAKPiA+PiA+Pj4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPj4gPj4+Pj0yMAo+ID4+ID4+Pj4gPiB3cm90ZToKPiA+PiA+Pj4+ID4gPiBsb29raW5nIGF0IGNvbW1pdHNAIGNvbnRlbnQgaHR0cHM6Ly9saXN0cy5hcGFjaGUub3JnL2xpc3QuaHRtPQpsPwo+ID4+ID4+Pj4gPiA+IGNvbW1pdHNAbWF2ZW4uYXBhY2hlLm9yZyB3aXRoIHN1YmplY3QgY29udGFpbmluZwo+ID4+ID4+Pj49MjAKPiA+PiA+Pj4+ICJtYXZlbi9wbHVnaW5zL3RydW5rIgo+ID4+ID4+Pj49MjAKPiA+PiA+Pj4+ID4gPiBhbmQgcGx1Z2lucyBzdm4yZ2l0IG1pcnJvcgo+ID4+ID4+Pj4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9jb21taXRzLwo+ID4+ID4+Pj4gPiA+IHRydW5rCj4gPj4gPj4+PiA+ID49MjAKPiA+PiA+Pj4+ID4gPiBvbmx5IDEgY29tbWl0IGlzIG1pc3Npbmc6IG15IGxhdGVzdCBjb21taXQgb24gbWF2ZW4tc2l0ZS1wbHVnPQppbgo+ID4+ID4+Pj4gPiA+ICh0aGUgbGFzdCBjb21taXQgZm9yIEdpdCBtaWdyYXRpb24gaXMgbm90IHVzZWZ1bCkKPiA+PiA+Pj4+ID4gPj0yMAo+ID4+ID4+Pj4gPiA+PTIwCj4gPj4gPj4+PiA+ID4gU2FtZSBvbiBzaGFyZWQgc2hvd2VkIG5vIG1pc3NpbmcgY29tbWl0Lgo+ID4+ID4+Pj4gPiA+PTIwCj4gPj4gPj4+PiA+ID49MjAKPiA+PiA+Pj4+ID4gPiB3aGF0IGxhdGVzdCBjb21taXQgb2YgbWF2ZW4tamF2YWRvYy1wbHVnaW4gYXJlIHlvdSBsb29raW5nIGZvPQpyPwo+ID4+ID4+Pj4gPiA+PTIwCj4gPj4gPj4+PiA+ID4gUmVnYXJkcywKPiA+PiA+Pj4+ID4gPj0yMAo+ID4+ID4+Pj4gPiA+IEhlcnY9RTkKPiA+PiA+Pj4+ID4gPj0yMAo+ID4+ID4+Pj4gPiA+IExlIHNhbWVkaSAxNiBkPUU5Y2VtYnJlIDIwMTcsIDExOjU2OjMxIENFVCBSb2JlcnQgU2Nob2x0ZSBhID0KPUU5Y3JpdD0yMAo6Cj4gPj4gPj4+PiA+ID4+IEZvciBldmVyeWJvZHkganVzdCBhIHdhcm5pbmcgSSBmYWNlZCB0b2RheToKPiA+PiA+Pj4+ID4gPj4gSWYgeW91IHN3aXRjaCB0byB0aGUgZ2l0IHJlcG9zLCBwbGVhc2UgbWFrZSBzdXJlIGFsbCBjb21taXRzCj4gPj4gPj4+PiA+ID4+IGFyZQo+ID4+ID4+Pj4gPiA+PiBtaWdyYXRlZC4KPiA+PiA+Pj4+ID4gPj4gSSBub3RpY2VkIHRoZSBsYXRlc3QgY29tbWl0cyBvZiB0aGUgbWF2ZW4tamF2YWRvYy1wbHVnaW4gZ290Cj4gPj4gPj4+PiA+ID4+IGxvc3QuCj4gPj4gPj4+PiA+ID4+PTIwCj4gPj4gPj4+PiA+ID4+IHRoYW5rcywKPiA+PiA+Pj4+ID4gPj4gUm9iZXJ0Cj4gPj4gPj4+PiA+ID4+PTIwCj4gPj4gPj4+PiA+ID4+IE9uIFNhdCwgMDkgRGVjIDIwMTcgMTc6MDY6MDkgKzAxMDAsIFN0ZXBoZW4gQ29ubm9sbHkKPiA+PiA+Pj4+ID4gPj49MjAKPiA+PiA+Pj4+ID4gPj4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4+ID4+Pj4gPiA+PiA+IEkgc2VlIHdlIGhhdmUgYSBsYXJnZSBudW1iZXIgb2YgcmVwb3Mgbm93IG9uIGdpdGJveCA7LSkKPiA+PiA+Pj4+ID4gPj4gPj0yMAo+ID4+ID4+Pj4gPiA+PiA+IE9uIFRodSA3IERlYyAyMDE3IGF0IDA3OjAwLCBIZXJ2PUU5IEJPVVRFTVkKPiA+PiA+Pj4+ID4gPj4gPiA8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID4+ID4+Pj4gPiA+Pj0yMAo+ID4+ID4+Pj4gPiA+PiB3cm90ZToKPiA+PiA+Pj4+ID4gPj4gPj4gb2ssIEkgZGlkbid0IHVwZGF0ZSBteSByZXBvIGNsb25lOiBub3cgdGhlIHJ1bi1pdHMgcHJvZmlsZQo+ID4+ID4+Pj4gPiA+PiA+PiBpcwo+ID4+ID4+Pj4gPiA+Pj0yMAo+ID4+ID4+Pj4gPiA+PiBhY3RpdmF0ZWQKPiA+PiA+Pj4+ID4gPj49MjAKPiA+PiA+Pj4+ID4gPj4gPj4gdGhlbiB0aGUgcGxhbiBzaG91bGQganVzdCBjb25maXJtICJpdCB3b3JrcyEiIDopCj4gPj4gPj4+PiA+ID4+ID4+PTIwCj4gPj4gPj4+PiA+ID4+ID4+IGFuZCBmaW5kIHdoaWNoIGpvYnMgYXJlIHNwZWNpYWwsIGxpa2UgbWF2ZW4tZGlzdC10b29sICh3aD0KaWNoCj4gPj4gPj4+Pj0yMAo+ID4+ID4+Pj4gaGFzIHRvCj4gPj4gPj4+Pj0yMAo+ID4+ID4+Pj4gPiA+PiBiZQo+ID4+ID4+Pj4gPiA+Pj0yMAo+ID4+ID4+Pj4gPiA+PiA+PiBzY2hlZHVsZWQgZGFpbHkgaW5zdGVhZCBvZiBjb2RlIGNoYW5nZSwgYW5kIG9uZSBwbGF0Zm9ybQo+ID4+ID4+Pj4gPiA+PiA+PiBvbmx5KQo+ID4+ID4+Pj4gPiA+PiA+Pj0yMAo+ID4+ID4+Pj4gPiA+PiA+PiBSZWdhcmRzLAo+ID4+ID4+Pj4gPiA+PiA+Pj0yMAo+ID4+ID4+Pj4gPiA+PiA+PiBIZXJ2PUU5Cj4gPj4gPj4+PiA+ID4+ID4+PTIwCj4gPj4gPj4+PiA+ID4+ID4+IExlIG1lcmNyZWRpIDYgZD1FOWNlbWJyZSAyMDE3LCAyMzo1ODo0NSBDRVQgU3RlcGhlbiBDb25ubz0KbGx5IGEKPiA+PiA+Pj4+PTIwCj4gPj4gPj4+PiA9RTljcml0IDoKPiA+PiA+Pj4+ID4gPj4gPj4gPiBPbiBXZWQgNiBEZWMgMjAxNyBhdCAyMjozOCwgSGVydj1FOSBCT1VURU1ZCj4gPj4gPj4+Pj0yMAo+ID4+ID4+Pj4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPiA+PiA+Pj4+PTIwCj4gPj4gPj4+PiA+ID4+ID4+IHdyb3RlOgo+ID4+ID4+Pj4gPiA+PiA+PiA+ID4gTm93IHRoYXQgd2UgaGF2ZSAyIEFTRiBPcmdhbml6YXRpb24gSmVua2lucyBqb2JzIChvbmUKPiA+PiA+Pj4+ID4gPj4gPj4gPiA+IGZvcgo+ID4+ID4+Pj49MjAKPiA+PiA+Pj4+IGdpdGJveAo+ID4+ID4+Pj49MjAKPiA+PiA+Pj4+ID4gPj4gWzFdCj4gPj4gPj4+PiA+ID4+PTIwCj4gPj4gPj4+PiA+ID4+ID4+IGFuZAo+ID4+ID4+Pj4gPiA+PiA+Pj0yMAo+ID4+ID4+Pj4gPiA+PiA+PiA+ID4gb25lCj4gPj4gPj4+PiA+ID4+ID4+ID4gPiBmb3IgZ2l0LXdpcDogdGhhbmsgeW91IFN0ZXBoZW4pIGFuZCB0aGF0IGl0IGxvb2tzIHF1aT0KdGUKPiA+PiA+Pj4+ID4gPj49MjAKPiA+PiA+Pj4+ID4gPj4gc3VjY2Vzc2Z1bCwKPiA+PiA+Pj4+ID4gPj49MjAKPiA+PiA+Pj4+ID4gPj4gPj4gbGV0J3MKPiA+PiA+Pj4+ID4gPj4gPj49MjAKPiA+PiA+Pj4+ID4gPj4gPj4gPiA+IHBsYW4KPiA+PiA+Pj4+ID4gPj4gPj4gPiA+IHRoZSBuZXh0IHN0ZXBzLgo+ID4+ID4+Pj4gPiA+PiA+PiA+ID49MjAKPiA+PiA+Pj4+ID4gPj4gPj4gPiA+IEhlcmUgaXMgd2hhdCBJIHNlZToKPiA+PiA+Pj4+ID4gPj4gPj4gPiA+IDEuIHJlbW92YWwgb2YgaGFuZC1kZWZpbmVkIEplbmtpbnMgam9icyB0aGF0IGFyZSBub3cKPiA+PiA+Pj4+PTIwCj4gPj4gPj4+PiBkdXBsaWNhdGVzCj4gPj4gPj4+Pj0yMAo+ID4+ID4+Pj4gPiA+PiA+PiA+ID4gMi4gcHJlcGFyYXRpb24gb2YgdGhlIDYwIG5ldyBlbXB0eSBnaXQgcmVwb3MgZm9yIHNoYXI9CmVkCj4gPj4gPj4+PiA+ID4+ID4+ID4gPiAmCj4gPj4gPj4+PiA+ID4+ID4+ID4gPiBwbHVnaW5zCj4gPj4gPj4+PiA+ID4+ID4+ID4gPj0yMAo+ID4+ID4+Pj4gPiA+PiA+PiA+ID4gMy4gbWlncmF0aW9uIG9mIHRoZSAxIHNoYXJlZCBjb21wb25lbnQgYW5kIDEgcGx1Z2luCj4gPj4gPj4+PiA+ID4+ID4+ID4gPiB1c2luZwo+ID4+ID4+Pj4gPiA+PiA+Pj0yMAo+ID4+ID4+Pj4gPiA+PiA+PiBtaWdyYXRlLSouc2gKPiA+PiA+Pj4+ID4gPj4gPj49MjAKPiA+PiA+Pj4+ID4gPj4gPj4gPiA+IHNjcmlwdHMKPiA+PiA+Pj4+ID4gPj4gPj4gPiA+IFszXSB0byB0ZXN0IGFuZCBldmVudHVhbGx5IHJld29yayB0aGUgSmVua2luc2ZpbGUgKEkKPiA+PiA+Pj4+PTIwCj4gPj4gPj4+PiBzdXBwb3NlIGl0Cj4gPj4gPj4+Pj0yMAo+ID4+ID4+Pj4gPiA+PiB3aWxsCj4gPj4gPj4+PiA+ID4+PTIwCj4gPj4gPj4+PiA+ID4+ID4+ID4gPiByZXF1aXJlCj4gPj4gPj4+PiA+ID4+ID4+ID4gPiBzb21lIGxpdHRsZSBjaGFuZ2UsIHRvIHJ1biBhZGQgInJ1bi1pdHMiIHByb2ZpbGUpCj4gPj4gPj4+PiA+ID4+ID4+ID49MjAKPiA+PiA+Pj4+ID4gPj4gPj4gPiBBcyBmYXIgYXMgSSByZWNhbGwsIEkgYWRkZWQgLVArcnVuLWl0cyBhbHJlYWR5Cj4gPj4gPj4+PiA+ID4+ID4+ID49MjAKPiA+PiA+Pj4+ID4gPj4gPj4gPiBGb3IgdGhlIHBsdWdpbiwgSSdkIGxpa2UgdG8gZG8gdGhlIGpvYiBmb3IKPiA+PiA+Pj4+ID4gPj4gPj4gPiBtYXZlbi1zaXRlLXBsdWdpbiwKPiA+PiA+Pj4+ID4gPj49MjAKPiA+PiA+Pj4+ID4gPj4gc2luY2Ugd2UKPiA+PiA+Pj4+ID4gPj49MjAKPiA+PiA+Pj4+ID4gPj4gPj4gPiA+IGV4cGVjdAo+ID4+ID4+Pj4gPiA+PiA+PiA+ID4gdG8gcmVsZWFzZSBpdCBzb29uLgo+ID4+ID4+Pj4gPiA+PiA+PiA+ID4gRm9yIHRoZSBzaGFyZWQgY29tcG9uZW50LCBJIGRvbid0IGtub3cgaWYgdGhlcmUgaXMgYQo+ID4+ID4+Pj4gPiA+PiA+PiA+ID4gYmVzdAo+ID4+ID4+Pj4gPiA+Pj0yMAo+ID4+ID4+Pj4gPiA+PiBjYW5kaWRhdGUKPiA+PiA+Pj4+ID4gPj49MjAKPiA+PiA+Pj4+ID4gPj4gPj4gPiA+IDQuIG9uY2UgcHJldmlvdXMgc3RlcCBpcyBvaywgZG8gdGhlIGZ1bGwgbWlncmF0aW9uOiBpZgo+ID4+ID4+Pj49MjAKPiA+PiA+Pj4+IHRoZXJlIGFyZQo+ID4+ID4+Pj49MjAKPiA+PiA+Pj4+ID4gPj4gPj4gPiA+IHZvbHVudGVlcnMKPiA+PiA+Pj4+ID4gPj4gPj4gPiA+IGZvciBoZWxwaW5nLCB0aGF0IHdvdWxkIGJlIGdyZWF0LCBzaW5jZSBwb3B1bGF0aW5nIDYwCj4gPj4gPj4+PiA+ID4+ID4+ID4gPiBnaXQKPiA+PiA+Pj4+PTIwCj4gPj4gPj4+PiByZXBvcwo+ID4+ID4+Pj49MjAKPiA+PiA+Pj4+ID4gPj4gPj4gd29uJ3QKPiA+PiA+Pj4+ID4gPj4gPj4gYmUKPiA+PiA+Pj4+ID4gPj4gPj49MjAKPiA+PiA+Pj4+ID4gPj4gPj4gPiA+IHJlYWxseSBmdW4uLi4KPiA+PiA+Pj4+ID4gPj4gPj4gPiA+PTIwCj4gPj4gPj4+PiA+ID4+ID4+ID4gPiBBbmQgYXMgcGFydCBvZiA2MCBlbXB0eSBnaXQgcmVwb3MgY3JlYXRpb24sIEkgcHJvcG9zZT0KIHRvCj4gPj4gPj4+Pj0yMAo+ID4+ID4+Pj4gbWlncmF0ZQo+ID4+ID4+Pj49MjAKPiA+PiA+Pj4+ID4gPj4gdGhlCj4gPj4gPj4+PiA+ID4+PTIwCj4gPj4gPj4+PiA+ID4+ID4+ID4gPiAiR29vZ2xlCj4gPj4gPj4+PiA+ID4+ID4+ID4gPiByZXBvIG1hbmlmZXN0IiBtYXZlbi1hZ2dyZWdhdG9yIFs0XSB0byBBU0Y6IG15IHBlcnNvbj0KYWwKPiA+PiA+Pj4+PTIwCj4gPj4gPj4+PiB1c2UgaGFzCj4gPj4gPj4+Pj0yMAo+ID4+ID4+Pj4gPiA+PiBiZWVuCj4gPj4gPj4+PiA+ID4+PTIwCj4gPj4gPj4+PiA+ID4+ID4+IHF1aXRlCj4gPj4gPj4+PiA+ID4+ID4+PTIwCj4gPj4gPj4+PiA+ID4+ID4+ID4gPiBzdWNjZXNzZnVsLCBJIGhvcGUgaXQncyB0aGUgc2FtZSBmb3Igb3RoZXJzLiBQZXJoYXBzCj4gPj4gPj4+Pj0yMAo+ID4+ID4+Pj4gdGhlcmUgYXJlCj4gPj4gPj4+Pj0yMAo+ID4+ID4+Pj4gPiA+PiA+PiBiZXR0ZXIKPiA+PiA+Pj4+ID4gPj4gPj49MjAKPiA+PiA+Pj4+ID4gPj4gPj4gPiA+IGlkZWFzCj4gPj4gPj4+PiA+ID4+ID4+ID4gPiBmb3IgaXRzIG5hbWU6IG1hdmVuLWFnZ3JlZ2F0b3IKPiA+PiA+Pj4+ID4gPj4gPj4gPiA+PTIwCj4gPj4gPj4+PiA+ID4+ID4+ID4gPiBBbnkgb3RoZXIgaWRlYT8gYW55IG9iamVjdGlvbj8KPiA+PiA+Pj4+ID4gPj4gPj4gPiA+PTIwCj4gPj4gPj4+PiA+ID4+ID4+ID4gPiBSZWdhcmRzLAo+ID4+ID4+Pj4gPiA+PiA+PiA+ID49MjAKPiA+PiA+Pj4+ID4gPj4gPj4gPiA+IEhlcnY9RTkKPiA+PiA+Pj4+ID4gPj4gPj4gPiA+PTIwCj4gPj4gPj4+PiA+ID4+ID4+ID4gPiBbMV0KPiA+PiA+Pj4+PTIwCj4gPj4gPj4+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC8KPiA+PiA+Pj4+PTIwCj4gPj4gPj4+PiA+ID4+ID4+ID4gPiBbMl0KPiA+PiA+Pj4+PTIwCj4gPj4gPj4+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLXdpcC8KPiA+PiA+Pj4+PTIwCj4gPj4gPj4+PiA+ID4+ID4+ID4gPiBbM10KPiA+PiA+Pj4+ID4gPj49MjAKPiA+PiA+Pj4+ID4gPj4gaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy92aWV3dmMvbWF2ZW4vc2FuZGJveC90cnVuay9zY3JpcHRzL2dpPQp0Lwo+ID4+ID4+Pj4gPiA+Pj0yMAo+ID4+ID4+Pj4gPiA+PiA+PiA+ID4gWzRdIGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1hZ2dyZWdhdG9yCj4gPj4gPj0yMAo+ID4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID49MjAKPiA+PiA+PTIwCj4gPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj49MjAKPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj49MjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MDU4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBTZXAgMTggMTc6MDY6MjIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDU4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDM1NjU4QzA4OAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDE4IFNlcCAyMDE3IDE3OjA2OjIyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzEzNzUgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggU2VwIDIwMTcgMTc6MDY6MjEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDcxMjYyIGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IFNlcCAyMDE3IDE3OjA2OjIxIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzEyNTAgaW52b2tlZCBieSB1aWQgOTkpOyAxOCBTZXAgMjAxNyAxNzowNjoyMSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMTggU2VwIDIwMTcgMTc6MDY6MjEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBEQ0FBNDE4MzkzOAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTggU2VwIDIwMTcgMTc6MDY6MjAgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC43MjEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuNzIxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGN0bEFqUzhxejBXYiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMTggU2VwIDIwMTcgMTc6MDY6MTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbW91dC5nbXgubmV0IChtb3V0LmdteC5uZXQgWzIxMi4yMjcuMTcuMjFdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNjVEOEY1RkI3NgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTggU2VwIDIwMTcgMTc6MDY6MTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gS2FybC1IZWluenMtTUJQLmZyaXR6LmJveCAoWzE3OC40LjE3My45Ml0pIGJ5IG1haWwuZ214LmNvbQogKG1yZ214MTAzIFsyMTIuMjI3LjE3LjE2OF0pIHdpdGggRVNNVFBTQSAoTmVtZXNpcykgaWQKIDBNSWRZaS0xZHJtWmUyZGhJLTAwMktVcTsgTW9uLCAxOCBTZXAgMjAxNyAxOTowNjoxMCArMDIwMApSZXBseS1UbzogaW5mb0Bzb2ViZXMuZGUKU3ViamVjdDogUmU6IFN0YXJ0aW5nIGEgcHVyZSBKYXZhIDkgbW9kdWxhciBwcm9qZWN0ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwKIE1hcmsgUmF5bnNmb3JkIDxvcmcuYXBhY2hlLm1hdmVuLnVzZXJAaW83bS5jb20+ClJlZmVyZW5jZXM6IDwyMDE3MDkxODE1MTEzOS41MDA1MjM4YkBjb3BwZXJoZWFkLmludC5hcmM3LmluZm8+CkZyb206IEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPgpNZXNzYWdlLUlEOiA8MzFhOTQ1NjUtN2IzMi1kYTA1LTA0YTctNGM3NDE0ZmRhNzcyQGdteC5kZT4KRGF0ZTogTW9uLCAxOCBTZXAgMjAxNyAxOTowNjoxMiArMDIwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMTsgcnY6NTIuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzUyLjIuMQpNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPDIwMTcwOTE4MTUxMTM5LjUwMDUyMzhiQGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbz4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLUdCCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6aUR3Lzg0Mzk3VHNaZnBvTTEvc0RNL1pQMG9UeG9ZN0xsMGUxUWR2REJaZVRaVW5jQjdBCiBQTERjNEE0UGFxRzBxMXoybFllUThMRDdHbGpEbi9KUFBRNzY1c0ZuSUhZbVdiaFVYU1Q2UCtSdVpnaW02elhUaG94ZnV0eAogbkg0Tkc3Z1FhUU1FR0F4cVBPa2h5VzhVMENVN04vaUx1endIWDZ1M3R1S0JqZ3llbVV0SjZaR3VuZHRVS0hnVjgvbWtuZ0MKIC90djNjWU8xazJwdTFtRThRQ1JXQT09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6NDFmZWVCN0hFOWs9OjdVVkNIa1lsN0RxZEJHaFhUK0xPcnoKIG1tcmt1ZWJFYXBmdVpLQlFxNERIWXNRK2JUYjhIYlpPNmZJYThQQ0ZWNzhkNWdrOTlFTGJzcEJ6ekxoK3VjR3IrSFRTWno5dlEKIFZ4UnlLM1VaUno1K25DbXNudml0aGNYY01DWVVzbUlpNnQ4S0t3bUN2T1c5cWs4ZDdST1dTc3BRQ005YTRRMENHUlZkTzVzUUcKIGtFemtpVGx0Qll5cHBid3BCeCtWc0drWCsyaDFWUWluYjlZQkMvY3ZNU3JSUEs2bE93d2pHc0YzZ1FWcXEwQTlkSzZGMGhuR0oKIHRwN3k1UVkwUTVoRzA4azU3OGVQTW12L3pGVjBsWXE0WXFsT0VWaG44OEhWRUJvVXBnS3Exc0ZzR1pYNVk5RWdaaGh6Wi9oQWUKIFduV0JFODcrQXJzQmZuNEoxSWQvVE9yNWxZSWt3NVhnSWVzZk9SY3dBeFNiS2t3UzdQWW1rNTZIcmNVRHlXKzIzRksyMWxiYVEKIEVtNlhyNnZ0SFo5THllK2lEOEswS2VLak8zSnJLUkV0REJPZW13NUZLdWZQM3lObmxLVVhiUGc5WDBYQzFUVGZhZndjN05KZzkKIDdaYXJqaWtIVHVaMDFUK2x3YXRlbER4eGJJallzeElQQUtFeVB5aW1wdGs4Uy9jd2VwTjdSemcvSngzVkFVSnZYSFFDL3VTbzcKIGNUZHJGMlB2UVBOZWd1WDhSVTVVUDlPbkVSVysxUlVVQkFPNzJ4NWFueVZWSFVtQitsb2dHcG03Vk96cGd5QlBPUUdoZkpicDMKIDVJVjZueEc4L0ZNS29QVDNMMmkrYXQxa3RidHA0YUE3ZFhjYllVZFZ4NzhUS3pPM1ErZVJCWE1NcDkvbWZhTkp1aFRReUUrSXgKIDZQWEh2Rmc5T0kyRTltbHM4bVg3YUxMUUhtTkdDZTdlKy9WNUN0d0FLOFgwWnlCVk1takVIK1NTY1NqdmJNOEw4NEVFNHNNL2kKIFpLYi9QUWVYRGl5OVlkZHFjTTdkNkMwOGo1Uzk2WjBBMXBhRmwxdGxsWWtaV3B4T2hxQVVhVnJ0eU9XRFl1cTBMYmYzVTlIc0YKIHVqK3ZzY01OSForb0dBa3ltZzlZQkNkd1VrTEJrMzg0dCtUdkFmeHo2WHZIVTZZOUpnPQoKSGkgTWFyaywKCk9uIDE4LzA5LzE3IDE3OjExLCBNYXJrIFJheW5zZm9yZCB3cm90ZToKPiBIZWxsby4KPiAKPiBXaXRoIEphdmEgOSBkdWUgb3V0IGluIGEgZmV3IGRheXMgdGltZSwgSSdtIGxvb2tpbmcgYXQgbW92aW5nIGFsbCBvZiBteQo+IDYwKyBwcm9qZWN0cyB0byBKYXZhIDkuIEkgaGF2ZSBubyBpbnRlbnRpb24gb2Yga2VlcGluZyBzdXBwb3J0IGZvciBhbnkKPiB2ZXJzaW9uIG9mIEphdmEgbGVzcyB0aGFuIDksIHNvIHRoZSBwcm9qZWN0cyB3aWxsIGJlY29tZSBwdXJlIEphdmEgOQo+IChtb2R1bGFyaXplZCkgcHJvamVjdHMuCj4gCj4gSSdtIGN1cmlvdXMgYXMgd2hldGhlciBKYXZhIDkgY2hhbmdlcyBhbnkgb2YgdGhlIGNvbnZlbnRpb25zIHRoYXQgSSd2ZQo+IGJlZW4gdXNlZCB0byBpbiBNYXZlbiBmb3IgdGhlIHBhc3QgZml2ZSBvciBzbyB5ZWFycy4gRm9yIGV4YW1wbGUsIG9uZQo+IHRoaW5nIEkgc2VlIGZyZXF1ZW50bHkgaW4gSmF2YSA5IHR1dG9yaWFscyBpcyB0aGF0IHRoZXkgdXNlIGEKPiBkaXJlY3RvcnkgbGF5b3V0IHRoYXQgZGlmZmVycyBmcm9tIHRoZSBNYXZlbiBzdGFuZGFyZC4gRm9yIGV4YW1wbGUsCj4gY29uc2lkZXIgdGhpcyB0dXRvcmlhbDoKPiAKPiAgICBodHRwczovL2R6b25lLmNvbS9hcnRpY2xlcy9qYXZhLTktdHV0b3JpYWwtc3RlcC1ieS1zdGVwLWZyb20temVyby10by1tb2R1bGVzCj4gCj4gVGhlIGRpcmVjdG9yeSBsYXlvdXQgaXMgInNyYy9jb20ubWUubXltb2R1bGUvbW9kdWxlLWluZm8uamF2YSIuIFRoaXMKPiBvYnZpb3VzbHkgZG9lc24ndCBtYXRjaCB0aGUgInNyYy9tYWluL2phdmEiIGNvbnZlbnRpb24gdGhhdCBNYXZlbiB1c2VzLgoKVGhhdCBpcyB0aGUgc2FtZSB3aGljaCBjb21lcyB0byBteSBtaW5kIGlmIEkgc2VlIHN1Y2ggZXhhbXBsZXMuLi4KCkJ1dCBJIGRvbid0IHNlZSBhbnkgcmVxdWlyZW1lbnQgZm9yIHRoYXQgbm9yIGRvIEkgc2VlIGFueSBhZHZhbnRhZ2UgCmFib3V0IHRoaXMgYXBwcm9hY2hlPy4uLgoKV2hhdCBJJ3ZlIHNlZW4gaW4gT1NHaSBpcyB0byBuYW1lIHRoZSBkaXJlY3RvcmllcyBhY2NvcmRpbmcgdG8gdGhlIAptb2R1bGVzIChidW5kbGUgbmFtZXMpIGJ1dCB0aGlzIG9mdGVuIGxlYWRzIGludG8gZHVwbGljYXRpb24KbGlrZToKCnJvb3QKICArLS0gY29tLmNvbXBhbnkucHJvamVjdC54MQogICstLSBjb20uY29tcGFueS5wcm9qZWN0LngyCiAgKy0tIGNvbS5jb21wYW55LnByb2plY3QueDMuLgoKd2hpY2ggZm9ybSBteSBwb2ludCB2aWV3IGNvdWxkIGJlIHJlZHVjZWQgdG86Cgpyb290CiAgKy0tIHgxCiAgKy0tIHgyCiAgKy0tIHgzCgpJJ3ZlIG1hZGUgc2V2ZXJhbCB0ZXN0cyBsaWtlIHRoaXMgCmh0dHBzOi8vZ2l0aHViLmNvbS9raG1hcmJhaXNlL2pkazktamxpbmstam1vZC1leGFtcGxlL3RyZWUvbWFzdGVyL21hdmVuLWV4YW1wbGUKCndoZXJlIEknbSB3b3JraW5nIG9uIEpNb2QgLyBKTGluayBwYXJ0cy4uLgoKSSB0aGluayB0aGUgYmVzdCBzdWdnZXN0aW9uIEkgY2FuIGdpdmUgaXMgdG8ga2VlcCB0aGUgY29udmVudGlvbnMgCi4uLmNhdXNlIGZyb20gbXkgY3VycmVudCBwb2ludCBvZiB2aWV3IHlvdSBkb24ndCBoYXZlIGRpc2FkdmFudGFnZXMuLi4KCkJ1dCB3ZSB3b3VsZCBiZSB2ZXJ5IGludGVyZXN0ZWQgaWYgdGhlcmUgYXJlIHNvbWUgaWYgeW91IG1ha2UgCmV4cGVyaWVuY2VzIGluIHRoYXQgd2F5Li4uCgo+IAo+IElzIHRoZSBpbnRlbnRpb24gdG8gbWFwIE1hdmVuIG1vZHVsZXMgMToxIHdpdGggSmlnc2F3IG1vZHVsZXM/IE9yIGlmCj4gbm90IDE6MSwgdGhlbiBwZXJoYXBzICJubyBtb3JlIHRoYW4gb25lIEppZ3NhdyBtb2R1bGUgcGVyIE1hdmVuIG1vZHVsZSIuCgpJIHRoaW5rIG9uZSBKaWdzYXcgbW9kdWxlIHBlciBNYXZlbiBtb2R1bGUgb3RoZXJ3aXNlIHlvdSBuZWVkIHRvIGxlYXZlIAp0aGUgY29udmVudGlvbnMgYmFzZWQgb24gbW9kdWxlLWluZm8uamF2YS4uLi5ldGMuLi4KCj4gCj4gSXMgdGhlcmUgZG9jdW1lbnRhdGlvbiBhdmFpbGFibGUgYW55d2hlcmUgdGhhdCBkZXNjcmliZXMgaG93IG5ldyBwdXJlCj4gSmF2YSA5IChtdWx0aS1tb2R1bGUhKSBwcm9qZWN0cyBzaG91bGQgYmUgc2V0IHVwPwo+IAoKSSB0aGluayBpdCdzIHRpbWUgdG8gbWFrZSBzb21lIGRvY3MgYmFzZWQgb24gdGhlIGN1cnJlbnQgc3RhdGUgb2YgCmV4cGVyaWVuY2UgYW5kIGlmIHlvdSBsaWtlIHBsZWFzZSBhZGQgaW5mb3JtYXRpb24gb3IgYmVnaW4gd2l0aCBzdWNoIApkb2NzIGFib3V0IHRoYXQuLndlIHdvdWxkIGFwcHJlY2lhdGUgc3VjaCB0aGluZ3MuLi4KCktpbmQgcmVnYXJkcwpLYXJsIEhlaW56IE1hcmJhaXNlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM5ODgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIFNlcCAxMSAyMzowMTo0NiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5ODgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMzdEN0YxOTVENQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDIzOjAxOjQ2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDEwNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAyMzowMTo0NSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDAyOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAyMzowMTo0NSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQwMTggaW52b2tlZCBieSB1aWQgOTkpOyAxMSBTZXAgMjAxNyAyMzowMTo0NSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMTEgU2VwIDIwMTcgMjM6MDE6NDUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAxNUYwOERCOTk0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAyMzowMTo0NSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjUKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuNSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjVdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgZk9TcF90Uy14LUNwIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAxMSBTZXAgMjAxNyAyMzowMTo0NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDkuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMzFdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQ0VBQTM1RkQwQwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMjM6MDE6NDMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkNjkgd2l0aCBNRQoJaWQgOFAxYzF3MDBDMjBVZmR5MDNQMWNiRDsgVHVlLCAxMiBTZXAgMjAxNyAwMTowMTozNiArMDIwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBUdWUsIDEyIFNlcCAyMDE3IDAxOjAxOjM2ICswMjAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBKTGluayBQbHVnaW4gdmVyc2lvbiAzLjAuMC1hbHBoYS0xIChGaXJzdCBQdWJsaWMgUmVsZWFzZSkKRGF0ZTogVHVlLCAxMiBTZXAgMjAxNyAwMTowMTozNiArMDIwMApNZXNzYWdlLUlEOiA8MzIxMzgzNC5OWHVzS3lWbkdTQGdpZ2E+ClVzZXItQWdlbnQ6IEtNYWlsLzUuMi4zIChMaW51eC80LjEwLjAtMzMtZ2VuZXJpYzsgS0RFLzUuMzEuMDsgeDg2XzY0OyA7ICkKSW4tUmVwbHktVG86IDxvcC55NmUweTkwaGtka2hyckBkZXNrdG9wLTJraHNrNDQ+ClJlZmVyZW5jZXM6IDw3NmY4MzQzMS1lOGM3LWY2YzUtMDhmNi1jZDI1ZDRlNWE0YzJAZ214LmRlPiA8b3AueTZlMHk5MGhrZGtocnJAZGVza3RvcC0ya2hzazQ0PgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCisxCih0byB0aGUgdm90ZSBhbmQgdGhlIGNvbW1lbnRzIDopICkKClJlZ2FyZHMsCgpIZXJ2PUU5CgpMZSBsdW5kaSAxMSBzZXB0ZW1icmUgMjAxNywgMjE6MTI6MzUgQ0VTVCBSb2JlcnQgU2Nob2x0ZSBhID1FOWNyaXQgOgo+ICsxIGZvciBhbiBhbHBoYQo+PTIwCj4gd291bGQgYmUgbmljZSBpZiB0aGVyZSB3ZXJlIElUcyBzbyBzZWUgd2hhdCB3b3VsZCBiZSB0aGUgcmVzdWx0Lgo+PTIwCj4gdGhhbmtzLAo+IFJvYmVydAo+PTIwCj4gT24gU2F0LCAwOSBTZXAgMjAxNyAxNjoxOTo1MiArMDIwMCwgS2FybCBIZWlueiBNYXJiYWlzZQo+PTIwCj4gPGtobWFyYmFpc2VAZ214LmRlPiB3cm90ZToKPiA+IEhpLAo+ID49MjAKPiA+IHRoaXMgaXMgdGhlIFZPVEUgZm9yIHRoZSBmaXJzdCBwdWJsaWMgcmVsZWFzZSBmb3IgTWF2ZW4gSkxpbmsgUGx1Z2luLi4uCj4gPj0yMAo+ID4gV2Ugc29sdmVkIDEgaXNzdWVzOgo+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0zRDEyMzI9CjE0MzImCj4gPiB2ZXJzaW9uPTNEMTIzNDEzNjEKPiA+PTIwCj4gPiBUaGVyZSBhcmUgY3VycmVudGx5IG5vIGlzc3VlcyBsZWZ0IGluIEpJUkEuCj4gPj0yMAo+ID4gSWYgeW91IGhhdmUgYW55IGlzc3VlIHRvIHJlcG9ydCBwbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBKSVJBCj4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvcHJvamVjdHMvTUpMSU5LCj4gPj0yMAo+ID4gU3RhZ2luZyByZXBvOgo+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2Mi8KPiA+PTIwCj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzYyL29yZy9hcGFjaD0KZS9tCj4gPiBhdmVuL3BsdWdpbnMvbWF2ZW4tamxpbmstcGx1Z2luLzMuMC4wLWFscGhhLTEvbWF2ZW4tamxpbmstcGx1Z2luLTMuMC4wLT0KYWxwCj4gPiBoYS0xLXNvdXJjZS1yZWxlYXNlLnppcAo+ID49MjAKPiA+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+ID4gbWF2ZW4tamxpbmstcGx1Z2luLTMuMC4wLWFscGhhLTEtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6Cj4gPiBjMjFlZTgwODVhMGVkMjlhZGVlMGU4MGQ0N2RlMGM4NTFmOTZjZDU0Cj4gPj0yMAo+ID4gU3RhZ2luZyBzaXRlOgo+ID4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tamxpbmstcGx1Z2luLUxBVEVTVC8KPiA+PTIwCj4gPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiA+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCj4gPj0yMAo+ID4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPiA+PTIwCj4gPiBbIF0gKzEKPiA+IFsgXSArMAo+ID4gWyBdIC0xCj4gPj0yMAo+ID4gS2luZCByZWdhcmRzCj4gPiBLYXJsIEhlaW56IE1hcmJhaXNlCj4gPj0yMAo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PTIwCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDUwMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgTm92IDE3IDA5OjU1OjQxIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDUwMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAzNDIyMjE3QzJFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMTcgTm92IDIwMTcgMDk6NTU6NDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2NTExNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNyBOb3YgMjAxNyAwOTo1NTo0MCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjUwNDIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTcgTm92IDIwMTcgMDk6NTU6NDAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2NTAyNiBpbnZva2VkIGJ5IHVpZCA5OSk7IDE3IE5vdiAyMDE3IDA5OjU1OjQwIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAxNyBOb3YgMjAxNyAwOTo1NTo0MCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEMyQTAzQzY2NzgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDE3IE5vdiAyMDE3IDA5OjU1OjM5ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgUFBHcUtNeERvX1pEIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJRnJpLCAxNyBOb3YgMjAxNyAwOTo1NTozNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDkuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMzFdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRUExRDY1RjNFMAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTcgTm92IDIwMTcgMDk6NTU6MzYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkNjkgd2l0aCBNRQoJaWQgYXh2YjF3MDBaMjBVZmR5MDN4dmJRaTsgRnJpLCAxNyBOb3YgMjAxNyAxMDo1NTozNSArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBGcmksIDE3IE5vdiAyMDE3IDEwOjU1OjM1ICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IE1hdmVuIHJlc29sdmVyIGJyYW5jaCBjb25zb2xpZGF0aW9uCkRhdGU6IEZyaSwgMTcgTm92IDIwMTcgMTA6NTU6MzUgKzAxMDAKTWVzc2FnZS1JRDogPDMyNDkzMTguYTc5QUJEUHpIVEBnaWdhPgpJbi1SZXBseS1UbzogPDI1Njc4NzguOEFOeEdvc3RmWEBnaWdhPgpSZWZlcmVuY2VzOiA8MjAxNzExMDkwNTM1NTEuOTU3RDQyOUM1MEQxQGRkMTczMzIua2Fzc2VydmVyLmNvbT4gPDIwMTcxMTE2MTcxMzE1LjM2NjM2MjlDMDA4MUBkZDE3MzMyLmthc3NlcnZlci5jb20+IDwyNTY3ODc4LjhBTnhHb3N0ZlhAZ2lnYT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgphdHRhY2htZW50IHJlbW92ZWQgYnkgbWFpbGluZyBsaXN0CgpJIHB1dCBpdCBpbgpodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL1BPTStNb2RlbCtWZXJzaW9uKzUuMC4wPwpmb2N1c2VkQ29tbWVudElkPTNENzQ2ODc0MTAmcmVmcmVzaD0zRDE1MTA5MTI0NDc2NjEjY29tbWVudC03NDY4NzQxMAoKUmVnYXJkcywKCkhlcnY9RTkKCkxlIHZlbmRyZWRpIDE3IG5vdmVtYnJlIDIwMTcsIDA5OjQwOjIyIENFVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiBvbiB0aGUgc2Vjb25kIG9wdGlvbiwgSSB3YXMgcmVhZHkgdG8ganVzdCBhbnN3ZXIgIm5vdCBwb3NzaWJsZSIsIGJ1dCBkZWNpPQpkZWQKPiBJIGNvdWxkIHRyeSBhdCBoaWdoIGxldmVsIGJlZm9yZSBhbnN3ZXJpbmcuLi4KPj0yMAo+IEkgdG9vayBNYXZlbiBjb3JlIGRlcGVuZGVuY3kgdHJlZSBbMV0sIHBpY2tlZCBncmVlbiBjb2xvciBhcyB0aGUgZGVmaW5pdGk9Cm9uCj4gb2YgTWF2ZW4gQXJ0aWZhY3QgUmVzb2x2ZXIsIHB1dCBtYXZlbi1yZXNvbHZlci1wcm92aWRlciBpbiBncmVlbiArIHNldHRpbj0KZ3MKPiBidWlsZGVyIChzaW5jZSB1c2VkIGJ5IHJlc29sdmVyIGFudCB0YXNrczogdGhhdCdzIGEgZGV0YWlsIEkgZGlkbid0IHB1dCBpbgo+IGxhdGVzdCByZXNvbHZlciBkZXBlbmRlbmN5IHRyZWUpCj4gVGhlbiBJIGV4dGVuZGVkIGdyZWVuIHRvIGV2ZXJ5IHRyYW5zaXRpdmUgZGVwZW5kZW5jeSB0byBoYXZlIGFuIGluZGVwZW5kZT0KbnQKPiByZWxlYXNhYmxlIHJlYWN0b3IKPj0yMAo+IFlvdSdsbCBmaW5kIGFzIGEgcmVzdWx0IHRoZSBhdHRhY2hlZCBpbWFnZS4KPj0yMAo+IEFuYWx5c2lzOgo+IC0gdGhpcyBzcGxpdHMgTWF2ZW4gY29yZSBpbiAyIHBhcnRzOiBsb3dlciBwYXJ0IG9uIGRlcGVuZGVuY3kgcmVzb2x1dGlvbiwKPiBoaWdoZXIgcGFydCBvbiBidWlsZAo+IC0gc2V0dGluZ3MueG1sIGFuZCBwb20ueG1sIGFyZSBpbiBkZXBlbmRlbmN5IHJlc29sdXRpb24KPj0yMAo+IFJlYWN0aW9uOiBpdCBjb3VsZCBiZSBmb3IgTWF2ZW4gNSBvciA2LCB3aGVuIGNvbnN1bWVyIHBvbSBpcyBzdHJpY3RseQo+IHNlcGFyYXRlIGZyb20gYnVpbGQgcG9tLi4uCj49MjAKPiBSZWdhcmRzLAo+PTIwCj4gSGVydj1FOQo+PTIwCj4gWzFdIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3JlZi8zLjUuMi8KPj0yMAo+IExlIGpldWRpIDE2IG5vdmVtYnJlIDIwMTcsIDE4OjEzOjE1IENFVCBNYW5mcmVkIE1vc2VyIGEgPUU5Y3JpdCA6Cj4gPiBUaGFua3MgZm9yIHRoZSBleHBsYW5hdGlvbiBhbmQgZGV0YWlscyBIZXJ2ZS4gU2VlbXMgdG8gYmUgdGhhdCB0byBkbyB0aD0KaXMKPiA+IGNsZWFubHkgd2UgaGF2ZSB0byBicmVhayB0aGUgY2lyY2xlLiBGcm9tIG15IGxpbWl0ZWQga25vd2xlZGdlIHRoZXJlIGFyZQo+ID4gdHdvIHdheXMgdG8gZG8gdGhhdC4KPiA+PTIwCj4gPiAxLiBBcyBzdGVwaGVuIHN1Z2dlc3RlZC4uIGdldCB0aGUgcmVzb2x2ZXIgaW50byBtYXZlbiBjb3JlIHRyZWUuIFRoYXQKPiA+IG1ha2VzCj4gPiBjb3JlIGJpZ2dlciBhZ2FpbiBhbmQgdGllcyB0aGUgdHdvIHByb2plY3RzIGludG8gb25lIHJlbGVhc2UgY3ljbGUuCj4gPiBGZWFzaWJsZSBidXQgSSBhbSBub3QgYSBmYW4uCj4gPj0yMAo+ID4gMi4gSSBhbSBub3Qgc3VyZSBpZiBwb3NzaWJsZSBidXQgLi4gY291bGQgd2UgZ2V0IHRoZSBtYXZlbiByZXNvbHZlcgo+ID4gcHJvdmlkZXIgb3V0IG9mIG1hdmVuIGNvcmUgYW5kIGludG8gdGhlIHJlc29sdmVyIHByb2plY3QgYW5kIGhhdmUgaXQgYWxsCj4gPiB0b2dldGhlciBpbiB0aGVyZT8KPiA+PTIwCj4gPiBJbiBlaXRoZXIgY2FzZSAuLiBib3RoIG9mIHRob3NlIHNlZW0gcmF0aGVyIGxhcmdlIHRhc2tzIHNvIEkgd2lsbAo+ID4gZGVmaW5pdGVseSBnbyBhaGVhZCB3aXRoIGRlbW8gYnJhbmNoIG1lcmdlIGZpcnN0LiBJIGp1c3QgaGF2ZSB0byByZWRvIHQ9CmhlCj4gPiB3b3JrIEkgZGlkIHdpdGhvdXQgdGhlIGFudCB0YXNrcyBpbiB0aGUgdHJlZS4gU3RheSB0dW5lZCBvbiB0aGF0Li4KPiA+PTIwCj4gPiBNYW5mcmVkCj4gPj0yMAo+ID4gSGVydj1FOSBCT1VURU1ZIHdyb3RlIG9uIDIwMTctMTEtMTYgMDU6NDk6Cj4gPiA+IGZlYXNpYmxlLCBidXQgSSByZWFsbHkgZG9uJ3QgbGlrZSBpdDogc2VwYXJhdGlvbiBpcyBnb29kLgo+ID4gPj0yMAo+ID4gPiBzZXJpb3VzbHksIGp1c3QgbWVyZ2UgZGVtb3MgYW5kIGxldCBhbnQtdGFza3Mgc2VwYXJhdGUsIGFuZCB3ZSBoYXZlIGEKPiA+ID4gcHJldHR5IGdvb2QgY29tcHJvbWlzZSBvbiBldmVyeSBhc3BlY3QKPiA+ID4gKG9yIGV2ZW4gZHJvcCBhbnQgdGFza3MgaWYgcmVhbGx5IHRoaXMgaXMgY2F1c2luZyB1cyB0b28gbXVjaAo+ID4gPiBoZWFkYWNoZS4uLikKPiA+ID49MjAKPiA+ID4gUmVnYXJkcywKPiA+ID49MjAKPiA+ID4gSGVydj1FOQo+ID4gPj0yMAo+ID4gPiBMZSBqZXVkaSAxNiBub3ZlbWJyZSAyMDE3LCAxMDowMzowNyBDRVQgU3RlcGhlbiBDb25ub2xseSBhID1FOWNyaXQgOgo+ID4gPj4gT24gVGh1IDE2IE5vdiAyMDE3IGF0IDA3OjUxLCBIZXJ2PUU5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj49Cj0yMAp3cm90ZToKPiA+ID4+ID4gSSBqdXN0IHB1c2hlZCBhbiB1cGRhdGUgb2YgZGVwZW5kZW5jaWVzIGltYWdlIHRoYXQgc2hvd3MgdGhlIGV4dGVyPQpuYWwKPiA+ID4+ID4gbWF2ZW4tCj4gPiA+PiA+IHJlc29sdmVyLXByb3ZpZGVyIChpbiB5ZWxsb3cpIGluc2lkZSB0aGUgcmVhY3RvciBkZXBlbmRlbmN5IGdyYXBoID0KKGluCj4gPiA+PiA+IGJsdWUpCj4gPiA+PiA+PTIwCj4gPiA+PiA+IFRoYXQgc2hvd3MgdGhlIGNoaWNrZW4gYW5kIGVnZyBpc3N1ZSBvbiByZWxlYXNpbmcgd2UnbGwgaGF2ZSBvbiBBUEkKPiA+ID4+ID4gYnJlYWtpbmcKPiA+ID4+ID4gY2hhbmdlLiBQZW9wbGUgYWx3YXlzIGJ1aWxkaW5nIGZyb20gc291cmNlIChsaWtlIERlYmlhbikgd2lsbCBoYXZlCj4gPiA+PiA+IHRoZQo+ID4gPj4gPiBpc3N1ZQo+ID4gPj4gPiBhbHNvLgo+ID4gPj4gPj0yMAo+ID4gPj4gPiBGb3IgZGVtb3MsIHdoaWNoIGFyZSBub3QgcmVhbGx5IHB1Ymxpc2hlZCBkdXJpbmcgdGhlIHJlbGVhc2UgKGp1c3Q9CiBhcwo+ID4gPj4gPiBkb2N1bWVudGF0aW9uKSwgZGlzYWJsaW5nIHRoZSBtb2R1bGUgaW4gdGhlIGJ1aWxkIHdoZW4gbmVjZXNzYXJ5IGlzCj4gPiA+PiA+IHN1ZmZpY2llbnQsCj4gPiA+PiA+IHdvbid0IGNoYW5nZSBtYW55IHRoaW5ncy4gRm9yIGFudCB0YXNrcywgZGlzYWJsaW5nIHRoZSBtb2R1bGUgd2lsbAo+ID4gPj4gPiBub3QKPiA+ID4+ID4gcHVibGlzaAo+ID4gPj4gPiB0aGUgYXJ0aWZhY3Q6IHRoaXMgd2lsbCBoYXZlIGEgdmlzaWJsZSBpbXBhY3QuCj4gPiA+Pj0yMAo+ID4gPj4gU2hvdWxkIHdlIGp1c3QgYml0ZSB0aGUgYnVsbGV0IGFuZCBicmluZyByZXNvbHZlciBpbi10cmVlIGFzIG1vZHVsZXM9CiBpbgo+ID4gPj4gbWF2ZW4gY29yZS4uLiBsZWF2aW5nIGRlbW9zIGFuZCBhbnQgdGFza3MgaGVyZT8KPiA+ID4+PTIwCj4gPiA+PiA+IFJlZ2FyZHMsCj4gPiA+PiA+PTIwCj4gPiA+PiA+IEhlcnY9RTkKPiA+ID4+ID49MjAKPiA+ID4+ID4gTGUgbWVyY3JlZGkgMTUgbm92ZW1icmUgMjAxNywgMjM6MDU6MTQgQ0VUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyPQppdCA6Cj4gPiA+PiA+ID4gaXQgc2VlbXMgSSBoYXZlIG5vdCBiZWVuIGNsZWFyOiBJJ2xsIHRyeSB0byBleHBsYWluIGJldHRlcgo+ID4gPj4gPiA+PTIwCj4gPiA+PiA+ID4gMS4gbWF2ZW4tcmVzb2x2ZXItYW50LXRhc2tzIGRlcGVuZHMgb24gbWF2ZW4tcmVzb2x2ZXItcHJvdmlkZXIKPiA+ID4+ID4gPiAoZnJvbQo+ID4gPj4gPj0yMAo+ID4gPj4gPiBNYXZlbgo+ID4gPj4gPj0yMAo+ID4gPj4gPiA+IGNvcmUpCj4gPiA+PiA+ID4gMi4gbWF2ZW4tcmVzb2x2ZXItcHJvdmlkZXIgKHRoZW4gTWF2ZW4gY29yZSkgZGVwZW5kcyBvbgo+ID4gPj4gPiA+IG1hdmVuLXJlc29sdmVyCj4gPiA+PiA+ID49MjAKPiA+ID4+ID4gPiBpZiB3ZSBwdXQgbWF2ZW4tcmVzb2x2ZXItYW50LXRhc2tzIGluIHRoZSBzYW1lIHJlYWN0b3IgdGhhbgo+ID4gPj4gPj0yMAo+ID4gPj4gPiBtYXZlbi1yZXNvbHZlciwKPiA+ID4+ID49MjAKPiA+ID4+ID4gPiB3ZSBjYW4ndCByZWxlYXNlIGFueSBtYXZlbi1yZXNvbHZlciBBUEkgY2hhbmdlIHRoYXQgYnJlYWtzCj4gPiA+PiA+PTIwCj4gPiA+PiA+IG1hdmVuLXJlc29sdmVyLQo+ID4gPj4gPj0yMAo+ID4gPj4gPiA+IHByb3ZpZGVyCj4gPiA+PiA+ID49MjAKPiA+ID4+ID4gPiBleGFtcGxlOiBpZiB3ZSBtb3ZlIG1hdmVuLXJlc29sdmVyIGNvZGUgdG8gb3JnLmFwYWNoZS5tYXZlbiBqYXZhCj4gPiA+PiA+ID4gcGFja2FnZQo+ID4gPj4gPj0yMAo+ID4gPj4gPiBpbgo+ID4gPj4gPj0yMAo+ID4gPj4gPiA+IG1hdmVuLXJlc29sdmVyIDIuMC4wLVNOQVBTSE9ULCB3ZSBuZWVkIG1hdmVuLXJlc29sdmVyLXByb3ZpZGVyCj4gPiA+PiA+ID4gNC4wLjAtU05BUFNIT1QgdGhhdCB1c2VzIG1hdmVuLXJlc29sdmVyIDIuMC4wLVNOQVBTSE9UIHdpdGggdGhpcwo+ID4gPj4gPiA+IG5ldwo+ID4gPj4gPiA+IGphdmEKPiA+ID4+ID4gPiBwYWNrYWdlLiBUaGVuIHRyeSB0byByZWxlYXNlIGFueXRoaW5nOiB5b3UgY2FuJ3QsIHVubGVzcyB5b3UgZG9uPQondAo+ID4gPj4gPiA+IHRyeQo+ID4gPj4gPiA+IHRvCj4gPiA+PiA+ID4gcmVsZWFzZSBtYXZlbi0gcmVzb2x2ZXItYW50LXRhc2tzCj4gPiA+PiA+ID49MjAKPiA+ID4+ID4gPiAodGhlIGNvbnNlcXVlbmNlIG9uIHZlcnNpb24gY29uc2lzdGVuY3kgaXMgYW5vdGhlciB3YXkgdG8gZGVzY3JpPQpiZQo+ID4gPj4gPiA+IHRoZQo+ID4gPj4gPiA+IGlzc3VlLCBidXQgdGhhdCBpcyBtb3JlIHN1YnRsZSwgdGhlbiBJIGNob3NlIHRvIGRlc2NyaWJlIHRoZSBtb3N0Cj4gPiA+PiA+ID4gdmlzaWJsZQo+ID4gPj4gPiA+IGlzc3VlLCB3aXRoIEFQSSBicmVha2luZyBjaGFuZ2UpCj4gPiA+PiA+ID49MjAKPiA+ID4+ID4gPiBJTUhPLCBhbm90aGVyIGNvbnNlcXVlbmNlIGNvdWxkIGJlOiBtYXZlbi1yZXNvbHZlci1hbnQtdGFza3Mgd291PQpsZAo+ID4gPj4gPj0yMAo+ID4gPj4gPiBwZXJoYXBzCj4gPiA+PiA+PTIwCj4gPiA+PiA+ID4gYmV0dGVyIGJlIHZlcnNpb25uZWQgbGlrZSBtYXZlbi1yZXNvbHZlci1wcm92aWRlcgo+ID4gPj4gPiA+PTIwCj4gPiA+PiA+ID49MjAKPiA+ID4+ID4gPiBNZXJnaW5nIHJlc29sdmVyLWRlbW9zIGlzIHJlYWxseSB0aGUgZ3JlYXQgYmlnIGlkZWE6IHdpdGggdGhhdAo+ID4gPj4gPiA+IG1lcmdlLAo+ID4gPj4gPiA+IG1vZGlmeWluZyBtYXZlbi1ycmVzb2x2ZXIgY2FuIGltbWVkaWF0ZWx5IGJlIHRlc3RlZCB3aXRoIGRlbW9zOgo+ID4gPj4gPiA+IHRoYXQnbGwKPiA+ID4+ID49MjAKPiA+ID4+ID4gYmUKPiA+ID4+ID49MjAKPiA+ID4+ID4gPiBzbyBtdWNoIGVhc2llciB0byBtYWtlIGNoYW5nZXMgdG8gbWF2ZW4tcmVzb2x2ZXIgY29kZSEKPiA+ID4+ID4gPj0yMAo+ID4gPj4gPiA+IFJlZ2FyZHMsCj4gPiA+PiA+ID49MjAKPiA+ID4+ID4gPiBIZXJ2PUU5Cj4gPiA+PiA+ID49MjAKPiA+ID4+ID4gPiBMZSBtZXJjcmVkaSAxNSBub3ZlbWJyZSAyMDE3LCAwOTowMjoxMiBDRVQgTWljaGFlbCBPc2lwb3YgYSA9RTljPQpyaXQgOgo+ID4gPj4gPiA+ID4gV2h5IC0xIG9uIHRoZSBBbnQgdGFza3M/Cj4gPiA+PiA+ID4gPj0yMAo+ID4gPj4gPiA+ID4gQW0gMjAxNy0xMS0xNSB1bSAwMDo1MCBzY2hyaWViIEhlcnY9RTkgQk9VVEVNWToKPiA+ID4+ID4gPiA+ID4gSSBhbnN3ZXJlZCBvbiB0aGUgbWFpbGluZyBsaXN0IGFuZCBvbiB0aGUgMiBKaXJhIGlzc3Vlcwo+ID4gPj4gPiA+ID4gPiBJbiBzdW1tYXJ5LCArMSB0byBtZXJnZSBkZW1vcywgLTEgdG8gbWVyZ2UgYW50LXRhc2tzCj4gPiA+PiA+ID4gPiA+PTIwCj4gPiA+PiA+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+PiA+ID4gPiA+PTIwCj4gPiA+PiA+ID4gPiA+IEhlcnY9RTkKPiA+ID4+ID4gPiA+ID49MjAKPiA+ID4+ID4gPiA+ID4gTGUgbWFyZGkgMTQgbm92ZW1icmUgMjAxNywgMTg6MTk6NDAgQ0VUIE1hbmZyZWQgTW9zZXIgYSA9RTljPQpyaXQgOgo+ID4gPj4gPiA+ID4gPj4gQW55IGZlZWRiYWNrIG9yIHNob3VsZCBJIGp1c3QgZ28gYWhlYWQgd2l0aCB0aGUgY2xlYW51cD8KPiA+ID4+ID4gPiA+ID4+PTIwCj4gPiA+PiA+ID4gPiA+PiBNYW5mcmVkCj4gPiA+PiA+ID4gPiA+Pj0yMAo+ID4gPj4gPiA+ID4gPj4gTWFuZnJlZCBNb3NlciB3cm90ZSBvbiAyMDE3LTExLTA4IDIxOjM1Ogo+ID4gPj4gPiA+ID4gPj4+IEhpIGFsbCwKPiA+ID4+ID4gPiA+ID4+Pj0yMAo+ID4gPj4gPiA+ID4gPj4+IEkgaGF2ZSBzdGFydGVkIGFuZCBtYWRlIGdvb2QgcHJvZ3Jlc3Mgb24gZ2V0dGluZyBNYXZlbgo+ID4gPj4gPiA+ID4gPj4+IHJlc29sdmVyCj4gPiA+PiA+ID4gPiA+Pj4gYWxsCj4gPiA+PiA+ID4gPiA+Pj4gaW50bwo+ID4gPj4gPiA+ID4gPj4+IHRoZSBtYXN0ZXIgYnJhbmNoIGluc3RlYWQgb2YgaGF2aW5nIG1hc3RlciwgZGVtb3MgYW5kCj4gPiA+PiA+ID4gPiA+Pj4gYW50LXRhc2tzCj4gPiA+PiA+ID4gPiA+Pj4gaW4KPiA+ID4+ID4gPiA+ID4+PiBzZXBhcmF0ZSBicmFuY2hlcy4KPiA+ID4+ID4gPiA+ID4+Pj0yMAo+ID4gPj4gPiA+ID4gPj4+IERldGFpbHMgYXJlIHRyYWNrZWQgaW4KPiA+ID4+ID4gPiA+ID4+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01SRVNPTFZFUi0yOAo+ID4gPj4gPiA+ID4gPj4+PTIwCj4gPiA+PiA+ID4gPiA+Pj4gQWxsIG9mIGl0IGlzIG5vdyBpbiBhIG5ldyBicmFuY2ggY2FsbGVkIG1hc3Rlci1hbGwgZm9yIHlvdT0KIHRvCj4gPiA+PiA+ID4gPiA+Pj4gc2VlLgo+ID4gPj4gPiA+ID4gPj4+PTIwCj4gPiA+PiA+ID4gPiA+Pj4gSSBhbSBub3cgd29uZGVyaW5nIHdoYXQgdGhlIG5leHQgc3RlcHMgYXJlLiBJIGFkZGVkIHdoYXQgSQo+ID4gPj4gPiA+ID4gPj4+IHRoaW5rCj4gPiA+PiA+ID4gPiA+Pj4gc2hvdWxkCj4gPiA+PiA+ID4gPiA+Pj4gaGFwcGVuIG5leHQgaW4gdGhlIGlzc3VlIGluIGEgY29tbWVudCBhbmQgd291bGQgYXBwcmVjaWF0ZQo+ID4gPj4gPiA+ID4gPj4+IGFueQo+ID4gPj4gPj0yMAo+ID4gPj4gPiBpbnB1dAo+ID4gPj4gPj0yMAo+ID4gPj4gPiA+ID4gPj4+IG9uCj4gPiA+PiA+ID4gPiA+Pj4gdGhlIGN1cnJlbnQgc2V0dXAgYW5kIG5leHQgc3RlcHMuCj4gPiA+PiA+ID4gPiA+Pj49MjAKPiA+ID4+ID4gPiA+ID4+PiBBbnkgaGVscCB3b3VsZCBiZSBhcHByZWNpYXRlZC4KPiA+ID4+ID4gPiA+ID4+Pj0yMAo+ID4gPj4gPiA+ID4gPj4+IG1hbmZyZWQKPiA+ID4+ID49MjAKPiA+ID4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQo9MkQtLQo+ID4gPj4gPj0yMAo+ID4gPj4gPiA+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+ID4gPiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+ID4gPiA+ID49MjAKPiA+ID4+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQo9MkQtLQo+ID4gPj4gPiA+ID4gPiAtLQo+ID4gPj4gPiA+ID4gPiAtLS0KPiA+ID4+ID4gPiA+ID4gLQo+ID4gPj4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+PiA+ID49MjAKPiA+ID4+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQo9MkQtLQo+ID4gPj4gPiA+IC0tCj4gPiA+PiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+PiA+PTIwCj4gPiA+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KPTJELS0KPiA+ID4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4gPj0yMAo+ID4gPj4gPiAtLQo+ID4gPj49MjAKPiA+ID4+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4gPj0yMAo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0Nzc5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBEZWMgMTYgMTE6NTM6MjcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0Nzc5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDk4QjkxMTdDMjQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAxNiBEZWMgMjAxNyAxMTo1MzoyNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE0NjIwIGludm9rZWQgYnkgdWlkIDUwMCk7IDE2IERlYyAyMDE3IDExOjUzOjI3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNDU0NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNiBEZWMgMjAxNyAxMTo1MzoyNyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE0NTMzIGludm9rZWQgYnkgdWlkIDk5KTsgMTYgRGVjIDIwMTcgMTE6NTM6MjYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDE2IERlYyAyMDE3IDExOjUzOjI2ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNzMzMDAxQTA2NTgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDE2IERlYyAyMDE3IDExOjUzOjI2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuNQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC41IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBtWlk5Sl9UdmMtUDQgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsIDE2IERlYyAyMDE3IDExOjUzOjI0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwNi5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyOF0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAyOUY2MjVGMjBCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAxNiBEZWMgMjAxNyAxMTo1MzoyNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ2MyB3aXRoIE1FCglpZCBtYnRQMXcwMEIyMFVmZHkwM2J0UDBZOyBTYXQsIDE2IERlYyAyMDE3IDEyOjUzOjIzICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFNhdCwgMTYgRGVjIDIwMTcgMTI6NTM6MjMgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW0lNUE9SVEFOVF0gUmU6IEdpdCBtaWdyYXRpb24gbmV4dCBzdGVwcwpEYXRlOiBTYXQsIDE2IERlYyAyMDE3IDEyOjUzOjIzICswMTAwCk1lc3NhZ2UtSUQ6IDwzMjcyMTQxLlRzSEhxVVpEa3BAZ2lnYT4KSW4tUmVwbHktVG86IDxvcC56YmI1MGhja2tka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KUmVmZXJlbmNlczogPDE5MDA1NTguR0Z4OVFsZmFFMkBnaWdhPiA8Q0ErblBuTXdpOWR4RVJjOFRONmF3Z0VhR05HTFB1RG5SemNTOGRGSmpUbnpaYzNUM2ZRQG1haWwuZ21haWwuY29tPiA8b3AuemJiNTBoY2trZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKbG9va2luZyBhdCBjb21taXRzQCBjb250ZW50IGh0dHBzOi8vbGlzdHMuYXBhY2hlLm9yZy9saXN0Lmh0bWw/CmNvbW1pdHNAbWF2ZW4uYXBhY2hlLm9yZyB3aXRoIHN1YmplY3QgY29udGFpbmluZyAibWF2ZW4vcGx1Z2lucy90cnVuayIKCmFuZCBwbHVnaW5zIHN2bjJnaXQgbWlycm9yIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9jb21taXRzLwp0cnVuawoKb25seSAxIGNvbW1pdCBpcyBtaXNzaW5nOiBteSBsYXRlc3QgY29tbWl0IG9uIG1hdmVuLXNpdGUtcGx1Z2luCih0aGUgbGFzdCBjb21taXQgZm9yIEdpdCBtaWdyYXRpb24gaXMgbm90IHVzZWZ1bCkKCgpTYW1lIG9uIHNoYXJlZCBzaG93ZWQgbm8gbWlzc2luZyBjb21taXQuCgoKd2hhdCBsYXRlc3QgY29tbWl0IG9mIG1hdmVuLWphdmFkb2MtcGx1Z2luIGFyZSB5b3UgbG9va2luZyBmb3I/CgpSZWdhcmRzLAoKSGVydj1FOQoKTGUgc2FtZWRpIDE2IGQ9RTljZW1icmUgMjAxNywgMTE6NTY6MzEgQ0VUIFJvYmVydCBTY2hvbHRlIGEgPUU5Y3JpdCA6Cj4gRm9yIGV2ZXJ5Ym9keSBqdXN0IGEgd2FybmluZyBJIGZhY2VkIHRvZGF5Ogo+IElmIHlvdSBzd2l0Y2ggdG8gdGhlIGdpdCByZXBvcywgcGxlYXNlIG1ha2Ugc3VyZSBhbGwgY29tbWl0cyBhcmUgbWlncmF0ZWQuCj4gSSBub3RpY2VkIHRoZSBsYXRlc3QgY29tbWl0cyBvZiB0aGUgbWF2ZW4tamF2YWRvYy1wbHVnaW4gZ290IGxvc3QuCj49MjAKPiB0aGFua3MsCj4gUm9iZXJ0Cj49MjAKPiBPbiBTYXQsIDA5IERlYyAyMDE3IDE3OjA2OjA5ICswMTAwLCBTdGVwaGVuIENvbm5vbGx5Cj49MjAKPiA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiBJIHNlZSB3ZSBoYXZlIGEgbGFyZ2UgbnVtYmVyIG9mIHJlcG9zIG5vdyBvbiBnaXRib3ggOy0pCj4gPj0yMAo+ID4gT24gVGh1IDcgRGVjIDIwMTcgYXQgMDc6MDAsIEhlcnY9RTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cm89CnRlOgo+ID4+IG9rLCBJIGRpZG4ndCB1cGRhdGUgbXkgcmVwbyBjbG9uZTogbm93IHRoZSBydW4taXRzIHByb2ZpbGUgaXMgYWN0aXZhdGVkCj4gPj49MjAKPiA+PiB0aGVuIHRoZSBwbGFuIHNob3VsZCBqdXN0IGNvbmZpcm0gIml0IHdvcmtzISIgOikKPiA+Pj0yMAo+ID4+IGFuZCBmaW5kIHdoaWNoIGpvYnMgYXJlIHNwZWNpYWwsIGxpa2UgbWF2ZW4tZGlzdC10b29sICh3aGljaCBoYXMgdG8gYmUKPiA+PiBzY2hlZHVsZWQgZGFpbHkgaW5zdGVhZCBvZiBjb2RlIGNoYW5nZSwgYW5kIG9uZSBwbGF0Zm9ybSBvbmx5KQo+ID4+PTIwCj4gPj4gUmVnYXJkcywKPiA+Pj0yMAo+ID4+IEhlcnY9RTkKPiA+Pj0yMAo+ID4+IExlIG1lcmNyZWRpIDYgZD1FOWNlbWJyZSAyMDE3LCAyMzo1ODo0NSBDRVQgU3RlcGhlbiBDb25ub2xseSBhID1FOWNyaXQ9CiA6Cj4gPj4gPiBPbiBXZWQgNiBEZWMgMjAxNyBhdCAyMjozOCwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPj49MjAKPiA+PiB3cm90ZToKPiA+PiA+ID4gTm93IHRoYXQgd2UgaGF2ZSAyIEFTRiBPcmdhbml6YXRpb24gSmVua2lucyBqb2JzIChvbmUgZm9yIGdpdGJveCBbPQoxXQo+ID4+PTIwCj4gPj4gYW5kCj4gPj49MjAKPiA+PiA+ID4gb25lCj4gPj4gPiA+IGZvciBnaXQtd2lwOiB0aGFuayB5b3UgU3RlcGhlbikgYW5kIHRoYXQgaXQgbG9va3MgcXVpdGUgc3VjY2Vzc2Z1bCwKPiA+Pj0yMAo+ID4+IGxldCdzCj4gPj49MjAKPiA+PiA+ID4gcGxhbgo+ID4+ID4gPiB0aGUgbmV4dCBzdGVwcy4KPiA+PiA+ID49MjAKPiA+PiA+ID4gSGVyZSBpcyB3aGF0IEkgc2VlOgo+ID4+ID4gPiAxLiByZW1vdmFsIG9mIGhhbmQtZGVmaW5lZCBKZW5raW5zIGpvYnMgdGhhdCBhcmUgbm93IGR1cGxpY2F0ZXMKPiA+PiA+ID49MjAKPiA+PiA+ID4gMi4gcHJlcGFyYXRpb24gb2YgdGhlIDYwIG5ldyBlbXB0eSBnaXQgcmVwb3MgZm9yIHNoYXJlZCAmIHBsdWdpbnMKPiA+PiA+ID49MjAKPiA+PiA+ID4gMy4gbWlncmF0aW9uIG9mIHRoZSAxIHNoYXJlZCBjb21wb25lbnQgYW5kIDEgcGx1Z2luIHVzaW5nCj4gPj49MjAKPiA+PiBtaWdyYXRlLSouc2gKPiA+Pj0yMAo+ID4+ID4gPiBzY3JpcHRzCj4gPj4gPiA+IFszXSB0byB0ZXN0IGFuZCBldmVudHVhbGx5IHJld29yayB0aGUgSmVua2luc2ZpbGUgKEkgc3VwcG9zZSBpdCB3aT0KbGwKPiA+PiA+ID4gcmVxdWlyZQo+ID4+ID4gPiBzb21lIGxpdHRsZSBjaGFuZ2UsIHRvIHJ1biBhZGQgInJ1bi1pdHMiIHByb2ZpbGUpCj4gPj4gPj0yMAo+ID4+ID4gQXMgZmFyIGFzIEkgcmVjYWxsLCBJIGFkZGVkIC1QK3J1bi1pdHMgYWxyZWFkeQo+ID4+ID49MjAKPiA+PiA+IEZvciB0aGUgcGx1Z2luLCBJJ2QgbGlrZSB0byBkbyB0aGUgam9iIGZvciBtYXZlbi1zaXRlLXBsdWdpbiwgc2luY2UgPQp3ZQo+ID4+ID49MjAKPiA+PiA+ID4gZXhwZWN0Cj4gPj4gPiA+IHRvIHJlbGVhc2UgaXQgc29vbi4KPiA+PiA+ID4gRm9yIHRoZSBzaGFyZWQgY29tcG9uZW50LCBJIGRvbid0IGtub3cgaWYgdGhlcmUgaXMgYSBiZXN0IGNhbmRpZGF0ZQo+ID4+ID4gPj0yMAo+ID4+ID4gPiA0LiBvbmNlIHByZXZpb3VzIHN0ZXAgaXMgb2ssIGRvIHRoZSBmdWxsIG1pZ3JhdGlvbjogaWYgdGhlcmUgYXJlCj4gPj4gPiA+IHZvbHVudGVlcnMKPiA+PiA+ID4gZm9yIGhlbHBpbmcsIHRoYXQgd291bGQgYmUgZ3JlYXQsIHNpbmNlIHBvcHVsYXRpbmcgNjAgZ2l0IHJlcG9zCj4gPj49MjAKPiA+PiB3b24ndAo+ID4+IGJlCj4gPj49MjAKPiA+PiA+ID4gcmVhbGx5IGZ1bi4uLgo+ID4+ID4gPj0yMAo+ID4+ID4gPiBBbmQgYXMgcGFydCBvZiA2MCBlbXB0eSBnaXQgcmVwb3MgY3JlYXRpb24sIEkgcHJvcG9zZSB0byBtaWdyYXRlIHQ9CmhlCj4gPj4gPiA+ICJHb29nbGUKPiA+PiA+ID4gcmVwbyBtYW5pZmVzdCIgbWF2ZW4tYWdncmVnYXRvciBbNF0gdG8gQVNGOiBteSBwZXJzb25hbCB1c2UgaGFzIGJlPQplbgo+ID4+PTIwCj4gPj4gcXVpdGUKPiA+Pj0yMAo+ID4+ID4gPiBzdWNjZXNzZnVsLCBJIGhvcGUgaXQncyB0aGUgc2FtZSBmb3Igb3RoZXJzLiBQZXJoYXBzIHRoZXJlIGFyZQo+ID4+PTIwCj4gPj4gYmV0dGVyCj4gPj49MjAKPiA+PiA+ID4gaWRlYXMKPiA+PiA+ID4gZm9yIGl0cyBuYW1lOiBtYXZlbi1hZ2dyZWdhdG9yCj4gPj4gPiA+PTIwCj4gPj4gPiA+IEFueSBvdGhlciBpZGVhPyBhbnkgb2JqZWN0aW9uPwo+ID4+ID4gPj0yMAo+ID4+ID4gPiBSZWdhcmRzLAo+ID4+ID4gPj0yMAo+ID4+ID4gPiBIZXJ2PUU5Cj4gPj4gPiA+PTIwCj4gPj4gPiA+IFsxXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC8KPiA+PiA+ID49MjAKPiA+PiA+ID4gWzJdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4td2lwLwo+ID4+ID4gPj0yMAo+ID4+ID4gPiBbM10gaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy92aWV3dmMvbWF2ZW4vc2FuZGJveC90cnVuay9zY3JpcHRzL2dpdC8KPiA+PiA+ID49MjAKPiA+PiA+ID4gWzRdIGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1hZ2dyZWdhdG9yCj4gPj49MjAKPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+Pj0yMAo+ID4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPiA+PTIwCj4gPj4gPiA+IC0tCj4gPj4gPj0yMAo+ID4+ID4gU2VudCBmcm9tIG15IHBob25lCj4gPj49MjAKPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj0yMAo+ID4+IC0tCj4gPj0yMAo+ID4gU2VudCBmcm9tIG15IHBob25lCj49MjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0Mjk4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBPY3QgMjEgMTI6NTY6MTEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0Mjk4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDM1Qzk5MTBFRUQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAyMSBPY3QgMjAxNyAxMjo1NjoxMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk5NTk3IGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIE9jdCAyMDE3IDEyOjU2OjEwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5OTUyNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBPY3QgMjAxNyAxMjo1NjoxMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk5NTE0IGludm9rZWQgYnkgdWlkIDk5KTsgMjEgT2N0IDIwMTcgMTI6NTY6MTAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDIxIE9jdCAyMDE3IDEyOjU2OjEwICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQzg0MkQxODA4MDcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDIxIE9jdCAyMDE3IDEyOjU2OjA5ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFQ1eG4xVUtSMjlFMCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgMjEgT2N0IDIwMTcgMTI6NTY6MDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDExLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTMzXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDk0QjFENUZDNTUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDIxIE9jdCAyMDE3IDEyOjU2OjA1ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDM0IHdpdGggTUUKCWlkIFFDdzUxdzAwQjIwVWZkeTAzQ3c1Z3c7IFNhdCwgMjEgT2N0IDIwMTcgMTQ6NTY6MDUgKzAyMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogU2F0LCAyMSBPY3QgMjAxNyAxNDo1NjowNSArMDIwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBNYXZlbiBEb2NrZXIgSW1hZ2VzCkRhdGU6IFNhdCwgMjEgT2N0IDIwMTcgMTQ6NTY6MDUgKzAyMDAKTWVzc2FnZS1JRDogPDMyNzYxMTQuOGtBYjhWb0ZpNkBnaWdhPgpVc2VyLUFnZW50OiBLTWFpbC81LjIuMyAoTGludXgvNC4xMC4wLTM3LWdlbmVyaWM7IEtERS81LjMxLjA7IHg4Nl82NDsgOyApCkluLVJlcGx5LVRvOiA8Q0FMSEZuNlBlS3YwUWstemNkQWlmdEZ5QkpZcVFiY2pmRmFlS3JHeFpLRERXaWhucnBBQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0FKUnZGZG8tMzNaZnhpRnNKd2ppR1FKTVlUNW11MzFmcUQxZl91M0ZVUVRvSnY9VHVnQG1haWwuZ21haWwuY29tPiA8b3AueThnZms0eXVrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDxDQUxIRm42UGVLdjBRay16Y2RBaWZ0RnlCSllxUWJjamZGYWVLckd4WktERFdpaG5ycEFAbWFpbC5nbWFpbC5jb20+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCm5vdGljZSB0aGF0IHdlIHZvdGUgb24gc291cmNlIHRhcmJhbGxzLCBub3QgcmVhbGx5IG9uIGJpbmFyeSBhcnRpZmFjdHMKCkkgc2VlIHRoZSBnaXQgc291cmNlIGNoYW5nZXMsIGJvdGggaW4gRG9ja2VyZmlsZXMgYW5kIGluIG9mZmljaWFsLWltYWdlcyBsaT0KYnJhcnkvCm1hdmVuLgpCdXQgSSBkb24ndCBzZWUgd2hlbi9ob3cgaW1hZ2VzIGFyZSBidWlsdAoKY2FuIHlvdSBleHBsYWluLCBwbGVhc2U/CgpSZWdhcmRzLAoKSGVydj1DMz1BOQoKTGUgc2FtZWRpIDIxIG9jdG9icmUgMjAxNywgMTA6NTk6NDUgQ0VTVCBDYXJsb3MgU2FuY2hleiBhID1DMz1BOWNyaXQgOgo+IEJUVyB0aGVyZSBhcmUgcG9zc2libHkgbW9yZSB0aGFuIG9uZSBpbWFnZSBidWlsZCBmb3IgZWFjaCBtYXZlbiB2ZXJzaW9uLgo+IEZvciBhIHZhcmlldHkgb2YgcmVhc29ucywgbGlrZSBzZWN1cml0eSBpc3N1ZXMgaW4gT1Mgb3IgdG8gdXBncmFkZSBKREsgb3IKPiBiZWNhdXNlIGRvY2tlciByZWJ1aWxkcyBpdCwgc28gaXQgaXMgbm90IGZlYXNpYmxlIHRvIHZvdGUgZWFjaCBvZiB0aGVtLgo+PTIwCj4gT24gU2F0LCBPY3QgMjEsIDIwMTcsIDEyOjMzIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4gd3JvdGU6Cj4gPiBPbiBTYXQsIDIxIE9jdCAyMDE3IDEyOjE5OjQ2ICswMjAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZj0KcmVlLmZyPgo+ID49MjAKPiA+IHdyb3RlOgo+ID4gPiBMZSBzYW1lZGkgMjEgb2N0b2JyZSAyMDE3LCAwODoxNjozNSBDRVNUIFN0ZXBoZW4gQ29ubm9sbHkgYSA9QzM9QTljcmk9CnQgOgo+ID4gPj4gT24gU2F0IDIxIE9jdCAyMDE3IGF0IDA4OjQ1LCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS49CmZyPgo+ID4gPj49MjAKPiA+ID4+IHdyb3RlOgo+ID4gPj4gPiBvaywgbGV0J3Mgc3dpdGNoIGRpcmVjdGx5IHRvIHRoZSBEb2NrZXIgY2FzZQo+ID4gPj4gPj0yMAo+ID4gPj4gPiBJJ20gbm90IGEgRG9ja2VyIGV4cGVydCwgdGhlbiBJJ20gZGlzY292ZXJpbmcgdGhpbmdzIHRoYXQgbXkgYmUKPiA+ID4+PTIwCj4gPiA+PiBvYnZpb3VzIHRvCj4gPiA+Pj0yMAo+ID4gPj4gPiBvdGhlcnMKPiA+ID4+ID49MjAKPiA+ID4+ID4gSUlVQyBEb2NrZXIgaGFzIGFuICJvZmZpY2llbCBpbWFnZXMiIHByb2plY3QgWzFdIHdoZXJlIENhcmxvcwo+ID4gPj49MjAKPiA+ID4+IHByb3ZpZGVkIGEKPiA+ID4+PTIwCj4gPiA+PiA+IE1hdmVuCj4gPiA+PiA+IGltYWdlIFsyXTogdGhlbiB0aGlzIGltYWdlIGlzIGtub3duIGFzICJ0aGUgb2ZmaWNpYWwgTWF2ZW4gRG9ja2VyCj4gPiA+Pj0yMAo+ID4gPj4gaW1hZ2UiCj4gPiA+Pj0yMAo+ID4gPj4gPiBDYXJsb3MgaXMgYW4gaW5kaXZpZHVhbCwgaGUncyBhbHNvIGEgUE1DIG1lbWJlciBvZiBNYXZlbgo+ID4gPj4gPj0yMAo+ID4gPj4gPiB3aGF0IGRvIHdlIHdhbnQgdG8gc2F5OiB0aGUgUE1DIG1lbWJlciBoYXMgcHJvdmlkZWQgYW4gb2ZmaWNpYWwKPiA+ID4+ID4gRG9ja2VyCj4gPiA+PiA+IGltYWdlIG9yCj4gPiA+PiA+IGFuIGluZGl2aWR1YWwgaGFzIHByb3ZpZGVkIGFuIG9mZmljaWFsIERvY2tlciBpbWFnZT8KPiA+ID4+ID49MjAKPiA+ID4+ID4gZGVwZW5kaW5nIG9uIHRoZSBhbnN3ZXIsIHNvbWUgd2F5IG9mIGRvaW5nIGhhcyB0byBiZSBjaGFuZ2VkIChHaXQKPiA+ID4+PTIwCj4gPiA+PiBsb2NhdGlvbgo+ID4gPj49MjAKPiA+ID4+ID4gb3IKPiA+ID4+ID4gbmFtaW5nIG9mIHRoZSBvZmZpY2lhbCBpbWFnZSkKPiA+ID4+PTIwCj4gPiA+PiBJPUUyPTgwPTk5bSBpbiBmYXZvdXIgb2YgY3JlYXRpbmcgYSByZXBvIGZvciB0aGUgZG9ja2VyZmlsZSwgbGljZW5zZT0KPTJFdHh0LCByZWFkCj4gPiA+PiBtZSwKPiA+ID4+IG5vdGljZXMsIGV0Ywo+ID4gPj0yMAo+ID4gPiBvaywgaGVyZSBJIGZvbGxvdwo+ID4gPj0yMAo+ID4gPj4gYW5kIGZvbGxvdyB0aGUgc3RhbmRhcmQgcmVsZWFzZSB2b3RlIGxpZmVjeWNsZSBmb3IgdGhhdAo+ID4gPj4gZG9ja2VyZmlsZS4KPiA+ID49MjAKPiA+ID4gaGVyZSwgSSdtIG5vdCBzdXJlIHRoaXMgcmVhbGx5IGhhcyBhIG1lYW5pbmcgaW4gdGhlc2Ugb2ZmaWNpYWwgRG9ja2VyCj4gPiA+IGltYWdlcwo+ID4gPiBjYXNlczogSUlVQywgb24gYSBuZXcgTWF2ZW4gY29yZSByZWxlYXNlIHRoYXQgd2Ugd2FudCB0byBwcm9tb3RlLCB0aGU9CnJlCj4gPiA+IGFyZSAyCj4gPiA+IGFjdGlvbnMgdGhhdCBhcmUgcmVxdWlyZWQ6Cj4gPiA+IDEuIG1vZGlmeSB0aGUgTUFWRU5fVkVSU0lPTiBhbmQgU0hBIHZhbHVlcyBpbiAqL0RvY2tlcmZpbGUgaW4gdGhlIGdpdAo+ID4gPiByZXBvIFsxXQo+ID4gPiAyLiBoYXZlIGEgUFIgbWVyZ2VkIHRvIERvY2tlciBvZmZpY2lhbC1pbWFnZXMgdG8gdXBkYXRlIHRoZSBzaGExIGluCj4gPiA+IG9mZmljaWFsLQo+ID4gPiBpbWFnZXMvbGlicmFyeS9tYXZlbiBbMl0KPiA+ID49MjAKPiA+ID4gQmV0d2VlbiB0aGUgMiBzdGVwcywgd2UgY2FuIGNob29zZSB0byB2b3RlLCBvciBub3QgdG8gdm90ZSwgSSBkb24ndCBrPQpub3cKPiA+ID4gd2hhdCdzIHRoZSBiZXN0OiB3ZSBhbHJlYWR5IHZvdGVkIGZvciB0aGUgTWF2ZW4gcmVsZWFzZSB0aGF0IGdldHMgdGhlCj4gPiA+IG5ldwo+ID4gPiByZWNvbW1lbmRlZCB2ZXJzaW9uLgo+ID4gPiBXaGF0IGlzIGltcG9ydGFudCB0byBtZSBpcyB0aGF0IGFueWJvZHkgZnJvbSB0aGUgUE1DIGNhbiBkbyB0aGUgUFIgdG8KPiA+ID4gRG9ja2VyCj4gPiA+IG9mZmljaWFsLWltYWdlcyAoaWYgd2UgZGVjaWRlIHRoYXQgd2UgbWFpbnRhaW4gdGhlIG9mZmljaWFsIGltYWdlLCBub3QKPiA+ID4gb25seQo+ID4gPiBDYXJsb3MpOiB0aGVyZSBpcyBub3Qgc3BlY2lmaWMgY3JlZGVudGlhbHMKPiA+ID49MjAKPiA+ID4gT25lIHRoaW5nIEkgc2VlIGlzIHRoYXQgd2UgY2FuIGF1dG9tYXRlIGEgY2hlY2sgdGhhdCB0aGUgY3VycmVudAo+ID4gPiBvZmZpY2lhbC1pbWFnZQo+ID4gPiBpcyBvdXIgY3VycmVudGx5IHJlY29tbWVuZGVkIE1hdmVuIHZlcnNpb246IGl0J3MganVzdCBhYm91dCBhZGRpbmcgYSA9Cm5ldwo+ID4gPiBjaGVjawo+ID4gPiB0byBkaXN0LXRvb2wtcGx1Z2luIHRoYXQgd2lsbCBiZSBjaGVja2VkIGV2ZXJ5IGRheSBieSBKZW5raW5zIGpvYiBbM10KPiA+PTIwCj4gPiBXaXRob3V0IHRhbGtpbmcgaW4gc29sdXRpb25zLCB3ZSBoYXZlIHRoaXMgZ2VuZXJhbCBxdWVzdGlvbjogQXJlIHdlCj4gPiBpbmZvcm1pbmcgb3RoZXJzIGJ5IHRoZWlyIGZvcm1hdCBvciBhcmUgd2Ugb2ZmZXJpbmcgc29tZSBnZW5lcmljIG1lc3NhZ2UKPiA+IGZvciBvdGhlcnMgdG8gbWFrZSB0aGVtIGF3YXJlIHRoZXJlJ3MgYSBuZXcgdmVyc2lvbi4KPiA+PTIwCj4gPiBUaGlzIGRpc3R0b29sIHNvbHV0aW9uIHNvdW5kcyBsaWtlIHRoZSBmaXJzdCBvbmUgKHdlIHRyaWdnZXIgQ2FybG9zIGluCj4gPiBzb21lIHdheSBzbyBoZSBjYW4gbWFrZSBhIG5ldyBpbWFnZSksIHdoaWNoIGlzIGV4YWN0bHkgd2hhdCBTREtNYW4gYXNrZWQKPiA+IHVzIHRvIGRvLgo+ID49MjAKPiA+IElNSE8gd2hhdGV2ZXIgd2UgZG8gZm9yIERvY2tlciwgd2Ugc2hvdWxkIGRvIHRoZSBzYW1lIGZvciBTREtNYW4gYW5kIG9mPQpmZXIKPiA+IHRoYXQgc29sdXRpb24gZm9yIG90aGVyIGludGVyZXN0ZWQgcGFydGllcy4KPiA+PTIwCj4gPiBSb2JlcnQKPiA+PTIwCj4gPiA+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vY2FybG9zc2cvZG9ja2VyLW1hdmVuCj4gPiA+PTIwCj4gPiA+IFsyXQo+ID49MjAKPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9kb2NrZXItbGlicmFyeS9vZmZpY2lhbC1pbWFnZXMvYmxvYi9tYXN0ZXIvbGlicmFyeS9tPQphdmUKPiA+IG4KPiA+PTIwCj4gPiA+IFszXQo+ID4gPiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL2Rpc3QtdG9vbC1wbHVnaW4vc2k9CnRlLwo+ID4gPj0yMAo+ID4gPj4gSWYgd2Ugd2FudCB0aGF0IGRvY2tlcmZpbGUgaW4gTWF2ZW4tY29yZSByZXBvLCBpPUUyPTgwPTk5bSBGaW5lIHdpdGg9CiB0aGF0IHRvbwo+ID4gPj0yMAo+ID4gPiBnaXZlbiB0aGUgY29udGVudCwgYSBzZXBhcmF0ZSByZXBvIG1vcmUgcmVhc29uYWJsZQo+ID4gPj0yMAo+ID4gPj4gTm93IHRoZSBvdGhlciBxdWVzdGlvbiBpcyBob3cgdG8gZ2V0IHRoZSBpbWFnZSBmcm9tIHRoYXQgZG9ja2VyZmlsZQo+ID4gPj4gaW50bwo+ID4gPj4gZG9ja2VyLi4uCj4gPiA+PTIwCj4gPiA+IElJVUMsIHRoYXQncyB0aGUgc2Vjb25kIHBvaW50IEkgd3JvdGU6IHdlIGRvbid0IHJlYWxseSBwdXQgdGhlIGltYWdlID0KYnV0Cj4gPiA+IHVwZGF0ZSBhIGNvbW1pdCByZWZlcmVuY2UgdG8gb3VyIERvY2tlcmZpbGVzCj4gPiA+PTIwCj4gPiA+PiBJPUUyPTgwPTk5bSBoYXBweSBmb3IgQ2FybG9zIHRvIGNvbnRpbnVlIGRvaW5nIGluIGEgcGVyc29uYWwgY2FwYWNpdD0KeS4uLgo+ID4gPj0yMAo+ID4gPiArMQo+ID4gPiBJJ2QgYmUgaGFwcHkgdG8ganVzdCBoYXZlIHRoaXMgYXMgYW4gb2ZmaWNpYWwgUE1DIGFzc2V0LCB3aXRoIENhcmxvcyA9CmFzCj4gPiA+IG91cgo+ID4gPiBleHBlcnQgd2hvIHdyb3RlIHRoZSBzdWJ0bGUgYnVuY2ggb2YgaW1hZ2VzLCBzaW5jZSBJSVVDLCBpdCdzIG5vdCByZWE9CmxseQo+ID4gPiBvbmUKPiA+ID4gaW1hZ2UgYnV0IGEgY29sbGVjdGlvbiB0aGF0IG9uZSBjYW4gY2hvb3NlIGZyb20KPiA+ID49MjAKPiA+ID4gUmVnYXJkcywKPiA+ID49MjAKPiA+ID4gSGVydj1DMz1BOQo+ID4gPj0yMAo+ID4gPj4gU28gaT1FMj04MD05OWQgYmUKPiA+ID4+PTIwCj4gPiA+PiA9RTI9ODA9OUNUaGUgZG9ja2VyZmlsZSBoYXMgYmVlbiByZWxlYXNlZCBieSB0aGUgTWF2ZW4gcHJvamVjdCBhbmQgYT0KIG1lbWJlciBvZgo+ID4gPj4gdGhlCj4gPiA+PiBQTUMgaGFzIHVwbG9hZGVkIHRoZSBpbWFnZT1FMj04MD05RAo+ID4gPj49MjAKPiA+ID4+ID4gUmVnYXJkcywKPiA+ID4+ID49MjAKPiA+ID4+ID4gSGVydj1DMz1BOQo+ID4gPj4gPj0yMAo+ID4gPj4gPiBbMV0gaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci1saWJyYXJ5L29mZmljaWFsLWltYWdlcwo+ID4gPj4gPj0yMAo+ID4gPj4gPiBbMl0KPiA+PTIwCj4gPiBodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyLWxpYnJhcnkvb2ZmaWNpYWwtaW1hZ2VzL2Jsb2IvbWFzdGVyL2xpYnJhcnkvbT0KYXZlCj4gPj0yMAo+ID4gPj4gPiBuCj4gPiA+PiA+PTIwCj4gPiA+PiA+IExlIHNhbWVkaSAyMSBvY3RvYnJlIDIwMTcsIDA2OjU4OjUwIENFU1QgTWFuZnJlZCBNb3NlciBhID1DMz1BOWNyaT0KdCA6Cj4gPiA+PiA+ID4gRnJvbSBteSBwZXJzcGVjdGl2ZSBpdCBpcyBqdXN0IGxpa2Ugc2RrbWFuIGluY2x1ZGluZyB0aGUKPiA+ID4+PTIwCj4gPiA+PiBjb25jbHVzaW9uLiBXZQo+ID4gPj49MjAKPiA+ID4+ID4gaGF2ZQo+ID4gPj4gPj0yMAo+ID4gPj4gPiA+IG90aGVyIHRhc2tzIGF0IG91ciBoYW5kcywgbWFpbnRhaW5pbmcgYSBkb2NrZXIgaW1hZ2VzIGlzIG5vdAo+ID4gPj49MjAKPiA+ID4+IHNvbWV0aGluZwo+ID4gPj49MjAKPiA+ID4+ID4gPiB3ZQo+ID4gPj4gPiA+IHNob3VsZCBib3RoZXIgd2l0aC4gSG93ZXZlciBuZWVkcyBvbmUgY2FuIGVhc2lseSBjcmVhdGUgb25lIGFuZAo+ID4gPj49MjAKPiA+ID4+IHRoZXJlCj4gPiA+Pj0yMAo+ID4gPj4gPiB3aWxsCj4gPiA+PiA+PTIwCj4gPiA+PiA+ID4gYmUgdGhvdXNhbmRzIG9mIHZhcmlhdGlvbnMgZGlmZmVyZW50IHVzZXJzIHdhbnQuCj4gPiA+PiA+ID49MjAKPiA+ID4+ID4gPiBMZXQgdGhlbSBjcmVhdGUgaXQgb24gdGhlaXIgb3duLgo+ID4gPj4gPiA+PTIwCj4gPiA+PiA+ID4gTWFuZnJlZAo+ID4gPj4gPiA+PTIwCj4gPiA+PiA+ID4gSGVydj1DMz1BOSBCT1VURU1ZIHdyb3RlIG9uIDIwMTctMTAtMjAgMTg6NDY6Cj4gPiA+PiA+ID4gPiB0cnVlLCBmcm9tIGEgZ2VuZXJhbCBwZXJzcGVjdGl2ZSwgaXQncyBsaWtlIHNka21hbgo+ID4gPj4gPiA+ID49MjAKPiA+ID4+ID4gPiA+IHdlIG5lZWQgdG8gZGlzY3VzcyB0aGVuIGRlY2lkZSBpZiB3ZSB3YW50IHRvIG1haW50YWluIE1hdmVuCj4gPiA+PiA+ID4gPiBEb2NrZXIKPiA+ID4+ID4gPiA+IGludGVncmF0aW9uIChjb250cmFyeSB0byBvdXIgY3VycmVudCBkZWNpc2lvbiB0byBub3QgbWFpbnRhaW4KPiA+ID4+PTIwCj4gPiA+PiBNYXZlbgo+ID4gPj49MjAKPiA+ID4+ID4gPiA+IHNka21hbiBpbnRlZ3JhdGlvbiBidXQgbGV0IHNka21hbiBjb21tdW5pdHkgZG8gaXQpCj4gPiA+PiA+ID4gPj0yMAo+ID4gPj4gPiA+ID4gY2FuIHdlIHRoaW5rIGFib3V0IGEgZ2VuZXJhbCBzb2x1dGlvbj8gcGVyaGFwcyBub3QgcmVhbGx5IGEKPiA+ID4+PTIwCj4gPiA+PiBzb2x1dGlvbiwKPiA+ID4+PTIwCj4gPiA+PiA+IGJ1dAo+ID4gPj4gPj0yMAo+ID4gPj4gPiA+ID4gYQo+ID4gPj4gPiA+ID4gZGVjaXNpb24gcHJvY2VzcywgeWVzCj4gPiA+PiA+ID4gPj0yMAo+ID4gPj4gPiA+ID4gdG8gbWUsIG9uIGVhY2ggdG9vbCBpbnRlZ3JhdGlvbiwgdGhlcmUgYXJlIGtleSBkZWNpc2lvbiBkcml2ZXI9CnM6Cj4gPiA+PiA+ID4gPiAtIGltcG9ydGFuY2Ugb2YgdGhlIHRvb2wgb24gdGhlIG1hcmtldAo+ID4gPj4gPiA+ID4gLSBpbnRlcmVzdCBvZiBNYXZlbiBkZXZzIHRvIGFjdHVhbGx5IGRvIGludGVncmF0aW9uIG1haW50ZW5hbmNlCj4gPiA+PiA+ID4gPiAtIGNvbXBsZXhpdHkgb2YgaW50ZWdyYXRpb24sIHRlY2huaWNhbCBwcmVyZXF1aXNpdGVzICh3aXRoIElERT0KcywKPiA+ID4+PTIwCj4gPiA+PiBmb3IKPiA+ID4+PTIwCj4gPiA+PiA+ID4gPiBleGFtcGxlLCBhIGRlZGljYXRlZCBpbmRlcGVuZGFudCBwcm9qZWN0IGxpa2UgbTJlIGlzIG5lY2Vzc2FyeSkKPiA+ID4+ID4gPiA+IC0gdGltZSBmYWN0b3I6IHRoaW5ncyBldm9sdmUgb3ZlciB0aW1lIChlLmcuIDIgeWVhcnMgYWdvLCBEb2NrPQplcgo+ID4gPj49MjAKPiA+ID4+IHdhcwo+ID4gPj49MjAKPiA+ID4+ID4gbm90Cj4gPiA+PiA+PTIwCj4gPiA+PiA+ID4gPiB3aGF0IGl0IGlzIG5vd2FkYXlzKQo+ID4gPj4gPiA+ID49MjAKPiA+ID4+ID4gPiA+IGFueSBvdGhlciBrZXkgZHJpdmVyIHRvIGRvY3VtZW50Pwo+ID4gPj4gPiA+ID49MjAKPiA+ID4+ID4gPiA+IG9uY2UgZG9uZSwgd2UnbGwgZGlzY3VzcyBtb3JlIHByZWNpc2VseSBhYm91dCB0aGUgRG9ja2VyCj4gPiA+Pj0yMAo+ID4gPj4gaW50ZWdyYXRpb24KPiA+ID4+PTIwCj4gPiA+PiA+IGNhc2UKPiA+ID4+ID49MjAKPiA+ID4+ID4gPiA+IGFuZCBwcm9iYWJseSBmaW5pc2ggd2l0aCBhIHZvdGUgOikKPiA+ID4+ID4gPiA+PTIwCj4gPiA+PiA+ID4gPiBSZWdhcmRzLAo+ID4gPj4gPiA+ID49MjAKPiA+ID4+ID4gPiA+IEhlcnY9QzM9QTkKPiA+ID4+ID4gPiA+PTIwCj4gPiA+PiA+ID4gPiBMZSB2ZW5kcmVkaSAyMCBvY3RvYnJlIDIwMTcsIDExOjMwOjQ5IENFU1QgUm9iZXJ0IFNjaG9sdGUgYSA9Cj1DMz1BOWNyaXQKPiA+ID4+ID4gPiA+PTIwCj4gPiA+PiA+ID4gPj4gSXNuJ3QgdGhpcyBhY3R1YWxseSB0aGUgc2FtZSBjYXNlIGFzIHNka21hblsxXT8KPiA+ID4+ID4gPiA+PiBKdXN0IHdvbmRlcmluZyBpZiB3ZSBuZWVkIHRvIHRoaW5rIGFib3V0IGEgZ2VuZXJhbCBzb2x1dGlvbgo+ID4gPj49MjAKPiA+ID4+IGluc3RlYWQKPiA+ID4+PTIwCj4gPiA+PiA+ID4gPj4gb2YKPiA+ID4+ID4gPiA+PiBwdWxsaW5nIGV2ZXJ5dGhpbmcgaW50byBvdXIgcHJvamVjdCB3aGVuIHBvc3NpYmxlLgo+ID4gPj4gPiA+ID4+PTIwCj4gPiA+PiA+ID4gPj4gdGhhbmtzLAo+ID4gPj4gPiA+ID4+IFJvYmVydAo+ID4gPj4gPiA+ID4+PTIwCj4gPiA+PiA+ID4gPj4gWzFdIGh0dHA6Ly9tYXJrbWFpbC5vcmcvbWVzc2FnZS9vb2Z2c3ptZjU2dGJyN2V0Cj4gPiA+PiA+ID4gPj49MjAKPiA+ID4+ID4gPiA+PiBPbiBUaHUsIDE5IE9jdCAyMDE3IDE5OjMwOjU3ICswMjAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+ID4gPj4gPj0yMAo+ID4gPj4gPiBoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPiA+PiA+PTIwCj4gPiA+PiA+ID4gPj4gd3JvdGU6Cj4gPiA+PiA+ID4gPj4gPiBncmVhdCBpZGVhCj4gPiA+PiA+ID4gPj4gPj0yMAo+ID4gPj4gPiA+ID4+ID4gb2ssIHdlIG5lZWQgYSBnaXQgcmVwbyBhdCBBU0YKPiA+ID4+ID4gPiA+PiA+PTIwCj4gPiA+PiA+ID4gPj4gPiB3aGF0IGVsc2U/Cj4gPiA+PiA+ID4gPj4gPiBJcyB0aGVyZSBzb21lIHNvcnQgb2YgcmVsZWFzZSBwcm9jZXNzPyBzb21lIHNvcnQgb2Ygc291cmNlID0KdG8KPiA+ID4+ID49MjAKPiA+ID4+ID4gcmVsZWFzZT8KPiA+ID4+ID49MjAKPiA+ID4+ID4gPiA+PiA+IFJlZ2FyZHMsCj4gPiA+PiA+ID4gPj4gPj0yMAo+ID4gPj4gPiA+ID4+ID4gSGVydj1DMz1BOQo+ID4gPj4gPiA+ID4+ID49MjAKPiA+ID4+ID4gPiA+PiA+IExlIGpldWRpIDE5IG9jdG9icmUgMjAxNywgMTM6NDc6NDUgQ0VTVCBNaWtlIERyb2IgYSA9QzM9QTljPQpyaXQgOgo+ID4gPj4gPiA+ID4+ID4+IFRoYW5rcyBmb3IgdGhlIHBvaW50ZXIsIENhcmxvcyEgSSBoYWQgc2VhcmNoZWQgdGhlIGFyY2hpdmU9CnMsCj4gPiA+Pj0yMAo+ID4gPj4gYnV0Cj4gPiA+Pj0yMAo+ID4gPj4gPiBtYXliZQo+ID4gPj4gPj0yMAo+ID4gPj4gPiA+ID4+ID4+IEkKPiA+ID4+ID4gPiA+PiA+PiBkaWRuJ3QgZ28gYmFjayBmYXIgZW5vdWdoLgo+ID4gPj4gPiA+ID4+ID4+PTIwCj4gPiA+PiA+ID4gPj4gPj4gSSB0aGluayBtb3ZpbmcgdGhlc2UgRG9ja2VyZmlsZXMgaW50byBhbiBBU0YgcmVwbyB3b3VsZCBiZQo+ID4gPj49MjAKPiA+ID4+IGdyZWF0Cj4gPiA+Pj0yMAo+ID4gPj4gPiBmb3IKPiA+ID4+ID49MjAKPiA+ID4+ID4gPiA+PiA+PiB0aGVpcgo+ID4gPj4gPiA+ID4+ID4+IG1haW50YWluYWJpbGl0eS4KPiA+ID4+ID4gPiA+PiA+Pj0yMAo+ID4gPj4gPiA+ID4+ID4+IFRoYW5rcywKPiA+ID4+ID4gPiA+PiA+Pj0yMAo+ID4gPj4gPiA+ID4+ID4+IE1pa2UKPiA+ID4+ID4gPiA+PiA+Pj0yMAo+ID4gPj4gPiA+ID4+ID4+IE9uIDIwMTctMTAtMTkgMDM6NTAsIENhcmxvcyBTYW5jaGV6IDxjLi4uQGFwYWNoZS5vcmc+IHdyb3Q9CmU6Cj4gPiA+PiA+ID4gPj4gPj4gPiBBcm5hdWQgaXMgY29ycmVjdCwgSSBzZW50IGFuIGVtYWlsIHRvIHVzZXJzQCBiYWNrIG9uIEZyaSwKPiA+ID4+PTIwCj4gPiA+PiBOb3YgNywKPiA+ID4+PTIwCj4gPiA+PiA+ID4gPj4gPj4gMjAxNCw+Cj4gPiA+PiA+ID4gPj4gPj49MjAKPiA+ID4+ID4gPiA+PiA+PiA+IDAwOjIzIHdoZW4gSSBjcmVhdGVkIHRoZSBpbWFnZT4KPiA+ID4+ID4gPiA+PiA+PiA+PTIwCj4gPiA+PiA+ID4gPj4gPj4gPj0yMAo+ID4gPj4gPiA+ID4+ID4+ID4gT24gVGh1LCBPY3QgMTksIDIwMTcsIDExOjEyIEFybmF1ZCBIPUVGPUJGPUJEcml0aWVyCj4gPiA+Pj0yMAo+ID4gPj4gPGFoLi4uQGdtYWlsLmNvbT4KPiA+ID4+PTIwCj4gPiA+PiA+ID4gPj4gPj4gPiB3cm90ZTo+Cj4gPiA+PiA+ID4gPj4gPj4gPj0yMAo+ID4gPj4gPiA+ID4+ID4+ID4gPiBUaGVzZSBpbWFnZXMgYXJlIGtpbmRseSBtYW5hZ2VkIGJ5IGEgUE1DIG1lbWJlciBvZiBvdXIKPiA+ID4+PTIwCj4gPiA+PiBwcm9qZWN0Cj4gPiA+Pj0yMAo+ID4gPj4gPiA+ID4+ID4+IChDYXJsb3MpCj4gPiA+PiA+ID4gPj4gPj49MjAKPiA+ID4+ID4gPiA+PiA+PiBidXQ+Cj4gPiA+PiA+ID4gPj4gPj49MjAKPiA+ID4+ID4gPiA+PiA+PiA+ID4geWVzIHRoZXkgYXJlbid0IG1hbmFnZWQgZGlyZWN0bHkgYnkgdGhlIHByb2plY3Q+Cj4gPiA+PiA+ID4gPj4gPj4gPiA+PTIwCj4gPiA+PiA+ID4gPj4gPj4gPiA+IFdlIGNhbiBlYXNpbHkgc2VlIHdpdGggaGltIHRvIGltcHJvdmUgdGhpcyBJTU8uPgo+ID4gPj4gPiA+ID4+ID4+ID4gPj0yMAo+ID4gPj4gPiA+ID4+ID4+ID4gPiBXaGVuIGhlIHN0YXJ0ZWQgdGhhdCAoc2V2ZXJhbCB5ZWFycyBhZ28pIERvY2tlciB3YXNuJ3QKPiA+ID4+PTIwCj4gPiA+PiB3aGF0IGl0Cj4gPiA+Pj0yMAo+ID4gPj4gPiBpcwo+ID4gPj4gPj0yMAo+ID4gPj4gPiA+ID4+ID4+IG5vd2FkYXlzLj4KPiA+ID4+ID4gPiA+PiA+Pj0yMAo+ID4gPj4gPiA+ID4+ID4+ID4gPiBXaXRoIGRvY2tlciBiZWluZyBtYWluc3RyZWFtIEkgYWdyZWUgdGhhdCB3ZSBjYW4KPiA+ID4+PTIwCj4gPiA+PiByZWNvbnNpZGVyCj4gPiA+Pj0yMAo+ID4gPj4gPiB0aGlzLj4KPiA+ID4+ID49MjAKPiA+ID4+ID4gPiA+PiA+PiA+ID4gVGhlIGRvY2tlciBpbWFnZSBidWlsZC9kaXN0cmlidXRpb24gY291bGQgcGVyaGFwcyBiZSBwPQphcnQKPiA+ID4+PTIwCj4gPiA+PiBvZgo+ID4gPj49MjAKPiA+ID4+ID4gb3VyCj4gPiA+PiA+PTIwCj4gPiA+PiA+ID4gPj4gPj4gcmVsZWFzZT4KPiA+ID4+ID4gPiA+PiA+Pj0yMAo+ID4gPj4gPiA+ID4+ID4+ID4gPiBwcm9jZXNzLj4KPiA+ID4+ID4gPiA+PiA+PiA+ID49MjAKPiA+ID4+ID4gPiA+PiA+PiA+ID4gV0RZVCBDYXJsb3MgPz4KPiA+ID4+ID4gPiA+PiA+PiA+ID49MjAKPiA+ID4+ID4gPiA+PiA+PiA+ID4gT24gVGh1LCBPY3QgMTksIDIwMTcgYXQgNDoxNiBBTSwgTWlrZSBEcm9iCj4gPiA+Pj0yMAo+ID4gPj4gPG1kLi4uQGFwYWNoZS5vcmc+Cj4gPiA+Pj0yMAo+ID4gPj4gPiA+ID4+ID4+IHdyb3RlOj4KPiA+ID4+ID4gPiA+PiA+Pj0yMAo+ID4gPj4gPiA+ID4+ID4+ID4gPiA+IEkgZ3Vlc3MgdGhlIG5hdHVyYWwgZm9sbG93LW9uIHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhlCj4gPiA+Pj0yMAo+ID4gPj4gTWF2ZW4KPiA+ID4+PTIwCj4gPiA+PiA+ID4gPj4gPj4gY29tbXVuaXR5Pgo+ID4gPj4gPiA+ID4+ID4+PTIwCj4gPiA+PiA+ID4gPj4gPj4gPiA+ID4gd291bGQgY29uc2lkZXIgcHVibGlzaGluZyBhbiBvZmZpY2lhbCBzZXQgb2YgaW1hZ2VzPz0KIE9yCj4gPiA+PiA+ID4gPj4gPj49MjAKPiA+ID4+ID4gPiA+PiA+PiBhbHRlcm5hdGl2ZWx5Pgo+ID4gPj4gPiA+ID4+ID4+PTIwCj4gPiA+PiA+ID4gPj4gPj4gPiA+ID4gd2hldGhlciB0aGV5IHNob3VsZCBzZW5kIGEgdGFrZWRvd24gbm90aWNlIHRvIHByb3RlY3QKPiA+ID4+PTIwCj4gPiA+PiB0aGVpcgo+ID4gPj49MjAKPiA+ID4+ID4gPiA+PiA+PiA+ID4gPiBicmFuZAo+ID4gPj4gPiA+ID4+ID4+PTIwCj4gPiA+PiA+ID4gPj4gPj4gYW5kPgo+ID4gPj4gPiA+ID4+ID4+PTIwCj4gPiA+PiA+ID4gPj4gPj4gPiA+ID4gdHJhZGVtYXJrcy4uLj4KPiA+ID4+ID4gPiA+PiA+PiA+ID4gPj0yMAo+ID4gPj4gPiA+ID4+ID4+ID4gPiA+IE9uIDIwMTctMTAtMTggMTg6MzYsICJNYW5mcmVkIE1vc2VyIgo+ID4gPj49MjAKPiA+ID4+IDxtYS4uLkBzaW1wbGlnaWxpdHkuY29tCj4gPiA+Pj0yMAo+ID4gPj4gPiA+ID4+ID4+IHdyb3RlOj4KPiA+ID4+ID4gPiA+PiA+Pj0yMAo+ID4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gTm8uIEFzIHlvdSBjYW4gc2VlIGZyb20gdGhlIGdpdGh1YiBVUkwgdGhpcyBpcyBOT1Q9CiBhbgo+ID4gPj4gPj0yMAo+ID4gPj4gPiBhcGFjaGUKPiA+ID4+ID49MjAKPiA+ID4+ID4gPiA+PiA+PiBVUkwuPgo+ID4gPj4gPiA+ID4+ID4+PTIwCj4gPiA+PiA+ID4gPj4gPj4gPiA+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vY2FybG9zc2cvZG9ja2VyLW1hdmVuPgo+ID4gPj4gPiA+ID4+ID4+ID4gPiA+ID49MjAKPiA+ID4+ID4gPiA+PiA+PiA+ID4gPiA+PTIwCj4gPiA+PiA+ID4gPj4gPj4gPiA+ID4gPiBNaWtlIERyb2Igd3JvdGUgb24gMjAxNy0xMC0xOCAxNjozMjo+Cj4gPiA+PiA+ID4gPj4gPj4gPiA+ID4gPj0yMAo+ID4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gPiBIZWxsbyw+Cj4gPiA+PiA+ID4gPj4gPj4gPiA+ID4gPiA+PTIwCj4gPiA+PiA+ID4gPj4gPj4gPiA+ID4gPiA+IEFyZSB0aGUgaW1hZ2VzIGF0IGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9fL21hdj0KZW4vCj4gPiA+PiA+ID4gPj4gPj49MjAKPiA+ID4+ID4gPiA+PiA+PiBjb25zaWRlcmVkIHRvCj4gPiA+PiA+ID4gPj4gPj49MjAKPiA+ID4+ID4gPiA+PiA+PiBiZT4KPiA+ID4+ID4gPiA+PiA+Pj0yMAo+ID4gPj4gPiA+ID4+ID4+ID4gPiA+IG9mZmljaWFsPgo+ID4gPj4gPiA+ID4+ID4+ID4gPiA+PTIwCj4gPiA+PiA+ID4gPj4gPj4gPiA+ID4gPiA+IG1hdmVuIGRvY2tlciBpbWFnZXMgYW5kIGJsZXNzZWQvcHVibGlzaGVkIGJ5IHRoZQo+ID4gPj49MjAKPiA+ID4+IFBNQz8+Cj4gPiA+Pj0yMAo+ID4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gPiBUaGFua3MsPgo+ID4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gPiBNaWtlPgo+ID4gPj4gPj0yMAo+ID4gPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0tCj4gPiA+PiA+ID4KPiA+ID4+ID49MjAKPiA+ID4+ID4gPiA+PiA+PiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDoKPiA+ID4+ID4gdXNlcnMtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KPiA+ID4+ID49MjAKPiA+ID4+ID4gPiA+PiA+PiA+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDoKPiA+ID4+ID4gPiA+PiA+PiA+ID4gPiA+ID4gdXNlcnMtaGVscEBtYXZlbi5hcGFjaGUub3JnPgo+ID4gPj4gPj0yMAo+ID4gPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0tCj4gPiA+PiA+ID4KPiA+ID4+ID49MjAKPiA+ID4+ID4gPiA+PiA+PiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6Cj4gPiA+PiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Pj0yMAo+ID4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDoKPiA+ID4+ID4gdXNlcnMtaGVscEBtYXZlbi5hcGFjaGUub3JnPgo+ID4gPj4gPj0yMAo+ID4gPj4gPj0yMAo+ID4gPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0tCj4gPiA+PiA+ID4KPiA+ID4+ID49MjAKPiA+ID4+ID4gPiA+PiA+PiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOgo+ID4gPj4gdXNlcnMtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KPiA+ID4+PTIwCj4gPiA+PiA+ID4gPj4gPj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDoKPiA+ID4+IHVzZXJzLWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj49MjAKPiA+ID4+ID4gPiA+PiA+PiA+ID4gLS0+Cj4gPiA+PiA+ID4gPj4gPj4gPiA+IC0tLS0tPgo+ID4gPj4gPiA+ID4+ID4+ID4gPiBBcm5hdWQgSD1FRj1CRj1CRHJpdGllcj4KPiA+ID4+ID4gPiA+PiA+PiA+ID4gaHR0cDovL2FoZXJpdGllci5uZXQ+Cj4gPiA+PiA+ID4gPj4gPj4gPiA+IE1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tPgo+ID4gPj4gPiA+ID4+ID4+ID4gPiBUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyPgo+ID4gPj4gPj0yMAo+ID4gPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0tCj4gPiA+PiA+PTIwCj4gPiA+PiA+ID4gPj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4gPiA+ID4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj49MjAKPiA+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPj49MjAKPiA+ID4+ID4gPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4gPiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+PTIwCj4gPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4+PTIwCj4gPiA+PiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj49MjAKPiA+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPj49MjAKPiA+ID4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+ID49MjAKPiA+ID4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQo9MkQtLQo+ID4gPj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+PiA+PTIwCj4gPiA+PiA+IC0tCj4gPiA+Pj0yMAo+ID4gPj4gU2VudCBmcm9tIG15IHBob25lCj4gPiA+PTIwCj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj0yMAo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQyNDEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE9jdCAxNCAxNTozMDoyNiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyNDEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOEE4MjExMDFDRgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDE0IE9jdCAyMDE3IDE1OjMwOjI2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjI5MzkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTQgT2N0IDIwMTcgMTU6MzA6MjYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYyODcwIGludm9rZWQgYnkgdWlkIDUwMCk7IDE0IE9jdCAyMDE3IDE1OjMwOjI2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjI4NTkgaW52b2tlZCBieSB1aWQgOTkpOyAxNCBPY3QgMjAxNyAxNTozMDoyNSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMTQgT2N0IDIwMTcgMTU6MzA6MjUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA0M0E3MUMzRTNGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAxNCBPY3QgMjAxNyAxNTozMDoyNSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xLjMKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEuMyB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDJjbWc0cHpnVkthYyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgMTQgT2N0IDIwMTcgMTU6MzA6MjQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDEwLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTMyXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDgyNkI0NUZDRTUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDE0IE9jdCAyMDE3IDE1OjMwOjIzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDIwIHdpdGggTUUKCWlkIE1UV04xdzAwUDIwVWZkeTAzVFdQRjI7IFNhdCwgMTQgT2N0IDIwMTcgMTc6MzA6MjMgKzAyMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogU2F0LCAxNCBPY3QgMjAxNyAxNzozMDoyMyArMDIwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IGltcHJvdmVtZW50cyBmb3IgTWF2ZW4gMy41LjIKRGF0ZTogU2F0LCAxNCBPY3QgMjAxNyAxNzozMDoyMiArMDIwMApNZXNzYWdlLUlEOiA8MzI5Njc1NC5uWUZ6cDd5MnM4QGdpZ2E+ClVzZXItQWdlbnQ6IEtNYWlsLzUuMi4zIChMaW51eC80LjEwLjAtMzctZ2VuZXJpYzsgS0RFLzUuMzEuMDsgeDg2XzY0OyA7ICkKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpJJ2QgbGlrZSB0byBtZXJnZSB0byBtYXN0ZXIgZm9sbG93aW5nIGlzc3Vlcywgd2l0aCBjb3JyZXNwb25kaW5nIGNvZGUgcmVhZHk9CiBpbj0yMAp0aGVpciBicmFuY2hlczoKPTJEIE1ORy02MjQyIE5vIGNvbG9yIGZvciBtYXZlbiBvbiBDeWd3aW4KPTJEIE1ORy02MTk2IFVwZGF0ZSBzbGY0aiBhbmQgc2ltcGxpZnkgaXRzIGNvbG9yIGludGVncmF0aW9uCgpBcmUgdGhlcmUgc2Vjb25kZXJzPwoKUmVnYXJkcywKCkhlcnY9RTkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDIwMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gT2N0ICA5IDA5OjMxOjU4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDIwMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDN0FBNzEwMUM5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgIDkgT2N0IDIwMTcgMDk6MzE6NTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5ODAzMSBpbnZva2VkIGJ5IHVpZCA1MDApOyA5IE9jdCAyMDE3IDA5OjMxOjU3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NzkzOSBpbnZva2VkIGJ5IHVpZCA1MDApOyA5IE9jdCAyMDE3IDA5OjMxOjU3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTc5MjcgaW52b2tlZCBieSB1aWQgOTkpOyA5IE9jdCAyMDE3IDA5OjMxOjU3IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAwOSBPY3QgMjAxNyAwOTozMTo1NyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDU1RUUxMUExNjBBCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAgOSBPY3QgMjAxNyAwOTozMTo1NiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjYwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC42MDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglGUkVFTUFJTF9SRVBMWT0xLCBLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD15YWhvby5kZQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgTW9JckRUN01xTVBEIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAgOSBPY3QgMjAxNyAwOTozMTo1MiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzb25pYzMwMi0yMS5jb25zbXIubWFpbC5uZTEueWFob28uY29tIChzb25pYzMwMi0yMS5jb25zbXIubWFpbC5uZTEueWFob28uY29tIFs2Ni4xNjMuMTg2LjE0N10pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBFNkI0RjVGQkU2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAgOSBPY3QgMjAxNyAwOTozMTo1MSArMDAwMCAoVVRDKQpYLVlNYWlsLU9TRzogcGY1bmQ1d1ZNMW4xalB2MjRpVzlKQTBaRThzUDVVTnpZX0s5OUlMV0lGelQxeW8xaG5RQUFqbmxhWmFZeFRFCiBHeHhLZ1NQQWcwaVhFaXdSTWZwcThHUUJwLm1lUWJtbEFsVUgycVRLWVFJYzBEUmNwb2w2aGtTNnA5R1RJZG5qcE5US2tVaS5RME8xCiBjNDVGNFEyLjI4RGxHQjJhS005VG9qUEV1azRpazJrQmEzblFpdzViUl9XMXNXVUJCcU51RzJEeFNiY3daV0thdnN5LnhvMWFJVVFQCiBXTlBqakZzOWxxXzFqOTNhX3lOeVlabDJkcy5vSkdqNFhDTkVGakc2S1BRckljNm4ySko1SXFQQXV1MHF5UWQ1Yk54SlhtZTVjMUsyCiA5Njl0OGdlTjZDUkhNd2U2Tnc1UFVsRXNwTm4yWC43WXpTWDkyYTJDSGdjUmdQaWNtN2pCMzZ3RE10SGlKVTZtTVpQb3djajdxbGVpCiBfalNZT2lvWVZKQTNKcUtPV040T01kT1g3RkM4cjBvLnZaOWFDMjluOUJDLmFnU05LbjFXX2pqTFRDYkpiS29KZjJ0SmM4SlpMT3pICiBUc2JBVmNKQzhmWEJ6bFhBei5acjJrVzlxcUViMlZhNUNVM3lpaEhDTG1VOTRCNy5jNXhwbndWejdaMTV0Y2xzR1hmZXN3cUM0SEEtCiAtClJlY2VpdmVkOiBmcm9tIHNvbmljLmdhdGUubWFpbC5uZTEueWFob28uY29tIGJ5IHNvbmljMzAyLmNvbnNtci5tYWlsLm5lMS55YWhvby5jb20gd2l0aCBIVFRQOyBNb24sIDkgT2N0IDIwMTcgMDk6MzE6NTEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gWzEyNy4wLjAuMV0gYnkgc210cDExMS5tYWlsLm5lMS55YWhvby5jb20gd2l0aCBOTkZNUDsgMDkgT2N0IDIwMTcgMDk6MzE6NDcgLTAwMDAKWC1ZYWhvby1OZXdtYW4tSWQ6IDkwNTgxMC42NTkxMC5ibUBzbXRwMTExLm1haWwubmUxLnlhaG9vLmNvbQpYLVlhaG9vLU5ld21hbi1Qcm9wZXJ0eTogeW1haWwtMwpYLVlNYWlsLU9TRzogcGY1bmQ1d1ZNMW4xalB2MjRpVzlKQTBaRThzUDVVTnpZX0s5OUlMV0lGelQxeW8KIDFoblFBQWpubGFaYVl4VEVHeHhLZ1NQQWcwaVhFaXdSTWZwcThHUUJwLm1lUWJtbEFsVUgycVRLWVFJYwogMERSY3BvbDZoa1M2cDlHVElkbmpwTlRLa1VpLlEwTzFjNDVGNFEyLjI4RGxHQjJhS005VG9qUEV1azRpCiBrMmtCYTNuUWl3NWJSX1cxc1dVQkJxTnVHMkR4U2Jjd1pXS2F2c3kueG8xYUlVUVBXTlBqakZzOWxxXzEKIGo5M2FfeU55WVpsMmRzLm9KR2o0WENORUZqRzZLUFFySWM2bjJKSjVJcVBBdXUwcXlRZDViTnhKWG1lNQogYzFLMjk2OXQ4Z2VONkNSSE13ZTZOdzVQVWxFc3BObjJYLjdZelNYOTJhMkNIZ2NSZ1BpY203akIzNndECiBNdEhpSlU2bU1aUG93Y2o3cWxlaV9qU1lPaW9ZVkpBM0pxS09XTjRPTWRPWDdGQzhyMG8udlo5YUMyOW4KIDlCQy5hZ1NOS24xV19qakxUQ2JKYktvSmYydEpjOEpaTE96SFRzYkFWY0pDOGZYQnpsWEF6LlpyMmtXOQogcXFFYjJWYTVDVTN5aWhIQ0xtVTk0QjcuYzV4cG53Vno3WjE1dGNsc0dYZmVzd3FDNEhBLS0KWC1ZYWhvby1TTVRQOiA4MWRoSS5pc3dCQnE3Ym95elJvT1g2eHVSSWU4CkZyb206IE1hcmsgU3RydWJlcmcgPHN0cnViZXJnQHlhaG9vLmRlLklOVkFMSUQ+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsKCWNoYXJzZXQ9dXRmLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpNaW1lLVZlcnNpb246IDEuMCAoTWFjIE9TIFggTWFpbCAxMS4wIFwoMzQ0NS4xLjdcKSkKU3ViamVjdDogUmU6IEplbmtpbnMgYW5kIE1hdmVuIDMuMC41IG9yIEpESyA3CkRhdGU6IE1vbiwgOSBPY3QgMjAxNyAxMTozMTo0NSArMDIwMApSZWZlcmVuY2VzOiA8MTA1NDQ2MTUuQjRoTzNQbnZFekBnaWdhPgogPENBS3VWekJSMncrZms1UzN1bkJRUjdCNTRlVTgwQ1FRYUM2NHV5WTVYTkVDSG9TSDZHZ0BtYWlsLmdtYWlsLmNvbT4KIDxDQUt1VnpCUVNnUlhXVkVnOENnclpkc05Hd2RUZk50YzRxV3Q0R255SkRvb2l5YXIyTkFAbWFpbC5nbWFpbC5jb20+CiA8MTkzNDk4My54Uk04S3lJaW1pQGdpZ2E+CiA8Q0FGTkNVLV81Q2ZhUE1MMmZ3Wis3dEZFQVpKVCt3WkJEeDZiPS03RTRKUktBbT0tWWdnQG1haWwuZ21haWwuY29tPgogPEUyRDJGRDAzLTYyMTQtNDIxMC05NDU5LTk3QUYyM0YwMEI0RUBob250b24ub3JnPgogPENBRk5DVS0tb0hIRCtDRm1jMTBqSFVPSl9uVENULV89YW5NcXkwT2FjN3Y3a0dqbXU3UUBtYWlsLmdtYWlsLmNvbT4KVG86IE1hdmVuIERldiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Q0FGTkNVLS1vSEhEK0NGbWMxMGpIVU9KX25UQ1QtXz1hbk1xeTBPYWM3djdrR2ptdTdRQG1haWwuZ21haWwuY29tPgpNZXNzYWdlLUlkOiA8MzI5NzcwNDAtQzcwMS00MDUzLUE1NTQtNzBDREIxN0M4QUYxQHlhaG9vLmRlPgpYLU1haWxlcjogQXBwbGUgTWFpbCAoMi4zNDQ1LjEuNykKCkhpIGZvbGtzIQoKSGF2aW5nIGRvemVuIHN1YiByZXBvcyBpbiBHSVQgaXMgc3RpbGwgYSBQSVRBLj0yMApBbHNvIGdpdC1zdWJtb2R1bGVzIGlzIHN0aWxsIHN1Yi1vcHRpbWFsIGFuZCBhdCBiZXN0IGEgc21hbGxpc2ggaGVscGVyLgoKRm9yIG1lIHBlcnNvbmFsbHkgdGhlcmUgaXMgb25lIG1ham9yIGRlY2lzaW9uIHBvaW50IGlmIGl0IGNvbWVzIHRvID0KZGVjaWRpbmcgd2hldGhlciB0byBoYXYgb25lIGJpZyByZXBvIG9yIG11bHRpcGxlIHNtYWxsZXIgb25lczogdGhlID0KZGVsaXZlcmFibGUuCgpJcyB0aGVyZSBleGFjdGx5IG9uZSBkZWxpdmVyYWJsZSAob25lICdtYXZlbicgcmVsZWFzZSksIHRoZW4gaXQgc2hvdWxkID0KYmUgb25lIHJlcG8uCgpBcmUgdGhlcmUgbWFueSBkZWxpdmVyYWJsZXMgd2hpdGggc2VwYXJhdGUgbGlmZWN5Y2xlIChsaWtlIG1vc3QgcGx1Z2lucykgPQp0aGVuIEkgbm9ybWFsbHkgZG8gc2VwZXJhdGUgcmVwb3MuCgpJZiBJIGhhdmUgbXVsdGlwbGUgcmVwb3MgdGhlbiBJIHVzdWFsbHkgZG8gYSBtYW51YWxseSBtYWludGFpbmVkIGJ1aWxkID0KcGlwZWxpbmUgYWdhaW5zdCBhIEZSRVNIIHJlcG8hClRoaXMgaXMgaW1wb3J0YW50ISBZb3UgbXVzdCBfbm90XyBoYXZlIGFueSBzbmFwc2hvdCBvZiB0aGF0IHZlcnNpb24gaW4gPQp5b3VyIHVwc3RyZWFtIG1hdmVuIHJlcG9zLgpPdGhlcndpc2UgeW91IGVmZmVjdGl2ZWx5IGNhbm5vdCBkZXRlY3Qgd2hldGhlcmUgdGhlcmUgYXJlIGN5Y2xlcyA9CmJldHdlZW4gbW9kdWxlcy4KQSAtPiBCIC0+IEEuIFdvcmtzIHRvdGFsbHkgZmluZSBhbmQgY29tcGlsZXMgaWYgYSBuLTEgdmVyc2lvbiBTTkFQU0hPVCA9Cm9mIEEgYW5kIEIgaXMgaW4gdGhlIHJlcG9zaXRvcnkuIEJ1dCB5b3Ugd2lsbCBuZXZlciBiZSBhYmxlIHRvIGJ1aWxkIGl0ID0KZnJvbSBzY3JhdGNoLgoKVGhlIHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhlICdjb3JlJyBtYXZlbiBwbHVnaW5zIChtYXZlbi1jbGVhbi1wbHVnaW4sID0KbWF2ZW4tcGx1Z2luLXBsdWdpbiwgZXRjKSBjcmVhdGUgc3VjaCBhIGN5Y2xlIHdpdGggdGhlIG1hdmVuIGNvcmU/ClRoYXQgbWlnaHQgaGFwcGVuIGlmIHdlIGFkZCBhIG5ldyBmZWF0dXJlIHRvIHRoZSBwbHVnaW4gQVBJPwoKTGllR3J1ZSwKc3RydWIKCgo+IEFtIDA3LjEwLjIwMTcgdW0gMjI6MzIgc2NocmllYiBBcm5hdWQgSD1DMz1BOXJpdGllciA9CjxhaGVyaXRpZXJAZ21haWwuY29tPjoKPj0yMAo+IEFGQUlSIHRoZSBtYWluIGNvbmNlcm4gd2FzIGZvciBkZXZlbG9wZXJzIHRvIGhhdmUgdG8gY2xvbmUgc2V2ZXJhbCA9CmRvemVuIG9mCj4gcmVwb3NpdG9yaWVzCj4gSSBkb24ndCB0aGluayBpdCBpcyBhIHJlYWwgaXNzdWUuIFdlIGNhbiBzaGFyZSBhIHNjcmlwdCB0byBkbyBpdCA9CmVhc2lseQo+PTIwCj49MjAKPiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDEwOjI2IFBNLCBDaGFzIEhvbnRvbiA8Y2hhc0Bob250b24ub3JnPiB3cm90ZToKPj0yMAo+PiBXaGF0IGFyZSB0aGUgY29uY2VybnMgd2l0aCBzZXBhcmF0ZSBnaXQgcmVwb3NpdG9yeSBwZXIgYXJ0aWZhY3Q/ICBJcyA9Cml0Cj4+IHRoZSBtb25vbGl0aGljIGJ1aWxkPwo+Pj0yMAo+PiBDaGFzCj4+PTIwCj4+PiBPbiBPY3QgNywgMjAxNywgYXQgMToyMCBQTSwgQXJuYXVkIEg9QzM9QTlyaXRpZXIgPQo8YWhlcml0aWVyQGdtYWlsLmNvbT4gd3JvdGU6Cj4+Pj0yMAo+Pj4gKzEKPj4+PTIwCj4+Pj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCA3OjExIFBNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPQo8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+PiB3cm90ZToKPj4+Pj0yMAo+Pj4+IHdlIGNhbiBzdGFydCB3aXRoIG5hbWluZyB0aGUgZnV0dXJlIGdpdCByZXBvczogSSBzdXBwb3NlIGFkZGluZyBhID0KdGFibGUKPj4gYXQKPj4+PiB0aGUKPj4+PiBlbmQgb2YgdGhlIEdpdCBtaWdyYXRpb24gV2lraSBwYWdlIGNhbiBnaXZlIGEgZ29vZCB2aWV3IG9mIHRoZSA9CnJlc3VsdAo+Pj4+ICh3aXRoIDc4Cj4+Pj4gbmV3IHJlcG9zICsgZXhpc3RpbmcgNyByZXBvcyArIHRoZSA2IGluIG1pZ3JhdGlvbiBpZiBub2JvZHkgb2JqZWN0cyA9Cj0zRCA5MQo+Pj4+IHJlcG9zKQo+Pj4+PTIwCj4+Pj4gb25jZSB3ZSdyZSBhbGwgY29udmluY2VkIG9mIHRoZSB0YXJnZXQsIHdlJ2xsIHNlZSBob3cgdG8gd29yayB3aXRoID0KaW5mcmEKPj4+PiBhbmQgSSBzdXBwb3NlIHRoZXkgYWxyZWFkeSBoYXZlIHRoZSByaWdodCBhdXRob3JzIGxpc3QsIGdpdmVuIHRoZQo+PiBjdXJyZW50Cj4+Pj4gbWlycm9ycyBhbHJlYWR5IHB1Ymxpc2hlZAo+Pj4+PTIwCj4+Pj4gUmVnYXJkcywKPj4+Pj0yMAo+Pj4+IEhlcnY9QzM9QTkKPj4+Pj0yMAo+Pj4+IExlIHNhbWVkaSA3IG9jdG9icmUgMjAxNywgMTY6MDU6NDUgQ0VTVCBUaWJvciBEaWdhbmEgYSA9QzM9QTljcml0IDoKPj4+Pj4gSGVydmUsCj4+Pj4+PTIwCj4+Pj4+IEkgdGhpbmssIGZpcnN0IG9mIGFsbCwgd2Ugc2hvdWxkIHdyaXRlIGEgbGlzdCB3aXRoIGV4YWN0IG5hbWVzIG9mID0KZ2l0Cj4+Pj4+IHJlcG9zaXRvcmllcyBmb3Igd2hpY2ggSU5GUkEgd2lsbCBjcmF0ZSB0aGVtIGluCj4+Pj4+IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnL3JlcG9zL2FzZgo+Pj4+PiBhbmQgbWlycm9yIGluIGdpdGh1Yi5jb20vYXBhY2hlCj4+Pj4+PTIwCj4+Pj4+IEFuZCB0aGVuIHRoZSBhdXRob3JzLnR4dC4KPj4+Pj49MjAKPj4+Pj4gSW4gbXkgY2FzZSBJIGRpZCBub3QgbWlncmF0ZSB0YWdzIGFuZCBicmFuY2hlcyB3aGljaCBpcyBteSBwcm9ibGVtCj4+IGdpdmVuCj4+Pj4gaW4KPj4+Pj4gbXkgZXhhbXBsZSB3aXRoIHByZXZpb3VzIGUtbWFpbC4KPj4+Pj49MjAKPj4+Pj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCAzOjQ4IFBNLCBUaWJvciBEaWdhbmEgPQo8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4KPj4+PiB3cm90ZToKPj4+Pj4+IEhlcnZlLAo+Pj4+Pj4gSSB0aGluayBtYWtpbmcgdGhlIHRhZyBhcyBJIHdhbnRlZCB3b3VsZCBub3QgYmUgcG9zc2libGUgaW4gZ2l0Lgo+Pj4+Pj49MjAKPj4+Pj4+IExldCdzIG1ha2UgaXQgd2l0aCBhbGwgNzggcHJvamVjdHMuCj4+Pj4+PiBJbiAyMDE2IEkgbWlncmF0ZWQgbXkgc3ZuIHByb2plY3QgImF1ZGl0IiBsb2NhdGVkIGluIHN1Yi1mb2xkZXIgPQpiZWhpbmQKPj4+Pj4+IHRydW5rICh0cnVuay9saWJzL2F1ZGl0KSB0byBnaXQgd2hpY2ggaXMgZXhhY3RseSB3aGF0IHdlIG5lZWQgdG8gPQpkbyBpbgo+Pj4+Pj4gQVNGLgo+Pj4+Pj49MjAKPj4+Pj4+IEluIG91ciBjYXNlIHRoZSBjb21tYW5kcyB3b3VsZCBiZSA5OSUgdGhlIHNhbWUuIFRoZSAxJSBpcyB0aGUgPQpzb3VyY2UKPj4+PiBTVk4KPj4+Pj4+IFVSTCBhbmQgdGFyZ2V0IEdpdEh1YiBVUkwuIFRoYXQncyBhbGwuIFRoZW4gaWYgd2UgcHJvdmlkZSBJTkZSQSA9CndpdGgKPj4+PiBidW5jaAo+Pj4+Pj4gb2YgY29tbWFuZHMgbGlrZSB0aGVzZSB0aGVuIHRoZXkgd2lsbCBvbmx5IGV4ZWN1dGUgdGhlbSB3aXRoID0KdGhlaXIKPj4+Pj4+IHBlcm1pc3Npb25zLgo+Pj4+Pj4gSSBkbyBub3QgdGhpbmsgdGhleSB3aWxsIGdpdmUgbWUgYWRtaW4gcGVybWlzc2lvbnMgdG8gbWFrZSBpdC4KPj4+Pj4+PTIwCj4+Pj4+PiBnaXQgc3ZuIGNsb25lIC0tbm8tbWV0YWRhdGEgLS1hdXRob3JzLWZpbGU9M0RFOlwqYXV0aG9ycy50eHQqID0KaHR0cDovLwo+Pj4+Pj4gKioqL3N2bi8qKiovKnRydW5rL2xpYnMvYXVkaXQgYXVkaXQqCj4+Pj4+PiBnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIubmFtZSAiKioqICoqKiIKPj4+Pj4+IGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5lbWFpbCAiKioqQCoqKi4qKioiCj4+Pj4+PiBnaXQgcmVtb3RlIGFkZCBvcmlnaW4gaHR0cHM6Ly8qKipAZ2l0aHViLmNvbS9hcGFjaGUvCj4+Pj4gKm1hdmVuLWNsZWFuLXBsdWdpbioKPj4+Pj4+IC5naXQKPj4+Pj4+IGdpdCBwdXNoIC11IG9yaWdpbiAtLWFsbAo+Pj4+Pj49MjAKPj4+Pj4+IEkgb2JzZXJ2ZWQgdGhlICphdXRob3JzLnR4dCogZnJvbSBjb21tYW5kCj4+Pj4+PiAqc3ZuIGxvZyAtcSoKPj4+Pj4+IEVhY2ggcGVyc29uIGZyb20gYmV0d2VlbiBmaXJzdCB0d28gcGlwZXMsIGUuZy46Cj4+Pj4+PiByMTIzNDU2NyB8IHRpYm9yZGlnYW5hIHwgMjAxNS0xMC0xOSAwMjoyMDowMAo+Pj4+Pj49MjAKPj4+Pj4+IEV2ZXJ5IGRldmVsb3BlciBhZGRlZCBlLW1haWwgYW5kIGZ1bGwgbmFtZSwgaS5lLjoKPj4+Pj4+IHRpYm9yZGlnYW5hID0zRCBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+Cj4+Pj4+PiBldGMuCj4+Pj4+Pj0yMAo+Pj4+Pj4gVGhpcyBsaXN0IG9mIHVzZXJzIHdoaWNoIHNob3VsZCBiZSBjcmVhdGVkIGluIHByaW9yIHRvIGNvbnRhY3QgPQpJTkZSQS4KPj4+Pj4+IE5vdCBhbGwgdXNlcnMgYXJlIGFjdGl2ZSBhZnRlciB5ZWFycyBidXQgaXQgd291bGQgYmUgbmljZSB0byA9CmluY2x1ZGUKPj4+PiB0aGVtCj4+Pj4+PiB0b28uCj4+Pj4+PiBUaGlzIGxpc3Qgb2YgdXNlcnMgaXMgb25lIHRoaW5nIHdoaWNoIGNhbm5vdCBiZSBhdXRvbWF0ZWQhCj4+Pj4+Pj0yMAo+Pj4+Pj49MjAKPj4+Pj4+PTIwCj4+Pj4+Pj0yMAo+Pj4+Pj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCAyOjQ4IFBNLCBUaWJvciBEaWdhbmEgPQo8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4KPj4+Pj4+PTIwCj4+Pj4+PiB3cm90ZToKPj4+Pj4+PiBJbiBteSBjb21wYW55IEkgaGF2ZSBzdWNoIHNpdHVhdGlvbiBpbiBTVk4uIE1ha2luZyBhIHRhZyBmcm9tCj4+Pj4gc3ViZm9sZGVyLgo+Pj4+Pj4+IEdpdCBhbHdheXMgbWFrZXMgdGhlIHRhZyBmcm9tIHRoZSByb290LCByaWdodD8KPj4+Pj4+PiBMZXQncyBnb29nbGUgc29tZXRoaW5nLi4uCj4+Pj4+Pj49MjAKPj4+Pj4+PiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDI6NDcgUE0sIFRpYm9yIERpZ2FuYSA8Cj4+Pj4gdGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tCj4+Pj4+Pj49MjAKPj4+Pj4+Pj4gd3JvdGU6Cj4+Pj4+Pj4+IEluIG15IGNvbXBhbnkgSSBoYXZlIHN1Y2ggc2l0dWF0aW9uLgo+Pj4+Pj4+PiBNYWtpbmcgYSB0YWcgZnJvbSBzdWJmb2xkZXIuCj4+Pj4+Pj4+IEdpdCBhbHdheXMgbWFrZXMgdGhlIHRhZyBmcm9tIHRoZSByb290LCByaWdodD8KPj4+Pj4+Pj4gTGV0J3MgZ29vZ2xlIHNvbWV0aGluZy4uLgo+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+PiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDI6MDUgUE0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8Cj4+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcgo+Pj4+Pj0yMAo+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+PiB3cm90ZToKPj4+Pj4+Pj4+IHRoYW5rcyBmb3IgeW91ciBpbnRlcmVzdCBhbmQgZmVlZGJhY2sKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBMZSBzYW1lZGkgNyBvY3RvYnJlIDIwMTcsIDEyOjAwOjMyIENFU1QgVGlib3IgRGlnYW5hIGEgPUMzPUE5Y3JpPQp0IDoKPj4+Pj4+Pj4+PiA3OCBpcyB0b28gbXVjaC4KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBub3RpY2UgdGhhdCB0aGVyZSB3b3VsZCBhbHNvIGJlIGEgcXVlc3Rpb24gb24gdGhlIGdpdCByZXBvcyA9Cm5hbWluZwo+Pj4+Pj4+Pj4gY29udmVudGlvbiwKPj4+Pj4+Pj4+IHRvIGF2b2lkIGZsYXQgNzggbmFtZXMgYnV0IGtlZXAgYXQgbGVhc3QgMyBtZWFuaW5nZnVsIGdyb3Vwcwo+Pj4+IChwbHVnaW5zLAo+Pj4+Pj4+Pj4gc2hhcmVkLAo+Pj4+Pj4+Pj4gcmVzb3VyY2VzOiBJIHRoaW5rIHRoaXMgaXMgbm90IGFic29sdXRlbHkgbmVjZXNzYXJ5IGZvcgo+PiBkb3hpYS10b29scykKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4gVGhlcmUgaXMgbm8gcHJvYmxlbSB0byB0cmlnZ2VyIHJlbGVhc2Ugb3ZlciBzdWItZm9sZGVycyBhbmQgPQp0YWcgaXQKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiB3aXRoCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+IHByZWZpeCB3aGljaCBpcyBhbHJlYWR5IGRvbmUgaW4gU1ZOLgo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IGlzIGl0IHN1cHBvcnRlZCBieSBtYXZlbi1yZWxlYXNlIHBsdWdpbiB3aXRoIGdpdD8KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBub3RpY2UgSSBkaWQgbm90IGtub3cgdGhhdCBnaXQgd2FzIGFibGUgdG8gdGFnIG9ubHkgYSBzdWJ0cmVlOiA9CmJ1dAo+PiBJCj4+Pj4+Pj4+PiBrbmV3IEkKPj4+Pj4+Pj4+IGRvbid0IHlldCB1bmRlcnN0YW5kIGV2ZXJ5IGFzcGVjdCBvZiBnaXQgbWFnaWMuLi4gOikKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4gVGhlIENJIGJ1aWxkIGNhbiBhbHdheXMgdHJpZ2dlciB0aGUgcm9vdCBhbmQgSmVua2luc2ZpbGUgPQp3b3VsZAo+Pj4+IGhhdmUKPj4+Pj4+Pj4+PiA0MQo+Pj4+Pj4+Pj4+IHN0YWdlcyBmb3IgcGx1Z2lucywgMjYgc3RhZ2VzIGZvciBTaGFyZWQsIGV0Yy4KPj4+Pj4+Pj4+PiBJdCBjYW4gYmUgZG9uZSBpbiBKZW5raW5zZmlsZSBhbmQgc28gdGhlIHNoZWxsIHdvdWxkIG5vdCA9CnRocm93Cj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gZXhjZXB0aW9uCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+IGJ1dCBzdGF0dXMgd291bGQgYmUgc2V0IGluc3RlYWQgYW5kIGdvZXMgdG8gdGhlIG5leHQgc3RhZ2UuCj4+Pj4+Pj4+Pj4gSSBkbyBub3Qga25vdyBob3cgdG8gZGV0ZWN0IGluIEdpdFNDTSB3aGljaCBzdWItZm9sZGVyKHMpID0KcmVjZWl2ZWQKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBidXQgSQo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+PiBndWVzcyB0aGlzIGNhbiBiZSBpbnZlc3RpZ2F0ZWQuCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gKzEKPj4+Pj4+Pj4+IGJ1dCBJIGRvbid0IGtub3cgd2hlcmUgdG8gbG9vayBmb3IgbXlzZWxmOiBvbiB0aGF0IHBvaW50LCBJID0KaG9wZSB0bwo+Pj4+Pj4+Pj4gaGF2ZSBzb21lCj4+Pj4+Pj4+PiBoZWxwIGZyb20gSmVua2luc2ZpbGUgZXhwZXJ0cwo+Pj4+Pj4+Pj4gYW5kIGV2ZW50dWFsbHkgc3RhcnQgd2l0aCBzdm4sIHRvIGhhdmUgc29tZXRoaW5nIGJlZm9yZSB0aGUgPQpnaXQKPj4+Pj4+Pj4+IG1pZ3JhdGlvbgo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+PiBUaGVuIGl0IGNhbiBiZSBhIGtpbmQgb2Ygc3dpdGNoLWNhc2Ugb3ZlciBjb21taXR0ZWQgZm9sZGVycyA9CmluCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gSmVua2luc2ZpbGUuCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+IFRoaXMgbWVhbnMgdGhhdCBldmVyeSB0aW1lIGFub3RoZXIgc3RhZ2Uvc3ViLWZvbGRlciBpcyBzaG93biA9CmluCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gUGlwZWxpbmUKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4gd2hpY2ggd2lsbCBiZSBtZXNzeSBpbiB0aGUgVUkuIDooCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gbm90aWNlIHRoYXQgd2UgY2FuIHBlcmhhcHMgc3BsaXQgdGhlIHJlcG9zIGluIGxlc3MgcGFydHMgdGhhbiA9CndlCj4+Pj4gaGF2ZQo+Pj4+Pj4+Pj4gY29tcG9uZW50czogb24gcGx1Z2lucywgZm9yIGV4YW1wbGUsIHdlIGFscmVhZHkgaGF2ZSA0ID0KY2F0ZWdvcmllcwo+Pj4+IFsxXQo+Pj4+Pj4+Pj4gd2hpY2gKPj4+Pj4+Pj4+IHdvdWxkIGF2b2lkIDEgcmVwbyB3aXRoIDQxIHBsdWdpbnMsIGJ1dCBtb3JlIHNvbWV0aGluZyBsaWtlCj4+Pj4gNisxMCsxMCsxNQo+Pj4+Pj4+Pj4gSSBzdXBwb3NlIHdlIGNvdWxkIGRvIHRoZSBzYW1lIGZvciBzaGFyZWQgKHJlcG9ydGluZyBmb2xkZXIgPQpjb21lcwo+Pj4+IHRvIG15Cj4+Pj4+Pj4+PiBtaW5kKQo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IFRoZSBrZXkgZmVhc2liaWxpdHkgaXNzdWUgaXMgdGhlIGNhcGFjaXR5IHRvIHJlbGVhc2UgYQo+PiBzdWItY29tcG9uZW50Cj4+Pj4+Pj4+PiBmcm9tIGdpdAo+Pj4+Pj4+Pj4gd2l0aCBtYXZlbi1yZWxlYXNlLXBsdWdpbiwgSU1ITwo+Pj4+Pj4+Pj4gKHRha2luZyBhcGFydCB0aGUgZ2l0IHB1cmlzdHMgaWRlYSBvZiAxIGxpZmVjeWNsZSA9M0QgMSBnaXQgPQpyZXBvKQo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IFJlZ2FyZHMsCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gSGVydj1DMz1BOQo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBbMV0gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy8KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCA0OjE3IEFNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+Pj4+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiB3cm90ZToKPj4+Pj4+Pj4+Pj4gVGhlcmUgYXJlIDYgc3ZuIGxvY2F0aW9ucyB3aXRob3V0IGFueSBzcGVjaWFsIGNvbXBsZXhpdHkgPQp0aGF0Cj4+Pj4gYXJlCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gd2FpdGluZwo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gZm9yCj4+Pj4+Pj4+Pj4+IGEgdm9sdW50ZWVyIGZvciBnaXQgbWlncmF0aW9uIGZvciBhIGZldyB5ZWFycyBidXQgbm9ib2R5ID0KZG9lcwo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IGFueXRoaW5nCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+PiBhYm91dDoKPj4+Pj4+Pj4+Pj4gSSBzdGFydGVkIDMgZGF5cyBhZ28gdG8gYXNrIGZvciBoZWxwIGFib3V0IGl0IGFuZCBnb3QgcHJldHR5ID0Kbm8KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBmZWVkYmFjawo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gWzFdCj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IHRoZW4gdGhlcmUgYXJlIHRoZSA0IGNvbXBsZXggc3ZuIGxvY2F0aW9ucyAocGx1Z2lucywgc2hhcmVkLAo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IHJlc291cmNlcywKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IGRveGlhLQo+Pj4+Pj4+Pj4+PiB0b29scykgdGhhdCByZXF1aXJlIG11Y2ggbW9yZSB3b3JrOiBJIHN1cHBvc2Ugd2UgY2FuJ3QgdGVsbCA9CmdpdAo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IG1pZ3JhdGlvbgo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gaXMKPj4+Pj4+Pj4+Pj4gYWJhbmRvbmVkLCBidXQgaXQgd2lsbCByZXF1aXJlIHNvbWVvbmUgdG8gd29yayBvbiBpdCA9CnNlcmlvdXNseQo+Pj4+Pj4+Pj4+PiBSZW1lbWJlciB0aGF0IHRoZSBrZXkgcXVlc3Rpb24gWzJdIGlzOiBkbyB3ZSB0cmFuc2Zvcm0gdGhlc2UgPQo0Cj4+Pj4gc3ZuCj4+Pj4+Pj4+Pj4+IGxvY2F0aW9ucwo+Pj4+Pj4+Pj4+PiBpbnRvIDQxICsyNiArIDYgKyA1ID0zRCA3OCBpbmRlcGVuZGVudCBnaXQgcmVwb3M/Cj4+Pj4+Pj4+Pj4+IFllcywgSSB0b2xkIHRoYXQgSmVua2lucyBjb25maWd1cmF0aW9uIGlzIG9uZSBrZXkgYXNwZWN0IHdlCj4+Pj4gbmVlZCBhCj4+Pj4+Pj4+Pj4+IHN0cmF0ZWd5Cj4+Pj4+Pj4+Pj4+IGFib3V0LCBpbiBwYXJhbGxlbCB3aXRoIGdpdCBzdHJhdGVneS4KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IHRoZW4gdGhlcmUgd2lsbCBiZSB0aGUgcmVtYWluaW5nIGNhc2VzIHdoZXJlIHdlIG5lZWQgdG8gPQpkZWNpZGU6Cj4+Pj4+Pj4+PiBsb3dlcgo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gaW1wYWN0LAo+Pj4+Pj4+Pj4+PiBsb3dlciBwcmlvcml0eS4KPj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gU3VtbWFyeTogbm90aGluZyBpcyBhYmFuZG9uZWQsIGJ1dDoKPj4+Pj4+Pj4+Pj4gLSBzaW1wbGUgY2FzZXM6IG5vIHZvbHVudGVlciB0byBkbyB0aGUgam9iCj4+Pj4+Pj4+Pj4+IC0gaGFyZCBjYXNlczogaXMgdGhlcmUgYSB2b2x1bnRlZXIgZWl0aGVyIHRvIGRlZmluZSBhID0Kc3RyYXRlZ3kKPj4+PiBvcgo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IGRvIHNvbWUKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IHdvcmsKPj4+Pj4+Pj4+Pj4gb24gaXQ/Cj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IFJlZ2FyZHMsCj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IEhlcnY9QzM9QTkKPj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gWzFdIGh0dHBzOi8vbGlzdHMuYXBhY2hlLm9yZy90aHJlYWQuaHRtbC8KPj4+Pj4+Pj4+Pj4gZWRmMzY0MmE3YmRkNTE1ZjBjYWQ0MjFjMjU1ODk3NDE4MTk0NDY0NjM2MTRiZjA1MTVlNTZkYmVACj4+Pj4+Pj4+Pj4+ICUzQ2Rldi5tYXZlbi5hcGFjaGUub3JnJTNFCj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IFsyXSBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL0dpdAo+Pj4+Pj4+Pj4+PiArTWlncmF0aW9uI0dpdE1pZ3JhdGlvbi1NaWdyYXRpbmdhbmFnZ3JlZ2F0b3J0cmVlaW50b2Fjb2xsZWMKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiB0aW9ub2ZnaXRyZXBvcwo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gTGUgdmVuZHJlZGkgNiBvY3RvYnJlIDIwMTcsIDIwOjM1OjQ1IENFU1QgQXJuYXVkIEg9QzM9QTlyaXRpZXI9CiBhCj4+Pj4gPUMzPUE5Y3JpdCA6Cj4+Pj4+Pj4+Pj4+PiBCdXQgZGlkIHdlIGNvbXBsZXRlbHkgYWJhbmRvbmVkIHRoZSBpZGVhIG9mIG1vdmluZyA9CmV2ZXJ5dGhpbmcKPj4+PiB0bwo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IGdpdCA/Cj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4gVGhlIENJIHNldHVwIHdhcyB0aGUgbWFpbiBzdG9wIGZvciBpdCA/Cj4+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4gT24gRnJpLCBPY3QgNiwgMjAxNyBhdCA4OjA1IFBNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IHdyb3RlOgo+Pj4+Pj4+Pj4+Pj4+IEkgd2FzIGV4cGVjdGluZyB0aGUgdXN1YWwgbGl0YW55Cj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+PiB3aGF0IEknbSBub3QgY29uZmlkZW50IGN1cnJlbnRseSB3aXRoIHBpcGVsaW5lIG9uIE1hdmVuCj4+Pj4gY29yZSBpcwo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IHRoYXQKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4gd2UKPj4+Pj4+Pj4+Pj4+PiBoYXZlCj4+Pj4+Pj4+Pj4+Pj4gZm9yIGV4YW1wbGUgdGhlICJtYXZlbi0zLngtamVua2luc2ZpbGUvTU5HLTYyNDIgLSBidWlsZCAjMQo+Pj4+IC0KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBudWxsIgo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+PiBtZXNzYWdlLAo+Pj4+Pj4+Pj4+Pj4+IHdpdGggdGhpcyAibnVsbCIgcGFydCB0aGF0IG1ha2VzIG1lIHdvbmRlciBpZiB3ZSBhcmUgdXNpbmcKPj4+PiBpdAo+Pj4+Pj4+Pj4+Pj4+IGFzCj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IGV4cGVjdGVkLgo+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+IEFuZCBmb3IgbGFyZ2UgbXVsdGktbW9kdWxlIHN2biB0cnVua3MgKHRoZSBvbmVzIHdlIGRvbid0Cj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gbWlncmF0ZSB0bwo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gZ2l0Ogo+Pj4+Pj4+Pj4+Pj4+IG1haW5seSBwbHVnaW5zIGFuZCBzaGFyZWQpLCBpcyB0aGVyZSBhIHNvbHV0aW9uIHRvIHJlYnVpbGQKPj4+PiBqdXN0Cj4+Pj4+Pj4+Pj4+Pj4gY2hhbmdlZAo+Pj4+Pj4+Pj4+Pj4+IG1vZHVsZXM/Cj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+PiBpZGVhbGx5LCB0aGUgcmVidWlsZCB3aGVuIGEgU05BUFNIT1QgZGVwZW5kZW5jeSBpcyA9CnB1Ymxpc2hlZAo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IHdvdWxkCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+IGhhdmUKPj4+Pj4+Pj4+Pj4+PiBiZWVuIGEKPj4+Pj4+Pj4+Pj4+PiBwbHVzLCBidXQgdGhpcyBpcyBzdWZmaWNpZW50bHkgYSByYXJlIHVzZSB0aGF0IEkgd29uJ3QgYmUKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBleHRyZW1pc3QKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4gVGhlbiBJSVVDLCB0aGlzIG1pZ3JhdGlvbiBqb2IgaXMgb25lIGFkZGl0aW9uYWwgVE9ETyBmb3IKPj4+PiBtZS4uLgo+Pj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4gUmVnYXJkcywKPj4+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+IEhlcnY9QzM9QTkKPj4+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+IExlIHZlbmRyZWRpIDYgb2N0b2JyZSAyMDE3LCAxNzo0Njo1MyBDRVNUIEFybmF1ZCBIPUMzPUE5cml0aT0KZXIgYQo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+ID1DMz1BOWNyaXQgOgo+Pj4+Pj4+Pj4+Pj4+PiBJIGFncmVlIHRoYXQgd2Ugc2hvdWxkIHVzZSBwaXBlbGluZSBub3dkYXlzCj4+Pj4+Pj4+Pj4+Pj4+IHBlcmhhcHMgYSBzaGFyZWQgbGliIGlmIHdlIHdhbnQgdG8gc3RhbmRhcmRpemUgc29tZSA9CnN0dWZmcwo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IGFuZCBhIHNldAo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gb2YKPj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4gbXVsdGktYnJhbmNoZXMgam9icyAob3Igb3JnIGZvbGRlciBidXQgaXQgcmVxdWlyZXMgR2l0SHViCj4+Pj4gOigKPj4+Pj4+Pj4+Pj4+Pj4gKQo+Pj4+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+PiBPbiBGcmksIE9jdCA2LCAyMDE3IGF0IDk6MTYgQU0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+Pj4+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+PiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4+Pj4+Pj4+Pj4+Pj4+IE9uIEZyaSA2IE9jdCAyMDE3IGF0IDA2OjMyLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4gd3JvdGU6Cj4+Pj4+Pj4+Pj4+Pj4+Pj4gSSBqdXN0IGZpeGVkIGEgZmV3IGZhaWxpbmcgam9icyBbMV0gdG8gaGF2ZSBhZ2FpbiBhCj4+Pj4+Pj4+Pj4+Pj4+Pj4gdXNhYmxlCj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IEplbmtpbnMuCj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+Pj4gTm93IEknbSBmYWNpbmcgc29tZSBpc3N1ZXMsIEkgc3VwcG9zZSBjYXVzZWQgYnkgbmV3ZXIKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBKZW5raW5zCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+IHZlcnNpb25zOgo+Pj4+Pj4+Pj4+Pj4+Pj4+IC0gTWF2ZW4gMy4wLjUgY2F1c2VzIE5vU3VjaE1ldGhvZEVycm9yOgo+Pj4+Pj4+Pj4+Pj4+Pj4+IG8uYy5wbGV4dXMudXRpbC54bWwucHVsbC4KPj4+Pj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+PiBNWFBhcnNlcgo+Pj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4+PiBbMl0KPj4+Pj4+Pj4+Pj4+Pj4+PiAtIEkgaGFkIHRvIHN3aXRjaCB0byBKREsgOCBmb3IgbWF2ZW4tcGx1Z2luLXRvb2xzIGpvYiwKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBzaW5jZSBKREsKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4gY2F1c2VzCj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4+PiBmYWlsdXJlcyAobG9va3MgbGlrZSBKZW5raW5zIHVzZXMgYSBoYWNrIHRvIGluamVjdAo+Pj4+IEpESyA3Cj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gYXMgYQo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gdG9vbAo+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+IHdoaWxlCj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4+PiB0aGUKPj4+Pj4+Pj4+Pj4+Pj4+PiBidWlsZCBKVk0gaXMgSmF2YSA4KQo+Pj4+Pj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+Pj4gU2hvdWxkIHdlIGRyb3AgTWF2ZW4gMy4wLjUgYnVpbGRzIGFuZCBKREsgNz8KPj4+Pj4+Pj4+Pj4+Pj4+PiBOb3RpY2UgSSBkaWRuJ3QgY2hlY2sgd2hpY2ggaXMgdGhlIG1pbmltdW0gTWF2ZW4KPj4+PiB2ZXJzaW9uCj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IHJlcXVpcmVkLi4uCj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+Pj4gT3IgcGVyaGFwcyBzaW1wbHkgZG9uJ3QgdXNlIHRoZSBKZW5raW5zIE1hdmVuIHBsdWdpbgo+Pj4+IHdpdGgKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiB0aGlzCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+PiBNYXZlbgo+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+Pj4gMy4wLjUKPj4+Pj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+Pj4gb3IKPj4+Pj4+Pj4+Pj4+Pj4+PiBKREsgNyBjb25maWd1cmF0aW9uOiBkZWZhdWx0IGJ1aWxkIGFzIEplbmtpbnMgTWF2ZW4KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBwbHVnaW4gd2l0aAo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gSkRLCj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4gOCArCj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4+PiBsYXRlc3QKPj4+Pj4+Pj4+Pj4+Pj4+PiBNYXZlbiwgYW5kIG90aGVyIGNvbmZpZ3VyYXRpb25zIGFzIHNjcmlwdGVkIGpvYnM/Cj4+Pj4+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+Pj4gaHR0cDovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuCj4+Pj4gaWUvMjAxMy8xMS9qZW5raW5zLW1hdmVuLWpvYi0+ID4+Pj4gPiA+ID4gPiA+ID4gPgo+Pj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4gdHlwZS1jb25zaWRlcmVkLWV2aWwuaHRtbAo+Pj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+PiA8aHR0cDovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuaWUvMjAxMy8xMS9qZW5raW5zLT4gPgo+Pj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4gbWF2ZW4tam9iLXR5cGUtY29uc2lkZXJlZC1ldmlsLmh0bWw/bT0zRDE+Cj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4+IFdlIHNob3VsZCBzdG9wIHVzaW5nIHRoZSBldmlsIGpvYiB0eXBlIGFzIGl0PUUyPTgwPTk5cyA9Cm1pbmltdW0KPj4+PiBKYXZhCj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IHZlcnNpb24gaXMKPj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4+IGRpY3RhdGVkIGJ5IEplbmtpbnM9RTI9ODA9OTkgSmF2YSBtaW5pbXVtLgo+Pj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4+PiBXZSBuZWVkIHRvIGRlZmluZSBvdXIgY29tbW9uIHN0cmF0ZWd5IGFuZCBoYXZlIGEKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBjb25zaXN0ZW50Cj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+Pj4+IGNvbmZpZ3VyYXRpb24KPj4+Pj4+Pj4+Pj4+Pj4+PiBmb3IKPj4+Pj4+Pj4+Pj4+Pj4+PiBldmVyeSBqb2IgdW5kZXJzdG9vZCBieSBldmVyeWJvZHkKPj4+Pj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+PiBJIHJlY29tbWVuZCBKZW5raW5zZmlsZSBhbmQgdGhlIGB3aXRoTWF2ZW5gIHdyYXBwZXIKPj4+Pj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+Pj4gUmVnYXJkcywKPj4+Pj4+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+Pj4+IEhlcnY9QzM9QTkKPj4+Pj4+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+Pj4+IFsxXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vCj4+Pj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4+PiBbMl0KPj4+Pj4+Pj4+Pj4+Pj4+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnLwo+Pj4+IHZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLT4KPj4+Pj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+PiBwbHVnaW4tdG9vbHMtamRrLTEuNy8xNjIvY29uc29sZQo+Pj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4gLS0tLS0tLS0tCj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLgo+Pj4+IG9yZwo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOgo+Pj4+Pj4+Pj4gZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4+PiAtLQo+Pj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4+IFNlbnQgZnJvbSBteSBwaG9uZQo+Pj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gLS0tLS0tLS0tCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+Pj4+Pj4+Pj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiAtLS0tLS0tLS0KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+Pj4+Pj4+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+PiAtLS0tLS0tLS0KPj4+Pj4+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+Pj4+Pj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+IC0tCj4+Pj4+Pj4+IENoZWVycwo+Pj4+Pj4+PiBUaWJvcgo+Pj4+PTIwCj4+Pj49MjAKPj4+Pj0yMAo+Pj4+ID0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Pj49MjAKPj4+Pj0yMAo+Pj49MjAKPj4+PTIwCj4+PiAtLQo+Pj4gLS0tLS0KPj4+IEFybmF1ZCBIPUMzPUE5cml0aWVyCj4+PiBodHRwOi8vYWhlcml0aWVyLm5ldAo+Pj4gTWFpbC9HVGFsazogYWhlcml0aWVyIEFUIGdtYWlsIERPVCBjb20KPj4+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKPj49MjAKPj49MjAKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj49MjAKPj49MjAKPj0yMAo+PTIwCj4gLS09MjAKPiAtLS0tLQo+IEFybmF1ZCBIPUMzPUE5cml0aWVyCj4gaHR0cDovL2FoZXJpdGllci5uZXQKPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQwNDctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IFNlcCAxNiAxOToxMjoyNyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwNDctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMjZGN0UxQUNBOAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDE2IFNlcCAyMDE3IDE5OjEyOjI3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODAwNDggaW52b2tlZCBieSB1aWQgNTAwKTsgMTYgU2VwIDIwMTcgMTk6MTI6MjYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc5OTY4IGludm9rZWQgYnkgdWlkIDUwMCk7IDE2IFNlcCAyMDE3IDE5OjEyOjI2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzk5NTUgaW52b2tlZCBieSB1aWQgOTkpOyAxNiBTZXAgMjAxNyAxOToxMjoyNiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMTYgU2VwIDIwMTcgMTk6MTI6MjYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBDMTk1N0MwNTc3Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAxNiBTZXAgMjAxNyAxOToxMjoyNSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0yLjUwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMi41MDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgSnNjY1RhN2dlV196IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAxNiBTZXAgMjAxNyAxOToxMjoyMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNS4xOV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAxQjNFMzVGQjJGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAxNiBTZXAgMjAxNyAxOToxMjoyMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBLYXJsLUhlaW56cy1NYWNCb29rLVByby5sb2NhbCAoWzIxNy4yNDcuNDAuMTUwXSkgYnkKIG1haWwuZ214LmNvbSAobXJnbXgwMDIgWzIxMi4yMjcuMTcuMTkwXSkgd2l0aCBFU01UUFNBIChOZW1lc2lzKSBpZAogME1aa2ljLTFlODUybDFLalctMDBMVGU3IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDE2IFNlcCAyMDE3CiAyMToxMjoxNyArMDIwMApSZXBseS1UbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIEpNb2QgUGx1Z2luIHZlcnNpb24gMy4wLjAtYWxwaGEtMSAoRmlyc3QKIFB1YmxpYyBSZWxlYXNlKSBUYWtlIDIKRnJvbTogS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8N2Y2Mjc3NjEtMjYyZi1lZDBkLTE0MzItZTJmMzA1YWFiYzdhQGdteC5kZT4KTWVzc2FnZS1JRDogPDMzNjQ5MjJhLWI0ZmYtODE0Mi0wZjc5LTA2ZWUzOGQ0MmU3ZUBnbXguZGU+CkRhdGU6IFNhdCwgMTYgU2VwIDIwMTcgMjE6MTI6MTYgKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi4yLjEKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDw3ZjYyNzc2MS0yNjJmLWVkMGQtMTQzMi1lMmYzMDVhYWJjN2FAZ214LmRlPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDpmbG5HTC95SkNEY1pacGJ0QU4zU21SVTQ4Nm15NThDdi9ZV2FIKzFENVFuaHdWUHlIRWgKIEc5ZjJzOXZGeU1HSkdIVmJwRlVpWEsrTXF4YTk5Y2U4cXFHK1BjbTh2M2xacFlzMnlBQm5Od1AxRzRLL1g5Z2ZxTkJ2a2NaCiAvYnA0cjdBMUxQOWdoWHRSUmJUL3RudEp4SHM3MGVZRUFSUm52cHNkWlJEbHR3T1A5VmtQWStNOE9UNFkya1F5L0hpSnZxWQogYVBUUjZsQUJWcDlPTlp6dUY1TlNBPT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDozSmp0cTVaS2JYRT06SCtCbENYaWE1SVN2T0lxUDJpRWJRRQogVWcxbVJ3RS95SWwrOWpQN3R1NEptV0J1MjdyVHNtV3E5czk2bTZvRVpRVFdXRUZGbUcrRVhXWndvQ1g1SEJLbTZ3L1VlZFJaZgogRnByTnc1MHNPU241RWhlR05yWlp2dkwxMEl3S2lrMENTYTlGOUZUWUxPRk9peEhJT3ZHL0QzZUFwUmhWcG5BOGJ6ZG1VYzRENgogKzltT2kyM1JJZElPbzM5MVloRmQ3L1orTHNBUGxTbGpMa21xVVMvMXlvdWJmbUkzb0wxUTNsSndOd0hBUWg0d1h0TnYrOWc3cQogU2s2YVc1S09iWi8zT1ArNDM2V3NYRGpWdnh4TVFzcnB3NS9sWGloVEwwd2QyL2xPWnNZTzA4UU5JY21iUTNmNW16T2FDQkxCUwogUDN2NGxhM0ZZS3RYeG95RXZ4Ui91djFwbERGajhKcjJSd0c1akpOV2N5N3FyOXpnUVpmRDV0eDVWNHlRM1pOSG1RTnZhMHRuZQogNDJBNnRRNGpPT0pNVzBsU0g0eWZwbi9sRGlHWWZwVWtSQXFGbktGTlBVc1JFRXcvb3p2SDBzTW1XdDhrazNkOVE5aGZQVkdnagogemM2RWV6QmZ1UnhLSmxBTDEzNmZHdHdRNGNFVWZFS2xkbm1YVFBrcHdkSXdsT0JuMmpZYlhTT0wydnBDMStVd2JaZWoweGErawogNjRualhVVTlFMnJER1pFZkNKMVZpMFpPaC9tZHdBOTJycTBxMmQ2UFh5R3IzQmlvb1FJTjVNQ3RsVCtBRjV4L2lyNGJrTFVDZwogSXo3clkrTENEaWFUNjlZYUsvL0RWU1JxdUJrV1ZBRXZ6NmhSMURNNTlGODNhSER4Q0o0NXlCVUh3dm0vUkRoSDczWHpZejh0RAogUjJFSFR2U0Z0MlpENG45dkJ4Q2l1VDVQOUFQcCszQXpnZHVad3hWaWpUbkZtVFUyMFF2d1ZxTTZwM0hWQzFFaC9aRnNYc3Z1UAogYXJ0cEdjQ2drUzZRd1NzNDVKbC83TXZhSmJPbEI3WEF1ZFBHOXlNM0w2clpoQ1BCZ3R6YjMzUGFiY1d0U244U25acnA2TUliYwogV0E1SFRjZG40Y1F4UW9Jb2p1RGN2SXhNbGlHdCtJUWE3WXJzQ2dNR01CVkYzNk9XSDA9CgpIaSwKCnRoaXMgaXMgdGhlIFZPVEUgZm9yIHRoZSBmaXJzdCBwdWJsaWMgcmVsZWFzZSBmb3IgTWF2ZW4gSk1vZCBQbHVnaW4uLi4KCldlIHNvbHZlZCAzIGlzc3VlczoKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMyMTQzMyZ2ZXJzaW9uPTEyMzQxMzYzCgpUaGVyZSBhcmUgY3VycmVudGx5IG5vIGlzc3VlcyBsZWZ0IGluIEpJUkEuCgpJZiB5b3UgaGF2ZSBhbnkgaXNzdWUgdG8gcmVwb3J0IHBsZWFzZSBvcGVuIGFuIGlzc3VlIGluIEpJUkEKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3Byb2plY3RzL01KTU9ECgpTdGFnaW5nIHJlcG86Cmh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjgvCgpodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY4L29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi1qbW9kLXBsdWdpbi8zLjAuMC1hbHBoYS0xL21hdmVuLWptb2QtcGx1Z2luLTMuMC4wLWFscGhhLTEtc291cmNlLXJlbGVhc2UuemlwCgpTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKbWF2ZW4tam1vZC1wbHVnaW4tMy4wLjAtYWxwaGEtMS1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogCjNiYTQ3Y2IzMGFmNzY1YjZlNjdmYmYxNmNjZWU1MGRiZGFjMjkxNDIKClN0YWdpbmcgc2l0ZToKaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tam1vZC1wbHVnaW4tTEFURVNULwoKR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCgpWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgoKWyBdICsxClsgXSArMApbIF0gLTEKCktpbmQgcmVnYXJkcwpLYXJsIEhlaW56IE1hcmJhaXNlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4NTEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIERlYyAyNyAyMjozMzoxMyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4NTEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRUY1MTQxNzk3QgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDI3IERlYyAyMDE3IDIyOjMzOjEzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDEwNTIgaW52b2tlZCBieSB1aWQgNTAwKTsgMjcgRGVjIDIwMTcgMjI6MzM6MTMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQwOTg1IGludm9rZWQgYnkgdWlkIDUwMCk7IDI3IERlYyAyMDE3IDIyOjMzOjEzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDA5NzMgaW52b2tlZCBieSB1aWQgOTkpOyAyNyBEZWMgMjAxNyAyMjozMzoxMyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMjcgRGVjIDIwMTcgMjI6MzM6MTMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBCRENBRUM0NjA0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyNyBEZWMgMjAxNyAyMjozMzoxMiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDEuODc5ClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MS44NzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIERsRTVZdTJubFAxTCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgMjcgRGVjIDIwMTcgMjI6MzM6MTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC1xdDAtZjE3MC5nb29nbGUuY29tIChtYWlsLXF0MC1mMTcwLmdvb2dsZS5jb20gWzIwOS44NS4yMTYuMTcwXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDRCNUZCNUYzQjYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDI3IERlYyAyMDE3IDIyOjMzOjExICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXF0MC1mMTcwLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHUxMHNvNDk0MDk4NzBxdGcuMgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDI3IERlYyAyMDE3IDE0OjMzOjExIC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1mcm9tOm1lc3NhZ2UtaWQ6bWltZS12ZXJzaW9uOnN1YmplY3Q6ZGF0ZTppbi1yZXBseS10bzpjYzp0bwogICAgICAgICA6cmVmZXJlbmNlczsKICAgICAgICBiaD1ZalBrdUU2ZzAvdW95RDhjZ3V3ZnlMa0RTZTluLzlkc1VPZzR4MWdkSlY4PTsKICAgICAgICBiPXIrMVluMEZkaEhRSTNna1VKeHZVQXVjeVdocHFaY3gxcWE0VHhhRWh0NVNVN0t2UWhSZi82ZGh2OGh1NlB2dWxDaAogICAgICAgICAvU3hwRGsza3hqbTQ5RmZpc2tSbWNxeGlGVHRndXUwNit5NmEzaE9UUDVBOStRSWRVNUxUZi94WnRDbG5HVUNoYWJjagogICAgICAgICB3S0RKVU1tUTNyZkN1OXhaZERVUm1TL1JhaUxCVlh0RFNmYXhSdTBHVkE5YUQ5Z1JwcUhpd2dnWGJQZHBITkI2eU92YgogICAgICAgICB6QjlGSmhIOVRiQ0NzZ1YrVmZNQ3hZOTdkUURSVVY0MnJoUStZUnhLNW94VncyWkVjRTJuUFNLL1dKUnJkenRjTHBLOQogICAgICAgICByZkI3bDVuMTBxaVlzMUFoWmo1NkN2WndiYk5rcnJmMkJOdVdzczdKT0l4NlFVUWc1OVAvRUJQMEhNdlVXSVBSSTVvQwogICAgICAgICAvMWlRPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTpmcm9tOm1lc3NhZ2UtaWQ6bWltZS12ZXJzaW9uOnN1YmplY3Q6ZGF0ZQogICAgICAgICA6aW4tcmVwbHktdG86Y2M6dG86cmVmZXJlbmNlczsKICAgICAgICBiaD1ZalBrdUU2ZzAvdW95RDhjZ3V3ZnlMa0RTZTluLzlkc1VPZzR4MWdkSlY4PTsKICAgICAgICBiPUJCMTNrUFdRVVpOaG04U1l0aVlqY0FNMkVzZlhRZmVGRGF3SkNnemdnWW5CQXl3OGYzRXMxcmRvRDE2dml0YUZRbAogICAgICAgICBWQ2tBWFFKTG9ScjZsTk9IdUJhQ3BHZlpBZlpzNTVzQ21ORG5Oc0lYaldFVHNia0pnNDhYSDYvWTlFR0I2WjZ1eGd3cwogICAgICAgICB5bDhheVJhT0lLYjAxUHYvcmpFclhiL051SlZocWhmb3orY0ZpY0Q3U1JjYVg2MzJicnJqTEtjem13SFNQclBWVlBpSgogICAgICAgICBaMEJxbTZNblZ3WDNJclh3TWFpM0xjVEliNmV5b2RVd2U4eGJlcDlmMHREZE5EQXBZQzk2UjNTRWF5OERZVWZlcWxISgogICAgICAgICBVR2wycW5idlVoM3JuS0JIcStjWm9tKzNMcUdkQ2paQWZ6SE9mb1JJR01tOUtsWGgzNVJncTZ6TVB3bWp4SmFjdFBKVgogICAgICAgICBDQUdRPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBS0dCM21LTEkyaFlyZE1NSDF1ZTdGeU1wRWU0N2JxUlNKWklReDl6YTNDeENtMERvVEw2ei9TYgoJdGV2ZEd0Rm9welE0bE52QUF2alZ6Z3M9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQ0pmQm90aEJIV3BOVUI2bHJtSTVkR2J6bXNUeXJSOXZmZzlRQkNRZTU4T1lWc0xWdzA1K1lxL3lmVlVjZG5vdUpna2JHQWZLaUhtL1E9PQpYLVJlY2VpdmVkOiBieSAxMC4yMzcuMzkuMTU1IHdpdGggU01UUCBpZCBhMjdtcjQwMDg0OTQzcXRkLjIwMS4xNTE0NDEzOTg1MDQ5OwogICAgICAgIFdlZCwgMjcgRGVjIDIwMTcgMTQ6MzM6MDUgLTA4MDAgKFBTVCkKUmVjZWl2ZWQ6IGZyb20gP0lQdjY6MjYwMTo1YzE6NDUwMDo1OGQwOjQ4YTg6MWYzZjoyYjdmOjZiMTg/IChbMjYwMTo1YzE6NDUwMDo1OGQwOjQ4YTg6MWYzZjoyYjdmOjZiMThdKQogICAgICAgIGJ5IHNtdHAuZ21haWwuY29tIHdpdGggRVNNVFBTQSBpZCBsMTg4c20xMTIxMzk4N3FrZC4zNi4yMDE3LjEyLjI3LjE0LjMzLjA0CiAgICAgICAgKHZlcnNpb249VExTMV8yIGNpcGhlcj1FQ0RIRS1SU0EtQUVTMTI4LUdDTS1TSEEyNTYgYml0cz0xMjgvMTI4KTsKICAgICAgICBXZWQsIDI3IERlYyAyMDE3IDE0OjMzOjA0IC0wODAwIChQU1QpCkZyb206IFJvYiBUb21wa2lucyA8Y2h0b21wa2lAZ21haWwuY29tPgpNZXNzYWdlLUlkOiA8MzNCMzUxQjUtNTI5MS00REIwLTlFODUtNDc4RDc2Q0YzRUM0QGdtYWlsLmNvbT4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7Cglib3VuZGFyeT0iQXBwbGUtTWFpbD1fRTNFREU4NDctN0E1MS00OTc1LTg1QTYtMzIxQzJBMjk3N0FCIgpNaW1lLVZlcnNpb246IDEuMCAoTWFjIE9TIFggTWFpbCAxMS4yIFwoMzQ0NS41LjIwXCkpClN1YmplY3Q6IFJlOiBRdWVzdGlvbnMgcmVnYXJkaW5nIGltcHJvdmluZyB0aGUgQXBhY2hlIENvbW1vbnMgcmVsZWFzZSBwcm9jZXNzLgpEYXRlOiBXZWQsIDI3IERlYyAyMDE3IDE3OjMyOjQ5IC0wNTAwCkluLVJlcGx5LVRvOiA8Q0ErblBuTXpHZEpGOEtRaW5ETmdDTnJQYlRWV244eU5ycEI2QnhfYVU2M2dMYWFfa3NRQG1haWwuZ21haWwuY29tPgpDYzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KVG86IENvbW1vbnMgRGV2ZWxvcGVycyBMaXN0IDxkZXZAY29tbW9ucy5hcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8MzQ2OTc5M0ItNDU4Mi00MUY3LUI2NDEtNTAyRUZGN0RBREIzQGFwYWNoZS5vcmc+CiA8Q0ErblBuTXpHZEpGOEtRaW5ETmdDTnJQYlRWV244eU5ycEI2QnhfYVU2M2dMYWFfa3NRQG1haWwuZ21haWwuY29tPgpYLU1haWxlcjogQXBwbGUgTWFpbCAoMi4zNDQ1LjUuMjApCgotLUFwcGxlLU1haWw9X0UzRURFODQ3LTdBNTEtNDk3NS04NUE2LTMyMUMyQTI5NzdBQgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsKCWNoYXJzZXQ9dXRmLTgKClN0ZXBoZW4sCgpJIGNhbj1FMj04MD05OXQgdGhhbmsgeW91IGVub3VnaCBmb3IgeW91ciByZXBseS4gST1FMj04MD05OWxsIHRha2UgeW91ciA9CnN1Z2dlc3Rpb25zIGFuZCBjb250aW51ZSB0byBzYW5kYm94IGFyb3VuZCB1c2luZyB0aGUgPQptYXZlbi1yZWxlYXNlLXBsdWdpbiBhcyBhIGd1aWRlbGluZS4KCkFsbCB0aGUgYmVzdCBhbmQgaGFwcHkgaG9saWRheXMsCi1Sb2IKCj4gT24gRGVjIDI2LCAyMDE3LCBhdCA1OjI3IEFNLCBTdGVwaGVuIENvbm5vbGx5ID0KPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+PTIwCj4gT24gVHVlIDI2IERlYyAyMDE3IGF0IDAzOjEwLCBSb2IgVG9tcGtpbnMgPGNodG9tcGtpQGFwYWNoZS5vcmcgPQo8bWFpbHRvOmNodG9tcGtpQGFwYWNoZS5vcmc+PiB3cm90ZToKPj0yMAo+PiBIZWxsbyBhbGwsCj4+PTIwCj4+IFBhcmRvbiwgbWF5YmUgdGhpcyBzaG91bGQgaGF2ZSBnb25lIHRvIHlvdXIgQHVzZXIgbGlzdCwgYnV0IHdoeSBub3QgPQpwaW5nCj4+IHRoZSBkZXYgY3Jldy4gST1FMj04MD05OXZlIGJlZW4gcGxheWluZyBhcm91bmQgdGhlIGlkZWFzIHN1cnJvdW5kaW5nID0Kb3VyIGZhaXJseQo+PiBtYW51YWwgcmVsZWFzZSBwcm9jZXNzIGZvciB0aGUgY29tcG9uZW50cyBpbiBDb21tb25zLCBhbmQgSSB3YXMgPQpob3BpbmcgZm9yCj4+IHNvbWUgaW5zaWdodHMuCj4+PTIwCj4+IFNjcmlwdGluZyB0aGUgdmVyc2lvbiBjaGFuZ2VzIGlzbj1FMj04MD05OXQgcmVhbGx5IHRoYXQgYmlnIG9mIGEgZGVhbCA9CmZvciB1cywgYW5kCj4+IHRoYXQgSSBjYW4gbWFuYWdlLiBCdXQsIHdoZW4gaXQgY29tZXMgdG8gcHVibGlzaGluZyBvdXIgYXJ0aWZhY3RzIHRvID0KdGhlCj4+IGFwYWNoZSBuZXh1cyByZXBvc2l0b3J5LCBhbmQgdGhlbiBzZXBhcmF0ZWx5IHB1Ymxpc2hpbmcgb3VyIC1zcmMgYW5kID0KLWJpbgo+PiBhc3NlbWJsaWVzIHRvIHRoZSBkZXYgZGlzdCBzdWJ2ZXJzaW9uIHJlcG9zaXRvcnkgKGFuZCBjb25zZXF1ZW50bHkgPQpkZWxldGluZwo+PiB0aG9zZSBhcnRpZmFjdHMgZnJvbSBuZXh1cyBhcyB0aGV5PUUyPTgwPTk5cmUgPUUyPTgwPTlDYXR0YWNoZWQ9RTI9ODA9OUQ9CiBmb3IgdGhlIHB1cnBvc2Ugb2YgZ3BnCj4+IHNpZ25pbmcpLCBJIGZlZWwgaXQgYSB0YWQgY3VtYmVyc29tZS4KPj49MjAKPj4gST1FMj04MD05OXZlIGZpZGRsZWQgYXJvdW5kIGEgbGl0dGxlIHdpdGggdGhlIGlkZWEgb2YgZGV0YWNoaW5nIHRoZSA9Ci1zcmMgYW5kIC1iaW4KPj4gYXNzZW1ibGllcyBhZnRlciBncGcgc2lnbmluZyB3aXRoIHNvbWUgc3VjY2VzcywgYnV0IHRoZW4gSSBoYXZlIHRvID0KZGVsdmUKPj4gaW50byB0aGUgbWVjaGFuaWNzIG9mIHB1Ymxpc2hpbmcgdGhvc2UgdXAgdG8gdGhlIHN1YnZlcnNpb24gPQpyZXBvc2l0b3J5LCBhbmQKPj4gY2xlYXJseSB0aGF0IHByb2JsZW0gaGFzIGFscmVhZHkgYmVlbiBzb2x2ZWQuCj49MjAKPj0yMAo+IElzIHlvdXIgcHJvYmxlbSB5b3UgZG9uPUUyPTgwPTk5dCB3YW50IHRob3NlIGdvaW5nIHRvIE5leHVzIHN0YWdpbmcgPQpidXQgb25seSB0bwo+IGRpc3Q/IE9yIGlzIGl0IHRoYXQgeW91IHdhbnQgdGhlbSAqYWxzbyogZ29pbmcgdG8gZGlzdC4KPj0yMAo+IFBlcnNvbmFsbHkuLi4gSSBzZWUgbm8gcmVhc29uIHRvIHJlbW92ZSB0aGVtIGZyb20gZ29pbmcgdG8gTmV4dXMgPQpzdGFnaW5nCj4gKGluIGZhY3QgSSBoYXZlIGEgYmFja2dyb3VuZCBwbGFuIHRvIGFkZCBzZWNvbmRhcnkgc2lnbmluZyBzdXBwb3J0IHRvCj4gc3RhZ2luZy4uLiBpPUUyPTgwPTk5bSBXYWl0aW5nIHRvIHNlZSB0aGUgTmV4dXMgMyBzdGFnaW5nIEFQSXMgYmVmb3JlID0KYXR0ZW1wdGluZwo+IHRob3VnaC4gVGhhdCB3b3VsZCBtZWFuIHRoYXQgdGhlIFBNQyB3b3VsZCBiZSBhYmxlIHRvICphZGQqIHRoZWlyIEdQRwo+IHNpZ25hdHVyZSB0byB0aGUgc3RhZ2VkIGFydGlmYWN0cyBhcyBwYXJ0IG9mIHRoZSB2b3RpbmcuLi4gaW4gd2hpY2ggPQpjYXNlCj4geW91PUUyPTgwPTk5ZCB3YW50IHRvIGhvbGQgb2ZmIHVwbG9hZGluZyB0byBkaXN0IHVudGlsICphZnRlciogdGhlID0Kdm90ZSBzbyB5b3UgZ2V0Cj4gdGhlIGZ1bGwgc2V0IG9mIHNpZ25hdHVyZXMpCj49MjAKPiBJZiB5b3Ugd2FudCB0byB1cGxvYWQgYSBzdWJzZXQgb2YgYXR0YWNoZWQgYXJ0aWZhY3RzIHRvIGRpc3QgYXMgcGFydCA9Cm9mIHRoZQo+IHJlbGVhc2UsIHRoYXQgc2VlbXMgbXVjaCBtb3JlIHRlbmFibGUuLi4ganVzdCBhIGRlcml2YXRpdmUgb2YgdGhlCj4gc2NtLXB1Ymxpc2ggcGx1Z2luIGZyb20gd2hhdCBJIGNhbiBzZWUuCj49MjAKPiBTbyBJIGZpbmQgbXlzZWxmIGluIHRoZSBzcGFjZSBvZiB0cnlpbmcgdG8gc2hvZWhvcm4gb3VyIHByb2Nlc3MgaW50byA9Cml0cwo+PiB0aGUgbWFpbiBtYXZlbi1yZWxlYXNlLXBsdWdpbiwgd2hpY2ggST1FMj04MD05OXZlIGZvdW5kIGEgdGFkID0KZGlmZmljdWx0LCB2ZXJzdXMKPj4gd3JpdGluZyBvdXIgb3duIHJlbGVhc2UgcGx1Z2luLCB3aGljaCBmZWVscyBsaWtlIEkgd291bGQgYmUgPQpkdXBsaWNhdGluZwo+PiB0b25zIG9mIGNvZGUgKHdoaWNoIEkgZG9uPUUyPTgwPTk5dCB3YW50IHRvIGRvKS4KPj0yMAo+PTIwCj4gU28gdGhlIHJlbGVhc2UgcGx1Z2luIGlzIHJlYWxseSB0d28gcGFydHM6Cj49MjAKPiAxLiBBIHRvb2xraXQgZm9yIHdyaXRpbmcgcmVsZWFzZSBwbHVnaW5zCj49MjAKPiAyLiBBbiBleGFtcGxlIHRoYXQgZG9lcyB0aGUgam9iIGZvciB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoZSBNYXZlbiBUTFAgPQphbmQKPiBoYXMgc2VlbWVkID1FMj04MD05Q3N1ZmZpY2llbnQ9RTI9ODA9OUQgZm9yIGEgbG90IG9mIG90aGVyIHBlb3BsZS4KPj0yMAo+IEFzIHN1Y2gsIGlmIHlvdSBoYXZlIGRpZmZlcmVudCBuZWVkcywgZG8gbm90IGZlZWwgYmFkIGFib3V0IGhhdmluZyB0bwo+IGVuY29kZSBkaWZmZXJlbnRseS4uLiBob3BlZnVsbHkgdGhlIHRvb2xraXQgaGFsZiBvZiB0aGUgY29kZWJhc2UgaXMKPiBzdWZmaWNpZW50IGZvciB5b3UuCj49MjAKPj49MjAKPj49MjAKPj4gST1FMj04MD05OW0gY3VyaW91cyBpZiB5b3UgZ3V5cyBoYXZlIGFueSB0aG91Z2h0cyBvbiB0aGUgbWF0dGVyIGFzID0KST1FMj04MD05OXZlIGJlZW4KPj4gcGxheWluZyBhcm91bmQgaW4gdGhlIHNwYWNlIGZvciBhIGxpdHRsZSB3aGlsZSBub3cuCj4+PTIwCj4+IENoZWVycyBhbmQgaGFwcHkgaG9saWRheXMgZnJvbSBVVEMtNSwKPj4gLVJvYgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcgPQo8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgo+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnID0KPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgo+Pj0yMAo+PiAtLQo+IFNlbnQgZnJvbSBteSBwaG9uZQoKCi0tQXBwbGUtTWFpbD1fRTNFREU4NDctN0E1MS00OTc1LTg1QTYtMzIxQzJBMjk3N0FCLS0KCkZyb20gZGV2LXJldHVybi0xMjQyMDktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIE9jdCAxMSAwMDo1MzowMyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyMDktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgODYyRUMxMDFDMQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDExIE9jdCAyMDE3IDAwOjUzOjAzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODEzMyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBPY3QgMjAxNyAwMDo1MzowMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzgzOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBPY3QgMjAxNyAwMDo1MzowMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc4MjcgaW52b2tlZCBieSB1aWQgOTkpOyAxMSBPY3QgMjAxNyAwMDo1MzowMiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMTEgT2N0IDIwMTcgMDA6NTM6MDIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAwNjk4MTFBNTZFOAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTEgT2N0IDIwMTcgMDA6NTM6MDIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMS4zClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xLjMgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBJZ3dDQlR5SlBKT2kgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsIDExIE9jdCAyMDE3IDAwOjUzOjAwICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAxMS5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEzM10pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBEQzFEOTVGNTY5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMSBPY3QgMjAxNyAwMDo1Mjo1OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ0NiB3aXRoIE1FCglpZCBMMHN0MXcwMDYyMFVmZHkwMzBzdDRVOyBXZWQsIDExIE9jdCAyMDE3IDAyOjUyOjUzICswMjAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFdlZCwgMTEgT2N0IDIwMTcgMDI6NTI6NTMgKzAyMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xCkRhdGU6IFdlZCwgMTEgT2N0IDIwMTcgMDI6NTI6NTMgKzAyMDAKTWVzc2FnZS1JRDogPDM0MDY3ODgudDk3R1BmcWV5WkBnaWdhPgpVc2VyLUFnZW50OiBLTWFpbC81LjIuMyAoTGludXgvNC4xMC4wLTM1LWdlbmVyaWM7IEtERS81LjMxLjA7IHg4Nl82NDsgOyApCkluLVJlcGx5LVRvOiA8b3AueTd3bzZuazZrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+ClJlZmVyZW5jZXM6IDxDQStuUG5NeHlHMk5lUFhwVnFhd2U5alI9aXRIRVQ2VXVkbk45Q2pIaHY9b28tS0NyeHdAbWFpbC5nbWFpbC5jb20+IDxDQUZOQ1UtLWhYWjE5S1dvYzJjaThtK1hIY3UrX0ZvQmlRTXBhUlhMWmdPR1ZCLVNyZFFAbWFpbC5nbWFpbC5jb20+IDxvcC55N3dvNm5rNmtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpJSVVDLCBpdCdzIE1ERVBMT1ktMjIxIGFib3V0IG5ldC5mbGV4bW9qb3Mub3NzOmZsZXhtb2pvcy1tYXZlbi1wbHVnaW4KCmh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTURFUExPWS0yMjEKClJlZ2FyZHMsCgpIZXJ2PUU5CgpMZSBtYXJkaSAxMCBvY3RvYnJlIDIwMTcsIDIwOjQ4OjEzIENFU1QgUm9iZXJ0IFNjaG9sdGUgYSA9RTljcml0IDoKPiBGWUksIE1ERVBMT1ktMTIxIG1lbnRpb25zIGFub3RoZXIgcGx1Z2luIGJlaW5nIGhpdCBieSB0aGUgY2xhc3Nsb2FkZXIKPiBjaGFuZ2VzLgo+PTIwCj4gUm9iZXJ0Cj49MjAKPj0yMAo+IE9uIFR1ZSwgMDMgT2N0IDIwMTcgMjA6MjI6MTggKzAyMDAsIEFybmF1ZCBIPUU5cml0aWVyIDxhaGVyaXRpZXJAZ21haWwuY289Cm0+Cj49MjAKPiB3cm90ZToKPiA+IFRoYW5rcyBTdGVwaGVuCj4gPj0yMAo+ID4gT24gVHVlLCBPY3QgMywgMjAxNyBhdCA4OjE4IFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+PTIwCj4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+PiBJIGFtIGhvcGluZyBJIGNhbiBmaW5kIHNvbWUgdGltZSB0byBkbyBhIGZpbmFsIHJvdW5kIG9mIGV4cGVyaW1lbnRzIGFuZAo+ID4+IHRoZW4gY2xvc2UgdGhlIHZvdGUgd2l0aCBzdWNjZXNzIGFuZCBwdWJsaXNoLgo+ID4+PTIwCj4gPj4gT24gVHVlIDMgT2N0IDIwMTcgYXQgMTE6MTMsIEFybmF1ZCBIPUU5cml0aWVyIDxhaGVyaXRpZXJAZ21haWwuY29tPiB3cj0Kb3RlOgo+ID4+ID4gQFN0ZXBoZW4gV2hhdCBzaG91bGQgd2UgZG8gbm93ID8KPiA+PiA+PTIwCj4gPj4gPj0yMAo+ID4+ID4gT24gVHVlLCBTZXAgMTksIDIwMTcgYXQgMzoxNCBBTSwgT2xpdmllciBMYW15IDxvbGFteUBhcGFjaGUub3JnPgo+ID4+PTIwCj4gPj4gd3JvdGU6Cj4gPj4gPj4gSGkKPiA+PiA+PiBTb3JyeSBhIGJpdCBvdXQgb2YgdGltZSBBVE0gZm9yIHRlc3RpbmcgdGhpcy4KPiA+PiA+PiBXZWxsIEkgdHJ1c3QgQXJuYXVkIHRlc3RpbmcgdGhhdCBlc3BlY2lhbGx5IGlmIHRoaXMgaW1wcm92ZSB0aGUKPiA+PiA+PiBwZXJmb3JtYW5jZQo+ID4+ID4+IG9mIHRoaXMgdmVyeSBncmVhdC9hd2Vzb21lL3VzZXJzIG9yaWVudGVkIHBsdWdpbiA6UAo+ID4+ID4+PTIwCj4gPj4gPj4gT24gMTMgU2VwdGVtYmVyIDIwMTcgYXQgMjI6MTksIEFybmF1ZCBIPUU5cml0aWVyIDxhaGVyaXRpZXJAYXBhY2hlLj0Kb3JnPgo+ID4+ID4+PTIwCj4gPj4gPj4gd3JvdGU6Cj4gPj4gPj4gPiBEYW1uZWQsIGNhbid0IHdlIGJlIGFub255bW91cyBvbiBHaXRodWIgPwo+ID4+ID4+ID4gSSBtYWludGFpbiBpdCBpcyBhIGJpZyB3b3JkLCBJJ20gdHJ5aW5nIHRvIGZpeCBtb3JlIGJ1Z3MgdGhhbiBJIGE9CmRkCj4gPj49MjAKPiA+PiBuZXcKPiA+Pj0yMAo+ID4+ID4+ID4gb25lcwo+ID4+ID4+ID4gSSBhZGRlZCBPbGVnIGluIHRoZSBsb29wIGFzIGhlIGNvbnRyaWJ1dGVkIGEgbG90IG9uIGl0IHRvbwo+ID4+ID4+ID4gSSBkaWQgYSBxdWljayB0ZXN0IHRvIGJ1aWxkIG9uIEplbmtpbnMgMi42MC4zIG91ciBtYXZlbiBjb3JlIHdpdGgKPiA+Pj0yMAo+ID4+IHRoZQo+ID4+PTIwCj4gPj4gPj4gRXZpbAo+ID4+ID4+PTIwCj4gPj4gPj4gPiBNYXZlbiBwbHVnaW4gMi4xNyBvbiBhIGxvY2FsIFNTSCBhZ2VudCBhbmQgaXQgaXMgb2sKPiA+PiA+PiA+IEJ1dCBpdCBpcyByZWFsbHkgYSBxdWljayB0ZXN0IC4uLgo+ID4+ID4+ID49MjAKPiA+PiA+PiA+IENoZWVycwo+ID4+ID4+ID49MjAKPiA+PiA+PiA+PTIwCj4gPj4gPj4gPj0yMAo+ID4+ID4+ID4gT24gV2VkLCBTZXAgMTMsIDIwMTcgYXQgMTA6MDcgQU0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4+ID4+ID49MjAKPiA+PiA+PiA+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4+ID4+ID4gPiBPbiAxMyBTZXB0ZW1iZXIgMjAxNyBhdCAwMTowNSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPj4gPj4gPiA+PTIwCj4gPj4gPj4gPiA+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4+ID4+ID4gPj4gT24gMTMgU2VwdGVtYmVyIDIwMTcgYXQgMDA6MjYsIEFuZGVycyBIYW1tYXIgPGFuZGVyc0BoYW1tYXIubmU9CnQ+Cj4gPj4gPj49MjAKPiA+PiA+PiB3cm90ZToKPiA+PiA+PiA+ID4+PiBPbiBUdWUsIFNlcCAxMiwgMjAxNyBhdCA4OjU0IFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+PiA+PiA+ID4+Pj0yMAo+ID4+ID4+ID4gPj4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4+ID4+ID4gPj4+ID4gSGF2ZSB3ZSBnb3QgYW55IGZlZWRiYWNrIGZyb20gdGhlIGVtYmVkZGVyIGludGVncmF0aW9ucyB5ZXQ/Cj4gPj4gPj4gPiA+Pj49MjAKPiA+PiA+PiA+ID4+PiBJIGhhdmVuJ3QgaGVhcmQgYW55dGhpbmcgZnJvbSB0aGUgbTJlIHBlb3BsZS4gTWF5YmUgd2UgbmVlZCB0bwo+ID4+PTIwCj4gPj4gcGluZwo+ID4+PTIwCj4gPj4gPj4gPiB0aGVtCj4gPj4gPj4gPj0yMAo+ID4+ID4+ID4gPj4+IGRpcmVjdGx5LiBJIGNhbiBjb250YWN0IEZyZWQgQnJpY29uLgo+ID4+ID4+ID4gPj4+PTIwCj4gPj4gPj4gPiA+Pj4gL0FuZGVycwo+ID4+ID4+ID4gPj49MjAKPiA+PiA+PiA+ID4+IFBsZWFzZSBkbywgYWxzbyBpZiBhbnlvbmUgaGFzIGEgY29udGFjdCBpbiBuZXRiZWFucyBvciBpbnRlbGxpago+ID4+PTIwCj4gPj4gYW5kCj4gPj49MjAKPiA+PiA+PiA+IGNvdWxkCj4gPj4gPj4gPj0yMAo+ID4+ID4+ID4gPj4gbGV0IHRoZW0ga25vdyB3ZSdkIGxpa2UgZWl0aGVyIGZlZWRiYWNrIG9yICJ3ZSdyZSBvayBpZiBNTkctNjI9Cjc1Cj4gPj4gPj49MjAKPiA+PiA+PiBtYWtlcwo+ID4+ID4+PTIwCj4gPj4gPj4gPiA+PiB0cm91YmxlIGZvciB1cywgZ28gYWhlYWQgYW5kIHJlbGVhc2UiLiBJJ2QgbGlrZSB0byBjbG9zZSB0aGUKPiA+Pj0yMAo+ID4+IHZvdGUKPiA+PiBvbgo+ID4+PTIwCj4gPj4gPj4gPiBGcmlkYXkKPiA+PiA+PiA+PTIwCj4gPj4gPj4gPiA+PiAxMzowMCBVVEMuCj4gPj4gPj4gPiA+PTIwCj4gPj4gPj4gPiA+IE9saXZpZXIgLyBBcm5hdWQsIGhhdmUgZWl0aGVyIG9mIHlvdSBoYWQgYSBjaGFuY2UgdG8gdGVzdCB0aGlzCj4gPj49MjAKPiA+PiB3aXRoCj4gPj49MjAKPiA+PiA+PiB0aGUKPiA+PiA+Pj0yMAo+ID4+ID4+ID4gPiBldmlsIHByb2plY3QgdHlwZVsxXSBhcyB5b3UgdHdvIHNlZW0gdG8gYmUgdGhlIGFjdGl2ZQo+ID4+PTIwCj4gPj4gbWFpbnRhaW5lcnNbMl0KPiA+Pj0yMAo+ID4+ID4+ID4gPiBbMV06IGh0dHBzOi8vamF2YWFkdmVudHVyZS5ibG9nc3BvdC5pZS8yMDEzLzExL2plbmtpbnMtPiA+PiA+PiA9Cj4gPiBtYXZlbi1qb2ItdHlwZS1jb25zaWRlcmVkLWV2aWwuaHRtbAo+ID4+ID4+ID4gPiBbMl06IGh0dHBzOi8vZ2l0aHViLmNvbS9qZW5raW5zY2kvbWF2ZW4tcGx1Z2luL2NvbW1pdHMvbWFzdGVyCj4gPj4gPj4gPj0yMAo+ID4+ID4+ID4gLS0KPiA+PiA+PiA+PTIwCj4gPj4gPj4gPiBBcm5hdWQKPiA+PiA+Pj0yMAo+ID4+ID4+IC0tCj4gPj4gPj4gT2xpdmllciBMYW15Cj4gPj4gPj4gaHR0cDovL3R3aXR0ZXIuY29tL29sYW15IHwgaHR0cDovL2xpbmtlZGluLmNvbS9pbi9vbGFteQo+ID4+ID49MjAKPiA+PiA+IC0tCj4gPj4gPiAtLS0tLQo+ID4+ID4gQXJuYXVkIEg9RTlyaXRpZXIKPiA+PiA+IGh0dHA6Ly9haGVyaXRpZXIubmV0Cj4gPj4gPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+ID4+ID4gVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcgo+ID4+PTIwCj4gPj4gLS0KPiA+PiBTZW50IGZyb20gbXkgcGhvbmUKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQyMzgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE9jdCAxNCAwMjo1MDoyNiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyMzgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOUQ2REQxMDFEQQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDE0IE9jdCAyMDE3IDAyOjUwOjI2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDczMzkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTQgT2N0IDIwMTcgMDI6NTA6MjYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ3MjY5IGludm9rZWQgYnkgdWlkIDUwMCk7IDE0IE9jdCAyMDE3IDAyOjUwOjI2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDcyNTggaW52b2tlZCBieSB1aWQgOTkpOyAxNCBPY3QgMjAxNyAwMjo1MDoyNSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMTQgT2N0IDIwMTcgMDI6NTA6MjUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA4ODJERDE4MDExNwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTQgT2N0IDIwMTcgMDI6NTA6MjQgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMS4zClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xLjMgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgbl9UX2JMbnNvWGhBIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAxNCBPY3QgMjAxNyAwMjo1MDoyMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDMuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjVdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMDZBODY1RkUzRAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTQgT2N0IDIwMTcgMDI6NTA6MjIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMDUgd2l0aCBNRQoJaWQgTUVxRjF3MDA1MjBVZmR5MDNFcUY2aDsgU2F0LCAxNCBPY3QgMjAxNyAwNDo1MDoxNSArMDIwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBTYXQsIDE0IE9jdCAyMDE3IDA0OjUwOjE1ICswMjAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBSZXBvcnRpbmcgRXhlYyB2ZXJzaW9uIDEuNApEYXRlOiBTYXQsIDE0IE9jdCAyMDE3IDA0OjUwOjE1ICswMjAwCk1lc3NhZ2UtSUQ6IDwzNDQ4MDU2LmVyRE95enRIWHJAZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zNy1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpJbi1SZXBseS1UbzogPDM5ODM2OTcuMEhER1BZY0FmQUBnaWdhPgpSZWZlcmVuY2VzOiA8Mzk4MzY5Ny4wSERHUFljQWZBQGdpZ2E+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKaGVyZSBpcyBteSArMQoKSSBjaGVja2VkIHRoZSBiaW5hcnkgamFyIGFnYWluc3QgZGlmZmVyZW50IG5ldyBsb2NhbCBidWlsZHMgaW4gbWlzYyBKREs9MjAKY29uZGl0aW9ucyB0byBpbXByb3ZlIG15IHVuZGVyc3RhbmRpbmcgb2YgYXJ0aWZhY3QgdmVyaWZpYWJpbGl0eSBbMV0sIHVzaW5nPQo9MjAKZGlmZm9zY29wZQoKVGhlIHJlc3VsdHMgYXJlOgo9MkQgdXNpbmcgSkRLIDcgKGFzIEkgdXNlZCBkdXJpbmcgdGhlIHJlbGVhc2Ugc3RhZ2luZyksIGRpZmZlcmVuY2VzIGFyZSBhcz0KPTIwCmV4cGVjdGVkIHN0dXBpZCBvbmVzICh0aW1lc3RhbXBzLCBvcmRlciBvZiBmaWxlcyBpbiAuamFyLCBvcmRlciBpbj0yMApjb21wb25lbnRzLnhtbCkKPTJEIHVzaW5nIGFueSBvdGhlciBtYWpvciBKREsgdmVyc2lvbiAoNiwgOCBvciA5KSwgLmNsYXNzIGNvbnRlbnQgaXMgZGlmZmVyPQplbnQ9MjAKKHNvbWV0aW1lcyBqdXN0IGEgbGl0dGxlIGJpdCwgc29tZXRpbWVzIHJlYWxseSByZWFsbHkgZGlmZmVyZW50KQoKSSBkaWQgbm90IHRyeSB5ZXQgdG8gY2hlY2sgYWdhaW5zdCBtdWx0aXBsZSBtaW5vciB2ZXJzaW9ucyBvZiBKREsgNyAob3IgT3JhPQpjbGU9MjAKSkRLIHZzIE9wZW4gSkRLIHZzIElCTSBKREsgdnMgRWNsaXBzZSBKRFQpIG5vciBtdWx0aXBsZSBPUywgYnV0IGl0IHNlZW1zIHdlPQo9MjAKc2hvdWxkIGF0IGxlYXN0IHJlY29yZCB0aGUgbWFqb3IgdmVyc2lvbiBvZiB0aGUgSkRLIHVzZWQgdG8gZG8gdGhlIHJlbGVhc2UgPQp0bz0yMAppbXByb3ZlIHZlcmlmaWFiaWxpdHkKCldoZW4gdm90aW5nIG9uIHRoaXMgYXJ0aWZhY3QsIGl0IHdvdWxkIGJlIG5pY2UgaWYgeW91IGNvdWxkIGNoZWNrIGRpZmZvc2NvcD0KZT0yMApyZXN1bHQgd2hlbiB1c2luZyB5b3VyIHBlcnNvbmFsIHZlcnNpb24gb2YgSkRLIDcgYW5kIHJlcG9ydCBkaWZmZXJlbmNlcyB0bz0KPTIwCmltcHJvdmUgdGhlIGFuYWx5c2lzCgo9NDZZSSwgbXkgZGV0YWlsZWQgY29uZmlndXJhdGlvbiBkdXJpbmcgcmVsZWFzZSBwcmVwYXJhdGlvbiB3YXM6CkFwYWNoZSBNYXZlbiAzLjUuMCAoZmY4ZjVlNzQ0NDA0NTYzOWFmNjVmNjA5NWM2MjIxMGI1NzEzZjQyNjs9MjAKMjAxNy0wNC0wM1QyMTozOTowNiswMjowMCkKSmF2YSB2ZXJzaW9uOiAxLjcuMF84MCwgdmVuZG9yOiBPcmFjbGUgQ29ycG9yYXRpb24KRGVmYXVsdCBsb2NhbGU6IGZyX0ZSLCBwbGF0Zm9ybSBlbmNvZGluZzogVVRGLTgKT1MgbmFtZTogImxpbnV4IiwgdmVyc2lvbjogIjQuMTAuMC0zNy1nZW5lcmljIiwgYXJjaDogImFtZDY0IiwgZmFtaWx5OiAidW5pPQp4IgoKUmVnYXJkcywKCkhlcnY9RTkKClsxXSBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9wYWdlcy92aWV3cGFnZS5hY3Rpb24/cGFnZUlkPTNENzQ2OD0KMjMxOAoKTGUgdmVuZHJlZGkgMTMgb2N0b2JyZSAyMDE3LCAwMjowOTo1OCBDRVNUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOgo+IEhpLAo+PTIwCj4gV2Ugc29sdmVkIDMgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiBwcm9qZWN0SWQ9M0QxMjMxNzkyMiZ2ZXJzaW9uPTNEMTIzMzg2MjEKPj0yMAo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzcyCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3Mi9vcmcvYXBhY2hlLwo+IG1hdmVuL3JlcG9ydGluZy9tYXZlbi1yZXBvcnRpbmctZXhlYy8xLjQvbWF2ZW4tcmVwb3J0aW5nLWV4ZWMtMS40LXNvdXJjZS0KPiByZWxlYXNlLnppcAo+PTIwCj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gbWF2ZW4tcmVwb3J0aW5nLWV4ZWMtMS40LXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOgo+IGMxZjNjMTJhMjRlYzQ1MTNmNWFkYmI0MTUyZWM2YTMxNGYwYzRhMmIKPj0yMAo+IFN0YWdpbmcgc2l0ZToKPiBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9zaGFyZWQtYXJjaGl2ZXMvbWF2ZW4tcmVwb3J0aW5nLWV4ZWMtTEFURVNULwo+PTIwCj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPj0yMAo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj49MjAKPiAgICAgWyBdICsxCj4gICAgIFsgXSArMAo+ICAgICBbIF0gLTEKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1MjAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAxOCAxMjowNDowMiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1MjAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNkNDMzYxMEM5MAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDE4IE5vdiAyMDE3IDEyOjA0OjAyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDgxOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBOb3YgMjAxNyAxMjowNDowMiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDc0MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBOb3YgMjAxNyAxMjowNDowMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ3MzIgaW52b2tlZCBieSB1aWQgOTkpOyAxOCBOb3YgMjAxNyAxMjowNDowMSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMTggTm92IDIwMTcgMTI6MDQ6MDEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBEQjU5NDE4MDc4MQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTggTm92IDIwMTcgMTI6MDQ6MDAgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgNzgtVVNnRXpzeTRWIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAxOCBOb3YgMjAxNyAxMjowMzo1NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMTIuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMzRdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQzMzMjI1RjU2OQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTggTm92IDIwMTcgMTI6MDM6NTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMjMgd2l0aCBNRQoJaWQgYlEzcDF3MDAxMjBVZmR5MDNRM3BHRjsgU2F0LCAxOCBOb3YgMjAxNyAxMzowMzo0OSArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBTYXQsIDE4IE5vdiAyMDE3IDEzOjAzOjQ5ICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogUmU6IERvd25sb2FkIGxpbmtzCkRhdGU6IFNhdCwgMTggTm92IDIwMTcgMTM6MDM6NDggKzAxMDAKTWVzc2FnZS1JRDogPDM0NjA1NzYuc0xNWVZwaE90dUBnaWdhPgpJbi1SZXBseS1UbzogPDE1NTI2MDEucWxtMDNnQzhKdEBnaWdhPgpSZWZlcmVuY2VzOiA8b3AueTl1aDRueXdrZGtocnJAZGVza3RvcC0ya2hzazQ0PiA8NTc3Mzg4NC5OdXV2MERLb1ZKQGdpZ2E+IDwxNTUyNjAxLnFsbTAzZ0M4SnRAZ2lnYT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpmb3VuZCBzb21ldGhpbmcgdGhhdCBjYW4gZXhwbGFpbjogd2hlbiB1c2luZyB0aGUgcmVhbCB1cmwgc3RhcnRpbmcgd2l0aCAvCmNvbXBvbmVudHMvLCB0aGUgQ0dJIHNjcmlwdCB3b3JrcyBbNF0KQnV0IG5vdCB3aGVuIHVzaW5nIHRoZSB1c2VyLXZpc2libGUgdXJsICh0aGF0IHVzZXMgLmh0YWNjZXNzIHJld3JpdGUgcnVsZXMpPQo9MjAKWzVdCgpJTkZSQSBKaXJhIGlzc3VlIG9wZW5lZDogaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9JTkZSQS0xNTUxMwoKUmVnYXJkcywKCkhlcnY9RTkKCgpbNF0gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2NvbXBvbmVudHMvcGx1Z2lucy9tYXZlbi1qZGVwcnNjYW4tcGx1Z2luLwpkb3dubG9hZC5jZ2kKCls1XSBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy9tYXZlbi1qZGVwcnNjYW4tcGx1Z2luL2Rvd25sb2FkLmNnaQoKTGUgc2FtZWRpIDE4IG5vdmVtYnJlIDIwMTcsIDAxOjE4OjI3IENFVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiBvaywgeGRvYy9kb3dubG9hZC54bWwudm0gd2FzIG1pc3NpbmcgZm9yIHRoaXMgbmV3IHBsdWdpbjogSSBhZGRlZCBpdCBhbmQKPiBtYW51YWxseSBhZGRlZCBhIGdlbmVyYXRlZCBodG1sIHJlc3VsdCB0byBzdm5wdWJzdWIgbG9jYXRpb24gWzFdCj49MjAKPiB0aGlzIGlzIG5vdCB5ZXQgc3VmZmljaWVudDogSSBkb24ndCBrbm93IHdoeSBkb3dubG9hZC5jZ2kgc2NyaXB0IGRvZXMgbm90Cj4gZmluZCBkb3dubG9hZC5odG1sCj49MjAKPiB0aGlzIGlzIHdvcmtpbmcgb24gbWFpbiBNYXZlbiBzaXRlIFsyXSBmcm9tIGl0cyBvd24gc3ZucHVic3ViIGxvY2F0aW9uIFszXQo+PTIwCj4gYW55IGhpbnQ/Cj49MjAKPiBSZWdhcmRzLAo+PTIwCj4gSGVydj1FOQo+PTIwCj4gWzFdIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9tYXZlbi9jb21wb25lbj0KdHMvCj4gcGx1Z2lucy9tYXZlbi1qZGVwcnNjYW4tcGx1Z2luLwo+PTIwCj4gWzJdIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL2Rvd25sb2FkLmNnaQo+PTIwCj4gWzNdIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9tYXZlbi9jb250ZW50Lwo+PTIwCj4gTGUgdmVuZHJlZGkgMTcgbm92ZW1icmUgMjAxNywgMTI6NDc6NTEgQ0VUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOgo+ID4gdGhlIGRlZXBsaW5rIHVzZWQgdG8gd29yazogdGhhdCdzIHRoZSBvYmplY3RpdmUgb2Ygb3VyCj4gPiAicmVzb3VyY2VzL2Rvd25sb2FkLmNnaSArIHhkb2MvZG93bmxvYWQueG1sLnZtIiBwYXR0ZXJuIHRoYXQgd2FzIGNyZWF0ZWQKPiA+IHNvbWUgeWVhcnMgYWdvLgo+ID4gZG93bmxvYWQuY2dpIGlzIHN1cHBvc2VkIHRvIHVzZSBzdGFuZGFyZCBBU0Ygc2NyaXB0IHRoYXQgdXNlcwo+ID4gZG93bmxvYWQuaHRtbAo+ID4gYXMgY29udGVudAo+ID49MjAKPiA+IEkgZG9uJ3Qga25vdyB3aHkgdGhpcyBkb2VzIG5vdCB3b3JrIGFueSBtb3JlLgo+ID49MjAKPiA+IEkgdmFndWVseSByZW1lbWJlciBzb21ldGhpbmcgYSBmZXcgeWVhcnMgYWdvIGFib3V0IGV4ZWN1dGFibGUgYml0LCBzb21lCj4gPiBoZWFkYWNoZSBJIGhhZCBhdCB0aGF0IHRpbWUgdG8gdHJ5IHRvIGZpeCB3b3JraW5nIHdpdGggaW50ZXJlc3RlZCBwZW9wbGUKPiA+IChpZS4gbm90IG1hbnksIGJ1dCBTZWJiIHdhcyBwcm9iYWJseSBvbmUgb2YgdGhlIGZldykuIFBlcmhhcHMgaXQncyB0aW1lPQogdG8KPiA+IHJld29yayBvbiBpdDogSSdsbCBzZWUgdG9uaWdodCBpZiBJIGNhbiBmaW5kIHJlZmVyZW5jZXMgb24gdGhlIGFuYWx5c2lzCj4gPiBhbHJlYWR5IGRvbmUgYXQgdGhhdCB0aW1lLgo+ID49MjAKPiA+IFJlZ2FyZHMsCj4gPj0yMAo+ID4gSGVydj1FOQo+ID49MjAKPiA+IExlIHZlbmRyZWRpIDE3IG5vdmVtYnJlIDIwMTcsIDEyOjI3OjQ5IENFVCBSb2JlcnQgU2Nob2x0ZSBhID1FOWNyaXQgOgo+ID4gPiBUaGlzIHRvcGljIGRlc2VydmVzIGEgc2VwYXJhdGUgbWFpbHRocmVhZC4KPiA+ID49MjAKPiA+ID4gUXVvdGluZyBTZWJiIG9uIGEgZGlmZmVyZW50IHRocmVhZDoKPiA+ID4gIlRoZSBkb3dubG9hZCBsaW5rIHBvaW50cyB0byB0aGUgdG9wLWxldmVsIG9mIHRoZSBBU0YgbWlycm9yIHN5c3RlbS4KPiA+ID49MjAKPiA+ID4gVGhpcyBtYWtlcyBpdCB2ZXJ5IGhhcmQgdG8gdXNlLiIKPiA+ID49MjAKPiA+ID4gQUZBSUsgdGhlIEFTRiBzYXlzIHRoZXJlIHNob3VsZCBiZSBhIGRvd25sb2FkIGJ1dHRvbiBmb3IgZXZlcnkgcmVsZWFzPQplZAo+ID4gPiBwcm9kdWN0Lgo+ID4gPiBJbiBjYXNlIG9mIE1hdmVuIHdlJ3JlIHRhbGtpbmcgYWJvdXQgYSBsb3Qgb2YgcHJvamVjdHMsIGFuZCBkb3dubG9hZHMKPiA+ID4gc2hvdWxkIGJlIHJlZGlyZWN0ZWQgdmlhIGEgbWlycm9yLgo+ID4gPiBJIGRvbid0IHRoaW5rIGl0IGlzIHBvc3NpYmxlIHRvIGRvIGEgZGVlcGxpbmsgdG8gYSBzcGVjaWZpYyBmb2xkZXIuCj4gPiA+PTIwCj4gPiA+IEFsc28sIGluIGNhc2Ugb2YgTWF2ZW4gcGx1Z2lucyBhbmQgb3RoZXIgZGVwZW5kZW5jaWVzIChhbGwgZXhjbHVkaW5nID0KdGhlCj4gPiA+IE1hdmVuIGRpc3RyaWJ1dGlvbiBpdHNlbGYpIGl0IGlzIGtpbmQgb2Ygc3RyYW5nZSB0byBwcm92aWRlIGEgZG93bmxvYWQKPiA+ID4gbGluayB3aGVuIHdlIGNvdWxkIGFzc3VtZSB0aGF0IHRoZXkgb25seSB3YW50IHRvIGhhdmUgdGhlCj4gPiA+IHBsdWdpbi9kZXBlbmRlbmN5IFhNTCBmcmFnbWVudC4KPiA+ID49MjAKPiA+ID4gSSBhZ3JlZSB0aGF0IHRoZSBsaW5rIGlzIGtpbmQgb2YgdXNlbGVzcyByaWdodCBub3csIGJ1dCBhbHNvIHRoZSBiZXN0PQogd2UKPiA+ID4gY2FuIGRvIHdoZW4gcHJvdmlkaW5nIGEgZGlyZWN0IGRvd25sb2FkIGxpbmsuCj4gPiA+IElmIHRoZXJlJ3Mgbm8gd2F5IHRvIGRvIGEgZGVlcGxpbmssIEknZCBwcmVmZXIgdG8gcmVtb3ZlIGl0IGZyb20gdGhlCj4gPiA+IHBhZ2VzCj4gPiA+IGFuZCBhbm5vdW5jZW1lbnRzLgo+ID4gPj0yMAo+ID4gPiB0aGFua3MsCj4gPiA+IFJvYmVydAo+ID4gPj0yMAo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4MzQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIERlYyAyNiAwMzoxMDoyNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4MzQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNzYxMkMxN0E3RQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDI2IERlYyAyMDE3IDAzOjEwOjI0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTgxMTQgaW52b2tlZCBieSB1aWQgNTAwKTsgMjYgRGVjIDIwMTcgMDM6MTA6MjQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE3OTkwIGludm9rZWQgYnkgdWlkIDUwMCk7IDI2IERlYyAyMDE3IDAzOjEwOjIzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTc5NzkgaW52b2tlZCBieSB1aWQgOTkpOyAyNiBEZWMgMjAxNyAwMzoxMDoyMyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMjYgRGVjIDIwMTcgMDM6MTA6MjMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBEMEU2OTFBMDFDMgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjYgRGVjIDIwMTcgMDM6MTA6MjIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjQ4ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTAuNDggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0hFQURFUl9GUk9NX0RJRkZFUkVOVF9ET01BSU5TPTAuMDAxLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgM2RjSG1XYzllckZiIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVHVlLCAyNiBEZWMgMjAxNyAwMzoxMDoyMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXFrMC1mMTc4Lmdvb2dsZS5jb20gKG1haWwtcWswLWYxNzguZ29vZ2xlLmNvbSBbMjA5Ljg1LjIyMC4xNzhdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQkIyQjI1RjM5RAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjYgRGVjIDIwMTcgMDM6MTA6MjAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtcWswLWYxNzguZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgMTQzc28yNzY4NjIwMnFraS4yCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMjUgRGVjIDIwMTcgMTk6MTA6MjAgLTA4MDAgKFBTVCkKWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTpmcm9tOmNvbnRlbnQtdHJhbnNmZXItZW5jb2Rpbmc6bWltZS12ZXJzaW9uCiAgICAgICAgIDpzdWJqZWN0Om1lc3NhZ2UtaWQ6ZGF0ZTpjYzp0bzsKICAgICAgICBiaD1Mcm1rdU40eTNiY2RwSEV3TzBmbmNmWTBjSTc0Lzhwd3o2UElZUjRFbjAwPTsKICAgICAgICBiPVZCd25GbEJIUXdnSit2eWg4eUFXeTJYMWdHeW95TUJndjdJd3RuWVJlS3FYODVjTU1MUkdaMGFjZlFwUDhydU5MNQogICAgICAgICBSTlRUZ3h6VXFiMzY4UUJFZGNCL2NSZVZwUXpVRWlpM3lxbDRHNHlKRXEwa0JrWld4MG1qdmZIVGxveTUySm1tNmU5NAogICAgICAgICBEMkFXZlpkMTBKOGFQYTFwMmpPb3ZUM2M2cWtxMU1TT1NUY0tNSFp1UXY5STlSZkJUbjdvdHNkaEJwL2Z6VVpLQ0l0QgogICAgICAgICBDa3hkQ0thY1pHeVMzOGpuaDNmWmkvVVl3SDZteVlka0I4SnNUQnhHcW9JV1hjZW1ydXdiLzBwQk9LTWY1NGovZ0hLVQogICAgICAgICAvUUhhWGZSVzVJWGI5bHZGMyt0VFdhalBvaUpFMko1ckdrM3RiNDdWUGxxRmFYWUhONnc5L0h1YW5RTzE1NVdjRk1XagogICAgICAgICAwRENnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBS0dCM21KcnQwUFFxYzBONVlPMmxQV1NkSi8rdmdrUFRxUGhyOVRSTG9LUm9uYkpmNGsxNkNJdQoJc3RIL252NVNnaGtwMk1LK0RyL0M3SndDZTYzSwpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUNKZkJvdEo1d0gvblRzdHI0NUZlN3NHZ3psdkxkbHJRV3FnREZPTmJlNUtpSGMxcEhiemJGODZYNDJVaG5aNFMxK1lOd1ZoV1MyaDNBPT0KWC1SZWNlaXZlZDogYnkgMTAuNTUuMjA3Ljg4IHdpdGggU01UUCBpZCBlODVtcjgwOTYwMDVxa2ouNTcuMTUxNDI1NzgyMDMzOTsKICAgICAgICBNb24sIDI1IERlYyAyMDE3IDE5OjEwOjIwIC0wODAwIChQU1QpClJlY2VpdmVkOiBmcm9tID9JUHY2OjI2MDE6NWMxOjQ1MDA6NThkMDo0ZDQ0OmNhYzk6MjkwYjo5MDYzPyAoWzI2MDE6NWMxOjQ1MDA6NThkMDo0ZDQ0OmNhYzk6MjkwYjo5MDYzXSkKICAgICAgICBieSBzbXRwLmdtYWlsLmNvbSB3aXRoIEVTTVRQU0EgaWQgcTgxc20xMzA0NDE1MnFrbC4xMy4yMDE3LjEyLjI1LjE5LjEwLjE5CiAgICAgICAgKHZlcnNpb249VExTMV8yIGNpcGhlcj1FQ0RIRS1SU0EtQUVTMTI4LUdDTS1TSEEyNTYgYml0cz0xMjgvMTI4KTsKICAgICAgICBNb24sIDI1IERlYyAyMDE3IDE5OjEwOjE5IC0wODAwIChQU1QpCkZyb206IFJvYiBUb21wa2lucyA8Y2h0b21wa2lAYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOwoJY2hhcnNldD11dGYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCk1pbWUtVmVyc2lvbjogMS4wIChNYWMgT1MgWCBNYWlsIDExLjIgXCgzNDQ1LjUuMjBcKSkKU3ViamVjdDogUXVlc3Rpb25zIHJlZ2FyZGluZyBpbXByb3ZpbmcgdGhlIEFwYWNoZSBDb21tb25zIHJlbGVhc2UgcHJvY2Vzcy4KTWVzc2FnZS1JZDogPDM0Njk3OTNCLTQ1ODItNDFGNy1CNjQxLTUwMkVGRjdEQURCM0BhcGFjaGUub3JnPgpEYXRlOiBNb24sIDI1IERlYyAyMDE3IDIyOjEwOjE4IC0wNTAwCkNjOiBDb21tb25zIERldmVsb3BlcnMgTGlzdCA8ZGV2QGNvbW1vbnMuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClgtTWFpbGVyOiBBcHBsZSBNYWlsICgyLjM0NDUuNS4yMCkKCkhlbGxvIGFsbCwKClBhcmRvbiwgbWF5YmUgdGhpcyBzaG91bGQgaGF2ZSBnb25lIHRvIHlvdXIgQHVzZXIgbGlzdCwgYnV0IHdoeSBub3QgcGluZyA9CnRoZSBkZXYgY3Jldy4gST1FMj04MD05OXZlIGJlZW4gcGxheWluZyBhcm91bmQgdGhlIGlkZWFzIHN1cnJvdW5kaW5nIG91ciA9CmZhaXJseSBtYW51YWwgcmVsZWFzZSBwcm9jZXNzIGZvciB0aGUgY29tcG9uZW50cyBpbiBDb21tb25zLCBhbmQgSSB3YXMgPQpob3BpbmcgZm9yIHNvbWUgaW5zaWdodHMuPTIwCgpTY3JpcHRpbmcgdGhlIHZlcnNpb24gY2hhbmdlcyBpc249RTI9ODA9OTl0IHJlYWxseSB0aGF0IGJpZyBvZiBhIGRlYWwgPQpmb3IgdXMsIGFuZCB0aGF0IEkgY2FuIG1hbmFnZS4gQnV0LCB3aGVuIGl0IGNvbWVzIHRvIHB1Ymxpc2hpbmcgb3VyID0KYXJ0aWZhY3RzIHRvIHRoZSBhcGFjaGUgbmV4dXMgcmVwb3NpdG9yeSwgYW5kIHRoZW4gc2VwYXJhdGVseSBwdWJsaXNoaW5nID0Kb3VyIC1zcmMgYW5kIC1iaW4gYXNzZW1ibGllcyB0byB0aGUgZGV2IGRpc3Qgc3VidmVyc2lvbiByZXBvc2l0b3J5IChhbmQgPQpjb25zZXF1ZW50bHkgZGVsZXRpbmcgdGhvc2UgYXJ0aWZhY3RzIGZyb20gbmV4dXMgYXMgdGhleT1FMj04MD05OXJlID0KPUUyPTgwPTlDYXR0YWNoZWQ9RTI9ODA9OUQgZm9yIHRoZSBwdXJwb3NlIG9mIGdwZyBzaWduaW5nKSwgSSBmZWVsIGl0IGEgPQp0YWQgY3VtYmVyc29tZS49MjAKCkk9RTI9ODA9OTl2ZSBmaWRkbGVkIGFyb3VuZCBhIGxpdHRsZSB3aXRoIHRoZSBpZGVhIG9mIGRldGFjaGluZyB0aGUgLXNyYyA9CmFuZCAtYmluIGFzc2VtYmxpZXMgYWZ0ZXIgZ3BnIHNpZ25pbmcgd2l0aCBzb21lIHN1Y2Nlc3MsIGJ1dCB0aGVuIEkgaGF2ZSA9CnRvIGRlbHZlIGludG8gdGhlIG1lY2hhbmljcyBvZiBwdWJsaXNoaW5nIHRob3NlIHVwIHRvIHRoZSBzdWJ2ZXJzaW9uID0KcmVwb3NpdG9yeSwgYW5kIGNsZWFybHkgdGhhdCBwcm9ibGVtIGhhcyBhbHJlYWR5IGJlZW4gc29sdmVkLiBTbyBJIGZpbmQgPQpteXNlbGYgaW4gdGhlIHNwYWNlIG9mIHRyeWluZyB0byBzaG9laG9ybiBvdXIgcHJvY2VzcyBpbnRvIGl0cyB0aGUgbWFpbiA9Cm1hdmVuLXJlbGVhc2UtcGx1Z2luLCB3aGljaCBJPUUyPTgwPTk5dmUgZm91bmQgYSB0YWQgZGlmZmljdWx0LCB2ZXJzdXMgPQp3cml0aW5nIG91ciBvd24gcmVsZWFzZSBwbHVnaW4sIHdoaWNoIGZlZWxzIGxpa2UgSSB3b3VsZCBiZSBkdXBsaWNhdGluZyA9CnRvbnMgb2YgY29kZSAod2hpY2ggSSBkb249RTI9ODA9OTl0IHdhbnQgdG8gZG8pLgoKST1FMj04MD05OW0gY3VyaW91cyBpZiB5b3UgZ3V5cyBoYXZlIGFueSB0aG91Z2h0cyBvbiB0aGUgbWF0dGVyIGFzID0KST1FMj04MD05OXZlIGJlZW4gcGxheWluZyBhcm91bmQgaW4gdGhlIHNwYWNlIGZvciBhIGxpdHRsZSB3aGlsZSBub3cuCgpDaGVlcnMgYW5kIGhhcHB5IGhvbGlkYXlzIGZyb20gVVRDLTUsCi1Sb2I9CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0MTUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAgNCAxNzo1MjoxNiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0MTUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQzNBMkMxMDc2QgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICA0IE5vdiAyMDE3IDE3OjUyOjE2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTIzODIgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBOb3YgMjAxNyAxNzo1MjoxNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTIzMTMgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBOb3YgMjAxNyAxNzo1MjoxNiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDEyMzAyIGludm9rZWQgYnkgdWlkIDk5KTsgNCBOb3YgMjAxNyAxNzo1MjoxNiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDQgTm92IDIwMTcgMTc6NTI6MTYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA1NDU4ODFBQTZCMwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMTc6NTI6MTUgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMS4zClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xLjMgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB5TEJUNS0zb1VCTFogZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsICA0IE5vdiAyMDE3IDE3OjUyOjEzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwNi5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyOF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBFOUJCQTYxMTcxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxNzo1MjoxMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ0MSB3aXRoIE1FCglpZCBWdHM2MXcwMDYyMFVmZHkwM3RzNlZDOyBTYXQsIDA0IE5vdiAyMDE3IDE4OjUyOjA2ICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFNhdCwgMDQgTm92IDIwMTcgMTg6NTI6MDYgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogTWF2ZW4gNC4wLjAKRGF0ZTogU2F0LCAwNCBOb3YgMjAxNyAxODo1MjowNiArMDEwMApNZXNzYWdlLUlEOiA8MzU3MTcwMC5YQ3NVR09weUFtQGdpZ2E+CkluLVJlcGx5LVRvOiA8Q0FDTEU9N01ZSDVUeXdFWkNEWmhQUT0ySGJ1YW4xWkx4OXpyUXV4eDhQUS1WUTJHelhnQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXdFSDlaMm15cDcxdWFTcmRjeUxKUkZyRS1WcnQyMDE5MXJkMDFoK1VmaGp3QG1haWwuZ21haWwuY29tPiA8Q0ErblBuTXpVUCtBPTJqdUpFWHB2dTJzb0FlRz1zMFF0Y3dXRHMwMGhKNEY1cm1UVGZnQG1haWwuZ21haWwuY29tPiA8Q0FDTEU9N01ZSDVUeXdFWkNEWmhQUT0ySGJ1YW4xWkx4OXpyUXV4eDhQUS1WUTJHelhnQG1haWwuZ21haWwuY29tPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCkxlIHNhbWVkaSA0IG5vdmVtYnJlIDIwMTcsIDE4OjM0OjE0IENFVCBSb21haW4gTWFubmktQnVjYXUgYSA9RTljcml0IDoKPiA+IEFuZCBzY3JpcHRpbmcgaXMgdGhlIHBhdGggdG8gdGhlIGRhcmsgc2lkZSBvZiBpbXBlcmF0aXZlIGJ1aWxkcy4uLiBidXQKPiA+IHByb3Bvc2FscyB3ZWxjb21lCj49MjAKPiBUaGlzIGlzIHRydWUgYnV0IHRoaXMgaXMgYWxzbyBtYW5kYXRvcnkgdG9kYXkuIFRoZXJlIGlzIGEgc21hbGwKPiBhbHRlcm5hdGl2ZSB0byB0aGF0IGFuZCBJIHdvdWxkIGJlIGFzIGhhcHB5IGlmIG1hdmVuIGNhbiBkbyBpdDoKPiBzdXBwb3J0IG1vam8gZnJvbSB0aGUgcmVhY3RvciAoaWUgaGF2aW5nIGEgcHJvamVjdCB3aXRoIHRoaXMgbGF5b3V0Ogo+IHBhcmVudC9bbW9kdWxlMSwgbXktbWF2ZW4tcGx1Z2luXSkuIElmIHRoaXMgd29ya3MgdGhlbiBubyBuZWVkIG9mCj4gc2NyaXB0aW5nCkkgbGlrZSB0aGlzIGlkZWEKCgpSZWdhcmRzLAoKSGVydj1FOQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0Mzc3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBOb3YgIDEgMTE6MTA6MDMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0Mzc3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEYwMjVFMTA4MEIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAgMSBOb3YgMjAxNyAxMToxMDowMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI5MTcyIGludm9rZWQgYnkgdWlkIDUwMCk7IDEgTm92IDIwMTcgMTE6MTA6MDMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI4ODcxIGludm9rZWQgYnkgdWlkIDUwMCk7IDEgTm92IDIwMTcgMTE6MTA6MDMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyODg2MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDEgTm92IDIwMTcgMTE6MTA6MDIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDAxIE5vdiAyMDE3IDExOjEwOjAyICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMDVBNzYxQTNGODYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsICAxIE5vdiAyMDE3IDExOjEwOjAyICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgZmF3TkUzRnRFNWtWIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJV2VkLCAgMSBOb3YgMjAxNyAxMToxMDowMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDIuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjRdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRDZBMTI2MEUwRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgIDEgTm92IDIwMTcgMTE6MDk6NTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMzcgd2l0aCBNRQoJaWQgVWI5eTF3MDBKMjBVZmR5MDNiOXlnYTsgV2VkLCAwMSBOb3YgMjAxNyAxMjowOTo1OCArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBXZWQsIDAxIE5vdiAyMDE3IDEyOjA5OjU4ICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IG1pZ3JhdGluZyBzb21lIGNvZGUgdG8gR2l0CkRhdGU6IFdlZCwgMDEgTm92IDIwMTcgMTI6MDk6NTggKzAxMDAKTWVzc2FnZS1JRDogPDM2MzA3OTYucEN4MkZQUGdGZ0BnaWdhPgpJbi1SZXBseS1UbzogPDIwMjg4ODAuMUhnRm1SSlMwcEBnaWdhPgpSZWZlcmVuY2VzOiA8NTg3ODExMC5UTUVvdDZWRXV1QGdpZ2E+IDwyMDI4ODgwLjFIZ0ZtUkpTMHBAZ2lnYT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgphZGRpbmcgMiBtb3JlIHJlcG9zIHRvIHRoZSBsaXN0OgpodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tZG94aWEtY29udmVydGVyCmh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1kb3hpYS1saW5rY2hlY2sKCkxlIG1lcmNyZWRpIDEgbm92ZW1icmUgMjAxNywgMDc6Mjg6MDIgQ0VUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOgo+IGZvciBsYXp5IHBlb3BsZSwgSSB0b29rIHRpbWUgdG8gY3JlYXRlIHRoZSA0IHJlcG8gb24gcGVyc29uYWwgR2l0SHViIHNwYWM9CmU6Cj4gaHR0cHM6Ly9naXRodWIuY29tL2hib3V0ZW15L21hdmVuLWFwYWNoZS1wYXJlbnQKPiBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tcGFyZW50Cj4gaHR0cHM6Ly9naXRodWIuY29tL2hib3V0ZW15L21hdmVuLWRlZmF1bHQtc2tpbgo+IGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1mbHVpZG8tc2tpbgo+PTIwCj4gSSB3b24ndCBkbyB0aGUgc2FtZSBpbiB0aGUgZnV0dXJlIGZvciB0aGUgMjYgc2hhcmVkIGFuZCA0NSBwbHVnaW5zLCBzaW5jZQo+IG1hbnVhbCByZXBvIGNyZWF0aW9uIGlzIG5vdCBmdW4uLi4KPj0yMAo+IFJlZ2FyZHMsCj49MjAKPiBIZXJ2PUU5Cj49MjAKPiBMZSBtYXJkaSAzMSBvY3RvYnJlIDIwMTcsIDE2OjA4OjAxIENFVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiA+IEFzIHlvdSBwcm9iYWJseSBub3RpY2VkLCBJIG1pZ3JhdGVkIG1hdmVuLWRpc3QtdG9vbCBbMV0gdG8gZ2l0LCB1c2luZwo+ID4gc2VsZi0KPiA+IHNlcnZpY2UgR2l0Ym94IGZvciB0aGUgZW1wdHkgcmVwbyBjcmVhdGlvbiBhbmQgYSBtaWdyYXRlLXNhbmRib3guc2ggc2hlPQpsbAo+ID4gc2NyaXB0IFsyXSB0byBwb3B1bGF0ZSB0aGVtIChhZnRlciBTbGluZyBleGFtcGxlKQo+ID49MjAKPiA+IEl0IHdvcmtlZCBsaWtlIGEgY2hhcm0hCj4gPj0yMAo+ID4gSWYgbm9ib2R5IG9iamVjdHMsIGluIDcyaCwgSSdsbCB1c2UgbWlncmF0ZS1wb20uc2ggYW5kIG1pZ3JhdGUtc2tpbnMuc2g9CiB0bwo+ID4gY3JlYXRlIDQgbmV3IHJlcG9zOiBtYXZlbi1hcGFjaGUtcGFyZW50LCBtYXZlbi1wYXJlbnQsIG1hdmVuLWRlZmF1bHQtc2s9CmluCj4gPiBhbmQgbWF2ZW4tZmx1aWRvLXNraW4KPiA+IFBsZWFzZSB0YWtlIHRpbWUgdG8gZXhlY3V0ZSB0aGUgc2NyaXB0cyBmb3IgeW91cnNlbGYgYW5kIGNoZWNrIHRoYXQgdGhlCj4gPiByZXN1bHQgaXMgb2sgZm9yIHlvdS4KPiA+PTIwCj4gPiBJIGFscmVhZHkgcHJlcGFyZWQgbWlncmF0ZS1wbHVnaW5zLnNoIGFuZCBtaWdyYXRlLXNoYXJlZC5zaCBzY3JpcHRzOiBJJ20KPiA+IHdhaXRpbmcgZm9yIEplbmtpbnMgaW50ZWdyYXRpb24gcmVzdWx0cyBiZWZvcmUgdHJ5aW5nIHRvIG1pZ3JhdGUgdGhpcwo+ID4gcGFydCwKPiA+IGJ1dCB5b3UgY2FuIGFsc28gdGFrZSB0aW1lIHRvIGNoZWNrIHRoYXQgdGhlIHJlc3VsdGluZyBnaXQgcmVwb3MgZnJvbSB0PQpoZQo+ID4gc2NyaXB0cyBhcmUgZ29vZC4KPiA+PTIwCj4gPiBSZWdhcmRzLAo+ID49MjAKPiA+IEhlcnY9RTkKPiA+PTIwCj4gPiBbMV0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1kaXN0LXRvb2wvCj4gPj0yMAo+ID4gWzJdIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL21hdmVuL3NhbmRib3gvdHJ1bmsvc2NyaXB0cy9naXQvCj4gPj0yMAo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PTIwCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDIyMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgT2N0IDEyIDAxOjUxOjM1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDIyMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA5N0JGRDEwQjVGCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMTIgT2N0IDIwMTcgMDE6NTE6MzUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxOTY3NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMiBPY3QgMjAxNyAwMTo1MTozNSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTk1OTQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTIgT2N0IDIwMTcgMDE6NTE6MzUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxOTU4MyBpbnZva2VkIGJ5IHVpZCA5OSk7IDEyIE9jdCAyMDE3IDAxOjUxOjM0IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAxMiBPY3QgMjAxNyAwMTo1MTozNCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDIxMzYwMUE2NDZDCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAxMiBPY3QgMjAxNyAwMTo1MTozNCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjUKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuNSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsCglLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBvWFJkaUVFY1hsLVEgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsIDEyIE9jdCAyMDE3IDAxOjUxOjMxICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwNC5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyNl0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA0MDEyRDVGQ0E3Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAxMiBPY3QgMjAxNyAwMTo1MTozMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ2MCB3aXRoIE1FCglpZCBMUnJRMXcwMDEyMFVmZHkwM1JyUTZoOyBUaHUsIDEyIE9jdCAyMDE3IDAzOjUxOjI0ICswMjAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFRodSwgMTIgT2N0IDIwMTcgMDM6NTE6MjQgKzAyMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xCkRhdGU6IFRodSwgMTIgT2N0IDIwMTcgMDM6NTE6MjQgKzAyMDAKTWVzc2FnZS1JRDogPDM2NzA5MDcuV2ZGQ0dWZzRsdEBnaWdhPgpVc2VyLUFnZW50OiBLTWFpbC81LjIuMyAoTGludXgvNC4xMC4wLTM3LWdlbmVyaWM7IEtERS81LjMxLjA7IHg4Nl82NDsgOyApCkluLVJlcGx5LVRvOiA8b3AueTd5cjU0c2drZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+ClJlZmVyZW5jZXM6IDxDQStuUG5NeHlHMk5lUFhwVnFhd2U5alI9aXRIRVQ2VXVkbk45Q2pIaHY9b28tS0NyeHdAbWFpbC5nbWFpbC5jb20+IDxDQStuUG5NdzF3OTY9TlNMc0VreGRKa0p1MGpZMzJhUTg3MSt0cTlZdmpHUkRZQUVKQndAbWFpbC5nbWFpbC5jb20+IDxvcC55N3lyNTRzZ2tka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKTGUgbWVyY3JlZGkgMTEgb2N0b2JyZSAyMDE3LCAyMzo0Nzo1NCBDRVNUIFJvYmVydCBTY2hvbHRlIGEgPUMzPUE5Y3JpdCA6Cj4gSSB0aGluayB0aGUgY29uY2x1c2lvbiBpczogMy41LjEgaXMgbm90IGNvcnJlY3QKPj0yMAo+IGl0IHNob3VsZCBlaXRoZXIgYmU6Cj4gMy41LjIgd2l0aG91dCB0aGUgMiBjbGFzc2xvYWRlciByZWxhdGVkIGlzc3Vlcy4KaWRlYWxseSB3aXRoIGFuIG9wdGlvbiB0byBhY3RpdmF0ZSB0aGUgY2xhc3Nsb2FkZXIgY2hhbmdlcyAoZm9yIHBlb3BsZSBrbm93PQppbmc9MjAKd2hhdCB0aGV5IGFyZSBkb2luZyBvciB3YW50aW5nIHRvIHRlc3QgbW9kZSBtb3JlIHdpZGVseSkKCj4gb3IKPiAzLjYuMCBpbmNsdWRpbmcgdGhlIGNsYXNzbG9hZGVyIHJlbGF0ZWQgaXNzdWVzLCBidXQgcHJvYmFibHkgaW1wcm92ZWQgd2l0aAo+IGEgc3lzdGVtIHByb3BlcnR5IHRvIHN3aXRjaCBiYWNrIHRvIHRoZSAzLjUuMC1iZWhhdmlvci4gV2UgYWxzbyBuZWVkIHRvCj4gaW1wcm92ZSBJVHMgYW5kIGRvY3VtZW50YXRpb24uCj49MjAKPiBTaW5jZSB3ZSBuZWVkIHRvIG1ha2UgYSBuZXcgcmVsZWFzZSBhbnl3YXkgSSB3b3VsZCBsaWtlIHRvIHN1Z2dlc3QgdG8gZ28KPiBmb3IgdGhlIGZpcnN0IG9wdGlvbiwgYmVjYXVzZSBzb21lIGNsYWltIDMuNS4wIGlzIGNvcnJ1cHQgYW5kIHRoZSByZWxhdGVkCj4gaXNzdWUgaXMgYWxyZWFkeSBmaXhlZCBmb3IgcXVpdGUgc29tZSB0aW1lLgorMSAoc2FkbHkpCgpSZWdhcmRzLAoKSGVydj1DMz1BOQoKPiBUaGlzIHNob3VsZCBnaXZlIHVzIG1vcmUgdGltZSBoYXZlIGEgYmV0dGVyIGxvb2sgYXQgdGhlc2UgY2xhc3Nsb2FkZXIKPiBpc3N1ZXMuCj49MjAKPiBSb2JlcnQKPj0yMAo+IE9uIFdlZCwgMTEgT2N0IDIwMTcgMDk6NDY6MjUgKzAyMDAsIFN0ZXBoZW4gQ29ubm9sbHkKPj0yMAo+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+IEk9RTI9ODA9OTlkIHJlYWxseSBsaWtlIGlmIHNvbWVib2R5IGNvdWxkIGRyYWZ0IHRoZSByZWxlYXNlIG5vdGVzIGZvciB0PQpoZSB0d28KPiA+IGRpZmZlcmVudCBjbGFzc2xvYWRlciBjaGFuZ2VzLiBJdCB3aWxsIG1ha2UgaXQgZWFzaWVyIHRvIGRlY2lkZSB3aGV0aGVyCj4gPiB0bwo+ID4gcm9sbCB3aXRoIHRoaXMgb3IgYnVtcCBtaW5vciB3aXRoIChpZiBJIHJlY2FsbCBjb3JyZWN0bHkpIHRoZQo+ID4gY29ycmVzcG9uZGluZwo+ID4gZHJvcCBvZiBKYXZhIDcgcGVyIG91ciBwb2xpY3kgb24gSlZNcyB3aXRoIG1pbm9yIHZlcnNpb24gYnVtcAo+ID49MjAKPiA+IE9uIFdlZCAxMSBPY3QgMjAxNyBhdCAwNzozMywgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+PQogd3JvdGU6Cj4gPj4gKzEKPiA+PiBldmVudHVhbGx5IGFkZGluZyBhIGZsYWcgb3Igc3lzdGVtIHByb3BlcnR5IHRvIGFjdGl2YXRlIHRoZSBuZXcKPiA+PiBiZWhhdmlvdXIKPiA+Pj0yMAo+ID4+IHRoaXMgcmVtZW1iZXJzIG1lIG9mIHRoZSBpZGVhIHJlZ2FyZGluZyBmbGFncyB0byBzdXBwb3J0IG5ldyBiZXRhCj4gPj4gZmVhdHVyZXMKPiA+Pj0yMAo+ID4+IFJlZ2FyZHMsCj4gPj49MjAKPiA+PiBIZXJ2PUMzPUE5Cj4gPj49MjAKPiA+PiBMZSBtZXJjcmVkaSAxMSBvY3RvYnJlIDIwMTcsIDA4OjEzOjEzIENFU1QgQW5kZXJzIEhhbW1hciBhID1DMz1BOWNyaXQgOgo+ID4+ID4gSSdtIGZlZWxpbmcgc3Ryb25nZXIgYW5kIHN0cm9uZ2VyIGFib3V0IG5vdCBoYXZpbmcgdGhpcyBjaGFuZ2UgaW4gYQo+ID4+PTIwCj4gPj4gYnVnZml4Cj4gPj49MjAKPiA+PiA+IHJlbGVhc2UuIFdoeSBub3QgZ28gZm9yIHYzLjYuMCBpZiB3ZSBkZWNpZGUgdGhhdCB0aGUgY2xhc3MgbG9hZGluZwo+ID4+PTIwCj4gPj4gY2hhbmdlCj4gPj49MjAKPiA+PiA+IGlzIHRoZSB3YXkgdG8gZ28/IEFuZCBrZWVwIGJ1Z2ZpeCByZWxlYXNlcyBmb3IganVzdCBidWdmaXhlcy4KPiA+PiA+PTIwCj4gPj4gPiAvQW5kZXJzCj4gPj4gPj0yMAo+ID4+ID4gT24gV2VkLCBPY3QgMTEsIDIwMTcgYXQgMzo0MyBBTSwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGY9CnJlZS5mcj4KPiA+PiA+PTIwCj4gPj4gPiB3cm90ZToKPiA+PiA+ID4gcGVyaGFwcyB3ZSBzaG91bGQgY3JlYXRlIGEgV2lraSBwYWdlIGZvcgo+ID4+PTIwCj4gPj4gamF2YS5sYW5nLkNsYXNzTm90Rm91bmRFeGNlcHRpb24KPiA+Pj0yMAo+ID4+ID4gPiBhbmQKPiA+PiA+ID4gbGlzdCB0aGUgcGx1Z2lucyB3aXRoIGtub3duIGlzc3VlcyBhbmQgbWluaW11bSBmaXhlZCB2ZXJzaW9uCj4gPj4gPiA+PTIwCj4gPj4gPiA+IHRvIGJlIGFkZGVkIGluCj4gPj49MjAKPiA+PiBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL0Vycm9ycythbmQrU29sdXRpb25zCj4gPj49MjAKPiA+PiA+ID4gUmVnYXJkcywKPiA+PiA+ID49MjAKPiA+PiA+ID4gSGVydj1DMz1BOQo+ID4+ID4gPj0yMAo+ID4+ID4gPiBMZSBtZXJjcmVkaSAxMSBvY3RvYnJlIDIwMTcsIDAyOjUyOjUzIENFU1QgSGVydj1DMz1BOSBCT1VURU1ZIGEgPQo9QzM9QTljcml0IDoKPiA+PiA+ID4gPiBJSVVDLCBpdCdzIE1ERVBMT1ktMjIxIGFib3V0Cj4gPj49MjAKPiA+PiBuZXQuZmxleG1vam9zLm9zczpmbGV4bW9qb3MtbWF2ZW4tcGx1Z2luCj4gPj49MjAKPiA+PiA+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ERVBMT1ktMjIxCj4gPj4gPiA+ID49MjAKPiA+PiA+ID4gPiBSZWdhcmRzLAo+ID4+ID4gPiA+PTIwCj4gPj4gPiA+ID4gSGVydj1DMz1BOQo+ID4+ID4gPiA+PTIwCj4gPj4gPiA+ID4gTGUgbWFyZGkgMTAgb2N0b2JyZSAyMDE3LCAyMDo0ODoxMyBDRVNUIFJvYmVydCBTY2hvbHRlIGEgPUMzPUE5Yz0Kcml0IDoKPiA+PiA+ID4gPiA+IEZZSSwgTURFUExPWS0xMjEgbWVudGlvbnMgYW5vdGhlciBwbHVnaW4gYmVpbmcgaGl0IGJ5IHRoZQo+ID4+PTIwCj4gPj4gY2xhc3Nsb2FkZXIKPiA+Pj0yMAo+ID4+ID4gPiA+ID4gY2hhbmdlcy4KPiA+PiA+ID4gPiA+PTIwCj4gPj4gPiA+ID4gPiBSb2JlcnQKPiA+PiA+ID4gPiA+PTIwCj4gPj4gPiA+ID4gPj0yMAo+ID4+ID4gPiA+ID4gT24gVHVlLCAwMyBPY3QgMjAxNyAyMDoyMjoxOCArMDIwMCwgQXJuYXVkIEg9QzM9QTlyaXRpZXIgPAo+ID4+ID4gPj0yMAo+ID4+ID4gPiBhaGVyaXRpZXJAZ21haWwuY29tPgo+ID4+ID4gPj0yMAo+ID4+ID4gPiA+ID4gd3JvdGU6Cj4gPj4gPiA+ID4gPiA+IFRoYW5rcyBTdGVwaGVuCj4gPj4gPiA+ID4gPiA+PTIwCj4gPj4gPiA+ID4gPiA+IE9uIFR1ZSwgT2N0IDMsIDIwMTcgYXQgODoxOCBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPj4gPiA+ID4gPiA+PTIwCj4gPj4gPiA+ID4gPiA+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4+ID4gPiA+ID4gPj4gSSBhbSBob3BpbmcgSSBjYW4gZmluZCBzb21lIHRpbWUgdG8gZG8gYSBmaW5hbCByb3VuZCBvZgo+ID4+PTIwCj4gPj4gZXhwZXJpbWVudHMKPiA+Pj0yMAo+ID4+ID4gPiBhbmQKPiA+PiA+ID49MjAKPiA+PiA+ID4gPiA+ID4+IHRoZW4gY2xvc2UgdGhlIHZvdGUgd2l0aCBzdWNjZXNzIGFuZCBwdWJsaXNoLgo+ID4+ID4gPiA+ID4gPj49MjAKPiA+PiA+ID4gPiA+ID4+IE9uIFR1ZSAzIE9jdCAyMDE3IGF0IDExOjEzLCBBcm5hdWQgSD1DMz1BOXJpdGllciA8Cj4gPj49MjAKPiA+PiBhaGVyaXRpZXJAZ21haWwuY29tPgo+ID4+PTIwCj4gPj4gPiA+IHdyb3RlOgo+ID4+ID4gPiA+ID4gPj4gPiBAU3RlcGhlbiBXaGF0IHNob3VsZCB3ZSBkbyBub3cgPwo+ID4+ID4gPiA+ID4gPj4gPj0yMAo+ID4+ID4gPiA+ID4gPj4gPj0yMAo+ID4+ID4gPiA+ID4gPj4gPiBPbiBUdWUsIFNlcCAxOSwgMjAxNyBhdCAzOjE0IEFNLCBPbGl2aWVyIExhbXkgPAo+ID4+PTIwCj4gPj4gb2xhbXlAYXBhY2hlLm9yZz4KPiA+Pj0yMAo+ID4+ID4gPiA+ID4gPj4gd3JvdGU6Cj4gPj4gPiA+ID4gPiA+PiA+PiBIaQo+ID4+ID4gPiA+ID4gPj4gPj4gU29ycnkgYSBiaXQgb3V0IG9mIHRpbWUgQVRNIGZvciB0ZXN0aW5nIHRoaXMuCj4gPj4gPiA+ID4gPiA+PiA+PiBXZWxsIEkgdHJ1c3QgQXJuYXVkIHRlc3RpbmcgdGhhdCBlc3BlY2lhbGx5IGlmIHRoaXMKPiA+Pj0yMAo+ID4+IGltcHJvdmUKPiA+PiB0aGUKPiA+Pj0yMAo+ID4+ID4gPiA+ID4gPj4gPj4gcGVyZm9ybWFuY2UKPiA+PiA+ID4gPiA+ID4+ID4+IG9mIHRoaXMgdmVyeSBncmVhdC9hd2Vzb21lL3VzZXJzIG9yaWVudGVkIHBsdWdpbiA6UAo+ID4+ID4gPiA+ID4gPj4gPj49MjAKPiA+PiA+ID4gPiA+ID4+ID4+IE9uIDEzIFNlcHRlbWJlciAyMDE3IGF0IDIyOjE5LCBBcm5hdWQgSD1DMz1BOXJpdGllcgo+ID4+ID4gPiA+ID4gPj4gPj4gPGFoZXJpdGllckBhcGFjaGUub3JnPgo+ID4+ID4gPiA+ID4gPj4gPj49MjAKPiA+PiA+ID4gPiA+ID4+ID4+IHdyb3RlOgo+ID4+ID4gPiA+ID4gPj4gPj4gPiBEYW1uZWQsIGNhbid0IHdlIGJlIGFub255bW91cyBvbiBHaXRodWIgPwo+ID4+ID4gPiA+ID4gPj4gPj4gPiBJIG1haW50YWluIGl0IGlzIGEgYmlnIHdvcmQsIEknbSB0cnlpbmcgdG8gZml4IG1vcmUgYnU9CmdzCj4gPj49MjAKPiA+PiB0aGFuCj4gPj49MjAKPiA+PiA+ID4gPiA+ID4+ID4+ID4gSQo+ID4+ID4gPiA+ID4gPj4gPj4gPiBhZGQKPiA+PiA+ID4gPiA+ID4+PTIwCj4gPj4gPiA+ID4gPiA+PiBuZXcKPiA+PiA+ID4gPiA+ID4+PTIwCj4gPj4gPiA+ID4gPiA+PiA+PiA+IG9uZXMKPiA+PiA+ID4gPiA+ID4+ID4+ID4gSSBhZGRlZCBPbGVnIGluIHRoZSBsb29wIGFzIGhlIGNvbnRyaWJ1dGVkIGEgbG90IG9uIGl0Cj4gPj49MjAKPiA+PiB0b28KPiA+Pj0yMAo+ID4+ID4gPiA+ID4gPj4gPj4gPiBJIGRpZCBhIHF1aWNrIHRlc3QgdG8gYnVpbGQgb24gSmVua2lucyAyLjYwLjMgb3VyIG1hdmVuCj4gPj49MjAKPiA+PiBjb3JlCj4gPj49MjAKPiA+PiA+ID4gd2l0aAo+ID4+ID4gPj0yMAo+ID4+ID4gPiA+ID4gPj4gdGhlCj4gPj4gPiA+ID4gPiA+Pj0yMAo+ID4+ID4gPiA+ID4gPj4gPj4gRXZpbAo+ID4+ID4gPiA+ID4gPj4gPj49MjAKPiA+PiA+ID4gPiA+ID4+ID4+ID4gTWF2ZW4gcGx1Z2luIDIuMTcgb24gYSBsb2NhbCBTU0ggYWdlbnQgYW5kIGl0IGlzIG9rCj4gPj4gPiA+ID4gPiA+PiA+PiA+IEJ1dCBpdCBpcyByZWFsbHkgYSBxdWljayB0ZXN0IC4uLgo+ID4+ID4gPiA+ID4gPj4gPj4gPj0yMAo+ID4+ID4gPiA+ID4gPj4gPj4gPiBDaGVlcnMKPiA+PiA+ID4gPiA+ID4+ID4+ID49MjAKPiA+PiA+ID4gPiA+ID4+ID4+ID49MjAKPiA+PiA+ID4gPiA+ID4+ID4+ID49MjAKPiA+PiA+ID4gPiA+ID4+ID4+ID4gT24gV2VkLCBTZXAgMTMsIDIwMTcgYXQgMTA6MDcgQU0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4+ID4gPiA+ID4gPj4gPj4gPj0yMAo+ID4+ID4gPiA+ID4gPj4gPj4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+PiA+ID4gPiA+ID4+ID4+ID4gPiBPbiAxMyBTZXB0ZW1iZXIgMjAxNyBhdCAwMTowNSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPj4gPiA+ID4gPiA+PiA+PiA+ID49MjAKPiA+PiA+ID4gPiA+ID4+ID4+ID4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+PiA+ID4gPiA+ID4+ID4+ID4gPj4gT24gMTMgU2VwdGVtYmVyIDIwMTcgYXQgMDA6MjYsIEFuZGVycyBIYW1tYXIKPiA+PiA+ID4gPiA+ID4+ID4+ID4gPj4gPGFuZGVyc0BoYW1tYXIubmV0Pgo+ID4+ID4gPiA+ID4gPj4gPj49MjAKPiA+PiA+ID4gPiA+ID4+ID4+IHdyb3RlOgo+ID4+ID4gPiA+ID4gPj4gPj4gPiA+Pj4gT24gVHVlLCBTZXAgMTIsIDIwMTcgYXQgODo1NCBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPj4gPiA+ID4gPiA+PiA+PiA+ID4+Pj0yMAo+ID4+ID4gPiA+ID4gPj4gPj4gPiA+Pj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPj4gPiA+ID4gPiA+PiA+PiA+ID4+PiA+IEhhdmUgd2UgZ290IGFueSBmZWVkYmFjayBmcm9tIHRoZSBlbWJlZGRlcgo+ID4+PTIwCj4gPj4gaW50ZWdyYXRpb25zCj4gPj49MjAKPiA+PiA+ID4geWV0Pwo+ID4+ID4gPj0yMAo+ID4+ID4gPiA+ID4gPj4gPj4gPiA+Pj4gSSBoYXZlbid0IGhlYXJkIGFueXRoaW5nIGZyb20gdGhlIG0yZSBwZW9wbGUuIE1heWJlCj4gPj49MjAKPiA+PiB3ZQo+ID4+PTIwCj4gPj4gPiA+IG5lZWQgdG8KPiA+PiA+ID49MjAKPiA+PiA+ID4gPiA+ID4+IHBpbmcKPiA+PiA+ID4gPiA+ID4+PTIwCj4gPj4gPiA+ID4gPiA+PiA+PiA+IHRoZW0KPiA+PiA+ID4gPiA+ID4+ID4+ID49MjAKPiA+PiA+ID4gPiA+ID4+ID4+ID4gPj4+IGRpcmVjdGx5LiBJIGNhbiBjb250YWN0IEZyZWQgQnJpY29uLgo+ID4+ID4gPiA+ID4gPj4gPj4gPiA+Pj49MjAKPiA+PiA+ID4gPiA+ID4+ID4+ID4gPj4+IC9BbmRlcnMKPiA+PiA+ID4gPiA+ID4+ID4+ID4gPj49MjAKPiA+PiA+ID4gPiA+ID4+ID4+ID4gPj4gUGxlYXNlIGRvLCBhbHNvIGlmIGFueW9uZSBoYXMgYSBjb250YWN0IGluIG5ldGJlYW5zCj4gPj49MjAKPiA+PiBvcgo+ID4+PTIwCj4gPj4gPiA+IGludGVsbGlqCj4gPj4gPiA+PTIwCj4gPj4gPiA+ID4gPiA+PiBhbmQKPiA+PiA+ID4gPiA+ID4+PTIwCj4gPj4gPiA+ID4gPiA+PiA+PiA+IGNvdWxkCj4gPj4gPiA+ID4gPiA+PiA+PiA+PTIwCj4gPj4gPiA+ID4gPiA+PiA+PiA+ID4+IGxldCB0aGVtIGtub3cgd2UnZCBsaWtlIGVpdGhlciBmZWVkYmFjayBvciAid2UncmUgb2sKPiA+Pj0yMAo+ID4+IGlmCj4gPj49MjAKPiA+PiA+ID4gPiA+ID4+ID4+ID4gPj4gTU5HLTYyNzUKPiA+PiA+ID4gPiA+ID4+ID4+PTIwCj4gPj4gPiA+ID4gPiA+PiA+PiBtYWtlcwo+ID4+ID4gPiA+ID4gPj4gPj49MjAKPiA+PiA+ID4gPiA+ID4+ID4+ID4gPj4gdHJvdWJsZSBmb3IgdXMsIGdvIGFoZWFkIGFuZCByZWxlYXNlIi4gSSdkIGxpa2UgdG8KPiA+Pj0yMAo+ID4+IGNsb3NlCj4gPj49MjAKPiA+PiA+ID4gPiA+ID4+ID4+ID4gPj4gdGhlCj4gPj4gPiA+ID4gPiA+Pj0yMAo+ID4+ID4gPiA+ID4gPj4gdm90ZQo+ID4+ID4gPiA+ID4gPj4gb24KPiA+PiA+ID4gPiA+ID4+PTIwCj4gPj4gPiA+ID4gPiA+PiA+PiA+IEZyaWRheQo+ID4+ID4gPiA+ID4gPj4gPj4gPj0yMAo+ID4+ID4gPiA+ID4gPj4gPj4gPiA+PiAxMzowMCBVVEMuCj4gPj4gPiA+ID4gPiA+PiA+PiA+ID49MjAKPiA+PiA+ID4gPiA+ID4+ID4+ID4gPiBPbGl2aWVyIC8gQXJuYXVkLCBoYXZlIGVpdGhlciBvZiB5b3UgaGFkIGEgY2hhbmNlIHRvCj4gPj49MjAKPiA+PiB0ZXN0Cj4gPj49MjAKPiA+PiA+ID4gdGhpcwo+ID4+ID4gPj0yMAo+ID4+ID4gPiA+ID4gPj4gd2l0aAo+ID4+ID4gPiA+ID4gPj49MjAKPiA+PiA+ID4gPiA+ID4+ID4+IHRoZQo+ID4+ID4gPiA+ID4gPj4gPj49MjAKPiA+PiA+ID4gPiA+ID4+ID4+ID4gPiBldmlsIHByb2plY3QgdHlwZVsxXSBhcyB5b3UgdHdvIHNlZW0gdG8gYmUgdGhlIGFjdGl2ZQo+ID4+ID4gPiA+ID4gPj49MjAKPiA+PiA+ID4gPiA+ID4+IG1haW50YWluZXJzWzJdCj4gPj4gPiA+ID4gPiA+Pj0yMAo+ID4+ID4gPiA+ID4gPj4gPj4gPiA+IFsxXToKPiA+PiBodHRwczovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuaWUvMjAxMy8xMS9qZW5raW5zLT4KPiA+Pj0yMAo+ID4+ID4gPiA+ID4gPj4gPj4gPiA+ID4gbWF2ZW4tam9iLXR5cGUtY29uc2lkZXJlZC1ldmlsLmh0bWwgWzJdOgo+ID4+IGh0dHBzOi8vZ2l0aHViLmNvbS9qZW5raW5zY2kvbWF2ZW4tcGx1Z2luL2NvbW1pdHMvbWFzdGVyCj4gPj49MjAKPiA+PiA+ID4gPiA+ID4+ID4+ID4gLS0KPiA+PiA+ID4gPiA+ID4+ID4+ID49MjAKPiA+PiA+ID4gPiA+ID4+ID4+ID4gQXJuYXVkCj4gPj4gPiA+ID4gPiA+PiA+Pj0yMAo+ID4+ID4gPiA+ID4gPj4gPj4gLS0KPiA+PiA+ID4gPiA+ID4+ID4+IE9saXZpZXIgTGFteQo+ID4+ID4gPiA+ID4gPj4gPj4gaHR0cDovL3R3aXR0ZXIuY29tL29sYW15IHwgaHR0cDovL2xpbmtlZGluLmNvbS9pbi9vbGFteQo+ID4+ID4gPiA+ID4gPj4gPj0yMAo+ID4+ID4gPiA+ID4gPj4gPiAtLQo+ID4+ID4gPiA+ID4gPj4gPiAtLS0tLQo+ID4+ID4gPiA+ID4gPj4gPiBBcm5hdWQgSD1DMz1BOXJpdGllcgo+ID4+ID4gPiA+ID4gPj4gPiBodHRwOi8vYWhlcml0aWVyLm5ldAo+ID4+ID4gPiA+ID4gPj4gPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+ID4+ID4gPiA+ID4gPj4gPiBUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyCj4gPj4gPiA+ID4gPiA+Pj0yMAo+ID4+ID4gPiA+ID4gPj4gLS0KPiA+PiA+ID4gPiA+ID4+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4+PTIwCj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj49MjAKPiA+PiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj49MjAKPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+Pj0yMAo+ID4+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+PTIwCj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj49MjAKPiA+PiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+PTIwCj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj49MjAKPiA+PiAtLQo+ID49MjAKPiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+PTIwCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDgyMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgRGVjIDIyIDE0OjM1OjM1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDgyMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBGMTE5NjE3M0M0Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMjIgRGVjIDIwMTcgMTQ6MzU6MzUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyMjY0MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMiBEZWMgMjAxNyAxNDozNTozNSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjI1MzMgaW52b2tlZCBieSB1aWQgNTAwKTsgMjIgRGVjIDIwMTcgMTQ6MzU6MzUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMjUyMiBpbnZva2VkIGJ5IHVpZCA5OSk7IDIyIERlYyAyMDE3IDE0OjM1OjM1IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAyMiBEZWMgMjAxNyAxNDozNTozNSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEM2NzFCMTgwNzAxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAyMiBEZWMgMjAxNyAxNDozNTozNCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBNeUR6SWF4SmZOYWggZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglGcmksIDIyIERlYyAyMDE3IDE0OjM1OjMyICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAxMy5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEzNV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAyREIzOTVGNDZECglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAyMiBEZWMgMjAxNyAxNDozNTozMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ3NCB3aXRoIE1FCglpZCBwMmJYMXcwMDMyMFVmZHkwMzJiWHFoOyBGcmksIDIyIERlYyAyMDE3IDE1OjM1OjMxICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IEZyaSwgMjIgRGVjIDIwMTcgMTU6MzU6MzEgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogbWVyZ2luZyBNTkctNjMwOCBkaXNwbGF5IHBhY2thZ2luZwpEYXRlOiBGcmksIDIyIERlYyAyMDE3IDE1OjM1OjMwICswMTAwCk1lc3NhZ2UtSUQ6IDwzNzMxMjg4LklHMEdseDdlY2pAZ2lnYT4KSW4tUmVwbHktVG86IDxvcC56Ym05cWF6amtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KUmVmZXJlbmNlczogPDI3NTMwNDAuOFMxNXNsajdaNUBnaWdhPiA8MjM5OTk5MS5jU2FIVkJ6QXpiQGdpZ2E+IDxvcC56Ym05cWF6amtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKYXMgZGlzY3Vzc2VkIG9uIElSQywgc3BsaXQgaW5mb3JtYXRpb24gaW4gMiBzZXBhcmF0ZSBwYXJ0czoKPTJEIHByb2plY3QgZ3JvdXBJZCArIGFydGlmYWN0SWQgY29vcmRpbmF0ZXMgaW4gaGVhZGVyCj0yRCBwYWNrYWdpbmcgaW4gZm9vdGVyIChub3QgcGFydCBvZiBjb29yZGluYXRlcykKCnRvIG1lLCB0aGUgcmVzdWx0IGlzIG5vdyBvayB0byBtZXJnZSAoYWZ0ZXIgc3F1YXNoaW5nLi4uKQoKbm8gb2JqZWN0aW9uIGZyb20gYW55Ym9keT8KClJlZ2FyZHMsCgpIZXJ2PUMzPUE5CgpMZSB2ZW5kcmVkaSAyMiBkPUMzPUE5Y2VtYnJlIDIwMTcsIDExOjUwOjI0IENFVCBSb2JlcnQgU2Nob2x0ZSBhID1DMz1BOWNyaXQ9CiA6Cj4gTm93IE1ORy02MzA4IGxvb2tzIGZpbmUgdG8gbWUuIElmIHlvdSBhZ3JlZSB5b3UgY2FuIG1lcmdlIGl0Lgo+PTIwCj4gUm9iZXJ0Cj49MjAKPiBPbiBTdW4sIDEwIERlYyAyMDE3IDIwOjQ2OjM4ICswMTAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlPQplLmZyPgo+PTIwCj4gd3JvdGU6Cj4gPiBMZSBkaW1hbmNoZSAxMCBkPUMzPUE5Y2VtYnJlIDIwMTcsIDE5OjI2OjUzIENFVCBSb2JlcnQgU2Nob2x0ZSBhID1DMz1BOT0KY3JpdCA6Cj4gPj4gT24gU3VuLCAxMCBEZWMgMjAxNyAxODozODo1NSArMDEwMCwgU3RlcGhlbiBDb25ub2xseQo+ID4+PTIwCj4gPj4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4+ID4gT24gU3VuIDEwIERlYyAyMDE3IGF0IDE3OjEyLCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Cj4gPj49MjAKPiA+PiB3cm90ZToKPiA+PiA+PiBPbiBTdW4sIDEwIERlYyAyMDE3IDE3OjQ2OjEwICswMTAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkKPiA+PiA+PiA8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID4+ID4+PTIwCj4gPj4gPj4gd3JvdGU6Cj4gPj4gPj4gPiBMZSBkaW1hbmNoZSAxMCBkPUMzPUE5Y2VtYnJlIDIwMTcsIDExOjA2OjMyIENFVCBSb2JlcnQgU2Nob2x0ZSBhID0KPUMzPUE5Y3JpdCA6Cj4gPj4gPj4gPj4gSSBzdGlsbCB0aGluayBpdCBpcyB1Z2x5IHRvIHVzZSB0aGUgSFIgZm9yIHRoaXMga2luZCBvZiBpbmZvLgo+ID4+ID4+ID4+IElmIHlvdSAqcmVhbGx5KiB3YW50IHRoaXMgaW5mbywgSSdkIHByZWZlciBhIG5ldyBsaW5lLCBvZmZlcmluZwo+ID4+PTIwCj4gPj4gbW9yZQo+ID4+PTIwCj4gPj4gPj4gPj4gc3BhY2UKPiA+PiA+PiA+PiBmb3IgYWRkaXRpb25hbCBpbmZvLgo+ID4+ID4+ID49MjAKPiA+PiA+PiA+IHllcywgSSAqcmVhbGx5KiB3YW50IHRoaXMgaW5mbzogdGhlIHByZWNpc2UgZGV0YWlscyBvbiBob3cgdG8KPiA+Pj0yMAo+ID4+IGRpc3BsYXkKPiA+Pj0yMAo+ID4+ID4+IGl0Cj4gPj4gPj49MjAKPiA+PiA+PiA+IGlzCj4gPj4gPj4gPiBsZXNzIGltcG9ydGFudAo+ID4+ID4+ID49MjAKPiA+PiA+PiA+PiBPdGhlciBvcHRpb24gaXMgdG8gbGVhdmUgaXQgYXMgaXQgaXMuIElmIGRldmVsb3BlcnMgd2FudCBpdCwgdGhleQo+ID4+PTIwCj4gPj4gY2FuCj4gPj49MjAKPiA+PiA+PiA+PiBwdXQKPiA+PiA+PiA+PiBpdCBpbiB0aGUgbmFtZS4KPiA+PiA+PiA+PTIwCj4gPj4gPj4gPiB0aGUgaWRlYSBpcyB0aGF0ICR7cHJvamVjdC5wYWNrYWdpbmd9IGRyaXZlcyB0aGUgZGVmYXVsdCBidWlsZCwKPiA+Pj0yMAo+ID4+IGJlZm9yZQo+ID4+PTIwCj4gPj4gPj4gPiBhZGRpdGlvbmFsIHBsdWdpbnMgYmluZGluZ3M6IGl0J3MgdXNlZnVsIHRvIGRpc3BsYXkgaXQgYXMgaXQgaXMgYQo+ID4+PTIwCj4gPj4ga2V5Cj4gPj49MjAKPiA+PiA+PiA+IGluZm8KPiA+PiA+PiA+PTIwCj4gPj4gPj4gPj4gU28gLTEgZm9yIG1lLgo+ID4+ID4+ID49MjAKPiA+PiA+PiA+IGhvdyBkbyB5b3Ugd2FudCB0byBwcm9jZWVkIHRvIGNob29zZSB0aGUgYmVzdCBkaXNwbGF5Pwo+ID4+ID4+PTIwCj4gPj4gPj4gSXMgaXQgYWNjZXB0YWJsZSB0byBhZGQgaXQgdG8gdGhlICJSZWFjdG9yIEJ1aWxkIE9yZGVyIj8gSXQgaGFzCj4gPj49MjAKPiA+PiBlbm91Z2gKPiA+Pj0yMAo+ID4+ID4+IHNwYWNlIGZvciB0aGlzIGtpbmQgb2YgaW5mb3JtYXRpb24uCj4gPj4gPj0yMAo+ID4+ID4gST1FMj04MD05OWQgbGlrZSBpdCBpbiBib3RoIHBsYWNlcy4gOy0pCj4gPj0yMAo+ID4gKzEKPiA+IGlmIHdlIGhhdmUgaW5mbyBvbmx5IG9uICJSZWFjdG9yIEJ1aWxkIE9yZGVyIiwgSSBzZWUgb25lIG1pc3NpbmcgY2FzZToKPiA+IHdoZW4KPiA+IGl0J3MgYSBzaW1wbGUgbW9kdWxlIGJ1aWxkLCB3aXRob3V0IHJlYWN0b3IKPiA+PTIwCj4gPj4gU2VlbXMgbGlrZSBJJ20gb25lIG9mIHRoZSBmZXcgd2hvIGRvZXNuJ3QgdW5kZXJzdGFuZCB3aGF0IHRoaXMgaW5mbwo+ID4+IGFkZHMuCj4gPj4gSWYgaXQgc2F5cyBwb20sIGl0J2xsIHJ1biAqYXQgbGVhc3QqIHRoZSBtLWluc3RhbGwtcCBhbmQgbS1kZXBsb3ktcC4KPiA+PiBJZiBJIG9ubHkgc2VlIHRoZSBtLWluc3RhbGwtcCBhbmQgbS1kZXBsb3ktcCBiZWluZyBleGVjdXRlZCwgaXQgbXVzdCBiZQo+ID4+IGEKPiA+PiBwb20uCj4gPj4gSW4gZ2VuZXJhbCBJIGNhbiBzZWUgYnkgdGhlIG5hbWUgd2hhdCB3aWxsIGhhcHBlbi4KPiA+Pj0yMAo+ID4+IElmIHdlJ3JlIGRpc2N1c3NpbmcgbW9kdWxlICJoZWFkZXIiIGluZm9ybWF0aW9uOgo+ID4+IFdoYXQgSSBhbSBtaXNzaW5nIGlzIGEgdGltZXN0YW1wIHdoZW4gdGhlIG1vZHVsZSBzdGFydGVkLgo+ID4+IFJlYXNvbjogaW4gY2FzZSBvZiBhIGxvbmcgYnVpbGQgSSB3b3VsZCBsaWtlIHRvIGJlIGFibGUgdG8gZXN0aW1hdGUgaWYKPiA+PiB0aGUKPiA+PiBidWlsZCBpcyBzdGlsbCBhY3RpdmUgb3IgaGFuZ2luZy4KPiA+PTIwCj4gPiBvbiB0aGlzIHJlcXVpcmVtZW50LCBJJ2QgbW9yZSBhZGQgc29tZSB0aW1lciAic2luY2UgdGhlIGxhc3QgbG9nIiB0aGFuIGEKPiA+IHRpbWVzdGFtcCBvbiBlYWNoIGxpbmUKPiA+PTIwCj4gPj4gQWxzbyBpbiBzb21lIGNhc2VzIEkgd291bGQgbGlrZSB0byBzZWUgR0FWIGluc3RlYWQgb2YgdGhlIG5hbWUsIGJlY2F1c2UKPiA+PiB0aGF0IGNhbiBoZWxwIGludmVzdGlnYXRpbmcgaW4gY2FzZSBvZiBhIG11bHRpbW9kdWxlIHByb2plY3Qgd2hlbiB0aGVyZQo+ID4+IGFyZSBpc3N1ZXMgd2l0aCBzb21lIGRlcGVuZGVuY3kgKD0zREdBVikuCj4gPj0yMAo+ID4gZGVwZW5kZW5jeSBiZXR3ZWVuIG1vZHVsZXMgaW4gdGhlIHJlYWN0b3I/IEkgZG9uJ3QgcmVhbGx5IHVuZGVyc3RhbmQKPiA+IEJ1dCBmb3IgdGhpcywgd2UgYWxyZWFkeSBoYXZlICJAIGFydGlmYWN0SWQiIG9uIGVhY2ggZ29hbCBzdGFydCwgYW5kCj4gPiB2ZXJzaW9uCj4gPiBpbiB0aGUgIkJ1aWxkaW5nIiBtZXNzYWdlOiBncm91cElkLCBmb3IgdGhlIHJlYWN0b3IsIEkgZG9uJ3Qgc2VlIHRoZSBuZT0KZWQKPiA+PTIwCj4gPj4gU28gdGhlcmUncyBlbm91Z2ggdG8gdGhpbmsgb2YgdG8gZmlsbCBhbiBleHRyYSByb3cgOykKPiA+PTIwCj4gPiBzb3JyeSwgSSBkb24ndCB0aGluayB3ZSdsbCBmaWxsIGEgcm93IHdpdGggcmVhbGx5IHVzZWZ1bCBhZGRpdGlvbmFsIGluZm8KPiA+PTIwCj4gPiBhbnkgb3RoZXIgb3Bpbmlvbj8KPiA+PTIwCj4gPiBSZWdhcmRzLAo+ID49MjAKPiA+IEhlcnY9QzM9QTkKPiA+PTIwCj4gPj4gPj4gPiBSZWdhcmRzLAo+ID4+ID4+ID49MjAKPiA+PiA+PiA+IEhlcnY9QzM9QTkKPiA+PiA+PiA+PTIwCj4gPj4gPj4gPj4gUm9iZXJ0Cj4gPj4gPj4gPj49MjAKPiA+PiA+PiA+Pj0yMAo+ID4+ID4+ID4+IE9uIFN1biwgMTAgRGVjIDIwMTcgMTE6MDE6NDEgKzAxMDAsIEhlcnY9QzM9QTkgQk9VVEVNWQo+ID4+ID4+ID4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPj4gPj4gPj49MjAKPiA+PiA+PiA+PiB3cm90ZToKPiA+PiA+PiA+PiA+IGlzIHRoZXJlIGEgc2Vjb25kZXIgZm9yIHRoaXMgZW5oYW5jZW1lbnQ/Cj4gPj49MjAKPiA+PiA+PiA+PiA+IENJOgo+ID4+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tMy54LWplbmtpbnNmaWw9CmUvCj4gPj49MjAKPiA+PiA+PiA+PiA+IGpvYi9NTkctNjMwOF9kaXNwbGF5X3BhY2thZ2luZy8KPiA+PiA+PiA+PiA+PTIwCj4gPj4gPj4gPj4gPiBKaXJhIGlzc3VlOiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MzA4Cj4gPj4gPj4gPj4gPj0yMAo+ID4+ID4+ID4+ID4gUmVnYXJkcywKPiA+PiA+PiA+PiA+PTIwCj4gPj4gPj4gPj4gPiBIZXJ2PUMzPUE5Cj4gPj4gPj49MjAKPiA+PiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQo9MkQtCj4gPj4gPj49MjAKPiA+PiA+PiA+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPj4gPj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj49MjAKPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+Pj0yMAo+ID4+ID4+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPj4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+PTIwCj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj49MjAKPiA+PiA+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPj49MjAKPiA+PiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQo9MkQtCj4gPj4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPj49MjAKPiA+PiA+PiAtLQo+ID4+ID49MjAKPiA+PiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4+PTIwCj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj0yMAo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PTIwCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDU4NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgTm92IDIzIDIzOjA2OjMwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDU4NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBEODFFRTE3Qjk5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjMgTm92IDIwMTcgMjM6MDY6MzAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0MjE5MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMyBOb3YgMjAxNyAyMzowNjozMCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDIwODkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjMgTm92IDIwMTcgMjM6MDY6MzAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0MjA3NCBpbnZva2VkIGJ5IHVpZCA5OSk7IDIzIE5vdiAyMDE3IDIzOjA2OjMwIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyMyBOb3YgMjAxNyAyMzowNjozMCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDVENzExMUEwRTY0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyMyBOb3YgMjAxNyAyMzowNjoyOSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIG5kTTloRHZoSnh6MiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVRodSwgMjMgTm92IDIwMTcgMjM6MDY6MjggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDAxLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTIzXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDc3MkYwNUZBQzUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDIzIE5vdiAyMDE3IDIzOjA2OjI3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDM2IHdpdGggTUUKCWlkIGRiNkwxdzAwQTIwVWZkeTAzYjZMeHY7IEZyaSwgMjQgTm92IDIwMTcgMDA6MDY6MjAgKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogRnJpLCAyNCBOb3YgMjAxNyAwMDowNjoyMCArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBNYXZlbiByZXNvbHZlciBicmFuY2ggY29uc29saWRhdGlvbgpEYXRlOiBGcmksIDI0IE5vdiAyMDE3IDAwOjA2OjIwICswMTAwCk1lc3NhZ2UtSUQ6IDwzNzczMzgwLk5rTU85Ym80MnJAZ2lnYT4KSW4tUmVwbHktVG86IDxDQStuUG5NeVdacXA2TnJfaGhEM1k3YVdvTnVVdlhZPUJNUXFYcU84V3pkUGNfcnNpOVFAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDwyMDE3MTEwOTA1MzU1MS45NTdENDI5QzUwRDFAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPiA8MjAxNzExMjMxNjEzNDUuNUNBMTgyOUMwNkY3QGRkMTczMzIua2Fzc2VydmVyLmNvbT4gPENBK25Qbk15V1pxcDZOcl9oaEQzWTdhV29OdVV2WFk9Qk1RcVhxTzhXemRQY19yc2k5UUBtYWlsLmdtYWlsLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgp5ZXMsIHRoYXQncyBHaXRCb3ggc2VsZiBzZXJ2aWNlIFsxXSwgZWFzeSB0byB1c2UsIGp1c3Q6CjEuIHN0YXJ0IGJ5IGNob29zaW5nIHlvdXIgUE1DIGJlZm9yZSBkb2luZyBhbnkgb3RoZXIgY2hhbmdlIChvciB5b3UgbWF5IGNyZT0KYXRlPTIwCmEgIm1hdmVuLW1hdmVuLXNvbWV0aGluZy5naXQiIGxpa2UgSSBkaWQpCjIuIGNoYW5nZSAiR2l0SHViIG5vdGlmaWNhdGlvbiBsaXN0IiB0byBpc3N1ZXNAbWF2ZW4uYXBhY2hlLm9yZwoKdGhlIG9ubHkgaXNzdWUgSSBzZWUgaXMgdGhlIG1peCBvZiBBcnRpZmFjdCBSZXNvbHZlciBvbiBnaXQtd2lwIGFuZCBBcnRpZmFjPQp0PTIwClJlc29sdmVyIEFudCBUYXNrcyBvbiBnaXRib3g6IGJ1dCBvbmUgZGF5LCBJTkZSQS0xNTQzNiB3aWxsIHByb2JhYmx5IGJlIGRvbmUKClJlZ2FyZHMsCgpIZXJ2PUU5CgpbMV0gaHR0cHM6Ly9naXRib3guYXBhY2hlLm9yZy8KCkxlIGpldWRpIDIzIG5vdmVtYnJlIDIwMTcsIDE5OjI3OjA2IENFVCBTdGVwaGVuIENvbm5vbGx5IGEgPUU5Y3JpdCA6Cj4gSGVydj1FOSBtaWdodCBrbm93Li4uIGNvdWxkIGJlIHNlbGYtc2VydmljZSBvbiBnaXRib3ghCj49MjAKPiBJIGhhdmUgdHdvIHJlcG9zIHRvIGNyZWF0ZSBhZnRlciB0aGUgSmVua2lucyBTZXJ2ZXIgaXMgdXBncmFkZWQgb24gU3VuZGF5LAo+IHNvIGxldCBtZSBrbm93IHRoZSBwcm9jZXNzCj49MjAKPiBPbiBUaHUgMjMgTm92IDIwMTcgYXQgMTY6MTMsIE1hbmZyZWQgTW9zZXIgPG1hbmZyZWRAc2ltcGxpZ2lsaXR5LmNvbT4gd3JvPQp0ZToKPiA+IFNvIGhvdyBkbyBJIG1ha2UgdGhpcyByZXBvIGNvcHkgaGFwcGVuPyBBbiBpbmZyYSB0aWNrZXQgb3Igc29tZXRoaW5nIGxpPQprZQo+ID4gdGhhdD8KPiA+PTIwCj4gPiBTdGVwaGVuIENvbm5vbGx5IHdyb3RlIG9uIDIwMTctMTEtMjIgMjM6NTM6Cj4gPiA+IE9uIFRodSAyMyBOb3YgMjAxNyBhdCAwNDoyMCwgTWFuZnJlZCBNb3NlciA8bWFuZnJlZEBzaW1wbGlnaWxpdHkuY29tPgo+ID49MjAKPiA+IHdyb3RlOgo+ID4gPj4gU3RhdHVzIHVwZGF0ZSBhbmQgcXVlc3Rpb25zOgo+ID4gPj49MjAKPiA+ID4+IC0gZGVtb3MgYXJlIGFsbCBub3cgaW4gbWFzdGVyIGFuZCBwYXJ0IG9mIHRoZSBtdWx0aSBtb2R1bGUgYnVpbGQKPiA+ID4+IC0gbm8gY2hhbmdlcyBvbiB0aGUgYW50IHRhc2tzIGZvciBub3cKPiA+ID4+PTIwCj4gPiA+PiBRdWVzdGlvbnM6Cj4gPiA+Pj0yMAo+ID4gPj4gMS4gQ2FuIEkgZGVsZXRlIHRoZSBkZW1vcyBicmFuY2ggbm93IG9yIGRvIHdlIHdhaXQgdW50aWwgbmV4dCByZWxlYXM9CmU/Cj4gPiA+PiBJCj4gPiA+PiB3b3VsZCBwcmVmZXIgdG8gZGVsZXRlIHRoZSBicmFuY2ggYW5kIGNsb3NlIHRoZSB0aWNrZXQgdG8gYmUgaG9uZXN0Lgo+ID4gPj49MjAKPiA+ID4+IDIuIEkgbGlrZSB0aGUgaWRlYSBvZiBwcm9tb3RpbmcgdGhlIGFudCB0YXNrIGZyb20gYmVpbmcgaGlkZGVuIGluIHRoZQo+ID4gPj4gYnJhbmNoIGludG8gdGhlaXIgb3duIHJlcG8uIEFsbCB3ZSB3b3VsZCBoYXZlIHRvIGRvIGlzIHRvIGNvcHkgdGhlCj4gPj0yMAo+ID4gZXhpc3RpbmcKPiA+PTIwCj4gPiA+PiByZXBvIHNvbWVob3cgaW50byBhIG5ldyByZXBvIGluIGFwYWNoZSBnaXQuIFRoZW4gd2UgY2FuIGREZWxldGUgYWxsID0KdGhlCj4gPiA+PiBicmFuY2hlcyBhcGFydCBmcm9tIHRoZSBhbnQtdGFzayBicmFuY2ggYW5kIG1ha2UgdGhhdCB0aGUgbWFzdGVyLiBEbz0KbmUuCj4gPj0yMAo+ID4gSQo+ID49MjAKPiA+ID4+IGFtIGhhcHB5IHRvIGRvIHRoYXQgaW4gdGVybXMgb2YgdGhlIGJyYW5jaGVzIGFuZCBzbyBvbiBidXQgaG93IGRvIEkgPQpnbwo+ID4gPj4gYWJvdXQgZ2V0dGluZyB0aGUgcmVwbyBjb3BpZWQgaW50byBhIG5ldyByZXBvIG5hbWVkCj4gPiA+PiBtYXZlbi1yZXNvbHZlci1hbnQtdGFza3M/Cj4gPiA+PTIwCj4gPiA+IEkgbGlrZSB0aGF0IHNvbHV0aW9uIHRvbwo+ID4gPj0yMAo+ID4gPj4gVGhhbmtzCj4gPiA+Pj0yMAo+ID4gPj4gTWFuZnJlZAo+ID4gPj49MjAKPiA+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+PTIwCj4gPiA+PiAtLQo+ID4gPj0yMAo+ID4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj0yMAo+ID4gLS0KPj0yMAo+IFNlbnQgZnJvbSBteSBwaG9uZQoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4MDYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IERlYyAyMSAwODozMDo0MCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4MDYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQzM2M0ExMEQ5OQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDIxIERlYyAyMDE3IDA4OjMwOjQwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzMyNDcgaW52b2tlZCBieSB1aWQgNTAwKTsgMjEgRGVjIDIwMTcgMDg6MzA6NDAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDczMTY1IGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIERlYyAyMDE3IDA4OjMwOjQwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzMxNDMgaW52b2tlZCBieSB1aWQgOTkpOyAyMSBEZWMgMjAxNyAwODozMDozOSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMjEgRGVjIDIwMTcgMDg6MzA6MzkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA2MTJFQjE4MEExMgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjEgRGVjIDIwMTcgMDg6MzA6MzkgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC44ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjVdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIE1hSzFPaXVzOEN2QSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVRodSwgMjEgRGVjIDIwMTcgMDg6MzA6MzcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDA5LnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTMxXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIERFMTAyNUYzOUMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDIxIERlYyAyMDE3IDA4OjMwOjM2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDg1IHdpdGggTUUKCWlkIG9ZV2IxdzAwZTIwVWZkeTAzWVdjdGk7IFRodSwgMjEgRGVjIDIwMTcgMDk6MzA6MzYgKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogVGh1LCAyMSBEZWMgMjAxNyAwOTozMDozNiArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gRG94aWEgdmVyc2lvbiAxLjgKRGF0ZTogVGh1LCAyMSBEZWMgMjAxNyAwOTozMDozNSArMDEwMApNZXNzYWdlLUlEOiA8Mzc5NjMyOC5IM1dpOXJoSjdFQGdpZ2E+CkluLVJlcGx5LVRvOiA8NTY1Nzk0My5oWW8yTW9tUVdIQGdpZ2E+ClJlZmVyZW5jZXM6IDw1NjU3OTQzLmhZbzJNb21RV0hAZ2lnYT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpvbmUgdm90ZSBzdGlsbCBtaXNzaW5nLi4uCgpSZWdhcmRzLAoKSGVydj1FOQoKTGUgZGltYW5jaGUgMTcgZD1FOWNlbWJyZSAyMDE3LCAxNzozNjo1MyBDRVQgSGVydj1FOSBCT1VURU1ZIGEgPUU5Y3JpdCA6Cj4gSGksCj49MjAKPiBXZSBzb2x2ZWQgMTkgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiBwcm9qZWN0SWQ9M0QxMjMxNzIzMCZ2ZXJzaW9uPTNEMTIzMzQ4NDcmc3R5bGVOYW1lPTNEVGV4dAo+PTIwCj4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUzRCUyMERPWElBJTIwQU5ECj4gJTIwc3RhdHVzJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDCj49MjAKPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM4My8KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzgzL29yZy9hcGFjaGUvCj4gbWF2ZW4vZG94aWEvZG94aWEvMS44L2RveGlhLTEuOC1zb3VyY2UtcmVsZWFzZS56aXAKPj0yMAo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IGRveGlhLTEuOC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogOTdiZjQzNWRhMDNkZDRhOGQ1Y2ZjMWIwZjA3MjY1MDkwODYzY2Y9CmYwCj49MjAKPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvZG94aWEvZG94aWEtYXJjaGl2ZXMvZG94aWEtTEFURVNULwo+PTIwCj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPj0yMAo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj49MjAKPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM4ODYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IFNlcCAgNyAwOTowNTowMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM4ODYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQTc1RDkxQTUwNAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsICA3IFNlcCAyMDE3IDA5OjA1OjAwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzMwODcgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBTZXAgMjAxNyAwOTowNTowMCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzI5MzYgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBTZXAgMjAxNyAwOTowNTowMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDcyOTE5IGludm9rZWQgYnkgdWlkIDk5KTsgNyBTZXAgMjAxNyAwOTowNDo1OSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMDcgU2VwIDIwMTcgMDk6MDQ6NTkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA4NDg3MDFBNkY0MDsKCVRodSwgIDcgU2VwIDIwMTcgMDk6MDQ6NTkgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4zMgpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC4zMiB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX01YVVJJPTEuNSwgUkNWRF9JTl9ETlNXTF9NRUQ9LTIuMywgUkNWRF9JTl9NU1BJS0VfSDQ9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwKCVJQX01BVENIRVNfUkNWRD0tMC4wMDEsIFNQRl9QQVNTPS0wLjAwMSwgVU5QQVJTRUFCTEVfUkVMQVk9MC4wMDEsCglVUklCTF9CTE9DS0VEPTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHFQUXVqRHNhYmhQWjsgVGh1LCAgNyBTZXAgMjAxNyAwOTowNDo1NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBhc2VycDEwNDAub3JhY2xlLmNvbSAoYXNlcnAxMDQwLm9yYWNsZS5jb20gWzE0MS4xNDYuMTI2LjY5XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEMzRjNCNUZDOTk7CglUaHUsICA3IFNlcCAyMDE3IDA5OjA0OjU2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHVzZXJ2MDAyMi5vcmFjbGUuY29tICh1c2VydjAwMjIub3JhY2xlLmNvbSBbMTU2LjE1MS4zMS43NF0pCglieSBhc2VycDEwNDAub3JhY2xlLmNvbSAoU2VudHJpb24tTVRBLTQuMy4yL1NlbnRyaW9uLU1UQS00LjMuMikgd2l0aCBFU01UUCBpZCB2ODc5NHNLNTAwMzkxOAoJKHZlcnNpb249VExTdjEuMiBjaXBoZXI9RUNESEUtUlNBLUFFUzI1Ni1HQ00tU0hBMzg0IGJpdHM9MjU2IHZlcmlmeT1PSyk7CglUaHUsIDcgU2VwIDIwMTcgMDk6MDQ6NTUgR01UClJlY2VpdmVkOiBmcm9tIGFzZXJ2MDEyMi5vcmFjbGUuY29tIChhc2VydjAxMjIub3JhY2xlLmNvbSBbMTQxLjE0Ni4xMjYuMjM2XSkKCWJ5IHVzZXJ2MDAyMi5vcmFjbGUuY29tICg4LjE0LjQvOC4xNC40KSB3aXRoIEVTTVRQIGlkIHY4Nzk0c2lBMDMyNjQ5CgkodmVyc2lvbj1UTFN2MS9TU0x2MyBjaXBoZXI9REhFLVJTQS1BRVMyNTYtR0NNLVNIQTM4NCBiaXRzPTI1NiB2ZXJpZnk9T0spOwoJVGh1LCA3IFNlcCAyMDE3IDA5OjA0OjU0IEdNVApSZWNlaXZlZDogZnJvbSBhYmhtcDAwMDMub3JhY2xlLmNvbSAoYWJobXAwMDAzLm9yYWNsZS5jb20gWzE0MS4xNDYuMTE2LjldKQoJYnkgYXNlcnYwMTIyLm9yYWNsZS5jb20gKDguMTQuNC84LjE0LjQpIHdpdGggRVNNVFAgaWQgdjg3OTRyU1cwMDQzMzM7CglUaHUsIDcgU2VwIDIwMTcgMDk6MDQ6NTMgR01UClJlY2VpdmVkOiBmcm9tIGRoY3AtdWtjMS10d3Zwbi0zLXZwbnBvb2wtMTAtMTc1LTIyOC0yNi52cG4ub3JhY2xlLmNvbSAoLzEwLjE3NS4yMjguMjYpCglieSBkZWZhdWx0IChPcmFjbGUgQmVlaGl2ZSBHYXRld2F5IHY0LjApCgl3aXRoIEVTTVRQIDsgVGh1LCAwNyBTZXAgMjAxNyAwMjowNDo1MyAtMDcwMApGcm9tOiAiUm9yeSBPJ0Rvbm5lbGwiIDxyb3J5Lm9kb25uZWxsQG9yYWNsZS5jb20+ClN1YmplY3Q6IE1vdmluZyBKYXZhIEZvcndhcmQgRmFzdGVyCkNjOiByb3J5Lm9kb25uZWxsQG9yYWNsZS5jb20sIGFiZHVsLmtvbGFya3VubnVAb3JhY2xlLmNvbSwKICAgICAgICBiYWxjaGFuZHJhLnZhaWR5YUBvcmFjbGUuY29tLCBkYWxpYm9yLnRvcGljQG9yYWNsZS5jb20sCiAgICAgICAgTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KVG86IFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KTWVzc2FnZS1JRDogPDM4OTNlMmFhLWRiOTItYTQ2Zi0yODJmLTdkYmNjZmMzNDU1M0BvcmFjbGUuY29tPgpEYXRlOiBUaHUsIDcgU2VwIDIwMTcgMTA6MDQ6NTAgKzAxMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTI7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi4zLjAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKQ29udGVudC1MYW5ndWFnZTogZW4tVVMKWC1Tb3VyY2UtSVA6IHVzZXJ2MDAyMi5vcmFjbGUuY29tIFsxNTYuMTUxLjMxLjc0XQoKSGkgUm9iZXJ0ICwKCk9yYWNsZSBpcyBwcm9wb3NpbmcgYSByYXBpZCByZWxlYXNlIG1vZGVsIGZvciBKYXZhIFNFIGdvaW5nLWZvcndhcmQuCgpUaGUgaGlnaCBwb2ludHMgYXJlIGhpZ2hsaWdodGVkIGJlbG93LCBkZXRhaWxzIG9mIHRoZSBjaGFuZ2VzIGNhbiBiZSAKZm91bmQgb24gTWFyayBSZWluaG9sZOKAmXMgYmxvZyBbMV0gLCBPcGVuSkRLIGRpc2N1c3Npb24gZW1haWwgbGlzdCBbMl0uCgpVbmRlciB0aGUgcHJvcG9zZWQgcmVsZWFzZSBtb2RlbCwgYWZ0ZXIgSkRLIDksIHdlIHdpbGwgYWRvcHQgYSBzdHJpY3QsIAp0aW1lLWJhc2VkIG1vZGVsIHdpdGggYSBuZXcgbWFqb3IgcmVsZWFzZSBldmVyeSBzaXggbW9udGhzLCB1cGRhdGUgCnJlbGVhc2VzIGV2ZXJ5IHF1YXJ0ZXIsIGFuZCBhIGxvbmctdGVybSBzdXBwb3J0IHJlbGVhc2UgZXZlcnkgdGhyZWUgeWVhcnMuCgpUaGUgbmV3IEpESyBQcm9qZWN0IHdpbGwgcnVuIGEgYml0IGRpZmZlcmVudGx5IHRoYW4gdGhlIHBhc3QgIkpESyAkTiIgClByb2plY3RzOgoKLSBUaGUgbWFpbiBkZXZlbG9wbWVudCBsaW5lIHdpbGwgYWx3YXlzIGJlIG9wZW4gYnV0IGZpeGVzLCBlbmhhbmNlbWVudHMsIAphbmQgZmVhdHVyZXMgd2lsbCBiZSBtZXJnZWQgb25seSB3aGVuIHRoZXkncmUgbmVhcmx5IGZpbmlzaGVkLiBUaGUgbWFpbiAKbGluZSB3aWxsIGJlIEZlYXR1cmUgQ29tcGxldGUgWzNdIGF0IGFsbCB0aW1lcy4KCi0gV2UnbGwgY29udGludWUgdG8gdXNlIHRoZSBKRVAgUHJvY2VzcyBbNF0gZm9yIG5ldyBmZWF0dXJlcyBhbmQgb3RoZXIgCnNpZ25pZmljYW50IGNoYW5nZXMuIFRoZSBiYXIgdG8gdGFyZ2V0IGEgSkVQIHRvIGEgc3BlY2lmaWMgcmVsZWFzZSB3aWxsLCAKaG93ZXZlciwgYmUgaGlnaGVyIHNpbmNlIHRoZSB3b3JrIG11c3QgYmUgRmVhdHVyZSBDb21wbGV0ZSBpbiBvcmRlciB0byAKZ28gaW4uIE93bmVycyBvZiBsYXJnZSBvciByaXNreSBmZWF0dXJlcyB3aWxsIGJlIHN0cm9uZ2x5IGVuY291cmFnZWQgdG8gCnNwbGl0IHN1Y2ggZmVhdHVyZXMgdXAgaW50byBzbWFsbGVyIGFuZCBzYWZlciBwYXJ0cywgdG8gaW50ZWdyYXRlIAplYXJsaWVyIGluIHRoZSByZWxlYXNlIGN5Y2xlLCBhbmQgdG8gcHVibGlzaCBzZXBhcmF0ZSBsaW5lcyBvZiAKZWFybHktYWNjZXNzIGJ1aWxkcyBwcmlvciB0byBpbnRlZ3JhdGlvbi4KClRoZSBKREsgVXBkYXRlcyBQcm9qZWN0IHdpbGwgcnVuIGluIG11Y2ggdGhlIHNhbWUgd2F5IGFzIHRoZSBwYXN0ICJKREsgCiROIiBVcGRhdGVzIFByb2plY3RzLCB0aG91Z2ggdXBkYXRlIHJlbGVhc2VzIHdpbGwgYmUgc3RyaWN0bHkgbGltaXRlZCB0byAKZml4ZXMgb2Ygc2VjdXJpdHkgaXNzdWVzLCByZWdyZXNzaW9ucywgYW5kIGJ1Z3MgaW4gbmV3ZXIgZmVhdHVyZXMuCgpSZWxhdGVkIHRvIHRoaXMgcHJvcG9zYWwsIHdlIGludGVuZCB0byBtYWtlIGEgZmV3IGNoYW5nZXMgaW4gd2hhdCB3ZSBkbzoKCi0gU3RhcnRpbmcgd2l0aCBKREsgOSB3ZSdsbCBzaGlwIE9wZW5KREsgYnVpbGRzIHVuZGVyIHRoZSBHUEwgWzVdLCB0byAKbWFrZSBpdCBlYXNpZXIgZm9yIGRldmVsb3BlcnMgdG8gZGVwbG95IEphdmEgYXBwbGljYXRpb25zIHRvIGNsb3VkIAplbnZpcm9ubWVudHMuIFdlJ2xsIGluaXRpYWxseSBwdWJsaXNoIE9wZW5KREsgYnVpbGRzIGZvciBMaW51eC94NjQsIApmb2xsb3dlZCBsYXRlciBieSBidWlsZHMgZm9yIG1hY09TL3g2NCBhbmQgV2luZG93cy94NjQuCgotIFdlJ2xsIGNvbnRpbnVlIHRvIHNoaXAgcHJvcHJpZXRhcnkgIk9yYWNsZSBKREsiIGJ1aWxkcywgd2hpY2ggaW5jbHVkZSAKImNvbW1lcmNpYWwgZmVhdHVyZXMiIFs2XSBzdWNoIGFzIEphdmEgRmxpZ2h0IFJlY29yZGVyIGFuZCBNaXNzaW9uIApDb250cm9sIFs3XSwgdW5kZXIgYSBjbGljay10aHJvdWdoIGJpbmFyeS1jb2RlIGxpY2Vuc2UgWzhdLiBPcmFjbGUgd2lsbCAKY29udGludWUgdG8gb2ZmZXIgcGFpZCBzdXBwb3J0IGZvciB0aGVzZSBidWlsZHMuCgotIEFmdGVyIEpESyA5IHdlJ2xsIG9wZW4tc291cmNlIHRoZSBjb21tZXJjaWFsIGZlYXR1cmVzIGluIG9yZGVyIHRvIG1ha2UgCnRoZSBPcGVuSkRLIGJ1aWxkcyBtb3JlIGF0dHJhY3RpdmUgdG8gZGV2ZWxvcGVycyBhbmQgdG8gcmVkdWNlIHRoZSAKZGlmZmVyZW5jZXMgYmV0d2VlbiB0aG9zZSBidWlsZHMgYW5kIHRoZSBPcmFjbGUgSkRLLiBUaGlzIHdpbGwgdGFrZSBzb21lIAp0aW1lLCBidXQgdGhlIHVsdGltYXRlIGdvYWwgaXMgdG8gbWFrZSBPcGVuSkRLIGFuZCBPcmFjbGUgSkRLIGJ1aWxkcyAKY29tcGxldGVseSBpbnRlcmNoYW5nZWFibGUuCgotIEZpbmFsbHksIGZvciB0aGUgbG9uZyB0ZXJtIHdlJ2xsIHdvcmsgd2l0aCBvdGhlciBPcGVuSkRLIGNvbnRyaWJ1dG9ycyAKdG8gZXN0YWJsaXNoIGFuIG9wZW4gYnVpbGQtYW5kLXRlc3QgaW5mcmFzdHJ1Y3R1cmUuIFRoaXMgd2lsbCBtYWtlIGl0IAplYXNpZXIgdG8gcHVibGlzaCBlYXJseS1hY2Nlc3MgYnVpbGRzIGZvciBmZWF0dXJlcyBpbiBkZXZlbG9wbWVudCwgYW5kIApldmVudHVhbGx5IG1ha2UgaXQgcG9zc2libGUgZm9yIHRoZSBPcGVuSkRLIENvbW11bml0eSBpdHNlbGYgdG8gcHVibGlzaCAKYXV0aG9yaXRhdGl2ZSBidWlsZHMgb2YgdGhlIEpESy4KClF1ZXN0aW9ucyAsIGNvbW1lbnRzLCBmZWVkYmFjayB0byBPcGVuSkRLIGRpc2N1c3MgbWFpbGluZyBsaXN0IFsyXQoKUmdkcyxSb3J5CgpbMV1odHRwczovL21yZWluaG9sZC5vcmcvYmxvZy9mb3J3YXJkLWZhc3RlcgpbMl1odHRwOi8vbWFpbC5vcGVuamRrLmphdmEubmV0L3BpcGVybWFpbC9kaXNjdXNzLzIwMTctU2VwdGVtYmVyLzAwNDI4MS5odG1sClszXWh0dHA6Ly9vcGVuamRrLmphdmEubmV0L3Byb2plY3RzL2pkazgvbWlsZXN0b25lcyNGZWF0dXJlX0NvbXBsZXRlCls0XWh0dHA6Ly9vcGVuamRrLmphdmEubmV0L2plcHMvMApbNV1odHRwOi8vb3Blbmpkay5qYXZhLm5ldC9sZWdhbC9ncGx2MitjZS5odG1sCls2XWh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobmV0d29yay9qYXZhL2phdmFzZS90ZXJtcy9wcm9kdWN0cy9pbmRleC5odG1sCls3XWh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobmV0d29yay9qYXZhL2phdmFzZXByb2R1Y3RzL21pc3Npb24tY29udHJvbC9pbmRleC5odG1sCls4XWh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobmV0d29yay9qYXZhL2phdmFzZS90ZXJtcy9saWNlbnNlL2luZGV4Lmh0bWwKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQyOTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE9jdCAyMSAxMToyNDoxMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyOTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQTBCMTYxMEQ2OQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDIxIE9jdCAyMDE3IDExOjI0OjExICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjk1MjQgaW52b2tlZCBieSB1aWQgNTAwKTsgMjEgT2N0IDIwMTcgMTE6MjQ6MTEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI5NDQwIGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIE9jdCAyMDE3IDExOjI0OjExIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjk0MjkgaW52b2tlZCBieSB1aWQgOTkpOyAyMSBPY3QgMjAxNyAxMToyNDoxMCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMjEgT2N0IDIwMTcgMTE6MjQ6MTAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAzRDYwRUMyMUNGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAyMSBPY3QgMjAxNyAxMToyNDoxMCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDAuOTk5ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTAuOTk5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgUlBfTUFUQ0hFU19SQ1ZEPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgeWpoR1lqNXM2VzhYIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAyMSBPY3QgMjAxNyAxMToyNDowOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLngtcmVpemVuZC5kZSAoeC1yZWl6ZW5kLmRlIFsyMTIuMjI3LjM4LjQ2XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMTkxNjM1RkFDOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMjEgT2N0IDIwMTcgMTE6MjQ6MDggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc3BhY2VzaGlwLmZyaXR6LmJveCAoaXAtMzctMjAxLTYtMjA1LmhzaTEzLnVuaXR5bWVkaWFncm91cC5kZSBbMzcuMjAxLjYuMjA1XSkKCSh1c2luZyBUTFN2MS4yIHdpdGggY2lwaGVyIEVDREhFLVJTQS1BRVMyNTYtR0NNLVNIQTM4NCAoMjU2LzI1NiBiaXRzKSkKCShObyBjbGllbnQgY2VydGlmaWNhdGUgcmVxdWVzdGVkKQoJYnkgbWFpbC54LXJlaXplbmQuZGUgKFBvc3RmaXgpIHdpdGggRVNNVFBTQSBpZCA4MDExMTExQzBBMjsKCVNhdCwgMjEgT2N0IDIwMTcgMTE6MjQ6MDIgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOwoJY2hhcnNldD11dGYtOApNaW1lLVZlcnNpb246IDEuMCAoTWFjIE9TIFggTWFpbCAxMS4wIFwoMzQ0NS4xLjdcKSkKU3ViamVjdDogUmU6IG1vdmluZyBHaXRIdWIgaXNzdWUgbm90aWZpY2F0aW9ucyB0byBpc3N1ZXNAbWF2ZW4uYS5vCkZyb206IFV3ZSBCYXJ0aGVsIDxiYXJ0aGVsQHgtcmVpemVuZC5kZT4KSW4tUmVwbHktVG86IDwxNTIyODk5LklXRVFvVGlHZkVAZ2lnYT4KRGF0ZTogU2F0LCAyMSBPY3QgMjAxNyAxMzoyNDowMSArMDIwMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCk1lc3NhZ2UtSWQ6IDwzOTE4OEM0MS04NTA0LTQ0NDYtOUM4Qy03RkI5MjBFRkMzQTBAeC1yZWl6ZW5kLmRlPgpSZWZlcmVuY2VzOiA8MTUyMjg5OS5JV0VRb1RpR2ZFQGdpZ2E+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpYLU1haWxlcjogQXBwbGUgTWFpbCAoMi4zNDQ1LjEuNykKCisxIChub24gYmluZGluZykKCi0tPTIwCmJhcnRoZWxAeC1yZWl6ZW5kLmRlCgoKPiBPbiAyMS4gT2N0IDIwMTcsIGF0IDEyOjIyLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gPQp3cm90ZToKPj0yMAo+IEN1cnJlbnRseSwgY29tbWVudHMgYXJlIHNlbnQgdG8gZGV2QG1hdmVuLmEubwo+PTIwCj4gRm9yIG91ciBjbGFzc2ljYWwgb2ZmaWNpYWwgSmlyYSBpc3N1ZSB0cmFja2VyLCBub3RpZmljYXRpb25zIGFyZSBzZW50ID0KdG89MjAKPiBpc3N1ZXNAbWF2ZW4uYS5vCj49MjAKPiBJZiBub2JvZHkgb2JqZWN0cyAoNzJoIGFzIHVzdWFsKSwgSSdsbCBhc2sgaW5mcmEgdG8gc3dpdGNoIEdpdEh1YiA9Cmlzc3VlPTIwCj4gbm90aWZpY2F0aW9ucyB0byBpc3NldXNAbWF2ZW4uYS5vCj49MjAKPiBSZWdhcmRzLAo+PTIwCj4gSGVydj1DMz1BOQo+PTIwCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj49MjAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4NTAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIERlYyAyNyAxMzo0ODozMiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4NTAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQkFGOUYxNzk0OAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDI3IERlYyAyMDE3IDEzOjQ4OjMyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzUxMzYgaW52b2tlZCBieSB1aWQgNTAwKTsgMjcgRGVjIDIwMTcgMTM6NDg6MzIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM1MDY2IGludm9rZWQgYnkgdWlkIDUwMCk7IDI3IERlYyAyMDE3IDEzOjQ4OjMyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzUwNTUgaW52b2tlZCBieSB1aWQgOTkpOyAyNyBEZWMgMjAxNyAxMzo0ODozMiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMjcgRGVjIDIwMTcgMTM6NDg6MzIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA4OEM4MTFBMDk5OAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjcgRGVjIDIwMTcgMTM6NDg6MzEgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjI5OQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjI5OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEdyaWdGZDJhWjRZMiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgMjcgRGVjIDIwMTcgMTM6NDg6MzAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbW91dC5nbXgubmV0IChtb3V0LmdteC5uZXQgWzIxMi4yMjcuMTUuMTVdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRDg0MkY1RjFGMAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjcgRGVjIDIwMTcgMTM6NDg6MjkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gS2FybC1IZWluenMtTWFjQm9vay1Qcm8ubG9jYWwgKFs5Mi4yMDQuMzAuMTldKSBieSBtYWlsLmdteC5jb20KIChtcmdteDAwMSBbMjEyLjIyNy4xNy4xOTBdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTUw2cVAtMWVUdjVJNDZuaC0wMDBOU0I7IFdlZCwgMjcgRGVjIDIwMTcgMTQ6NDg6MjIgKzAxMDAKUmVwbHktVG86IGluZm9Ac29lYmVzLmRlClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gRG94aWEgU2l0ZXRvb2xzIHZlcnNpb24gMS44ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwKID0/VVRGLTg/UT9IZXJ2PWMzPWE5X0JPVVRFTVk/PSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpSZWZlcmVuY2VzOiA8MjE5MzEwNy5jaUEzTk9kVE9OQGdpZ2E+CkZyb206IEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPgpNZXNzYWdlLUlEOiA8MzkyYWJmMDctM2E1Yi1lNTQ2LTE0MmItYWI5MjQyNTA5NDFlQGdteC5kZT4KRGF0ZTogV2VkLCAyNyBEZWMgMjAxNyAxNDo0ODoyMSArMDEwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMTsgcnY6NTIuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzUyLjUuMApNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPDIxOTMxMDcuY2lBM05PZFRPTkBnaWdhPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDpYcWl1UEZLbDV6UjdwekNwL0ZTL1VwdTZkaHlyblpNOUJzNHZpL1FBS2ZqcTRFUUNLdTUKIEVWUFFwTHl0TGRPWnloN01YRFpyMXFrYitMV0cxaTkySXNxbnZsTWZRVHhCeElGSWdZcXVrVVJDZU1BT040NEVSbjdVQ2lqCiBXRFVmclJaZ2RZSWtRbmRWNldIeEp4bkdTNWlEMXF1SmNXQkZQL3JST2FSYThEU2NRY0VBWnZhcVVHeEhHRStxcTczTmQ5KwogaVN6eWFGY3FwK0swOVpHSWluS2p3PT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDpYUGtUa0dDdWNuRT06SlNGSjdCTHE3ajhQR3RueUVNa2drYQogVzNTM3IxMWtQV2JveElIK0VmNDVSWWtrYWpkYzExeDZFVlo1NmFrTVhnVnNoZ1FSK3M2TmtobXkybFVETG0vL3NrWkU1NUI0RwogNC83alhPRGpzWG5IL0FUL1NiZy9ia3Bvb2FCdi9FNjc5VEIxOENMUlBZZGVoS0NEdGNTelhKc1N4UEZTTDh2bmNScy9yNlJlUwogcEVONkpCMnVnTWp5VG51YWlqMEVkcjJHSy8zWTk4YXR4UEdHUnJjaFgvNitsMmpVZmhhNjI5elB3SDhQUml2NGFaRVFsaFA0cAogWlZRaENhR2k0bXlFejZheHMva1RVd1B5d3U0ZjhoRVk1bEJXNWg3b014ZkF1MFc5MW83MHVyQU1HTEI2QUFiNFVQSU1wNjN6dQogc1M2dnl1WTJCWUtnc0NrRVJhL3ZWTEVOMFl3a2o1cFROSENocENzUlZzZS9HQ05HQ0lTV1dFOGY0NUJPU0VIY0x5aytmRldDNgogeUFLd05tODM1TmkyeWdvMXk3bHI3Tk9ZM09PL3VWVUxUVURhMGZ1K05xblBGWWpKdDArQ2JJS3YxL0RkTDdLL05udW04VkhUTgogaGRoTlBVeEFBYkRWcU5CemZrYU5uVFdaSHVjOHlkSHhkQ3BhcEFpYWlpNGliNllJLzFOL2FndGV2Y2ZvMi9NTCtpbkcyeTdnNwogV3F4V3JXdWgwNEJtZmVjSWh6WFpDQUxHWm9lb2N2M09jWVpXRmx1TlM4SVJoVzl6WDlRN0g0RlVKelc0dzZzd05JUEJLcDNUdAogeU1Qb2tpYTUyeWhpRUpJcEYvN1ludkkvV29HWnpmeW9sV3hWemZFaEZmZDVqaTljK2tKYm9lR1RuQ1ZKWDNDZUxrSkpHQVpRcwogSjFTaG5kL0xFaW9rUWEvYWpaRHUzRElDUnlkYW4yT2Y1em5LYVdBTkhOMFRDYlAyZXV0ZUJvRzRlRzNGbkk5SGVRQkJHcWdsZAogQTlyWERXaHM3eDZYRW5TQ1RQUlkrNkRhUjQyZ3prcjRIL0l6RzFBejRsa05YTFB0dFFXMWdwbFVDdWd0OGJobEE2VjN3Nm1xbQogMmNOQXEvaU1paE9iT1FxUHRXakRuUm13b2NDT0JjSUFtUi83S0N2SHdwRjNPZGxUOWllamVueExFc2srZ3NaUTdWV0N4SDMKCkhpLAoKdGVzdGVkIHdpdGggdGhlIGZvbGxvd2luZzoKamRrMS43LjBfNzkuamRrCiAgIGFwYWNoZS1tYXZlbi0zLjAuNS4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KICAgYXBhY2hlLW1hdmVuLTMuMS4xLi5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgogICBhcGFjaGUtbWF2ZW4tMy4yLjUuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCiAgIGFwYWNoZS1tYXZlbi0zLjMuMS4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KICAgYXBhY2hlLW1hdmVuLTMuMy45Li5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgogICBhcGFjaGUtbWF2ZW4tMy41LjAuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCiAgIGFwYWNoZS1tYXZlbi0zLjUuMi4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KamRrMS44LjBfMTMxLmpkawogICBhcGFjaGUtbWF2ZW4tMy4wLjUuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCiAgIGFwYWNoZS1tYXZlbi0zLjEuMS4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KICAgYXBhY2hlLW1hdmVuLTMuMi41Li5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgogICBhcGFjaGUtbWF2ZW4tMy4zLjEuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCiAgIGFwYWNoZS1tYXZlbi0zLjMuOS4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KICAgYXBhY2hlLW1hdmVuLTMuNS4wLi5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgogICBhcGFjaGUtbWF2ZW4tMy41LjIuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCmpkazEuOC4wXzE0NC5qZGsKICAgYXBhY2hlLW1hdmVuLTMuMC41Li5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgogICBhcGFjaGUtbWF2ZW4tMy4xLjEuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCiAgIGFwYWNoZS1tYXZlbi0zLjIuNS4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KICAgYXBhY2hlLW1hdmVuLTMuMy4xLi5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgogICBhcGFjaGUtbWF2ZW4tMy4zLjkuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCiAgIGFwYWNoZS1tYXZlbi0zLjUuMC4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KICAgYXBhY2hlLW1hdmVuLTMuNS4yLi5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgpqZGstOS4wLjEuamRrCiAgIGFwYWNoZS1tYXZlbi0zLjAuNS4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KICAgYXBhY2hlLW1hdmVuLTMuMS4xLi5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgogICBhcGFjaGUtbWF2ZW4tMy4yLjUuLlVucGFja2luZyBkb25CdWlsZGluZyBmaW5lLi4uCiAgIGFwYWNoZS1tYXZlbi0zLjMuMS4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KICAgYXBhY2hlLW1hdmVuLTMuMy45Li5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgogICBhcGFjaGUtbWF2ZW4tMy41LjAuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCiAgIGFwYWNoZS1tYXZlbi0zLjUuMi4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KCk5vIGlzc3VlcyBmb3VuZC4KClNvICsxIGZyb20gbWUuCgpLaW5kIHJlZ2FyZHMKS2FybCBIZWlueiBNYXJiYWlzZQoKT24gMjEvMTIvMTcgMjM6MzEsIEhlcnbDqSBCT1VURU1ZIHdyb3RlOgo+IEhpLAo+ICAgICAgCj4gV2Ugc29sdmVkIDcgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiBwcm9qZWN0SWQ9MTIzMTczMjAmdmVyc2lvbj0xMjMzOTYxMyZzdHlsZU5hbWU9VGV4dAo+ICAgICAgCj4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPXByb2plY3QlMjAlM0QlMjBET1hJQVNJVEVUT09MUwo+ICUyMEFORCUyMHN0YXR1cyUyMCUzRCUyME9wZW4lMjBPUkRFUiUyMEJZJTIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQwo+ICAgICAgCj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzODQvCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM4NC9vcmcvYXBhY2hlLwo+IG1hdmVuL2RveGlhL2RveGlhLXNpdGV0b29scy8xLjgvZG94aWEtc2l0ZXRvb2xzLTEuOC1zb3VyY2UtcmVsZWFzZS56aXAKPiAgICAgIAo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IGRveGlhLXNpdGV0b29scy0xLjgtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6Cj4gMDA1MWFmM2RhMmJhNjMyYTllMGY3NTNiMGZmYmMxNTM1ODk4NmNjZAo+ICAgICAgCj4gU3RhZ2luZyBzaXRlOgo+IGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL2RveGlhL2RveGlhLXNpdGV0b29scy1hcmNoaXZlcy9kb3hpYS1zaXRldG9vbHMtTEFURVNULwo+ICAgICAgCj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPiAgICAgIAo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4gICAgICAKPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDg1NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgRGVjIDI4IDA4OjI4OjQ5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg1NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAzNTZDOTE3ODI3Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjggRGVjIDIwMTcgMDg6Mjg6NDkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3MTE3NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBEZWMgMjAxNyAwODoyODo0OCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzEwOTkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggRGVjIDIwMTcgMDg6Mjg6NDggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MTA4OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IERlYyAyMDE3IDA4OjI4OjQ4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyOCBEZWMgMjAxNyAwODoyODo0OCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDExMDQ1MUEwODE1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyOCBEZWMgMjAxNyAwODoyODo0OCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xLjMKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEuMyB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDY5OW1PaGVZMFFNdyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVRodSwgMjggRGVjIDIwMTcgMDg6Mjg6NDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDA1LnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI3XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEYyMTRBNUY0NzAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDI4IERlYyAyMDE3IDA4OjI4OjQ2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDYyIHdpdGggTUUKCWlkIHJMVW0xdzAwZTIwVWZkeTAzTFVtY0U7IFRodSwgMjggRGVjIDIwMTcgMDk6Mjg6NDYgKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogVGh1LCAyOCBEZWMgMjAxNyAwOToyODo0NiArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNjOiBNYXZlbiBQcm9qZWN0IE1hbmFnZW1lbnQgQ29tbWl0dGVlIExpc3QgPHByaXZhdGVAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogW1JFU1VMVF0gW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIERveGlhIFNpdGV0b29scyB2ZXJzaW9uIDEuOApEYXRlOiBUaHUsIDI4IERlYyAyMDE3IDA5OjI4OjQ2ICswMTAwCk1lc3NhZ2UtSUQ6IDwzOTU3NTA4LjBhcDRBTG9rZ0dAZ2lnYT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpIaSwKICAgPTIwClRoZSB2b3RlIGhhcyBwYXNzZWQgd2l0aCB0aGUgZm9sbG93aW5nIHJlc3VsdDoKICAgPTIwCisxIDogUm9iZXJ0IFNjaG9sdGUsIE1pY2hhZWwgT3NpcG92LCBLYXJsIEhlaW56IE1hcmJhaXNlLCBIZXJ2PUU5IEJvdXRlbXkKICAgPTIwClBNQyBxdW9ydW0gcmVhY2hlZAogICA9MjAKSSB3aWxsIHByb21vdGUgdGhlIGFydGlmYWN0cyB0byB0aGUgY2VudHJhbCByZXBvLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODAxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBEZWMgMjAgMTA6MTg6MjYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODAxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEM5QTFGMTc1RTAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyMCBEZWMgMjAxNyAxMDoxODoyNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDgxODMwIGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIERlYyAyMDE3IDEwOjE4OjI2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MTczNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBEZWMgMjAxNyAxMDoxODoyNiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgxNzI1IGludm9rZWQgYnkgdWlkIDk5KTsgMjAgRGVjIDIwMTcgMTA6MTg6MjYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDIwIERlYyAyMDE3IDEwOjE4OjI2ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQTg5NDYxQTAzQzIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDIwIERlYyAyMDE3IDEwOjE4OjI1ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuOTk5ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjk5OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVVSSUJMX0JMT0NLRUQ9MC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgU0thWHVhZEFOSzdOIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJV2VkLCAyMCBEZWMgMjAxNyAxMDoxODoyMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDYuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjhdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRTMzMjc1RjVCNAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjAgRGVjIDIwMTcgMTA6MTg6MjEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMTEgd2l0aCBNRQoJaWQgb0FKTTF3MDBYMjBVZmR5MDNBSk02YTsgV2VkLCAyMCBEZWMgMjAxNyAxMToxODoyMSArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBXZWQsIDIwIERlYyAyMDE3IDExOjE4OjIxICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtJTVBPUlRBTlRdIFJlOiBHaXQgbWlncmF0aW9uIG5leHQgc3RlcHMKRGF0ZTogV2VkLCAyMCBEZWMgMjAxNyAxMToxODoyMSArMDEwMApNZXNzYWdlLUlEOiA8Mzk3NTQ2Ny5FcVpBZkdkVnZKQGdpZ2E+CkluLVJlcGx5LVRvOiA8Q0FQb3lCcVRZWT0wWUd0UStQTm9VUzNCR25EWm5HV3U4RD1wY09CMmYxN29oNVBuTXRBQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8MTkwMDU1OC5HRng5UWxmYUUyQGdpZ2E+IDwxNTkwNjYzLlZsV0dvSW1TYXpAZ2lnYT4gPENBUG95QnFUWVk9MFlHdFErUE5vVVMzQkduRFpuR1d1OEQ9cGNPQjJmMTdvaDVQbk10QUBtYWlsLmdtYWlsLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpvaywgcGxleHVzIGFkZGVkIHRvIHRoZSByZXBvcyBsaXN0IChub3cgd2UgaGF2ZSAxMTIgcmVwb3MgbGlzdGVkLi4uKQoKaWYgbm9ib2R5IG9iamVjdHMgb3IgcHJvcG9zZSBiZXR0ZXIgbmFtZSwgSSdsbCBpbXBvcnQgdGhlICJHb29nbGUgcmVwbyIgcmVwPQpvPTIwCmFzICJtYXZlbi1zb3VyY2VzIiBpbiA3MmggKHdpdGggYWRkaXRpb25hbCBsaWNlbmNlIGhlYWRlcnMpCgpSZWdhcmRzLAoKSGVydj1FOQoKTGUgbWVyY3JlZGkgMjAgZD1FOWNlbWJyZSAyMDE3LCAwNjozNjozMCBDRVQgT2xpdmllciBMYW15IGEgPUU5Y3JpdCA6Cj4gT24gMTkgRGVjZW1iZXIgMjAxNyBhdCAyMTo1NCwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdybz0KdGU6Cj4gPiBvaCwgSSBmb3Jnb3QgdG8gcHVzaCAod2FzIHdvcmtpbmcgcGVyZmVjdGx5IGZvciBtZSBsb2NhbGx5Li4uKTogZG9uZQo+PTIwCj4gVGhhbmtzIGl0IHdvcmtzIGZpbmUhCj49MjAKPiA+IHNob3VsZCBJIG1pZ3JhdGUgdGhpcyByZXBvIHRvIEFTRj8KPiA+IHNhbWUgbmFtZSAibWF2ZW4tYWdncmVnYXRvci5naXQiPyBvciBhbnkgYmV0dGVyIGlkZWE/Cj4gPiAibWF2ZW4tc291cmNlcy5naXQiPyAibWF2ZW4tc3JjLmdpdCI/Cj49MjAKPiBzb3VuZHMgZ29vZC4gbm90IHJlYWwgcHJlZmVyZW5jZSBvbiB0aGUgbmFtZS4KPj0yMAo+ID4gYW5kIHdoYXQgYWJvdXQgYWRkaW5nIHBsZXh1cyByZXBvcyAoaW5jbHVkaW5nIG1vZGVsbG8pIHRvIHRoZSBsaXN0Pwo+PTIwCj4geXVwIHNvdW5kcyBnb29kIGFzIHdlbGwKPj0yMAo+ID4gUmVnYXJkcywKPiA+PTIwCj4gPiBIZXJ2PUU5Cj4gPj0yMAo+ID4gTGUgbWFyZGkgMTkgZD1FOWNlbWJyZSAyMDE3LCAwNzowNzo0MyBDRVQgT2xpdmllciBMYW15IGEgPUU5Y3JpdCA6Cj4gPiA+IGFueSBwbGFuIHRvIHVwZGF0ZSB0aGUgbWF2ZW4tYWdncmVnYXRvciBmaWxlPyA6LSkKPiA+ID49MjAKPiA+ID4gT24gMTcgRGVjZW1iZXIgMjAxNyBhdCAwMjoyOCwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPj0yMAo+ID4gd3JvdGU6Cj4gPiA+ID4gb2ssIEkgd2FzIGNvbmZ1c2VkIGJ5IHRoZSBkaWZmZXJlbnQgdGFrZXMgYXQgbS1qYXZhZG9jLXAgMy4wLjAKPiA+ID4gPj0yMAo+ID4gPiA+IHllcywgc3ZuMmdpdCBtaXJyb3IgaXMgc3R1Y2sgWzFdIGF0IHIxODE1Njc1Cj4gPiA+ID49MjAKPiA+ID4gPiBJIGp1c3Qgb3BlbmVkIGFuIElORlJBIEppcmEgaXNzdWUKPiA+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0lORlJBLTE1Njc5Cj4gPiA+ID49MjAKPiA+ID4gPiBvbmNlIHRoZSBzdm4yZ2l0IG1pcnJvciB3aWxsIGJlIHVwZGF0ZWQsIHdlJ2xsIGhhdmUgdG8gcmUtcnVuIHRoZQo+ID4gPiA+IHNwbGl0Cj4gPiA+ID4gc2NyaXB0cyBhbmQgY2hlcnJ5IHBpY2sgdGhlIG1pc3NpbmcgY29tbWl0cwo+ID4gPiA+PTIwCj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPj0yMAo+ID4gPiA+IEhlcnY9RTkKPiA+ID4gPj0yMAo+ID4gPiA+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvY29tbWl0cy90cnVuawo+ID4gPiA+PTIwCj4gPiA+ID4gTGUgc2FtZWRpIDE2IGQ9RTljZW1icmUgMjAxNywgMTM6MDE6MDUgQ0VUIFJvYmVydCBTY2hvbHRlIGEgPUU5Y3JpdD0KIDoKPiA+ID4gPiA+IEkgd2FzIHRyaWdnZXJlZCBieSBzb21lIGZhaWxpbmcgdW5pdCB0ZXN0cywgd2hpY2ggc2hvdWxkIGhhdmUgYmVlbgo+ID4gPiA+ID4gc29sdmVkCj4gPiA+ID4gPiBpbiBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IE15IGxhc3QgY29tbWl0IGFjY29yZGluZyB0byBHSVQgd2FzIG5vdmVtYmVyIDE4dGgKPiA+ID4gPiA+IE15IGxhc3QgY29tbWl0IGFjY29yZGluZyB0byBTVk4gd2FzIGRlY2VtYmVyIDNyZAo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IGNvbXBhcmluZyBzdm5sb2cgd2l0aCBnaXRsb2cgbW9zdCBvZiB0aGVzZSBjb21taXRzIGFyZSBsb3N0Ogo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IG1vdmVkIHRvIGdpdAo+ID4gPiA+ID4gLS0tLQo+ID4gPiA+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIGZvciBuZXh0IGRldmVsb3BtZW50IGl0ZXJhdGlvbgo+ID4gPiA+ID4gLS0tLQo+ID4gPiA+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIHJlbGVhc2UgbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAKPiA+ID4gPiA+IC0tLS0KPiA+ID4gPiA+IFtNSkFWQURPQy00OThdICJtb2R1bGUgbm90IGZvdW5kIiB3aGVuIEphdmEgOSBtb2R1bGUtaW5mbyBwcmVzZW50Cj4gPiA+ID4gPiBTdXBwb3J0IGFnZ3JhdGVkIGphdmFkb2MKPiA+ID4gPiA+IC0tLS0KPiA+ID4gPiA+IFNraXAgc2V2ZXJhbCB1bml0dGVzdHMgZm9yIEphdmE5Cj4gPiA+ID4gPiAtLS0tCj4gPiA+ID4gPiBKREstODAzMjIwNSB3YXMgY2xvc2VkIGFzIG5vdCBhbiBpc3N1ZSwgc28gbm90IHNvbHZlZCBpbiBKYXZhOS4KPiA+ID4gPiA+IE5lZWQgdG8gcmV2aWV3IHRoZSBjb25jbHVzaW9uCj4gPiA+ID4gPiAtLS0tCj4gPiA+ID4gPiBVcGdyYWRlIG1vY2tpdG8gdG8gcmVtb3ZlIHdhcm5pbmcgYWJvdXQgaWxsZWdhbCByZWZsZWN0aXZlIGFjY2Vzcwo+ID4gPiA+ID4gLS0tLQo+ID4gPiA+ID4gSW1wcm92ZSBUZXN0SmF2YWRvY1JlcG9ydFRlc3QjdGVzdFRlc3RKYXZhZG9jCj4gPiA+ID4gPiBKOCB3YXJucyBhbmQgY29udGludWVzIHdpdGggbWlzc2luZyBkZXBlbmRlbmN5LCBKOSBmYWlscy4KPiA+ID4gPiA+IEluIGZhY3QgdGVzdCB3YXMgd3Jvbmc6IGRlcGVuZGVuY3kgc2hvdWxkIGhhdmUgYmVlbiBvbiBjbGFzc3BhdGgKPiA+ID4gPiA+IC0tLS0KPiA+ID4gPiA+IHVuaXR0ZXN0IHNob3VsZCBwcmVmZXIgSkFWQV9IT01FIHdoZW4gZXhlY3V0aW5nIGZyb20gY21kbGluZQo+ID4gPiA+ID4gV2hlbiBydW5uaW5nIHdpdGggSmF2YTkrIG5vIG5lZWQgdG8gc3dpdGNoIGZyb20ganJlIHRvIGpkayBkaXJlY3Q9Cm9yeQo+ID4gPiA+ID4gKGplcDIyMCkKPiA+ID4gPiA+IC0tLS0KPiA+ID4gPiA+IE1KQVZBRE9DLTUwMiBVcGRhdGUgREVGQVVMVF9KQVZBX0FQSV9MSU5LUwo+ID4gPiA+ID4gLS0tLQo+ID4gPiA+ID4gc2Vzc2lvbiBpcyByZXF1aXJlZCBwYXJhbWV0ZXIsIHNvIGNhbm5vdCBiZSBudWxsLiBGaXggcmVsYXRlZAo+ID49MjAKPiA+IHVuaXR0ZXN0cwo+ID49MjAKPiA+ID4gPiA+IC0tLS0KPiA+ID4gPiA+IEFkZCBwcm9qZWN0L2FydGlmYWN0IGtleSB0byBzZXQgb2Ygc291cmNlUGF0aHMgdG8gcmVjb2duaXplIHJlYWN0PQpvcgo+ID4gPiA+ID4gcHJvamVjdHMgdmVyc3VzIGRlcGVuZGVuY2llcwo+ID4gPiA+ID4gLS0tLQo+ID4gPiA+ID4gR3JvdXAgc2V0cyBvZiBzb3VyY2VwYXRocyBwZXIgcHJvamVjdCwgaW4gcHJlcGFyZSBvZiB1c2FnZSBvZgo+ID4gPiA+ID4gbW9kdWxlLXNvdXJjZS1wYXRoLgo+ID4gPiA+ID4gLS0tLQo+ID4gPiA+ID4gU3dpdGNoIGZyb20gTGlzdCB0byBDb2xsZWN0aW9uIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHVzZSBTZXRzIHdoZW4KPiA+ID4gPj0yMAo+ID4gPiA+IHByZWZlcnJlZAo+ID4gPiA+PTIwCj4gPiA+ID4gPiAtLS0tCj4gPiA+ID4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgZm9yIG5leHQgZGV2ZWxvcG1lbnQgaXRlcmF0aW9uCj4gPiA+ID4gPiAtLS0tCj4gPiA+ID4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgcmVsZWFzZSBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+ID4gPiA+ID4gLS0tLQo+ID4gPiA+ID49MjAKPiA+ID4gPiA+PTIwCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IE9uIFNhdCwgMTYgRGVjIDIwMTcgMTI6NTM6MjMgKzAxMDAsIEhlcnY9RTkgQk9VVEVNWSA8Cj4gPj0yMAo+ID4gaGVydmUuYm91dGVteUBmcmVlLmZyCj4gPj0yMAo+ID4gPiA+ID4gd3JvdGU6Cj4gPiA+ID4gPiA+IGxvb2tpbmcgYXQgY29tbWl0c0AgY29udGVudCBodHRwczovL2xpc3RzLmFwYWNoZS5vcmcvbGlzdC5odG1sPwo+ID4gPiA+ID4gPiBjb21taXRzQG1hdmVuLmFwYWNoZS5vcmcgd2l0aCBzdWJqZWN0IGNvbnRhaW5pbmcKPiA+PTIwCj4gPiAibWF2ZW4vcGx1Z2lucy90cnVuayIKPiA+PTIwCj4gPiA+ID4gPiA+IGFuZCBwbHVnaW5zIHN2bjJnaXQgbWlycm9yCj4gPiA+ID4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9jb21taXRzLwo+ID4gPiA+ID4gPiB0cnVuawo+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiBvbmx5IDEgY29tbWl0IGlzIG1pc3Npbmc6IG15IGxhdGVzdCBjb21taXQgb24gbWF2ZW4tc2l0ZS1wbHVnaW4KPiA+ID4gPiA+ID4gKHRoZSBsYXN0IGNvbW1pdCBmb3IgR2l0IG1pZ3JhdGlvbiBpcyBub3QgdXNlZnVsKQo+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiBTYW1lIG9uIHNoYXJlZCBzaG93ZWQgbm8gbWlzc2luZyBjb21taXQuCj4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+IHdoYXQgbGF0ZXN0IGNvbW1pdCBvZiBtYXZlbi1qYXZhZG9jLXBsdWdpbiBhcmUgeW91IGxvb2tpbmcgZm9yPwo+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiBIZXJ2PUU5Cj4gPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiA+IExlIHNhbWVkaSAxNiBkPUU5Y2VtYnJlIDIwMTcsIDExOjU2OjMxIENFVCBSb2JlcnQgU2Nob2x0ZSBhID1FOT0KY3JpdCA6Cj4gPiA+ID4gPiA+PiBGb3IgZXZlcnlib2R5IGp1c3QgYSB3YXJuaW5nIEkgZmFjZWQgdG9kYXk6Cj4gPiA+ID4gPiA+PiBJZiB5b3Ugc3dpdGNoIHRvIHRoZSBnaXQgcmVwb3MsIHBsZWFzZSBtYWtlIHN1cmUgYWxsIGNvbW1pdHMgYT0KcmUKPiA+ID4gPiA+ID4+IG1pZ3JhdGVkLgo+ID4gPiA+ID4gPj4gSSBub3RpY2VkIHRoZSBsYXRlc3QgY29tbWl0cyBvZiB0aGUgbWF2ZW4tamF2YWRvYy1wbHVnaW4gZ290Cj4gPiA+ID4gPiA+PiBsb3N0Lgo+ID4gPiA+ID4gPj49MjAKPiA+ID4gPiA+ID4+IHRoYW5rcywKPiA+ID4gPiA+ID4+IFJvYmVydAo+ID4gPiA+ID4gPj49MjAKPiA+ID4gPiA+ID4+IE9uIFNhdCwgMDkgRGVjIDIwMTcgMTc6MDY6MDkgKzAxMDAsIFN0ZXBoZW4gQ29ubm9sbHkKPiA+ID4gPiA+ID4+PTIwCj4gPiA+ID4gPiA+PiA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+ID4gPiA+PiA+IEkgc2VlIHdlIGhhdmUgYSBsYXJnZSBudW1iZXIgb2YgcmVwb3Mgbm93IG9uIGdpdGJveCA7LSkKPiA+ID4gPiA+ID4+ID49MjAKPiA+ID4gPiA+ID4+ID4gT24gVGh1IDcgRGVjIDIwMTcgYXQgMDc6MDAsIEhlcnY9RTkgQk9VVEVNWSA8Cj4gPj0yMAo+ID4gaGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID49MjAKPiA+ID4gPiA+ID4+IHdyb3RlOgo+ID4gPiA+ID4gPj4gPj4gb2ssIEkgZGlkbid0IHVwZGF0ZSBteSByZXBvIGNsb25lOiBub3cgdGhlIHJ1bi1pdHMgcHJvZmlsZSA9CmlzCj4gPiA+ID4gPiA+Pj0yMAo+ID4gPiA+ID4gPj4gYWN0aXZhdGVkCj4gPiA+ID4gPiA+Pj0yMAo+ID4gPiA+ID4gPj4gPj4gdGhlbiB0aGUgcGxhbiBzaG91bGQganVzdCBjb25maXJtICJpdCB3b3JrcyEiIDopCj4gPiA+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+ID4gPj4gPj4gYW5kIGZpbmQgd2hpY2ggam9icyBhcmUgc3BlY2lhbCwgbGlrZSBtYXZlbi1kaXN0LXRvb2wgKHdoaWNoCj4gPj0yMAo+ID4gaGFzCj4gPj0yMAo+ID4gPiA+ID4gPj4gPj4gdG8KPiA+ID4gPiA+ID4+PTIwCj4gPiA+ID4gPiA+PiBiZQo+ID4gPiA+ID4gPj49MjAKPiA+ID4gPiA+ID4+ID4+IHNjaGVkdWxlZCBkYWlseSBpbnN0ZWFkIG9mIGNvZGUgY2hhbmdlLCBhbmQgb25lIHBsYXRmb3JtIG9uPQpseSkKPiA+ID4gPiA+ID4+ID4+PTIwCj4gPiA+ID4gPiA+PiA+PiBSZWdhcmRzLAo+ID4gPiA+ID4gPj4gPj49MjAKPiA+ID4gPiA+ID4+ID4+IEhlcnY9RTkKPiA+ID4gPiA+ID4+ID4+PTIwCj4gPiA+ID4gPiA+PiA+PiBMZSBtZXJjcmVkaSA2IGQ9RTljZW1icmUgMjAxNywgMjM6NTg6NDUgQ0VUIFN0ZXBoZW4gQ29ubm9sbD0KeSBhCj4gPj0yMAo+ID4gPUU5Y3JpdAo+ID49MjAKPiA+ID4gPiA+ID4+ID4+ID4gT24gV2VkIDYgRGVjIDIwMTcgYXQgMjI6MzgsIEhlcnY9RTkgQk9VVEVNWSA8Cj4gPj0yMAo+ID4gaGVydmUuYm91dGVteUBmcmVlLmZyCj4gPj0yMAo+ID4gPiA+ID4gPj4gPj4gd3JvdGU6Cj4gPiA+ID4gPiA+PiA+PiA+ID4gTm93IHRoYXQgd2UgaGF2ZSAyIEFTRiBPcmdhbml6YXRpb24gSmVua2lucyBqb2JzIChvbmUgZj0Kb3IKPiA+ID4gPj0yMAo+ID4gPiA+IGdpdGJveAo+ID4gPiA+PTIwCj4gPiA+ID4gPiA+PiBbMV0KPiA+ID4gPiA+ID4+PTIwCj4gPiA+ID4gPiA+PiA+PiBhbmQKPiA+ID4gPiA+ID4+ID4+PTIwCj4gPiA+ID4gPiA+PiA+PiA+ID4gb25lCj4gPiA+ID4gPiA+PiA+PiA+ID4gZm9yIGdpdC13aXA6IHRoYW5rIHlvdSBTdGVwaGVuKSBhbmQgdGhhdCBpdCBsb29rcyBxdWl0ZQo+ID4gPiA+ID4gPj49MjAKPiA+ID4gPiA+ID4+IHN1Y2Nlc3NmdWwsCj4gPiA+ID4gPiA+Pj0yMAo+ID4gPiA+ID4gPj4gPj4gbGV0J3MKPiA+ID4gPiA+ID4+ID4+PTIwCj4gPiA+ID4gPiA+PiA+PiA+ID4gcGxhbgo+ID4gPiA+ID4gPj4gPj4gPiA+IHRoZSBuZXh0IHN0ZXBzLgo+ID4gPiA+ID4gPj4gPj4gPiA+PTIwCj4gPiA+ID4gPiA+PiA+PiA+ID4gSGVyZSBpcyB3aGF0IEkgc2VlOgo+ID4gPiA+ID4gPj4gPj4gPiA+IDEuIHJlbW92YWwgb2YgaGFuZC1kZWZpbmVkIEplbmtpbnMgam9icyB0aGF0IGFyZSBub3cKPiA+ID4gPiA+ID4+ID4+ID4gPiBkdXBsaWNhdGVzCj4gPiA+ID4gPiA+PiA+PiA+ID49MjAKPiA+ID4gPiA+ID4+ID4+ID4gPiAyLiBwcmVwYXJhdGlvbiBvZiB0aGUgNjAgbmV3IGVtcHR5IGdpdCByZXBvcyBmb3Igc2hhcmVkPQogJgo+ID4gPiA+PTIwCj4gPiA+ID4gcGx1Z2lucwo+ID4gPiA+PTIwCj4gPiA+ID4gPiA+PiA+PiA+ID4gMy4gbWlncmF0aW9uIG9mIHRoZSAxIHNoYXJlZCBjb21wb25lbnQgYW5kIDEgcGx1Z2luIHVzaT0KbmcKPiA+ID4gPiA+ID4+ID4+PTIwCj4gPiA+ID4gPiA+PiA+PiBtaWdyYXRlLSouc2gKPiA+ID4gPiA+ID4+ID4+PTIwCj4gPiA+ID4gPiA+PiA+PiA+ID4gc2NyaXB0cwo+ID4gPiA+ID4gPj4gPj4gPiA+IFszXSB0byB0ZXN0IGFuZCBldmVudHVhbGx5IHJld29yayB0aGUgSmVua2luc2ZpbGUgKEkKPiA+PTIwCj4gPiBzdXBwb3NlCj4gPj0yMAo+ID4gPiA+ID4gPj4gPj4gPiA+IGl0Cj4gPiA+ID4gPiA+Pj0yMAo+ID4gPiA+ID4gPj4gd2lsbAo+ID4gPiA+ID4gPj49MjAKPiA+ID4gPiA+ID4+ID4+ID4gPiByZXF1aXJlCj4gPiA+ID4gPiA+PiA+PiA+ID4gc29tZSBsaXR0bGUgY2hhbmdlLCB0byBydW4gYWRkICJydW4taXRzIiBwcm9maWxlKQo+ID4gPiA+ID4gPj4gPj4gPj0yMAo+ID4gPiA+ID4gPj4gPj4gPiBBcyBmYXIgYXMgSSByZWNhbGwsIEkgYWRkZWQgLVArcnVuLWl0cyBhbHJlYWR5Cj4gPiA+ID4gPiA+PiA+PiA+PTIwCj4gPiA+ID4gPiA+PiA+PiA+IEZvciB0aGUgcGx1Z2luLCBJJ2QgbGlrZSB0byBkbyB0aGUgam9iIGZvcgo+ID4gPiA+ID4gPj4gPj4gPiBtYXZlbi1zaXRlLXBsdWdpbiwKPiA+ID4gPiA+ID4+PTIwCj4gPiA+ID4gPiA+PiBzaW5jZSB3ZQo+ID4gPiA+ID4gPj49MjAKPiA+ID4gPiA+ID4+ID4+ID4gPiBleHBlY3QKPiA+ID4gPiA+ID4+ID4+ID4gPiB0byByZWxlYXNlIGl0IHNvb24uCj4gPiA+ID4gPiA+PiA+PiA+ID4gRm9yIHRoZSBzaGFyZWQgY29tcG9uZW50LCBJIGRvbid0IGtub3cgaWYgdGhlcmUgaXMgYSBiZT0Kc3QKPiA+ID4gPiA+ID4+PTIwCj4gPiA+ID4gPiA+PiBjYW5kaWRhdGUKPiA+ID4gPiA+ID4+PTIwCj4gPiA+ID4gPiA+PiA+PiA+ID4gNC4gb25jZSBwcmV2aW91cyBzdGVwIGlzIG9rLCBkbyB0aGUgZnVsbCBtaWdyYXRpb246IGlmCj4gPj0yMAo+ID4gdGhlcmUKPiA+PTIwCj4gPiA+ID4gYXJlCj4gPiA+ID49MjAKPiA+ID4gPiA+ID4+ID4+ID4gPiB2b2x1bnRlZXJzCj4gPiA+ID4gPiA+PiA+PiA+ID4gZm9yIGhlbHBpbmcsIHRoYXQgd291bGQgYmUgZ3JlYXQsIHNpbmNlIHBvcHVsYXRpbmcgNjAgZz0KaXQKPiA+ID4gPiA+ID4+ID4+ID4gPiByZXBvcwo+ID4gPiA+ID4gPj4gPj49MjAKPiA+ID4gPiA+ID4+ID4+IHdvbid0Cj4gPiA+ID4gPiA+PiA+PiBiZQo+ID4gPiA+ID4gPj4gPj49MjAKPiA+ID4gPiA+ID4+ID4+ID4gPiByZWFsbHkgZnVuLi4uCj4gPiA+ID4gPiA+PiA+PiA+ID49MjAKPiA+ID4gPiA+ID4+ID4+ID4gPiBBbmQgYXMgcGFydCBvZiA2MCBlbXB0eSBnaXQgcmVwb3MgY3JlYXRpb24sIEkgcHJvcG9zZSB0bwo+ID4gPiA+PTIwCj4gPiA+ID4gbWlncmF0ZQo+ID4gPiA+PTIwCj4gPiA+ID4gPiA+PiB0aGUKPiA+ID4gPiA+ID4+PTIwCj4gPiA+ID4gPiA+PiA+PiA+ID4gIkdvb2dsZQo+ID4gPiA+ID4gPj4gPj4gPiA+IHJlcG8gbWFuaWZlc3QiIG1hdmVuLWFnZ3JlZ2F0b3IgWzRdIHRvIEFTRjogbXkgcGVyc29uYWwKPiA+ID4gPiA+ID4+ID4+ID4gPiB1c2UKPiA+ID4gPiA+ID4+ID4+ID4gPiBoYXMKPiA+ID4gPiA+ID4+PTIwCj4gPiA+ID4gPiA+PiBiZWVuCj4gPiA+ID4gPiA+Pj0yMAo+ID4gPiA+ID4gPj4gPj4gcXVpdGUKPiA+ID4gPiA+ID4+ID4+PTIwCj4gPiA+ID4gPiA+PiA+PiA+ID4gc3VjY2Vzc2Z1bCwgSSBob3BlIGl0J3MgdGhlIHNhbWUgZm9yIG90aGVycy4gUGVyaGFwcyB0aD0KZXJlCj4gPj0yMAo+ID4gYXJlCj4gPj0yMAo+ID4gPiA+ID4gPj4gPj4gYmV0dGVyCj4gPiA+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+ID4gPj4gPj4gPiA+IGlkZWFzCj4gPiA+ID4gPiA+PiA+PiA+ID4gZm9yIGl0cyBuYW1lOiBtYXZlbi1hZ2dyZWdhdG9yCj4gPiA+ID4gPiA+PiA+PiA+ID49MjAKPiA+ID4gPiA+ID4+ID4+ID4gPiBBbnkgb3RoZXIgaWRlYT8gYW55IG9iamVjdGlvbj8KPiA+ID4gPiA+ID4+ID4+ID4gPj0yMAo+ID4gPiA+ID4gPj4gPj4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4gPiA+PiA+PiA+ID49MjAKPiA+ID4gPiA+ID4+ID4+ID4gPiBIZXJ2PUU5Cj4gPiA+ID4gPiA+PiA+PiA+ID49MjAKPiA+ID4gPiA+ID4+ID4+ID4gPiBbMV0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy8KPiA+PTIwCj4gPiB2aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi0+ID4KPiA+PTIwCj4gPiA+ID4gYm94Lwo+ID4gPiA+PTIwCj4gPiA+ID4gPiA+PiA+PiA+ID4gWzJdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvCj4gPj0yMAo+ID4gdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tPiA+Cj4gPj0yMAo+ID4gPiA+IHdpcC8KPiA+ID4gPj0yMAo+ID4gPiA+ID4gPj4gPj4gPiA+IFszXQo+ID4gPiA+ID4gPj49MjAKPiA+ID4gPiA+ID4+IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL21hdmVuL3NhbmRib3gvdHJ1bmsvc2NyaXB0cy9naXQvCj4gPiA+ID4gPiA+Pj0yMAo+ID4gPiA+ID4gPj4gPj4gPiA+IFs0XSBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tYWdncmVnYXRvcgo+ID4gPiA+ID4gPj4gPj49MjAKPiA+ID4gPiA+ID4+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiA+PTIwCj4gPiA+ID4gLS0tLS0tLS0tCj4gPiA+ID49MjAKPiA+ID4gPiA+ID4+ID4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPj4gPj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS49Cm9yZwo+ID4gPiA+ID4gPj4gPj4gPiA+PTIwCj4gPiA+ID4gPiA+PiA+PiA+ID4gLS0KPiA+ID4gPiA+ID4+ID4+ID49MjAKPiA+ID4gPiA+ID4+ID4+ID4gU2VudCBmcm9tIG15IHBob25lCj4gPiA+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+ID4gPj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID49MjAKPiA+ID4gPiAtLS0tLS0tLS0KPiA+ID4gPj0yMAo+ID4gPiA+ID4gPj4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4+ID4+PTIwCj4gPiA+ID4gPiA+PiA+PiAtLQo+ID4gPiA+ID4gPj4gPj0yMAo+ID4gPiA+ID4gPj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+ID4gPiA+ID4+PTIwCj4gPiA+ID4gPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PTIwCj4gPiAtLS0tLS0tLS0KPiA+PTIwCj4gPiA+ID4gPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PTIwCj4gPiAtLS0tLS0tLS0KPiA+PTIwCj4gPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PTIwCj4gPiAtLS0tLS0tLS0KPiA+PTIwCj4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+PTIwCj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KPTJELQo+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MTQxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBPY3QgIDMgMjM6MDI6MDMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTQxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEE5Q0Q0MTAyMjUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAgMyBPY3QgMjAxNyAyMzowMjowMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDUwMjc0IGludm9rZWQgYnkgdWlkIDUwMCk7IDMgT2N0IDIwMTcgMjM6MDI6MDIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUwMTE0IGludm9rZWQgYnkgdWlkIDUwMCk7IDMgT2N0IDIwMTcgMjM6MDI6MDIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0OTk2NiBpbnZva2VkIGJ5IHVpZCA5OSk7IDMgT2N0IDIwMTcgMjM6MDI6MDIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDAzIE9jdCAyMDE3IDIzOjAyOjAyICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQTBEMTIxODJDNjAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsICAzIE9jdCAyMDE3IDIzOjAyOjAxICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEuMjk5ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xLjI5OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgVVJJQkxfQkxPQ0tFRD0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGZNcFZtUGV1SzlIVCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVR1ZSwgIDMgT2N0IDIwMTcgMjM6MDE6NTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDEzLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTM1XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDU0NUQ3NUYxRDUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsICAzIE9jdCAyMDE3IDIzOjAxOjU5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDcxIHdpdGggTUUKCWlkIEhCMXMxdzAwODIwVWZkeTAzQjFzOHQ7IFdlZCwgMDQgT2N0IDIwMTcgMDE6MDE6NTMgKzAyMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogV2VkLCAwNCBPY3QgMjAxNyAwMTowMTo1MyArMDIwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBkZXBlbmRlbmN5OmdvLW9mZmxpbmUgYnJva2VuPwpEYXRlOiBXZWQsIDA0IE9jdCAyMDE3IDAxOjAxOjUyICswMjAwCk1lc3NhZ2UtSUQ6IDwzOTgwNzczLk1lakdBYUIxcW9AZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zNS1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpJbi1SZXBseS1UbzogPDQ5NTk1MjJBLTIwOTAtNDIzOS04MjMzLUUzMjAwMERFOUE1QkBhcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8NDk1OTUyMkEtMjA5MC00MjM5LTgyMzMtRTMyMDAwREU5QTVCQGFwYWNoZS5vcmc+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCnRyeWluZyBteSBjaGFuY2UsIGJlY2F1c2UgeW91IHByZXBhcmVkIGEgcGVyZmVjdCBkZW1vIHRoZW4gd2Ugc2hvdWxkIGJlIGFibD0KZT0yMAp0byBmaW5kIHdoZXJlIHRoZSBpc3N1ZSBpcy4uLgoKSGVyZSBhcmUgbXkgZmluZGluZ3M6Cm12biBkZXBlbmNlbmR5OmdvLW9mZmxpbmUgb3V0cHV0IGZvciBtYXZlbi1yZXNvdXJjZXMtcGx1Z2luOgoKW0lORk9dIFBsdWdpbiBSZXNvbHZlZDogbWF2ZW4tcmVzb3VyY2VzLXBsdWdpbi0yLjYuamFyCltJTkZPXSAgICAgUGx1Z2luIERlcGVuZGVuY3kgUmVzb2x2ZWQ6IG1hdmVuLXBsdWdpbi1hcGktMi4wLjYuamFyCltJTkZPXSAgICAgUGx1Z2luIERlcGVuZGVuY3kgUmVzb2x2ZWQ6IG1hdmVuLXByb2plY3QtMi4wLjYuamFyCltJTkZPXSAgICAgUGx1Z2luIERlcGVuZGVuY3kgUmVzb2x2ZWQ6IG1hdmVuLWNvcmUtMi4wLjYuamFyCltJTkZPXSAgICAgUGx1Z2luIERlcGVuZGVuY3kgUmVzb2x2ZWQ6IG1hdmVuLWFydGlmYWN0LTIuMC42LmphcgpbSU5GT10gICAgIFBsdWdpbiBEZXBlbmRlbmN5IFJlc29sdmVkOiBtYXZlbi1zZXR0aW5ncy0yLjAuNi5qYXIKW0lORk9dICAgICBQbHVnaW4gRGVwZW5kZW5jeSBSZXNvbHZlZDogbWF2ZW4tbW9kZWwtMi4wLjYuamFyCltJTkZPXSAgICAgUGx1Z2luIERlcGVuZGVuY3kgUmVzb2x2ZWQ6IG1hdmVuLW1vbml0b3ItMi4wLjYuamFyCltJTkZPXSAgICAgUGx1Z2luIERlcGVuZGVuY3kgUmVzb2x2ZWQ6IHBsZXh1cy1jb250YWluZXItZGVmYXVsdC0xLjAtYWxwaGEtOS0Kc3RhYmxlLTEuamFyCltJTkZPXSAgICAgUGx1Z2luIERlcGVuZGVuY3kgUmVzb2x2ZWQ6IHBsZXh1cy11dGlscy0yLjAuNS5qYXIKW0lORk9dICAgICBQbHVnaW4gRGVwZW5kZW5jeSBSZXNvbHZlZDogbWF2ZW4tZmlsdGVyaW5nLTEuMS5qYXIKW0lORk9dICAgICBQbHVnaW4gRGVwZW5kZW5jeSBSZXNvbHZlZDogcGxleHVzLWludGVycG9sYXRpb24tMS4xMy5qYXIKCgp0aGVuIG9uIHRoZSBmYWlsdXJlOiBtdm4gLVggLW8gY29tcGlsZQoKW0lORk9dIC0tLSBtYXZlbi1yZXNvdXJjZXMtcGx1Z2luOjIuNjpyZXNvdXJjZXMgKGRlZmF1bHQtcmVzb3VyY2VzKSBAPTIwCmRlcGVuZGVuY3ktcGx1Z2luLWJ1ZyAtLS0KW0RFQlVHXSBVc2luZyBtaXJyb3IgY2VudHJhbCAoaHR0cDovL2xvY2FsaG9zdDo4MDgxL25leHVzL2NvbnRlbnQvZ3JvdXBzLwpwdWJsaWMpIGZvciBjZW50cmFsIChodHRwOi8vcmVwbzEubWF2ZW4ub3JnL21hdmVuMikuCltXQVJOSU5HXSBUaGUgUE9NIGZvciBvcmcuYXBhY2hlLm1hdmVuOm1hdmVuLWNvcmU6amFyOjIuMC42IGlzIG1pc3NpbmcsIG5vPQo9MjAKZGVwZW5kZW5jeSBpbmZvcm1hdGlvbiBhdmFpbGFibGUKW1dBUk5JTkddIFRoZSBQT00gZm9yIG9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tbW9uaXRvcjpqYXI6Mi4wLjYgaXMgbWlzc2luZywgPQpubz0yMApkZXBlbmRlbmN5IGluZm9ybWF0aW9uIGF2YWlsYWJsZQpbV0FSTklOR10gVGhlIFBPTSBmb3Igb3JnLmNvZGVoYXVzLnBsZXh1czpwbGV4dXMtdXRpbHM6amFyOjIuMC41IGlzIG1pc3Npbmc9Ciw9MjAKbm8gZGVwZW5kZW5jeSBpbmZvcm1hdGlvbiBhdmFpbGFibGUKW1dBUk5JTkddIFRoZSBQT00gZm9yIG9yZy5hcGFjaGUubWF2ZW4uc2hhcmVkOm1hdmVuLWZpbHRlcmluZzpqYXI6MS4xIGlzPTIwCm1pc3NpbmcsIG5vIGRlcGVuZGVuY3kgaW5mb3JtYXRpb24gYXZhaWxhYmxlCltXQVJOSU5HXSBUaGUgUE9NIGZvciBvcmcuY29kZWhhdXMucGxleHVzOnBsZXh1cy1pbnRlcnBvbGF0aW9uOmphcjoxLjEzIGlzPQo9MjAKbWlzc2luZywgbm8gZGVwZW5kZW5jeSBpbmZvcm1hdGlvbiBhdmFpbGFibGUKW0RFQlVHXSBEZXBlbmRlbmN5IGNvbGxlY3Rpb24gc3RhdHM6IHtDb25mbGljdE1hcmtlci5hbmFseXplVGltZT0zRDAsPTIwCkNvbmZsaWN0TWFya2VyLm1hcmtUaW1lPTNEMCwgQ29uZmxpY3RNYXJrZXIubm9kZUNvdW50PTNENDEsPTIwCkNvbmZsaWN0SWRTb3J0ZXIuZ3JhcGhUaW1lPTNEMCwgQ29uZmxpY3RJZFNvcnRlci50b3Bzb3J0VGltZT0zRDAsPTIwCkNvbmZsaWN0SWRTb3J0ZXIuY29uZmxpY3RJZENvdW50PTNEMTgsIENvbmZsaWN0SWRTb3J0ZXIuY29uZmxpY3RJZEN5Y2xlQ291bj0KdD0zRDAsPTIwCkNvbmZsaWN0UmVzb2x2ZXIudG90YWxUaW1lPTNEMSwgQ29uZmxpY3RSZXNvbHZlci5jb25mbGljdEl0ZW1Db3VudD0zRDM4LD0yMApEZWZhdWx0RGVwZW5kZW5jeUNvbGxlY3Rvci5jb2xsZWN0VGltZT0zRDU4LD0yMApEZWZhdWx0RGVwZW5kZW5jeUNvbGxlY3Rvci50cmFuc2Zvcm1UaW1lPTNEMX0KW0RFQlVHXSBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM6bWF2ZW4tcmVzb3VyY2VzLXBsdWdpbjpqYXI6Mi42OgpbREVCVUddICAgIG9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tcGx1Z2luLWFwaTpqYXI6Mi4wLjY6Y29tcGlsZQpbREVCVUddICAgIG9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tcHJvamVjdDpqYXI6Mi4wLjY6Y29tcGlsZQpbREVCVUddICAgICAgIG9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tcHJvZmlsZTpqYXI6Mi4wLjY6Y29tcGlsZQpbREVCVUddICAgICAgIG9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tYXJ0aWZhY3QtbWFuYWdlcjpqYXI6Mi4wLjY6Y29tcGlsZQpbREVCVUddICAgICAgICAgIG9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tcmVwb3NpdG9yeS1tZXRhZGF0YTpqYXI6Mi4wLjY6Y29tcGk9CmxlCltERUJVR10gICAgICAgb3JnLmFwYWNoZS5tYXZlbjptYXZlbi1wbHVnaW4tcmVnaXN0cnk6amFyOjIuMC42OmNvbXBpbGUKW0RFQlVHXSAgICBvcmcuYXBhY2hlLm1hdmVuOm1hdmVuLWNvcmU6amFyOjIuMC42OmNvbXBpbGUKW0RFQlVHXSAgICBvcmcuYXBhY2hlLm1hdmVuOm1hdmVuLWFydGlmYWN0OmphcjoyLjAuNjpjb21waWxlCltERUJVR10gICAgb3JnLmFwYWNoZS5tYXZlbjptYXZlbi1zZXR0aW5nczpqYXI6Mi4wLjY6Y29tcGlsZQpbREVCVUddICAgIG9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tbW9kZWw6amFyOjIuMC42OmNvbXBpbGUKW0RFQlVHXSAgICBvcmcuYXBhY2hlLm1hdmVuOm1hdmVuLW1vbml0b3I6amFyOjIuMC42OmNvbXBpbGUKW0RFQlVHXSAgICBvcmcuY29kZWhhdXMucGxleHVzOnBsZXh1cy1jb250YWluZXItZGVmYXVsdDpqYXI6MS4wLWFscGhhLTktCnN0YWJsZS0xOmNvbXBpbGUKW0RFQlVHXSAgICAgICBqdW5pdDpqdW5pdDpqYXI6My44LjE6Y29tcGlsZQpbREVCVUddICAgICAgIGNsYXNzd29ybGRzOmNsYXNzd29ybGRzOmphcjoxLjEtYWxwaGEtMjpjb21waWxlCltERUJVR10gICAgb3JnLmNvZGVoYXVzLnBsZXh1czpwbGV4dXMtdXRpbHM6amFyOjIuMC41OmNvbXBpbGUKW0RFQlVHXSAgICBvcmcuYXBhY2hlLm1hdmVuLnNoYXJlZDptYXZlbi1maWx0ZXJpbmc6amFyOjEuMTpjb21waWxlCltERUJVR10gICAgb3JnLmNvZGVoYXVzLnBsZXh1czpwbGV4dXMtaW50ZXJwb2xhdGlvbjpqYXI6MS4xMzpjb21waWxlCgoKQXMgeW91IGNhbiBzZWUsIHRoZSBtaXNzaW5nIGZpbGVzIG1hdmVuLXByb2ZpbGUtMi4wLjYuamFyLCBtYXZlbi1hcnRpZmFjdC0KbWFuYWdlci0yLjAuNi5qYXIsIG1hdmVuLXJlcG9zaXRvcnktbWV0YWRhdGEtMi4wLjYuamFyLCBtYXZlbi1wbHVnaW4tCnJlZ2lzdHJ5LTIuMC42LmphciBhbmQgY2xhc3N3b3JsZHMtMS4xLWFscGhhLTIuamFyIGFyZSBpbiB0aGUgbWF2ZW4tcmVzb3VyYz0KZXMtCnBsdWdpbiBlZmZlY3RpdmUgZGVwZW5kZW5jaWVzIGJ1dCBub3QgZGV0ZWN0ZWQgYnkgZGVwZW5kZW5jeSBwbHVnaW4KCgpUaGVuIHlvdSdyZSByaWdodCwgaXQncyBhIGRlcGVuZGVuY3kgcGx1Z2luIGJ1Zy4KCkkgcmVtYXJrZWQgdGhhdCB0aGUgcGx1Z2luIHZlcnNpb24gdXNlZCB3YXMgMi44IGJ1dCBub3QgdGhlIGxhdGVzdCAzLjAuMgoKVGhlbiBJIGFkZGVkIGEgcGx1Z2luTWFuYWdlbWVudCBzZWN0aW9uIHRvIHNlbGVjdCB2ZXJzaW9uIDMuMC4yIGFuZCByZS1yYW4gPQp0aGU9MjAKdGVzdDogeW91J2xsIHNlZSB0aGUgb3V0cHV0IGlzIGNvbXBsZXRlbHkgZGlmZmVyZW50LgoKQW5kIHRoZXJlIGlzIG5vIGlzc3VlIGFueSBtb3JlCgpSZWdhcmRzLAoKSGVydj1DMz1BOQoKTGUgbWVyY3JlZGkgMjAgc2VwdGVtYnJlIDIwMTcsIDIyOjQ4OjE1IENFU1QgQmVuZWRpa3QgUml0dGVyIGEgPUMzPUE5Y3JpdCA6Cj4gSGksCj49MjAKPiBhcyBmYXIgYXMgSSB1bmRlcnN0YW5kIGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBjYWxsIG12bgo+IGRlcGVuZGVuY3k6Z28tb2ZmbGluZSBhbmQgZnJvbSB0aGVyZSBvbiB3b3JrIGluIG9mZmxpbmUgbW9kZSAobXZuIC1vKS49MjAKPiBJPUUyPTgwPTk5dmUgcHV0IGEgbWluaW1hbCBleGFtcGxlIHRvZ2V0aGVyIFsxXSB0aGF0IGRlbW9uc3RyYXRlcyB0aGF0IHRoPQppcwo+IGN1cnJlbnRseSBkb2VzIG5vdCB3b3JrLiBBbSBJIG1pc3NpbmcgYW55dGhpbmc/Cj49MjAKPiBUaGFuayB5b3UhCj4gQmVuZWRpa3QKPj0yMAo+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vYnJpdHRlci9kZXBlbmRlbmN5LXBsdWdpbi1idWcKPj0yMAo+PTIwCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDIyOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgT2N0IDEzIDAwOjEwOjAzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDIyOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBEQTg2ODEwODU3Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMTMgT2N0IDIwMTcgMDA6MTA6MDMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1MzYzOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMyBPY3QgMjAxNyAwMDoxMDowMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTM1NjMgaW52b2tlZCBieSB1aWQgNTAwKTsgMTMgT2N0IDIwMTcgMDA6MTA6MDMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MzUzNSBpbnZva2VkIGJ5IHVpZCA5OSk7IDEzIE9jdCAyMDE3IDAwOjEwOjAyIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAxMyBPY3QgMjAxNyAwMDoxMDowMiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDZDRTVBMTgzMjk3Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAxMyBPY3QgMjAxNyAwMDoxMDowMSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xLjMKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEuMyB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBhSWpBdFFtcE40cGQgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglGcmksIDEzIE9jdCAyMDE3IDAwOjEwOjAwICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwNC5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyNl0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAxOTY3QzVGREUwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAxMyBPY3QgMjAxNyAwMDoxMDowMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQwOCB3aXRoIE1FCglpZCBMbzl5MXcwMEYyMFVmZHkwM285em5GOyBGcmksIDEzIE9jdCAyMDE3IDAyOjA5OjU5ICswMjAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IEZyaSwgMTMgT2N0IDIwMTcgMDI6MDk6NTkgKzAyMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gUmVwb3J0aW5nIEV4ZWMgdmVyc2lvbiAxLjQKRGF0ZTogRnJpLCAxMyBPY3QgMjAxNyAwMjowOTo1OCArMDIwMApNZXNzYWdlLUlEOiA8Mzk4MzY5Ny4wSERHUFljQWZBQGdpZ2E+ClVzZXItQWdlbnQ6IEtNYWlsLzUuMi4zIChMaW51eC80LjEwLjAtMzctZ2VuZXJpYzsgS0RFLzUuMzEuMDsgeDg2XzY0OyA7ICkKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN0JpdApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9InVzLWFzY2lpIgoKSGksCgpXZSBzb2x2ZWQgMyBpc3N1ZXM6Cmh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KcHJvamVjdElkPTEyMzE3OTIyJnZlcnNpb249MTIzMzg2MjEKClN0YWdpbmcgcmVwbzoKaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3MgpodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzcyL29yZy9hcGFjaGUvCm1hdmVuL3JlcG9ydGluZy9tYXZlbi1yZXBvcnRpbmctZXhlYy8xLjQvbWF2ZW4tcmVwb3J0aW5nLWV4ZWMtMS40LXNvdXJjZS0KcmVsZWFzZS56aXAKClNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgptYXZlbi1yZXBvcnRpbmctZXhlYy0xLjQtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6IApjMWYzYzEyYTI0ZWM0NTEzZjVhZGJiNDE1MmVjNmEzMTRmMGM0YTJiCgpTdGFnaW5nIHNpdGU6Cmh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3NoYXJlZC1hcmNoaXZlcy9tYXZlbi1yZXBvcnRpbmctZXhlYy1MQVRFU1QvCiAgICAgCkd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgpodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAogICAgIApWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgogICAgIAogICAgWyBdICsxCiAgICBbIF0gKzAKICAgIFsgXSAtMQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MDE1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBTZXAgMTMgMTc6NDU6NTkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDE1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDNCQzk0MUE0NTUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAxMyBTZXAgMjAxNyAxNzo0NTo1OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDY1MjQ0IGludm9rZWQgYnkgdWlkIDUwMCk7IDEzIFNlcCAyMDE3IDE3OjQ1OjU4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2NTEzNiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMyBTZXAgMjAxNyAxNzo0NTo1NyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY1MTE2IGludm9rZWQgYnkgdWlkIDk5KTsgMTMgU2VwIDIwMTcgMTc6NDU6NTcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDEzIFNlcCAyMDE3IDE3OjQ1OjU3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMDhBMTExQTc5QTc7CglXZWQsIDEzIFNlcCAyMDE3IDE3OjQ1OjU3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuNzIxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjcyMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEw4S3BNSk9HekVZSjsgV2VkLCAxMyBTZXAgMjAxNyAxNzo0NTo1NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNy4yMF0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBCMzEwQzVGM0ZFOwoJV2VkLCAxMyBTZXAgMjAxNyAxNzo0NTo1NSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBLYXJsLUhlaW56cy1NYWNCb29rLVByby5mcml0ei5ib3ggKFsxNzguMTIuODguMTczXSkgYnkKIG1haWwuZ214LmNvbSAobXJnbXgxMDIgWzIxMi4yMjcuMTcuMTY4XSkgd2l0aCBFU01UUFNBIChOZW1lc2lzKSBpZAogME1MaTF2LTFkc1NpUDNJTzMtMDAwdjFzOyBXZWQsIDEzIFNlcCAyMDE3IDE5OjQ1OjU0ICswMjAwClJlcGx5LVRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBbUkVTVUxUXSBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gSkxpbmsgUGx1Z2luIHZlcnNpb24KIDMuMC4wLWFscGhhLTEgKEZpcnN0IFB1YmxpYyBSZWxlYXNlKQpGcm9tOiBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LAogIk1hdmVuIFByb2plY3QgTWFuYWdlbWVudCBDb21taXR0ZWUgTGlzdFwiIiA8cHJpdmF0ZUBtYXZlbi5hcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8NzZmODM0MzEtZThjNy1mNmM1LTA4ZjYtY2QyNWQ0ZTVhNGMyQGdteC5kZT4KTWVzc2FnZS1JRDogPDNiMzRhYTM0LTJlMzQtODZjZS1kMWQ0LTkwMjc3NTUyMWY5NEBnbXguZGU+CkRhdGU6IFdlZCwgMTMgU2VwIDIwMTcgMTk6NDU6NTQgKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi4yLjEKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDw3NmY4MzQzMS1lOGM3LWY2YzUtMDhmNi1jZDI1ZDRlNWE0YzJAZ214LmRlPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDpyRWovYWl0bWlmOVo1WHYvOUVWbmpSWXIrYjFnTzhLV2dxUWFiYlN6VlhNaUpMaUJ0YVIKIHVpTXlnWjFUcXN5dEZNREMrVllVdVdhLzJuVGZnaVVaZDhzbUt4V3R2RlUwUGxwb3VrVzBhZGM3dytwUVorVTZKNXhBbGRkCiBWSDZONHFERTM1V05vZkxBMjZXL3BNTGwzd3ZmWTdHRlh0dWZ6eXBLQzdLbWJaeXhNS0N3aWJHelNIL3UySkNLZkVpOW5hTAogVFl2RXdqVm9ySXlqdVY5TURKZXBRPT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDowRGxscFVyMnFBRT06MFVsWVVZSWdKeXhpb2tNcEJtTHIvaQogWUN2aFpwYjNXOUpVdEFJd3R3TmZOSW1KTjdqMzJ1aG9RWCs2YlM5cEwzZEdrVUk4NzNJd3ovelpDV1YzUm5YaGhjVHM3S0hhTQogeXJNakVUTzBTM0FGTjB3UC8ybWFxUldLYkVBTzNJdEwrME5CdjlxNUZyaEpUUTlBV2xvcWFtb3M2RnpMZ0tMRlpQQjhSenVYUAogRXdXdEE4aFRpQktUQ2hmTXhlaytQWWM0Z1NRcW1uMXRNcGJQQi8yYVhYcC9mTlMxTlZRWW4weW1QOTRoam9FaW9pRW1aT1VrOAogcjB2bGVuMHlta0oveFNra3p1SmU4QllESXYyczlHaGx4T21sWGt6R3lQcjh0c1VFa01iRU14MXpEeXI1cHM4Z2FUWmRIV2R5dQogZTJmeGRVbnFXRURiMmdjSS9ZRGFVVHc4STBPelhmTTVRaHh0cHJrdXEvYkU4dmwxUEdwSWRoZXhmOXQ0VnZqdFpuTzhSdHpzdAogZE1pYzN6N3lHWXpJZ0l4cHhaZWFGWWdaSll4Sys5Q3JFdjJmZFROUllRWHkrZjJPbzRPS3p1eUtDMHBGWnJGemdWS2NrYUJTQwogREtYQWNzNEdzNmhNdTNkRUV3Vjc1TmgyS0xCcElYSTA2NEN3R2h6RFRqNENJSFVuUUJCcXlHTGJKdHNKdWxudGFzRXQ2d2JlZgogU3piZzZ5NVJocUNWeDIrWFU5K1phUER0a0FSczRBMWhvSmxaa2FPOGtrQWhiaE1BbklIQVJhTElhSFkwL3Z6a3EzdVpaRm8rSwogSW1tcEIrTGUyTk9PL1FMV2pJY2hZMWFXcjI0bnRaYkhoeTFnV1RMeTRzMGxiQ2JxMitSYVdTTEN4MUhuN2VmclAwS1B4aWRRVAogNzF1V2JuZ3ZIUmN0QWNEY2k3VktTdVFyc3FFVjlmT3I4NEJrU0toZ1FJT05mNVdhL3ZVRVBKQkRQOENwVnFPYzdxaHlDdXc5QgogOGFPNXE2QXdsbE4rTVZQcXdvZE1XT0ZUSHV2OHZMNG1pZmpNYzl0N2JjUGZQaXlZckdFSVU4YVRRLzMxK3FTVDNocnp5SDhKUAogTzRFamN3VEZBaEVNQ0laMnRGdnZicG50T0dManVqQXhidU4xeTRTa041WlhTTlBvTm89CgpIaSwKClRoZSB2b3RlIGhhcyBwYXNzZWQgd2l0aCB0aGUgZm9sbG93aW5nIHJlc3VsdDoKCisxIDogUm9iZXJ0IFNjaG9sdGUsIEhlcnbDqSBCb3V0ZW15LCBLYXJsIEhlaW56IE1hcmJhaXNlCgpQTUMgcXVvcnVtOiByZWFjaGVkLgoKSSB3aWxsIHByb21vdGUgdGhlIGFydGlmYWN0cyB0byB0aGUgY2VudHJhbCByZXBvLgoKS2luZCByZWdhcmRzCkthcmwgSGVpbnogTWFyYmFpc2UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDE2My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgT2N0ICA3IDExOjU1OjM2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDE2My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFNUJGRjEwQzZCCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMTE6NTU6MzYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyMzU0MiBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE9jdCAyMDE3IDExOjU1OjM2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMzQ0OSBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE9jdCAyMDE3IDExOjU1OjM2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjM0MzggaW52b2tlZCBieSB1aWQgOTkpOyA3IE9jdCAyMDE3IDExOjU1OjM2IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwNyBPY3QgMjAxNyAxMTo1NTozNiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDNFODIyMUEyMzUwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNyBPY3QgMjAxNyAxMTo1NTozNSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDAuNTk5ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTAuNTk5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgUmN1NUZhUGdhTkliIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAgNyBPY3QgMjAxNyAxMTo1NTozMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNS4xNV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBCRkE0QTVGNDZGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNyBPY3QgMjAxNyAxMTo1NTozMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBLYXJsLUhlaW56cy1NYWNCb29rLVByby5sb2NhbCAoWzkyLjIwNC4xMjMuMzJdKSBieSBtYWlsLmdteC5jb20KIChtcmdteDAwMyBbMjEyLjIyNy4xNy4xOTBdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTWJQTEktMWRrRW4wMmNSby0wMEluNjY7IFNhdCwgMDcgT2N0IDIwMTcgMTM6NTU6MzAgKzAyMDAKUmVwbHktVG86IGluZm9Ac29lYmVzLmRlClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gV0FSIFBsdWdpbiB2ZXJzaW9uIDMuMi4wClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwKID0/VVRGLTg/UT9IZXJ2PWMzPWE5X0JPVVRFTVk/PSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpSZWZlcmVuY2VzOiA8ZDMwZWE0NzYtMDc5NC1mMDk2LWNlNjEtNWZiNDFiMDNiOTZhQGdteC5kZT4KIDw2ZTUxZmUxNy0xODYzLWY3MzItZDdlYy0zYjIwNjcxOWE5OGVAZ214LmRlPiA8MTU2Mjg1NS5tYXQ5YmVpY1VEQGdpZ2E+CkZyb206IEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPgpNZXNzYWdlLUlEOiA8M2JiMTgwNGQtNjhhZi04ZmUwLThlOGYtNDY0MGI2NWM1ZTFlQGdteC5kZT4KRGF0ZTogU2F0LCA3IE9jdCAyMDE3IDEzOjU1OjMwICswMjAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwLjExOyBydjo1Mi4wKQogR2Vja28vMjAxMDAxMDEgVGh1bmRlcmJpcmQvNTIuMy4wCk1JTUUtVmVyc2lvbjogMS4wCkluLVJlcGx5LVRvOiA8MTU2Mjg1NS5tYXQ5YmVpY1VEQGdpZ2E+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtODsgZm9ybWF0PWZsb3dlZApDb250ZW50LUxhbmd1YWdlOiBlbi1HQgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0ClgtUHJvdmFncy1JRDogVjAzOkswOk4raDJndWJBU09kd05CMVhPaWhwMG1WNmJhSlpKazRvTTVOaS9uTHdRVUJOakVEdllRVQogZ0RRRmxSeEZJbXBxSkEyQXlMeGluc0ZZeDJYeCtER2ZydjFmZWN2ZzRuT1VvM0h1ZXhjZS9kTnFSdVRxOXBjVVlBQm1nclgKIHBLQWhNTDNNRjhOYkNxY3JwVzRqZFVyeVZLYmw2emsvbXVFcyt0TG9rczdWTmZWSHVSbFRlWUE4WlJPWmE2NnZtWFZZSG02CiArSkk5T21zVXNSRXlsRUpCNTBKMFE9PQpYLVVJLU91dC1GaWx0ZXJyZXN1bHRzOiBub3RqdW5rOjE7VjAxOkswOnZJejJCS09OM21VPTpyelZkTmhvUGc0MlFpaVAxWnkyOTBFCiAvVktyUkQzeFlVN3l6UHNXQ29qa1lkNnNxQnZGTlJBL2lpMU9qaDJ6WGJ3K2lwU2VBTjVRbEF2VFNNeTBhOERGaEdtR0RjdHNWCiBJSklySUw5Zy9Yb0N6UWYvZzMwZEc2Q0pDbG5vKzNkSHhQNGJ2VmFWc0RZeVJSTFJ3S3o3YS9Gb083MlA2bWJqS2tmV2RYcFBwCiBIc0Q1L2ZCUTZXR0llbzFVWXllY0doQlovNVZZR2hoMFdiTXh6Y0plR2JFL3hJWU1oV0FVbDZVQm1HU1Y2K24vdWFOeEdMc2FoCiB2ZmNHSW5qTUs3TlZ2bUlkYnBLa3RiaEtWdktvL3BlS1dDS01xMXdTRG9STkk5emhraDFRTEJTQlRrdm1OcEZpY1h3aFlwbE10CiA5TTFPSFRYQVhRR2c4WFR3R0lPdUVJZEkyZURBRUxsaUtXNlBHZURUWE1NQUtwNGVBaCtGM1R1d0pQKytXbnpHK1FQeE4vUkJDCiBjRUZYZ3BtQS96d2V2RSsxVXovNXJFR0NXR3l2YjdOaG1hVk5EVnA0VFpYYUF6ckd3OUpHYTZ4U3dTVkwzYVFzWDBSWGd4bEdLCiByL01xZndqY3B2TmRydmRZV1Zrcy9XL25Gb1FDQjU4K09ad3JmTm1LYi84ZVEyZ3RKaWl3di9VWkpCTFh5QnozZXlEdGRTVU4rCiA1NEYzK2p3WTcrbmNhcmNBVGNNOEdPaU5uV2hlbnJNek1VUnhYd25tRFFHeGhERGx1RlF1eVpHenNOV1lUVWswcCtIKzBEeFd2CiBVRTQrNFZOUnlHTUxjRVFwWkVxZGIwc2drelBtOEhOT3FrcjdJaHJ0RHlMWHl4bVFNeCtNS2hKaDViWW5OcFJBN0k5VkUxNFRjCiBGR1Q2TGd6TExLOEZFRmo2bU1Wb0N2NjU0dFAxak0yOTFPQ25nRmFVZnRBd1k4d2V3VmNTc0dGUGVvQlJKVWN4aWtyT0JoSWc3CiBXWHVRYkVSNXBhbThILzI4YmZmOEhCYloxbjQ2V20rb2dTdytJYmZHRWpQVFRBMGZXV1RxbVZ1NEtsK3VUUkFXUTBGaWpYelo5CiBMYWlrWUp6TzhJVVpZSHg0a00wOWZoaUxzSEpPYVNNZCtHSGtmMFpaZkVQamRBalZ0Yz0KCkhpIEhlcnbDqSwKCk9uIDA3LzEwLzE3IDEzOjUwLCBIZXJ2w6kgQk9VVEVNWSB3cm90ZToKPiBJSVVDLCBNaWthaWwgT3NpcG92IChtb3NpcG92QGdteC5kZSkgaXMgdGhlIHVzdWFsIE1pY2hhZWwgT3NpcG92IG9uIHRoZSBQTUMgOikKCkkgd2Fzbid0IGF3YXJlIG9mIHRoYXQgbm9yIGhhdmUgSSBmb3VuZCBhbnkgZXZpZGVuY2Ugb2YgdGhhdC4uLgoKVGhhbmtzIGZvciBjbGVhcmluZyB1cC4uLlRoYXQncyBmaW5lLi4uCgpLaW5kIHJlZ2FyZHMKS2FybCBIZWlueiBNYXJiYWlzZQoKCj4gCj4gdGhlbiB3aXRoIHlvdSBhbmQgbWUsIHdlIGhhdmUgdGhlIDMgUE1DIHZvdGVzLCBpc24ndCBpdD8KPiAKPiBSZWdhcmRzLAo+IAo+IEhlcnbDqQo+IAo+IExlIHNhbWVkaSA3IG9jdG9icmUgMjAxNywgMTM6MDc6MDkgQ0VTVCBLYXJsIEhlaW56IE1hcmJhaXNlIGEgw6ljcml0IDoKPj4gSGksCj4+Cj4+IHRoZXJlIGlzIG1pc3Npbmcgb25lIFBNQyB2b3RlID8KPj4KPj4gS2luZCByZWdhcmRzCj4+IEthcmwgSGVpbnogTWFyYmFpc2UKPj4KPj4gT24gMzAvMDkvMTcgMTc6NTUsIEthcmwgSGVpbnogTWFyYmFpc2Ugd3JvdGU6Cj4+PiBIaSwKPj4+Cj4+PiBXZSBzb2x2ZWQgMyBpc3N1ZXM6Cj4+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamVjdElkPTEyMzE4MTIxJgo+Pj4gdmVyc2lvbj0xMjM0MTM3Mgo+Pj4KPj4+Cj4+PiBUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKPj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJTNEJTIwTVdBUiUyMEFORCUyMHJlCj4+PiBzb2x1dGlvbiUyMCUzRCUyMFVucmVzb2x2ZWQlMjBPUkRFUiUyMEJZJTIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQwo+Pj4gJTJDJTIwdXBkYXRlZCUyMERFU0MKPj4+Cj4+Pgo+Pj4gU3RhZ2luZyByZXBvOgo+Pj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3MQo+Pj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3MS9vcmcvYXBhY2hlL20KPj4+IGF2ZW4vcGx1Z2lucy9tYXZlbi13YXItcGx1Z2luLzMuMi4wL21hdmVuLXdhci1wbHVnaW4tMy4yLjAtc291cmNlLXJlbGVhc2UuCj4+PiB6aXAKPj4+Cj4+Pgo+Pj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4+PiBtYXZlbi13YXItcGx1Z2luLTMuMi4wLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOgo+Pj4gNWM2NjFmNDU1NDYxNjE0NzQ5MTAzNmRmYWM2ODliYTlkYjkwY2VjMgo+Pj4KPj4+Cj4+PiBTdGFnaW5nIHNpdGU6Cj4+PiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi13YXItcGx1Z2luLUxBVEVTVC8KPj4+Cj4+PiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPj4+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCj4+Pgo+Pj4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPj4+Cj4+PiBbIF0gKzEKPj4+IFsgXSArMAo+Pj4gWyBdIC0xCj4+Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gCj4gCj4gCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQyMjgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE9jdCAxMiAxNjo0ODoyMiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyMjgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRUFCMUQxMDExNwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDEyIE9jdCAyMDE3IDE2OjQ4OjIyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTYwNDkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTIgT2N0IDIwMTcgMTY6NDg6MjIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE1OTQzIGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIE9jdCAyMDE3IDE2OjQ4OjIyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTU5MzEgaW52b2tlZCBieSB1aWQgOTkpOyAxMiBPY3QgMjAxNyAxNjo0ODoyMiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMTIgT2N0IDIwMTcgMTY6NDg6MjIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA5NDU0QzE4MzI2QgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMTIgT2N0IDIwMTcgMTY6NDg6MjEgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4yMDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMjAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LAoJU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBOLTQtLVdSVkNXNkwgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsIDEyIE9jdCAyMDE3IDE2OjQ4OjIwICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1vdXQuZ214Lm5ldCAobW91dC5nbXgubmV0IFsyMTIuMjI3LjE3LjIyXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEI0NDZGNUZERTAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDEyIE9jdCAyMDE3IDE2OjQ4OjE5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIEthcmwtSGVpbnpzLU1hY0Jvb2stUHJvLmZyaXR6LmJveCAoWzE4OC45Ny40MC41NF0pIGJ5CiBtYWlsLmdteC5jb20gKG1yZ214MTAzIFsyMTIuMjI3LjE3LjE2OF0pIHdpdGggRVNNVFBTQSAoTmVtZXNpcykgaWQKIDBNTGVsYi0xZTFyaHgwSFJyLTAwMHdsbTsgVGh1LCAxMiBPY3QgMjAxNyAxODo0ODoxOCArMDIwMApSZXBseS1UbzogaW5mb0Bzb2ViZXMuZGUKU3ViamVjdDogUmU6IE1hdmVuIFBsdWdpbiB0aGF0IHByb3ZpZGVzIGFsdGVybmF0aXZlIHJlcG9zaXRvcnkKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LAogQ2hyaXN0b3BoIExhZXVicmljaCA8bGFldWJpLm1vYmlsZUBnb29nbGVtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBRXlNenltc0hIdk9CRi1idHFUdmo4a3YwckZMZ0JkPUpHSHJ1UFpqRXlZWm89QS0wZ0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+Ck1lc3NhZ2UtSUQ6IDw0MTA5N2IwZC04MWZhLTViZDAtYjhkZS1lMTJjNDM0OGM4Y2RAZ214LmRlPgpEYXRlOiBUaHUsIDEyIE9jdCAyMDE3IDE4OjQ4OjE5ICswMjAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwLjExOyBydjo1Mi4wKQogR2Vja28vMjAxMDAxMDEgVGh1bmRlcmJpcmQvNTIuMy4wCk1JTUUtVmVyc2lvbjogMS4wCkluLVJlcGx5LVRvOiA8Q0FFeU16eW1zSEh2T0JGLWJ0cVR2ajhrdjByRkxnQmQ9SkdIcnVQWmpFeVlabz1BLTBnQG1haWwuZ21haWwuY29tPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDpkQU8xN1VESFk5U0FGR21YVGVZWXptOWxOUHBiTmx5Mnc5d09DUWFGdkEzV2lCL1FwSGsKIDV0Zzd0NjZjS1l2U25NRFI3ZDRCRW1oRkZqWWFRZTlxazB0MVQyekMrangvWjFDN1NHSm95SU9tdGFYVndLM2ZDRXdwUDZQCiAwbVF5Mm5FQ05ZbzVxM1NRcjNXcWhua2VUSW40TU5vUEtZVHJRVVlzdXZLVVNrd3RaTk0zZWhuU3VWR24wR0p0aUl3UmlWVQogZ3lZYkZZa0ZMUUdwcGJPdFFOOVh3PT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDprZ2RUZ1l1YW8rMD06d3EwQ2RFeThDMGEzcHdES0xxUEUvSgogcDVvMDhydGZNbmROWm9jSHgvSlVvUHhUSkgvMFpIL3BPWm92Q1RldVRiWDhDOUJIRHVGTm16YzNITlRTdGhEZEwwTUJ2eUJDZQogSXBXWVJFdVFxZVJjUWtjaHhrbi9QUktZb2JQTDBmR3QzRlVSV2kvNzYxTEc1MW5SQkNTdXdIaTNDRjNZeGlxOU5RdDdRejE1VQogOW9lclF0aDhhTEp0aENXWWVNWkpnNlpPRjhLSXBhTjVIQUFjSkdOMEdrTVA5QWdGNnhDUEZLWHBDN0lGNHJGanh2eEFIRUxuOAogQkxwUWtoMVhVdndiMzQxckVGbGFIeVN3ZWUzMVF1U0x1R0Rid25HYlMrallLZDZpMVFGY0dhWU5vaERpVmpMSmZxSUlaK292NAogYmx1RHU2aWhQZzR4MlZ5SGtPSTlaRmJ6YXlHelcxd2k3bENnb3J6VWJSVjNFRkY3dmpqRzZTM2M4UUg1aTdWRmtMRi9VM3hlMQogUkYvNjM4REdrUlJRN0xPWGRPTko3dzBvQm01TXpVSnRlT3ZCcy9wTS9ZZ3phbjJZcml6ZStzQVJ0VFNsSFBFY0cwTjlGd25EdgogcDJGK0Z5MVBBYmpKSjc4VjJEUVFNTXhleG1NM2ZqVTZWUXYyWmlTa1hqZ29FRS9pcSt3TzRPckdja0F6S3U3bm9mOFB4SjI3aQogYWJGSnoxVWlXRkJqV2RPYVhPWUdyYVVuTlFsVU1Zcnh1K1hKUG1UZGNDdzByN21jaENZQTIrU2dIOXI1RWthNEtwWTQ1Z0JsRwogQ0FQS3kwRCtmVTFBT0N0anJZM1RGUEF4Ly94eXd6NFYyQ094Y2g3bEdUZnh5S2JhbStXZmJSMUIzM0ZrUWEwVjBscG5yR29pYgogTWZRTjlzMHFaUncrMGxCcmk0UllMdi8xWUp2UDZvajloLzYwdVNPR29VK1ZnY2hWZEwzVk0zM3RBZ3gwazhlOUcweGxXZXA2QwogbWNlejBWVmdtayt5SWJhS0s3aEVqWkIrQXFVVXRyYldCVDhBd2l0azcxQXUxUStvVG0wWUVINmdxL3ZEL2d6Zmc3WHFMaUtDRAogZnpyWlNEeG82alQ4VHp2eHR1d3pjVUVHQUkvbjQ0Wlp4NnA3TzZXM0FDajhVNkF4K2s9CgpIaSwKCk9uIDEyLzEwLzE3IDE2OjI4LCBDaHJpc3RvcGggTGFldWJyaWNoIHdyb3RlOgo+IEhpLAo+IAo+IEknZCBsaWtlIHRvIGNyZWF0ZSBhIHBsdWdpbiB0aGF0IGdldHMgbm90aWZpZWQgaWYgbWF2ZW4gdHJpZXMgdG8KPiBkb3dubG9hZCBhbiBhcnRpZmFjdCBidXQgZG9lcyBub3QgZmluZCBpdCBpbiBhbnkgb2YgaXRzIGNvbmZpZ3VyZWQKPiByZXBvc2l0b3JpZXMuIElzIHRoaXMgcG9zc2libGUgdG8gYXJjaGl2ZSBieSBhIG1hdmVuIHBsdWdpbj8gSWYgeWVzCj4gd2hhdCBpcyB0aGUgYmVzdCBzdGFydGluZyBwb2ludCBmb3IgdGhpcz8KCk15IGZpcnN0IHF1ZXN0aW9uIGlzOiBXaGF0IGlzIHRoZSBiYWNrZ3JvdW5kIG9mIHRoaXMgcXVlc3Rpb24/IE1lYW5zIAp3aGF0IGFyZSB5b3UgdHJ5aW5nIHRvIHNvbHZlPyBXaGF0IGtpbmQgb2YgcHJvYmxlbSBkbyB5b3UgaGF2ZT8KCgo+IAo+IE15IG93biBzZWFyY2ggZm9yIHRoaXMgaGF2ZSBub3QgcmV2ZWxlYWQgYW55IHVzZWZ1bGwgaW5mb3JtYXRpb24KPiBiZXNpZGUgYmFzaWMgbWF2ZW4gcGx1Z2luIHR1dG9yaWFscyB0aGF0IGRvIG5vdCBjb3ZlciB0aGlzIHNwZWNpZmljCj4gY2FzZS4KPiAKCktpbmQgcmVnYXJkcwpLYXJsIEhlaW56IE1hcmJhaXNlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4ODQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IERlYyAzMCAxODoxNDo0MyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4ODQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNDQxMUQxNzdGQwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDMwIERlYyAyMDE3IDE4OjE0OjQzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjg5ODcgaW52b2tlZCBieSB1aWQgNTAwKTsgMzAgRGVjIDIwMTcgMTg6MTQ6NDIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI4OTA4IGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIERlYyAyMDE3IDE4OjE0OjQyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjg4OTcgaW52b2tlZCBieSB1aWQgOTkpOyAzMCBEZWMgMjAxNyAxODoxNDo0MiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMzAgRGVjIDIwMTcgMTg6MTQ6NDIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBBQUMzQ0MwODg3Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAzMCBEZWMgMjAxNyAxODoxNDozOSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjcwMgpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC43MDIgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W1JDVkRfSU5fRE5TV0xfTE9XPS0wLjcsIFJDVkRfSU5fTVNQSUtFX0gyPS0wLjAwMSwKCVNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBsa0hUQkNSakpnWkEgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsIDMwIERlYyAyMDE3IDE4OjE0OjM3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1vdXQuZ214Lm5ldCAobW91dC5nbXgubmV0IFsyMTIuMjI3LjE3LjIwXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEI1MEUzNUYyNEMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDMwIERlYyAyMDE3IDE4OjE0OjM2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIEthcmwtSGVpbnpzLU1hY0Jvb2stUHJvLmxvY2FsIChbOTIuMjA0LjEyMS4yNDBdKSBieQogbWFpbC5nbXguY29tIChtcmdteDEwMyBbMjEyLjIyNy4xNy4xNjhdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTGoyNWktMWY0eGFFMGlpcy0wMGRGVVogZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMzAgRGVjIDIwMTcKIDE5OjE0OjM2ICswMTAwClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogaW5mb0Bzb2ViZXMuZGUKRnJvbTogS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+ClN1YmplY3Q6IE9sZCBTdHlsZSBCdWlsZCBKb2JzCk1lc3NhZ2UtSUQ6IDw0MTQ1N2YzYi1iYmJmLWE4NDQtMjlmNy04MzE3MGU1NTZlZTBAZ214LmRlPgpEYXRlOiBTYXQsIDMwIERlYyAyMDE3IDE5OjE0OjM0ICswMTAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwLjExOyBydjo1Mi4wKQogR2Vja28vMjAxMDAxMDEgVGh1bmRlcmJpcmQvNTIuNS4wCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtODsgZm9ybWF0PWZsb3dlZApDb250ZW50LUxhbmd1YWdlOiBlbi1HQgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0ClgtUHJvdmFncy1JRDogVjAzOkswOjhMamp5ZklSQW10cnBVTUxLcnF5cnlPSENRaVFmdWpLRnNXZ3VWeXYxRzF2L3REcnBwdQogV2tiZGZSbGp1bDJaNmVGZ3QwV0NaanN6eVNjT1lWTS9VbDNucU9FR0gvaG5ST0tZQmZ5dE1meGtBeVlNYU9UUW1Fd3pkdkEKIEg3RzZYMnhMZFRFTlo0Kzg3RGFqaXgrbnNWZzN5U0Z2OE85SkxYcGMyOGFTR01TamhUdTRybEYxc2VQYVVLSUR4cWkyb1EzCiBMdUNvY3pHUnBhRUcvK2RwQm9WZ0E9PQpYLVVJLU91dC1GaWx0ZXJyZXN1bHRzOiBub3RqdW5rOjE7VjAxOkswOlJGbFJRU0VtT09vPTpma0pkTzJSR2tiSWtXRmJaNWxXcFZwCiA0bVdUZTNybW0zQnZlZFF3OVZvVXV1MTllSWQ4bEZTWG1tdVpVNkVhOVliZ0FKYUJIQStqK1RESXNaL2FMVzFHUlhVQjljWlBECiAxd0ZwcUFOZ1g4VDVtQVdKSEsrVWZLNXpabUtEeUx1MmVQLzZHdHZDL3AwZmZyRzJ1SHJ4N08veWJYOFN3Q1VoazJCZnpxbno4CiBUVEE3aDBrQVk4VjlwbEdhM09mK0lnNTlsZzdpd2xiWGxXdXR1bExPa1VkaitGV2V4dFRXM1Voc285cnJyTTRsb2I1MGJ6RTlGCiBiOTJ5S1hVS2ZUdmlHWEk3NWlhNzcvQ0d5U0lNRGhzUllzemd0YkRmcXU0b3VHbm1qZ3ZjbUcyN1hveGdOVUNna2VzRXRHZjhPCiBlaXZhVjVBRHBUdEVIdXdoQkVjRGh3am94Rzk5NEJ2QXcyRHZPazVNdWlhVEJEZUdlUFpXUWhlRVlDcS9Md0Z2cGdoVElGSGNjCiBXeG84ME1wcmNwQjA1OEkxOHFJYlQxdUt4OU1vSVAxTmZaL1l6enpIdDE3RzdwYUduNjlqQkVoR2hqbE1nc0ZzRGVEUHVTc0tVCiBzT1AxQm1ndUw5UUlBaXhjMVBIL01KTXJXczcrTzV1cmpnY0tRamhzZUttcHg5R25POVJyMWduWmtNUURhWmpFVU5oVUxjNHZTCiBkbjJCbURTTloybnNhLzVKUWVpU3NzRnB1Y01zWDYveHlXZlhxY3BianBvSjMxcTNDSFJTdStPTys0cncrUFp4VldJaVVWV005CiBKb0FjRGoyZEtZbVlJTFVZVTRoYjl0dFk3V1pFSkJWbERNaVdib1RiZy8wblFVL1R5T3ZyendwbkhkN2tTaUtxUUpvam1hbTJtCiBPdkFxMzB6dWtSbVltK1N1NjZCQUp1czN0dFp0RHJWK1lMZXc0N01UTVY4OEdRSlU3ekV4dTU2aUpWU1l0cS9UeWk2dUV0YlNNCiBIWWQwUk1FSUh5eGVaV1pJbjZQZEZrUWM0dHI3SlpFVGxER2tDM1ZXYUlWY240aFI3Tkttd0F1aGVhWnVUcFN0dGZYM0s0Rm9kCiBudnUwKzRocEx3NXNZVzhpaUV4SjdXTWVMUTJsZXJIemd0dXFOM3VpT1VPejF1Q1NxMD0KCkhpLAoKYmFzZWQgb24gdGhlIG5ldyBKZW5raW5zZmlsZSBiYXNlZCBCdWlsZHMgSSB3aWxsIGRlbGV0ZSBzdGVwIGJ5IHN0ZXAgCm9sZGVyIGpvYnMgZm9yIGV4YW1wbGU6CgpodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL2pvYi9tYXZlbi1lbmZvcmNlci8KCmNhdXNlIHdlIGhhdmUgbm93IGFzIHJlcGxhY2VtZW50cy4uCgpodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC9qb2IvbWF2ZW4tZW5mb3JjZXIvCgoKQW55IG9iamVjdHMgYWJvdXQgdGhhdD8KCktpbmQgcmVnYXJkcwpLYXJsIEhlaW56IE1hcmJhaXNlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQxNzktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE9jdCAgNyAyMTozNjo0OCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxNzktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNDFGMTYxMDdBQwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDIxOjM2OjQ4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTM0NDIgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBPY3QgMjAxNyAyMTozNjo0MyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTMzNzQgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBPY3QgMjAxNyAyMTozNjo0MiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkzMzYwIGludm9rZWQgYnkgdWlkIDk5KTsgNyBPY3QgMjAxNyAyMTozNjo0MiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDcgT2N0IDIwMTcgMjE6MzY6NDIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBDRTg2NzFBNDEzMQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMjE6MzY6NDEgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiA2LjE3MQpYLVNwYW0tTGV2ZWw6ICoqKioqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Ni4xNzEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTlVNU1VCSkVDVD0wLjUsIFNQRl9IRUxPX1BBU1M9LTAuMDAxLAoJU1BGX1NPRlRGQUlMPTAuOTcyLCBVUklCTF9CTEFDSz00XSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgxMDI0LWJpdCBrZXkpIGhlYWRlci5kPWhvbnRvbi5vcmcKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGZQRldjM2tWN2hMOSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgIDcgT2N0IDIwMTcgMjE6MzY6MzggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gYml6NDYuaW5tb3Rpb25ob3N0aW5nLmNvbSAoYml6NDYuaW5tb3Rpb25ob3N0aW5nLmNvbSBbMjA1LjEzNC4yNTAuMTYwXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDM4NzRGNUYzQ0UKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDIxOjM2OjM3ICswMDAwIChVVEMpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgcT1kbnMvdHh0OyBjPXJlbGF4ZWQvcmVsYXhlZDsgZD1ob250b24ub3JnOwoJIHM9ZGVmYXVsdDsgaD1UbzpJbi1SZXBseS1UbzpSZWZlcmVuY2VzOk1lc3NhZ2UtSWQ6U3ViamVjdDpEYXRlOk1pbWUtVmVyc2lvbjoKCUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6Q29udGVudC1UeXBlOkZyb206U2VuZGVyOlJlcGx5LVRvOkNjOkNvbnRlbnQtSUQ6CglDb250ZW50LURlc2NyaXB0aW9uOlJlc2VudC1EYXRlOlJlc2VudC1Gcm9tOlJlc2VudC1TZW5kZXI6UmVzZW50LVRvOlJlc2VudC1DYwoJOlJlc2VudC1NZXNzYWdlLUlEOkxpc3QtSWQ6TGlzdC1IZWxwOkxpc3QtVW5zdWJzY3JpYmU6TGlzdC1TdWJzY3JpYmU6CglMaXN0LVBvc3Q6TGlzdC1Pd25lcjpMaXN0LUFyY2hpdmU7CgliaD1SMHI5L0JGemp1TS9QcXlnUEY1MmNGUXBkdVpMWmc1UldUZE5WQnJuN2NzPTsgYj1SMm1rUHloU1F3d2VLcUN3MHlFeWxwSko5UgoJeGV3RUlLaTRCVk5DcHhDcThQSWJyUkd1Y084eEFYRVB4NEtNbU5RK1ZFS2dJUUpzUXdHcnJHODM1eUk2UkFIc1lrNU4rcFFLOUpzL3YKCUU0aU5YNGdwcDB4MUI2aTkxdytDMWJoV0puMnJZZjVBNFh5SVU1MEE4OGF0aEIyQzVSbkJoa2hrRGt3SWhocnpQTWlNPTsKUmVjZWl2ZWQ6IGZyb20gWzEwNy43Ny4xNjQuMzhdIChwb3J0PTYwMzY1IGhlbG89WzEwLjEwNS4yMjkuMjUwXSkKCWJ5IGJpejQ2LmlubW90aW9uaG9zdGluZy5jb20gd2l0aCBlc210cHNhIChUTFN2MS4yOkVDREhFLVJTQS1BRVMyNTYtR0NNLVNIQTM4NDoyNTYpCgkoRXhpbSA0Ljg5KQoJKGVudmVsb3BlLWZyb20gPGNoYXNAaG9udG9uLm9yZz4pCglpZCAxZTB3bGUtMDAwNnhHLUQ3Cglmb3IgZGV2QG1hdmVuLmFwYWNoZS5vcmc7IFNhdCwgMDcgT2N0IDIwMTcgMTQ6MzY6MzAgLTA3MDAKRnJvbTogQ2hhcyBIb250b24gPGNoYXNAaG9udG9uLm9yZz4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOwoJY2hhcnNldD11dGYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCk1pbWUtVmVyc2lvbjogMS4wICgxLjApCkRhdGU6IFNhdCwgNyBPY3QgMjAxNyAxNDozNjowOSAtMDcwMApTdWJqZWN0OiBSZTogSmVua2lucyBhbmQgTWF2ZW4gMy4wLjUgb3IgSkRLIDcKTWVzc2FnZS1JZDogPDQxQzQ2NDdBLTM4MDgtNEU2QS1CNEIyLTIyRjdGMjU5RTgxNUBob250b24ub3JnPgpSZWZlcmVuY2VzOiA8MTA1NDQ2MTUuQjRoTzNQbnZFekBnaWdhPiA8Q0FLdVZ6QlIydytmazVTM3VuQlFSN0I1NGVVODBDUVFhQzY0dXlZNVhORUNIb1NINkdnQG1haWwuZ21haWwuY29tPiA8Q0FLdVZ6QlFTZ1JYV1ZFZzhDZ3JaZHNOR3dkVGZOdGM0cVd0NEdueUpEb29peWFyMk5BQG1haWwuZ21haWwuY29tPiA8MTkzNDk4My54Uk04S3lJaW1pQGdpZ2E+IDxDQUZOQ1UtXzVDZmFQTUwyZndaKzd0RkVBWkpUK3daQkR4NmI9LTdFNEpSS0FtPS1ZZ2dAbWFpbC5nbWFpbC5jb20+IDxFMkQyRkQwMy02MjE0LTQyMTAtOTQ1OS05N0FGMjNGMDBCNEVAaG9udG9uLm9yZz4gPENBRk5DVS0tb0hIRCtDRm1jMTBqSFVPSl9uVENULV89YW5NcXkwT2FjN3Y3a0dqbXU3UUBtYWlsLmdtYWlsLmNvbT4KSW4tUmVwbHktVG86IDxDQUZOQ1UtLW9ISEQrQ0ZtYzEwakhVT0pfblRDVC1fPWFuTXF5ME9hYzd2N2tHam11N1FAbWFpbC5nbWFpbC5jb20+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpYLU1haWxlcjogaVBob25lIE1haWwgKDE1QTQwMikKWC1PdXRHb2luZy1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjIKWC1BbnRpQWJ1c2U6IFRoaXMgaGVhZGVyIHdhcyBhZGRlZCB0byB0cmFjayBhYnVzZSwgcGxlYXNlIGluY2x1ZGUgaXQgd2l0aCBhbnkgYWJ1c2UgcmVwb3J0ClgtQW50aUFidXNlOiBQcmltYXJ5IEhvc3RuYW1lIC0gYml6NDYuaW5tb3Rpb25ob3N0aW5nLmNvbQpYLUFudGlBYnVzZTogT3JpZ2luYWwgRG9tYWluIC0gbWF2ZW4uYXBhY2hlLm9yZwpYLUFudGlBYnVzZTogT3JpZ2luYXRvci9DYWxsZXIgVUlEL0dJRCAtIFs0NyAxMl0gLyBbNDcgMTJdClgtQW50aUFidXNlOiBTZW5kZXIgQWRkcmVzcyBEb21haW4gLSBob250b24ub3JnClgtR2V0LU1lc3NhZ2UtU2VuZGVyLVZpYTogYml6NDYuaW5tb3Rpb25ob3N0aW5nLmNvbTogYXV0aGVudGljYXRlZF9pZDogY2hhcytob250b24ub3JnL29ubHkgdXNlciBjb25maXJtZWQvdmlydHVhbCBhY2NvdW50IG5vdCBjb25maXJtZWQKWC1BdXRoZW50aWNhdGVkLVNlbmRlcjogYml6NDYuaW5tb3Rpb25ob3N0aW5nLmNvbTogY2hhc0Bob250b24ub3JnClgtU291cmNlOiAKWC1Tb3VyY2UtQXJnczogClgtU291cmNlLURpcjogCgpJcyBpdCB1c3VhbCB0byBuZWVkIGFsbCBkb3plbiByZXBvc2l0b3JpZXMgb3IgaXMgYSBzaW5nbGUgcmVwb3NpdG9yeSAob3IgYSBoPQphbmRmdWwpIG1vcmUgbGlrZWx5PwoKQ2hhcwoKPiBPbiBPY3QgNywgMjAxNywgYXQgMTozMiBQTSwgQXJuYXVkIEg9QzM9QTlyaXRpZXIgPGFoZXJpdGllckBnbWFpbC5jb20+IHdybz0KdGU6Cj49MjAKPiBBRkFJUiB0aGUgbWFpbiBjb25jZXJuIHdhcyBmb3IgZGV2ZWxvcGVycyB0byBoYXZlIHRvIGNsb25lIHNldmVyYWwgZG96ZW4gbz0KZgo+IHJlcG9zaXRvcmllcwo+IEkgZG9uJ3QgdGhpbmsgaXQgaXMgYSByZWFsIGlzc3VlLiBXZSBjYW4gc2hhcmUgYSBzY3JpcHQgdG8gZG8gaXQgZWFzaWx5Cj49MjAKPj0yMAo+PiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDEwOjI2IFBNLCBDaGFzIEhvbnRvbiA8Y2hhc0Bob250b24ub3JnPiB3cm90ZToKPj49MjAKPj4gV2hhdCBhcmUgdGhlIGNvbmNlcm5zIHdpdGggc2VwYXJhdGUgZ2l0IHJlcG9zaXRvcnkgcGVyIGFydGlmYWN0PyAgSXMgaXQKPj4gdGhlIG1vbm9saXRoaWMgYnVpbGQ/Cj4+PTIwCj4+IENoYXMKPj49MjAKPj4+IE9uIE9jdCA3LCAyMDE3LCBhdCAxOjIwIFBNLCBBcm5hdWQgSD1DMz1BOXJpdGllciA8YWhlcml0aWVyQGdtYWlsLmNvbT4gdz0Kcm90ZToKPj4+PTIwCj4+PiArMQo+Pj49MjAKPj4+PiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDc6MTEgUE0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLj0KZnI+Cj4+IHdyb3RlOgo+Pj4+PTIwCj4+Pj4gd2UgY2FuIHN0YXJ0IHdpdGggbmFtaW5nIHRoZSBmdXR1cmUgZ2l0IHJlcG9zOiBJIHN1cHBvc2UgYWRkaW5nIGEgdGFibGU9Cgo+PiBhdAo+Pj4+IHRoZQo+Pj4+IGVuZCBvZiB0aGUgR2l0IG1pZ3JhdGlvbiBXaWtpIHBhZ2UgY2FuIGdpdmUgYSBnb29kIHZpZXcgb2YgdGhlIHJlc3VsdAo+Pj4+ICh3aXRoIDc4Cj4+Pj4gbmV3IHJlcG9zICsgZXhpc3RpbmcgNyByZXBvcyArIHRoZSA2IGluIG1pZ3JhdGlvbiBpZiBub2JvZHkgb2JqZWN0cyA9M0Q9CiA5MQo+Pj4+IHJlcG9zKQo+Pj4+PTIwCj4+Pj4gb25jZSB3ZSdyZSBhbGwgY29udmluY2VkIG9mIHRoZSB0YXJnZXQsIHdlJ2xsIHNlZSBob3cgdG8gd29yayB3aXRoIGluZnI9CmEKPj4+PiBhbmQgSSBzdXBwb3NlIHRoZXkgYWxyZWFkeSBoYXZlIHRoZSByaWdodCBhdXRob3JzIGxpc3QsIGdpdmVuIHRoZQo+PiBjdXJyZW50Cj4+Pj4gbWlycm9ycyBhbHJlYWR5IHB1Ymxpc2hlZAo+Pj4+PTIwCj4+Pj4gUmVnYXJkcywKPj4+Pj0yMAo+Pj4+IEhlcnY9QzM9QTkKPj4+Pj0yMAo+Pj4+IExlIHNhbWVkaSA3IG9jdG9icmUgMjAxNywgMTY6MDU6NDUgQ0VTVCBUaWJvciBEaWdhbmEgYSA9QzM9QTljcml0IDoKPj4+Pj4gSGVydmUsCj4+Pj4+PTIwCj4+Pj4+IEkgdGhpbmssIGZpcnN0IG9mIGFsbCwgd2Ugc2hvdWxkIHdyaXRlIGEgbGlzdCB3aXRoIGV4YWN0IG5hbWVzIG9mIGdpdAo+Pj4+PiByZXBvc2l0b3JpZXMgZm9yIHdoaWNoIElORlJBIHdpbGwgY3JhdGUgdGhlbSBpbgo+Pj4+PiBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZy9yZXBvcy9hc2YKPj4+Pj4gYW5kIG1pcnJvciBpbiBnaXRodWIuY29tL2FwYWNoZQo+Pj4+Pj0yMAo+Pj4+PiBBbmQgdGhlbiB0aGUgYXV0aG9ycy50eHQuCj4+Pj4+PTIwCj4+Pj4+IEluIG15IGNhc2UgSSBkaWQgbm90IG1pZ3JhdGUgdGFncyBhbmQgYnJhbmNoZXMgd2hpY2ggaXMgbXkgcHJvYmxlbQo+PiBnaXZlbgo+Pj4+IGluCj4+Pj4+IG15IGV4YW1wbGUgd2l0aCBwcmV2aW91cyBlLW1haWwuCj4+Pj4+PTIwCj4+Pj4+IE9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgMzo0OCBQTSwgVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPgo+Pj4+IHdyb3RlOgo+Pj4+Pj4gSGVydmUsCj4+Pj4+PiBJIHRoaW5rIG1ha2luZyB0aGUgdGFnIGFzIEkgd2FudGVkIHdvdWxkIG5vdCBiZSBwb3NzaWJsZSBpbiBnaXQuCj4+Pj4+Pj0yMAo+Pj4+Pj4gTGV0J3MgbWFrZSBpdCB3aXRoIGFsbCA3OCBwcm9qZWN0cy4KPj4+Pj4+IEluIDIwMTYgSSBtaWdyYXRlZCBteSBzdm4gcHJvamVjdCAiYXVkaXQiIGxvY2F0ZWQgaW4gc3ViLWZvbGRlciBiZWhpbj0KZAo+Pj4+Pj4gdHJ1bmsgKHRydW5rL2xpYnMvYXVkaXQpIHRvIGdpdCB3aGljaCBpcyBleGFjdGx5IHdoYXQgd2UgbmVlZCB0byBkbyBpPQpuCj4+Pj4+PiBBU0YuCj4+Pj4+Pj0yMAo+Pj4+Pj4gSW4gb3VyIGNhc2UgdGhlIGNvbW1hbmRzIHdvdWxkIGJlIDk5JSB0aGUgc2FtZS4gVGhlIDElIGlzIHRoZSBzb3VyY2UKPj4+PiBTVk4KPj4+Pj4+IFVSTCBhbmQgdGFyZ2V0IEdpdEh1YiBVUkwuIFRoYXQncyBhbGwuIFRoZW4gaWYgd2UgcHJvdmlkZSBJTkZSQSB3aXRoCj4+Pj4gYnVuY2gKPj4+Pj4+IG9mIGNvbW1hbmRzIGxpa2UgdGhlc2UgdGhlbiB0aGV5IHdpbGwgb25seSBleGVjdXRlIHRoZW0gd2l0aCB0aGVpcgo+Pj4+Pj4gcGVybWlzc2lvbnMuCj4+Pj4+PiBJIGRvIG5vdCB0aGluayB0aGV5IHdpbGwgZ2l2ZSBtZSBhZG1pbiBwZXJtaXNzaW9ucyB0byBtYWtlIGl0Lgo+Pj4+Pj49MjAKPj4+Pj4+IGdpdCBzdm4gY2xvbmUgLS1uby1tZXRhZGF0YSAtLWF1dGhvcnMtZmlsZT0zREU6XCphdXRob3JzLnR4dCogaHR0cDovLz0KCj4+Pj4+PiAqKiovc3ZuLyoqKi8qdHJ1bmsvbGlicy9hdWRpdCBhdWRpdCoKPj4+Pj4+IGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5uYW1lICIqKiogKioqIgo+Pj4+Pj4gZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLmVtYWlsICIqKipAKioqLioqKiIKPj4+Pj4+IGdpdCByZW1vdGUgYWRkIG9yaWdpbiBodHRwczovLyoqKkBnaXRodWIuY29tL2FwYWNoZS8KPj4+PiAqbWF2ZW4tY2xlYW4tcGx1Z2luKgo+Pj4+Pj4gLmdpdAo+Pj4+Pj4gZ2l0IHB1c2ggLXUgb3JpZ2luIC0tYWxsCj4+Pj4+Pj0yMAo+Pj4+Pj4gSSBvYnNlcnZlZCB0aGUgKmF1dGhvcnMudHh0KiBmcm9tIGNvbW1hbmQKPj4+Pj4+ICpzdm4gbG9nIC1xKgo+Pj4+Pj4gRWFjaCBwZXJzb24gZnJvbSBiZXR3ZWVuIGZpcnN0IHR3byBwaXBlcywgZS5nLjoKPj4+Pj4+IHIxMjM0NTY3IHwgdGlib3JkaWdhbmEgfCAyMDE1LTEwLTE5IDAyOjIwOjAwCj4+Pj4+Pj0yMAo+Pj4+Pj4gRXZlcnkgZGV2ZWxvcGVyIGFkZGVkIGUtbWFpbCBhbmQgZnVsbCBuYW1lLCBpLmUuOgo+Pj4+Pj4gdGlib3JkaWdhbmEgPTNEIFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4KPj4+Pj4+IGV0Yy4KPj4+Pj4+PTIwCj4+Pj4+PiBUaGlzIGxpc3Qgb2YgdXNlcnMgd2hpY2ggc2hvdWxkIGJlIGNyZWF0ZWQgaW4gcHJpb3IgdG8gY29udGFjdCBJTkZSQS49Cgo+Pj4+Pj4gTm90IGFsbCB1c2VycyBhcmUgYWN0aXZlIGFmdGVyIHllYXJzIGJ1dCBpdCB3b3VsZCBiZSBuaWNlIHRvIGluY2x1ZGUKPj4+PiB0aGVtCj4+Pj4+PiB0b28uCj4+Pj4+PiBUaGlzIGxpc3Qgb2YgdXNlcnMgaXMgb25lIHRoaW5nIHdoaWNoIGNhbm5vdCBiZSBhdXRvbWF0ZWQhCj4+Pj4+Pj0yMAo+Pj4+Pj49MjAKPj4+Pj4+PTIwCj4+Pj4+Pj0yMAo+Pj4+Pj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCAyOjQ4IFBNLCBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+PQoKPj4+Pj4+PTIwCj4+Pj4+PiB3cm90ZToKPj4+Pj4+PiBJbiBteSBjb21wYW55IEkgaGF2ZSBzdWNoIHNpdHVhdGlvbiBpbiBTVk4uIE1ha2luZyBhIHRhZyBmcm9tCj4+Pj4gc3ViZm9sZGVyLgo+Pj4+Pj4+IEdpdCBhbHdheXMgbWFrZXMgdGhlIHRhZyBmcm9tIHRoZSByb290LCByaWdodD8KPj4+Pj4+PiBMZXQncyBnb29nbGUgc29tZXRoaW5nLi4uCj4+Pj4+Pj49MjAKPj4+Pj4+PiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDI6NDcgUE0sIFRpYm9yIERpZ2FuYSA8Cj4+Pj4gdGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tCj4+Pj4+Pj49MjAKPj4+Pj4+Pj4gd3JvdGU6Cj4+Pj4+Pj4+IEluIG15IGNvbXBhbnkgSSBoYXZlIHN1Y2ggc2l0dWF0aW9uLgo+Pj4+Pj4+PiBNYWtpbmcgYSB0YWcgZnJvbSBzdWJmb2xkZXIuCj4+Pj4+Pj4+IEdpdCBhbHdheXMgbWFrZXMgdGhlIHRhZyBmcm9tIHRoZSByb290LCByaWdodD8KPj4+Pj4+Pj4gTGV0J3MgZ29vZ2xlIHNvbWV0aGluZy4uLgo+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+PiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDI6MDUgUE0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8Cj4+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcgo+Pj4+Pj0yMAo+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+PiB3cm90ZToKPj4+Pj4+Pj4+IHRoYW5rcyBmb3IgeW91ciBpbnRlcmVzdCBhbmQgZmVlZGJhY2sKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBMZSBzYW1lZGkgNyBvY3RvYnJlIDIwMTcsIDEyOjAwOjMyIENFU1QgVGlib3IgRGlnYW5hIGEgPUMzPUE5Y3JpdCA6PQoKPj4+Pj4+Pj4+PiA3OCBpcyB0b28gbXVjaC4KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBub3RpY2UgdGhhdCB0aGVyZSB3b3VsZCBhbHNvIGJlIGEgcXVlc3Rpb24gb24gdGhlIGdpdCByZXBvcyBuYW1pbmc9Cgo+Pj4+Pj4+Pj4gY29udmVudGlvbiwKPj4+Pj4+Pj4+IHRvIGF2b2lkIGZsYXQgNzggbmFtZXMgYnV0IGtlZXAgYXQgbGVhc3QgMyBtZWFuaW5nZnVsIGdyb3Vwcwo+Pj4+IChwbHVnaW5zLAo+Pj4+Pj4+Pj4gc2hhcmVkLAo+Pj4+Pj4+Pj4gcmVzb3VyY2VzOiBJIHRoaW5rIHRoaXMgaXMgbm90IGFic29sdXRlbHkgbmVjZXNzYXJ5IGZvcgo+PiBkb3hpYS10b29scykKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4gVGhlcmUgaXMgbm8gcHJvYmxlbSB0byB0cmlnZ2VyIHJlbGVhc2Ugb3ZlciBzdWItZm9sZGVycyBhbmQgdGFnIGk9CnQKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiB3aXRoCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+IHByZWZpeCB3aGljaCBpcyBhbHJlYWR5IGRvbmUgaW4gU1ZOLgo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IGlzIGl0IHN1cHBvcnRlZCBieSBtYXZlbi1yZWxlYXNlIHBsdWdpbiB3aXRoIGdpdD8KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBub3RpY2UgSSBkaWQgbm90IGtub3cgdGhhdCBnaXQgd2FzIGFibGUgdG8gdGFnIG9ubHkgYSBzdWJ0cmVlOiBidXQ9Cgo+PiBJCj4+Pj4+Pj4+PiBrbmV3IEkKPj4+Pj4+Pj4+IGRvbid0IHlldCB1bmRlcnN0YW5kIGV2ZXJ5IGFzcGVjdCBvZiBnaXQgbWFnaWMuLi4gOikKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4gVGhlIENJIGJ1aWxkIGNhbiBhbHdheXMgdHJpZ2dlciB0aGUgcm9vdCBhbmQgSmVua2luc2ZpbGUgd291bGQKPj4+PiBoYXZlCj4+Pj4+Pj4+Pj4gNDEKPj4+Pj4+Pj4+PiBzdGFnZXMgZm9yIHBsdWdpbnMsIDI2IHN0YWdlcyBmb3IgU2hhcmVkLCBldGMuCj4+Pj4+Pj4+Pj4gSXQgY2FuIGJlIGRvbmUgaW4gSmVua2luc2ZpbGUgYW5kIHNvIHRoZSBzaGVsbCB3b3VsZCBub3QgdGhyb3cKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBleGNlcHRpb24KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4gYnV0IHN0YXR1cyB3b3VsZCBiZSBzZXQgaW5zdGVhZCBhbmQgZ29lcyB0byB0aGUgbmV4dCBzdGFnZS4KPj4+Pj4+Pj4+PiBJIGRvIG5vdCBrbm93IGhvdyB0byBkZXRlY3QgaW4gR2l0U0NNIHdoaWNoIHN1Yi1mb2xkZXIocykgcmVjZWl2ZT0KZAo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IGJ1dCBJCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+IGd1ZXNzIHRoaXMgY2FuIGJlIGludmVzdGlnYXRlZC4KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiArMQo+Pj4+Pj4+Pj4gYnV0IEkgZG9uJ3Qga25vdyB3aGVyZSB0byBsb29rIGZvciBteXNlbGY6IG9uIHRoYXQgcG9pbnQsIEkgaG9wZSB0PQpvCj4+Pj4+Pj4+PiBoYXZlIHNvbWUKPj4+Pj4+Pj4+IGhlbHAgZnJvbSBKZW5raW5zZmlsZSBleHBlcnRzCj4+Pj4+Pj4+PiBhbmQgZXZlbnR1YWxseSBzdGFydCB3aXRoIHN2biwgdG8gaGF2ZSBzb21ldGhpbmcgYmVmb3JlIHRoZSBnaXQKPj4+Pj4+Pj4+IG1pZ3JhdGlvbgo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+PiBUaGVuIGl0IGNhbiBiZSBhIGtpbmQgb2Ygc3dpdGNoLWNhc2Ugb3ZlciBjb21taXR0ZWQgZm9sZGVycyBpbgo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IEplbmtpbnNmaWxlLgo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+PiBUaGlzIG1lYW5zIHRoYXQgZXZlcnkgdGltZSBhbm90aGVyIHN0YWdlL3N1Yi1mb2xkZXIgaXMgc2hvd24gaW4KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBQaXBlbGluZQo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+PiB3aGljaCB3aWxsIGJlIG1lc3N5IGluIHRoZSBVSS4gOigKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBub3RpY2UgdGhhdCB3ZSBjYW4gcGVyaGFwcyBzcGxpdCB0aGUgcmVwb3MgaW4gbGVzcyBwYXJ0cyB0aGFuIHdlCj4+Pj4gaGF2ZQo+Pj4+Pj4+Pj4gY29tcG9uZW50czogb24gcGx1Z2lucywgZm9yIGV4YW1wbGUsIHdlIGFscmVhZHkgaGF2ZSA0IGNhdGVnb3JpZXMKPj4+PiBbMV0KPj4+Pj4+Pj4+IHdoaWNoCj4+Pj4+Pj4+PiB3b3VsZCBhdm9pZCAxIHJlcG8gd2l0aCA0MSBwbHVnaW5zLCBidXQgbW9yZSBzb21ldGhpbmcgbGlrZQo+Pj4+IDYrMTArMTArMTUKPj4+Pj4+Pj4+IEkgc3VwcG9zZSB3ZSBjb3VsZCBkbyB0aGUgc2FtZSBmb3Igc2hhcmVkIChyZXBvcnRpbmcgZm9sZGVyIGNvbWVzCj4+Pj4gdG8gbXkKPj4+Pj4+Pj4+IG1pbmQpCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gVGhlIGtleSBmZWFzaWJpbGl0eSBpc3N1ZSBpcyB0aGUgY2FwYWNpdHkgdG8gcmVsZWFzZSBhCj4+IHN1Yi1jb21wb25lbnQKPj4+Pj4+Pj4+IGZyb20gZ2l0Cj4+Pj4+Pj4+PiB3aXRoIG1hdmVuLXJlbGVhc2UtcGx1Z2luLCBJTUhPCj4+Pj4+Pj4+PiAodGFraW5nIGFwYXJ0IHRoZSBnaXQgcHVyaXN0cyBpZGVhIG9mIDEgbGlmZWN5Y2xlID0zRCAxIGdpdCByZXBvKQo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IFJlZ2FyZHMsCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gSGVydj1DMz1BOQo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBbMV0gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy8KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCA0OjE3IEFNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+Pj4+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiB3cm90ZToKPj4+Pj4+Pj4+Pj4gVGhlcmUgYXJlIDYgc3ZuIGxvY2F0aW9ucyB3aXRob3V0IGFueSBzcGVjaWFsIGNvbXBsZXhpdHkgdGhhdAo+Pj4+IGFyZQo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IHdhaXRpbmcKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IGZvcgo+Pj4+Pj4+Pj4+PiBhIHZvbHVudGVlciBmb3IgZ2l0IG1pZ3JhdGlvbiBmb3IgYSBmZXcgeWVhcnMgYnV0IG5vYm9keSBkb2VzCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gYW55dGhpbmcKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IGFib3V0Ogo+Pj4+Pj4+Pj4+PiBJIHN0YXJ0ZWQgMyBkYXlzIGFnbyB0byBhc2sgZm9yIGhlbHAgYWJvdXQgaXQgYW5kIGdvdCBwcmV0dHkgbm8KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBmZWVkYmFjawo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gWzFdCj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IHRoZW4gdGhlcmUgYXJlIHRoZSA0IGNvbXBsZXggc3ZuIGxvY2F0aW9ucyAocGx1Z2lucywgc2hhcmVkLAo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IHJlc291cmNlcywKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IGRveGlhLQo+Pj4+Pj4+Pj4+PiB0b29scykgdGhhdCByZXF1aXJlIG11Y2ggbW9yZSB3b3JrOiBJIHN1cHBvc2Ugd2UgY2FuJ3QgdGVsbCBnaXQKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBtaWdyYXRpb24KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IGlzCj4+Pj4+Pj4+Pj4+IGFiYW5kb25lZCwgYnV0IGl0IHdpbGwgcmVxdWlyZSBzb21lb25lIHRvIHdvcmsgb24gaXQgc2VyaW91c2x5Cj4+Pj4+Pj4+Pj4+IFJlbWVtYmVyIHRoYXQgdGhlIGtleSBxdWVzdGlvbiBbMl0gaXM6IGRvIHdlIHRyYW5zZm9ybSB0aGVzZSA0Cj4+Pj4gc3ZuCj4+Pj4+Pj4+Pj4+IGxvY2F0aW9ucwo+Pj4+Pj4+Pj4+PiBpbnRvIDQxICsyNiArIDYgKyA1ID0zRCA3OCBpbmRlcGVuZGVudCBnaXQgcmVwb3M/Cj4+Pj4+Pj4+Pj4+IFllcywgSSB0b2xkIHRoYXQgSmVua2lucyBjb25maWd1cmF0aW9uIGlzIG9uZSBrZXkgYXNwZWN0IHdlCj4+Pj4gbmVlZCBhCj4+Pj4+Pj4+Pj4+IHN0cmF0ZWd5Cj4+Pj4+Pj4+Pj4+IGFib3V0LCBpbiBwYXJhbGxlbCB3aXRoIGdpdCBzdHJhdGVneS4KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IHRoZW4gdGhlcmUgd2lsbCBiZSB0aGUgcmVtYWluaW5nIGNhc2VzIHdoZXJlIHdlIG5lZWQgdG8gZGVjaWRlOgo+Pj4+Pj4+Pj4gbG93ZXIKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IGltcGFjdCwKPj4+Pj4+Pj4+Pj4gbG93ZXIgcHJpb3JpdHkuCj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IFN1bW1hcnk6IG5vdGhpbmcgaXMgYWJhbmRvbmVkLCBidXQ6Cj4+Pj4+Pj4+Pj4+IC0gc2ltcGxlIGNhc2VzOiBubyB2b2x1bnRlZXIgdG8gZG8gdGhlIGpvYgo+Pj4+Pj4+Pj4+PiAtIGhhcmQgY2FzZXM6IGlzIHRoZXJlIGEgdm9sdW50ZWVyIGVpdGhlciB0byBkZWZpbmUgYSBzdHJhdGVneQo+Pj4+IG9yCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gZG8gc29tZQo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gd29yawo+Pj4+Pj4+Pj4+PiBvbiBpdD8KPj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gUmVnYXJkcywKPj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gSGVydj1DMz1BOQo+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+PiBbMV0gaHR0cHM6Ly9saXN0cy5hcGFjaGUub3JnL3RocmVhZC5odG1sLwo+Pj4+Pj4+Pj4+PiBlZGYzNjQyYTdiZGQ1MTVmMGNhZDQyMWMyNTU4OTc0MTgxOTQ0NjQ2MzYxNGJmMDUxNWU1NmRiZUAKPj4+Pj4+Pj4+Pj4gJTNDZGV2Lm1hdmVuLmFwYWNoZS5vcmclM0UKPj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gWzJdIGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvTUFWRU4vR2l0Cj4+Pj4+Pj4+Pj4+ICtNaWdyYXRpb24jR2l0TWlncmF0aW9uLU1pZ3JhdGluZ2FuYWdncmVnYXRvcnRyZWVpbnRvYWNvbGxlYwo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IHRpb25vZmdpdHJlcG9zCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+PiBMZSB2ZW5kcmVkaSA2IG9jdG9icmUgMjAxNywgMjA6MzU6NDUgQ0VTVCBBcm5hdWQgSD1DMz1BOXJpdGllciBhPQoKPj4+PiA9QzM9QTljcml0IDoKPj4+Pj4+Pj4+Pj4+IEJ1dCBkaWQgd2UgY29tcGxldGVseSBhYmFuZG9uZWQgdGhlIGlkZWEgb2YgbW92aW5nIGV2ZXJ5dGhpbmcKPj4+PiB0bwo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IGdpdCA/Cj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4gVGhlIENJIHNldHVwIHdhcyB0aGUgbWFpbiBzdG9wIGZvciBpdCA/Cj4+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4gT24gRnJpLCBPY3QgNiwgMjAxNyBhdCA4OjA1IFBNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IHdyb3RlOgo+Pj4+Pj4+Pj4+Pj4+IEkgd2FzIGV4cGVjdGluZyB0aGUgdXN1YWwgbGl0YW55Cj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+PiB3aGF0IEknbSBub3QgY29uZmlkZW50IGN1cnJlbnRseSB3aXRoIHBpcGVsaW5lIG9uIE1hdmVuCj4+Pj4gY29yZSBpcwo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IHRoYXQKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4gd2UKPj4+Pj4+Pj4+Pj4+PiBoYXZlCj4+Pj4+Pj4+Pj4+Pj4gZm9yIGV4YW1wbGUgdGhlICJtYXZlbi0zLngtamVua2luc2ZpbGUvTU5HLTYyNDIgLSBidWlsZCAjMQo+Pj4+IC0KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBudWxsIgo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+PiBtZXNzYWdlLAo+Pj4+Pj4+Pj4+Pj4+IHdpdGggdGhpcyAibnVsbCIgcGFydCB0aGF0IG1ha2VzIG1lIHdvbmRlciBpZiB3ZSBhcmUgdXNpbmcKPj4+PiBpdAo+Pj4+Pj4+Pj4+Pj4+IGFzCj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IGV4cGVjdGVkLgo+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+IEFuZCBmb3IgbGFyZ2UgbXVsdGktbW9kdWxlIHN2biB0cnVua3MgKHRoZSBvbmVzIHdlIGRvbid0Cj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gbWlncmF0ZSB0bwo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gZ2l0Ogo+Pj4+Pj4+Pj4+Pj4+IG1haW5seSBwbHVnaW5zIGFuZCBzaGFyZWQpLCBpcyB0aGVyZSBhIHNvbHV0aW9uIHRvIHJlYnVpbGQKPj4+PiBqdXN0Cj4+Pj4+Pj4+Pj4+Pj4gY2hhbmdlZAo+Pj4+Pj4+Pj4+Pj4+IG1vZHVsZXM/Cj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+PiBpZGVhbGx5LCB0aGUgcmVidWlsZCB3aGVuIGEgU05BUFNIT1QgZGVwZW5kZW5jeSBpcyBwdWJsaXNoZWQKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiB3b3VsZAo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+PiBoYXZlCj4+Pj4+Pj4+Pj4+Pj4gYmVlbiBhCj4+Pj4+Pj4+Pj4+Pj4gcGx1cywgYnV0IHRoaXMgaXMgc3VmZmljaWVudGx5IGEgcmFyZSB1c2UgdGhhdCBJIHdvbid0IGJlCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gZXh0cmVtaXN0Cj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+IFRoZW4gSUlVQywgdGhpcyBtaWdyYXRpb24gam9iIGlzIG9uZSBhZGRpdGlvbmFsIFRPRE8gZm9yCj4+Pj4gbWUuLi4KPj4+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+IFJlZ2FyZHMsCj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+PiBIZXJ2PUMzPUE5Cj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+PiBMZSB2ZW5kcmVkaSA2IG9jdG9icmUgMjAxNywgMTc6NDY6NTMgQ0VTVCBBcm5hdWQgSD1DMz1BOXJpdGllcj0KIGEKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiA9QzM9QTljcml0IDoKPj4+Pj4+Pj4+Pj4+Pj4gSSBhZ3JlZSB0aGF0IHdlIHNob3VsZCB1c2UgcGlwZWxpbmUgbm93ZGF5cwo+Pj4+Pj4+Pj4+Pj4+PiBwZXJoYXBzIGEgc2hhcmVkIGxpYiBpZiB3ZSB3YW50IHRvIHN0YW5kYXJkaXplIHNvbWUgc3R1ZmZzCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gYW5kIGEgc2V0Cj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+PiBvZgo+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+PiBtdWx0aS1icmFuY2hlcyBqb2JzIChvciBvcmcgZm9sZGVyIGJ1dCBpdCByZXF1aXJlcyBHaXRIdWIKPj4+PiA6KAo+Pj4+Pj4+Pj4+Pj4+PiApCj4+Pj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+IE9uIEZyaSwgT2N0IDYsIDIwMTcgYXQgOToxNiBBTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4+Pj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Pj4+Pj4+Pj4+Pj4+Pj4gT24gRnJpIDYgT2N0IDIwMTcgYXQgMDY6MzIsIEhlcnY9QzM9QTkgQk9VVEVNWSA8Cj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gaGVydmUuYm91dGVteUBmcmVlLmZyPgo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+PiB3cm90ZToKPj4+Pj4+Pj4+Pj4+Pj4+PiBJIGp1c3QgZml4ZWQgYSBmZXcgZmFpbGluZyBqb2JzIFsxXSB0byBoYXZlIGFnYWluIGEKPj4+Pj4+Pj4+Pj4+Pj4+PiB1c2FibGUKPj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gSmVua2lucy4KPj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4+PiBOb3cgSSdtIGZhY2luZyBzb21lIGlzc3VlcywgSSBzdXBwb3NlIGNhdXNlZCBieSBuZXdlcgo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IEplbmtpbnMKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4gdmVyc2lvbnM6Cj4+Pj4+Pj4+Pj4+Pj4+Pj4gLSBNYXZlbiAzLjAuNSBjYXVzZXMgTm9TdWNoTWV0aG9kRXJyb3I6Cj4+Pj4+Pj4+Pj4+Pj4+Pj4gby5jLnBsZXh1cy51dGlsLnhtbC5wdWxsLgo+Pj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4+IE1YUGFyc2VyCj4+Pj4+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+Pj4+IFsyXQo+Pj4+Pj4+Pj4+Pj4+Pj4+IC0gSSBoYWQgdG8gc3dpdGNoIHRvIEpESyA4IGZvciBtYXZlbi1wbHVnaW4tdG9vbHMgam9iLAo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IHNpbmNlIEpESwo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+PiBjYXVzZXMKPj4+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+Pj4+IGZhaWx1cmVzIChsb29rcyBsaWtlIEplbmtpbnMgdXNlcyBhIGhhY2sgdG8gaW5qZWN0Cj4+Pj4gSkRLIDcKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBhcyBhCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+PiB0b29sCj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4gd2hpbGUKPj4+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+Pj4+IHRoZQo+Pj4+Pj4+Pj4+Pj4+Pj4+IGJ1aWxkIEpWTSBpcyBKYXZhIDgpCj4+Pj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4+PiBTaG91bGQgd2UgZHJvcCBNYXZlbiAzLjAuNSBidWlsZHMgYW5kIEpESyA3Pwo+Pj4+Pj4+Pj4+Pj4+Pj4+IE5vdGljZSBJIGRpZG4ndCBjaGVjayB3aGljaCBpcyB0aGUgbWluaW11bSBNYXZlbgo+Pj4+IHZlcnNpb24KPj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gcmVxdWlyZWQuLi4KPj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4+PiBPciBwZXJoYXBzIHNpbXBseSBkb24ndCB1c2UgdGhlIEplbmtpbnMgTWF2ZW4gcGx1Z2luCj4+Pj4gd2l0aAo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IHRoaXMKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IE1hdmVuCj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+PiAzLjAuNQo+Pj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4+PiBvcgo+Pj4+Pj4+Pj4+Pj4+Pj4+IEpESyA3IGNvbmZpZ3VyYXRpb246IGRlZmF1bHQgYnVpbGQgYXMgSmVua2lucyBNYXZlbgo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IHBsdWdpbiB3aXRoCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+PiBKREsKPj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+PiA4ICsKPj4+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+Pj4+IGxhdGVzdAo+Pj4+Pj4+Pj4+Pj4+Pj4+IE1hdmVuLCBhbmQgb3RoZXIgY29uZmlndXJhdGlvbnMgYXMgc2NyaXB0ZWQgam9icz8KPj4+Pj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+PiBodHRwOi8vamF2YWFkdmVudHVyZS5ibG9nc3BvdC4KPj4+PiBpZS8yMDEzLzExL2plbmtpbnMtbWF2ZW4tam9iLT4gPj4+PiA+ID4gPiA+ID4gPiA+Cj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+PiB0eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sCj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4+IDxodHRwOi8vamF2YWFkdmVudHVyZS5ibG9nc3BvdC5pZS8yMDEzLzExL2plbmtpbnMtPiA+Cj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+PiBtYXZlbi1qb2ItdHlwZS1jb25zaWRlcmVkLWV2aWwuaHRtbD9tPTNEMT4KPj4+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+Pj4gV2Ugc2hvdWxkIHN0b3AgdXNpbmcgdGhlIGV2aWwgam9iIHR5cGUgYXMgaXQ9RTI9ODA9OTlzIG1pbmltPQp1bQo+Pj4+IEphdmEKPj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gdmVyc2lvbiBpcwo+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+Pj4gZGljdGF0ZWQgYnkgSmVua2lucz1FMj04MD05OSBKYXZhIG1pbmltdW0uCj4+Pj4+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+Pj4+IFdlIG5lZWQgdG8gZGVmaW5lIG91ciBjb21tb24gc3RyYXRlZ3kgYW5kIGhhdmUgYQo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IGNvbnNpc3RlbnQKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+Pj4gY29uZmlndXJhdGlvbgo+Pj4+Pj4+Pj4+Pj4+Pj4+IGZvcgo+Pj4+Pj4+Pj4+Pj4+Pj4+IGV2ZXJ5IGpvYiB1bmRlcnN0b29kIGJ5IGV2ZXJ5Ym9keQo+Pj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4+IEkgcmVjb21tZW5kIEplbmtpbnNmaWxlIGFuZCB0aGUgYHdpdGhNYXZlbmAgd3JhcHBlcgo+Pj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4+PiBSZWdhcmRzLAo+Pj4+Pj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+Pj4gSGVydj1DMz1BOQo+Pj4+Pj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+Pj4gWzFdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi8KPj4+Pj4+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+Pj4+IFsyXQo+Pj4+Pj4+Pj4+Pj4+Pj4+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvCj4+Pj4gdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tPgo+Pj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4+IHBsdWdpbi10b29scy1qZGstMS43LzE2Mi9jb25zb2xlCj4+Pj4+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+PiAtLS0tLS0tLS0KPj4+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUuCj4+Pj4gb3JnCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6Cj4+Pj4+Pj4+PiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+Pj4+IC0tCj4+Pj4+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+Pj4gU2VudCBmcm9tIG15IHBob25lCj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiAtLS0tLS0tLS0KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+Pj4+Pj4+Pj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IC0tLS0tLS0tLQo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+Pj4+Pj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+IC0tLS0tLS0tLQo+Pj4+Pj4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+Pj4+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+Pj4+Pj49MjAKPj4+Pj4+Pj4gLS0KPj4+Pj4+Pj4gQ2hlZXJzCj4+Pj4+Pj4+IFRpYm9yCj4+Pj49MjAKPj4+Pj0yMAo+Pj4+PTIwCj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Pj49MjAKPj4+Pj0yMAo+Pj49MjAKPj4+PTIwCj4+PiAtLQo+Pj4gLS0tLS0KPj4+IEFybmF1ZCBIPUMzPUE5cml0aWVyCj4+PiBodHRwOi8vYWhlcml0aWVyLm5ldAo+Pj4gTWFpbC9HVGFsazogYWhlcml0aWVyIEFUIGdtYWlsIERPVCBjb20KPj4+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKPj49MjAKPj49MjAKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj49MjAKPj49MjAKPj0yMAo+PTIwCj4gLS09MjAKPiAtLS0tLQo+IEFybmF1ZCBIPUMzPUE5cml0aWVyCj4gaHR0cDovL2FoZXJpdGllci5uZXQKPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1MTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE5vdiAxNyAxOTowNTowNiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1MTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQ0ZEOEIxNzUwQgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDE3IE5vdiAyMDE3IDE5OjA1OjA2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTEzOTIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTcgTm92IDIwMTcgMTk6MDU6MDYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDExMzE4IGludm9rZWQgYnkgdWlkIDUwMCk7IDE3IE5vdiAyMDE3IDE5OjA1OjA2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTEzMDYgaW52b2tlZCBieSB1aWQgOTkpOyAxNyBOb3YgMjAxNyAxOTowNTowNiAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAxNyBOb3YgMjAxNyAxOTowNTowNiArMDAwMApSZWNlaXZlZDogZnJvbSBbMTkyLjE2OC4xLjEzXSAocDU0OEY5QzRFLmRpcDAudC1pcGNvbm5lY3QuZGUgWzg0LjE0My4xNTYuNzhdKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgQUQ1NEYxQTAxNDA7CglGcmksIDE3IE5vdiAyMDE3IDE5OjA1OjA1ICswMDAwIChVVEMpClN1YmplY3Q6IFJlOiBNYXZlbiByZXNvbHZlciBicmFuY2ggY29uc29saWRhdGlvbgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sCiA9P1VURi04P1E/SGVydj1jMz1hOV9CT1VURU1ZPz0gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KUmVmZXJlbmNlczogPDIwMTcxMTA5MDUzNTUxLjk1N0Q0MjlDNTBEMUBkZDE3MzMyLmthc3NlcnZlci5jb20+CiA8MTY2NzE5NS50N0hnMk9NOWJlQGdpZ2E+IDw4NWM1NDYzOC1kODI1LTZjMWMtYTUwNC0xMzg4ZjhjNzc3YzlAYXBhY2hlLm9yZz4KIDw3OTE2ODc4LnlMbU1jY0R5UzdAZ2lnYT4KRnJvbTogTWljaGFlbCBPc2lwb3YgPG1pY2hhZWxvQGFwYWNoZS5vcmc+Ck1lc3NhZ2UtSUQ6IDw0MWVjZTMyNy0wYTc2LTk0MGUtOWRmYi02YzMzYmM2MjE0NTRAYXBhY2hlLm9yZz4KRGF0ZTogRnJpLCAxNyBOb3YgMjAxNyAyMDowNTowMiArMDEwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXT1c2NDsgcnY6NTIuMCkgR2Vja28vMjAxMDAxMDEKIFRodW5kZXJiaXJkLzUyLjQuMApNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPDc5MTY4NzgueUxtTWNjRHlTN0BnaWdhPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tVVMKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKQW0gMjAxNy0xMS0xNSB1bSAyMzowNSBzY2hyaWViIEhlcnY9QzM9QTkgQk9VVEVNWToKPiBpdCBzZWVtcyBJIGhhdmUgbm90IGJlZW4gY2xlYXI6IEknbGwgdHJ5IHRvIGV4cGxhaW4gYmV0dGVyCj49MjAKPiAxLiBtYXZlbi1yZXNvbHZlci1hbnQtdGFza3MgZGVwZW5kcyBvbiBtYXZlbi1yZXNvbHZlci1wcm92aWRlciAoZnJvbSBNYT0KdmVuCj4gY29yZSkKPiAyLiBtYXZlbi1yZXNvbHZlci1wcm92aWRlciAodGhlbiBNYXZlbiBjb3JlKSBkZXBlbmRzIG9uIG1hdmVuLXJlc29sdmVyCj49MjAKPiBpZiB3ZSBwdXQgbWF2ZW4tcmVzb2x2ZXItYW50LXRhc2tzIGluIHRoZSBzYW1lIHJlYWN0b3IgdGhhbiBtYXZlbi1yZXNvbD0KdmVyLCB3ZQo+IGNhbid0IHJlbGVhc2UgYW55IG1hdmVuLXJlc29sdmVyIEFQSSBjaGFuZ2UgdGhhdCBicmVha3MgbWF2ZW4tcmVzb2x2ZXItPQoKPgoKVmVyeSBnb29kLCBsZWF2ZSBpdCBvdXQuIE1vdmUgaXQgdG8gYSBzZXBhcmF0ZSByZXBvLgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQ4MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgTm92IDE1IDAwOjQ2OjE4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQ4MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBGMzhCODEwRjk2Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMTUgTm92IDIwMTcgMDA6NDY6MTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2ODY4NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNSBOb3YgMjAxNyAwMDo0NjoxNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjg1OTAgaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgTm92IDIwMTcgMDA6NDY6MTcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2ODU3OSBpbnZva2VkIGJ5IHVpZCA5OSk7IDE1IE5vdiAyMDE3IDAwOjQ2OjE3IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAxNSBOb3YgMjAxNyAwMDo0NjoxNyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDk2QTdDMUExQkY0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxNSBOb3YgMjAxNyAwMDo0NjoxNiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xLjMKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEuMyB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGdqa3IwT09MbjNoWSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgMTUgTm92IDIwMTcgMDA6NDY6MTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDAyLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI0XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDEyM0MxNUZDNDMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDE1IE5vdiAyMDE3IDAwOjQ2OjE0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDc4IHdpdGggTUUKCWlkIGEwbUQxdzAwYjIwVWZkeTAzMG1EVWw7IFdlZCwgMTUgTm92IDIwMTcgMDE6NDY6MTQgKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogV2VkLCAxNSBOb3YgMjAxNyAwMTo0NjoxNCArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gSkRlcHJTY2FuIFBsdWdpbiB2ZXJzaW9uIDMuMC4wLWFscGhhLTEKRGF0ZTogV2VkLCAxNSBOb3YgMjAxNyAwMTo0NjoxMyArMDEwMApNZXNzYWdlLUlEOiA8NDIxMTUyMS51aUdxMVRmYXNwQGdpZ2E+CkluLVJlcGx5LVRvOiA8b3AueTlsamJoendrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+ClJlZmVyZW5jZXM6IDxvcC55OWxqYmh6d2tka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgorMQoKdHJpZWQgdG8gcmVwcm9kdWNlL3ZlcmlmeSB0aGUgYnVpbGQgdXNpbmcgSkRLIDEuNy4wXzgwICh3aGVuIFJvYmVydCB1c2VkPTIwCjEuNy4wXzU1KSwgYW5kIGRpZmZvc2NvcGUgc2hvd3MgdGhhdCBnZW5lcmF0ZWQgYnl0ZWNvZGUgaGFzIGRpZmZlcmVuY2VzIGluPQo9MjAKY29uc3RhbnQgcG9vbCBvcmRlcgpJdCBsb29rcyBsaWtlIHJlcHJvZHVjaWJsZSBidWlsZHMgd2lsbCByZXF1aXJlIHNvbWUgcHJlY2lzZSBKREsgdmVyc2lvbjogbm89CnQ9MjAKc28gZWFzeS4uLgoKUmVnYXJkcywKCkhlcnY9RTkKCkxlIGRpbWFuY2hlIDEyIG5vdmVtYnJlIDIwMTcsIDE2OjE1OjA3IENFVCBSb2JlcnQgU2Nob2x0ZSBhID1FOWNyaXQgOgo+IEhpLAo+PTIwCj4gVGhpcyBpcyB0aGUgaW5pdGlhbCByZWxlYXNlIG9mIHRoZSBNYXZlbiBKRGVwclNjYW4gUGx1Z2luLgo+PTIwCj4gSXQgaXMgYSB3cmFwcGVyIGFyb3VuZCB0aGUgamRlcHJzY2FuIHRvb2wsIGF2YWlsYWJsZSBzaW5jZSBKYXZhIDk6Cj4gaHR0cHM6Ly9kb2NzLm9yYWNsZS5jb20vamF2YXNlLzkvdG9vbHMvamRlcHJzY2FuLmh0bQo+PTIwCj4gVGhlcmUgYXJlIHplcm8gaXNzdWVzIGxlZnQgaW4gSklSQToKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9M0Rwcm9qZWN0JTIwJTNEJTIwTUpERVBSU0NBTiUyPQowQU5EJQo+IDIwc3RhdHVzJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDCj49MjAKPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3NC8KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zZXJ2aWNlL2xvY2FsL3JlcG9zaXRvcmllcy9tYXZlbi0xMzc0L2NvbnRlPQpudC8KPiBvcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4tamRlcHJzY2FuLXBsdWdpbi8zLjAuMC1hbHBoYS0xL21hdmVuLWpkZXByPQpzY2EKPiBuLXBsdWdpbi0zLjAuMC1hbHBoYS0xLXNvdXJjZS1yZWxlYXNlLnppcAo+PTIwCj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gbWF2ZW4tamRlcHJzY2FuLXBsdWdpbi0zLjAuMC1hbHBoYS0xLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOgo+IGNjYmVkMzNlYTNiYWE1MjdiOWEwY2Y5MGRiYjRmOWNhOGJiODhlZjQKPj0yMAo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1qZGVwcnNjYW4tcGx1Z2luLUxBVEVTVC8KPj0yMAo+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCj49MjAKPiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+PTIwCj4gWyBdICsxCj4gWyBdICswCj4gWyBdIC0xCj49MjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODAwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBEZWMgMjAgMTA6MTM6NTIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODAwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEIzMDVGMTc1QkUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyMCBEZWMgMjAxNyAxMDoxMzo1MiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDc2ODMwIGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIERlYyAyMDE3IDEwOjEzOjUyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3Njc1MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBEZWMgMjAxNyAxMDoxMzo1MiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc2NzQwIGludm9rZWQgYnkgdWlkIDk5KTsgMjAgRGVjIDIwMTcgMTA6MTM6NTIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDIwIERlYyAyMDE3IDEwOjEzOjUyICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgOUM1RTIxODA5QjMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDIwIERlYyAyMDE3IDEwOjEzOjUxICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEuMwpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMS4zIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgS0FNX05VTVNVQkpFQ1Q9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEhaaWJjTnFTUW4yNyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgMjAgRGVjIDIwMTcgMTA6MTM6NTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDA2LnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI4XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDkxRDJDNUYxMjEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDIwIERlYyAyMDE3IDEwOjEzOjUwICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDExIHdpdGggTUUKCWlkIG9BRHExdzAwTTIwVWZkeTAzQURxQzE7IFdlZCwgMjAgRGVjIDIwMTcgMTE6MTM6NTAgKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogV2VkLCAyMCBEZWMgMjAxNyAxMToxMzo1MCArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gRG94aWEgdmVyc2lvbiAxLjgKRGF0ZTogV2VkLCAyMCBEZWMgMjAxNyAxMToxMzo0OSArMDEwMApNZXNzYWdlLUlEOiA8NDMwMjc5OS4xWmxqQ1ZPSERGQGdpZ2E+CkluLVJlcGx5LVRvOiA8NTY1Nzk0My5oWW8yTW9tUVdIQGdpZ2E+ClJlZmVyZW5jZXM6IDw1NjU3OTQzLmhZbzJNb21RV0hAZ2lnYT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpoZXJlIGlzIG15ICsxCgpSZWdhcmRzLAoKSGVydj1FOQoKTGUgZGltYW5jaGUgMTcgZD1FOWNlbWJyZSAyMDE3LCAxNzozNjo1MyBDRVQgSGVydj1FOSBCT1VURU1ZIGEgPUU5Y3JpdCA6Cj4gSGksCj49MjAKPiBXZSBzb2x2ZWQgMTkgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiBwcm9qZWN0SWQ9M0QxMjMxNzIzMCZ2ZXJzaW9uPTNEMTIzMzQ4NDcmc3R5bGVOYW1lPTNEVGV4dAo+PTIwCj4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUzRCUyMERPWElBJTIwQU5ECj4gJTIwc3RhdHVzJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDCj49MjAKPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM4My8KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzgzL29yZy9hcGFjaGUvCj4gbWF2ZW4vZG94aWEvZG94aWEvMS44L2RveGlhLTEuOC1zb3VyY2UtcmVsZWFzZS56aXAKPj0yMAo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IGRveGlhLTEuOC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogOTdiZjQzNWRhMDNkZDRhOGQ1Y2ZjMWIwZjA3MjY1MDkwODYzY2Y9CmYwCj49MjAKPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvZG94aWEvZG94aWEtYXJjaGl2ZXMvZG94aWEtTEFURVNULwo+PTIwCj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPj0yMAo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj49MjAKPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQxMzItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIE9jdCAgMiAxNjo1MjoxOSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxMzItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOUM1OTIxMDE0OAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sICAyIE9jdCAyMDE3IDE2OjUyOjE5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDgwOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIE9jdCAyMDE3IDE2OjUyOjE5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0NzIyIGludm9rZWQgYnkgdWlkIDUwMCk7IDIgT2N0IDIwMTcgMTY6NTI6MTkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0NzExIGludm9rZWQgYnkgdWlkIDk5KTsgMiBPY3QgMjAxNyAxNjo1MjoxOSAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAwMiBPY3QgMjAxNyAxNjo1MjoxOSArMDAwMApSZWNlaXZlZDogZnJvbSBiZW5lZGlrdHMtbWJwLmxvY2FsIChkc2xiLTA4OC0wNzgtMjE1LTA3Ny4wODguMDc4LnBvb2xzLnZvZGFmb25lLWlwLmRlIFs4OC43OC4yMTUuNzddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgQ0RENTYxQTAwMjkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICAyIE9jdCAyMDE3IDE2OjUyOjE3ICswMDAwIChVVEMpCkZyb206IEJlbmVkaWt0IFJpdHRlciA8YnJpdHRlckBhcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47CgljaGFyc2V0PXV0Zi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKTWltZS1WZXJzaW9uOiAxLjAgKE1hYyBPUyBYIE1haWwgMTEuMCBcKDM0NDUuMS42XCkpClN1YmplY3Q6IFJlOiBkZXBlbmRlbmN5OmdvLW9mZmxpbmUgYnJva2VuPwpEYXRlOiBNb24sIDIgT2N0IDIwMTcgMTg6NTI6MTQgKzAyMDAKUmVmZXJlbmNlczogPDQ5NTk1MjJBLTIwOTAtNDIzOS04MjMzLUUzMjAwMERFOUE1QkBhcGFjaGUub3JnPgogPENBTWtfQmVodi0wQ2o0a1kxbjYyQTFwVkZlOFBkejc0RW1hOGpDRHh2V2NOSEFkZkxVUUBtYWlsLmdtYWlsLmNvbT4KIDxCQzQ1NEJEQS1DMTE2LTREQTYtODEzNS1DMjBENUEzNkI4NTBAYXBhY2hlLm9yZz4KIDxDQU1rX0Jlanp3WTg3S3lKSnJDckx2VnlUWVdoaVRuPXJkLTdCT011QlpyNm8xc2hRQVFAbWFpbC5nbWFpbC5jb20+CiA8ODY5NzUyNDgtNUE3OC00MjFDLUIwQjktMEI4QzZFNkJFRERGQGFwYWNoZS5vcmc+CiA8Q0FITmR4dW10Tk1DQV9rTzJxRUF4eGduMHR2cEtTT0huMzJqWnExX0NBTHl1aHFCb21RQG1haWwuZ21haWwuY29tPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxDQUhOZHh1bXROTUNBX2tPMnFFQXh4Z24wdHZwS1NPSG4zMmpacTFfQ0FMeXVocUJvbVFAbWFpbC5nbWFpbC5jb20+Ck1lc3NhZ2UtSWQ6IDw0MzMxMTkxQS0yMDE4LTRFOTQtOURFOS0xNUJGQjE5MDMyNjZAYXBhY2hlLm9yZz4KWC1NYWlsZXI6IEFwcGxlIE1haWwgKDIuMzQ0NS4xLjYpCgpIZWxsbyBMYWlyZAoKPiBBbSAwMi4xMC4yMDE3IHVtIDE4OjQyIHNjaHJpZWIgTGFpcmQgTmVsc29uIDxsam5lbHNvbkBnbWFpbC5jb20+Ogo+PTIwCj4gT24gV2VkLCBTZXAgMjcsIDIwMTcgYXQgNDo1MyBBTSBCZW5lZGlrdCBSaXR0ZXIgPGJyaXR0ZXJAYXBhY2hlLm9yZz4gPQp3cm90ZToKPj0yMAo+PiBJIGhhdmUgYSBDSSBCdWlsZCBpbiBHaXRMYWIsIHdoZXJlIEkgd2FudCB0byBkZWZpbmUgYSBqb2IgdGhhdCA9CmRvd25sb2Fkcwo+PiBhbGwgdGhlIGFydGlmYWN0cyB3aGljaCBhcmUgbmVlZGVkIGZvciB0aGUgZGlmZmVyZW50IGxpZmVjeWNsZSBwaGFzZXMgPQphbmQKPj4gcGx1Z2luIGV4ZWN1dGlvbnMgYXMgd2VsbCBhcyBhbGwgcHJvamVjdCBkZXBlbmRlbmNpZXMuIEkgb25seSB3YW50IHRvCj4+IGRvd25sb2FkIGFsbCB0aGUgc3R1ZmYgb25jZSBhbmQgdGhlbiBjb3B5IHRoZSBhcnRpZmFjdHMgYmV0d2VlbiB0aGUgPQpidWlsZAo+PiBzdGFnZXMuCj49MjAKPj0yMAo+IEhhdmUgeW91IGxvb2tlZCBhdCB0aGUgY2FjaGUgZGlyZWN0aXZlICgKPiBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyNjYWNoZSkgYW5kIGEgY3VzdG9tIHNldHRpbmdzLnhtbCA9CndpdGggYQo+IDxsb2NhbFJlcG9zaXRvcnk+IGVsZW1lbnQgaW5zdGVhZCBvZiB1c2luZyBhcnRpZmFjdHM/CgpUaGVyZSBpcyBubyBuZWVkIGZvciBhIGN1c3RvbSBzZXR0aW5ncy54bWwsIHNpbmNlIHlvdSBjYW4gc2V0IHRoZSBsb2NhbCA9CnJlcG9zaXRvcnkgdXNpbmcgTUFWRU5fT1BUUy4gVGhpcyBjYW4gYmUgZG9uZSB3aXRoIGEgdG9wIGxldmVsIHZhcmlhYmxlcyA9CmRlY2xhcmF0aW9uIGluIC5naXRsYWItY2kueWFtbC4KClRoZSBjYWNoZSBkaXJlY3RpdmUgd29uPUUyPTgwPTk5dCBoZWxwIHlvdSBoZXJlLCBzaW5jZSBpdCB3aWxsIGNhY2hlID0KZGVwZW5kZW5jaWVzIGJldHdlZW4gcGlwZWxpbmUgcnVucy4gSSBkb249RTI9ODA9OTl0IHRoaW5rIHRoaXMgaXMgYSBnb29kID0KaWRlYS4gSSBsaWtlIG15IENJIGJ1aWxkcyB0byBydW4gZnJvbSBhIGNsZWFuIGVudmlyb25tZW50LiBIb3dldmVyIGZvciA9Cm9uZSBwaXBlbGluZSBydW4sIEkgd2FudCB0byBkb3dubG9hZCBhbGwgZGVwZW5kZW5jaWVzIHVwZnJvbnQuIEJ1dCB0aGlzID0KZG9lcyBub3Qgc2VlbSB0byBiZSBwb3NzaWJsZS4KCkNoZWVycywKQmVuZWRpa3QKCj49MjAKPiBCZXN0LAo+IExhaXJkCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NTEyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBOb3YgMTcgMTg6MDM6NTYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTEyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDEzQTNFMTcyOEYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAxNyBOb3YgMjAxNyAxODowMzo1NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ2MDMxIGludm9rZWQgYnkgdWlkIDUwMCk7IDE3IE5vdiAyMDE3IDE4OjAzOjU1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0NTk1NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNyBOb3YgMjAxNyAxODowMzo1NSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ1OTQ0IGludm9rZWQgYnkgdWlkIDk5KTsgMTcgTm92IDIwMTcgMTg6MDM6NTUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDE3IE5vdiAyMDE3IDE4OjAzOjU1ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgOUYxQzIxODBGQTMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDE3IE5vdiAyMDE3IDE4OjAzOjU0ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDhVQXBHS2tlQXhEaCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCUZyaSwgMTcgTm92IDIwMTcgMTg6MDM6NTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDEyLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTM0XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDVENjZENUZCQjAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDE3IE5vdiAyMDE3IDE4OjAzOjUxICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDM1IHdpdGggTUUKCWlkIGI2M2wxdzAwMTIwVWZkeTAzNjNsNjM7IEZyaSwgMTcgTm92IDIwMTcgMTk6MDM6NDUgKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogRnJpLCAxNyBOb3YgMjAxNyAxOTowMzo0NSArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBNYXZlbiByZXNvbHZlciBicmFuY2ggY29uc29saWRhdGlvbgpEYXRlOiBGcmksIDE3IE5vdiAyMDE3IDE5OjAzOjQ1ICswMTAwCk1lc3NhZ2UtSUQ6IDw0NDQ2ODQxLmszRVBrbWM1RTBAZ2lnYT4KSW4tUmVwbHktVG86IDxvcC55OXVoY2JtaWtka2hyckBkZXNrdG9wLTJraHNrNDQ+ClJlZmVyZW5jZXM6IDwyMDE3MTEwOTA1MzU1MS45NTdENDI5QzUwRDFAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPiA8MjAxNzExMTYxNzEzMTUuMzY2MzYyOUMwMDgxQGRkMTczMzIua2Fzc2VydmVyLmNvbT4gPG9wLnk5dWhjYm1pa2RraHJyQGRlc2t0b3AtMmtoc2s0ND4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgp0aGlzIHdvbid0IHdvcms6IHlvdSdsbCBiZSBhYmxlIHRvIGZvb2wgdGhlIGNvbXBpbGVyLCBidXQgbm90IG1hdmVuLXNoYWRlLQpwbHVnaW4gd2hlbiBpdCBidWlsZHMgdGhlIGZ1bGwgamFyIHdpdGggcnVudGltZSBkZXBlbmRlbmNpZXMKClJlZ2FyZHMsCgpIZXJ2PUU5CgpMZSB2ZW5kcmVkaSAxNyBub3ZlbWJyZSAyMDE3LCAxMjoxMDo0OSBDRVQgUm9iZXJ0IFNjaG9sdGUgYSA9RTljcml0IDoKPiAiV2UgY2FuIHNvbHZlIGFueSBwcm9ibGVtIGJ5IGludHJvZHVjaW5nIGFuIGV4dHJhIGxldmVsIG9mIGluZGlyZWN0aW9uLiIKPiBbMV0KPj0yMAo+IExvb2tpbmcgYXQgdGhpcyBuZXcgaW1hZ2VbMV0gaXQgaXMgd2VpcmQgdG8gbWUgdGhhdCBhbnQtdGFza3MgaGFzIGEgZGlyZWN0Cj4gZGVwZW5kZW5jeSBvbiBtYXZlbi1yZXNvbHZlci1wcm92aWRlci4gSSB3b3VsZCBoYXZlIGV4cGVjdGVkIHNvbWUgcHJvdmlkZXIKPiBhYnN0cmFjdGlvbiB3aGVyZSB5b3UgY2FuIGNob29zZSB0byB1c2UgdGhlIG1hdmVuLXJlc29sdmVyLXByb3ZpZGVyLgo+PTIwCj4gTWVyZ2luZyBpdCBpbnRvIG9uZSBwcm9qZWN0IGlzIGFuIGludGVyZXN0aW5nIG9wdGlvbiwgYnV0IEkgdGhpbmsgdGhlCj4gbWF2ZW4tYXJ0aWZhY3QtcmVzb2x2ZXIgaXMgaXNvbGF0ZWQgZW5vdWdoIHRvIGRlc2VydmUgaXRzIG93biBwcm9qZWN0Lgo+PTIwCj4gdGhhbmtzLAo+IFJvYmVydAo+PTIwCj4gWzFdCj4gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvRnVuZGFtZW50YWxfdGhlb3JlbV9vZl9zb2Z0d2FyZV9lbmdpbmVlcmluZwo+IFsyXQo+IGh0dHBzOi8vZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9M0RtYXZlbi1yZXNvbHZlci5naXQ7YT0zRGJsb2I9Cl9wbGFpbjsKPiBmPTNEc3JjL3NpdGUvcmVzb3VyY2VzL2ltYWdlcy9tYXZlbi1yZXNvbHZlci1kZXBzLnBuZztoYj0zRGY1NDM5ZmRlCj49MjAKPiBPbiBUaHUsIDE2IE5vdiAyMDE3IDE4OjEzOjE1ICswMTAwLCBNYW5mcmVkIE1vc2VyCj49MjAKPiA8bWFuZnJlZEBzaW1wbGlnaWxpdHkuY29tPiB3cm90ZToKPiA+IFRoYW5rcyBmb3IgdGhlIGV4cGxhbmF0aW9uIGFuZCBkZXRhaWxzIEhlcnZlLiBTZWVtcyB0byBiZSB0aGF0IHRvIGRvCj4gPiB0aGlzIGNsZWFubHkgd2UgaGF2ZSB0byBicmVhayB0aGUgY2lyY2xlLiBGcm9tIG15IGxpbWl0ZWQga25vd2xlZGdlCj4gPiB0aGVyZSBhcmUgdHdvIHdheXMgdG8gZG8gdGhhdC4KPiA+PTIwCj4gPiAxLiBBcyBzdGVwaGVuIHN1Z2dlc3RlZC4uIGdldCB0aGUgcmVzb2x2ZXIgaW50byBtYXZlbiBjb3JlIHRyZWUuIFRoYXQKPiA+IG1ha2VzIGNvcmUgYmlnZ2VyIGFnYWluIGFuZCB0aWVzIHRoZSB0d28gcHJvamVjdHMgaW50byBvbmUgcmVsZWFzZQo+ID4gY3ljbGUuIEZlYXNpYmxlIGJ1dCBJIGFtIG5vdCBhIGZhbi4KPiA+PTIwCj4gPiAyLiBJIGFtIG5vdCBzdXJlIGlmIHBvc3NpYmxlIGJ1dCAuLiBjb3VsZCB3ZSBnZXQgdGhlIG1hdmVuIHJlc29sdmVyCj4gPiBwcm92aWRlciBvdXQgb2YgbWF2ZW4gY29yZSBhbmQgaW50byB0aGUgcmVzb2x2ZXIgcHJvamVjdCBhbmQgaGF2ZSBpdCBhbGwKPiA+IHRvZ2V0aGVyIGluIHRoZXJlPwo+ID49MjAKPiA+IEluIGVpdGhlciBjYXNlIC4uIGJvdGggb2YgdGhvc2Ugc2VlbSByYXRoZXIgbGFyZ2UgdGFza3Mgc28gSSB3aWxsCj4gPiBkZWZpbml0ZWx5IGdvIGFoZWFkIHdpdGggZGVtbyBicmFuY2ggbWVyZ2UgZmlyc3QuIEkganVzdCBoYXZlIHRvIHJlZG8KPiA+IHRoZSB3b3JrIEkgZGlkIHdpdGhvdXQgdGhlIGFudCB0YXNrcyBpbiB0aGUgdHJlZS4gU3RheSB0dW5lZCBvbiB0aGF0Li4KPiA+PTIwCj4gPiBNYW5mcmVkCj4gPj0yMAo+ID4gSGVydj1FOSBCT1VURU1ZIHdyb3RlIG9uIDIwMTctMTEtMTYgMDU6NDk6Cj4gPj4gZmVhc2libGUsIGJ1dCBJIHJlYWxseSBkb24ndCBsaWtlIGl0OiBzZXBhcmF0aW9uIGlzIGdvb2QuCj4gPj49MjAKPiA+PiBzZXJpb3VzbHksIGp1c3QgbWVyZ2UgZGVtb3MgYW5kIGxldCBhbnQtdGFza3Mgc2VwYXJhdGUsIGFuZCB3ZSBoYXZlIGEKPiA+PiBwcmV0dHkKPiA+PiBnb29kIGNvbXByb21pc2Ugb24gZXZlcnkgYXNwZWN0Cj4gPj4gKG9yIGV2ZW4gZHJvcCBhbnQgdGFza3MgaWYgcmVhbGx5IHRoaXMgaXMgY2F1c2luZyB1cyB0b28gbXVjaAo+ID4+IGhlYWRhY2hlLi4uKQo+ID4+PTIwCj4gPj4gUmVnYXJkcywKPiA+Pj0yMAo+ID4+IEhlcnY9RTkKPiA+Pj0yMAo+ID4+IExlIGpldWRpIDE2IG5vdmVtYnJlIDIwMTcsIDEwOjAzOjA3IENFVCBTdGVwaGVuIENvbm5vbGx5IGEgPUU5Y3JpdCA6Cj4gPj4+IE9uIFRodSAxNiBOb3YgMjAxNyBhdCAwNzo1MSwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPj4+PTIwCj4gPj4+IHdyb3RlOgo+ID4+PiA+IEkganVzdCBwdXNoZWQgYW4gdXBkYXRlIG9mIGRlcGVuZGVuY2llcyBpbWFnZSB0aGF0IHNob3dzIHRoZSBleHRlcm49CmFsCj4gPj4+ID4gbWF2ZW4tCj4gPj4+ID4gcmVzb2x2ZXItcHJvdmlkZXIgKGluIHllbGxvdykgaW5zaWRlIHRoZSByZWFjdG9yIGRlcGVuZGVuY3kgZ3JhcGggKD0KaW4KPiA+Pj4gPiBibHVlKQo+ID4+PiA+PTIwCj4gPj4+ID4gVGhhdCBzaG93cyB0aGUgY2hpY2tlbiBhbmQgZWdnIGlzc3VlIG9uIHJlbGVhc2luZyB3ZSdsbCBoYXZlIG9uIEFQSQo+ID4+PiA+IGJyZWFraW5nCj4gPj4+ID4gY2hhbmdlLiBQZW9wbGUgYWx3YXlzIGJ1aWxkaW5nIGZyb20gc291cmNlIChsaWtlIERlYmlhbikgd2lsbCBoYXZlCj4gPj4+PTIwCj4gPj4+IHRoZQo+ID4+Pj0yMAo+ID4+PiA+IGlzc3VlCj4gPj4+ID4gYWxzby4KPiA+Pj4gPj0yMAo+ID4+PiA+IEZvciBkZW1vcywgd2hpY2ggYXJlIG5vdCByZWFsbHkgcHVibGlzaGVkIGR1cmluZyB0aGUgcmVsZWFzZSAoanVzdCA9CmFzCj4gPj4+ID4gZG9jdW1lbnRhdGlvbiksIGRpc2FibGluZyB0aGUgbW9kdWxlIGluIHRoZSBidWlsZCB3aGVuIG5lY2Vzc2FyeSBpcwo+ID4+PiA+IHN1ZmZpY2llbnQsCj4gPj4+ID4gd29uJ3QgY2hhbmdlIG1hbnkgdGhpbmdzLiBGb3IgYW50IHRhc2tzLCBkaXNhYmxpbmcgdGhlIG1vZHVsZSB3aWxsCj4gPj4+PTIwCj4gPj4+IG5vdAo+ID4+Pj0yMAo+ID4+PiA+IHB1Ymxpc2gKPiA+Pj4gPiB0aGUgYXJ0aWZhY3Q6IHRoaXMgd2lsbCBoYXZlIGEgdmlzaWJsZSBpbXBhY3QuCj4gPj4+PTIwCj4gPj4+IFNob3VsZCB3ZSBqdXN0IGJpdGUgdGhlIGJ1bGxldCBhbmQgYnJpbmcgcmVzb2x2ZXIgaW4tdHJlZSBhcyBtb2R1bGVzID0KaW4KPiA+Pj4gbWF2ZW4gY29yZS4uLiBsZWF2aW5nIGRlbW9zIGFuZCBhbnQgdGFza3MgaGVyZT8KPiA+Pj49MjAKPiA+Pj4gPiBSZWdhcmRzLAo+ID4+PiA+PTIwCj4gPj4+ID4gSGVydj1FOQo+ID4+PiA+PTIwCj4gPj4+ID4gTGUgbWVyY3JlZGkgMTUgbm92ZW1icmUgMjAxNywgMjM6MDU6MTQgQ0VUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaT0KdCA6Cj4gPj4+ID4gPiBpdCBzZWVtcyBJIGhhdmUgbm90IGJlZW4gY2xlYXI6IEknbGwgdHJ5IHRvIGV4cGxhaW4gYmV0dGVyCj4gPj4+ID4gPj0yMAo+ID4+PiA+ID4gMS4gbWF2ZW4tcmVzb2x2ZXItYW50LXRhc2tzIGRlcGVuZHMgb24gbWF2ZW4tcmVzb2x2ZXItcHJvdmlkZXIKPiA+Pj49MjAKPiA+Pj4gKGZyb20KPiA+Pj49MjAKPiA+Pj4gPiBNYXZlbgo+ID4+PiA+PTIwCj4gPj4+ID4gPiBjb3JlKQo+ID4+PiA+ID4gMi4gbWF2ZW4tcmVzb2x2ZXItcHJvdmlkZXIgKHRoZW4gTWF2ZW4gY29yZSkgZGVwZW5kcyBvbgo+ID4+Pj0yMAo+ID4+PiBtYXZlbi1yZXNvbHZlcgo+ID4+Pj0yMAo+ID4+PiA+ID4gaWYgd2UgcHV0IG1hdmVuLXJlc29sdmVyLWFudC10YXNrcyBpbiB0aGUgc2FtZSByZWFjdG9yIHRoYW4KPiA+Pj4gPj0yMAo+ID4+PiA+IG1hdmVuLXJlc29sdmVyLAo+ID4+PiA+PTIwCj4gPj4+ID4gPiB3ZSBjYW4ndCByZWxlYXNlIGFueSBtYXZlbi1yZXNvbHZlciBBUEkgY2hhbmdlIHRoYXQgYnJlYWtzCj4gPj4+ID49MjAKPiA+Pj4gPiBtYXZlbi1yZXNvbHZlci0KPiA+Pj4gPj0yMAo+ID4+PiA+ID4gcHJvdmlkZXIKPiA+Pj4gPiA+PTIwCj4gPj4+ID4gPiBleGFtcGxlOiBpZiB3ZSBtb3ZlIG1hdmVuLXJlc29sdmVyIGNvZGUgdG8gb3JnLmFwYWNoZS5tYXZlbiBqYXZhCj4gPj4+PTIwCj4gPj4+IHBhY2thZ2UKPiA+Pj49MjAKPiA+Pj4gPiBpbgo+ID4+PiA+PTIwCj4gPj4+ID4gPiBtYXZlbi1yZXNvbHZlciAyLjAuMC1TTkFQU0hPVCwgd2UgbmVlZCBtYXZlbi1yZXNvbHZlci1wcm92aWRlcgo+ID4+PiA+ID4gNC4wLjAtU05BUFNIT1QgdGhhdCB1c2VzIG1hdmVuLXJlc29sdmVyIDIuMC4wLVNOQVBTSE9UIHdpdGggdGhpcwo+ID4+Pj0yMAo+ID4+PiBuZXcKPiA+Pj49MjAKPiA+Pj4gPiA+IGphdmEKPiA+Pj4gPiA+IHBhY2thZ2UuIFRoZW4gdHJ5IHRvIHJlbGVhc2UgYW55dGhpbmc6IHlvdSBjYW4ndCwgdW5sZXNzIHlvdSBkb24ndAo+ID4+Pj0yMAo+ID4+PiB0cnkKPiA+Pj49MjAKPiA+Pj4gPiA+IHRvCj4gPj4+ID4gPiByZWxlYXNlIG1hdmVuLSByZXNvbHZlci1hbnQtdGFza3MKPiA+Pj4gPiA+PTIwCj4gPj4+ID4gPiAodGhlIGNvbnNlcXVlbmNlIG9uIHZlcnNpb24gY29uc2lzdGVuY3kgaXMgYW5vdGhlciB3YXkgdG8gZGVzY3JpYmUKPiA+Pj49MjAKPiA+Pj4gdGhlCj4gPj4+PTIwCj4gPj4+ID4gPiBpc3N1ZSwgYnV0IHRoYXQgaXMgbW9yZSBzdWJ0bGUsIHRoZW4gSSBjaG9zZSB0byBkZXNjcmliZSB0aGUgbW9zdAo+ID4+PiA+ID4gdmlzaWJsZQo+ID4+PiA+ID4gaXNzdWUsIHdpdGggQVBJIGJyZWFraW5nIGNoYW5nZSkKPiA+Pj4gPiA+PTIwCj4gPj4+ID4gPiBJTUhPLCBhbm90aGVyIGNvbnNlcXVlbmNlIGNvdWxkIGJlOiBtYXZlbi1yZXNvbHZlci1hbnQtdGFza3Mgd291bGQKPiA+Pj4gPj0yMAo+ID4+PiA+IHBlcmhhcHMKPiA+Pj4gPj0yMAo+ID4+PiA+ID4gYmV0dGVyIGJlIHZlcnNpb25uZWQgbGlrZSBtYXZlbi1yZXNvbHZlci1wcm92aWRlcgo+ID4+PiA+ID49MjAKPiA+Pj4gPiA+PTIwCj4gPj4+ID4gPiBNZXJnaW5nIHJlc29sdmVyLWRlbW9zIGlzIHJlYWxseSB0aGUgZ3JlYXQgYmlnIGlkZWE6IHdpdGggdGhhdAo+ID4+Pj0yMAo+ID4+PiBtZXJnZSwKPiA+Pj49MjAKPiA+Pj4gPiA+IG1vZGlmeWluZyBtYXZlbi1ycmVzb2x2ZXIgY2FuIGltbWVkaWF0ZWx5IGJlIHRlc3RlZCB3aXRoIGRlbW9zOgo+ID4+PiB0aGF0J2xsCj4gPj4+PTIwCj4gPj4+ID4gYmUKPiA+Pj4gPj0yMAo+ID4+PiA+ID4gc28gbXVjaCBlYXNpZXIgdG8gbWFrZSBjaGFuZ2VzIHRvIG1hdmVuLXJlc29sdmVyIGNvZGUhCj4gPj4+ID4gPj0yMAo+ID4+PiA+ID4gUmVnYXJkcywKPiA+Pj4gPiA+PTIwCj4gPj4+ID4gPiBIZXJ2PUU5Cj4gPj4+ID4gPj0yMAo+ID4+PiA+ID4gTGUgbWVyY3JlZGkgMTUgbm92ZW1icmUgMjAxNywgMDk6MDI6MTIgQ0VUIE1pY2hhZWwgT3NpcG92IGEgPUU5Y3I9Cml0IDoKPiA+Pj4gPiA+ID4gV2h5IC0xIG9uIHRoZSBBbnQgdGFza3M/Cj4gPj4+ID4gPiA+PTIwCj4gPj4+ID4gPiA+IEFtIDIwMTctMTEtMTUgdW0gMDA6NTAgc2NocmllYiBIZXJ2PUU5IEJPVVRFTVk6Cj4gPj4+ID4gPiA+ID4gSSBhbnN3ZXJlZCBvbiB0aGUgbWFpbGluZyBsaXN0IGFuZCBvbiB0aGUgMiBKaXJhIGlzc3Vlcwo+ID4+PiA+ID4gPiA+IEluIHN1bW1hcnksICsxIHRvIG1lcmdlIGRlbW9zLCAtMSB0byBtZXJnZSBhbnQtdGFza3MKPiA+Pj4gPiA+ID4gPj0yMAo+ID4+PiA+ID4gPiA+IFJlZ2FyZHMsCj4gPj4+ID4gPiA+ID49MjAKPiA+Pj4gPiA+ID4gPiBIZXJ2PUU5Cj4gPj4+ID4gPiA+ID49MjAKPiA+Pj4gPiA+ID4gPiBMZSBtYXJkaSAxNCBub3ZlbWJyZSAyMDE3LCAxODoxOTo0MCBDRVQgTWFuZnJlZCBNb3NlciBhID1FOWNyPQppdCA6Cj4gPj4+ID4gPiA+ID4+IEFueSBmZWVkYmFjayBvciBzaG91bGQgSSBqdXN0IGdvIGFoZWFkIHdpdGggdGhlIGNsZWFudXA/Cj4gPj4+ID4gPiA+ID4+PTIwCj4gPj4+ID4gPiA+ID4+IE1hbmZyZWQKPiA+Pj4gPiA+ID4gPj49MjAKPiA+Pj4gPiA+ID4gPj4gTWFuZnJlZCBNb3NlciB3cm90ZSBvbiAyMDE3LTExLTA4IDIxOjM1Ogo+ID4+PiA+ID4gPiA+Pj4gSGkgYWxsLAo+ID4+PiA+ID4gPiA+Pj49MjAKPiA+Pj4gPiA+ID4gPj4+IEkgaGF2ZSBzdGFydGVkIGFuZCBtYWRlIGdvb2QgcHJvZ3Jlc3Mgb24gZ2V0dGluZyBNYXZlbgo+ID4+Pj0yMAo+ID4+PiByZXNvbHZlcgo+ID4+Pj0yMAo+ID4+PiA+ID4gPiA+Pj4gYWxsCj4gPj4+ID4gPiA+ID4+PiBpbnRvCj4gPj4+ID4gPiA+ID4+PiB0aGUgbWFzdGVyIGJyYW5jaCBpbnN0ZWFkIG9mIGhhdmluZyBtYXN0ZXIsIGRlbW9zIGFuZAo+ID4+Pj0yMAo+ID4+PiBhbnQtdGFza3MgaW4KPiA+Pj49MjAKPiA+Pj4gPiA+ID4gPj4+IHNlcGFyYXRlIGJyYW5jaGVzLgo+ID4+PiA+ID4gPiA+Pj49MjAKPiA+Pj4gPiA+ID4gPj4+IERldGFpbHMgYXJlIHRyYWNrZWQgaW4KPiA+Pj4gPiA+ID4gPj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTVJFU09MVkVSLTI4Cj4gPj4+ID4gPiA+ID4+Pj0yMAo+ID4+PiA+ID4gPiA+Pj4gQWxsIG9mIGl0IGlzIG5vdyBpbiBhIG5ldyBicmFuY2ggY2FsbGVkIG1hc3Rlci1hbGwgZm9yIHlvdQo+ID4+Pj0yMAo+ID4+PiB0byBzZWUuCj4gPj4+PTIwCj4gPj4+ID4gPiA+ID4+PiBJIGFtIG5vdyB3b25kZXJpbmcgd2hhdCB0aGUgbmV4dCBzdGVwcyBhcmUuIEkgYWRkZWQgd2hhdCBJCj4gPj4+PTIwCj4gPj4+IHRoaW5rCj4gPj4+PTIwCj4gPj4+ID4gPiA+ID4+PiBzaG91bGQKPiA+Pj4gPiA+ID4gPj4+IGhhcHBlbiBuZXh0IGluIHRoZSBpc3N1ZSBpbiBhIGNvbW1lbnQgYW5kIHdvdWxkIGFwcHJlY2lhdGUKPiA+Pj49MjAKPiA+Pj4gYW55Cj4gPj4+PTIwCj4gPj4+ID4gaW5wdXQKPiA+Pj4gPj0yMAo+ID4+PiA+ID4gPiA+Pj4gb24KPiA+Pj4gPiA+ID4gPj4+IHRoZSBjdXJyZW50IHNldHVwIGFuZCBuZXh0IHN0ZXBzLgo+ID4+PiA+ID4gPiA+Pj49MjAKPiA+Pj4gPiA+ID4gPj4+IEFueSBoZWxwIHdvdWxkIGJlIGFwcHJlY2lhdGVkLgo+ID4+PiA+ID4gPiA+Pj49MjAKPiA+Pj4gPiA+ID4gPj4+IG1hbmZyZWQKPiA+Pj4gPj0yMAo+ID4+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0KPiA+Pj4gPj0yMAo+ID4+PiA+ID4gPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+PiA+ID4gPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4+PTIwCj4gPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+PTIwCj4gPj4+ID4gPiA+ID4gLQo+ID4+PiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Pj0yMAo+ID4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+Pj49MjAKPiA+Pj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4+ID49MjAKPiA+Pj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQo9MkQtCj4gPj4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4+ID49MjAKPiA+Pj4gPiAtLQo+ID4+Pj0yMAo+ID4+PiBTZW50IGZyb20gbXkgcGhvbmUKPiA+Pj0yMAo+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4ODItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IERlYyAzMCAxNzozNjo0MiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4ODItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQjRGNDYxNzY4OAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDMwIERlYyAyMDE3IDE3OjM2OjQyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTYwMzMgaW52b2tlZCBieSB1aWQgNTAwKTsgMzAgRGVjIDIwMTcgMTc6MzY6NDIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk1OTU4IGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIERlYyAyMDE3IDE3OjM2OjQyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTU5NDMgaW52b2tlZCBieSB1aWQgOTkpOyAzMCBEZWMgMjAxNyAxNzozNjo0MiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMzAgRGVjIDIwMTcgMTc6MzY6NDIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBERjMzMEMzMjQyOwoJU2F0LCAzMCBEZWMgMjAxNyAxNzozNjo0MCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjIwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC4yMDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBBdjU3Z202NjY2SDA7IFNhdCwgMzAgRGVjIDIwMTcgMTc6MzY6MzcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbW91dC5nbXgubmV0IChtb3V0LmdteC5uZXQgWzIxMi4yMjcuMTcuMjFdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMkREMTU1RjM2OTsKCVNhdCwgMzAgRGVjIDIwMTcgMTc6MzY6MzcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gS2FybC1IZWluenMtTWFjQm9vay1Qcm8ubG9jYWwgKFs5Mi4yMDQuMTIxLjI0MF0pIGJ5CiBtYWlsLmdteC5jb20gKG1yZ214MTAzIFsyMTIuMjI3LjE3LjE2OF0pIHdpdGggRVNNVFBTQSAoTmVtZXNpcykgaWQKIDBMa1A4Wi0xZjVsUDMxOFVsLTAwY1E0SjsgU2F0LCAzMCBEZWMgMjAxNyAxODozNjozMCArMDEwMApSZXBseS1UbzogaW5mb0Bzb2ViZXMuZGUKU3ViamVjdDogUmU6IE1hdmVuIDMuNS4zOiBNTkctNjMwNQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sCiBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+ClJlZmVyZW5jZXM6IDxhZGNjOTdhNi0yZmMyLTA4NWItNmNhNy02ZDRhYzA4OTUyY2ZAZ214LmRlPgogPG9wLnpiejZ3NHM1a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgogPGYzMjM2MGQ3LTY0ZDItOTc1OS05NzFlLTg2NTZjNDJkZDAyMUBnbXguZGU+CiA8b3AuemIybHBidXBrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkZyb206IEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPgpNZXNzYWdlLUlEOiA8NDUzNDQxYjItMDI3Yy0zY2ZjLTQ0OTUtOGFhZjk5YmRlZjg0QGdteC5kZT4KRGF0ZTogU2F0LCAzMCBEZWMgMjAxNyAxODozNjoyOSArMDEwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMTsgcnY6NTIuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzUyLjUuMApNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPG9wLnpiMmxwYnVwa2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDpneThxZTczUjlrMmdmUHdwWFc5ZnpsUFM0ZXd0c1NoZ1YzR2Jvekc0dVk1S3U2QmNpYUkKIENkRmRqa01lZHJjU3hTZkgvZ3BTNnBtYWNDV0gzZm5mdnJhRmpUSnZpVkZ2b1J6cWFkTFBvMWVYRDM3TzhvYjhxVmxvOEc2CiBFQ1dZQ0pQMlB4S1R5Uk5yN3pKdmd3Q2ZZMzRLQ0pJemlCNUJhQmtENnNNQ1gxa2UvSGhnWExLOHlIM1lwaXdvK0t3Zi9SNwogalpUZnpPakFWbWU0dlUwSkdoNUVBPT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDpoM0ZWQUp3UUwvdz06cHhkQVRBbzJ4OGk5eFNDVXd1d0dNZwogYlNxeDZlMUZtdVZna1oyTXZWdUJSVlJydDE3cmdJbm5NNVVRNjBRRFhYRkJPMDI3UkFuQ2s1QUkxdTg0UE5jNTJhaUlWMFdzUgogQ2N5bUZJK3ZLY09FMmhaNEswOE9wdHZ4VFFlOTFyWmFYZWRRZExhV1RxU2JqTFBmbGpUcTVYRTR2elBkbWtEK1AzOWxGK2g0TQogUzYyTXFkRTVxNGQwQm1ybE9FcWM1L3NFdDUxazdzSDNldzNFRUszbzdiT05PUFQvWno3ZGlBcWRNSzJZUEQ1c1dCbC9qSzcwKwogUjN2VXpqUHJTd0RTWGxGZEcvS0doRzhQUmNBL3dBamV4UGZaZWlOYVVaNGFUc3FGMnNIRjdHOEsvYTVvaTJnR1pSb0tyNmszSAogdzZJRjB3SngwWGVGSjVjdHJOSEtENkgzNmljWDNnQ1gvSERSUThlYkNHTHMyM1lNWno0MjNjUlRlMThBeHIxSmFEbExUUGp6RgogQ3NjS1NRcFp4aEdxN2ZHOXFqd1I5ZzZjNHRINmhsM01RdUNpZFFqNlZlSlZFT2UzT29WSklBRmdUcmtYYXA0YXc2UUtVWkJyNwoga1RiSy9JL1pnSXdFUW0rYXVqRm9ENllBamhXRWE5OFFuK25BVFhTbWhvazA4bGgxWjVrdFdCQyszQ1ZvVGhQWHN1dVk4bnkyeAogc3BSRUpPYkhsMi85ZHduanN6bTZSYnBwRWdZak9HdnRwL3RsOHRCRU44M2prRlBJaEcwVkpyeFlmbVgyK2ZpbWZESWZjVUwyKwogR0Y1TXQ4bkYwbTlzMUZVRUdvczRzallNZUxUVHFKQitPUTB5bHEyZ3NoR0RWZXdqUUxiSWZSQXhVQmYrVzZJNHQrVlNoNVdHSAogNHFwdUFlaGs5eERNU2FnZTloUklxYWtEZUc1VDZ6YVJXdk8zVEZ6YkUwUktQdExSWS8rT01sZCtsTm9WbTl0aEN4TjdyNklkcAogb2E4QkNBYkNURitoN09JRFdUS1pSMExxa1N2VnNuYjhMV1ByazNPVUxncjFVd1d6NFFLc3FtMHlWODZ0bklMVHlkaHhLQldCTQogVHhSWU80Z3VKcklPUWpORkhZcmhyVFZNWS9LMWhhOHhSbUtaZGFPNXlOdHU0b09rVk09CgpIaSwKCgpPbiAzMC8xMi8xNyAxODozMywgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4gU3VyZSwgbGV0IG1lIHBpY2sgdGhpcyB1cAoKSSBoYXZlIGFscmVhZHkgaW1wbGVtZW50ZWQgZGlmZmVyZW50IHNvbHV0aW9ucyBidXQgYmFzZWQgb24gcGVyZm9ybWFuY2UgCm1lYXN1cmVtZW50cyB0aGUgb25lIEkgaGF2ZSBpbXBsZW1lbnRlZCBzZWVtZWQgdG8gYmUgdGhlIGZhc3Rlc3QgCnNvbHV0aW9uID8uLi4KCgpLaW5kIHJlZ2FyZHMKS2FybCBIZWlueiBNYXJiYWlzZQo+IAo+IFJvYmVydAo+IAo+IE9uIFNhdCwgMzAgRGVjIDIwMTcgMTU6MTU6NDEgKzAxMDAsIEthcmwgSGVpbnogTWFyYmFpc2UgCj4gPGtobWFyYmFpc2VAZ214LmRlPiB3cm90ZToKPiAKPj4gSGkgUm9iZXJ0LAo+Pgo+PiBPbiAyOS8xMi8xNyAxMToxOCwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4+PiBIaSBLYXJsIEhlaW56LAo+Pj4gwqBJIHRoaW5rIHRoZSBSRWdFeHAgdXNhZ2UgY2FuIGJlIGltcHJvdmVkLgo+Pj4gTm93IGl0IHVzZWQgZm9yIGJ1aWxkaW5nIHVwIGEgbmV3IFN0cmluZyBmb2xsb3dlZCBieSBzZWFyY2hpbmcsIEkgCj4+PiB3b3VsZCBleHBlY3QgdGhhdCBzZWFyY2hpbmcgZm9yICR7KC4rKX0gZ3JvdXBzIHRvIGJlIG1vcmUgZWZmaWNpZW50Lgo+Pgo+PiBEbyB5b3UgaGF2ZSBzb21lIHN1Z2dlc3Rpb25zIHdoYXQgeW91IGV4YWN0bHkgaGF2ZSBpbiBtaW5kPwo+Pgo+PiBLaW5kIHJlZ2FyZHMKPj4gS2FybCBIZWlueiBNYXJiYWlzZQo+Pj4gwqB0aGFua3MsCj4+PiBSb2JlcnQKPj4+IMKgIE9uIEZyaSwgMjkgRGVjIDIwMTcgMTE6MTA6MzYgKzAxMDAsIEthcmwgSGVpbnogTWFyYmFpc2UgCj4+PiA8a2htYXJiYWlzZUBnbXguZGU+IHdyb3RlOgo+Pj4KPj4+PiBIaSwKPj4+Pgo+Pj4+IEkgd291bGQgbGlrZSB0byBrbm93IGlmIHRoZXJlIGFyZSBhbnkgb2JqZWN0aW9ucyB0byBtZXJnZSBNTkctNjMwNSAKPj4+PiBpbnRvIG1hc3RlciAoSmVua2lucyBpcyBmaW5lIFsxXSkuCj4+Pj4KPj4+PiBLaW5kIHJlZ2FyZHMKPj4+PiBLYXJsIEhlaW56IE1hcmJhaXNlCj4+Pj4KPj4+PiBbMV06IAo+Pj4+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvam9iL21hdmVuLXdpcC9qb2IvbWF2ZW4vam9iL01ORy02MzA1LXZhbGlkYXRpb24tb2YtY2ktZnJpZW5kbHkvIAo+Pj4+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzODItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIE5vdiAgMSAxNjo0ODo0MiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzODItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMjAyM0UxNzg0QQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsICAxIE5vdiAyMDE3IDE2OjQ4OjQyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTM3ODYgaW52b2tlZCBieSB1aWQgNTAwKTsgMSBOb3YgMjAxNyAxNjo0ODo0MSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTM3MjEgaW52b2tlZCBieSB1aWQgNTAwKTsgMSBOb3YgMjAxNyAxNjo0ODo0MSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDEzNzEwIGludm9rZWQgYnkgdWlkIDk5KTsgMSBOb3YgMjAxNyAxNjo0ODo0MSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMDEgTm92IDIwMTcgMTY6NDg6NDEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA4REZDRjE4MDcwNQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgIDEgTm92IDIwMTcgMTY6NDg6NDAgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC41ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjUgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBHbFlCaEJwZkw3NEEgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsICAxIE5vdiAyMDE3IDE2OjQ4OjM4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwOC5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEzMF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAzN0FBQjVGRTBFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAgMSBOb3YgMjAxNyAxNjo0ODozOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQzMSB3aXRoIE1FCglpZCBVZ29XMXcwMFMyMFVmZHkwM2dvV0RaOyBXZWQsIDAxIE5vdiAyMDE3IDE3OjQ4OjMwICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFdlZCwgMDEgTm92IDIwMTcgMTc6NDg6MzAgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogbWlncmF0aW5nIHNvbWUgY29kZSB0byBHaXQKRGF0ZTogV2VkLCAwMSBOb3YgMjAxNyAxNzo0ODozMCArMDEwMApNZXNzYWdlLUlEOiA8NDY1NTU5My5qRElHaTJ1VVo4QGdpZ2E+CkluLVJlcGx5LVRvOiA8MzYzMDc5Ni5wQ3gyRlBQZ0ZnQGdpZ2E+ClJlZmVyZW5jZXM6IDw1ODc4MTEwLlRNRW90NlZFdXVAZ2lnYT4gPDIwMjg4ODAuMUhnRm1SSlMwcEBnaWdhPiA8MzYzMDc5Ni5wQ3gyRlBQZ0ZnQGdpZ2E+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKYW5kIGhlcmUgaXMgdGhlIEdvb2dsZSByZXBvIGRlbW8sIHdpdGggZXZlcnkgZ2l0IHJlcG8gY29uZmlndXJlZCAoZXZlbiB0aGUgPQo2PTIwCnRlc3RzKToKaHR0cHM6Ly9naXRodWIuY29tL2hib3V0ZW15L21hdmVuLWFnZ3JlZ2F0b3IKCmxvb2tzIHByb21pc2luZzogaWYgeW91IHVzZSB0aGUgYm9vdHN0cmFwcGluZyBjb21tYW5kcyBmcm9tIHRoZSByZWFkbWUsIHlvdT0KPTIwCnNob3VsZCBiZSBhYmxlIHRvIHVzZSB0aGUgcmVwb3NpdG9yaWVzIGluIGEgbmF0dXJhbCB3YXkgd2l0aCBiYXNpYyBnaXQ9MjAKY29tbWFuZHMKSWYgeW91IGRvbid0IHBsYXkgd2l0aCBicmFuY2hlcywgeW91IHNob3VsZCBiZSBhYmxlIHRvIHJ1biAicmVwbyBzeW5jIiBhdCBhPQpueT0yMAp0aW1lCgpQbGVhc2UgdGVzdCBhbmQgcmVwb3J0IGlmIHlvdSdyZSBjb252aW5jZWQgb3Igbm90CgpJZiBpdCB3b3JrcyB3ZWxsLCBJJ2xsIHB1dCB0aGlzIG1hdmVuLWFnZ3JlZ2F0b3IgZ2l0IHJlcG8gaW4gR2l0Qm94IGFzIGFuPTIwCm9mZmljaWFsIHdheSB0byBnZXQgZnVsbCBNYXZlbiBzb3VyY2UgKGxvb2tzIGFzIGdvb2QgYXMgdHJ1bmtzIGZyb20gc3ZuKQoKUmVnYXJkcywKCkhlcnY9RTkKCkxlIG1lcmNyZWRpIDEgbm92ZW1icmUgMjAxNywgMTI6MDk6NTggQ0VUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOgo+IGFkZGluZyAyIG1vcmUgcmVwb3MgdG8gdGhlIGxpc3Q6Cj4gaHR0cHM6Ly9naXRodWIuY29tL2hib3V0ZW15L21hdmVuLWRveGlhLWNvbnZlcnRlcgo+IGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1kb3hpYS1saW5rY2hlY2sKPj0yMAo+IExlIG1lcmNyZWRpIDEgbm92ZW1icmUgMjAxNywgMDc6Mjg6MDIgQ0VUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOgo+ID4gZm9yIGxhenkgcGVvcGxlLCBJIHRvb2sgdGltZSB0byBjcmVhdGUgdGhlIDQgcmVwbyBvbiBwZXJzb25hbCBHaXRIdWIKPiA+IHNwYWNlOgo+ID4gaHR0cHM6Ly9naXRodWIuY29tL2hib3V0ZW15L21hdmVuLWFwYWNoZS1wYXJlbnQKPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1wYXJlbnQKPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1kZWZhdWx0LXNraW4KPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1mbHVpZG8tc2tpbgo+ID49MjAKPiA+IEkgd29uJ3QgZG8gdGhlIHNhbWUgaW4gdGhlIGZ1dHVyZSBmb3IgdGhlIDI2IHNoYXJlZCBhbmQgNDUgcGx1Z2lucywgc2luPQpjZQo+ID4gbWFudWFsIHJlcG8gY3JlYXRpb24gaXMgbm90IGZ1bi4uLgo+ID49MjAKPiA+IFJlZ2FyZHMsCj4gPj0yMAo+ID4gSGVydj1FOQo+ID49MjAKPiA+IExlIG1hcmRpIDMxIG9jdG9icmUgMjAxNywgMTY6MDg6MDEgQ0VUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOgo+ID4gPiBBcyB5b3UgcHJvYmFibHkgbm90aWNlZCwgSSBtaWdyYXRlZCBtYXZlbi1kaXN0LXRvb2wgWzFdIHRvIGdpdCwgdXNpbmcKPiA+ID4gc2VsZi0KPiA+ID4gc2VydmljZSBHaXRib3ggZm9yIHRoZSBlbXB0eSByZXBvIGNyZWF0aW9uIGFuZCBhIG1pZ3JhdGUtc2FuZGJveC5zaAo+ID4gPiBzaGVsbAo+ID4gPiBzY3JpcHQgWzJdIHRvIHBvcHVsYXRlIHRoZW0gKGFmdGVyIFNsaW5nIGV4YW1wbGUpCj4gPiA+PTIwCj4gPiA+IEl0IHdvcmtlZCBsaWtlIGEgY2hhcm0hCj4gPiA+PTIwCj4gPiA+IElmIG5vYm9keSBvYmplY3RzLCBpbiA3MmgsIEknbGwgdXNlIG1pZ3JhdGUtcG9tLnNoIGFuZCBtaWdyYXRlLXNraW5zLj0Kc2gKPiA+ID4gdG8KPiA+ID4gY3JlYXRlIDQgbmV3IHJlcG9zOiBtYXZlbi1hcGFjaGUtcGFyZW50LCBtYXZlbi1wYXJlbnQsCj4gPiA+IG1hdmVuLWRlZmF1bHQtc2tpbgo+ID4gPiBhbmQgbWF2ZW4tZmx1aWRvLXNraW4KPiA+ID4gUGxlYXNlIHRha2UgdGltZSB0byBleGVjdXRlIHRoZSBzY3JpcHRzIGZvciB5b3Vyc2VsZiBhbmQgY2hlY2sgdGhhdCB0PQpoZQo+ID4gPiByZXN1bHQgaXMgb2sgZm9yIHlvdS4KPiA+ID49MjAKPiA+ID4gSSBhbHJlYWR5IHByZXBhcmVkIG1pZ3JhdGUtcGx1Z2lucy5zaCBhbmQgbWlncmF0ZS1zaGFyZWQuc2ggc2NyaXB0czogPQpJJ20KPiA+ID4gd2FpdGluZyBmb3IgSmVua2lucyBpbnRlZ3JhdGlvbiByZXN1bHRzIGJlZm9yZSB0cnlpbmcgdG8gbWlncmF0ZSB0aGlzCj4gPiA+IHBhcnQsCj4gPiA+IGJ1dCB5b3UgY2FuIGFsc28gdGFrZSB0aW1lIHRvIGNoZWNrIHRoYXQgdGhlIHJlc3VsdGluZyBnaXQgcmVwb3MgZnJvbQo+ID4gPiB0aGUKPiA+ID4gc2NyaXB0cyBhcmUgZ29vZC4KPiA+ID49MjAKPiA+ID4gUmVnYXJkcywKPiA+ID49MjAKPiA+ID4gSGVydj1FOQo+ID4gPj0yMAo+ID4gPiBbMV0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1kaXN0LXRvb2wvCj4gPiA+PTIwCj4gPiA+IFsyXSBodHRwczovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy9tYXZlbi9zYW5kYm94L3RydW5rL3NjcmlwdHMvZ2l0Lwo+ID4gPj0yMAo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4MTAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IERlYyAyMSAxMTo0NzozMyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4MTAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQkI1MDUxNzU4NgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDIxIERlYyAyMDE3IDExOjQ3OjMzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTU2NzkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjEgRGVjIDIwMTcgMTE6NDc6MzMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE1NTc5IGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIERlYyAyMDE3IDExOjQ3OjMzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTU1NjEgaW52b2tlZCBieSB1aWQgOTkpOyAyMSBEZWMgMjAxNyAxMTo0NzozMyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMjEgRGVjIDIwMTcgMTE6NDc6MzMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA5RDcyQjE4MEExQgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjEgRGVjIDIwMTcgMTE6NDc6MzIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMS4zClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xLjMgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgOTVLelRkMGFfYV9FIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVGh1LCAyMSBEZWMgMjAxNyAxMTo0NzozMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMTMuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMzVdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgN0ZGNjA1RjMwQgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjEgRGVjIDIwMTcgMTE6NDc6MzEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkNzIgd2l0aCBNRQoJaWQgb2JuVjF3MDEzMjBVZmR5MDNiblZ6QjsgVGh1LCAyMSBEZWMgMjAxNyAxMjo0NzozMCArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBUaHUsIDIxIERlYyAyMDE3IDEyOjQ3OjMwICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ2M6IE1hdmVuIFByb2plY3QgTWFuYWdlbWVudCBDb21taXR0ZWUgTGlzdCA8cHJpdmF0ZUBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBbUkVTVUxUXSBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gRG94aWEgdmVyc2lvbiAxLjgKRGF0ZTogVGh1LCAyMSBEZWMgMjAxNyAxMjo0NzoyOSArMDEwMApNZXNzYWdlLUlEOiA8NDg4NTY0MC5DTG9xNFB1dEZOQGdpZ2E+CkluLVJlcGx5LVRvOiA8NTY1Nzk0My5oWW8yTW9tUVdIQGdpZ2E+ClJlZmVyZW5jZXM6IDw1NjU3OTQzLmhZbzJNb21RV0hAZ2lnYT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpIaSwKICAgID0yMApUaGUgdm90ZSBoYXMgcGFzc2VkIHdpdGggdGhlIGZvbGxvd2luZyByZXN1bHQ6CiAgICA9MjAKKzEgOiBSb2JlcnQgU2Nob2x0ZSwgUGV0YXIgVGFoY2hpZXYsIE1pY2hhZWwgT3NpcG92LCBIZXJ2PUU5IEJvdXRlbXkKClBNQyBxdW9ydW0gcmVhY2hlZAoKSSB3aWxsIHByb21vdGUgdGhlIGFydGlmYWN0cyB0byB0aGUgY2VudHJhbCByZXBvLgoKUmVnYXJkcywKCkhlcnY9RTkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDA4My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgU2VwIDIwIDIwOjQ4OjM0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDA4My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBCRDA5OUNGNUUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyMCBTZXAgMjAxNyAyMDo0ODozNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDM1NDUyIGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIFNlcCAyMDE3IDIwOjQ4OjM0IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNTM3MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBTZXAgMjAxNyAyMDo0ODozNCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM1MzYyIGludm9rZWQgYnkgdWlkIDk5KTsgMjAgU2VwIDIwMTcgMjA6NDg6MzQgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMjAgU2VwIDIwMTcgMjA6NDg6MzQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gWzE3Mi4yOC42NS4yOF0gKHA1NDhGMUQ0QS5kaXAwLnQtaXBjb25uZWN0LmRlIFs4NC4xNDMuMjkuNzRdKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgOTcxOEQxQTAyM0IKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDIwIFNlcCAyMDE3IDIwOjQ4OjMwICswMDAwIChVVEMpCkZyb206IEJlbmVkaWt0IFJpdHRlciA8YnJpdHRlckBhcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpNaW1lLVZlcnNpb246IDEuMCAoTWFjIE9TIFggTWFpbCAxMC4zIFwoMzI3M1wpKQpTdWJqZWN0OiBkZXBlbmRlbmN5OmdvLW9mZmxpbmUgYnJva2VuPwpNZXNzYWdlLUlkOiA8NDk1OTUyMkEtMjA5MC00MjM5LTgyMzMtRTMyMDAwREU5QTVCQGFwYWNoZS5vcmc+CkRhdGU6IFdlZCwgMjAgU2VwIDIwMTcgMjI6NDg6MTUgKzAyMDAKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClgtTWFpbGVyOiBBcHBsZSBNYWlsICgyLjMyNzMpCgpIaSwKCmFzIGZhciBhcyBJIHVuZGVyc3RhbmQgaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGNhbGwgbXZuID0KZGVwZW5kZW5jeTpnby1vZmZsaW5lIGFuZCBmcm9tIHRoZXJlIG9uIHdvcmsgaW4gb2ZmbGluZSBtb2RlIChtdm4gLW8pLiAgPQpJPUUyPTgwPTk5dmUgcHV0IGEgbWluaW1hbCBleGFtcGxlIHRvZ2V0aGVyIFsxXSB0aGF0IGRlbW9uc3RyYXRlcyB0aGF0ID0KdGhpcyBjdXJyZW50bHkgZG9lcyBub3Qgd29yay4gQW0gSSBtaXNzaW5nIGFueXRoaW5nPwoKVGhhbmsgeW91IQpCZW5lZGlrdAoKWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9icml0dGVyL2RlcGVuZGVuY3ktcGx1Z2luLWJ1ZwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDY3NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgTm92IDI5IDIyOjU0OjQxIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDY3NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA0NTMzRDE3Q0Y3Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMjkgTm92IDIwMTcgMjI6NTQ6NDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyMzYgaW52b2tlZCBieSB1aWQgNTAwKTsgMjkgTm92IDIwMTcgMjI6NTQ6NDAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDEyOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOSBOb3YgMjAxNyAyMjo1NDo0MCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDExOCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI5IE5vdiAyMDE3IDIyOjU0OjQwIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAyOSBOb3YgMjAxNyAyMjo1NDo0MCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDM4RTcyMTgwOTMxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyOSBOb3YgMjAxNyAyMjo1NDo0MCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xLjMKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEuMyB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQga2ppNzRhSTJCVWZmIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJV2VkLCAyOSBOb3YgMjAxNyAyMjo1NDozNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMTEuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMzNdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMzYxMTQ1RjI5NQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjkgTm92IDIwMTcgMjI6NTQ6MzYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMjEgd2l0aCBNRQoJaWQgZnl1VzF3MDBEMjBVZmR5MDN5dVdvTjsgV2VkLCAyOSBOb3YgMjAxNyAyMzo1NDozMCArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBXZWQsIDI5IE5vdiAyMDE3IDIzOjU0OjMwICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IE5ldyBKZW5raW5zIGludGVncmF0aW9uCkRhdGU6IFdlZCwgMjkgTm92IDIwMTcgMjM6NTQ6MzAgKzAxMDAKTWVzc2FnZS1JRDogPDQ5OTI0ODQuZENpbFVJTEt2eEBnaWdhPgpJbi1SZXBseS1UbzogPENBRk5DVS1fT2s5T05jaXVpPTZBdnFtQUc4ZWdab21BYUZBNFRmRC0zZ3Rrd3lQemlkUUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk13TUJHNnAraU1ndjBOOURSdDM2OXRFM3o1ckFva1pOS1g0S0pMd3MyckM3QUBtYWlsLmdtYWlsLmNvbT4gPENBK25Qbk14aDNIdHVTajB6Nk49bkJxZERjcjh4NjVHSmVvMUdxQ01oUzFxPUM2cWFaZ0BtYWlsLmdtYWlsLmNvbT4gPENBRk5DVS1fT2s5T05jaXVpPTZBdnFtQUc4ZWdab21BYUZBNFRmRC0zZ3Rrd3lQemlkUUBtYWlsLmdtYWlsLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgorMTAwMAoKTGUgbWVyY3JlZGkgMjkgbm92ZW1icmUgMjAxNywgMTM6MDU6MDcgQ0VUIEFybmF1ZCBIPUU5cml0aWVyIGEgPUU5Y3JpdCA6Cj4gQXdlc29tZQo+PTIwCj4gT24gV2VkLCBOb3YgMjksIDIwMTcgYXQgMTI6MjEgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+PTIwCj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiAtIFt4XSBFbWFpbCBub3RpZmljYXRpb24gY29udGFpbnMgdGFpbCBvZiBjb25zb2xlIGxvZwo+ID4gLSBbeF0gQnVpbGQgZGVzY3JpcHRpb24gc2V0IHRvIEpJUkEgdGlja2V0IGlkJ3MKPiA+PTIwCj4gPiBPay4uLiBJIHRoaW5rIHdlIGFyZSBnb2xkZW4gbm93Cj4gPj0yMAo+ID4gT24gMjkgTm92ZW1iZXIgMjAxNyBhdCAwOTo0OCwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPj0yMAo+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+IC0gW3hdIEpJUkEgaXNzdWVzIHVwZGF0ZWQKPiA+ID49MjAKPiA+ID4gT24gMjkgTm92ZW1iZXIgMjAxNyBhdCAwOTo0NSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPiA+PTIwCj4gPiA+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPj4gT2ssIGhlcmUncyB0aGUgY3VycmVudCBzdGF0dXM6Cj4gPiA+Pj0yMAo+ID4gPj4gLSBbeF0gQ3Jvc3MgT1MvSkRLIG1hdHJpeCBidWlsZGluZwo+ID4gPj4gLSBbeF0gRmFzdCBmYWlsCj4gPiA+PiAtIFt4XSBFbWFpbCBub3RpZmljYXRpb24KPiA+ID4+IC0gW3hdIEVtYWlsIG5vdGlmaWNhdGlvbiBpbmNsdWRlcyByZWNlbnQgY2hhbmdlcwo+ID4gPj4gLSBbIF0gRW1haWwgbm90aWZpY2F0aW9uIGNvbnRhaW5zIHRhaWwgb2YgY29uc29sZSBsb2cKPiA+ID4+IC0gWyBdIEpJUkEgaXNzdWVzIHVwZGF0ZWQKPiA+ID4+IC0gWyBdIEJ1aWxkIGRlc2NyaXB0aW9uIHNldCB0byBKSVJBIHRpY2tldCBpZCdzCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDM1Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgT2N0IDI4IDA3OjExOjM4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDM1Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFRTA0NjEwQjNECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMjggT2N0IDIwMTcgMDc6MTE6MzcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5OTYyMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBPY3QgMjAxNyAwNzoxMTozNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTk0OTUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggT2N0IDIwMTcgMDc6MTE6MzcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5OTQ1MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IE9jdCAyMDE3IDA3OjExOjM3IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDI4IE9jdCAyMDE3IDA3OjExOjM2ICswMDAwClJlY2VpdmVkOiBmcm9tIGJlbmVkaWt0cy1tYnAubG9jYWwgKGRzbGItMTg4LTEwMS0wODEtMTYxLjE4OC4xMDEucG9vbHMudm9kYWZvbmUtaXAuZGUgWzE4OC4xMDEuODEuMTYxXSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDM1Q0VCMUEwNERFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAyOCBPY3QgMjAxNyAwNzoxMTozMyArMDAwMCAoVVRDKQpGcm9tOiBCZW5lZGlrdCBSaXR0ZXIgPGJyaXR0ZXJAYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOwoJY2hhcnNldD11dGYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCk1pbWUtVmVyc2lvbjogMS4wIChNYWMgT1MgWCBNYWlsIDExLjAgXCgzNDQ1LjEuN1wpKQpTdWJqZWN0OiBSZTogTWF2ZW4gU3VyZWZpcmUgYW5kIEpVbml0IDUKRGF0ZTogU2F0LCAyOCBPY3QgMjAxNyAwOToxMTozMCArMDIwMApSZWZlcmVuY2VzOiA8RkUxMDdCNEQtRDdCNC00NzFCLTg3MDktQjE5NzE3MThEMTQwQGFwYWNoZS5vcmc+CiA8Q0FLdVZ6QlJtaFBpOVVCTkdxRV9wUTE4bXBETTVLX19xVHFmVENCaWVfcTNfSjBfWEh3QG1haWwuZ21haWwuY29tPgogPEYyNzU4NzYyLUJDMzAtNEVEQi04NTQ3LUM0MTcxRkEzNDU0OEBhcGFjaGUub3JnPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxGMjc1ODc2Mi1CQzMwLTRFREItODU0Ny1DNDE3MUZBMzQ1NDhAYXBhY2hlLm9yZz4KTWVzc2FnZS1JZDogPDRFMEYyMjRFLUE5MTMtNDJFRC04MkU1LTU5NzQ3NDU4MTQ1Q0BhcGFjaGUub3JnPgpYLU1haWxlcjogQXBwbGUgTWFpbCAoMi4zNDQ1LjEuNykKCkhlbGxvIFRpYm9yLAoKZGlkIHlvdSBoYXZlIHNvbWUgdGltZSB0byBkbyB0aGUgcmViYXNlIGFuZCBoZWxwIG1lIGdldCB0aGUgYnVpbGQgdG8gPQp3b3JrIGluIHRoZSBqdW5pdDUgYnJhbmNoPwoKUmVnYXJkcywKQmVuZWRpa3QKCj4gQW0gMTguMTAuMjAxNyB1bSAwOToxMyBzY2hyaWViIEJlbmVkaWt0IFJpdHRlciA8YnJpdHRlckBhcGFjaGUub3JnPjoKPj0yMAo+IEhlbGxvIFRpYm9yLAo+PTIwCj4gU29ycnkgZm9yIHRoZSBkYWlseSBJIHNvbWVob3cgbWlzc2VkIHRoaXMgbWFpbC4KPj0yMAo+PiBBbSAxNS4xMC4yMDE3IHVtIDEzOjA3IHNjaHJpZWIgVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPjoKPj49MjAKPj4gSGkgQmVuZWRpa3QsCj4+PTIwCj4+IEkgYW0gZmluZSBub3cgYWZ0ZXIgbXkgaWxsbmVzcywgdGh4Lgo+PiBJIGFtIGZpbmlzaGluZyBicmFuY2ggU1VSRUZJUkUtMTI2Ml8yLiBKdXN0IHRvIGFkZCBmZXcgbW9yZSB0ZXN0cyBhbmQgPQp0aGVuCj4+IEkgd2lsbCBjdXQgYSByZWxlYXNlLiBJIHdhbnQgdG8gYWRkIGEgZml4IGZvciBTVVJFRklSRS0xMzc0IHdoaWNoID0Kd291bGQgYmUKPj4gZmFzdCB0byBkby4KPj4gVGhlbiBJIGFtIHJlYWR5IGZvciB5b3UgYW5kIEpVbml0NS4KPj49MjAKPj4gSSBoYXZlIHF1ZXN0aW9ucyByZWdhcmRpbmcgb3VyIEpVbml0IDUgU3VyZWZpcmUgUHJvdmlkZXIgaW1wbGVtZW50ZWQgPQppbgo+PiBTdXJlZmlyZS4KPj49MjAKPj4gSXMgaXQgaW1wbGVtZW50ZWQgZXhhY3RseSBpbiB0aGUgc2FtZSBsaWtlIHRoZSBvcmlnaW4gYnkganVuaXQ1IHRlYW0/Cj4+IEkgYW0gYXNraW5nIGJlY2F1c2UgSSBzYXcgdGhlIGltcGxlbWVudGF0aW9uIG1hZGUgYnkganVuaXQ1IHRlYW0gYW5kID0KaXQgaXMKPj4gbm90IGxpa2Ugb3VyICpKVW5pdENvcmVQcm92aWRlciouIFRoaXMgbWVhbnMgdGhhdCB0aGV5IGRvIG5vdCBtYXAgPQptZXRob2QKPj4gPC0+IFRocmVhZCBpbiAqUnVuTGlzdGVuZXIgKmFuZCB0aHVzIHRoZSBwcm92aWRlciB3b3VsZCBub3QgYXNzb2NpYXRlID0KdGVzdAo+PiByZXBvcnQgbG9ncyBhbmQgVGhyZWFkIHByb3Blcmx5IGFuZCBsb2dzIHdpbGwgYmUgbWl4ZWQuCj49MjAKPiBXZSBpbXBvcnRlZCB0aGUgY29kZSBmcm9tIHRoZSBKVW5pdCBwcm9qZWN0IHNvbWUgd2hpbGUgYWdvLiBUaGV5IGhhdmUgPQppbiB0aGUgbWVhbiB0aW1lIHVwZGF0ZWQgdGhlaXIgcHJvdmlkZXIgY29kZS4gVGhleSBhcmUgcGxhbm5pbmcgdG8gYnJpbmcgPQp0aG9zZSBjaGFuZ2VzIGJhY2sgdG8gc3VyZWZpcmUsIG9uY2Ugd2UgZ2V0IG9mIHRoZSBncm91bmQgd2l0aCB0aGUgPQppbXBsZW1lbnRhdGlvbiBpbiBzdXJlZmlyZS4gU28gaWYgeW91PUUyPTgwPTk5cmUgc2VlaW5nIGRpZmZlcmVuY2UgaW4gPQp0aGUgaW1wbGVtZW50YXRpb24gaW4gc3VyZWZpcmUgYW5kIGluIHRoZSBpbXBsZW1lbnRhdGlvbiBpbiBKVW5pdCwgdGhhdCA9Cm11c3QgaGF2ZSBiZWVuIGludHJvZHVjZWQgYWZ0ZXIgd2UgaW1wb3J0ZWQgdGhlIGNvZGUuCj49MjAKPj49MjAKPj4gTmV4dCBxdWVzdGlvbiBpcyByZWdhcmRpbmcgdGhlIGZlYXR1cmUgcmUtcnVuLiBJdCBhbHNvIGV4aXN0cyBpbgo+PiAqSlVuaXRDb3JlUHJvdmlkZXIKPj4gKmFuZCAqSlVuaXQ0UHJvdmlkZXIqLiBEb2VzIGl0IGV4aXN0IGluIG91ciBwcm92aWRlciB0b28uCj49MjAKPiBJIGRvbj1FMj04MD05OXQga25vdywgbmVlZCB0byBjaGVjayB0aGUgY29kZS4KPj0yMAo+PiBBbHNvIHdlIG5lZWQgdG8gaGF2ZSBhIGZlYXR1cmUgd2hlcmUgSlVuaXQgZXhlY3V0aW9uIGlzIHN0b3BwZWQgd2hpY2ggPQpjYW4KPj4gYmUgY29uZmlndXJlZCBieSAqc2tpcEFmdGVyRmFpbHVyZUNvdW50ICppbiBQT00uIFdlIGhhdmUgPQppbXBsZW1lbnRhdGlvbiBpbgo+PiBTdXJlZmlyZSBwcm92aWRlcjoKPj49MjAKPj4gbm90aWZpZXIuYXNGYWlsRmFzdCggaXNGYWlsRmFzdCgpICk7Cj49MjAKPiBXZSBoYXZlIHRvIGZpZ3VyZSBvdXQsIGhvdyB0aGlzIGlzIHN1cHBvcnRlZCBieSBKVW5pdCA1Lgo+PTIwCj4+PTIwCj4+IFJlZ2FyZGluZyBsb2dnZXIgaW4gZm9ya2VkIHByb3ZpZGVyLCB3aGljaCBoYXMgdG8gZG8gd2l0aCBwYXJhbGxlbCA9CmV4ZWMsIEkKPj4gdGhpbmsgdGhlIGxvZ3MgZ28gdG8gdGhlIGR1bXAgZmlsZSBpbnN0ZWFkIG9mIHJlcG9ydHMgZmlsZSwgYmVjYXVzZSA9ClNURE9VVAo+PiBpcyBub3Qgd3JhcHBlZCBpbiBKVW5pdDUncyBpbXBsZW1lbnRhdGlvbiBhbmQgdGhpcyBzaG91bGQgYmUgY2FsbGVkOgo+Pj0yMAo+PiBzdGFydENhcHR1cmUoIGxpc3RlbmVyICkKPj49MjAKPj49MjAKPj4gU2VlIG15IHF1ZXN0aW9ucyBpbiBodHRwczovL2dpdGh1Yi5jb20veHdpa2kveHdpa2ktcGxhdGZvcm0vY29tbWl0Lwo+PiA1MjU4YTIyMzAxOTc3YTdkMWVlNzI3NmNkZDgxYWY3NjQxZjRmNWFjCj4+PTIwCj4+IERvIHdlIGhhdmUgaW50ZWdyYXRpb24gdGVzdHMgZm9yIHRoZXNlIGZlYXR1cmVzPwo+PTIwCj4gV2Ugb25seSBoYXZlIHZlcnkgbGltaXRlZCBpbnRlZ3JhdGlvbiB0ZXN0cyB5ZXQuIEk9RTI9ODA9OTltIHBsYW5uaW5nID0KdG8gd3JpdGUgbW9yZSBpbnRlZ3JhdGlvbiB0ZXN0cyBhbmQgd29yayBvbiB0aGUgc3RydWN0dXJlIG9mIHRoZSA9CmludGVncmF0aW9uIHRlc3QgcHJvamVjdCwgb25jZSB0aGUgYnVpbGQgZG9lcyB3b3JrIGFnYWluLiBDdXJyZW50bHkgPQpJPUUyPTgwPTk5bSB1bmFibGUgdG8gZXhlYyBhbiBpbnRlZ3JhdGlvbiB0ZXN0IG9uIHRoZSBqdW5pdDUgYnJhbmNoLiA9Ck9uY2UgdGhpcyBpcyBwb3NzaWJsZSBhZ2Fpbiwgd2UgY2FuIHdyaXRlIHRoZSBtaXNzaW5nIHRlc3RzLgo+PTIwCj4gVGhhbmsgeW91IQo+IEJlbmVkaWt0Cj49MjAKPj49MjAKPj49MjAKPj4gQ2hlZXJzCj4+IFRpYm9yCj4+PTIwCj4+PTIwCj4+PTIwCj4+IE9uIFNhdCwgU2VwIDMwLCAyMDE3IGF0IDEwOjM0IEFNLCBCZW5lZGlrdCBSaXR0ZXIgPQo8YnJpdHRlckBhcGFjaGUub3JnPgo+PiB3cm90ZToKPj49MjAKPj4+IEhlbGxvLAo+Pj49MjAKPj4+IGZvciBvdmVyIGEgeWVhciBub3cgST1FMj04MD05OW0gdHJ5aW5nIHRvIGhlbHAgZ2V0dGluZyBKVW5pdCA1ID0Kc3VwcG9ydCBpbnRvIE1hdmVuCj4+PiBTdXJlZmlyZS4gVGhpcyBoYXMgYmVlbiBoYXJkIHNpbmNlIFRpYm9yIHNlZW1zIHRvIGJlIHRoZSBvbmx5IG9uZQo+Pj4gbWFpbnRhaW5pbmcgTWF2ZW4gU3VyZWZpcmUgYW5kIGhlIGhhZCB0byBjb21lIHdpdGggb3RoZXIgdGhpbmdzLgo+Pj49MjAKPj4+IEZvciB0aGlzIHJlYXNvbiBJPUUyPTgwPTk5ZCBsaWtlIHRvIGFzayBvdGhlciBNYXZlbiBtYWludGFpbmVycyB0byA9CmhlbHAgd2l0aCB0aGUKPj4+IEpVbml0IDUgc3VwcG9ydC4gST1FMj04MD05OW0gaGFwcHkgdG8gZG8gdGhlIHdvcmssIGJ1dCBJPUUyPTgwPTk5bSA9CmNvbnN0YW50bHkgYmxvY2tlZCBieQo+Pj4gb2JzY3VyZSBidWlsZCBmYWlsdXJlcyB3aGljaCBJPUUyPTgwPTk5bSB1bmFibGUgdG8gcmVzb2x2ZSBteXNlbGYgb3IgPQpieSBsYWNrIG9mCj4+PiBjb2RlIHJldmlldyB1bmQgbWVyZ2Ugb2YgY2hhbmdlcy4KPj4+PTIwCj4+PiAtIFdvcmsgb24gSlVuaXQ1IHN1cHBvcnQgaXMgY3VycmVudGx5IGRvbmUgaW4gdGhlIGp1bml0NSBicmFuY2guCj4+PiAtIEkgaGF2ZSBkcmFmdGVkIGEgUHJvdmlkZXIgTG9va3VwIGltcGxlbWVudGF0aW9uIGluIHRoZSBqdW5pdDUgPQpicmFuY2gsCj4+PiBidXQgSSBkb249RTI9ODA9OTl0IGtub3cgd2hldGhlciBpdCB3b3JrcyBiZWNhdXNlIEkgY2FuPUUyPTgwPTk5dCA9CmdldCB0aGUgaW50ZWdyYXRpb24gdGVzdHMKPj4+IHJ1bm5pbmcKPj4+IC0gVGhlcmUgaXMgYW4gb3BlbiBQUiB0byBtZXJnZSB0aGUgbWFzdGVyIGJyYW5jaCBiYWNrIGludG8ganVuaXQ1ID0KYnJhbmNoLAo+Pj4gYnV0IGl0IGhhcyBidWlsZCBmYWlsdXJlcyBJIGRvbj1FMj04MD05OXQgdW5kZXJzdGFuZCBbMV0KPj4+PTIwCj4+PiBQbGVhc2UgaGVscCEKPj4+IENoZWVycywKPj4+IEJlbmVkaWt0Cj4+Pj0yMAo+Pj4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNjUKPj4+PTIwCj4+Pj0yMAo+Pj4gPQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Pj0yMAo+Pj49MjAKPj0yMAo+PTIwCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzOTc3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBTZXAgMTEgMTc6MDY6MTQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTc3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEUxNkRFMUE1NkMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAxNzowNjoxNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDkxNzI2IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDE3OjA2OjE0IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MTY0NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAxNzowNjoxNCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkxNjA0IGludm9rZWQgYnkgdWlkIDk5KTsgMTEgU2VwIDIwMTcgMTc6MDY6MTQgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDExIFNlcCAyMDE3IDE3OjA2OjE0ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgODBDOTdEQUY3RAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMTc6MDY6MTMgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMi4zOTgKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTIuMzk4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtEQVRFX0lOX1BBU1RfMDZfMTI9MS4xMDMsIFJDVkRfSU5fRE5TV0xfTE9XPS0wLjcsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgU3F2eUJHeDFYbW1uIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAxMSBTZXAgMjAxNyAxNzowNjoxMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNy4yMl0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA3QUEyODVGRTE2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAxNzowNjoxMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBLYXJsLUhlaW56cy1NQlAuZnJpdHouYm94IChbOTQuMjIzLjE4MC4xOTddKSBieSBtYWlsLmdteC5jb20KIChtcmdteDEwMyBbMjEyLjIyNy4xNy4xNjhdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTGNqZHItMWQ3eXM4MFBZNy0wMGs5TmcgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcKIDE5OjA2OjExICswMjAwClJlcGx5LVRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIEpNb2QgUGx1Z2luIHZlcnNpb24gMy4wLjAtYWxwaGEtMQogKEZpcnN0IFB1YmxpYyBSZWxlYXNlKQpGcm9tOiBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClJlZmVyZW5jZXM6IDw3ZjYyNzc2MS0yNjJmLWVkMGQtMTQzMi1lMmYzMDVhYWJjN2FAZ214LmRlPgpNZXNzYWdlLUlEOiA8NGFkMTMzN2EtZTk0My01Y2Q5LWNjNTUtY2ZmNzIxODdhZDc0QGdteC5kZT4KRGF0ZTogTW9uLCAxMSBTZXAgMjAxNyAwODowMzowNyArMDIwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMTsgcnY6NTIuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzUyLjIuMQpNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPDdmNjI3NzYxLTI2MmYtZWQwZC0xNDMyLWUyZjMwNWFhYmM3YUBnbXguZGU+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtODsgZm9ybWF0PWZsb3dlZApDb250ZW50LUxhbmd1YWdlOiBlbi1HQgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0ClgtUHJvdmFncy1JRDogVjAzOkswOkVkMXpYMzNORUZqUDZiL2FVK1VhRU5kVWdqUVhVd2VNdkptbGtFcklJWEhvM01jaWlmKwoga214bkp3WmlXV3VORFdIT1k4KzZzQnBWeHRkQURtY2xJcnphMzJiYTdaL1l3cXg0SFBKcDRaVzBsTmNjVDdwSFJIaTZ1dmkKIGd4SGN0TDJpQUFvWGI3N01HN3A4WWdjbitpOHhodi9TSDVBM0dIeE9lcTdvRStaM3FxMHVBR2RobWo5RU5UdFBsUG9HQ29QCiBKRVpDRHZlY0VCVXJGMHhJL0tJNUE9PQpYLVVJLU91dC1GaWx0ZXJyZXN1bHRzOiBub3RqdW5rOjE7VjAxOkswOlBNNndGd0RXTXFvPTpBdkxBelcwY1UyQ2tPUlRXQkRUZURtCiBmT0tMUyt6MzBLY2tvTm9NUCt1RWJNMjRDNFdnZEhvOHhIOWRZbE03WW9udTdtdnJNWklPd1NZVWxndzMwNy84amVhbWlTNGwyCiBMQ0VvalY4RDNBWVVUMW5oaHZtQjZhUkRGRzdEVEdiMGpwdkN3L3htRk54WGF1TXNZK1Z3eDEySmhxclkybU9lczhMWms3aDU4CiBwUytEbi9teWRPQTE1SGVOY1lJNmRpQnV4blE0c2w1ZXNNVXVwejZ4MTNmM1E1VENKdVF1ZVhMMjY2RHRHTENod0drSlQ5TVdFCiBhL1BmWHIyWXg0d21QMTNZTkI5R0RldkNIbVhVSEJHd1RkcC83U0taRU00aHFPNTZHR0lSdSszeHN6eHdyY0NjUGw4Tm90b292CiA1OXhjMDRkeXMvSUJnQWw2bjVRTmk5SEViSVViVVN0SlZvNktwNHpNTXZxUmpGbTB4RmpkdFhJRlEvWXQ3MENoWDByQkdkMVF3CiBQbUZ1cGdLTnpzaWVsaEZJT0pKVTRpaC96dFRQRGhtazlvOU9kLzFLMUJQRHVLYjlObXd0cjF0WE5jTEoxMk5tN2FqTlk0Qk8vCiA2N3ZYRFhWR1ZBQmxhYVI1Ymtya0oxOWN6YnBZZ3B4Q1VMRzdPS3pDb1VleVdDaVIwdElwSWQ4Y0NjRVcreC9rNmk0M21odXkrCiB6eXVlOUowWmswQzFMdkRWVFBiNjNFTlB4Ky9SLzY4Z2J2aEgvWXdacG43Q29TanBZNzVEeDZsTDRic3hNSkRIN05WWHhMMTFrCiBYcThqSTMxOHpBR2tCTVdkL3RGRmJkMG40LzhEbHAxUCtsNzBHVHp6S2hZSk15c1NCNU8zb1dQa2M5aEN5ZlNwY0lIYis4MWhxCiAyUVRlMk1vVW1VVU5McXFBendNTjhxVmd2YUJ4WFRieWEyRTFoN1N3RVlZY3E2QlU1YWtFWlRQbHBNVWVxUnBqb3N1MlVzVHRzCiB5WVQzOFJjRkZuNERPK3Jya083V2dIU0V2VjVobkxoRSs5WXRTZElObWdFNTlwRTZUS2NoaWtOeVovQ2tYaEFRY2lkOVVIRHZhCiB6dFF4Zkk0TFJKT1lMUUhjNTl6YWZxZ3lFblJxN0paWGVVdVJwUHdjSW00OUxPMWExcz0KCkhpLAoKaGVyZSBpcyBteSArMSwKCktpbmQgUmVnYXJkcwpLYXJsIEhlaW56IE1hcmJhaXNlCk9uIDA5LzA5LzE3IDE1OjUyLCBLYXJsIEhlaW56IE1hcmJhaXNlIHdyb3RlOgo+IEhpLAo+IAo+IHRoaXMgaXMgdGhlIFZPVEUgZm9yIHRoZSBmaXJzdCBwdWJsaWMgcmVsZWFzZSBmb3IgTWF2ZW4gSk1vZCBQbHVnaW4uLi4KPiAKPiBXZSBzb2x2ZWQgMSBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMyMTQzMyZ2ZXJzaW9uPTEyMzQxMzYzIAo+IAo+IAo+IFRoZXJlIGFyZSBjdXJyZW50bHkgbm8gaXNzdWVzIGxlZnQgaW4gSklSQS4KPiAKPiBJZiB5b3UgaGF2ZSBhbnkgaXNzdWUgdG8gcmVwb3J0IHBsZWFzZSBvcGVuIGFuIGlzc3VlIGluIEpJUkEKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvcHJvamVjdHMvTUpNT0QKPiAKPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2MS8KPiAKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzYxL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi1qbW9kLXBsdWdpbi8zLjAuMC1hbHBoYS0xL21hdmVuLWptb2QtcGx1Z2luLTMuMC4wLWFscGhhLTEtc291cmNlLXJlbGVhc2UuemlwIAo+IAo+IAo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IFtOQU1FLU9GXS1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogODAwMjc2N2Y2Y2ZmYzdiYmJjZjc2YThlN2YwYzE3OTlhNDJjYWY5Mwo+IAo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1qbW9kLXBsdWdpbi1MQVRFU1QvCj4gCj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPiAKPiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+IAo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MzU1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBPY3QgMjcgMDg6MjA6MjggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzU1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDU4MTNFMTBBQTIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAyNyBPY3QgMjAxNyAwODoyMDoyOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDUwNTUwIGludm9rZWQgYnkgdWlkIDUwMCk7IDI3IE9jdCAyMDE3IDA4OjIwOjIzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MDQzNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBPY3QgMjAxNyAwODoyMDoyMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUwMzczIGludm9rZWQgYnkgdWlkIDk5KTsgMjcgT2N0IDIwMTcgMDg6MjA6MjIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDI3IE9jdCAyMDE3IDA4OjIwOjIyICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQ0ZERTYxODAxNDU7CglGcmksIDI3IE9jdCAyMDE3IDA4OjIwOjIxICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuMzIxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjMyMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTUVEPS0yLjMsCglSQ1ZEX0lOX01TUElLRV9IND0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsCglSUF9NQVRDSEVTX1JDVkQ9LTAuMDAxLCBTUEZfUEFTUz0tMC4wMDEsIFVOUEFSU0VBQkxFX1JFTEFZPTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgb2ZLY3E0cy1rbEZJOyBGcmksIDI3IE9jdCAyMDE3IDA4OjIwOjE2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGFzZXJwMTA0MC5vcmFjbGUuY29tIChhc2VycDEwNDAub3JhY2xlLmNvbSBbMTQxLjE0Ni4xMjYuNjldKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgN0ZDMDI1RjVCODsKCUZyaSwgMjcgT2N0IDIwMTcgMDg6MjA6MTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gYXNlcnYwMDIxLm9yYWNsZS5jb20gKGFzZXJ2MDAyMS5vcmFjbGUuY29tIFsxNDEuMTQ2LjEyNi4yMzNdKQoJYnkgYXNlcnAxMDQwLm9yYWNsZS5jb20gKFNlbnRyaW9uLU1UQS00LjMuMi9TZW50cmlvbi1NVEEtNC4zLjIpIHdpdGggRVNNVFAgaWQgdjlSOEs3amkwMjkyNjEKCSh2ZXJzaW9uPVRMU3YxLjIgY2lwaGVyPUVDREhFLVJTQS1BRVMyNTYtR0NNLVNIQTM4NCBiaXRzPTI1NiB2ZXJpZnk9T0spOwoJRnJpLCAyNyBPY3QgMjAxNyAwODoyMDowNyBHTVQKUmVjZWl2ZWQ6IGZyb20gYXNlcnYwMTIxLm9yYWNsZS5jb20gKGFzZXJ2MDEyMS5vcmFjbGUuY29tIFsxNDEuMTQ2LjEyNi4yMzVdKQoJYnkgYXNlcnYwMDIxLm9yYWNsZS5jb20gKDguMTQuNC84LjE0LjQpIHdpdGggRVNNVFAgaWQgdjlSOEs3S2EwMjQ1MjkKCSh2ZXJzaW9uPVRMU3YxL1NTTHYzIGNpcGhlcj1ESEUtUlNBLUFFUzI1Ni1HQ00tU0hBMzg0IGJpdHM9MjU2IHZlcmlmeT1PSyk7CglGcmksIDI3IE9jdCAyMDE3IDA4OjIwOjA3IEdNVApSZWNlaXZlZDogZnJvbSBhYmhtcDAwMDQub3JhY2xlLmNvbSAoYWJobXAwMDA0Lm9yYWNsZS5jb20gWzE0MS4xNDYuMTE2LjEwXSkKCWJ5IGFzZXJ2MDEyMS5vcmFjbGUuY29tICg4LjE0LjQvOC4xMy44KSB3aXRoIEVTTVRQIGlkIHY5UjhLN2hyMDE2NDM2OwoJRnJpLCAyNyBPY3QgMjAxNyAwODoyMDowNyBHTVQKUmVjZWl2ZWQ6IGZyb20gZGhjcC11a2MxLXR3dnBuLTEtdnBucG9vbC0xMC0xNzUtMTkwLTI1My52cG4ub3JhY2xlLmNvbSAoLzEwLjE3NS4xOTAuMjUzKQoJYnkgZGVmYXVsdCAoT3JhY2xlIEJlZWhpdmUgR2F0ZXdheSB2NC4wKQoJd2l0aCBFU01UUCA7IEZyaSwgMjcgT2N0IDIwMTcgMDE6MjA6MDcgLTA3MDAKRnJvbTogIlJvcnkgTydEb25uZWxsIiA8cm9yeS5vZG9ubmVsbEBvcmFjbGUuY29tPgpTdWJqZWN0OiBKREsgOHUxNjIgYjAxIEVhcmx5IEFjY2VzcyBpcyBhdmFpbGFibGUgb24gamRrLmphdmEubmV0CkNjOiByb3J5Lm9kb25uZWxsQG9yYWNsZS5jb20sIERhbGlib3IgVG9waWMgPGRhbGlib3IudG9waWNAb3JhY2xlLmNvbT4sCiAgICAgICAgQmFsY2hhbmRyYSBWYWlkeWEgPGJhbGNoYW5kcmEudmFpZHlhQG9yYWNsZS5jb20+LAogICAgICAgIE11bmVlciBLb2xhcmt1bm51IDxhYmR1bC5rb2xhcmt1bm51QG9yYWNsZS5jb20+LAogICAgICAgIE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClRvOiByZnNjaG9sdGVAYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8NTBhMGRiMDEtOWI4MC1jYTI3LTAwZGMtNmJiMDEyNzNhMTAyQG9yYWNsZS5jb20+CkRhdGU6IEZyaSwgMjcgT2N0IDIwMTcgMDk6MjA6MDQgKzAxMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTI7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi40LjAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7CiBib3VuZGFyeT0iLS0tLS0tLS0tLS0tNkU1MTc0MTBFMjMzNzFDNzNDRjAwNDdGIgpDb250ZW50LUxhbmd1YWdlOiBlbi1VUwpYLVNvdXJjZS1JUDogYXNlcnYwMDIxLm9yYWNsZS5jb20gWzE0MS4xNDYuMTI2LjIzM10KCi0tLS0tLS0tLS0tLS0tNkU1MTc0MTBFMjMzNzFDNzNDRjAwNDdGCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtODsgZm9ybWF0PWZsb3dlZApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgoKSGkgUm9iZXJ0ICwKCipKREsgOHUxNjIgRWFybHkgQWNjZXNzKsKgIGJ1aWxkIDAxIGlzIGF2YWlsYWJsZSBhdCA6IC0gamRrLmphdmEubmV0LzgvIAo8aHR0cDovL2pkay5qYXZhLm5ldC84Lz4KCkluZm9ybWF0aW9uIGFuZCBzY2hlZHVsZXMgc3BlY2lmaWMgdG8gT3BlbkpESyA4dTE2MiByZWxlYXNlIGFyZSBsaXN0ZWQgCmhlcmUgPGh0dHA6Ly9vcGVuamRrLmphdmEubmV0L3Byb2plY3RzL2pkazh1L3JlbGVhc2VzLzh1MTYyLmh0bWw+CgoKPGh0dHA6Ly9vcGVuamRrLmphdmEubmV0L3Byb2plY3RzL2pkazh1L3JlbGVhc2VzLzh1MTYyLmh0bWw+CgoqSlJFIGFuZCBKREsgQ3J5cHRvZ3JhcGhpYyBSb2FkbWFwKiBoYXMgYmVlbiB1cGRhdGVkIHRoZSBkZXRhaWxzIGFyZSAKaGVyZSA8aHR0cHM6Ly93d3cuamF2YS5jb20vZW4vanJlLWpkay1jcnlwdG9yb2FkbWFwLmh0bWw+CgoqKgoKKkphdmFPbmUyMDE3KiB0b29rIHBsYWNlIE9jdG9iZXIgMSB0byA1LCAyMDE3IGF0IFNhbiBGcmFuY2lzY28uCgpJZiB5b3Ugd2VyZSB1bmFibGUgdG8gYXR0ZW5kIHRoZSBldmVudCBvciBtaXNzZWQgc29tZSB0YWxrcywgYmVsb3cgeW91IAp3aWxsIGZpbmQgbGlua3MgdG8ga2V5bm90ZXMgZnJvbSBsYXN0IHdlZWsKdGhhdCBoYXZlIGJlZW4gcG9zdGVkIGZvciBvbi1kZW1hbmQgcmVwbGF5OgoKICAqIEphdmFPbmUgT3BlbmluZyBLZXlub3RlIChNb25kYXksIE9jdC4gMik6CiAgICAgIG8gaHR0cHM6Ly93d3cub3JhY2xlLmNvbS9qYXZhb25lL29uLWRlbWFuZC5odG1sP2JjaWQ9NTU5NjIyOTExMjAwMQogICogT3JhY2xlIENvZGUgS2V5bm90ZSAoVHVlc2RheSwgT2N0LiAzKToKICAgICAgbyBodHRwczovL3d3dy5vcmFjbGUuY29tL2phdmFvbmUvb24tZGVtYW5kLmh0bWw/YmNpZD01NjAwMzU0Mzc4MDAxCiAgKiBKYXZhT25lIENvbW11bml0eSBLZXlub3RlIChUaHVyc2RheSwgT2N0LiA1KToKICAgICAgbyBodHRwczovL3d3dy5vcmFjbGUuY29tL2phdmFvbmUvb24tZGVtYW5kLmh0bWw/YmNpZD01NjA0NDc5NTk5MDAxCgoKUmVnYXJkcywKUm9yeQoKLS0gClJnZHMsUm9yeSBPJ0Rvbm5lbGwKUXVhbGl0eSBFbmdpbmVlcmluZyBNYW5hZ2VyCk9yYWNsZSBFTUVBICwgRHVibGluLCBJcmVsYW5kCgoKLS0tLS0tLS0tLS0tLS02RTUxNzQxMEUyMzM3MUM3M0NGMDA0N0YtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDkwMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gRGVjIDMxIDExOjQ0OjI5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDkwMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA1MEFDNzE3OTcwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMzEgRGVjIDIwMTcgMTE6NDQ6MjkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4ODk5NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMSBEZWMgMjAxNyAxMTo0NDoyNCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODg5MjQgaW52b2tlZCBieSB1aWQgNTAwKTsgMzEgRGVjIDIwMTcgMTE6NDQ6MjQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4ODkxMyBpbnZva2VkIGJ5IHVpZCA5OSk7IDMxIERlYyAyMDE3IDExOjQ0OjIzIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAzMSBEZWMgMjAxNyAxMTo0NDoyMyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDc1OTAxQzBDQjgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDMxIERlYyAyMDE3IDExOjQ0OjIzICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC45OTkKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC45OTkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBFX0p3SFVZc2NrbEEgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sIDMxIERlYyAyMDE3IDExOjQ0OjIyICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAxMC5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEzMl0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBFNjdENjVGQjE3Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAzMSBEZWMgMjAxNyAxMTo0NDoyMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQyMCB3aXRoIE1FCglpZCBzYmtMMXcwMEcyMFVmZHkwM2JrTFd5OyBTdW4sIDMxIERlYyAyMDE3IDEyOjQ0OjIwICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFN1biwgMzEgRGVjIDIwMTcgMTI6NDQ6MjAgKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW0lNUE9SVEFOVF0gUmU6IEdpdCBtaWdyYXRpb24gbmV4dCBzdGVwcwpEYXRlOiBTdW4sIDMxIERlYyAyMDE3IDEyOjQ0OjIwICswMTAwCk1lc3NhZ2UtSUQ6IDw1MTM4MDgyLnpNb0JVeWllR1JAZ2lnYT4KSW4tUmVwbHktVG86IDwyNzkyOTcwLlBicGFvdWdYZktAZ2lnYT4KUmVmZXJlbmNlczogPDIwMDk3NjU1OTIuMjI5NzIyMTcuMTUxNDEwOTI1NjYzMi5KYXZhTWFpbC5yb290QHNwb29sZXI0LWcyNz4gPENBK25Qbk15LTdfUi12c3ZrRmdoYj1keUtMVkVfK1hQQ2UweUhrSjVBdW5jN0c0enNiUUBtYWlsLmdtYWlsLmNvbT4gPDI3OTI5NzAuUGJwYW91Z1hmS0BnaWdhPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgphbm90aGVyIGludGVyZXN0aW5nIGNhc2U6Cmh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvam9iL21hdmVuLWJveC9qb2IvbWF2ZW4tc2hhcmVkLXV0aWxzL2pvYi9tYXN0ZXIvCgp3aGVuIHlvdSBsb29rIGF0IGVhY2ggc3RlcCBsb2dzIGZyb20gdGhlIHN0YWdlIHZpZXcsIHlvdSBzZWUgbm8gaXNzdWUKYnV0IHRoZSBidWlsZCBpcyBtYXJrZWQgYXMgZmFpbGVkCgphbmQgaWYgeW91IGxvb2sgYXQgdGhlIHVuaXQgdGVzdHMgbWFya2VkIGFzIGZhaWxlZDoKaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy9qb2IvbWF2ZW4tYm94L2pvYi9tYXZlbi1zaGFyZWQtdXRpbHMvam9iL21hc3Rlci8KbGFzdENvbXBsZXRlZEJ1aWxkL3Rlc3RSZXBvcnQvCgp5b3UgZG9uJ3Qga25vdyBvbiB3aGljaCBidWlsZCAoT1MqSkRLKSB0aGUgZmFpbHVyZXMgaGFwcGVuCgpJTUhPLCBpbiBwYXJhbGxlbCB0byB0aGUgamF2YWRvYyBJVCBmYWlsdXJlIGludmVzdGlnYXRpb24sIHRoaXMgbWF2ZW4tc2hhcmU9CmQtCnV0aWxzIGdpdmVzIHVzIGFub3RoZXIgaW50ZXJlc3RpbmcgY2FzZSB0byBmaXgKClJlZ2FyZHMsCgpIZXJ2PUMzPUE5CgpMZSBkaW1hbmNoZSAzMSBkPUMzPUE5Y2VtYnJlIDIwMTcsIDExOjQ5OjU5IENFVCBIZXJ2PUMzPUE5IEJPVVRFTVkgYSA9QzM9QTk9CmNyaXQgOgo+IExlIGRpbWFuY2hlIDMxIGQ9QzM9QTljZW1icmUgMjAxNywgMTE6MDU6MzkgQ0VUIFN0ZXBoZW4gQ29ubm9sbHkgYSA9QzM9QTk9CmNyaXQgOgo+IFsuLi5dCj49MjAKPiA+ID4gPiB3aGF0IGFyZSBhbGwgdGhlIG9wZW4gdGFza3MgbGlua3M/Cj4gPiA+PTIwCj4gPiA+IHdhcyBzdXBwb3NlZCB0byBiZSBmaXhlZCBhZnRlciBKZW5raW5zIHBsdWdpbiB1cGdyYWRlIHRoaXMgd2Vlawo+ID4gPiBAU3RlcGhlbiBpcyB0aGlzIGEga25vd24gaXNzdWU/Cj4gPj0yMAo+ID4gSSBtYXkgaGF2ZSB0byB0d2VhayB0aGUgc2hhcmVkIGxpYiBhbHNvLiBJdCB3aWxsIGJlIFR1ZXNkYXkgYmVmb3JlIEkgdHU9CnJuCj4gPiBvbiBteSBNYWMKPj0yMAo+IHBlcmZlY3Q6IGhhdmUgbmljZSBob2xpZGF5cywgd29ya2luZyBvbiBpdCBuZXh0IHllYXIgaXMgcGVyZmVjdCA6KQo+PTIwCj4gWy4uLl0KPj0yMAo+ID4gPiA+IEhvbmVzdGx5IHRoZSBjdXJyZW50IGplbmtpbnMgcmVzdWx0IGlzIGNvbXBsaWNhdGVkIHRvIHVzZS4uLi4KPiA+ID49MjAKPiA+ID4gd2hlbiB0aGUgcmVzZXVsdCBpcyBhIHBhc3NpbmcgYnVpbGQsIGl0J3MgcGVyZmVjdCwgYnV0IEkgY29uZmlybSB0aGF0Cj4gPiA+IHdoZW4KPiA+ID4gdGhlcmUgaXMgYSBmYWlsdXJlLCBpdCdzIGEgcGFpbiB0byB1bmRlcnN0YW5kIHdoZXJlIGlzIHRoZSBmYWlsdXJlCj4gPiA+ICh3aGljaAo+ID4gPiBPUy8KPiA+ID4gamRrLCB3aGljaCB0ZXN0KQo+ID4gPiBhbmQgZXZlbnR1YWxseSBkZXRlY3QgaWYgdGhlcmUgYXJlIGZhbHNlIHBvc2l0aXZlcyBvbiBzb21lIGNvbmRpdGlvbnM9Cj0yRS4uCj4gPj0yMAo+ID4gU28gdGhlcmUgYXJlIHR3byBpc3N1ZXMgaW1obzoKPiA+PTIwCj4gPiAxLiBGYXN0IGZhaWwga2lsbHMgb3RoZXIgcGFyYWxsZWwgZXhlY3V0aW9ucyBpbiBzdWNoIGEgd2F5IHRoYXQgdGhleQo+ID4gcmVwb3J0Cj4gPiBhcyBmYWlsZWQuIEk9RTI9ODA9OTlkIGxpa2UgdGhlbSB0byBmbGFnIGFzIGFib3J0ZWQgaW5zdGVhZC4gVGhhdCB3b3VsZD0KIG1ha2UKPiA+IGlkZW50aWZpY2F0aW9uIGZyb20gdGhlIHN0YWdlIHZpZXcgb3IgYmx1ZSBvY2VhbiBlYXNpZXIuCj49MjAKPiB5ZXMsIHRoaXMgd291bGQgYmUgYSBnb29kIGZpcnN0IGVuaGFuY2VtZW50Cj49MjAKPiA+IDIuIFRoZSBwYXJhbGxlbCBsb2dzLiBUaGlzIGlzIGEgcGlwZWxpbmUgZGVzaWduIGRlY2lzaW9uLiBZb3UgYXJlIGJldHRlcgo+ID4gb2ZmIHZpZXdpbmcgbG9ncyB0aHJvdWdoIHN0YWdlIHZpZXcgb3IgYmx1ZSBvY2Vhbi4KPj0yMAo+IGxhc3QgdGltZSBJIHRyaWVkLCBJIGRpZCBub3QgZmluZCBvdXRwdXQgY2xlYXI6IGJ1dCBwZXJoYXBzIGl0IHdhcyBvbgo+IGFib3J0ZWQgYnVpbGRzIG1hcmtlZCBhcyBmYWlsZWQuLi4gSSdsbCBoYXZlIHRvIHRyeSB3aXRoIHRoYXQgaXNzdWUgaW4KPiBtaW5kLgo+ID4gPiA+IEFuZCBhcyBmYXIgSSBjYW4gc2VlIFNOQVBTSE9UIGFyZSBub3QgYW55bW9yZSBkZXBsb3llZCB3aGVyZWFzIHRoZXkKPiA+ID4gPiB3ZXJlCj4gPiA+ID4gZGVwbG95ZWQgcHJldmlvdXNseS4KPiA+ID4gPiBJTUhPIGl0J3MgdmVyeSBjb252ZW5pZW50IGFzIHNvbWUgdXNlcnMgdGVzdCBvdXIgZml4ZXMuLi4uCj4gPiA+PTIwCj4gPiA+IEBTdGVwaGVuIGFkZGluZyBhdXRvLWRlcGxveSBmb3IgbWFzdGVyIGJyYW5jaCBjb3VsZCBtYWtlIHNlbnNlLCBpc24ndAo+ID4gPiBpdD8KPiA+PTIwCj4gPiBJIHJlYWxseSB0aGluayBhdXRvLWRlcGxveSBvZiBzbmFwc2hvdHMgaXMgYW4gYW50aS1wYXR0ZXJuLiBJZiB3ZSB3YW50ID0KaXQKPiA+IHRvIGJlIGZvciBDSSBvbmx5IGluIGEgQ0kgZGVkaWNhdGVkIHJlcG8sIEkgY2FuIGZpbmQgdGhhdCBhY2NlcHRhYmxlLi4uCj4gPiBidXQKPiA+IG90aGVyd2lzZSBJIHJlYWxseSBoYXRlIHRoZSBpZGVhLgo+PTIwCj4gSSBkb24ndCB1bmRlcnN0YW5kOiBhIFNOQVBTSE9ULWRlZGljYXRlZCByZXBvc2l0b3J5IGlzIGxpa2UgYSBtaW5pCj4gY29udGludW91cyBkZXBsb3ltZW50LiBXZSBoYXZlIGEgU05BUFNIT1QtZGVkaWNhdGVkIHJlcG9zaXRvcnkgZXhhY3RseSBmb3IKPiB0aGF0LCBjb25maWd1cmVkIGFzIHJlcG9zaXRvcmllcyBhbmQgZGlzdHJpYnV0aW9uTWFuYWdlbWVudCBpbiBBcGFjaGUKPiBQYXJlbnQgUE9NIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3BvbS9hc2YvCj49MjAKPiBJIHVuZGVyc3RhbmQgdGhlcmUgYXJlIGlzc3VlcyBpZiB3ZSBhdXRvLWRlcGxveSBmcm9tIGJyYW5jaGVzLCBzaW5jZSB3ZSBoPQphdmUKPiBubyB2ZXJzaW9uIHNjaGVtZSB0byBtYWtlIGEgZGlmZmVyZW5jZSBpbiB0aGUgU05BUFNIT1QgcmVwbyBmb3IgZXZlcnkKPiBicmFuY2g6IHRoYXQncyB3aHkgSSByZXN0cmljdCB0aGUgYXV0by1kZXBsb3ltZW50IHRvIG1hc3Rlci4KPj0yMAo+IEJ1dCBpdCdzIHRoZSBmaXJzdCB0aW1lIEkgaGVhciBhYm91dCBpc3N1ZXMgd2l0aCBhIFNOQVBTSE9UIHJlcG8gdG8gbWFrZQo+IFNOQVBTSE9UcyBwdWJsaWMgKGFzIFNOQVBTSE9UcywgaWUgYWR2ZXJ0aXplZCBhcyBsYXRlc3QgJiBub24tcmVwcm9kdWNpYmw9CmUsCj4gdG8gdGVzdCBlYXJseSk6IHRoZSBvbmx5IGlzc3VlcyBJIHVuZGVyc3Rvb2Qgd2FzIGFib3V0IHBlb3BsZSB3YW50aW5nIHRvCj4gbWFrZSB0aGVzZSByZXByb2R1Y2libGUsIHRoZW4gYXZvaWQgU05BUFNIT1QgYW5kIGNhbGwgaXQgImNvbnRpbnVvdXMKPiBkZWxpdmVyeSIgKHdoaWNoIElNSE8gYWRkcyBhIGxvdCBvZiB1bnVzZWQgcmVsZWFzZXMgdGhhdCB5b3UgY2FuJ3QgZGVsZXRlCj4gaWYgeW91IGRvbid0IG1hc3RlciBwcmVjaXNlbHkgd2hvIHlvdXIgY29uc3VtZXJzIGFyZTogdGhlbiBpbiBzdWNoIG9wZW4KPiBzaXR1YXRpb24sIHlvdSBnZXQgYSBibG9hdGVkIHJlcG8uLi4pCj49MjAKPiBSZWdhcmRzLAo+PTIwCj4gSGVydj1DMz1BOQo+PTIwCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDM4OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgTm92ICA0IDA4OjUwOjMyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDM4OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFM0M5QzE3N0FFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMDg6NTA6MzIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2OTY0IGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMDg6NTA6MzIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY4ODkgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBOb3YgMjAxNyAwODo1MDozMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY4NzggaW52b2tlZCBieSB1aWQgOTkpOyA0IE5vdiAyMDE3IDA4OjUwOjMyIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwNCBOb3YgMjAxNyAwODo1MDozMiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDY3MUQ2MTgwODRFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAwODo1MDozMSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB3UUpEQkN4OUF4amQgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsICA0IE5vdiAyMDE3IDA4OjUwOjMwICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAxMC5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEzMl0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAwNjQzNjVGQjkxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAwODo1MDoyOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQxOSB3aXRoIE1FCglpZCBWa3FVMXcwMEYyMFVmZHkwM2txVURxOyBTYXQsIDA0IE5vdiAyMDE3IDA5OjUwOjI4ICswMTAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFNhdCwgMDQgTm92IDIwMTcgMDk6NTA6MjggKzAxMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogbWlncmF0aW5nIHNvbWUgY29kZSB0byBHaXQKRGF0ZTogU2F0LCAwNCBOb3YgMjAxNyAwOTo1MDoyOCArMDEwMApNZXNzYWdlLUlEOiA8NTE2MzY2MC5yVDVUQzhFcFhwQGdpZ2E+CkluLVJlcGx5LVRvOiA8MzYzMDc5Ni5wQ3gyRlBQZ0ZnQGdpZ2E+ClJlZmVyZW5jZXM6IDw1ODc4MTEwLlRNRW90NlZFdXVAZ2lnYT4gPDIwMjg4ODAuMUhnRm1SSlMwcEBnaWdhPiA8MzYzMDc5Ni5wQ3gyRlBQZ0ZnQGdpZ2E+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKbm8gb2JqZWN0aW9uOiBzdGFydGluZyB0aGUgbWlncmF0aW9uIG9mIHRoZXNlIDYgcmVwb3MKClJlZ2FyZHMsCgpIZXJ2PUU5CgpMZSBtZXJjcmVkaSAxIG5vdmVtYnJlIDIwMTcsIDEyOjA5OjU4IENFVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiBhZGRpbmcgMiBtb3JlIHJlcG9zIHRvIHRoZSBsaXN0Ogo+IGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1kb3hpYS1jb252ZXJ0ZXIKPiBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tZG94aWEtbGlua2NoZWNrCj49MjAKPiBMZSBtZXJjcmVkaSAxIG5vdmVtYnJlIDIwMTcsIDA3OjI4OjAyIENFVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiA+IGZvciBsYXp5IHBlb3BsZSwgSSB0b29rIHRpbWUgdG8gY3JlYXRlIHRoZSA0IHJlcG8gb24gcGVyc29uYWwgR2l0SHViCj4gPiBzcGFjZToKPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1hcGFjaGUtcGFyZW50Cj4gPiBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tcGFyZW50Cj4gPiBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tZGVmYXVsdC1za2luCj4gPiBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tZmx1aWRvLXNraW4KPiA+PTIwCj4gPiBJIHdvbid0IGRvIHRoZSBzYW1lIGluIHRoZSBmdXR1cmUgZm9yIHRoZSAyNiBzaGFyZWQgYW5kIDQ1IHBsdWdpbnMsIHNpbj0KY2UKPiA+IG1hbnVhbCByZXBvIGNyZWF0aW9uIGlzIG5vdCBmdW4uLi4KPiA+PTIwCj4gPiBSZWdhcmRzLAo+ID49MjAKPiA+IEhlcnY9RTkKPiA+PTIwCj4gPiBMZSBtYXJkaSAzMSBvY3RvYnJlIDIwMTcsIDE2OjA4OjAxIENFVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiA+ID4gQXMgeW91IHByb2JhYmx5IG5vdGljZWQsIEkgbWlncmF0ZWQgbWF2ZW4tZGlzdC10b29sIFsxXSB0byBnaXQsIHVzaW5nCj4gPiA+IHNlbGYtCj4gPiA+IHNlcnZpY2UgR2l0Ym94IGZvciB0aGUgZW1wdHkgcmVwbyBjcmVhdGlvbiBhbmQgYSBtaWdyYXRlLXNhbmRib3guc2gKPiA+ID4gc2hlbGwKPiA+ID4gc2NyaXB0IFsyXSB0byBwb3B1bGF0ZSB0aGVtIChhZnRlciBTbGluZyBleGFtcGxlKQo+ID4gPj0yMAo+ID4gPiBJdCB3b3JrZWQgbGlrZSBhIGNoYXJtIQo+ID4gPj0yMAo+ID4gPiBJZiBub2JvZHkgb2JqZWN0cywgaW4gNzJoLCBJJ2xsIHVzZSBtaWdyYXRlLXBvbS5zaCBhbmQgbWlncmF0ZS1za2lucy49CnNoCj4gPiA+IHRvCj4gPiA+IGNyZWF0ZSA0IG5ldyByZXBvczogbWF2ZW4tYXBhY2hlLXBhcmVudCwgbWF2ZW4tcGFyZW50LAo+ID4gPiBtYXZlbi1kZWZhdWx0LXNraW4KPiA+ID4gYW5kIG1hdmVuLWZsdWlkby1za2luCj4gPiA+IFBsZWFzZSB0YWtlIHRpbWUgdG8gZXhlY3V0ZSB0aGUgc2NyaXB0cyBmb3IgeW91cnNlbGYgYW5kIGNoZWNrIHRoYXQgdD0KaGUKPiA+ID4gcmVzdWx0IGlzIG9rIGZvciB5b3UuCj4gPiA+PTIwCj4gPiA+IEkgYWxyZWFkeSBwcmVwYXJlZCBtaWdyYXRlLXBsdWdpbnMuc2ggYW5kIG1pZ3JhdGUtc2hhcmVkLnNoIHNjcmlwdHM6ID0KSSdtCj4gPiA+IHdhaXRpbmcgZm9yIEplbmtpbnMgaW50ZWdyYXRpb24gcmVzdWx0cyBiZWZvcmUgdHJ5aW5nIHRvIG1pZ3JhdGUgdGhpcwo+ID4gPiBwYXJ0LAo+ID4gPiBidXQgeW91IGNhbiBhbHNvIHRha2UgdGltZSB0byBjaGVjayB0aGF0IHRoZSByZXN1bHRpbmcgZ2l0IHJlcG9zIGZyb20KPiA+ID4gdGhlCj4gPiA+IHNjcmlwdHMgYXJlIGdvb2QuCj4gPiA+PTIwCj4gPiA+IFJlZ2FyZHMsCj4gPiA+PTIwCj4gPiA+IEhlcnY9RTkKPiA+ID49MjAKPiA+ID4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZGlzdC10b29sLwo+ID4gPj0yMAo+ID4gPiBbMl0gaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy92aWV3dmMvbWF2ZW4vc2FuZGJveC90cnVuay9zY3JpcHRzL2dpdC8KPiA+ID49MjAKPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj49MjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MDQ5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBTZXAgMTcgMDk6MzA6MTggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDQ5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDk0MTc4MTk2ODkKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxNyBTZXAgMjAxNyAwOTozMDoxOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDc4MjgwIGludm9rZWQgYnkgdWlkIDUwMCk7IDE3IFNlcCAyMDE3IDA5OjMwOjE4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3ODE5MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNyBTZXAgMjAxNyAwOTozMDoxOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc4MTc0IGludm9rZWQgYnkgdWlkIDk5KTsgMTcgU2VwIDIwMTcgMDk6MzA6MTcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDE3IFNlcCAyMDE3IDA5OjMwOjE3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgREM0QTIxQTBDNkM7CglTdW4sIDE3IFNlcCAyMDE3IDA5OjMwOjE0ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuMjIxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjIyMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFBLaDFEeG9WYmc3bTsgU3VuLCAxNyBTZXAgMjAxNyAwOTozMDoxMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNy4yMV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBBMjUyNzVGMzk3OwoJU3VuLCAxNyBTZXAgMjAxNyAwOTozMDoxMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBLYXJsLUhlaW56cy1NYWNCb29rLVByby5sb2NhbCAoWzIxNy4yNDcuNDAuMTUwXSkgYnkKIG1haWwuZ214LmNvbSAobXJnbXgxMDMgWzIxMi4yMjcuMTcuMTY4XSkgd2l0aCBFU01UUFNBIChOZW1lc2lzKSBpZAogMExlTkdMLTFkNElKSDByV2YtMDBxQnJDOyBTdW4sIDE3IFNlcCAyMDE3IDExOjMwOjA2ICswMjAwClJlcGx5LVRvOiBpbmZvQHNvZWJlcy5kZQpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIEpNb2QgUGx1Z2luIHZlcnNpb24gMy4wLjAtYWxwaGEtMQogKEZpcnN0IFB1YmxpYyBSZWxlYXNlKSBUYWtlIDIKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LAogUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8N2Y2Mjc3NjEtMjYyZi1lZDBkLTE0MzItZTJmMzA1YWFiYzdhQGdteC5kZT4KIDwzMzY0OTIyYS1iNGZmLTgxNDItMGY3OS0wNmVlMzhkNDJlN2VAZ214LmRlPgogPG9wLnk2cGNkdWE4a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpGcm9tOiBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4KTWVzc2FnZS1JRDogPDUyYTQ2NDI3LWJkYTItOTYyMS0zZTRmLTA0ZDNlNWRkY2JkM0BnbXguZGU+CkRhdGU6IFN1biwgMTcgU2VwIDIwMTcgMTE6MzA6MDUgKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi4yLjEKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDxvcC55NnBjZHVhOGtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLUdCCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6M3U1bGx0US91d0VVai84cVZJMk55UW5scGhDcjV1QzhxV2ZaK2Z3TGJIQXhFU2ZjUmZpCiAzZWpMYjdGZE1DVkUxSHhqb3o2N1dXSldXUHI5cndlRmo0V0hwbVNVdThjOVJIL2RrQk0xWnIyQUg4NWhvUXN5djJqNUwzKwogTFA4M3E2OWNZQ2x5S0VyTUROVVdqYW9XV0tIOE1EakltYXdsd2pGNVNrdUV4b0VOM0xidjFiUUtsNDJ1czZHZGFMN0hHNlMKIDh2V3YzWWdMTk9FWmZ5RVBHRGlNUT09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6MTdXeTNjSUNFdlE9Omg3NDZwNWR0bGNUOXpDSmFSS2FDcmEKIC9xM2haczNTOVB0UEd5UFpJUEV2UkNYTU95bFVzTyt2TEI3Q3ozSHlDeHNYRmt5S3l1Y0FlNFc4Y3JRSFk1SHdXZzhDZVJTbkkKIHdJd1hORThZUjI4M1JHT1ZCbEZZRVh1UnBqa1Rub2VacTVJUnJ4SHY4NzNaT0JCb2FTN09Td3BMRWp2N29FSGRhK2E2TVladksKIDlubnNPc3dFYmc5LzNuSm9zMGk0MDVVY1NRUDQyeSt6eFFyL3ROTXZOWGxHMnRYL0VjNno3M2FISlBxMUNKYXNYT3d2a1U1ZEkKIFVhN05nVHJGOFZhSzRRcGo2b0JNMG1hZDRmQzJWUXlGWlVCRDJZREFmL2VwazFWNGxLMW1nNXZwRzVMcjQwNTNQUG4xejZxWVUKIHBCRUszT1g3ckhwTkhEdm90a2VJU0FDbUNFamQwTWl0YzNtQ04vWUJmS09EWW4rRTIvZVBZR2tnSXV3bFJwMXBRdDRCYm1OMzYKIGZMaVVlOTBicU0xc3IxMHRYS1FqTWkxY2FpTVdSanhvWFhZSnV4TEdRWUs4RTh2MHdCUmVnUkEzWWtYK056VEpLa0F0R085WXoKIFNUWjhLa0ZaS3d2UHJ2L1M0ZEhsanN2RUJMNTIxMjFaSzdkOHhqdXNFVnNGaEZueTlWWTFHMjNacCtmVlpla1QvcUVFSWVJY0EKIGZqQ3JubHRZbVZYazh5MEJOSVpyZS9HanBFcy9ybXVQLzU2bXU4VFRTYlVMbVhUY3Zyd05kYmhTODgvazR1b0NBTnoveGRINHAKIFJPdDlxMWRNL2lJd05JNkU5bVBPSlJwN2oxWERZbWUvZzNQN3g5Z1N2NWtjU2tNVEpaaERVUUdmTkU2eEk4VFB2Nmhob2hFR08KICt2UDFMU24vbEM2TzhsT1NIQzczWEtHaUloc0tEbjV4a2JkdTk1cUxuc2diTnhvZE9ndjhDMmFSWDkzRldLRHFYNUpoZHJoTFcKIDdTVmduYjI4eGF0R0N0L1VwTC9iSTA0YXhNZUF4YkZJV3Z4UUZzR1ZJMlJyZXpzTzVSQlk4dWpJeGNqb1VBWlBER2hHTkFpYXMKIDQxYkVBNXBvZHFSYlZwRlRRcUlOV3ZrdmRGUlBkOFFhSWM0ZDdmcjRXdlk1d3o2QVFhaVcyZVVCaFNCY3B5Y2JORCt6c05UVWYKIGdOenVIZE8xSG1QNDU5N1NFVkpkQzlJYmlqVldVRHFxbk5mQmZRcmFiODB4aHdWVXcrNFIxNmxSd084SmlQCgpIaSBSb2JlcnQsCgpPbiAxNy8wOS8xNyAxMDo1NCwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4gLTEKPiAKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1qbW9kLXBsdWdpbi1MQVRFU1QvbGlzdC1tb2pvLmh0bWwgCj4gCj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tam1vZC1wbHVnaW4tTEFURVNUL2Rlc2NyaWJlLW1vam8uaHRtbCAKPiAKPiBTbyBoZXJlJ3Mgd2hlcmUgdGhlIG1vZHVsZU5hbWUgaXMgdXNlZDoKPiBCZXR0ZXIgbm90IHRvIGhhdmUgYSBkZWZhdWx0IHZhbHVlIGhlcmUsIGl0IGlzIFZFUlkgdW5saWtlbHkgdGhhdCBpdCBpcyAKPiB0aGUgYXJ0aWZhY3RJZCwgaW4gZmFjdCwgaXQgc2hvdWxkbid0IChpdCdzIGxpa2UgbWFraW5nIHRoZSBncm91cElkIHRoZSAKPiBzYW1lIGFzIHRoZSBhcnRpZmFjdElkKS4KPiBPbmx5IGlmIHRoZXJlJ3MgYSBtb2R1bGUgZGVzY3JpcHRvciB5b3UgY2FuIHVzZSB0aGF0IG5hbWUuCgpBaCBzdXJlLi4uCgpTbyBJZiBJIGNvcnJlY3RseSBnZXQgdGhpcy4uaW4gY2FzZSBmb3Igam1vZCBsaXN0L2Rlc2NyaWJlIG9ubHkgdGhlIG5hbWUgCm9mIHRoZSBqbW9kIGZpbGUgaXMgbmVlZGVkID8KCkZpcnN0IHdvdWxkIGJlIHRvIHByZXZlbnQgY29uZnVzaW9ucyBhbmQgdG8gbmFtZSB0aGUgcGFyYW1ldGVyIAoiam1vZEZpbGVOYW1lIiA/CgpBbmQgdGFrZSB0aGUgZGVmYXVsdCBhcnRpZmFjdElkIGNhdXNlIHVzdWFsbHkgdGhleSB3aWxsIGJlIG5hbWVkIGxpa2UgCnRoaXMuLi5hbmQgaWYgdGhlIG5hbWUgaXMgZGlmZmVyZW50IHlvdSBoYXZlIHRvIGV4cGxpY2l0bHkgc2V0IGl0Li4uCgpGdXJ0aGVybW9yZSB0aGUgcXVlc3Rpb24gaXM6IFNob3VsZCBJIGFzc3VtZSBoYXZpbmcgYSBqbW9kIGZpbGUgYXJlIApiZWluZyBsb2NhdGVkIGluICJ0YXJnZXQvam1vZHMvIiBkaXJlY3RvcnkgYXMgZGVmYXVsdCA/CgoKPiAKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1qbW9kLXBsdWdpbi1MQVRFU1QvY3JlYXRlLW1vam8uaHRtbCAKPiAKPiBTdGlsbCBzaG93IHRoZSBjbGFzc3BhdGgsIHNob3VsZG4ndCBiZSBhIHBhcmFtZXRlci4KClRoZSAtLWNsYXNzLXBhdGggb3B0aW9uIHNob3VsZCBiZSBzZXQgdG8gdGhlIGNsYXNzcGF0aEVsZW1lbnRzIHdoaWNoIGhhcyAKYmVlbiBjYWxjbHVsYXRlZCBieSBwcmVwYXJlUGF0aHMoKSBtZXRob2QgaWYgSSBjb3JyZWN0bHkgdW5kZXJzdGFuZCA/CgpTbyB0aGUgcGFyYW1ldGVyIGNhbiBiZSBjb21wbGV0ZWxleSByZW1vdmVkID8KCgo+IAo+IExhdGVzdCBjb21taXRzIGFscmVhZHkgaW1wcm92ZWQgdGhlIHBsdWdpbiBhIGxvdCwgd2UncmUgYWxtb3N0IHRoZXJlLgo+IAo+IHRoYW5rcywKPiBSb2JlcnQKPiAKPiBPbiBTYXQsIDE2IFNlcCAyMDE3IDIxOjEyOjE2ICswMjAwLCBLYXJsIEhlaW56IE1hcmJhaXNlIAo+IDxraG1hcmJhaXNlQGdteC5kZT4gd3JvdGU6Cj4gCj4+IEhpLAo+Pgo+PiB0aGlzIGlzIHRoZSBWT1RFIGZvciB0aGUgZmlyc3QgcHVibGljIHJlbGVhc2UgZm9yIE1hdmVuIEpNb2QgUGx1Z2luLi4uCj4+Cj4+IFdlIHNvbHZlZCAzIGlzc3VlczoKPj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMyMTQzMyZ2ZXJzaW9uPTEyMzQxMzYzIAo+Pgo+Pgo+PiBUaGVyZSBhcmUgY3VycmVudGx5IG5vIGlzc3VlcyBsZWZ0IGluIEpJUkEuCj4+Cj4+IElmIHlvdSBoYXZlIGFueSBpc3N1ZSB0byByZXBvcnQgcGxlYXNlIG9wZW4gYW4gaXNzdWUgaW4gSklSQQo+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvcHJvamVjdHMvTUpNT0QKPj4KPj4gU3RhZ2luZyByZXBvOgo+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY4Lwo+Pgo+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY4L29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi1qbW9kLXBsdWdpbi8zLjAuMC1hbHBoYS0xL21hdmVuLWptb2QtcGx1Z2luLTMuMC4wLWFscGhhLTEtc291cmNlLXJlbGVhc2UuemlwIAo+Pgo+Pgo+PiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPj4gbWF2ZW4tam1vZC1wbHVnaW4tMy4wLjAtYWxwaGEtMS1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogCj4+IDNiYTQ3Y2IzMGFmNzY1YjZlNjdmYmYxNmNjZWU1MGRiZGFjMjkxNDIKPj4KPj4gU3RhZ2luZyBzaXRlOgo+PiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1qbW9kLXBsdWdpbi1MQVRFU1QvCj4+Cj4+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+PiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+Pgo+PiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+Pgo+PiBbIF0gKzEKPj4gWyBdICswCj4+IFsgXSAtMQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MjUyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBPY3QgMTYgMjE6NDE6MDUgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjUyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDczNjg2MTA0QTMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxNiBPY3QgMjAxNyAyMTo0MTowNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDYwNjUwIGludm9rZWQgYnkgdWlkIDUwMCk7IDE2IE9jdCAyMDE3IDIxOjQxOjA1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MDUwNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNiBPY3QgMjAxNyAyMTo0MTowNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYwMTM3IGludm9rZWQgYnkgdWlkIDk5KTsgMTYgT2N0IDIwMTcgMjE6NDE6MDQgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDE2IE9jdCAyMDE3IDIxOjQxOjA0ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMDc3RkYxQTAzMkQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE2IE9jdCAyMDE3IDIxOjQxOjA0ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEuMwpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMS4zIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgS0FNX05VTVNVQkpFQ1Q9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgamxqRXZRWGttZ18xIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAxNiBPY3QgMjAxNyAyMTo0MTowMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDUuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjddKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNDkyN0M1RkRFNwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTYgT2N0IDIwMTcgMjE6NDE6MDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMDkgd2l0aCBNRQoJaWQgTk1ndzF3MDAzMjBVZmR5MDNNZ3dNTTsgTW9uLCAxNiBPY3QgMjAxNyAyMzo0MDo1NiArMDIwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBNb24sIDE2IE9jdCAyMDE3IDIzOjQwOjU2ICswMjAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ2M6IE1hdmVuIFByb2plY3QgTWFuYWdlbWVudCBDb21taXR0ZWUgTGlzdCA8cHJpdmF0ZUBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBbUkVTVUxUXSBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gUmVwb3J0aW5nIEV4ZWMgdmVyc2lvbiAxLjQKRGF0ZTogTW9uLCAxNiBPY3QgMjAxNyAyMzo0MDo1NiArMDIwMApNZXNzYWdlLUlEOiA8NTQwODI1My5LNURSeUpvVlBnQGdpZ2E+ClVzZXItQWdlbnQ6IEtNYWlsLzUuMi4zIChMaW51eC80LjEwLjAtMzctZ2VuZXJpYzsgS0RFLzUuMzEuMDsgeDg2XzY0OyA7ICkKSW4tUmVwbHktVG86IDwzOTgzNjk3LjBIREdQWWNBZkFAZ2lnYT4KUmVmZXJlbmNlczogPDM5ODM2OTcuMEhER1BZY0FmQUBnaWdhPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCkhpLAoKVGhlIHZvdGUgaGFzIHBhc3NlZCB3aXRoIHRoZSBmb2xsb3dpbmcgcmVzdWx0OgoKKzEgOiBSb2JlcnQgU2Nob2x0ZSwgQXJuYXVkIEg9RTlyaXRpZXIsIEhlcnY9RTkgQm91dGVteQoKUE1DIHF1b3J1bTogcmVhY2hlZAoKSSB3aWxsIHByb21vdGUgdGhlIGFydGlmYWN0cyB0byB0aGUgY2VudHJhbCByZXBvLgoKUmVnYXJkcywKCkhlcnY9RTkKCkxlIHZlbmRyZWRpIDEzIG9jdG9icmUgMjAxNywgMDI6MDk6NTggQ0VTVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiBIaSwKPj0yMAo+IFdlIHNvbHZlZCAzIGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4gcHJvamVjdElkPTNEMTIzMTc5MjImdmVyc2lvbj0zRDEyMzM4NjIxCj49MjAKPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3Mgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzIvb3JnL2FwYWNoZS8KPiBtYXZlbi9yZXBvcnRpbmcvbWF2ZW4tcmVwb3J0aW5nLWV4ZWMvMS40L21hdmVuLXJlcG9ydGluZy1leGVjLTEuNC1zb3VyY2UtCj4gcmVsZWFzZS56aXAKPj0yMAo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IG1hdmVuLXJlcG9ydGluZy1leGVjLTEuNC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMToKPiBjMWYzYzEyYTI0ZWM0NTEzZjVhZGJiNDE1MmVjNmEzMTRmMGM0YTJiCj49MjAKPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvc2hhcmVkLWFyY2hpdmVzL21hdmVuLXJlcG9ydGluZy1leGVjLUxBVEVTVC8KPj0yMAo+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCj49MjAKPiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+PTIwCj4gICAgIFsgXSArMQo+ICAgICBbIF0gKzAKPiAgICAgWyBdIC0xCj49MjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzOTE0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBTZXAgIDkgMTI6NTY6MjkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTE0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDc4RkYwMTkzMUIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgOSBTZXAgMjAxNyAxMjo1NjoyOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk2MTMyIGludm9rZWQgYnkgdWlkIDUwMCk7IDkgU2VwIDIwMTcgMTI6NTY6MjQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk2MDcwIGludm9rZWQgYnkgdWlkIDUwMCk7IDkgU2VwIDIwMTcgMTI6NTY6MjMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NjA1OSBpbnZva2VkIGJ5IHVpZCA5OSk7IDkgU2VwIDIwMTcgMTI6NTY6MjMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA5IFNlcCAyMDE3IDEyOjU2OjIzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQ0U5NUYxOTE4QzgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA5IFNlcCAyMDE3IDEyOjU2OjIyICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuMjIxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjIyMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgd29kS1lodm5rcGVIIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAgOSBTZXAgMjAxNyAxMjo1NjoyMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNS4xNV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA0RjZGRjVGRDBDCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgOSBTZXAgMjAxNyAxMjo1NjoyMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBLYXJsLUhlaW56cy1NYWNCb29rLVByby5sb2NhbCAoWzIxNy4yNDcuNC43XSkgYnkgbWFpbC5nbXguY29tCiAobXJnbXgwMDMgWzIxMi4yMjcuMTcuMTkwXSkgd2l0aCBFU01UUFNBIChOZW1lc2lzKSBpZAogMEx2VllaLTFkUENnZjA2ZVItMDEwZ04zIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDA5IFNlcCAyMDE3CiAxNDo1NjoxNCArMDIwMApSZXBseS1UbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IG1hdmVuLXNoYXJlZC1qaWdzYXcgQnVpbGQKRnJvbTogS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8NWRjYWM3ZmMtMDJhMy00MTA0LWI5MDUtNWJkMzM0NzdjZDU3QGdteC5kZT4KTWVzc2FnZS1JRDogPDU0Y2ZlOTBhLTA1ZWQtOTNkZC1hY2FjLTdmMTI4OGJiZTg2MkBnbXguZGU+CkRhdGU6IFNhdCwgOSBTZXAgMjAxNyAxNDo1NjoxMyArMDIwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMTsgcnY6NTIuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzUyLjIuMQpNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPDVkY2FjN2ZjLTAyYTMtNDEwNC1iOTA1LTViZDMzNDc3Y2Q1N0BnbXguZGU+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtODsgZm9ybWF0PWZsb3dlZApDb250ZW50LUxhbmd1YWdlOiBlbi1HQgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0ClgtUHJvdmFncy1JRDogVjAzOkswOkdzYlU3cGlVdzFxaHBkcVVBNS9uYm1ETG1hd0JlUGVXZkNGQkRlM2NsZG1BT3lDeEtjRwogRVVzUkMweXR0aHU2b2RZTjlBYVIrSmNhakFubUIrVWhJbStMSHJEY3lYLzRkRE1mc0RHRlRUV0ZTZVIzL2lTTnhJSmNSem8KIEtRaHMyRGNjZW1oR0hraXZsKzNsMkpEUGNwMkp3WmhLRkdIYWtNMEVlZHMrT3FDQzlKbHQ1UG5yNThTV3BiREhZTjNuQit1CiBtZUdQL28rN0F6Tll4YUtBYVhUK2c9PQpYLVVJLU91dC1GaWx0ZXJyZXN1bHRzOiBub3RqdW5rOjE7VjAxOkswOkpGN3BITFFwNGpJPTpJa2VTOW1STHpZWEdGYTdsUDVDdzg0CiBJYThkTXV2ZUFTYS8yQ3V5b2NGdHhKM2xvL3NiV0hUQVdQRFU4d1VlOE8xaGVPOE9hWWpiUlQyK05rSitTZVZRR1JUZjhsRGMyCiBWN01iWkRSOHJwS3p4L2oxOHdUSHRTZnZSY2w5ZklvU1QrTHNsZHJWcSszMmZhUVJ3YWNxZm96Smxlb1ZlM3c0NnZ2eGMzZnQxCiBwRXRweWtGaFNDQU85TXBwc25HbmVaV3FqZ1Q4R2ttam45KzJka2l0SzZzUGhqNHpMaCswdmI2V2Q4TnJPc2VuM1dGRFZPZVpjCiBsbWROWUdpUjU5eTczUklwVWVJYWhLY0RJa1YxeER0UFBiTDlscnBjWGh3VG9zZ0MxVzZVSHVqTjRERVU1dnZGM2tUOStLK0EyCiBIU1RseGN0cWU3V05rdVRQR3h0Mm8xOHoxQUxINU5GYVMzTWNBUjlweUJReVdLUTJwT3dPamQyNnFDeFo0RFlxRFJadVA1cXJTCiBLSy9lZk5aa2FsUlc2blRZVDFVclBvcDNwL2dJUG1qUi93cFNsdFlJY2V1WUVwdWVBV0N5eHArcksvckpCT3Jtb0JTMTZ0THE0CiBMVzc3L3JtZE5oK1VDMldETjZXbGpId29FM1ZIWWRXWVdxNlVPbDlNL01NRGhzVnUrbFQ2VllLeXAzSmg5Z0d4OXN5Z05hYUw1CiBpN2ZER3ZpcWdubk5UT2E1anZOaDlHSVpkYnZ4K0x3c2hSMzdZWHlQTVhROFhwVTFhbWJMdlpuK3dXOWE2M0dpRlFEb2R4bFhyCiA3V2tuRU42VjNtbXYvblpIZnBmR3h2eld0bWJjUzB3SnRSY3VTMXZTeFFPN2p1eXF4WE9BNlgxc3U2bmxSbm9aWkRtWEdNcEFuCiBVZWx2N3k4SmlkUEczRmQ3VVdqcnplck5Ib1grVHkvVTdQZWVqMk9QSjU5bkQ1aEdmb3BFUTNPcHJualhmOEtkQnZkSmlueUNFCiB6SEgvQlRuQnU1U21jTFZuK2lNUlRhbnJUWWR1UGpjSU1abk1QMk5yeGJTTmdzcFFpcExyRjc1dXhYL2xWOVA0TTdsd012NnJ5CiB4QkZ4aHRaOXdNQlNKM2hpYWYrTllqWE5nVlg2b2FEeDZiWHdZQWMzaXYvT05WL1M5dFpLWEU5TVNFT1VCSUswbDd1dmJYaTMyCiBRUFVoL1FzandKYmg5M2NWbHJDeVl0SHVRMnVUN0kvdlNGK0NZM1FUUEQrcFJvVU1QcXpkOGZ6R1RtSVdzdQoKSGksCgphbHNvIGRvbmUgZm9yIG1hdmVuLXBsdWdpbi10b29scyBKaWdzYXcsIG1hdmVuLTMueC1qOS8gLi4uCgpLaW5kIHJlZ2FyZHMKS2FybCBIZWlueiBNYXJiYWlzZQpPbiAwOS8wOS8xNyAxNDo0MywgS2FybCBIZWlueiBNYXJiYWlzZSB3cm90ZToKPiBIaSwKPiBJIGhhdmUgdXBkYXRlZCB0aGUgbWF2ZW4tc2hhcmVkLWppZ3NhdyBCdWlsZCBDb25maWd1cmF0aW9uIHRvIHVzZSB0aGUgCj4gbW9zdCByZWNlbnQgdmVyc2lvbiBvZiBKREsxLjkuMCtFQV8xODEuLi4KPiAKPiBLaW5kIHJlZ2FyZHMKPiBLYXJsIEhlaW56IE1hcmJhaXNlCj4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQxODYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE9jdCAgOCAxMDo0OTozMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxODYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgODc1OTkxMDA3RQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sICA4IE9jdCAyMDE3IDEwOjQ5OjMwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTI5MzEgaW52b2tlZCBieSB1aWQgNTAwKTsgOCBPY3QgMjAxNyAxMDo0OTozMCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTI4NDYgaW52b2tlZCBieSB1aWQgNTAwKTsgOCBPY3QgMjAxNyAxMDo0OTozMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkyODM1IGludm9rZWQgYnkgdWlkIDk5KTsgOCBPY3QgMjAxNyAxMDo0OToyOSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMDggT2N0IDIwMTcgMTA6NDk6MjkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAxOEMwMEQ0NTc0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAgOCBPY3QgMjAxNyAxMDo0OToyOSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjgKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuOCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB2SGgtMXgxYXhGM2kgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sICA4IE9jdCAyMDE3IDEwOjQ5OjI3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwMS5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyM10pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAxNDYzNTVGMzQxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAgOCBPY3QgMjAxNyAxMDo0OToyNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQzNiB3aXRoIE1FCglpZCBKeXBLMXcwMEwyMFVmZHkwM3lwS3gwOyBTdW4sIDA4IE9jdCAyMDE3IDEyOjQ5OjIwICswMjAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFN1biwgMDggT2N0IDIwMTcgMTI6NDk6MjAgKzAyMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogSmVua2lucyBhbmQgTWF2ZW4gMy4wLjUgb3IgSkRLIDcKRGF0ZTogU3VuLCAwOCBPY3QgMjAxNyAxMjo0OToxOSArMDIwMApNZXNzYWdlLUlEOiA8NTY1MTc1Ni4wek5DaTViNldKQGdpZ2E+ClVzZXItQWdlbnQ6IEtNYWlsLzUuMi4zIChMaW51eC80LjEwLjAtMzUtZ2VuZXJpYzsgS0RFLzUuMzEuMDsgeDg2XzY0OyA7ICkKSW4tUmVwbHktVG86IDxDQUt1VnpCVHB3eVJqN2RrcE5PR2JEZkRvU3ktYjl4d01KSGg2NHFSZTF4R2FyOW9kRFFAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDwxMDU0NDYxNS5CNGhPM1BudkV6QGdpZ2E+IDwzMDY2MzA4LlJaNzZzTVQyYmNAZ2lnYT4gPENBS3VWekJUcHd5Umo3ZGtwTk9HYkRmRG9TeS1iOXh3TUpIaDY0cVJlMXhHYXI5b2REUUBtYWlsLmdtYWlsLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpJIGZlYXIgdGhpcyBpcyBub3QgYW4gb3B0aW9uIHRvZGF5LCBidXQgaWRlYWxseSwgdGhhdCB3b3VsZCBiZSBhIHBlcmZlY3RseT0KPTIwCnZpc2libGUgZ3JvdXBpbmcKCndlIG5lZWQgdG8gZmluZCBhbm90aGVyIHdheSBvZiBncm91cGluZywgZm9yIHBlb3BsZSB3aG8gZG8gY2FyZSBhYm91dCBNYXZlbj0KPTIwCmdlbmVyYWwgc3RydWN0dXJlOiBwZW9wbGUgd2hvIGp1c3Qgd29yayBvbiBhbiBhcnRpZmFjdCBqdXN0IGRvbid0IGNhcmUKYW5kIHRoZXkgZG9uJ3QgY2FyZSB0aGF0IGdpdCByZXBvcyBhcmUgZmxhdCBldmVuIGF0IEFwYWNoZSBsZXZlbDogQXBhY2hlIGxlPQp2ZWw9MjAKanVzdCBlbmZvcmNlIGdyb3VwaW5nIHZpYSByZXBvIG5hbWUgcHJlZml4Cmh0dHA6Ly9naXQuYXBhY2hlLm9yZy8KCmN1cnJlbnRseSwgSSBob3BlIHRoYXQgb3VyICJmdWxsIE1hdmVuIHNvdXJjZSBjb2RlIGNsb25lIiBpbXBsZW1lbnRhdGlvbiB3bz0KdWxkPTIwCm1ha2UgdGhlIE1hdmVuIGNvZGUgc3RydWN0dXJlIGdyb3VwaW5nIHZpc2libGUKaWYgd2UgaW1wbGVtZW50IGl0IGFzIGEgc2hlbGwgc2NyaXB0LCB0aGF0J3Mgb25seSBhIGZldyBta2RpcnM6IGJ1dCBJJ20gbm90PQo9MjAKY29udmluY2VkIGJ5IHNoZWxsIHNjcmlwdCBpbXBsZW1lbnRhdGlvbiwgc2luY2UgY2xvbmluZyBpcyBvbmUgY29tbWFuZCwgYnV0PQogd2U9MjAKbmVlZCBhbHNvIHRvIGJlIGFibGUgdG8gZmV0Y2ggYW5kIHB1bGwKClJlZ2FyZHMsCgpIZXJ2PUU5CgpMZSBkaW1hbmNoZSA4IG9jdG9icmUgMjAxNywgMTI6MjE6NTQgQ0VTVCBUaWJvciBEaWdhbmEgYSA9RTljcml0IDoKPiBXb3VsZCB3ZSBuZWVkIHRvIGhhdmUgdGhlIFVSTHMgbGlrZSB0aGVzZT8KPiBnaXRodWIvYXBhY2hlLyoqKi9yZXBvCj4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS8qbWF2ZW4tcGx1Z2lucyovbWF2ZW4tY2xlYW4tcGx1Z2luLwo+IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvKm1hdmVuLXNoYXJlZCovbWF2ZW4tc2hhcmVkLXV0aWxzLwo+PTIwCj4gT24gU3VuLCBPY3QgOCwgMjAxNyBhdCA0OjU1IEFNLCBIZXJ2PUU5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gdz0Kcm90ZToKPiA+IFRMRFI7ID0zRAo+ID4gUGVyaGFwcyB3ZSBjYW4gc3RhcnQgd2l0aCAyIHByb29mcyBvZiBjb25jZXB0Ogo+ID4gMS4gZnVsbCBnaXQgY2xvbmUgKyBKZW5raW5zIGpvYnMgZm9yIHRoZSA3IGV4aXN0aW5nIGdpdCByZXBvcyAod2l0aCA2Cj4gPiBhZGRpdGlvbmFsIG9uZXMgaW4gMiBkYXlzKQo+ID4gMi4gZ2l0IHNwbGl0IG9mIG9uZSBvZiB0aGUgYWdncmVnYXRvciBzdm4gdHJ1bms6IHNraW5zIG9yIGRveGlhLXRvb2xzIGM9CmFuCj4gPiBiZQo+ID4gZWFzeSBjaG9pY2VzIHNpbmNlIHRoZXkgYXJlIGxpZ2h0LCB3aGVyZSBwbHVnaW5zIG9yIHNoYXJlZCBhcmUgcGVyaGFwcyA9CnRvbwo+ID4gaGVhdnkuIFRoZSBvbmUgd29ya2luZyBvbiB0aGlzIFBvQyB3aWxsIG1ha2UgaGlzIGNob2ljZQo+ID49MjAKPiA+IHRoZW4gbW9yZSBkZXRhaWxlZCBhbnN3ZXIgaW5saW5lIHRoYXQgbGVhZCB0byB0aGlzIFBvQ3MgcHJvcG9zYWwKPiA+PTIwCj4gPiBSZWdhcmRzLAo+ID49MjAKPiA+IEhlcnY9RTkKPiA+PTIwCj4gPiBMZSBkaW1hbmNoZSA4IG9jdG9icmUgMjAxNywgMDA6MDI6MTAgQ0VTVCBUaWJvciBEaWdhbmEgYSA9RTljcml0IDoKPiA+ID4gSSBkb24ndCB0aGluayB0aGUgZGV2cyB3b3VsZCB3b3JrIG9uIGFsbCBhcnRpZmFjdHMocHJvamVjdHMpIGEgdGltZS4KPiA+PTIwCj4gPiBzdXJlLCBJIHRoaW5rIEknbSBvbmUgb2YgdGhlIGZldyBwZW9wbGUgd29ya2luZyBvbiBuZWFyIGV2ZXJ5dGhpbmcgKHdpdGgKPiA+IHJhcmUKPiA+IGV4Y2VwdGlvbnMgbGlrZSBTdXJlZmlyZSwgYXMgeW91IG5vdGljZWQgOikgKQo+ID4gYnV0IGZvciB1c3VhbCBjb250cmlidXRvciwgdGhlcmUgaXMgbm8gaXNzdWUKPiA+PTIwCj4gPiBJJ20gbm90IGEgZ2l0IGV4cGVydCwgdGhlbiBJIGRvbid0IGtub3cgaWYgZWFzeSAiZnVsbCBNYXZlbiBjbG9uZSIgaXMKPiA+IGJldHRlcgo+ID4gZG9uZSB3aXRoIGEgc2hlbGwgc2NyaXB0IG9yIHNvbWUgZ2l0IG1vZHVsZXMKPiA+PTIwCj4gPiA+IElmIHRoZSBuYW1pbmcgY29udmVudGlvbiBvZiByZXBvIGZvciBhIHBsdWdpbiB3b3VsZCBiZSBhcnRpZmFjdElkLCBsaT0Ka2UKPiA+ID4gL21hdmVuLWNsZWFuLXBsdWdpbiwgdGhlbiBldmVuIGVhc3kgdG8gZmlndXJlIG91dCB3aGljaCBvbmUgdG8gY2xvbmUuCj4gPiA+IFRoZSBtb3N0IGxpa2VseSB0aGUgZGV2IHdvdWxkIGp1c3QgY2xvbmUgb25lIHJlcG8gc2hlL2hlIGlzIGludGVyZXN0ZWQKPiA+ID4gaW4KPiA+ID4gYXQgdGhlIG1vbWVudCwgaS5lLiByZXBvc2l0b3J5IC9tYXZlbi1jbGVhbi1wbHVnaW4sIGxldCdzIHNheS4KPiA+ID4gSXQncyBnb29kIHRvIGF2b2lkIGFueSBzaGFyZWQgZmlsZXMgYWNyb3NzIHRoZW0sIGV2ZW4gSSBkb24ndCB0aGluayBkPQpldnMKPiA+ID4gc2hhcmUgc29tZSBpbiBzdm4gdG9kYXkuIFRoZSByZWxlYXNlIHByb2Nlc3Mgd291bGQgYmUgcXVpdGUgdXN1YWwsIGkuPQplLgo+ID49MjAKPiA+IG9uZQo+ID49MjAKPiA+ID4gcmVwbyA9M0Qgb25lIHByb2plY3QsIGFuZCBuZXcgZGV2cyBhbHJlYWR5IGhhdmUgdGhlc2UgZXhwZXJpZW5jZXMgd2hpPQpjaAo+ID49MjAKPiA+IHdpbGwKPiA+PTIwCj4gPiA+IGJlIHNpbXBsZSBmb3IgdGhlbSB0byBhZGFwdCBmYXN0ZXIuCj4gPj0yMAo+ID4gKzEKPiA+IHRoZSBvbmx5IGRyYXdiYWNrIEkgc2VlIGN1cnJlbnRseSBpcyB0aGF0IHRoZXJlIGlzIG5vIG5hdHVyYWwgZ3JvdXBpbmcsCj4gPiB0aGVuCj4gPiB3ZSBoYXZlIGEgZmxhdCBsaXQgb2YgbmVhciAxMDAgZ2l0IHJlcG9zIHdpdGhvdXQgdGhlIGN1cnJlbnQgc3RydWN0dXJlCj4gPiAocGx1Z2lucywgc2hhcmVkIGNvbXBvbmVudHMsIHNraW5zLCAuLi4pOiBJIHRoaW5rIGNvbXBvbmVudHMgc3RydWN0dXJlID0KaXMKPiA+IHVzZWZ1bCBmb3IgbWFpbnRlbmFiaWxpdHkKPiA+IGJ1dCBub3QgcmVhbGx5IGEgY29tcGxldGUgc2hvd3N0b3BwZXIKPiA+IGFuZCBwZXJoYXBzIHRoZSAiTWF2ZW4gZnVsbCBjbG9uZSIgdG9vbGluZyBjYW4gcmUtY3JlYXRlIHNvbWUgZ3JvdXBpbmcgPQp0bwo+ID4ga2VlcAo+ID4gdmlzaWJsZSBzdHJ1Y3R1cmUKPiA+PTIwCj4gPiBOb3csIHNvbWVvbmUgaGFzIHRvIGtub3cgaG93IHRvIGNyZWF0ZSBwZXItY29tcG9uZW50IGdpdCByZXBvIHdpdGggdGFncwo+ID4gKGVpdGhlciBieSByZXdvcmtpbmcgZXhpdGluZyBnaXQgbWlycm9ycywgZWl0aGVyIGJ5IHJlc3RhcnRpbmcgZnJvbSBzdm49CiksCj4gPiBhbmQKPiA+IHRoYXQncyBub3QgbWUgOikKPiA+PTIwCj4gPiBnaXZlbiB0aGUgdm9sdW1lIChhZGRpbmcgNzAgZ2l0IHJlcG9zIGZvciBNYXZlbiksIHdlJ2xsIGhhdmUgdG8gdGVsbCBpbj0KZnJhCj4gPiBhYm91dCBpdC4KPiA+PTIwCj4gPiBUaGVuIHRoZXJlIGlzIHRoZSBKZW5raW5zIGpvYnMgY29uZmlndXJhdGlvbjoKPiA+IC0gd2UgbmVlZCBlYXN5IEplbmtpbnNmaWxlIGluIGVhY2ggcmVwbwo+ID4gLSB3ZSBuZWVkIGVhc3kgODAgam9icyBjcmVhdGlvbiAobm8sIEkgd29uJ3QgbWFudWFsbHkgY3JlYXRlIDgwIGpvYnMKPiA+IHBlcnNvbmFsbHkpCj4gPiBBbmQgb25jZSBhZ2FpbiwgaW5mcmEgd2lsbCBoYXZlIHRvIGJlIGluIHRoZSBsb29wIChhdCBKZW5raW5zIHNpZGUgdGhpcwo+ID4gdGltZSksCj4gPiBzaW5jZSBJIGZlYXIgdGhlIGxvYWQgb24gSmVua2lucyBtYXN0ZXIgbm9kZSB3b24ndCBiZSBsaWdodDogcGVyaGFwcwo+ID4gdGhhdCdzCj4gPiB3aGVyZSBKZW5raW5zIGZvbGRlcnMgd2lsbCBiZSB1c2VmdWwsIGJ1dCBJJ20gbm90IGEgSmVua2lucyBleHBlcnQgZWl0aD0KZXIuCj4gPj0yMAo+ID49MjAKPiA+IElmIGV2ZXJ5dGhpbmcgc2VlbXMgZmVhc2libGUgdG8gc3BsaXQgb3VyIHN2biBjb2RlIGludG8gMSBnaXQgcmVwbyBwZXItCj4gPiBjb21wb25lbnQsIHdoaWNoIHdpbGwgYnJpbmcgdXMgdG8gImZ1bGwgTWF2ZW4gY29kZSIgYmVpbmcgbmVhciAxMDAgcmVwbz0KcywKPiA+IEknbQo+ID4gb2sgd2l0aCBpdC4KPiA+IFdlJ2xsIG5lZWQgdGhlIGhlbHAgb2YgbWlzYyBleHBlcnRzIG9uIEplbmtpbnMgYW5kIGdpdCB0byBwcmVwYXJlIHRoaW5ncwo+ID4gYXQKPiA+IHRoaXMgc2NhbGUuCj4gPj0yMAo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3ODItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIERlYyAxNyAxNjozNzowNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3ODItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMTEzNzAxMDg4NwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDE3IERlYyAyMDE3IDE2OjM3OjA1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjM2OTAgaW52b2tlZCBieSB1aWQgNTAwKTsgMTcgRGVjIDIwMTcgMTY6Mzc6MDQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYzNjE0IGludm9rZWQgYnkgdWlkIDUwMCk7IDE3IERlYyAyMDE3IDE2OjM3OjA0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjM2MDMgaW52b2tlZCBieSB1aWQgOTkpOyAxNyBEZWMgMjAxNyAxNjozNzowNCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTcgRGVjIDIwMTcgMTY6Mzc6MDQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBFNjI3NDE4MDcwNAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTcgRGVjIDIwMTcgMTY6Mzc6MDMgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMS4zClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xLjMgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQganRsSWV4akhkNW5BIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAxNyBEZWMgMjAxNyAxNjozNzowMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMTIuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMzRdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNURFMjc1RjFCRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTcgRGVjIDIwMTcgMTY6Mzc6MDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMzUgd2l0aCBNRQoJaWQgbjRjdDF3MDBRMjBVZmR5MDM0Y3RQZDsgU3VuLCAxNyBEZWMgMjAxNyAxNzozNjo1NCArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBTdW4sIDE3IERlYyAyMDE3IDE3OjM2OjU0ICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIERveGlhIHZlcnNpb24gMS44CkRhdGU6IFN1biwgMTcgRGVjIDIwMTcgMTc6MzY6NTMgKzAxMDAKTWVzc2FnZS1JRDogPDU2NTc5NDMuaFlvMk1vbVFXSEBnaWdhPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Qml0CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0idXMtYXNjaWkiCgpIaSwKCldlIHNvbHZlZCAxOSBpc3N1ZXM6Cmh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KcHJvamVjdElkPTEyMzE3MjMwJnZlcnNpb249MTIzMzQ4NDcmc3R5bGVOYW1lPVRleHQKICAgIApUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPXByb2plY3QlMjAlM0QlMjBET1hJQSUyMEFORAolMjBzdGF0dXMlMjAlM0QlMjBPcGVuJTIwT1JERVIlMjBCWSUyMGtleSUyMERFU0MlMkMlMjBwcmlvcml0eSUyMERFU0MKICAgIApTdGFnaW5nIHJlcG86Cmh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzODMvCmh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzODMvb3JnL2FwYWNoZS8KbWF2ZW4vZG94aWEvZG94aWEvMS44L2RveGlhLTEuOC1zb3VyY2UtcmVsZWFzZS56aXAKICAgIApTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKZG94aWEtMS44LXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOiA5N2JmNDM1ZGEwM2RkNGE4ZDVjZmMxYjBmMDcyNjUwOTA4NjNjZmYwCiAgICAKU3RhZ2luZyBzaXRlOgpodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9kb3hpYS9kb3hpYS1hcmNoaXZlcy9kb3hpYS1MQVRFU1QvCiAgICAKR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCiAgICAKVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KICAgIApbIF0gKzEKWyBdICswClsgXSAtMQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MTIwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBTZXAgMzAgMTY6MTY6MTggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTIwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEU0RjM1QzA1RgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDMwIFNlcCAyMDE3IDE2OjE2OjE4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTAzNjUgaW52b2tlZCBieSB1aWQgNTAwKTsgMzAgU2VwIDIwMTcgMTY6MTY6MTggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkwMjg1IGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIFNlcCAyMDE3IDE2OjE2OjE4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTAyNzAgaW52b2tlZCBieSB1aWQgOTkpOyAzMCBTZXAgMjAxNyAxNjoxNjoxOCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMzAgU2VwIDIwMTcgMTY6MTY6MTggKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBEQTVEQTE4MDhBRAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMzAgU2VwIDIwMTcgMTY6MTY6MTcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4yMDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMjAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTE9XPS0wLjcsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGxLVU5ub0J1M2lRMCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgMzAgU2VwIDIwMTcgMTY6MTY6MTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbW91dC5nbXgubmV0IChtb3V0LmdteC5uZXQgWzIxMi4yMjcuMTcuMjJdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgOTY4Qjc1RkRFNwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMzAgU2VwIDIwMTcgMTY6MTY6MTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gWzE5Mi4xNjguMS4xM10gKFs2Mi4xNTcuMzkuMjQzXSkgYnkgbWFpbC5nbXguY29tIChtcmdteDEwMgogWzIxMi4yMjcuMTcuMTY4XSkgd2l0aCBFU01UUFNBIChOZW1lc2lzKSBpZCAwTHNmclItMWREaDBKMmZROS0wMTJHeUY7IFNhdCwgMzAKIFNlcCAyMDE3IDE4OjE2OjE0ICswMjAwClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gV0FSIFBsdWdpbiB2ZXJzaW9uIDMuMi4wClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwKIEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPgpSZWZlcmVuY2VzOiA8ZDMwZWE0NzYtMDc5NC1mMDk2LWNlNjEtNWZiNDFiMDNiOTZhQGdteC5kZT4KRnJvbTogTWlrYWlsIE9zaXBvdiA8bW9zaXBvdkBnbXguZGU+Ck1lc3NhZ2UtSUQ6IDw1NzA5NjdmOS04MTUwLWYwNmEtNTIxMy1hZTVjNjg2NmYyZDBAZ214LmRlPgpEYXRlOiBTYXQsIDMwIFNlcCAyMDE3IDE4OjE2OjEyICswMjAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdPVzY0OyBydjo1Mi4wKSBHZWNrby8yMDEwMDEwMQogVGh1bmRlcmJpcmQvNTIuMy4wCk1JTUUtVmVyc2lvbjogMS4wCkluLVJlcGx5LVRvOiA8ZDMwZWE0NzYtMDc5NC1mMDk2LWNlNjEtNWZiNDFiMDNiOTZhQGdteC5kZT4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLVVTCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6VzZkMmRjSFJIVWNtb0JsS01jdmxBNXRidG9iV2ZyaEdOWnh5dmY4dndXd1RuWWF5T0QrCiA2anozMnJvcW9EZnRNeVJMQ3B4WS9EbVZBRjF1MTRRM0JkNGJGWjlvMUI0aFRRUTVKZ3BiYnY1NmlnOXkxckdXalVHNzhNUwogeHgzUGUrOU84dDFqMW5xWVVULzJkK2VtVkllb1JiZ0hjVE0xRXIxNUdXQm1nZnNDR0pQbjA1L0c1cEJGTmhYbUZwWTl2dkwKIDg0bFlVdm5aSTJjbkZkTlY2aG5SZz09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6YksxeXUycDhCdUE9OnFWY1B6ckIvTXJGWmZIc05sOXRyVU4KIG1zQWNreUtkTGdHVUNhN0JBNGhZYWpWMm4wV0o4VWkzZEVuajdiRHp3ZVNSRWNhSy9pRGZ3bzRzbk0wS2d1VG90eUxwemNHYjEKIG8wcTlwdGRjU3VsK25mME9ZWlBpNFBDbVVGajJwSW1aRWFwQnF6UnFQakROWXp2VWpHQzN1Ymx4RTVEM3ptZUptWVNLZDgzZmgKIFdYRkUxMTcxUFNsbzEvQkhjMEgybENXTFRrVTV6Zlh3NDVUdmtOTVR3Z1VieWh4TDNrNWhRSFpsRmU1ZUhMZ2hZTHdqczZ4cmIKIE5wYnN5cmFHQXkwVit3dFNEeWIxVElGdUM5NTBNYkxIVXlKRVRENmEyTFE4UXdyWFdDUTk2UTFyaGhkMVloRG1OUzNwVytUMWcKIDc4MU5MekJua2h5YUJpdHRQZ3RaaGFQNTc1VFFVM3dZajhOQnBXQ0M0NU1YaVdad2YrWG56UHlkRlAzb1hBR2NOdVlnanF3cUkKIHgvNmU0Y2R6RVZnQ1Zqb0dJSXNVMkV1QXY4K1QvTDMxcmVPV01PbWlwSGFaK3I0M3EvOHBYcWVkeGtNamU4cndabVVaUk5WaHYKIGhxS0g3Wjk0WVArc1lhUUJsVTRHR3BJTUZiUWd2R3Nnb3pwa3NvbStJODV1bWJUTk1qSElHeWJxSU1DWXVOSlZYOFZHZ24vdmUKIGVFdkpGVHJtOFVGN0ZzWWlXeHJLUFlwRFRWNGVtRE5xTUViRklSUDNGbytoL0RMWTRUWFNwa2ZpNENwcWlYeDhnMVRJWm9SbmwKIDNTVFhHK21HbTBqYXk1d1BMS2lRNVp6RHBodWk1TVF1RnBKZEQ3WGU1VWp0VHhicHh2RzE1Z3g4MGhNRm03VkdEd1ZUTkVXNTYKIFU1dFZIcnVzZUp5M3c4dzFVSk5peS8xRHpkcFloVnhEczJNWDM3aExMT2VoLytmQUp5UmJPMWoxK3ZmTjBjRUQyQ2NSS3J5MkIKIE5PY2VZR001YVJBTVhIV0N5TXlDQjZ4emVjTkdYRW9RYklHZ3Y4MU1HR1V1ME1TMXNyQUFaeWNoU2NVaU93NlhGb1llb1ZjbzUKIGFlKzEzRDRZTmI4QWJvSXc4NzRQZmhndk84Wmk3VDJkanh1eGc3MnpEN211RHJmc2JBPQoKQW0gMjAxNy0wOS0zMCB1bSAxNzo1NSBzY2hyaWViIEthcmwgSGVpbnogTWFyYmFpc2U6Cj4gSGksCj4gCj4gV2Ugc29sdmVkIDMgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZWN0SWQ9MTIzMTgxMjEmdmVyc2lvbj0xMjM0MTM3MiAKPiAKPiAKPiBUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9cHJvamVjdCUyMCUzRCUyME1XQVIlMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwdXBkYXRlZCUyMERFU0MgCj4gCj4gCj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzEKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzcxL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi13YXItcGx1Z2luLzMuMi4wL21hdmVuLXdhci1wbHVnaW4tMy4yLjAtc291cmNlLXJlbGVhc2UuemlwIAo+IAo+IAo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IG1hdmVuLXdhci1wbHVnaW4tMy4yLjAtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6IAo+IDVjNjYxZjQ1NTQ2MTYxNDc0OTEwMzZkZmFjNjg5YmE5ZGI5MGNlYzIKPiAKPiAKPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4td2FyLXBsdWdpbi1MQVRFU1QvCj4gCj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPiAKPiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgoKKzEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDUwNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgTm92IDE3IDExOjQ3OjU1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDUwNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBENTRFMjE3RjU3Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMTcgTm92IDIwMTcgMTE6NDc6NTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4NDcxMyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNyBOb3YgMjAxNyAxMTo0Nzo1NSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODQ2NDEgaW52b2tlZCBieSB1aWQgNTAwKTsgMTcgTm92IDIwMTcgMTE6NDc6NTUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NDYzMCBpbnZva2VkIGJ5IHVpZCA5OSk7IDE3IE5vdiAyMDE3IDExOjQ3OjU1IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAxNyBOb3YgMjAxNyAxMTo0Nzo1NSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDgzRENDQzY2MjgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDE3IE5vdiAyMDE3IDExOjQ3OjU0ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEuOApYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMS44IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEc1dFRkZjN3RVFwRyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCUZyaSwgMTcgTm92IDIwMTcgMTE6NDc6NTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDA2LnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI4XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDEyNTM4NUZEMDEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDE3IE5vdiAyMDE3IDExOjQ3OjUyICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDYzIHdpdGggTUUKCWlkIGF6bnIxdzAweDIwVWZkeTAzem5yVXk7IEZyaSwgMTcgTm92IDIwMTcgMTI6NDc6NTIgKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogRnJpLCAxNyBOb3YgMjAxNyAxMjo0Nzo1MiArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBEb3dubG9hZCBsaW5rcwpEYXRlOiBGcmksIDE3IE5vdiAyMDE3IDEyOjQ3OjUxICswMTAwCk1lc3NhZ2UtSUQ6IDw1NzczODg0Lk51dXYwREtvVkpAZ2lnYT4KSW4tUmVwbHktVG86IDxvcC55OXVoNG55d2tka2hyckBkZXNrdG9wLTJraHNrNDQ+ClJlZmVyZW5jZXM6IDxvcC55OXVoNG55d2tka2hyckBkZXNrdG9wLTJraHNrNDQ+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKdGhlIGRlZXBsaW5rIHVzZWQgdG8gd29yazogdGhhdCdzIHRoZSBvYmplY3RpdmUgb2Ygb3VyICJyZXNvdXJjZXMvZG93bmxvYWQuPQpjZ2k9MjAKKyB4ZG9jL2Rvd25sb2FkLnhtbC52bSIgcGF0dGVybiB0aGF0IHdhcyBjcmVhdGVkIHNvbWUgeWVhcnMgYWdvLgpkb3dubG9hZC5jZ2kgaXMgc3VwcG9zZWQgdG8gdXNlIHN0YW5kYXJkIEFTRiBzY3JpcHQgdGhhdCB1c2VzIGRvd25sb2FkLmh0bWw9CiBhcz0yMApjb250ZW50CgpJIGRvbid0IGtub3cgd2h5IHRoaXMgZG9lcyBub3Qgd29yayBhbnkgbW9yZS4KCkkgdmFndWVseSByZW1lbWJlciBzb21ldGhpbmcgYSBmZXcgeWVhcnMgYWdvIGFib3V0IGV4ZWN1dGFibGUgYml0LCBzb21lPTIwCmhlYWRhY2hlIEkgaGFkIGF0IHRoYXQgdGltZSB0byB0cnkgdG8gZml4IHdvcmtpbmcgd2l0aCBpbnRlcmVzdGVkIHBlb3BsZSAoaT0KZS49MjAKbm90IG1hbnksIGJ1dCBTZWJiIHdhcyBwcm9iYWJseSBvbmUgb2YgdGhlIGZldykuIFBlcmhhcHMgaXQncyB0aW1lIHRvIHJld29yPQprPTIwCm9uIGl0OiBJJ2xsIHNlZSB0b25pZ2h0IGlmIEkgY2FuIGZpbmQgcmVmZXJlbmNlcyBvbiB0aGUgYW5hbHlzaXMgYWxyZWFkeSBkbz0KbmU9MjAKYXQgdGhhdCB0aW1lLgoKUmVnYXJkcywKCkhlcnY9RTkKCkxlIHZlbmRyZWRpIDE3IG5vdmVtYnJlIDIwMTcsIDEyOjI3OjQ5IENFVCBSb2JlcnQgU2Nob2x0ZSBhID1FOWNyaXQgOgo+IFRoaXMgdG9waWMgZGVzZXJ2ZXMgYSBzZXBhcmF0ZSBtYWlsdGhyZWFkLgo+PTIwCj4gUXVvdGluZyBTZWJiIG9uIGEgZGlmZmVyZW50IHRocmVhZDoKPiAiVGhlIGRvd25sb2FkIGxpbmsgcG9pbnRzIHRvIHRoZSB0b3AtbGV2ZWwgb2YgdGhlIEFTRiBtaXJyb3Igc3lzdGVtLgo+PTIwCj4gVGhpcyBtYWtlcyBpdCB2ZXJ5IGhhcmQgdG8gdXNlLiIKPj0yMAo+IEFGQUlLIHRoZSBBU0Ygc2F5cyB0aGVyZSBzaG91bGQgYmUgYSBkb3dubG9hZCBidXR0b24gZm9yIGV2ZXJ5IHJlbGVhc2VkCj4gcHJvZHVjdC4KPiBJbiBjYXNlIG9mIE1hdmVuIHdlJ3JlIHRhbGtpbmcgYWJvdXQgYSBsb3Qgb2YgcHJvamVjdHMsIGFuZCBkb3dubG9hZHMKPiBzaG91bGQgYmUgcmVkaXJlY3RlZCB2aWEgYSBtaXJyb3IuCj4gSSBkb24ndCB0aGluayBpdCBpcyBwb3NzaWJsZSB0byBkbyBhIGRlZXBsaW5rIHRvIGEgc3BlY2lmaWMgZm9sZGVyLgo+PTIwCj4gQWxzbywgaW4gY2FzZSBvZiBNYXZlbiBwbHVnaW5zIGFuZCBvdGhlciBkZXBlbmRlbmNpZXMgKGFsbCBleGNsdWRpbmcgdGhlCj4gTWF2ZW4gZGlzdHJpYnV0aW9uIGl0c2VsZikgaXQgaXMga2luZCBvZiBzdHJhbmdlIHRvIHByb3ZpZGUgYSBkb3dubG9hZAo+IGxpbmsgd2hlbiB3ZSBjb3VsZCBhc3N1bWUgdGhhdCB0aGV5IG9ubHkgd2FudCB0byBoYXZlIHRoZQo+IHBsdWdpbi9kZXBlbmRlbmN5IFhNTCBmcmFnbWVudC4KPj0yMAo+IEkgYWdyZWUgdGhhdCB0aGUgbGluayBpcyBraW5kIG9mIHVzZWxlc3MgcmlnaHQgbm93LCBidXQgYWxzbyB0aGUgYmVzdCB3ZQo+IGNhbiBkbyB3aGVuIHByb3ZpZGluZyBhIGRpcmVjdCBkb3dubG9hZCBsaW5rLgo+IElmIHRoZXJlJ3Mgbm8gd2F5IHRvIGRvIGEgZGVlcGxpbmssIEknZCBwcmVmZXIgdG8gcmVtb3ZlIGl0IGZyb20gdGhlIHBhZ2VzCj4gYW5kIGFubm91bmNlbWVudHMuCj49MjAKPiB0aGFua3MsCj4gUm9iZXJ0Cj49MjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MDc1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBTZXAgMjAgMDY6MDc6MzEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDc1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDVBRDA4MTBGMTEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyMCBTZXAgMjAxNyAwNjowNzozMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDUxNTc0IGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIFNlcCAyMDE3IDA2OjA3OjI2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MTUwMiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBTZXAgMjAxNyAwNjowNzoyNiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUxNDkxIGludm9rZWQgYnkgdWlkIDk5KTsgMjAgU2VwIDIwMTcgMDY6MDc6MjUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDIwIFNlcCAyMDE3IDA2OjA3OjI1ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMjhENEIxODQ5MTEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDIwIFNlcCAyMDE3IDA2OjA3OjI1ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuNQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC41IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCUtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBtSW5PY2hpN2NlUXogZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsIDIwIFNlcCAyMDE3IDA2OjA3OjIzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwMy5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyNV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAzNEZCMjVGQUM5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyMCBTZXAgMjAxNyAwNjowNzoyMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ3OSB3aXRoIE1FCglpZCBCaTdIMXcwMEIyMFVmZHkwM2k3SHVuOyBXZWQsIDIwIFNlcCAyMDE3IDA4OjA3OjE3ICswMjAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFdlZCwgMjAgU2VwIDIwMTcgMDg6MDc6MTcgKzAyMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIEpNb2QgUGx1Z2luIHZlcnNpb24gMy4wLjAtYWxwaGEtMSAoRmlyc3QgUHVibGljIFJlbGVhc2UpIFRha2UgMwpEYXRlOiBXZWQsIDIwIFNlcCAyMDE3IDA4OjA3OjE3ICswMjAwCk1lc3NhZ2UtSUQ6IDw1ODE3Mjc4Lk5JQ3ZRdmljRXlAZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zNS1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpJbi1SZXBseS1UbzogPDIxODI3NDg2LmNkc1JMQUZzcGtAZ2lnYT4KUmVmZXJlbmNlczogPDcwYzBiMWE4LWZlZDYtZjRiZi0xZWQzLTY4NjI0OTMzNjkzYkBnbXguZGU+IDwyMTgyNzQ4Ni5jZHNSTEFGc3BrQGdpZ2E+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKc29ycnksIHRoZSBmYWlsdXJlIHdhcyB3aXRoIGFuIG9sZCBqZGsgMS45KzEzNAp3aXRoIGxhdGVzdCBqZGsgMS45KzE4MSwgZXZlcnl0aGluZyBpcyBvawoKdGhlbiBoZXJlIGlzIG15ICsxCgpub3RpY2Ugb25lIFdBUk5JTkc6CltJTkZPXSBCdWlsZGluZzogbm9uLWRlZmF1bHQtY29uZmlnLWhlYWRlcmZpbGVzL3BvbS54bWwKW0lORk9dIHJ1biBwb3N0LWJ1aWxkIHNjcmlwdCB2ZXJpZnkuZ3Jvb3Z5CldBUk5JTkc6IEFuIGlsbGVnYWwgcmVmbGVjdGl2ZSBhY2Nlc3Mgb3BlcmF0aW9uIGhhcyBvY2N1cnJlZApXQVJOSU5HOiBJbGxlZ2FsIHJlZmxlY3RpdmUgYWNjZXNzIGJ5IG9yZy5jb2RlaGF1cy5ncm9vdnkucmVmbGVjdGlvbi5DYWNoZWQ9CkNsYXNzPTIwCihmaWxlOi8ubTIvcmVwb3NpdG9yeS9vcmcvY29kZWhhdXMvZ3Jvb3Z5L2dyb292eS1hbGwvMi40LjgvZ3Jvb3Z5LQphbGwtMi40LjguamFyKSB0byBtZXRob2QgamF2YS5sYW5nLk9iamVjdC5maW5hbGl6ZSgpCldBUk5JTkc6IFBsZWFzZSBjb25zaWRlciByZXBvcnRpbmcgdGhpcyB0byB0aGUgbWFpbnRhaW5lcnMgb2Y9MjAKb3JnLmNvZGVoYXVzLmdyb292eS5yZWZsZWN0aW9uLkNhY2hlZENsYXNzCldBUk5JTkc6IFVzZSAtLWlsbGVnYWwtYWNjZXNzPTNEd2FybiB0byBlbmFibGUgd2FybmluZ3Mgb2YgZnVydGhlciBpbGxlZ2FsPQo9MjAKcmVmbGVjdGl2ZSBhY2Nlc3Mgb3BlcmF0aW9ucwpXQVJOSU5HOiBBbGwgaWxsZWdhbCBhY2Nlc3Mgb3BlcmF0aW9ucyB3aWxsIGJlIGRlbmllZCBpbiBhIGZ1dHVyZSByZWxlYXNlCltJTkZPXSAgICAgICAgICAgbm9uLWRlZmF1bHQtY29uZmlnLWhlYWRlcmZpbGVzL3BvbS54bWwgLi4uLi4uLi4uLi4gU1VDQ0VTUz0KICgyLjQ9MjAKcykKClJlZ2FyZHMsCgpIZXJ2PUU5CgpMZSBtZXJjcmVkaSAyMCBzZXB0ZW1icmUgMjAxNywgMDc6NTI6MzkgQ0VTVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPiB0ZXN0ZWQgIm12biB2ZXJpZnkiIGFuZCBnb3QgZmFpbHVyZSBmb3IgZXZlcnkgSVQ6Cj49MjAKPiBDYXVzZWQgYnk6IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLlBsdWdpbkV4ZWN1dGlvbkV4Y2VwdGlvbjogRXhlY3V0aW9uCj4gZGVmYXVsdC1jcmVhdGUgb2YgZ29hbCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM6bWF2ZW4tam1vZC1wbHVnaW46My4wLjAtCj4gYWxwaGEtMTpjcmVhdGUgZmFpbGVkOiA5Cj4gCWF0Cj4gb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW4uRGVmYXVsdEJ1aWxkUGx1Z2luTWFuYWdlci5leGVjdXRlTW9qbyhEZWZhdWx0QnVpbD0KZFBsCj4gdWdpbk1hbmFnZXIuamF2YTogMTQ4KQo+IAlhdAo+IG9yZy5hcGFjaGUubWF2ZW4ubGlmZWN5Y2xlLmludGVybmFsLk1vam9FeGVjdXRvci5leGVjdXRlKE1vam9FeGVjdXRvci5qYXY9CmE6Cj4gMjA4KQo+IAkuLi4gMjAgbW9yZQo+IENhdXNlZCBieTogamF2YS5sYW5nLkFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbjogOQo+IAlhdCBvcmcub2JqZWN0d2ViLmFzbS5DbGFzc1JlYWRlci5yZWFkVVRGOChVbmtub3duIFNvdXJjZSkKPiAJYXQgb3JnLm9iamVjdHdlYi5hc20uQ2xhc3NSZWFkZXIuYShVbmtub3duIFNvdXJjZSkKPiAJYXQgb3JnLm9iamVjdHdlYi5hc20uQ2xhc3NSZWFkZXIucmVhZE1vZHVsZShVbmtub3duIFNvdXJjZSkKPiAJYXQgb3JnLm9iamVjdHdlYi5hc20uQ2xhc3NSZWFkZXIuYShVbmtub3duIFNvdXJjZSkKPiAJYXQgb3JnLm9iamVjdHdlYi5hc20uQ2xhc3NSZWFkZXIuYWNjZXB0KFVua25vd24gU291cmNlKQo+IAlhdCBvcmcub2JqZWN0d2ViLmFzbS5DbGFzc1JlYWRlci5hY2NlcHQoVW5rbm93biBTb3VyY2UpCj4gCWF0Cj4gb3JnLmNvZGVoYXVzLnBsZXh1cy5sYW5ndWFnZXMuamF2YS5qcG1zLkFzbU1vZHVsZUluZm9QYXJzZXIucGFyc2UoQXNtTW9kdT0KbGVJCj4gbmZvUGFyc2VyLmphdmE6IDkwKQo+IAlhdAo+IG9yZy5jb2RlaGF1cy5wbGV4dXMubGFuZ3VhZ2VzLmphdmEuanBtcy5Bc21Nb2R1bGVJbmZvUGFyc2VyLmdldE1vZHVsZURlc2M9CnJpcAo+IHRvcihBc21Nb2R1bGVJbmZvUGFyc2VyLmphdmE6IDU0KQo+IAlhdAo+IG9yZy5jb2RlaGF1cy5wbGV4dXMubGFuZ3VhZ2VzLmphdmEuanBtcy5Mb2NhdGlvbk1hbmFnZXIucmVzb2x2ZVBhdGhzKExvY2E9CnRpbwo+IG5NYW5hZ2VyLmphdmE6IDExNykKPiAJYXQKPiBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMuam1vZC5KTW9kQ3JlYXRlTW9qby5wcmVwYXJlUGF0aHMoSk1vZENyZWF0ZU1vam8uPQpqYXYKPiBhOiA0ODQpCj4gCWF0Cj4gb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zLmptb2QuSk1vZENyZWF0ZU1vam8uZXhlY3V0ZShKTW9kQ3JlYXRlTW9qby5qYXZhOj0KMzA2Cj4gKSBhdAo+IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLkRlZmF1bHRCdWlsZFBsdWdpbk1hbmFnZXIuZXhlY3V0ZU1vam8oRGVmYXVsdEJ1aWw9CmRQbAo+IHVnaW5NYW5hZ2VyLmphdmE6IDEzNykKPiAJLi4uIDIxIG1vcmUKPj0yMAo+IFJlZ2FyZHMsCj49MjAKPiBIZXJ2PUU5Cj49MjAKPiBMZSBkaW1hbmNoZSAxNyBzZXB0ZW1icmUgMjAxNywgMTM6NDA6NTAgQ0VTVCBLYXJsIEhlaW56IE1hcmJhaXNlIGEgPUU5Y3JpPQp0IDoKPiA+IEhpLAo+ID49MjAKPiA+IHRoaXMgaXMgdGhlIFZPVEUgZm9yIHRoZSBmaXJzdCBwdWJsaWMgcmVsZWFzZSBmb3IgTWF2ZW4gSk1vZCBQbHVnaW4uLi4KPiA+PTIwCj4gPiBXZSBzb2x2ZWQgNCBpc3N1ZXM6Cj4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamVjdElkPTNEMTIzMj0KMTQzMyYKPiA+IHZlIHJzaW9uPTNEMTIzNDEzNjMKPiA+PTIwCj4gPiBUaGVyZSBhcmUgY3VycmVudGx5IG5vIGlzc3VlcyBsZWZ0IGluIEpJUkEuCj4gPj0yMAo+ID4gSWYgeW91IGhhdmUgYW55IGlzc3VlIHRvIHJlcG9ydCBwbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBKSVJBCj4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvcHJvamVjdHMvTUpNT0QKPiA+PTIwCj4gPiBTdGFnaW5nIHJlcG86Cj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY5Lwo+ID49MjAKPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjkvb3JnL2FwYWNoPQplL20KPiA+IGF2Cj4gPiBlbi9wbHVnaW5zL21hdmVuLWptb2QtcGx1Z2luLzMuMC4wLWFscGhhLTEvbWF2ZW4tam1vZC1wbHVnaW4tMy4wLjAtYWxwaD0KYS0KPiA+IDEtcyBvdXJjZS1yZWxlYXNlLnppcAo+ID49MjAKPiA+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+ID4gbWF2ZW4tam1vZC1wbHVnaW4tMy4wLjAtYWxwaGEtMS1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMToKPiA+IGFhMDBiOThjNTM0ZjI0ZTgxNDFlZTBiZWFjZTJhZmYzYmU4OTk2ODgKPiA+PTIwCj4gPiBTdGFnaW5nIHNpdGU6Cj4gPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1qbW9kLXBsdWdpbi1MQVRFU1QvCj4gPj0yMAo+ID4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+ID49MjAKPiA+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4gPj0yMAo+ID4gWyBdICsxCj4gPiBbIF0gKzAKPiA+IFsgXSAtMQo+ID49MjAKPiA+IEtpbmQgcmVnYXJkcwo+ID4gS2FybCBIZWlueiBNYXJiYWlzZQo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQyMDctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE9jdCAxMCAxNjo0MjozNyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyMDctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMEVERTkxMDdERgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDEwIE9jdCAyMDE3IDE2OjQyOjM3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTk0NjYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgT2N0IDIwMTcgMTY6NDI6MzYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk5Mzk2IGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIE9jdCAyMDE3IDE2OjQyOjM2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTkzODUgaW52b2tlZCBieSB1aWQgOTkpOyAxMCBPY3QgMjAxNyAxNjo0MjozNiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMTAgT2N0IDIwMTcgMTY6NDI6MzYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA4RUJBRTE5NDNFRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTAgT2N0IDIwMTcgMTY6NDI6MzUgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC41ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjUgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBzX3puMWs5VmFORk4gZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUdWUsIDEwIE9jdCAyMDE3IDE2OjQyOjMzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwNy5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyOV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAzRUZEMTVGQUVBCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxMCBPY3QgMjAxNyAxNjo0MjozMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQxNCB3aXRoIE1FCglpZCBLc2lTMXcwMGIyMFVmZHkwM3NpU3pxOyBUdWUsIDEwIE9jdCAyMDE3IDE4OjQyOjI2ICswMjAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFR1ZSwgMTAgT2N0IDIwMTcgMTg6NDI6MjYgKzAyMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogbWlncmF0aW5nIHNvbWUgY29kZSB0byBHaXQKRGF0ZTogVHVlLCAxMCBPY3QgMjAxNyAxODo0MjoyNiArMDIwMApNZXNzYWdlLUlEOiA8NTg2OTc5Ni43dmkxUFR6MG1KQGdpZ2E+ClVzZXItQWdlbnQ6IEtNYWlsLzUuMi4zIChMaW51eC80LjEwLjAtMzUtZ2VuZXJpYzsgS0RFLzUuMzEuMDsgeDg2XzY0OyA7ICkKSW4tUmVwbHktVG86IDwxNjAwOTEwLkd0ZHZ4TTFLOTFAZ2lnYT4KUmVmZXJlbmNlczogPDMwMDY0NzEuR3JTRmpTSmpHWEBnaWdhPiA8MTczMzA3OS5mQkpvemdsNXZZQGdpZ2E+IDwxNjAwOTEwLkd0ZHZ4TTFLOTFAZ2lnYT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpqaXJhIGlzc3VlIGNyZWF0ZWQ6Cmh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvSU5GUkEtMTUyNTMKClJlZ2FyZHMsCgpIZXJ2PUU5CgpMZSBzYW1lZGkgNyBvY3RvYnJlIDIwMTcsIDEyOjMyOjAwIENFU1QgSGVydj1FOSBCT1VURU1ZIGEgPUU5Y3JpdCA6Cj4gSSB3cm90ZSBhIGxpdHRsZSBzaGVsbCBzY3JpcHQgdG8gY2hlY2sgZGlmZmVyZW5jZXMgYmV0d2VlbiB0YWdzIGluIHN2biBhbmQKPiBnaXQgY2hlY2tvdXQKPiB0aGUgb25seSBkaWZmZXJlbmNlcyBJIGZvdW5kIGZvciB0aGUgNiBnaXQgcmVwb3MgYXJlOgo+IDEuIGVtcHR5IGRpcnMgKHdoaWNoIGV4aXN0IGluIHN2biBidXQgYXJlIHBydW5lZCBpbiBnaXQpCj4gMi4gb25lIHN0cmFnZSBjYXNlIGluIGVuZm9yY2VyLTEuMiB3aGVyZSBhIGZldyBmaWxlcyBzZWVtIHRvIGhhdmUgbmV3bGluZXMKPiBpc3N1ZXMKPj0yMAo+IHRvIG1lLCB0aGlzIGNhbiBiZSBzYWZlbHkgaWdub3JlZAo+PTIwCj4gaWYgbm9ib2R5IG9iamVjdHMsIGluIDcyaCwgSSdsbCBjcmVhdGUgSU5GUkEgamlyYSBpc3N1ZSB0byBzd2l0Y2ggZm9sbG93aT0KbmcKPiA2IGNvbXBvbmVudHMgZnJvbSBzdm4gdG8gdGhlIGN1cnJlbnQgZ2l0IG1pcnJvcjoKPiAtIERveGlhIGNvcmUKPiAtIERveGlhIFNpdGV0b29scwo+IC0gRW5mb3JjZXIKPiAtIEp4cgo+IC0gUGx1Z2luIFRvb2xzCj4gLSBSZWxlYXNlCj49MjAKPj0yMAo+IFJlZ2FyZHMsCj49MjAKPiBIZXJ2PUU5Cj49MjAKPiBMZSBzYW1lZGkgNyBvY3RvYnJlIDIwMTcsIDA0OjQ3OjMyIENFU1QgSGVydj1FOSBCT1VURU1ZIGEgPUU5Y3JpdCA6Cj4gPiByZS1yZWFkaW5nIG91ciBtaWdyYXRpb24gcHJvY2VzcyBkb2N1bWVudGF0aW9uIFsxXSwgSSBzZWUgImNoZWNrCj4gPiBlc3BlY2lhbGx5Cj4gPiBiZWhhdmlvdXIgb24gY2hlY2tpbmcgb3V0IHRhZyIKPiA+PTIwCj4gPiBJIHN1cHBvc2UgdGhhdCB3ZSBjb3VsZCBjb21wYXJlIGNvbnRlbnQgYmV0d2VlbiBnaXQgY2hlY2tvdXQgYW5kIHN2bgo+ID4gY2hlY2tvdXQgZm9yIEhFQUQgYW5kIGV2ZXJ5IHBhc3QgcmVsZWFzZQo+ID49MjAKPiA+IGRpZCBzb21lYm9keSBwcmVwYXJlIGEgc2hlbGwgc2NyaXB0IGZvciB0aGF0Pwo+ID49MjAKPiA+IFJlZ2FyZHMsCj4gPj0yMAo+ID4gSGVydj1FOQo+ID49MjAKPiA+IFsxXSBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL0dpdAo+ID4gK01pZ3JhdGlvbiNHaXRNaWdyYXRpb24tTWlncmF0aW9ucHJvY2Vzc2Rlc2NyaXB0aW9uCj4gPj0yMAo+ID4gTGUgdmVuZHJlZGkgNiBvY3RvYnJlIDIwMTcsIDAwOjM0OjExIENFU1QgSGVydj1FOSBCT1VURU1ZIGEgPUU5Y3JpdCA6Cj4gPiA+IGdyZWF0LCB0aGFuayB5b3UgZm9yIHlvdXIgaGVscAo+ID4gPj0yMAo+ID4gPiBpbiBmYWN0LCBBRkFJSywgQXBhY2hlIGhhcyBhbHJlYWR5IGF1dG9tYXRpYyBzdm4yZ2l0IGV4cG9ydHMgWzFdIHRoYXQKPiA+ID4gYXJlCj4gPiA+IHRoZW4gbWlycm9yZWQgdG8gZ2l0aHViLgo+ID4gPiBUaGVuIHdlIGFscmVhZHkgaGF2ZToKPiA+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRveGlhLwo+ID4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZG94aWEtc2l0ZXRvb2xzLwo+ID4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZW5mb3JjZXIvCj4gPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1qeHIvCj4gPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW4tdG9vbHMvCj4gPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1yZWxlYXNlLwo+ID4gPj0yMAo+ID4gPiBJIHN1cHBvc2UgdGhlc2UgY291bGQgYmUgdGhlIG5hdHVyYWwgdGFyZ2V0cy4KPiA+ID4gQnV0IEkgZG9uJ3QgcmVhbGx5IHNlZSB3aGF0IGNoZWNrcyB0byBkbyBvbiB0aGVzZS4KPiA+ID49MjAKPiA+ID4gSSBzdXBwb3NlIHRoYXQgb25jZSB3ZSBhcmUgY29udmluY2VkIHRoaXMgY29udGVudCBpcyBvaywgd2UgY2FuIGFzawo+ID4gPiBpbmZyYQo+ID4gPiB0byBzd2l0Y2ggdGhlc2UgdG8gdGhlIGNhbm9uaWNhbCBzb3VyY2UgKGFuZCBkaXNhYmxlIHRoZSBzdm4yZ2l0Cj4gPiA+IGV4cG9ydHMpCj4gPiA+PTIwCj4gPiA+IERvIHlvdSBzZWUgYW55IGlzc3VlIGluIHRoZXNlIHJlcG9zPwo+ID4gPj0yMAo+ID4gPiBSZWdhcmRzLAo+ID4gPj0yMAo+ID4gPiBIZXJ2PUU5Cj4gPiA+PTIwCj4gPiA+IFsxXSBodHRwOi8vZ2l0LmFwYWNoZS5vcmcvCj4gPiA+PTIwCj4gPiA+IExlIGpldWRpIDUgb2N0b2JyZSAyMDE3LCAxMTo0NToyMyBDRVNUIERlamFuIFN0b2phZGlub3ZpYyBhID1FOWNyaXQgOgo+ID4gPiA+IENvdW50IG1lIGluIChmb3IgYm90aCBhY3R1YWwgbWlncmF0aW9uIGFuZCByZWxhdGVkIHRhc2tzKS4KPiA+ID4gPj0yMAo+ID4gPiA+IE15IHdlYXBvbiBvZiBjaG9pY2UgZm9yIFNWTiAtLT4+R0lUIHdvdWxkIGJlOgo+ID4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9uaXJ2ZHJ1bS9zdm4yZ2l0IChJIG1hbmFnZWQgdG8gbW92ZSBkb3plbiBvZiByZXA9Cm9zCj4gPiA+ID4gZmV3Cj4gPiA+ID4geWVhcnMgYWdvKS4KPiA+ID4gPj0yMAo+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4gRGVqYW4KPiA+ID4gPj0yMAo+ID4gPiA+IE9uIDIwMTctMTAtMDQgMDE6NDgsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cm89CnRlOgo+ID4gPiA+ID4gSSdkIGxpa2UgdG8gd29yayBvbiBQbHVnaW4gVG9vbHMgd2l0aCBnaXQKPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBXaGlsZSBhdCBpdCwgbG9va2luZyBhdCBvdXIgcGxhbiBbMV0sIEkgc2VlIHdlIGhhdmUgYSBmZXcgb3RoZXIKPiA+ID4gPiA+IGNvbXBvbmVudHMKPiA+ID4gPiA+IHRoYXQgYXJlIHJlYWR5IHRvIG1pZ3JhdGU6Cj4gPiA+ID4gPiAtIERveGlhIGNvcmUKPiA+ID4gPiA+IC0gRG94aWEgU2l0ZXRvb2xzCj4gPiA+ID4gPiAtIEVuZm9yY2VyCj4gPiA+ID4gPiAtIEp4cgo+ID4gPiA+ID4gLSBQbHVnaW4gVG9vbHMKPiA+ID4gPiA+IC0gUmVsZWFzZQo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IFdoYXQgY2hlY2tzIGFyZSByZXF1aXJlZCBiZWZvcmUgc3dpdGNoaW5nIHRoZXNlIDYgY29tcG9uZW50cz8KPiA+ID4gPiA+IEFueSB2b2x1bnRlZXI/Cj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiA+PTIwCj4gPiA+ID4gPiBIZXJ2PUMzPUE5Cj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gWzFdIGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvTUFWRU4vR2l0K01pZ3JhdGk9Cm9uCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0tCj4gPiA+ID4gPiAtCj4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+PTIwCj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KPTJELQo+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj0yMAo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID49MjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzNzMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE9jdCAzMSAxNTowODoxMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzNzMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNEU4QTAxMEFCRAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDMxIE9jdCAyMDE3IDE1OjA4OjEwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTU5MDkgaW52b2tlZCBieSB1aWQgNTAwKTsgMzEgT2N0IDIwMTcgMTU6MDg6MTAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE1ODIzIGludm9rZWQgYnkgdWlkIDUwMCk7IDMxIE9jdCAyMDE3IDE1OjA4OjA5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTU4MDggaW52b2tlZCBieSB1aWQgOTkpOyAzMSBPY3QgMjAxNyAxNTowODowOSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMzEgT2N0IDIwMTcgMTU6MDg6MDkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBEN0FFMDE4MDYwRgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMzEgT2N0IDIwMTcgMTU6MDg6MDggKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjk4ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTAuOTggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgZWhfTmhEeTVMdkg5IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVHVlLCAzMSBPY3QgMjAxNyAxNTowODowNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMTMuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMzVdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNkNBOEE2MEYwQQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMzEgT2N0IDIwMTcgMTU6MDg6MDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkNzIgd2l0aCBNRQoJaWQgVUY4MTF3MDBBMjBVZmR5MDNGODFmQTsgVHVlLCAzMSBPY3QgMjAxNyAxNjowODowMSArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBUdWUsIDMxIE9jdCAyMDE3IDE2OjA4OjAxICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogbWlncmF0aW5nIHNvbWUgY29kZSB0byBHaXQKRGF0ZTogVHVlLCAzMSBPY3QgMjAxNyAxNjowODowMSArMDEwMApNZXNzYWdlLUlEOiA8NTg3ODExMC5UTUVvdDZWRXV1QGdpZ2E+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKQXMgeW91IHByb2JhYmx5IG5vdGljZWQsIEkgbWlncmF0ZWQgbWF2ZW4tZGlzdC10b29sIFsxXSB0byBnaXQsIHVzaW5nIHNlbGYtCnNlcnZpY2UgR2l0Ym94IGZvciB0aGUgZW1wdHkgcmVwbyBjcmVhdGlvbiBhbmQgYSBtaWdyYXRlLXNhbmRib3guc2ggc2hlbGw9MjAKc2NyaXB0IFsyXSB0byBwb3B1bGF0ZSB0aGVtIChhZnRlciBTbGluZyBleGFtcGxlKQoKSXQgd29ya2VkIGxpa2UgYSBjaGFybSEKCklmIG5vYm9keSBvYmplY3RzLCBpbiA3MmgsIEknbGwgdXNlIG1pZ3JhdGUtcG9tLnNoIGFuZCBtaWdyYXRlLXNraW5zLnNoIHRvPQo9MjAKY3JlYXRlIDQgbmV3IHJlcG9zOiBtYXZlbi1hcGFjaGUtcGFyZW50LCBtYXZlbi1wYXJlbnQsIG1hdmVuLWRlZmF1bHQtc2tpbiBhPQpuZD0yMAptYXZlbi1mbHVpZG8tc2tpbgpQbGVhc2UgdGFrZSB0aW1lIHRvIGV4ZWN1dGUgdGhlIHNjcmlwdHMgZm9yIHlvdXJzZWxmIGFuZCBjaGVjayB0aGF0IHRoZSByZXM9CnVsdD0yMAppcyBvayBmb3IgeW91LgoKSSBhbHJlYWR5IHByZXBhcmVkIG1pZ3JhdGUtcGx1Z2lucy5zaCBhbmQgbWlncmF0ZS1zaGFyZWQuc2ggc2NyaXB0czogSSdtPTIwCndhaXRpbmcgZm9yIEplbmtpbnMgaW50ZWdyYXRpb24gcmVzdWx0cyBiZWZvcmUgdHJ5aW5nIHRvIG1pZ3JhdGUgdGhpcyBwYXJ0LD0KPTIwCmJ1dCB5b3UgY2FuIGFsc28gdGFrZSB0aW1lIHRvIGNoZWNrIHRoYXQgdGhlIHJlc3VsdGluZyBnaXQgcmVwb3MgZnJvbSB0aGU9MjAKc2NyaXB0cyBhcmUgZ29vZC4KClJlZ2FyZHMsCgpIZXJ2PUU5CgpbMV0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1kaXN0LXRvb2wvCgpbMl0gaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy92aWV3dmMvbWF2ZW4vc2FuZGJveC90cnVuay9zY3JpcHRzL2dpdC8KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDAyMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgU2VwIDE0IDA2OjE2OjE2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDAyMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA0REIxOTFBMTg1Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMTQgU2VwIDIwMTcgMDY6MTY6MTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyODg1MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNCBTZXAgMjAxNyAwNjoxNjoxNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjg3NzIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTQgU2VwIDIwMTcgMDY6MTY6MTUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyODc0NSBpbnZva2VkIGJ5IHVpZCA5OSk7IDE0IFNlcCAyMDE3IDA2OjE2OjE1IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAxNCBTZXAgMjAxNyAwNjoxNjoxNSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDFDMzU4MUE1N0YyCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAxNCBTZXAgMjAxNyAwNjoxNjoxNSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDAuNQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjUgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0ZSRUVNQUlMX1JFUExZPTEsIEtBTV9BU0NJSV9ESVZJREVSUz0wLjgsCglLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgS0FNX05VTVNVQkpFQ1Q9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgeDJCX09DQktPSy1MIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVGh1LCAxNCBTZXAgMjAxNyAwNjoxNjoxMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDEuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjNdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgOTZBQUE1RkI5NgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMTQgU2VwIDIwMTcgMDY6MTY6MTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMjQgd2l0aCBNRQoJaWQgOUpHNDF3MDBBMjBVZmR5MDNKRzRiYzsgVGh1LCAxNCBTZXAgMjAxNyAwODoxNjowNCArMDIwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBUaHUsIDE0IFNlcCAyMDE3IDA4OjE2OjA0ICswMjAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMQpEYXRlOiBUaHUsIDE0IFNlcCAyMDE3IDA4OjE2OjA0ICswMjAwCk1lc3NhZ2UtSUQ6IDw1OTYwMjIwLlBuZU15eTh6TTZAZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zMy1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpJbi1SZXBseS1UbzogPDIwNTc5NDguazFHeWZqdUdYZEBnaWdhPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPiA8Q0ErblBuTXlTMnExdWZhVytTNnNtaFpaMUpjeGhmOWhZNS0zbkJKLWlDV2VqUFVBRFZBQG1haWwuZ21haWwuY29tPiA8MjA1Nzk0OC5rMUd5Zmp1R1hkQGdpZ2E+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCisxCndvcmtzIHdlbGwgaW4gZXZlcnl0aGluZyBJIHRlc3RlZCwgY29sb3VyIG9uIFdpbmRvd3Mgd2l0aCBHaXRCYXNoIG9yIEN5Z3dpbj0KIG9yPTIwCmFueSBvdGhlciBVbml4IGxheWVyIHRha2VuIGFwYXJ0IChpbiBmYWN0IGFueXRoaW5nIG9uIFdJbmRvd3MgdGhhdCBwcm92aWRlcz0KPTIwCiJURVJNPTNEeHRlcm0iKQoKd29ya2Fyb3VuZCBmb3IgdGhvc2UgV2luZG93cyB1c2VyczogYWRkIC1EamFuc2kuZm9yY2U9M0R0cnVlIHRvIE1BVkVOX09QVFMKdGhlIG9ubHkgZHJhd2JhY2sgd2lsbCBvbmx5IGJlIGlmIHlvdSByZWRpcmVjdCBzdGRvdXQvc3RkZXJyIHRvIGEgZmlsZTogQU5TPQpJPTIwCmVzY2FwZSBjb2RlcyB3aWxsIGJlIHByZXNlbnQsIHVubGVzcyB5b3UgcnVuICJtdm4gLUIiIG9yIGRpc2FibGUgY29sb3IgYXQ9MjAKTWF2ZW4gbGV2ZWwKCkkga25vdywgdGhpcyBpcyBhIGxpdHRsZSBiaXQgdHJpY2t5LCBidXQgbm90IHNvIGNvbXBsZXggKGl0IG1heSBoZWxwIHBlb3BsZT0KPTIwCmRpc2NvdmVyIGhvdyBKQW5zaSBpcyB3b3JraW5nIGFuZCBob3cgTWF2ZW4gaW50ZWdyYXRlcyBpdCk6IEkgc3RpbGwgbmVlZCB0bz0KPTIwCmNvbnRpbnVlIGludmVzdGlnYXRpb24gaW4gSkFuc2ksIHByb3ZpZGUgYSBjb21wbGV0ZSBhbmFseXNpcyB3aXRoIGEgZml4LCBnZT0KdCBpdD0yMAptZXJnZWQsIGhhdmUgYSByZWxlYXNlLCB0aGVuIGludGVncmF0ZSBpbiBNYXZlbi4uLgpNYXZlbiBKaXJhIGlzc3VlOiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MjgyCkpBbnNpIEdpdEh1YiBpc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL2Z1c2Vzb3VyY2UvamFuc2kvaXNzdWVzLzk0CgpUaGFuayB5b3UgdG8gRGVqYW4gU3RvamFkaW5vdmk9QzQ9ODcgZm9yIHJlcG9ydGluZyB0aGUgaXNzdWUgdGhlbiB3b3JraW5nIHc9Cml0aCBtZT0yMAp0byBpbnZlc3RpZ2F0ZSBpbiBkZXRhaWw6IHN1Y2ggY29udHJpYnV0aW9uIGlzIGdyZWF0bHkgYXBwcmVjaWF0ZWQuCkFuZCB0aGFua3MgaW4gYWR2YW5jZSB0byBKQW5zaSB0ZWFtIHdobyB3aWxsIHN1cmVseSBoZWxwIG1lIHdoZW4gSSdsbCBwaW5nPQo9MjAKdGhlbSwgYXMgdGhleSBkaWQgaW4gdGhlIHBhc3QgKGNyb3NzIHByb2plY3RzIGNvbnRyaWJ1dGlvbiBpcyBncmVhdCEpIDopCgpSZWdhcmRzLAoKSGVydj1DMz1BOQoKTGUgbHVuZGkgMTEgc2VwdGVtYnJlIDIwMTcsIDIzOjU2OjU4IENFU1QgSGVydj1DMz1BOSBCT1VURU1ZIGEgPUMzPUE5Y3JpdCA6Cj4ganVzdCBmb3IgdGhlIHJlY29yZHM6IGl0IGlzIFdpbmRvd3MgKyBHaXQgQmFzaCAoTUlOR1c2NCkgb25seQo+PTIwCj4gYW5kIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgYWRkaW5nIC1EamFuc2kuZm9yY2U9M0R0cnVlIGNhbiBmb3JjZSBKQW5zaQo+IGFjdGl2YXRpb24gKGV2ZW4gaWYgSkFuc2kgZmFpbHMgdG8gZGV0ZWN0IHRoYXQgaXQgc2hvdWxkIGF1dG8tYWN0aXZhdGUpCj49MjAKPiBkZXRhaWxzIG9uIGlzc3VlIGluIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyODIgLCBhbmQgYQo+IGZ1dHVyZSBKQW5zaSBpc3N1ZS4uLgo+PTIwCj4gUmVnYXJkcywKPj0yMAo+IEhlcnY9QzM9QTkKPj0yMAo+IExlIGx1bmRpIDExIHNlcHRlbWJyZSAyMDE3LCAxMjo1Mzo0NiBDRVNUIFN0ZXBoZW4gQ29ubm9sbHkgYSA9QzM9QTljcml0IDoKPiA+IFNvIHRoYXQgaXMgd2luZG93cyBvbmx5LCBvciB3ZXJlIHRoZXkgbG9zdCBvbiBvdGhlciBPU2VzIGZvciB5b3UuCj4gPj0yMAo+ID4gSSBoYXZlIGNvbG91cnMgb24gbGludXggKHZpYSBkb2NrZXIpIGFuZCBvcy14Cj4gPj0yMAo+ID4gT24gMTEgU2VwdGVtYmVyIDIwMTcgYXQgMTI6MzUsIGRlamFuMjYwOUBnbWFpbC5jb20gPGRlamFuMjYwOUBnbWFpbC5jb20+Cj4gPj0yMAo+ID4gd3JvdGU6Cj4gPiA+ICsxIChjb25kaXRpb25hbGx5KS4KPiA+ID49MjAKPiA+ID4gVGVzdGVkIHZpYSBwcm9qZWN0IHRoYXQgaW5jbHVkZXMgZG96ZW4gb2YgcGx1Z2luczogMXN0IHRpZXIsIE1vam9IYXVzCj4gPiA+IGFuZAo+ID4gPiBmZXcgM3JkIHBhcnR5IHBsdWdpbnMgKHNvIHRvIHNheSkuCj4gPiA+PTIwCj4gPiA+IEV2ZXJ5dGhpbmcgbG9va3MgZ29vZCB3aXRoIG9uZSBub3RhYmxlIHJlZ3Jlc3Npb246Cj4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyODIgQ29uc29sZSBvdXRwdXQgaGFzIG5vCj4gPiA+IGNvbG9ycyAocmVncmVzc2lvbiBpbiBNYXZlbiAzLjUuMSkKPiA+ID49MjAKPiA+ID4gUmVnYXJkcywKPiA+ID4gRGVqYW4KPiA+ID49MjAKPiA+ID4gT24gMjAxNy0wOS0xMCAxNzozOSwgU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvPQptPgo+ID4gPj0yMAo+ID4gPiB3cm90ZToKPiA+ID4gPiBIaSwKPiA+ID4gPj0yMAo+ID4gPiA+IFdlIHNvbHZlZCAyNSBpc3N1ZXM6Cj4gPiA+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhPwo+ID4gPj0yMAo+ID4gPiB2ZXJzaW9uPTNEMTIzMzg5NjQmc3R5bGVOYW1lPTNEVGV4dCZwcm9qZWN0SWQ9M0QxMjMxNjkyMgo+ID4gPj0yMAo+ID4gPiA+IFRoZXJlIGFyZSAzNTAgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKPiA+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9M0Rwcm9qZWN0JTIwJQo+ID4gPj0yMAo+ID4gPiAzRCUyME1ORyUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlCj4gPiA+IDIwQlklMjBkdWUlMjBBU0MlMkMlMjBwcmlvcml0eSUyMERFU0MlMkMlMjBjcmVhdGVkJTIwQVNDCj4gPiA+PTIwCj4gPiA+ID4gU3RhZ2luZyByZXBvOgo+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjQvCj4gPiA+ID49MjAKPiA+ID4gPiBUaGUgZGlzdHJpYnV0YWJsZSBiaW5hcmllcyBhbmQgc291cmNlcyBjYW4gYmUgZm91bmQgaGVyZToKPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+ID4KPiA+ID49MjAKPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS8KPiA+ID49MjAKPiA+ID4gPiBTcGVjaWZpY2FsbHkgdGhlIHppcCwgdGFyYmFsbCBhbmQgc291cmNlIGFyY2hpdmVzIGNhbiBiZSBmb3VuZCBoZXJlOgo+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4gPgo+ID4gPj0yMAo+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1iaW4uemlwCj4gPiA+PTIwCj4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tPiA+Cj4gPiA+PTIwCj4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLWJpbi50YXIuZ3oKPiA+ID49MjAKPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+ID4KPiA+ID49MjAKPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcAo+ID4gPj0yMAo+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4gPgo+ID4gPj0yMAo+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1zcmMudGFyLmd6Cj4gPiA+PTIwCj4gPiA+ID4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gPiA+ID4gYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy50YXIuZ3ogc2hhMTogOWViODIxZjE1M2M3NjY3MTk0YWExMWNjZDA5OWI3Cj4gPiA+PTIwCj4gPiA+IGJkMjA1OTU2MGQKPiA+ID49MjAKPiA+ID4gPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcDogc2hhMTogMTIxZDU0YjA0NTM4MGE4YTQ4OTVlYjEzNzk3MGFiCj4gPiA+PTIwCj4gPiA+IDY5ZTY5OGViMGUKPiA+ID49MjAKPiA+ID4gPiBHaXQgdGFnOgo+ID4gPiA+IGh0dHBzOi8vZ2l0LXdpcC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPTNEbWF2ZW4uZ2l0O2E9M0Rjb21taXQ7aD0KPTNECj4gPiA+PTIwCj4gPiA+IDA5NGU0ZTMxYTVhZjU1YmIxN2JlODc2NzVkYTQxZDlhZWNhMDYyZjMKPiA+ID49MjAKPiA+ID4gPiBTdGFnaW5nIHNpdGU6Cj4gPiA+ID4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2NvbXBvbmVudHMvcmVmLzMtTEFURVNULwo+ID4gPiA+PTIwCj4gPiA+ID4gVm90ZSBvcGVuIGZvciA3MiBob3Vycy4KPiA+ID4gPj0yMAo+ID4gPiA+IFsgXSArMQo+ID4gPiA+IFsgXSArMAo+ID4gPiA+IFsgXSAtMQo+ID4gPiA+PTIwCj4gPiA+ID4gVGhhbmtzLAo+ID4gPiA+PTIwCj4gPiA+ID4gU3RlcGhlbi4KPiA+ID49MjAKPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4NzEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IERlYyAyOCAxOTowMzozMyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4NzEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMTlBNEUxMEQyQwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDI4IERlYyAyMDE3IDE5OjAzOjMzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDUwODAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggRGVjIDIwMTcgMTk6MDM6MzIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ0OTg5IGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IERlYyAyMDE3IDE5OjAzOjMyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDQ5NzQgaW52b2tlZCBieSB1aWQgOTkpOyAyOCBEZWMgMjAxNyAxOTowMzozMiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMjggRGVjIDIwMTcgMTk6MDM6MzIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBERTI5MzFBMDk3NDsKCVRodSwgMjggRGVjIDIwMTcgMTk6MDM6MzEgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4yMjEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMjIxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LCBSQ1ZEX0lOX01TUElLRV9IND0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFh5Ti1yaEo0Ung4ejsgVGh1LCAyOCBEZWMgMjAxNyAxOTowMzozMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNS4xNV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAyNjYwMjVGMTlDOwoJVGh1LCAyOCBEZWMgMjAxNyAxOTowMzozMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBLYXJsLUhlaW56cy1NYWNCb29rLVByby5sb2NhbCAoWzkyLjIwNC40Ni40N10pIGJ5IG1haWwuZ214LmNvbQogKG1yZ214MDAxIFsyMTIuMjI3LjE3LjE5MF0pIHdpdGggRVNNVFBTQSAoTmVtZXNpcykgaWQKIDBMck5sNi0xZXdGYmgxMUdHLTAxMzJ2aTsgVGh1LCAyOCBEZWMgMjAxNyAyMDowMzoyOSArMDEwMApSZXBseS1UbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IHNlY29uZCBmaXggZm9yIE1ORy02MzMwIFtyZWdyZXNzaW9uXSBQYXJlbnRzIHJlbGF0aXZlUGF0aCBub3QKIHZlcmlmaWVkIGFueW1vcmUKRnJvbTogS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+ClRvOiBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+LAogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ2M6IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxvcC56Ynl1cnpuYmtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KIDw3MTI5NDU4Ni04NDMyLTA3NmEtMTNmNC1lZWNjMTA5YTYxM2RAZ214LmRlPgogPG9wLnpieXgzOHRta2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgogPGEwNmZmZTVhLWI1ODYtYTcxZS0zZDBiLTY5ODNhMTZkNTRjMkBnbXguZGU+CiA8b3AuemJ5eThscG1rZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CiA8MDI2MjQ0NmYtMjE4My1lZmIxLTczNDAtMjNjMmM4OTVmODRhQGdteC5kZT4KTWVzc2FnZS1JRDogPDU5YTg3ZWU4LWQ1NGQtYzliZi0zYjE5LTIxZTlmYmQ2ZGJhNkBnbXguZGU+CkRhdGU6IFRodSwgMjggRGVjIDIwMTcgMjA6MDM6MjggKzAxMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi41LjAKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDwwMjYyNDQ2Zi0yMTgzLWVmYjEtNzM0MC0yM2MyYzg5NWY4NGFAZ214LmRlPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDpYMnZBSDRYNDVIRk9IMmU0WnV1Z2k2bHFaV2lXWmtQTVNqTlFrVUdKaEN3QkJpS1E4YWIKIG9JVDhtK3JxNkpDak1RbXZPZFZEUW5BTnRtc01ESTBlQ25ZRU42YnZaeklaV0hSV3R2QllXWWRsRzNZa21CNGlBRUVOS0pjCiBiOTFjbTlETUxjUFd4VFUvYlc1bjdMZzJYWHlQays0WHZMSlhIT3BtZlU4RWdvdVJHSjBxMHNCTFl4b0c5b3FqNmdmd0V1cgogaVhQalEzZzB5QklBVXUvM3ozS1lRPT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDpodVhCYVZOV2dUQT06eXRKWDdTVW41c0srSDd1SW01bTFERQogNTNVbHlrc0M0UkJKU3V6SWREdDIvaGNzQ3g5dHhZbzFtTHI2bnRhNHRKQTJjVXFrYUFMUGJqUDZHRVlpZkZBb3AvNDdSSlpxbQogR3VRS1NkdzNreFMwM3E0ZnI0SHZ4K3ROU0tnVFgxcHdDVjd2QmZic0lqRmFzN09SMHJJam9UclpmZXdZdDFFRmRCWlIzUGVaKwogOStFVkd6cTVqWUI5S2Q2ZUNNY280YWpWbTJZQlNWY1pOdWRhejdvSzIvaTk0eTg4NWNMcXpjL0JmdFVyNElnS1VUK3dxdE9sRQogV0JrMURGNWZnb2ZiRUZOQ3VwMWh3NWtPSjArcVdjT1BwWHBRZHVMRWQrS2MrVXZ4K2xvK2Y0WHlvS29OenBUSEt2NGFxTkc2UAogcWpzYW1Bc0Z0T2ErUjg4dlZ1NGo1cUZ5enpsTlEyazBWeDNQRy9hekVCNWxLYU11bGVId1BaTXJkNzNJWndwd2xrLzVDSUVreQogQXRVSWNpc3hYcmt1TzdzeU4xNmh4eDZsRk90dE1xb1pIS2lDaVZWT3d6QjVRdjg3Q1N5RHY1QmRTQjZYa0tPYzVkYkY2cWJxZQogS09FRUNITGZlekYrVWNKdVNMWFlBRzk3ZWI2ZWxhWFRkUDcwTytiNzV3ODdJVXhSMjRuemdoU1h6ZmFhTEpycklPenhRMkd3VQogeGNaL21JS3JVSldNanpoKzdCcWFLd2t3SEJ6T3JPdyttbnUreHR0cmJhL0lWeTRJYmg4cGsvdnJrQ0FvTmtYWDVPbm12Q1ZucgogZ0xJTzdCSitIS0tQckdoWk5VWkE5SEE3cWRXMWc2a09DU1VUWDVhdUtZL3o5OGJBRVcwOEg3UXZGbk9CU0sxR0RQeGtKWXp2RQogSXBXanRNcVJtQUY0Z2ZWUE84Y3AwVXhNc2VKZktwNTdmNTI1RUFxckZUeDhTV3AxVWwwTndDclJQdVNNdXVkMWJRQXNaV2pYdQogU0phN3ZhTTluV0szR1dTU3pNMTNHQ3RZL282ZVlQVTJLYVdIdlpkZnAwVnloU0VrUm9UZ2NudG5QTkp2ZlRFckhoRGdBOWhLTQogSWtoem4xQkY2dXhFZ1U0K1dKMjVqTWxFTXRob3FjT1ZXZ3JPRVgvWnlCWTF0b3VpMnArWDFKaENKZitxYUh4emM5NnlneE1QVQogRkladWxQMGFqMVhPSlJGb3IwbTNkR1RSUUJKQUE0UlFaVTlxc1RPMFRQK0VxSkR2cmFZZXBrZFVjS25FekhCSktYYzd3MGdmYQogblZGcndRSVZ3RkxScFFrMUJFUGdoeElyNEVhUlhteDQ9CgpIaSBSb2JlcnQsCgorMSBmcm9tIG1lIG5vdyBhZnRlciB0aGUgbWFzdGVyIGdyZWVuKHBpcGVsaW5lKSAoLi5zb3JyeSBibHVlIGJhbGwpIGFnYWluLi4KCktpbmQgcmVnYXJkcwpLYXJsIEhlaW56IE1hcmJhaXNlCgoKT24gMjgvMTIvMTcgMTk6NDEsIEthcmwgSGVpbnogTWFyYmFpc2Ugd3JvdGU6Cj4gSGkgUm9iZXJ0LAo+IAo+IFNvIEkgaGF2ZSByZXN0YXJ0ZWQgdGhlIG1hc3RlciBidWlsZCBiYXNlZCBvbiB0aGF0IGFuZCBzZWUgaWYgZXZlcnl0aGluZyAKPiBpcyBmaW5lLi4od2hpY2ggSSBleHBlY3Qgb3RoZXJ3aXNlIHRoZSBicmFuY2ggc2hvdWxkIGhhdmUgc2hvd24gdGhlIHR3byAKPiB0ZXN0IGVycm9ycyBhcyB3ZWxsKS4uCj4gCj4gS2luZCByZWdhcmRzCj4gS2FybCBIZWluego+IE9uIDI4LzEyLzE3IDE5OjM0LCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPj4gSGkgS2FybCBIZWlueiwKPj4KPj4gQUZBSUsgeW91J3JlIGhpdHRpbmcgaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9JTkZSQS0xNTY4MQo+Pgo+PiB0aGFua3MsCj4+IFJvYmVydAo+Pgo+PiBPbiBUaHUsIDI4IERlYyAyMDE3IDE5OjMxOjM1ICswMTAwLCBLYXJsIEhlaW56IE1hcmJhaXNlIAo+PiA8a2htYXJiYWlzZUBnbXguZGU+IHdyb3RlOgo+Pgo+Pj4gSGkgUm9iZXJ0LAo+Pj4KPj4+IE9uIDI4LzEyLzE3IDE5OjEwLCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPj4+PiBIaSBLYXJsIEhlaW56LAo+Pj4+IMKganVzdCBsb29raW5nIGZvciBhICsxIGZyb20gYW5vdGhlciBjb21taXR0ZXIgYmVmb3JlIEkgbWVyZ2UgaXQgYmFjayAKPj4+PiB0byB0aGUgbWFzdGVyLgo+Pj4KPj4+IEFoIG9rLi4uU28gdGhlIGZpcnN0IHF1ZXN0aW9uIGlzIHdoeSBpcyB0aGUgbWFzdGVyIGF0IHRoZSBtb21lbnQgCj4+PiB5ZWxsb3cgd2l0aCB0d28gZmFpbGVkIHRlc3RzID8gRG8geW91IGhhdmUgYW55IGNsdWUgYWJvdXQgdGhhdCA/Cj4+Pgo+Pj4KPj4+IEtpbmQgcmVnYXJkcwo+Pj4gS2FybCBIZWluego+Pj4KPj4+Cj4+Pgo+Pj4KPj4+Cj4+Pj4gwqB0aGFua3MsCj4+Pj4gUm9iZXJ0Cj4+Pj4gwqBPbiBUaHUsIDI4IERlYyAyMDE3IDE4OjU1OjE1ICswMTAwLCBLYXJsIEhlaW56IE1hcmJhaXNlIAo+Pj4+IDxraG1hcmJhaXNlQGdteC5kZT4gd3JvdGU6Cj4+Pj4KPj4+Pj4gSGkgUm9iZXJ0LAo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBPbiAyOC8xMi8xNyAxNzo1OCwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4+Pj4+PiBIaSwKPj4+Pj4+IMKgTG9va2luZyBmb3Igc29tZW9uZSB0byBjb25maXJtIGFuZCBzZWNvbmQgTU5HLTYzMzBbMV0KPj4+Pj4KPj4+Pj4gaG93IGNhbiBJIGhlbHAgaGVyZT8KPj4+Pj4KPj4+Pj4gS2FybCBIZWlueiBNYXJiYWlzZQo+Pj4+Pgo+Pj4+Pj4gV2hpbGUgd29ya2luZyBvbiB0aGUgbWF2ZW4tcmVsZWFzZS1wbHVnaW4gSSBkaXNjb3ZlcmVkIHJlZ3Jlc3Npb24gCj4+Pj4+PiBpbnRyb2R1Y2VkIGluIE1hdmVuIDMuNS4wIGJ5IGEgY2hhbmdlIHRvIHRoZSBSZWFjdG9yTW9kZWxDYWNoZVsyXQo+Pj4+Pj4gVGhpcyBvbmx5IG9jY3VycyB3aGVuIGEgcGFyZW50IHdhcyBjYWNoZWQgYW5kIGFub3RoZXIgbW9kdWxlIAo+Pj4+Pj4gcG9pbnRzIHRvIHRoaXMgcGFyZW50LCBldmVuIHRob3VnaCB0aGUgcmVsYXRpdmVQYXRoIGZvciB0aGlzIAo+Pj4+Pj4gcGFyZW50IHJlc3VsdHMgaW4gYSBub24tZXhpc3RpbmcgcG9tIGZpbGUuCj4+Pj4+PiBDaGFuZ2UgaXMgYSBzaW1wbGUgbnVsbC1jaGVja1szXQo+Pj4+Pj4gUmVncmVzc2lvbiBjb3ZlcmVkIGJ5IGludGVncmF0aW9uIHRlc3RbNF0KPj4+Pj4+IEplbmtpbnMgaXMgaGFwcHlbNV0KPj4+Pj4+IMKgdGhhbmtzLAo+Pj4+Pj4gUm9iZXJ0Cj4+Pj4+PiDCoFsxXSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MzMwCj4+Pj4+PiBbMl0gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjAzMAo+Pj4+Pj4gWzNdIAo+Pj4+Pj4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9jb21taXQvNGViNTc0N2U4MjI5ZDAyMDFiNzA3MDUyY2U3ZjhhZTJmZTI0ZWVjMiAKPj4+Pj4+IMKgWzRdIAo+Pj4+Pj4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9bWF2ZW4taW50ZWdyYXRpb24tdGVzdGluZy5naXQ7YT1jb21taXQ7aD1jZmQwY2M2MjljMmRkNDk2NTU0YzU5YzE2ODBmYjFkOTBiMTMxMWIzIAo+Pj4+Pj4gwqBbNV0gCj4+Pj4+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL2pvYi9tYXZlbi13aXAvam9iL21hdmVuL2pvYi9NTkctNjMzMF9SZWxhdGl2ZVBhdGgvIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NDI2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBOb3YgIDUgMjE6Mjc6NTcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDI2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIERFNjA1MTA0NUIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAgNSBOb3YgMjAxNyAyMToyNzo1NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDgzMTA3IGludm9rZWQgYnkgdWlkIDUwMCk7IDUgTm92IDIwMTcgMjE6Mjc6NTcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgzMDI1IGludm9rZWQgYnkgdWlkIDUwMCk7IDUgTm92IDIwMTcgMjE6Mjc6NTcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MzAxMiBpbnZva2VkIGJ5IHVpZCA5OSk7IDUgTm92IDIwMTcgMjE6Mjc6NTcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDA1IE5vdiAyMDE3IDIxOjI3OjU3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNkJDQ0QxMEI0OEEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sICA1IE5vdiAyMDE3IDIxOjI3OjU2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi40OApYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjQ4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgSFRNTF9NRVNTQUdFPTIsCglLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpCgloZWFkZXIuZD16dXNhbW1lbmt1bmZ0LW5ldC4yMDE1MDYyMy5nYXBwc3NtdHAuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB1bmtiWFRubEhmdWMgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sICA1IE5vdiAyMDE3IDIxOjI3OjU0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd20wLWY0OC5nb29nbGUuY29tIChtYWlsLXdtMC1mNDguZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjQ4XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDM2MjUyNUZDQzcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sICA1IE5vdiAyMDE3IDIxOjI3OjU0ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNDguZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgcjY4c283MjM2ODc0d21yLjAKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAwNSBOb3YgMjAxNyAxMzoyNzo1NCAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9enVzYW1tZW5rdW5mdC1uZXQuMjAxNTA2MjMuZ2FwcHNzbXRwLmNvbTsgcz0yMDE1MDYyMzsKICAgICAgICBoPW1lc3NhZ2UtaWQ6bWltZS12ZXJzaW9uOnRvOmZyb206c3ViamVjdDpkYXRlOmltcG9ydGFuY2U6aW4tcmVwbHktdG8KICAgICAgICAgOnJlZmVyZW5jZXM7CiAgICAgICAgYmg9OEVIV2Jsd0dqOUlWL29Ocit3VjBHOGNlZ2ZFbk42Vk4yZVpYZzdKTlhXdz07CiAgICAgICAgYj1YQk1RQUNPYnpqeVMzcGx6NGlXWmJGeWVVUElPOVUwUXNUdFRiTEh0bG1ZbnZqUU55Rjd1SXgwYmwwYWFVUmQ5MjcKICAgICAgICAgWVZwTWVOSmNKUjRMWDV4aDVYNE5iaHJ5bkJ1dE10OTZGVFUvOU5XYjBUL0pyYUMwazFYaW81dnI3QnNaTERzZDkzYlQKICAgICAgICAgdXVPemxFR05TRUJzd20rMmxPQnFXT1M4emVrSEthQzI1NW4vRjNTdzd2My9YQTBqa2ZaZnptWnVIdHg2S3J6NXkyaisKICAgICAgICAgZUQzNU5uQS9LRTlvRGprcDlkbkR1dkVpVThYSjdqbWJYSjlyYmZYWnNKcGJ1MjZ3bFdKVHFqcTROZTUwZWNGMXZHcGcKICAgICAgICAgK2ZDcnhoNlBSWDBSRmFOcHFuQWtTMXhLbEZuQy95NUJXTklJRmNLM2VZVXVTVkl5ckdKQ1hPRzZJRldROEFPRjhzWEkKICAgICAgICAgaVRjUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWVzc2FnZS1pZDptaW1lLXZlcnNpb246dG86ZnJvbTpzdWJqZWN0OmRhdGUKICAgICAgICAgOmltcG9ydGFuY2U6aW4tcmVwbHktdG86cmVmZXJlbmNlczsKICAgICAgICBiaD04RUhXYmx3R2o5SVYvb05yK3dWMEc4Y2VnZkVuTjZWTjJlWlhnN0pOWFd3PTsKICAgICAgICBiPWJiVndzRFhZUmZIUGhmcU12c2dvZXVES3JWSjFvN3llZzF0N0hPRloxNjNYMkZZTjB5V2REazFtcmdTT3liQ0ZTZwogICAgICAgICBkWThIdkFDRjBUenVqRXU3Y1dYWERQYmhiNHVaV2dOa0hsS2VnWGFoMCtlRUkrZEZPNEI4SzBLeUNRSkMvS0pGUmRhMAogICAgICAgICBER1JMZFY4WXpNeU1nOU5KQVBna2RYZ1lYUHU0SDY0TzcwMEt0ZVd2Tm1RK0hNa0ozZTNiOXpJVWIwR0NQa3lES3RnVQogICAgICAgICBGQ2xOWXVKdWVpTkZhaWhCTGt4WkVZN0hiVndmaFdYME9udEk3QiszaTRSZEFTZHFpaDM0RjBtUDhoN2ZjRGk1blk3bwogICAgICAgICBEajE3R1FaSncxTFdaTFgvTlA1eVhKeXpQQ0x6Vjc5d1Z4NkhtRDRpQiswazdONzZ2UFB6aWU4dTFZZHcxVXp1aWMrMAogICAgICAgICBxQnB3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg1NndwMkE1MFM2S1hFclBJL2Vpb1hFQXNFNVEwbUZEWU43U0VETFZFdmRCaUtodGtxVAoJUXRDeCtlaGxwQWtGWk1RMVdHajJFSy9CeXFuUm9oMD0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFCaFFwK1RHZk9iSGhkaFFqUVBRWFNHd2JsazVsSmNHQzhWRFJTTGZQdlhFTjZrNkM0Q0poNkxBK1QzMGR5OXExVENacG9SWHZSdXhndz09ClgtUmVjZWl2ZWQ6IGJ5IDEwLjI4LjIxNC4yMDUgd2l0aCBTTVRQIGlkIG4xOTZtcjMyNDkyNzh3bWcuMTAuMTUwOTkxNzI3MjgyNDsKICAgICAgICBTdW4sIDA1IE5vdiAyMDE3IDEzOjI3OjUyIC0wODAwIChQU1QpClJlY2VpdmVkOiBmcm9tID9JUHY2Ojo6ZmZmZjoxMC4xNTMuMTIwLjIyNz8gKHgyZjdmY2UzLmR5bi50ZWxlZm9uaWNhLmRlLiBbMi4yNDcuMjUyLjIyN10pCiAgICAgICAgYnkgc210cC5nbWFpbC5jb20gd2l0aCBFU01UUFNBIGlkIGc5OXNtNTE3MzU1MHdyZC43Mi4yMDE3LjExLjA1LjEzLjI3LjQ5CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KICAgICAgICAodmVyc2lvbj1UTFMxXzIgY2lwaGVyPUVDREhFLVJTQS1BRVMxMjgtR0NNLVNIQTI1NiBiaXRzPTEyOC8xMjgpOwogICAgICAgIFN1biwgMDUgTm92IDIwMTcgMTM6Mjc6NTIgLTA4MDAgKFBTVCkKTWVzc2FnZS1JRDogPDU5ZmY4MjU4LmVjYjJkZjBhLjVkMzE2LmJjODlAbXguZ29vZ2xlLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkZyb206IEJlcm5kIEVja2VuZmVscyA8ZWNraUB6dXNhbW1lbmt1bmZ0Lm5ldD4KU3ViamVjdDogQVc6IE1hdmVuIDQuMC4wCkRhdGU6IFN1biwgNSBOb3YgMjAxNyAyMjoyNzo0MSArMDEwMApJbXBvcnRhbmNlOiBub3JtYWwKWC1Qcmlvcml0eTogMwpJbi1SZXBseS1UbzogPEU5OUEwNEY2LUI3OEUtNEI0Ri04MkU5LUM4OUE4RkI3NDRERUB0YWxpb3MuY29tPgpSZWZlcmVuY2VzOgogPENBK25Qbk13RUg5WjJteXA3MXVhU3JkY3lMSlJGckUtVnJ0MjAxOTFyZDAxaCtVZmhqd0BtYWlsLmdtYWlsLmNvbT4KIDxDQUxZR20xeGIxTU9IcHNYKzdFRzh4NGJkLXpIWitPOTVlMlk1WTJEdWRaaUVFNmVOQ0FAbWFpbC5nbWFpbC5jb20+CiA8b3AueTg2N3d4aDRrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CiA8RTk5QTA0RjYtQjc4RS00QjRGLTgyRTktQzg5QThGQjc0NERFQHRhbGlvcy5jb20+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L21peGVkOwoJYm91bmRhcnk9Il9ERDc3QjQ1NS0xNjAxLTQ1MzgtOTc4NC03OTI0NjFGMEFGNzhfIgoKLS1fREQ3N0I0NTUtMTYwMS00NTM4LTk3ODQtNzkyNDYxRjBBRjc4XwpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsKCWJvdW5kYXJ5PSJfMUExQUVGMTMtRkJFRC00QkVDLTkwNjktMDg1ODgzNTc5RkU3XyIKCi0tXzFBMUFFRjEzLUZCRUQtNEJFQy05MDY5LTA4NTg4MzU3OUZFN18KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9InV0Zi04IgoKSGVsbG8sCgpBZGRpbmcgYW5ub3RhdGlvbnMgYW5kIHByb2Nlc3NvciBhcyBhIGNvbXBpbGV0aW1lIGRlcGVuZGVuY3kgc291bmRzIGxpa2UgYSA9CnJlYXNvbmFibGUgdGhpbmcuIEl0IHdvdWxkIGhvd2V2ZXIgYmUgY29vbCBpZiB0aGUgSkFSIGNvdWxkIGRlc2NyaWJlIHdoaWNoID0KcGFja2FnZSBuZWVkcyB0byBnbyBvbiB0aGUgY2xhc3NwYXRoIGFuZCB3aGljaCBpcyBwcm9jZXNzb3IgaW1wbC4gKGFuZCBoYXZpPQpuZyBhIGRpZmZlcmVudCBhcnRpZmFjdCBmb3IgcnVudGltZSkKCkdydXNzCkJlcm5kCgpWb246IE1hcmsgRGVycmljdXR0Ckdlc2VuZGV0OiBTb25udGFnLCA1LiBOb3ZlbWJlciAyMDE3IDIyOjIwCkFuOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QKQmV0cmVmZjogUmU6IE1hdmVuIDQuMC4wCgpPbiA1IE5vdiAyMDE3LCBhdCAxMDo0MiwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Ckkgd291bGQgbGlrZSB0byBkcm9wIHN0cmljdCBzY29wZXMgaW4gZ2VuZXJhbCBhbmQgZ2l2ZSBwbHVnaW5zIHRoZSBvcHBvcnR1bj0KaXR5IHRvIGRlcGVuZCBvbgpzcGVjaWZpYyBzY29wZWQgZGVwZW5kZW5jaWVzLgpIb3cgd291bGQgdGhpcyBoZWxwIHdpdGggYW5ub3RhdGlvbnMgdGhvPyBUaGUgbWFpbiBpc3N1ZSBJJ20gZmFjaW5nIGlzIGhhdmk9Cm5nIGEgc3RhbmRhcmQgbS1jLXAgcGx1Z2luIGRlZmluaXRpb24gaW4gYSBwYXJlbnQgKCBvciB0aWxlICkgYnV0IG5lZWRpbmcgZD0KaWZmZXJlbnQgYW5ub3RhdGlvbiBwcm9jZXNzb3JzIHVzZWQgcGVyIHByb2plY3QuIFdpdGggdGhlIGN1cnJlbnQgcGx1Z2luLCB0PQpoaXMgbWVhbnMgZWl0aGVyIGxpc3RpbmcgdGhlbSBhcyBzdGFuZGFyZCBkZXBlbmRlbmNpZXMgYW5kIGhhdmUgdGhlbSBhdXRvLXM9CmNhbm5lZCwgYW5kIHBvbGx1dGUgdGhlIGNvbXBpbGF0aW9uIGNsYXNzcGF0aCwgb3IgbGlzdCBldmVyeSBwb3NzaWJsZSBhbm5vdD0KYXRpb24gcHJvY2Vzc29yIGRlcGVuZGVuY3kgd2UgbWF5IHVzZSBpbiBvdXIgcHJvamVjdHMgaW4gdGhlIHBhcmVudCwgd2hpY2ggPQppcyBsZXNzIHRoYW4gaWRlYWwuCkkgaG9wZSB5b3UgYXJlIGF3YXJlIHRoYXQgbW9kdWxlcyBhbHJlYWR5IGVuZCB1cCBvbiB0aGUgbW9kdWxlcGF0aCBiYXNlZCBvbj0KIHRoZSBtb2R1bGVkZXNjcmlwdG9yKHMpLiBTbyBJIGRvbid0IHNlZSB0aGUgbmVlZCBmb3IgdGhpcyBzY29wZS4gKHVubGVzcyB5PQpvdSBoYXZlIHRoaXMgd2lzaCB0aGF0IGluIHRoZSBlbmQgTWF2ZW4gd2lsbCBjcmVhdGUgdGhlIG1vZHVsZSBkZXNjcmlwdG9yIGI9CmFzZWQgb24gdGhpcywgYnV0IEkgc3RpbGwgdGhpbmsgd2Ugc2hvdWxkbid0IGRvIHRoYXQpCkkgcmVtZW1iZXJlZCByZWFkaW5nIHNvbWV0aGluZyBhYm91dCB0aGlzLCBhbmQgYXNzdW1lZCBpdCB3YXMgdGhlIGNhc2UgaWYgdD0KaGVyZSB3YXMgYSBtb2R1bGUtaW5mby5jbGFzcywgYnV0IHdoYXQgaWYgaXRzIGEgc3RhbmRhcmQgamFyIHdpdGggYW4gQXV0b21hPQp0aWMtTW9kdWxlLU5hbWUgaGVhZGVyPyBEb2VzIHRoYXQgZmFsbCBpbnRvIHRoZSBtb2R1bGUgcGF0aCBvciBjbGFzc3BhdGg/IEg9CmF2aW5nIGNvbnRyb2wgZm9yIHRoaXMgY2FzZSBtYXkgYmUgdXNlZnVsLgpJIHJlY29nbml6ZSB0aGlzIHdpc2guIFRoZSBiZXN0IHNvbHV0aW9uIGlzIHRvIG1ha2UgdGhlIGRlcGVuZGVuY3kgb3B0aW9uYWw9Ci4KVGhlIHByb2JsZW0gd2l0aCB0aGlzIGlzIHRoYXQgdGhlIGRlcGVuZGVuY3kgaXMgc3RpbGwgb24gdGhlIGNsYXNzcGF0aCBmb3IgPQpzYXkgc3VyZWZpcmUsIHdoaWNoIGNhbiBpbmZsdWVuY2UgYmVoYXZpb3VyLgpNYXJrCgoiVGhlIGVhc2Ugd2l0aCB3aGljaCBhIGNoYW5nZSBjYW4gYmUgaW1wbGVtZW50ZWQgaGFzIG5vIHJlbGV2YW5jZSBhdCBhbGwgdG89CiB3aGV0aGVyIGl0IGlzIHRoZSByaWdodCBjaGFuZ2UgZm9yIHRoZSAoSmF2YSkgUGxhdGZvcm0gZm9yIGFsbCB0aW1lLiIgPUUyPQo9ODA9OTQgTWFyayBSZWluaG9sZC4KTWFyayBEZXJyaWN1dHQKaHR0cDovL3d3dy50aGVvcnlpbnByYWN0aWNlLm5ldApodHRwOi8vd3d3LmNoYWxpY2VvZmJsb29kLm5ldApodHRwOi8vcGx1cy5nb29nbGUuY29tLytNYXJrRGVycmljdXR0Cmh0dHA6Ly90d2l0dGVyLmNvbS90YWxpb3MKaHR0cDovL2ZhY2Vib29rLmNvbS9tZGVycmljdXR0CgoKLS1fMUExQUVGMTMtRkJFRC00QkVDLTkwNjktMDg1ODgzNTc5RkU3XwpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PSJ1dGYtOCIKCjxodG1sIHhtbG5zOnY9M0QidXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiIHhtbG5zOm89M0QidXJuOnNjaGVtYXMtbWljcj0Kb3NvZnQtY29tOm9mZmljZTpvZmZpY2UiIHhtbG5zOnc9M0QidXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIgPQp4bWxuczptPTNEImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlLzIwMDQvMTIvb21tbCIgeG1sbnM9M0QiaHR0cDo9Ci8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PTNEQ29udGVudC1UeXBlIGNvbnRlbnQ9Cj0zRCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9M0R1dGYtOCI+PG1ldGEgbmFtZT0zREdlbmVyYXRvciBjb250ZW50PTNEIk1pY3Jvc29mdD0KIFdvcmQgMTUgKGZpbHRlcmVkIG1lZGl1bSkiPjwhLS1baWYgIW1zb10+PHN0eWxlPnZcOioge2JlaGF2aW9yOnVybCgjZGVmYXVsPQp0I1ZNTCk7fQpvXDoqIHtiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTt9CndcOioge2JlaGF2aW9yOnVybCgjZGVmYXVsdCNWTUwpO30KLnNoYXBlIHtiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTt9Cjwvc3R5bGU+PCFbZW5kaWZdLS0+PHN0eWxlPjwhLS0KLyogRm9udCBEZWZpbml0aW9ucyAqLwpAZm9udC1mYWNlCgl7Zm9udC1mYW1pbHk6IkNhbWJyaWEgTWF0aCI7CglwYW5vc2UtMToyIDQgNSAzIDUgNCA2IDMgMiA0O30KQGZvbnQtZmFjZQoJe2ZvbnQtZmFtaWx5OkNhbGlicmk7CglwYW5vc2UtMToyIDE1IDUgMiAyIDIgNCAzIDIgNDt9Ci8qIFN0eWxlIERlZmluaXRpb25zICovCnAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwKCXttYXJnaW46MGNtOwoJbWFyZ2luLWJvdHRvbTouMDAwMXB0OwoJZm9udC1zaXplOjExLjBwdDsKCWZvbnQtZmFtaWx5OiJDYWxpYnJpIixzYW5zLXNlcmlmO30KYTpsaW5rLCBzcGFuLk1zb0h5cGVybGluawoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsKCWNvbG9yOmJsdWU7Cgl0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30KYTp2aXNpdGVkLCBzcGFuLk1zb0h5cGVybGlua0ZvbGxvd2VkCgl7bXNvLXN0eWxlLXByaW9yaXR5Ojk5OwoJY29sb3I6Izk1NEY3MjsKCXRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQouTXNvQ2hwRGVmYXVsdAoJe21zby1zdHlsZS10eXBlOmV4cG9ydC1vbmx5O30KQHBhZ2UgV29yZFNlY3Rpb24xCgl7c2l6ZTo2MTIuMHB0IDc5Mi4wcHQ7CgltYXJnaW46NzAuODVwdCA3MC44NXB0IDIuMGNtIDcwLjg1cHQ7fQpkaXYuV29yZFNlY3Rpb24xCgl7cGFnZTpXb3JkU2VjdGlvbjE7fQotLT48L3N0eWxlPjwvaGVhZD48Ym9keSBsYW5nPTNEREUgbGluaz0zRGJsdWUgdmxpbms9M0QiIzk1NEY3MiI+PGRpdiBjbGFzcz0KPTNEV29yZFNlY3Rpb24xPjxwIGNsYXNzPTNETXNvTm9ybWFsPjxzcGFuIGxhbmc9M0RFTi1VUz5IZWxsbyw8bzpwPjwvbzpwPjwvPQpzcGFuPjwvcD48cCBjbGFzcz0zRE1zb05vcm1hbD48c3BhbiBsYW5nPTNERU4tVVM+PG86cD4mbmJzcDs8L286cD48L3NwYW4+PC89CnA+PHAgY2xhc3M9M0RNc29Ob3JtYWw+PHNwYW4gbGFuZz0zREVOLVVTPkFkZGluZyBhbm5vdGF0aW9ucyBhbmQgcHJvY2Vzc29yID0KYXMgYSBjb21waWxldGltZSBkZXBlbmRlbmN5IHNvdW5kcyBsaWtlIGEgcmVhc29uYWJsZSB0aGluZy4gSXQgd291bGQgaG93ZXZlPQpyIGJlIGNvb2wgaWYgdGhlIEpBUiBjb3VsZCBkZXNjcmliZSB3aGljaCBwYWNrYWdlIG5lZWRzIHRvIGdvIG9uIHRoZSBjbGFzc3A9CmF0aCBhbmQgd2hpY2ggaXMgcHJvY2Vzc29yIGltcGwuIChhbmQgaGF2aW5nIGEgZGlmZmVyZW50IGFydGlmYWN0IGZvciBydW50aT0KbWUpPC9zcGFuPjwvcD48cCBjbGFzcz0zRE1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48cCBjbGFzcz0zRE1zb05vcm1hPQpsPkdydXNzPC9wPjxwIGNsYXNzPTNETXNvTm9ybWFsPkJlcm5kPC9wPjxwIGNsYXNzPTNETXNvTm9ybWFsPjxvOnA+Jm5ic3A7PC89Cm86cD48L3A+PGRpdiBzdHlsZT0zRCdtc28tZWxlbWVudDpwYXJhLWJvcmRlci1kaXY7Ym9yZGVyOm5vbmU7Ym9yZGVyLXRvcDpzbz0KbGlkICNFMUUxRTEgMS4wcHQ7cGFkZGluZzozLjBwdCAwY20gMGNtIDBjbSc+PHAgY2xhc3M9M0RNc29Ob3JtYWwgc3R5bGU9M0QnPQpib3JkZXI6bm9uZTtwYWRkaW5nOjBjbSc+PGI+Vm9uOiA8L2I+PGEgaHJlZj0zRCJtYWlsdG86bWFya0B0YWxpb3MuY29tIj5NYXI9CmsgRGVycmljdXR0PC9hPjxicj48Yj5HZXNlbmRldDogPC9iPlNvbm50YWcsIDUuIE5vdmVtYmVyIDIwMTcgMjI6MjA8YnI+PGI+QT0KbjogPC9iPjxhIGhyZWY9M0QibWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnIj5NYXZlbiBEZXZlbG9wZXJzIExpc3Q8L2E+PGJyPQo+PGI+QmV0cmVmZjogPC9iPlJlOiBNYXZlbiA0LjAuMDwvcD48L2Rpdj48cCBjbGFzcz0zRE1zb05vcm1hbD48bzpwPiZuYnNwOzw9Ci9vOnA+PC9wPjxwPjxzcGFuIHN0eWxlPTNEJ2ZvbnQtZmFtaWx5OiJBcmlhbCIsc2Fucy1zZXJpZic+T24gNSBOb3YgMjAxNywgYT0KdCAxMDo0MiwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6PG86cD48L286cD48L3NwYW4+PC9wPjxkaXY+PGJsb2NrcXVvdGUgc3R5bGU9Cj0zRCdib3JkZXI6bm9uZTtib3JkZXItbGVmdDpzb2xpZCAjNTg1NUQ1IDEuNXB0O3BhZGRpbmc6MGNtIDBjbSAwY20gNC4wcHQ7bT0KYXJnaW4tbGVmdDowY207bWFyZ2luLXJpZ2h0OjBjbTttYXJnaW4tYm90dG9tOjMuNzVwdCc+PHA+PHNwYW4gc3R5bGU9M0QnZm9uPQp0LWZhbWlseToiQXJpYWwiLHNhbnMtc2VyaWY7Y29sb3I6IzU4NTVENSc+SSB3b3VsZCBsaWtlIHRvIGRyb3Agc3RyaWN0IHNjb3A9CmVzIGluIGdlbmVyYWwgYW5kIGdpdmUgcGx1Z2lucyB0aGUgb3Bwb3J0dW5pdHkgdG8gZGVwZW5kIG9uPGJyPnNwZWNpZmljIHNjbz0KcGVkIGRlcGVuZGVuY2llcy48bzpwPjwvbzpwPjwvc3Bhbj48L3A+PC9ibG9ja3F1b3RlPjwvZGl2PjxkaXY+PHA+PHNwYW4gc3R5PQpsZT0zRCdmb250LWZhbWlseToiQXJpYWwiLHNhbnMtc2VyaWYnPkhvdyB3b3VsZCB0aGlzIGhlbHAgd2l0aCBhbm5vdGF0aW9ucyA9CnRobz8gVGhlIG1haW4gaXNzdWUgSSdtIGZhY2luZyBpcyBoYXZpbmcgYSBzdGFuZGFyZCBtLWMtcCBwbHVnaW4gZGVmaW5pdGlvbj0KIGluIGEgcGFyZW50ICggb3IgdGlsZSApIGJ1dCBuZWVkaW5nIGRpZmZlcmVudCBhbm5vdGF0aW9uIHByb2Nlc3NvcnMgdXNlZCBwPQplciBwcm9qZWN0LiBXaXRoIHRoZSBjdXJyZW50IHBsdWdpbiwgdGhpcyBtZWFucyBlaXRoZXIgbGlzdGluZyB0aGVtIGFzIHN0YW49CmRhcmQgZGVwZW5kZW5jaWVzIGFuZCBoYXZlIHRoZW0gYXV0by1zY2FubmVkLCBhbmQgcG9sbHV0ZSB0aGUgY29tcGlsYXRpb24gYz0KbGFzc3BhdGgsIG9yIGxpc3QgZXZlcnkgcG9zc2libGUgYW5ub3RhdGlvbiBwcm9jZXNzb3IgZGVwZW5kZW5jeSB3ZSBtYXkgdXNlPQogaW4gb3VyIHByb2plY3RzIGluIHRoZSBwYXJlbnQsIHdoaWNoIGlzIGxlc3MgdGhhbiBpZGVhbC48bzpwPjwvbzpwPjwvc3Bhbj49CjwvcD48L2Rpdj48ZGl2PjxibG9ja3F1b3RlIHN0eWxlPTNEJ2JvcmRlcjpub25lO2JvcmRlci1sZWZ0OnNvbGlkICM1ODU1RDUgMT0KLjVwdDtwYWRkaW5nOjBjbSAwY20gMGNtIDQuMHB0O21hcmdpbi1sZWZ0OjBjbTttYXJnaW4tcmlnaHQ6MGNtO21hcmdpbi1ib3R0PQpvbTozLjc1cHQnPjxwPjxzcGFuIHN0eWxlPTNEJ2ZvbnQtZmFtaWx5OiJBcmlhbCIsc2Fucy1zZXJpZjtjb2xvcjojNTg1NUQ1Jz49CkkgaG9wZSB5b3UgYXJlIGF3YXJlIHRoYXQgbW9kdWxlcyBhbHJlYWR5IGVuZCB1cCBvbiB0aGUgbW9kdWxlcGF0aCBiYXNlZCBvbj0KIHRoZSBtb2R1bGVkZXNjcmlwdG9yKHMpLiBTbyBJIGRvbid0IHNlZSB0aGUgbmVlZCBmb3IgdGhpcyBzY29wZS4gKHVubGVzcyB5PQpvdSBoYXZlIHRoaXMgd2lzaCB0aGF0IGluIHRoZSBlbmQgTWF2ZW4gd2lsbCBjcmVhdGUgdGhlIG1vZHVsZSBkZXNjcmlwdG9yIGI9CmFzZWQgb24gdGhpcywgYnV0IEkgc3RpbGwgdGhpbmsgd2Ugc2hvdWxkbid0IGRvIHRoYXQpPG86cD48L286cD48L3NwYW4+PC9wPj0KPC9ibG9ja3F1b3RlPjwvZGl2PjxkaXY+PHA+PHNwYW4gc3R5bGU9M0QnZm9udC1mYW1pbHk6IkFyaWFsIixzYW5zLXNlcmlmJz5JPQogcmVtZW1iZXJlZCByZWFkaW5nIHNvbWV0aGluZyBhYm91dCB0aGlzLCBhbmQgYXNzdW1lZCBpdCB3YXMgdGhlIGNhc2UgaWYgdGg9CmVyZSB3YXMgYSBtb2R1bGUtaW5mby5jbGFzcywgYnV0IHdoYXQgaWYgaXRzIGEgc3RhbmRhcmQgamFyIHdpdGggYW4gQXV0b21hdD0KaWMtTW9kdWxlLU5hbWUgaGVhZGVyPyBEb2VzIHRoYXQgZmFsbCBpbnRvIHRoZSBtb2R1bGUgcGF0aCBvciBjbGFzc3BhdGg/IEhhPQp2aW5nIGNvbnRyb2wgZm9yIHRoaXMgY2FzZSBtYXkgYmUgdXNlZnVsLjxvOnA+PC9vOnA+PC9zcGFuPjwvcD48L2Rpdj48ZGl2Pjw9CmJsb2NrcXVvdGUgc3R5bGU9M0QnYm9yZGVyOm5vbmU7Ym9yZGVyLWxlZnQ6c29saWQgIzU4NTVENSAxLjVwdDtwYWRkaW5nOjBjbT0KIDBjbSAwY20gNC4wcHQ7bWFyZ2luLWxlZnQ6MGNtO21hcmdpbi1yaWdodDowY207bWFyZ2luLWJvdHRvbTozLjc1cHQnPjxwPjxzPQpwYW4gc3R5bGU9M0QnZm9udC1mYW1pbHk6IkFyaWFsIixzYW5zLXNlcmlmO2NvbG9yOiM1ODU1RDUnPkkgcmVjb2duaXplIHRoaXM9CiB3aXNoLiBUaGUgYmVzdCBzb2x1dGlvbiBpcyB0byBtYWtlIHRoZSBkZXBlbmRlbmN5IG9wdGlvbmFsLjxvOnA+PC9vOnA+PC9zcD0KYW4+PC9wPjwvYmxvY2txdW90ZT48L2Rpdj48ZGl2PjxwPjxzcGFuIHN0eWxlPTNEJ2ZvbnQtZmFtaWx5OiJBcmlhbCIsc2Fucy1zPQplcmlmJz5UaGUgcHJvYmxlbSB3aXRoIHRoaXMgaXMgdGhhdCB0aGUgZGVwZW5kZW5jeSBpcyBzdGlsbCBvbiB0aGUgY2xhc3NwYXQ9CmggZm9yIHNheSBzdXJlZmlyZSwgd2hpY2ggY2FuIGluZmx1ZW5jZSBiZWhhdmlvdXIuPG86cD48L286cD48L3NwYW4+PC9wPjxwPj0KPHNwYW4gc3R5bGU9M0QnZm9udC1mYW1pbHk6IkFyaWFsIixzYW5zLXNlcmlmJz5NYXJrPG86cD48L286cD48L3NwYW4+PC9wPjxwPQogY2xhc3M9M0RNc29Ob3JtYWw+PHNwYW4gc3R5bGU9M0QnZm9udC1mYW1pbHk6IkFyaWFsIixzYW5zLXNlcmlmJz48aW1nIGJvcmQ9CmVyPTNEMCB3aWR0aD0zRDI4MyBoZWlnaHQ9M0QwIHN0eWxlPTNEJ3dpZHRoOjIuOTVpbjtoZWlnaHQ6LjAwNDFpbicgaWQ9M0QiSD0Kb3Jpem9udGFsX3gwMDIwX0xpbmVfeDAwMjBfMSIgc3JjPTNEImNpZDppbWFnZTAwMi5wbmdAMDFEMzU2ODUuNDg4M0U5ODAiPjwvPQpzcGFuPjxzcGFuIHN0eWxlPTNEJ2ZvbnQtZmFtaWx5OiJBcmlhbCIsc2Fucy1zZXJpZic+PG86cD48L286cD48L3NwYW4+PC9wPjw9CnA+PHNwYW4gc3R5bGU9M0QnZm9udC1mYW1pbHk6IkFyaWFsIixzYW5zLXNlcmlmJz4mcXVvdDtUaGUgZWFzZSB3aXRoIHdoaWNoID0KYSBjaGFuZ2UgY2FuIGJlIGltcGxlbWVudGVkIGhhcyBubyByZWxldmFuY2UgYXQgYWxsIHRvIHdoZXRoZXIgaXQgaXMgdGhlIHJpPQpnaHQgY2hhbmdlIGZvciB0aGUgKEphdmEpIFBsYXRmb3JtIGZvciBhbGwgdGltZS4mcXVvdDsgPUUyPTgwPTk0IE1hcmsgUmVpbmg9Cm9sZC48bzpwPjwvbzpwPjwvc3Bhbj48L3A+PC9kaXY+PHA+PHNwYW4gc3R5bGU9M0QnZm9udC1mYW1pbHk6IkFyaWFsIixzYW5zLT0Kc2VyaWYnPk1hcmsgRGVycmljdXR0PGJyPjxhIGhyZWY9M0QiaHR0cDovL3d3dy50aGVvcnlpbnByYWN0aWNlLm5ldCI+aHR0cDovPQovd3d3LnRoZW9yeWlucHJhY3RpY2UubmV0PC9hPjxicj48YSBocmVmPTNEImh0dHA6Ly93d3cuY2hhbGljZW9mYmxvb2QubmV0Ij49Cmh0dHA6Ly93d3cuY2hhbGljZW9mYmxvb2QubmV0PC9hPjxicj48YSBocmVmPTNEImh0dHA6Ly9wbHVzLmdvb2dsZS5jb20vK01hcj0Ka0RlcnJpY3V0dCI+aHR0cDovL3BsdXMuZ29vZ2xlLmNvbS8rTWFya0RlcnJpY3V0dDwvYT48YnI+PGEgaHJlZj0zRCJodHRwOi8vPQp0d2l0dGVyLmNvbS90YWxpb3MiPmh0dHA6Ly90d2l0dGVyLmNvbS90YWxpb3M8L2E+PGJyPjxhIGhyZWY9M0QiaHR0cDovL2ZhY2U9CmJvb2suY29tL21kZXJyaWN1dHQiPmh0dHA6Ly9mYWNlYm9vay5jb20vbWRlcnJpY3V0dDwvYT48bzpwPjwvbzpwPjwvc3Bhbj48Lz0KcD48cCBjbGFzcz0zRE1zb05vcm1hbD48bzpwPiZuYnNwOzwvbzpwPjwvcD48L2Rpdj48L2JvZHk+PC9odG1sPj0KCi0tXzFBMUFFRjEzLUZCRUQtNEJFQy05MDY5LTA4NTg4MzU3OUZFN18tLQoKCi0tX0RENzdCNDU1LTE2MDEtNDUzOC05Nzg0LTc5MjQ2MUYwQUY3OF8KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKLS1fREQ3N0I0NTUtMTYwMS00NTM4LTk3ODQtNzkyNDYxRjBBRjc4Xy0tCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQ1MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgTm92ICA4IDIwOjQ3OjQxIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQ1MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBENTBDNDEwMEVCCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgIDggTm92IDIwMTcgMjA6NDc6NDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxMDkyMCBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IE5vdiAyMDE3IDIwOjQ3OjQxIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMDg0MSBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IE5vdiAyMDE3IDIwOjQ3OjQxIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTA4MjggaW52b2tlZCBieSB1aWQgOTkpOyA4IE5vdiAyMDE3IDIwOjQ3OjQxIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAwOCBOb3YgMjAxNyAyMDo0Nzo0MSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDU4MjI5MUEzNTQ5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAgOCBOb3YgMjAxNyAyMDo0Nzo0MCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDAuMDk5ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTAuMDk5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44LCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgOE1FTVY2M2JVcXVMIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJV2VkLCAgOCBOb3YgMjAxNyAyMDo0NzozOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXFrMC1mMTc2Lmdvb2dsZS5jb20gKG1haWwtcWswLWYxNzYuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIyMC4xNzZdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRDdBQUU2MTUxQgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgIDggTm92IDIwMTcgMjA6NDc6MzcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtcWswLWYxNzYuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgcTgzc281MDU4NTYycWtlLjYKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAwOCBOb3YgMjAxNyAxMjo0NzozNyAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9ZnJvbTptZXNzYWdlLWlkOm1pbWUtdmVyc2lvbjpzdWJqZWN0OmRhdGU6aW4tcmVwbHktdG86Y2M6dG8KICAgICAgICAgOnJlZmVyZW5jZXM7CiAgICAgICAgYmg9NHZSMzFxWUlPL01UVWR0Qk9UOGdSSVJsN0pFc1pzV2dzcGJZMUFyckdBcz07CiAgICAgICAgYj1kVzlYT09zaVRmd1lYUnlLZytacUxVblhhbVljbkd6WGhWZnVuUFp5YXEzZWNDbzYyeGVtdTF2enJpTCthTzhrWXQKICAgICAgICAgKzZMMWhRdVlQaEx3b0hwVTUvejZlRUZIL1BGc0E1U3JJLzQ5Z1JHNTZqS0J6N0V2NnBjY0xmNzZ4VTlGMVZvSmdyVi8KICAgICAgICAgLzJBRysyVXByZGwwUVZxMnkzcXhXVHhUMFB6ZXZBNGR0SHdKSUZubnROR3hQOWxJUTdsUDFQS2xyRVNsdTA4SXBLQWkKICAgICAgICAgRXBTUTVmNy83VWJ4K1V1a3E3NGc4enNLQlM5bi9JQU5TcjhQOE9PREZ0LzhtckxnRks4YzVpUDN6K0hHSStVOFp0bUEKICAgICAgICAgbVFPNFZoTlN6alI0YmtscmZ6ejlVU1B1Y0F6WS9WZDU4OHQxK2dwZXd2Tk95TDBMeDNnZEJxRkVrL1RhdjBvVmZXZCsKICAgICAgICAgWGtvQT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6ZnJvbTptZXNzYWdlLWlkOm1pbWUtdmVyc2lvbjpzdWJqZWN0OmRhdGUKICAgICAgICAgOmluLXJlcGx5LXRvOmNjOnRvOnJlZmVyZW5jZXM7CiAgICAgICAgYmg9NHZSMzFxWUlPL01UVWR0Qk9UOGdSSVJsN0pFc1pzV2dzcGJZMUFyckdBcz07CiAgICAgICAgYj1SSGQ2dlhyaWhDYytGN3VaMTlIWkMwRWNNcyt4R1kxYXNGRERXNzg5TURvS0hJTE5rK2ZqTW9ObFU1bWpmYUZBTmMKICAgICAgICAgcDdNcG5DelZmSmlVdVVGdTB1QnZhWlkzdGg2TUdGUDAvQ2ZwYTMvY3VHVXFoTVV1MGFINHAxTVJpWDFKZ1lSZC94T00KICAgICAgICAgZURSR2pTeWJweXhBNkRHdjQ1NVNHZGthMm5JaktmdHZvNTEvKzBGbDN1ckg0aTlFVlJoVkdEUkVxNHBqV2llTDRUMEwKICAgICAgICAgbVVYcENSamFGZThCTEFBamgwaUdWaFRWZEtMQmpoZ2pZQlhmTXQzeDFDcG9kS05BaWJTZ3ZzRENaRXE1ZVJObmVQREIKICAgICAgICAgV3RPdDlIWlpKRWNZdVRwRldkb1RtRDN2dCs5ZUR0R1dOeE1DbjNFUkE0d2lpUDBYVWc3T0YxNHJSR3VwcmVpdVh4SisKICAgICAgICAgTGd4UT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYNmI2OFRoalRhbi9MMk5hN0p4RXJwd0xvbTRQZGxFay9reVVNT1ZJd2pMaHc5aFMrSDgKCUMxak1JVjNxZ05ESUw4dzFTcjRiUzlQTWVWSy8KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFCaFFwK1RCMGJ2M05HTnZrZ216WkZORkZkeGVLTytTVmdObEIyMDZMSXBzTnZGRXRaTndaczUxTUNxRVBiTlo3cnNyTDZ2MVR3Tmhldz09ClgtUmVjZWl2ZWQ6IGJ5IDEwLjU1LjEzMy43MSB3aXRoIFNNVFAgaWQgaDY4bXIyNzY4MTczcWtkLjE3LjE1MTAxNzQwNTY2MTE7CiAgICAgICAgV2VkLCAwOCBOb3YgMjAxNyAxMjo0NzozNiAtMDgwMCAoUFNUKQpSZWNlaXZlZDogZnJvbSBkdXJlbmRhbC5ob21lIChwb29sLTEwOC0xNi05NS0yMDcucGhsYXBhLmZpb3MudmVyaXpvbi5uZXQuIFsxMDguMTYuOTUuMjA3XSkKICAgICAgICBieSBzbXRwLmdtYWlsLmNvbSB3aXRoIEVTTVRQU0EgaWQgazlzbTM0MDIwMjdxa2wuMTAuMjAxNy4xMS4wOC4xMi40Ny4zNQogICAgICAgICh2ZXJzaW9uPVRMUzFfMiBjaXBoZXI9RUNESEUtUlNBLUFFUzEyOC1HQ00tU0hBMjU2IGJpdHM9MTI4LzEyOCk7CiAgICAgICAgV2VkLCAwOCBOb3YgMjAxNyAxMjo0NzozNSAtMDgwMCAoUFNUKQpGcm9tOiBSdXNzZWxsIEdvbGQgPHJ1c3Nnb2xkQGdtYWlsLmNvbT4KTWVzc2FnZS1JZDogPDVERjJCRUJDLUNBMEYtNDU5Qy05RTZDLTY4OEM2M0E0OUY3NkBnbWFpbC5jb20+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOwogYm91bmRhcnk9IkFwcGxlLU1haWw9XzIzRDQzQkZDLTM4MDUtNEEzMS1BM0NCLUJGMTFBRjU2NkU3NiIKTWltZS1WZXJzaW9uOiAxLjAgKE1hYyBPUyBYIE1haWwgMTAuMyBcKDMyNzNcKSkKU3ViamVjdDogUmU6IFtqaXJhXSAoU1VSRUZJUkUtMTQyNCkgamF2YXgudHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25NYW5hZ2VyIG5vdAogdmlzaWJsZSB3aXRoIEphdmE5CkRhdGU6IFdlZCwgOCBOb3YgMjAxNyAxNTo0NzozNCAtMDUwMApJbi1SZXBseS1UbzogPENBQ2NlZmdmaXhYbXlDRHI0NUxYWC03ekxpQzVfVmhoN3dfMUc3X005T3ljTFZ6Yz1Wd0BtYWlsLmdtYWlsLmNvbT4KQ2M6IEFsYW4gQmF0ZW1hbiA8QWxhbi5CYXRlbWFuQG9yYWNsZS5jb20+LAogIlRpYm9yIERpZ2FuYSAoSklSQSkiIDxqaXJhQGFwYWNoZS5vcmc+LAogU3RlcGhhbmUgTmljb2xsIDxzdGVwaGFuZS5uaWNvbGxAZ21haWwuY29tPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KUmVmZXJlbmNlczogPEpJUkEuMTMxMDUwMTYuMTUwNjQxMzc2ODAwMEBBdGxhc3NpYW4uSklSQT4KIDxKSVJBLjEzMTA1MDE2LjE1MDY0MTM3NjgwNDVAamlyYS1sdy11cy5hcGFjaGUub3JnPgogPEpJUkEuMTMxMDUwMTYuMTUwNjQxMzc2ODAwMC4yMzA0MDYuMTUwNjYzMzY2MDMxOUBBdGxhc3NpYW4uSklSQT4KIDxvcC55N2JnbzdteWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KIDxDQUNjZWZnZC1fNWVPOFE5NzF3bkFyYXdwbU1uTlErd2ZmRUVGcHJQMlYyRnZmK0oxa1FAbWFpbC5nbWFpbC5jb20+CiA8MDlkNjI0ZWItZGNmZC1jYmRiLThlMDYtMTliOGNmMzI1Yzg2QG9yYWNsZS5jb20+CiA8Q0FDY2VmZ2ZpeFhteUNEcjQ1TFhYLTd6TGlDNV9WaGg3d18xRzdfTTlPeWNMVnpjPVZ3QG1haWwuZ21haWwuY29tPgpYLU1haWxlcjogQXBwbGUgTWFpbCAoMi4zMjczKQoKLS1BcHBsZS1NYWlsPV8yM0Q0M0JGQy0zODA1LTRBMzEtQTNDQi1CRjExQUY1NjZFNzYKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47CgljaGFyc2V0PXV0Zi04CgpJcyB0aGVyZSBhIHdheSB0byBkaXNhYmxlIHRoaXMgaGFjaz89MjAKCkkgYW0gdHJ5aW5nIHRvIGJ1aWxkIHRoZSBnbGFzc2Zpc2gtY29yYmEgcHJvamVjdCA9CjxodHRwczovL2dpdGh1Yi5jb20vamF2YWVlL2dsYXNzZmlzaC1jb3JiYT4sIHdoaWNoIGRlZmluZXMgaXRzIG93biA9CnZlcnNpb24gb2YgY2xhc3NlcyBpbiB0aGUgamF2YXgucm1pLkNPUkJBIHBhY2thZ2UsIGFuZCBoYXZpbmcgPQotLWFkZC1tb2R1bGVzIGphdmEuc2UuZWUgb24gdGhlIGNvbW1hbmQgbGluZSBtZWFucyB0aGF0IHRob3NlIGNsYXNzZXMgPQphcmVuPUUyPTgwPTk5dCBmb3VuZCBkdXJpbmcgdW5pdCB0ZXN0cy4KCi0gUnVzcwoKPiBPbiBTZXAgMjksIDIwMTcsIGF0IDQ6NTUgQU0sIEVucmljbyBPbGl2ZWxsaSA8ZW9saXZlbGxpQGdtYWlsLmNvbT4gPQp3cm90ZToKPj0yMAo+IDIwMTctMDktMjkgMTA6NDEgR01UKzAyOjAwIEFsYW4gQmF0ZW1hbiA8QWxhbi5CYXRlbWFuQG9yYWNsZS5jb20+Ogo+PTIwCj4+IE9uIDI5LzA5LzIwMTcgMDg6NTcsIEVucmljbyBPbGl2ZWxsaSB3cm90ZToKPj49MjAKPj4+IDoKPj4+PTIwCj4+PiAyKSBkZWFsaW5nIHdpdGggbW9kdWxlcyBsaWtlIGphdmEuc3FsIHdoaWNoIGFzIG5vdCBpbiBqYXZhLmJhc2UgKAo+Pj4gaHR0cDovL2Rvd25sb2FkLmphdmEubmV0L2phdmEvamRrOS9kb2NzL2FwaS9qYXZhLmJhc2Utc3VtbWFyeS5odG1sKQo+Pj4gQ3VycmVudGx5IEkgaGF2ZSBubyBzb2x1dGlvbiBhcyB0aGVyZSBpcyBubyBvZmZpY2lhbCBtYXZlbiA9CmRlcGVuZGVuY3kgZm9yCj4+PiBqYXZhLnNxbCBwYWNrYWdlCj4+Pj0yMAo+Pj4gWW91IHNob3VsZG4ndCBuZWVkIHRvIGJlIGNvbmNlcm5lZCB3aXRoIHRoZSBqYXZhLnNxbCBtb2R1bGUuCj49MjAKPj0yMAo+ID00NnJvbSB0aGUgcG9pbnQgb2YgdmlldyBvZiBhIGRldmVsb3BlciB3aGljaCB1c2VzIE1hdmVuIHRoZXJlIGlzIG5vID0KTWF2ZW4KPiBzdHlsZSB3YXkgdG8gdXNlIGphdmEuc3FsIG1vZHVsZSwgbGlrZSAiYWRkaW5nIGEgZGVwZW5kZW5jeSIKPiBUaGUgaGFjayBvbiBzdXJlZmlyZSB0cmllZCB0byBzb2x2ZSB0aGlzIHByb2JsZW0uCj49MjAKPiBVc2luZyBKREtfSkFWQV9PUFRJT05TIGlzIGFuIG9wdGlvbiwgYnV0IGFzIGl0IGlzIGEgZW52IGVudHJ5IGl0IG11c3QgPQpiZQo+IHNldCBleHRlcm5hbGx5IHRvIHRoZSBtYXZlbiBwb20ueG1sIG9yIGNvbmZpZwo+IFVzaW5nIC5tdm4vanZtLmNvbmZpZyB3aWxsIHByZXZlbnQgdGhlIGJ1aWxkIHRvIHdvcmsgb24gamF2YTggKGV4Y2VwdCA9CmZyb20KPiB1c2luZyAtWFg6K0lnbm9yZVVucmVjb2duaXplZFZNT3B0aW9ucyB3aGljaCB3aWxsIGJlIGRyb3BwZWQgaW4gamF2YTExID0KPz8pCj49MjAKPiBXaGljaCBpcyB0aGUgYmVzdCBzdWdnZXN0aW9uIHRvIGdpdmUgdG8gbWF2ZW4gdXNlcnMgPwo+PTIwCj4gLS0gRW5yaWNvCj49MjAKPj0yMAo+PTIwCj4+IFRoZSBvbmx5IG1vZHVsZXMgdGhhdCB5b3UgbmVlZCB0byBiZSBjb25jZXJuZWQgYWJvdXQgYXJlOgo+Pj0yMAo+PiBqYXZhLmNvcmJhCj4+IGphdmEudHJhbnNhY3Rpb24KPj4gamF2YS5hY3RpdmF0aW9uCj4+IGphdmEueG1sLmJpbmQKPj4gamF2YS54bWwud3MKPj4gamF2YS54bWwud3MuYW5ub3RhdGlvbgo+Pj0yMAo+PiBhbmQgdGhlIGphdmEuc2UuZWUgYWdncmVnYXRvci4KPj49MjAKPj4gVGhlc2UgbW9kdWxlcyBhcmUgZGVwcmVjYXRlZCBpbiBKYXZhIFNFIGFuZCBhcmUgcHJvcG9zZWQgdG8gYmUgPQpyZW1vdmVkIGluCj4+IGEgZnV0dXJlIHJlbGVhc2UuCj4+PTIwCj4+IEFzaWRlIGZyb20gamF2YS5jb3JiYSwgdGhlIDUgbW9kdWxlcyBzaGFyZWQgd2l0aCBKYXZhIEVFIGFyZSA9CnN0YW5kYWxvbmUKPj4gdGVjaG5vbG9naWVzLCBlYWNoIHdpdGggb25lIG9yIG1vcmUgSlNScyBhbmQgaXRzIG93biBkb3dubG9hZC4gRWFjaCA9Cm9mCj4+IHRoZXNlIHByb2plY3RzIHVzZWQgdG8gYmUgb24gamF2YS5uZXQgYnV0IG1vdmVkIHRvIHRoZSBKYXZhIEVFIGdpdGh1Ygo+PiBwcm9qZWN0IHJlY2VudGx5LiBJIGRvbid0IGtub3cgaWYgdGhlIG1vdmUgdG8gRWNsaXBzZSB3aWxsIGNoYW5nZSA9CmFueXRoaW5nCj4+IHRoZXJlLgo+Pj0yMAo+PiBJbiBhbnkgY2FzZSwgZWFjaCBvZiB0aGUgc3RhbmRhbG9uZSB2ZXJzaW9ucyBjYW4gYmUgZGVwbG95ZWQgb24gdGhlID0KY2xhc3MKPj4gcGF0aCB3aXRoIEpESyA5Lgo+Pj0yMAo+PiBJbiB0aW1lIHRoZXkgd2lsbCBiZSBkZXBsb3lhYmxlIGFzIG1vZHVsZXMgdG9vIGFuZCB0aGlzIHdpbGwgYWxsb3cgPQp0aGVtIHRvCj4+IGJlIGRlcGxveWVkIG9uIHRoZSB1cGdyYWRlIG1vZHVsZSBwYXRoICgtLXVwZ3JhZGUtbW9kdWxlLXBhdGgpIHRvCj4+IHVwZ3JhZGUvb3ZlcnJpZGUgdGhlIG1vZHVsZSBpbiB0aGUgcnVuLXRpbWUgaW1hZ2Ugd2l0aCB0aGUgc3RhbmRhbG9uZSA9Cm9yCj4+IEphdmEgRUUgbW9kdWxlLiBUaGlzIHdpbGwgYWN0dWFsbHkgd29yayB3aXRoIGFsbCBleGNlcHQgZm9yIHRoZSA9CnRyYW5zYWN0aW9uCj4+IEFQSSBhcyB0aGVyZSBhcmUgYSBjb3VwbGUgb2YgaXNzdWVzIHRvIHNvcnQgb3V0IHRoZXJlIGJlZm9yZSBpdCBjYW4gPQpiZQo+PiBkZXBsb3llZCBhcyBhIG1vZHVsZS4KPj49MjAKPj4gQXMgSSB1bmRlcnN0YW5kIGl0LCB0aGUgU3ByaW5nIGZvbGtzIGluIHRoZSBKSVJBIGlzc3VlIGFyZSBkZXBsb3lpbmcgPQp0aGUKPj4gSlRBIEpBUiBmaWxlIG9uIHRoZSBjbGFzcyBwYXRoLiBUaGF0IHNob3VsZCBqdXN0IHdvcmsgYnV0IGlzID0KY29tcGxpY2F0ZWQgYnkKPj4gYC0tYWRkLW1vZHVsZT0zRGphdmEuc2UuZWVgIGFzIHRoYXQgd2lsbCBjYXVzZSB0aGUgamF2YS50cmFuc2FjdGlvbiA9Cm1vZHVsZQo+PiB0byBiZSByZXNvbHZlZC4gWW91IGNhbid0IHNwbGl0IHRoZSBqYXZheC50cmFuc2FjdGlvbiBwYWNrYWdlIGJldHdlZW4gPQphCj4+IG1vZHVsZSBhbmQgdGhlIGNsYXNzIHBhdGguCj4+PTIwCj4+IEZvciB0aGUgc3VyZWZpcmUgcGx1Z2luIHRoZW4gZHJvcHBpbmcgdGhlIC0tYWRkLW1vZHVsZXMgc2hvdWxkIGJlID0KbG9va2VkCj4+IGF0LiBZb3UnbGwgbmVlZCB0byBkbyB0aGF0IGFueXdheSBvbmNlIGphdmEuc2UuZWUgZ29lcyBhd2F5LiBJZiB0aGUKPj4gcGx1Z2luIHJlbGllcyBvbiBKQVhCIHRoZW4gYWRkaW5nIGEgZGVwZW5kZW5jeSBvbiB0aGUgc3RhbmRhbG9uZSA9CnZlcnNpb24KPj4gc2hvdWxkIHdvcmsuCj4+PTIwCj4+IC1BbGFuCj4+PTIwCj4+PTIwCj4+PTIwCj4+PTIwCj4+PTIwCgoKLS1BcHBsZS1NYWlsPV8yM0Q0M0JGQy0zODA1LTRBMzEtQTNDQi1CRjExQUY1NjZFNzYtLQoKRnJvbSBkZXYtcmV0dXJuLTEyMzkxMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgU2VwICA5IDEyOjQ0OjA0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzkxMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFNzI3QzE5MkQzCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDkgU2VwIDIwMTcgMTI6NDQ6MDMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4NDM5MSBpbnZva2VkIGJ5IHVpZCA1MDApOyA5IFNlcCAyMDE3IDEyOjQ0OjAzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NDMxNCBpbnZva2VkIGJ5IHVpZCA1MDApOyA5IFNlcCAyMDE3IDEyOjQ0OjAzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODQzMDIgaW52b2tlZCBieSB1aWQgOTkpOyA5IFNlcCAyMDE3IDEyOjQ0OjAzIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwOSBTZXAgMjAxNyAxMjo0NDowMyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDlDQkY4RDBCQTkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA5IFNlcCAyMDE3IDEyOjQ0OjAyICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTMuMDAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0zLjAwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBDRWJGS3oybEQzRFQgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsICA5IFNlcCAyMDE3IDEyOjQ0OjAyICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1vdXQuZ214Lm5ldCAobW91dC5nbXgubmV0IFsyMTIuMjI3LjE1LjE4XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDhEMjRENUY2RDMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA5IFNlcCAyMDE3IDEyOjQ0OjAxICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIEthcmwtSGVpbnpzLU1hY0Jvb2stUHJvLmxvY2FsIChbMjE3LjI0Ny40LjddKSBieSBtYWlsLmdteC5jb20KIChtcmdteDAwMyBbMjEyLjIyNy4xNy4xOTBdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTVhxYU4tMWR2RnFCMUlIUC0wMFdwVmIgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMDkgU2VwIDIwMTcKIDE0OjQ0OjAwICswMjAwClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogaW5mb0Bzb2ViZXMuZGUKRnJvbTogS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+ClN1YmplY3Q6IG1hdmVuLXNoYXJlZC1qaWdzYXcgQnVpbGQKTWVzc2FnZS1JRDogPDVkY2FjN2ZjLTAyYTMtNDEwNC1iOTA1LTViZDMzNDc3Y2Q1N0BnbXguZGU+CkRhdGU6IFNhdCwgOSBTZXAgMjAxNyAxNDo0Mzo1OSArMDIwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMTsgcnY6NTIuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzUyLjIuMQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDpEQ0Fhd3FpQzdhZTdudUptSTA5aVZRM0xXRW9QUm9HRVBQMzdUTFBESkk1RklraFVTOXAKIEVWaXVYWUoyMEE1aHRHZW1BYVlNVEVkczFmVGlUeW1Ka0lmQkprdk0wVi9WaGczeGI1K2dxM2s1Ym5XbEdNZFlYY2dkdFJjCiBoNUVuTHF5T3N5Q3FuZzJxSDV2MmNuMW1JTERQMTJ1NkNFNjh1L1VHKzVUeEh2NUpOb3lMZUxBUEpFanJKQS9Pc3hqVlRFNwogdGIzb3NmVjMyYjdhb3BNQ3d5bVNBPT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDpSVXBiQktrUUk2cz06ZGZpMFRnd3FTNXBrVitPQlM2VU94aAogdnZWR2Q2MXlpb01UVXBrNmxhcElwL01obzBoQmxIMTNyS28vYVFmL0FaUWZDTXlka2I4ZkNKU3lGTkhpYmYvVUNuNmVmaDR3aQogb0JhV3BCY2R1YXJtNGlUMlR4aFhUNjFGSlBkY0NyeE8rMHBYZkp3aVMxdC9hbDRBNDZZSzJzazRHd0psOWNGZm1QSE8zaVR4NgogNUFCQ3loZm5CYmxlSlY4bnE0UWI2TTJ1NWkxNlRlOE51cVh2VWlOQmNWcHlMVGx6ZEE4SGNVSXAzMjhiS2RCeUtlbXRZOVVRcAogQlpRcE52UWVGdkZxaUZQZTBsb3ZmbkZnc2d2N3hXU2xwUi9ZZi8xd2tSa2hZcDg0K3F0OFB0T2h1djVWMVBYZ2hLeTQ5SGU5KwogeWVOaGthNW1WNTBuaWpnRC9mOHVUSXJQQk8yc0V4bzhtVCszem5wMllyVXA4YkpnWCtWQW52Q2p2cXE4c3Ezdm1zRVpacFRFVQogaDlFdmh5U28yTGs2VzdrK0xEL3NUb0hCT2VVRDFKWTllZmRuVUxWeEVZbnNhd09XS2tIZVlnTFVzaThBSWtzMmhkMG15L1pMNgogbE95OGRzTXkyMVRtTGIxb2lwNDBSOE1DaXJqWTM4Wkh2d3hyNEFuMkdSOFBSRHJoT3lEc1lCWkNsNmFnRmJyYWpmV3Y1SzJiNAogWCsrRldwUXNGNzdTVVBlUFdwZTh0dG9MZ1ptVG51dE0rY1NSUkZPMmJSM1RlVmtxUTIrSzY2MUwzTUJoNmlEVlZaWENINXIyNAogaDB0YkQwSGxnR3AxN1BCckpJZjJDL1Z3VUNWUUFHSGpTOUxTZkxtS0cwdjVtNExqVlFGTGZzZ1hZT0pxMWt0OW54WmZFWWU5dQogL1krVEphR3cyVXpMdEpiWkQ3d0NPRWhIMGliQjhtS0ZBUElsMlF2UHJuSHRtYTlNU3hoSjlaQVRENXFwWXBSMkZ4SWtQMm5nQgogSkZUN29VdmxMQW1rQm13dXo1Rkp2N0syTi9BeW4vNVNpVithSHE0NEVEL3dzOVZQS1dTUWFDOXF5dDhPdlZ5UFRkK1FXM21lTwogay9leWV5T3JaWlBlOTBLbVp4QUI0L29NS2FDMkV6aVJHbC9qeURzWm1vdTdwbXc1eFU9CgpIaSwKSSBoYXZlIHVwZGF0ZWQgdGhlIG1hdmVuLXNoYXJlZC1qaWdzYXcgQnVpbGQgQ29uZmlndXJhdGlvbiB0byB1c2UgdGhlIAptb3N0IHJlY2VudCB2ZXJzaW9uIG9mIEpESzEuOS4wK0VBXzE4MS4uLgoKS2luZCByZWdhcmRzCkthcmwgSGVpbnogTWFyYmFpc2UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyMzg1NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgU2VwICAyIDExOjI0OjA1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzg1NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3RkU2RDFBOUNBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDIgU2VwIDIwMTcgMTE6MjQ6MDUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5NDMwMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIFNlcCAyMDE3IDExOjI0OjA1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NDIzMCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIFNlcCAyMDE3IDExOjI0OjAzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTQyMTUgaW52b2tlZCBieSB1aWQgOTkpOyAyIFNlcCAyMDE3IDExOjI0OjAzIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwMiBTZXAgMjAxNyAxMToyNDowMyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDQxNjAzQzNFMkQ7CglTYXQsICAyIFNlcCAyMDE3IDExOjI0OjAzICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC4yNzkKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC4yNzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBUNmhtUGtKWGV6YVM7IFNhdCwgIDIgU2VwIDIwMTcgMTE6MjM6NTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbW91dC5nbXgubmV0IChtb3V0LmdteC5uZXQgWzIxMi4yMjcuMTUuMTVdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRDk5ODM2MTA0RjsKCVNhdCwgIDIgU2VwIDIwMTcgMTE6MjM6NTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gS2FybC1IZWluenMtTWFjQm9vay1Qcm8ubG9jYWwgKFsyMTcuMjQ3LjE2LjIwOF0pIGJ5CiBtYWlsLmdteC5jb20gKG1yZ214MDAzIFsyMTIuMjI3LjE3LjE5MF0pIHdpdGggRVNNVFBTQSAoTmVtZXNpcykgaWQKIDBNZDNsaS0xZTVEd0MyRkdzLTAwSUVkUjsgU2F0LCAwMiBTZXAgMjAxNyAxMzoyMzo1MCArMDIwMApSZXBseS1UbzogaW5mb0Bzb2ViZXMuZGUKU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBDb21waWxlciBQbHVnaW4gdmVyc2lvbiAzLjcuMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sCiBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+ClJlZmVyZW5jZXM6IDxvcC55NXYzZDZxMmtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KRnJvbTogS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+Ck1lc3NhZ2UtSUQ6IDw2MDhkMzNkMy02NjViLTM4NGQtYmVjMi1iNmVhMzhiY2VjZDhAZ214LmRlPgpEYXRlOiBTYXQsIDIgU2VwIDIwMTcgMTM6MjM6NTAgKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi4yLjEKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDxvcC55NXYzZDZxMmtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLUdCCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6ZURkekFmZVJYaDA0MWVzc0ZaOW4vc3JJcm1ETzNHNEYvQ1RGcDVId1dsNHJTWWJmZVg0CiA5NXBGMVAzZWpCVVRSZ0ZiTDZqTFA5VE96YnBNK0V2VldYcmlQWFFmVkdTZEpxZ2lpZFBxbVRJWGhlYTNDOTJCVVhNcFhNNQogZmI1a2xiQzR6dHQvMjBJSi94Z2VGcEViMUdjZFdoVTlSZDFGckRtNFVhQVhWWVl0VWNOTkNtenhabFBaaWZObkJVN1B2ODgKIDhqeUFhUW5ZZndzZ241aUdQakNKUT09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6aHcyQ3dtamhuTUk9OnBlYTZackNGSUdIZ3dpQUI3TU5pYXEKIGcwc2cwM3pIZUlnVXF2Uk5sMzQzeWJiTlVzTmVlT3ovaXd3MkpZZm8wVUc5TnBCTk9ONzN2cU1iT1o4NThlcE1JK1U2d3VuN2gKIGE5SXB2T2xseENRY3F6OGcwMytGNzlvL2RkT21EbWtoQTc3eUM0S3Z6QjlDV2ZUYUtTUXBjZ1ZNQnBSS1RYLzZVem11YlBETWYKIGhHK084ZnNoTjVGbWorQ3pNRWgxV25zUU9qMExCN01rNG1KL3RkWG1CM1FDNmcreUxsc3Z3d1dUSVBOUENaUFRLYkRicURGZWIKIEFaekE5b3VzNVB0QTYzNk9JbHB5eGtWVXZDeXdSekR1bldjK2g5Y0tabmNWdUpzcTRDdDBRcVBWc1JQK0xhNTBzajhoVmQ3UEQKIDJqem1rejRoTm9MTUladGtwKzd1bElMUjFBaG0rb2s0blJ4dG5GOGRqSFlrNHVObDZQc2tMbmlVRVZLbGFtNXhwc0xLdjIxTzAKIDFSSVdRYXdlVm5tc0k2bXR4cjdnMnFLT3FIOWJybFFkMzdYWTNUVXJuaEhjaUFtZnkrbWFmb1VjdEViM2ovMnUzL1ZhMGhNZE8KIGVWcTNiaFVWMit0WEh2S0t1VTNPSUlySzRnY3FGMU1wRFFVWkRXYkg1NVRyOVJ0VHdRR0Q1RXVpYWZxSkR6eTZBRlVRMllRV3IKICtiNWtZVld1S1FlK1d2U29zZDdnM1hvVnFFc2tOL1FCcWFDTXBmais3MmlORllQWUJjT1ZHZjdzeHp3ZkpQcGsvVFNLM1lUc00KIGo2VzVKMnNCMVdYb01uSTVUVzgybm9aWEE5UHRraFNKOUl4a0EwWm5FK2ZtSTE5UklVR1dlU0NZR0Z0SmEwV2tleE0zcEpLTU8KIHluVzN6MUhJUThhOHJER1JDSXlXSXQzMG0yTmZVT3VNMmpROHF3M05tMGd1M3J3cHIwL3h0WlBadHdtaW9kSm5BWGFUcGpzRm4KIFJHaEExWHRBekNWTW9WSzZWeXVxaUEwZlJ1a04yVE9KR0R3VE12U3FiUDhKbWw3elhOQ1FnQkRNNmhsM20xWVFnSHJBTC92MHYKIHZvamE5RWlQamg2R0xEQklFUGFiZUNJd1B3bXZac1dnd0lmMjE4MHAyb1orYzZqemcwPQoKSGksCgpJIGhhdmUgdGVzdGVkIHRoZSBmb2xsb3dpbmcgY29tYmluYXRpb25zOgoKamRrMS43LjBfNzkuamRrCiAgIGFwYWNoZS1tYXZlbi0zLjAuNQogICBhcGFjaGUtbWF2ZW4tMy4xLjEKICAgYXBhY2hlLW1hdmVuLTMuMi41CiAgIGFwYWNoZS1tYXZlbi0zLjMuMQogICBhcGFjaGUtbWF2ZW4tMy4zLjkKICAgYXBhY2hlLW1hdmVuLTMuNS4wCmpkazEuOC4wXzEzMS5qZGsKICAgYXBhY2hlLW1hdmVuLTMuMC41CiAgIGFwYWNoZS1tYXZlbi0zLjEuMQogICBhcGFjaGUtbWF2ZW4tMy4yLjUKICAgYXBhY2hlLW1hdmVuLTMuMy4xCiAgIGFwYWNoZS1tYXZlbi0zLjMuOQogICBhcGFjaGUtbWF2ZW4tMy41LjAKamRrMS44LjBfMTQ0LmpkawogICBhcGFjaGUtbWF2ZW4tMy4wLjUKICAgYXBhY2hlLW1hdmVuLTMuMS4xCiAgIGFwYWNoZS1tYXZlbi0zLjIuNQogICBhcGFjaGUtbWF2ZW4tMy4zLjEKICAgYXBhY2hlLW1hdmVuLTMuMy45CiAgIGFwYWNoZS1tYXZlbi0zLjUuMApqZGsxLjkuMF9lYSsxODEuamRrCiAgIGFwYWNoZS1tYXZlbi0zLjAuNSBGQUlMRUQhIQogICBhcGFjaGUtbWF2ZW4tMy4xLjEgRkFJTEVEISEKICAgYXBhY2hlLW1hdmVuLTMuMi41IEZBSUxFRCEhCiAgIGFwYWNoZS1tYXZlbi0zLjMuMSBGQUlMRUQhIQogICBhcGFjaGUtbWF2ZW4tMy4zLjkgRkFJTEVEISEKICAgYXBhY2hlLW1hdmVuLTMuNS4wIEZBSUxFRCEhCgoKQnV0IHRoZSBKREsxLjkuMF9lYSsxODEgaGF2ZSBzaG93IHRoZSBmb2xsb3dpbmcgcmVzdWx0IChmb3IgYWxsIE1hdmVuIAp2ZXJzaW9ucyk6CgogICAgICAgIFtFUlJPUl0gRmFpbGVkIHRvIGV4ZWN1dGUgZ29hbCAKb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zOm1hdmVuLWNvbXBpbGVyLXBsdWdpbjozLjcuMDpjb21waWxlIAooZGVmYXVsdC1jb21waWxlKSBvbiBwcm9qZWN0IGVycm9yLXByb25lLWNvbXBpbGVyOiBGYXRhbCBlcnJvciAKY29tcGlsaW5nOiBDb21waWxlckV4Y2VwdGlvbjogSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjogCmphdmEubmlvLmZpbGUuTm90RGlyZWN0b3J5RXhjZXB0aW9uOiAKL0xpYnJhcnkvSmF2YS9KYXZhVmlydHVhbE1hY2hpbmVzL2pkazEuOS4wX2VhKzE4MS5qZGsvQ29udGVudHMvSG9tZS9saWIvbW9kdWxlcyAKLT4gW0hlbHAgMV0KICAgICAgICBvcmcuYXBhY2hlLm1hdmVuLmxpZmVjeWNsZS5MaWZlY3ljbGVFeGVjdXRpb25FeGNlcHRpb246IEZhaWxlZCAKdG8gZXhlY3V0ZSBnb2FsIApvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM6bWF2ZW4tY29tcGlsZXItcGx1Z2luOjMuNy4wOmNvbXBpbGUgCihkZWZhdWx0LWNvbXBpbGUpIG9uIHByb2plY3QgZXJyb3ItcHJvbmUtY29tcGlsZXI6IEZhdGFsIGVycm9yIGNvbXBpbGluZwogICAgICAgIAlhdCAKb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuaW50ZXJuYWwuTW9qb0V4ZWN1dG9yLmV4ZWN1dGUoTW9qb0V4ZWN1dG9yLmphdmE6MjE3KQogICAgICAgIAlhdCAKb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuaW50ZXJuYWwuTW9qb0V4ZWN1dG9yLmV4ZWN1dGUoTW9qb0V4ZWN1dG9yLmphdmE6MTUzKQogICAgICAgIAlhdCAKb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuaW50ZXJuYWwuTW9qb0V4ZWN1dG9yLmV4ZWN1dGUoTW9qb0V4ZWN1dG9yLmphdmE6MTQ1KQogICAgICAgIAlhdCAKb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuaW50ZXJuYWwuTGlmZWN5Y2xlTW9kdWxlQnVpbGRlci5idWlsZFByb2plY3QoTGlmZWN5Y2xlTW9kdWxlQnVpbGRlci5qYXZhOjg0KQogICAgICAgIAlhdCAKb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuaW50ZXJuYWwuTGlmZWN5Y2xlTW9kdWxlQnVpbGRlci5idWlsZFByb2plY3QoTGlmZWN5Y2xlTW9kdWxlQnVpbGRlci5qYXZhOjU5KQogICAgICAgIAlhdCAKb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuaW50ZXJuYWwuTGlmZWN5Y2xlU3RhcnRlci5zaW5nbGVUaHJlYWRlZEJ1aWxkKExpZmVjeWNsZVN0YXJ0ZXIuamF2YToxODMpCiAgICAgICAgCWF0IApvcmcuYXBhY2hlLm1hdmVuLmxpZmVjeWNsZS5pbnRlcm5hbC5MaWZlY3ljbGVTdGFydGVyLmV4ZWN1dGUoTGlmZWN5Y2xlU3RhcnRlci5qYXZhOjE2MSkKICAgICAgICAJYXQgb3JnLmFwYWNoZS5tYXZlbi5EZWZhdWx0TWF2ZW4uZG9FeGVjdXRlKERlZmF1bHRNYXZlbi5qYXZhOjMyMCkKICAgICAgICAJYXQgb3JnLmFwYWNoZS5tYXZlbi5EZWZhdWx0TWF2ZW4uZXhlY3V0ZShEZWZhdWx0TWF2ZW4uamF2YToxNTYpCiAgICAgICAgCWF0IG9yZy5hcGFjaGUubWF2ZW4uY2xpLk1hdmVuQ2xpLmV4ZWN1dGUoTWF2ZW5DbGkuamF2YTo1MzcpCiAgICAgICAgCWF0IG9yZy5hcGFjaGUubWF2ZW4uY2xpLk1hdmVuQ2xpLmRvTWFpbihNYXZlbkNsaS5qYXZhOjE5NikKICAgICAgICAJYXQgb3JnLmFwYWNoZS5tYXZlbi5jbGkuTWF2ZW5DbGkubWFpbihNYXZlbkNsaS5qYXZhOjE0MSkKICAgICAgICAJYXQgCmphdmEuYmFzZS9qZGsuaW50ZXJuYWwucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlMChOYXRpdmUgCk1ldGhvZCkKICAgICAgICAJYXQgCmphdmEuYmFzZS9qZGsuaW50ZXJuYWwucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlKE5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5qYXZhOjYyKQogICAgICAgIAlhdCAKamF2YS5iYXNlL2pkay5pbnRlcm5hbC5yZWZsZWN0LkRlbGVnYXRpbmdNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlKERlbGVnYXRpbmdNZXRob2RBY2Nlc3NvckltcGwuamF2YTo0MykKICAgICAgICAJYXQgamF2YS5iYXNlL2phdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZva2UoTWV0aG9kLmphdmE6NTY0KQogICAgICAgIAlhdCAKb3JnLmNvZGVoYXVzLnBsZXh1cy5jbGFzc3dvcmxkcy5sYXVuY2hlci5MYXVuY2hlci5sYXVuY2hFbmhhbmNlZChMYXVuY2hlci5qYXZhOjI5MCkKICAgICAgICAJYXQgCm9yZy5jb2RlaGF1cy5wbGV4dXMuY2xhc3N3b3JsZHMubGF1bmNoZXIuTGF1bmNoZXIubGF1bmNoKExhdW5jaGVyLmphdmE6MjMwKQogICAgICAgIAlhdCAKb3JnLmNvZGVoYXVzLnBsZXh1cy5jbGFzc3dvcmxkcy5sYXVuY2hlci5MYXVuY2hlci5tYWluV2l0aEV4aXRDb2RlKExhdW5jaGVyLmphdmE6NDA5KQogICAgICAgIAlhdCAKb3JnLmNvZGVoYXVzLnBsZXh1cy5jbGFzc3dvcmxkcy5sYXVuY2hlci5MYXVuY2hlci5tYWluKExhdW5jaGVyLmphdmE6MzUyKQogICAgICAgIENhdXNlZCBieTogb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW4uTW9qb0V4ZWN1dGlvbkV4Y2VwdGlvbjogRmF0YWwgCmVycm9yIGNvbXBpbGluZwogICAgICAgIAlhdCAKb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW4uY29tcGlsZXIuQWJzdHJhY3RDb21waWxlck1vam8uZXhlY3V0ZShBYnN0cmFjdENvbXBpbGVyTW9qby5qYXZhOjEwODYpCiAgICAgICAgCWF0IApvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbi5jb21waWxlci5Db21waWxlck1vam8uZXhlY3V0ZShDb21waWxlck1vam8uamF2YToxNjgpCiAgICAgICAgCWF0IApvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbi5EZWZhdWx0QnVpbGRQbHVnaW5NYW5hZ2VyLmV4ZWN1dGVNb2pvKERlZmF1bHRCdWlsZFBsdWdpbk1hbmFnZXIuamF2YToxMDEpCiAgICAgICAgCWF0IApvcmcuYXBhY2hlLm1hdmVuLmxpZmVjeWNsZS5pbnRlcm5hbC5Nb2pvRXhlY3V0b3IuZXhlY3V0ZShNb2pvRXhlY3V0b3IuamF2YToyMDkpCiAgICAgICAgCS4uLiAxOSBtb3JlCiAgICAgICAgQ2F1c2VkIGJ5OiBvcmcuY29kZWhhdXMucGxleHVzLmNvbXBpbGVyLkNvbXBpbGVyRXhjZXB0aW9uCiAgICAgICAgCWF0IApvcmcuY29kZWhhdXMucGxleHVzLmNvbXBpbGVyLmphdmFjLmVycm9ycHJvbmUuSmF2YWNDb21waWxlcldpdGhFcnJvclByb25lLnBlcmZvcm1Db21waWxlKEphdmFjQ29tcGlsZXJXaXRoRXJyb3JQcm9uZS5qYXZhOjk1KQogICAgICAgIAlhdCAKb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW4uY29tcGlsZXIuQWJzdHJhY3RDb21waWxlck1vam8uZXhlY3V0ZShBYnN0cmFjdENvbXBpbGVyTW9qby5qYXZhOjEwNzUpCiAgICAgICAgCS4uLiAyMiBtb3JlCiAgICAgICAgQ2F1c2VkIGJ5OiBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uCiAgICAgICAgCWF0IApqYXZhLmJhc2UvamRrLmludGVybmFsLnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZTAoTmF0aXZlIApNZXRob2QpCiAgICAgICAgCWF0IApqYXZhLmJhc2UvamRrLmludGVybmFsLnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShOYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuamF2YTo2MikKICAgICAgICAJYXQgCmphdmEuYmFzZS9qZGsuaW50ZXJuYWwucmVmbGVjdC5EZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShEZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmphdmE6NDMpCiAgICAgICAgCWF0IGphdmEuYmFzZS9qYXZhLmxhbmcucmVmbGVjdC5NZXRob2QuaW52b2tlKE1ldGhvZC5qYXZhOjU2NCkKICAgICAgICAJYXQgCm9yZy5jb2RlaGF1cy5wbGV4dXMuY29tcGlsZXIuamF2YWMuZXJyb3Jwcm9uZS5KYXZhY0NvbXBpbGVyV2l0aEVycm9yUHJvbmUucGVyZm9ybUNvbXBpbGUoSmF2YWNDb21waWxlcldpdGhFcnJvclByb25lLmphdmE6OTEpCiAgICAgICAgCS4uLiAyMyBtb3JlCiAgICAgICAgQ2F1c2VkIGJ5OiBqYXZhLmlvLlVuY2hlY2tlZElPRXhjZXB0aW9uOiAKamF2YS5uaW8uZmlsZS5Ob3REaXJlY3RvcnlFeGNlcHRpb246IAovTGlicmFyeS9KYXZhL0phdmFWaXJ0dWFsTWFjaGluZXMvamRrMS45LjBfZWErMTgxLmpkay9Db250ZW50cy9Ib21lL2xpYi9tb2R1bGVzCiAgICAgICAgCWF0IApjb20uc3VuLnRvb2xzLmphdmFjLmZpbGUuTG9jYXRpb25zJEJvb3RDbGFzc1BhdGhMb2NhdGlvbkhhbmRsZXIubGF6eShMb2NhdGlvbnMuamF2YTo3MjUpCiAgICAgICAgCWF0IApjb20uc3VuLnRvb2xzLmphdmFjLmZpbGUuTG9jYXRpb25zJEJvb3RDbGFzc1BhdGhMb2NhdGlvbkhhbmRsZXIuaXNEZWZhdWx0KExvY2F0aW9ucy5qYXZhOjU1OSkKICAgICAgICAJYXQgCmNvbS5zdW4udG9vbHMuamF2YWMuZmlsZS5Mb2NhdGlvbnMuaXNEZWZhdWx0Qm9vdENsYXNzUGF0aChMb2NhdGlvbnMuamF2YToxMjkpCiAgICAgICAgCWF0IApjb20uc3VuLnRvb2xzLmphdmFjLmZpbGUuQmFzZUZpbGVNYW5hZ2VyLmlzRGVmYXVsdEJvb3RDbGFzc1BhdGgoQmFzZUZpbGVNYW5hZ2VyLmphdmE6MTQ5KQogICAgICAgIAlhdCBjb20uc3VuLnRvb2xzLmphdmFjLm1haW4uQXJndW1lbnRzLnZhbGlkYXRlKEFyZ3VtZW50cy5qYXZhOjQxMSkKICAgICAgICAJYXQgY29tLnN1bi50b29scy5qYXZhYy5tYWluLk1haW4uY29tcGlsZShNYWluLmphdmE6MjE4KQogICAgICAgIAlhdCAKY29tLmdvb2dsZS5lcnJvcnByb25lLkJhc2VFcnJvclByb25lQ29tcGlsZXIucnVuKEJhc2VFcnJvclByb25lQ29tcGlsZXIuamF2YToxODcpCiAgICAgICAgCWF0IApjb20uZ29vZ2xlLmVycm9ycHJvbmUuQmFzZUVycm9yUHJvbmVDb21waWxlci5ydW4oQmFzZUVycm9yUHJvbmVDb21waWxlci5qYXZhOjk4KQogICAgICAgIAlhdCAKY29tLmdvb2dsZS5lcnJvcnByb25lLkVycm9yUHJvbmVDb21waWxlci5ydW4oRXJyb3JQcm9uZUNvbXBpbGVyLmphdmE6MTI4KQogICAgICAgIAlhdCAKb3JnLmNvZGVoYXVzLnBsZXh1cy5jb21waWxlci5qYXZhYy5lcnJvcnByb25lLkphdmFjQ29tcGlsZXJXaXRoRXJyb3JQcm9uZSRDb21waWxlckludm9rZXIuY29tcGlsZShKYXZhY0NvbXBpbGVyV2l0aEVycm9yUHJvbmUuamF2YToyMjIpCiAgICAgICAgCS4uLiAyOCBtb3JlCiAgICAgICAgQ2F1c2VkIGJ5OiBqYXZhLm5pby5maWxlLk5vdERpcmVjdG9yeUV4Y2VwdGlvbjogCi9MaWJyYXJ5L0phdmEvSmF2YVZpcnR1YWxNYWNoaW5lcy9qZGsxLjkuMF9lYSsxODEuamRrL0NvbnRlbnRzL0hvbWUvbGliL21vZHVsZXMKICAgICAgICAJYXQgCmphdmEuYmFzZS9zdW4ubmlvLmZzLlVuaXhGaWxlU3lzdGVtUHJvdmlkZXIubmV3RGlyZWN0b3J5U3RyZWFtKFVuaXhGaWxlU3lzdGVtUHJvdmlkZXIuamF2YTo0MDcpCiAgICAgICAgCWF0IGphdmEuYmFzZS9qYXZhLm5pby5maWxlLkZpbGVzLm5ld0RpcmVjdG9yeVN0cmVhbShGaWxlcy5qYXZhOjQ2NSkKICAgICAgICAJYXQgamF2YS5iYXNlL2phdmEubmlvLmZpbGUuRmlsZXMubGlzdChGaWxlcy5qYXZhOjM1MjQpCiAgICAgICAgCWF0IApjb20uc3VuLnRvb2xzLmphdmFjLmZpbGUuTG9jYXRpb25zJEJvb3RDbGFzc1BhdGhMb2NhdGlvbkhhbmRsZXIuc3lzdGVtQ2xhc3NlcyhMb2NhdGlvbnMuamF2YTo2NzgpCiAgICAgICAgCWF0IApjb20uc3VuLnRvb2xzLmphdmFjLmZpbGUuTG9jYXRpb25zJEJvb3RDbGFzc1BhdGhMb2NhdGlvbkhhbmRsZXIuY29tcHV0ZVBhdGgoTG9jYXRpb25zLmphdmE6NjM0KQogICAgICAgIAlhdCAKY29tLnN1bi50b29scy5qYXZhYy5maWxlLkxvY2F0aW9ucyRCb290Q2xhc3NQYXRoTG9jYXRpb25IYW5kbGVyLmxhenkoTG9jYXRpb25zLmphdmE6NzIyKQogICAgICAgIAkuLi4gMzcgbW9yZQogICAgICAgIFtFUlJPUl0KICAgICAgICBbRVJST1JdCiAgICAgICAgW0VSUk9SXSBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXJyb3JzIGFuZCBwb3NzaWJsZSAKc29sdXRpb25zLCBwbGVhc2UgcmVhZCB0aGUgZm9sbG93aW5nIGFydGljbGVzOgogICAgICAgIFtFUlJPUl0gW0hlbHAgMV0gCmh0dHA6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9Nb2pvRXhlY3V0aW9uRXhjZXB0aW9uCiAgICAgICAgUnVubmluZyBwb3N0LWJ1aWxkIHNjcmlwdDogCi9Vc2Vycy9rYW1hL21hdmVuLXJlbGVhc2UtY2hlY2tlci9yZWxlYXNlLXRlc3QvamRrMS45LjBfZWErMTgxLmpkay9hcGFjaGUtbWF2ZW4tMy4wLjUvbWF2ZW4tY29tcGlsZXItcGx1Z2luLTMuNy4wL3RhcmdldC9pdC9lcnJvci1wcm9uZS1jb21waWxlci92ZXJpZnkuZ3Jvb3Z5CgoKQmFzZWQgb24gd2hhdCBJIGNhbiBzZWUgaGVyZSBvbiBNYWNPUzogVGhlIG1vZHVsZXMgaW4gSkRLIDkgaXMgYSBmaWxlIAphbmQgbm90IGRpcmVjdG9yeS4uLlRoZSBxdWVzdGlvbiBpcyB0aGlzIGFuIE1hY09TIG9ubHkgcGhlbm9tZW5vbiA/IE9yIAppcyB0aGlzIGEgZ2VuZXJhbCBzaXR1YXRpb24/CgpLaW5kIHJlZ2FyZHMKS2FybCBIZWlueiBNYXJiYWlzZQoKCk9uIDAxLzA5LzE3IDE1OjUwLCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPiBIaSwKPiAKPiBXZSBzb2x2ZWQgNiBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMxNzIyNSZ2ZXJzaW9uPTEyMzQxMjY2JnN0eWxlTmFtZT1UZXh0IAo+IAo+IAo+IFRoZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJTNEJTIwMTIzMTcyMjUlMjBBTkQlMjBzdGF0dXMlMjAlM0QlMjBPcGVuJTIwT1JERVIlMjBCWSUyMGtleSUyMERFU0MlMkMlMjBwcmlvcml0eSUyMERFU0MgCj4gCj4gCj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNTkvCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc2VydmljZS9sb2NhbC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM1OS9jb250ZW50L29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi1jb21waWxlci1wbHVnaW4vMy43LjAvbWF2ZW4tY29tcGlsZXItcGx1Z2luLTMuNy4wLXNvdXJjZS1yZWxlYXNlLnppcCAKPiAKPiAKPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBtYXZlbi1jb21waWxlci1wbHVnaW4tMy43LjAtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6IAo+IDExNDhkOGExZjg5ZTY5MDBhZmIwY2ExZGJmNzRmNjQ5MzI0MDJjZmQKPiAKPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tY29tcGlsZXItcGx1Z2luLUxBVEVTVC8KPiAKPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+IAo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4gCj4gWyBdICsxCj4gWyBdICswCj4gWyBdIC0xCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4NjAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IERlYyAyOCAxNDo0NDozMyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4NjAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgREU5NzQxMDMwNwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDI4IERlYyAyMDE3IDE0OjQ0OjMyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODc3NDIgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggRGVjIDIwMTcgMTQ6NDQ6MzIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg3NjY4IGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IERlYyAyMDE3IDE0OjQ0OjMyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODc2NTcgaW52b2tlZCBieSB1aWQgOTkpOyAyOCBEZWMgMjAxNyAxNDo0NDozMiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMjggRGVjIDIwMTcgMTQ6NDQ6MzIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBCRkNDOTFBMDU0NQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjggRGVjIDIwMTcgMTQ6NDQ6MzEgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4yMDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMjAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LAoJU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHJFRFBUUmZoMEUwZSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVRodSwgMjggRGVjIDIwMTcgMTQ6NDQ6MzAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbW91dC5nbXgubmV0IChtb3V0LmdteC5uZXQgWzIxMi4yMjcuMTUuMTldKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQ0MxODQ1RjIwMQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjggRGVjIDIwMTcgMTQ6NDQ6MjkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gS2FybC1IZWluenMtTWFjQm9vay1Qcm8ubG9jYWwgKFs5Mi4yMDQuNDYuNDddKSBieSBtYWlsLmdteC5jb20KIChtcmdteDAwMiBbMjEyLjIyNy4xNy4xOTBdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTTN6bmUtMWVtdkptM29QNC0wMHJXVHk7IFRodSwgMjggRGVjIDIwMTcgMTU6NDQ6MjggKzAxMDAKUmVwbHktVG86IGluZm9Ac29lYmVzLmRlClN1YmplY3Q6IFJlOiBtYXZlbi1hcmNoaXZlciBidWlsZCBvbiBKZW5raW5zIC0gVGVzdCBGYWlsdXJlcwpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sCiBTeWx3ZXN0ZXIgTGFjaGlld2ljeiA8c2xhY2hpZXdpY3pAZ21haWwuY29tPiwgaW5mb0Bzb2ViZXMuZGUKUmVmZXJlbmNlczogPDk1MGRlMjgwLTU5MjgtNGZlMy1hY2E4LTA5MjM0MTUyNGM2NkBnbXguZGU+CiA8Q0FMYVRlQ28wLS1fcDZkdU5GM2MwM2NWRk80WHZUdm8zWW5kd0NqX0g3NFhSdm93WkFnQG1haWwuZ21haWwuY29tPgogPENBTGFUZUNwYlo5YUMrcWRTa1QxUk0yaEJxRT1NY19iTHZiZkFDSGgtc2dVeW5INDhQd0BtYWlsLmdtYWlsLmNvbT4KIDxDQUpHN0RYMVNkYXh3b0pLNXFqYzEyMEZkZUhDWk9IUnppb2VibUV3R3FnejVrWG0xNndAbWFpbC5nbWFpbC5jb20+CiA8MjM3YjIwMTUtNzMwYi02NTlhLTFmYmMtNDUxYTRiZTQ0MjhkQGdteC5kZT4KIDxDQUpHN0RYMEp1MWlhRnBSX3lXb2lMakNMb0xjS0VaVWtKRWd1UmthKzI3b1F1Y3hWR1FAbWFpbC5nbWFpbC5jb20+CkZyb206IEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPgpNZXNzYWdlLUlEOiA8NjBjZjM3ZGItNDllZS04YjE2LTM0NTYtMzk4MmM4YjI0NDgzQGdteC5kZT4KRGF0ZTogVGh1LCAyOCBEZWMgMjAxNyAxNTo0NDoyOCArMDEwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMTsgcnY6NTIuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzUyLjUuMApNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPENBSkc3RFgwSnUxaWFGcFJfeVdvaUxqQ0xvTGNLRVpVa0pFZ3VSa2ErMjdvUXVjeFZHUUBtYWlsLmdtYWlsLmNvbT4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLUdCCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6LzVtNGFibDJGV3h3UkRXSU5lRDh0bmZNZTdmRXdHZTNnZUtqbE40V0hqVzd1NGpyc1VGCiBLdkRYTzR5UWV6Z3pvRGFURFVacmdiWnNWb0J3WUowUWpVc1NraXJnZ2l4amNCd2F2R3AwR1ZwWnpOTDlvdGJOOFdNdmwwMgogMi84QTNITEwyNlJzbGJlRTNvMlVadWc0bHRnakxhbGRmLzFoOHF6YndoS243SytkOTBVQ2NnN3VobXNDQ3Y3SXowVzNuNjQKIDZoTFBmb01obHdrSHpjaElnSlZ3UT09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6U0lSWlNYeFRMOVk9Ok5Ia3FrcElicER0ZjlmWWY5UHpHazUKIFBENFBvWG5pRlRLY1VyY1U5Nmw2V1RBTlFyVGFCL28zSUFUMUdXaG9MYmNXZDJSSHQ1eXlSLy9maW5IdE9PaXM3UHZrRDBNOE0KIENOWk15UUt1OFhFSjBZZmhCTi9VQ1p0aFlXRGFmVy9CQnRoUmV4S1FBOUdvRFR3NXRVN2Yzd3QweTA5VE5mNTNaSXVXWmtEaGMKIGc5djdCSTZQMHBWTlUrTmJadm5lZ2NCeXFqcFptN1JnTWhCSW55YWZjYWpvVVE4MzMwR0oxVVNuWWE0bEZnRk9pRXFxcGxwdEMKIGxXSjdKSHFwVjZ0bjVYelZ0N3RkY3pyR2k4SmJLazd6OE5aYTNpSHY3RVFkYWp3dE9KQzJZMGZ6TW94Nys1dHV1U1N6cmJEOXoKIGNhWS90a1E4RFhtSUxvZWNSektQVkpNQTJ5TmdmaC9FLzh6QzdxeFJhOHlUcEFKUW0xUUtwU2NaNHVRa0I3dWZEN2JmNzVtV2UKIFFISmduc0NEdlZWd1YyZ1picnVEbnpoT25XZTBua3QwRDhSWWdmRmdLdEpIM0xCc2ViU1B2d2YrMkNZNTAwYjhDb0VnREtKbzIKIFB4cUZHOGJ5ODJ2Y3Y4SW9BR2QrT1VTNllVV3N5ajl0OU53YXFvcXRBTHRXQXNBTnA0RnhVYi8rSXM0QkQ5TEkwTmxJR1hrU3gKIHdFYnJ1SG5XL2V1NGlSby9zeGg0MDFkREJNSGkxNCt6b2l3SUk4RXNiZmp4cGxRTUprdFlKU2NCeC9YeHUvMnluSjNKT2d4NmMKIG5qNVZIbzRDYmxHdHF0d1F6S1hmR3lNVXpBd3ord0U5QTZuZHA0aXVLSjVIalg4TGExQXZBMHJWK0YyZ1JsS2xUb3JrZUVWUHIKIEhMbmowQytWdmkvblcyM1BRcEMxbllQeFpQd3o5QjJ4ZGdjN2k4VDJ0REQwem0vYVFpd3ZiQ29rbGZ5R2I2bGN0Q3BsYlN3bVcKIHA3NzVlcEYvV3pIdGswREtiZUFreDhOWTNrMTFLKzBuTnVwbjkxSW16cDdpanN2R3RnZXRtbUtaeHZIQjE3NDA4dVQvYjRvMlcKIHFQMklpQXdpZmd4bjgvZC9GYzlVdHU2VStyejRMajZ0bGtPZ3hNS25GYUFZcnA2Smt3PQoKSGksCgpJIGhhdmUgZm91bmQgYSBsaW5lIG9mIGNvZGUgd2hpY2ggSSBtaWdodCBtaXN1bmRlcnN0YW5kLi4uCgpodHRwczovL2dpdGJveC5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPW1hdmVuLWFyY2hpdmVyLmdpdDthPWJsb2I7Zj1zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vYXJjaGl2ZXIvTWF2ZW5BcmNoaXZlci5qYXZhO2g9NjZkOTM1MzZkOGM3N2ZlZjY2MTk0ODQxMzYyY2ZjYTE4YTQ2MGUwYztoYj1IRUFEI2wxMjQKCgogICAgICAgICBpZiAoIGhhc01hbmlmZXN0RW50cmllcyApCiAgICAgICAgIHsKCiAgICAgICAgICAgICBmb3IgKCBNYXAuRW50cnk8U3RyaW5nLCBTdHJpbmc+IGVudHJ5IDogZW50cmllcy5lbnRyeVNldCgpICkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBTdHJpbmcga2V5ID0gZW50cnkuZ2V0S2V5KCk7CiAgICAgICAgICAgICAgICAgU3RyaW5nIHZhbHVlID0gZW50cnkuZ2V0VmFsdWUoKTsKICAgICAgICAgICAgICAgICBNYW5pZmVzdC5BdHRyaWJ1dGUgYXR0ciA9IAptYW5pZmVzdC5nZXRNYWluU2VjdGlvbigpLmdldEF0dHJpYnV0ZSgga2V5ICk7CiAgICAgICAgICAgICAgICAgaWYgKCBrZXkuZXF1YWxzKCAiQ2xhc3NQYXRoIiApICYmIGF0dHIgIT0gbnVsbCApCiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAvLyBNZXJnZSB0aGUgdXNlci1zdXBwbGllZCBDbGFzcy1QYXRoIHZhbHVlIHdpdGggCnRoZSBwcm9ncmFtbWF0aWNhbGx5CiAgICAgICAgICAgICAgICAgICAgIC8vIGNyZWF0ZWQgQ2xhc3MtUGF0aC4gTm90ZSB0aGF0IHRoZSB1c2VyLXN1cHBsaWVkIAp2YWx1ZSBnb2VzIGZpcnN0CiAgICAgICAgICAgICAgICAgICAgIC8vIHNvIHRoYXQgcmVzb3VyY2VzIHRoZXJlIHdpbGwgb3ZlcnJpZGUgYW55IGluIHRoZSAKc3RhbmRhcmQgQ2xhc3MtUGF0aC4KICAgICAgICAgICAgICAgICAgICAgYXR0ci5zZXRWYWx1ZSggdmFsdWUgKyAiICIgKyBhdHRyLmdldFZhbHVlKCkgKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgYWRkTWFuaWZlc3RBdHRyaWJ1dGUoIG1hbmlmZXN0LCBrZXksIHZhbHVlICk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CgoKVGhlIGxpbmUgImtleS5lcXVhbHMoICJDbGFzc1BhdGgiICkiIHdoaWNoIGZyb20gbXkgcG9pbnQgb2YgdmlldyBzaG91bGQgCmNvbnRhaW4gIkNsYXNzLVBhdGgiIGluc3RlYWQgb2YgIkNsYXNzUGF0aCIgPwoKCldEWVQgPwoKS2luZCByZWdhcmRzCkthcmwgSGVpbnogTWFyYmFpc2UKCgoKCk9uIDI4LzEyLzE3IDAwOjQ4LCBTeWx3ZXN0ZXIgTGFjaGlld2ljeiB3cm90ZToKPiBPaywgYWZ0ZXIgbW9yZSB0ZXN0cyBpIGZvdW5kIHRoYXQgZXJyb3IgZXhpc3RzIHdoZW4gcHJvamVjdCB3YXMgZXhlY3V0ZWQgaW4KPiBwYXRoIHdpdGggQCBjaGFyIHRoYXQgd2FzIGVuY29kZWQgdG8gJTQwMiAtCj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9TVVJFRklSRS0xMzEyCj4gCj4gU3lsd2VzdGVyCj4gCj4gxZtyLiwgMjcgZ3J1IDIwMTcgbyAxMzozMSB1xbx5dGtvd25payBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4KPiBuYXBpc2HFgjoKPiAKPj4gSGksCj4+Cj4+IE9uIDI3LzEyLzE3IDEzOjAxLCBTeWx3ZXN0ZXIgTGFjaGlld2ljeiB3cm90ZToKPj4+IEJ1aWxkIGZhaWxzIHdpdGggbG9uZyBkaXJlY3RvcnkgbmFtZSAtIGFsc28gb24gd2luZG93cy4KPj4+IFVwZ3JhZGUgbWF2ZW4tc3VyZWZpcmUtcGx1Z2luIHRvIDIuMjAuMSBmaXhlcyB0ZXN0IGVycm9yLgo+Pgo+PiBIbS4udGhpcyBpcyBhIGxpdHRsZSBiaXQgY29uZnVzaW5nLCBjYXVzZSB0aGUgbGVuZ3RoIGZvciB3aW5kb3dzIGFyZQo+PiBhYm91dCAxNDEgY2hhcmFjdGVycyAoYWxyZWFkeSB0aG91Z2h0IGFib3V0IHNvbWV0aGluZyBzaW1pbGFyKSBidXQgdGhlCj4+IHVwZ3JhZGUgY2hhbmdlcyB0aGUgc2l0dWF0aW9uIGNvbXBsZXRlbHkgLi4uVGhhbmtzIGZvciB0aGF0IGhpbnQuLgo+Pgo+Pgo+PiBKdXN0IG9uZSB0ZXN0IGNhc2VzIGlzIGZhaWxpbmcuLi4KPj4KPj4gS2lkbiByZWdhcmRzCj4+IEthcmwgSGVpbnogTWFyYmFpc2UKPj4KPj4+Cj4+Pgo+Pj4gxZtyLiwgMjcgZ3J1IDIwMTcgbyAwODo0OSB1xbx5dGtvd25payBQbGFtZW4gVG90ZXYgPAo+PiBwbGFtZW4uaXYudG90ZXZAZ21haWwuY29tPgo+Pj4gbmFwaXNhxYI6Cj4+Pgo+Pj4+IEFuZCBpZiB0aGlzIGNvdWxkIGhlbHAgKEkga25vdyBpdCdzIG9idmlvdXMgYnV0IG1heSBzYWZlIHRpbWUpIGl0Cj4+Pj4gbG9va3MgdGhlIHJlYXNvbiBmb3IgdGhlIGZhaWxpbmcgdGVzdHMgaXMgdGhlIHNhbWUuIFRoZSBmb2xsb3dpbmcgY29kZQo+Pj4+IGZhaWxzIHdpdGggYXNzZXJ0aW9uIGVycm9yOgo+Pj4+Cj4+Pj4gICAgICAgICAgIGZpbmFsIE1hbmlmZXN0IG1hbmlmZXN0ID0gZ2V0SmFyRmlsZU1hbmlmZXN0KCBqYXJGaWxlICk7Cj4+Pj4gICAgICAgICAgIFN0cmluZyBjbGFzc1BhdGggPSBtYW5pZmVzdC5nZXRNYWluQXR0cmlidXRlcygpLmdldFZhbHVlKAo+Pj4+IEF0dHJpYnV0ZXMuTmFtZS5DTEFTU19QQVRIICk7Cj4+Pj4gICAgICAgICAgIGFzc2VydE5vdE51bGwoIGNsYXNzUGF0aCApOwo+Pj4+Cj4+Pj4gVGhlIE51bGxQb2ludGVyRXhjZXB0aW9ucyBmcm9tIHRoZSByZXN0IG9mIHRoZSB0ZXN0cyBhcmUgY29taW5nIGZyb20KPj4+PiB0aGUgc2FtZSBleHByZXNzaW9uIChgbWFuaWZlc3QuZ2V0TWFpbkF0dHJpYnV0ZXMoKS5nZXRWYWx1ZSgKPj4+PiAiQ2xhc3MtUGF0aCIgKS5nZXRCeXRlcygpYCkuCj4+Pj4KPj4+PiBPbiBXZWQsIERlYyAyNywgMjAxNyBhdCA5OjM5IEFNLCBQbGFtZW4gVG90ZXYgPAo+PiBwbGFtZW4uaXYudG90ZXZAZ21haWwuY29tPgo+Pj4+IHdyb3RlOgo+Pj4+PiBIaSwKPj4+Pj4KPj4+Pj4gT24gVHVlLCBEZWMgMjYsIDIwMTcgYXQgOTowMSBQTSwgS2FybCBIZWlueiBNYXJiYWlzZSA8Cj4+IGtobWFyYmFpc2VAZ214LmRlPgo+Pj4+IHdyb3RlOgo+Pj4+Pgo+Pj4+Pj4gSXMgc29tZW9uZSBvdXQgdGhlcmUgd2hvIGNhbiBjaGVjayB0aGUgY3VycmVudCBzdGF0ZSBvZiBtYXZlbi1hcmNoaXZlcgo+Pj4+IGdpdAo+Pj4+Pj4gcmVwbyBvbiBXaW5kb3dzIGFuZCBjYW4gcmVwcm9kdWNlIHRoZSBpc3N1ZSA/Cj4+Pj4+Cj4+Pj4+IEkgcmFuIHRoZSBidWlsZCBhIGNvdXBsZSBvZiB0aW1lcyhqdXN0IGluIGNhc2UpIG9uIFdpbmRvd3MgMTAsIE1hdmVuCj4+Pj4+IDMuNS4yLCBKREsgOS4wLjEgYW5kIGV2ZXJ5dGhpbmcgaXMgb2suIEFuZCBpdCBsb29rcyBsaWtlIHRoZSBidWlsZCBpcwo+Pj4+PiBmYWlsaW5nIG9uIExpbnV4IEpESyA5IGFuZCBXaW5kb3dzIEpESyA4IGFzIHdlbGwsIHNvIGlmIHRoZXJlIGlzIGEgYnVnCj4+Pj4+IChhbmQgbm90IGEgcHJvYmxlbSB3aXRoIHRoZSBidWlsZCkgdGhlbiBpdCBpcyBwcm9iYWJseSBub3QgYSBXaW5kb3dzCj4+Pj4+IG9yIEpESyA5IHJlbGF0ZWQuCj4+Pj4+Cj4+Pj4+IFJlZ2FyZHMsCj4+Pj4+IFBsYW1lbiBUb3RldgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MTk2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBPY3QgIDggMTc6NDU6MjYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTk2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDA3NDU2MTBCOUUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAgOCBPY3QgMjAxNyAxNzo0NToyNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ0OTc2IGludm9rZWQgYnkgdWlkIDUwMCk7IDggT2N0IDIwMTcgMTc6NDU6MjUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ0ODk3IGludm9rZWQgYnkgdWlkIDUwMCk7IDggT2N0IDIwMTcgMTc6NDU6MjUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0NDg4NiBpbnZva2VkIGJ5IHVpZCA5OSk7IDggT2N0IDIwMTcgMTc6NDU6MjUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDA4IE9jdCAyMDE3IDE3OjQ1OjI1ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgOEU2QzAxQTQ3MTIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sICA4IE9jdCAyMDE3IDE3OjQ1OjI0ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuNQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC41IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCUtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDFRaFd1cHR0RlJDMCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgIDggT2N0IDIwMTcgMTc6NDU6MjEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDEzLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTM1XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDgzQzEwNUY1RkQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sICA4IE9jdCAyMDE3IDE3OjQ1OjIwICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDc0IHdpdGggTUUKCWlkIEs1bEwxdzAwMzIwVWZkeTAzNWxMdUI7IFN1biwgMDggT2N0IDIwMTcgMTk6NDU6MjAgKzAyMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogU3VuLCAwOCBPY3QgMjAxNyAxOTo0NToyMCArMDIwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBKZW5raW5zIGFuZCBNYXZlbiAzLjAuNSBvciBKREsgNwpEYXRlOiBTdW4sIDA4IE9jdCAyMDE3IDE5OjQ1OjE5ICswMjAwCk1lc3NhZ2UtSUQ6IDw2MTA5MDE3Lm41YmVPWHZHaEVAZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zNS1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpJbi1SZXBseS1UbzogPENBS3VWekJTN1Q0VFBjWkFGSmU9ZlJ5djFSVUdQSzhCRmJEcWplUTNMVGsxWnZ6SGh6Z0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPDEwNTQ0NjE1LkI0aE8zUG52RXpAZ2lnYT4gPDU2NTE3NTYuMHpOQ2k1YjZXSkBnaWdhPiA8Q0FLdVZ6QlM3VDRUUGNaQUZKZT1mUnl2MVJVR1BLOEJGYkRxamVRM0xUazFadnpIaHpnQG1haWwuZ21haWwuY29tPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCmFueSBnaXQgZXhwZXJ0IGF2YWlsYWJsZSB0byB0ZWxsIHVzIGlmIHN1Ym1vZHVsZXMgYXJlIHdoYXQgd2UncmUgbG9va2luZyBmbz0Kcj8KQW5kIHdpbGwgcGVybWl0IHNvbWV0aGluZyBsaWtlIHN2biB0cnVua3MgWzFdLCBpZSB1c2UgZWFjaCBzdWJtb2R1bGUgdG8gY29tPQptaXQ9MjAKaW5kZXBlbmRhbnRseSwgd2hpbGUgaGF2aW5nIGVhc3kgZnVsbCBjb2RlIGNsb25lIG9yIHB1bGwuCgpJSVVDLCB3ZSdsbCBoYXZlIHRvIGxlYXJuIG5ldyBnaXQgY29tbWFuZHMsIHNpbmNlIGl0J3Mgbm90IGFzIHRyYW5zcGFyZW50IGE9CnM9MjAKc3ZuIGV4dGVybmFscwoKYW5kIHRvIGhhdmUgcGx1Z2lucy8gYW5kIHNoYXJlZC8gZGlyZWN0b3JpZXMsIGFyZSB3ZSBhYmxlIHRvIGhhdmUgYSBzdWJtb2R1PQpsZT0yMApuYW1lIHdpdGggYSAvLCBvciB3aWxsIHdlIG5lZWQgdG8gY3JlYXRlIHBsdWdpbnMuZ2l0IGFuZCBzaGFyZWQuZ2l0IGNvbnRhaW49CmluZz0yMApzdWJtb2R1bGVzIGZvciBlYWNoIGNvbXBvbmVudCwgdGhlbiByZWZlcmVuY2UgdGhlc2UgcmVwb3MgZnJvbSB0aGUgZ2xvYmFsIGc9Cml0PTIwCnJlcG8gbGlzdGluZyBzdWIgbW9kdWxlcz8KCm9uY2UgYWdhaW4sIGEgcGVyc29uYWwgZ2l0IHJlcG8gb24gZ2l0aHViIGhhdmluZyBzdWJtb2R1bGVzIHRvIGV4aXN0aW5nIG1hdj0KZW49MjAKZ290IHJlcG9zIGNvdWxkIG1ha2UgYSBnb29kIFBvQzogSSdtIHdvcmtpbmcgb24gbS1wZGYtcCBjdXJyZW50bHksIHNvIG1heWJlPQo9MjAKc29tZW9uZSBjYW4gYmVhdCBtZSBhdCBpdC4uLgoKUmVnYXJkcywKCkhlcnY9RTkKClsxXSBodHRwOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL21hdmVuL3RydW5rcy8KCkxlIGRpbWFuY2hlIDggb2N0b2JyZSAyMDE3LCAxMzowOTo1OCBDRVNUIFRpYm9yIERpZ2FuYSBhID1FOWNyaXQgOgo+IE5vdyBJIGhhdmUgZm91bmQgb3V0IHRoYXQgR2l0SHViIGhhcyBzdWJtb2R1bGVzLiBUaGlzIGRvZXMgbm90IGludHJvZHVjZSA9CmFuCj4gaW50ZXJtZWRpYXRlIHBhdGggaW4gVVJMIGJ1dCBpdCB3b3VsZCBpbnRyb2R1Y2UgYSBraW5kIG9mIGdyb3VwcGVyIHJlcG8KPiBmb2xkZXIuIEZvciBpbnN0YW5jZSBtYXZlbi1jbGVhbi1wbHVnaW4gd291bGQgYmUgc3VibW9kdWxlIGluc2lkZSByZXBvCj4gbWF2ZW4tcGx1Z2lucy4KPiBSZWZlcmVuY2VzOgo+IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzM1MDQzNzMzL2hvdy1kby1pLWNyZWF0ZS1uZXN0ZWQtcmVwb3M9Cml0bwo+IHJpZXMtaW4tZ2l0aHViCj49MjAKPiBFeGFtcGxlIGZyb20gc3RhY2tvdmVmbG93Ogo+IGh0dHBzOi8vZ2l0aHViLmNvbS9sYXJpc3RyYS9jaW5jaC1uZXN0ZWQtZXhhbXBsZS8KPiBTZWUgdGhlIGRlZmluaXRpb24gb2Ygc3VibW9kdWxlcwo+IGh0dHBzOi8vZ2l0aHViLmNvbS9sYXJpc3RyYS9jaW5jaC1uZXN0ZWQtZXhhbXBsZS9ibG9iL21hc3Rlci8uZ2l0bW9kdWxlcwo+IHdoaWNoIHJlc3VsdHMgaW4gcmVwb3M6Cj4gaHR0cHM6Ly9naXRodWIuY29tL2xhcmlzdHJhL2NpbmNoLWV4YW1wbGUvCj4gaHR0cHM6Ly9naXRodWIuY29tL2xhcmlzdHJhL2NpbmNoCj49MjAKPiBJIHRoaW5rIEdpdEh1YiBkb2VzIG5vdCBwcm92aWRlIHVzIHdpdGggYmV0dGVyIHNvbHV0aW9ucy4KPj0yMAo+IE9uIFN1biwgT2N0IDgsIDIwMTcgYXQgMTI6NDkgUE0sIEhlcnY9RTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+PTIwCj4gd3JvdGU6Cj4gPiBJIGZlYXIgdGhpcyBpcyBub3QgYW4gb3B0aW9uIHRvZGF5LCBidXQgaWRlYWxseSwgdGhhdCB3b3VsZCBiZSBhIHBlcmZlYz0KdGx5Cj4gPiB2aXNpYmxlIGdyb3VwaW5nCj4gPj0yMAo+ID4gd2UgbmVlZCB0byBmaW5kIGFub3RoZXIgd2F5IG9mIGdyb3VwaW5nLCBmb3IgcGVvcGxlIHdobyBkbyBjYXJlIGFib3V0Cj4gPiBNYXZlbgo+ID4gZ2VuZXJhbCBzdHJ1Y3R1cmU6IHBlb3BsZSB3aG8ganVzdCB3b3JrIG9uIGFuIGFydGlmYWN0IGp1c3QgZG9uJ3QgY2FyZQo+ID4gYW5kIHRoZXkgZG9uJ3QgY2FyZSB0aGF0IGdpdCByZXBvcyBhcmUgZmxhdCBldmVuIGF0IEFwYWNoZSBsZXZlbDogQXBhY2hlCj4gPiBsZXZlbAo+ID4ganVzdCBlbmZvcmNlIGdyb3VwaW5nIHZpYSByZXBvIG5hbWUgcHJlZml4Cj4gPiBodHRwOi8vZ2l0LmFwYWNoZS5vcmcvCj4gPj0yMAo+ID4gY3VycmVudGx5LCBJIGhvcGUgdGhhdCBvdXIgImZ1bGwgTWF2ZW4gc291cmNlIGNvZGUgY2xvbmUiIGltcGxlbWVudGF0aW9uCj4gPiB3b3VsZAo+ID4gbWFrZSB0aGUgTWF2ZW4gY29kZSBzdHJ1Y3R1cmUgZ3JvdXBpbmcgdmlzaWJsZQo+ID4gaWYgd2UgaW1wbGVtZW50IGl0IGFzIGEgc2hlbGwgc2NyaXB0LCB0aGF0J3Mgb25seSBhIGZldyBta2RpcnM6IGJ1dCBJJ20KPiA+IG5vdAo+ID4gY29udmluY2VkIGJ5IHNoZWxsIHNjcmlwdCBpbXBsZW1lbnRhdGlvbiwgc2luY2UgY2xvbmluZyBpcyBvbmUgY29tbWFuZCwKPiA+IGJ1dCB3ZQo+ID4gbmVlZCBhbHNvIHRvIGJlIGFibGUgdG8gZmV0Y2ggYW5kIHB1bGwKPiA+PTIwCj4gPiBSZWdhcmRzLAo+ID49MjAKPiA+IEhlcnY9RTkKPiA+PTIwCj4gPiBMZSBkaW1hbmNoZSA4IG9jdG9icmUgMjAxNywgMTI6MjE6NTQgQ0VTVCBUaWJvciBEaWdhbmEgYSA9RTljcml0IDoKPiA+ID4gV291bGQgd2UgbmVlZCB0byBoYXZlIHRoZSBVUkxzIGxpa2UgdGhlc2U/Cj4gPiA+IGdpdGh1Yi9hcGFjaGUvKioqL3JlcG8KPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS8qbWF2ZW4tcGx1Z2lucyovbWF2ZW4tY2xlYW4tcGx1Z2luLwo+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlLyptYXZlbi1zaGFyZWQqL21hdmVuLXNoYXJlZC11dGlscy8KPiA+ID49MjAKPiA+ID4gT24gU3VuLCBPY3QgOCwgMjAxNyBhdCA0OjU1IEFNLCBIZXJ2PUU5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mPQpyPgo+ID49MjAKPiA+IHdyb3RlOgo+ID4gPiA+IFRMRFI7ID0zRAo+ID4gPiA+IFBlcmhhcHMgd2UgY2FuIHN0YXJ0IHdpdGggMiBwcm9vZnMgb2YgY29uY2VwdDoKPiA+ID4gPiAxLiBmdWxsIGdpdCBjbG9uZSArIEplbmtpbnMgam9icyBmb3IgdGhlIDcgZXhpc3RpbmcgZ2l0IHJlcG9zICh3aXRoPQogNgo+ID4gPiA+IGFkZGl0aW9uYWwgb25lcyBpbiAyIGRheXMpCj4gPiA+ID4gMi4gZ2l0IHNwbGl0IG9mIG9uZSBvZiB0aGUgYWdncmVnYXRvciBzdm4gdHJ1bms6IHNraW5zIG9yIGRveGlhLXRvbz0KbHMKPiA+PTIwCj4gPiBjYW4KPiA+PTIwCj4gPiA+ID4gYmUKPiA+ID4gPiBlYXN5IGNob2ljZXMgc2luY2UgdGhleSBhcmUgbGlnaHQsIHdoZXJlIHBsdWdpbnMgb3Igc2hhcmVkIGFyZSBwZXJoPQphcHMKPiA+PTIwCj4gPiB0b28KPiA+PTIwCj4gPiA+ID4gaGVhdnkuIFRoZSBvbmUgd29ya2luZyBvbiB0aGlzIFBvQyB3aWxsIG1ha2UgaGlzIGNob2ljZQo+ID4gPiA+PTIwCj4gPiA+ID4gdGhlbiBtb3JlIGRldGFpbGVkIGFuc3dlciBpbmxpbmUgdGhhdCBsZWFkIHRvIHRoaXMgUG9DcyBwcm9wb3NhbAo+ID4gPiA+PTIwCj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPj0yMAo+ID4gPiA+IEhlcnY9RTkKPiA+ID4gPj0yMAo+ID4gPiA+IExlIGRpbWFuY2hlIDggb2N0b2JyZSAyMDE3LCAwMDowMjoxMCBDRVNUIFRpYm9yIERpZ2FuYSBhID1FOWNyaXQgOgo+ID4gPiA+ID4gSSBkb24ndCB0aGluayB0aGUgZGV2cyB3b3VsZCB3b3JrIG9uIGFsbCBhcnRpZmFjdHMocHJvamVjdHMpIGEgdGk9Cm1lLgo+ID4gPiA+PTIwCj4gPiA+ID4gc3VyZSwgSSB0aGluayBJJ20gb25lIG9mIHRoZSBmZXcgcGVvcGxlIHdvcmtpbmcgb24gbmVhciBldmVyeXRoaW5nCj4gPj0yMAo+ID4gKHdpdGgKPiA+PTIwCj4gPiA+ID4gcmFyZQo+ID4gPiA+IGV4Y2VwdGlvbnMgbGlrZSBTdXJlZmlyZSwgYXMgeW91IG5vdGljZWQgOikgKQo+ID4gPiA+IGJ1dCBmb3IgdXN1YWwgY29udHJpYnV0b3IsIHRoZXJlIGlzIG5vIGlzc3VlCj4gPiA+ID49MjAKPiA+ID4gPiBJJ20gbm90IGEgZ2l0IGV4cGVydCwgdGhlbiBJIGRvbid0IGtub3cgaWYgZWFzeSAiZnVsbCBNYXZlbiBjbG9uZSIgPQppcwo+ID4gPiA+IGJldHRlcgo+ID4gPiA+IGRvbmUgd2l0aCBhIHNoZWxsIHNjcmlwdCBvciBzb21lIGdpdCBtb2R1bGVzCj4gPiA+ID49MjAKPiA+ID4gPiA+IElmIHRoZSBuYW1pbmcgY29udmVudGlvbiBvZiByZXBvIGZvciBhIHBsdWdpbiB3b3VsZCBiZSBhcnRpZmFjdElkLAo+ID49MjAKPiA+IGxpa2UKPiA+PTIwCj4gPiA+ID4gPiAvbWF2ZW4tY2xlYW4tcGx1Z2luLCB0aGVuIGV2ZW4gZWFzeSB0byBmaWd1cmUgb3V0IHdoaWNoIG9uZSB0bwo+ID4gPiA+ID4gY2xvbmUuCj4gPiA+ID4gPiBUaGUgbW9zdCBsaWtlbHkgdGhlIGRldiB3b3VsZCBqdXN0IGNsb25lIG9uZSByZXBvIHNoZS9oZSBpcwo+ID49MjAKPiA+IGludGVyZXN0ZWQKPiA+PTIwCj4gPiA+ID4gPiBpbgo+ID4gPiA+ID4gYXQgdGhlIG1vbWVudCwgaS5lLiByZXBvc2l0b3J5IC9tYXZlbi1jbGVhbi1wbHVnaW4sIGxldCdzIHNheS4KPiA+ID4gPiA+IEl0J3MgZ29vZCB0byBhdm9pZCBhbnkgc2hhcmVkIGZpbGVzIGFjcm9zcyB0aGVtLCBldmVuIEkgZG9uJ3QgdGhpPQpuawo+ID49MjAKPiA+IGRldnMKPiA+PTIwCj4gPiA+ID4gPiBzaGFyZSBzb21lIGluIHN2biB0b2RheS4gVGhlIHJlbGVhc2UgcHJvY2VzcyB3b3VsZCBiZSBxdWl0ZSB1c3VhbCwKPiA+PTIwCj4gPiBpLmUuCj4gPj0yMAo+ID4gPiA+IG9uZQo+ID4gPiA+PTIwCj4gPiA+ID4gPiByZXBvID0zRCBvbmUgcHJvamVjdCwgYW5kIG5ldyBkZXZzIGFscmVhZHkgaGF2ZSB0aGVzZSBleHBlcmllbmNlcwo+ID4gPiA+ID4gd2hpY2gKPiA+ID4gPj0yMAo+ID4gPiA+IHdpbGwKPiA+ID4gPj0yMAo+ID4gPiA+ID4gYmUgc2ltcGxlIGZvciB0aGVtIHRvIGFkYXB0IGZhc3Rlci4KPiA+ID4gPj0yMAo+ID4gPiA+ICsxCj4gPiA+ID4gdGhlIG9ubHkgZHJhd2JhY2sgSSBzZWUgY3VycmVudGx5IGlzIHRoYXQgdGhlcmUgaXMgbm8gbmF0dXJhbAo+ID4gPiA+IGdyb3VwaW5nLAo+ID4gPiA+IHRoZW4KPiA+ID4gPiB3ZSBoYXZlIGEgZmxhdCBsaXQgb2YgbmVhciAxMDAgZ2l0IHJlcG9zIHdpdGhvdXQgdGhlIGN1cnJlbnQgc3RydWN0PQp1cmUKPiA+ID4gPiAocGx1Z2lucywgc2hhcmVkIGNvbXBvbmVudHMsIHNraW5zLCAuLi4pOiBJIHRoaW5rIGNvbXBvbmVudHMgc3RydWN0PQp1cmUKPiA+PTIwCj4gPiBpcwo+ID49MjAKPiA+ID4gPiB1c2VmdWwgZm9yIG1haW50ZW5hYmlsaXR5Cj4gPiA+ID4gYnV0IG5vdCByZWFsbHkgYSBjb21wbGV0ZSBzaG93c3RvcHBlcgo+ID4gPiA+IGFuZCBwZXJoYXBzIHRoZSAiTWF2ZW4gZnVsbCBjbG9uZSIgdG9vbGluZyBjYW4gcmUtY3JlYXRlIHNvbWUgZ3JvdXA9CmluZwo+ID49MjAKPiA+IHRvCj4gPj0yMAo+ID4gPiA+IGtlZXAKPiA+ID4gPiB2aXNpYmxlIHN0cnVjdHVyZQo+ID4gPiA+PTIwCj4gPiA+ID4gTm93LCBzb21lb25lIGhhcyB0byBrbm93IGhvdyB0byBjcmVhdGUgcGVyLWNvbXBvbmVudCBnaXQgcmVwbyB3aXRoCj4gPiA+ID4gdGFncwo+ID4gPiA+IChlaXRoZXIgYnkgcmV3b3JraW5nIGV4aXRpbmcgZ2l0IG1pcnJvcnMsIGVpdGhlciBieSByZXN0YXJ0aW5nIGZyb20KPiA+PTIwCj4gPiBzdm4pLAo+ID49MjAKPiA+ID4gPiBhbmQKPiA+ID4gPiB0aGF0J3Mgbm90IG1lIDopCj4gPiA+ID49MjAKPiA+ID4gPiBnaXZlbiB0aGUgdm9sdW1lIChhZGRpbmcgNzAgZ2l0IHJlcG9zIGZvciBNYXZlbiksIHdlJ2xsIGhhdmUgdG8gdGVsbAo+ID49MjAKPiA+IGluZnJhCj4gPj0yMAo+ID4gPiA+IGFib3V0IGl0Lgo+ID4gPiA+PTIwCj4gPiA+ID4gVGhlbiB0aGVyZSBpcyB0aGUgSmVua2lucyBqb2JzIGNvbmZpZ3VyYXRpb246Cj4gPiA+ID4gLSB3ZSBuZWVkIGVhc3kgSmVua2luc2ZpbGUgaW4gZWFjaCByZXBvCj4gPiA+ID4gLSB3ZSBuZWVkIGVhc3kgODAgam9icyBjcmVhdGlvbiAobm8sIEkgd29uJ3QgbWFudWFsbHkgY3JlYXRlIDgwIGpvYnMKPiA+ID4gPiBwZXJzb25hbGx5KQo+ID4gPiA+IEFuZCBvbmNlIGFnYWluLCBpbmZyYSB3aWxsIGhhdmUgdG8gYmUgaW4gdGhlIGxvb3AgKGF0IEplbmtpbnMgc2lkZQo+ID4gPiA+IHRoaXMKPiA+ID4gPiB0aW1lKSwKPiA+ID4gPiBzaW5jZSBJIGZlYXIgdGhlIGxvYWQgb24gSmVua2lucyBtYXN0ZXIgbm9kZSB3b24ndCBiZSBsaWdodDogcGVyaGFwcwo+ID4gPiA+IHRoYXQncwo+ID4gPiA+IHdoZXJlIEplbmtpbnMgZm9sZGVycyB3aWxsIGJlIHVzZWZ1bCwgYnV0IEknbSBub3QgYSBKZW5raW5zIGV4cGVydAo+ID49MjAKPiA+IGVpdGhlci4KPiA+PTIwCj4gPiA+ID4gSWYgZXZlcnl0aGluZyBzZWVtcyBmZWFzaWJsZSB0byBzcGxpdCBvdXIgc3ZuIGNvZGUgaW50byAxIGdpdCByZXBvCj4gPiA+ID4gcGVyLQo+ID4gPiA+IGNvbXBvbmVudCwgd2hpY2ggd2lsbCBicmluZyB1cyB0byAiZnVsbCBNYXZlbiBjb2RlIiBiZWluZyBuZWFyIDEwMAo+ID49MjAKPiA+IHJlcG9zLAo+ID49MjAKPiA+ID4gPiBJJ20KPiA+ID4gPiBvayB3aXRoIGl0Lgo+ID4gPiA+IFdlJ2xsIG5lZWQgdGhlIGhlbHAgb2YgbWlzYyBleHBlcnRzIG9uIEplbmtpbnMgYW5kIGdpdCB0byBwcmVwYXJlCj4gPj0yMAo+ID4gdGhpbmdzCj4gPj0yMAo+ID4gPiA+IGF0Cj4gPiA+ID4gdGhpcyBzY2FsZS4KPiA+ID4gPj0yMAo+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0KPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDkwMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gRGVjIDMxIDExOjEzOjA4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDkwMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA5RTNERDE3OTM4Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMzEgRGVjIDIwMTcgMTE6MTM6MDggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3NjQ4MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMSBEZWMgMjAxNyAxMToxMzowOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzYzOTIgaW52b2tlZCBieSB1aWQgNTAwKTsgMzEgRGVjIDIwMTcgMTE6MTM6MDggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NjM4MSBpbnZva2VkIGJ5IHVpZCA5OSk7IDMxIERlYyAyMDE3IDExOjEzOjA3IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAzMSBEZWMgMjAxNyAxMToxMzowNyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDY4RkE5MUEwNURFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAzMSBEZWMgMjAxNyAxMToxMzowNyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDAuOTk5ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTAuOTk5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgTDg5Y1RpSnBjRjhRIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAzMSBEZWMgMjAxNyAxMToxMzowNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMTAuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMzJdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMThBOUI1RjQ3NAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMzEgRGVjIDIwMTcgMTE6MTM6MDUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMjAgd2l0aCBNRQoJaWQgc2JEMzF3MDB0MjBVZmR5MDNiRDRIWjsgU3VuLCAzMSBEZWMgMjAxNyAxMjoxMzowNCArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBTdW4sIDMxIERlYyAyMDE3IDEyOjEzOjA0ICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtJTVBPUlRBTlRdIFJlOiBHaXQgbWlncmF0aW9uIG5leHQgc3RlcHMKRGF0ZTogU3VuLCAzMSBEZWMgMjAxNyAxMjoxMzowMyArMDEwMApNZXNzYWdlLUlEOiA8NjM0MTE3MS5Za1o2aXVuZTdmQGdpZ2E+CkluLVJlcGx5LVRvOiA8Mjc5Mjk3MC5QYnBhb3VnWGZLQGdpZ2E+ClJlZmVyZW5jZXM6IDwyMDA5NzY1NTkyLjIyOTcyMjE3LjE1MTQxMDkyNTY2MzIuSmF2YU1haWwucm9vdEBzcG9vbGVyNC1nMjc+IDxDQStuUG5NeS03X1ItdnN2a0ZnaGI9ZHlLTFZFXytYUENlMHlIa0o1QXVuYzdHNHpzYlFAbWFpbC5nbWFpbC5jb20+IDwyNzkyOTcwLlBicGFvdWdYZktAZ2lnYT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKdHJpZWQgdG8gYW5hbHl6ZSBtYXZlbi1qYXZhZG9jLXBsdWdpbiBjdXJyZW50IGZhaWx1cmU6Cmh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvam9iL21hdmVuLWJveC9qb2IvbWF2ZW4tamF2YWRvYy1wbHVnaW4vam9iL21hc3Rlci8KCmxvb2tpbmcgYXQgbG9ncyBmcm9tIHRoZSBzdGFnZSB2aWV3IGdpdmVzIG1hbmFnZWFibGUgbG9nIGZvciBlYWNoIE9TL2pkaz0yMApidWlsZC4KQnV0IEkgc2VlIDIgaXNzdWVzOgoKMS4gZXZlcnl0aGluZyBpcyBtYXJrZWQgYXMgaGF2aW5nIHRlc3QgaXNzdWVzLCB3aGVuIG9ubHkgV2luZG93cyBidWlsZHMgaGF2PQplPTIwCnN1Y2ggYSBmYWlsaW5nIGlzc3VlIChvbiBkZXRlY3RMaW5rcyBJVCk6IHRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSByZWxhdGVkID0KdG89MjAKZmFpbCBmYXN0IGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgZmlyc3QgYnVpbGQKCjIuIG9uY2UgSSBrbm93IHRoYXQgSSBuZWVkIHRvIGludmVzdGlnYXRlIGRldGVjdExpbmtzIElUIG9uIFdpbmRvd3MgYnVpbGRzPQo9MjAKKGVhY2ggSkRLOiA3LCA4IG9yIDkpLCBob3cgY2FuIEkgZ2V0IHdvcmtzcGFjZSBjb250ZW50IGZvciBlYWNoIGJ1aWxkPz0yMApVc3VhbGx5LCBJIHVzZWQgd29ya3NwYWNlIHZpZXcgdG8gZ2V0IGJ1aWxkLmxvZyBhbmQgdHJ5IHRvIHVuZGVyc3RhbmQgd2hhdCA9CnRoZT0yMApmYWlsdXJlIHdhcywgYnV0IG5vd2FkYXlzLCBJIGNhbid0IG9yIEkgZG9uJ3Qga25vdyBob3cgdG8gZG8uLi4KClRoaXMgaXMgaGVyZSBvbiBhIGZhaWx1cmUgdGhhdCBJIHN1cHBvc2UgaXMgcmVsZXZhbnQ6IEkgc3VwcG9zZSBzb21lIG9mIHRoZT0KPTIwCmZhaWxpbmcgam9icyBjdXJyZW50bHkgYXJlIG1vcmUgZmFsc2UgcG9zaXRpdmVzLCB0aGVuIGhhcmRlciB0byBhbmFseXplLi4uCgpidXQgbGV0J3Mgc3RhcnQgd2l0aCBub3JtYWwgZGVidWdnaW5nIG9mIGEgbm9ybWFsIGlzc3VlIGRldGVjdGVkIGJ5IHRoZSBDST0KPTIwCmdpdmVuIGl0cyB3aWRlIE9TKmpkayBjb3ZlcmFnZQoKUmVnYXJkcywKCkhlcnY9QzM9QTkKCkxlIGRpbWFuY2hlIDMxIGQ9QzM9QTljZW1icmUgMjAxNywgMTE6NDk6NTkgQ0VUIEhlcnY9QzM9QTkgQk9VVEVNWSBhID1DMz1BOT0KY3JpdCA6Cj4gTGUgZGltYW5jaGUgMzEgZD1DMz1BOWNlbWJyZSAyMDE3LCAxMTowNTozOSBDRVQgU3RlcGhlbiBDb25ub2xseSBhID1DMz1BOT0KY3JpdCA6Cj4gWy4uLl0KPj0yMAo+ID4gPiA+IHdoYXQgYXJlIGFsbCB0aGUgb3BlbiB0YXNrcyBsaW5rcz8KPiA+ID49MjAKPiA+ID4gd2FzIHN1cHBvc2VkIHRvIGJlIGZpeGVkIGFmdGVyIEplbmtpbnMgcGx1Z2luIHVwZ3JhZGUgdGhpcyB3ZWVrCj4gPiA+IEBTdGVwaGVuIGlzIHRoaXMgYSBrbm93biBpc3N1ZT8KPiA+PTIwCj4gPiBJIG1heSBoYXZlIHRvIHR3ZWFrIHRoZSBzaGFyZWQgbGliIGFsc28uIEl0IHdpbGwgYmUgVHVlc2RheSBiZWZvcmUgSSB0dT0Kcm4KPiA+IG9uIG15IE1hYwo+PTIwCj4gcGVyZmVjdDogaGF2ZSBuaWNlIGhvbGlkYXlzLCB3b3JraW5nIG9uIGl0IG5leHQgeWVhciBpcyBwZXJmZWN0IDopCj49MjAKPiBbLi4uXQo+PTIwCj4gPiA+ID4gSG9uZXN0bHkgdGhlIGN1cnJlbnQgamVua2lucyByZXN1bHQgaXMgY29tcGxpY2F0ZWQgdG8gdXNlLi4uLgo+ID4gPj0yMAo+ID4gPiB3aGVuIHRoZSByZXNldWx0IGlzIGEgcGFzc2luZyBidWlsZCwgaXQncyBwZXJmZWN0LCBidXQgSSBjb25maXJtIHRoYXQKPiA+ID4gd2hlbgo+ID4gPiB0aGVyZSBpcyBhIGZhaWx1cmUsIGl0J3MgYSBwYWluIHRvIHVuZGVyc3RhbmQgd2hlcmUgaXMgdGhlIGZhaWx1cmUKPiA+ID4gKHdoaWNoCj4gPiA+IE9TLwo+ID4gPiBqZGssIHdoaWNoIHRlc3QpCj4gPiA+IGFuZCBldmVudHVhbGx5IGRldGVjdCBpZiB0aGVyZSBhcmUgZmFsc2UgcG9zaXRpdmVzIG9uIHNvbWUgY29uZGl0aW9ucz0KPTJFLi4KPiA+PTIwCj4gPiBTbyB0aGVyZSBhcmUgdHdvIGlzc3VlcyBpbWhvOgo+ID49MjAKPiA+IDEuIEZhc3QgZmFpbCBraWxscyBvdGhlciBwYXJhbGxlbCBleGVjdXRpb25zIGluIHN1Y2ggYSB3YXkgdGhhdCB0aGV5Cj4gPiByZXBvcnQKPiA+IGFzIGZhaWxlZC4gST1FMj04MD05OWQgbGlrZSB0aGVtIHRvIGZsYWcgYXMgYWJvcnRlZCBpbnN0ZWFkLiBUaGF0IHdvdWxkPQogbWFrZQo+ID4gaWRlbnRpZmljYXRpb24gZnJvbSB0aGUgc3RhZ2UgdmlldyBvciBibHVlIG9jZWFuIGVhc2llci4KPj0yMAo+IHllcywgdGhpcyB3b3VsZCBiZSBhIGdvb2QgZmlyc3QgZW5oYW5jZW1lbnQKPj0yMAo+ID4gMi4gVGhlIHBhcmFsbGVsIGxvZ3MuIFRoaXMgaXMgYSBwaXBlbGluZSBkZXNpZ24gZGVjaXNpb24uIFlvdSBhcmUgYmV0dGVyCj4gPiBvZmYgdmlld2luZyBsb2dzIHRocm91Z2ggc3RhZ2UgdmlldyBvciBibHVlIG9jZWFuLgo+PTIwCj4gbGFzdCB0aW1lIEkgdHJpZWQsIEkgZGlkIG5vdCBmaW5kIG91dHB1dCBjbGVhcjogYnV0IHBlcmhhcHMgaXQgd2FzIG9uCj4gYWJvcnRlZCBidWlsZHMgbWFya2VkIGFzIGZhaWxlZC4uLiBJJ2xsIGhhdmUgdG8gdHJ5IHdpdGggdGhhdCBpc3N1ZSBpbgo+IG1pbmQuCj4gPiA+ID4gQW5kIGFzIGZhciBJIGNhbiBzZWUgU05BUFNIT1QgYXJlIG5vdCBhbnltb3JlIGRlcGxveWVkIHdoZXJlYXMgdGhleQo+ID4gPiA+IHdlcmUKPiA+ID4gPiBkZXBsb3llZCBwcmV2aW91c2x5Lgo+ID4gPiA+IElNSE8gaXQncyB2ZXJ5IGNvbnZlbmllbnQgYXMgc29tZSB1c2VycyB0ZXN0IG91ciBmaXhlcy4uLi4KPiA+ID49MjAKPiA+ID4gQFN0ZXBoZW4gYWRkaW5nIGF1dG8tZGVwbG95IGZvciBtYXN0ZXIgYnJhbmNoIGNvdWxkIG1ha2Ugc2Vuc2UsIGlzbid0Cj4gPiA+IGl0Pwo+ID49MjAKPiA+IEkgcmVhbGx5IHRoaW5rIGF1dG8tZGVwbG95IG9mIHNuYXBzaG90cyBpcyBhbiBhbnRpLXBhdHRlcm4uIElmIHdlIHdhbnQgPQppdAo+ID4gdG8gYmUgZm9yIENJIG9ubHkgaW4gYSBDSSBkZWRpY2F0ZWQgcmVwbywgSSBjYW4gZmluZCB0aGF0IGFjY2VwdGFibGUuLi4KPiA+IGJ1dAo+ID4gb3RoZXJ3aXNlIEkgcmVhbGx5IGhhdGUgdGhlIGlkZWEuCj49MjAKPiBJIGRvbid0IHVuZGVyc3RhbmQ6IGEgU05BUFNIT1QtZGVkaWNhdGVkIHJlcG9zaXRvcnkgaXMgbGlrZSBhIG1pbmkKPiBjb250aW51b3VzIGRlcGxveW1lbnQuIFdlIGhhdmUgYSBTTkFQU0hPVC1kZWRpY2F0ZWQgcmVwb3NpdG9yeSBleGFjdGx5IGZvcgo+IHRoYXQsIGNvbmZpZ3VyZWQgYXMgcmVwb3NpdG9yaWVzIGFuZCBkaXN0cmlidXRpb25NYW5hZ2VtZW50IGluIEFwYWNoZQo+IFBhcmVudCBQT00gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvcG9tL2FzZi8KPj0yMAo+IEkgdW5kZXJzdGFuZCB0aGVyZSBhcmUgaXNzdWVzIGlmIHdlIGF1dG8tZGVwbG95IGZyb20gYnJhbmNoZXMsIHNpbmNlIHdlIGg9CmF2ZQo+IG5vIHZlcnNpb24gc2NoZW1lIHRvIG1ha2UgYSBkaWZmZXJlbmNlIGluIHRoZSBTTkFQU0hPVCByZXBvIGZvciBldmVyeQo+IGJyYW5jaDogdGhhdCdzIHdoeSBJIHJlc3RyaWN0IHRoZSBhdXRvLWRlcGxveW1lbnQgdG8gbWFzdGVyLgo+PTIwCj4gQnV0IGl0J3MgdGhlIGZpcnN0IHRpbWUgSSBoZWFyIGFib3V0IGlzc3VlcyB3aXRoIGEgU05BUFNIT1QgcmVwbyB0byBtYWtlCj4gU05BUFNIT1RzIHB1YmxpYyAoYXMgU05BUFNIT1RzLCBpZSBhZHZlcnRpemVkIGFzIGxhdGVzdCAmIG5vbi1yZXByb2R1Y2libD0KZSwKPiB0byB0ZXN0IGVhcmx5KTogdGhlIG9ubHkgaXNzdWVzIEkgdW5kZXJzdG9vZCB3YXMgYWJvdXQgcGVvcGxlIHdhbnRpbmcgdG8KPiBtYWtlIHRoZXNlIHJlcHJvZHVjaWJsZSwgdGhlbiBhdm9pZCBTTkFQU0hPVCBhbmQgY2FsbCBpdCAiY29udGludW91cwo+IGRlbGl2ZXJ5IiAod2hpY2ggSU1ITyBhZGRzIGEgbG90IG9mIHVudXNlZCByZWxlYXNlcyB0aGF0IHlvdSBjYW4ndCBkZWxldGUKPiBpZiB5b3UgZG9uJ3QgbWFzdGVyIHByZWNpc2VseSB3aG8geW91ciBjb25zdW1lcnMgYXJlOiB0aGVuIGluIHN1Y2ggb3Blbgo+IHNpdHVhdGlvbiwgeW91IGdldCBhIGJsb2F0ZWQgcmVwby4uLikKPj0yMAo+IFJlZ2FyZHMsCj49MjAKPiBIZXJ2PUMzPUE5Cj49MjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0OTA5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBEZWMgMzEgMTY6MzA6NDggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0OTA5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDc2Qjc1MTdEODIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAzMSBEZWMgMjAxNyAxNjozMDo0OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDgzOTU3IGludm9rZWQgYnkgdWlkIDUwMCk7IDMxIERlYyAyMDE3IDE2OjMwOjQ4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MzgzOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMSBEZWMgMjAxNyAxNjozMDo0OCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgzODE4IGludm9rZWQgYnkgdWlkIDk5KTsgMzEgRGVjIDIwMTcgMTY6MzA6NDcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDMxIERlYyAyMDE3IDE2OjMwOjQ3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNEJBNTkxODA2QjcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDMxIERlYyAyMDE3IDE2OjMwOjQ3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEuMwpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMS4zIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgS0FNX05VTVNVQkpFQ1Q9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDRkMmYwOHEyMEhBTiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgMzEgRGVjIDIwMTcgMTY6MzA6NDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDA2LnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI4XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDhCN0ZBNUZCQ0IKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDMxIERlYyAyMDE3IDE2OjMwOjQ1ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDY0IHdpdGggTUUKCWlkIHNnV2UxdzAwTTIwVWZkeTAzZ1dlc0g7IFN1biwgMzEgRGVjIDIwMTcgMTc6MzA6MzggKzAxMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogU3VuLCAzMSBEZWMgMjAxNyAxNzozMDozOCArMDEwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNjOiBNYXZlbiBQcm9qZWN0IE1hbmFnZW1lbnQgQ29tbWl0dGVlIExpc3QgPHByaXZhdGVAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogW1JFU1VMVF0gW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIFNpdGUgUGx1Z2luIHZlcnNpb24gMy43CkRhdGU6IFN1biwgMzEgRGVjIDIwMTcgMTc6MzA6MzggKzAxMDAKTWVzc2FnZS1JRDogPDYzNDEyNTEuT0F6RTljUEppWEBnaWdhPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCkhpLAogICA9MjAKVGhlIHZvdGUgaGFzIHBhc3NlZCB3aXRoIHRoZSBmb2xsb3dpbmcgcmVzdWx0OgogICA9MjAKKzEgOiBPbGl2aWVyIExhbXksIFJvYmVydCBTY2hvbHRlLCBNaWNoYWVsIE9zaXBvdiwgS2FybCBIZWlueiBNYXJiYWlzZSwgSGVyPQp2PUU5PTIwCkJvdXRlbXkKICAgPTIwClBNQyBxdW9ydW0gcmVhY2hlZAogICA9MjAKSSB3aWxsIHByb21vdGUgdGhlIGFydGlmYWN0cyB0byB0aGUgY2VudHJhbCByZXBvLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODM4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBEZWMgMjYgMTk6NDQ6NDUgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODM4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIENBQzI1MTcyODkKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAyNiBEZWMgMjAxNyAxOTo0NDo0NSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDY4ODMyIGludm9rZWQgYnkgdWlkIDUwMCk7IDI2IERlYyAyMDE3IDE5OjQ0OjQ1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2ODc1NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBEZWMgMjAxNyAxOTo0NDo0NSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY4NzQxIGludm9rZWQgYnkgdWlkIDk5KTsgMjYgRGVjIDIwMTcgMTk6NDQ6NDUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDI2IERlYyAyMDE3IDE5OjQ0OjQ1ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQjVFRDgxODAzM0I7CglUdWUsIDI2IERlYyAyMDE3IDE5OjQ0OjQ0ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTMuNTAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0zLjUwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgOFJiOTdpT2J5T0NVOyBUdWUsIDI2IERlYyAyMDE3IDE5OjQ0OjQzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1vdXQuZ214Lm5ldCAobW91dC5nbXgubmV0IFsyMTIuMjI3LjE3LjIxXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDM5MkE2NUZCMkU7CglUdWUsIDI2IERlYyAyMDE3IDE5OjQ0OjQzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIEthcmwtSGVpbnpzLU1hY0Jvb2stUHJvLmxvY2FsIChbOTIuMjA0LjU5LjI0NV0pIGJ5IG1haWwuZ214LmNvbQogKG1yZ214MTAyIFsyMTIuMjI3LjE3LjE2OF0pIHdpdGggRVNNVFBTQSAoTmVtZXNpcykgaWQKIDBMcDhoNi0xZjhVZE0xN0lhLTAwZXJnQTsgVHVlLCAyNiBEZWMgMjAxNyAyMDo0NDozNiArMDEwMApSZXBseS1UbzogaW5mb0Bzb2ViZXMuZGUKU3ViamVjdDogUmU6IG1hdmVuLWFyY2hpdmVyIGJ1aWxkIG9uIEplbmtpbnMgLSBUZXN0IEZhaWx1cmVzClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwKIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KUmVmZXJlbmNlczogPDk1MGRlMjgwLTU5MjgtNGZlMy1hY2E4LTA5MjM0MTUyNGM2NkBnbXguZGU+CiA8b3AuemJ2Y2NhaXhrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkZyb206IEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPgpNZXNzYWdlLUlEOiA8NjNjOTJlY2QtYjMyOS1iYjQ5LTk0OGEtYjUxZjRiMTlhZTBmQGdteC5kZT4KRGF0ZTogVHVlLCAyNiBEZWMgMjAxNyAyMDo0NDozNSArMDEwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMTsgcnY6NTIuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzUyLjUuMApNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPG9wLnpidmNjYWl4a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDorL0lCQ0ZnU3FmWk90UXZaMVpGQzJOMmo0R3ZmaGFJcWN6bDYzZEZuWDkrM1hmTWhvZzQKIG81MTFhaks2Q0NmSUk2UFhKOGtJZHd3bEFLRVQxRlRZaHdxNVRZckVHeCs0SnNRNGJLTDZnNkRqVXZvNE5Pa2p0RjR3Nm1hCiBHTlJnWTB2ZTg2T0RsRFlLRWtPZEVTWVF5WWVyZVhzeGhTcFU4VjdEaVdKYkkzVnBWeHQrUVcyWllvdGdFWUlKbW42ek9MRwogQkplNDZINXUxNm1Oa0pmQTFBM1VRPT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDpvNC8yRU1mT0pyVT06TExlS1V1OURtcTE1NkdmVTYraC9vTgogRktncHJHYndKZWdFWHNhTGJ5S25MZTlzSElFblJXeS91L2VlUDMzclJTODJiVTJSajJRM3hrbEhSTkZ2VVYya2ViM0huKy9TYgogcGtkWlFLTjNDZHQ2OHdsMk9RMVpJdk9FaThQVUpITHR2RHhPRDF3VzVta2ltd0JwSlRkYm1wTXo3ampYY1NRQXoxaWxXS3VsVQogb0I5K0xRS29KM1ZUQTZZRFBxV2w4YTZranl6UG1nMmFWVGxPRDZUamZsQkhyU3RmdWJqVVpRODA0MzFNb25LYUNBTXNNRmZVeAogSC9GdnJ1RkRFTno5YkZvdS9keElqcldncnF0UzdmdEQ2aTVBaVVFNzV6NVZGdWVoamV5a1QzZGFiZjJyQmJ4VWpuQy82NFFXbQogeG5PTmxQQ2xxREN4aXYveUpRbEoxL0NqUm1zZ2lPbytESm96U2xQS3ZrblNBc0cxSldidlg0OFFTK1dQbERaZElOV0dkNjJJSwogbm00VWtwdFcyYTc2a3pkbFY3Zjd6K1k3R2dBQzhlMlRFODUzS0NmUWdaeTNFdktOTHZmK2poWWhaNjVzR3hFYUEzYjNvNTNuaAogY2NSZkhiT2doMG1KVkpTa2NTN0xISFRkbFZ5SngwN0pPSXptZ0xuazNtU2hmaTNyR1JUdzN5b05NZGZmQUpnQ3hzZVQ5RExBOQogKzBWMGdROXVZRk1ZSmttSGZoUE5qbyttT2FrTmF1ZGxSaHlzNC9vQkgyYUcrbFdVbnIycTFoRXZ0U01KK3Y4SGprdVBVU3EzWQogT3l4cjlBcnNqYlBqSlo0QlIxQStOVTluUmJSUnloTjV4RnBScVZLSEh3Ry9pWlpxdSt4YjRFTFdscFFXcEFHRFAzTGVpdWpENAogVWxydHVtUnlmdE9ScWdDY3plYVBZSzJ2ZUZKamZnTmhlajlnOXdpT2xTM2tCamxkQ2FCLzNaaC8vcDBxeXlzUm5uekJjWnVwUAogQ0ZrZVlySEJsTjBpL3cxaExRSHMrUjVkb2hiNFNOZklVUmtRdUZpZDlESGpESlJMZHEvYmwxaThqUkJZNGhCQnZpNi9Jbit2RgogNVVidjVCcElwL1dGWXdmWXJ4Ui9jYUMrMGVjK09tR2wyY3hoa1hET1E5eCtFRk1SRmFzb21seDc3VXljbEJESzJLbFhNbnUKCkhpIFJvYmVydCwKCkkgd2lsbCB0cnkgYW5kIHNlZSB0aGUgcmVzdWx0Li4KClRoYW5rcy4KCktpbmQgcmVnYXJkcwpLYXJsIEhlaW56CgoKT24gMjYvMTIvMTcgMjA6MjcsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+IFRoZSBqb2Igc3RhcnRpbmcgcXVpdGUgc29tZSB0aW1lIGFnby4gTWF5YmUgYmV0dGVyIHRvIGtpbGwgdGhlIGl0IGFuZCAKPiBzdGFydCBvdmVyIGFnYWluLgo+IEkgaGFkIHRyb3VibGUgdmlzaXRpbmcgYnVpbGRzLmFwYWNoZS5vcmcgdGhpcyBhZnRlcm5vb24sIGNvdWxkIGJlIHJlbGF0ZWQuCj4gCj4gdGhhbmtzLAo+IFJvYmVydAo+IAo+IE9uIFR1ZSwgMjYgRGVjIDIwMTcgMjA6MDE6MDIgKzAxMDAsIEthcmwgSGVpbnogTWFyYmFpc2UgCj4gPGtobWFyYmFpc2VAZ214LmRlPiB3cm90ZToKPiAKPj4gSGksCj4+Cj4+IGN1cnJlbnRseSBJJ20gb2JzZXJ2aW5nIGEgc3RyYW5nZSB0aGluZy4uY2F1c2UgdGhlIGJ1aWxkIG9uIEplbmtpbnMgCj4+IHByb2R1Y2VzIHRlc3QgZmFpbHVyZSB3aXRoIEpESyA5Cj4+Cj4+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvam9iL21hdmVuLWJveC9qb2IvbWF2ZW4tYXJjaGl2ZXIvam9iL21hc3Rlci81L2NvbnNvbGVGdWxsIAo+Pgo+Pgo+PiBUaGUgcHJvYmxlbSBJJ20gY3VycmVudGx5IGhhdmluZyBpcyB0aGF0IEkgY2FuJ3QgcmVwcm9kdWNlIHRoaXMuLgo+Pgo+PiBJIGhhdmUgdGVzdGVkIHdpdGggTWF2ZW4gMy41LjIgYW5kIEpESyA5LjAuMSB3aXRob3V0IGFueSBwcm9ibGVtIG9uIG15IAo+PiBNYWMgLi4uCj4+Cj4+IElzIHNvbWVvbmUgb3V0IHRoZXJlIHdobyBjYW4gY2hlY2sgdGhlIGN1cnJlbnQgc3RhdGUgb2YgbWF2ZW4tYXJjaGl2ZXIgCj4+IGdpdCByZXBvIG9uIFdpbmRvd3MgYW5kIGNhbiByZXByb2R1Y2UgdGhlIGlzc3VlID8KPj4KPj4gSXQgd291bGQgYmUgZ3JlYXQuLlRoYW5rcyBpbiBhZHZhbmNlLgo+Pgo+PiBLaW5kIHJlZ2FyZHMKPj4gS2FybCBIZWlueiBNYXJiYWlzZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0Mjk3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBPY3QgMjEgMTI6NTM6NTggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0Mjk3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEE0OTVFMTBFRDkKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAyMSBPY3QgMjAxNyAxMjo1Mzo1OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk2MTY3IGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIE9jdCAyMDE3IDEyOjUzOjU4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NjA4MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBPY3QgMjAxNyAxMjo1Mzo1OCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk2MDY5IGludm9rZWQgYnkgdWlkIDk5KTsgMjEgT2N0IDIwMTcgMTI6NTM6NTcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDIxIE9jdCAyMDE3IDEyOjUzOjU3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMEJBMzZDNUM4RAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMjEgT2N0IDIwMTcgMTI6NTM6NTcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBMMEEyc19ZTjNXLVEgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsIDIxIE9jdCAyMDE3IDEyOjUzOjU1ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAxMS5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEzM10pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA5N0U4NzVGQUM5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAyMSBPY3QgMjAxNyAxMjo1Mzo1NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQzNCB3aXRoIE1FCglpZCBRQ3RvMXcwMDEyMFVmZHkwM0N0b1ZFOyBTYXQsIDIxIE9jdCAyMDE3IDE0OjUzOjQ4ICswMjAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFNhdCwgMjEgT2N0IDIwMTcgMTQ6NTM6NDggKzAyMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogTWF2ZW4gRG9ja2VyIEltYWdlcwpEYXRlOiBTYXQsIDIxIE9jdCAyMDE3IDE0OjUzOjQ3ICswMjAwCk1lc3NhZ2UtSUQ6IDw2Njc4ODYyLnJFMWg3Mk9sY3ZAZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zNy1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpJbi1SZXBseS1UbzogPG9wLnk4Z2ZrNHl1a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpSZWZlcmVuY2VzOiA8Q0FKUnZGZG8tMzNaZnhpRnNKd2ppR1FKTVlUNW11MzFmcUQxZl91M0ZVUVRvSnY9VHVnQG1haWwuZ21haWwuY29tPiA8MjQ3MzQ1MjMuYTZKc0U4c2ZzaEBnaWdhPiA8b3AueThnZms0eXVrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCkxlIHNhbWVkaSAyMSBvY3RvYnJlIDIwMTcsIDEyOjMyOjU0IENFU1QgUm9iZXJ0IFNjaG9sdGUgYSA9QzM9QTljcml0IDoKPiA+IE9uZSB0aGluZyBJIHNlZSBpcyB0aGF0IHdlIGNhbiBhdXRvbWF0ZSBhIGNoZWNrIHRoYXQgdGhlIGN1cnJlbnQKPiA+IG9mZmljaWFsLWltYWdlCj4gPiBpcyBvdXIgY3VycmVudGx5IHJlY29tbWVuZGVkIE1hdmVuIHZlcnNpb246IGl0J3MganVzdCBhYm91dCBhZGRpbmcgYSBuZXcKPiA+IGNoZWNrCj4gPiB0byBkaXN0LXRvb2wtcGx1Z2luIHRoYXQgd2lsbCBiZSBjaGVja2VkIGV2ZXJ5IGRheSBieSBKZW5raW5zIGpvYiBbM10KPj0yMAo+IFdpdGhvdXQgdGFsa2luZyBpbiBzb2x1dGlvbnMsIHdlIGhhdmUgdGhpcyBnZW5lcmFsIHF1ZXN0aW9uOiBBcmUgd2UKPiBpbmZvcm1pbmcgb3RoZXJzIGJ5IHRoZWlyIGZvcm1hdCBvciBhcmUgd2Ugb2ZmZXJpbmcgc29tZSBnZW5lcmljIG1lc3NhZ2UKPiBmb3Igb3RoZXJzIHRvIG1ha2UgdGhlbSBhd2FyZSB0aGVyZSdzIGEgbmV3IHZlcnNpb24uCj49MjAKPiBUaGlzIGRpc3R0b29sIHNvbHV0aW9uIHNvdW5kcyBsaWtlIHRoZSBmaXJzdCBvbmUgKHdlIHRyaWdnZXIgQ2FybG9zIGluCj4gc29tZSB3YXkgc28gaGUgY2FuIG1ha2UgYSBuZXcgaW1hZ2UpLCB3aGljaCBpcyBleGFjdGx5IHdoYXQgU0RLTWFuIGFza2VkCj4gdXMgdG8gZG8uCkN1cnJlbnRseSB0aGUgdG9vbCBpcyBtZWFudCB0byBjaGVjayB0aGF0IHRoZSBmdWxsIHJlbGVhc2UgcHJvY2VzcyBoYXMgYmVlbj0KPTIwCmRvbmUgYW5kIHRlbGwgaWYgYSBzdGVwIHdhcyBmb3Jnb3R0ZW4uIFRoZSB0b29sIGRvZXMgbm90IHRyaWdnZXIgc29tZW9uZT0yMApzcGVjaWZpY2FsbHk6IGl0IHRyaWdnZXJzIGEgYnVpbGQgZmFpbHVyZSwgd2l0aCBhbiBleHBsYW5hdGlvbiBvbiB3aGF0IHRvIGQ9Cm8gdG89MjAKZml4LiBJZiBub2JvZHkgY2FyZXMgYWJvdXQgdGhlIGpvYiBmYWlsdXJlICh3aGljaCBoYXBwZW5zIG9mdGVuKSwgbm90aGluZyBnPQpldHM9MjAKZG9uZTogaW4gZ2VuZXJhbCwgSSBkbyBjYXJlLCB0aGVuIGVpdGhlciBJIHBpbmcgdGhlIG9mZmVuZGVyIChzb21lIG9mIHlvdT0yMApNYXZlbiBkZXZzIGtub3cgd2hhdCBJJ20gdGFsa2luZyBhYm91dCA6KSApLCBlaXRoZXIgSSBqdXN0IGRvIHRoZSBqb2IuCgpJIGRvbid0IGtub3cgaWYgYWRkaW5nIHNvbWUgY29kZSBhbmQgY29uZmlndXJhdGlvbiB0byBzZW5kIGFuIGVtYWlsIHRvIHNvbWU9Cm9uZT0yMAp3b3VsZCBiZSBlYXN5OiBJIGRvbid0IGtub3cgaWYgdGhlcmUgaXMgYSBzbXRwIHNlcnZlciBhdmFpbGFibGUgb24gSmVua2lucz0KPTIwCm5vZGVzLgoKPj0yMAo+IElNSE8gd2hhdGV2ZXIgd2UgZG8gZm9yIERvY2tlciwgd2Ugc2hvdWxkIGRvIHRoZSBzYW1lIGZvciBTREtNYW4gYW5kIG9mZmVyCj4gdGhhdCBzb2x1dGlvbiBmb3Igb3RoZXIgaW50ZXJlc3RlZCBwYXJ0aWVzLgpzdW1tYXJ5OiB0aGVyZSBpcyBhIGxpdHRsZSBkaWZmZXJlbmNlIGJldHdlZW4gaGVscGluZyBhIE1hdmVuIGRldiBkb2luZyB0aGU9Cj0yMApmdWxsIHJlbGVhc2UgcHJvY2VzcyAoYnkgY2hlY2tpbmcgZm9yZ290dGVuIHN0ZXBzKSwgZ2l2ZW4gaGUncyBjcmVkZW50aWFscyA9CnRvPTIwCmRvIGV2ZXJ5dGhpbmcsIGFuZCBwaW5naW5nIHNvbWVvbmUgd2hvIGlzIHRoZSBvbmx5IG9uZSB0byBoYXZlIHRoZSBjcmVkZW50aT0KYWxzCgpSZWdhcmRzLAoKSGVydj1DMz1BOQoKPj0yMAo+IFJvYmVydAo+PTIwCj4gPiBbMV0gaHR0cHM6Ly9naXRodWIuY29tL2Nhcmxvc3NnL2RvY2tlci1tYXZlbgo+ID49MjAKPiA+IFsyXQo+ID4gaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci1saWJyYXJ5L29mZmljaWFsLWltYWdlcy9ibG9iL21hc3Rlci9saWJyYXJ5L209CmF2ZQo+ID4gbgo+ID49MjAKPiA+IFszXQo+ID4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9kaXN0LXRvb2wtcGx1Z2luL3NpdGUvCj4gPj0yMAo+ID4+IElmIHdlIHdhbnQgdGhhdCBkb2NrZXJmaWxlIGluIE1hdmVuLWNvcmUgcmVwbywgaT1FMj04MD05OW0gRmluZSB3aXRoIHQ9CmhhdCB0b28KPiA+PTIwCj4gPiBnaXZlbiB0aGUgY29udGVudCwgYSBzZXBhcmF0ZSByZXBvIG1vcmUgcmVhc29uYWJsZQo+ID49MjAKPiA+PiBOb3cgdGhlIG90aGVyIHF1ZXN0aW9uIGlzIGhvdyB0byBnZXQgdGhlIGltYWdlIGZyb20gdGhhdCBkb2NrZXJmaWxlIGluPQp0bwo+ID4+IGRvY2tlci4uLgo+ID49MjAKPiA+IElJVUMsIHRoYXQncyB0aGUgc2Vjb25kIHBvaW50IEkgd3JvdGU6IHdlIGRvbid0IHJlYWxseSBwdXQgdGhlIGltYWdlIGJ1dAo+ID4gdXBkYXRlIGEgY29tbWl0IHJlZmVyZW5jZSB0byBvdXIgRG9ja2VyZmlsZXMKPiA+PTIwCj4gPj4gST1FMj04MD05OW0gaGFwcHkgZm9yIENhcmxvcyB0byBjb250aW51ZSBkb2luZyBpbiBhIHBlcnNvbmFsIGNhcGFjaXR5Lj0KPTJFLgo+ID49MjAKPiA+ICsxCj4gPiBJJ2QgYmUgaGFwcHkgdG8ganVzdCBoYXZlIHRoaXMgYXMgYW4gb2ZmaWNpYWwgUE1DIGFzc2V0LCB3aXRoIENhcmxvcyBhcwo+ID4gb3VyCj4gPiBleHBlcnQgd2hvIHdyb3RlIHRoZSBzdWJ0bGUgYnVuY2ggb2YgaW1hZ2VzLCBzaW5jZSBJSVVDLCBpdCdzIG5vdCByZWFsbHkKPiA+IG9uZQo+ID4gaW1hZ2UgYnV0IGEgY29sbGVjdGlvbiB0aGF0IG9uZSBjYW4gY2hvb3NlIGZyb20KPiA+PTIwCj4gPiBSZWdhcmRzLAo+ID49MjAKPiA+IEhlcnY9QzM9QTkKPiA+PTIwCj4gPj4gU28gaT1FMj04MD05OWQgYmUKPiA+Pj0yMAo+ID4+ID1FMj04MD05Q1RoZSBkb2NrZXJmaWxlIGhhcyBiZWVuIHJlbGVhc2VkIGJ5IHRoZSBNYXZlbiBwcm9qZWN0IGFuZCBhIG09CmVtYmVyIG9mCj4gPj4gdGhlCj4gPj4gUE1DIGhhcyB1cGxvYWRlZCB0aGUgaW1hZ2U9RTI9ODA9OUQKPiA+Pj0yMAo+ID4+ID4gUmVnYXJkcywKPiA+PiA+PTIwCj4gPj4gPiBIZXJ2PUMzPUE5Cj4gPj4gPj0yMAo+ID4+ID4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9kb2NrZXItbGlicmFyeS9vZmZpY2lhbC1pbWFnZXMKPiA+PiA+PTIwCj4gPj4gPiBbMl0KPiA+Pj0yMAo+ID4+IGh0dHBzOi8vZ2l0aHViLmNvbS9kb2NrZXItbGlicmFyeS9vZmZpY2lhbC1pbWFnZXMvYmxvYi9tYXN0ZXIvbGlicmFyeS89Cm1hdgo+ID4+IGUKPiA+Pj0yMAo+ID4+ID4gbgo+ID4+ID49MjAKPiA+PiA+IExlIHNhbWVkaSAyMSBvY3RvYnJlIDIwMTcsIDA2OjU4OjUwIENFU1QgTWFuZnJlZCBNb3NlciBhID1DMz1BOWNyaXQgOgo+ID4+ID4gPiBGcm9tIG15IHBlcnNwZWN0aXZlIGl0IGlzIGp1c3QgbGlrZSBzZGttYW4gaW5jbHVkaW5nIHRoZQo+ID4+PTIwCj4gPj4gY29uY2x1c2lvbi4gV2UKPiA+Pj0yMAo+ID4+ID4gaGF2ZQo+ID4+ID49MjAKPiA+PiA+ID4gb3RoZXIgdGFza3MgYXQgb3VyIGhhbmRzLCBtYWludGFpbmluZyBhIGRvY2tlciBpbWFnZXMgaXMgbm90Cj4gPj49MjAKPiA+PiBzb21ldGhpbmcKPiA+Pj0yMAo+ID4+ID4gPiB3ZQo+ID4+ID4gPiBzaG91bGQgYm90aGVyIHdpdGguIEhvd2V2ZXIgbmVlZHMgb25lIGNhbiBlYXNpbHkgY3JlYXRlIG9uZSBhbmQKPiA+Pj0yMAo+ID4+IHRoZXJlCj4gPj49MjAKPiA+PiA+IHdpbGwKPiA+PiA+PTIwCj4gPj4gPiA+IGJlIHRob3VzYW5kcyBvZiB2YXJpYXRpb25zIGRpZmZlcmVudCB1c2VycyB3YW50Lgo+ID4+ID4gPj0yMAo+ID4+ID4gPiBMZXQgdGhlbSBjcmVhdGUgaXQgb24gdGhlaXIgb3duLgo+ID4+ID4gPj0yMAo+ID4+ID4gPiBNYW5mcmVkCj4gPj4gPiA+PTIwCj4gPj4gPiA+IEhlcnY9QzM9QTkgQk9VVEVNWSB3cm90ZSBvbiAyMDE3LTEwLTIwIDE4OjQ2Ogo+ID4+ID4gPiA+IHRydWUsIGZyb20gYSBnZW5lcmFsIHBlcnNwZWN0aXZlLCBpdCdzIGxpa2Ugc2RrbWFuCj4gPj4gPiA+ID49MjAKPiA+PiA+ID4gPiB3ZSBuZWVkIHRvIGRpc2N1c3MgdGhlbiBkZWNpZGUgaWYgd2Ugd2FudCB0byBtYWludGFpbiBNYXZlbiBEb2NrPQplcgo+ID4+ID4gPiA+IGludGVncmF0aW9uIChjb250cmFyeSB0byBvdXIgY3VycmVudCBkZWNpc2lvbiB0byBub3QgbWFpbnRhaW4KPiA+Pj0yMAo+ID4+IE1hdmVuCj4gPj49MjAKPiA+PiA+ID4gPiBzZGttYW4gaW50ZWdyYXRpb24gYnV0IGxldCBzZGttYW4gY29tbXVuaXR5IGRvIGl0KQo+ID4+ID4gPiA+PTIwCj4gPj4gPiA+ID4gY2FuIHdlIHRoaW5rIGFib3V0IGEgZ2VuZXJhbCBzb2x1dGlvbj8gcGVyaGFwcyBub3QgcmVhbGx5IGEKPiA+Pj0yMAo+ID4+IHNvbHV0aW9uLAo+ID4+PTIwCj4gPj4gPiBidXQKPiA+PiA+PTIwCj4gPj4gPiA+ID4gYQo+ID4+ID4gPiA+IGRlY2lzaW9uIHByb2Nlc3MsIHllcwo+ID4+ID4gPiA+PTIwCj4gPj4gPiA+ID4gdG8gbWUsIG9uIGVhY2ggdG9vbCBpbnRlZ3JhdGlvbiwgdGhlcmUgYXJlIGtleSBkZWNpc2lvbiBkcml2ZXJzOgo+ID4+ID4gPiA+IC0gaW1wb3J0YW5jZSBvZiB0aGUgdG9vbCBvbiB0aGUgbWFya2V0Cj4gPj4gPiA+ID4gLSBpbnRlcmVzdCBvZiBNYXZlbiBkZXZzIHRvIGFjdHVhbGx5IGRvIGludGVncmF0aW9uIG1haW50ZW5hbmNlCj4gPj4gPiA+ID4gLSBjb21wbGV4aXR5IG9mIGludGVncmF0aW9uLCB0ZWNobmljYWwgcHJlcmVxdWlzaXRlcyAod2l0aCBJREVzLAo+ID4+PTIwCj4gPj4gZm9yCj4gPj49MjAKPiA+PiA+ID4gPiBleGFtcGxlLCBhIGRlZGljYXRlZCBpbmRlcGVuZGFudCBwcm9qZWN0IGxpa2UgbTJlIGlzIG5lY2Vzc2FyeSkKPiA+PiA+ID4gPiAtIHRpbWUgZmFjdG9yOiB0aGluZ3MgZXZvbHZlIG92ZXIgdGltZSAoZS5nLiAyIHllYXJzIGFnbywgRG9ja2VyCj4gPj49MjAKPiA+PiB3YXMKPiA+Pj0yMAo+ID4+ID4gbm90Cj4gPj4gPj0yMAo+ID4+ID4gPiA+IHdoYXQgaXQgaXMgbm93YWRheXMpCj4gPj4gPiA+ID49MjAKPiA+PiA+ID4gPiBhbnkgb3RoZXIga2V5IGRyaXZlciB0byBkb2N1bWVudD8KPiA+PiA+ID4gPj0yMAo+ID4+ID4gPiA+IG9uY2UgZG9uZSwgd2UnbGwgZGlzY3VzcyBtb3JlIHByZWNpc2VseSBhYm91dCB0aGUgRG9ja2VyCj4gPj49MjAKPiA+PiBpbnRlZ3JhdGlvbgo+ID4+PTIwCj4gPj4gPiBjYXNlCj4gPj4gPj0yMAo+ID4+ID4gPiA+IGFuZCBwcm9iYWJseSBmaW5pc2ggd2l0aCBhIHZvdGUgOikKPiA+PiA+ID4gPj0yMAo+ID4+ID4gPiA+IFJlZ2FyZHMsCj4gPj4gPiA+ID49MjAKPiA+PiA+ID4gPiBIZXJ2PUMzPUE5Cj4gPj4gPiA+ID49MjAKPiA+PiA+ID4gPiBMZSB2ZW5kcmVkaSAyMCBvY3RvYnJlIDIwMTcsIDExOjMwOjQ5IENFU1QgUm9iZXJ0IFNjaG9sdGUgYSA9QzM9Cj1BOWNyaXQKPiA+PiA+ID4gPj0yMAo+ID4+ID4gPiA+PiBJc24ndCB0aGlzIGFjdHVhbGx5IHRoZSBzYW1lIGNhc2UgYXMgc2RrbWFuWzFdPwo+ID4+ID4gPiA+PiBKdXN0IHdvbmRlcmluZyBpZiB3ZSBuZWVkIHRvIHRoaW5rIGFib3V0IGEgZ2VuZXJhbCBzb2x1dGlvbgo+ID4+PTIwCj4gPj4gaW5zdGVhZAo+ID4+PTIwCj4gPj4gPiA+ID4+IG9mCj4gPj4gPiA+ID4+IHB1bGxpbmcgZXZlcnl0aGluZyBpbnRvIG91ciBwcm9qZWN0IHdoZW4gcG9zc2libGUuCj4gPj4gPiA+ID4+PTIwCj4gPj4gPiA+ID4+IHRoYW5rcywKPiA+PiA+ID4gPj4gUm9iZXJ0Cj4gPj4gPiA+ID4+PTIwCj4gPj4gPiA+ID4+IFsxXSBodHRwOi8vbWFya21haWwub3JnL21lc3NhZ2Uvb29mdnN6bWY1NnRicjdldAo+ID4+ID4gPiA+Pj0yMAo+ID4+ID4gPiA+PiBPbiBUaHUsIDE5IE9jdCAyMDE3IDE5OjMwOjU3ICswMjAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+ID4+ID49MjAKPiA+PiA+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPiA+PiA+PTIwCj4gPj4gPiA+ID4+IHdyb3RlOgo+ID4+ID4gPiA+PiA+IGdyZWF0IGlkZWEKPiA+PiA+ID4gPj4gPj0yMAo+ID4+ID4gPiA+PiA+IG9rLCB3ZSBuZWVkIGEgZ2l0IHJlcG8gYXQgQVNGCj4gPj4gPiA+ID4+ID49MjAKPiA+PiA+ID4gPj4gPiB3aGF0IGVsc2U/Cj4gPj4gPiA+ID4+ID4gSXMgdGhlcmUgc29tZSBzb3J0IG9mIHJlbGVhc2UgcHJvY2Vzcz8gc29tZSBzb3J0IG9mIHNvdXJjZSB0bwo+ID4+ID49MjAKPiA+PiA+IHJlbGVhc2U/Cj4gPj4gPj0yMAo+ID4+ID4gPiA+PiA+IFJlZ2FyZHMsCj4gPj4gPiA+ID4+ID49MjAKPiA+PiA+ID4gPj4gPiBIZXJ2PUMzPUE5Cj4gPj4gPiA+ID4+ID49MjAKPiA+PiA+ID4gPj4gPiBMZSBqZXVkaSAxOSBvY3RvYnJlIDIwMTcsIDEzOjQ3OjQ1IENFU1QgTWlrZSBEcm9iIGEgPUMzPUE5Y3JpPQp0IDoKPiA+PiA+ID4gPj4gPj4gVGhhbmtzIGZvciB0aGUgcG9pbnRlciwgQ2FybG9zISBJIGhhZCBzZWFyY2hlZCB0aGUgYXJjaGl2ZXMsCj4gPj49MjAKPiA+PiBidXQKPiA+Pj0yMAo+ID4+ID4gbWF5YmUKPiA+PiA+PTIwCj4gPj4gPiA+ID4+ID4+IEkKPiA+PiA+ID4gPj4gPj4gZGlkbid0IGdvIGJhY2sgZmFyIGVub3VnaC4KPiA+PiA+ID4gPj4gPj49MjAKPiA+PiA+ID4gPj4gPj4gSSB0aGluayBtb3ZpbmcgdGhlc2UgRG9ja2VyZmlsZXMgaW50byBhbiBBU0YgcmVwbyB3b3VsZCBiZQo+ID4+PTIwCj4gPj4gZ3JlYXQKPiA+Pj0yMAo+ID4+ID4gZm9yCj4gPj4gPj0yMAo+ID4+ID4gPiA+PiA+PiB0aGVpcgo+ID4+ID4gPiA+PiA+PiBtYWludGFpbmFiaWxpdHkuCj4gPj4gPiA+ID4+ID4+PTIwCj4gPj4gPiA+ID4+ID4+IFRoYW5rcywKPiA+PiA+ID4gPj4gPj49MjAKPiA+PiA+ID4gPj4gPj4gTWlrZQo+ID4+ID4gPiA+PiA+Pj0yMAo+ID4+ID4gPiA+PiA+PiBPbiAyMDE3LTEwLTE5IDAzOjUwLCBDYXJsb3MgU2FuY2hleiA8Yy4uLkBhcGFjaGUub3JnPiB3cm90ZToKPiA+PiA+ID4gPj4gPj4gPiBBcm5hdWQgaXMgY29ycmVjdCwgSSBzZW50IGFuIGVtYWlsIHRvIHVzZXJzQCBiYWNrIG9uIEZyaSwKPiA+Pj0yMAo+ID4+IE5vdiA3LAo+ID4+PTIwCj4gPj4gPiA+ID4+ID4+IDIwMTQsPgo+ID4+ID4gPiA+PiA+Pj0yMAo+ID4+ID4gPiA+PiA+PiA+IDAwOjIzIHdoZW4gSSBjcmVhdGVkIHRoZSBpbWFnZT4KPiA+PiA+ID4gPj4gPj4gPj0yMAo+ID4+ID4gPiA+PiA+PiA+PTIwCj4gPj4gPiA+ID4+ID4+ID4gT24gVGh1LCBPY3QgMTksIDIwMTcsIDExOjEyIEFybmF1ZCBIPUVGPUJGPUJEcml0aWVyCj4gPj49MjAKPiA+PiA8YWguLi5AZ21haWwuY29tPgo+ID4+PTIwCj4gPj4gPiA+ID4+ID4+ID4gd3JvdGU6Pgo+ID4+ID4gPiA+PiA+PiA+PTIwCj4gPj4gPiA+ID4+ID4+ID4gPiBUaGVzZSBpbWFnZXMgYXJlIGtpbmRseSBtYW5hZ2VkIGJ5IGEgUE1DIG1lbWJlciBvZiBvdXIKPiA+Pj0yMAo+ID4+IHByb2plY3QKPiA+Pj0yMAo+ID4+ID4gPiA+PiA+PiAoQ2FybG9zKQo+ID4+ID4gPiA+PiA+Pj0yMAo+ID4+ID4gPiA+PiA+PiBidXQ+Cj4gPj4gPiA+ID4+ID4+PTIwCj4gPj4gPiA+ID4+ID4+ID4gPiB5ZXMgdGhleSBhcmVuJ3QgbWFuYWdlZCBkaXJlY3RseSBieSB0aGUgcHJvamVjdD4KPiA+PiA+ID4gPj4gPj4gPiA+PTIwCj4gPj4gPiA+ID4+ID4+ID4gPiBXZSBjYW4gZWFzaWx5IHNlZSB3aXRoIGhpbSB0byBpbXByb3ZlIHRoaXMgSU1PLj4KPiA+PiA+ID4gPj4gPj4gPiA+PTIwCj4gPj4gPiA+ID4+ID4+ID4gPiBXaGVuIGhlIHN0YXJ0ZWQgdGhhdCAoc2V2ZXJhbCB5ZWFycyBhZ28pIERvY2tlciB3YXNuJ3QKPiA+Pj0yMAo+ID4+IHdoYXQgaXQKPiA+Pj0yMAo+ID4+ID4gaXMKPiA+PiA+PTIwCj4gPj4gPiA+ID4+ID4+IG5vd2FkYXlzLj4KPiA+PiA+ID4gPj4gPj49MjAKPiA+PiA+ID4gPj4gPj4gPiA+IFdpdGggZG9ja2VyIGJlaW5nIG1haW5zdHJlYW0gSSBhZ3JlZSB0aGF0IHdlIGNhbgo+ID4+PTIwCj4gPj4gcmVjb25zaWRlcgo+ID4+PTIwCj4gPj4gPiB0aGlzLj4KPiA+PiA+PTIwCj4gPj4gPiA+ID4+ID4+ID4gPiBUaGUgZG9ja2VyIGltYWdlIGJ1aWxkL2Rpc3RyaWJ1dGlvbiBjb3VsZCBwZXJoYXBzIGJlIHBhcnQKPiA+Pj0yMAo+ID4+IG9mCj4gPj49MjAKPiA+PiA+IG91cgo+ID4+ID49MjAKPiA+PiA+ID4gPj4gPj4gcmVsZWFzZT4KPiA+PiA+ID4gPj4gPj49MjAKPiA+PiA+ID4gPj4gPj4gPiA+IHByb2Nlc3MuPgo+ID4+ID4gPiA+PiA+PiA+ID49MjAKPiA+PiA+ID4gPj4gPj4gPiA+IFdEWVQgQ2FybG9zID8+Cj4gPj4gPiA+ID4+ID4+ID4gPj0yMAo+ID4+ID4gPiA+PiA+PiA+ID4gT24gVGh1LCBPY3QgMTksIDIwMTcgYXQgNDoxNiBBTSwgTWlrZSBEcm9iCj4gPj49MjAKPiA+PiA8bWQuLi5AYXBhY2hlLm9yZz4KPiA+Pj0yMAo+ID4+ID4gPiA+PiA+PiB3cm90ZTo+Cj4gPj4gPiA+ID4+ID4+PTIwCj4gPj4gPiA+ID4+ID4+ID4gPiA+IEkgZ3Vlc3MgdGhlIG5hdHVyYWwgZm9sbG93LW9uIHF1ZXN0aW9uIGlzIHdoZXRoZXIgdGhlCj4gPj49MjAKPiA+PiBNYXZlbgo+ID4+PTIwCj4gPj4gPiA+ID4+ID4+IGNvbW11bml0eT4KPiA+PiA+ID4gPj4gPj49MjAKPiA+PiA+ID4gPj4gPj4gPiA+ID4gd291bGQgY29uc2lkZXIgcHVibGlzaGluZyBhbiBvZmZpY2lhbCBzZXQgb2YgaW1hZ2VzPyBPcgo+ID4+ID4gPiA+PiA+Pj0yMAo+ID4+ID4gPiA+PiA+PiBhbHRlcm5hdGl2ZWx5Pgo+ID4+ID4gPiA+PiA+Pj0yMAo+ID4+ID4gPiA+PiA+PiA+ID4gPiB3aGV0aGVyIHRoZXkgc2hvdWxkIHNlbmQgYSB0YWtlZG93biBub3RpY2UgdG8gcHJvdGVjdAo+ID4+PTIwCj4gPj4gdGhlaXIKPiA+Pj0yMAo+ID4+ID4gPiA+PiA+PiA+ID4gPiBicmFuZAo+ID4+ID4gPiA+PiA+Pj0yMAo+ID4+ID4gPiA+PiA+PiBhbmQ+Cj4gPj4gPiA+ID4+ID4+PTIwCj4gPj4gPiA+ID4+ID4+ID4gPiA+IHRyYWRlbWFya3MuLi4+Cj4gPj4gPiA+ID4+ID4+ID4gPiA+PTIwCj4gPj4gPiA+ID4+ID4+ID4gPiA+IE9uIDIwMTctMTAtMTggMTg6MzYsICJNYW5mcmVkIE1vc2VyIgo+ID4+PTIwCj4gPj4gPG1hLi4uQHNpbXBsaWdpbGl0eS5jb20KPiA+Pj0yMAo+ID4+ID4gPiA+PiA+PiB3cm90ZTo+Cj4gPj4gPiA+ID4+ID4+PTIwCj4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gTm8uIEFzIHlvdSBjYW4gc2VlIGZyb20gdGhlIGdpdGh1YiBVUkwgdGhpcyBpcyBOT1QgYW4KPiA+PiA+PTIwCj4gPj4gPiBhcGFjaGUKPiA+PiA+PTIwCj4gPj4gPiA+ID4+ID4+IFVSTC4+Cj4gPj4gPiA+ID4+ID4+PTIwCj4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2Nhcmxvc3NnL2RvY2tlci1tYXZlbj4KPiA+PiA+ID4gPj4gPj4gPiA+ID4gPj0yMAo+ID4+ID4gPiA+PiA+PiA+ID4gPiA+PTIwCj4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gTWlrZSBEcm9iIHdyb3RlIG9uIDIwMTctMTAtMTggMTY6MzI6Pgo+ID4+ID4gPiA+PiA+PiA+ID4gPiA+PTIwCj4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gPiBIZWxsbyw+Cj4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gPj0yMAo+ID4+ID4gPiA+PiA+PiA+ID4gPiA+ID4gQXJlIHRoZSBpbWFnZXMgYXQgaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL18vbWF2ZW4vCj4gPj4gPiA+ID4+ID4+PTIwCj4gPj4gPiA+ID4+ID4+IGNvbnNpZGVyZWQgdG8KPiA+PiA+ID4gPj4gPj49MjAKPiA+PiA+ID4gPj4gPj4gYmU+Cj4gPj4gPiA+ID4+ID4+PTIwCj4gPj4gPiA+ID4+ID4+ID4gPiA+IG9mZmljaWFsPgo+ID4+ID4gPiA+PiA+PiA+ID4gPj0yMAo+ID4+ID4gPiA+PiA+PiA+ID4gPiA+ID4gbWF2ZW4gZG9ja2VyIGltYWdlcyBhbmQgYmxlc3NlZC9wdWJsaXNoZWQgYnkgdGhlCj4gPj49MjAKPiA+PiBQTUM/Pgo+ID4+PTIwCj4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gPiBUaGFua3MsPgo+ID4+ID4gPiA+PiA+PiA+ID4gPiA+ID4gTWlrZT4KPiA+PiA+PTIwCj4gPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KPTJEPgo+ID4+ID49MjAKPiA+PiA+ID4gPj4gPj4gPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6Cj4gPj4gPiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgo+ID4+ID49MjAKPiA+PiA+ID4gPj4gPj4gPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6Cj4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gPiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Cj4gPj4gPj0yMAo+ID4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRD4KPiA+PiA+PTIwCj4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDoKPiA+PiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj49MjAKPiA+PiA+ID4gPj4gPj4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOgo+ID4+ID4gdXNlcnMtaGVscEBtYXZlbi5hcGFjaGUub3JnPgo+ID4+ID49MjAKPiA+PiA+PTIwCj4gPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KPTJEPgo+ID4+ID49MjAKPiA+PiA+ID4gPj4gPj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDoKPiA+PiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgo+ID4+PTIwCj4gPj4gPiA+ID4+ID4+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6Cj4gPj4gdXNlcnMtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj49MjAKPiA+PiA+ID4gPj4gPj4gPiA+IC0tPgo+ID4+ID4gPiA+PiA+PiA+ID4gLS0tLS0+Cj4gPj4gPiA+ID4+ID4+ID4gPiBBcm5hdWQgSD1FRj1CRj1CRHJpdGllcj4KPiA+PiA+ID4gPj4gPj4gPiA+IGh0dHA6Ly9haGVyaXRpZXIubmV0Pgo+ID4+ID4gPiA+PiA+PiA+ID4gTWFpbC9HVGFsazogYWhlcml0aWVyIEFUIGdtYWlsIERPVCBjb20+Cj4gPj4gPiA+ID4+ID4+ID4gPiBUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyPgo+ID4+ID49MjAKPiA+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+ID49MjAKPiA+PiA+ID4gPj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4gPiA+PiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj0yMAo+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+PTIwCj4gPj4gPiA+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj0yMAo+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+PTIwCj4gPj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj49MjAKPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+Pj0yMAo+ID4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPj0yMAo+ID4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID49MjAKPiA+PiA+IC0tCj4gPj49MjAKPiA+PiBTZW50IGZyb20gbXkgcGhvbmUKPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj49MjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MTE4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBTZXAgMzAgMTA6NDE6MzMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTE4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDBDRjRGMTA5M0QKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAzMCBTZXAgMjAxNyAxMDo0MTozMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDY4ODQwIGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIFNlcCAyMDE3IDEwOjQxOjMyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2ODc2MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMCBTZXAgMjAxNyAxMDo0MTozMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY4NzQ2IGludm9rZWQgYnkgdWlkIDk5KTsgMzAgU2VwIDIwMTcgMTA6NDE6MzIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDMwIFNlcCAyMDE3IDEwOjQxOjMyICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRjIxMjMxQTIxNUMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDMwIFNlcCAyMDE3IDEwOjQxOjMxICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuOApYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC44IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgS0FNX05VTVNVQkpFQ1Q9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHE4OVMzUTRVeWstUSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgMzAgU2VwIDIwMTcgMTA6NDE6MzAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDA0LnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTI2XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDBGQTlCNUZDQzEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDMwIFNlcCAyMDE3IDEwOjQxOjI5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDUxIHdpdGggTUUKCWlkIEZtaE4xdzAwRjIwVWZkeTAzbWhOckY7IFNhdCwgMzAgU2VwIDIwMTcgMTI6NDE6MjIgKzAyMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogU2F0LCAzMCBTZXAgMjAxNyAxMjo0MToyMiArMDIwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgRG94aWEgU2l0ZXRvb2xzIHZlcnNpb24gMS43LjUKRGF0ZTogU2F0LCAzMCBTZXAgMjAxNyAxMjo0MToyMiArMDIwMApNZXNzYWdlLUlEOiA8Njc2ODI4MC5tYkwyWjk2enI3QGdpZ2E+ClVzZXItQWdlbnQ6IEtNYWlsLzUuMi4zIChMaW51eC80LjEwLjAtMzUtZ2VuZXJpYzsgS0RFLzUuMzEuMDsgeDg2XzY0OyA7ICkKSW4tUmVwbHktVG86IDxvcC55NjZyemxsemtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KUmVmZXJlbmNlczogPG9wLnk2NnJ6bGx6a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCisxCgpSZWdhcmRzLAoKSGVydj1FOQoKTGUgbWFyZGkgMjYgc2VwdGVtYnJlIDIwMTcsIDIwOjUxOjExIENFU1QgUm9iZXJ0IFNjaG9sdGUgYSA9RTljcml0IDoKPiBIaSwKPj0yMAo+IFdlIHNvbHZlZCA1IGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamVjdElkPTNEMTIzMTczPQoyMCZ2ZQo+IHJzaW9uPTNEMTIzMzg5ODImc3R5bGVOYW1lPTNEVGV4dAo+PTIwCj4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUzRCUyMDEyMzE3MzIwJTIwQT0KTkQlMjAKPiBzdGF0dXMlMjAlM0QlMjBPcGVuJTIwT1JERVIlMjBCWSUyMGtleSUyMERFU0MlMkMlMjBwcmlvcml0eSUyMERFU0MKPj0yMAo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzcwLwo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzAvb3JnL2FwYWNoZS89Cm1hdgo+IGVuL2RveGlhL2RveGlhLXNpdGV0b29scy8xLjcuNS9kb3hpYS1zaXRldG9vbHMtMS43LjUtc291cmNlLXJlbGVhc2UuemlwCj49MjAKPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBkb3hpYS1zaXRldG9vbHMtMS43LjUtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6Cj4gOWFiODc0MTIwYmQ2MGY1MzJjMTY3YTQzMGQ4ZTA3N2MyOTE0MDE2ZAo+PTIwCj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9kb3hpYS9kb3hpYS1zaXRldG9vbHMtYXJjaGl2ZXMvZG94aWEtc2l0ZXRvb2xzLUw9CkFURQo+IFNULwo+PTIwCj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPj0yMAo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj49MjAKPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzMDgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE9jdCAyMiAxNDoxMjowOSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzMDgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOERCNTIxMEE1QQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDIyIE9jdCAyMDE3IDE0OjEyOjA5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzc0NzcgaW52b2tlZCBieSB1aWQgNTAwKTsgMjIgT2N0IDIwMTcgMTQ6MTI6MDQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM3Mzk5IGludm9rZWQgYnkgdWlkIDUwMCk7IDIyIE9jdCAyMDE3IDE0OjEyOjA0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzczODcgaW52b2tlZCBieSB1aWQgOTkpOyAyMiBPY3QgMjAxNyAxNDoxMjowNCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMjIgT2N0IDIwMTcgMTQ6MTI6MDQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA1QUMyMzFBMDUzOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjIgT2N0IDIwMTcgMTQ6MTI6MDMgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMS44ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xLjggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgSUl4bTNoQ2ROVExOIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAyMiBPY3QgMjAxNyAxNDoxMjowMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDMuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjVdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRTgxM0U1RkI4NwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjIgT2N0IDIwMTcgMTQ6MTI6MDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkNTcgd2l0aCBNRQoJaWQgUWVCdjF3MDAyMjBVZmR5MDNlQnZKRDsgU3VuLCAyMiBPY3QgMjAxNyAxNjoxMTo1NSArMDIwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBTdW4sIDIyIE9jdCAyMDE3IDE2OjExOjU1ICswMjAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogbmV4dCBjYW5kaWRhdGVzIGZvciBHaXQgbWlncmF0aW9uCkRhdGU6IFN1biwgMjIgT2N0IDIwMTcgMTY6MTE6NTQgKzAyMDAKTWVzc2FnZS1JRDogPDY4OTEyMDEub28ybTcxc2xYZ0BnaWdhPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCm5vdyB3ZSBoYXZlIDE1IGdpdCByZXBvczogOSBHaXQtV0lQICsgNiBHaXRCb3gKSSBkaWRuJ3QgdHJ5IHRoZSBnaXQgbW9kdWxlcyBzdHJhdGVneSB0byBoYXZlIGFuIGVhc3kgY2xvbmUvcHVsbDogaWYgc29tZWJvPQpkeT0yMAp0cmllZCwgcGxlYXNlIHNoYXJlIHJlc3VsdHMKCmxldCdzIHNlZSB0aGUgbmV4dCBjYW5kaWRhdGVzIFsxXSwgd2hpY2ggYXJlIGxlc3Mgb2J2aW91cyB0aGFuIHRoZSAxNSBmaXJzdD0KPTIwCm9uZXM6Cgo9MkQgMiBzaXRlcyAoTWF2ZW4gYW5kIERveGlhKTogYW55Ym9keSBrbm93cyBpZiBDTVMgc3VwcG9ydHMgc291cmNlIGluIEdpdD8KCj0yRCAyIHBhcmVudCBwb21zOiBBU0YgYW5kIG1hdmVuLXBhcmVudC4gU2VlbXMgZmVhc2libGUgdG8gaGF2ZSAyIHJlcG9zLiBPbj0KbHk9MjAKaXNzdWVzIEkgc2VlIGFyZToKICAtIGhvdyB0byBuYW1lIHRoZSByZXBvIGZvciBBU0Y/CiAgLSBob3cgdG8gZ2V0IHRoZSBoaXN0b3J5IGZvciBtYXZlbi1wYXJlbnQsIGdpdmVuIHRoZXJlIHdlcmUgYSBsb3RzIG9mIG1vdj0KZXM/Cgo9MkQgNiByZXNvdXJjZSBidW5kbGVzOiBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9hcGFjaGUtcmVzb3VyY2UtYnVuZGxlcy8Kd2hhdCBhYm91dCBkb2luZyAxIGdpdCByZXBvIG9ubHksIHdpdGggb25lIHVuaXF1ZSBjb21tb24gdmVyc2lvbj8KCj0yRCAyIHNraW5zOiBzZWVtcyBmZWFzaWJsZSB0byBoYXZlIDIgcmVwb3MgKEkgZG9uJ3Qga25vdyBpZiBnZXR0aW5nIGhpc3Rvcj0KeSBpcz0yMAplYXN5IG9yIG5vdCkKCj0yRCA1IGRveGlhIHRvb2xzOiA1IHJlcG9zIHNlZW1zIHJlYXNvbmFibGUKCj0yRCA0MSBwbHVnaW5zCj0yRCAyNiBzaGFyZWQgY29tcG9uZW50cwpyZWFsbHksIHRoaXMgd2lsbCBiZSB0aGUgaGFyZCBwYXJ0cy4uLgoKPTJEIGFyY2hldHlwZXM6IGxvb2tzIGl0IGhhcyBtb3ZlZCB0byAxMCBpbmRlcGVuZGFudCBhcmNoZXR5cGVzCgoKVGhlIGJlZ2lubmluZyBvZiB0aGUgbGlzdCBzZWVtcyBmZWFzaWJsZTogbm90IGFzIGVhc3kgYXMgcHJldmlvdXNseSwgYnV0PTIwCmZlYXNpYmxlCkFyZSB0aGVyZSB2b2x1bnRlZXJzIHRvIHByZXBhcmUgcmVmZXJlbmNlIHRhcmdldCBnaXQgcmVwb3M/CgpJZiB3ZSBjYW4ndCBnZXQgdGhlIGpvYiBkb25lIG9uIHRoZXNlLCBJIHRoaW5rIHRoYXQgdGFsa2luZyBhYm91dCBwbHVnaW5zCitzaGFyZWQrYXJjaGV0eXBlcyBpcyBqdXN0IGEgd2FzdGUgb2YgdGltZQoKUmVnYXJkcywKCkhlcnY9RTkKCgpbMV0gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9HaXQrTWlncmF0aW9uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQxNjEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE9jdCAgNyAxMTowNzoxOSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxNjEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQkQ2MkQxMEJFQwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDExOjA3OjE5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODE5ODcgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBPY3QgMjAxNyAxMTowNzoxOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODE5MTIgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBPY3QgMjAxNyAxMTowNzoxOSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgxODk5IGludm9rZWQgYnkgdWlkIDk5KTsgNyBPY3QgMjAxNyAxMTowNzoxOSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDcgT2N0IDIwMTcgMTE6MDc6MTkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAzODJCMzFBMjI4QwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMTE6MDc6MTggKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4yMDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMjAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTE9XPS0wLjcsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgcGlZaFhDUTljTjVuIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAgNyBPY3QgMjAxNyAxMTowNzoxNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNS4xNV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBEQzBGMjVGNDZGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNyBPY3QgMjAxNyAxMTowNzoxNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBLYXJsLUhlaW56cy1NYWNCb29rLVByby5sb2NhbCAoWzkyLjIwNC4xMjMuMzJdKSBieSBtYWlsLmdteC5jb20KIChtcmdteDAwMiBbMjEyLjIyNy4xNy4xOTBdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTTlKc3MtMWU5MGdpMGp0ZS0wMENtOE4gZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMDcgT2N0IDIwMTcKIDEzOjA3OjEwICswMjAwClJlcGx5LVRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIFdBUiBQbHVnaW4gdmVyc2lvbiAzLjIuMApGcm9tOiBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClJlZmVyZW5jZXM6IDxkMzBlYTQ3Ni0wNzk0LWYwOTYtY2U2MS01ZmI0MWIwM2I5NmFAZ214LmRlPgpNZXNzYWdlLUlEOiA8NmU1MWZlMTctMTg2My1mNzMyLWQ3ZWMtM2IyMDY3MTlhOThlQGdteC5kZT4KRGF0ZTogU2F0LCA3IE9jdCAyMDE3IDEzOjA3OjA5ICswMjAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwLjExOyBydjo1Mi4wKQogR2Vja28vMjAxMDAxMDEgVGh1bmRlcmJpcmQvNTIuMy4wCk1JTUUtVmVyc2lvbjogMS4wCkluLVJlcGx5LVRvOiA8ZDMwZWE0NzYtMDc5NC1mMDk2LWNlNjEtNWZiNDFiMDNiOTZhQGdteC5kZT4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLUdCCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6c3pUQngzNTJXWjQ2SEI0aDdka2VmcnN6dWVWaXpITThDTFVNcG5aZmt6eGx4VnArc0xnCiAyL3BCTzRHNlhZSVp5TjB0aUNSZzQ5VmU4RG5DSEpPb1MwSnJZM05CdnR2b0NJNGxaZm1FNjdXN0hZRWFmRC92VnhDdzh2WgogZjlSOVRFcmM2NXhMU3dyRms2S1RubVNjSDNpMnN0bmIzeWZUWmh4cUxXVVJlWC9uUitreXlXLzRNM295anBsbmYwY3hrUE4KIGFvT0tQcTN2SlhoaTFYMGN1NndUQT09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6ekpROXo4R3BiZEU9OkJaMy80aGwvSW1xVTlCNnkxampYc2cKIDBOcUcwNWdybnBYdTQxUjYyeDNzSEhJNWE4OTMzNlRQZXE4VFIwSC9VVkRqREIvS2w5YUQ1Mm5rQ2xqeUh4dWwwSDVPOWRaU2sKIFdzOTJXZERMYUg3SUd0dkdzaDJqbnNvTW9FWGV4NlAwTFdCcW1Kd0xZVVB6KzlkS3BPYTdtSEdkbitlWmxndTRRQ0lidjFKcjAKIEE3MVpPZ3dwZWJ6dGxiL3RNQ1REc0hWT2taNzR4R0RSUXVRMm13TTJ4ZnVKa05rZ25NNEFZV1pmRStSbGtkWHBCd0pSUEU5UC8KIExYeHBkL3dTMTdhT0t2Rjc1VGhsejNON0Y1aFJ2aDdSQWhWb3paK01TL1JLVTE3aENWbVdzaWpjalRFNHAzaW5IYUZuZGlZTHEKIDlIN0tNcjk2aHp3ZWcxR2xGYVMrR1ZvUUtGZ3AraCtpMHF1MVhVdjV1Mk9wSnJwOW5laUJCdzZrMTZNdTN2STIrUmFyVUNPZXgKIDJzZ3diNUZsb0ZCSEpYVld4V3kxRGpyTmVnTTAzWE16VTYwdlJDSTQ1aS8zMmVvUFdNNUNnNmUrelI3dmFiUlpIbkJ2Q2tiVm0KIE82bFdQVUlFQUVSaUpuZW0vcW43TFJCVFBRTG44SEY5ejVtdE5aRS85U0dkcEVxdDg4ZGJSYkNxNEJ6TXVLNUlNWGFHTFI4RG8KIE5oSUdrV3dPOGs3dlRWczU5dm5Ya1BmTGNpM2VnOEt1UFd3RytOTHVkU2dGQTdCTGNzaTF1a0FYN2E1S2EvVU9vdlRaajRpL2EKIHFKcWY1SnZ2T3IzSlE4c2ZDOCs1TlZnQnBRS1lLVXNpMWFiTENZRzNYTEMrK2FGV2VXTHliUDR5V1Zqd3VxdkovUE5Ld2l3SzcKIEx5ZklIeUF5S09UaXBrNUFoek40QXpPWUVFanJibVppZlRqejR6a1FqSVU0c3IyNS9MczlXV3FsSjRCdEo3UGxnVmtiZ0ZwaGwKIG1HN1Jjbjc4OXlIc0NZVzBlbXp2QmNxdytJcjFTQTV4bzJ0TzVRZHFwVElCZWZFUlBkNUNJQXpOc3pZZzZCdWYxZ3d6VWpRUm0KIHVrcFFqKytBRlpKYnJsVXlJWGNCL1JoTzF0ZTBLTlFuaWRlZzF2U0lQWWg2OFlCV21ZPQoKSGksCgp0aGVyZSBpcyBtaXNzaW5nIG9uZSBQTUMgdm90ZSA/CgpLaW5kIHJlZ2FyZHMKS2FybCBIZWlueiBNYXJiYWlzZQpPbiAzMC8wOS8xNyAxNzo1NSwgS2FybCBIZWlueiBNYXJiYWlzZSB3cm90ZToKPiBIaSwKPiAKPiBXZSBzb2x2ZWQgMyBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMxODEyMSZ2ZXJzaW9uPTEyMzQxMzcyIAo+IAo+IAo+IFRoZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJTNEJTIwTVdBUiUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlMjBCWSUyMGtleSUyMERFU0MlMkMlMjBwcmlvcml0eSUyMERFU0MlMkMlMjB1cGRhdGVkJTIwREVTQyAKPiAKPiAKPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3MQo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL21hdmVuLXdhci1wbHVnaW4vMy4yLjAvbWF2ZW4td2FyLXBsdWdpbi0zLjIuMC1zb3VyY2UtcmVsZWFzZS56aXAgCj4gCj4gCj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gbWF2ZW4td2FyLXBsdWdpbi0zLjIuMC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogCj4gNWM2NjFmNDU1NDYxNjE0NzQ5MTAzNmRmYWM2ODliYTlkYjkwY2VjMgo+IAo+IAo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi13YXItcGx1Z2luLUxBVEVTVC8KPiAKPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+IAo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4gCj4gWyBdICsxCj4gWyBdICswCj4gWyBdIC0xCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQwNTItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIFNlcCAxNyAxMTo0MTowNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwNTItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOEIyQjgxOTg2MwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDE3IFNlcCAyMDE3IDExOjQxOjA1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTA1NzcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTcgU2VwIDIwMTcgMTE6NDE6MDAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUwNDk1IGludm9rZWQgYnkgdWlkIDUwMCk7IDE3IFNlcCAyMDE3IDExOjQxOjAwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTA0ODQgaW52b2tlZCBieSB1aWQgOTkpOyAxNyBTZXAgMjAxNyAxMTo0MDo1OSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTcgU2VwIDIwMTcgMTE6NDA6NTkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA4MzVCRTE4MzhDNAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTcgU2VwIDIwMTcgMTE6NDA6NTkgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4yMjEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMjIxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTE9XPS0wLjcsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFlCX05xcU1PWmQ1dyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgMTcgU2VwIDIwMTcgMTE6NDA6NTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbW91dC5nbXgubmV0IChtb3V0LmdteC5uZXQgWzIxMi4yMjcuMTcuMjBdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQ0VFMjI1RjM5NwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTcgU2VwIDIwMTcgMTE6NDA6NTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gS2FybC1IZWluenMtTWFjQm9vay1Qcm8ubG9jYWwgKFsyMTcuMjQ3LjQwLjE1MF0pIGJ5CiBtYWlsLmdteC5jb20gKG1yZ214MTAxIFsyMTIuMjI3LjE3LjE2OF0pIHdpdGggRVNNVFBTQSAoTmVtZXNpcykgaWQKIDBNRnh3QS0xZGVoeW4xaFZHLTAwRXo1biBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxNyBTZXAgMjAxNwogMTM6NDA6NTEgKzAyMDAKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiBpbmZvQHNvZWJlcy5kZQpGcm9tOiBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4KU3ViamVjdDogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIEpNb2QgUGx1Z2luIHZlcnNpb24gMy4wLjAtYWxwaGEtMSAoRmlyc3QKIFB1YmxpYyBSZWxlYXNlKSBUYWtlIDMKTWVzc2FnZS1JRDogPDcwYzBiMWE4LWZlZDYtZjRiZi0xZWQzLTY4NjI0OTMzNjkzYkBnbXguZGU+CkRhdGU6IFN1biwgMTcgU2VwIDIwMTcgMTM6NDA6NTAgKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi4yLjEKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLUdCCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6THhMKzl5V0R0aWN2QmpaOXdUQVdva2lQWWNKZlZXa1ZFZmIvZk1tTnFoZUxmYktuenJ5CiBXdnM4a0ZIRnY0OGcraXpaWXl0b1ozLzJTc1lPWm1kYVZaK2V2R2NHV1RHMFZlNFlEZEkxL0V4OGQ5ZHB3UDIyTHlNci91SwogYVhNSWN0dXcyREUvSGpwRmdxV3Vrdmo3YjRFUFZ5MGJsbHU5QzNrOERnTVNTdGs5TnBodEUyS2RDcmtaeC82dkJvV0hNclYKIGw0MGJmRzZ5VCt3NGVGV1VMR3pYdz09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6TFNIYW9jTHdMLzQ9OmpZTUpTdUNpdjVEVStyall3bmlNZzIKIDBkdWhjVkx5ZUx2TEUwK1hpNUtQOGx0VGhURlNuMGY2dXJUU0VqdVVLc1A5YkdGSklXbEhtenY5cUh2Wnl3ZDJlVTZiYndpMHQKIDhCcjhOVjRnVndVNmg4cVV3Nk1MN05FMnU0SmVSb0FHSzNpblI2TFBSOWlMNHpFNk5yWm1hLzFScDZ3Q245KzhBVGFhbkNieFoKIFMyOXczOGk1T3hUb1FxZ3RTZTZNZUx5UjhoK1BqVnZhZWRla2RldmFnSjFlSlNQR1BaZDlKd3d4UnBja1lGZjZmWENnZ0RuREgKIC8vaVRHV1kwekpWQjlwakJDdWowT2R1SkQza2JlOHFrRmx6TmxCeWg3QytxYW9CcXBNdGdUYmJEcnVZMTgvQ3UxOTJGcVhnUmkKIEx2aDJXdm52WERVR0QyWjRoRDI2ekpBQjZYT0N1TTk5NG15bVZ3TGNyTWo1bW1TaW1rSi9WbEN0VDdJcjlLSC9qZmRWRm9GMm0KIFBrUDhzankrdW5FY3VnQVhKUE1uK0gwT1FDVEdZcXNsa3BRNmUwM1YzeS9mMUtsOXJ3eGR4MWJRdTZFdTJkOG9tdS9Ld1l5T2wKIFRvK2txZjVxSVlXNUkwZlliR0dwTmlkZHdDN3Z3SGlHTzEvS1FnSGRCVlhpNk9yYnVkQmt1a3k1MGZwQzJ2MGtrN1ZBTngyUEkKIHp4enVVMGExYW12cHlyOEc3M3RXcDZzYjAxNW04RVlTSXA4RUFyYzJYU3BKcGNFSHo1TXp6NkhCK1c2TjNkMU93dlFPTG5wUUQKIElXOW1FZVJKNStSSmVnRDJ4NW40RnpGZjduc3Q1NnJIZHEyMHJCMlQyK0FlSEdIOGxMamNCUStORHl3YVdTVG41NTk0RndaSHkKIGpPYnI4VjhUZnF4aVFaeW9LZGdsWXB4Q1RnMHFYVW9FNHUzekxkVjZnQUZydi9YSWV3eWluSFlSbU1udnVNemF4UjAwRFpQZ2MKIHdFQ2x3NjBiSHJBaFRtNlV0N0dmRU5NZjk1cGYvcVpWVXVhSXhDYllBbjJtR1J1NC9qcEp4NWVPTG9QY0l1UmxyeFNZV0NiTXcKIG1ySVV4U3crYWVFcUtKM1BYUTVSTWp6bEk4M2lxSVhrazdVRkQwMldlNnJuZ0FXMVE4PQoKSGksCgp0aGlzIGlzIHRoZSBWT1RFIGZvciB0aGUgZmlyc3QgcHVibGljIHJlbGVhc2UgZm9yIE1hdmVuIEpNb2QgUGx1Z2luLi4uCgpXZSBzb2x2ZWQgNCBpc3N1ZXM6Cmh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZWN0SWQ9MTIzMjE0MzMmdmVyc2lvbj0xMjM0MTM2MwoKVGhlcmUgYXJlIGN1cnJlbnRseSBubyBpc3N1ZXMgbGVmdCBpbiBKSVJBLgoKSWYgeW91IGhhdmUgYW55IGlzc3VlIHRvIHJlcG9ydCBwbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBKSVJBCmh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9wcm9qZWN0cy9NSk1PRAoKU3RhZ2luZyByZXBvOgpodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY5LwoKaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2OS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4tam1vZC1wbHVnaW4vMy4wLjAtYWxwaGEtMS9tYXZlbi1qbW9kLXBsdWdpbi0zLjAuMC1hbHBoYS0xLXNvdXJjZS1yZWxlYXNlLnppcAoKU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cm1hdmVuLWptb2QtcGx1Z2luLTMuMC4wLWFscGhhLTEtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6IAphYTAwYjk4YzUzNGYyNGU4MTQxZWUwYmVhY2UyYWZmM2JlODk5Njg4CgpTdGFnaW5nIHNpdGU6Cmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWptb2QtcGx1Z2luLUxBVEVTVC8KCkd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgpodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAoKVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KClsgXSArMQpbIF0gKzAKWyBdIC0xCgpLaW5kIHJlZ2FyZHMKS2FybCBIZWlueiBNYXJiYWlzZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODY2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBEZWMgMjggMTc6NTU6MTkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODY2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEI2REQ5MTBBRDIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAyOCBEZWMgMjAxNyAxNzo1NToxOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDMxOTMzIGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IERlYyAyMDE3IDE3OjU1OjE5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMTg1OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBEZWMgMjAxNyAxNzo1NToxOSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMxODQzIGludm9rZWQgYnkgdWlkIDk5KTsgMjggRGVjIDIwMTcgMTc6NTU6MTkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDI4IERlYyAyMDE3IDE3OjU1OjE5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNzc1RURDNDgzOTsKCVRodSwgMjggRGVjIDIwMTcgMTc6NTU6MTggKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC43MDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuNzAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgRGFhb0M4S2ZKYlNrOyBUaHUsIDI4IERlYyAyMDE3IDE3OjU1OjE3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1vdXQuZ214Lm5ldCAobW91dC5nbXgubmV0IFsyMTIuMjI3LjE1LjE5XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEFDNTc3NUY1QjQ7CglUaHUsIDI4IERlYyAyMDE3IDE3OjU1OjE2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIEthcmwtSGVpbnpzLU1hY0Jvb2stUHJvLmxvY2FsIChbOTIuMjA0LjQ2LjQ3XSkgYnkgbWFpbC5nbXguY29tCiAobXJnbXgwMDMgWzIxMi4yMjcuMTcuMTkwXSkgd2l0aCBFU01UUFNBIChOZW1lc2lzKSBpZAogMExzVGdlLTFleE9qVDRCT0MtMDEyMlg0OyBUaHUsIDI4IERlYyAyMDE3IDE4OjU1OjE2ICswMTAwClJlcGx5LVRvOiBpbmZvQHNvZWJlcy5kZQpTdWJqZWN0OiBSZTogc2Vjb25kIGZpeCBmb3IgTU5HLTYzMzAgW3JlZ3Jlc3Npb25dIFBhcmVudHMgcmVsYXRpdmVQYXRoIG5vdAogdmVyaWZpZWQgYW55bW9yZQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sCiBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+ClJlZmVyZW5jZXM6IDxvcC56Ynl1cnpuYmtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KRnJvbTogS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+Ck1lc3NhZ2UtSUQ6IDw3MTI5NDU4Ni04NDMyLTA3NmEtMTNmNC1lZWNjMTA5YTYxM2RAZ214LmRlPgpEYXRlOiBUaHUsIDI4IERlYyAyMDE3IDE4OjU1OjE1ICswMTAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwLjExOyBydjo1Mi4wKQogR2Vja28vMjAxMDAxMDEgVGh1bmRlcmJpcmQvNTIuNS4wCk1JTUUtVmVyc2lvbjogMS4wCkluLVJlcGx5LVRvOiA8b3AuemJ5dXJ6bmJrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtODsgZm9ybWF0PWZsb3dlZApDb250ZW50LUxhbmd1YWdlOiBlbi1HQgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0ClgtUHJvdmFncy1JRDogVjAzOkswOmcyU1hsekszRUdFUFV5VUZhMmJQdzJ5ODc5RStQNVRVanpENEl3aklUb3lRTTEwa1c2QwogZDl6ajJZZXhub0djYnRFNk1UWUhkOGVlRU5lNjFXd3JRYTIveWZNUDdZM3R1Qmo4MlJ4QkdvM0dkNnZYeDFuRHJxZTEzQUIKIEhadG1rREI3SlRRZTJwMHJzYmJXMVJ1YTAyRERzS2VjSHJNVUNBN2crUnlOUkQzN3ROUmo0Vjlsd0lzT1gzNjNEdk1FMWhECiBoVG9RWG03TnpvY29NakRiVzJJd3c9PQpYLVVJLU91dC1GaWx0ZXJyZXN1bHRzOiBub3RqdW5rOjE7VjAxOkswOnRUblhyQTVCalp3PTowREUzcmRST0x2SzY4aGpVVlhJM2JZCiBhMENLbHRjdWh4dXczR1BMeUMyTENQcGpBa2ppMXJ0S21qNE9mNkRxdVVGbVZWOVU1ZFhxRlU5bEFXbWRqVU1uSlJIV1F1elZmCiA3M1p6V2hLTldTUjlXNnRuZTdSVG94ZHhrVmthdFJCR2ZiZ2lMV0UyTXFIcG5nOEJzc0U1aUpWN3lLV1RDQXFpZ1p0eDBQSnY5CiBRKytHVFU1OG51dks0dDg0WFRORjh3VXB2YmY2SGZFTGtCdUxCSTdBMzhIUGFYVkNtK2p0MjlpL3NydGhmd0FOemp4bGQyNm42CiBJVVpGbUN5WXJsKzRkVU1ic0w1ZjNKZlROU3MwVU9vdnYyUjlyNk1jRXdVMVg1cFB0cGpteVl0WS9lTDZKd2xoeEhuMXQzWlh0CiBFb1hqVkRaUk90L21uVWFqaW8rNlc0bldzLzhOZHBWR3B0bGMwdzFUWVRWcHI2N3JDZ2hmV0tPLytyeVNIK2twZEhpRHloam11CiBTLzg4M3JKejdUWlkxNmdsWlFOdmNQaktVY2VVQXBXN3FiNUFQeVIyNHhRZDUwQ0QwOXRDM2k3cm9uSDhEN3M3UHlzT3U2M0RlCiB1NUc0cGV2aUtuTENaaGZpL203NUVyRlB2VDEwcnRwU1ZWNWpjaUdUQTNFRVlIZG9kTjZYdGtTN2xkQ0J2cDN0ZUdSRjdSTXR3CiA0aWFlaG9aOTBmMzBUSTJoZTBldTczWmI3RS9GaXR1dkk0dndud1dQUk53eFI5T2ExU002VVdscFFsK1Z1RjA3dWJCR0V3TitVCiB2dythbnpQRmFKTzNReXZKeFFqd3hoYm9MMjNEQ2pFdTdrSkF5eTZMTmcvTlNncWRuSkhwdGsxbWdLREVxTzRxV2MxY0pPWGllCiBsZmdsRHBiZFRjWEczVXB6MGh5M0VZMWpHSktIaThIWjk4TkZlcmJQTlpOWkNYRTB2MVMzaktZUHEyTGJOb3BzZXdWWjZ5a1FiCiBZNnFHcUYrcmJ4bjRBVHdaV2xkUzVWUDhMRUtrdzMrVTkxbFVoOURwekJGWUI0dGNNaEdsSzgwbXFraWFWeTF4NEJQTmZLRG1hCiB5Unh1ZzdtK0thc1M5ZTFDeW1zTnRpY2VxMEhjTVM2QTNyOHBIRXZtRENPMWc5MnZzc0ZDOU8xUzVpRnpBZ21Xek4wRk1KLwoKSGkgUm9iZXJ0LAoKCk9uIDI4LzEyLzE3IDE3OjU4LCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPiBIaSwKPiAKPiBMb29raW5nIGZvciBzb21lb25lIHRvIGNvbmZpcm0gYW5kIHNlY29uZCBNTkctNjMzMFsxXQoKaG93IGNhbiBJIGhlbHAgaGVyZT8KCkthcmwgSGVpbnogTWFyYmFpc2UKCj4gV2hpbGUgd29ya2luZyBvbiB0aGUgbWF2ZW4tcmVsZWFzZS1wbHVnaW4gSSBkaXNjb3ZlcmVkIHJlZ3Jlc3Npb24gCj4gaW50cm9kdWNlZCBpbiBNYXZlbiAzLjUuMCBieSBhIGNoYW5nZSB0byB0aGUgUmVhY3Rvck1vZGVsQ2FjaGVbMl0KPiBUaGlzIG9ubHkgb2NjdXJzIHdoZW4gYSBwYXJlbnQgd2FzIGNhY2hlZCBhbmQgYW5vdGhlciBtb2R1bGUgcG9pbnRzIHRvIAo+IHRoaXMgcGFyZW50LCBldmVuIHRob3VnaCB0aGUgcmVsYXRpdmVQYXRoIGZvciB0aGlzIHBhcmVudCByZXN1bHRzIGluIGEgCj4gbm9uLWV4aXN0aW5nIHBvbSBmaWxlLgo+IENoYW5nZSBpcyBhIHNpbXBsZSBudWxsLWNoZWNrWzNdCj4gUmVncmVzc2lvbiBjb3ZlcmVkIGJ5IGludGVncmF0aW9uIHRlc3RbNF0KPiBKZW5raW5zIGlzIGhhcHB5WzVdCj4gCj4gdGhhbmtzLAo+IFJvYmVydAo+IAo+IFsxXSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MzMwCj4gWzJdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYwMzAKPiBbM10gCj4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9jb21taXQvNGViNTc0N2U4MjI5ZDAyMDFiNzA3MDUyY2U3ZjhhZTJmZTI0ZWVjMiAKPiAKPiBbNF0gCj4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9bWF2ZW4taW50ZWdyYXRpb24tdGVzdGluZy5naXQ7YT1jb21taXQ7aD1jZmQwY2M2MjljMmRkNDk2NTU0YzU5YzE2ODBmYjFkOTBiMTMxMWIzIAo+IAo+IFs1XSAKPiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL2pvYi9tYXZlbi13aXAvam9iL21hdmVuL2pvYi9NTkctNjMzMF9SZWxhdGl2ZVBhdGgvIAo+IAo+IAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+IAo+IAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NzcxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBEZWMgMTIgMDY6MTE6NDQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzcxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEUzMTBGMTc2QTgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAxMiBEZWMgMjAxNyAwNjoxMTo0MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDExNDMzIGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIERlYyAyMDE3IDA2OjExOjQzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMTM0MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMiBEZWMgMjAxNyAwNjoxMTo0MyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDExMzI2IGludm9rZWQgYnkgdWlkIDk5KTsgMTIgRGVjIDIwMTcgMDY6MTE6NDIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDEyIERlYyAyMDE3IDA2OjExOjQyICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNUZCRDZDMDM5QQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTIgRGVjIDIwMTcgMDY6MTE6NDIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjg3MQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjg3MSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBTUEZfSEVMT19QQVNTPS0wLjAwMSwgU1BGX1NPRlRGQUlMPTAuOTcyXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMTAyNC1iaXQga2V5KSBoZWFkZXIuZD1ob250b24ub3JnClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB1TVRmQlV3bmd3Qk8gZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUdWUsIDEyIERlYyAyMDE3IDA2OjExOjQxICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGJpejQ2LmlubW90aW9uaG9zdGluZy5jb20gKGJpejQ2LmlubW90aW9uaG9zdGluZy5jb20gWzIwNS4xMzQuMjUwLjE2MF0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA3RDIxRDVGMzlBCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxMiBEZWMgMjAxNyAwNjoxMTo0MCArMDAwMCAoVVRDKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IHE9ZG5zL3R4dDsgYz1yZWxheGVkL3JlbGF4ZWQ7IGQ9aG9udG9uLm9yZzsKCSBzPWRlZmF1bHQ7IGg9VG86TWVzc2FnZS1JZDpTdWJqZWN0OkRhdGU6TWltZS1WZXJzaW9uOgoJQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzpDb250ZW50LVR5cGU6RnJvbTpTZW5kZXI6UmVwbHktVG86Q2M6Q29udGVudC1JRDoKCUNvbnRlbnQtRGVzY3JpcHRpb246UmVzZW50LURhdGU6UmVzZW50LUZyb206UmVzZW50LVNlbmRlcjpSZXNlbnQtVG86UmVzZW50LUNjCgk6UmVzZW50LU1lc3NhZ2UtSUQ6SW4tUmVwbHktVG86UmVmZXJlbmNlczpMaXN0LUlkOkxpc3QtSGVscDpMaXN0LVVuc3Vic2NyaWJlOgoJTGlzdC1TdWJzY3JpYmU6TGlzdC1Qb3N0Okxpc3QtT3duZXI6TGlzdC1BcmNoaXZlOwoJYmg9NFRVSEZJcjA3YnZLZ1k0UDRheXZ2dkN2UGNHRksvYW85d3NrdWJrN2ljMD07IGI9ZzdNdVQxdW4yaktaT3RtbFd0N1RELzlwZ3AKCU16dW9DeUI2WjJSeHRqbGhZMWtuZmZiaGNING0wdW9WZk55YjI3QlBZajVWaEJjQ2dtTVdPVE5mS2lZMnBmS0Y4anRXb2V3R1BUN3d0Cgl2S3F6R21HZWNNdnhsMkNHRFk4cWhSem1wNXZBZHR5eFhjMXJTNW9tVFVTRUduZ3ZUWTgxYlB0enVFR2JzUHdPT1RWcz07ClJlY2VpdmVkOiBmcm9tIFsxNzMuMjI4Ljg4LjExNF0gKHBvcnQ9NTAxNzMgaGVsbz1bMTkyLjE2OC4xLjQ2XSkKCWJ5IGJpejQ2LmlubW90aW9uaG9zdGluZy5jb20gd2l0aCBlc210cHNhIChUTFN2MS4yOkVDREhFLVJTQS1BRVMyNTYtR0NNLVNIQTM4NDoyNTYpCgkoRXhpbSA0Ljg5KQoJKGVudmVsb3BlLWZyb20gPGNoYXNAaG9udG9uLm9yZz4pCglpZCAxZU9kbWYtMDAxcUo3LTNaCglmb3IgZGV2QG1hdmVuLmFwYWNoZS5vcmc7IE1vbiwgMTEgRGVjIDIwMTcgMjI6MTE6MzIgLTA4MDAKRnJvbTogQ2hhcyBIb250b24gPGNoYXNAaG9udG9uLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7Cglib3VuZGFyeT1BcHBsZS1NYWlsLTc1Qjc0OEI1LUFEMjQtNDhGNC05NjlELTNFMkNDNjIzRTI2RQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0Ck1pbWUtVmVyc2lvbjogMS4wICgxLjApCkRhdGU6IE1vbiwgMTEgRGVjIDIwMTcgMjI6MTE6MTUgLTA4MDAKU3ViamVjdDogR2l0Ym94IHB1bGwgcmVxdWVzdHMgCk1lc3NhZ2UtSWQ6IDw3MjFFOEMyMi0wN0NGLTQ0RjAtQjQwNS02QUQ2RDBDOTI0RjFAaG9udG9uLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClgtTWFpbGVyOiBpUGhvbmUgTWFpbCAoMTVCMjAyKQpYLU91dEdvaW5nLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEuMApYLUFudGlBYnVzZTogVGhpcyBoZWFkZXIgd2FzIGFkZGVkIHRvIHRyYWNrIGFidXNlLCBwbGVhc2UgaW5jbHVkZSBpdCB3aXRoIGFueSBhYnVzZSByZXBvcnQKWC1BbnRpQWJ1c2U6IFByaW1hcnkgSG9zdG5hbWUgLSBiaXo0Ni5pbm1vdGlvbmhvc3RpbmcuY29tClgtQW50aUFidXNlOiBPcmlnaW5hbCBEb21haW4gLSBtYXZlbi5hcGFjaGUub3JnClgtQW50aUFidXNlOiBPcmlnaW5hdG9yL0NhbGxlciBVSUQvR0lEIC0gWzQ3IDEyXSAvIFs0NyAxMl0KWC1BbnRpQWJ1c2U6IFNlbmRlciBBZGRyZXNzIERvbWFpbiAtIGhvbnRvbi5vcmcKWC1HZXQtTWVzc2FnZS1TZW5kZXItVmlhOiBiaXo0Ni5pbm1vdGlvbmhvc3RpbmcuY29tOiBhdXRoZW50aWNhdGVkX2lkOiBjaGFzK2hvbnRvbi5vcmcvb25seSB1c2VyIGNvbmZpcm1lZC92aXJ0dWFsIGFjY291bnQgbm90IGNvbmZpcm1lZApYLUF1dGhlbnRpY2F0ZWQtU2VuZGVyOiBiaXo0Ni5pbm1vdGlvbmhvc3RpbmcuY29tOiBjaGFzQGhvbnRvbi5vcmcKWC1Tb3VyY2U6IApYLVNvdXJjZS1BcmdzOiAKWC1Tb3VyY2UtRGlyOiAKCi0tQXBwbGUtTWFpbC03NUI3NDhCNS1BRDI0LTQ4RjQtOTY5RC0zRTJDQzYyM0UyNkUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOwoJY2hhcnNldD11cy1hc2NpaQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpQdWxsIHJlcXVlc3RzIGZvciBuZXcgcHJvamVjdCBhcmUgbm90IHNlbnQgdG8gdGhlIGRldiBtYWlsaW5nIGxpc3QgKGUuZy4gaHR0PQpwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRlcGxveS1wbHVnaW4vcHVsbC8xKS4gQXJlIHRoZXNlIFBScyBzdXBwb3NlZCB0PQpvIGJlIGZvcndhcmRlZCB0byBzb21lIG1haWxpbmcgbGlzdD8gIEFyZSB0aGVzZSBQUnMgc3VwcG9zZWQgdG8gYmUgYXV0b21hdGljPQphbGx5IGJ1aWx0PwoKVGhhbmtzLApDaGFzPQoKLS1BcHBsZS1NYWlsLTc1Qjc0OEI1LUFEMjQtNDhGNC05NjlELTNFMkNDNjIzRTI2RS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MzEwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBPY3QgMjIgMTY6NDI6NTYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzEwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEEwMjI1MTBENUYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAyMiBPY3QgMjAxNyAxNjo0Mjo1NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDYyNTg2IGludm9rZWQgYnkgdWlkIDUwMCk7IDIyIE9jdCAyMDE3IDE2OjQyOjU2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MjUxNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMiBPY3QgMjAxNyAxNjo0Mjo1NiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYyNTAzIGludm9rZWQgYnkgdWlkIDk5KTsgMjIgT2N0IDIwMTcgMTY6NDI6NTUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDIyIE9jdCAyMDE3IDE2OjQyOjU1ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgM0EyQzhDMTEyMwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjIgT2N0IDIwMTcgMTY6NDI6NTUgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMS44ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0xLjggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgQWUyVjJmcjkzakZxIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAyMiBPY3QgMjAxNyAxNjo0Mjo1MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDIuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjRdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNjBEN0U1RkJFNgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjIgT2N0IDIwMTcgMTY6NDI6NTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMzcgd2l0aCBNRQoJaWQgUWdpbTF3MDA4MjBVZmR5MDNnaW1iUzsgU3VuLCAyMiBPY3QgMjAxNyAxODo0Mjo0NiArMDIwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBTdW4sIDIyIE9jdCAyMDE3IDE4OjQyOjQ2ICswMjAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IG5leHQgY2FuZGlkYXRlcyBmb3IgR2l0IG1pZ3JhdGlvbgpEYXRlOiBTdW4sIDIyIE9jdCAyMDE3IDE4OjQyOjQ2ICswMjAwCk1lc3NhZ2UtSUQ6IDw3MjU1NTY1LjRrazZPRzQ0ZXBAZ2lnYT4KSW4tUmVwbHktVG86IDxDQStuUG5NejZpSnF0MHRzcU5aPVQyQm13K2NnTnlVNGgtPTRnM2dzdUgyWjhuM2RpVWdAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDw2ODkxMjAxLm9vMm03MXNsWGdAZ2lnYT4gPENBK25Qbk16NmlKcXQwdHNxTlo9VDJCbXcrY2dOeVU0aC09NGczZ3N1SDJaOG4zZGlVZ0BtYWlsLmdtYWlsLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpkaXNjdXNzaW5nIHdpdGggaW5mcmEsIG9uZSBkYXksIGV2ZXJ5dGhpbmcgc2hvdWxkIG1vdmUgdG8gR2l0Qm94OiBidXQgdGhleT0KPTIwCmRpZG4ndCBwcm92aWRlIEVUQQoKbGV0J3MgZGlzY292ZXIgR2l0Qm94IGFuZCBzZWUgaWYgaXQgZGVzZXJ2ZSB0byBhc2sgZm9yIG1pZ3JhdGlvbiB3aXRob3V0PTIwCndhaXRpbmcKClJlZ2FyZHMsCgpIZXJ2PUU5CgpMZSBkaW1hbmNoZSAyMiBvY3RvYnJlIDIwMTcsIDE3OjUwOjIzIENFU1QgU3RlcGhlbiBDb25ub2xseSBhID1FOWNyaXQgOgo+IFNob3VsZCB3ZSBzZWUgYWJvdXQgbW92aW5nIG91ciBnaXQtd2lwIHRvIGdpdGJveD8KPj0yMAo+IE9uIFN1biAyMiBPY3QgMjAxNyBhdCAxNToxMiwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdyb3Q9CmU6Cj4gPiBub3cgd2UgaGF2ZSAxNSBnaXQgcmVwb3M6IDkgR2l0LVdJUCArIDYgR2l0Qm94Cj4gPiBJIGRpZG4ndCB0cnkgdGhlIGdpdCBtb2R1bGVzIHN0cmF0ZWd5IHRvIGhhdmUgYW4gZWFzeSBjbG9uZS9wdWxsOiBpZgo+ID4gc29tZWJvZHkKPiA+IHRyaWVkLCBwbGVhc2Ugc2hhcmUgcmVzdWx0cwo+ID49MjAKPiA+IGxldCdzIHNlZSB0aGUgbmV4dCBjYW5kaWRhdGVzIFsxXSwgd2hpY2ggYXJlIGxlc3Mgb2J2aW91cyB0aGFuIHRoZSAxNQo+ID4gZmlyc3QKPiA+IG9uZXM6Cj4gPj0yMAo+ID4gLSAyIHNpdGVzIChNYXZlbiBhbmQgRG94aWEpOiBhbnlib2R5IGtub3dzIGlmIENNUyBzdXBwb3J0cyBzb3VyY2UgaW4gR2k9CnQ/Cj4gPj0yMAo+ID4gLSAyIHBhcmVudCBwb21zOiBBU0YgYW5kIG1hdmVuLXBhcmVudC4gU2VlbXMgZmVhc2libGUgdG8gaGF2ZSAyIHJlcG9zLgo+ID4gT25seQo+ID49MjAKPiA+IGlzc3VlcyBJIHNlZSBhcmU6Cj4gPiAgIC0gaG93IHRvIG5hbWUgdGhlIHJlcG8gZm9yIEFTRj8KPiA+ICAgLSBob3cgdG8gZ2V0IHRoZSBoaXN0b3J5IGZvciBtYXZlbi1wYXJlbnQsIGdpdmVuIHRoZXJlIHdlcmUgYSBsb3RzIG9mCj4gPj0yMAo+ID4gbW92ZXM/Cj4gPj0yMAo+ID4gLSA2IHJlc291cmNlIGJ1bmRsZXM6IGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL2FwYWNoZS1yZXNvdXJjZS1idW5kbGVzLwo+ID4gd2hhdCBhYm91dCBkb2luZyAxIGdpdCByZXBvIG9ubHksIHdpdGggb25lIHVuaXF1ZSBjb21tb24gdmVyc2lvbj8KPiA+PTIwCj4gPiAtIDIgc2tpbnM6IHNlZW1zIGZlYXNpYmxlIHRvIGhhdmUgMiByZXBvcyAoSSBkb24ndCBrbm93IGlmIGdldHRpbmcgaGlzdD0Kb3J5Cj4gPiBpcwo+ID4gZWFzeSBvciBub3QpCj4gPj0yMAo+ID4gLSA1IGRveGlhIHRvb2xzOiA1IHJlcG9zIHNlZW1zIHJlYXNvbmFibGUKPiA+PTIwCj4gPiAtIDQxIHBsdWdpbnMKPiA+IC0gMjYgc2hhcmVkIGNvbXBvbmVudHMKPiA+IHJlYWxseSwgdGhpcyB3aWxsIGJlIHRoZSBoYXJkIHBhcnRzLi4uCj4gPj0yMAo+ID4gLSBhcmNoZXR5cGVzOiBsb29rcyBpdCBoYXMgbW92ZWQgdG8gMTAgaW5kZXBlbmRhbnQgYXJjaGV0eXBlcwo+ID49MjAKPiA+PTIwCj4gPiBUaGUgYmVnaW5uaW5nIG9mIHRoZSBsaXN0IHNlZW1zIGZlYXNpYmxlOiBub3QgYXMgZWFzeSBhcyBwcmV2aW91c2x5LCBidXQKPiA+IGZlYXNpYmxlCj4gPiBBcmUgdGhlcmUgdm9sdW50ZWVycyB0byBwcmVwYXJlIHJlZmVyZW5jZSB0YXJnZXQgZ2l0IHJlcG9zPwo+ID49MjAKPiA+IElmIHdlIGNhbid0IGdldCB0aGUgam9iIGRvbmUgb24gdGhlc2UsIEkgdGhpbmsgdGhhdCB0YWxraW5nIGFib3V0IHBsdWdpPQpucwo+ID4gK3NoYXJlZCthcmNoZXR5cGVzIGlzIGp1c3QgYSB3YXN0ZSBvZiB0aW1lCj4gPj0yMAo+ID4gUmVnYXJkcywKPiA+PTIwCj4gPiBIZXJ2PUU5Cj4gPj0yMAo+ID49MjAKPiA+IFsxXSBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL0dpdCtNaWdyYXRpb24KPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj0yMAo+ID4gLS0KPj0yMAo+IFNlbnQgZnJvbSBteSBwaG9uZQoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ2NDItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE5vdiAyOCAxNToyNTowMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ2NDItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNjIwNEYxNzQ0NgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDE1OjI1OjAxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjI1MDIgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggTm92IDIwMTcgMTU6MjU6MDEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIyNDMxIGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE5vdiAyMDE3IDE1OjI1OjAxIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjI0MTUgaW52b2tlZCBieSB1aWQgOTkpOyAyOCBOb3YgMjAxNyAxNToyNTowMCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMjggTm92IDIwMTcgMTU6MjU6MDAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBEMkU0RDFBMTNFRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjggTm92IDIwMTcgMTU6MjQ6NTkgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjE5OQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjE5OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIEtBTV9NWDQ9MSwgS0FNX05VTVNVQkpFQ1Q9MC41LAoJUkNWRF9JTl9ETlNXTF9NRUQ9LTIuMywgUlBfTUFUQ0hFU19SQ1ZEPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB5VlNpSEZ6X2kwZHggZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUdWUsIDI4IE5vdiAyMDE3IDE1OjI0OjU4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGxueDUwMC5ocnoudHUtZGFybXN0YWR0LmRlIChtYWlsb3V0Lmhyei50dS1kYXJtc3RhZHQuZGUgWzEzMC44My4xNTYuMjI1XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDg3QzU3NUYxNzcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDE1OjI0OjU3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIE1YMDEucmJnLmluZm9ybWF0aWsudHUtZGFybXN0YWR0LmRlIChteDAxLnJiZy5pbmZvcm1hdGlrLnR1LWRhcm1zdGFkdC5kZSBbMTMwLjgzLjE2MC40M10pCglieSBsbng1MDAuaHJ6LnR1LWRhcm1zdGFkdC5kZSAoOC4xNC40LzguMTQuNC9IUlovUE1YKSB3aXRoIEVTTVRQIGlkIHZBU0ZLTUFMMDA0OTc5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAxNjoyMDoyMiArMDEwMAoJKGVudmVsb3BlLWZyb20gc2V3ZUBzdC5pbmZvcm1hdGlrLnR1LWRhcm1zdGFkdC5kZSkKUmVjZWl2ZWQ6IGZyb20gWzE5Mi4xNjguMi4xMDFdIChwNURGMzlEODYuZGlwMC50LWlwY29ubmVjdC5kZSBbOTMuMjQzLjE1Ny4xMzRdKQoJKHVzaW5nIFRMU3YxLjIgd2l0aCBjaXBoZXIgRUNESEUtUlNBLUFFUzI1Ni1HQ00tU0hBMzg0ICgyNTYvMjU2IGJpdHMpKQoJKE5vIGNsaWVudCBjZXJ0aWZpY2F0ZSByZXF1ZXN0ZWQpCgkoQXV0aGVudGljYXRlZCBzZW5kZXI6IHNld2UpCglieSBNWDAxLnJiZy5pbmZvcm1hdGlrLnR1LWRhcm1zdGFkdC5kZSAoUG9zdGZpeCkgd2l0aCBFU01UUFNBIGlkIDk0RUVERkVFQgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjggTm92IDIwMTcgMTY6MjQ6NDkgKzAxMDAgKENFVCkKU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIE1hdmVuIEluZGV4ZXIgNi4wLjAKVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxDQVBMcFJRTDY9M3FrekFlPUZnUnJlaGVHeGZraXlkVXFCZHIteURDVm9HZVpUenJxYkFAbWFpbC5nbWFpbC5jb20+CkZyb206IEFuZHJlYXMgU2V3ZSA8c2V3ZUBzdC5pbmZvcm1hdGlrLnR1LWRhcm1zdGFkdC5kZT4KT3BlbnBncDogcHJlZmVyZW5jZT1zaWduZW5jcnlwdApPcmdhbml6YXRpb246IFNvZnR3YXJlIFRlY2hub2xvZ3kgR3JvdXAsIFRVIERhcm1zdGFkdApNZXNzYWdlLUlEOiA8NzI3ZGQ0MWQtZjkwZC0xOTM2LTRjNTQtYmQ0Mzc3NzNhYWEzQHN0LmluZm9ybWF0aWsudHUtZGFybXN0YWR0LmRlPgpEYXRlOiBUdWUsIDI4IE5vdiAyMDE3IDE2OjI0OjM3ICswMTAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwLjEwOyBydjo1OC4wKQogR2Vja28vMjAxMDAxMDEgVGh1bmRlcmJpcmQvNTguMApNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPENBUExwUlFMNj0zcWt6QWU9RmdScmVoZUd4ZmtpeWRVcUJkci15RENWb0dlWlR6cnFiQUBtYWlsLmdtYWlsLmNvbT4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvc2lnbmVkOyBtaWNhbGc9cGdwLXNoYTUxMjsKIHByb3RvY29sPSJhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlIjsKIGJvdW5kYXJ5PSJRS042TTNDTWdQYmVXYnZXa0pOcmNPY29nT0doQ1dRYXgiClgtUE1YLVRVOiBzZWVuIHYxLjIgYnkgNS42LjEuMjA2NTQzOSwgQW50aXNwYW0tRW5naW5lOiAyLjcuMi4zNzYzNzksIEFudGlzcGFtLURhdGE6IDIwMTcuMTEuMjguMTUxODE3ClgtUE1YLVJFTEFZOiBvdXRnb2luZwoKLS1RS042TTNDTWdQYmVXYnZXa0pOcmNPY29nT0doQ1dRYXgKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSJUeE42Ym5WRW9sMEkwNVE5ZWkwb1FWd1RrWDNFS3FxRDgiOwogcHJvdGVjdGVkLWhlYWRlcnM9InYxIgpGcm9tOiBBbmRyZWFzIFNld2UgPHNld2VAc3QuaW5mb3JtYXRpay50dS1kYXJtc3RhZHQuZGU+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8NzI3ZGQ0MWQtZjkwZC0xOTM2LTRjNTQtYmQ0Mzc3NzNhYWEzQHN0LmluZm9ybWF0aWsudHUtZGFybXN0YWR0LmRlPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgTWF2ZW4gSW5kZXhlciA2LjAuMApSZWZlcmVuY2VzOiA8Q0FQTHBSUUw2PTNxa3pBZT1GZ1JyZWhlR3hma2l5ZFVxQmRyLXlEQ1ZvR2VaVHpycWJBQG1haWwuZ21haWwuY29tPgpJbi1SZXBseS1UbzogPENBUExwUlFMNj0zcWt6QWU9RmdScmVoZUd4ZmtpeWRVcUJkci15RENWb0dlWlR6cnFiQUBtYWlsLmdtYWlsLmNvbT4KCi0tVHhONmJuVkVvbDBJMDVROWVpMG9RVndUa1gzRUtxcUQ4CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOApDb250ZW50LUxhbmd1YWdlOiBlbi1VUwpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpUYW09QzM9QTFzIENzZXJ2ZW49QzM9QTFrIHdyb3RlOgo+IFtWT1RFXSBSZWxlYXNlIE1hdmVuIEluZGV4ZXIgNi4wLjAKClRlc3RlZCB0aGlzIGluIHR3byBhcHBsaWNhdGlvbnM6IGEgTWF2ZW4gcGx1Z2luIGFuZCBhIFNwcmluZwphcHBsaWNhdGlvbi4gSW4gYm90aCBjYXNlcywgSSBleHBlcmllbmNlZCBubyB0cm91YmxlLgoKVGhhbmtzIGZvciBkb2luZyB0aGUgcmVsZWFzZSwgVGFtPUMzPUExcy4KCkJlc3Qgd2lzaGVzLAoKQW5kcmVhcwoKCi0tVHhONmJuVkVvbDBJMDVROWVpMG9RVndUa1gzRUtxcUQ4LS0KCi0tUUtONk0zQ01nUGJlV2J2V2tKTnJjT2NvZ09HaENXUWF4CkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vcGdwLXNpZ25hdHVyZTsgbmFtZT0ic2lnbmF0dXJlLmFzYyIKQ29udGVudC1EZXNjcmlwdGlvbjogT3BlblBHUCBkaWdpdGFsIHNpZ25hdHVyZQpDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0ic2lnbmF0dXJlLmFzYyIKCi0tLS0tQkVHSU4gUEdQIFNJR05BVFVSRS0tLS0tClZlcnNpb246IEdudVBHIHYyCgppUUljQkFFQkNnQUdCUUphSFgvQUFBb0pFQ0toZG8rbnVQeVZwcE1QL0FpSndUbDFPTUpwYTV4ZjVnclJYSnlvCmVYNmJWSElHb2VkZlI3a1UwM2J5SktCMlI3WE1tQVdPOUFNcEsxTDZab2xQVkRTckFGZVNmOGp3VUNiK090Zk4KRjJVdnlJUmhMckV2TWIyL1RNajVIaUwzbXpmNmZBbmt3RmdnTTl2aGQ1Ukh2OW4zeG1LcVFqTk9oRlU5MHpQeAo3VlJXMnVpRjc2ZTFVQXZOc2h0OXpaUHdBdFlndFQrcEJJcjNqak5LNTd4Y0tidTJJVUpaeXdqb01POFZITXpzCndkM2IwaUsralMxMnBVbjZoM1I0QWNNNFJoTlBONFFJMWJoendyRkw5QnNpdU1LUWJjeElzTmVFTUN2ZFdGNSsKWUkzcS9XR0tNb3BZWnlhUCtndHdVYU5HMHNSUDVRSmFzdUpQWXBMNTZFZmZwYncxVnhLa2FQNytUaE01SUM4RQova0MxZmxFT3JjZmlPUDJ0UUFuZ1BLS1BIRXZYRTZ5bVFxTlJBcEc0SWJXby9HelZvWFhDeHdPSkM3Z0s0UStFCmthOFVRejFVaDFiWTA3SEl1OUFxS0JkZ0Z2amp5NzNVQ1czZER1bHJKOE5hMzBBcjgwOG1UNWo1eTNreUFsNmIKVXprUzdNOFpseHFubDlHa3VSdk5EYUxyU283MXd2VzQ1YU9IZ0MxU1gvNHNEQWo3UEVTNGtLdTNXOVRvQnFaYgpzYzAxdVNhQXNmQUd2aG13OE9FWjJ3aVcvcUdFNWkraHNXZCs5dkh6ck1RTHdkaldUVzhuYVJWSnd6cW5zN0NmCndSam9RR2ROMlpzRWZsY0JZTDBlN3BDNmxSLzBaWDJ6Z241UHZQejhqcTNuTnRZR1VzL084dGl4cWhoa3lxOEYKKzZaelc5a1lpQkFFVVdNcGJKY2cKPXR0YTkKLS0tLS1FTkQgUEdQIFNJR05BVFVSRS0tLS0tCgotLVFLTjZNM0NNZ1BiZVdidldrSk5yY09jb2dPR2hDV1FheC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0ODIzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBEZWMgMjQgMDk6NDc6NTYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODIzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDlFMjlDMTc4NzAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAyNCBEZWMgMjAxNyAwOTo0Nzo1NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDUxNTc2IGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IERlYyAyMDE3IDA5OjQ3OjUxIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MTQ5MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNCBEZWMgMjAxNyAwOTo0Nzo1MSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUxNDc1IGludm9rZWQgYnkgdWlkIDk5KTsgMjQgRGVjIDIwMTcgMDk6NDc6NTEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDI0IERlYyAyMDE3IDA5OjQ3OjUxICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgOTY5M0UxODA5QUI7CglTdW4sIDI0IERlYyAyMDE3IDA5OjQ3OjUwICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTMuNTAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0zLjUwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgNGlnQW9ZOUJFTmVxOyBTdW4sIDI0IERlYyAyMDE3IDA5OjQ3OjQ3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1vdXQuZ214Lm5ldCAobW91dC5nbXgubmV0IFsyMTIuMjI3LjE3LjIwXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEI2MjdCNUYzNkY7CglTdW4sIDI0IERlYyAyMDE3IDA5OjQ3OjQ2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIEthcmwtSGVpbnpzLU1hY0Jvb2stUHJvLmxvY2FsIChbOTIuMjA0LjIwLjE1NF0pIGJ5IG1haWwuZ214LmNvbQogKG1yZ214MTAyIFsyMTIuMjI3LjE3LjE2OF0pIHdpdGggRVNNVFBTQSAoTmVtZXNpcykgaWQKIDBNU0hheC0xZVlpcXUydnlGLTAwVFg2SjsgU3VuLCAyNCBEZWMgMjAxNyAxMDo0NzozOSArMDEwMApSZXBseS1UbzogaW5mb0Bzb2ViZXMuZGUKU3ViamVjdDogUmU6IFtJTVBPUlRBTlRdIFJlOiBHaXQgbWlncmF0aW9uIG5leHQgc3RlcHMKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LAogUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8MTkwMDU1OC5HRng5UWxmYUUyQGdpZ2E+CiA8b3AuemJiOHozenprZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+IDwyNjk4NjE2Lmh4Wmtrank5ZHBAZ2lnYT4KIDwyMTQ5NTEyLlI4U003WTJVZmhAZ2lnYT4gPG9wLnpicXZ0cmZta2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgpGcm9tOiBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4KTWVzc2FnZS1JRDogPDczOGM5OWQzLTQ0NDEtNzQxZS0xNmRmLTc0N2M1ZjRmNWIxY0BnbXguZGU+CkRhdGU6IFN1biwgMjQgRGVjIDIwMTcgMTA6NDc6NDMgKzAxMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi41LjAKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDxvcC56YnF2dHJmbWtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLUdCCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6MDhjNnM0UkVkcXdCM3Jkc3F6WUs0S255Q3lSM0R5eCtsU0hmZ2Vyc2ZkZEZrVEZQa2JQCiB5a3NablpFN1hRbXdJRnNuM1VvOW1mWlFDR1hyaDRjT1doUHhLN2JhelJaRlJMTkxCVzBQcnlsc2h5UnVrdEJrOW1BNGVwdgogdnBCb0hSYmxuVGc4eVZuL1dnL2JDNFZiK04yTWVuVmQ5Q1BuYWVKSCswRm00L2hBdVJRV3VzN1kyRFNpUE5FRlRDVnJqa1MKIFVzdE1nNlg2TWI1b2pSNU1tdXFiUT09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6QnRkSFY3U0F2eE09OlBhZ3ZlRExOcDVGT20zOE04UWJlZDMKIHNCTUhObWpPQXZPQVlFL0Iwelh0cWx5Vmd2ZDFYUi9PcnBVV1VJMU9HdW1GL0wyS3NqcVc4a3NQeHQ4R3R2ZGpLWk5XcC85TE8KIENLMUVhY2FYOE1mN2c0NkNUV0ljazg3MnhVVFZHYmxEb2RuVVdweHJoZ1pBR0ppYlpLUlB3aEJDNXdqRW1pOHdOV2IyZ2ZTSzQKIEppMTZGOHplTWRFNWNJRTR3aUUyZVpXUGJvZ3J3VHB5SHRKWlVZNHZFdGVBQWRKczFlWUxQbDVKU2RyNkFCOHBtYlRZYlRPL3QKIEZsNHF1WGlWSFdtc3I2aC9wazFFRTBkdzJIWXFFWXQwMmFGd21WZXEvcVU2OTJqOUdubFZSWmx6SmxuWTVDZTZQQVl2VXUzNXgKIHlmclZtbFJEa2hKU0xZa3pUOWdFQkNzQWg1L0g0aURYYlVuNnBZY1Zzck9LNmNBMVVQWWtLN1JYa3Y4c0VkR2FkTlNKZnA3bC8KIE9GV0Jrd0R1RTBXN1BoSXYyUXgrK2lSR1lzT3JIU3NtUzR4SGZsUHB2WE54UTNoNUh4SmJ2SUxKY0NWMUI5c3dsSEkzVzA3cWMKIHM2YjR3RnAwNG5nMGNUKzNDZ2NMNGNieUVlU1FITGRFMFZSbjJPMFZLL0ZMdzAxcFdzRzB5MDBUUlZnVnBNbVFLNko4bVB1OGwKIDN3djNrUGxsT1M3aTlpZ2lsQzFJMDdGVmVXMjh3NERJY1hWY1ZYU1ViVVdoNzQ5Ukx2VS9GT1lBZk1RS01qQ2d6alE0ZXEveGQKIGhIUktlcUU4UWV6RFc3L21VaStDYnpoTEx5Z2pwQ295cDQzNDBlOGRKLzcxTjZLcVp2NWJYRWtMZHYyZXhqaW95MEMrY2hIWlUKIHF1ckhEWVArSmVJb3ZKVUZrSTI2UUo5OTNSSVI5L3VaZTExSS9jQUFRMFR1UGhySnMxaUNXMVJtUWsyRlI4M3FGQU5lYlJDbDkKIFVYa1JrZmVUUTJ4QXVFTmd6WmlQOSs2eFllN2cvUldDNXU2RGdpSWlvYzJ5ZnhoVE9QcDY1TWlBdldhbHF1c1AzUEc4WC9TS2UKIGJqUGlwRnFEYW1KRW41WEl0NmIzaW5yQ05rTjh4d09OMjZnNjdBOWg2QW1aUHRKWEtnaGRJYkliZHdiNGV5QWdXanZwckJlCgpIaSwKCk9uIDI0LzEyLzE3IDEwOjQwLCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPiBIb3cgYWJvdXQgYSBoYXJkIHJlc2V0IG9yIGRyb3BwaW5nIHRoZSByZXBvIGFuZCBkb2luZyBpdCBhbGwgb3ZlciBhZ2Fpbj8KCklmIEkgY29ycmVjdGx5IHNlZW4gdGhhdCAuLnRoZXJlIGhhZCBubyBjb21taXQgeWV0IG9uIHRoZSBuZXcgZ2l0IHJlcG9zLi4KClNvIEkgdGhpbmsgaXQgd291bGQgYmUgdGhlIGVhc2llc3Qgd2F5IHRvIGRvIGFzIFJvYmVydCBzdWdnZXN0IC4uLnRvIApyZWRvIG1pZ3JhdGlvbiBmb3IgdGhvc2UgcmVwb3MuLgoKS2luZCByZWdhcmRzCkthcmwgSGVpbnoKPiAKPiBPbiBXZWQsIDIwIERlYyAyMDE3IDEwOjQyOjM2ICswMTAwLCBIZXJ2w6kgQk9VVEVNWSAKPiA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cm90ZToKPiAKPj4gSU5GUkEtMTU2NzkgZml4ZWQgYnkgaW5mcmEgdGVhbQo+PiB0aGVuIEkgcmUtcnVuIG1pZ3JhdGUtcGx1Z2lucy5zaCBzY3JpcHQgdG8gc3BsaXQgdGhlIHN2bjJnaXQgbWlycm9yIHRvIAo+PiBwZXItCj4+IHBsdWdpbiBnaXQgcmVwbwo+PiBhbmQgSSBwdXNoZWQgIm1hc3RlcjIiIGJyYW5jaGVzIGZvciBtLWphdmFkb2MtcCwgbS1zaXRlLXAgYW5kIG0tcGRmLXAsIAo+PiB3aGljaAo+PiB3ZXJlIHRoZSAzIHBsdWdpbnMgd2hpY2ggc3VmZmVyZWQgZnJvbSBtaXNzaW5nIGNvbW1pdHMKPj4KPj4gb24gbS1zaXRlLXAgYW5kIG0tcGRmLXAsIEknbGwgY2hlcnJ5IHBpY2sgdGhlIHVuaXF1ZSBjb21taXQgdGhhdCB3YXMgCj4+IG1pc3NlZDoKPj4gbm90IGEgYmlnIGRlYWwKPj4KPj4gb24gbS1qYXZhZG9jLXAsIHRoZSBzaXR1YXRpb24gaXMgbW9yZSBjb3BsZXgsIHNpbmNlIHRoZXJlIHdhcyBhIHJlbGVhc2UKPj4KPj4gSSBhbHNvIG5vdGljZWQgdGhhdCBJIGZvcmdvdCB0byBwdXNoIHRhZ3Mgd2hlbiBpbXBvcnRpbmc6IEkgc3RhcnRlZCB0byAKPj4gZG8gImdpdAo+PiBwdXNoIC0tdGFncyIsIGJ1dCB0aGUgcmVzdWx0IGRvZXMgbm90IGxvb2sgYXMgSSBleHBlY3RlZDogaXQgY3JlYXRlcyBhIAo+PiBsb3Qgb2YKPj4gcGFyYWxsZWwgYnJhbmNoZXMKPj4KPj4gSSdsbCBuZWVkIGhlbHAgZnJvbSBnaXQgZXhwZXJ0czogd2hhdCBpcyBoYXBwZW5pbmc/Cj4+Cj4+IEkgc3RvcHBlZCB0aGUgdGFncyBwdXNoIGhhbGYgdGhlIHdheSwgd2UnbGwgbmVlZCB0byBkZWNpZGUgd2hhdCB0byBkby4uLgo+PiAoSSBrbmV3IEkgd2FzIG5vdCBhIGdpdCBleHBlcnQgYW5kIHRoZXJlIHdhcyBhIHJpc2sgZm9yIHNvbWV0aGluZyAKPj4gd2VpcmQgbGlrZQo+PiB3aGF0J3MgY3VycmVudGx5IGhhcHBlbmluZy4uLikKPj4KPj4gQW55IGhpbnQ/Cj4+Cj4+IFJlZ2FyZHMsCj4+Cj4+IEhlcnbDqQo+Pgo+PiBMZSBzYW1lZGkgMTYgZMOpY2VtYnJlIDIwMTcsIDE2OjI4OjQ4IENFVCBIZXJ2w6kgQk9VVEVNWSBhIMOpY3JpdCA6Cj4+PiBvaywgSSB3YXMgY29uZnVzZWQgYnkgdGhlIGRpZmZlcmVudCB0YWtlcyBhdCBtLWphdmFkb2MtcCAzLjAuMAo+Pj4KPj4+IHllcywgc3ZuMmdpdCBtaXJyb3IgaXMgc3R1Y2sgWzFdIGF0IHIxODE1Njc1Cj4+Pgo+Pj4gSSBqdXN0IG9wZW5lZCBhbiBJTkZSQSBKaXJhIGlzc3VlCj4+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0lORlJBLTE1Njc5Cj4+Pgo+Pj4gb25jZSB0aGUgc3ZuMmdpdCBtaXJyb3Igd2lsbCBiZSB1cGRhdGVkLCB3ZSdsbCBoYXZlIHRvIHJlLXJ1biB0aGUgc3BsaXQKPj4+IHNjcmlwdHMgYW5kIGNoZXJyeSBwaWNrIHRoZSBtaXNzaW5nIGNvbW1pdHMKPj4+Cj4+PiBSZWdhcmRzLAo+Pj4KPj4+IEhlcnbDqQo+Pj4KPj4+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvY29tbWl0cy90cnVuawo+Pj4KPj4+IExlIHNhbWVkaSAxNiBkw6ljZW1icmUgMjAxNywgMTM6MDE6MDUgQ0VUIFJvYmVydCBTY2hvbHRlIGEgw6ljcml0IDoKPj4+ID4gSSB3YXMgdHJpZ2dlcmVkIGJ5IHNvbWUgZmFpbGluZyB1bml0IHRlc3RzLCB3aGljaCBzaG91bGQgaGF2ZSBiZWVuIAo+Pj4gc29sdmVkCj4+PiA+IGluIG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wCj4+PiA+Cj4+PiA+IE15IGxhc3QgY29tbWl0IGFjY29yZGluZyB0byBHSVQgd2FzIG5vdmVtYmVyIDE4dGgKPj4+ID4gTXkgbGFzdCBjb21taXQgYWNjb3JkaW5nIHRvIFNWTiB3YXMgZGVjZW1iZXIgM3JkCj4+PiA+Cj4+PiA+IGNvbXBhcmluZyBzdm5sb2cgd2l0aCBnaXRsb2cgbW9zdCBvZiB0aGVzZSBjb21taXRzIGFyZSBsb3N0Ogo+Pj4gPgo+Pj4gPiBtb3ZlZCB0byBnaXQKPj4+ID4gLS0tLQo+Pj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgZm9yIG5leHQgZGV2ZWxvcG1lbnQgaXRlcmF0aW9uCj4+PiA+IC0tLS0KPj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIHJlbGVhc2UgbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAKPj4+ID4gLS0tLQo+Pj4gPiBbTUpBVkFET0MtNDk4XSAibW9kdWxlIG5vdCBmb3VuZCIgd2hlbiBKYXZhIDkgbW9kdWxlLWluZm8gcHJlc2VudAo+Pj4gPiBTdXBwb3J0IGFnZ3JhdGVkIGphdmFkb2MKPj4+ID4gLS0tLQo+Pj4gPiBTa2lwIHNldmVyYWwgdW5pdHRlc3RzIGZvciBKYXZhOQo+Pj4gPiAtLS0tCj4+PiA+IEpESy04MDMyMjA1IHdhcyBjbG9zZWQgYXMgbm90IGFuIGlzc3VlLCBzbyBub3Qgc29sdmVkIGluIEphdmE5Lgo+Pj4gPiBOZWVkIHRvIHJldmlldyB0aGUgY29uY2x1c2lvbgo+Pj4gPiAtLS0tCj4+PiA+IFVwZ3JhZGUgbW9ja2l0byB0byByZW1vdmUgd2FybmluZyBhYm91dCBpbGxlZ2FsIHJlZmxlY3RpdmUgYWNjZXNzCj4+PiA+IC0tLS0KPj4+ID4gSW1wcm92ZSBUZXN0SmF2YWRvY1JlcG9ydFRlc3QjdGVzdFRlc3RKYXZhZG9jCj4+PiA+IEo4IHdhcm5zIGFuZCBjb250aW51ZXMgd2l0aCBtaXNzaW5nIGRlcGVuZGVuY3ksIEo5IGZhaWxzLgo+Pj4gPiBJbiBmYWN0IHRlc3Qgd2FzIHdyb25nOiBkZXBlbmRlbmN5IHNob3VsZCBoYXZlIGJlZW4gb24gY2xhc3NwYXRoCj4+PiA+IC0tLS0KPj4+ID4gdW5pdHRlc3Qgc2hvdWxkIHByZWZlciBKQVZBX0hPTUUgd2hlbiBleGVjdXRpbmcgZnJvbSBjbWRsaW5lCj4+PiA+IFdoZW4gcnVubmluZyB3aXRoIEphdmE5KyBubyBuZWVkIHRvIHN3aXRjaCBmcm9tIGpyZSB0byBqZGsgZGlyZWN0b3J5Cj4+PiA+IChqZXAyMjApCj4+PiA+IC0tLS0KPj4+ID4gTUpBVkFET0MtNTAyIFVwZGF0ZSBERUZBVUxUX0pBVkFfQVBJX0xJTktTCj4+PiA+IC0tLS0KPj4+ID4gc2Vzc2lvbiBpcyByZXF1aXJlZCBwYXJhbWV0ZXIsIHNvIGNhbm5vdCBiZSBudWxsLiBGaXggcmVsYXRlZCAKPj4+IHVuaXR0ZXN0cwo+Pj4gPiAtLS0tCj4+PiA+IEFkZCBwcm9qZWN0L2FydGlmYWN0IGtleSB0byBzZXQgb2Ygc291cmNlUGF0aHMgdG8gcmVjb2duaXplIHJlYWN0b3IKPj4+ID4gcHJvamVjdHMgdmVyc3VzIGRlcGVuZGVuY2llcwo+Pj4gPiAtLS0tCj4+PiA+IEdyb3VwIHNldHMgb2Ygc291cmNlcGF0aHMgcGVyIHByb2plY3QsIGluIHByZXBhcmUgb2YgdXNhZ2Ugb2YKPj4+ID4gbW9kdWxlLXNvdXJjZS1wYXRoLgo+Pj4gPiAtLS0tCj4+PiA+IFN3aXRjaCBmcm9tIExpc3QgdG8gQ29sbGVjdGlvbiB0byBtYWtlIGl0IGVhc2llciB0byB1c2UgU2V0cyB3aGVuCj4+PiA+IHByZWZlcnJlZAo+Pj4gPiAtLS0tCj4+PiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSBmb3IgbmV4dCBkZXZlbG9wbWVudCBpdGVyYXRpb24KPj4+ID4gLS0tLQo+Pj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgcmVsZWFzZSBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+Pj4gPiAtLS0tCj4+PiA+Cj4+PiA+Cj4+PiA+Cj4+PiA+Cj4+PiA+IE9uIFNhdCwgMTYgRGVjIDIwMTcgMTI6NTM6MjMgKzAxMDAsIEhlcnbDqSBCT1VURU1ZIAo+Pj4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4+ID4KPj4+ID4gd3JvdGU6Cj4+PiA+ID4gbG9va2luZyBhdCBjb21taXRzQCBjb250ZW50IGh0dHBzOi8vbGlzdHMuYXBhY2hlLm9yZy9saXN0Lmh0bWw/Cj4+PiA+ID4gY29tbWl0c0BtYXZlbi5hcGFjaGUub3JnIHdpdGggc3ViamVjdCBjb250YWluaW5nIAo+Pj4gIm1hdmVuL3BsdWdpbnMvdHJ1bmsiCj4+PiA+ID4KPj4+ID4gPiBhbmQgcGx1Z2lucyBzdm4yZ2l0IG1pcnJvcgo+Pj4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9jb21taXRzLwo+Pj4gPiA+IHRydW5rCj4+PiA+ID4KPj4+ID4gPiBvbmx5IDEgY29tbWl0IGlzIG1pc3Npbmc6IG15IGxhdGVzdCBjb21taXQgb24gbWF2ZW4tc2l0ZS1wbHVnaW4KPj4+ID4gPiAodGhlIGxhc3QgY29tbWl0IGZvciBHaXQgbWlncmF0aW9uIGlzIG5vdCB1c2VmdWwpCj4+PiA+ID4KPj4+ID4gPgo+Pj4gPiA+IFNhbWUgb24gc2hhcmVkIHNob3dlZCBubyBtaXNzaW5nIGNvbW1pdC4KPj4+ID4gPgo+Pj4gPiA+Cj4+PiA+ID4gd2hhdCBsYXRlc3QgY29tbWl0IG9mIG1hdmVuLWphdmFkb2MtcGx1Z2luIGFyZSB5b3UgbG9va2luZyBmb3I/Cj4+PiA+ID4KPj4+ID4gPiBSZWdhcmRzLAo+Pj4gPiA+Cj4+PiA+ID4gSGVydsOpCj4+PiA+ID4KPj4+ID4gPiBMZSBzYW1lZGkgMTYgZMOpY2VtYnJlIDIwMTcsIDExOjU2OjMxIENFVCBSb2JlcnQgU2Nob2x0ZSBhIMOpY3JpdCA6Cj4+PiA+ID4+IEZvciBldmVyeWJvZHkganVzdCBhIHdhcm5pbmcgSSBmYWNlZCB0b2RheToKPj4+ID4gPj4gSWYgeW91IHN3aXRjaCB0byB0aGUgZ2l0IHJlcG9zLCBwbGVhc2UgbWFrZSBzdXJlIGFsbCBjb21taXRzIGFyZQo+Pj4gPiA+PiBtaWdyYXRlZC4KPj4+ID4gPj4gSSBub3RpY2VkIHRoZSBsYXRlc3QgY29tbWl0cyBvZiB0aGUgbWF2ZW4tamF2YWRvYy1wbHVnaW4gZ290IGxvc3QuCj4+PiA+ID4+Cj4+PiA+ID4+IHRoYW5rcywKPj4+ID4gPj4gUm9iZXJ0Cj4+PiA+ID4+Cj4+PiA+ID4+IE9uIFNhdCwgMDkgRGVjIDIwMTcgMTc6MDY6MDkgKzAxMDAsIFN0ZXBoZW4gQ29ubm9sbHkKPj4+ID4gPj4KPj4+ID4gPj4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Pj4gPiA+PiA+IEkgc2VlIHdlIGhhdmUgYSBsYXJnZSBudW1iZXIgb2YgcmVwb3Mgbm93IG9uIGdpdGJveCA7LSkKPj4+ID4gPj4gPgo+Pj4gPiA+PiA+IE9uIFRodSA3IERlYyAyMDE3IGF0IDA3OjAwLCBIZXJ2w6kgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+Pj4gPiA+Pgo+Pj4gPiA+PiB3cm90ZToKPj4+ID4gPj4gPj4gb2ssIEkgZGlkbid0IHVwZGF0ZSBteSByZXBvIGNsb25lOiBub3cgdGhlIHJ1bi1pdHMgcHJvZmlsZSBpcwo+Pj4gPiA+Pgo+Pj4gPiA+PiBhY3RpdmF0ZWQKPj4+ID4gPj4KPj4+ID4gPj4gPj4gdGhlbiB0aGUgcGxhbiBzaG91bGQganVzdCBjb25maXJtICJpdCB3b3JrcyEiIDopCj4+PiA+ID4+ID4+Cj4+PiA+ID4+ID4+IGFuZCBmaW5kIHdoaWNoIGpvYnMgYXJlIHNwZWNpYWwsIGxpa2UgbWF2ZW4tZGlzdC10b29sICh3aGljaCAKPj4+IGhhcyB0bwo+Pj4gPiA+Pgo+Pj4gPiA+PiBiZQo+Pj4gPiA+Pgo+Pj4gPiA+PiA+PiBzY2hlZHVsZWQgZGFpbHkgaW5zdGVhZCBvZiBjb2RlIGNoYW5nZSwgYW5kIG9uZSBwbGF0Zm9ybSBvbmx5KQo+Pj4gPiA+PiA+Pgo+Pj4gPiA+PiA+PiBSZWdhcmRzLAo+Pj4gPiA+PiA+Pgo+Pj4gPiA+PiA+PiBIZXJ2w6kKPj4+ID4gPj4gPj4KPj4+ID4gPj4gPj4gTGUgbWVyY3JlZGkgNiBkw6ljZW1icmUgMjAxNywgMjM6NTg6NDUgQ0VUIFN0ZXBoZW4gQ29ubm9sbHkgYSAKPj4+IMOpY3JpdCA6Cj4+PiA+ID4+ID4+ID4gT24gV2VkIDYgRGVjIDIwMTcgYXQgMjI6MzgsIEhlcnbDqSBCT1VURU1ZIAo+Pj4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4+ID4gPj4gPj4KPj4+ID4gPj4gPj4gd3JvdGU6Cj4+PiA+ID4+ID4+ID4gPiBOb3cgdGhhdCB3ZSBoYXZlIDIgQVNGIE9yZ2FuaXphdGlvbiBKZW5raW5zIGpvYnMgKG9uZSBmb3IgCj4+PiBnaXRib3gKPj4+ID4gPj4KPj4+ID4gPj4gWzFdCj4+PiA+ID4+Cj4+PiA+ID4+ID4+IGFuZAo+Pj4gPiA+PiA+Pgo+Pj4gPiA+PiA+PiA+ID4gb25lCj4+PiA+ID4+ID4+ID4gPiBmb3IgZ2l0LXdpcDogdGhhbmsgeW91IFN0ZXBoZW4pIGFuZCB0aGF0IGl0IGxvb2tzIHF1aXRlCj4+PiA+ID4+Cj4+PiA+ID4+IHN1Y2Nlc3NmdWwsCj4+PiA+ID4+Cj4+PiA+ID4+ID4+IGxldCdzCj4+PiA+ID4+ID4+Cj4+PiA+ID4+ID4+ID4gPiBwbGFuCj4+PiA+ID4+ID4+ID4gPiB0aGUgbmV4dCBzdGVwcy4KPj4+ID4gPj4gPj4gPiA+Cj4+PiA+ID4+ID4+ID4gPiBIZXJlIGlzIHdoYXQgSSBzZWU6Cj4+PiA+ID4+ID4+ID4gPiAxLiByZW1vdmFsIG9mIGhhbmQtZGVmaW5lZCBKZW5raW5zIGpvYnMgdGhhdCBhcmUgbm93IAo+Pj4gZHVwbGljYXRlcwo+Pj4gPiA+PiA+PiA+ID4KPj4+ID4gPj4gPj4gPiA+IDIuIHByZXBhcmF0aW9uIG9mIHRoZSA2MCBuZXcgZW1wdHkgZ2l0IHJlcG9zIGZvciBzaGFyZWQgJgo+Pj4gPiA+PiA+PiA+ID4gcGx1Z2lucwo+Pj4gPiA+PiA+PiA+ID4KPj4+ID4gPj4gPj4gPiA+IDMuIG1pZ3JhdGlvbiBvZiB0aGUgMSBzaGFyZWQgY29tcG9uZW50IGFuZCAxIHBsdWdpbiB1c2luZwo+Pj4gPiA+PiA+Pgo+Pj4gPiA+PiA+PiBtaWdyYXRlLSouc2gKPj4+ID4gPj4gPj4KPj4+ID4gPj4gPj4gPiA+IHNjcmlwdHMKPj4+ID4gPj4gPj4gPiA+IFszXSB0byB0ZXN0IGFuZCBldmVudHVhbGx5IHJld29yayB0aGUgSmVua2luc2ZpbGUgKEkgCj4+PiBzdXBwb3NlIGl0Cj4+PiA+ID4+Cj4+PiA+ID4+IHdpbGwKPj4+ID4gPj4KPj4+ID4gPj4gPj4gPiA+IHJlcXVpcmUKPj4+ID4gPj4gPj4gPiA+IHNvbWUgbGl0dGxlIGNoYW5nZSwgdG8gcnVuIGFkZCAicnVuLWl0cyIgcHJvZmlsZSkKPj4+ID4gPj4gPj4gPgo+Pj4gPiA+PiA+PiA+IEFzIGZhciBhcyBJIHJlY2FsbCwgSSBhZGRlZCAtUCtydW4taXRzIGFscmVhZHkKPj4+ID4gPj4gPj4gPgo+Pj4gPiA+PiA+PiA+IEZvciB0aGUgcGx1Z2luLCBJJ2QgbGlrZSB0byBkbyB0aGUgam9iIGZvciBtYXZlbi1zaXRlLXBsdWdpbiwKPj4+ID4gPj4KPj4+ID4gPj4gc2luY2Ugd2UKPj4+ID4gPj4KPj4+ID4gPj4gPj4gPiA+IGV4cGVjdAo+Pj4gPiA+PiA+PiA+ID4gdG8gcmVsZWFzZSBpdCBzb29uLgo+Pj4gPiA+PiA+PiA+ID4gRm9yIHRoZSBzaGFyZWQgY29tcG9uZW50LCBJIGRvbid0IGtub3cgaWYgdGhlcmUgaXMgYSBiZXN0Cj4+PiA+ID4+Cj4+PiA+ID4+IGNhbmRpZGF0ZQo+Pj4gPiA+Pgo+Pj4gPiA+PiA+PiA+ID4gNC4gb25jZSBwcmV2aW91cyBzdGVwIGlzIG9rLCBkbyB0aGUgZnVsbCBtaWdyYXRpb246IGlmIAo+Pj4gdGhlcmUgYXJlCj4+PiA+ID4+ID4+ID4gPiB2b2x1bnRlZXJzCj4+PiA+ID4+ID4+ID4gPiBmb3IgaGVscGluZywgdGhhdCB3b3VsZCBiZSBncmVhdCwgc2luY2UgcG9wdWxhdGluZyA2MCBnaXQgCj4+PiByZXBvcwo+Pj4gPiA+PiA+Pgo+Pj4gPiA+PiA+PiB3b24ndAo+Pj4gPiA+PiA+PiBiZQo+Pj4gPiA+PiA+Pgo+Pj4gPiA+PiA+PiA+ID4gcmVhbGx5IGZ1bi4uLgo+Pj4gPiA+PiA+PiA+ID4KPj4+ID4gPj4gPj4gPiA+IEFuZCBhcyBwYXJ0IG9mIDYwIGVtcHR5IGdpdCByZXBvcyBjcmVhdGlvbiwgSSBwcm9wb3NlIHRvIAo+Pj4gbWlncmF0ZQo+Pj4gPiA+Pgo+Pj4gPiA+PiB0aGUKPj4+ID4gPj4KPj4+ID4gPj4gPj4gPiA+ICJHb29nbGUKPj4+ID4gPj4gPj4gPiA+IHJlcG8gbWFuaWZlc3QiIG1hdmVuLWFnZ3JlZ2F0b3IgWzRdIHRvIEFTRjogbXkgcGVyc29uYWwgCj4+PiB1c2UgaGFzCj4+PiA+ID4+Cj4+PiA+ID4+IGJlZW4KPj4+ID4gPj4KPj4+ID4gPj4gPj4gcXVpdGUKPj4+ID4gPj4gPj4KPj4+ID4gPj4gPj4gPiA+IHN1Y2Nlc3NmdWwsIEkgaG9wZSBpdCdzIHRoZSBzYW1lIGZvciBvdGhlcnMuIFBlcmhhcHMgCj4+PiB0aGVyZSBhcmUKPj4+ID4gPj4gPj4KPj4+ID4gPj4gPj4gYmV0dGVyCj4+PiA+ID4+ID4+Cj4+PiA+ID4+ID4+ID4gPiBpZGVhcwo+Pj4gPiA+PiA+PiA+ID4gZm9yIGl0cyBuYW1lOiBtYXZlbi1hZ2dyZWdhdG9yCj4+PiA+ID4+ID4+ID4gPgo+Pj4gPiA+PiA+PiA+ID4gQW55IG90aGVyIGlkZWE/IGFueSBvYmplY3Rpb24/Cj4+PiA+ID4+ID4+ID4gPgo+Pj4gPiA+PiA+PiA+ID4gUmVnYXJkcywKPj4+ID4gPj4gPj4gPiA+Cj4+PiA+ID4+ID4+ID4gPiBIZXJ2w6kKPj4+ID4gPj4gPj4gPiA+Cj4+PiA+ID4+ID4+ID4gPiBbMV0gCj4+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC8KPj4+ID4gPj4gPj4gPiA+Cj4+PiA+ID4+ID4+ID4gPiBbMl0gCj4+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLXdpcC8KPj4+ID4gPj4gPj4gPiA+Cj4+PiA+ID4+ID4+ID4gPiBbM10KPj4+ID4gPj4KPj4+ID4gPj4gaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy92aWV3dmMvbWF2ZW4vc2FuZGJveC90cnVuay9zY3JpcHRzL2dpdC8KPj4+ID4gPj4KPj4+ID4gPj4gPj4gPiA+IFs0XSBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tYWdncmVnYXRvcgo+Pj4gPiA+PiA+Pgo+Pj4gPiA+PiA+PiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDIxMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgT2N0IDExIDA2OjMzOjAzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDIxMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAzOTE1QTEwQTZECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMTEgT2N0IDIwMTcgMDY6MzM6MDMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2MzQ3IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIE9jdCAyMDE3IDA2OjMzOjAyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MjYzIGludm9rZWQgYnkgdWlkIDUwMCk7IDExIE9jdCAyMDE3IDA2OjMzOjAyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjI1MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDExIE9jdCAyMDE3IDA2OjMzOjAyIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAxMSBPY3QgMjAxNyAwNjozMzowMiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDc1REM3RDE4MzQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDExIE9jdCAyMDE3IDA2OjMzOjAxICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMApYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCUtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44LCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHdwcHo3YW9yNVJ1ZiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgMTEgT2N0IDIwMTcgMDY6MzI6NTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDA5LnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTMxXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDU2Nzc4NUYzOTcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDExIE9jdCAyMDE3IDA2OjMyOjU5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDMyIHdpdGggTUUKCWlkIEw2WXkxdzAwZzIwVWZkeTAzNll5TGU7IFdlZCwgMTEgT2N0IDIwMTcgMDg6MzI6NTkgKzAyMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogV2VkLCAxMSBPY3QgMjAxNyAwODozMjo1OSArMDIwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEKRGF0ZTogV2VkLCAxMSBPY3QgMjAxNyAwODozMjo1OCArMDIwMApNZXNzYWdlLUlEOiA8NzM5MzIwMi42RmtSTmhWalg5QGdpZ2E+ClVzZXItQWdlbnQ6IEtNYWlsLzUuMi4zIChMaW51eC80LjEwLjAtMzctZ2VuZXJpYzsgS0RFLzUuMzEuMDsgeDg2XzY0OyA7ICkKSW4tUmVwbHktVG86IDxDQUtEVU4xc19jMnFaMlFxb0QyQ0wtWk9mTnFtcGY3S3pvdzdkdTVqeWtDdHFKZTRjNVFAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQStuUG5NeHlHMk5lUFhwVnFhd2U5alI9aXRIRVQ2VXVkbk45Q2pIaHY9b28tS0NyeHdAbWFpbC5nbWFpbC5jb20+IDwyMTI2OTQxLkJoZVpNS2ZpanBAZ2lnYT4gPENBS0RVTjFzX2MycVoyUXFvRDJDTC1aT2ZOcW1wZjdLem93N2R1NWp5a0N0cUplNGM1UUBtYWlsLmdtYWlsLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgorMQpldmVudHVhbGx5IGFkZGluZyBhIGZsYWcgb3Igc3lzdGVtIHByb3BlcnR5IHRvIGFjdGl2YXRlIHRoZSBuZXcgYmVoYXZpb3VyCgp0aGlzIHJlbWVtYmVycyBtZSBvZiB0aGUgaWRlYSByZWdhcmRpbmcgZmxhZ3MgdG8gc3VwcG9ydCBuZXcgYmV0YSBmZWF0dXJlcwoKUmVnYXJkcywKCkhlcnY9RTkKCkxlIG1lcmNyZWRpIDExIG9jdG9icmUgMjAxNywgMDg6MTM6MTMgQ0VTVCBBbmRlcnMgSGFtbWFyIGEgPUU5Y3JpdCA6Cj4gSSdtIGZlZWxpbmcgc3Ryb25nZXIgYW5kIHN0cm9uZ2VyIGFib3V0IG5vdCBoYXZpbmcgdGhpcyBjaGFuZ2UgaW4gYSBidWdmaXgKPiByZWxlYXNlLiBXaHkgbm90IGdvIGZvciB2My42LjAgaWYgd2UgZGVjaWRlIHRoYXQgdGhlIGNsYXNzIGxvYWRpbmcgY2hhbmdlCj4gaXMgdGhlIHdheSB0byBnbz8gQW5kIGtlZXAgYnVnZml4IHJlbGVhc2VzIGZvciBqdXN0IGJ1Z2ZpeGVzLgo+PTIwCj4gL0FuZGVycwo+PTIwCj4gT24gV2VkLCBPY3QgMTEsIDIwMTcgYXQgMzo0MyBBTSwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj49MjAKPiB3cm90ZToKPiA+IHBlcmhhcHMgd2Ugc2hvdWxkIGNyZWF0ZSBhIFdpa2kgcGFnZSBmb3IgamF2YS5sYW5nLkNsYXNzTm90Rm91bmRFeGNlcHRpPQpvbgo+ID4gYW5kCj4gPiBsaXN0IHRoZSBwbHVnaW5zIHdpdGgga25vd24gaXNzdWVzIGFuZCBtaW5pbXVtIGZpeGVkIHZlcnNpb24KPiA+PTIwCj4gPiB0byBiZSBhZGRlZCBpbgo+ID49MjAKPiA+ICBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL0Vycm9ycythbmQrU29sdXRpb25zCj4gPj0yMAo+ID4gUmVnYXJkcywKPiA+PTIwCj4gPiBIZXJ2PUU5Cj4gPj0yMAo+ID4gTGUgbWVyY3JlZGkgMTEgb2N0b2JyZSAyMDE3LCAwMjo1Mjo1MyBDRVNUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOgo+ID4gPiBJSVVDLCBpdCdzIE1ERVBMT1ktMjIxIGFib3V0IG5ldC5mbGV4bW9qb3Mub3NzOmZsZXhtb2pvcy1tYXZlbi1wbHVnaW4KPiA+ID49MjAKPiA+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NREVQTE9ZLTIyMQo+ID4gPj0yMAo+ID4gPiBSZWdhcmRzLAo+ID4gPj0yMAo+ID4gPiBIZXJ2PUU5Cj4gPiA+PTIwCj4gPiA+IExlIG1hcmRpIDEwIG9jdG9icmUgMjAxNywgMjA6NDg6MTMgQ0VTVCBSb2JlcnQgU2Nob2x0ZSBhID1FOWNyaXQgOgo+ID4gPiA+IEZZSSwgTURFUExPWS0xMjEgbWVudGlvbnMgYW5vdGhlciBwbHVnaW4gYmVpbmcgaGl0IGJ5IHRoZSBjbGFzc2xvYWQ9CmVyCj4gPiA+ID4gY2hhbmdlcy4KPiA+ID4gPj0yMAo+ID4gPiA+IFJvYmVydAo+ID4gPiA+PTIwCj4gPiA+ID49MjAKPiA+ID4gPiBPbiBUdWUsIDAzIE9jdCAyMDE3IDIwOjIyOjE4ICswMjAwLCBBcm5hdWQgSD1FOXJpdGllciA8Cj4gPj0yMAo+ID4gYWhlcml0aWVyQGdtYWlsLmNvbT4KPiA+PTIwCj4gPiA+ID4gd3JvdGU6Cj4gPiA+ID4gPiBUaGFua3MgU3RlcGhlbgo+ID4gPiA+ID49MjAKPiA+ID4gPiA+IE9uIFR1ZSwgT2N0IDMsIDIwMTcgYXQgODoxOCBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+ID4gPj4gSSBhbSBob3BpbmcgSSBjYW4gZmluZCBzb21lIHRpbWUgdG8gZG8gYSBmaW5hbCByb3VuZCBvZiBleHBlcmltZT0KbnRzCj4gPj0yMAo+ID4gYW5kCj4gPj0yMAo+ID4gPiA+ID4+IHRoZW4gY2xvc2UgdGhlIHZvdGUgd2l0aCBzdWNjZXNzIGFuZCBwdWJsaXNoLgo+ID4gPiA+ID4+PTIwCj4gPiA+ID4gPj4gT24gVHVlIDMgT2N0IDIwMTcgYXQgMTE6MTMsIEFybmF1ZCBIPUU5cml0aWVyIDxhaGVyaXRpZXJAZ21haWwuYz0Kb20+Cj4gPj0yMAo+ID4gd3JvdGU6Cj4gPiA+ID4gPj4gPiBAU3RlcGhlbiBXaGF0IHNob3VsZCB3ZSBkbyBub3cgPwo+ID4gPiA+ID4+ID49MjAKPiA+ID4gPiA+PiA+PTIwCj4gPiA+ID4gPj4gPiBPbiBUdWUsIFNlcCAxOSwgMjAxNyBhdCAzOjE0IEFNLCBPbGl2aWVyIExhbXkgPG9sYW15QGFwYWNoZS5vcj0KZz4KPiA+ID4gPiA+Pj0yMAo+ID4gPiA+ID4+IHdyb3RlOgo+ID4gPiA+ID4+ID4+IEhpCj4gPiA+ID4gPj4gPj4gU29ycnkgYSBiaXQgb3V0IG9mIHRpbWUgQVRNIGZvciB0ZXN0aW5nIHRoaXMuCj4gPiA+ID4gPj4gPj4gV2VsbCBJIHRydXN0IEFybmF1ZCB0ZXN0aW5nIHRoYXQgZXNwZWNpYWxseSBpZiB0aGlzIGltcHJvdmUgdD0KaGUKPiA+ID4gPiA+PiA+PiBwZXJmb3JtYW5jZQo+ID4gPiA+ID4+ID4+IG9mIHRoaXMgdmVyeSBncmVhdC9hd2Vzb21lL3VzZXJzIG9yaWVudGVkIHBsdWdpbiA6UAo+ID4gPiA+ID4+ID4+PTIwCj4gPiA+ID4gPj4gPj4gT24gMTMgU2VwdGVtYmVyIDIwMTcgYXQgMjI6MTksIEFybmF1ZCBIPUU5cml0aWVyCj4gPiA+ID4gPj4gPj4gPGFoZXJpdGllckBhcGFjaGUub3JnPgo+ID4gPiA+ID4+ID4+PTIwCj4gPiA+ID4gPj4gPj4gd3JvdGU6Cj4gPiA+ID4gPj4gPj4gPiBEYW1uZWQsIGNhbid0IHdlIGJlIGFub255bW91cyBvbiBHaXRodWIgPwo+ID4gPiA+ID4+ID4+ID4gSSBtYWludGFpbiBpdCBpcyBhIGJpZyB3b3JkLCBJJ20gdHJ5aW5nIHRvIGZpeCBtb3JlIGJ1Z3MgdGg9CmFuCj4gPiA+ID4gPj4gPj4gPiBJCj4gPiA+ID4gPj4gPj4gPiBhZGQKPiA+ID4gPiA+Pj0yMAo+ID4gPiA+ID4+IG5ldwo+ID4gPiA+ID4+PTIwCj4gPiA+ID4gPj4gPj4gPiBvbmVzCj4gPiA+ID4gPj4gPj4gPiBJIGFkZGVkIE9sZWcgaW4gdGhlIGxvb3AgYXMgaGUgY29udHJpYnV0ZWQgYSBsb3Qgb24gaXQgdG9vCj4gPiA+ID4gPj4gPj4gPiBJIGRpZCBhIHF1aWNrIHRlc3QgdG8gYnVpbGQgb24gSmVua2lucyAyLjYwLjMgb3VyIG1hdmVuIGNvcmUKPiA+PTIwCj4gPiB3aXRoCj4gPj0yMAo+ID4gPiA+ID4+IHRoZQo+ID4gPiA+ID4+PTIwCj4gPiA+ID4gPj4gPj4gRXZpbAo+ID4gPiA+ID4+ID4+PTIwCj4gPiA+ID4gPj4gPj4gPiBNYXZlbiBwbHVnaW4gMi4xNyBvbiBhIGxvY2FsIFNTSCBhZ2VudCBhbmQgaXQgaXMgb2sKPiA+ID4gPiA+PiA+PiA+IEJ1dCBpdCBpcyByZWFsbHkgYSBxdWljayB0ZXN0IC4uLgo+ID4gPiA+ID4+ID4+ID49MjAKPiA+ID4gPiA+PiA+PiA+IENoZWVycwo+ID4gPiA+ID4+ID4+ID49MjAKPiA+ID4gPiA+PiA+PiA+PTIwCj4gPiA+ID4gPj4gPj4gPj0yMAo+ID4gPiA+ID4+ID4+ID4gT24gV2VkLCBTZXAgMTMsIDIwMTcgYXQgMTA6MDcgQU0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4gPiA+ID4+ID4+ID49MjAKPiA+ID4gPiA+PiA+PiA+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiA+ID4+ID4+ID4gPiBPbiAxMyBTZXB0ZW1iZXIgMjAxNyBhdCAwMTowNSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPiA+ID4gPj4gPj4gPiA+PTIwCj4gPiA+ID4gPj4gPj4gPiA+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiA+ID4+ID4+ID4gPj4gT24gMTMgU2VwdGVtYmVyIDIwMTcgYXQgMDA6MjYsIEFuZGVycyBIYW1tYXIKPiA+ID4gPiA+PiA+PiA+ID4+IDxhbmRlcnNAaGFtbWFyLm5ldD4KPiA+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+ID4+ID4+IHdyb3RlOgo+ID4gPiA+ID4+ID4+ID4gPj4+IE9uIFR1ZSwgU2VwIDEyLCAyMDE3IGF0IDg6NTQgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4gPiA+ID4+ID4+ID4gPj4+PTIwCj4gPiA+ID4gPj4gPj4gPiA+Pj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+ID4gPj4gPj4gPiA+Pj4gPiBIYXZlIHdlIGdvdCBhbnkgZmVlZGJhY2sgZnJvbSB0aGUgZW1iZWRkZXIgaW50ZWdyYXRpbz0KbnMKPiA+PTIwCj4gPiB5ZXQ/Cj4gPj0yMAo+ID4gPiA+ID4+ID4+ID4gPj4+IEkgaGF2ZW4ndCBoZWFyZCBhbnl0aGluZyBmcm9tIHRoZSBtMmUgcGVvcGxlLiBNYXliZSB3ZQo+ID49MjAKPiA+IG5lZWQgdG8KPiA+PTIwCj4gPiA+ID4gPj4gcGluZwo+ID4gPiA+ID4+PTIwCj4gPiA+ID4gPj4gPj4gPiB0aGVtCj4gPiA+ID4gPj4gPj4gPj0yMAo+ID4gPiA+ID4+ID4+ID4gPj4+IGRpcmVjdGx5LiBJIGNhbiBjb250YWN0IEZyZWQgQnJpY29uLgo+ID4gPiA+ID4+ID4+ID4gPj4+PTIwCj4gPiA+ID4gPj4gPj4gPiA+Pj4gL0FuZGVycwo+ID4gPiA+ID4+ID4+ID4gPj49MjAKPiA+ID4gPiA+PiA+PiA+ID4+IFBsZWFzZSBkbywgYWxzbyBpZiBhbnlvbmUgaGFzIGEgY29udGFjdCBpbiBuZXRiZWFucyBvcgo+ID49MjAKPiA+IGludGVsbGlqCj4gPj0yMAo+ID4gPiA+ID4+IGFuZAo+ID4gPiA+ID4+PTIwCj4gPiA+ID4gPj4gPj4gPiBjb3VsZAo+ID4gPiA+ID4+ID4+ID49MjAKPiA+ID4gPiA+PiA+PiA+ID4+IGxldCB0aGVtIGtub3cgd2UnZCBsaWtlIGVpdGhlciBmZWVkYmFjayBvciAid2UncmUgb2sgaWYKPiA+ID4gPiA+PiA+PiA+ID4+IE1ORy02Mjc1Cj4gPiA+ID4gPj4gPj49MjAKPiA+ID4gPiA+PiA+PiBtYWtlcwo+ID4gPiA+ID4+ID4+PTIwCj4gPiA+ID4gPj4gPj4gPiA+PiB0cm91YmxlIGZvciB1cywgZ28gYWhlYWQgYW5kIHJlbGVhc2UiLiBJJ2QgbGlrZSB0byBjbG9zZQo+ID4gPiA+ID4+ID4+ID4gPj4gdGhlCj4gPiA+ID4gPj49MjAKPiA+ID4gPiA+PiB2b3RlCj4gPiA+ID4gPj4gb24KPiA+ID4gPiA+Pj0yMAo+ID4gPiA+ID4+ID4+ID4gRnJpZGF5Cj4gPiA+ID4gPj4gPj4gPj0yMAo+ID4gPiA+ID4+ID4+ID4gPj4gMTM6MDAgVVRDLgo+ID4gPiA+ID4+ID4+ID4gPj0yMAo+ID4gPiA+ID4+ID4+ID4gPiBPbGl2aWVyIC8gQXJuYXVkLCBoYXZlIGVpdGhlciBvZiB5b3UgaGFkIGEgY2hhbmNlIHRvIHRlc3QKPiA+PTIwCj4gPiB0aGlzCj4gPj0yMAo+ID4gPiA+ID4+IHdpdGgKPiA+ID4gPiA+Pj0yMAo+ID4gPiA+ID4+ID4+IHRoZQo+ID4gPiA+ID4+ID4+PTIwCj4gPiA+ID4gPj4gPj4gPiA+IGV2aWwgcHJvamVjdCB0eXBlWzFdIGFzIHlvdSB0d28gc2VlbSB0byBiZSB0aGUgYWN0aXZlCj4gPiA+ID4gPj49MjAKPiA+ID4gPiA+PiBtYWludGFpbmVyc1syXQo+ID4gPiA+ID4+PTIwCj4gPiA+ID4gPj4gPj4gPiA+IFsxXTogaHR0cHM6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90LmllLzIwMTMvMTEvamVua2lucy0+ID0KPj4KPiA+ID4gPiA+PiA+PiA+ID49MjAKPiA+ID4gPiA+PiA+PiA+ID4gPiBtYXZlbi1qb2ItdHlwZS1jb25zaWRlcmVkLWV2aWwuaHRtbCBbMl06Cj4gPiA+ID4gPj4gPj4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9qZW5raW5zY2kvbWF2ZW4tcGx1Z2luL2NvbW1pdHMvbWFzdGVyCj4gPiA+ID4gPj4gPj4gPj0yMAo+ID4gPiA+ID4+ID4+ID4gLS0KPiA+ID4gPiA+PiA+PiA+PTIwCj4gPiA+ID4gPj4gPj4gPiBBcm5hdWQKPiA+ID4gPiA+PiA+Pj0yMAo+ID4gPiA+ID4+ID4+IC0tCj4gPiA+ID4gPj4gPj4gT2xpdmllciBMYW15Cj4gPiA+ID4gPj4gPj4gaHR0cDovL3R3aXR0ZXIuY29tL29sYW15IHwgaHR0cDovL2xpbmtlZGluLmNvbS9pbi9vbGFteQo+ID4gPiA+ID4+ID49MjAKPiA+ID4gPiA+PiA+IC0tCj4gPiA+ID4gPj4gPiAtLS0tLQo+ID4gPiA+ID4+ID4gQXJuYXVkIEg9RTlyaXRpZXIKPiA+ID4gPiA+PiA+IGh0dHA6Ly9haGVyaXRpZXIubmV0Cj4gPiA+ID4gPj4gPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+ID4gPiA+ID4+ID4gVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcgo+ID4gPiA+ID4+PTIwCj4gPiA+ID4gPj4gLS0KPiA+ID4gPiA+PiBTZW50IGZyb20gbXkgcGhvbmUKPiA+ID4gPj0yMAo+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj0yRC0KPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID49MjAKPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDE0Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgT2N0ICAzIDIzOjAyOjUxIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDE0Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAzRTlFNDEwMjM1Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgIDMgT2N0IDIwMTcgMjM6MDI6NTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1NDQ0MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAzIE9jdCAyMDE3IDIzOjAyOjUwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NDM1MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAzIE9jdCAyMDE3IDIzOjAyOjUwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTQzMzggaW52b2tlZCBieSB1aWQgOTkpOyAzIE9jdCAyMDE3IDIzOjAyOjUwIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAwMyBPY3QgMjAxNyAyMzowMjo1MCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIERFOUY0MUEzQUI0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAgMyBPY3QgMjAxNyAyMzowMjo0OSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjgKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuOCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBJMldqMHRoQXFqNnggZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUdWUsICAzIE9jdCAyMDE3IDIzOjAyOjQ4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAxMy5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEzNV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBERTU0MzVGMjlBCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAgMyBPY3QgMjAxNyAyMzowMjo0NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ3MSB3aXRoIE1FCglpZCBIQjJoMXcwMDUyMFVmZHkwM0IyaEJXOyBXZWQsIDA0IE9jdCAyMDE3IDAxOjAyOjQxICswMjAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFdlZCwgMDQgT2N0IDIwMTcgMDE6MDI6NDEgKzAyMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIFdBUiBQbHVnaW4gdmVyc2lvbiAzLjIuMApEYXRlOiBXZWQsIDA0IE9jdCAyMDE3IDAxOjAyOjQxICswMjAwCk1lc3NhZ2UtSUQ6IDw3NDI4MzI5LjVHeVZmUFpQY01AZ2lnYT4KVXNlci1BZ2VudDogS01haWwvNS4yLjMgKExpbnV4LzQuMTAuMC0zNS1nZW5lcmljOyBLREUvNS4zMS4wOyB4ODZfNjQ7IDsgKQpJbi1SZXBseS1UbzogPGQzMGVhNDc2LTA3OTQtZjA5Ni1jZTYxLTVmYjQxYjAzYjk2YUBnbXguZGU+ClJlZmVyZW5jZXM6IDxkMzBlYTQ3Ni0wNzk0LWYwOTYtY2U2MS01ZmI0MWIwM2I5NmFAZ214LmRlPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKCisxCgpSZWdhcmRzLAoKSGVydj1FOQoKTGUgc2FtZWRpIDMwIHNlcHRlbWJyZSAyMDE3LCAxNzo1NTowMCBDRVNUIEthcmwgSGVpbnogTWFyYmFpc2UgYSA9RTljcml0IDoKPiBIaSwKPj0yMAo+IFdlIHNvbHZlZCAzIGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamVjdElkPTNEMTIzMTgxPQoyMSZ2ZQo+IHJzaW9uPTNEMTIzNDEzNzIKPj0yMAo+IFRoZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlM0QlMjBNV0FSJTIwQU5EJTI9CjByZXNvCj4gbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJT0KMkMlCj4gMjB1cGRhdGVkJTIwREVTQwo+PTIwCj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzEKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzcxL29yZy9hcGFjaGUvPQptYXYKPiBlbi9wbHVnaW5zL21hdmVuLXdhci1wbHVnaW4vMy4yLjAvbWF2ZW4td2FyLXBsdWdpbi0zLjIuMC1zb3VyY2UtcmVsZWFzZS56PQppcAo+PTIwCj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gbWF2ZW4td2FyLXBsdWdpbi0zLjIuMC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMToKPiA1YzY2MWY0NTU0NjE2MTQ3NDkxMDM2ZGZhYzY4OWJhOWRiOTBjZWMyCj49MjAKPj0yMAo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi13YXItcGx1Z2luLUxBVEVTVC8KPj0yMAo+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCj49MjAKPiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+PTIwCj4gWyBdICsxCj4gWyBdICswCj4gWyBdIC0xCj49MjAKPj0yMAo+IEtpbmQgcmVnYXJkcwo+IEthcmwgSGVpbnogTWFyYmFpc2UKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQwMTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIFNlcCAxMyAyMjoyNjo1MSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwMTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNEIxMzYxOTA3NQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3IDIyOjI2OjUxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDkyMzcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTMgU2VwIDIwMTcgMjI6MjY6NDYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ5MTU4IGludm9rZWQgYnkgdWlkIDUwMCk7IDEzIFNlcCAyMDE3IDIyOjI2OjQ1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDkxNDYgaW52b2tlZCBieSB1aWQgOTkpOyAxMyBTZXAgMjAxNyAyMjoyNjo0NSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMTMgU2VwIDIwMTcgMjI6MjY6NDUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBDNUY0MDE4Q0FEMgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTMgU2VwIDIwMTcgMjI6MjY6NDQgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4wNDkKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMDQ5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgSFRNTF9NRVNTQUdFPTIsCglLQU1fTE9UU09GSEFTSD0wLjI1LCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgVVJJQkxfQkxPQ0tFRD0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD10YWxpb3MtY29tLjIwMTUwNjIzLmdhcHBzc210cC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBLamRoMmkwNUtoT3ogZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsIDEzIFNlcCAyMDE3IDIyOjI2OjQzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtcGYwLWYxNzYuZ29vZ2xlLmNvbSAobWFpbC1wZjAtZjE3Ni5nb29nbGUuY29tIFsyMDkuODUuMTkyLjE3Nl0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBENzFGQjVGMjlBCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMyBTZXAgMjAxNyAyMjoyNjo0MiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1wZjAtZjE3Ni5nb29nbGUuY29tIHdpdGggU01UUCBpZCB5MjlzbzIzMDYxMTJwZmYuMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3IDE1OjI2OjQyIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD10YWxpb3MtY29tLjIwMTUwNjIzLmdhcHBzc210cC5jb207IHM9MjAxNTA2MjM7CiAgICAgICAgaD1mcm9tOnRvOnN1YmplY3Q6ZGF0ZTptZXNzYWdlLWlkOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6bWltZS12ZXJzaW9uOwogICAgICAgIGJoPVFORTJHOFRHZmlNZFN3MVg0RWZHTzRWV1hZYUd4VEVIanhEMDYwdmUvRUk9OwogICAgICAgIGI9d0EzQVFsTDFpMEtKVk85emRKaXJyYnIrSWFsYzZFMW1ZcEZaWEFnTGlEcFRxV2dQamJ1eGxzWGlUS1c3RlQwVk1rCiAgICAgICAgIDdVbHJyN0pvTVJuTGlaQytjTjI4bnFWN0I1dE1kV1dRT3JkRFBINHBsS0s2dU5vemxOa245aXNWYzNzaDZTNUNDMnhKCiAgICAgICAgIGMrek1KUnVJQVNHbnY3MElJMFkrNDZybnZuQ2JPRkxXdlNoK0VIWGZLekZ6US9SRStPVEhYOFNHc0V4djFsa0ZmUVNBCiAgICAgICAgIFhqUlVHSGkwZU05dVVQQVhmOXhLUUpKRE1qelVNeEJOT0RRM1pOaDFHbHVqN2E4b1hMV2Zsa01OYWRkRExHRmVpdFVZCiAgICAgICAgIDJTR2VRWm5KYmx6clVoMk53K0F1VUl3aEppMDQxUUZKOWVYMEY2MXRMSFZEcExubnU0cGJ3bzRZTmcraUt1L0tPL0dMCiAgICAgICAgIGRPbGc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOmZyb206dG86c3ViamVjdDpkYXRlOm1lc3NhZ2UtaWQ6aW4tcmVwbHktdG8KICAgICAgICAgOnJlZmVyZW5jZXM6bWltZS12ZXJzaW9uOwogICAgICAgIGJoPVFORTJHOFRHZmlNZFN3MVg0RWZHTzRWV1hZYUd4VEVIanhEMDYwdmUvRUk9OwogICAgICAgIGI9RzF5b2xJdzFrSFkzbWt6V3ZWc3BFM1FpTmx5bEFCdEJmcVkzK3d0Z2RZY3BCT3FEbkRTQmd5YjJIUFhJSlR4WTdqCiAgICAgICAgIFlYcVNIS0c3SlNScnAyTzIwL3hsYThoWVFpQmlZUk9Gd29MMDNCWFZmSVlWREhhOHkyaTQ4Tk1qT0VZU25sTjR6UnA4CiAgICAgICAgIGsycllrVDM0N3FJUXROOGpVNDhwV3NaeExUU09UOGRsK0NqcWlZZ3ltZEdTdEM3N0E3eExtM0xLNVJGeEI2WGFYZU9xCiAgICAgICAgIFgvcUFVcGQ5cUZVc2p5TDVXVTlrSTgwQ3N4ZGd5eWNWbG5Qb2p2UXdGbEQ5eXk4ZVVWOXpvTEg1c2UrTjV1SHVxazhQCiAgICAgICAgIDlKSDJnTTFma3BuNE1yK3orU21HS2gyaGk2QmVNSlNibWtId0NScDBmSEYzamFHR1Q5SWh1MUQ4SC83RjlEckMrRXNSCiAgICAgICAgIGFTT2c9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWpWZmJUTUpjekt4bDVERlNObXZMb0VaVmtJSmErSFd5MnJZMmxIWWZqaFdJLy8yb3pyCglYZlJ0NVBLOWFCWGx0bFd3b2RVNlBRPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFES0NOYjU1VFhwS1VNV1FjeU9oZTVhbG5wYW4rYVpBbHZoVUlMYXpTZkNlR1k0ZlZIb0NjdGxLczR1NElEVXhSTEJ0UkZ1WjhPd1I1dz09ClgtUmVjZWl2ZWQ6IGJ5IDEwLjk4LjE1Mi4xOTkgd2l0aCBTTVRQIGlkIGQ2OG1yMTkzMzMxMjRwZmsuMjUwLjE1MDUzNDE1OTYxNjE7CiAgICAgICAgV2VkLCAxMyBTZXAgMjAxNyAxNToyNjozNiAtMDcwMCAoUERUKQpSZWNlaXZlZDogZnJvbSBbMTAuMC4wLjEzMV0gKGFrbC5zbXguY28ubnouIFsyMDMuODQuMTM1LjEyMF0pCiAgICAgICAgYnkgc210cC5nbWFpbC5jb20gd2l0aCBFU01UUFNBIGlkIDY0c20yODQwMjA2OXBnZS40NC4yMDE3LjA5LjEzLjE1LjI2LjMzCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KICAgICAgICAodmVyc2lvbj1UTFMxXzIgY2lwaGVyPUVDREhFLVJTQS1BRVMxMjgtR0NNLVNIQTI1NiBiaXRzPTEyOC8xMjgpOwogICAgICAgIFdlZCwgMTMgU2VwIDIwMTcgMTU6MjY6MzQgLTA3MDAgKFBEVCkKRnJvbTogIk1hcmsgRGVycmljdXR0IiA8bWFya0B0YWxpb3MuY29tPgpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xCkRhdGU6IFRodSwgMTQgU2VwIDIwMTcgMTA6MjY6MTggKzEyMDAKTWVzc2FnZS1JRDogPDc0QzEyN0IwLUY3MDctNEJCQS1BMkMxLUQ1N0U2MEM5QzBGQ0B0YWxpb3MuY29tPgpJbi1SZXBseS1UbzogPEIxNDhDOTY3LTE2OTUtNDVDMi1BMTVGLTFGRkY5MDNCQ0I1MEB0YWxpb3MuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgogPENBRk5DVS0tMnZyZDVCZVR2a3hLQ3lYMlpRZVBxaXg3WD13bVZzV2RNNWQ0OVhlTmdPd0BtYWlsLmdtYWlsLmNvbT4KIDxGNzA1N0UxQi00MzEzLTREN0ItOEVGMS05OTM0MUREMUUxRDBAdGFsaW9zLmNvbT4KIDxDQStuUG5Nd1VxbUJ1cmF0RDFDcGs9TDl0QUN3Xytxb3Ryc1VwQ3FkcVJaWG1XWGdpVEFAbWFpbC5nbWFpbC5jb20+CiA8QjE0OEM5NjctMTY5NS00NUMyLUExNUYtMUZGRjkwM0JDQjUwQHRhbGlvcy5jb20+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L3NpZ25lZDsKIGJvdW5kYXJ5PSI9X01haWxNYXRlX0EzNThEMDQ2LTlFRkQtNDVCNC05OTJGLTYzQUMyMTM2Q0YxRF89IjsKIG1pY2FsZz1wZ3Atc2hhMTsgcHJvdG9jb2w9ImFwcGxpY2F0aW9uL3BncC1zaWduYXR1cmUiClgtTWFpbGVyOiBNYWlsTWF0ZSAoMi4wQkVUQXI2MDkwKQoKLS09X01haWxNYXRlX0EzNThEMDQ2LTlFRkQtNDVCNC05OTJGLTYzQUMyMTM2Q0YxRF89CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOwogYm91bmRhcnk9Ij1fTWFpbE1hdGVfNEQ1QkY5MkYtRUJEMC00ODQ1LTkzMDAtNDU0QjdDRDBDRUUxXz0iCgoKLS09X01haWxNYXRlXzRENUJGOTJGLUVCRDAtNDg0NS05MzAwLTQ1NEI3Q0QwQ0VFMV89CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgbWFya3VwPW1hcmtkb3duCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkNhbGxpbmcgLTIgZm9yIHZvdGUgaWYgbm90IHRvbyBsYXRlLgoKSGF2ZSBnaXQgYmlzZWN0ZWQgZnJvbSAzLjUuMCB0byBIRUFEIGFuZCBmb3VuZCB0aGUgY29tbWl0IHRoYXQgaW50cm9kdWNlZD0KIHRoZSBiZWhhdmlvdXI6CgplYzYyOWY3ZDUxMWViOTEwYjRlODAxMTJhOWZiZTg1ZWQ4Nzg2ZjEwIGlzIHRoZSBmaXJzdCBiYWQgY29tbWl0CmNvbW1pdCBlYzYyOWY3ZDUxMWViOTEwYjRlODAxMTJhOWZiZTg1ZWQ4Nzg2ZjEwCkF1dGhvcjogSWdvciBGZWRvcmVua28gPGlmZWRvcmVua29AYXBhY2hlLm9yZz4KRGF0ZTogICBUdWUgQXByIDExIDA3OjU5OjM0IDIwMTcgLTA3MDAKCiAgICBNTkctNjIwOSBiZXR0ZXIgZXhlY3V0ZU1vam8gdGhyZWFkIGNvbnRleHQgY2xhc3Nsb2FkZXIKCiAgICBTaWduZWQtb2ZmLWJ5OiBJZ29yIEZlZG9yZW5rbyA8aWZlZG9yZW5rb0BhcGFjaGUub3JnPgoKOjA0MDAwMCAwNDAwMDAgNTcwZmE5MzA4MzY1YjBlZTk4ZDU3YWMzZjgwMDY2OTFiZDlhZGU0ZCAzYzY3OTE2NjVjOWQ0MWYwZT0KNGEzODkzZWE5OTYyMWNjNTBlOGI5MWIgTQltYXZlbi1jb3JlCgoKTm90IGV4YWN0bHkgc3VyZSB3aGF0L3doeS9ob3cgdGhpcyBwcm9ibGVtIG1hbmlmZXN0cyBpbiBhIHRlc3RhYmxlIG1hbm5lcj0KIHlldCBob3dldmVyLgoKTWFyawoKCgoKT24gMTEgU2VwIDIwMTcsIGF0IDIzOjE5LCBNYXJrIERlcnJpY3V0dCB3cm90ZToKCj4gT24gMTEgU2VwIDIwMTcsIGF0IDE4OjEwLCBTdGVwaGVuIENvbm5vbGx5IHdyb3RlOgo+Cj4+IEkgd29uZGVyIGlmIG1uZy02Mjc1IGlzIGFmZmVjdGluZyB0aGF0IHBsdWdpbgo+Cj4gRGlkbid0IG1hbmFnZSB0byBnZXQgYSBjaGFuY2UgdG8gbG9vayBpbnRvIHRoaXMgdG9uaWdodCA6KCBUaG8gdGhhdCB0aWM9CmtldCBtZW50aW9ucyBuYXNob3JuLCBwaGFudG9uanMgaXMgYSBDL25hdGl2ZSBoZWFkbGVzcyBicm93c2VyIGxpYnJhcnksIHM9Cm8gaXQgZG9lc24ndCBmZWVsIGxpa2UgaXQgY291bGQgYmUgcmVsYXRlZC4KPgo+IElmIHRoZXJlJ3MgYSBidWlsZCBhdmFpbGFibGUgd2l0aCBhIGZpeCBmb3IgdGhhdCwgd2VsY29tZSB0byBnaXZlIGl0IGEgPQpiYXNoLgo+Cj4gSSdsbCB0cnkgY2FydmUgb3V0IHNvbWUgdGltZSBpbiB0aGUgbW9ybmluZyB0byBzZWUgaWYgSSBjYW4gbWFrZSBhIHNpbXA9CmxlIHN0YW5kYWxvbmUgcHJvamVjdC4uLgo+Cj4gLS0tCj4gIlRoZSBlYXNlIHdpdGggd2hpY2ggYSBjaGFuZ2UgY2FuIGJlIGltcGxlbWVudGVkIGhhcyBubyByZWxldmFuY2UgYXQgYWw9CmwgdG8gd2hldGhlciBpdCBpcyB0aGUgcmlnaHQgY2hhbmdlIGZvciB0aGUgKEphdmEpIFBsYXRmb3JtIGZvciBhbGwgdGltZS49CiIgJm1kYXNoOyBNYXJrIFJlaW5ob2xkLgo+Cj4gTWFyayBEZXJyaWN1dHQKPiBodHRwOi8vd3d3LnRoZW9yeWlucHJhY3RpY2UubmV0Cj4gaHR0cDovL3d3dy5jaGFsaWNlb2ZibG9vZC5uZXQKPiBodHRwOi8vcGx1cy5nb29nbGUuY29tLytNYXJrRGVycmljdXR0Cj4gaHR0cDovL3R3aXR0ZXIuY29tL3RhbGlvcwo+IGh0dHA6Ly9mYWNlYm9vay5jb20vbWRlcnJpY3V0dAoKCi0tLQoiVGhlIGVhc2Ugd2l0aCB3aGljaCBhIGNoYW5nZSBjYW4gYmUgaW1wbGVtZW50ZWQgaGFzIG5vIHJlbGV2YW5jZSBhdCBhbGwgPQp0byB3aGV0aGVyIGl0IGlzIHRoZSByaWdodCBjaGFuZ2UgZm9yIHRoZSAoSmF2YSkgUGxhdGZvcm0gZm9yIGFsbCB0aW1lLiIgPQombWRhc2g7IE1hcmsgUmVpbmhvbGQuCgpNYXJrIERlcnJpY3V0dApodHRwOi8vd3d3LnRoZW9yeWlucHJhY3RpY2UubmV0Cmh0dHA6Ly93d3cuY2hhbGljZW9mYmxvb2QubmV0Cmh0dHA6Ly9wbHVzLmdvb2dsZS5jb20vK01hcmtEZXJyaWN1dHQKaHR0cDovL3R3aXR0ZXIuY29tL3RhbGlvcwpodHRwOi8vZmFjZWJvb2suY29tL21kZXJyaWN1dHQKCi0tPV9NYWlsTWF0ZV80RDVCRjkyRi1FQkQwLTQ4NDUtOTMwMC00NTRCN0NEMENFRTFfPQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD11dGYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgo8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIj4KPGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PTNEIkNvbnRlbnQtVHlwZSIgY29udGVudD0zRCJ0ZXh0L3hodG1sOyBjaGFyc2V0PTNEdXRmLTgiPQo+CjwvaGVhZD4KPGJvZHk+CjxkaXYgc3R5bGU9M0QiZm9udC1mYW1pbHk6c2Fucy1zZXJpZiI+PGRpdiBzdHlsZT0zRCJ3aGl0ZS1zcGFjZTpub3JtYWwiPgo8cCBkaXI9M0QiYXV0byI+Q2FsbGluZyAtMiBmb3Igdm90ZSBpZiBub3QgdG9vIGxhdGUuPC9wPgoKPHAgZGlyPTNEImF1dG8iPkhhdmUgZ2l0IGJpc2VjdGVkIGZyb20gMy41LjAgdG8gSEVBRCBhbmQgZm91bmQgdGhlIGNvbW1pdD0KIHRoYXQgaW50cm9kdWNlZCB0aGUgYmVoYXZpb3VyOjwvcD4KCjxwIGRpcj0zRCJhdXRvIj5lYzYyOWY3ZDUxMWViOTEwYjRlODAxMTJhOWZiZTg1ZWQ4Nzg2ZjEwIGlzIHRoZSBmaXJzdCBiYWQ9CiBjb21taXQ8YnI+CmNvbW1pdCBlYzYyOWY3ZDUxMWViOTEwYjRlODAxMTJhOWZiZTg1ZWQ4Nzg2ZjEwPGJyPgpBdXRob3I6IElnb3IgRmVkb3JlbmtvIDxhIGhyZWY9M0QibWFpbHRvOmlmZWRvcmVua29AYXBhY2hlLm9yZyI+aWZlZG9yZW5rPQpvQGFwYWNoZS5vcmc8L2E+PGJyPgpEYXRlOiAgIFR1ZSBBcHIgMTEgMDc6NTk6MzQgMjAxNyAtMDcwMDwvcD4KCjxwcmUgc3R5bGU9M0QiYm9yZGVyOnRoaW4gc29saWQgZ3JheTsgbWFyZ2luLWxlZnQ6MTVweDsgbWFyZ2luLXJpZ2h0OjE1cHg9CjsgbWF4LXdpZHRoOjkwdnc7IG92ZXJmbG93LXg6YXV0bzsgcGFkZGluZzo1cHgiPjxjb2RlPk1ORy02MjA5IGJldHRlciBleGU9CmN1dGVNb2pvIHRocmVhZCBjb250ZXh0IGNsYXNzbG9hZGVyCgpTaWduZWQtb2ZmLWJ5OiBJZ29yIEZlZG9yZW5rbyAmbHQ7aWZlZG9yZW5rb0BhcGFjaGUub3JnJmd0Owo8L2NvZGU+PC9wcmU+Cgo8cCBkaXI9M0QiYXV0byI+OjA0MDAwMCAwNDAwMDAgNTcwZmE5MzA4MzY1YjBlZTk4ZDU3YWMzZjgwMDY2OTFiZDlhZGU0ZCAzPQpjNjc5MTY2NWM5ZDQxZjBlNGEzODkzZWE5OTYyMWNjNTBlOGI5MWIgTSAgICBtYXZlbi1jb3JlPC9wPgoKPHAgZGlyPTNEImF1dG8iPk5vdCBleGFjdGx5IHN1cmUgd2hhdC93aHkvaG93IHRoaXMgcHJvYmxlbSBtYW5pZmVzdHMgaW4gYT0KIHRlc3RhYmxlIG1hbm5lciB5ZXQgaG93ZXZlci48L3A+Cgo8cCBkaXI9M0QiYXV0byI+TWFyazwvcD4KCjxwIGRpcj0zRCJhdXRvIj5PbiAxMSBTZXAgMjAxNywgYXQgMjM6MTksIE1hcmsgRGVycmljdXR0IHdyb3RlOjwvcD4KCjxibG9ja3F1b3RlIHN0eWxlPTNEImJvcmRlci1sZWZ0OjJweCBzb2xpZCAjNTg1NUQ1OyBjb2xvcjojNTg1NUQ1OyBtYXJnaW49CjowIDAgNXB4OyBwYWRkaW5nLWxlZnQ6NXB4Ij4KPHAgZGlyPTNEImF1dG8iPk9uIDExIFNlcCAyMDE3LCBhdCAxODoxMCwgU3RlcGhlbiBDb25ub2xseSB3cm90ZTo8L3A+Cgo8YmxvY2txdW90ZSBzdHlsZT0zRCJib3JkZXItbGVmdDoycHggc29saWQgIzU4NTVENTsgY29sb3I6IzAwQUZDQzsgbWFyZ2luPQo6MCAwIDVweDsgcGFkZGluZy1sZWZ0OjVweDsgYm9yZGVyLWxlZnQtY29sb3I6IzAwQUZDQyI+CjxwIGRpcj0zRCJhdXRvIj5JIHdvbmRlciBpZiBtbmctNjI3NSBpcyBhZmZlY3RpbmcgdGhhdCBwbHVnaW48L3A+CjwvYmxvY2txdW90ZT4KCjxwIGRpcj0zRCJhdXRvIj5EaWRuJ3QgbWFuYWdlIHRvIGdldCBhIGNoYW5jZSB0byBsb29rIGludG8gdGhpcyB0b25pZ2h0IDo9CiggVGhvIHRoYXQgdGlja2V0IG1lbnRpb25zIG5hc2hvcm4sIHBoYW50b25qcyBpcyBhIEMvbmF0aXZlIGhlYWRsZXNzIGJyb3c9CnNlciBsaWJyYXJ5LCBzbyBpdCBkb2Vzbid0IGZlZWwgbGlrZSBpdCBjb3VsZCBiZSByZWxhdGVkLjwvcD4KCjxwIGRpcj0zRCJhdXRvIj5JZiB0aGVyZSdzIGEgYnVpbGQgYXZhaWxhYmxlIHdpdGggYSBmaXggZm9yIHRoYXQsIHdlbGNvbWU9CiB0byBnaXZlIGl0IGEgYmFzaC48L3A+Cgo8cCBkaXI9M0QiYXV0byI+SSdsbCB0cnkgY2FydmUgb3V0IHNvbWUgdGltZSBpbiB0aGUgbW9ybmluZyB0byBzZWUgaWYgSSBjPQphbiBtYWtlIGEgc2ltcGxlIHN0YW5kYWxvbmUgcHJvamVjdC4uLjwvcD4KCjxocj4KCjxwIGRpcj0zRCJhdXRvIj4iVGhlIGVhc2Ugd2l0aCB3aGljaCBhIGNoYW5nZSBjYW4gYmUgaW1wbGVtZW50ZWQgaGFzIG5vIHI9CmVsZXZhbmNlIGF0IGFsbCB0byB3aGV0aGVyIGl0IGlzIHRoZSByaWdodCBjaGFuZ2UgZm9yIHRoZSAoSmF2YSkgUGxhdGZvcm09CiBmb3IgYWxsIHRpbWUuIiA9RTI9ODA9OTQgTWFyayBSZWluaG9sZC48L3A+Cgo8cCBkaXI9M0QiYXV0byI+TWFyayBEZXJyaWN1dHQ8YnI+CjxhIGhyZWY9M0QiaHR0cDovL3d3dy50aGVvcnlpbnByYWN0aWNlLm5ldCI+aHR0cDovL3d3dy50aGVvcnlpbnByYWN0aWNlLm49CmV0PC9hPjxicj4KPGEgaHJlZj0zRCJodHRwOi8vd3d3LmNoYWxpY2VvZmJsb29kLm5ldCI+aHR0cDovL3d3dy5jaGFsaWNlb2ZibG9vZC5uZXQ8Lz0KYT48YnI+CjxhIGhyZWY9M0QiaHR0cDovL3BsdXMuZ29vZ2xlLmNvbS8rTWFya0RlcnJpY3V0dCI+aHR0cDovL3BsdXMuZ29vZ2xlLmNvbS89CitNYXJrRGVycmljdXR0PC9hPjxicj4KPGEgaHJlZj0zRCJodHRwOi8vdHdpdHRlci5jb20vdGFsaW9zIj5odHRwOi8vdHdpdHRlci5jb20vdGFsaW9zPC9hPjxicj4KPGEgaHJlZj0zRCJodHRwOi8vZmFjZWJvb2suY29tL21kZXJyaWN1dHQiPmh0dHA6Ly9mYWNlYm9vay5jb20vbWRlcnJpY3V0dD0KPC9hPjwvcD4KPC9ibG9ja3F1b3RlPgoKPGhyPgoKPHAgZGlyPTNEImF1dG8iPiJUaGUgZWFzZSB3aXRoIHdoaWNoIGEgY2hhbmdlIGNhbiBiZSBpbXBsZW1lbnRlZCBoYXMgbm8gcj0KZWxldmFuY2UgYXQgYWxsIHRvIHdoZXRoZXIgaXQgaXMgdGhlIHJpZ2h0IGNoYW5nZSBmb3IgdGhlIChKYXZhKSBQbGF0Zm9ybT0KIGZvciBhbGwgdGltZS4iID1FMj04MD05NCBNYXJrIFJlaW5ob2xkLjwvcD4KCjxwIGRpcj0zRCJhdXRvIj5NYXJrIERlcnJpY3V0dDxicj4KPGEgaHJlZj0zRCJodHRwOi8vd3d3LnRoZW9yeWlucHJhY3RpY2UubmV0Ij5odHRwOi8vd3d3LnRoZW9yeWlucHJhY3RpY2Uubj0KZXQ8L2E+PGJyPgo8YSBocmVmPTNEImh0dHA6Ly93d3cuY2hhbGljZW9mYmxvb2QubmV0Ij5odHRwOi8vd3d3LmNoYWxpY2VvZmJsb29kLm5ldDwvPQphPjxicj4KPGEgaHJlZj0zRCJodHRwOi8vcGx1cy5nb29nbGUuY29tLytNYXJrRGVycmljdXR0Ij5odHRwOi8vcGx1cy5nb29nbGUuY29tLz0KK01hcmtEZXJyaWN1dHQ8L2E+PGJyPgo8YSBocmVmPTNEImh0dHA6Ly90d2l0dGVyLmNvbS90YWxpb3MiPmh0dHA6Ly90d2l0dGVyLmNvbS90YWxpb3M8L2E+PGJyPgo8YSBocmVmPTNEImh0dHA6Ly9mYWNlYm9vay5jb20vbWRlcnJpY3V0dCI+aHR0cDovL2ZhY2Vib29rLmNvbS9tZGVycmljdXR0PQo8L2E+PC9wPgo8L2Rpdj4KPC9kaXY+CjwvYm9keT4KPC9odG1sPgoKLS09X01haWxNYXRlXzRENUJGOTJGLUVCRDAtNDg0NS05MzAwLTQ1NEI3Q0QwQ0VFMV89LS0KCi0tPV9NYWlsTWF0ZV9BMzU4RDA0Ni05RUZELTQ1QjQtOTkyRi02M0FDMjEzNkNGMURfPQpDb250ZW50LURlc2NyaXB0aW9uOiBPcGVuUEdQIGRpZ2l0YWwgc2lnbmF0dXJlCkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPXNpZ25hdHVyZS5hc2MKQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlOyBuYW1lPXNpZ25hdHVyZS5hc2MKCi0tLS0tQkVHSU4gUEdQIFNJR05BVFVSRS0tLS0tClZlcnNpb246IEdudVBHL01hY0dQRzIgdjIuMAoKaVFFY0JBRUJBZ0FHQlFKWnViQ0tBQW9KRU9qYWcyUnpUdEpGS2MwSUFKSUVrRnB4a1pYOXlCd2l2SlhOVWdTOQpYVEpod3BRN1h5MVNtdmxRa09STUdWUXdPcFNlMzVyTXpYNW1aZDFrTTZ5dkVZblJId2g5czhQTW5wRHhRSmpnClE3U0lXK2VjeEFOQjVBRll4SjFrb25ROWtxYitDTDlVQnhNU1RLU25FbHNNa1ZoTHpybURhRUFtUm9DUmkrSHkKeC9WVk9PWFY5Z2FldGpOMTRCSWU4R1lTdzFKOHlJYXMvOWdnL1l3aFh2TUplTGVtd2NqTlFmaFZLaFBPM0QyagpqUTdtV2tkRElhUnFYeXhyNFJMbzhOYWF1YUNQY1JHVWVZNUkwd2xMVWhhQVRWSGhJbVdJaHpTNlduVTFNMUtNCkpUam15RHJCc3NkUTBsd3hUdmhFL2ZRZFdHUG80VmVzRWI2Z1I4T0o1RHdGU1RhOTlHamdOUk1SbWRGOVVEMD0KPUtpMi8KLS0tLS1FTkQgUEdQIFNJR05BVFVSRS0tLS0tCgotLT1fTWFpbE1hdGVfQTM1OEQwNDYtOUVGRC00NUI0LTk5MkYtNjNBQzIxMzZDRjFEXz0tLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDA4NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgU2VwIDIxIDIwOjE1OjM4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDA4NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFQjZBNjEwQTVBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjEgU2VwIDIwMTcgMjA6MTU6MzcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0OTMxNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBTZXAgMjAxNyAyMDoxNTozNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDkyMzEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjEgU2VwIDIwMTcgMjA6MTU6MzcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0OTIxNiBpbnZva2VkIGJ5IHVpZCA5OSk7IDIxIFNlcCAyMDE3IDIwOjE1OjM2IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyMSBTZXAgMjAxNyAyMDoxNTozNiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDYwMkQ4MUE2MTgyOwoJVGh1LCAyMSBTZXAgMjAxNyAyMDoxNTozNiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xLjEwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMS4xMDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0hUTUxfTUVTU0FHRT0yLCBLQU1fTVhVUkk9MS41LCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX01FRD0tMi4zLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJUlBfTUFUQ0hFU19SQ1ZEPS0wLjAwMSwgU1BGX1BBU1M9LTAuMDAxLCBVTlBBUlNFQUJMRV9SRUxBWT0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgVXVodDdYOEZaVERUOyBUaHUsIDIxIFNlcCAyMDE3IDIwOjE1OjM0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHVzZXJwMTA0MC5vcmFjbGUuY29tICh1c2VycDEwNDAub3JhY2xlLmNvbSBbMTU2LjE1MS4zMS44MV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBBOUM3QzYwRTI2OwoJVGh1LCAyMSBTZXAgMjAxNyAyMDoxNTozMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSB1c2VydjAwMjEub3JhY2xlLmNvbSAodXNlcnYwMDIxLm9yYWNsZS5jb20gWzE1Ni4xNTEuMzEuNzFdKQoJYnkgdXNlcnAxMDQwLm9yYWNsZS5jb20gKFNlbnRyaW9uLU1UQS00LjMuMi9TZW50cmlvbi1NVEEtNC4zLjIpIHdpdGggRVNNVFAgaWQgdjhMS0ZWMHIwMTkzNTUKCSh2ZXJzaW9uPVRMU3YxLjIgY2lwaGVyPUVDREhFLVJTQS1BRVMyNTYtR0NNLVNIQTM4NCBiaXRzPTI1NiB2ZXJpZnk9T0spOwoJVGh1LCAyMSBTZXAgMjAxNyAyMDoxNTozMSBHTVQKUmVjZWl2ZWQ6IGZyb20gYXNlcnYwMTIyLm9yYWNsZS5jb20gKGFzZXJ2MDEyMi5vcmFjbGUuY29tIFsxNDEuMTQ2LjEyNi4yMzZdKQoJYnkgdXNlcnYwMDIxLm9yYWNsZS5jb20gKDguMTQuNC84LjE0LjQpIHdpdGggRVNNVFAgaWQgdjhMS0ZVd1AwMDg3NjkKCSh2ZXJzaW9uPVRMU3YxL1NTTHYzIGNpcGhlcj1ESEUtUlNBLUFFUzI1Ni1HQ00tU0hBMzg0IGJpdHM9MjU2IHZlcmlmeT1PSyk7CglUaHUsIDIxIFNlcCAyMDE3IDIwOjE1OjMxIEdNVApSZWNlaXZlZDogZnJvbSBhYmhtcDAwMTYub3JhY2xlLmNvbSAoYWJobXAwMDE2Lm9yYWNsZS5jb20gWzE0MS4xNDYuMTE2LjIyXSkKCWJ5IGFzZXJ2MDEyMi5vcmFjbGUuY29tICg4LjE0LjQvOC4xNC40KSB3aXRoIEVTTVRQIGlkIHY4TEtGVXQ2MDA4MjI3OwoJVGh1LCAyMSBTZXAgMjAxNyAyMDoxNTozMCBHTVQKUmVjZWl2ZWQ6IGZyb20gZGhjcC11a2MxLXR3dnBuLTMtdnBucG9vbC0xMC0xNzUtMjI4LTEyMS52cG4ub3JhY2xlLmNvbSAoLzEwLjE3NS4yMjguMTIxKQoJYnkgZGVmYXVsdCAoT3JhY2xlIEJlZWhpdmUgR2F0ZXdheSB2NC4wKQoJd2l0aCBFU01UUCA7IFRodSwgMjEgU2VwIDIwMTcgMTM6MTU6MzAgLTA3MDAKRnJvbTogIlJvcnkgTydEb25uZWxsIiA8cm9yeS5vZG9ubmVsbEBvcmFjbGUuY29tPgpTdWJqZWN0OiBSZWxlYXNlIEFubm91bmNlbWVudDogR2VuZXJhbCBBdmFpbGFiaWxpdHkgb2YgSkRLIDkKQ2M6IHJvcnkub2Rvbm5lbGxAb3JhY2xlLmNvbSwgRGFsaWJvciBUb3BpYyA8ZGFsaWJvci50b3BpY0BvcmFjbGUuY29tPiwKICAgICAgICBCYWxjaGFuZHJhIFZhaWR5YSA8YmFsY2hhbmRyYS52YWlkeWFAb3JhY2xlLmNvbT4sCiAgICAgICAgTXVuZWVyIEtvbGFya3VubnUgPGFiZHVsLmtvbGFya3VubnVAb3JhY2xlLmNvbT4sCiAgICAgICAgTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KVG86IHJmc2Nob2x0ZUBhcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDw3NmFkNGI2NC1mYzVlLTJhOTMtOWNkZi1lYzQ5M2UwMWZjYjdAb3JhY2xlLmNvbT4KRGF0ZTogVGh1LCAyMSBTZXAgMjAxNyAyMToxNToyNyArMDEwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMjsgcnY6NTIuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzUyLjMuMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsKIGJvdW5kYXJ5PSItLS0tLS0tLS0tLS02QjE0MDdEQ0U3OTREOTdERjdENEVCMzAiCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLVVTClgtU291cmNlLUlQOiB1c2VydjAwMjEub3JhY2xlLmNvbSBbMTU2LjE1MS4zMS43MV0KCi0tLS0tLS0tLS0tLS0tNkIxNDA3RENFNzk0RDk3REY3RDRFQjMwCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtODsgZm9ybWF0PWZsb3dlZApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CgpIaSBSb2JlcnQgLAoKVGhyZWUgaXRlbXMgdG8gc2hhcmUgd2l0aCB5b3UgdG9kYXkKCiAgKiAqSkRLIDkgR2VuZXJhbCBBdmFpbGFiaWxpdHkKICAgICoKICAgICAgbyBHUEwnZCBiaW5hcmllcyBmcm9tIE9yYWNsZSBhcmUgYXZhaWxhYmxlIGhlcmU6CiAgICAgICAgICArIGh0dHA6Ly9qZGsuamF2YS5uZXQvOQogICAgICBvIFNlZSBNYXJrIFJlaW5ob2xkJ3MgZW1haWwgZm9yIG1vcmUgZGV0YWlscyBvbiB0aGUgUmVsZWFzZSBbMV0KICAgICAgICAgICsgZGVsaXZlcnkgb2YgUHJvamVjdCBKaWdzYXcgWzJdCgogICogQXJlIHlvdSBKREsgOSBSZWFkeSA/CiAgICAgIG8gVGhlIFF1YWxpdHkgT3V0cmVhY2ggd2lraSBoYXMgYmVlbiB1cGRhdGVkIHRvIGluY2x1ZGUgYSBKREsgOQogICAgICAgIFJlYWR5IGNvbHVtbi4KICAgICAgbyBJZiB5b3Ugd291bGQgbGlrZSB1cyB0byBpZGVudGlmeSB5b3VyIHByb2plY3QgYXMgSkRLIDkgcmVhZHkgLAogICAgICAgIHBsZWFzZSBsZXQgbWUga25vdyBhbmQgSSB3aWxsIGFkZCBpdCB0byB0aGUgd2lraS4KCiAgKiBRdWFsaXR5IE91dHJlYWNoIFJlcG9ydCBmb3IgU2VwdGVtYmVyIDIwMTcqKmlzIGF2YWlsYWJsZQogICAgICBvIG1hbnkgdGhhbmtzIGZvciB5b3VyIGNvbnRpbnVlZCBzdXBwb3J0IGFuZCB3ZWxjb21lIHRvIHRoZSBuZXcKICAgICAgICBwcm9qZWN0cyEKClJnZHMsUm9yeQoKWzFdIApodHRwOi8vbWFpbC5vcGVuamRrLmphdmEubmV0L3BpcGVybWFpbC9hbm5vdW5jZS8yMDE3LVNlcHRlbWJlci8wMDAyMzAuaHRtbApbMl0gaHR0cHM6Ly9tcmVpbmhvbGQub3JnL2Jsb2cvamlnc2F3LWNvbXBsZXRlCgotLSAKUmdkcyxSb3J5IE8nRG9ubmVsbApRdWFsaXR5IEVuZ2luZWVyaW5nIE1hbmFnZXIKT3JhY2xlIEVNRUEgLCBEdWJsaW4sIElyZWxhbmQKCgotLS0tLS0tLS0tLS0tLTZCMTQwN0RDRTc5NEQ5N0RGN0Q0RUIzMC0tCgpGcm9tIGRldi1yZXR1cm4tMTIzOTE2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBTZXAgIDkgMTQ6MjA6MDUgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTE2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEEyQzNCMTk1MzcKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgOSBTZXAgMjAxNyAxNDoyMDowNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDgyOTE5IGludm9rZWQgYnkgdWlkIDUwMCk7IDkgU2VwIDIwMTcgMTQ6MjA6MDUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgyMzk5IGludm9rZWQgYnkgdWlkIDUwMCk7IDkgU2VwIDIwMTcgMTQ6MjA6MDMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MjM4OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDkgU2VwIDIwMTcgMTQ6MjA6MDMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA5IFNlcCAyMDE3IDE0OjIwOjAzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMEFGMkExQTVBRkMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA5IFNlcCAyMDE3IDE0OjIwOjAzICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTMuMDAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0zLjAwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCAyYUFqUFpqNGRqOXogZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsICA5IFNlcCAyMDE3IDE0OjIwOjAwICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1vdXQuZ214Lm5ldCAobW91dC5nbXgubmV0IFsyMTIuMjI3LjE1LjE5XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDYwM0RENUY2RDMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA5IFNlcCAyMDE3IDE0OjIwOjAwICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIEthcmwtSGVpbnpzLU1hY0Jvb2stUHJvLmxvY2FsIChbMjE3LjI0Ny40LjddKSBieSBtYWlsLmdteC5jb20KIChtcmdteDAwMyBbMjEyLjIyNy4xNy4xOTBdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTVBtNTQtMWRsaW5yMURqMC0wMDR4SFggZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMDkgU2VwIDIwMTcKIDE2OjE5OjUzICswMjAwClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogaW5mb0Bzb2ViZXMuZGUKRnJvbTogS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+ClN1YmplY3Q6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBKTGluayBQbHVnaW4gdmVyc2lvbiAzLjAuMC1hbHBoYS0xIChGaXJzdAogUHVibGljIFJlbGVhc2UpCk1lc3NhZ2UtSUQ6IDw3NmY4MzQzMS1lOGM3LWY2YzUtMDhmNi1jZDI1ZDRlNWE0YzJAZ214LmRlPgpEYXRlOiBTYXQsIDkgU2VwIDIwMTcgMTY6MTk6NTIgKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi4yLjEKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLUdCCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6eFNNTVVWdHJsQVVUSC9yRG4zWk53OWkwWVA0aXRhRGVKbEkzcXpwWkUwZjdZN1BzS3BwCiB3dkdadUdHSlhPcG5FeGdOSk8rQm5vckZnbndxVEhGdGcxS2ppQllFZGJScXZ3WVk3UlpBSmxiUkFoNU1Nc2g4bWR2cHJSZgogcDFVTlNoVkhZV3hiUFlWamk4YUhVRm5vTVQzdTNwNmhQWDJkdy9Id2F4RmgxM2pLalVMSEw3cDJWeUh2SEdaaFhQejRWQWoKIDlpOUJ0NGtvTDVQR0s0a3I5ZHREUT09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6b2p5ME5jdFBsMU09Ok1tb3JuUW8wVDVZZTlCWStodVo1RDYKIDM4R3JZRW9QZFJJYnIrQ3pxcUplYlBoRmdNbVB6ays0VGo4WkVub1hoYzNKTS9teUFtQnRrbThuQ3BtNkxZTkltVWtQK28rUEMKIGZyOHNrQWhzSTFicGtLaktMREh0WldxcFZWWUJpQVFPT1drZjYxTlprY0U2c2VZV2NYWW9zSEFCVHM4OGQvdGFlTE5kSXBNY0IKIFFDMFlDSEhsbEEzSVJrYzdERDk2cUlySGZtU1UxZlNBTk1oR0xPdXdrTWhBVXFSZ2xkUEk3RE5YQnk1akFOT3FDbjFCVVdYRlYKIGttUk9yVDhJeWdnWWI2dFVwaXdtZEhOb2dYdWVRcHdrUTZUZ21YUlF1aUlIWFA3OFZ3Skl6REVPaFdWT3FTcnlMWWZDNmd4cnMKIHVJMUpOY2ErSnNMb2VONWpIT0FzMHNzUEY1aktSdkRlUFJwZDRmajJMQ1ljSjFNMU90cURvZWxoSGxhbWx2cFl4TDFpTWczM1kKIDFTajhndVZ6cENDV1Q2V21YWlBpdTNrUVNMK0kzZVNPZHVYRWUxRHdxV3FjL1ZrbVBCQXhqUnZ3Wk15VHgwY1dNZHByUlJNWjgKIGRsTW1WYTVucXU3UXdrVWdvTHRnbVJSa2dKbEU3M0M2NjZVNVY1a0E4V2ZCNWRIaWNFYk5oTnhIMm1Hd1JySVlaMXR0UHFKY0kKIG5ScU1JTHc5bi8vY1hNdlBwbmlxSWhYNDIwV0lGTTl2MktRelpIOTRKOWRYWWxqN0xTTDRjZDBsSjJydTByZHdKeENwaS9mYlQKIFNrOC8vbUlqNTV4Rld3clBBVXdvTXJCSkxVbEt3Um1yV2hlM1NNVWEwejZZMnZYL2hvbk1VL1NITkdyT0I3UFJRNzRsTDUycWEKIDkrY29BR3NFMTF1SGFEYm5nR3VRUVROT09DQloxRDloZE9zWWRHMk14OVFpOFN2R3FFTGFxYW94UW9xR3pNQmk1czArSFN4djYKIFFJMDdPMDI4YytLZHlvYmtBZnNENWVjYXJrZzgwYmFTdEV3MHk4RDRVZnlnY2dicEhFc1g3NFE0d09QVFlobzVBaHJDZDIvMzkKIE1zZWV0MkMvUmtsUU5WMGFsWnFZeFd2TnhBbG1EQ2lJOGkzKzZtQWNENTEzd3dqcEVrPQoKSGksCgp0aGlzIGlzIHRoZSBWT1RFIGZvciB0aGUgZmlyc3QgcHVibGljIHJlbGVhc2UgZm9yIE1hdmVuIEpMaW5rIFBsdWdpbi4uLgoKV2Ugc29sdmVkIDEgaXNzdWVzOgpodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamVjdElkPTEyMzIxNDMyJnZlcnNpb249MTIzNDEzNjEKClRoZXJlIGFyZSBjdXJyZW50bHkgbm8gaXNzdWVzIGxlZnQgaW4gSklSQS4KCklmIHlvdSBoYXZlIGFueSBpc3N1ZSB0byByZXBvcnQgcGxlYXNlIG9wZW4gYW4gaXNzdWUgaW4gSklSQQpodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvcHJvamVjdHMvTUpMSU5LCgpTdGFnaW5nIHJlcG86Cmh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjIvCgpodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzYyL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi1qbGluay1wbHVnaW4vMy4wLjAtYWxwaGEtMS9tYXZlbi1qbGluay1wbHVnaW4tMy4wLjAtYWxwaGEtMS1zb3VyY2UtcmVsZWFzZS56aXAKClNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgptYXZlbi1qbGluay1wbHVnaW4tMy4wLjAtYWxwaGEtMS1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogCmMyMWVlODA4NWEwZWQyOWFkZWUwZTgwZDQ3ZGUwYzg1MWY5NmNkNTQKClN0YWdpbmcgc2l0ZToKaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tamxpbmstcGx1Z2luLUxBVEVTVC8KCkd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgpodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAoKVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KClsgXSArMQpbIF0gKzAKWyBdIC0xCgpLaW5kIHJlZ2FyZHMKS2FybCBIZWlueiBNYXJiYWlzZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MDMzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBTZXAgMTUgMDY6NTU6NTMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDMzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDNGNjY5MUEzRkEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAxNSBTZXAgMjAxNyAwNjo1NTo1MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDIyMjg0IGludm9rZWQgYnkgdWlkIDUwMCk7IDE1IFNlcCAyMDE3IDA2OjU1OjUyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMjA3MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNSBTZXAgMjAxNyAwNjo1NTo1MiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIyMDYxIGludm9rZWQgYnkgdWlkIDk5KTsgMTUgU2VwIDIwMTcgMDY6NTU6NTIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMTUgU2VwIDIwMTcgMDY6NTU6NTIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gWzE5Mi4xNjguMS4xM10gKHAzRTlEMjdGMy5kaXAwLnQtaXBjb25uZWN0LmRlIFs2Mi4xNTcuMzkuMjQzXSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEIyQkUwMUEwMTQwOwoJRnJpLCAxNSBTZXAgMjAxNyAwNjo1NTo1MSArMDAwMCAoVVRDKQpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwKID0/VVRGLTg/Qj9VR1YwY2lERm9HbHliMnZEdlE9PT89IDxzaXJva3kucGV0ckBnbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQStuUG5NeHlHMk5lUFhwVnFhd2U5alI9aXRIRVQ2VXVkbk45Q2pIaHY9b28tS0NyeHdAbWFpbC5nbWFpbC5jb20+CiA8Q0FGTkNVLS0ydnJkNUJlVHZreEtDeVgyWlFlUHFpeDdYPXdtVnNXZE01ZDQ5WGVOZ093QG1haWwuZ21haWwuY29tPgogPEY3MDU3RTFCLTQzMTMtNEQ3Qi04RUYxLTk5MzQxREQxRTFEMEB0YWxpb3MuY29tPgogPENBK25Qbk13VXFtQnVyYXREMUNwaz1MOXRBQ3dfK3FvdHJzVXBDcWRxUlpYbVdYZ2lUQUBtYWlsLmdtYWlsLmNvbT4KIDxCMTQ4Qzk2Ny0xNjk1LTQ1QzItQTE1Ri0xRkZGOTAzQkNCNTBAdGFsaW9zLmNvbT4KIDw3NEMxMjdCMC1GNzA3LTRCQkEtQTJDMS1ENTdFNjBDOUMwRkNAdGFsaW9zLmNvbT4KIDxGQUFEREUxNC1DMzc4LTREM0QtOEFFRS05QUM4Q0NGOTE3ODNAdGFsaW9zLmNvbT4KIDxDQUxZR20xeTlUTXhBQWlobmk3a2JvPTJyaHVuMnh0NEY4eDBNeWtOTGtCdHR2N0dpSHdAbWFpbC5nbWFpbC5jb20+CiA8Q0ErblBuTXpta1ErOFppdlR5QkFibmotNXhRNENzeFVpYTFkTG1pZjNtSDk3ajBBSnpBQG1haWwuZ21haWwuY29tPgogPENBKz0rTHJMTz1GYz1aWU5UbzRoMkdkeWlNYXd0ZHFWWHUwYmJtMnRXeEFjRHp5SlR6Z0BtYWlsLmdtYWlsLmNvbT4KIDxDQSs9K0xyTDY1TG1HQ3ZPd3AtN01YS0JpVD1mOVlSYXM1b3JtPVplQTgyWjZPWE03MlFAbWFpbC5nbWFpbC5jb20+CiA8Q0ErPStMcitIYWUweFphPUtGYXQ9dHUtZUtaRVdXdllway1XQ2h3ZjJTQ3JFUXl2Wk13QG1haWwuZ21haWwuY29tPgpGcm9tOiBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz4KTWVzc2FnZS1JRDogPDc3YWY3ZjkwLWU1OTYtNjQyNS01OWY5LWM2YWM3NTExZjBiMUBhcGFjaGUub3JnPgpEYXRlOiBGcmksIDE1IFNlcCAyMDE3IDA4OjU1OjQ4ICswMjAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdPVzY0OyBydjo1Mi4wKSBHZWNrby8yMDEwMDEwMQogVGh1bmRlcmJpcmQvNTIuMy4wCk1JTUUtVmVyc2lvbjogMS4wCkluLVJlcGx5LVRvOiA8Q0ErPStMcitIYWUweFphPUtGYXQ9dHUtZUtaRVdXdllway1XQ2h3ZjJTQ3JFUXl2Wk13QG1haWwuZ21haWwuY29tPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tVVMKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKQW0gMjAxNy0wOS0xNSB1bSAwMDo1MCBzY2hyaWViIFBldHIgPUM1PUEwaXJvaz1DMz1CRDoKPiBJIHdhcyBhYmxlIHRvIGVhc2lseSBmaXggb3VyIHBsdWdpbiBieSBlLmcuIHJlcGxhY2luZwo+ICJUaHJlYWQuY3VycmVudFRocmVhZCgpLmdldENvbnRleHRDbGFzc0xvYWRlcigpIiB3aXRoCj4gInRoaXMuZ2V0Q2xhc3MoKS5nZXRDbGFzc0xvYWRlcigpIiAoaW4gdGhlIE1vam8gY2xhc3MpIHRvIGdldCB0aGUgcGx1Z2k9Cm4KPiBjbGFzc2xvYWRlci4KPj0yMAo+IEkgZG9uJ3Qga25vdyB0aG91Z2ggaWYgdGhlICJUaHJlYWQuY3VycmVudFRocmVhZCgpLmdldENvbnRleHRDbGFzc0xvYWRlPQpyKCkiCj4gaXMganVzdCBtaXN1c2Ugb24gb3VyIHNpZGUgb3IgaWYgaXQncyBzb21ldGhpbmcgdGhhdCBtb3JlIHBsdWdpbnMgbWF5IHI9CmVseQo+IG9uLgoKU2ltaWxhciBjYXVzZSBpbiBNQVNTRU1CTFk6IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyMD0KOQoKSSB0aGluayB1c2luZyBUQ0NMIGlzIHdyb25nIGhlcmUuCgo+IE9uIFRodSwgU2VwIDE0LCAyMDE3IGF0IDI6NDIgUE0gUGV0ciA9QzU9QTBpcm9rPUMzPUJEIDxzaXJva3kucGV0ckBnbWFpPQpsLmNvbT4gd3JvdGU6Cj49MjAKPj4gQXJnaCwgSSBmb3Jnb3QgdG8gbGluayB0aGUgcGx1Z2luIHNvdXJjZToKPj4gaHR0cHM6Ly9naXRodWIuY29tL2tpZWdyb3VwL2Ryb29sc2picG0taW50ZWdyYXRpb24vdHJlZS83LjMuMC5GaW5hbC9raT0KZS1tYXZlbi1wbHVnaW4KPj4KPj4gT24gVGh1LCBTZXAgMTQsIDIwMTcgYXQgMjo0MSBQTSBQZXRyID1DNT1BMGlyb2s9QzM9QkQgPHNpcm9reS5wZXRyQGdtYT0KaWwuY29tPiB3cm90ZToKPj4KPj4+IEhlbGxvLAo+Pj4KPj4+IEkgYW0gc2VlaW5nIGEgKHByb2JhYmx5KSBzaW1pbGFyIGlzc3VlIHdpdGggb3VyIGN1c3RvbSBwbHVnaW4uCj4+Pgo+Pj4gU2VlIHRoZSByZXByb2R1Y2VyOgo+Pj4gaHR0cHM6Ly9naXRodWIuY29tL3BzaXJva3kvcmVwcm9kdWNlcnMvdHJlZS9tdm4zNTEta2llLW1hdmVuLXBsdWdpbiAoPQp3b3Jrcwo+Pj4gZmluZSB3aXRoIG1hdmVuIDMuNS4wLCBidXQgZmFpbHMgd2l0aCBOUEUgd2l0aCB0aGUgUkMgb2YgbWF2ZW4gMy41LjEpPQo9MkUKPj4+Cj4+PiBJIGFtIG5vdCB5ZXQgc3VyZSBpZiB0aGUgcGx1Z2luIGlzIGp1c3QgZG9pbmcgc29tZXRoaW5nIGl0J3Mgbm90IHN1cHA9Cm9zZWQKPj4+IHRvLCBvciBpZiB0aGlzIGlzIGEgcmVncmVzc2lvbiBpbiBtYXZlbiBpdHNlbGYuIEknbGwgd2lsbCB0YWtlIGEgZGVlcD0KZXIKPj4+IGxvb2suCj4+Pgo+Pj4gUGV0cgo+Pj4KPj4+Cj4+PiBPbiBUaHUsIFNlcCAxNCwgMjAxNyBhdCAxOjUzIFBNIFN0ZXBoZW4gQ29ubm9sbHkgPAo+Pj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4+Pgo+Pj4+IE9uIDE0IFNlcHRlbWJlciAyMDE3IGF0IDA0OjQzLCBNYXJrIERlcnJpY3V0dCA8bWFya0B0YWxpb3MuY29tPiB3cm90PQplOgo+Pj4+Cj4+Pj4+PiArMiBub24tYmluZGluZyBmcm9tIE1hcmshCj4+Pj4+Cj4+Pj4+IEkgd2FzIGRpc2N1c3NpbmcgdGhpcyB3aXRoIGEgY293b3JrZXIgYW5kIGhlIG1hZGUgdGhlIGNvbW1lbnQgdGhhdCA9CmlmCj4+Pj4gdGhpcwo+Pj4+PiBjaGFuZ2UgY291bGQgYnJlYWsgTW9qb3MsIG1heWJlIGl0IHNob3VsZG4ndCBiZSBpbiBhIHBvaW50IHJlbGVhc2UgPQotCj4+Pj4gd2hhdHMKPj4+Pj4gdGhlIHBvbGljeSBvbiBjaGFuZ2VzIHRoYXQgbWF5IHBvdGVudGlhbGx5IGJyZWFrIGV4aXN0aW5nIHBsdWdpbnM/Cj4+Pj4+Cj4+Pj4KPj4+PiBXZWxsIHdlIG5lZWQgdG8gYXNzZXNzIHRoZSBpc3N1ZS4gUmlnaHQgbm93IEkgZG9uJ3QgZXZlbiBoYXZlIGEKPj4+PiBkZXNjcmlwdGlvbgo+Pj4+IG9mIHdoYXQgd2VudCB3cm9uZy4gQW55IGNoYW5jZSB5b3UgY291bGQgcHJvdmlkZSBhIHJlcGxpY2F0aW9uLi4uIG9yPQogbWFpbAo+Pj4+IG1lIGRpcmVjdGx5IGlmIHlvdSBjYW5ub3Qgc2hhcmUgaXQgcHVibGljYWxseSBhbmQgSSBtYXkgYmUgYWJsZSB0bwo+Pj4+IHByb2R1Y2UKPj4+PiBhIG1pbmltYWwgcmVwcm9kdWN0aW9uIGZyb20gaXQuCj4+Pj4KPj4+PiBJZiB0aGlzIGJyZWFrcyBhIG1vam8gdGhhdCB3YXMgZG9pbmcgc29tZXRoaW5nIHdyb25nIGluIHRoZSBmaXJzdCBwbD0KYWNlLAo+Pj4+IHdlbGwgdGhhdCB3aWxsIG5vdCBzdG9wIDMuNS4xLi4uIE9UT0ggaWYgdGhpcyBleHBvc2VzIGEgYnVnIGluIHRoZSBpPQpzc3VlCj4+Pj4gImZpeGVkIiB0aGVuIEknZCBsaWtlbHkgcmV2ZXJ0IGFuZCByZXNwaW4uCj4+Pj4KPj4+PiBXZSByZWFsbHkgbmVlZCBhIHJlcHJvZHVjZXIgZmlyc3QuCj4+Pj4KPj4+Pgo+Pj4+Pgo+Pj4+PiAtLQo+Pj4+PiAiR3JlYXQgYXJ0aXN0cyBhcmUgZXh0cmVtZWx5IHNlbGZpc2ggYW5kIGFycm9nYW50IHRoaW5ncyIgPUUyPTgwPTk0PQogU3RldmVuCj4+Pj4gV2lsc29uLAo+Pj4+PiBQb3JjdXBpbmUgVHJlZQo+Pj4+Pgo+Pj4+PiBPbiBUaHUsIFNlcCAxNCwgMjAxNyBhdCAxMDoyOSBBTSwgTWFyayBEZXJyaWN1dHQgPG1hcmtAdGFsaW9zLmNvbT4KPj4+PiB3cm90ZToKPj4+Pj4KPj4+Pj4+IE9uIDE0IFNlcCAyMDE3LCBhdCAxMDoyNiwgTWFyayBEZXJyaWN1dHQgd3JvdGU6Cj4+Pj4+Pgo+Pj4+Pj4gQ2FsbGluZyAtMiBmb3Igdm90ZSBpZiBub3QgdG9vIGxhdGUuCj4+Pj4+Pgo+Pj4+Pj4gQWN0dWFsbHkgLSBsb29raW5nIGF0IHRoZSBjb21taXQgZGlmZiwgSSBzZWUgaW4gb3VyIGNvZGUgd2UgZGlkIGhhPQp2ZQo+Pj4+Pj4gPGV4dGVuc2lvbnM+dHJ1ZTwvZXh0ZW5zaW9ucz4gZm9yIHRoZSBqYXNtaW5lLW1hdmVuLXBsdWdpbiB3aGljaCB3PQplCj4+Pj4gZG9uJ3QKPj4+Pj4+IGFjdHVhbGx5IG5lZWQuIFJlbW92aW5nIHRoYXQgZnJvbSB0aGUgbW9qbyBkZWZpbml0aW9uIGFuZCBydW5uaW5nID0KbXkKPj4+Pj4gYnVpbGQKPj4+Pj4+IHdpdGggdGhlIHN0YWdlZCAzLjUuMSByZWxlYXNlIGFuZCBldmVyeXRoaW5nIGJ1aWxkcyBmaW5lLgo+Pj4+Pj4KPj4+Pj4+ICsyIG5vbi1iaW5kaW5nIGZyb20gTWFyayEKPj4+Pj4+Cj4+Pj4+PiBNYXJrCj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+Pj4+Cj4+Pj4+PiAiVGhlIGVhc2Ugd2l0aCB3aGljaCBhIGNoYW5nZSBjYW4gYmUgaW1wbGVtZW50ZWQgaGFzIG5vIHJlbGV2YW5jZSA9CmF0Cj4+Pj4gYWxsCj4+Pj4+PiB0byB3aGV0aGVyIGl0IGlzIHRoZSByaWdodCBjaGFuZ2UgZm9yIHRoZSAoSmF2YSkgUGxhdGZvcm0gZm9yIGFsbAo+Pj4+IHRpbWUuIgo+Pj4+PiA9RTI9ODA9OTQKPj4+Pj4+IE1hcmsgUmVpbmhvbGQuCj4+Pj4+Pgo+Pj4+Pj4gTWFyayBEZXJyaWN1dHQKPj4+Pj4+IGh0dHA6Ly93d3cudGhlb3J5aW5wcmFjdGljZS5uZXQKPj4+Pj4+IGh0dHA6Ly93d3cuY2hhbGljZW9mYmxvb2QubmV0Cj4+Pj4+PiBodHRwOi8vcGx1cy5nb29nbGUuY29tLytNYXJrRGVycmljdXR0Cj4+Pj4+PiBodHRwOi8vdHdpdHRlci5jb20vdGFsaW9zCj4+Pj4+PiBodHRwOi8vZmFjZWJvb2suY29tL21kZXJyaWN1dHQKPj4+Pj4+Cj4+Pj4+Cj4+Pj4KPj4+Cj49MjAKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzOTExLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBTZXAgIDkgMTI6MzU6MDQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTExLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDZBMDg2MTkyQTUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgOSBTZXAgMjAxNyAxMjozNTowNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDYwNzA5IGludm9rZWQgYnkgdWlkIDUwMCk7IDkgU2VwIDIwMTcgMTI6MzQ6NTkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYwNjM1IGludm9rZWQgYnkgdWlkIDUwMCk7IDkgU2VwIDIwMTcgMTI6MzQ6NTggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MDYyMiBpbnZva2VkIGJ5IHVpZCA5OSk7IDkgU2VwIDIwMTcgMTI6MzQ6NTggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA5IFNlcCAyMDE3IDEyOjM0OjU4ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMjdDOThEMEI1OQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDkgU2VwIDIwMTcgMTI6MzQ6NTggKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjI3OQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjI3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGhKcVEwTzhlbXRDSiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgIDkgU2VwIDIwMTcgMTI6MzQ6NTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbW91dC5nbXgubmV0IChtb3V0LmdteC5uZXQgWzIxMi4yMjcuMTUuMTVdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNzBDMzU1RjVBNQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDkgU2VwIDIwMTcgMTI6MzQ6NTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gS2FybC1IZWluenMtTWFjQm9vay1Qcm8ubG9jYWwgKFsyMTcuMjQ3LjQuN10pIGJ5IG1haWwuZ214LmNvbQogKG1yZ214MDAzIFsyMTIuMjI3LjE3LjE5MF0pIHdpdGggRVNNVFBTQSAoTmVtZXNpcykgaWQKIDBNZHI3bC0xZTZtZUsyeGhOLTAwUGVQUiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAwOSBTZXAgMjAxNwogMTQ6MzQ6NDkgKzAyMDAKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiBpbmZvQHNvZWJlcy5kZQpGcm9tOiBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4KU3ViamVjdDogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIERlcGVuZGVuY3kgUGx1Z2luIHZlcnNpb24gMy4wLjIKTWVzc2FnZS1JRDogPDc4YTVhZjkyLWU0NzEtZjlmOS03ZGUwLWYwMmQwOWZhNDAzNUBnbXguZGU+CkRhdGU6IFNhdCwgOSBTZXAgMjAxNyAxNDozNDo0OSArMDIwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMTsgcnY6NTIuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzUyLjIuMQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDpzK0dtd25Fa1NKRmxhVnlDeXZSWnA5MHFKL3diZVJ5UkdGczU1dGU5OUxibWMwTUlFZXUKIFd3dUJJelVZR1hsa0t4MzU3QnNJdVIvTUwvUk81NXRUT1NTcTJKL1pIenBYQ3V5SFFvTlVUUmVVYkw1UjZmMVEvdFM0MkRhCiA0c1pSS1NqYkxwTCt5OTlGSmRVNno1b0hSaFBuV3UwSXZYaFJCZXJyOUI5bnFXektieEw5RUtDYlRhYU5Gd0xmRnBjc0J6ZAogVDliWi9pNFFWc3B4MW9LS0ZaN3VBPT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDpIYmV4MnErV3hhcz06b2xyZ3g3dzExaFd6VUxrbjk0RjI0KwogMVdPUU9QMVAzQnBsbXVYbzVvbTRXemxlMGpqd3NSajJzRFg0dXRiQis1VmpjVFFRb1hERUdZc1hZQkF6aHFTQnJ0U3NqY25RegogYjVuTkVMbmhDQ3lEOEFDa3VwVUpQYi80bklFTU8vQ3ZsYnlnSGJuR0xuc241UUN1YTBlelQ1bFlNZUV3OTJSSjRVRCtOK1g4eQogS2p1MmZQbnBwZHl0MWNnVWZ5TlN4eUF3ZXpvMW5DQytJaVVtU3dYby9PUFhtWDYwMDh0azExSzk1ODBpSnpEWlF5d0xlVy9YYgogdVJNS0dlY1YwVTUwSEIvSUxoUGY4RGUvNzhtU01WMmNudmszL214eVNJc3JCbXJtUzlubkxJQzM4cFJwNklyWGxSc1NhR29tZgogRGIxdXU5ZGs4TXFMeXUyVzM0akV4b2ZaRnZEMFlEaVNtWTVTMFpURHdPWWVKMUZwUE1jaW5TUGNqVG9UWUZIbHQ4YWZmTjNjYwogbWpYQmtmVkpkbDZ1Y2tTa1dnYXJXWXR5dGRwcDByTG1sQnlqTmxnRWdtK0FRVVpQRUJUcENuMnJnZUJacE85bStDaXJjeGhWTQogTHhLNXZCL0d4Unl5eWdnd2UwU0RzMmFBRW5hTHQxQTc2c28rUEhPWjFkRTZGQ3F5V29xZUlBaVNmSTNlcmZrUlJQMGpIcjRCZwogOGExWDROQ25NUzd3VXBXWldmNGNQVnNsclU4Qlh5TUZZT2g4b3dZWVk2Wk5UVnQ2d0hKMTVwNW1KbThZbnFsNXpyUHBWR280RgogSHFvUXZjaXZYYis0WUVUaDNYWnZ5SHBSMTNRbGpBOTZvb1dRUmdIdnFKdXBZR3hYYmRzTmtOcVVDNDZXUUJPRnRVN2NlaFcwdQogVElGdW0yYWpNWmJZVTBJQTQrQ3dtNjIvSkc1eS9CaG5XQ1VYWkk3VkNNNnl0VUhhZDBZUnJ1NmFGT3N4WWZwLytzc0RpUWUzVQogd1FMdm4vcjMrQnpHMDJoVi81bHBkRWUvanIvWUt6V1lGSEZ4VHVRNis5d09EbUhwZUkwclJodGxTSmFyZzlFZkNQaUpBbXl5SgogSUwxOGZuOVRIR2RwMjh2bXBidE1kU1c0OUNnbXYvZEFIeFNRbkFJSWNRVVU4ZDJyUDg9CgpIaSwKCldlIHNvbHZlZCA3IGlzc3VlczoKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMxNzIyNyZ2ZXJzaW9uPTEyMzQxMjU0CgpUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPXByb2plY3QlMjAlM0QlMjBNREVQJTIwQU5EJTIwcmVzb2x1dGlvbiUyMCUzRCUyMFVucmVzb2x2ZWQlMjBPUkRFUiUyMEJZJTIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMHVwZGF0ZWQlMjBERVNDCgpTdGFnaW5nIHJlcG86Cmh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjAKaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2MC9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4tZGVwZW5kZW5jeS1wbHVnaW4vMy4wLjIvbWF2ZW4tZGVwZW5kZW5jeS1wbHVnaW4tMy4wLjItc291cmNlLXJlbGVhc2UuemlwCgpTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKbWF2ZW4tZGVwZW5kZW5jeS1wbHVnaW4tMy4wLjItc291cmNlLXJlbGVhc2UuemlwIHNoYTE6IAozYzRhYTcxNmUyOGIyNDE4MzRkNDdkMjJlMWZmNWY2ZTYyZjE2YjliCgpTdGFnaW5nIHNpdGU6Cmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWRlcGVuZGVuY3ktcGx1Z2luLUxBVEVTVC8KCkd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgpodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAoKVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KClsgXSArMQpbIF0gKzAKWyBdIC0xCgpLaW5kIHJlZ2FyZHMKS2FybCBIZWlueiBNYXJiYWlzZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzOTM1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBTZXAgMTAgMjE6MDI6MjQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTM1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDk3NDM1MUFGQjUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAyMTowMjoyNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ2NTE4IGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIFNlcCAyMDE3IDIxOjAyOjI0IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0NjQyMyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBTZXAgMjAxNyAyMTowMjoyNCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ2NDExIGludm9rZWQgYnkgdWlkIDk5KTsgMTAgU2VwIDIwMTcgMjE6MDI6MjQgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTAgU2VwIDIwMTcgMjE6MDI6MjQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gWzE5Mi4xNjguMS4xM10gKHAzRTlEMjdGMy5kaXAwLnQtaXBjb25uZWN0LmRlIFs2Mi4xNTcuMzkuMjQzXSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDMyQUU1MUEwMEU4OwoJU3VuLCAxMCBTZXAgMjAxNyAyMTowMjoyMiArMDAwMCAoVVRDKQpTdWJqZWN0OiBSZTogVGVzdHMgZm9yIE1ORy02Mjc1IGZhaWwgb24gSmF2YSAxLjcuMF8xNTEtYjAxClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwKIFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxlZmI5Nzk2MC1lMWI3LTQyMjctNTk5OC1kZTJjMjQwMTViYjBAYXBhY2hlLm9yZz4KIDxDQStuUG5NdzdvZzVncnFKWk55WWMzSnlNSmNIPXJjaFMtR1lZRF9hTUF2ZUFpY0pvVXdAbWFpbC5nbWFpbC5jb20+CkZyb206IE1pY2hhZWwgT3NpcG92IDxtaWNoYWVsb0BhcGFjaGUub3JnPgpNZXNzYWdlLUlEOiA8NzhhZjk2NTUtNzZiYy1mNTZjLTJlYjUtMWFmMmMxMjBmNDNmQGFwYWNoZS5vcmc+CkRhdGU6IFN1biwgMTAgU2VwIDIwMTcgMjM6MDI6MTggKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV09XNjQ7IHJ2OjUyLjApIEdlY2tvLzIwMTAwMTAxCiBUaHVuZGVyYmlyZC81Mi4zLjAKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDxDQStuUG5NdzdvZzVncnFKWk55WWMzSnlNSmNIPXJjaFMtR1lZRF9hTUF2ZUFpY0pvVXdAbWFpbC5nbWFpbC5jb20+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtODsgZm9ybWF0PWZsb3dlZApDb250ZW50LUxhbmd1YWdlOiBlbi1VUwpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CgpBbSAyMDE3LTA5LTEwIHVtIDIyOjI3IHNjaHJpZWIgU3RlcGhlbiBDb25ub2xseToKPiBXZWxsIEkgcmFuIHRoZSByZWxlYXNlIHdpdGggMS43LjBfODAgd2hpY2ggaWlyYyBpcyB0aGUgbGFzdCBwdWJsaWMgcmVsZWFzZQo+IG9mIE9yYWNsZSBKYXZhIDcuLi4KCkZhaWxzIGFsc28gb24gV2luZG93cyB3aXRoIFp1bHUgNzoKJCBtdm4gLXYKQXBhY2hlIE1hdmVuIDMuNS4wIChmZjhmNWU3NDQ0MDQ1NjM5YWY2NWY2MDk1YzYyMjEwYjU3MTNmNDI2OyAKMjAxNy0wNC0wM1QyMTozOTowNiswMjowMCkKTWF2ZW4gaG9tZTogRDpcRW50d2lja2x1bmdcUHJvZ3JhbW1lXGFwYWNoZS1tYXZlbi0zLjUuMApKYXZhIHZlcnNpb246IDEuNy4wXzE1NCwgdmVuZG9yOiBBenVsIFN5c3RlbXMsIEluYy4KSmF2YSBob21lOiBDOlxQcm9ncmFtIEZpbGVzXFp1bHVcenVsdS03XGpyZQpEZWZhdWx0IGxvY2FsZTogZGVfREUsIHBsYXRmb3JtIGVuY29kaW5nOiBDcDEyNTIKT1MgbmFtZTogIndpbmRvd3MgMTAiLCB2ZXJzaW9uOiAiMTAuMCIsIGFyY2g6ICJhbWQ2NCIsIGZhbWlseTogIndpbmRvd3MiCgoKPiBPbiBTdW4gMTAgU2VwIDIwMTcgYXQgMjE6MDgsIE1pY2hhZWwgT3NpcG92IDxtaWNoYWVsb0BhcGFjaGUub3JnPiB3cm90ZToKPiAKPj4gRm9sa3MsCj4+Cj4+IHRyaWVkIHJ1bm5pbmcgbWFzdGVyIG9uCj4+IE1hdmVuIGhvbWU6IC91c3IvbG9jYWwvc2hhcmUvamF2YS9tYXZlbgo+PiBKYXZhIHZlcnNpb246IDEuNy4wXzE1MSwgdmVuZG9yOiBPcmFjbGUgQ29ycG9yYXRpb24KPj4gSmF2YSBob21lOiAvdXNyL2xvY2FsL29wZW5qZGs3L2pyZQo+PiBEZWZhdWx0IGxvY2FsZTogZGVfREUsIHBsYXRmb3JtIGVuY29kaW5nOiBVVEYtOAo+PiBPUyBuYW1lOiAiZnJlZWJzZCIsIHZlcnNpb246ICIxMS4xLXJlbGVhc2UtcDEiLCBhcmNoOiAiaTM4NiIsIGZhbWlseToKPj4gInVuaXgiCj4+Cj4+IGFuZCBJIGdldCB0aGlzOgo+PiBGYWlsZWQgdGVzdHM6Cj4+Cj4+Cj4+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfY29yZVJlYWxtRGVmYXVsdFBhcmVudENsYXNzTG9hZGVyOjk5Cj4+IG51bGwKPj4KPj4KPj4gRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXN0TU5HNjI3NV9leHRlbnNpb25SZWFsbURlZmF1bHRQYXJlbnRDbGFzc0xvYWRlcjo3Mwo+PiBudWxsCj4+Cj4+Cj4+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfbWF2ZW5BcGlSZWFsbURlZmF1bHRQYXJlbnRDbGFzc0xvYWRlcjo5MQo+PiBudWxsCj4+Cj4+Cj4+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfcGx1Z2luUmVhbG1EZWZhdWx0UGFyZW50Q2xhc3NMb2FkZXI6NjIKPj4gbnVsbAo+Pgo+Pgo+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X3Byb2plY3RSZWFsbURlZmF1bHRQYXJlbnRDbGFzc0xvYWRlcjo4Mwo+PiBudWxsCj4+Cj4+IEFsbCB0ZXN0cyBmYWlsIHdpdGggImp1bml0LmZyYW1ld29yay5Bc3NlcnRpb25GYWlsZWRFcnJvcjogbnVsbCIuCj4+Cj4+IFJ1bm5pbmcgd2l0aAo+PiBNYXZlbiBob21lOiAvdXNyL2xvY2FsL3NoYXJlL2phdmEvbWF2ZW4KPj4gSmF2YSB2ZXJzaW9uOiAxLjguMF8xNDQsIHZlbmRvcjogT3JhY2xlIENvcnBvcmF0aW9uCj4+IEphdmEgaG9tZTogL3Vzci9sb2NhbC9vcGVuamRrOC9qcmUKPj4gRGVmYXVsdCBsb2NhbGU6IGRlX0RFLCBwbGF0Zm9ybSBlbmNvZGluZzogVVRGLTgKPj4gT1MgbmFtZTogImZyZWVic2QiLCB2ZXJzaW9uOiAiMTEuMS1yZWxlYXNlLXAxIiwgYXJjaDogImkzODYiLCBmYW1pbHk6Cj4+ICJ1bml4Igo+Pgo+PiB3b3JrcyBmbGF3bGVzc2x5Lgo+Pgo+PiBBbnkgaWRlYXM/Cj4+Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Cj4+IC0tCj4gU2VudCBmcm9tIG15IHBob25lCj4gCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NDkyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBOb3YgMTUgMjI6MDU6MTggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDkyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDk5OEE3MTA1MjAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAxNSBOb3YgMjAxNyAyMjowNToxOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDY0NTUyIGludm9rZWQgYnkgdWlkIDUwMCk7IDE1IE5vdiAyMDE3IDIyOjA1OjE4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2NDQ4MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNSBOb3YgMjAxNyAyMjowNToxOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY0NDcwIGludm9rZWQgYnkgdWlkIDk5KTsgMTUgTm92IDIwMTcgMjI6MDU6MTcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDE1IE5vdiAyMDE3IDIyOjA1OjE3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMTUwMTExQTFENUIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDE1IE5vdiAyMDE3IDIyOjA1OjE3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgNVh4RmRPR0lGWkx2IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJV2VkLCAxNSBOb3YgMjAxNyAyMjowNToxNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLnNtdHBvdXQub3JhbmdlLmZyIChzbXRwMDIuc210cG91dC5vcmFuZ2UuZnIgWzgwLjEyLjI0Mi4xMjRdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRTBENTI2MENGMQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTUgTm92IDIwMTcgMjI6MDU6MTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gZ2lnYS5sb2NhbG5ldCAoWzg2LjIzOC4xNi45M10pCglieSBtd2luZjVkMDQgd2l0aCBNRQoJaWQgYU41RTF3MDBOMjBVZmR5MDNONUVzdzsgV2VkLCAxNSBOb3YgMjAxNyAyMzowNToxNCArMDEwMApYLU1FLUhlbG86IGdpZ2EubG9jYWxuZXQKWC1NRS1EYXRlOiBXZWQsIDE1IE5vdiAyMDE3IDIzOjA1OjE0ICswMTAwClgtTUUtSVA6IDg2LjIzOC4xNi45MwpGcm9tOiA9P0lTTy04ODU5LTE/UT9IZXJ2PUU5Pz0gQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IE1hdmVuIHJlc29sdmVyIGJyYW5jaCBjb25zb2xpZGF0aW9uCkRhdGU6IFdlZCwgMTUgTm92IDIwMTcgMjM6MDU6MTQgKzAxMDAKTWVzc2FnZS1JRDogPDc5MTY4NzgueUxtTWNjRHlTN0BnaWdhPgpJbi1SZXBseS1UbzogPDg1YzU0NjM4LWQ4MjUtNmMxYy1hNTA0LTEzODhmOGM3NzdjOUBhcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8MjAxNzExMDkwNTM1NTEuOTU3RDQyOUM1MEQxQGRkMTczMzIua2Fzc2VydmVyLmNvbT4gPDE2NjcxOTUudDdIZzJPTTliZUBnaWdhPiA8ODVjNTQ2MzgtZDgyNS02YzFjLWE1MDQtMTM4OGY4Yzc3N2M5QGFwYWNoZS5vcmc+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKaXQgc2VlbXMgSSBoYXZlIG5vdCBiZWVuIGNsZWFyOiBJJ2xsIHRyeSB0byBleHBsYWluIGJldHRlcgoKMS4gbWF2ZW4tcmVzb2x2ZXItYW50LXRhc2tzIGRlcGVuZHMgb24gbWF2ZW4tcmVzb2x2ZXItcHJvdmlkZXIgKGZyb20gTWF2ZW49Cj0yMApjb3JlKQoyLiBtYXZlbi1yZXNvbHZlci1wcm92aWRlciAodGhlbiBNYXZlbiBjb3JlKSBkZXBlbmRzIG9uIG1hdmVuLXJlc29sdmVyCgppZiB3ZSBwdXQgbWF2ZW4tcmVzb2x2ZXItYW50LXRhc2tzIGluIHRoZSBzYW1lIHJlYWN0b3IgdGhhbiBtYXZlbi1yZXNvbHZlciw9CiB3ZT0yMApjYW4ndCByZWxlYXNlIGFueSBtYXZlbi1yZXNvbHZlciBBUEkgY2hhbmdlIHRoYXQgYnJlYWtzIG1hdmVuLXJlc29sdmVyLQpwcm92aWRlcgoKZXhhbXBsZTogaWYgd2UgbW92ZSBtYXZlbi1yZXNvbHZlciBjb2RlIHRvIG9yZy5hcGFjaGUubWF2ZW4gamF2YSBwYWNrYWdlIGluPQo9MjAKbWF2ZW4tcmVzb2x2ZXIgMi4wLjAtU05BUFNIT1QsIHdlIG5lZWQgbWF2ZW4tcmVzb2x2ZXItcHJvdmlkZXIgNC4wLjAtU05BUFNIPQpPVD0yMAp0aGF0IHVzZXMgbWF2ZW4tcmVzb2x2ZXIgMi4wLjAtU05BUFNIT1Qgd2l0aCB0aGlzIG5ldyBqYXZhIHBhY2thZ2UuIFRoZW4gdHI9Cnk9MjAKdG8gcmVsZWFzZSBhbnl0aGluZzogeW91IGNhbid0LCB1bmxlc3MgeW91IGRvbid0IHRyeSB0byByZWxlYXNlIG1hdmVuLQpyZXNvbHZlci1hbnQtdGFza3MKCih0aGUgY29uc2VxdWVuY2Ugb24gdmVyc2lvbiBjb25zaXN0ZW5jeSBpcyBhbm90aGVyIHdheSB0byBkZXNjcmliZSB0aGUgaXNzdT0KZSw9MjAKYnV0IHRoYXQgaXMgbW9yZSBzdWJ0bGUsIHRoZW4gSSBjaG9zZSB0byBkZXNjcmliZSB0aGUgbW9zdCB2aXNpYmxlIGlzc3VlLCB3PQppdGg9MjAKQVBJIGJyZWFraW5nIGNoYW5nZSkKCklNSE8sIGFub3RoZXIgY29uc2VxdWVuY2UgY291bGQgYmU6IG1hdmVuLXJlc29sdmVyLWFudC10YXNrcyB3b3VsZCBwZXJoYXBzPQo9MjAKYmV0dGVyIGJlIHZlcnNpb25uZWQgbGlrZSBtYXZlbi1yZXNvbHZlci1wcm92aWRlcgoKCk1lcmdpbmcgcmVzb2x2ZXItZGVtb3MgaXMgcmVhbGx5IHRoZSBncmVhdCBiaWcgaWRlYTogd2l0aCB0aGF0IG1lcmdlLD0yMAptb2RpZnlpbmcgbWF2ZW4tcnJlc29sdmVyIGNhbiBpbW1lZGlhdGVseSBiZSB0ZXN0ZWQgd2l0aCBkZW1vczogdGhhdCdsbCBiZSA9CnNvPTIwCm11Y2ggZWFzaWVyIHRvIG1ha2UgY2hhbmdlcyB0byBtYXZlbi1yZXNvbHZlciBjb2RlIQoKUmVnYXJkcywKCkhlcnY9RTkKCkxlIG1lcmNyZWRpIDE1IG5vdmVtYnJlIDIwMTcsIDA5OjAyOjEyIENFVCBNaWNoYWVsIE9zaXBvdiBhID1FOWNyaXQgOgo+IFdoeSAtMSBvbiB0aGUgQW50IHRhc2tzPwo+PTIwCj4gQW0gMjAxNy0xMS0xNSB1bSAwMDo1MCBzY2hyaWViIEhlcnY9RTkgQk9VVEVNWToKPiA+IEkgYW5zd2VyZWQgb24gdGhlIG1haWxpbmcgbGlzdCBhbmQgb24gdGhlIDIgSmlyYSBpc3N1ZXMKPiA+IEluIHN1bW1hcnksICsxIHRvIG1lcmdlIGRlbW9zLCAtMSB0byBtZXJnZSBhbnQtdGFza3MKPiA+PTIwCj4gPiBSZWdhcmRzLAo+ID49MjAKPiA+IEhlcnY9RTkKPiA+PTIwCj4gPiBMZSBtYXJkaSAxNCBub3ZlbWJyZSAyMDE3LCAxODoxOTo0MCBDRVQgTWFuZnJlZCBNb3NlciBhID1FOWNyaXQgOgo+ID4+IEFueSBmZWVkYmFjayBvciBzaG91bGQgSSBqdXN0IGdvIGFoZWFkIHdpdGggdGhlIGNsZWFudXA/Cj4gPj49MjAKPiA+PiBNYW5mcmVkCj4gPj49MjAKPiA+PiBNYW5mcmVkIE1vc2VyIHdyb3RlIG9uIDIwMTctMTEtMDggMjE6MzU6Cj4gPj4+IEhpIGFsbCwKPiA+Pj49MjAKPiA+Pj4gSSBoYXZlIHN0YXJ0ZWQgYW5kIG1hZGUgZ29vZCBwcm9ncmVzcyBvbiBnZXR0aW5nIE1hdmVuIHJlc29sdmVyIGFsbCBpPQpudG8KPiA+Pj4gdGhlIG1hc3RlciBicmFuY2ggaW5zdGVhZCBvZiBoYXZpbmcgbWFzdGVyLCBkZW1vcyBhbmQgYW50LXRhc2tzIGluCj4gPj4+IHNlcGFyYXRlIGJyYW5jaGVzLgo+ID4+Pj0yMAo+ID4+PiBEZXRhaWxzIGFyZSB0cmFja2VkIGluCj4gPj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTVJFU09MVkVSLTI4Cj4gPj4+PTIwCj4gPj4+IEFsbCBvZiBpdCBpcyBub3cgaW4gYSBuZXcgYnJhbmNoIGNhbGxlZCBtYXN0ZXItYWxsIGZvciB5b3UgdG8gc2VlLgo+ID4+Pj0yMAo+ID4+PiBJIGFtIG5vdyB3b25kZXJpbmcgd2hhdCB0aGUgbmV4dCBzdGVwcyBhcmUuIEkgYWRkZWQgd2hhdCBJIHRoaW5rIHNob3U9CmxkCj4gPj4+IGhhcHBlbiBuZXh0IGluIHRoZSBpc3N1ZSBpbiBhIGNvbW1lbnQgYW5kIHdvdWxkIGFwcHJlY2lhdGUgYW55IGlucHV0ID0Kb24KPiA+Pj4gdGhlIGN1cnJlbnQgc2V0dXAgYW5kIG5leHQgc3RlcHMuCj4gPj4+PTIwCj4gPj4+IEFueSBoZWxwIHdvdWxkIGJlIGFwcHJlY2lhdGVkLgo+ID4+Pj0yMAo+ID4+PiBtYW5mcmVkCj4gPj49MjAKPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDkwNS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gRGVjIDMxIDEyOjU0OjU5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDkwNS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBBOUZEQzE3QTZBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMzEgRGVjIDIwMTcgMTI6NTQ6NTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzNDgwNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMSBEZWMgMjAxNyAxMjo1NDo1OSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzQ3MzIgaW52b2tlZCBieSB1aWQgNTAwKTsgMzEgRGVjIDIwMTcgMTI6NTQ6NTkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNDcyMSBpbnZva2VkIGJ5IHVpZCA5OSk7IDMxIERlYyAyMDE3IDEyOjU0OjU4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAzMSBEZWMgMjAxNyAxMjo1NDo1OCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDc2RUE1MUEwQTBDCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAzMSBEZWMgMjAxNyAxMjo1NDo1OCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjIwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC4yMDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCAxam82VjljWVZKbFAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sIDMxIERlYyAyMDE3IDEyOjU0OjU3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1vdXQuZ214Lm5ldCAobW91dC5nbXgubmV0IFsyMTIuMjI3LjE3LjIxXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEI0RkQ0NUYyN0UKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDMxIERlYyAyMDE3IDEyOjU0OjU2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIEthcmwtSGVpbnpzLU1hY0Jvb2stUHJvLmxvY2FsIChbOTIuMjA0Ljg5LjIwMl0pIGJ5IG1haWwuZ214LmNvbQogKG1yZ214MTAxIFsyMTIuMjI3LjE3LjE2OF0pIHdpdGggRVNNVFBTQSAoTmVtZXNpcykgaWQKIDBNVGZaYy0xZU1uVDQzb0ZFLTAwUVBmRjsgU3VuLCAzMSBEZWMgMjAxNyAxMzo1NDo1NCArMDEwMApSZXBseS1UbzogaW5mb0Bzb2ViZXMuZGUKU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBTaXRlIFBsdWdpbiB2ZXJzaW9uIDMuNwpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sCiA9P1VURi04P1E/SGVydj1jMz1hOV9CT1VURU1ZPz0gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KUmVmZXJlbmNlczogPDI1MTQ5MDQueXJxZk5DUTEyNEBnaWdhPgpGcm9tOiBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4KTWVzc2FnZS1JRDogPDdhYmZlYzE0LWRjNWItNjg0Zi03Mjg0LTk3MjE5YzA2OTYyYUBnbXguZGU+CkRhdGU6IFN1biwgMzEgRGVjIDIwMTcgMTM6NTQ6NTQgKzAxMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi41LjAKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDwyNTE0OTA0LnlycWZOQ1ExMjRAZ2lnYT4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLUdCCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6Y0FKWVpPRmR1UnY0Zk9ZUnFUVU5KOXRhS0oxNDhUVW8wU21SVGk3cC96RGg2VVZZY1BSCiBSWGdibHB4b2hGVHMyUDBwRERzN2NJVmhBMHM3Q08xL3NaN1hZSzVNWVUyS0lkeGkwUG9abndrUXNLRmVUK3pHbWl2cWllMQogNm9YM1VhQlgxZDRXMVA3UHpyaGZ1Z29RcDBXaDdUa1JEUlRIMUJPZGE5YmI1cEZ2R1NPSkp2dXNFWWdyenQrTXZWOUtSNGwKIDNhWitxWlZRK0ttM0RDYXhCQjFKZz09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6VCtKRFMwTlNKWEU9OmU1b3UvQUY3Ykg1aWtORmxoMDZIckQKIDhweEVaSFFrdE82dzVEZjZzRUFlc1JEa0JwaGVxQ2hFRy94QTMrOFArQW53NmxBRjh6Nm1jelF1dWFGaHloenNlZFVZd0ZFdGEKIHk3b3ZSV2RhZElFNG9rMFE2NWxsTDFLODlHNVNDR3M1WUduNWxrd1p4bitMeW5QMTlhd2ZnMzJyc01PSks3Um56WGM4Vjd0cFoKIG1LLzhqQzFJSTRBVytBUDdHZlVkZnp4RUlkempieUl1azh6R05WdDlGSlJXYXBPYW5nNjB4RktpN2F4NHlaT1ZCN1ZiQWFXU2sKIEw1VGJwd010QmV6aW8yUlB4NEl5L0xTSHp5NzFFeTV4YzJNcEUzMnVlVmdnZXBLQjNWREhPdGRWcW1ObnVGMmNPQlNGZHdYUTAKIFAvRFY1TTJPL00rMWNUMlV2KzBZcHd6NmJpeEJNSUNpL2FzazRDMUs3anlRT09UamtkbTUwQnozRGEybVo2WUZaSVpWM3hySkgKIHdCbjRCeHZ6dmtUam1NMUVaZ3RxelpCMGYxb0VrTUdMeVF4Q1F2aGUwV0MwRXhKWk1wM1M3RENsbm9mU0dFS0xQNjNrcG1CdkYKIHI2bmN2dkRoNTFmNnNiUEdZc0R0M0tNcFdlYTdoUTFUNDJibnZ6bEI2RWxiLzFCYlNabFA4bGsxOGlKaGp0T29QUE5rOURidGQKIEZMRUhGSjZlZTMzdXdvSkJKNVdsTHJaS3VWV3pBMVlnUzUwL0pwUkl3VENodnNhY2V2S1oxWUh6V09YTDFML3M1OEtodmVTT3YKIEtzcXhFYmtnd1MxTk9qdGR6VjVlR3Y3RVl0RG9abUgyREczNUtIMDVOMU1qT3NaZVRLYU5BdDFQWmpUeEIxYWRybGMxMzJGUTQKIEtCRlhsWnM5Y0UvZGpEOTZlajI3TXZhWlFQRXpTUExZZ2hFRWxQU3g3L1lVMVU0RzRHNWhRcFM3TTUwekJmMi9EeXJ0ZzJqQ0oKIHZHcmUwOStZaUg3SjMwNHNXWllqSjlzOHlKN0IrY3NHVXQrakNUZ0J2RjZlRjlESXE0SE1OU1FRQWFOTGFRSjkyWklYUVoyWGsKIGQ3VTBpbkI5Q1Q1MlkxUE1aK0wwLzVqTWRuN2h5TnVnelNIMDdCaGQ5RWxOOGdnSXB3PQoKSGksCgpJJ3ZlIHRlc3RlZCB0aGUgZm9sbG93aW5nOgoKamRrMS43LjBfNzkuamRrCiAgIGFwYWNoZS1tYXZlbi0zLjAuNS4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KICAgYXBhY2hlLW1hdmVuLTMuMS4xLi5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgogICBhcGFjaGUtbWF2ZW4tMy4yLjUuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCiAgIGFwYWNoZS1tYXZlbi0zLjMuMS4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KICAgYXBhY2hlLW1hdmVuLTMuMy45Li5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgogICBhcGFjaGUtbWF2ZW4tMy41LjAuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCiAgIGFwYWNoZS1tYXZlbi0zLjUuMi4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KamRrMS44LjBfMTQ0LmpkawogICBhcGFjaGUtbWF2ZW4tMy4wLjUuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCiAgIGFwYWNoZS1tYXZlbi0zLjEuMS4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KICAgYXBhY2hlLW1hdmVuLTMuMi41Li5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgogICBhcGFjaGUtbWF2ZW4tMy4zLjEuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCiAgIGFwYWNoZS1tYXZlbi0zLjMuOS4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KICAgYXBhY2hlLW1hdmVuLTMuNS4wLi5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgogICBhcGFjaGUtbWF2ZW4tMy41LjIuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCmpkay05LjAuMS5qZGsKICAgYXBhY2hlLW1hdmVuLTMuMC41Li5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgogICBhcGFjaGUtbWF2ZW4tMy4xLjEuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCiAgIGFwYWNoZS1tYXZlbi0zLjIuNS4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KICAgYXBhY2hlLW1hdmVuLTMuMy4xLi5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgogICBhcGFjaGUtbWF2ZW4tMy4zLjkuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCiAgIGFwYWNoZS1tYXZlbi0zLjUuMC4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KICAgYXBhY2hlLW1hdmVuLTMuNS4yLi5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgoKb25seSBmb3IgdGhlIEpESyA5IGJ1aWxkcyBJIGdldDoKCltJTkZPXSBydW4gc2NyaXB0IHZlcmlmeS5ncm9vdnkKV0FSTklORzogQW4gaWxsZWdhbCByZWZsZWN0aXZlIGFjY2VzcyBvcGVyYXRpb24gaGFzIG9jY3VycmVkCldBUk5JTkc6IElsbGVnYWwgcmVmbGVjdGl2ZSBhY2Nlc3MgYnkgCm9yZy5jb2RlaGF1cy5ncm9vdnkucmVmbGVjdGlvbi5DYWNoZWRDbGFzcyQzJDEgCihmaWxlOi9Vc2Vycy9rYW1hLy5tMi9yZXBvc2l0b3J5L29yZy9jb2RlaGF1cy9ncm9vdnkvZ3Jvb3Z5LzIuMC4xL2dyb292eS0yLjAuMS5qYXIpIAp0byBtZXRob2QgamF2YS5sYW5nLk9iamVjdC5maW5hbGl6ZSgpCldBUk5JTkc6IFBsZWFzZSBjb25zaWRlciByZXBvcnRpbmcgdGhpcyB0byB0aGUgbWFpbnRhaW5lcnMgb2YgCm9yZy5jb2RlaGF1cy5ncm9vdnkucmVmbGVjdGlvbi5DYWNoZWRDbGFzcyQzJDEKV0FSTklORzogVXNlIC0taWxsZWdhbC1hY2Nlc3M9d2FybiB0byBlbmFibGUgd2FybmluZ3Mgb2YgZnVydGhlciBpbGxlZ2FsIApyZWZsZWN0aXZlIGFjY2VzcyBvcGVyYXRpb25zCldBUk5JTkc6IEFsbCBpbGxlZ2FsIGFjY2VzcyBvcGVyYXRpb25zIHdpbGwgYmUgZGVuaWVkIGluIGEgZnV0dXJlIHJlbGVhc2UKCmFwYXJ0IGZyb20gdGhhdCB3aXRob3V0IGFueSBpc3N1ZSBzbyArMSBmcm9tIG1lLgoKS2luZCByZWdhcmRzCkthcmwgSGVpbnogTWFyYmFpc2UKCk9uIDI4LzEyLzE3IDE3OjIwLCBIZXJ2w6kgQk9VVEVNWSB3cm90ZToKPiBIaSwKPiAgICAgIAo+IFdlIHNvbHZlZCA4IGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4gcHJvamVjdElkPTEyMzE3OTIzJnZlcnNpb249MTIzMzg3MjYmc3R5bGVOYW1lPVRleHQKPiAgICAgIAo+IFRoZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJTNEJTIwTVNJVEUlMjBBTkQKPiAlMjBzdGF0dXMlMjAlM0QlMjBPcGVuJTIwT1JERVIlMjBCWSUyMGtleSUyMERFU0MlMkMlMjBwcmlvcml0eSUyMERFU0MKPiAgICAgIAo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzg2Lwo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzODYvb3JnL2FwYWNoZS8KPiBtYXZlbi9wbHVnaW5zL21hdmVuLXNpdGUtcGx1Z2luLzMuNy9tYXZlbi1zaXRlLXBsdWdpbi0zLjctc291cmNlLXJlbGVhc2UuemlwCj4gICAgICAKPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBtYXZlbi1zaXRlLXBsdWdpbi0zLjctc291cmNlLXJlbGVhc2UuemlwIHNoYTE6Cj4gOWZhNGIyODA1M2Y0Y2I3OWEwODg2MzU2OGE2NmMxZTg3ZDhiYmM5Mwo+ICAgICAgCj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLXNpdGUtcGx1Z2luLUxBVEVTVC8KPiAgICAgIAo+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCj4gICAgICAKPiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+ICAgICAgCj4gWyBdICsxCj4gWyBdICswCj4gWyBdIC0xCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1ODctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE5vdiAyNCAwODoxODoyNiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1ODctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMDg2MTgxMDM2MAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDI0IE5vdiAyMDE3IDA4OjE4OjI2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODgwNDMgaW52b2tlZCBieSB1aWQgNTAwKTsgMjQgTm92IDIwMTcgMDg6MTg6MjUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg3OTQwIGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IE5vdiAyMDE3IDA4OjE4OjI1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODc5MjkgaW52b2tlZCBieSB1aWQgOTkpOyAyNCBOb3YgMjAxNyAwODoxODoyNSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMjQgTm92IDIwMTcgMDg6MTg6MjUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA3NEYwMDFBMUY3OAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjQgTm92IDIwMTcgMDg6MTg6MjQgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjk5OQpYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuOTk5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgS0FNX01YND0xLCBSUF9NQVRDSEVTX1JDVkQ9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCA2NlRjeWJDS0dzdlMgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglGcmksIDI0IE5vdiAyMDE3IDA4OjE4OjE5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGxueDUwMy5ocnoudHUtZGFybXN0YWR0LmRlIChtYWlsLXJlbGF5MTUuaHJ6LnR1LWRhcm1zdGFkdC5kZSBbMTMwLjgzLjE1Ni4yMzldKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgN0FGMUU1RkQwMQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjQgTm92IDIwMTcgMDg6MTg6MTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gTVgwMS5yYmcuaW5mb3JtYXRpay50dS1kYXJtc3RhZHQuZGUgKG14MDEucmJnLmluZm9ybWF0aWsudHUtZGFybXN0YWR0LmRlIFsxMzAuODMuMTYwLjQzXSkKCWJ5IGxueDUwMy5ocnoudHUtZGFybXN0YWR0LmRlICg4LjE0LjQvOC4xNC40L0hSWi9QTVgpIHdpdGggRVNNVFAgaWQgdkFPOElCUTMwMDE2NzYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDI0IE5vdiAyMDE3IDA5OjE4OjExICswMTAwCgkoZW52ZWxvcGUtZnJvbSBzZXdlQHN0LmluZm9ybWF0aWsudHUtZGFybXN0YWR0LmRlKQpSZWNlaXZlZDogZnJvbSBBbmRyZWFzcy1NYWNCb29rLVByby5sb2NhbCAocDVERENEOTcxLmRpcDAudC1pcGNvbm5lY3QuZGUgWzkzLjIyMC4yMTcuMTEzXSkKCSh1c2luZyBUTFN2MS4yIHdpdGggY2lwaGVyIEVDREhFLVJTQS1BRVMyNTYtR0NNLVNIQTM4NCAoMjU2LzI1NiBiaXRzKSkKCShObyBjbGllbnQgY2VydGlmaWNhdGUgcmVxdWVzdGVkKQoJKEF1dGhlbnRpY2F0ZWQgc2VuZGVyOiBzZXdlKQoJYnkgTVgwMS5yYmcuaW5mb3JtYXRpay50dS1kYXJtc3RhZHQuZGUgKFBvc3RmaXgpIHdpdGggRVNNVFBTQSBpZCAxOUM2OUZFQzkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDI0IE5vdiAyMDE3IDA5OjE4OjEwICswMTAwIChDRVQpClN1YmplY3Q6IFJlOiBEZXBlbmRlbmN5IHNjb3BlcyBhbmQgY29uZmxpY3QgcmVzb2x1dGlvbjogUG9zc2libGUgYnVnPwpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPDliZDA1ZTcyLTQ3MzktZWY5ZC1hMGE2LTI2NjJiNTg4NWZjMUBzdC5pbmZvcm1hdGlrLnR1LWRhcm1zdGFkdC5kZT4KIDxvcC55OTU3dGZkMWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KIDxDQUdmZ19lRWE5K3ZPR0FnTllSc3FLMFd5YTRQK24tQj1tblZRcEtKZ3ZSN3h5MVRqc0FAbWFpbC5nbWFpbC5jb20+CkZyb206IEFuZHJlYXMgU2V3ZSA8c2V3ZUBzdC5pbmZvcm1hdGlrLnR1LWRhcm1zdGFkdC5kZT4KT3BlbnBncDogcHJlZmVyZW5jZT1zaWduZW5jcnlwdApPcmdhbml6YXRpb246IFNvZnR3YXJlIFRlY2hub2xvZ3kgR3JvdXAsIFRVIERhcm1zdGFkdApNZXNzYWdlLUlEOiA8N2Q5MzQ4NjktYjIyZC04ZjFjLTgzNDMtYTgyODk2ZTZkMjMwQHN0LmluZm9ybWF0aWsudHUtZGFybXN0YWR0LmRlPgpEYXRlOiBGcmksIDI0IE5vdiAyMDE3IDA5OjE4OjA4ICswMTAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwLjEwOyBydjo1Ny4wKQogR2Vja28vMjAxMDAxMDEgVGh1bmRlcmJpcmQvNTcuMApNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPENBR2ZnX2VFYTkrdk9HQWdOWVJzcUswV3lhNFArbi1CPW1uVlFwS0pndlI3eHkxVGpzQUBtYWlsLmdtYWlsLmNvbT4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvc2lnbmVkOyBtaWNhbGc9cGdwLXNoYTUxMjsKIHByb3RvY29sPSJhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlIjsKIGJvdW5kYXJ5PSJEc2NUUzZsNkNha1ByQ1dDMlhDMXBKZDhsTmlka211MWIiClgtUE1YLVRVOiBzZWVuIHYxLjIgYnkgNS42LjEuMjA2NTQzOSwgQW50aXNwYW0tRW5naW5lOiAyLjcuMi4zNzYzNzksIEFudGlzcGFtLURhdGE6IDIwMTcuMTEuMjQuODEyMTYKWC1QTVgtUkVMQVk6IG91dGdvaW5nCgotLURzY1RTNmw2Q2FrUHJDV0MyWEMxcEpkOGxOaWRrbXUxYgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9taXhlZDsgYm91bmRhcnk9Ik5pUGQ2S0UyYTJSSHVjdVNuQ0FDRUU5bmtBUDRwcGZxSCI7CiBwcm90ZWN0ZWQtaGVhZGVycz0idjEiCkZyb206IEFuZHJlYXMgU2V3ZSA8c2V3ZUBzdC5pbmZvcm1hdGlrLnR1LWRhcm1zdGFkdC5kZT4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDw3ZDkzNDg2OS1iMjJkLThmMWMtODM0My1hODI4OTZlNmQyMzBAc3QuaW5mb3JtYXRpay50dS1kYXJtc3RhZHQuZGU+ClN1YmplY3Q6IFJlOiBEZXBlbmRlbmN5IHNjb3BlcyBhbmQgY29uZmxpY3QgcmVzb2x1dGlvbjogUG9zc2libGUgYnVnPwpSZWZlcmVuY2VzOiA8OWJkMDVlNzItNDczOS1lZjlkLWEwYTYtMjY2MmI1ODg1ZmMxQHN0LmluZm9ybWF0aWsudHUtZGFybXN0YWR0LmRlPgogPG9wLnk5NTd0ZmQxa2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgogPENBR2ZnX2VFYTkrdk9HQWdOWVJzcUswV3lhNFArbi1CPW1uVlFwS0pndlI3eHkxVGpzQUBtYWlsLmdtYWlsLmNvbT4KSW4tUmVwbHktVG86IDxDQUdmZ19lRWE5K3ZPR0FnTllSc3FLMFd5YTRQK24tQj1tblZRcEtKZ3ZSN3h5MVRqc0FAbWFpbC5nbWFpbC5jb20+CgotLU5pUGQ2S0UyYTJSSHVjdVNuQ0FDRUU5bmtBUDRwcGZxSApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTgKQ29udGVudC1MYW5ndWFnZTogZW4tVVMKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSm9uYXRoYW4gSGFiZXIgd3JvdGU6Cj4gQXMgYSB3b3JrYXJvdW5kIHlvdSBjYW4gY2hlY2sgb3V0IHRoZSBkZXBlbmRlbmN5LXNjb3BlLW1hdmVuLXBsdWdpbiB3ZQo+IHdyb3RlOgo+IGh0dHBzOi8vZ2l0aHViLmNvbS9IdWJTcG90L2RlcGVuZGVuY3ktc2NvcGUtbWF2ZW4tcGx1Z2luCgpUaGFua3MgZm9yIHRoZSBwb2ludGVyOyB0aGlzIGluZGVlZCBsb29rcyBsaWtlIGEgdXNlZnVsIHBsdWdpbi4KClRoYXQgYmVpbmcgc2FpZCwgSSB3YXNuJ3QgZXhwZXJpZW5jaW5nIHRoaXMgYnVnL21pc2ZlYXR1cmUgbXlzZWxmLgpSYXRoZXIsIEknbSBzaW1wbHkgdHJ5aW5nIHRvIHVuZGVyc3RhbmQgaG93IE1hdmVuIHdvcmtzIGluIHRoaXMKY29ybmVyLWNhc2UgdG8gZW5zdXJlIHRoYXQgYSByZXNlYXJjaCBwcm9qZWN0IG9mIG1pbmUsIGEgbGFyZ2Ugc2NhbGUKYW5hbHlzaXMgb2YgdGhpcmQtcGFydHkgcHJvamVjdHMsIGhhcyBjb3JyZWN0IGlucHV0IGRhdGEgKGNsYXNzcGF0aHMpLgoKQmVzdCB3aXNoZXMsCgpBbmRyZWFzCgoKLS1OaVBkNktFMmEyUkh1Y3VTbkNBQ0VFOW5rQVA0cHBmcUgtLQoKLS1Ec2NUUzZsNkNha1ByQ1dDMlhDMXBKZDhsTmlka211MWIKQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlOyBuYW1lPSJzaWduYXR1cmUuYXNjIgpDb250ZW50LURlc2NyaXB0aW9uOiBPcGVuUEdQIGRpZ2l0YWwgc2lnbmF0dXJlCkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSJzaWduYXR1cmUuYXNjIgoKLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KVmVyc2lvbjogR251UEcgdjIKCmlRSWNCQUVCQ2dBR0JRSmFGOVhBQUFvSkVDS2hkbytudVB5VmxGNFAvam1INUdIKzRWTWtCMmFWR1V5UU0rZnAKOWNVcjc2ZGhkMDR2REV0L092YmhLU3cvTXJOUHhqLzh0YnRrRXVnVk8vbXJ5UjM0RE8vdDBlS1dabnZmeHhVUwpmd1d0RFRPN244Um1lR2tINXVGSUg0QlRIYlMyNVNoR3ZSNkRVYU44eU5kcVZWOTNabHQybmZWeUlaU0k5RnFsCktXQlR5d0dsVzV6NUxUOFlMeXpmcU1zcThnNTNaTEF3dzNrd0IxWVJOK2h5NjdFc05XSWZwSU5ZdlFHK0o5WGYKbk5JTmM3TVBucEFvdWlsRTM3NnlKZWdodzRBMGVocUxrOFFNbzFPMi9xVCtCRzdxTDl6U1hma2ZYdERyUkFGbgo0cG9odFNiTkR2Lyt0Vnh5STZYcnFSbC9jYmhpcVVlMzNqdklHa2srZG5hM29vMzF6UUJIL1cyazhBQzFKaXdQCm9PTlhrbXlMbWZuZ0FaWEIrUldydll4Ukx0dS9CckQzM1NaZXpidEk5eVFWbFBlcEk2ZjM1enByaGoxZkJFc3EKRzZYZ2c0YmZyaWNLN1RBbnR0elZZaGlqZm5oVklocmVlOUxTZE9paHNBaTdJUlk5WDE5WXlNSmV6b00zQjVhVgorUW1ndmZseVR6N0FpM0N2aWJqcWZFa3EwaCtaR2ZTc1c0cHUrRnIxdFBvd2ViTmkvNlVOM1FFYnFaNEpXQk1uCjZJZS9YQWpqcDlqR2FQL3VFN1JWUEx3UlhCOVZwUGZZT1h0SVVXUlFCMFpmS0VxRmlCRUloY0JjNVo5TzJqRW8KczNGb0w1NFpNQ0ZWd1l5TzZwK1h1TGV0ZjROVnE4QVIzdk83RGxqS3diejdyVjk3bWNPUUkyS0ZaaTloZ2I1YQpGUWsxL29XazgvWWdKQWpwZ2h2WQo9ZjlHUQotLS0tLUVORCBQR1AgU0lHTkFUVVJFLS0tLS0KCi0tRHNjVFM2bDZDYWtQckNXQzJYQzFwSmQ4bE5pZGttdTFiLS0KCkZyb20gZGV2LXJldHVybi0xMjM5NzYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIFNlcCAxMSAxNzowNjoxNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5NzYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMkU1REMxQTU2NwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDE3OjA2OjE0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTA5MzMgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgU2VwIDIwMTcgMTc6MDY6MTMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkwODUyIGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDE3OjA2OjEzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTA4NDAgaW52b2tlZCBieSB1aWQgOTkpOyAxMSBTZXAgMjAxNyAxNzowNjoxMyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMTEgU2VwIDIwMTcgMTc6MDY6MTMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBGMzA2QTFBNjI0OAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMTc6MDY6MTIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjM4MgpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjM4MiB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREFURV9JTl9QQVNUXzA2XzEyPTEuMTAzLCBSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEdMTXQ2NE1rNUVCeSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMTEgU2VwIDIwMTcgMTc6MDY6MTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbW91dC5nbXgubmV0IChtb3V0LmdteC5uZXQgWzIxMi4yMjcuMTcuMjBdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgOTRDNDk2MTAyOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMTc6MDY6MTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gS2FybC1IZWluenMtTUJQLmZyaXR6LmJveCAoWzk0LjIyMy4xODAuMTk3XSkgYnkgbWFpbC5nbXguY29tCiAobXJnbXgxMDMgWzIxMi4yMjcuMTcuMTY4XSkgd2l0aCBFU01UUFNBIChOZW1lc2lzKSBpZAogME1SR3ZULTFlMTNWODNLd2gtMDBVWU5rIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3CiAxOTowNjowOSArMDIwMApSZXBseS1UbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBKTGluayBQbHVnaW4gdmVyc2lvbiAzLjAuMC1hbHBoYS0xCiAoRmlyc3QgUHVibGljIFJlbGVhc2UpCkZyb206IEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KUmVmZXJlbmNlczogPDc2ZjgzNDMxLWU4YzctZjZjNS0wOGY2LWNkMjVkNGU1YTRjMkBnbXguZGU+Ck1lc3NhZ2UtSUQ6IDw3ZTE2OWRkNi03NTExLWYyNGItMzFjNS1iNmU0OTQ3NjUzZThAZ214LmRlPgpEYXRlOiBNb24sIDExIFNlcCAyMDE3IDA4OjAyOjQyICswMjAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwLjExOyBydjo1Mi4wKQogR2Vja28vMjAxMDAxMDEgVGh1bmRlcmJpcmQvNTIuMi4xCk1JTUUtVmVyc2lvbjogMS4wCkluLVJlcGx5LVRvOiA8NzZmODM0MzEtZThjNy1mNmM1LTA4ZjYtY2QyNWQ0ZTVhNGMyQGdteC5kZT4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLUdCCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6OHQycVovU29XL3RPRjJtSUVZRWhhWFQ5VHR5ckNNWkJyREtHNzhZeVc1dkgwT0QzWnc1CiBacmwzMEdjYjlNVFhRU2NaK0tGWFVXakdCSWQxZytLNEhXNXRWNEJLNlV6T2o3WnBnWG9ITlRFWU8zdXpmRUg5akZaM2c3UQogem1MOEplVVMzMGhhcVl2REVNVEgvMVBGWE5sNkNXS3lhTWNVcDg0V0dzUHZ5enhVSG9HTC9LR1JFZ2pyWHlkSmdocy9zUU8KIFEzWXVmaHNpc041WkJ2ZDZZUnMrUT09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6VUo2SE90bTFTLzg9OklPUWdnMXZIc2lhS1kvRGxoTUR5N0gKIGVWelNzbU1DT1NUNWxkZTZGelg2aUJuYkVkaFpmVStCQ1kzajlBY3hmUWtxSTVjL1VqL0lqQS9hbmlYYzFsRC9qa1ZNQTFrOUkKIGQzWFlxK3FiL2lUTFVmU0dZV0EraWFmSDNMbElibHBUbmJhVmt6QS9ESjhwcHBzMDEvRnBBKzZyQXN1VTEzWGpIbXpmamRwVmMKIFR6YTQ1RHUrUDZTZHU1ZWFZemtMWGtyZU5jQWxqeG4yM016UmM0MXplTTZVV0lIak1mWVJEaEdCWWNIR01EU2g2TU44MU5FRzYKIE55NU9tVDJKNVJ1UFRyUFFJUm8rTDNTSFlTa0VQR3Q3VGEzNis1SGhYVTVmTXRMenkxaWxaaTFFMi9GYlpXeUVPUmtBY245Si8KIGFUWHpzUnFhckNqN2NHZXZCRVlzcWFJWHRUZGN2dVp2ZkdUZi9nQVJjYUFyMXNFaURHTWFyK3o5MHFTSVFDUFltU2NPdE1Ncy8KIGJLOVpYbUZCUHRIQTlPc0U4dDlQaGVHUTdyYmxWR2p2dXJ5T1RQOTI5eUx0UjV6M1d6ZDFmNS9uaURtdVhtRCtxU1BCZm9oWTEKIFFsbkdJbUk5MXhQSDFvOTRoZG1mTTRtTWVvUGRNV2g1VXA2b002ZWwydk1OOEVUT0wzRmR4VW5wZUJQSlU2R1ZRY1pyWnZDNE0KIGhUVlNjRlNyUVZab3kzKzR4MGNQeXF5aDdZZ1YvWjJtcVNNZ29QdlhSNkkzT1ByVGoxb2pyOVlMMUZHWVQ1c3FpdmlnRWtpSWkKIGhTV3p1a295OVpnNDM2STdsU1M0aHdKa21WdS96SWdNZlorbGVPODI5OHdFd1k1RWpkLy85U2FqZGRLc3B5enhYR002QU9FMjcKIDVOQk5GVHFGbTBJT1JlUlQ2T1ZXZ1h0RExiMjhCeCt5QnRPVnp5b3owZFNUakx3bW9odkRLRGNhZGc4SmRPeEs2V1BXL3hSYjEKIGs2dW9PRzc2cUpXV1JtMFpsUXlrS1B3emNUZHpTOVJ2MHdBaDEwZDByT09uVnRrOU84UWlHWERuMndoVXRCalJMdHFJcVlnSTgKIEMxU21RSFE0Nk9sMEJncEMyU0tzYk5PMVJ5WGlvRUZCaXdMakplaXBvL0E0TWlqc2tjPQoKSGksCgpoZXJlIGlzIG15ICsxCgpLaW5kIHJlZ2FyZHMKS2FybCBIZWlueiBNYXJiYWlzZQoKT24gMDkvMDkvMTcgMTY6MTksIEthcmwgSGVpbnogTWFyYmFpc2Ugd3JvdGU6Cj4gSGksCj4gCj4gdGhpcyBpcyB0aGUgVk9URSBmb3IgdGhlIGZpcnN0IHB1YmxpYyByZWxlYXNlIGZvciBNYXZlbiBKTGluayBQbHVnaW4uLi4KPiAKPiBXZSBzb2x2ZWQgMSBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMyMTQzMiZ2ZXJzaW9uPTEyMzQxMzYxIAo+IAo+IAo+IFRoZXJlIGFyZSBjdXJyZW50bHkgbm8gaXNzdWVzIGxlZnQgaW4gSklSQS4KPiAKPiBJZiB5b3UgaGF2ZSBhbnkgaXNzdWUgdG8gcmVwb3J0IHBsZWFzZSBvcGVuIGFuIGlzc3VlIGluIEpJUkEKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvcHJvamVjdHMvTUpMSU5LCj4gCj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjIvCj4gCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2Mi9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4tamxpbmstcGx1Z2luLzMuMC4wLWFscGhhLTEvbWF2ZW4tamxpbmstcGx1Z2luLTMuMC4wLWFscGhhLTEtc291cmNlLXJlbGVhc2UuemlwIAo+IAo+IAo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IG1hdmVuLWpsaW5rLXBsdWdpbi0zLjAuMC1hbHBoYS0xLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOiAKPiBjMjFlZTgwODVhMGVkMjlhZGVlMGU4MGQ0N2RlMGM4NTFmOTZjZDU0Cj4gCj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWpsaW5rLXBsdWdpbi1MQVRFU1QvCj4gCj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPiAKPiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+IAo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQo+IAo+IEtpbmQgcmVnYXJkcwo+IEthcmwgSGVpbnogTWFyYmFpc2UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyMzkxNS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgU2VwICA5IDEzOjUyOjMwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzkxNS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFRDFBNjE5NDk4Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDkgU2VwIDIwMTcgMTM6NTI6MzAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1NjQwMCBpbnZva2VkIGJ5IHVpZCA1MDApOyA5IFNlcCAyMDE3IDEzOjUyOjMwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NjMwNiBpbnZva2VkIGJ5IHVpZCA1MDApOyA5IFNlcCAyMDE3IDEzOjUyOjI5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTYyOTUgaW52b2tlZCBieSB1aWQgOTkpOyA5IFNlcCAyMDE3IDEzOjUyOjI4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwOSBTZXAgMjAxNyAxMzo1MjoyOCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDcxRDJFMUE1QUJECglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgOSBTZXAgMjAxNyAxMzo1MjoyOCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0zLjAwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMy4wMDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W1JDVkRfSU5fRE5TV0xfTE9XPS0wLjcsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgWEp6VEFvRkFNVUUzIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAgOSBTZXAgMjAxNyAxMzo1MjoyNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNS4xOF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA5OTdCRjVGNkQzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgOSBTZXAgMjAxNyAxMzo1MjoyNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBLYXJsLUhlaW56cy1NYWNCb29rLVByby5sb2NhbCAoWzIxNy4yNDcuNC43XSkgYnkgbWFpbC5nbXguY29tCiAobXJnbXgwMDIgWzIxMi4yMjcuMTcuMTkwXSkgd2l0aCBFU01UUFNBIChOZW1lc2lzKSBpZAogME0zUlpJLTFkWXNKZDBKSU8tMDBxeEhnIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDA5IFNlcCAyMDE3CiAxNTo1MjoyNSArMDIwMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86IGluZm9Ac29lYmVzLmRlCkZyb206IEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPgpTdWJqZWN0OiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gSk1vZCBQbHVnaW4gdmVyc2lvbiAzLjAuMC1hbHBoYS0xIChGaXJzdAogUHVibGljIFJlbGVhc2UpCk1lc3NhZ2UtSUQ6IDw3ZjYyNzc2MS0yNjJmLWVkMGQtMTQzMi1lMmYzMDVhYWJjN2FAZ214LmRlPgpEYXRlOiBTYXQsIDkgU2VwIDIwMTcgMTU6NTI6MjQgKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi4yLjEKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLUdCCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6QmRXTjdZakJNcXM3eHZzUzVIeWowQ2F2dVNiNVRyQnlGQmZSNEdwZTNKWEtKdklQS2RjCiBQUWpjdzhCVXVOeENySll6K0dya3VKMTVLNVhIOGhkMTV6R3d1K2xCUVpqNFNXRVlla2xzV1VhVloxN2I5SnY2emVlaFVhNQogdmdWajUvMW5Md040RVVFVE5YNkY0Q1hUQ0MxSGtaZ1lsdzJmTXJMZnpCSnZjZ3NzVkQ4MDVJQm1QMkxBMkZJRWU1VldHQUsKIDBQSmxWK3RLSDN6dDQ0TTJhMWx5Zz09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6Y1JpRWNINnJsWTQ9Olg0bXo0aHRvYkV1Nm1DdGZLWVp4ZFMKIGkwSGhvbnh6NXFrYWpkSXUvUEx6bFhFS0VVeDRkZXBjK1pNenFueXRoT3YxRzdpZm1IbEs3amN1RnZaT1hVUDJ3clBtRk95WDgKIFpQZnUrWE1UOEJ4Z0FEd3psVGJ5N2o2ZUN5L01zbTZEd3F3QnFabEs2VGNtM2FJMTJ1RjZuT0VSV2JnSVVjUHpGZUJSS1BXR04KIDJ6eDhzdS9EZ3E4RGFhRW5nQnJwaHduOURBRXVpaGFNWjhQRE1KMTlFUmFWR3Zsc2tLbUExWkZqaUxFNTBWWHhwSmV0K2RPNnMKIE1rRW40cDlVUmRwd01pY1hMQ05ITnkzdHNiUEpIZkFCK3pILzQxQ21zdmhJbUFla0tRSDgwQjFENU1sT1NlYkp5S3JnSmJsTEoKIDBMTG8rdHVJem5SejJFa3F1TzVxbndVeDkvUVVTb0U3R2tjWVM0ZU1BM2w5WjJzVE00TVZKbWxOWFNPVVdPQmM1KzFMZFd1QUsKIFgxSmZyemNOa0VXZ1p1RWtoT1BDSHEyWElCTHhOL1NtVEtZbzhhL2VUWkZkYzM3Z0M4NG8rdlUwNWVSby9hZW1lRXhkYTdGQ1UKIGFPNUJnMzQwbys3OW9vTGREQy9NWkpVWFc4d0FiaFJOcytlV0pYVUlKK1JqUE5EU2VHTHhhTEtER1hDU1U4WlVtcDlKVmR2czkKIGdxaXo4NCtDQlpjcFZPd0lEdXV1MDRsaFprakN3cWhIbWhzclFuaTdydHU5MDlaSk1LK0tONHNIZk1TWC9PZWg1ZVNzNzZsUFUKICtmYnM3bUQvTnY2YzAyTGVHa2lvK2F1SzZiQWNvTmlneHpvTTdEZFlVazZJYXFzTTU0OUpvZU5lNkFRRXYrRzVtSkV1QVU1bDgKIFB6bVQyZk9pVFB6KzRhR3FhUE96czlucndjeGhFMi9rTDlFSGlEamRTTGtWTHlvOGg5RGd6Unc3eWZMLzl6d0l3bEN0Vk5XdXYKIEFqU25HelNac1BIZVRjUmlIYTV6N0pueHpteVBJZytkdmw0RDd3aFB5ayt4QXRqM2NDT3RsbXIzMmFhcWVkTTRtK0VuWGt6RG8KIGpXeUI4aWhuN3l5MmlYL3FsZ0hJWWhFazhwVUhXbVZUR1dpUlRWR3AxK0F0TDRwTVh3PQoKSGksCgp0aGlzIGlzIHRoZSBWT1RFIGZvciB0aGUgZmlyc3QgcHVibGljIHJlbGVhc2UgZm9yIE1hdmVuIEpNb2QgUGx1Z2luLi4uCgpXZSBzb2x2ZWQgMSBpc3N1ZXM6Cmh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZWN0SWQ9MTIzMjE0MzMmdmVyc2lvbj0xMjM0MTM2MwoKVGhlcmUgYXJlIGN1cnJlbnRseSBubyBpc3N1ZXMgbGVmdCBpbiBKSVJBLgoKSWYgeW91IGhhdmUgYW55IGlzc3VlIHRvIHJlcG9ydCBwbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBKSVJBCmh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9wcm9qZWN0cy9NSk1PRAoKU3RhZ2luZyByZXBvOgpodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzYxLwoKaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2MS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4tam1vZC1wbHVnaW4vMy4wLjAtYWxwaGEtMS9tYXZlbi1qbW9kLXBsdWdpbi0zLjAuMC1hbHBoYS0xLXNvdXJjZS1yZWxlYXNlLnppcAoKU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6CltOQU1FLU9GXS1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogODAwMjc2N2Y2Y2ZmYzdiYmJjZjc2YThlN2YwYzE3OTlhNDJjYWY5MwoKU3RhZ2luZyBzaXRlOgpodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1qbW9kLXBsdWdpbi1MQVRFU1QvCgpHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKClZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCgpbIF0gKzEKWyBdICswClsgXSAtMQoKS2luZCByZWdhcmRzCkthcmwgSGVpbnogTWFyYmFpc2UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDY5MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgRGVjICAxIDA4OjIyOjEyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDY5MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBEMjk4QjEwMjNGCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgIDEgRGVjIDIwMTcgMDg6MjI6MTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4NDM1NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxIERlYyAyMDE3IDA4OjIyOjEyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NDI0OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxIERlYyAyMDE3IDA4OjIyOjEyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODQyMzcgaW52b2tlZCBieSB1aWQgOTkpOyAxIERlYyAyMDE3IDA4OjIyOjEyIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAwMSBEZWMgMjAxNyAwODoyMjoxMiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDFGNDQxMUEwOTc2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAgMSBEZWMgMjAxNyAwODoyMjoxMSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuNDk5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuNDk5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwgS0FNX01YND0xLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSUF9NQVRDSEVTX1JDVkQ9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDI2X2s0STZwdlF6eCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCUZyaSwgIDEgRGVjIDIwMTcgMDg6MjI6MDkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbG54NTAzLmhyei50dS1kYXJtc3RhZHQuZGUgKG1haWwtcmVsYXkxNS5ocnoudHUtZGFybXN0YWR0LmRlIFsxMzAuODMuMTU2LjIzOV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAxRDFGRDVGMjQyCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAgMSBEZWMgMjAxNyAwODoyMjowOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBNWDAxLnJiZy5pbmZvcm1hdGlrLnR1LWRhcm1zdGFkdC5kZSAobXgwMS5yYmcuaW5mb3JtYXRpay50dS1kYXJtc3RhZHQuZGUgWzEzMC44My4xNjAuNDNdKQoJYnkgbG54NTAzLmhyei50dS1kYXJtc3RhZHQuZGUgKDguMTQuNC84LjE0LjQvSFJaL1BNWCkgd2l0aCBFU01UUCBpZCB2QjE4TG5GVjAxNDYyMAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMSBEZWMgMjAxNyAwOToyMTo1MyArMDEwMAoJKGVudmVsb3BlLWZyb20gc2V3ZUBzdC5pbmZvcm1hdGlrLnR1LWRhcm1zdGFkdC5kZSkKUmVjZWl2ZWQ6IGZyb20gWzE5Mi4xNjguMi4xMDFdIChwNURGMzlEODYuZGlwMC50LWlwY29ubmVjdC5kZSBbOTMuMjQzLjE1Ny4xMzRdKQoJKHVzaW5nIFRMU3YxLjIgd2l0aCBjaXBoZXIgRUNESEUtUlNBLUFFUzI1Ni1HQ00tU0hBMzg0ICgyNTYvMjU2IGJpdHMpKQoJKE5vIGNsaWVudCBjZXJ0aWZpY2F0ZSByZXF1ZXN0ZWQpCgkoQXV0aGVudGljYXRlZCBzZW5kZXI6IHNld2UpCglieSBNWDAxLnJiZy5pbmZvcm1hdGlrLnR1LWRhcm1zdGFkdC5kZSAoUG9zdGZpeCkgd2l0aCBFU01UUFNBIGlkIDhGRUU2RkU5NQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgIDEgRGVjIDIwMTcgMDk6MTk6MTQgKzAxMDAgKENFVCkKU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIE1hdmVuIEluZGV4ZXIgNi4wLjAKVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxDQVBMcFJRTDY9M3FrekFlPUZnUnJlaGVHeGZraXlkVXFCZHIteURDVm9HZVpUenJxYkFAbWFpbC5nbWFpbC5jb20+CiA8Q0FQb3lCcVRvLWFucGhMK0x5SFY2YmtHTlVNZDF3MjdGS2syWlBuX2ZkMXY3ZnQ5UXR3QG1haWwuZ21haWwuY29tPgogPENBTWtfQmVnQ0dTa3JLWmF0RHNkX0Zhcll3ZmQtbVpYOEFxcURHUi1NekoxNUdrZCtxd0BtYWlsLmdtYWlsLmNvbT4KIDxDQVBveUJxUTd3V0RSUlY1OWNpbnV2VWljblVMbXRqcTVyQ2lUektZV2dYWUhHVz1HaVFAbWFpbC5nbWFpbC5jb20+CkZyb206IEFuZHJlYXMgU2V3ZSA8c2V3ZUBzdC5pbmZvcm1hdGlrLnR1LWRhcm1zdGFkdC5kZT4KT3BlbnBncDogcHJlZmVyZW5jZT1zaWduZW5jcnlwdApPcmdhbml6YXRpb246IFNvZnR3YXJlIFRlY2hub2xvZ3kgR3JvdXAsIFRVIERhcm1zdGFkdApNZXNzYWdlLUlEOiA8ODFiNDliYWEtOGQ0My1jMDRkLThmMDctMDVhMGQwNDgxY2JhQHN0LmluZm9ybWF0aWsudHUtZGFybXN0YWR0LmRlPgpEYXRlOiBGcmksIDEgRGVjIDIwMTcgMDk6MTk6MDIgKzAxMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTA7IHJ2OjU4LjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81OC4wCk1JTUUtVmVyc2lvbjogMS4wCkluLVJlcGx5LVRvOiA8Q0FQb3lCcVE3d1dEUlJWNTljaW51dlVpY25VTG10anE1ckNpVHpLWVdnWFlIR1c9R2lRQG1haWwuZ21haWwuY29tPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9zaWduZWQ7IG1pY2FsZz1wZ3Atc2hhNTEyOwogcHJvdG9jb2w9ImFwcGxpY2F0aW9uL3BncC1zaWduYXR1cmUiOwogYm91bmRhcnk9InFjWDZvZVVySjlWdFhxNkdsbW1zWGNtY0hYRU1zSTlQRCIKWC1QTVgtVFU6IHNlZW4gdjEuMiBieSA1LjYuMS4yMDY1NDM5LCBBbnRpc3BhbS1FbmdpbmU6IDIuNy4yLjM3NjM3OSwgQW50aXNwYW0tRGF0YTogMjAxNy4xMi4xLjUxODE2ClgtUE1YLVJFTEFZOiBvdXRnb2luZwoKLS1xY1g2b2VVcko5VnRYcTZHbG1tc1hjbWNIWEVNc0k5UEQKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSI1dzNhYkx0QzlldnIwTVd3TWJDb0V4OWhxRXhBdGdvRTQiOwogcHJvdGVjdGVkLWhlYWRlcnM9InYxIgpGcm9tOiBBbmRyZWFzIFNld2UgPHNld2VAc3QuaW5mb3JtYXRpay50dS1kYXJtc3RhZHQuZGU+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8ODFiNDliYWEtOGQ0My1jMDRkLThmMDctMDVhMGQwNDgxY2JhQHN0LmluZm9ybWF0aWsudHUtZGFybXN0YWR0LmRlPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgTWF2ZW4gSW5kZXhlciA2LjAuMApSZWZlcmVuY2VzOiA8Q0FQTHBSUUw2PTNxa3pBZT1GZ1JyZWhlR3hma2l5ZFVxQmRyLXlEQ1ZvR2VaVHpycWJBQG1haWwuZ21haWwuY29tPgogPENBUG95QnFUby1hbnBoTCtMeUhWNmJrR05VTWQxdzI3RktrMlpQbl9mZDF2N2Z0OVF0d0BtYWlsLmdtYWlsLmNvbT4KIDxDQU1rX0JlZ0NHU2tyS1phdERzZF9GYXJZd2ZkLW1aWDhBcXFER1ItTXpKMTVHa2QrcXdAbWFpbC5nbWFpbC5jb20+CiA8Q0FQb3lCcVE3d1dEUlJWNTljaW51dlVpY25VTG10anE1ckNpVHpLWVdnWFlIR1c9R2lRQG1haWwuZ21haWwuY29tPgpJbi1SZXBseS1UbzogPENBUG95QnFRN3dXRFJSVjU5Y2ludXZVaWNuVUxtdGpxNXJDaVR6S1lXZ1hZSEdXPUdpUUBtYWlsLmdtYWlsLmNvbT4KCi0tNXczYWJMdEM5ZXZyME1Xd01iQ29FeDlocUV4QXRnb0U0CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOApDb250ZW50LUxhbmd1YWdlOiBlbi1VUwpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPbGl2aWVyIExhbXkgd3JvdGU6Cj4gcHJvYmFibHkgbm8gaXNzdWVzIGZvciBzdXJlLgo+IEkganVzdCBkb24ndCBrbm93IGlmIHdlIHdpbGwgYmUgYWJsZSB0byBzdGlsbCBkb3dubG9hZCB0aGUgaW5kZXggZnJvbQo+IGNlbnRyYWwgYW5kIHVzZSBpdCB3aXRoIHRoaXMgbmV3IHZlcnNpb24KPiBUQkggSSBoYXZlbid0IGRvbmUgYW55IHRlc3RpbmcgZXRjLi4uLiBzbyBpdCdzIGp1c3QgcXVlc3Rpb25zIDotKQoKRllJLCBteSB0ZXN0aW5nIGluY2x1ZGVkIGRvd25sb2FkaW5nIHRoZSBpbmRleCBmcm9tIENlbnRyYWwgKHRvIGJlCnByZWNpc2U6IGl0cyB1ay5tYXZlbi5vcmcgbWlycm9yKSB3aXRoIHRoZSBzdGFnZWQgSW5kZXhlciA2LjAuMC4gU28sIHRoZQpjdXJyZW50IGNvZGUgaXRzIGFibGUgdG8gY29uc3VtZSB0aGUgaW5kZXggY3VycmVudGx5IHByb2R1Y2VkIGZvcgpDZW50cmFsLCBwcmVzdW1hYmx5IGJ5IEluZGV4ZXIgNS54LgoKSG9wZSB0aGF0IGhlbHBzLgoKQmVzdCB3aXNoZXMsCgpBbmRyZWFzCgoKLS01dzNhYkx0QzlldnIwTVd3TWJDb0V4OWhxRXhBdGdvRTQtLQoKLS1xY1g2b2VVcko5VnRYcTZHbG1tc1hjbWNIWEVNc0k5UEQKQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlOyBuYW1lPSJzaWduYXR1cmUuYXNjIgpDb250ZW50LURlc2NyaXB0aW9uOiBPcGVuUEdQIGRpZ2l0YWwgc2lnbmF0dXJlCkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSJzaWduYXR1cmUuYXNjIgoKLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KVmVyc2lvbjogR251UEcgdjIKCmlRSWNCQUVCQ2dBR0JRSmFJUkNCQUFvSkVDS2hkbytudVB5VkxQNFFBTHV0QmphYzNPKzZBeGlrK2k2c1I3NWQKL0xOaWlDbTFKUDN0b1QycE1GTytRaFd1VmhDNTdrdWE3bm5MaXk2QUpiU1g3UWpuZGZnQ1pDRW5uMDNrcWk5ZwpCZHBRRVU4VTZyYmpFdzdPNnlaSHlEK0luSWptYmcvVWhIV1p0cWN4RTh5ejUxUFFGTnpPQWRtMnpSbWc5SEtqCkdwQUM5VWtmMU9DMTN1WGE4RENCZ1AzSVptNDFITEk2dzlicEF1bE9XTFYwcm1mUXNmbVo4K1NlRy9DcGFRQ1EKRk9PQWE3SmYzcWFKM0pLTHpEaDlvaE9rcmQrNTNJMk5tcVB4YTgyeWRuSWZNbGkyTTV2YXdGR0RvQ0JINzlBZwoxekVkRC8vcDAybU5vb0NGTXNhcDNDZ3pwejRlRVQ5Z3Y1ZjhlOVdDSWRkU3dtWHVYR3JueHlHWDZrTlRJZCtRCjdXampQWkE1U2lIb1N4MXpxa3ZJVkJXQTg0cU9KRVJFWkpCWlRwRUdna0JsZ3FUOU85K1ZMTE96ZU1ydUxzdUYKdlRUTzFacTRmenFjeTJveWtJSzd5OFJrK1p5YUlvR0U2THIrODZOV0ZjUCtlNXZWek9sOU9helJ6SzhnQ25lMApKaUFkZE9WOW1nZ2ZZbWl0b25IdS8zV1gvRnZhUjdPRGdzQzI4b3p4MkZTWTVvOTJXRkZrQVFUVUlFTTAxNWI3CnA5WVpFN1lXbjIwaXJCZ25jK1ZUdEh4dzIxNlZBZ21wZGI0cTNJSGpjVmlLMTFWWXBhNEROWkVQZUtCcDZ6ZVQKdG81d2tRN0QzUm1ZZGR1cHYySkx6U2ptdytGeERwV3FKNi8rZ2hoNHJUSW9wTTFYYXZlakJYbUVpdXpqMHA3ZQpyek5vekdFNTJNV0JDNmZRUTlmNgo9MGNOSwotLS0tLUVORCBQR1AgU0lHTkFUVVJFLS0tLS0KCi0tcWNYNm9lVXJKOVZ0WHE2R2xtbXNYY21jSFhFTXNJOVBELS0KCkZyb20gZGV2LXJldHVybi0xMjQwODAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIFNlcCAyMCAxNjowNjoxNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwODAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRjE0RjMxMEUzQgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDIwIFNlcCAyMDE3IDE2OjA2OjE1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzc3OTAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgU2VwIDIwMTcgMTY6MDY6MTUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM3NjgwIGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIFNlcCAyMDE3IDE2OjA2OjE1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzc2NjkgaW52b2tlZCBieSB1aWQgOTkpOyAyMCBTZXAgMjAxNyAxNjowNjoxNSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMjAgU2VwIDIwMTcgMTY6MDY6MTUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBEOTYxQzFBM0QzMwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjAgU2VwIDIwMTcgMTY6MDY6MTQgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMy4wMDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTMuMDAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTE9XPS0wLjcsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgbFVSelVsLVd1MlNFIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJV2VkLCAyMCBTZXAgMjAxNyAxNjowNjoxMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNy4yMl0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBGMzczRjVGNUE1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyMCBTZXAgMjAxNyAxNjowNjoxMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBbMTcyLjE2LjEzNy4yNF0gKFs0Ni4xODMuMTAzLjhdKSBieSBtYWlsLmdteC5jb20gKG1yZ214MTAyCiBbMjEyLjIyNy4xNy4xNjhdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkIDBMcklQby0xZEZ5dDIwSE5NLTAxMzVXeDsgV2VkLCAyMAogU2VwIDIwMTcgMTg6MDY6MDkgKzAyMDAKUmVwbHktVG86IGluZm9Ac29lYmVzLmRlClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gSk1vZCBQbHVnaW4gdmVyc2lvbiAzLjAuMC1hbHBoYS0xCiAoRmlyc3QgUHVibGljIFJlbGVhc2UpIFRha2UgMwpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sCiA9P1VURi04P1E/SGVydj1jMz1hOV9CT1VURU1ZPz0gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KUmVmZXJlbmNlczogPDcwYzBiMWE4LWZlZDYtZjRiZi0xZWQzLTY4NjI0OTMzNjkzYkBnbXguZGU+CiA8MjE4Mjc0ODYuY2RzUkxBRnNwa0BnaWdhPiA8NTgxNzI3OC5OSUN2UXZpY0V5QGdpZ2E+CkZyb206IEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPgpNZXNzYWdlLUlEOiA8ODM3YTcwYjMtZjg2OS1jY2M2LTQwZGEtZjE2MzA4OGU4MmQ5QGdteC5kZT4KRGF0ZTogV2VkLCAyMCBTZXAgMjAxNyAxODowNjowMyArMDIwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMTsgcnY6NTIuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzUyLjMuMApNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPDU4MTcyNzguTklDdlF2aWNFeUBnaWdhPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDpFL01weFJtWEZPMXluTk5CYVlTQWhXcU9KVnNYYksrSTk1OEhLVDBzT0RFbUtuSUxtNGMKIFU5SW9kak5jbVJGYkVKQUYxcWljZHNtZVdiWFY2elFDWWdjdEpxKzZ0Q3UzM2lzNnFLK1RuSHcrY2piQjhrejUyR0ZvVGZzCiBjSGZjQ1Fsc1JwcFRyYzZsUGFJT0NkSlIrdzgrZGlRZzhteWd4ZFpWK2MxZnlLVlR2YzN1MlB2ODVKWXdybFVkOWZEZWcvUAogL0lrQ1BWeTBXQjJ3UVZnWFAwYm5BPT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDp5SjltUkY1RG14TT06d2RIUVRFQkN0a1dOUEY3UUQ4a01QYgogUFI5NTZiSS9EdHk4dXdZMldFL1M3b0pFWXNiZ0djZjB6NW9ELzhlV2s4dDFJbjhYeC91TXpJZmV0aUxFMk9DaW5vNTJRcmoxNwogZmViYVBWVUxLcUpLWVpIZHAvQ1cyZ056RlArckE5cWZkRWFDTVhyanVjTDhKdHhEZFRTM1FYZFFhN1EraWE4TUt2dS96blVmdQogeEVlbkE2emxWSi9QWU1UdEUyYWhCRVIxaTlPbm5uSGhFazBISFVzY2NvcndMenYrUmZ5KzUyUmhHZE1RWG1Ma3ZRQkFkbWZGRwogWWp4cG02NlJqTjFqK0xYWkwrcUV2Q0xNblF0QXlyVDM3SzVFZkcrU0kxdWdQUjBBdEtmSFhaRmxUMjRoT0w5ZUsrZTdsQ1I2NQogaHRyLzFFRkdSbnRnOG9tRXRMaGp3ME5YNTJjZ3VJTmxaVUtoZnRNcU9iVHRBaHdpUUZ2OFluNHp4NnNBdnRVbmZabDZDUUFZNQogeEcvSXlNNlRkUHRtSUVIRVlGRm5nTEtVaHNrSEY0dHMwamlYYVpQTC9DaGFHQ0prNWV1TWJyTXhlSWpsMUtoU0RFcURCa2tJbwogV3F4ZEVxcHZQQ3F4T0FicGhYeEt1NDBDRTRWU2ovSlE3RCtJRUtnVGJnN3BhQjZaTStXT1NrejRtNDNFU21xaDlXSWF3Qlp2QQogYVJjTDdwb0d0UlFWOWxaWUUyWnhTanJQZkFtaGdCdXNLRnNuQjFnUmRRK0tHNm1MNWxQeG5ic0J2SnlxRkdvbW5wTHg4ZS90NQogWmt5bzJYVVVsZHp0VEVQYkxjL1ZEeEU4S1FsblJSMDgwSFdNRlBMY2ZTR1JyYnIzU1k5NUljbTV5dlpPblIybk1FSXdqZzA4cQogbjY4YUNpL0xPU1RlLzYyNDlGenV2MVFQLzdUeFhncFk4am5uSTMxcS80ZXJ1aWJsQzRTUjFUL2N6ay9UcXU3SE1DOFc1TTJjUwogYTRnOStrOS9LdUJtUVF1YTFweExZdlJlYWp2d3A4L09XNWRUenNDcEd6cDg0RjdwQ3QwUEhZVE44dmpFWk1MMWZMK08rczdIegogRlZCVTJlT2hMeHlrcHZXYVdMZ1BTWFFEUmYxSGdpZGtBbFg2QWplcmUxcjBYc2NWUlNzNWdFR2d4VnBzMkc1S2o2RWFmN0MKCkhpIEhlcnbDqSwKCk9uIDIwLzA5LzE3IDA4OjA3LCBIZXJ2w6kgQk9VVEVNWSB3cm90ZToKPiBzb3JyeSwgdGhlIGZhaWx1cmUgd2FzIHdpdGggYW4gb2xkIGpkayAxLjkrMTM0Cj4gd2l0aCBsYXRlc3QgamRrIDEuOSsxODEsIGV2ZXJ5dGhpbmcgaXMgb2sKPiAKPiB0aGVuIGhlcmUgaXMgbXkgKzEKPiAKCj4gbm90aWNlIG9uZSBXQVJOSU5HOgo+IFtJTkZPXSBCdWlsZGluZzogbm9uLWRlZmF1bHQtY29uZmlnLWhlYWRlcmZpbGVzL3BvbS54bWwKPiBbSU5GT10gcnVuIHBvc3QtYnVpbGQgc2NyaXB0IHZlcmlmeS5ncm9vdnkKPiBXQVJOSU5HOiBBbiBpbGxlZ2FsIHJlZmxlY3RpdmUgYWNjZXNzIG9wZXJhdGlvbiBoYXMgb2NjdXJyZWQKPiBXQVJOSU5HOiBJbGxlZ2FsIHJlZmxlY3RpdmUgYWNjZXNzIGJ5IG9yZy5jb2RlaGF1cy5ncm9vdnkucmVmbGVjdGlvbi5DYWNoZWRDbGFzcwo+IChmaWxlOi8ubTIvcmVwb3NpdG9yeS9vcmcvY29kZWhhdXMvZ3Jvb3Z5L2dyb292eS1hbGwvMi40LjgvZ3Jvb3Z5LQo+IGFsbC0yLjQuOC5qYXIpIHRvIG1ldGhvZCBqYXZhLmxhbmcuT2JqZWN0LmZpbmFsaXplKCkKPiBXQVJOSU5HOiBQbGVhc2UgY29uc2lkZXIgcmVwb3J0aW5nIHRoaXMgdG8gdGhlIG1haW50YWluZXJzIG9mCj4gb3JnLmNvZGVoYXVzLmdyb292eS5yZWZsZWN0aW9uLkNhY2hlZENsYXNzCj4gV0FSTklORzogVXNlIC0taWxsZWdhbC1hY2Nlc3M9d2FybiB0byBlbmFibGUgd2FybmluZ3Mgb2YgZnVydGhlciBpbGxlZ2FsCj4gcmVmbGVjdGl2ZSBhY2Nlc3Mgb3BlcmF0aW9ucwo+IFdBUk5JTkc6IEFsbCBpbGxlZ2FsIGFjY2VzcyBvcGVyYXRpb25zIHdpbGwgYmUgZGVuaWVkIGluIGEgZnV0dXJlIHJlbGVhc2UKPiBbSU5GT10gICAgICAgICAgIG5vbi1kZWZhdWx0LWNvbmZpZy1oZWFkZXJmaWxlcy9wb20ueG1sIC4uLi4uLi4uLi4uIFNVQ0NFU1MgKDIuNAo+IHMpCj4gCgpDcmVhdGVkIGFuIGlzc3VlIGZvciB0aGF0OgoKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NSk1PRC02CgpUaGFua3MgZm9yIHRlc3RpbmcuLi4KCktpbmQgcmVnYXJkcwpLYXJsIEhlaW56IE1hcmJhaXNlCgoKPiBSZWdhcmRzLAo+IAo+IEhlcnbDqQo+IAo+IExlIG1lcmNyZWRpIDIwIHNlcHRlbWJyZSAyMDE3LCAwNzo1MjozOSBDRVNUIEhlcnbDqSBCT1VURU1ZIGEgw6ljcml0IDoKPj4gdGVzdGVkICJtdm4gdmVyaWZ5IiBhbmQgZ290IGZhaWx1cmUgZm9yIGV2ZXJ5IElUOgo+Pgo+PiBDYXVzZWQgYnk6IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLlBsdWdpbkV4ZWN1dGlvbkV4Y2VwdGlvbjogRXhlY3V0aW9uCj4+IGRlZmF1bHQtY3JlYXRlIG9mIGdvYWwgb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zOm1hdmVuLWptb2QtcGx1Z2luOjMuMC4wLQo+PiBhbHBoYS0xOmNyZWF0ZSBmYWlsZWQ6IDkKPj4gCWF0Cj4+IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLkRlZmF1bHRCdWlsZFBsdWdpbk1hbmFnZXIuZXhlY3V0ZU1vam8oRGVmYXVsdEJ1aWxkUGwKPj4gdWdpbk1hbmFnZXIuamF2YTogMTQ4KQo+PiAJYXQKPj4gb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuaW50ZXJuYWwuTW9qb0V4ZWN1dG9yLmV4ZWN1dGUoTW9qb0V4ZWN1dG9yLmphdmE6Cj4+IDIwOCkKPj4gCS4uLiAyMCBtb3JlCj4+IENhdXNlZCBieTogamF2YS5sYW5nLkFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbjogOQo+PiAJYXQgb3JnLm9iamVjdHdlYi5hc20uQ2xhc3NSZWFkZXIucmVhZFVURjgoVW5rbm93biBTb3VyY2UpCj4+IAlhdCBvcmcub2JqZWN0d2ViLmFzbS5DbGFzc1JlYWRlci5hKFVua25vd24gU291cmNlKQo+PiAJYXQgb3JnLm9iamVjdHdlYi5hc20uQ2xhc3NSZWFkZXIucmVhZE1vZHVsZShVbmtub3duIFNvdXJjZSkKPj4gCWF0IG9yZy5vYmplY3R3ZWIuYXNtLkNsYXNzUmVhZGVyLmEoVW5rbm93biBTb3VyY2UpCj4+IAlhdCBvcmcub2JqZWN0d2ViLmFzbS5DbGFzc1JlYWRlci5hY2NlcHQoVW5rbm93biBTb3VyY2UpCj4+IAlhdCBvcmcub2JqZWN0d2ViLmFzbS5DbGFzc1JlYWRlci5hY2NlcHQoVW5rbm93biBTb3VyY2UpCj4+IAlhdAo+PiBvcmcuY29kZWhhdXMucGxleHVzLmxhbmd1YWdlcy5qYXZhLmpwbXMuQXNtTW9kdWxlSW5mb1BhcnNlci5wYXJzZShBc21Nb2R1bGVJCj4+IG5mb1BhcnNlci5qYXZhOiA5MCkKPj4gCWF0Cj4+IG9yZy5jb2RlaGF1cy5wbGV4dXMubGFuZ3VhZ2VzLmphdmEuanBtcy5Bc21Nb2R1bGVJbmZvUGFyc2VyLmdldE1vZHVsZURlc2NyaXAKPj4gdG9yKEFzbU1vZHVsZUluZm9QYXJzZXIuamF2YTogNTQpCj4+IAlhdAo+PiBvcmcuY29kZWhhdXMucGxleHVzLmxhbmd1YWdlcy5qYXZhLmpwbXMuTG9jYXRpb25NYW5hZ2VyLnJlc29sdmVQYXRocyhMb2NhdGlvCj4+IG5NYW5hZ2VyLmphdmE6IDExNykKPj4gCWF0Cj4+IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy5qbW9kLkpNb2RDcmVhdGVNb2pvLnByZXBhcmVQYXRocyhKTW9kQ3JlYXRlTW9qby5qYXYKPj4gYTogNDg0KQo+PiAJYXQKPj4gb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zLmptb2QuSk1vZENyZWF0ZU1vam8uZXhlY3V0ZShKTW9kQ3JlYXRlTW9qby5qYXZhOjMwNgo+PiApIGF0Cj4+IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLkRlZmF1bHRCdWlsZFBsdWdpbk1hbmFnZXIuZXhlY3V0ZU1vam8oRGVmYXVsdEJ1aWxkUGwKPj4gdWdpbk1hbmFnZXIuamF2YTogMTM3KQo+PiAJLi4uIDIxIG1vcmUKPj4KPj4gUmVnYXJkcywKPj4KPj4gSGVydsOpCj4+Cj4+IExlIGRpbWFuY2hlIDE3IHNlcHRlbWJyZSAyMDE3LCAxMzo0MDo1MCBDRVNUIEthcmwgSGVpbnogTWFyYmFpc2UgYSDDqWNyaXQgOgo+Pj4gSGksCj4+Pgo+Pj4gdGhpcyBpcyB0aGUgVk9URSBmb3IgdGhlIGZpcnN0IHB1YmxpYyByZWxlYXNlIGZvciBNYXZlbiBKTW9kIFBsdWdpbi4uLgo+Pj4KPj4+IFdlIHNvbHZlZCA0IGlzc3VlczoKPj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZWN0SWQ9MTIzMjE0MzMmCj4+PiB2ZSByc2lvbj0xMjM0MTM2Mwo+Pj4KPj4+IFRoZXJlIGFyZSBjdXJyZW50bHkgbm8gaXNzdWVzIGxlZnQgaW4gSklSQS4KPj4+Cj4+PiBJZiB5b3UgaGF2ZSBhbnkgaXNzdWUgdG8gcmVwb3J0IHBsZWFzZSBvcGVuIGFuIGlzc3VlIGluIEpJUkEKPj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9wcm9qZWN0cy9NSk1PRAo+Pj4KPj4+IFN0YWdpbmcgcmVwbzoKPj4+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjkvCj4+Pgo+Pj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2OS9vcmcvYXBhY2hlL20KPj4+IGF2Cj4+PiBlbi9wbHVnaW5zL21hdmVuLWptb2QtcGx1Z2luLzMuMC4wLWFscGhhLTEvbWF2ZW4tam1vZC1wbHVnaW4tMy4wLjAtYWxwaGEtCj4+PiAxLXMgb3VyY2UtcmVsZWFzZS56aXAKPj4+Cj4+PiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPj4+IG1hdmVuLWptb2QtcGx1Z2luLTMuMC4wLWFscGhhLTEtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6Cj4+PiBhYTAwYjk4YzUzNGYyNGU4MTQxZWUwYmVhY2UyYWZmM2JlODk5Njg4Cj4+Pgo+Pj4gU3RhZ2luZyBzaXRlOgo+Pj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tam1vZC1wbHVnaW4tTEFURVNULwo+Pj4KPj4+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+Pj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPj4+Cj4+PiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+Pj4KPj4+IFsgXSArMQo+Pj4gWyBdICswCj4+PiBbIF0gLTEKPj4+Cj4+PiBLaW5kIHJlZ2FyZHMKPj4+IEthcmwgSGVpbnogTWFyYmFpc2UKPj4+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM5NTItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIFNlcCAxMSAwNTo0NDoxMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5NTItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMzkyODcxQUEwQgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDA1OjQ0OjExICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDk2NTQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgU2VwIDIwMTcgMDU6NDQ6MTAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ5NTIzIGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDA1OjQ0OjEwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDk1MTIgaW52b2tlZCBieSB1aWQgOTkpOyAxMSBTZXAgMjAxNyAwNTo0NDowOSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMTEgU2VwIDIwMTcgMDU6NDQ6MDkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA1OTg5QkQyMzA1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAwNTo0NDowOSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xLjMKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEuMyB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGljOUdmUnRrck9pNyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMTEgU2VwIDIwMTcgMDU6NDQ6MDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5zbXRwb3V0Lm9yYW5nZS5mciAoc210cDEyLnNtdHBvdXQub3JhbmdlLmZyIFs4MC4xMi4yNDIuMTM0XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEJFNTE2NUZCOUYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDA1OjQ0OjA2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGdpZ2EubG9jYWxuZXQgKFs4Ni4yMzguMTYuOTNdKQoJYnkgbXdpbmY1ZDQ3IHdpdGggTUUKCWlkIDg1azUxdzAwRzIwVWZkeTAzNWs1dVE7IE1vbiwgMTEgU2VwIDIwMTcgMDc6NDQ6MDUgKzAyMDAKWC1NRS1IZWxvOiBnaWdhLmxvY2FsbmV0ClgtTUUtRGF0ZTogTW9uLCAxMSBTZXAgMjAxNyAwNzo0NDowNSArMDIwMApYLU1FLUlQOiA4Ni4yMzguMTYuOTMKRnJvbTogPT9JU08tODg1OS0xP1E/SGVydj1FOT89IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEKRGF0ZTogTW9uLCAxMSBTZXAgMjAxNyAwNzo0NDowNSArMDIwMApNZXNzYWdlLUlEOiA8ODQyNjc2OS5IMjBEcEt2TzRLQGdpZ2E+ClVzZXItQWdlbnQ6IEtNYWlsLzUuMi4zIChMaW51eC80LjEwLjAtMzMtZ2VuZXJpYzsgS0RFLzUuMzEuMDsgeDg2XzY0OyA7ICkKSW4tUmVwbHktVG86IDxDQVBDampuSGtQZUZCb0JtTEc3cGM5Nl9vOWpqUVpSK05nZEM4cTVuVko9QXIyQlAwbVFAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQStuUG5NeHlHMk5lUFhwVnFhd2U5alI9aXRIRVQ2VXVkbk45Q2pIaHY9b28tS0NyeHdAbWFpbC5nbWFpbC5jb20+IDxDQUZOQ1UtLTJ2cmQ1QmVUdmt4S0N5WDJaUWVQcWl4N1g9d21Wc1dkTTVkNDlYZU5nT3dAbWFpbC5nbWFpbC5jb20+IDxDQVBDampuSGtQZUZCb0JtTEc3cGM5Nl9vOWpqUVpSK05nZEM4cTVuVko9QXIyQlAwbVFAbWFpbC5nbWFpbC5jb20+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgoKanVzdCB0ZXN0ZWQgIm12biB2ZXJpZnkiIG9uIE1hdmVuIChkaWQgbm90IGJ1aWxkIGl0IHByZXZpb3VzbHksIHRoZW4gbm8gMy41PQo9MkUyLQpTTkFQU0hPVCBhcnRpZmFjdCBpbiBteSBsb2NhbCByZXBvKSwgYW5kIHdvcmtzIGxpa2UgYSBjaGFybSAoYXMgZXhwZWN0ZWQgc2k9Cm5jZT0yMAphcnRpZmFjdHMgYXJlIHJlc29sdmVkIGZyb20gcmVhY3RvcikKCkkgY2FuJ3QgcmVwcm9kdWNlIHRoZSBpc3N1ZTogZG9lcyBhbnlib2R5IGVsc2UgaGF2ZSBzYW1lIHByb2JsZW1zPwoKUmVnYXJkcywKCkhlcnY9RTkKCkxlIGRpbWFuY2hlIDEwIHNlcHRlbWJyZSAyMDE3LCAxNDo1MDowOSBDRVNUIERhbiBUcmFuIGEgPUU5Y3JpdCA6Cj4gTG9va3MgbGlrZSAzLjUuMSBub3QgYWJsZSB0byByZXNvbHZlIHNuYXBzaG90IGRlcGVuZGVuY2llcwo+PTIwCj4gaSBqdXN0IGNsb25lIG91dCBhcGFjaGUtbWF2ZW4gYW5kLCBjaGFuZ2UgZGlyZWN0b3J5IHRvIGFwYWNoZS1tYXZlbiBhbmQKPiBidWlsZCBmcm9tIHRoZXJlCj49MjAKPiBoZXJlIGlzIGVycm9yCj49MjAKPiBbRVJST1JdIEZhaWxlZCB0byBleGVjdXRlIGdvYWwgb24gcHJvamVjdCBhcGFjaGUtbWF2ZW46IENvdWxkIG5vdCByZXNvbHZlCj4gZGVwZW5kZW5jaWVzIGZvciBwcm9qZWN0IG9yZy5hcGFjaGUubWF2ZW46YXBhY2hlLW1hdmVuOnBvbTozLjUuMi1TTkFQU0hPVDoKPiBUaGUgZm9sbG93aW5nIGFydGlmYWN0cyBjb3VsZCBub3QgYmUgcmVzb2x2ZWQ6Cj4gb3JnLmFwYWNoZS5tYXZlbjptYXZlbi1lbWJlZGRlcjpqYXI6My41LjItU05BUFNIT1QsCj4gb3JnLmFwYWNoZS5tYXZlbjptYXZlbi1jb3JlOmphcjozLjUuMi1TTkFQU0hPVCwKPiBvcmcuYXBhY2hlLm1hdmVuOm1hdmVuLWNvbXBhdDpqYXI6My41LjItU05BUFNIT1QsCj4gb3JnLmFwYWNoZS5tYXZlbjptYXZlbi1zbGY0ai1wcm92aWRlcjpqYXI6My41LjItU05BUFNIT1Q6IENvdWxkIG5vdCBmaW5kCj4gYXJ0aWZhY3Qgb3JnLmFwYWNoZS5tYXZlbjptYXZlbi1lbWJlZGRlcjpqYXI6My41LjItU05BUFNIT1QgLT4gW0hlbHAgMV0KPj0yMAo+IG15IGJ1aWxkIGlzIGJlaGluZCBhcnRpZmFjdG9yeQo+PTIwCj4gU2FtZSBpc3N1ZSBhbHNvIGZvdW5kIGF0IG15ICBpbnRlcm5hbCBwcm9qZWN0Cj49MjAKPj0yMAo+IC1EYW4KPj0yMAo+IE9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDE6MDEgUE0sIEFybmF1ZCBIPUU5cml0aWVyIDxhaGVyaXRpZXJAZ21haWwuY29tPgo+PTIwCj4gd3JvdGU6Cj4gPiBUZXN0ZWQgb24gc2V2ZXJhbCBwcm9qZWN0cwo+ID49MjAKPiA+ICsxCj4gPj0yMAo+ID4gT24gU3VuLCBTZXAgMTAsIDIwMTcgYXQgNTozOSBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPj0yMAo+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+IEhpLAo+ID4gPj0yMAo+ID4gPiBXZSBzb2x2ZWQgMjUgaXNzdWVzOgo+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4gPiA+IHZlcnNpb249M0QxMjMzODk2NCZzdHlsZU5hbWU9M0RUZXh0JnByb2plY3RJZD0zRDEyMzE2OTIyCj4gPiA+PTIwCj4gPiA+IFRoZXJlIGFyZSAzNTAgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKPiA+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUKPiA+ID4gM0QlMjBNTkclMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJQo+ID4gPiAyMEJZJTIwZHVlJTIwQVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwY3JlYXRlZCUyMEFTQwo+ID4gPj0yMAo+ID4gPiBTdGFnaW5nIHJlcG86Cj4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjQvCj4gPiA+PTIwCj4gPiA+IFRoZSBkaXN0cmlidXRhYmxlIGJpbmFyaWVzIGFuZCBzb3VyY2VzIGNhbiBiZSBmb3VuZCBoZXJlOgo+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+ID4gPiAxMzY0L289CnJnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvCj4gPiA+PTIwCj4gPiA+IFNwZWNpZmljYWxseSB0aGUgemlwLCB0YXJiYWxsIGFuZCBzb3VyY2UgYXJjaGl2ZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4gPiA+IDEzNjQvbz0KcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtYmluLnppcAo+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+ID4gPiAxMzY0L289CnJnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLWJpbi50YXIuZ3oKPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tPiA+ID4gMTM2NC9vPQpyZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwCj4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4gPiA+IDEzNjQvbz0KcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5nego+ID4gPj0yMAo+ID4gPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiA+ID4gYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy50YXIuZ3ogc2hhMTogOWViODIxZjE1M2M3NjY3MTk0YWExMWNjZDA5OWI3Cj4gPiA+IGJkMjA1OTU2MGQKPiA+ID4gYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy56aXA6IHNoYTE6IDEyMWQ1NGIwNDUzODBhOGE0ODk1ZWIxMzc5NzBhYgo+ID49MjAKPiA+IDY5ZTY5OGViMGUKPiA+PTIwCj4gPiA+IEdpdCB0YWc6Cj4gPiA+IGh0dHBzOi8vZ2l0LXdpcC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPTNEbWF2ZW4uZ2l0O2E9M0Rjb21taXQ7aD0zRAo+ID4gPiAwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzCj4gPiA+PTIwCj4gPiA+IFN0YWdpbmcgc2l0ZToKPiA+ID4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2NvbXBvbmVudHMvcmVmLzMtTEFURVNULwo+ID4gPj0yMAo+ID4gPiBWb3RlIG9wZW4gZm9yIDcyIGhvdXJzLgo+ID4gPj0yMAo+ID4gPiBbIF0gKzEKPiA+ID4gWyBdICswCj4gPiA+IFsgXSAtMQo+ID4gPj0yMAo+ID4gPiBUaGFua3MsCj4gPiA+PTIwCj4gPiA+IFN0ZXBoZW4uCj4gPj0yMAo+ID4gLS0KPiA+IC0tLS0tCj4gPiBBcm5hdWQgSD1FOXJpdGllcgo+ID4gaHR0cDovL2FoZXJpdGllci5uZXQKPiA+IE1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tCj4gPiBUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyMzg4MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgU2VwICA2IDIwOjM0OjI1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzg4MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFNDJGODFBRDM3Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgIDYgU2VwIDIwMTcgMjA6MzQ6MjQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyMTE1OCBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IFNlcCAyMDE3IDIwOjM0OjI0IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMTA0OSBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IFNlcCAyMDE3IDIwOjM0OjIzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjEwMzYgaW52b2tlZCBieSB1aWQgOTkpOyA2IFNlcCAyMDE3IDIwOjM0OjIzIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAwNiBTZXAgMjAxNyAyMDozNDoyMyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDk1RERFQ0QyOTkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsICA2IFNlcCAyMDE3IDIwOjM0OjIyICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuMjIxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjIyMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBtZER5LWQyNEJIdVMgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsICA2IFNlcCAyMDE3IDIwOjM0OjE4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1vdXQuZ214Lm5ldCAobW91dC5nbXgubmV0IFsyMTIuMjI3LjE1LjE1XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDhGMzdFNjEwNDUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsICA2IFNlcCAyMDE3IDIwOjM0OjE3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIEthcmwtSGVpbnpzLU1CUC5mcml0ei5ib3ggKFsxODguOTcuMjE1LjJdKSBieSBtYWlsLmdteC5jb20KIChtcmdteDAwMiBbMjEyLjIyNy4xNy4xOTBdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTUxPOXktMWRxRXpUMDZLSS0wMDBkb2QgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMDYgU2VwIDIwMTcKIDIyOjM0OjE3ICswMjAwClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogaW5mb0Bzb2ViZXMuZGUKRnJvbTogS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+ClN1YmplY3Q6IE1hdmVuIEpMaW5rIC8gSk1vZCBQbHVnaW5zIGZpcnN0IGFscGhhIHJlbGVhc2VzCk1lc3NhZ2UtSUQ6IDw4NTc4Nzg4MC03MjFiLTQxMGEtYTMyYS00ZTVmZWUwMzMwZmRAZ214LmRlPgpEYXRlOiBXZWQsIDYgU2VwIDIwMTcgMjI6MzQ6MTYgKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi4yLjEKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLUdCCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6dCtpRWVicWVkQkRpL2RFVEpqWmlhTytTR3B6NS9HUGQwUDhrR1NFVXk0TUdseFoxNVRTCiBBcDNQNk9MSC93Q3JYaWhabjM2K01iWmJlaXU0bVQwRWpVcytOL2pMdzgxVTF6SXRTMGZrUllvYjZHRzVZcXBiVFlSdWVvQwogOEJtQUlkdk9nQ0pQUnpTR1lTaThucDluYXh5a0E1YTBLSytidjFJdE03NVhSRytMVTZMMVRxSGhHKy9BdjVGY0ZmbTBHNnYKIG5QZ3FPN1k4dFNhbit2aHl5RUhNUT09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6QzkwWnpuUTh1Z0U9OjJQQXVKaDM2NkRPNFdFdmZ4NFVlYXYKIFBodkhhTXFmell5SXVqeS9GOGZON3lrbjZNR3p1cS9tTG96ZnlnbzFaRDlQQStzWjI4YnZ2d3duMkRNVlFkS2xPQ0gxamtJNUsKIFBCKzBacFhzRkM5Q1UyZEwxR0xkYjloS3I1b0RzcG1YYUdmZk4zdm53QzZ3TzFOVUpYNDhsWHBiOUNQeXhFR0Vhd1VsUzdOU3MKIE9RMlU3UDdKUnZvcFBHTFZzRjhsWjhrNWVZNEZNQm4xdzZmRGlGZ25OUWNWTWNXa1h5SG43ZWZUYnZxZ3ZFNTgvUlNUZEFyZEoKIHpSdlAvdWJodzM0NFQ3UGtsNXNtbTNoMGNNcXBiVzJ2cnVhTFBDZW5JY1M4Uk1jN082ckNncHdvRkhCWUhGNmZIcFZDZGhyTlQKIGJiK1JlemxHdVVYdjBjcFZDQi9TZ0I4Ti9jOWhTNXFPbWhxQVhwa0RVR3VnN3pkVzBoQ2hWMWRVVnFablVMblJ0dkN2d1RBNFMKICtkaWxUU3U0Z1Jpa3paUk1VazhUR1VuU2pLN2pPV3ZaWHE1RlNjOVcya0dsbGlKN2lBZ2l4NEdCeThPdjJEeHk1ZFNzeXA5WHQKIDRVNTJWd1RqMEY2M1BKZklPaUlPTDZOSm02emlXWm4xZnE5SG9ONXN6OVY2ZEZmU0Z5NE9BQ3BlSjdSeitqZGMvK0ZpdTdjUEwKIHFheTBaY2p2WnRUcTNoTFhxRURYR3hxVDN6OXJ5M1U2NEI1L2lWYlVvangrZ3A2USsxS1BaZkRFUlkwZ1NSRW50WFhUL3ovVXoKIGJyUEhEQXNZWUFiTkpKTk1GV1Z2Y3hMWlB4aHEvMmFVdWtwVEdrSUwyaXBjc3lzMmhMTHFBWXViRXN5UUZ6ZkV4bTBLTjZYbk4KIGkzSUpNeGxVN0JBQ3phY3NwZ0dEZXVYekZDRHdZTHUyOEtzaDNjZWFLQWJCb0d2OG5CMG5HOXpwZTV2MjJ4QmErZmJFNlMyY0oKIDVMMTQyMDBNSHpVVGxSdjUvakxUcmFDQXNBZWpuUUh5WU1Bc2lrNFZxR2dTZVFPVzBGbGlBTFhnN3ZqeUNMS1NxMStHT3RUZVkKIGNKTTVYVUNSSGNINjdpMjRZcC9JQ1I1MVIyYXZrQTYvWGVwZmhwZnBJT1E0M1dDUzdnPQoKSGkgdG8gYWxsLAoKSSB3b3VsZCBsaWtlIHRvIHN0YXJ0IGEgZmlyc3QgMy4wLjAtYWxwaGEtMSByZWxlYXNlIG9mIHRoZSBNYXZlbiBKTGluayAKUGx1Z2luWzFdIGFuZCB0aGUgTWF2ZW4gSk1vZCBQbHVnaW5bMl0gdG8gc3VwcG9ydCBjcmVhdGlvbiBvZiBKYXZhIFJ1biAKVGltZSBJbWFnZXMgZm9yIEphdmEgOS4uLgoKQXJlIHRoZXJlIGFueSBpZGVhcy9zdWdnZXN0aW9ucy9pbXByb3ZlbWVudHMgYmVmb3JlIHRoZSBmaXJzdCBwdWJsaWMgCnJlbGVhc2Ugb2YgdGhlbT8KCkpJUkEgcHJvamVjdHMgZG8gYWxyZWFkeSBleGlzdCBmb3IgYm90aCBvZiB0aGVtLiBTbyBpZiB5b3UgaGF2ZSBhbnkgCmlzc3VlcyBhYm91dCB0aGVtIHBsZWFzZSBhZGQgdGhlIGFwcHJvcHJpYXRlIGlzc3VlcyBmb3IgdGhlbS4uLgoKSSB3b3VsZCBsaWtlIHRvIHN0YXJ0IG9uIHRoZSBXZWVrZW5kIHdpdGggdGhpcy4uLnRvIGdldCBzb21lIGZlZWRiYWNrIG9mIAp0aGUgZWFybHkgYWRvcHRlcnMgLi4uYW5kIG9mIGNvdXJzZSBiZWZvcmUgdGhlIFNlcHRlbWJlciAyMSB0aGUgSkRLIDkgClJlbGVhc2UgZGF0ZS4uLgoKS2luZCByZWdhcmRzCkthcmwgSGVpbnogTWFyYmFpc2UKClsxXTogCmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWpsaW5rLXBsdWdpbi1MQVRFU1QvaW5kZXguaHRtbApbMl06IApodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1qbW9kLXBsdWdpbi1MQVRFU1QvaW5kZXguaHRtbApbM106IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9wcm9qZWN0cy9NSk1PRApbNF06IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9wcm9qZWN0cy9NSkxJTksKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQ4My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgTm92IDE1IDA4OjAyOjE5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQ4My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA5QkI3RTE3Qjk4Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMTUgTm92IDIwMTcgMDg6MDI6MTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5Mjc4NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNSBOb3YgMjAxNyAwODowMjoxOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTI2NzMgaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgTm92IDIwMTcgMDg6MDI6MTkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MjY2MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDE1IE5vdiAyMDE3IDA4OjAyOjE5IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDE1IE5vdiAyMDE3IDA4OjAyOjE5ICswMDAwClJlY2VpdmVkOiBmcm9tIFsxOTIuMTY4LjEuMTNdIChwNEZGNzc3RjAuZGlwMC50LWlwY29ubmVjdC5kZSBbNzkuMjQ3LjExOS4yNDBdKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgNTA2RTcxQTA4MEU7CglXZWQsIDE1IE5vdiAyMDE3IDA4OjAyOjE4ICswMDAwIChVVEMpClN1YmplY3Q6IFJlOiBNYXZlbiByZXNvbHZlciBicmFuY2ggY29uc29saWRhdGlvbgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sCiA9P1VURi04P1E/SGVydj1jMz1hOV9CT1VURU1ZPz0gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KUmVmZXJlbmNlczogPDIwMTcxMTA5MDUzNTUxLjk1N0Q0MjlDNTBEMUBkZDE3MzMyLmthc3NlcnZlci5jb20+CiA8MjAxNzExMTQxNzE5NDAuMUVBRjYyOUMxRjk3QGRkMTczMzIua2Fzc2VydmVyLmNvbT4gPDE2NjcxOTUudDdIZzJPTTliZUBnaWdhPgpGcm9tOiBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz4KTWVzc2FnZS1JRDogPDg1YzU0NjM4LWQ4MjUtNmMxYy1hNTA0LTEzODhmOGM3NzdjOUBhcGFjaGUub3JnPgpEYXRlOiBXZWQsIDE1IE5vdiAyMDE3IDA5OjAyOjEyICswMTAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdPVzY0OyBydjo1Mi4wKSBHZWNrby8yMDEwMDEwMQogVGh1bmRlcmJpcmQvNTIuNC4wCk1JTUUtVmVyc2lvbjogMS4wCkluLVJlcGx5LVRvOiA8MTY2NzE5NS50N0hnMk9NOWJlQGdpZ2E+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtODsgZm9ybWF0PWZsb3dlZApDb250ZW50LUxhbmd1YWdlOiBlbi1VUwpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpXaHkgLTEgb24gdGhlIEFudCB0YXNrcz8KCkFtIDIwMTctMTEtMTUgdW0gMDA6NTAgc2NocmllYiBIZXJ2PUMzPUE5IEJPVVRFTVk6Cj4gSSBhbnN3ZXJlZCBvbiB0aGUgbWFpbGluZyBsaXN0IGFuZCBvbiB0aGUgMiBKaXJhIGlzc3Vlcwo+IEluIHN1bW1hcnksICsxIHRvIG1lcmdlIGRlbW9zLCAtMSB0byBtZXJnZSBhbnQtdGFza3MKPj0yMAo+IFJlZ2FyZHMsCj49MjAKPiBIZXJ2PUMzPUE5Cj49MjAKPiBMZSBtYXJkaSAxNCBub3ZlbWJyZSAyMDE3LCAxODoxOTo0MCBDRVQgTWFuZnJlZCBNb3NlciBhID1DMz1BOWNyaXQgOgo+PiBBbnkgZmVlZGJhY2sgb3Igc2hvdWxkIEkganVzdCBnbyBhaGVhZCB3aXRoIHRoZSBjbGVhbnVwPwo+Pgo+PiBNYW5mcmVkCj4+Cj4+IE1hbmZyZWQgTW9zZXIgd3JvdGUgb24gMjAxNy0xMS0wOCAyMTozNToKPj4+IEhpIGFsbCwKPj4+Cj4+PiBJIGhhdmUgc3RhcnRlZCBhbmQgbWFkZSBnb29kIHByb2dyZXNzIG9uIGdldHRpbmcgTWF2ZW4gcmVzb2x2ZXIgYWxsIGk9Cm50bwo+Pj4gdGhlIG1hc3RlciBicmFuY2ggaW5zdGVhZCBvZiBoYXZpbmcgbWFzdGVyLCBkZW1vcyBhbmQgYW50LXRhc2tzIGluCj4+PiBzZXBhcmF0ZSBicmFuY2hlcy4KPj4+Cj4+PiBEZXRhaWxzIGFyZSB0cmFja2VkIGluIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTVJFU09MVkU9ClItMjgKPj4+Cj4+PiBBbGwgb2YgaXQgaXMgbm93IGluIGEgbmV3IGJyYW5jaCBjYWxsZWQgbWFzdGVyLWFsbCBmb3IgeW91IHRvIHNlZS4KPj4+Cj4+PiBJIGFtIG5vdyB3b25kZXJpbmcgd2hhdCB0aGUgbmV4dCBzdGVwcyBhcmUuIEkgYWRkZWQgd2hhdCBJIHRoaW5rIHNob3U9CmxkCj4+PiBoYXBwZW4gbmV4dCBpbiB0aGUgaXNzdWUgaW4gYSBjb21tZW50IGFuZCB3b3VsZCBhcHByZWNpYXRlIGFueSBpbnB1dCA9Cm9uCj4+PiB0aGUgY3VycmVudCBzZXR1cCBhbmQgbmV4dCBzdGVwcy4KPj4+Cj4+PiBBbnkgaGVscCB3b3VsZCBiZSBhcHByZWNpYXRlZC4KPj4+Cj4+PiBtYW5mcmVkCj4+Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj49MjAKPj0yMAo+PTIwCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj49MjAKPj0yMAoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQyNDQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE9jdCAxNSAxMDozMzo0NyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyNDQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMzlFRDFDNTFFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMTUgT2N0IDIwMTcgMTA6MzM6NDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3NjcwNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNSBPY3QgMjAxNyAxMDozMzo0NiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzY2MzIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgT2N0IDIwMTcgMTA6MzM6NDYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NjYyMCBpbnZva2VkIGJ5IHVpZCA5OSk7IDE1IE9jdCAyMDE3IDEwOjMzOjQ2IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxNSBPY3QgMjAxNyAxMDozMzo0NiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEIzOTFEMUEwQkI1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxNSBPY3QgMjAxNyAxMDozMzo0NSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDEuMDk5ClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MS4wOTkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTE9XPS0wLjcsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgeHJJVlEtaDlfUkdPIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAxNSBPY3QgMjAxNyAxMDozMzo0MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNy4yMl0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA3QjE2NTVGQkIwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxNSBPY3QgMjAxNyAxMDozMzo0MiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBLYXJsLUhlaW56cy1NYWNCb29rLVByby5sb2NhbCAoWzkyLjIwNC40OC4xMjNdKSBieSBtYWlsLmdteC5jb20KIChtcmdteDEwMiBbMjEyLjIyNy4xNy4xNjhdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTGc2b3AtMWRSWEprMUxjeC0wMHBmYTk7IFN1biwgMTUgT2N0IDIwMTcgMTI6MzM6MzUgKzAyMDAKUmVwbHktVG86IGluZm9Ac29lYmVzLmRlClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LAogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk14eUcyTmVQWHBWcWF3ZTlqUj1pdEhFVDZVdWRuTjlDakhodj1vby1LQ3J4d0BtYWlsLmdtYWlsLmNvbT4KIDxDQStuUG5NdzF3OTY9TlNMc0VreGRKa0p1MGpZMzJhUTg3MSt0cTlZdmpHUkRZQUVKQndAbWFpbC5nbWFpbC5jb20+CiA8b3AueTd5cjU0c2drZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CiA8MzY3MDkwNy5XZkZDR1ZnNGx0QGdpZ2E+CiA8Q0ErblBuTXhPcDltd3R6MGl0UlNnWFZkRlBMSzdwQUF4dkpyVFdiN2JaTkdCZWhkLUV3QG1haWwuZ21haWwuY29tPgpGcm9tOiBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4KTWVzc2FnZS1JRDogPDg1ZTU2NmI1LTUzMWYtMDA5ZS04MmQzLWIxZDY3MWM5YzViMkBnbXguZGU+CkRhdGU6IFN1biwgMTUgT2N0IDIwMTcgMTI6MzM6MzQgKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi4zLjAKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDxDQStuUG5NeE9wOW13dHowaXRSU2dYVmRGUExLN3BBQXh2SnJUV2I3YlpOR0JlaGQtRXdAbWFpbC5nbWFpbC5jb20+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtODsgZm9ybWF0PWZsb3dlZApDb250ZW50LUxhbmd1YWdlOiBlbi1HQgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0ClgtUHJvdmFncy1JRDogVjAzOkswOjkxSXg0eEpPU3lkWFY1Wndqd29iSXo0Y3pESnVPTDNTWHdXMUR1dHNpK1J4VlpMeWpLTQogUVc3THB0VHIxb0xMU0wxdHRFMzk4Q0RsMjRBaFMrdmdoUUVkMTRkS2NrWHRKalNPTmpWdXBuRzRZNDdLNlhQb1RGZ1ZxUlEKIHc4OFkrZVlPMFFON0dobFIxTytyNnhnKzdWM3hlVUhKc1B0TGo5YkNBT09uckR5MFc3TWdFY3dUdzBWRGlRdzZJa0sxS01KCiBTeGUrVklUaDVhM0J0TGZaTnQ2c3c9PQpYLVVJLU91dC1GaWx0ZXJyZXN1bHRzOiBub3RqdW5rOjE7VjAxOkswOi84K3VONE1iM1NRPTpOZElqRUVtM1ZjT2cwQ1B0MGYveGlGCiBOcnEyTGY0V0NLV1FLNUtKMU9IOTBvMG4yOUNYUWhodXEwbU9odUtKQTFzSVJDVjdhQXNSNlRsbGFFd21lTHlWWEdlYmNySnA0CiBLYlU1OENhYVFPbWdpMXg2K0k2VlNiREFjbVpzcm52RVd5NHBsYUNXQkZPbXhwYllSVStOalpmUmlTVkxCQm9ucWdpbTZScjRqCiBybmNuRmFCN2lUcGZ0emRrUFhhY28wVGsxUk5zK0tYcGx4NW55cXBGWUIyb1dydHJhbHVWVGcxa1RGZ2dOUUw2cElQRUlDM0FKCiBtLzViQXVNNTNCSzZwcEVIQ2FFWmJnYVRQRHhIaUthU3Bsd0tkMFZ0bEgxL2dUQnJrNC9EREtJdUFualpiN3JtNnBvZlRkaE5mCiBmNHpBRWZmZlBvMjZ6NDN0MUNsby9lK3V5c3BzVDFaWlI5QkUvdEFuZVZ4YTlIemhVMGVlK2lzanl0U1N0QkNkUkpGNEVZaTIzCiBZSWRGUXg0STlFQ0gzZms1Z3B6d2F0TmxMU3lEK0psK3N2MW1RVStYbmNTdXNGTmdGVWlTZTB1UmJpZm4yV0d0cWZjT2FVcWg1CiAyWEkvVlloWk9wdGlJODEwTXJtV0lZS3JaNnlic21VZVN5YUdxYjAva252V0F6Y1JrNFdMeTdFa1RiRXhObnRueTVBQjAyTXpXCiBpSTY0NmVDQktEckxLa05keStSZTA4eUNFakhPRlBUMEo3YmF4RzVDT2kxQ1ZFQjR4Tk5JMzJzVHowSkpsaHlDYlR6bVBmRDNCCiBDMGFTSlVqMFJINHQwOTB4WUQ4VEY1M1JuVFRyZVhUNUlUckI5SjJudUw0bWZjc0FTRWtpcXdRR0I1aE5tTTdnSEpDUEtITUUwCiBLYXMySWlrV2Z4cmd3VVNFNlBQeVNRT2ZzRWlzVjBFOU1zWVFKNjhSa2JPZjMwUjgxcDd3VGdVWVJmb1RuRUdRNlNYaFhOZjMwCiBtV2hPNFVWQ0lIeWR1ZVhWNEhEYmxKejVIY3pkazRTRnpGSWFpd2R1cHM0LzBiU2JOd09tZWkxcUJzcktiMmFXNnUwUm5laUZBCiA2OE5ZUEpUOFJOYzR2RUw4dHQ5MFdaRzEyZVV3T1NvYmZwR0ZuRmZJc253WG11Y1ExMD0KCkhpLAoKT24gMTIvMTAvMTcgMDg6MjEsIFN0ZXBoZW4gQ29ubm9sbHkgd3JvdGU6Cj4gT2sgYXMgcmVsZWFzZSBtYW5hZ2VyIEkgYW0gY2FuY2VsbGluZyB0aGlzIHZvdGUuIEnigJlsbCBzZWUgYWJvdXQgc3Bpbm5pbmcKPiAzLjUuMgoKY291bGQgd2UgbWFrZSBzdWNoIHRoaW5nIGEgbGl0dGxlIGJpdCBtb3JlIG9idmlvdXMgbGlrZSBwcmVmaXhpbmcgdGhlIApzdWJqZWN0IHdpdGggIltDQU5DRUxFRF0uLi4iIHNvIGl0IGJlY29tZXMgbW9yZSBjbGVhciB0aGF0IHRoZSBWT1RFIGhhcyAKYmVlbiBjYW5jZWxlZC4uLml0J3MgYmV0dGVyIHRvIGlkZW50aWZ5IGluIHRoZSB0aHJlYWQgdmlldy4uLi4KCktpbmQgcmVnYXJkcwpLYXJsIEhlaW56IE1hcmJhaXNlCgo+IAo+IE9uIFRodSAxMiBPY3QgMjAxNyBhdCAwMjo1MSwgSGVydsOpIEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3JvdGU6Cj4gCj4+IExlIG1lcmNyZWRpIDExIG9jdG9icmUgMjAxNywgMjM6NDc6NTQgQ0VTVCBSb2JlcnQgU2Nob2x0ZSBhIMOpY3JpdCA6Cj4+PiBJIHRoaW5rIHRoZSBjb25jbHVzaW9uIGlzOiAzLjUuMSBpcyBub3QgY29ycmVjdAo+Pj4KPj4+IGl0IHNob3VsZCBlaXRoZXIgYmU6Cj4+PiAzLjUuMiB3aXRob3V0IHRoZSAyIGNsYXNzbG9hZGVyIHJlbGF0ZWQgaXNzdWVzLgo+PiBpZGVhbGx5IHdpdGggYW4gb3B0aW9uIHRvIGFjdGl2YXRlIHRoZSBjbGFzc2xvYWRlciBjaGFuZ2VzIChmb3IgcGVvcGxlCj4+IGtub3dpbmcKPj4gd2hhdCB0aGV5IGFyZSBkb2luZyBvciB3YW50aW5nIHRvIHRlc3QgbW9kZSBtb3JlIHdpZGVseSkKPj4KPj4+IG9yCj4+PiAzLjYuMCBpbmNsdWRpbmcgdGhlIGNsYXNzbG9hZGVyIHJlbGF0ZWQgaXNzdWVzLCBidXQgcHJvYmFibHkgaW1wcm92ZWQKPj4gd2l0aAo+Pj4gYSBzeXN0ZW0gcHJvcGVydHkgdG8gc3dpdGNoIGJhY2sgdG8gdGhlIDMuNS4wLWJlaGF2aW9yLiBXZSBhbHNvIG5lZWQgdG8KPj4+IGltcHJvdmUgSVRzIGFuZCBkb2N1bWVudGF0aW9uLgo+Pj4KPj4+IFNpbmNlIHdlIG5lZWQgdG8gbWFrZSBhIG5ldyByZWxlYXNlIGFueXdheSBJIHdvdWxkIGxpa2UgdG8gc3VnZ2VzdCB0byBnbwo+Pj4gZm9yIHRoZSBmaXJzdCBvcHRpb24sIGJlY2F1c2Ugc29tZSBjbGFpbSAzLjUuMCBpcyBjb3JydXB0IGFuZCB0aGUgcmVsYXRlZAo+Pj4gaXNzdWUgaXMgYWxyZWFkeSBmaXhlZCBmb3IgcXVpdGUgc29tZSB0aW1lLgo+PiArMSAoc2FkbHkpCj4+Cj4+IFJlZ2FyZHMsCj4+Cj4+IEhlcnbDqQo+Pgo+Pj4gVGhpcyBzaG91bGQgZ2l2ZSB1cyBtb3JlIHRpbWUgaGF2ZSBhIGJldHRlciBsb29rIGF0IHRoZXNlIGNsYXNzbG9hZGVyCj4+PiBpc3N1ZXMuCj4+Pgo+Pj4gUm9iZXJ0Cj4+Pgo+Pj4gT24gV2VkLCAxMSBPY3QgMjAxNyAwOTo0NjoyNSArMDIwMCwgU3RlcGhlbiBDb25ub2xseQo+Pj4KPj4+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4+PiBJ4oCZZCByZWFsbHkgbGlrZSBpZiBzb21lYm9keSBjb3VsZCBkcmFmdCB0aGUgcmVsZWFzZSBub3RlcyBmb3IgdGhlIHR3bwo+Pj4+IGRpZmZlcmVudCBjbGFzc2xvYWRlciBjaGFuZ2VzLiBJdCB3aWxsIG1ha2UgaXQgZWFzaWVyIHRvIGRlY2lkZSB3aGV0aGVyCj4+Pj4gdG8KPj4+PiByb2xsIHdpdGggdGhpcyBvciBidW1wIG1pbm9yIHdpdGggKGlmIEkgcmVjYWxsIGNvcnJlY3RseSkgdGhlCj4+Pj4gY29ycmVzcG9uZGluZwo+Pj4+IGRyb3Agb2YgSmF2YSA3IHBlciBvdXIgcG9saWN5IG9uIEpWTXMgd2l0aCBtaW5vciB2ZXJzaW9uIGJ1bXAKPj4+Pgo+Pj4+IE9uIFdlZCAxMSBPY3QgMjAxNyBhdCAwNzozMywgSGVydsOpIEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4gd3JvdGU6Cj4+Pj4+ICsxCj4+Pj4+IGV2ZW50dWFsbHkgYWRkaW5nIGEgZmxhZyBvciBzeXN0ZW0gcHJvcGVydHkgdG8gYWN0aXZhdGUgdGhlIG5ldwo+Pj4+PiBiZWhhdmlvdXIKPj4+Pj4KPj4+Pj4gdGhpcyByZW1lbWJlcnMgbWUgb2YgdGhlIGlkZWEgcmVnYXJkaW5nIGZsYWdzIHRvIHN1cHBvcnQgbmV3IGJldGEKPj4+Pj4gZmVhdHVyZXMKPj4+Pj4KPj4+Pj4gUmVnYXJkcywKPj4+Pj4KPj4+Pj4gSGVydsOpCj4+Pj4+Cj4+Pj4+IExlIG1lcmNyZWRpIDExIG9jdG9icmUgMjAxNywgMDg6MTM6MTMgQ0VTVCBBbmRlcnMgSGFtbWFyIGEgw6ljcml0IDoKPj4+Pj4+IEknbSBmZWVsaW5nIHN0cm9uZ2VyIGFuZCBzdHJvbmdlciBhYm91dCBub3QgaGF2aW5nIHRoaXMgY2hhbmdlIGluIGEKPj4+Pj4KPj4+Pj4gYnVnZml4Cj4+Pj4+Cj4+Pj4+PiByZWxlYXNlLiBXaHkgbm90IGdvIGZvciB2My42LjAgaWYgd2UgZGVjaWRlIHRoYXQgdGhlIGNsYXNzIGxvYWRpbmcKPj4+Pj4KPj4+Pj4gY2hhbmdlCj4+Pj4+Cj4+Pj4+PiBpcyB0aGUgd2F5IHRvIGdvPyBBbmQga2VlcCBidWdmaXggcmVsZWFzZXMgZm9yIGp1c3QgYnVnZml4ZXMuCj4+Pj4+Pgo+Pj4+Pj4gL0FuZGVycwo+Pj4+Pj4KPj4+Pj4+IE9uIFdlZCwgT2N0IDExLCAyMDE3IGF0IDM6NDMgQU0sIEhlcnbDqSBCT1VURU1ZIDwKPj4gaGVydmUuYm91dGVteUBmcmVlLmZyPgo+Pj4+Pj4KPj4+Pj4+IHdyb3RlOgo+Pj4+Pj4+IHBlcmhhcHMgd2Ugc2hvdWxkIGNyZWF0ZSBhIFdpa2kgcGFnZSBmb3IKPj4+Pj4KPj4+Pj4gamF2YS5sYW5nLkNsYXNzTm90Rm91bmRFeGNlcHRpb24KPj4+Pj4KPj4+Pj4+PiBhbmQKPj4+Pj4+PiBsaXN0IHRoZSBwbHVnaW5zIHdpdGgga25vd24gaXNzdWVzIGFuZCBtaW5pbXVtIGZpeGVkIHZlcnNpb24KPj4+Pj4+Pgo+Pj4+Pj4+IHRvIGJlIGFkZGVkIGluCj4+Pj4+Cj4+Pj4+Cj4+IGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvTUFWRU4vRXJyb3JzK2FuZCtTb2x1dGlvbnMKPj4+Pj4KPj4+Pj4+PiBSZWdhcmRzLAo+Pj4+Pj4+Cj4+Pj4+Pj4gSGVydsOpCj4+Pj4+Pj4KPj4+Pj4+PiBMZSBtZXJjcmVkaSAxMSBvY3RvYnJlIDIwMTcsIDAyOjUyOjUzIENFU1QgSGVydsOpIEJPVVRFTVkgYSDDqWNyaXQgOgo+Pj4+Pj4+PiBJSVVDLCBpdCdzIE1ERVBMT1ktMjIxIGFib3V0Cj4+Pj4+Cj4+Pj4+IG5ldC5mbGV4bW9qb3Mub3NzOmZsZXhtb2pvcy1tYXZlbi1wbHVnaW4KPj4+Pj4KPj4+Pj4+Pj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NREVQTE9ZLTIyMQo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBSZWdhcmRzLAo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBIZXJ2w6kKPj4+Pj4+Pj4KPj4+Pj4+Pj4gTGUgbWFyZGkgMTAgb2N0b2JyZSAyMDE3LCAyMDo0ODoxMyBDRVNUIFJvYmVydCBTY2hvbHRlIGEgw6ljcml0IDoKPj4+Pj4+Pj4+IEZZSSwgTURFUExPWS0xMjEgbWVudGlvbnMgYW5vdGhlciBwbHVnaW4gYmVpbmcgaGl0IGJ5IHRoZQo+Pj4+Pgo+Pj4+PiBjbGFzc2xvYWRlcgo+Pj4+Pgo+Pj4+Pj4+Pj4gY2hhbmdlcy4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBSb2JlcnQKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gT24gVHVlLCAwMyBPY3QgMjAxNyAyMDoyMjoxOCArMDIwMCwgQXJuYXVkIEjDqXJpdGllciA8Cj4+Pj4+Pj4KPj4+Pj4+PiBhaGVyaXRpZXJAZ21haWwuY29tPgo+Pj4+Pj4+Cj4+Pj4+Pj4+PiB3cm90ZToKPj4+Pj4+Pj4+PiBUaGFua3MgU3RlcGhlbgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gT24gVHVlLCBPY3QgMywgMjAxNyBhdCA4OjE4IFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Pj4+Pj4+Pj4+PiBJIGFtIGhvcGluZyBJIGNhbiBmaW5kIHNvbWUgdGltZSB0byBkbyBhIGZpbmFsIHJvdW5kIG9mCj4+Pj4+Cj4+Pj4+IGV4cGVyaW1lbnRzCj4+Pj4+Cj4+Pj4+Pj4gYW5kCj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gdGhlbiBjbG9zZSB0aGUgdm90ZSB3aXRoIHN1Y2Nlc3MgYW5kIHB1Ymxpc2guCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IE9uIFR1ZSAzIE9jdCAyMDE3IGF0IDExOjEzLCBBcm5hdWQgSMOpcml0aWVyIDwKPj4+Pj4KPj4+Pj4gYWhlcml0aWVyQGdtYWlsLmNvbT4KPj4+Pj4KPj4+Pj4+PiB3cm90ZToKPj4+Pj4+Pj4+Pj4+IEBTdGVwaGVuIFdoYXQgc2hvdWxkIHdlIGRvIG5vdyA/Cj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+IE9uIFR1ZSwgU2VwIDE5LCAyMDE3IGF0IDM6MTQgQU0sIE9saXZpZXIgTGFteSA8Cj4+Pj4+Cj4+Pj4+IG9sYW15QGFwYWNoZS5vcmc+Cj4+Pj4+Cj4+Pj4+Pj4+Pj4+IHdyb3RlOgo+Pj4+Pj4+Pj4+Pj4+IEhpCj4+Pj4+Pj4+Pj4+Pj4gU29ycnkgYSBiaXQgb3V0IG9mIHRpbWUgQVRNIGZvciB0ZXN0aW5nIHRoaXMuCj4+Pj4+Pj4+Pj4+Pj4gV2VsbCBJIHRydXN0IEFybmF1ZCB0ZXN0aW5nIHRoYXQgZXNwZWNpYWxseSBpZiB0aGlzCj4+Pj4+Cj4+Pj4+IGltcHJvdmUKPj4+Pj4gdGhlCj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4gcGVyZm9ybWFuY2UKPj4+Pj4+Pj4+Pj4+PiBvZiB0aGlzIHZlcnkgZ3JlYXQvYXdlc29tZS91c2VycyBvcmllbnRlZCBwbHVnaW4gOlAKPj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+IE9uIDEzIFNlcHRlbWJlciAyMDE3IGF0IDIyOjE5LCBBcm5hdWQgSMOpcml0aWVyCj4+Pj4+Pj4+Pj4+Pj4gPGFoZXJpdGllckBhcGFjaGUub3JnPgo+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4gd3JvdGU6Cj4+Pj4+Pj4+Pj4+Pj4+IERhbW5lZCwgY2FuJ3Qgd2UgYmUgYW5vbnltb3VzIG9uIEdpdGh1YiA/Cj4+Pj4+Pj4+Pj4+Pj4+IEkgbWFpbnRhaW4gaXQgaXMgYSBiaWcgd29yZCwgSSdtIHRyeWluZyB0byBmaXggbW9yZQo+PiBidWdzCj4+Pj4+Cj4+Pj4+IHRoYW4KPj4+Pj4KPj4+Pj4+Pj4+Pj4+Pj4gSQo+Pj4+Pj4+Pj4+Pj4+PiBhZGQKPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gbmV3Cj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+IG9uZXMKPj4+Pj4+Pj4+Pj4+Pj4gSSBhZGRlZCBPbGVnIGluIHRoZSBsb29wIGFzIGhlIGNvbnRyaWJ1dGVkIGEgbG90IG9uIGl0Cj4+Pj4+Cj4+Pj4+IHRvbwo+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+PiBJIGRpZCBhIHF1aWNrIHRlc3QgdG8gYnVpbGQgb24gSmVua2lucyAyLjYwLjMgb3VyCj4+IG1hdmVuCj4+Pj4+Cj4+Pj4+IGNvcmUKPj4+Pj4KPj4+Pj4+PiB3aXRoCj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gdGhlCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4gRXZpbAo+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+IE1hdmVuIHBsdWdpbiAyLjE3IG9uIGEgbG9jYWwgU1NIIGFnZW50IGFuZCBpdCBpcyBvawo+Pj4+Pj4+Pj4+Pj4+PiBCdXQgaXQgaXMgcmVhbGx5IGEgcXVpY2sgdGVzdCAuLi4KPj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+Pj4gQ2hlZXJzCj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+IE9uIFdlZCwgU2VwIDEzLCAyMDE3IGF0IDEwOjA3IEFNLCBTdGVwaGVuIENvbm5vbGx5IDwKPj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+Pj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4+Pj4+Pj4+Pj4+Pj4+PiBPbiAxMyBTZXB0ZW1iZXIgMjAxNyBhdCAwMTowNSwgU3RlcGhlbiBDb25ub2xseSA8Cj4+Pj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+Pj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4+Pj4+Pj4+Pj4+Pj4+Pj4gT24gMTMgU2VwdGVtYmVyIDIwMTcgYXQgMDA6MjYsIEFuZGVycyBIYW1tYXIKPj4+Pj4+Pj4+Pj4+Pj4+PiA8YW5kZXJzQGhhbW1hci5uZXQ+Cj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+PiB3cm90ZToKPj4+Pj4+Pj4+Pj4+Pj4+Pj4gT24gVHVlLCBTZXAgMTIsIDIwMTcgYXQgODo1NCBQTSwgU3RlcGhlbiBDb25ub2xseQo+PiA8Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4gSGF2ZSB3ZSBnb3QgYW55IGZlZWRiYWNrIGZyb20gdGhlIGVtYmVkZGVyCj4+Pj4+Cj4+Pj4+IGludGVncmF0aW9ucwo+Pj4+Pgo+Pj4+Pj4+IHlldD8KPj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+Pj4+PiBJIGhhdmVuJ3QgaGVhcmQgYW55dGhpbmcgZnJvbSB0aGUgbTJlIHBlb3BsZS4KPj4gTWF5YmUKPj4+Pj4KPj4+Pj4gd2UKPj4+Pj4KPj4+Pj4+PiBuZWVkIHRvCj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4gcGluZwo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+PiB0aGVtCj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4+IGRpcmVjdGx5LiBJIGNhbiBjb250YWN0IEZyZWQgQnJpY29uLgo+Pj4+Pj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+Pj4+PiAvQW5kZXJzCj4+Pj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+Pj4+PiBQbGVhc2UgZG8sIGFsc28gaWYgYW55b25lIGhhcyBhIGNvbnRhY3QgaW4gbmV0YmVhbnMKPj4+Pj4KPj4+Pj4gb3IKPj4+Pj4KPj4+Pj4+PiBpbnRlbGxpago+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IGFuZAo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+PiBjb3VsZAo+Pj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+Pj4+IGxldCB0aGVtIGtub3cgd2UnZCBsaWtlIGVpdGhlciBmZWVkYmFjayBvciAid2UncmUKPj4gb2sKPj4+Pj4KPj4+Pj4gaWYKPj4+Pj4KPj4+Pj4+Pj4+Pj4+Pj4+PiBNTkctNjI3NQo+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4gbWFrZXMKPj4+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+Pj4+IHRyb3VibGUgZm9yIHVzLCBnbyBhaGVhZCBhbmQgcmVsZWFzZSIuIEknZCBsaWtlIHRvCj4+Pj4+Cj4+Pj4+IGNsb3NlCj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4gdGhlCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IHZvdGUKPj4+Pj4+Pj4+Pj4gb24KPj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+Pj4gRnJpZGF5Cj4+Pj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+Pj4gMTM6MDAgVVRDLgo+Pj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+Pj4+IE9saXZpZXIgLyBBcm5hdWQsIGhhdmUgZWl0aGVyIG9mIHlvdSBoYWQgYSBjaGFuY2UgdG8KPj4+Pj4KPj4+Pj4gdGVzdAo+Pj4+Pgo+Pj4+Pj4+IHRoaXMKPj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiB3aXRoCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4gdGhlCj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+Pj4+IGV2aWwgcHJvamVjdCB0eXBlWzFdIGFzIHlvdSB0d28gc2VlbSB0byBiZSB0aGUKPj4gYWN0aXZlCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+IG1haW50YWluZXJzWzJdCj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+Pj4+PiBbMV06Cj4+Pj4+IGh0dHBzOi8vamF2YWFkdmVudHVyZS5ibG9nc3BvdC5pZS8yMDEzLzExL2plbmtpbnMtPgo+Pj4+Pgo+Pj4+Pj4+Pj4+Pj4+Pj4+IG1hdmVuLWpvYi10eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sIFsyXToKPj4+Pj4gaHR0cHM6Ly9naXRodWIuY29tL2plbmtpbnNjaS9tYXZlbi1wbHVnaW4vY29tbWl0cy9tYXN0ZXIKPj4+Pj4KPj4+Pj4+Pj4+Pj4+Pj4gLS0KPj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+Pj4gQXJuYXVkCj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+PiAtLQo+Pj4+Pj4+Pj4+Pj4+IE9saXZpZXIgTGFteQo+Pj4+Pj4+Pj4+Pj4+IGh0dHA6Ly90d2l0dGVyLmNvbS9vbGFteSB8IGh0dHA6Ly9saW5rZWRpbi5jb20vaW4vb2xhbXkKPj4+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4+PiAtLQo+Pj4+Pj4+Pj4+Pj4gLS0tLS0KPj4+Pj4+Pj4+Pj4+IEFybmF1ZCBIw6lyaXRpZXIKPj4+Pj4+Pj4+Pj4+IGh0dHA6Ly9haGVyaXRpZXIubmV0Cj4+Pj4+Pj4+Pj4+PiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+Pj4+Pj4+Pj4+Pj4gVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcgo+Pj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+PiAtLQo+Pj4+Pj4+Pj4+PiBTZW50IGZyb20gbXkgcGhvbmUKPj4+Pj4KPj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4+Cj4+Pj4+Pj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Pj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Pgo+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+Pj4KPj4+Pj4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+Pj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Pgo+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+Pj4KPj4+Pj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+Pj4KPj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+Pj4KPj4+Pj4gLS0KPj4+Pgo+Pj4+IFNlbnQgZnJvbSBteSBwaG9uZQo+Pj4KPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KPj4KPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQyOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gTm92ICA2IDAxOjQ4OjE2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQyOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA0NEFEMDEwODYxCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgIDYgTm92IDIwMTcgMDE6NDg6MTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4NTUzMCBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IE5vdiAyMDE3IDAxOjQ4OjE1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NTQ1OCBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IE5vdiAyMDE3IDAxOjQ4OjE1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODU0NDYgaW52b2tlZCBieSB1aWQgOTkpOyA2IE5vdiAyMDE3IDAxOjQ4OjE1IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAwNiBOb3YgMjAxNyAwMTo0ODoxNSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEQyOUE3MUI0MTg1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAgNiBOb3YgMjAxNyAwMTo0ODoxNCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDAuODcxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTAuODcxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJU1BGX0hFTE9fUEFTUz0tMC4wMDEsIFNQRl9TT0ZURkFJTD0wLjk3Ml0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMTAyNC1iaXQga2V5KSBoZWFkZXIuZD1ob250b24ub3JnClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBieFJaT3FvSjR4dXEgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sICA2IE5vdiAyMDE3IDAxOjQ4OjEzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGJpejQ2LmlubW90aW9uaG9zdGluZy5jb20gKGJpejQ2LmlubW90aW9uaG9zdGluZy5jb20gWzIwNS4xMzQuMjUwLjE2MF0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAyOUU4MjVGQjQwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAgNiBOb3YgMjAxNyAwMTo0ODoxMyArMDAwMCAoVVRDKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IHE9ZG5zL3R4dDsgYz1yZWxheGVkL3JlbGF4ZWQ7IGQ9aG9udG9uLm9yZzsKCSBzPWRlZmF1bHQ7IGg9VG86RGF0ZTpNZXNzYWdlLUlkOlN1YmplY3Q6TWltZS1WZXJzaW9uOgoJQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzpDb250ZW50LVR5cGU6RnJvbTpTZW5kZXI6UmVwbHktVG86Q2M6Q29udGVudC1JRDoKCUNvbnRlbnQtRGVzY3JpcHRpb246UmVzZW50LURhdGU6UmVzZW50LUZyb206UmVzZW50LVNlbmRlcjpSZXNlbnQtVG86UmVzZW50LUNjCgk6UmVzZW50LU1lc3NhZ2UtSUQ6SW4tUmVwbHktVG86UmVmZXJlbmNlczpMaXN0LUlkOkxpc3QtSGVscDpMaXN0LVVuc3Vic2NyaWJlOgoJTGlzdC1TdWJzY3JpYmU6TGlzdC1Qb3N0Okxpc3QtT3duZXI6TGlzdC1BcmNoaXZlOwoJYmg9MFNGdVpPQ1NPUHI3V21xbW5xZk5pM2hRTklXUEFJeVpIWlFUODU3amloUT07IGI9WXhxdi9Pam92T0N4WUtmWHZjOFdmUndqK3kKCTVLWGJTbytEY2ZoRDM1Y3VzZ2dLTDZlMTVpeUpKRk1CY2lLWHBub1daaGxxQ1ZXbUQ2c1c0cU1HSzRDeHFWOXNUWkFyODl6TkxrbUZmCgkxVFEvZVN4Ti9IcE9aZ3ByYlFGc2hFSlJZeW96b20rbjFDMnpXS09Jd2M4SWhvVDhlVG9INlFwcXpPbHpXOHBNMEhjYz07ClJlY2VpdmVkOiBmcm9tIFsxNzMuMjI4Ljg4LjExNF0gKHBvcnQ9NTc1MjcgaGVsbz1bMTkyLjE2OC4xLjI4XSkKCWJ5IGJpejQ2LmlubW90aW9uaG9zdGluZy5jb20gd2l0aCBlc210cHNhIChUTFN2MS4yOkVDREhFLVJTQS1BRVMyNTYtR0NNLVNIQTM4NDoyNTYpCgkoRXhpbSA0Ljg5KQoJKGVudmVsb3BlLWZyb20gPGNoYXNAaG9udG9uLm9yZz4pCglpZCAxZUJXVzctMDAwMzNELTZoCglmb3IgZGV2QG1hdmVuLmFwYWNoZS5vcmc7IFN1biwgMDUgTm92IDIwMTcgMTc6NDg6MDQgLTA4MDAKRnJvbTogQ2hhcmxlcyBIb250b24gPGNoYXNAaG9udG9uLm9yZz4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXVzLWFzY2lpCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKTWltZS1WZXJzaW9uOiAxLjAgKE1hYyBPUyBYIE1haWwgMTAuMyBcKDMyNzNcKSkKU3ViamVjdDogUmU6IFJlYWN0b3Igc2FmZS9yYWxseSBwb2ludHMKTWVzc2FnZS1JZDogPDg2MTQxRUIzLTEzM0YtNDU0Ri05RjJGLTNGRTIyMTMwMTFFNEBob250b24ub3JnPgpEYXRlOiBTdW4sIDUgTm92IDIwMTcgMTc6NDc6NTggLTA4MDAKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClgtTWFpbGVyOiBBcHBsZSBNYWlsICgyLjMyNzMpClgtT3V0R29pbmctU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMS4wClgtQW50aUFidXNlOiBUaGlzIGhlYWRlciB3YXMgYWRkZWQgdG8gdHJhY2sgYWJ1c2UsIHBsZWFzZSBpbmNsdWRlIGl0IHdpdGggYW55IGFidXNlIHJlcG9ydApYLUFudGlBYnVzZTogUHJpbWFyeSBIb3N0bmFtZSAtIGJpejQ2LmlubW90aW9uaG9zdGluZy5jb20KWC1BbnRpQWJ1c2U6IE9yaWdpbmFsIERvbWFpbiAtIG1hdmVuLmFwYWNoZS5vcmcKWC1BbnRpQWJ1c2U6IE9yaWdpbmF0b3IvQ2FsbGVyIFVJRC9HSUQgLSBbNDcgMTJdIC8gWzQ3IDEyXQpYLUFudGlBYnVzZTogU2VuZGVyIEFkZHJlc3MgRG9tYWluIC0gaG9udG9uLm9yZwpYLUdldC1NZXNzYWdlLVNlbmRlci1WaWE6IGJpejQ2LmlubW90aW9uaG9zdGluZy5jb206IGF1dGhlbnRpY2F0ZWRfaWQ6IGNoYXMraG9udG9uLm9yZy9vbmx5IHVzZXIgY29uZmlybWVkL3ZpcnR1YWwgYWNjb3VudCBub3QgY29uZmlybWVkClgtQXV0aGVudGljYXRlZC1TZW5kZXI6IGJpejQ2LmlubW90aW9uaG9zdGluZy5jb206IGNoYXNAaG9udG9uLm9yZwpYLVNvdXJjZTogClgtU291cmNlLUFyZ3M6IApYLVNvdXJjZS1EaXI6IAoKQm90aCB0aGVzZSB1c2UgY2FzZXMgc291bmQgbGlrZSBhZGRpbmcgaW5jcmVkaWJsZSBjb21wbGV4aXR5IHRvIHN1cHBvcnQgPQpsZXNzIHRoYW4gMSUgc2l0dWF0aW9ucywgYW5kIHdvcnNlLCBlbmNvdXJhZ2luZyBtb25vbGl0aGljIGJ1aWxkcy4gPTIwCgpJbiB0aGUgZmlyc3QgY2FzZSwgdGhlIG1vZHVsZSBjcmVhdGluZyBhIHNoYWRlZCBqYXIgY2FuIG1hcmsgaXRzID0KY29uc3RpdHVlbnQgamFycyBhcyBvcHRpb25hbDsgcHJldmVudGluZyB0aGUgdHJhbnNpdGl2ZSBkZXBlbmRlbmNpZXMuCkluIHRoZSBzZWNvbmQgY2FzZSwgSXQgd291bGQgYmUgYmV0dGVyIGZvciB0aGUgcGx1Z2luIGJlIGFuIGluZGVwZW5kZW50ID0KYnVpbGQgdG8gZW5jb3VyYWdlIHJlLXVzZSBvZiB0aGF0IHBsdWdpbi4KCj4gVGhlcmUgYXJlIHR3byBzZXRzIG9mIHByb2JsZW1zIHRoYXQsIGFzc3VtaW5nIHdlIHdhbnQgdG8gZml4LCBib3RoID0KbmVlZAo+IHNvbWUgd2F5IHRvIHJhbGx5IGEgY29uY3VycmVudCBtdWx0aW1vZHVsZSBidWlsZCBhdC4KPj0yMAo+IDEuIFRoZXJlIGlzIHRoZSBzaGFkZSBsaWtlIGNsYXNzIG9mIHByb2JsZW1zLCB3aGVyZSBhIHBsdWdpbiB3YW50cyB0bwo+IG1vZGlmeSB0aGUgZWZmZWN0aXZlIHRyYW5zaXRpdmUgZGVwZW5kZW5jaWVzIG9mIGEgbW9kdWxlLgo+PTIwCj4gMi4gVGhlcmUgaXMgdGhlIGV4dGVuc2liaWxpdHkgY2xhc3Mgb2YgcHJvYmxlbXMsIHdoZXJlIHBlb3BsZSB3YW50IHRvID0KYnVpbGQKPiBhIHBsdWdpbiBhbmQgY29uc3VtZSB0aGUgc2FtZSBwbHVnaW4gaW4gb25lIHJlYWN0b3IuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MjY2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBPY3QgMTkgMTc6MzE6MDcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjY2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEQ3NzQwQ0I2RQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDE5IE9jdCAyMDE3IDE3OjMxOjA3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDE1ODkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTkgT2N0IDIwMTcgMTc6MzE6MDEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQxNTE5IGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IE9jdCAyMDE3IDE3OjMxOjAxIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDExNDQgaW52b2tlZCBieSB1aWQgOTkpOyAxOSBPY3QgMjAxNyAxNzozMTowMSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMTkgT2N0IDIwMTcgMTc6MzE6MDEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAzMEZGRTFBMUQzQwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMTkgT2N0IDIwMTcgMTc6MzE6MDAgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC40OTkKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuNDk5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgVVJJQkxfQkxPQ0tFRD0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBBejcyNVZjbnhZb1cgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsIDE5IE9jdCAyMDE3IDE3OjMwOjU4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAxMC5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEzMl0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBDMEVGODVGQ0Q0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAxOSBPY3QgMjAxNyAxNzozMDo1NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ4NyB3aXRoIE1FCglpZCBQVld4MXcwMDMyMFVmZHkwM1ZXeDdXOyBUaHUsIDE5IE9jdCAyMDE3IDE5OjMwOjU3ICswMjAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFRodSwgMTkgT2N0IDIwMTcgMTk6MzA6NTcgKzAyMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBVc2VycyBMaXN0IDx1c2Vyc0BtYXZlbi5hcGFjaGUub3JnPgpDYzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogUmU6IE1hdmVuIERvY2tlciBJbWFnZXMKRGF0ZTogVGh1LCAxOSBPY3QgMjAxNyAxOTozMDo1NyArMDIwMApNZXNzYWdlLUlEOiA8ODYyMzAxMy40cTJCVHJWWTMyQGdpZ2E+ClVzZXItQWdlbnQ6IEtNYWlsLzUuMi4zIChMaW51eC80LjEwLjAtMzctZ2VuZXJpYzsgS0RFLzUuMzEuMDsgeDg2XzY0OyA7ICkKSW4tUmVwbHktVG86IDxDQUpSdkZkby0zM1pmeGlGc0p3amlHUUpNWVQ1bXUzMWZxRDFmX3UzRlVRVG9Kdj1UdWdAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQUpSdkZkby0zM1pmeGlGc0p3amlHUUpNWVQ1bXUzMWZxRDFmX3UzRlVRVG9Kdj1UdWdAbWFpbC5nbWFpbC5jb20+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCmdyZWF0IGlkZWEKCm9rLCB3ZSBuZWVkIGEgZ2l0IHJlcG8gYXQgQVNGCgp3aGF0IGVsc2U/CklzIHRoZXJlIHNvbWUgc29ydCBvZiByZWxlYXNlIHByb2Nlc3M/IHNvbWUgc29ydCBvZiBzb3VyY2UgdG8gcmVsZWFzZT8KClJlZ2FyZHMsCgpIZXJ2PUMzPUE5CgpMZSBqZXVkaSAxOSBvY3RvYnJlIDIwMTcsIDEzOjQ3OjQ1IENFU1QgTWlrZSBEcm9iIGEgPUMzPUE5Y3JpdCA6Cj4gVGhhbmtzIGZvciB0aGUgcG9pbnRlciwgQ2FybG9zISBJIGhhZCBzZWFyY2hlZCB0aGUgYXJjaGl2ZXMsIGJ1dCBtYXliZSBJCj4gZGlkbid0IGdvIGJhY2sgZmFyIGVub3VnaC4KPj0yMAo+IEkgdGhpbmsgbW92aW5nIHRoZXNlIERvY2tlcmZpbGVzIGludG8gYW4gQVNGIHJlcG8gd291bGQgYmUgZ3JlYXQgZm9yIHRoZWlyCj4gbWFpbnRhaW5hYmlsaXR5Lgo+PTIwCj4gVGhhbmtzLAo+PTIwCj4gTWlrZQo+PTIwCj4gT24gMjAxNy0xMC0xOSAwMzo1MCwgQ2FybG9zIFNhbmNoZXogPGMuLi5AYXBhY2hlLm9yZz4gd3JvdGU6Cj4gPiBBcm5hdWQgaXMgY29ycmVjdCwgSSBzZW50IGFuIGVtYWlsIHRvIHVzZXJzQCBiYWNrIG9uIEZyaSwgTm92IDcsIDIwMTQsPgo+ID4gMDA6MjMgd2hlbiBJIGNyZWF0ZWQgdGhlIGltYWdlPgo+ID49MjAKPiA+PTIwCj4gPiBPbiBUaHUsIE9jdCAxOSwgMjAxNywgMTE6MTIgQXJuYXVkIEg9RUY9QkY9QkRyaXRpZXIgPGFoLi4uQGdtYWlsLmNvbT4gdz0Kcm90ZTo+Cj4gPj0yMAo+ID4gPiBUaGVzZSBpbWFnZXMgYXJlIGtpbmRseSBtYW5hZ2VkIGJ5IGEgUE1DIG1lbWJlciBvZiBvdXIgcHJvamVjdCAoQ2FybG89CnMpCj49MjAKPiBidXQ+Cj49MjAKPiA+ID4geWVzIHRoZXkgYXJlbid0IG1hbmFnZWQgZGlyZWN0bHkgYnkgdGhlIHByb2plY3Q+Cj4gPiA+PTIwCj4gPiA+IFdlIGNhbiBlYXNpbHkgc2VlIHdpdGggaGltIHRvIGltcHJvdmUgdGhpcyBJTU8uPgo+ID4gPj0yMAo+ID4gPiBXaGVuIGhlIHN0YXJ0ZWQgdGhhdCAoc2V2ZXJhbCB5ZWFycyBhZ28pIERvY2tlciB3YXNuJ3Qgd2hhdCBpdCBpcwo+PTIwCj4gbm93YWRheXMuPgo+PTIwCj4gPiA+IFdpdGggZG9ja2VyIGJlaW5nIG1haW5zdHJlYW0gSSBhZ3JlZSB0aGF0IHdlIGNhbiByZWNvbnNpZGVyIHRoaXMuPgo+ID4gPj0yMAo+ID4gPiBUaGUgZG9ja2VyIGltYWdlIGJ1aWxkL2Rpc3RyaWJ1dGlvbiBjb3VsZCBwZXJoYXBzIGJlIHBhcnQgb2Ygb3VyCj49MjAKPiByZWxlYXNlPgo+PTIwCj4gPiA+IHByb2Nlc3MuPgo+ID4gPj0yMAo+ID4gPiBXRFlUIENhcmxvcyA/Pgo+ID4gPj0yMAo+ID4gPiBPbiBUaHUsIE9jdCAxOSwgMjAxNyBhdCA0OjE2IEFNLCBNaWtlIERyb2IgPG1kLi4uQGFwYWNoZS5vcmc+IHdyb3RlOj4KPiA+ID49MjAKPiA+ID4gPiBJIGd1ZXNzIHRoZSBuYXR1cmFsIGZvbGxvdy1vbiBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoZSBNYXZlbgo+PTIwCj4gY29tbXVuaXR5Pgo+PTIwCj4gPiA+ID4gd291bGQgY29uc2lkZXIgcHVibGlzaGluZyBhbiBvZmZpY2lhbCBzZXQgb2YgaW1hZ2VzPyBPcgo+PTIwCj4gYWx0ZXJuYXRpdmVseT4KPj0yMAo+ID4gPiA+IHdoZXRoZXIgdGhleSBzaG91bGQgc2VuZCBhIHRha2Vkb3duIG5vdGljZSB0byBwcm90ZWN0IHRoZWlyIGJyYW5kCj49MjAKPiBhbmQ+Cj49MjAKPiA+ID4gPiB0cmFkZW1hcmtzLi4uPgo+ID4gPiA+PTIwCj4gPiA+ID4gT24gMjAxNy0xMC0xOCAxODozNiwgIk1hbmZyZWQgTW9zZXIiIDxtYS4uLkBzaW1wbGlnaWxpdHkuY29tPiB3cm90ZT0KOj4KPiA+ID4gPj0yMAo+ID4gPiA+ID4gTm8uIEFzIHlvdSBjYW4gc2VlIGZyb20gdGhlIGdpdGh1YiBVUkwgdGhpcyBpcyBOT1QgYW4gYXBhY2hlIFVSTC4+Cj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2Nhcmxvc3NnL2RvY2tlci1tYXZlbj4KPiA+ID4gPiA+PTIwCj4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gTWlrZSBEcm9iIHdyb3RlIG9uIDIwMTctMTAtMTggMTY6MzI6Pgo+ID4gPiA+ID49MjAKPiA+ID4gPiA+ID4gSGVsbG8sPgo+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiBBcmUgdGhlIGltYWdlcyBhdCBodHRwczovL2h1Yi5kb2NrZXIuY29tL3IvXy9tYXZlbi8gY29uc2lkZXJlZCA9CnRvCj49MjAKPiBiZT4KPj0yMAo+ID4gPiA+IG9mZmljaWFsPgo+ID4gPiA+PTIwCj4gPiA+ID4gPiA+IG1hdmVuIGRvY2tlciBpbWFnZXMgYW5kIGJsZXNzZWQvcHVibGlzaGVkIGJ5IHRoZSBQTUM/Pgo+ID4gPiA+ID4gPj0yMAo+ID4gPiA+ID4gPiBUaGFua3MsPgo+ID4gPiA+ID4gPiBNaWtlPgo+PTIwCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPgo+PTIwCj4gPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IHVzZXJzLXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Cj4gPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IHVzZXJzLWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT4KPj0yMAo+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogdXNlcnMtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IHVzZXJzLWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT4KPj0yMAo+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IHVzZXJzLXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Cj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogdXNlcnMtaGVscEBtYXZlbi5hcGFjaGUub3JnPgo+ID4gPj0yMAo+ID4gPiAtLT4KPiA+ID4gLS0tLS0+Cj4gPiA+IEFybmF1ZCBIPUVGPUJGPUJEcml0aWVyPgo+ID4gPiBodHRwOi8vYWhlcml0aWVyLm5ldD4KPiA+ID4gTWFpbC9HVGFsazogYWhlcml0aWVyIEFUIGdtYWlsIERPVCBjb20+Cj4gPiA+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXI+CgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDEwNi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgU2VwIDI3IDExOjUzOjM3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDEwNi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBENEE5MUZCNTYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyNyBTZXAgMjAxNyAxMTo1MzozNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDU3Njc1IGludm9rZWQgYnkgdWlkIDUwMCk7IDI3IFNlcCAyMDE3IDExOjUzOjMyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NzYwOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBTZXAgMjAxNyAxMTo1MzozMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU3NTk3IGludm9rZWQgYnkgdWlkIDk5KTsgMjcgU2VwIDIwMTcgMTE6NTM6MzIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMjcgU2VwIDIwMTcgMTE6NTM6MzIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gWzEwLjEwLjQ1LjE2NV0gKHVua25vd24gWzg3LjE5MS4zOS4xNTRdKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgNDNDMUExQTAwM0UKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDI3IFNlcCAyMDE3IDExOjUzOjMyICswMDAwIChVVEMpCkZyb206IEJlbmVkaWt0IFJpdHRlciA8YnJpdHRlckBhcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpNaW1lLVZlcnNpb246IDEuMCAoTWFjIE9TIFggTWFpbCAxMC4zIFwoMzI3M1wpKQpTdWJqZWN0OiBSZTogZGVwZW5kZW5jeTpnby1vZmZsaW5lIGJyb2tlbj8KRGF0ZTogV2VkLCAyNyBTZXAgMjAxNyAxMzo1MzoyOSArMDIwMApSZWZlcmVuY2VzOiA8NDk1OTUyMkEtMjA5MC00MjM5LTgyMzMtRTMyMDAwREU5QTVCQGFwYWNoZS5vcmc+CiA8Q0FNa19CZWh2LTBDajRrWTFuNjJBMXBWRmU4UGR6NzRFbWE4akNEeHZXY05IQWRmTFVRQG1haWwuZ21haWwuY29tPgogPEJDNDU0QkRBLUMxMTYtNERBNi04MTM1LUMyMEQ1QTM2Qjg1MEBhcGFjaGUub3JnPgogPENBTWtfQmVqendZODdLeUpKckNyTHZWeVRZV2hpVG49cmQtN0JPTXVCWnI2bzFzaFFBUUBtYWlsLmdtYWlsLmNvbT4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Q0FNa19CZWp6d1k4N0t5SkpyQ3JMdlZ5VFlXaGlUbj1yZC03Qk9NdUJacjZvMXNoUUFRQG1haWwuZ21haWwuY29tPgpNZXNzYWdlLUlkOiA8ODY5NzUyNDgtNUE3OC00MjFDLUIwQjktMEI4QzZFNkJFRERGQGFwYWNoZS5vcmc+ClgtTWFpbGVyOiBBcHBsZSBNYWlsICgyLjMyNzMpCgpIZWxsbyBCcmFpbiwKCj4gQW0gMjYuMDkuMjAxNyB1bSAyMzoxMCBzY2hyaWViIEJyaWFuIEZveCA8YnJpYW5mQGluZmluaXR5Lm51PjoKPj0yMAo+IE9uIE1vbiwgU2VwIDI1LCAyMDE3IGF0IDI6MTAgUE0sIEJlbmVkaWt0IFJpdHRlciA8YnJpdHRlckBhcGFjaGUub3JnPiA9Cndyb3RlOgo+PTIwCj4+IEhlbGxvIEJyaWFuLAo+Pj0yMAo+Pj4gQW0gMjAuMDkuMjAxNyB1bSAyMzoxNiBzY2hyaWViIEJyaWFuIEZveCA8YnJpYW5mQGluZmluaXR5Lm51PjoKPj4+PTIwCj4+PiBJdCdzIGJlZW4gYSByZWFsbHkgbG9uZyB0aW1lLCBidXQgSSByZWNhbGwgdGhhdCB0aGVyZSB3ZXJlIGlzc3VlcyA9CmdldHRpbmcKPj4+IHRoZSBkZXBlbmRlbmNpZXMgb2YgcGx1Z2lucyBib3VuZCB0byB0aGUgbGlmZWN5Y2xlLiBUaGlzIGxvb2tzIHRvIGJlID0KdGhlCj4+PiBzYW1lIHByb2JsZW0uIEkgdGhpbmsgdGhlIGRvY3VtZW50YXRpb24gdGFsa2VkIGFib3V0IGEgd2F5IHRvIGRvID0KdGhpcwo+Pj4gZWZmZWN0aXZlbHkuCj4+PTIwCj4+IEk9RTI9ODA9OTl2ZSBsb29rZWQgdGhyb3VnaCB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgZGVwZW5kZW5jeSA9CnBsdWdpbiwgYnV0IEkgY2FuCj4+IG5vdCBmaW5kIGFueXRoaW5nIGFib3V0IHRoaXMuIERvIHlvdSByZWNhbGwgd2hlcmUgeW91IGZvdW5kIHRoYXQKPj4gZG9jdW1lbnRhdGlvbj8KPj49MjAKPj49MjAKPiBIYSBubywgc2luY2UgSSB3cm90ZSB0aGF0IGdvYWwgMTAgeWVhcnMgYWdvIEknbSBzY3JhdGNoaW5nIHRoZSBkZXB0aCA9Cm9mIG15Cj4gbWVtb3J5LiBNYXliZSBJIGp1c3QgaW50ZW5kZWQgdG8gZGVzY3JpYmUgaXQgOy0pCgpUaGFuayB5b3UgZm9yIHlvdXIgcmVzcG9uc2UuIE1heWJlIEk9RTI9ODA9OTlsbCBqdXN0IGdpdmUgYSBsaXR0bGUgbW9yZSA9CmNvbnRleHQgYWJvdXQgd2hhdCBJPUUyPTgwPTk5bSB0cnlpbmcgdG8gYWNoaWV2ZS4gTWF5YmUgST1FMj04MD05OW0ganVzdCA9CmRvaW5nIHRoZSB3cm9uZyB0aGluZzoKCkkgaGF2ZSBhIENJIEJ1aWxkIGluIEdpdExhYiwgd2hlcmUgSSB3YW50IHRvIGRlZmluZSBhIGpvYiB0aGF0IGRvd25sb2FkcyA9CmFsbCB0aGUgYXJ0aWZhY3RzIHdoaWNoIGFyZSBuZWVkZWQgZm9yIHRoZSBkaWZmZXJlbnQgbGlmZWN5Y2xlIHBoYXNlcyA9CmFuZCBwbHVnaW4gZXhlY3V0aW9ucyBhcyB3ZWxsIGFzIGFsbCBwcm9qZWN0IGRlcGVuZGVuY2llcy4gSSBvbmx5IHdhbnQgPQp0byBkb3dubG9hZCBhbGwgdGhlIHN0dWZmIG9uY2UgYW5kIHRoZW4gY29weSB0aGUgYXJ0aWZhY3RzIGJldHdlZW4gdGhlID0KYnVpbGQgc3RhZ2VzLiBJIHRob3VnaHQgdGhpcyB3b3VsZCBiZSBwb3NzaWJsZSB3aXRoID0KZGVwZW5kZW5jeTpnby1vZmZsaW5lIHNvIHRoYXQgbGF0ZXIgc3RlcHMgY2FuIGJlIHJ1biB3aXRoIG12biAtby4KQW0gSSBtaXNzaW5nIHNvbWV0aGluZyBvciBpcyB0aGlzIHNpbXBseSBub3QgcG9zc2libGUgYXQgdGhlIG1vbWVudD8KClJlZ2FyZHMsCkJlbmVkaWt0Cgo+PTIwCj49MjAKPj4gUmVnYXJkcywKPj4gQmVuZWRpa3QKPj49MjAKPj4+PTIwCj4+PiBPbiBXZWQsIFNlcCAyMCwgMjAxNyBhdCA0OjQ4IFBNLCBCZW5lZGlrdCBSaXR0ZXIgPQo8YnJpdHRlckBhcGFjaGUub3JnPgo+PiB3cm90ZToKPj4+PTIwCj4+Pj4gSGksCj4+Pj49MjAKPj4+PiBhcyBmYXIgYXMgSSB1bmRlcnN0YW5kIGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBjYWxsIG12bgo+Pj4+IGRlcGVuZGVuY3k6Z28tb2ZmbGluZSBhbmQgZnJvbSB0aGVyZSBvbiB3b3JrIGluIG9mZmxpbmUgbW9kZSAobXZuID0KLW8pLgo+Pj4+IEk9RTI9ODA9OTl2ZSBwdXQgYSBtaW5pbWFsIGV4YW1wbGUgdG9nZXRoZXIgWzFdIHRoYXQgZGVtb25zdHJhdGVzID0KdGhhdCB0aGlzCj4+Pj4gY3VycmVudGx5IGRvZXMgbm90IHdvcmsuIEFtIEkgbWlzc2luZyBhbnl0aGluZz8KPj4+Pj0yMAo+Pj4+IFRoYW5rIHlvdSEKPj4+PiBCZW5lZGlrdAo+Pj4+PTIwCj4+Pj4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9icml0dGVyL2RlcGVuZGVuY3ktcGx1Z2luLWJ1Zwo+Pj4+PTIwCj4+Pj49MjAKPj4+PiA9Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+PTIwCj4+Pj49MjAKPj49MjAKPj49MjAKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj49MjAKPj49MjAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM5MjgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIFNlcCAxMCAxODoyMjowNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5MjgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMjMyNUMxQUQ4RgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDE4OjIyOjA0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjM0NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBTZXAgMjAxNyAxODoyMjowMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjI3MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBTZXAgMjAxNyAxODoyMjowMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIyNTkgaW52b2tlZCBieSB1aWQgOTkpOyAxMCBTZXAgMjAxNyAxODoyMjowMiAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxMCBTZXAgMjAxNyAxODoyMjowMiArMDAwMApSZWNlaXZlZDogZnJvbSBbMTkyLjE2OC4xLjEzXSAocDNFOUQyN0YzLmRpcDAudC1pcGNvbm5lY3QuZGUgWzYyLjE1Ny4zOS4yNDNdKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgMTZCRTAxQTAwMjk7CglTdW4sIDEwIFNlcCAyMDE3IDE4OjIyOjAwICswMDAwIChVVEMpClN1YmplY3Q6IFJlOiBbUkVTVUxUXSBSZTogUGxlYXNlIHJldHdlZXQgYW5kIHZvdGUKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LAogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk16ejJ1Nj1jZFU1K2gxSHN2V2hTNENUNXprWXpyV0NFb3ctRzhDenYrbVkyZ0BtYWlsLmdtYWlsLmNvbT4KIDxDQStuUG5Neit2SGtrbXMxM0VDaHc1a0dCblhEazkzX0hyNUY3NitEZXRibnBxZmlHWHdAbWFpbC5nbWFpbC5jb20+CiA8b3AueTZjeXhqZ2NrZGtocnJAZGVza3RvcC0ya2hzazQ0PgogPENBQ1prWFB3T0VYK2Q1TTc2VTJNLVVtc1Zra0xjUEhDZUNUdDJTSms0Znl4UmJIMm15QUBtYWlsLmdtYWlsLmNvbT4KIDxDQUZOQ1UtLUxPT000MW84cUozc3h0QWFtWnEzRERXPTFtVUc4T1V0UUJmT05TOXY4aVFAbWFpbC5nbWFpbC5jb20+CiA8Q0ErblBuTXk5LU1RZmNXdnIzc3g2b2Vjby05QXFhOXh4UkVLRFNyLU9NOUg0ajgtM3h3QG1haWwuZ21haWwuY29tPgpGcm9tOiBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz4KTWVzc2FnZS1JRDogPDg4ZGJhMDVhLTI1ZTQtYTg4Mi1kN2YyLTE3NGM4M2Y5YmY4M0BhcGFjaGUub3JnPgpEYXRlOiBTdW4sIDEwIFNlcCAyMDE3IDIwOjIxOjU2ICswMjAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdPVzY0OyBydjo1Mi4wKSBHZWNrby8yMDEwMDEwMQogVGh1bmRlcmJpcmQvNTIuMy4wCk1JTUUtVmVyc2lvbjogMS4wCkluLVJlcGx5LVRvOiA8Q0ErblBuTXk5LU1RZmNXdnIzc3g2b2Vjby05QXFhOXh4UkVLRFNyLU9NOUg0ajgtM3h3QG1haWwuZ21haWwuY29tPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tVVMKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKQW0gMjAxNy0wOS0xMCB1bSAxOTowNyBzY2hyaWViIFN0ZXBoZW4gQ29ubm9sbHk6Cj4gSGVydj1DMz1BOSBhbmQgSSBkaXNjdXNzZWQgb24gaXJjIGVhcmxpZXIgdG9kYXkuCj49MjAKPiBNeSBzdWdnZXN0aW9uIC0gSSB3YXMgZ29pbmcgdG8gd3JpdGUgdXAgdG9tb3Jyb3cgLSBpcyB0aGF0IHdlIGRyb3AgNyBmbz0Kcgo+IDMuNi54Cj49MjAKPiBXZSBzaG91bGQgZm9jdXMgMy42Lnggb24gbWFraW5nIHRoZSBjb2RlYmFzZSBKYXZhIDggKGxhbWJkYXMsIHJlcGxhY2UKPiBGaWxlX19fX1N0cmVhbSB3aXRoIHRoZSBub24tZmlsZSBoYW5kbGUgbGVhayB2ZXJzaW9uLCBhZG9wdCBQYXRoLCBldGMpID0Kd2l0aAo+IGEgdmlldyB0byBlbmNvdXJhZ2UgY29udHJpYnV0aW9ucy4uLiBhbmQgYmVzdCBzdXBwb3J0IGZvciBKYXZhIDkgKHN1Y2ggPQp0aGF0Cj4gaWYgeW91IHJ1biBqOSB3ZSByZWNvbW1lbmQgMy42LngpCgpUaGlzIHdpbGwgdGFrZSBtb250aHMgdG8gcHJvcGVybHkgcmV3cml0ZSBNYXZlbiBjb3JlLiBJJ2QgcmF0aGVyIHNlZT0yMAp0aGlzIGZvciBNYXZlbiA0IGFuZCBjb250aW51ZSB0byBwb2xpc2ggTWF2ZW4gd2l0aCAzLjUueCwgMy42LngsIGV0Yy4KClVubGVzcyBubyBvbmUgd2lsbCBkbyB0aGlzIHdpdGhpbiBhIHNob3J0IHRpbWVmcmFtZSwgSSBzZWUgbm8gYmVuZWZpdCBoZXI9CmUuCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzOTQxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBTZXAgMTAgMjE6MjM6NTggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTQxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDA4RUMwMUEwM0IKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAyMToyMzo1OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDc2MzE0IGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIFNlcCAyMDE3IDIxOjIzOjU3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NTYzOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBTZXAgMjAxNyAyMToyMzo1NiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc1NjI3IGludm9rZWQgYnkgdWlkIDk5KTsgMTAgU2VwIDIwMTcgMjE6MjM6NTUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTAgU2VwIDIwMTcgMjE6MjM6NTUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gWzE5Mi4xNjguMS4xM10gKHAzRTlEMjdGMy5kaXAwLnQtaXBjb25uZWN0LmRlIFs2Mi4xNTcuMzkuMjQzXSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEVEODg0MUEwMEE1OwoJU3VuLCAxMCBTZXAgMjAxNyAyMToyMzo1NCArMDAwMCAoVVRDKQpTdWJqZWN0OiBSZTogVGVzdHMgZm9yIE1ORy02Mjc1IGZhaWwgb24gSmF2YSAxLjcuMF8xNTEtYjAxClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwKIFRpYm9yIERpZ2FuYSA8dGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tPgpSZWZlcmVuY2VzOiA8ZWZiOTc5NjAtZTFiNy00MjI3LTU5OTgtZGUyYzI0MDE1YmIwQGFwYWNoZS5vcmc+CiA8Q0ErblBuTXc3b2c1Z3JxSlpOeVljM0p5TUpjSD1yY2hTLUdZWURfYU1BdmVBaWNKb1V3QG1haWwuZ21haWwuY29tPgogPDc4YWY5NjU1LTc2YmMtZjU2Yy0yZWI1LTFhZjJjMTIwZjQzZkBhcGFjaGUub3JnPgogPENBS3VWekJRcTRaMGFNWGc2ZFc5dnhlM3hCZitkSEYwUzJOZmRIdk1QREZuZThIcll1d0BtYWlsLmdtYWlsLmNvbT4KIDwyNGNjMzhlOC01YzNhLTY0MDItY2ZmZi04NzZiMzI0YWE4NzFAZ214LmRlPgogPENBS3VWekJSd2Z2K3o5QUN3YXNEZl9GbnFCMm81dzVSMHNmQ0dpTkp3RGdRSz1BT0t3QUBtYWlsLmdtYWlsLmNvbT4KIDxjZjg4MWU1OS02N2MwLTg1ZTctMWM0NC04MzdlNTIxZWY3NzlAYXBhY2hlLm9yZz4KIDxDQUt1VnpCUy1Ia1ZwX293M1Z6OW03WTA3Y256K0VUTmNxZkFaVmhnVW9UcWlITzNnVUFAbWFpbC5nbWFpbC5jb20+CkZyb206IE1pY2hhZWwgT3NpcG92IDxtaWNoYWVsb0BhcGFjaGUub3JnPgpNZXNzYWdlLUlEOiA8ODlkMTQzNDUtOWIwMi1lZmU5LTQwZmUtMjIwOWIxZDk3ZDZmQGFwYWNoZS5vcmc+CkRhdGU6IFN1biwgMTAgU2VwIDIwMTcgMjM6MjM6NTAgKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV09XNjQ7IHJ2OjUyLjApIEdlY2tvLzIwMTAwMTAxCiBUaHVuZGVyYmlyZC81Mi4zLjAKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDxDQUt1VnpCUy1Ia1ZwX293M1Z6OW03WTA3Y256K0VUTmNxZkFaVmhnVW9UcWlITzNnVUFAbWFpbC5nbWFpbC5jb20+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtODsgZm9ybWF0PWZsb3dlZApDb250ZW50LUxhbmd1YWdlOiBlbi1VUwpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CgpBbSAyMDE3LTA5LTEwIHVtIDIzOjE5IHNjaHJpZWIgVGlib3IgRGlnYW5hOgo+IERlZmluaXRlbHkgSSBhZ3JlZSEKPiBMZXQncyBzZWUgaWYgaXQgaXMgSkRLIGlzc3VlIG9yIHBsYXRmb3JtIGlzc3VlLiBMZXQncyBleGNsdWRlIE9yYWNsZSBKYXZhCj4gc3VzcGljaW9uIGFuZCB0aGVuIGl0J3Mgc2VyaW91cyBpc3N1ZS4KCk5vdCBhIHBsYXRmb3JtIG9uZS4gUmVwcm9kdWNlZCBvbiBXaW5kb3dzIDEwIHdpdGggWnVsdSA3IFVwZGF0ZSAxNTQuIEkgCndpbGwgZG93bmxvYWQgT3JhY2xhIEphdmEgNyBmcm9tIE1PU0MgYW5kIHRlc3QgYWdhaW4uIEkgYW0gcHJldHR5IHN1cmUgCnRoYXQgaXQgd2lsbCBmYWlsIHRvby4KCj4gT24gU3VuLCBTZXAgMTAsIDIwMTcgYXQgMTE6MTcgUE0sIE1pY2hhZWwgT3NpcG92IDxtaWNoYWVsb0BhcGFjaGUub3JnPgo+IHdyb3RlOgo+IAo+PiBBbSAyMDE3LTA5LTEwIHVtIDIzOjE1IHNjaHJpZWIgVGlib3IgRGlnYW5hOgo+Pgo+Pj4gVGhpcyBvbmUgMS43LjBfODAgd2hpY2ggaXMgN3U4MDoKPj4+IGh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobmV0d29yay9qYXZhL2phdmFzZS9kb3dubG9hZHMvCj4+PiBqYXZhLWFyY2hpdmUtZG93bmxvYWRzLWphdmFzZTctNTIxMjYxLmh0bWwKPj4+Cj4+Cj4+IE5vIG9uZSB3aWxsIHNlcmlvdXNseSBydW4gdGhpcyBvbmUuIFNvIGlmIHdlIHNheSB0aGF0IG91ciBzdHVmZiBydW5zIG9mZiA3Cj4+IHRoZW4gd2UgaGF2ZSB0byB0ZXN0IE9wZW5KREsgYW5kIFp1bHUgdG9vLgo+Pgo+PiBNaWNoYWVsCj4+Cj4+Cj4+IE9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDExOjEyIFBNLCBNaWNoYWVsIE9zaXBvdiA8bW9zaXBvdkBnbXguZGU+IHdyb3RlOgo+Pj4KPj4+IEFtIDIwMTctMDktMTAgdW0gMjM6MDcgc2NocmllYiBUaWJvciBEaWdhbmE6Cj4+Pj4KPj4+PiBNaWNoYWVsLCBub3cgdHJ5IHdpdGggT3JhY2xlIEphdmEgNy4KPj4+Pj4KPj4+Pj4KPj4+PiBMYXN0IHB1YmxpYyB2ZXJzaW9uIG9yIHVwLXRvLWRhdGUgcGFpZCB2ZXJzaW9uPwo+Pj4+Cj4+Pj4gT24gU3VuLCBTZXAgMTAsIDIwMTcgYXQgMTE6MDIgUE0sIE1pY2hhZWwgT3NpcG92IDxtaWNoYWVsb0BhcGFjaGUub3JnPgo+Pj4+Cj4+Pj4+IHdyb3RlOgo+Pj4+Pgo+Pj4+PiBBbSAyMDE3LTA5LTEwIHVtIDIyOjI3IHNjaHJpZWIgU3RlcGhlbiBDb25ub2xseToKPj4+Pj4KPj4+Pj4+Cj4+Pj4+PiBXZWxsIEkgcmFuIHRoZSByZWxlYXNlIHdpdGggMS43LjBfODAgd2hpY2ggaWlyYyBpcyB0aGUgbGFzdCBwdWJsaWMKPj4+Pj4+Cj4+Pj4+Pj4gcmVsZWFzZQo+Pj4+Pj4+IG9mIE9yYWNsZSBKYXZhIDcuLi4KPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4gRmFpbHMgYWxzbyBvbiBXaW5kb3dzIHdpdGggWnVsdSA3Ogo+Pj4+Pj4gJCBtdm4gLXYKPj4+Pj4+IEFwYWNoZSBNYXZlbiAzLjUuMCAoZmY4ZjVlNzQ0NDA0NTYzOWFmNjVmNjA5NWM2MjIxMGI1NzEzZjQyNjsKPj4+Pj4+IDIwMTctMDQtMDNUMjE6Mzk6MDYrMDI6MDApCj4+Pj4+PiBNYXZlbiBob21lOiBEOlxFbnR3aWNrbHVuZ1xQcm9ncmFtbWVcYXBhY2hlLW1hdmVuLTMuNS4wCj4+Pj4+PiBKYXZhIHZlcnNpb246IDEuNy4wXzE1NCwgdmVuZG9yOiBBenVsIFN5c3RlbXMsIEluYy4KPj4+Pj4+IEphdmEgaG9tZTogQzpcUHJvZ3JhbSBGaWxlc1xadWx1XHp1bHUtN1xqcmUKPj4+Pj4+IERlZmF1bHQgbG9jYWxlOiBkZV9ERSwgcGxhdGZvcm0gZW5jb2Rpbmc6IENwMTI1Mgo+Pj4+Pj4gT1MgbmFtZTogIndpbmRvd3MgMTAiLCB2ZXJzaW9uOiAiMTAuMCIsIGFyY2g6ICJhbWQ2NCIsIGZhbWlseToKPj4+Pj4+ICJ3aW5kb3dzIgo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gT24gU3VuIDEwIFNlcCAyMDE3IGF0IDIxOjA4LCBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz4KPj4+Pj4+IHdyb3RlOgo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+Pj4gRm9sa3MsCj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+PiB0cmllZCBydW5uaW5nIG1hc3RlciBvbgo+Pj4+Pj4+PiBNYXZlbiBob21lOiAvdXNyL2xvY2FsL3NoYXJlL2phdmEvbWF2ZW4KPj4+Pj4+Pj4gSmF2YSB2ZXJzaW9uOiAxLjcuMF8xNTEsIHZlbmRvcjogT3JhY2xlIENvcnBvcmF0aW9uCj4+Pj4+Pj4+IEphdmEgaG9tZTogL3Vzci9sb2NhbC9vcGVuamRrNy9qcmUKPj4+Pj4+Pj4gRGVmYXVsdCBsb2NhbGU6IGRlX0RFLCBwbGF0Zm9ybSBlbmNvZGluZzogVVRGLTgKPj4+Pj4+Pj4gT1MgbmFtZTogImZyZWVic2QiLCB2ZXJzaW9uOiAiMTEuMS1yZWxlYXNlLXAxIiwgYXJjaDogImkzODYiLCBmYW1pbHk6Cj4+Pj4+Pj4+ICJ1bml4Igo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBhbmQgSSBnZXQgdGhpczoKPj4+Pj4+Pj4gRmFpbGVkIHRlc3RzOgo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X2NvcmVSZWFsbURlZmF1bHRQYXIKPj4+Pj4+Pj4gZW50Q2xhc3NMb2FkZXI6OTkKPj4+Pj4+Pj4gbnVsbAo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X2V4dGVuc2lvblJlYWxtRGVmYXUKPj4+Pj4+Pj4gbHRQYXJlbnRDbGFzc0xvYWRlcjo3Mwo+Pj4+Pj4+PiBudWxsCj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfbWF2ZW5BcGlSZWFsbURlZmF1bAo+Pj4+Pj4+PiB0UGFyZW50Q2xhc3NMb2FkZXI6OTEKPj4+Pj4+Pj4gbnVsbAo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X3BsdWdpblJlYWxtRGVmYXVsdFAKPj4+Pj4+Pj4gYXJlbnRDbGFzc0xvYWRlcjo2Mgo+Pj4+Pj4+PiBudWxsCj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfcHJvamVjdFJlYWxtRGVmYXVsdAo+Pj4+Pj4+PiBQYXJlbnRDbGFzc0xvYWRlcjo4Mwo+Pj4+Pj4+PiBudWxsCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IEFsbCB0ZXN0cyBmYWlsIHdpdGggImp1bml0LmZyYW1ld29yay5Bc3NlcnRpb25GYWlsZWRFcnJvcjogbnVsbCIuCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IFJ1bm5pbmcgd2l0aAo+Pj4+Pj4+PiBNYXZlbiBob21lOiAvdXNyL2xvY2FsL3NoYXJlL2phdmEvbWF2ZW4KPj4+Pj4+Pj4gSmF2YSB2ZXJzaW9uOiAxLjguMF8xNDQsIHZlbmRvcjogT3JhY2xlIENvcnBvcmF0aW9uCj4+Pj4+Pj4+IEphdmEgaG9tZTogL3Vzci9sb2NhbC9vcGVuamRrOC9qcmUKPj4+Pj4+Pj4gRGVmYXVsdCBsb2NhbGU6IGRlX0RFLCBwbGF0Zm9ybSBlbmNvZGluZzogVVRGLTgKPj4+Pj4+Pj4gT1MgbmFtZTogImZyZWVic2QiLCB2ZXJzaW9uOiAiMTEuMS1yZWxlYXNlLXAxIiwgYXJjaDogImkzODYiLCBmYW1pbHk6Cj4+Pj4+Pj4+ICJ1bml4Igo+Pj4+Pj4+Pgo+Pj4+Pj4+PiB3b3JrcyBmbGF3bGVzc2x5Lgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBBbnkgaWRlYXM/Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+Pj4+PiAtLS0tLS0tLS0KPj4+Pj4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+Pj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAtLQo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBTZW50IGZyb20gbXkgcGhvbmUKPj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+Pj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pgo+Pj4+Pgo+Pj4+Cj4+Pgo+Pj4KPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KPj4KPiAKPiAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM4ODctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IFNlcCAgNyAxMjo1Mzo0OCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM4ODctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQzNBQTAxQUMyRQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsICA3IFNlcCAyMDE3IDEyOjUzOjQ4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzc3MDMgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBTZXAgMjAxNyAxMjo1Mzo0OCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzc2MTggaW52b2tlZCBieSB1aWQgNTAwKTsgNyBTZXAgMjAxNyAxMjo1Mzo0OCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc3NjA1IGludm9rZWQgYnkgdWlkIDk5KTsgNyBTZXAgMjAxNyAxMjo1Mzo0OCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMDcgU2VwIDIwMTcgMTI6NTM6NDggKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA5REJDMkM0OTE1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAgNyBTZXAgMjAxNyAxMjo1Mzo0NyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjYKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuNiB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUZSRUVNQUlMX1JFUExZPTEsIEtBTV9BU0NJSV9ESVZJREVSUz0wLjgsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxLAoJVVJJQkxfQkxPQ0tFRD0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEdvVXdXdXdncU9YTyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVRodSwgIDcgU2VwIDIwMTcgMTI6NTM6NDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC1wZzAtZjQ3Lmdvb2dsZS5jb20gKG1haWwtcGcwLWY0Ny5nb29nbGUuY29tIFs3NC4xMjUuODMuNDddKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMjE1RUI2MTA0OAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgIDcgU2VwIDIwMTcgMTI6NTM6NDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtcGcwLWY0Ny5nb29nbGUuY29tIHdpdGggU01UUCBpZCB2NjZzbzIwNTQzMjQwcGdiLjUKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAwNyBTZXAgMjAxNyAwNTo1Mzo0MiAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9ZnJvbTpjb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOm1pbWUtdmVyc2lvbjpkYXRlOnN1YmplY3Q6bWVzc2FnZS1pZAogICAgICAgICA6cmVmZXJlbmNlczppbi1yZXBseS10bzp0bzsKICAgICAgICBiaD1XUFBVNGEvMUtLYW9QY1VsQVBqMkczK1BYSE5Xd2FFbnhVS3g0TGoxNFVVPTsKICAgICAgICBiPWswMVVrampWVUdGejBIQW5Bd256STdtc3czRFQraHFGTU9VSzJLSzYrclRNTm10Y0V3UnJKREQ5Y0R3cXA4TjZobwogICAgICAgICBXbVY0MDY1bEpFM2ZMNUxRRjMwVDdDOXFhMEo4WWs1cUVDckIrNVBBd2RaVWdNLzdnK0Nya1I5V2Y3K3NtUHpDYUFMegogICAgICAgICBMVExIbTJUM3ZnY2RJTEdWYUN6dGgyY3YzR2g5U29uNHBPMnB1UkFrRGg2bHljQlZtVFVwSzREVkpQUmptbnZPSmRHcgogICAgICAgICBod3IrU2lHcWx1d3NxNFFGMHpxZmNSQ0dhd2dEL2pHaVMxbnVSVnljbVg4NktXMDFsSElsTVh2blBuRko1ZXBOVGh6TgogICAgICAgICAwYkJmci8rWkduUDdoQzNUeXRzMXVoVDlKT0JSem9jYlhHcDBkRWFmY2Y5My9Ic3ltcGt6aTNUb3hKU2IrL0VaY2lGbgogICAgICAgICBjYUF3PT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTpmcm9tOmNvbnRlbnQtdHJhbnNmZXItZW5jb2Rpbmc6bWltZS12ZXJzaW9uOmRhdGUKICAgICAgICAgOnN1YmplY3Q6bWVzc2FnZS1pZDpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOnRvOwogICAgICAgIGJoPVdQUFU0YS8xS0thb1BjVWxBUGoyRzMrUFhITld3YUVueFVLeDRMajE0VVU9OwogICAgICAgIGI9VXdXSjRyRVRlWGF3emNHSVZBRVpxeVdhR2tQVVdyQzJGUVF1V3lzQitPb0pQbE9tQkZUSGYvamxGQXZ0QVdRSTQ5CiAgICAgICAgIFlnMSttallHT3JPWE91NUZtMmxFOXB5dzVnZmQydHVUVVVOcEhQanZRcnVsOU1oKzVQTXozL0xmWURsVW9xZW9vK3U4CiAgICAgICAgIHRXVFErU0VNMS9ia1hFQ3I3ZXBqQWY3TDc1SDZMTFFIT2QvRHZDckJUR0NDN0hTQTBUTXB3ekh5RGlZVXdUZFBqcVBiCiAgICAgICAgIGRIQWUxVU8yWjcyTTI5MGZ0ZEdia3hPbDBpTTlGZmlMeG5SdStEd09JZTVCN284bmlIdTh6ZGtKZVk4Q2pUaWJLV3lrCiAgICAgICAgIEx6RVp2M01ZbTNUSEJVaUQxM2hDYlhTelRubEdMRFBIcll1NVdFYldYOUNPRU5EZjE2cWNmQ2x5OVFCVncyeitRcU9rCiAgICAgICAgIHJjZnc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWoxN3FpeEJBcDJ4SmxrbWM1cTczYVJTN2hEeENpMVJJMnM5WmwvaWpDU0xSbjFydWl4CglFR21keWNXVUQ1aE9NMGxKClgtR29vZ2xlLVNtdHAtU291cmNlOiBBREtDTmI3Q3J6S2t0azRQRlZqVXFKY3dqZElhYlJoT1l5cjlESG5GaDljRWpKVlNDaHNnREk0SzhpZi8zcnZOa3FtV3Z4RGNnMmlmN1E9PQpYLVJlY2VpdmVkOiBieSAxMC45OS4xMTQuOTIgd2l0aCBTTVRQIGlkIGMyOG1yMjU1MjYyMHBnbi4zNzguMTUwNDc4ODgyMDI3NTsKICAgICAgICBUaHUsIDA3IFNlcCAyMDE3IDA1OjUzOjQwIC0wNzAwIChQRFQpClJlY2VpdmVkOiBmcm9tIFsyMDMuMjcuNzguMTU5XSAocDE4LTAwOC52aXJ0dWFsLm5ldC5hdS4gWzIwMy4yOS4xOC44XSkKICAgICAgICBieSBzbXRwLmdtYWlsLmNvbSB3aXRoIEVTTVRQU0EgaWQgaTYzc200NDYwNTI0cGZrLjM0LjIwMTcuMDkuMDcuMDUuNTMuMzcKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPgogICAgICAgICh2ZXJzaW9uPVRMUzFfMiBjaXBoZXI9RUNESEUtUlNBLUFFUzEyOC1HQ00tU0hBMjU2IGJpdHM9MTI4LzEyOCk7CiAgICAgICAgVGh1LCAwNyBTZXAgMjAxNyAwNTo1MzozOCAtMDcwMCAoUERUKQpGcm9tOiBDaHJpcyBHcmFoYW0gPGNocmlzZ3dhcnBAZ21haWwuY29tPgpYLUdvb2dsZS1PcmlnaW5hbC1Gcm9tOiBDaHJpcyBHcmFoYW0gPENocmlzR1dhcnBAZ21haWwuY29tPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47CgljaGFyc2V0PXVzLWFzY2lpCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKTWltZS1WZXJzaW9uOiAxLjAgKDEuMCkKRGF0ZTogVGh1LCA3IFNlcCAyMDE3IDIyOjUzOjM1ICsxMDAwClN1YmplY3Q6IFJlOiBRdWVzdGlvbi4uLmNvbmNlcm5pbmcgY2xhc3NpZmllcgpNZXNzYWdlLUlkOiA8OEQzM0REMkUtQkNEQS00NDQ4LTlCRDgtQzI0N0E0QzIxN0ZDQGdtYWlsLmNvbT4KUmVmZXJlbmNlczogPDU2ODE3QjkxLjEwMjAxMDhAZ214LmRlPiA8Q0FLdVZ6QlMyNzRUcE9KcEZtTW9DTXdBWW9BQ1lIZmdEK2NPM2dMNW5pNWVLK1JNVGNnQG1haWwuZ21haWwuY29tPiA8NTY4MTgwNjguNzAxMDEwOUBnbXguZGU+IDwyRjA1RjUxRC0wQTMwLTQ1QzctODJDQS05RkVEOTA1NTEwNTVAZ21haWwuY29tPiA8Q0ErblBuTXh1QlZNVFJqMTlMX3NiVCtwM0tDUmRIbXhtUk1NU2Y4SEthdXRXPW9nV3BnQG1haWwuZ21haWwuY29tPgpJbi1SZXBseS1UbzogPENBK25Qbk14dUJWTVRSajE5TF9zYlQrcDNLQ1JkSG14bVJNTVNmOEhLYXV0Vz1vZ1dwZ0BtYWlsLmdtYWlsLmNvbT4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClgtTWFpbGVyOiBpUGFkIE1haWwgKDE0RzYwKQoKVGhhdCBpcyBwcmV0dHkgbXVjaCB3aGF0IEknZCBjb21lIHVwIHdpdGggdG9vLiBUaGFua3MhCgpTZW50IGZyb20gbXkgaVBhZAoKPiBPbiA3IFNlcCAyMDE3LCBhdCA2OjI1IHBtLCBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuYz0Kb20+IHdyb3RlOgo+PTIwCj4gQ2xhc3NpZmllZHMgYXJlIGxpbWl0ZWQgdG8gdGhlIHNhbWUgY2hhcmFjdGVyIHNldCBhcyA8YXJ0aWZhY3RJZD5zIGFuZAo+IDx0eXBlPnMgZm9yIHRoZSBzYW1lIHJlYXNvbiB0aGF0IHRoZXkgd2lsbCBmb3JtIHBhcnQgb2YgdGhlIGZpbGVuYW1lLgo+PTIwCj4+IE9uIFRodSA3IFNlcCAyMDE3IGF0IDA4OjI2LCBDaHJpcyBHcmFoYW0gPGNocmlzZ3dhcnBAZ21haWwuY29tPiB3cm90ZToKPj49MjAKPj4gSGkgS2FybCwKPj49MjAKPj4gRGlkIHlvdSBldmVyIGZpbmQgd2hhdCB5b3Ugd2VyZSBsb29raW5nIGZvcj8KPj49MjAKPj4gSSBjYW1lIGFjcm9zcyB0aGlzIGluIGEgc2VhcmNoIG9uIGNsYXNzaWZpZXJzIGFzIEkgd2FudCB0byBiZSBhYmxlIHRvCj4+IGFjY2VzcyB0aGVtIGFzIGEgcGFydCBvZiBhIGZpbHRlci90cmFuc2Zvcm1hdGlvbiB3aGVuIHRoZSBhc3NlbWJsZSBwbHVnaW49Cgo+PiBkb2VzIGl0J3Mgam9iLgo+Pj0yMAo+PiBJIGFtIGZpbmRpbmcgdGhhdCBjbGFzc2lmaWVycyBhcmUgbm90IHdlbGwgZG9jdW1lbnRlZCB0aGVpciB1c2FnZSBhdCBhbGwhPQoKPj4gOi0oCj4+PTIwCj4+IFNlbnQgZnJvbSBteSBpUGhvbmUKPj49MjAKPj4+IE9uIDI5IERlYyAyMDE1LCBhdCA1OjMzIGFtLCBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4KPj4gd3JvdGU6Cj4+Pj0yMAo+Pj4gSGkgVGlib3IsCj4+Pj0yMAo+Pj4+IE9uIDEyLzI4LzE1IDc6MjIgUE0sIFRpYm9yIERpZ2FuYSB3cm90ZToKPj4+PiBIbSwgY2xhc3NpZmllcnMgaW4gcGx1Z2lucywgbm90IHJlYWxseSB1c2VkIGF0IGFsbC4gRGVwZW5kZW5jaWVzIHllcy4gST0KCj4+Pj4gZ3Vlc3MgY2xhc3NpZmllciBpcyBtb3JlIG92ZXJoZWFkIGFuZCBldmlsIHRoYW4gYmVuZWZpdC4KPj4+PTIwCj4+PiBJZiB5b3UgYnVpbGQgZm9yIHNldmVyYWwgZW52aXJvbm1lbnRzIHRoYW4geW91IG5lZWQgY2xhc3NpZmllcnMgKGUuZy4KPj4gd2l0aCBtYXZlbi1hc3NlbWJseS1wbHVnaW4pLCBtYXZlbi1qYXItcGx1Z2luICh0ZXN0LWphciwgamFyKSwKPj4gbWF2ZW4tZGVwbG95LXBsdWdpbiwgbWF2ZW4tc291cmNlLXBsdWdpbiwgbWF2ZW4tamF2YWRvYy1wbHVnaW4uLmp1c3QKPj4gbWVudGlvbiBzb21lIGV4YW1wbGVzLi4gZXRjLi4uaSB3b3VsZG4ndCBjYWxsIGl0IGV2aWwuLi4KPj4+PTIwCj4+Pj4gSSByZW1lbWJlciBNYXZlbiBkb2N1IHRhbGtlZCBhYm91dCBjbGFzc2lmaWVyIGpkazEuNSBhcyBhbiBleGFtcGxlIGFuZAo+Pj4+IG1heWJlIGVudmlyb25tZW50IHNwZWNpZmljcywgYnV0IEkgZ3Vlc3MgaXQgd2FzIHRoZSBvbmx5IGV4YW1wbGVzIGluIHRoPQplCj4+Pj4gdHV0b3JpYWwuCj4+Pj0yMAo+Pj4gWWVzIHRoYXQncyB3aGF0IGkga25vdyBvZiBhcyB3ZWxsLi4uCj4+Pj0yMAo+Pj4+IFJlZ2FyZGluZyB2YWxpZCBjaGFyYWN0ZXJzIGluIGNsYXNzaWZpZXIgLSBubyBpZGVhIGlmIGFueSBleGlzdHMuCj4+Pj0yMAo+Pj4gRXhhY3RseSB0aGF0J3Mgd2hhdCBpJ20gc2VhcmNoaW5nIGZvci4uLgo+Pj49MjAKPj4+PTIwCj4+Pj49MjAKPj4+PiBPbiBNb24sIERlYyAyOCwgMjAxNSBhdCA3OjEyIFBNLCBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT0KCj4+Pj4gPG1haWx0bzpraG1hcmJhaXNlQGdteC5kZT4+IHdyb3RlOgo+Pj4+PTIwCj4+Pj4gICBIaSwKPj4+Pj0yMAo+Pj4+ICAgZHVyaW5nIG15IGltcGxlbWVudGF0aW9ucyBpIGhhdmUgY29tZSB0byB0aGUgY29uY2x1c2lvbiBpZiBzb21lb25lCj4+Pj4gICBzZXRzIGEgY2xhc3NpZmllciBmb3IgdGhlIGV4ZWN1dGlvbiBvZiBhIHBsdWdpbi4uLml0IHdvdWxkIGJlIHVzZWZ1bAo+Pj4+ICAgdG8gY2hlY2sgdGhlIHZhbGlkaXR5IG9mIHRoZSBjbGFzc2lmaWVyLi4uCj4+Pj49MjAKPj4+PiAgIEJhc2VkIG9uIHRoYXQgaSBzdGFydGVkIHRvIHNlYXJjaCBidXQgdW5mb3J0dW5hdGVseSBpIGRpZG4ndCBmb3VuZCBhCj4+Pj4gICBkZWZpbml0aW9uIGV0Yy4gZG9jdW1lbnRhdGlvbiBob3cgYSB2YWxpZCBjbGFzc2lmaWVyIGxvb2tzIGxpa2Ugb3IKPj4+PiAgIHRoZSBpbnZlcnNlIHdoYXQgaXQgZG9lcyBub3QgYWxsb3dlZCB0byBiZS4uCj4+Pj49MjAKPj4+PiAgIFNvIGRvZXMgc29tZW9uZSBrbm93IG9mIGFueSBraW5kIG9mIGRlZmluaXRpb24gaG93IGEgdmFsaWQKPj4+PiAgIGNsYXNzaWZpZXIgbG9va3MgbGlrZT8gU29tZSBraW5kIG9mIHJlZmVyZW5jZSA/Cj4+Pj49MjAKPj4+PiAgIEtpbmQgcmVnYXJkcwo+Pj4+ICAgS2FybCBIZWlueiBNYXJiYWlzZQo+Pj49MjAKPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+PTIwCj4+PTIwCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+PTIwCj4+IC0tCj4gU2VudCBmcm9tIG15IHBob25lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzODYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE5vdiAgMyAwOTo0ODoxNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzODYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNjE2RjYxNzY3QgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksICAzIE5vdiAyMDE3IDA5OjQ4OjE1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzMxMDAgaW52b2tlZCBieSB1aWQgNTAwKTsgMyBOb3YgMjAxNyAwOTo0ODoxNSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzI5ODkgaW52b2tlZCBieSB1aWQgNTAwKTsgMyBOb3YgMjAxNyAwOTo0ODoxNCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMyOTc0IGludm9rZWQgYnkgdWlkIDk5KTsgMyBOb3YgMjAxNyAwOTo0ODoxNCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMDMgTm92IDIwMTcgMDk6NDg6MTQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBEQkNGMDE4MDhBNTsKCUZyaSwgIDMgTm92IDIwMTcgMDk6NDg6MTMgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjE3OQpYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuMTc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtIVE1MX01FU1NBR0U9MiwgS0FNX01YVVJJPTEuNSwgUkNWRF9JTl9ETlNXTF9NRUQ9LTIuMywKCVJDVkRfSU5fTVNQSUtFX0g0PS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwKCVJQX01BVENIRVNfUkNWRD0tMC4wMDEsIFNQRl9QQVNTPS0wLjAwMSwgVU5QQVJTRUFCTEVfUkVMQVk9MC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB6Q2x2bTZMUy1ONnU7IEZyaSwgIDMgTm92IDIwMTcgMDk6NDg6MTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gYXNlcnAxMDQwLm9yYWNsZS5jb20gKGFzZXJwMTA0MC5vcmFjbGUuY29tIFsxNDEuMTQ2LjEyNi42OV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA4RDExNTYxMTcwOwoJRnJpLCAgMyBOb3YgMjAxNyAwOTo0ODoxMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSB1c2VydjAwMjIub3JhY2xlLmNvbSAodXNlcnYwMDIyLm9yYWNsZS5jb20gWzE1Ni4xNTEuMzEuNzRdKQoJYnkgYXNlcnAxMDQwLm9yYWNsZS5jb20gKFNlbnRyaW9uLU1UQS00LjMuMi9TZW50cmlvbi1NVEEtNC4zLjIpIHdpdGggRVNNVFAgaWQgdkEzOW01dncwMTk2NDQKCSh2ZXJzaW9uPVRMU3YxLjIgY2lwaGVyPUVDREhFLVJTQS1BRVMyNTYtR0NNLVNIQTM4NCBiaXRzPTI1NiB2ZXJpZnk9T0spOwoJRnJpLCAzIE5vdiAyMDE3IDA5OjQ4OjA2IEdNVApSZWNlaXZlZDogZnJvbSB1c2VydjAxMjIub3JhY2xlLmNvbSAodXNlcnYwMTIyLm9yYWNsZS5jb20gWzE1Ni4xNTEuMzEuNzVdKQoJYnkgdXNlcnYwMDIyLm9yYWNsZS5jb20gKDguMTQuNC84LjE0LjQpIHdpdGggRVNNVFAgaWQgdkEzOW01cGgwMjg2MTAKCSh2ZXJzaW9uPVRMU3YxL1NTTHYzIGNpcGhlcj1ESEUtUlNBLUFFUzI1Ni1HQ00tU0hBMzg0IGJpdHM9MjU2IHZlcmlmeT1PSyk7CglGcmksIDMgTm92IDIwMTcgMDk6NDg6MDUgR01UClJlY2VpdmVkOiBmcm9tIGFiaG1wMDAxOC5vcmFjbGUuY29tIChhYmhtcDAwMTgub3JhY2xlLmNvbSBbMTQxLjE0Ni4xMTYuMjRdKQoJYnkgdXNlcnYwMTIyLm9yYWNsZS5jb20gKDguMTQuNC84LjE0LjQpIHdpdGggRVNNVFAgaWQgdkEzOW00M2IwMDg5MzM7CglGcmksIDMgTm92IDIwMTcgMDk6NDg6MDUgR01UClJlY2VpdmVkOiBmcm9tIGRoY3AtdWtjMS10d3Zwbi0zLXZwbnBvb2wtMTAtMTc1LTIyOS0xMzYudnBuLm9yYWNsZS5jb20gKC8xMC4xNzUuMjI5LjEzNikKCWJ5IGRlZmF1bHQgKE9yYWNsZSBCZWVoaXZlIEdhdGV3YXkgdjQuMCkKCXdpdGggRVNNVFAgOyBGcmksIDAzIE5vdiAyMDE3IDAyOjQ4OjA0IC0wNzAwCkZyb206ICJSb3J5IE8nRG9ubmVsbCIgPHJvcnkub2Rvbm5lbGxAb3JhY2xlLmNvbT4KU3ViamVjdDogSkRLIDEwIGIyOSBFYXJseSBBY2Nlc3MgaXMgYXZhaWxhYmxlIG9uIGpkay5qYXZhLm5ldApDYzogcm9yeS5vZG9ubmVsbEBvcmFjbGUuY29tLCBEYWxpYm9yIFRvcGljIDxkYWxpYm9yLnRvcGljQG9yYWNsZS5jb20+LAogICAgICAgIEJhbGNoYW5kcmEgVmFpZHlhIDxiYWxjaGFuZHJhLnZhaWR5YUBvcmFjbGUuY29tPiwKICAgICAgICBNdW5lZXIgS29sYXJrdW5udSA8YWJkdWwua29sYXJrdW5udUBvcmFjbGUuY29tPiwKICAgICAgICBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpUbzogcmZzY2hvbHRlQGFwYWNoZS5vcmcKTWVzc2FnZS1JRDogPDhhZDliNDc2LWM5MzktNGY1NC04MjcxLWExNmFhZDMxNDAyY0BvcmFjbGUuY29tPgpEYXRlOiBGcmksIDMgTm92IDIwMTcgMDk6NDg6MDEgKzAwMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTI7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi40LjAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7CiBib3VuZGFyeT0iLS0tLS0tLS0tLS0tOTE5M0Y1Qzg0NUYxMDE5MjFDOEVBM0Y3IgpDb250ZW50LUxhbmd1YWdlOiBlbi1VUwpYLVNvdXJjZS1JUDogdXNlcnYwMDIyLm9yYWNsZS5jb20gWzE1Ni4xNTEuMzEuNzRdCgotLS0tLS0tLS0tLS0tLTkxOTNGNUM4NDVGMTAxOTIxQzhFQTNGNwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAoKCgpIaSBSb2JlcnQgLCoqCgpKREsgMTAgRWFybHkgQWNjZXNzwqAgYnVpbGQgMjkgaXMgYXZhaWxhYmxlIGF0IDogLSBqZGsuamF2YS5uZXQvMTAvCgpKREsgMTAgRWFybHkgQWNjZXNzIFJlbGVhc2UgTm90ZXMgYXJlIGF2YWlsYWJsZSBbMV0KCkpESyAxMCBTY2hlZHVsZSwgU3RhdHVzICYgRmVhdHVyZXMgYXJlIGF2YWlsYWJsZSBbMl0KCgogICAgICBOb3RlcwoKICAqIE9wZW5KREsgRUEgYmluYXJpZXMgd2lsbCBiZSBhdmFpbGFibGUgYXQgYSBsYXRlciBkYXRlLgogICogT3JhY2xlIGhhcyBwcm9wb3NlZDogTmV3ZXIgdmVyc2lvbi1zdHJpbmcgc2NoZW1lIGZvciB0aGUgSmF2YSBTRQogICAgUGxhdGZvcm0gYW5kIHRoZSBKREsKICAgICAgbyBQbGVhc2Ugc2VlIE1hcmsgUmVpbmhvbGQncyBwcm9wb3NhbCBbM10gLCBmZWVkYmFjayB2aWEgdGhlCiAgICAgICAgbWFpbGluZyBsaXN0IHRvIE1hcmsgcGxlYXNlLgoKPGh0dHA6Ly9vcGVuamRrLmphdmEubmV0L3Byb2plY3RzL2pkazh1L3JlbGVhc2VzLzh1MTYyLmh0bWw+CgpGZWVkYmFjayAtIElmIHlvdSBoYXZlIHN1Z2dlc3Rpb25zIG9yIGVuY291bnRlciBidWdzLCBwbGVhc2Ugc3VibWl0IHRoZW0gCnVzaW5nIHRoZSB1c3VhbCBKYXZhIFNFIGJ1Zy1yZXBvcnRpbmcgY2hhbm5lbC4KQmUgc3VyZSB0byBpbmNsdWRlIGNvbXBsZXRlIHZlcnNpb24gaW5mb3JtYXRpb24gZnJvbSB0aGUgb3V0cHV0IG9mIHRoZSAKfGphdmEgLS12ZXJzaW9ufCBjb21tYW5kLgoKUmVnYXJkcywKUm9yeQoKWzFdIGh0dHA6Ly9qZGsuamF2YS5uZXQvMTAvcmVsZWFzZS1ub3RlcwpbMl0gaHR0cDovL29wZW5qZGsuamF2YS5uZXQvcHJvamVjdHMvamRrLzEwLwpbM10gaHR0cDovL21haWwub3Blbmpkay5qYXZhLm5ldC9waXBlcm1haWwvamRrLWRldi8yMDE3LU5vdmVtYmVyLzAwMDA4OS5odG1sCgotLSAKUmdkcyxSb3J5IE8nRG9ubmVsbApRdWFsaXR5IEVuZ2luZWVyaW5nIE1hbmFnZXIKT3JhY2xlIEVNRUEgLCBEdWJsaW4sIElyZWxhbmQKCgotLS0tLS0tLS0tLS0tLTkxOTNGNUM4NDVGMTAxOTIxQzhFQTNGNy0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MDczLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBTZXAgMjAgMDU6Mjk6NDggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDczLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDBCNDVEMTBFMEEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyMCBTZXAgMjAxNyAwNToyOTo0OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDkyMTczIGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIFNlcCAyMDE3IDA1OjI5OjQ3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MTk1MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBTZXAgMjAxNyAwNToyOTo0NyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkxOTQwIGludm9rZWQgYnkgdWlkIDk5KTsgMjAgU2VwIDIwMTcgMDU6Mjk6NDcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDIwIFNlcCAyMDE3IDA1OjI5OjQ3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgOTMxODgxODRDMzAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDIwIFNlcCAyMDE3IDA1OjI5OjQ2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTMuMDAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0zLjAwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB1OVRTN3NYQmd4eTAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsIDIwIFNlcCAyMDE3IDA1OjI5OjQ0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1vdXQuZ214Lm5ldCAobW91dC5nbXgubmV0IFsyMTIuMjI3LjE3LjIyXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDVDODVFNUZFNkIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDIwIFNlcCAyMDE3IDA1OjI5OjQ0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIEthcmwtSGVpbnpzLU1hY0Jvb2stUHJvLmZyaXR6LmJveCAoWzE3OC40LjIwMS4yMjldKSBieQogbWFpbC5nbXguY29tIChtcmdteDEwMSBbMjEyLjIyNy4xNy4xNjhdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTU9qTVktMWUwWlNaM3lMZS0wMDY4VjMgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjAgU2VwIDIwMTcKIDA3OjI5OjM4ICswMjAwClJlcGx5LVRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIEpNb2QgUGx1Z2luIHZlcnNpb24gMy4wLjAtYWxwaGEtMQogKEZpcnN0IFB1YmxpYyBSZWxlYXNlKSBUYWtlIDMKRnJvbTogS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8NzBjMGIxYTgtZmVkNi1mNGJmLTFlZDMtNjg2MjQ5MzM2OTNiQGdteC5kZT4KTWVzc2FnZS1JRDogPDhlY2IzMWE5LTM3NmUtZTVhYi05NDYzLTNmMWNjZGFlOGMxZUBnbXguZGU+CkRhdGU6IFdlZCwgMjAgU2VwIDIwMTcgMDc6Mjk6MjQgKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi4zLjAKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDw3MGMwYjFhOC1mZWQ2LWY0YmYtMWVkMy02ODYyNDkzMzY5M2JAZ214LmRlPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDorcHl0eVo4UGtJOWU0UUJSYy94MmJadE9XQWRXckVjbHgrK2VaT2k3ZksvRUYreEYvWDcKIHo2cjk0bmlKM1FINHFKa25JeGxNSkh5dk1TL2ptYjRKdEp1NXBuSHc1OFRXN2twQWl2MmFoUk1HOWM1T09xU1QrdXNOempJCiBiR1VqaHVxeUppcFlCQXNWUkxhd3hnMkM1WndDSVdoSW9XcE8rcTlnejNLUVlQTWY3L2htVHp1SkZMTWx0N3ZzYVZ3ZWh2WgogVTBlb1ZsNzN2VVpjekE3RlhlYXBBPT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDpMYllYN2c4anZxST06aDZDOGZUQ0xlR0FYVHNGVVlXRWpTbAogVFkzaGZWWEo0OTBpTlNtV2JHQjhJOU5SQi8vNzNIbnZhQ0UyNkVTQzJMdldtdmhxdjlJNE9Oamd5V2RRN2Q3aVEyR2RIY3BCOAogM3ZWb3VnYTBDUDZnOWdOTWZpOUJyb3NEWGVtQmRaU3RSeUFndUd4SWNFdkFLR0I1b1NHRVNRdVlaM2ZRdFJBUVFxczR2SUdETQogOTNpUG5oeDh5dnRtdkYySlZKR2k1RjBQbHJ2U1duWFJnK1RMQnlDRjBwNDRkMS9xazZRdXdWQkphTWJLbXBkL0JpWE5RR0lGKwogclhjWklSQU93Nkp4VFVwMWlES2hORUo1T1NpVmpkWW1reDA2WFV5QlpHMWxjMTZGRy9BTnU2bU5aVlRqRTBNU1l5WjJ0OTE2UAogQTZiZFhTR28wbWMveUFXSm9nRHB5RnJlNTV2cUJ1VTRQekQwL3gxZWV1WnBWc2JLM08yaFN5em14NVZsQ0tGNEhuTFlZNytPUQogY090TDg3WTJ1bnFEQzhFcTZxdlRiNWordG51YTJScUJoWkh2MWFPSGpOK29uaTlCSk1IL0c5bjRhaDdNUE5Xd0E0REJvQU9vNgogVHhvMXI5M09mZHBpcW5BcUVSRDR4VGtiQWQ2N0hqWWovL3VFdFl4aHQ1aVQ0N0M2MXNqcmd0TDhNYVh6LzNISlFyQUMrMGtqTgogTjJ2THRhY1VHN2Y4ak1LNXVYZzlKdEQvVEk4dXJ1SHNjcVh2Qkp1N2JCU2M0Mnd0bmRWcHJ4QWdpWVNZeE1xalFZTmZNQjRORQogeHJ1a21UZWtPTTBzTEdwRVNOZVVxVXJkTUtxYjQvdUFGVlNaa0ZFdDFZVWNoMy9UdWtXS0t3MUJDTDVQcmRFUm1ZTTNhWGFidAogT1FYaVNCdFBnVnI5eE5memxkQWVmNmRjcVJLNmFmckZpa1plMlIvU2hleUxmUUR4d2h0N2lvaHdWbXpCWUZ5K3NkRVpwRkdCUAogdE0rU2dVZjhIUGQ1UWxRN2RyelBJRUM0ck5hQWpsdEkwVWZPWVozZXhtdWNTTGxCSmRvN3NZSGRGaXBzNE51bmdOOEk4SXNiZQogMjlBbUg3dDVaZ0pXUGZ2a1pVSHFWb1h3V1VWSFdMUFJBNnNJbEk4SWV1QWxudStjTGs9CgpIaSwKCm9uZSBtb3JlIFBNQyB2b3RlIGlzIG5lZWRlZC4uLgoKS2luZCByZWdhcmRzCkthcmwgSGVpbnogTWFyYmFpc2UKCk9uIDE3LzA5LzE3IDEzOjQwLCBLYXJsIEhlaW56IE1hcmJhaXNlIHdyb3RlOgo+IEhpLAo+IAo+IHRoaXMgaXMgdGhlIFZPVEUgZm9yIHRoZSBmaXJzdCBwdWJsaWMgcmVsZWFzZSBmb3IgTWF2ZW4gSk1vZCBQbHVnaW4uLi4KPiAKPiBXZSBzb2x2ZWQgNCBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMyMTQzMyZ2ZXJzaW9uPTEyMzQxMzYzIAo+IAo+IAo+IFRoZXJlIGFyZSBjdXJyZW50bHkgbm8gaXNzdWVzIGxlZnQgaW4gSklSQS4KPiAKPiBJZiB5b3UgaGF2ZSBhbnkgaXNzdWUgdG8gcmVwb3J0IHBsZWFzZSBvcGVuIGFuIGlzc3VlIGluIEpJUkEKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvcHJvamVjdHMvTUpNT0QKPiAKPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2OS8KPiAKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY5L29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi1qbW9kLXBsdWdpbi8zLjAuMC1hbHBoYS0xL21hdmVuLWptb2QtcGx1Z2luLTMuMC4wLWFscGhhLTEtc291cmNlLXJlbGVhc2UuemlwIAo+IAo+IAo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IG1hdmVuLWptb2QtcGx1Z2luLTMuMC4wLWFscGhhLTEtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6IAo+IGFhMDBiOThjNTM0ZjI0ZTgxNDFlZTBiZWFjZTJhZmYzYmU4OTk2ODgKPiAKPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tam1vZC1wbHVnaW4tTEFURVNULwo+IAo+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCj4gCj4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPiAKPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPiAKPiBLaW5kIHJlZ2FyZHMKPiBLYXJsIEhlaW56IE1hcmJhaXNlCj4gCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzNjQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE9jdCAyOCAxMDoxMToyMiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzNjQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMkJBOUMxMEY0RQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDI4IE9jdCAyMDE3IDEwOjExOjIyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjg0MTggaW52b2tlZCBieSB1aWQgNTAwKTsgMjggT2N0IDIwMTcgMTA6MTE6MTYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY4MzI1IGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE9jdCAyMDE3IDEwOjExOjE2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjgyNzIgaW52b2tlZCBieSB1aWQgOTkpOyAyOCBPY3QgMjAxNyAxMDoxMToxNiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMjggT2N0IDIwMTcgMTA6MTE6MTYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBEQjkwN0MwNEZGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAyOCBPY3QgMjAxNyAxMDoxMToxNSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xLjgKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEuOCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOF0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCA2YWhlcV9BMHNHVUQgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsIDI4IE9jdCAyMDE3IDEwOjExOjE1ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwOC5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEzMF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA3RjlFQzVGQjlGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAyOCBPY3QgMjAxNyAxMDoxMToxNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ2OCB3aXRoIE1FCglpZCBTeUI2MXcwME4yMFVmZHkwM3lCNnhFOyBTYXQsIDI4IE9jdCAyMDE3IDEyOjExOjA3ICswMjAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IFNhdCwgMjggT2N0IDIwMTcgMTI6MTE6MDcgKzAyMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogbW92aW5nIEdpdEh1YiBpc3N1ZSBub3RpZmljYXRpb25zIHRvIGlzc3Vlc0BtYXZlbi5hLm8KRGF0ZTogU2F0LCAyOCBPY3QgMjAxNyAxMjoxMTowNiArMDIwMApNZXNzYWdlLUlEOiA8OTA5MjYyMy5Fc0dCZjFjbjFzQGdpZ2E+CkluLVJlcGx5LVRvOiA8MTUyMjg5OS5JV0VRb1RpR2ZFQGdpZ2E+ClJlZmVyZW5jZXM6IDwxNTIyODk5LklXRVFvVGlHZkVAZ2lnYT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCgpJTkZSQSBpc3N1ZSBjcmVhdGVkCmh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvSU5GUkEtMTUzOTYKClJlZ2FyZHMsCgpIZXJ2PUU5CgpMZSBzYW1lZGkgMjEgb2N0b2JyZSAyMDE3LCAxMjoyMjo0NyBDRVNUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOgo+IEN1cnJlbnRseSwgY29tbWVudHMgYXJlIHNlbnQgdG8gZGV2QG1hdmVuLmEubwo+PTIwCj4gRm9yIG91ciBjbGFzc2ljYWwgb2ZmaWNpYWwgSmlyYSBpc3N1ZSB0cmFja2VyLCBub3RpZmljYXRpb25zIGFyZSBzZW50IHRvCj4gaXNzdWVzQG1hdmVuLmEubwo+PTIwCj4gSWYgbm9ib2R5IG9iamVjdHMgKDcyaCBhcyB1c3VhbCksIEknbGwgYXNrIGluZnJhIHRvIHN3aXRjaCBHaXRIdWIgaXNzdWUKPiBub3RpZmljYXRpb25zIHRvIGlzc2V1c0BtYXZlbi5hLm8KPj0yMAo+IFJlZ2FyZHMsCj49MjAKPiBIZXJ2PUU5Cj49MjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODM2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBEZWMgMjYgMTk6MDE6MTcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODM2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDQ5Nzk2MTcxRDgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAyNiBEZWMgMjAxNyAxOTowMToxNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk0MDggaW52b2tlZCBieSB1aWQgNTAwKTsgMjYgRGVjIDIwMTcgMTk6MDE6MTYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkzMTUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjYgRGVjIDIwMTcgMTk6MDE6MTYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MzA0IGludm9rZWQgYnkgdWlkIDk5KTsgMjYgRGVjIDIwMTcgMTk6MDE6MTYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDI2IERlYyAyMDE3IDE5OjAxOjE2ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMkI3NDZDNDAzNAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjYgRGVjIDIwMTcgMTk6MDE6MTYgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC43MDIKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuNzAyIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LCBSQ1ZEX0lOX01TUElLRV9IMj0tMC4wMDEsCglTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgUlZwVU5DRlhhcVprIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVHVlLCAyNiBEZWMgMjAxNyAxOTowMToxNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNy4yMF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBDQjIxNzVGMUYwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyNiBEZWMgMjAxNyAxOTowMToxNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBLYXJsLUhlaW56cy1NYWNCb29rLVByby5sb2NhbCAoWzkyLjIwNC41OS4yNDVdKSBieSBtYWlsLmdteC5jb20KIChtcmdteDEwMSBbMjEyLjIyNy4xNy4xNjhdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTVpQZXItMWVGd1ViMFA3dC0wMExDcFIgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjYgRGVjIDIwMTcKIDIwOjAxOjA4ICswMTAwClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogaW5mb0Bzb2ViZXMuZGUKRnJvbTogS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+ClN1YmplY3Q6IG1hdmVuLWFyY2hpdmVyIGJ1aWxkIG9uIEplbmtpbnMgLSBUZXN0IEZhaWx1cmVzCk1lc3NhZ2UtSUQ6IDw5NTBkZTI4MC01OTI4LTRmZTMtYWNhOC0wOTIzNDE1MjRjNjZAZ214LmRlPgpEYXRlOiBUdWUsIDI2IERlYyAyMDE3IDIwOjAxOjAyICswMTAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwLjExOyBydjo1Mi4wKQogR2Vja28vMjAxMDAxMDEgVGh1bmRlcmJpcmQvNTIuNS4wCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtODsgZm9ybWF0PWZsb3dlZApDb250ZW50LUxhbmd1YWdlOiBlbi1HQgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0ClgtUHJvdmFncy1JRDogVjAzOkswOmpLeU9pZ3ZPT3VIZE9NWEpwbnlPTGxIa1Y0VU4vSG1Jdk92aGtVZTdHL3VtYWFiN3BGagogV3R3ZnJkMlhpRHFlVU5ZSEUrKy9FYTllMjJiUEgvWVF4UklJb3Vsc2lRcnNialF6THpRMVJnY1BKQ1NsbWNrQTcrQ0V6SFMKIGVHMFJjWHRsVG9sSndTeFFXYldGbDJkUGk2cllYd3R5SWE1aGNCa3Vxa0h6K1Z2eTQwYVdCbzh4S3MySnl3cC9CVzFpY0xwCiBlSlJmZXBYNnNTWjVEZzVoaHpzYXc9PQpYLVVJLU91dC1GaWx0ZXJyZXN1bHRzOiBub3RqdW5rOjE7VjAxOkswOjNCSVY0cFV6UkhFPTpkSTFEQ3JCbzZrV2dHV3ZFSGNjTDRsCiBVc1ErM28raHlWdHV2SVdzMklMSmMzbXhOak1PeTMrSHZ2UDZSRjJQRnVYaVVkaVhib2tvYkE0RnB5N0FpR1g3TzFQdGNtUE9qCiBQNWNFRUVMbVdMSWZ2V0tpaGZVYlhIQ1VxZlA4THVucHRRNU5wN2hrQnpEMG1KdUN3aWUwOXpaWDN5WEVtRzZ4a203cHRLdENtCiBYWG4rV25paW9kWVZ6NjN0NmhtMkNMTE91Yy9DTTRxbHZFOWxNeW1mbUV1TDkwQlQ3VTBwek1uZzlOMEU5Rk5SMU4xTXZRQ3BUCiBUM2F2QlRLWlE3UjZOMFByTG1YZ0hndlZaMnJXZXZwOWFSMkp0eVNEajdGSWtGKzZ0U241Wm5kRHJHTlRKMHFaeEVuL2xLVGV6CiB1Mnphem9SRVcvZ2M3WlpKVWRWY2Qxd0FIZ1pTS1Z0L0dpQ094Nk5aNXNLWVNhL2tEdU1BelFLbTZpb0NpV2VUR0d2OE1sQXJuCiBxcVNpeWN2TXJZUFRiNHJUaGMwakorM3dsNk51M2FTREc3dmYwV2RpTHlEb2poc3g0R2lQd3Z3MENuendkTkNKQ1hESXQ2MWdvCiAvZExoT3pHQ0FhbURwSWdQeXpNeTc5S0xpZ21kVDVzTFdXekg1TytwNWJ0dTkvSUc2bFpnSlpJaTRvbjZBdGJzU2dyKzhxcHloCiBUeHV2Y0lCZUtGSDJnK1QwcUE3MHpsSEg1aWw0SWt3NjdQbnQxNzNORzN2MHQ1ZktLcVA4YUtVNzEvU3VncWd0N0RWVXFaYi9UCiBTeUdPWW5XWWxhYmlveENaWFFwMWZkRzFlK2gzUTNpS3hkTkhHMWE4eFJnZUxSQlM1bVk4bUlCWDdNMVNFME93QjlUNGRtQWlCCiBydFpsdENKNjVTZlZHcEtVYXhHd1loRWNkcXNJc0RIeGtwL0RmdDJlWjZvYW9iK1lka0YzOSt6akdIMGJ2dmoyT09Td2MzREdkCiA2cmVsNlhQdmw0SmU2cHZKTnVvMjhZVzBFckpkNGlOYmgxMlhQVUUrVHh4aFhvUisxcWthajFIbi9lVUIvQW9VMkN5SjF5NlY2CiA0Q1pjZTN6U2Q3UjFqT0o4UDAwd3VYRG9TQmkrREozQmp1RlhxYktEZjdnYXQ4ZHEzYnlpNFB2aDVhZUJ2Z3dYUjE5WTFOegoKSGksCgpjdXJyZW50bHkgSSdtIG9ic2VydmluZyBhIHN0cmFuZ2UgdGhpbmcuLmNhdXNlIHRoZSBidWlsZCBvbiBKZW5raW5zIApwcm9kdWNlcyB0ZXN0IGZhaWx1cmUgd2l0aCBKREsgOQoKaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy9qb2IvbWF2ZW4tYm94L2pvYi9tYXZlbi1hcmNoaXZlci9qb2IvbWFzdGVyLzUvY29uc29sZUZ1bGwKClRoZSBwcm9ibGVtIEknbSBjdXJyZW50bHkgaGF2aW5nIGlzIHRoYXQgSSBjYW4ndCByZXByb2R1Y2UgdGhpcy4uCgpJIGhhdmUgdGVzdGVkIHdpdGggTWF2ZW4gMy41LjIgYW5kIEpESyA5LjAuMSB3aXRob3V0IGFueSBwcm9ibGVtIG9uIG15IApNYWMgLi4uCgpJcyBzb21lb25lIG91dCB0aGVyZSB3aG8gY2FuIGNoZWNrIHRoZSBjdXJyZW50IHN0YXRlIG9mIG1hdmVuLWFyY2hpdmVyIApnaXQgcmVwbyBvbiBXaW5kb3dzIGFuZCBjYW4gcmVwcm9kdWNlIHRoZSBpc3N1ZSA/CgpJdCB3b3VsZCBiZSBncmVhdC4uVGhhbmtzIGluIGFkdmFuY2UuCgpLaW5kIHJlZ2FyZHMKS2FybCBIZWlueiBNYXJiYWlzZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MzkyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgIDQgMTI6NDk6MDggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzkyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDUwM0REMTdEOUMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxMjo0OTowOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQzODE1IGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMTI6NDk6MDggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQzNzMxIGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMTI6NDk6MDcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0MzcxNSBpbnZva2VkIGJ5IHVpZCA5OSk7IDQgTm92IDIwMTcgMTI6NDk6MDcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDQgTm92IDIwMTcgMTI6NDk6MDcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gWzE5Mi4xNjguMS4xM10gKHAzRTlEMjZCMy5kaXAwLnQtaXBjb25uZWN0LmRlIFs2Mi4xNTcuMzguMTc5XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDYwNDgwMUEwMjI2OwoJU2F0LCAgNCBOb3YgMjAxNyAxMjo0OTowNSArMDAwMCAoVVRDKQpTdWJqZWN0OiBSZTogTWF2ZW4gNC4wLjAKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LAogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk13RUg5WjJteXA3MXVhU3JkY3lMSlJGckUtVnJ0MjAxOTFyZDAxaCtVZmhqd0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogTWljaGFlbCBPc2lwb3YgPG1pY2hhZWxvQGFwYWNoZS5vcmc+Ck1lc3NhZ2UtSUQ6IDw5Njk0OGM2Ny1lZTliLWNiMTQtZjNmMS00ZTZhNDM4YTkzZTRAYXBhY2hlLm9yZz4KRGF0ZTogU2F0LCA0IE5vdiAyMDE3IDEzOjQ5OjAwICswMTAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdPVzY0OyBydjo1Mi4wKSBHZWNrby8yMDEwMDEwMQogVGh1bmRlcmJpcmQvNTIuNC4wCk1JTUUtVmVyc2lvbjogMS4wCkluLVJlcGx5LVRvOiA8Q0ErblBuTXdFSDlaMm15cDcxdWFTcmRjeUxKUkZyRS1WcnQyMDE5MXJkMDFoK1VmaGp3QG1haWwuZ21haWwuY29tPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tVVMKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKQW0gMjAxNy0xMS0wNCB1bSAxMzoyMCBzY2hyaWViIFN0ZXBoZW4gQ29ubm9sbHk6Cj4gVGhlIHBhc3QgdHdvIGRheXMsIEhlcnY9QzM9QTksIFJvYmVydCBhbmQgSSBoYXZlIGJlZW4gZGlzY3Vzc2luZyBvdXIgbmU9Cnh0IHN0ZXBzLgo+PTIwCj4gSSB0aGluayB3ZSBoYXZlIGEgc2VtaS1jb25zZW5zdXMgd2hpY2ggSSB3YW50IHRvIGJyaW5nIGJhY2sgdG8gdGhlIGxpc3Q9CjoKPj0yMAo+IFdlIGtlZXAgMy41LnggYXMgYSBzdGFibGUgYnJhbmNoIHdpdGggY3JpdGljYWwgYnVnIGZpeGVzIG9ubHkKPj0yMAo+IFdlIHN3aXRjaCBtYXN0ZXIgdG8gNC4wLjAgYW5kIHN0YXJ0IHRvIGJ1cm4gZG93biBhIHJlbGVhc2Ugc2NvcGUuCj49MjAKPiA0LjAuMCB3aWxsIG5vdCBjaGFuZ2UgdGhlIHBvbSBtb2RlbFZlcnNpb24KPj0yMAo+IFRoZSA0LjAuMCBzY29wZSBzaG91bGQgcHJvYmFibHkgYmU6Cj49MjAKPiBSZXF1aXJlZDoKPiAqIGRyb3AgSmF2YSA3LCBzd2l0Y2ggY29kZWJhc2UgdG8gSmF2YSA4IGlkaW9tcyAod2hpbGUgbWFpbnRhaW5pbmcgYmluYT0KcnkKPiBhcGkgY29tcGF0aWJpbGl0eSBmb3IgcGx1Z2lucykKCldobyBpcyBnb2luZyB0byBkbyB0aGlzPyBJIGhhdmVuJ3QgZXZlbiBzZWVuIGFueSBKYXZhIDcgaW1wcm92ZW1lbnRzPTIwCihOSU8gMiBhbmQgb3RoZXJzKSBpbiBjb3JlIHNpbmNlIDMuMy4gSSBkb3VidCB0aGF0IGNvcmUgd2lsbCB3ZSBiZT0yMApyZXdyaXR0ZW4gd2l0aCBKYXZhIDggaWRpb21zLgpDb25zaWRlciB0aGF0IHdlIHN0aWxsIGhhdmUgcGx1Z2lucyBydW5uaW5nIE1hdmVuIDIuMi54IHdoaWNoIG5lZWQgbW9yZT0yMAphdHRlbnRpb24gZmlyc3QuCgo+ICogc3BlY2lmeSB0aGUgY2xhc3Nsb2FkZXIgYmVoYXZpb3VyIGFuZCBmaXggaW1wbCB0byBhbGlnbiB3aXRoIHNwZWMgKG1hPQp5Cj4gbmVlZCBhIHBsdWdpbiBmbGFnIHRvIGFsbG93IHBsdWdpbnMgdG8gb3B0IGluIHRvIHNwZWMgYmVoYXZpb3VyKQo+ICogc3BlY2lmeSB0aGUgZXh0ZW5zaW9uIHNwZWMKPiAqIGFsbG93IGxpbWl0ZWQgbXV0YXRpb24gb2YgdGhlIHJ1bnRpbWUgbW9kZWwgKHJlZHVjaW5nIHRyYW5zaXRpdmUKPiBkZXBlbmRlbmNpZXMgZm9yIGNvbnN1bWVycyB3aXRoaW4gdGhlIHJlYWN0b3IsIG9ubHkgZm9yIHBsdWdpbiBnb2FscyB0aD0KYXQKPiBkZWNsYXJlIGludGVudCkgdXNlIGNhc2U6IHNoYWRlIHBsdWdpbgo+ICogYmV0dGVyIENJIGludGVncmF0aW9uIGhvb2tzCj4gKiBuaWNlIGVycm9yIG1lc3NhZ2UgZm9yIG5ld2VyIHBvbSBtb2RlbFZlcnNpb24KClRoaXMgbG9va3MgcXVpdGUgcmVhc29uYWJsZSB0byBtZS4KCk1pY2hhZWwKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MTk5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBPY3QgIDggMjI6MDE6NDEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTk5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEQ1OEQ2MTAwQTIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAgOCBPY3QgMjAxNyAyMjowMTo0MSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDMxMDgxIGludm9rZWQgYnkgdWlkIDUwMCk7IDggT2N0IDIwMTcgMjI6MDE6NDEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMxMDAwIGludm9rZWQgYnkgdWlkIDUwMCk7IDggT2N0IDIwMTcgMjI6MDE6NDEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMDk4OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDggT2N0IDIwMTcgMjI6MDE6NDEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDA4IE9jdCAyMDE3IDIyOjAxOjQxICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNkZGMjkxOEI4NjMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sICA4IE9jdCAyMDE3IDIyOjAxOjQwICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuNQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC41IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTEFaWV9ET01BSU5fU0VDVVJJVFk9MSwKCUtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBYZTlGSE9RM1QxUzYgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sICA4IE9jdCAyMDE3IDIyOjAxOjM2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHNtdHAuc210cG91dC5vcmFuZ2UuZnIgKHNtdHAwNi5zbXRwb3V0Lm9yYW5nZS5mciBbODAuMTIuMjQyLjEyOF0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA1MkZBMTVGRTZCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAgOCBPY3QgMjAxNyAyMjowMTozNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBnaWdhLmxvY2FsbmV0IChbODYuMjM4LjE2LjkzXSkKCWJ5IG13aW5mNWQ2NCB3aXRoIE1FCglpZCBLQTFWMXcwMDQyMFVmZHkwM0ExVms0OyBNb24sIDA5IE9jdCAyMDE3IDAwOjAxOjI5ICswMjAwClgtTUUtSGVsbzogZ2lnYS5sb2NhbG5ldApYLU1FLURhdGU6IE1vbiwgMDkgT2N0IDIwMTcgMDA6MDE6MjkgKzAyMDAKWC1NRS1JUDogODYuMjM4LjE2LjkzCkZyb206ID0/SVNPLTg4NTktMT9RP0hlcnY9RTk/PSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogSmVua2lucyBhbmQgTWF2ZW4gMy4wLjUgb3IgSkRLIDcKRGF0ZTogTW9uLCAwOSBPY3QgMjAxNyAwMDowMToyOSArMDIwMApNZXNzYWdlLUlEOiA8OTczMTY0Ny41amdrajM2YWl0QGdpZ2E+ClVzZXItQWdlbnQ6IEtNYWlsLzUuMi4zIChMaW51eC80LjEwLjAtMzUtZ2VuZXJpYzsgS0RFLzUuMzEuMDsgeDg2XzY0OyA7ICkKSW4tUmVwbHktVG86IDxvcC55N3N5NGZleGtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KUmVmZXJlbmNlczogPDEwNTQ0NjE1LkI0aE8zUG52RXpAZ2lnYT4gPENBK25Qbk14PTJTSGEraWJUcVRURVNrZVRvbXJETStBYnhrQVVaKytoNVdMWS1IVzd1UUBtYWlsLmdtYWlsLmNvbT4gPG9wLnk3c3k0ZmV4a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpJIGRvbid0IHJlYWxseSB1bmRlcnN0YW5kIHRoZXNlIGFuc3dlcnM6IGEgZGVtbywgcGxlYXNlCgpSZWdhcmRzLAoKSGVydj1DMz1BOQoKTGUgZGltYW5jaGUgOCBvY3RvYnJlIDIwMTcsIDIwOjMyOjI5IENFU1QgUm9iZXJ0IFNjaG9sdGUgYSA9QzM9QTljcml0IDoKPiBPbiBTdW4sIDA4IE9jdCAyMDE3IDIwOjI3OjE3ICswMjAwLCBTdGVwaGVuIENvbm5vbGx5Cj49MjAKPiA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiBPbiBTdW4gOCBPY3QgMjAxNyBhdCAxODoyOCwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ID0Kd3JvdGU6Cj4gPj4gSSBkb24ndCBnZXQgdGhlIHRlY2huaWNhbCBkZXRhaWxzCj4gPj4gYnV0IElJVUMsIHlvdSdyZSBhYmxlIHRvIGRvIGEgUG9DIHdpdGggb3VyIGF2YWlsYWJsZSBnaXQgcmVwb3NpdG9yaWVzID0Kb2YKPiA+PiBKZW5raW5zIGpvYiBtYWludGVuYW5jZSAoZWFzeSBqb2IgY3JlYXRpb24gKyBlYXN5IEplbmtpbnNmaWxlCj4gPj4gbWFpbnRlbmFuY2UpLAo+ID49MjAKPiA+IEpvYiBjcmVhdGVkIGF1dG9tYXRpY2FsbHkgb25jZSB0aGVyZSBpcyBhIGdpdCByZXBvICB3aXRoIGEgYnJhbmNoIHdpdGggYQo+ID4gSmVua2luc2ZpbGUgLiBObyBodW1hbiBpbnRlcmFjdGlvbiByZXF1aXJlZCBhZnRlciBgZWNobwo+ID4gPUUyPTgwPTlDbWF2ZW5Qcm9qZWN0U3RkQnVpbGQoKTs9RTI9ODA9OUQgPiBKZW5raW5zZmlsZSAmJiBnaXQgYWRkIEplbms9Cmluc2ZpbGUgJiYgZ2l0Cj4gPiBjb21taXQgPUUyPTgwPTlDYWRkIEplbmtpbnNmaWxlPUUyPTgwPTlEICAmJiBnaXQgcHVzaGAKPiA+PTIwCj4gPiBKZW5raW5zZmlsZSBiZWluZyBqdXN0IG9uZSBsaW5lIGBtYXZlblByb2plY3RTdGRCdWlsZGAgb3Igc29tZXRoaW5nIGxpa2UKPiA+IHRoYXQuCj4gPj0yMAo+ID4gSXMgdGhhdCBlYXN5IGVub3VnaD8KPj0yMAo+IElJUkMgdGhlcmUgaXMgdGhpcyBwcm9wb3NhbCB0byBsZXQgcG9tIG1vZHVsZXMgc3VwcG9ydCBkaXJlY3RvcmllcywgcG9tCj4gbG9jYXRpb25zICh0aGVzZSBhcmUgYWxyZWFkeSBzdXBwb3J0ZWQpIGFuZCBTQ00gcmVmZXJlbmNlcy4gTWlnaHQgYmUKPiBpbnRlcmVzdGluZyBmb3IgYW4gYWdncmVnYXRvciBwb20uCj49MjAKPiBSb2JlcnQKPj0yMAo+ID4gYW5kCj4gPj0yMAo+ID4+IHlvdSdyZSBjb25maWRlbnQgdGhhdCBpdCBjYW4gc2NhbGUgdG8gdGhlIHNpemUgd2UncmUgZXhwZWN0aW5nIHdoZW4KPiA+PiB3ZSdyZQo+ID4+IHNwbGl0dGluZyB0aGUgY3VycmVudCBhZ2dyZWdhdG9yIHN2biB0byBtYW55IHNtYWxsIGdpdCByZXBvcwo+ID4+PTIwCj4gPj4gdGhhdCdzIGl0Pwo+ID4+PTIwCj4gPj4gUmVnYXJkcywKPiA+Pj0yMAo+ID4+IEhlcnY9QzM9QTkKPiA+Pj0yMAo+ID4+IExlIGRpbWFuY2hlIDggb2N0b2JyZSAyMDE3LCAxNjoyMToxMCBDRVNUIFN0ZXBoZW4gQ29ubm9sbHkgYSA9QzM9QTljcmk9CnQgOgo+ID4+ID4gT24gU3VuIDggT2N0IDIwMTcgYXQgMDM6NTUsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmY9CnI+Cj4gPj49MjAKPiA+PiB3cm90ZToKPiA+PiA+ID4gVExEUjsgPTNECj4gPj4gPiA+IFBlcmhhcHMgd2UgY2FuIHN0YXJ0IHdpdGggMiBwcm9vZnMgb2YgY29uY2VwdDoKPiA+PiA+ID4gMS4gZnVsbCBnaXQgY2xvbmUgKyBKZW5raW5zIGpvYnMgZm9yIHRoZSA3IGV4aXN0aW5nIGdpdCByZXBvcyAod2l0aAo+ID4+PTIwCj4gPj4gNgo+ID4+PTIwCj4gPj4gPiA+IGFkZGl0aW9uYWwgb25lcyBpbiAyIGRheXMpCj4gPj4gPiA+IDIuIGdpdCBzcGxpdCBvZiBvbmUgb2YgdGhlIGFnZ3JlZ2F0b3Igc3ZuIHRydW5rOiBza2lucyBvcgo+ID4+PTIwCj4gPj4gZG94aWEtdG9vbHMKPiA+PiBjYW4KPiA+Pj0yMAo+ID4+ID4gPiBiZQo+ID4+ID4gPiBlYXN5IGNob2ljZXMgc2luY2UgdGhleSBhcmUgbGlnaHQsIHdoZXJlIHBsdWdpbnMgb3Igc2hhcmVkIGFyZQo+ID4+PTIwCj4gPj4gcGVyaGFwcwo+ID4+IHRvbwo+ID4+PTIwCj4gPj4gPiA+IGhlYXZ5LiBUaGUgb25lIHdvcmtpbmcgb24gdGhpcyBQb0Mgd2lsbCBtYWtlIGhpcyBjaG9pY2UKPiA+PiA+ID49MjAKPiA+PiA+ID4gdGhlbiBtb3JlIGRldGFpbGVkIGFuc3dlciBpbmxpbmUgdGhhdCBsZWFkIHRvIHRoaXMgUG9DcyBwcm9wb3NhbAo+ID4+ID4gPj0yMAo+ID4+ID4gPiBSZWdhcmRzLAo+ID4+ID4gPj0yMAo+ID4+ID4gPiBIZXJ2PUMzPUE5Cj4gPj4gPiA+PTIwCj4gPj4gPiA+IExlIGRpbWFuY2hlIDggb2N0b2JyZSAyMDE3LCAwMDowMjoxMCBDRVNUIFRpYm9yIERpZ2FuYSBhID1DMz1BOWNyaT0KdCA6Cj4gPj4gPiA+ID4gSSBkb24ndCB0aGluayB0aGUgZGV2cyB3b3VsZCB3b3JrIG9uIGFsbCBhcnRpZmFjdHMocHJvamVjdHMpIGEKPiA+Pj0yMAo+ID4+IHRpbWUuCj4gPj49MjAKPiA+PiA+ID4gc3VyZSwgSSB0aGluayBJJ20gb25lIG9mIHRoZSBmZXcgcGVvcGxlIHdvcmtpbmcgb24gbmVhciBldmVyeXRoaW5nCj4gPj49MjAKPiA+PiAod2l0aAo+ID4+PTIwCj4gPj4gPiA+IHJhcmUKPiA+PiA+ID4gZXhjZXB0aW9ucyBsaWtlIFN1cmVmaXJlLCBhcyB5b3Ugbm90aWNlZCA6KSApCj4gPj4gPiA+IGJ1dCBmb3IgdXN1YWwgY29udHJpYnV0b3IsIHRoZXJlIGlzIG5vIGlzc3VlCj4gPj4gPiA+PTIwCj4gPj4gPiA+IEknbSBub3QgYSBnaXQgZXhwZXJ0LCB0aGVuIEkgZG9uJ3Qga25vdyBpZiBlYXN5ICJmdWxsIE1hdmVuIGNsb25lIgo+ID4+PTIwCj4gPj4gaXMKPiA+Pj0yMAo+ID4+ID4gPiBiZXR0ZXIKPiA+PiA+ID4gZG9uZSB3aXRoIGEgc2hlbGwgc2NyaXB0IG9yIHNvbWUgZ2l0IG1vZHVsZXMKPiA+PiA+ID49MjAKPiA+PiA+ID4gPiBJZiB0aGUgbmFtaW5nIGNvbnZlbnRpb24gb2YgcmVwbyBmb3IgYSBwbHVnaW4gd291bGQgYmUgYXJ0aWZhY3RJPQpkLAo+ID4+PTIwCj4gPj4gbGlrZQo+ID4+PTIwCj4gPj4gPiA+ID4gL21hdmVuLWNsZWFuLXBsdWdpbiwgdGhlbiBldmVuIGVhc3kgdG8gZmlndXJlIG91dCB3aGljaCBvbmUgdG8KPiA+Pj0yMAo+ID4+IGNsb25lLgo+ID4+PTIwCj4gPj4gPiA+ID4gVGhlIG1vc3QgbGlrZWx5IHRoZSBkZXYgd291bGQganVzdCBjbG9uZSBvbmUgcmVwbyBzaGUvaGUgaXMKPiA+Pj0yMAo+ID4+IGludGVyZXN0ZWQKPiA+Pj0yMAo+ID4+ID4gPiA+IGluCj4gPj4gPiA+ID4gYXQgdGhlIG1vbWVudCwgaS5lLiByZXBvc2l0b3J5IC9tYXZlbi1jbGVhbi1wbHVnaW4sIGxldCdzIHNheS4KPiA+PiA+ID4gPiBJdCdzIGdvb2QgdG8gYXZvaWQgYW55IHNoYXJlZCBmaWxlcyBhY3Jvc3MgdGhlbSwgZXZlbiBJIGRvbid0Cj4gPj49MjAKPiA+PiB0aGluawo+ID4+IGRldnMKPiA+Pj0yMAo+ID4+ID4gPiA+IHNoYXJlIHNvbWUgaW4gc3ZuIHRvZGF5LiBUaGUgcmVsZWFzZSBwcm9jZXNzIHdvdWxkIGJlIHF1aXRlIHVzdWE9CmwsCj4gPj49MjAKPiA+PiBpLmUuCj4gPj49MjAKPiA+PiA+ID4gb25lCj4gPj4gPiA+PTIwCj4gPj4gPiA+ID4gcmVwbyA9M0Qgb25lIHByb2plY3QsIGFuZCBuZXcgZGV2cyBhbHJlYWR5IGhhdmUgdGhlc2UgZXhwZXJpZW5jZXMKPiA+Pj0yMAo+ID4+IHdoaWNoCj4gPj49MjAKPiA+PiA+ID4gd2lsbAo+ID4+ID4gPj0yMAo+ID4+ID4gPiA+IGJlIHNpbXBsZSBmb3IgdGhlbSB0byBhZGFwdCBmYXN0ZXIuCj4gPj4gPiA+PTIwCj4gPj4gPiA+ICsxCj4gPj4gPiA+IHRoZSBvbmx5IGRyYXdiYWNrIEkgc2VlIGN1cnJlbnRseSBpcyB0aGF0IHRoZXJlIGlzIG5vIG5hdHVyYWwKPiA+Pj0yMAo+ID4+IGdyb3VwaW5nLAo+ID4+PTIwCj4gPj4gPiA+IHRoZW4KPiA+PiA+ID4gd2UgaGF2ZSBhIGZsYXQgbGl0IG9mIG5lYXIgMTAwIGdpdCByZXBvcyB3aXRob3V0IHRoZSBjdXJyZW50Cj4gPj49MjAKPiA+PiBzdHJ1Y3R1cmUKPiA+Pj0yMAo+ID4+ID4gPiAocGx1Z2lucywgc2hhcmVkIGNvbXBvbmVudHMsIHNraW5zLCAuLi4pOiBJIHRoaW5rIGNvbXBvbmVudHMKPiA+Pj0yMAo+ID4+IHN0cnVjdHVyZQo+ID4+IGlzCj4gPj49MjAKPiA+PiA+ID4gdXNlZnVsIGZvciBtYWludGVuYWJpbGl0eQo+ID4+ID4gPiBidXQgbm90IHJlYWxseSBhIGNvbXBsZXRlIHNob3dzdG9wcGVyCj4gPj4gPiA+IGFuZCBwZXJoYXBzIHRoZSAiTWF2ZW4gZnVsbCBjbG9uZSIgdG9vbGluZyBjYW4gcmUtY3JlYXRlIHNvbWUKPiA+Pj0yMAo+ID4+IGdyb3VwaW5nCj4gPj4gdG8KPiA+Pj0yMAo+ID4+ID4gPiBrZWVwCj4gPj4gPiA+IHZpc2libGUgc3RydWN0dXJlCj4gPj4gPiA+PTIwCj4gPj4gPiA+IE5vdywgc29tZW9uZSBoYXMgdG8ga25vdyBob3cgdG8gY3JlYXRlIHBlci1jb21wb25lbnQgZ2l0IHJlcG8gd2l0aAo+ID4+PTIwCj4gPj4gdGFncwo+ID4+PTIwCj4gPj4gPiA+IChlaXRoZXIgYnkgcmV3b3JraW5nIGV4aXRpbmcgZ2l0IG1pcnJvcnMsIGVpdGhlciBieSByZXN0YXJ0aW5nIGZyb20KPiA+Pj0yMAo+ID4+IHN2biksCj4gPj49MjAKPiA+PiA+ID4gYW5kCj4gPj4gPiA+IHRoYXQncyBub3QgbWUgOikKPiA+PiA+ID49MjAKPiA+PiA+ID4gZ2l2ZW4gdGhlIHZvbHVtZSAoYWRkaW5nIDcwIGdpdCByZXBvcyBmb3IgTWF2ZW4pLCB3ZSdsbCBoYXZlIHRvIHRlPQpsbAo+ID4+PTIwCj4gPj4gaW5mcmEKPiA+Pj0yMAo+ID4+ID4gPiBhYm91dCBpdC4KPiA+PiA+ID49MjAKPiA+PiA+ID4gVGhlbiB0aGVyZSBpcyB0aGUgSmVua2lucyBqb2JzIGNvbmZpZ3VyYXRpb246Cj4gPj4gPiA+IC0gd2UgbmVlZCBlYXN5IEplbmtpbnNmaWxlIGluIGVhY2ggcmVwbwo+ID4+ID49MjAKPiA+PiA+IHNvIHdlIGNyZWF0ZSBhIHNoYXJlZCBHcm9vdnkgbGlicmFyeSBsaWtlIHRoZSBKZW5raW5zIHByb2plY3QgZG9lcyBhPQpuZAo+ID4+PTIwCj4gPj4gdGhlCj4gPj49MjAKPiA+PiA+IEplbmtpbnNmaWxlIGJlY29tZXMgYGJ1aWxkUGx1Z2luYCBmb3IgYWxsIGV4Y2VwdCBjb3JlCj4gPj4gPj0yMAo+ID4+ID4gPiAtIHdlIG5lZWQgZWFzeSA4MCBqb2JzIGNyZWF0aW9uIChubywgSSB3b24ndCBtYW51YWxseSBjcmVhdGUgODAgam89CmJzCj4gPj4gPiA+IHBlcnNvbmFsbHkpCj4gPj4gPj0yMAo+ID4+ID4gU28gSSB3aWxsIGFkZCBTQ01OYXZpZ2F0b3IgZnVuY3Rpb25hbGl0eSB0byB0aGUgQVNGIGdpdC1KZW5raW5zIHBsdWc9CmluCj4gPj49MjAKPiA+PiBhbmQKPiA+Pj0yMAo+ID4+ID4gd2UganVzdCBkZWZpbmUgYW4gb3JnLWZvbGRlciBmb3IgTWF2ZW4gYW5kIGFsbCBnaXQgcmVwb3Mgd2l0aCBhCj4gPj49MjAKPiA+PiBKZW5raW5zZmlsZQo+ID4+PTIwCj4gPj4gPiB3aWxsIGJlIGF1dG8tbWFpbnRhaW5lZC4KPiA+PiA+PTIwCj4gPj4gPiA+IEFuZCBvbmNlIGFnYWluLCBpbmZyYSB3aWxsIGhhdmUgdG8gYmUgaW4gdGhlIGxvb3AgKGF0IEplbmtpbnMgc2lkZQo+ID4+PTIwCj4gPj4gdGhpcwo+ID4+PTIwCj4gPj4gPiA+IHRpbWUpLAo+ID4+ID4gPiBzaW5jZSBJIGZlYXIgdGhlIGxvYWQgb24gSmVua2lucyBtYXN0ZXIgbm9kZSB3b24ndCBiZSBsaWdodDogcGVyaGE9CnBzCj4gPj4gPiA+IHRoYXQncwo+ID4+ID4gPiB3aGVyZSBKZW5raW5zIGZvbGRlcnMgd2lsbCBiZSB1c2VmdWwsIGJ1dCBJJ20gbm90IGEgSmVua2lucyBleHBlcnQKPiA+Pj0yMAo+ID4+IGVpdGhlci4KPiA+Pj0yMAo+ID4+ID4gSWYgd2UgdXNlIGFuIG9yZyBmb2xkZXIgaW50ZWdyYXRlZCB3aXRoIEdpdFB1YlN1YiBJIGRvIG5vdCB0aGluayB0aGV5Cj4gPj49MjAKPiA+PiB3aWxsCj4gPj49MjAKPiA+PiA+IGJlIG92ZXJseSBjb25jZXJuZWQKPiA+PiA+PTIwCj4gPj4gPiA+IElmIGV2ZXJ5dGhpbmcgc2VlbXMgZmVhc2libGUgdG8gc3BsaXQgb3VyIHN2biBjb2RlIGludG8gMSBnaXQgcmVwbwo+ID4+PTIwCj4gPj4gcGVyLQo+ID4+PTIwCj4gPj4gPiA+IGNvbXBvbmVudCwgd2hpY2ggd2lsbCBicmluZyB1cyB0byAiZnVsbCBNYXZlbiBjb2RlIiBiZWluZyBuZWFyIDEwMAo+ID4+PTIwCj4gPj4gcmVwb3MsCj4gPj49MjAKPiA+PiA+ID4gSSdtCj4gPj4gPiA+IG9rIHdpdGggaXQuCj4gPj4gPiA+IFdlJ2xsIG5lZWQgdGhlIGhlbHAgb2YgbWlzYyBleHBlcnRzIG9uIEplbmtpbnMgYW5kIGdpdCB0byBwcmVwYXJlCj4gPj49MjAKPiA+PiB0aGluZ3MKPiA+Pj0yMAo+ID4+ID4gPiBhdAo+ID4+ID4gPiB0aGlzIHNjYWxlLgo+ID4+ID49MjAKPiA+PiA+IEkgdGhpbmsgb25lIHJlcG8gcGVyIHJlbGVhc2Ugcm9vdCBpcyB0aGUgd2F5IHRvIGdvLgo+ID4+ID49MjAKPiA+PiA+IFdlIHNob3VsZCBzdGFydCBieSBkcmF3aW5nIHVwIGEgbGlzdCBhbmQgYW1hbGdhbWF0aW9uIHdoZXJlCj4gPj49MjAKPiA+PiBhcHByb3ByaWF0ZToKPiA+PiA+IEVnCj4gPj4gPj0yMAo+ID4+ID4gKiBkb2VzIGl0IG1ha2Ugc2Vuc2UgdG8gcmVsZWFzZSBtYXZlbi1kZXBsb3ktcGx1Z2luIGFuZAo+ID4+ID4gbWF2ZW4taW5zdGFsbC1wbHVnaW4gaW5kZXBlbmRlbnRseT8gU2VlbXMgd2UgbW9zdCBvZnRlbiBtYWtlIG1pcnJvcmk9Cm5nCj4gPj4gPiBjaGFuZ2VzIHRvIGJvdGgsIGFuZCBwZXJoYXBzIGl0IHdvdWxkIGJlIGJldHRlciBpZiB3ZSBmb3JjZWQgdGhhdAo+ID4+PTIwCj4gPj4gbW9kZWw/Cj4gPj49MjAKPiA+PiA+IChEb249RTI9ODA9OTl0IGFuc3dlciBpbiB0aGlzIHRocmVhZCwganVzdCBwb2ludGluZyBvdXQgYW4gZXhhbXBsZSkKPiA+Pj0yMAo+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+PTIwCj4gPj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+ID49MjAKPiA+PiA+ID4gLS0KPiA+PiA+PTIwCj4gPj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+Pj0yMAo+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+PTIwCj4gPj4gLS0KPiA+PTIwCj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzNjItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE9jdCAyOCAwODo1MTozNiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzNjItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgN0ZGQjAxMEQzRgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDI4IE9jdCAyMDE3IDA4OjUxOjM2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzk4NDEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggT2N0IDIwMTcgMDg6NTE6MzYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc5NzY2IGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE9jdCAyMDE3IDA4OjUxOjM2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzk3NTUgaW52b2tlZCBieSB1aWQgOTkpOyAyOCBPY3QgMjAxNyAwODo1MTozNiAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAyOCBPY3QgMjAxNyAwODo1MTozNiArMDAwMApSZWNlaXZlZDogZnJvbSBbMTkyLjE2OC4xNzguNTVdIChpcDVmNWJmY2YxLmR5bmFtaWMua2FiZWwtZGV1dHNjaGxhbmQuZGUgWzk1LjkxLjI1Mi4yNDFdKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgOUNDNDAxQTA0REUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDI4IE9jdCAyMDE3IDA4OjUxOjMzICswMDAwIChVVEMpClN1YmplY3Q6IFJlOiBtLXBtZC1wIC0gVXBncmFkZSB0byBNYXZlbiAzClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8MzBlM2JhODAtNTA0Ny1hNzdlLTEyYjgtN2UxYmFjYTJhNDRjQGFwYWNoZS5vcmc+CiA8b3AueThzOHNudWZrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkZyb206IEFuZHJlYXMgRGFuZ2VsIDxhZGFuZ2VsQGFwYWNoZS5vcmc+Ck1lc3NhZ2UtSUQ6IDw5ODEzNzFhYy1mZWVmLWQ5YjktNzNlNS1lMDA0MzFhNjc4MmRAYXBhY2hlLm9yZz4KRGF0ZTogU2F0LCAyOCBPY3QgMjAxNyAxMDo1MTozMCArMDIwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoWDExOyBMaW51eCB4ODZfNjQ7IHJ2OjUyLjApIEdlY2tvLzIwMTAwMTAxCiBUaHVuZGVyYmlyZC81Mi40LjAKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDxvcC55OHM4c251Zmtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKQ29udGVudC1MYW5ndWFnZTogZGUtREUKClRoYW5rcyEgVGhlbiBpdCB3aWxsIGJlIDMuOS4wIDopCgoKQW0gMjguMTAuMjAxNyB1bSAxMDozNSBzY2hyaWViIFJvYmVydCBTY2hvbHRlOgo+IEkgd291bGQgc2F5IG5vLiBKdXN0IGtlZXAgaXQgb24gMyhidXQgZG8gc3dpdGNoIHRvIDMgc2VnbWVudHMsIGkuZQo+IDMuOS4wKS4gTWF2ZW4tc2l0ZS1wbHVnaW4gYW5kIG1hdmVuLWNvbXBpbGVyLXBsdWdpbiBzdWZmZXJlZCB3aXRoIHRoZQo+IHNhbWUgaXNzdWUsIHRoZXkgd2VyZSBhbHJlYWR5IG9uIDMueCBiZWZvcmUgdGhleSB3ZXJlIE1hdmVuMy1vbmx5Lgo+Cj4gSUlSQyB0aGVyZSdzIGEgc21hbGwgbGlzdCB3aXRoIHBsdWdpbnMgd2hpY2ggY291bGRuJ3QgZm9sbG93IHRoaXMgbmV3Cj4gY29udmVudGlvbi4KPgo+IFJvYmVydAo+Cj4gT24gU2F0LCAyOCBPY3QgMjAxNyAxMDozMDo1MSArMDIwMCwgQW5kcmVhcyBEYW5nZWwKPiA8YWRhbmdlbEBhcGFjaGUub3JnPiB3cm90ZToKPgo+PiBIaSwKPj4KPj4gSSdtIHdvcmtpbmcgb24gTVBNRC0yNDAgWzFdIGFuZCB0aGUgY3VycmVudCB0cnVuayB2ZXJzaW9uIG9mIHRoZSBwbHVnaW4KPj4gaXMgMy45LVNOQVBTSE9ULgo+Pgo+PiBTaGFsbCBJIG1vdmUgaXRzIHZlcnNpb24gdG8gNC4wLjAtU05BUFNIT1Q/IE90aGVyIHBsdWdpbnMgd2hlcmUgYXQgMi54Cj4+IGJlZm9yZSB0aGUgbWF2ZW4gMyB1cGdyYWRlIGFuZCBtb3ZlZCB0byAzLjAuMC1TTkFQU0hPVCBhZnRlcndhcmRzLgo+Pgo+PiBJcyB0aGUgbWF0Y2hpbmcgbWFqb3IgdmVyc2lvbiBvZiB0aGUgcGx1Z2luIGFuZCBtYXZlbiB2ZXJzaW9uIGp1c3QgYQo+PiBjb2luY2lkZW5jZSBvciBhY3R1YWxseSByZXF1aXJlZD8gV291bGQgaXQgYmUgYW55IHByb2JsZW0sIHRoYXQgdGhlIG5leHQKPj4gbS1wbWQtcCB3b3VsZCBiZSA0LjAuMD8KPj4KPj4gQW5kIG9uZSBtb3JlIHF1ZXN0aW9uOiA0LjAuMC1TTkFQU0hPVCBvciA0LjAtU05BUFNIT1Q/Cj4+Cj4+Cj4+IFJlZ2FyZHMsCj4+Cj4+IEFuZHJlYXMKPj4KPj4KPj4gWzFdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTVBNRC0yNDAKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+CgotLSAKQW5kcmVhcyBEYW5nZWwKaHR0cHM6Ly9naXRodWIuY29tL2FkYW5nZWwKc2t5cGU6IGFuZHJlYXNfZGFuZ2VsCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MTY0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBPY3QgIDcgMTE6NTY6MzggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTY0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDczOTRFMTBDNzgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgNyBPY3QgMjAxNyAxMTo1NjozOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI0NjU1IGludm9rZWQgYnkgdWlkIDUwMCk7IDcgT2N0IDIwMTcgMTE6NTY6MzggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI0NTc1IGludm9rZWQgYnkgdWlkIDUwMCk7IDcgT2N0IDIwMTcgMTE6NTY6MzggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNDU1NSBpbnZva2VkIGJ5IHVpZCA5OSk7IDcgT2N0IDIwMTcgMTE6NTY6MzcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA3IE9jdCAyMDE3IDExOjU2OjM3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMTVDMTgxQTIyMjU7CglTYXQsICA3IE9jdCAyMDE3IDExOjU2OjM3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTIuNTAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0yLjUwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBmamZaRnRwSDdGSlc7IFNhdCwgIDcgT2N0IDIwMTcgMTE6NTY6MzYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbW91dC5nbXgubmV0IChtb3V0LmdteC5uZXQgWzIxMi4yMjcuMTUuMTldKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRjEzNjc1RjQ2RjsKCVNhdCwgIDcgT2N0IDIwMTcgMTE6NTY6MzUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gS2FybC1IZWluenMtTWFjQm9vay1Qcm8ubG9jYWwgKFs5Mi4yMDQuMTIzLjMyXSkgYnkgbWFpbC5nbXguY29tCiAobXJnbXgwMDMgWzIxMi4yMjcuMTcuMTkwXSkgd2l0aCBFU01UUFNBIChOZW1lc2lzKSBpZAogME1RUXprLTFkcXNiVzJuNzYtMDBUcGxkOyBTYXQsIDA3IE9jdCAyMDE3IDEzOjU2OjM0ICswMjAwClJlcGx5LVRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiA9P1VURi04P1E/W1JFU1VMVF09YzI9YTBbVk9URV1fUmVsZWFzZV9BcGFjaGVfTWF2ZW5fV0FSX1BsdWdpbl92ZXJzPz0KID0/VVRGLTg/UT9pb25fMy4yLjA/PQpGcm9tOiBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LAogTWF2ZW4gUHJvamVjdCBNYW5hZ2VtZW50IENvbW1pdHRlZSBMaXN0IDxwcml2YXRlQG1hdmVuLmFwYWNoZS5vcmc+ClJlZmVyZW5jZXM6IDxkMzBlYTQ3Ni0wNzk0LWYwOTYtY2U2MS01ZmI0MWIwM2I5NmFAZ214LmRlPgpNZXNzYWdlLUlEOiA8OThlMGMwMWYtNzJjYi01YjRjLTcwMzItN2YzYTkwNTliZGE1QGdteC5kZT4KRGF0ZTogU2F0LCA3IE9jdCAyMDE3IDEzOjU2OjM0ICswMjAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwLjExOyBydjo1Mi4wKQogR2Vja28vMjAxMDAxMDEgVGh1bmRlcmJpcmQvNTIuMy4wCk1JTUUtVmVyc2lvbjogMS4wCkluLVJlcGx5LVRvOiA8ZDMwZWE0NzYtMDc5NC1mMDk2LWNlNjEtNWZiNDFiMDNiOTZhQGdteC5kZT4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLUdCCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6anBOaVhuV1hWVEZBLzladkNZeFNCc2ZhaExvT3NUWkxjeWhnRmh6UnM0emRUeEZWVVdPCiBKUWtKYnZiWm5Lb09VbkdMdk1JUWpqcyt3UmgvR1I3MWlsT1JaTzdMUTBCZzUrQVFmUDYzbkowY2tvVmlzUkg2NU5rYlI0TQogQThXZU9vUnBRbzhhUzQ2M3BFR2hva2JTN0FmZEdKL0JqTVpUVlpvdlNzVWl2aG1neEEvb0NJZTZCTktNQy81bnB0eDF1M0kKIElOMWxpeUlqV3dTTVZpbnBLaDFHZz09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6M2UyV0l3OFBQcFk9Onlma2FlbVQ0c3FvWVRwYlo0QmRrMzgKIEF3TklPUUhQeWhmM2wyV0lUbXpiRmJtVEZFdW9NWEh3SFhSTEs3L1kzNlNSVkUxMCtxWFFoZ0gvcG1jREFJdGRlN3I4SmExS0MKIEZDanh3aG90Z0k0YitBdmtuanYycUNuYUZBREdZdTBoUFp1TVRPUHNwNVhZbDBIanhqM3VUQy9aWFR2Z1g0Yk5WMXdYNEVOWTkKIHIwM3REVnpjT0lrODlyRXhPVmZBazBuUDBVa21ocmdEeEtycDBlb25XT2lhL1AySksxYUhtdmxNU1NidVlNL3ZicjdlbzlyVEwKIGpkSFpTcXFCcC91SWgxaXE3alFKNHpQd0dxVHY5WVVPVFo2ZUx2QnowMFlBaEFJU3l5S3kzYWJjbXR6UjhWMzJ0YjhWRnljSWUKIDNLOWpWdUY0WGZxNnBwdnpOUnVzNmppR2lERG9vUTZUNXdQT2E0RE1lSmtBMnN4YU9nNHpRYjY0UHNMZW12N1ZSZWFvWXpNckEKIDlnRFg2YU9weVYxUm0wZVBIbWd1ZlRuam9Cb3RvRGE1TFV0WmlLczcremdUTHZFR0tVdUZHbm5wWGNDekl6U3c5d1N3RVIxWloKIFFVL0wxWExHQXZrS2VBc0FzY3haa1pNeHpLRmpDa3Z2WEFKVUswNmJyNkdRVXJGUEdFazBybkMxb0ExNjFJU0ZOUXcySzJrZUEKIFhQVXVoMXc3enBYTUdQM3UwWXNLWHozczBiQzh2YmhiNHc1dnMrZjJLWFppS0hQMlM1bDZNV0Ivcms4TytlSm9rTnJtcDFhT20KIFNyc2wrTFJMK3h4b3BwMENoUUtHU0o4SjdvZTBKZUdBVGZ6eFdSMktRWGxmaTVySnRQMC9XQjhObkU2eVlMZFB2YmtMdHAyQUYKIFI5YzNta0VqWC8wREUrQ0tlZ1lnTjYyd2NPRUd6eEpNcXh5T2xPMGhpb05sSkZqQXR5Q1FLYVZ4STR5WmloQUNTeWlyZnR2YXkKIHdnQTRXdTBUTDJNNjZFbXM5Q3IxMXpLdkh0dFVxZXJNUkxXQ1BGa2tsSHA3SkYvbkRoTm9CQlhvcTh3U1MwMGdLeUphSU1VZ3MKIEJ4SjhRRDdxMlIxT2dBZ0UySWtzblJadkV2cDl6dy95T0g2SmpYNUEwUjRsd1orRS9jPQoKSGksCgpUaGUgdm90ZSBoYXMgcGFzc2VkIHdpdGggdGhlIGZvbGxvd2luZyByZXN1bHQ6CgorMSA6IE1pa2FpbCBPc2lwb3YgKE1pY2hhZWwgT3NpcG92KSwKICAgICAgRGVqYW4gU3RvamFkaW5vdmnEhywKICAgICAgQmFwdGlzdGUgTWF0aHVzLAogICAgICBIZXJ2w6kgQm91dGVteSwKICAgICAgS2FybC1IZWlueiBNYXJiYWlzZQoKUE1DIHF1b3J1bTogcmVhY2hlZAoKSSB3aWxsIHByb21vdGUgdGhlIGFydGlmYWN0cyB0byB0aGUgY2VudHJhbCByZXBvLgoKS2luZCByZWdhcmRzCkthcmwgSGVpbnogTWFyYmFpc2UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDg3NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgRGVjIDI4IDIxOjUzOjUzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg3NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDMDQ4MjE3M0MyCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjggRGVjIDIwMTcgMjE6NTM6NTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5MDcxNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBEZWMgMjAxNyAyMTo1Mzo1MyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTA2MzcgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggRGVjIDIwMTcgMjE6NTM6NTMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MDYyNSBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IERlYyAyMDE3IDIxOjUzOjUzIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyOCBEZWMgMjAxNyAyMTo1Mzo1MyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDk3RDAwMTgwNzMzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyOCBEZWMgMjAxNyAyMTo1Mzo1MiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDAuMzc5ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTAuMzc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgYjBmQmlaSlUzWHl5IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVGh1LCAyOCBEZWMgMjAxNyAyMTo1Mzo1MSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXFrMC1mMTc3Lmdvb2dsZS5jb20gKG1haWwtcWswLWYxNzcuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIyMC4xNzddKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMzJDNTg1RjE5QwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjggRGVjIDIwMTcgMjE6NTM6NTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtcWswLWYxNzcuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgajEzN3NvMzMzMDE1MjFxa2UuMTAKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyOCBEZWMgMjAxNyAxMzo1Mzo1MCAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnN1YmplY3Q6ZnJvbTppbi1yZXBseS10bzpkYXRlOmNjCiAgICAgICAgIDpjb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOm1lc3NhZ2UtaWQ6cmVmZXJlbmNlczp0bzsKICAgICAgICBiaD01M1E5c3k3R2YzSCtNS0t4eFQrQ3RGNlJTME9vMnhhcEtjK1h3TGZyOHdRPTsKICAgICAgICBiPXJjbEVOOGR4azh3dmJ5Y0h3STlkY2FrQ2V0NisyOUtQS0FtK1hKUzZGKzdKRmVKTjBiMytOaWpzLzNyRlAwS1hDcgogICAgICAgICBxOE90Um8wT0J0dGhMZ1k3V0Q2WURDVjBicXlaMHVxdDhhbkRsd0dhdzgzaXoyU3NBUE5NcXhlTVdkb09LMFkvQlNsUQogICAgICAgICBKNllIaTAwK08razA5QVFjV1pjRnZhSit5RGVFQUdTek5Ja2lScEJ2aHByaGMrNk96TG4xVjYxOTZ2RExMUW5ReUU3MgogICAgICAgICBXUm13RWY1MXdDQW90ZmkybW82ODgwNUxMeW5pS3Q5RVEzb25QQW1xdUNuMjVPNnhnR0grcWw2QkhlQUI1MHNCQkZ5OQogICAgICAgICBsZjZIVlVKU1hIRWFaK1pNTG1hZTArMTVrUThieVpOdnRVeVpIcThpM1crbXRudVFmTlZvN0gzRS94WjZWZW9jd2FtdgogICAgICAgICBXYlJBPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246c3ViamVjdDpmcm9tOmluLXJlcGx5LXRvOmRhdGU6Y2MKICAgICAgICAgOmNvbnRlbnQtdHJhbnNmZXItZW5jb2Rpbmc6bWVzc2FnZS1pZDpyZWZlcmVuY2VzOnRvOwogICAgICAgIGJoPTUzUTlzeTdHZjNIK01LS3h4VCtDdEY2UlMwT28yeGFwS2MrWHdMZnI4d1E9OwogICAgICAgIGI9TUZCblZGTU1qTDlHVVZ3a2hjaUpjSU5IelJ0UnlGbVk2bjVyci9uNi81Yk1ML01HQXdleG9Sd09QYk5qVm1oUHljCiAgICAgICAgIFRkMkc4M2kvazQvYUhsc1FaMmxtQnRWZnFULzJrcW5lYThqZ2hyUDRoalh2eWpaNFllaWltalZ4MjFaRXI0RHBCWVJFCiAgICAgICAgIGg5dDBQcjQ0WHBXbWZzaUVoTWJWUnJ5TlBTb2pnUGVCVytOMzhKUjVUUWRqRm8wOGZJRDluZVhNNnhGVmY4Z0YxLzcyCiAgICAgICAgIE8zWEdaMHVaeU1pUmhYZmI0QWVJbTJWL1gwV1U3MVVwSDN5RSsrb054bURpRk5sTjJQS2FQRlRMQnE0OE1rejY2UE5tCiAgICAgICAgIC95Ymk2akZCZklVYlhSVUtCZmpOMlg2MFIyNnNkNC9FTmNoai9CL3hzc2s1azdFY3NyMXc3QU05SDNsa01EZzc5dm4zCiAgICAgICAgIGFiaGc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFLR0IzbUxVUjFWanNuZnZJU2NhOVlTYWNPRUxyZmxlTzVaSUpSaVllcFFvc2JFTFYzYXBvQUtjCgl2NzkvbjVsQ0owVXBSbmcrekJpT3d4TT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFDSmZCb3NwUUZnRDJ6RnBqenFoVGxodGJtcERTNm15QWw0c3g2dXIxZ0ZCdFNLQ0gzSVdhZk5wTmxMaGJqMkFzS0RIOWFjZWtTWXlPQT09ClgtUmVjZWl2ZWQ6IGJ5IDEwLjU1LjE2MC4xIHdpdGggU01UUCBpZCBqMW1yMTY5MjgyNTFxa2UuMjQuMTUxNDQ5ODAyOTE0NzsKICAgICAgICBUaHUsIDI4IERlYyAyMDE3IDEzOjUzOjQ5IC0wODAwIChQU1QpClJlY2VpdmVkOiBmcm9tID9JUHY2OjI2MDE6NWMxOjQ1MDA6NThkMDo4NGU1OjdiZDg6ZGMwODo5NGE/IChbMjYwMTo1YzE6NDUwMDo1OGQwOjg0ZTU6N2JkODpkYzA4Ojk0YV0pCiAgICAgICAgYnkgc210cC5nbWFpbC5jb20gd2l0aCBFU01UUFNBIGlkIHkyM3NtMjI3OTg3MjBxdGouMjQuMjAxNy4xMi4yOC4xMy41My40NwogICAgICAgICh2ZXJzaW9uPVRMUzFfMiBjaXBoZXI9RUNESEUtUlNBLUFFUzEyOC1HQ00tU0hBMjU2IGJpdHM9MTI4LzEyOCk7CiAgICAgICAgVGh1LCAyOCBEZWMgMjAxNyAxMzo1Mzo0OCAtMDgwMCAoUFNUKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47CgljaGFyc2V0PXV0Zi04Ck1pbWUtVmVyc2lvbjogMS4wIChNYWMgT1MgWCBNYWlsIDExLjIgXCgzNDQ1LjUuMjBcKSkKU3ViamVjdDogUmU6IFF1ZXN0aW9ucyByZWdhcmRpbmcgaW1wcm92aW5nIHRoZSBBcGFjaGUgQ29tbW9ucyByZWxlYXNlIHByb2Nlc3MuCkZyb206IFJvYiBUb21wa2lucyA8Y2h0b21wa2lAZ21haWwuY29tPgpJbi1SZXBseS1UbzogPDI0MDQyMjUxLmdpOEVLQ3I2eXZAZ2lnYT4KRGF0ZTogVGh1LCAyOCBEZWMgMjAxNyAxNjo1Mzo0NiAtMDUwMApDYzogZGV2QG1hdmVuLmFwYWNoZS5vcmcsCiBDb21tb25zIERldmVsb3BlcnMgTGlzdCA8ZGV2QGNvbW1vbnMuYXBhY2hlLm9yZz4KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpNZXNzYWdlLUlkOiA8OUU2QjAxMjMtMzZCOS00OEZCLTk4RTMtRDYxMTcyODE0OTQwQGdtYWlsLmNvbT4KUmVmZXJlbmNlczogPDM0Njk3OTNCLTQ1ODItNDFGNy1CNjQxLTUwMkVGRjdEQURCM0BhcGFjaGUub3JnPgogPENBK25Qbk16R2RKRjhLUWluRE5nQ05yUGJUVlduOHlOcnBCNkJ4X2FVNjNnTGFhX2tzUUBtYWlsLmdtYWlsLmNvbT4KIDwzM0IzNTFCNS01MjkxLTREQjAtOUU4NS00NzhENzZDRjNFQzRAZ21haWwuY29tPiA8MjQwNDIyNTEuZ2k4RUtDcjZ5dkBnaWdhPgpUbzogPT91dGYtOD9RP0hlcnY9QzM9QTlfQk9VVEVNWT89IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClgtTWFpbGVyOiBBcHBsZSBNYWlsICgyLjM0NDUuNS4yMCkKCgoKPiBPbiBEZWMgMjgsIDIwMTcsIGF0IDQ6MDUgQU0sIEhlcnY9QzM9QTkgQk9VVEVNWSA9CjxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdyb3RlOgo+PTIwCj4gSGkgUm9iLAo+PTIwCj4gb25lIGFkZGl0aW9uYWwgcG9pbnQ6IGN1cnJlbnRseSwgZm9yIE1hdmVuIGl0c2VsZiwgaW5zdGVhZCBvZiBhZGRpbmcgPQpuZXc9MjAKPiBNYXZlbi1zcGVjaWZpYyBSZWxlYXNlUGhhc2UocykgdG8gdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiwgb3IgPQpjb25maWd1cmUgdGhlbSBpbj0yMAo+IG91ciBwYXJlbnQgcG9tIChJJ20gbm90IHN1cmUgZG9jdW1lbnRhdGlvbiBvbiBob3cgdG8gZG8gdGhhdCBpcyA9CmF2YWlsYWJsZTogST0yMAo+IGNvdWxkIG5vdCBmaW5kIGl0KSwgd2UgY2hvc2UgZmlyc3QgdG8gY3JlYXRlIGEgc2VwYXJhdGUgImRpc3QtdG9vbCIgdG8gPQpjaGVjaz0yMAo+IGNvbnNpc3RlbmN5IG9mIHdoYXQgaXMgY3VycmVudGx5IHB1Ymxpc2hlZCBpbiBtaXNjIHBsYWNlcyBhbmQgcHJvdmlkZSA9CnNvbWU9MjAKPiBjb21tYW5kcyB0byBmaXggd2hlbiBhbiBpbmNvbnNpc3RlbmN5IGlzIGZvdW5kLgo+PTIwCj4gVGhpcyBoYXBwZW5zIHRocm91Z2ggZGFpbHkgcmVwb3J0cyBkb25lIGJ5IGEgSmVua2lucyBqb2IgWzFdOgo+IC0gZGlzdHJpYnV0aW9uIGFyZWEgdnMgTWF2ZW4gQ2VudHJhbCBbMl09MjAKPiAtIHZlcnNpb24gZnJvbSBNYXZlbiBzaXRlIHZzIE1hdmVuIENlbnRyYWwgWzNdCj49MjAKPiBXZSBkaWQgbm90IHByb2R1Y2UgYW55IHJlbGVhc2Ugbm9yIG1hZGUgaXQgcmVhbGx5IGNvbmZpZ3VyYWJsZSBmb3IgPQpjb252ZW50aW9ucz0yMAo+IGRpZmZlcmVudCBmcm9tIE1hdmVuIG9uZXMgKGxpa2UgQ29tbW9uJ3MgLXNyYyAmIC1iaW4pLCBidXQgYXQgbGVhc3QgPQp0aGVyZSBpcyBhPTIwCj4gY29uZmlndXJhdGlvbiBmaWxlIHRvIGRlZmluZSBhcnRpZmFjdHMgdG8gY2hlY2sgWzRdCgpJbnRlcmVzdGluZy4gVGhhbmtzLC4KCi1Sb2IKCj49MjAKPiBIVEgKPj0yMAo+IEhlcnY9QzM9QTkKPj0yMAo+PTIwCj4gWzFdID0KaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9kaXN0LXRvb2wtcGx1Z2luLwo+PTIwCj4gWzJdID0KaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9kaXN0LXRvb2wtcGx1Z2luL3NpdGUvCj4gZGlzdC10b29sLWNoZWNrLXNvdXJjZS1yZWxlYXNlLmh0bWwKPj0yMAo+IFszXSA9Cmh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvZGlzdC10b29sLXBsdWdpbi9zaXRlLwo+IGRpc3QtdG9vbC1jaGVjay1pbmRleC1wYWdlLmh0bWwKPj0yMAo+IFs0XSA9Cmh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvZGlzdC10b29sLXBsdWdpbi9zaXRlLwo+IGRpc3QtdG9vbC5jb25mLmh0bWwKPj0yMAo+IExlIG1lcmNyZWRpIDI3IGQ9QzM9QTljZW1icmUgMjAxNywgMjM6MzI6NDkgQ0VUIFJvYiBUb21wa2lucyBhID1DMz1BOWNyaT0KdCA6Cj4+IFN0ZXBoZW4sCj4+PTIwCj4+IEkgY2FuPUUyPTgwPTk5dCB0aGFuayB5b3UgZW5vdWdoIGZvciB5b3VyIHJlcGx5LiBJPUUyPTgwPTk5bGwgdGFrZSA9CnlvdXIgc3VnZ2VzdGlvbnMgYW5kCj4+IGNvbnRpbnVlIHRvIHNhbmRib3ggYXJvdW5kIHVzaW5nIHRoZSBtYXZlbi1yZWxlYXNlLXBsdWdpbiBhcyBhID0KZ3VpZGVsaW5lLgo+Pj0yMAo+PiBBbGwgdGhlIGJlc3QgYW5kIGhhcHB5IGhvbGlkYXlzLAo+PiAtUm9iCj4+PTIwCj4+PiBPbiBEZWMgMjYsIDIwMTcsIGF0IDU6MjcgQU0sIFN0ZXBoZW4gQ29ubm9sbHkKPj4+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZTo+PTIwCj4+PiBPbiBUdWUgMjYgRGVjIDIwMTcgYXQgMDM6MTAsIFJvYiBUb21wa2lucyA8Y2h0b21wa2lAYXBhY2hlLm9yZz0yMAo+IDxtYWlsdG86Y2h0b21wa2lAYXBhY2hlLm9yZz4+IHdyb3RlOgo+Pj4+IEhlbGxvIGFsbCwKPj4+Pj0yMAo+Pj4+IFBhcmRvbiwgbWF5YmUgdGhpcyBzaG91bGQgaGF2ZSBnb25lIHRvIHlvdXIgQHVzZXIgbGlzdCwgYnV0IHdoeSBub3QgPQpwaW5nCj4+Pj4gdGhlIGRldiBjcmV3LiBJPUUyPTgwPTk5dmUgYmVlbiBwbGF5aW5nIGFyb3VuZCB0aGUgaWRlYXMgPQpzdXJyb3VuZGluZyBvdXIgZmFpcmx5Cj4+Pj4gbWFudWFsIHJlbGVhc2UgcHJvY2VzcyBmb3IgdGhlIGNvbXBvbmVudHMgaW4gQ29tbW9ucywgYW5kIEkgd2FzID0KaG9waW5nCj4+Pj4gZm9yCj4+Pj4gc29tZSBpbnNpZ2h0cy4KPj4+Pj0yMAo+Pj4+IFNjcmlwdGluZyB0aGUgdmVyc2lvbiBjaGFuZ2VzIGlzbj1FMj04MD05OXQgcmVhbGx5IHRoYXQgYmlnIG9mIGEgPQpkZWFsIGZvciB1cywgYW5kCj4+Pj4gdGhhdCBJIGNhbiBtYW5hZ2UuIEJ1dCwgd2hlbiBpdCBjb21lcyB0byBwdWJsaXNoaW5nIG91ciBhcnRpZmFjdHMgPQp0byB0aGUKPj4+PiBhcGFjaGUgbmV4dXMgcmVwb3NpdG9yeSwgYW5kIHRoZW4gc2VwYXJhdGVseSBwdWJsaXNoaW5nIG91ciAtc3JjID0KYW5kIC1iaW4KPj4+PiBhc3NlbWJsaWVzIHRvIHRoZSBkZXYgZGlzdCBzdWJ2ZXJzaW9uIHJlcG9zaXRvcnkgKGFuZCBjb25zZXF1ZW50bHkKPj4+PiBkZWxldGluZwo+Pj4+IHRob3NlIGFydGlmYWN0cyBmcm9tIG5leHVzIGFzIHRoZXk9RTI9ODA9OTlyZSA9RTI9ODA9OUNhdHRhY2hlZD1FMj04MD0KPTlEIGZvciB0aGUgcHVycG9zZSBvZiBncGcKPj4+PiBzaWduaW5nKSwgSSBmZWVsIGl0IGEgdGFkIGN1bWJlcnNvbWUuCj4+Pj49MjAKPj4+PiBJPUUyPTgwPTk5dmUgZmlkZGxlZCBhcm91bmQgYSBsaXR0bGUgd2l0aCB0aGUgaWRlYSBvZiBkZXRhY2hpbmcgdGhlID0KLXNyYyBhbmQgLWJpbgo+Pj4+IGFzc2VtYmxpZXMgYWZ0ZXIgZ3BnIHNpZ25pbmcgd2l0aCBzb21lIHN1Y2Nlc3MsIGJ1dCB0aGVuIEkgaGF2ZSB0byA9CmRlbHZlCj4+Pj4gaW50byB0aGUgbWVjaGFuaWNzIG9mIHB1Ymxpc2hpbmcgdGhvc2UgdXAgdG8gdGhlIHN1YnZlcnNpb24gPQpyZXBvc2l0b3J5LAo+Pj4+IGFuZAo+Pj4+IGNsZWFybHkgdGhhdCBwcm9ibGVtIGhhcyBhbHJlYWR5IGJlZW4gc29sdmVkLgo+Pj49MjAKPj4+IElzIHlvdXIgcHJvYmxlbSB5b3UgZG9uPUUyPTgwPTk5dCB3YW50IHRob3NlIGdvaW5nIHRvIE5leHVzIHN0YWdpbmcgPQpidXQgb25seSB0bwo+Pj4gZGlzdD8gT3IgaXMgaXQgdGhhdCB5b3Ugd2FudCB0aGVtICphbHNvKiBnb2luZyB0byBkaXN0Lgo+Pj49MjAKPj4+IFBlcnNvbmFsbHkuLi4gSSBzZWUgbm8gcmVhc29uIHRvIHJlbW92ZSB0aGVtIGZyb20gZ29pbmcgdG8gTmV4dXMgPQpzdGFnaW5nCj4+PiAoaW4gZmFjdCBJIGhhdmUgYSBiYWNrZ3JvdW5kIHBsYW4gdG8gYWRkIHNlY29uZGFyeSBzaWduaW5nIHN1cHBvcnQgPQp0bwo+Pj4gc3RhZ2luZy4uLiBpPUUyPTgwPTk5bSBXYWl0aW5nIHRvIHNlZSB0aGUgTmV4dXMgMyBzdGFnaW5nIEFQSXMgPQpiZWZvcmUgYXR0ZW1wdGluZwo+Pj4gdGhvdWdoLiBUaGF0IHdvdWxkIG1lYW4gdGhhdCB0aGUgUE1DIHdvdWxkIGJlIGFibGUgdG8gKmFkZCogdGhlaXIgPQpHUEcKPj4+IHNpZ25hdHVyZSB0byB0aGUgc3RhZ2VkIGFydGlmYWN0cyBhcyBwYXJ0IG9mIHRoZSB2b3RpbmcuLi4gaW4gd2hpY2ggPQpjYXNlCj4+PiB5b3U9RTI9ODA9OTlkIHdhbnQgdG8gaG9sZCBvZmYgdXBsb2FkaW5nIHRvIGRpc3QgdW50aWwgKmFmdGVyKiB0aGUgPQp2b3RlIHNvIHlvdSBnZXQKPj4+IHRoZSBmdWxsIHNldCBvZiBzaWduYXR1cmVzKQo+Pj49MjAKPj4+IElmIHlvdSB3YW50IHRvIHVwbG9hZCBhIHN1YnNldCBvZiBhdHRhY2hlZCBhcnRpZmFjdHMgdG8gZGlzdCBhcyBwYXJ0ID0Kb2YKPj4+IHRoZQo+Pj4gcmVsZWFzZSwgdGhhdCBzZWVtcyBtdWNoIG1vcmUgdGVuYWJsZS4uLiBqdXN0IGEgZGVyaXZhdGl2ZSBvZiB0aGUKPj4+IHNjbS1wdWJsaXNoIHBsdWdpbiBmcm9tIHdoYXQgSSBjYW4gc2VlLgo+Pj49MjAKPj4+IFNvIEkgZmluZCBteXNlbGYgaW4gdGhlIHNwYWNlIG9mIHRyeWluZyB0byBzaG9laG9ybiBvdXIgcHJvY2VzcyBpbnRvID0KaXRzCj4+Pj0yMAo+Pj4+IHRoZSBtYWluIG1hdmVuLXJlbGVhc2UtcGx1Z2luLCB3aGljaCBJPUUyPTgwPTk5dmUgZm91bmQgYSB0YWQgPQpkaWZmaWN1bHQsIHZlcnN1cwo+Pj4+IHdyaXRpbmcgb3VyIG93biByZWxlYXNlIHBsdWdpbiwgd2hpY2ggZmVlbHMgbGlrZSBJIHdvdWxkIGJlID0KZHVwbGljYXRpbmcKPj4+PiB0b25zIG9mIGNvZGUgKHdoaWNoIEkgZG9uPUUyPTgwPTk5dCB3YW50IHRvIGRvKS4KPj4+PTIwCj4+PiBTbyB0aGUgcmVsZWFzZSBwbHVnaW4gaXMgcmVhbGx5IHR3byBwYXJ0czoKPj4+PTIwCj4+PiAxLiBBIHRvb2xraXQgZm9yIHdyaXRpbmcgcmVsZWFzZSBwbHVnaW5zCj4+Pj0yMAo+Pj4gMi4gQW4gZXhhbXBsZSB0aGF0IGRvZXMgdGhlIGpvYiBmb3IgdGhlIHJlcXVpcmVtZW50cyBvZiB0aGUgTWF2ZW4gPQpUTFAgYW5kCj4+PiBoYXMgc2VlbWVkID1FMj04MD05Q3N1ZmZpY2llbnQ9RTI9ODA9OUQgZm9yIGEgbG90IG9mIG90aGVyIHBlb3BsZS4KPj4+PTIwCj4+PiBBcyBzdWNoLCBpZiB5b3UgaGF2ZSBkaWZmZXJlbnQgbmVlZHMsIGRvIG5vdCBmZWVsIGJhZCBhYm91dCBoYXZpbmcgPQp0bwo+Pj4gZW5jb2RlIGRpZmZlcmVudGx5Li4uIGhvcGVmdWxseSB0aGUgdG9vbGtpdCBoYWxmIG9mIHRoZSBjb2RlYmFzZSBpcwo+Pj4gc3VmZmljaWVudCBmb3IgeW91Lgo+Pj49MjAKPj4+PiBJPUUyPTgwPTk5bSBjdXJpb3VzIGlmIHlvdSBndXlzIGhhdmUgYW55IHRob3VnaHRzIG9uIHRoZSBtYXR0ZXIgYXMgPQpJPUUyPTgwPTk5dmUgYmVlbgo+Pj4+IHBsYXlpbmcgYXJvdW5kIGluIHRoZSBzcGFjZSBmb3IgYSBsaXR0bGUgd2hpbGUgbm93Lgo+Pj4+PTIwCj4+Pj4gQ2hlZXJzIGFuZCBoYXBweSBob2xpZGF5cyBmcm9tIFVUQy01LAo+Pj4+IC1Sb2IKPj4+PiA9Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+Pj4gPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsCj4+Pj4gZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnID0KPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgo+Pj4+PTIwCj4+Pj4gLS0KPj4+PTIwCj4+PiBTZW50IGZyb20gbXkgcGhvbmUKPj0yMAo+PTIwCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NTczLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBOb3YgMjMgMDg6NTg6MTkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTczLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEEyRTMwMTdGREYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAyMyBOb3YgMjAxNyAwODo1ODoxOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDM4OTU2IGludm9rZWQgYnkgdWlkIDUwMCk7IDIzIE5vdiAyMDE3IDA4OjU4OjE5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzODg2NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMyBOb3YgMjAxNyAwODo1ODoxOSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM4ODU0IGludm9rZWQgYnkgdWlkIDk5KTsgMjMgTm92IDIwMTcgMDg6NTg6MTkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDIzIE5vdiAyMDE3IDA4OjU4OjE5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMzEzRDcxODA3MTAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDIzIE5vdiAyMDE3IDA4OjU4OjE4ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS45OTkKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjk5OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIEtBTV9NWDQ9MSwgUlBfTUFUQ0hFU19SQ1ZEPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHFjQThvTEkwMkJocyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVRodSwgMjMgTm92IDIwMTcgMDg6NTg6MTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbG54NTAzLmhyei50dS1kYXJtc3RhZHQuZGUgKG1haWwtcmVsYXkxNS5ocnoudHUtZGFybXN0YWR0LmRlIFsxMzAuODMuMTU2LjIzOV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAwMzZCODVGNTIyCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyMyBOb3YgMjAxNyAwODo1ODoxNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBNWDAxLnJiZy5pbmZvcm1hdGlrLnR1LWRhcm1zdGFkdC5kZSAobXgwMS5yYmcuaW5mb3JtYXRpay50dS1kYXJtc3RhZHQuZGUgWzEzMC44My4xNjAuNDNdKQoJYnkgbG54NTAzLmhyei50dS1kYXJtc3RhZHQuZGUgKDguMTQuNC84LjE0LjQvSFJaL1BNWCkgd2l0aCBFU01UUCBpZCB2QU44dzdJQzAwNjg3NAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjMgTm92IDIwMTcgMDk6NTg6MDcgKzAxMDAKCShlbnZlbG9wZS1mcm9tIHNld2VAc3QuaW5mb3JtYXRpay50dS1kYXJtc3RhZHQuZGUpClJlY2VpdmVkOiBmcm9tIFsxOTIuMTY4LjIuMTAxXSAocDVERjM5RDg2LmRpcDAudC1pcGNvbm5lY3QuZGUgWzkzLjI0My4xNTcuMTM0XSkKCSh1c2luZyBUTFN2MS4yIHdpdGggY2lwaGVyIEVDREhFLVJTQS1BRVMyNTYtR0NNLVNIQTM4NCAoMjU2LzI1NiBiaXRzKSkKCShObyBjbGllbnQgY2VydGlmaWNhdGUgcmVxdWVzdGVkKQoJKEF1dGhlbnRpY2F0ZWQgc2VuZGVyOiBzZXdlKQoJYnkgTVgwMS5yYmcuaW5mb3JtYXRpay50dS1kYXJtc3RhZHQuZGUgKFBvc3RmaXgpIHdpdGggRVNNVFBTQSBpZCAxQUE2RUZFRDYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDIzIE5vdiAyMDE3IDA5OjUwOjAyICswMTAwIChDRVQpClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpGcm9tOiBBbmRyZWFzIFNld2UgPHNld2VAc3QuaW5mb3JtYXRpay50dS1kYXJtc3RhZHQuZGU+Ck9wZW5wZ3A6IHByZWZlcmVuY2U9c2lnbmVuY3J5cHQKT3JnYW5pemF0aW9uOiBTb2Z0d2FyZSBUZWNobm9sb2d5IEdyb3VwLCBUVSBEYXJtc3RhZHQKU3ViamVjdDogRGVwZW5kZW5jeSBzY29wZXMgYW5kIGNvbmZsaWN0IHJlc29sdXRpb246IFBvc3NpYmxlIGJ1Zz8KTWVzc2FnZS1JRDogPDliZDA1ZTcyLTQ3MzktZWY5ZC1hMGE2LTI2NjJiNTg4NWZjMUBzdC5pbmZvcm1hdGlrLnR1LWRhcm1zdGFkdC5kZT4KRGF0ZTogVGh1LCAyMyBOb3YgMjAxNyAwOTo0OTo1MCArMDEwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMDsgcnY6NTcuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzU3LjAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvc2lnbmVkOyBtaWNhbGc9cGdwLXNoYTUxMjsKIHByb3RvY29sPSJhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlIjsKIGJvdW5kYXJ5PSJuMXZMVWJGSkpmYUVVUnNiRGVCZDZSVmlhYk1pa2Uyd20iClgtUE1YLVRVOiBzZWVuIHYxLjIgYnkgNS42LjEuMjA2NTQzOSwgQW50aXNwYW0tRW5naW5lOiAyLjcuMi4zNzYzNzksIEFudGlzcGFtLURhdGE6IDIwMTcuMTEuMjMuODQ4MTYKWC1QTVgtUkVMQVk6IG91dGdvaW5nCgotLW4xdkxVYkZKSmZhRVVSc2JEZUJkNlJWaWFiTWlrZTJ3bQpDb250ZW50LVR5cGU6IG11bHRpcGFydC9taXhlZDsgYm91bmRhcnk9ImRQdWRmbDlQUUllaVZKS2xrQnYxNUZMTnFoU3dtR1RyZCI7CiBwcm90ZWN0ZWQtaGVhZGVycz0idjEiCkZyb206IEFuZHJlYXMgU2V3ZSA8c2V3ZUBzdC5pbmZvcm1hdGlrLnR1LWRhcm1zdGFkdC5kZT4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ck1lc3NhZ2UtSUQ6IDw5YmQwNWU3Mi00NzM5LWVmOWQtYTBhNi0yNjYyYjU4ODVmYzFAc3QuaW5mb3JtYXRpay50dS1kYXJtc3RhZHQuZGU+ClN1YmplY3Q6IERlcGVuZGVuY3kgc2NvcGVzIGFuZCBjb25mbGljdCByZXNvbHV0aW9uOiBQb3NzaWJsZSBidWc/CgotLWRQdWRmbDlQUUllaVZKS2xrQnYxNUZMTnFoU3dtR1RyZApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTgKQ29udGVudC1MYW5ndWFnZTogZW4tVVMKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSGkgTWF2ZW4gZGV2ZWxvcGVycywKCkkgYSB0cnlpbmcgdG8gd3JhcCBteSBoZWFkIGFyb3VuZCBNYXZlbidzIGhhbmRsaW5nIG9mIGRlcGVuZGVuY3kgc2NvcGVzCmFuZCB3YXMgd29uZGVyaW5nIHRoZSBmb2xsb3dpbmc6IElzIHRoZSB0ZXN0LWNsYXNzcGF0aCBhbHdheXMgYQpzdXBlci1zZXF1ZW5jZSBvZiB0aGUgY29tcGlsZS1jbGFzc3BhdGg/CgpBRkFJQ1QsIHRoaXMgaXMgdGhlIGNhc2UuIEhvd2V2ZXIsIG15IGV4cGVyaW1lbnRzICh1c2luZyBNYXZlbiAzLjUuMikKbGVmdCBtZSB3b25kZXJpbmcgd2hldGhlciBJIG1heSBoYXZlIHN0dW1ibGVkIHVwb24gYSBidWcuCgpNeSAoc29tZXdoYXQgY29udHJpdmVkKSBzY2VuYXJpbyBpcyB0aGlzOgoKPiAgIDxkZXBlbmRlbmNpZXM+Cj4gICAgIDxkZXBlbmRlbmN5Pgo+ICAgICAgIDxncm91cElkPmp1bml0PC9ncm91cElkPgo+ICAgICAgIDxhcnRpZmFjdElkPmp1bml0PC9hcnRpZmFjdElkPgo+ICAgICAgIDx2ZXJzaW9uPjQuOTwvdmVyc2lvbj4KPiAgICAgICA8c2NvcGU+Y29tcGlsZTwvc2NvcGU+Cj4gICAgICAgPCEtLSBjb21waWxlLWRlcGVuZHMgb24gb3JnLmhhbWNyZXN0OmhhbWNyZXN0LWNvcmU6MS4xIC0tPgo+ICAgICA8L2RlcGVuZGVuY3k+Cj4gICAgIDxkZXBlbmRlbmN5Pgo+ICAgICAgIDxncm91cElkPm9yZy5oYW1jcmVzdDwvZ3JvdXBJZD4KPiAgICAgICA8YXJ0aWZhY3RJZD5oYW1jcmVzdC1jb3JlPC9hcnRpZmFjdElkPgo+ICAgICAgIDx2ZXJzaW9uPjEuMjwvdmVyc2lvbj4KPiAgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+Cj4gICAgIDwvZGVwZW5kZW5jeT4KPiAgIDwvZGVwZW5kZW5jaWVzPgoKVGhlICp0ZXN0KiBjbGFzc3BhdGggdGhhdCBjb21waWxlcjp0ZXN0Q29tcGlsZSBzZWVzIGlzIGp1bml0Omp1bml0OjQuOSArCm9yZy5oYW1jcmVzdDpoYW1jcmVzdC1jb3JlOjEuMi4gVGhpcyBpcyBhcyBleHBlY3RlZCwgYXMgdGhlIGRpcmVjdApoYW1jcmVzdC1jb3JlIGRlcGVuZGVuY3kgYmVhdHMgdGhlIHRyYW5zaXRpdmUgb25lOyBoZW5jZSwgdmVyc2lvbiAxLjIKZ2V0cyBwaWNrZWQuCgpOb3csIHRoZSAqY29tcGlsZSogY2xhc3NwYXRoIHRoYXQgY29tcGlsZTpjb21waWxlIHNlZXMgaXMganVzdApqdW5pdDpqdW5pdDo0LjkuIFdoaWxlIHRoaXMgYWZmaXJtcyBteSBzdXBlci1zZXF1ZW5jZSBoeXBvdGhlc2lzLCBpdApzZWVtcyBsaWtlIGEgYnVnOiBXaXRob3V0IHRoZSBkaXJlY3QsIHRlc3Qtc2NvcGVkCm9yZy5oYW1jcmVzdDpoYW1jcmVzdC1jb3JlOjEuMiBkZXBlbmRlbmN5IHRoZSBjb21waWxlIGNsYXNzcGF0aCB3b3VsZApoYXZlIGJlZW4ganVuaXQ6anVuaXQ6NC45ICsgb3JnLmhhbWNyZXN0OmhhbWNyZXN0LWNvcmU6MS4xLCBidXQgd2l0aCBpdApoYW1jcmVzdC1jb3JlIGhhcyB2YW5pc2hlZCBjb21wbGV0ZWx5LgoKRG8geW91IGNvbnNpZGVyIHRoaXMgYSBidWcgYXMgd2VsbD8KCklmIHNvLCB3aGF0J3MgdGhlIGRlc2lyZWQgYmVoYXZpb3IgaGVyZT8KCjEuIEEgY29tcGlsZSBjbGFzc3BhdGggb2YganVuaXQ6anVuaXQ6NC45ICsKb3JnLmhhbWNyZXN0OmhhbWNyZXN0LWNvcmU6MS4xIHdvdWxkIGJlIGNvbmZ1c2luZywgYXMgdGhlIHN1cGVyLXNlcXVlbmNlCmFzc3VtcHRpb24gc2VlbXMgdmVyeSBuYXR1cmFsLgoKMi4gQnV0IGEgY29tcGlsZSBjbGFzc3BhdGggb2YganVuaXQ6anVuaXQ6NC45ICsKb3JnLmhhbWNyZXN0OmhhbWNyZXN0LWNvcmU6MS4yIHNlZW1zIGhhcmRlciB0byBpbXBsZW1lbnQgKHRvIG15IGFzIGEKbWF2ZW4tcmVzb2x2ZXIgbGF5bWFuLCBhdCBsZWFzdCksIGJlY2F1c2UgYSBwcnVuZWQgcGFydCBvZiB0aGUKZGVwZW5kZW5jeSBncmFwaCBtYXkgbm93IHN0aWxsIGV4ZXJ0IGluZmx1ZW5jZSBvbiB0aGUgdmVyc2lvbnMgaW4gb3RoZXIKcGFydHMgb2YgdGhlIGdyYXBoLgoKQmVzdCB3aXNoZXMsCgpBbmRyZWFzCgoKLS1kUHVkZmw5UFFJZWlWSktsa0J2MTVGTE5xaFN3bUdUcmQtLQoKLS1uMXZMVWJGSkpmYUVVUnNiRGVCZDZSVmlhYk1pa2Uyd20KQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlOyBuYW1lPSJzaWduYXR1cmUuYXNjIgpDb250ZW50LURlc2NyaXB0aW9uOiBPcGVuUEdQIGRpZ2l0YWwgc2lnbmF0dXJlCkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSJzaWduYXR1cmUuYXNjIgoKLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KVmVyc2lvbjogR251UEcgdjIKCmlRSWNCQUVCQ2dBR0JRSmFGb3U1QUFvSkVDS2hkbytudVB5VnIzTVFBSXA5ZmxhSy9raGcvemQrSnVYaVZZOWUKb1ZsT0FsMlZ5VXdTdjNwdW55UFRSTGoxOUYramduY1YxbnRnbmVtcVFpdkppalZWeGFBSlpGdFExOVR6TlU0RgpUMkpjclFqU3pWZmVxME5CZENwYi9TcmxDbXNwQmZBc0VhWlVWbExYeE5ZYWp0K1VuZkU2LzZzY0RqTFdnRVgrCmdObDJwT21FUXpUMUJnS0pUdHk3UUdhOGgvYUM4TDZGUW81U3RjbGpMU1pJK1RkUDRDanNGdEJ1M0ExbWYvdksKSGc3Rm1hVTZUcU91djcxMG45TFRjRTBUcDhQNnBsdFFnSkhKL3E2cGRwL1pmNmtRT3B1anlaSkd4V2RqWGN5awp4WGNPRDhDTE5NbW9RVWN5THppd3lqRDBjMkNlVDZ2V2hkcnNna1gzaFRFc0FyYXordzZMRzJmMW1nWWV3NzEwClhlZFJyNU9JTG1XNW9CMWYwa0tpbzlpcVY2SU9xYWhCcjJRNXJhLzUzNlY3WHIxVjM0Wkl5Y1BSRGhqUmxzWmgKdUpKeDdSQVhqTkhBdFBQK0VhUnJmSU1rQkhlZFVuWE9tWnNVbnNLL1BYNzVVUlR1cmI2SGMrZDJtU2w1MTA4cAovSi94eUphSWMya1owcmlVOFNFWjFNemw0dUJueXBRWHU1UzRuWDJJMmdMclNMclFuK3Q2clNCbGYrVkFyS2dKCkpwNzlabzdvWkVFRDlkUktLQlRlSk53R3RXWXljV01abHIrS2dEb1hnUFNyQkNVTmlRVHFveXlnNklmS2tvM2QKRmVhTktyazRkcDJuQkk4K0V6RDdiN3lSZ1VYSlVxNlVCVDJ2dVBtVWNrclJaTXVMQzRqZ2w0am9CTjNvOCs2YwoxRkRkck5HVmZ5dmVpNGtRQXdjTAo9RVF4VAotLS0tLUVORCBQR1AgU0lHTkFUVVJFLS0tLS0KCi0tbjF2TFViRkpKZmFFVVJzYkRlQmQ2UlZpYWJNaWtlMndtLS0KCkZyb20gZGV2LXJldHVybi0xMjQ2MjYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIE5vdiAyNyAxOTo0NzoxOCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ2MjYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNDgxQ0MxNzY5NAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDI3IE5vdiAyMDE3IDE5OjQ3OjE4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjY5MTIgaW52b2tlZCBieSB1aWQgNTAwKTsgMjcgTm92IDIwMTcgMTk6NDc6MTcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI2ODQzIGludm9rZWQgYnkgdWlkIDUwMCk7IDI3IE5vdiAyMDE3IDE5OjQ3OjE3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjY4MzAgaW52b2tlZCBieSB1aWQgOTkpOyAyNyBOb3YgMjAxNyAxOTo0NzoxNyAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAyNyBOb3YgMjAxNyAxOTo0NzoxNyArMDAwMApSZWNlaXZlZDogZnJvbSBbMTkyLjE2OC4xLjEzXSAocDU0OEY5QzRFLmRpcDAudC1pcGNvbm5lY3QuZGUgWzg0LjE0My4xNTYuNzhdKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgQUNENEUxQTAwMkU7CglNb24sIDI3IE5vdiAyMDE3IDE5OjQ3OjE2ICswMDAwIChVVEMpClN1YmplY3Q6IFJlOiBiZWFtIGxlYXZpbmcgbWF2ZW4sIGFueXRoaW5nIGRvYWJsZT8KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LAogUm9tYWluIE1hbm5pLUJ1Y2F1IDxybWFubmlidWNhdUBnbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQUNMRT03Tmt5aWdZeG1oSnlUQzl1N1IzdFpYaEVvUE9BcGQ4ak9qR3VVRDIxWXFfeGdAbWFpbC5nbWFpbC5jb20+CkZyb206IE1pY2hhZWwgT3NpcG92IDxtaWNoYWVsb0BhcGFjaGUub3JnPgpNZXNzYWdlLUlEOiA8OWNlYjRjYTQtZjk4NC1iYmEzLTI1YWUtOWFlMGNlNDU0ZWI1QGFwYWNoZS5vcmc+CkRhdGU6IE1vbiwgMjcgTm92IDIwMTcgMjA6NDc6MDkgKzAxMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV09XNjQ7IHJ2OjUyLjApIEdlY2tvLzIwMTAwMTAxCiBUaHVuZGVyYmlyZC81Mi40LjAKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDxDQUNMRT03Tmt5aWdZeG1oSnlUQzl1N1IzdFpYaEVvUE9BcGQ4ak9qR3VVRDIxWXFfeGdAbWFpbC5nbWFpbC5jb20+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtODsgZm9ybWF0PWZsb3dlZApDb250ZW50LUxhbmd1YWdlOiBlbi1VUwpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CgpBbSAyMDE3LTExLTI3IHVtIDIwOjI0IHNjaHJpZWIgUm9tYWluIE1hbm5pLUJ1Y2F1Ogo+IEhpIGd1eXMsCj4gCj4gYW55dGhpbmcgZG9hYmxlIG9uIG1hdmVuIHNpZGUgKGVpdGhlciB0dW5pbmcgb3IgY29kZSBjaGFuZ2VzKSB0byBiZSBhcwo+IGdvb2QgYXMgZ3JhZGxlIG9uIGJlYW0gcHJvamVjdC4gVGhlIHByb2plY3QgaXMgZ29pbmQgdG8gbGVhdmUgbWF2ZW4gYXMKPiBidWlsZCB0b29sIChbMV0pIGFuZCBJIHRoaW5rIGl0IGlzIHZlcnkgYmFkIGZvciAxLiB0aGUgY29tbXVuaXR5IGFuZAo+IDIuIEFTRiBhcyBhbiBlY29zeXN0ZW0uCj4gCj4gWzFdIGh0dHBzOi8vbGlzdHMuYXBhY2hlLm9yZy90aHJlYWQuaHRtbC82ZDZmN2ZmYzY2NjIyZGIxZGQ0NTllMTcwNGMzYTVkOGE0YmMyOWMyZDljMGI2MDM1NGZkM2I2YUAlM0NkZXYuYmVhbS5hcGFjaGUub3JnJTNFCgpEaWQgdGhleSBkaXNhYmxlIHRoZSBidWlsZCBkYWVtb24/IElmIG5vdCwgaXQgaXMgbm90IGEgZmFpciBjb21wYXJzaW9uLgoKTWljaGFlbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MjY1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBPY3QgMTkgMDg6NTM6MDYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjY1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDg3OTIxMTAyNkEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAxOSBPY3QgMjAxNyAwODo1MzowNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDIzNTMzIGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IE9jdCAyMDE3IDA4OjUzOjA2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMzM0NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOSBPY3QgMjAxNyAwODo1MzowNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIzMzM2IGludm9rZWQgYnkgdWlkIDk5KTsgMTkgT2N0IDIwMTcgMDg6NTM6MDUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDE5IE9jdCAyMDE3IDA4OjUzOjA1ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQjE3RDgxODA3RDgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDE5IE9jdCAyMDE3IDA4OjUzOjA0ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTQuMjIyClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS00LjIyMiB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgUkNWRF9JTl9ETlNXTF9IST0tNSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwKCVJQX01BVENIRVNfUkNWRD0tMC4wMDEsIFNQRl9IRUxPX1BBU1M9LTAuMDAxLCBTUEZfUEFTUz0tMC4wMDEsCglVUklCTF9CTE9DS0VEPTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBCZ191dzJIVmpISEUgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsIDE5IE9jdCAyMDE3IDA4OjUzOjAyICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG14MS5yZWRoYXQuY29tIChteDEucmVkaGF0LmNvbSBbMjA5LjEzMi4xODMuMjhdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNkE3N0I1RkREOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMTkgT2N0IDIwMTcgMDg6NTM6MDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gc210cC5jb3JwLnJlZGhhdC5jb20gKGludC1teDA2LmludG1haWwucHJvZC5pbnQucGh4Mi5yZWRoYXQuY29tIFsxMC41LjExLjE2XSkKCSh1c2luZyBUTFN2MS4yIHdpdGggY2lwaGVyIEFFQ0RILUFFUzI1Ni1TSEEgKDI1Ni8yNTYgYml0cykpCgkoTm8gY2xpZW50IGNlcnRpZmljYXRlIHJlcXVlc3RlZCkKCWJ5IG14MS5yZWRoYXQuY29tIChQb3N0Zml4KSB3aXRoIEVTTVRQUyBpZCAzNjczQkMwNEFDNTAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDE5IE9jdCAyMDE3IDA4OjUzOjAxICswMDAwIChVVEMpCkRNQVJDLUZpbHRlcjogT3BlbkRNQVJDIEZpbHRlciB2MS4zLjIgbXgxLnJlZGhhdC5jb20gMzY3M0JDMDRBQzUwCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IGV4dC1teDA3LmV4dG1haWwucHJvZC5leHQucGh4Mi5yZWRoYXQuY29tOyBkbWFyYz1ub25lIChwPW5vbmUgZGlzPW5vbmUpIGhlYWRlci5mcm9tPXJlZGhhdC5jb20KQXV0aGVudGljYXRpb24tUmVzdWx0czogZXh0LW14MDcuZXh0bWFpbC5wcm9kLmV4dC5waHgyLnJlZGhhdC5jb207IHNwZj1mYWlsIHNtdHAubWFpbGZyb209bWl6ZGVic2tAcmVkaGF0LmNvbQpSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QubG9jYWxkb21haW4gKG92cG4tMTE2LTE5NS5hbXMyLnJlZGhhdC5jb20gWzEwLjM2LjExNi4xOTVdKQoJYnkgc210cC5jb3JwLnJlZGhhdC5jb20gKFBvc3RmaXgpIHdpdGggRVNNVFBTIGlkIDJFMTI5QTEzNTEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDE5IE9jdCAyMDE3IDA4OjUyOjU5ICswMDAwIChVVEMpClN1YmplY3Q6IFJlOiBNYXZlbiBQbHVnaW4gdGhhdCBwcm92aWRlcyBhbHRlcm5hdGl2ZSByZXBvc2l0b3J5ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWZlcmVuY2VzOiA8Q0FFeU16eW1zSEh2T0JGLWJ0cVR2ajhrdjByRkxnQmQ9SkdIcnVQWmpFeVlabz1BLTBnQG1haWwuZ21haWwuY29tPgogPDQxMDk3YjBkLTgxZmEtNWJkMC1iOGRlLWUxMmM0MzQ4YzhjZEBnbXguZGU+CiA8Q0FFeU16eWt0ZGVMQ1JHWlBfYlZvNHZCK1M0cWczZ2hSalEzZ0JRbkFuZkc5VnF4UUtnQG1haWwuZ21haWwuY29tPgogPGE1Y2RiN2JjLWFiMzgtNTFhZi02ZWQxLTE0YjUyMTEzYmYzOEByZWRoYXQuY29tPgogPENBKzI5OFVoZTVrYXB3RjNCY3R4OVBWWnVORXVReFcyVFlFOTE2cTNNcTdfUE5tdGoyd0BtYWlsLmdtYWlsLmNvbT4KIDxiMjFlM2RkNi1mM2NkLTcwYWYtN2NiNi1lMjE3YjI3OTE5MmZAcmVkaGF0LmNvbT4KIDxDQUV5TXp5bkdGUG1tZDJCTWNfPUpxakw3PTg9NzFPZ0pqY09SN1U3OHdKaFk3cVdLVEFAbWFpbC5nbWFpbC5jb20+CkZyb206IE1pa29sYWogSXpkZWJza2kgPG1pemRlYnNrQHJlZGhhdC5jb20+Ck1lc3NhZ2UtSUQ6IDw5ZGIzNTE3My01ZWQ1LWE1MWItNDAzMy05ODE4OGI1ZmNhZDZAcmVkaGF0LmNvbT4KRGF0ZTogVGh1LCAxOSBPY3QgMjAxNyAxMDo1Mjo1NyArMDIwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoWDExOyBMaW51eCB4ODZfNjQ7IHJ2OjUyLjApIEdlY2tvLzIwMTAwMTAxCiBUaHVuZGVyYmlyZC81Mi4zLjAKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDxDQUV5TXp5bkdGUG1tZDJCTWNfPUpxakw3PTg9NzFPZ0pqY09SN1U3OHdKaFk3cVdLVEFAbWFpbC5nbWFpbC5jb20+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOApDb250ZW50LUxhbmd1YWdlOiBlbi1NVwpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0ClgtU2Nhbm5lZC1CeTogTUlNRURlZmFuZyAyLjc5IG9uIDEwLjUuMTEuMTYKWC1HcmV5bGlzdDogU2VuZGVyIElQIHdoaXRlbGlzdGVkLCBub3QgZGVsYXllZCBieSBtaWx0ZXItZ3JleWxpc3QtNC41LjE2IChteDEucmVkaGF0LmNvbSBbMTAuNS4xMTAuMzFdKTsgVGh1LCAxOSBPY3QgMjAxNyAwODo1MzowMSArMDAwMCAoVVRDKQoKT24gMTAvMTkvMjAxNyAwNjoxMiBBTSwgQ2hyaXN0b3BoIExhZXVicmljaCB3cm90ZToKPiBTbyBleHRlbnNpb25zIGZvciBXb3Jrc3BhY2VSZWFkZXIgY2FuJ3QgYmUgdXNlZCBsaWtlIGRlc2NyaWJlZCBoZXJlWzFdCj4gaW5zaWRlIHRoZSBwb20ueG1sPwo+IERvZXMgdGhhdCBtZWFuIEkgaGF2ZSB0byBwdXQgbXkgZXh0ZW5zaW9uIGluIHRoZSBtYXZlbiBjbGFzc3BhdGggdG8KPiBtYWtlIGl0IHdvcms/CgpJSVJDLCBpdCB3b24ndCB3b3JrIGZyb20gcG9tLnhtbCwgYnV0IHNob3VsZCB3b3JrIGZyb20gZXh0ZW5zaW9ucy54bWwKKE1hdmVuIDMuMyspLiBJdCBkZWZpbml0ZWx5IHdvcmtzIHdoZW4geW91IGRyb3AgeW91ciBleHRlbnNpb24gSkFSIGludG8KbGliL2V4dC8gZGlyZWN0b3J5LgoKPiBJZiBJIGRvIHRpcywgaXMgaXQgc3RpbGwgcG9zc2libGUgdG8gY29uZmlndXJlIHRoZSBFeHRlbnNpb24gaW5zaWRlCj4gdGhlIHBvbSBvciBoYXMgaXQgdG8gYmUgZG9uZSBieSBzeXN0ZW0tcHJvcGVydGllcz8KCkRlcGVuZGVuY3kgcmVzb2x1dGlvbiBtdXN0IHdvcmsgYmVmb3JlIGVmZmVjdGl2ZSBtb2RlbCAoUE9NKSBpcwpjb25zdHJ1Y3RlZCAtIHRvIHJlc29sdmUgPHBhcmVudD4gcmVmZXJlbmNlcy4gU28geW91IG11c3QgZmluZCBhbm90aGVyCndheSBvZiBjb25maWd1cmluZyB5b3VyIGV4dGVuc2lvbi4KCj4gCj4gWzFdaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9taW5pL2d1aWRlLXVzaW5nLWV4dGVuc2lvbnMuaHRtbAoKPiAKPiAyMDE3LTEwLTE3IDk6MDAgR01UKzAyOjAwIE1pa29sYWogSXpkZWJza2kgPG1pemRlYnNrQHJlZGhhdC5jb20+Ogo+PiBPbiAxMC8xNi8yMDE3IDEyOjM5IFBNLCBQYXVsIEhhbW1hbnQgd3JvdGU6Cj4+Pj4KPj4+PiBUaGlzIHNob3VsZCBiZSBwb3NzaWJsZSBieSBwcm92aWRpbmcgV29ya3NwYWNlUmVhZGVyIGltcGxlbWVudGF0aW9uIC0KPj4+PiBAQ29tcG9uZW50KCByb2xlID0gV29ya3NwYWNlUmVhZGVyLmNsYXNzLCBoaW50ID0gImlkZSIgKQo+Pj4+Cj4+Pj4gTm90ZSB0aGF0IE1hdmVuIHRyaWVzIHJlc29sdXRpb24gZnJvbSB3b3Jrc3BhY2UgKmJlZm9yZSogcmVwb3NpdG9yaWVzIC0KPj4+PiB3b3Jrc3BhY2UgcmVhZGVyIGhhcyBwcmlvcml0eSBsb3dlciB0aGFuIHJlYWN0b3IsIGJ1dCBoaWdoZXIgdGhhbiByZW1vdGUKPj4+PiByZXBvcyBrbm93biB0byBNYXZlbi4KPj4+Cj4+PiBXb3Jrc3BhY2VSZWFkZXIgZnVuY3Rpb25hbGl0eSBpcyBvciBpcyBub3QgYSB0aGluZyB0aGF0IGNhbiBiZSBzZXQgaW4KPj4+IHBvbS54bWwgZmlsZXM/Cj4+Cj4+IFdoZW4gUE9NIGlzIHBhcnNlZCwgd29ya3NwYWNlIHJlYWRlciBpcyBhbHJlYWR5IGxvYWRlZCwgc28gaXQgd291bGQgYmUKPj4gdG9vIGxhdGUuIFNvIGl0IG5lZWRzIHRvIGJlIGxvYWRlZCBieSBhbiBleHRlbnNpb24uCj4+Cj4+PiBBcmUgdGhlcmUgYW55IGV4YW1wbGVzIGluIHB1YmxpYyB0aGF0IHVzZSBXb3Jrc3BhY2VSZWFkZXIgaW4gdXNlIHRvCj4+PiBzb3VyY2UgYSBkZXAgZnJvbSBvdXRzaWRlIG9mIG1hdmVuIGNlbnRyYWwgKG9yIHRoZSBwcm9qZWN0cyBzaWJsaW5nCj4+PiBtb2R1bGVzKT8KPj4KPj4gRWNsaXBzZSBNMkUgaXMgb25lIGV4YW1wbGUuIEFub3RoZXIgb25lIGlzIFhNdm4sIHdoaWNoIHVzZXMgd29ya3NwYWNlCj4+IHJlYWRlciB0byByZXNvbHZlIGRlcGVuZGVuY2llcyBmcm9tIHN5c3RlbSByZXBvc2l0b3J5IChub3QgaW4gTWF2ZW4gZm9ybWF0KToKPj4KPj4gaHR0cHM6Ly9naXRodWIuY29tL2ZlZG9yYS1qYXZhL3htdm4vYmxvYi9tYXN0ZXIveG12bi1jb25uZWN0b3ItYWV0aGVyL3NyYy9tYWluL2phdmEvb3JnL2ZlZG9yYXByb2plY3QveG12bi9jb25uZWN0b3IvYWV0aGVyL1hNdm5Xb3Jrc3BhY2VSZWFkZXIuamF2YQo+Pgo+Pj4KPj4+IC0gUGF1bAo+Pj4KPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+Cj4+Cj4+IC0tCj4+IE1pa29sYWogSXpkZWJza2kKPj4gU29mdHdhcmUgRW5naW5lZXIsIFJlZCBIYXQKPj4gSVJDOiBtaXpkZWJzawo+Pgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pgo+IAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+IAoKLS0gCk1pa29sYWogSXpkZWJza2kKU29mdHdhcmUgRW5naW5lZXIsIFJlZCBIYXQKSVJDOiBtaXpkZWJzawoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NTg2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBOb3YgMjQgMDg6MTM6NDEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTg2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDRBRTU1MTAzNDcKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAyNCBOb3YgMjAxNyAwODoxMzo0MSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDgxNTg3IGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IE5vdiAyMDE3IDA4OjEzOjQwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MTQ5NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNCBOb3YgMjAxNyAwODoxMzo0MCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgxNDg1IGludm9rZWQgYnkgdWlkIDk5KTsgMjQgTm92IDIwMTcgMDg6MTM6NDAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDI0IE5vdiAyMDE3IDA4OjEzOjQwICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQTA2NDIxODA3N0QKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDI0IE5vdiAyMDE3IDA4OjEzOjM5ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuMzAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjMwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIEtBTV9NWDQ9MSwgUkNWRF9JTl9ETlNXTF9NRUQ9LTIuMywKCVJQX01BVENIRVNfUkNWRD0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGdMbllsX0N0b1lHbyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCUZyaSwgMjQgTm92IDIwMTcgMDg6MTM6MzMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbG54NTAwLmhyei50dS1kYXJtc3RhZHQuZGUgKG1haWxvdXQuaHJ6LnR1LWRhcm1zdGFkdC5kZSBbMTMwLjgzLjE1Ni4yMjVdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQTVBRkI1RkQ4MwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjQgTm92IDIwMTcgMDg6MTM6MzMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gTVgwMS5yYmcuaW5mb3JtYXRpay50dS1kYXJtc3RhZHQuZGUgKG14MDEucmJnLmluZm9ybWF0aWsudHUtZGFybXN0YWR0LmRlIFsxMzAuODMuMTYwLjQzXSkKCWJ5IGxueDUwMC5ocnoudHUtZGFybXN0YWR0LmRlICg4LjE0LjQvOC4xNC40L0hSWi9QTVgpIHdpdGggRVNNVFAgaWQgdkFPODk0WG8wMDA3MjYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDI0IE5vdiAyMDE3IDA5OjA5OjA1ICswMTAwCgkoZW52ZWxvcGUtZnJvbSBzZXdlQHN0LmluZm9ybWF0aWsudHUtZGFybXN0YWR0LmRlKQpSZWNlaXZlZDogZnJvbSBBbmRyZWFzcy1NYWNCb29rLVByby5sb2NhbCAocDVERENEOTcxLmRpcDAudC1pcGNvbm5lY3QuZGUgWzkzLjIyMC4yMTcuMTEzXSkKCSh1c2luZyBUTFN2MS4yIHdpdGggY2lwaGVyIEVDREhFLVJTQS1BRVMyNTYtR0NNLVNIQTM4NCAoMjU2LzI1NiBiaXRzKSkKCShObyBjbGllbnQgY2VydGlmaWNhdGUgcmVxdWVzdGVkKQoJKEF1dGhlbnRpY2F0ZWQgc2VuZGVyOiBzZXdlKQoJYnkgTVgwMS5yYmcuaW5mb3JtYXRpay50dS1kYXJtc3RhZHQuZGUgKFBvc3RmaXgpIHdpdGggRVNNVFBTQSBpZCAyRUQwOUZFQzkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDI0IE5vdiAyMDE3IDA5OjEzOjI0ICswMTAwIChDRVQpClN1YmplY3Q6IFJlOiBEZXBlbmRlbmN5IHNjb3BlcyBhbmQgY29uZmxpY3QgcmVzb2x1dGlvbjogUG9zc2libGUgYnVnPwpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPDliZDA1ZTcyLTQ3MzktZWY5ZC1hMGE2LTI2NjJiNTg4NWZjMUBzdC5pbmZvcm1hdGlrLnR1LWRhcm1zdGFkdC5kZT4KIDxvcC55OTU3dGZkMWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KRnJvbTogQW5kcmVhcyBTZXdlIDxzZXdlQHN0LmluZm9ybWF0aWsudHUtZGFybXN0YWR0LmRlPgpPcGVucGdwOiBwcmVmZXJlbmNlPXNpZ25lbmNyeXB0Ck9yZ2FuaXphdGlvbjogU29mdHdhcmUgVGVjaG5vbG9neSBHcm91cCwgVFUgRGFybXN0YWR0Ck1lc3NhZ2UtSUQ6IDw5ZThlZWNhNy1kODc0LTdkNjQtZDJkYy1iMWQxY2NlNjlmNzRAc3QuaW5mb3JtYXRpay50dS1kYXJtc3RhZHQuZGU+CkRhdGU6IEZyaSwgMjQgTm92IDIwMTcgMDk6MTM6MTEgKzAxMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTA7IHJ2OjU3LjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Ny4wCk1JTUUtVmVyc2lvbjogMS4wCkluLVJlcGx5LVRvOiA8b3AueTk1N3RmZDFrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L3NpZ25lZDsgbWljYWxnPXBncC1zaGE1MTI7CiBwcm90b2NvbD0iYXBwbGljYXRpb24vcGdwLXNpZ25hdHVyZSI7CiBib3VuZGFyeT0iaVJGaURPQVgxNmJJdXh4TVM0eFJyclFFSVBsZFBnM0JHIgpYLVBNWC1UVTogc2VlbiB2MS4yIGJ5IDUuNi4xLjIwNjU0MzksIEFudGlzcGFtLUVuZ2luZTogMi43LjIuMzc2Mzc5LCBBbnRpc3BhbS1EYXRhOiAyMDE3LjExLjI0LjgwMzE2ClgtUE1YLVJFTEFZOiBvdXRnb2luZwoKLS1pUkZpRE9BWDE2Ykl1eHhNUzR4UnJyUUVJUGxkUGczQkcKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSJVc04xZGd2NmtJU2Zzc2xtSXVFNXMzZktKcTVHUVIzT08iOwogcHJvdGVjdGVkLWhlYWRlcnM9InYxIgpGcm9tOiBBbmRyZWFzIFNld2UgPHNld2VAc3QuaW5mb3JtYXRpay50dS1kYXJtc3RhZHQuZGU+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8OWU4ZWVjYTctZDg3NC03ZDY0LWQyZGMtYjFkMWNjZTY5Zjc0QHN0LmluZm9ybWF0aWsudHUtZGFybXN0YWR0LmRlPgpTdWJqZWN0OiBSZTogRGVwZW5kZW5jeSBzY29wZXMgYW5kIGNvbmZsaWN0IHJlc29sdXRpb246IFBvc3NpYmxlIGJ1Zz8KUmVmZXJlbmNlczogPDliZDA1ZTcyLTQ3MzktZWY5ZC1hMGE2LTI2NjJiNTg4NWZjMUBzdC5pbmZvcm1hdGlrLnR1LWRhcm1zdGFkdC5kZT4KIDxvcC55OTU3dGZkMWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KSW4tUmVwbHktVG86IDxvcC55OTU3dGZkMWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KCi0tVXNOMWRndjZrSVNmc3NsbUl1RTVzM2ZLSnE1R1FSM09PCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNQpDb250ZW50LUxhbmd1YWdlOiBlbi1VUwpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPiBZb3UncmUgaGl0dGluZyBNTkctNTczOQo+PTIwCj4gV2l0aGluIGEgZGVwZW5kZW5jeS10cmVlIGEgZ3JvdXBJZCthcnRpZmFjdElkIGlzIHVuaXF1ZSAobmVhcmVzdCB3aW5zKS49Cgo+IFN1Y2ggYSBkZXBlbmRlbmN5IGhhcyAxIHZlcnNpb24sIGJ1dCBhbHNvIDEgc2NvcGUuCj4gQnkgc2V0dGluZyBpdCBleHBsaWNpdCB0byB0ZXN0LCB5b3UgcmVkdWNlIHRoZSBzY29wZSBhbmQgaXQgaXMgbm90Cj4gYXZhaWxhYmxlIGR1cmluZyBjb21waWxlIGFueW1vcmUuCj49MjAKPiBJcyB0aGlzIGNvcnJlY3Q/CgpZZXMsIHRoaXMgaXMgd2hhdCBJIG9ic2VydmUuCgo+IFdlbGwsIHRoaXMgY29uY2VwdCBlbnN1cmVzIHRoYXQgeW91IHRlc3Qgd2l0aCBleGFjdGx5IHRoZSBzYW1lIHNldCBvZgo+IGRlcGVuZGVuY2llcyBhcyB0aGUgb25lcyBhdmFpbGFibGUgYXQgcnVudGltZS4KClRoYXQncyBhIHJlYXNvbmFibGUgZ29hbDsgeW91IHdvdWxkbid0IHdhbnQgdG8gdXNlIGRpZmZlcmVudCB2ZXJzaW9ucwpiZXR3ZWVuIGluIGNvbXBpbGUgYW5kIHRlc3QgY2xhc3NwYXRoLgoKPiBPbiB0aGUgb3RoZXIgaGFuZCwgcmVkdWNpbmcgdGhlIHNjb3BlIGltcGxpZXMgdGhhdCB5b3UnbGwgYmUgbWlzc2luZyBvbj0KZQo+IG9yIG1vcmUgZGVwZW5kZW5jaWVzIGF0IHJ1bnRpbWUuCj49MjAKPiBXZSBjb3VsZCB0aGluayBvZiBtYWtpbmcgZGVwZW5kZW5jaWVzICphbHdheXMqIHNjb3BlLWNvbnRleHQtYXdhcmUuCj4gVXNpbmcgeW91ciBjYXNlIG9uZSBjb3VsZCBzdWdnZXN0IHRoYXQgYXQgY29tcGlsZS10aW1lIGhhbWNyZXN0LWNvcmU6MS49CjEKPiBpcyB1c2VkLCBidXQgYXQgdGVzdC10aW1lIGhhbWNyZXN0LWNvcmU6MS4yCgpJIGRvbid0IHRoaW5rIHRoYXQncyBhIGdvb2Qgc29sdXRpb24sIGFzIGl0IG1pc3NlcyB0aGUgZ29hbCBvZiB1c2luZyB0aGUKKnNhbWUqIHZlcnNpb24gb2YgYSBsaWJyYXJ5IGluIGNvbXBpbGUgYW5kIHRlc3QgY2xhc3NwYXRocy4KCklNSE8sIHRoZSBiZXR0ZXIgc29sdXRpb24gd291bGQgYmUgaWYgdGhlIGRpcmVjdCwgdGVzdC1zY29wZWQKaGFtY3Jlc3QtY29yZToxLjIgZGVwZW5kZW5jeSBwcm9tb3RlZCB0aGUgdHJhbnNpdGl2ZSwgY29tcGlsZS1zY29wZWQKaGFtY3Jlc3QtY29yZToxLjEgdG8gdmVyc2lvbiAxLjIgLS0gZXZlbiBpZiBpdCBpdHNlbGYgd2VyZSBleGNsdWRlZCBmcm9tCnRoZSBjb21waWxlIGNsYXNzcGF0aC4KCkdyYW50ZWQsIHRoaXMgd291bGQgbWVhbiB0aGF0IG9uZSBwYXJ0IG9mIHRoZSBkZXBlbmRlbmN5IGdyYXBoIG92ZXJyaWRlcwp2ZXJzaW9ucyBpbiBhbm90aGVyIHBhcnQgb2YgdGhlIGdyYXBoLCB3aGljaCBzZWVtcyB1bmV4cGVjdGVkLCBidXQgd2l0aApkZXBlbmRlbmNpZXMgYmVpbmcgIm9taXR0ZWQgZm9yIGNvbmZsaWN0IiB3ZSBhbHJlYWR5IGhhdmUgc29tZXRoaW5nIHNpbWlsPQphci4KCj4gVG8gbWUgdGhpcyBtYWtlcyBtb3JlIHNlbnNlLCBidXQgYXQgdGhlIHNhbWUgdGltZSBpdCBpcyBoYXJkIHRvIHByZWRpY3Q9Cgo+IHRoZSBpbXBhY3Qgb2Ygc3VjaCBhIGNoYW5nZS4KClRoYXQgYmVpbmcgc2FpZCwgSSBjYW4gdW5kZXJzdGFuZCB3aGVuIHlvdSBkb24ndCB3YW50IHRvIGNoYW5nZSB0aGlzCmJlaGF2aW9yLCBhcyB0aGF0IHdvdWxkIHBvdGVudGlhbGx5IGNoYW5nZSB0aGUgbWVhbmluZyBvZiBleGlzdGluZyBQT01zLgpIb3dldmVyLCBpdCB3b3VsZCBvbmx5ICphZGQqIGNvbXBpbGUtc2NvcGVkIGRlcGVuZGVuY2llcyB0aGF0IHdlcmVuJ3QKdGhlcmUgcHJldmlvdXNseSwgc28gSSB0aGluayB0aGUgY2hhbmdlIHdvdWxkbid0IGJyZWFrIGFueXRoaW5nIGJ1dAptZXJlbHkgYWRkIGRlcGVuZGVuY2llcyB0byB0aGUgY2xhc3NwYXRoIHRoYXQgbG9naWNhbGx5IHNob3VsZCBoYXZlIGJlZW4KdGhlcmUgYWxsIGFsb25nIC0tIGJ1dCB3aG9zZSBhYnNlbmNlIGp1c3QgZGlkbid0IGNhdXNlIGFueSBjb21waWxhdGlvbgpvciBydW50aW1lIGVycm9yLgoKQmVzdCB3aXNoZXMsCgpBbmRyZWFzCgoKLS1Vc04xZGd2NmtJU2Zzc2xtSXVFNXMzZktKcTVHUVIzT08tLQoKLS1pUkZpRE9BWDE2Ykl1eHhNUzR4UnJyUUVJUGxkUGczQkcKQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlOyBuYW1lPSJzaWduYXR1cmUuYXNjIgpDb250ZW50LURlc2NyaXB0aW9uOiBPcGVuUEdQIGRpZ2l0YWwgc2lnbmF0dXJlCkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSJzaWduYXR1cmUuYXNjIgoKLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KVmVyc2lvbjogR251UEcgdjIKCmlRSWNCQUVCQ2dBR0JRSmFGOVNqQUFvSkVDS2hkbytudVB5VkxSZ1FBSitPelZidGw1TjlncmdNb0ZhYWVDZW4KT09FcTNkdXVHN25DQjNHV29ySWJxRURvWkUrT1FGODlDWUVncFJkWFZTWUgrZ29ZYVlhZkNWcDU5VVl6RHlrRAp6aStyZE9QbjFmblRJeXRrT3A4Ym1xdWs5ZlR1ZEd0ZjAxUGFpQ0VuNm9pUC9wak9NSUY0KzFldlBucWVjaHdTClBmSCt0ZzZqcU9ycFpSTzF4MjE1TlZiVUJMYlZRKzV3bUtuZnJvTVc0dldYRHVVcFdhSVpJaVBjcnZpajBORmgKbHc5MDhPSUhyY0JEUUwxOC9wSzRhWkVVOUM4bXlNWXlnLzdPVkx2ck0zanJ3di9SUmZsTEZ4VTdZM2h5WmVzSgpiVlB2dlZrcUtMRFZ2RU5HbWJhV0V6bHNrOHpMZVhZNmxlRk9ZbHNWMndtdmdzR2d1eXZIekEvbFFPeWpKV3lQCmw3MlRFUlhqTHRmUDgzL2dReG9aZk9MQXpNc3JVRW9FVVFROHIxZGVvS3dNNm9zTExFb1lObVpxYmZCeEJVNUkKWlhWcCsvT1BXRHJWTUl3QlFTTkhqR0pJSjBDUlNUcW1SSXpzMzhWTWQzcytMYjRLWnFjdFdCSkQvMFJ1YWxPYQp0VWZCb3J4MDhGYVZuRW1rNTdDNlJjcURkcERqb1BySlJkTlJic0pGSU5rSFUvZnRHamdpRU1RUnUvOXd5NDgrClFQUENHMHI2MXovNU9VaS9ra3BORkUxR0hxL3U2VHg4MnZJaVptZmdwdUlkU0V5SE03WVBwWVFkWXlLblVMUDkKS1B2T0ZlWWh1OFpPYWNRb3JCVTEraVh2NHBhTjJSQ1B1TnVPbktvekFEMTJieUZNWm9SNWIwVWl6bElvMWRhNgowY3dYMHUxVW5xdnpxTE5TaldiVQo9QTdxdwotLS0tLUVORCBQR1AgU0lHTkFUVVJFLS0tLS0KCi0taVJGaURPQVgxNmJJdXh4TVM0eFJyclFFSVBsZFBnM0JHLS0KCkZyb20gZGV2LXJldHVybi0xMjQ4MTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIERlYyAyMiAwOTozOTowMiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4MTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMDMxOTUxMDcxOAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDIyIERlYyAyMDE3IDA5OjM5OjAyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzA0NTUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjIgRGVjIDIwMTcgMDk6Mzk6MDEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMwMzc1IGludm9rZWQgYnkgdWlkIDUwMCk7IDIyIERlYyAyMDE3IDA5OjM5OjAxIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzAzNjMgaW52b2tlZCBieSB1aWQgOTkpOyAyMiBEZWMgMjAxNyAwOTozOTowMSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMjIgRGVjIDIwMTcgMDk6Mzk6MDEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBBRkEzNTE4MDVFMAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjIgRGVjIDIwMTcgMDk6Mzk6MDAgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjczClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuNzMgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBIVE1MX01FU1NBR0U9MiwKCUtBTV9MT1RTT0ZIQVNIPTAuMjUsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkKCWhlYWRlci5kPXp1c2FtbWVua3VuZnQtbmV0LjIwMTUwNjIzLmdhcHBzc210cC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBkNktNM1l1YV92TGMgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglGcmksIDIyIERlYyAyMDE3IDA5OjM4OjU4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtcGwwLWY0Ni5nb29nbGUuY29tIChtYWlsLXBsMC1mNDYuZ29vZ2xlLmNvbSBbMjA5Ljg1LjE2MC40Nl0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA0RjRCRjVGMzY3Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAyMiBEZWMgMjAxNyAwOTozODo1OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1wbDAtZjQ2Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGIxMnNvMTI2MTIxNjVwbG0uMwogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDIyIERlYyAyMDE3IDAxOjM4OjU4IC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD16dXNhbW1lbmt1bmZ0LW5ldC4yMDE1MDYyMy5nYXBwc3NtdHAuY29tOyBzPTIwMTUwNjIzOwogICAgICAgIGg9ZnJvbTp0bzpzdWJqZWN0OnRocmVhZC10b3BpYzp0aHJlYWQtaW5kZXg6ZGF0ZTptZXNzYWdlLWlkCiAgICAgICAgIDpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmNvbnRlbnQtbGFuZ3VhZ2U6bWltZS12ZXJzaW9uOwogICAgICAgIGJoPWZSVG1BWHk1VXFkSGU2WmxEUmNtMUhTYXNraE1xYnpsd1AzQk5RckJvK3c9OwogICAgICAgIGI9dU4zQjJVa2wzYXVCVHBJZEI5R3FxTjBCSHkzajdSaThMZEhQa00wUDZZd2ZzUGJKaDJGNG1BNG1wdzlyOHpHdDhPCiAgICAgICAgIERXVjZQS2tDSkQ2R25TMnVYc2NVVXNLeHNuUy9xeXJ2V25Jd2ZKU2lNN1pwTUw5aDJvdXovbStUK3FTdWszYTdNdk9mCiAgICAgICAgIEZkUnJRRlkwUm5qZVdHOTlva3ZpK0oxajBjWWs1Y0lJQ1pIV3d6RHF1VVZQZ1g5UmdPS0FhblFSWWREMjRGMWlXUG1pCiAgICAgICAgIEh6dytZSndIUmZUSlVXYmxBcmRiWWNTZzZDWVc2ZFdKSlFpbHhxVkljclhwQXNIZmxudGxGc1c5MHp5NmVBZ25idFpUCiAgICAgICAgIDQ1akRzU2owT0ZqV0dZNjJKTk95OVRZc2FLZnk0a1lNTGNZMmppQUR2M3R3S0xNYkpUK0owWENWc0JjTUV6NlpkSWlvCiAgICAgICAgIENybnc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOmZyb206dG86c3ViamVjdDp0aHJlYWQtdG9waWM6dGhyZWFkLWluZGV4OmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6cmVmZXJlbmNlczppbi1yZXBseS10bzpjb250ZW50LWxhbmd1YWdlOm1pbWUtdmVyc2lvbjsKICAgICAgICBiaD1mUlRtQVh5NVVxZEhlNlpsRFJjbTFIU2Fza2hNcWJ6bHdQM0JOUXJCbyt3PTsKICAgICAgICBiPWI2ZHBobll4MFZwenlpZTd1d0duV2p4NFV0bUtpaTVNQjN0UVJrTnVINklTTmxBWkc3NC9CdnYrdWRKMXpKNE1JNwogICAgICAgICBMSmNDMVVQVDdDQjl4QUFxOUw3NEU4K3phWTZFTTk1Rm11WnpMMXlXY3RiUlhOWjBXTXgwVVEvVXBJb29ETXc5NFY4dgogICAgICAgICBXSlJuYXVaL05YUCtCS09sS0drbkRNcklDWS92Vk14TS9CYTBvWDZNeStQT3dhcWx1Zit1VTBQZlh3SnQ4OHhRSzR5UAogICAgICAgICBJY1U5akFqYTBFWk1Qakx5OXY1ZHFNMW1aQ3dvSzdnTXpod2l2NTltT0Y2K2tCUWVhVlIwWlNvdGJ0ZHhML09EWlZzdwogICAgICAgICBvN1c3UHE2Y0hrYUNCU3RMVVVBbWVWS09UMmhYSnNiRlRtYTFiMUZpcEd5Z1dMNzBTOFBNVmV2UnJ3MTIvYmM5blBHLwogICAgICAgICByM3NRPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBS0dCM21Ld2xpajZoYkVPdTdQVWFDNHJsSkFFNXJFLzZvazdGWWNmdGF4Mmtta3hTcndhRWhZTAoJbE04ZEhBVEE2U0ovUy9CQ2ZHazYxck1WOElwVFJ6cz0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFDSmZCb3RieUhhN0pVMnFhVXduQUNJNTRoeE5aeHBoOTloaUJNNW5pMVJpSlZ1ekg4T3RUaTlpUStrL3lDUUY3RFo1R0VGOVBaTWN6QT09ClgtUmVjZWl2ZWQ6IGJ5IDEwLjE1OS4yMTYuMTM2IHdpdGggU01UUCBpZCBzOG1yMTM4NjAxODNwbHAuNzcuMTUxMzkzNTUzNzExNTsKICAgICAgICBGcmksIDIyIERlYyAyMDE3IDAxOjM4OjU3IC0wODAwIChQU1QpClJlY2VpdmVkOiBmcm9tIEFNNFBSMDhNQjEyMTkuZXVycHJkMDgucHJvZC5vdXRsb29rLmNvbSAoWzQwLjEwMS4xNi4xNjVdKQogICAgICAgIGJ5IHNtdHAuZ21haWwuY29tIHdpdGggRVNNVFBTQSBpZCBwNzdzbTQ3MDM5ODkxcGZkLjEzMi4yMDE3LjEyLjIyLjAxLjM4LjU1CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KICAgICAgICAodmVyc2lvbj1UTFMxXzIgY2lwaGVyPUVDREhFLVJTQS1BRVMxMjgtU0hBIGJpdHM9MTI4LzEyOCk7CiAgICAgICAgRnJpLCAyMiBEZWMgMjAxNyAwMTozODo1NiAtMDgwMCAoUFNUKQpGcm9tOiBCZXJuZCBFY2tlbmZlbHMgPGVja2lAenVzYW1tZW5rdW5mdC5uZXQ+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIFBERiBQbHVnaW4gdmVyc2lvbiAxLjQKVGhyZWFkLVRvcGljOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gUERGIFBsdWdpbiB2ZXJzaW9uIDEuNApUaHJlYWQtSW5kZXg6IEFYQkJaVVV6OTVmR3lhS2FHYzNsY1hWOENPRzFMOFp6UnM4cwpYLU1TLUV4Y2hhbmdlLU1lc3NhZ2VTZW50UmVwcmVzZW50aW5nVHlwZTogMgpEYXRlOiBGcmksIDIyIERlYyAyMDE3IDA5OjM4OjUxICswMDAwCk1lc3NhZ2UtSUQ6Cgk8QU00UFIwOE1CMTIxOTQyNzlCM0M4MkQxQTY3NkQxRTRFRkYwMjBAQU00UFIwOE1CMTIxOS5ldXJwcmQwOC5wcm9kLm91dGxvb2suY29tPgpSZWZlcmVuY2VzOiA8MzExMTAzMi5FdEZlVTFBbFBwQGdpZ2E+CkluLVJlcGx5LVRvOiA8MzExMTAzMi5FdEZlVTFBbFBwQGdpZ2E+CkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLVVTClgtTVMtSGFzLUF0dGFjaDoKWC1NUy1UTkVGLUNvcnJlbGF0b3I6ClgtTVMtRXhjaGFuZ2UtT3JnYW5pemF0aW9uLVJlY29yZFJldmlld0NmbVR5cGU6IDAKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7Cglib3VuZGFyeT0iXzAwMF9BTTRQUjA4TUIxMjE5NDI3OUIzQzgyRDFBNjc2RDFFNEVGRjAyMEFNNFBSMDhNQjEyMTlldXJwXyIKTUlNRS1WZXJzaW9uOiAxLjAKCi0tXzAwMF9BTTRQUjA4TUIxMjE5NDI3OUIzQzgyRDFBNjc2RDFFNEVGRjAyMEFNNFBSMDhNQjEyMTlldXJwXwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkhlbGxvLAoKKE5vdCBhIFJlbGVhc2Ugc2hvd3N0b3BwZXIgSSBndWVzcykKClRoZXJlIGlzIHNvbWUgdGV4dCBhYm91dCBtYXZlbjMgcmVwb3J0IHNob3J0Y29taW5ncyB3aGljaCBoYXMgYSBqaXJhIGxpbmsgdz0KaGljaCBpcyBtYXJrZWQgYXMgZml4ZWQsIG1heWJlIHRoZSBkb2N1bWVudGF0aW9uIG5lZWRzIGFuIHVwZGF0ZSwgdG9vPwoKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NUERGLTQxCmh0dHBzOi8vZ2l0Ym94LmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9M0RtYXZlbi1wZGYtcGx1Z2luLmdpdDthPTNEYmxvYjtmPTNEcz0KcmMvc2l0ZS94ZG9jL2V4YW1wbGVzL2NvbmZpZ3VyaW5nLXJlcG9ydHMueG1sLnZtO2g9M0QxZmNmYmQxN2E2OWEzY2VjMTMzYTJmPQowYTc3ZGU1NWJjNTllOTAwN2E7aGI9M0RkN2NlYzQ1NzJmZGFlY2MwZDZlMDQzOGNjNzdkYjRlNTUzMTlkYzAwCgpBbHNvIHRoZSBvbGQgU1ZOIHZlcnNpb24gaXMgYXZhaWxhYmxlIG9uIEdpdC9naXRodWIgbWlycm9ycywgaXQgc2hvdWxkIG1heWI9CmUgaGF2ZSBhIFVSTCB0byB0aGUgZ2l0Ym94IFJlcG9zaXRvcnk/CgpodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvYmxvYi90cnVuay9tYXZlbi1wZGYtcGx1Z2luL01PVkVEX1Q9Ck9fR0lUCgpHcnVzcwpCZXJuZAoKR3J1c3MKQmVybmQKLS0KaHR0cDovL2Jlcm5kLmVja2VuZmVscy5uZXQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRnJvbTogSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClNlbnQ6IEZyaWRheSwgRGVjZW1iZXIgMjIsIDIwMTcgMTA6MTE6MzIgQU0KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdApTdWJqZWN0OiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gUERGIFBsdWdpbiB2ZXJzaW9uIDEuNAoKSGksCgpXZSBzb2x2ZWQgMTIgaXNzdWVzOgpodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/CnByb2plY3RJZD0zRDEyMzE3NjIwJnZlcnNpb249M0QxMjMzMzMzOCZzdHlsZU5hbWU9M0RUZXh0CgpUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUzRCUyME1QREYlMjBBTkQlMjBzPQp0YXR1cwolMjAlM0QlMjBPcGVuJTIwT1JERVIlMjBCWSUyMGtleSUyMERFU0MlMkMlMjBwcmlvcml0eSUyMERFU0MKClN0YWdpbmcgcmVwbzoKaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM4NS8KaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM4NS9vcmcvYXBhY2hlLwptYXZlbi9wbHVnaW5zL21hdmVuLXBkZi1wbHVnaW4vMS40L21hdmVuLXBkZi1wbHVnaW4tMS40LXNvdXJjZS1yZWxlYXNlLnppcAoKU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cm1hdmVuLXBkZi1wbHVnaW4tMS40LXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOgo4OGQyZDI1NGU2NzQ5MzhiMTk3ZGY2YjM3YjU0Yzc1ZWM4MTdmY2Y0CgpTdGFnaW5nIHNpdGU6Cmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLXBkZi1wbHVnaW4tTEFURVNULwoKR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCgpWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgoKWyBdICsxClsgXSArMApbIF0gLTEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKLS1fMDAwX0FNNFBSMDhNQjEyMTk0Mjc5QjNDODJEMUE2NzZEMUU0RUZGMDIwQU00UFIwOE1CMTIxOWV1cnBfLS0KCkZyb20gZGV2LXJldHVybi0xMjM5NjgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIFNlcCAxMSAxMToyMDoxMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5NjgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNTlGRkMxOTZENQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDExOjIwOjEwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTQzNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAxMToyMDoxMCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTMzNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAxMToyMDowOSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkzMTkgaW52b2tlZCBieSB1aWQgOTkpOyAxMSBTZXAgMjAxNyAxMToyMDowOSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMTEgU2VwIDIwMTcgMTE6MjA6MDkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAxRUJBQkQyNzE4Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAxMToyMDowOSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDAuMgpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjIgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBIVE1MX01FU1NBR0U9MiwKCUtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44LCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41XSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPXRhbGlvcy1jb20uMjAxNTA2MjMuZ2FwcHNzbXRwLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgMXRXTjRfbDNFRV9ZIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAxMSBTZXAgMjAxNyAxMToyMDowNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLWlvMC1mMTczLmdvb2dsZS5jb20gKG1haWwtaW8wLWYxNzMuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIyMy4xNzNdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgODA0MDI2MEVGNQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMTE6MjA6MDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtaW8wLWYxNzMuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgeTEyM3NvMjM4NTY4NDlpb2QuMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDA0OjIwOjA3IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD10YWxpb3MtY29tLjIwMTUwNjIzLmdhcHBzc210cC5jb207IHM9MjAxNTA2MjM7CiAgICAgICAgaD1mcm9tOnRvOnN1YmplY3Q6ZGF0ZTptZXNzYWdlLWlkOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6bWltZS12ZXJzaW9uOwogICAgICAgIGJoPVcyOWpjYkUvQm1aWitXWWhFN1U3dzhsdnp1am00aHV5KzJFc2NQWk8yRTg9OwogICAgICAgIGI9dHAwYnQzVkorVHhUMzQ2Vll2ejM0VGRDZmFTN3R4bTM3U3RUbmhrZHpMdHNKTDhmNk44bWt2b3k4TklvS0lZa1YwCiAgICAgICAgIHlVc3ZPOEsrOFNTbXFyQVFrYlFwaGdzVTFWN1I2YmE2V3dlNDNlWDV2Q3c4UEhPOGgyTlJ3bTBiRW5oL1BaSFdKYVE0CiAgICAgICAgIFVDQy9lejlFL3hMZ0phbXpxYlIzTzg2M0NKcktyVUIwaDU4aW9XcjNZd2xEMkJQQldhOFhiSURXU1gwZzQ2TEJSYWplCiAgICAgICAgIHdRb3JSU3U0WHd2YlVrOTlxVUgzS0FCYVhwVW0vV0JHR0xGWm5TT2FjcWJIOEVYMUdUbUdNT0RSeVI0ZU5ZSU9aSWpJCiAgICAgICAgIEdPcUI0SXZMd0V1KzVETE1UaHcrWU8yNy9qMGM5eHFEM01JMGR0TXFDeXZlZlNiMjJxMWRsUGpoaWZ1WW5pd2FtSGpSCiAgICAgICAgIGFiL0E9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOmZyb206dG86c3ViamVjdDpkYXRlOm1lc3NhZ2UtaWQ6aW4tcmVwbHktdG8KICAgICAgICAgOnJlZmVyZW5jZXM6bWltZS12ZXJzaW9uOwogICAgICAgIGJoPVcyOWpjYkUvQm1aWitXWWhFN1U3dzhsdnp1am00aHV5KzJFc2NQWk8yRTg9OwogICAgICAgIGI9Q1F4RlVvdzgrdWp3cTNYYkRmKzdWT21oSXJuZXQvcGZKWWpsSk82bFhIcXNzd2czRm9hdmR1YVB2a3hCbi8yZnZHCiAgICAgICAgIEswbnR0OHVJcmRGbjJ3Z1dSRFM1RjBhMWFwL3lQeU5TN3NENjRsdjF1S3RKdjU5MDJIcno5T0dETHhQYWxtdCtPOGpmCiAgICAgICAgIG5ZbGRrbUVmbVNDOFRGaWpmUm5YOUNPYWpndFZ5MVNtcUlrU0pKOG9zeGQyLzVjT0dIUTBnZlRSUTlBOEhpemVZUExsCiAgICAgICAgIHNzZDBWamg3ODVadWR1d2NKTG1SSXN5MkdqY0lOa2lxL3NHZjc4TGxLRTVURVlhQmdXdGI2aFMzckl5R3RCUHkyKzltCiAgICAgICAgIGdqOSs4anI4ZnVsa3hTUG9xRHVZZnpFZ2N2WVNxWjRUekl0Ums3K1gvZ25yMnRqRk8vckJQMXNsbjNMMzVEd1p5eitxCiAgICAgICAgIGtjWHc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWcyNWJGS3NIdU1MTHBPWDBuTlFPZW1wZXNDc2twWFBBbXhCYld0NE1tT3lNbWt6alNSCgltOTA3alczbDc1QUk0dDlVd21adDdRPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUNhd1FIY1NBTnAzY2xNTVo3dCtycTVjMHRPSVNLemF5NTlKd2JXSHhSTHB1cWFCN2ViQXhxYS9UZE43RHBya0Zzd2IwaUVXQT09ClgtUmVjZWl2ZWQ6IGJ5IDEwLjEwNy45LjE0NCB3aXRoIFNNVFAgaWQgMTZtcjEzODk5MzUxaW9qLjkzLjE1MDUxMjg4MDU5MDE7CiAgICAgICAgTW9uLCAxMSBTZXAgMjAxNyAwNDoyMDowNSAtMDcwMCAoUERUKQpSZWNlaXZlZDogZnJvbSBbMTAuMC42Mi40Ml0gKFsxMTguMTQ4LjExMi4xMzJdKQogICAgICAgIGJ5IHNtdHAuZ21haWwuY29tIHdpdGggRVNNVFBTQSBpZCBpNjNzbTQ1MDY1OTBpdGguNS4yMDE3LjA5LjExLjA0LjIwLjAyCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KICAgICAgICAodmVyc2lvbj1UTFMxXzIgY2lwaGVyPUVDREhFLVJTQS1BRVMxMjgtR0NNLVNIQTI1NiBiaXRzPTEyOC8xMjgpOwogICAgICAgIE1vbiwgMTEgU2VwIDIwMTcgMDQ6MjA6MDMgLTA3MDAgKFBEVCkKRnJvbTogIk1hcmsgRGVycmljdXR0IiA8bWFya0B0YWxpb3MuY29tPgpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xCkRhdGU6IE1vbiwgMTEgU2VwIDIwMTcgMjM6MTk6NDUgKzEyMDAKTWVzc2FnZS1JRDogPEIxNDhDOTY3LTE2OTUtNDVDMi1BMTVGLTFGRkY5MDNCQ0I1MEB0YWxpb3MuY29tPgpJbi1SZXBseS1UbzogPENBK25Qbk13VXFtQnVyYXREMUNwaz1MOXRBQ3dfK3FvdHJzVXBDcWRxUlpYbVdYZ2lUQUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk14eUcyTmVQWHBWcWF3ZTlqUj1pdEhFVDZVdWRuTjlDakhodj1vby1LQ3J4d0BtYWlsLmdtYWlsLmNvbT4KIDxDQUZOQ1UtLTJ2cmQ1QmVUdmt4S0N5WDJaUWVQcWl4N1g9d21Wc1dkTTVkNDlYZU5nT3dAbWFpbC5nbWFpbC5jb20+CiA8RjcwNTdFMUItNDMxMy00RDdCLThFRjEtOTkzNDFERDFFMUQwQHRhbGlvcy5jb20+CiA8Q0ErblBuTXdVcW1CdXJhdEQxQ3BrPUw5dEFDd18rcW90cnNVcENxZHFSWlhtV1hnaVRBQG1haWwuZ21haWwuY29tPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IG11bHRpcGFydC9zaWduZWQ7CiBib3VuZGFyeT0iPV9NYWlsTWF0ZV84ODUyM0QzOS05QzQ1LTRCQjMtOEMyRC1FRDdFNDE4MDA4N0NfPSI7CiBtaWNhbGc9cGdwLXNoYTE7IHByb3RvY29sPSJhcHBsaWNhdGlvbi9wZ3Atc2lnbmF0dXJlIgpYLU1haWxlcjogTWFpbE1hdGUgKDIuMEJFVEFyNjA5MCkKCi0tPV9NYWlsTWF0ZV84ODUyM0QzOS05QzQ1LTRCQjMtOEMyRC1FRDdFNDE4MDA4N0NfPQpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsKIGJvdW5kYXJ5PSI9X01haWxNYXRlXzI1MTc3ODI0LTkxNjItNDBBMi1CRTlELTE1MUFDNTIzMjhGNl89IgoKCi0tPV9NYWlsTWF0ZV8yNTE3NzgyNC05MTYyLTQwQTItQkU5RC0xNTFBQzUyMzI4RjZfPQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IG1hcmt1cD1tYXJrZG93bgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPbiAxMSBTZXAgMjAxNywgYXQgMTg6MTAsIFN0ZXBoZW4gQ29ubm9sbHkgd3JvdGU6Cgo+IEkgd29uZGVyIGlmIG1uZy02Mjc1IGlzIGFmZmVjdGluZyB0aGF0IHBsdWdpbgoKRGlkbid0IG1hbmFnZSB0byBnZXQgYSBjaGFuY2UgdG8gbG9vayBpbnRvIHRoaXMgdG9uaWdodCA6KCBUaG8gdGhhdCB0aWNrZT0KdCBtZW50aW9ucyBuYXNob3JuLCBwaGFudG9uanMgaXMgYSBDL25hdGl2ZSBoZWFkbGVzcyBicm93c2VyIGxpYnJhcnksIHNvID0KaXQgZG9lc24ndCBmZWVsIGxpa2UgaXQgY291bGQgYmUgcmVsYXRlZC4KCklmIHRoZXJlJ3MgYSBidWlsZCBhdmFpbGFibGUgd2l0aCBhIGZpeCBmb3IgdGhhdCwgd2VsY29tZSB0byBnaXZlIGl0IGEgYmE9CnNoLgoKSSdsbCB0cnkgY2FydmUgb3V0IHNvbWUgdGltZSBpbiB0aGUgbW9ybmluZyB0byBzZWUgaWYgSSBjYW4gbWFrZSBhIHNpbXBsZT0KIHN0YW5kYWxvbmUgcHJvamVjdC4uLgoKLS0tCiJUaGUgZWFzZSB3aXRoIHdoaWNoIGEgY2hhbmdlIGNhbiBiZSBpbXBsZW1lbnRlZCBoYXMgbm8gcmVsZXZhbmNlIGF0IGFsbCA9CnRvIHdoZXRoZXIgaXQgaXMgdGhlIHJpZ2h0IGNoYW5nZSBmb3IgdGhlIChKYXZhKSBQbGF0Zm9ybSBmb3IgYWxsIHRpbWUuIiA9CiZtZGFzaDsgTWFyayBSZWluaG9sZC4KCk1hcmsgRGVycmljdXR0Cmh0dHA6Ly93d3cudGhlb3J5aW5wcmFjdGljZS5uZXQKaHR0cDovL3d3dy5jaGFsaWNlb2ZibG9vZC5uZXQKaHR0cDovL3BsdXMuZ29vZ2xlLmNvbS8rTWFya0RlcnJpY3V0dApodHRwOi8vdHdpdHRlci5jb20vdGFsaW9zCmh0dHA6Ly9mYWNlYm9vay5jb20vbWRlcnJpY3V0dAoKLS09X01haWxNYXRlXzI1MTc3ODI0LTkxNjItNDBBMi1CRTlELTE1MUFDNTIzMjhGNl89CkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPgo8aHRtbD4KPGhlYWQ+CjxtZXRhIGh0dHAtZXF1aXY9M0QiQ29udGVudC1UeXBlIiBjb250ZW50PTNEInRleHQveGh0bWw7IGNoYXJzZXQ9M0R1dGYtOCI9Cj4KPC9oZWFkPgo8Ym9keT4KPGRpdiBzdHlsZT0zRCJmb250LWZhbWlseTpzYW5zLXNlcmlmIj48ZGl2IHN0eWxlPTNEIndoaXRlLXNwYWNlOm5vcm1hbCI+CjxwIGRpcj0zRCJhdXRvIj5PbiAxMSBTZXAgMjAxNywgYXQgMTg6MTAsIFN0ZXBoZW4gQ29ubm9sbHkgd3JvdGU6PC9wPgoKPGJsb2NrcXVvdGUgc3R5bGU9M0QiYm9yZGVyLWxlZnQ6MnB4IHNvbGlkICM1ODU1RDU7IGNvbG9yOiM1ODU1RDU7IG1hcmdpbj0KOjAgMCA1cHg7IHBhZGRpbmctbGVmdDo1cHgiPgo8cCBkaXI9M0QiYXV0byI+SSB3b25kZXIgaWYgbW5nLTYyNzUgaXMgYWZmZWN0aW5nIHRoYXQgcGx1Z2luPC9wPgo8L2Jsb2NrcXVvdGU+Cgo8cCBkaXI9M0QiYXV0byI+RGlkbid0IG1hbmFnZSB0byBnZXQgYSBjaGFuY2UgdG8gbG9vayBpbnRvIHRoaXMgdG9uaWdodCA6PQooIFRobyB0aGF0IHRpY2tldCBtZW50aW9ucyBuYXNob3JuLCBwaGFudG9uanMgaXMgYSBDL25hdGl2ZSBoZWFkbGVzcyBicm93PQpzZXIgbGlicmFyeSwgc28gaXQgZG9lc24ndCBmZWVsIGxpa2UgaXQgY291bGQgYmUgcmVsYXRlZC48L3A+Cgo8cCBkaXI9M0QiYXV0byI+SWYgdGhlcmUncyBhIGJ1aWxkIGF2YWlsYWJsZSB3aXRoIGEgZml4IGZvciB0aGF0LCB3ZWxjb21lPQogdG8gZ2l2ZSBpdCBhIGJhc2guPC9wPgoKPHAgZGlyPTNEImF1dG8iPkknbGwgdHJ5IGNhcnZlIG91dCBzb21lIHRpbWUgaW4gdGhlIG1vcm5pbmcgdG8gc2VlIGlmIEkgYz0KYW4gbWFrZSBhIHNpbXBsZSBzdGFuZGFsb25lIHByb2plY3QuLi48L3A+Cgo8aHI+Cgo8cCBkaXI9M0QiYXV0byI+IlRoZSBlYXNlIHdpdGggd2hpY2ggYSBjaGFuZ2UgY2FuIGJlIGltcGxlbWVudGVkIGhhcyBubyByPQplbGV2YW5jZSBhdCBhbGwgdG8gd2hldGhlciBpdCBpcyB0aGUgcmlnaHQgY2hhbmdlIGZvciB0aGUgKEphdmEpIFBsYXRmb3JtPQogZm9yIGFsbCB0aW1lLiIgPUUyPTgwPTk0IE1hcmsgUmVpbmhvbGQuPC9wPgoKPHAgZGlyPTNEImF1dG8iPk1hcmsgRGVycmljdXR0PGJyPgo8YSBocmVmPTNEImh0dHA6Ly93d3cudGhlb3J5aW5wcmFjdGljZS5uZXQiPmh0dHA6Ly93d3cudGhlb3J5aW5wcmFjdGljZS5uPQpldDwvYT48YnI+CjxhIGhyZWY9M0QiaHR0cDovL3d3dy5jaGFsaWNlb2ZibG9vZC5uZXQiPmh0dHA6Ly93d3cuY2hhbGljZW9mYmxvb2QubmV0PC89CmE+PGJyPgo8YSBocmVmPTNEImh0dHA6Ly9wbHVzLmdvb2dsZS5jb20vK01hcmtEZXJyaWN1dHQiPmh0dHA6Ly9wbHVzLmdvb2dsZS5jb20vPQorTWFya0RlcnJpY3V0dDwvYT48YnI+CjxhIGhyZWY9M0QiaHR0cDovL3R3aXR0ZXIuY29tL3RhbGlvcyI+aHR0cDovL3R3aXR0ZXIuY29tL3RhbGlvczwvYT48YnI+CjxhIGhyZWY9M0QiaHR0cDovL2ZhY2Vib29rLmNvbS9tZGVycmljdXR0Ij5odHRwOi8vZmFjZWJvb2suY29tL21kZXJyaWN1dHQ9CjwvYT48L3A+CjwvZGl2Pgo8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+CgotLT1fTWFpbE1hdGVfMjUxNzc4MjQtOTE2Mi00MEEyLUJFOUQtMTUxQUM1MjMyOEY2Xz0tLQoKLS09X01haWxNYXRlXzg4NTIzRDM5LTlDNDUtNEJCMy04QzJELUVEN0U0MTgwMDg3Q189CkNvbnRlbnQtRGVzY3JpcHRpb246IE9wZW5QR1AgZGlnaXRhbCBzaWduYXR1cmUKQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9c2lnbmF0dXJlLmFzYwpDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3BncC1zaWduYXR1cmU7IG5hbWU9c2lnbmF0dXJlLmFzYwoKLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KVmVyc2lvbjogR251UEcvTWFjR1BHMiB2Mi4wCgppUUVjQkFFQkFnQUdCUUpadG5GUkFBb0pFT2phZzJSelR0SkZZUWtIL0FrdWQ3NG4yU2MzQXlmcG9BRTk1NG9WCncyN3kzVSsyVng2VE14Y1dTUEQvMk1hQ0s0SE1EMnpNWS9TUlNFa1FzMGZKdTBaQW5lS0NvSTJiWm9EV0JEMzYKYmF3TTNncCtweWpjUVdkbmR2R2xWOENQYURTQTNlY2ZtNElLSUltK2VUU2x0S3I2OWQrZUxaRUgrSnpkeHpBNApJR0V3Y3UvL0tkVHM2YWZHQVRHSCthTkovMnQ5TUhlakZzT3hHZ3hnS2dlZVV5UUo5Y1ZSbm1qZjV6NytCYjBLCnNNcFFFbzRkNjVKVzBwcVhsOFZjOHhhZU9XcWY5S0RhQVZxQ1NyeUEzNUErWHBHenFKbzdxdWNrOHRLVUNMNHYKQ1V1UXBlcnJwVm5Eb0xzb3N3Y1BXemI4Yys3d1FxYVBTRzROanRTNm8wVFREZnoyQjdIY3o4TGlEWXhiSzVrPQo9UU9MZAotLS0tLUVORCBQR1AgU0lHTkFUVVJFLS0tLS0KCi0tPV9NYWlsTWF0ZV84ODUyM0QzOS05QzQ1LTRCQjMtOEMyRC1FRDdFNDE4MDA4N0NfPS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MjMzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBPY3QgMTMgMTY6MzY6MjMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjMzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDkyQUUyQ0E3MgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDEzIE9jdCAyMDE3IDE2OjM2OjIzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjI1NzcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTMgT2N0IDIwMTcgMTY6MzY6MjMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIyNDc2IGludm9rZWQgYnkgdWlkIDUwMCk7IDEzIE9jdCAyMDE3IDE2OjM2OjIzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjI0NjUgaW52b2tlZCBieSB1aWQgOTkpOyAxMyBPY3QgMjAxNyAxNjozNjoyMyAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAxMyBPY3QgMjAxNyAxNjozNjoyMyArMDAwMApSZWNlaXZlZDogZnJvbSBiZW5lZGlrdHMtbWJwLmxvY2FsIChkc2xiLTA4OC0wNjktMjQ3LTAwOS4wODguMDY5LnBvb2xzLnZvZGFmb25lLWlwLmRlIFs4OC42OS4yNDcuOV0pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCA4NzZEQTFBMDExNwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTMgT2N0IDIwMTcgMTY6MzY6MjIgKzAwMDAgKFVUQykKRnJvbTogQmVuZWRpa3QgUml0dGVyIDxicml0dGVyQGFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsKCWNoYXJzZXQ9dXRmLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpNaW1lLVZlcnNpb246IDEuMCAoTWFjIE9TIFggTWFpbCAxMS4wIFwoMzQ0NS4xLjdcKSkKU3ViamVjdDogUmU6IGRlcGVuZGVuY3k6Z28tb2ZmbGluZSBicm9rZW4/CkRhdGU6IEZyaSwgMTMgT2N0IDIwMTcgMTg6MzY6MTkgKzAyMDAKUmVmZXJlbmNlczogPDQ5NTk1MjJBLTIwOTAtNDIzOS04MjMzLUUzMjAwMERFOUE1QkBhcGFjaGUub3JnPgogPDM5ODA3NzMuTWVqR0FhQjFxb0BnaWdhPiA8RDJGRjBGNjYtRjc4RC00MzI4LTlCMjktNTM0QjlFMUZDMjAzQGFwYWNoZS5vcmc+CiA8MTg4NzgyNi5WNEdXdm1nMDNuQGdpZ2E+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPDE4ODc4MjYuVjRHV3ZtZzAzbkBnaWdhPgpNZXNzYWdlLUlkOiA8QjUzOUE4NjYtMzE5RS00QkY3LTk2MTEtMjg3QTg2RUEzNjNFQGFwYWNoZS5vcmc+ClgtTWFpbGVyOiBBcHBsZSBNYWlsICgyLjM0NDUuMS43KQoKSGVsbG8sCgo+IEFtIDA4LjEwLjIwMTcgdW0gMTU6NTQgc2NocmllYiBIZXJ2PUMzPUE5IEJPVVRFTVkgPQo8aGVydmUuYm91dGVteUBmcmVlLmZyPjoKPj0yMAo+IExlIGRpbWFuY2hlIDggb2N0b2JyZSAyMDE3LCAxNTozNzo1NCBDRVNUIEJlbmVkaWt0IFJpdHRlciBhID1DMz1BOWNyaXQgPQo6Cj4+IEhlbGxvIEhlcnY9QzM9QTkKPj49MjAKPj4+IFRoZW4gSSBhZGRlZCBhIHBsdWdpbk1hbmFnZW1lbnQgc2VjdGlvbiB0byBzZWxlY3QgdmVyc2lvbiAzLjAuMiBhbmQgPQpyZS1yYW4KPj4+IHRoZSB0ZXN0OiB5b3UnbGwgc2VlIHRoZSBvdXRwdXQgaXMgY29tcGxldGVseSBkaWZmZXJlbnQuCj4+Pj0yMAo+Pj4gQW5kIHRoZXJlIGlzIG5vIGlzc3VlIGFueSBtb3JlCj4+PTIwCj4+IFRoYW5rIHlvdSBzbyBtdWNoLCB5b3UgdG9vayB0aGUgdGltZSB0byBpbnZlc3RpZ2F0ZSB0aGlzIGlzc3VlISA9ClJlYWxseSBtdWNoCj4+IGFwcHJlY2lhdGVkLiBOb3cgSSB3b25kZXIsIHdoeSBNYXZlbiB1c2VzIGFuIG91dGRhdGVkIHZlcnNpb24gb2YgdGhlCj4+IGRlcGVuZGVuY3kgcGx1Z2luLiBJcyB0aGlzIGEgcHJvYmxlbSB3aXRoIHRoZSBzdXBlciBwb20/Cj4gdGhpcyBpcyBhIGNob2ljZSB0byBrZWVwIHN0YWJpbGl0eToKPiBpZiBvbmUgZG93bmxvYWRzIGRlcGVuZGVuY2llcyB1c2luZyBNYXZlbiAzLjAuNSB0aGVuIGEgZmV3IGRheXMgbGF0ZXIgPQpidWlsZHM9MjAKPiBvZmZsaW5lIHdpdGggTWF2ZW4gMy41LCBoZSBkb2VzIG5vdCBoYXZlIGFueSBpc3N1ZSAoYW5kIGJsYW1lID0KZGVwZW5kZW5jeS1wbHVnaW4pCj49MjAKPiByZW1lbWJlciB0aGUgZ29vZCBwcmFjdGljZTogZGVmaW5lIHlvdXIgcGx1Z2luIHZlcnNpb25zLCBlaXRoZXIgaW4gPQp5b3VyIHBvbSBvcj0yMAo+IGJ5IHVzaW5nIGEgcGFyZW50IHRoYXQgZG9lcyB0aGUgam9iCj49MjAKPj49MjAKPj4gRnVydGhlcm1vcmUgST1FMj04MD05OXZlIG5vdGljZWQsIHRoYXQgbXZuIC1vIHRlc3Qgc3RpbGwgZG9lcyBub3QgPQp3b3JrLCBiZWNhdXNlIHNvbWUKPj4gc3VyZWZpcmUgZGVwZW5kZW5jaWVzIGFyZSBtaXNzaW5nOgo+Pj0yMAo+PiBbRVJST1JdIEZhaWxlZCB0byBleGVjdXRlIGdvYWwKPj4gb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zOm1hdmVuLXN1cmVmaXJlLXBsdWdpbjoyLjEyLjQ6dGVzdCA9CihkZWZhdWx0LXRlc3QpCj4+IG9uIHByb2plY3QgZGVwZW5kZW5jeS1wbHVnaW4tYnVnOiBVbmFibGUgdG8gZ2VuZXJhdGUgY2xhc3NwYXRoOgo+PiA9Cm9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QucmVzb2x2ZXIuTXVsdGlwbGVBcnRpZmFjdHNOb3RGb3VuZEV4Y2VwdGlvbjoKPj4gTWlzc2luZzogW0VSUk9SXSAtLS0tLS0tLS0tCj4+IFtFUlJPUl0gMSkgb3JnLmFwYWNoZS5tYXZlbi5zdXJlZmlyZTpzdXJlZmlyZS1qdW5pdDM6amFyOjIuMTIuNAo+PiBbRVJST1JdCj4+IFtFUlJPUl0gVHJ5IGRvd25sb2FkaW5nIHRoZSBmaWxlIG1hbnVhbGx5IGZyb20gdGhlIHByb2plY3Qgd2Vic2l0ZS4KPj4gW0VSUk9SXQo+PiBbRVJST1JdIFRoZW4sIGluc3RhbGwgaXQgdXNpbmcgdGhlIGNvbW1hbmQ6Cj4+IFtFUlJPUl0gbXZuIGluc3RhbGw6aW5zdGFsbC1maWxlIC1EZ3JvdXBJZD0zRG9yZy5hcGFjaGUubWF2ZW4uc3VyZWZpcmUKPj4gLURhcnRpZmFjdElkPTNEc3VyZWZpcmUtanVuaXQzIC1EdmVyc2lvbj0zRDIuMTIuNCAtRHBhY2thZ2luZz0zRGphcgo+PiAtRGZpbGU9M0QvcGF0aC90by9maWxlIFtFUlJPUl0KPj4gW0VSUk9SXSBBbHRlcm5hdGl2ZWx5LCBpZiB5b3UgaG9zdCB5b3VyIG93biByZXBvc2l0b3J5IHlvdSBjYW4gZGVwbG95ID0KdGhlCj4+IGZpbGUgdGhlcmU6IFtFUlJPUl0gbXZuIGRlcGxveTpkZXBsb3ktZmlsZQo+PiAtRGdyb3VwSWQ9M0RvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlIC1EYXJ0aWZhY3RJZD0zRHN1cmVmaXJlLWp1bml0Mwo+PiAtRHZlcnNpb249M0QyLjEyLjQgLURwYWNrYWdpbmc9M0RqYXIgLURmaWxlPTNEL3BhdGgvdG8vZmlsZSA9Ci1EdXJsPTNEW3VybF0KPj4gLURyZXBvc2l0b3J5SWQ9M0RbaWRdIFtFUlJPUl0KPj4gW0VSUk9SXSBQYXRoIHRvIGRlcGVuZGVuY3k6Cj4+IFtFUlJPUl0gMSkgZHVtbXk6ZHVtbXk6amFyOjEuMAo+PiBbRVJST1JdIDIpIG9yZy5hcGFjaGUubWF2ZW4uc3VyZWZpcmU6c3VyZWZpcmUtanVuaXQzOmphcjoyLjEyLjQKPj4gW0VSUk9SXQo+PiBbRVJST1JdIC0tLS0tLS0tLS0KPj4gW0VSUk9SXSAxIHJlcXVpcmVkIGFydGlmYWN0IGlzIG1pc3NpbmcuCj4+IFtFUlJPUl0KPj4gW0VSUk9SXSBmb3IgYXJ0aWZhY3Q6Cj4+IFtFUlJPUl0gZHVtbXk6ZHVtbXk6amFyOjEuMAo+PiBbRVJST1JdCj4+IFtFUlJPUl0gZnJvbSB0aGUgc3BlY2lmaWVkIHJlbW90ZSByZXBvc2l0b3JpZXM6Cj4+IFtFUlJPUl0gY2VudHJhbCAoaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yLCByZWxlYXNlcz0zRHRydWUsPQoKPj4gc25hcHNob3RzPTNEZmFsc2UpIFtFUlJPUl0gLT4gW0hlbHAgMV0KPj4gW0VSUk9SXQo+PiBbRVJST1JdIFRvIHNlZSB0aGUgZnVsbCBzdGFjayB0cmFjZSBvZiB0aGUgZXJyb3JzLCByZS1ydW4gTWF2ZW4gd2l0aCA9CnRoZSAtZQo+PiBzd2l0Y2guIFtFUlJPUl0gUmUtcnVuIE1hdmVuIHVzaW5nIHRoZSAtWCBzd2l0Y2ggdG8gZW5hYmxlIGZ1bGwgZGVidWcKPj4gbG9nZ2luZy4gW0VSUk9SXQo+PiBbRVJST1JdIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlcnJvcnMgYW5kIHBvc3NpYmxlIHNvbHV0aW9ucywgPQpwbGVhc2UKPj4gcmVhZCB0aGUgZm9sbG93aW5nIGFydGljbGVzOiBbRVJST1JdIFtIZWxwIDFdCj4+ID0KaHR0cDovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL01vam9FeGVjdXRpb25FeGNlcHRpb24KPj49MjAKPj4gU2luY2UgdGhlcmUgYXJlIG9ubHkgYSBmZXcgZGVwZW5kZW5jaWVzIG1pc3NpbmcsIEkgd2lsbCBydW4gdGVzdCBub3QgPQppbgo+PiBvZmZsaW5lIG1vZHVzIG9uIG15IENJIHNlcnZlci4gQnV0IEkgd29uZGVyIHdoZXRoZXIgdGhpcyBpcyBhIGJ1Zy4KPiBJJ2xsIGhhdmUgYSBsb29rIGF0IHRoaXMgb25lIGFuZCByZXBvcnQKCkkgbWFkZSBhbm90aGVyIGludGVyZXN0aW5nIG9ic2VydmF0aW9uOgoKbXZuIHRpZHk6Y2hlY2sgd29ya3MsIHdoaWxlIG12biAtbyB0aWR5OmNoZWNrIGRvZXMgbm90IHdvcmsuIEl0IGZhaWxzID0Kd2l0aDoKCltJTkZPXSA9Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpbSU5GT10gQlVJTEQgRkFJTFVSRQpbSU5GT10gPQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KW0lORk9dIFRvdGFsIHRpbWU6IDAuNjQwIHMKW0lORk9dIEZpbmlzaGVkIGF0OiAyMDE3LTEwLTEzVDE4OjM0OjMyKzAyOjAwCltJTkZPXSBGaW5hbCBNZW1vcnk6IDEzTS8zMDlNCltJTkZPXSA9Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpbRVJST1JdIE5vIHBsdWdpbiBmb3VuZCBmb3IgcHJlZml4ICd0aWR5JyBpbiB0aGUgY3VycmVudCBwcm9qZWN0IGFuZCBpbiA9CnRoZSBwbHVnaW4gZ3JvdXBzIFtvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMsIG9yZy5jb2RlaGF1cy5tb2pvXSA9CmF2YWlsYWJsZSBmcm9tIHRoZSByZXBvc2l0b3JpZXMgW2xvY2FsID0KKC9Vc2Vycy9iZW5lL3dvcmtzcGFjZS9naXRodWIvZGVwZW5kZW5jeS1wbHVnaW4tYnVnLy5tMiksIGNlbnRyYWwgPQooaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yKV0gLT4gW0hlbHAgMV0KW0VSUk9SXQpbRVJST1JdIFRvIHNlZSB0aGUgZnVsbCBzdGFjayB0cmFjZSBvZiB0aGUgZXJyb3JzLCByZS1ydW4gTWF2ZW4gd2l0aCB0aGUgPQotZSBzd2l0Y2guCltFUlJPUl0gUmUtcnVuIE1hdmVuIHVzaW5nIHRoZSAtWCBzd2l0Y2ggdG8gZW5hYmxlIGZ1bGwgZGVidWcgbG9nZ2luZy4KW0VSUk9SXQpbRVJST1JdIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlcnJvcnMgYW5kIHBvc3NpYmxlIHNvbHV0aW9ucywgPQpwbGVhc2UgcmVhZCB0aGUgZm9sbG93aW5nIGFydGljbGVzOgpbRVJST1JdIFtIZWxwIDFdID0KaHR0cDovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL05vUGx1Z2luRm91bmRGb3JQcmVmaXhFeGM9CmVwdGlvbgoKQ2hlZXJzLApCZW5lZGlrdAoKPj0yMAo+IFJlZ2FyZHMsCj49MjAKPiBIZXJ2PUMzPUE5Cj49MjAKPj49MjAKPj4gUmVnYXJkcywKPj4gQmVuZWRpa3QKPj49MjAKPj4+IFJlZ2FyZHMsCj4+Pj0yMAo+Pj4gSGVydj1DMz1BOQo+Pj49MjAKPj4+IExlIG1lcmNyZWRpIDIwIHNlcHRlbWJyZSAyMDE3LCAyMjo0ODoxNSBDRVNUIEJlbmVkaWt0IFJpdHRlciBhID0KPUMzPUE5Y3JpdCA6Cj4+Pj4gSGksCj4+Pj49MjAKPj4+PiBhcyBmYXIgYXMgSSB1bmRlcnN0YW5kIGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBjYWxsIG12bgo+Pj4+IGRlcGVuZGVuY3k6Z28tb2ZmbGluZSBhbmQgZnJvbSB0aGVyZSBvbiB3b3JrIGluIG9mZmxpbmUgbW9kZSAobXZuID0KLW8pLgo+Pj4+IEk9RTI9ODA9OTl2ZSBwdXQgYSBtaW5pbWFsIGV4YW1wbGUgdG9nZXRoZXIgWzFdIHRoYXQgZGVtb25zdHJhdGVzID0KdGhhdCB0aGlzCj4+Pj4gY3VycmVudGx5IGRvZXMgbm90IHdvcmsuIEFtIEkgbWlzc2luZyBhbnl0aGluZz8KPj4+Pj0yMAo+Pj4+IFRoYW5rIHlvdSEKPj4+PiBCZW5lZGlrdAo+Pj4+PTIwCj4+Pj4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9icml0dGVyL2RlcGVuZGVuY3ktcGx1Z2luLWJ1Zwo+Pj4+PTIwCj4+Pj49MjAKPj4+PiA9Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj49MjAKPj4+ID0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj0yMAo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PTIwCj49MjAKPj0yMAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDEwMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gU2VwIDI1IDE4OjEwOjI0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDEwMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4NzFGRDEwMTMyCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMjUgU2VwIDIwMTcgMTg6MTA6MjQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1NDI5MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNSBTZXAgMjAxNyAxODoxMDoyNCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTQyMTggaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgU2VwIDIwMTcgMTg6MTA6MjQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NDIwNyBpbnZva2VkIGJ5IHVpZCA5OSk7IDI1IFNlcCAyMDE3IDE4OjEwOjI0IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDI1IFNlcCAyMDE3IDE4OjEwOjI0ICswMDAwClJlY2VpdmVkOiBmcm9tIGJlbmVkaWt0cy1tYnAubG9jYWwgKGRzbGItMDg4LTA3OC0yMTUtMDc3LjA4OC4wNzgucG9vbHMudm9kYWZvbmUtaXAuZGUgWzg4Ljc4LjIxNS43N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCAyMThEMDFBMDE4NQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMjUgU2VwIDIwMTcgMTg6MTA6MjIgKzAwMDAgKFVUQykKRnJvbTogQmVuZWRpa3QgUml0dGVyIDxicml0dGVyQGFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCk1pbWUtVmVyc2lvbjogMS4wIChNYWMgT1MgWCBNYWlsIDEwLjMgXCgzMjczXCkpClN1YmplY3Q6IFJlOiBkZXBlbmRlbmN5OmdvLW9mZmxpbmUgYnJva2VuPwpEYXRlOiBNb24sIDI1IFNlcCAyMDE3IDIwOjEwOjE3ICswMjAwClJlZmVyZW5jZXM6IDw0OTU5NTIyQS0yMDkwLTQyMzktODIzMy1FMzIwMDBERTlBNUJAYXBhY2hlLm9yZz4KIDxDQU1rX0JlaHYtMENqNGtZMW42MkExcFZGZThQZHo3NEVtYThqQ0R4dldjTkhBZGZMVVFAbWFpbC5nbWFpbC5jb20+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPENBTWtfQmVodi0wQ2o0a1kxbjYyQTFwVkZlOFBkejc0RW1hOGpDRHh2V2NOSEFkZkxVUUBtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JZDogPEJDNDU0QkRBLUMxMTYtNERBNi04MTM1LUMyMEQ1QTM2Qjg1MEBhcGFjaGUub3JnPgpYLU1haWxlcjogQXBwbGUgTWFpbCAoMi4zMjczKQoKSGVsbG8gQnJpYW4sCgo+IEFtIDIwLjA5LjIwMTcgdW0gMjM6MTYgc2NocmllYiBCcmlhbiBGb3ggPGJyaWFuZkBpbmZpbml0eS5udT46Cj49MjAKPiBJdCdzIGJlZW4gYSByZWFsbHkgbG9uZyB0aW1lLCBidXQgSSByZWNhbGwgdGhhdCB0aGVyZSB3ZXJlIGlzc3VlcyA9CmdldHRpbmcKPiB0aGUgZGVwZW5kZW5jaWVzIG9mIHBsdWdpbnMgYm91bmQgdG8gdGhlIGxpZmVjeWNsZS4gVGhpcyBsb29rcyB0byBiZSA9CnRoZQo+IHNhbWUgcHJvYmxlbS4gSSB0aGluayB0aGUgZG9jdW1lbnRhdGlvbiB0YWxrZWQgYWJvdXQgYSB3YXkgdG8gZG8gdGhpcwo+IGVmZmVjdGl2ZWx5LgoKST1FMj04MD05OXZlIGxvb2tlZCB0aHJvdWdoIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSBkZXBlbmRlbmN5IHBsdWdpbiwgPQpidXQgSSBjYW4gbm90IGZpbmQgYW55dGhpbmcgYWJvdXQgdGhpcy4gRG8geW91IHJlY2FsbCB3aGVyZSB5b3UgZm91bmQgPQp0aGF0IGRvY3VtZW50YXRpb24/CgpSZWdhcmRzLApCZW5lZGlrdAoKPj0yMAo+IE9uIFdlZCwgU2VwIDIwLCAyMDE3IGF0IDQ6NDggUE0sIEJlbmVkaWt0IFJpdHRlciA8YnJpdHRlckBhcGFjaGUub3JnPiA9Cndyb3RlOgo+PTIwCj4+IEhpLAo+Pj0yMAo+PiBhcyBmYXIgYXMgSSB1bmRlcnN0YW5kIGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBjYWxsIG12bgo+PiBkZXBlbmRlbmN5OmdvLW9mZmxpbmUgYW5kIGZyb20gdGhlcmUgb24gd29yayBpbiBvZmZsaW5lIG1vZGUgKG12biA9Ci1vKS4KPj4gST1FMj04MD05OXZlIHB1dCBhIG1pbmltYWwgZXhhbXBsZSB0b2dldGhlciBbMV0gdGhhdCBkZW1vbnN0cmF0ZXMgPQp0aGF0IHRoaXMKPj4gY3VycmVudGx5IGRvZXMgbm90IHdvcmsuIEFtIEkgbWlzc2luZyBhbnl0aGluZz8KPj49MjAKPj4gVGhhbmsgeW91IQo+PiBCZW5lZGlrdAo+Pj0yMAo+PiBbMV0gaHR0cHM6Ly9naXRodWIuY29tL2JyaXR0ZXIvZGVwZW5kZW5jeS1wbHVnaW4tYnVnCj4+PTIwCj4+PTIwCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+PTIwCj4+PTIwCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NDQxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBOb3YgIDcgMDE6MTg6MDkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDQxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDQzMTg4MTBBNzAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAgNyBOb3YgMjAxNyAwMToxODowOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDkwNDQyIGludm9rZWQgYnkgdWlkIDUwMCk7IDcgTm92IDIwMTcgMDE6MTg6MDggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkwMzc0IGludm9rZWQgYnkgdWlkIDUwMCk7IDcgTm92IDIwMTcgMDE6MTg6MDggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MDM2MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDcgTm92IDIwMTcgMDE6MTg6MDggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDA3IE5vdiAyMDE3IDAxOjE4OjA4ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgOUQ5MUMxQTIyOTkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsICA3IE5vdiAyMDE3IDAxOjE4OjA3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi44NzEKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi44NzEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgU1BGX0hFTE9fUEFTUz0tMC4wMDEsIFNQRl9TT0ZURkFJTD0wLjk3Ml0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDEwMjQtYml0IGtleSkgaGVhZGVyLmQ9aG9udG9uLm9yZwpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgb2FUYjBoMTNfX2kxIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVHVlLCAgNyBOb3YgMjAxNyAwMToxODowNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBiaXo0Ni5pbm1vdGlvbmhvc3RpbmcuY29tIChiaXo0Ni5pbm1vdGlvbmhvc3RpbmcuY29tIFsyMDUuMTM0LjI1MC4xNjBdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRDQ1Nzc1RkNGMgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgIDcgTm92IDIwMTcgMDE6MTg6MDQgKzAwMDAgKFVUQykKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBxPWRucy90eHQ7IGM9cmVsYXhlZC9yZWxheGVkOyBkPWhvbnRvbi5vcmc7Cgkgcz1kZWZhdWx0OyBoPU1lc3NhZ2UtSWQ6SW4tUmVwbHktVG86VG86UmVmZXJlbmNlczpEYXRlOlN1YmplY3Q6TWltZS1WZXJzaW9uOgoJQ29udGVudC1UeXBlOkZyb206U2VuZGVyOlJlcGx5LVRvOkNjOkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6Q29udGVudC1JRDoKCUNvbnRlbnQtRGVzY3JpcHRpb246UmVzZW50LURhdGU6UmVzZW50LUZyb206UmVzZW50LVNlbmRlcjpSZXNlbnQtVG86UmVzZW50LUNjCgk6UmVzZW50LU1lc3NhZ2UtSUQ6TGlzdC1JZDpMaXN0LUhlbHA6TGlzdC1VbnN1YnNjcmliZTpMaXN0LVN1YnNjcmliZToKCUxpc3QtUG9zdDpMaXN0LU93bmVyOkxpc3QtQXJjaGl2ZTsKCWJoPVpXd2pRQzRJNTZnd0xSclluWXkrV010VCtRa1lFRXZxa3FXbVlQNjhjYzQ9OyBiPWNCeHVCNXgvd0N1NUxzTEk5VnNKZ0RvRzMxCglMTVE1UERuSExKbGs4bEYvU042SUE2cWU0dmQxM2cxSHgzdjFRZ1ZYaHk5aW50TFBHRjlRN2tnQ1dFYUJ2YjhxN2lnZkEweUFva0hHZwoJTXNOVk1KRnkxWlV6cDlJTit2UW03M2w5czRXRkRVTE1VNEpiS2ZIRUt0MVltZnN3bDRlaVdDUVJpTHhsOUdHRzdhVnc9OwpSZWNlaXZlZDogZnJvbSBbMTczLjIyOC44OC4xMTRdIChwb3J0PTYwNjk4IGhlbG89WzE5Mi4xNjguMS4yOF0pCglieSBiaXo0Ni5pbm1vdGlvbmhvc3RpbmcuY29tIHdpdGggZXNtdHBzYSAoVExTdjEuMjpFQ0RIRS1SU0EtQUVTMjU2LUdDTS1TSEEzODQ6MjU2KQoJKEV4aW0gNC44OSkKCShlbnZlbG9wZS1mcm9tIDxjaGFzQGhvbnRvbi5vcmc+KQoJaWQgMWVCc1diLTAwMDIzUy1OVgoJZm9yIGRldkBtYXZlbi5hcGFjaGUub3JnOyBNb24sIDA2IE5vdiAyMDE3IDE3OjE4OjAzIC0wODAwCkZyb206IENoYXJsZXMgSG9udG9uIDxjaGFzQGhvbnRvbi5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOwogYm91bmRhcnk9IkFwcGxlLU1haWw9XzA1MjI2QTE0LTZBNzgtNDQxNC05OUJGLTkyMzdEREMxRkJBRSIKTWltZS1WZXJzaW9uOiAxLjAgKE1hYyBPUyBYIE1haWwgMTAuMyBcKDMyNzNcKSkKU3ViamVjdDogUmU6IFJlYWN0b3Igc2FmZS9yYWxseSBwb2ludHMKRGF0ZTogTW9uLCA2IE5vdiAyMDE3IDE3OjE3OjU2IC0wODAwClJlZmVyZW5jZXM6IDw4NjE0MUVCMy0xMzNGLTQ1NEYtOUYyRi0zRkUyMjEzMDExRTRAaG9udG9uLm9yZz4KIDxDQStuUG5NenM4OUZfcUNfWnNmUGpheVBocT01Rmp5dzhtaFRNbnRYUGE4Ml9vaC1NUndAbWFpbC5nbWFpbC5jb20+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPENBK25Qbk16czg5Rl9xQ19ac2ZQamF5UGhxPTVGanl3OG1oVE1udFhQYTgyX29oLU1Sd0BtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JZDogPEMxNjEyRURFLTRBMjQtNERBNy1BMjE0LTg4N0E5OUU4MDM5QUBob250b24ub3JnPgpYLU1haWxlcjogQXBwbGUgTWFpbCAoMi4zMjczKQpYLU91dEdvaW5nLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEuMApYLUFudGlBYnVzZTogVGhpcyBoZWFkZXIgd2FzIGFkZGVkIHRvIHRyYWNrIGFidXNlLCBwbGVhc2UgaW5jbHVkZSBpdCB3aXRoIGFueSBhYnVzZSByZXBvcnQKWC1BbnRpQWJ1c2U6IFByaW1hcnkgSG9zdG5hbWUgLSBiaXo0Ni5pbm1vdGlvbmhvc3RpbmcuY29tClgtQW50aUFidXNlOiBPcmlnaW5hbCBEb21haW4gLSBtYXZlbi5hcGFjaGUub3JnClgtQW50aUFidXNlOiBPcmlnaW5hdG9yL0NhbGxlciBVSUQvR0lEIC0gWzQ3IDEyXSAvIFs0NyAxMl0KWC1BbnRpQWJ1c2U6IFNlbmRlciBBZGRyZXNzIERvbWFpbiAtIGhvbnRvbi5vcmcKWC1HZXQtTWVzc2FnZS1TZW5kZXItVmlhOiBiaXo0Ni5pbm1vdGlvbmhvc3RpbmcuY29tOiBhdXRoZW50aWNhdGVkX2lkOiBjaGFzK2hvbnRvbi5vcmcvb25seSB1c2VyIGNvbmZpcm1lZC92aXJ0dWFsIGFjY291bnQgbm90IGNvbmZpcm1lZApYLUF1dGhlbnRpY2F0ZWQtU2VuZGVyOiBiaXo0Ni5pbm1vdGlvbmhvc3RpbmcuY29tOiBjaGFzQGhvbnRvbi5vcmcKWC1Tb3VyY2U6IApYLVNvdXJjZS1BcmdzOiAKWC1Tb3VyY2UtRGlyOiAKCi0tQXBwbGUtTWFpbD1fMDUyMjZBMTQtNkE3OC00NDE0LTk5QkYtOTIzN0REQzFGQkFFCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOwoJY2hhcnNldD11dGYtOAoKU28gZG9lc249RTI9ODA9OTl0IHRoaXMgcmVxdWlyZSBhIG5ldyBkaXJlY3RpdmUgc3VjaCBhcyA9RTI9ODA9OTg8Y29tcGlsZSA9CnRyYW5zaXRpdmU9M0RmYWxzZT1FMj04MD05RD4gc2NvcGUgb3Igc2ltaWxhciByZWdhcmRsZXNzIG9mIHNhZmUvcmFsbHkgPQpwb2ludHM/ICAgQW5kIHRvIHByb3ZpZGUgYmFja3dhcmRzIGNvbXBhdGliaWxpdHksIHRoZXJlIG11c3QgYmUgYSBzcGxpdCA9CmJldHdlZW4gdGhlIGxlZ2FjeSBjb25zdW1lciB2aWV3IG9mIHRoZSBwb20gYW5kIHRoZSBuZXcgcHJvZHVjZXIgdmlldyBvZiA9CnRoZSBwb20/CiA9MjAKPiBPbiBOb3YgNSwgMjAxNywgYXQgMTE6MzAgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgPQo8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj49MjAKPj4gSW4gdGhlIGZpcnN0IGNhc2UsIHRoZSBtb2R1bGUgY3JlYXRpbmcgYSBzaGFkZWQgamFyIGNhbiBtYXJrIGl0cwo+PiBjb25zdGl0dWVudCBqYXJzIGFzIG9wdGlvbmFsOyBwcmV2ZW50aW5nIHRoZSB0cmFuc2l0aXZlIGRlcGVuZGVuY2llcy4KPj0yMAo+PTIwCj4gSGEhIFRoYXQgZG9lcyBub3QgZG8gd2hhdCB5b3UgdGhpbmsgaXQgZG9lcy4KPj0yMAo+IE9wdGlvbmFsIGRlcGVuZGVuY2llcyBhcmUgc3RpbGwgdGhlcmUgYnV0IG9ubHkgYXMgYSB2ZXJzaW9uIGNvbnN0cmFpbnQgPQp0aGF0Cj4gZ2V0cyBhcHBsaWVkIGlmIHNvbWV0aGluZyBlbHNlIGJyaW5ncyB0aGUgZGVwZW5kZW5jeSBpbnRvIHRoZSB0cmVlIGluID0KYXMgYQo+IG5vbi1vcHRpb25hbCBkZXBlbmRlbmN5Lgo+PTIwCj4gTm9ybWFsbHkgeW91IG5lZWQgYSBjb21wbGV4IGRlZXAgdHJlZSB0byBzZWUgdGhlIGVmZmVjdCAoYXMgbW9zdCA9CnBlb3BsZSB1c2UKPiB2ZXJzaW9uIGhpbnRzIHJhdGhlciB0aGFuIHNwZWNpZmljYXRpb25zLi4uIGFuZCB3aXRoIGhpbnRzLCBjbG9zZXN0ID0Kd2lucywKPiB3aGVyZWFzIHNwZWNpZmljYXRpb25zIGFyZSBnbG9iYWxseSBtZXJnZWQpCj49MjAKPiBQcm92aWRlZCBzY29wZSBpcyBtb3JlIGNvcnJlY3QsIGJ1dCBzaGFkZSBkb2Vzbj1FMj04MD05OXQgb3BlcmF0ZSBvbiA9CnByb3ZpZGVkCj4gc2NvcGUuLi4gYW5kIGFueXdheSBpaXJjIHRoYXQgYWxzbyBwdXNoZXMgdGhlIGNvbnN0cmFpbnQgYXMgPQp0cmFuc2l0aXZlLgo+PTIwCj4gV2l0aCBzaGFkZSwgdGhlIGRlcGVuZGVuY3kgaXMgcmVtb3ZlZC4KCgotLUFwcGxlLU1haWw9XzA1MjI2QTE0LTZBNzgtNDQxNC05OUJGLTkyMzdEREMxRkJBRS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MzkzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgIDQgMTI6NTA6MzYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzkzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDNDNDZCMTdEQkEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxMjo1MDozNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ2MzkyIGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMTI6NTA6MzUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ2MzI4IGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMTI6NTA6MzUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0NjMxNiBpbnZva2VkIGJ5IHVpZCA5OSk7IDQgTm92IDIwMTcgMTI6NTA6MzUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA0IE5vdiAyMDE3IDEyOjUwOjM1ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQzY2RTExMDc0RjcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA0IE5vdiAyMDE3IDEyOjUwOjM0ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC4xOTkKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC4xOTkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBIVE1MX01FU1NBR0U9MiwKCUtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44LCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWhhbW1hbnQtb3JnLjIwMTUwNjIzLmdhcHBzc210cC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFNJSERPVWRHSXV2SCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgIDQgTm92IDIwMTcgMTI6NTA6MzMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC1xazAtZjE3MS5nb29nbGUuY29tIChtYWlsLXFrMC1mMTcxLmdvb2dsZS5jb20gWzIwOS44NS4yMjAuMTcxXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEM3ODJBNUZBQ0UKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA0IE5vdiAyMDE3IDEyOjUwOjMyICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXFrMC1mMTcxLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHI2NHNvNjIwODY0M3FrYy4xCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMDQgTm92IDIwMTcgMDU6NTA6MzIgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWhhbW1hbnQtb3JnLjIwMTUwNjIzLmdhcHBzc210cC5jb207IHM9MjAxNTA2MjM7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUVvOFM4RDFvbVBBZ0RjRkhKUnkrZ3JWb3g0b1VPZ1c5L2hVd3UrdExOQ1k9OwogICAgICAgIGI9Rkd2dHhvazI1V3QxQlBPZnBNWksvWXhZOXRtTFNMRkMrT0hDdmoyZkVjU2d2QnZ1NnhrazNXN01wcUVDZFEvbS8zCiAgICAgICAgIERZNWs5cnUwM2s4MzV0Z2JMclZsbVdxRFpHdXJ3d0d4a0VIWnpjOTRocUExZnpmaTJOVzdkSnF5WTl4VlVIdjN1L1AvCiAgICAgICAgIDYxSkNHNFRxK1c5Q25nRXhYWHhNbm03SEJHWFVtQWM3S1l1VHk4SmI2VkFHL2JCc2hzalpyN1FCZUhXZWdiSDN3TjdsCiAgICAgICAgIGFvQ0VJT0xmeFNGY2xyWTYrSTZpOUNLQkQ5WmJTMDdZOE1xWVdMcUF0Vk9ZOXRONXA4SkFOdWxhNG1WaGFhaHltV2F1CiAgICAgICAgIGNuT3NaTGpvSjl3dUdGSTczRkIycWJmNUNtOGY0UVhRQS9iMTNBSG9Jdi91TGs3ZzI0OHFKMFo1SkF4UnU2TU9mbS9MCiAgICAgICAgIDdXVlE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUVvOFM4RDFvbVBBZ0RjRkhKUnkrZ3JWb3g0b1VPZ1c5L2hVd3UrdExOQ1k9OwogICAgICAgIGI9bDIzNWVtNE81S2daMDJtM1IwdWE5d2h1UFNMOTQzUDQvdVVmNU5mbzY2SDlIV0JkMTFOM040Y1dnS1FVQm9jbmszCiAgICAgICAgIGdSN0w0YU5NZEFKMFpWOFZ3c2hrUEN6dXlMdEVlWXgvT21ZYUtPQitpNDZCSmh2VGpGUXJuRW1qQi84NFB1VUdKcjEvCiAgICAgICAgIGFsY0t5aGhDa1NOUG1zNCsyZUNwb3kwVmdScUJzZklPR1FnbWFvK01yUzREcGF5Q1VrMnhOSXBjdHJiT20zSVcxaE1qCiAgICAgICAgIDByYklaRXJ4L1BZTTc2V2dJcHRNNjhZa2RWcUlYb3ljYnoxbUJGbktZUVhscXBvcXp6T0tsSDBaZ25TSUxvZGg4SUljCiAgICAgICAgIGFTbmRIUktKZUpSS0tybjU0ZndZOTIwemcxcDVwQ1puMWRBNVNDWEo3dEJ1TTRsNWNuWldnd2dwK05HdDJOVnNuZWRJCiAgICAgICAgIEk3UEE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDRPTnV3d215UnFRTjByWkcxbE45VlRwVjQzaTZ3U1FmZERZa3JSZmlneXdpaC9JbVJOCglmeVQwbFIzSFprUDF0cmZrOEd4QzVCU3NISUR0cDBqb0ZNTmV5am43OWRXZ2NKYjFFdz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtSZThuVER2MndNc2tmUmRZUXNZNk5WellOTTBjZHozTG9WMmdrNnpPN1lnTkZEdGV2ZDk1SjNpNGZ0RFNSaGV4M1laL1FkSmZJUjZSMGRnVzNqcVVNPQpYLVJlY2VpdmVkOiBieSAxMC41NS4xMTQuNjkgd2l0aCBTTVRQIGlkIG42Nm1yMTM1ODQyNzlxa2MuMzA2LjE1MDk3OTk4MjYxMTA7CiBTYXQsIDA0IE5vdiAyMDE3IDA1OjUwOjI2IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xMi4xNTUuMTM4IHdpdGggSFRUUDsgU2F0LCA0IE5vdiAyMDE3IDA1OjUwOjI1IC0wNzAwIChQRFQpClgtT3JpZ2luYXRpbmctSVA6IFs2NS43OC4yNS4xNzFdCkluLVJlcGx5LVRvOiA8Q0ErblBuTXdFSDlaMm15cDcxdWFTcmRjeUxKUkZyRS1WcnQyMDE5MXJkMDFoK1VmaGp3QG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXdFSDlaMm15cDcxdWFTcmRjeUxKUkZyRS1WcnQyMDE5MXJkMDFoK1VmaGp3QG1haWwuZ21haWwuY29tPgpGcm9tOiBQYXVsIEhhbW1hbnQgPHBhdWxAaGFtbWFudC5vcmc+CkRhdGU6IFNhdCwgNCBOb3YgMjAxNyAwODo1MDoyNSAtMDQwMApNZXNzYWdlLUlEOiA8Q0ErMjk4VWc4RHdva3NjZHdDOXZQckcrMlRQZnNkVHZxUTVHTzJSZFJyT01UPXZwZmV3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogTWF2ZW4gNC4wLjAKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNGZlZWIyNTE0ZDhlMDU1ZDI3YWE4NyIKCi0tMDAxYTExNGZlZWIyNTE0ZDhlMDU1ZDI3YWE4NwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKVG8gYWRkIHRvIHNjb3BlIGZvciBNYXZlbiA0LCBJTU86CgoqMS4gPGRlcGVuZGVuY3k+IHRhZyBjb3VsZCBoYXZlIGFuIG9wdGlvbmFsIDxyZXBvLWxpc3Q+IGFyZzoqCgo8ZGVwZW5kZW5jeT4KICAgIDxyZXBvLWxpc3Q+bXktdGVhbSxteWNvcnA8L3JlcG8tbGlzdD4KICAgIDxncm91cElkPmNvbS50aG91Z2h0d29ya3MueHN0cmVhbTwvZ3JvdXBJZD4KICAgIDxhcnRpZmFjdElkPnhzdHJlYW08L2FydGlmYWN0SWQ+CiAgICA8dmVyc2lvbj4xLjQuMTA8L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KCgpJbiB0aGUgYWJvdmUsIGNlbnRyYWwgaXMgbm90IGNoZWNrZWQgYXQgYWxsLiAgbXktdGVhbSBhbmQgbXktY29ycCBhcmUKZGVmaW5lZCBlbHNld2hlcmUuCgoqMi4gR0FWIGFzIGEgZmlyc3QgY2xhc3MgdGhpbmcgKG9wdGlvbmFsKToqCgo8ZGVwZW5kZW5jeT4KICAgIDxnYXY+Y29tLnRob3VnaHR3b3Jrcy54c3RyZWFtOnhzdHJlYW06MS40LjEwPC9nYXY+CjwvZGVwZW5kZW5jeT4KCm9yCgo8ZGVwZW5kZW5jeSBnYXY9ImNvbS50aG91Z2h0d29ya3MueHN0cmVhbTp4c3RyZWFtOjEuNC4xMCIvPgoKCkZvciB0aGUgZmlyc3QgdGltZSBldmVyIHBlb3BsZSBjb3VsZCBkbyBzaW1wbGUgYWNrL2FnL2dyZXAgdGhydSBzb3VyY2UKYmFzZXMgbG9va2luZyBmb3IgdGhpbmdzLgoKKjMuIE1vcmUgcGx1Z2dhYmxlIGRlcGVuZGVuY3kgcmVzb2x2ZXI6KgoKSSBtaWdodCB3YW50IGFsdGVybmF0ZSBwbGFjZXMgdG8gc291cmNlIEpBUnMgZnJvbSB0aGF0IGFyZSAqbm90KiBIVFRQCm1vdW50ZWQgc3lzdGVtIHRoYXQgbWF0Y2ggdGhlIE1hdmVuMiBkaXJlY3Rvcnkgc3RydWN0dXJlLgoKTGlrZSBoZXJlIC0gaHR0cHM6Ly9naXRodWIuY29tL3BhdWwtaGFtbWFudC94c3RyZWFtLWphci9yZWxlYXNlcyAoYW5kCmFzc29jaWF0ZWQgYmxvZyBlbnRyeSAtCmh0dHBzOi8vcGF1bGhhbW1hbnQuY29tLzIwMTcvMDUvMTMvbWF2ZW4tY2VudHJhbC1hcy1tdWx0aXBsZS1naXQtcmVwb3MvKQoKSW4gcGFydGljdWxhciBJIG5lZWQgdG8gcmV3b3JrIHRoZSBqYXIgYXMgaXQgaXMgcHVsbGVkIGludG8gdGhlIGxvY2FsCn4vLm0yL3JlcG9zaXRvcnkgY2FjaGUgLSB0aGVyZSdzIGEgcm9vdCBkaXJlY3RvcnkgdG8gcmVtb3ZlLgoKLSBQYXVsCgotLTAwMWExMTRmZWViMjUxNGQ4ZTA1NWQyN2FhODctLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDI1MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gT2N0IDE2IDEwOjM5OjIxIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI1MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAzMTVDRDEwMzQxCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMTYgT2N0IDIwMTcgMTA6Mzk6MjEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyNTMzOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNiBPY3QgMjAxNyAxMDozOToxOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjUxNTYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTYgT2N0IDIwMTcgMTA6Mzk6MTkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNDQ5OSBpbnZva2VkIGJ5IHVpZCA5OSk7IDE2IE9jdCAyMDE3IDEwOjM5OjE5IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAxNiBPY3QgMjAxNyAxMDozOToxOSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDc2ODMxMUEyNzk3Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxNiBPY3QgMjAxNyAxMDozOToxOCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjIyMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC4yMjEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWhhbW1hbnQtb3JnLjIwMTUwNjIzLmdhcHBzc210cC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGpJTkc3SndYMTJYbiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMTYgT2N0IDIwMTcgMTA6Mzk6MTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC1xdDAtZjE3OC5nb29nbGUuY29tIChtYWlsLXF0MC1mMTc4Lmdvb2dsZS5jb20gWzIwOS44NS4yMTYuMTc4XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEIwMzg2NUZCQjAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE2IE9jdCAyMDE3IDEwOjM5OjE2ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXF0MC1mMTc4Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHo1MHNvMzA1NjM4OTJxdGouNAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE2IE9jdCAyMDE3IDAzOjM5OjE2IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1oYW1tYW50LW9yZy4yMDE1MDYyMy5nYXBwc3NtdHAuY29tOyBzPTIwMTUwNjIzOwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD14c2xKMElmVlpqM2E5cEN2SjJ6QVE1cEhUeDV2T21zellxbHI5djJOWU9RPTsKICAgICAgICBiPUZmQWdLeHhqZTFkTXYrMy9nb3dGRHVtWkc5Q1hMV0VNRlkyRTZudHFiY0txaUtMcHpVZ0ZGenJ0MEZ5byt6Q2laRQogICAgICAgICBHczhwVHR4UUxrZkFvZ0NxRG42bkVabWpWdGpURnNEc3pZZDBLUUsrUG4zOGNZMmtCb0ZEQmFLTnp6aEVUcHltMWlZRgogICAgICAgICByS0c2SDFNOEc5cktqM081bk5ialM2RGNaOUpFU1E5NWN4MVVLNUlHVW1IS0hqWlNkRUFXWXhLQUNCbU1tSmE2VDdBcgogICAgICAgICBkMTB6N3JIRmZkZ0JhdUxkZTVqMC9Cc1lyQm1tbmtZUGVuUmh6dWkyMG5BVk1vQlVPVWdUQTluNldGT2lrczg4akhCdgogICAgICAgICBjbk5ibXFYN2hsb2ovNDFqc3VyUHhhbHYvVmpLOFp5MHhQUkI3R3dCZllTUExodzQ4N21ObkxsYndHYUxoTklhdFM2QwogICAgICAgICBabHV3PT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD14c2xKMElmVlpqM2E5cEN2SjJ6QVE1cEhUeDV2T21zellxbHI5djJOWU9RPTsKICAgICAgICBiPWFtTEtIZVd0NEhTaHNHaDJtTU5Hb25tWVlJVnpheWM3YkdSN0FtZnNsR2NQakdiSDB2aUFNS2kyaEpVOGxaRVNjMwogICAgICAgICAvQi9abmN1dGVrZ2M0WHNXaXZuYWRvY3hXY3pocmV0UmVEdXNBT2hlU3VoVGlvNFBINlM0eUVyQ1YzUEI5YmdNRVU4SQogICAgICAgICBMajdnNW96RGM2ekpQRWplVkdycUsyc29ZaVFHNkNROXlGa3ZNcXlkL1k5V3VwNENKRjVQM25KeUFvMEZGSll3d3RQNQogICAgICAgICBvaDhUTk82T3JhRW9iczB5OHNCZkV5dTdHS1JqTjVoRFo3ZWJrVnJBTmcwRGd1bFNGL3NSWDlRTnpJUXcrOWlWZytVYwogICAgICAgICBlVzMrUTNRSURXN2lFakVYeUZZSjlEWGtaeklVeGhVQncrb24rVkpiclVNekswTnFWREI5R3o1RWZiRHA1eWFVdnlIeAogICAgICAgICBBbWVBPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FXangwbXRYUCtUVGFYWllKbnJPUng5RFNneURIUEU1SjlXT3B5R2l5K2svNHZ0aTZ6ZQoJZk9SdktySG5QQU9pNTNhb3BEVHF0bmlNL014THU2bGhBNTQwZFRKWGV2cTRSeUU9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FBQlM3Z2hXMEJtT2hCOWRRTEtlWmtTeUF0UjVSWkFMR3o0alRPdlgxeURkRUVyRUsra0xocjVVYTRkenRvUkpHMkIyTzNzV01TSTM2NGFQU0l5eDhvPQpYLVJlY2VpdmVkOiBieSAxMC4yMDAuNDIuMiB3aXRoIFNNVFAgaWQgazJtcjEzNTMxNDc0cXRrLjg2LjE1MDgxNTAzNTU0MDg7IE1vbiwKIDE2IE9jdCAyMDE3IDAzOjM5OjE1IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xMi4xNTUuMTM4IHdpdGggSFRUUDsgTW9uLCAxNiBPY3QgMjAxNyAwMzozOToxNCAtMDcwMCAoUERUKQpYLU9yaWdpbmF0aW5nLUlQOiBbNjUuNzguMjUuMTcxXQpJbi1SZXBseS1UbzogPGE1Y2RiN2JjLWFiMzgtNTFhZi02ZWQxLTE0YjUyMTEzYmYzOEByZWRoYXQuY29tPgpSZWZlcmVuY2VzOiA8Q0FFeU16eW1zSEh2T0JGLWJ0cVR2ajhrdjByRkxnQmQ9SkdIcnVQWmpFeVlabz1BLTBnQG1haWwuZ21haWwuY29tPgogPDQxMDk3YjBkLTgxZmEtNWJkMC1iOGRlLWUxMmM0MzQ4YzhjZEBnbXguZGU+IDxDQUV5TXp5a3RkZUxDUkdaUF9iVm80dkIrUzRxZzNnaFJqUTNnQlFuQW5mRzlWcXhRS2dAbWFpbC5nbWFpbC5jb20+CiA8YTVjZGI3YmMtYWIzOC01MWFmLTZlZDEtMTRiNTIxMTNiZjM4QHJlZGhhdC5jb20+CkZyb206IFBhdWwgSGFtbWFudCA8cGF1bEBoYW1tYW50Lm9yZz4KRGF0ZTogTW9uLCAxNiBPY3QgMjAxNyAwNjozOToxNCAtMDQwMApNZXNzYWdlLUlEOiA8Q0ErMjk4VWhlNWthcHdGM0JjdHg5UFZadU5FdVF4VzJUWUU5MTZxM01xN19QTm10ajJ3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogTWF2ZW4gUGx1Z2luIHRoYXQgcHJvdmlkZXMgYWx0ZXJuYXRpdmUgcmVwb3NpdG9yeQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCj4KPiBUaGlzIHNob3VsZCBiZSBwb3NzaWJsZSBieSBwcm92aWRpbmcgV29ya3NwYWNlUmVhZGVyIGltcGxlbWVudGF0aW9uIC0KPiBAQ29tcG9uZW50KCByb2xlID0gV29ya3NwYWNlUmVhZGVyLmNsYXNzLCBoaW50ID0gImlkZSIgKQo+Cj4gTm90ZSB0aGF0IE1hdmVuIHRyaWVzIHJlc29sdXRpb24gZnJvbSB3b3Jrc3BhY2UgKmJlZm9yZSogcmVwb3NpdG9yaWVzIC0KPiB3b3Jrc3BhY2UgcmVhZGVyIGhhcyBwcmlvcml0eSBsb3dlciB0aGFuIHJlYWN0b3IsIGJ1dCBoaWdoZXIgdGhhbiByZW1vdGUKPiByZXBvcyBrbm93biB0byBNYXZlbi4KCldvcmtzcGFjZVJlYWRlciBmdW5jdGlvbmFsaXR5IGlzIG9yIGlzIG5vdCBhIHRoaW5nIHRoYXQgY2FuIGJlIHNldCBpbgpwb20ueG1sIGZpbGVzPwoKQXJlIHRoZXJlIGFueSBleGFtcGxlcyBpbiBwdWJsaWMgdGhhdCB1c2UgV29ya3NwYWNlUmVhZGVyIGluIHVzZSB0bwpzb3VyY2UgYSBkZXAgZnJvbSBvdXRzaWRlIG9mIG1hdmVuIGNlbnRyYWwgKG9yIHRoZSBwcm9qZWN0cyBzaWJsaW5nCm1vZHVsZXMpPwoKLSBQYXVsCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzOTctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAgNCAxMzoxODozMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzOTctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQkFEN0YxN0U5MwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICA0IE5vdiAyMDE3IDEzOjE4OjMxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODMxMzMgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBOb3YgMjAxNyAxMzoxODozMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODMwMzkgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBOb3YgMjAxNyAxMzoxODozMSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgzMDI3IGludm9rZWQgYnkgdWlkIDk5KTsgNCBOb3YgMjAxNyAxMzoxODozMSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDQgTm92IDIwMTcgMTM6MTg6MzEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAzM0IzRjE4MzQwNwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMTM6MTg6MzAgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjI3OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjI3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIEhUTUxfTUVTU0FHRT0yLAoJS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWhhbW1hbnQtb3JnLjIwMTUwNjIzLmdhcHBzc210cC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBBZlVtUzQ1N01VUXUgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsICA0IE5vdiAyMDE3IDEzOjE4OjI4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtcXQwLWYxNzkuZ29vZ2xlLmNvbSAobWFpbC1xdDAtZjE3OS5nb29nbGUuY29tIFsyMDkuODUuMjE2LjE3OV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAzMDQyQjVGRDYxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxMzoxODoyOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1xdDAtZjE3OS5nb29nbGUuY29tIHdpdGggU01UUCBpZCAxc282MjU4MTc5cXRuLjMKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAwNCBOb3YgMjAxNyAwNjoxODoyOCAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9aGFtbWFudC1vcmcuMjAxNTA2MjMuZ2FwcHNzbXRwLmNvbTsgcz0yMDE1MDYyMzsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Ni8veHRCSlFCYm9wdVhTdW5XL3MvYjRqSVlPdWdzVTJsVDFsV1Ivc3RkZz07CiAgICAgICAgYj1zSW9WTXV3bXgzU2pUb1JyU1AyTWhxblFGbFBDNklWTis3bVlEbXM4dit0VUdaa1BaM2d1N2JjZjVPZGMvYkM1UWkKICAgICAgICAgNXNJZFBUdDNnY2VZRmVQblV6VHNGcXh6YldRTllKcEZVcXlZWG9sWXhZRzltNXdObVVKQ0pjNldHZ3RuL3lXWkhucFgKICAgICAgICAgaWRybjBlRXdCRko4Nk9kSVRuNGwyaFFsOFNPaVd6WDVuVDJUbVd5eGpob2hqL01UZXdkc3NlaXlTemE4ZStwTkNPMFAKICAgICAgICAgZEdWRDBjc29GNzNQaXBkbXZLaVpNTEZPNlhHZW5EcWljVktHbEsxZnlDRFBrT0ZrMFBXVEQ5c2htSXIrWWpnczA3ZkcKICAgICAgICAgNkVSUG0rQ25lVTNGYjA0dVZyM0VxQVZuekRTbk9vOHh4eFBhbXlXNitaejFJUVlXV0xYLzRvM2pJd2pmYS8reDd4Q0QKICAgICAgICAgdzUxUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Ni8veHRCSlFCYm9wdVhTdW5XL3MvYjRqSVlPdWdzVTJsVDFsV1Ivc3RkZz07CiAgICAgICAgYj1GZWtoK1BwZEpKQkRRNUZkMThqS1Mxb0tnS0lZTGVZKzFSVEErR01PbUJ5SDZYQTJFM1dzOTRkQzBuTFJJTFFBem0KICAgICAgICAgY2xXZXVVbXJLd0FZaVFIL1prbGhsY0x5YUprWk5ZZFNNdU5kaU9DeUdYYWM3V2RGSjZqSVhSSmtickR4d284elNXb0UKICAgICAgICAgc0xOZGVrWThpeGdIbVh4bmI4ZXpCSmlFMzMyVGxLTEkvUldJK1NHMG1VZjdtU2htNGk2Tm81MFFLaFEzYW41cWRBcWEKICAgICAgICAgYTJqTE9FaXJGMDNMV2FtbCtpRkkzZXRaancxUXZYV3BWSWlCZ0Z4dTlva2JRUDJYdTAxSE81UUhrcE45SnlIcDZJYlMKICAgICAgICAgbG1rV2hXdmRHSk16Vkg5d21QVi9CK1pwVnR0ZmlXWVZNRksyOU8yWlV5cjY3MElZVXRnUTlCdmRWRHFML0MvbHNhcDAKICAgICAgICAgN2J0UT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVjQ5N0hqRzh3UnY5OHUwb2FBVDFsL3dEMHNkeEwrSHhiT2hYcUFqWi9Yb2dXRzNka0YKCWtqMThDOXdVaXh3eDQrRkNwbVlaNzBucGtsZ2I1QXg0aGt2c0l0M0dtZVUwdGxFPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArUVg0T3dsYWhLVjdqOUY5Zmc2UFJwSG9MTzBtWnpPWmh6UmovNkVNTG0zYXZYSTEzYkk0OGJOYldWOXE0cjZQK0dZcGJhUmRrSStiTFhRcmlwZ0QxST0KWC1SZWNlaXZlZDogYnkgMTAuMjAwLjAuODEgd2l0aCBTTVRQIGlkIGkxN21yMTQzMjM3OTdxdGcuMzA4LjE1MDk4MDE1MDE2NjA7CiBTYXQsIDA0IE5vdiAyMDE3IDA2OjE4OjIxIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xMi4xNTUuMTM4IHdpdGggSFRUUDsgU2F0LCA0IE5vdiAyMDE3IDA2OjE4OjIxIC0wNzAwIChQRFQpClgtT3JpZ2luYXRpbmctSVA6IFs2NS43OC4yNS4xNzFdCkluLVJlcGx5LVRvOiA8Q0ErblBuTXhDUjlZdDFnVUxYRi1RNEdEWFJ6QWdoWjBzRjVVa2tYZFN0VU1DS1BNTDlnQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXdFSDlaMm15cDcxdWFTcmRjeUxKUkZyRS1WcnQyMDE5MXJkMDFoK1VmaGp3QG1haWwuZ21haWwuY29tPgogPENBKzI5OFVnOER3b2tzY2R3Qzl2UHJHKzJUUGZzZFR2cVE1R08yUmRSck9NVD12cGZld0BtYWlsLmdtYWlsLmNvbT4gPENBK25Qbk14Q1I5WXQxZ1VMWEYtUTRHRFhSekFnaFowc0Y1VWtrWGRTdFVNQ0tQTUw5Z0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogUGF1bCBIYW1tYW50IDxwYXVsQGhhbW1hbnQub3JnPgpEYXRlOiBTYXQsIDQgTm92IDIwMTcgMDk6MTg6MjEgLTA0MDAKTWVzc2FnZS1JRDogPENBKzI5OFVqcDZkWkxWMXlOcWJQQmM0ZldCRHpvekV4Y0NtN0Y1NkNuPUUtOUZhRGE4QUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IE1hdmVuIDQuMC4wClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9ImY0MDMwNDVlNzM2YTMwMmI1NjA1NWQyODBlMjIiCgotLWY0MDMwNDVlNzM2YTMwMmI1NjA1NWQyODBlMjIKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCj4KPgo+Cj4gPgo+ID4gKjMuIE1vcmUgcGx1Z2dhYmxlIGRlcGVuZGVuY3kgcmVzb2x2ZXI6Kgo+ID4KPgo+IEkgYW0gd2lsbGluZyB0byBsZXQgdGhpcyBiZSBvcHRpb25hbCBzY29wZSBmb3Igbm93LiBNYXkgYmUgeWFua2VkIGlmIHRvbwo+IHJpc2t5IG9yIG5vdCByZWFkeSBpbiB0aW1lCj4KPgo+CkkgZG9uJ3Qgc2VlIGhvdyB5b3UgY2FuIGV2ZW4gbWFrZSBpdCBvcHRpb25hbCB3aXRob3V0IGEgcG9tIHNwZWNpZmllZCB3YXkKb2Ygc2F5aW5nICJub3QgbWF2ZW4gY2VudHJhbCwgdGhpcyB3YXkvcGxhY2UgaW5zdGVhZCIKCi0tZjQwMzA0NWU3MzZhMzAyYjU2MDU1ZDI4MGUyMi0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MDMxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBTZXAgMTQgMjI6NTE6MTQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDMxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIENDQTEzMUE3NTUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAxNCBTZXAgMjAxNyAyMjo1MToxNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDYwODczIGludm9rZWQgYnkgdWlkIDUwMCk7IDE0IFNlcCAyMDE3IDIyOjUxOjE0IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MDgwMCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNCBTZXAgMjAxNyAyMjo1MToxNCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYwNzgzIGludm9rZWQgYnkgdWlkIDk5KTsgMTQgU2VwIDIwMTcgMjI6NTE6MTMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDE0IFNlcCAyMDE3IDIyOjUxOjEzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNzFDRjAxQTY5QTMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDE0IFNlcCAyMDE3IDIyOjUxOjEzICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC4wOTkKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC4wOTkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBXZEZGVWNRakVicnggZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsIDE0IFNlcCAyMDE3IDIyOjUxOjExICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtaW8wLWYxNzMuZ29vZ2xlLmNvbSAobWFpbC1pbzAtZjE3My5nb29nbGUuY29tIFsyMDkuODUuMjIzLjE3M10pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAxQjlFMzVGQ0I5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAxNCBTZXAgMjAxNyAyMjo1MToxMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1pbzAtZjE3My5nb29nbGUuY29tIHdpdGggU01UUCBpZCBlMTg5c280MzcwOTY1aW9hLjQKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAxNCBTZXAgMjAxNyAxNTo1MToxMSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD0vaGVTMGZWem01cFBQU3g5alZqTzVmcVhNWDEyWFEycXYxOU5uMGNPY29zPTsKICAgICAgICBiPWZtbS9pM05FNXNPWkQyYW56c25uWlpZRkRHbUZjUUhwemhMeHN0UklWUXh6ek1DOHBLUVlQbWZ0eDIvdGtPSlI5dgogICAgICAgICBGNGF5SjQ0WVVWVGtsTy80dUo0MFQ0aHhJU08vTUZKTE5iU01HQ2FCL01nU203ajJ3cGsvbk9ZcE9qTDI2dEVUTW5PagogICAgICAgICBTa0Z2Z0dPa3hha21lUFhSaUNlOTh3ZGRCRnZjNXRmc1FRL1Y5WVBIMWg1dTlpZ1M5SUk3bFhVNVBvcEwzY01JSXlsUgogICAgICAgICBnaUcxbUJUYThBcDNEeGRMYjNyQUE5TUJWZkNqdEFoY1lLcWg5dURPblo3VnYxQ1VHZHJnV3RlWitIc0hKOTA0aHYrWAogICAgICAgICAraFIrNlZPK1A0UUM5MUloaHM5b1haQlBtZUg3eXlFQlB5OG0xZzNBU2xhRmFJbHhBM3dBREluS3BYYlQ1RTFNZTEvNAogICAgICAgICBVYW53PT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD0vaGVTMGZWem01cFBQU3g5alZqTzVmcVhNWDEyWFEycXYxOU5uMGNPY29zPTsKICAgICAgICBiPXBzNTRzYzRyQnUyYVFMclU5VG8zeGVNMU9ibFVuME4rTlFNUEFSMWlORUhXbTJmRlhCYmFkdHhkcnZTOTNtS1RZdwogICAgICAgICBXcExaNG5KcUVOdllob0NiZEZOYlV3b0d1ZnNhQUIzMTF1NTRFeHo5eGxYMlZJSGpjYTc1cCtic0FhZnRiR1I5YVlRcAogICAgICAgICBrWEg2cVExNWhuSEZzTWlTUXR2ZlQvMTY3b0Vrc1pNQzZON1FrNTFPb3A5WnJxdzR5NDhuNlErUUFvRXZhbXY0cW5sUQogICAgICAgICBsVDFlMy9tTFRBOFRWVUJWNkxaNHRKcXplK0RpR0NYb05vYTRBOEl1V2Z6YXRDZjZoWVRDOWZZb2diVzBDdndzbis2YgogICAgICAgICB5L3VJQzRCMnpib21vWW1PSWJQMldObXRKNXdadUNOTHN6cHk3SUFWNWd3S2ppS2tPZlRtMU9rRHpmbXhUaWZUVDlEdQogICAgICAgICAwbGtnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVnTHIvYWVVYWRROStYR0dBTjRHbC9SRFJ4M3QxRkkxZUN5Mzk5SXV0cnJ6Z0l2V0hEKwoJMzZUcVRWSWJQTlNQU0pUZVJSQURXUHRWVHRpdDFycWhCK085NTB0ODV3PT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUFscUNZd0NadFZiYVJ6V3dkUkNXR2lyT2Zza2tyRDcrSFA3ZDUyNTBEOFpPMURzOG5PNTkwcEpaKzFpUmpia3pTa25BN2x5NFhjbDJFcVZhUURBc0E9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjEwNy4xNi4yMDMgd2l0aCBTTVRQIGlkIDcybXI0OTU2MDkwaW9xLjEzOS4xNTA1NDI5NDY5NjI3OwogVGh1LCAxNCBTZXAgMjAxNyAxNTo1MTowOSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgogPENBRk5DVS0tMnZyZDVCZVR2a3hLQ3lYMlpRZVBxaXg3WD13bVZzV2RNNWQ0OVhlTmdPd0BtYWlsLmdtYWlsLmNvbT4KIDxGNzA1N0UxQi00MzEzLTREN0ItOEVGMS05OTM0MUREMUUxRDBAdGFsaW9zLmNvbT4gPENBK25Qbk13VXFtQnVyYXREMUNwaz1MOXRBQ3dfK3FvdHJzVXBDcWRxUlpYbVdYZ2lUQUBtYWlsLmdtYWlsLmNvbT4KIDxCMTQ4Qzk2Ny0xNjk1LTQ1QzItQTE1Ri0xRkZGOTAzQkNCNTBAdGFsaW9zLmNvbT4gPDc0QzEyN0IwLUY3MDctNEJCQS1BMkMxLUQ1N0U2MEM5QzBGQ0B0YWxpb3MuY29tPgogPEZBQURERTE0LUMzNzgtNEQzRC04QUVFLTlBQzhDQ0Y5MTc4M0B0YWxpb3MuY29tPiA8Q0FMWUdtMXk5VE14QUFpaG5pN2tibz0ycmh1bjJ4dDRGOHgwTXlrTkxrQnR0djdHaUh3QG1haWwuZ21haWwuY29tPgogPENBK25Qbk16bWtRKzhaaXZUeUJBYm5qLTV4UTRDc3hVaWExZExtaWYzbUg5N2owQUp6QUBtYWlsLmdtYWlsLmNvbT4KIDxDQSs9K0xyTE89RmM9WllOVG80aDJHZHlpTWF3dGRxVlh1MGJibTJ0V3hBY0R6eUpUemdAbWFpbC5nbWFpbC5jb20+IDxDQSs9K0xyTDY1TG1HQ3ZPd3AtN01YS0JpVD1mOVlSYXM1b3JtPVplQTgyWjZPWE03MlFAbWFpbC5nbWFpbC5jb20+CkluLVJlcGx5LVRvOiA8Q0ErPStMckw2NUxtR0N2T3dwLTdNWEtCaVQ9ZjlZUmFzNW9ybT1aZUE4Mlo2T1hNNzJRQG1haWwuZ21haWwuY29tPgpGcm9tOiA9P1VURi04P0I/VUdWMGNpREZvR2x5YjJ2RHZRPT0/PSA8c2lyb2t5LnBldHJAZ21haWwuY29tPgpEYXRlOiBUaHUsIDE0IFNlcCAyMDE3IDIyOjUwOjU4ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQSs9K0xyK0hhZTB4WmE9S0ZhdD10dS1lS1pFV1d2WXBrLVdDaHdmMlNDckVReXZaTXdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExM2VkNzJlYzVhNTUyMDU1OTJlMWMxOCIKCi0tMDAxYTExM2VkNzJlYzVhNTUyMDU1OTJlMWMxOApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpJIHdhcyBhYmxlIHRvIGVhc2lseSBmaXggb3VyIHBsdWdpbiBieSBlLmcuIHJlcGxhY2luZwoiVGhyZWFkLmN1cnJlbnRUaHJlYWQoKS5nZXRDb250ZXh0Q2xhc3NMb2FkZXIoKSIgd2l0aAoidGhpcy5nZXRDbGFzcygpLmdldENsYXNzTG9hZGVyKCkiIChpbiB0aGUgTW9qbyBjbGFzcykgdG8gZ2V0IHRoZSBwbHVnaW4KY2xhc3Nsb2FkZXIuCgpJIGRvbid0IGtub3cgdGhvdWdoIGlmIHRoZSAiVGhyZWFkLmN1cnJlbnRUaHJlYWQoKS5nZXRDb250ZXh0Q2xhc3NMb2FkZXIoKSIKaXMganVzdCBtaXN1c2Ugb24gb3VyIHNpZGUgb3IgaWYgaXQncyBzb21ldGhpbmcgdGhhdCBtb3JlIHBsdWdpbnMgbWF5IHJlbHkKb24uCgpQZXRyCgoKT24gVGh1LCBTZXAgMTQsIDIwMTcgYXQgMjo0MiBQTSBQZXRyID1DNT1BMGlyb2s9QzM9QkQgPHNpcm9reS5wZXRyQGdtYWlsLmNvPQptPiB3cm90ZToKCj4gQXJnaCwgSSBmb3Jnb3QgdG8gbGluayB0aGUgcGx1Z2luIHNvdXJjZToKPiBodHRwczovL2dpdGh1Yi5jb20va2llZ3JvdXAvZHJvb2xzamJwbS1pbnRlZ3JhdGlvbi90cmVlLzcuMy4wLkZpbmFsL2tpZS1tPQphdmVuLXBsdWdpbgo+Cj4gT24gVGh1LCBTZXAgMTQsIDIwMTcgYXQgMjo0MSBQTSBQZXRyID1DNT1BMGlyb2s9QzM9QkQgPHNpcm9reS5wZXRyQGdtYWlsLj0KY29tPiB3cm90ZToKPgo+PiBIZWxsbywKPj4KPj4gSSBhbSBzZWVpbmcgYSAocHJvYmFibHkpIHNpbWlsYXIgaXNzdWUgd2l0aCBvdXIgY3VzdG9tIHBsdWdpbi4KPj4KPj4gU2VlIHRoZSByZXByb2R1Y2VyOgo+PiBodHRwczovL2dpdGh1Yi5jb20vcHNpcm9reS9yZXByb2R1Y2Vycy90cmVlL212bjM1MS1raWUtbWF2ZW4tcGx1Z2luICh3b3I9CmtzCj4+IGZpbmUgd2l0aCBtYXZlbiAzLjUuMCwgYnV0IGZhaWxzIHdpdGggTlBFIHdpdGggdGhlIFJDIG9mIG1hdmVuIDMuNS4xKS4KPj4KPj4gSSBhbSBub3QgeWV0IHN1cmUgaWYgdGhlIHBsdWdpbiBpcyBqdXN0IGRvaW5nIHNvbWV0aGluZyBpdCdzIG5vdCBzdXBwb3NlPQpkCj4+IHRvLCBvciBpZiB0aGlzIGlzIGEgcmVncmVzc2lvbiBpbiBtYXZlbiBpdHNlbGYuIEknbGwgd2lsbCB0YWtlIGEgZGVlcGVyCj4+IGxvb2suCj4+Cj4+IFBldHIKPj4KPj4KPj4gT24gVGh1LCBTZXAgMTQsIDIwMTcgYXQgMTo1MyBQTSBTdGVwaGVuIENvbm5vbGx5IDwKPj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4+Cj4+PiBPbiAxNCBTZXB0ZW1iZXIgMjAxNyBhdCAwNDo0MywgTWFyayBEZXJyaWN1dHQgPG1hcmtAdGFsaW9zLmNvbT4gd3JvdGU6Cj4+Pgo+Pj4gPiA+ICsyIG5vbi1iaW5kaW5nIGZyb20gTWFyayEKPj4+ID4KPj4+ID4gSSB3YXMgZGlzY3Vzc2luZyB0aGlzIHdpdGggYSBjb3dvcmtlciBhbmQgaGUgbWFkZSB0aGUgY29tbWVudCB0aGF0IGlmCj4+PiB0aGlzCj4+PiA+IGNoYW5nZSBjb3VsZCBicmVhayBNb2pvcywgbWF5YmUgaXQgc2hvdWxkbid0IGJlIGluIGEgcG9pbnQgcmVsZWFzZSAtCj4+PiB3aGF0cwo+Pj4gPiB0aGUgcG9saWN5IG9uIGNoYW5nZXMgdGhhdCBtYXkgcG90ZW50aWFsbHkgYnJlYWsgZXhpc3RpbmcgcGx1Z2lucz8KPj4+ID4KPj4+Cj4+PiBXZWxsIHdlIG5lZWQgdG8gYXNzZXNzIHRoZSBpc3N1ZS4gUmlnaHQgbm93IEkgZG9uJ3QgZXZlbiBoYXZlIGEKPj4+IGRlc2NyaXB0aW9uCj4+PiBvZiB3aGF0IHdlbnQgd3JvbmcuIEFueSBjaGFuY2UgeW91IGNvdWxkIHByb3ZpZGUgYSByZXBsaWNhdGlvbi4uLiBvciBtYT0KaWwKPj4+IG1lIGRpcmVjdGx5IGlmIHlvdSBjYW5ub3Qgc2hhcmUgaXQgcHVibGljYWxseSBhbmQgSSBtYXkgYmUgYWJsZSB0bwo+Pj4gcHJvZHVjZQo+Pj4gYSBtaW5pbWFsIHJlcHJvZHVjdGlvbiBmcm9tIGl0Lgo+Pj4KPj4+IElmIHRoaXMgYnJlYWtzIGEgbW9qbyB0aGF0IHdhcyBkb2luZyBzb21ldGhpbmcgd3JvbmcgaW4gdGhlIGZpcnN0IHBsYWNlPQosCj4+PiB3ZWxsIHRoYXQgd2lsbCBub3Qgc3RvcCAzLjUuMS4uLiBPVE9IIGlmIHRoaXMgZXhwb3NlcyBhIGJ1ZyBpbiB0aGUgaXNzdT0KZQo+Pj4gImZpeGVkIiB0aGVuIEknZCBsaWtlbHkgcmV2ZXJ0IGFuZCByZXNwaW4uCj4+Pgo+Pj4gV2UgcmVhbGx5IG5lZWQgYSByZXByb2R1Y2VyIGZpcnN0Lgo+Pj4KPj4+Cj4+PiA+Cj4+PiA+IC0tCj4+PiA+ICJHcmVhdCBhcnRpc3RzIGFyZSBleHRyZW1lbHkgc2VsZmlzaCBhbmQgYXJyb2dhbnQgdGhpbmdzIiA9RTI9ODA9OTQgUz0KdGV2ZW4KPj4+IFdpbHNvbiwKPj4+ID4gUG9yY3VwaW5lIFRyZWUKPj4+ID4KPj4+ID4gT24gVGh1LCBTZXAgMTQsIDIwMTcgYXQgMTA6MjkgQU0sIE1hcmsgRGVycmljdXR0IDxtYXJrQHRhbGlvcy5jb20+Cj4+PiB3cm90ZToKPj4+ID4KPj4+ID4gPiBPbiAxNCBTZXAgMjAxNywgYXQgMTA6MjYsIE1hcmsgRGVycmljdXR0IHdyb3RlOgo+Pj4gPiA+Cj4+PiA+ID4gQ2FsbGluZyAtMiBmb3Igdm90ZSBpZiBub3QgdG9vIGxhdGUuCj4+PiA+ID4KPj4+ID4gPiBBY3R1YWxseSAtIGxvb2tpbmcgYXQgdGhlIGNvbW1pdCBkaWZmLCBJIHNlZSBpbiBvdXIgY29kZSB3ZSBkaWQgaGF2PQplCj4+PiA+ID4gPGV4dGVuc2lvbnM+dHJ1ZTwvZXh0ZW5zaW9ucz4gZm9yIHRoZSBqYXNtaW5lLW1hdmVuLXBsdWdpbiB3aGljaCB3ZQo+Pj4gZG9uJ3QKPj4+ID4gPiBhY3R1YWxseSBuZWVkLiBSZW1vdmluZyB0aGF0IGZyb20gdGhlIG1vam8gZGVmaW5pdGlvbiBhbmQgcnVubmluZyBtPQp5Cj4+PiA+IGJ1aWxkCj4+PiA+ID4gd2l0aCB0aGUgc3RhZ2VkIDMuNS4xIHJlbGVhc2UgYW5kIGV2ZXJ5dGhpbmcgYnVpbGRzIGZpbmUuCj4+PiA+ID4KPj4+ID4gPiArMiBub24tYmluZGluZyBmcm9tIE1hcmshCj4+PiA+ID4KPj4+ID4gPiBNYXJrCj4+PiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+PiA+ID4KPj4+ID4gPiAiVGhlIGVhc2Ugd2l0aCB3aGljaCBhIGNoYW5nZSBjYW4gYmUgaW1wbGVtZW50ZWQgaGFzIG5vIHJlbGV2YW5jZSBhPQp0Cj4+PiBhbGwKPj4+ID4gPiB0byB3aGV0aGVyIGl0IGlzIHRoZSByaWdodCBjaGFuZ2UgZm9yIHRoZSAoSmF2YSkgUGxhdGZvcm0gZm9yIGFsbAo+Pj4gdGltZS4iCj4+PiA+ID1FMj04MD05NAo+Pj4gPiA+IE1hcmsgUmVpbmhvbGQuCj4+PiA+ID4KPj4+ID4gPiBNYXJrIERlcnJpY3V0dAo+Pj4gPiA+IGh0dHA6Ly93d3cudGhlb3J5aW5wcmFjdGljZS5uZXQKPj4+ID4gPiBodHRwOi8vd3d3LmNoYWxpY2VvZmJsb29kLm5ldAo+Pj4gPiA+IGh0dHA6Ly9wbHVzLmdvb2dsZS5jb20vK01hcmtEZXJyaWN1dHQKPj4+ID4gPiBodHRwOi8vdHdpdHRlci5jb20vdGFsaW9zCj4+PiA+ID4gaHR0cDovL2ZhY2Vib29rLmNvbS9tZGVycmljdXR0Cj4+PiA+ID4KPj4+ID4KPj4+Cj4+CgotLTAwMWExMTNlZDcyZWM1YTU1MjA1NTkyZTFjMTgtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDAyNS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgU2VwIDE0IDEyOjI3OjI1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDAyNS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyNTFCNzFBQ0Q2Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMTQgU2VwIDIwMTcgMTI6Mjc6MjUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0MjIwMCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNCBTZXAgMjAxNyAxMjoyNzoxOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDIwOTcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTQgU2VwIDIwMTcgMTI6Mjc6MTkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0MjA3NSBpbnZva2VkIGJ5IHVpZCA5OSk7IDE0IFNlcCAyMDE3IDEyOjI3OjE4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAxNCBTZXAgMjAxNyAxMjoyNzoxOCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDU1RjVGMTg0QjIwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAxNCBTZXAgMjAxNyAxMjoyNzoxOCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDMuODc5ClgtU3BhbS1MZXZlbDogKioqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0zLjg3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUZSRUVNQUlMX1JFUExZPTEsIEhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB4RXFlYlFKVTE4VmggZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsIDE0IFNlcCAyMDE3IDEyOjI3OjE3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtaXQwLWY0OS5nb29nbGUuY29tIChtYWlsLWl0MC1mNDkuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNC40OV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA5M0Q1RTVGQ0U5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAxNCBTZXAgMjAxNyAxMjoyNzoxNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1pdDAtZjQ5Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHcyMDRzbzE3NTg5Nml0Yy40CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMTQgU2VwIDIwMTcgMDU6Mjc6MTYgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9T2VFOGNubmYvNWZESDA1OTN2UWtJVi9icmJ0aXZWYkRka2NPY05tQ01Wcz07CiAgICAgICAgYj1NY3JsNFdEb2VsbGdmRm14K0VCRWRCdW9RSVBCQnhjRTZiS3I5WEIxTEh5WGc3SitTeFd1ZDErM1lHZUpndTV6K0wKICAgICAgICAgOTI4WERMRmRGdnRBbkNSNkUwYkxhdnVrQkZBRCtBdy85eC9qR2FOenBEc3ozdEJXZFRTS2E0dHVsSDhVNkU4R2dQcUYKICAgICAgICAgSllvOFptcjBTeXgvM0hUQ0RzbTRvMHRKUGZ4NnNoY05TZWtKbjlmWElsbTUxZzRjYXVUSTZncWhVMEN2dGx5VHNLOXkKICAgICAgICAgWnZqRU51cERUVGhmVjN5SUdEdENlSDh1QXRFVUtsOEhLNXlLZndqZW5aeDgvdjcycm11OUNVUW9CT2hxSElQSHVPUEoKICAgICAgICAgYUpWUkFIb08rNUtnV3M4WVhQK2RSMmJ4dmxHbkt2dDlVTytDVTNuUlRIRG40cE9UdlZFUzJQSW5oVTNrQnlzdFZ6UmEKICAgICAgICAgdElrZz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9T2VFOGNubmYvNWZESDA1OTN2UWtJVi9icmJ0aXZWYkRka2NPY05tQ01Wcz07CiAgICAgICAgYj1JUG9yMTh6dGNwNjExMldodEJxWFZMQ2oySkM5YUI0SmZzeUhpWFcyMEJHUnluRHVZUFpTcEZ6VGszY0E2a1RZRVgKICAgICAgICAgTWxOcTZ0aDdvM0F5VDB0c01xcWdDeVdoamtXZFJ6UlRzSFhRRHAyVnZHRXJmMTlWVmF6MmpJYktsOFI3WjdVSXdqNnQKICAgICAgICAgMVpHSnhIV1p1NUtqYm5tS2NjTFJNUGZhbjNzdFF2M3o5NnhBMUZLSldJenVKQWszMnE0NGMwM0doR2dnOWs3Tlg2SkcKICAgICAgICAgYnVuVWp0Z0dIS1VjUHhlOFg0Z3JHWW94WkdVZXBZZVdjMXFuWURSUVd2SEZ2ajZaR2J6S08zU2xGTVFnaWdwejBLMzEKICAgICAgICAgTUdudThZbVpEU1QraXRUODd1b2lucVFlUkRwWVFUckp2ZHhYUWUxOEw5RG1Xb3JmQkw5M2xZR1FRaXBFNHZqV2x5dzAKICAgICAgICAgVVJWUT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVaEJWVGhTN2ErdjNXR012ZWs3SlZwbGh3Q0dRMlR0TmQzRE5RdVR5TkJpOEFjWk1oNjAKCTV5L2JvUXZ4U1liRmpOc2NJWTNnTG9MS29XSS9LRk9Rb0xVUHdnc1BpUT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FCWC9WS0hMUnRUQ1RsVWkrY3RHVFNER2FQMzlYOWxLT28rcHFpdzdYbmVMaTZwL1ZBRGxJUDV1ak4zQVZnbDc1RWgwQWFEcW4vc21Jc0FZZHY3YVgwPQpYLVJlY2VpdmVkOiBieSAxMC4zNi4xODkuMTQgd2l0aCBTTVRQIGlkIHgxNG1yMjY3MDg2OWl0ZS4zMC4xNTA1MzkyMDM1MDkwOwogVGh1LCAxNCBTZXAgMjAxNyAwNToyNzoxNSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8Q0FLdVZ6QlRqTk9iUUxtdG84Zjk3Zk8xeCtUMWkxX29UejdNX08wM1ZrV2FDazdGXytRQG1haWwuZ21haWwuY29tPgogPENBS3VWekJUcWZSMVoxMS1mMkNOVTNMMV9HY1l6K2Q1OXgrVzJMOFZaQzNxTGV6ZDFYd0BtYWlsLmdtYWlsLmNvbT4gPENBS3VWekJRaTdPNC1vSGZfLU01RW5OQzRtK3k1N1lmcThlZkxRUWlXQTRVMUNaZ0NWd0BtYWlsLmdtYWlsLmNvbT4KSW4tUmVwbHktVG86IDxDQUt1VnpCUWk3TzQtb0hmXy1NNUVuTkM0bSt5NTdZZnE4ZWZMUVFpV0E0VTFDWmdDVndAbWFpbC5nbWFpbC5jb20+CkZyb206ID0/VVRGLTg/Qj9VR1YwY2lERm9HbHliMnZEdlE9PT89IDxzaXJva3kucGV0ckBnbWFpbC5jb20+CkRhdGU6IFRodSwgMTQgU2VwIDIwMTcgMTI6Mjc6MDQgKzAwMDAKTWVzc2FnZS1JRDogPENBKz0rTHJKMnBlSHBIRy15UzRwci1oQT05bTZvNkZiTVpQaz09SHl5OT1KaEc0NkhvZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBTdXJlZmlyZSBQbHVnaW4gdmVyc2lvbiAyLjIwLjEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iOTRlYjJjMTljMjEyN2ZkYTg1MDU1OTI1NjVjMyIKCi0tOTRlYjJjMTljMjEyN2ZkYTg1MDU1OTI1NjVjMwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKKzEgbm9uLWJpbmRpbmcuIFRlc3RlZCBvbiBzZXZlcmFsIHByb2plY3RzIHdpdGggdGhvdXNhbmRzIG9mIHRlc3RzIChib3RoCnN1cmVmaXJlIGFuZCBmYWlsc2FmZSBvbmVzKS4gTm8gaXNzdWUgZm91bmQuCgpFbnY6CkZlZG9yYSAyNQpPcmFjbGUgSkRLIDgKTWF2ZW4gMy41LjAuCgpQZXRyCgoKT24gVGh1LCBTZXAgMTQsIDIwMTcgYXQgODowMCBBTSBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+IHdyb3RlOgoKPiAoYWdhaW4gZnJvbSBteSBBcGFjaGUgbWFpbCBhY2NvdW50KQo+IFBscyBwYXJ0aWNpcGF0ZSBpbiB0aGUgdm90ZSBhbmQgdGVzdC4KPgo+IE9uIFRodSwgU2VwIDE0LCAyMDE3IGF0IDc6NTkgQU0sIFRpYm9yIERpZ2FuYSA8dGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tCj4gPgo+IHdyb3RlOgo+Cj4gPiBQbHMgcGFydGljaXBhdGUgaW4gdGhlIHZvdGUgYW5kIHRlc3QuCj4gPgo+ID4gT24gTW9uLCBTZXAgMTEsIDIwMTcgYXQgNTozMyBBTSwgVGlib3IgRGlnYW5hIDwKPiB0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20KPiA+ID4gd3JvdGU6Cj4gPgo+ID4+IEhpLAo+ID4+Cj4gPj4gV2Ugc29sdmVkIDI0IGlzc3VlczoKPiA+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamUKPiA+PiBjdElkPTEyMzE3OTI3JnZlcnNpb249MTIzNDAyOTcKPiA+Pgo+ID4+IFRoZXJlIGFyZSAxMDEgaXNzdWVzIGxlZnQgaW4gSklSQToKPiA+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaSNpc3N1ZXMvP2pxbD1wcm9qZWN0KyUzRCsKPiA+PiBTVVJFRklSRStBTkQrc3RhdHVzKyUzRCtPcGVuK09SREVSK0JZK3ByaW9yaXR5K0RFU0MKPiA+Pgo+ID4+IFN0YWdpbmcgcmVwbzoKPiA+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY2Lwo+ID4+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNgo+ID4+IDYvb3JnL2FwYWNoZS9tYXZlbi9zdXJlZmlyZS9zdXJlZmlyZS8yLjIwLjEvc3VyZWZpcmUtMi4yMC4KPiA+PiAxLXNvdXJjZS1yZWxlYXNlLnppcAo+ID4+Cj4gPj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gPj4gbWF2ZW4tc3VyZWZpcmUtcGx1Z2luLTIuMjAuMS1zaXRlLXNvdXJjZS56aXAgc2hhMToKPiA+PiA0MTg3YTc5MzIyNjhjN2FkNDY3OTczMjU0ZDg3NTg0MDg1ZTMwNWMxCj4gPj4KPiA+PiBTdGFnaW5nIHNpdGU6Cj4gPj4gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvc3VyZWZpcmUtYXJjaGl2ZXMvc3VyZWZpcmUtTEFURVNULwo+ID4+Cj4gPj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gPj4gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+ID4+Cj4gPj4gVm90ZSBvcGVuIGZvciA3MiBob3Vycy4KPiA+Pgo+ID4+IFsgXSArMQo+ID4+IFsgXSArMAo+ID4+IFsgXSAtMQo+ID4+Cj4gPj4gLS0KPiA+PiBDaGVlcnMKPiA+PiBUaWJvcgo+ID4+Cj4gPgo+ID4KPiA+Cj4gPiAtLQo+ID4gQ2hlZXJzCj4gPiBUaWJvcgo+ID4KPgoKLS05NGViMmMxOWMyMTI3ZmRhODUwNTU5MjU2NWMzLS0KCkZyb20gZGV2LXJldHVybi0xMjQwMjctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IFNlcCAxNCAxMjo0Mjo0MyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwMjctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMEEzRTMxQURBMwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDE0IFNlcCAyMDE3IDEyOjQyOjQzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODU4OTAgaW52b2tlZCBieSB1aWQgNTAwKTsgMTQgU2VwIDIwMTcgMTI6NDI6NDIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg1ODEwIGludm9rZWQgYnkgdWlkIDUwMCk7IDE0IFNlcCAyMDE3IDEyOjQyOjQxIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODU3OTggaW52b2tlZCBieSB1aWQgOTkpOyAxNCBTZXAgMjAxNyAxMjo0Mjo0MSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMTQgU2VwIDIwMTcgMTI6NDI6NDEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBEMjZENDFBNjZCNQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMTQgU2VwIDIwMTcgMTI6NDI6NDAgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjA5OQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjA5OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDdEcHZQVHBpSGprRCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVRodSwgMTQgU2VwIDIwMTcgMTI6NDI6MzggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC1pbzAtZjE3Ny5nb29nbGUuY29tIChtYWlsLWlvMC1mMTc3Lmdvb2dsZS5jb20gWzIwOS44NS4yMjMuMTc3XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDk1MzlBNUZDOEEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDE0IFNlcCAyMDE3IDEyOjQyOjM4ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLWlvMC1mMTc3Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHoxODdzbzY1Mzk2NWlvei4xMgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDE0IFNlcCAyMDE3IDA1OjQyOjM4IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPStwNWFGMHBRRStNZXVZVE9nYS93Z013dzJZQmI1enZIR1NTaGRRMWRQdTQ9OwogICAgICAgIGI9b1BROUMxSFlXdzlrSEYvVkVEdGZIY3FGeTZQU0dTNUtVUitJelJJamN4am9FUGtWSERwTjQ3QTBUMFpYSW1GQzBtCiAgICAgICAgIDRPT1k1cDZ6M0pxK3NLR1o1NnVxZ29lSTFZRmhPYkFZU1FMS1VzeEJNYkdNMzE4YVU2QXdhZDZiRUkyN0RaYUF2eDBnCiAgICAgICAgIHpsUXZMMUVYenJPOThXQzJITGNZMytlYVlXWjBRbGdKY1VGV3RxcGsyaFR0UHUrVTBNRnR4Y1JSdS9wS1pEOWw2SXJ5CiAgICAgICAgIG41NmcrRXhaWFNTSWJ4THNOSExFd1hYRjVzdVZVWUlvWTh3bmd6KzJOeHRLRFhSUTBJK2c5WjVNczZvSGpndjNBTHhPCiAgICAgICAgIEZZYXptQUJjN2w5QVN6Z0hsSDlSdUdSeW1Ta1AzYU1laDVoYlBXWXlGTEV3UWt4UnFVTE81RlRDUzNxUDVyb042UnNwCiAgICAgICAgIGNESHc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPStwNWFGMHBRRStNZXVZVE9nYS93Z013dzJZQmI1enZIR1NTaGRRMWRQdTQ9OwogICAgICAgIGI9UHJtdVM1VzgwMWRHN1dXMGFhMk9DdThpTURCOFpkVHVRY3RIdzBidEFQaXNlVEx2dWFXd3B6cDlVaHdDMTVTNE4zCiAgICAgICAgIHMwelNxMXFlYlR6UWtjS2JkRVVhVHkyR1ZnM09Pc1c2ZUQxSE1vSS9EV0psc1p4RXZyVjkvcGtIUG5vcWtUdEVwemEwCiAgICAgICAgIGxKajFVU0FxWU91TzhRZTdYLzlDVTBXOGJsdkNaQ3NxNHJoZkNSQVN4cGxZc05TOVRGRSs3TGRDMk9ScTdHRVFaS3NICiAgICAgICAgIE5Ib0w2RGZqRDhPakJ1dVdvbUJEVzArOUYyRkFaZ0NMUVlIaGtINGJHTkNDR1RUMzd5VVltRUg0VG1HdDZzeTZYY3h6CiAgICAgICAgIFdFTm1VclNsWmhRRGVCNnNUVS9FZEhTaW40L2RHcm1iTnFTaWF4a1JUenlFc0FnWjVqeFQ1Mm03dW13RXg0VHVSSFgxCiAgICAgICAgIDZhUWc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWlyYnNudG91TmRlLzRWejZZSkxNUjBWVVhkYlkyYXIvd3IrSjgwZFRHNFQ5ZE40bG94Cgl0ZFIzaGxybndFd3pmMk5RaXNxRXh6UndMbzZFMlU0cDBwWS9qZU9oN0E9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQXNxQmE4TmUrUDZjSGQzNnhFTDFYdFU4dXFiRUh5QWZ1eVplNmFnTWhLYzVtUVlRaS9BWlBuYlJlVnFPNXJGNXpHeTgyRzh0OW5aSHNQalVjUHV0WT0KWC1SZWNlaXZlZDogYnkgMTAuMTA3LjMxLjEzIHdpdGggU01UUCBpZCBmMTNtcjIzOTE0NDlpb2YuMTIuMTUwNTM5Mjk1Nzc5MDsKIFRodSwgMTQgU2VwIDIwMTcgMDU6NDI6MzcgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPENBK25Qbk14eUcyTmVQWHBWcWF3ZTlqUj1pdEhFVDZVdWRuTjlDakhodj1vby1LQ3J4d0BtYWlsLmdtYWlsLmNvbT4KIDxDQUZOQ1UtLTJ2cmQ1QmVUdmt4S0N5WDJaUWVQcWl4N1g9d21Wc1dkTTVkNDlYZU5nT3dAbWFpbC5nbWFpbC5jb20+CiA8RjcwNTdFMUItNDMxMy00RDdCLThFRjEtOTkzNDFERDFFMUQwQHRhbGlvcy5jb20+IDxDQStuUG5Nd1VxbUJ1cmF0RDFDcGs9TDl0QUN3Xytxb3Ryc1VwQ3FkcVJaWG1XWGdpVEFAbWFpbC5nbWFpbC5jb20+CiA8QjE0OEM5NjctMTY5NS00NUMyLUExNUYtMUZGRjkwM0JDQjUwQHRhbGlvcy5jb20+IDw3NEMxMjdCMC1GNzA3LTRCQkEtQTJDMS1ENTdFNjBDOUMwRkNAdGFsaW9zLmNvbT4KIDxGQUFEREUxNC1DMzc4LTREM0QtOEFFRS05QUM4Q0NGOTE3ODNAdGFsaW9zLmNvbT4gPENBTFlHbTF5OVRNeEFBaWhuaTdrYm89MnJodW4yeHQ0Rjh4ME15a05Ma0J0dHY3R2lId0BtYWlsLmdtYWlsLmNvbT4KIDxDQStuUG5Nem1rUSs4Wml2VHlCQWJuai01eFE0Q3N4VWlhMWRMbWlmM21IOTdqMEFKekFAbWFpbC5nbWFpbC5jb20+IDxDQSs9K0xyTE89RmM9WllOVG80aDJHZHlpTWF3dGRxVlh1MGJibTJ0V3hBY0R6eUpUemdAbWFpbC5nbWFpbC5jb20+CkluLVJlcGx5LVRvOiA8Q0ErPStMckxPPUZjPVpZTlRvNGgyR2R5aU1hd3RkcVZYdTBiYm0ydFd4QWNEenlKVHpnQG1haWwuZ21haWwuY29tPgpGcm9tOiA9P1VURi04P0I/VUdWMGNpREZvR2x5YjJ2RHZRPT0/PSA8c2lyb2t5LnBldHJAZ21haWwuY29tPgpEYXRlOiBUaHUsIDE0IFNlcCAyMDE3IDEyOjQyOjI3ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQSs9K0xyTDY1TG1HQ3ZPd3AtN01YS0JpVD1mOVlSYXM1b3JtPVplQTgyWjZPWE03MlFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDFiYmQ0N2YyYjc1MDU1OTI1OWNlOCIKCi0tMDAxYTExNDFiYmQ0N2YyYjc1MDU1OTI1OWNlOApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpBcmdoLCBJIGZvcmdvdCB0byBsaW5rIHRoZSBwbHVnaW4gc291cmNlOgpodHRwczovL2dpdGh1Yi5jb20va2llZ3JvdXAvZHJvb2xzamJwbS1pbnRlZ3JhdGlvbi90cmVlLzcuMy4wLkZpbmFsL2tpZS1tYXY9CmVuLXBsdWdpbgoKT24gVGh1LCBTZXAgMTQsIDIwMTcgYXQgMjo0MSBQTSBQZXRyID1DNT1BMGlyb2s9QzM9QkQgPHNpcm9reS5wZXRyQGdtYWlsLmNvPQptPiB3cm90ZToKCj4gSGVsbG8sCj4KPiBJIGFtIHNlZWluZyBhIChwcm9iYWJseSkgc2ltaWxhciBpc3N1ZSB3aXRoIG91ciBjdXN0b20gcGx1Z2luLgo+Cj4gU2VlIHRoZSByZXByb2R1Y2VyOgo+IGh0dHBzOi8vZ2l0aHViLmNvbS9wc2lyb2t5L3JlcHJvZHVjZXJzL3RyZWUvbXZuMzUxLWtpZS1tYXZlbi1wbHVnaW4gKHdvcms9CnMKPiBmaW5lIHdpdGggbWF2ZW4gMy41LjAsIGJ1dCBmYWlscyB3aXRoIE5QRSB3aXRoIHRoZSBSQyBvZiBtYXZlbiAzLjUuMSkuCj4KPiBJIGFtIG5vdCB5ZXQgc3VyZSBpZiB0aGUgcGx1Z2luIGlzIGp1c3QgZG9pbmcgc29tZXRoaW5nIGl0J3Mgbm90IHN1cHBvc2VkCj4gdG8sIG9yIGlmIHRoaXMgaXMgYSByZWdyZXNzaW9uIGluIG1hdmVuIGl0c2VsZi4gSSdsbCB3aWxsIHRha2UgYSBkZWVwZXIKPiBsb29rLgo+Cj4gUGV0cgo+Cj4KPiBPbiBUaHUsIFNlcCAxNCwgMjAxNyBhdCAxOjUzIFBNIFN0ZXBoZW4gQ29ubm9sbHkgPAo+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Cj4+IE9uIDE0IFNlcHRlbWJlciAyMDE3IGF0IDA0OjQzLCBNYXJrIERlcnJpY3V0dCA8bWFya0B0YWxpb3MuY29tPiB3cm90ZToKPj4KPj4gPiA+ICsyIG5vbi1iaW5kaW5nIGZyb20gTWFyayEKPj4gPgo+PiA+IEkgd2FzIGRpc2N1c3NpbmcgdGhpcyB3aXRoIGEgY293b3JrZXIgYW5kIGhlIG1hZGUgdGhlIGNvbW1lbnQgdGhhdCBpZgo+PiB0aGlzCj4+ID4gY2hhbmdlIGNvdWxkIGJyZWFrIE1vam9zLCBtYXliZSBpdCBzaG91bGRuJ3QgYmUgaW4gYSBwb2ludCByZWxlYXNlIC0KPj4gd2hhdHMKPj4gPiB0aGUgcG9saWN5IG9uIGNoYW5nZXMgdGhhdCBtYXkgcG90ZW50aWFsbHkgYnJlYWsgZXhpc3RpbmcgcGx1Z2lucz8KPj4gPgo+Pgo+PiBXZWxsIHdlIG5lZWQgdG8gYXNzZXNzIHRoZSBpc3N1ZS4gUmlnaHQgbm93IEkgZG9uJ3QgZXZlbiBoYXZlIGEKPj4gZGVzY3JpcHRpb24KPj4gb2Ygd2hhdCB3ZW50IHdyb25nLiBBbnkgY2hhbmNlIHlvdSBjb3VsZCBwcm92aWRlIGEgcmVwbGljYXRpb24uLi4gb3IgbWFpPQpsCj4+IG1lIGRpcmVjdGx5IGlmIHlvdSBjYW5ub3Qgc2hhcmUgaXQgcHVibGljYWxseSBhbmQgSSBtYXkgYmUgYWJsZSB0byBwcm9kdT0KY2UKPj4gYSBtaW5pbWFsIHJlcHJvZHVjdGlvbiBmcm9tIGl0Lgo+Pgo+PiBJZiB0aGlzIGJyZWFrcyBhIG1vam8gdGhhdCB3YXMgZG9pbmcgc29tZXRoaW5nIHdyb25nIGluIHRoZSBmaXJzdCBwbGFjZSwKPj4gd2VsbCB0aGF0IHdpbGwgbm90IHN0b3AgMy41LjEuLi4gT1RPSCBpZiB0aGlzIGV4cG9zZXMgYSBidWcgaW4gdGhlIGlzc3VlCj4+ICJmaXhlZCIgdGhlbiBJJ2QgbGlrZWx5IHJldmVydCBhbmQgcmVzcGluLgo+Pgo+PiBXZSByZWFsbHkgbmVlZCBhIHJlcHJvZHVjZXIgZmlyc3QuCj4+Cj4+Cj4+ID4KPj4gPiAtLQo+PiA+ICJHcmVhdCBhcnRpc3RzIGFyZSBleHRyZW1lbHkgc2VsZmlzaCBhbmQgYXJyb2dhbnQgdGhpbmdzIiA9RTI9ODA9OTQgU3Q9CmV2ZW4KPj4gV2lsc29uLAo+PiA+IFBvcmN1cGluZSBUcmVlCj4+ID4KPj4gPiBPbiBUaHUsIFNlcCAxNCwgMjAxNyBhdCAxMDoyOSBBTSwgTWFyayBEZXJyaWN1dHQgPG1hcmtAdGFsaW9zLmNvbT4KPj4gd3JvdGU6Cj4+ID4KPj4gPiA+IE9uIDE0IFNlcCAyMDE3LCBhdCAxMDoyNiwgTWFyayBEZXJyaWN1dHQgd3JvdGU6Cj4+ID4gPgo+PiA+ID4gQ2FsbGluZyAtMiBmb3Igdm90ZSBpZiBub3QgdG9vIGxhdGUuCj4+ID4gPgo+PiA+ID4gQWN0dWFsbHkgLSBsb29raW5nIGF0IHRoZSBjb21taXQgZGlmZiwgSSBzZWUgaW4gb3VyIGNvZGUgd2UgZGlkIGhhdmUKPj4gPiA+IDxleHRlbnNpb25zPnRydWU8L2V4dGVuc2lvbnM+IGZvciB0aGUgamFzbWluZS1tYXZlbi1wbHVnaW4gd2hpY2ggd2UKPj4gZG9uJ3QKPj4gPiA+IGFjdHVhbGx5IG5lZWQuIFJlbW92aW5nIHRoYXQgZnJvbSB0aGUgbW9qbyBkZWZpbml0aW9uIGFuZCBydW5uaW5nIG15Cj4+ID4gYnVpbGQKPj4gPiA+IHdpdGggdGhlIHN0YWdlZCAzLjUuMSByZWxlYXNlIGFuZCBldmVyeXRoaW5nIGJ1aWxkcyBmaW5lLgo+PiA+ID4KPj4gPiA+ICsyIG5vbi1iaW5kaW5nIGZyb20gTWFyayEKPj4gPiA+Cj4+ID4gPiBNYXJrCj4+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gPiA+Cj4+ID4gPiAiVGhlIGVhc2Ugd2l0aCB3aGljaCBhIGNoYW5nZSBjYW4gYmUgaW1wbGVtZW50ZWQgaGFzIG5vIHJlbGV2YW5jZSBhdAo+PiBhbGwKPj4gPiA+IHRvIHdoZXRoZXIgaXQgaXMgdGhlIHJpZ2h0IGNoYW5nZSBmb3IgdGhlIChKYXZhKSBQbGF0Zm9ybSBmb3IgYWxsCj4+IHRpbWUuIgo+PiA+ID1FMj04MD05NAo+PiA+ID4gTWFyayBSZWluaG9sZC4KPj4gPiA+Cj4+ID4gPiBNYXJrIERlcnJpY3V0dAo+PiA+ID4gaHR0cDovL3d3dy50aGVvcnlpbnByYWN0aWNlLm5ldAo+PiA+ID4gaHR0cDovL3d3dy5jaGFsaWNlb2ZibG9vZC5uZXQKPj4gPiA+IGh0dHA6Ly9wbHVzLmdvb2dsZS5jb20vK01hcmtEZXJyaWN1dHQKPj4gPiA+IGh0dHA6Ly90d2l0dGVyLmNvbS90YWxpb3MKPj4gPiA+IGh0dHA6Ly9mYWNlYm9vay5jb20vbWRlcnJpY3V0dAo+PiA+ID4KPj4gPgo+Pgo+CgotLTAwMWExMTQxYmJkNDdmMmI3NTA1NTkyNTljZTgtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDI4Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgT2N0IDIwIDIxOjI1OjM3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI4Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFMjIxRTEwOEU1Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMjAgT2N0IDIwMTcgMjE6MjU6MzcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2NzE4MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBPY3QgMjAxNyAyMToyNTozNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjcxMDUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgT2N0IDIwMTcgMjE6MjU6MzcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2NzA4OSBpbnZva2VkIGJ5IHVpZCA5OSk7IDIwIE9jdCAyMDE3IDIxOjI1OjM3IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAyMCBPY3QgMjAxNyAyMToyNTozNyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDcwOUIyMUExMThCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAyMCBPY3QgMjAxNyAyMToyNTozNiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDAuMDk5ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTAuMDk5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44LCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgZGg3c1dTUHNZMmROIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJRnJpLCAyMCBPY3QgMjAxNyAyMToyNTozNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLWlvMC1mMTc5Lmdvb2dsZS5jb20gKG1haWwtaW8wLWYxNzkuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIyMy4xNzldKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQkEwQTU1RkJFNgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjAgT2N0IDIwMTcgMjE6MjU6MzQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtaW8wLWYxNzkuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgMTg5c28xNDYwNDQ2N2lvdy4xMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDIwIE9jdCAyMDE3IDE0OjI1OjM0IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWZWQitXNmV0RE54QS9wLzV6TVc0R00vZ2Z5Q214cmVBcG4xV3Q5S0xDZjA9OwogICAgICAgIGI9Vk1RRVBiQjRjb0dZYTVtdC8rMjBsMjlMY3A4c3BmNURNUmdlNXFacWZCOEtNdU50RmNXRzUxWEQyWFUzeURTT0VoCiAgICAgICAgIDk3aHJOajJzbHlQZ2JWWCtkbklVRzZMMlQ2ZDdleXV3b3JZL1VqYXo1R29iSDJTaUMraWI3bDlHVTQ4TW42dXhESmZyCiAgICAgICAgICtFYWttNURpYWZKa2xzSWRDVnFnak9kQ1pGRVdQazNRY1FubDA2MXp5d2trRzZoSVdYSklsMlQzbG96MDJ2Z0x1eU9tCiAgICAgICAgIHVDQUlkQWgwR2plNW8wSWFzSkZGMFpxeWNCY2MxNHMybGIyU20vUnR1bHNWUUtSWnpNOVNXbkJPN083aVBxeXhwdGxnCiAgICAgICAgIGtDVlIyU2EzWFRmVWpkVk1BNk5ZVXprMWZBZlNsVk8rMFJkMEEySnM0Y3lPeENIRmREZGhFbGFkVkhiOWtDQWpUL2dJCiAgICAgICAgIEovMnc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWZWQitXNmV0RE54QS9wLzV6TVc0R00vZ2Z5Q214cmVBcG4xV3Q5S0xDZjA9OwogICAgICAgIGI9dGJ0eURpbDhvRlFWVUFxdGZRekVKeS8vSTJCU2l3dktFZGlEbGpZcXNGSXpUOW5Wa1dGSk1rc05xemhLVUJQQnM0CiAgICAgICAgIHFSY0k2K0FVeC9BeWxlUXgvU1orSlJrVzBsT2M3V0VqRzlVVURYY2VzcEVCMVlHL01FeSswY3dhYWh6TW5oOEJHcDd4CiAgICAgICAgIHhsOWtwdjA0RldSM3NvS0FCV2REcHRzSkVJM09YV3NueksrNkU3dzR2dVk2dTN6WTMrRUVGSDQ4WG1yeVF0VThvV2ZmCiAgICAgICAgIE5UUGdzRkFKc1JoZUwxMU11Wjl5RDVpTEsxYXpkcVluTUZyM3h1U29xNlZ6dVJBZ1FPbXEvTGpJamhGWHpYc0dHempaCiAgICAgICAgIDMxbVlhekpGV2Y4M0YxN0owTWpzSUNJSjBuOVFWUVFrVFBwb2ZCWlJWZ1FjTWFYZ05aei9JeG1Mc21QVGZUc0REVmo2CiAgICAgICAgIEJSRlE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVduQmRGYWU5OFAxN1ZlVkttZHJFWE0vcGg0LzFrSHUvUGRVYmgwNzFXK2VlakZsZElRCgk0S1kreGxoNDhBZU1GOGtqaWVWYThHTGxFRnBjN3BYVG1xajV0U0twM0E9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArUWNpRUFZVTFiUHNtT2lVRVk0WmxIMmxPMk5ISG1OT3JVWnBua1VkaWV3SElZVzcwVGNzUkFCekViUUJhMC9zSEJ5eW1EZzY4M2tWQUd1YkRlY09OST0KWC1SZWNlaXZlZDogYnkgMTAuMTA3LjEzMi4xNjcgd2l0aCBTTVRQIGlkIG8zOW1yODY0MDk1NWlvaS4yNDMuMTUwODUzNDczMzkyODsKIEZyaSwgMjAgT2N0IDIwMTcgMTQ6MjU6MzMgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPENBK25Qbk13dGpuWkUtNTNBTjUzeEY9TWY2SFktRmJHWXdaQVV3M0VVS0hBNGVLQjUyUUBtYWlsLmdtYWlsLmNvbT4KIDxvcC55OGU2N29raWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4gPENBRk5DVS04c0UwTTRrcVVGQkQ0MmVBa1JVNEdiNStlaTAxYTNrQWdHeVVxa3Jvd0Z4QUBtYWlsLmdtYWlsLmNvbT4KSW4tUmVwbHktVG86IDxDQUZOQ1UtOHNFME00a3FVRkJENDJlQWtSVTRHYjUrZWkwMWEza0FnR3lVcWtyb3dGeEFAbWFpbC5nbWFpbC5jb20+CkZyb206ID0/VVRGLTg/Qj9VR1YwY2lERm9HbHliMnZEdlE9PT89IDxzaXJva3kucGV0ckBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMjAgT2N0IDIwMTcgMjE6MjU6MjMgKzAwMDAKTWVzc2FnZS1JRDogPENBKz0rTHJMQWM4bUJVOCtqbnJkaUFndjNYSzJoa0RPRCstQlFKMnphMHMteW4yVlEwUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTEzZjI2MWNmMjgxZDEwNTVjMDExY2M0IgoKLS0wMDFhMTEzZjI2MWNmMjgxZDEwNTVjMDExY2M0CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCisxIChub24tYmluZGluZykKClRlc3RlZCB3aXRoIE9yYWNsZUpESyAxLjguMF8xNDQgb24gc2V2ZXJhbCBsYXJnZSBtdWx0aS1tb2R1bGUgcHJvamVjdHMuIE5vCmlzc3VlIGZvdW5kLgoKUGV0cgoKT24gRnJpLCBPY3QgMjAsIDIwMTcgYXQgOTo0NiBQTSBBcm5hdWQgSD1DMz1BOXJpdGllciA8YWhlcml0aWVyQGdtYWlsLmNvbT4gPQp3cm90ZToKCj4gKzEgZm9yIG1lIHRvbwo+IFVzZWQgaXQgd2l0aCBubyBpc3N1ZSAoYnV0IG15IHVzYWdlcyBhcmUgbGltaXRlZCkKPgo+IE9uIEZyaSwgT2N0IDIwLCAyMDE3IGF0IDg6MzQgUE0sIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KPiB3cm90ZToKPgo+ID4gKzEKPiA+Cj4gPgo+ID4gT24gV2VkLCAxOCBPY3QgMjAxNyAxMjo1MDo0MyArMDIwMCwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+Cj4gPiBIaSwKPiA+Pgo+ID4+IFdlIHNvbHZlZCAyNiBpc3N1ZXM6Cj4gPj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3ZlcnNpCj4gPj4gb249M0QxMjMzODk2NCZzdHlsZU5hbWU9M0RUZXh0JnByb2plY3RJZD0zRDEyMzE2OTIyCj4gPj4KPiA+PiBUaGVyZSBhcmUgMzU3IGlzc3VlcyBsZWZ0IGluIEpJUkEgZm9yIE1hdmVuIGNvcmU6Cj4gPj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUzRCUKPiA+PiAyME1ORyUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlMjBCWSUKPiA+PiAyMGR1ZSUyMEFTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMGNyZWF0ZWQlMjBBU0MKPiA+Pgo+ID4+IFN0YWdpbmcgcmVwbzoKPiA+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzczLwo+ID4+Cj4gPj4gVGhlIGRpc3RyaWJ1dGFibGUgYmluYXJpZXMgYW5kIHNvdXJjZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4gPj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3Cj4gPj4gMy9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi8KPiA+Pgo+ID4+IFNwZWNpZmljYWxseSB0aGUgemlwLCB0YXJiYWxsIGFuZCBzb3VyY2UgYXJjaGl2ZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4gPj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3Cj4gPj4gMy9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItYmluLnppcAo+ID4+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNwo+ID4+IDMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvYXBhY2hlLW1hdmVuLTMuNS4yLWJpbi50YXIuZ3oKPiA+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzcKPiA+PiAzL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yL2FwYWNoZS1tYXZlbi0zLjUuMi1zcmMuemlwCj4gPj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3Cj4gPj4gMy9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItc3JjLnRhci5nego+ID4+Cj4gPj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gPj4gYXBhY2hlLW1hdmVuLTMuNS4yLXNyYy50YXIuZ3ogc2hhMTogOTdkNmQ3YjE4NDg1Yjc5MDZkZDdmMzEzY2RkNDExCj4gPj4gOTFkMTZkZGU0Ngo+ID4+IGFwYWNoZS1tYXZlbi0zLjUuMi1zcmMuemlwOiBzaGExOiBkYzhjYWE1Y2RhY2I0MDA5NDNkMjQ5MWEwMjBmNzQKPiA+PiAyYTUxOGU4ZjA4Cj4gPj4KPiA+PiBHaXQgdGFnOgo+ID4+IGh0dHBzOi8vZ2l0LXdpcC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPTNEbWF2ZW4uZ2l0O2E9M0Rjb21taXQKPiA+PiA7aD0zRDEzOGVkZDYxZmQxMDBlYzY1OGJmYTJkMzA3YzQzYjc2OTQwYTVkN2QKPiA+Pgo+ID4+IFN0YWdpbmcgc2l0ZToKPiA+PiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvY29tcG9uZW50cy9yZWYvMy1MQVRFU1QvCj4gPj4KPiA+PiBWb3RlIG9wZW4gZm9yIDcyIGhvdXJzLgo+ID4+Cj4gPj4gWyBdICsxCj4gPj4gWyBdICswCj4gPj4gWyBdIC0xCj4gPj4KPiA+PiBUaGFua3MsCj4gPj4KPiA+PiBTdGVwaGVuLgo+ID4+Cj4gPgo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4KPiA+Cj4KPgo+IC0tCj4gLS0tLS0KPiBBcm5hdWQgSD1DMz1BOXJpdGllcgo+IGh0dHA6Ly9haGVyaXRpZXIubmV0Cj4gTWFpbC9HVGFsazogYWhlcml0aWVyIEFUIGdtYWlsIERPVCBjb20KPiBUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyCj4KCi0tMDAxYTExM2YyNjFjZjI4MWQxMDU1YzAxMWNjNC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MDI2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBTZXAgMTQgMTI6NDE6MTcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDI2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEFCRjAxMUFEOTEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAxNCBTZXAgMjAxNyAxMjo0MToxNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDgzNDI4IGludm9rZWQgYnkgdWlkIDUwMCk7IDE0IFNlcCAyMDE3IDEyOjQxOjE3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MzM1OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNCBTZXAgMjAxNyAxMjo0MToxNyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgzMzQzIGludm9rZWQgYnkgdWlkIDk5KTsgMTQgU2VwIDIwMTcgMTI6NDE6MTYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDE0IFNlcCAyMDE3IDEyOjQxOjE2ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgN0UzRENENjAxNQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMTQgU2VwIDIwMTcgMTI6NDE6MTYgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjg3OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjg3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgc2dJX01Zbll6ZDd5IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVGh1LCAxNCBTZXAgMjAxNyAxMjo0MToxNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLWl0MC1mNDIuZ29vZ2xlLmNvbSAobWFpbC1pdDAtZjQyLmdvb2dsZS5jb20gWzIwOS44NS4yMTQuNDJdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMzYwQjQ2MEQ5OQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMTQgU2VwIDIwMTcgMTI6NDE6MTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtaXQwLWY0Mi5nb29nbGUuY29tIHdpdGggU01UUCBpZCA4NXNvMTExMTdpdGguMgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDE0IFNlcCAyMDE3IDA1OjQxOjE1IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPURENDhWd0tFTzVKN3htbW1pd243Y0lqNzJDMW5MbjBzUVBVMU1HV3VCNjg9OwogICAgICAgIGI9dDQrcll3OHVQQ0dkWmN6NnlPWEpNN0ZTZkFoWjI5aHVrRGFWc2YyVk1QQkI3QzM2MDlFYWVZVFpNSytiQUgzVHNTCiAgICAgICAgIG5IZnhRRmc4S2lCUXA0YzA2NUI4Z01SaXowb3hnVFJ1MUYxTUVBMmpuaGFTRG1zRGtNUmZoODNQcnhmMXFPYmJQT2EyCiAgICAgICAgIFkrWWN2VXBqcEYva1pHQXlWb0JHNUVnZUtoMjg0d1NmeksxcmVpK3VCVzRRaUdXVGthS3RDbTlkRDc4ZjlHK0NXbmRRCiAgICAgICAgIEphcFRWZ2w0WUxVdmJzaU5XQ2ppb1c4TnV0dDFQL2UzcEt2N2Zyb1d3SFQ5bUVhU2pmKzN2dFVKMzJ0Zzgzd0d5SVdjCiAgICAgICAgIFQwRmZ5M25OM09pUWZkaTdRWWFSeTRXWTR0Y01iWG9sQUN5c0hQT2N1aWU0SmZZU3lhb0QwR3ZKajd2bnpmTWNhYkRiCiAgICAgICAgIHRUM3c9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPURENDhWd0tFTzVKN3htbW1pd243Y0lqNzJDMW5MbjBzUVBVMU1HV3VCNjg9OwogICAgICAgIGI9ZTVCK2ZpNXRpQmM3djgvR0lYbjFsOGlxQ2lkdjJ2RHh3WG9pVmJrVHhYaU8zQmwvYVA4cFloQTRQWUdxdFpLRTkrCiAgICAgICAgIEs1YitCTnVRcHJHVzVrV2VWcjZjK2RON01vSU1EYzJBZHRRaXlSUHFQYVBjYlpkTC8xSkk3c1RBZU43MDAyZGNMeE5RCiAgICAgICAgIFl4OVFjRitFRENMUUx4UjR5TGtaT2trc2hpOXFRNGhseHAwWFlocEd2eEVtdzRONm9zeEJaU0hMajBkU1E1N3lwOUFPCiAgICAgICAgIFhpRXpKOUJMbHFLRGMwV0sweGtNWXE1QllpMTV4UjJEZGdMVGZGMm0xL0hSZ25qdUdURm56WEJRclQxRTNTb0VoR1VHCiAgICAgICAgIEEwMm1ENU1JeDZpaE5KeTlXU0NIN3hjQk1JR3FWZHlRdkE5Mk1xVWprOUpLWWhvaXp0NS9laFpJUkUxUVRHVDVCcC9CCiAgICAgICAgIGE2V0E9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWdwS0FQNzFBZGZRNW9oK2FWMnpKR2FJcVlKeUNMalhFSDhlRFdIN0g5RHRTWUtBMENtCglBWEx6NFNYUU9DWUxTWjI4UEZHRXU2MmxTemlQZHZZVHBCaC8zZnpzTUE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQTlwMnEzRkhONnpzeFFFNlZQbGQxRGx2UGM3ZGR5WHBsMDUxSjJyM1lZVWZSZXFCZUdILzVKWnY2aGxOaDVabGl1SjlLQWdRTlhQQUZDMlBZaFk5Zz0KWC1SZWNlaXZlZDogYnkgMTAuMzYuMTg5LjE0IHdpdGggU01UUCBpZCB4MTRtcjI3MjM3NzBpdGUuMzAuMTUwNTM5Mjg3NDQxMjsKIFRodSwgMTQgU2VwIDIwMTcgMDU6NDE6MTQgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPENBK25Qbk14eUcyTmVQWHBWcWF3ZTlqUj1pdEhFVDZVdWRuTjlDakhodj1vby1LQ3J4d0BtYWlsLmdtYWlsLmNvbT4KIDxDQUZOQ1UtLTJ2cmQ1QmVUdmt4S0N5WDJaUWVQcWl4N1g9d21Wc1dkTTVkNDlYZU5nT3dAbWFpbC5nbWFpbC5jb20+CiA8RjcwNTdFMUItNDMxMy00RDdCLThFRjEtOTkzNDFERDFFMUQwQHRhbGlvcy5jb20+IDxDQStuUG5Nd1VxbUJ1cmF0RDFDcGs9TDl0QUN3Xytxb3Ryc1VwQ3FkcVJaWG1XWGdpVEFAbWFpbC5nbWFpbC5jb20+CiA8QjE0OEM5NjctMTY5NS00NUMyLUExNUYtMUZGRjkwM0JDQjUwQHRhbGlvcy5jb20+IDw3NEMxMjdCMC1GNzA3LTRCQkEtQTJDMS1ENTdFNjBDOUMwRkNAdGFsaW9zLmNvbT4KIDxGQUFEREUxNC1DMzc4LTREM0QtOEFFRS05QUM4Q0NGOTE3ODNAdGFsaW9zLmNvbT4gPENBTFlHbTF5OVRNeEFBaWhuaTdrYm89MnJodW4yeHQ0Rjh4ME15a05Ma0J0dHY3R2lId0BtYWlsLmdtYWlsLmNvbT4KIDxDQStuUG5Nem1rUSs4Wml2VHlCQWJuai01eFE0Q3N4VWlhMWRMbWlmM21IOTdqMEFKekFAbWFpbC5nbWFpbC5jb20+CkluLVJlcGx5LVRvOiA8Q0ErblBuTXpta1ErOFppdlR5QkFibmotNXhRNENzeFVpYTFkTG1pZjNtSDk3ajBBSnpBQG1haWwuZ21haWwuY29tPgpGcm9tOiA9P1VURi04P0I/VUdWMGNpREZvR2x5YjJ2RHZRPT0/PSA8c2lyb2t5LnBldHJAZ21haWwuY29tPgpEYXRlOiBUaHUsIDE0IFNlcCAyMDE3IDEyOjQxOjAzICswMDAwCk1lc3NhZ2UtSUQ6IDxDQSs9K0xyTE89RmM9WllOVG80aDJHZHlpTWF3dGRxVlh1MGJibTJ0V3hBY0R6eUpUemdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iOTRlYjJjMTljMjEyODZlOGE0MDU1OTI1OTczMiIKCi0tOTRlYjJjMTljMjEyODZlOGE0MDU1OTI1OTczMgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpIZWxsbywKCkkgYW0gc2VlaW5nIGEgKHByb2JhYmx5KSBzaW1pbGFyIGlzc3VlIHdpdGggb3VyIGN1c3RvbSBwbHVnaW4uCgpTZWUgdGhlIHJlcHJvZHVjZXI6Cmh0dHBzOi8vZ2l0aHViLmNvbS9wc2lyb2t5L3JlcHJvZHVjZXJzL3RyZWUvbXZuMzUxLWtpZS1tYXZlbi1wbHVnaW4gKHdvcmtzCmZpbmUgd2l0aCBtYXZlbiAzLjUuMCwgYnV0IGZhaWxzIHdpdGggTlBFIHdpdGggdGhlIFJDIG9mIG1hdmVuIDMuNS4xKS4KCkkgYW0gbm90IHlldCBzdXJlIGlmIHRoZSBwbHVnaW4gaXMganVzdCBkb2luZyBzb21ldGhpbmcgaXQncyBub3Qgc3VwcG9zZWQKdG8sIG9yIGlmIHRoaXMgaXMgYSByZWdyZXNzaW9uIGluIG1hdmVuIGl0c2VsZi4gSSdsbCB3aWxsIHRha2UgYSBkZWVwZXIKbG9vay4KClBldHIKCk9uIFRodSwgU2VwIDE0LCAyMDE3IGF0IDE6NTMgUE0gU3RlcGhlbiBDb25ub2xseSA8CnN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgoKPiBPbiAxNCBTZXB0ZW1iZXIgMjAxNyBhdCAwNDo0MywgTWFyayBEZXJyaWN1dHQgPG1hcmtAdGFsaW9zLmNvbT4gd3JvdGU6Cj4KPiA+ID4gKzIgbm9uLWJpbmRpbmcgZnJvbSBNYXJrIQo+ID4KPiA+IEkgd2FzIGRpc2N1c3NpbmcgdGhpcyB3aXRoIGEgY293b3JrZXIgYW5kIGhlIG1hZGUgdGhlIGNvbW1lbnQgdGhhdCBpZgo+IHRoaXMKPiA+IGNoYW5nZSBjb3VsZCBicmVhayBNb2pvcywgbWF5YmUgaXQgc2hvdWxkbid0IGJlIGluIGEgcG9pbnQgcmVsZWFzZSAtCj4gd2hhdHMKPiA+IHRoZSBwb2xpY3kgb24gY2hhbmdlcyB0aGF0IG1heSBwb3RlbnRpYWxseSBicmVhayBleGlzdGluZyBwbHVnaW5zPwo+ID4KPgo+IFdlbGwgd2UgbmVlZCB0byBhc3Nlc3MgdGhlIGlzc3VlLiBSaWdodCBub3cgSSBkb24ndCBldmVuIGhhdmUgYSBkZXNjcmlwdGk9Cm9uCj4gb2Ygd2hhdCB3ZW50IHdyb25nLiBBbnkgY2hhbmNlIHlvdSBjb3VsZCBwcm92aWRlIGEgcmVwbGljYXRpb24uLi4gb3IgbWFpbAo+IG1lIGRpcmVjdGx5IGlmIHlvdSBjYW5ub3Qgc2hhcmUgaXQgcHVibGljYWxseSBhbmQgSSBtYXkgYmUgYWJsZSB0byBwcm9kdWM9CmUKPiBhIG1pbmltYWwgcmVwcm9kdWN0aW9uIGZyb20gaXQuCj4KPiBJZiB0aGlzIGJyZWFrcyBhIG1vam8gdGhhdCB3YXMgZG9pbmcgc29tZXRoaW5nIHdyb25nIGluIHRoZSBmaXJzdCBwbGFjZSwKPiB3ZWxsIHRoYXQgd2lsbCBub3Qgc3RvcCAzLjUuMS4uLiBPVE9IIGlmIHRoaXMgZXhwb3NlcyBhIGJ1ZyBpbiB0aGUgaXNzdWUKPiAiZml4ZWQiIHRoZW4gSSdkIGxpa2VseSByZXZlcnQgYW5kIHJlc3Bpbi4KPgo+IFdlIHJlYWxseSBuZWVkIGEgcmVwcm9kdWNlciBmaXJzdC4KPgo+Cj4gPgo+ID4gLS0KPiA+ICJHcmVhdCBhcnRpc3RzIGFyZSBleHRyZW1lbHkgc2VsZmlzaCBhbmQgYXJyb2dhbnQgdGhpbmdzIiA9RTI9ODA9OTQgU3RlPQp2ZW4KPiBXaWxzb24sCj4gPiBQb3JjdXBpbmUgVHJlZQo+ID4KPiA+IE9uIFRodSwgU2VwIDE0LCAyMDE3IGF0IDEwOjI5IEFNLCBNYXJrIERlcnJpY3V0dCA8bWFya0B0YWxpb3MuY29tPgo+IHdyb3RlOgo+ID4KPiA+ID4gT24gMTQgU2VwIDIwMTcsIGF0IDEwOjI2LCBNYXJrIERlcnJpY3V0dCB3cm90ZToKPiA+ID4KPiA+ID4gQ2FsbGluZyAtMiBmb3Igdm90ZSBpZiBub3QgdG9vIGxhdGUuCj4gPiA+Cj4gPiA+IEFjdHVhbGx5IC0gbG9va2luZyBhdCB0aGUgY29tbWl0IGRpZmYsIEkgc2VlIGluIG91ciBjb2RlIHdlIGRpZCBoYXZlCj4gPiA+IDxleHRlbnNpb25zPnRydWU8L2V4dGVuc2lvbnM+IGZvciB0aGUgamFzbWluZS1tYXZlbi1wbHVnaW4gd2hpY2ggd2UKPiBkb24ndAo+ID4gPiBhY3R1YWxseSBuZWVkLiBSZW1vdmluZyB0aGF0IGZyb20gdGhlIG1vam8gZGVmaW5pdGlvbiBhbmQgcnVubmluZyBteQo+ID4gYnVpbGQKPiA+ID4gd2l0aCB0aGUgc3RhZ2VkIDMuNS4xIHJlbGVhc2UgYW5kIGV2ZXJ5dGhpbmcgYnVpbGRzIGZpbmUuCj4gPiA+Cj4gPiA+ICsyIG5vbi1iaW5kaW5nIGZyb20gTWFyayEKPiA+ID4KPiA+ID4gTWFyawo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4KPiA+ID4gIlRoZSBlYXNlIHdpdGggd2hpY2ggYSBjaGFuZ2UgY2FuIGJlIGltcGxlbWVudGVkIGhhcyBubyByZWxldmFuY2UgYXQKPiBhbGwKPiA+ID4gdG8gd2hldGhlciBpdCBpcyB0aGUgcmlnaHQgY2hhbmdlIGZvciB0aGUgKEphdmEpIFBsYXRmb3JtIGZvciBhbGwKPiB0aW1lLiIKPiA+ID1FMj04MD05NAo+ID4gPiBNYXJrIFJlaW5ob2xkLgo+ID4gPgo+ID4gPiBNYXJrIERlcnJpY3V0dAo+ID4gPiBodHRwOi8vd3d3LnRoZW9yeWlucHJhY3RpY2UubmV0Cj4gPiA+IGh0dHA6Ly93d3cuY2hhbGljZW9mYmxvb2QubmV0Cj4gPiA+IGh0dHA6Ly9wbHVzLmdvb2dsZS5jb20vK01hcmtEZXJyaWN1dHQKPiA+ID4gaHR0cDovL3R3aXR0ZXIuY29tL3RhbGlvcwo+ID4gPiBodHRwOi8vZmFjZWJvb2suY29tL21kZXJyaWN1dHQKPiA+ID4KPiA+Cj4KCi0tOTRlYjJjMTljMjEyODZlOGE0MDU1OTI1OTczMi0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MjY4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBPY3QgMjAgMDQ6MDg6MTUgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjY4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDBBRjYxQzgxNgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDIwIE9jdCAyMDE3IDA0OjA4OjE1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDc2OTIgaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgT2N0IDIwMTcgMDQ6MDg6MTQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ3NTc5IGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIE9jdCAyMDE3IDA0OjA4OjE0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDc1NTYgaW52b2tlZCBieSB1aWQgOTkpOyAyMCBPY3QgMjAxNyAwNDowODoxMyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMjAgT2N0IDIwMTcgMDQ6MDg6MTMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAyNjc1QTFBMTAzODsKCUZyaSwgMjAgT2N0IDIwMTcgMDQ6MDg6MTMgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjE4ClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MS4xOCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUtBTV9BU0NJSV9ESVZJREVSUz0wLjgsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxLCBVUklCTF9CTE9DS0VEPTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEhob0FlcjhhX2FjTDsgRnJpLCAyMCBPY3QgMjAxNyAwNDowODoxMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLWl0MC1mNDUuZ29vZ2xlLmNvbSAobWFpbC1pdDAtZjQ1Lmdvb2dsZS5jb20gWzIwOS44NS4yMTQuNDVdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMkUxNjk1RkJCMDsKCUZyaSwgMjAgT2N0IDIwMTcgMDQ6MDg6MTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtaXQwLWY0NS5nb29nbGUuY29tIHdpdGggU01UUCBpZCBuMTk1c28xMjY5MTIxNGl0Zy4wOwogICAgICAgIFRodSwgMTkgT2N0IDIwMTcgMjE6MDg6MTAgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG8KICAgICAgICAgOmNjOmNvbnRlbnQtdHJhbnNmZXItZW5jb2Rpbmc7CiAgICAgICAgYmg9Wm1VMERHTHd4WmNobVlsOHltODZOZjY2NzBPVjhaZTdROGFzV2wrNVBHRT07CiAgICAgICAgYj1QdUd6ai9ZS1lxRW5xcTVIdFRNOWM3ZGNyNVV0TngwNjJ5MWlhaC9YWUpnU3gzSU1XZGN3UlBnaHpvR3dsZ0hQT0UKICAgICAgICAgck0ySGsraG9ONi91MGJyelkvSkhOOTVTNjluMWNFOG9Xc242MWtHZDl0MUEvU2wzK1F4eitSRFhDbmYxRUREVGtnSTcKICAgICAgICAgNlJ1Tkk5NGhHQ3FvYlFsamdtbTJEbEkyS1hGT0VvUUNwYXRIRG00R3FMbnpxVklEeGtLazMxSTIzNzgzYmdweENkRHIKICAgICAgICAgQk5ORXJCY3Fwb0t0a3V0VUwwU1JkOE4rMC9GR0dUTjFQd0tPL0FCREQrMkRkaTgxbXNQeUcreHJSTzlrMjFsKytnMVoKICAgICAgICAgWlVRcjBkY2lNS250aTY3eGt6RUZTSVlqU0xtT0U1SEUyc0VpTmtKTjgxLzYrblMyZG1FZmxkNGtzNWdNenVpQjkzdksKICAgICAgICAgdllDUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG86Y2M6Y29udGVudC10cmFuc2Zlci1lbmNvZGluZzsKICAgICAgICBiaD1abVUwREdMd3haY2htWWw4eW04Nk5mNjY3ME9WOFplN1E4YXNXbCs1UEdFPTsKICAgICAgICBiPVpZMUdpRjl4Wk5SZFpJVnFzQTJlbUZMMU8rR0FiVzJlY29WcjVFQnJ4TDFBWlZTR0VKTHN1NUhlNHV0RlpyUFNxLwogICAgICAgICBWbWU0bHcvZlVkSHlJeHd6Zjg1d3E2RlJOa2FkSldUellpMU5ORldKR0lzVlNoeURaWkRIWHJTR3l3aGplWUNISlhHYwogICAgICAgICBDNm5LNFVvUGNUUHhEME1ad2Q2YjdzdnFHVFBMQUUrWnd4QS8zSXN6M3RrUlhmanhrUC9Lb2U2ZjRtQ0JYQllvTms3RwogICAgICAgICB3NDJWeENseHZBOHpkQkJweUVpZ0wvYW9nalZWMHA4Vlg0ejlRdTVEajlSU2dSeVk1N0QvUU9jWDExRlo3R29BOWFRQgogICAgICAgICBja1lod2pvWXJkTWRPelB3TElBNmxOZjNZSEYwVHFzREYxT1lXeVpOZnZIOFh4VEhJcVV1Q1ozSGpSeXBObklJdGFyTgogICAgICAgICBnODFBPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FXd2lJN3dkNDAyYjAwR2syNVdSTEo3NnEwVkRGaG9MdWY5aG00YSttbU85Zzd3MFRaNAoJZEhEcWx1bk8zVCt3SWNaSzI1MFV2aFVFNG45RHlTc291Qmp6YURKeXNRPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFCaFFwK1MySW1SNkZBZ1NCWjBTK0o2Uy9Dc3pnS3o5U0QvK1NrU3VRcmI4ekltVmdwQTg3ZGNOc3RDT05mMm40bjZ5ZW9lNmJGaDlIS1E4bW5iUUE3NHBINUk9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjM2LjI0MS43NyB3aXRoIFNNVFAgaWQgcTEzbXI3MDE3MTVpdGkuMTIzLjE1MDg0NzI0ODg2Nzk7CiBUaHUsIDE5IE9jdCAyMDE3IDIxOjA4OjA4IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xMDcuMTYyLjE0NSB3aXRoIEhUVFA7IFRodSwgMTkgT2N0IDIwMTcgMjE6MDc6MjggLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxDQUptYnM4ang2ZkJGRGhESnRkbUwxTk1EK28rblBpV245SGdyUithU1JhZGRYLVA0d3dAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQUpSdkZkby0zM1pmeGlGc0p3amlHUUpNWVQ1bXUzMWZxRDFmX3UzRlVRVG9Kdj1UdWdAbWFpbC5nbWFpbC5jb20+CiA8ODYyMzAxMy40cTJCVHJWWTMyQGdpZ2E+IDxDQUptYnM4ang2ZkJGRGhESnRkbUwxTk1EK28rblBpV245SGdyUithU1JhZGRYLVA0d3dAbWFpbC5nbWFpbC5jb20+CkZyb206IEJpbmR1bCBCaG93bWlrIDxiaW5kdWxiaG93bWlrQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAxOSBPY3QgMjAxNyAyMTowNzoyOCAtMDcwMApNZXNzYWdlLUlEOiA8Q0ErRzM1TzNtWUhYTHVNRDl3UDFaWG5nNjQtOGc1d3c9eGQ3RGs0RTcxWVpZZE5HQmRBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogTWF2ZW4gRG9ja2VyIEltYWdlcwpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ2M6IE1hdmVuIFVzZXJzIExpc3QgPHVzZXJzQG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCk1heGltLAoKT24gVGh1LCBPY3QgMTksIDIwMTcgYXQgNzo1NCBQTSwgTWF4aW0gU29sb2Rvdm5payA8c29sb21heDY2NkBnbWFpbC5jb20+IHdyPQpvdGU6Cj4KPiBIZWxsbywKPgo+IGhlcmUgaXMgdGhlIHBsYWNlIGZvciBBcGFjaGUgZG9ja2VyIGltYWdlcyBtYW5hZ2VkIGJ5IGluZnJhIGFuZCBBcGFjaGUKPiBwcm9qZWN0cyBodHRwczovL2JpbnRyYXkuY29tL2FwYWNoZS8gOikKCj5Gcm9tIHdoYXQgSSBoYXZlIHNlZW4sIHdoaWxlIHRoZXJlIGFyZSA0IHByb2plY3RzIHdpdGggZG9ja2VyCnJlcG9zaXRvcmllcyBvbiBiaW50cmF5LCB0aGVyZSBzZWVtIHRvIGJlIGEgbG90IG1vcmUgYXQgZG9ja2VyaHViIFsxXS4KSSBkaWQgYSBxdWljayBzZWFyY2ggb24gSU5GUkEgSklSQSBhbmQgZm91bmQgdGhhdCBpbmZyYSBoYXMgc2V0IGEgZmV3CnByb2plY3RzIHVwIG9uIGRvY2tlcmh1YiByZWNlbnRseSBbMl0sIGZvciBleGFtcGxlIElORlJBLTE0NzU2IFszXSBmb3IKYm9va2tlZXBlci4KCkJpbmR1bAoKWzFdIGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9hcGFjaGUvClsyXSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9M0Rjb21wb25lbnQlMjAlM0QlMjBEb2NrZXIlMj0KMEFORCUyMHByb2plY3QlMjAlM0QlMjBJTkZSQQpbM10gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9JTkZSQS0xNDc1NgoKPgo+IE9uIEZyaSwgT2N0IDIwLCAyMDE3IGF0IDEyOjMwIEFNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS49CmZyPgo+IHdyb3RlOgo+Cj4gPiBncmVhdCBpZGVhCj4gPgo+ID4gb2ssIHdlIG5lZWQgYSBnaXQgcmVwbyBhdCBBU0YKPiA+Cj4gPiB3aGF0IGVsc2U/Cj4gPiBJcyB0aGVyZSBzb21lIHNvcnQgb2YgcmVsZWFzZSBwcm9jZXNzPyBzb21lIHNvcnQgb2Ygc291cmNlIHRvIHJlbGVhc2U/Cj4gPgo+ID4gUmVnYXJkcywKPiA+Cj4gPiBIZXJ2PUMzPUE5Cj4gPgo+ID4gTGUgamV1ZGkgMTkgb2N0b2JyZSAyMDE3LCAxMzo0Nzo0NSBDRVNUIE1pa2UgRHJvYiBhID1DMz1BOWNyaXQgOgo+ID4gPiBUaGFua3MgZm9yIHRoZSBwb2ludGVyLCBDYXJsb3MhIEkgaGFkIHNlYXJjaGVkIHRoZSBhcmNoaXZlcywgYnV0IG1heWI9CmUgSQo+ID4gPiBkaWRuJ3QgZ28gYmFjayBmYXIgZW5vdWdoLgo+ID4gPgo+ID4gPiBJIHRoaW5rIG1vdmluZyB0aGVzZSBEb2NrZXJmaWxlcyBpbnRvIGFuIEFTRiByZXBvIHdvdWxkIGJlIGdyZWF0IGZvcgo+ID4gdGhlaXIKPiA+ID4gbWFpbnRhaW5hYmlsaXR5Lgo+ID4gPgo+ID4gPiBUaGFua3MsCj4gPiA+Cj4gPiA+IE1pa2UKPiA+ID4KPiA+ID4gT24gMjAxNy0xMC0xOSAwMzo1MCwgQ2FybG9zIFNhbmNoZXogPGMuLi5AYXBhY2hlLm9yZz4gd3JvdGU6Cj4gPiA+ID4gQXJuYXVkIGlzIGNvcnJlY3QsIEkgc2VudCBhbiBlbWFpbCB0byB1c2Vyc0AgYmFjayBvbiBGcmksIE5vdiA3LAo+ID4gMjAxNCw+Cj4gPiA+ID4gMDA6MjMgd2hlbiBJIGNyZWF0ZWQgdGhlIGltYWdlPgo+ID4gPiA+Cj4gPiA+ID4KPiA+ID4gPiBPbiBUaHUsIE9jdCAxOSwgMjAxNywgMTE6MTIgQXJuYXVkIEg9RUY9QkY9QkRyaXRpZXIgPGFoLi4uQGdtYWlsLmNvPQptPiB3cm90ZTo+Cj4gPiA+ID4KPiA+ID4gPiA+IFRoZXNlIGltYWdlcyBhcmUga2luZGx5IG1hbmFnZWQgYnkgYSBQTUMgbWVtYmVyIG9mIG91ciBwcm9qZWN0Cj4gPiAoQ2FybG9zKQo+ID4gPgo+ID4gPiBidXQ+Cj4gPiA+Cj4gPiA+ID4gPiB5ZXMgdGhleSBhcmVuJ3QgbWFuYWdlZCBkaXJlY3RseSBieSB0aGUgcHJvamVjdD4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBXZSBjYW4gZWFzaWx5IHNlZSB3aXRoIGhpbSB0byBpbXByb3ZlIHRoaXMgSU1PLj4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBXaGVuIGhlIHN0YXJ0ZWQgdGhhdCAoc2V2ZXJhbCB5ZWFycyBhZ28pIERvY2tlciB3YXNuJ3Qgd2hhdCBpdCBpcwo+ID4gPgo+ID4gPiBub3dhZGF5cy4+Cj4gPiA+Cj4gPiA+ID4gPiBXaXRoIGRvY2tlciBiZWluZyBtYWluc3RyZWFtIEkgYWdyZWUgdGhhdCB3ZSBjYW4gcmVjb25zaWRlciB0aGlzLj0KPgo+ID4gPiA+ID4KPiA+ID4gPiA+IFRoZSBkb2NrZXIgaW1hZ2UgYnVpbGQvZGlzdHJpYnV0aW9uIGNvdWxkIHBlcmhhcHMgYmUgcGFydCBvZiBvdXIKPiA+ID4KPiA+ID4gcmVsZWFzZT4KPiA+ID4KPiA+ID4gPiA+IHByb2Nlc3MuPgo+ID4gPiA+ID4KPiA+ID4gPiA+IFdEWVQgQ2FybG9zID8+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gT24gVGh1LCBPY3QgMTksIDIwMTcgYXQgNDoxNiBBTSwgTWlrZSBEcm9iIDxtZC4uLkBhcGFjaGUub3JnPgo+ID4gd3JvdGU6Pgo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gSSBndWVzcyB0aGUgbmF0dXJhbCBmb2xsb3ctb24gcXVlc3Rpb24gaXMgd2hldGhlciB0aGUgTWF2ZW4KPiA+ID4KPiA+ID4gY29tbXVuaXR5Pgo+ID4gPgo+ID4gPiA+ID4gPiB3b3VsZCBjb25zaWRlciBwdWJsaXNoaW5nIGFuIG9mZmljaWFsIHNldCBvZiBpbWFnZXM/IE9yCj4gPiA+Cj4gPiA+IGFsdGVybmF0aXZlbHk+Cj4gPiA+Cj4gPiA+ID4gPiA+IHdoZXRoZXIgdGhleSBzaG91bGQgc2VuZCBhIHRha2Vkb3duIG5vdGljZSB0byBwcm90ZWN0IHRoZWlyIGJyYT0KbmQKPiA+ID4KPiA+ID4gYW5kPgo+ID4gPgo+ID4gPiA+ID4gPiB0cmFkZW1hcmtzLi4uPgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBPbiAyMDE3LTEwLTE4IDE4OjM2LCAiTWFuZnJlZCBNb3NlciIgPG1hLi4uQHNpbXBsaWdpbGl0eS5jb20+Cj4gPiB3cm90ZTo+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gTm8uIEFzIHlvdSBjYW4gc2VlIGZyb20gdGhlIGdpdGh1YiBVUkwgdGhpcyBpcyBOT1QgYW4gYXBhY2hlCj4gPiBVUkwuPgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2Nhcmxvc3NnL2RvY2tlci1tYXZlbj4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gTWlrZSBEcm9iIHdyb3RlIG9uIDIwMTctMTAtMTggMTY6MzI6Pgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBIZWxsbyw+Cj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gQXJlIHRoZSBpbWFnZXMgYXQgaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL18vbWF2ZW4vCj4gPiBjb25zaWRlcmVkIHRvCj4gPiA+Cj4gPiA+IGJlPgo+ID4gPgo+ID4gPiA+ID4gPiBvZmZpY2lhbD4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IG1hdmVuIGRvY2tlciBpbWFnZXMgYW5kIGJsZXNzZWQvcHVibGlzaGVkIGJ5IHRoZSBQTUM/Pgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IFRoYW5rcyw+Cj4gPiA+ID4gPiA+ID4gPiBNaWtlPgo+ID4gPgo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cj4KPiA+ID4KPiA+ID4gPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IHVzZXJzLXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Cj4gPiA+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS5vcj0KZz4KPiA+ID4KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQo+Cj4gPiA+Cj4gPiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogdXNlcnMtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KPiA+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Cj4gPiA+Cj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KPgo+ID4gPgo+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgo+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gLS0+Cj4gPiA+ID4gPiAtLS0tLT4KPiA+ID4gPiA+IEFybmF1ZCBIPUVGPUJGPUJEcml0aWVyPgo+ID4gPiA+ID4gaHR0cDovL2FoZXJpdGllci5uZXQ+Cj4gPiA+ID4gPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbT4KPiA+ID4gPiA+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXI+Cj4gPgo+ID4KPiA+Cj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IHVzZXJzLXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IHVzZXJzLWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4KPiA+Cj4KPgo+IC0tCj4gV0JSCj4gTWF4aW0gYWthIHNvbG9tYXgKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDc2NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gRGVjIDEwIDEyOjE1OjQwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDc2NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3NUVDRTEwMTUyCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMTAgRGVjIDIwMTcgMTI6MTU6NDAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3MTQzMyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBEZWMgMjAxNyAxMjoxNTo0MCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzEzMjYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgRGVjIDIwMTcgMTI6MTU6NDAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MTMxNCBpbnZva2VkIGJ5IHVpZCA5OSk7IDEwIERlYyAyMDE3IDEyOjE1OjM5IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxMCBEZWMgMjAxNyAxMjoxNTozOSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDRGQzczMTgwOUYwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBEZWMgMjAxNyAxMTo1ODoxNCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDEuODc5ClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MS44NzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCA2ckNnenk4b0h0TlcgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sIDEwIERlYyAyMDE3IDExOjU4OjEyICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd20wLWY0My5nb29nbGUuY29tIChtYWlsLXdtMC1mNDMuZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjQzXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEEwNjIxNUYyNTEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIERlYyAyMDE3IDExOjU4OjExICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNDMuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgZjlzbzk2MjQxNzd3bWguMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIERlYyAyMDE3IDAzOjU4OjExIC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXNaMzVDN2tsV1BPTW1vTVBGTzB4Yk9EUmtXanJmd1N3R0FXRVJDVGZNSE09OwogICAgICAgIGI9bERaUkwrdURvekYwa3F0d0tsTDcvTk9jU0ZyMnVPaDN4cEhJUHFmai8rNkpWRzJZZlRoTUdROUZrbXZBMnJOclZVCiAgICAgICAgIDdMSjZud2ZESElVVUx1YWNXNEUyQmgzMWI0am8rTGt1d2F6V1g1ZWxIVm1DQjNGY0lXTitlTGlGeWlxc1M5V0dTUWcyCiAgICAgICAgIE5rZVNTN2Q5enViaC9kSUx2dS91bDJsS2hhdmVkNVVZb2EyVVBQNm0rMjlZMXhqZW8wbTBweFlHMEZNa1pIWXNQeXNmCiAgICAgICAgIDRWZWVYMHBBWUV6R210RlFpV08rWFcrN25MaDRBR3B3NXVoS3hnZWtveG0vQ0hyKy92YUFKdFlMSmRBcjg0cTZQSlB5CiAgICAgICAgIHUrZndUeXRGTEVTdTRPU2FYVmg4TWNBTVRMemt2WFdHTkh0UC9VLyszSHhaUXhMai96QWc4b2JOaGtiS2xGZ3ZDT2JXCiAgICAgICAgIGMrMkE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXNaMzVDN2tsV1BPTW1vTVBGTzB4Yk9EUmtXanJmd1N3R0FXRVJDVGZNSE09OwogICAgICAgIGI9T0xSdzFvV21MR25obGQ2SG41MG55Vlp1UFVQQzlTS3BuWHZPMTZPYU4rVDNObTMvY29JTU9tT2RyYlAvdFl5enBkCiAgICAgICAgIEEySzlnWnBHbldURDU2bUpGUVk5OFZoRVpOTTE4ZG1lNmNCemFSUU9TMVZoR2JKOElJdUFJMGswcGhFRHhYVXBXUXIvCiAgICAgICAgIC9wU2xwamNOYjllTFBIc2N4WFVEa0wvdzRkZzBvZ080bklqTXllTDRCY3kyOTR3MUVMa25tZmhXNnFESkZaNm5SME52CiAgICAgICAgIFh4cGYyL0xPdG1HTnE1VS8xNGZML2s5UGFRVWZrZ3ZjSzF2akppZjAzeWl5NEZKTFpreTNVVkk2akE3bU1TSHF3TXFhCiAgICAgICAgIE5nbkducUtleW9kK05FYVJpbkRmZVgzRlp4Q29jWUFkcnBkaDVTNDRvdk92eWV5eC8xb0RnWGprNzQ4NTVKWUxnYlNzCiAgICAgICAgIGRaTEE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFLR0IzbUo1b3V2eG54TkRJNzJYejVEaGgySlA3MXhmcVZoQTh0Q1YvUFRhNnJpTFdWZm0rcm5FCgk5WnlQSms1NnpwRUlCVmcxcUlYb3k0M29BN2Y1ejI2ZzFUWVBFWmZNOGc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUdzNHpNWkFGL1V5c1VPNTNCMUpEU2ZJMTVOdlVLSG9DVkhIQ1V3ZXdQbGhFSVp5bjJjZWZ3WGsxMmRGN2F6STNUekFLSlJ0TVYwQkEva3UwWE1ZcXRwTks4az0KWC1SZWNlaXZlZDogYnkgMTAuMjguMTUwLjIwIHdpdGggU01UUCBpZCB5MjBtcjc2OTkzNzl3bWQuMTE4LjE1MTI5MDcwODUxMjI7CiBTdW4sIDEwIERlYyAyMDE3IDAzOjU4OjA1IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDwyNzUzMDQwLjhTMTVzbGo3WjVAZ2lnYT4gPG9wLnphMHpvNmcza2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgpJbi1SZXBseS1UbzogPG9wLnphMHpvNmcza2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBTdW4sIDEwIERlYyAyMDE3IDExOjU3OjU0ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5Ndy12b3J4ZjgtNnpmOF8zWnVOVldRMlJzcFgxOTEtRy09ZC1fRTVTWU1xbmdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBtZXJnaW5nIE1ORy02MzA4IGRpc3BsYXkgcGFja2FnaW5nClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTRiM2M5NDYzMTE2NzA1NWZmYjIxYjAiCgotLTAwMWExMTRiM2M5NDYzMTE2NzA1NWZmYjIxYjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gU3VuIDEwIERlYyAyMDE3IGF0IDEwOjA2LCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+IHdyb3RlOgoKPiBJIHN0aWxsIHRoaW5rIGl0IGlzIHVnbHkgdG8gdXNlIHRoZSBIUiBmb3IgdGhpcyBraW5kIG9mIGluZm8uCgoKSSB0aGluayB0aGUgSFIgdXNlIHdpdGggc3BhY2UgKm5vdCBbXSBpcyBhIGJlYXV0aWZ1bCBzb2x1dGlvbgoKCj4gSWYgeW91ICpyZWFsbHkqIHdhbnQgdGhpcyBpbmZvLCBJJ2QgcHJlZmVyIGEgbmV3IGxpbmUsIG9mZmVyaW5nIG1vcmUgc3BhYz0KZQo+IGZvciBhZGRpdGlvbmFsIGluZm8uCgoKVWdoIG5vLi4uIGJ1aWxkIGxvZyBoYXMgdG9vIG1hbnkgbGluZXMgYXMgaXMKCgo+IE90aGVyIG9wdGlvbiBpcyB0byBsZWF2ZSBpdCBhcyBpdCBpcy4gSWYgZGV2ZWxvcGVycyB3YW50IGl0LCB0aGV5IGNhbiBwdXQKPiBpdCBpbiB0aGUgbmFtZS4KPgo+IFNvIC0xIGZvciBtZS4KCgorMSBmcm9tIG1lCgoKPgo+IFJvYmVydAo+Cj4KPiBPbiBTdW4sIDEwIERlYyAyMDE3IDExOjAxOjQxICswMTAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlPQplLmZyPgo+IHdyb3RlOgo+Cj4gPiBpcyB0aGVyZSBhIHNlY29uZGVyIGZvciB0aGlzIGVuaGFuY2VtZW50Pwo+ID4KPiA+IENJOgo+ID4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi0zLngtamVua2luc2ZpbGU9Ci8KPiA+IGpvYi9NTkctNjMwOF9kaXNwbGF5X3BhY2thZ2luZy8KPiA+Cj4gPiBKaXJhIGlzc3VlOiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MzA4Cj4gPgo+ID4gUmVnYXJkcywKPiA+Cj4gPiBIZXJ2PUMzPUE5Cj4gPgo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPiAtLQpTZW50IGZyb20gbXkgcGhvbmUKCi0tMDAxYTExNGIzYzk0NjMxMTY3MDU1ZmZiMjFiMC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0Njg3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBOb3YgMzAgMjE6NTk6NTggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0Njg3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDA5MzEzMTBEQjcKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAzMCBOb3YgMjAxNyAyMTo1OTo1OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDkxMzcxIGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIE5vdiAyMDE3IDIxOjU5OjU3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MTI5OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMCBOb3YgMjAxNyAyMTo1OTo1NyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkxMjg2IGludm9rZWQgYnkgdWlkIDk5KTsgMzAgTm92IDIwMTcgMjE6NTk6NTcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDMwIE5vdiAyMDE3IDIxOjU5OjU3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQkY4NjhDMDAyNgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMzAgTm92IDIwMTcgMjE6NTk6NTYgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjA3OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjA3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQl9XQU1fRlJPTV9OQU1FX1NJTkdMRVdPUkQ9MC4yLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIG1BRnFKWnZVVEVQbSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVRodSwgMzAgTm92IDIwMTcgMjE6NTk6NTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13bTAtZjQ4Lmdvb2dsZS5jb20gKG1haWwtd20wLWY0OC5nb29nbGUuY29tIFs3NC4xMjUuODIuNDhdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgODY1N0M1RjU2NgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMzAgTm92IDIwMTcgMjE6NTk6NTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd20wLWY0OC5nb29nbGUuY29tIHdpdGggU01UUCBpZCByNzhzbzI5OTI4MXdtZS41CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMzAgTm92IDIwMTcgMTM6NTk6NTUgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXliUWN3Qlg4TEk0YjhoWFllNTA3SmdnSDVDak84SG1nZ1lRRHpnL1VqaHc9OwogICAgICAgIGI9YkhRcnNwQjJZcnVjWEtObmluTDVLdHhtdzU0bzdTenJsYmdpczlFMTJlVWUzYzVjWER0cjBIMjVjNEtjaGJXUlJwCiAgICAgICAgIGdGd3lDWGVZdkg5ZVphWWxCS281Z2hUcnFwLzlXQm1nSFFIa080K0pBK09kb2RzTFdFYTNYVnZKZVhzTFJQemhSdjJnCiAgICAgICAgIFJiMWlYd0ROeWY4SEpXT0JoRWc3NWM2UXpob05PV0VveGdjOVptSDlTQWk2bjNhMEZoOU5pc09tandRRzAvQmJsUG55CiAgICAgICAgIENNMlMyUkU1U0JYb0Z4QmowakV2VDlSTllPaGgyUm9iaDVrQ01HU2hhclVqNHFiQlR1a1Uvd2QzK0ZQd1QyZDZkdXdCCiAgICAgICAgIGdjV1RxSkw0V3lMTGg0Q3lROEIreEpxbGhDa1ZSa3dPVlNWTDNPQ3BFT3hCZDNQUk5KdjR5VkQ4TTRkV3F1YmN2RVZqCiAgICAgICAgIC9BeXc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXliUWN3Qlg4TEk0YjhoWFllNTA3SmdnSDVDak84SG1nZ1lRRHpnL1VqaHc9OwogICAgICAgIGI9cmp6Vk5YRTFZN0VNVEdRR2MxME1yZDg1K2NtbXJoZlR3YkNDUnZaUWhnK0xodVRTcXV4VFFTUmh0anJyMFZpM1RaCiAgICAgICAgICtlWTR2cVdrWmVTMlJyQmp0aUtEU2liOUV4MlR5MGJEK01pS0taOG53bkxSMFhzK2xHL2hsd2czenY1MlBGQVl4RllhCiAgICAgICAgIHBvNnkxcmtDakU3SWcrbkpBdXFWUzVVMTQ0Y2xyTFlMWWh2SkJUblBEdGlJU0ppTnZOWUlkMW1TRzZPNnRoMWRzM3hhCiAgICAgICAgIGR0elc0N0dHRFV6dnJodkhmM001SVFiTEFnZ1FqUVJzc2hEcTZKUkRTTEh4RVM4YVkveDZuaUh5Tzh3Znpmb2tlaUZSCiAgICAgICAgIExwVzQ5Y0t3QkdVK2YwdjlWSFd0UkdKSDNicUN2UE91NlpsU2d6ZXIwWk9HaHlKS3JNYjUxRlBTeEJDbm5Ob1hzdVIxCiAgICAgICAgIFhaNWc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDdLdEs0UUtVYm9VaGRnYWwvM29Pc1RaeHIrTkpIYWJLajlpanhQWjgrL041eHlDRWZiCglqZTJwM1d3dWlieC9RNUJKOGpQWE0rS3h2VTRrMG1YK0Z0U3oxNjh3UExBeApYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUdzNHpNWTVlVFBRdEVDQWl6WDB6eXJiNmljYVpSaUxsWXd5Z0RVVFgydjNSYzNTWm9sZERmSFQ1V2d3eDUycUF1dUUwNk9QUit6SlYwcXdqSVJjY0FUNmRHOD0KWC1SZWNlaXZlZDogYnkgMTAuMjguMTcwLjc1IHdpdGggU01UUCBpZCB0NzJtcjE1ODU3ODl3bWUuMTUuMTUxMjA3OTE5NDk4ODsKIFRodSwgMzAgTm92IDIwMTcgMTM6NTk6NTQgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xNzMuMjM1IHdpdGggSFRUUDsgVGh1LCAzMCBOb3YgMjAxNyAxMzo1OTo1NCAtMDgwMCAoUFNUKQpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBUaHUsIDMwIE5vdiAyMDE3IDIxOjU5OjU0ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NdzBzV2cxb0pQOVA1VG5ycWJncFFTY1dlQTBtOFppMlNhOE1DYjAxZ2U5V3dAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJFIHN3aXRjaGluZyBzdXJlZmlyZSB0byB0aGUgc3RhbmRhcmQgYnVpbGQKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDQzNDdjNGEyNDIzMDU1ZjNhNWZkNSIKCi0tMDAxYTExNDQzNDdjNGEyNDIzMDU1ZjNhNWZkNQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy9qb2IvbWF2ZW4td2lwL2pvYi9tYXZlbi1zdXJlZmlyZS9qb2IvbmV3LWplbmtpbnNmaWxlLwp0byBzZWUgd2hhdCBpdCdzIGxpa2UuCgpXZSBjYW4gbG9vayBpbnRvIGFkZGluZyBqYWNvY28gcmVwb3J0aW5nIHRvIHRoZSBzdGFuZGFyZCBidWlsZCBpZiBpdCBpcwpzZWVuIGFzIGltcG9ydGFudAoKLS0wMDFhMTE0NDM0N2M0YTI0MjMwNTVmM2E1ZmQ1LS0KCkZyb20gZGV2LXJldHVybi0xMjQ3MDgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IERlYyAgMiAxMToyNjoxMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3MDgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNUJDMTcxNzVEMQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICAyIERlYyAyMDE3IDExOjI2OjEwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjg1NjkgaW52b2tlZCBieSB1aWQgNTAwKTsgMiBEZWMgMjAxNyAxMToyNjoxMCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjg0NzAgaW52b2tlZCBieSB1aWQgNTAwKTsgMiBEZWMgMjAxNyAxMToyNjoxMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI4NDU4IGludm9rZWQgYnkgdWlkIDk5KTsgMiBEZWMgMjAxNyAxMToyNjowOSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDIgRGVjIDIwMTcgMTE6MjY6MDkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA5MzA1RTE4MDcwMQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDIgRGVjIDIwMTcgMTE6MjY6MDggKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjA5OQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjA5OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBvYmNySTQxamdPYWkgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsICAyIERlYyAyMDE3IDExOjI1OjU0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd3IwLWYxNzUuZ29vZ2xlLmNvbSAobWFpbC13cjAtZjE3NS5nb29nbGUuY29tIFsyMDkuODUuMTI4LjE3NV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA4QjMxOTVGNThDCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgMiBEZWMgMjAxNyAxMToyNTo1MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13cjAtZjE3NS5nb29nbGUuY29tIHdpdGggU01UUCBpZCB5MjFzbzEyNTI3OTg1d3JjLjEKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAwMiBEZWMgMjAxNyAwMzoyNTo1MyAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1VZ0FxUDhmd3pYRmhZcVgrQ0lENktlT1NXbnJuK2RPU0wranBtSk9OcllBPTsKICAgICAgICBiPWo1NHVQVlVMangwNktFYy9hVGRjQURxQ25qbWhIbEw1UDZVYTBOQ2d6U0NPUzRTNUN3aE1PVFRhazk5TkFEQU5segogICAgICAgICAyWU9Hbnl6UGdPdFRqMTVrNmp1T2twbjZiZDNnS0pOd21JT0kzdXJpS0RsUCtIQy82ZHR5WnFUQkxkS042MWRIUXFBaQogICAgICAgICB2dmRxcXVqMUZNcUVaMVoxQ1dsWGYxK3NMRW5hNjdYeXR0UjFkTWo3TnhKNVJReUFkQTF5ckZ1bWFXSjBoWVFXK0NrWgogICAgICAgICA0MTd3QU5lMWpPZzBTYnV2OVM4aDYxZUVodGFUMDBZMUZPbEVJOFgxNEN2WHdJTE9rSm9GbEVJbEJKZENHVzlsOXVHdQogICAgICAgICB1WU1VOFpaTHl0TnZqb3NBY1h1OGMvL2YrcWhIVm05RWFJWDkwNkJnQlRjZmUzL1pyZWkyZ3pnbURlZXJpUzlpcUNXOQogICAgICAgICA1TGlBPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1VZ0FxUDhmd3pYRmhZcVgrQ0lENktlT1NXbnJuK2RPU0wranBtSk9OcllBPTsKICAgICAgICBiPWUrVXhFMHpvYzNYR1daK2dxajRmRHhKd2xYQ3BOcHBHdXUyWHdDdE5jam5QY2kyb3ZINzYzQzA1cnlnYm1WaHJlZgogICAgICAgICBWOGgxQ2VMSVRGWnJDVDVzVUlDcS9FOHplUDZHZCtmemVoVzcyK2xHVExLZVlkR2tZQVhzZzNuS1NGbG5iS2VYSVd5NQogICAgICAgICBaSC95OWM1OWJuMmgzN3V6c1JNY3lsc0grR2VFcUVhcldPWjBKVmdUMjdma3hpVmZGMzd0U0xKeHg3TXVFVTNhbEpMTAogICAgICAgICBZZ3BsSk1Uc1ZTWitDdElrTmFkbENlWkpLMFNEYUpERW1XZTd1ZkdKN2xLNm80OS8yZ2tXaStpdkFGSk5YdXQzY29hdAogICAgICAgICBWNWVtcGVmZHlBcVJGbHAySFdYTzNYTlh2cVB5anNqK3BCQ3AwWUhvUjZrQ2RpTUNiMXVxYU8xSnNTanBhSVhXVmJsTwogICAgICAgICBVNGtnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg3OEJxcWRIaGxXNlVUTmZtZTJxa0toZWRQQW1yRU5zdVhOWm1JeU9jYmtuTjBZUURoQgoJalJxTkZUTVJObEdaV2IzR3h5NEdnczlDME02ME9nVlV6UDk2OXNITG1nPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TWJmNUY4NExVOGZ6U1laS2hxOHpxVTNWcnNaMm5hWDB4SmtiTTRLRFZYbkhPa0RtWURselQ2NUJjSkt5WWdoYWhHWXBYclpsdi9RRGxUZE9obHhHaGc9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xNzEuMTc3IHdpdGggU01UUCBpZCBzNDZtcjc2OTg5Nzl3cmMuMTk0LjE1MTIyMTM5NDYyNDk7CiBTYXQsIDAyIERlYyAyMDE3IDAzOjI1OjQ2IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDwyMDI3NTc2Njg5Ljg3Ni4xNTExOTQ4MjY1NzAwLkphdmFNYWlsLmplbmtpbnNAamVua2lucy1tYXN0ZXIuYXBhY2hlLm9yZz4KIDwxNDA4NzQwOTUuMTI1NS4xNTEyMjEyMjc0ODcwLkphdmFNYWlsLmplbmtpbnNAamVua2lucy1tYXN0ZXIuYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDwxNDA4NzQwOTUuMTI1NS4xNTEyMjEyMjc0ODcwLkphdmFNYWlsLmplbmtpbnNAamVua2lucy1tYXN0ZXIuYXBhY2hlLm9yZz4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAwMiBEZWMgMjAxNyAxMToyNTozNSArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXcxKzV0bkFtZkc0KzBlOWtodDY1WWhweEpNbUJzY2hOcitHWGtjMnZFTnZRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiA9P1VURi04P1E/UmU9M0FfQnVpbGRfZmFpbGVkX2luX0plbmtpbnM9M0FfTWF2ZW5fVExQXz1DMj1CQl9tYXZlbj0yRHJlbGU/PQoJPT9VVEYtOD9RP2FzZV89QzI9QkJfbWFzdGVyXz0yMzM/PQpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTEzYzJmZGExNzM2ZDUwNTVmNTliZjY2IgoKLS0wMDFhMTEzYzJmZGExNzM2ZDUwNTVmNTliZjY2CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkhlcmU9RTI9ODA9OTlzIHRoZSBmYWlsdXJlLiBJZiB0cmFjaW5nIHRoZSByb290IGNhdXNlIHVzdWFsbHkgYmVzdCB0byBsb29rID0KYXQKdGhlIHBpcGVsaW5lIHN0ZXBzIHZpZXcgb2YgYSBidWlsZCBhcyB0aGF0IGxldHMgeW91IHNlZSB0aGUgaW5kaXZpZHVhbApzdGVwPUUyPTgwPTk5cyBsb2cKCgpbRVJST1JdIEZhaWxlZCB0byBleGVjdXRlIGdvYWwKb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zOm1hdmVuLWNvbXBpbGVyLXBsdWdpbjozLjI6Y29tcGlsZQooZGVmYXVsdC1jb21waWxlKSBvbiBwcm9qZWN0IG1hdmVuLXJlbGVhc2UtbWFuYWdlcjogQ29tcGlsYXRpb24KZmFpbHVyZVtFUlJPUl0gL2hvbWUvamVua2lucy9qZW5raW5zLXNsYXZlL3dvcmtzcGFjZS9lbi1ib3hfbWF2ZW4tcmVsZWFzZV9tPQphc3Rlci1PQ0tHVUxRQkNaNjdWQktKN0hGNkU3S1pVQ0tYN1pDNkZYNjRHSDY2T0hQN0E0VkFRQklRL20vbWF2ZW4tcmVsZWFzZS09Cm1hbmFnZXIvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3NoYXJlZC9yZWxlYXNlL3BoYXNlL0NoZWNrb3V0UHJvamVjdD0KRnJvbVNjbS5qYXZhOlsyMTgsNDddCm5vIHN1aXRhYmxlIG1ldGhvZCBmb3VuZCBmb3IKY2hlY2tPdXQob3JnLmFwYWNoZS5tYXZlbi5zY20ucmVwb3NpdG9yeS5TY21SZXBvc2l0b3J5LG9yZy5hcGFjaGUubWF2ZW4uc2NtPQouU2NtRmlsZVNldCxvcmcuYXBhY2hlLm1hdmVuLnNjbS5TY21UYWcsb3JnLmFwYWNoZS5tYXZlbi5zY20uQ29tbWFuZFBhcmFtZXQ9CmVycylbRVJST1JdCiAgICBtZXRob2Qgb3JnLmFwYWNoZS5tYXZlbi5zY20ucHJvdmlkZXIuU2NtUHJvdmlkZXIuY2hlY2tPdXQob3JnLmFwYWNoZS5tYT0KdmVuLnNjbS5yZXBvc2l0b3J5LlNjbVJlcG9zaXRvcnksb3JnLmFwYWNoZS5tYXZlbi5zY20uU2NtRmlsZVNldCxvcmcuYXBhY2hlPQoubWF2ZW4uc2NtLlNjbVZlcnNpb24sYm9vbGVhbikKaXMgbm90IGFwcGxpY2FibGVbRVJST1JdICAgICAgIChhY3R1YWwgYXJndW1lbnQKb3JnLmFwYWNoZS5tYXZlbi5zY20uQ29tbWFuZFBhcmFtZXRlcnMgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBib29sZWFuCmJ5IG1ldGhvZCBpbnZvY2F0aW9uIGNvbnZlcnNpb24pW0VSUk9SXSAgICAgbWV0aG9kCm9yZy5hcGFjaGUubWF2ZW4uc2NtLnByb3ZpZGVyLlNjbVByb3ZpZGVyLmNoZWNrT3V0KG9yZy5hcGFjaGUubWF2ZW4uc2NtLnJlcD0Kb3NpdG9yeS5TY21SZXBvc2l0b3J5LG9yZy5hcGFjaGUubWF2ZW4uc2NtLlNjbUZpbGVTZXQsYm9vbGVhbikKaXMgbm90IGFwcGxpY2FibGVbRVJST1JdICAgICAgIChhY3R1YWwgYW5kIGZvcm1hbCBhcmd1bWVudCBsaXN0cwpkaWZmZXIgaW4gbGVuZ3RoKVtFUlJPUl0gICAgIG1ldGhvZApvcmcuYXBhY2hlLm1hdmVuLnNjbS5wcm92aWRlci5TY21Qcm92aWRlci5jaGVja091dChvcmcuYXBhY2hlLm1hdmVuLnNjbS5yZXA9Cm9zaXRvcnkuU2NtUmVwb3NpdG9yeSxvcmcuYXBhY2hlLm1hdmVuLnNjbS5TY21GaWxlU2V0LGphdmEubGFuZy5TdHJpbmcsYm9vbD0KZWFuKQppcyBub3QgYXBwbGljYWJsZVtFUlJPUl0gICAgICAgKGFjdHVhbCBhcmd1bWVudApvcmcuYXBhY2hlLm1hdmVuLnNjbS5TY21UYWcgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBqYXZhLmxhbmcuU3RyaW5nIGJ5Cm1ldGhvZCBpbnZvY2F0aW9uIGNvbnZlcnNpb24pW0VSUk9SXSAgICAgbWV0aG9kCm9yZy5hcGFjaGUubWF2ZW4uc2NtLnByb3ZpZGVyLlNjbVByb3ZpZGVyLmNoZWNrT3V0KG9yZy5hcGFjaGUubWF2ZW4uc2NtLnJlcD0Kb3NpdG9yeS5TY21SZXBvc2l0b3J5LG9yZy5hcGFjaGUubWF2ZW4uc2NtLlNjbUZpbGVTZXQsb3JnLmFwYWNoZS5tYXZlbi5zY20uPQpTY21WZXJzaW9uKQppcyBub3QgYXBwbGljYWJsZVtFUlJPUl0gICAgICAgKGFjdHVhbCBhbmQgZm9ybWFsIGFyZ3VtZW50IGxpc3RzCmRpZmZlciBpbiBsZW5ndGgpW0VSUk9SXSAgICAgbWV0aG9kCm9yZy5hcGFjaGUubWF2ZW4uc2NtLnByb3ZpZGVyLlNjbVByb3ZpZGVyLmNoZWNrT3V0KG9yZy5hcGFjaGUubWF2ZW4uc2NtLnJlcD0Kb3NpdG9yeS5TY21SZXBvc2l0b3J5LG9yZy5hcGFjaGUubWF2ZW4uc2NtLlNjbUZpbGVTZXQpCmlzIG5vdCBhcHBsaWNhYmxlW0VSUk9SXSAgICAgICAoYWN0dWFsIGFuZCBmb3JtYWwgYXJndW1lbnQgbGlzdHMKZGlmZmVyIGluIGxlbmd0aClbRVJST1JdICAgICBtZXRob2QKb3JnLmFwYWNoZS5tYXZlbi5zY20ucHJvdmlkZXIuU2NtUHJvdmlkZXIuY2hlY2tPdXQob3JnLmFwYWNoZS5tYXZlbi5zY20ucmVwPQpvc2l0b3J5LlNjbVJlcG9zaXRvcnksb3JnLmFwYWNoZS5tYXZlbi5zY20uU2NtRmlsZVNldCxqYXZhLmxhbmcuU3RyaW5nKQppcyBub3QgYXBwbGljYWJsZVtFUlJPUl0gICAgICAgKGFjdHVhbCBhbmQgZm9ybWFsIGFyZ3VtZW50IGxpc3RzCmRpZmZlciBpbiBsZW5ndGgpW0VSUk9SXSAtPiBbSGVscCAxXVtFUlJPUl0gW0VSUk9SXSBUbyBzZWUgdGhlIGZ1bGwKc3RhY2sgdHJhY2Ugb2YgdGhlIGVycm9ycywgcmUtcnVuIE1hdmVuIHdpdGggdGhlIC1lIHN3aXRjaC5bRVJST1JdClJlLXJ1biBNYXZlbiB1c2luZyB0aGUgLVggc3dpdGNoIHRvIGVuYWJsZSBmdWxsIGRlYnVnIGxvZ2dpbmcuW0VSUk9SXQpbRVJST1JdIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlcnJvcnMgYW5kIHBvc3NpYmxlIHNvbHV0aW9ucywKcGxlYXNlIHJlYWQgdGhlIGZvbGxvd2luZyBhcnRpY2xlczoKCgoKT24gU2F0IDIgRGVjIDIwMTcgYXQgMTA6NTgsIEFwYWNoZSBKZW5raW5zIFNlcnZlciA8amVua2luc0BidWlsZHMuYXBhY2hlLm9yPQpnPgp3cm90ZToKCj4gU2VlCj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy9qb2IvbWF2ZW4tYm94L2pvYi9tYXZlbi1yZWxlYXNlL2pvYi9tYXN0ZXIvMy8KPgo+IENoYW5nZXM6Cj4KPiAqIHRlc3RpbmcgZW1haWxleHQgdGVtcGxhdGVzCj4gKiB0ZXN0aW5nIGVtYWlsZXh0IHRlbXBsYXRlcwo+ICogdHdlYWtzCj4gKiBkZWJ1Z2dpbmcKPiAqIGZvcm1hdHRpbmcKPiAqIEZvcm1hdHRpbmcKPiAqIHRyeWluZyB0byBkZWJ1ZyBmYWlsaW5nIGJ1aWxkIGlzc3VlCj4gKiBtb3JlIHNhZmV0eQo+ICogQWRkIGxpY2Vuc2UgaGVhZGVycwo+ICogW0pFTktJTlMtMzQzNzZdIFdvcmthcm91bmQgSmVua2lucyBpc3N1ZSB0byBkZXRlY3QgYWJvcnRlZCBidWlsZHMgYmV0dGU9CnIKPiAqIE1vcmUgdHdlYWtpbmcuLi4gZmZzIHBpcGVsaW5lIHlvdSBkb24ndCBtYWtlIGl0IGVhc3kgdG8gZ2V0IHRoZSBhY3R1YWwKPiAqIEFsbG93IGZhaWxpbmcgdGVzdHMgdG8gYmUgcmVjb3JkZWQgYXMgdW5zdGFibGUgYnVpbGQKPiAqIEVuc3VyZSB0aGUgZW1haWwgb24gZmFpbHVyZSBpcyBhbHdheXMgc2VudCBpZiB3ZSBzdGFydCB0aGUgYnVpbGQKPiAqIE5vIG5lZWQgdG8gY29sbGVjdCBmaW5kYnVncyBldGMgb24gYW55dGhpbmcgb3RoZXIgdGhhbiB0aGUgZmlyc3QKPiAqIHN5bnRheAo+ICogc3ludGF4IGFnYWluCj4gKiBBbGxvdyAnamRrJyBvciAnamRrcycKPiAqIEJldHRlciByZXBvcnQgY29sbGVjdGlvbiBvcHRpbWl6YXRpb24KPiAqIHN5bnRheCBmdHcKPiAqIHN5bnRheCB0YWtlIDUKPiAqIGJ1aWxkIHRoZSBjb21tYW5kIGxpbmUgaW4gbW9yZSBleHRlbnNpYmxlIHdheQo+ICogQWhhXCEgZmlyc3Qgd2FzIGJlaW5nIGV2YWx1YXRlZCBhZnRlciBhZGRpbmcgdGhlIHRhc2sKPiAqIGNhcHR1cmUgYW5vdGhlcgo+ICogW01SRUxFQVNFLTk5M10gVXNlIHNoYWxsb3cgY2hlY2tvdXQgcGVyIGRlZmF1bHQgKGdpdCBzY20pCj4gKiBbTVJFTEVBU0UtOTkzXSBVc2Ugc2hhbGxvdyBjaGVja291dCBwZXIgZGVmYXVsdCAoZ2l0IHNjbSkKPiAqIFtNUkVMRUFTRS05OTNdIFVzZSBzaGFsbG93IGNoZWNrb3V0IHBlciBkZWZhdWx0IChnaXQgc2NtKQo+ICogW01SRUxFQVNFLTk5M10gVXNlIHNoYWxsb3cgY2hlY2tvdXQgcGVyIGRlZmF1bHQgKGdpdCBzY20pCj4gKiBbTVJFTEVBU0UtOTkzXSBVc2Ugc2hhbGxvdyBjaGVja291dCBwZXIgZGVmYXVsdCAoZ2l0IHNjbSkKPiAqIFtNUkVMRUFTRS05OTNdIFVzZSBzaGFsbG93IGNoZWNrb3V0IHBlciBkZWZhdWx0IChnaXQgc2NtKQo+Cj4gTm8gdGVzdHMgcmFuLgo+Cj4gQnVpbGQgbG9nOgo+IFsuLi50cnVuY2F0ZWQgMS43NiBNQi4uLl0KPiBbbGludXgtamRrOV0gW0lORk9dIENoYW5nZXMgZGV0ZWN0ZWQgLSByZWNvbXBpbGluZyB0aGUgbW9kdWxlIQo+IFtsaW51eC1qZGs5XSBbSU5GT10gQ29tcGlsaW5nIDEwMyBzb3VyY2UgZmlsZXMgdG8KPiAvaG9tZS9qZW5raW5zL2plbmtpbnMtc2xhdmUvd29ya3NwYWNlL2VuLWJveF9tYXZlbi1yZWxlYXNlX21hc3Rlci1PQ0tHVUxRPQpCQ1o2N1ZCS0o3SEY2RTdLWlVDS1g3WkM2Rlg2NEdINjZPSFA3QTRWQVFCSVEvbS9tYXZlbi1yZWxlYXNlLW1hbmFnZXIvdGFyZ2U9CnQvY2xhc3Nlcwo+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS1wcm89CnZpZGVyLWN2c2V4ZS8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXItY3ZzZXhlLTEuOS42LTIwMTcxMjAxLjIzMjY0Nj0KLTEyLmphcgo+ICgzMSBrQiBhdCA2MyBrQi9zKQo+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuL3NjbS9tYXZlbi1zY20tcHJvPQp2aWRlci1jdnNqYXZhLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlci1jdnNqYXZhLTEuOS42LTIwMTcxMjAxLjIzMjY9CjUxLTEyLmphcgo+IFt3aW5kb3dzLWpkazkKPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi9zY20vbWF2ZW4tc2NtLXByPQpvdmlkZXItY3ZzamF2YS8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXItY3ZzamF2YS0xLjkuNi0yMDE3MTIwMS4yMzI9CjY1MS0xMi5qYXIlNUJ3aW5kb3dzLWpkazk+XQo+IFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS1wcm89CnZpZGVyLWJhemFhci8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXItYmF6YWFyLTEuOS42LTIwMTcxMjAxLjIzMjYyOT0KLTEyLmphcgo+ICg1NyBrQiBhdCAxMDcga0IvcykKPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi9zY20vbWF2ZW4tc2NtLXBybz0KdmlkZXItZ2l0ZXhlLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlci1naXRleGUtMS45LjYtMjAxNzEyMDEuMjMyNzA5PQotMTIuamFyCj4gW3dpbmRvd3MtamRrOQo+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuL3NjbS9tYXZlbi1zY20tcHI9Cm92aWRlci1naXRleGUvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLXByb3ZpZGVyLWdpdGV4ZS0xLjkuNi0yMDE3MTIwMS4yMzI3MD0KOS0xMi5qYXIlNUJ3aW5kb3dzLWpkazk+XQo+IFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS1wcm89CnZpZGVyLWFjY3VyZXYvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLXByb3ZpZGVyLWFjY3VyZXYtMS45LjYtMjAxNzEyMDEuMjMyNj0KMjMtMTIuamFyCj4gKDk3IGtCIGF0IDE1OCBrQi9zKQo+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS1wcm89CnZpZGVyLWN2cy1jb21tb25zLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlci1jdnMtY29tbW9ucy0xLjkuNi0yMDE3MT0KMjAxLjIzMjY0MC0xMi5qYXIKPiAoNzgga0IgYXQgMTI4IGtCL3MpCj4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS1wcm89CnZpZGVyLWdpdC1jb21tb25zLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlci1naXQtY29tbW9ucy0xLjkuNi0yMDE3MT0KMjAxLjIzMjcwMy0xMi5qYXIKPiBbd2luZG93cy1qZGs5Cj4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS1wcj0Kb3ZpZGVyLWdpdC1jb21tb25zLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlci1naXQtY29tbW9ucy0xLjkuNi0yMDE3PQoxMjAxLjIzMjcwMy0xMi5qYXIlNUJ3aW5kb3dzLWpkazk+XQo+IFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuL3NjbS9tYXZlbi1zY20tcHJvPQp2aWRlci1qZ2l0LzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlci1qZ2l0LTEuOS42LTIwMTcxMjAxLjIzMjczOS0xMi49Cmphcgo+IFt3aW5kb3dzLWpkazkKPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi9zY20vbWF2ZW4tc2NtLXByPQpvdmlkZXItamdpdC8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXItamdpdC0xLjkuNi0yMDE3MTIwMS4yMzI3MzktMTI9Ci5qYXIlNUJ3aW5kb3dzLWpkazk+XQo+IFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS1wcm89CnZpZGVyLWNsZWFyY2FzZS8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXItY2xlYXJjYXNlLTEuOS42LTIwMTcxMjAxLj0KMjMyNjM0LTEyLmphcgo+ICg3MCBrQiBhdCAxMTQga0IvcykKPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi9zY20vbWF2ZW4tc2NtLXBybz0KdmlkZXItaGcvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLXByb3ZpZGVyLWhnLTEuOS42LTIwMTcxMjAxLjIzMjcyMS0xMi5qYXIKPiBbd2luZG93cy1qZGs5Cj4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS1wcj0Kb3ZpZGVyLWhnLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlci1oZy0xLjkuNi0yMDE3MTIwMS4yMzI3MjEtMTIuamFyPQolNUJ3aW5kb3dzLWpkazk+XQo+IFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS1wcm89CnZpZGVyLWN2c2phdmEvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLXByb3ZpZGVyLWN2c2phdmEtMS45LjYtMjAxNzEyMDEuMjMyNj0KNTEtMTIuamFyCj4gKDQ1IGtCIGF0IDQ0IGtCL3MpCj4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS1wcm89CnZpZGVyLXBlcmZvcmNlLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlci1wZXJmb3JjZS0xLjkuNi0yMDE3MTIwMS4yMz0KMjgwMC0xMi5qYXIKPiBbd2luZG93cy1qZGs5Cj4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS1wcj0Kb3ZpZGVyLXBlcmZvcmNlLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlci1wZXJmb3JjZS0xLjkuNi0yMDE3MTIwMS4yPQozMjgwMC0xMi5qYXIlNUJ3aW5kb3dzLWpkazk+XQo+IFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS1wcm89CnZpZGVyLWdpdC1jb21tb25zLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlci1naXQtY29tbW9ucy0xLjkuNi0yMDE3MT0KMjAxLjIzMjcwMy0xMi5qYXIKPiAoMzUga0IgYXQgMzMga0IvcykKPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi9zY20vbWF2ZW4tc2NtLXBybz0KdmlkZXItc3RhcnRlYW0vMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLXByb3ZpZGVyLXN0YXJ0ZWFtLTEuOS42LTIwMTcxMjAxLjIzPQoyODA2LTEyLmphcgo+IFt3aW5kb3dzLWpkazkKPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi9zY20vbWF2ZW4tc2NtLXByPQpvdmlkZXItc3RhcnRlYW0vMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLXByb3ZpZGVyLXN0YXJ0ZWFtLTEuOS42LTIwMTcxMjAxLjI9CjMyODA2LTEyLmphciU1QndpbmRvd3MtamRrOT5dCj4gW0lORk9dIERvd25sb2FkZWQ6Cj4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi9zY20vbWF2ZW4tc2NtLXBybz0KdmlkZXItZ2l0ZXhlLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlci1naXRleGUtMS45LjYtMjAxNzEyMDEuMjMyNzA5PQotMTIuamFyCj4gKDY5IGtCIGF0IDY0IGtCL3MpCj4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS1wcm89CnZpZGVyLXN2bmV4ZS8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXItc3ZuZXhlLTEuOS42LTIwMTcxMjAxLjIzMjgxNz0KLTEyLmphcgo+IFt3aW5kb3dzLWpkazkKPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi9zY20vbWF2ZW4tc2NtLXByPQpvdmlkZXItc3ZuZXhlLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlci1zdm5leGUtMS45LjYtMjAxNzEyMDEuMjMyODE9CjctMTIuamFyJTVCd2luZG93cy1qZGs5Pl0KPiBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuL3NjbS9tYXZlbi1zY20tcHJvPQp2aWRlci1oZy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXItaGctMS45LjYtMjAxNzEyMDEuMjMyNzIxLTEyLmphcgo+ICg2OSBrQiBhdCA2MCBrQi9zKQo+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuL3NjbS9tYXZlbi1zY20tcHJvPQp2aWRlci1zeW5lcmd5LzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlci1zeW5lcmd5LTEuOS42LTIwMTcxMjAxLjIzMjg9CjI5LTEyLmphcgo+IFt3aW5kb3dzLWpkazkKPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi9zY20vbWF2ZW4tc2NtLXByPQpvdmlkZXItc3luZXJneS8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXItc3luZXJneS0xLjkuNi0yMDE3MTIwMS4yMzI9CjgyOS0xMi5qYXIlNUJ3aW5kb3dzLWpkazk+XQo+IFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS1wcm89CnZpZGVyLWpnaXQvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLXByb3ZpZGVyLWpnaXQtMS45LjYtMjAxNzEyMDEuMjMyNzM5LTEyLj0KamFyCj4gKDUzIGtCIGF0IDQ2IGtCL3MpCj4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS1wcm89CnZpZGVyLXZzcy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXItdnNzLTEuOS42LTIwMTcxMjAxLjIzMjg0MS0xMi5qYT0Kcgo+IFtsaW51eC1qZGs3Cj4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS1wcj0Kb3ZpZGVyLXZzcy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXItdnNzLTEuOS42LTIwMTcxMjAxLjIzMjg0MS0xMi5qPQphciU1QmxpbnV4LWpkazc+XQo+IEZhaWxlZCBpbiBicmFuY2ggbGludXgtamRrNwo+IFtsaW51eC1qZGs4XSBbSU5GT10KPiBbbGludXgtamRrOF0gW0lORk9dIC0tLSBtYXZlbi1yZXNvdXJjZXMtcGx1Z2luOjIuNzpyZXNvdXJjZXMKPiAoZGVmYXVsdC1yZXNvdXJjZXMpIEAgbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyIC0tLQo+IFtsaW51eC1qZGs4XSBbSU5GT10gVXNpbmcgJ1VURi04JyBlbmNvZGluZyB0byBjb3B5IGZpbHRlcmVkIHJlc291cmNlcy4KPiBbbGludXgtamRrOF0gW0lORk9dIENvcHlpbmcgMyByZXNvdXJjZXMKPiBbbGludXgtamRrOF0gW0lORk9dIENvcHlpbmcgMyByZXNvdXJjZXMKPiBbbGludXgtamRrOF0gW0lORk9dCj4gW2xpbnV4LWpkazhdIFtJTkZPXSAtLS0gbWF2ZW4tY29tcGlsZXItcGx1Z2luOjMuMjpjb21waWxlCj4gKGRlZmF1bHQtY29tcGlsZSkgQCBtYXZlbi1yZWxlYXNlLW1hbmFnZXIgLS0tCj4gW2xpbnV4LWpkazhdIFtJTkZPXSBDaGFuZ2VzIGRldGVjdGVkIC0gcmVjb21waWxpbmcgdGhlIG1vZHVsZSEKPiBbbGludXgtamRrOF0gW0lORk9dIENvbXBpbGluZyAxMDMgc291cmNlIGZpbGVzIHRvCj4gL2hvbWUvamVua2lucy9qZW5raW5zLXNsYXZlL3dvcmtzcGFjZS9lbi1ib3hfbWF2ZW4tcmVsZWFzZV9tYXN0ZXItT0NLR1VMUT0KQkNaNjdWQktKN0hGNkU3S1pVQ0tYN1pDNkZYNjRHSDY2T0hQN0E0VkFRQklRL20vbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyL3RhcmdlPQp0L2NsYXNzZXMKPiBbbGludXgtamRrOV0gU2VuZGluZyBpbnRlcnJ1cHQgc2lnbmFsIHRvIHByb2Nlc3MKPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuL3NjbS9tYXZlbi1zY20tcHJvPQp2aWRlci1wZXJmb3JjZS8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXItcGVyZm9yY2UtMS45LjYtMjAxNzEyMDEuMjM9CjI4MDAtMTIuamFyCj4gKDg2IGtCIGF0IDU1IGtCL3MpCj4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS1wcm89CnZpZGVyLXRmcy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXItdGZzLTEuOS42LTIwMTcxMjAxLjIzMjgzNS0xMi5qYT0Kcgo+IFt3aW5kb3dzLWpkazkKPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi9zY20vbWF2ZW4tc2NtLXByPQpvdmlkZXItdGZzLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlci10ZnMtMS45LjYtMjAxNzEyMDEuMjMyODM1LTEyLmo9CmFyJTVCd2luZG93cy1qZGs5Pl0KPiBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuL3NjbS9tYXZlbi1zY20tcHJvPQp2aWRlci1zdGFydGVhbS8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXItc3RhcnRlYW0tMS45LjYtMjAxNzEyMDEuMjM9CjI4MDYtMTIuamFyCj4gKDczIGtCIGF0IDQ1IGtCL3MpCj4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS1wcm89CnZpZGVyLWludGVncml0eS8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXItaW50ZWdyaXR5LTEuOS42LTIwMTcxMjAxLj0KMjMyNzI3LTEyLmphcgo+IFt3aW5kb3dzLWpkazkKPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi9zY20vbWF2ZW4tc2NtLXByPQpvdmlkZXItaW50ZWdyaXR5LzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlci1pbnRlZ3JpdHktMS45LjYtMjAxNzEyMDE9Ci4yMzI3MjctMTIuamFyJTVCd2luZG93cy1qZGs5Pl0KPiBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuL3NjbS9tYXZlbi1zY20tcHJvPQp2aWRlci1zdm5leGUvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLXByb3ZpZGVyLXN2bmV4ZS0xLjkuNi0yMDE3MTIwMS4yMzI4MTc9Ci0xMi5qYXIKPiAoODEga0IgYXQgNTAga0IvcykKPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi9zY20vbWF2ZW4tc2NtLXBybz0KdmlkZXItamF6ei8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXItamF6ei0xLjkuNi0yMDE3MTIwMS4yMzI3MzMtMTIuPQpqYXIKPiBbd2luZG93cy1qZGs5Cj4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS1wcj0Kb3ZpZGVyLWphenovMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLXByb3ZpZGVyLWphenotMS45LjYtMjAxNzEyMDEuMjMyNzMzLTEyPQouamFyJTVCd2luZG93cy1qZGs5Pl0KPiBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuL3NjbS9tYXZlbi1zY20tcHJvPQp2aWRlci1zeW5lcmd5LzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlci1zeW5lcmd5LTEuOS42LTIwMTcxMjAxLjIzMjg9CjI5LTEyLmphcgo+ICg2MCBrQiBhdCAzNSBrQi9zKQo+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuL3NjbS9tYXZlbi1zY20tYXBpPQovMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLWFwaS0xLjkuNi0yMDE3MTIwMS4yMzI1NTYtMTIuamFyCj4gW3dpbmRvd3MtamRrOQo+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuL3NjbS9tYXZlbi1zY20tYXA9CmkvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLWFwaS0xLjkuNi0yMDE3MTIwMS4yMzI1NTYtMTIuamFyJTVCd2luZG93cy1qZGs5Pj0KXQo+IFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS1wcm89CnZpZGVyLXZzcy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXItdnNzLTEuOS42LTIwMTcxMjAxLjIzMjg0MS0xMi5qYT0Kcgo+ICg3MiBrQiBhdCA0MiBrQi9zKQo+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuL3NjbS9tYXZlbi1zY20tcHJvPQp2aWRlci1zdm4tY29tbW9ucy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXItc3ZuLWNvbW1vbnMtMS45LjYtMjAxNzE9CjIwMS4yMzI4MTItMTIuamFyCj4gW3dpbmRvd3MtamRrOQo+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuL3NjbS9tYXZlbi1zY20tcHI9Cm92aWRlci1zdm4tY29tbW9ucy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXItc3ZuLWNvbW1vbnMtMS45LjYtMjAxNz0KMTIwMS4yMzI4MTItMTIuamFyJTVCd2luZG93cy1qZGs5Pl0KPiBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuL3NjbS9tYXZlbi1zY20tcHJvPQp2aWRlci10ZnMvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLXByb3ZpZGVyLXRmcy0xLjkuNi0yMDE3MTIwMS4yMzI4MzUtMTIuamE9CnIKPiAoNDUga0IgYXQgMjEga0IvcykKPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi9zY20vbWF2ZW4tc2NtLXRlcz0KdC8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tdGVzdC0xLjkuNi0yMDE3MTIwMS4yMzI5MTgtMTIuamFyCj4gW3dpbmRvd3MtamRrOQo+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuL3NjbS9tYXZlbi1zY20tdGU9CnN0LzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS10ZXN0LTEuOS42LTIwMTcxMjAxLjIzMjkxOC0xMi5qYXIlNUJ3aW5kb3dzLWpkaz0KOT5dCj4gW0lORk9dIERvd25sb2FkZWQ6Cj4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi9zY20vbWF2ZW4tc2NtLXBybz0KdmlkZXItaW50ZWdyaXR5LzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlci1pbnRlZ3JpdHktMS45LjYtMjAxNzEyMDEuPQoyMzI3MjctMTIuamFyCj4gKDgyIGtCIGF0IDM4IGtCL3MpCj4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkZWQ6Cj4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi9zY20vbWF2ZW4tc2NtLXBybz0KdmlkZXItc3ZuLWNvbW1vbnMvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLXByb3ZpZGVyLXN2bi1jb21tb25zLTEuOS42LTIwMTcxPQoyMDEuMjMyODEyLTEyLmphcgo+ICgzOCBrQiBhdCAxOCBrQi9zKQo+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS1wcm89CnZpZGVyLWphenovMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLXByb3ZpZGVyLWphenotMS45LjYtMjAxNzEyMDEuMjMyNzMzLTEyLj0KamFyCj4gKDY5IGtCIGF0IDMyIGtCL3MpCj4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkZWQ6Cj4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi9zY20vbWF2ZW4tc2NtLWFwaT0KLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1hcGktMS45LjYtMjAxNzEyMDEuMjMyNTU2LTEyLmphcgo+ICgxMDkga0IgYXQgNDcga0IvcykKPiBbd2luZG93cy1qZGs3XSBTZW5kaW5nIGludGVycnVwdCBzaWduYWwgdG8gcHJvY2Vzcwo+IFt3aW5kb3dzLWpkazddIFtJTkZPXSBSYXQgY2hlY2s6IFN1bW1hcnkgb2YgZmlsZXMuIFVuYXBwcm92ZWQ6IDAgdW5rbm93bjoKPiAwIGdlbmVyYXRlZDogMCBhcHByb3ZlZDogMTA3NyBsaWNlbmNlLgo+IFt3aW5kb3dzLWpkazddIFtJTkZPXQo+IFt3aW5kb3dzLWpkazddIFtJTkZPXSAtLS0gbW9kZWxsby1tYXZlbi1wbHVnaW46MS43OnhwcDMtcmVhZGVyIChkZWZhdWx0KSA9CkAKPiBtYXZlbi1yZWxlYXNlLW1hbmFnZXIgLS0tCj4gW3dpbmRvd3MtamRrN10gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLXBsdWdpbi1hcGkvMi49CjAuNy9tYXZlbi1wbHVnaW4tYXBpLTIuMC43LnBvbQo+IFt3aW5kb3dzLWpkazcKPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tcGx1Z2luLWFwaS8yPQouMC43L21hdmVuLXBsdWdpbi1hcGktMi4wLjcucG9tJTVCd2luZG93cy1qZGs3Pl0KPiBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi1wbHVnaW4tYXBpLzIuPQowLjcvbWF2ZW4tcGx1Z2luLWFwaS0yLjAuNy5wb20KPiAoMS41IGtCIGF0IDEyMSBrQi9zKQo+IFt3aW5kb3dzLWpkazddIFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi8yLjAuNy9tYXZlbi0yPQouMC43LnBvbQo+IFt3aW5kb3dzLWpkazcKPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4vMi4wLjcvbWF2ZW4tPQoyLjAuNy5wb20lNUJ3aW5kb3dzLWpkazc+XQo+IFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLzIuMC43L21hdmVuLTI9Ci4wLjcucG9tCj4gKDExIGtCIGF0IDEuMiBNQi9zKQo+IFt3aW5kb3dzLWpkazddIFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1jb3JlLzEuPQo3L21vZGVsbG8tY29yZS0xLjcucG9tCj4gW3dpbmRvd3MtamRrNwo+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1jb3JlLzE9Ci43L21vZGVsbG8tY29yZS0xLjcucG9tJTVCd2luZG93cy1qZGs3Pl0KPiBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1jb3JlLzEuPQo3L21vZGVsbG8tY29yZS0xLjcucG9tCj4gKDEuNSBrQiBhdCAxMzYga0IvcykKPiBbd2luZG93cy1qZGs3XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9zb25hdHlwZS9wbGV4dXMvcGxleHVzLWJ1aWxkLWFwaT0KLzAuMC43L3BsZXh1cy1idWlsZC1hcGktMC4wLjcucG9tCj4gW3dpbmRvd3MtamRrOQo+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL3NvbmF0eXBlL3BsZXh1cy9wbGV4dXMtYnVpbGQtYXA9CmkvMC4wLjcvcGxleHVzLWJ1aWxkLWFwaS0wLjAuNy5wb20lNUJ3aW5kb3dzLWpkazk+XQo+IFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS10ZXM9CnQvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLXRlc3QtMS45LjYtMjAxNzEyMDEuMjMyOTE4LTEyLmphcgo+ICg1MSBrQiBhdCAxOSBrQi9zKQo+IFt3aW5kb3dzLWpkazldIFtJTkZPXQo+IFt3aW5kb3dzLWpkazldIFtJTkZPXSAtLS0gbWF2ZW4tY2xlYW4tcGx1Z2luOjIuNTpjbGVhbiAoZGVmYXVsdC1jbGVhbikgQAo+IG1hdmVuLXJlbGVhc2UtbWFuYWdlciAtLS0KPiBbd2luZG93cy1qZGs5XSBbSU5GT10KPiBbd2luZG93cy1qZGs5XSBbSU5GT10gLS0tIG1hdmVuLWVuZm9yY2VyLXBsdWdpbjoxLjMuMTplbmZvcmNlCj4gKGVuZm9yY2UtYnl0ZWNvZGUtdmVyc2lvbikgQCBtYXZlbi1yZWxlYXNlLW1hbmFnZXIgLS0tCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIFJhdCBjaGVjazogU3VtbWFyeSBvZiBmaWxlcy4gVW5hcHByb3ZlZDogMCB1bmtub3duOgo+IDAgZ2VuZXJhdGVkOiAwIGFwcHJvdmVkOiAxMDc3IGxpY2VuY2UuCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIC0tLSBtb2RlbGxvLW1hdmVuLXBsdWdpbjoxLjc6eHBwMy1yZWFkZXIgKGRlZmF1bHQpID0KQAo+IG1hdmVuLXJlbGVhc2UtbWFuYWdlciAtLS0KPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tcGx1Z2luLWFwaS8yLj0KMC43L21hdmVuLXBsdWdpbi1hcGktMi4wLjcucG9tCj4gW3dpbmRvd3MtamRrOAo+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi1wbHVnaW4tYXBpLzI9Ci4wLjcvbWF2ZW4tcGx1Z2luLWFwaS0yLjAuNy5wb20lNUJ3aW5kb3dzLWpkazg+XQo+IFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLXBsdWdpbi1hcGkvMi49CjAuNy9tYXZlbi1wbHVnaW4tYXBpLTIuMC43LnBvbQo+ICgxLjUga0IgYXQgMTMyIGtCL3MpCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLzIuMC43L21hdmVuLTI9Ci4wLjcucG9tCj4gW3dpbmRvd3MtamRrOAo+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi8yLjAuNy9tYXZlbi09CjIuMC43LnBvbSU1QndpbmRvd3MtamRrOD5dCj4gW0lORk9dIERvd25sb2FkZWQ6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4vMi4wLjcvbWF2ZW4tMj0KLjAuNy5wb20KPiAoMTEga0IgYXQgMS4zIE1CL3MpCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLWNvcmUvMS49CjcvbW9kZWxsby1jb3JlLTEuNy5wb20KPiBbd2luZG93cy1qZGs4Cj4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLWNvcmUvMT0KLjcvbW9kZWxsby1jb3JlLTEuNy5wb20lNUJ3aW5kb3dzLWpkazg+XQo+IFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLWNvcmUvMS49CjcvbW9kZWxsby1jb3JlLTEuNy5wb20KPiAoMS41IGtCIGF0IDE2NyBrQi9zKQo+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL3NvbmF0eXBlL3BsZXh1cy9wbGV4dXMtYnVpbGQtYXBpPQovMC4wLjcvcGxleHVzLWJ1aWxkLWFwaS0wLjAuNy5wb20KPiBbd2luZG93cy1qZGs4Cj4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvc29uYXR5cGUvcGxleHVzL3BsZXh1cy1idWlsZC1hcD0KaS8wLjAuNy9wbGV4dXMtYnVpbGQtYXBpLTAuMC43LnBvbSU1QndpbmRvd3MtamRrOD5dCj4gW0lORk9dIERvd25sb2FkZWQ6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9zb25hdHlwZS9wbGV4dXMvcGxleHVzLWJ1aWxkLWFwaT0KLzAuMC43L3BsZXh1cy1idWlsZC1hcGktMC4wLjcucG9tCj4gKDMuMiBrQiBhdCAzMjAga0IvcykKPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9zb25hdHlwZS9zcGljZS9zcGljZS1wYXJlbnQvMTUvcz0KcGljZS1wYXJlbnQtMTUucG9tCj4gW3dpbmRvd3MtamRrOAo+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL3NvbmF0eXBlL3NwaWNlL3NwaWNlLXBhcmVudC8xNS89CnNwaWNlLXBhcmVudC0xNS5wb20lNUJ3aW5kb3dzLWpkazg+XQo+IFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvc29uYXR5cGUvc3BpY2Uvc3BpY2UtcGFyZW50LzE1L3M9CnBpY2UtcGFyZW50LTE1LnBvbQo+ICg4LjQga0IgYXQgNjk2IGtCL3MpCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvcGxleHVzL3BsZXh1cy11dGlscy8zLjA9Ci45L3BsZXh1cy11dGlscy0zLjAuOS5wb20KPiBbd2luZG93cy1qZGs4Cj4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvcGxleHVzL3BsZXh1cy11dGlscy8zLj0KMC45L3BsZXh1cy11dGlscy0zLjAuOS5wb20lNUJ3aW5kb3dzLWpkazg+XQo+IFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvcGxleHVzL3BsZXh1cy11dGlscy8zLjA9Ci45L3BsZXh1cy11dGlscy0zLjAuOS5wb20KPiAoMy4xIGtCIGF0IDI4NiBrQi9zKQo+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi1wcm9qZWN0LzIuMC43PQovbWF2ZW4tcHJvamVjdC0yLjAuNy5wb20KPiBbd2luZG93cy1qZGs4Cj4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLXByb2plY3QvMi4wLj0KNy9tYXZlbi1wcm9qZWN0LTIuMC43LnBvbSU1QndpbmRvd3MtamRrOD5dCj4gW0lORk9dIERvd25sb2FkZWQ6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tcHJvamVjdC8yLjAuNz0KL21hdmVuLXByb2plY3QtMi4wLjcucG9tCj4gKDIuNiBrQiBhdCAyNDAga0IvcykKPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tc2V0dGluZ3MvMi4wLj0KNy9tYXZlbi1zZXR0aW5ncy0yLjAuNy5wb20KPiBbd2luZG93cy1qZGs4Cj4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLXNldHRpbmdzLzIuMD0KLjcvbWF2ZW4tc2V0dGluZ3MtMi4wLjcucG9tJTVCd2luZG93cy1qZGs4Pl0KPiBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi1zZXR0aW5ncy8yLjAuPQo3L21hdmVuLXNldHRpbmdzLTIuMC43LnBvbQo+ICgyLjAga0IgYXQgMjUwIGtCL3MpCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLW1vZGVsLzIuMC43L209CmF2ZW4tbW9kZWwtMi4wLjcucG9tCj4gW3dpbmRvd3MtamRrOAo+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi1tb2RlbC8yLjAuNy89Cm1hdmVuLW1vZGVsLTIuMC43LnBvbSU1QndpbmRvd3MtamRrOD5dCj4gW0lORk9dIERvd25sb2FkZWQ6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tbW9kZWwvMi4wLjcvbT0KYXZlbi1tb2RlbC0yLjAuNy5wb20KPiAoMy4wIGtCIGF0IDM4MSBrQi9zKQo+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi1wcm9maWxlLzIuMC43PQovbWF2ZW4tcHJvZmlsZS0yLjAuNy5wb20KPiBbd2luZG93cy1qZGs4Cj4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLXByb2ZpbGUvMi4wLj0KNy9tYXZlbi1wcm9maWxlLTIuMC43LnBvbSU1QndpbmRvd3MtamRrOD5dCj4gW0lORk9dIERvd25sb2FkZWQ6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tcHJvZmlsZS8yLjAuNz0KL21hdmVuLXByb2ZpbGUtMi4wLjcucG9tCj4gKDIuMCBrQiBhdCAyNDgga0IvcykKPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tYXJ0aWZhY3QtbWFuYT0KZ2VyLzIuMC43L21hdmVuLWFydGlmYWN0LW1hbmFnZXItMi4wLjcucG9tCj4gW3dpbmRvd3MtamRrOAo+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi1hcnRpZmFjdC1tYW49CmFnZXIvMi4wLjcvbWF2ZW4tYXJ0aWZhY3QtbWFuYWdlci0yLjAuNy5wb20lNUJ3aW5kb3dzLWpkazg+XQo+IFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLWFydGlmYWN0LW1hbmE9Cmdlci8yLjAuNy9tYXZlbi1hcnRpZmFjdC1tYW5hZ2VyLTIuMC43LnBvbQo+ICgyLjYga0IgYXQgMjkxIGtCL3MpCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLXJlcG9zaXRvcnktbWU9CnRhZGF0YS8yLjAuNy9tYXZlbi1yZXBvc2l0b3J5LW1ldGFkYXRhLTIuMC43LnBvbQo+IFt3aW5kb3dzLWpkazgKPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tcmVwb3NpdG9yeS1tPQpldGFkYXRhLzIuMC43L21hdmVuLXJlcG9zaXRvcnktbWV0YWRhdGEtMi4wLjcucG9tJTVCd2luZG93cy1qZGs4Pl0KPiBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi1yZXBvc2l0b3J5LW1lPQp0YWRhdGEvMi4wLjcvbWF2ZW4tcmVwb3NpdG9yeS1tZXRhZGF0YS0yLjAuNy5wb20KPiAoMS45IGtCIGF0IDE2OCBrQi9zKQo+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi1hcnRpZmFjdC8yLjAuPQo3L21hdmVuLWFydGlmYWN0LTIuMC43LnBvbQo+IFt3aW5kb3dzLWpkazgKPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tYXJ0aWZhY3QvMi4wPQouNy9tYXZlbi1hcnRpZmFjdC0yLjAuNy5wb20lNUJ3aW5kb3dzLWpkazg+XQo+IFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLWFydGlmYWN0LzIuMC49CjcvbWF2ZW4tYXJ0aWZhY3QtMi4wLjcucG9tCj4gKDEuNiBrQiBhdCAyMjUga0IvcykKPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tcGx1Z2luLXJlZ2lzdD0KcnkvMi4wLjcvbWF2ZW4tcGx1Z2luLXJlZ2lzdHJ5LTIuMC43LnBvbQo+IFt3aW5kb3dzLWpkazgKPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tcGx1Z2luLXJlZ2lzPQp0cnkvMi4wLjcvbWF2ZW4tcGx1Z2luLXJlZ2lzdHJ5LTIuMC43LnBvbSU1QndpbmRvd3MtamRrOD5dCj4gW0lORk9dIERvd25sb2FkZWQ6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tcGx1Z2luLXJlZ2lzdD0KcnkvMi4wLjcvbWF2ZW4tcGx1Z2luLXJlZ2lzdHJ5LTIuMC43LnBvbQo+ICgxLjkga0IgYXQgMjc4IGtCL3MpCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLXBsdWdpbi09CmNvbnZlcnRlcnMvMS43L21vZGVsbG8tcGx1Z2luLWNvbnZlcnRlcnMtMS43LnBvbQo+IFt3aW5kb3dzLWpkazgKPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvL21vZGVsbG8tcGx1Z2luPQotY29udmVydGVycy8xLjcvbW9kZWxsby1wbHVnaW4tY29udmVydGVycy0xLjcucG9tJTVCd2luZG93cy1qZGs4Pl0KPiBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1wbHVnaW4tPQpjb252ZXJ0ZXJzLzEuNy9tb2RlbGxvLXBsdWdpbi1jb252ZXJ0ZXJzLTEuNy5wb20KPiAoMS42IGtCIGF0IDIwMCBrQi9zKQo+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1wbHVnaW5zPQovMS43L21vZGVsbG8tcGx1Z2lucy0xLjcucG9tCj4gW3dpbmRvd3MtamRrOAo+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1wbHVnaW49CnMvMS43L21vZGVsbG8tcGx1Z2lucy0xLjcucG9tJTVCd2luZG93cy1qZGs4Pl0KPiBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1wbHVnaW5zPQovMS43L21vZGVsbG8tcGx1Z2lucy0xLjcucG9tCj4gKDIuMyBrQiBhdCAyNTgga0IvcykKPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvL21vZGVsbG8tcGx1Z2luLT0KamF2YS8xLjcvbW9kZWxsby1wbHVnaW4tamF2YS0xLjcucG9tCj4gW3dpbmRvd3MtamRrOAo+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1wbHVnaW49Ci1qYXZhLzEuNy9tb2RlbGxvLXBsdWdpbi1qYXZhLTEuNy5wb20lNUJ3aW5kb3dzLWpkazg+XQo+IFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLXBsdWdpbi09CmphdmEvMS43L21vZGVsbG8tcGx1Z2luLWphdmEtMS43LnBvbQo+ICgyLjYga0IgYXQgMzIzIGtCL3MpCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLXBsdWdpbi09CmRvbTRqLzEuNy9tb2RlbGxvLXBsdWdpbi1kb200ai0xLjcucG9tCj4gW3dpbmRvd3MtamRrOAo+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1wbHVnaW49Ci1kb200ai8xLjcvbW9kZWxsby1wbHVnaW4tZG9tNGotMS43LnBvbSU1QndpbmRvd3MtamRrOD5dCj4gW0lORk9dIERvd25sb2FkZWQ6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvL21vZGVsbG8tcGx1Z2luLT0KZG9tNGovMS43L21vZGVsbG8tcGx1Z2luLWRvbTRqLTEuNy5wb20KPiAoMS42IGtCIGF0IDE5NyBrQi9zKQo+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1wbHVnaW4tPQp4bWwvMS43L21vZGVsbG8tcGx1Z2luLXhtbC0xLjcucG9tCj4gW3dpbmRvd3MtamRrOAo+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1wbHVnaW49Ci14bWwvMS43L21vZGVsbG8tcGx1Z2luLXhtbC0xLjcucG9tJTVCd2luZG93cy1qZGs4Pl0KPiBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1wbHVnaW4tPQp4bWwvMS43L21vZGVsbG8tcGx1Z2luLXhtbC0xLjcucG9tCj4gKDEuMCBrQiBhdCAxNDkga0IvcykKPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvL21vZGVsbG8tcGx1Z2luLT0KamRvbS8xLjcvbW9kZWxsby1wbHVnaW4tamRvbS0xLjcucG9tCj4gW3dpbmRvd3MtamRrOAo+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1wbHVnaW49Ci1qZG9tLzEuNy9tb2RlbGxvLXBsdWdpbi1qZG9tLTEuNy5wb20lNUJ3aW5kb3dzLWpkazg+XQo+IFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLXBsdWdpbi09Cmpkb20vMS43L21vZGVsbG8tcGx1Z2luLWpkb20tMS43LnBvbQo+ICgxLjkga0IgYXQgMjY4IGtCL3MpCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLXBsdWdpbi09CnN0YXgvMS43L21vZGVsbG8tcGx1Z2luLXN0YXgtMS43LnBvbQo+IFt3aW5kb3dzLWpkazgKPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvL21vZGVsbG8tcGx1Z2luPQotc3RheC8xLjcvbW9kZWxsby1wbHVnaW4tc3RheC0xLjcucG9tJTVCd2luZG93cy1qZGs4Pl0KPiBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1wbHVnaW4tPQpzdGF4LzEuNy9tb2RlbGxvLXBsdWdpbi1zdGF4LTEuNy5wb20KPiAoMi4zIGtCIGF0IDI5MCBrQi9zKQo+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1wbHVnaW4tPQp4ZG9jLzEuNy9tb2RlbGxvLXBsdWdpbi14ZG9jLTEuNy5wb20KPiBbd2luZG93cy1qZGs4Cj4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLXBsdWdpbj0KLXhkb2MvMS43L21vZGVsbG8tcGx1Z2luLXhkb2MtMS43LnBvbSU1QndpbmRvd3MtamRrOD5dCj4gW0lORk9dIERvd25sb2FkZWQ6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvL21vZGVsbG8tcGx1Z2luLT0KeGRvYy8xLjcvbW9kZWxsby1wbHVnaW4teGRvYy0xLjcucG9tCj4gKDEuMiBrQiBhdCAyMDYga0IvcykKPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvL21vZGVsbG8tcGx1Z2luLT0KeHNkLzEuNy9tb2RlbGxvLXBsdWdpbi14c2QtMS43LnBvbQo+IFt3aW5kb3dzLWpkazgKPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvL21vZGVsbG8tcGx1Z2luPQoteHNkLzEuNy9tb2RlbGxvLXBsdWdpbi14c2QtMS43LnBvbSU1QndpbmRvd3MtamRrOD5dCj4gW0lORk9dIERvd25sb2FkZWQ6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvL21vZGVsbG8tcGx1Z2luLT0KeHNkLzEuNy9tb2RlbGxvLXBsdWdpbi14c2QtMS43LnBvbQo+ICgxLjMga0IgYXQgMTkxIGtCL3MpCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLXBsdWdpbi09CnhwcDMvMS43L21vZGVsbG8tcGx1Z2luLXhwcDMtMS43LnBvbQo+IFt3aW5kb3dzLWpkazgKPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvL21vZGVsbG8tcGx1Z2luPQoteHBwMy8xLjcvbW9kZWxsby1wbHVnaW4teHBwMy0xLjcucG9tJTVCd2luZG93cy1qZGs4Pl0KPiBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1wbHVnaW4tPQp4cHAzLzEuNy9tb2RlbGxvLXBsdWdpbi14cHAzLTEuNy5wb20KPiAoMS40IGtCIGF0IDE3OSBrQi9zKQo+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi1wbHVnaW4tYXBpLzIuPQowLjcvbWF2ZW4tcGx1Z2luLWFwaS0yLjAuNy5qYXIKPiBbd2luZG93cy1qZGs4Cj4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLXBsdWdpbi1hcGkvMj0KLjAuNy9tYXZlbi1wbHVnaW4tYXBpLTIuMC43LmphciU1QndpbmRvd3MtamRrOD5dCj4gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLWNvcmUvMS49CjcvbW9kZWxsby1jb3JlLTEuNy5qYXIKPiBbd2luZG93cy1qZGs4Cj4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLWNvcmUvMT0KLjcvbW9kZWxsby1jb3JlLTEuNy5qYXIlNUJ3aW5kb3dzLWpkazg+XQo+IFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi1zZXR0aW5ncy8yLjAuPQo3L21hdmVuLXNldHRpbmdzLTIuMC43Lmphcgo+IFt3aW5kb3dzLWpkazgKPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tc2V0dGluZ3MvMi4wPQouNy9tYXZlbi1zZXR0aW5ncy0yLjAuNy5qYXIlNUJ3aW5kb3dzLWpkazg+XQo+IFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi1wcm9maWxlLzIuMC43PQovbWF2ZW4tcHJvZmlsZS0yLjAuNy5qYXIKPiBbd2luZG93cy1qZGs4Cj4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLXByb2ZpbGUvMi4wLj0KNy9tYXZlbi1wcm9maWxlLTIuMC43LmphciU1QndpbmRvd3MtamRrOD5dCj4gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLXByb2plY3QvMi4wLjc9Ci9tYXZlbi1wcm9qZWN0LTIuMC43Lmphcgo+IFt3aW5kb3dzLWpkazgKPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tcHJvamVjdC8yLjAuPQo3L21hdmVuLXByb2plY3QtMi4wLjcuamFyJTVCd2luZG93cy1qZGs4Pl0KPiBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1jb3JlLzEuPQo3L21vZGVsbG8tY29yZS0xLjcuamFyCj4gKDU4IGtCIGF0IDMuNiBNQi9zKQo+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi1hcnRpZmFjdC1tYW5hPQpnZXIvMi4wLjcvbWF2ZW4tYXJ0aWZhY3QtbWFuYWdlci0yLjAuNy5qYXIKPiBbd2luZG93cy1qZGs4Cj4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLWFydGlmYWN0LW1hbj0KYWdlci8yLjAuNy9tYXZlbi1hcnRpZmFjdC1tYW5hZ2VyLTIuMC43LmphciU1QndpbmRvd3MtamRrOD5dCj4gW0lORk9dIERvd25sb2FkZWQ6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tcHJvZmlsZS8yLjAuNz0KL21hdmVuLXByb2ZpbGUtMi4wLjcuamFyCj4gKDM1IGtCIGF0IDIuMSBNQi9zKQo+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi1yZXBvc2l0b3J5LW1lPQp0YWRhdGEvMi4wLjcvbWF2ZW4tcmVwb3NpdG9yeS1tZXRhZGF0YS0yLjAuNy5qYXIKPiBbd2luZG93cy1qZGs4Cj4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLXJlcG9zaXRvcnktbT0KZXRhZGF0YS8yLjAuNy9tYXZlbi1yZXBvc2l0b3J5LW1ldGFkYXRhLTIuMC43LmphciU1QndpbmRvd3MtamRrOD5dCj4gW0lORk9dIERvd25sb2FkZWQ6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tc2V0dGluZ3MvMi4wLj0KNy9tYXZlbi1zZXR0aW5ncy0yLjAuNy5qYXIKPiAoNDkga0IgYXQgMi43IE1CL3MpCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLXBsdWdpbi1yZWdpc3Q9CnJ5LzIuMC43L21hdmVuLXBsdWdpbi1yZWdpc3RyeS0yLjAuNy5qYXIKPiBbd2luZG93cy1qZGs4Cj4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLXBsdWdpbi1yZWdpcz0KdHJ5LzIuMC43L21hdmVuLXBsdWdpbi1yZWdpc3RyeS0yLjAuNy5qYXIlNUJ3aW5kb3dzLWpkazg+XQo+IFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLXBsdWdpbi1hcGkvMi49CjAuNy9tYXZlbi1wbHVnaW4tYXBpLTIuMC43Lmphcgo+ICgxMyBrQiBhdCA1NTkga0IvcykKPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tYXJ0aWZhY3QvMi4wLj0KNy9tYXZlbi1hcnRpZmFjdC0yLjAuNy5qYXIKPiBbd2luZG93cy1qZGs4Cj4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLWFydGlmYWN0LzIuMD0KLjcvbWF2ZW4tYXJ0aWZhY3QtMi4wLjcuamFyJTVCd2luZG93cy1qZGs4Pl0KPiBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi1wcm9qZWN0LzIuMC43PQovbWF2ZW4tcHJvamVjdC0yLjAuNy5qYXIKPiAoMTE3IGtCIGF0IDQuOSBNQi9zKQo+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi1tb2RlbC8yLjAuNy9tPQphdmVuLW1vZGVsLTIuMC43Lmphcgo+IFt3aW5kb3dzLWpkazgKPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tbW9kZWwvMi4wLjcvPQptYXZlbi1tb2RlbC0yLjAuNy5qYXIlNUJ3aW5kb3dzLWpkazg+XQo+IFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLXJlcG9zaXRvcnktbWU9CnRhZGF0YS8yLjAuNy9tYXZlbi1yZXBvc2l0b3J5LW1ldGFkYXRhLTIuMC43Lmphcgo+ICgyNCBrQiBhdCA4NzQga0IvcykKPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9wbGV4dXMvcGxleHVzLXV0aWxzLzMuMD0KLjkvcGxleHVzLXV0aWxzLTMuMC45Lmphcgo+IFt3aW5kb3dzLWpkazgKPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9wbGV4dXMvcGxleHVzLXV0aWxzLzMuPQowLjkvcGxleHVzLXV0aWxzLTMuMC45LmphciU1QndpbmRvd3MtamRrOD5dCj4gW0lORk9dIERvd25sb2FkZWQ6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tYXJ0aWZhY3QtbWFuYT0KZ2VyLzIuMC43L21hdmVuLWFydGlmYWN0LW1hbmFnZXItMi4wLjcuamFyCj4gKDU3IGtCIGF0IDEuOSBNQi9zKQo+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1wbHVnaW4tPQpjb252ZXJ0ZXJzLzEuNy9tb2RlbGxvLXBsdWdpbi1jb252ZXJ0ZXJzLTEuNy5qYXIKPiBbd2luZG93cy1qZGs4Cj4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLXBsdWdpbj0KLWNvbnZlcnRlcnMvMS43L21vZGVsbG8tcGx1Z2luLWNvbnZlcnRlcnMtMS43LmphciU1QndpbmRvd3MtamRrOD5dCj4gW0lORk9dIERvd25sb2FkZWQ6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tcGx1Z2luLXJlZ2lzdD0KcnkvMi4wLjcvbWF2ZW4tcGx1Z2luLXJlZ2lzdHJ5LTIuMC43Lmphcgo+ICgyOSBrQiBhdCA4Nzcga0IvcykKPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvL21vZGVsbG8tcGx1Z2luLT0KZG9tNGovMS43L21vZGVsbG8tcGx1Z2luLWRvbTRqLTEuNy5qYXIKPiBbd2luZG93cy1qZGs4Cj4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLXBsdWdpbj0KLWRvbTRqLzEuNy9tb2RlbGxvLXBsdWdpbi1kb200ai0xLjcuamFyJTVCd2luZG93cy1qZGs4Pl0KPiBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi1hcnRpZmFjdC8yLjAuPQo3L21hdmVuLWFydGlmYWN0LTIuMC43Lmphcgo+ICg4OCBrQiBhdCAyLjQgTUIvcykKPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvL21vZGVsbG8tcGx1Z2luLT0KeG1sLzEuNy9tb2RlbGxvLXBsdWdpbi14bWwtMS43Lmphcgo+IFt3aW5kb3dzLWpkazgKPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvL21vZGVsbG8tcGx1Z2luPQoteG1sLzEuNy9tb2RlbGxvLXBsdWdpbi14bWwtMS43LmphciU1QndpbmRvd3MtamRrOD5dCj4gW0lORk9dIERvd25sb2FkZWQ6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tbW9kZWwvMi4wLjcvbT0KYXZlbi1tb2RlbC0yLjAuNy5qYXIKPiAoODYga0IgYXQgMi4yIE1CL3MpCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLXBsdWdpbi09CmphdmEvMS43L21vZGVsbG8tcGx1Z2luLWphdmEtMS43Lmphcgo+IFt3aW5kb3dzLWpkazgKPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvL21vZGVsbG8tcGx1Z2luPQotamF2YS8xLjcvbW9kZWxsby1wbHVnaW4tamF2YS0xLjcuamFyJTVCd2luZG93cy1qZGs4Pl0KPiBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1wbHVnaW4tPQpjb252ZXJ0ZXJzLzEuNy9tb2RlbGxvLXBsdWdpbi1jb252ZXJ0ZXJzLTEuNy5qYXIKPiAoOS40IGtCIGF0IDIyNCBrQi9zKQo+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1wbHVnaW4tPQpqZG9tLzEuNy9tb2RlbGxvLXBsdWdpbi1qZG9tLTEuNy5qYXIKPiBbd2luZG93cy1qZGs4Cj4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLXBsdWdpbj0KLWpkb20vMS43L21vZGVsbG8tcGx1Z2luLWpkb20tMS43LmphciU1QndpbmRvd3MtamRrOD5dCj4gW0lORk9dIERvd25sb2FkZWQ6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvL21vZGVsbG8tcGx1Z2luLT0KZG9tNGovMS43L21vZGVsbG8tcGx1Z2luLWRvbTRqLTEuNy5qYXIKPiAoMTgga0IgYXQgNDI3IGtCL3MpCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLXBsdWdpbi09CnN0YXgvMS43L21vZGVsbG8tcGx1Z2luLXN0YXgtMS43Lmphcgo+IFt3aW5kb3dzLWpkazgKPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvL21vZGVsbG8tcGx1Z2luPQotc3RheC8xLjcvbW9kZWxsby1wbHVnaW4tc3RheC0xLjcuamFyJTVCd2luZG93cy1qZGs4Pl0KPiBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1wbHVnaW4tPQp4bWwvMS43L21vZGVsbG8tcGx1Z2luLXhtbC0xLjcuamFyCj4gKDE1IGtCIGF0IDMwNyBrQi9zKQo+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1wbHVnaW4tPQp4ZG9jLzEuNy9tb2RlbGxvLXBsdWdpbi14ZG9jLTEuNy5qYXIKPiBbd2luZG93cy1qZGs4Cj4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLXBsdWdpbj0KLXhkb2MvMS43L21vZGVsbG8tcGx1Z2luLXhkb2MtMS43LmphciU1QndpbmRvd3MtamRrOD5dCj4gW0lORk9dIERvd25sb2FkZWQ6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9wbGV4dXMvcGxleHVzLXV0aWxzLzMuMD0KLjkvcGxleHVzLXV0aWxzLTMuMC45Lmphcgo+ICgyMzIga0IgYXQgNC42IE1CL3MpCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLXBsdWdpbi09CnhwcDMvMS43L21vZGVsbG8tcGx1Z2luLXhwcDMtMS43Lmphcgo+IFt3aW5kb3dzLWpkazgKPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvL21vZGVsbG8tcGx1Z2luPQoteHBwMy8xLjcvbW9kZWxsby1wbHVnaW4teHBwMy0xLjcuamFyJTVCd2luZG93cy1qZGs4Pl0KPiBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1wbHVnaW4tPQpqZG9tLzEuNy9tb2RlbGxvLXBsdWdpbi1qZG9tLTEuNy5qYXIKPiAoMTQga0IgYXQgMjY5IGtCL3MpCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLXBsdWdpbi09CnhzZC8xLjcvbW9kZWxsby1wbHVnaW4teHNkLTEuNy5qYXIKPiBbd2luZG93cy1qZGs4Cj4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLXBsdWdpbj0KLXhzZC8xLjcvbW9kZWxsby1wbHVnaW4teHNkLTEuNy5qYXIlNUJ3aW5kb3dzLWpkazg+XQo+IFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLXBsdWdpbi09CnN0YXgvMS43L21vZGVsbG8tcGx1Z2luLXN0YXgtMS43Lmphcgo+ICgzNyBrQiBhdCA2NjYga0IvcykKPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9zb25hdHlwZS9wbGV4dXMvcGxleHVzLWJ1aWxkLWFwaT0KLzAuMC43L3BsZXh1cy1idWlsZC1hcGktMC4wLjcuamFyCj4gW3dpbmRvd3MtamRrOAo+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL3NvbmF0eXBlL3BsZXh1cy9wbGV4dXMtYnVpbGQtYXA9CmkvMC4wLjcvcGxleHVzLWJ1aWxkLWFwaS0wLjAuNy5qYXIlNUJ3aW5kb3dzLWpkazg+XQo+IFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLXBsdWdpbi09CmphdmEvMS43L21vZGVsbG8tcGx1Z2luLWphdmEtMS43Lmphcgo+ICg4NCBrQiBhdCAxLjQgTUIvcykKPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vbW9kZWxsby1wbHVnaW4tPQp4cHAzLzEuNy9tb2RlbGxvLXBsdWdpbi14cHAzLTEuNy5qYXIKPiAoMjkga0IgYXQgNDcxIGtCL3MpCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkZWQ6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvL21vZGVsbG8tcGx1Z2luLT0KeGRvYy8xLjcvbW9kZWxsby1wbHVnaW4teGRvYy0xLjcuamFyCj4gKDE0IGtCIGF0IDIyMyBrQi9zKQo+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGVkOgo+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby9tb2RlbGxvLXBsdWdpbi09CnhzZC8xLjcvbW9kZWxsby1wbHVnaW4teHNkLTEuNy5qYXIKPiAoMTQga0IgYXQgMjE3IGtCL3MpCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkZWQ6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9zb25hdHlwZS9wbGV4dXMvcGxleHVzLWJ1aWxkLWFwaT0KLzAuMC43L3BsZXh1cy1idWlsZC1hcGktMC4wLjcuamFyCj4gKDguNSBrQiBhdCAxMjcga0IvcykKPiBbd2luZG93cy1qZGs4XSBbSU5GT10gb3V0cHV0RGlyZWN0b3J5Ogo+IEY6XGplbmtpbnNcamVua2lucy1zbGF2ZVx3b3Jrc3BhY2VcZW4tYm94X21hdmVuLXJlbGVhc2VfbWFzdGVyLU9DS0dVTFFCQ1o9CjY3VkJLSjdIRjZFN0taVUNLWDdaQzZGWDY0R0g2Nk9IUDdBNFZBUUJJUVxtXG1hdmVuLXJlbGVhc2UtbWFuYWdlclx0YXJnZXRcZz0KZW5lcmF0ZWQtc291cmNlc1xtb2RlbGxvCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIFdvcmtpbmcgb24gbW9kZWw6IHNyYy9tYWluL21kby9yZWxlYXNlLWRlc2NyaXB0b3IubT0KZG8KPiBbd2luZG93cy1qZGs4XSBbSU5GT10gR2VuZXJhdGluZyBjdXJyZW50IHZlcnNpb246IDMuMC4wCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIC0tLSBtb2RlbGxvLW1hdmVuLXBsdWdpbjoxLjc6amF2YSAoZGVmYXVsdCkgQAo+IG1hdmVuLXJlbGVhc2UtbWFuYWdlciAtLS0KPiBbd2luZG93cy1qZGs4XSBbSU5GT10gb3V0cHV0RGlyZWN0b3J5Ogo+IEY6XGplbmtpbnNcamVua2lucy1zbGF2ZVx3b3Jrc3BhY2VcZW4tYm94X21hdmVuLXJlbGVhc2VfbWFzdGVyLU9DS0dVTFFCQ1o9CjY3VkJLSjdIRjZFN0taVUNLWDdaQzZGWDY0R0g2Nk9IUDdBNFZBUUJJUVxtXG1hdmVuLXJlbGVhc2UtbWFuYWdlclx0YXJnZXRcZz0KZW5lcmF0ZWQtc291cmNlc1xtb2RlbGxvCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIFdvcmtpbmcgb24gbW9kZWw6IHNyYy9tYWluL21kby9yZWxlYXNlLWRlc2NyaXB0b3IubT0KZG8KPiBbd2luZG93cy1qZGs4XSBbSU5GT10gR2VuZXJhdGluZyBjdXJyZW50IHZlcnNpb246IDMuMC4wCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIC0tLSBtb2RlbGxvLW1hdmVuLXBsdWdpbjoxLjc6eHBwMy13cml0ZXIgKGRlZmF1bHQpID0KQAo+IG1hdmVuLXJlbGVhc2UtbWFuYWdlciAtLS0KPiBbd2luZG93cy1qZGs4XSBbSU5GT10gb3V0cHV0RGlyZWN0b3J5Ogo+IEY6XGplbmtpbnNcamVua2lucy1zbGF2ZVx3b3Jrc3BhY2VcZW4tYm94X21hdmVuLXJlbGVhc2VfbWFzdGVyLU9DS0dVTFFCQ1o9CjY3VkJLSjdIRjZFN0taVUNLWDdaQzZGWDY0R0g2Nk9IUDdBNFZBUUJJUVxtXG1hdmVuLXJlbGVhc2UtbWFuYWdlclx0YXJnZXRcZz0KZW5lcmF0ZWQtc291cmNlc1xtb2RlbGxvCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIFdvcmtpbmcgb24gbW9kZWw6IHNyYy9tYWluL21kby9yZWxlYXNlLWRlc2NyaXB0b3IubT0KZG8KPiBbd2luZG93cy1qZGs4XSBbSU5GT10gR2VuZXJhdGluZyBjdXJyZW50IHZlcnNpb246IDMuMC4wCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIC0tLSBtYXZlbi1yZW1vdGUtcmVzb3VyY2VzLXBsdWdpbjoxLjU6cHJvY2Vzcwo+IChkZWZhdWx0KSBAIG1hdmVuLXJlbGVhc2UtbWFuYWdlciAtLS0KPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi9zY20vbWF2ZW4tc2NtLXBybz0KdmlkZXJzLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlcnMtMS45LjYtMjAxNzEyMDEuMjMyODQ2LTEyLnBvbQo+IFt3aW5kb3dzLWpkazcKPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi9zY20vbWF2ZW4tc2NtLXByPQpvdmlkZXJzLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlcnMtMS45LjYtMjAxNzEyMDEuMjMyODQ2LTEyLnBvbSU1Qnc9CmluZG93cy1qZGs3Pl0KPiBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL3NvbmF0eXBlL3BsZXh1cy9wbGV4dXMtYnVpbGQtYXBpPQovMC4wLjcvcGxleHVzLWJ1aWxkLWFwaS0wLjAuNy5wb20KPiAoMy4yIGtCIGF0IDQwMCBrQi9zKQo+IFt3aW5kb3dzLWpkazddIFtJTkZPXSBEb3dubG9hZGluZzoKPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL3NvbmF0eXBlL3NwaWNlL3NwaWNlLXBhcmVudC8xNS9zPQpwaWNlLXBhcmVudC0xNS5wb20KPiBbd2luZG93cy1qZGs3Cj4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvc29uYXR5cGUvc3BpY2Uvc3BpY2UtcGFyZW50LzE1Lz0Kc3BpY2UtcGFyZW50LTE1LnBvbSU1QndpbmRvd3MtamRrNz5dCj4gW0lORk9dIERvd25sb2FkZWQ6Cj4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9zb25hdHlwZS9zcGljZS9zcGljZS1wYXJlbnQvMTUvcz0KcGljZS1wYXJlbnQtMTUucG9tCj4gKDguNCBrQiBhdCAxLjAgTUIvcykKPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuL3NjbS9tYXZlbi1zY20tcHJvPQp2aWRlcnMvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLXByb3ZpZGVycy0xLjkuNi0yMDE3MTIwMS4yMzI4NDYtMTIucG9tCj4gKDAgQiBhdCAwIEIvcykKPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi9zY20vbWF2ZW4tc2NtLzEuOT0KLjYtU05BUFNIT1QvbWF2ZW4tc2NtLTEuOS42LTIwMTcxMjAxLjIzMjU0OS0xMi5wb20KPiBbd2luZG93cy1qZGs4Cj4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS8xLj0KOS42LVNOQVBTSE9UL21hdmVuLXNjbS0xLjkuNi0yMDE3MTIwMS4yMzI1NDktMTIucG9tJTVCd2luZG93cy1qZGs4Pl0KPiBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuL3NjbS9tYXZlbi1zY20vMS45PQouNi1TTkFQU0hPVC9tYXZlbi1zY20tMS45LjYtMjAxNzEyMDEuMjMyNTQ5LTEyLnBvbQo+ICgwIEIgYXQgMCBCL3MpCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS1wcm89CnZpZGVycy1jdnMvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLXByb3ZpZGVycy1jdnMtMS45LjYtMjAxNzEyMDEuMjMyODUzLTEyLj0KcG9tCj4gW3dpbmRvd3MtamRrOAo+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuL3NjbS9tYXZlbi1zY20tcHI9Cm92aWRlcnMtY3ZzLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlcnMtY3ZzLTEuOS42LTIwMTcxMjAxLjIzMjg1My0xMj0KLnBvbSU1QndpbmRvd3MtamRrOD5dCj4gU2VuZGluZyBpbnRlcnJ1cHQgc2lnbmFsIHRvIHByb2Nlc3MKPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRlZDoKPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuL3NjbS9tYXZlbi1zY20tcHJvPQp2aWRlcnMtY3ZzLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlcnMtY3ZzLTEuOS42LTIwMTcxMjAxLjIzMjg1My0xMi49CnBvbQo+ICgwIEIgYXQgMCBCL3MpCj4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vc2NtL21hdmVuLXNjbS1wcm89CnZpZGVycy1naXQvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLXByb3ZpZGVycy1naXQtMS45LjYtMjAxNzEyMDEuMjMyOTAwLTEyLj0KcG9tCj4gW3dpbmRvd3MtamRrOQo+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuL3NjbS9tYXZlbi1zY20tcHI9Cm92aWRlcnMtZ2l0LzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlcnMtZ2l0LTEuOS42LTIwMTcxMjAxLjIzMjkwMC0xMj0KLnBvbSU1QndpbmRvd3MtamRrOT5dCj4gU2VuZGluZyBpbnRlcnJ1cHQgc2lnbmFsIHRvIHByb2Nlc3MKPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazhdIH0KPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazddIH0KPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs4XSB9Cj4gW1BpcGVsaW5lXSBbbGludXgtamRrOV0gfQo+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOF0gLy8gZGlyCj4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs3XSAvLyBkaXIKPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs4XSAvLyBkaXIKPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs5XSAvLyBkaXIKPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazhdIH0KPiBbd2luZG93cy1qZGs4XSBbd2l0aE1hdmVuXSBPbmUgb3IgbXVsdGlwbGUgTWF2ZW4gZXhlY3V0aW9ucyBoYXZlIGJlZW4KPiBpZ25vcmVkIGJ5IHRoZSBKZW5raW5zIFBpcGVsaW5lIE1hdmVuIFBsdWdpbiBiZWNhdXNlIHRoZXkgaGF2ZSBiZWVuCj4gaW50ZXJydXB0ZWQgYmVmb3JlIGNvbXBsZXRpb24gKDEpLiBTZWUgUGlwZWxpbmUgTWF2ZW4gUGx1Z2luIEZBUSBmb3IgbW9yZQo+IGRldGFpbHMuCj4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs3XSB9Cj4gW3dpbmRvd3MtamRrN10gW3dpdGhNYXZlbl0gT25lIG9yIG11bHRpcGxlIE1hdmVuIGV4ZWN1dGlvbnMgaGF2ZSBiZWVuCj4gaWdub3JlZCBieSB0aGUgSmVua2lucyBQaXBlbGluZSBNYXZlbiBQbHVnaW4gYmVjYXVzZSB0aGV5IGhhdmUgYmVlbgo+IGludGVycnVwdGVkIGJlZm9yZSBjb21wbGV0aW9uICgxKS4gU2VlIFBpcGVsaW5lIE1hdmVuIFBsdWdpbiBGQVEgZm9yIG1vcmUKPiBkZXRhaWxzLgo+IFtQaXBlbGluZV0gW2xpbnV4LWpkazhdIH0KPiBbbGludXgtamRrOF0gW3dpdGhNYXZlbl0gT25lIG9yIG11bHRpcGxlIE1hdmVuIGV4ZWN1dGlvbnMgaGF2ZSBiZWVuCj4gaWdub3JlZCBieSB0aGUgSmVua2lucyBQaXBlbGluZSBNYXZlbiBQbHVnaW4gYmVjYXVzZSB0aGV5IGhhdmUgYmVlbgo+IGludGVycnVwdGVkIGJlZm9yZSBjb21wbGV0aW9uICgxKS4gU2VlIFBpcGVsaW5lIE1hdmVuIFBsdWdpbiBGQVEgZm9yIG1vcmUKPiBkZXRhaWxzLgo+IFtQaXBlbGluZV0gW2xpbnV4LWpkazldIH0KPiBbbGludXgtamRrOV0gW3dpdGhNYXZlbl0gT25lIG9yIG11bHRpcGxlIE1hdmVuIGV4ZWN1dGlvbnMgaGF2ZSBiZWVuCj4gaWdub3JlZCBieSB0aGUgSmVua2lucyBQaXBlbGluZSBNYXZlbiBQbHVnaW4gYmVjYXVzZSB0aGV5IGhhdmUgYmVlbgo+IGludGVycnVwdGVkIGJlZm9yZSBjb21wbGV0aW9uICgxKS4gU2VlIFBpcGVsaW5lIE1hdmVuIFBsdWdpbiBGQVEgZm9yIG1vcmUKPiBkZXRhaWxzLgo+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOF0gLy8gd2l0aE1hdmVuCj4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs3XSAvLyB3aXRoTWF2ZW4KPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs4XSAvLyB3aXRoTWF2ZW4KPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs5XSAvLyB3aXRoTWF2ZW4KPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazhdIH0KPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazddIH0KPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs4XSB9Cj4gW1BpcGVsaW5lXSBbbGludXgtamRrOV0gfQo+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOV0gfQo+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOF0gLy8gc3RhZ2UKPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazddIC8vIHN0YWdlCj4gW1BpcGVsaW5lXSBbbGludXgtamRrOF0gLy8gc3RhZ2UKPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs5XSAvLyBzdGFnZQo+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOV0gLy8gZGlyCj4gW1BpcGVsaW5lXSBbbGludXgtamRrOF0gfQo+IFtQaXBlbGluZV0gW2xpbnV4LWpkazldIH0KPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazddIH0KPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazhdIH0KPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazldIH0KPiBbd2luZG93cy1qZGs5XSBbd2l0aE1hdmVuXSBPbmUgb3IgbXVsdGlwbGUgTWF2ZW4gZXhlY3V0aW9ucyBoYXZlIGJlZW4KPiBpZ25vcmVkIGJ5IHRoZSBKZW5raW5zIFBpcGVsaW5lIE1hdmVuIFBsdWdpbiBiZWNhdXNlIHRoZXkgaGF2ZSBiZWVuCj4gaW50ZXJydXB0ZWQgYmVmb3JlIGNvbXBsZXRpb24gKDEpLiBTZWUgUGlwZWxpbmUgTWF2ZW4gUGx1Z2luIEZBUSBmb3IgbW9yZQo+IGRldGFpbHMuCj4gW1BpcGVsaW5lXSBbbGludXgtamRrOF0gLy8gbm9kZQo+IFtQaXBlbGluZV0gW2xpbnV4LWpkazldIC8vIG5vZGUKPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazddIC8vIG5vZGUKPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazhdIC8vIG5vZGUKPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazldIC8vIHdpdGhNYXZlbgo+IFtQaXBlbGluZV0gW2xpbnV4LWpkazhdIH0KPiBbbGludXgtamRrOF0gRmFpbGVkIGluIGJyYW5jaCBsaW51eC1qZGs4Cj4gW1BpcGVsaW5lXSBbbGludXgtamRrOV0gfQo+IFtsaW51eC1qZGs5XSBGYWlsZWQgaW4gYnJhbmNoIGxpbnV4LWpkazkKPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazddIH0KPiBbd2luZG93cy1qZGs3XSBGYWlsZWQgaW4gYnJhbmNoIHdpbmRvd3MtamRrNwo+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOF0gfQo+IFt3aW5kb3dzLWpkazhdIEZhaWxlZCBpbiBicmFuY2ggd2luZG93cy1qZGs4Cj4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs5XSB9Cj4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs5XSAvLyBzdGFnZQo+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOV0gfQo+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOV0gLy8gbm9kZQo+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOV0gfQo+IFt3aW5kb3dzLWpkazldIEZhaWxlZCBpbiBicmFuY2ggd2luZG93cy1qZGs5Cj4gW1BpcGVsaW5lXSAvLyBwYXJhbGxlbAo+IFtQaXBlbGluZV0gc3RhZ2UKPiBbUGlwZWxpbmVdIHsgKE5vdGlmaWNhdGlvbnMpCj4gW1BpcGVsaW5lXSBlY2hvCj4gQnVpbGQgcmVzdWx0OiBGQUlMVVJFCj4gW1BpcGVsaW5lXSBqaXJhSXNzdWVTZWxlY3Rvcgo+IFtQaXBlbGluZV0gamlyYUNvbW1lbnQKPiBbUGlwZWxpbmVdIGppcmFDb21tZW50Cj4gW1BpcGVsaW5lXSBlbWFpbGV4dAoKLS09MjAKU2VudCBmcm9tIG15IHBob25lCgotLTAwMWExMTNjMmZkYTE3MzZkNTA1NWY1OWJmNjYtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDMxNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gT2N0IDIzIDExOjMyOjQwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDMxNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4RTU3MjEwQzJDCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMjMgT2N0IDIwMTcgMTE6MzI6NDAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0MzgxNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMyBPY3QgMjAxNyAxMTozMjo0MCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDM3MzggaW52b2tlZCBieSB1aWQgNTAwKTsgMjMgT2N0IDIwMTcgMTE6MzI6NDAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0MzcyNiBpbnZva2VkIGJ5IHVpZCA5OSk7IDIzIE9jdCAyMDE3IDExOjMyOjM5IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAyMyBPY3QgMjAxNyAxMTozMjozOSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDI0REI5MTgwNkI0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAyMyBPY3QgMjAxNyAxMTozMjozOSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuMzc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuMzc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgeHZRMGRvcHJkSEtWIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAyMyBPY3QgMjAxNyAxMTozMjozNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdtMC1mNDQuZ29vZ2xlLmNvbSAobWFpbC13bTAtZjQ0Lmdvb2dsZS5jb20gWzc0LjEyNS44Mi40NF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBBQjJDQTVGMjdECglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAyMyBPY3QgMjAxNyAxMTozMjozNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13bTAtZjQ0Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHUxMzhzbzkxNzYzNDZ3bXUuNAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDIzIE9jdCAyMDE3IDA0OjMyOjM2IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPVFrNE1DUmdTbzRhZWw2TWFjazFQYnRNa0tQU3NPcVR2djhlTDIvaXhCa009OwogICAgICAgIGI9SDQzMlNsMCtwNS9SMVp3MzVaRjluVGROeXYwTEtVakowTk5oSGNleEZrWFA3clZMRW5CWFpOOEJ6M0RpTDhBZlEyCiAgICAgICAgIEJhTHYraVI3OUJKSkEyUVZuK0ZoRUNzU1Z0UGFzblJYK3hOeGRITEdsbklWSUxHMTlsSzAxa3M3SWNUcEFCMVQ1cDJHCiAgICAgICAgIEd2Zi9mV0YwYk1pVU54dWcwRWxZQWtHc1hHSXZtZnVLV0J0Zmp3V25oWTFvOGxsTmp0U2hjaENvWXk5RzU1elBrN05LCiAgICAgICAgIDVRVDE1bEFPUXByb2NtdHNwZzRybjZmR1RabGlQTXpIM3ZBT0xMTFFJT0czWk5wUGhLMjV4TWxOWkxSYlJVWHBsY2hFCiAgICAgICAgIDFlRUI0SDJXblRWSThrUitMcEpZcENSb0hocFhERkNsdldLQkQ1Q3pmb1FoeEw2Y2JleUMrYUx1TzJyeHFWMERUeU9iCiAgICAgICAgIHp6Nmc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPVFrNE1DUmdTbzRhZWw2TWFjazFQYnRNa0tQU3NPcVR2djhlTDIvaXhCa009OwogICAgICAgIGI9b3VRcG0wajFVTzVUR3UyNnJ4cExiSkFKN3Q0ajhBQzJ1MXpDd2dFMm9BbU5HY0EwRzdmcDh1T0w4TDhRM2hLdFRECiAgICAgICAgIFI0MmYrd0tGVlpiODZtMnZvS0xQMUNYcCt3czVjdXV4c1Q0VjRTd0JmOTRnUUI1MXhPZ3RCZ0xjd0RSUER6QmJ1UkNxCiAgICAgICAgIFRCQmx5OU5TS2FhU1NIdExlY1U0V2tNNTJibHBmNHVqclJTaWRiNzNyKzRjdHF5b1AyTlNnVXB3VlY0QnlYQXRsRmtFCiAgICAgICAgIHZIVy9PSE1lMUxvUWxvdStMU3dRWkppRGgyYmd1WERRTzZMbWROdDVVMXpoYmttanhHT0thMzAvZXNRU2ZoVlNOcTdmCiAgICAgICAgIDdaOHhRN1o0aDlCOTRSZ3hZK0RLVmczV3ZELzFLNzVCbHI1Wkd5WUUzaTJqZ2Rad2NqUUZHSGEvSEpnNEVxQTJDQlQzCiAgICAgICAgIEZ0dGc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVd3Y0NRamdXTTZsY0pFU0JOSjNpOWUzZjA3Rmp5OVkxM1lMM1ZONWRqZklSa3dHcnZFCgl6RUtHNjVGaGpIdy90UGkrSzF2VVdZU0tSZTVzMG04NCt1anBLaGtMWFE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArUTR2UEUvK0N4WTgrajFPZ3gxMHltNm4xUzJrTmNnQU1RZndMZjVQUmpSVExicWFlc3JuU0IyaHF1d0Q2VVA0VWtxNjVqT1ZaVE9ZNDNDc3QxWnJDVT0KWC1SZWNlaXZlZDogYnkgMTAuMjguMi44NCB3aXRoIFNNVFAgaWQgODFtcjU0OTg4OTh3bWMuMTA2LjE1MDg3NTgzNTU0NDQ7IE1vbiwKIDIzIE9jdCAyMDE3IDA0OjMyOjM1IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yMjMuMTg3Ljggd2l0aCBIVFRQOyBNb24sIDIzIE9jdCAyMDE3IDA0OjMyOjM0IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0FQQ2pqbkhvbkRhYmlHV3dKWXFucTJqVTZZZTVOX0M3ZW44UXNSUzhubjRETjZoUGR3QG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXd0am5aRS01M0FONTN4Rj1NZjZIWS1GYkdZd1pBVXczRVVLSEE0ZUtCNTJRQG1haWwuZ21haWwuY29tPgogPENBTFlHbTF3PVVQd3YwckUtSGpaSnZuK201SDkxRSs0YTh1LTVTWTBjdjhzdVVLMGhnUUBtYWlsLmdtYWlsLmNvbT4KIDxDQVBDampuRWVzR3hEVEtZaUxHVkdUM2k4QUhhRlZFRUdkOGloZ2pqVTBmRnN0MDNzdFFAbWFpbC5nbWFpbC5jb20+IDxDQVBDampuSG9uRGFiaUdXd0pZcW5xMmpVNlllNU5fQzdlbjhRc1JTOG5uNERONmhQZHdAbWFpbC5nbWFpbC5jb20+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMjMgT2N0IDIwMTcgMTI6MzI6MzQgKzAxMDAKTWVzc2FnZS1JRDogPENBK25Qbk13MTg1bzFBcDd6djNpUlNfMzFmWit5eWh3NjR4eUpIUUtYd1hXaCtXaWFyd0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTEzYzhiYjhkNDBhOWYwNTVjMzUyZDA5IgoKLS0wMDFhMTEzYzhiYjhkNDBhOWYwNTVjMzUyZDA5CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkFueSBtb3JlIHZvdGVzPwoKT24gMjEgT2N0b2JlciAyMDE3IGF0IDEwOjUzLCBEYW4gVHJhbiA8ZGFudHJhbkBnbWFpbC5jb20+IHdyb3RlOgoKPiBvdWNoIGZhbHNlIGFsYXJtLCAgSSBmb3Jnb3QgdG8gY29uZmlndXJlIHRoZSBhcnRpZmFjdG9yeSBtaXJyb3IKPgo+IFNvcnJ5IGFib3V0IHRoZSBub2lzZQo+Cj4gLUQKPgo+IE9uIFNhdCwgT2N0IDIxLCAyMDE3IGF0IDEwOjEwIEFNLCBEYW4gVHJhbiA8ZGFudHJhbkBnbWFpbC5jb20+IHdyb3RlOgo+Cj4gPiBJIGFtIG5vdCBhYmxlIGdldHRpbmcgbXZuIDMuNS4yIHRvIGRvd25sb2FkIGFuIGludGVybmFsIHNuYXBzaG90Cj4gPiBkZXBlbmRlbmN5IGZyb20gY29tcCdzIGNlbnRyYWwgYXJ0aWZhY3RvcnkKPiA+Cj4gPiBoZXJlIGlzIHRoZSBlcnJvcgo+ID4KPiA+IENhdXNlZCBieTogb3JnLmVjbGlwc2UuYWV0aGVyLnJlc29sdXRpb24uRGVwZW5kZW5jeVJlc29sdXRpb25FeGNlcHRpb246Cj4gPiBDb3VsZCBub3QgZmluZCBhcnRpZmFjdCBjb20ub3JhY2xlLmxpbnV4Lng4Nl82NDpqcmU6Cj4gcnBtOjEuOC4wXzE1MS1TTkFQU0hPVAo+ID4gICAgIGF0IG9yZy5lY2xpcHNlLmFldGhlci5pbnRlcm5hbC5pbXBsLkRlZmF1bHRSZXBvc2l0b3J5U3lzdGVtLgo+IHJlc29sdmVEZXBlbmRlbmNpZXMKPiA+IChEZWZhdWx0UmVwb3NpdG9yeVN5c3RlbS5qYXZhOjM1NSkKPiA+ICAgICBhdCBvcmcuYXBhY2hlLm1hdmVuLnByb2plY3QuRGVmYXVsdFByb2plY3REZXBlbmRlbmNpZXNSZXNvCj4gbHZlci5yZXNvbHZlCj4gPiAoRGVmYXVsdFByb2plY3REZXBlbmRlbmNpZXNSZXNvbHZlci5qYXZhOjIwMikKPiA+Cj4gPiBObyBpc3N1ZSB3aXRoIDMuNS4wIGFuZCAzLjUuMQo+ID4KPiA+IFdvbmRlciBpZiBhbnlvbmUgZWxzZSBlbmNvdW50ZXJzIHRoZSBzYW1lIGlzc3VlPz8KPiA+Cj4gPiBUaGFua3MKPiA+Cj4gPiAtRGFuCj4gPgo+ID4gT24gRnJpLCBPY3QgMjAsIDIwMTcgYXQgNzozNSBQTSwgTWFyayBEZXJyaWN1dHQgPG1hcmtAdGFsaW9zLmNvbT4gd3JvdGU9CjoKPiA+Cj4gPj4gKzEgbG9va2luZyBnb29kIGZyb20gaGVyZSBvbiBteSBwcm9qZWN0cy9yZWxlYXNlcy4KPiA+Pgo+ID4+IC0tCj4gPj4gIkdyZWF0IGFydGlzdHMgYXJlIGV4dHJlbWVseSBzZWxmaXNoIGFuZCBhcnJvZ2FudCB0aGluZ3MiID1FMj04MD05NCBTdD0KZXZlbgo+IFdpbHNvbiwKPiA+PiBQb3JjdXBpbmUgVHJlZQo+ID4+Cj4gPj4gT24gV2VkLCBPY3QgMTgsIDIwMTcgYXQgMTE6NTAgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4+Cj4gPj4gPiBIaSwKPiA+PiA+Cj4gPj4gPiBXZSBzb2x2ZWQgMjYgaXNzdWVzOgo+ID4+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhPwo+ID4+ID4gdmVyc2lvbj0zRDEyMzM4OTY0JnN0eWxlTmFtZT0zRFRleHQmcHJvamVjdElkPTNEMTIzMTY5MjIKPiA+PiA+Cj4gPj4gPiBUaGVyZSBhcmUgMzU3IGlzc3VlcyBsZWZ0IGluIEpJUkEgZm9yIE1hdmVuIGNvcmU6Cj4gPj4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9M0Rwcm9qZWN0JTIwJQo+ID4+ID4gM0QlMjBNTkclMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJQo+ID4+ID4gMjBCWSUyMGR1ZSUyMEFTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMGNyZWF0ZWQlMjBBU0MKPiA+PiA+Cj4gPj4gPiBTdGFnaW5nIHJlcG86Cj4gPj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzczLwo+ID4+ID4KPiA+PiA+IFRoZSBkaXN0cmlidXRhYmxlIGJpbmFyaWVzIGFuZCBzb3VyY2VzIGNhbiBiZSBmb3VuZCBoZXJlOgo+ID4+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gPj4gPiAxMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yLwo+ID4+ID4KPiA+PiA+IFNwZWNpZmljYWxseSB0aGUgemlwLCB0YXJiYWxsIGFuZCBzb3VyY2UgYXJjaGl2ZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4gPj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiA+PiA+IDEzNzMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvYXBhY2hlLW1hdmVuLTMuNS4yLWJpbi56aXAKPiA+PiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+ID4+ID4gMTM3My9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41Lgo+IDItYmluLnRhci5nego+ID4+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gPj4gPiAxMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yL2FwYWNoZS1tYXZlbi0zLjUuMi1zcmMuemlwCj4gPj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiA+PiA+IDEzNzMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvYXBhY2hlLW1hdmVuLTMuNS4KPiAyLXNyYy50YXIuZ3oKPiA+PiA+Cj4gPj4gPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiA+PiA+IGFwYWNoZS1tYXZlbi0zLjUuMi1zcmMudGFyLmd6IHNoYTE6IDk3ZDZkN2IxODQ4NWI3OTA2ZGQ3ZjMxM2NkZDQxMQo+ID4+ID4gOTFkMTZkZGU0Ngo+ID4+ID4gYXBhY2hlLW1hdmVuLTMuNS4yLXNyYy56aXA6IHNoYTE6IGRjOGNhYTVjZGFjYjQwMDk0M2QyNDkxYTAyMGY3NAo+ID4+IDJhNTE4ZThmMDgKPiA+PiA+Cj4gPj4gPiBHaXQgdGFnOgo+ID4+ID4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9M0RtYXZlbi5naXQ7YT0zRGNvbW1pdDtoPQo9M0QKPiA+PiA+IDEzOGVkZDYxZmQxMDBlYzY1OGJmYTJkMzA3YzQzYjc2OTQwYTVkN2QKPiA+PiA+Cj4gPj4gPiBTdGFnaW5nIHNpdGU6Cj4gPj4gPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvY29tcG9uZW50cy9yZWYvMy1MQVRFU1QvCj4gPj4gPgo+ID4+ID4gVm90ZSBvcGVuIGZvciA3MiBob3Vycy4KPiA+PiA+Cj4gPj4gPiBbIF0gKzEKPiA+PiA+IFsgXSArMAo+ID4+ID4gWyBdIC0xCj4gPj4gPgo+ID4+ID4gVGhhbmtzLAo+ID4+ID4KPiA+PiA+IFN0ZXBoZW4uCj4gPj4gPgo+ID4+Cj4gPgo+ID4KPgoKLS0wMDFhMTEzYzhiYjhkNDBhOWYwNTVjMzUyZDA5LS0KCkZyb20gZGV2LXJldHVybi0xMjQyMTMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIE9jdCAxMSAwNzo0Njo0MiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyMTMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMTMzMEQxMEM2MgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDExIE9jdCAyMDE3IDA3OjQ2OjQyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzUyNjQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgT2N0IDIwMTcgMDc6NDY6NDEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM1MTU3IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIE9jdCAyMDE3IDA3OjQ2OjQxIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzUwODggaW52b2tlZCBieSB1aWQgOTkpOyAxMSBPY3QgMjAxNyAwNzo0Njo0MSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMTEgT2N0IDIwMTcgMDc6NDY6NDEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA3NTQyRjFBNTZCQgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTEgT2N0IDIwMTcgMDc6NDY6NDAgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC40MDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuNDAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBQNGJBSTkzRE5oQmggZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsIDExIE9jdCAyMDE3IDA3OjQ2OjM3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd3IwLWYxODEuZ29vZ2xlLmNvbSAobWFpbC13cjAtZjE4MS5nb29nbGUuY29tIFsyMDkuODUuMTI4LjE4MV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBBRTY5MzVGNUZECglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMSBPY3QgMjAxNyAwNzo0NjozNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13cjAtZjE4MS5nb29nbGUuY29tIHdpdGggU01UUCBpZCBrNjJzbzUyNzY2N3dyYy45CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTEgT2N0IDIwMTcgMDA6NDY6MzYgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9dUZpeVhzUDBkWjJuc0RCQ2YxYXVzOEgwR2x0V3BScnZCWXZyMWRYSS92VT07CiAgICAgICAgYj1OQ0RIZFBGTXNzUjMxZTFWNHJ3ZWYrQmRHUEExajR6cjJ1YnhhYjg5L1lydmN1d0lDQ1AyM0VYWFFhUWxZc1ZyTzMKICAgICAgICAgSnRkTDhlU2tDOW5FK0tOYlluM3NOa3hwTFB2SzNRMTNaQjhwZmpxSitzOWdQT3FUcXAxZ2o2WkxzaW5zekh0MGxncmkKICAgICAgICAgV0lyY25ESm0ySUhlRjRmU1VOUUtKR1Z2bWI2NFFxRVR4VCs0Y3Vqd1pDQUFtOU1NZmVwdWJIbThlWStGcUI4aGpRZEQKICAgICAgICAgZ2FxbjliSnZzNi9RZ3FHRkZ3RlpzZ1NtSGJtZjI4L2dLREgvL1NFRXZsVllKKzV4cjR0SWRSTmdrTVV3ZElFY2htTG8KICAgICAgICAgQUFSU0plYzhjWWQvU1NWSzc1cnJKa3VkUnI4NDBrNEZKNDgrMmdqaUdsdlFFdmNORGpJcDd4ZnYyc0RlalIraEUxK3UKICAgICAgICAgY2FMUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9dUZpeVhzUDBkWjJuc0RCQ2YxYXVzOEgwR2x0V3BScnZCWXZyMWRYSS92VT07CiAgICAgICAgYj1tSG1seFhvYnhaSXMzeEtIK1BvSmUzQWwzeGNBMldhM29aWHROTFdMZXNGTG10V3I5dW9XUlkwdWJMZWlsTEtlQjkKICAgICAgICAgL29EN0Q2Q2I1YW9vck16eGkxRWhPZklGd0trNytvQmlQNXBHZWg4aENJelNWZUdnQ3RjUTdURnVFTW00WnJoUjlkNTQKICAgICAgICAga25wc3htVVlNZmNGc1VnbGtycG1LMFNLVklWMlJRSWY2amNyd3BtaU1wcDZCOElvbnpqdUtoaU9Hckc3U3ZPUU02eFQKICAgICAgICAgQ0lsZkxOSzNFQVB2eDAxZHRiOFRBZ3JDSXRjVVFsUHRhVTV4eWpLV0sxbENIQ0s5bHNnT3p4TVRscjBydHRMUGU3T0MKICAgICAgICAgc0NCWndRK2FVcGx5cFZwUWtPVnlJWGxxZ0FFSm9MbE5ONmF6Yk12VTVva1h1c09YYU53WWRObE5mSnZJM2RPaFFsbloKICAgICAgICAgS3JKdz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVk4zOGhOTWZ4ejZ1WUdhNzQyZGE0NjMwb1crVFoxYTU4TXNNb3Z4bDBRdTlnV0svNFAKCTlCWEFrMDZxcncrVjVRN3FzdlJUT1BTT2VGZElOQkx6ZHVzSldqZXZnZz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FCWWxRK1k3Ync2Lzl3cWhyS043endoRlpyajl6UzlibWc2Sm1xQTBxa2RMS3M1WTY5dkhTWFRpZzI2ZUJJY0ZjbzlndnNBMndtQjFOQjZVMnU0Wjk0PQpYLVJlY2VpdmVkOiBieSAxMC4yMjMuMTk3LjE0MSB3aXRoIFNNVFAgaWQgbTEzbXIxNTc4MjQxNXdyZy4yMDMuMTUwNzcwNzk5NTk3MzsKIFdlZCwgMTEgT2N0IDIwMTcgMDA6NDY6MzUgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPENBK25Qbk14eUcyTmVQWHBWcWF3ZTlqUj1pdEhFVDZVdWRuTjlDakhodj1vby1LQ3J4d0BtYWlsLmdtYWlsLmNvbT4KIDwyMTI2OTQxLkJoZVpNS2ZpanBAZ2lnYT4gPENBS0RVTjFzX2MycVoyUXFvRDJDTC1aT2ZOcW1wZjdLem93N2R1NWp5a0N0cUplNGM1UUBtYWlsLmdtYWlsLmNvbT4KIDw3MzkzMjAyLjZGa1JOaFZqWDlAZ2lnYT4KSW4tUmVwbHktVG86IDw3MzkzMjAyLjZGa1JOaFZqWDlAZ2lnYT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAxMSBPY3QgMjAxNyAwNzo0NjoyNSArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXcxdzk2PU5TTHNFa3hkSmtKdTBqWTMyYVE4NzErdHE5WXZqR1JEWUFFSkJ3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjA4OWUwODI0NGJjNDg2NzI0MjA1NWI0MDlmMTIiCgotLTA4OWUwODI0NGJjNDg2NzI0MjA1NWI0MDlmMTIKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKST1FMj04MD05OWQgcmVhbGx5IGxpa2UgaWYgc29tZWJvZHkgY291bGQgZHJhZnQgdGhlIHJlbGVhc2Ugbm90ZXMgZm9yIHRoZSB0PQp3bwpkaWZmZXJlbnQgY2xhc3Nsb2FkZXIgY2hhbmdlcy4gSXQgd2lsbCBtYWtlIGl0IGVhc2llciB0byBkZWNpZGUgd2hldGhlciB0bwpyb2xsIHdpdGggdGhpcyBvciBidW1wIG1pbm9yIHdpdGggKGlmIEkgcmVjYWxsIGNvcnJlY3RseSkgdGhlIGNvcnJlc3BvbmRpbmcKZHJvcCBvZiBKYXZhIDcgcGVyIG91ciBwb2xpY3kgb24gSlZNcyB3aXRoIG1pbm9yIHZlcnNpb24gYnVtcAoKT24gV2VkIDExIE9jdCAyMDE3IGF0IDA3OjMzLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3JvPQp0ZToKCj4gKzEKPiBldmVudHVhbGx5IGFkZGluZyBhIGZsYWcgb3Igc3lzdGVtIHByb3BlcnR5IHRvIGFjdGl2YXRlIHRoZSBuZXcgYmVoYXZpb3VyCj4KPiB0aGlzIHJlbWVtYmVycyBtZSBvZiB0aGUgaWRlYSByZWdhcmRpbmcgZmxhZ3MgdG8gc3VwcG9ydCBuZXcgYmV0YSBmZWF0dXJlPQpzCj4KPiBSZWdhcmRzLAo+Cj4gSGVydj1DMz1BOQo+Cj4gTGUgbWVyY3JlZGkgMTEgb2N0b2JyZSAyMDE3LCAwODoxMzoxMyBDRVNUIEFuZGVycyBIYW1tYXIgYSA9QzM9QTljcml0IDoKPiA+IEknbSBmZWVsaW5nIHN0cm9uZ2VyIGFuZCBzdHJvbmdlciBhYm91dCBub3QgaGF2aW5nIHRoaXMgY2hhbmdlIGluIGEKPiBidWdmaXgKPiA+IHJlbGVhc2UuIFdoeSBub3QgZ28gZm9yIHYzLjYuMCBpZiB3ZSBkZWNpZGUgdGhhdCB0aGUgY2xhc3MgbG9hZGluZyBjaGFuPQpnZQo+ID4gaXMgdGhlIHdheSB0byBnbz8gQW5kIGtlZXAgYnVnZml4IHJlbGVhc2VzIGZvciBqdXN0IGJ1Z2ZpeGVzLgo+ID4KPiA+IC9BbmRlcnMKPiA+Cj4gPiBPbiBXZWQsIE9jdCAxMSwgMjAxNyBhdCAzOjQzIEFNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZT0KLmZyPgo+ID4KPiA+IHdyb3RlOgo+ID4gPiBwZXJoYXBzIHdlIHNob3VsZCBjcmVhdGUgYSBXaWtpIHBhZ2UgZm9yCj4gamF2YS5sYW5nLkNsYXNzTm90Rm91bmRFeGNlcHRpb24KPiA+ID4gYW5kCj4gPiA+IGxpc3QgdGhlIHBsdWdpbnMgd2l0aCBrbm93biBpc3N1ZXMgYW5kIG1pbmltdW0gZml4ZWQgdmVyc2lvbgo+ID4gPgo+ID4gPiB0byBiZSBhZGRlZCBpbgo+ID4gPgo+ID4gPgo+IGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvTUFWRU4vRXJyb3JzK2FuZCtTb2x1dGlvbnMKPiA+ID4KPiA+ID4gUmVnYXJkcywKPiA+ID4KPiA+ID4gSGVydj1DMz1BOQo+ID4gPgo+ID4gPiBMZSBtZXJjcmVkaSAxMSBvY3RvYnJlIDIwMTcsIDAyOjUyOjUzIENFU1QgSGVydj1DMz1BOSBCT1VURU1ZIGEgPUMzPQo9QTljcml0IDoKPiA+ID4gPiBJSVVDLCBpdCdzIE1ERVBMT1ktMjIxIGFib3V0IG5ldC5mbGV4bW9qb3Mub3NzOmZsZXhtb2pvcy1tYXZlbi1wbHVnPQppbgo+ID4gPiA+Cj4gPiA+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NREVQTE9ZLTIyMQo+ID4gPiA+Cj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPgo+ID4gPiA+IEhlcnY9QzM9QTkKPiA+ID4gPgo+ID4gPiA+IExlIG1hcmRpIDEwIG9jdG9icmUgMjAxNywgMjA6NDg6MTMgQ0VTVCBSb2JlcnQgU2Nob2x0ZSBhID1DMz1BOWNyaXQ9CiA6Cj4gPiA+ID4gPiBGWUksIE1ERVBMT1ktMTIxIG1lbnRpb25zIGFub3RoZXIgcGx1Z2luIGJlaW5nIGhpdCBieSB0aGUKPiBjbGFzc2xvYWRlcgo+ID4gPiA+ID4gY2hhbmdlcy4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBSb2JlcnQKPiA+ID4gPiA+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gT24gVHVlLCAwMyBPY3QgMjAxNyAyMDoyMjoxOCArMDIwMCwgQXJuYXVkIEg9QzM9QTlyaXRpZXIgPAo+ID4gPgo+ID4gPiBhaGVyaXRpZXJAZ21haWwuY29tPgo+ID4gPgo+ID4gPiA+ID4gd3JvdGU6Cj4gPiA+ID4gPiA+IFRoYW5rcyBTdGVwaGVuCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IE9uIFR1ZSwgT2N0IDMsIDIwMTcgYXQgODoxOCBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiA+ID4gPj4gSSBhbSBob3BpbmcgSSBjYW4gZmluZCBzb21lIHRpbWUgdG8gZG8gYSBmaW5hbCByb3VuZCBvZgo+IGV4cGVyaW1lbnRzCj4gPiA+Cj4gPiA+IGFuZAo+ID4gPgo+ID4gPiA+ID4gPj4gdGhlbiBjbG9zZSB0aGUgdm90ZSB3aXRoIHN1Y2Nlc3MgYW5kIHB1Ymxpc2guCj4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPj4gT24gVHVlIDMgT2N0IDIwMTcgYXQgMTE6MTMsIEFybmF1ZCBIPUMzPUE5cml0aWVyIDwKPiBhaGVyaXRpZXJAZ21haWwuY29tPgo+ID4gPgo+ID4gPiB3cm90ZToKPiA+ID4gPiA+ID4+ID4gQFN0ZXBoZW4gV2hhdCBzaG91bGQgd2UgZG8gbm93ID8KPiA+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4+ID4gT24gVHVlLCBTZXAgMTksIDIwMTcgYXQgMzoxNCBBTSwgT2xpdmllciBMYW15IDwKPiBvbGFteUBhcGFjaGUub3JnPgo+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4+IHdyb3RlOgo+ID4gPiA+ID4gPj4gPj4gSGkKPiA+ID4gPiA+ID4+ID4+IFNvcnJ5IGEgYml0IG91dCBvZiB0aW1lIEFUTSBmb3IgdGVzdGluZyB0aGlzLgo+ID4gPiA+ID4gPj4gPj4gV2VsbCBJIHRydXN0IEFybmF1ZCB0ZXN0aW5nIHRoYXQgZXNwZWNpYWxseSBpZiB0aGlzIGltcHJvdmUKPiB0aGUKPiA+ID4gPiA+ID4+ID4+IHBlcmZvcm1hbmNlCj4gPiA+ID4gPiA+PiA+PiBvZiB0aGlzIHZlcnkgZ3JlYXQvYXdlc29tZS91c2VycyBvcmllbnRlZCBwbHVnaW4gOlAKPiA+ID4gPiA+ID4+ID4+Cj4gPiA+ID4gPiA+PiA+PiBPbiAxMyBTZXB0ZW1iZXIgMjAxNyBhdCAyMjoxOSwgQXJuYXVkIEg9QzM9QTlyaXRpZXIKPiA+ID4gPiA+ID4+ID4+IDxhaGVyaXRpZXJAYXBhY2hlLm9yZz4KPiA+ID4gPiA+ID4+ID4+Cj4gPiA+ID4gPiA+PiA+PiB3cm90ZToKPiA+ID4gPiA+ID4+ID4+ID4gRGFtbmVkLCBjYW4ndCB3ZSBiZSBhbm9ueW1vdXMgb24gR2l0aHViID8KPiA+ID4gPiA+ID4+ID4+ID4gSSBtYWludGFpbiBpdCBpcyBhIGJpZyB3b3JkLCBJJ20gdHJ5aW5nIHRvIGZpeCBtb3JlIGJ1Z3MKPiB0aGFuCj4gPiA+ID4gPiA+PiA+PiA+IEkKPiA+ID4gPiA+ID4+ID4+ID4gYWRkCj4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPj4gbmV3Cj4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPj4gPj4gPiBvbmVzCj4gPiA+ID4gPiA+PiA+PiA+IEkgYWRkZWQgT2xlZyBpbiB0aGUgbG9vcCBhcyBoZSBjb250cmlidXRlZCBhIGxvdCBvbiBpdCB0bz0Kbwo+ID4gPiA+ID4gPj4gPj4gPiBJIGRpZCBhIHF1aWNrIHRlc3QgdG8gYnVpbGQgb24gSmVua2lucyAyLjYwLjMgb3VyIG1hdmVuCj4gY29yZQo+ID4gPgo+ID4gPiB3aXRoCj4gPiA+Cj4gPiA+ID4gPiA+PiB0aGUKPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+PiA+PiBFdmlsCj4gPiA+ID4gPiA+PiA+Pgo+ID4gPiA+ID4gPj4gPj4gPiBNYXZlbiBwbHVnaW4gMi4xNyBvbiBhIGxvY2FsIFNTSCBhZ2VudCBhbmQgaXQgaXMgb2sKPiA+ID4gPiA+ID4+ID4+ID4gQnV0IGl0IGlzIHJlYWxseSBhIHF1aWNrIHRlc3QgLi4uCj4gPiA+ID4gPiA+PiA+PiA+Cj4gPiA+ID4gPiA+PiA+PiA+IENoZWVycwo+ID4gPiA+ID4gPj4gPj4gPgo+ID4gPiA+ID4gPj4gPj4gPgo+ID4gPiA+ID4gPj4gPj4gPgo+ID4gPiA+ID4gPj4gPj4gPiBPbiBXZWQsIFNlcCAxMywgMjAxNyBhdCAxMDowNyBBTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPiA+ID4gPiA+PiA+PiA+Cj4gPiA+ID4gPiA+PiA+PiA+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiA+ID4gPj4gPj4gPiA+IE9uIDEzIFNlcHRlbWJlciAyMDE3IGF0IDAxOjA1LCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+ID4gPiA+ID4+ID4+ID4gPgo+ID4gPiA+ID4gPj4gPj4gPiA+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiA+ID4gPj4gPj4gPiA+PiBPbiAxMyBTZXB0ZW1iZXIgMjAxNyBhdCAwMDoyNiwgQW5kZXJzIEhhbW1hcgo+ID4gPiA+ID4gPj4gPj4gPiA+PiA8YW5kZXJzQGhhbW1hci5uZXQ+Cj4gPiA+ID4gPiA+PiA+Pgo+ID4gPiA+ID4gPj4gPj4gd3JvdGU6Cj4gPiA+ID4gPiA+PiA+PiA+ID4+PiBPbiBUdWUsIFNlcCAxMiwgMjAxNyBhdCA4OjU0IFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+ID4gPiA+ID4+ID4+ID4gPj4+Cj4gPiA+ID4gPiA+PiA+PiA+ID4+PiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+ID4gPiA+ID4+ID4+ID4gPj4+ID4gSGF2ZSB3ZSBnb3QgYW55IGZlZWRiYWNrIGZyb20gdGhlIGVtYmVkZGVyCj4gaW50ZWdyYXRpb25zCj4gPiA+Cj4gPiA+IHlldD8KPiA+ID4KPiA+ID4gPiA+ID4+ID4+ID4gPj4+IEkgaGF2ZW4ndCBoZWFyZCBhbnl0aGluZyBmcm9tIHRoZSBtMmUgcGVvcGxlLiBNYXliZSB3PQplCj4gPiA+Cj4gPiA+IG5lZWQgdG8KPiA+ID4KPiA+ID4gPiA+ID4+IHBpbmcKPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+PiA+PiA+IHRoZW0KPiA+ID4gPiA+ID4+ID4+ID4KPiA+ID4gPiA+ID4+ID4+ID4gPj4+IGRpcmVjdGx5LiBJIGNhbiBjb250YWN0IEZyZWQgQnJpY29uLgo+ID4gPiA+ID4gPj4gPj4gPiA+Pj4KPiA+ID4gPiA+ID4+ID4+ID4gPj4+IC9BbmRlcnMKPiA+ID4gPiA+ID4+ID4+ID4gPj4KPiA+ID4gPiA+ID4+ID4+ID4gPj4gUGxlYXNlIGRvLCBhbHNvIGlmIGFueW9uZSBoYXMgYSBjb250YWN0IGluIG5ldGJlYW5zIG9yCj4gPiA+Cj4gPiA+IGludGVsbGlqCj4gPiA+Cj4gPiA+ID4gPiA+PiBhbmQKPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+PiA+PiA+IGNvdWxkCj4gPiA+ID4gPiA+PiA+PiA+Cj4gPiA+ID4gPiA+PiA+PiA+ID4+IGxldCB0aGVtIGtub3cgd2UnZCBsaWtlIGVpdGhlciBmZWVkYmFjayBvciAid2UncmUgb2sgaT0KZgo+ID4gPiA+ID4gPj4gPj4gPiA+PiBNTkctNjI3NQo+ID4gPiA+ID4gPj4gPj4KPiA+ID4gPiA+ID4+ID4+IG1ha2VzCj4gPiA+ID4gPiA+PiA+Pgo+ID4gPiA+ID4gPj4gPj4gPiA+PiB0cm91YmxlIGZvciB1cywgZ28gYWhlYWQgYW5kIHJlbGVhc2UiLiBJJ2QgbGlrZSB0byBjbG89CnNlCj4gPiA+ID4gPiA+PiA+PiA+ID4+IHRoZQo+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4+IHZvdGUKPiA+ID4gPiA+ID4+IG9uCj4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPj4gPj4gPiBGcmlkYXkKPiA+ID4gPiA+ID4+ID4+ID4KPiA+ID4gPiA+ID4+ID4+ID4gPj4gMTM6MDAgVVRDLgo+ID4gPiA+ID4gPj4gPj4gPiA+Cj4gPiA+ID4gPiA+PiA+PiA+ID4gT2xpdmllciAvIEFybmF1ZCwgaGF2ZSBlaXRoZXIgb2YgeW91IGhhZCBhIGNoYW5jZSB0byB0ZT0Kc3QKPiA+ID4KPiA+ID4gdGhpcwo+ID4gPgo+ID4gPiA+ID4gPj4gd2l0aAo+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4+ID4+IHRoZQo+ID4gPiA+ID4gPj4gPj4KPiA+ID4gPiA+ID4+ID4+ID4gPiBldmlsIHByb2plY3QgdHlwZVsxXSBhcyB5b3UgdHdvIHNlZW0gdG8gYmUgdGhlIGFjdGl2ZQo+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4+IG1haW50YWluZXJzWzJdCj4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPj4gPj4gPiA+IFsxXTogaHR0cHM6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90LmllLzIwMTMvMTEvamVua2lucy09Cj4KPiA+Pgo+ID4gPiA+ID4gPj4gPj4gPiA+Cj4gPiA+ID4gPiA+PiA+PiA+ID4gPiBtYXZlbi1qb2ItdHlwZS1jb25zaWRlcmVkLWV2aWwuaHRtbCBbMl06Cj4gPiA+ID4gPiA+PiA+PiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2plbmtpbnNjaS9tYXZlbi1wbHVnaW4vY29tbWl0cy9tYXN0ZT0Kcgo+ID4gPiA+ID4gPj4gPj4gPgo+ID4gPiA+ID4gPj4gPj4gPiAtLQo+ID4gPiA+ID4gPj4gPj4gPgo+ID4gPiA+ID4gPj4gPj4gPiBBcm5hdWQKPiA+ID4gPiA+ID4+ID4+Cj4gPiA+ID4gPiA+PiA+PiAtLQo+ID4gPiA+ID4gPj4gPj4gT2xpdmllciBMYW15Cj4gPiA+ID4gPiA+PiA+PiBodHRwOi8vdHdpdHRlci5jb20vb2xhbXkgfCBodHRwOi8vbGlua2VkaW4uY29tL2luL29sYW15Cj4gPiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+PiA+IC0tCj4gPiA+ID4gPiA+PiA+IC0tLS0tCj4gPiA+ID4gPiA+PiA+IEFybmF1ZCBIPUMzPUE5cml0aWVyCj4gPiA+ID4gPiA+PiA+IGh0dHA6Ly9haGVyaXRpZXIubmV0Cj4gPiA+ID4gPiA+PiA+IE1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tCj4gPiA+ID4gPiA+PiA+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+PiAtLQo+ID4gPiA+ID4gPj4gU2VudCBmcm9tIG15IHBob25lCj4gPiA+ID4gPgo+ID4gPiA+ID4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4KPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotLQo+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPgo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4gLS0KU2VudCBmcm9tIG15IHBob25lCgotLTA4OWUwODI0NGJjNDg2NzI0MjA1NWI0MDlmMTItLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDM5OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgTm92ICA0IDEzOjIyOjA4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDM5OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA2MjJEMzE3RUE4Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMTM6MjI6MDggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5NTc0NSBpbnZva2VkIGJ5IHVpZCA1MDApOyA0IE5vdiAyMDE3IDEzOjIyOjA4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NTY1NCBpbnZva2VkIGJ5IHVpZCA1MDApOyA0IE5vdiAyMDE3IDEzOjIyOjA4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTU2NDIgaW52b2tlZCBieSB1aWQgOTkpOyA0IE5vdiAyMDE3IDEzOjIyOjA3IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwNCBOb3YgMjAxNyAxMzoyMjowNyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEU4QUE5MTgwNzI0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxMzoyMjowNiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjQwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC40MDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBlZjVFNmtLZkNIUzYgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsICA0IE5vdiAyMDE3IDEzOjIyOjA2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd3IwLWYxODEuZ29vZ2xlLmNvbSAobWFpbC13cjAtZjE4MS5nb29nbGUuY29tIFsyMDkuODUuMTI4LjE4MV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBFQ0UzRjVGRDg5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxMzoyMjowNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13cjAtZjE4MS5nb29nbGUuY29tIHdpdGggU01UUCBpZCB6NTVzbzQ3MjIyMTR3cnouMQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDA0IE5vdiAyMDE3IDA2OjIyOjA1IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPW1BckxGVHVEV1EwUzVHTWEzY1RBLzA0dHhwa3c0M0Y3WUdFSTR2RmZ4ZEk9OwogICAgICAgIGI9V3krVC9sTU53UHlmcTUwRnlacUU3M0VyYmxGZXQ5d2drNWhHVDRiZXRzZ0ZUM0NSby9xNVRuSnV4YzJqVnQ3enJsCiAgICAgICAgIHRqZU1rdGZWR2dZZkZVN3dmTzJPTzBhcUt6aGhUSFBNQStrcVJjalRZYmRHeElqUGR1OGo0UFhQUjJSamI0ZlROREZ6CiAgICAgICAgIHNGRFV5c0xDQ1lUZzVMTks2ajd5YXNJaXltczYyWUNXMTYrR1BweEl0TWVBalZsUlBuTkp3OTQ4Y1EwVjVyMGFnT21YCiAgICAgICAgIE04THNOMEJLSmhHd2RRSGxoZzBjN1BTdHRpSSswcTQ0T2dEdzdleXRsK1gyRFZCclJhTWJzY3FEQkxOdkt3bUhiMndwCiAgICAgICAgIGNUaTAvWXAyc1UvYzVNak1EYkg4YnI2cUk4dVhjQjdmWElySFpWdkMyWkVFTEhkR2pQM0gyTFNkWW52OVhBeDhwWkdwCiAgICAgICAgIDVBSUE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPW1BckxGVHVEV1EwUzVHTWEzY1RBLzA0dHhwa3c0M0Y3WUdFSTR2RmZ4ZEk9OwogICAgICAgIGI9ZG5CTmNIRE1kcTUrQzJHR2lLbGVRWUZmR2dNMUhUQ052RXJuRGNTd01DYVNFTmh3elJTQTZUUmx6LzRlcTdqMElRCiAgICAgICAgIHVPYWRZNDVEYXRmQzJyVTBhcUl2NjVtaFlURHd6VkJvaDdNRkZPWHBwL2I4bkovZHBJV3Zrc1BNZEdqUGZ3ZG42bmhyCiAgICAgICAgIG9sM1B3RFV1Y1pkVFhVR2dqMjFKc0RpUXRRSnNGcWF6WDJPUFg4MFF5NWJWeXBQQzcrTlQwbDE4RDM0WER3a3g4ZkE1CiAgICAgICAgIGc5RTNXUFVrQ1RTU2s1VTJZM0lHS0lsNDlyZmxyaVJ6VmtzZUVXVTNyYjdyOTBFemRGcTJHOW5SMFBCWDZNbWlPN1h5CiAgICAgICAgIFgzVGg2TVppQkZjZzRYNjRmNDNESHNJSDBvVUNQZGhHTFZSc3NvdVhmV0l6Ky9HZlZYakVRZmI0Tms1UkY4c2NrRUlJCiAgICAgICAgIDJaQXc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVg5MHpXaTRidVZ6N3BSOU95VTlYdFZZUXRPTWZDbS9NamRRY1hKRGttN3p4YmxkSjZ2CglqejIwWmV6ZDdnZm1taldaakRmVWlxbTl4S0VwK1lmYjh5UHdlQzJNOVE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArUmlOMDRtdGVPUVU5bGJFR3JoNE9MVDNhZlpwOFRSWFh0YUNuQ0N2V0dLOStiV1IwVVdJTFBJNUlUZkhGV2o0cEhKdzRacUtHRnhZdXZ4ZE5rTk91bz0KWC1SZWNlaXZlZDogYnkgMTAuMjIzLjEzNi41MSB3aXRoIFNNVFAgaWQgZDQ4bXI4MTM1NDg0d3JkLjE1MC4xNTA5ODAxNzI0NzQ3OwogU2F0LCAwNCBOb3YgMjAxNyAwNjoyMjowNCAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8Q0ErblBuTXdFSDlaMm15cDcxdWFTcmRjeUxKUkZyRS1WcnQyMDE5MXJkMDFoK1VmaGp3QG1haWwuZ21haWwuY29tPgogPENBKzI5OFVnOER3b2tzY2R3Qzl2UHJHKzJUUGZzZFR2cVE1R08yUmRSck9NVD12cGZld0BtYWlsLmdtYWlsLmNvbT4KIDxDQStuUG5NeENSOVl0MWdVTFhGLVE0R0RYUnpBZ2haMHNGNVVra1hkU3RVTUNLUE1MOWdAbWFpbC5nbWFpbC5jb20+IDxDQSsyOThVanA2ZFpMVjF5TnFiUEJjNGZXQkR6b3pFeGNDbTdGNTZDbj1FLTlGYURhOEFAbWFpbC5nbWFpbC5jb20+CkluLVJlcGx5LVRvOiA8Q0ErMjk4VWpwNmRaTFYxeU5xYlBCYzRmV0JEem96RXhjQ203RjU2Q249RS05RmFEYThBQG1haWwuZ21haWwuY29tPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBTYXQsIDA0IE5vdiAyMDE3IDEzOjIxOjU0ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NdzZNZ0tlRFcwZU02NmI5dzhXRXk0YTdTLWprV0J1MUIxVktOaWg0VWEtUmdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiA0LjAuMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0OTIyMzg3YzI1ZmIwNTVkMjgxYmNiIgoKLS0wMDFhMTE0OTIyMzg3YzI1ZmIwNTVkMjgxYmNiCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpPbiBTYXQgNCBOb3YgMjAxNyBhdCAxMzoxOCwgUGF1bCBIYW1tYW50IDxwYXVsQGhhbW1hbnQub3JnPiB3cm90ZToKCj4gPgo+ID4KPiA+Cj4gPiA+Cj4gPiA+ICozLiBNb3JlIHBsdWdnYWJsZSBkZXBlbmRlbmN5IHJlc29sdmVyOioKPiA+ID4KPiA+Cj4gPiBJIGFtIHdpbGxpbmcgdG8gbGV0IHRoaXMgYmUgb3B0aW9uYWwgc2NvcGUgZm9yIG5vdy4gTWF5IGJlIHlhbmtlZCBpZiB0b28KPiA+IHJpc2t5IG9yIG5vdCByZWFkeSBpbiB0aW1lCj4gPgo+ID4KPiA+Cj4gSSBkb24ndCBzZWUgaG93IHlvdSBjYW4gZXZlbiBtYWtlIGl0IG9wdGlvbmFsIHdpdGhvdXQgYSBwb20gc3BlY2lmaWVkIHdheQo+IG9mIHNheWluZyAibm90IG1hdmVuIGNlbnRyYWwsIHRoaXMgd2F5L3BsYWNlIGluc3RlYWQiCgoKVGhlbiBvaywgb3V0IG9mIHNjb3BlICh1bmxlc3MgeW91IGZpbmQgYSB3YXkuLiBoaW50IHJlcG9zaXRvcnkgdXJsIGNvdWxkCnVzZSBhIGN1c3RvbSBzY2hlbWUgcHJvdmlkZWQgYnkgYW4gZXh0ZW5zaW9uKQoKPgo+IC0tClNlbnQgZnJvbSBteSBwaG9uZQoKLS0wMDFhMTE0OTIyMzg3YzI1ZmIwNTVkMjgxYmNiLS0KCkZyb20gZGV2LXJldHVybi0xMjM5MzQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIFNlcCAxMCAyMDoyODowMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5MzQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQjAyMkUxQUYzQQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDIwOjI4OjAwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTk5NDMgaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgU2VwIDIwMTcgMjA6Mjg6MDAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE5ODY4IGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIFNlcCAyMDE3IDIwOjI3OjU5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTk4NTYgaW52b2tlZCBieSB1aWQgOTkpOyAxMCBTZXAgMjAxNyAyMDoyNzo1OCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTAgU2VwIDIwMTcgMjA6Mjc6NTggKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA3RTNDQUMxRjc1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAyMDoyNzo1OCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuODc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuODc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCA4V1JvVnNWdDlEcDUgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sIDEwIFNlcCAyMDE3IDIwOjI3OjU3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtdWEwLWYxNzcuZ29vZ2xlLmNvbSAobWFpbC11YTAtZjE3Ny5nb29nbGUuY29tIFsyMDkuODUuMjE3LjE3N10pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBCMzlBRTYwRUY1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAyMDoyNzo1NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC11YTAtZjE3Ny5nb29nbGUuY29tIHdpdGggU01UUCBpZCBnNDdzbzkzNTQ2NzF1YWQuMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDEzOjI3OjU2IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXJGOWZhR1p2TDZRekR4L25vWUUwU0kyVkhVdFhqdXl4NnFiY1ZNd0dtWDg9OwogICAgICAgIGI9Unl3ajFBOTdKZE05ck1OazZCNVBxZ2g1NWh0QTFqME1kbjJISWt3TGJaazJESExLTk5sWnBjSGZNUjNWSkVROGRxCiAgICAgICAgIFBSK3BLWllJeVJjUExrZkxGQWhtS24yTVJMbmNlMkpPY2xqYVpqeFc5Wm5HdXgyMWJ3NWtRSEo0RmUwbHQvK2lPc0toCiAgICAgICAgIGhYYkg0ZlRnTFJGZ3hKc05kc2c0dHMyMENBeG45cVBZdm1qeThQRmtTN0RTSmhtamtRT09GS3pxMnBOR2s5ZS9PTXR4CiAgICAgICAgIG1GNmNlTVV3VW5uZmxzNWpGM3VTUXZOV2hGQUkyRHFLNGQ3dG44SEdsdzhiVWlHZXZjbGhZK1BLcktWQldxQjNybVVGCiAgICAgICAgIHZ4aEJKY2VydDRoajYvemZMUWM1bjFsOER6RXZqSGd5eWIvQmdYN2NEZHBwc2gwcU0zZlpjZ21hWFFnd1NnYjAwMlRBCiAgICAgICAgIGYxbXc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXJGOWZhR1p2TDZRekR4L25vWUUwU0kyVkhVdFhqdXl4NnFiY1ZNd0dtWDg9OwogICAgICAgIGI9UXM4N2FPMnpqMmx4MlV5L1h4NWF4d2hRbTRNdnFEQUgzeVFLUGhNdUJaYktPWW1scVNiVDFPdHY5eThLNmpDQnAzCiAgICAgICAgIDRQMnM3SDN4YThudlVBTlFsdXJmWXVoSzc4ck0wNEdFdnphemNTSExmQVBYOXFaYWx5RUVIOXM2MUdRYUkrczR0SlRqCiAgICAgICAgIDU3VmNxc0oxTlJVOTBJN3RLeFlGcGx4bmtEV0tpSGNadUJ6c05wRGpPRGxUM2JhcElUaTlSL1pqTmRCOVQwbmtESDJnCiAgICAgICAgIGhFcXdpclVyV3p2bUo5SW5KU0lXSWsvZ0ZPNGVGQkhpNGk4UHJlQk43L2VsR0JBUEN6bTVNVVlRWnlOK0N5NUdaaFlmCiAgICAgICAgIFRzdzlqT2gvUGlrMHNmWkNzdklKZzJVWDI0bEw3MWEvMkUvaXlIbElPRW0rVTRqYmt0anNJenRHOXVHRWlQZWJVMWIrCiAgICAgICAgIFBSVEE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWpPeXJiRTRsbkNNNUUzUHM4NFlFSWhKVUJwK21QRzdudSs3Zm1oMGNUZGcvd2NXdmFuCglaVitpMlhibTJCbWk2emtFNlpOdUtZUGRIemQ1OTlYRQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRREUrclRvMGpkSFh6bG9ZRDE5R0xxb3lYdlJKWmZBamtBUkhXekt5MEpzQkFLcmVEci95T21vcEZlbHZ1YTRXUmlhSFdMbzZ1bFdBSWJGYXdaSy91MD0KWC1SZWNlaXZlZDogYnkgMTAuMTc2Ljk1LjY5IHdpdGggU01UUCBpZCB6NW1yNzU3Nzc3MnVhaC4xMDAuMTUwNTA3NTI3NTM4ODsKIFN1biwgMTAgU2VwIDIwMTcgMTM6Mjc6NTUgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPGVmYjk3OTYwLWUxYjctNDIyNy01OTk4LWRlMmMyNDAxNWJiMEBhcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPGVmYjk3OTYwLWUxYjctNDIyNy01OTk4LWRlMmMyNDAxNWJiMEBhcGFjaGUub3JnPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBTdW4sIDEwIFNlcCAyMDE3IDIwOjI3OjQ0ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NdzdvZzVncnFKWk55WWMzSnlNSmNIPXJjaFMtR1lZRF9hTUF2ZUFpY0pvVXdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBUZXN0cyBmb3IgTU5HLTYyNzUgZmFpbCBvbiBKYXZhIDEuNy4wXzE1MS1iMDEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iZjQwMzA0NWZkZmE0MjY1YjlhMDU1OGRiYTVkMiIKCi0tZjQwMzA0NWZkZmE0MjY1YjlhMDU1OGRiYTVkMgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKV2VsbCBJIHJhbiB0aGUgcmVsZWFzZSB3aXRoIDEuNy4wXzgwIHdoaWNoIGlpcmMgaXMgdGhlIGxhc3QgcHVibGljIHJlbGVhc2UKb2YgT3JhY2xlIEphdmEgNy4uLgoKCk9uIFN1biAxMCBTZXAgMjAxNyBhdCAyMTowOCwgTWljaGFlbCBPc2lwb3YgPG1pY2hhZWxvQGFwYWNoZS5vcmc+IHdyb3RlOgoKPiBGb2xrcywKPgo+IHRyaWVkIHJ1bm5pbmcgbWFzdGVyIG9uCj4gTWF2ZW4gaG9tZTogL3Vzci9sb2NhbC9zaGFyZS9qYXZhL21hdmVuCj4gSmF2YSB2ZXJzaW9uOiAxLjcuMF8xNTEsIHZlbmRvcjogT3JhY2xlIENvcnBvcmF0aW9uCj4gSmF2YSBob21lOiAvdXNyL2xvY2FsL29wZW5qZGs3L2pyZQo+IERlZmF1bHQgbG9jYWxlOiBkZV9ERSwgcGxhdGZvcm0gZW5jb2Rpbmc6IFVURi04Cj4gT1MgbmFtZTogImZyZWVic2QiLCB2ZXJzaW9uOiAiMTEuMS1yZWxlYXNlLXAxIiwgYXJjaDogImkzODYiLCBmYW1pbHk6Cj4gInVuaXgiCj4KPiBhbmQgSSBnZXQgdGhpczoKPiBGYWlsZWQgdGVzdHM6Cj4KPgo+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfY29yZVJlYWxtRGVmYXVsdFBhcmVudENsYXNzTG9hZGVyOjk5Cj4gbnVsbAo+Cj4KPiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X2V4dGVuc2lvblJlYWxtRGVmYXVsdFBhcmVudENsYXNzTG9hZGVyOjczCj4gbnVsbAo+Cj4KPiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X21hdmVuQXBpUmVhbG1EZWZhdWx0UGFyZW50Q2xhc3NMb2FkZXI6OTEKPiBudWxsCj4KPgo+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfcGx1Z2luUmVhbG1EZWZhdWx0UGFyZW50Q2xhc3NMb2FkZXI6NjIKPiBudWxsCj4KPgo+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfcHJvamVjdFJlYWxtRGVmYXVsdFBhcmVudENsYXNzTG9hZGVyOjgzCj4gbnVsbAo+Cj4gQWxsIHRlc3RzIGZhaWwgd2l0aCAianVuaXQuZnJhbWV3b3JrLkFzc2VydGlvbkZhaWxlZEVycm9yOiBudWxsIi4KPgo+IFJ1bm5pbmcgd2l0aAo+IE1hdmVuIGhvbWU6IC91c3IvbG9jYWwvc2hhcmUvamF2YS9tYXZlbgo+IEphdmEgdmVyc2lvbjogMS44LjBfMTQ0LCB2ZW5kb3I6IE9yYWNsZSBDb3Jwb3JhdGlvbgo+IEphdmEgaG9tZTogL3Vzci9sb2NhbC9vcGVuamRrOC9qcmUKPiBEZWZhdWx0IGxvY2FsZTogZGVfREUsIHBsYXRmb3JtIGVuY29kaW5nOiBVVEYtOAo+IE9TIG5hbWU6ICJmcmVlYnNkIiwgdmVyc2lvbjogIjExLjEtcmVsZWFzZS1wMSIsIGFyY2g6ICJpMzg2IiwgZmFtaWx5Ogo+ICJ1bml4Igo+Cj4gd29ya3MgZmxhd2xlc3NseS4KPgo+IEFueSBpZGVhcz8KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4gLS0KU2VudCBmcm9tIG15IHBob25lCgotLWY0MDMwNDVmZGZhNDI2NWI5YTA1NThkYmE1ZDItLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDM5MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgTm92ICA0IDEyOjIwOjM4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDM5MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4NzUwRTE3Q0UwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMTI6MjA6MzggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyMjkzMiBpbnZva2VkIGJ5IHVpZCA1MDApOyA0IE5vdiAyMDE3IDEyOjIwOjM4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMjg2MCBpbnZva2VkIGJ5IHVpZCA1MDApOyA0IE5vdiAyMDE3IDEyOjIwOjM4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjI4NDIgaW52b2tlZCBieSB1aWQgOTkpOyA0IE5vdiAyMDE3IDEyOjIwOjM3IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwNCBOb3YgMjAxNyAxMjoyMDozNyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDA2OTZCMTgwOEVGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxMjoyMDozNyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjQwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC40MDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBaRjE2dGhDZTMwRkggZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsICA0IE5vdiAyMDE3IDEyOjIwOjM2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd3IwLWYxODAuZ29vZ2xlLmNvbSAobWFpbC13cjAtZjE4MC5nb29nbGUuY29tIFsyMDkuODUuMTI4LjE4MF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBCNEYyOTVGMkM1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxMjoyMDozNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13cjAtZjE4MC5nb29nbGUuY29tIHdpdGggU01UUCBpZCA0c280MDUxOTJ3cnQuMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDA0IE5vdiAyMDE3IDA1OjIwOjM1IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1BMDd1ZDNPOWk4TXh6OEZEM2hWL25VZDlVM1M4VERDdWRDNmp0ZlRjRjhzPTsKICAgICAgICBiPVFESUEyaENSWHVnS0lHREFZTkRLb3FlVVJRVlJFNXdMY3p5VWtnVmVVbVNkRUtCRDV5TzhpbjMvT01lci9pcFpTYgogICAgICAgICA5djQydnF3dmhDY3IvUFpNK25aeG9jdFNkazZzTXE2bTJ6NVVXcnZFc0lucmcvZndGOHRYT1lFMWNvekdDUjZJWmFwNgogICAgICAgICBaVk5UdEwzZy9jVWxoSmZIYklIS2FIMDFOcXU2UEFBaFJNOE5hdFRIWXorZmhsc2w5WEJKU2hzSWZIR2Q3UHFHYzhacAogICAgICAgICBHb2x6TG4rcmVkeit1MTlhamhkMWdCTnVpa2F0K281YXR4OHVCUVZaMFF0UE1ESENKd2ZFRExsRmJMcitlY25SUWJYMQogICAgICAgICBBcE5CZWRLL0xDaS9CUzdFTkVuTzRoSXRnLzF4ckJ3OXNOQ3VhakNWUytGK0QxZVRKYXgyS1BQWDlsZUVuQ0hJU0F6TAogICAgICAgICBkMVZ3PT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1BMDd1ZDNPOWk4TXh6OEZEM2hWL25VZDlVM1M4VERDdWRDNmp0ZlRjRjhzPTsKICAgICAgICBiPUx2V0JSaXAxV0ZtL0ZtblJ3SmhvbHZwUk1zUkFhbmJ5ZCs2VjZvOVNKd2Jwb3JndC9HYkMwMFpsdG1uWXFxUlhFbQogICAgICAgICBGTDZRSDdCRE9PQ2JXVTVPc3hrRkVQbW9xTnhlcURoL0xlYlJFdlRYSktaSnphMTZML1ZJOEFVdFZHanlEYlA1NXRuZQogICAgICAgICAxeDYxUHdWN0RCU2dTMnFUSjZYZGgrbld6alFKMWg3ZmdMUzBGYXBaVWNCZHpRcm5UZ1F4QUxlaUlIVVZCUUhmWkRIVgogICAgICAgICBKVytmUC9ObFljTjVLQzNFTXphV0t2UFMxeFVNcEtlbEJheFE5VGxuYXA1WHo0SGo0TUU5anF2Nk1ZcUM4bk5GdElSMgogICAgICAgICBqbjVBcWRCaHFZZTJrQkVZaDcwQklqZGlyNmJ4bm1uWXhQdVgzSlVGVENlT3d4dm9LcWlldGVSUS9uWWZVSHg3bDZvWQogICAgICAgICBHUVpnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FXUWZ0OTd1UE04alJGQytFdkNxcVJPMk5JUzk1THBzNkgzcnMyeGVUWWlZUHFTaUlpMAoJMnI4Tm1WSmlnWkxzUG92d1F4SWYrQXRUTHBONUNzaExBYXZ2UXg4djNRPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFCaFFwK1JSdHRCeDFGSGxZTGN2bFRYNDVSL2VCQTRlMzJ0N0RzZnRGWmM2WEh0d1E4dHJIemdVdllUZmV4bHRpWG1Ia01HSGxYelMrVnRvT2tIOGJId3VraHc9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xOTcuMTQxIHdpdGggU01UUCBpZCBtMTNtcjg3MTAyNzd3cmcuMjAzLjE1MDk3OTgwMjkyMDE7CiBTYXQsIDA0IE5vdiAyMDE3IDA1OjIwOjI5IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wCkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFNhdCwgMDQgTm92IDIwMTcgMTI6MjA6MTggKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk13RUg5WjJteXA3MXVhU3JkY3lMSlJGckUtVnJ0MjAxOTFyZDAxaCtVZmhqd0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogTWF2ZW4gNC4wLjAKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDg5ZTA4MjQ0YmM0MzY5NmIxMDU1ZDI3M2ZlOSIKCi0tMDg5ZTA4MjQ0YmM0MzY5NmIxMDU1ZDI3M2ZlOQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpUaGUgcGFzdCB0d28gZGF5cywgSGVydj1DMz1BOSwgUm9iZXJ0IGFuZCBJIGhhdmUgYmVlbiBkaXNjdXNzaW5nIG91ciBuZXh0IHM9CnRlcHMuCgpJIHRoaW5rIHdlIGhhdmUgYSBzZW1pLWNvbnNlbnN1cyB3aGljaCBJIHdhbnQgdG8gYnJpbmcgYmFjayB0byB0aGUgbGlzdDoKCldlIGtlZXAgMy41LnggYXMgYSBzdGFibGUgYnJhbmNoIHdpdGggY3JpdGljYWwgYnVnIGZpeGVzIG9ubHkKCldlIHN3aXRjaCBtYXN0ZXIgdG8gNC4wLjAgYW5kIHN0YXJ0IHRvIGJ1cm4gZG93biBhIHJlbGVhc2Ugc2NvcGUuCgo0LjAuMCB3aWxsIG5vdCBjaGFuZ2UgdGhlIHBvbSBtb2RlbFZlcnNpb24KClRoZSA0LjAuMCBzY29wZSBzaG91bGQgcHJvYmFibHkgYmU6CgpSZXF1aXJlZDoKKiBkcm9wIEphdmEgNywgc3dpdGNoIGNvZGViYXNlIHRvIEphdmEgOCBpZGlvbXMgKHdoaWxlIG1haW50YWluaW5nIGJpbmFyeQphcGkgY29tcGF0aWJpbGl0eSBmb3IgcGx1Z2lucykKKiBzcGVjaWZ5IHRoZSBjbGFzc2xvYWRlciBiZWhhdmlvdXIgYW5kIGZpeCBpbXBsIHRvIGFsaWduIHdpdGggc3BlYyAobWF5Cm5lZWQgYSBwbHVnaW4gZmxhZyB0byBhbGxvdyBwbHVnaW5zIHRvIG9wdCBpbiB0byBzcGVjIGJlaGF2aW91cikKKiBzcGVjaWZ5IHRoZSBleHRlbnNpb24gc3BlYwoqIGFsbG93IGxpbWl0ZWQgbXV0YXRpb24gb2YgdGhlIHJ1bnRpbWUgbW9kZWwgKHJlZHVjaW5nIHRyYW5zaXRpdmUKZGVwZW5kZW5jaWVzIGZvciBjb25zdW1lcnMgd2l0aGluIHRoZSByZWFjdG9yLCBvbmx5IGZvciBwbHVnaW4gZ29hbHMgdGhhdApkZWNsYXJlIGludGVudCkgdXNlIGNhc2U6IHNoYWRlIHBsdWdpbgoqIGJldHRlciBDSSBpbnRlZ3JhdGlvbiBob29rcwoqIG5pY2UgZXJyb3IgbWVzc2FnZSBmb3IgbmV3ZXIgcG9tIG1vZGVsVmVyc2lvbgoKT3B0aW9uYWw6CiogKGRhbW4gSSBmb3Jnb3QsIG1heWJlIFJvYmVydCByZW1lbWJlcnMpCi0tPTIwClNlbnQgZnJvbSBteSBwaG9uZQoKLS0wODllMDgyNDRiYzQzNjk2YjEwNTVkMjczZmU5LS0KCkZyb20gZGV2LXJldHVybi0xMjQ0MTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAgNCAxODo0OToyMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0MTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNThFQTUxMDk1MAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICA0IE5vdiAyMDE3IDE4OjQ5OjIwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTc3NiBpbnZva2VkIGJ5IHVpZCA1MDApOyA0IE5vdiAyMDE3IDE4OjQ5OjIwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5Njk3IGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMTg6NDk6MjAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5Njg1IGludm9rZWQgYnkgdWlkIDk5KTsgNCBOb3YgMjAxNyAxODo0OToxOSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDQgTm92IDIwMTcgMTg6NDk6MTkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBDNEE5NDFBQUMxMQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMTg6NDk6MTggKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC40MDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuNDAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCA3YU9zYVoxcjhtTlggZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsICA0IE5vdiAyMDE3IDE4OjQ5OjE3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd3IwLWYxNzYuZ29vZ2xlLmNvbSAobWFpbC13cjAtZjE3Ni5nb29nbGUuY29tIFsyMDkuODUuMTI4LjE3Nl0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAyRTcxMzYxMTA1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxODo0OToxNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13cjAtZjE3Ni5nb29nbGUuY29tIHdpdGggU01UUCBpZCB5OXNvNTExNzk1MHdyYi4yCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMDQgTm92IDIwMTcgMTE6NDk6MTcgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9b0JVa2h6eHJ3MU9NRTR1YXZOZnluKzhDUXc3OFd1RVNpRnAvbnM3WG5XZz07CiAgICAgICAgYj1meE52V0RMZkpzN1dJTVkwSk1mSDFrZ01CemxTd3lFOTA0Y2o5OXRUMStQOUVvQll3OWROWis0d00zTmtJVkl5NkYKICAgICAgICAgdXg3SDQ0YW5oSlcvSHpqZmVzZ2ExUVpqNWh5VmJpQUxYazRLeHp6UXBSejhtamhUN3oyMkw1MXhONlVvMm5Ba3MyRDcKICAgICAgICAgRXpPaGRRRkZKVXdmN1lmRGxZM1phcHFlZUVId3ZpWjJkR0hoOURPOTBwNlFER1RmZW9BMVpjZWJWdjJISjlMSWJ0K0UKICAgICAgICAgcmtyMGZFQmUxMGppUzJUYlVWS1RlREltemd2N1ppR2I3MlV3cDNveWh4T2tXOHJ0LzRrWDV2ZnZRNEsyd0ZBY1BkOGkKICAgICAgICAgRVplazBsdHBpWWhwVStySHFSbjVEREZvc2xUb2l5RlZKRkpuSjBTTzIyY2ZmdFFYTGhacktreDZoNURBZDFYQ3g0dUQKICAgICAgICAgTkVJdz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9b0JVa2h6eHJ3MU9NRTR1YXZOZnluKzhDUXc3OFd1RVNpRnAvbnM3WG5XZz07CiAgICAgICAgYj1jaENuWGRBeXBhbldra1RzazhBbThSOHd3YVR4YWJBM0xmdGpSMWtHUFZrcUR4RmZLRWlpdUN1QWJPNkhqZ1pMOVcKICAgICAgICAgcW1xdDZFbTBtd3BqVE5YL1NFQTVIUDhsdFlDZmxFSWlTWHNtKzA5Q1NwRFB5Mnp5enVhanRPN201QjgzNDlxVnZrcUwKICAgICAgICAgWmE2ZGNWMXUyczFHc0RWMFl5b3VDb3JESGJFSFJBcHV0MjZ2UXpzc0ViMW4ySnJKbG5aRmhxbHpLdDBQeVhTcVpEUGMKICAgICAgICAgMkRWV3V0eDRpN3ZLRmFxaGZIS3Y5Y2tJU0F3UzA1QnRMZ1hoWFhxZnFWS3RVdFd0NFp2OXJMa21acWZOcXhHOVdMQUQKICAgICAgICAgZ0JRelh3dFRmZE0yZ0ttS1NzTEtZNkhtdE5tSVhXU29vN2hnM2svTTlkd2xCd0s4UG9GRElJOVVPd3FYQnd6N3lseVoKICAgICAgICAgSkZSZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVjhlUEJWaXA3Y0tGS2tIRDFKUEZoV3VGZVVYd0RmSEppNWxLRUp4NFNMS1hyYisrN0MKCUNFVzFXSHh3bXZaS3VRRU1HZTBYZ3VlUXB6eGhzeXJkcVdpdmh6NG9wdz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtRVDNrbTEwaUhzSzhESVVFc1lYOXRJcFVURmtrWlVXcUkxWCtMSzlEdnZ4T2luL2NxbHlLRFQxcmY3N3BpVkV5RFhVb1laenRnWjZHTktsWnZuNm9FPQpYLVJlY2VpdmVkOiBieSAxMC4yMjMuMTM2LjUxIHdpdGggU01UUCBpZCBkNDhtcjg1NjYyNjJ3cmQuMTUwLjE1MDk4MjEzNTU4Mjk7CiBTYXQsIDA0IE5vdiAyMDE3IDExOjQ5OjE1IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDxDQStuUG5Nd0VIOVoybXlwNzF1YVNyZGN5TEpSRnJFLVZydDIwMTkxcmQwMWgrVWZoandAbWFpbC5nbWFpbC5jb20+CiA8Q0ErblBuTXpVUCtBPTJqdUpFWHB2dTJzb0FlRz1zMFF0Y3dXRHMwMGhKNEY1cm1UVGZnQG1haWwuZ21haWwuY29tPgogPENBQ0xFPTdNWUg1VHl3RVpDRFpoUFE9MkhidWFuMVpMeDl6clF1eHg4UFEtVlEyR3pYZ0BtYWlsLmdtYWlsLmNvbT4gPDM1NzE3MDAuWENzVUdPcHlBbUBnaWdhPgpJbi1SZXBseS1UbzogPDM1NzE3MDAuWENzVUdPcHlBbUBnaWdhPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBTYXQsIDA0IE5vdiAyMDE3IDE4OjQ5OjA1ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5Nd0hRekJQaU1iMjVWQnpNeTh5MUItc3RnRTlIQWs9WnRtSC1vSGoxX29rSkFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiA0LjAuMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0OTIyMzg5NmFlMWEwNTVkMmNhZGEwIgoKLS0wMDFhMTE0OTIyMzg5NmFlMWEwNTVkMmNhZGEwCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCk9uIFNhdCA0IE5vdiAyMDE3IGF0IDE3OjUyLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3JvdD0KZToKCj4gTGUgc2FtZWRpIDQgbm92ZW1icmUgMjAxNywgMTg6MzQ6MTQgQ0VUIFJvbWFpbiBNYW5uaS1CdWNhdSBhID1DMz1BOWNyaXQgOgo+ID4gPiBBbmQgc2NyaXB0aW5nIGlzIHRoZSBwYXRoIHRvIHRoZSBkYXJrIHNpZGUgb2YgaW1wZXJhdGl2ZSBidWlsZHMuLi4gYnU9CnQKPiA+ID4gcHJvcG9zYWxzIHdlbGNvbWUKPiA+Cj4gPiBUaGlzIGlzIHRydWUgYnV0IHRoaXMgaXMgYWxzbyBtYW5kYXRvcnkgdG9kYXkuIFRoZXJlIGlzIGEgc21hbGwKPiA+IGFsdGVybmF0aXZlIHRvIHRoYXQgYW5kIEkgd291bGQgYmUgYXMgaGFwcHkgaWYgbWF2ZW4gY2FuIGRvIGl0Ogo+ID4gc3VwcG9ydCBtb2pvIGZyb20gdGhlIHJlYWN0b3IgKGllIGhhdmluZyBhIHByb2plY3Qgd2l0aCB0aGlzIGxheW91dDoKPiA+IHBhcmVudC9bbW9kdWxlMSwgbXktbWF2ZW4tcGx1Z2luXSkuIElmIHRoaXMgd29ya3MgdGhlbiBubyBuZWVkIG9mCj4gPiBzY3JpcHRpbmcKPiBJIGxpa2UgdGhpcyBpZGVhCgoKWWVzLCB0aGlzIGlzIHdoYXQgd2Ugc2hvdWxkIGFpbSBmb3IuIEl0IGZlZWxzIG1vcmUgPUUyPTgwPTlDVGhlIE1hdmVuIHdheT0KPUUyPTgwPTlEIHRvIG1lLgoKVGhlcmUgd291bGQgYmUgbGltaXRhdGlvbnMsIG5hbWVseSB5b3UgY2Fubm90IHVzZSBhbnkgQ0xJIGdvYWxzIGZyb20gdGhlCnBsdWdpbiBpbiB5b3VyIHJlYWN0b3IgQ0xJLi4uIGJ1dCBnb2FsIGV4ZWN1dGlvbnMgaW4gZG93bnN0cmVhbSBtb2R1bGVzCndpdGhpbiB0aGUgc2FtZSByZWFjdG9yIHNob3VsZCBiZSBmaW5lLi4uIHN1YmplY3QgdG8gdGhlIHJlYWN0b3IgcGFyYWxsZWwKZXhlY3V0aW9uIGdyYXBoIHJlc3RyaWN0aW9ucywgbXVjaCBsaWtlIHRoZSByZXN0cmljdGlvbnMgd2Ugd2lsbCBuZWVkIHRvCmZpeCBzaGFkZQoKPgo+Cj4KPiBSZWdhcmRzLAo+Cj4gSGVydj1DMz1BOQo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPiAtLQpTZW50IGZyb20gbXkgcGhvbmUKCi0tMDAxYTExNDkyMjM4OTZhZTFhMDU1ZDJjYWRhMC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NDM0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBOb3YgIDYgMDg6NTA6NDggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDM0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDM5MzZEMTcyREYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAgNiBOb3YgMjAxNyAwODo1MDo0OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDEzMjIzIGludm9rZWQgYnkgdWlkIDUwMCk7IDYgTm92IDIwMTcgMDg6NTA6NDcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDEzMTQwIGludm9rZWQgYnkgdWlkIDUwMCk7IDYgTm92IDIwMTcgMDg6NTA6NDcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMzEyNCBpbnZva2VkIGJ5IHVpZCA5OSk7IDYgTm92IDIwMTcgMDg6NTA6NDcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDA2IE5vdiAyMDE3IDA4OjUwOjQ3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQkJDREIxQTFCQkQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICA2IE5vdiAyMDE3IDA4OjUwOjQ2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuOTAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjkwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIE11ejNialFRU2Y5dyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgIDYgTm92IDIwMTcgMDg6NTA6NDQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13cjAtZjE3OS5nb29nbGUuY29tIChtYWlsLXdyMC1mMTc5Lmdvb2dsZS5jb20gWzIwOS44NS4xMjguMTc5XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDU0MUFENUYyQzUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICA2IE5vdiAyMDE3IDA4OjUwOjQ0ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdyMC1mMTc5Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGwxOHNvNDM1OTM0MndyYy4zCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMDYgTm92IDIwMTcgMDA6NTA6NDQgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Mm1qV0cwZmg5TXhYTGtZeUNvTGpsWEFuY3pFdmF0eGY5ZFdwWFVGR2JMST07CiAgICAgICAgYj1vMWxjUTMrejM5RHp5cXFXY1h5d01Pbm1ISFY2ZDZmUDUrK282NHFZbjJwSnoxb1oyMWpHaHpjM0lYQTZkQXM2dncKICAgICAgICAgQy9MbG5Rc0lFVStQTUF0M05JNG5YbE9VaS9Bc21aWlZKSUNHSk85ZE5zN3ZESlpZOXBBOXFqbDVLMEIrTHpjSFh1TXAKICAgICAgICAgTFkwNmQ4QXUxSEZvdkV3QUM4NFpDMzNreVFOMkRIR3dkQmozQ3RTWjdIZHdvQnV2Q2l2T2FDaUJRQkF6dkY4cjhvVXMKICAgICAgICAgRXhOVEZLUmxSVkwxN0cyb1VGZGp5azJ5emREbytreTArNXY3WUp0NkJsaHpBOThyYzBWcjFGdjdzVVIzWjIzRHRVdzUKICAgICAgICAgK21jd3NsbUxxWTZUQy9CZXRQcjFVQW45dmt3dFlMczlhV3YrcWtjdDhraUJvKzNXZjMrSkpkVDdhTEViMlRQbCtXSHQKICAgICAgICAgbEV1QT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Mm1qV0cwZmg5TXhYTGtZeUNvTGpsWEFuY3pFdmF0eGY5ZFdwWFVGR2JMST07CiAgICAgICAgYj1ZU2dnQlBVTkgyMVlXWG1kS2x6cFdXcVNqd25iSU1OdGpjOUR0eDlLUUVQKzFzanZxRFlicG5seTRzS2hIQ2RCdkQKICAgICAgICAgeWQ3dE1IMnVuN2VoOFMwK0t2UzdWV3ppQitXSlJ2bnRQaFo3aVhzM3ltNVJrUSs2aVRjY28yQnNGOTRKRzFoTXlFTk0KICAgICAgICAgOHdHTERoV2Y2aERGcC8zMkV4S2k2MWxrOHdubXVzVmt1ZmJyUmxhU3ExYlEycHgrNHkycU5qaUhiamNKMWtjdlFVOUYKICAgICAgICAgVTNPWVhZTU5TTXV4ejRGVHBvVkp2OTFRK3pZaUhwN1V1dDhGSy8yaCtzTjZva3dGMXpTL0pGWHhkOVlNL1BDYjRZWUgKICAgICAgICAgalZ1VEROdEVxSFN2K2hlRXdOT1NYZDhGZDR5Rm5nRVhDSDQvR1VzOWxUeUgxL1ZTKzRlcUFmc0wyZEZKR1J4R1MxTGcKICAgICAgICAgdlBZQT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVnhUbUQxT25NVWVtVm9xbHQ5Q21BZWJIVTZNWmIrTHVZc1E1Yjg4bFlNTjIzSk9zUUUKCTZQWWZUQnA4WGRUTzZzbmpzTzl5UGJSVFpHTU9EcDZiOWo0dzdVRFdaUT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtTdHBkQW03eWFNVm8xZ1o0akNMZllLSXFabkYyUUNjdzFSdWxZUFpER3BEYnkvZzdSOEVvcGFGU2dTczJuQjNXUG1ISHdVRlpBejRnR3lPTlRFU3V3PQpYLVJlY2VpdmVkOiBieSAxMC4yMjMuMTM2LjUxIHdpdGggU01UUCBpZCBkNDhtcjExNTE4OTA3d3JkLjE1MC4xNTA5OTU4MjQzMTA4OwogTW9uLCAwNiBOb3YgMjAxNyAwMDo1MDo0MyAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8Q0ErblBuTXdPZ2dTd3NFbjRMX3l1Vlg0NkJ2d24tPWlBTkw2PW9oc0tENlFpNXVZRHhnQG1haWwuZ21haWwuY29tPgpJbi1SZXBseS1UbzogPENBK25Qbk13T2dnU3dzRW40TF95dVZYNDZCdnduLT1pQU5MNj1vaHNLRDZRaTV1WUR4Z0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAwNiBOb3YgMjAxNyAwODo1MDozMiArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXdIZEZUVmU9S2FnaTEtVURjeGQ9b0NtV3FoK2FRdHlPNHNQRVdaQ3IycWNRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogUmVhY3RvciBzYWZlL3JhbGx5IHBvaW50cwpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0OTIyMzhiNGNlMjIwNTVkNGM4Y2I0IgoKLS0wMDFhMTE0OTIyMzhiNGNlMjIwNTVkNGM4Y2I0CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKClRoaW5raW5nIHNvbWUgbW9yZSwgdGhpcyBtaWdodCBiZSBzb21ldGhpbmcgd2UgY291bGQgbGV2ZXJhZ2UgZm9yCmluY3JlbWVudGFsIGJ1aWxkcy4KCklmIHdlIHNhdmUgc3RhdGUgYXQgdGhlIGVuZCBvZiBlYWNoIHBoYXNlIChsYXN0IG1vZGlmaWVkIHRpbWUgc3RhbXBzLCBoYXNoCm9mIGRlcGVuZGVuY2llcywgZXRjLCBhbHNvIGF0dGFjaGVkIGFydGlmYWN0cywgYWRkaXRpb25hbCBzb3VyY2UvcmVzb3VyY2UKcm9vdHMgZXRjKSB0aGVuLCBvbiBzdWJzZXF1ZW50IGJ1aWxkcywgaWYgdGhlIHN0YXRlIGZpbGUgaXMgcHJlc2VudCBhbmQKcmVtYWlucyB2YWxpZCB0aGVuIHdlIGNhbiBza2lwIHByZWNlZGluZyBwaGFzZXMgYW5kIHN0YXJ0IHRoYXQgbW9kdWxlIGZyb20KdGhhdCBwaGFzZS4KCkluIHRoZSBpZGVhbCBjYXNlIHRoYXQgY291bGQgbWVhbiB3ZSBkbyBub3RoaW5nIHdpdGggdGhlIG1vZHVsZSBhcyBub3RoaW5nCmNoYW5nZWQuCgpPbiBTdW4gNSBOb3YgMjAxNyBhdCAxNzo1NywgU3RlcGhlbiBDb25ub2xseSA8CnN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgoKPiBUaGVyZSBhcmUgdHdvIHNldHMgb2YgcHJvYmxlbXMgdGhhdCwgYXNzdW1pbmcgd2Ugd2FudCB0byBmaXgsIGJvdGggbmVlZAo+IHNvbWUgd2F5IHRvIHJhbGx5IGEgY29uY3VycmVudCBtdWx0aW1vZHVsZSBidWlsZCBhdC4KPgo+IDEuIFRoZXJlIGlzIHRoZSBzaGFkZSBsaWtlIGNsYXNzIG9mIHByb2JsZW1zLCB3aGVyZSBhIHBsdWdpbiB3YW50cyB0bwo+IG1vZGlmeSB0aGUgZWZmZWN0aXZlIHRyYW5zaXRpdmUgZGVwZW5kZW5jaWVzIG9mIGEgbW9kdWxlLgo+Cj4gMi4gVGhlcmUgaXMgdGhlIGV4dGVuc2liaWxpdHkgY2xhc3Mgb2YgcHJvYmxlbXMsIHdoZXJlIHBlb3BsZSB3YW50IHRvCj4gYnVpbGQgYSBwbHVnaW4gYW5kIGNvbnN1bWUgdGhlIHNhbWUgcGx1Z2luIGluIG9uZSByZWFjdG9yLgo+Cj4gTm93IGluIGJvdGggY2FzZXMsIEkgdGhpbmsgd2UgY2FuIHNvbHZlIGEgc3Vic2V0IG9mIHRoZXNlIHByb2JsZW1zIGJ5Cj4gaW50cm9kdWNpbmcgYSBjb25jZXB0IG9mIGEgcmFsbHkgLyBzYWZlIHBvaW50IGluIHRoZSBidWlsZCBwbGFuLgo+Cj4gVGhlIG11dGFibGUgbW9kZWwgY2FuIGJlIHNvbHZlZCBmb3IgcmVkdWNpbmcgc2NvcGUvIHJlbW92aW5nCj4gZGVwZW5kZW5jaWVzLi4uIGNvdWxkIHBvc3NpYmx5IGFsc28gYWxsb3cgYWRkaW5nIGRlcGVuZGVuY2llcywgcHJvdmlkZWQgdD0KaGUKPiBkZXBlbmRlbmNpZXMgYXJlIG5vdCBwYXJ0IG9mIHRoZSByZWFjdG9yLiBUaGUgcHJvdmlzbyBpcyB0aGF0IHRoZSBwbHVnaW4KPiBnb2FsIHdvdWxkIG5lZWQgdG8gYmUgbWFya2VkIGFzIGEgPUUyPTgwPTlDbXV0YXRpb249RTI9ODA9OUQgZ29hbCwgYW5kIHRoPQplIGV4ZWN1dGlvbiBvZiBhbGwKPiA9RTI9ODA9OUNtdXRhdGlvbj1FMj04MD05RCBnb2FscyBmb3IgYSBtb2R1bGUgZGVmaW5lcyBhIHNhZmUtcG9pbnQuIEFsbCBkPQpvd25zdHJlYW0gbW9kdWxlcwo+IHRoYXQgZGVjbGFyZSBhIGRlcGVuZGVuY3kgbXVzdCBiZSBibG9ja2VkIGZyb20gZXhlY3V0aW9uIHVudGlsIHRoZQo+IHNhZmUtcG9pbnQgaXMgcmVhY2hlZC4KPgo+IERpc2N1c3Npb24gcG9pbnRzOgo+ICogaG93IGRvIHdlIGhhbmRsZSBhIGJ1aWxkIHJlcXVlc3QgdGhhdCB3aWxsIG5ldmVyIHJlYWNoIHRoZSBzYWZlLXBvaW50LAo+IGVnIGBtdm4gdGVzdGAgd2lsbCBub3QgcmVhY2ggcGFja2FnZSwgYW5kIGhlbmNlIHdpbGwgbm90IHJ1YiBzaGFkZS4uLgo+IHNob3VsZCB3ZSBzYXk6IGZpbmUsIG5vIHNhZmVwb2ludCBpbiBidWlsZCBwbGFuLCBzbyBhbGwgZ29vZC4uLiBzaG91bGQgd2UKPiBzYXk6IG9vcHMgZXNjYWxhdGUgdGhlIG1vZHVsZSB3aXRoIGEgc2FmZSBwb2ludCB0byBgcGFja2FnZWA/Cj4gKiB3aGlsZSB0ZWNobmljYWxseSBwb3NzaWJsZSB0byAqYWRkKiBleC1yZWFjdG9yIGRlcGVuZGVuY2llcyAoaWYKPiBleC1yZWFjdG9yIHRoZXkgY2Fubm90IGFmZmVjdCB0aGUgYnVpbGQgcGxhbikgaXQgY291bGQgYmUgYSBiYWQgaWRlYSBmb3IKPiBidWlsZCByZXF1ZXN0cyB0aGF0IHdvdWxkbj1FMj04MD05OXQgcmVhY2ggdGhlIHNhZmVwb2ludCwgaXMgdGhhdCByZWFzb24gPQplbm91Z2ggdG8KPiByZWplY3QgYWRkaXRpb24/Cj4KPiBUaGUgZXh0ZW5zaWJpbGl0eSBpc3N1ZSBpcyBhY3R1YWxseSBhbiBpbXBvcnRhbnQgY2FzZS4gVXNlcnMgd2FudCBmZWF0dXJlPQpzCj4gbGlrZSBzY3JpcHRpbmcgYmVjYXVzZSB0aGV5IG5lZWQgc29tZXRoaW5nIGN1c3RvbS4gU2NyaXB0aW5nIGJyaW5ncyBiYWNrCj4gaW1wZXJhdGl2ZSBidWlsZHMsIHdoaWNoIElNSE8gTWF2ZW4gdmlld3MgYXMgYW4gYW50aS1wYXR0ZXJuLgo+Cj4gU28gd2hhdCBpcyB0aGUgcHJvYmxlbSBwZW9wbGUgYXJlIHRyeWluZyB0byBzb2x2ZT8gVGhleSB3YW50IGEgcGx1Z2luIGZvcgo+IGp1c3Qgb25lIHByb2plY3QuIFJpZ2h0IG5vdyB5b3UgY2Fubm90IGJlY2F1c2Ugd2UgY2Fubm90IGluc3RhbnRpYXRlIHRoZQo+IGZ1bGwgYnVpbGQgcGxhbiB1bnRpbCB3ZSBjYW4gaW5zcGVjdCB0aGUgcGx1Z2luIG1ldGFkYXRhLi4uIGJ1dCB1bnRpbCB3ZQo+IGJ1aWxkIHRoZSBwbHVnaW4gd2UgY2Fubm90IGdldCB0aGUgbWV0YWRhdGEuCj4KPiBXaXRoIGEgZ2VuZXJhbCBwbHVnaW4sIEkgdGhpbmsgdGhlcmUgaXMgbm90IG11Y2ggd2UgY2FuIGRvLiBGb3IgZXhhbXBsZSBhCj4gcGx1Z2luIHJlZGVmaW5pbmcgYSBsaWZlY3ljbGUgbWlnaHQgYWN0dWFsbHkgbWVhbiB0aGF0IHRoZSBidWlsZCBwbGFuIHdpbD0KbAo+IGJlIGRpZmZlcmVudCBmb3IgbW9kdWxlcyB1c2luZyB0aGF0IHBsdWdpbiBhcyBhbiBleHRlbnNpb24uCj4KPiBCdXQgaWYgdGhlIHBsdWdpbiBpcyBqdXN0IGRlZmluaW5nIHNvbWUgZ29hbHMgYW5kIHRob3NlIGdvYWxzIGFyZSBqdXN0Cj4gYm91bmQgdG8gcGhhc2VzIGluIHRoZSBwcmUtZXhpc3RpbmcgbGlmZSBjeWNsZXMuLi4gYWdhaW4sIGl0IHNlZW1zIHdlIGNhbgo+IGFsbG93IHRoZSBidWlsZCB0byBwcm9jZWVkCj4KPiBEaXNjdXNzaW9uIHBvaW50czoKPiAqIGhvdyB0byBoYW5kbGUgYG12biB0ZXN0YC4gSWYgdGhlIHBsdWdpbiBpcyBvbmx5IGJvdW5kIHRvIGxhdGVyIHBoYXNlcywKPiB3ZSBhcmUgZ29vZC4uLiBidXQgd2hhdCBpZiB0aGUgcGx1Z2luIGlzIGJvdW5kIHRvIGFuIGVhcmx5IHBoYXNlPyBEbyB3ZQo+IGp1c3QgYm9tYiBvdXQgYW5kIHNheSwgc29ycnkgeW91IG5lZWQgdG8gaW52b2tlIGF0IGxlYXN0IHBhY2thZ2U/IERvIHdlCj4gZmFsbCBiYWNrIHRvIGxvY2FsIHJlcG8/IERvIHdlIHVwc2NhbGUgdGhlIGJ1aWxkIHBsYW4gZm9yIHRoZSBwbHVnaW4gdG8KPiBwYWNrYWdlCj4gKiBob3cgdG8gaGFuZGxlIGBtdm4gc2l0ZWAuLi4gaW4gdGhpcyBjYXNlIHdlIHdvdWxkbj1FMj04MD05OXQgYmUgcHJvZHVjaT0KbmcgdGhlCj4gcGx1Z2luIGluIHRoZSByZWFjdG9yIGFueXdheS4uLiBkbyB3ZSBib21iIG91dCBhbmQgc2F5ID1FMj04MD05Q3lvdSBtdXN0ID0KZG8gYG12bgo+IHBhY2thZ2Ugc2l0ZWA9RTI9ODA9OUM/IERvIHdlIG1vZGlmeSB0aGUgYnVpbGQgcGxhbj8gRG8gd2UgdXNlIGxvY2FsIHJlcG89Cj8KPiAqIHdlIGNvdWxkIGJlIHNtYXJ0ZXIgYW5kIHVzZSB0aGUgYnVpbGQgcGxhbiBzYWZlcG9pbnQgYXMgYSBzdGFnaW5nIHBvaW50Cj4gYW5kIGFsbG93IGxpZmVjeWNsZXMgYW5kIG90aGVyIHRoaW5ncy4uLiB0aG91Z2ggb2J2aW91c2x5IG1vcmUgd29yawo+ICogd2hhdCBhYm91dCBpbnZva2luZyBhIHBsdWdpbiBnb2FsIGZyb20gdGhlIENMSSBkaXJlY3RseS4uLiBkbyB3ZSBhc2sgZm89CnIKPiBgbXZuIHBhY2thZ2UgZm9vOm1hbmNodWA/IEZvciB0aGlzIHRvIHdvcmssIGZvbzptYW5jaHUgd291bGQgaGF2ZSB0byBiZSBhPQpuCj4gYWdncmVnYXRvciBnb2FsLCBvdGhlcndpc2UgaXQgY291bGQgYmUgYW4gZXhlY3V0aW9uIHJlcXVlc3Qgb24gZWFybGllcgo+IG1vZHVsZXMgYnkgYSBsYXRlciBtb2R1bGU/IENvdWxkIHdlIGRlbGF5IHRoZSBidWlsZCBwbGFuIGluc3RhbnRpYXRpb24KPiB1bnRpbCBhZnRlciB0aGUgcGx1Z2luIGlzIGJ1aWx0PyBDb3VsZCB3ZSBqdXN0IHJlcXVpcmUgdGhlIHBsdWdpbiBiZSBzZXJ2PQplZAo+IGZyb20gdGhlIGxvY2FsIHJlcG9zaXRvcnkgYW5kIHJldmFsaWRhdGUgdGhlIGJ1aWxkIHBsYW4gYWZ0ZXIgdGhlIG5ldwo+IHBsdWdpbiBidWlsZCBpcyBhdmFpbGFibGU/Cj4KPiBJIHRoaW5rIHRoZXNlIGFyZSB0d28gaW1wcm92ZW1lbnRzIHRoYXQgY291bGQgYmUgbWFkZSAqd2l0aG91dCogY2hhbmdlcyB0PQpvCj4gdGhlIG1vZGVsVmVyc2lvbiBhbmQgdGhleSB3b3VsZCBoYXZlIGEgcmVhbCBhbmQgbWVhbmluZ2Z1bCBpbXByb3ZlbWVudCBmbz0Kcgo+IG91ciB1c2Vycy4uLiBhcyBzdWNoIEkgd291bGQgbGlrZSB1cyB0byBjb25zaWRlciAoYXMgb3B0aW9uYWwgZ29hbHMpIGZvcgo+IE1hdmVuIDQuMC4wCj4KPiBXZHl0Pwo+IC0tCj4gU2VudCBmcm9tIG15IHBob25lCj4KLS09MjAKU2VudCBmcm9tIG15IHBob25lCgotLTAwMWExMTQ5MjIzOGI0Y2UyMjA1NWQ0YzhjYjQtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDc5Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gRGVjIDE4IDE5OjMyOjUwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDc5Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBBODM3RjEwOTNCCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMTggRGVjIDIwMTcgMTk6MzI6NTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyMTg2NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBEZWMgMjAxNyAxOTozMjo1MCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjE4MDIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggRGVjIDIwMTcgMTk6MzI6NTAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMTc5MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDE4IERlYyAyMDE3IDE5OjMyOjQ5IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAxOCBEZWMgMjAxNyAxOTozMjo0OSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDdENUFGMUEwNkJGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxOCBEZWMgMjAxNyAxOTozMjo0OSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjkwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC45MDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsCglTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBDb1c1R1JWSmRSS0ogZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sIDE4IERlYyAyMDE3IDE5OjMyOjQ4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd3IwLWYxNzcuZ29vZ2xlLmNvbSAobWFpbC13cjAtZjE3Ny5nb29nbGUuY29tIFsyMDkuODUuMTI4LjE3N10pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBCMkY1RjVGM0NFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxOCBEZWMgMjAxNyAxOTozMjo0NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13cjAtZjE3Ny5nb29nbGUuY29tIHdpdGggU01UUCBpZCB2MjFzbzQ3MDg3Njl3cmMuMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE4IERlYyAyMDE3IDExOjMyOjQ3IC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUFGa0ZKL3FXYUpPRW1kdkRNajhIRmpiNi93SmR4dkVVY1NOMzJzdDhjems9OwogICAgICAgIGI9blBlQ1NYZmdFVmFjMVRURHhzbkVxaVI2MkhnemU2VnBOMTR2Q3NlbElMZDdoT0pUaU1na09SWDUxaisvbE9TZ09aCiAgICAgICAgIE9qL2pYamQwRFU4YmxiVW9YMkVpeTYwNkFXaVFXakNkSGE2Y1JVN3NoNzlleFpCMVpQUlNyZ2xuVG1jbHV4V3E0K0RqCiAgICAgICAgIE5TVlJRM1ZPNTNvTWo1TVl6aEdMYXVRWk41R2YwQ1FPR1RSRHZxL2lBcHF5dUorUm9uaUg1RHF0T0JWcWJsVkxOY2ZzCiAgICAgICAgIDBqVHFwbEorczR0NUp1YlpSaFBpTUlYVHlmYnJOa1NxTCtQbkVSSFU4aTV5SGt6TDhwb2hEQ0w0ZnRqVnU4b2VTTnJVCiAgICAgICAgIHJzaWV3dHlqcE1CV3daUmV1VFMwbFphc3JodDZ6SkdieHdMTkhZaExJYkJMaCt0OU9EL0ZLdVE5TmRlNllVYmZNSmRYCiAgICAgICAgIDlSTlE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUFGa0ZKL3FXYUpPRW1kdkRNajhIRmpiNi93SmR4dkVVY1NOMzJzdDhjems9OwogICAgICAgIGI9UFJFejVPTlFhQUpIaFFwMVpKM1FJeDY2YzNiYjNrWkkxKzRCdFFBWFdBcGRRT2RUSmhWMG1Xc1FBd3IxRFJrUC9qCiAgICAgICAgIGtRY2Y5MUhwYUlITDFwbnRKbXdOaDB1bGxZUjNHQlRDN3lmU0R5UUZsMklhSS96Q0t4Z0FEazFNcHhTWmFvRkFlMFNBCiAgICAgICAgIGZ2OTdxQTFjNjJ6OS9oSkR6aWVRU0NIQ1A1dFRwVWFOMlRuUzJWL0hKK3VpMWFONnJBUWdFdHI0VjFpcGJONXdwTERMCiAgICAgICAgIFMzZXlxa1NMek5YVFBnemI2WTRDdkhOYjlRSmQwcFVhWDIzcERQWklNV3Z5VkREcGtFOFpFVHhWaWxDWjRqU3RpaGdFCiAgICAgICAgIDY3TkgySjkxa1pza1NVR2N1QzNQWElRamhMdXRlLzExZU1nZ0NEMG44U1FTbzBaSUdYRWFXY1dFNWI0MXg0Njh1WGcwCiAgICAgICAgIGVBU0E9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFLR0IzbUxrbGszT0xxa243bWt1Um1ieXo3d2ZUaUFyaEp0SnNsejhSQUNBT2RyTXNZZVlqbG5SCglRVGxCaTUxb1laZzZDSCtDZEtYMVQ5M3RCNkVZck44RTdVRkxaWVNaYUE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUNKZkJvdTJZTWpsUFY1MDYzN3dkTlF6SGlEV0VpM1FCQzlzYlA1UEhvZ2U3OEdUUDlja1pReXZnUXhHeEVLSjFYc3JtR1kvVDJ1R25GYVByelRGOEc2T0xvdz0KWC1SZWNlaXZlZDogYnkgMTAuMjIzLjIwMC42NSB3aXRoIFNNVFAgaWQgZTFtcjExMzcxNzN3cmguMTMzLjE1MTM2MjU1NjExMzA7CiBNb24sIDE4IERlYyAyMDE3IDExOjMyOjQxIC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDxDQUNLaHpybjVGVkEzZUFxalZ6Y0JYalBKMlc2TGVUeUEzX0pCNmNSYVRDaWdRa1lYb3dAbWFpbC5nbWFpbC5jb20+CiA8Q0FDTEU9N09mRDFfaDNEZHRZQmh6MUhSK1dQdXVCVzBCM2FVSHdHZ09nQXI0Yjc1V2VRQG1haWwuZ21haWwuY29tPgpJbi1SZXBseS1UbzogPENBQ0xFPTdPZkQxX2gzRGR0WUJoejFIUitXUHV1QlcwQjNhVUh3R2dPZ0FyNGI3NVdlUUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxOCBEZWMgMjAxNyAxOTozMjozMCArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXdLQm5jYnlXVnVja3ZfWUs5KzhQNmoxV3BEUTNLSmZrUnltQzUwSlQ2KzZ3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogRHluYW1pY2FsbHkgbW9kaWZ5aW5nIE1hdmVuUHJvamVjdC5nZXRNb2RlbCgpIHNvIHRoYXQgc3ViLXNlcXVlbnQKIGxpZmVjeWNsZSBwaGFzZXMgY2FuIHBpY2sgdXAgdGhvc2UgY2hhbmdlcwpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwODllMDgyOWM4YjBlNGVlOTIwNTYwYTI2OTZhIgoKLS0wODllMDgyOWM4YjBlNGVlOTIwNTYwYTI2OTZhCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCk9uIE1vbiAxOCBEZWMgMjAxNyBhdCAxODoxMCwgUm9tYWluIE1hbm5pLUJ1Y2F1IDxybWFubmlidWNhdUBnbWFpbC5jb20+Cndyb3RlOgoKPiBIaQo+Cj4gRGlkIHlvdSB0cnkgd3JpdGluZyBhbiBleHRlbnNpb24gaW5zdGVhZCBvZiBhIG1vam8/IEl0IGRvZXMgZXhhY3RseSB0aGF0ID0KKCsKPiBmZXcgb3RoZXIgdGhpbmdzKQo+Cj4gTGUgMTggZD1DMz1BOWMuIDIwMTcgMTk6MDMsICJRdWlqYWRhLCBKb3NlIE0iIDxqb3NlLnF1aWphZGFAdmVyaXpvbi5jb20+ID0KYQo+ID1DMz1BOWNyaXQgOgo+Cj4gPiBJIHdvdWxkIGxpa2UgdG8gd3JpdGUgYSBNYXZlbiBwbHVnaW4gdGhhdCBhbW9uZyBvdGhlciB0aGluZ3MgbWFuaXB1bGF0ZT0Kcwo+ID4gKGJvdGggYWRkL3VwZGF0ZSkgdGhlIFBPTSBtb2RlbCBhdmFpbGFibGUgYXQgTWF2ZW5Qcm9qZWN0cy5nZXRNb2RlbCgpCj4gd2hpbGUKPiA+IGV4ZWN1dGluZyBNYXZlbiBwaGFzZSBnb2Fscywgc3VjaCBhcyAidGVzdCIgYW5kICJzaXRlIiwgc28gdGhhdCBmb3IKPiA+IGluc3RhbmNlIEkgY2FuOgo+ID4KPiA+IDEpIEFkZCBhIDxyZXBvcnRpbmcvPiBub2RlIGFsb25nIHdpdGggcGx1Z2lucyBpbnNpZGUsIHNvIHRoYXQgd2hlbiB0aGUKPiA+ICJzaXRlIiBwaGFzZSBydW5zLCB0aG9zZSBwbHVnaW5zIGNhbiBiZSB1c2VkIHRvIGdlbmVyYXRlIHJlcG9ydHMKPiA+IDIpIE9uIHRoZSBmbHkgYWRkIHBsdWdpbnMgdG8gPGJ1aWxkLz4sIGFsb25nIHdpdGggPGV4ZWN1dGlvbnMvPiBmb3IgdGhvPQpzZQo+ID4gcGx1Z2lucywgc28gdGhhdCB0aGV5IHJ1biBhcyBwYXJ0IG9mIG90aGVyIHBoYXNlcy4KPiA+IDMpIEZybyBwbHVnaW5zIHRoYXQgYXJlIGFscmVhZHkgaW4gdGhlIFBPTSBtb2RlbCwgdXBkYXRlIHRoaW5ncyBsaWtlCj4gPiB2ZXJzaW9ucywgPGV4ZWN1dGlvbnMvPi4KPiA+Cj4gPgo+ID4gSSBhbHJlYWR5IHdyb3RlIHRoZSBwbHVnaW4sIGFuZCB3cm90ZSBKYXZhIGNvZGUgdG8gbWFrZSB0aGUgbmVjZXNzYXJ5Cj4gPiBhZGRpdGlvbnMvdXBkYXRlIHRvIHRoZSBQT00uIEkndmUgaW5qZWN0ZWQgTWF2ZW5Qcm9qZWN0IGludG8gbXkgTW9qbyB2aT0KYQo+ID4gQFBhcmFtZXRlcihkZWZhdWx0VmFsdWUgPTNEICIke3Byb2plY3R9IikKPiA+Cj4gPiBwcml2YXRlIE1hdmVuUHJvamVjdCBwcm9qZWN0Owo+ID4KPiA+Cj4gPiBCdXQgdGhvc2UgYWRkaXRpb25zL2NoYW5nZXMgdG8gdGhlIFBPTSBNb2RlbCBvYmplY3QgYXJlIGJlaW5nIGlnbm9yZWQuCj4gPiBGb3IgZXhheGFtcGxlLAo+ID4KPiA+IG9uZSB1c2UgY2FzZSBJIGhhdmUgaXMgdG8gdGFjayBvbiA8cmVwb3J0aW5nLz4gd2l0aCBhIGJ1bmNoIG9mIHBsdWdpbnMKPiA+Cj4gPiBhbmQgcmVwb3J0cyB0aGV5IHNob3VsZCBnZW5lcmF0ZS4gSSBleGVjdXRlIG15IGN1c3RvbSBsb2dpYyBhcyBwYXJ0IG9mCj4gPgo+ID4gdGhlIHByZS1zaXRlIGZhY2UgKEkgY3JlYXRlIGEgTW9qbyBhbmQgY29uZmlndXJlZCBpdHMgZ29hbCB0byBydW4gd2l0aAo+ID4gcHJlLXNpdGUpLiBUaGVuIG4KPiA+Cj4gPiBpbiB0aGUgY29kZSBvZiB0aGUgTW9qbyBJIGRvIHRoZSBhZGRpdGlvbnMvdXBkYXRlcyB0byB0aGUgUE9NLiBCdXQKPiA+IHdoZW4gInNpdGUiIHBoYXNlIHJ1bnMsCj4gPgo+ID4gdGhlIHJlcG9ydHMgYWRkZWQgdG8gdGhlIFBPTSBub3QgZXhlY3V0aW5nLgo+ID4KPiA+Cj4gPiBBbSBJIG1pc3Npbmcgc29tZXRoaW5nIGZ1bmRhbWVudGFsIGFib3V0IE1hdmVuIFBPTT8gQXJlIG1vZGlmaWNhdGlvbnMKPiA+IHRvIFBPTSBhdCBydW50aW1lCgoKQXMgb2YgTWF2ZW4gMy4zLjAgdGhlIG1vZGVsIGlzIG5vIGxvbmdlciBydW4tdGltZSBtdXRhYmxlLgoKSSBhbSBub3QgZW50aXJlbHkgaGFwcHkgd2l0aCB0aGlzIGFzIGlzIGNhdXNlcyBpc3N1ZXMgZm9yIHRoZSBzaGFkZSBwbHVnaW4KYW1vbmcgb3RoZXIgdGhpbmdzLCBidXQgdGhlcmUgYXJlIGdvb2QgcmVhc29ucyBmb3IgdGhlIG1vZGVsIHRvIGJlCnJlc3RyaWN0aXZlIGluIHdoYXQgY2hhbmdlcyBhcmUgYWxsb3dlZCAqYWZ0ZXIqIHRoZSBidWlsZCBwbGFuIGhhcyBiZWVuCmRldGVybWluZWQuCgo+Cj4gPgo+ID4gbm90IGFsbG93ZWQ/IEkgc3VzcGVjdCB0aGlzIGlzIHRoZSByZWFzb24sIGJ1dCBJIHdhbnRlZCB0byBjb25maXJtZWQgd2k9CnRoCj4gPgo+ID4gbW9yZSBleHBlcmllbmNlZCBNYXZlbiBkZXZlbG9wZXJzLgo+ID4KPiA+Cj4gPiBUaGFuayB5b3UsIGFuZCBsZXQgbWUga25vdyB3aGF0IG90aGVyIGRldGFpbHMgSSBjYW4gcHJvdmlkZSB0byBjbGFyaWZ5Cj4gPiB0aGluZ3MuCj4gPgo+ID4KPiA+Cj4gPiBCZXN0LAo+ID4KPiA+IEpvc2UuCj4gPgo+Ci0tPTIwClNlbnQgZnJvbSBteSBwaG9uZQoKLS0wODllMDgyOWM4YjBlNGVlOTIwNTYwYTI2OTZhLS0KCkZyb20gZGV2LXJldHVybi0xMjQyNTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE9jdCAxNyAxODoyNjoxOSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyNTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQzdCRUExMDg1NAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDE3IE9jdCAyMDE3IDE4OjI2OjE5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODIxODMgaW52b2tlZCBieSB1aWQgNTAwKTsgMTcgT2N0IDIwMTcgMTg6MjY6MTkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgyMDk4IGludm9rZWQgYnkgdWlkIDUwMCk7IDE3IE9jdCAyMDE3IDE4OjI2OjE5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODIwODEgaW52b2tlZCBieSB1aWQgOTkpOyAxNyBPY3QgMjAxNyAxODoyNjoxOSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMTcgT2N0IDIwMTcgMTg6MjY6MTkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAzQ0ZBRDE4MDgzOAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTcgT2N0IDIwMTcgMTg6MjY6MTggKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC45MDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuOTAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHBSQl91djU2dlN0MSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVR1ZSwgMTcgT2N0IDIwMTcgMTg6MjY6MTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13cjAtZjE3My5nb29nbGUuY29tIChtYWlsLXdyMC1mMTczLmdvb2dsZS5jb20gWzIwOS44NS4xMjguMTczXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDI2ODRBNUZBQzkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDE3IE9jdCAyMDE3IDE4OjI2OjE3ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdyMC1mMTczLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGwxc28yNjUzODgwd3JjLjMKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxNyBPY3QgMjAxNyAxMToyNjoxNyAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9ZjltR0MyNjlrbU9lc2JWczFnVU5KQ0g0aUFhcUVGeG9GSklITG5oZ0F4Zz07CiAgICAgICAgYj1oVDBpUWpEQ0MyVzNvbDkxS284bk9ycXdQUGlVdzNFVm1QaklrNzVGaytLdlJZSDRDd053alkyVVhmaHMwSEtBMjQKICAgICAgICAgVzhveEF5ekxjYU4wVEdTYjBydzFRdlE5aDdrWnRMRVVZQWlIdzl3bkRpV0J5cEJkaVVQSUdSZTE0TGorV0x6ZnR1QlMKICAgICAgICAgaEhWMnFLYUx2SnZXbmRGUkFLM1dXdExlbVh3WWQ3M1BXLzRMYWlYaXZlMlRCOEY4TnpnN0tvUnpmQ2dDSFlOR3plOFkKICAgICAgICAgK3FncVZIUnJrUUEybGh2ZER4clJzQnRZOWREMldwc294MHJRQVlXandsa0dGWDRFenZNbWo0Tk8wK1gramQ4WVJtSDgKICAgICAgICAgZEJsL0VQdXVJOUtHaXNMRm9lOVFuNlJScXRYZDlqQ3RXdVpwRmYzL3BYR3dyc2NKOVh2blZhTGd4M0FtVE8yS2djaGYKICAgICAgICAgYWVLUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9ZjltR0MyNjlrbU9lc2JWczFnVU5KQ0g0aUFhcUVGeG9GSklITG5oZ0F4Zz07CiAgICAgICAgYj1zK0Y3YzlES0JaKzU5Wk1BYWZWZU0wa2RFRUpveUVCQ1pJamYzUDBCUjlMenZYaGRpUXd1b0xGK1RLMkNiOFcybysKICAgICAgICAgM1VlUlhaWGtIOFhvY09iSS9qNmVjWS9oUXlpNGVsa28veElDTThlbTk5R0ErcmhXTTlvQzR2TUJydEx6UlpKK1dqeGUKICAgICAgICAgVUlCMWRnZ3YwRTlTQlJKdDVKdmtxYWljRkNFTVpCVHBISU5QS0x4RUo0M013Ni9EZG9WNVJOZ1ZRNll3bk5Ka3BtQzUKICAgICAgICAgcUQ0U2NkUUhEM3dxcWdQU1ZGSVlRM3JsNTBvQUlPM2Z0WCs1WFg5QStSMDNhbHYrMjk1azc0SG82clhaWVRJbU54ZmIKICAgICAgICAgNW5iTlB4ZVlMOEZGR2UzekE0YzBZVXlqTTk5M29FaDh5cExzZHBFVDYwMTVLK0hRc0pySTBqOFRDUzBwQVllUkZlTUgKICAgICAgICAgMURSZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVzJYRnBIcTRRWkU0RHQydEhvMjVtT2xCWC9WNXE0MjhVMFdqMHVKUGR3S0J3djQzYTEKCVdYM0xyOTFWZzNaamlWWTNPVk5ya2FOU2NTU0QyU2tnbzBMckhsU1IzcUdvClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtTb0I0TkM4UzdHMkl0Zy9nN2g3NHVLVWR6TEV6bGJQdDNzcnFmallJUjY0RHNhNkUydkVHeWJjQUVNL0YyckZqZVU5VkxhOXgzUWI4RXpFVm5WKzFBPQpYLVJlY2VpdmVkOiBieSAxMC4yMjMuMTk3LjE0MSB3aXRoIFNNVFAgaWQgbTEzbXI0NjUwMDY0d3JnLjIwMy4xNTA4MjY0NzcwOTA4OwogVHVlLCAxNyBPY3QgMjAxNyAxMToyNjoxMCAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMjIzLjE4Ny44IHdpdGggSFRUUDsgVHVlLCAxNyBPY3QgMjAxNyAxMToyNjoxMCAtMDcwMCAoUERUKQpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBUdWUsIDE3IE9jdCAyMDE3IDE5OjI2OjEwICswMTAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5Nd0xOTm5zUnV4UEYtVmdESFhvN1E1LXBSWT1kNUczMmRYdk9HdFpnSDYrelFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFtBTk5dIEknbSBwbGFubmluZyB0byBjdXQgMy41LjIgc29vbgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwODllMDgyNDRiYzRlNWI5MDAwNTViYzI0MTU2IgoKLS0wODllMDgyNDRiYzRlNWI5MDAwNTViYzI0MTU2CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpBc3N1bWluZwpodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL2JsdWUvb3JnYW5pemF0aW9ucy9qZW5raW5zL21hdmVuLTMueC1qZW5raW5zZmlsZS9kZXRhaWwvbWFzdGVyLzEzNC9waXBlbGluZQpwYXNzZXMgKEkgbWF5IGhhdmUgdG8gcmV2ZXJ0IHNvbWUgaW50ZWdyYXRpb24gdGVzdHMpIHRoZW4gSSBpbnRlbmQgdG8gcm9sbAozLjUuMiBlaXRoZXIgbGF0ZXIgdG9kYXkgb3IgcGVyaGFwcyBzb21lIHRpbWUgdG9tb3Jyb3cgKG9mIGNvdXJzZSBteQpjdXJyZW50IHdvcmsgd29ya2xvYWQgaXMgc3VjaCB0aGF0IGl0IGNvdWxkIGJlIG5leHQgd2Vlay9tb250aCA7LSkgKQoKSSdkIGxpa2UgYSBjb2RlIGZyZWV6ZSBvbiBtYXN0ZXIgdG9kYXkvdG9tb3Jyb3cgYXNzdW1pbmcgSSBjYW4gZ2V0IGl0IGN1dAp0b2RheS90b21vcnJvdy4uLiBpZiBpdCB0YWtlcyBtZSBsb25nZXIgdGhlbiBjb21taXQgYXdheSBhcyBsb25nIGFzIG1hc3RlcgppcyByZWxlYXNhYmxlIDstKQoKLVN0ZXBoZW4KCi0tMDg5ZTA4MjQ0YmM0ZTViOTAwMDU1YmMyNDE1Ni0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NjY0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBOb3YgMjkgMDk6NDY6MDQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjY0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDNEOENGMTAyREMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyOSBOb3YgMjAxNyAwOTo0NjowNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDM5ODQwIGludm9rZWQgYnkgdWlkIDUwMCk7IDI5IE5vdiAyMDE3IDA5OjQ2OjAzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzOTc1MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOSBOb3YgMjAxNyAwOTo0NjowMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM5NTk1IGludm9rZWQgYnkgdWlkIDk5KTsgMjkgTm92IDIwMTcgMDk6NDY6MDMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDI5IE5vdiAyMDE3IDA5OjQ2OjAzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgOUE0QTExQTAyNzYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDI5IE5vdiAyMDE3IDA5OjQ2OjAyICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuOTAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjkwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGFZOV92R1BrOUQ0QyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgMjkgTm92IDIwMTcgMDk6NDY6MDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13cjAtZjE4MC5nb29nbGUuY29tIChtYWlsLXdyMC1mMTgwLmdvb2dsZS5jb20gWzIwOS44NS4xMjguMTgwXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEEyMTY1NUYyMzEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDI5IE5vdiAyMDE3IDA5OjQ2OjAxICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdyMC1mMTgwLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHE5c28yNzc3NjYxd3JlLjcKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyOSBOb3YgMjAxNyAwMTo0NjowMSAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Z3BySWVEY2hFa1NNcThBVGZKeWYzMlVqK01xSlFaOFNJVmpwQktOMHByWT07CiAgICAgICAgYj1NMjVJV1lpRWVoTTBxdGoxWWZIb2pOWEY2T25wdzBIeTVPNTlucWFpV1ZoYUh1U1JJRzRMYU90YkVDWnhXMUtlL1MKICAgICAgICAgeXBqZmlFVUlHTmtpa2JZaXJSeTBQTTlDN015clpIWDkwUnFodjdCc2hqd052U21rbDhoc3p6MFBiUE1ZWDFyV3ZIdDgKICAgICAgICAgdEQvbmttTlhRanZ4ZFFZeE55U0hkdHE2UFJLRkpOOXVyZVRJa1ZUMVdMbTV2TTZNYU1lb3MyK1BwZVpNMWdLWCtFUm8KICAgICAgICAgRUdzOUJkQkN3UXRuNWo2bGRuNk0yWGc1b1lGSkdRZnRzd1ozSnRvMUxVZVA3NjdGdDQ1SzE1L2hhZ3Bsa25CQThCTy8KICAgICAgICAgVEtxV1JOWFVHZjRiSUY2bnhoTkx0dmpBYmsxWWU1Q0ZKNWJSeTZZZVM1eWVmRzh4bDJUWkIwbXpLSEQ3enhKR1JOTlYKICAgICAgICAgTi9FQT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Z3BySWVEY2hFa1NNcThBVGZKeWYzMlVqK01xSlFaOFNJVmpwQktOMHByWT07CiAgICAgICAgYj1IMFlIWTl2RTcrL1JZNnB6Q0NvTUkrYmxpRmtzT1B4UXNBendlNEhENGt2am51MVFDdmM0QWhhREIvcGxMMWNWRHgKICAgICAgICAgaE1QTTFQTWNuNVdpemtvSmJmSDFSWlNOQkN4am54QUIyNEIvU0RjeFhwajFNWmhkSWs4VmVZTHJGdzRhUVptbkJHNm0KICAgICAgICAgMVdwSWtBZ1I0Zi9lMFRyRkZySHBwYUVQYkZoYk1KYm9MV3NseFhwMnJZVXZjUExrTGNwR2ZpeTVYWGJjQUFYdzdrWk4KICAgICAgICAgZEpvdDhLdWpYeXR6aC9LVkI5TFZ6Si9DYnhQaGhZM3VwUGlkNTRMUEYyOUxGTHFScnQxekdmV1pZMk1KS3A4bGZwVFUKICAgICAgICAgc3dseG10ZXBmL0ZsVVZOaksrMldldDlNdGtNTDVCNERFSiszcE40eWtPa3lVMFQ3a3Z4RHNSRlFYZHNNSEtVZVpqcGMKICAgICAgICAgSmw5dz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYN00xQnpBbEhwUktVblVDd3J5RnVCZmxCWThTamdYNHowTGtWTnpJUUtGZERLbGhXVksKCUFMekdHazJiZDZpWnNZY0dTeUQxclU5SVBCR09EeUdmbDQ2VHNEWHhHdz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1aeHhIbUs0eHpRdzFBWVYwVDZpM1NTeEcybFk0c2VOM3Rkd2pjSFRrMUlDdktYMTUvS1g3cEdNVDNNWXhCSDhuY0pSQ0NmeHo5NUxxcU40L0lhRjhnPQpYLVJlY2VpdmVkOiBieSAxMC4yMjMuMTU2LjE0NiB3aXRoIFNNVFAgaWQgZDE4bXIxMzY5MTY4d3JlLjE2MS4xNTExOTQ4NzYwMzM1OwogV2VkLCAyOSBOb3YgMjAxNyAwMTo0NjowMCAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMjIzLjE3My4yMzUgd2l0aCBIVFRQOyBXZWQsIDI5IE5vdiAyMDE3IDAxOjQ1OjU5IC0wODAwIChQU1QpCkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMjkgTm92IDIwMTcgMDk6NDU6NTkgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk13TUJHNnAraU1ndjBOOURSdDM2OXRFM3o1ckFva1pOS1g0S0pMd3MyckM3QUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogTmV3IEplbmtpbnMgaW50ZWdyYXRpb24KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iZjQwMzA0MzliYjAwYzc0OTljMDU1ZjFjMDBiNCIKCi0tZjQwMzA0MzliYjAwYzc0OTljMDU1ZjFjMDBiNApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKT2ssIGhlcmUncyB0aGUgY3VycmVudCBzdGF0dXM6CgotIFt4XSBDcm9zcyBPUy9KREsgbWF0cml4IGJ1aWxkaW5nCi0gW3hdIEZhc3QgZmFpbAotIFt4XSBFbWFpbCBub3RpZmljYXRpb24KLSBbeF0gRW1haWwgbm90aWZpY2F0aW9uIGluY2x1ZGVzIHJlY2VudCBjaGFuZ2VzCi0gWyBdIEVtYWlsIG5vdGlmaWNhdGlvbiBjb250YWlucyB0YWlsIG9mIGNvbnNvbGUgbG9nCi0gWyBdIEpJUkEgaXNzdWVzIHVwZGF0ZWQKLSBbIF0gQnVpbGQgZGVzY3JpcHRpb24gc2V0IHRvIEpJUkEgdGlja2V0IGlkJ3MKCi0tZjQwMzA0MzliYjAwYzc0OTljMDU1ZjFjMDBiNC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MDU0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBTZXAgMTggMTA6MjA6MzIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDU0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEE0QjNBQ0QwRgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDE4IFNlcCAyMDE3IDEwOjIwOjMyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTc4NzIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggU2VwIDIwMTcgMTA6MjA6MjcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk3NzQ1IGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IFNlcCAyMDE3IDEwOjIwOjI3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTc3MzMgaW52b2tlZCBieSB1aWQgOTkpOyAxOCBTZXAgMjAxNyAxMDoyMDoyNyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMTggU2VwIDIwMTcgMTA6MjA6MjcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA1QTdCODFBMjM0MgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTggU2VwIDIwMTcgMTA6MjA6MjYgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjM3OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjM3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIElrNlpGUUdmZ2hJdyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMTggU2VwIDIwMTcgMTA6MjA6MTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC12azAtZjQ1Lmdvb2dsZS5jb20gKG1haWwtdmswLWY0NS5nb29nbGUuY29tIFsyMDkuODUuMjEzLjQ1XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEQ3MTEyNUY0RTUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE4IFNlcCAyMDE3IDEwOjIwOjE3ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXZrMC1mNDUuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgZzY5c28xODY2MnZrZS41CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTggU2VwIDIwMTcgMDM6MjA6MTcgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWNqV1ZGVFRDNXluMUVKZ1F6SU9iS2FHcklaODVEYUFSamZhcjRKaXk5MDA9OwogICAgICAgIGI9S3daSHVNQmdpY1pqOVJ0amsybnBRWXRBUjllc1p3Y0RNQXZLS0IveDltcG1IcGk5YlVhSnlrb0lpd0J6NHZLNURUCiAgICAgICAgIDB0RnZpT01uMXJXVmE4aXVBMGZmMHlmbmtZbjlpSGFsNitmS0VLdjZiNXdmZUpEYkF3SXhTL0VLWkIzWU94MzBHVHpGCiAgICAgICAgIDg4aHNsRGoxeVltL2o1MzBiMFZQSVlDaXVjL1Q2YngySjk1WlNmYVlHdHdXM2MrWjNFeUJ6Y3Q3dnh5RVV5MjhCZjFFCiAgICAgICAgIC9keTFSNFY4b0ROVlk5R2ZzSXBxelZpQWJPSEZhWEg4RVQwbFRDd2xVR0hrMDUrVEVYWkFRcmNsbjRtS2pCVkZoY3doCiAgICAgICAgIDFPV09NZUJJVVRvRURad20xWEl3VXRWMXV4WkJnYjZrNlcvNmNEZTEwVndMQVpKaEFWeTJqcXFvV3FRclNGaCt2NGNqCiAgICAgICAgIFg0QWc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWNqV1ZGVFRDNXluMUVKZ1F6SU9iS2FHcklaODVEYUFSamZhcjRKaXk5MDA9OwogICAgICAgIGI9a2w0SGQyUnhZaGhrY3VLSjl0S0dmajk5Vm5wSys5SWRYWWdCUlUxNWFhRXRvRE1tUTRxbGtnUlk5b0VaL1RpM0s0CiAgICAgICAgIDFBWmZ1TFpOWmhzL2NpS0tjdk1oOE5NZzZ3Um0zUk82c0krbmY0aDNRcVE0RzhLOTllWGhmbWd0U25paEtISkxvQkhFCiAgICAgICAgIDF4eTYzNnBJVjZ4djlBYVphR3gzUHlSRVFQZVVkVDNHd3NGcTZ4NEl2aHZnZ0tiSmxsVUJIRlhEYjMwN2NXYXVqT3VZCiAgICAgICAgIDBtUlpyTmlpTjVhR3NScUlOWmw3clpwSjc5VC9nUW94Tmx4OWJHV0ZoSVJMbG1hZmROVElaUm5CbUJGRFR4eWgwOE5nCiAgICAgICAgIE5pQXZ0d0FuZmRIQ210WVgvNkFSVWpqRkx0ZnRaWU9oR2JYVW5XSU0vUEpNUGhoRkNvTlEvemUyVFFod3JpRkM2LzRzCiAgICAgICAgIE9qa0E9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWlIeXdob0RhSzlFcFcrVlVvSHpSSTZYOTc3SCs5VkIrQ0ZXYkdGZ0UxUHFxSUJqRkRRCglqVVdYNXF6bFFjYVlkSDBQV2cyMmYybytiUXJWWnkzZUJHQ0R0My9EVXJHbgpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQ1B0azNhMEZsZVk4S0s1VTF4ZjhxZEk2UzA4bXlvamRvcldjVTF3Rk5xazdXSlp3ZVVDQ3lIMGtVVVpMR3RBOFhlSWZCbC9PR0VmY3ZLN21SUzR3dz0KWC1SZWNlaXZlZDogYnkgMTAuMzEuOTMuNiB3aXRoIFNNVFAgaWQgcjZtcjI0MTU3NzA5dmtiLjEyMS4xNTA1NzMwMDE2NTg2OyBNb24sCiAxOCBTZXAgMjAxNyAwMzoyMDoxNiAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTc2LjgyLjI1MiB3aXRoIEhUVFA7IE1vbiwgMTggU2VwIDIwMTcgMDM6MjA6MTUgLTA3MDAgKFBEVCkKRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxOCBTZXAgMjAxNyAwMzoyMDoxNSAtMDcwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXdNQ3FPX0V0Y0JXNV8zck03MS10Q3JpdHA0VWtzeWZQbURHQVlyNnh6PW9RQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogVW5kZXJzdGFuZGluZyBNTkctNjIwOSAod2FzOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEpClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwgSWdvciBGZWRvcmVua28gPGlnb3JAaWZlZG9yZW5rby5jb20+LCAKCT0/VVRGLTg/UT9IZXJ2PUMzPUE5X0JvdXRlbXk/PSA8aGJvdXRlbXlAYXBhY2hlLm9yZz4sIAoJUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzA5MTk4YWM0MzFjMjA1NTk3NDE2MGYiCgotLTk0ZWIyYzA5MTk4YWM0MzFjMjA1NTk3NDE2MGYKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSG1tbSwgc28gSSBkaWQgc29tZSBleHBlcmltZW50czoKCklmIHlvdSB3YW50IHRvIHJpZGUgYWxvbmcsIHRoZSBleHBlcmltZW50cyBhcmUgYXQ6CgpodHRwczovL2dpdGh1Yi5jb20vc3RlcGhlbmMvbW5nLTYyMDkKClNvIGJhc2ljYWxseSBJIGhhdmUgYSBwbHVnaW4gdGhhdCBkb2VzIHRocmVlIGRpZmZlcmVudCB0ZXN0czoKCiAgICAgICAgZ2V0TG9nKCkuaW5mbygiSW5qZWN0ZWQgYnkgQENvbXBvbmVudDoiKTsKICAgICAgICBmb3IgKExpZmVjeWNsZSBsIDogbGlmZWN5Y2xlcykgewogICAgICAgICAgICBpZiAobC5nZXRJZCgpLnN0YXJ0c1dpdGgoIm1uZy02MjA5LSIpKSB7CiAgICAgICAgICAgICAgICBnZXRMb2coKS5pbmZvKCIgICIgKyBsLmdldElkKCkuc3Vic3RyaW5nKDkpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBnZXRMb2coKS5pbmZvKCIiKTsKICAgICAgICBnZXRMb2coKS5pbmZvKCJPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOiIpOwogICAgICAgIHRyeSB7CiAgICAgICAgICAgIENsYXNzTG9hZGVyIHRjY2wgPTNEIExpc3RNb2pvLmNsYXNzLmdldENsYXNzTG9hZGVyKCk7CiAgICAgICAgICAgIGZvciAoVVJMIHVybCA6CkNvbGxlY3Rpb25zLmxpc3QodGNjbC5nZXRSZXNvdXJjZXMoIk1FVEEtSU5GL3Byb2JlLnR4dCIpKSkgewogICAgICAgICAgICAgICAgSW5wdXRTdHJlYW0gaXMgPTNEIHVybC5vcGVuU3RyZWFtKCk7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIGdldExvZygpLmluZm8oIiAgIiArIElPVXRpbC50b1N0cmluZyhpcykudHJpbSgpKTsKICAgICAgICAgICAgICAgIH0gZmluYWxseSB7CiAgICAgICAgICAgICAgICAgICAgaXMuY2xvc2UoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsKICAgICAgICAgICAgdGhyb3cgbmV3IE1vam9FeGVjdXRpb25FeGNlcHRpb24oZS5nZXRNZXNzYWdlKCksIGUpOwogICAgICAgIH0KICAgICAgICBnZXRMb2coKS5pbmZvKCIiKTsKICAgICAgICBnZXRMb2coKS5pbmZvKCJPbiBUaHJlYWQgQ29udGV4dCBDbGFzcyBMb2FkZXI6Iik7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgQ2xhc3NMb2FkZXIgdGNjbCA9M0QKVGhyZWFkLmN1cnJlbnRUaHJlYWQoKS5nZXRDb250ZXh0Q2xhc3NMb2FkZXIoKTsKICAgICAgICAgICAgZm9yIChVUkwgdXJsIDoKQ29sbGVjdGlvbnMubGlzdCh0Y2NsLmdldFJlc291cmNlcygiTUVUQS1JTkYvcHJvYmUudHh0IikpKSB7CiAgICAgICAgICAgICAgICBJbnB1dFN0cmVhbSBpcyA9M0QgdXJsLm9wZW5TdHJlYW0oKTsKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgZ2V0TG9nKCkuaW5mbygiICAiICsgSU9VdGlsLnRvU3RyaW5nKGlzKS50cmltKCkpOwogICAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKICAgICAgICAgICAgICAgICAgICBpcy5jbG9zZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgewogICAgICAgICAgICB0aHJvdyBuZXcgTW9qb0V4ZWN1dGlvbkV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSwgZSk7CiAgICAgICAgfQoKCkZpcnN0IG9mZiwgSSBoaWphY2sgdGhlIEBDb21wb25lbnQgaW5qZWN0aW9uIHdpdGggc29tZSBmYWtlICJsaWZlY3ljbGVzIiB0bwpzZWUgd2hhdCAicGxleHVzIiBleHBvc2VzIHRvIHRoZSBwbHVnaW5zLgoKU2Vjb25kLCBJIGxvb2sgYXQgdGhlIHJlc291cmNlcyB2aXNpYmxlIGZyb20gdGhlIHBsdWdpbidzIGNsYXNzbG9hZGVyLgoKRmluYWxseSwgSSBsb29rIGF0IHRoZSByZXNvdXJjZXMgdmlzaWJsZSBmcm9tIHRoZSBUQ0NMLgoKSGVyZSdzIHdoYXQgMy41LjAgb3V0cHV0czoKCltJTkZPXQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KW0lORk9dIEJ1aWxkaW5nIEJvdGggZXh0ZW5zaW9ucy4gT3JkZXI6IHBsdWdpbjEsIHBsdWdpbjIgMS4wLVNOQVBTSE9UCltJTkZPXQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KW0lORk9dCltJTkZPXSAtLS0gcGx1Z2luMToxLjAtU05BUFNIT1Q6bGlzdCAoZGVmYXVsdCkgQCBwcm9iZTEgLS0tCltJTkZPXSBJbmplY3RlZCBieSBAQ29tcG9uZW50OgpbSU5GT10gICBwbHVnaW4xCltJTkZPXQpbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKW0lORk9dICAgcGx1Z2luMQpbSU5GT10KW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKW0lORk9dICAgcGx1Z2luMQpbSU5GT10KW0lORk9dIC0tLSBwbHVnaW4yOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlMSAtLS0KW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6CltJTkZPXSAgIHBsdWdpbjIKW0lORk9dCltJTkZPXSBPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOgpbSU5GT10gICBwbHVnaW4yCltJTkZPXQpbSU5GT10gT24gVGhyZWFkIENvbnRleHQgQ2xhc3MgTG9hZGVyOgpbSU5GT10gICBwbHVnaW4yCltJTkZPXQpbSU5GT10KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCltJTkZPXSBCdWlsZGluZyBPbmx5IHBsdWdpbjEgZXh0ZW5zaW9ucy4gT3JkZXI6IHBsdWdpbjEsIHBsdWdpbjIKMS4wLVNOQVBTSE9UCltJTkZPXQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KW0lORk9dCltJTkZPXSAtLS0gcGx1Z2luMToxLjAtU05BUFNIT1Q6bGlzdCAoZGVmYXVsdCkgQCBwcm9iZTIgLS0tCltJTkZPXSBJbmplY3RlZCBieSBAQ29tcG9uZW50OgpbSU5GT10gICBwbHVnaW4xCltJTkZPXQpbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKW0lORk9dICAgcGx1Z2luMQpbSU5GT10KW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKW0lORk9dICAgcGx1Z2luMQpbSU5GT10KW0lORk9dIC0tLSBwbHVnaW4yOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlMiAtLS0KW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6CltJTkZPXSAgIHBsdWdpbjIKW0lORk9dICAgcGx1Z2luMQpbSU5GT10gICBleHRqYXIyCltJTkZPXSAgIGV4dGphcjEKW0lORk9dCltJTkZPXSBPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOgpbSU5GT10gICBwbHVnaW4yCltJTkZPXSAgIGV4dGphcjIKW0lORk9dICAgZXh0amFyMQpbSU5GT10KW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKW0lORk9dICAgcGx1Z2luMgpbSU5GT10gICBleHRqYXIyCltJTkZPXSAgIGV4dGphcjEKW0lORk9dCltJTkZPXQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KW0lORk9dIEJ1aWxkaW5nIEJvdGggZXh0ZW5zaW9ucy4gT3JkZXI6IHBsdWdpbjIsIHBsdWdpbjEgMS4wLVNOQVBTSE9UCltJTkZPXQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KW0lORk9dCltJTkZPXSAtLS0gcGx1Z2luMjoxLjAtU05BUFNIT1Q6bGlzdCAoZGVmYXVsdCkgQCBwcm9iZTMgLS0tCltJTkZPXSBJbmplY3RlZCBieSBAQ29tcG9uZW50OgpbSU5GT10gICBwbHVnaW4yCltJTkZPXQpbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKW0lORk9dICAgcGx1Z2luMgpbSU5GT10KW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKW0lORk9dICAgcGx1Z2luMgpbSU5GT10KW0lORk9dIC0tLSBwbHVnaW4xOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlMyAtLS0KW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6CltJTkZPXSAgIHBsdWdpbjEKW0lORk9dCltJTkZPXSBPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOgpbSU5GT10gICBwbHVnaW4xCltJTkZPXQpbSU5GT10gT24gVGhyZWFkIENvbnRleHQgQ2xhc3MgTG9hZGVyOgpbSU5GT10gICBwbHVnaW4xCltJTkZPXQpbSU5GT10KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCltJTkZPXSBCdWlsZGluZyBCb3RoIGV4dGVuc2lvbnMuIE9yZGVyOiBwbHVnaW4xLCBwbHVnaW4yLiBFeHRyYSBkZXBlbmRlbmN5CmluIHBsdWdpbjEgMS4wLVNOQVBTSE9UCltJTkZPXQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KW0lORk9dCltJTkZPXSAtLS0gcGx1Z2luMToxLjAtU05BUFNIT1Q6bGlzdCAoZGVmYXVsdCkgQCBwcm9iZTQgLS0tCltJTkZPXSBJbmplY3RlZCBieSBAQ29tcG9uZW50OgpbSU5GT10gICBleHRqYXIyCltJTkZPXSAgIHBsdWdpbjEKW0lORk9dCltJTkZPXSBPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOgpbSU5GT10gICBwbHVnaW4xCltJTkZPXSAgIGV4dGphcjIKW0lORk9dCltJTkZPXSBPbiBUaHJlYWQgQ29udGV4dCBDbGFzcyBMb2FkZXI6CltJTkZPXSAgIHBsdWdpbjEKW0lORk9dICAgZXh0amFyMgpbSU5GT10KW0lORk9dIC0tLSBwbHVnaW4yOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlNCAtLS0KW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6CltJTkZPXSAgIHBsdWdpbjIKW0lORk9dCltJTkZPXSBPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOgpbSU5GT10gICBwbHVnaW4yCltJTkZPXQpbSU5GT10gT24gVGhyZWFkIENvbnRleHQgQ2xhc3MgTG9hZGVyOgpbSU5GT10gICBwbHVnaW4yCltJTkZPXQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCk5vdyBpZiB3ZSBydW4gd2l0aCAzLjUuMSAod2hpY2ggY29udGFpbnMgdGhlIGZpeCBmb3IgTU5HLTYyMDkpCgpbSU5GT10KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCltJTkZPXSBCdWlsZGluZyBCb3RoIGV4dGVuc2lvbnMuIE9yZGVyOiBwbHVnaW4xLCBwbHVnaW4yIDEuMC1TTkFQU0hPVApbSU5GT10KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCltJTkZPXQpbSU5GT10gLS0tIHBsdWdpbjE6MS4wLVNOQVBTSE9UOmxpc3QgKGRlZmF1bHQpIEAgcHJvYmUxIC0tLQpbSU5GT10gSW5qZWN0ZWQgYnkgQENvbXBvbmVudDoKW0lORk9dICAgcGx1Z2luMgpbSU5GT10gICBwbHVnaW4xCltJTkZPXSAgIGV4dGphcjIKW0lORk9dICAgZXh0amFyMQoKSSB3b3VsZCBoYXZlIGV4cGVjdGVkIHRoZSBzZXF1ZW5jZSB0byBiZTogL2J1aWxkL2V4dGVuc2lvbnMgaW4gcG9tIG9yZGVyCmZvbGxvd2VkIGJ5IC9idWlsZC9wbHVnaW5zL3BsdWdpbltleHRlbnNpb25zPTNEdHJ1ZV0gaW4gcG9tIG9yZGVyLiBUaGlzIHNlZT0KbXMKdG8gYmUgdGhlIHJldmVyc2Ugb3JkZXIuIElzIHRoaXMgYSBidWc/CgpbSU5GT10KW0lORk9dIE9uIFBsdWdpbiBDbGFzcyBMb2FkZXI6CltJTkZPXSAgIHBsdWdpbjEKCldlIGhhdmVuJ3QgY2hhbmdlZCBob3cgdGhlIHBsdWdpbiBjbGFzc2xvYWRlciBnZXRzIGluc3RhbnRpYXRlZCBpbgpNTkctNjIwOS4gSXQgc2VlbXMgc3RyYW5nZSB0byBtZSB0aGF0IHRoaXMgZXhjbHVkZXMgdGhlCi9idWlsZC9leHRlbnNpb25zLi4uIG9uIHRoZSBvdGhlciBoYW5kIHRoaXMgY291bGQgYmUgYSBzaWRlLWVmZmVjdCBvZiBob3cKdGhlIGNsYXNzbG9hZGVyIGdldHMgaW5zdGFudGlhdGVkICh3aGljaCB3b3VsZCBtZWFuIHVzaW5nIHRoZSBwbHVnaW4ncwpjbGFzc2xvYWRlciBpcyBwcm9iYWJseSBhIGJhZCBpZGVhLCBwZXJoYXBzIHdlIG5lZWQgdG8gcHJvdmlkZSB0aGUgYWJpbGl0eQp0byBpbmplY3QgdGhlIGNsYXNzbG9hZGVyIGFzIGEgQENvbXBvbmVudCBvciBzb21ldGhpbmcpCgpbSU5GT10KW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKW0lORk9dICAgZXh0amFyMQpbSU5GT10gICBleHRqYXIyCgpPSywgd2Ugc2VlIHRoZSBjaGFuZ2UgdnMgMy41LjAgYXMgdGhpcyBpcyBub3cgdGhlIHByb2plY3QgcmVhbG0uLi4gdGhvdWdoIEkKd291bGQgaGF2ZSBleHBlY3RlZCB0aGUgcHJvamVjdCByZWFsbSB0byBhbHNvIGluY2x1ZGUgdGhlIHBsdWdpbnMgdGhhdCB3ZXJlCm1hcmtlZCBhcyBleHRlbnNpb25zLi4uCgpbSU5GT10KW0lORk9dIC0tLSBwbHVnaW4yOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlMSAtLS0KW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6CltJTkZPXSAgIHBsdWdpbjIKW0lORk9dICAgcGx1Z2luMQpbSU5GT10gICBleHRqYXIyCltJTkZPXSAgIGV4dGphcjEKW0lORk9dCltJTkZPXSBPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOgpbSU5GT10gICBwbHVnaW4yCltJTkZPXQpbSU5GT10gT24gVGhyZWFkIENvbnRleHQgQ2xhc3MgTG9hZGVyOgpbSU5GT10gICBleHRqYXIxCltJTkZPXSAgIGV4dGphcjIKW0lORk9dCltJTkZPXQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KW0lORk9dIEJ1aWxkaW5nIE9ubHkgcGx1Z2luMSBleHRlbnNpb25zLiBPcmRlcjogcGx1Z2luMSwgcGx1Z2luMgoxLjAtU05BUFNIT1QKW0lORk9dCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpbSU5GT10KW0lORk9dIC0tLSBwbHVnaW4xOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlMiAtLS0KW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6CltJTkZPXSAgIHBsdWdpbjEKW0lORk9dICAgZXh0amFyMgpbSU5GT10gICBleHRqYXIxCgpBcyBleHBlY3RlZCwgZ2l2ZW4gdGhhdCBwbHVnaW4yIGlzIG5vdCBhbiBleHRlbnNpb24gaGVyZSAoYXBhcnQgZnJvbSB0aGUKb3JkZXIgYmVpbmcgcmV2ZXJzZSBvZiB3aGF0IEkgZXhwZWN0KQoKW0lORk9dCltJTkZPXSBPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOgpbSU5GT10gICBwbHVnaW4xCltJTkZPXQpbSU5GT10gT24gVGhyZWFkIENvbnRleHQgQ2xhc3MgTG9hZGVyOgpbSU5GT10gICBleHRqYXIyCltJTkZPXSAgIGV4dGphcjEKW0lORk9dCltJTkZPXSAtLS0gcGx1Z2luMjoxLjAtU05BUFNIT1Q6bGlzdCAoZGVmYXVsdCkgQCBwcm9iZTIgLS0tCltJTkZPXSBJbmplY3RlZCBieSBAQ29tcG9uZW50OgpbSU5GT10gICBwbHVnaW4yCltJTkZPXSAgIHBsdWdpbjEKW0lORk9dICAgZXh0amFyMgpbSU5GT10gICBleHRqYXIxCgpBcyBleHBlY3RlZCAobW9kdWxvIG9yZGVyKSBiZWNhdXNlIGEgcGx1Z2luIHNob3VsZCBzZWUgYW55IHNlbGYtZGVmaW5lZApleHRlbnNpb25zLiBJIHdvdWxkIGV4cGVjdCB0aGUgb3JkZXIgdG8gYmUgcGx1Z2luMiwgZXh0amFyMSwgZXh0amFyMiwKcGx1Z2luMSAoYmVjYXVzZSB0aGUgcGx1Z2luIGlzIG5vdCBhbiBleHRlbnNpb24sIGl0IHNob3VsZCBoYXZlIGl0cwpleHRlbnNpb25zIGFzIHByaW9yaXR5IG92ZXIgdGhlIHByb2plY3QgcmVhbG1zJ3MpCgpbSU5GT10KW0lORk9dIE9uIFBsdWdpbiBDbGFzcyBMb2FkZXI6CltJTkZPXSAgIHBsdWdpbjIKW0lORk9dICAgZXh0amFyMgpbSU5GT10gICBleHRqYXIxCgpXQVQhIG9rLCB0aGlzIEkgZG8gbm90IHVuZGVyc3RhbmQuIFNvbWV0aGluZyBpcyB3cm9uZyBzb21ld2hlcmUsIGVpdGhlcgpwbHVnaW4xJ3MgY2xhc3Nsb2FkZXIgc2hvdWxkIGFsc28gaW5jbHVkZSBleHRqYXIyIGFuZCBleHRqYXIxIG9yIHRoaXMgb25lCnNob3VsZG4ndC4gQW5kIHNpbmNlIHdlIGhhdmUgZXh0amFyMSBhbmQgZXh0amFyMiB3aGVyZSBpcyBwbHVnaW4xPyAoaWYgdGhlCmluY2x1c2lvbiBpcyBjb3JyZWN0IGhlcmUgSSBleHBlY3QgcGx1Z2luMiwgZXh0amFyMSwgZXh0amFyMiwgcGx1Z2luMSBhcyBhCnBsdWdpbiB0aGF0IGlzIG5vdCBhbiBleHRlbnNpb24gcGx1Z2luIHNob3VsZCBoYXZlIGl0cyBvd24gaW1wbGVtZW50YXRpb24KZmlyc3QgZm9sbG93ZWQgdGhlbiBieSAvYnVpbGQvZXh0ZW5zaW9ucyBpbiBwb20gb3JkZXIgYW5kIHRoZW4KL2J1aWxkL3BsdWdpbnMvcGx1Z2luW2V4dGVuc2lvbj0zRD0zRHRydWVdCgpUaGlzIGlzIG1ha2luZyBubyBzZW5zZSBhdCBhbGwhCgpbSU5GT10KW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKW0lORk9dICAgcGx1Z2luMgpbSU5GT10gICBleHRqYXIyCltJTkZPXSAgIGV4dGphcjEKClNvIFRDQ0wgaXMgdGhlIHBsdWdpbiBjbGFzc2xvYWRlciBoZXJlIGFzIGV4cGVjdGVkCgpbSU5GT10KW0lORk9dCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpbSU5GT10gQnVpbGRpbmcgQm90aCBleHRlbnNpb25zLiBPcmRlcjogcGx1Z2luMiwgcGx1Z2luMSAxLjAtU05BUFNIT1QKW0lORk9dCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpbSU5GT10KW0lORk9dIC0tLSBwbHVnaW4yOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlMyAtLS0KW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6CltJTkZPXSAgIHBsdWdpbjIKW0lORk9dICAgcGx1Z2luMQpbSU5GT10gICBleHRqYXIyCltJTkZPXSAgIGV4dGphcjEKCkkgbm90ZSB0aGF0IHRoZSBjaGFuZ2UgaW4gcG9tIG9yZGVyIGhhcyBoYWQgbm8gZWZmZWN0IG9uIHRoZSBjb21wb25lbnQKc2VxdWVuY2UuIFRoaXMgbGVhZHMgbWUgdG8gc3VzcGVjdCB0aGF0IHBsZXh1cyBoYXMgc29tZSBydWxlIHRoYXQgaXMKZGVmaW5pbmcgdGhlIHNlcXVlbmNpbmcuLi4gaXQgd291bGQgYmUgZ29vZCBpZiB3ZSBjb3VsZCBkb2N1bWVudCB0aGF0CnNvbWV3aGVyZS4uLgoKW0lORk9dCltJTkZPXSBPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOgpbSU5GT10gICBwbHVnaW4yCltJTkZPXQpbSU5GT10gT24gVGhyZWFkIENvbnRleHQgQ2xhc3MgTG9hZGVyOgpbSU5GT10gICBleHRqYXIyCltJTkZPXSAgIGV4dGphcjEKW0lORk9dCltJTkZPXSAtLS0gcGx1Z2luMToxLjAtU05BUFNIT1Q6bGlzdCAoZGVmYXVsdCkgQCBwcm9iZTMgLS0tCltJTkZPXSBJbmplY3RlZCBieSBAQ29tcG9uZW50OgpbSU5GT10gICBwbHVnaW4yCltJTkZPXSAgIHBsdWdpbjEKW0lORk9dICAgZXh0amFyMgpbSU5GT10gICBleHRqYXIxCltJTkZPXQpbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKW0lORk9dICAgcGx1Z2luMQpbSU5GT10KW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKW0lORk9dICAgZXh0amFyMgpbSU5GT10gICBleHRqYXIxCltJTkZPXQpbSU5GT10KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCltJTkZPXSBCdWlsZGluZyBCb3RoIGV4dGVuc2lvbnMuIE9yZGVyOiBwbHVnaW4xLCBwbHVnaW4yLiBFeHRyYSBkZXBlbmRlbmN5CmluIHBsdWdpbjEgMS4wLVNOQVBTSE9UCltJTkZPXQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KW0lORk9dCltJTkZPXSAtLS0gcGx1Z2luMToxLjAtU05BUFNIT1Q6bGlzdCAoZGVmYXVsdCkgQCBwcm9iZTQgLS0tCltJTkZPXSBJbmplY3RlZCBieSBAQ29tcG9uZW50OgpbSU5GT10gICBwbHVnaW4xCltJTkZPXSAgIGV4dGphcjIKW0lORk9dICAgcGx1Z2luMgpbSU5GT10gICBleHRqYXIyCltJTkZPXSAgIGV4dGphcjEKCldBVCEgc2VlbXMgdGhhdCBAQ29tcG9uZW50IGlzIHNvbWV3aGF0IGluIHJhbmRvbSBvcmRlciwgaW4gdGhpcyBjYXNlIHdlCmhhdmUgbW9kaWZpZWQgdGhlIGRlcGVuZGVuY2llcyBpZiBwbHVnaW4xIHRvIGFsc28gaW5jbHVkZSBleHRqYXIyLCB0aGUKb3JkZXIgSSB3b3VsZCBleHBlY3QgaXM6CgpleHRqYXIxLCBleHRqYXIyLCBwbHVnaW4xLCBleHRqYXIyLCBwbHVnaW4yCgpHaXZlbiB0aGUgcHJldmlvdXMgZXhlY3V0aW9ucyBhbmQgdGhlIGZhY3QgdGhhdCBjaGFuZ2luZyB0aGUgc2VxdWVuY2Ugb2YKcGx1Z2luMSBhbmQgcGx1Z2luMiBpbiB0aGUgcG9tIGRpZCBub3QgYWZmZWN0IHRoZSBwcmV2aW91cyBleGVjdXRpb25zLCBpZgpwbGV4dXMgaGFkIGEgZGV0ZXJtaW5pc3RpYyBvcmRlcmluZyB0aGVuIEkgd291bGQgaGF2ZSBiZWVuIHNvbWV3aGF0IE9LIHdpdGg9CjoKCnBsdWdpbjIsIHBsdWdpbjEsIGV4dGphcjIsIGV4dGphcjIsIGV4dGphcjEKCkJ1dCB0aGlzIHNlZW1zIHRvIHN1Z2dlc3QgdGhhdCB3ZSBoYXZlIGEgY29tcGxldGVseSBub24tZGV0ZXJtaW5pc3RpYwpvcmRlcmluZy4uLiB0aGF0IGlzIG5vdCBnb29kIGZvciByZXByb2R1Y2libGUgYnVpbGRzLi4uCgpbSU5GT10KW0lORk9dIE9uIFBsdWdpbiBDbGFzcyBMb2FkZXI6CltJTkZPXSAgIHBsdWdpbjEKW0lORk9dICAgZXh0amFyMgoKTm93IHdlIHNlZSBleHRqYXIyIGJ1dCBvbmx5IGJlY2F1c2UgaXQgaGFzIGJlZW4gZXhwbGljaXRseSBhZGRlZCB0byB0aGUKcGx1Z2lucyBkZXBlbmRlbmNpZXMsIElNSE8gaXQgc2hvdWxkIGJlIGhlcmUgdHdpY2UsIGUuZy4KCmV4dGphcjEsIGV4dGphcjIsIHBsdWdpbjEsIGV4dGphcjIsIHBsdWdpbjIKCkJ1dCBpdCBzZWVtcyBhY2NlcHRhYmxlIGlmIHRoaXMgaXMgaW5zdGVhZCBwbHVnaW4xLCBleHRqYXIyICh0aG91Z2ggaXQKbWFrZXMgdGhlIHBsdWdpbiBjbGFzc2xvYWRlciB1c2VsZXNzIGZvciBkaXNjb3ZlcnkpCgpbSU5GT10KW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKW0lORk9dICAgZXh0amFyMQpbSU5GT10gICBleHRqYXIyCltJTkZPXQpbSU5GT10gLS0tIHBsdWdpbjI6MS4wLVNOQVBTSE9UOmxpc3QgKGRlZmF1bHQpIEAgcHJvYmU0IC0tLQpbSU5GT10gSW5qZWN0ZWQgYnkgQENvbXBvbmVudDoKW0lORk9dICAgcGx1Z2luMQpbSU5GT10gICBleHRqYXIyCltJTkZPXSAgIHBsdWdpbjIKW0lORk9dICAgZXh0amFyMgpbSU5GT10gICBleHRqYXIxCltJTkZPXQpbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKW0lORk9dICAgcGx1Z2luMgpbSU5GT10KW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKW0lORk9dICAgZXh0amFyMQpbSU5GT10gICBleHRqYXIyCltJTkZPXQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCklzIHRoaXMganVzdCBhIHdob2xlIG5ldyBzZXQgb2YgYnVncyB0aGF0IEkgaGF2ZSBmb3VuZD8KCkRvZXMgdGhpcyBhbHRlciBob3cgd2UgdGhpbmsgdGhpbmdzIHNob3VsZCB3b3JrPwoKUmlnaHQgbm93IEkgYW0gdW5jbGVhciBhcyB0byB3aGV0aGVyIHdlIHNob3VsZCBnbyBhaGVhZCB3aXRoIHJlbGVhc2luZwozLjUuMSBnaXZlbiB0aGUgZWZmZWN0cyBvZiBNTkctNjIwOS4uLiBhdCBsZWFzdCBpbiB0ZXJtcyBvZiBleHBvc2luZyBzb21lCnN0cmFuZ2VuZXNzIGluIHRoZSBjbGFzc2xvYWRlcnMKCk9uIDE2IFNlcHRlbWJlciAyMDE3IGF0IDAzOjUxLCBTdGVwaGVuIENvbm5vbGx5IDwKc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cgo+Cj4gT24gU2F0IDE2IFNlcCAyMDE3IGF0IDEwOjUxLCBTdGVwaGVuIENvbm5vbGx5IDwKPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPgo+PiBPbiBTYXQgMTYgU2VwIDIwMTcgYXQgMDQ6MDcsIElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY29tPiB3cm90ZToKPj4KPj4+IEkgZG9uJ3QgcmVhbGx5IGhhdmUgbXVjaCB0byBhZGQsIGJ1dCBsZXQgbWUgYW5zd2VyIGFueXdheXMgOi0pCj4+Pgo+Pj4gMSkgSSBhbSByZWFzb25hYmx5IGNvbmZpZGVudCB3ZSBjYW4gY29tcGVuc2F0ZSBmb3IgdGhlIG5ldyBjbGFzc2xvYWRlcgo+Pj4gYXJyYW5nZW1lbnQgaW4gbTJlIHdpdGhvdXQgbXVjaCBwcm9ibGVtcy4gVGhlIG5ldyBzZXR1cCBkb2VzIG1ha2UgcGx1Z2k9Cm4KPj4+IHJ1bnRpbWUgY2xhc3NwYXRoIGxlc3Mgc3RhYmxlLCBzbyB0aGVyZSBhcmUgbGlrZWx5IG90aGVyIHNjZW5hcmlvcyB3aGVyPQplCj4+PiBwbHVnaW5zIHdpbGwgYmVoYXZlIGRpZmZlcmVudGx5IChiYWQpLiBPbiB0aGUgb3RoZXIgaGFuZCwgSSBkb24ndCBzZWUKPj4+IGFueSBiZXR0ZXIgd2F5IHRvIHN1cHBvcnQgU2VydmljZUxvYWRlci4gRm9yIGphdmEgOCBpdCBtYXkgYmUgcG9zc2libGUKPj4+IHRvIHVzZSBmb3JlaWduLWltcG9ydCBvZiBleHRlbnNpb25zIGNsYXNzbG9hZGVyIHRvIGZpeCBNTkctNjI3NSwgYnV0Cj4+PiB0aGF0IGNsYXNzbG9hZGVyIHdhcyByZW1vdmVkIGluIGphdmEgOSwgdW5sZXNzIEkgYW0gbWlzdGFrZW4uCj4+Cj4+Cj4+IE9rIHNvIEkgdGhpbmsgdGhlIGNvbnNlbnN1cyBpcyA2Mjc1IGlzIHByb2JhYmx5IGEgbmVjZXNzYXJ5IGZpeCBmb3IgSmF2YQo+PiA4IGludGVyb3BlcmFiaWxpdHksIGJ1dCBtYXkgZXhwb3NlIGJ1Z3MgaW4gcGx1Z2lucyB0aGF0IG1hZGUgaW5jb3JyZWN0Cj4+IGFzc3VtcHRpb25zLCBhbmQgaXMgYSBicmVha2luZyBjaGFuZ2UgZnJvbSB0aGUgUG9WIG9mIHRoZSBlY2xpcHNlCj4+IGludGVncmF0aW9uLiBOZXRiZWFucyBpcyBmaW5lIGFuZCBJbnRlbGxpSiBzZWVtcyB0byBkbyBpdHMgb3duIHRoaW5rIChnaT0KdmVuCj4+IEkgaGF2ZSBhbiBvcGVuIGJ1ZyB0aGF0IHN1Z2dlc3RzIEludGVsbGlKIGlzIGlnbm9yYW50IG9mIHRoZSBleHRlbnNpb25zCj4+IHR5cGUgbWFwcGluZykKPj4KPj4KPj4+Cj4+PiAyKSBJIGJlbGlldmUgVENDTCBpcyBhbHJlYWR5IHNldCB0byBwcm9qZWN0IHJlYWxtIGZvciBwcm9qZWN0cyB0aGF0IGhhdj0KZQo+Pj4gZXh0ZW5zaW9ucyAoYW5kIHRvIHBsdWdpbiByZWFsbSBvdGhlcndpc2UpIGR1cmluZyBwbHVnaW4gZXhlY3V0aW9uLgo+Pgo+Pgo+PiBTbyBteSBxdWVzdGlvbiBpcyB3aHkgc2hvdWxkIFRDQ0wgKmV2ZXIqIGJlIGFueXRoaW5nIG90aGVyIHRoYW4gcHJvamVjdAo+PiByZWFsbT8KPj4KPj4gVGhlIHBvbSByZWZlcmVuY2Ugc2F5czoKPj4KPj4gICAgLSAqZXh0ZW5zaW9ucyo6IHRydWUgb3IgZmFsc2UsIHdoZXRoZXIgb3Igbm90IHRvIGxvYWQgZXh0ZW5zaW9ucyBvZgo+PiAgICB0aGlzIHBsdWdpbi4gSXQgaXMgYnkgZGVmYXVsdCBmYWxzZS4gRXh0ZW5zaW9ucyBhcmUgY292ZXJlZCBsYXRlciBpbiA9CnRoaXMKPj4gICAgZG9jdW1lbnQuCj4+Cj4+IEl0IGRvZXMgbm90IHNheSB0aGF0IHRoaXMgZmxhZyBhZmZlY3RzIHRoZSBjbGFzc2xvYWRlciBvZiB0aGUgcGx1Z2luLAo+PiByYXRoZXIgdG8gbWUgc2F5cyB3aGVuIHRydWUgdGhlIHByb2plY3QgcmVhbG0gc2hhbGwgaW5jbHVkZSB0aGUgcGx1Z2luJ3MKPj4gZXh0ZW5zaW9ucy4KPj4KPj4gTXkgdW5kZXJzdGFuZGluZyB3YXMgdGhhdCBhIHBsdWdpbiB3b3VsZCBhbHdheXMgc2VlIGl0cyBvd24gZXh0ZW5zaW9ucywKPj4gYnV0IGlmIHlvdSBzZXQgdGhpcyBmbGFnIHRoZW4gdGhlIHByb2plY3Qgd291bGQgYmUgYWJsZSB0byBzZWUgdGhlbSB0b28uPQouLgo+Pgo+PiBOb3cgZ3JhbnRlZCBteSB1bmRlcnN0YW5kaW5nIG1heSBiZSBpbmNvcnJlY3QsIGJ1dCB0aGlzIGNoYW5nZSBzZWVtcyB0bwo+PiBiZSB0dXJuaW5nIHRoaW5ncyBpbiBhbiBlbnRpcmVseSBkaWZmZXJlbnQgZGlyZWN0aW9uCj4+Cj4KPiBPayBkaXNjdXNzZWQgdGhpcyBvbiAjbWF2ZW4tZGV2Cj4KPiBJIG5lZWQgdG8gY29uZmlybSBteSBhbmFseXNpcywgYnV0IGlmIGNvcnJlY3QsIHRoZW4gdGhlIGZpeCBmb3IgTU5HLTYyMDkKPiBpcyBjb3JyZWN0Li4uIHdpbGwgbmVlZCBjYXJlZnVsIHJlbGVhc2Ugbm90aW5nCj4KPj4KPj4gUHJvYmxlbSBpcywgbmVpdGhlciBwcm9qZWN0IHJlYWxtIG5vciBhbnkgb2YgdGhlIHBsdWdpbiByZWFsbXMgaGF2ZQo+Pj4gYWNjZXNzIHRvIGp2bSBleHRlbnNpb25zIGNsYXNzbG9hZGVyLCBzbyBTZXJ2aWNlTG9hZGVyIGNhbid0IGdldCBjbGFzc2U9CnMKPj4+IGZyb20gdGhlcmUuCj4+Cj4+Cj4+IFRoYXQgaXMgYW5vdGhlciBzZXQgb2YgaXNzdWVzLi4uIGJ1dCB0aGlzIHNob3VsZCBoYXZlIGJlZW4gZml4ZWQgYnkgNjI3NQo+PiB1bmxlc3MgSSBhbSBtaXN0YWtlbgo+Pgo+Pgo+Pj4KPj4+IC0tCj4+PiBSZWdhcmRzLAo+Pj4gSWdvcgo+Pj4KPj4+IE9uIEZyaSwgU2VwIDE1LCAyMDE3LCBhdCAxMjowOSBQTSwgU3RlcGhlbiBDb25ub2xseSB3cm90ZToKPj4+ID4gSSdtIGdvaW5nIHRvIGhvbGQgb2ZmIGNsb3NpbmcgdGhlIHZvdGUgb3ZlciB0aGUgd2Vla2VuZCB0byBnaXZlIElnb3IgPQphCj4+PiA+IGNoYW5jZSB0bzoKPj4+ID4KPj4+ID4gMS4gY29tbWVudCBvbiB3aGV0aGVyIHdlIG5lZWQgYW4gYWx0ZXJuYXRpdmUgZml4IGZvciBNTkctNjI3NSAoYW5kCj4+PiBpbmRlZWQKPj4+ID4gaWRlYWxseSBwcm92aWRlIG9uZSA7LSApOwo+Pj4gPiAyLiBjb21tZW50IG9uIHdoZXRoZXIgdGhlIGZpeCBmb3IgTU5HLTYyMDkgaXMgZXhwb3NpbmcgYnVncyBpbiBwbHVnaW49CnMKPj4+ID4gdGhhdAo+Pj4gPiBtYWRlIGluY29ycmVjdCBhc3N1bXB0aW9ucyBhYm91dCBUQ0NMLCBvciB3aGV0aGVyIHRoZSBmaXggaXMgaW52YWxpZCA9Cm9yCj4+PiA+IGV2ZW4gaW5jb21wbGV0ZSAoSSB3b25kZXIgaWYgVENDTCBzaG91bGQgYWx3YXlzIGJlCj4+PiA+IHByb2plY3QuZ2V0Q2xhc3NSZWFsbSgpCj4+PiA+IGFzIGV4dGVuc2lvbnMgc2hvdWxkIGJlIGF2YWlsYWJsZSB0byBhbGwgcGx1Z2lucyBub3QganVzdCB0aG9zZSB0aGF0Cj4+PiA+IGRlY2xhcmUgdGhleSBhcmUgcHJvdmlkaW5nIGV4dGVuc2lvbnMgLSB1bmxlc3MgSSBtaXN1bmRlcnN0YW5kKQo+Pj4gPgo+Pj4gPiBPbmNlIEkgaGF2ZSB0aGUgcmVxdWlyZWQgaW5mb3JtYXRpb24gSSB3aWxsIGJlIGJldHRlciBhYmxlIHRvIGFzc2Vzcwo+Pj4gPiB3aGV0aGVyIHdlIHNob3VsZCByZWxlYXNlIDMuNS4xIGFuZCBmb2xsb3cgdXAgd2l0aCBhIHF1aWNrIDMuNS4yIG9yCj4+PiBqdXN0Cj4+PiA+IGRyb3AgMy41LjEgYW5kIGdvIHN0cmFpZ2h0IHRvIDMuNS4yLgo+Pj4gPgo+Pj4gPiAtU3RlcGhlbgo+Pj4gPgo+Pj4gPiBPbiAxNSBTZXB0ZW1iZXIgMjAxNyBhdCAwNTo0NSwgSWdvciBGZWRvcmVua28gPGlnb3JAaWZlZG9yZW5rby5jb20+Cj4+PiA+IHdyb3RlOgo+Pj4gPgo+Pj4gPiA+IEhhcyBhbnlvbmUgdHJpZWQgd2lyaW5nIGp2bSBleHRlbnNpb25zIENsYXNzTG9hZGVyIGFzIGZvcmVpZ24gaW1wb3I9CnQKPj4+IHRvCj4+PiA+ID4gcGx1Z2luL2V4dGVuc2lvbnMgcmVhbG1zPyBKdm0gZXh0ZW5zaW9ucyBjbGFzc2xvYWRlciBpcyBsaXR0bGUKPj4+IHRyaWNreSB0bwo+Pj4gPiA+IGdldCB0byAoc2VlIGhvdyB0aGlzIGlzIGRvbmUgaW4gamF2YS51dGlsLlNlcnZpY2VMb2FkZXIuCj4+PiBsb2FkSW5zdGFsbGVkKSwKPj4+ID4gPiBidXQgSSB0aGluayB0aGlzIHdpbGwgc29sdmUgU2VydmljZUxvYWRlci9NTkctNjI3NSB3aXRob3V0IHBvbGx1dGluPQpnCj4+PiA+ID4gcGx1Z2luIGNsYXNzcGF0aCB0b28gbXVjaC4KPj4+ID4gPgo+Pj4gPiA+IC0tCj4+PiA+ID4gUmVnYXJkcywKPj4+ID4gPiBJZ29yCj4+PiA+ID4KPj4+ID4gPiBPbiBGcmksIFNlcCAxNSwgMjAxNywgYXQgMDg6MzIgQU0sIE1hcmsgRGVycmljdXR0IHdyb3RlOgo+Pj4gPiA+ID4gV291bGQgaXQgYmUgcG9zc2libGUgdG8gaGFuZGxlIHRoaXMgaW4gYSBzb21ld2hhdCBzaW1pbGFyIHdheSB0bwo+Pj4gPiA+ID4gdGhyZWFkU2FmZQo+Pj4gPiA+ID4gbW9qb3MgLSBzb21lIGZvcm0gb2YgcGx1Z2luIGZsYWcgdGhhdCBzYXlzICJleHRlbnNpb25TYWZlIiBbMV0sCj4+PiB0aGF0IGlmCj4+PiA+ID4gPiB0aGUKPj4+ID4gPiA+IHBsdWdpbiBoYXMgPGV4dGVuc2lvbnM+dHJ1ZTwvZXh0ZW5zaW9ucz4gZGVjbGFyZWQgYW5kIGRvZXNuJ3QKPj4+IGRlY2xhcmUKPj4+ID4gPiA+IGl0c2VsZiBhcyBiZWluZyBleHRlbnNpb25TYWZlL2V4dGVuc2lvbkF3YXJlIHRoZW4gd2UgbG9nIGEgYnVpbGQKPj4+IHdhcm5pbmcKPj4+ID4gPiA+IC0KPj4+ID4gPiA+IGl0IHdvdWxkbid0IHNvbHZlIGFueXRoaW5nLCBvdGhlciB0aGFuIGdpdmluZyBzb21lIGZlZWRiYWNrIHRvCj4+PiB1c2VycyBzb21lCj4+PiA+ID4gPiBpbmRpY2F0aW9uIG9mIFdIWSB0aGVpciBidWlsZCBmYWlscyB1bmRlciAzLjUuMSAtIGFuZCB0byBlaXRoZXIKPj4+IHJlbW92ZQo+Pj4gPiA+ID4gPGV4dGVuc2lvbnM+IG9yIGZpeC91cGRhdGUgdGhlaXIgcGx1Z2lucy4KPj4+ID4gPiA+Cj4+PiA+ID4gPiBbMV0gT3IgZXZlbiBqdXN0IGluZmVyIHRoZSBhcHBsaWNhYmlsaXR5IG9mIGV4dGVuc2lvbnMgYnkgdGhlCj4+PiBwcmVzZW5jZSBvZgo+Pj4gPiA+ID4gY3VzdG9tIGxpZmVjeWNsZXMsIG9yIE1vam9zIGltcGxlbWVudGluZyB0aGUgZXh0ZW5zaW9uIGludGVyZmFjZXMKPj4+ICggaXQncwo+Pj4gPiA+ID4gbWlkbmlnaHQsIGFuZCBhIGhhenkgdGlyZWQgdGhvdWdodCApLgo+Pj4gPiA+ID4KPj4+ID4gPiA+IC0tCj4+PiA+ID4gPiAiR3JlYXQgYXJ0aXN0cyBhcmUgZXh0cmVtZWx5IHNlbGZpc2ggYW5kIGFycm9nYW50IHRoaW5ncyIgPUUyPTgwPQo9OTQgU3RldmVuCj4+PiA+ID4gPiBXaWxzb24sCj4+PiA+ID4gPiBQb3JjdXBpbmUgVHJlZQo+Pj4gPiA+ID4KPj4+ID4gPiA+IE9uIFNhdCwgU2VwIDE2LCAyMDE3IGF0IDEyOjIyIEFNLCBBbmRlcnMgSGFtbWFyIDxhbmRlcnNAaGFtbWFyLm5lPQp0Cj4+PiA+Cj4+PiA+ID4gPiB3cm90ZToKPj4+ID4gPiA+Cj4+PiA+ID4gPiA+IEJhc2VkIG9uIElnb3IncyBmZWVkYmFjayBJJ20gY2hhbmdpbmcgbXkgdm90ZSB0byArMS4KPj4+ID4gPiA+ID4KPj4+ID4gPiA+ID4gSGF2aW5nIHRoaXMgY2xhc3MgbG9hZGVyIGNoYW5nZSBpbiBhIGJ1ZyBmaXggcmVsZWFzZSBpcyBwcm9iYWJsPQp5Cj4+PiBub3QKPj4+ID4gPiA+ID4gKHNlbXZlcikgaWRlYWwgdGhvdWdoLgo+Pj4gPiA+ID4gPgo+Pj4gPiA+ID4gPiAvQW5kZXJzCj4+PiA+ID4gPiA+Cj4+PiA+ID4gPiA+IE9uIEZyaSwgU2VwIDE1LCAyMDE3IGF0IDI6MTIgUE0sIElnb3IgRmVkb3JlbmtvIDwKPj4+IGlnb3JAaWZlZG9yZW5rby5jb20+Cj4+PiA+ID4gPiA+IHdyb3RlOgo+Pj4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+IEkgYW5zd2VyZWQgaW4gbW9yZSBkZXRhaWxzIG9uIG0yZS1kZXYsIGJ1dCBJIGJlbGlldmUgd2UgY2FuCj4+PiA+ID4gY29tcGVuc2F0ZQo+Pj4gPiA+ID4gPiA+IGZvciB0aGUgY2hhbmdlIGZyb20gbTJlIGVuZC4gSW4gdGhlIHdvcnN0IGNhc2Ugd2UnbGwgYnVuZGxlCj4+PiBoYWNrZWQKPj4+ID4gPiA+ID4gPiB2ZXJzaW9uIG9mIERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlciB3aXRoIG0yZSwgbm90IGlkZWFsLCBidXQKPj4+IG5vdCB0aGUKPj4+ID4gPiBlbmQKPj4+ID4gPiA+ID4gPiBvZiB0aGUgd29ybGQgZWl0aGVyLgo+Pj4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gLS0KPj4+ID4gPiA+ID4gPiBSZWdhcmRzLAo+Pj4gPiA+ID4gPiA+IElnb3IKPj4+ID4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+IE9uIEZyaSwgU2VwIDE1LCAyMDE3LCBhdCAwNzoyMSBBTSwgQW5kZXJzIEhhbW1hciB3cm90ZToKPj4+ID4gPiA+ID4gPiA+IE9uIEZyaSwgU2VwIDE1LCAyMDE3IGF0IDg6MjkgQU0sIEFuZGVycyBIYW1tYXIgPAo+Pj4gYW5kZXJzQGhhbW1hci5uZXQ+Cj4+PiA+ID4gPiA+ID4gd3JvdGU6Cj4+PiA+ID4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPiBSZXBvcnRpbmcgYmFjayBmcm9tIHRlc3RzIG9mIG0yZSB3aXRoIGVtYmVkZGVkIE1hdmVuCj4+PiAzLjUuMSwgd2UKPj4+ID4gPiBzZWUKPj4+ID4gPiA+ID4gPiBwcm9ibGVtCj4+PiA+ID4gPiA+ID4gPiA+IHdpdGggdGhlIGpheHdzLW1hdmVuLXBsdWdpbiBtb2pvLiBXZSdyZSB0d28gcGVvcGxlIHNlZWluZwo+Pj4gdGhlCj4+PiA+ID4gaXNzdWUKPj4+ID4gPiA+ID4gPiA+ID4gaW5kZXBlbmRlbnRseSwgYnV0IHVuZm9ydHVuYXRlbHkgRnJlZCBCcmljb24gaGFzbid0IGJlZW4KPj4+IGFibGUgdG8KPj4+ID4gPiA+ID4gPiByZXByb2R1Y2UuCj4+PiA+ID4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gVG8gZm9sbG93IHVwIG9uIHRoaXMsIG15IHRlc3RzIGluZGljYXRlIHRoYXQgTWF2ZW4gMy41LjEKPj4+IGNhdXNlcwo+Pj4gPiA+IGNoYW5nZWQKPj4+ID4gPiA+ID4gPiA+IGNsYXNzIGxvYWRpbmcgdGhhdCBjb3VsZCBjYXVzZSBpc3N1ZXMgZm9yIHBsdWdpbnMgaW4gbTJlLgo+Pj4gSSd2ZQo+Pj4gPiA+IGFza2VkCj4+PiA+ID4gPiA+IGZvcgo+Pj4gPiA+ID4gPiA+ID4gaW5wdXQgZnJvbSB0aGUgbTJlIGRldnMgaWYgaXQgaXMgcG9zc2libGUgdG8gaGFuZGxlIGluIG0yZQo+Pj4gYnV0IHRoZXkKPj4+ID4gPiA+ID4gPiA+IGhhdmVuJ3QKPj4+ID4gPiA+ID4gPiA+IHJlc3BvbmRlZCB5ZXQuCj4+PiA+ID4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gL0FuZGVycwo+Pj4gPiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+IFNvIGN1cnJlbnRseSBJJ20gMCBvbiB0aGUgdm90aW5nIGJ1dCBJJ2xsIGludmVzdGlnYXRlIHNvbT0KZQo+Pj4gbW9yZS4KPj4+ID4gPiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4gL0FuZGVycwo+Pj4gPiA+ID4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPiBPbiBXZWQsIFNlcCAxMywgMjAxNyBhdCA5OjI2IEFNLCBBbmRlcnMgSGFtbWFyIDwKPj4+ID4gPiBhbmRlcnNAaGFtbWFyLm5ldD4KPj4+ID4gPiA+ID4gPiB3cm90ZToKPj4+ID4gPiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4+Cj4+PiA+ID4gPiA+ID4gPiA+Pgo+Pj4gPiA+ID4gPiA+ID4gPj4gT24gVHVlLCBTZXAgMTIsIDIwMTcgYXQgODo1NCBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4+PiA+ID4gPiA+ID4gPiA+PiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4+ID4gPiA+ID4gPiA+ID4+Cj4+PiA+ID4gPiA+ID4gPiA+Pj4gSGF2ZSB3ZSBnb3QgYW55IGZlZWRiYWNrIGZyb20gdGhlIGVtYmVkZGVyIGludGVncmF0aW9ucwo+Pj4geWV0Pwo+Pj4gPiA+ID4gPiA+ID4gPj4+Cj4+PiA+ID4gPiA+ID4gPiA+Pgo+Pj4gPiA+ID4gPiA+ID4gPj4gSSBoYXZlbid0IGhlYXJkIGFueXRoaW5nIGZyb20gdGhlIG0yZSBwZW9wbGUuIE1heWJlIHdlCj4+PiBuZWVkIHRvCj4+PiA+ID4gcGluZwo+Pj4gPiA+ID4gPiA+IHRoZW0KPj4+ID4gPiA+ID4gPiA+ID4+IGRpcmVjdGx5LiBJIGNhbiBjb250YWN0IEZyZWQgQnJpY29uLgo+Pj4gPiA+ID4gPiA+ID4gPj4KPj4+ID4gPiA+ID4gPiA+ID4+IC9BbmRlcnMKPj4+ID4gPiA+ID4gPiA+ID4+Cj4+PiA+ID4gPiA+ID4gPiA+Pgo+Pj4gPiA+ID4gPiA+ID4gPj4+Cj4+PiA+ID4gPiA+ID4gPiA+Pj4gT24gTW9uIDExIFNlcCAyMDE3IGF0IDIyOjU3LCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+Pj4gPiA+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4+ID4gPiA+ID4gPiA+ID4+PiB3cm90ZToKPj4+ID4gPiA+ID4gPiA+ID4+Pgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4ganVzdCBmb3IgdGhlIHJlY29yZHM6IGl0IGlzIFdpbmRvd3MgKyBHaXQgQmFzaAo+Pj4gKE1JTkdXNjQpIG9ubHkKPj4+ID4gPiA+ID4gPiA+ID4+PiA+Cj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiBhbmQgdGhlcmUgaXMgYSBjaGFuY2UgdGhhdCBhZGRpbmcgLURqYW5zaS5mb3JjZT0zRHRydT0KZQo+Pj4gY2FuCj4+PiA+ID4gZm9yY2UKPj4+ID4gPiA+ID4gPiBKQW5zaQo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gYWN0aXZhdGlvbiAoZXZlbiBpZiBKQW5zaSBmYWlscyB0byBkZXRlY3QgdGhhdCBpdAo+Pj4gc2hvdWxkCj4+PiA+ID4gPiA+ID4gYXV0by1hY3RpdmF0ZSkKPj4+ID4gPiA+ID4gPiA+ID4+PiA+Cj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiBkZXRhaWxzIG9uIGlzc3VlIGluIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvCj4+PiA+ID4gPiA+IGppcmEvYnJvd3NlL01ORy02MjgyCj4+PiA+ID4gPiA+ID4gLAo+Pj4gPiA+ID4gPiA+ID4gPj4+IGFuZCBhCj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiBmdXR1cmUgSkFuc2kgaXNzdWUuLi4KPj4+ID4gPiA+ID4gPiA+ID4+PiA+Cj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiBSZWdhcmRzLAo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4KPj4+ID4gPiA+ID4gPiA+ID4+PiA+IEhlcnY9QzM9QTkKPj4+ID4gPiA+ID4gPiA+ID4+PiA+Cj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiBMZSBsdW5kaSAxMSBzZXB0ZW1icmUgMjAxNywgMTI6NTM6NDYgQ0VTVCBTdGVwaGVuCj4+PiBDb25ub2xseSBhCj4+PiA+ID4gPiA+ID1DMz1BOWNyaXQKPj4+ID4gPiA+ID4gPiA6Cj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+IFNvIHRoYXQgaXMgd2luZG93cyBvbmx5LCBvciB3ZXJlIHRoZXkgbG9zdCBvbiBvdGhlcgo+Pj4gT1Nlcwo+Pj4gPiA+IGZvcgo+Pj4gPiA+ID4gPiB5b3UuCj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+IEkgaGF2ZSBjb2xvdXJzIG9uIGxpbnV4ICh2aWEgZG9ja2VyKSBhbmQgb3MteAo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiBPbiAxMSBTZXB0ZW1iZXIgMjAxNyBhdCAxMjozNSwgZGVqYW4yNjA5QGdtYWlsLmNvbSA9CjwKPj4+ID4gPiA+ID4gPiA+ID4+PiBkZWphbjI2MDlAZ21haWwuY29tPgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiB3cm90ZToKPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiArMSAoY29uZGl0aW9uYWxseSkuCj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiBUZXN0ZWQgdmlhIHByb2plY3QgdGhhdCBpbmNsdWRlcyBkb3plbiBvZiBwbHVnaW5zPQo6Cj4+PiAxc3QKPj4+ID4gPiB0aWVyLAo+Pj4gPiA+ID4gPiA+ID4gPj4+IE1vam9IYXVzCj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiBhbmQKPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiBmZXcgM3JkIHBhcnR5IHBsdWdpbnMgKHNvIHRvIHNheSkuCj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiBFdmVyeXRoaW5nIGxvb2tzIGdvb2Qgd2l0aCBvbmUgbm90YWJsZSByZWdyZXNzaW9uPQo6Cj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjI4Mgo+Pj4gQ29uc29sZQo+Pj4gPiA+ID4gPiBvdXRwdXQKPj4+ID4gPiA+ID4gPiBoYXMKPj4+ID4gPiA+ID4gPiA+ID4+PiBubwo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+IGNvbG9ycyAocmVncmVzc2lvbiBpbiBNYXZlbiAzLjUuMSkKPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+IFJlZ2FyZHMsCj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gRGVqYW4KPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+IE9uIDIwMTctMDktMTAgMTc6MzksIFN0ZXBoZW4gQ29ubm9sbHkgPAo+Pj4gPiA+ID4gPiA+ID4gPj4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20KPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+IHdyb3RlOgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gSGksCj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gV2Ugc29sdmVkIDI1IGlzc3VlczoKPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvCj4+PiBqaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhCj4+PiA+ID4gPwo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gdmVyc2lvbj0zRDEyMzM4OTY0JnN0eWxlTmFtZT0zRFRleHQmcHJvamVjdElkPTNEMT0KMjMxNjkyMgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBUaGVyZSBhcmUgMzUwIGlzc3VlcyBsZWZ0IGluIEpJUkEgZm9yIE1hdmVuIGNvcj0KZToKPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvCj4+PiBqaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUKPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+IDNEJTIwTU5HJTIwQU5EJTIwcmVzb2x1dGlvbiUKPj4+IDIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJQo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+IDIwQlklMjBkdWUlMjBBU0MlMkMlMjBwcmlvcml0eSUyMERFU0MlMkMlCj4+PiAyMGNyZWF0ZWQlMjBBU0MKPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gU3RhZ2luZyByZXBvOgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvCj4+PiA+ID4gY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4+PiA+ID4gPiA+ID4gMTM2NC8KPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBUaGUgZGlzdHJpYnV0YWJsZSBiaW5hcmllcyBhbmQgc291cmNlcyBjYW4gYmUKPj4+IGZvdW5kCj4+PiA+ID4gaGVyZToKPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnLwo+Pj4gPiA+IGNvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4KPj4+ID4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvCj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IFNwZWNpZmljYWxseSB0aGUgemlwLCB0YXJiYWxsIGFuZCBzb3VyY2UKPj4+IGFyY2hpdmVzIGNhbgo+Pj4gPiA+IGJlCj4+PiA+ID4gPiA+ID4gZm91bmQKPj4+ID4gPiA+ID4gPiA+ID4+PiBoZXJlOgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvCj4+PiA+ID4gY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tPgo+Pj4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS0KPj4+ID4gPiBtYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtCj4+PiA+ID4gPiA+ID4gPiA+Pj4gYmluLnppcAo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy8KPj4+ID4gPiBjb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+Cj4+PiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLQo+Pj4gPiA+IG1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS0KPj4+ID4gPiA+ID4gPiA+ID4+PiBiaW4udGFyLmd6Cj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnLwo+Pj4gPiA+IGNvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4KPj4+ID4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtCj4+PiA+ID4gbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLQo+Pj4gPiA+ID4gPiA+ID4gPj4+IHNyYy56aXAKPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvCj4+PiA+ID4gY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tPgo+Pj4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS0KPj4+ID4gPiBtYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtCj4+PiA+ID4gPiA+ID4gPiA+Pj4gc3JjLnRhci5nego+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMudGFyLmd6IHNoYTE6Cj4+PiA+ID4gPiA+ID4gPiA+Pj4gOWViODIxZjE1M2M3NjY3MTk0YWExMWNjZDA5OWI3Cj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiBiZDIwNTk1NjBkCj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwOiBzaGExOgo+Pj4gPiA+ID4gPiA+IDEyMWQ1NGIwNDUzODBhOGE0ODk1ZWIxMzc5NzBhYgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gNjllNjk4ZWIwZQo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBHaXQgdGFnOgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvCj4+PiByZXBvcy9hc2Y/cD0zRG1hdmVuLmdpdDthPTNECj4+PiA+ID4gPiA+ID4gY29tbWl0O2g9M0QKPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+IDA5NGU0ZTMxYTVhZjU1YmIxN2JlODc2NzVkYTQxZDlhZWNhMDYyZjMKPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gU3RhZ2luZyBzaXRlOgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnLwo+Pj4gY29tcG9uZW50cy9yZWYvMy1MQVRFU1QvCj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gVm90ZSBvcGVuIGZvciA3MiBob3Vycy4KPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBbIF0gKzEKPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IFsgXSArMAo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gWyBdIC0xCj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gVGhhbmtzLAo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IFN0ZXBoZW4uCj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+ID4gPiA+ID4gPiA+ID4+PiAtLS0tLS0tLS0KPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOgo+Pj4gZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOgo+Pj4gPiA+IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+ID4gPiA+ID4gPiA+ID4+PiA+Cj4+PiA+ID4gPiA+ID4gPiA+Pj4gPgo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4KPj4+ID4gPiA+ID4gPiA+ID4+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+PiA+ID4gPiA+ID4gLS0tLS0tLS0tCj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLgo+Pj4gb3JnCj4+PiA+ID4gPiA+ID4gPiA+Pj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOgo+Pj4gZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gPiA+ID4gPiA+ID4gPj4+ID4KPj4+ID4gPiA+ID4gPiA+ID4+PiA+IC0tCj4+PiA+ID4gPiA+ID4gPiA+Pj4gU2VudCBmcm9tIG15IHBob25lCj4+PiA+ID4gPiA+ID4gPiA+Pj4KPj4+ID4gPiA+ID4gPiA+ID4+Cj4+PiA+ID4gPiA+ID4gPiA+Pgo+Pj4gPiA+ID4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+PiA+ID4gLS0tLS0tLS0tCj4+PiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+PiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPgo+Pj4gPiA+ID4gPgo+Pj4gPiA+Cj4+PiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+PiAtLS0tLS0tLS0KPj4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+ID4gPgo+Pj4gPiA+Cj4+Pgo+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4KPj4+IC0tCj4+IFNlbnQgZnJvbSBteSBwaG9uZQo+Pgo+IC0tCj4gU2VudCBmcm9tIG15IHBob25lCj4KCi0tOTRlYjJjMDkxOThhYzQzMWMyMDU1OTc0MTYwZi0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MTM4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBPY3QgIDMgMTg6MTk6MTAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTM4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDM0MUYxMTAyMDAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAgMyBPY3QgMjAxNyAxODoxOToxMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE0ODk2IGludm9rZWQgYnkgdWlkIDUwMCk7IDMgT2N0IDIwMTcgMTg6MTk6MDkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE0ODEwIGludm9rZWQgYnkgdWlkIDUwMCk7IDMgT2N0IDIwMTcgMTg6MTk6MDkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNDc5OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDMgT2N0IDIwMTcgMTg6MTk6MDkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDAzIE9jdCAyMDE3IDE4OjE5OjA5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQTg0MzQxODJDOTMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsICAzIE9jdCAyMDE3IDE4OjE5OjA4ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC4xClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTAuMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxLAoJVVJJQkxfQkxPQ0tFRD0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBPUXpiQk5Sb2RYN0EgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUdWUsICAzIE9jdCAyMDE3IDE4OjE5OjA1ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd3IwLWYxNzYuZ29vZ2xlLmNvbSAobWFpbC13cjAtZjE3Ni5nb29nbGUuY29tIFsyMDkuODUuMTI4LjE3Nl0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBEREY2NjVGQjU3Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAgMyBPY3QgMjAxNyAxODoxOTowNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13cjAtZjE3Ni5nb29nbGUuY29tIHdpdGggU01UUCBpZCB0NzZzbzY4MDI4MTl3cmMuMwogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDAzIE9jdCAyMDE3IDExOjE5OjA0IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXNadWphNE5xV1prNlE4d1k2WENTVzJ1bUl4ZExNMlZpV1ByMmpjeWFyTW89OwogICAgICAgIGI9ZFVLcHBnd0Y2VS9MUWsycDFwL1Y0MEhqTXV1b1BnNHg4RTdEVWY5ZXR5RUlVMDdncFBVZWZsRmFTRWc0bDBOVFJqCiAgICAgICAgIEdjc2ttV3lZVSs4R1lMSzJjQlBGZFZua2p3cmRONnF1TmhlbGZneXhqQy9jVWxvQTlqb2RDL2FkWmhLL1d0L0ZvRTRLCiAgICAgICAgIGc1VG5vVXNMcDB3aGpWek1XT3VUaFRGTlM2alBQOHpub2t0RVUxUWtCeHhSS3MwcHFGckFVYTJ6a3dZTG84N2toTFZrCiAgICAgICAgIDhhM1AxVnh2Q0toQWRmRkpZdStFR0ZRSDgvQjlaV25vQU5JaFdrUUFBc1dDdVQyUTB2QWxHOFh3Z0RYd2hKZHRGNzBhCiAgICAgICAgIHJvM3E1MVpHVXB2SVJZdjcxWE5YSmFTK2h0QTU5UERQb3M5RWhoc2twajlnU0M3N25ENkNWZWl2MUNKaFFodVZnbUxCCiAgICAgICAgIENCYlE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXNadWphNE5xV1prNlE4d1k2WENTVzJ1bUl4ZExNMlZpV1ByMmpjeWFyTW89OwogICAgICAgIGI9bGoyMGZxMjk5UWVZM1BHR20zU1ZXVFFENmg1SjlpemlIeVVSNzVVSS9aNzZOQjdDSUdXOGlMR1V4eWdPZDlRLzlICiAgICAgICAgIGIwMHRuTGJ4UTI2Q3dWNFI4a0tBVEVrNjlxRE9ncEoyZVdIR2NUVEpicTBveW0wNUVBTWZlK1FYRG5TTVRKQVRxQ1VtCiAgICAgICAgIEpDYVNGb3Z2THhkdVd0VkpRT00xdkE0YUJIeVA3MDZxbGE1bk94L0ZqdWVDSFlSd1dpTkIxU2I3YVVXanRWK1lRRkhZCiAgICAgICAgIHBveWw1OGt4OFh2R0dWaHZRMWRxWkI0Q0pjVm5NemlLZDdJQXBjVEh3a3JqemY4MzRCOGpoVSs1cEFlZ0lEQ2QzL3h4CiAgICAgICAgIG1mUXlBZEE4TllGcnNkS25yb2UxdFlhbWRzOU9kQll5ZUk4bmdSOGhkekcwV2x4b0kyRDIyKzM2YXhUVldsc0hmU0k5CiAgICAgICAgIE80N2c9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVVYNUVENlQ0blVRK3Q5SUhWSXY1VjluRlp6ZHBVYU1GRVZFQWhxNTVHWFgzaExlaGliCgl6NXkwQVl0ZDFiL0VVSWRGOERyakVZYWYxWTRhUnJGV2VrZ1ZLODBhQnc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQWR0MDZFWCtCOU50dTFzRXNqL0ZKUE51T1h0cUUxSFBiOGVLTnlRZTU2NkpZb3JFMWllTTlZL2VFbzVOSW1LVDdCdWl0S2RHUkJUWWEvVnlkY0Z3cz0KWC1SZWNlaXZlZDogYnkgMTAuMjIzLjE3MC4yMDkgd2l0aCBTTVRQIGlkIGkxN21yMTUzMjk1MXdyYy4yMTcuMTUwNzA1NDc0MzUxODsKIFR1ZSwgMDMgT2N0IDIwMTcgMTE6MTk6MDMgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPENBK25Qbk14eUcyTmVQWHBWcWF3ZTlqUj1pdEhFVDZVdWRuTjlDakhodj1vby1LQ3J4d0BtYWlsLmdtYWlsLmNvbT4KIDxwb255LTU2YTNhZGVhZjYwYzQwNTk2ZmIyODRiMjQ1MjQxNDhmNjA1ZThkMjMtNTJkNDFjZDQwZjIzNDNjODk1Mjg4MGU4Zjg0ZGEzZTgwZDMzNTUwOUBkZXYubWF2ZW4uYXBhY2hlLm9yZz4KIDxDQStuUG5NeVMycTF1ZmFXK1M2c21oWloxSmN4aGY5aFk1LTNuQkotaUNXZWpQVUFEVkFAbWFpbC5nbWFpbC5jb20+CiA8MjA1Nzk0OC5rMUd5Zmp1R1hkQGdpZ2E+IDxDQStuUG5Nd2NvSEZadlVxV2lVc3lIQmhhTW1vU2NjeWRUQnN6U1hnc0d0Rj13TkdES3dAbWFpbC5nbWFpbC5jb20+CiA8Q0FLRFVOMXY1VHNGbitvLXZ2OEhoM1B1dkdYV2UrZlFuTStqd0RadCs9enR4c3BjZ2d3QG1haWwuZ21haWwuY29tPgogPENBK25Qbk15Y1RaZFh0QXVSYzIrLTBxREtFUExMSkhvR0o2SDhkWj1aeWtPYVh1VzNYUUBtYWlsLmdtYWlsLmNvbT4KIDxDQStuUG5NeUxaMkRIbWppZHlSNHJMR19ra3Z5ZjJ6Sk02X0YrZ2ZiQmZ6QnZObjRxQlFAbWFpbC5nbWFpbC5jb20+CiA8Q0FGTkNVLTh2Q3BtazUtRGNZdz1RdEE3Y1k4T21nVTlkajFqSzFxNXJyR1dIUmI0cF9nQG1haWwuZ21haWwuY29tPgogPENBUG95QnFUOFk4ck5iTERPcE9TdUd1PTJXbmRudk5uRmYtX245eVZRMkY0enh4Ym1id0BtYWlsLmdtYWlsLmNvbT4gPENBRk5DVS1fdGlkZ2o3d0VRUzNPRThIPVY2Z09WOExiLXNiZGdiOHhfV1RTMk5TVV9Pd0BtYWlsLmdtYWlsLmNvbT4KSW4tUmVwbHktVG86IDxDQUZOQ1UtX3RpZGdqN3dFUVMzT0U4SD1WNmdPVjhMYi1zYmRnYjh4X1dUUzJOU1VfT3dAbWFpbC5nbWFpbC5jb20+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMDMgT2N0IDIwMTcgMTg6MTg6NTIgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk13TU9naFBtY3VnVj04X19NNDQ1d0RlNDh1WHZYQnVFR0ZOajFCYmNGX3p5d0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSI5NGViMmMxY2JlZDJhNTA2ODYwNTVhYTg4NmJlIgoKLS05NGViMmMxY2JlZDJhNTA2ODYwNTVhYTg4NmJlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkkgYW0gaG9waW5nIEkgY2FuIGZpbmQgc29tZSB0aW1lIHRvIGRvIGEgZmluYWwgcm91bmQgb2YgZXhwZXJpbWVudHMgYW5kCnRoZW4gY2xvc2UgdGhlIHZvdGUgd2l0aCBzdWNjZXNzIGFuZCBwdWJsaXNoLgoKCk9uIFR1ZSAzIE9jdCAyMDE3IGF0IDExOjEzLCBBcm5hdWQgSD1DMz1BOXJpdGllciA8YWhlcml0aWVyQGdtYWlsLmNvbT4gd3JvdD0KZToKCj4gQFN0ZXBoZW4gV2hhdCBzaG91bGQgd2UgZG8gbm93ID8KPgo+Cj4gT24gVHVlLCBTZXAgMTksIDIwMTcgYXQgMzoxNCBBTSwgT2xpdmllciBMYW15IDxvbGFteUBhcGFjaGUub3JnPiB3cm90ZToKPgo+PiBIaQo+PiBTb3JyeSBhIGJpdCBvdXQgb2YgdGltZSBBVE0gZm9yIHRlc3RpbmcgdGhpcy4KPj4gV2VsbCBJIHRydXN0IEFybmF1ZCB0ZXN0aW5nIHRoYXQgZXNwZWNpYWxseSBpZiB0aGlzIGltcHJvdmUgdGhlCj4+IHBlcmZvcm1hbmNlCj4+IG9mIHRoaXMgdmVyeSBncmVhdC9hd2Vzb21lL3VzZXJzIG9yaWVudGVkIHBsdWdpbiA6UAo+Pgo+PiBPbiAxMyBTZXB0ZW1iZXIgMjAxNyBhdCAyMjoxOSwgQXJuYXVkIEg9QzM9QTlyaXRpZXIgPGFoZXJpdGllckBhcGFjaGUub3I9Cmc+Cj4+IHdyb3RlOgo+Pgo+PiA+IERhbW5lZCwgY2FuJ3Qgd2UgYmUgYW5vbnltb3VzIG9uIEdpdGh1YiA/Cj4+ID4gSSBtYWludGFpbiBpdCBpcyBhIGJpZyB3b3JkLCBJJ20gdHJ5aW5nIHRvIGZpeCBtb3JlIGJ1Z3MgdGhhbiBJIGFkZCBuZT0Kdwo+PiA+IG9uZXMKPj4gPiBJIGFkZGVkIE9sZWcgaW4gdGhlIGxvb3AgYXMgaGUgY29udHJpYnV0ZWQgYSBsb3Qgb24gaXQgdG9vCj4+ID4gSSBkaWQgYSBxdWljayB0ZXN0IHRvIGJ1aWxkIG9uIEplbmtpbnMgMi42MC4zIG91ciBtYXZlbiBjb3JlIHdpdGggdGhlCj4+IEV2aWwKPj4gPiBNYXZlbiBwbHVnaW4gMi4xNyBvbiBhIGxvY2FsIFNTSCBhZ2VudCBhbmQgaXQgaXMgb2sKPj4gPiBCdXQgaXQgaXMgcmVhbGx5IGEgcXVpY2sgdGVzdCAuLi4KPj4gPgo+PiA+IENoZWVycwo+PiA+Cj4+ID4KPj4gPgo+PiA+IE9uIFdlZCwgU2VwIDEzLCAyMDE3IGF0IDEwOjA3IEFNLCBTdGVwaGVuIENvbm5vbGx5IDwKPj4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4gPgo+PiA+ID4gT24gMTMgU2VwdGVtYmVyIDIwMTcgYXQgMDE6MDUsIFN0ZXBoZW4gQ29ubm9sbHkgPAo+PiA+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4+ID4gPgo+PiA+ID4+IE9uIDEzIFNlcHRlbWJlciAyMDE3IGF0IDAwOjI2LCBBbmRlcnMgSGFtbWFyIDxhbmRlcnNAaGFtbWFyLm5ldD4KPj4gd3JvdGU6Cj4+ID4gPj4KPj4gPiA+Pj4gT24gVHVlLCBTZXAgMTIsIDIwMTcgYXQgODo1NCBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4+ID4gPj4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+PiA+ID4+Pgo+PiA+ID4+PiA+IEhhdmUgd2UgZ290IGFueSBmZWVkYmFjayBmcm9tIHRoZSBlbWJlZGRlciBpbnRlZ3JhdGlvbnMgeWV0Pwo+PiA+ID4+PiA+Cj4+ID4gPj4+Cj4+ID4gPj4+IEkgaGF2ZW4ndCBoZWFyZCBhbnl0aGluZyBmcm9tIHRoZSBtMmUgcGVvcGxlLiBNYXliZSB3ZSBuZWVkIHRvIHBpbj0KZwo+PiA+IHRoZW0KPj4gPiA+Pj4gZGlyZWN0bHkuIEkgY2FuIGNvbnRhY3QgRnJlZCBCcmljb24uCj4+ID4gPj4+Cj4+ID4gPj4+IC9BbmRlcnMKPj4gPiA+Pj4KPj4gPiA+Pj4KPj4gPiA+PiBQbGVhc2UgZG8sIGFsc28gaWYgYW55b25lIGhhcyBhIGNvbnRhY3QgaW4gbmV0YmVhbnMgb3IgaW50ZWxsaWogYW5kCj4+ID4gY291bGQKPj4gPiA+PiBsZXQgdGhlbSBrbm93IHdlJ2QgbGlrZSBlaXRoZXIgZmVlZGJhY2sgb3IgIndlJ3JlIG9rIGlmIE1ORy02Mjc1Cj4+IG1ha2VzCj4+ID4gPj4gdHJvdWJsZSBmb3IgdXMsIGdvIGFoZWFkIGFuZCByZWxlYXNlIi4gSSdkIGxpa2UgdG8gY2xvc2UgdGhlIHZvdGUgbz0Kbgo+PiA+IEZyaWRheQo+PiA+ID4+IDEzOjAwIFVUQy4KPj4gPiA+Pgo+PiA+ID4+Cj4+ID4gPgo+PiA+ID4gT2xpdmllciAvIEFybmF1ZCwgaGF2ZSBlaXRoZXIgb2YgeW91IGhhZCBhIGNoYW5jZSB0byB0ZXN0IHRoaXMgd2l0aAo+PiB0aGUKPj4gPiA+IGV2aWwgcHJvamVjdCB0eXBlWzFdIGFzIHlvdSB0d28gc2VlbSB0byBiZSB0aGUgYWN0aXZlIG1haW50YWluZXJzWzJdCj4+ID4gPgo+PiA+ID4gWzFdOiBodHRwczovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuaWUvMjAxMy8xMS9qZW5raW5zLQo+PiA+ID4gbWF2ZW4tam9iLXR5cGUtY29uc2lkZXJlZC1ldmlsLmh0bWwKPj4gPiA+IFsyXTogaHR0cHM6Ly9naXRodWIuY29tL2plbmtpbnNjaS9tYXZlbi1wbHVnaW4vY29tbWl0cy9tYXN0ZXIKPj4gPiA+Cj4+ID4KPj4gPgo+PiA+Cj4+ID4gLS0KPj4gPgo+PiA+IEFybmF1ZAo+PiA+Cj4+Cj4+Cj4+Cj4+IC0tCj4+IE9saXZpZXIgTGFteQo+PiBodHRwOi8vdHdpdHRlci5jb20vb2xhbXkgfCBodHRwOi8vbGlua2VkaW4uY29tL2luL29sYW15Cj4+Cj4KPgo+Cj4gLS0KPiAtLS0tLQo+IEFybmF1ZCBIPUMzPUE5cml0aWVyCj4gaHR0cDovL2FoZXJpdGllci5uZXQKPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKPgotLT0yMApTZW50IGZyb20gbXkgcGhvbmUKCi0tOTRlYjJjMWNiZWQyYTUwNjg2MDU1YWE4ODZiZS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NDIyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBOb3YgIDUgMTc6NTc6NDcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDIyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEU1QTRGMTdGQzAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAgNSBOb3YgMjAxNyAxNzo1Nzo0NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDUzNTY1IGludm9rZWQgYnkgdWlkIDUwMCk7IDUgTm92IDIwMTcgMTc6NTc6NDcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUzNDg3IGludm9rZWQgYnkgdWlkIDUwMCk7IDUgTm92IDIwMTcgMTc6NTc6NDcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MzQ3NSBpbnZva2VkIGJ5IHVpZCA5OSk7IDUgTm92IDIwMTcgMTc6NTc6NDcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDA1IE5vdiAyMDE3IDE3OjU3OjQ3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNkUzODAxODA3MUUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sICA1IE5vdiAyMDE3IDE3OjU3OjQ2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi4zNzkKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi4zNzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgYkgybk9SR0ZUQm41IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAgNSBOb3YgMjAxNyAxNzo1Nzo0NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdtMC1mNjUuZ29vZ2xlLmNvbSAobWFpbC13bTAtZjY1Lmdvb2dsZS5jb20gWzc0LjEyNS44Mi42NV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA1MTFBRjVGRERDCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAgNSBOb3YgMjAxNyAxNzo1Nzo0NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13bTAtZjY1Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHozc28xMDAzNTQ2NXdtZS41CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMDUgTm92IDIwMTcgMDk6NTc6NDQgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPTZuVkV6dFVUUU9sZkxSZ0ZncVJZSkUzTFNVVCs0b1lOMVdoU1NwWTlVV2c9OwogICAgICAgIGI9aERXTXlndFFqMmlXK2MrMDZWTFRmek1BUUtMVFpzN2RHVW9iVEhUeHQ2VThtSzcxTTVPN082SXlycmc5alVUSzZ3CiAgICAgICAgIEtyRnd0MnRxQmJ2YlhpVnZUbjU2MVA2dUVVSzFuemk2SGltUFdaVVdmVXlhU0ozQmNiWE5EdXpNNHo5VjV3ZWdwQzZBCiAgICAgICAgIHZNK3FURWJlTU5VbXFoT2RpTFNxV3VEUjBObEtTQW1Bb3VYcEo5TjB2VkY0WVFwSEZ4WFBoZlBKdXZkOGtSNXlLZXlICiAgICAgICAgIG5pYXNOM0tuZVBvVWZpV3FPM1FqSUZDKzdiYmIwS05GWG45eVptd1hrK0JrMHF4cGc1Kzg1VE1BTW9LTVE2T1c0MkZPCiAgICAgICAgIE9wdkFQaDY4RDFLdzgrcTZ0bExkdnRnL005amtpTjNFT3RkUXBhSCtmR1ZCRzU0QW9Bc1ErOTZEZG9BVmY1YW53c0N2CiAgICAgICAgIHFPZlE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPTZuVkV6dFVUUU9sZkxSZ0ZncVJZSkUzTFNVVCs0b1lOMVdoU1NwWTlVV2c9OwogICAgICAgIGI9SEU1VTVGQkE5RElISFIzK21HcVZwenUxOVNYN2ZSdndoRGVoMzllL3c5UU9MM0k3eW9WVVBSV3BwVUZySDV4SXY2CiAgICAgICAgIHZWdlFMeU5HZFVnZUk2SHRQbXFaQmY3cTl1clhTaFY0VFpQOGVsQ3A3U1lMeERlVlRMcmhxM3lhNFA3NHdHV0pWZ0dWCiAgICAgICAgIE5uTWVMOVdFY1JxSTZzUXZJaFFBbncvVG9aNWtITCtFVTlZS0ZtYTNiVndEbmJqM3BVdnF4ZkxqdVc3c0pJanJaVTRnCiAgICAgICAgIEV6S05zUFlSNG1Gc1ZDQnE5YUZkdVMrNkVRalFxWUh3dVJlTHNZTUtwU29xZWJCYlBLaEZNV2NvWHJnYVBQL3NEcFBQCiAgICAgICAgIDM2MWdISG9xank3Y2R0ekdvWlE0RmpSZWhLWEcxWkhvRmN0Q3lNVndaeWJ3MmlHOGNlUU5LbXRXaGhDR2dYaVNWb1BQCiAgICAgICAgIDlCWFE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDRXWmZxRjJGR1hpL2JRSHZyRmJYM29KdjdRaTR2T25SRmZxaDdNMGNKUGpIRHRTanR6CglUQmlEeHN2T21JNjZ6Ym1EWnpDK3M5OC9XbjlPSVVkUWxUcmJ6YXcwcnc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArUTdrYldGMEVtQzVaUUdlWjBHOFFDWkxKY3M3aTd5L20wK1hTMlk3aTVPWS9aUkV3cG5jUmpYWVJOdHd2RERMRmJwa0dkWEozbHpScnNXb2NrRTJ1cz0KWC1SZWNlaXZlZDogYnkgMTAuMjguMi44NCB3aXRoIFNNVFAgaWQgODFtcjM2OTA0ODl3bWMuMTA2LjE1MDk5MDQ2NTc2Mzg7IFN1biwKIDA1IE5vdiAyMDE3IDA5OjU3OjM3IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wCkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFN1biwgMDUgTm92IDIwMTcgMTc6NTc6MjcgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk13T2dnU3dzRW40TF95dVZYNDZCdnduLT1pQU5MNj1vaHNLRDZRaTV1WUR4Z0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmVhY3RvciBzYWZlL3JhbGx5IHBvaW50cwpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTEzYzhiYjhjMzY5ZDIwNTVkNDAxMjA1IgoKLS0wMDFhMTEzYzhiYjhjMzY5ZDIwNTVkNDAxMjA1CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKClRoZXJlIGFyZSB0d28gc2V0cyBvZiBwcm9ibGVtcyB0aGF0LCBhc3N1bWluZyB3ZSB3YW50IHRvIGZpeCwgYm90aCBuZWVkCnNvbWUgd2F5IHRvIHJhbGx5IGEgY29uY3VycmVudCBtdWx0aW1vZHVsZSBidWlsZCBhdC4KCjEuIFRoZXJlIGlzIHRoZSBzaGFkZSBsaWtlIGNsYXNzIG9mIHByb2JsZW1zLCB3aGVyZSBhIHBsdWdpbiB3YW50cyB0bwptb2RpZnkgdGhlIGVmZmVjdGl2ZSB0cmFuc2l0aXZlIGRlcGVuZGVuY2llcyBvZiBhIG1vZHVsZS4KCjIuIFRoZXJlIGlzIHRoZSBleHRlbnNpYmlsaXR5IGNsYXNzIG9mIHByb2JsZW1zLCB3aGVyZSBwZW9wbGUgd2FudCB0byBidWlsZAphIHBsdWdpbiBhbmQgY29uc3VtZSB0aGUgc2FtZSBwbHVnaW4gaW4gb25lIHJlYWN0b3IuCgpOb3cgaW4gYm90aCBjYXNlcywgSSB0aGluayB3ZSBjYW4gc29sdmUgYSBzdWJzZXQgb2YgdGhlc2UgcHJvYmxlbXMgYnkKaW50cm9kdWNpbmcgYSBjb25jZXB0IG9mIGEgcmFsbHkgLyBzYWZlIHBvaW50IGluIHRoZSBidWlsZCBwbGFuLgoKVGhlIG11dGFibGUgbW9kZWwgY2FuIGJlIHNvbHZlZCBmb3IgcmVkdWNpbmcgc2NvcGUvIHJlbW92aW5nCmRlcGVuZGVuY2llcy4uLiBjb3VsZCBwb3NzaWJseSBhbHNvIGFsbG93IGFkZGluZyBkZXBlbmRlbmNpZXMsIHByb3ZpZGVkIHRoZQpkZXBlbmRlbmNpZXMgYXJlIG5vdCBwYXJ0IG9mIHRoZSByZWFjdG9yLiBUaGUgcHJvdmlzbyBpcyB0aGF0IHRoZSBwbHVnaW4KZ29hbCB3b3VsZCBuZWVkIHRvIGJlIG1hcmtlZCBhcyBhID1FMj04MD05Q211dGF0aW9uPUUyPTgwPTlEIGdvYWwsIGFuZCB0aGUgPQpleGVjdXRpb24gb2YgYWxsCj1FMj04MD05Q211dGF0aW9uPUUyPTgwPTlEIGdvYWxzIGZvciBhIG1vZHVsZSBkZWZpbmVzIGEgc2FmZS1wb2ludC4gQWxsIGRvdz0KbnN0cmVhbSBtb2R1bGVzCnRoYXQgZGVjbGFyZSBhIGRlcGVuZGVuY3kgbXVzdCBiZSBibG9ja2VkIGZyb20gZXhlY3V0aW9uIHVudGlsIHRoZQpzYWZlLXBvaW50IGlzIHJlYWNoZWQuCgpEaXNjdXNzaW9uIHBvaW50czoKKiBob3cgZG8gd2UgaGFuZGxlIGEgYnVpbGQgcmVxdWVzdCB0aGF0IHdpbGwgbmV2ZXIgcmVhY2ggdGhlIHNhZmUtcG9pbnQsIGVnCmBtdm4gdGVzdGAgd2lsbCBub3QgcmVhY2ggcGFja2FnZSwgYW5kIGhlbmNlIHdpbGwgbm90IHJ1YiBzaGFkZS4uLiBzaG91bGQKd2Ugc2F5OiBmaW5lLCBubyBzYWZlcG9pbnQgaW4gYnVpbGQgcGxhbiwgc28gYWxsIGdvb2QuLi4gc2hvdWxkIHdlIHNheToKb29wcyBlc2NhbGF0ZSB0aGUgbW9kdWxlIHdpdGggYSBzYWZlIHBvaW50IHRvIGBwYWNrYWdlYD8KKiB3aGlsZSB0ZWNobmljYWxseSBwb3NzaWJsZSB0byAqYWRkKiBleC1yZWFjdG9yIGRlcGVuZGVuY2llcyAoaWYKZXgtcmVhY3RvciB0aGV5IGNhbm5vdCBhZmZlY3QgdGhlIGJ1aWxkIHBsYW4pIGl0IGNvdWxkIGJlIGEgYmFkIGlkZWEgZm9yCmJ1aWxkIHJlcXVlc3RzIHRoYXQgd291bGRuPUUyPTgwPTk5dCByZWFjaCB0aGUgc2FmZXBvaW50LCBpcyB0aGF0IHJlYXNvbiBlbj0Kb3VnaCB0bwpyZWplY3QgYWRkaXRpb24/CgpUaGUgZXh0ZW5zaWJpbGl0eSBpc3N1ZSBpcyBhY3R1YWxseSBhbiBpbXBvcnRhbnQgY2FzZS4gVXNlcnMgd2FudCBmZWF0dXJlcwpsaWtlIHNjcmlwdGluZyBiZWNhdXNlIHRoZXkgbmVlZCBzb21ldGhpbmcgY3VzdG9tLiBTY3JpcHRpbmcgYnJpbmdzIGJhY2sKaW1wZXJhdGl2ZSBidWlsZHMsIHdoaWNoIElNSE8gTWF2ZW4gdmlld3MgYXMgYW4gYW50aS1wYXR0ZXJuLgoKU28gd2hhdCBpcyB0aGUgcHJvYmxlbSBwZW9wbGUgYXJlIHRyeWluZyB0byBzb2x2ZT8gVGhleSB3YW50IGEgcGx1Z2luIGZvcgpqdXN0IG9uZSBwcm9qZWN0LiBSaWdodCBub3cgeW91IGNhbm5vdCBiZWNhdXNlIHdlIGNhbm5vdCBpbnN0YW50aWF0ZSB0aGUKZnVsbCBidWlsZCBwbGFuIHVudGlsIHdlIGNhbiBpbnNwZWN0IHRoZSBwbHVnaW4gbWV0YWRhdGEuLi4gYnV0IHVudGlsIHdlCmJ1aWxkIHRoZSBwbHVnaW4gd2UgY2Fubm90IGdldCB0aGUgbWV0YWRhdGEuCgpXaXRoIGEgZ2VuZXJhbCBwbHVnaW4sIEkgdGhpbmsgdGhlcmUgaXMgbm90IG11Y2ggd2UgY2FuIGRvLiBGb3IgZXhhbXBsZSBhCnBsdWdpbiByZWRlZmluaW5nIGEgbGlmZWN5Y2xlIG1pZ2h0IGFjdHVhbGx5IG1lYW4gdGhhdCB0aGUgYnVpbGQgcGxhbiB3aWxsCmJlIGRpZmZlcmVudCBmb3IgbW9kdWxlcyB1c2luZyB0aGF0IHBsdWdpbiBhcyBhbiBleHRlbnNpb24uCgpCdXQgaWYgdGhlIHBsdWdpbiBpcyBqdXN0IGRlZmluaW5nIHNvbWUgZ29hbHMgYW5kIHRob3NlIGdvYWxzIGFyZSBqdXN0CmJvdW5kIHRvIHBoYXNlcyBpbiB0aGUgcHJlLWV4aXN0aW5nIGxpZmUgY3ljbGVzLi4uIGFnYWluLCBpdCBzZWVtcyB3ZSBjYW4KYWxsb3cgdGhlIGJ1aWxkIHRvIHByb2NlZWQKCkRpc2N1c3Npb24gcG9pbnRzOgoqIGhvdyB0byBoYW5kbGUgYG12biB0ZXN0YC4gSWYgdGhlIHBsdWdpbiBpcyBvbmx5IGJvdW5kIHRvIGxhdGVyIHBoYXNlcywgd2UKYXJlIGdvb2QuLi4gYnV0IHdoYXQgaWYgdGhlIHBsdWdpbiBpcyBib3VuZCB0byBhbiBlYXJseSBwaGFzZT8gRG8gd2UganVzdApib21iIG91dCBhbmQgc2F5LCBzb3JyeSB5b3UgbmVlZCB0byBpbnZva2UgYXQgbGVhc3QgcGFja2FnZT8gRG8gd2UgZmFsbApiYWNrIHRvIGxvY2FsIHJlcG8/IERvIHdlIHVwc2NhbGUgdGhlIGJ1aWxkIHBsYW4gZm9yIHRoZSBwbHVnaW4gdG8gcGFja2FnZQoqIGhvdyB0byBoYW5kbGUgYG12biBzaXRlYC4uLiBpbiB0aGlzIGNhc2Ugd2Ugd291bGRuPUUyPTgwPTk5dCBiZSBwcm9kdWNpbmc9CiB0aGUKcGx1Z2luIGluIHRoZSByZWFjdG9yIGFueXdheS4uLiBkbyB3ZSBib21iIG91dCBhbmQgc2F5ID1FMj04MD05Q3lvdSBtdXN0IGRvPQogYG12bgpwYWNrYWdlIHNpdGVgPUUyPTgwPTlDPyBEbyB3ZSBtb2RpZnkgdGhlIGJ1aWxkIHBsYW4/IERvIHdlIHVzZSBsb2NhbCByZXBvPwoqIHdlIGNvdWxkIGJlIHNtYXJ0ZXIgYW5kIHVzZSB0aGUgYnVpbGQgcGxhbiBzYWZlcG9pbnQgYXMgYSBzdGFnaW5nIHBvaW50CmFuZCBhbGxvdyBsaWZlY3ljbGVzIGFuZCBvdGhlciB0aGluZ3MuLi4gdGhvdWdoIG9idmlvdXNseSBtb3JlIHdvcmsKKiB3aGF0IGFib3V0IGludm9raW5nIGEgcGx1Z2luIGdvYWwgZnJvbSB0aGUgQ0xJIGRpcmVjdGx5Li4uIGRvIHdlIGFzayBmb3IKYG12biBwYWNrYWdlIGZvbzptYW5jaHVgPyBGb3IgdGhpcyB0byB3b3JrLCBmb286bWFuY2h1IHdvdWxkIGhhdmUgdG8gYmUgYW4KYWdncmVnYXRvciBnb2FsLCBvdGhlcndpc2UgaXQgY291bGQgYmUgYW4gZXhlY3V0aW9uIHJlcXVlc3Qgb24gZWFybGllcgptb2R1bGVzIGJ5IGEgbGF0ZXIgbW9kdWxlPyBDb3VsZCB3ZSBkZWxheSB0aGUgYnVpbGQgcGxhbiBpbnN0YW50aWF0aW9uCnVudGlsIGFmdGVyIHRoZSBwbHVnaW4gaXMgYnVpbHQ/IENvdWxkIHdlIGp1c3QgcmVxdWlyZSB0aGUgcGx1Z2luIGJlIHNlcnZlZApmcm9tIHRoZSBsb2NhbCByZXBvc2l0b3J5IGFuZCByZXZhbGlkYXRlIHRoZSBidWlsZCBwbGFuIGFmdGVyIHRoZSBuZXcKcGx1Z2luIGJ1aWxkIGlzIGF2YWlsYWJsZT8KCkkgdGhpbmsgdGhlc2UgYXJlIHR3byBpbXByb3ZlbWVudHMgdGhhdCBjb3VsZCBiZSBtYWRlICp3aXRob3V0KiBjaGFuZ2VzIHRvCnRoZSBtb2RlbFZlcnNpb24gYW5kIHRoZXkgd291bGQgaGF2ZSBhIHJlYWwgYW5kIG1lYW5pbmdmdWwgaW1wcm92ZW1lbnQgZm9yCm91ciB1c2Vycy4uLiBhcyBzdWNoIEkgd291bGQgbGlrZSB1cyB0byBjb25zaWRlciAoYXMgb3B0aW9uYWwgZ29hbHMpIGZvcgpNYXZlbiA0LjAuMAoKV2R5dD8KLS09MjAKU2VudCBmcm9tIG15IHBob25lCgotLTAwMWExMTNjOGJiOGMzNjlkMjA1NWQ0MDEyMDUtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDM5OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgTm92ICA0IDEzOjI0OjE2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDM5OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBEQjI5MDE3RUI2Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMTM6MjQ6MTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5ODY3OSBpbnZva2VkIGJ5IHVpZCA1MDApOyA0IE5vdiAyMDE3IDEzOjI0OjE2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5ODU3NyBpbnZva2VkIGJ5IHVpZCA1MDApOyA0IE5vdiAyMDE3IDEzOjI0OjE2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTg1NjMgaW52b2tlZCBieSB1aWQgOTkpOyA0IE5vdiAyMDE3IDEzOjI0OjE2IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwNCBOb3YgMjAxNyAxMzoyNDoxNiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDczMkExMTA3NkEzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxMzoyNDoxNSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjQwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC40MDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIG9ENVVNSDFJV3lUSyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgIDQgTm92IDIwMTcgMTM6MjQ6MTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13cjAtZjE3OS5nb29nbGUuY29tIChtYWlsLXdyMC1mMTc5Lmdvb2dsZS5jb20gWzIwOS44NS4xMjguMTc5XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDE2RjZGNUY1NjYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA0IE5vdiAyMDE3IDEzOjI0OjE0ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdyMC1mMTc5Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIDRzbzQ4NjExNHdydC4wCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMDQgTm92IDIwMTcgMDY6MjQ6MTQgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9aDQ5MkJpQ2I0U3Z5U2YyWlYyS2lZcU4vVWc2R1pCVldqZmR0dWtvdnc3az07CiAgICAgICAgYj1veUtCSVFwcUIwZnJIUGZIR1h2cTgrcW5sNnpJdWZQYTZ1Ulpxb1Q2Y1huVGl0eElqaTNoWWpVQ2RmU1Rjc0VzSE8KICAgICAgICAgU2pGeUR6TGg3UDFGRDdmcFFPMVZFc00wdVRXaHRRdi9GcFFvQVVJVjl4UFJJR1NyNHB1TjdWbHJrdnhWVFpGYnQrZWcKICAgICAgICAgL0c5Zk9NdXpkeDhUbEtjdldkMm5rVDIrSllxb0NJb2NUSk1CUUl4a2FObE05TkFHelE1Q0lBK3NVbERRYWFta3RVa1EKICAgICAgICAgTExKWkdvei9RdnBzUUFYTEFOYlA0ZnA1VHRseUszWGhzZGhjMmZUa09oVjFza0M4dEpoc2dGcnd3eDJ2eElaaVFrTHkKICAgICAgICAgbS9PVlRBQ0F2VXcyUlFObGRGQStyOWJ0d2ZrNUcxa0JscXJURmhJYURtUmFHR3VnV3VsN2Y4cWhYR3g2emZ3enlsZUcKICAgICAgICAgdmVqUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9aDQ5MkJpQ2I0U3Z5U2YyWlYyS2lZcU4vVWc2R1pCVldqZmR0dWtvdnc3az07CiAgICAgICAgYj1xSGYrYWhuYzlFSmNpbW83SmM2c0xWa2NLOVZvcHZWaWRKeGpNZkJsNll0djJCTDlBNnZnSmI5VmE0YnppMVh2S2sKICAgICAgICAgSFB1VmhsSkNWMTVsYnFYckxRb09PNFIwOHFqVm9zcnpHMGVNU2N2REd4U0NSUWg1R0c5MmRkUmZSNCtHZ2dxVmdlWjkKICAgICAgICAgbTBGT1R2Yjk1Ni9wNjZRMjMzRHNydDVMaVVtaTl4d1RzYjAwYklkekJKczRTcGRDMGp0NkRURFNOTS9uSkpNcUJvdkoKICAgICAgICAgMldjYmgwRmRkMGVwa2dOWElGRU5JcmJxY3JGY3dHYndYeGxJOC82cEI3aGhrVjllL05kdzl1TXZTZlQ0Q2dYaElCOFAKICAgICAgICAgbW5xK2loWlhMOXQ4c0hRRGFpZlJXNVAreG1wSmp1a3JjRE11eENYd1hXb1ZtejdDLzQyMDg3QUJOd3AzdW9LclVBcGcKICAgICAgICAgRGZZQT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVXRKZVdjMkQrUWgrcW0yejM4RXNTUXVCeDN5dGNhT3RjSGhUSWVqY28rRFB3YVVCVk0KCTh3V29IcHljUkVpWS8rM1YxWnBOaUhOYkdwM1F5NEpIZnNXUXpmUVc3QT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtSOU5TWGlLdHZ4SG9IdTRRdzdnR0dOcVJDODZVUDNtaWd4TTQvZjFlc25PT2s2L1RXeWFjZ2toR2ZFRHVnK2toQnRGeFMxbmhOUDBhWnZVc1c1d2VzPQpYLVJlY2VpdmVkOiBieSAxMC4yMjMuMTQ0LjIyNiB3aXRoIFNNVFAgaWQgaTg5bXI4MDQ1MTkwd3JpLjIxNy4xNTA5ODAxODUyODMzOwogU2F0LCAwNCBOb3YgMjAxNyAwNjoyNDoxMiAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8Q0ErblBuTXdFSDlaMm15cDcxdWFTcmRjeUxKUkZyRS1WcnQyMDE5MXJkMDFoK1VmaGp3QG1haWwuZ21haWwuY29tPgogPDk2OTQ4YzY3LWVlOWItY2IxNC1mM2YxLTRlNmE0MzhhOTNlNEBhcGFjaGUub3JnPiA8Q0ErblBuTXpqWDNhYmR6YWlQUWdZYWFlNGZUaDAtK2FiVUJ4MWJvXzhteDU4ZFlWT1F3QG1haWwuZ21haWwuY29tPgpJbi1SZXBseS1UbzogPENBK25Qbk16algzYWJkemFpUFFnWWFhZTRmVGgwLSthYlVCeDFib184bXg1OGRZVk9Rd0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAwNCBOb3YgMjAxNyAxMzoyNDowMiArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXdSSEtjXzRlTmszNW1nR1B1NStDNnE0QmJuNVI1RVM1LXU5NXUzK3BzMFBRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogTWF2ZW4gNC4wLjAKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iOTRlYjJjMDVmNDgyMWU5NTE0MDU1ZDI4MjM4NSIKCi0tOTRlYjJjMDVmNDgyMWU5NTE0MDU1ZDI4MjM4NQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPbiBTYXQgNCBOb3YgMjAxNyBhdCAxMjo1MiwgU3RlcGhlbiBDb25ub2xseSA8CnN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgoKPiBPbiBTYXQgNCBOb3YgMjAxNyBhdCAxMjo0OSwgTWljaGFlbCBPc2lwb3YgPG1pY2hhZWxvQGFwYWNoZS5vcmc+IHdyb3RlOgo+Cj4+IEFtIDIwMTctMTEtMDQgdW0gMTM6MjAgc2NocmllYiBTdGVwaGVuIENvbm5vbGx5Ogo+PiA+IFRoZSBwYXN0IHR3byBkYXlzLCBIZXJ2PUMzPUE5LCBSb2JlcnQgYW5kIEkgaGF2ZSBiZWVuIGRpc2N1c3Npbmcgb3VyIG49CmV4dAo+PiBzdGVwcy4KPj4gPgo+PiA+IEkgdGhpbmsgd2UgaGF2ZSBhIHNlbWktY29uc2Vuc3VzIHdoaWNoIEkgd2FudCB0byBicmluZyBiYWNrIHRvIHRoZSBsaXM9CnQ6Cj4+ID4KPj4gPiBXZSBrZWVwIDMuNS54IGFzIGEgc3RhYmxlIGJyYW5jaCB3aXRoIGNyaXRpY2FsIGJ1ZyBmaXhlcyBvbmx5Cj4+ID4KPj4gPiBXZSBzd2l0Y2ggbWFzdGVyIHRvIDQuMC4wIGFuZCBzdGFydCB0byBidXJuIGRvd24gYSByZWxlYXNlIHNjb3BlLgo+PiA+Cj4+ID4gNC4wLjAgd2lsbCBub3QgY2hhbmdlIHRoZSBwb20gbW9kZWxWZXJzaW9uCj4+ID4KPj4gPiBUaGUgNC4wLjAgc2NvcGUgc2hvdWxkIHByb2JhYmx5IGJlOgo+PiA+Cj4+ID4gUmVxdWlyZWQ6Cj4+ID4gKiBkcm9wIEphdmEgNywgc3dpdGNoIGNvZGViYXNlIHRvIEphdmEgOCBpZGlvbXMgKHdoaWxlIG1haW50YWluaW5nCj4+IGJpbmFyeQo+PiA+IGFwaSBjb21wYXRpYmlsaXR5IGZvciBwbHVnaW5zKQo+Pgo+PiBXaG8gaXMgZ29pbmcgdG8gZG8gdGhpcz8gSSBoYXZlbid0IGV2ZW4gc2VlbiBhbnkgSmF2YSA3IGltcHJvdmVtZW50cwo+PiAoTklPIDIgYW5kIG90aGVycykgaW4gY29yZSBzaW5jZSAzLjMuIEkgZG91YnQgdGhhdCBjb3JlIHdpbGwgd2UgYmUKPj4gcmV3cml0dGVuIHdpdGggSmF2YSA4IGlkaW9tcy4KPj4gQ29uc2lkZXIgdGhhdCB3ZSBzdGlsbCBoYXZlIHBsdWdpbnMgcnVubmluZyBNYXZlbiAyLjIueCB3aGljaCBuZWVkIG1vcmUKPj4gYXR0ZW50aW9uIGZpcnN0Lgo+Cj4KPiBXZSBhcmUgZ29pbmcgdG8gYXNrIHRoZSB3aWRlciBjb21tdW5pdHkgdG8gY29udHJpYnV0ZSBQUnMgdG93YXJkcyB0aGF0Cj4gZ29hbCwgZWFjaCBQUiBsaW1pdGVkIHRvIH4yMCBMaW5lcyBvZiBkaWZmLgo+CgpBIGRpZmYgdGhpcyBzbWFsbCBvbiA9RTI9ODA9OUNvYnZpb3VzPUUyPTgwPTlEIChhcyBpbiB3ZT1FMj04MD05OWQgYmUganVzdCA9CmFzIGxpa2VseSB0byBjb21lIHVwCndpdGggdGhlIHNhbWUgb3Igc2ltaWxhciBjaGFuZ2UgaWYgd2UgbG9va2VkIGF0IHRoZSBtZXRob2QpIGNoYW5nZXMgZG9lcwpub3QgcmVxdWlyZSBhIHNpZ25lZCBJQ0xBLCBqdXN0IGNvbmZpcm1hdGlvbiBvZiBncmFudCBpbiBQUi4uLgoKU2hvdWxkIGdpdmUgYSBtdWNoIGxvd2VyIGJhcnJpZXIgZm9yIGdldHRpbmcgc3RhcnRlZCBjb250cmlidXRpbmcKCgo+IFdlIHdpbGwgbmVlZCBpbmZyYXN0cnVjdHVyZSB0byBhc3N1cmUgYmluYXJ5IGNvbXBhdGliaWxpdHkgKGxpa2UgY2xpcnIKPiB1c2VkIHRvIGRvIGJlZm9yZSBpdCBkaWVkKSBiZWZvcmUgd2UgY2FuIHN0YXJ0IHRoYXQgZWZmb3J0Lgo+Cj4gQWltIGlzIHRvIGZpbmQgcGVvcGxlIHdpbGxpbmcgdG8gZGl2ZSBpbiBhbmQgZ2V0IHRoZW0gZmFtaWxpYXIgd2l0aCB0aGUKPiBjb2RlIGJhc2UgYnkgbWFraW5nIG1hbnkgc21hbGwgbG93L25vIHJpc2sgY2hhbmdlcwo+Cj4KPj4KPj4gPiAqIHNwZWNpZnkgdGhlIGNsYXNzbG9hZGVyIGJlaGF2aW91ciBhbmQgZml4IGltcGwgdG8gYWxpZ24gd2l0aCBzcGVjIChtPQpheQo+PiA+IG5lZWQgYSBwbHVnaW4gZmxhZyB0byBhbGxvdyBwbHVnaW5zIHRvIG9wdCBpbiB0byBzcGVjIGJlaGF2aW91cikKPj4gPiAqIHNwZWNpZnkgdGhlIGV4dGVuc2lvbiBzcGVjCj4+ID4gKiBhbGxvdyBsaW1pdGVkIG11dGF0aW9uIG9mIHRoZSBydW50aW1lIG1vZGVsIChyZWR1Y2luZyB0cmFuc2l0aXZlCj4+ID4gZGVwZW5kZW5jaWVzIGZvciBjb25zdW1lcnMgd2l0aGluIHRoZSByZWFjdG9yLCBvbmx5IGZvciBwbHVnaW4gZ29hbHMKPj4gdGhhdAo+PiA+IGRlY2xhcmUgaW50ZW50KSB1c2UgY2FzZTogc2hhZGUgcGx1Z2luCj4+ID4gKiBiZXR0ZXIgQ0kgaW50ZWdyYXRpb24gaG9va3MKPj4gPiAqIG5pY2UgZXJyb3IgbWVzc2FnZSBmb3IgbmV3ZXIgcG9tIG1vZGVsVmVyc2lvbgo+Pgo+PiBUaGlzIGxvb2tzIHF1aXRlIHJlYXNvbmFibGUgdG8gbWUuCj4+Cj4+IE1pY2hhZWwKPj4KPj4KPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KPj4gLS0KPiBTZW50IGZyb20gbXkgcGhvbmUKPgotLT0yMApTZW50IGZyb20gbXkgcGhvbmUKCi0tOTRlYjJjMDVmNDgyMWU5NTE0MDU1ZDI4MjM4NS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MzQ2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBPY3QgMjYgMTE6MzE6MDEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzQ2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIENBODc2MTA2NkMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAyNiBPY3QgMjAxNyAxMTozMTowMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDM2MDc5IGludm9rZWQgYnkgdWlkIDUwMCk7IDI2IE9jdCAyMDE3IDExOjMwOjU2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNTk0NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBPY3QgMjAxNyAxMTozMDo1NiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM1ODM5IGludm9rZWQgYnkgdWlkIDk5KTsgMjYgT2N0IDIwMTcgMTE6MzA6NTYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDI2IE9jdCAyMDE3IDExOjMwOjU2ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNUQyNkRDNENCRgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjYgT2N0IDIwMTcgMTE6MzA6NTUgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjg4ClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MS44OCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxLCBVUklCTF9CTE9DS0VEPTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGMtTzJmQ2R1dlkyTiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVRodSwgMjYgT2N0IDIwMTcgMTE6MzA6NTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13bTAtZjQxLmdvb2dsZS5jb20gKG1haWwtd20wLWY0MS5nb29nbGUuY29tIFs3NC4xMjUuODIuNDFdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNTY2NUE1RkFGMwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjYgT2N0IDIwMTcgMTE6MzA6NTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd20wLWY0MS5nb29nbGUuY29tIHdpdGggU01UUCBpZCB5ODNzbzIzNTQ0MTV3bWMuNAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDI2IE9jdCAyMDE3IDA0OjMwOjU0IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPVRseXVFMDgrR09uakxSZjl1eExDb0FKMC9Bb25OaEdRMlUwMmx6ZWpLVlk9OwogICAgICAgIGI9Tk5VMStKZDNJTXNPSDZINEdIYm9OOTlWcmNBbEZRNFN2eWpjTjAvWVdSSnpZNFdMSDh2MFVmaDg1czhzMklEZGpYCiAgICAgICAgIGwrQkl5elpsWEcyYXZJZ2poU2tUOWc1TGJranQrRmNUNEtqK2p2QVJtNWcycXBFeHBKS29aZkRQQnhtVGdTMzlmWTl4CiAgICAgICAgIHMvc2NMRm9sMU83ZFgzMTZXT1h3bHVGOEtIaGR0bzN1K2E3anp6N2c2dWRkUTlrcm9zL2xqN2xqbVhIWXAyMVlFSERaCiAgICAgICAgIDdldDFBbnlVNkVFV0tMdkVtVktTQ0hBQ1E0NGRrR3hzSTdubHk4RG1oVUxCSXFBbzBDRGw1NnBjcjFPSEErTzBEUGtsCiAgICAgICAgIHEySGxkMXhPeDQyT3FSa1dUd1dLaENVeURwWFFlN25oTncyai8yOHdKbTFGd0ZEYnI2ZFUxSVN2bmhvTGlRMTE3R2xmCiAgICAgICAgIGxXWnc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPVRseXVFMDgrR09uakxSZjl1eExDb0FKMC9Bb25OaEdRMlUwMmx6ZWpLVlk9OwogICAgICAgIGI9cmY0NmJJdWpCaVRzYWNUNmlQYnBOR1BMM2M0NnRXRldyQklzYjJkc2FTQ3dpMnEvaU9telN0Sk9KUEZKRzFoNGNKCiAgICAgICAgIE9EUkU1UXJoSFhFUVFvbUthY2RwR2RUWHdNMUtORlNVYnF6OVRXTld3S0FaYlNlbmd0cytUOXdMTFFNeU5iS3diaUFKCiAgICAgICAgIE9HSmtTeFhFbG9LUWFyb0VsSGJTK21pcStKRWc3VmRBZC9UdEVuQ3RvZVM0VXRzYWdNWmh1cExIYUVHQW10REtlWEhSCiAgICAgICAgIGRSRTZvOFRNeVRHMnJkbXk0akY1d3NMbzU1RXo4dGhjK25BL2dwd1l6NExCL01QTUVPZlptck5NYlY2aVVERExNVmFWCiAgICAgICAgIFMvakdiUmQzYVRreVBuWnJsZ1dsLzVmeE05cGVvZ2hwN2dlR2tHOFlDNzVhNEpLV0FnZnFqZktoT1F3VC91V3EyLzIxCiAgICAgICAgIEhhbHc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVdxcXppWFYxZmJjN0RXZ0U0TUhkU1hRckVocUlieGdoNWVkVHMwclQ4RFlZeVRNSndICglJd0o4OGNlaGxuZ2lKQXNOWm81RUhkUWo2MnM3UWk1bk1DMnpmRjlxd3c9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArUTNHYzg1TnBuZllZNFlFd051aWFGQVV5RDVHUERWOC9LWGY1a3RkZng3RkdsOTA4bFoxUjdsNTMvTDBWU241dXp4K21tRDdxejEyTXdWTXh3M3pHMD0KWC1SZWNlaXZlZDogYnkgMTAuMjguMTExLjIwMyB3aXRoIFNNVFAgaWQgYzcybXIxNDE5Mjkzd21pLjQyLjE1MDkwMTc0NTMxMzQ7CiBUaHUsIDI2IE9jdCAyMDE3IDA0OjMwOjUzIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yMjMuMTg3Ljggd2l0aCBIVFRQOyBUaHUsIDI2IE9jdCAyMDE3IDA0OjMwOjUyIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8MTUwOTAwMzYwNTgwLjE2MTkuMTY5MTU4MTA0NDY4ODQ5MzgwMzYuZ2l0Ym94QGdpdGJveC5hcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8MTUwOTAwMzYwNTgwLjE2MTkuMTY5MTU4MTA0NDY4ODQ5MzgwMzYuZ2l0Ym94QGdpdGJveC5hcGFjaGUub3JnPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBUaHUsIDI2IE9jdCAyMDE3IDEyOjMwOjUyICswMTAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5Nd1Mrak1xSjJaZ2U9PWRlaDU9WjlFYWhGQkR6bmJEOFUyZDVEc0VjOHNCK2dAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbR2l0SHViXSBhc2ZnaXQgY2xvc2VkIHB1bGwgcmVxdWVzdCAjNjogYWRkIGEgSVQgY2FzZSBmb3IKIGJhbm5lZERlcGVuZGVuY2llcyBpbiBhIG11bHRpIG1vZHVsZSBwcm9qZWN0ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQ3NzlmYTQxMGFkYjA1NWM3MTgxYzciCgotLTAwMWExMTQ3NzlmYTQxMGFkYjA1NWM3MTgxYzcKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCmNvdWxkIHdlIGdldCB0aGVzZSBzZW50IHRvIGNvbW1pdHNAbS5hLm8gcmF0aGVyIHRoYW4gZGV2QG0uYS5vCgpPbiAyNiBPY3RvYmVyIDIwMTcgYXQgMDA6NDAsIEdpdEJveCA8Z2l0QGFwYWNoZS5vcmc+IHdyb3RlOgoKPiBhc2ZnaXQgY2xvc2VkIHB1bGwgcmVxdWVzdCAjNjogYWRkIGEgSVQgY2FzZSBmb3IgYmFubmVkRGVwZW5kZW5jaWVzIGluIGEKPiBtdWx0aSBtb2R1bGUgcHJvamVjdAo+IFVSTDogaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1lbmZvcmNlci9wdWxsLzYKPgoKLS0wMDFhMTE0Nzc5ZmE0MTBhZGIwNTVjNzE4MWM3LS0KCkZyb20gZGV2LXJldHVybi0xMjM5NjEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIFNlcCAxMSAwOTowMDo0OSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5NjEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQzU4RjMxOTFGRAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDA5OjAwOjQ5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODkwODkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgU2VwIDIwMTcgMDk6MDA6NDkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg5MDE0IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDA5OjAwOjQ5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODkwMDIgaW52b2tlZCBieSB1aWQgOTkpOyAxMSBTZXAgMjAxNyAwOTowMDo0OCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMTEgU2VwIDIwMTcgMDk6MDA6NDggKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAzRDI5NURBMUU4Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAwOTowMDo0OCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDAuMzQ5ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTAuMzQ5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9MT1RTT0ZIQVNIPTAuMjUsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgaWtBX3pIY1dhV3hjIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAxMSBTZXAgMjAxNyAwOTowMDo0NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXZrMC1mNDcuZ29vZ2xlLmNvbSAobWFpbC12azAtZjQ3Lmdvb2dsZS5jb20gWzIwOS44NS4yMTMuNDddKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMzcyNDk1RjZCRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMDk6MDA6NDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdmswLWY0Ny5nb29nbGUuY29tIHdpdGggU01UUCBpZCB3MjNzbzI4OTg3N3Zrdy4yCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMDI6MDA6NDYgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9WEVvMkY3YlVZQ0o0K1A1K0Y2MUR5TzFzSURWOWEzc1VZbVhEUU5QQm9HRT07CiAgICAgICAgYj1YMVZMZ1luL2F2R1ZyM2V0TjhtSmcwblR2WFlaeGwrbC9vWHRFNU5vREpJLzVzcTViNmhZWmFaNndOL3hTRXcvVjAKICAgICAgICAgbkRWN2txVXo3alJnWGFaQlBtZEFTUEEzT2x6c1pVR0V5M2xSNk1uSnRaNHdUU0NBcndmNHhvM3ZkaVk4Y1VqVDEyeHEKICAgICAgICAgaTZkUjZsWXI4NmIyRWhTd2k2YWlNWW5lWHIwdFJMRjhZSlk2Wlo3L2RmSVFCZWxkVUNDdS9LNGZWQk9PNmNJdHk3cHIKICAgICAgICAgZHlybnVFNnJhSnVLbWwvc3NVTXJDMk04dFlKRlJjcmJpT1lvTUdGSThHVTdTVWw2Q081eDJSRDRZMS8vNHZBV3lEaTAKICAgICAgICAgTWtqbytBQWhVVGVFWHhlcWJ3TVR2cjBhZ2o2a3BnQlorbjJHZkgyWEx6bzkzUVR3aXBLdmQ0TzhWT3BDNDBYN1FHY1YKICAgICAgICAgN2c5UT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9WEVvMkY3YlVZQ0o0K1A1K0Y2MUR5TzFzSURWOWEzc1VZbVhEUU5QQm9HRT07CiAgICAgICAgYj1JeDFLRytQcDhpWlVOTU5STkVMUEpnSkYyNkFreHNCQ0cyWGlnSWZWaTFVMCtKQWdDVWx1Q2Y5OWZDZzJpRE1ObkMKICAgICAgICAgQlFFeHMrWXR3WUt1UU5BK0N2K1dmY0Q1MjhvRUpZeEEyQzdscGtEdkx3b2EzSm14UTZydWhZWXJWT1YySGZ1N3Y4TkcKICAgICAgICAgS2dZdDc2SVcxcjVzOUREQ3FILzhObW15dW5GWXJPd3k0cHpLTTBVRmNjNkExaXJ3SGJDVDJaeUM1dHdibnNzWFFyM1gKICAgICAgICAgbzRQZ0tHZEJrd3J0UHFLaFRFK1NNbzVjRHlSMHRaTDAzUm90NjdBUU45bnVFdWZkNjk4NnZOYm15RVF5Z042T0VES2wKICAgICAgICAgZ2pnckx6UkpzSWNwTWhBZ1VuaGNVUkdYSWEzYklZRWxhZ0RPMFRiWjZWWEhIemFlYTUycHk1R2dJNmg0NG03TDZSb24KICAgICAgICAgZzNEZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVaFFXemRuWmxmZFo5citBU2ZXaEpKaGltcnQyTWp6dExYeTVRLzJvbU1pd2NNd29UNVQKCS9TU0psNWhsdlR2QXk0UGN0T3gvUktIVmFHNTNnRElQRW5RPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQmY5MkY4VlIxK0VOQnBockkrclpObEtVTmJZM2t3TWZTSWJKcVc3TkEzWllBQTUycEY1c01OU2duYXJGQ0xaMElwZUk0RGFkckZCdkhyV0xRWUJIND0KWC1SZWNlaXZlZDogYnkgMTAuMzEuMTY3LjIwMiB3aXRoIFNNVFAgaWQgcTE5M21yNzM2OTcyM3ZrZS40OS4xNTA1MTIwNDQwMjIxOwogTW9uLCAxMSBTZXAgMjAxNyAwMjowMDo0MCAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTc2Ljg5LjYgd2l0aCBIVFRQOyBNb24sIDExIFNlcCAyMDE3IDAyOjAwOjM5IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0ErblBuTXhtc1pZT2UyYy0wLVM0QTRzOVY4SjhOcmZWby02NUMtNzdOLUNQZ3JKQWZBQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgogPENBS3VWekJSNUVEa1Qram1iM3BlQmZrcmthdnl2aXllRlJDbW1Zb2dPN1g3aUg9Sy1hUUBtYWlsLmdtYWlsLmNvbT4KIDxDQVBDampuRVRGWlRMbSs4cmdLVzByNHN5WFlScG9CWmpfYUpqMXgyZHZpY3pPWUhrZGdAbWFpbC5nbWFpbC5jb20+CiA8Q0ErblBuTXgwPWYrK0RRaTMzNmcwcUhnMGF0QllRTU40NkN5X3V6QyttelZORHBtQUxBQG1haWwuZ21haWwuY29tPiA8Q0ErblBuTXhtc1pZT2UyYy0wLVM0QTRzOVY4SjhOcmZWby02NUMtNzdOLUNQZ3JKQWZBQG1haWwuZ21haWwuY29tPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBNb24sIDExIFNlcCAyMDE3IDAyOjAwOjM5IC0wNzAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5Nd1VYPWhFa0xLcTU1RjZKc05BMlhQKzVCWXM4b01HQlFqKy1MZm5hTVQ0UEFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDI3NWIwMmYwNGU5MDU1OGU2MjllOSIKCi0tMDAxYTExNDI3NWIwMmYwNGU5MDU1OGU2MjllOQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKU28gQXp1bCdzIFp1bHUgNyBkb2VzIG5vdCBoYXZlCgpjb20uc3VuLnNjcmlwdC5qYXZhc2NyaXB0LlJoaW5vU2NyaXB0RW5naW5lRmFjdG9yeSBvciBhbnkKU2NyaXB0RW5naW5lRmFjdG9yeSBpbiB0aGUgYmFzZSBjbGFzc2xvYWRlci4uLgoKWnVsdSA4IGhhcyBqZGsubmFzaG9ybi5hcGkuc2NyaXB0aW5nLk5hc2hvcm5TY3JpcHRFbmdpbmVGYWN0b3J5CgpTbyBhdCB0aGlzIHBvaW50IGluIHRpbWUsIG15IGFuYWx5c2lzIGlzIHRoYXQgdGhlIERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QKaXMgbm90IGEgdmFsaWQgdGVzdCB3aGVuIHRoZSBkZWZhdWx0IGNsYXNzbG9hZGVyIGRvZXMgbm90IGhhdmUgYW55ClNjcmlwdEVuZ2luZUZhY3RvcnkuLi4KSSdtIGdvaW5nIHRvIGNvbW1pdCBhIGZpeCwgYnV0IHRoaXMgc2hvdWxkIG5vdCBpbnZhbGlkYXRlIHRoZSAzLjUuMSByZWxlYXNlCgpPbiAxMSBTZXB0ZW1iZXIgMjAxNyBhdCAwMTo1MywgU3RlcGhlbiBDb25ub2xseSA8CnN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgoKPiBXaXRoIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4taW50ZWdyYXRpb24tdGVzdGluZy9jb21taXQvCj4gYTA4ZDY1YmZiNWZlZGVjOWY2ODRjMTNiZjVhMGRjY2I5NmY1Y2M1NiBJIHdhcyBhYmxlIHRvIGdldCBNaWNoYWVsJ3MgdGVzdAo+IGZhaWx1cmVzOgo+Cj4gQXBhY2hlIE1hdmVuIDMuNS4xICgwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzOwo+IDIwMTctMDktMTBUMTI6NDI6NTRaKQo+IE1hdmVuIGhvbWU6IC93b3JrL2Jpbgo+IEphdmEgdmVyc2lvbjogMS43LjBfMTU0LCB2ZW5kb3I6IEF6dWwgU3lzdGVtcywgSW5jLgo+IEphdmEgaG9tZTogL3Vzci9saWIvanZtL3p1bHUtNy1hbWQ2NC9qcmUKPiBEZWZhdWx0IGxvY2FsZTogZW5fVVMsIHBsYXRmb3JtIGVuY29kaW5nOiBVVEYtOAo+IE9TIG5hbWU6ICJsaW51eCIsIHZlcnNpb246ICI0LjkuNDYtbW9ieSIsIGFyY2g6ICJhbWQ2NCIsIGZhbWlseTogInVuaXgiCj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUZXN0IHNldDogb3JnLmFwYWNoZS5tYXZlbi5jbGFzc3JlYWxtLkRlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtLS0tLS0tLS0tLS0tLS0tLS0tCj4gVGVzdHMgcnVuOiA1LCBGYWlsdXJlczogNSwgRXJyb3JzOiAwLCBTa2lwcGVkOiAwLCBUaW1lIGVsYXBzZWQ6IDIuMTI4IHNlYwo+IDw8PCBGQUlMVVJFISAtIGluIG9yZy5hcGFjaGUubWF2ZW4uY2xhc3NyZWFsbS5EZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0Cj4gdGVzdE1ORzYyNzVfbWF2ZW5BcGlSZWFsbURlZmF1bHRQYXJlbnRDbGFzc0xvYWRlcihvcmcuYXBhY2hlLm1hdmVuLgo+IGNsYXNzcmVhbG0uRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdCkgIFRpbWUgZWxhcHNlZDogMS4xMiBzZWMgIDw8PAo+IEZBSUxVUkUhCj4ganVuaXQuZnJhbWV3b3JrLkFzc2VydGlvbkZhaWxlZEVycm9yOiBudWxsCj4gYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5mYWlsKEFzc2VydC5qYXZhOjU1KQo+IGF0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQuYXNzZXJ0VHJ1ZShBc3NlcnQuamF2YToyMikKPiBhdCBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0LmFzc2VydFRydWUoQXNzZXJ0LmphdmE6MzEpCj4gYXQganVuaXQuZnJhbWV3b3JrLlRlc3RDYXNlLmFzc2VydFRydWUoVGVzdENhc2UuamF2YToyMDEpCj4gYXQgb3JnLmFwYWNoZS5tYXZlbi5jbGFzc3JlYWxtLkRlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfCj4gbWF2ZW5BcGlSZWFsbURlZmF1bHRQYXJlbnRDbGFzc0xvYWRlcihEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0Lgo+IGphdmE6OTEpCj4KPiB0ZXN0TU5HNjI3NV9jb3JlUmVhbG1EZWZhdWx0UGFyZW50Q2xhc3NMb2FkZXIob3JnLmFwYWNoZS5tYXZlbi5jbGFzc3JlYWxtLkRlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QpCj4gIFRpbWUgZWxhcHNlZDogMC4yNzEgc2VjICA8PDwgRkFJTFVSRSEKPiBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0aW9uRmFpbGVkRXJyb3I6IG51bGwKPiBhdCBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0LmZhaWwoQXNzZXJ0LmphdmE6NTUpCj4gYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5hc3NlcnRUcnVlKEFzc2VydC5qYXZhOjIyKQo+IGF0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQuYXNzZXJ0VHJ1ZShBc3NlcnQuamF2YTozMSkKPiBhdCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2UuYXNzZXJ0VHJ1ZShUZXN0Q2FzZS5qYXZhOjIwMSkKPiBhdCBvcmcuYXBhY2hlLm1hdmVuLmNsYXNzcmVhbG0uRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXN0TU5HNjI3NV8KPiBjb3JlUmVhbG1EZWZhdWx0UGFyZW50Q2xhc3NMb2FkZXIoRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC5qYXZhOjk5KQo+Cj4gdGVzdE1ORzYyNzVfZXh0ZW5zaW9uUmVhbG1EZWZhdWx0UGFyZW50Q2xhc3NMb2FkZXIob3JnLmFwYWNoZS5tYXZlbi4KPiBjbGFzc3JlYWxtLkRlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QpICBUaW1lIGVsYXBzZWQ6IDAuMjUxIHNlYyAgPDw8Cj4gRkFJTFVSRSEKPiBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0aW9uRmFpbGVkRXJyb3I6IG51bGwKPiBhdCBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0LmZhaWwoQXNzZXJ0LmphdmE6NTUpCj4gYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5hc3NlcnRUcnVlKEFzc2VydC5qYXZhOjIyKQo+IGF0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQuYXNzZXJ0VHJ1ZShBc3NlcnQuamF2YTozMSkKPiBhdCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2UuYXNzZXJ0VHJ1ZShUZXN0Q2FzZS5qYXZhOjIwMSkKPiBhdCBvcmcuYXBhY2hlLm1hdmVuLmNsYXNzcmVhbG0uRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXN0TU5HNjI3NV8KPiBleHRlbnNpb25SZWFsbURlZmF1bHRQYXJlbnRDbGFzc0xvYWRlcihEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0Lgo+IGphdmE6NzMpCj4KPiB0ZXN0TU5HNjI3NV9wbHVnaW5SZWFsbURlZmF1bHRQYXJlbnRDbGFzc0xvYWRlcihvcmcuYXBhY2hlLm1hdmVuLgo+IGNsYXNzcmVhbG0uRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdCkgIFRpbWUgZWxhcHNlZDogMC4yNDQgc2VjICA8PDwKPiBGQUlMVVJFIQo+IGp1bml0LmZyYW1ld29yay5Bc3NlcnRpb25GYWlsZWRFcnJvcjogbnVsbAo+IGF0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQuZmFpbChBc3NlcnQuamF2YTo1NSkKPiBhdCBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0LmFzc2VydFRydWUoQXNzZXJ0LmphdmE6MjIpCj4gYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5hc3NlcnRUcnVlKEFzc2VydC5qYXZhOjMxKQo+IGF0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZS5hc3NlcnRUcnVlKFRlc3RDYXNlLmphdmE6MjAxKQo+IGF0IG9yZy5hcGFjaGUubWF2ZW4uY2xhc3NyZWFsbS5EZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1Xwo+IHBsdWdpblJlYWxtRGVmYXVsdFBhcmVudENsYXNzTG9hZGVyKERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QuamF2YTo2MikKPgo+IHRlc3RNTkc2Mjc1X3Byb2plY3RSZWFsbURlZmF1bHRQYXJlbnRDbGFzc0xvYWRlcihvcmcuYXBhY2hlLm1hdmVuLgo+IGNsYXNzcmVhbG0uRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdCkgIFRpbWUgZWxhcHNlZDogMC4yNDIgc2VjICA8PDwKPiBGQUlMVVJFIQo+IGp1bml0LmZyYW1ld29yay5Bc3NlcnRpb25GYWlsZWRFcnJvcjogbnVsbAo+IGF0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQuZmFpbChBc3NlcnQuamF2YTo1NSkKPiBhdCBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0LmFzc2VydFRydWUoQXNzZXJ0LmphdmE6MjIpCj4gYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5hc3NlcnRUcnVlKEFzc2VydC5qYXZhOjMxKQo+IGF0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZS5hc3NlcnRUcnVlKFRlc3RDYXNlLmphdmE6MjAxKQo+IGF0IG9yZy5hcGFjaGUubWF2ZW4uY2xhc3NyZWFsbS5EZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1Xwo+IHByb2plY3RSZWFsbURlZmF1bHRQYXJlbnRDbGFzc0xvYWRlcihEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LmphdmE6ODMpCj4KPiBpbnZlc3RpZ2F0aW5nLi4uCj4KPiBPbiAxMSBTZXB0ZW1iZXIgMjAxNyBhdCAwMTo0NCwgU3RlcGhlbiBDb25ub2xseSA8Cj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4KPj4gQnVpbGRpbmcgdGhlIHNvdXJjZSBidW5kbGVzIHdpdGggdGhlIGJpbmFyeSBidW5kbGVzIGluIHRoZSBzdGFnaW5nIHJlcG8KPj4gdXNpbmcgdGhlIERvY2tlcmZpbGUgZW52aXJvbm1lbnRzIGluIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZQo+PiBuLWludGVncmF0aW9uLXRlc3RpbmcvdHJlZS9tYXN0ZXIvZW52aXJvbm1lbnRzCj4+Cj4+IERlYmlhbiBKREsgNwo+PiA9PT09PT09PT09PQo+Pgo+PiBMaW51eCA2NWZiODMyZGZlNDMgNC45LjQ2LW1vYnkgIzEgU01QIFRodSBTZXAgNyAwMjo1Mzo0MiBVVEMgMjAxNyB4ODZfNjQKPj4gR05VL0xpbnV4Cj4+IEFwYWNoZSBNYXZlbiAzLjUuMSAoMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMzsKPj4gMjAxNy0wOS0xMFQxMjo0Mjo1NFopCj4+IE1hdmVuIGhvbWU6IC93b3JrL2Jpbgo+PiBKYXZhIHZlcnNpb246IDEuNy4wXzE1MSwgdmVuZG9yOiBPcmFjbGUgQ29ycG9yYXRpb24KPj4gSmF2YSBob21lOiAvdXNyL2xpYi9qdm0vamF2YS03LW9wZW5qZGstYW1kNjQvanJlCj4+IERlZmF1bHQgbG9jYWxlOiBlbiwgcGxhdGZvcm0gZW5jb2Rpbmc6IFVURi04Cj4+IE9TIG5hbWU6ICJsaW51eCIsIHZlcnNpb246ICI0LjkuNDYtbW9ieSIsIGFyY2g6ICJhbWQ2NCIsIGZhbWlseTogInVuaXgiCj4+Cj4+IG12biB2ZXJpZnkgPT4gU1VDQ0VTUwo+Pgo+PiBEZWJpYW4gSkRLIDgKPj4gPT09PT09PT09PT0KPj4KPj4gTGludXggMTFlZjFjMTE0YjZiIDQuOS40Ni1tb2J5ICMxIFNNUCBUaHUgU2VwIDcgMDI6NTM6NDIgVVRDIDIwMTcgeDg2XzY0Cj4+IEdOVS9MaW51eAo+PiBBcGFjaGUgTWF2ZW4gMy41LjEgKDA5NGU0ZTMxYTVhZjU1YmIxN2JlODc2NzVkYTQxZDlhZWNhMDYyZjM7Cj4+IDIwMTctMDktMTBUMTI6NDI6NTRaKQo+PiBNYXZlbiBob21lOiAvd29yay9iaW4KPj4gSmF2YSB2ZXJzaW9uOiAxLjguMF8xNDEsIHZlbmRvcjogT3JhY2xlIENvcnBvcmF0aW9uCj4+IEphdmEgaG9tZTogL3Vzci9saWIvanZtL2phdmEtOC1vcGVuamRrLWFtZDY0L2pyZQo+PiBEZWZhdWx0IGxvY2FsZTogZW4sIHBsYXRmb3JtIGVuY29kaW5nOiBVVEYtOAo+PiBPUyBuYW1lOiAibGludXgiLCB2ZXJzaW9uOiAiNC45LjQ2LW1vYnkiLCBhcmNoOiAiYW1kNjQiLCBmYW1pbHk6ICJ1bml4Igo+Pgo+PiBtdm4gdmVyaWZ5ID0+IFNVQ0NFU1MKPj4KPj4gRmVkb3JhIEpESyA4Cj4+ID09PT09PT09PT09Cj4+Cj4+IExpbnV4IDU0MjExYTBlNjk0ZSA0LjkuNDYtbW9ieSAjMSBTTVAgVGh1IFNlcCA3IDAyOjUzOjQyIFVUQyAyMDE3IHg4Nl82NAo+PiB4ODZfNjQgeDg2XzY0IEdOVS9MaW51eAo+PiBBcGFjaGUgTWF2ZW4gMy41LjEgKDA5NGU0ZTMxYTVhZjU1YmIxN2JlODc2NzVkYTQxZDlhZWNhMDYyZjM7Cj4+IDIwMTctMDktMTBUMTI6NDI6NTRaKQo+PiBNYXZlbiBob21lOiAvd29yay9iaW4KPj4gSmF2YSB2ZXJzaW9uOiAxLjguMF8xNDQsIHZlbmRvcjogT3JhY2xlIENvcnBvcmF0aW9uCj4+IEphdmEgaG9tZTogL3Vzci9saWIvanZtL2phdmEtMS44LjAtb3Blbmpkay0xLjguMC4xNDQtNS5iMDEuZmMyNi54ODZfNjQvCj4+IGpyZQo+PiBEZWZhdWx0IGxvY2FsZTogZW5fVVMsIHBsYXRmb3JtIGVuY29kaW5nOiBBTlNJX1gzLjQtMTk2OAo+PiBPUyBuYW1lOiAibGludXgiLCB2ZXJzaW9uOiAiNC45LjQ2LW1vYnkiLCBhcmNoOiAiYW1kNjQiLCBmYW1pbHk6ICJ1bml4Igo+Pgo+PiBtdm4gdmVyaWZ5ID0+IFNVQ0NFU1MKPj4KPj4gSUJNIEpESyA4Cj4+ID09PT09PT09Cj4+Cj4+IExpbnV4IDE5OTYzMWVkY2VlZCA0LjkuNDYtbW9ieSAjMSBTTVAgVGh1IFNlcCA3IDAyOjUzOjQyIFVUQyAyMDE3IHg4Nl82NAo+PiB4ODZfNjQgeDg2XzY0IEdOVS9MaW51eAo+PiBBcGFjaGUgTWF2ZW4gMy41LjEgKDA5NGU0ZTMxYTVhZjU1YmIxN2JlODc2NzVkYTQxZDlhZWNhMDYyZjM7Cj4+IDIwMTctMDktMTBUMTI6NDI6NTRaKQo+PiBNYXZlbiBob21lOiAvd29yay9iaW4KPj4gSmF2YSB2ZXJzaW9uOiAxLjguMCwgdmVuZG9yOiBJQk0gQ29ycG9yYXRpb24KPj4gSmF2YSBob21lOiAvb3B0L2libS9qYXZhL2pyZQo+PiBEZWZhdWx0IGxvY2FsZTogZW5fVVMsIHBsYXRmb3JtIGVuY29kaW5nOiBBTlNJX1gzLjQtMTk2OAo+PiBPUyBuYW1lOiAibGludXgiLCB2ZXJzaW9uOiAiNC45LjQ2LW1vYnkiLCBhcmNoOiAiYW1kNjQiLCBmYW1pbHk6ICJ1bml4Igo+Pgo+PiBtdm4gdmVyaWZ5ID0+IFNVQ0NFU1MKPj4KPj4gQXN1bCBadWx1IEpESyA4Cj4+ID09PT09PT09PT09PT0KPj4KPj4gTGludXggMTBlOGY0ZTQ2MTM4IDQuOS40Ni1tb2J5ICMxIFNNUCBUaHUgU2VwIDcgMDI6NTM6NDIgVVRDIDIwMTcgeDg2XzY0Cj4+IHg4Nl82NCB4ODZfNjQgR05VL0xpbnV4Cj4+IEFwYWNoZSBNYXZlbiAzLjUuMSAoMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMzsKPj4gMjAxNy0wOS0xMFQxMjo0Mjo1NFopCj4+IE1hdmVuIGhvbWU6IC93b3JrL2Jpbgo+PiBKYXZhIHZlcnNpb246IDEuOC4wXzE0NCwgdmVuZG9yOiBBenVsIFN5c3RlbXMsIEluYy4KPj4gSmF2YSBob21lOiAvdXNyL2xpYi9qdm0venVsdS04LWFtZDY0L2pyZQo+PiBEZWZhdWx0IGxvY2FsZTogZW5fVVMsIHBsYXRmb3JtIGVuY29kaW5nOiBVVEYtOAo+PiBPUyBuYW1lOiAibGludXgiLCB2ZXJzaW9uOiAiNC45LjQ2LW1vYnkiLCBhcmNoOiAiYW1kNjQiLCBmYW1pbHk6ICJ1bml4Igo+Pgo+PiBtdm4gdmVyaWZ5ID0+IFNVQ0NFU1MKPj4KPj4gSWYgSSBnZXQgdGltZSBsYXRlciBJJ2xsIHJ1biB0aGUgaW50ZWdyYXRpb24gdGVzdHMuCj4+Cj4+IE9uIDExIFNlcHRlbWJlciAyMDE3IGF0IDAwOjIwLCBEYW4gVHJhbiA8ZGFudHJhbkBnbWFpbC5jb20+IHdyb3RlOgo+Pgo+Pj4gRmFsc2UgYWxhcm0sIEkgbWlzc2VkIGNvbmZpZ3VyZSBnbG9iYWwgc2V0dGluZ3MueG1sLCBpdCBpcyBtaXNzaW5nIHRoZQo+Pj4gZGVmYXVsdCByZXBvc2l0b3J5IHNldHVwCj4+Pgo+Pj4gLUQKPj4+Cj4+PiBPbiBTdW4sIFNlcCAxMCwgMjAxNyBhdCAxMTo0NyBQTSwgVGlib3IgRGlnYW5hIDwKPj4+IHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbT4KPj4+IHdyb3RlOgo+Pj4KPj4+ID4gKzE6Cj4+PiA+IDMuNS4xIHdvcmtzIGluIG15IHByb2plY3QgbGlrZSBhIGNoYXJtIDstKQo+Pj4gPgo+Pj4gPiBPbiBTdW4sIFNlcCAxMCwgMjAxNyBhdCA1OjM5IFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPj4+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4+PiA+Cj4+PiA+ID4gSGksCj4+PiA+ID4KPj4+ID4gPiBXZSBzb2x2ZWQgMjUgaXNzdWVzOgo+Pj4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPj4+ID4gPiB2ZXJzaW9uPTEyMzM4OTY0JnN0eWxlTmFtZT1UZXh0JnByb2plY3RJZD0xMjMxNjkyMgo+Pj4gPiA+Cj4+PiA+ID4gVGhlcmUgYXJlIDM1MCBpc3N1ZXMgbGVmdCBpbiBKSVJBIGZvciBNYXZlbiBjb3JlOgo+Pj4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJQo+Pj4gPiA+IDNEJTIwTU5HJTIwQU5EJTIwcmVzb2x1dGlvbiUyMCUzRCUyMFVucmVzb2x2ZWQlMjBPUkRFUiUKPj4+ID4gPiAyMEJZJTIwZHVlJTIwQVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwY3JlYXRlZCUyMEFTQwo+Pj4gPiA+Cj4+PiA+ID4gU3RhZ2luZyByZXBvOgo+Pj4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjQvCj4+PiA+ID4KPj4+ID4gPiBUaGUgZGlzdHJpYnV0YWJsZSBiaW5hcmllcyBhbmQgc291cmNlcyBjYW4gYmUgZm91bmQgaGVyZToKPj4+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPj4+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xLwo+Pj4gPiA+Cj4+PiA+ID4gU3BlY2lmaWNhbGx5IHRoZSB6aXAsIHRhcmJhbGwgYW5kIHNvdXJjZSBhcmNoaXZlcyBjYW4gYmUgZm91bmQgaGVyZToKPj4+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPj4+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1iaW4uemlwCj4+PiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4+PiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtCj4+PiBiaW4udGFyLmd6Cj4+PiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4+PiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcAo+Pj4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+Pj4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLQo+Pj4gc3JjLnRhci5nego+Pj4gPiA+Cj4+PiA+ID4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4+PiA+ID4gYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy50YXIuZ3ogc2hhMTogOWViODIxZjE1M2M3NjY3MTk0YWExMWNjZDA5OWI3Cj4+PiA+ID4gYmQyMDU5NTYwZAo+Pj4gPiA+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwOiBzaGExOiAxMjFkNTRiMDQ1MzgwYThhNDg5NWViMTM3OTcwYWIKPj4+ID4gNjllNjk4ZWIwZQo+Pj4gPiA+Cj4+PiA+ID4gR2l0IHRhZzoKPj4+ID4gPiBodHRwczovL2dpdC13aXAtdXMuYXBhY2hlLm9yZy9yZXBvcy9hc2Y/cD1tYXZlbi5naXQ7YT1jb21taXQ7aD0KPj4+ID4gPiAwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzCj4+PiA+ID4KPj4+ID4gPiBTdGFnaW5nIHNpdGU6Cj4+PiA+ID4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2NvbXBvbmVudHMvcmVmLzMtTEFURVNULwo+Pj4gPiA+Cj4+PiA+ID4gVm90ZSBvcGVuIGZvciA3MiBob3Vycy4KPj4+ID4gPgo+Pj4gPiA+IFsgXSArMQo+Pj4gPiA+IFsgXSArMAo+Pj4gPiA+IFsgXSAtMQo+Pj4gPiA+Cj4+PiA+ID4gVGhhbmtzLAo+Pj4gPiA+Cj4+PiA+ID4gU3RlcGhlbi4KPj4+ID4gPgo+Pj4gPgo+Pj4gPgo+Pj4gPgo+Pj4gPiAtLQo+Pj4gPiBDaGVlcnMKPj4+ID4gVGlib3IKPj4+ID4KPj4+Cj4+Cj4+Cj4KCi0tMDAxYTExNDI3NWIwMmYwNGU5MDU1OGU2MjllOS0tCgpGcm9tIGRldi1yZXR1cm4tMTIzOTUzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBTZXAgMTEgMDY6MTA6MzcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTUzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDNFQzc2MUFBQjkKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAwNjoxMDozNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI5MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAwNjoxMDozNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjI0IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDA2OjEwOjM2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjA2IGludm9rZWQgYnkgdWlkIDk5KTsgMTEgU2VwIDIwMTcgMDY6MTA6MzYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDExIFNlcCAyMDE3IDA2OjEwOjM2ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRDdDMkFDMEUzQgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMDY6MTA6MzUgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAzLjEyOQpYLVNwYW0tTGV2ZWw6ICoqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9My4xMjkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX0xPVFNPRkhBU0g9MC4yNSwgS0FNX05VTVNVQkpFQ1Q9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBnSVFaZGdvOEN0NWcgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sIDExIFNlcCAyMDE3IDA2OjEwOjMzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtdWEwLWYxNjkuZ29vZ2xlLmNvbSAobWFpbC11YTAtZjE2OS5nb29nbGUuY29tIFsyMDkuODUuMjE3LjE2OV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAyREI5NjVGM0NECglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAwNjoxMDozMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC11YTAtZjE2OS5nb29nbGUuY29tIHdpdGggU01UUCBpZCBzMTVzbzEwMTIxOTA1dWFnLjEKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAyMzoxMDozMyAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1CdjRXYUZIQy95REJFSnhUTE5JNW82aXVpSTExc1QzeXdmc0hZcXBRMjFrPTsKICAgICAgICBiPXFCOFYwcmc5RUhLTWUwMnUxbVhDTTRxK1JyUlVXeXp2SUxLRW1mVFNYUlMzVWFOS2FjdTVqaEI3aWtpdk41MWJFMgogICAgICAgICA4dm5BN2ZzaUluOHJRd2pzM3phVGQvUXgyWFdXOWNjL1NaYURGTWI1U3RYWlNHMFZKdmRnRWEwTGRHdFI5MFJsYkFKTgogICAgICAgICBCZHh3Mmo3WjFLYit4MUF2TjV4WXh0Z0gxL2VvK2U4UVExZTJpUE1aaFBIZHlKYk40bEVQN05uL1lTd0FxdmR1R3hjWgogICAgICAgICAyTHZ5UHRqOFd5dFBIMlE4UjY2MTV1clpaTHBvWEt2emVDMHo3b1BhNTZnZjVIT3hrMDR6M2tQK0ZHRk9aZE9xczBUSgogICAgICAgICBlOEF2MTZraHFzZ2xlbmhsa1E5MElua1ZzV0Q3QkRmWUNjMHB3U25SOXFFSHUrU1VDazIzcEdLMnMrYmRocEhtQytybAogICAgICAgICBRRVZ3PT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1CdjRXYUZIQy95REJFSnhUTE5JNW82aXVpSTExc1QzeXdmc0hZcXBRMjFrPTsKICAgICAgICBiPUdmZk9lQkR5b1lXYzNqblhNQVpHMmd2Q3ZncFRtQ0pxM25GU3R2STVac1dBYW9CMVo3cU8rSmd3bDBpbGJ0QVJRdAogICAgICAgICAxUk1YdUxsUmNBNDB4bjNCd1hhcWx3b1I1b2xYa0JVL041MlcrVGdLUGdOWHJFSkZ6ZmJJUHpFbW91ODJDU2NPS0VDaQogICAgICAgICA0Y3U0YXNpOHhzWHRTMU9xN0Z1OG13UmFxTUYwNjNmV0J0RTVtclo2enZBSEh5RjBHNk5hSmdKQXQ4THFNdE5MUmxtdwogICAgICAgICBPQkw4U2JxekhZUC80dWNLOGh4ZW9NbHhuTHc4U2ZpN0owTEVvTDM2SDBQMWtkbGI1YitxKzRwaDZJZEZjdDIvQXpZZAogICAgICAgICAyRUJRa1FlQjFtaGZNc2lndzUwWDl2ZU5iTVdTVk0xWHhiNWFxQWVXbVdpcUU3aUk3SHkvQ1FVWWRaeUc5Q3VEeUdjeQogICAgICAgICB4UU5RPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVoNnE3aGxmeUVra1JSenl6Z0UxbzdpcUNlMWpzQ0dPQzlVazNpQk4rcU1wSGhObWRsZgoJbm1ER1ZxTHNTRnNaTS9PZWNFeER4U3liSUcweExBTnEKWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFES0NOYjVUUG1HUG5Ea296U1ErQ1ZsUGV1b3hJc1QyRkNkWjBrYTcwUm1EcTFjVlFEM2hQeEd6V0k0b1NsUCtDUnRMYjZQYmJoNG8rZmQvWUliWFhGaEoveFU9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjE3Ni44OS4xNjggd2l0aCBTTVRQIGlkIGczN21yODE2NDQ3NHVhZC41My4xNTA1MTEwMjI3MzA1OwogU3VuLCAxMCBTZXAgMjAxNyAyMzoxMDoyNyAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgogPENBRk5DVS0tMnZyZDVCZVR2a3hLQ3lYMlpRZVBxaXg3WD13bVZzV2RNNWQ0OVhlTmdPd0BtYWlsLmdtYWlsLmNvbT4gPEY3MDU3RTFCLTQzMTMtNEQ3Qi04RUYxLTk5MzQxREQxRTFEMEB0YWxpb3MuY29tPgpJbi1SZXBseS1UbzogPEY3MDU3RTFCLTQzMTMtNEQ3Qi04RUYxLTk5MzQxREQxRTFEMEB0YWxpb3MuY29tPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBNb24sIDExIFNlcCAyMDE3IDA2OjEwOjE2ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5Nd1VxbUJ1cmF0RDFDcGs9TDl0QUN3Xytxb3Ryc1VwQ3FkcVJaWG1XWGdpVEFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDY2MDNhNzI0NzkxMDU1OGUzYzg4OSIKCi0tMDAxYTExNDY2MDNhNzI0NzkxMDU1OGUzYzg4OQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpJIHdvbmRlciBpZiBtbmctNjI3NSBpcyBhZmZlY3RpbmcgdGhhdCBwbHVnaW4KCk9uIE1vbiAxMSBTZXAgMjAxNyBhdCAwMTowMCwgTWFyayBEZXJyaWN1dHQgPG1hcmtAdGFsaW9zLmNvbT4gd3JvdGU6Cgo+ICswIG5vbi1jb21taXRhbCAtCj4KPiBUZXN0ZWQgb24gb3VyIHRpbGVzL29zZ2kgYmFzZWQgcHJvamVjdHMgYW5kIGFsbCBzZWVtcyB0byB3b3JrLCBidXQgZm9yCj4gc29tZSByZWFzb24gLSBvbmUgcHJvamVjdCB0aGF0IHVzZXMgdGhlCj4gb3JnLm9wZW5xYS5zZWxlbml1bS5waGFudG9tanMuUGhhbnRvbUpTRHJpdmVyU2VydmljZSBzZWVtcyB0byBibG93aW5nIHVwCj4gd2hlbiB1c2luZyAzLjUuMSAtIG5lZWQgdG8gZG8gc29tZSBtb3JlIGRpZ2dpbmcgYW5kIHNlZSBpZiBJIGNhbiBzcG90IHdoYT0KdHMKPiBnb2luZyBvbi4KPgo+IFdpbGwgdHJ5IGFuZCBkaWcgaW50byB0aGlzIGFmdGVyIHdvcmsgdG9uaWdodC4KPgo+IE1hcmsKPgo+IE9uIDExIFNlcCAyMDE3LCBhdCA4OjAxLCBBcm5hdWQgSD1DMz1BOXJpdGllciB3cm90ZToKPgo+IFRlc3RlZCBvbiBzZXZlcmFsIHByb2plY3RzCj4KPiArMQo+Cj4gT24gU3VuLCBTZXAgMTAsIDIwMTcgYXQgNTozOSBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiBIaSwKPgo+IFdlIHNvbHZlZCAyNSBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhPwo+IHZlcnNpb249M0QxMjMzODk2NCZzdHlsZU5hbWU9M0RUZXh0JnByb2plY3RJZD0zRDEyMzE2OTIyCj4KPiBUaGVyZSBhcmUgMzUwIGlzc3VlcyBsZWZ0IGluIEpJUkEgZm9yIE1hdmVuIGNvcmU6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUKPiAzRCUyME1ORyUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlCj4gMjBCWSUyMGR1ZSUyMEFTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMGNyZWF0ZWQlMjBBU0MKPgo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY0Lwo+Cj4gVGhlIGRpc3RyaWJ1dGFibGUgYmluYXJpZXMgYW5kIHNvdXJjZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS8KPgo+IFNwZWNpZmljYWxseSB0aGUgemlwLCB0YXJiYWxsIGFuZCBzb3VyY2UgYXJjaGl2ZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtYmluLnppcAo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLWJpbi50YXIuZ3oKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5nego+Cj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy50YXIuZ3ogc2hhMTogOWViODIxZjE1M2M3NjY3MTk0YWExMWNjZDA5OWI3Cj4gYmQyMDU5NTYwZAo+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwOiBzaGExOiAxMjFkNTRiMDQ1MzgwYThhNDg5NWViMTM3OTcwYWI2OWU2OThlYjA9CmUKPgo+IEdpdCB0YWc6Cj4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9M0RtYXZlbi5naXQ7YT0zRGNvbW1pdDtoPTNECj4gMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMwo+Cj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9jb21wb25lbnRzL3JlZi8zLUxBVEVTVC8KPgo+IFZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCj4KPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPgo+IFRoYW5rcywKPgo+IFN0ZXBoZW4uCj4KPiAtLQo+IC0tLS0tCj4gQXJuYXVkIEg9QzM9QTlyaXRpZXIKPiBodHRwOi8vYWhlcml0aWVyLm5ldAo+IE1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tCj4gVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4KPiAiVGhlIGVhc2Ugd2l0aCB3aGljaCBhIGNoYW5nZSBjYW4gYmUgaW1wbGVtZW50ZWQgaGFzIG5vIHJlbGV2YW5jZSBhdCBhbGwKPiB0byB3aGV0aGVyIGl0IGlzIHRoZSByaWdodCBjaGFuZ2UgZm9yIHRoZSAoSmF2YSkgUGxhdGZvcm0gZm9yIGFsbCB0aW1lLiIgPQo9RTI9ODA9OTQKPiBNYXJrIFJlaW5ob2xkLgo+Cj4gTWFyayBEZXJyaWN1dHQKPiBodHRwOi8vd3d3LnRoZW9yeWlucHJhY3RpY2UubmV0Cj4gaHR0cDovL3d3dy5jaGFsaWNlb2ZibG9vZC5uZXQKPiBodHRwOi8vcGx1cy5nb29nbGUuY29tLytNYXJrRGVycmljdXR0Cj4gaHR0cDovL3R3aXR0ZXIuY29tL3RhbGlvcwo+IGh0dHA6Ly9mYWNlYm9vay5jb20vbWRlcnJpY3V0dAo+Ci0tPTIwClNlbnQgZnJvbSBteSBwaG9uZQoKLS0wMDFhMTE0NjYwM2E3MjQ3OTEwNTU4ZTNjODg5LS0KCkZyb20gZGV2LXJldHVybi0xMjQ4MTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIERlYyAyMiAxMjo0MDo0NiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4MTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMDM2RDkxMEQxRAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDIyIERlYyAyMDE3IDEyOjQwOjQ2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDQ3NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMiBEZWMgMjAxNyAxMjo0MDo0NSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDM5OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMiBEZWMgMjAxNyAxMjo0MDo0NSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQzODYgaW52b2tlZCBieSB1aWQgOTkpOyAyMiBEZWMgMjAxNyAxMjo0MDo0NSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMjIgRGVjIDIwMTcgMTI6NDA6NDUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBDOTg0MjFBMTQ5NQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjIgRGVjIDIwMTcgMTI6NDA6NDQgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjg3OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjg3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgY3pOMERUd2hLMDkxIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJRnJpLCAyMiBEZWMgMjAxNyAxMjo0MDo0MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdtMC1mNDIuZ29vZ2xlLmNvbSAobWFpbC13bTAtZjQyLmdvb2dsZS5jb20gWzc0LjEyNS44Mi40Ml0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAyNEM4MzVGNDcwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAyMiBEZWMgMjAxNyAxMjo0MDo0MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13bTAtZjQyLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIDY0c28yMTM2NDE4N3dtZS4zCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjIgRGVjIDIwMTcgMDQ6NDA6NDMgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9U0FTalQxUjkvb1Jnc2pKWVF0b3cyYzIvSzhsSlRXU3IzMGlta2VQaUhjZz07CiAgICAgICAgYj1aSnBZU0ZKWkVoM0hiYS9SeTIveE9jb3hCQ20wTGxsNW9yczN6czZmejJWeVdQWC9hUUsyaUNVRWJEYzlLWG1CY1EKICAgICAgICAgcVRaVXh0bVNGUVgyMlpveGRZVEMzZHgwNEgxVDNzZTBsU2lPcWZJZ0U4N1lSUXdxZnIxZDdGVEI2ZUtIUSswOWlMVnUKICAgICAgICAgb3hvQ1N5TnlFQTA3OEhRWGVNYXFYOHdtTnZnR3dNNGRnVU9rSlVMVkZuUGZ2QVd2VVI0MU9wY2hLM1l3ZEE0amVmZnAKICAgICAgICAgbU9GNUtFYzJTMVlkMDBUZDJ6dit3a3Vlb29wQWYvLzdaT0JZK051WEhUZVFRMjdKbW1YakNTK0Nxa1EwS214SndaTEIKICAgICAgICAgblZIakdQNTk3SmljdWg4NHlPMUdHVy9EazB1dXZMNjJMdTRhdU1McjArUzVmRWlocmRFOGFRYWhkOU1xMmNHOUlBWmoKICAgICAgICAgUTdTUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9U0FTalQxUjkvb1Jnc2pKWVF0b3cyYzIvSzhsSlRXU3IzMGlta2VQaUhjZz07CiAgICAgICAgYj1DT1JVdGZ2SzNObVFTTXNJM1hOOUlJek8vbk1qRVc0dDZ0VlNoZ3FmZ1YyeVJveUFaVjJQOFdaYmtna2NQWitqcXMKICAgICAgICAgVjdEbmxiODgzOEdFcGd5REMxWGZ0UXlCUlNMdExEcmJ4dXYxeTZQVTdJakhiZExJV1ArQTJtTzFrQnVQMk5QWWpHMHMKICAgICAgICAgcE5HOW5PcEZWOWQ2bGtvZGx2VEFLcSt5ZUl0NE16dEEwUThWdGhPM2Z4RXVQY3FvR1VDNHdEVUQ1TUdRbEdJejdZYzIKICAgICAgICAgTVRmQjI0bnlvMUJldXNpMGpOZDJxY3l4dWgzdTJmQmwxZEw0Q0paMnlqT0luMlZGcFZqNW9QbjYrZnR0ZCsrck5QZUYKICAgICAgICAgejFXK00yZE84U0VtL1hzODBVU3ErRHRTeXNZNUtQMkdsMlgxcmYzS1hNVytzM1pBVnNRZFdqekhxZ2lBQ3A3Q1A1bXQKICAgICAgICAgWlNSdz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUtHQjNtS0xtalJoVGRWQkM3Y25iZkIzeFp1bEwrKzZqcFRHdWNNeDBTSktOMTA2MFFic3dEak4KCWNoSFFIT0FoR240RVovT213UjhnRTJiaTBLekZrK213ak1VdGNkU0drUT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQ0pmQm90RjdKT1VrQlVpM0xHakhNTUV6OGxJS0o5NTAzSExoR0pJbjNDajlDcnBZclp2NWpJQkZRVk1ESUVRbVpneHMwdy9MT1VTeHRlWHRXUWZKK0UxYzNVPQpYLVJlY2VpdmVkOiBieSAxMC4yOC4xMzkuMTQ0IHdpdGggU01UUCBpZCBuMTM4bXIxMjcxMDgxNHdtZC40My4xNTEzOTQ2NDQyNDI4OwogRnJpLCAyMiBEZWMgMjAxNyAwNDo0MDo0MiAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8b3AuemJtNjl1bzFrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkluLVJlcGx5LVRvOiA8b3AuemJtNjl1bzFrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMjIgRGVjIDIwMTcgMTI6NDA6MzEgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk13VjJSVk8rUVlNRC1RaDkwOWRfYzlDOG5xPVBGUVBNaFJ5Ml95em9oWmNDQUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFNlY29uZCBNTkctNjMwMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0NDNkNGNlOGY3M2QwNTYwZWQxZjQ3IgoKLS0wMDFhMTE0NDNkNGNlOGY3M2QwNTYwZWQxZjQ3CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgorMQoKT24gRnJpIDIyIERlYyAyMDE3IGF0IDA5OjU3LCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+IHdyb3RlOgoKPiBIaSwKPgo+IGludHJvZHVjdGlvbiBvZiB0aGUgUHJvamVjdEFydGlmYWN0c0NhY2hlIGludHJvZHVjZWQgYSBjcml0aWNhbCBpc3N1ZQo+IHdoZXJlIGNhY2hlZCByZWFjdG9yIHByb2plY3RzIGFyZSBuZXZlciB1cGRhdGVkLCBhbmQgd2hpY2ggY2F1c2UgYnVpbGQKPiBmYWlsdXJlIG9yIGluIHdvcnN0IGNhc2Ugc3VjY2Vzc2Z1bCBidWlsZHMgd2l0aCBjb3JydXB0IGFydGlmYWN0cyBpbiBjYXNlCj4gdGhlcmUncyBzb21lIGFnZ3JlZ2F0aW9uIGFjdGl2aXRpZXMuCj4KPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MzAwCj4KPiBGaXg6Cj4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9jb21wYXJlL01ORy02MzAwX1Byb2plY3RBcnRpZmFjdHNDYWNoZS1idWcKPgo+IFNvbHV0aW9uIGNvbmZpcm1lZCBieSB0aGUgcmVwb3J0ZXIuCj4KPiBQcm9qZWN0QXJ0aWZhY3RzQ2FjaGUgd2FzIGFjdHVhbGx5IGluIHRoZSB3cm9uZyBwYWNrYWdlIGR1ZSB0byB1c2FnZSBvZgo+IHBhY2thZ2UtdmlzaWJsZSBtZXRob2RzLgo+IEkndmUgY2xlYW5lZCB0aGlzIHVwIGFzIHdlbGwuCj4KPiBXaG8gd2FudHMgdG8gc2Vjb25kIHRoaXM/Cj4KPiB0aGFua3MsCj4gUm9iZXJ0Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+IC0tClNlbnQgZnJvbSBteSBwaG9uZQoKLS0wMDFhMTE0NDNkNGNlOGY3M2QwNTYwZWQxZjQ3LS0KCkZyb20gZGV2LXJldHVybi0xMjM5MjctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIFNlcCAxMCAxODoyMToyOCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5MjctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRDYyQjAxQUQ4QQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDE4OjIxOjI4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTQwMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBTZXAgMjAxNyAxODoyMToyOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTMxMiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBTZXAgMjAxNyAxODoyMToyNyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDEzMDAgaW52b2tlZCBieSB1aWQgOTkpOyAxMCBTZXAgMjAxNyAxODoyMToyNyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTAgU2VwIDIwMTcgMTg6MjE6MjcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAzOURBMkM0MEE5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAxODoyMToyNiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuMzc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuMzc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgWmRMcmtvS3F1RVZKIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAxMCBTZXAgMjAxNyAxODoyMToyNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXVhMC1mMTc4Lmdvb2dsZS5jb20gKG1haWwtdWEwLWYxNzguZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNy4xNzhdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNjY4MzU1RjYxMwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMTg6MjE6MjMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdWEwLWYxNzguZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgZzQ3c285MTc2MDA0dWFkLjAKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAxMToyMToyMyAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1oYlk2NjdjdWQxMUdDQTFkWTBZdlI2TEJKOHBXT3d4QlBHUG5SYXZWNnlnPTsKICAgICAgICBiPW96cG9SbCtZNE1RTlpHTkVvdFd2dXVVeXNrYlUza045WG1HaXN0YnNtMG1BSHZzdTd5WUw0dUYwUGY1SE84eklmTwogICAgICAgICBiMjhqR2Ywbmd2Zm1WSThjNm1rbllialppakRQenhBZFZBd0tpaTF3NlJwbW45OGREZE1TMTRGa3NqMGY0c1ljWnJQaAogICAgICAgICBRTTFyZHVpUTNYbURFZXFneElOTXlnWWJXM2pNUmZWZzdFcGtCNDVzSHVCN3NxV2c1Y3pLanIwRWZoNG9ZVytSNEtkNAogICAgICAgICA5NmR5WEU3OXJybm9pZDFuYm1lZnpmUG1SMmR1dEpxQW5sdElDRkpXMHVUQ0NRWTFkaHlPZHhzdGJIc0hZYzAvT1BycgogICAgICAgICBQRWtDNllzZDEzU3Vaa3lxMWVOZW0rM0Q5YVB6aDNaRktJQWZ6alJZNE5aM0ZPdHFjVFdSY3NQZXdXZWVmK25UbVJGKwogICAgICAgICBJSm9RPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1oYlk2NjdjdWQxMUdDQTFkWTBZdlI2TEJKOHBXT3d4QlBHUG5SYXZWNnlnPTsKICAgICAgICBiPUI4Y0psLy9TNEtNTzlVbWVFR3RERVpjTkwxODdYcEUxVjVuTVdObU5WSjR4a251d2FuYitXYTlkNFB2TmZKZlk3agogICAgICAgICBFY3NpMUhFSzlNZVFRSVVCUExTSkNtaXNEdGhBRmRxb3kyMUxRUkpRbFZwSEsyWUdGcVVnY3ljcXM2RUR1OWNlNXVBQQogICAgICAgICBjTnZCR3pWU0tQeFBOZExLdmRXUGxvSURTMnJIcWJzNXg2Nk9LRlpURG1ubnd5UWhGajR3Q1ZHVXRxY3lZMTM1MU9xagogICAgICAgICB4ZFRCcjJWMHBLQnJLUE1PUmtqSE02L2NHTmRhUGxPVmMwRlp3ak1Nc0tYV3diVWNQQ2pnZ29vb1hhWTZiY2pFTFhkYwogICAgICAgICB1aGFFK3dPbUdZMjZ2SUJldnNESWRPM0Y2MFkvOHdORW1zVXg0VDQxQlZXd1puUDZaM1Y1bE5VZ0pYNWUyc3RiSC8xTAogICAgICAgICBQRlFnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVnVFdXa3ExdCtLU2NWRWJZS2pLbzhQcHN2M0xtUXd0MisxQW43TVF0amJqSXRnSnNxRgoJVExrY1IrM2xNaXprYzAraTJwRTQ3MDcwenBvRHNFVWUKWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFES0NOYjVNZ3FzNVRhcnE1eklTcGVPdWpBWUpaVW1pTlFaMmZoQ2ZyWGRFTCtuV204MUFLeDFDM3lscHRCR1NTZFRyblFEWXp0TS9QVFhja2pVeEJuLzNleEk9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjE3Ni4zMC43IHdpdGggU01UUCBpZCBtN21yMzQ1MzYyNXVhay4xMzkuMTUwNTA2NzY4MjA4NzsgU3VuLAogMTAgU2VwIDIwMTcgMTE6MjE6MjIgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPENBK25Qbk16ejJ1Nj1jZFU1K2gxSHN2V2hTNENUNXprWXpyV0NFb3ctRzhDenYrbVkyZ0BtYWlsLmdtYWlsLmNvbT4KIDxDQStuUG5Neit2SGtrbXMxM0VDaHc1a0dCblhEazkzX0hyNUY3NitEZXRibnBxZmlHWHdAbWFpbC5nbWFpbC5jb20+CiA8b3AueTZjeXhqZ2NrZGtocnJAZGVza3RvcC0ya2hzazQ0PiA8Q0FLdVZ6QlNOX1JkRE1pQnJkZkpVWXlHb1BERDRiTmFvcVc4akE4TTBOPW02YVVpdG53QG1haWwuZ21haWwuY29tPgpJbi1SZXBseS1UbzogPENBS3VWekJTTl9SZERNaUJyZGZKVVl5R29QREQ0Yk5hb3FXOGpBOE0wTj1tNmFVaXRud0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAxMCBTZXAgMjAxNyAxODoyMToxMSArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXdXS1ZtNHhoelRWckY2ZHhzaXlyVU55T3pyVE1DblFhalorQTZpWFk2Qkh3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1JFU1VMVF0gUmU6IFBsZWFzZSByZXR3ZWV0IGFuZCB2b3RlClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjA4OWUwODI4OTU3ODhkYzg5OTA1NThkOWUwZWYiCgotLTA4OWUwODI4OTU3ODhkYzg5OTA1NThkOWUwZWYKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCk9uIFN1biAxMCBTZXAgMjAxNyBhdCAxOTowNCwgVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPiB3cm90ZToKCj4gSGkgQWxsLAo+Cj4gQXJlIHdlIGZhY2luZyBuZXcgQVBJIHJlZ2FyZGluZyBuZXR3b3JraW5nIGFuZCBzZWN1cml0eSB1c2VmdWwgaW4gSmF2YSA4Pwo+Cj4gV2hlbiBJIGZpcnN0IHNhdyB0aGVzZSBvcHRpb25zIEkgYXNrZWQgbXlzZWxmIHdoYXQgYmVuZWZpdCB3b3VsZCBoYXZlIHRoZQo+IFVzZXIgYW5kIEplbmtpbnMgZnJvbSBKYXZhIDguCj4gQW5kIHNlY29uZCBxdWVzdGlvbiB3YXMgd2hldGhlciB3ZSB3b3VsZCBiZSBzbyBmbGV4aWJsZSB0byByZXdyaXRlIHRoZSBjb2RlCj4gYW5kIHVzZSBMYW1iZGEgZnVsbHkgYW55d2hlcmUgaW4gdGhlIGNvZGUuCgoKVGhlcmUgaXMgdGhlIHNvY2lhbCBhc3BlY3QuIElmIHlvdSBhcmUgYSBwb3RlbnRpYWwgbmV3IGNvbnRyaWJ1dG9yIHRvIE1hdmVuCmFuZCB5b3UgbG9vayBhdCBvdXIgaGVhdnkgSmF2YSAxLjMgY29udmVudGlvbiBjb2RlYmFzZSAob2ssIEknbSBiZWluZyBhCmRlbWFnb2d1ZSwgaXQncyBoYWQgYSBiaXQgdXBkYXRlZCB0byA1LjApIGFyZSB5b3UgZ29pbmcgdG8gYmUgZW5jb3VyYWdlZCB0bwpzdGVwIGZvcndhcmQ/CgpIb3cgY2FuIHlvdSBtYWtlIHNtYWxsIGltcHJvdmVtZW50cyBhbmQgZGVtb25zdHJhdGUgeW91IGFyZSBhIHNhZmUgcGFpciBvZgpoYW5kcyB0byBnYWluIHRoZSBjb21taXQgYml0PwoKTm93IGlmIHdlIGhhdmUgdGhlIG9wZXJ0dW5pdHkgdG8gbWFrZSBsb3RzIG9mIHRpZHkgdXAgYW5kIHlvdSBjYW4gc2hvdyB5b3UKYXJlIGEgc2FmZSBwYWlyIG9mIGhhbmRzLCByZXRhaW5pbmcgYmluYXJ5IGNvbXBhdGliaWxpdHkgd2l0aCBvbGRlcgpwbHVnaW5zLCBtYWtpbmcgdGhlIGNvZGUgbW9yZSByZWFkYWJsZSwgZmluZGluZyBmaWxlIGhhbmRsZSBsZWFrcywgZXRjLi4uCndlbGwgbm93IHlvdSBoYXZlIGEgd2VsY29tZSBwYXRoIHRvIGRlbW9uc3RyYXRlIHlvdXIgc2tpbGxzLi4uLiB3aGlsZQpnYWluaW5nIGZhbWlsaWFyaXR5IHdpdGggdGhlIGNvZGViYXNlIHNvIHRoYXQgd2hlbiB3ZSB0dXJuIGFyb3VuZCB0byBzdGFydApvbiBNYXZlbiA1LjAueCB5b3UgY2FuIGpvaW4gaW4gdGhlIGZ1bi4KCk5vdyB0aGF0IGlzIG5vdCBhIHRlY2huaWNhbCBhcmd1bWVudCwgYnV0IHdlIGFyZSBhIGNvbW11bml0eSBmaXJzdC4uLiBzbwptYXliZSB0aGUgdGVjaG5pY2FsIGFyZ3VtZW50cyBhcmUgbm90IHNvIHJpZ2h0IHRvIHB1c2ghCgo+Cj4gU28gSSBrZXB0IEphdmEgNyBmb3IgTWF2ZW4gMy42IHdoaWNoIGRvZXMgbm90IG1lYW4gdGhhdCBNYXZlbiA0IG9yIDUgd291bGQKPiBub3QgY2hhbmdlIHRoaXMuCj4gUmVnYXJkaW5nIHNlY3VyaXR5IGV2ZXJ5Ym9keSBjYW4gdXNlIEpESyA4IHdpdGggb2xkIE1hdmVuIGJ1dCBkaWZmZXJlbnQKPiBzdG9yeSB3b3VsZCBiZSBlbmhhbmNlbWVudHMgaW4gTmV0d29ya2luZyBBUEkuCgoKWWVzLCBidXQgc2hvdWxkbid0IHdlIHN0b3AgdGhlbSB1c2luZyB0aGUga25vd24gYmFkIEphdmEgNyBpZiB0aGV5IHdhbnQgdGhlCmxhdGVzdCBtYXZlbj8gSWYgdGhleSBkb24ndCBjYXJlIGFib3V0IHNlY3VyaXR5LCB0aGVuIHRoZXknbGwgbGlrZWx5IG5vdAp1cGdyYWRlIE1hdmVuIGVpdGhlci4uLiBzbyB3aHkgd29ycnkgYWJvdXQga2VlcGluZyBKYXZhIDcgZm9yIHRoZW0uLi4gd2hlbgp0aGV5IGRvIGdldCBhcm91bmQgdG8gdXBncmFkaW5nIHRoZXknbGwgZG8gaXQgYWxsIGluIGJ1bGsgYW55d2F5Li4uIHNvCmFza2luZyB0aGVtIHRvIGdvIEphdmEgOCBhdCB0aGF0IHRpbWUgd2lsbCBub3QgYmUgYW4gaXNzdWUuLi4gcGx1cyB3ZSBkbwp0aGVtIGEgZmF2b3VyIGJ5IGJlaW5nIGFub3RoZXIgcmVhc29uIHRvIHVwZ3JhZGUgOy0pCgoKPgo+Cj4gT24gU3VuLCBTZXAgMTAsIDIwMTcgYXQgNjozMyBQTSwgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgo+IHdyb3RlOgo+Cj4gPiBTbyB3aGF0IHdvdWxkIGJlIHRoZSBjb25jbHVzaW9uPwo+ID4KPiA+IDM1JSB3YW50IHRvIGtlZXAgSmF2YTcgYXMgSlJFIGZvciBNYXZlbiBmb3IgYSBzaG9ydGVyIG9yIGxvbmdlciBwZXJpb2Q/Cj4gPgo+ID4gSU1ITyB0aGF0J3MgYSBsb3QKPiA+Cj4gPiBSb2JlcnQKPiA+Cj4gPiBPbiBTdW4sIDEwIFNlcCAyMDE3IDExOjU1OjIwICswMjAwLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4KPiA+IFNvIHBvbGwgcmVzdWx0czoKPiA+Pgo+ID4+IDQ5MyB2b3RlcyBjYXN0Cj4gPj4KPiA+PiAyNSUgd2FudCBKYXZhIDcsOCY5IGZvciBNYXZlbiAzLjYueAo+ID4+IDY1JSB3YW50IEphdmEgOCY5IGZvciBNYXZlbiAzLjYueAo+ID4+IDEwJSB3YW50IEphdmEgOCY5IGZvciBNYXZlbiAzLjYueCBhbmQgNiBtb250aHMgb2YgYmFja3BvcnRpbmcgdG8gMy41LngKPiA+Pgo+ID4+IE9uIFNhdCA5IFNlcCAyMDE3IGF0IDExOjUwLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+PiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+Pgo+ID4+IGh0dHBzOi8vdHdpdHRlci5jb20vYXNmbWF2ZW5wcm9qZWN0L3N0YXR1cy85MDY0NTEwNTk5NjY2OTMzNzYKPiA+Pj4gLS0KPiA+Pj4gU2VudCBmcm9tIG15IHBob25lCj4gPj4+Cj4gPj4KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Cj4gPgo+Ci0tIApTZW50IGZyb20gbXkgcGhvbmUKCi0tMDg5ZTA4Mjg5NTc4OGRjODk5MDU1OGQ5ZTBlZi0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NzY3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBEZWMgMTAgMTc6Mzk6MTYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzY3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEQyMTUzMTA5ODYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxMCBEZWMgMjAxNyAxNzozOToxNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQxNzk0IGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIERlYyAyMDE3IDE3OjM5OjE2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0MTcyNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBEZWMgMjAxNyAxNzozOToxNiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQxNzEzIGludm9rZWQgYnkgdWlkIDk5KTsgMTAgRGVjIDIwMTcgMTc6Mzk6MTYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDEwIERlYyAyMDE3IDE3OjM5OjE2ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMjhFRDNDMzEwNgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgRGVjIDIwMTcgMTc6Mzk6MTUgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjg3OQpYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuODc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBxX3cycy1aQXM2UDUgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sIDEwIERlYyAyMDE3IDE3OjM5OjE0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd20wLWY0Mi5nb29nbGUuY29tIChtYWlsLXdtMC1mNDIuZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjQyXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEMzOTgwNUYyNTEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIERlYyAyMDE3IDE3OjM5OjEzICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNDIuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgdDhzbzEwNTk1NDM2d21jLjMKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBEZWMgMjAxNyAwOTozOToxMyAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD14OWY3dWo0dlBIQVhUNzNDYUNmeXpjckRhNC9kNFZ5UGoyR2dLUHFnRk5VPTsKICAgICAgICBiPUw1UlgyRlB3eTNMd29mYjJKUkFFbk1sYngzcEVOV01SL2hBMTJMUXM3c1pHUGJtRDVxTkJmWWl1cmFMTTZLL2ZFcgogICAgICAgICBTZnlEai9PTFJpSHV1d3ZPOXE2M1BiNDhoTG16UjBKREV0aUtYS3U2MkMyT1l2ZEFkTW5BKzlSSkw5ZEZOZy9kZUY5dAogICAgICAgICBjVHp3blRwaGY4eWYyRGlJMG10cTVnYWFuaTZOcU16dWJrdlZJZUhpOE5DaWJCYzFsdjB5ZEl6WW92MG8xUldWa2I5aQogICAgICAgICB1eFBwc21wZ2FSeVpHVExjc3o5MmlnYXA5MUllUUZBWVlESHFJc2dYeElBRDA2N3pDb3ZiVG92cWJXYXJURUtVVWNQeQogICAgICAgICBxWjdad1lSaDhuRjI3R3pTOHpFbEdiMjNWTHphaVVpUkpzcTZQTFl1MmowaHJVTTBvcjc4dDVTdTgwVnRrbEIyTmpOaAogICAgICAgICB0TlN3PT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD14OWY3dWo0dlBIQVhUNzNDYUNmeXpjckRhNC9kNFZ5UGoyR2dLUHFnRk5VPTsKICAgICAgICBiPUFxRjd4aUF5N2IybXFTa1YxdGlEUHlFTGl6SzIwRzNDNUwyWWR6UWZuOStmRHdoRE5NOC9vSm5RVFZrUFZ3aTA3dQogICAgICAgICA3NjRaUmJic0xCQ0tLTDhqLzNCMHloSThkZ01mUFVwU0pJanNTZEpnclZlWmhvOGo0VEsyWWFPYk9oQmgxTlMvdkYzbgogICAgICAgICBuejJVTTZsVzRsV0hmeG5qQ0prSk5TMXk2a3dGMVg5dHFSd1hYS2lFTU9lc0czSHFaTXZ4WkRTS24wMERYVHBZMTJOZQogICAgICAgICA1eXpwQVRTRXJNMVpSQVlnTFdjdDhrRFRUQ0U1T3FDZmxudFNRZ1U0TFFkOUZOQ2dFeWRuakxaK25EanhGYVA0c0hoVAogICAgICAgICA5UmpqVnNOa2lvcU9wakV1azVXVmQydmZGemJXc3VZWUlRT2tkRnpyQ1lFdGNtTlRLZlJCYTlISVdJWndIMGpabG9pWgogICAgICAgICB5RHBBPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBS0dCM21MOU5DYzlPbjIzZFFtQzQxcFhxUDloR2lmbEh0bzBERTNMY21rSStwNDVEaTUzRXlZdAoJZ2FEbFpRcThWaWE5cFhqZG82dTRyVWJ2TElGVTVuZDB0ZXFuYVN3TUpBPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TVpPZUlZMk1KWVFCcHNhcjBGd0tKR05kVVBtNFhYYml6S0VuUDY3T1Npb1hhVFRuTnZHcXZCV29Rc2RXWFpxTklzREVId0VKdVJBclA1azZJckNPS3c9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjI4LjQ5LjE5NSB3aXRoIFNNVFAgaWQgeDE4Nm1yODEwNjYzOHdteC4xMTYuMTUxMjkyNzU0NjQzNjsKIFN1biwgMTAgRGVjIDIwMTcgMDk6Mzk6MDYgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPDI3NTMwNDAuOFMxNXNsajdaNUBnaWdhPiA8b3AuemEwem82ZzNrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CiA8MTIwMDk2NDkuOFpWOU5RY0hiSUBnaWdhPiA8b3AuemExamQ5cDBrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkluLVJlcGx5LVRvOiA8b3AuemExamQ5cDBrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFN1biwgMTAgRGVjIDIwMTcgMTc6Mzg6NTUgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk13WXMtNVNUMFBranV4eDAyc0pzUF8wdlRnMEJIVVZ6T2o2LUJWTVBra21yd0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IG1lcmdpbmcgTU5HLTYzMDggZGlzcGxheSBwYWNrYWdpbmcKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDJlMjY0ZjlmM2VjMDU1ZmZmZTRmZCIKCi0tMDAxYTExNDJlMjY0ZjlmM2VjMDU1ZmZmZTRmZApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPbiBTdW4gMTAgRGVjIDIwMTcgYXQgMTc6MTIsIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4gd3JvdGU6Cgo+IE9uIFN1biwgMTAgRGVjIDIwMTcgMTc6NDY6MTAgKzAxMDAsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmU9CmUuZnI+Cj4gd3JvdGU6Cj4KPiA+IExlIGRpbWFuY2hlIDEwIGQ9QzM9QTljZW1icmUgMjAxNywgMTE6MDY6MzIgQ0VUIFJvYmVydCBTY2hvbHRlIGEgPUMzPUE5PQpjcml0IDoKPiA+PiBJIHN0aWxsIHRoaW5rIGl0IGlzIHVnbHkgdG8gdXNlIHRoZSBIUiBmb3IgdGhpcyBraW5kIG9mIGluZm8uCj4gPj4gSWYgeW91ICpyZWFsbHkqIHdhbnQgdGhpcyBpbmZvLCBJJ2QgcHJlZmVyIGEgbmV3IGxpbmUsIG9mZmVyaW5nIG1vcmUKPiA+PiBzcGFjZQo+ID4+IGZvciBhZGRpdGlvbmFsIGluZm8uCj4gPiB5ZXMsIEkgKnJlYWxseSogd2FudCB0aGlzIGluZm86IHRoZSBwcmVjaXNlIGRldGFpbHMgb24gaG93IHRvIGRpc3BsYXkgaT0KdAo+ID4gaXMKPiA+IGxlc3MgaW1wb3J0YW50Cj4gPgo+ID4+IE90aGVyIG9wdGlvbiBpcyB0byBsZWF2ZSBpdCBhcyBpdCBpcy4gSWYgZGV2ZWxvcGVycyB3YW50IGl0LCB0aGV5IGNhbgo+ID4+IHB1dAo+ID4+IGl0IGluIHRoZSBuYW1lLgo+ID4gdGhlIGlkZWEgaXMgdGhhdCAke3Byb2plY3QucGFja2FnaW5nfSBkcml2ZXMgdGhlIGRlZmF1bHQgYnVpbGQsIGJlZm9yZQo+ID4gYWRkaXRpb25hbCBwbHVnaW5zIGJpbmRpbmdzOiBpdCdzIHVzZWZ1bCB0byBkaXNwbGF5IGl0IGFzIGl0IGlzIGEga2V5Cj4gPiBpbmZvCj4gPgo+ID4+Cj4gPj4gU28gLTEgZm9yIG1lLgo+ID4gaG93IGRvIHlvdSB3YW50IHRvIHByb2NlZWQgdG8gY2hvb3NlIHRoZSBiZXN0IGRpc3BsYXk/Cj4KPiBJcyBpdCBhY2NlcHRhYmxlIHRvIGFkZCBpdCB0byB0aGUgIlJlYWN0b3IgQnVpbGQgT3JkZXIiPyBJdCBoYXMgZW5vdWdoCj4gc3BhY2UgZm9yIHRoaXMga2luZCBvZiBpbmZvcm1hdGlvbi4KCgpJPUUyPTgwPTk5ZCBsaWtlIGl0IGluIGJvdGggcGxhY2VzLiA7LSkKCgo+Cj4gPgo+ID4gUmVnYXJkcywKPiA+Cj4gPiBIZXJ2PUMzPUE5Cj4gPgo+ID4+Cj4gPj4gUm9iZXJ0Cj4gPj4KPiA+Pgo+ID4+IE9uIFN1biwgMTAgRGVjIDIwMTcgMTE6MDE6NDEgKzAxMDAsIEhlcnY9QzM9QTkgQk9VVEVNWQo+ID4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPj4KPiA+PiB3cm90ZToKPiA+PiA+IGlzIHRoZXJlIGEgc2Vjb25kZXIgZm9yIHRoaXMgZW5oYW5jZW1lbnQ/Cj4gPj4gPgo+ID4+ID4gQ0k6Cj4gPj4gPgo+ID4+Cj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi0zLngtamVua2luc2ZpbGUvCj4gPj4gPiBqb2IvTU5HLTYzMDhfZGlzcGxheV9wYWNrYWdpbmcvCj4gPj4gPgo+ID4+ID4gSmlyYSBpc3N1ZTogaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjMwOAo+ID4+ID4KPiA+PiA+IFJlZ2FyZHMsCj4gPj4gPgo+ID4+ID4gSGVydj1DMz1BOQo+ID4+ID4KPiA+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotCj4gPj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Cj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPgo+ID4KPiA+Cj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+IC0tClNlbnQgZnJvbSBteSBwaG9uZQoKLS0wMDFhMTE0MmUyNjRmOWYzZWMwNTVmZmZlNGZkLS0KCkZyb20gZGV2LXJldHVybi0xMjQyMDItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIE9jdCAgOSAwODowMDo1NyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyMDItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMTk3MjIxMEQyQQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sICA5IE9jdCAyMDE3IDA4OjAwOjU3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjQ5MCBpbnZva2VkIGJ5IHVpZCA1MDApOyA5IE9jdCAyMDE3IDA4OjAwOjU2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2Mzg3IGludm9rZWQgYnkgdWlkIDUwMCk7IDkgT2N0IDIwMTcgMDg6MDA6NTYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2Mzc1IGludm9rZWQgYnkgdWlkIDk5KTsgOSBPY3QgMjAxNyAwODowMDo1NiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMDkgT2N0IDIwMTcgMDg6MDA6NTYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA2QTFFM0Q1NjAwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAgOSBPY3QgMjAxNyAwODowMDo1NSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuODc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuODc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCAxYnBJbENhNF9zUVkgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sICA5IE9jdCAyMDE3IDA4OjAwOjUzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd20wLWY1MS5nb29nbGUuY29tIChtYWlsLXdtMC1mNTEuZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjUxXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEMyOTVBNUZEREMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICA5IE9jdCAyMDE3IDA4OjAwOjUyICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNTEuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgZjRzbzIwOTAxMTY4d21lLjAKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAwOSBPY3QgMjAxNyAwMTowMDo1MiAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1qWUxVZVNJK0tMb0wvNUZzSEMvSk82N0hQVlZGL2ViRDJUbElMQ2dHRURzPTsKICAgICAgICBiPWJMRUUrc3JkWEhsYmhUNU5STVN5Sm5vSVFLQm1yWDVEV28xVzgxYk9vZzNlWWRaNEE1SVI2U1FVamRXQ3FNZjErZAogICAgICAgICBmbEtBdXRqZWxvNUZXVExjUkUwRU9XaHRWczdZZktvdllNdUVOaWhFWWU1RHpWWmRXZ2taaEg3WUhabjhwNFpPelgrWgogICAgICAgICBYRE1Pd1VNR1NnZndlc0phUkdOdWRvMFh1N1crS1pYbmllRDJQbkVqSUU2QzFFdmNpUjZ1NjBoNkVrd1VRZFRYVGRydwogICAgICAgICBpN0pJZnMyUnFXT0JyUE1CQ0g3TWZwQmxBK05xczg3Y2RwUTl5ZEV0dERUSWhmbm5JN01pYW1IbjkvSHFBQU9nS003TgogICAgICAgICBtMXFQMUZUSDhPWU9aTnNSUzlDUnBYa3F3Vkl4dGlkYmxVYjhMVVZxeGQ3SXVWcUs5aE1sOEc4T29vbHV2TkY1V3JzUgogICAgICAgICA2TWRnPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1qWUxVZVNJK0tMb0wvNUZzSEMvSk82N0hQVlZGL2ViRDJUbElMQ2dHRURzPTsKICAgICAgICBiPVhjWE5NSGNnQ29SNlRjVU5SUUZBN05kRFpWNFhZTnpWVndabG5lVmk2cG9RWHVuRHlMVXhyNktVYkFPR1AzMXl4cAogICAgICAgICBJRXBQVTdEbDVZMlpuSzk4cis5T05JdXcyK0tWN2ZlbTdVaTBGOUljc3ZxTFVWWmd4V2RLNHhOMXpEY1pjR0hYemFVVgogICAgICAgICBGSW1zWnRRQXc0SEJ3WWJ4WURmQytRNTdONlUvTUxWTzNMcXdmWEF4VDBHSGptU1p0Y0k5cWFyek5Qd1hRTXZPckV5bAogICAgICAgICAwSkc0N3QxVkthZkgvY2x1VHBmamxsdEpHblVuTzNHRXI3RVNQMDFCNWdzN2pSOURqc2dJV2hRdGxGSmhUTk1TU0JvNwogICAgICAgICBEaGRsQ094Mk0xUUw2NzdlRnBGNFdobUdtSStjNGJxcEx5Nk5YUVFFOXB6RGNXSnpRVnFuT1ZDRS8wVDVDNUpXVVNoKwogICAgICAgICAwdlZnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FYeGhkek1tTy9SVUEzVk01UzBMS1Exd3lvTWpVS2o0UFhWenJrY2x2WDJmZkF2RlBRSgoJa2grZW0wNExxWDd5c1BSTUxrOERmR294WEdvaytrRUpuZXYza1ZFL29BPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUM5VXlGZDZwSzhuaXJqY2N1eVN6TXNlZmdweVo1ZkJkZEtheTQ2cGlHdWcvZmhBMlBaNERRaE1taUVXcUtoR3ZOTmthSVJwYVlieDFYU0lIT3IyTTg9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjI4LjQ3LjY5IHdpdGggU01UUCBpZCB2NjZtcjgwMjc5NTB3bXYuOTguMTUwNzUzNjA1MjEyODsgTW9uLAogMDkgT2N0IDIwMTcgMDE6MDA6NTIgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xNjEuMTQyIHdpdGggSFRUUDsgTW9uLCA5IE9jdCAyMDE3IDAxOjAwOjUxIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8OTczMTY0Ny41amdrajM2YWl0QGdpZ2E+ClJlZmVyZW5jZXM6IDwxMDU0NDYxNS5CNGhPM1BudkV6QGdpZ2E+IDxDQStuUG5NeD0yU0hhK2liVHFUVEVTa2VUb21yRE0rQWJ4a0FVWisraDVXTFktSFc3dVFAbWFpbC5nbWFpbC5jb20+CiA8b3AueTdzeTRmZXhrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDw5NzMxNjQ3LjVqZ2tqMzZhaXRAZ2lnYT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA5IE9jdCAyMDE3IDAxOjAwOjUxIC0wNzAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5Nd19BQytnbm5XMlcrQk1RUk1zUE10K0R5d3NORG0tWkVOUWFHeTlkNnJNUUFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBKZW5raW5zIGFuZCBNYXZlbiAzLjAuNSBvciBKREsgNwpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0MjM2NTZkZjkyZWQwNTViMTg5NmQ4IgoKLS0wMDFhMTE0MjM2NTZkZjkyZWQwNTViMTg5NmQ4CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkknbGwgc2VlIGlmIEkgY2FuIHJlY29yZCBzb21ldGhpbmcKCk9uIDggT2N0b2JlciAyMDE3IGF0IDE1OjAxLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3JvdD0KZToKCj4gSSBkb24ndCByZWFsbHkgdW5kZXJzdGFuZCB0aGVzZSBhbnN3ZXJzOiBhIGRlbW8sIHBsZWFzZQo+Cj4gUmVnYXJkcywKPgo+IEhlcnY9QzM9QTkKPgo+IExlIGRpbWFuY2hlIDggb2N0b2JyZSAyMDE3LCAyMDozMjoyOSBDRVNUIFJvYmVydCBTY2hvbHRlIGEgPUMzPUE5Y3JpdCA6Cj4gPiBPbiBTdW4sIDA4IE9jdCAyMDE3IDIwOjI3OjE3ICswMjAwLCBTdGVwaGVuIENvbm5vbGx5Cj4gPgo+ID4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiBPbiBTdW4gOCBPY3QgMjAxNyBhdCAxODoyOCwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI9Cj4KPiB3cm90ZToKPiA+ID4+IEkgZG9uJ3QgZ2V0IHRoZSB0ZWNobmljYWwgZGV0YWlscwo+ID4gPj4gYnV0IElJVUMsIHlvdSdyZSBhYmxlIHRvIGRvIGEgUG9DIHdpdGggb3VyIGF2YWlsYWJsZSBnaXQgcmVwb3NpdG9yaWU9CnMKPiBvZgo+ID4gPj4gSmVua2lucyBqb2IgbWFpbnRlbmFuY2UgKGVhc3kgam9iIGNyZWF0aW9uICsgZWFzeSBKZW5raW5zZmlsZQo+ID4gPj4gbWFpbnRlbmFuY2UpLAo+ID4gPgo+ID4gPiBKb2IgY3JlYXRlZCBhdXRvbWF0aWNhbGx5IG9uY2UgdGhlcmUgaXMgYSBnaXQgcmVwbyAgd2l0aCBhIGJyYW5jaCB3aXQ9CmgKPiBhCj4gPiA+IEplbmtpbnNmaWxlIC4gTm8gaHVtYW4gaW50ZXJhY3Rpb24gcmVxdWlyZWQgYWZ0ZXIgYGVjaG8KPiA+ID4gPUUyPTgwPTlDbWF2ZW5Qcm9qZWN0U3RkQnVpbGQoKTs9RTI9ODA9OUQgPiBKZW5raW5zZmlsZSAmJiBnaXQgYWRkIEplPQpua2luc2ZpbGUgJiYgZ2l0Cj4gPiA+IGNvbW1pdCA9RTI9ODA9OUNhZGQgSmVua2luc2ZpbGU9RTI9ODA9OUQgICYmIGdpdCBwdXNoYAo+ID4gPgo+ID4gPiBKZW5raW5zZmlsZSBiZWluZyBqdXN0IG9uZSBsaW5lIGBtYXZlblByb2plY3RTdGRCdWlsZGAgb3Igc29tZXRoaW5nCj4gbGlrZQo+ID4gPiB0aGF0Lgo+ID4gPgo+ID4gPiBJcyB0aGF0IGVhc3kgZW5vdWdoPwo+ID4KPiA+IElJUkMgdGhlcmUgaXMgdGhpcyBwcm9wb3NhbCB0byBsZXQgcG9tIG1vZHVsZXMgc3VwcG9ydCBkaXJlY3RvcmllcywgcG9tCj4gPiBsb2NhdGlvbnMgKHRoZXNlIGFyZSBhbHJlYWR5IHN1cHBvcnRlZCkgYW5kIFNDTSByZWZlcmVuY2VzLiBNaWdodCBiZQo+ID4gaW50ZXJlc3RpbmcgZm9yIGFuIGFnZ3JlZ2F0b3IgcG9tLgo+ID4KPiA+IFJvYmVydAo+ID4KPiA+ID4gYW5kCj4gPiA+Cj4gPiA+PiB5b3UncmUgY29uZmlkZW50IHRoYXQgaXQgY2FuIHNjYWxlIHRvIHRoZSBzaXplIHdlJ3JlIGV4cGVjdGluZyB3aGVuCj4gPiA+PiB3ZSdyZQo+ID4gPj4gc3BsaXR0aW5nIHRoZSBjdXJyZW50IGFnZ3JlZ2F0b3Igc3ZuIHRvIG1hbnkgc21hbGwgZ2l0IHJlcG9zCj4gPiA+Pgo+ID4gPj4gdGhhdCdzIGl0Pwo+ID4gPj4KPiA+ID4+IFJlZ2FyZHMsCj4gPiA+Pgo+ID4gPj4gSGVydj1DMz1BOQo+ID4gPj4KPiA+ID4+IExlIGRpbWFuY2hlIDggb2N0b2JyZSAyMDE3LCAxNjoyMToxMCBDRVNUIFN0ZXBoZW4gQ29ubm9sbHkgYSA9QzM9QTljPQpyaXQgOgo+ID4gPj4gPiBPbiBTdW4gOCBPY3QgMjAxNyBhdCAwMzo1NSwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWU9Ci5mcj4KPiA+ID4+Cj4gPiA+PiB3cm90ZToKPiA+ID4+ID4gPiBUTERSOyA9M0QKPiA+ID4+ID4gPiBQZXJoYXBzIHdlIGNhbiBzdGFydCB3aXRoIDIgcHJvb2ZzIG9mIGNvbmNlcHQ6Cj4gPiA+PiA+ID4gMS4gZnVsbCBnaXQgY2xvbmUgKyBKZW5raW5zIGpvYnMgZm9yIHRoZSA3IGV4aXN0aW5nIGdpdCByZXBvcwo+ICh3aXRoCj4gPiA+Pgo+ID4gPj4gNgo+ID4gPj4KPiA+ID4+ID4gPiBhZGRpdGlvbmFsIG9uZXMgaW4gMiBkYXlzKQo+ID4gPj4gPiA+IDIuIGdpdCBzcGxpdCBvZiBvbmUgb2YgdGhlIGFnZ3JlZ2F0b3Igc3ZuIHRydW5rOiBza2lucyBvcgo+ID4gPj4KPiA+ID4+IGRveGlhLXRvb2xzCj4gPiA+PiBjYW4KPiA+ID4+Cj4gPiA+PiA+ID4gYmUKPiA+ID4+ID4gPiBlYXN5IGNob2ljZXMgc2luY2UgdGhleSBhcmUgbGlnaHQsIHdoZXJlIHBsdWdpbnMgb3Igc2hhcmVkIGFyZQo+ID4gPj4KPiA+ID4+IHBlcmhhcHMKPiA+ID4+IHRvbwo+ID4gPj4KPiA+ID4+ID4gPiBoZWF2eS4gVGhlIG9uZSB3b3JraW5nIG9uIHRoaXMgUG9DIHdpbGwgbWFrZSBoaXMgY2hvaWNlCj4gPiA+PiA+ID4KPiA+ID4+ID4gPiB0aGVuIG1vcmUgZGV0YWlsZWQgYW5zd2VyIGlubGluZSB0aGF0IGxlYWQgdG8gdGhpcyBQb0NzIHByb3Bvc2FsCj4gPiA+PiA+ID4KPiA+ID4+ID4gPiBSZWdhcmRzLAo+ID4gPj4gPiA+Cj4gPiA+PiA+ID4gSGVydj1DMz1BOQo+ID4gPj4gPiA+Cj4gPiA+PiA+ID4gTGUgZGltYW5jaGUgOCBvY3RvYnJlIDIwMTcsIDAwOjAyOjEwIENFU1QgVGlib3IgRGlnYW5hIGEgPUMzPUE5Yz0Kcml0IDoKPiA+ID4+ID4gPiA+IEkgZG9uJ3QgdGhpbmsgdGhlIGRldnMgd291bGQgd29yayBvbiBhbGwgYXJ0aWZhY3RzKHByb2plY3RzKSBhCj4gPiA+Pgo+ID4gPj4gdGltZS4KPiA+ID4+Cj4gPiA+PiA+ID4gc3VyZSwgSSB0aGluayBJJ20gb25lIG9mIHRoZSBmZXcgcGVvcGxlIHdvcmtpbmcgb24gbmVhciBldmVyeXRoaT0KbmcKPiA+ID4+Cj4gPiA+PiAod2l0aAo+ID4gPj4KPiA+ID4+ID4gPiByYXJlCj4gPiA+PiA+ID4gZXhjZXB0aW9ucyBsaWtlIFN1cmVmaXJlLCBhcyB5b3Ugbm90aWNlZCA6KSApCj4gPiA+PiA+ID4gYnV0IGZvciB1c3VhbCBjb250cmlidXRvciwgdGhlcmUgaXMgbm8gaXNzdWUKPiA+ID4+ID4gPgo+ID4gPj4gPiA+IEknbSBub3QgYSBnaXQgZXhwZXJ0LCB0aGVuIEkgZG9uJ3Qga25vdyBpZiBlYXN5ICJmdWxsIE1hdmVuIGNsb249CmUiCj4gPiA+Pgo+ID4gPj4gaXMKPiA+ID4+Cj4gPiA+PiA+ID4gYmV0dGVyCj4gPiA+PiA+ID4gZG9uZSB3aXRoIGEgc2hlbGwgc2NyaXB0IG9yIHNvbWUgZ2l0IG1vZHVsZXMKPiA+ID4+ID4gPgo+ID4gPj4gPiA+ID4gSWYgdGhlIG5hbWluZyBjb252ZW50aW9uIG9mIHJlcG8gZm9yIGEgcGx1Z2luIHdvdWxkIGJlCj4gYXJ0aWZhY3RJZCwKPiA+ID4+Cj4gPiA+PiBsaWtlCj4gPiA+Pgo+ID4gPj4gPiA+ID4gL21hdmVuLWNsZWFuLXBsdWdpbiwgdGhlbiBldmVuIGVhc3kgdG8gZmlndXJlIG91dCB3aGljaCBvbmUgdG8KPiA+ID4+Cj4gPiA+PiBjbG9uZS4KPiA+ID4+Cj4gPiA+PiA+ID4gPiBUaGUgbW9zdCBsaWtlbHkgdGhlIGRldiB3b3VsZCBqdXN0IGNsb25lIG9uZSByZXBvIHNoZS9oZSBpcwo+ID4gPj4KPiA+ID4+IGludGVyZXN0ZWQKPiA+ID4+Cj4gPiA+PiA+ID4gPiBpbgo+ID4gPj4gPiA+ID4gYXQgdGhlIG1vbWVudCwgaS5lLiByZXBvc2l0b3J5IC9tYXZlbi1jbGVhbi1wbHVnaW4sIGxldCdzIHNheS4KPiA+ID4+ID4gPiA+IEl0J3MgZ29vZCB0byBhdm9pZCBhbnkgc2hhcmVkIGZpbGVzIGFjcm9zcyB0aGVtLCBldmVuIEkgZG9uJ3QKPiA+ID4+Cj4gPiA+PiB0aGluawo+ID4gPj4gZGV2cwo+ID4gPj4KPiA+ID4+ID4gPiA+IHNoYXJlIHNvbWUgaW4gc3ZuIHRvZGF5LiBUaGUgcmVsZWFzZSBwcm9jZXNzIHdvdWxkIGJlIHF1aXRlCj4gdXN1YWwsCj4gPiA+Pgo+ID4gPj4gaS5lLgo+ID4gPj4KPiA+ID4+ID4gPiBvbmUKPiA+ID4+ID4gPgo+ID4gPj4gPiA+ID4gcmVwbyA9M0Qgb25lIHByb2plY3QsIGFuZCBuZXcgZGV2cyBhbHJlYWR5IGhhdmUgdGhlc2UgZXhwZXJpZW49CmNlcwo+ID4gPj4KPiA+ID4+IHdoaWNoCj4gPiA+Pgo+ID4gPj4gPiA+IHdpbGwKPiA+ID4+ID4gPgo+ID4gPj4gPiA+ID4gYmUgc2ltcGxlIGZvciB0aGVtIHRvIGFkYXB0IGZhc3Rlci4KPiA+ID4+ID4gPgo+ID4gPj4gPiA+ICsxCj4gPiA+PiA+ID4gdGhlIG9ubHkgZHJhd2JhY2sgSSBzZWUgY3VycmVudGx5IGlzIHRoYXQgdGhlcmUgaXMgbm8gbmF0dXJhbAo+ID4gPj4KPiA+ID4+IGdyb3VwaW5nLAo+ID4gPj4KPiA+ID4+ID4gPiB0aGVuCj4gPiA+PiA+ID4gd2UgaGF2ZSBhIGZsYXQgbGl0IG9mIG5lYXIgMTAwIGdpdCByZXBvcyB3aXRob3V0IHRoZSBjdXJyZW50Cj4gPiA+Pgo+ID4gPj4gc3RydWN0dXJlCj4gPiA+Pgo+ID4gPj4gPiA+IChwbHVnaW5zLCBzaGFyZWQgY29tcG9uZW50cywgc2tpbnMsIC4uLik6IEkgdGhpbmsgY29tcG9uZW50cwo+ID4gPj4KPiA+ID4+IHN0cnVjdHVyZQo+ID4gPj4gaXMKPiA+ID4+Cj4gPiA+PiA+ID4gdXNlZnVsIGZvciBtYWludGVuYWJpbGl0eQo+ID4gPj4gPiA+IGJ1dCBub3QgcmVhbGx5IGEgY29tcGxldGUgc2hvd3N0b3BwZXIKPiA+ID4+ID4gPiBhbmQgcGVyaGFwcyB0aGUgIk1hdmVuIGZ1bGwgY2xvbmUiIHRvb2xpbmcgY2FuIHJlLWNyZWF0ZSBzb21lCj4gPiA+Pgo+ID4gPj4gZ3JvdXBpbmcKPiA+ID4+IHRvCj4gPiA+Pgo+ID4gPj4gPiA+IGtlZXAKPiA+ID4+ID4gPiB2aXNpYmxlIHN0cnVjdHVyZQo+ID4gPj4gPiA+Cj4gPiA+PiA+ID4gTm93LCBzb21lb25lIGhhcyB0byBrbm93IGhvdyB0byBjcmVhdGUgcGVyLWNvbXBvbmVudCBnaXQgcmVwbyB3aT0KdGgKPiA+ID4+Cj4gPiA+PiB0YWdzCj4gPiA+Pgo+ID4gPj4gPiA+IChlaXRoZXIgYnkgcmV3b3JraW5nIGV4aXRpbmcgZ2l0IG1pcnJvcnMsIGVpdGhlciBieSByZXN0YXJ0aW5nCj4gZnJvbQo+ID4gPj4KPiA+ID4+IHN2biksCj4gPiA+Pgo+ID4gPj4gPiA+IGFuZAo+ID4gPj4gPiA+IHRoYXQncyBub3QgbWUgOikKPiA+ID4+ID4gPgo+ID4gPj4gPiA+IGdpdmVuIHRoZSB2b2x1bWUgKGFkZGluZyA3MCBnaXQgcmVwb3MgZm9yIE1hdmVuKSwgd2UnbGwgaGF2ZSB0bwo+IHRlbGwKPiA+ID4+Cj4gPiA+PiBpbmZyYQo+ID4gPj4KPiA+ID4+ID4gPiBhYm91dCBpdC4KPiA+ID4+ID4gPgo+ID4gPj4gPiA+IFRoZW4gdGhlcmUgaXMgdGhlIEplbmtpbnMgam9icyBjb25maWd1cmF0aW9uOgo+ID4gPj4gPiA+IC0gd2UgbmVlZCBlYXN5IEplbmtpbnNmaWxlIGluIGVhY2ggcmVwbwo+ID4gPj4gPgo+ID4gPj4gPiBzbyB3ZSBjcmVhdGUgYSBzaGFyZWQgR3Jvb3Z5IGxpYnJhcnkgbGlrZSB0aGUgSmVua2lucyBwcm9qZWN0IGRvZXMKPiBhbmQKPiA+ID4+Cj4gPiA+PiB0aGUKPiA+ID4+Cj4gPiA+PiA+IEplbmtpbnNmaWxlIGJlY29tZXMgYGJ1aWxkUGx1Z2luYCBmb3IgYWxsIGV4Y2VwdCBjb3JlCj4gPiA+PiA+Cj4gPiA+PiA+ID4gLSB3ZSBuZWVkIGVhc3kgODAgam9icyBjcmVhdGlvbiAobm8sIEkgd29uJ3QgbWFudWFsbHkgY3JlYXRlIDgwCj4gam9icwo+ID4gPj4gPiA+IHBlcnNvbmFsbHkpCj4gPiA+PiA+Cj4gPiA+PiA+IFNvIEkgd2lsbCBhZGQgU0NNTmF2aWdhdG9yIGZ1bmN0aW9uYWxpdHkgdG8gdGhlIEFTRiBnaXQtSmVua2lucwo+IHBsdWdpbgo+ID4gPj4KPiA+ID4+IGFuZAo+ID4gPj4KPiA+ID4+ID4gd2UganVzdCBkZWZpbmUgYW4gb3JnLWZvbGRlciBmb3IgTWF2ZW4gYW5kIGFsbCBnaXQgcmVwb3Mgd2l0aCBhCj4gPiA+Pgo+ID4gPj4gSmVua2luc2ZpbGUKPiA+ID4+Cj4gPiA+PiA+IHdpbGwgYmUgYXV0by1tYWludGFpbmVkLgo+ID4gPj4gPgo+ID4gPj4gPiA+IEFuZCBvbmNlIGFnYWluLCBpbmZyYSB3aWxsIGhhdmUgdG8gYmUgaW4gdGhlIGxvb3AgKGF0IEplbmtpbnMgc2k9CmRlCj4gPiA+Pgo+ID4gPj4gdGhpcwo+ID4gPj4KPiA+ID4+ID4gPiB0aW1lKSwKPiA+ID4+ID4gPiBzaW5jZSBJIGZlYXIgdGhlIGxvYWQgb24gSmVua2lucyBtYXN0ZXIgbm9kZSB3b24ndCBiZSBsaWdodDoKPiBwZXJoYXBzCj4gPiA+PiA+ID4gdGhhdCdzCj4gPiA+PiA+ID4gd2hlcmUgSmVua2lucyBmb2xkZXJzIHdpbGwgYmUgdXNlZnVsLCBidXQgSSdtIG5vdCBhIEplbmtpbnMgZXhwZT0KcnQKPiA+ID4+Cj4gPiA+PiBlaXRoZXIuCj4gPiA+Pgo+ID4gPj4gPiBJZiB3ZSB1c2UgYW4gb3JnIGZvbGRlciBpbnRlZ3JhdGVkIHdpdGggR2l0UHViU3ViIEkgZG8gbm90IHRoaW5rCj4gdGhleQo+ID4gPj4KPiA+ID4+IHdpbGwKPiA+ID4+Cj4gPiA+PiA+IGJlIG92ZXJseSBjb25jZXJuZWQKPiA+ID4+ID4KPiA+ID4+ID4gPiBJZiBldmVyeXRoaW5nIHNlZW1zIGZlYXNpYmxlIHRvIHNwbGl0IG91ciBzdm4gY29kZSBpbnRvIDEgZ2l0IHJlPQpwbwo+ID4gPj4KPiA+ID4+IHBlci0KPiA+ID4+Cj4gPiA+PiA+ID4gY29tcG9uZW50LCB3aGljaCB3aWxsIGJyaW5nIHVzIHRvICJmdWxsIE1hdmVuIGNvZGUiIGJlaW5nIG5lYXIgMT0KMDAKPiA+ID4+Cj4gPiA+PiByZXBvcywKPiA+ID4+Cj4gPiA+PiA+ID4gSSdtCj4gPiA+PiA+ID4gb2sgd2l0aCBpdC4KPiA+ID4+ID4gPiBXZSdsbCBuZWVkIHRoZSBoZWxwIG9mIG1pc2MgZXhwZXJ0cyBvbiBKZW5raW5zIGFuZCBnaXQgdG8gcHJlcGFyPQplCj4gPiA+Pgo+ID4gPj4gdGhpbmdzCj4gPiA+Pgo+ID4gPj4gPiA+IGF0Cj4gPiA+PiA+ID4gdGhpcyBzY2FsZS4KPiA+ID4+ID4KPiA+ID4+ID4gSSB0aGluayBvbmUgcmVwbyBwZXIgcmVsZWFzZSByb290IGlzIHRoZSB3YXkgdG8gZ28uCj4gPiA+PiA+Cj4gPiA+PiA+IFdlIHNob3VsZCBzdGFydCBieSBkcmF3aW5nIHVwIGEgbGlzdCBhbmQgYW1hbGdhbWF0aW9uIHdoZXJlCj4gPiA+Pgo+ID4gPj4gYXBwcm9wcmlhdGU6Cj4gPiA+PiA+IEVnCj4gPiA+PiA+Cj4gPiA+PiA+ICogZG9lcyBpdCBtYWtlIHNlbnNlIHRvIHJlbGVhc2UgbWF2ZW4tZGVwbG95LXBsdWdpbiBhbmQKPiA+ID4+ID4gbWF2ZW4taW5zdGFsbC1wbHVnaW4gaW5kZXBlbmRlbnRseT8gU2VlbXMgd2UgbW9zdCBvZnRlbiBtYWtlCj4gbWlycm9yaW5nCj4gPiA+PiA+IGNoYW5nZXMgdG8gYm90aCwgYW5kIHBlcmhhcHMgaXQgd291bGQgYmUgYmV0dGVyIGlmIHdlIGZvcmNlZCB0aGF0Cj4gPiA+Pgo+ID4gPj4gbW9kZWw/Cj4gPiA+Pgo+ID4gPj4gPiAoRG9uPUUyPTgwPTk5dCBhbnN3ZXIgaW4gdGhpcyB0aHJlYWQsIGp1c3QgcG9pbnRpbmcgb3V0IGFuIGV4YW1wbGU9CikKPiA+ID4+Cj4gPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLQo+ID4gPj4KPiA+ID4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+ID4gPgo+ID4gPj4gPiA+IC0tCj4gPiA+PiA+Cj4gPiA+PiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4gPj4KPiA+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotCj4gPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4KPiA+ID4+IC0tCj4gPiA+Cj4gPiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+CgotLTAwMWExMTQyMzY1NmRmOTJlZDA1NWIxODk2ZDgtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDcwNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgRGVjICAyIDEwOjUzOjAwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDcwNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAzNjU3RDE3NTQyCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDIgRGVjIDIwMTcgMTA6NTM6MDAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5Nzg3MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIERlYyAyMDE3IDEwOjUyOjU5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NzgwNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIERlYyAyMDE3IDEwOjUyOjU5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTc3OTMgaW52b2tlZCBieSB1aWQgOTkpOyAyIERlYyAyMDE3IDEwOjUyOjU5IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwMiBEZWMgMjAxNyAxMDo1Mjo1OSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEIwNEFEMTgwNzlDCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgMiBEZWMgMjAxNyAxMDo1Mjo1OCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjkwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC45MDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsCglTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgTm9PQ1N6NkV5UFowIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAgMiBEZWMgMjAxNyAxMDo1Mjo1NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdyMC1mMTc4Lmdvb2dsZS5jb20gKG1haWwtd3IwLWYxNzguZ29vZ2xlLmNvbSBbMjA5Ljg1LjEyOC4xNzhdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgM0JBRUE1RjI0QwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDIgRGVjIDIwMTcgMTA6NTI6NTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd3IwLWYxNzguZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgdjIyc28xMjUxNzM1OHdyYi4wCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMDIgRGVjIDIwMTcgMDI6NTI6NTYgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9ZTVmRzRydkFYOXRSTEllM3BmRzF5dTVoSG1OODlNT3pzOTR6YXdOaHl6OD07CiAgICAgICAgYj1hM1hrVmFVdXhXMUV1VGlNSkhXaTQzOUlDREhpZ2NmeFVSYXFwTmdPZ1JobnVFMzZYUW5CM3VFRTIvUVhGQnhBcm8KICAgICAgICAgb1dRZTB6anU1b1FsRVN4VjM0Wk5PZCtpUUVua0hSekpaTDk5WFhyb0xpVC9lS0pOWlQwelRORUY4NU5URlpNajZQUGYKICAgICAgICAgRXlBYU1CUFkyV2NMbndYaXhjaFBMcGJQeUVobFhtdmxSYVNQeUZoRW1HUTh2eUg3TDM3TnlKV2Jzb2dwSFNCMWNuYisKICAgICAgICAgby9aOFNLR0t0QmV3ejRCQUxnSG4yVk9SOWlpcFg0YlIvSGxETzhuSU42MEtnbm5sRWxteVd5NW1iVHFXYVJsalpzQVIKICAgICAgICAgbDBHUnBjc0IwODM4OWVraWp6Sno2TTBuMTFJa29kUkpMNE1pT3ZWSW5lNEc2aUY4Y3gza3o0ZmdBMWtNc3dHYnI1aUYKICAgICAgICAgT0xTUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9ZTVmRzRydkFYOXRSTEllM3BmRzF5dTVoSG1OODlNT3pzOTR6YXdOaHl6OD07CiAgICAgICAgYj1memVDQnRMV3FTb2xub1RVbW4vVUNEWThJYTJQcDlhaldjVjU3bGFMMDc1eVV6UkdDTUQ2bEZjQ0N5NVFneER0V0cKICAgICAgICAgWm50cWM3NWxwYk9nYlNEeHJUcG0xUEh1eTBOKy84V0VPTXNhV29zV1plSHQ0LzNDVXRrNVl6aDJoTjBaUXVnWVRzRmMKICAgICAgICAgWnhmYjRIK1o4VnVjRkdkOS9DdS9POVdNZTYrVTBkSHRZbDY0SjcrSityMENyalJRUGs3MDRpUDBVbmVNN0g1aEVCQmUKICAgICAgICAgN1VrLzcrWDhBRVZTc0hablBLV2ZnMWZlYW5BaUc0TGpYVy9PU1NGL21XODRNK1pQV0c2UUU1ZnJCSHdIVWxDQjd4eFIKICAgICAgICAgKzA4MllvUG9YaUZLK2s5aVhPT1hEdXAzK3VzVjBwN016bWJnSGJNOFRidWFuY3FRNWpVamtEQ3Vqc2xYdVpGT1BIcmUKICAgICAgICAgYzBsUT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYNnpjUGluRlIwTEpqSmpjMDRJTjh3T3FZbjFoeDBSaktodllKSW9nb2F4SVhsaUl2QmQKCUcwMWlXVmRPdVBvekZJb1dZUVphYVdzTG05Z05WTlY5WVRtSjRET2k2QT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1ZS01vSDFqSjVCK0JqTjJuM2ZkWm5HbklOdllWRG80NHE0RTRFSGdVVjdiNkxtTU5uK2d5SEhJeUFWWDk0RHdCRnYwZnJkS1hseFNhTVVtQTAxcnJrPQpYLVJlY2VpdmVkOiBieSAxMC4yMjMuMTcxLjE3NyB3aXRoIFNNVFAgaWQgczQ2bXI3NjMzNTk5d3JjLjE5NC4xNTEyMjExOTcwMTM4OwogU2F0LCAwMiBEZWMgMjAxNyAwMjo1Mjo1MCAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8Q0ErblBuTXcwc1dnMW9KUDlQNVRucnFiZ3BRU2NXZUEwbThaaTJTYThNQ2IwMWdlOVd3QG1haWwuZ21haWwuY29tPgogPENBS3VWekJRMGE2SjgwVHQrTUhkZFdUd1NkcisteV90YVd1TFA2MXc9b3hidE1zMnlYZ0BtYWlsLmdtYWlsLmNvbT4KIDxDQStuUG5NeTlraUx2Q3NtRVdaZnhEdkJNX25qMUowakc3NGl0ZmJKNVdFdWl4QXAtM3dAbWFpbC5nbWFpbC5jb20+IDxDQUt1VnpCUk13NzgrX2t2PVNTc3p5Sjd2YTAtYmNNSkNaZmV2cXBWeG49VWp1aDZ0aUFAbWFpbC5nbWFpbC5jb20+CkluLVJlcGx5LVRvOiA8Q0FLdVZ6QlJNdzc4K19rdj1TU3N6eUo3dmEwLWJjTUpDWmZldnFwVnhuPVVqdWg2dGlBQG1haWwuZ21haWwuY29tPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBTYXQsIDAyIERlYyAyMDE3IDEwOjUyOjM5ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5Nd2Fzb3UtQWctamswM1FiTWZFZFdydkRvYlREeE5YOEt2UFU9S1N3WEgzNHdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBSRSBzd2l0Y2hpbmcgc3VyZWZpcmUgdG8gdGhlIHN0YW5kYXJkIGJ1aWxkClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTNjMmZkYTRlMjhlYTA1NWY1OTQ5M2IiCgotLTAwMWExMTNjMmZkYTRlMjhlYTA1NWY1OTQ5M2IKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gU2F0IDIgRGVjIDIwMTcgYXQgMTA6NDIsIFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4gd3JvdGU6Cgo+IE9uZSBmdW5jdGlvbiBpbiBKZW5raW5zZmlsZSBpcyBzaWNrLgo+IEl0IGlzIHB1cmUgYnVyZWF1Y3JhY3kgd2hlcmUgdGhlIEplbmtpbnNmaWxlIGJlY29tZXMgYSBiZXRvbi4KPiBUaGVyZSBpcyBubyBmcmVlZG9tIGZvciBkZXZlbG9wZXJzIGluIEplbmtpbnNmaWxlIGluIHRoYXQgY2FzZS4KCgpJZiB5b3UgZG9uPUUyPTgwPTk5dCB3YW50IEphdmEgOSB0aGVuIHlvdSBjYW4gdHVybiBvZmYgSmF2YSA5IHVzaW5nIHRoZSBwYXI9CmFtZXRlcnMuCgpOb3cgdGhlIGxhcmdlciBxdWVzdGlvbiBpcyB3aHkgd2UgY2Fubm90IGJ1aWxkIHdpdGggSmF2YSA5Li4uCgpBbnkgc25vd2ZsYWtlIGJ1aWxkIGlzIGEgY29kZSBzbWVsbAoKQW55IGJ1aWxkIG5lZWRpbmcgY29tcGxleCBKZW5raW5zZmlsZSBsb2dpYyBpcyBhIGNvZGUgc21lbGwKCk5vdyBpZiB5b3UgYXJlIGluIHRoZSBwb3NpdGlvbiB3aGVyZSBzdXJlZmlyZSBjYW5ub3QgYnVpbGQgd2l0aCBKYXZhIDkgYnV0CnlvdSBuZWVkIHRvIHJ1biB0ZXN0cyB3aXRoIEphdmEgOS4uLiB0aGF0IHdvdWxkIGJlIGFuIGFjY2VwdGFibGUgcmVhc29uLi4uCmJ1dCB1bHRpbWF0ZWx5IHdlIHdpbGwgbmVlZCB0byBzb2x2ZSB0aGUgSmF2YSA5IGlzc3VlcyBzbyB0aGF0IHN1cmVmaXJlIGlzCmFibGUgdG8gdXNlIHRoZSBzdGFuZGFyZCBidWlsZC4KClRMO0RSIGlmIHlvdSBjYW5ub3QgdXNlIHRoZSBzdGFuZGFyZCBidWlsZCwgdGhlbiB0aGVyZSBpcyBhIGJhcnJpZXIgb24gbmV3CmNvbnRyaWJ1dG9ycyBhcyB0aGV5IGNhbm5vdCA9RTI9ODA9OUNqdXN0IGJ1aWxkPUUyPTgwPTlELCBpbnN0ZWFkIHRoZXkgbmVlZD0KIHRvIHVuZGVyc3RhbmQKaG93IHRvIGJ1aWxkLgoKCj4KPiBUaGUgYnVpbGQgZG9lcyBub3QgbmVlZCB0byBoYXZlIEphdmEgOS4gSXQncyBub3QgdGhlIHJlYXNvbiB0byBpbnZlc3QKPiBlZmZvcnQuIEkgaW52ZXN0IGVmZm9ydCB0byBKaWdzYXcgc3VwcG9ydCwgSlVuaXQ1IGFuZCAzLjAuCj4gSXQgaXMgcXVpdGUgYSBsb3Qgb2Ygd29yay4KPiBEbyBub3QgdHJ5IHRvIHNlZSBpdCBmcm9tIG9uZSBkaXJlY3Rpb24gb25seS4KPgo+IE9uIFNhdCwgRGVjIDIsIDIwMTcgYXQgMTE6MjMgQU0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Cj4gPiBPbiBTYXQgMiBEZWMgMjAxNyBhdCAxMDowMywgVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPiB3cm90ZT0KOgo+ID4KPiA+ID4gUGxzIGRvIG5vdCBkbyBpdCEKPiA+ID4gSSB3YW50IHRvIGhhdmUgaXQgdW5kZXIgY29udHJvbCBpbiBKZW5raW5zZmlsZSBhbmQgbm90IHRvIHNoYXJlIHRoZQo+IGNvZGUKPiA+ID4gd2l0aCBvdGhlciBwcm9qZWN0cy4KPiA+Cj4gPgo+ID4gSSBkbyBub3Qgc2VlIHRoYXQgeW91IGFjdHVhbGx5IGhhdmUgYW55dGhpbmcgdGhhdCBuZWVkcyBhIGN1c3RvbSBidWlsZC4KPiA+Cj4gPiBXZSBjYW4gYWRkIGNvZGUgY292ZXJhZ2UgdG8gdGhlIHRlbXBsYXRlLgo+ID4KPiA+IFRoZSBvbmx5IHJlcG8gSSBzZWUgd2l0aCByZWFzb25hYmxlIGV4Y3VzZXMgZm9yIGEgY3VzdG9tIEplbmtpbnNmaWxlIGlzCj4gdGhlCj4gPiBjb3JlIE1hdmVuIGl0c2VsZi4uLiBhbmQgdGhhdD1FMj04MD05OXMgb25seSBiZWNhdXNlIG9mIHRoZSBjb3JlIGludGVncj0KYXRpb24KPiB0ZXN0cy4KPiA+Cj4gPgo+ID4gPiBTdXJlZmlyZSBwcm9qZWN0IGlzIGRpZmZlcmVudCBhbmQgaXQgbXVzdCBiZSBzdGlsbCBkaWZmZXJlbnQuCj4gPgo+ID4KPiA+IENlcnRhaW5seSB5b3UgaGF2ZSBtb3ZlZCB0aGUgYnVpbGQgdGhhdCB3YXkuLi4gaT1FMj04MD05OWQgTGlrZSB0byBzZWUgPQpleHBsaWNpdAo+ID4gcmVhc29ucyB3aHkgc3VyZWZpcmUgY2Fubm90IHVzZSB0aGUgc3RhbmRhcmQgYnVpbGQuIFNub3dmbGFrZSBidWlsZHMgZG8KPiBub3QKPiA+IGhlbHAgZ3JvdyBjb21tdW5pdHkuCj4gPgo+ID4KPiA+ID4gSSBzZWUgR3Jvb3Z5IGxpYnJhcmllcyB1c2VmdWwgb25seSBpbiBzaXR1YXRpb25zIHdoZW4gSSBjYWxsIEh1ZHNvbiBBPQpQSQo+ID4gPiBmdW5jdGlvbnMgYW5kIEkgbmVlZCB0byBhdm9pZCBzZWN1cml0eSBpc3N1ZSBvbiB0aGVzZSBjYWxscyBhZnRlciB1c2k9Cm5nCj4gPiA+IHNoYXJlZCBHcm9vdnkgbGlicmFyeSBmb3IgSmVua2lucywgYnV0IG5vdCBpbiBoZXJlIGxpa2Ugb25lIGZ1bmN0aW9uCj4gPiA+IHN1YnN0aXR1dGluZyBlbnRpcmUgY29udGVudCBvZiBKZW5raW5zZmlsZS4KPiA+Cj4gPgo+ID4gVGhlcmUgYXJlIG1hbnkgdXNlIGNhc2VzIGZvciBzaGFyZWQgbGlicmFyaWVzLiBEbyBub3QgbGltaXQgeW91cnNlbGYgdG8KPiBvbmUKPiA+IHNtYWxsIChhbmQgaW4gbXkgdmlldyBhbnRpcGF0dGVybikgdXNlIGNhc2UKPiA+Cj4gPgo+ID4gPgo+ID4gPiBUCj4gPiA+Cj4gPiA+IE9uIFRodSwgTm92IDMwLCAyMDE3IGF0IDEwOjU5IFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+Cj4gPiA+ID4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy9qb2IvbWF2ZW4td2lwL2pvYi9tYXZlbi1zdXJlZmlyZS8KPiA+ID4gPiBqb2IvbmV3LWplbmtpbnNmaWxlLwo+ID4gPiA+IHRvIHNlZSB3aGF0IGl0J3MgbGlrZS4KPiA+ID4gPgo+ID4gPiA+IFdlIGNhbiBsb29rIGludG8gYWRkaW5nIGphY29jbyByZXBvcnRpbmcgdG8gdGhlIHN0YW5kYXJkIGJ1aWxkIGlmIGk9CnQKPiBpcwo+ID4gPiA+IHNlZW4gYXMgaW1wb3J0YW50Cj4gPiA+ID4KPiA+ID4KPiA+IC0tCj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+Cj4KLS09MjAKU2VudCBmcm9tIG15IHBob25lCgotLTAwMWExMTNjMmZkYTRlMjhlYTA1NWY1OTQ5M2ItLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDc3Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgRGVjIDE1IDA4OjA1OjE3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDc3Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA0NENCMTE3M0Q5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMTUgRGVjIDIwMTcgMDg6MDU6MTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1Mjk0NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNSBEZWMgMjAxNyAwODowNToxNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTI4NTcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgRGVjIDIwMTcgMDg6MDU6MTYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MjgzOSBpbnZva2VkIGJ5IHVpZCA5OSk7IDE1IERlYyAyMDE3IDA4OjA1OjE2IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAxNSBEZWMgMjAxNyAwODowNToxNiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEYyN0E0MUExM0Y5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAxNSBEZWMgMjAxNyAwODowNToxNSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDAuNTk5ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTAuNTk5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJRlJFRU1BSUxfUkVQTFk9MSwgSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFE3VnVYNUlxYXBhdCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCUZyaSwgMTUgRGVjIDIwMTcgMDg6MDU6MTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13cjAtZjE4Mi5nb29nbGUuY29tIChtYWlsLXdyMC1mMTgyLmdvb2dsZS5jb20gWzIwOS44NS4xMjguMTgyXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDM2MURENUYyQTgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDE1IERlYyAyMDE3IDA4OjA1OjEyICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdyMC1mMTgyLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIG8yc283MjgwNTQzd3JvLjUKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAxNSBEZWMgMjAxNyAwMDowNToxMiAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1CS2xNV3JsQ1gvNnVYczR1K0FzQ1NkZisrVmdFcjMrQk81cVZYWE1NSlZnPTsKICAgICAgICBiPUZFSXphaFdPVFJjWWt3aFRuNmw0MzhuVVByc293ZElmdjRnVXQxbW5XVUMySGY1Nk9hK0J0V20vM3pBV1VuZXJPbQogICAgICAgICA5QjlGRkdzT1FhMmt1cTQ5L09QQWJ5N0pOV3JsbFRRWXVoaGcvN1JkbW03U25QYzBQSEtYQ01mQ0hlUkpDVVNCNDcxTgogICAgICAgICBsMTJ5OVVvR1o1cjJHVnlaTkkreUc4RmNGaUtnOHZtT0xFNG1tZHJiSm05c3pXKzhhNWtCR3VWYWdLcmYyUVExVUo4bAogICAgICAgICBWaFMvcFEyM3kvY3poRElGV3NQS21iNXBkd0d2dU90OWFDMlhhR1VDUURGSzhHa3NWbFNVZWFaOTcvVUI5dllRb2N5QgogICAgICAgICB2OHFlWDVKdURiREo1YTJLWlFPdjFvdW1oTkVWZ0U2Y3BMa1F6eHJ3VWZJMi83K25GT1RndnBUcGdWSTEyYkZkaXdOZQogICAgICAgICBjTkpBPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1CS2xNV3JsQ1gvNnVYczR1K0FzQ1NkZisrVmdFcjMrQk81cVZYWE1NSlZnPTsKICAgICAgICBiPWxuYkdXdHI4cE1IVENwanhpaENXVkYxcFRWNnRTUUlWaFljV25wWlFGSjE2OE41bTB4L251T2M0UnBuQUpVUmQvWAogICAgICAgICBJcFFoSEhhdFRpY1RGemVkaXNBY052SnB5MkFuZEdUanlQckEvNVdtTmhIMWl4SGVIUzdXaUlUbkxzaDNkYlNOeWkydwogICAgICAgICBvdEp5TnFBZHJSUk5wNVc4YVd4T1hNaXpPaG50QWJ5UlFRUXpkQTlmWERUNGF0Sm4yUjR2OXlIcUdtUHlDWExjV2ZiZQogICAgICAgICB0YVlmUGQ3aUFUZ2dYbS9KNzNEb1g3c0U1ejJhNkZWMHpSKzFUSXpPMkZRVE1pa0lVWW1GWnZnekxENkNKUHREWk5NYQogICAgICAgICBWZ05xUElrOEFhdjZ6Y1NDakVNYXF4WVNNdmIycWRuanJJYnJKZjRBKzhLZXgwZVQ4aXBwVThOMjY4d2Q4UndyY1g1bQogICAgICAgICBCS0xRPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBS0dCM21JZ2t6TTE4Y0NJOVpuOXQvMk9KSkRJUHM3MCt6TXFCTThyWlZ6U0RuK3dmQ1RacFRySQoJODV4dDlqcnNvVitEVERGK1RxVEEwZzJrTWlnSGNGM2dOZ0JKdlZOWWh3PT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFDSmZCb3NQb3FFUkt5SllHeEc2eUNKY09oUWlncDZaMjZxZFhyb0ljQmh2QktRUHlGWHZudmJuY082V2N5Z20vY0ZRMVBQVTZ1eklzRnJVeE9aL1VhanFYRzg9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4yMDAuNjUgd2l0aCBTTVRQIGlkIGUxbXI0MDA2ODN3cmguMTMzLjE1MTMzMjUxMTE2NTY7CiBGcmksIDE1IERlYyAyMDE3IDAwOjA1OjExIC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDwxOTAwNTU4LkdGeDlRbGZhRTJAZ2lnYT4gPENBK25Qbk15Ky1OdlBrbXB1NDJnTXo5d1FtK01ieHE9OVI2dUthdDFCRmtZQlpmTThOZ0BtYWlsLmdtYWlsLmNvbT4KIDwxNTgxMzY1LnNiOGcwMEtNWWlAZ2lnYT4gPDExNDY5ODM0LnBubWRaMkw0ejhAZ2lnYT4KSW4tUmVwbHktVG86IDwxMTQ2OTgzNC5wbm1kWjJMNHo4QGdpZ2E+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMTUgRGVjIDIwMTcgMDg6MDU6MDEgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk13Yzg5PUc4cUplb0haZlhoUTdEMzV2Ty05SC1MblUtZkJZczJZVTIyYXpSZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IEdpdCBtaWdyYXRpb24gbmV4dCBzdGVwcwpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwODllMDgyOWM4YjBiNWM0ZjUwNTYwNWM3NWY4IgoKLS0wODllMDgyOWM4YjBiNWM0ZjUwNTYwNWM3NWY4CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCk9uIEZyaSAxNSBEZWMgMjAxNyBhdCAwNjozNCwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdybz0KdGU6Cgo+IGFub3RoZXIgc3RyYW5nZSB0aGluZyBbMV0KPiAtIHdoYXQgYXJlIHRoZSBtYW55ICJPcGVuIHRhc2tzIj8KCgpCdWcgaW4gd2l0aE1hdmVuIHBpcGVsaW5lIHdyYXBwZXIgdGhhdCBDeXJpbGxlIGhhcyBmaXhlZCBpbiAzLjAuNiAobmVlZCB0bwp3YWl0IGZvciBpbmZyYSB0byB1cGdyYWRlIHRoYXQgcGx1Z2luIGFuZCByZXN0YXJ0IEplbmtpbnMpCgo+Cj4gLSB3aHkgYXJlIGNoYW5nZXMgd3JpdHRlbiA1IHRpbWVzPwoKClRoZXJlIGFyZSA1IGNoZWNrb3V0cywgdGhlIGdpdCBwbHVnaW4gaXMgbm90IGdyZWF0IGF0IGRlLWR1cGxpY2F0aW9uLiBJCm1pZ2h0IGhhdmUgdG8gdHJ5IGFuZCBmaXggaXQgbXlzZWxmIGFzIE1hcmsgV2FpdGUgaXMgYnVzeSB3aXRoIG90aGVyIGlzc3Vlcz0KLgoKCj4KPiBSZWdhcmRzCj4KPiBIZXJ2PUMzPUE5Cj4KPiBbMV0KPiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC9qb2IvbWF2ZW4tc2l0PQplLXBsdWdpbi9qb2IvbWFzdGVyL2NoYW5nZXMKPgo+IExlIG1lcmNyZWRpIDEzIGQ9QzM9QTljZW1icmUgMjAxNywgMDU6NTg6MjggQ0VUIEhlcnY9QzM9QTkgQk9VVEVNWSBhID1DMz0KPUE5Y3JpdCA6Cj4gPiB0aGFuayB5b3U6IG9uZSBsZXNzIGlzc3VlCj4gPgo+ID4gYSBuZXcgZmluZGluZzogdGhlIEppcmEgbWVzc2FnZSBwb2ludHMgdG8gdGhlIEplbmtpbnMgYnVpbGQsIHdoeSBub3QKPiA+IEJ1dCBpdCBkb2VzIG5vdCBwb2ludCB0byBHaXQgY29tbWl0IFsxXQo+ID4KPiA+IHRoZSBsaW5rIHRvIHRoZSBnaXQgY29tbWl0IGlzIHZlcnkgdXNlZnVsIHRvIHRyYWNrIGhvdyB0aGUgZml4IHdhcyBkb25lPQosCj4gYW5kCj4gPiByZW1haW5zIHZhbGlkIG9uIGEgbG9uZyBwZXJpb2QgKHdoaWNoIGlzIG5vdCB0aGUgY2FzZSBvZiB0aGUgSmVua2lucwo+IGJ1aWxkKQo+ID4KPiA+IElzIGl0IHBvc3NpYmxlIHRvIGhhdmUgdGhpcyBpbiBvdXIgc3RhbmRhcmQgYnVpbGQsIHBsZWFzZT8KPiA+Cj4gPiBSZWdhcmRzLAo+ID4KPiA+IEhlcnY9QzM9QTkKPiA+Cj4gPiBbMV0gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9ET1hJQVNJVEVUT09MUy0xODIKPiA+Cj4gPiBMZSBsdW5kaSAxMSBkPUMzPUE5Y2VtYnJlIDIwMTcsIDIxOjI5OjE1IENFVCBTdGVwaGVuIENvbm5vbGx5IGEgPUMzPUE5Yz0Kcml0IDoKPiA+ID4gT24gU3VuIDEwIERlYyAyMDE3IGF0IDA5OjU5LCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mPQpyPgo+IHdyb3RlOgo+ID4gPiA+IGhlcmUgaXMgYSBsaXN0IG9mIHN0cmFuZ2UgaXNzdWVzIGluIENJIGpvYnM6Cj4gPiA+ID4KPiA+ID4gPiAtIERveGlhIFNpdGV0b29scyBpcyBmYWlsaW5nIGF0IGNoZWNrb3V0IFsxXQo+ID4gPiA+Cj4gPiA+ID4gLSBNYXZlbiBjb3JlIGJyYW5jaGVzIGZhaWwgaW4gbWF2ZW4td2lwIFsyXSB3aGlsZSB0aGUgbXVsdGktYnJhbmNoCj4gZG9lcwo+ID4gPiA+IG5vdAo+ID4gPiA+IGZhaWwgWzNdOiBBRkFJSywgc2FtZSBKZW5raW5zIGZpbGVzIGFyZSB1c2VkLCBpc24ndCBpdD8KPiA+ID4KPiA+ID4gVWJ1bnR1LTQgd2FzIGhhdmluZyBpc3N1ZXMKPiA+ID4KPiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+Cj4gPiA+ID4gSGVydj1DMz1BOQo+ID4gPiA+Cj4gPiA+ID4gWzFdCj4gPiA+ID4KPiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC9qb2IvbWF2ZW4tZG8KPiA+ID4gPiB4aQo+ID4gPiA+IGEtc2l0ZXRvb2xzL2pvYi9tYXN0ZXIvNC9jb25zb2xlCj4gPiA+ID4KPiA+ID4gPiBbMl0KPiA+ID4gPgo+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4td2lwL2pvYi9tYXZlbi8KPiA+ID4gPgo+ID4gPiA+IFszXQo+ID4gPiA+Cj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi0zLngtamVua2luc2ZpbGUvCj4gPiA+ID4KPiA+ID4gPiBMZSBkaW1hbmNoZSAxMCBkPUMzPUE5Y2VtYnJlIDIwMTcsIDA2OjI5OjIwIENFVCBIZXJ2PUMzPUE5IEJPVVRFTVkgPQphID1DMz1BOWNyaXQgOgo+ID4gPiA+ID4geWVzLCBhbmQgODMgbWF2ZW4tYm94IENJIGpvYnMgWzFdCj4gPiA+ID4gPgo+ID4gPiA+ID4gc29tZSBDSSBmYWlsdXJlcyBhcmUgbm90IHJlYWxseSBleHBlY3RlZCwgYnV0IGluIGdlbmVyYWwsIHRoZQo+IHJlc3VsdAo+ID4gPiA+ID4gaXMKPiA+ID4gPgo+ID4gPiA+IGdvb2QKPiA+ID4gPgo+ID4gPiA+ID4gaXQncyB0aW1lIGZvciBldmVyeWJvZHkgdG8gY2hlY2sgaGlzIGZhdm9yaXRlIHBsdWdpbiBvciBzaGFyZWQKPiA+ID4gPiA+IGNvbXBvbmVudAo+ID4gPiA+Cj4gPiA+ID4gYW5kCj4gPiA+ID4KPiA+ID4gPiA+IGRvIHRoZSBsaXR0bGUgZml4ZXM6IHRoZSBnbG9iYWwgbWlncmF0aW9uIGlzIGRvbmUKPiA+ID4gPiA+Cj4gPiA+ID4gPiBhbmQgaXQncyB0aW1lIGFsc28gdG8gc3RhcnQgcmV2aWV3aW5nIFBScyBhbmQgbWVyZ2luZzogdGhpcyB3YXMgdD0KaGUKPiA+ID4gPiA+IGJpZwo+ID4gPiA+ID4gb2JqZWN0aXZlIHdpdGggR2l0IG1pZ3JhdGlvbgo+ID4gPiA+ID4KPiA+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4gPgo+ID4gPiA+ID4gSGVydj1DMz1BOQo+ID4gPiA+ID4KPiA+ID4gPiA+IFsxXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC8KPiA+ID4gPiA+Cj4gPiA+ID4gPiBMZSBzYW1lZGkgOSBkPUMzPUE5Y2VtYnJlIDIwMTcsIDE3OjA2OjA5IENFVCBTdGVwaGVuIENvbm5vbGx5IGEgPQo9QzM9QTljcml0IDoKPiA+ID4gPiA+ID4gSSBzZWUgd2UgaGF2ZSBhIGxhcmdlIG51bWJlciBvZiByZXBvcyBub3cgb24gZ2l0Ym94IDstKQo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBPbiBUaHUgNyBEZWMgMjAxNyBhdCAwNzowMCwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGY9CnJlZS5mcgo+ID4KPiA+ID4gPgo+ID4gPiA+IHdyb3RlOgo+ID4gPiA+ID4gPiA+IG9rLCBJIGRpZG4ndCB1cGRhdGUgbXkgcmVwbyBjbG9uZTogbm93IHRoZSBydW4taXRzIHByb2ZpbGUgaXMKPiA+ID4gPgo+ID4gPiA+IGFjdGl2YXRlZAo+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gdGhlbiB0aGUgcGxhbiBzaG91bGQganVzdCBjb25maXJtICJpdCB3b3JrcyEiIDopCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBhbmQgZmluZCB3aGljaCBqb2JzIGFyZSBzcGVjaWFsLCBsaWtlIG1hdmVuLWRpc3QtdG9vbCAod2hpY2gKPiBoYXMKPiA+ID4gPiA+ID4gPiB0bwo+ID4gPiA+Cj4gPiA+ID4gYmUKPiA+ID4gPgo+ID4gPiA+ID4gPiA+IHNjaGVkdWxlZCBkYWlseSBpbnN0ZWFkIG9mIGNvZGUgY2hhbmdlLCBhbmQgb25lIHBsYXRmb3JtIG9ubHk9CikKPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBIZXJ2PUMzPUE5Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBMZSBtZXJjcmVkaSA2IGQ9QzM9QTljZW1icmUgMjAxNywgMjM6NTg6NDUgQ0VUIFN0ZXBoZW4gQ29ubm9sPQpseSBhCj4gPUMzPUE5Y3JpdAo+IDoKPiA+ID4gPiA+ID4gPiA+IE9uIFdlZCA2IERlYyAyMDE3IGF0IDIyOjM4LCBIZXJ2PUMzPUE5IEJPVVRFTVkKPiA+ID4gPiA+ID4gPiA+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPiA+ID4KPiA+ID4gPiB3cm90ZToKPiA+ID4gPiA+ID4gPiA+ID4gTm93IHRoYXQgd2UgaGF2ZSAyIEFTRiBPcmdhbml6YXRpb24gSmVua2lucyBqb2JzIChvbmUgZm9yCj4gPiA+ID4gPiA+ID4gPiA+IGdpdGJveAo+ID4gPiA+Cj4gPiA+ID4gWzFdCj4gPiA+ID4KPiA+ID4gPiA+ID4gPiBhbmQKPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiBvbmUKPiA+ID4gPiA+ID4gPiA+ID4gZm9yIGdpdC13aXA6IHRoYW5rIHlvdSBTdGVwaGVuKSBhbmQgdGhhdCBpdCBsb29rcyBxdWl0ZQo+ID4gPiA+Cj4gPiA+ID4gc3VjY2Vzc2Z1bCwKPiA+ID4gPgo+ID4gPiA+ID4gPiA+IGxldCdzCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gcGxhbgo+ID4gPiA+ID4gPiA+ID4gPiB0aGUgbmV4dCBzdGVwcy4KPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gSGVyZSBpcyB3aGF0IEkgc2VlOgo+ID4gPiA+ID4gPiA+ID4gPiAxLiByZW1vdmFsIG9mIGhhbmQtZGVmaW5lZCBKZW5raW5zIGpvYnMgdGhhdCBhcmUgbm93Cj4gPiA+ID4gPiA+ID4gPiA+IGR1cGxpY2F0ZXMKPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gMi4gcHJlcGFyYXRpb24gb2YgdGhlIDYwIG5ldyBlbXB0eSBnaXQgcmVwb3MgZm9yIHNoYXJlZCAmCj4gPiA+ID4gPiA+ID4gPiA+IHBsdWdpbnMKPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gMy4gbWlncmF0aW9uIG9mIHRoZSAxIHNoYXJlZCBjb21wb25lbnQgYW5kIDEgcGx1Z2luIHVzaW5nCj4gPiA+ID4gPiA+ID4gPiA+IG1pZ3JhdGUtKi5zaAo+ID4gPiA+ID4gPiA+ID4gPiBzY3JpcHRzCj4gPiA+ID4gPiA+ID4gPiA+IFszXSB0byB0ZXN0IGFuZCBldmVudHVhbGx5IHJld29yayB0aGUgSmVua2luc2ZpbGUgKEkKPiBzdXBwb3NlCj4gPiA+ID4gPiA+ID4gPiA+IGl0Cj4gPiA+ID4KPiA+ID4gPiB3aWxsCj4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gcmVxdWlyZQo+ID4gPiA+ID4gPiA+ID4gPiBzb21lIGxpdHRsZSBjaGFuZ2UsIHRvIHJ1biBhZGQgInJ1bi1pdHMiIHByb2ZpbGUpCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gQXMgZmFyIGFzIEkgcmVjYWxsLCBJIGFkZGVkIC1QK3J1bi1pdHMgYWxyZWFkeQo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IEZvciB0aGUgcGx1Z2luLCBJJ2QgbGlrZSB0byBkbyB0aGUgam9iIGZvciBtYXZlbi1zaXRlLXBsdWdpPQpuLAo+ID4gPiA+Cj4gPiA+ID4gc2luY2Ugd2UKPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiBleHBlY3QKPiA+ID4gPiA+ID4gPiA+ID4gdG8gcmVsZWFzZSBpdCBzb29uLgo+ID4gPiA+ID4gPiA+ID4gPiBGb3IgdGhlIHNoYXJlZCBjb21wb25lbnQsIEkgZG9uJ3Qga25vdyBpZiB0aGVyZSBpcyBhIGJlc3QKPiA+ID4gPgo+ID4gPiA+IGNhbmRpZGF0ZQo+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IDQuIG9uY2UgcHJldmlvdXMgc3RlcCBpcyBvaywgZG8gdGhlIGZ1bGwgbWlncmF0aW9uOiBpZgo+IHRoZXJlCj4gPiA+ID4gPiA+ID4gPiA+IGFyZQo+ID4gPiA+ID4gPiA+ID4gPiB2b2x1bnRlZXJzCj4gPiA+ID4gPiA+ID4gPiA+IGZvciBoZWxwaW5nLCB0aGF0IHdvdWxkIGJlIGdyZWF0LCBzaW5jZSBwb3B1bGF0aW5nIDYwIGdpdAo+ID4gPiA+ID4gPiA+ID4gPiByZXBvcwo+ID4gPiA+ID4gPiA+ID4gPiB3b24ndAo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gYmUKPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiByZWFsbHkgZnVuLi4uCj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IEFuZCBhcyBwYXJ0IG9mIDYwIGVtcHR5IGdpdCByZXBvcyBjcmVhdGlvbiwgSSBwcm9wb3NlIHRvCj4gPiA+ID4gPiA+ID4gPiA+IG1pZ3JhdGUKPiA+ID4gPgo+ID4gPiA+IHRoZQo+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ICJHb29nbGUKPiA+ID4gPiA+ID4gPiA+ID4gcmVwbyBtYW5pZmVzdCIgbWF2ZW4tYWdncmVnYXRvciBbNF0gdG8gQVNGOiBteSBwZXJzb25hbCB1PQpzZQo+ID4gPiA+ID4gPiA+ID4gPiBoYXMKPiA+ID4gPgo+ID4gPiA+IGJlZW4KPiA+ID4gPgo+ID4gPiA+ID4gPiA+IHF1aXRlCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gc3VjY2Vzc2Z1bCwgSSBob3BlIGl0J3MgdGhlIHNhbWUgZm9yIG90aGVycy4gUGVyaGFwcyB0aGVyPQplCj4gYXJlCj4gPiA+ID4gPiA+ID4gPiA+IGJldHRlcgo+ID4gPiA+ID4gPiA+ID4gPiBpZGVhcwo+ID4gPiA+ID4gPiA+ID4gPiBmb3IgaXRzIG5hbWU6IG1hdmVuLWFnZ3JlZ2F0b3IKPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gQW55IG90aGVyIGlkZWE/IGFueSBvYmplY3Rpb24/Cj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IEhlcnY9QzM9QTkKPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gWzFdCj4gPiA+ID4gPiA+ID4gPiA+Cj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvCj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IFsyXQo+ID4gPiA+ID4gPiA+ID4gPgo+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4td2lwLwo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiBbM10KPiA+ID4gPgo+ID4gPiA+IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL21hdmVuL3NhbmRib3gvdHJ1bmsvc2NyaXB0cy9naXQvCj4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gWzRdIGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1hZ2dyZWdhdG9yCj4gPiA+ID4KPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotCj4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gLQo+ID4gPiA+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3I9CmcKPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gLS0KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID4gPiA+ID4gLS0KPiA+ID4gPiA+ID4gPiAtCj4gPiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiAtLQo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+ID4gPiA+Cj4gPiA+ID4gPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPgo+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0tCj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4KPiA+ID4gPiAtLQo+ID4gPgo+ID4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+Cj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPiAtLQpTZW50IGZyb20gbXkgcGhvbmUKCi0tMDg5ZTA4MjljOGIwYjVjNGY1MDU2MDVjNzVmOC0tCgpGcm9tIGRldi1yZXR1cm4tMTIzOTk2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBTZXAgMTIgMTg6NTU6MDcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTk2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEQxRjk5MUExRjcKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAxMiBTZXAgMjAxNyAxODo1NTowNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDY5ODU5IGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIFNlcCAyMDE3IDE4OjU1OjA3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2OTc4MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMiBTZXAgMjAxNyAxODo1NTowNyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY5NzY4IGludm9rZWQgYnkgdWlkIDk5KTsgMTIgU2VwIDIwMTcgMTg6NTU6MDYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDEyIFNlcCAyMDE3IDE4OjU1OjA2ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgODU1QUQxOENCRDMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDEyIFNlcCAyMDE3IDE4OjU1OjA2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS4wOTkKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjA5OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUZSRUVNQUlMX1JFUExZPTEsIEhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCA5S19NbXZzZVFqS0wgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUdWUsIDEyIFNlcCAyMDE3IDE4OjU1OjA0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtdmswLWY0NC5nb29nbGUuY29tIChtYWlsLXZrMC1mNDQuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxMy40NF0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA4RTVFQjVGQ0NCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxMiBTZXAgMjAxNyAxODo1NTowMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC12azAtZjQ0Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHQxMHNvMTM4Njg1OTl2a2UuMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDEyIFNlcCAyMDE3IDExOjU1OjAzIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPTRRenZtRlU1NEFlZDJXc1lBVkFhV3AwZUdVaTVXRkdSaDR1SkIzM1VBSWc9OwogICAgICAgIGI9b1ZDZFhsUDVFVUtRaXlnL3dDdXVYMHhlYjZ0NjBaL2hRUHNKQVU2TGFrbmJxbnBGbUtwQlNvODh4Z0VvMk9oVkpYCiAgICAgICAgIC8wYzZkYU9TaXpFNzBCc2hzaFVlZzlWcDhGMEthcVhiMzlRSy83NUJSb2NDOU94U2ZLbE1vRmIrcTZZUllicGdCOUdxCiAgICAgICAgIFFwZXVyeHVPWHZEVlF6REtlWDZVbEhmQXdaN0lpOU5oV1hIalJlUGxCY1ZuZzJGMGNobml2VjM3VDhkVHFXMWpBUElCCiAgICAgICAgIEdSTHdWUC94RWRpbVl5RzRNYTBVQVB6bWNJWWd0THpGQU5oRW9adVJ1ZG42MExCMUs2TFZLemlwWGN2VDFkTFJFTnZBCiAgICAgICAgIDZMbFRYbGJ2bXFMaFNBYVFTVEtQOU82MHBDRExwb1NaSFlOYUFJU1AzeW5aa1ZZV1dhaUlYa1lReWFEZW5XV1lSVnJkCiAgICAgICAgIEJVT2c9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPTRRenZtRlU1NEFlZDJXc1lBVkFhV3AwZUdVaTVXRkdSaDR1SkIzM1VBSWc9OwogICAgICAgIGI9ZmN0K25LeTR2YWJSRGNXRjFLcHBRNU02MkFrSVF0Kys3Z3R1ZytGTzJLdVdYcmZXVWFuTm9YL2ZFelZRNmlFZkJaCiAgICAgICAgIGlISy9LeXU5TUNmZzRIWDFuc2RqaVZ3SThvZnRzTytYZjVPaFUrSkdURUROMXNvZjhJcjNoR3BHSU1nQWRUblpRWno4CiAgICAgICAgIHBoTVl6eEpZc2MrdncwRCtiNTZXb09LR0x0YnhBMWVkU0hGeU1xN1lQdlhLZ2NTakUrd1ZsbnZlTHBWVENEMkJoQUt0CiAgICAgICAgIDhsUUdDQktjR0NxNmFuVmUyVjllaTNTSnY2eFRVdTBhajVybit6MVZIcG9KM1JtdUp5bHk2ejN2QmZDV0R4Zlh1KysrCiAgICAgICAgIHkyRlBPY3ZqWUFGQzVCdUhHaUFaOXBuRXI2NjN3Y0R1Q3pwV1RZSDF1YlBBME83RkdVUFk0Nm9yenJhNHM2ZWJ5c05pCiAgICAgICAgIERKYXc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWcrT3g1Vmt4UFFrcnFhdXVRb1ZNTG52U3BVdkpFZ0EwcnhrMVppamNVc3hsUVVPSHA1CglMeTZScTYrcFhYWEQ0OStWT2FGUkRoQ1V3aVNvU2lxWgpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQktxc0p6ZmpKZXpHa3Rya0U5TXlkNmFDMVl1ZHpCT1RWZlZiYStOUzJnV3VwaUpKRGowV0lqY2ZINk1kVE5vOXBzWHE3cG84eU43UFRLWHYwSDFCST0KWC1SZWNlaXZlZDogYnkgMTAuMzEuNzIuMTMzIHdpdGggU01UUCBpZCB2MTI3bXIxMDE5NzQ1NXZrYS4xMjQuMTUwNTI0MjQ5NTU5MzsKIFR1ZSwgMTIgU2VwIDIwMTcgMTE6NTQ6NTUgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPENBK25Qbk14eUcyTmVQWHBWcWF3ZTlqUj1pdEhFVDZVdWRuTjlDakhodj1vby1LQ3J4d0BtYWlsLmdtYWlsLmNvbT4KIDxwb255LTU2YTNhZGVhZjYwYzQwNTk2ZmIyODRiMjQ1MjQxNDhmNjA1ZThkMjMtNTJkNDFjZDQwZjIzNDNjODk1Mjg4MGU4Zjg0ZGEzZTgwZDMzNTUwOUBkZXYubWF2ZW4uYXBhY2hlLm9yZz4KIDxDQStuUG5NeVMycTF1ZmFXK1M2c21oWloxSmN4aGY5aFk1LTNuQkotaUNXZWpQVUFEVkFAbWFpbC5nbWFpbC5jb20+IDwyMDU3OTQ4LmsxR3lmanVHWGRAZ2lnYT4KSW4tUmVwbHktVG86IDwyMDU3OTQ4LmsxR3lmanVHWGRAZ2lnYT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAxMiBTZXAgMjAxNyAxODo1NDo0NSArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXdjb0hGWnZVcVdpVXN5SEJoYU1tb1NjY3lkVEJzelNYZ3NHdEY9d05HREt3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTRkZDRjNDQwMzMyODA1NTkwMjk0MjEiCgotLTAwMWExMTRkZDRjNDQwMzMyODA1NTkwMjk0MjEKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSGF2ZSB3ZSBnb3QgYW55IGZlZWRiYWNrIGZyb20gdGhlIGVtYmVkZGVyIGludGVncmF0aW9ucyB5ZXQ/CgpPbiBNb24gMTEgU2VwIDIwMTcgYXQgMjI6NTcsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cm89CnRlOgoKPiBqdXN0IGZvciB0aGUgcmVjb3JkczogaXQgaXMgV2luZG93cyArIEdpdCBCYXNoIChNSU5HVzY0KSBvbmx5Cj4KPiBhbmQgdGhlcmUgaXMgYSBjaGFuY2UgdGhhdCBhZGRpbmcgLURqYW5zaS5mb3JjZT0zRHRydWUgY2FuIGZvcmNlIEpBbnNpCj4gYWN0aXZhdGlvbiAoZXZlbiBpZiBKQW5zaSBmYWlscyB0byBkZXRlY3QgdGhhdCBpdCBzaG91bGQgYXV0by1hY3RpdmF0ZSkKPgo+IGRldGFpbHMgb24gaXNzdWUgaW4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjI4MiAsIGFuZCA9CmEKPiBmdXR1cmUgSkFuc2kgaXNzdWUuLi4KPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUMzPUE5Cj4KPiBMZSBsdW5kaSAxMSBzZXB0ZW1icmUgMjAxNywgMTI6NTM6NDYgQ0VTVCBTdGVwaGVuIENvbm5vbGx5IGEgPUMzPUE5Y3JpdCA6Cj4gPiBTbyB0aGF0IGlzIHdpbmRvd3Mgb25seSwgb3Igd2VyZSB0aGV5IGxvc3Qgb24gb3RoZXIgT1NlcyBmb3IgeW91Lgo+ID4KPiA+IEkgaGF2ZSBjb2xvdXJzIG9uIGxpbnV4ICh2aWEgZG9ja2VyKSBhbmQgb3MteAo+ID4KPiA+IE9uIDExIFNlcHRlbWJlciAyMDE3IGF0IDEyOjM1LCBkZWphbjI2MDlAZ21haWwuY29tIDxkZWphbjI2MDlAZ21haWwuY29tPQo+Cj4gPgo+ID4gd3JvdGU6Cj4gPiA+ICsxIChjb25kaXRpb25hbGx5KS4KPiA+ID4KPiA+ID4gVGVzdGVkIHZpYSBwcm9qZWN0IHRoYXQgaW5jbHVkZXMgZG96ZW4gb2YgcGx1Z2luczogMXN0IHRpZXIsIE1vam9IYXVzCj4gYW5kCj4gPiA+IGZldyAzcmQgcGFydHkgcGx1Z2lucyAoc28gdG8gc2F5KS4KPiA+ID4KPiA+ID4gRXZlcnl0aGluZyBsb29rcyBnb29kIHdpdGggb25lIG5vdGFibGUgcmVncmVzc2lvbjoKPiA+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjI4MiBDb25zb2xlIG91dHB1dCBoYXMgbm8KPiA+ID4gY29sb3JzIChyZWdyZXNzaW9uIGluIE1hdmVuIDMuNS4xKQo+ID4gPgo+ID4gPiBSZWdhcmRzLAo+ID4gPiBEZWphbgo+ID4gPgo+ID4gPiBPbiAyMDE3LTA5LTEwIDE3OjM5LCBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY289Cm0KPiA+Cj4gPiA+Cj4gPiA+IHdyb3RlOgo+ID4gPiA+IEhpLAo+ID4gPiA+Cj4gPiA+ID4gV2Ugc29sdmVkIDI1IGlzc3VlczoKPiA+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4gPiA+Cj4gPiA+IHZlcnNpb249M0QxMjMzODk2NCZzdHlsZU5hbWU9M0RUZXh0JnByb2plY3RJZD0zRDEyMzE2OTIyCj4gPiA+Cj4gPiA+ID4gVGhlcmUgYXJlIDM1MCBpc3N1ZXMgbGVmdCBpbiBKSVJBIGZvciBNYXZlbiBjb3JlOgo+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlCj4gPiA+Cj4gPiA+IDNEJTIwTU5HJTIwQU5EJTIwcmVzb2x1dGlvbiUyMCUzRCUyMFVucmVzb2x2ZWQlMjBPUkRFUiUKPiA+ID4gMjBCWSUyMGR1ZSUyMEFTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMGNyZWF0ZWQlMjBBU0MKPiA+ID4KPiA+ID4gPiBTdGFnaW5nIHJlcG86Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2NC8KPiA+ID4gPgo+ID4gPiA+IFRoZSBkaXN0cmlidXRhYmxlIGJpbmFyaWVzIGFuZCBzb3VyY2VzIGNhbiBiZSBmb3VuZCBoZXJlOgo+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4gPgo+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xLwo+ID4gPgo+ID4gPiA+IFNwZWNpZmljYWxseSB0aGUgemlwLCB0YXJiYWxsIGFuZCBzb3VyY2UgYXJjaGl2ZXMgY2FuIGJlIGZvdW5kIGhlcmU9CjoKPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+ID4KPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtYmluLnppcAo+ID4gPgo+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4gPgo+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1iaW4udGFyLmc9CnoKPiA+ID4KPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+ID4KPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcAo+ID4gPgo+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4gPgo+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1zcmMudGFyLmc9CnoKPiA+ID4KPiA+ID4gPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiA+ID4gPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5neiBzaGExOiA5ZWI4MjFmMTUzYzc2NjcxOTRhYTExY2NkMDk5YjcKPiA+ID4KPiA+ID4gYmQyMDU5NTYwZAo+ID4gPgo+ID4gPiA+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwOiBzaGExOiAxMjFkNTRiMDQ1MzgwYThhNDg5NWViMTM3OTcwYWIKPiA+ID4KPiA+ID4gNjllNjk4ZWIwZQo+ID4gPgo+ID4gPiA+IEdpdCB0YWc6Cj4gPiA+ID4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9M0RtYXZlbi5naXQ7YT0zRGNvbW1pdDtoPQo9M0QKPiA+ID4KPiA+ID4gMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMwo+ID4gPgo+ID4gPiA+IFN0YWdpbmcgc2l0ZToKPiA+ID4gPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvY29tcG9uZW50cy9yZWYvMy1MQVRFU1QvCj4gPiA+ID4KPiA+ID4gPiBWb3RlIG9wZW4gZm9yIDcyIGhvdXJzLgo+ID4gPiA+Cj4gPiA+ID4gWyBdICsxCj4gPiA+ID4gWyBdICswCj4gPiA+ID4gWyBdIC0xCj4gPiA+ID4KPiA+ID4gPiBUaGFua3MsCj4gPiA+ID4KPiA+ID4gPiBTdGVwaGVuLgo+ID4gPgo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4gLS0KU2VudCBmcm9tIG15IHBob25lCgotLTAwMWExMTRkZDRjNDQwMzMyODA1NTkwMjk0MjEtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDQ5NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgTm92IDE2IDA5OjAzOjIyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQ5NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBEOURFQzE3Q0JFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMTYgTm92IDIwMTcgMDk6MDM6MjIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3ODU5NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNiBOb3YgMjAxNyAwOTowMzoyMiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzg1MDkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTYgTm92IDIwMTcgMDk6MDM6MjIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3ODQ5NSBpbnZva2VkIGJ5IHVpZCA5OSk7IDE2IE5vdiAyMDE3IDA5OjAzOjIyIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAxNiBOb3YgMjAxNyAwOTowMzoyMiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDVDNEQwQzk1QUIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDE2IE5vdiAyMDE3IDA5OjAzOjIxICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS44NzkKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjg3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgT0lLZlF5Y0UxSjdGIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVGh1LCAxNiBOb3YgMjAxNyAwOTowMzoyMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdtMC1mNDUuZ29vZ2xlLmNvbSAobWFpbC13bTAtZjQ1Lmdvb2dsZS5jb20gWzc0LjEyNS44Mi40NV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA5MzBCMjVGQjlGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAxNiBOb3YgMjAxNyAwOTowMzoxOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13bTAtZjQ1Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHg2M3NvMTMyOTI3MHdtZi4yCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMTYgTm92IDIwMTcgMDE6MDM6MTkgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9K0Y2M3VNVDh4RWlPb2RCYXNOTENpNlc1MDN6eEtXWUVYM0pBcHdHYUZzQT07CiAgICAgICAgYj1qc24zRVdwRzlBTi9GbVlDNHBZTURVeHNVUHVyK25aRGFuWkxOaXlXMEt2SUxqYU1vdHhvYldzV0t3ZUcwRnZLK3AKICAgICAgICAgN2JtRFhGeS90MFQwUkNrdzc4OXppTTFVZi9sY2Fvakk1dkI0eUwxQjI4NW5TMm1WUDI1ME13MWtweUhzczREZHF2S0EKICAgICAgICAgdVhPYm5nM3Z5bE52RnRIQ3dJcUU0U1B0eUdNRFNCVVoxT0pRSUhHdUd5NXVmZlhyUFlwSmUvWXdVYlJESHdWZ3c5WUsKICAgICAgICAgV1VsK3A4eTc4WlZuWHZpSm92emdqWjJMdlFCQnZTU0EvQThPc3hiR0RNdXF1aUJPZk4vRm5KMkxQZTM4d3RmbzFHWDEKICAgICAgICAgTXFhNkF4dnRENTFoUy9zUFY1dm8ramFiVTNDK2JQUGpJR1d5YUlvNW81VG1hKzNMK015aVAyMkh1WUNrMGplbnA5aWcKICAgICAgICAgN3lCUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9K0Y2M3VNVDh4RWlPb2RCYXNOTENpNlc1MDN6eEtXWUVYM0pBcHdHYUZzQT07CiAgICAgICAgYj1rL1o5YlpEM2ZldWdYSXFtc2NrbnlNMjh5ejluT0JEUUVmK2lkWmQvVUVyc3d2b2IrM1R3ZlR4aWN3dTFSQjFCVjQKICAgICAgICAgVkxIazRSODVVWFNyVFZ3TTVYSVNCYUZ1VXpuVzBKQWtyQVNGYVpacFJNWEU4UDVpTTIrVVA0MXp1TmdLc2xTNmh2M2sKICAgICAgICAgTXNRL3Nub1lCeTRWSGhKbEZkWjZIQ0ttNlpWcTJWdmplemJoRHhOSHlycTA2dk9lMFJSb0FGbS92WUNMaGh3eVZuS2YKICAgICAgICAgUitYRUsvRWNZVFBHaHk3a2pMQjRRa294MjNMU3htdi9yWHEwZWZVMldMeVV2K1FSRTBEMFNZRGt4OW0vNkQvV3FnMUgKICAgICAgICAgVDZTcEttR3gxalNwRm9VbnBOOU83NVdqRmY0OEtFQkpGOHRTWkpmRHZMOVlDS0FISWdna3NhYVNVSzhtVkloK0dOU0IKICAgICAgICAgQU14UT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYNlVJNW5BSHVxd1AxOVk4bFk0cGVCZFBLaHNyZi9SM3dCZDZWK3o1V3VHUHc0UWU2UjAKCVcrN1BkTTk0aE1rVFF3UW44WDJIaEVEWWlpc1FWQ0krRG9PekF3WStLUT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1iNXdVUWU0aWhhTTRobHJoVkxMcTVQb2JFMW1lZWZtdTVFVzhwSlFQSjFuS0IxMGNyS2JsMlJQQ0l3WnpXMkx4YnJzb01YZGZXbi91S1lSdUNNMUVvPQpYLVJlY2VpdmVkOiBieSAxMC4yOC4yMTYuMTM3IHdpdGggU01UUCBpZCBwMTMxbXI4NDY0Njl3bWcuNTAuMTUxMDgyMjk5ODM4MzsKIFRodSwgMTYgTm92IDIwMTcgMDE6MDM6MTggLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPDIwMTcxMTA5MDUzNTUxLjk1N0Q0MjlDNTBEMUBkZDE3MzMyLmthc3NlcnZlci5jb20+CiA8ODVjNTQ2MzgtZDgyNS02YzFjLWE1MDQtMTM4OGY4Yzc3N2M5QGFwYWNoZS5vcmc+IDw3OTE2ODc4LnlMbU1jY0R5UzdAZ2lnYT4gPDExMDM0ODkwLmNZWEpxcGdwcWVAZ2lnYT4KSW4tUmVwbHktVG86IDwxMTAzNDg5MC5jWVhKcXBncHFlQGdpZ2E+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFRodSwgMTYgTm92IDIwMTcgMDk6MDM6MDcgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk13ZWpoYWt1RE5UdVYwTDFEdzRtQVNtaExyPVNmcWc3dkJKNGpYTUJ2dno9QUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IE1hdmVuIHJlc29sdmVyIGJyYW5jaCBjb25zb2xpZGF0aW9uClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQ1ZmUxMDIzMjA1MTA1NWUxNWU0MjAiCgotLTAwMWExMTQ1ZmUxMDIzMjA1MTA1NWUxNWU0MjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gVGh1IDE2IE5vdiAyMDE3IGF0IDA3OjUxLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3JvPQp0ZToKCj4gSSBqdXN0IHB1c2hlZCBhbiB1cGRhdGUgb2YgZGVwZW5kZW5jaWVzIGltYWdlIHRoYXQgc2hvd3MgdGhlIGV4dGVybmFsCj4gbWF2ZW4tCj4gcmVzb2x2ZXItcHJvdmlkZXIgKGluIHllbGxvdykgaW5zaWRlIHRoZSByZWFjdG9yIGRlcGVuZGVuY3kgZ3JhcGggKGluIGJsdT0KZSkKPgo+IFRoYXQgc2hvd3MgdGhlIGNoaWNrZW4gYW5kIGVnZyBpc3N1ZSBvbiByZWxlYXNpbmcgd2UnbGwgaGF2ZSBvbiBBUEkKPiBicmVha2luZwo+IGNoYW5nZS4gUGVvcGxlIGFsd2F5cyBidWlsZGluZyBmcm9tIHNvdXJjZSAobGlrZSBEZWJpYW4pIHdpbGwgaGF2ZSB0aGUKPiBpc3N1ZQo+IGFsc28uCj4KPiBGb3IgZGVtb3MsIHdoaWNoIGFyZSBub3QgcmVhbGx5IHB1Ymxpc2hlZCBkdXJpbmcgdGhlIHJlbGVhc2UgKGp1c3QgYXMKPiBkb2N1bWVudGF0aW9uKSwgZGlzYWJsaW5nIHRoZSBtb2R1bGUgaW4gdGhlIGJ1aWxkIHdoZW4gbmVjZXNzYXJ5IGlzCj4gc3VmZmljaWVudCwKPiB3b24ndCBjaGFuZ2UgbWFueSB0aGluZ3MuIEZvciBhbnQgdGFza3MsIGRpc2FibGluZyB0aGUgbW9kdWxlIHdpbGwgbm90Cj4gcHVibGlzaAo+IHRoZSBhcnRpZmFjdDogdGhpcyB3aWxsIGhhdmUgYSB2aXNpYmxlIGltcGFjdC4KCgpTaG91bGQgd2UganVzdCBiaXRlIHRoZSBidWxsZXQgYW5kIGJyaW5nIHJlc29sdmVyIGluLXRyZWUgYXMgbW9kdWxlcyBpbgptYXZlbiBjb3JlLi4uIGxlYXZpbmcgZGVtb3MgYW5kIGFudCB0YXNrcyBoZXJlPwoKCj4KPiBSZWdhcmRzLAo+Cj4gSGVydj1DMz1BOQo+Cj4gTGUgbWVyY3JlZGkgMTUgbm92ZW1icmUgMjAxNywgMjM6MDU6MTQgQ0VUIEhlcnY9QzM9QTkgQk9VVEVNWSBhID1DMz1BOWNyaT0KdCA6Cj4gPiBpdCBzZWVtcyBJIGhhdmUgbm90IGJlZW4gY2xlYXI6IEknbGwgdHJ5IHRvIGV4cGxhaW4gYmV0dGVyCj4gPgo+ID4gMS4gbWF2ZW4tcmVzb2x2ZXItYW50LXRhc2tzIGRlcGVuZHMgb24gbWF2ZW4tcmVzb2x2ZXItcHJvdmlkZXIgKGZyb20KPiBNYXZlbgo+ID4gY29yZSkKPiA+IDIuIG1hdmVuLXJlc29sdmVyLXByb3ZpZGVyICh0aGVuIE1hdmVuIGNvcmUpIGRlcGVuZHMgb24gbWF2ZW4tcmVzb2x2ZXIKPiA+Cj4gPiBpZiB3ZSBwdXQgbWF2ZW4tcmVzb2x2ZXItYW50LXRhc2tzIGluIHRoZSBzYW1lIHJlYWN0b3IgdGhhbgo+IG1hdmVuLXJlc29sdmVyLAo+ID4gd2UgY2FuJ3QgcmVsZWFzZSBhbnkgbWF2ZW4tcmVzb2x2ZXIgQVBJIGNoYW5nZSB0aGF0IGJyZWFrcwo+IG1hdmVuLXJlc29sdmVyLQo+ID4gcHJvdmlkZXIKPiA+Cj4gPiBleGFtcGxlOiBpZiB3ZSBtb3ZlIG1hdmVuLXJlc29sdmVyIGNvZGUgdG8gb3JnLmFwYWNoZS5tYXZlbiBqYXZhIHBhY2thZz0KZQo+IGluCj4gPiBtYXZlbi1yZXNvbHZlciAyLjAuMC1TTkFQU0hPVCwgd2UgbmVlZCBtYXZlbi1yZXNvbHZlci1wcm92aWRlcgo+ID4gNC4wLjAtU05BUFNIT1QgdGhhdCB1c2VzIG1hdmVuLXJlc29sdmVyIDIuMC4wLVNOQVBTSE9UIHdpdGggdGhpcyBuZXcgamE9CnZhCj4gPiBwYWNrYWdlLiBUaGVuIHRyeSB0byByZWxlYXNlIGFueXRoaW5nOiB5b3UgY2FuJ3QsIHVubGVzcyB5b3UgZG9uJ3QgdHJ5ID0KdG8KPiA+IHJlbGVhc2UgbWF2ZW4tIHJlc29sdmVyLWFudC10YXNrcwo+ID4KPiA+ICh0aGUgY29uc2VxdWVuY2Ugb24gdmVyc2lvbiBjb25zaXN0ZW5jeSBpcyBhbm90aGVyIHdheSB0byBkZXNjcmliZSB0aGUKPiA+IGlzc3VlLCBidXQgdGhhdCBpcyBtb3JlIHN1YnRsZSwgdGhlbiBJIGNob3NlIHRvIGRlc2NyaWJlIHRoZSBtb3N0IHZpc2liPQpsZQo+ID4gaXNzdWUsIHdpdGggQVBJIGJyZWFraW5nIGNoYW5nZSkKPiA+Cj4gPiBJTUhPLCBhbm90aGVyIGNvbnNlcXVlbmNlIGNvdWxkIGJlOiBtYXZlbi1yZXNvbHZlci1hbnQtdGFza3Mgd291bGQKPiBwZXJoYXBzCj4gPiBiZXR0ZXIgYmUgdmVyc2lvbm5lZCBsaWtlIG1hdmVuLXJlc29sdmVyLXByb3ZpZGVyCj4gPgo+ID4KPiA+IE1lcmdpbmcgcmVzb2x2ZXItZGVtb3MgaXMgcmVhbGx5IHRoZSBncmVhdCBiaWcgaWRlYTogd2l0aCB0aGF0IG1lcmdlLAo+ID4gbW9kaWZ5aW5nIG1hdmVuLXJyZXNvbHZlciBjYW4gaW1tZWRpYXRlbHkgYmUgdGVzdGVkIHdpdGggZGVtb3M6IHRoYXQnbGwKPiBiZQo+ID4gc28gbXVjaCBlYXNpZXIgdG8gbWFrZSBjaGFuZ2VzIHRvIG1hdmVuLXJlc29sdmVyIGNvZGUhCj4gPgo+ID4gUmVnYXJkcywKPiA+Cj4gPiBIZXJ2PUMzPUE5Cj4gPgo+ID4gTGUgbWVyY3JlZGkgMTUgbm92ZW1icmUgMjAxNywgMDk6MDI6MTIgQ0VUIE1pY2hhZWwgT3NpcG92IGEgPUMzPUE5Y3JpdCA9CjoKPiA+ID4gV2h5IC0xIG9uIHRoZSBBbnQgdGFza3M/Cj4gPiA+Cj4gPiA+IEFtIDIwMTctMTEtMTUgdW0gMDA6NTAgc2NocmllYiBIZXJ2PUMzPUE5IEJPVVRFTVk6Cj4gPiA+ID4gSSBhbnN3ZXJlZCBvbiB0aGUgbWFpbGluZyBsaXN0IGFuZCBvbiB0aGUgMiBKaXJhIGlzc3Vlcwo+ID4gPiA+IEluIHN1bW1hcnksICsxIHRvIG1lcmdlIGRlbW9zLCAtMSB0byBtZXJnZSBhbnQtdGFza3MKPiA+ID4gPgo+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4KPiA+ID4gPiBIZXJ2PUMzPUE5Cj4gPiA+ID4KPiA+ID4gPiBMZSBtYXJkaSAxNCBub3ZlbWJyZSAyMDE3LCAxODoxOTo0MCBDRVQgTWFuZnJlZCBNb3NlciBhID1DMz1BOWNyaXQgPQo6Cj4gPiA+ID4+IEFueSBmZWVkYmFjayBvciBzaG91bGQgSSBqdXN0IGdvIGFoZWFkIHdpdGggdGhlIGNsZWFudXA/Cj4gPiA+ID4+Cj4gPiA+ID4+IE1hbmZyZWQKPiA+ID4gPj4KPiA+ID4gPj4gTWFuZnJlZCBNb3NlciB3cm90ZSBvbiAyMDE3LTExLTA4IDIxOjM1Ogo+ID4gPiA+Pj4gSGkgYWxsLAo+ID4gPiA+Pj4KPiA+ID4gPj4+IEkgaGF2ZSBzdGFydGVkIGFuZCBtYWRlIGdvb2QgcHJvZ3Jlc3Mgb24gZ2V0dGluZyBNYXZlbiByZXNvbHZlciBhPQpsbAo+ID4gPiA+Pj4gaW50bwo+ID4gPiA+Pj4gdGhlIG1hc3RlciBicmFuY2ggaW5zdGVhZCBvZiBoYXZpbmcgbWFzdGVyLCBkZW1vcyBhbmQgYW50LXRhc2tzIGk9Cm4KPiA+ID4gPj4+IHNlcGFyYXRlIGJyYW5jaGVzLgo+ID4gPiA+Pj4KPiA+ID4gPj4+IERldGFpbHMgYXJlIHRyYWNrZWQgaW4KPiA+ID4gPj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTVJFU09MVkVSLTI4Cj4gPiA+ID4+Pgo+ID4gPiA+Pj4gQWxsIG9mIGl0IGlzIG5vdyBpbiBhIG5ldyBicmFuY2ggY2FsbGVkIG1hc3Rlci1hbGwgZm9yIHlvdSB0byBzZWU9Ci4KPiA+ID4gPj4+Cj4gPiA+ID4+PiBJIGFtIG5vdyB3b25kZXJpbmcgd2hhdCB0aGUgbmV4dCBzdGVwcyBhcmUuIEkgYWRkZWQgd2hhdCBJIHRoaW5rCj4gPiA+ID4+PiBzaG91bGQKPiA+ID4gPj4+IGhhcHBlbiBuZXh0IGluIHRoZSBpc3N1ZSBpbiBhIGNvbW1lbnQgYW5kIHdvdWxkIGFwcHJlY2lhdGUgYW55Cj4gaW5wdXQKPiA+ID4gPj4+IG9uCj4gPiA+ID4+PiB0aGUgY3VycmVudCBzZXR1cCBhbmQgbmV4dCBzdGVwcy4KPiA+ID4gPj4+Cj4gPiA+ID4+PiBBbnkgaGVscCB3b3VsZCBiZSBhcHByZWNpYXRlZC4KPiA+ID4gPj4+Cj4gPiA+ID4+PiBtYW5mcmVkCj4gPiA+ID4+Cj4gPiA+ID4+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPgo+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0tCj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPgo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4gLS0KU2VudCBmcm9tIG15IHBob25lCgotLTAwMWExMTQ1ZmUxMDIzMjA1MTA1NWUxNWU0MjAtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDA1Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gU2VwIDE4IDE1OjQ2OjUyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDA1Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAxOTdEN0Y5RjYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxOCBTZXAgMjAxNyAxNTo0Njo1MiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDIwMjAyIGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IFNlcCAyMDE3IDE1OjQ2OjUxIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMDEyNiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBTZXAgMjAxNyAxNTo0Njo1MSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIwMTE0IGludm9rZWQgYnkgdWlkIDk5KTsgMTggU2VwIDIwMTcgMTU6NDY6NTEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDE4IFNlcCAyMDE3IDE1OjQ2OjUxICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMDUyNkExODM4MUIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE4IFNlcCAyMDE3IDE1OjQ2OjUxICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS44NzkKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjg3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFNBZzMtQUY4WEhDUyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMTggU2VwIDIwMTcgMTU6NDY6NDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC12azAtZjQxLmdvb2dsZS5jb20gKG1haWwtdmswLWY0MS5nb29nbGUuY29tIFsyMDkuODUuMjEzLjQxXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDA1OEZFNUYyOTgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE4IFNlcCAyMDE3IDE1OjQ2OjQ2ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXZrMC1mNDEuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgdzIzc280Nzg5NjN2a3cuMgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE4IFNlcCAyMDE3IDA4OjQ2OjQ1IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPU1xVk15Sk9WNGlLbWYvNUNWYk05ZUh3blQ3U3oxYjQ0R3lhbTlvYWpmSmc9OwogICAgICAgIGI9V0NRQkhLUHRseC93RTBucmhKelFOWjZuaW5sSStyaGdGUFJ0NTVVZ0JiUzVxd2VQVDZDSW5tUG43SDd2WTB3VlhUCiAgICAgICAgIHE0RTV4YSt0WXRRTTZwd3JyU0lVbFlGUEpyZ29kK0Y2dHFDeXlzQkNYczhCZWZyZE9VUTFsWTVsWk9MNVVEQmNNeVFjCiAgICAgICAgIGk5T3JiQUt4Y2NqVElzNmhBY3YyU2hTN0IzMnh4dXZNMTJCcHQ2bFZSdGtNK0RlTmw2cWxTeUVxT3JPbmkxM3NkQzlxCiAgICAgICAgIEdYcVJvK1NvQWxPMVQydlFiaEIvMGZsUk5BbTV2V2VBdGZ6cGR2SlRPUy9LS3NwRVl2dFY3SDl3VElsNEFrMlZJTXk2CiAgICAgICAgIDd4WGVuZWlvMlJ3eU9paXUxbHl6UnVoc2VYK2ZmUUp3WTRqekR1VjM0NHBadS91VTdkTFFHa0YvZk41a2FiVTAzUlFGCiAgICAgICAgIEp3QkE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPU1xVk15Sk9WNGlLbWYvNUNWYk05ZUh3blQ3U3oxYjQ0R3lhbTlvYWpmSmc9OwogICAgICAgIGI9V0xwZzYxTGp2Q3BMWUc1bGlYMUpJbFVvVXJGZ2ZOM0hVck01eGtsVlJ6dVVpRHNSQzFQOGgrODFVMytXaWpDK0srCiAgICAgICAgIHlUS1NRRFg0ZmJGRXZaam9iWFEyVE5CTEc5L2ZGQnBzOEtjUW1EbXU4Q0VGTTFhVncvQ2lnTmpyWmRINkUrS2ZSbmcxCiAgICAgICAgIEFQc2F5alFQVUVudDRJSW1YZnZqNlZCdVB4U004RWovN1BXV3prN1ZOSktqeDFqaSs3VCtuUy9WczU4TklpQVFzZi96CiAgICAgICAgIHpYaWMyNU5ZbEJwdWhyZGE0NWtKejMzR3o5MmliNEltU2hoOG91VFZDOWJmaVBOZWRIQzFpVENwcGVMb09MRng1MEJkCiAgICAgICAgIDFmbm5nT0U3MnVXUjE5MlFUOWM3Q1VYZlBjaXFQeEYyYkxIQktDcm5CWlVPbDdEelQ2QzBWVy9aY1dpV2VrdG1xQ2kyCiAgICAgICAgIGtVV3c9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWlwdWZkSEhuUVcxNkJjKzNDckJOWG5Xc0Q4WmhEZ3FvdjhDdHplbUdXQzF2NDkzMjNwCglNYUt5cjdPK0NIZC9yMXltNWxpMzVBbDFXL2QyMzYxdjBnNVhJZ0xuN3c9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRRFVFa1NPN1drK1BLZllodTdJUks4NzA5N1U0Y3R3cTFVb0RYUWpBelpQdVk1L2hKQlRON0MxandzSi96Mys2ZU5lUXN3MWtzNzhJa01PVExtZDVwTT0KWC1SZWNlaXZlZDogYnkgMTAuMzEuNTAuMTM2IHdpdGggU01UUCBpZCB5MTMwbXIyNTI5MTY0MHZreS4xOTcuMTUwNTc0OTU5ODcxNzsKIE1vbiwgMTggU2VwIDIwMTcgMDg6NDY6MzggLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjE3Ni44Mi4yNTIgd2l0aCBIVFRQOyBNb24sIDE4IFNlcCAyMDE3IDA4OjQ2OjM4IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8RjFGOEIzQ0YtRERBQy00NEJBLUFFQjctNDEyMkM4ODdDNEFCQGhvbnRvbi5vcmc+ClJlZmVyZW5jZXM6IDxDQStuUG5Nd01DcU9fRXRjQlc1XzNyTTcxLXRDcml0cDRVa3N5ZlBtREdBWXI2eHo9b1FAbWFpbC5nbWFpbC5jb20+CiA8RjFGOEIzQ0YtRERBQy00NEJBLUFFQjctNDEyMkM4ODdDNEFCQGhvbnRvbi5vcmc+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTggU2VwIDIwMTcgMDg6NDY6MzggLTA3MDAKTWVzc2FnZS1JRDogPENBK25Qbk13Zl9CZnRZdXMtcm5Rck83bzUrZHVHRnowVkVhN05pb2hHMV9fWVV6cmM1d0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFVuZGVyc3RhbmRpbmcgTU5HLTYyMDkgKHdhczogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xKQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0MzhmYTJmM2NkODUwNTU5NzhhNWQ1IgoKLS0wMDFhMTE0MzhmYTJmM2NkODUwNTU5NzhhNWQ1CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpPaCBpZiBvbmx5Li4uIHRoZXJlIGlzIHNvbWUgc3VidGxldGllcyBnb2luZyBvbiBoZXJlLgoKQ2xhc3NlcyBhcmUgbWFuYWdlZCBieSB0aGUgInBsZXh1cyIgLyAiY2xhc3N3b3JsZHMiIHN0dWZmLCBzbyB5b3UgY2Fubm90Cm92ZXJyaWRlIGNvcmUgY2xhc3NlcyBldGMuCgpUaGUgcHJvYmxlbSBpcyB3aGF0IGV4dGVuc2lvbnMgYXJlIHZpc2libGUgYW5kIGZyb20gd2hpY2ggY2xhc3Nsb2FkZXIKCk9uIDE4IFNlcHRlbWJlciAyMDE3IGF0IDA4OjQyLCBDaGFybGVzIEhvbnRvbiA8Y2hhc0Bob250b24ub3JnPiB3cm90ZToKCj4gRnJvbSBhIHNlY3VyaXR5IHBlcnNwZWN0aXZlLCBJIHdvdWxkIGV4cGVjdCB0aGF0IGNvcmUgY2xhc3NlcyBjYW4gbm90IGJlCj4gb3ZlcnJpZGRlbiBieSBleHRlbnNpb25zIG9yIHBsdWdpbnMuICBMaWtld2lzZSwgZXh0ZW5zaW9uIGNsYXNzZXMgY2FuIG5vdAo+IGJlIG92ZXJyaWRkZW4gYnkgcGx1Z2lucy4KPgo+IEdpdmVuIHRoZSB1c2UgY2FzZSBvZiBkZWZhdWx0aW5nIHJlc291cmNlcywgSSB3b3VsZCBleHBlY3QgdGhhdCB0aGUgcGx1Z2luCj4gcmVzb3VyY2VzIGFyZSBmaXJzdCwgZm9sbG93ZWQgYnkgcGx1Z2luIHNwZWNpZmljIGV4dGVuc2lvbnMsIGZvbGxvd2VkIGJ5Cj4gZ2xvYmFsIGV4dGVuc2lvbnMsIGZpbmFsbHkgY29yZSBtYXZlbi4gIChUaGlzIGFsbG93cyByZXNvdXJjZXMgdG8gYmUKPiBzcGVjaWFsaXplZC4pCj4KPiByZWdhcmRzLAo+IGNoYXMKPgo+ID4gT24gU2VwIDE4LCAyMDE3LCBhdCAzOjIwIEFNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+Cj4gPiBIbW1tLCBzbyBJIGRpZCBzb21lIGV4cGVyaW1lbnRzOgo+ID4KPiA+IElmIHlvdSB3YW50IHRvIHJpZGUgYWxvbmcsIHRoZSBleHBlcmltZW50cyBhcmUgYXQ6Cj4gPgo+ID4gaHR0cHM6Ly9naXRodWIuY29tL3N0ZXBoZW5jL21uZy02MjA5Cj4gPgo+ID4gU28gYmFzaWNhbGx5IEkgaGF2ZSBhIHBsdWdpbiB0aGF0IGRvZXMgdGhyZWUgZGlmZmVyZW50IHRlc3RzOgo+ID4KPiA+ICAgICAgICBnZXRMb2coKS5pbmZvKCJJbmplY3RlZCBieSBAQ29tcG9uZW50OiIpOwo+ID4gICAgICAgIGZvciAoTGlmZWN5Y2xlIGwgOiBsaWZlY3ljbGVzKSB7Cj4gPiAgICAgICAgICAgIGlmIChsLmdldElkKCkuc3RhcnRzV2l0aCgibW5nLTYyMDktIikpIHsKPiA+ICAgICAgICAgICAgICAgIGdldExvZygpLmluZm8oIiAgIiArIGwuZ2V0SWQoKS5zdWJzdHJpbmcoOSkpOwo+ID4gICAgICAgICAgICB9Cj4gPiAgICAgICAgfQo+ID4gICAgICAgIGdldExvZygpLmluZm8oIiIpOwo+ID4gICAgICAgIGdldExvZygpLmluZm8oIk9uIFBsdWdpbiBDbGFzcyBMb2FkZXI6Iik7Cj4gPiAgICAgICAgdHJ5IHsKPiA+ICAgICAgICAgICAgQ2xhc3NMb2FkZXIgdGNjbCA9IExpc3RNb2pvLmNsYXNzLmdldENsYXNzTG9hZGVyKCk7Cj4gPiAgICAgICAgICAgIGZvciAoVVJMIHVybCA6Cj4gPiBDb2xsZWN0aW9ucy5saXN0KHRjY2wuZ2V0UmVzb3VyY2VzKCJNRVRBLUlORi9wcm9iZS50eHQiKSkpIHsKPiA+ICAgICAgICAgICAgICAgIElucHV0U3RyZWFtIGlzID0gdXJsLm9wZW5TdHJlYW0oKTsKPiA+ICAgICAgICAgICAgICAgIHRyeSB7Cj4gPiAgICAgICAgICAgICAgICAgICAgZ2V0TG9nKCkuaW5mbygiICAiICsgSU9VdGlsLnRvU3RyaW5nKGlzKS50cmltKCkpOwo+ID4gICAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKPiA+ICAgICAgICAgICAgICAgICAgICBpcy5jbG9zZSgpOwo+ID4gICAgICAgICAgICAgICAgfQo+ID4gICAgICAgICAgICB9Cj4gPiAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgewo+ID4gICAgICAgICAgICB0aHJvdyBuZXcgTW9qb0V4ZWN1dGlvbkV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSwgZSk7Cj4gPiAgICAgICAgfQo+ID4gICAgICAgIGdldExvZygpLmluZm8oIiIpOwo+ID4gICAgICAgIGdldExvZygpLmluZm8oIk9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoiKTsKPiA+ICAgICAgICB0cnkgewo+ID4gICAgICAgICAgICBDbGFzc0xvYWRlciB0Y2NsID0KPiA+IFRocmVhZC5jdXJyZW50VGhyZWFkKCkuZ2V0Q29udGV4dENsYXNzTG9hZGVyKCk7Cj4gPiAgICAgICAgICAgIGZvciAoVVJMIHVybCA6Cj4gPiBDb2xsZWN0aW9ucy5saXN0KHRjY2wuZ2V0UmVzb3VyY2VzKCJNRVRBLUlORi9wcm9iZS50eHQiKSkpIHsKPiA+ICAgICAgICAgICAgICAgIElucHV0U3RyZWFtIGlzID0gdXJsLm9wZW5TdHJlYW0oKTsKPiA+ICAgICAgICAgICAgICAgIHRyeSB7Cj4gPiAgICAgICAgICAgICAgICAgICAgZ2V0TG9nKCkuaW5mbygiICAiICsgSU9VdGlsLnRvU3RyaW5nKGlzKS50cmltKCkpOwo+ID4gICAgICAgICAgICAgICAgfSBmaW5hbGx5IHsKPiA+ICAgICAgICAgICAgICAgICAgICBpcy5jbG9zZSgpOwo+ID4gICAgICAgICAgICAgICAgfQo+ID4gICAgICAgICAgICB9Cj4gPiAgICAgICAgfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgewo+ID4gICAgICAgICAgICB0aHJvdyBuZXcgTW9qb0V4ZWN1dGlvbkV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSwgZSk7Cj4gPiAgICAgICAgfQo+ID4KPiA+Cj4gPiBGaXJzdCBvZmYsIEkgaGlqYWNrIHRoZSBAQ29tcG9uZW50IGluamVjdGlvbiB3aXRoIHNvbWUgZmFrZSAibGlmZWN5Y2xlcyIKPiB0bwo+ID4gc2VlIHdoYXQgInBsZXh1cyIgZXhwb3NlcyB0byB0aGUgcGx1Z2lucy4KPiA+Cj4gPiBTZWNvbmQsIEkgbG9vayBhdCB0aGUgcmVzb3VyY2VzIHZpc2libGUgZnJvbSB0aGUgcGx1Z2luJ3MgY2xhc3Nsb2FkZXIuCj4gPgo+ID4gRmluYWxseSwgSSBsb29rIGF0IHRoZSByZXNvdXJjZXMgdmlzaWJsZSBmcm9tIHRoZSBUQ0NMLgo+ID4KPiA+IEhlcmUncyB3aGF0IDMuNS4wIG91dHB1dHM6Cj4gPgo+ID4gW0lORk9dCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFtJTkZPXSBCdWlsZGluZyBCb3RoIGV4dGVuc2lvbnMuIE9yZGVyOiBwbHVnaW4xLCBwbHVnaW4yIDEuMC1TTkFQU0hPVAo+ID4gW0lORk9dCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFtJTkZPXQo+ID4gW0lORk9dIC0tLSBwbHVnaW4xOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlMSAtLS0KPiA+IFtJTkZPXSBJbmplY3RlZCBieSBAQ29tcG9uZW50Ogo+ID4gW0lORk9dICAgcGx1Z2luMQo+ID4gW0lORk9dCj4gPiBbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKPiA+IFtJTkZPXSAgIHBsdWdpbjEKPiA+IFtJTkZPXQo+ID4gW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKPiA+IFtJTkZPXSAgIHBsdWdpbjEKPiA+IFtJTkZPXQo+ID4gW0lORk9dIC0tLSBwbHVnaW4yOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlMSAtLS0KPiA+IFtJTkZPXSBJbmplY3RlZCBieSBAQ29tcG9uZW50Ogo+ID4gW0lORk9dICAgcGx1Z2luMgo+ID4gW0lORk9dCj4gPiBbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKPiA+IFtJTkZPXSAgIHBsdWdpbjIKPiA+IFtJTkZPXQo+ID4gW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKPiA+IFtJTkZPXSAgIHBsdWdpbjIKPiA+IFtJTkZPXQo+ID4gW0lORk9dCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFtJTkZPXSBCdWlsZGluZyBPbmx5IHBsdWdpbjEgZXh0ZW5zaW9ucy4gT3JkZXI6IHBsdWdpbjEsIHBsdWdpbjIKPiA+IDEuMC1TTkFQU0hPVAo+ID4gW0lORk9dCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFtJTkZPXQo+ID4gW0lORk9dIC0tLSBwbHVnaW4xOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlMiAtLS0KPiA+IFtJTkZPXSBJbmplY3RlZCBieSBAQ29tcG9uZW50Ogo+ID4gW0lORk9dICAgcGx1Z2luMQo+ID4gW0lORk9dCj4gPiBbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKPiA+IFtJTkZPXSAgIHBsdWdpbjEKPiA+IFtJTkZPXQo+ID4gW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKPiA+IFtJTkZPXSAgIHBsdWdpbjEKPiA+IFtJTkZPXQo+ID4gW0lORk9dIC0tLSBwbHVnaW4yOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlMiAtLS0KPiA+IFtJTkZPXSBJbmplY3RlZCBieSBAQ29tcG9uZW50Ogo+ID4gW0lORk9dICAgcGx1Z2luMgo+ID4gW0lORk9dICAgcGx1Z2luMQo+ID4gW0lORk9dICAgZXh0amFyMgo+ID4gW0lORk9dICAgZXh0amFyMQo+ID4gW0lORk9dCj4gPiBbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKPiA+IFtJTkZPXSAgIHBsdWdpbjIKPiA+IFtJTkZPXSAgIGV4dGphcjIKPiA+IFtJTkZPXSAgIGV4dGphcjEKPiA+IFtJTkZPXQo+ID4gW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKPiA+IFtJTkZPXSAgIHBsdWdpbjIKPiA+IFtJTkZPXSAgIGV4dGphcjIKPiA+IFtJTkZPXSAgIGV4dGphcjEKPiA+IFtJTkZPXQo+ID4gW0lORk9dCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFtJTkZPXSBCdWlsZGluZyBCb3RoIGV4dGVuc2lvbnMuIE9yZGVyOiBwbHVnaW4yLCBwbHVnaW4xIDEuMC1TTkFQU0hPVAo+ID4gW0lORk9dCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFtJTkZPXQo+ID4gW0lORk9dIC0tLSBwbHVnaW4yOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlMyAtLS0KPiA+IFtJTkZPXSBJbmplY3RlZCBieSBAQ29tcG9uZW50Ogo+ID4gW0lORk9dICAgcGx1Z2luMgo+ID4gW0lORk9dCj4gPiBbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKPiA+IFtJTkZPXSAgIHBsdWdpbjIKPiA+IFtJTkZPXQo+ID4gW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKPiA+IFtJTkZPXSAgIHBsdWdpbjIKPiA+IFtJTkZPXQo+ID4gW0lORk9dIC0tLSBwbHVnaW4xOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlMyAtLS0KPiA+IFtJTkZPXSBJbmplY3RlZCBieSBAQ29tcG9uZW50Ogo+ID4gW0lORk9dICAgcGx1Z2luMQo+ID4gW0lORk9dCj4gPiBbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKPiA+IFtJTkZPXSAgIHBsdWdpbjEKPiA+IFtJTkZPXQo+ID4gW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKPiA+IFtJTkZPXSAgIHBsdWdpbjEKPiA+IFtJTkZPXQo+ID4gW0lORk9dCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFtJTkZPXSBCdWlsZGluZyBCb3RoIGV4dGVuc2lvbnMuIE9yZGVyOiBwbHVnaW4xLCBwbHVnaW4yLiBFeHRyYQo+IGRlcGVuZGVuY3kKPiA+IGluIHBsdWdpbjEgMS4wLVNOQVBTSE9UCj4gPiBbSU5GT10KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gW0lORk9dCj4gPiBbSU5GT10gLS0tIHBsdWdpbjE6MS4wLVNOQVBTSE9UOmxpc3QgKGRlZmF1bHQpIEAgcHJvYmU0IC0tLQo+ID4gW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6Cj4gPiBbSU5GT10gICBleHRqYXIyCj4gPiBbSU5GT10gICBwbHVnaW4xCj4gPiBbSU5GT10KPiA+IFtJTkZPXSBPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOgo+ID4gW0lORk9dICAgcGx1Z2luMQo+ID4gW0lORk9dICAgZXh0amFyMgo+ID4gW0lORk9dCj4gPiBbSU5GT10gT24gVGhyZWFkIENvbnRleHQgQ2xhc3MgTG9hZGVyOgo+ID4gW0lORk9dICAgcGx1Z2luMQo+ID4gW0lORk9dICAgZXh0amFyMgo+ID4gW0lORk9dCj4gPiBbSU5GT10gLS0tIHBsdWdpbjI6MS4wLVNOQVBTSE9UOmxpc3QgKGRlZmF1bHQpIEAgcHJvYmU0IC0tLQo+ID4gW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6Cj4gPiBbSU5GT10gICBwbHVnaW4yCj4gPiBbSU5GT10KPiA+IFtJTkZPXSBPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOgo+ID4gW0lORk9dICAgcGx1Z2luMgo+ID4gW0lORk9dCj4gPiBbSU5GT10gT24gVGhyZWFkIENvbnRleHQgQ2xhc3MgTG9hZGVyOgo+ID4gW0lORk9dICAgcGx1Z2luMgo+ID4gW0lORk9dCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+Cj4gPiBOb3cgaWYgd2UgcnVuIHdpdGggMy41LjEgKHdoaWNoIGNvbnRhaW5zIHRoZSBmaXggZm9yIE1ORy02MjA5KQo+ID4KPiA+IFtJTkZPXQo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBbSU5GT10gQnVpbGRpbmcgQm90aCBleHRlbnNpb25zLiBPcmRlcjogcGx1Z2luMSwgcGx1Z2luMiAxLjAtU05BUFNIT1QKPiA+IFtJTkZPXQo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBbSU5GT10KPiA+IFtJTkZPXSAtLS0gcGx1Z2luMToxLjAtU05BUFNIT1Q6bGlzdCAoZGVmYXVsdCkgQCBwcm9iZTEgLS0tCj4gPiBbSU5GT10gSW5qZWN0ZWQgYnkgQENvbXBvbmVudDoKPiA+IFtJTkZPXSAgIHBsdWdpbjIKPiA+IFtJTkZPXSAgIHBsdWdpbjEKPiA+IFtJTkZPXSAgIGV4dGphcjIKPiA+IFtJTkZPXSAgIGV4dGphcjEKPiA+Cj4gPiBJIHdvdWxkIGhhdmUgZXhwZWN0ZWQgdGhlIHNlcXVlbmNlIHRvIGJlOiAvYnVpbGQvZXh0ZW5zaW9ucyBpbiBwb20gb3JkZXIKPiA+IGZvbGxvd2VkIGJ5IC9idWlsZC9wbHVnaW5zL3BsdWdpbltleHRlbnNpb25zPXRydWVdIGluIHBvbSBvcmRlci4gVGhpcwo+IHNlZW1zCj4gPiB0byBiZSB0aGUgcmV2ZXJzZSBvcmRlci4gSXMgdGhpcyBhIGJ1Zz8KPiA+Cj4gPiBbSU5GT10KPiA+IFtJTkZPXSBPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOgo+ID4gW0lORk9dICAgcGx1Z2luMQo+ID4KPiA+IFdlIGhhdmVuJ3QgY2hhbmdlZCBob3cgdGhlIHBsdWdpbiBjbGFzc2xvYWRlciBnZXRzIGluc3RhbnRpYXRlZCBpbgo+ID4gTU5HLTYyMDkuIEl0IHNlZW1zIHN0cmFuZ2UgdG8gbWUgdGhhdCB0aGlzIGV4Y2x1ZGVzIHRoZQo+ID4gL2J1aWxkL2V4dGVuc2lvbnMuLi4gb24gdGhlIG90aGVyIGhhbmQgdGhpcyBjb3VsZCBiZSBhIHNpZGUtZWZmZWN0IG9mIGhvdwo+ID4gdGhlIGNsYXNzbG9hZGVyIGdldHMgaW5zdGFudGlhdGVkICh3aGljaCB3b3VsZCBtZWFuIHVzaW5nIHRoZSBwbHVnaW4ncwo+ID4gY2xhc3Nsb2FkZXIgaXMgcHJvYmFibHkgYSBiYWQgaWRlYSwgcGVyaGFwcyB3ZSBuZWVkIHRvIHByb3ZpZGUgdGhlCj4gYWJpbGl0eQo+ID4gdG8gaW5qZWN0IHRoZSBjbGFzc2xvYWRlciBhcyBhIEBDb21wb25lbnQgb3Igc29tZXRoaW5nKQo+ID4KPiA+IFtJTkZPXQo+ID4gW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKPiA+IFtJTkZPXSAgIGV4dGphcjEKPiA+IFtJTkZPXSAgIGV4dGphcjIKPiA+Cj4gPiBPSywgd2Ugc2VlIHRoZSBjaGFuZ2UgdnMgMy41LjAgYXMgdGhpcyBpcyBub3cgdGhlIHByb2plY3QgcmVhbG0uLi4KPiB0aG91Z2ggSQo+ID4gd291bGQgaGF2ZSBleHBlY3RlZCB0aGUgcHJvamVjdCByZWFsbSB0byBhbHNvIGluY2x1ZGUgdGhlIHBsdWdpbnMgdGhhdAo+IHdlcmUKPiA+IG1hcmtlZCBhcyBleHRlbnNpb25zLi4uCj4gPgo+ID4gW0lORk9dCj4gPiBbSU5GT10gLS0tIHBsdWdpbjI6MS4wLVNOQVBTSE9UOmxpc3QgKGRlZmF1bHQpIEAgcHJvYmUxIC0tLQo+ID4gW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6Cj4gPiBbSU5GT10gICBwbHVnaW4yCj4gPiBbSU5GT10gICBwbHVnaW4xCj4gPiBbSU5GT10gICBleHRqYXIyCj4gPiBbSU5GT10gICBleHRqYXIxCj4gPiBbSU5GT10KPiA+IFtJTkZPXSBPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOgo+ID4gW0lORk9dICAgcGx1Z2luMgo+ID4gW0lORk9dCj4gPiBbSU5GT10gT24gVGhyZWFkIENvbnRleHQgQ2xhc3MgTG9hZGVyOgo+ID4gW0lORk9dICAgZXh0amFyMQo+ID4gW0lORk9dICAgZXh0amFyMgo+ID4gW0lORk9dCj4gPiBbSU5GT10KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gW0lORk9dIEJ1aWxkaW5nIE9ubHkgcGx1Z2luMSBleHRlbnNpb25zLiBPcmRlcjogcGx1Z2luMSwgcGx1Z2luMgo+ID4gMS4wLVNOQVBTSE9UCj4gPiBbSU5GT10KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gW0lORk9dCj4gPiBbSU5GT10gLS0tIHBsdWdpbjE6MS4wLVNOQVBTSE9UOmxpc3QgKGRlZmF1bHQpIEAgcHJvYmUyIC0tLQo+ID4gW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6Cj4gPiBbSU5GT10gICBwbHVnaW4xCj4gPiBbSU5GT10gICBleHRqYXIyCj4gPiBbSU5GT10gICBleHRqYXIxCj4gPgo+ID4gQXMgZXhwZWN0ZWQsIGdpdmVuIHRoYXQgcGx1Z2luMiBpcyBub3QgYW4gZXh0ZW5zaW9uIGhlcmUgKGFwYXJ0IGZyb20gdGhlCj4gPiBvcmRlciBiZWluZyByZXZlcnNlIG9mIHdoYXQgSSBleHBlY3QpCj4gPgo+ID4gW0lORk9dCj4gPiBbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKPiA+IFtJTkZPXSAgIHBsdWdpbjEKPiA+IFtJTkZPXQo+ID4gW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKPiA+IFtJTkZPXSAgIGV4dGphcjIKPiA+IFtJTkZPXSAgIGV4dGphcjEKPiA+IFtJTkZPXQo+ID4gW0lORk9dIC0tLSBwbHVnaW4yOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlMiAtLS0KPiA+IFtJTkZPXSBJbmplY3RlZCBieSBAQ29tcG9uZW50Ogo+ID4gW0lORk9dICAgcGx1Z2luMgo+ID4gW0lORk9dICAgcGx1Z2luMQo+ID4gW0lORk9dICAgZXh0amFyMgo+ID4gW0lORk9dICAgZXh0amFyMQo+ID4KPiA+IEFzIGV4cGVjdGVkIChtb2R1bG8gb3JkZXIpIGJlY2F1c2UgYSBwbHVnaW4gc2hvdWxkIHNlZSBhbnkgc2VsZi1kZWZpbmVkCj4gPiBleHRlbnNpb25zLiBJIHdvdWxkIGV4cGVjdCB0aGUgb3JkZXIgdG8gYmUgcGx1Z2luMiwgZXh0amFyMSwgZXh0amFyMiwKPiA+IHBsdWdpbjEgKGJlY2F1c2UgdGhlIHBsdWdpbiBpcyBub3QgYW4gZXh0ZW5zaW9uLCBpdCBzaG91bGQgaGF2ZSBpdHMKPiA+IGV4dGVuc2lvbnMgYXMgcHJpb3JpdHkgb3ZlciB0aGUgcHJvamVjdCByZWFsbXMncykKPiA+Cj4gPiBbSU5GT10KPiA+IFtJTkZPXSBPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOgo+ID4gW0lORk9dICAgcGx1Z2luMgo+ID4gW0lORk9dICAgZXh0amFyMgo+ID4gW0lORk9dICAgZXh0amFyMQo+ID4KPiA+IFdBVCEgb2ssIHRoaXMgSSBkbyBub3QgdW5kZXJzdGFuZC4gU29tZXRoaW5nIGlzIHdyb25nIHNvbWV3aGVyZSwgZWl0aGVyCj4gPiBwbHVnaW4xJ3MgY2xhc3Nsb2FkZXIgc2hvdWxkIGFsc28gaW5jbHVkZSBleHRqYXIyIGFuZCBleHRqYXIxIG9yIHRoaXMgb25lCj4gPiBzaG91bGRuJ3QuIEFuZCBzaW5jZSB3ZSBoYXZlIGV4dGphcjEgYW5kIGV4dGphcjIgd2hlcmUgaXMgcGx1Z2luMT8gKGlmCj4gdGhlCj4gPiBpbmNsdXNpb24gaXMgY29ycmVjdCBoZXJlIEkgZXhwZWN0IHBsdWdpbjIsIGV4dGphcjEsIGV4dGphcjIsIHBsdWdpbjEgYXMKPiBhCj4gPiBwbHVnaW4gdGhhdCBpcyBub3QgYW4gZXh0ZW5zaW9uIHBsdWdpbiBzaG91bGQgaGF2ZSBpdHMgb3duIGltcGxlbWVudGF0aW9uCj4gPiBmaXJzdCBmb2xsb3dlZCB0aGVuIGJ5IC9idWlsZC9leHRlbnNpb25zIGluIHBvbSBvcmRlciBhbmQgdGhlbgo+ID4gL2J1aWxkL3BsdWdpbnMvcGx1Z2luW2V4dGVuc2lvbj09dHJ1ZV0KPiA+Cj4gPiBUaGlzIGlzIG1ha2luZyBubyBzZW5zZSBhdCBhbGwhCj4gPgo+ID4gW0lORk9dCj4gPiBbSU5GT10gT24gVGhyZWFkIENvbnRleHQgQ2xhc3MgTG9hZGVyOgo+ID4gW0lORk9dICAgcGx1Z2luMgo+ID4gW0lORk9dICAgZXh0amFyMgo+ID4gW0lORk9dICAgZXh0amFyMQo+ID4KPiA+IFNvIFRDQ0wgaXMgdGhlIHBsdWdpbiBjbGFzc2xvYWRlciBoZXJlIGFzIGV4cGVjdGVkCj4gPgo+ID4gW0lORk9dCj4gPiBbSU5GT10KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gW0lORk9dIEJ1aWxkaW5nIEJvdGggZXh0ZW5zaW9ucy4gT3JkZXI6IHBsdWdpbjIsIHBsdWdpbjEgMS4wLVNOQVBTSE9UCj4gPiBbSU5GT10KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gW0lORk9dCj4gPiBbSU5GT10gLS0tIHBsdWdpbjI6MS4wLVNOQVBTSE9UOmxpc3QgKGRlZmF1bHQpIEAgcHJvYmUzIC0tLQo+ID4gW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6Cj4gPiBbSU5GT10gICBwbHVnaW4yCj4gPiBbSU5GT10gICBwbHVnaW4xCj4gPiBbSU5GT10gICBleHRqYXIyCj4gPiBbSU5GT10gICBleHRqYXIxCj4gPgo+ID4gSSBub3RlIHRoYXQgdGhlIGNoYW5nZSBpbiBwb20gb3JkZXIgaGFzIGhhZCBubyBlZmZlY3Qgb24gdGhlIGNvbXBvbmVudAo+ID4gc2VxdWVuY2UuIFRoaXMgbGVhZHMgbWUgdG8gc3VzcGVjdCB0aGF0IHBsZXh1cyBoYXMgc29tZSBydWxlIHRoYXQgaXMKPiA+IGRlZmluaW5nIHRoZSBzZXF1ZW5jaW5nLi4uIGl0IHdvdWxkIGJlIGdvb2QgaWYgd2UgY291bGQgZG9jdW1lbnQgdGhhdAo+ID4gc29tZXdoZXJlLi4uCj4gPgo+ID4gW0lORk9dCj4gPiBbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKPiA+IFtJTkZPXSAgIHBsdWdpbjIKPiA+IFtJTkZPXQo+ID4gW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKPiA+IFtJTkZPXSAgIGV4dGphcjIKPiA+IFtJTkZPXSAgIGV4dGphcjEKPiA+IFtJTkZPXQo+ID4gW0lORk9dIC0tLSBwbHVnaW4xOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlMyAtLS0KPiA+IFtJTkZPXSBJbmplY3RlZCBieSBAQ29tcG9uZW50Ogo+ID4gW0lORk9dICAgcGx1Z2luMgo+ID4gW0lORk9dICAgcGx1Z2luMQo+ID4gW0lORk9dICAgZXh0amFyMgo+ID4gW0lORk9dICAgZXh0amFyMQo+ID4gW0lORk9dCj4gPiBbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKPiA+IFtJTkZPXSAgIHBsdWdpbjEKPiA+IFtJTkZPXQo+ID4gW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKPiA+IFtJTkZPXSAgIGV4dGphcjIKPiA+IFtJTkZPXSAgIGV4dGphcjEKPiA+IFtJTkZPXQo+ID4gW0lORk9dCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFtJTkZPXSBCdWlsZGluZyBCb3RoIGV4dGVuc2lvbnMuIE9yZGVyOiBwbHVnaW4xLCBwbHVnaW4yLiBFeHRyYQo+IGRlcGVuZGVuY3kKPiA+IGluIHBsdWdpbjEgMS4wLVNOQVBTSE9UCj4gPiBbSU5GT10KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gW0lORk9dCj4gPiBbSU5GT10gLS0tIHBsdWdpbjE6MS4wLVNOQVBTSE9UOmxpc3QgKGRlZmF1bHQpIEAgcHJvYmU0IC0tLQo+ID4gW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6Cj4gPiBbSU5GT10gICBwbHVnaW4xCj4gPiBbSU5GT10gICBleHRqYXIyCj4gPiBbSU5GT10gICBwbHVnaW4yCj4gPiBbSU5GT10gICBleHRqYXIyCj4gPiBbSU5GT10gICBleHRqYXIxCj4gPgo+ID4gV0FUISBzZWVtcyB0aGF0IEBDb21wb25lbnQgaXMgc29tZXdoYXQgaW4gcmFuZG9tIG9yZGVyLCBpbiB0aGlzIGNhc2Ugd2UKPiA+IGhhdmUgbW9kaWZpZWQgdGhlIGRlcGVuZGVuY2llcyBpZiBwbHVnaW4xIHRvIGFsc28gaW5jbHVkZSBleHRqYXIyLCB0aGUKPiA+IG9yZGVyIEkgd291bGQgZXhwZWN0IGlzOgo+ID4KPiA+IGV4dGphcjEsIGV4dGphcjIsIHBsdWdpbjEsIGV4dGphcjIsIHBsdWdpbjIKPiA+Cj4gPiBHaXZlbiB0aGUgcHJldmlvdXMgZXhlY3V0aW9ucyBhbmQgdGhlIGZhY3QgdGhhdCBjaGFuZ2luZyB0aGUgc2VxdWVuY2Ugb2YKPiA+IHBsdWdpbjEgYW5kIHBsdWdpbjIgaW4gdGhlIHBvbSBkaWQgbm90IGFmZmVjdCB0aGUgcHJldmlvdXMgZXhlY3V0aW9ucywgaWYKPiA+IHBsZXh1cyBoYWQgYSBkZXRlcm1pbmlzdGljIG9yZGVyaW5nIHRoZW4gSSB3b3VsZCBoYXZlIGJlZW4gc29tZXdoYXQgT0sKPiB3aXRoOgo+ID4KPiA+IHBsdWdpbjIsIHBsdWdpbjEsIGV4dGphcjIsIGV4dGphcjIsIGV4dGphcjEKPiA+Cj4gPiBCdXQgdGhpcyBzZWVtcyB0byBzdWdnZXN0IHRoYXQgd2UgaGF2ZSBhIGNvbXBsZXRlbHkgbm9uLWRldGVybWluaXN0aWMKPiA+IG9yZGVyaW5nLi4uIHRoYXQgaXMgbm90IGdvb2QgZm9yIHJlcHJvZHVjaWJsZSBidWlsZHMuLi4KPiA+Cj4gPiBbSU5GT10KPiA+IFtJTkZPXSBPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOgo+ID4gW0lORk9dICAgcGx1Z2luMQo+ID4gW0lORk9dICAgZXh0amFyMgo+ID4KPiA+IE5vdyB3ZSBzZWUgZXh0amFyMiBidXQgb25seSBiZWNhdXNlIGl0IGhhcyBiZWVuIGV4cGxpY2l0bHkgYWRkZWQgdG8gdGhlCj4gPiBwbHVnaW5zIGRlcGVuZGVuY2llcywgSU1ITyBpdCBzaG91bGQgYmUgaGVyZSB0d2ljZSwgZS5nLgo+ID4KPiA+IGV4dGphcjEsIGV4dGphcjIsIHBsdWdpbjEsIGV4dGphcjIsIHBsdWdpbjIKPiA+Cj4gPiBCdXQgaXQgc2VlbXMgYWNjZXB0YWJsZSBpZiB0aGlzIGlzIGluc3RlYWQgcGx1Z2luMSwgZXh0amFyMiAodGhvdWdoIGl0Cj4gPiBtYWtlcyB0aGUgcGx1Z2luIGNsYXNzbG9hZGVyIHVzZWxlc3MgZm9yIGRpc2NvdmVyeSkKPiA+Cj4gPiBbSU5GT10KPiA+IFtJTkZPXSBPbiBUaHJlYWQgQ29udGV4dCBDbGFzcyBMb2FkZXI6Cj4gPiBbSU5GT10gICBleHRqYXIxCj4gPiBbSU5GT10gICBleHRqYXIyCj4gPiBbSU5GT10KPiA+IFtJTkZPXSAtLS0gcGx1Z2luMjoxLjAtU05BUFNIT1Q6bGlzdCAoZGVmYXVsdCkgQCBwcm9iZTQgLS0tCj4gPiBbSU5GT10gSW5qZWN0ZWQgYnkgQENvbXBvbmVudDoKPiA+IFtJTkZPXSAgIHBsdWdpbjEKPiA+IFtJTkZPXSAgIGV4dGphcjIKPiA+IFtJTkZPXSAgIHBsdWdpbjIKPiA+IFtJTkZPXSAgIGV4dGphcjIKPiA+IFtJTkZPXSAgIGV4dGphcjEKPiA+IFtJTkZPXQo+ID4gW0lORk9dIE9uIFBsdWdpbiBDbGFzcyBMb2FkZXI6Cj4gPiBbSU5GT10gICBwbHVnaW4yCj4gPiBbSU5GT10KPiA+IFtJTkZPXSBPbiBUaHJlYWQgQ29udGV4dCBDbGFzcyBMb2FkZXI6Cj4gPiBbSU5GT10gICBleHRqYXIxCj4gPiBbSU5GT10gICBleHRqYXIyCj4gPiBbSU5GT10KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4KPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKLS0wMDFhMTE0MzhmYTJmM2NkODUwNTU5NzhhNWQ1LS0KCkZyb20gZGV2LXJldHVybi0xMjQzMjItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE9jdCAyNCAwMDozOTo1NyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzMjItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMTIxQzQxMDc5NgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDI0IE9jdCAyMDE3IDAwOjM5OjU3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTYwNjAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjQgT2N0IDIwMTcgMDA6Mzk6NTYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU1OTc1IGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IE9jdCAyMDE3IDAwOjM5OjU2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTU5NjMgaW52b2tlZCBieSB1aWQgOTkpOyAyNCBPY3QgMjAxNyAwMDozOTo1NiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMjQgT2N0IDIwMTcgMDA6Mzk6NTYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA5Qjc4MzE4MDcyRgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjQgT2N0IDIwMTcgMDA6Mzk6NTUgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjg4ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuODggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMSwgVVJJQkxfQkxPQ0tFRD0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgUTQ5VktKNjE2MDlWIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVHVlLCAyNCBPY3QgMjAxNyAwMDozOTo1MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdtMC1mNTAuZ29vZ2xlLmNvbSAobWFpbC13bTAtZjUwLmdvb2dsZS5jb20gWzc0LjEyNS44Mi41MF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBDOUU2RDVGQkU2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyNCBPY3QgMjAxNyAwMDozOTo1MiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13bTAtZjUwLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIG03MnNvMTI1NjE0OTF3bWMuMQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDIzIE9jdCAyMDE3IDE3OjM5OjUyIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUQvdkh0ZTQyZ2RvYzM2V2o0ZzhaMGRaUy9CUHRra2FxZWJSWDlTd2x5SzA9OwogICAgICAgIGI9SXB0R0s4TU9tanB3SXhCbE81MzYxbDU5OHYwMjJBa2RaT0hHNGdYMWZISXZzNk80cUtVRkhSYXdpdXI5UmFDcUpxCiAgICAgICAgIDNGSTdWUTduVC8xcXFqc29PaEU1NVBuU0FhT1hiM3RyTXI5cmZrUUNES3VFVGFPWFlPWTZBY3NOVS9NQzdNNmRWRzFmCiAgICAgICAgIEUzZXFMTUo1eS9QRDVCOTdHWXMwQnk3d3MvUGN1WE9ONkc3aXpWa2cyUk9hcE1XOXdVRGVjTnh1RE5xYUtrazk4VjJOCiAgICAgICAgIHJzVnNIMXVrWnJKQUEwazBBdmhURGhabFJ2QjhaeHNQSWFuZjd4OTloQW5YeCtBMkI4Z0F2eTFuaDhVUWdkdkFBYXJsCiAgICAgICAgIE9ReWhuUEdTWWllNEY3ZEtUeG92N2NqRWRCbUVHa0VNTHROM2dRMlg1Z2FsTnRuSklxRXltRDJGZnJQSWlVaHVJYWZwCiAgICAgICAgIGU4YXc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUQvdkh0ZTQyZ2RvYzM2V2o0ZzhaMGRaUy9CUHRra2FxZWJSWDlTd2x5SzA9OwogICAgICAgIGI9cEpWRXAwRURTV0lPMEUxbkZrSW1kb1RYeSt4eDZrY3E1Q01VRWxRVmtDS3hNb3NUaUppTFE5dEdwSkY3Uys5Ky90CiAgICAgICAgIDkrS3RSNXROUzIwcHFjbzlxZjY2emR2Rk83d3BFeTJqM1lQaEV2b0xPUEoyN0tQbllFYVlneWZmL3YrZG91cVpYYlFtCiAgICAgICAgIDdEeVI2L3BISzk2VFZvUmQzNFpHMGY1YWNJaVNuZ3NuelM0VXArVGR5QndPWXRQUEtaMGhRRG12dVY0U2dtQnBFUU4rCiAgICAgICAgIC8zUTNrUTVEOHZ3MG5RMVBrOEp4bEJrR2ZvNUVvU0h3T0tIUnBjalFOZGlTTUsxcytuQXhUM3YvUlNQczJXa1o1RG5kCiAgICAgICAgIEtmb1YzREVONE94bnFpenBCZVpTaXJvZ2VVYlVWbGZZTEhNdm42NWJzUml3YkVHUDh6aXZqM2NPUm1nYnZCbWg2ekVLCiAgICAgICAgIEJrM0E9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVhWc2tzOW5PL0hDb1NyNmpFdmtEamlsbUk4YUJMcWhTSjZybnRMVkpuRjNybGNIVjZnCglHcVFQQ0Q3cEo2TGw5SXJnakJWdk1OYlpQd2t4a2JFMUl3OXBveG1zMGc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArUk9QT3dZS3lwUWFtVWhkbTl6dStqcGFqUEg5OTMvaDk3bGxndjJYZFl1WmJKTzY1eFpNbHJFT21sbVhlcFZrdU4zYVZjOHl2OXNIY3BqRyt0R25Rcz0KWC1SZWNlaXZlZDogYnkgMTAuMjguMi44NCB3aXRoIFNNVFAgaWQgODFtcjcwODIyMjV3bWMuMTA2LjE1MDg4MDU1OTE0Njg7IE1vbiwKIDIzIE9jdCAyMDE3IDE3OjM5OjUxIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDxDQStuUG5Nd3RqblpFLTUzQU41M3hGPU1mNkhZLUZiR1l3WkFVdzNFVUtIQTRlS0I1MlFAbWFpbC5nbWFpbC5jb20+CiA8Q0FMWUdtMXc9VVB3djByRS1IalpKdm4rbTVIOTFFKzRhOHUtNVNZMGN2OHN1VUswaGdRQG1haWwuZ21haWwuY29tPgogPENBUENqam5FZXNHeERUS1lpTEdWR1QzaThBSGFGVkVFR2Q4aWhnampVMGZGc3QwM3N0UUBtYWlsLmdtYWlsLmNvbT4KIDxDQVBDampuSG9uRGFiaUdXd0pZcW5xMmpVNlllNU5fQzdlbjhRc1JTOG5uNERONmhQZHdAbWFpbC5nbWFpbC5jb20+CiA8Q0ErblBuTXcxODVvMUFwN3p2M2lSU18zMWZaK3l5aHc2NHh5SkhRS1h3WFdoK1dpYXJ3QG1haWwuZ21haWwuY29tPiA8Q0FQb3lCcVN2Tk5KS2N1PWlPWFlMZjNia2kyM3haMVl3NDcyeWZOUFJyYjBkd2RBSFZRQG1haWwuZ21haWwuY29tPgpJbi1SZXBseS1UbzogPENBUG95QnFTdk5OSktjdT1pT1hZTGYzYmtpMjN4WjFZdzQ3MnlmTlBScmIwZHdkQUhWUUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyNCBPY3QgMjAxNyAwMDozOTo0MCArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXdoYUdHMU1Vd3J1RW9NcWp5SnNtVVQ2UkRKa3IxPWZyOFc1VDFOSFFEa0pBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4yClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTNjOGJiODUwOTA4ZDA1NWM0MDJkNzIiCgotLTAwMWExMTNjOGJiODUwOTA4ZDA1NWM0MDJkNzIKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT2xpdmllciB5b3Ugc2VlbSB0byBoYXZlIG1hZGUgYSB0eXBvLi4uIEkgYmVsaWV2ZSB5b3UgaW50ZW5kZWQgdG8gd3JpdGUKPUUyPTgwPTlDZXZpbD1FMj04MD05RCBidXQgdHlwZWQgaW4gPUUyPTgwPTlDYXdlc29tZT1FMj04MD05RCBieSBtaXN0YWtlIDotPQpQCgpPbiBUdWUgMjQgT2N0IDIwMTcgYXQgMDA6MzIsIE9saXZpZXIgTGFteSA8b2xhbXlAYXBhY2hlLm9yZz4gd3JvdGU6Cgo+IExHVE0KPiArMSB0ZXN0ZWQgb24gc29tZSBidWlsZHMgKFRCSCBJIGhhdmVuJ3QgdGVzdGVkIHdpdGggdGhlIGF3ZXNvbWUgSmVua2lucwo+IE1hdmVuIHBsdWdpbiA6UCApCj4KPiBPbiAyMyBPY3RvYmVyIDIwMTcgYXQgMjI6MzIsIFN0ZXBoZW4gQ29ubm9sbHkgPAo+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Cj4gPiBBbnkgbW9yZSB2b3Rlcz8KPiA+Cj4gPiBPbiAyMSBPY3RvYmVyIDIwMTcgYXQgMTA6NTMsIERhbiBUcmFuIDxkYW50cmFuQGdtYWlsLmNvbT4gd3JvdGU6Cj4gPgo+ID4gPiBvdWNoIGZhbHNlIGFsYXJtLCAgSSBmb3Jnb3QgdG8gY29uZmlndXJlIHRoZSBhcnRpZmFjdG9yeSBtaXJyb3IKPiA+ID4KPiA+ID4gU29ycnkgYWJvdXQgdGhlIG5vaXNlCj4gPiA+Cj4gPiA+IC1ECj4gPiA+Cj4gPiA+IE9uIFNhdCwgT2N0IDIxLCAyMDE3IGF0IDEwOjEwIEFNLCBEYW4gVHJhbiA8ZGFudHJhbkBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPgo+ID4gPiA+IEkgYW0gbm90IGFibGUgZ2V0dGluZyBtdm4gMy41LjIgdG8gZG93bmxvYWQgYW4gaW50ZXJuYWwgc25hcHNob3QKPiA+ID4gPiBkZXBlbmRlbmN5IGZyb20gY29tcCdzIGNlbnRyYWwgYXJ0aWZhY3RvcnkKPiA+ID4gPgo+ID4gPiA+IGhlcmUgaXMgdGhlIGVycm9yCj4gPiA+ID4KPiA+ID4gPiBDYXVzZWQgYnk6IG9yZy5lY2xpcHNlLmFldGhlci5yZXNvbHV0aW9uLgo+ID4gRGVwZW5kZW5jeVJlc29sdXRpb25FeGNlcHRpb246Cj4gPiA+ID4gQ291bGQgbm90IGZpbmQgYXJ0aWZhY3QgY29tLm9yYWNsZS5saW51eC54ODZfNjQ6anJlOgo+ID4gPiBycG06MS44LjBfMTUxLVNOQVBTSE9UCj4gPiA+ID4gICAgIGF0IG9yZy5lY2xpcHNlLmFldGhlci5pbnRlcm5hbC5pbXBsLkRlZmF1bHRSZXBvc2l0b3J5U3lzdGVtLgo+ID4gPiByZXNvbHZlRGVwZW5kZW5jaWVzCj4gPiA+ID4gKERlZmF1bHRSZXBvc2l0b3J5U3lzdGVtLmphdmE6MzU1KQo+ID4gPiA+ICAgICBhdCBvcmcuYXBhY2hlLm1hdmVuLnByb2plY3QuRGVmYXVsdFByb2plY3REZXBlbmRlbmNpZXNSZXNvCj4gPiA+IGx2ZXIucmVzb2x2ZQo+ID4gPiA+IChEZWZhdWx0UHJvamVjdERlcGVuZGVuY2llc1Jlc29sdmVyLmphdmE6MjAyKQo+ID4gPiA+Cj4gPiA+ID4gTm8gaXNzdWUgd2l0aCAzLjUuMCBhbmQgMy41LjEKPiA+ID4gPgo+ID4gPiA+IFdvbmRlciBpZiBhbnlvbmUgZWxzZSBlbmNvdW50ZXJzIHRoZSBzYW1lIGlzc3VlPz8KPiA+ID4gPgo+ID4gPiA+IFRoYW5rcwo+ID4gPiA+Cj4gPiA+ID4gLURhbgo+ID4gPiA+Cj4gPiA+ID4gT24gRnJpLCBPY3QgMjAsIDIwMTcgYXQgNzozNSBQTSwgTWFyayBEZXJyaWN1dHQgPG1hcmtAdGFsaW9zLmNvbT4KPiA+IHdyb3RlOgo+ID4gPiA+Cj4gPiA+ID4+ICsxIGxvb2tpbmcgZ29vZCBmcm9tIGhlcmUgb24gbXkgcHJvamVjdHMvcmVsZWFzZXMuCj4gPiA+ID4+Cj4gPiA+ID4+IC0tCj4gPiA+ID4+ICJHcmVhdCBhcnRpc3RzIGFyZSBleHRyZW1lbHkgc2VsZmlzaCBhbmQgYXJyb2dhbnQgdGhpbmdzIiA9RTI9ODA9Cj05NCBTdGV2ZW4KPiA+ID4gV2lsc29uLAo+ID4gPiA+PiBQb3JjdXBpbmUgVHJlZQo+ID4gPiA+Pgo+ID4gPiA+PiBPbiBXZWQsIE9jdCAxOCwgMjAxNyBhdCAxMTo1MCBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPiA+ID4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiA+Pgo+ID4gPiA+PiA+IEhpLAo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gV2Ugc29sdmVkIDI2IGlzc3VlczoKPiA+ID4gPj4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4gPiA+ID4+ID4gdmVyc2lvbj0zRDEyMzM4OTY0JnN0eWxlTmFtZT0zRFRleHQmcHJvamVjdElkPTNEMTIzMTY5MjIKPiA+ID4gPj4gPgo+ID4gPiA+PiA+IFRoZXJlIGFyZSAzNTcgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKPiA+ID4gPj4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9M0Rwcm9qZWN0JTIwJQo+ID4gPiA+PiA+IDNEJTIwTU5HJTIwQU5EJTIwcmVzb2x1dGlvbiUyMCUzRCUyMFVucmVzb2x2ZWQlMjBPUkRFUiUKPiA+ID4gPj4gPiAyMEJZJTIwZHVlJTIwQVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwY3JlYXRlZCUyMEFTQwo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gU3RhZ2luZyByZXBvOgo+ID4gPiA+PiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzMvCj4gPiA+ID4+ID4KPiA+ID4gPj4gPiBUaGUgZGlzdHJpYnV0YWJsZSBiaW5hcmllcyBhbmQgc291cmNlcyBjYW4gYmUgZm91bmQgaGVyZToKPiA+ID4gPj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiA+ID4gPj4gPiAxMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yLwo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gU3BlY2lmaWNhbGx5IHRoZSB6aXAsIHRhcmJhbGwgYW5kIHNvdXJjZSBhcmNoaXZlcyBjYW4gYmUgZm91bmQKPiBoZXJlOgo+ID4gPiA+PiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+ID4gPiA+PiA+Cj4gMTM3My9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItYmluLnppcAo+ID4gPiA+PiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+ID4gPiA+PiA+IDEzNzMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvYXBhY2hlLW1hdmVuLTMuNS4KPiA+ID4gMi1iaW4udGFyLmd6Cj4gPiA+ID4+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gPiA+ID4+ID4KPiAxMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yL2FwYWNoZS1tYXZlbi0zLjUuMi1zcmMuemlwCj4gPiA+ID4+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gPiA+ID4+ID4gMTM3My9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41Lgo+ID4gPiAyLXNyYy50YXIuZ3oKPiA+ID4gPj4gPgo+ID4gPiA+PiA+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+ID4gPiA+PiA+IGFwYWNoZS1tYXZlbi0zLjUuMi1zcmMudGFyLmd6IHNoYTE6IDk3ZDZkN2IxODQ4NWI3OTA2ZGQ3ZjMxM2NkZDQ9CjExCj4gPiA+ID4+ID4gOTFkMTZkZGU0Ngo+ID4gPiA+PiA+IGFwYWNoZS1tYXZlbi0zLjUuMi1zcmMuemlwOiBzaGExOiBkYzhjYWE1Y2RhY2I0MDA5NDNkMjQ5MWEwMjBmNzQKPiA+ID4gPj4gMmE1MThlOGYwOAo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gR2l0IHRhZzoKPiA+ID4gPj4gPiBodHRwczovL2dpdC13aXAtdXMuYXBhY2hlLm9yZy9yZXBvcy9hc2Y/cD0zRG1hdmVuLmdpdDthPTNEY29tbWl0PQo7aD0zRAo+ID4gPiA+PiA+IDEzOGVkZDYxZmQxMDBlYzY1OGJmYTJkMzA3YzQzYjc2OTQwYTVkN2QKPiA+ID4gPj4gPgo+ID4gPiA+PiA+IFN0YWdpbmcgc2l0ZToKPiA+ID4gPj4gPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvY29tcG9uZW50cy9yZWYvMy1MQVRFU1QvCj4gPiA+ID4+ID4KPiA+ID4gPj4gPiBWb3RlIG9wZW4gZm9yIDcyIGhvdXJzLgo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gWyBdICsxCj4gPiA+ID4+ID4gWyBdICswCj4gPiA+ID4+ID4gWyBdIC0xCj4gPiA+ID4+ID4KPiA+ID4gPj4gPiBUaGFua3MsCj4gPiA+ID4+ID4KPiA+ID4gPj4gPiBTdGVwaGVuLgo+ID4gPiA+PiA+Cj4gPiA+ID4+Cj4gPiA+ID4KPiA+ID4gPgo+ID4gPgo+ID4KPgo+Cj4KPiAtLQo+IE9saXZpZXIgTGFteQo+IGh0dHA6Ly90d2l0dGVyLmNvbS9vbGFteSB8IGh0dHA6Ly9saW5rZWRpbi5jb20vaW4vb2xhbXkKPgotLT0yMApTZW50IGZyb20gbXkgcGhvbmUKCi0tMDAxYTExM2M4YmI4NTA5MDhkMDU1YzQwMmQ3Mi0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MzkxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgIDQgMTI6MjQ6NDYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzkxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDc3NUE0MTdDRkUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxMjoyNDo0NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI1NTYzIGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMTI6MjQ6NDYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI1NDYwIGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMTI6MjQ6NDYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNTQ0OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDQgTm92IDIwMTcgMTI6MjQ6NDUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA0IE5vdiAyMDE3IDEyOjI0OjQ1ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMTc2NjYxQTg2OTUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA0IE5vdiAyMDE3IDEyOjI0OjQ1ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuNDAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjQwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgYWd2T3dPb2FDY2xvIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAgNCBOb3YgMjAxNyAxMjoyNDo0MiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdyMC1mMTgyLmdvb2dsZS5jb20gKG1haWwtd3IwLWYxODIuZ29vZ2xlLmNvbSBbMjA5Ljg1LjEyOC4xODJdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgM0NBNzI1RkFDRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMTI6MjQ6NDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd3IwLWYxODIuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgejU1c280NjUwMjQ5d3J6LjEKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAwNCBOb3YgMjAxNyAwNToyNDo0MiAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1SWXVJV3V0RzZ0NmEwVVdtVktKRlZUcGYyWnp5Z3RnMWtDMXFTV1UvTklZPTsKICAgICAgICBiPUpMYTIyL21tQngzTmQ4eW1QT0tFTUxUSytReGdlT1kwellrMzJvbEFsSUhEUElBTzJhVDNJSWFINlEzNXdmdEtKSAogICAgICAgICBpVjFCcm12VWNTb00ya0JmcGdYZDdQTFNKS2JGaGFTUmZoRXl5MUhzeUZhSm1PZEIyMW1JRjM4aiszaUhNVlRPWFZkYgogICAgICAgICAyZkZGZEJvUW8vRk51Y3U5ZzZteVZ3YU42MEVlUG5PYXQyMzhDODYrNWVFK2Q2TEJ2bG8yemd5cUlwTHJpRDVDSGFIZAogICAgICAgICBWb2NMUjZMbHBnMmgwMThRakdManRtNmVMYmpaeEtKRURpTkNOeEJTaXd6NmppeG5DQnZUMUwyREwweW5CRTQwLzB1UAogICAgICAgICBYbUkyWFFjZEdkUFNBQUt4dWxVbVFTUng2WXl3R0swdXpUaTYrNFlKOGFkVXY4eXB2Z205Qnc2VVpUL3l4QnBOc2wrUAogICAgICAgICBqdU5nPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1SWXVJV3V0RzZ0NmEwVVdtVktKRlZUcGYyWnp5Z3RnMWtDMXFTV1UvTklZPTsKICAgICAgICBiPXFLS0xkNGNDT21UYVVjdEhhUGdHeHlFTHVYRnB5ZE9zTzM2YlkyQm5LS0d3OEhvZHM5OXN5L2Nma1FrcTB2YWJRawogICAgICAgICBxMHlwV0RHaWRZajBZSjdNUWRCUXp3d1orclVYR1dIWWNEVms0Q3JlSDhSUWpFRkNyZU5PV1lNUHVnd3NZZHpQTUJaYgogICAgICAgICBGaWg2RGk1M3JMdmpVRlkzMG9LT2JnMFJXQmhZWFlPYTE0bVRFVzdxQXRtc3RuYTgwaU1uem8xeGZ1ekJOclRlQlVacAogICAgICAgICBXN3dtS3VWaEZzMEdOV0tjbUVRVTU4clZHZTFBc0FzbTVRWi90WlRsT3crcHlBb05IblZ1U053U3pXckV2TkhIZkxPNQogICAgICAgICBiVUZZT05xdGJhTWY3RVc4N3FQZlhFeWVLWkZqOE56QzdHbE9HZEpNYlloODBUUy9yYTVINlB6SCtubnBsaURabmdndgogICAgICAgICArM0F3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FVc2RYRGRGbEFPU3pBMGZKM1VzZGM0bFA4dHRlNDJGaHIwZEVxZ3lqcWkyMW5CekxaTAoJZnhVL0pTQnlEL1NOY0xRVk9EV2pGck1JSjhudnRpRlI2RzBPdXVqaUZBPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFCaFFwK1JwdU4vNFlFYnhkeUM3RTdvOFMrcDBwMGYwWGhPenZQK2hMN0VoUTRDd2dRWEZYMGNzUWlITUVVVnVTU0d6UFI5UE9VSDJHcitjei8xMVRGOWJ4Q3c9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xNDEuMTQ4IHdpdGggU01UUCBpZCBvMjBtcjc0NzUyNTh3cmIuMzUuMTUwOTc5ODI4MTI3MTsKIFNhdCwgMDQgTm92IDIwMTcgMDU6MjQ6NDEgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPENBK25Qbk13RUg5WjJteXA3MXVhU3JkY3lMSlJGckUtVnJ0MjAxOTFyZDAxaCtVZmhqd0BtYWlsLmdtYWlsLmNvbT4KSW4tUmVwbHktVG86IDxDQStuUG5Nd0VIOVoybXlwNzF1YVNyZGN5TEpSRnJFLVZydDIwMTkxcmQwMWgrVWZoandAbWFpbC5nbWFpbC5jb20+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFNhdCwgMDQgTm92IDIwMTcgMTI6MjQ6MzAgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk13aGo9Q2RrblU2V3BBQUdldEt5bmhRT0pCZDZHRm4rRU1DQ3dhOTBkOUxvZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IE1hdmVuIDQuMC4wClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9ImY0MDMwNDVmNGZhZTNjZGQ4ODA1NWQyNzRlMzUiCgotLWY0MDMwNDVmNGZhZTNjZGQ4ODA1NWQyNzRlMzUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gU2F0IDQgTm92IDIwMTcgYXQgMTI6MjAsIFN0ZXBoZW4gQ29ubm9sbHkgPApzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKCj4gVGhlIHBhc3QgdHdvIGRheXMsIEhlcnY9QzM9QTksIFJvYmVydCBhbmQgSSBoYXZlIGJlZW4gZGlzY3Vzc2luZyBvdXIgbmV4dD0KIHN0ZXBzLgo+Cj4gSSB0aGluayB3ZSBoYXZlIGEgc2VtaS1jb25zZW5zdXMgd2hpY2ggSSB3YW50IHRvIGJyaW5nIGJhY2sgdG8gdGhlIGxpc3Q6Cj4KPiBXZSBrZWVwIDMuNS54IGFzIGEgc3RhYmxlIGJyYW5jaCB3aXRoIGNyaXRpY2FsIGJ1ZyBmaXhlcyBvbmx5Cj4KPiBXZSBzd2l0Y2ggbWFzdGVyIHRvIDQuMC4wIGFuZCBzdGFydCB0byBidXJuIGRvd24gYSByZWxlYXNlIHNjb3BlLgo+Cj4gNC4wLjAgd2lsbCBub3QgY2hhbmdlIHRoZSBwb20gbW9kZWxWZXJzaW9uCj4KPiBUaGUgNC4wLjAgc2NvcGUgc2hvdWxkIHByb2JhYmx5IGJlOgo+Cj4gUmVxdWlyZWQ6Cj4gKiBkcm9wIEphdmEgNywgc3dpdGNoIGNvZGViYXNlIHRvIEphdmEgOCBpZGlvbXMgKHdoaWxlIG1haW50YWluaW5nIGJpbmFyeQo+IGFwaSBjb21wYXRpYmlsaXR5IGZvciBwbHVnaW5zKQo+ICogc3BlY2lmeSB0aGUgY2xhc3Nsb2FkZXIgYmVoYXZpb3VyIGFuZCBmaXggaW1wbCB0byBhbGlnbiB3aXRoIHNwZWMgKG1heQo+IG5lZWQgYSBwbHVnaW4gZmxhZyB0byBhbGxvdyBwbHVnaW5zIHRvIG9wdCBpbiB0byBzcGVjIGJlaGF2aW91cikKPiAqIHNwZWNpZnkgdGhlIGV4dGVuc2lvbiBzcGVjCj4gKiBhbGxvdyBsaW1pdGVkIG11dGF0aW9uIG9mIHRoZSBydW50aW1lIG1vZGVsIChyZWR1Y2luZyB0cmFuc2l0aXZlCj4gZGVwZW5kZW5jaWVzIGZvciBjb25zdW1lcnMgd2l0aGluIHRoZSByZWFjdG9yLCBvbmx5IGZvciBwbHVnaW4gZ29hbHMgdGhhdAo+IGRlY2xhcmUgaW50ZW50KSB1c2UgY2FzZTogc2hhZGUgcGx1Z2luCj4gKiBiZXR0ZXIgQ0kgaW50ZWdyYXRpb24gaG9va3MKPiAqIG5pY2UgZXJyb3IgbWVzc2FnZSBmb3IgbmV3ZXIgcG9tIG1vZGVsVmVyc2lvbgo+Cj4gT3B0aW9uYWw6Cj4gKiAoZGFtbiBJIGZvcmdvdCwgbWF5YmUgUm9iZXJ0IHJlbWVtYmVycykKPgoqIGluY3JlbWVudGFsIGJ1aWxkCiogY29uY3VycmVudCBzYWZlIGxvY2FsIHJlcG8gY2FjaGUKCj4gLS0KPiBTZW50IGZyb20gbXkgcGhvbmUKPgotLT0yMApTZW50IGZyb20gbXkgcGhvbmUKCi0tZjQwMzA0NWY0ZmFlM2NkZDg4MDU1ZDI3NGUzNS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NzU5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBEZWMgIDkgMTY6MDY6MzIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzU5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDY1RDU2MTdBNUUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgOSBEZWMgMjAxNyAxNjowNjozMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDkzNiBpbnZva2VkIGJ5IHVpZCA1MDApOyA5IERlYyAyMDE3IDE2OjA2OjMyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NTQgaW52b2tlZCBieSB1aWQgNTAwKTsgOSBEZWMgMjAxNyAxNjowNjozMSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgzNyBpbnZva2VkIGJ5IHVpZCA5OSk7IDkgRGVjIDIwMTcgMTY6MDY6MzEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA5IERlYyAyMDE3IDE2OjA2OjMxICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMjQzQUExODA4NzgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA5IERlYyAyMDE3IDE2OjA2OjMxICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi4zNzkKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi4zNzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgWFI2YUZTbHN0dmhzIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAgOSBEZWMgMjAxNyAxNjowNjoyNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdtMC1mNDIuZ29vZ2xlLmNvbSAobWFpbC13bTAtZjQyLmdvb2dsZS5jb20gWzc0LjEyNS44Mi40Ml0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBBQjc0NDVGQUUxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgOSBEZWMgMjAxNyAxNjowNjoyNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13bTAtZjQyLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHk4MnNvNzk0NTQ5MXdtZy4xCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMDkgRGVjIDIwMTcgMDg6MDY6MjYgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9b04ybzY2bWViSnR6QmNGdXN5WWhQVGJjNzBOU1I2dk5qZUs4ejlNVUhQcz07CiAgICAgICAgYj1ON2o3dFhpR2tMUXNvTTFHakFZTnBlYTBoeGREMkhaOGZLdWZRWnJtYjJoQU9VdEVpNE9qYnVja1VPT1dhS28rMXIKICAgICAgICAgTm5hUlVFaEVxK09ML3lpV3Jzd0ErTUdxbTdqdUJpaEZveU95cTZWbFByUTV5R3d6eXo4Q2M1RDRqdmt1WExlNHVOdW4KICAgICAgICAgOVFMNFdYbGlITnp3MFRQRnN6cGkzazdKVHArQW8zRVNqSSs2dkJHRzNXZEN6b3RXdUhPbk41anFkdVBkY2N2TTJGWEkKICAgICAgICAgMk9idlcxY2ZPVzk4TzFKS2ZHOFZEblBjcjhyR1o0NGRRdVV4NnZwVFJ2bXFiYzlHam5sQkZHQTJCOGttZzBRZlNmSUUKICAgICAgICAgblVJOG1tVWVjRHlHSER6KzBKVkRaTlIwcG9HemdqVlZYMlNRR1dhazNyZXZZSVlONlRmbmlyWnkrdDBxbllNb25zZWIKICAgICAgICAgNW0vUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9b04ybzY2bWViSnR6QmNGdXN5WWhQVGJjNzBOU1I2dk5qZUs4ejlNVUhQcz07CiAgICAgICAgYj1SZVk5K0Q3S1NTSmRoWk9IMlJxalVrQWsvSXhIWG04cHdFTUgyeDUrTDZ3Ynh5eEF3SCtyZll3Z05rUFhiR0cwSi8KICAgICAgICAgdUZ5Z24xR3l1bWFjdTV0elo3SzVoVVV4eWpSbGo5Sjk0eTJyMW5CUVBUUlBOdS82cFpGcFlkOXE1V2NKYlN1VVdHaCsKICAgICAgICAgWHhzTmRXcFdQdkZ0ci9GbnZLYS9GN3VMTEc2ZUxGVm5zYWZlUlREcHl6MGhMVjhiM3NNRUlDVEVwQmhJZmUwc3p4RnQKICAgICAgICAgYjlYd0IrVEw0T0U3RnExaG5GL1ZuMGd1NlVYakJmdWFtaVU3MVl5VlJSY2g4YzUxaUpkZjBMQ2pBM0VnT0paMEJabGMKICAgICAgICAgMUFsbGVpdEdqcW1TOVU5UGdSYXpPN1BwUnFLT0s0ekRwZSs5Zi85ZXRBRzdpN3VEeUVuS1FNVm4zUlIwZ3JqTTcxR20KICAgICAgICAgOVFQdz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUtHQjNtSnozYi9VN0FQYlA2bUFrbDZJZmpJNHZzdFVxWEdMenc2MXgxUzVEd2hNUXljbTd6MDkKCXFEM1pEUnkrNlllZzdKRUQ3aTBtVUxpVUxKbWtNQU5LNFdvYkljY1N3UT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1aUU1yTk5ORDBINzJHQ1pCNjZDM1V4TDFZcVQrQXpWcVBjNmF5UDVQNkFqYkk4cDhmeHlndFF6Nk11eWsxeStScU5RSGtGMDh6aXNNYmR6cEF5eUdjPQpYLVJlY2VpdmVkOiBieSAxMC4yOC40OS4xOTUgd2l0aCBTTVRQIGlkIHgxODZtcjYxOTE0Nzh3bXguMTE2LjE1MTI4MzU1Nzk1NzA7CiBTYXQsIDA5IERlYyAyMDE3IDA4OjA2OjE5IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDwxOTAwNTU4LkdGeDlRbGZhRTJAZ2lnYT4gPENBK25Qbk15Vm5XbTQtdEFmYWVZdnRrMXg4SDVUMDBGRW8rU0o2cz15WVRnbj04SFh1UUBtYWlsLmdtYWlsLmNvbT4KIDwxNjE4MzAyLkUzYXJPcjVEeUpAZ2lnYT4KSW4tUmVwbHktVG86IDwxNjE4MzAyLkUzYXJPcjVEeUpAZ2lnYT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAwOSBEZWMgMjAxNyAxNjowNjowOSArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXdpOWR4RVJjOFRONmF3Z0VhR05HTFB1RG5SemNTOGRGSmpUbnpaYzNUM2ZRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogR2l0IG1pZ3JhdGlvbiBuZXh0IHN0ZXBzClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQyZTI2NDUyZjEyOTA1NWZlYTdiODYiCgotLTAwMWExMTQyZTI2NDUyZjEyOTA1NWZlYTdiODYKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSSBzZWUgd2UgaGF2ZSBhIGxhcmdlIG51bWJlciBvZiByZXBvcyBub3cgb24gZ2l0Ym94IDstKQoKT24gVGh1IDcgRGVjIDIwMTcgYXQgMDc6MDAsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cm90PQplOgoKPiBvaywgSSBkaWRuJ3QgdXBkYXRlIG15IHJlcG8gY2xvbmU6IG5vdyB0aGUgcnVuLWl0cyBwcm9maWxlIGlzIGFjdGl2YXRlZAo+Cj4gdGhlbiB0aGUgcGxhbiBzaG91bGQganVzdCBjb25maXJtICJpdCB3b3JrcyEiIDopCj4KPiBhbmQgZmluZCB3aGljaCBqb2JzIGFyZSBzcGVjaWFsLCBsaWtlIG1hdmVuLWRpc3QtdG9vbCAod2hpY2ggaGFzIHRvIGJlCj4gc2NoZWR1bGVkIGRhaWx5IGluc3RlYWQgb2YgY29kZSBjaGFuZ2UsIGFuZCBvbmUgcGxhdGZvcm0gb25seSkKPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUMzPUE5Cj4KPiBMZSBtZXJjcmVkaSA2IGQ9QzM9QTljZW1icmUgMjAxNywgMjM6NTg6NDUgQ0VUIFN0ZXBoZW4gQ29ubm9sbHkgYSA9QzM9QTljPQpyaXQgOgo+ID4gT24gV2VkIDYgRGVjIDIwMTcgYXQgMjI6MzgsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiA9Cndyb3RlOgo+ID4gPiBOb3cgdGhhdCB3ZSBoYXZlIDIgQVNGIE9yZ2FuaXphdGlvbiBKZW5raW5zIGpvYnMgKG9uZSBmb3IgZ2l0Ym94IFsxXQo+IGFuZAo+ID4gPiBvbmUKPiA+ID4gZm9yIGdpdC13aXA6IHRoYW5rIHlvdSBTdGVwaGVuKSBhbmQgdGhhdCBpdCBsb29rcyBxdWl0ZSBzdWNjZXNzZnVsLAo+IGxldCdzCj4gPiA+IHBsYW4KPiA+ID4gdGhlIG5leHQgc3RlcHMuCj4gPiA+Cj4gPiA+IEhlcmUgaXMgd2hhdCBJIHNlZToKPiA+ID4gMS4gcmVtb3ZhbCBvZiBoYW5kLWRlZmluZWQgSmVua2lucyBqb2JzIHRoYXQgYXJlIG5vdyBkdXBsaWNhdGVzCj4gPiA+Cj4gPiA+IDIuIHByZXBhcmF0aW9uIG9mIHRoZSA2MCBuZXcgZW1wdHkgZ2l0IHJlcG9zIGZvciBzaGFyZWQgJiBwbHVnaW5zCj4gPiA+Cj4gPiA+IDMuIG1pZ3JhdGlvbiBvZiB0aGUgMSBzaGFyZWQgY29tcG9uZW50IGFuZCAxIHBsdWdpbiB1c2luZyBtaWdyYXRlLSoucz0KaAo+ID4gPiBzY3JpcHRzCj4gPiA+IFszXSB0byB0ZXN0IGFuZCBldmVudHVhbGx5IHJld29yayB0aGUgSmVua2luc2ZpbGUgKEkgc3VwcG9zZSBpdCB3aWxsCj4gPiA+IHJlcXVpcmUKPiA+ID4gc29tZSBsaXR0bGUgY2hhbmdlLCB0byBydW4gYWRkICJydW4taXRzIiBwcm9maWxlKQo+ID4KPiA+IEFzIGZhciBhcyBJIHJlY2FsbCwgSSBhZGRlZCAtUCtydW4taXRzIGFscmVhZHkKPiA+Cj4gPiBGb3IgdGhlIHBsdWdpbiwgSSdkIGxpa2UgdG8gZG8gdGhlIGpvYiBmb3IgbWF2ZW4tc2l0ZS1wbHVnaW4sIHNpbmNlIHdlCj4gPgo+ID4gPiBleHBlY3QKPiA+ID4gdG8gcmVsZWFzZSBpdCBzb29uLgo+ID4gPiBGb3IgdGhlIHNoYXJlZCBjb21wb25lbnQsIEkgZG9uJ3Qga25vdyBpZiB0aGVyZSBpcyBhIGJlc3QgY2FuZGlkYXRlCj4gPiA+Cj4gPiA+IDQuIG9uY2UgcHJldmlvdXMgc3RlcCBpcyBvaywgZG8gdGhlIGZ1bGwgbWlncmF0aW9uOiBpZiB0aGVyZSBhcmUKPiA+ID4gdm9sdW50ZWVycwo+ID4gPiBmb3IgaGVscGluZywgdGhhdCB3b3VsZCBiZSBncmVhdCwgc2luY2UgcG9wdWxhdGluZyA2MCBnaXQgcmVwb3Mgd29uJ3QKPiBiZQo+ID4gPiByZWFsbHkgZnVuLi4uCj4gPiA+Cj4gPiA+IEFuZCBhcyBwYXJ0IG9mIDYwIGVtcHR5IGdpdCByZXBvcyBjcmVhdGlvbiwgSSBwcm9wb3NlIHRvIG1pZ3JhdGUgdGhlCj4gPiA+ICJHb29nbGUKPiA+ID4gcmVwbyBtYW5pZmVzdCIgbWF2ZW4tYWdncmVnYXRvciBbNF0gdG8gQVNGOiBteSBwZXJzb25hbCB1c2UgaGFzIGJlZW4KPiBxdWl0ZQo+ID4gPiBzdWNjZXNzZnVsLCBJIGhvcGUgaXQncyB0aGUgc2FtZSBmb3Igb3RoZXJzLiBQZXJoYXBzIHRoZXJlIGFyZSBiZXR0ZXIKPiA+ID4gaWRlYXMKPiA+ID4gZm9yIGl0cyBuYW1lOiBtYXZlbi1hZ2dyZWdhdG9yCj4gPiA+Cj4gPiA+IEFueSBvdGhlciBpZGVhPyBhbnkgb2JqZWN0aW9uPwo+ID4gPgo+ID4gPiBSZWdhcmRzLAo+ID4gPgo+ID4gPiBIZXJ2PUMzPUE5Cj4gPiA+Cj4gPiA+IFsxXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC8KPiA+ID4KPiA+ID4gWzJdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4td2lwLwo+ID4gPgo+ID4gPiBbM10gaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy92aWV3dmMvbWF2ZW4vc2FuZGJveC90cnVuay9zY3JpcHRzL2dpdC8KPiA+ID4KPiA+ID4gWzRdIGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1hZ2dyZWdhdG9yCj4gPiA+Cj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Cj4gPiA+IC0tCj4gPgo+ID4gU2VudCBmcm9tIG15IHBob25lCj4KPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPiAtLQpTZW50IGZyb20gbXkgcGhvbmUKCi0tMDAxYTExNDJlMjY0NTJmMTI5MDU1ZmVhN2I4Ni0tCgpGcm9tIGRldi1yZXR1cm4tMTI0ODQxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBEZWMgMjYgMjI6NDc6MDQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODQxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDM4QkJBMTc1NzIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAyNiBEZWMgMjAxNyAyMjo0NzowNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDIyNTYwIGludm9rZWQgYnkgdWlkIDUwMCk7IDI2IERlYyAyMDE3IDIyOjQ3OjAzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMjQ2MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBEZWMgMjAxNyAyMjo0NzowMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIyNDUxIGludm9rZWQgYnkgdWlkIDk5KTsgMjYgRGVjIDIwMTcgMjI6NDc6MDMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDI2IERlYyAyMDE3IDIyOjQ3OjAzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRjBDODRDMTNGNgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjYgRGVjIDIwMTcgMjI6NDc6MDIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjg5OApYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuODk4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMC4wMDEsCglTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB1VHc1cWd6Wk11SGQgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUdWUsIDI2IERlYyAyMDE3IDIyOjQ3OjAxICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd3IwLWYxNzguZ29vZ2xlLmNvbSAobWFpbC13cjAtZjE3OC5nb29nbGUuY29tIFsyMDkuODUuMTI4LjE3OF0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA0Q0MwQjVGM0RGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyNiBEZWMgMjAxNyAyMjo0NzowMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13cjAtZjE3OC5nb29nbGUuY29tIHdpdGggU01UUCBpZCB3MTA3c285NjYwODQ2d3JiLjkKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyNiBEZWMgMjAxNyAxNDo0NzowMSAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD0yNFV2OXVNL0hibzNFVEE4OU9Ga3JwMTdlclRHR1J4Y05EdjRaSml6VWljPTsKICAgICAgICBiPWZQeGUwb05JWCtDNnpyRER5YlpkUXMxN0NBcEIzZXRwWXdFUlorZ1FydWRjaGZRVzBlVVlTUUUzb2lWb0FUdCt4ZgogICAgICAgICA2TjdGRU1IV1BMSTBMSkdvVHNzSGt0cS84UWlkVTVVUG4waTByY1RHWDNzNVRqbnN1YVhaKzlpRWE2MldHY1VhdDA3WAogICAgICAgICAvVUpuYjVJak5yczFIRFdkclRVNGZQSCtxUm14Rld4dkdjSU96L2haOERVYU95LzcycUJyc0RJR21LZHgyOW9KRWFCSQogICAgICAgICBSRUhPM2RJNHd0aitWSW96dHdYM1hqT1A0b1E0WmVaSGdLS1BDeGdtU2NRSG5OQkJqVE5yc05rdDhrMm1Xbkg5WVdKdQogICAgICAgICA5MjdQcW5YQ0VHWjl2dy9ONkZ0NkZFZHJMNGtkSTVXLyt3VXVydzFmZ2M1OWZEZVJoWWtodERoaFVFVTJmSDJjOGJheAogICAgICAgICBZbUVnPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZAogICAgICAgICA6c3ViamVjdDp0bzsKICAgICAgICBiaD0yNFV2OXVNL0hibzNFVEE4OU9Ga3JwMTdlclRHR1J4Y05EdjRaSml6VWljPTsKICAgICAgICBiPWpjQXJwTUFUY3J2M2J2OWhySW5wenVPTE9MQTI5MFA0UjhXVWcvQkhqKzB0V1VxK3Jod3llNTVtWFd4Z0RwanNrbwogICAgICAgICBvcCtMWHU3RXRkZjVVbEJCMTdUd3NVbld1VGR3WVExeklJOFVUdVpaMW9CbWdVNlpBVDlBZHp6NXhQbXMyc2tDNHlRcgogICAgICAgICBCUElsYWxRcnN0RXp6YkpudDk5NlhpdkRUS3hHUFVPaVUvU0NKQ3NuV1F0U25hc3Z3SytBN2VaRjFZcmRuYmVwellOMgogICAgICAgICB0TkNDWWkvL2kvNm42MUQ3TEJHTWpoYTk3WFRZL1R4enhOVEkvWW5URlFEd1NvcU53QU80eXE0dThWc0JLVUl4TmFKdQogICAgICAgICBiYzE3TXdWbmVYQkZ1NUdkN2I1dkw5TlQ0Y2pGdTdBNUhJcnVQeUxDbWp0M0dtS2pMWjRWclZqQUQrMGJhL25pOWt1MAogICAgICAgICBWMnJ3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBS0dCM21KVkVvRW9LTFAyNDh4Y3lXcmdscy8ybExScnhWUWloY0VUTUZQMUFreGF5TzV3QVcvUgoJaGd5azdSWHhBc3pWSFVReWxSUEIwNDNyczVPS2tqKzNrY2FocnJJbHpRPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFDSmZCb3VNY3U4dTB5WW5VRlF2Sk5xd2FZV096T0Z6cENkZVliMTBSNnpNVkEwTFArRzVhZEZoM2trWSswMFhsUFJMY2ZoQmpsdXpNMXcwZUU4SnRFS2hheGM9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4yMDAuNzQgd2l0aCBTTVRQIGlkIGUxMG1yMjAwNzIzNXdyaC4xMzMuMTUxNDMyODQyMDc4OTsKIFR1ZSwgMjYgRGVjIDIwMTcgMTQ6NDc6MDAgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPDk1MGRlMjgwLTU5MjgtNGZlMy1hY2E4LTA5MjM0MTUyNGM2NkBnbXguZGU+IDxvcC56YnZjY2FpeGtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KIDw2M2M5MmVjZC1iMzI5LWJiNDktOTQ4YS1iNTFmNGIxOWFlMGZAZ214LmRlPiA8b3AuemJ2amRmZG5rZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CiA8Q0ErblBuTXg1REpYU25obTg5RD1QRVNpU2VicjFlUzVGZk5BN3VrZ2pLZm03UUNFREt3QG1haWwuZ21haWwuY29tPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBUdWUsIDI2IERlYyAyMDE3IDIyOjQ2OjUwICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5Nd2stM2g4MDNKTSsxNVdINDdkMHltMzI2NXVyV2cyMlFVSHEyK2lZSE92U2dAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBtYXZlbi1hcmNoaXZlciBidWlsZCBvbiBKZW5raW5zIC0gVGVzdCBGYWlsdXJlcwpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwODllMDgyOWQyNjg5ODMyNTEwNTYxNDYwZjNkIgoKLS0wODllMDgyOWQyNjg5ODMyNTEwNTYxNDYwZjNkCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpbNl06Cmh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvam9iL21hdmVuLWJveC9qb2IvbWF2ZW4tYXJjaGl2ZXIvam9iL21hc3Rlci82L3Rlc3RSZXBvcnQvCgpPbiBUdWUgMjYgRGVjIDIwMTcgYXQgMjI6NDUsIFN0ZXBoZW4gQ29ubm9sbHkgPApzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKCj4gWWVzLCBJIGhhdmUgc2V0IHRoZSBjb21tYW5kIGxpbmUgdG8gaWdub3JlIGZhaWxpbmcgdGVzdHMsIHRoZW4gdGhlIGp1bml0Cj4gcmVwb3J0ZXIgbWFya3MgdGhlIGJ1aWxkIGFzIHVuc3RhYmxlIGJhc2VkIG9uIHRoZSB0ZXN0IHJlc3VsdHMKPgo+IFlvdSBzaG91bGQgYmUgYWJsZSB0byBzZWUgdGhlIDI3IGZhaWxpbmcgdGVzdHMgZnJvbSBbNl0KPgo+IE9uIFR1ZSAyNiBEZWMgMjAxNyBhdCAyMTo1OSwgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPiB3cm90ZToKPgo+PiBJbnRlcmVzdGluZy4uLgo+Pgo+PiBUaGUgcGlwZWxpbmUgc3RlcHNbMV0gc2F5IGFsbCBzdWNjZWVkZWQsIGhvd2V2ZXIgIzYgb3ZlcnZpZXdbMl0gY29tcGxhaW50cwo+PiBhYm91dCBmYWlsaW5nIHRlc3RzLgo+Pgo+PiBSb2JlcnQKPj4KPj4gWzFdCj4+Cj4+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvam9iL21hdmVuLWJveC9qb2IvbWF2ZW4tYXJjaGl2ZXIvam9iL21hc3Rlci82L2Zsb3dHcmFwaFRhYmxlLwo+PiBbMl0KPj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy9qb2IvbWF2ZW4tYm94L2pvYi9tYXZlbi1hcmNoaXZlci9qb2IvbWFzdGVyLzYvCj4+Cj4+IE9uIFR1ZSwgMjYgRGVjIDIwMTcgMjA6NDQ6MzUgKzAxMDAsIEthcmwgSGVpbnogTWFyYmFpc2UKPj4gPGtobWFyYmFpc2VAZ214LmRlPiB3cm90ZToKPj4KPj4gPiBIaSBSb2JlcnQsCj4+ID4KPj4gPiBJIHdpbGwgdHJ5IGFuZCBzZWUgdGhlIHJlc3VsdC4uCj4+ID4KPj4gPiBUaGFua3MuCj4+ID4KPj4gPiBLaW5kIHJlZ2FyZHMKPj4gPiBLYXJsIEhlaW56Cj4+ID4KPj4gPgo+PiA+IE9uIDI2LzEyLzE3IDIwOjI3LCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPj4gPj4gVGhlIGpvYiBzdGFydGluZyBxdWl0ZSBzb21lIHRpbWUgYWdvLiBNYXliZSBiZXR0ZXIgdG8ga2lsbCB0aGUgaXQgYW5kCj4+ID4+IHN0YXJ0IG92ZXIgYWdhaW4uCj4+ID4+IEkgaGFkIHRyb3VibGUgdmlzaXRpbmcgYnVpbGRzLmFwYWNoZS5vcmcgdGhpcyBhZnRlcm5vb24sIGNvdWxkIGJlCj4+ID4+IHJlbGF0ZWQuCj4+ID4+ICB0aGFua3MsCj4+ID4+IFJvYmVydAo+PiA+PiAgT24gVHVlLCAyNiBEZWMgMjAxNyAyMDowMTowMiArMDEwMCwgS2FybCBIZWlueiBNYXJiYWlzZQo+PiA+PiA8a2htYXJiYWlzZUBnbXguZGU+IHdyb3RlOgo+PiA+Pgo+PiA+Pj4gSGksCj4+ID4+Pgo+PiA+Pj4gY3VycmVudGx5IEknbSBvYnNlcnZpbmcgYSBzdHJhbmdlIHRoaW5nLi5jYXVzZSB0aGUgYnVpbGQgb24gSmVua2lucwo+PiA+Pj4gcHJvZHVjZXMgdGVzdCBmYWlsdXJlIHdpdGggSkRLIDkKPj4gPj4+Cj4+ID4+Pgo+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL2pvYi9tYXZlbi1ib3gvam9iL21hdmVuLWFyY2hpdmVyL2pvYi9tYXN0ZXIvNS9jb25zb2xlRnVsbAo+PiA+Pj4gVGhlIHByb2JsZW0gSSdtIGN1cnJlbnRseSBoYXZpbmcgaXMgdGhhdCBJIGNhbid0IHJlcHJvZHVjZSB0aGlzLi4KPj4gPj4+Cj4+ID4+PiBJIGhhdmUgdGVzdGVkIHdpdGggTWF2ZW4gMy41LjIgYW5kIEpESyA5LjAuMSB3aXRob3V0IGFueSBwcm9ibGVtIG9uIG15Cj4+ID4+PiBNYWMgLi4uCj4+ID4+Pgo+PiA+Pj4gSXMgc29tZW9uZSBvdXQgdGhlcmUgd2hvIGNhbiBjaGVjayB0aGUgY3VycmVudCBzdGF0ZSBvZiBtYXZlbi1hcmNoaXZlcgo+PiA+Pj4gZ2l0IHJlcG8gb24gV2luZG93cyBhbmQgY2FuIHJlcHJvZHVjZSB0aGUgaXNzdWUgPwo+PiA+Pj4KPj4gPj4+IEl0IHdvdWxkIGJlIGdyZWF0Li5UaGFua3MgaW4gYWR2YW5jZS4KPj4gPj4+Cj4+ID4+PiBLaW5kIHJlZ2FyZHMKPj4gPj4+IEthcmwgSGVpbnogTWFyYmFpc2UKPj4gPgo+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pgo+PiAtLQo+IFNlbnQgZnJvbSBteSBwaG9uZQo+Ci0tIApTZW50IGZyb20gbXkgcGhvbmUKCi0tMDg5ZTA4MjlkMjY4OTgzMjUxMDU2MTQ2MGYzZC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NDYzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBOb3YgMTIgMTA6MDY6MzMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDYzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDAyNzJFMTA5NjMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxMiBOb3YgMjAxNyAxMDowNjozMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk3NTE0IGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIE5vdiAyMDE3IDEwOjA2OjMyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NzQxMiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMiBOb3YgMjAxNyAxMDowNjozMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk3NDAwIGludm9rZWQgYnkgdWlkIDk5KTsgMTIgTm92IDIwMTcgMTA6MDY6MzIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDEyIE5vdiAyMDE3IDEwOjA2OjMyICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNkE2RjgxODA4NTEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEyIE5vdiAyMDE3IDEwOjA2OjMxICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuNDAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjQwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIENGbTYxVmNxbklDUSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgMTIgTm92IDIwMTcgMTA6MDY6MzAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13cjAtZjE3NC5nb29nbGUuY29tIChtYWlsLXdyMC1mMTc0Lmdvb2dsZS5jb20gWzIwOS44NS4xMjguMTc0XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIENDNUM3NUZDODEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEyIE5vdiAyMDE3IDEwOjA2OjI5ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdyMC1mMTc0Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIDRzbzEyMDAyMDc3d3J0LjAKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMiBOb3YgMjAxNyAwMjowNjoyOSAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1DVUhFWDN6MU5FSkRMR1dmTWZzZk5YSXNrNWNJbGhHbG1SWjV5WnlrbWNnPTsKICAgICAgICBiPVBpQzFxTXJkVTRuZnNQL2lnQnJ1V0YwN2xKaklOS1lRZ3ppeGV5czk3UVBGb0RvamhiR2NsNTg0OHcxV1ZjencrbwogICAgICAgICB2MXR1bFlrS0FCNXI0L0JBMEdqV0RHcFNsRGF3SGl1L1VUaEpzbkNZSWZRM0VVQlg0MFBVWm5Gd0pFRThrd1pQV3ljVQogICAgICAgICBzZEtLUnhKTGc3ZHBnOFhBQ2l0enVVS2tWdXZsQmxHK1Z2YlkwVDJPTi9JaGQxQWx2Z0kxUEdiN2ZoMGR5Tm92UWQ3VQogICAgICAgICBibng4cGtLRFpUd2FPYzRSWG5RNGY0Ny9hN1A2UjlpMmZtMHJwM3laSVhxWURFbEQyaVVmU2dmenN2NVAwNTB0d3JVTQogICAgICAgICBCdkJ3QnlMWHVTR3ZZcW9zN3hqRzJFOFducWFoYitjVXpWOFk0azIycE9RWFRQdFN5cVZNOWZYcnFDU09INlQ4cGE3TgogICAgICAgICBZVlpBPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1DVUhFWDN6MU5FSkRMR1dmTWZzZk5YSXNrNWNJbGhHbG1SWjV5WnlrbWNnPTsKICAgICAgICBiPWlpdVQvNm1XcGxRS1Y0Q0tCVDY2ZmRJOGFJUGtiKzNFTFQxTHhXR2VOSUhWYWxMcERSMTFTTWErZzlLdE04MmxKdAogICAgICAgICA3ejVOMSszMGRJZ1F4UHFxcXdqQ3lYT1VjNDYrenl6UWNvWmVERDlEdnUwRE0rMkQyN0puNW1FUDdKdTNwaDNhRVBaYgogICAgICAgICBET09oMnprLzlyZ2VnM2NVeWFDQ214Y3BPenBwdGt2STVSVS9KRGxlR1RyMTQxNUx4dnpwMmU3Tm80Y21rQ3EzcTZhcgogICAgICAgICBad21wckRkQjZ5Y1FXcHE4b1ZXdkZoWGNsQ1doSHdneVhrV3lNRjdnOCtaelZSbVNjVFZnaWRaQkJUWlZocVVCSHFxRwogICAgICAgICBiL0lGLzZTTVBDYzZGc3JSUHR1QkpNbjY1VnRlM3p3dTFKZlhmR2c0NlZua1BBdkRCNnBidk0yVEdtWEhZWW5MZU84WQogICAgICAgICBsNENnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg2TW9hczBCeWVOZ0F1cnd2dDE4YldaNEhCL0xsaVhyajZSUDY1YmdoNU5jRDdETmkvTQoJdWJzVUd5WXBxdzZ0Z2ZhUUhVM09sQzdySE5hL0QyUks1TlpvUkwvS01RPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TVk4dXJQQk14ZG93TTVzdUhTckpEYXF2R2loTTlXRHNHZzNaV2NFVjQzdmIzc1JTazhMaDU3VlF3bVFkT3hrakQ2VzIxNlpCeVlUQ25uNitPRUxnLzA9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4yMDEuNSB3aXRoIFNNVFAgaWQgbTVtcjQ5NjAzNDh3cmguNjguMTUxMDQ4MTE4ODQ1MDsgU3VuLAogMTIgTm92IDIwMTcgMDI6MDY6MjggLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPENBK25Qbk13RUg5WjJteXA3MXVhU3JkY3lMSlJGckUtVnJ0MjAxOTFyZDAxaCtVZmhqd0BtYWlsLmdtYWlsLmNvbT4KIDxDQUpjS3pIR2V2WFd1dU5XdlFTLTVjNHFGa1k3UGdZSF92elB0Q2h4VDduN3ROZFdEM2dAbWFpbC5nbWFpbC5jb20+CkluLVJlcGx5LVRvOiA8Q0FKY0t6SEdldlhXdXVOV3ZRUy01YzRxRmtZN1BnWUhfdnpQdENoeFQ3bjd0TmRXRDNnQG1haWwuZ21haWwuY29tPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBTdW4sIDEyIE5vdiAyMDE3IDEwOjA2OjE3ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5Nd290OUx2cHBPd0REOGlrZGg9Uzh1elVnaGtmd3FWK3hDRWZ0dl9fK2Y3RHdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiA0LjAuMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwODllMDgyZjkxMWNhZDc3NmYwNTVkYzY0ZTZmIgoKLS0wODllMDgyZjkxMWNhZDc3NmYwNTVkYzY0ZTZmCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCk9uIFN1biAxMiBOb3YgMjAxNyBhdCAwNzo0MSwgQ2hyaXMgR3JhaGFtIDxjaHJpc2d3YXJwQGdtYWlsLmNvbT4gd3JvdGU6Cgo+IHJlcXVpcmVkOgo+ICAtICpldmVyeXRoaW5nKiBpbiBzZXR0aW5ncy54bWwgY2FuIGJlIHB1dCBpbiBhIHByb2ZpbGUgc2VjdGlvbiBpbgo+IHNldHRpbmdzLnhtbC4KPgo+IEkgb2Z0ZW4gbW92ZSBhcm91bmQvYmV0d2VlbiBwcm9qZWN0cyBhbmQgaGF2aW5nIHRvIHJlZG8gbWlycm9ycyBzZWN0aW9uLAo+IGFuZCB1bmFibGUgdG8gYWRkIHNlcnZlcnMgaW50byB0aGUgcHJvZmlsZSBzZWN0aW9uIGZvciBjbGFyaXR5IGlzIGEgcGFpbi4KPgo+IEZvciBtZSwgaXQncyBqdXN0IGEgbWF0dGVyIG9mIGNvbnZpZW5lbmNlLgo+CgpTbyBvbmUgb2YgdGhlIGlzc3VlcyB3aXRoIHRoYXQgaXMgbXVsdGlwbGUgTWF2ZW4gdmVyc2lvbnMuCgpPbmNlIHdlIGNoYW5nZSB0aGUgc2V0dGluZ3Mgc2NoZW1hLCB3ZSBlaXRoZXIgbmVlZCB0byBoYXZlIHR3byBzZXR0aW5ncwpmaWxlcyBvciB3ZSBibG9jayBvbGRlciBNYXZlbiB2ZXJzaW9ucyBzaGFyaW5nIHRoZSBzZXR0aW5ncyBmaWxlIHdpdGggbmV3ZXIKdmVyc2lvbnMuCgpOb3cgbWF5YmUgZm9yIDQuMC4wIHdlIG1vdmUgdG8gYSB+Ly5tNCBkaXJlY3Rvcnkgb3Igfi8ubWF2ZW4KClRoYXQgY291bGQgZW5kIHVwIGR1cGxpY2F0aW5nIHRoZSBsb2NhbCByZXBvIGNhY2hlLi4uIHVubGVzcyB3ZSBkZWZhdWx0IHRoZQpjYWNoZSB0byB+Ly5tMi9yZXBvc2l0b3J5IGFueXdheS4uLiBvdG9oIGEgY29uY3VycmVuY3kgc2FmZSBsb2NhbCByZXBvCmNhY2hlIG1heSBtYW5kYXRlIGEgbmV3IGxvY2F0aW9uLi4uIGJ1dCBkb3VibGUgdGhlIGRvd25sb2FkcyBmb3IgaW50ZXItb3AKd2l0aCBvbGRlciBNYXZlbiBpbnN0YWxscyBvbiB0aGUgc2FtZSBtYWNoaW5lIHNlZW1zIG5vdCBzbyBnb29kIHRvIG1lLgoKCj4gT24gU2F0LCBOb3YgNCwgMjAxNyBhdCAxMToyMCBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiA+IFRoZSBwYXN0IHR3byBkYXlzLCBIZXJ2PUMzPUE5LCBSb2JlcnQgYW5kIEkgaGF2ZSBiZWVuIGRpc2N1c3Npbmcgb3VyIG5lPQp4dAo+IHN0ZXBzLgo+ID4KPiA+IEkgdGhpbmsgd2UgaGF2ZSBhIHNlbWktY29uc2Vuc3VzIHdoaWNoIEkgd2FudCB0byBicmluZyBiYWNrIHRvIHRoZSBsaXN0PQo6Cj4gPgo+ID4gV2Uga2VlcCAzLjUueCBhcyBhIHN0YWJsZSBicmFuY2ggd2l0aCBjcml0aWNhbCBidWcgZml4ZXMgb25seQo+ID4KPiA+IFdlIHN3aXRjaCBtYXN0ZXIgdG8gNC4wLjAgYW5kIHN0YXJ0IHRvIGJ1cm4gZG93biBhIHJlbGVhc2Ugc2NvcGUuCj4gPgo+ID4gNC4wLjAgd2lsbCBub3QgY2hhbmdlIHRoZSBwb20gbW9kZWxWZXJzaW9uCj4gPgo+ID4gVGhlIDQuMC4wIHNjb3BlIHNob3VsZCBwcm9iYWJseSBiZToKPiA+Cj4gPiBSZXF1aXJlZDoKPiA+ICogZHJvcCBKYXZhIDcsIHN3aXRjaCBjb2RlYmFzZSB0byBKYXZhIDggaWRpb21zICh3aGlsZSBtYWludGFpbmluZyBiaW5hPQpyeQo+ID4gYXBpIGNvbXBhdGliaWxpdHkgZm9yIHBsdWdpbnMpCj4gPiAqIHNwZWNpZnkgdGhlIGNsYXNzbG9hZGVyIGJlaGF2aW91ciBhbmQgZml4IGltcGwgdG8gYWxpZ24gd2l0aCBzcGVjIChtYT0KeQo+ID4gbmVlZCBhIHBsdWdpbiBmbGFnIHRvIGFsbG93IHBsdWdpbnMgdG8gb3B0IGluIHRvIHNwZWMgYmVoYXZpb3VyKQo+ID4gKiBzcGVjaWZ5IHRoZSBleHRlbnNpb24gc3BlYwo+ID4gKiBhbGxvdyBsaW1pdGVkIG11dGF0aW9uIG9mIHRoZSBydW50aW1lIG1vZGVsIChyZWR1Y2luZyB0cmFuc2l0aXZlCj4gPiBkZXBlbmRlbmNpZXMgZm9yIGNvbnN1bWVycyB3aXRoaW4gdGhlIHJlYWN0b3IsIG9ubHkgZm9yIHBsdWdpbiBnb2FscyB0aD0KYXQKPiA+IGRlY2xhcmUgaW50ZW50KSB1c2UgY2FzZTogc2hhZGUgcGx1Z2luCj4gPiAqIGJldHRlciBDSSBpbnRlZ3JhdGlvbiBob29rcwo+ID4gKiBuaWNlIGVycm9yIG1lc3NhZ2UgZm9yIG5ld2VyIHBvbSBtb2RlbFZlcnNpb24KPiA+Cj4gPiBPcHRpb25hbDoKPiA+ICogKGRhbW4gSSBmb3Jnb3QsIG1heWJlIFJvYmVydCByZW1lbWJlcnMpCj4gPiAtLQo+ID4gU2VudCBmcm9tIG15IHBob25lCj4gPgo+Ci0tPTIwClNlbnQgZnJvbSBteSBwaG9uZQoKLS0wODllMDgyZjkxMWNhZDc3NmYwNTVkYzY0ZTZmLS0KCkZyb20gZGV2LXJldHVybi0xMjQzOTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAgNCAxMzoxNTowMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzOTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMUQzNTcxN0U2RgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICA0IE5vdiAyMDE3IDEzOjE1OjAwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzkwMzUgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBOb3YgMjAxNyAxMzoxNDo1OSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzg5NjMgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBOb3YgMjAxNyAxMzoxNDo1OSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc4OTUxIGludm9rZWQgYnkgdWlkIDk5KTsgNCBOb3YgMjAxNyAxMzoxNDo1OSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDQgTm92IDIwMTcgMTM6MTQ6NTkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBBMjAyREM3QTI1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxMzoxNDo1OCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjQwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC40MDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFNOZ3gtdkp3NC1RbCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgIDQgTm92IDIwMTcgMTM6MTQ6NTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13cjAtZjE4MS5nb29nbGUuY29tIChtYWlsLXdyMC1mMTgxLmdvb2dsZS5jb20gWzIwOS44NS4xMjguMTgxXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDUzQkE1NUZCOTQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA0IE5vdiAyMDE3IDEzOjE0OjU3ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdyMC1mMTgxLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHU0MHNvNDY3Nzc5NHdyZi4xMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDA0IE5vdiAyMDE3IDA2OjE0OjU3IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXBJa1VucGJnTWN1YllwZFUzWi85ZjVGcTdrdFkya2M4UlZ5NmpxRWIyRWs9OwogICAgICAgIGI9RjdvOHM0MFE0dXIwd3ZqMEFlWmx1MVUrelo1bElSemxyRWVGL3p6VlBScEpweTV0dUtMOW1aTkl3RG5USFFFUy9sCiAgICAgICAgIHdUbWVtdTVpZkxLQ1hlaUczeFJ1c1hyZkQxcGhRSEEzL09nMnpsViszemhjcjZhRUhyWnBTNjJLcDBQdjhyRi83QUlaCiAgICAgICAgIDVNTGhGeUsrRVU3N2h2WVBVdkJ1akh0Ym9pL3FHQ1JjSlA2S2loczhkVXZpb0RoTDN5WGtadXBHWkl0cVl3aGsxcTllCiAgICAgICAgIG5rSE0xdlRLRUMxc2MwOXNwUDBEdDkyYjlXUFh4U3VtcGtWWDRweEFkSXNDbFYxYUxuWnNBazQ4ZitxSHMzUitjRVliCiAgICAgICAgIE9kUFd2WWhZRXNtbVYzNFdrWkh5Zm8wZ2NLTXdwSEhHMUlnSS85SXNUaU5PZmFtQW84SjkzSVZ3Nm94Yk9XeDhuaHhvCiAgICAgICAgIFNFMmc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXBJa1VucGJnTWN1YllwZFUzWi85ZjVGcTdrdFkya2M4UlZ5NmpxRWIyRWs9OwogICAgICAgIGI9SUFQWjRyU3MvNHA3eXFPK0NlOEp4cFlEMFVUY0lwTVhKSGgrQUIrdjFJWFQyUWZOWlZnQWN3N2RpdmpSSUROUGl5CiAgICAgICAgIGFvaUg0WElkOEloTnJ6RWs1azI2NVZMRm5LMm1mOXczV043TmZFNHFIV1N2OGVkSjViZ28vaXNDWEh0a2pWZGpiRG1NCiAgICAgICAgIGpZMHlLMG1YV3I5bEJ0bTY3L3ZGdFhCRjFTbmpwZ0dvOW56Ti9YQSt2NFBLY0ZkQ3hJYnl2UE5QbERUdE9sMXoyaHZZCiAgICAgICAgIERqbEl6Q3lhb3hnTDhQLzJqZW51Wk8zVkNMdVBYWjVwVzNKTVNJNVNqTW9YRCtHT0J3OUNoblRvcmJQNkVBVlRBeENjCiAgICAgICAgIGE4TEhlZkZsUHVWWCs4b3NzNm1BaXdiUlFqSzRLdUhTQVZTcmxibkdxWGk1cTlvUjZyWlN1V1ZsdkN6dVNXQ3Jjem9OCiAgICAgICAgIFBhOEE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVVtUi9uYzF4QjZSd3MwWjNSSW1nRitwVStXNTNSeExvVHZIK3BrRGNDNUo2cXdnN0ZECglISXlnMlhVeDh6blE2VW9mWUw5TjFuNVdDRUl6QytGb1ZaVGw0ZmlBUnc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArUll3dEh4WS80RnluTEFzK2tNVE0zUDRTSEtjTTZ2RnQ1ODF1RWloRGY2dWxYazBkOVI4MldBc1ZQV0cvdG8rc0tKVGxFNFFENk8rWXlHcS8zUHhuRT0KWC1SZWNlaXZlZDogYnkgMTAuMjIzLjE2Ni4xNDYgd2l0aCBTTVRQIGlkIHQxOG1yODc5OTA2M3dyYy42NC4xNTA5ODAxMjk2MTE2OwogU2F0LCAwNCBOb3YgMjAxNyAwNjoxNDo1NiAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8Q0ErblBuTXdFSDlaMm15cDcxdWFTcmRjeUxKUkZyRS1WcnQyMDE5MXJkMDFoK1VmaGp3QG1haWwuZ21haWwuY29tPgogPENBK25Qbk13aGo9Q2RrblU2V3BBQUdldEt5bmhRT0pCZDZHRm4rRU1DQ3dhOTBkOUxvZ0BtYWlsLmdtYWlsLmNvbT4KSW4tUmVwbHktVG86IDxDQStuUG5Nd2hqPUNka25VNldwQUFHZXRLeW5oUU9KQmQ2R0ZuK0VNQ0N3YTkwZDlMb2dAbWFpbC5nbWFpbC5jb20+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFNhdCwgMDQgTm92IDIwMTcgMTM6MTQ6NDUgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk13dEtjeXk3aWRpcTBoNjQ5RU1aWit5VDRxLU53RFBKeWRvckFWd01VQmpNQUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IE1hdmVuIDQuMC4wClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQ3NmU5OGVmYzE0ZTA1NWQyODAxNjIiCgotLTAwMWExMTQ3NmU5OGVmYzE0ZTA1NWQyODAxNjIKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gU2F0IDQgTm92IDIwMTcgYXQgMTI6MjQsIFN0ZXBoZW4gQ29ubm9sbHkgPApzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKCj4gT24gU2F0IDQgTm92IDIwMTcgYXQgMTI6MjAsIFN0ZXBoZW4gQ29ubm9sbHkgPAo+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Cj4+IFRoZSBwYXN0IHR3byBkYXlzLCBIZXJ2PUMzPUE5LCBSb2JlcnQgYW5kIEkgaGF2ZSBiZWVuIGRpc2N1c3Npbmcgb3VyIG5leD0KdAo+PiBzdGVwcy4KPj4KPj4gSSB0aGluayB3ZSBoYXZlIGEgc2VtaS1jb25zZW5zdXMgd2hpY2ggSSB3YW50IHRvIGJyaW5nIGJhY2sgdG8gdGhlIGxpc3Q6Cj4+Cj4+IFdlIGtlZXAgMy41LnggYXMgYSBzdGFibGUgYnJhbmNoIHdpdGggY3JpdGljYWwgYnVnIGZpeGVzIG9ubHkKPj4KPj4gV2Ugc3dpdGNoIG1hc3RlciB0byA0LjAuMCBhbmQgc3RhcnQgdG8gYnVybiBkb3duIGEgcmVsZWFzZSBzY29wZS4KPj4KPj4gNC4wLjAgd2lsbCBub3QgY2hhbmdlIHRoZSBwb20gbW9kZWxWZXJzaW9uCj4+Cj4+IFRoZSA0LjAuMCBzY29wZSBzaG91bGQgcHJvYmFibHkgYmU6Cj4+Cj4+IFJlcXVpcmVkOgo+PiAqIGRyb3AgSmF2YSA3LCBzd2l0Y2ggY29kZWJhc2UgdG8gSmF2YSA4IGlkaW9tcyAod2hpbGUgbWFpbnRhaW5pbmcgYmluYXI9CnkKPj4gYXBpIGNvbXBhdGliaWxpdHkgZm9yIHBsdWdpbnMpCj4+ICogc3BlY2lmeSB0aGUgY2xhc3Nsb2FkZXIgYmVoYXZpb3VyIGFuZCBmaXggaW1wbCB0byBhbGlnbiB3aXRoIHNwZWMgKG1heQo+PiBuZWVkIGEgcGx1Z2luIGZsYWcgdG8gYWxsb3cgcGx1Z2lucyB0byBvcHQgaW4gdG8gc3BlYyBiZWhhdmlvdXIpCj4+ICogc3BlY2lmeSB0aGUgZXh0ZW5zaW9uIHNwZWMKPj4gKiBhbGxvdyBsaW1pdGVkIG11dGF0aW9uIG9mIHRoZSBydW50aW1lIG1vZGVsIChyZWR1Y2luZyB0cmFuc2l0aXZlCj4+IGRlcGVuZGVuY2llcyBmb3IgY29uc3VtZXJzIHdpdGhpbiB0aGUgcmVhY3Rvciwgb25seSBmb3IgcGx1Z2luIGdvYWxzIHRoYT0KdAo+PiBkZWNsYXJlIGludGVudCkgdXNlIGNhc2U6IHNoYWRlIHBsdWdpbgo+PiAqIGJldHRlciBDSSBpbnRlZ3JhdGlvbiBob29rcwo+PiAqIG5pY2UgZXJyb3IgbWVzc2FnZSBmb3IgbmV3ZXIgcG9tIG1vZGVsVmVyc2lvbgo+Pgo+ICogZGVjbGFyZSBwbHVnaW4gYXBpIGRlcHJlY2lhdGlvbiBwb2xpY3k6ClRoZSBuZXh0IG1ham9yIHZlcnNpb24gb2YgTWF2ZW4gKDUuMC4wKSB3aWxsIG5vdCBzdXBwb3J0IHBsdWdpbnMgY29tcGlsZWQKYWdhaW5zdCBNYXZlbiAyLnggQVBJcy4gUGx1Z2lucyBjb21waWxlZCBhZ2FpbnN0IDMuMC0zLjMgd2lsbCBiZSBiZXN0CmVmZm9ydC4gMy41LnggKE1hdmVuIFJlc29sdmVyIG5vdCBhZXRoZXIpIGlzIHRoZSBjdXQtcG9pbnQKCgo+PiBPcHRpb25hbDoKPj4gKiAoZGFtbiBJIGZvcmdvdCwgbWF5YmUgUm9iZXJ0IHJlbWVtYmVycykKPj4KPiAqIGluY3JlbWVudGFsIGJ1aWxkCj4gKiBjb25jdXJyZW50IHNhZmUgbG9jYWwgcmVwbyBjYWNoZQo+Cj4+IC0tCj4+IFNlbnQgZnJvbSBteSBwaG9uZQo+Pgo+IC0tCj4gU2VudCBmcm9tIG15IHBob25lCj4KLS09MjAKU2VudCBmcm9tIG15IHBob25lCgotLTAwMWExMTQ3NmU5OGVmYzE0ZTA1NWQyODAxNjItLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDI2MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgT2N0IDE4IDEwOjUwOjU0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI2MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3QURGNzEwRUJBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMTggT2N0IDIwMTcgMTA6NTA6NTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxMjEzOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBPY3QgMjAxNyAxMDo1MDo1NCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTIwNTIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggT2N0IDIwMTcgMTA6NTA6NTQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMjA0MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDE4IE9jdCAyMDE3IDEwOjUwOjUzIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAxOCBPY3QgMjAxNyAxMDo1MDo1MyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEVGQUU5MUEyRTFDCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxOCBPY3QgMjAxNyAxMDo1MDo1MiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDMuMTI5ClgtU3BhbS1MZXZlbDogKioqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0zLjEyOSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTE9UU09GSEFTSD0wLjI1LCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFlkdHFCa1RUN2YySyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgMTggT2N0IDIwMTcgMTA6NTA6NTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13bTAtZjQxLmdvb2dsZS5jb20gKG1haWwtd20wLWY0MS5nb29nbGUuY29tIFs3NC4xMjUuODIuNDFdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQUQxODc1RkQ0MgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTggT2N0IDIwMTcgMTA6NTA6NTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd20wLWY0MS5nb29nbGUuY29tIHdpdGggU01UUCBpZCB1MTM4c285MTk0Njgwd211LjUKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxOCBPY3QgMjAxNyAwMzo1MDo1MSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9MFVLenIxQktEWEc2VUsxQVRxVEZ2bW9aM0M1TGxqVVF1Lzl1TTdsTVdBdz07CiAgICAgICAgYj1Dclh1MlNzWGZ1YmlHbzZISkRFRThodkRkM2JoY1V1WXRIdnc0bllacnNQMTM4ck5lNEk0NjRZOHkwRmhuTVFVUlAKICAgICAgICAgb2tUakZRcG5BcmFhdTdYZ1M4Nmh2Tm5KVjdlaGNYR3EwS3dKY3hBcjY1dGhnbXZkWlh3MVV2ZFhWeHNNRE1hRmRjdlIKICAgICAgICAgcVIwWFBTaTVJSmFNTmtGRVVnVEIrYm00UTc4RnlwOG43azNJWjFzSjdXaWJmSG91T1NpWUdjbHNsMXpDTDYzTHJYQmoKICAgICAgICAgejlSb25rSFZWOGlRSm5JNU5WTUpWNVcrZi9mUTUxcnNKVi83SWVHWU15TEVKQzdheUNFaUJqS3I3VWJGMjZqSFhVSnYKICAgICAgICAgSUh0NHBZNG5ZK2ZZSHR1Y3laQ1AvQTFnM2JNZ25KeStISUhLYXZVT1NkOHV4VVdENjA3TWpsSG9tazJlWjltekttWjkKICAgICAgICAgaHhKZz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9MFVLenIxQktEWEc2VUsxQVRxVEZ2bW9aM0M1TGxqVVF1Lzl1TTdsTVdBdz07CiAgICAgICAgYj1JNDZmUmdHRDRSeW5rN3BWMkRtd2lUdXFPaVpQRDhUVGRHRGgvN2dBdWdwTUJFOVlITitSTGdSQWJDUzVvL2UxWGUKICAgICAgICAgTWFLNjlCZm1KL2VkUmpuM2ZVYVdPR0VxNWlQbWw3bTZUSWNJMlFJZUhLWGY2SlRxaFE5b3NWT3drd25CZ2xwYmR6aGQKICAgICAgICAgSS8vdU1ZUnE3R0Nkb1YrdkptMDFtNlpsOTRZaTlTUjBsUVBucFNHQWtjLzZycVI1ei9jQ21vMFUzQ20yYlVncXVSeW8KICAgICAgICAgYk9tcnM2TTR0ZE9JdEVTUHNwSDNocjREYTZGYXVqUUZmTldJLy9GMkVEZ3Ezd2wwZGgzZlNNaDAzTTc0c095YmhHYzQKICAgICAgICAgdS9adG02VVJkZGJaeU1DTnlTaTNGNzZRWXZKUUc5dmp5emQyVUVOUTJiZ1BBeVZ5WTZ2MU5OU0JEZnFZMjY0S2x6VEYKICAgICAgICAgUHdEQT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhV0NWd2RseFF5OWJCalhWY1UwQ20vYlpZSjc4Wk80SlM5NGM4b1l2MS9uZFNCSWZEYzkKCUFWKzdkUFV4REZ3UlcrK1dxUzJWeDR1YjU0OTk3dkdDY2FpcW5TQ3AyVTZ5ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtRUmxET3FXVEJta252Lys4MFRWVHJmTklkbVhUUGtCTGZqSE9CM1RiMkxHbjRLMFpmSGt0bThWZ3gwSXFIYUttVmlWQ2k2Wm1UMzN2Z2JsWlBmRXE4PQpYLVJlY2VpdmVkOiBieSAxMC4yOC45OS4xMzkgd2l0aCBTTVRQIGlkIHgxMzNtcjU2NjIzODl3bWIuMTIyLjE1MDgzMjM4NDQ3OTU7CiBXZWQsIDE4IE9jdCAyMDE3IDAzOjUwOjQ0IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yMjMuMTg3Ljggd2l0aCBIVFRQOyBXZWQsIDE4IE9jdCAyMDE3IDAzOjUwOjQzIC0wNzAwIChQRFQpCkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMTggT2N0IDIwMTcgMDM6NTA6NDMgLTA3MDAKTWVzc2FnZS1JRDogPENBK25Qbk13dGpuWkUtNTNBTjUzeEY9TWY2SFktRmJHWXdaQVV3M0VVS0hBNGVLQjUyUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4yClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQ4ZTFiOGY5YjJmZjA1NWJkMDAyNmYiCgotLTAwMWExMTQ4ZTFiOGY5YjJmZjA1NWJkMDAyNmYKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCkhpLAoKV2Ugc29sdmVkIDI2IGlzc3VlczoKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3ZlcnNpb249MTIzMzg5NjQmc3R5bGVOYW1lPVRleHQmcHJvamVjdElkPTEyMzE2OTIyCgpUaGVyZSBhcmUgMzU3IGlzc3VlcyBsZWZ0IGluIEpJUkEgZm9yIE1hdmVuIGNvcmU6Cmh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJTNEJTIwTU5HJTIwQU5EJTIwcmVzb2x1dGlvbiUyMCUzRCUyMFVucmVzb2x2ZWQlMjBPUkRFUiUyMEJZJTIwZHVlJTIwQVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwY3JlYXRlZCUyMEFTQwoKU3RhZ2luZyByZXBvOgpodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzczLwoKVGhlIGRpc3RyaWJ1dGFibGUgYmluYXJpZXMgYW5kIHNvdXJjZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cmh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvCgpTcGVjaWZpY2FsbHkgdGhlIHppcCwgdGFyYmFsbCBhbmQgc291cmNlIGFyY2hpdmVzIGNhbiBiZSBmb3VuZCBoZXJlOgpodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yL2FwYWNoZS1tYXZlbi0zLjUuMi1iaW4uemlwCmh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvYXBhY2hlLW1hdmVuLTMuNS4yLWJpbi50YXIuZ3oKaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3My9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItc3JjLnppcApodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yL2FwYWNoZS1tYXZlbi0zLjUuMi1zcmMudGFyLmd6CgpTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKYXBhY2hlLW1hdmVuLTMuNS4yLXNyYy50YXIuZ3ogc2hhMTogOTdkNmQ3YjE4NDg1Yjc5MDZkZDdmMzEzY2RkNDExOTFkMTZkZGU0NgphcGFjaGUtbWF2ZW4tMy41LjItc3JjLnppcDogc2hhMTogZGM4Y2FhNWNkYWNiNDAwOTQzZDI0OTFhMDIwZjc0MmE1MThlOGYwOAoKR2l0IHRhZzoKaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9bWF2ZW4uZ2l0O2E9Y29tbWl0O2g9MTM4ZWRkNjFmZDEwMGVjNjU4YmZhMmQzMDdjNDNiNzY5NDBhNWQ3ZAoKU3RhZ2luZyBzaXRlOgpodHRwczovL21hdmVuLmFwYWNoZS5vcmcvY29tcG9uZW50cy9yZWYvMy1MQVRFU1QvCgpWb3RlIG9wZW4gZm9yIDcyIGhvdXJzLgoKWyBdICsxClsgXSArMApbIF0gLTEKClRoYW5rcywKClN0ZXBoZW4uCgotLTAwMWExMTQ4ZTFiOGY5YjJmZjA1NWJkMDAyNmYtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDY4OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgTm92IDMwIDIyOjA0OjMzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDY4OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyRDk5OTEwRTEzCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMzAgTm92IDIwMTcgMjI6MDQ6MzMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0NTUzIGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIE5vdiAyMDE3IDIyOjA0OjMyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0NDU2IGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIE5vdiAyMDE3IDIyOjA0OjMyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDQ0MyBpbnZva2VkIGJ5IHVpZCA5OSk7IDMwIE5vdiAyMDE3IDIyOjA0OjMyIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAzMCBOb3YgMjAxNyAyMjowNDozMiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDAxQkExMTgwNzAxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAzMCBOb3YgMjAxNyAyMjowNDozMiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuMzc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuMzc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHc0bDhhbHYtUDJWbiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVRodSwgMzAgTm92IDIwMTcgMjI6MDQ6MzEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13bTAtZjQ5Lmdvb2dsZS5jb20gKG1haWwtd20wLWY0OS5nb29nbGUuY29tIFs3NC4xMjUuODIuNDldKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQzM1NjI1RjM5RAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMzAgTm92IDIwMTcgMjI6MDQ6MzAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd20wLWY0OS5nb29nbGUuY29tIHdpdGggU01UUCBpZCB5ODJzbzMyNTY2MTl3bWcuMQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDMwIE5vdiAyMDE3IDE0OjA0OjMwIC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUtML3M3K2F5b0xPd3ZmaTB0MlVkWElpQ2R1K2RQdm9sK0lpTk1nY3F5aTA9OwogICAgICAgIGI9UXUwQzc4bkFzNStNb1Vwbksrc2owdGlRZTJnNHRTM1BVbHhuTGZmYnN4dU90K3pIc3QxMFdyUDJTdm9qSlNocmRICiAgICAgICAgIDZlamYvMDNyUnFMdUlqVjVwVGJaRS9mZ3pQb0p5a3BIYUNLR056TUM3UWZOUE01ZDVtbmpIcGh3T1h3Y0ZtZDFHUjdvCiAgICAgICAgIERyYzh0Rnp2emJiaG0wTUptTmwwM1BvL1oyV0dkaTczdjJyK3RoRjNtYXVkL0hiL1JvK2k1MzhHWXJzdXBJRGQwMlY5CiAgICAgICAgIHpkK3dCUVd3TStZSmNzV2Q2SkplWlg5UGY0d1NnZGZqdDRldHJCR1pKK2ZUL0YxcE5NVXVBVXl3Z3VBanZwVG5lV2xQCiAgICAgICAgIGY1QVpsSmlTTWVha3NZRnROMkpaaERiNlpLeERlZ1V1WUk4cCtmRWx0MTA5WDlZR2MrMDZSeVJ6a0F5QTRRZGxCRXJqCiAgICAgICAgIDdxa1E9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUtML3M3K2F5b0xPd3ZmaTB0MlVkWElpQ2R1K2RQdm9sK0lpTk1nY3F5aTA9OwogICAgICAgIGI9cVlteW9vMW95RDcyekpkb3V1RHhtd2dlaDYrQ1BZR0o5azFsMzB3aVlSMDRWbU93QTZRN3RIQkpHbHBlaUs3eEpMCiAgICAgICAgIFVGWmQ2dWNzUitiTXZpRjN3aVZ3YWxKMFA0M21raFV1K3VNbUtPWUd3a1ZZbERldEk5NHBsZmFwMktubDlJcC92cDUyCiAgICAgICAgIDdMQ1ZqYVhIMHF3eXF5SVc3Tk9qUEVYalNlYmpXSHlOK01TYnJqQWc5bmhGcGw1cUFDdHZEMmFQOFMyMXc1WG9VY2hnCiAgICAgICAgIFBKUFZTekRQemlmUUZIVmFLVy9HV0drSFRoTXg5bUh5NzQvSE5ZNGFLcHAxL0QrUUFVYWJsSWtqdTRJMk4xNjJqWVBqCiAgICAgICAgIFhoSGlWQ0NvV1dHRGFkMXBRT1pyMFYyRHFuTlkwdGhrUjJZeGdTVTlzalpaT1JWbmJKQU9QSmV0dVhnbDkzV21BQXBtCiAgICAgICAgIFVNb1E9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDdjV3F6R25wYWZQRWQxN1BlZmZkV2hablZYUjhTajh2RG9ONm03Tm9xZU1TKzFvWnZQCglKT2txd2h2Vjdmcjc0eUkzcXBTZTVyODRhNVNHQnl1RDBpc2dqSnM2bVByeApYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUdzNHpNYlpTb2NvVk1iTGt6WnpVVmlwdGdGT3p0VGM3VTd2YUhLMlNxRDJkeGJVaWZQTzJTb1ZtY1NNS0M5QUppRkhJOUVWbzRIR1Npb29XTXF2UkNmTkpWUT0KWC1SZWNlaXZlZDogYnkgMTAuMjguNDkuMTk1IHdpdGggU01UUCBpZCB4MTg2bXIxNTk1NDUyd214LjExNi4xNTEyMDc5NDY5NjY1OwogVGh1LCAzMCBOb3YgMjAxNyAxNDowNDoyOSAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMjIzLjE3My4yMzUgd2l0aCBIVFRQOyBUaHUsIDMwIE5vdiAyMDE3IDE0OjA0OjI5IC0wODAwIChQU1QpCkluLVJlcGx5LVRvOiA8Q0ErblBuTXcwc1dnMW9KUDlQNVRucnFiZ3BRU2NXZUEwbThaaTJTYThNQ2IwMWdlOVd3QG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXcwc1dnMW9KUDlQNVRucnFiZ3BRU2NXZUEwbThaaTJTYThNQ2IwMWdlOVd3QG1haWwuZ21haWwuY29tPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBUaHUsIDMwIE5vdiAyMDE3IDIyOjA0OjI5ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5Nd3ZmZDV1WHhjPXJFR1h1LTZWU0RUNW5aZFc2R1RvVDhPUmhoUndwUnVwR1FAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBSRSBzd2l0Y2hpbmcgc3VyZWZpcmUgdG8gdGhlIHN0YW5kYXJkIGJ1aWxkClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQyZTI2NGE5NjRiZjA1NWYzYTZmZWIiCgotLTAwMWExMTQyZTI2NGE5NjRiZjA1NWYzYTZmZWIKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCltXQVJOSU5HXSBSdWxlIDA6IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy5lbmZvcmNlci5SZXF1aXJlSmF2YVZlcnNpb24KZmFpbGVkIHdpdGggbWVzc2FnZToKRGV0ZWN0ZWQgSkRLIFZlcnNpb246IDkuMC4xIGlzIG5vdCBpbiB0aGUgYWxsb3dlZCByYW5nZSBbMS44LDEuOSkuCgoKT2sgZmluZGluZyBzb21lIGJ1Z3MgdGhlbgoKCk9uIDMwIE5vdmVtYmVyIDIwMTcgYXQgMjE6NTksIFN0ZXBoZW4gQ29ubm9sbHkgPApzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKCj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy9qb2IvbWF2ZW4td2lwL2pvYi9tYXZlbi1zdXJlZmlyZS8KPiBqb2IvbmV3LWplbmtpbnNmaWxlLyB0byBzZWUgd2hhdCBpdCdzIGxpa2UuCj4KPiBXZSBjYW4gbG9vayBpbnRvIGFkZGluZyBqYWNvY28gcmVwb3J0aW5nIHRvIHRoZSBzdGFuZGFyZCBidWlsZCBpZiBpdCBpcwo+IHNlZW4gYXMgaW1wb3J0YW50Cj4KCi0tMDAxYTExNDJlMjY0YTk2NGJmMDU1ZjNhNmZlYi0tCgpGcm9tIGRldi1yZXR1cm4tMTIzOTU4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBTZXAgMTEgMDg6NDQ6MTAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTU4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDIxMkQ0MTkxMUMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAwODo0NDoxMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDUyNzM5IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDA4OjQ0OjA5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MjYxNiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAwODo0NDowOSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUyNjA0IGludm9rZWQgYnkgdWlkIDk5KTsgMTEgU2VwIDIwMTcgMDg6NDQ6MDkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDExIFNlcCAyMDE3IDA4OjQ0OjA5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQThCQUIxQTAwMzgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDA4OjQ0OjA4ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMy4xMjkKWC1TcGFtLUxldmVsOiAqKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTMuMTI5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9MT1RTT0ZIQVNIPTAuMjUsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgNy00SnktUHJYaHJNIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAxMSBTZXAgMjAxNyAwODo0NDowNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXVhMC1mMTc5Lmdvb2dsZS5jb20gKG1haWwtdWEwLWYxNzkuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNy4xNzldKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMTE4NjQ1RjY0MAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMDg6NDQ6MDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdWEwLWYxNzkuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgcTI5c28xMDQ0NjI4NXVhZi4zCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMDE6NDQ6MDYgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9ek1uSTZwSWZLZ2FTNEdUcUN0QmxpRStQeDI2YmtWaHJ2dlZyRjMwMktVdz07CiAgICAgICAgYj1QV1d2UVpCTGFlM2tTdzlhOXFzZnRmTm5oekxkSUNYQm40N1YrVFlmZTRlMWVMNVNHWGF6UGFVdzhVTFZVTTdLNXgKICAgICAgICAgSlJ6TnVuOVh3M0FhNk1CZ09kMEI2RWFLRWU5ZW1WWHZEK2FmNDl5a0RPYjNKWXF6aEdzWVl5TFVmM1NOTkFEdks5UFUKICAgICAgICAgRHg2TmJFaXNDTVp2NjlidUJ4UnZXLzhJYUlZQ1Q3c3BRMjV2VTZXajRHK3J4TldtdTNiRVU3L1F2VGJXMUt1ejFMTWUKICAgICAgICAgWWJiaEJDL25LNW91YkE2aEpQd3daQ0tweStvYWttUWVBNThpRkp4aGhpUENvUWthdS90MnpGcWJybHZTZUxpdmFBV1YKICAgICAgICAgQlJYc3YrcHBqMko0TjBtL05vbnZtSGtQVFRzdWNXaUtzVDdNTDFoNlMzUjF2WnIwWkhxNkYvZDh1QzZmNHVRWm10MDMKICAgICAgICAgRVFUdz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9ek1uSTZwSWZLZ2FTNEdUcUN0QmxpRStQeDI2YmtWaHJ2dlZyRjMwMktVdz07CiAgICAgICAgYj1CUFQvUGZLODFROHpiTEtkVXVvRmJXbGpmVXAxSTRXUGdHQ3o5bEVRcWZzWnp1SUN4aEUweVhyQ3BTOWhBQURYM3IKICAgICAgICAgRnlJOG5pOEFZTHlmSCtzYVhpUS96QldCWkdjbWd1S2dmUE8xY2M3WGlxcDFzeDEyTWFhZkJKMExJZDEvTy9vSStNT0sKICAgICAgICAgVmpsQjdVV3hLNitwMVJBMGo5emR3WnRST3JoSW91VmxsamlPcGRXekswU3R5Z2dWcmdxYUZid01tUS9nTlNWNVNyNU4KICAgICAgICAgcmJET0tDSjV5WXFMRkFUQ04yRkJpR0JwWHZSbEZSTTRGWGh2WTliSmlrVmlXSDJyNmsyVHFVT1Q0dkt6NlRROStIL3IKICAgICAgICAgZFRQYllaT29WendxTDdrb0FYcVZuMHVYSmhnVnFzeXJGNTBiUmpVY05PR0d4V290QW9ycDZQYWNvNUpUQXYzdm5Kc1gKICAgICAgICAgODNuZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVZzJEdVVIWjVCYkRMd0tkK2orMmFmeXlIUUZ0RDJNNjhnOTlJT3BMR0twK3BMQnJQUi8KCWlGSXpUK1hJb09Kd3ZGQW1NUkx2UnlHYldmMWdpOGZkaURJPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQURLQ05iNDNybXVUWHJaTTc3c003YUgxem1QdFFyZDFRZzFCT1NGSFg2Q0lHa0l3NTBvMSt5NURBcE1wU0JvU0VtV2JIeGxiNndKTTNDSE8zbXNOcTkyUVpicz0KWC1SZWNlaXZlZDogYnkgMTAuMTc2Ljg0LjE0OCB3aXRoIFNNVFAgaWQgcDIwbXI4ODI3MzgydWFhLjE1NC4xNTA1MTE5NDQ0NjYxOwogTW9uLCAxMSBTZXAgMjAxNyAwMTo0NDowNCAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTc2Ljg5LjYgd2l0aCBIVFRQOyBNb24sIDExIFNlcCAyMDE3IDAxOjQ0OjA0IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0FQQ2pqbkVURlpUTG0rOHJnS1cwcjRzeVhZUnBvQlpqX2FKajF4MmR2aWN6T1lIa2RnQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgogPENBS3VWekJSNUVEa1Qram1iM3BlQmZrcmthdnl2aXllRlJDbW1Zb2dPN1g3aUg9Sy1hUUBtYWlsLmdtYWlsLmNvbT4gPENBUENqam5FVEZaVExtKzhyZ0tXMHI0c3lYWVJwb0Jaal9hSmoxeDJkdmljek9ZSGtkZ0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxMSBTZXAgMjAxNyAwMTo0NDowNCAtMDcwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXgwPWYrK0RRaTMzNmcwcUhnMGF0QllRTU40NkN5X3V6QyttelZORHBtQUxBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzFiMTBjY2Q3ZmFmODA1NThlNWVkM2EiCgotLTk0ZWIyYzFiMTBjY2Q3ZmFmODA1NThlNWVkM2EKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCkJ1aWxkaW5nIHRoZSBzb3VyY2UgYnVuZGxlcyB3aXRoIHRoZSBiaW5hcnkgYnVuZGxlcyBpbiB0aGUgc3RhZ2luZyByZXBvCnVzaW5nIHRoZSBEb2NrZXJmaWxlIGVudmlyb25tZW50cyBpbgpodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWludGVncmF0aW9uLXRlc3RpbmcvdHJlZS9tYXN0ZXIvZW52aXJvbm1lbnRzCgpEZWJpYW4gSkRLIDcKPT09PT09PT09PT0KCkxpbnV4IDY1ZmI4MzJkZmU0MyA0LjkuNDYtbW9ieSAjMSBTTVAgVGh1IFNlcCA3IDAyOjUzOjQyIFVUQyAyMDE3IHg4Nl82NApHTlUvTGludXgKQXBhY2hlIE1hdmVuIDMuNS4xICgwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzOwoyMDE3LTA5LTEwVDEyOjQyOjU0WikKTWF2ZW4gaG9tZTogL3dvcmsvYmluCkphdmEgdmVyc2lvbjogMS43LjBfMTUxLCB2ZW5kb3I6IE9yYWNsZSBDb3Jwb3JhdGlvbgpKYXZhIGhvbWU6IC91c3IvbGliL2p2bS9qYXZhLTctb3Blbmpkay1hbWQ2NC9qcmUKRGVmYXVsdCBsb2NhbGU6IGVuLCBwbGF0Zm9ybSBlbmNvZGluZzogVVRGLTgKT1MgbmFtZTogImxpbnV4IiwgdmVyc2lvbjogIjQuOS40Ni1tb2J5IiwgYXJjaDogImFtZDY0IiwgZmFtaWx5OiAidW5peCIKCm12biB2ZXJpZnkgPT4gU1VDQ0VTUwoKRGViaWFuIEpESyA4Cj09PT09PT09PT09CgpMaW51eCAxMWVmMWMxMTRiNmIgNC45LjQ2LW1vYnkgIzEgU01QIFRodSBTZXAgNyAwMjo1Mzo0MiBVVEMgMjAxNyB4ODZfNjQKR05VL0xpbnV4CkFwYWNoZSBNYXZlbiAzLjUuMSAoMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMzsKMjAxNy0wOS0xMFQxMjo0Mjo1NFopCk1hdmVuIGhvbWU6IC93b3JrL2JpbgpKYXZhIHZlcnNpb246IDEuOC4wXzE0MSwgdmVuZG9yOiBPcmFjbGUgQ29ycG9yYXRpb24KSmF2YSBob21lOiAvdXNyL2xpYi9qdm0vamF2YS04LW9wZW5qZGstYW1kNjQvanJlCkRlZmF1bHQgbG9jYWxlOiBlbiwgcGxhdGZvcm0gZW5jb2Rpbmc6IFVURi04Ck9TIG5hbWU6ICJsaW51eCIsIHZlcnNpb246ICI0LjkuNDYtbW9ieSIsIGFyY2g6ICJhbWQ2NCIsIGZhbWlseTogInVuaXgiCgptdm4gdmVyaWZ5ID0+IFNVQ0NFU1MKCkZlZG9yYSBKREsgOAo9PT09PT09PT09PQoKTGludXggNTQyMTFhMGU2OTRlIDQuOS40Ni1tb2J5ICMxIFNNUCBUaHUgU2VwIDcgMDI6NTM6NDIgVVRDIDIwMTcgeDg2XzY0Cng4Nl82NCB4ODZfNjQgR05VL0xpbnV4CkFwYWNoZSBNYXZlbiAzLjUuMSAoMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMzsKMjAxNy0wOS0xMFQxMjo0Mjo1NFopCk1hdmVuIGhvbWU6IC93b3JrL2JpbgpKYXZhIHZlcnNpb246IDEuOC4wXzE0NCwgdmVuZG9yOiBPcmFjbGUgQ29ycG9yYXRpb24KSmF2YSBob21lOiAvdXNyL2xpYi9qdm0vamF2YS0xLjguMC1vcGVuamRrLTEuOC4wLjE0NC01LmIwMS5mYzI2Lng4Nl82NC9qcmUKRGVmYXVsdCBsb2NhbGU6IGVuX1VTLCBwbGF0Zm9ybSBlbmNvZGluZzogQU5TSV9YMy40LTE5NjgKT1MgbmFtZTogImxpbnV4IiwgdmVyc2lvbjogIjQuOS40Ni1tb2J5IiwgYXJjaDogImFtZDY0IiwgZmFtaWx5OiAidW5peCIKCm12biB2ZXJpZnkgPT4gU1VDQ0VTUwoKSUJNIEpESyA4Cj09PT09PT09CgpMaW51eCAxOTk2MzFlZGNlZWQgNC45LjQ2LW1vYnkgIzEgU01QIFRodSBTZXAgNyAwMjo1Mzo0MiBVVEMgMjAxNyB4ODZfNjQKeDg2XzY0IHg4Nl82NCBHTlUvTGludXgKQXBhY2hlIE1hdmVuIDMuNS4xICgwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzOwoyMDE3LTA5LTEwVDEyOjQyOjU0WikKTWF2ZW4gaG9tZTogL3dvcmsvYmluCkphdmEgdmVyc2lvbjogMS44LjAsIHZlbmRvcjogSUJNIENvcnBvcmF0aW9uCkphdmEgaG9tZTogL29wdC9pYm0vamF2YS9qcmUKRGVmYXVsdCBsb2NhbGU6IGVuX1VTLCBwbGF0Zm9ybSBlbmNvZGluZzogQU5TSV9YMy40LTE5NjgKT1MgbmFtZTogImxpbnV4IiwgdmVyc2lvbjogIjQuOS40Ni1tb2J5IiwgYXJjaDogImFtZDY0IiwgZmFtaWx5OiAidW5peCIKCm12biB2ZXJpZnkgPT4gU1VDQ0VTUwoKQXN1bCBadWx1IEpESyA4Cj09PT09PT09PT09PT0KCkxpbnV4IDEwZThmNGU0NjEzOCA0LjkuNDYtbW9ieSAjMSBTTVAgVGh1IFNlcCA3IDAyOjUzOjQyIFVUQyAyMDE3IHg4Nl82NAp4ODZfNjQgeDg2XzY0IEdOVS9MaW51eApBcGFjaGUgTWF2ZW4gMy41LjEgKDA5NGU0ZTMxYTVhZjU1YmIxN2JlODc2NzVkYTQxZDlhZWNhMDYyZjM7CjIwMTctMDktMTBUMTI6NDI6NTRaKQpNYXZlbiBob21lOiAvd29yay9iaW4KSmF2YSB2ZXJzaW9uOiAxLjguMF8xNDQsIHZlbmRvcjogQXp1bCBTeXN0ZW1zLCBJbmMuCkphdmEgaG9tZTogL3Vzci9saWIvanZtL3p1bHUtOC1hbWQ2NC9qcmUKRGVmYXVsdCBsb2NhbGU6IGVuX1VTLCBwbGF0Zm9ybSBlbmNvZGluZzogVVRGLTgKT1MgbmFtZTogImxpbnV4IiwgdmVyc2lvbjogIjQuOS40Ni1tb2J5IiwgYXJjaDogImFtZDY0IiwgZmFtaWx5OiAidW5peCIKCm12biB2ZXJpZnkgPT4gU1VDQ0VTUwoKSWYgSSBnZXQgdGltZSBsYXRlciBJJ2xsIHJ1biB0aGUgaW50ZWdyYXRpb24gdGVzdHMuCgpPbiAxMSBTZXB0ZW1iZXIgMjAxNyBhdCAwMDoyMCwgRGFuIFRyYW4gPGRhbnRyYW5AZ21haWwuY29tPiB3cm90ZToKCj4gRmFsc2UgYWxhcm0sIEkgbWlzc2VkIGNvbmZpZ3VyZSBnbG9iYWwgc2V0dGluZ3MueG1sLCBpdCBpcyBtaXNzaW5nIHRoZQo+IGRlZmF1bHQgcmVwb3NpdG9yeSBzZXR1cAo+Cj4gLUQKPgo+IE9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDExOjQ3IFBNLCBUaWJvciBEaWdhbmEgPAo+IHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbT4KPiB3cm90ZToKPgo+ID4gKzE6Cj4gPiAzLjUuMSB3b3JrcyBpbiBteSBwcm9qZWN0IGxpa2UgYSBjaGFybSA7LSkKPiA+Cj4gPiBPbiBTdW4sIFNlcCAxMCwgMjAxNyBhdCA1OjM5IFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4KPiA+ID4gSGksCj4gPiA+Cj4gPiA+IFdlIHNvbHZlZCAyNSBpc3N1ZXM6Cj4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiA+ID4gdmVyc2lvbj0xMjMzODk2NCZzdHlsZU5hbWU9VGV4dCZwcm9qZWN0SWQ9MTIzMTY5MjIKPiA+ID4KPiA+ID4gVGhlcmUgYXJlIDM1MCBpc3N1ZXMgbGVmdCBpbiBKSVJBIGZvciBNYXZlbiBjb3JlOgo+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9cHJvamVjdCUyMCUKPiA+ID4gM0QlMjBNTkclMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJQo+ID4gPiAyMEJZJTIwZHVlJTIwQVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwY3JlYXRlZCUyMEFTQwo+ID4gPgo+ID4gPiBTdGFnaW5nIHJlcG86Cj4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjQvCj4gPiA+Cj4gPiA+IFRoZSBkaXN0cmlidXRhYmxlIGJpbmFyaWVzIGFuZCBzb3VyY2VzIGNhbiBiZSBmb3VuZCBoZXJlOgo+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS8KPiA+ID4KPiA+ID4gU3BlY2lmaWNhbGx5IHRoZSB6aXAsIHRhcmJhbGwgYW5kIHNvdXJjZSBhcmNoaXZlcyBjYW4gYmUgZm91bmQgaGVyZToKPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLWJpbi56aXAKPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLWJpbi50YXIuZ3oKPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy56aXAKPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy50YXIuZ3oKPiA+ID4KPiA+ID4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gPiA+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMudGFyLmd6IHNoYTE6IDllYjgyMWYxNTNjNzY2NzE5NGFhMTFjY2QwOTliNwo+ID4gPiBiZDIwNTk1NjBkCj4gPiA+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwOiBzaGExOiAxMjFkNTRiMDQ1MzgwYThhNDg5NWViMTM3OTcwYWIKPiA+IDY5ZTY5OGViMGUKPiA+ID4KPiA+ID4gR2l0IHRhZzoKPiA+ID4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9bWF2ZW4uZ2l0O2E9Y29tbWl0O2g9Cj4gPiA+IDA5NGU0ZTMxYTVhZjU1YmIxN2JlODc2NzVkYTQxZDlhZWNhMDYyZjMKPiA+ID4KPiA+ID4gU3RhZ2luZyBzaXRlOgo+ID4gPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvY29tcG9uZW50cy9yZWYvMy1MQVRFU1QvCj4gPiA+Cj4gPiA+IFZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCj4gPiA+Cj4gPiA+IFsgXSArMQo+ID4gPiBbIF0gKzAKPiA+ID4gWyBdIC0xCj4gPiA+Cj4gPiA+IFRoYW5rcywKPiA+ID4KPiA+ID4gU3RlcGhlbi4KPiA+ID4KPiA+Cj4gPgo+ID4KPiA+IC0tCj4gPiBDaGVlcnMKPiA+IFRpYm9yCj4gPgo+CgotLTk0ZWIyYzFiMTBjY2Q3ZmFmODA1NThlNWVkM2EtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDg0MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgRGVjIDI2IDIyOjQ2OjE1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg0MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAxNEQ4NzE3NTZBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMjYgRGVjIDIwMTcgMjI6NDY6MTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyMTM5OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBEZWMgMjAxNyAyMjo0NjoxNCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjEzMDkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjYgRGVjIDIwMTcgMjI6NDY6MTQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMTI5NyBpbnZva2VkIGJ5IHVpZCA5OSk7IDI2IERlYyAyMDE3IDIyOjQ2OjE0IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAyNiBEZWMgMjAxNyAyMjo0NjoxNCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEQ3MEFBMUEwODMxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyNiBEZWMgMjAxNyAyMjo0NjoxMyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjkwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC45MDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsCglTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBId2ZuMXNLZHBfLTkgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUdWUsIDI2IERlYyAyMDE3IDIyOjQ2OjA5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd3IwLWYxNzcuZ29vZ2xlLmNvbSAobWFpbC13cjAtZjE3Ny5nb29nbGUuY29tIFsyMDkuODUuMTI4LjE3N10pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAzNkMzMTVGNTc2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyNiBEZWMgMjAxNyAyMjo0NjowOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13cjAtZjE3Ny5nb29nbGUuY29tIHdpdGggU01UUCBpZCBnMTdzbzI2MjQxNDM2d3JkLjEzCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjYgRGVjIDIwMTcgMTQ6NDY6MDkgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Q2UrQVBCOVlTWHhvU25ROTFxcjZyYnROYWZabWNhNE1haVNPVGlvQlV1Zz07CiAgICAgICAgYj1Md1lKaDBCUkZyZC9rU214a2hRNjRZSlJRVXZRWlBlc1U1a2d4RXkvRThGWEtYQUFhOUprUjZNZWJRTzVCNHo3TXYKICAgICAgICAgSkNXTWx4K0w5M05EcldFbDd6NExNZi9NeUo0b1JWaVZzL2hjbERtclpTZFJTQ1FPSDhualpGaU8rTUNFNW0rdEZsSWQKICAgICAgICAgWHIrOGplczRVL1VoL2pGNTNMMUFmcmxKSzBneDg4T01ic3pGQm8zakRIZ3YrOGxsRGdLZXk4cmw1VExuYWRadDF4RWQKICAgICAgICAgamJpWDhZemE0bFVIazhUOTdkc1F0eW9yUlZnZmpXMEVMb2xMYWdZeFppakNDKzJtRk9uQXYxclloemdsUERZN1ZRZVAKICAgICAgICAgMlpkVFhiNXpxZE5sYkNidjBSSDFkTzFTcE94S0lDeGdZYzQ5cVlWNGpkWVR2MFVJL1lGRyt2N1RFSUdWVGdLdlpTMUIKICAgICAgICAgYnpkUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Q2UrQVBCOVlTWHhvU25ROTFxcjZyYnROYWZabWNhNE1haVNPVGlvQlV1Zz07CiAgICAgICAgYj1YSkRLTE12blYxUHY2dXV6Z01qS2IzNGMxRUhkZjMvaU0vSSt0Y2F0cjJWbjVJVjBNbWp4Z2dOK0NMV25zN0NZd3QKICAgICAgICAgR2dPR28wemFXenhPcHNDMjdXUXR3eGg1M2lKN2NJVytnMGpmRnh2MWgvZGhjQkpXWS9kUWVGM2pWT3lDSXZ1cTNZV04KICAgICAgICAgTmRRRm1sMU91UlNwTmN3S0Qyb2tWYmd2bm9pbjlXK2psbHdCb0Q3dkhvSGJtWDAxSmdqeFFCUlAwYnZqSnpBUEZmdk4KICAgICAgICAgcndOZmpIdXN1NmcyeG0wclNYdnAxWSt5eEh5YVlkZVBWeUE5YmE5WjJLbGllL20yV1hwbTVHS2RJeDhOWG5EWXRVSlEKICAgICAgICAgMll0SmZRNEkxaWpzTmtaK0w5eWJ3bnpOTHlUbzF3M1ErSnBhRU1zOVdMa2NqR2xONDltenhPUW5DREZleWZrY2daRXoKICAgICAgICAgbExBUT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUtHQjNtSU8xL2l1ak95N0lCUmtoL2FCcjJITGVPaXR0ZUE1eVI2SDFqekg0Tm1aL1ZJOUVueEoKCXdWdUJjbFQ3TWd0VHVlVG5rNmJRd3Y4YklGMXArMFVtdEFnTXhNbFAvUT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQ0pmQm92VlVteUY5cWcrVlNnWUpFL0FFRjJ2VGo1NEgvOUhCTnMrR1NISCthK1JaVHYwUWpvYVd4RnBXUkUzc1M3Wm9PdUZnR0xQUDQvZVFhNzFZTkVXUTNBPQpYLVJlY2VpdmVkOiBieSAxMC4yMjMuMTcxLjEzMiB3aXRoIFNNVFAgaWQgczRtcjY5NDk1MjR3cmMuMTk0LjE1MTQzMjgzNjI5OTg7CiBUdWUsIDI2IERlYyAyMDE3IDE0OjQ2OjAyIC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDw5NTBkZTI4MC01OTI4LTRmZTMtYWNhOC0wOTIzNDE1MjRjNjZAZ214LmRlPiA8b3AuemJ2Y2NhaXhrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CiA8NjNjOTJlY2QtYjMyOS1iYjQ5LTk0OGEtYjUxZjRiMTlhZTBmQGdteC5kZT4gPG9wLnpidmpkZmRua2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgpJbi1SZXBseS1UbzogPG9wLnpidmpkZmRua2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBUdWUsIDI2IERlYyAyMDE3IDIyOjQ1OjUyICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NeDVESlhTbmhtODlEPVBFU2lTZWJyMWVTNUZmTkE3dWtnaktmbTdRQ0VES3dAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBtYXZlbi1hcmNoaXZlciBidWlsZCBvbiBKZW5raW5zIC0gVGVzdCBGYWlsdXJlcwpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0N2I1ZjAyNjYyOTEwNTYxNDYwYzE1IgoKLS0wMDFhMTE0N2I1ZjAyNjYyOTEwNTYxNDYwYzE1CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpZZXMsIEkgaGF2ZSBzZXQgdGhlIGNvbW1hbmQgbGluZSB0byBpZ25vcmUgZmFpbGluZyB0ZXN0cywgdGhlbiB0aGUganVuaXQKcmVwb3J0ZXIgbWFya3MgdGhlIGJ1aWxkIGFzIHVuc3RhYmxlIGJhc2VkIG9uIHRoZSB0ZXN0IHJlc3VsdHMKCllvdSBzaG91bGQgYmUgYWJsZSB0byBzZWUgdGhlIDI3IGZhaWxpbmcgdGVzdHMgZnJvbSBbNl0KCk9uIFR1ZSAyNiBEZWMgMjAxNyBhdCAyMTo1OSwgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPiB3cm90ZToKCj4gSW50ZXJlc3RpbmcuLi4KPgo+IFRoZSBwaXBlbGluZSBzdGVwc1sxXSBzYXkgYWxsIHN1Y2NlZWRlZCwgaG93ZXZlciAjNiBvdmVydmlld1syXSBjb21wbGFpbnRzCj4gYWJvdXQgZmFpbGluZyB0ZXN0cy4KPgo+IFJvYmVydAo+Cj4gWzFdCj4KPiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL2pvYi9tYXZlbi1ib3gvam9iL21hdmVuLWFyY2hpdmVyL2pvYi9tYXN0ZXIvNi9mbG93R3JhcGhUYWJsZS8KPiBbMl0KPiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL2pvYi9tYXZlbi1ib3gvam9iL21hdmVuLWFyY2hpdmVyL2pvYi9tYXN0ZXIvNi8KPgo+IE9uIFR1ZSwgMjYgRGVjIDIwMTcgMjA6NDQ6MzUgKzAxMDAsIEthcmwgSGVpbnogTWFyYmFpc2UKPiA8a2htYXJiYWlzZUBnbXguZGU+IHdyb3RlOgo+Cj4gPiBIaSBSb2JlcnQsCj4gPgo+ID4gSSB3aWxsIHRyeSBhbmQgc2VlIHRoZSByZXN1bHQuLgo+ID4KPiA+IFRoYW5rcy4KPiA+Cj4gPiBLaW5kIHJlZ2FyZHMKPiA+IEthcmwgSGVpbnoKPiA+Cj4gPgo+ID4gT24gMjYvMTIvMTcgMjA6MjcsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+ID4+IFRoZSBqb2Igc3RhcnRpbmcgcXVpdGUgc29tZSB0aW1lIGFnby4gTWF5YmUgYmV0dGVyIHRvIGtpbGwgdGhlIGl0IGFuZAo+ID4+IHN0YXJ0IG92ZXIgYWdhaW4uCj4gPj4gSSBoYWQgdHJvdWJsZSB2aXNpdGluZyBidWlsZHMuYXBhY2hlLm9yZyB0aGlzIGFmdGVybm9vbiwgY291bGQgYmUKPiA+PiByZWxhdGVkLgo+ID4+ICB0aGFua3MsCj4gPj4gUm9iZXJ0Cj4gPj4gIE9uIFR1ZSwgMjYgRGVjIDIwMTcgMjA6MDE6MDIgKzAxMDAsIEthcmwgSGVpbnogTWFyYmFpc2UKPiA+PiA8a2htYXJiYWlzZUBnbXguZGU+IHdyb3RlOgo+ID4+Cj4gPj4+IEhpLAo+ID4+Pgo+ID4+PiBjdXJyZW50bHkgSSdtIG9ic2VydmluZyBhIHN0cmFuZ2UgdGhpbmcuLmNhdXNlIHRoZSBidWlsZCBvbiBKZW5raW5zCj4gPj4+IHByb2R1Y2VzIHRlc3QgZmFpbHVyZSB3aXRoIEpESyA5Cj4gPj4+Cj4gPj4+Cj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy9qb2IvbWF2ZW4tYm94L2pvYi9tYXZlbi1hcmNoaXZlci9qb2IvbWFzdGVyLzUvY29uc29sZUZ1bGwKPiA+Pj4gVGhlIHByb2JsZW0gSSdtIGN1cnJlbnRseSBoYXZpbmcgaXMgdGhhdCBJIGNhbid0IHJlcHJvZHVjZSB0aGlzLi4KPiA+Pj4KPiA+Pj4gSSBoYXZlIHRlc3RlZCB3aXRoIE1hdmVuIDMuNS4yIGFuZCBKREsgOS4wLjEgd2l0aG91dCBhbnkgcHJvYmxlbSBvbiBteQo+ID4+PiBNYWMgLi4uCj4gPj4+Cj4gPj4+IElzIHNvbWVvbmUgb3V0IHRoZXJlIHdobyBjYW4gY2hlY2sgdGhlIGN1cnJlbnQgc3RhdGUgb2YgbWF2ZW4tYXJjaGl2ZXIKPiA+Pj4gZ2l0IHJlcG8gb24gV2luZG93cyBhbmQgY2FuIHJlcHJvZHVjZSB0aGUgaXNzdWUgPwo+ID4+Pgo+ID4+PiBJdCB3b3VsZCBiZSBncmVhdC4uVGhhbmtzIGluIGFkdmFuY2UuCj4gPj4+Cj4gPj4+IEtpbmQgcmVnYXJkcwo+ID4+PiBLYXJsIEhlaW56IE1hcmJhaXNlCj4gPgo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPiAtLQpTZW50IGZyb20gbXkgcGhvbmUKCi0tMDAxYTExNDdiNWYwMjY2MjkxMDU2MTQ2MGMxNS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MTUwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBPY3QgIDYgMDc6MTc6MDYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTUwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDVBNEM2MTA4NDIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAgNiBPY3QgMjAxNyAwNzoxNzowNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDczNzM3IGludm9rZWQgYnkgdWlkIDUwMCk7IDYgT2N0IDIwMTcgMDc6MTc6MDYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDczNjY0IGludm9rZWQgYnkgdWlkIDUwMCk7IDYgT2N0IDIwMTcgMDc6MTc6MDUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MzY1MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDYgT2N0IDIwMTcgMDc6MTc6MDUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDA2IE9jdCAyMDE3IDA3OjE3OjA1ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQTBFRDMxODBGMjQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksICA2IE9jdCAyMDE3IDA3OjE3OjA0ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi4zNzkKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi4zNzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBkbFd6ZGtWMVV5UXggZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglGcmksICA2IE9jdCAyMDE3IDA3OjE3OjAzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd20wLWY0Ny5nb29nbGUuY29tIChtYWlsLXdtMC1mNDcuZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjQ3XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDIyQ0FFNjBERDUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksICA2IE9jdCAyMDE3IDA3OjE3OjAzICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNDcuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgaTEyNHNvNjAzNjgyMndtZi4zCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMDYgT2N0IDIwMTcgMDA6MTc6MDMgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9RENSSm5wQk1jTU41M3JFZ05neGx3bWcyYmtUQ1BOMStxNFFEVVhTUTJPTT07CiAgICAgICAgYj1jRDFjb0lyR3dFSGt6OThBTjBRenFGUXBKdU5TYTlvZm1EK0VKdXhKNU9vcU1LOG53dGZhL1JuM2ZuemtpYVBack4KICAgICAgICAgZUlMdVVHRHpKY1hZOUJleFFsVEdvWVA2ZCtyeFVIajhaZHEvSEpFd3VTeUJ6bFNjdGZrbEhlWUJmR1kwRXN0UEEwOHUKICAgICAgICAgeDdVTzFoZXBMSW1kNmlpYmQxOEpYVzlJQTM2N0QwRTFPckdoSzNTNXNyL3F2SW1pWFJxc1hMTjRoRXlkNE5HNVFMeUQKICAgICAgICAgcmF0QnAxV3k3TTlqSThUOXJhZHh2L2tGeVl3MnB3emFGZTZYb1YxZjV4Z3RIWWZzd1pUeG90WkFPd3JmemRoZldBWG4KICAgICAgICAgb0hRUWdJTWIycWJ1b3lCbHNtaEVTSEN5WHZSRTlXcVp3SWpPZDZyOEx2cVJBbUdEeHpaYUxCMlE1OHc3NG9lM3BybU8KICAgICAgICAgVlAyQT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9RENSSm5wQk1jTU41M3JFZ05neGx3bWcyYmtUQ1BOMStxNFFEVVhTUTJPTT07CiAgICAgICAgYj1zbU5WWmdNU2Flb2dUZG9jWHhFaFcvSmlUeGZDRlJSQ2NyM0pUK1dnYVp2MXl6YzRxSlhDcC9sZXRlOEJabEdMcEwKICAgICAgICAgVTRKTzRXYjZjMForSjBpd1JDcFZ0SWZlelROclphckxTcWJxL2VnQVRWV1l6K1diNHVrQTdlQWowK0hYUW0ydVc5OC8KICAgICAgICAgNFNuNXRZOXkySmxDaWs2MW83V1FXWnNHODYwWVAwRDl1TkVHeGxvQW96OEtUVEY3aHA0N01NUUZWeUo5TWRGVHUrU2QKICAgICAgICAgaisyZWpZMXB0aHhxUjh0ZDFpemZCTjZkZHIrdGcxbUtvSmJ0L0lSdVlZcWUvRG16QnB3ejY3aGlITXJWRU9QVmtiTXIKICAgICAgICAgZFE2NmZZS3VhNnd2U3R5N3FsUk56cmtERTVkaTF3L0tROVFaVG8xZzNBNWJIM016bzdkaStyS1lNcXdrcnE5T0NSYXgKICAgICAgICAgNHFHQT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVjRleUZRYWJwTjM3Q09Eek5WTk9pV1RIZFlCTmdqSHQya3NuQjZlUllWaHFleEhJZVUKCUsxeG1WWmFXWjljZVMramVEM2RZNkt1bE04cGxkK1FtY1VUQTRhRjB5dz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FBT2t3TUJxZWE3b2FJUGlqOHhBSEtlelN3Vjg5OXc5SUhOWmU3ME1jWHEyaHNBamxabHJGd1A0SUxxSUs3anJrcXF6NTdlSS9oMHp0cFpwaVNlMzdBPQpYLVJlY2VpdmVkOiBieSAxMC4yOC42My4yMDYgd2l0aCBTTVRQIGlkIG0xOTdtcjg5NzExOHdtYS4xMDYuMTUwNzI3NDIxNzE1NzsKIEZyaSwgMDYgT2N0IDIwMTcgMDA6MTY6NTcgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPDEwNTQ0NjE1LkI0aE8zUG52RXpAZ2lnYT4KSW4tUmVwbHktVG86IDwxMDU0NDYxNS5CNGhPM1BudkV6QGdpZ2E+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMDYgT2N0IDIwMTcgMDc6MTY6NDYgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk14OW4zMFF3VDZIMVBiZlZSeE4zaTl0VHZ5Zm49bzR4UXdFZzFCZXNfNndRd0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IEplbmtpbnMgYW5kIE1hdmVuIDMuMC41IG9yIEpESyA3ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTRiODIzODRiMDBmOTA1NWFkYmEwYTUiCgotLTAwMWExMTRiODIzODRiMDBmOTA1NWFkYmEwYTUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gRnJpIDYgT2N0IDIwMTcgYXQgMDY6MzIsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cm90PQplOgoKPiBJIGp1c3QgZml4ZWQgYSBmZXcgZmFpbGluZyBqb2JzIFsxXSB0byBoYXZlIGFnYWluIGEgdXNhYmxlIEplbmtpbnMuCj4KPiBOb3cgSSdtIGZhY2luZyBzb21lIGlzc3VlcywgSSBzdXBwb3NlIGNhdXNlZCBieSBuZXdlciBKZW5raW5zIHZlcnNpb25zOgo+IC0gTWF2ZW4gMy4wLjUgY2F1c2VzIE5vU3VjaE1ldGhvZEVycm9yOiBvLmMucGxleHVzLnV0aWwueG1sLnB1bGwuTVhQYXJzZXIKPiBbMl0KPiAtIEkgaGFkIHRvIHN3aXRjaCB0byBKREsgOCBmb3IgbWF2ZW4tcGx1Z2luLXRvb2xzIGpvYiwgc2luY2UgSkRLIGNhdXNlcwo+IGZhaWx1cmVzIChsb29rcyBsaWtlIEplbmtpbnMgdXNlcyBhIGhhY2sgdG8gaW5qZWN0IEpESyA3IGFzIGEgdG9vbCB3aGlsZQo+IHRoZQo+IGJ1aWxkIEpWTSBpcyBKYXZhIDgpCj4KPiBTaG91bGQgd2UgZHJvcCBNYXZlbiAzLjAuNSBidWlsZHMgYW5kIEpESyA3Pwo+IE5vdGljZSBJIGRpZG4ndCBjaGVjayB3aGljaCBpcyB0aGUgbWluaW11bSBNYXZlbiB2ZXJzaW9uIHJlcXVpcmVkLi4uCj4KPiBPciBwZXJoYXBzIHNpbXBseSBkb24ndCB1c2UgdGhlIEplbmtpbnMgTWF2ZW4gcGx1Z2luIHdpdGggdGhpcyBNYXZlbiAzLjAuPQo1Cj4gb3IKPiBKREsgNyBjb25maWd1cmF0aW9uOiBkZWZhdWx0IGJ1aWxkIGFzIEplbmtpbnMgTWF2ZW4gcGx1Z2luIHdpdGggSkRLIDggKwo+IGxhdGVzdAo+IE1hdmVuLCBhbmQgb3RoZXIgY29uZmlndXJhdGlvbnMgYXMgc2NyaXB0ZWQgam9icz8KCgpodHRwOi8vamF2YWFkdmVudHVyZS5ibG9nc3BvdC5pZS8yMDEzLzExL2plbmtpbnMtbWF2ZW4tam9iLXR5cGUtY29uc2lkZXJlZC09CmV2aWwuaHRtbAo8aHR0cDovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuaWUvMjAxMy8xMS9qZW5raW5zLW1hdmVuLWpvYi10eXBlLWNvbnNpZGVyZWQ9Ci1ldmlsLmh0bWw/bT0zRDE+CgpXZSBzaG91bGQgc3RvcCB1c2luZyB0aGUgZXZpbCBqb2IgdHlwZSBhcyBpdD1FMj04MD05OXMgbWluaW11bSBKYXZhIHZlcnNpb249CiBpcwpkaWN0YXRlZCBieSBKZW5raW5zPUUyPTgwPTk5IEphdmEgbWluaW11bS4KCgo+Cj4gV2UgbmVlZCB0byBkZWZpbmUgb3VyIGNvbW1vbiBzdHJhdGVneSBhbmQgaGF2ZSBhIGNvbnNpc3RlbnQgY29uZmlndXJhdGlvbgo+IGZvcgo+IGV2ZXJ5IGpvYiB1bmRlcnN0b29kIGJ5IGV2ZXJ5Ym9keQoKCkkgcmVjb21tZW5kIEplbmtpbnNmaWxlIGFuZCB0aGUgYHdpdGhNYXZlbmAgd3JhcHBlcgoKPgo+Cj4gUmVnYXJkcywKPgo+IEhlcnY9QzM9QTkKPgo+IFsxXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vCj4KPiBbMl0KPiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLXBsdWdpbi10b29scy1qZGstPQoxLjcvMTYyL2NvbnNvbGUKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4gLS0KU2VudCBmcm9tIG15IHBob25lCgotLTAwMWExMTRiODIzODRiMDBmOTA1NWFkYmEwYTUtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDE5Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gT2N0ICA4IDE4OjI3OjMzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDE5Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4MDFFRjEwQzg3Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgIDggT2N0IDIwMTcgMTg6Mjc6MzMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4NTQyOSBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IE9jdCAyMDE3IDE4OjI3OjMzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NTMyNSBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IE9jdCAyMDE3IDE4OjI3OjMzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODUzMTMgaW52b2tlZCBieSB1aWQgOTkpOyA4IE9jdCAyMDE3IDE4OjI3OjMyIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAwOCBPY3QgMjAxNyAxODoyNzozMiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEYzNDkxMUE0NkQ4Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAgOCBPY3QgMjAxNyAxODoyNzozMSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuODc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuODc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBSWkxnY1ZnVFRaS2MgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sICA4IE9jdCAyMDE3IDE4OjI3OjI5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd20wLWY1MC5nb29nbGUuY29tIChtYWlsLXdtMC1mNTAuZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjUwXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDE0QjVFNUZERDgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sICA4IE9jdCAyMDE3IDE4OjI3OjI5ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNTAuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgZjRzbzE4MTg3Mzgwd21lLjAKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAwOCBPY3QgMjAxNyAxMToyNzoyOSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD0zdVhGeitZczllNldmUFRMcE0rTTlmNVBjb3pCaHdhQmlJWUZWb2JtTEpVPTsKICAgICAgICBiPWdKd0FCVWY1WTZqaHBNVkxzcmg5d0dTMkxQL05YSTczQWdEWS9RMFhFSi9NU2dPRWZlY2NvNC8rQVM5R3BtVmNoWgogICAgICAgICBxOVo1c3dLOVhSbEpRY0VhdlJKV0dxSzFJWnBHVEZ6MzI2Um41L29zR1h5amg1QzRkcVlVTVRLZDdUTTFYMVJ1SGZONgogICAgICAgICBja2M4eDhjd2hJWVRMeFlPbU9mZnNPNnRqcHV5WU54MmFuTmljNlYrdlRsSkU1a2k1WU9RRVQ0eHJkL2NGc3hBREhZTgogICAgICAgICBtOFdXVmJEZVRPTmlDVjVrMWlubWphcTZ0TlRqU3lRbGdLT1VwcUlhS0hKeFNtdEZ2enloTG9kZDdtdVNRU2lEUTdacgogICAgICAgICB2RlpyUFpKRkNsT3JuMWlqWVJqNGFiQi93UVAvSDdLNFFlSUdqaVRCdER3aGRKbWxBWTJsNW5uL2VJZmJPTzhXNkJ3ZwogICAgICAgICBjUWt3PT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD0zdVhGeitZczllNldmUFRMcE0rTTlmNVBjb3pCaHdhQmlJWUZWb2JtTEpVPTsKICAgICAgICBiPUhRNUt5U1pnejU5MmJzTllzR1FldlJmS1Fpa1FSK2RaR2lOVFhhYlZEb0tJcGM2NFpMZmxkSzZwaitKeWxOeDZUUQogICAgICAgICB6bjJ2WVEyTFpmL0VpVjZQeGZvMGhGZzVkbzhUUHZ4a1NVSFdEMGI4Q1VKTXFnY29wZkRiZ2dPamFYN3loTm1vZm9ZRgogICAgICAgICA2cjl0bGR1QVd1OHhWVzNMc1gzUnRZRHYzbkc4Z2hYL3FqNzFjRE80QnZTb0trYzRoZXFTV2JicVRzbTY3Tnk1RWhNdgogICAgICAgICBUR1BOSXhHdUx4U3lPRERib3pTcG9lUFJ4UzRiZURIeUZabk8zR1JVTnAvOG95TEkzdlNMV2ZRUkxSV0g0UGV0SEEvWgogICAgICAgICBISEpiaWJ1alJ2djFqMkNnU0pWUmE3a20raENOclFZMjFHKzE0UXlmSXFMZHRwSFd2OWxhNkVmSEErMmNyN2t0cFBEQwogICAgICAgICBPM013PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FWNlBzRUtWUDNrQmJBQUFrMi8xZTk1TG4zOThrTzBuZUIydHpTUThEOFZaTFdZQ3ZjbQoJOUZrSWNpRWovUzJjTTJyNjNPM1NNZnVpK0dCWnV2SDBma1EzbjN3TUxRPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUNaWUdTTk9mcVA5cGh3YktRaUVYMmxFeFVFREpCWWk1N1lMZW14MzFWbmw3aDE2V2I1UUNpbjEvcjgwYWhRS2RBYTBWaVp0WWhXSjBhQTEzcklXU1k9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xODIuMTM0IHdpdGggU01UUCBpZCBqNm1yNzEzNzM2NndyZS4xNTAuMTUwNzQ4NzI0ODQ3MTsKIFN1biwgMDggT2N0IDIwMTcgMTE6Mjc6MjggLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPDEwNTQ0NjE1LkI0aE8zUG52RXpAZ2lnYT4gPDMwNjYzMDguUlo3NnNNVDJiY0BnaWdhPgogPENBK25Qbk14eVE0dGU3cm80eE09WEFyaVB1N2hQK1VVN1VYb1NWTXZmRHZRSjlEaT1Hd0BtYWlsLmdtYWlsLmNvbT4gPDEwNDc0NDc2Lmw5RkpxRk1QSjJAZ2lnYT4KSW4tUmVwbHktVG86IDwxMDQ3NDQ3Ni5sOUZKcUZNUEoyQGdpZ2E+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFN1biwgMDggT2N0IDIwMTcgMTg6Mjc6MTcgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk14PTJTSGEraWJUcVRURVNrZVRvbXJETStBYnhrQVVaKytoNVdMWS1IVzd1UUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IEplbmtpbnMgYW5kIE1hdmVuIDMuMC41IG9yIEpESyA3ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9ImY0MDMwNDM4OTMyOGYyZGI0YzA1NWIwZDM5NDUiCgotLWY0MDMwNDM4OTMyOGYyZGI0YzA1NWIwZDM5NDUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gU3VuIDggT2N0IDIwMTcgYXQgMTg6MjgsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cm90PQplOgoKPiBJIGRvbid0IGdldCB0aGUgdGVjaG5pY2FsIGRldGFpbHMKPiBidXQgSUlVQywgeW91J3JlIGFibGUgdG8gZG8gYSBQb0Mgd2l0aCBvdXIgYXZhaWxhYmxlIGdpdCByZXBvc2l0b3JpZXMgb2YKPiBKZW5raW5zIGpvYiBtYWludGVuYW5jZSAoZWFzeSBqb2IgY3JlYXRpb24gKyBlYXN5IEplbmtpbnNmaWxlIG1haW50ZW5hbmNlPQopLAoKCkpvYiBjcmVhdGVkIGF1dG9tYXRpY2FsbHkgb25jZSB0aGVyZSBpcyBhIGdpdCByZXBvICB3aXRoIGEgYnJhbmNoIHdpdGggYQpKZW5raW5zZmlsZSAuIE5vIGh1bWFuIGludGVyYWN0aW9uIHJlcXVpcmVkIGFmdGVyIGBlY2hvCj1FMj04MD05Q21hdmVuUHJvamVjdFN0ZEJ1aWxkKCk7PUUyPTgwPTlEID4gSmVua2luc2ZpbGUgJiYgZ2l0IGFkZCBKZW5raW5zZj0KaWxlICYmIGdpdApjb21taXQgPUUyPTgwPTlDYWRkIEplbmtpbnNmaWxlPUUyPTgwPTlEICAmJiBnaXQgcHVzaGAKCkplbmtpbnNmaWxlIGJlaW5nIGp1c3Qgb25lIGxpbmUgYG1hdmVuUHJvamVjdFN0ZEJ1aWxkYCBvciBzb21ldGhpbmcgbGlrZQp0aGF0LgoKSXMgdGhhdCBlYXN5IGVub3VnaD8KCmFuZAo+IHlvdSdyZSBjb25maWRlbnQgdGhhdCBpdCBjYW4gc2NhbGUgdG8gdGhlIHNpemUgd2UncmUgZXhwZWN0aW5nIHdoZW4gd2UncmUKPiBzcGxpdHRpbmcgdGhlIGN1cnJlbnQgYWdncmVnYXRvciBzdm4gdG8gbWFueSBzbWFsbCBnaXQgcmVwb3MKPgo+IHRoYXQncyBpdD8KPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUMzPUE5Cj4KPiBMZSBkaW1hbmNoZSA4IG9jdG9icmUgMjAxNywgMTY6MjE6MTAgQ0VTVCBTdGVwaGVuIENvbm5vbGx5IGEgPUMzPUE5Y3JpdCA6Cj4gPiBPbiBTdW4gOCBPY3QgMjAxNyBhdCAwMzo1NSwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ID0Kd3JvdGU6Cj4gPiA+IFRMRFI7ID0zRAo+ID4gPiBQZXJoYXBzIHdlIGNhbiBzdGFydCB3aXRoIDIgcHJvb2ZzIG9mIGNvbmNlcHQ6Cj4gPiA+IDEuIGZ1bGwgZ2l0IGNsb25lICsgSmVua2lucyBqb2JzIGZvciB0aGUgNyBleGlzdGluZyBnaXQgcmVwb3MgKHdpdGggNgo+ID4gPiBhZGRpdGlvbmFsIG9uZXMgaW4gMiBkYXlzKQo+ID4gPiAyLiBnaXQgc3BsaXQgb2Ygb25lIG9mIHRoZSBhZ2dyZWdhdG9yIHN2biB0cnVuazogc2tpbnMgb3IgZG94aWEtdG9vbHMKPiBjYW4KPiA+ID4gYmUKPiA+ID4gZWFzeSBjaG9pY2VzIHNpbmNlIHRoZXkgYXJlIGxpZ2h0LCB3aGVyZSBwbHVnaW5zIG9yIHNoYXJlZCBhcmUgcGVyaGFwPQpzCj4gdG9vCj4gPiA+IGhlYXZ5LiBUaGUgb25lIHdvcmtpbmcgb24gdGhpcyBQb0Mgd2lsbCBtYWtlIGhpcyBjaG9pY2UKPiA+ID4KPiA+ID4gdGhlbiBtb3JlIGRldGFpbGVkIGFuc3dlciBpbmxpbmUgdGhhdCBsZWFkIHRvIHRoaXMgUG9DcyBwcm9wb3NhbAo+ID4gPgo+ID4gPiBSZWdhcmRzLAo+ID4gPgo+ID4gPiBIZXJ2PUMzPUE5Cj4gPiA+Cj4gPiA+IExlIGRpbWFuY2hlIDggb2N0b2JyZSAyMDE3LCAwMDowMjoxMCBDRVNUIFRpYm9yIERpZ2FuYSBhID1DMz1BOWNyaXQgOgo+ID4gPiA+IEkgZG9uJ3QgdGhpbmsgdGhlIGRldnMgd291bGQgd29yayBvbiBhbGwgYXJ0aWZhY3RzKHByb2plY3RzKSBhIHRpbWU9Ci4KPiA+ID4KPiA+ID4gc3VyZSwgSSB0aGluayBJJ20gb25lIG9mIHRoZSBmZXcgcGVvcGxlIHdvcmtpbmcgb24gbmVhciBldmVyeXRoaW5nCj4gKHdpdGgKPiA+ID4gcmFyZQo+ID4gPiBleGNlcHRpb25zIGxpa2UgU3VyZWZpcmUsIGFzIHlvdSBub3RpY2VkIDopICkKPiA+ID4gYnV0IGZvciB1c3VhbCBjb250cmlidXRvciwgdGhlcmUgaXMgbm8gaXNzdWUKPiA+ID4KPiA+ID4gSSdtIG5vdCBhIGdpdCBleHBlcnQsIHRoZW4gSSBkb24ndCBrbm93IGlmIGVhc3kgImZ1bGwgTWF2ZW4gY2xvbmUiIGlzCj4gPiA+IGJldHRlcgo+ID4gPiBkb25lIHdpdGggYSBzaGVsbCBzY3JpcHQgb3Igc29tZSBnaXQgbW9kdWxlcwo+ID4gPgo+ID4gPiA+IElmIHRoZSBuYW1pbmcgY29udmVudGlvbiBvZiByZXBvIGZvciBhIHBsdWdpbiB3b3VsZCBiZSBhcnRpZmFjdElkLAo+IGxpa2UKPiA+ID4gPiAvbWF2ZW4tY2xlYW4tcGx1Z2luLCB0aGVuIGV2ZW4gZWFzeSB0byBmaWd1cmUgb3V0IHdoaWNoIG9uZSB0byBjbG9uPQplLgo+ID4gPiA+IFRoZSBtb3N0IGxpa2VseSB0aGUgZGV2IHdvdWxkIGp1c3QgY2xvbmUgb25lIHJlcG8gc2hlL2hlIGlzCj4gaW50ZXJlc3RlZAo+ID4gPiA+IGluCj4gPiA+ID4gYXQgdGhlIG1vbWVudCwgaS5lLiByZXBvc2l0b3J5IC9tYXZlbi1jbGVhbi1wbHVnaW4sIGxldCdzIHNheS4KPiA+ID4gPiBJdCdzIGdvb2QgdG8gYXZvaWQgYW55IHNoYXJlZCBmaWxlcyBhY3Jvc3MgdGhlbSwgZXZlbiBJIGRvbid0IHRoaW5rCj4gZGV2cwo+ID4gPiA+IHNoYXJlIHNvbWUgaW4gc3ZuIHRvZGF5LiBUaGUgcmVsZWFzZSBwcm9jZXNzIHdvdWxkIGJlIHF1aXRlIHVzdWFsLAo+IGkuZS4KPiA+ID4KPiA+ID4gb25lCj4gPiA+Cj4gPiA+ID4gcmVwbyA9M0Qgb25lIHByb2plY3QsIGFuZCBuZXcgZGV2cyBhbHJlYWR5IGhhdmUgdGhlc2UgZXhwZXJpZW5jZXMgdz0KaGljaAo+ID4gPgo+ID4gPiB3aWxsCj4gPiA+Cj4gPiA+ID4gYmUgc2ltcGxlIGZvciB0aGVtIHRvIGFkYXB0IGZhc3Rlci4KPiA+ID4KPiA+ID4gKzEKPiA+ID4gdGhlIG9ubHkgZHJhd2JhY2sgSSBzZWUgY3VycmVudGx5IGlzIHRoYXQgdGhlcmUgaXMgbm8gbmF0dXJhbCBncm91cGluPQpnLAo+ID4gPiB0aGVuCj4gPiA+IHdlIGhhdmUgYSBmbGF0IGxpdCBvZiBuZWFyIDEwMCBnaXQgcmVwb3Mgd2l0aG91dCB0aGUgY3VycmVudCBzdHJ1Y3R1cj0KZQo+ID4gPiAocGx1Z2lucywgc2hhcmVkIGNvbXBvbmVudHMsIHNraW5zLCAuLi4pOiBJIHRoaW5rIGNvbXBvbmVudHMgc3RydWN0dXI9CmUKPiBpcwo+ID4gPiB1c2VmdWwgZm9yIG1haW50ZW5hYmlsaXR5Cj4gPiA+IGJ1dCBub3QgcmVhbGx5IGEgY29tcGxldGUgc2hvd3N0b3BwZXIKPiA+ID4gYW5kIHBlcmhhcHMgdGhlICJNYXZlbiBmdWxsIGNsb25lIiB0b29saW5nIGNhbiByZS1jcmVhdGUgc29tZSBncm91cGluPQpnCj4gdG8KPiA+ID4ga2VlcAo+ID4gPiB2aXNpYmxlIHN0cnVjdHVyZQo+ID4gPgo+ID4gPiBOb3csIHNvbWVvbmUgaGFzIHRvIGtub3cgaG93IHRvIGNyZWF0ZSBwZXItY29tcG9uZW50IGdpdCByZXBvIHdpdGggdGE9CmdzCj4gPiA+IChlaXRoZXIgYnkgcmV3b3JraW5nIGV4aXRpbmcgZ2l0IG1pcnJvcnMsIGVpdGhlciBieSByZXN0YXJ0aW5nIGZyb20KPiBzdm4pLAo+ID4gPiBhbmQKPiA+ID4gdGhhdCdzIG5vdCBtZSA6KQo+ID4gPgo+ID4gPiBnaXZlbiB0aGUgdm9sdW1lIChhZGRpbmcgNzAgZ2l0IHJlcG9zIGZvciBNYXZlbiksIHdlJ2xsIGhhdmUgdG8gdGVsbAo+IGluZnJhCj4gPiA+IGFib3V0IGl0Lgo+ID4gPgo+ID4gPiBUaGVuIHRoZXJlIGlzIHRoZSBKZW5raW5zIGpvYnMgY29uZmlndXJhdGlvbjoKPiA+ID4gLSB3ZSBuZWVkIGVhc3kgSmVua2luc2ZpbGUgaW4gZWFjaCByZXBvCj4gPgo+ID4gc28gd2UgY3JlYXRlIGEgc2hhcmVkIEdyb292eSBsaWJyYXJ5IGxpa2UgdGhlIEplbmtpbnMgcHJvamVjdCBkb2VzIGFuZAo+IHRoZQo+ID4gSmVua2luc2ZpbGUgYmVjb21lcyBgYnVpbGRQbHVnaW5gIGZvciBhbGwgZXhjZXB0IGNvcmUKPiA+Cj4gPiA+IC0gd2UgbmVlZCBlYXN5IDgwIGpvYnMgY3JlYXRpb24gKG5vLCBJIHdvbid0IG1hbnVhbGx5IGNyZWF0ZSA4MCBqb2JzCj4gPiA+IHBlcnNvbmFsbHkpCj4gPgo+ID4gU28gSSB3aWxsIGFkZCBTQ01OYXZpZ2F0b3IgZnVuY3Rpb25hbGl0eSB0byB0aGUgQVNGIGdpdC1KZW5raW5zIHBsdWdpbgo+IGFuZAo+ID4gd2UganVzdCBkZWZpbmUgYW4gb3JnLWZvbGRlciBmb3IgTWF2ZW4gYW5kIGFsbCBnaXQgcmVwb3Mgd2l0aCBhCj4gSmVua2luc2ZpbGUKPiA+IHdpbGwgYmUgYXV0by1tYWludGFpbmVkLgo+ID4KPiA+ID4gQW5kIG9uY2UgYWdhaW4sIGluZnJhIHdpbGwgaGF2ZSB0byBiZSBpbiB0aGUgbG9vcCAoYXQgSmVua2lucyBzaWRlIHRoPQppcwo+ID4gPiB0aW1lKSwKPiA+ID4gc2luY2UgSSBmZWFyIHRoZSBsb2FkIG9uIEplbmtpbnMgbWFzdGVyIG5vZGUgd29uJ3QgYmUgbGlnaHQ6IHBlcmhhcHMKPiA+ID4gdGhhdCdzCj4gPiA+IHdoZXJlIEplbmtpbnMgZm9sZGVycyB3aWxsIGJlIHVzZWZ1bCwgYnV0IEknbSBub3QgYSBKZW5raW5zIGV4cGVydAo+IGVpdGhlci4KPiA+Cj4gPiBJZiB3ZSB1c2UgYW4gb3JnIGZvbGRlciBpbnRlZ3JhdGVkIHdpdGggR2l0UHViU3ViIEkgZG8gbm90IHRoaW5rIHRoZXkKPiB3aWxsCj4gPiBiZSBvdmVybHkgY29uY2VybmVkCj4gPgo+ID4gPiBJZiBldmVyeXRoaW5nIHNlZW1zIGZlYXNpYmxlIHRvIHNwbGl0IG91ciBzdm4gY29kZSBpbnRvIDEgZ2l0IHJlcG8gcGU9CnItCj4gPiA+IGNvbXBvbmVudCwgd2hpY2ggd2lsbCBicmluZyB1cyB0byAiZnVsbCBNYXZlbiBjb2RlIiBiZWluZyBuZWFyIDEwMAo+IHJlcG9zLAo+ID4gPiBJJ20KPiA+ID4gb2sgd2l0aCBpdC4KPiA+ID4gV2UnbGwgbmVlZCB0aGUgaGVscCBvZiBtaXNjIGV4cGVydHMgb24gSmVua2lucyBhbmQgZ2l0IHRvIHByZXBhcmUKPiB0aGluZ3MKPiA+ID4gYXQKPiA+ID4gdGhpcyBzY2FsZS4KPiA+Cj4gPiBJIHRoaW5rIG9uZSByZXBvIHBlciByZWxlYXNlIHJvb3QgaXMgdGhlIHdheSB0byBnby4KPiA+Cj4gPiBXZSBzaG91bGQgc3RhcnQgYnkgZHJhd2luZyB1cCBhIGxpc3QgYW5kIGFtYWxnYW1hdGlvbiB3aGVyZSBhcHByb3ByaWF0ZT0KOgo+ID4KPiA+IEVnCj4gPgo+ID4gKiBkb2VzIGl0IG1ha2Ugc2Vuc2UgdG8gcmVsZWFzZSBtYXZlbi1kZXBsb3ktcGx1Z2luIGFuZAo+ID4gbWF2ZW4taW5zdGFsbC1wbHVnaW4gaW5kZXBlbmRlbnRseT8gU2VlbXMgd2UgbW9zdCBvZnRlbiBtYWtlIG1pcnJvcmluZwo+ID4gY2hhbmdlcyB0byBib3RoLCBhbmQgcGVyaGFwcyBpdCB3b3VsZCBiZSBiZXR0ZXIgaWYgd2UgZm9yY2VkIHRoYXQgbW9kZWw9Cj8KPiA+IChEb249RTI9ODA9OTl0IGFuc3dlciBpbiB0aGlzIHRocmVhZCwganVzdCBwb2ludGluZyBvdXQgYW4gZXhhbXBsZSkKPiA+Cj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Cj4gPiA+IC0tCj4gPgo+ID4gU2VudCBmcm9tIG15IHBob25lCj4KPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPiAtLQpTZW50IGZyb20gbXkgcGhvbmUKCi0tZjQwMzA0Mzg5MzI4ZjJkYjRjMDU1YjBkMzk0NS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0ODcyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBEZWMgMjggMTk6NDY6NDkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODcyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIENDN0U3MTBFMzMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAyOCBEZWMgMjAxNyAxOTo0Njo0OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDgyNDcgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggRGVjIDIwMTcgMTk6NDY6NDkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgxODEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggRGVjIDIwMTcgMTk6NDY6NDkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MTY1IGludm9rZWQgYnkgdWlkIDk5KTsgMjggRGVjIDIwMTcgMTk6NDY6NDkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDI4IERlYyAyMDE3IDE5OjQ2OjQ5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQTA0MEZDNDkzRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjggRGVjIDIwMTcgMTk6NDY6NDggKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjg3OQpYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuODc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCAyQWRPRldaMTBLbFIgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsIDI4IERlYyAyMDE3IDE5OjQ2OjQ3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd20wLWY0MS5nb29nbGUuY29tIChtYWlsLXdtMC1mNDEuZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjQxXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEU4MjI2NUYyMDEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDI4IERlYyAyMDE3IDE5OjQ2OjQ2ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNDEuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgaTExc280NTE3NTIzNndtZi40CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjggRGVjIDIwMTcgMTE6NDY6NDYgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9ZmlES1Y5d3AzQXY5WGtVUGRTMGkxWkJDMkFGZC9SMHhVaW9RNlErQ2JEQT07CiAgICAgICAgYj1aTG82T3AyOWUrVnA0TlEzWThvQ1hPMWpaZkJsV3dIUnkxMTRKTHhBYzJ5Rjl6WTRDWmpiSk5lc2ZlV3NJazk2K0QKICAgICAgICAgMFA5NTdkYjhPVWlqaUo2YWxQRjZsUkZlYjJlU3FyR0ZCWUswcTh6NG0vdFl5OXRFdy9rSWZMT0hFTjNrYS9lR3lselkKICAgICAgICAgMGVINzlGMjdya3d3YmZ3dkIrUlV2Nkc3TDQyQzB2UmczVE5IUk41d2lFWjNQZGpza0FQUTJvdWVMSHYxb1M4a1cwc0MKICAgICAgICAgRGllVWozb2pxaDgwQ3I3c05lbmRQb2dJckQyVlU5YXl6ZkxVTWVqeDF0T3VtZHc2WUJ2OENpZUZyc0haSG5JcWROT2kKICAgICAgICAgaS9FR3QxeE5SWUNoR3dsODZRTkZ2cTRBcFpGVHRxMWlFSzlSdUsweDJKZkJqZU0yQ0oyZXp4RVpSajRST3NBUVNMcVgKICAgICAgICAgNEE3dz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9ZmlES1Y5d3AzQXY5WGtVUGRTMGkxWkJDMkFGZC9SMHhVaW9RNlErQ2JEQT07CiAgICAgICAgYj1jYzVCbG80dDFJV2hPZVFYWGNIM2NXZ05XTTFSdjdvVlZFbzEvSHNCOTlYVHBpVGprc1lZMjhTbk1KUGx1RFF0dWkKICAgICAgICAgWDRVQTl1Zk90VmR3R2VQMUZxc1BGSkJTWENrMnVBcmJobm52aE5iWTR2SXhvWDJXc29vRmRkaFNNeXo3ajVkMS9jRmcKICAgICAgICAgQjl3azlxbE1pdVIwY3ozOTlHQlBIWkdqNjhjZnZRUnV1MVVyN2pDOFFCVUZNbU1KSndoeThUb0g5YVVsL2p4N0VmS2gKICAgICAgICAgTzVVTnpqMFJyaEtydi8rZFFkSDltNXV2dk4vank4a1JRT3poMXFpQTJyTkU4ank1VEhBOG45Y0pZaktWdTJuNVBsd1EKICAgICAgICAgZ2lRQjJ5SHVRcnoyNlJBelJSeXgwZzlHa1h4c0srL0Q2Rm1Ua1N1Q2dpYjdBNlI3OTAwaDFPQkk2cUh1dktEQkwxSHkKICAgICAgICAgVTFKQT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUtHQjNtSWFqSTBsVGJpUTFVOFV3TWJmYitzMVQ1QncySDkvQzN5d3VkOFVnSmtxa3IvZGEwVzMKCVRjcnhVV2g5U01kWVljTkN5U3RvV3FSbWg2ZFR2SGlUTWhrZVVIS2cyZz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQ0pmQm91cjhabkl1eDB2N3JtRVJEWnF6N01PVjBwT1NONFZyZ3hXV2h2eWVzSU1sMmNTMTdnUTd3RkIvTk10cFV0TDZ2T1hVdWJDaDF4RTdWMENkS3o2OUpvPQpYLVJlY2VpdmVkOiBieSAxMC4yOC4xNTAuMjAgd2l0aCBTTVRQIGlkIHkyMG1yMjUwMjc1OTl3bWQuMTE4LjE1MTQ0OTAzOTk5ODU7CiBUaHUsIDI4IERlYyAyMDE3IDExOjQ2OjM5IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDw5NTBkZTI4MC01OTI4LTRmZTMtYWNhOC0wOTIzNDE1MjRjNjZAZ214LmRlPiA8Q0FMYVRlQ28wLS1fcDZkdU5GM2MwM2NWRk80WHZUdm8zWW5kd0NqX0g3NFhSdm93WkFnQG1haWwuZ21haWwuY29tPgogPENBTGFUZUNwYlo5YUMrcWRTa1QxUk0yaEJxRT1NY19iTHZiZkFDSGgtc2dVeW5INDhQd0BtYWlsLmdtYWlsLmNvbT4KIDxDQUpHN0RYMVNkYXh3b0pLNXFqYzEyMEZkZUhDWk9IUnppb2VibUV3R3FnejVrWG0xNndAbWFpbC5nbWFpbC5jb20+CiA8MjM3YjIwMTUtNzMwYi02NTlhLTFmYmMtNDUxYTRiZTQ0MjhkQGdteC5kZT4gPENBSkc3RFgwSnUxaWFGcFJfeVdvaUxqQ0xvTGNLRVpVa0pFZ3VSa2ErMjdvUXVjeFZHUUBtYWlsLmdtYWlsLmNvbT4KIDwxYzNjY2YyMy1iNzQzLTU4NTQtNWU3Ni0yZDZlYjA5MzcyMmFAZ214LmRlPgpJbi1SZXBseS1UbzogPDFjM2NjZjIzLWI3NDMtNTg1NC01ZTc2LTJkNmViMDkzNzIyYUBnbXguZGU+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFRodSwgMjggRGVjIDIwMTcgMTk6NDY6MjkgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk14QS1iZHUyU0h5VWlBNWtrVXVNT2RQV2hZcWc4TGZLTFBGTW51elRLdlNEQUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IHBsZXh1cy1hcmNoaXZlciAvIHBsZXh1cy11dGlsIElzc3VlClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwgaW5mb0Bzb2ViZXMuZGUKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0YjNjOTQ0ZTk5Y2YwNTYxNmJjNmRmIgoKLS0wMDFhMTE0YjNjOTQ0ZTk5Y2YwNTYxNmJjNmRmCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkJ1dCBzaG91bGRuPUUyPTgwPTk5dCB3ZSBiZSBjb3B5aW5nIHRoZSBsYXN0IG1vZGlmaWVkIHRpbWUgc3RhbXAgYWx3YXlzIGFueT0Kd2F5CgpPbiBUaHUgMjggRGVjIDIwMTcgYXQgMTQ6NTIsIEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPiB3cm90ZToKCj4gSGksCj4KPiBhZnRlciBkaXZpbmcgbW9yZSBpbnRvIHRoaXMuLgo+Cj4gSSBmb3VuZCB0aGF0IGlmIEkgdXBncmFkZSBwbGV4dXMtdXRpbHMgdG8gMy4xLjAgaW4gcGxleHVzLWFyY2hpdmVyIHRoZQo+IHRlc3RzIGluIHBsZXh1cy1hcmNoaXZlciBzdHVjayBjb21wbGV0ZWx5Li4uYXMgSSBhbHJlYWR5IG9ic2VydmVkICh3aGljaAo+IEkgdGhvdWdoIHdhcyBhbm90aGVyIGNhdXNlKS4uLgo+Cj4gaHR0cHM6Ly90cmF2aXMtY2kub3JnL2NvZGVoYXVzLXBsZXh1cy9wbGV4dXMtYXJjaGl2ZXIvam9icy8zMjE4MjEyOTQKPgo+IFNvIG1vcmUgZGl2aW5nIGludG8gdGhlIGRldGFpbHMgSSByZWFsaXplZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29kZSBpbgo+IHBsZXh1cy11dGlscyBjYXVzZXMgdGhlIGlzc3VlOgo+Cj4gRmlsZVV0aWxzLmphdmE6Cj4KPiAgICAgIHByaXZhdGUgc3RhdGljIHZvaWQgZG9Db3B5RmlsZSggRmlsZSBzb3VyY2UsIEZpbGUgZGVzdGluYXRpb24gKQo+ICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbgo+ICAgICAgewo+ICAgICAgICAgIC8vIG9mZmxvYWQgdG8gb3BlcmF0aW5nIHN5c3RlbSBpZiBzdXBwb3J0ZWQKPiAgICAgICAgICBpZiAoIEphdmE3RGV0ZWN0b3IuaXNKYXZhNygpICkKPiAgICAgICAgICB7Cj4gICAgICAgICAgICAgIGRvQ29weUZpbGVVc2luZ05ld0lPKCBzb3VyY2UsIGRlc3RpbmF0aW9uICk7Cj4gICAgICAgICAgfQo+ICAgICAgICAgIGVsc2UKPiAgICAgICAgICB7Cj4gICAgICAgICAgICAgIGRvQ29weUZpbGVVc2luZ0xlZ2FjeUlPKCBzb3VyY2UsIGRlc3RpbmF0aW9uICk7Cj4gICAgICAgICAgfQo+ICAgICAgfQo+Cj4gVGhlIHJlYWwgaXNzdWUgaXMgbG9jYXRlZCBpbiB0aGUgaW1wbGVtZW50YXRpb24gb2YgZG9Db3B5RmlsZVVzaW5nTmV3SU8KPiB3aGljaCB1c2VzOgo+Cj4KPgo+ICAgICAgcHVibGljIHN0YXRpYyBGaWxlIGNvcHkoIEZpbGUgc291cmNlLCBGaWxlIHRhcmdldCApCj4gICAgICAgICAgdGhyb3dzIElPRXhjZXB0aW9uCj4gICAgICB7Cj4gICAgICAgICAgUGF0aCBjb3B5ID0zRCBGaWxlcy5jb3B5KCBzb3VyY2UudG9QYXRoKCksIHRhcmdldC50b1BhdGgoKSwKPiAgICAgICAgICAgICAgICAgICAgIFN0YW5kYXJkQ29weU9wdGlvbi5SRVBMQUNFX0VYSVNUSU5HLAo+ICAgICAgICAgICAgICAgICAgICAgU3RhbmRhcmRDb3B5T3B0aW9uLkNPUFlfQVRUUklCVVRFUywKPiAgICAgICAgICAgICAgICAgICAgIExpbmtPcHRpb24uTk9GT0xMT1dfTElOS1MgKTsKPiAgICAgICAgICByZXR1cm4gY29weS50b0ZpbGUoKTsKPiAgICAgIH0KPgo+IGFuZCBJZiBJIGNvcnJlY3RseSB1bmRlcnN0YW5kIHRoZSB3aG9sZSB0aGluZyBpcyB0aGUgcmVhbCBjYXVzZSBvZiB0aGF0Cj4gYmFzZWQgb24gdGhlIHVzYWdlIG9mIFN0YW5kYXJkQ29weU9wdGlvbi5DT1BZX0FUVFJJQlVURVMgd2hpY2ggaW5jbHVkZXMKPiBjb3B5aW5nIG9mIHRoZSBsYXN0LW1vZGlmaWVkIG9mIHRoZSBmaWxlLi4ud2hpY2ggbWVhbnMgbm90IHRvIGNoYW5nZSB0aGUKPiBsYXN0LW1vZGlmaWVkIGVudHJ5IG9mIHRoZSBmaWxlIGFuZCBpbiByZXN1bHQgdGhhdCBpcyB0aGUgcmVhc29uIG9mIG5vdAo+IGNoYW5naW5nIGl0IGFuZCB0aGUgc3R1Y2tpbmcgb2YgdGhlIHVuaXQgdGVzdCBpbiBwbGV4dXMtYXJjaGl2ZXIuLi4oc2VlCj4gdHJhdmlzIGJ1aWxkIGFib3ZlKS4uCj4KPgo+IEFmdGVyIEkgaGF2ZSBjaGFuZ2VkIHRoYXQgYW5kIG9ubHkgdXNlCj4KPiAgICAgIHB1YmxpYyBzdGF0aWMgRmlsZSBjb3B5KCBGaWxlIHNvdXJjZSwgRmlsZSB0YXJnZXQgKQo+ICAgICAgICAgIHRocm93cyBJT0V4Y2VwdGlvbgo+ICAgICAgewo+ICAgICAgICAgIFBhdGggY29weSA9M0QgRmlsZXMuY29weSggc291cmNlLnRvUGF0aCgpLCB0YXJnZXQudG9QYXRoKCksCj4gICAgICAgICAgICAgICAgICAgICBTdGFuZGFyZENvcHlPcHRpb24uUkVQTEFDRV9FWElTVElORywKPiAgICAgICAgICAgICAgICAgICAgIExpbmtPcHRpb24uTk9GT0xMT1dfTElOS1MgKTsKPiAgICAgICAgICByZXR1cm4gY29weS50b0ZpbGUoKTsKPiAgICAgIH0KPgo+IGl0IGxvb2tzIGxpa2Ugd29ya2luZyAoc2VlIGJyYW5jaCBpc3N1ZS1maXgpOgo+Cj4gV2hhdCBEbyB5b3UgdGhpbms/Cj4KPiBLaW5kIHJlZ2FyZHMKPiBLYXJsIEhlaW56IE1hcmJhaXNlCj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+IC0tClNlbnQgZnJvbSBteSBwaG9uZQoKLS0wMDFhMTE0YjNjOTQ0ZTk5Y2YwNTYxNmJjNmRmLS0KCkZyb20gZGV2LXJldHVybi0xMjQ2NjUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIE5vdiAyOSAwOTo0ODo1NyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ2NjUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMjJDMjkxMDJFOQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDI5IE5vdiAyMDE3IDA5OjQ4OjU3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDI2OTYgaW52b2tlZCBieSB1aWQgNTAwKTsgMjkgTm92IDIwMTcgMDk6NDg6NTYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQyNjA1IGludm9rZWQgYnkgdWlkIDUwMCk7IDI5IE5vdiAyMDE3IDA5OjQ4OjU2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDI1ODUgaW52b2tlZCBieSB1aWQgOTkpOyAyOSBOb3YgMjAxNyAwOTo0ODo1NiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMjkgTm92IDIwMTcgMDk6NDg6NTYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA3NThBRDE4MDZDMAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjkgTm92IDIwMTcgMDk6NDg6NTUgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjM3OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjM3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBmQ21MUElsS2FpRWogZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsIDI5IE5vdiAyMDE3IDA5OjQ4OjUzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd20wLWY0OS5nb29nbGUuY29tIChtYWlsLXdtMC1mNDkuZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjQ5XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEFGMURCNUYxOUQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDI5IE5vdiAyMDE3IDA5OjQ4OjUyICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNDkuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgdjE5c280NjEyMDE5d21oLjUKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyOSBOb3YgMjAxNyAwMTo0ODo1MiAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1EQjhJYzVIYVQ0b1Z1S01wNzdxU2E3d2pwTGJ5ZmQrbWdkTjBGVlhQMnRrPTsKICAgICAgICBiPVdORmhxL2E5enNGVncxRk44NEZ0TFBmdlVWREZqbHlFRThlZFpVclU1bmRkWnVjV0RUazRURVRJNTRNWWFUK3VPWgogICAgICAgICBINk5OUUV3bUdFaEVoNzBIMUVaRkVKUlhGOEJXc3FhYTVBOWNzVGxqNFg2d1JlZHFwRjhjWnUrVnpSeDVjai9BZEpsTQogICAgICAgICBMTE95ak50eGh0cjFmckJCTmd4Mk1TTDIyRjlVNUNWd3RTdDVuVDNGQTEzUDRIVWZwQkJSb04veVZ5QzdWL25lZDJqTAogICAgICAgICBPUzFKZGgwaDRqQ3VSVkY0dkZ2UHlmYThOS1RmZjRzbUljMi9pTDhJNFp3cGNERSs3L3hhMXZWN2liR3E5Qk9FbmpJVgogICAgICAgICBueFFQc3F4N2VnTTB6NHh1emlYZWVjb3ZhMG1hY284NzFxWnl1U2t3MzVYSDl1U2xkZHdMYk8wTlFhdmN0OUpvdDExKwogICAgICAgICBCWE5nPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1EQjhJYzVIYVQ0b1Z1S01wNzdxU2E3d2pwTGJ5ZmQrbWdkTjBGVlhQMnRrPTsKICAgICAgICBiPU1HS1k4RitLWG5qWDc3TWRxQ3l0eWtWNHpEbkJQblVES0FEbWY2azZicVlSOCs4STJhaXFCSzlGNUdOT2Y2ZExHMwogICAgICAgICB2eFdZQ3F5dEtuYjJEWWdwTHU5NmNXNk5Db2ZTbmpkWTU3d2Vobk5qckFwUzJLVE9jakt2aUNYNFZMNU5KaHp3dHFMQQogICAgICAgICBPenk5eXpqbFZjN21BTFhKRzIwaUQyZUJsNXNiVlZ3eG9nRVNUTmJDWUU3MWppV2IxWUtVeExFVkNYVnV6Q1hsS2dJbQogICAgICAgICBJOURmMGgxSmQvRUlyZEhHUVl4d25MdlJ0MUNaRE02SUJtUmJUUHl4bEJlZ2FvaHQvVS9ndXJ5MzIzWktQbU9YNW9YSQogICAgICAgICBxZEhWbDJia0JBbGlYaCtOT00yRGc2VWxiRHZDMHl5UEgvdTRPQWNEa0QyWjVCK3Q5eHh3V0V3ZEdRbTJtVnJVRlcxdgogICAgICAgICAvWDdRPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg1dXZ1d09Wa3VSanIwczFFYU1vUExHWERab2tvUFM0T2NXVlRsVURhdGdOemJuVGxkSgoJYkJ2M09vK1BDbjR4c1RXVFFZYTdqanBNRVpQbnJEQVlHNzYrcjJUYStBPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TWJlSHlZamtYWFFnRlNEVFM1SFBGS0dCS1VIcWlsUDNvczlRSUhsOEFLMmZ5Mk51ZnFKTDRuVFpuVVc4RFVFdEFxa3pIVnVZQWMzWjJBYkNvRVRKdHM9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjI4LjYxLjg3IHdpdGggU01UUCBpZCBrODRtcjE4ODMyMTF3bWEuNDguMTUxMTk0ODkzMjE1OTsgV2VkLAogMjkgTm92IDIwMTcgMDE6NDg6NTIgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xNzMuMjM1IHdpdGggSFRUUDsgV2VkLCAyOSBOb3YgMjAxNyAwMTo0ODo1MSAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPENBK25Qbk13TUJHNnAraU1ndjBOOURSdDM2OXRFM3o1ckFva1pOS1g0S0pMd3MyckM3QUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk13TUJHNnAraU1ndjBOOURSdDM2OXRFM3o1ckFva1pOS1g0S0pMd3MyckM3QUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAyOSBOb3YgMjAxNyAwOTo0ODo1MSArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXhDRHFpUHprMW44RUdGMDRYUEZZWmRPK2J2VE1OQTUra0UyUmRxUHQyUXZRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogTmV3IEplbmtpbnMgaW50ZWdyYXRpb24KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNGIzMDA0MDUxZTI2MDU1ZjFjMGJiNiIKCi0tMDAxYTExNGIzMDA0MDUxZTI2MDU1ZjFjMGJiNgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKLSBbeF0gSklSQSBpc3N1ZXMgdXBkYXRlZAoKT24gMjkgTm92ZW1iZXIgMjAxNyBhdCAwOTo0NSwgU3RlcGhlbiBDb25ub2xseSA8CnN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgoKPiBPaywgaGVyZSdzIHRoZSBjdXJyZW50IHN0YXR1czoKPgo+IC0gW3hdIENyb3NzIE9TL0pESyBtYXRyaXggYnVpbGRpbmcKPiAtIFt4XSBGYXN0IGZhaWwKPiAtIFt4XSBFbWFpbCBub3RpZmljYXRpb24KPiAtIFt4XSBFbWFpbCBub3RpZmljYXRpb24gaW5jbHVkZXMgcmVjZW50IGNoYW5nZXMKPiAtIFsgXSBFbWFpbCBub3RpZmljYXRpb24gY29udGFpbnMgdGFpbCBvZiBjb25zb2xlIGxvZwo+IC0gWyBdIEpJUkEgaXNzdWVzIHVwZGF0ZWQKPiAtIFsgXSBCdWlsZCBkZXNjcmlwdGlvbiBzZXQgdG8gSklSQSB0aWNrZXQgaWQncwo+CgotLTAwMWExMTRiMzAwNDA1MWUyNjA1NWYxYzBiYjYtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDM5NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgTm92ICA0IDEyOjU0OjU2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDM5NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3MzBBNDE3REQ0Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMTI6NTQ6NTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1MTkwMiBpbnZva2VkIGJ5IHVpZCA1MDApOyA0IE5vdiAyMDE3IDEyOjU0OjU2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MTgyNiBpbnZva2VkIGJ5IHVpZCA1MDApOyA0IE5vdiAyMDE3IDEyOjU0OjU2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTE4MTQgaW52b2tlZCBieSB1aWQgOTkpOyA0IE5vdiAyMDE3IDEyOjU0OjU1IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwNCBOb3YgMjAxNyAxMjo1NDo1NSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDA1QzdFMTA3NTQ0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxMjo1NDo1NSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDAuMDk5ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTAuMDk5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44LCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgSVlYdzhTU2d0Vi1IIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAgNCBOb3YgMjAxNyAxMjo1NDo1NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdyMC1mMTc4Lmdvb2dsZS5jb20gKG1haWwtd3IwLWYxNzguZ29vZ2xlLmNvbSBbMjA5Ljg1LjEyOC4xNzhdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRDhBMTM1RjU2NgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMTI6NTQ6NTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd3IwLWYxNzguZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgMTVzbzQ2ODQ4MTZ3cmIuNQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDA0IE5vdiAyMDE3IDA1OjU0OjUzIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUFreHgrV0lrS0tSVU9Ob3lub3ladnpMUmtRUmZzSEVsWXVndDJIdHk0dE09OwogICAgICAgIGI9clJDR3g4LzNZVFNjbGFKamdkVkRvYVRwTVd2RHpMdFJINWVQME1oWEt3SWtvVTZFQ0FXS1lXaHJvNUYvSEVqYXJECiAgICAgICAgIC9FWTVXUW13RXRpRDRGdVJEV2dsTkFTZFlnc2ViRUYzNk9wcThBM0lJNDZzTGRGM2dwZURuRkhVc2hNeXhJL1VRVzBrCiAgICAgICAgIE8yNWVJdzl3NkVaTTd2Q29WUWFCSDB1NE5WeGpraVI4N1hQNXkrNzM4bGoxYmVHaW05QVFtTU9xYlFZUE85eEpZK21xCiAgICAgICAgIDFUS3QxQitOcnVBU2NRZmxvOHhxOHEyZ0syYVZjSGRpRTIrM3hFQ2xGdE83OENqK0pYSHcxKzlocWNMOENxZ0kyVysxCiAgICAgICAgIGx0Q3cyK3NuSVp0UG15L0lrYmM5NjlOUVpHMGZ0NG5jUlBaOTc0dlphdmg1SDE1dlg5V3ZUVCtiRTVXOGtMUHlENUIxCiAgICAgICAgIG1xZXc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUFreHgrV0lrS0tSVU9Ob3lub3ladnpMUmtRUmZzSEVsWXVndDJIdHk0dE09OwogICAgICAgIGI9Q0JzL1JVNi9iTzZqSzNKNDVqTFlsTHNYQXdHTWtyK0k5UFJCazIxMUV2S3lPNDd1TWlBd3g4RGQ5NWFEdVdiWlNPCiAgICAgICAgIFJheVdwampxeHlNNWcvTmhlN1hRQnJ1MEphVVcrWnRWQnhucHNabGhrZXF0blN3QkFyZVFxYUE3dDl6RUVRRnJLWHRHCiAgICAgICAgIE1oajJmVWVRR0VCZURQYUNsc3lqVnRxOEgwOHQ0NFFOUE03NG9ySzM5TVVCZzNsNXdaaVF0aGF0amlGMzA1WFh2cGY2CiAgICAgICAgIGU5L05pd1lLaXZNUzB2Qm5FQmlUZjRKQWVxZU5yOXQwYk9UTGNPbDA3L0lkT0grK1hYZmpVcUFTL2cvTUtVbmJ3RUt2CiAgICAgICAgIHI2aEpxcE9zdGZITk5hZWhIdHJabXBkRW1BRExSU3pTMVB5K0c3dWxkMTJQUkkybDJ2RDJHQ09EN3lRbll3MmNOTThhCiAgICAgICAgIHFOMFE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVZ2c3ducGZnZjhYRXlOc1BOVy9BSytxbmIyL3hFUWhIMnNqK2NqWEJPVXQzY05oUy9ICglkWDYwNUdTVVh4RHJWdzdTNHhrZzF3blVwY2ZxZUFLUmh5djV2eUpEWnc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArUWZiWHBBc0F3bmRiWTdZczM5R0x2Z21GYlJVNE9OQTBjb0l0SUJqaUJ1R1ZWRlFqUlphYVJxRk9EZzN3U2VPeTBSTHR3V1YxUmdiVERXWXRDSEdtYz0KWC1SZWNlaXZlZDogYnkgMTAuMjIzLjE5Ny4xNDEgd2l0aCBTTVRQIGlkIG0xM21yODc3MDYyMndyZy4yMDMuMTUwOTgwMDA4NzIyMTsKIFNhdCwgMDQgTm92IDIwMTcgMDU6NTQ6NDcgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPENBK25Qbk13RUg5WjJteXA3MXVhU3JkY3lMSlJGckUtVnJ0MjAxOTFyZDAxaCtVZmhqd0BtYWlsLmdtYWlsLmNvbT4KIDxDQSsyOThVZzhEd29rc2Nkd0M5dlByRysyVFBmc2RUdnFRNUdPMlJkUnJPTVQ9dnBmZXdAbWFpbC5nbWFpbC5jb20+CkluLVJlcGx5LVRvOiA8Q0ErMjk4VWc4RHdva3NjZHdDOXZQckcrMlRQZnNkVHZxUTVHTzJSZFJyT01UPXZwZmV3QG1haWwuZ21haWwuY29tPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBTYXQsIDA0IE5vdiAyMDE3IDEyOjU0OjM2ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NeENSOVl0MWdVTFhGLVE0R0RYUnpBZ2haMHNGNVVra1hkU3RVTUNLUE1MOWdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiA0LjAuMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwODllMDgyNDRiYzRlMTdiYzEwNTVkMjdiOTgzIgoKLS0wODllMDgyNDRiYzRlMTdiYzEwNTVkMjdiOTgzCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpPbiBTYXQgNCBOb3YgMjAxNyBhdCAxMjo1MCwgUGF1bCBIYW1tYW50IDxwYXVsQGhhbW1hbnQub3JnPiB3cm90ZToKCj4gVG8gYWRkIHRvIHNjb3BlIGZvciBNYXZlbiA0LCBJTU86Cj4KPiAqMS4gPGRlcGVuZGVuY3k+IHRhZyBjb3VsZCBoYXZlIGFuIG9wdGlvbmFsIDxyZXBvLWxpc3Q+IGFyZzoqCj4KPiA8ZGVwZW5kZW5jeT4KPiAgICAgPHJlcG8tbGlzdD5teS10ZWFtLG15Y29ycDwvcmVwby1saXN0Pgo+ICAgICA8Z3JvdXBJZD5jb20udGhvdWdodHdvcmtzLnhzdHJlYW08L2dyb3VwSWQ+Cj4gICAgIDxhcnRpZmFjdElkPnhzdHJlYW08L2FydGlmYWN0SWQ+Cj4gICAgIDx2ZXJzaW9uPjEuNC4xMDwvdmVyc2lvbj4KPiA8L2RlcGVuZGVuY3k+CgoKTm8uIFdlIGFyZSBwdXNoaW5nIHBvbSBtb2RlbCBjaGFuZ2VzIHRvIDUuMC4wIChhcyBtb2RlbFZlcnNpb24gNC4wLjAgYWxpZ25zCndpdGggTWF2ZW4gdmVyc2lvbikKCkFpbSBpcyB0byBidWlsZCBhIHBsYXRmb3JtIGZyb20gd2hpY2ggNS4wLjAgY2FuIGJlIGxhdW5jaGVkCgoKPgo+Cj4gSW4gdGhlIGFib3ZlLCBjZW50cmFsIGlzIG5vdCBjaGVja2VkIGF0IGFsbC4gIG15LXRlYW0gYW5kIG15LWNvcnAgYXJlCj4gZGVmaW5lZCBlbHNld2hlcmUuCj4KPiAqMi4gR0FWIGFzIGEgZmlyc3QgY2xhc3MgdGhpbmcgKG9wdGlvbmFsKToqCj4KPiA8ZGVwZW5kZW5jeT4KPiAgICAgPGdhdj5jb20udGhvdWdodHdvcmtzLnhzdHJlYW06eHN0cmVhbToxLjQuMTA8L2dhdj4KPiA8L2RlcGVuZGVuY3k+Cj4KPiBvcgo+Cj4gPGRlcGVuZGVuY3kgZ2F2PSJjb20udGhvdWdodHdvcmtzLnhzdHJlYW06eHN0cmVhbToxLjQuMTAiLz4KPgo+Cj4gRm9yIHRoZSBmaXJzdCB0aW1lIGV2ZXIgcGVvcGxlIGNvdWxkIGRvIHNpbXBsZSBhY2svYWcvZ3JlcCB0aHJ1IHNvdXJjZQo+IGJhc2VzIGxvb2tpbmcgZm9yIHRoaW5ncy4KCgpObywgcmVxdWlyZXMgbW9kZWxWZXJzaW9uIGJ1bXAuIE91dCBvZiBzY29wZSBmb3IgNC4wLjAKCgo+Cj4gKjMuIE1vcmUgcGx1Z2dhYmxlIGRlcGVuZGVuY3kgcmVzb2x2ZXI6Kgo+Cj4gSSBtaWdodCB3YW50IGFsdGVybmF0ZSBwbGFjZXMgdG8gc291cmNlIEpBUnMgZnJvbSB0aGF0IGFyZSAqbm90KiBIVFRQCj4gbW91bnRlZCBzeXN0ZW0gdGhhdCBtYXRjaCB0aGUgTWF2ZW4yIGRpcmVjdG9yeSBzdHJ1Y3R1cmUuCj4KPiBMaWtlIGhlcmUgLSBodHRwczovL2dpdGh1Yi5jb20vcGF1bC1oYW1tYW50L3hzdHJlYW0tamFyL3JlbGVhc2VzIChhbmQKPiBhc3NvY2lhdGVkIGJsb2cgZW50cnkgLQo+IGh0dHBzOi8vcGF1bGhhbW1hbnQuY29tLzIwMTcvMDUvMTMvbWF2ZW4tY2VudHJhbC1hcy1tdWx0aXBsZS1naXQtcmVwb3MvKQo+Cj4gSW4gcGFydGljdWxhciBJIG5lZWQgdG8gcmV3b3JrIHRoZSBqYXIgYXMgaXQgaXMgcHVsbGVkIGludG8gdGhlIGxvY2FsCj4gfi8ubTIvcmVwb3NpdG9yeSBjYWNoZSAtIHRoZXJlJ3MgYSByb290IGRpcmVjdG9yeSB0byByZW1vdmUuCgoKSSBhbSB3aWxsaW5nIHRvIGxldCB0aGlzIGJlIG9wdGlvbmFsIHNjb3BlIGZvciBub3cuIE1heSBiZSB5YW5rZWQgaWYgdG9vCnJpc2t5IG9yIG5vdCByZWFkeSBpbiB0aW1lCgoKPgo+IC0gUGF1bAo+Ci0tIApTZW50IGZyb20gbXkgcGhvbmUKCi0tMDg5ZTA4MjQ0YmM0ZTE3YmMxMDU1ZDI3Yjk4My0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NDQzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBOb3YgIDcgMDc6MjM6MjAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDQzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIENEODUzMTc2ODUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAgNyBOb3YgMjAxNyAwNzoyMzoyMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDYyOTMyIGludm9rZWQgYnkgdWlkIDUwMCk7IDcgTm92IDIwMTcgMDc6MjM6MjAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYyODQ0IGludm9rZWQgYnkgdWlkIDUwMCk7IDcgTm92IDIwMTcgMDc6MjM6MjAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MjgzMSBpbnZva2VkIGJ5IHVpZCA5OSk7IDcgTm92IDIwMTcgMDc6MjM6MTkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDA3IE5vdiAyMDE3IDA3OjIzOjE5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMkJBQTdDM0Q3NgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgIDcgTm92IDIwMTcgMDc6MjM6MTkgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC45MDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuOTAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgZGF2NnAxUnMzZk1rIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVHVlLCAgNyBOb3YgMjAxNyAwNzoyMzoxNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdyMC1mMTczLmdvb2dsZS5jb20gKG1haWwtd3IwLWYxNzMuZ29vZ2xlLmNvbSBbMjA5Ljg1LjEyOC4xNzNdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMUFCN0M1RkJCMAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgIDcgTm92IDIwMTcgMDc6MjM6MTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd3IwLWYxNzMuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgazYxc281MDgwMDczd3JjLjQKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAwNiBOb3YgMjAxNyAyMzoyMzoxNiAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1VVXFNR1NmZCt4WUNwZUJBbjR2RU9aV1dSTWlmSXd5UGU4YWFDUEhLUHIwPTsKICAgICAgICBiPUVNaVF1MU9lR29JYXU5WkdJUnBMVHNVMG1qRFNYNXZuSEtIOWt3S3FETCsrQkw3Y0IrSnNUdFlhL2FUdGcxaXRONwogICAgICAgICA0STF0MkhIUmd1YVhnRndqaW9USUJDWm85YUQxYi92WnpFREJ1T1RhOE5XNGFUa2FMcHI5bW9DQWJ0RGhTV0lyWXZvcwogICAgICAgICA5M1J0b0RGeTNlci9lK2ltQys2Q3NuR1JIVXNDSG5JT1BBUGp2S2JQMUhYelcvWERFUUp0SUJLUEhGeTdoaTBMdUFwbAogICAgICAgICBuOXpDUjQ2YXdmdkZGdGcwRy9jNk1SZEMvb3o1R3RodlRsWFhveTFtc21OZTNiL2pOWmFDZkllb3I3eStjeFgwVW9kaQogICAgICAgICBidTdzdjhqVFlTUDJsMzVZaTJJaE1jd1Y4Y2pJSXVQNkp3Ykw4eTRtQzdocFJvWTU0cjc5MHd1Rk5ZRHl5eno0UEw3VwogICAgICAgICA5Z1FBPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1VVXFNR1NmZCt4WUNwZUJBbjR2RU9aV1dSTWlmSXd5UGU4YWFDUEhLUHIwPTsKICAgICAgICBiPUMvcG5lK2h0NlZmSHVyVGc0TlU3MkRYZVh1MElyemV0VWs3bm4zT05XZzZyVXNsdStqQ2RIcENzS3hWc1ZscjVkMwogICAgICAgICAySzY2L25hSG1VNmg2RUJRS3hYeUxrL0NuRFdEaW5YTTcvNXlBSWJXcHpOZSt4Wk5NUlY0S0VGU2JjUlpkcmw4WHMvKwogICAgICAgICA2OUNDb0UyeEd6cklFb1ZoUjJtdVJOQVU3SUpoUjloSjZwWHo4Q24yd1BxV0NEeThDRmZidEVVYTErSTZaZkxvQi9ISQogICAgICAgICBWV1NKQkZyNGpBaTJ2SFlYK2RHRHoxU3hzMXppK29VdmJLVTJnRksrUG04QUx0bUthYUdZcGVLV0FPZzZNUHNqMVZRegogICAgICAgICBwZ3VtNVY0Qlk0Umcvb1AwdGxhV0NGUkdpTTJvdGF5K1VqemE1c0RVbnhvUG9SNHpVNHVxdFFQa2ZBQlRzSkNRL3hqdAogICAgICAgICBuOWhnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FXWU1rWnhpR2NIMllQK21ndENZenVtbUl3SXpMRWZXaEFaZThQcTdudjRLU0xvdi9OcwoJL3U3UjNtVjcrVUNjMHQzeno1S0lJRWJJTjkyRFZidGJQeWJPSERxMHBnPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFCaFFwK1NBNzBtTld3MENLejFzUStORWZaaGJBTkswaVRFa0F2bjdUSzhWQzdyZXR1dEdpOTlPL01aYmErdnZuM0xRSDRkd1lCUi9mcXhVZDR4UG1BMllOOGs9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xNDQuMjI2IHdpdGggU01UUCBpZCBpODltcjEzOTc1Nzk5d3JpLjIxNy4xNTEwMDM5Mzk1NTA2OwogTW9uLCAwNiBOb3YgMjAxNyAyMzoyMzoxNSAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8ODYxNDFFQjMtMTMzRi00NTRGLTlGMkYtM0ZFMjIxMzAxMUU0QGhvbnRvbi5vcmc+CiA8Q0ErblBuTXpzODlGX3FDX1pzZlBqYXlQaHE9NUZqeXc4bWhUTW50WFBhODJfb2gtTVJ3QG1haWwuZ21haWwuY29tPiA8RkM4ODVBQzQtRTRCRi00N0RFLTg4OTYtNzJEMUU2Q0UzRTEwQGhvbnRvbi5vcmc+CkluLVJlcGx5LVRvOiA8RkM4ODVBQzQtRTRCRi00N0RFLTg4OTYtNzJEMUU2Q0UzRTEwQGhvbnRvbi5vcmc+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMDcgTm92IDIwMTcgMDc6MjM6MDQgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk14Q1NWelkyZy1jYXdtcEJzSi1EU0dCUkdraHdwMENyNUw3UWh0OFVFRGhiZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFJlYWN0b3Igc2FmZS9yYWxseSBwb2ludHMKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iOTRlYjJjMDVmNDgyYzQyMTIyMDU1ZDVmNzFjNCIKCi0tOTRlYjJjMDVmNDgyYzQyMTIyMDU1ZDVmNzFjNApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPbiBUdWUgNyBOb3YgMjAxNyBhdCAwMTozMiwgQ2hhcmxlcyBIb250b24gPGNoYXNAaG9udG9uLm9yZz4gd3JvdGU6Cgo+IEFyZSB0aGVzZSBpbnRlZ3JhdGlvbiB0ZXN0IGZvciB0aGUgcGx1Z2luIG9yIGRvIHRoZSBpbnRlZ3JhdGlvbiB0ZXN0cyB1c2UKPiB0aGUgcGx1Z2luPwoKClRoZSBpbnRlZ3JhdGlvbiB0ZXN0cyB1c2UgdGhlIHBsdWdpbi4gKFRob3VnaCB0aGVyZSBhcmUgb3RoZXIgdXNlIGNhc2VzIHRvbz0KKQoKSWYgdGhlIGZvcm1lciwgdGhlbiB0aGUgaW52b2tlciBwbHVnaW4gaXMgYXBwcm9wcmlhdGUuICBJZiB0aGUgbGF0dGVyLCB0aGVuCj4gYSBub24tY29kZSwgbm9uLXRyYW5zaXRpdmUgZGVwZW5kZW5jeSBzY29wZSBpcyBhIHBvc3NpYmlsaXR5LgoKCk5vIG5lZWQgZm9yIGEgbmV3IHNjb3BlLCB0aGUgcGx1Z2luIHRhZyBpZGVudGlmaWVzIHRoZSBkZXBlbmRlbmN5CgpBZ2FpbiwgdGhpcyBuZXcgc2NvcGUgaGFzIHRoZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBwcm9ibGVtLi4KPgo+ID4gT24gTm92IDUsIDIwMTcsIGF0IDExOjMwIFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+Cj4gPiBZZXMgaXQgd291bGQsIGJ1dCBzb2NpYWxseSBwZW9wbGUgZG9uPUUyPTgwPTk5dCBkbyB0aGF0Li4uIGFuZCBhbnl3YXksID0KdGhlcmUgYXJlCj4gPiBsZWdpdGltYXRlIHVzZSBjYXNlcywgZWcgdG9tZWUgaGFzIChvciBoYWQgaWYgdGhleSBnYXZlIHVwIGZpZ2h0aW5nIGFuZAo+ID4gbW92ZWQgaXQgb3V0IG9mIHJlYWN0b3IpIGEgcGx1Z2luIHRoYXQgd2FzIHRpZWQgdG8gdGhlIGNvbnRhaW5lciB2ZXJzaW89Cm4uCj4gPiBUbyBhbGxvdyBpbnRlZ3JhdGlvbiB0ZXN0cyBpbiB0aGUgc2FtZSByZWFjdG9yIGFzIHRoZSBtYWluIGNvZGViYXNlLCBpdAo+IGlzCj4gPiByZWFzb25hYmxlIHRvIHdhbnQgdGhlIHBsdWdpbiBidWlsdCBhdCB0aGUgc2FtZSB0aW1lLgo+Cj4gLS0KU2VudCBmcm9tIG15IHBob25lCgotLTk0ZWIyYzA1ZjQ4MmM0MjEyMjA1NWQ1ZjcxYzQtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDI4OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgT2N0IDIxIDA4OjE2OjU5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI4OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBBRTQyMzEwQUVBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMjEgT2N0IDIwMTcgMDg6MTY6NTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3OTg5IGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIE9jdCAyMDE3IDA4OjE2OjU5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3OTEwIGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIE9jdCAyMDE3IDA4OjE2OjU5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzg5OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDIxIE9jdCAyMDE3IDA4OjE2OjU4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAyMSBPY3QgMjAxNyAwODoxNjo1OCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEM0QjcxMTgwMTVGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAyMSBPY3QgMjAxNyAwODoxNjo1NyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuMzc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuMzc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGVsTV9MMGlEVk9zSCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgMjEgT2N0IDIwMTcgMDg6MTY6NTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13bTAtZjQxLmdvb2dsZS5jb20gKG1haWwtd20wLWY0MS5nb29nbGUuY29tIFs3NC4xMjUuODIuNDFdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQzczMTc1RkIwNgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMjEgT2N0IDIwMTcgMDg6MTY6NTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd20wLWY0MS5nb29nbGUuY29tIHdpdGggU01UUCBpZCBtNzJzbzI4NjA2ODV3bWMuMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDIxIE9jdCAyMDE3IDAxOjE2OjUzIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXFXM21aOWNDVXU2cnhIem1aZHF0SVd0L0J2ZlYvVjlVOG1LcksxWjJiZVE9OwogICAgICAgIGI9TUdQdkVzanpkTmhMa2RHVDBKT0o0cHZZYkUyR01lTHkzUExrSWF2TVFpSnl5bFNNYzE1anJFck9MVkcvS2xnckxrCiAgICAgICAgIEtiWDU5YnIwbmw0YjFXTDY5elBIYnphTzRTUzB3NjRqMjRyQldvbmJkVkFYT0p0QWxpNG41MGNIZTN0YWpSUmYxdWRaCiAgICAgICAgICtkZ3YxUjhxYXlWZkhvMTlmZE43WWhOaEdwbmYzOTJmR1lBbTkvNExSRUFMd2FOSFlpZXRtZW1vdTYrQkhXaWxnWTN5CiAgICAgICAgIDJMYnlKUStZT0VGdXRVSWFReGczUmt4UGZidFQ5bU9Ja2FKM2tuMm1JUTl5NWt4eW4zd0pOai8xbk9QaTM5R0h2b3lxCiAgICAgICAgIERyOU9lM3FGV0xhQkhmRDVjM292Q1dNbitMTHpRM1VwWmhOb0VtWm9OdzJKUnI0aVgyUzMxTGEzdVFTenZTRlUvU2gyCiAgICAgICAgIFZ4M0E9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXFXM21aOWNDVXU2cnhIem1aZHF0SVd0L0J2ZlYvVjlVOG1LcksxWjJiZVE9OwogICAgICAgIGI9ZnE0bkI1NGFYRGo4ZDVMYVFxZTNIOU5CdVMrcXJVRFpySndyaG5PYVlua3hKQnFsd1Qzbkxxbnh4elVwRmJCMHBXCiAgICAgICAgIHQ0djlvcVRBb0VRSGFWNmpzdWtCQWdwajk3WUpLVnhKZzRxNzRnUnpQMWRmWUxEdlc5d3NXdk9kYWtUQjRUZTNQRlg5CiAgICAgICAgIDdmVUZXbDQ0d3pBY2UwY1V6andiR2hSRnZiUUVRUFVlMm9vMGkyR1VQT0RVUzF2YVY0M05haTZmWVUxYVUrMlhkdWIrCiAgICAgICAgIGVoeXBYSytGVWdSNmNwZ0lraElrZTJ4Mmd6MXhxMDFycHZadTZSajlVOTEyZWx5NzVySUZYckhxQUhYdEVxb1MrL013CiAgICAgICAgIFNBeFB3azJtOVdVUnVlTkFhMFNOYmEwL2pGdVdvS3R1dU9KbFpJZGpiNGRmbGlRZVBqU056SWdRSWdBSVVUd1cyYXNzCiAgICAgICAgIHVSeVE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVdpOXExeDQ2RFpHaUt3LzNIMHlya0c3OWFOQ2NodThpaklxRjdSY2UrQWJPNlA4eFpnCgl1b0xVVGlrcTh3cXduZDcyVnRsREswOW1NWkkrVkFBNldxd3JIVTRBNUE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArVCtBZ0pjK2lrbkdQL1hUdnI3NmNCMDQvcDhqbzhJVmxWdWhyOHU4NVUwa2NHL3hvNktoc0o3N0ZjRFlLWHdYbDRLQ2ttVHhxbGRkKzV3VmZQeFZlOD0KWC1SZWNlaXZlZDogYnkgMTAuMjguMTExLjIwMyB3aXRoIFNNVFAgaWQgYzcybXIxMDUwMTU5d21pLjQyLjE1MDg1NzM4MDY2MTQ7CiBTYXQsIDIxIE9jdCAyMDE3IDAxOjE2OjQ2IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDxDQUpSdkZkby0zM1pmeGlGc0p3amlHUUpNWVQ1bXUzMWZxRDFmX3UzRlVRVG9Kdj1UdWdAbWFpbC5nbWFpbC5jb20+CiA8MjY3ODQxOC42ZjlqY0JGMXJDQGdpZ2E+IDwyMDE3MTAyMTA0NTg1MC5GMzM1ODI5QzAxQ0RAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPiA8MTcwODI4NS54YlFST0lqOTlaQGdpZ2E+CkluLVJlcGx5LVRvOiA8MTcwODI4NS54YlFST0lqOTlaQGdpZ2E+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFNhdCwgMjEgT2N0IDIwMTcgMDg6MTY6MzUgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk14Q3V1cFA5NXZQalhtRXdfR3pkelVycjJDX1NmRkhEVGtvZXpBR0I9czFmUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IE1hdmVuIERvY2tlciBJbWFnZXMKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDc3OWZhZGM1ZDczMDU1YzBhMzU0YSIKCi0tMDAxYTExNDc3OWZhZGM1ZDczMDU1YzBhMzU0YQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPbiBTYXQgMjEgT2N0IDIwMTcgYXQgMDg6NDUsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cm89CnRlOgoKPiBvaywgbGV0J3Mgc3dpdGNoIGRpcmVjdGx5IHRvIHRoZSBEb2NrZXIgY2FzZQo+Cj4gSSdtIG5vdCBhIERvY2tlciBleHBlcnQsIHRoZW4gSSdtIGRpc2NvdmVyaW5nIHRoaW5ncyB0aGF0IG15IGJlIG9idmlvdXMgdD0Kbwo+IG90aGVycwo+Cj4gSUlVQyBEb2NrZXIgaGFzIGFuICJvZmZpY2llbCBpbWFnZXMiIHByb2plY3QgWzFdIHdoZXJlIENhcmxvcyBwcm92aWRlZCBhCj4gTWF2ZW4KPiBpbWFnZSBbMl06IHRoZW4gdGhpcyBpbWFnZSBpcyBrbm93biBhcyAidGhlIG9mZmljaWFsIE1hdmVuIERvY2tlciBpbWFnZSIKPiBDYXJsb3MgaXMgYW4gaW5kaXZpZHVhbCwgaGUncyBhbHNvIGEgUE1DIG1lbWJlciBvZiBNYXZlbgo+Cj4gd2hhdCBkbyB3ZSB3YW50IHRvIHNheTogdGhlIFBNQyBtZW1iZXIgaGFzIHByb3ZpZGVkIGFuIG9mZmljaWFsIERvY2tlcgo+IGltYWdlIG9yCj4gYW4gaW5kaXZpZHVhbCBoYXMgcHJvdmlkZWQgYW4gb2ZmaWNpYWwgRG9ja2VyIGltYWdlPwo+Cj4gZGVwZW5kaW5nIG9uIHRoZSBhbnN3ZXIsIHNvbWUgd2F5IG9mIGRvaW5nIGhhcyB0byBiZSBjaGFuZ2VkIChHaXQgbG9jYXRpbz0Kbgo+IG9yCj4gbmFtaW5nIG9mIHRoZSBvZmZpY2lhbCBpbWFnZSkKCgpJPUUyPTgwPTk5bSBpbiBmYXZvdXIgb2YgY3JlYXRpbmcgYSByZXBvIGZvciB0aGUgZG9ja2VyZmlsZSwgbGljZW5zZS50eHQsIHI9CmVhZCBtZSwKbm90aWNlcywgZXRjIGFuZCBmb2xsb3cgdGhlIHN0YW5kYXJkIHJlbGVhc2Ugdm90ZSBsaWZlY3ljbGUgZm9yIHRoYXQKZG9ja2VyZmlsZS4KCklmIHdlIHdhbnQgdGhhdCBkb2NrZXJmaWxlIGluIE1hdmVuLWNvcmUgcmVwbywgaT1FMj04MD05OW0gRmluZSB3aXRoIHRoYXQgdD0Kb28KCk5vdyB0aGUgb3RoZXIgcXVlc3Rpb24gaXMgaG93IHRvIGdldCB0aGUgaW1hZ2UgZnJvbSB0aGF0IGRvY2tlcmZpbGUgaW50bwpkb2NrZXIuLi4KCkk9RTI9ODA9OTltIGhhcHB5IGZvciBDYXJsb3MgdG8gY29udGludWUgZG9pbmcgaW4gYSBwZXJzb25hbCBjYXBhY2l0eS4uLgoKU28gaT1FMj04MD05OWQgYmUKCj1FMj04MD05Q1RoZSBkb2NrZXJmaWxlIGhhcyBiZWVuIHJlbGVhc2VkIGJ5IHRoZSBNYXZlbiBwcm9qZWN0IGFuZCBhIG1lbWJlcj0KIG9mIHRoZQpQTUMgaGFzIHVwbG9hZGVkIHRoZSBpbWFnZT1FMj04MD05RAoKCj4KPiBSZWdhcmRzLAo+Cj4gSGVydj1DMz1BOQo+Cj4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9kb2NrZXItbGlicmFyeS9vZmZpY2lhbC1pbWFnZXMKPgo+IFsyXQo+IGh0dHBzOi8vZ2l0aHViLmNvbS9kb2NrZXItbGlicmFyeS9vZmZpY2lhbC1pbWFnZXMvYmxvYi9tYXN0ZXIvbGlicmFyeS9tYXY9CmVuCj4KPiBMZSBzYW1lZGkgMjEgb2N0b2JyZSAyMDE3LCAwNjo1ODo1MCBDRVNUIE1hbmZyZWQgTW9zZXIgYSA9QzM9QTljcml0IDoKPiA+IEZyb20gbXkgcGVyc3BlY3RpdmUgaXQgaXMganVzdCBsaWtlIHNka21hbiBpbmNsdWRpbmcgdGhlIGNvbmNsdXNpb24uIFdlCj4gaGF2ZQo+ID4gb3RoZXIgdGFza3MgYXQgb3VyIGhhbmRzLCBtYWludGFpbmluZyBhIGRvY2tlciBpbWFnZXMgaXMgbm90IHNvbWV0aGluZyA9CndlCj4gPiBzaG91bGQgYm90aGVyIHdpdGguIEhvd2V2ZXIgbmVlZHMgb25lIGNhbiBlYXNpbHkgY3JlYXRlIG9uZSBhbmQgdGhlcmUKPiB3aWxsCj4gPiBiZSB0aG91c2FuZHMgb2YgdmFyaWF0aW9ucyBkaWZmZXJlbnQgdXNlcnMgd2FudC4KPiA+Cj4gPiBMZXQgdGhlbSBjcmVhdGUgaXQgb24gdGhlaXIgb3duLgo+ID4KPiA+IE1hbmZyZWQKPiA+Cj4gPiBIZXJ2PUMzPUE5IEJPVVRFTVkgd3JvdGUgb24gMjAxNy0xMC0yMCAxODo0NjoKPiA+ID4gdHJ1ZSwgZnJvbSBhIGdlbmVyYWwgcGVyc3BlY3RpdmUsIGl0J3MgbGlrZSBzZGttYW4KPiA+ID4KPiA+ID4gd2UgbmVlZCB0byBkaXNjdXNzIHRoZW4gZGVjaWRlIGlmIHdlIHdhbnQgdG8gbWFpbnRhaW4gTWF2ZW4gRG9ja2VyCj4gPiA+IGludGVncmF0aW9uIChjb250cmFyeSB0byBvdXIgY3VycmVudCBkZWNpc2lvbiB0byBub3QgbWFpbnRhaW4gTWF2ZW4KPiA+ID4gc2RrbWFuIGludGVncmF0aW9uIGJ1dCBsZXQgc2RrbWFuIGNvbW11bml0eSBkbyBpdCkKPiA+ID4KPiA+ID4gY2FuIHdlIHRoaW5rIGFib3V0IGEgZ2VuZXJhbCBzb2x1dGlvbj8gcGVyaGFwcyBub3QgcmVhbGx5IGEgc29sdXRpb24sCj4gYnV0Cj4gPiA+IGEKPiA+ID4gZGVjaXNpb24gcHJvY2VzcywgeWVzCj4gPiA+Cj4gPiA+IHRvIG1lLCBvbiBlYWNoIHRvb2wgaW50ZWdyYXRpb24sIHRoZXJlIGFyZSBrZXkgZGVjaXNpb24gZHJpdmVyczoKPiA+ID4gLSBpbXBvcnRhbmNlIG9mIHRoZSB0b29sIG9uIHRoZSBtYXJrZXQKPiA+ID4gLSBpbnRlcmVzdCBvZiBNYXZlbiBkZXZzIHRvIGFjdHVhbGx5IGRvIGludGVncmF0aW9uIG1haW50ZW5hbmNlCj4gPiA+IC0gY29tcGxleGl0eSBvZiBpbnRlZ3JhdGlvbiwgdGVjaG5pY2FsIHByZXJlcXVpc2l0ZXMgKHdpdGggSURFcywgZm9yCj4gPiA+IGV4YW1wbGUsIGEgZGVkaWNhdGVkIGluZGVwZW5kYW50IHByb2plY3QgbGlrZSBtMmUgaXMgbmVjZXNzYXJ5KQo+ID4gPiAtIHRpbWUgZmFjdG9yOiB0aGluZ3MgZXZvbHZlIG92ZXIgdGltZSAoZS5nLiAyIHllYXJzIGFnbywgRG9ja2VyIHdhcwo+IG5vdAo+ID4gPiB3aGF0IGl0IGlzIG5vd2FkYXlzKQo+ID4gPgo+ID4gPiBhbnkgb3RoZXIga2V5IGRyaXZlciB0byBkb2N1bWVudD8KPiA+ID4KPiA+ID4gb25jZSBkb25lLCB3ZSdsbCBkaXNjdXNzIG1vcmUgcHJlY2lzZWx5IGFib3V0IHRoZSBEb2NrZXIgaW50ZWdyYXRpb24KPiBjYXNlCj4gPiA+Cj4gPiA+IGFuZCBwcm9iYWJseSBmaW5pc2ggd2l0aCBhIHZvdGUgOikKPiA+ID4KPiA+ID4gUmVnYXJkcywKPiA+ID4KPiA+ID4gSGVydj1DMz1BOQo+ID4gPgo+ID4gPiBMZSB2ZW5kcmVkaSAyMCBvY3RvYnJlIDIwMTcsIDExOjMwOjQ5IENFU1QgUm9iZXJ0IFNjaG9sdGUgYSA9QzM9QTljcmk9CnQgOgo+ID4gPj4gSXNuJ3QgdGhpcyBhY3R1YWxseSB0aGUgc2FtZSBjYXNlIGFzIHNka21hblsxXT8KPiA+ID4+IEp1c3Qgd29uZGVyaW5nIGlmIHdlIG5lZWQgdG8gdGhpbmsgYWJvdXQgYSBnZW5lcmFsIHNvbHV0aW9uIGluc3RlYWQgPQpvZgo+ID4gPj4gcHVsbGluZyBldmVyeXRoaW5nIGludG8gb3VyIHByb2plY3Qgd2hlbiBwb3NzaWJsZS4KPiA+ID4+Cj4gPiA+PiB0aGFua3MsCj4gPiA+PiBSb2JlcnQKPiA+ID4+Cj4gPiA+PiBbMV0gaHR0cDovL21hcmttYWlsLm9yZy9tZXNzYWdlL29vZnZzem1mNTZ0YnI3ZXQKPiA+ID4+Cj4gPiA+PiBPbiBUaHUsIDE5IE9jdCAyMDE3IDE5OjMwOjU3ICswMjAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPiA+ID4+Cj4gPiA+PiB3cm90ZToKPiA+ID4+ID4gZ3JlYXQgaWRlYQo+ID4gPj4gPgo+ID4gPj4gPiBvaywgd2UgbmVlZCBhIGdpdCByZXBvIGF0IEFTRgo+ID4gPj4gPgo+ID4gPj4gPiB3aGF0IGVsc2U/Cj4gPiA+PiA+IElzIHRoZXJlIHNvbWUgc29ydCBvZiByZWxlYXNlIHByb2Nlc3M/IHNvbWUgc29ydCBvZiBzb3VyY2UgdG8KPiByZWxlYXNlPwo+ID4gPj4gPgo+ID4gPj4gPiBSZWdhcmRzLAo+ID4gPj4gPgo+ID4gPj4gPiBIZXJ2PUMzPUE5Cj4gPiA+PiA+Cj4gPiA+PiA+IExlIGpldWRpIDE5IG9jdG9icmUgMjAxNywgMTM6NDc6NDUgQ0VTVCBNaWtlIERyb2IgYSA9QzM9QTljcml0IDoKPiA+ID4+ID4+IFRoYW5rcyBmb3IgdGhlIHBvaW50ZXIsIENhcmxvcyEgSSBoYWQgc2VhcmNoZWQgdGhlIGFyY2hpdmVzLCBidXQKPiBtYXliZQo+ID4gPj4gPj4gSQo+ID4gPj4gPj4gZGlkbid0IGdvIGJhY2sgZmFyIGVub3VnaC4KPiA+ID4+ID4+Cj4gPiA+PiA+PiBJIHRoaW5rIG1vdmluZyB0aGVzZSBEb2NrZXJmaWxlcyBpbnRvIGFuIEFTRiByZXBvIHdvdWxkIGJlIGdyZWF0Cj4gZm9yCj4gPiA+PiA+PiB0aGVpcgo+ID4gPj4gPj4gbWFpbnRhaW5hYmlsaXR5Lgo+ID4gPj4gPj4KPiA+ID4+ID4+IFRoYW5rcywKPiA+ID4+ID4+Cj4gPiA+PiA+PiBNaWtlCj4gPiA+PiA+Pgo+ID4gPj4gPj4gT24gMjAxNy0xMC0xOSAwMzo1MCwgQ2FybG9zIFNhbmNoZXogPGMuLi5AYXBhY2hlLm9yZz4gd3JvdGU6Cj4gPiA+PiA+PiA+IEFybmF1ZCBpcyBjb3JyZWN0LCBJIHNlbnQgYW4gZW1haWwgdG8gdXNlcnNAIGJhY2sgb24gRnJpLCBOb3YgNz0KLAo+ID4gPj4gPj4KPiA+ID4+ID4+IDIwMTQsPgo+ID4gPj4gPj4KPiA+ID4+ID4+ID4gMDA6MjMgd2hlbiBJIGNyZWF0ZWQgdGhlIGltYWdlPgo+ID4gPj4gPj4gPgo+ID4gPj4gPj4gPgo+ID4gPj4gPj4gPiBPbiBUaHUsIE9jdCAxOSwgMjAxNywgMTE6MTIgQXJuYXVkIEg9RUY9QkY9QkRyaXRpZXIgPGFoLi4uQGdtYWk9CmwuY29tPgo+ID4gPj4gPj4gPiB3cm90ZTo+Cj4gPiA+PiA+PiA+Cj4gPiA+PiA+PiA+ID4gVGhlc2UgaW1hZ2VzIGFyZSBraW5kbHkgbWFuYWdlZCBieSBhIFBNQyBtZW1iZXIgb2Ygb3VyIHByb2plYz0KdAo+ID4gPj4gPj4KPiA+ID4+ID4+IChDYXJsb3MpCj4gPiA+PiA+Pgo+ID4gPj4gPj4gYnV0Pgo+ID4gPj4gPj4KPiA+ID4+ID4+ID4gPiB5ZXMgdGhleSBhcmVuJ3QgbWFuYWdlZCBkaXJlY3RseSBieSB0aGUgcHJvamVjdD4KPiA+ID4+ID4+ID4gPgo+ID4gPj4gPj4gPiA+IFdlIGNhbiBlYXNpbHkgc2VlIHdpdGggaGltIHRvIGltcHJvdmUgdGhpcyBJTU8uPgo+ID4gPj4gPj4gPiA+Cj4gPiA+PiA+PiA+ID4gV2hlbiBoZSBzdGFydGVkIHRoYXQgKHNldmVyYWwgeWVhcnMgYWdvKSBEb2NrZXIgd2Fzbid0IHdoYXQgaT0KdAo+IGlzCj4gPiA+PiA+Pgo+ID4gPj4gPj4gbm93YWRheXMuPgo+ID4gPj4gPj4KPiA+ID4+ID4+ID4gPiBXaXRoIGRvY2tlciBiZWluZyBtYWluc3RyZWFtIEkgYWdyZWUgdGhhdCB3ZSBjYW4gcmVjb25zaWRlcgo+IHRoaXMuPgo+ID4gPj4gPj4gPiA+Cj4gPiA+PiA+PiA+ID4gVGhlIGRvY2tlciBpbWFnZSBidWlsZC9kaXN0cmlidXRpb24gY291bGQgcGVyaGFwcyBiZSBwYXJ0IG9mCj4gb3VyCj4gPiA+PiA+Pgo+ID4gPj4gPj4gcmVsZWFzZT4KPiA+ID4+ID4+Cj4gPiA+PiA+PiA+ID4gcHJvY2Vzcy4+Cj4gPiA+PiA+PiA+ID4KPiA+ID4+ID4+ID4gPiBXRFlUIENhcmxvcyA/Pgo+ID4gPj4gPj4gPiA+Cj4gPiA+PiA+PiA+ID4gT24gVGh1LCBPY3QgMTksIDIwMTcgYXQgNDoxNiBBTSwgTWlrZSBEcm9iIDxtZC4uLkBhcGFjaGUub3JnPgo+ID4gPj4gPj4KPiA+ID4+ID4+IHdyb3RlOj4KPiA+ID4+ID4+Cj4gPiA+PiA+PiA+ID4gPiBJIGd1ZXNzIHRoZSBuYXR1cmFsIGZvbGxvdy1vbiBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoZSBNYXZlbgo+ID4gPj4gPj4KPiA+ID4+ID4+IGNvbW11bml0eT4KPiA+ID4+ID4+Cj4gPiA+PiA+PiA+ID4gPiB3b3VsZCBjb25zaWRlciBwdWJsaXNoaW5nIGFuIG9mZmljaWFsIHNldCBvZiBpbWFnZXM/IE9yCj4gPiA+PiA+Pgo+ID4gPj4gPj4gYWx0ZXJuYXRpdmVseT4KPiA+ID4+ID4+Cj4gPiA+PiA+PiA+ID4gPiB3aGV0aGVyIHRoZXkgc2hvdWxkIHNlbmQgYSB0YWtlZG93biBub3RpY2UgdG8gcHJvdGVjdCB0aGVpcgo+ID4gPj4gPj4gPiA+ID4gYnJhbmQKPiA+ID4+ID4+Cj4gPiA+PiA+PiBhbmQ+Cj4gPiA+PiA+Pgo+ID4gPj4gPj4gPiA+ID4gdHJhZGVtYXJrcy4uLj4KPiA+ID4+ID4+ID4gPiA+Cj4gPiA+PiA+PiA+ID4gPiBPbiAyMDE3LTEwLTE4IDE4OjM2LCAiTWFuZnJlZCBNb3NlciIgPG1hLi4uQHNpbXBsaWdpbGl0eS5jbz0KbQo+ID4KPiA+ID4+ID4+Cj4gPiA+PiA+PiB3cm90ZTo+Cj4gPiA+PiA+Pgo+ID4gPj4gPj4gPiA+ID4gPiBOby4gQXMgeW91IGNhbiBzZWUgZnJvbSB0aGUgZ2l0aHViIFVSTCB0aGlzIGlzIE5PVCBhbgo+IGFwYWNoZQo+ID4gPj4gPj4KPiA+ID4+ID4+IFVSTC4+Cj4gPiA+PiA+Pgo+ID4gPj4gPj4gPiA+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vY2FybG9zc2cvZG9ja2VyLW1hdmVuPgo+ID4gPj4gPj4gPiA+ID4gPgo+ID4gPj4gPj4gPiA+ID4gPgo+ID4gPj4gPj4gPiA+ID4gPiBNaWtlIERyb2Igd3JvdGUgb24gMjAxNy0xMC0xOCAxNjozMjo+Cj4gPiA+PiA+PiA+ID4gPiA+Cj4gPiA+PiA+PiA+ID4gPiA+ID4gSGVsbG8sPgo+ID4gPj4gPj4gPiA+ID4gPiA+Cj4gPiA+PiA+PiA+ID4gPiA+ID4gQXJlIHRoZSBpbWFnZXMgYXQgaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL18vbWF2ZW4vCj4gPiA+PiA+Pgo+ID4gPj4gPj4gY29uc2lkZXJlZCB0bwo+ID4gPj4gPj4KPiA+ID4+ID4+IGJlPgo+ID4gPj4gPj4KPiA+ID4+ID4+ID4gPiA+IG9mZmljaWFsPgo+ID4gPj4gPj4gPiA+ID4KPiA+ID4+ID4+ID4gPiA+ID4gPiBtYXZlbiBkb2NrZXIgaW1hZ2VzIGFuZCBibGVzc2VkL3B1Ymxpc2hlZCBieSB0aGUgUE1DPz4KPiA+ID4+ID4+ID4gPiA+ID4gPgo+ID4gPj4gPj4gPiA+ID4gPiA+IFRoYW5rcyw+Cj4gPiA+PiA+PiA+ID4gPiA+ID4gTWlrZT4KPiA+ID4+ID4+Cj4gPiA+PiA+Pgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT4KPiA+ID4+ID4+Cj4gPiA+PiA+PiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDoKPiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgo+ID4gPj4gPj4gPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6Cj4gPiA+PiA+PiA+ID4gPiA+ID4gdXNlcnMtaGVscEBtYXZlbi5hcGFjaGUub3JnPgo+ID4gPj4gPj4KPiA+ID4+ID4+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPgo+ID4gPj4gPj4KPiA+ID4+ID4+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogdXNlcnMtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yPQpnCj4gPgo+ID4gPj4gPj4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOgo+IHVzZXJzLWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KPiA+ID4+ID4+Cj4gPiA+PiA+Pgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT4KPiA+ID4+ID4+Cj4gPiA+PiA+PiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgo+ID4gPj4gPj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogdXNlcnMtaGVscEBtYXZlbi5hcGFjaGUub3I9CmcKPiA+Cj4gPiA+PiA+PiA+ID4KPiA+ID4+ID4+ID4gPiAtLT4KPiA+ID4+ID4+ID4gPiAtLS0tLT4KPiA+ID4+ID4+ID4gPiBBcm5hdWQgSD1FRj1CRj1CRHJpdGllcj4KPiA+ID4+ID4+ID4gPiBodHRwOi8vYWhlcml0aWVyLm5ldD4KPiA+ID4+ID4+ID4gPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbT4KPiA+ID4+ID4+ID4gPiBUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyPgo+ID4gPj4gPgo+ID4gPj4gPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Pgo+ID4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0KPiA+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Cj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPgo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4gLS0KU2VudCBmcm9tIG15IHBob25lCgotLTAwMWExMTQ3NzlmYWRjNWQ3MzA1NWMwYTM1NGEtLQoKRnJvbSBkZXYtcmV0dXJuLTEyMzk0NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gU2VwIDEwIDIxOjU4OjIyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzk0NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBCRjQ2QjFBMEFDCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMjE6NTg6MjIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5NzQwNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBTZXAgMjAxNyAyMTo1ODoyMiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTczMDAgaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgU2VwIDIwMTcgMjE6NTg6MjIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NzI4NiBpbnZva2VkIGJ5IHVpZCA5OSk7IDEwIFNlcCAyMDE3IDIxOjU4OjIyIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxMCBTZXAgMjAxNyAyMTo1ODoyMiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDhDMEVFMTgyRkQ1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAyMTo1ODoyMSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuMzc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuMzc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgSHFqVWNfXzFPeFpVIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAxMCBTZXAgMjAxNyAyMTo1ODoxOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXZrMC1mNDIuZ29vZ2xlLmNvbSAobWFpbC12azAtZjQyLmdvb2dsZS5jb20gWzIwOS44NS4yMTMuNDJdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMTBFOTk1RkUxNgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMjE6NTg6MTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdmswLWY0Mi5nb29nbGUuY29tIHdpdGggU01UUCBpZCBjODJzbzgxMTk3MDF2a2QuNAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDE0OjU4OjE4IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUJYQitxSTJla1lwaHNYTEpndW9CS0RXTzA4RmNoMXBkOHZ2Q1BPQzBIa2s9OwogICAgICAgIGI9UFlLTGdpNGk2L2hybG9EQ1J0K1hZMnZFdUoycEVQWTA0V1B6V2tRem10YUhxZFBxVU4wUVpES3BCNzNtbHplT1BkCiAgICAgICAgIFBtM1lsdGtkZFN0RUpKc2NFQW9IdDY4TU96U0t4MTRlUm1FSXZETUNPVlQyS0NLZFJKTjZyVXNJNXRycWdCcnlZUUZoCiAgICAgICAgIFZPOFc2OWlETTAzb3BMcUF6U1krUDJXaTFBNUdRN01NMzg4VHpOZTlnTVdFS3lVU3RsU2dLQXUxNEM3V3Vkbk9ldDBCCiAgICAgICAgIDRDWHZuVkxMblk5WjJ0UVVFZVM1RWFxSUpxdjIxZkJGVXFYSURRUlRyMEFZY1VRcHRsRHNXMGlhdGM3bkFmQXU0YjZECiAgICAgICAgIGZ2K3g2b0VjaDlmYXBDVkp4b2ZUN05weFljRXd1dWxLN0RUdDlwa3NuOFR4alBIMWVNUDQ5QUZTS3FDYU8vQXBFanRICiAgICAgICAgIEdNN1E9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUJYQitxSTJla1lwaHNYTEpndW9CS0RXTzA4RmNoMXBkOHZ2Q1BPQzBIa2s9OwogICAgICAgIGI9dFlwM0d5aDBuREdRQXYxc3dCUllQeGNYYXdXS0svVTlYM01xY0R3RmpqdVBlRmtqS0F0VUM4Uk1vb05vb1ZuZFlmCiAgICAgICAgIFRmbmlFOGlXYzFSQ21pK2NwTTkyN2ZmYkRRN2pMRFZzU2tJUDRldHFhbU1EWEowVW8wYmxTWjVlL2VVb3JwRUpoNGZECiAgICAgICAgIDZjMkN6UDZIK2hpMjFOZ2dmdEsrVEpNSi9ZN0t1TlY5d2krbnBPSTNlcytVVG01L25BaU9MSlNJZUREeXBZNnpKcDdICiAgICAgICAgIGRLaE1TYldnaHpLNkEwQjR4K0YwTFRGRHBpd1Q1Z0l3blN2Y2diSlRaS0gxa04wNXI3bEF5bEE1K0ZsOFlzbys3ckZlCiAgICAgICAgIHN0aENtbVlOdUlWQTZxSjBFQU1wZVdWajFneDg1dlU5Ty90QmFERjJMTnl4NXRjWUJZWVhSNFp5WG01dWlEc1RjeWh5CiAgICAgICAgIEtqNmc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWdEcmtPaExpS3Z2ZktmZzJoalFtb1BOR25sd1I1KzcrUzV5ZnBNR2tNVTRLaG9xLzc0CglSOFY0MVJMam1CNFFBdlJQOVIyQmVGaUJtWGZueURkbgpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQ3N6RjkvYmpIZVo5WlFLTGszNmlmNXBWdGxPUEFrUHhSb2R3RWhKN05iOTlMMnA5dmVLSEQ0SUVYNGdkYjFvOVdnS25zelZMSUhvbjY3aEQ5cE5lND0KWC1SZWNlaXZlZDogYnkgMTAuMzEuMzMuMTkzIHdpdGggU01UUCBpZCBoMTg0bXI1OTUxMjQzdmtoLjE4LjE1MDUwODA2OTE5Mjg7CiBTdW4sIDEwIFNlcCAyMDE3IDE0OjU4OjExIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDxlZmI5Nzk2MC1lMWI3LTQyMjctNTk5OC1kZTJjMjQwMTViYjBAYXBhY2hlLm9yZz4KIDxDQStuUG5NdzdvZzVncnFKWk55WWMzSnlNSmNIPXJjaFMtR1lZRF9hTUF2ZUFpY0pvVXdAbWFpbC5nbWFpbC5jb20+CiA8NzhhZjk2NTUtNzZiYy1mNTZjLTJlYjUtMWFmMmMxMjBmNDNmQGFwYWNoZS5vcmc+IDxDQUt1VnpCUXE0WjBhTVhnNmRXOXZ4ZTN4QmYrZEhGMFMyTmZkSHZNUERGbmU4SHJZdXdAbWFpbC5nbWFpbC5jb20+CiA8MjRjYzM4ZTgtNWMzYS02NDAyLWNmZmYtODc2YjMyNGFhODcxQGdteC5kZT4gPENBS3VWekJSd2Z2K3o5QUN3YXNEZl9GbnFCMm81dzVSMHNmQ0dpTkp3RGdRSz1BT0t3QUBtYWlsLmdtYWlsLmNvbT4KIDxjZjg4MWU1OS02N2MwLTg1ZTctMWM0NC04MzdlNTIxZWY3NzlAYXBhY2hlLm9yZz4gPENBS3VWekJTLUhrVnBfb3czVno5bTdZMDdjbnorRVROY3FmQVpWaGdVb1RxaUhPM2dVQUBtYWlsLmdtYWlsLmNvbT4KIDw4OWQxNDM0NS05YjAyLWVmZTktNDBmZS0yMjA5YjFkOTdkNmZAYXBhY2hlLm9yZz4gPENBS3VWekJTeFd3NjBwSlMxRTJRUkpCLWNEd19tOHh1TURwMDYyOWhmSFdVT01lZ09CUUBtYWlsLmdtYWlsLmNvbT4KSW4tUmVwbHktVG86IDxDQUt1VnpCU3hXdzYwcEpTMUUyUVJKQi1jRHdfbTh4dU1EcDA2MjloZkhXVU9NZWdPQlFAbWFpbC5nbWFpbC5jb20+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFN1biwgMTAgU2VwIDIwMTcgMjE6NTg6MDEgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk14RUxjUlMtcjJ6djRWcEtnX189Z2FYZlNNd1J6VVRFOEN1d3NCPStGRzZXd0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFRlc3RzIGZvciBNTkctNjI3NSBmYWlsIG9uIEphdmEgMS43LjBfMTUxLWIwMQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTEzZGM5YTgwMDM1NTkwNTU4ZGNlOGE1IgoKLS0wMDFhMTEzZGM5YTgwMDM1NTkwNTU4ZGNlOGE1CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpNaWdodCBqdXN0IGJlIHRoZSB0ZXN0IGlzIGxvb2tpbmcgZm9yIGFuIGltcGxlbWVudGF0aW9uIGNsYXNzIG5vdCBhdmFpbGFibGUKb24gdGhvc2UganJlcy4gRG8geW91IGhhdmUgdGhlIGZhaWx1cmUgbWVzc2FnZXMKCk9uIFN1biAxMCBTZXAgMjAxNyBhdCAyMjoyOSwgVGlib3IgRGlnYW5hIDx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+Cndyb3RlOgoKPiBZb3UgdGhpbmsgaXQgaGFzIHRvIGRvIHlvdSB0aGUgY29tbWl0IGZpeGluZyBDbGFzcyBMb2FkZXIgaXNzdWUgb3IgdGhlCj4gcHJldmlvdXMgY29tbWl0cyBhcyB3ZWxsPwo+Cj4gT24gU3VuLCBTZXAgMTAsIDIwMTcgYXQgMTE6MjMgUE0sIE1pY2hhZWwgT3NpcG92IDxtaWNoYWVsb0BhcGFjaGUub3JnPgo+IHdyb3RlOgo+Cj4gPiBBbSAyMDE3LTA5LTEwIHVtIDIzOjE5IHNjaHJpZWIgVGlib3IgRGlnYW5hOgo+ID4KPiA+PiBEZWZpbml0ZWx5IEkgYWdyZWUhCj4gPj4gTGV0J3Mgc2VlIGlmIGl0IGlzIEpESyBpc3N1ZSBvciBwbGF0Zm9ybSBpc3N1ZS4gTGV0J3MgZXhjbHVkZSBPcmFjbGUKPiBKYXZhCj4gPj4gc3VzcGljaW9uIGFuZCB0aGVuIGl0J3Mgc2VyaW91cyBpc3N1ZS4KPiA+Pgo+ID4KPiA+IE5vdCBhIHBsYXRmb3JtIG9uZS4gUmVwcm9kdWNlZCBvbiBXaW5kb3dzIDEwIHdpdGggWnVsdSA3IFVwZGF0ZSAxNTQuIEkKPiA+IHdpbGwgZG93bmxvYWQgT3JhY2xhIEphdmEgNyBmcm9tIE1PU0MgYW5kIHRlc3QgYWdhaW4uIEkgYW0gcHJldHR5IHN1cmUKPiB0aGF0Cj4gPiBpdCB3aWxsIGZhaWwgdG9vLgo+ID4KPiA+Cj4gPiBPbiBTdW4sIFNlcCAxMCwgMjAxNyBhdCAxMToxNyBQTSwgTWljaGFlbCBPc2lwb3YgPG1pY2hhZWxvQGFwYWNoZS5vcmc+Cj4gPj4gd3JvdGU6Cj4gPj4KPiA+PiBBbSAyMDE3LTA5LTEwIHVtIDIzOjE1IHNjaHJpZWIgVGlib3IgRGlnYW5hOgo+ID4+Pgo+ID4+PiBUaGlzIG9uZSAxLjcuMF84MCB3aGljaCBpcyA3dTgwOgo+ID4+Pj4gaHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2huZXR3b3JrL2phdmEvamF2YXNlL2Rvd25sb2Fkcy8KPiA+Pj4+IGphdmEtYXJjaGl2ZS1kb3dubG9hZHMtamF2YXNlNy01MjEyNjEuaHRtbAo+ID4+Pj4KPiA+Pj4+Cj4gPj4+IE5vIG9uZSB3aWxsIHNlcmlvdXNseSBydW4gdGhpcyBvbmUuIFNvIGlmIHdlIHNheSB0aGF0IG91ciBzdHVmZiBydW5zCj4gb2ZmCj4gPj4+IDcKPiA+Pj4gdGhlbiB3ZSBoYXZlIHRvIHRlc3QgT3BlbkpESyBhbmQgWnVsdSB0b28uCj4gPj4+Cj4gPj4+IE1pY2hhZWwKPiA+Pj4KPiA+Pj4KPiA+Pj4gT24gU3VuLCBTZXAgMTAsIDIwMTcgYXQgMTE6MTIgUE0sIE1pY2hhZWwgT3NpcG92IDxtb3NpcG92QGdteC5kZT4KPiB3cm90ZToKPiA+Pj4KPiA+Pj4+Cj4gPj4+PiBBbSAyMDE3LTA5LTEwIHVtIDIzOjA3IHNjaHJpZWIgVGlib3IgRGlnYW5hOgo+ID4+Pj4KPiA+Pj4+Pgo+ID4+Pj4+IE1pY2hhZWwsIG5vdyB0cnkgd2l0aCBPcmFjbGUgSmF2YSA3Lgo+ID4+Pj4+Cj4gPj4+Pj4+Cj4gPj4+Pj4+Cj4gPj4+Pj4+IExhc3QgcHVibGljIHZlcnNpb24gb3IgdXAtdG8tZGF0ZSBwYWlkIHZlcnNpb24/Cj4gPj4+Pj4KPiA+Pj4+PiBPbiBTdW4sIFNlcCAxMCwgMjAxNyBhdCAxMTowMiBQTSwgTWljaGFlbCBPc2lwb3YgPAo+IG1pY2hhZWxvQGFwYWNoZS5vcmc+Cj4gPj4+Pj4KPiA+Pj4+PiB3cm90ZToKPiA+Pj4+Pj4KPiA+Pj4+Pj4gQW0gMjAxNy0wOS0xMCB1bSAyMjoyNyBzY2hyaWViIFN0ZXBoZW4gQ29ubm9sbHk6Cj4gPj4+Pj4+Cj4gPj4+Pj4+Cj4gPj4+Pj4+PiBXZWxsIEkgcmFuIHRoZSByZWxlYXNlIHdpdGggMS43LjBfODAgd2hpY2ggaWlyYyBpcyB0aGUgbGFzdCBwdWJsaWMKPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiByZWxlYXNlCj4gPj4+Pj4+Pj4gb2YgT3JhY2xlIEphdmEgNy4uLgo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+PiBGYWlscyBhbHNvIG9uIFdpbmRvd3Mgd2l0aCBadWx1IDc6Cj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+ICQgbXZuIC12Cj4gPj4+Pj4+PiBBcGFjaGUgTWF2ZW4gMy41LjAgKGZmOGY1ZTc0NDQwNDU2MzlhZjY1ZjYwOTVjNjIyMTBiNTcxM2Y0MjY7Cj4gPj4+Pj4+PiAyMDE3LTA0LTAzVDIxOjM5OjA2KzAyOjAwKQo+ID4+Pj4+Pj4gTWF2ZW4gaG9tZTogRDpcRW50d2lja2x1bmdcUHJvZ3JhbW1lXGFwYWNoZS1tYXZlbi0zLjUuMAo+ID4+Pj4+Pj4gSmF2YSB2ZXJzaW9uOiAxLjcuMF8xNTQsIHZlbmRvcjogQXp1bCBTeXN0ZW1zLCBJbmMuCj4gPj4+Pj4+PiBKYXZhIGhvbWU6IEM6XFByb2dyYW0gRmlsZXNcWnVsdVx6dWx1LTdcanJlCj4gPj4+Pj4+PiBEZWZhdWx0IGxvY2FsZTogZGVfREUsIHBsYXRmb3JtIGVuY29kaW5nOiBDcDEyNTIKPiA+Pj4+Pj4+IE9TIG5hbWU6ICJ3aW5kb3dzIDEwIiwgdmVyc2lvbjogIjEwLjAiLCBhcmNoOiAiYW1kNjQiLCBmYW1pbHk6Cj4gPj4+Pj4+PiAid2luZG93cyIKPiA+Pj4+Pj4+Cj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IE9uIFN1biAxMCBTZXAgMjAxNyBhdCAyMTowOCwgTWljaGFlbCBPc2lwb3YgPG1pY2hhZWxvQGFwYWNoZS5vcmc+Cj4gPj4+Pj4+PiB3cm90ZToKPiA+Pj4+Pj4+Cj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gRm9sa3MsCj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+IHRyaWVkIHJ1bm5pbmcgbWFzdGVyIG9uCj4gPj4+Pj4+Pj4+IE1hdmVuIGhvbWU6IC91c3IvbG9jYWwvc2hhcmUvamF2YS9tYXZlbgo+ID4+Pj4+Pj4+PiBKYXZhIHZlcnNpb246IDEuNy4wXzE1MSwgdmVuZG9yOiBPcmFjbGUgQ29ycG9yYXRpb24KPiA+Pj4+Pj4+Pj4gSmF2YSBob21lOiAvdXNyL2xvY2FsL29wZW5qZGs3L2pyZQo+ID4+Pj4+Pj4+PiBEZWZhdWx0IGxvY2FsZTogZGVfREUsIHBsYXRmb3JtIGVuY29kaW5nOiBVVEYtOAo+ID4+Pj4+Pj4+PiBPUyBuYW1lOiAiZnJlZWJzZCIsIHZlcnNpb246ICIxMS4xLXJlbGVhc2UtcDEiLCBhcmNoOiAiaTM4NiIsCj4gPj4+Pj4+Pj4+IGZhbWlseToKPiA+Pj4+Pj4+Pj4gInVuaXgiCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IGFuZCBJIGdldCB0aGlzOgo+ID4+Pj4+Pj4+PiBGYWlsZWQgdGVzdHM6Cj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfY29yZVJlYWxtRGVmYXVsdFBhcgo+ID4+Pj4+Pj4+PiBlbnRDbGFzc0xvYWRlcjo5OQo+ID4+Pj4+Pj4+PiBudWxsCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfZXh0ZW5zaW9uUmVhbG1EZWZhdQo+ID4+Pj4+Pj4+PiBsdFBhcmVudENsYXNzTG9hZGVyOjczCj4gPj4+Pj4+Pj4+IG51bGwKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXN0TU5HNjI3NV9tYXZlbkFwaVJlYWxtRGVmYXVsCj4gPj4+Pj4+Pj4+IHRQYXJlbnRDbGFzc0xvYWRlcjo5MQo+ID4+Pj4+Pj4+PiBudWxsCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfcGx1Z2luUmVhbG1EZWZhdWx0UAo+ID4+Pj4+Pj4+PiBhcmVudENsYXNzTG9hZGVyOjYyCj4gPj4+Pj4+Pj4+IG51bGwKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXN0TU5HNjI3NV9wcm9qZWN0UmVhbG1EZWZhdWx0Cj4gPj4+Pj4+Pj4+IFBhcmVudENsYXNzTG9hZGVyOjgzCj4gPj4+Pj4+Pj4+IG51bGwKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gQWxsIHRlc3RzIGZhaWwgd2l0aCAianVuaXQuZnJhbWV3b3JrLkFzc2VydGlvbkZhaWxlZEVycm9yOiBudWxsIi4KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gUnVubmluZyB3aXRoCj4gPj4+Pj4+Pj4+IE1hdmVuIGhvbWU6IC91c3IvbG9jYWwvc2hhcmUvamF2YS9tYXZlbgo+ID4+Pj4+Pj4+PiBKYXZhIHZlcnNpb246IDEuOC4wXzE0NCwgdmVuZG9yOiBPcmFjbGUgQ29ycG9yYXRpb24KPiA+Pj4+Pj4+Pj4gSmF2YSBob21lOiAvdXNyL2xvY2FsL29wZW5qZGs4L2pyZQo+ID4+Pj4+Pj4+PiBEZWZhdWx0IGxvY2FsZTogZGVfREUsIHBsYXRmb3JtIGVuY29kaW5nOiBVVEYtOAo+ID4+Pj4+Pj4+PiBPUyBuYW1lOiAiZnJlZWJzZCIsIHZlcnNpb246ICIxMS4xLXJlbGVhc2UtcDEiLCBhcmNoOiAiaTM4NiIsCj4gPj4+Pj4+Pj4+IGZhbWlseToKPiA+Pj4+Pj4+Pj4gInVuaXgiCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IHdvcmtzIGZsYXdsZXNzbHkuCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IEFueSBpZGVhcz8KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+Pj4+Pj4+IC0tLS0tLS0tLQo+ID4+Pj4+Pj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Pj4+Pj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IC0tCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+Pj4+Pj4+PiAtLS0tLS0tLS0KPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4+Pj4+Cj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+Cj4gPj4+Pj4+Pgo+ID4+Pj4+Pgo+ID4+Pj4+Pgo+ID4+Pj4+Cj4gPj4+Pgo+ID4+Pj4KPiA+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4KPiA+Pj4KPiA+Pj4KPiA+Pgo+ID4+Cj4gPgo+Cj4KPiAtLQo+IENoZWVycwo+IFRpYm9yCj4KLS0gClNlbnQgZnJvbSBteSBwaG9uZQoKLS0wMDFhMTEzZGM5YTgwMDM1NTkwNTU4ZGNlOGE1LS0KCkZyb20gZGV2LXJldHVybi0xMjQ0NDQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE5vdiAgNyAwNzoyODo0NSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0NDQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMDhENUIxNzZBQgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsICA3IE5vdiAyMDE3IDA3OjI4OjQ1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzA1MjkgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBOb3YgMjAxNyAwNzoyODo0NCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzA0NDQgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBOb3YgMjAxNyAwNzoyODo0NCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDcwNDMxIGludm9rZWQgYnkgdWlkIDk5KTsgNyBOb3YgMjAxNyAwNzoyODo0NCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMDcgTm92IDIwMTcgMDc6Mjg6NDQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA1Njk2MzFBMjJGOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgIDcgTm92IDIwMTcgMDc6Mjg6NDMgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC45MDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuOTAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgOUFjOGt1b2xNTFg3IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVHVlLCAgNyBOb3YgMjAxNyAwNzoyODo0MiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdyMC1mMTcwLmdvb2dsZS5jb20gKG1haWwtd3IwLWYxNzAuZ29vZ2xlLmNvbSBbMjA5Ljg1LjEyOC4xNzBdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgOTI1MTE1RjZDOAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgIDcgTm92IDIwMTcgMDc6Mjg6NDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd3IwLWYxNzAuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgNHNvNjY4Mjg2NHdydC4wCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMDYgTm92IDIwMTcgMjM6Mjg6NDEgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9UTBBWktBYlVDQVVxUXUyam05V2NxYXM0SWF1U0luVWdyNCthRDdMRi85QT07CiAgICAgICAgYj1XYjZZa1hTV3ViYVA3c05yK1J6TlBkWEZkM2hGS0hHaXBFSW5ocXVNczhuUjFMdjI4Y3kzQm9vUW9EVjZzU2ZtdGMKICAgICAgICAgalcvN1B3OEZnUzBpbmRHYlVibE5uZzJHR0RaOVhBS1Y5WEQxRFIyTmFpVDZCV29jYVpyQ3gwVEJUekdxNFMxOC9EbzkKICAgICAgICAgTVpMRjN4K0ZyakFmZGx3UGhJSjNOdlU1RXRReEd0Tm9DcDBvemlUa0QybEFxNkJkU2x6MzBmMmZqeGVFYytSWkpoNWEKICAgICAgICAgZUR5UG9Qbm82ZjhxQkJ5WnhZVlJ4Y3BBQ2liS25zZ1hGZitmWnRzU3E5WW5DZGs5SzhHZmM3NjVseGhtZ1hnaUJ5U3MKICAgICAgICAgUDIzTXJUQnFGRlNYaTVDUDkza0t1Z011Rnc1U2JBTS9jWXpML0pHYm5LVGZzdjFTbk9hZ2hnYWNNSWJnaUgxa01jQm4KICAgICAgICAgdHVZZz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9UTBBWktBYlVDQVVxUXUyam05V2NxYXM0SWF1U0luVWdyNCthRDdMRi85QT07CiAgICAgICAgYj1keEQ3YTB6TWZEeWJGdjA3bE5kTVArYWIvZ0xYYlh4N3ZObHFYVW1VUXNoNU9PcmZnRHVrelBodXN4ai9FajlrZ2gKICAgICAgICAgUmFRQXRVOW9xYjNvVTM2UEVBNzZGTzgzZHlyeDdLK3cwVE9LelFvVzV5ak5DMjlhaFkyRVNEOHhiOVV5M1ZhME9qOU8KICAgICAgICAgNHAyenE4a2RQa21sQUlYcUhNYUpEcTEvdVZJVG1LL2RsZFdFeG1sQm5vRzRKM1o0alFzemxDU3ErcVBRZk1wOTNkMFMKICAgICAgICAgelo4QkR2WVZkaU5ZbW9NUkZKRC91L0trRjNSVVFQTjdYQnpCUG16OXZvVnJqMFdzQy9pazR4Uk91by9hTjlQdmdzVGMKICAgICAgICAgUjMxb2NBK3VNY0ppRkRlT1RKaUxxQlg4V3pYeHNyZEFocTdHbW05UVJxUjN5VVJlRHVkRVpWcHBIZ2FOaHVtK3ZraEkKICAgICAgICAgZUQrUT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhV0RsM3Y0SU81bm0wSk0wSXhRbUdzeFFsNXRhU2toa2M5eUkxQldibXp2TVA5VVgyS2EKCXl0c3l3NzVTa1hYbW9mQmdON05jdVR2VFNxa0xHaWJubEM4R1dnUFBJUT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtTSmZ6VHZ6N2hqTzJWdTR6cENPMmE3TmJFMXdLOFovTXNmeXY4alFuSlJyYzh5UFlUZGp6amdFUlNoWk9LT1ZGcS9IWWVTeE9XS2dPOUJQb3BWVVdBPQpYLVJlY2VpdmVkOiBieSAxMC4yMjMuMTQxLjE0OCB3aXRoIFNNVFAgaWQgbzIwbXIxMzE0NzMyMHdyYi4zNS4xNTEwMDM5NzIwMzg1OwogTW9uLCAwNiBOb3YgMjAxNyAyMzoyODo0MCAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8ODYxNDFFQjMtMTMzRi00NTRGLTlGMkYtM0ZFMjIxMzAxMUU0QGhvbnRvbi5vcmc+CiA8Q0ErblBuTXpzODlGX3FDX1pzZlBqYXlQaHE9NUZqeXc4bWhUTW50WFBhODJfb2gtTVJ3QG1haWwuZ21haWwuY29tPiA8QzE2MTJFREUtNEEyNC00REE3LUEyMTQtODg3QTk5RTgwMzlBQGhvbnRvbi5vcmc+CkluLVJlcGx5LVRvOiA8QzE2MTJFREUtNEEyNC00REE3LUEyMTQtODg3QTk5RTgwMzlBQGhvbnRvbi5vcmc+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMDcgTm92IDIwMTcgMDc6Mjg6MjkgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk14RVRDQnhNV2lUPUtaN3pvNyt5UHh0T1RRR29hK0NVcHIrMzRwSEt3QmFCZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFJlYWN0b3Igc2FmZS9yYWxseSBwb2ludHMKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iZjQwMzA0NWY0ZmFlMjE2MWM0MDU1ZDVmODUwZSIKCi0tZjQwMzA0NWY0ZmFlMjE2MWM0MDU1ZDVmODUwZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPbiBUdWUgNyBOb3YgMjAxNyBhdCAwMToxOCwgQ2hhcmxlcyBIb250b24gPGNoYXNAaG9udG9uLm9yZz4gd3JvdGU6Cgo+IFNvIGRvZXNuPUUyPTgwPTk5dCB0aGlzIHJlcXVpcmUgYSBuZXcgZGlyZWN0aXZlIHN1Y2ggYXMgPUUyPTgwPTk4PGNvbXBpbGUKPiB0cmFuc2l0aXZlPTNEZmFsc2U9RTI9ODA9OUQ+IHNjb3BlIG9yIHNpbWlsYXIgcmVnYXJkbGVzcyBvZiBzYWZlL3JhbGx5IHBvPQppbnRzPwoKCk5vLiBUaGUgcGx1Z2luIHdvdWxkIGhhdmUgaXRzIGRlc2NyaXB0b3IgbWV0YWRhdGEgZm9yIHRoZSBnb2FsIGNvbnRhaW4gYQpmbGFnCgpUaGVuIHRoZSBwbHVnaW4gaXMgcmVzcG9uc2libGUgZm9yIGRlY2lkaW5nIHdoYXQgZGVwZW5kZW5jaWVzIHRvIHJlbW92ZSBvcgpsb3dlciB0aGUgc2NvcGUgb2YKCiBBbmQgdG8gcHJvdmlkZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSwgdGhlcmUgbXVzdCBiZSBhIHNwbGl0IGJldHdlZW4gdGhlCj4gbGVnYWN5IGNvbnN1bWVyIHZpZXcgb2YgdGhlIHBvbSBhbmQgdGhlIG5ldyBwcm9kdWNlciB2aWV3IG9mIHRoZSBwb20/CgoKV2hlbiB0aGUgZGVwZW5kZW5jaWVzIGFyZSByZW1vdmVkLCB0aGUgcG9tIHRoYXQgZ2V0cyBpbnN0YWxsZWQgaXMgdGhlCmRlcGVuZGVuY3kgcmVkdWNlZCBwb20uCgpTaGFkZSBhbHJlYWR5IGRvZXMgdGhhdCwgYnV0IGluIE1hdmVuIDMuMy54IHRoZSBtb2RlbCBpbi1tZW1vcnkgd2FzIG1hZGUKaW1tdXRhYmxlIHNvIG5vdyB5b3UgY2Fubm90IHNoYWRlIGFuIGFydGlmYWN0cyBhbmQgY29uc3VtZSBpdCBjb3JyZWN0bHkKd2l0aGluIHRoZSBzYW1lIHJlYWN0b3Igd2l0aG91dCBoYXZpbmcgdG8gbWFpbnRhaW4gYSBzZXQgb2YgPGV4Y2x1c2lvbnM+CnRhZ3MgYXQgZXZlcnkgcG9pbnQgb2YgdXNlLiBPdXRzaWRlIHRoZSByZWFjdG9yIHVzZSBpcyBvay4uLiBidXQgdGhlbgpwZW9wbGUgd2hvIGNyZWF0ZSBmbHl3ZWlnaHQgbG9jYWwgYWdncmVnYXRvciBwcm9qZWN0cyBjYW4gaGl0IHRoZSBidWcKd2l0aG91dCBrbm93aW5nIGl0LgoKCj4KPiA+IE9uIE5vdiA1LCAyMDE3LCBhdCAxMTozMCBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPgo+ID4+IEluIHRoZSBmaXJzdCBjYXNlLCB0aGUgbW9kdWxlIGNyZWF0aW5nIGEgc2hhZGVkIGphciBjYW4gbWFyayBpdHMKPiA+PiBjb25zdGl0dWVudCBqYXJzIGFzIG9wdGlvbmFsOyBwcmV2ZW50aW5nIHRoZSB0cmFuc2l0aXZlIGRlcGVuZGVuY2llcy4KPiA+Cj4gPgo+ID4gSGEhIFRoYXQgZG9lcyBub3QgZG8gd2hhdCB5b3UgdGhpbmsgaXQgZG9lcy4KPiA+Cj4gPiBPcHRpb25hbCBkZXBlbmRlbmNpZXMgYXJlIHN0aWxsIHRoZXJlIGJ1dCBvbmx5IGFzIGEgdmVyc2lvbiBjb25zdHJhaW50Cj4gdGhhdAo+ID4gZ2V0cyBhcHBsaWVkIGlmIHNvbWV0aGluZyBlbHNlIGJyaW5ncyB0aGUgZGVwZW5kZW5jeSBpbnRvIHRoZSB0cmVlIGluIGE9CnMKPiBhCj4gPiBub24tb3B0aW9uYWwgZGVwZW5kZW5jeS4KPiA+Cj4gPiBOb3JtYWxseSB5b3UgbmVlZCBhIGNvbXBsZXggZGVlcCB0cmVlIHRvIHNlZSB0aGUgZWZmZWN0IChhcyBtb3N0IHBlb3BsZQo+IHVzZQo+ID4gdmVyc2lvbiBoaW50cyByYXRoZXIgdGhhbiBzcGVjaWZpY2F0aW9ucy4uLiBhbmQgd2l0aCBoaW50cywgY2xvc2VzdCB3aW49CnMsCj4gPiB3aGVyZWFzIHNwZWNpZmljYXRpb25zIGFyZSBnbG9iYWxseSBtZXJnZWQpCj4gPgo+ID4gUHJvdmlkZWQgc2NvcGUgaXMgbW9yZSBjb3JyZWN0LCBidXQgc2hhZGUgZG9lc249RTI9ODA9OTl0IG9wZXJhdGUgb24gcHI9Cm92aWRlZAo+ID4gc2NvcGUuLi4gYW5kIGFueXdheSBpaXJjIHRoYXQgYWxzbyBwdXNoZXMgdGhlIGNvbnN0cmFpbnQgYXMgdHJhbnNpdGl2ZS4KPiA+Cj4gPiBXaXRoIHNoYWRlLCB0aGUgZGVwZW5kZW5jeSBpcyByZW1vdmVkLgo+Cj4gLS0KU2VudCBmcm9tIG15IHBob25lCgotLWY0MDMwNDVmNGZhZTIxNjFjNDA1NWQ1Zjg1MGUtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDA5NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gU2VwIDI0IDE4OjI4OjU4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDA5NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFQTIxMUYxRTUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAyNCBTZXAgMjAxNyAxODoyODo1OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg0NjE0IGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IFNlcCAyMDE3IDE4OjI4OjU4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NDUyOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNCBTZXAgMjAxNyAxODoyODo1OCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg0NTE3IGludm9rZWQgYnkgdWlkIDk5KTsgMjQgU2VwIDIwMTcgMTg6Mjg6NTggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDI0IFNlcCAyMDE3IDE4OjI4OjU4ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQjQwREVEQTQyOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjQgU2VwIDIwMTcgMTg6Mjg6NTcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjg3OQpYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuODc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBKTDZhOHo1V0w3OTcgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sIDI0IFNlcCAyMDE3IDE4OjI4OjU0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd20wLWY0NS5nb29nbGUuY29tIChtYWlsLXdtMC1mNDUuZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjQ1XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEEyQUUyNUYyQUQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDI0IFNlcCAyMDE3IDE4OjI4OjUzICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNDUuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgcTEyNHNvMTQwNDQ4MjR3bWIuMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDI0IFNlcCAyMDE3IDExOjI4OjUzIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUhtTFppRVJmclZjcWNORXNUbFBrRURtN05pY2wxQlJra0FmYlNaeFpTUlk9OwogICAgICAgIGI9cDFTZUdTWS9LcEZLbnFCTVlNYkg2MnJzVUZhbk1IakRNWjBKL29zTzJUaEpRVVlhQ3Uxbm52ZnlndkUwcTErNHVXCiAgICAgICAgIDVxSmhjSjhLZHRiWFZ2bUxiMzJqbTJ2UmU5NFU1NXJKT1Zhdjh6dGxWa0UyN1pTUjY3NmJyZTFaV3pQVGw0LzVmclNBCiAgICAgICAgIFVEaENSZU1lMVFJdkxMY2psak1nakRTM0VZVHpRQndLOGpHNFBkQUNveEk0NzNYTW5WcnJpbm5UWGhmM09CZk8wenBBCiAgICAgICAgIGVKTmJLOTBlQVVrMWFIZVRmT0JwM0tOZlhGVDlNRjN2WGlHNUhndU9jZUg4dXJzVmtJRWpYWXZnRnpYNWdsYmV4Nm9LCiAgICAgICAgIHp3dHF2elZzbmpEUTc1c2lVZXZVOXJQQ3BTWXVFOEVKVm1wdTVhdy9kdVc5VmI4b0tWZ0lIZmRRRUh1QzhGZk5vcFRwCiAgICAgICAgIGtUNVE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUhtTFppRVJmclZjcWNORXNUbFBrRURtN05pY2wxQlJra0FmYlNaeFpTUlk9OwogICAgICAgIGI9cWpYclNvamUySzRMd0RWZXUwMzRjR2d2emRzRXEwa2d3aEtzOGt3a0x4YmF0TzJSdE9WdzF1Zzg4L251UVRtSEJxCiAgICAgICAgIDd2ZmFKeXA3WUtZZDlFdm1nM1JjbjdKbEtGTlkrcjdraEVPUmpTcm1INWpwcHAzdlphSnRxSzNpY2RWYzVWNlFzMnJxCiAgICAgICAgIHJEYWdPeGxrQ1l3WXo1ajNDeGNPbTlJcTBKamVZT3NRa0RqMVN1NkI0N1Vqcnltay8zdWFqYU1sYUNlWW5RTlBaOHg1CiAgICAgICAgIFJGNjFSaUN3ZUtBNVFJVTFPNXp4TFZXSzVkTHdjclpqSFpCZlAzVHlNcU9qZEpJN1VwODlQZ1RBQnB3TTZhemJJWGVxCiAgICAgICAgIFB4Qy9aUmlMUkZpdXhWbVZkT1Y3YTBKK1cyazcveUdiM0dPS0I4N1RzQ2FTbUNPaFdKSGo1a1Jtc2pPeU1XbHRSSEZLCiAgICAgICAgIHNWTWc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWdBWjNZdTEyNTBWMkNhK2pWSVhCcUs1MG8xRmsrcHhyZnhNMzdOa2ttb0xtYXRmRDR4CglQNG8wUHBPZkJORytBQkQ4VmZGM1ppZm5hVlduanFEbElTekZ3Q3JXSVE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQUxHMjR0N3MxL054d1VRT0Fya0VVbGJQYWhKbUlmQk12MnRXRjA1R05CSU11MlVJZ0lqcksvUW1WaVUzVnR2aDc3aWJqbnFHbHBXM0hjN1p1dC84Zz0KWC1SZWNlaXZlZDogYnkgMTAuMjguMzkuNjggd2l0aCBTTVRQIGlkIG42NW1yNzk3NDQ5NXdtbi4xMjIuMTUwNjI3NzczMjAxMjsKIFN1biwgMjQgU2VwIDIwMTcgMTE6Mjg6NTIgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPENBK25Qbk13TUNxT19FdGNCVzVfM3JNNzEtdENyaXRwNFVrc3lmUG1ER0FZcjZ4ej1vUUBtYWlsLmdtYWlsLmNvbT4KIDxGMUY4QjNDRi1EREFDLTQ0QkEtQUVCNy00MTIyQzg4N0M0QUJAaG9udG9uLm9yZz4gPENBK25Qbk13Zl9CZnRZdXMtcm5Rck83bzUrZHVHRnowVkVhN05pb2hHMV9fWVV6cmM1d0BtYWlsLmdtYWlsLmNvbT4KIDwxNTA1Nzk2OTA4LjI1MTY4MDguMTExMDY3MzEyOC42MzVBQzM1RkB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CiA8b3AueTZ0dG1yZWJrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDxDQStuUG5NeEZGRVRRbXF0ZTAtNTB1M0VGU3diZzZ5aXB3NVZTQmRMUHdUelBoZFZrNXdAbWFpbC5nbWFpbC5jb20+CiA8b3AueTZ0djVrZjNrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDwxNTA1ODUzNTQwLjM0NDM0NjUuMTExMTYyMDY0MC4zMzFCRTU4QUB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CiA8Q0ErblBuTXprTnZCRl9GY3QtRT03cWZHUWZwSFVCS1QxOWNXQzM4U0NxdHE2a3ZpZTlnQG1haWwuZ21haWwuY29tPgogPDE1MDU4NjczNzQuMzQ5Mzg0Mi4xMTExNzk2NTIwLjUxMjRBQ0E2QHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KIDxDQStuUG5NeHFIYTN5QlJGV3IraU9Fc09taGtYOExjZ2MwTTRkRzlzeXVjTHNQYUxSNUFAbWFpbC5nbWFpbC5jb20+CiA8b3AueTZ1c2V1d3lrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDwxNTA1OTA3ODkyLjIyNzI0OC4xMTEyMjgyMzEyLjA5M0RBOEM1QHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KIDxDQStuUG5NenUrWXZLUVgzdlQ9QUJrSzNwY0dQLU1oeHRzaW9rVDBDc2t6QWJqTTl4N0FAbWFpbC5nbWFpbC5jb20+IDwxNTA2Mjc1OTMxLjIwODE4ODEuMTExNjU2Nzg3Mi40NTJCMkYwNEB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CkluLVJlcGx5LVRvOiA8MTUwNjI3NTkzMS4yMDgxODgxLjExMTY1Njc4NzIuNDUyQjJGMDRAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBTdW4sIDI0IFNlcCAyMDE3IDE4OjI4OjQxICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NeEVjRkFDaGs4MGhzWnZHYVVDaDQ1QnJtdjMyK1l0bXJlNT1aY3lnVGNfX3dAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBVbmRlcnN0YW5kaW5nIE1ORy02MjA5ICh3YXM6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMSkKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNGUxODZjMjY1ODhiMDU1OWYzOWRhNyIKCi0tMDAxYTExNGUxODZjMjY1ODhiMDU1OWYzOWRhNwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpJIHdvbmRlciBzaG91bGQgd2UgZG8gYSBoYW5nb3V0IHRvIGRlY2lkZSB3aGF0IHlvdSBkbz8KCldoYXQgdGltZXMgb24gTW9uZGF5IHdvcmsgYmVzdD8KCkkgY2FuIG1heWJlIGRvIDg6MzAtOTozMHBtIElyaXNoIHRpbWUKCmh0dHBzOi8vd3d3LnRpbWVhbmRkYXRlLmNvbS93b3JsZGNsb2NrL21lZXRpbmdkZXRhaWxzLmh0bWw/eWVhcj0zRDIwMTcmbW9udD0KaD0zRDkmZGF5PTNEMjUmaG91cj0zRDE5Jm1pbj0zRDMwJnNlYz0zRDAmcDE9M0Q3OCZwMj0zRDM3JnAzPTNEMTc5CgpCdXQgd2U9RTI9ODA9OTlkIG5lZWQgdG8gZGVjaWRlIHdobyB3ZSBuZWVkIGFuZCBhbiBhY3R1YWwgYWdlbmRhLgoKSWYgTW9uZGF5IGlzIHRvbyBzb29uIEkgY2FuIHNlZSBpZiBJIGhhdmUgYSB3aW5kb3cgbGF0ZXIgdGhpcyB3ZWVrCgpPbiBTdW4gMjQgU2VwIDIwMTcgYXQgMTg6NTgsIElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY29tPiB3cm90ZToKCj4gU2VlIG15IGFuc3dlcnMvY29tbWVudHMgaW5saW5lCj4KPgo+IE9uIFN1biwgU2VwIDI0LCAyMDE3LCBhdCAxMjowNyBQTSwgU3RlcGhlbiBDb25ub2xseSB3cm90ZToKPiA+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvbWluaS9ndWlkZS1tYXZlbi1jbGFzc2xvYWRpbmcuaHRtbCBzYXlzPQo6Cj4gPgo+ID4gPiBXaGVuIGEgYnVpbGQgcGx1Z2luIGlzIGV4ZWN1dGVkLCB0aGUgdGhyZWFkJ3MgY29udGV4dCBjbGFzc2xvYWRlciBpcwo+IHNldAo+ID4gdG8gdGhlIHBsdWdpbiBjbGFzc2xvYWRlci4KPiA+Cj4gPiBTbyB3ZSdsbCBuZWVkIHRvIGZpeCBzb21ldGhpbmcgc29tZXdoZXJlLi4uCj4gPgo+ID4KPiBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vbWF2ZW4vY29udGVudC9yZWZlPQpyZW5jZS9tYXZlbi1jbGFzc2xvYWRpbmcuaHRtbAo+ID4gaXMgdW5hY2Nlc3NpYmxlIGZyb20gdGhlIHdlYnNpdGUgZHVlIHRvIGEgcmV3cml0ZSBydWxlLi4uCj4gPgo+ID4gVGhpbmdzIHRoYXQgc2VlbSB0byBiZSBtaXNzaW5nOgo+ID4KPiA+ICogV2hhdCBpcyB0aGUgZGVzaXJlZCBjbGFzc2xvYWRpbmcgZm9yIGEgcGx1Z2luIHRoYXQgaXMgbWFya2VkIGFzIGFuCj4gPiBleHRlbnNpb24/IENhbiBhIHBsdWdpbiBoYXZlIGEgTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCB0byBhbGxvdwo+ID4gZXhwb3J0aW5nIGNsYXNzZXMgYW5kIGFydGlmYWN0cyB3aGVuIHVzZWQgYXMgYW4gZXh0ZW5zaW9uPyBIb3cgc2hvdWxkIHQ9CmhlCj4gPiBjbGFzc2xvYWRpbmcgbG9vayBmb3Igc3VjaCBhIHN0cmFuZ2UgYmVhc3QuCj4KPiBUbyBtZSwgdGhlIGtleSByZXF1aXJlbWVudCBpcyB0aGF0IEBTaW5nbGV0b24gY29tcG9uZW50cyBhbmQgY2xhc3MKPiBzdGF0aWMgbWVtYmVycyBhcmUgc2luZ2xldG9ucyB3aGVuIGluamVjdGVkIGluIE1hdmVuIGNvcmUgb3IgaW4gQE1vam9zLgo+IFRoaXMgaW1wbGllcyB0aGF0IHRoZXJlIHNob3VsZCBiZSBzaW5nbGUgY2xhc3Nsb2FkZXIgcmVwcmVzZW50aW5nIGFuCj4gZXh0ZW5zaW9ucyBwbHVnaW5zIChNTkctNTc0MikuCj4KPiBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sIGRlY2xhcmVzIHdoYXQgcGFja2FnZXMgb2YgdGhlIGV4dGVuc2lvbgo+IHBsdWdpbiBhcmUgdmlzaWJsZSB0byBvdGhlciAobm9uIGV4dGVuc2lvbikgcGx1Z2lucy4KPiBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sIGRvZXMgbm90IGFmZmVjdCBjbGFzc2xvYWRpbmcgb2YgdGhlCj4gZXh0ZW5zaW9uIHBsdWdpbiBub3IgaXQgYWZmZWN0cyB0aGUgInNoYXBlIiBvZiBvdGhlciBjbGFzc2xvYWRlcnMuCj4KPiA+ICogSG93IGRvZXMgb25lIGFjY2VzcyB0aGUgcGx1Z2luIGNsYXNzbG9hZGVyIGlmIHdlIHdhbnQgVENDTCB0byBiZSBvdGhlPQpyCj4gPiB0aGFuIHRoYXQsIGlzIGl0IGEgRGVwZW5kZW5jeSBJbmplY3Rpb24gb3Igc29tZXRoaW5nIGVsc2U/Cj4KPiB0aGlzLmdldENsYXNzKCkuZ2V0Q2xhc3NMb2FkZXIoKSBpcyB0aGUgbW9zdCBkaXJlY3Qgd2F5IHRvIGFjY2VzcyBwbHVnaW4KPiBjbGFzc2xvYWRlci4gV2h5IGRvIHlvdSB0aGluayB3ZSBuZWVkIGFueXRoaW5nIG1vcmUgZWxhYm9yYXRlPwo+Cj4KPiA+ICogV2hhdCBkaWZmZXJlbnRpYXRlcyBhIENvcmUgZXh0ZW5zaW9uIGZyb20gYSBCdWlsZCBleHRlbnNpb24gKGlzIGl0IHRoPQphdAo+ID4gYQo+ID4gYnVpbGQgZXh0ZW5zaW9uIGxhY2tzIGEgTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCBhbmQgd2FzIG9ubHkKPiA+IGRlY2xhcmVkCj4gPiBpbiB0aGUgcG9tLnhtbCwgd2hpbGUgYSBjb3JlIGV4dGVuc2lvbiBlaXRoZXIgaGFzIGEKPiA+IE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgLSBpZiBkZWNsYXJlZCBpbiB0aGUgcG9tIC0gb3IgaXMgYW4KPiA+IGV4dGVuc2lvbgo+ID4gZGVjbGFyZWQgaW4gLm12bi9leHRlbnNpb25zLnhtbCkKPgo+IENvcmUgZXh0ZW5zaW9ucyBhcmUgbG9hZGVkICpiZWZvcmUqIGJ1aWxkIHN0YXJ0cywgc28gdGhleSBjYW4gY29udHJpYnV0ZQo+IEFic3RyYWN0TWF2ZW5MaWZlY3ljbGVQYXJ0aWNpcGFudCNhZnRlclNlc3Npb25TdGFydCwgZm9yIGV4YW1wbGUuIFRoZXkKPiBjYW4gYWxzbyBleHBvcnQgcGFja2FnZXMgdmlzaWJsZSB0byBhbGwgYnVpbGQgcGx1Z2lucywgaW5jbHVkaW5nCj4gZXh0ZW5zaW9ucz0zRHRydWUuIE9uIHRoZSBmbGlwIHNpZGUsIGVhY2ggY29yZSBleHRlbnNpb24gaXMgZWZmZWN0aXZlbHkKPiBzaW5nbGV0b24sIHlvdSBjYW4ndCBoYXZlIHR3byBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgdGhlIHNhbWUgQ29yZQo+IGV4dGVuc2lvbi4gQ29yZSBleHRlbnNpb25zIGFsc28gaGF2ZSBkaXJlY3QgYWNjZXNzIHRvIE1hdmVuIGNvcmUgY2xhc3Nlcwo+IGFuZCBjYW4gZG8gbW9yZSBpbnRlcmVzdGluZyB0aGluZ3MgdGhlcmUgKGZvciBiZXR0ZXIgb3Igd29yc2UpLgo+Cj4gQnVpbGQgZXh0ZW5zaW9ucyBhcmUgcGFydCBvZiB0aGUgcHJvamVjdCBidWlsZCBhbmQgYXMgc3VjaCBhcmUgbGltaXRlZAo+IHdoYXQgY29tcG9uZW50cyB0aGV5IGNhbiBjb250cmlidXRlIHRvIHRoZSBDb3JlIGFuZCB3aGF0IGNvcmUgY2xhc3Nlcwo+IHRoZXkgaGF2ZSBhY2Nlc3MgdG8uCj4KPiBJIHRyaWVkIHRvIGNhcHR1cmUgdGhpcyBpbiB0aGUgZGlhZ3JhbSBJIGRyZXcgZm9yCj4gaHR0cDovL3Rha2FyaS5pby9ib29rLzkxLW1hdmVuLWNsYXNzbG9hZGluZy5odG1sLgo+Cj4gPiBBdCB0aGlzIHBvaW50IGluIHRpbWUgSSB0aGluayB3ZSBhcmUgbmVhcmluZyB0aGUgcG9pbnQgd2hlcmUgSSBtYXkgaGF2ZQo+ID4gdG8KPiA+IGRlY2xhcmUgMy41LjEgYWJhbmRvbmVkIGFzIEkgdGhpbmsgdGhlIGNsYXNzbG9hZGluZyBpbiB0aGF0IGlzIGEgc3ltcHRvPQptCj4gPiBvZgo+ID4gdG9vIG1hbnkgY29va3MgYWxsIGNoYW5naW5nIHRoaW5ncyBpbiBkaWZmZXJlbnQgZGlyZWN0aW9ucy4gV2UgbmVlZCBhCj4gPiBjb25zaXN0ZW50IHZpc2lvbiBvZiB3aGVyZSB3ZSB3YW50IHRoaW5ncyB0byBnbyBhbmQgLSB3aGlsZSB3ZSBuZWVkIG5vdAo+ID4gZ2V0Cj4gPiB0aGVyZSBpbiBvbmUgZ28gLSB0aGUgcGF0aCBwcmVzZW50ZWQgZm9yIG90aGVycyB0byBzZWUuCj4KPiBUaGVyZSB3ZXJlIHR3byBjbGFzc2xvYWRpbmcgY2hhbmdlcyBpbiAzLjUuMSwgbmFtZWx5IGV4dGVuc2lvbnM9M0R0cnVlCj4gcGx1Z2lucyBub3cgaGF2ZSBwcm9qZWN0IHJlYWxtIGFzIFRDQ0wgYW5kIGFsbCByZWFsbXMgbm93IHVzZQo+IGFwcGxpY2F0aW9uIGNsYXNzbG9hZGVyIGFzIHRoZSBwYXJlbnQuIEFwYXJ0IGZyb20gbGFja2luZyBkb2N1bWVudGF0aW9uLAo+IHdoYXQgcHJhY3RpY2FsIHByb2JsZW1zIGhhdmUgYmVlbiBjYXVzZWQgYnkgdGhlc2UgdHdvIGNoYW5nZXM/Cj4KPiA+Cj4gPiBUaGluZ3MgSSB0aGluayB3ZSBzaG91bGQgY29uc2lkZXI6Cj4gPgo+ID4gMS4gRG8gd2Ugd2FudCB0byBmb3JtYWxseSBkZXByZWNhdGUgQnVpbGQgRXh0ZW5zaW9ucyBhbmQgdGhlCj4gPiAvcHJvamVjdC9idWlsZC9leHRlbnNpb25zIGVsZW1lbnQgKHN0YXJ0IGxvZ2dpbmcgd2FybmluZ3MsIGV0Yyk/Cj4gPiAyLiBEbyB3ZSB3YW50IHRvIGZvcm1hbGx5IGRlcHJlY2F0ZSBwbHVnaW5zIGFzIGV4dGVuc2lvbnMgYW5kIHN0YXJ0Cj4gPiBsb2dnaW5nCj4gPiB3YXJuaW5ncyBmb3IKPiA+Cj4gL3Byb2plY3QvYnVpbGQvKHBsdWdpbk1hbmFnZW1lbnR8LikvcGx1Z2lucy9wbHVnaW4vZXh0ZW5zaW9uc1t0ZXh0KCk9M0Q9Cj0zRHRydWVdCj4KPiBJJ2Qga2VlcCB0aGVtIGJvdGgsIGFuZCBtYXliZSBmaXgvcmVtb3ZlIG1hdmVuMi1jb21wYXQgY29kZXBhdGguIElmIEkKPiBoYWQgdG8gY2hvb3NlIGJldHdlZW4gdGhlIHR3bywgaG93ZXZlciwgSSdkIGNob29zZSA8cGx1Z2luPiB3aXRoCj4gZXh0ZW5zaW9ucz0zRHRydWUuIFRoaW5rIG9mIGEgY3VzdG9tIHBhY2thZ2luZyB0eXBlIHdpdGggbW9qb3MgdGhlIHVzZXIKPiB3YW50cyB0byBjb25maWd1cmUgaW4gcG9tLnhtbCwgaXQnZCBiZSBtb3JlIHRlZGlvdXMgdG8gY29uZmlndXJlIGlmIEkKPiBoYWQgdG8gYWRkIGJ1aWxkL2V4dGVuc2lvbiBhbmQgYnVpbGQvcGx1Z2luLgo+Cj4gPiAzLiBXaGF0IGlzIHRoZSBkaWZmZXJlbmNlIGluIGNsYXNzbG9hZGluZyBmb3IgYSAvcHJvamVjdC9idWlsZC9leHRlbnNpbz0KbnMKPiA+IHdoaWNoIGhhcyBhIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgYW5kIG9uZSB0aGF0IGRvZXNuJ3Q/Cj4KPiBJIHRoaW5rIGV4dGVuc2lvbnMgd2l0aCBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sIHNob3VsZCBub3QgZ28KPiB0aHJvdWdoIG1hdmVuMi1jb21wYXQgY29kZXBhdGguIEluIG90aGVyIHdvcmRzLCB3ZSBuZWVkIHRvIGNoYW5nZSB0aGUKPiBjdXJyZW50IGJlaGF2aW91ci4KPgo+IEV4dGVuc2lvbnMgd2l0aG91dCBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sLi4uIEkgYW0gbm90IHN1cmUuCj4gUHJvYmFibHkgc2FmZXIgdG8ga2VlcCB0aGUgY3VycmVudCBtYXZlbjItY29tcGF0IGJlaGF2aW91ci4KPgo+ID4gSSdtIGtlZXBpbmcgdGhlIDMuNS4xIHJlbGVhc2UgaW4gc3RhZ2luZyB1bnRpbCB3ZSBnZXQgYSBjbGVhciB2aXNpb24gZm89CnIKPiA+IGhvdyB3ZSB3YW50IHRvIGhhdmUgY2xhc3Nsb2FkaW5nIHNvIHRoYXQgSSBjYW4gYXNzZXNzIHdoZXRoZXIgdGhlIDMuNS4xCj4gPiBhY3R1YWxpdHkgaXMgb25seSBtb3ZpbmcgbmVhcmVyIHRvIHRoZSB2aXNpb24gKG9rIHRvIHJlbGVhc2UpIG9yIGhhcwo+ID4gbW92ZWQKPiA+IG5lYXJlciBpbiBzb21lIHdheXMgYnV0IGZ1cnRoZXIgaW4gb3RoZXJzIChub3Qgb2sgdG8gcmVsZWFzZSkKPiA+Cj4KPgo+IC0tCj4gUmVnYXJkcywKPiBJZ29yCj4KPgo+Cj4gPiBPbiAyMCBTZXB0ZW1iZXIgMjAxNyBhdCAxMjo0NCwgSWdvciBGZWRvcmVua28gPGlnb3JAaWZlZG9yZW5rby5jb20+Cj4gPiB3cm90ZToKPiA+Cj4gPiA+IFJlYWwtd29ybGQgc2NtIG9yIHdhZ29uIDxleHRlbnNpb25zPiB3b24ndCB0cmlnZ2VyIG1hdmVuMi1jb21wYXQgY29kZQo+ID4gPiBwYXRoIFsxXS4gVG8gYXZvaWQgdGhhdCBvYnNjdXJlIGNvZGUgcGF0aCB3ZSBjYW4gZWl0aGVyIG1ha2UgdGhlIHRlc3QKPiA+ID4gbW9yZSBlbGFib3JhdGUgKGkuZS4gYWRkIGRlcGVuZGVuY2llcyB0byBleHRqYXIxL2V4dGphcjIpIG9yIHdlIGNhbiB1PQpzZQo+ID4gPiBleHRlbnNpb25zIDxwbHVnaW4+LiBFaXRoZXIgd2F5IEkgZG9uJ3QgdGhpbmsgd2Ugc2hvdWxkIHNwZW5kIHRpbWUgb24KPiA+ID4gdGhlIGNvZGUgcGF0aCB1bmxpa2VseSB0byBiZSB1c2VkIGluIHJlYWwgbGlmZS4KPiA+ID4KPiA+ID4gWzFdCj4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vYmxvYi9tYXZlbi0zLjUuMS9tYXZlbi0KPiA+ID4KPiBjb3JlL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wcm9qZWN0L0RlZmF1bHRQcm9qZWN0QnVpbGRpbmdIZWxwZXIuCj4gPiA+IGphdmEjTDIxMC1MMjE5Cj4gPiA+Cj4gPiA+IC0tCj4gPiA+IFJlZ2FyZHMsCj4gPiA+IElnb3IKPiA+ID4KPiA+ID4gT24gV2VkLCBTZXAgMjAsIDIwMTcsIGF0IDAzOjI5IEFNLCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPiA+ID4gPiBPbiBXZWQsIDIwIFNlcCAyMDE3IDA5OjEyOjQ3ICswMjAwLCBTdGVwaGVuIENvbm5vbGx5Cj4gPiA+ID4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiA+Cj4gPiA+ID4gPiBPbiBXZWQgMjAgU2VwIDIwMTcgYXQgMDE6MjksIElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY29tPgo+ID4gPiB3cm90ZToKPiA+ID4gPiA+Cj4gPiA+ID4gPj4gSW4gdGhhdCBjYXNlLCBjYW4gSSBzdWdnZXN0IGNvdXBsZSBvZiBjaGFuZ2VzIHRvIHRoZSB0ZXN0IHByb2plYz0KdAo+ID4gPiA+ID4+Cj4gPiA+ID4gPj4gKiBJIHRoaW5rcyBpdCBtYWtlcyBtb3JlIHNlbnNlIHRvIGNvbmZpZ3VyZSBleHRqYXIxIGFuZCBleHRqYXIyID0KYXMKPiA+ID4gPiA+PiBleHRlbnNpb25zIDxwbHVnaW4+IGVsZW1lbnRzIGluIHByb2JsZU4gcG9tLnhtbCBmaWxlcy4gRmlyc3QsCj4gdGhlcmUgaXMKPiA+ID4gPiA+PiBubyBtZWFuaW5nZnVsIG9yZGVyIGJldHdlZW4gPGV4dGVuc2lvbnM+IGFuZCA8cGx1Z2lucz4gZWxlbWVudHMuCj4gTW9yZQo+ID4gPiA+ID4+IGltcG9ydGFudGx5LCB0aG91Z2gsIHNpbXBsZSA8ZXh0ZW5zaW9ucz4gYXJlIHRyZWF0ZWQgaW4gc3BlY2lhbAo+ID4gPiA+ID4+IG1hdmVuMi1jb21wYXQgbW9kZSBhbmQgYXJlIG5vdCByZXByZXNlbnRhdGl2ZSBvZiBsaWtlbHkgcmVhbC13b3I9CmxkCj4gPiA+ID4gPj4gZXh0ZW5zaW9ucy4KPiA+ID4gPiA+Cj4gPiA+ID4KPiA+ID4gPiBOb3Qgc3VyZSBJIGFncmVlIHdpdGggdGhpcy4gSSB0aGluayB0aGVyZSBhcmUgamFycyB3b3J0aCBzaGFyaW5nCj4gYWNyb3NzCj4gPiA+ID4gbXVsdGlwbGUgcGx1Z2lucywgYnV0IHdoZXJlIG1ha2luZyB0aGUgcGx1Z2luIGFuIGV4dGVuc2lvbiBpcyBhIGJpdAo+ID4gPiA+IHdlaXJkLgo+ID4gPiA+IEknbSB0aGlua2luZyBvZiBzY20gYW5kIHdhZ29uIGluIHRoaXMgY2FzZS4KPiA+ID4gPgo+ID4gPiA+ID4KPiA+ID4gPiA+IFRoYXQgc291bmRzIGxpa2Ugd2UgbmVlZCBkb2N1bWVudGF0aW9uIHVwZGF0ZWQgdGhlbi4gTm9uZSBvZiB0aGF0Cj4gaXMKPiA+ID4gPiA+IG9idmlvdXMgdG8gbWUuCj4gPiA+ID4gPgo+ID4gPiA+ID4KPiA+ID4gPiA+Pgo+ID4gPiA+ID4+ICogSSB0aGluayB3ZSBzaG91bGQgaW50cm9kdWNlIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgdG8gdGg9CmUKPiB0ZXN0Cj4gPiA+ID4gPj4gZXh0ZW5zaW9ucy4gVGhpcyBtZXRhZGF0YSB3aGF0IGludHJvZHVjZWQgdG8gY29uZmlndXJlIGNsYXNzcGF0aAo+ID4gPiA+ID4+IHZpc2liaWxpdHksIHNvIGxldHMgdXNlIGl0Lgo+ID4gPiA+ID4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBBZ2Fpbiwgbm90IG9idmlvdXMgdG8gbWUsIGlmIHRoYXQgZmlsZSBhbGxvd3MgY29udHJvbCBvZiBjbGFzc3BhdD0KaAo+ID4gPiA+ID4gdmlzaWJpbGl0eSB0aGVuIGl0IG1heSBiZSB0aGF0IHRoZSBvbmx5IGlzc3VlICp3aXRoKiAzLjUuMSBpcyB0aGUKPiBsYWNrCj4gPiA+IG9mCj4gPiA+ID4gPiBkb2N1bWVudGF0aW9uLi4uIG5vdyBwcmV2aW91cyB2ZXJzaW9ucyB3b3VsZCBoYXZlIGJlZW4gYWRkaW5nCj4gYnJlYWtpbmcKPiA+ID4gPiA+IGNoYW5nZXMgZnJvbSBteSBQb1YgYnV0IHRoYXQgaXMgdGhlIHBhc3QgYW5kIHNob3VsZCBub3QgYWZmZWN0IHRoPQplCj4gPiA+IDMuNS4xCj4gPiA+ID4gPiByZWxlYXNlLgo+ID4gPiA+ID4KPiA+ID4gPiA+IFBScyBmb3IgdGhlIHByb2JlIHByb2plY3Qgd2VsY29tZS4gSSBhbSBoYXBweSB0byB0cnkgYW5kIHdyaXRlIGRvPQpjcwo+ID4gPiBvbmNlCj4gPiA+ID4gPiBJCj4gPiA+ID4gPiBoYXZlIGFuIHVuZGVyc3RhbmRpbmcgb2Ygd2hhdCB0aGUgZXhwZWN0ZWQgYmVoYXZpb3VycyBhcmUKPiA+ID4gPiA+Cj4gPiA+ID4gPgo+ID4gPiA+ID4+Cj4gPiA+ID4gPj4gLS0KPiA+ID4gPiA+PiBSZWdhcmRzLAo+ID4gPiA+ID4+IElnb3IKPiA+ID4gPiA+Pgo+ID4gPiA+ID4+IE9uIFR1ZSwgU2VwIDE5LCAyMDE3LCBhdCAwNToxMiBQTSwgU3RlcGhlbiBDb25ub2xseSB3cm90ZToKPiA+ID4gPiA+PiA+IFllcywgdGhlIGV4cGVjdGF0aW9ucyBhcmUga2V5LiBEZXBlbmRpbmcgb24gd2hhdCB0aGV5IGFyZSB3ZSBtPQpheQo+ID4gPiA+ID4+IGVpdGhlcgo+ID4gPiA+ID4+ID4gZHJvcCAzLjUuMSBvciBnbyBhaGVhZCBhcyBpdCBkZXBlbmRzIG9uIHdoZXRoZXIgdGhpcyBpcyBtb3JlCj4gY29ycmVjdAo+ID4gPiA+ID4+IHRoYW4KPiA+ID4gPiA+PiA+IDMuNS4wIG9yIHN3YXBwaW5nIG9uZSBmaXggZm9yIGEgYnVnCj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4+ID4gT24gVHVlIDE5IFNlcCAyMDE3IGF0IDIxOjM5LCBJZ29yIEZlZG9yZW5rbyA8Cj4gaWdvckBpZmVkb3JlbmtvLmNvbT4KPiA+ID4gPiA+PiB3cm90ZToKPiA+ID4gPiA+PiA+Cj4gPiA+ID4gPj4gPiA+IEp1c3QgdG8gY29uZmlybSBJIHVuZGVyc3RhbmQgd2hhdCB3ZSBhcmUgdHJ5aW5nIHRvIGVzdGFibGlzaAo+IGhlcmUuCj4gPiA+ID4gPj4gV2UKPiA+ID4gPiA+PiA+ID4gd2FudCB0byBkZWNpZGUgdGhlIGV4cGVjdGVkL2Rlc2lyZWQgY29tcG9uZW50IGluamVjdGlvbgo+IGJlaGF2aW91cgo+ID4gPiA+ID4+IGFuZAo+ID4gPiA+ID4+ID4gPiBjbGFzc3BhdGggdmlzaWJpbGl0eSBpbiB0aGUgYWJzZW5jZSBvZiBwYWNrYWdlIGFuZCBhcnRpZmFjdAo+IGV4cG9ydAo+ID4gPiA+ID4+ID4gPiBjb25maWd1cmF0aW9uIChpLmUuIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgZmlsZSkuIERpZCA9CkkKPiBnZXQKPiA+ID4gPiA+PiB0aGlzCj4gPiA+ID4gPj4gPiA+IHJpZ2h0Pwo+ID4gPiA+ID4+ID4gPgo+ID4gPiA+ID4+ID4gPiAtLQo+ID4gPiA+ID4+ID4gPiBSZWdhcmRzLAo+ID4gPiA+ID4+ID4gPiBJZ29yCj4gPiA+ID4gPj4gPiA+Cj4gPiA+ID4gPj4gPiA+IE9uIFR1ZSwgU2VwIDE5LCAyMDE3LCBhdCAwMzo1MiBQTSwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4gPiA+ID4gPj4gPiA+ID4gTGV0J3MgZG8gaXQgbGlrZSB0aGlzOgo+ID4gPiA+ID4+ID4gPiA+Cj4gPiA+ID4gPj4gPiA+Cj4gPiA+ID4gPj4gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZG93bmxvYWQvYXR0YWNobWVudHMvMjMyOTg0MT0KLwo+ID4gPiBjbGFzc3JlYWxtcy5wZGY/YXBpPTNEdjIKPiA+ID4gPiA+PiA+ID4gPgo+ID4gPiA+ID4+ID4gPiA+IFJvYmVydAo+ID4gPiA+ID4+ID4gPiA+Cj4gPiA+ID4gPj4gPiA+ID4gT24gVHVlLCAxOSBTZXAgMjAxNyAyMTowODozOSArMDIwMCwgU3RlcGhlbiBDb25ub2xseQo+ID4gPiA+ID4+ID4gPiA+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+ID4gPiA+PiA+ID4gPgo+ID4gPiA+ID4+ID4gPiA+ID4gSSB0aGluayB5b3Ugd2lsbCBuZWVkIGEgbGluayB0byB0aGUgUERGIGFzIGF0dGFjaG1lbnRzIGE9CnJlCj4gPiA+ID4gPj4gc3RyaXBwZWQKPiA+ID4gPiA+PiA+ID4gZnJvbQo+ID4gPiA+ID4+ID4gPiA+ID4gdGhlIE1MCj4gPiA+ID4gPj4gPiA+ID4gPgo+ID4gPiA+ID4+ID4gPiA+ID4gT24gVHVlIDE5IFNlcCAyMDE3IGF0IDE5OjU3LCBSb2JlcnQgU2Nob2x0ZQo+ID4gPiA+ID4+IDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KPiA+ID4gPiA+PiA+ID4gd3JvdGU6Cj4gPiA+ID4gPj4gPiA+ID4gPgo+ID4gPiA+ID4+ID4gPiA+ID4+IEF0dGFjaGVkIGEgc2luZ2xlIHBhZ2Ugb3ZlcnZpZXcuCj4gPiA+ID4gPj4gPiA+ID4gPj4KPiA+ID4gPiA+PiA+ID4gPiA+PiBQZXIgYmxvY2sgeW91J2xsIHNlZSBpbiB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgdGhlCj4gZXhlY3V0ZWQKPiA+ID4gPiA+PiBwbHVnaW4KPiA+ID4gPiA+PiA+ID4gPiA+PiBUaGUgbGVmdCBjb2x1bW4gY29udGFpbnMgdGhlIGV4dGVuc2lvbnMgYW5kIHBsdWdpbiBpbgo+IG9yZGVyYXMKPiA+ID4gPiA+PiA+ID4gc3BlY2lmaWVkCj4gPiA+ID4gPj4gPiA+ID4gPj4gaW4KPiA+ID4gPiA+PiA+ID4gPiA+PiB0aGUgcG9tLnhtbAo+ID4gPiA+ID4+ID4gPiA+ID4+IEluIGV2ZXJ5IGNsYXNzbG9hZGVyY29sdW1uIHlvdSdsbCBzZWUgbnVtYmVycyB3aGljaAo+IHJlcHJlc2VudAo+ID4gPiA+ID4+IHRoZQo+ID4gPiA+ID4+ID4gPiBvcmRlci4KPiA+ID4gPiA+PiA+ID4gPiA+Pgo+ID4gPiA+ID4+ID4gPiA+ID4+IEkgaG9wZSBJIGRpZG4ndCBtYWtlIGFueSBtaXN0YWtlcy4KPiA+ID4gPiA+PiA+ID4gPiA+PiBUb21vcnJvdyBJIGhhdmUgZW5vdWdoIHRpbWUgdG8gc2VlIGlmIEkgdW5kZXJzdGFuZCB3aGF0PQoncwo+ID4gPiA+ID4+IGhhcHBlbmluZwo+ID4gPiA+ID4+ID4gPiA+ID4+IGhlcmUuCj4gPiA+ID4gPj4gPiA+ID4gPj4KPiA+ID4gPiA+PiA+ID4gPiA+PiBJIHdpbGwgY29tZSBiYWNrIHdpdGggbXkgY29uY2x1c2lvbnMuCj4gPiA+ID4gPj4gPiA+ID4gPj4KPiA+ID4gPiA+PiA+ID4gPiA+PiBSb2JlcnQKPiA+ID4gPiA+PiA+ID4gPiA+Pgo+ID4gPiA+ID4+ID4gPiA+ID4+IE9uIFR1ZSwgMTkgU2VwIDIwMTcgMDY6NTU6MDggKzAyMDAsIElnb3IgRmVkb3JlbmtvIDwKPiA+ID4gPiA+PiA+ID4gaWdvckBpZmVkb3JlbmtvLmNvbT4KPiA+ID4gPiA+PiA+ID4gPiA+PiB3cm90ZToKPiA+ID4gPiA+PiA+ID4gPiA+Pgo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gVEw7RFIgeW91ciB0ZXN0IHByb2plY3QgZXhwb3NlZCB0d28gZXhpc3RpbmcgYnVncywgb249CmUKPiA+ID4gPiA+PiBjaGFuZ2UgaW4KPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGJlaGF2aW91ciBhbmQgb25lIHF1aXJrIEkgY2FuJ3QgZXhwbGFpbgo+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogQnVpbGQgYDxleHRlbnNpb25zPmAgYXJlIGxvYWRlZCBieSB0d28gY2xhc3Nsb2FkZXJzPQosCj4gPiA+IHdoaWNoCj4gPiA+ID4gPj4gaXMKPiA+ID4gPiA+PiBhCj4gPiA+ID4gPj4gPiA+IGJ1Zwo+ID4gPiA+ID4+ID4gPiA+ID4+IGluCj4gPiA+ID4gPj4gPiA+ID4gPj4gPiBEZWZhdWx0UHJvamVjdEJ1aWxkaW5nSGVscGVyI2NyZWF0ZVByb2plY3RSZWFsbSBhbmQKPiA+ID4gZXhwbGFpbnMKPiA+ID4gPiA+PiB3aHkgeW91Cj4gPiA+ID4gPj4gPiA+ID4gPj4gc2VlCj4gPiA+ID4gPj4gPiA+ID4gPj4gPiBleHRqYXIxL2V4dGphcjIgaW4gdGhlIG91dHB1dAo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gKiBDbGFzc1JlYWxtIGRvZXMgbm90IGFsbG93IHNhbWUgZm9yZWlnbi1pbXBvcnQgZnJvbQo+ID4gPiBtdWx0aXBsZQo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gY2xhc3Nsb2FkZXJzLCB3aGljaCBpcyBhIGJ1ZyBhbmQgZXhwbGFpbnMgd2h5IGl0IGlzIG49Cm90Cj4gPiA+ID4gPj4gcG9zc2libGUgdG8KPiA+ID4gPiA+PiA+ID4gPiA+PiBsb2FkCj4gPiA+ID4gPj4gPiA+ID4gPj4gPiBzYW1lIHJlc291cmNlIGZyb20gbXVsdGlwbGUgcGx1Z2lucy9leHRlbnNpb25zCj4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIFRDQ0wgZG9lcyBub3QgaGF2ZSBhY2Nlc3MgdG8gcHJpdmF0ZSAoaS5lLiBub3QKPiBleHBvcnRlZCkKPiA+ID4gPiA+PiByZXNvdXJjZXMKPiA+ID4gPiA+PiA+ID4gPiA+PiBvZgo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gdGhpcyBleHRlbnNpb25zIHBsdWdpbiwgd2hpY2ggaXMgYSBjaGFuZ2Ugb2YgYmVoYXZpb3U9CnIKPiA+ID4gPiA+PiBpbnRyb2R1Y2VkIGJ5Cj4gPiA+ID4gPj4gPiA+ID4gPj4gPiBtbmctNjIwOSBmaXgKPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogQWxzbywgY29tcG9uZW50IGluamVjdGlvbiBvcmRlciBhcHBlYXJzIHRvIGJlCj4gYmFja3dhcmRzLAo+ID4gPiA+ID4+IGJ1dAo+ID4gPiA+ID4+IG1heWJlCj4gPiA+ID4gPj4gPiA+ID4gPj4gPiBTdHVhcnQgY2FuIGV4cGxhaW4gd2h5Lgo+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPj4gPiA+ID4gPj4gPiBCZWxvdyBpcyBtb3JlIGRldGFpbGVkIGV4cGxhbmF0aW9uIG9mIGV4cGVjdGVkIGFuZAo+IG9ic2VydmVkCj4gPiA+ID4gPj4gPiA+IGJlaGF2aW91cgo+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPj4gPiA+ID4gPj4gPiAjIyBDb21wb25lbnQgaW5qZWN0aW9uIGRlcGVuZHMgb24gdGhlIGN1cnJlbnRseSBydW5uaT0KbmcKPiA+ID4gPiA+PiBwbHVnaW4KPiA+ID4gPiA+PiBhbmQKPiA+ID4gPiA+PiA+ID4gdGhlCj4gPiA+ID4gPj4gPiA+ID4gPj4gPiBpbmplY3Rpb24gc2l0ZQo+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+PiA+ID4gPiA+PiA+IEN1cnJlbnRseSBydW5uaW5nIHBsdWdpbnMgaGF2ZSBhY2Nlc3MgdG8gdGhlIGZvbGxvd2luPQpnCj4gPiA+ID4gPj4gY29tcG9uZW50Cj4gPiA+ID4gPj4gPiA+ID4gPj4gPiBpbXBsZW1lbnRhdGlvbnM6Cj4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gKiBSZWd1bGFyIHBsdWdpbiBoYXMgYWNjZXNzIHRvIGNvbXBvbmVudHMgaW1wbGVtZW50ZWQKPiBieQo+ID4gPiB0aGUKPiA+ID4gPiA+PiBwbHVnaW4sCj4gPiA+ID4gPj4gPiA+ID4gPj4gPiBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMsIGlmIGFueSAodmlhIHByb2plY3QgY2xhc3MKPiByZWFsbQo+ID4gPiA+ID4+IGZvcmVpZ24KPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGltcG9ydCkgYW5kIE1hdmVuIENvcmUuCj4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIEV4dGVuc2lvbiBwbHVnaW4gaGFzIGFjY2VzcyB0byBjb21wb25lbnRzCj4gaW1wbGVtZW50ZWQgYnkKPiA+ID4gPiA+PiB0aGUKPiA+ID4gPiA+PiA+ID4gcHJvamVjdAo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gYnVpbGQgZXh0ZW5zaW9ucyBhbmQgTWF2ZW4gQ29yZS4KPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogV2l0aG91dCBhIHJ1bm5pbmcgcGx1Z2luIChlLmcuLCBkdXJpbmcgcHJvamVjdAo+IGRlcGVuZGVuY3kKPiA+ID4gPiA+PiA+ID4gPiA+PiByZXNvbHV0aW9uKSwKPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGNvbXBvbmVudHMgaW1wbGVtZW50ZWQgYnkgdGhlIHByb2plY3QgYnVpbGQgZXh0ZW5zaW9uPQpzCj4gYW5kCj4gPiA+ID4gPj4gTWF2ZW4KPiA+ID4gPiA+PiA+ID4gQ29yZQo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gYXJlIGFjY2Vzc2libGUuCj4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gRGlmZmVyZW50IGluamVjdGlvbiBzaXRlcyBoYXZlIGFjY2VzcyB0byB0aGUgZm9sbG93aW49CmcKPiA+ID4gPiA+PiBjb21wb25lbnQKPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGludGVyZmFjZXM6Cj4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gKiBNYXZlbiBDb3JlIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50IGludGVyZmFjZXMKPiBkZWZpbmVkIGJ5Cj4gPiA+ID4gPj4gdGhlCj4gPiA+ID4gPj4gY29yZQo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gaXRzZWxmIChvYnZpb3VzbHkpCj4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIFByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucyBoYXZlIGFjY2VzcyB0byAqKnB1YmxpYyoqCj4gPiA+ID4gPj4gY29tcG9uZW50Cj4gPiA+ID4gPj4gPiA+ID4gPj4gPiBpbnRlcmZhY2VzIGRlZmluZWQgYnkgTWF2ZW4gQ29yZSBhbmQgY29tcG9uZW50Cj4gaW50ZXJmYWNlcwo+ID4gPiA+ID4+IGRlZmluZWQgYnkKPiA+ID4gPiA+PiA+ID4gPiA+PiB0aGUKPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGJ1aWxkIGV4dGVuc2lvbiBpdHNlbGYgKHRoZXJlIGlzIG5vIHdheSB0byBhY2Nlc3MKPiBjb21wb25lbnQKPiA+ID4gPiA+PiA+ID4gaW50ZXJmYWNlcwo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gZGVmaW5lZCBpbiBvdGhlciBleHRlbnNpb25zKQo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gKiBSZWd1bGFyIHBsdWdpbnMgaGF2ZSBhY2Nlc3MgdG8gKipwdWJsaWMqKiBjb21wb25lbnQKPiA+ID4gPiA+PiBpbnRlcmZhY2VzCj4gPiA+ID4gPj4gPiA+ID4gPj4gZGVmaW5lZAo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gYnkgTWF2ZW4gQ29yZSwgY29tcG9uZW50IGludGVyZmFjZXMgKipleHBvcnRlZCoqIGJ5Cj4gYnVpbGQKPiA+ID4gPiA+PiBleHRlbnNpb25zCj4gPiA+ID4gPj4gPiA+ID4gPj4gYW5kCj4gPiA+ID4gPj4gPiA+ID4gPj4gPiBjb21wb25lbnQgaW50ZXJmYWNlcyBkZWZpbmVkIGluIHRoZSBwbHVnaW4gaXRzZWxmCj4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gRm9yIGluamVjdGlvbiB0byB3b3JrLCBpbmplY3Rpb24gc2l0ZSBoYXMgdG8gaGF2ZQo+IGFjY2VzcyB0bwo+ID4gPiA+ID4+IHRoZQo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gY29tcG9uZW50IGludGVyZmFjZSBhbmQgdGhlIGNvbXBvbmVudCBpbXBsZW1lbnRhdGlvbgo+IG11c3QKPiA+ID4gYmUKPiA+ID4gPiA+PiA+ID4gPiA+PiBhY2Nlc3NpYmxlCj4gPiA+ID4gPj4gPiA+ID4gPj4gPiB0aHJvdWdoIHRoZSBjdXJyZW50IGNvbnRleHQuCj4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gRnJvbSB3aGF0IEkgY2FuIHRlbGwsIGluIHlvdXIgZXhhbXBsZSBhbGwgcGx1Z2lucyBoYXY9CmUKPiA+ID4gYWNjZXNzCj4gPiA+ID4gPj4gdG8gdGhlCj4gPiA+ID4gPj4gPiA+ID4gPj4gPiByaWdodCBjb21wb25lbnRzIHdoZW4gdXNpbmcgY3VycmVudCAzLjUuMi1TTkFQU0hPVC4gVD0KaGUKPiA+ID4gPiA+PiBpbmplY3Rpb24KPiA+ID4gPiA+PiA+ID4gPiA+PiBvcmRlcgo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gZG9lcyBhcHBlYXIgdG8gYmUgYmFja3dhcmRzIGZyb20gd2hhdCBJIGV4cGVjdGVkLAo+IGhvd2V2ZXIuCj4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICMjIFJlc291cmNlcyBsb29rdXAgZnVsbHkgZGVwZW5kcyBvbiBjbGFzc3BhdGgKPiB2aXNpYmlsaXR5LAo+ID4gPiA+ID4+ID4gPiA+ID4+IHNwZWNpZmljYWxseQo+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogUmVndWxhciBwbHVnaW4gY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byByZXNvdXJjZXMKPiBmcm9tCj4gPiA+IHRoZQo+ID4gPiA+ID4+IHBsdWdpbgo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gaXRzZWxmLCBmcm9tICoqZXhwb3J0ZWQqKiBwYWNrYWdlcyBvZiB0aGUgcHJvamVjdCBidWk9CmxkCj4gPiA+ID4gPj4gZXh0ZW5zaW9ucwo+ID4gPiA+ID4+ID4gPiBhbmQKPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICoqcHVibGljKiogTWF2ZW4gQ29yZSBwYWNrYWdlcwo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gKiBFeHRlbnNpb25zIHBsdWdpbiBjbGFzcyByZWFsbSBoYXMgYWNjZXNzIHRvIHRoZQo+IHJlc291cmNlcwo+ID4gPiA+ID4+IGZyb20gdGhlCj4gPiA+ID4gPj4gPiA+ID4gPj4gPiBleHRlbnNpb25zIHBsdWdpbiBpdHNlbGYgYW5kIGZyb20gKipwdWJsaWMqKiBNYXZlbiBDbz0KcmUKPiA+ID4gPiA+PiBwYWNrYWdlcwo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gKiBQcm9qZWN0IGNsYXNzIHJlYWxtIGhhcyBhY2Nlc3MgdG8gY2xhc3NlcyBhbmQKPiByZXNvdXJjZXMKPiA+ID4gPiA+PiA+ID4gKipleHBvcnRlZCoqCj4gPiA+ID4gPj4gPiA+ID4gPj4gPiBieSBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMgYW5kICoqcHVibGljKiogTWF2ZW4gQ29yZQo+ID4gPiA+ID4+IHBhY2thZ2VzCj4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gSSBzZWUgdGhyZWUgcHJvYmxlbXMgaGVyZQo+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogTWF2ZW4gYWRkcyBidWlsZCBzaW5nbGUtamFyIGA8ZXh0ZW5zaW9ucz5gIGVsZW1lbnRzCj4gPiA+ID4gPj4gZGlyZWN0bHkKPiA+ID4gPiA+PiB0bwo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gcHJvamVjdCBjbGFzcyByZWFsbSAqKmFuZCoqIGNyZWF0ZXMgc2VwYXJhdGUgZXh0ZW5zaW89Cm5zCj4gPiA+IGNsYXNzCj4gPiA+ID4gPj4gcmVhbG1zCj4gPiA+ID4gPj4gPiA+ID4gPj4gZm9yCj4gPiA+ID4gPj4gPiA+ID4gPj4gPiB0aGVtLiBXaGljaCByZXN1bHRzIGluIGR1cGxpY2F0ZSBjbGFzc2VzL3Jlc291cmNlcwo+IGxvYWRlZAo+ID4gPiBieQo+ID4gPiA+ID4+IHR3bwo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gY2xhc3Nsb2FkZXJzIGFuZCBleHBsYWlucyB3aHkgeW91IHNlZSBleHRqYXIxL2V4dGphcjIKPiA+ID4gb3V0cHV0Cj4gPiA+ID4gPj4gKHdoaWNoCj4gPiA+ID4gPj4gPiA+ID4gPj4geW91Cj4gPiA+ID4gPj4gPiA+ID4gPj4gPiBzaG91bGRuJ3QgYWNjb3JkaW5nIHRvIHRoZSBleHBsYW5hdGlvbiBhYm92ZSkKPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogQ2xhc3NSZWFsbSBkb2VzIG5vdCBhbGxvdyBmb3JlaWduLWltcG9ydCBvZiB0aGUgc2FtPQplCj4gPiA+ID4gPj4gcGFja2FnZQo+ID4gPiA+ID4+IGZyb20KPiA+ID4gPiA+PiA+ID4gPiA+PiA+IG11bHRpcGxlIGNsYXNzbG9hZGVycy4gVGhpcyBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvCj4gbG9hZCB0aGUKPiA+ID4gPiA+PiBzYW1lCj4gPiA+ID4gPj4gPiA+ID4gPj4gPiByZXNvdXJjZSBmcm9tIG11bHRpcGxlIHBsdWdpbnMvZXh0ZW5zaW9ucy4KPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogRXh0ZW5zaW9ucyBwbHVnaW5zIGNhbm5vdCBhY2Nlc3MgdGhlaXIgb3duIHByaXZhdGUKPiAoaS5lLgo+ID4gPiA+ID4+IG5vdAo+ID4gPiA+ID4+ID4gPiA+ID4+IGV4cG9ydGVkKQo+ID4gPiA+ID4+ID4gPiA+ID4+ID4gcmVzb3VyY2VzIHZpYSBUQ0NMLCB0aGlzIGlzIGNoYW5nZSBpbiBiZWhhdmlvdXIKPiBpbnRyb2R1Y2VkCj4gPiA+IGJ5Cj4gPiA+ID4gPj4gPiA+IG1uZy02MjA5Cj4gPiA+ID4gPj4gPiA+ID4gPj4gPiBmaXgKPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPj4gPiA+ID4gPj4gPiBIb3BlIHRoaXMgaGVscHMKPiA+ID4gPiA+PiA+ID4gPiA+Pgo+ID4gPiA+ID4+ID4gPiA+ID4+Cj4gPiA+ID4gPj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gPiA+PiA+ID4gPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yPQpnCj4gPiA+ID4gPj4gPiA+ID4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDoKPiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPj4gPiA+ID4KPiA+ID4gPiA+PiA+ID4gPgo+ID4gPiA+ID4+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID4gPj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+PiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPj4gPiA+ID4KPiA+ID4gPiA+PiA+ID4KPiA+ID4gPiA+PiA+ID4KPiA+ID4gPiA+Pgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiA+ID4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPj4gPiA+Cj4gPiA+ID4gPj4gPiA+IC0tCj4gPiA+ID4gPj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+ID4gPiA+Pgo+ID4gPiA+ID4+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPj4KPiA+ID4gPiA+PiAtLQo+ID4gPiA+ID4gU2VudCBmcm9tIG15IHBob25lCj4gPiA+ID4KPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotLQo+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+Cj4gPiA+Cj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Cj4gPiA+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+IC0tClNlbnQgZnJvbSBteSBwaG9uZQoKLS0wMDFhMTE0ZTE4NmMyNjU4OGIwNTU5ZjM5ZGE3LS0KCkZyb20gZGV2LXJldHVybi0xMjQwNjctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIFNlcCAxOSAxOTowODo1NCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwNjctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgREI4QTNDNjgzCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMTkgU2VwIDIwMTcgMTk6MDg6NTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzMjkyOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOSBTZXAgMjAxNyAxOTowODo1NCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzI4NDAgaW52b2tlZCBieSB1aWQgNTAwKTsgMTkgU2VwIDIwMTcgMTk6MDg6NTQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMjgyOCBpbnZva2VkIGJ5IHVpZCA5OSk7IDE5IFNlcCAyMDE3IDE5OjA4OjU0IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAxOSBTZXAgMjAxNyAxOTowODo1NCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEI0MjRFMUE1QTM5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxOSBTZXAgMjAxNyAxOTowODo1MyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjQKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuNCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMSwgVVJJQkxfQkxPQ0tFRD0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBHWGhjc2czdE9CTFcgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUdWUsIDE5IFNlcCAyMDE3IDE5OjA4OjUxICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtdmswLWY0OC5nb29nbGUuY29tIChtYWlsLXZrMC1mNDguZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxMy40OF0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAxMEVGQTVGM0ZFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxOSBTZXAgMjAxNyAxOTowODo1MSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC12azAtZjQ4Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGMxOXNvMzEwMzU0dmtlLjExCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTkgU2VwIDIwMTcgMTI6MDg6NTEgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9bUR4eDA1SmQzdyt0aXdUTDh5NVRGV1ZaT1RwUm9YZzNCTVlRZ1gxYzVRWT07CiAgICAgICAgYj1oTlRDcXVQVFFtRjgwMTlSekNwOUtNVm8zOGVpMXJCYmJXR0hCRnprNHNtK2RyZ1k4WVJIREhmOGpOajZ0NTVNcmYKICAgICAgICAgU0txazE5YUVrcHNYTkd0QzlzVUt2dmdoc2pZdEJhTFVMcU1DTDRXaUJQYm9ESWNhZHY5dWE0SHFockZZNnNVQ24rUHEKICAgICAgICAgRkdjWXZVcGRqRHlOOHUrZzVKcUNIK3JJVDluZ3lxcjlsbWJOelJMT2lybTcvR0hwL2E2dUpIVVo5Ump1Z25rSkV4V0kKICAgICAgICAgL3NtbzlYWjlSWldMQ25CcGZ4and2VloyU0lqK3NVN2N3M2UxS084dnNKdEp1bnZpTGIwUk05NjBMNDlKb1hDK2plTTIKICAgICAgICAgZmNEWWdLSlhyLzlOdnZTYnlLZDV6NGFlRG5zaGcvQitnRlRROEx3RkRZbHMwd3l5Yk5rdThjbUV1NVdmQUwrbVA1WVAKICAgICAgICAgZ3JRdz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9bUR4eDA1SmQzdyt0aXdUTDh5NVRGV1ZaT1RwUm9YZzNCTVlRZ1gxYzVRWT07CiAgICAgICAgYj1CYkRHUFR5RHB3azJLaFRtY0o4ZEtwcXQydEFQTmxtbG9reENZNi9tb2ZsVjhxcEtacGZIN0l6RTZwSm13VEF0a3YKICAgICAgICAgbWtTWWlQaXpEZ2lBL1cxUEl3bkF5eVpJV1U3VU9TU3pBUEttcnVlcXZVS3lad0Zsd3Y1bmowUjFUOE5nZlJQV1pER0oKICAgICAgICAgdy8zdjdJWkNaZkdlM3FNQStaaW8vQzlWYjFRWDdUZHZ1bjB6a2hUTnBBczhrelVqaitoaDQxRDFQbFBCV2hCM1FPVFQKICAgICAgICAgcEY3WEQ3N2hZQXV4TnJRQ3g5cmRJb28xclZVKzB0OVpOL0JHRHc4a3liNXBmSzh1bDBwblV0NFllUEdweTlJSlRzV3YKICAgICAgICAgZHdSWWlwMDRyOEhSV2lwd0RsNmZ1dHdHUWZnMTgzdXAzUTBHYjEwOGhXMDV5ZFZ4SW9MRzFUeDdkd0U5aG0yRjVrZWkKICAgICAgICAgUEt4QT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVZzZGdmloRG50N0VaRkY3S002eEJWcFBGOENOeE0zQWw5TzRCQWlEYkd0MHBQTFhMM0UKCThVOU91ZFV4UnZ2cXp5WGFiL0tOV0pDMlFTeTBIbGNxVEN3bkJIMUJDUT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FCdDh6YzJHRHNNOUhOMDdBTzBXU1RUdGpvK1pzUHRIVXlobzdrTHVFdi9pbVpYcWFGRHhrRWJjRVZoWkFweXFrcm9rblh6dlhxVnViOFNkdjBjYnpvPQpYLVJlY2VpdmVkOiBieSAxMC4zMS4xNjcuNzEgd2l0aCBTTVRQIGlkIHE2OG1yMTg1OTMwNXZrZS40OS4xNTA1ODQ4MTI5NjkzOwogVHVlLCAxOSBTZXAgMjAxNyAxMjowODo0OSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8Q0ErblBuTXdNQ3FPX0V0Y0JXNV8zck03MS10Q3JpdHA0VWtzeWZQbURHQVlyNnh6PW9RQG1haWwuZ21haWwuY29tPgogPEYxRjhCM0NGLUREQUMtNDRCQS1BRUI3LTQxMjJDODg3QzRBQkBob250b24ub3JnPiA8Q0ErblBuTXdmX0JmdFl1cy1yblFyTzdvNStkdUdGejBWRWE3TmlvaEcxX19ZVXpyYzV3QG1haWwuZ21haWwuY29tPgogPDE1MDU3OTY5MDguMjUxNjgwOC4xMTEwNjczMTI4LjYzNUFDMzVGQHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4gPG9wLnk2dHRtcmVia2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpJbi1SZXBseS1UbzogPG9wLnk2dHRtcmVia2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBUdWUsIDE5IFNlcCAyMDE3IDE5OjA4OjM5ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NeEZGRVRRbXF0ZTAtNTB1M0VGU3diZzZ5aXB3NVZTQmRMUHdUelBoZFZrNXdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBVbmRlcnN0YW5kaW5nIE1ORy02MjA5ICh3YXM6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMSkKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDI3YTY2ZGIyZDUwMDU1OThmOTYyMSIKCi0tMDAxYTExNDI3YTY2ZGIyZDUwMDU1OThmOTYyMQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKSSB0aGluayB5b3Ugd2lsbCBuZWVkIGEgbGluayB0byB0aGUgUERGIGFzIGF0dGFjaG1lbnRzIGFyZSBzdHJpcHBlZCBmcm9tCnRoZSBNTAoKT24gVHVlIDE5IFNlcCAyMDE3IGF0IDE5OjU3LCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+IHdyb3RlOgoKPiBBdHRhY2hlZCBhIHNpbmdsZSBwYWdlIG92ZXJ2aWV3Lgo+Cj4gUGVyIGJsb2NrIHlvdSdsbCBzZWUgaW4gdGhlIHVwcGVyIGxlZnQgY29ybmVyIHRoZSBleGVjdXRlZCBwbHVnaW4KPiBUaGUgbGVmdCBjb2x1bW4gY29udGFpbnMgdGhlIGV4dGVuc2lvbnMgYW5kIHBsdWdpbiBpbiBvcmRlcmFzIHNwZWNpZmllZCBpbgo+IHRoZSBwb20ueG1sCj4gSW4gZXZlcnkgY2xhc3Nsb2FkZXJjb2x1bW4geW91J2xsIHNlZSBudW1iZXJzIHdoaWNoIHJlcHJlc2VudCB0aGUgb3JkZXIuCj4KPiBJIGhvcGUgSSBkaWRuJ3QgbWFrZSBhbnkgbWlzdGFrZXMuCj4gVG9tb3Jyb3cgSSBoYXZlIGVub3VnaCB0aW1lIHRvIHNlZSBpZiBJIHVuZGVyc3RhbmQgd2hhdCdzIGhhcHBlbmluZyBoZXJlLgo+Cj4gSSB3aWxsIGNvbWUgYmFjayB3aXRoIG15IGNvbmNsdXNpb25zLgo+Cj4gUm9iZXJ0Cj4KPiBPbiBUdWUsIDE5IFNlcCAyMDE3IDA2OjU1OjA4ICswMjAwLCBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvbT4KPiB3cm90ZToKPgo+ID4gVEw7RFIgeW91ciB0ZXN0IHByb2plY3QgZXhwb3NlZCB0d28gZXhpc3RpbmcgYnVncywgb25lIGNoYW5nZSBpbgo+ID4gYmVoYXZpb3VyIGFuZCBvbmUgcXVpcmsgSSBjYW4ndCBleHBsYWluCj4gPgo+ID4gKiBCdWlsZCBgPGV4dGVuc2lvbnM+YCBhcmUgbG9hZGVkIGJ5IHR3byBjbGFzc2xvYWRlcnMsIHdoaWNoIGlzIGEgYnVnIGluCj4gPiBEZWZhdWx0UHJvamVjdEJ1aWxkaW5nSGVscGVyI2NyZWF0ZVByb2plY3RSZWFsbSBhbmQgZXhwbGFpbnMgd2h5IHlvdSBzZWUKPiA+IGV4dGphcjEvZXh0amFyMiBpbiB0aGUgb3V0cHV0Cj4gPiAqIENsYXNzUmVhbG0gZG9lcyBub3QgYWxsb3cgc2FtZSBmb3JlaWduLWltcG9ydCBmcm9tIG11bHRpcGxlCj4gPiBjbGFzc2xvYWRlcnMsIHdoaWNoIGlzIGEgYnVnIGFuZCBleHBsYWlucyB3aHkgaXQgaXMgbm90IHBvc3NpYmxlIHRvIGxvYWQKPiA+IHNhbWUgcmVzb3VyY2UgZnJvbSBtdWx0aXBsZSBwbHVnaW5zL2V4dGVuc2lvbnMKPiA+ICogVENDTCBkb2VzIG5vdCBoYXZlIGFjY2VzcyB0byBwcml2YXRlIChpLmUuIG5vdCBleHBvcnRlZCkgcmVzb3VyY2VzIG9mCj4gPiB0aGlzIGV4dGVuc2lvbnMgcGx1Z2luLCB3aGljaCBpcyBhIGNoYW5nZSBvZiBiZWhhdmlvdXIgaW50cm9kdWNlZCBieQo+ID4gbW5nLTYyMDkgZml4Cj4gPiAqIEFsc28sIGNvbXBvbmVudCBpbmplY3Rpb24gb3JkZXIgYXBwZWFycyB0byBiZSBiYWNrd2FyZHMsIGJ1dCBtYXliZQo+ID4gU3R1YXJ0IGNhbiBleHBsYWluIHdoeS4KPiA+Cj4gPgo+ID4gQmVsb3cgaXMgbW9yZSBkZXRhaWxlZCBleHBsYW5hdGlvbiBvZiBleHBlY3RlZCBhbmQgb2JzZXJ2ZWQgYmVoYXZpb3VyCj4gPgo+ID4KPiA+ICMjIENvbXBvbmVudCBpbmplY3Rpb24gZGVwZW5kcyBvbiB0aGUgY3VycmVudGx5IHJ1bm5pbmcgcGx1Z2luIGFuZCB0aGUKPiA+IGluamVjdGlvbiBzaXRlCj4gPgo+ID4gQ3VycmVudGx5IHJ1bm5pbmcgcGx1Z2lucyBoYXZlIGFjY2VzcyB0byB0aGUgZm9sbG93aW5nIGNvbXBvbmVudAo+ID4gaW1wbGVtZW50YXRpb25zOgo+ID4KPiA+ICogUmVndWxhciBwbHVnaW4gaGFzIGFjY2VzcyB0byBjb21wb25lbnRzIGltcGxlbWVudGVkIGJ5IHRoZSBwbHVnaW4sCj4gPiBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMsIGlmIGFueSAodmlhIHByb2plY3QgY2xhc3MgcmVhbG0gZm9yZWlnbgo+ID4gaW1wb3J0KSBhbmQgTWF2ZW4gQ29yZS4KPiA+ICogRXh0ZW5zaW9uIHBsdWdpbiBoYXMgYWNjZXNzIHRvIGNvbXBvbmVudHMgaW1wbGVtZW50ZWQgYnkgdGhlIHByb2plY3QKPiA+IGJ1aWxkIGV4dGVuc2lvbnMgYW5kIE1hdmVuIENvcmUuCj4gPiAqIFdpdGhvdXQgYSBydW5uaW5nIHBsdWdpbiAoZS5nLiwgZHVyaW5nIHByb2plY3QgZGVwZW5kZW5jeSByZXNvbHV0aW9uKSwKPiA+IGNvbXBvbmVudHMgaW1wbGVtZW50ZWQgYnkgdGhlIHByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucyBhbmQgTWF2ZW4gQ29yZQo+ID4gYXJlIGFjY2Vzc2libGUuCj4gPgo+ID4gRGlmZmVyZW50IGluamVjdGlvbiBzaXRlcyBoYXZlIGFjY2VzcyB0byB0aGUgZm9sbG93aW5nIGNvbXBvbmVudAo+ID4gaW50ZXJmYWNlczoKPiA+Cj4gPiAqIE1hdmVuIENvcmUgaGFzIGFjY2VzcyB0byBjb21wb25lbnQgaW50ZXJmYWNlcyBkZWZpbmVkIGJ5IHRoZSBjb3JlCj4gPiBpdHNlbGYgKG9idmlvdXNseSkKPiA+ICogUHJvamVjdCBidWlsZCBleHRlbnNpb25zIGhhdmUgYWNjZXNzIHRvICoqcHVibGljKiogY29tcG9uZW50Cj4gPiBpbnRlcmZhY2VzIGRlZmluZWQgYnkgTWF2ZW4gQ29yZSBhbmQgY29tcG9uZW50IGludGVyZmFjZXMgZGVmaW5lZCBieSB0aGUKPiA+IGJ1aWxkIGV4dGVuc2lvbiBpdHNlbGYgKHRoZXJlIGlzIG5vIHdheSB0byBhY2Nlc3MgY29tcG9uZW50IGludGVyZmFjZXMKPiA+IGRlZmluZWQgaW4gb3RoZXIgZXh0ZW5zaW9ucykKPiA+ICogUmVndWxhciBwbHVnaW5zIGhhdmUgYWNjZXNzIHRvICoqcHVibGljKiogY29tcG9uZW50IGludGVyZmFjZXMgZGVmaW5lZAo+ID4gYnkgTWF2ZW4gQ29yZSwgY29tcG9uZW50IGludGVyZmFjZXMgKipleHBvcnRlZCoqIGJ5IGJ1aWxkIGV4dGVuc2lvbnMgYW5kCj4gPiBjb21wb25lbnQgaW50ZXJmYWNlcyBkZWZpbmVkIGluIHRoZSBwbHVnaW4gaXRzZWxmCj4gPgo+ID4gRm9yIGluamVjdGlvbiB0byB3b3JrLCBpbmplY3Rpb24gc2l0ZSBoYXMgdG8gaGF2ZSBhY2Nlc3MgdG8gdGhlCj4gPiBjb21wb25lbnQgaW50ZXJmYWNlIGFuZCB0aGUgY29tcG9uZW50IGltcGxlbWVudGF0aW9uIG11c3QgYmUgYWNjZXNzaWJsZQo+ID4gdGhyb3VnaCB0aGUgY3VycmVudCBjb250ZXh0Lgo+ID4KPiA+IEZyb20gd2hhdCBJIGNhbiB0ZWxsLCBpbiB5b3VyIGV4YW1wbGUgYWxsIHBsdWdpbnMgaGF2ZSBhY2Nlc3MgdG8gdGhlCj4gPiByaWdodCBjb21wb25lbnRzIHdoZW4gdXNpbmcgY3VycmVudCAzLjUuMi1TTkFQU0hPVC4gVGhlIGluamVjdGlvbiBvcmRlcgo+ID4gZG9lcyBhcHBlYXIgdG8gYmUgYmFja3dhcmRzIGZyb20gd2hhdCBJIGV4cGVjdGVkLCBob3dldmVyLgo+ID4KPiA+Cj4gPiAjIyBSZXNvdXJjZXMgbG9va3VwIGZ1bGx5IGRlcGVuZHMgb24gY2xhc3NwYXRoIHZpc2liaWxpdHksIHNwZWNpZmljYWxseQo+ID4KPiA+ICogUmVndWxhciBwbHVnaW4gY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byByZXNvdXJjZXMgZnJvbSB0aGUgcGx1Z2luCj4gPiBpdHNlbGYsIGZyb20gKipleHBvcnRlZCoqIHBhY2thZ2VzIG9mIHRoZSBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMgYW5kCj4gPiAqKnB1YmxpYyoqIE1hdmVuIENvcmUgcGFja2FnZXMKPiA+ICogRXh0ZW5zaW9ucyBwbHVnaW4gY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byB0aGUgcmVzb3VyY2VzIGZyb20gdGhlCj4gPiBleHRlbnNpb25zIHBsdWdpbiBpdHNlbGYgYW5kIGZyb20gKipwdWJsaWMqKiBNYXZlbiBDb3JlIHBhY2thZ2VzCj4gPiAqIFByb2plY3QgY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byBjbGFzc2VzIGFuZCByZXNvdXJjZXMgKipleHBvcnRlZCoqCj4gPiBieSBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMgYW5kICoqcHVibGljKiogTWF2ZW4gQ29yZSBwYWNrYWdlcwo+ID4KPiA+IEkgc2VlIHRocmVlIHByb2JsZW1zIGhlcmUKPiA+Cj4gPiAqIE1hdmVuIGFkZHMgYnVpbGQgc2luZ2xlLWphciBgPGV4dGVuc2lvbnM+YCBlbGVtZW50cyBkaXJlY3RseSB0bwo+ID4gcHJvamVjdCBjbGFzcyByZWFsbSAqKmFuZCoqIGNyZWF0ZXMgc2VwYXJhdGUgZXh0ZW5zaW9ucyBjbGFzcyByZWFsbXMgZm9yCj4gPiB0aGVtLiBXaGljaCByZXN1bHRzIGluIGR1cGxpY2F0ZSBjbGFzc2VzL3Jlc291cmNlcyBsb2FkZWQgYnkgdHdvCj4gPiBjbGFzc2xvYWRlcnMgYW5kIGV4cGxhaW5zIHdoeSB5b3Ugc2VlIGV4dGphcjEvZXh0amFyMiBvdXRwdXQgKHdoaWNoIHlvdQo+ID4gc2hvdWxkbid0IGFjY29yZGluZyB0byB0aGUgZXhwbGFuYXRpb24gYWJvdmUpCj4gPiAqIENsYXNzUmVhbG0gZG9lcyBub3QgYWxsb3cgZm9yZWlnbi1pbXBvcnQgb2YgdGhlIHNhbWUgcGFja2FnZSBmcm9tCj4gPiBtdWx0aXBsZSBjbGFzc2xvYWRlcnMuIFRoaXMgbWFrZXMgaXQgaW1wb3NzaWJsZSB0byBsb2FkIHRoZSBzYW1lCj4gPiByZXNvdXJjZSBmcm9tIG11bHRpcGxlIHBsdWdpbnMvZXh0ZW5zaW9ucy4KPiA+ICogRXh0ZW5zaW9ucyBwbHVnaW5zIGNhbm5vdCBhY2Nlc3MgdGhlaXIgb3duIHByaXZhdGUgKGkuZS4gbm90IGV4cG9ydGVkKQo+ID4gcmVzb3VyY2VzIHZpYSBUQ0NMLCB0aGlzIGlzIGNoYW5nZSBpbiBiZWhhdmlvdXIgaW50cm9kdWNlZCBieSBtbmctNjIwOQo+ID4gZml4Cj4gPgo+ID4gSG9wZSB0aGlzIGhlbHBzCj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tIApTZW50IGZyb20gbXkgcGhvbmUKCi0tMDAxYTExNDI3YTY2ZGIyZDUwMDU1OThmOTYyMS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MzExLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBPY3QgMjIgMTk6MDY6MDIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzExLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDFDN0Y5MTAwM0IKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAyMiBPY3QgMjAxNyAxOTowNjowMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg2NzkxIGludm9rZWQgYnkgdWlkIDUwMCk7IDIyIE9jdCAyMDE3IDE5OjA1OjU2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NjcwNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMiBPY3QgMjAxNyAxOTowNTo1NiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg2Njk1IGludm9rZWQgYnkgdWlkIDk5KTsgMjIgT2N0IDIwMTcgMTk6MDU6NTYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDIyIE9jdCAyMDE3IDE5OjA1OjU2ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQjU2QjQxQTBDQ0IKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDIyIE9jdCAyMDE3IDE5OjA1OjU1ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuNDAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjQwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHpoeFU5ZUtfUUJPeSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgMjIgT2N0IDIwMTcgMTk6MDU6NTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13cjAtZjE3NC5nb29nbGUuY29tIChtYWlsLXdyMC1mMTc0Lmdvb2dsZS5jb20gWzIwOS44NS4xMjguMTc0XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDQwRUIwNUZENjcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDIyIE9jdCAyMDE3IDE5OjA1OjUzICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdyMC1mMTc0Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHU0MHNvOTQ1MzI5NndyZi4xMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDIyIE9jdCAyMDE3IDEyOjA1OjUzIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUpxK1h2Zk1TanYxQ0NTTlU1WHdOaDNHYXQwVUJ1MktSQ2MxT3hTbElnWUk9OwogICAgICAgIGI9SVZCZXhsbFZpbDNQbC9FeUZuZFk0cXRrZDViQlI3ak8xNlp1SXBCaFdveUYyMkxkMWpYU1gydlpjeXNKT3NWSmJ1CiAgICAgICAgIHovL0MyK21MMlRHR1NoU1AyejZMek9JdktzS3owQm5laFdCdENna1VXZzhReXJUUVdmRDZ4ZVNOZ2NMellOdkFEVjNtCiAgICAgICAgIFVjQzY3RFJJSHducVI1T2N4ak10U0VZaXJGYUsrTktXRkVlODkveUFsNUVJWUlPVHZ5TGYxVWdnbjREY2dpMVhXS1BMCiAgICAgICAgIGVneHhNTlhuckdQb21BL2pNUDE3MnEzM3NWTTdhTSsyczgyajdVVlFieUUyQzltZ2piNFRTN1RyN1ZqMTYyQjJZMldUCiAgICAgICAgIGFtYkNiWXg4cyt1Q2RMaGh4Q1p3eFpJWFU0MXRLak5aQyt2VGdkY2k4WUJOdFFGRlVpWGJ1UHROeFJiMWN1YjI1MU5jCiAgICAgICAgIEZQZVE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUpxK1h2Zk1TanYxQ0NTTlU1WHdOaDNHYXQwVUJ1MktSQ2MxT3hTbElnWUk9OwogICAgICAgIGI9ZThpdXlKczFPT1dSRHdXVVZwaW1JRnV2MWUwVG5ob3VqTk5tZHJ3aFdDbGl5U2hIK0VLc2lhVmlGWW1BMEJlWFE0CiAgICAgICAgIGVwTkJwMUxSQ2lZK0hkdzI5ejd2bUpLNUl0NG9Dbm8yeld5VjNVdHJvaG9BOVExMGttWTdXajFZeHhRNUZIYXducUtGCiAgICAgICAgIC9zbis3Vk9nTytPc2hvRGtjWmdwM29xZlhwQVJYRlFxUGQ4UVlDdUFPY1M2eEZiaCtmbWRRb0VZUFUyS0ZPTWM5VHNICiAgICAgICAgIE9GeTJ1Y0UxRUtkRmhwSkdBaTFvck44TnE1UDBJUjJqd0NDOXJIamE0dlVNQ1ArZk93a3R5RWU5OEtibHFPZzhFMFdaCiAgICAgICAgIFI4aHZHR0ZMbEpKYmlmQlRmMHh3Y1VpR1V6NkRIUFo4QnlIcnF4Q1RDelZLajRiKzZZTXVud1JtS2NwTSs2dWRsTU5nCiAgICAgICAgIFY3bHc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVVMNUtnWnJVMzVybzNadjN2elF6LzlubnF1L3V3Sjdta3B0NFJGRmZiZFA5b1hKNno4Cgl5YjlESUFGVVlBYW5iaW9WUkplSFF5M0t3UTFDaExxbWdwUFlZM3ZFNFE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArUVVKVjhUMC9nVHdVeVQycXZkeGg5V2JHdmJ0VHNEemt3Q2cvYUVWVGkzdFVScnM1N2twSlBQNVpCUWt0QTZXNGdRQXkwU0g4dzZQRkpvaUpzU3lsRT0KWC1SZWNlaXZlZDogYnkgMTAuMjIzLjE0MS4xNDggd2l0aCBTTVRQIGlkIG8yMG1yNTU3NDY2N3dyYi4zNS4xNTA4Njk5MTUxODI0OwogU3VuLCAyMiBPY3QgMjAxNyAxMjowNTo1MSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8Njg5MTIwMS5vbzJtNzFzbFhnQGdpZ2E+IDxDQStuUG5NejZpSnF0MHRzcU5aPVQyQm13K2NnTnlVNGgtPTRnM2dzdUgyWjhuM2RpVWdAbWFpbC5nbWFpbC5jb20+CiA8NzI1NTU2NS40a2s2T0c0NGVwQGdpZ2E+CkluLVJlcGx5LVRvOiA8NzI1NTU2NS40a2s2T0c0NGVwQGdpZ2E+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFN1biwgMjIgT2N0IDIwMTcgMTk6MDU6NDAgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk14TkR5M09tbWJXTUJWdVRUVzJuUWNQckI0NG5pKytqNk1rWkRtTDl3V0dQZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IG5leHQgY2FuZGlkYXRlcyBmb3IgR2l0IG1pZ3JhdGlvbgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSJmNDAzMDQ1ZjRmYWUwNDdhYzMwNTVjMjc2NWQ5IgoKLS1mNDAzMDQ1ZjRmYWUwNDdhYzMwNTVjMjc2NWQ5CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCk9uIFN1biAyMiBPY3QgMjAxNyBhdCAxNzo0MiwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdybz0KdGU6Cgo+IGRpc2N1c3Npbmcgd2l0aCBpbmZyYSwgb25lIGRheSwgZXZlcnl0aGluZyBzaG91bGQgbW92ZSB0byBHaXRCb3g6IGJ1dCB0aGU9CnkKPiBkaWRuJ3QgcHJvdmlkZSBFVEEKPgo+IGxldCdzIGRpc2NvdmVyIEdpdEJveCBhbmQgc2VlIGlmIGl0IGRlc2VydmUgdG8gYXNrIGZvciBtaWdyYXRpb24gd2l0aG91dAo+IHdhaXRpbmcKCgpKdXN0IG1heSBiZSBjb25mdXNpbmcgdG8gY29tbWl0dGVycyBoYXZpbmcgdG8ganVtcCBiYWNrIGFuZCBmb3J0aCBiZXR3ZWVuCnRoZSB0d28uLi4gcGx1cyB0aGUgZGlmZmVyZW50IGZlYXR1cmUgc2V0cy4KCldlPUUyPTgwPTk5bGwgaGF2ZSBwZW9wbGUgZWl0aGVyIG5vdCBiZWluZyBhd2FyZSBvZiB0aGUgZ3JlYXRlciBmZWF0dXJlcyB3aT0KdGgKZ2l0Ym94IG9yIGhpdHRpbmcgdGhlIHdhbGwgb2YgbGVzc2VyIGZlYXR1cmVzIG9uIGdpdC13aXAtdXMKCkk9RTI9ODA9OTltIGZpbmUgd2l0aCBnaXZpbmcgYSBsaXR0bGUgdGltZSB0byBjaGVjayBvdXQgaG93IGdpdGJveCB3b3JrcywgYj0KdXQgSU1ITwppdCBkb2Vzbj1FMj04MD05OXQgbWFrZSBnb29kIHNlbnNlIHRvIHNwbGl0IGEgcHJvamVjdD1FMj04MD05OXMgcmVwb3MgYmV0d2U9CmVuIHRocmVlCmRpZmZlcmVudCBob3N0aW5ncy4uLiAob2sgd2hlbiB3ZSBtaWdyYXRlIG9mZiBzdm4gd2U9RTI9ODA9OTlsbCBiZSBkb3duIHRvID0KdHdvLi4uCmJ1dCB0aGF0IHN0aWxsIGRvZXNuPUUyPTgwPTk5dCBtYWtlIHNlbnNlKQoKCj4KPiBSZWdhcmRzLAo+Cj4gSGVydj1DMz1BOQo+Cj4gTGUgZGltYW5jaGUgMjIgb2N0b2JyZSAyMDE3LCAxNzo1MDoyMyBDRVNUIFN0ZXBoZW4gQ29ubm9sbHkgYSA9QzM9QTljcml0ID0KOgo+ID4gU2hvdWxkIHdlIHNlZSBhYm91dCBtb3Zpbmcgb3VyIGdpdC13aXAgdG8gZ2l0Ym94Pwo+ID4KPiA+IE9uIFN1biAyMiBPY3QgMjAxNyBhdCAxNToxMiwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gd3JvdGU6Cj4gPiA+IG5vdyB3ZSBoYXZlIDE1IGdpdCByZXBvczogOSBHaXQtV0lQICsgNiBHaXRCb3gKPiA+ID4gSSBkaWRuJ3QgdHJ5IHRoZSBnaXQgbW9kdWxlcyBzdHJhdGVneSB0byBoYXZlIGFuIGVhc3kgY2xvbmUvcHVsbDogaWYKPiA+ID4gc29tZWJvZHkKPiA+ID4gdHJpZWQsIHBsZWFzZSBzaGFyZSByZXN1bHRzCj4gPiA+Cj4gPiA+IGxldCdzIHNlZSB0aGUgbmV4dCBjYW5kaWRhdGVzIFsxXSwgd2hpY2ggYXJlIGxlc3Mgb2J2aW91cyB0aGFuIHRoZSAxNQo+ID4gPiBmaXJzdAo+ID4gPiBvbmVzOgo+ID4gPgo+ID4gPiAtIDIgc2l0ZXMgKE1hdmVuIGFuZCBEb3hpYSk6IGFueWJvZHkga25vd3MgaWYgQ01TIHN1cHBvcnRzIHNvdXJjZSBpbgo+IEdpdD8KPiA+ID4KPiA+ID4gLSAyIHBhcmVudCBwb21zOiBBU0YgYW5kIG1hdmVuLXBhcmVudC4gU2VlbXMgZmVhc2libGUgdG8gaGF2ZSAyIHJlcG9zPQouCj4gPiA+IE9ubHkKPiA+ID4KPiA+ID4gaXNzdWVzIEkgc2VlIGFyZToKPiA+ID4gICAtIGhvdyB0byBuYW1lIHRoZSByZXBvIGZvciBBU0Y/Cj4gPiA+ICAgLSBob3cgdG8gZ2V0IHRoZSBoaXN0b3J5IGZvciBtYXZlbi1wYXJlbnQsIGdpdmVuIHRoZXJlIHdlcmUgYSBsb3RzID0Kb2YKPiA+ID4KPiA+ID4gbW92ZXM/Cj4gPiA+Cj4gPiA+IC0gNiByZXNvdXJjZSBidW5kbGVzOiBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9hcGFjaGUtcmVzb3VyY2UtYnVuZGxlcz0KLwo+ID4gPiB3aGF0IGFib3V0IGRvaW5nIDEgZ2l0IHJlcG8gb25seSwgd2l0aCBvbmUgdW5pcXVlIGNvbW1vbiB2ZXJzaW9uPwo+ID4gPgo+ID4gPiAtIDIgc2tpbnM6IHNlZW1zIGZlYXNpYmxlIHRvIGhhdmUgMiByZXBvcyAoSSBkb24ndCBrbm93IGlmIGdldHRpbmcKPiBoaXN0b3J5Cj4gPiA+IGlzCj4gPiA+IGVhc3kgb3Igbm90KQo+ID4gPgo+ID4gPiAtIDUgZG94aWEgdG9vbHM6IDUgcmVwb3Mgc2VlbXMgcmVhc29uYWJsZQo+ID4gPgo+ID4gPiAtIDQxIHBsdWdpbnMKPiA+ID4gLSAyNiBzaGFyZWQgY29tcG9uZW50cwo+ID4gPiByZWFsbHksIHRoaXMgd2lsbCBiZSB0aGUgaGFyZCBwYXJ0cy4uLgo+ID4gPgo+ID4gPiAtIGFyY2hldHlwZXM6IGxvb2tzIGl0IGhhcyBtb3ZlZCB0byAxMCBpbmRlcGVuZGFudCBhcmNoZXR5cGVzCj4gPiA+Cj4gPiA+Cj4gPiA+IFRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpc3Qgc2VlbXMgZmVhc2libGU6IG5vdCBhcyBlYXN5IGFzIHByZXZpb3VzbHksCj4gYnV0Cj4gPiA+IGZlYXNpYmxlCj4gPiA+IEFyZSB0aGVyZSB2b2x1bnRlZXJzIHRvIHByZXBhcmUgcmVmZXJlbmNlIHRhcmdldCBnaXQgcmVwb3M/Cj4gPiA+Cj4gPiA+IElmIHdlIGNhbid0IGdldCB0aGUgam9iIGRvbmUgb24gdGhlc2UsIEkgdGhpbmsgdGhhdCB0YWxraW5nIGFib3V0Cj4gcGx1Z2lucwo+ID4gPiArc2hhcmVkK2FyY2hldHlwZXMgaXMganVzdCBhIHdhc3RlIG9mIHRpbWUKPiA+ID4KPiA+ID4gUmVnYXJkcywKPiA+ID4KPiA+ID4gSGVydj1DMz1BOQo+ID4gPgo+ID4gPgo+ID4gPiBbMV0gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9HaXQrTWlncmF0aW9uCj4gPiA+Cj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Cj4gPiA+IC0tCj4gPgo+ID4gU2VudCBmcm9tIG15IHBob25lCj4KPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPiAtLQpTZW50IGZyb20gbXkgcGhvbmUKCi0tZjQwMzA0NWY0ZmFlMDQ3YWMzMDU1YzI3NjVkOS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MjI0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBPY3QgMTIgMDY6MjE6NTMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjI0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDY4MkREMTAyOEEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAxMiBPY3QgMjAxNyAwNjoyMTo1MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDYxODUgaW52b2tlZCBieSB1aWQgNTAwKTsgMTIgT2N0IDIwMTcgMDY6MjE6NTMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU5ODQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTIgT2N0IDIwMTcgMDY6MjE6NTMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1OTcyIGludm9rZWQgYnkgdWlkIDk5KTsgMTIgT2N0IDIwMTcgMDY6MjE6NTIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDEyIE9jdCAyMDE3IDA2OjIxOjUyICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRDA0RTIxODQ5QUQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDEyIE9jdCAyMDE3IDA2OjIxOjUxICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi44NzkKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi44NzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBHRXNHMjdEdUhlNWkgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsIDEyIE9jdCAyMDE3IDA2OjIxOjQ2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd20wLWY0OS5nb29nbGUuY29tIChtYWlsLXdtMC1mNDkuZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjQ5XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDBEMjYzNUY1RkQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDEyIE9jdCAyMDE3IDA2OjIxOjQ2ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNDkuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgaTEyNHNvMTAxNzM3NDZ3bWYuMwogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDExIE9jdCAyMDE3IDIzOjIxOjQ2IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPVFCcFNwVTNQdktINXA1aitVYXBydGxlUGg0MklBeTR3S0hUUXgrOE1rT2c9OwogICAgICAgIGI9czB4N0dBQXVWYzZINzNZcmk5cDIwd3VuNG52NmhWdnI5ZnE0ejZEcVFqYktxYmUwVmlxVEM2RnhyNE13bjMzR1JaCiAgICAgICAgIHZHTm5lTjJERjFFRTBwZGpoZzR2V3czZFc4WElnd3BiNEFyTjJ0elU4bHpDbmhYNXloOXV5UWR5NDBhZkRxL1JtanhRCiAgICAgICAgIEJMMG1HV0Q1bm9yc2pEUFFtSnEvV01OT05sRWxLTUorRXpFdmR6RXM2RjJEeGh6UlZEcXY4ekhEeU5uTFliNXpwM1daCiAgICAgICAgIC84VVJZRWhkdXV3RXJrR2Jqd1FPZkp4ZkNWQjhBVDBSQWNBR0J2ZVpPTHhiRlhZTkJmTEwvbHNGaHY4Q0dtUGhIUXliCiAgICAgICAgIGIrTTI5R2dtbEVXWDh4TU11UUhKZzRWOWx0ZjJDck1ZdE15aFRyclUrMklLZzU5bElHZllYQTdGMkkrbkZ0QzFUQ2ExCiAgICAgICAgIGlyVEE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPVFCcFNwVTNQdktINXA1aitVYXBydGxlUGg0MklBeTR3S0hUUXgrOE1rT2c9OwogICAgICAgIGI9dHl2cVc1aXI4WmdLU2U3eWNyRXMyd1RWUHRRandFM0tadU00NDVoNlhjQ0QvTEdvTWsvN3dOdkxKWlRDOXVoNElNCiAgICAgICAgIHR6UWJNNmZoTDNKRjdCS2tRNzhxNkRqaUk0RnJkWDRjY3RJUVNKQlNKS21vRlBYaEpDN09SbWZWekdJVDFmZ2M1eXhtCiAgICAgICAgIGVvOXNNK2huREpuQThYZG1SMG9xaDBnOUpselZ5bGZPdE9wdkNEbmhmd3l4cXZSZGY2bldxaWxJL2dMWWJxSHdzT1hNCiAgICAgICAgIEN4aGVRYnUyL3haa1gvU0ZrY2ZxTndQWFhpWUNXaFBvTkJGSFQwa0Nib2NudFlYZFc3MmgwclZ4OWUrQml6b2lEdUNICiAgICAgICAgIHVaSjJvR3Jpd1FFdzJXT0Y2UEdObEJOZ1lyK3Z0YVRTQzJHOUhDS0lOSjFSZ1pyejllUGxxaEk3bHNjYUorZFNkWVZVCiAgICAgICAgIFE2M2c9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVUvQW9meElEbUhhNnB5Qk9Jcy8xdkM1dGcrUldWR052alpWWDlIVHhyenNQTFhmQk41Cgl0TktCbVZxcDFRb0R3SVpCRlVraWNJK29iQytuZ3JyL2ZYdGxKVE5tQ0E9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQWtvQnlnbGtxbWVmWS93NFVBMTVVTHRQNmlRTDdpVlUrQ3lOUWlxK3l4OUdGbG5NdExrNzVNOWk4Z2FkMktleXEvNWo5NFpnMkthbHhubFErakNQRT0KWC1SZWNlaXZlZDogYnkgMTAuMjIzLjE4Mi4xMzQgd2l0aCBTTVRQIGlkIGo2bXIxMDI4OTc1d3JlLjE1MC4xNTA3Nzg5MzA1MzcwOwogV2VkLCAxMSBPY3QgMjAxNyAyMzoyMTo0NSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgogPENBK25Qbk13MXc5Nj1OU0xzRWt4ZEprSnUwalkzMmFRODcxK3RxOVl2akdSRFlBRUpCd0BtYWlsLmdtYWlsLmNvbT4KIDxvcC55N3lyNTRzZ2tka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4gPDM2NzA5MDcuV2ZGQ0dWZzRsdEBnaWdhPgpJbi1SZXBseS1UbzogPDM2NzA5MDcuV2ZGQ0dWZzRsdEBnaWdhPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBUaHUsIDEyIE9jdCAyMDE3IDA2OjIxOjM0ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NeE9wOW13dHowaXRSU2dYVmRGUExLN3BBQXh2SnJUV2I3YlpOR0JlaGQtRXdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iZjQwMzA0Mzg5MzI4ZjE1YmVmMDU1YjUzOGQ3MyIKCi0tZjQwMzA0Mzg5MzI4ZjE1YmVmMDU1YjUzOGQ3MwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPayBhcyByZWxlYXNlIG1hbmFnZXIgSSBhbSBjYW5jZWxsaW5nIHRoaXMgdm90ZS4gST1FMj04MD05OWxsIHNlZSBhYm91dCBzcGk9Cm5uaW5nCjMuNS4yCgpPbiBUaHUgMTIgT2N0IDIwMTcgYXQgMDI6NTEsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cm89CnRlOgoKPiBMZSBtZXJjcmVkaSAxMSBvY3RvYnJlIDIwMTcsIDIzOjQ3OjU0IENFU1QgUm9iZXJ0IFNjaG9sdGUgYSA9QzM9QTljcml0IDoKPiA+IEkgdGhpbmsgdGhlIGNvbmNsdXNpb24gaXM6IDMuNS4xIGlzIG5vdCBjb3JyZWN0Cj4gPgo+ID4gaXQgc2hvdWxkIGVpdGhlciBiZToKPiA+IDMuNS4yIHdpdGhvdXQgdGhlIDIgY2xhc3Nsb2FkZXIgcmVsYXRlZCBpc3N1ZXMuCj4gaWRlYWxseSB3aXRoIGFuIG9wdGlvbiB0byBhY3RpdmF0ZSB0aGUgY2xhc3Nsb2FkZXIgY2hhbmdlcyAoZm9yIHBlb3BsZQo+IGtub3dpbmcKPiB3aGF0IHRoZXkgYXJlIGRvaW5nIG9yIHdhbnRpbmcgdG8gdGVzdCBtb2RlIG1vcmUgd2lkZWx5KQo+Cj4gPiBvcgo+ID4gMy42LjAgaW5jbHVkaW5nIHRoZSBjbGFzc2xvYWRlciByZWxhdGVkIGlzc3VlcywgYnV0IHByb2JhYmx5IGltcHJvdmVkCj4gd2l0aAo+ID4gYSBzeXN0ZW0gcHJvcGVydHkgdG8gc3dpdGNoIGJhY2sgdG8gdGhlIDMuNS4wLWJlaGF2aW9yLiBXZSBhbHNvIG5lZWQgdG8KPiA+IGltcHJvdmUgSVRzIGFuZCBkb2N1bWVudGF0aW9uLgo+ID4KPiA+IFNpbmNlIHdlIG5lZWQgdG8gbWFrZSBhIG5ldyByZWxlYXNlIGFueXdheSBJIHdvdWxkIGxpa2UgdG8gc3VnZ2VzdCB0byBnPQpvCj4gPiBmb3IgdGhlIGZpcnN0IG9wdGlvbiwgYmVjYXVzZSBzb21lIGNsYWltIDMuNS4wIGlzIGNvcnJ1cHQgYW5kIHRoZSByZWxhdD0KZWQKPiA+IGlzc3VlIGlzIGFscmVhZHkgZml4ZWQgZm9yIHF1aXRlIHNvbWUgdGltZS4KPiArMSAoc2FkbHkpCj4KPiBSZWdhcmRzLAo+Cj4gSGVydj1DMz1BOQo+Cj4gPiBUaGlzIHNob3VsZCBnaXZlIHVzIG1vcmUgdGltZSBoYXZlIGEgYmV0dGVyIGxvb2sgYXQgdGhlc2UgY2xhc3Nsb2FkZXIKPiA+IGlzc3Vlcy4KPiA+Cj4gPiBSb2JlcnQKPiA+Cj4gPiBPbiBXZWQsIDExIE9jdCAyMDE3IDA5OjQ2OjI1ICswMjAwLCBTdGVwaGVuIENvbm5vbGx5Cj4gPgo+ID4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiBJPUUyPTgwPTk5ZCByZWFsbHkgbGlrZSBpZiBzb21lYm9keSBjb3VsZCBkcmFmdCB0aGUgcmVsZWFzZSBub3RlcyBmb3I9CiB0aGUgdHdvCj4gPiA+IGRpZmZlcmVudCBjbGFzc2xvYWRlciBjaGFuZ2VzLiBJdCB3aWxsIG1ha2UgaXQgZWFzaWVyIHRvIGRlY2lkZSB3aGV0aD0KZXIKPiA+ID4gdG8KPiA+ID4gcm9sbCB3aXRoIHRoaXMgb3IgYnVtcCBtaW5vciB3aXRoIChpZiBJIHJlY2FsbCBjb3JyZWN0bHkpIHRoZQo+ID4gPiBjb3JyZXNwb25kaW5nCj4gPiA+IGRyb3Agb2YgSmF2YSA3IHBlciBvdXIgcG9saWN5IG9uIEpWTXMgd2l0aCBtaW5vciB2ZXJzaW9uIGJ1bXAKPiA+ID4KPiA+ID4gT24gV2VkIDExIE9jdCAyMDE3IGF0IDA3OjMzLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mPQpyPgo+IHdyb3RlOgo+ID4gPj4gKzEKPiA+ID4+IGV2ZW50dWFsbHkgYWRkaW5nIGEgZmxhZyBvciBzeXN0ZW0gcHJvcGVydHkgdG8gYWN0aXZhdGUgdGhlIG5ldwo+ID4gPj4gYmVoYXZpb3VyCj4gPiA+Pgo+ID4gPj4gdGhpcyByZW1lbWJlcnMgbWUgb2YgdGhlIGlkZWEgcmVnYXJkaW5nIGZsYWdzIHRvIHN1cHBvcnQgbmV3IGJldGEKPiA+ID4+IGZlYXR1cmVzCj4gPiA+Pgo+ID4gPj4gUmVnYXJkcywKPiA+ID4+Cj4gPiA+PiBIZXJ2PUMzPUE5Cj4gPiA+Pgo+ID4gPj4gTGUgbWVyY3JlZGkgMTEgb2N0b2JyZSAyMDE3LCAwODoxMzoxMyBDRVNUIEFuZGVycyBIYW1tYXIgYSA9QzM9QTljcmk9CnQgOgo+ID4gPj4gPiBJJ20gZmVlbGluZyBzdHJvbmdlciBhbmQgc3Ryb25nZXIgYWJvdXQgbm90IGhhdmluZyB0aGlzIGNoYW5nZSBpbiA9CmEKPiA+ID4+Cj4gPiA+PiBidWdmaXgKPiA+ID4+Cj4gPiA+PiA+IHJlbGVhc2UuIFdoeSBub3QgZ28gZm9yIHYzLjYuMCBpZiB3ZSBkZWNpZGUgdGhhdCB0aGUgY2xhc3MgbG9hZGluZwo+ID4gPj4KPiA+ID4+IGNoYW5nZQo+ID4gPj4KPiA+ID4+ID4gaXMgdGhlIHdheSB0byBnbz8gQW5kIGtlZXAgYnVnZml4IHJlbGVhc2VzIGZvciBqdXN0IGJ1Z2ZpeGVzLgo+ID4gPj4gPgo+ID4gPj4gPiAvQW5kZXJzCj4gPiA+PiA+Cj4gPiA+PiA+IE9uIFdlZCwgT2N0IDExLCAyMDE3IGF0IDM6NDMgQU0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8Cj4gaGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID4gPj4gPgo+ID4gPj4gPiB3cm90ZToKPiA+ID4+ID4gPiBwZXJoYXBzIHdlIHNob3VsZCBjcmVhdGUgYSBXaWtpIHBhZ2UgZm9yCj4gPiA+Pgo+ID4gPj4gamF2YS5sYW5nLkNsYXNzTm90Rm91bmRFeGNlcHRpb24KPiA+ID4+Cj4gPiA+PiA+ID4gYW5kCj4gPiA+PiA+ID4gbGlzdCB0aGUgcGx1Z2lucyB3aXRoIGtub3duIGlzc3VlcyBhbmQgbWluaW11bSBmaXhlZCB2ZXJzaW9uCj4gPiA+PiA+ID4KPiA+ID4+ID4gPiB0byBiZSBhZGRlZCBpbgo+ID4gPj4KPiA+ID4+Cj4gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9FcnJvcnMrYW5kK1NvbHV0aW9ucwo+ID4gPj4KPiA+ID4+ID4gPiBSZWdhcmRzLAo+ID4gPj4gPiA+Cj4gPiA+PiA+ID4gSGVydj1DMz1BOQo+ID4gPj4gPiA+Cj4gPiA+PiA+ID4gTGUgbWVyY3JlZGkgMTEgb2N0b2JyZSAyMDE3LCAwMjo1Mjo1MyBDRVNUIEhlcnY9QzM9QTkgQk9VVEVNWSBhID0KPUMzPUE5Y3JpdCA6Cj4gPiA+PiA+ID4gPiBJSVVDLCBpdCdzIE1ERVBMT1ktMjIxIGFib3V0Cj4gPiA+Pgo+ID4gPj4gbmV0LmZsZXhtb2pvcy5vc3M6ZmxleG1vam9zLW1hdmVuLXBsdWdpbgo+ID4gPj4KPiA+ID4+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTURFUExPWS0yMjEKPiA+ID4+ID4gPiA+Cj4gPiA+PiA+ID4gPiBSZWdhcmRzLAo+ID4gPj4gPiA+ID4KPiA+ID4+ID4gPiA+IEhlcnY9QzM9QTkKPiA+ID4+ID4gPiA+Cj4gPiA+PiA+ID4gPiBMZSBtYXJkaSAxMCBvY3RvYnJlIDIwMTcsIDIwOjQ4OjEzIENFU1QgUm9iZXJ0IFNjaG9sdGUgYSA9QzM9Cj1BOWNyaXQgOgo+ID4gPj4gPiA+ID4gPiBGWUksIE1ERVBMT1ktMTIxIG1lbnRpb25zIGFub3RoZXIgcGx1Z2luIGJlaW5nIGhpdCBieSB0aGUKPiA+ID4+Cj4gPiA+PiBjbGFzc2xvYWRlcgo+ID4gPj4KPiA+ID4+ID4gPiA+ID4gY2hhbmdlcy4KPiA+ID4+ID4gPiA+ID4KPiA+ID4+ID4gPiA+ID4gUm9iZXJ0Cj4gPiA+PiA+ID4gPiA+Cj4gPiA+PiA+ID4gPiA+Cj4gPiA+PiA+ID4gPiA+IE9uIFR1ZSwgMDMgT2N0IDIwMTcgMjA6MjI6MTggKzAyMDAsIEFybmF1ZCBIPUMzPUE5cml0aWVyIDwKPiA+ID4+ID4gPgo+ID4gPj4gPiA+IGFoZXJpdGllckBnbWFpbC5jb20+Cj4gPiA+PiA+ID4KPiA+ID4+ID4gPiA+ID4gd3JvdGU6Cj4gPiA+PiA+ID4gPiA+ID4gVGhhbmtzIFN0ZXBoZW4KPiA+ID4+ID4gPiA+ID4gPgo+ID4gPj4gPiA+ID4gPiA+IE9uIFR1ZSwgT2N0IDMsIDIwMTcgYXQgODoxOCBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPiA+PiA+ID4gPiA+ID4KPiA+ID4+ID4gPiA+ID4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+ID4+ID4gPiA+ID4gPj4gSSBhbSBob3BpbmcgSSBjYW4gZmluZCBzb21lIHRpbWUgdG8gZG8gYSBmaW5hbCByb3VuZCBvZgo+ID4gPj4KPiA+ID4+IGV4cGVyaW1lbnRzCj4gPiA+Pgo+ID4gPj4gPiA+IGFuZAo+ID4gPj4gPiA+Cj4gPiA+PiA+ID4gPiA+ID4+IHRoZW4gY2xvc2UgdGhlIHZvdGUgd2l0aCBzdWNjZXNzIGFuZCBwdWJsaXNoLgo+ID4gPj4gPiA+ID4gPiA+Pgo+ID4gPj4gPiA+ID4gPiA+PiBPbiBUdWUgMyBPY3QgMjAxNyBhdCAxMToxMywgQXJuYXVkIEg9QzM9QTlyaXRpZXIgPAo+ID4gPj4KPiA+ID4+IGFoZXJpdGllckBnbWFpbC5jb20+Cj4gPiA+Pgo+ID4gPj4gPiA+IHdyb3RlOgo+ID4gPj4gPiA+ID4gPiA+PiA+IEBTdGVwaGVuIFdoYXQgc2hvdWxkIHdlIGRvIG5vdyA/Cj4gPiA+PiA+ID4gPiA+ID4+ID4KPiA+ID4+ID4gPiA+ID4gPj4gPgo+ID4gPj4gPiA+ID4gPiA+PiA+IE9uIFR1ZSwgU2VwIDE5LCAyMDE3IGF0IDM6MTQgQU0sIE9saXZpZXIgTGFteSA8Cj4gPiA+Pgo+ID4gPj4gb2xhbXlAYXBhY2hlLm9yZz4KPiA+ID4+Cj4gPiA+PiA+ID4gPiA+ID4+IHdyb3RlOgo+ID4gPj4gPiA+ID4gPiA+PiA+PiBIaQo+ID4gPj4gPiA+ID4gPiA+PiA+PiBTb3JyeSBhIGJpdCBvdXQgb2YgdGltZSBBVE0gZm9yIHRlc3RpbmcgdGhpcy4KPiA+ID4+ID4gPiA+ID4gPj4gPj4gV2VsbCBJIHRydXN0IEFybmF1ZCB0ZXN0aW5nIHRoYXQgZXNwZWNpYWxseSBpZiB0aGlzCj4gPiA+Pgo+ID4gPj4gaW1wcm92ZQo+ID4gPj4gdGhlCj4gPiA+Pgo+ID4gPj4gPiA+ID4gPiA+PiA+PiBwZXJmb3JtYW5jZQo+ID4gPj4gPiA+ID4gPiA+PiA+PiBvZiB0aGlzIHZlcnkgZ3JlYXQvYXdlc29tZS91c2VycyBvcmllbnRlZCBwbHVnaW4gOlAKPiA+ID4+ID4gPiA+ID4gPj4gPj4KPiA+ID4+ID4gPiA+ID4gPj4gPj4gT24gMTMgU2VwdGVtYmVyIDIwMTcgYXQgMjI6MTksIEFybmF1ZCBIPUMzPUE5cml0aWVyCj4gPiA+PiA+ID4gPiA+ID4+ID4+IDxhaGVyaXRpZXJAYXBhY2hlLm9yZz4KPiA+ID4+ID4gPiA+ID4gPj4gPj4KPiA+ID4+ID4gPiA+ID4gPj4gPj4gd3JvdGU6Cj4gPiA+PiA+ID4gPiA+ID4+ID4+ID4gRGFtbmVkLCBjYW4ndCB3ZSBiZSBhbm9ueW1vdXMgb24gR2l0aHViID8KPiA+ID4+ID4gPiA+ID4gPj4gPj4gPiBJIG1haW50YWluIGl0IGlzIGEgYmlnIHdvcmQsIEknbSB0cnlpbmcgdG8gZml4IG1vcmUKPiBidWdzCj4gPiA+Pgo+ID4gPj4gdGhhbgo+ID4gPj4KPiA+ID4+ID4gPiA+ID4gPj4gPj4gPiBJCj4gPiA+PiA+ID4gPiA+ID4+ID4+ID4gYWRkCj4gPiA+PiA+ID4gPiA+ID4+Cj4gPiA+PiA+ID4gPiA+ID4+IG5ldwo+ID4gPj4gPiA+ID4gPiA+Pgo+ID4gPj4gPiA+ID4gPiA+PiA+PiA+IG9uZXMKPiA+ID4+ID4gPiA+ID4gPj4gPj4gPiBJIGFkZGVkIE9sZWcgaW4gdGhlIGxvb3AgYXMgaGUgY29udHJpYnV0ZWQgYSBsb3Qgb24gPQppdAo+ID4gPj4KPiA+ID4+IHRvbwo+ID4gPj4KPiA+ID4+ID4gPiA+ID4gPj4gPj4gPiBJIGRpZCBhIHF1aWNrIHRlc3QgdG8gYnVpbGQgb24gSmVua2lucyAyLjYwLjMgb3VyCj4gbWF2ZW4KPiA+ID4+Cj4gPiA+PiBjb3JlCj4gPiA+Pgo+ID4gPj4gPiA+IHdpdGgKPiA+ID4+ID4gPgo+ID4gPj4gPiA+ID4gPiA+PiB0aGUKPiA+ID4+ID4gPiA+ID4gPj4KPiA+ID4+ID4gPiA+ID4gPj4gPj4gRXZpbAo+ID4gPj4gPiA+ID4gPiA+PiA+Pgo+ID4gPj4gPiA+ID4gPiA+PiA+PiA+IE1hdmVuIHBsdWdpbiAyLjE3IG9uIGEgbG9jYWwgU1NIIGFnZW50IGFuZCBpdCBpcyBvawo+ID4gPj4gPiA+ID4gPiA+PiA+PiA+IEJ1dCBpdCBpcyByZWFsbHkgYSBxdWljayB0ZXN0IC4uLgo+ID4gPj4gPiA+ID4gPiA+PiA+PiA+Cj4gPiA+PiA+ID4gPiA+ID4+ID4+ID4gQ2hlZXJzCj4gPiA+PiA+ID4gPiA+ID4+ID4+ID4KPiA+ID4+ID4gPiA+ID4gPj4gPj4gPgo+ID4gPj4gPiA+ID4gPiA+PiA+PiA+Cj4gPiA+PiA+ID4gPiA+ID4+ID4+ID4gT24gV2VkLCBTZXAgMTMsIDIwMTcgYXQgMTA6MDcgQU0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4gPj4gPiA+ID4gPiA+PiA+PiA+Cj4gPiA+PiA+ID4gPiA+ID4+ID4+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+PiA+ID4gPiA+ID4+ID4+ID4gPiBPbiAxMyBTZXB0ZW1iZXIgMjAxNyBhdCAwMTowNSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPiA+PiA+ID4gPiA+ID4+ID4+ID4gPgo+ID4gPj4gPiA+ID4gPiA+PiA+PiA+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+PiA+ID4gPiA+ID4+ID4+ID4gPj4gT24gMTMgU2VwdGVtYmVyIDIwMTcgYXQgMDA6MjYsIEFuZGVycyBIYW1tYXIKPiA+ID4+ID4gPiA+ID4gPj4gPj4gPiA+PiA8YW5kZXJzQGhhbW1hci5uZXQ+Cj4gPiA+PiA+ID4gPiA+ID4+ID4+Cj4gPiA+PiA+ID4gPiA+ID4+ID4+IHdyb3RlOgo+ID4gPj4gPiA+ID4gPiA+PiA+PiA+ID4+PiBPbiBUdWUsIFNlcCAxMiwgMjAxNyBhdCA4OjU0IFBNLCBTdGVwaGVuIENvbm5vbGw9CnkKPiA8Cj4gPiA+PiA+ID4gPiA+ID4+ID4+ID4gPj4+Cj4gPiA+PiA+ID4gPiA+ID4+ID4+ID4gPj4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPj4gPiA+ID4gPiA+PiA+PiA+ID4+PiA+IEhhdmUgd2UgZ290IGFueSBmZWVkYmFjayBmcm9tIHRoZSBlbWJlZGRlcgo+ID4gPj4KPiA+ID4+IGludGVncmF0aW9ucwo+ID4gPj4KPiA+ID4+ID4gPiB5ZXQ/Cj4gPiA+PiA+ID4KPiA+ID4+ID4gPiA+ID4gPj4gPj4gPiA+Pj4gSSBoYXZlbid0IGhlYXJkIGFueXRoaW5nIGZyb20gdGhlIG0yZSBwZW9wbGUuCj4gTWF5YmUKPiA+ID4+Cj4gPiA+PiB3ZQo+ID4gPj4KPiA+ID4+ID4gPiBuZWVkIHRvCj4gPiA+PiA+ID4KPiA+ID4+ID4gPiA+ID4gPj4gcGluZwo+ID4gPj4gPiA+ID4gPiA+Pgo+ID4gPj4gPiA+ID4gPiA+PiA+PiA+IHRoZW0KPiA+ID4+ID4gPiA+ID4gPj4gPj4gPgo+ID4gPj4gPiA+ID4gPiA+PiA+PiA+ID4+PiBkaXJlY3RseS4gSSBjYW4gY29udGFjdCBGcmVkIEJyaWNvbi4KPiA+ID4+ID4gPiA+ID4gPj4gPj4gPiA+Pj4KPiA+ID4+ID4gPiA+ID4gPj4gPj4gPiA+Pj4gL0FuZGVycwo+ID4gPj4gPiA+ID4gPiA+PiA+PiA+ID4+Cj4gPiA+PiA+ID4gPiA+ID4+ID4+ID4gPj4gUGxlYXNlIGRvLCBhbHNvIGlmIGFueW9uZSBoYXMgYSBjb250YWN0IGluIG5ldGJlYT0KbnMKPiA+ID4+Cj4gPiA+PiBvcgo+ID4gPj4KPiA+ID4+ID4gPiBpbnRlbGxpago+ID4gPj4gPiA+Cj4gPiA+PiA+ID4gPiA+ID4+IGFuZAo+ID4gPj4gPiA+ID4gPiA+Pgo+ID4gPj4gPiA+ID4gPiA+PiA+PiA+IGNvdWxkCj4gPiA+PiA+ID4gPiA+ID4+ID4+ID4KPiA+ID4+ID4gPiA+ID4gPj4gPj4gPiA+PiBsZXQgdGhlbSBrbm93IHdlJ2QgbGlrZSBlaXRoZXIgZmVlZGJhY2sgb3IgIndlJ3JlCj4gb2sKPiA+ID4+Cj4gPiA+PiBpZgo+ID4gPj4KPiA+ID4+ID4gPiA+ID4gPj4gPj4gPiA+PiBNTkctNjI3NQo+ID4gPj4gPiA+ID4gPiA+PiA+Pgo+ID4gPj4gPiA+ID4gPiA+PiA+PiBtYWtlcwo+ID4gPj4gPiA+ID4gPiA+PiA+Pgo+ID4gPj4gPiA+ID4gPiA+PiA+PiA+ID4+IHRyb3VibGUgZm9yIHVzLCBnbyBhaGVhZCBhbmQgcmVsZWFzZSIuIEknZCBsaWtlIHQ9Cm8KPiA+ID4+Cj4gPiA+PiBjbG9zZQo+ID4gPj4KPiA+ID4+ID4gPiA+ID4gPj4gPj4gPiA+PiB0aGUKPiA+ID4+ID4gPiA+ID4gPj4KPiA+ID4+ID4gPiA+ID4gPj4gdm90ZQo+ID4gPj4gPiA+ID4gPiA+PiBvbgo+ID4gPj4gPiA+ID4gPiA+Pgo+ID4gPj4gPiA+ID4gPiA+PiA+PiA+IEZyaWRheQo+ID4gPj4gPiA+ID4gPiA+PiA+PiA+Cj4gPiA+PiA+ID4gPiA+ID4+ID4+ID4gPj4gMTM6MDAgVVRDLgo+ID4gPj4gPiA+ID4gPiA+PiA+PiA+ID4KPiA+ID4+ID4gPiA+ID4gPj4gPj4gPiA+IE9saXZpZXIgLyBBcm5hdWQsIGhhdmUgZWl0aGVyIG9mIHlvdSBoYWQgYSBjaGFuY2UgPQp0bwo+ID4gPj4KPiA+ID4+IHRlc3QKPiA+ID4+Cj4gPiA+PiA+ID4gdGhpcwo+ID4gPj4gPiA+Cj4gPiA+PiA+ID4gPiA+ID4+IHdpdGgKPiA+ID4+ID4gPiA+ID4gPj4KPiA+ID4+ID4gPiA+ID4gPj4gPj4gdGhlCj4gPiA+PiA+ID4gPiA+ID4+ID4+Cj4gPiA+PiA+ID4gPiA+ID4+ID4+ID4gPiBldmlsIHByb2plY3QgdHlwZVsxXSBhcyB5b3UgdHdvIHNlZW0gdG8gYmUgdGhlCj4gYWN0aXZlCj4gPiA+PiA+ID4gPiA+ID4+Cj4gPiA+PiA+ID4gPiA+ID4+IG1haW50YWluZXJzWzJdCj4gPiA+PiA+ID4gPiA+ID4+Cj4gPiA+PiA+ID4gPiA+ID4+ID4+ID4gPiBbMV06Cj4gPiA+PiBodHRwczovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuaWUvMjAxMy8xMS9qZW5raW5zLT4KPiA+ID4+Cj4gPiA+PiA+ID4gPiA+ID4+ID4+ID4gPiA+IG1hdmVuLWpvYi10eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sIFsyXToKPiA+ID4+IGh0dHBzOi8vZ2l0aHViLmNvbS9qZW5raW5zY2kvbWF2ZW4tcGx1Z2luL2NvbW1pdHMvbWFzdGVyCj4gPiA+Pgo+ID4gPj4gPiA+ID4gPiA+PiA+PiA+IC0tCj4gPiA+PiA+ID4gPiA+ID4+ID4+ID4KPiA+ID4+ID4gPiA+ID4gPj4gPj4gPiBBcm5hdWQKPiA+ID4+ID4gPiA+ID4gPj4gPj4KPiA+ID4+ID4gPiA+ID4gPj4gPj4gLS0KPiA+ID4+ID4gPiA+ID4gPj4gPj4gT2xpdmllciBMYW15Cj4gPiA+PiA+ID4gPiA+ID4+ID4+IGh0dHA6Ly90d2l0dGVyLmNvbS9vbGFteSB8IGh0dHA6Ly9saW5rZWRpbi5jb20vaW4vb2xhbT0KeQo+ID4gPj4gPiA+ID4gPiA+PiA+Cj4gPiA+PiA+ID4gPiA+ID4+ID4gLS0KPiA+ID4+ID4gPiA+ID4gPj4gPiAtLS0tLQo+ID4gPj4gPiA+ID4gPiA+PiA+IEFybmF1ZCBIPUMzPUE5cml0aWVyCj4gPiA+PiA+ID4gPiA+ID4+ID4gaHR0cDovL2FoZXJpdGllci5uZXQKPiA+ID4+ID4gPiA+ID4gPj4gPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+ID4gPj4gPiA+ID4gPiA+PiA+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKPiA+ID4+ID4gPiA+ID4gPj4KPiA+ID4+ID4gPiA+ID4gPj4gLS0KPiA+ID4+ID4gPiA+ID4gPj4gU2VudCBmcm9tIG15IHBob25lCj4gPiA+Pgo+ID4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0KPiA+ID4+Cj4gPiA+PiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+PiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+Cj4gPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLQo+ID4gPj4KPiA+ID4+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+PiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Pgo+ID4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0KPiA+ID4+Cj4gPiA+PiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Pgo+ID4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0KPiA+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Pgo+ID4gPj4gLS0KPiA+ID4KPiA+ID4gU2VudCBmcm9tIG15IHBob25lCj4gPgo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4gLS0KU2VudCBmcm9tIG15IHBob25lCgotLWY0MDMwNDM4OTMyOGYxNWJlZjA1NWI1MzhkNzMtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDYzOC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgTm92IDI4IDA3OjI1OjUwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDYzOC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAxRTA1RjEwRjc3Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMjggTm92IDIwMTcgMDc6MjU6NTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzMzgzMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBOb3YgMjAxNyAwNzoyNTo0OSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzM1MDAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggTm92IDIwMTcgMDc6MjU6NDkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMzQ4NyBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IE5vdiAyMDE3IDA3OjI1OjQ4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAyOCBOb3YgMjAxNyAwNzoyNTo0OCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEQxNjM4QzMyQjEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDA3OjI1OjQ3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi4wOTgKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi4wOTggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0JfV0FNX0ZST01fTkFNRV9TSU5HTEVXT1JEPTAuMiwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMC4wMDEsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBHeTdzRXFWX2IySjYgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUdWUsIDI4IE5vdiAyMDE3IDA3OjI1OjQ2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd3IwLWYxNzAuZ29vZ2xlLmNvbSAobWFpbC13cjAtZjE3MC5nb29nbGUuY29tIFsyMDkuODUuMTI4LjE3MF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAzMEJDRTVGMTc3Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAwNzoyNTo0NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13cjAtZjE3MC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBzNDFzbzIzNDI1MTc3d3JjLjcKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAyNyBOb3YgMjAxNyAyMzoyNTo0NiAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD0yLys1c1VsK0EyK0ZSc0RiNkJ3UzB3ai85eXUxVnFpTnBNektJeVN5U3RrPTsKICAgICAgICBiPW45NGx2dzRpWlRHWDRqcUV1NCtySXJhOFdNclQ4SDZyTjlUYUx6SU9XbEZZL0RHN1NDT1NycG9hSm9oNzFpT2hKdgogICAgICAgICBRd1IyaUxub2VqK2Y5bUZBcHpPRHlqOUw5cGdkMHp1SUsrM0wzTHdGcHlydmhLVXpYaFBlbkQ2YTVNOHBaSlEyK1BNZAogICAgICAgICA2enNyQW5NUjhRNjkxK0dCKzJBOGk2cThJRktjMnRxblZCSFFlSlFxMTFIcmVUZml0blhmb2QzRGFSUGR3MVAwZ1ZaNgogICAgICAgICBoMjNaaXVnT0p6aSt5N1ZrWkNZQUVnbVQ3KzVSQWw4YTNTc09NOC8yMmhzdnZrbnp0TUxlUFZMTENTR1MzSUMrVjFFNQogICAgICAgICBpQ0IzSGR4bzVkMXB2R1c0dmZJWHNMbzhWZEZRMFZYNE4yQ2Q0a3BoODQ4ZmhkaDlEVkRGZXFEdVg2RC9tM1Z1YlFEUgogICAgICAgICBzRHBRPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD0yLys1c1VsK0EyK0ZSc0RiNkJ3UzB3ai85eXUxVnFpTnBNektJeVN5U3RrPTsKICAgICAgICBiPXJ2M0NkMTRIZTZFeURGcDQvUlptUzVBZ2p5aWV3azJZaWJaSURoL1VDWWJnZ2V0V1hJbm0xZ1NNYmRhckpnSllvbgogICAgICAgICBDMTc3VXczRUJyQ1pCWlh3M01YbVRYSC9GWDNPT2xpM0VWbEtWcmVJMmQ0aVVhNkJHczRvTkxxeEE1Y1JGU1dOOEpTMwogICAgICAgICB0NmNDR0M3YS9NTGYrVTdDY0pMTzE3RFY2SkNhWG1md1h0ZkVrMmU4RHFzVEpEV1JEL1k4RU40NjdCZ2U5T1E0aU91OQogICAgICAgICBwRjZLaXk4ZnhodHduRCtZb3hUdmM2M29NdDZpQjNxVDM0U3hyV1huMDRzQjl1a2tWRU8rWitHNGFld3NCN2J5Y3ZwKwogICAgICAgICA4VFkwNDNrd0YrNWQvVjR0R1BiNTJ5cnkvUHNucFU4eTVWbXFGSXZFVUYxeHAzZkZjUXMxTE9TL1F2Vmx4NnQ4UkZNYQogICAgICAgICBTZkdnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg0b0wxT3dubEFqb2NBUzdiSExsa2VKcC84bnlmZ1RCWndJQXQ2SFVZZ01pclBaMzV6MgoJYzRQRU1vMmxBUTViZ0lZdVdaYmQva0xsMXZuSlljNnpYLzlCeU9oaDh3PT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TVlubUxFbjN2Y21hczdXRnBZUFhVbkl6aXlsTWVwWnhmYkpMOERpSEtaaEpYeW00SWdJd0ZZQUxIcWVmNnNFMG56WHB4RDQzbXZaU05WejhvNDJTeTg9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xNzEuMTc3IHdpdGggU01UUCBpZCBzNDZtcjIwNTUzMTQ0d3JjLjE5NC4xNTExODUzOTM4NjM1OwogTW9uLCAyNyBOb3YgMjAxNyAyMzoyNTozOCAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8Q0ErblBuTXp2MG45VjA9amc0U0FjUEEwK01uRGtGZ0NGOFJ2SkN6Mkp5NlkrdD1GREZnQG1haWwuZ21haWwuY29tPgogPENBK25Qbk15QncxYUt6N09WZEJKY0IzNFpCUnI2SzljRTRrUlJ0Yk9TX0xXNWtQQ3VRQUBtYWlsLmdtYWlsLmNvbT4KIDxDQStuUG5NeWFRY0xPT21oMzU1Y0NfYW1TNUxjMVNudzFnd2F6OXJqM29renZ3dXRWMUFAbWFpbC5nbWFpbC5jb20+IDwxNTI2NjE3LjNjcDFjRERNOEtAZ2lnYT4KSW4tUmVwbHktVG86IDwxNTI2NjE3LjNjcDFjRERNOEtAZ2lnYT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyOCBOb3YgMjAxNyAwNzoyNToyNyArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXhPcjhMN2tGUmlBMUFVMmVCMktNRHRtRE9SOCtiTmItVzlYSGlpUXhmajZBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogRllJIElORlJBLTE1NTI0IGNyZWF0ZWQgZm9yIHRoZSBiZXR0ZXIgSmVua2lucyBVWApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTEzYzJmZGFmNmY5NzAwNTVmMDVlY2U0IgoKLS0wMDFhMTEzYzJmZGFmNmY5NzAwNTVmMDVlY2U0CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCk9uIFR1ZSAyOCBOb3YgMjAxNyBhdCAwNjo1MywgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdybz0KdGU6Cgo+IGF3ZXNvbWUhCj4gSXQgZXZlbiBzaG93cyB0aGUgb3dsIGljb24gOikKPgo+IG5vdywgZXZlcnkgYnVpbGQgIGxvb2tzIHRvIGZhaWwsIGFuZCBJIGNhbid0IG9wZW4gQmx1ZSBPY2VhbiB0byB0cnkgdG8KPiBmaWd1cmUKPiBvdXQgYXQgd2hpY2ggc3RlcC4gRnJvbSBsb2csIElJVUMsIHRoZXJlIGlzIGFuIGlzc3VlIHdpdGggSkRLIDk6IHRoYXQncyBpPQp0PwoKClllcyBqZGsgOSBvbiBXaW5kb3dzLiBHYXZpbiBhc2tlZCBDaHJpcyB0byBsb29rIGludG8gaXQuCgpJZiB5b3UgbG9vayBhdCBteSBidWlsZCBzZXJ2ZXJbMV0sIHRob3NlIGJ1aWxkcyBhbGwgd29yayBzbyB0aGUgYnVpbGQgaXMKZmluZSwganVzdCBuZWVkIHRoZSBlbnZpcm9ubWVudCBmaXhlZCA7LSkKClsxXSBodHRwczovL2plbmtpbnMub25lLWRhc2guY29tL2pvYi9tYXZlbi8KCgo+Cj4gV2UncmUgcmVhbGx5IGluIHRoZSByaWdodCBkaXJlY3Rpb246IHNvb24sIHdlJ2xsIGJlIHJlYWR5IHRvIHN0YXJ0IHBsdWdpbj0Kcwo+ICg0MAo+IHBsdWdpbnMpIGFuZCBzaGFyZWQgKDIwIGNvbXBvbmVudHMpIG1pZ3JhdGlvbi4uLgo+Cj4gUmVnYXJkcywKPgo+IEhlcnY9QzM9QTkKPgo+IExlIGx1bmRpIDI3IG5vdmVtYnJlIDIwMTcsIDExOjE2OjAzIENFVCBTdGVwaGVuIENvbm5vbGx5IGEgPUMzPUE5Y3JpdCA6Cj4gPiBQQVJUWSBQQVJUWSBQQVJUWSBUSU1FCj4gPgo+ID4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvCj4gPgo+ID4gT24gMjIgTm92ZW1iZXIgMjAxNyBhdCAwOTo0OCwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPgo+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+IFNjaGVkdWxlZCBmb3IgdGhlIE5vdmVtYmVyIDI2dGggdXBncmFkZTogaHR0cHM6Ly9jd2lraS5hcGFjaGUuCj4gPiA+IG9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvSU5GUkEvSmVua2lucytQbHVnaW4rVXBncmFkZXMKPiA+ID4KPiA+ID4gT24gMjEgTm92ZW1iZXIgMjAxNyBhdCAxNDo0NiwgQXJuYXVkIEg9QzM9QTlyaXRpZXIgPGFoZXJpdGllckBnbWFpbC5jPQpvbT4KPiB3cm90ZToKPiA+ID4+IHllYWggISEKPiA+ID4+Cj4gPiA+PiBPbiBUdWUsIE5vdiAyMSwgMjAxNyBhdCAyOjEwIFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+ID4+Cj4gPiA+PiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+ID4+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9JTkZSQS0xNTUyNAo+ID4gPj4gPgo+ID4gPj4gPiBIZXJ2PUMzPUE5IGl0IGlzIG5lYXJseSB0aW1lIHRvIHBhcnR5IQo+ID4gPj4KPiA+ID4+IC0tCj4gPiA+PiAtLS0tLQo+ID4gPj4gQXJuYXVkIEg9QzM9QTlyaXRpZXIKPiA+ID4+IGh0dHA6Ly9haGVyaXRpZXIubmV0Cj4gPiA+PiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+ID4gPj4gVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcgo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4gLS0KU2VudCBmcm9tIG15IHBob25lCgotLTAwMWExMTNjMmZkYWY2Zjk3MDA1NWYwNWVjZTQtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDI3Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgT2N0IDIwIDEyOjMzOjUyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI3Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyM0UzMDEwOTk1Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMjAgT2N0IDIwMTcgMTI6MzM6NTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2OTc0OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBPY3QgMjAxNyAxMjozMzo1MSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjk2NjQgaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgT2N0IDIwMTcgMTI6MzM6NTEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2OTY1MSBpbnZva2VkIGJ5IHVpZCA5OSk7IDIwIE9jdCAyMDE3IDEyOjMzOjUxIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAyMCBPY3QgMjAxNyAxMjozMzo1MSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDk3QjhGQzU0MTIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDIwIE9jdCAyMDE3IDEyOjMzOjUwICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS40NTIKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjQ1MiB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBIVE1MX09CRlVTQ0FURV8wNV8xMD0wLjAwMSwgS0FNX0xPVFNPRkhBU0g9MC4yNSwKCUtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44LCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDEsCglUUkFDS0VSX0lEPTEuMTAyXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgSjZzUzdXVkpOc09GIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJRnJpLCAyMCBPY3QgMjAxNyAxMjozMzo0OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdyMC1mMTczLmdvb2dsZS5jb20gKG1haWwtd3IwLWYxNzMuZ29vZ2xlLmNvbSBbMjA5Ljg1LjEyOC4xNzNdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMUREMDQ1RkQzMwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjAgT2N0IDIwMTcgMTI6MzM6NDkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd3IwLWYxNzMuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgeTM5c28xMTIzNTA0OXdyZC40CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjAgT2N0IDIwMTcgMDU6MzM6NDkgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Ry9BWHJNUmFEZ3ZjSnp5TTkwTmwyNEF6WUk2RVVxa0t5Y1BnRSt3RGUyTT07CiAgICAgICAgYj1TY0VuM3JBSUJIb3Y5emZRWXNuTUpBNExtTjdIVkh2Wmhtb1pab2dlbG9ISG9GaUZWbUkzbE1WWTVObkNSRjMxZVcKICAgICAgICAgQVNFVU9KdXcxWlk2RzNCZHVrZWtmcFpHQy9aT1FtVTJnY2xRVVY0ZFZPMG1TQ210U1lqKzdiK3hGZ3JjNTNTakU0cWIKICAgICAgICAgVkJyTjFrK2g1dVloYThtd0F0K0ViYmZybGltSEM0Mk1jSUdlUzNGVi9LZ1RuNEpVekQranJnUzJGNUJDTC9QYjdubHgKICAgICAgICAgM3JmeUhNVks4bXBJS0hqNXFtSlZrWm9pVnd3TXJtQk95SnJtcVpNSFp2cWhnZ1dWTkJRdnNWUjlST1d3VlJEeGVwUkYKICAgICAgICAgTTU1SUNzUkdVZmFydmFNQU5QWmFGUmEwT2lub1pxQndhaVR4RjIrQUpteC9XaHIwSHZvQTU3YVFWUEZsWHMwdnRrWDUKICAgICAgICAgVEZDZz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Ry9BWHJNUmFEZ3ZjSnp5TTkwTmwyNEF6WUk2RVVxa0t5Y1BnRSt3RGUyTT07CiAgICAgICAgYj1ZMzcrbGJYRmxxREJCdzNqSWwwZXZjRDFrTSt3dFRCMVFwUTQrelFlUnI2Uzgzcll1TU93OFR2TW9BSm1uemEva3QKICAgICAgICAgdlAvR1F3dlZXYk9VYUFiQkFhRFYxVHNyNnI3KzcvWjBOVHJiVXREUm1qRmtHaG83U2xxbTlmdnRqekNCV3hRT3hUa1gKICAgICAgICAgZVNzanVNcXNVa2h0REpLTGYzR05EaWhhS3ByQzRjQVU0eDlKNTlMZ1ZZOC9jOXhWWG0ySnNmZVEySGFCOGFlRU1HUEUKICAgICAgICAgNldLYkxMb1Y3TXhocFhvdnprVGFwOWFXMVVNMnUxRkp3dWRvWmdkK1VyQXROVnd4OHYyMThtTEVQQTBVbVpVd2hoNlEKICAgICAgICAgTmVRaDdFclgzbGhNSFR2UVd0b3psK2dMZXRoMDgvUnNmYksvTkZ4U0NNZ3o1clROK3lmWFZZUjMwdHZ4SWhUeVNvd0YKICAgICAgICAgcnREZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhV2Z0Yno0L1daQ1cwYWp5ZUZqK1U2akpTaEdDQWVtN3hTV0E3L0svbGNTN2VKMElTZUUKCUVrK050ZlVWOWxQcXkrMVZ0V1pEa1luNVVsN2JCbzNwdkgyZ1Y5emxuUT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtTQ0NPdk1iTk9WVk1Rb0tucGR2THVsK1RGWjJZa0g4OW1adGRtai9ZZzg1R0xIMEE3ZTB2dHJLWmxlWi9YWU01L3JoaTFiUndWR282bWJMQVI0WGlvPQpYLVJlY2VpdmVkOiBieSAxMC4yMjMuMTQxLjE0OCB3aXRoIFNNVFAgaWQgbzIwbXIxMTM0NDY1d3JiLjM1LjE1MDg1MDI4Mjc4MTM7CiBGcmksIDIwIE9jdCAyMDE3IDA1OjMzOjQ3IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yMjMuMTg3Ljggd2l0aCBIVFRQOyBGcmksIDIwIE9jdCAyMDE3IDA1OjMzOjQ3IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0ErblBuTXpLc2pxYU5VVEs4eml5UmNjanM3QWZjKy00MXNyUGpQSFk0a2J0azYtbnZBQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXd0am5aRS01M0FONTN4Rj1NZjZIWS1GYkdZd1pBVXczRVVLSEE0ZUtCNTJRQG1haWwuZ21haWwuY29tPgogPENBK25Qbk16S3NqcWFOVVRLOHppeVJjY2pzN0FmYystNDFzclBqUEhZNGtidGs2LW52QUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAyMCBPY3QgMjAxNyAwNTozMzo0NyAtMDcwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXhhTURlMFhnUmN2a0RockpIeVFjRERUcCtVYVpuVkdtbXp6QmNSNkMrbnRnQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4yClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9ImY0MDMwNDVmNGZhZTMxY2RiMjA1NWJmOWFmNzciCgotLWY0MDMwNDVmNGZhZTMxY2RiMjA1NWJmOWFmNzcKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCisxIGZyb20gbWUsIHRlc3RlZCBvbiBhIG51bWJlciBvZiBwcm9qZWN0cyBmb3IgdGhlIGxhc3QgY291cGxlIG9mIGRheXMuLi4Kbm90IGZvdW5kIGFueSByZWdyZXNzaW9ucyBmcm9tIDMuNS4wCgpPbiAxOCBPY3RvYmVyIDIwMTcgYXQgMDM6NTEsIFN0ZXBoZW4gQ29ubm9sbHkgPApzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKCj4gQW5hbHl6ZXIuLi4KPgo+IHN0YWdpbmdVcmw6IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzMKPiBncm91cElkOiBvcmcuYXBhY2hlLm1hdmVuCj4gYXJ0aWZhY3RJZDogYXBhY2hlLW1hdmVuCj4gdmVyc2lvbjogMy41LjIKPgo+IFNvdXJjZSBaSVAgdXJsIGV4aXN0cy4KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiAxMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yL2FwYWNoZS1tYXZlbi0zLjUuMi1zcmMuemlwCj4KPiBTb3VyY2UgWklQIFNIQTEgdXJsIGV4aXN0cy4KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiAxMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yL2FwYWNoZS1tYXZlbi0zLjUuMi1zcmMuemlwLnNoYTEKPgo+IEJpbmFyeSBaSVAgdXJsIGV4aXN0cy4KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiAxMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yL2FwYWNoZS1tYXZlbi0zLjUuMi1iaW4uemlwCj4KPiBCaW5hcnkgWklQIFNIQTEgdXJsIGV4aXN0cy4KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiAxMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yL2FwYWNoZS1tYXZlbi0zLjUuMi1iaW4uemlwLnNoYTEKPgo+IENhbGN1bGF0ZWQgU0hBMSBvZiBzb3VyY2UgWklQIG1hdGNoZXMgcHVibGlzaGVkIFNIQTEgb2Ygc291cmNlIFpJUC4KPiBkYzhjYWE1Y2RhY2I0MDA5NDNkMjQ5MWEwMjBmNzQyYTUxOGU4ZjA4Cj4KPiBDYWxjdWxhdGVkIFNIQTEgb2YgYmluYXJ5IFpJUCBtYXRjaGVzIHB1Ymxpc2hlZCBTSEExIG9mIGJpbmFyeSBaSVAuCj4gMjNhZGFkYzkwYjdmNzlhZDg0YmQxNDU3NDU4MWQwMTQ1NjExYmZkYQo+Cj4gR2l0IHJldmlzaW9uIG9mIHJlbGVhc2UgYXMgZGV0ZXJtaW5lZCBmcm9tIG1hdmVuLWNvcmUtMy41LjIuamFyOm9yZy8KPiBhcGFjaGUvbWF2ZW4vbWVzc2FnZXMvYnVpbGQucHJvcGVydGllcyhidWlsZE51bWJlcik6Cj4gMTM4ZWRkNjFmZDEwMGVjNjU4YmZhMmQzMDdjNDNiNzY5NDBhNWQ3ZAo+Cj4gRmlsZXMgdGhhdCBhcmUgcHJlc2VudCBpbiB0aGUgc291cmNlIGRpc3RyaWJ1dGlvbiBidXQgbm90IGluIHRoZSBzb3VyY2UKPiByZXZpc2lvbjoKPiBERVBFTkRFTkNJRVMKPgo+Cj4gT24gMTggT2N0b2JlciAyMDE3IGF0IDAzOjUwLCBTdGVwaGVuIENvbm5vbGx5IDwKPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPgo+PiBIaSwKPj4KPj4gV2Ugc29sdmVkIDI2IGlzc3VlczoKPj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3ZlcnNpCj4+IG9uPTEyMzM4OTY0JnN0eWxlTmFtZT1UZXh0JnByb2plY3RJZD0xMjMxNjkyMgo+Pgo+PiBUaGVyZSBhcmUgMzU3IGlzc3VlcyBsZWZ0IGluIEpJUkEgZm9yIE1hdmVuIGNvcmU6Cj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJTNEJQo+PiAyME1ORyUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlMjBCWSUKPj4gMjBkdWUlMjBBU0MlMkMlMjBwcmlvcml0eSUyMERFU0MlMkMlMjBjcmVhdGVkJTIwQVNDCj4+Cj4+IFN0YWdpbmcgcmVwbzoKPj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3My8KPj4KPj4gVGhlIGRpc3RyaWJ1dGFibGUgYmluYXJpZXMgYW5kIHNvdXJjZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNwo+PiAzL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yLwo+Pgo+PiBTcGVjaWZpY2FsbHkgdGhlIHppcCwgdGFyYmFsbCBhbmQgc291cmNlIGFyY2hpdmVzIGNhbiBiZSBmb3VuZCBoZXJlOgo+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzcKPj4gMy9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItYmluLnppcAo+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzcKPj4gMy9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItYmluLnRhci5nego+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzcKPj4gMy9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItc3JjLnppcAo+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzcKPj4gMy9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItc3JjLnRhci5nego+Pgo+PiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPj4gYXBhY2hlLW1hdmVuLTMuNS4yLXNyYy50YXIuZ3ogc2hhMTogOTdkNmQ3YjE4NDg1Yjc5MDZkZDdmMzEzY2RkNDExCj4+IDkxZDE2ZGRlNDYKPj4gYXBhY2hlLW1hdmVuLTMuNS4yLXNyYy56aXA6IHNoYTE6IGRjOGNhYTVjZGFjYjQwMDk0M2QyNDkxYTAyMGY3NAo+PiAyYTUxOGU4ZjA4Cj4+Cj4+IEdpdCB0YWc6Cj4+IGh0dHBzOi8vZ2l0LXdpcC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPW1hdmVuLmdpdDthPWNvbW1pdAo+PiA7aD0xMzhlZGQ2MWZkMTAwZWM2NThiZmEyZDMwN2M0M2I3Njk0MGE1ZDdkCj4+Cj4+IFN0YWdpbmcgc2l0ZToKPj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2NvbXBvbmVudHMvcmVmLzMtTEFURVNULwo+Pgo+PiBWb3RlIG9wZW4gZm9yIDcyIGhvdXJzLgo+Pgo+PiBbIF0gKzEKPj4gWyBdICswCj4+IFsgXSAtMQo+Pgo+PiBUaGFua3MsCj4+Cj4+IFN0ZXBoZW4uCj4+Cj4KPgoKLS1mNDAzMDQ1ZjRmYWUzMWNkYjIwNTViZjlhZjc3LS0KCkZyb20gZGV2LXJldHVybi0xMjQ2NjgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIE5vdiAyOSAxMToyMTozNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ2NjgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMDNCQzExMDc0MwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDI5IE5vdiAyMDE3IDExOjIxOjM1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDUzNzkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjkgTm92IDIwMTcgMTE6MjE6MjkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ1MzA4IGludm9rZWQgYnkgdWlkIDUwMCk7IDI5IE5vdiAyMDE3IDExOjIxOjI5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDUyOTYgaW52b2tlZCBieSB1aWQgOTkpOyAyOSBOb3YgMjAxNyAxMToyMToyOSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMjkgTm92IDIwMTcgMTE6MjE6MjkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA4OTAzNUMwRUYwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyOSBOb3YgMjAxNyAxMToyMToyOCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuMDk4ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuMDk4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtCX1dBTV9GUk9NX05BTUVfU0lOR0xFV09SRD0wLjIsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTAuMDAxLCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgV0RpVVV0clBjSUhGIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJV2VkLCAyOSBOb3YgMjAxNyAxMToyMToyNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdyMC1mMTc0Lmdvb2dsZS5jb20gKG1haWwtd3IwLWYxNzQuZ29vZ2xlLmNvbSBbMjA5Ljg1LjEyOC4xNzRdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNkVDNkU1RjRBQwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjkgTm92IDIwMTcgMTE6MjE6MjcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd3IwLWYxNzQuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgdjIyc28zMDU1MzM4d3JiLjAKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyOSBOb3YgMjAxNyAwMzoyMToyNyAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1BbnZxd25zQ1R0cXJHSkpOS2haSTZxbllybHJHdkI4V1NFL0pYbDBIeWt3PTsKICAgICAgICBiPWpFd2hPdXVsc0xWQWZDS3luZHVQUmJqZFA2d05jZHV6NkxBOXBxZ0JWQWNXNXNieUYyd3d2U0I2N0hUanE3WEVrOAogICAgICAgICA2YXZpN1NNcGVhT2xjTjExR3Vta1hDdjRLZGdlbFpteVltWjJuUVVacExaWHovVGUvUXlBVml1Y1RaKzFieHVWaUMwbAogICAgICAgICB1ckV1QWYrYTlTZUptNmZ1Yno4b2NZRnFJWm1Fa0dEM3h0N2pGakRPNzQxaUdUenlpdkRSRTM5cEdrWXZjYnA1UksyRwogICAgICAgICA5Tmdpbld4L1VrNm5ZV0x2N0VtNVhZb25KaE9oY1h3NXhFUFg4SHhMaFlZK3J2c3hISVVlTEVjYVVGUzVsZTNpM1MzNAogICAgICAgICBLZkpIM3YrNm82L2YzTmxOQjhTUHRWZXJHdDloazBodDJWRzYvS08yNUhuaEtpZTJmcHlNTTlJUXA5TDI1M1FpL2tBVgogICAgICAgICBQd0l3PT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1BbnZxd25zQ1R0cXJHSkpOS2haSTZxbllybHJHdkI4V1NFL0pYbDBIeWt3PTsKICAgICAgICBiPUt0cnkvaUU1L2d0YTkwOE0vdHllZURVUTlTMjdBelFEN3V6QnpEUDVlcDdMWWs4WHFUVEpDMXFURTNDcUR4UVNRWAogICAgICAgICBLNHg3WWJSelBncFg1MHM2enlnZEVPVW9aaHVwTHlCQ2FRbE1WbFVEdGlGQlRraUN0RGJ5L3BnM0grVWxvTmR1MEl6OQogICAgICAgICA3dnpqdXREU1ZDa0xhZHJLWFcvUFBxRjZlMGY5UU1oc3dydkJ1eW02aTFieE5Fa1MvZVRKNUUwMUZxZXBvbUozQmFDUwogICAgICAgICBTcG1FMFluWndHeENKbWhBQk5zUEo3alNQT3RTdEdxSFk3eXpqL2xQQ2RMdUl3N04vQ2duaENTMXdkNDZ2cy9TR05negogICAgICAgICBIQjgrY2IxRFBIcFp5YStVV2JabUErejZSdTdtekdQQXZhTG1CcDB1NzV3UE8zVkdrWFJxek5WY3ZXQ3NwOHEzenZEdAogICAgICAgICBseEVBPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg3anNvbTdRV2pGTFN0SlcxVFpMNmg4UG1wSWRXUC9jamg3S3paNStGQjRJM0VMNnJ2egoJUXZvUXoyR3I1clJ0WnVSN3Zsb2ozR3cvNzUzT2Z6aVFFMzVSUk5hdHNaLy8KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TVphdkJFbXo4SWJWdEFnUWlaUE5SUzJ4cUVsWWxWWUtSVWQ5dDJ5cUIvVURVbGVHVkxmMHBONncrM0sxT3pUYmZHR25mN3FWYVpCNlJsTlpHYnVYcTA9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xNTYuMTQ2IHdpdGggU01UUCBpZCBkMThtcjE2NDk3MjV3cmUuMTYxLjE1MTE5NTQ0ODYyOTI7CiBXZWQsIDI5IE5vdiAyMDE3IDAzOjIxOjI2IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yMjMuMTczLjIzNSB3aXRoIEhUVFA7IFdlZCwgMjkgTm92IDIwMTcgMDM6MjE6MjUgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDxDQStuUG5NeENEcWlQemsxbjhFR0YwNFhQRllaZE8rYnZUTU5BNStrRTJSZHFQdDJRdlFAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQStuUG5Nd01CRzZwK2lNZ3YwTjlEUnQzNjl0RTN6NXJBb2taTktYNEtKTHdzMnJDN0FAbWFpbC5nbWFpbC5jb20+CiA8Q0ErblBuTXhDRHFpUHprMW44RUdGMDRYUEZZWmRPK2J2VE1OQTUra0UyUmRxUHQyUXZRQG1haWwuZ21haWwuY29tPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBXZWQsIDI5IE5vdiAyMDE3IDExOjIxOjI1ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NeGgzSHR1U2owejZOPW5CcWREY3I4eDY1R0plbzFHcUNNaFMxcT1DNnFhWmdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBOZXcgSmVua2lucyBpbnRlZ3JhdGlvbgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSJmNDAzMDQzOWJiMDAxMjc1NjcwNTVmMWQ1NjgyIgoKLS1mNDAzMDQzOWJiMDAxMjc1NjcwNTVmMWQ1NjgyCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgotIFt4XSBFbWFpbCBub3RpZmljYXRpb24gY29udGFpbnMgdGFpbCBvZiBjb25zb2xlIGxvZwotIFt4XSBCdWlsZCBkZXNjcmlwdGlvbiBzZXQgdG8gSklSQSB0aWNrZXQgaWQncwoKT2suLi4gSSB0aGluayB3ZSBhcmUgZ29sZGVuIG5vdwoKT24gMjkgTm92ZW1iZXIgMjAxNyBhdCAwOTo0OCwgU3RlcGhlbiBDb25ub2xseSA8CnN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgoKPiAtIFt4XSBKSVJBIGlzc3VlcyB1cGRhdGVkCj4KPiBPbiAyOSBOb3ZlbWJlciAyMDE3IGF0IDA5OjQ1LCBTdGVwaGVuIENvbm5vbGx5IDwKPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPgo+PiBPaywgaGVyZSdzIHRoZSBjdXJyZW50IHN0YXR1czoKPj4KPj4gLSBbeF0gQ3Jvc3MgT1MvSkRLIG1hdHJpeCBidWlsZGluZwo+PiAtIFt4XSBGYXN0IGZhaWwKPj4gLSBbeF0gRW1haWwgbm90aWZpY2F0aW9uCj4+IC0gW3hdIEVtYWlsIG5vdGlmaWNhdGlvbiBpbmNsdWRlcyByZWNlbnQgY2hhbmdlcwo+PiAtIFsgXSBFbWFpbCBub3RpZmljYXRpb24gY29udGFpbnMgdGFpbCBvZiBjb25zb2xlIGxvZwo+PiAtIFsgXSBKSVJBIGlzc3VlcyB1cGRhdGVkCj4+IC0gWyBdIEJ1aWxkIGRlc2NyaXB0aW9uIHNldCB0byBKSVJBIHRpY2tldCBpZCdzCj4+Cj4KPgoKLS1mNDAzMDQzOWJiMDAxMjc1NjcwNTVmMWQ1NjgyLS0KCkZyb20gZGV2LXJldHVybi0xMjQzMDUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE9jdCAyMiAwOTo1NTo0OSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzMDUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQjQ1MDIxMDU4MgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDIyIE9jdCAyMDE3IDA5OjU1OjQ5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDc2ODUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjIgT2N0IDIwMTcgMDk6NTU6NDQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ3NjA4IGludm9rZWQgYnkgdWlkIDUwMCk7IDIyIE9jdCAyMDE3IDA5OjU1OjQ0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDc1OTYgaW52b2tlZCBieSB1aWQgOTkpOyAyMiBPY3QgMjAxNyAwOTo1NTo0NCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMjIgT2N0IDIwMTcgMDk6NTU6NDQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA1OTI5RkM1OEUxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAyMiBPY3QgMjAxNyAwOTo1NTo0MyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjQwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC40MDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB6RTZtekZBX1FiM2kgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sIDIyIE9jdCAyMDE3IDA5OjU1OjQyICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd3IwLWYxNzcuZ29vZ2xlLmNvbSAobWFpbC13cjAtZjE3Ny5nb29nbGUuY29tIFsyMDkuODUuMTI4LjE3N10pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBEMDk4MjVGQUM5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAyMiBPY3QgMjAxNyAwOTo1NTo0MSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13cjAtZjE3Ny5nb29nbGUuY29tIHdpdGggU01UUCBpZCBwOTZzbzc4MDg5OXdyYi43CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjIgT2N0IDIwMTcgMDI6NTU6NDEgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG8KICAgICAgICAgOmNjOwogICAgICAgIGJoPVAvNFY0cUw3Tzd5cG5WcGtiZGVmT1g0UVVYUUI5aUlMVG1wdEViQW9zZEk9OwogICAgICAgIGI9RWlZV2ZhQncrLzA4RkcrVzZxSUtWWmFxSEFhcGlkOHdkOEN5MTh0Z2ViZlZRTDFhODEyTEYrMXU0K2hlQ3ZONjlSCiAgICAgICAgIEJpaWxtc3lNRmx2WXYrbXFvaW5LaGpXK1UzWk8zNVVBcngvejlEV3FncjJmcHRKbGZxNW82VFpMN3RKSUVqRXRQM0g4CiAgICAgICAgIFp4U0pQR0tibWRmaGFIRkM1MkFiV0FQTWhRTTJCb0Z3Z1U0RE1NV0lNRXM2Z3k5QmduTTFBcG9iZGRCRjI2cUtlSVl3CiAgICAgICAgIFBoZFRFd2pJakJGVWJFd2ZEcS9UUWduUHFnVGpyZVB3SnNPekZxMlVjN3VhTzV1UTJRUEhkcTk5UUpPV3FHMldLakEzCiAgICAgICAgIFdoVm5Dc0dINnc2aGZQK0wrRGpSZUNIbWtVbm9OV1JzcUtDNEJQMDliT1dNekZDSElxNDhKdDBNMkdlTldXUllUQWF6CiAgICAgICAgIGtZcUE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOmNjOwogICAgICAgIGJoPVAvNFY0cUw3Tzd5cG5WcGtiZGVmT1g0UVVYUUI5aUlMVG1wdEViQW9zZEk9OwogICAgICAgIGI9WTdVVTJDR2xpRzNyek9kZzUvWDgrVnVxREc0TGFhVk0yRGZnS2s2V3dnbERCZldOdFp1UkVwOXpPUkdiWEcyeGg1CiAgICAgICAgIGhqS08vV1I0ZlprLzlQZXJHTWRRelpXRW1HZzYwMVdPTTlyalVXb0NQYmVMUHc5L0lwcndONHlsWkRRNmQxRjJOU2l4CiAgICAgICAgIEdMK2R2d0NUM0tSaVpMMHFiSlhGYWtkbjBsWnlaTlY0Q1JEVHVkbUU5T0wvR3ZaT0JMMW51R3JUcjF1WXVrMXI3N0pNCiAgICAgICAgIGl2OWhXcnlERCtPZTBVdmZzM2pSYisxcUk5OGF5Y2JRcklBWGZsM1RVbjU2NTVqTlhxNzdvSDV4N1ljNmRvZU9OeHlnCiAgICAgICAgIEhkQk50RHJjVENUZ2VDVXNGb2NiUVVkUkZRTGdISm5PSC9LUzhqZ29QM04zdFcvTG1qRzJmN2pKV2piVDVwSmxEMEMzCiAgICAgICAgIHRDNWc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVY2SnpaSlBydFErVkNlSlJxbVQ5NklFelNRRUlwRXVnK2VXQ0VpSnJMV2VVWVVlZTcxCglDbGRzSFpJSUs3THJxVTJ3UTUxWWY4NllRakNjeTh2L0c4bTFiTkFpWHc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArUnZCaHRFM0xxRGpzOG12UDYxL2NFMm5HUWxSZmhJcUlBTFF0N0NSclBCaGplbFdKU1dhQXdaNGVtZzFJZExucmRYd1dyWlllWGVzMUI4eHBXbkVpYz0KWC1SZWNlaXZlZDogYnkgMTAuMjIzLjE0MS4xNDggd2l0aCBTTVRQIGlkIG8yMG1yNDgzNDE0MXdyYi4zNS4xNTA4NjY2MTQxMjQyOwogU3VuLCAyMiBPY3QgMjAxNyAwMjo1NTo0MSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMjIzLjE4Ny44IHdpdGggSFRUUDsgU3VuLCAyMiBPY3QgMjAxNyAwMjo1NTo0MCAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPDAxYjg3NjhkLWYzOTctNDk5MS1jYjM1LTRkYjIyZTY0NzRjYUBhcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8Q0FKUnZGZG8tMzNaZnhpRnNKd2ppR1FKTVlUNW11MzFmcUQxZl91M0ZVUVRvSnY9VHVnQG1haWwuZ21haWwuY29tPgogPDE3MDgyODUueGJRUk9Jajk5WkBnaWdhPiA8Q0ErblBuTXhDdXVwUDk1dlBqWG1Fd19HemR6VXJyMkNfU2ZGSERUa29lekFHQj1zMWZRQG1haWwuZ21haWwuY29tPgogPDI0NzM0NTIzLmE2SnNFOHNmc2hAZ2lnYT4gPG9wLnk4Z2ZrNHl1a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgogPENBTEhGbjZQZUt2MFFrLXpjZEFpZnRGeUJKWXFRYmNqZkZhZUtyR3haS0REV2lobnJwQUBtYWlsLmdtYWlsLmNvbT4KIDwyMDE3MTAyMjAyMjQwNy5FMzczRjI5QzAxNDBAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPiA8MDFiODc2OGQtZjM5Ny00OTkxLWNiMzUtNGRiMjJlNjQ3NGNhQGFwYWNoZS5vcmc+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFN1biwgMjIgT2N0IDIwMTcgMDI6NTU6NDAgLTA3MDAKTWVzc2FnZS1JRDogPENBK25Qbk14a0t1YmJGVTN6VD1haV9KdDdXUTRpdDFhT1FDTFQ9azlzc1FkamRia19NUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IE1hdmVuIERvY2tlciBJbWFnZXMKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNjOiBNYW5mcmVkIE1vc2VyIDxtYW5mcmVkQHNpbXBsaWdpbGl0eS5jb20+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iZjQwMzA0NWY0ZmFlNmVmODJhMDU1YzFmYjUyYiIKCi0tZjQwMzA0NWY0ZmFlNmVmODJhMDU1YzFmYjUyYgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKSSB0aGluayB0aGVyZSBpcyBub3RoaW5nIHdyb25nIGluIHRoZSBwcm9qZWN0IHJlbGVhc2luZyBvZmZpY2lhbApgRG9ja2VyZmlsZWBzLi4uIHRoYXQncyBqdXN0IHNvdXJjZSBjb2RlLCB3aGljaCBpcyB3aGF0IHdlIHJlbGVhc2UuCgpJZiBEb2NrZXIgb3IgQS5OLk90aGVyIHRoZW4gd2FudHMgdG8gZ28gYW5kIGJ1aWxkIGltYWdlcyBmcm9tIHRob3NlCmBEb2NrZXJmaWxlYHMgdGhlbiB0aGF0J3MgZmluZSB3aXRoIG1lLgoKT24gMjIgT2N0b2JlciAyMDE3IGF0IDAxOjIyLCBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz4gd3JvdGU6Cgo+IEFtIDIwMTctMTAtMjIgdW0gMDQ6MjQgc2NocmllYiBNYW5mcmVkIE1vc2VyOgo+Cj4+IEZvbGxvd2luZyB1cCBvbiB0aGF0IHJlbWFyayBhbmQgbXkgZWFybGllciByZW1hcmsgdGhhdCB3ZSBzaG91bGQgTk9UIG1ha2UKPj4gdGhpcyBvZmZpY2lhbCAuLiBoZXJlIGFyZSBteSByZW1hcmtzOgo+Pgo+PiAtIHNvIGZhciB0aGUgb25seSBiaW5hcmllcyB3ZSBhc3NlbWJsZSBhbmQgY2FsbCBvZmZpY2lhbCBhcmUgdGhlIHRhci5nego+PiBhbmQgemlwIGFyY2hpdmVzIChhbmQgZXZlbiB0aGF0IGlzIGEgZ3JheSBsaW5lIHNpbmNlIG9mZmljaWFsIHRoZXJlIGFyZQo+PiBvbmx5IHNvdXJjZXMgZnJvbSBBcGFjaGUpCj4+IC0gd2UgZG8gTk9UIHN1cHBvcnQgKGJ5IGNhbGxpbmcgdGhlbSBvZmZpY2lhbCkgYW55IG90aGVyIGJpbmFyaWVzIHN1Y2ggYXMKPj4gICAgLSBsaW51eCBkaXN0cm8gdmVyc2lvbnMKPj4gICAgLSBvc3ggcGFja2FnZSB2ZXJzaW9ucyAoYnJld3MsIHBvcnRzKQo+PiAgICAtIHdpbmRvd3MgcGFja2FnZXMKPj4gICAgLSBzZGttYW4KPj4gICAgLSBhbmQgbWFueSBvdGhlcnMKPj4gLSB0aGUgY29tcGxleGl0eSBvZiB0aGUgZG9ja2VyIGltYWdlcyBpcyBncmVhdGVyIHRoYW4gYW55IG9mIHRoZSBhYm92ZQo+PiBzaW5jZSBpdCBpbmNsdWRlcyB0aG9zZSBmYWN0b3JzLi4KPj4KPj4gSGVyZSBhcmUgYSBmZXcgaXNzdWVzIHdoeSBJIHdvdWxkIG9iamVjdCB0byB0aGlzIGJlaW5nIHRoZSBvZmZpY2lhbCBpbWFnZXMKPj4KPj4gLSBvbmx5IG9wZW5qZGsgYW5kIGlibSBqYXZhLCBubyBvcmFjbGUgamF2YSwgbm8gb3RoZXJzIHN1Y2ggYXMgWnVsdSBvcgo+PiB3aGF0ZXZlcgo+PiAtIGxpbWl0ZWQgb3Mgc2VsZWN0aW9uIChvbmx5IGFscGluZSBhbmQgZGViaWFuIGFuZCB3aW5kb3dzIGZyb20gd2hhdCBJCj4+IGNhbiB0ZWxsKSwgbm8gY2VudG9zLCBubyB1YnVudHUKPj4gLSBiaW5hcmllcyBhcmUgZG93bmxvYWQgZnJvbSBhIG1pcnJvciByYXRoZXIgdGhhbiB0aGUgYWN0dWFsIGFwYWNoZQo+PiBzZXJ2ZXJzIChhbHRlcm5hdGl2ZWx5IG1heWJlIGNvdWxkIHVzZSBDZW50cmFsKQo+Pgo+PiBUaGVzZSBhYm92ZSBmYWN0b3JzIGltaG8gc2hvdyB0aGF0IHRoZXJlIGlzIGEgc2VsZWN0aW9uIHRoYXQgaGFzIGJlZW4KPj4gbWFkZSBhbmQgSSBkbyBub3QgdGhpbmsgd2UgYXMgdGhlIEFwYWNoZSBNYXZlbiBwcm9qZWN0IHNob3VsZCBtYWtlIHRoaXMKPj4gc2VsZWN0aW9uLgo+Pgo+PiBBcyBzdWNoIEkgd291bGQgc3VnZ2VzdCB0byBrZWVwIGl0IGFzIGlzLgo+Pgo+PiBBbiBvcGVuIHNvdXJjZSBwcm9qZWN0IGZyb20gYW4gaW5kaXZpZHVhbCB0aGF0IHByb3ZpZGVzIE1hdmVuIGJpbmFyaWVzIG9uCj4+IERvY2tlciBpbWFnZXMuIEp1c3QgaGFwcGVucyB0byBiZSB0aGUgY2FzZSB0aGF0IHRoZSBzYW1lIHBlcnNvbiBpcyBhbHNvIGEKPj4gTWF2ZW4gUE1DIChncmVhdCBidHchKS4KPj4KPj4gSWYgd2UgbWFrZSB0aGlzIHBhcnQgb2YgdGhlIG9mZmljaWFsbHkgc3VwcGxpZWQgYmluYXJpZXMgd2UgY291bGQgYWxzbwo+PiB0aGluayBhYm91dAo+Pgo+PiAtIG1ha2luZyBiaW5hcmllcyBmb3IgdmFyaW91cyBMaW51eCBkaXN0cm9zIGluIHRoZSBmaXJzdCBwbGFjZSAodGhlbiB3ZQo+PiB3b3VsZG50IGV2ZW4gbmVlZCBkb2NrZXIgaW1hZ2VzIHNpbmNlIGl0IGNvdWxkIGJlIGEgb25lIGxpbmUgdG8gaW5zdGFsbCBhbgo+PiBvZmZpY2lhbCBNYXZlbiBkaXN0cm8gb24gdGhlbSkKPj4gLSBzdXBwbHlpbmcgYmluYXJpZXMgdG8gU0RLTWFuLCBwb3J0cywgYnJldywgY2hvY29sYXRleSBhbmQgc28gb24KPj4gLSBwdWxsIGFsbCBtb2pvaGF1cyBwbHVnaW5zIGludG8gQXBhY2hlICh0aGV5IGFyZSBtb3N0bHkgdGhlIHNhbWUKPj4gY29tbWl0dGVycy4uKQo+PiAtIHB1bGwgb3RoZXIgTWF2ZW4gcHJvamVjdHMgaW4gYXMgZGVzaXJlZAo+Pgo+PiBZb3Ugc2VlIHdoZXJlIHRoaXMgbGVhZHMuLi4gYSBMT1Qgb2Ygd29yay4gSW4gbXkgb3BpbmlvbiBhcyB0aGUgQXBhY2hlCj4+IE1hdmVuIHByb2plY3Qgd2Ugc2hvdWxkIGZvY3VzIG9uIGp1c3QgdGhhdC4gTWF2ZW4gaXRzZWxmLCBvdXIgY3VycmVudAo+PiBwbHVnaW5zIGFuZCByZWxhdGVkIHByb2plY3RzLiBXZSBhbGwga25vdyB0aGF0cyBhbHJlYWR5IG1vcmUgd29yayB0aGFuIHdlCj4+IGNhbiByZWFzb25hYmx5IHNob3VsZGVyLi4gSSBzZWUgbm8gcmVhc29uIHRvIGFkZCBtb3JlLgo+Pgo+Pgo+Cj4gUGVyZmVjdCwgeW91IHJlYWQgbXkgbWluZC4KPiArMgo+Cj4KPiBDYXJsb3MgU2FuY2hleiB3cm90ZSBvbiAyMDE3LTEwLTIxIDAzOjU5Ogo+Pgo+PiBCVFcgdGhlcmUgYXJlIHBvc3NpYmx5IG1vcmUgdGhhbiBvbmUgaW1hZ2UgYnVpbGQgZm9yIGVhY2ggbWF2ZW4gdmVyc2lvbi4KPj4+IEZvciBhIHZhcmlldHkgb2YgcmVhc29ucywgbGlrZSBzZWN1cml0eSBpc3N1ZXMgaW4gT1Mgb3IgdG8gdXBncmFkZSBKREsgb3IKPj4+IGJlY2F1c2UgZG9ja2VyIHJlYnVpbGRzIGl0LCBzbyBpdCBpcyBub3QgZmVhc2libGUgdG8gdm90ZSBlYWNoIG9mIHRoZW0uCj4+Pgo+Pgo+Pgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pgo+Pgo+Pgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKLS1mNDAzMDQ1ZjRmYWU2ZWY4MmEwNTVjMWZiNTJiLS0KCkZyb20gZGV2LXJldHVybi0xMjM5NjAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIFNlcCAxMSAwODo1Mzo0MiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5NjAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOTExRkMxOTE1RQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDA4OjUzOjQyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjcyODcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgU2VwIDIwMTcgMDg6NTM6NDIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY3MjEyIGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDA4OjUzOjQyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjcyMDAgaW52b2tlZCBieSB1aWQgOTkpOyAxMSBTZXAgMjAxNyAwODo1Mzo0MCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMTEgU2VwIDIwMTcgMDg6NTM6NDAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBEMDI5RjE5NTFFRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMDg6NTM6MzkgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjYyOQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjYyOSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTE9UU09GSEFTSD0wLjI1LCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHhxZHFjZF9OYm5EbiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMTEgU2VwIDIwMTcgMDg6NTM6MzYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC12azAtZjQ1Lmdvb2dsZS5jb20gKG1haWwtdmswLWY0NS5nb29nbGUuY29tIFsyMDkuODUuMjEzLjQ1XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEJEMzk4NUY1QjMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDA4OjUzOjM1ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXZrMC1mNDUuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgeDg1c285MDQxMjQxdmt4LjUKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAwMTo1MzozNSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1DdEliYTJQRW5INUd2dDdSbWhXQlhRZDRqWHNSaGJrMmxaYTRBczJNNW9jPTsKICAgICAgICBiPUQ5MWRJZHVieFc5TE9Ya1E4Mzc0MEdQQVl4cEVod0Vyc2g4V2d0R1REM2RodmdZZEdrczhGNWpVYnUvL2VjcllmZQogICAgICAgICBSM1AxMk5Xa1pXS0VWL2lwd00vbXNGL0xxaDlVazRINThlU3RjTmQvTnBVc3Yxc2RSbzVZMmx5REJIei9IaUIvN3pwYwogICAgICAgICBUY1FvK1FaTW95eWJUL0xTRTh1aG5FWlg1amovVmhibmFqOHV5dWdNMmFYNEtjbDNNQjhFSHhxWWxMK1VnZkRuK2JTegogICAgICAgICBBYmdmZ0JBdXJTV0cxZzdySlpLcm1abGFTKzJRN0VtbTNIQWJhTE5QalVlRkJmODE1OHRLbzVYZEYyei9peWNWMm0ySAogICAgICAgICBDMjV4RVdRUDhWUERjeDV5UGtIMGhVOEZ0S1JjVVhVZUZGQXhNQ1l4REVPMXN5UURQNjJTNXBYL3RoVnd0WlRiZStpdQogICAgICAgICA2QVdnPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1DdEliYTJQRW5INUd2dDdSbWhXQlhRZDRqWHNSaGJrMmxaYTRBczJNNW9jPTsKICAgICAgICBiPVpYVUhsbURxbnIrR1IySXdvbERrNXhwSGM2eDJLcnRVbllHN1JSSnpVaWp0RHB4OVgvRzY3ZlhUL2tCSkI3UUZ3QwogICAgICAgICA3M0tQdTJvdm54ZGtRNytEMnVFRGJoeUVaR25DSElRaDIvWGJqWHFMNnp6TnluRjJRZU5NZmYrbHo5ODExNmV6SWZSaAogICAgICAgICBXOVZFTXdvZzQ5dTdSVDIyMm5wbS9xaVZOMlZMS0lLdElybUtIdVVGbTJHUXRVWVo3LzRjZVNzWHlDNksvaGRxbm01VQogICAgICAgICBEQ3J3dHR2TkZOUDRSVXl1OXZ3UWpHNjVPM0xvbWI0c2FmRU53VDNIZEt5MXU5TTRub1ljZHNjSlE3YWE2VEN1dWxqQQogICAgICAgICBTSVIrUHgvY2srK25JamllbkZvalNqWXZQMnVITzNPdXJQYXJXbEZ2MFVFLzVWVmVXN1VXL3F6NE5WSjh2RTFCUklUNAogICAgICAgICBsbVh3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVoYkEwa3E3bHlsMjk1djl0QVY0UjZ4QlM2MWM5dG5pMGJXMVZmM3BzSHg5VXVzOWM4MAoJeEVnRVRQMmI4clJXT1RTek9BeFdMZ1V3d1VuMWRxOGl5T289ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FDaUptWFlSOVpZNncxVDVQRmQ5TGFHK2pWUW1NMVBkS05UWUt5NWxlV2xTaXR2M0JwbkVkVHpNRTg3VTVySTg5dHZOa1h1dXFuQ2ZuTEhKSU54MnAwPQpYLVJlY2VpdmVkOiBieSAxMC4zMS41MC4xMzYgd2l0aCBTTVRQIGlkIHkxMzBtcjc1MDE3NDB2a3kuMTk3LjE1MDUxMjAwMTQzNzA7CiBNb24sIDExIFNlcCAyMDE3IDAxOjUzOjM0IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzYuODkuNiB3aXRoIEhUVFA7IE1vbiwgMTEgU2VwIDIwMTcgMDE6NTM6MzMgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxDQStuUG5NeDA9ZisrRFFpMzM2ZzBxSGcwYXRCWVFNTjQ2Q3lfdXpDK216Vk5EcG1BTEFAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQStuUG5NeHlHMk5lUFhwVnFhd2U5alI9aXRIRVQ2VXVkbk45Q2pIaHY9b28tS0NyeHdAbWFpbC5nbWFpbC5jb20+CiA8Q0FLdVZ6QlI1RURrVCtqbWIzcGVCZmtya2F2eXZpeWVGUkNtbVlvZ083WDdpSD1LLWFRQG1haWwuZ21haWwuY29tPgogPENBUENqam5FVEZaVExtKzhyZ0tXMHI0c3lYWVJwb0Jaal9hSmoxeDJkdmljek9ZSGtkZ0BtYWlsLmdtYWlsLmNvbT4gPENBK25Qbk14MD1mKytEUWkzMzZnMHFIZzBhdEJZUU1ONDZDeV91ekMrbXpWTkRwbUFMQUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxMSBTZXAgMjAxNyAwMTo1MzozMyAtMDcwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXhtc1pZT2UyYy0wLVM0QTRzOVY4SjhOcmZWby02NUMtNzdOLUNQZ3JKQWZBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQzOGZhMmNkMGQ0NjA1NThlNjBmNGYiCgotLTAwMWExMTQzOGZhMmNkMGQ0NjA1NThlNjBmNGYKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCldpdGgKaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1pbnRlZ3JhdGlvbi10ZXN0aW5nL2NvbW1pdC9hMDhkNjViZmI1ZmVkZWM5ZjY4NGMxM2JmNWEwZGNjYjk2ZjVjYzU2Ckkgd2FzIGFibGUgdG8gZ2V0IE1pY2hhZWwncyB0ZXN0IGZhaWx1cmVzOgoKQXBhY2hlIE1hdmVuIDMuNS4xICgwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzOwoyMDE3LTA5LTEwVDEyOjQyOjU0WikKTWF2ZW4gaG9tZTogL3dvcmsvYmluCkphdmEgdmVyc2lvbjogMS43LjBfMTU0LCB2ZW5kb3I6IEF6dWwgU3lzdGVtcywgSW5jLgpKYXZhIGhvbWU6IC91c3IvbGliL2p2bS96dWx1LTctYW1kNjQvanJlCkRlZmF1bHQgbG9jYWxlOiBlbl9VUywgcGxhdGZvcm0gZW5jb2Rpbmc6IFVURi04Ck9TIG5hbWU6ICJsaW51eCIsIHZlcnNpb246ICI0LjkuNDYtbW9ieSIsIGFyY2g6ICJhbWQ2NCIsIGZhbWlseTogInVuaXgiCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUZXN0IHNldDogb3JnLmFwYWNoZS5tYXZlbi5jbGFzc3JlYWxtLkRlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUZXN0cyBydW46IDUsIEZhaWx1cmVzOiA1LCBFcnJvcnM6IDAsIFNraXBwZWQ6IDAsIFRpbWUgZWxhcHNlZDogMi4xMjggc2VjCjw8PCBGQUlMVVJFISAtIGluIG9yZy5hcGFjaGUubWF2ZW4uY2xhc3NyZWFsbS5EZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0CnRlc3RNTkc2Mjc1X21hdmVuQXBpUmVhbG1EZWZhdWx0UGFyZW50Q2xhc3NMb2FkZXIob3JnLmFwYWNoZS5tYXZlbi5jbGFzc3JlYWxtLkRlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QpCiBUaW1lIGVsYXBzZWQ6IDEuMTIgc2VjICA8PDwgRkFJTFVSRSEKanVuaXQuZnJhbWV3b3JrLkFzc2VydGlvbkZhaWxlZEVycm9yOiBudWxsCmF0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQuZmFpbChBc3NlcnQuamF2YTo1NSkKYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5hc3NlcnRUcnVlKEFzc2VydC5qYXZhOjIyKQphdCBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0LmFzc2VydFRydWUoQXNzZXJ0LmphdmE6MzEpCmF0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZS5hc3NlcnRUcnVlKFRlc3RDYXNlLmphdmE6MjAxKQphdApvcmcuYXBhY2hlLm1hdmVuLmNsYXNzcmVhbG0uRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXN0TU5HNjI3NV9tYXZlbkFwaVJlYWxtRGVmYXVsdFBhcmVudENsYXNzTG9hZGVyKERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QuamF2YTo5MSkKCnRlc3RNTkc2Mjc1X2NvcmVSZWFsbURlZmF1bHRQYXJlbnRDbGFzc0xvYWRlcihvcmcuYXBhY2hlLm1hdmVuLmNsYXNzcmVhbG0uRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdCkKIFRpbWUgZWxhcHNlZDogMC4yNzEgc2VjICA8PDwgRkFJTFVSRSEKanVuaXQuZnJhbWV3b3JrLkFzc2VydGlvbkZhaWxlZEVycm9yOiBudWxsCmF0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQuZmFpbChBc3NlcnQuamF2YTo1NSkKYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5hc3NlcnRUcnVlKEFzc2VydC5qYXZhOjIyKQphdCBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0LmFzc2VydFRydWUoQXNzZXJ0LmphdmE6MzEpCmF0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZS5hc3NlcnRUcnVlKFRlc3RDYXNlLmphdmE6MjAxKQphdApvcmcuYXBhY2hlLm1hdmVuLmNsYXNzcmVhbG0uRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXN0TU5HNjI3NV9jb3JlUmVhbG1EZWZhdWx0UGFyZW50Q2xhc3NMb2FkZXIoRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC5qYXZhOjk5KQoKdGVzdE1ORzYyNzVfZXh0ZW5zaW9uUmVhbG1EZWZhdWx0UGFyZW50Q2xhc3NMb2FkZXIob3JnLmFwYWNoZS5tYXZlbi5jbGFzc3JlYWxtLkRlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QpCiBUaW1lIGVsYXBzZWQ6IDAuMjUxIHNlYyAgPDw8IEZBSUxVUkUhCmp1bml0LmZyYW1ld29yay5Bc3NlcnRpb25GYWlsZWRFcnJvcjogbnVsbAphdCBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0LmZhaWwoQXNzZXJ0LmphdmE6NTUpCmF0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQuYXNzZXJ0VHJ1ZShBc3NlcnQuamF2YToyMikKYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5hc3NlcnRUcnVlKEFzc2VydC5qYXZhOjMxKQphdCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2UuYXNzZXJ0VHJ1ZShUZXN0Q2FzZS5qYXZhOjIwMSkKYXQKb3JnLmFwYWNoZS5tYXZlbi5jbGFzc3JlYWxtLkRlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfZXh0ZW5zaW9uUmVhbG1EZWZhdWx0UGFyZW50Q2xhc3NMb2FkZXIoRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC5qYXZhOjczKQoKdGVzdE1ORzYyNzVfcGx1Z2luUmVhbG1EZWZhdWx0UGFyZW50Q2xhc3NMb2FkZXIob3JnLmFwYWNoZS5tYXZlbi5jbGFzc3JlYWxtLkRlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QpCiBUaW1lIGVsYXBzZWQ6IDAuMjQ0IHNlYyAgPDw8IEZBSUxVUkUhCmp1bml0LmZyYW1ld29yay5Bc3NlcnRpb25GYWlsZWRFcnJvcjogbnVsbAphdCBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0LmZhaWwoQXNzZXJ0LmphdmE6NTUpCmF0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQuYXNzZXJ0VHJ1ZShBc3NlcnQuamF2YToyMikKYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5hc3NlcnRUcnVlKEFzc2VydC5qYXZhOjMxKQphdCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2UuYXNzZXJ0VHJ1ZShUZXN0Q2FzZS5qYXZhOjIwMSkKYXQKb3JnLmFwYWNoZS5tYXZlbi5jbGFzc3JlYWxtLkRlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfcGx1Z2luUmVhbG1EZWZhdWx0UGFyZW50Q2xhc3NMb2FkZXIoRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC5qYXZhOjYyKQoKdGVzdE1ORzYyNzVfcHJvamVjdFJlYWxtRGVmYXVsdFBhcmVudENsYXNzTG9hZGVyKG9yZy5hcGFjaGUubWF2ZW4uY2xhc3NyZWFsbS5EZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0KQogVGltZSBlbGFwc2VkOiAwLjI0MiBzZWMgIDw8PCBGQUlMVVJFIQpqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0aW9uRmFpbGVkRXJyb3I6IG51bGwKYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5mYWlsKEFzc2VydC5qYXZhOjU1KQphdCBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0LmFzc2VydFRydWUoQXNzZXJ0LmphdmE6MjIpCmF0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQuYXNzZXJ0VHJ1ZShBc3NlcnQuamF2YTozMSkKYXQganVuaXQuZnJhbWV3b3JrLlRlc3RDYXNlLmFzc2VydFRydWUoVGVzdENhc2UuamF2YToyMDEpCmF0Cm9yZy5hcGFjaGUubWF2ZW4uY2xhc3NyZWFsbS5EZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X3Byb2plY3RSZWFsbURlZmF1bHRQYXJlbnRDbGFzc0xvYWRlcihEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LmphdmE6ODMpCgppbnZlc3RpZ2F0aW5nLi4uCgpPbiAxMSBTZXB0ZW1iZXIgMjAxNyBhdCAwMTo0NCwgU3RlcGhlbiBDb25ub2xseSA8CnN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgoKPiBCdWlsZGluZyB0aGUgc291cmNlIGJ1bmRsZXMgd2l0aCB0aGUgYmluYXJ5IGJ1bmRsZXMgaW4gdGhlIHN0YWdpbmcgcmVwbwo+IHVzaW5nIHRoZSBEb2NrZXJmaWxlIGVudmlyb25tZW50cyBpbiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlLwo+IG1hdmVuLWludGVncmF0aW9uLXRlc3RpbmcvdHJlZS9tYXN0ZXIvZW52aXJvbm1lbnRzCj4KPiBEZWJpYW4gSkRLIDcKPiA9PT09PT09PT09PQo+Cj4gTGludXggNjVmYjgzMmRmZTQzIDQuOS40Ni1tb2J5ICMxIFNNUCBUaHUgU2VwIDcgMDI6NTM6NDIgVVRDIDIwMTcgeDg2XzY0Cj4gR05VL0xpbnV4Cj4gQXBhY2hlIE1hdmVuIDMuNS4xICgwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzOwo+IDIwMTctMDktMTBUMTI6NDI6NTRaKQo+IE1hdmVuIGhvbWU6IC93b3JrL2Jpbgo+IEphdmEgdmVyc2lvbjogMS43LjBfMTUxLCB2ZW5kb3I6IE9yYWNsZSBDb3Jwb3JhdGlvbgo+IEphdmEgaG9tZTogL3Vzci9saWIvanZtL2phdmEtNy1vcGVuamRrLWFtZDY0L2pyZQo+IERlZmF1bHQgbG9jYWxlOiBlbiwgcGxhdGZvcm0gZW5jb2Rpbmc6IFVURi04Cj4gT1MgbmFtZTogImxpbnV4IiwgdmVyc2lvbjogIjQuOS40Ni1tb2J5IiwgYXJjaDogImFtZDY0IiwgZmFtaWx5OiAidW5peCIKPgo+IG12biB2ZXJpZnkgPT4gU1VDQ0VTUwo+Cj4gRGViaWFuIEpESyA4Cj4gPT09PT09PT09PT0KPgo+IExpbnV4IDExZWYxYzExNGI2YiA0LjkuNDYtbW9ieSAjMSBTTVAgVGh1IFNlcCA3IDAyOjUzOjQyIFVUQyAyMDE3IHg4Nl82NAo+IEdOVS9MaW51eAo+IEFwYWNoZSBNYXZlbiAzLjUuMSAoMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMzsKPiAyMDE3LTA5LTEwVDEyOjQyOjU0WikKPiBNYXZlbiBob21lOiAvd29yay9iaW4KPiBKYXZhIHZlcnNpb246IDEuOC4wXzE0MSwgdmVuZG9yOiBPcmFjbGUgQ29ycG9yYXRpb24KPiBKYXZhIGhvbWU6IC91c3IvbGliL2p2bS9qYXZhLTgtb3Blbmpkay1hbWQ2NC9qcmUKPiBEZWZhdWx0IGxvY2FsZTogZW4sIHBsYXRmb3JtIGVuY29kaW5nOiBVVEYtOAo+IE9TIG5hbWU6ICJsaW51eCIsIHZlcnNpb246ICI0LjkuNDYtbW9ieSIsIGFyY2g6ICJhbWQ2NCIsIGZhbWlseTogInVuaXgiCj4KPiBtdm4gdmVyaWZ5ID0+IFNVQ0NFU1MKPgo+IEZlZG9yYSBKREsgOAo+ID09PT09PT09PT09Cj4KPiBMaW51eCA1NDIxMWEwZTY5NGUgNC45LjQ2LW1vYnkgIzEgU01QIFRodSBTZXAgNyAwMjo1Mzo0MiBVVEMgMjAxNyB4ODZfNjQKPiB4ODZfNjQgeDg2XzY0IEdOVS9MaW51eAo+IEFwYWNoZSBNYXZlbiAzLjUuMSAoMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMzsKPiAyMDE3LTA5LTEwVDEyOjQyOjU0WikKPiBNYXZlbiBob21lOiAvd29yay9iaW4KPiBKYXZhIHZlcnNpb246IDEuOC4wXzE0NCwgdmVuZG9yOiBPcmFjbGUgQ29ycG9yYXRpb24KPiBKYXZhIGhvbWU6IC91c3IvbGliL2p2bS9qYXZhLTEuOC4wLW9wZW5qZGstMS44LjAuMTQ0LTUuYjAxLmZjMjYueDg2XzY0L2pyZQo+IERlZmF1bHQgbG9jYWxlOiBlbl9VUywgcGxhdGZvcm0gZW5jb2Rpbmc6IEFOU0lfWDMuNC0xOTY4Cj4gT1MgbmFtZTogImxpbnV4IiwgdmVyc2lvbjogIjQuOS40Ni1tb2J5IiwgYXJjaDogImFtZDY0IiwgZmFtaWx5OiAidW5peCIKPgo+IG12biB2ZXJpZnkgPT4gU1VDQ0VTUwo+Cj4gSUJNIEpESyA4Cj4gPT09PT09PT0KPgo+IExpbnV4IDE5OTYzMWVkY2VlZCA0LjkuNDYtbW9ieSAjMSBTTVAgVGh1IFNlcCA3IDAyOjUzOjQyIFVUQyAyMDE3IHg4Nl82NAo+IHg4Nl82NCB4ODZfNjQgR05VL0xpbnV4Cj4gQXBhY2hlIE1hdmVuIDMuNS4xICgwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzOwo+IDIwMTctMDktMTBUMTI6NDI6NTRaKQo+IE1hdmVuIGhvbWU6IC93b3JrL2Jpbgo+IEphdmEgdmVyc2lvbjogMS44LjAsIHZlbmRvcjogSUJNIENvcnBvcmF0aW9uCj4gSmF2YSBob21lOiAvb3B0L2libS9qYXZhL2pyZQo+IERlZmF1bHQgbG9jYWxlOiBlbl9VUywgcGxhdGZvcm0gZW5jb2Rpbmc6IEFOU0lfWDMuNC0xOTY4Cj4gT1MgbmFtZTogImxpbnV4IiwgdmVyc2lvbjogIjQuOS40Ni1tb2J5IiwgYXJjaDogImFtZDY0IiwgZmFtaWx5OiAidW5peCIKPgo+IG12biB2ZXJpZnkgPT4gU1VDQ0VTUwo+Cj4gQXN1bCBadWx1IEpESyA4Cj4gPT09PT09PT09PT09PQo+Cj4gTGludXggMTBlOGY0ZTQ2MTM4IDQuOS40Ni1tb2J5ICMxIFNNUCBUaHUgU2VwIDcgMDI6NTM6NDIgVVRDIDIwMTcgeDg2XzY0Cj4geDg2XzY0IHg4Nl82NCBHTlUvTGludXgKPiBBcGFjaGUgTWF2ZW4gMy41LjEgKDA5NGU0ZTMxYTVhZjU1YmIxN2JlODc2NzVkYTQxZDlhZWNhMDYyZjM7Cj4gMjAxNy0wOS0xMFQxMjo0Mjo1NFopCj4gTWF2ZW4gaG9tZTogL3dvcmsvYmluCj4gSmF2YSB2ZXJzaW9uOiAxLjguMF8xNDQsIHZlbmRvcjogQXp1bCBTeXN0ZW1zLCBJbmMuCj4gSmF2YSBob21lOiAvdXNyL2xpYi9qdm0venVsdS04LWFtZDY0L2pyZQo+IERlZmF1bHQgbG9jYWxlOiBlbl9VUywgcGxhdGZvcm0gZW5jb2Rpbmc6IFVURi04Cj4gT1MgbmFtZTogImxpbnV4IiwgdmVyc2lvbjogIjQuOS40Ni1tb2J5IiwgYXJjaDogImFtZDY0IiwgZmFtaWx5OiAidW5peCIKPgo+IG12biB2ZXJpZnkgPT4gU1VDQ0VTUwo+Cj4gSWYgSSBnZXQgdGltZSBsYXRlciBJJ2xsIHJ1biB0aGUgaW50ZWdyYXRpb24gdGVzdHMuCj4KPiBPbiAxMSBTZXB0ZW1iZXIgMjAxNyBhdCAwMDoyMCwgRGFuIFRyYW4gPGRhbnRyYW5AZ21haWwuY29tPiB3cm90ZToKPgo+PiBGYWxzZSBhbGFybSwgSSBtaXNzZWQgY29uZmlndXJlIGdsb2JhbCBzZXR0aW5ncy54bWwsIGl0IGlzIG1pc3NpbmcgdGhlCj4+IGRlZmF1bHQgcmVwb3NpdG9yeSBzZXR1cAo+Pgo+PiAtRAo+Pgo+PiBPbiBTdW4sIFNlcCAxMCwgMjAxNyBhdCAxMTo0NyBQTSwgVGlib3IgRGlnYW5hIDwKPj4gdGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tPgo+PiB3cm90ZToKPj4KPj4gPiArMToKPj4gPiAzLjUuMSB3b3JrcyBpbiBteSBwcm9qZWN0IGxpa2UgYSBjaGFybSA7LSkKPj4gPgo+PiA+IE9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDU6MzkgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+PiA+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+PiA+Cj4+ID4gPiBIaSwKPj4gPiA+Cj4+ID4gPiBXZSBzb2x2ZWQgMjUgaXNzdWVzOgo+PiA+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhPwo+PiA+ID4gdmVyc2lvbj0xMjMzODk2NCZzdHlsZU5hbWU9VGV4dCZwcm9qZWN0SWQ9MTIzMTY5MjIKPj4gPiA+Cj4+ID4gPiBUaGVyZSBhcmUgMzUwIGlzc3VlcyBsZWZ0IGluIEpJUkEgZm9yIE1hdmVuIGNvcmU6Cj4+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9cHJvamVjdCUyMCUKPj4gPiA+IDNEJTIwTU5HJTIwQU5EJTIwcmVzb2x1dGlvbiUyMCUzRCUyMFVucmVzb2x2ZWQlMjBPUkRFUiUKPj4gPiA+IDIwQlklMjBkdWUlMjBBU0MlMkMlMjBwcmlvcml0eSUyMERFU0MlMkMlMjBjcmVhdGVkJTIwQVNDCj4+ID4gPgo+PiA+ID4gU3RhZ2luZyByZXBvOgo+PiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2NC8KPj4gPiA+Cj4+ID4gPiBUaGUgZGlzdHJpYnV0YWJsZSBiaW5hcmllcyBhbmQgc291cmNlcyBjYW4gYmUgZm91bmQgaGVyZToKPj4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+PiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS8KPj4gPiA+Cj4+ID4gPiBTcGVjaWZpY2FsbHkgdGhlIHppcCwgdGFyYmFsbCBhbmQgc291cmNlIGFyY2hpdmVzIGNhbiBiZSBmb3VuZCBoZXJlOgo+PiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1iaW4uemlwCj4+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPj4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLQo+PiBiaW4udGFyLmd6Cj4+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPj4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy56aXAKPj4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+PiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtCj4+IHNyYy50YXIuZ3oKPj4gPiA+Cj4+ID4gPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPj4gPiA+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMudGFyLmd6IHNoYTE6IDllYjgyMWYxNTNjNzY2NzE5NGFhMTFjY2QwOTliNwo+PiA+ID4gYmQyMDU5NTYwZAo+PiA+ID4gYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy56aXA6IHNoYTE6IDEyMWQ1NGIwNDUzODBhOGE0ODk1ZWIxMzc5NzBhYgo+PiA+IDY5ZTY5OGViMGUKPj4gPiA+Cj4+ID4gPiBHaXQgdGFnOgo+PiA+ID4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9bWF2ZW4uZ2l0O2E9Y29tbWl0O2g9Cj4+ID4gPiAwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzCj4+ID4gPgo+PiA+ID4gU3RhZ2luZyBzaXRlOgo+PiA+ID4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2NvbXBvbmVudHMvcmVmLzMtTEFURVNULwo+PiA+ID4KPj4gPiA+IFZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCj4+ID4gPgo+PiA+ID4gWyBdICsxCj4+ID4gPiBbIF0gKzAKPj4gPiA+IFsgXSAtMQo+PiA+ID4KPj4gPiA+IFRoYW5rcywKPj4gPiA+Cj4+ID4gPiBTdGVwaGVuLgo+PiA+ID4KPj4gPgo+PiA+Cj4+ID4KPj4gPiAtLQo+PiA+IENoZWVycwo+PiA+IFRpYm9yCj4+ID4KPj4KPgo+CgotLTAwMWExMTQzOGZhMmNkMGQ0NjA1NThlNjBmNGYtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDE1NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgT2N0ICA2IDIwOjUzOjEyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDE1NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBENkFENzEwQTZBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgIDYgT2N0IDIwMTcgMjA6NTM6MTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzNzc1OSBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IE9jdCAyMDE3IDIwOjUzOjA3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNzY4NSBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IE9jdCAyMDE3IDIwOjUzOjA3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzc2NzIgaW52b2tlZCBieSB1aWQgOTkpOyA2IE9jdCAyMDE3IDIwOjUzOjA3IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAwNiBPY3QgMjAxNyAyMDo1MzowNyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDdEQjc1MTgwQTQ2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAgNiBPY3QgMjAxNyAyMDo1MzowNiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuODc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuODc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgRE5Wdng2ZW4xWjJKIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJRnJpLCAgNiBPY3QgMjAxNyAyMDo1MzowNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdtMC1mNDcuZ29vZ2xlLmNvbSAobWFpbC13bTAtZjQ3Lmdvb2dsZS5jb20gWzc0LjEyNS44Mi40N10pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAxQTcyMTVGNUZECglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAgNiBPY3QgMjAxNyAyMDo1MzowNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13bTAtZjQ3Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGs0c28xMDI1NDgxM3dtYy4xCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMDYgT2N0IDIwMTcgMTM6NTM6MDQgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9SUVXakZGOWZLSkVKaU8rbjhHWEo5ZmRPeFFjUDdEYTE5eXdCVzgybC9xUT07CiAgICAgICAgYj1XaWJycW15MERFa0JPcDc5bDRtaTQvTUtFd2txMjQ4L1NqeG9PV2FUL3RPTW9NaEhuY1l1UlhZTzI5VDl3UjAyNVEKICAgICAgICAgeWRPeU11K0w2RWRBNUw0OHN4TFBld2N1Z3Brb0E1NXh6STNDZzVKUGpaS3pXNHZtTnIrYTRiOWV3MjNiNTh5KzN6QkcKICAgICAgICAgdDdPaHZTYisrUmpyUUxYVTdBcER5bFBZaVdjSldCZURqSXNucnhCOUdtN2puR0FLa1dqYnZqU3BxT1ZtOXdERmxldkkKICAgICAgICAgMEV6Zk1NVExUYWVneTh5VURiNzRUMHVxUm9Nb1NTMG9wa1dqRkUzVHM3R241ekhBakk0dytrVmZMTFpxa3hIUjJhdkgKICAgICAgICAgOTIzbzBCa2lKWUNGSDh5Rm9QVTVHQU1yZHdzazlxK3M2TmJMcmsyU0drbzFXRXhVYkpRVDkwWjExaytQbUpaTGFhbm0KICAgICAgICAgTlRQQT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9SUVXakZGOWZLSkVKaU8rbjhHWEo5ZmRPeFFjUDdEYTE5eXdCVzgybC9xUT07CiAgICAgICAgYj1aNVhjbFR1cjZSVEhIdW5aT3B4UFZNZ0hIRGdpMC9Oajdrb1MycXdaV1h2Y3VzdG8xK0lGNWFNcTFWRWE4dmxQQnkKICAgICAgICAgcVBFVnB5ZHRIVzBHV3RMK2M4OEdqZU4rNGw4YWhmQ2tQMEFUVEd6ZWsrbWdGOVpydHdwWE13ZlFVcE43MGNrMTFqb0sKICAgICAgICAgbGptNFVvUXFIb25DdjdzQ01DUnBsQXYzSmh0ZVBMNlkzQmJRNWRZd283TGtMQWh3TW1vVEx2aUxINmxIL2pFdWZvcWQKICAgICAgICAgb3owUTlVR09ocUFyekNvRXVCczYza1RJVmtSYVBSZ0N0N1R6a0xRTEVJUk5aQkllS3FGcURHOVZXU2RXZXcwb2RQdGYKICAgICAgICAgUmI2ejVnV2dwSVF3K0hpaVJTSkZjZGdiRXY2dUJwY2VTZVgwbnplZktOanRwSVpqck4vSjdmZUd2TTJzZ0o5LzlEUHIKICAgICAgICAgTWlLZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVXVBZzYvUGEydWJLQlZsT3lWYTFzVTBGU25xa3QyRkZaTjlEVCtrNGZYeUNPSXBIOXIKCU9zQjZZQmJBb0tFK2d3OU9Dbm1xMFA1VGgvbVN5OXVMdTV3czJRVjBmZz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FCRDlXaGUvSEUwMUpxMUJNd3p0bytzVklPWVBtNVVxdWx4UXVsS1o3VVZMVkhwM3lma0VrQ295MSs3aDM4OXlNU3o5SWVnUS93R0ZkdnB4VWpwbjdrPQpYLVJlY2VpdmVkOiBieSAxMC4yOC42My4yMDYgd2l0aCBTTVRQIGlkIG0xOTdtcjI4NzMwNjJ3bWEuMTA2LjE1MDczMjMxODM1NTg7CiBGcmksIDA2IE9jdCAyMDE3IDEzOjUzOjAzIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDwxMDU0NDYxNS5CNGhPM1BudkV6QGdpZ2E+IDxDQStuUG5NeDluMzBRd1Q2SDFQYmZWUnhOM2k5dFR2eWZuPW80eFF3RWcxQmVzXzZ3UXdAbWFpbC5nbWFpbC5jb20+CiA8Q0FGTkNVLTlxYU5lWFVlczdPK0J4U1BvQXBEeTVMRE9VQmFrVDFjMUY9aDg2TEpiQlN3QG1haWwuZ21haWwuY29tPgpJbi1SZXBseS1UbzogPENBRk5DVS05cWFOZVhVZXM3TytCeFNQb0FwRHk1TERPVUJha1QxYzFGPWg4NkxKYkJTd0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAwNiBPY3QgMjAxNyAyMDo1Mjo1MyArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXhuNW0zcERuRU10THNBc1VRbWgxSk01c291M3lkZS1WN3Z6SkxDRFcyOG1RQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogSmVua2lucyBhbmQgTWF2ZW4gMy4wLjUgb3IgSkRLIDcKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNGI4MjM4ZWFmN2ZmMDU1YWU3MDYzYSIKCi0tMDAxYTExNGI4MjM4ZWFmN2ZmMDU1YWU3MDYzYQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPbiBGcmkgNiBPY3QgMjAxNyBhdCAxNjo0NywgQXJuYXVkIEg9QzM9QTlyaXRpZXIgPGFoZXJpdGllckBnbWFpbC5jb20+IHdyb3Q9CmU6Cgo+IEkgYWdyZWUgdGhhdCB3ZSBzaG91bGQgdXNlIHBpcGVsaW5lIG5vd2RheXMKPiBwZXJoYXBzIGEgc2hhcmVkIGxpYiBpZiB3ZSB3YW50IHRvIHN0YW5kYXJkaXplIHNvbWUgc3R1ZmZzIGFuZCBhIHNldCBvZgo+IG11bHRpLWJyYW5jaGVzIGpvYnMgKG9yIG9yZyBmb2xkZXIgYnV0IGl0IHJlcXVpcmVzIEdpdEh1YiA6KCApCgoKTmFoIEkgY2FuIGdpdmUgdXMgb3JnIGZvbGRlciBvbiB0b3Agb2YgQVNGIHB1YnN1YiByZWxhdGl2ZWx5IGVhc2lseQoKCj4KPiBPbiBGcmksIE9jdCA2LCAyMDE3IGF0IDk6MTYgQU0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Cj4gPiBPbiBGcmkgNiBPY3QgMjAxNyBhdCAwNjozMiwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ID0Kd3JvdGU6Cj4gPgo+ID4gPiBJIGp1c3QgZml4ZWQgYSBmZXcgZmFpbGluZyBqb2JzIFsxXSB0byBoYXZlIGFnYWluIGEgdXNhYmxlIEplbmtpbnMuCj4gPiA+Cj4gPiA+IE5vdyBJJ20gZmFjaW5nIHNvbWUgaXNzdWVzLCBJIHN1cHBvc2UgY2F1c2VkIGJ5IG5ld2VyIEplbmtpbnMgdmVyc2lvbj0KczoKPiA+ID4gLSBNYXZlbiAzLjAuNSBjYXVzZXMgTm9TdWNoTWV0aG9kRXJyb3I6IG8uYy5wbGV4dXMudXRpbC54bWwucHVsbC4KPiA+IE1YUGFyc2VyCj4gPiA+IFsyXQo+ID4gPiAtIEkgaGFkIHRvIHN3aXRjaCB0byBKREsgOCBmb3IgbWF2ZW4tcGx1Z2luLXRvb2xzIGpvYiwgc2luY2UgSkRLIGNhdXM9CmVzCj4gPiA+IGZhaWx1cmVzIChsb29rcyBsaWtlIEplbmtpbnMgdXNlcyBhIGhhY2sgdG8gaW5qZWN0IEpESyA3IGFzIGEgdG9vbAo+IHdoaWxlCj4gPiA+IHRoZQo+ID4gPiBidWlsZCBKVk0gaXMgSmF2YSA4KQo+ID4gPgo+ID4gPiBTaG91bGQgd2UgZHJvcCBNYXZlbiAzLjAuNSBidWlsZHMgYW5kIEpESyA3Pwo+ID4gPiBOb3RpY2UgSSBkaWRuJ3QgY2hlY2sgd2hpY2ggaXMgdGhlIG1pbmltdW0gTWF2ZW4gdmVyc2lvbiByZXF1aXJlZC4uLgo+ID4gPgo+ID4gPiBPciBwZXJoYXBzIHNpbXBseSBkb24ndCB1c2UgdGhlIEplbmtpbnMgTWF2ZW4gcGx1Z2luIHdpdGggdGhpcyBNYXZlbgo+ID4gMy4wLjUKPiA+ID4gb3IKPiA+ID4gSkRLIDcgY29uZmlndXJhdGlvbjogZGVmYXVsdCBidWlsZCBhcyBKZW5raW5zIE1hdmVuIHBsdWdpbiB3aXRoIEpESyA4PQogKwo+ID4gPiBsYXRlc3QKPiA+ID4gTWF2ZW4sIGFuZCBvdGhlciBjb25maWd1cmF0aW9ucyBhcyBzY3JpcHRlZCBqb2JzPwo+ID4KPiA+Cj4gPiBodHRwOi8vamF2YWFkdmVudHVyZS5ibG9nc3BvdC5pZS8yMDEzLzExL2plbmtpbnMtbWF2ZW4tam9iLQo+ID4gdHlwZS1jb25zaWRlcmVkLWV2aWwuaHRtbAo+ID4gPGh0dHA6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90LmllLzIwMTMvMTEvamVua2lucy0KPiA+IG1hdmVuLWpvYi10eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sP209M0QxPgo+ID4KPiA+IFdlIHNob3VsZCBzdG9wIHVzaW5nIHRoZSBldmlsIGpvYiB0eXBlIGFzIGl0PUUyPTgwPTk5cyBtaW5pbXVtIEphdmEgdmVyPQpzaW9uIGlzCj4gPiBkaWN0YXRlZCBieSBKZW5raW5zPUUyPTgwPTk5IEphdmEgbWluaW11bS4KPiA+Cj4gPgo+ID4gPgo+ID4gPiBXZSBuZWVkIHRvIGRlZmluZSBvdXIgY29tbW9uIHN0cmF0ZWd5IGFuZCBoYXZlIGEgY29uc2lzdGVudAo+IGNvbmZpZ3VyYXRpb24KPiA+ID4gZm9yCj4gPiA+IGV2ZXJ5IGpvYiB1bmRlcnN0b29kIGJ5IGV2ZXJ5Ym9keQo+ID4KPiA+Cj4gPiBJIHJlY29tbWVuZCBKZW5raW5zZmlsZSBhbmQgdGhlIGB3aXRoTWF2ZW5gIHdyYXBwZXIKPiA+Cj4gPiA+Cj4gPiA+Cj4gPiA+IFJlZ2FyZHMsCj4gPiA+Cj4gPiA+IEhlcnY9QzM9QTkKPiA+ID4KPiA+ID4gWzFdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi8KPiA+ID4KPiA+ID4gWzJdCj4gPiA+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tCj4gPiBwbHVnaW4tdG9vbHMtamRrLTEuNy8xNjIvY29uc29sZQo+ID4gPgo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPgo+ID4gPiAtLQo+ID4gU2VudCBmcm9tIG15IHBob25lCj4gPgo+Cj4KPgo+IC0tCj4gLS0tLS0KPiBBcm5hdWQgSD1DMz1BOXJpdGllcgo+IGh0dHA6Ly9haGVyaXRpZXIubmV0Cj4gTWFpbC9HVGFsazogYWhlcml0aWVyIEFUIGdtYWlsIERPVCBjb20KPiBUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyCj4KLS09MjAKU2VudCBmcm9tIG15IHBob25lCgotLTAwMWExMTRiODIzOGVhZjdmZjA1NWFlNzA2M2EtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDc3NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgRGVjIDEzIDA5OjQ1OjE5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDc3NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4ODQzNDE3Qzc5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMTMgRGVjIDIwMTcgMDk6NDU6MTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4OTI4MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMyBEZWMgMjAxNyAwOTo0NToxOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODkxODggaW52b2tlZCBieSB1aWQgNTAwKTsgMTMgRGVjIDIwMTcgMDk6NDU6MTkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4OTE3NiBpbnZva2VkIGJ5IHVpZCA5OSk7IDEzIERlYyAyMDE3IDA5OjQ1OjE4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAxMyBEZWMgMjAxNyAwOTo0NToxOCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDNDRjlFMUEwQUIxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMyBEZWMgMjAxNyAwOTo0NToxOCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuODc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuODc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBZWEI1c0NGUjJfZ2EgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsIDEzIERlYyAyMDE3IDA5OjQ1OjA5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd20wLWY1Mi5nb29nbGUuY29tIChtYWlsLXdtMC1mNTIuZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjUyXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDA5NUIyNUYzNjcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDEzIERlYyAyMDE3IDA5OjQ1OjA5ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNTIuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgdDhzbzM2ODIzODh3bWMuMwogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDEzIERlYyAyMDE3IDAxOjQ1OjA4IC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvCiAgICAgICAgIDpjYzsKICAgICAgICBiaD1hRWgrVlNnRU5vUlZGUFdBOEpRdENYZnNadVlSbmpJYld3Wnc2NmQ0SjdNPTsKICAgICAgICBiPVQvZTFLSlJwQ0pGa0NkTWFpUjNOZmZkY2s5VUlEKy9TNUQrZVdxYlJUUm5KM3lob2NFQlJXUVNxQ1R6K09MSWNhNAogICAgICAgICBiWVljUmRYMkg2eXpFUFVScjdJZEFaL1JSL0F4ZHRHa3BzcjdrZlFmeTB3YTBJNjBGc0NFdUVVa1llMk5ydnFmQTRZZwogICAgICAgICBidkZLUkJjTmsyWWFqb0l6Qk8zek5JTXVJeWhsNTBwSUVlWEZsSkJkZHNtZGkrVGMrdnRVTHZpVDFpR1JpalgybjlPSAogICAgICAgICBGeEtPWGczdnVaa2FoNm9LbDFTSjAwOG8zTmlaaVlpaUp0OVNmTmR0ZGl3dUhWL08rdTJvV1o3ZWV6bEhmaXI1NXJlQgogICAgICAgICA1S2ltdnhCUHVqOTBaUGFFMEEzbkZqaHpoZjlVcUJPUTZHZ2JGK3JGZ2g5dXNhQzBkMTBHcVJSdTJvSHBUNUZhK1BGOQogICAgICAgICBKd3p3PT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzpjYzsKICAgICAgICBiaD1hRWgrVlNnRU5vUlZGUFdBOEpRdENYZnNadVlSbmpJYld3Wnc2NmQ0SjdNPTsKICAgICAgICBiPVdEeGVYZnRKaWlNaU5wL1BFdnVyTWR3VVpTMzJnN3FqL0lsK1ZOTkhnbU5GWEQ4Um9lYjZzZ04yVTJENEI4bXdFNgogICAgICAgICBjN0xnYlRDWkpSVk1uVWlyaVN0UjRPVkd4UHhsWGszbXUvRkZFNWQxYThaa09MV0tXS3h4emRCcytERDNGMDRNL3RsZwogICAgICAgICBKVzExOE84Y2M0OW91NG9qM0xrd1BSRVgzaHZaYmQ2dFJFakdGemhSVnI3UnNaYU1aL0lrOWQwWDlQck91VjRVRWs5WAogICAgICAgICBEeEFtbkE2NlFzWll5MzRUbkhteTd3dnpscHV6SzR1K1d1TFhTeGZhMWhQa3hJcWdRVml4MDAvWXY2YVhVSzRMazNmaQogICAgICAgICBINFRoQzR0QWNPWFFEeWl0YStxaVhJcGJ2ODdPaWM2TzNMcUxkd0Zwand4SWdoVXNhWlJKemRIdnAvSVhuSE1OcWF6UAogICAgICAgICBVN01nPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBS0dCM21LdXA1aDFYMytFc3NLa3dMUWZvcStNci80bVhXUS9rZlRsZVJ0d3RSNlZuVnVBQVBvcwoJY1B2d3FSTGJyamNqeFg5YlVUbDdyYkI1bU0xdTNGZ0JJZE9JdGpDeWFFSE4KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFDSmZCb3RqNEJSMXRtUm5YMEFxVGwzTUIyUEZSaWFTeFpWZ3gxTTA3K3g3U2s5VTdMdGE2cDRXU0JhdXdLNFNvQ1VESnhlVE95Z1dTRWVyZFdhT3A1SnhOa3c9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjI4LjQ3LjY2IHdpdGggU01UUCBpZCB2NjNtcjEzNjg5NTZ3bXYuMTQ0LjE1MTMxNTgzMDIxODE7CiBXZWQsIDEzIERlYyAyMDE3IDAxOjQ1OjAyIC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yMjMuMTczLjIzNSB3aXRoIEhUVFA7IFdlZCwgMTMgRGVjIDIwMTcgMDE6NDU6MDEgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDwxMjEyNTIwMjIzLjMzMC4xNTEzMTI3Mzc0ODU0LkphdmFNYWlsLmplbmtpbnNAamVua2lucy1tYXN0ZXIuYXBhY2hlLm9yZz4KUmVmZXJlbmNlczogPDEyMTI1MjAyMjMuMzMwLjE1MTMxMjczNzQ4NTQuSmF2YU1haWwuamVua2luc0BqZW5raW5zLW1hc3Rlci5hcGFjaGUub3JnPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBXZWQsIDEzIERlYyAyMDE3IDA5OjQ1OjAxICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NeG9QdzFESkVyb2dEdEhPUkpXWVpXLWo5WktIVCt4RFhSRGNTdU8zeThWcEFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6ID0/VVRGLTg/UT9SZT0zQV9CdWlsZF91bnN0YWJsZV9pbl9KZW5raW5zPTNBX01hdmVuX1RMUF89Mjh3aXA9MjlfPUMyPUJCX21hPz0KCT0/VVRGLTg/UT92ZW5fPUMyPUJCX21hc3Rlcl89MjMxOD89ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDYzogY2xlY2xlcmNAY2xvdWRiZWVzLmNvbQpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQyMzBjZTE3MmYyODA1NjAzNTlmYTYiCgotLTAwMWExMTQyMzBjZTE3MmYyODA1NjAzNTlmYTYKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKaHR0cHM6Ly9pc3N1ZXMuamVua2lucy1jaS5vcmcvYnJvd3NlL0pFTktJTlMtNDg1MzQgZmlsZWQgdG8gYWRkcmVzcyB0aGlzCmlzc3VlCgpPbiAxMyBEZWNlbWJlciAyMDE3IGF0IDAxOjA5LCBBcGFjaGUgSmVua2lucyBTZXJ2ZXIgPApqZW5raW5zQGJ1aWxkcy5hcGFjaGUub3JnPiB3cm90ZToKCj4gU2VlIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvam9iL21hdmVuLXdpcC9qb2IvbWF2ZW4vam9iL21hc3Rlci8xOC8KPgo+IENoYW5nZXM6Cj4KPiAqIE5vdGluZyBJTkZSQS0xNTY1MQo+ICogVHlwb3dxCj4gKiBObyBuZWVkIHRvIGNvbGxlY3QgZmluZGJ1Z3MgZXRjIG9uIGFueXRoaW5nIG90aGVyIHRoYW4gdGhlIGZpcnN0Cj4gKiBzeW50YXgKPiAqIHN5bnRheCBhZ2Fpbgo+ICogQWxsb3cgJ2pkaycgb3IgJ2pka3MnCj4gKiBCZXR0ZXIgcmVwb3J0IGNvbGxlY3Rpb24gb3B0aW1pemF0aW9uCj4gKiBzeW50YXggZnR3Cj4gKiBzeW50YXggdGFrZSA1Cj4gKiBidWlsZCB0aGUgY29tbWFuZCBsaW5lIGluIG1vcmUgZXh0ZW5zaWJsZSB3YXkKPiAqIEFoYVwhIGZpcnN0IHdhcyBiZWluZyBldmFsdWF0ZWQgYWZ0ZXIgYWRkaW5nIHRoZSB0YXNrCj4gKiBjYXB0dXJlIGFub3RoZXIKPiAqIFN0YXJ0IHVzaW5nIHNvbWUgb2YgdGhlIGplbmtpbnNFbnYgc3R1ZmYKPiAqIFN5bnRheAo+ICogU3ludGF4Cj4gKiBFbnN1cmUgYW55IGZvcmtlZCBNYXZlbiBleGVjdXRpb25zIGFyZSBub3Qgc3BpZWQgb24gYnkgSmVua2lucwo+ICogRW5zdXJlIGFueSBmb3JrZWQgTWF2ZW4gZXhlY3V0aW9ucyBhcmUgbm90IHNwaWVkIG9uIGJ5IEplbmtpbnMKPiAqIEVuc3VyZSBhbnkgZm9ya2VkIE1hdmVuIGV4ZWN1dGlvbnMgYXJlIG5vdCBzcGllZCBvbiBieSBKZW5raW5zCj4gKiBFbnN1cmUgYW55IGZvcmtlZCBNYXZlbiBleGVjdXRpb25zIGFyZSBub3Qgc3BpZWQgb24gYnkgSmVua2lucwo+ICogRW5zdXJlIGFueSBmb3JrZWQgTWF2ZW4gZXhlY3V0aW9ucyBhcmUgbm90IHNwaWVkIG9uIGJ5IEplbmtpbnMKPiAqIEVuc3VyZSBhbnkgZm9ya2VkIE1hdmVuIGV4ZWN1dGlvbnMgYXJlIG5vdCBzcGllZCBvbiBieSBKZW5raW5zCj4gKiBFbnN1cmUgYW55IGZvcmtlZCBNYXZlbiBleGVjdXRpb25zIGFyZSBub3Qgc3BpZWQgb24gYnkgSmVua2lucwo+ICogRW5zdXJlIGFueSBmb3JrZWQgTWF2ZW4gZXhlY3V0aW9ucyBhcmUgbm90IHNwaWVkIG9uIGJ5IEplbmtpbnMKPgo+IDIgdGVzdHMgZmFpbGVkLgo+IEZBSUxFRDogIG9yZy5hcGFjaGUubWF2ZW4uaXQuTWF2ZW5JVG1uZzQzODdRdWlldExvZ2dpbmdUZXN0LnRlc3RpdAo+Cj4gRXJyb3IgTWVzc2FnZToKPiBleHBlY3RlZDo8W10+IGJ1dCB3YXM6PFtbamVua2lucy1tYXZlbi1ldmVudC1zcHldIElORk8gSmVua2lucyBNYXZlbgo+IEV2ZW50IFNweSBpcyBkaXNhYmxlZF0+Cj4KPiBTdGFjayBUcmFjZToKPiBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0aW9uRmFpbGVkRXJyb3I6IGV4cGVjdGVkOjxbXT4gYnV0Cj4gd2FzOjxbW2plbmtpbnMtbWF2ZW4tZXZlbnQtc3B5XSBJTkZPIEplbmtpbnMgTWF2ZW4gRXZlbnQgU3B5IGlzIGRpc2FibGVkXT0KPgo+ICAgICAgICAgYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5mYWlsKEFzc2VydC5qYXZhOjQ3KQo+ICAgICAgICAgYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5mYWlsTm90RXF1YWxzKEFzc2VydC5qYXZhOjI4MykKPiAgICAgICAgIGF0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQuYXNzZXJ0RXF1YWxzKEFzc2VydC5qYXZhOjY0KQo+ICAgICAgICAgYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5hc3NlcnRFcXVhbHMoQXNzZXJ0LmphdmE6NzEpCj4gICAgICAgICBhdCBvcmcuYXBhY2hlLm1hdmVuLml0Lk1hdmVuSVRtbmc0Mzg3UXVpZXRMb2dnaW5nVGVzdC50ZXN0aXQoCj4gTWF2ZW5JVG1uZzQzODdRdWlldExvZ2dpbmdUZXN0LmphdmE6NzEpCj4KPgo+IEZBSUxFRDogIG9yZy5hcGFjaGUubWF2ZW4uaXQuTWF2ZW5JVG1uZzQzODdRdWlldExvZ2dpbmdUZXN0LnRlc3RpdAo+Cj4gRXJyb3IgTWVzc2FnZToKPiBleHBlY3RlZDo8W10+IGJ1dCB3YXM6PFtbamVua2lucy1tYXZlbi1ldmVudC1zcHldIElORk8gSmVua2lucyBNYXZlbgo+IEV2ZW50IFNweSBpcyBkaXNhYmxlZF0+Cj4KPiBTdGFjayBUcmFjZToKPiBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0aW9uRmFpbGVkRXJyb3I6IGV4cGVjdGVkOjxbXT4gYnV0Cj4gd2FzOjxbW2plbmtpbnMtbWF2ZW4tZXZlbnQtc3B5XSBJTkZPIEplbmtpbnMgTWF2ZW4gRXZlbnQgU3B5IGlzIGRpc2FibGVkXT0KPgo+ICAgICAgICAgYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5mYWlsKEFzc2VydC5qYXZhOjQ3KQo+ICAgICAgICAgYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5mYWlsTm90RXF1YWxzKEFzc2VydC5qYXZhOjI4MykKPiAgICAgICAgIGF0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQuYXNzZXJ0RXF1YWxzKEFzc2VydC5qYXZhOjY0KQo+ICAgICAgICAgYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5hc3NlcnRFcXVhbHMoQXNzZXJ0LmphdmE6NzEpCj4gICAgICAgICBhdCBvcmcuYXBhY2hlLm1hdmVuLml0Lk1hdmVuSVRtbmc0Mzg3UXVpZXRMb2dnaW5nVGVzdC50ZXN0aXQoCj4gTWF2ZW5JVG1uZzQzODdRdWlldExvZ2dpbmdUZXN0LmphdmE6NzEpCj4KPgo+Cj4KPiBCdWlsZCBsb2c6Cj4gWy4uLnRydW5jYXRlZCA1Ljk5IE1CLi4uXQo+IFt3aW5KYXZhN10gICAgICBhdCBjb20uY2xvdWRiZWVzLmdyb292eS5jcHMuT3V0Y29tZS5yZXN1bWVGcm9tKE91dGNvbWUuCj4gamF2YTo3MykKPiBbd2luSmF2YTddICAgICAgYXQgY29tLmNsb3VkYmVlcy5ncm9vdnkuY3BzLkNvbnRpbnVhYmxlJDEuY2FsbCgKPiBDb250aW51YWJsZS5qYXZhOjE2NikKPiBbd2luSmF2YTddICAgICAgYXQgY29tLmNsb3VkYmVlcy5ncm9vdnkuY3BzLkNvbnRpbnVhYmxlJDEuY2FsbCgKPiBDb250aW51YWJsZS5qYXZhOjE2MykKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmNvZGVoYXVzLmdyb292eS5ydW50aW1lLkdyb292eUNhdGVnb3J5U3VwcG9ydCQKPiBUaHJlYWRDYXRlZ29yeUluZm8udXNlKEdyb292eUNhdGVnb3J5U3VwcG9ydC5qYXZhOjEyMikKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmNvZGVoYXVzLmdyb292eS5ydW50aW1lLkdyb292eUNhdGVnb3J5U3VwcG9ydC51c2UoCj4gR3Jvb3Z5Q2F0ZWdvcnlTdXBwb3J0LmphdmE6MjYxKQo+IFt3aW5KYXZhN10gICAgICBhdCBjb20uY2xvdWRiZWVzLmdyb292eS5jcHMuQ29udGludWFibGUucnVuMChDb250aW51YWJsZS4KPiBqYXZhOjE2MykKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy4KPiBTYW5kYm94Q29udGludWFibGUuYWNjZXNzJDAwMShTYW5kYm94Q29udGludWFibGUuamF2YToxOSkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy4KPiBTYW5kYm94Q29udGludWFibGUkMS5jYWxsKFNhbmRib3hDb250aW51YWJsZS5qYXZhOjM1KQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuY3BzLgo+IFNhbmRib3hDb250aW51YWJsZSQxLmNhbGwoU2FuZGJveENvbnRpbnVhYmxlLmphdmE6MzIpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy5zY3JpcHRzZWN1cml0eS5zYW5kYm94Lmdyb292eS4KPiBHcm9vdnlTYW5kYm94LnJ1bkluU2FuZGJveChHcm9vdnlTYW5kYm94LmphdmE6MTA4KQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuY3BzLgo+IFNhbmRib3hDb250aW51YWJsZS5ydW4wKFNhbmRib3hDb250aW51YWJsZS5qYXZhOjMyKQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuY3BzLkNwc1RocmVhZC4KPiBydW5OZXh0Q2h1bmsoQ3BzVGhyZWFkLmphdmE6MTc0KQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuY3BzLkNwc1RocmVhZEdyb3VwLgo+IHJ1bihDcHNUaHJlYWRHcm91cC5qYXZhOjMzMCkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy5DcHNUaHJlYWRHcm91cC4KPiBhY2Nlc3MkMTAwKENwc1RocmVhZEdyb3VwLmphdmE6ODIpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuQ3BzVGhyZWFkR3JvdXAkMi4KPiBjYWxsKENwc1RocmVhZEdyb3VwLmphdmE6MjQyKQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuY3BzLkNwc1RocmVhZEdyb3VwJDIuCj4gY2FsbChDcHNUaHJlYWRHcm91cC5qYXZhOjIzMCkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy4KPiBDcHNWbUV4ZWN1dG9yU2VydmljZSQyLmNhbGwoQ3BzVm1FeGVjdXRvclNlcnZpY2UuamF2YTo2NCkKPiBbd2luSmF2YTddICAgICAgYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuRnV0dXJlVGFzay5ydW4oRnV0dXJlVGFzay4KPiBqYXZhOjI2NikKPiBbd2luSmF2YTddICAgICAgYXQgaHVkc29uLnJlbW90aW5nLlNpbmdsZUxhbmVFeGVjdXRvclNlcnZpY2UkMS4KPiBydW4oU2luZ2xlTGFuZUV4ZWN1dG9yU2VydmljZS5qYXZhOjExMikKPiBbd2luSmF2YTddICAgICAgYXQgamVua2lucy51dGlsLkNvbnRleHRSZXNldHRpbmdFeGVjdXRvclNlcnZpY2UkMS5ydW4oCj4gQ29udGV4dFJlc2V0dGluZ0V4ZWN1dG9yU2VydmljZS5qYXZhOjI4KQo+IFt3aW5KYXZhN10gICAgICBhdCBqYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUnVubmFibGVBZGFwdGVyLgo+IGNhbGwoRXhlY3V0b3JzLmphdmE6NTExKQo+IFt3aW5KYXZhN10gICAgICBhdCBqYXZhLnV0aWwuY29uY3VycmVudC5GdXR1cmVUYXNrLnJ1bihGdXR1cmVUYXNrLgo+IGphdmE6MjY2KQo+IFt3aW5KYXZhN10gICAgICBhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKAo+IFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExNDkpCj4gW3dpbkphdmE3XSAgICAgIGF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKAo+IFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYyNCkKPiBbd2luSmF2YTddICAgICAgYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ4KQo+IFt3aW5KYXZhN10gRVJST1I6IFt3aXRoTWF2ZW5dIGFydGlmYWN0c1B1Ymxpc2hlciAtIFdBUk5JTkc6IEV4Y2VwdGlvbgo+IGFyY2hpdmluZyBhbmQgZmluZ2VycHJpbnRpbmcgTWF2ZW5BcnRpZmFjdHtvcmcuYXBhY2hlLgo+IG1hdmVuLml0cy5wbHVnaW5zOm1hdmVuLWl0LXBsdWdpbnM6eG1sOnNpdGU6Mi4xLVNOQVBTSE9UKHZlcnNpb246Cj4gMi4xLVNOQVBTSE9ULCBzbmFwc2hvdDp0cnVlKSAgQzpcbXZuLWl0LTAudG1wXGNvcmUtaXQtCj4gc3VwcG9ydFxjb3JlLWl0LXBsdWdpbnNcdGFyZ2V0XG1hdmVuLWl0LXBsdWdpbnMtMi4xLVNOQVBTSE9ULXNpdGUueG1sfSwKPiBza2lwIGFyY2hpdmluZyBvZiB0aGUgYXJ0aWZhY3RzCj4gW3dpbkphdmE3XSBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uOiBDYW5ub3QgcmVsYXRpdml6ZQo+ICdDOlxtdm4taXQtMC50bXBcY29yZS1pdC1zdXBwb3J0XGNvcmUtaXQtcGx1Z2luc1wKPiB0YXJnZXRcbWF2ZW4taXQtcGx1Z2lucy0yLjEtU05BUFNIT1Qtc2l0ZS54bWwnIHJlbGF0aXZlbHkgdG8KPiAnL212bi1pdC0wLnRtcCcKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLnBpcGVsaW5lLm1hdmVuLnV0aWwuWG1sVXRpbHMuCj4gZ2V0UGF0aEluV29ya3NwYWNlKFhtbFV0aWxzLmphdmE6MzE5KQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMucGlwZWxpbmUubWF2ZW4ucHVibGlzaGVycy4KPiBHZW5lcmF0ZWRBcnRpZmFjdHNQdWJsaXNoZXIucHJvY2VzcyhHZW5lcmF0ZWRBcnRpZmFjdHNQdWJsaXNoZXIuamF2YTo5NSkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLnBpcGVsaW5lLm1hdmVuLgo+IE1hdmVuU3B5TG9nUHJvY2Vzc29yLnByb2Nlc3NNYXZlblNweUxvZ3MoTWF2ZW5TcHlMb2dQcm9jZXNzb3IuamF2YToxMDkpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy5waXBlbGluZS5tYXZlbi4KPiBXaXRoTWF2ZW5TdGVwRXhlY3V0aW9uJFdvcmtzcGFjZUNsZWFudXBDYWxsYmFjay5maW5pc2hlZCgKPiBXaXRoTWF2ZW5TdGVwRXhlY3V0aW9uLmphdmE6OTEzKQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuc3RlcHMuCj4gQm9keUV4ZWN1dGlvbkNhbGxiYWNrJFRhaWxDYWxsLm9uU3VjY2VzcyhCb2R5RXhlY3V0aW9uQ2FsbGJhY2suamF2YToxMTQpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuQ3BzQm9keUV4ZWN1dGlvbiQKPiBTdWNjZXNzQWRhcHRlci5yZWNlaXZlKENwc0JvZHlFeGVjdXRpb24uamF2YTozNjIpCj4gW3dpbkphdmE3XSAgICAgIGF0IGNvbS5jbG91ZGJlZXMuZ3Jvb3Z5LmNwcy5PdXRjb21lLnJlc3VtZUZyb20oT3V0Y29tZS4KPiBqYXZhOjczKQo+IFt3aW5KYXZhN10gICAgICBhdCBjb20uY2xvdWRiZWVzLmdyb292eS5jcHMuQ29udGludWFibGUkMS5jYWxsKAo+IENvbnRpbnVhYmxlLmphdmE6MTY2KQo+IFt3aW5KYXZhN10gICAgICBhdCBjb20uY2xvdWRiZWVzLmdyb292eS5jcHMuQ29udGludWFibGUkMS5jYWxsKAo+IENvbnRpbnVhYmxlLmphdmE6MTYzKQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR3Jvb3Z5Q2F0ZWdvcnlTdXBwb3J0JAo+IFRocmVhZENhdGVnb3J5SW5mby51c2UoR3Jvb3Z5Q2F0ZWdvcnlTdXBwb3J0LmphdmE6MTIyKQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR3Jvb3Z5Q2F0ZWdvcnlTdXBwb3J0LnVzZSgKPiBHcm9vdnlDYXRlZ29yeVN1cHBvcnQuamF2YToyNjEpCj4gW3dpbkphdmE3XSAgICAgIGF0IGNvbS5jbG91ZGJlZXMuZ3Jvb3Z5LmNwcy5Db250aW51YWJsZS5ydW4wKENvbnRpbnVhYmxlLgo+IGphdmE6MTYzKQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuY3BzLgo+IFNhbmRib3hDb250aW51YWJsZS5hY2Nlc3MkMDAxKFNhbmRib3hDb250aW51YWJsZS5qYXZhOjE5KQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuY3BzLgo+IFNhbmRib3hDb250aW51YWJsZSQxLmNhbGwoU2FuZGJveENvbnRpbnVhYmxlLmphdmE6MzUpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuCj4gU2FuZGJveENvbnRpbnVhYmxlJDEuY2FsbChTYW5kYm94Q29udGludWFibGUuamF2YTozMikKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLnNjcmlwdHNlY3VyaXR5LnNhbmRib3guZ3Jvb3Z5Lgo+IEdyb292eVNhbmRib3gucnVuSW5TYW5kYm94KEdyb292eVNhbmRib3guamF2YToxMDgpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuCj4gU2FuZGJveENvbnRpbnVhYmxlLnJ1bjAoU2FuZGJveENvbnRpbnVhYmxlLmphdmE6MzIpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuQ3BzVGhyZWFkLgo+IHJ1bk5leHRDaHVuayhDcHNUaHJlYWQuamF2YToxNzQpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuQ3BzVGhyZWFkR3JvdXAuCj4gcnVuKENwc1RocmVhZEdyb3VwLmphdmE6MzMwKQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuY3BzLkNwc1RocmVhZEdyb3VwLgo+IGFjY2VzcyQxMDAoQ3BzVGhyZWFkR3JvdXAuamF2YTo4MikKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy5DcHNUaHJlYWRHcm91cCQyLgo+IGNhbGwoQ3BzVGhyZWFkR3JvdXAuamF2YToyNDIpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuQ3BzVGhyZWFkR3JvdXAkMi4KPiBjYWxsKENwc1RocmVhZEdyb3VwLmphdmE6MjMwKQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuY3BzLgo+IENwc1ZtRXhlY3V0b3JTZXJ2aWNlJDIuY2FsbChDcHNWbUV4ZWN1dG9yU2VydmljZS5qYXZhOjY0KQo+IFt3aW5KYXZhN10gICAgICBhdCBqYXZhLnV0aWwuY29uY3VycmVudC5GdXR1cmVUYXNrLnJ1bihGdXR1cmVUYXNrLgo+IGphdmE6MjY2KQo+IFt3aW5KYXZhN10gICAgICBhdCBodWRzb24ucmVtb3RpbmcuU2luZ2xlTGFuZUV4ZWN1dG9yU2VydmljZSQxLgo+IHJ1bihTaW5nbGVMYW5lRXhlY3V0b3JTZXJ2aWNlLmphdmE6MTEyKQo+IFt3aW5KYXZhN10gICAgICBhdCBqZW5raW5zLnV0aWwuQ29udGV4dFJlc2V0dGluZ0V4ZWN1dG9yU2VydmljZSQxLnJ1bigKPiBDb250ZXh0UmVzZXR0aW5nRXhlY3V0b3JTZXJ2aWNlLmphdmE6MjgpCj4gW3dpbkphdmE3XSAgICAgIGF0IGphdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRSdW5uYWJsZUFkYXB0ZXIuCj4gY2FsbChFeGVjdXRvcnMuamF2YTo1MTEpCj4gW3dpbkphdmE3XSAgICAgIGF0IGphdmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2sucnVuKEZ1dHVyZVRhc2suCj4gamF2YToyNjYpCj4gW3dpbkphdmE3XSAgICAgIGF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoCj4gVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTE0OSkKPiBbd2luSmF2YTddICAgICAgYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oCj4gVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjI0KQo+IFt3aW5KYXZhN10gICAgICBhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3NDgpCj4gW3dpbkphdmE3XSBFUlJPUjogW3dpdGhNYXZlbl0gYXJ0aWZhY3RzUHVibGlzaGVyIC0gV0FSTklORzogRXhjZXB0aW9uCj4gYXJjaGl2aW5nIGFuZCBmaW5nZXJwcmludGluZyBNYXZlbkFydGlmYWN0e29yZy5hcGFjaGUuCj4gbWF2ZW4uaXRzLnBsdWdpbnM6bWF2ZW4taXQtcGx1Z2luLWNvcmUtc3R1YnM6eG1sOnNpdGU6Mi4xLVNOQVBTSE9UKHZlcnNpbz0KbjoKPiAyLjEtU05BUFNIT1QsIHNuYXBzaG90OnRydWUpICBDOlxtdm4taXQtMC50bXBcY29yZS1pdC0KPiBzdXBwb3J0XGNvcmUtaXQtcGx1Z2luc1xtYXZlbi1pdC1wbHVnaW4tY29yZS1zdHVic1x0YXJnZXRcCj4gbWF2ZW4taXQtcGx1Z2luLWNvcmUtc3R1YnMtMi4xLVNOQVBTSE9ULXNpdGUueG1sfSwgc2tpcCBhcmNoaXZpbmcgb2YgdGhlCj4gYXJ0aWZhY3RzCj4gW3dpbkphdmE3XSBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uOiBDYW5ub3QgcmVsYXRpdml6ZQo+ICdDOlxtdm4taXQtMC50bXBcY29yZS1pdC1zdXBwb3J0XGNvcmUtaXQtcGx1Z2luc1xtYXZlbi0KPiBpdC1wbHVnaW4tY29yZS1zdHVic1x0YXJnZXRcbWF2ZW4taXQtcGx1Z2luLWNvcmUtc3R1YnMtMi4xLVNOQVBTSE9ULXNpdGUuPQp4bWwnCj4gcmVsYXRpdmVseSB0byAnL212bi1pdC0wLnRtcCcKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLnBpcGVsaW5lLm1hdmVuLnV0aWwuWG1sVXRpbHMuCj4gZ2V0UGF0aEluV29ya3NwYWNlKFhtbFV0aWxzLmphdmE6MzE5KQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMucGlwZWxpbmUubWF2ZW4ucHVibGlzaGVycy4KPiBHZW5lcmF0ZWRBcnRpZmFjdHNQdWJsaXNoZXIucHJvY2VzcyhHZW5lcmF0ZWRBcnRpZmFjdHNQdWJsaXNoZXIuamF2YTo5NSkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLnBpcGVsaW5lLm1hdmVuLgo+IE1hdmVuU3B5TG9nUHJvY2Vzc29yLnByb2Nlc3NNYXZlblNweUxvZ3MoTWF2ZW5TcHlMb2dQcm9jZXNzb3IuamF2YToxMDkpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy5waXBlbGluZS5tYXZlbi4KPiBXaXRoTWF2ZW5TdGVwRXhlY3V0aW9uJFdvcmtzcGFjZUNsZWFudXBDYWxsYmFjay5maW5pc2hlZCgKPiBXaXRoTWF2ZW5TdGVwRXhlY3V0aW9uLmphdmE6OTEzKQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuc3RlcHMuCj4gQm9keUV4ZWN1dGlvbkNhbGxiYWNrJFRhaWxDYWxsLm9uU3VjY2VzcyhCb2R5RXhlY3V0aW9uQ2FsbGJhY2suamF2YToxMTQpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuQ3BzQm9keUV4ZWN1dGlvbiQKPiBTdWNjZXNzQWRhcHRlci5yZWNlaXZlKENwc0JvZHlFeGVjdXRpb24uamF2YTozNjIpCj4gW3dpbkphdmE3XSAgICAgIGF0IGNvbS5jbG91ZGJlZXMuZ3Jvb3Z5LmNwcy5PdXRjb21lLnJlc3VtZUZyb20oT3V0Y29tZS4KPiBqYXZhOjczKQo+IFt3aW5KYXZhN10gICAgICBhdCBjb20uY2xvdWRiZWVzLmdyb292eS5jcHMuQ29udGludWFibGUkMS5jYWxsKAo+IENvbnRpbnVhYmxlLmphdmE6MTY2KQo+IFt3aW5KYXZhN10gICAgICBhdCBjb20uY2xvdWRiZWVzLmdyb292eS5jcHMuQ29udGludWFibGUkMS5jYWxsKAo+IENvbnRpbnVhYmxlLmphdmE6MTYzKQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR3Jvb3Z5Q2F0ZWdvcnlTdXBwb3J0JAo+IFRocmVhZENhdGVnb3J5SW5mby51c2UoR3Jvb3Z5Q2F0ZWdvcnlTdXBwb3J0LmphdmE6MTIyKQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuY29kZWhhdXMuZ3Jvb3Z5LnJ1bnRpbWUuR3Jvb3Z5Q2F0ZWdvcnlTdXBwb3J0LnVzZSgKPiBHcm9vdnlDYXRlZ29yeVN1cHBvcnQuamF2YToyNjEpCj4gW3dpbkphdmE3XSAgICAgIGF0IGNvbS5jbG91ZGJlZXMuZ3Jvb3Z5LmNwcy5Db250aW51YWJsZS5ydW4wKENvbnRpbnVhYmxlLgo+IGphdmE6MTYzKQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuY3BzLgo+IFNhbmRib3hDb250aW51YWJsZS5hY2Nlc3MkMDAxKFNhbmRib3hDb250aW51YWJsZS5qYXZhOjE5KQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuY3BzLgo+IFNhbmRib3hDb250aW51YWJsZSQxLmNhbGwoU2FuZGJveENvbnRpbnVhYmxlLmphdmE6MzUpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuCj4gU2FuZGJveENvbnRpbnVhYmxlJDEuY2FsbChTYW5kYm94Q29udGludWFibGUuamF2YTozMikKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLnNjcmlwdHNlY3VyaXR5LnNhbmRib3guZ3Jvb3Z5Lgo+IEdyb292eVNhbmRib3gucnVuSW5TYW5kYm94KEdyb292eVNhbmRib3guamF2YToxMDgpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuCj4gU2FuZGJveENvbnRpbnVhYmxlLnJ1bjAoU2FuZGJveENvbnRpbnVhYmxlLmphdmE6MzIpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuQ3BzVGhyZWFkLgo+IHJ1bk5leHRDaHVuayhDcHNUaHJlYWQuamF2YToxNzQpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuQ3BzVGhyZWFkR3JvdXAuCj4gcnVuKENwc1RocmVhZEdyb3VwLmphdmE6MzMwKQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuY3BzLkNwc1RocmVhZEdyb3VwLgo+IGFjY2VzcyQxMDAoQ3BzVGhyZWFkR3JvdXAuamF2YTo4MikKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy5DcHNUaHJlYWRHcm91cCQyLgo+IGNhbGwoQ3BzVGhyZWFkR3JvdXAuamF2YToyNDIpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuQ3BzVGhyZWFkR3JvdXAkMi4KPiBjYWxsKENwc1RocmVhZEdyb3VwLmphdmE6MjMwKQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuY3BzLgo+IENwc1ZtRXhlY3V0b3JTZXJ2aWNlJDIuY2FsbChDcHNWbUV4ZWN1dG9yU2VydmljZS5qYXZhOjY0KQo+IFt3aW5KYXZhN10gICAgICBhdCBqYXZhLnV0aWwuY29uY3VycmVudC5GdXR1cmVUYXNrLnJ1bihGdXR1cmVUYXNrLgo+IGphdmE6MjY2KQo+IFt3aW5KYXZhN10gICAgICBhdCBodWRzb24ucmVtb3RpbmcuU2luZ2xlTGFuZUV4ZWN1dG9yU2VydmljZSQxLgo+IHJ1bihTaW5nbGVMYW5lRXhlY3V0b3JTZXJ2aWNlLmphdmE6MTEyKQo+IFt3aW5KYXZhN10gICAgICBhdCBqZW5raW5zLnV0aWwuQ29udGV4dFJlc2V0dGluZ0V4ZWN1dG9yU2VydmljZSQxLnJ1bigKPiBDb250ZXh0UmVzZXR0aW5nRXhlY3V0b3JTZXJ2aWNlLmphdmE6MjgpCj4gW3dpbkphdmE3XSAgICAgIGF0IGphdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRSdW5uYWJsZUFkYXB0ZXIuCj4gY2FsbChFeGVjdXRvcnMuamF2YTo1MTEpCj4gW3dpbkphdmE3XSAgICAgIGF0IGphdmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2sucnVuKEZ1dHVyZVRhc2suCj4gamF2YToyNjYpCj4gW3dpbkphdmE3XSAgICAgIGF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoCj4gVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTE0OSkKPiBbd2luSmF2YTddICAgICAgYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oCj4gVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjI0KQo+IFt3aW5KYXZhN10gICAgICBhdCBqYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo3NDgpCj4gW3dpbkphdmE3XSBFUlJPUjogW3dpdGhNYXZlbl0gYXJ0aWZhY3RzUHVibGlzaGVyIC0gV0FSTklORzogRXhjZXB0aW9uCj4gYXJjaGl2aW5nIGFuZCBmaW5nZXJwcmludGluZyBNYXZlbkFydGlmYWN0e29yZy5hcGFjaGUuCj4gbWF2ZW4uaXRzOmNvcmUtaXQtc3VwcG9ydC1hcnRpZmFjdHM6emlwOnJlcG86Mi4xLVNOQVBTSE9UKHZlcnNpb246Cj4gMi4xLVNOQVBTSE9ULCBzbmFwc2hvdDp0cnVlKSAgQzpcbXZuLWl0LTAudG1wXGNvcmUtaXQtCj4gc3VwcG9ydFxjb3JlLWl0LXN1cHBvcnQtYXJ0aWZhY3RzXHRhcmdldFxjb3JlLWl0LXN1cHBvcnQtYXJ0aWZhY3RzLTIuMS1TTj0KQVBTSE9ULXJlcG8uemlwfSwKPiBza2lwIGFyY2hpdmluZyBvZiB0aGUgYXJ0aWZhY3RzCj4gW3dpbkphdmE3XSBqYXZhLmxhbmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uOiBDYW5ub3QgcmVsYXRpdml6ZQo+ICdDOlxtdm4taXQtMC50bXBcY29yZS1pdC1zdXBwb3J0XGNvcmUtaXQtc3VwcG9ydC1hcnRpZmFjdHNcdGFyZ2V0XGNvcmUtaXQ9Ci0KPiBzdXBwb3J0LWFydGlmYWN0cy0yLjEtU05BUFNIT1QtcmVwby56aXAnIHJlbGF0aXZlbHkgdG8gJy9tdm4taXQtMC50bXAnCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy5waXBlbGluZS5tYXZlbi51dGlsLlhtbFV0aWxzLgo+IGdldFBhdGhJbldvcmtzcGFjZShYbWxVdGlscy5qYXZhOjMxOSkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLnBpcGVsaW5lLm1hdmVuLnB1Ymxpc2hlcnMuCj4gR2VuZXJhdGVkQXJ0aWZhY3RzUHVibGlzaGVyLnByb2Nlc3MoR2VuZXJhdGVkQXJ0aWZhY3RzUHVibGlzaGVyLmphdmE6OTUpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy5waXBlbGluZS5tYXZlbi4KPiBNYXZlblNweUxvZ1Byb2Nlc3Nvci5wcm9jZXNzTWF2ZW5TcHlMb2dzKE1hdmVuU3B5TG9nUHJvY2Vzc29yLmphdmE6MTA5KQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMucGlwZWxpbmUubWF2ZW4uCj4gV2l0aE1hdmVuU3RlcEV4ZWN1dGlvbiRXb3Jrc3BhY2VDbGVhbnVwQ2FsbGJhY2suZmluaXNoZWQoCj4gV2l0aE1hdmVuU3RlcEV4ZWN1dGlvbi5qYXZhOjkxMykKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LnN0ZXBzLgo+IEJvZHlFeGVjdXRpb25DYWxsYmFjayRUYWlsQ2FsbC5vblN1Y2Nlc3MoQm9keUV4ZWN1dGlvbkNhbGxiYWNrLmphdmE6MTE0KQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuY3BzLkNwc0JvZHlFeGVjdXRpb24kCj4gU3VjY2Vzc0FkYXB0ZXIucmVjZWl2ZShDcHNCb2R5RXhlY3V0aW9uLmphdmE6MzYyKQo+IFt3aW5KYXZhN10gICAgICBhdCBjb20uY2xvdWRiZWVzLmdyb292eS5jcHMuT3V0Y29tZS5yZXN1bWVGcm9tKE91dGNvbWUuCj4gamF2YTo3MykKPiBbd2luSmF2YTddICAgICAgYXQgY29tLmNsb3VkYmVlcy5ncm9vdnkuY3BzLkNvbnRpbnVhYmxlJDEuY2FsbCgKPiBDb250aW51YWJsZS5qYXZhOjE2NikKPiBbd2luSmF2YTddICAgICAgYXQgY29tLmNsb3VkYmVlcy5ncm9vdnkuY3BzLkNvbnRpbnVhYmxlJDEuY2FsbCgKPiBDb250aW51YWJsZS5qYXZhOjE2MykKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmNvZGVoYXVzLmdyb292eS5ydW50aW1lLkdyb292eUNhdGVnb3J5U3VwcG9ydCQKPiBUaHJlYWRDYXRlZ29yeUluZm8udXNlKEdyb292eUNhdGVnb3J5U3VwcG9ydC5qYXZhOjEyMikKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmNvZGVoYXVzLmdyb292eS5ydW50aW1lLkdyb292eUNhdGVnb3J5U3VwcG9ydC51c2UoCj4gR3Jvb3Z5Q2F0ZWdvcnlTdXBwb3J0LmphdmE6MjYxKQo+IFt3aW5KYXZhN10gICAgICBhdCBjb20uY2xvdWRiZWVzLmdyb292eS5jcHMuQ29udGludWFibGUucnVuMChDb250aW51YWJsZS4KPiBqYXZhOjE2MykKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy4KPiBTYW5kYm94Q29udGludWFibGUuYWNjZXNzJDAwMShTYW5kYm94Q29udGludWFibGUuamF2YToxOSkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy4KPiBTYW5kYm94Q29udGludWFibGUkMS5jYWxsKFNhbmRib3hDb250aW51YWJsZS5qYXZhOjM1KQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuY3BzLgo+IFNhbmRib3hDb250aW51YWJsZSQxLmNhbGwoU2FuZGJveENvbnRpbnVhYmxlLmphdmE6MzIpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy5zY3JpcHRzZWN1cml0eS5zYW5kYm94Lmdyb292eS4KPiBHcm9vdnlTYW5kYm94LnJ1bkluU2FuZGJveChHcm9vdnlTYW5kYm94LmphdmE6MTA4KQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuY3BzLgo+IFNhbmRib3hDb250aW51YWJsZS5ydW4wKFNhbmRib3hDb250aW51YWJsZS5qYXZhOjMyKQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuY3BzLkNwc1RocmVhZC4KPiBydW5OZXh0Q2h1bmsoQ3BzVGhyZWFkLmphdmE6MTc0KQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuY3BzLkNwc1RocmVhZEdyb3VwLgo+IHJ1bihDcHNUaHJlYWRHcm91cC5qYXZhOjMzMCkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy5DcHNUaHJlYWRHcm91cC4KPiBhY2Nlc3MkMTAwKENwc1RocmVhZEdyb3VwLmphdmE6ODIpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuQ3BzVGhyZWFkR3JvdXAkMi4KPiBjYWxsKENwc1RocmVhZEdyb3VwLmphdmE6MjQyKQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuY3BzLkNwc1RocmVhZEdyb3VwJDIuCj4gY2FsbChDcHNUaHJlYWRHcm91cC5qYXZhOjIzMCkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy4KPiBDcHNWbUV4ZWN1dG9yU2VydmljZSQyLmNhbGwoQ3BzVm1FeGVjdXRvclNlcnZpY2UuamF2YTo2NCkKPiBbd2luSmF2YTddICAgICAgYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuRnV0dXJlVGFzay5ydW4oRnV0dXJlVGFzay4KPiBqYXZhOjI2NikKPiBbd2luSmF2YTddICAgICAgYXQgaHVkc29uLnJlbW90aW5nLlNpbmdsZUxhbmVFeGVjdXRvclNlcnZpY2UkMS4KPiBydW4oU2luZ2xlTGFuZUV4ZWN1dG9yU2VydmljZS5qYXZhOjExMikKPiBbd2luSmF2YTddICAgICAgYXQgamVua2lucy51dGlsLkNvbnRleHRSZXNldHRpbmdFeGVjdXRvclNlcnZpY2UkMS5ydW4oCj4gQ29udGV4dFJlc2V0dGluZ0V4ZWN1dG9yU2VydmljZS5qYXZhOjI4KQo+IFt3aW5KYXZhN10gICAgICBhdCBqYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUnVubmFibGVBZGFwdGVyLgo+IGNhbGwoRXhlY3V0b3JzLmphdmE6NTExKQo+IFt3aW5KYXZhN10gICAgICBhdCBqYXZhLnV0aWwuY29uY3VycmVudC5GdXR1cmVUYXNrLnJ1bihGdXR1cmVUYXNrLgo+IGphdmE6MjY2KQo+IFt3aW5KYXZhN10gICAgICBhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKAo+IFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExNDkpCj4gW3dpbkphdmE3XSAgICAgIGF0IGphdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKAo+IFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYyNCkKPiBbd2luSmF2YTddICAgICAgYXQgamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6NzQ4KQo+IFt3aW5KYXZhN10gRVJST1I6IFt3aXRoTWF2ZW5dIGFydGlmYWN0c1B1Ymxpc2hlciAtIFdBUk5JTkc6IEV4Y2VwdGlvbgo+IGFyY2hpdmluZyBhbmQgZmluZ2VycHJpbnRpbmcgTWF2ZW5BcnRpZmFjdHtvcmcuYXBhY2hlLgo+IG1hdmVuLml0czpjb3JlLWl0LXN1aXRlOnRlc3QtamFyOnRlc3RzOjIuMS1TTkFQU0hPVCh2ZXJzaW9uOgo+IDIuMS1TTkFQU0hPVCwgc25hcHNob3Q6dHJ1ZSkgIEM6XG12bi1pdC0wLnRtcFxjb3JlLWl0LXN1aXRlXAo+IHRhcmdldFxjb3JlLWl0LXN1aXRlLTIuMS1TTkFQU0hPVC10ZXN0cy5qYXJ9LCBza2lwIGFyY2hpdmluZyBvZiB0aGUKPiBhcnRpZmFjdHMKPiBbd2luSmF2YTddIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb246IENhbm5vdCByZWxhdGl2aXplCj4gJ0M6XG12bi1pdC0wLnRtcFxjb3JlLWl0LXN1aXRlXHRhcmdldFxjb3JlLWl0LXN1aXRlLTIuMS1TTkFQU0hPVC10ZXN0cy5qYT0KcicKPiByZWxhdGl2ZWx5IHRvICcvbXZuLWl0LTAudG1wJwo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMucGlwZWxpbmUubWF2ZW4udXRpbC5YbWxVdGlscy4KPiBnZXRQYXRoSW5Xb3Jrc3BhY2UoWG1sVXRpbHMuamF2YTozMTkpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy5waXBlbGluZS5tYXZlbi5wdWJsaXNoZXJzLgo+IEdlbmVyYXRlZEFydGlmYWN0c1B1Ymxpc2hlci5wcm9jZXNzKEdlbmVyYXRlZEFydGlmYWN0c1B1Ymxpc2hlci5qYXZhOjk1KQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMucGlwZWxpbmUubWF2ZW4uCj4gTWF2ZW5TcHlMb2dQcm9jZXNzb3IucHJvY2Vzc01hdmVuU3B5TG9ncyhNYXZlblNweUxvZ1Byb2Nlc3Nvci5qYXZhOjEwOSkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLnBpcGVsaW5lLm1hdmVuLgo+IFdpdGhNYXZlblN0ZXBFeGVjdXRpb24kV29ya3NwYWNlQ2xlYW51cENhbGxiYWNrLmZpbmlzaGVkKAo+IFdpdGhNYXZlblN0ZXBFeGVjdXRpb24uamF2YTo5MTMpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5zdGVwcy4KPiBCb2R5RXhlY3V0aW9uQ2FsbGJhY2skVGFpbENhbGwub25TdWNjZXNzKEJvZHlFeGVjdXRpb25DYWxsYmFjay5qYXZhOjExNCkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy5DcHNCb2R5RXhlY3V0aW9uJAo+IFN1Y2Nlc3NBZGFwdGVyLnJlY2VpdmUoQ3BzQm9keUV4ZWN1dGlvbi5qYXZhOjM2MikKPiBbd2luSmF2YTddICAgICAgYXQgY29tLmNsb3VkYmVlcy5ncm9vdnkuY3BzLk91dGNvbWUucmVzdW1lRnJvbShPdXRjb21lLgo+IGphdmE6NzMpCj4gW3dpbkphdmE3XSAgICAgIGF0IGNvbS5jbG91ZGJlZXMuZ3Jvb3Z5LmNwcy5Db250aW51YWJsZSQxLmNhbGwoCj4gQ29udGludWFibGUuamF2YToxNjYpCj4gW3dpbkphdmE3XSAgICAgIGF0IGNvbS5jbG91ZGJlZXMuZ3Jvb3Z5LmNwcy5Db250aW51YWJsZSQxLmNhbGwoCj4gQ29udGludWFibGUuamF2YToxNjMpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5jb2RlaGF1cy5ncm9vdnkucnVudGltZS5Hcm9vdnlDYXRlZ29yeVN1cHBvcnQkCj4gVGhyZWFkQ2F0ZWdvcnlJbmZvLnVzZShHcm9vdnlDYXRlZ29yeVN1cHBvcnQuamF2YToxMjIpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5jb2RlaGF1cy5ncm9vdnkucnVudGltZS5Hcm9vdnlDYXRlZ29yeVN1cHBvcnQudXNlKAo+IEdyb292eUNhdGVnb3J5U3VwcG9ydC5qYXZhOjI2MSkKPiBbd2luSmF2YTddICAgICAgYXQgY29tLmNsb3VkYmVlcy5ncm9vdnkuY3BzLkNvbnRpbnVhYmxlLnJ1bjAoQ29udGludWFibGUuCj4gamF2YToxNjMpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuCj4gU2FuZGJveENvbnRpbnVhYmxlLmFjY2VzcyQwMDEoU2FuZGJveENvbnRpbnVhYmxlLmphdmE6MTkpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuCj4gU2FuZGJveENvbnRpbnVhYmxlJDEuY2FsbChTYW5kYm94Q29udGludWFibGUuamF2YTozNSkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy4KPiBTYW5kYm94Q29udGludWFibGUkMS5jYWxsKFNhbmRib3hDb250aW51YWJsZS5qYXZhOjMyKQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMuc2NyaXB0c2VjdXJpdHkuc2FuZGJveC5ncm9vdnkuCj4gR3Jvb3Z5U2FuZGJveC5ydW5JblNhbmRib3goR3Jvb3Z5U2FuZGJveC5qYXZhOjEwOCkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy4KPiBTYW5kYm94Q29udGludWFibGUucnVuMChTYW5kYm94Q29udGludWFibGUuamF2YTozMikKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy5DcHNUaHJlYWQuCj4gcnVuTmV4dENodW5rKENwc1RocmVhZC5qYXZhOjE3NCkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy5DcHNUaHJlYWRHcm91cC4KPiBydW4oQ3BzVGhyZWFkR3JvdXAuamF2YTozMzApCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuQ3BzVGhyZWFkR3JvdXAuCj4gYWNjZXNzJDEwMChDcHNUaHJlYWRHcm91cC5qYXZhOjgyKQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuY3BzLkNwc1RocmVhZEdyb3VwJDIuCj4gY2FsbChDcHNUaHJlYWRHcm91cC5qYXZhOjI0MikKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy5DcHNUaHJlYWRHcm91cCQyLgo+IGNhbGwoQ3BzVGhyZWFkR3JvdXAuamF2YToyMzApCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuCj4gQ3BzVm1FeGVjdXRvclNlcnZpY2UkMi5jYWxsKENwc1ZtRXhlY3V0b3JTZXJ2aWNlLmphdmE6NjQpCj4gW3dpbkphdmE3XSAgICAgIGF0IGphdmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2sucnVuKEZ1dHVyZVRhc2suCj4gamF2YToyNjYpCj4gW3dpbkphdmE3XSAgICAgIGF0IGh1ZHNvbi5yZW1vdGluZy5TaW5nbGVMYW5lRXhlY3V0b3JTZXJ2aWNlJDEuCj4gcnVuKFNpbmdsZUxhbmVFeGVjdXRvclNlcnZpY2UuamF2YToxMTIpCj4gW3dpbkphdmE3XSAgICAgIGF0IGplbmtpbnMudXRpbC5Db250ZXh0UmVzZXR0aW5nRXhlY3V0b3JTZXJ2aWNlJDEucnVuKAo+IENvbnRleHRSZXNldHRpbmdFeGVjdXRvclNlcnZpY2UuamF2YToyOCkKPiBbd2luSmF2YTddICAgICAgYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFJ1bm5hYmxlQWRhcHRlci4KPiBjYWxsKEV4ZWN1dG9ycy5qYXZhOjUxMSkKPiBbd2luSmF2YTddICAgICAgYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuRnV0dXJlVGFzay5ydW4oRnV0dXJlVGFzay4KPiBqYXZhOjI2NikKPiBbd2luSmF2YTddICAgICAgYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcigKPiBUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTQ5KQo+IFt3aW5KYXZhN10gICAgICBhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bigKPiBUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MjQpCj4gW3dpbkphdmE3XSAgICAgIGF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0OCkKPiBbd2luSmF2YTddIFtGYXN0IEFyY2hpdmVyXSBObyBhcnRpZmFjdHMgZnJvbSBNYXZlbiBUTFAgKHdpcCkgPUMyPUJCIG1hdmVuPQogPUMyPUJCCj4gbWFzdGVyICMyIHRvIGNvbXBhcmUsIHNvIHBlcmZvcm1pbmcgZnVsbCBjb3B5IG9mIGFydGlmYWN0cwo+IFt3aW5KYXZhN10gRVJST1I6IFt3aXRoTWF2ZW5dIFdBUk5JTkcgRXhjZXB0aW9uIGV4ZWN1dGluZyBNYXZlbiByZXBvcnRlcgo+ICdKdW5pdCBQdWJsaXNoZXInIC8gb3JnLmplbmtpbnNjaS5wbHVnaW5zLnBpcGVsaW5lLm1hdmVuLnB1Ymxpc2hlcnMuSnVuaXQ9ClRlc3RzUHVibGlzaGVyLgo+IFBsZWFzZSByZXBvcnQgYSBidWcgYXNzb2NpYXRlZCBmb3IgdGhlIGNvbXBvbmVudCAncGlwZWxpbmUtbWF2ZW4tcGx1Z2luJyA9CmF0Cj4gaHR0cHM6Ly9pc3N1ZXMuamVua2lucy1jaS5vcmcKPiBbd2luSmF2YTddIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb246IENhbm5vdCByZWxhdGl2aXplCj4gJ0M6XG12bi1pdC0wLnRtcFxjb3JlLWl0LXN1cHBvcnRcY29yZS1pdC1wbHVnaW5zXG1hdmVuLQo+IGl0LXBsdWdpbi1hY3RpdmUtY29sbGVjdGlvblx0YXJnZXQvc3VyZWZpcmUtcmVwb3J0cycgcmVsYXRpdmVseSB0bwo+ICcvbXZuLWl0LTAudG1wJwo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMucGlwZWxpbmUubWF2ZW4udXRpbC5YbWxVdGlscy4KPiBnZXRQYXRoSW5Xb3Jrc3BhY2UoWG1sVXRpbHMuamF2YTozMTkpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy5waXBlbGluZS5tYXZlbi5wdWJsaXNoZXJzLgo+IEp1bml0VGVzdHNQdWJsaXNoZXIuZXhlY3V0ZVJlcG9ydGVyKEp1bml0VGVzdHNQdWJsaXNoZXIuamF2YToyMzUpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy5waXBlbGluZS5tYXZlbi5wdWJsaXNoZXJzLgo+IEp1bml0VGVzdHNQdWJsaXNoZXIucHJvY2VzcyhKdW5pdFRlc3RzUHVibGlzaGVyLmphdmE6MTgxKQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMucGlwZWxpbmUubWF2ZW4uCj4gTWF2ZW5TcHlMb2dQcm9jZXNzb3IucHJvY2Vzc01hdmVuU3B5TG9ncyhNYXZlblNweUxvZ1Byb2Nlc3Nvci5qYXZhOjEwOSkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLnBpcGVsaW5lLm1hdmVuLgo+IFdpdGhNYXZlblN0ZXBFeGVjdXRpb24kV29ya3NwYWNlQ2xlYW51cENhbGxiYWNrLmZpbmlzaGVkKAo+IFdpdGhNYXZlblN0ZXBFeGVjdXRpb24uamF2YTo5MTMpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5zdGVwcy4KPiBCb2R5RXhlY3V0aW9uQ2FsbGJhY2skVGFpbENhbGwub25TdWNjZXNzKEJvZHlFeGVjdXRpb25DYWxsYmFjay5qYXZhOjExNCkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy5DcHNCb2R5RXhlY3V0aW9uJAo+IFN1Y2Nlc3NBZGFwdGVyLnJlY2VpdmUoQ3BzQm9keUV4ZWN1dGlvbi5qYXZhOjM2MikKPiBbd2luSmF2YTddICAgICAgYXQgY29tLmNsb3VkYmVlcy5ncm9vdnkuY3BzLk91dGNvbWUucmVzdW1lRnJvbShPdXRjb21lLgo+IGphdmE6NzMpCj4gW3dpbkphdmE3XSAgICAgIGF0IGNvbS5jbG91ZGJlZXMuZ3Jvb3Z5LmNwcy5Db250aW51YWJsZSQxLmNhbGwoCj4gQ29udGludWFibGUuamF2YToxNjYpCj4gW3dpbkphdmE3XSAgICAgIGF0IGNvbS5jbG91ZGJlZXMuZ3Jvb3Z5LmNwcy5Db250aW51YWJsZSQxLmNhbGwoCj4gQ29udGludWFibGUuamF2YToxNjMpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5jb2RlaGF1cy5ncm9vdnkucnVudGltZS5Hcm9vdnlDYXRlZ29yeVN1cHBvcnQkCj4gVGhyZWFkQ2F0ZWdvcnlJbmZvLnVzZShHcm9vdnlDYXRlZ29yeVN1cHBvcnQuamF2YToxMjIpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5jb2RlaGF1cy5ncm9vdnkucnVudGltZS5Hcm9vdnlDYXRlZ29yeVN1cHBvcnQudXNlKAo+IEdyb292eUNhdGVnb3J5U3VwcG9ydC5qYXZhOjI2MSkKPiBbd2luSmF2YTddICAgICAgYXQgY29tLmNsb3VkYmVlcy5ncm9vdnkuY3BzLkNvbnRpbnVhYmxlLnJ1bjAoQ29udGludWFibGUuCj4gamF2YToxNjMpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuCj4gU2FuZGJveENvbnRpbnVhYmxlLmFjY2VzcyQwMDEoU2FuZGJveENvbnRpbnVhYmxlLmphdmE6MTkpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuCj4gU2FuZGJveENvbnRpbnVhYmxlJDEuY2FsbChTYW5kYm94Q29udGludWFibGUuamF2YTozNSkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy4KPiBTYW5kYm94Q29udGludWFibGUkMS5jYWxsKFNhbmRib3hDb250aW51YWJsZS5qYXZhOjMyKQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMuc2NyaXB0c2VjdXJpdHkuc2FuZGJveC5ncm9vdnkuCj4gR3Jvb3Z5U2FuZGJveC5ydW5JblNhbmRib3goR3Jvb3Z5U2FuZGJveC5qYXZhOjEwOCkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy4KPiBTYW5kYm94Q29udGludWFibGUucnVuMChTYW5kYm94Q29udGludWFibGUuamF2YTozMikKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy5DcHNUaHJlYWQuCj4gcnVuTmV4dENodW5rKENwc1RocmVhZC5qYXZhOjE3NCkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy5DcHNUaHJlYWRHcm91cC4KPiBydW4oQ3BzVGhyZWFkR3JvdXAuamF2YTozMzApCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuQ3BzVGhyZWFkR3JvdXAuCj4gYWNjZXNzJDEwMChDcHNUaHJlYWRHcm91cC5qYXZhOjgyKQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuY3BzLkNwc1RocmVhZEdyb3VwJDIuCj4gY2FsbChDcHNUaHJlYWRHcm91cC5qYXZhOjI0MikKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy5DcHNUaHJlYWRHcm91cCQyLgo+IGNhbGwoQ3BzVGhyZWFkR3JvdXAuamF2YToyMzApCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuCj4gQ3BzVm1FeGVjdXRvclNlcnZpY2UkMi5jYWxsKENwc1ZtRXhlY3V0b3JTZXJ2aWNlLmphdmE6NjQpCj4gW3dpbkphdmE3XSAgICAgIGF0IGphdmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2sucnVuKEZ1dHVyZVRhc2suCj4gamF2YToyNjYpCj4gW3dpbkphdmE3XSAgICAgIGF0IGh1ZHNvbi5yZW1vdGluZy5TaW5nbGVMYW5lRXhlY3V0b3JTZXJ2aWNlJDEuCj4gcnVuKFNpbmdsZUxhbmVFeGVjdXRvclNlcnZpY2UuamF2YToxMTIpCj4gW3dpbkphdmE3XSAgICAgIGF0IGplbmtpbnMudXRpbC5Db250ZXh0UmVzZXR0aW5nRXhlY3V0b3JTZXJ2aWNlJDEucnVuKAo+IENvbnRleHRSZXNldHRpbmdFeGVjdXRvclNlcnZpY2UuamF2YToyOCkKPiBbd2luSmF2YTddICAgICAgYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFJ1bm5hYmxlQWRhcHRlci4KPiBjYWxsKEV4ZWN1dG9ycy5qYXZhOjUxMSkKPiBbd2luSmF2YTddICAgICAgYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuRnV0dXJlVGFzay5ydW4oRnV0dXJlVGFzay4KPiBqYXZhOjI2NikKPiBbd2luSmF2YTddICAgICAgYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcigKPiBUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTQ5KQo+IFt3aW5KYXZhN10gICAgICBhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bigKPiBUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MjQpCj4gW3dpbkphdmE3XSAgICAgIGF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0OCkKPiBbd2luSmF2YTddIEVSUk9SOiBbd2l0aE1hdmVuXSBXQVJOSU5HIEV4Y2VwdGlvbiBleGVjdXRpbmcgTWF2ZW4gcmVwb3J0ZXIKPiAnT3BlbiBUYXNrIFNjYW5uZXIgUHVibGlzaGVyJyAvIG9yZy5qZW5raW5zY2kucGx1Z2lucy4KPiBwaXBlbGluZS5tYXZlbi5wdWJsaXNoZXJzLlRhc2tzU2Nhbm5lclB1Ymxpc2hlci4gUGxlYXNlIHJlcG9ydCBhIGJ1Zwo+IGFzc29jaWF0ZWQgZm9yIHRoZSBjb21wb25lbnQgJ3BpcGVsaW5lLW1hdmVuLXBsdWdpbicgYXQKPiBodHRwczovL2lzc3Vlcy5qZW5raW5zLWNpLm9yZwo+IFt3aW5KYXZhN10gamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjogQ2Fubm90IHJlbGF0aXZpemUKPiAnQzpcbXZuLWl0LTAudG1wXHNyY1xtYWluXGphdmEnIHJlbGF0aXZlbHkgdG8gJy9tdm4taXQtMC50bXAnCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy5waXBlbGluZS5tYXZlbi51dGlsLlhtbFV0aWxzLgo+IGdldFBhdGhJbldvcmtzcGFjZShYbWxVdGlscy5qYXZhOjMxOSkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLnBpcGVsaW5lLm1hdmVuLnB1Ymxpc2hlcnMuCj4gVGFza3NTY2FubmVyUHVibGlzaGVyLnByb2Nlc3MoVGFza3NTY2FubmVyUHVibGlzaGVyLmphdmE6MTI4KQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMucGlwZWxpbmUubWF2ZW4uCj4gTWF2ZW5TcHlMb2dQcm9jZXNzb3IucHJvY2Vzc01hdmVuU3B5TG9ncyhNYXZlblNweUxvZ1Byb2Nlc3Nvci5qYXZhOjEwOSkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLnBpcGVsaW5lLm1hdmVuLgo+IFdpdGhNYXZlblN0ZXBFeGVjdXRpb24kV29ya3NwYWNlQ2xlYW51cENhbGxiYWNrLmZpbmlzaGVkKAo+IFdpdGhNYXZlblN0ZXBFeGVjdXRpb24uamF2YTo5MTMpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5zdGVwcy4KPiBCb2R5RXhlY3V0aW9uQ2FsbGJhY2skVGFpbENhbGwub25TdWNjZXNzKEJvZHlFeGVjdXRpb25DYWxsYmFjay5qYXZhOjExNCkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy5DcHNCb2R5RXhlY3V0aW9uJAo+IFN1Y2Nlc3NBZGFwdGVyLnJlY2VpdmUoQ3BzQm9keUV4ZWN1dGlvbi5qYXZhOjM2MikKPiBbd2luSmF2YTddICAgICAgYXQgY29tLmNsb3VkYmVlcy5ncm9vdnkuY3BzLk91dGNvbWUucmVzdW1lRnJvbShPdXRjb21lLgo+IGphdmE6NzMpCj4gW3dpbkphdmE3XSAgICAgIGF0IGNvbS5jbG91ZGJlZXMuZ3Jvb3Z5LmNwcy5Db250aW51YWJsZSQxLmNhbGwoCj4gQ29udGludWFibGUuamF2YToxNjYpCj4gW3dpbkphdmE3XSAgICAgIGF0IGNvbS5jbG91ZGJlZXMuZ3Jvb3Z5LmNwcy5Db250aW51YWJsZSQxLmNhbGwoCj4gQ29udGludWFibGUuamF2YToxNjMpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5jb2RlaGF1cy5ncm9vdnkucnVudGltZS5Hcm9vdnlDYXRlZ29yeVN1cHBvcnQkCj4gVGhyZWFkQ2F0ZWdvcnlJbmZvLnVzZShHcm9vdnlDYXRlZ29yeVN1cHBvcnQuamF2YToxMjIpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5jb2RlaGF1cy5ncm9vdnkucnVudGltZS5Hcm9vdnlDYXRlZ29yeVN1cHBvcnQudXNlKAo+IEdyb292eUNhdGVnb3J5U3VwcG9ydC5qYXZhOjI2MSkKPiBbd2luSmF2YTddICAgICAgYXQgY29tLmNsb3VkYmVlcy5ncm9vdnkuY3BzLkNvbnRpbnVhYmxlLnJ1bjAoQ29udGludWFibGUuCj4gamF2YToxNjMpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuCj4gU2FuZGJveENvbnRpbnVhYmxlLmFjY2VzcyQwMDEoU2FuZGJveENvbnRpbnVhYmxlLmphdmE6MTkpCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuCj4gU2FuZGJveENvbnRpbnVhYmxlJDEuY2FsbChTYW5kYm94Q29udGludWFibGUuamF2YTozNSkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy4KPiBTYW5kYm94Q29udGludWFibGUkMS5jYWxsKFNhbmRib3hDb250aW51YWJsZS5qYXZhOjMyKQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMuc2NyaXB0c2VjdXJpdHkuc2FuZGJveC5ncm9vdnkuCj4gR3Jvb3Z5U2FuZGJveC5ydW5JblNhbmRib3goR3Jvb3Z5U2FuZGJveC5qYXZhOjEwOCkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy4KPiBTYW5kYm94Q29udGludWFibGUucnVuMChTYW5kYm94Q29udGludWFibGUuamF2YTozMikKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy5DcHNUaHJlYWQuCj4gcnVuTmV4dENodW5rKENwc1RocmVhZC5qYXZhOjE3NCkKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy5DcHNUaHJlYWRHcm91cC4KPiBydW4oQ3BzVGhyZWFkR3JvdXAuamF2YTozMzApCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuQ3BzVGhyZWFkR3JvdXAuCj4gYWNjZXNzJDEwMChDcHNUaHJlYWRHcm91cC5qYXZhOjgyKQo+IFt3aW5KYXZhN10gICAgICBhdCBvcmcuamVua2luc2NpLnBsdWdpbnMud29ya2Zsb3cuY3BzLkNwc1RocmVhZEdyb3VwJDIuCj4gY2FsbChDcHNUaHJlYWRHcm91cC5qYXZhOjI0MikKPiBbd2luSmF2YTddICAgICAgYXQgb3JnLmplbmtpbnNjaS5wbHVnaW5zLndvcmtmbG93LmNwcy5DcHNUaHJlYWRHcm91cCQyLgo+IGNhbGwoQ3BzVGhyZWFkR3JvdXAuamF2YToyMzApCj4gW3dpbkphdmE3XSAgICAgIGF0IG9yZy5qZW5raW5zY2kucGx1Z2lucy53b3JrZmxvdy5jcHMuCj4gQ3BzVm1FeGVjdXRvclNlcnZpY2UkMi5jYWxsKENwc1ZtRXhlY3V0b3JTZXJ2aWNlLmphdmE6NjQpCj4gW3dpbkphdmE3XSAgICAgIGF0IGphdmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2sucnVuKEZ1dHVyZVRhc2suCj4gamF2YToyNjYpCj4gW3dpbkphdmE3XSAgICAgIGF0IGh1ZHNvbi5yZW1vdGluZy5TaW5nbGVMYW5lRXhlY3V0b3JTZXJ2aWNlJDEuCj4gcnVuKFNpbmdsZUxhbmVFeGVjdXRvclNlcnZpY2UuamF2YToxMTIpCj4gW3dpbkphdmE3XSAgICAgIGF0IGplbmtpbnMudXRpbC5Db250ZXh0UmVzZXR0aW5nRXhlY3V0b3JTZXJ2aWNlJDEucnVuKAo+IENvbnRleHRSZXNldHRpbmdFeGVjdXRvclNlcnZpY2UuamF2YToyOCkKPiBbd2luSmF2YTddICAgICAgYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFJ1bm5hYmxlQWRhcHRlci4KPiBjYWxsKEV4ZWN1dG9ycy5qYXZhOjUxMSkKPiBbd2luSmF2YTddICAgICAgYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuRnV0dXJlVGFzay5ydW4oRnV0dXJlVGFzay4KPiBqYXZhOjI2NikKPiBbd2luSmF2YTddICAgICAgYXQgamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcigKPiBUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTQ5KQo+IFt3aW5KYXZhN10gICAgICBhdCBqYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bigKPiBUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MjQpCj4gW3dpbkphdmE3XSAgICAgIGF0IGphdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjc0OCkKPiBbUGlwZWxpbmVdIFt3aW5KYXZhN10gLy8gd2l0aE1hdmVuCj4gW1BpcGVsaW5lXSBbd2luSmF2YTddIGRlbGV0ZURpcgo+IFtQaXBlbGluZV0gW3dpbkphdmE4XSB9Cj4gW1BpcGVsaW5lXSBbd2luSmF2YThdIC8vIGRpcgo+IFtQaXBlbGluZV0gW3dpbkphdmE4XSB9Cj4gW1BpcGVsaW5lXSBbd2luSmF2YThdIC8vIHN0YWdlCj4gW1BpcGVsaW5lXSBbd2luSmF2YThdIH0KPiBbUGlwZWxpbmVdIFt3aW5KYXZhOF0gLy8gbm9kZQo+IFtQaXBlbGluZV0gW3dpbkphdmE4XSB9Cj4gW1BpcGVsaW5lXSBbd2luSmF2YTddIH0KPiBbUGlwZWxpbmVdIFt3aW5KYXZhN10gLy8gZGlyCj4gW1BpcGVsaW5lXSBbd2luSmF2YTddIH0KPiBbUGlwZWxpbmVdIFt3aW5KYXZhN10gLy8gc3RhZ2UKPiBbUGlwZWxpbmVdIFt3aW5KYXZhN10gfQo+IFtQaXBlbGluZV0gW3dpbkphdmE3XSAvLyBub2RlCj4gW1BpcGVsaW5lXSBbd2luSmF2YTddIH0KPiBbUGlwZWxpbmVdIC8vIHBhcmFsbGVsCj4gW1BpcGVsaW5lXSBzdGFnZQo+IFtQaXBlbGluZV0geyAoTm90aWZpY2F0aW9ucykKPiBbUGlwZWxpbmVdIGVjaG8KPiBCdWlsZCByZXN1bHQ6IFVOU1RBQkxFCj4gW1BpcGVsaW5lXSBqaXJhSXNzdWVTZWxlY3Rvcgo+IFtQaXBlbGluZV0gamlyYUNvbW1lbnQKPiBbUGlwZWxpbmVdIGVtYWlsZXh0CgotLTAwMWExMTQyMzBjZTE3MmYyODA1NjAzNTlmYTYtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDA3Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgU2VwIDIwIDA3OjEzOjEwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDA3Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA2NzAyNkMxRTkKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyMCBTZXAgMjAxNyAwNzoxMzoxMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDYyOTggaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgU2VwIDIwMTcgMDc6MTM6MTAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYwNjcgaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgU2VwIDIwMTcgMDc6MTM6MDkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MDU1IGludm9rZWQgYnkgdWlkIDk5KTsgMjAgU2VwIDIwMTcgMDc6MTM6MDkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDIwIFNlcCAyMDE3IDA3OjEzOjA5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRUI5MEQxQTA3MUQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDIwIFNlcCAyMDE3IDA3OjEzOjA4ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS44NzkKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjg3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgUWo5aDZXdjVGR3lvIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJV2VkLCAyMCBTZXAgMjAxNyAwNzoxMzowNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXZrMC1mNDIuZ29vZ2xlLmNvbSAobWFpbC12azAtZjQyLmdvb2dsZS5jb20gWzIwOS44NS4yMTMuNDJdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQjZCMzg1RjY0MAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjAgU2VwIDIwMTcgMDc6MTM6MDQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdmswLWY0Mi5nb29nbGUuY29tIHdpdGggU01UUCBpZCBjMTlzbzk1MzA2M3ZrZS4xMQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDIwIFNlcCAyMDE3IDAwOjEzOjA0IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPTQzTnhmZ2dkOElON1FVdzBHV1dxeUpueU11RFdLZXZuTldyY3IwTXVqclU9OwogICAgICAgIGI9WW9IK3lRK0I3MnhudjRUSk10SlRxdFVXZHBSc0xhWWt2SFV0ejFPcGVhanJjVWVFUUpSZGV2TkttcUlWQ3kwZlRJCiAgICAgICAgIGZUcW5BSUlNeHdsTWdvM3diaC9IcnlEWXFaczRYMC9zNENpa3lqeU1UUWxOSC9FeU5zWk1sdjJsR1ljS2s5WXdpeXFlCiAgICAgICAgIGNRRHVONXB6OGg4eGtKTXR6U3Zqd09qeENMV2ovMk1nb0E1L2xQZTFUUjdjUHBra1ZCci9RbElhVCtMelFLYXFMTEJ3CiAgICAgICAgIDNENjhCaTdLSFNqdGpTdEVzUUZybkpJNVlEYllTYUt5ZWJZWWtaM1Q3T3pQZVVkVFFrQzFuUFdBd2g1VFlUc1g5c2tBCiAgICAgICAgIHc5NGNXUExiUmhRVDIxOG02Yk85MTVkdGY0SVk4bEt4eUJxa1EzZWh3a3FLWnJyM3pRY3J6eXQxeVNvSDdLQ2xNN1U0CiAgICAgICAgIDh6aFE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPTQzTnhmZ2dkOElON1FVdzBHV1dxeUpueU11RFdLZXZuTldyY3IwTXVqclU9OwogICAgICAgIGI9cGprd1ZVOXFLV1ZCOFAyWGprMnRqd21LbTVrQm1FRkxBTzJER1BCR2JoY1A4bUErd1FlV3FFVk5odzh1UHkwK3JYCiAgICAgICAgIFk0dXhNSmZmNE14TTFnMUV5NmQ0RkJIUFB2d0Y3Q2FSVXQ1VExVWnBYOHFIbkFERHN6WXprcno2Znh4VzdkUTVONzdQCiAgICAgICAgIHNXakpTQm1SSnptVndqYmo2SUsxRDlFSis2SWR0Nk1nVklNalJBWmRUNjJrbmZCcGNiNS9xNjBXWEFVZnp3YXNBUkVKCiAgICAgICAgIHozNmQxeVZKeWFvck1xOXJVT1ZrbkNUMFlmZGJHelhhOWNkb0ZydTZ3b1JSUVIzcWg1OSt1VnJXdTVDMGoxRVFmKzVBCiAgICAgICAgIGJNU0NIbUd2V0EvTFcrbGpEN3pzeFB4SVhMY29OekJzZ095ZFlUSmw0eUpXN2orMWZqMzNJeFNBcjVRVzlRcmdUYUxqCiAgICAgICAgIEJ1b2c9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWdNWWtxblBBY0NYN3dIekc3VlFDYmJFWmhhU1c0K0RSZ2ovOFlrOFZwVFI5Z2tLTWd1CglHWnp5S1RPSTJ5UDdOaWdTTlVPOGUyZXFBUTZZZmpsaU5ZV3g0KzJvWFE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQlJSTFFwc3JYNXhyTlQ2U3Z5d0lValdib0dNMnlUaGl1dnJ5aW5vbmF2dW5aY04yKzdRS2NmdnRiSTJ3cGFVRVhJcEdDUXlQYi9rUkx1eEQ4b1B0cz0KWC1SZWNlaXZlZDogYnkgMTAuMzEuMTY3LjcxIHdpdGggU01UUCBpZCBxNjhtcjMwMDQ1MDN2a2UuNDkuMTUwNTg5MTU3ODAyNTsKIFdlZCwgMjAgU2VwIDIwMTcgMDA6MTI6NTggLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPENBK25Qbk13TUNxT19FdGNCVzVfM3JNNzEtdENyaXRwNFVrc3lmUG1ER0FZcjZ4ej1vUUBtYWlsLmdtYWlsLmNvbT4KIDxGMUY4QjNDRi1EREFDLTQ0QkEtQUVCNy00MTIyQzg4N0M0QUJAaG9udG9uLm9yZz4gPENBK25Qbk13Zl9CZnRZdXMtcm5Rck83bzUrZHVHRnowVkVhN05pb2hHMV9fWVV6cmM1d0BtYWlsLmdtYWlsLmNvbT4KIDwxNTA1Nzk2OTA4LjI1MTY4MDguMTExMDY3MzEyOC42MzVBQzM1RkB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CiA8b3AueTZ0dG1yZWJrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDxDQStuUG5NeEZGRVRRbXF0ZTAtNTB1M0VGU3diZzZ5aXB3NVZTQmRMUHdUelBoZFZrNXdAbWFpbC5nbWFpbC5jb20+CiA8b3AueTZ0djVrZjNrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDwxNTA1ODUzNTQwLjM0NDM0NjUuMTExMTYyMDY0MC4zMzFCRTU4QUB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CiA8Q0ErblBuTXprTnZCRl9GY3QtRT03cWZHUWZwSFVCS1QxOWNXQzM4U0NxdHE2a3ZpZTlnQG1haWwuZ21haWwuY29tPiA8MTUwNTg2NzM3NC4zNDkzODQyLjExMTE3OTY1MjAuNTEyNEFDQTZAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgpJbi1SZXBseS1UbzogPDE1MDU4NjczNzQuMzQ5Mzg0Mi4xMTExNzk2NTIwLjUxMjRBQ0E2QHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAyMCBTZXAgMjAxNyAwNzoxMjo0NyArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXhxSGEzeUJSRldyK2lPRXNPbWhrWDhMY2djME00ZEc5c3l1Y0xzUGFMUjVBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogVW5kZXJzdGFuZGluZyBNTkctNjIwOSAod2FzOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEpClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQyN2E2Njk0MWIyZDA1NTk5OWI0YjYiCgotLTAwMWExMTQyN2E2Njk0MWIyZDA1NTk5OWI0YjYKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCk9uIFdlZCAyMCBTZXAgMjAxNyBhdCAwMToyOSwgSWdvciBGZWRvcmVua28gPGlnb3JAaWZlZG9yZW5rby5jb20+IHdyb3RlOgoKPiBJbiB0aGF0IGNhc2UsIGNhbiBJIHN1Z2dlc3QgY291cGxlIG9mIGNoYW5nZXMgdG8gdGhlIHRlc3QgcHJvamVjdAo+Cj4gKiBJIHRoaW5rcyBpdCBtYWtlcyBtb3JlIHNlbnNlIHRvIGNvbmZpZ3VyZSBleHRqYXIxIGFuZCBleHRqYXIyIGFzCj4gZXh0ZW5zaW9ucyA8cGx1Z2luPiBlbGVtZW50cyBpbiBwcm9ibGVOIHBvbS54bWwgZmlsZXMuIEZpcnN0LCB0aGVyZSBpcwo+IG5vIG1lYW5pbmdmdWwgb3JkZXIgYmV0d2VlbiA8ZXh0ZW5zaW9ucz4gYW5kIDxwbHVnaW5zPiBlbGVtZW50cy4gTW9yZQo+IGltcG9ydGFudGx5LCB0aG91Z2gsIHNpbXBsZSA8ZXh0ZW5zaW9ucz4gYXJlIHRyZWF0ZWQgaW4gc3BlY2lhbAo+IG1hdmVuMi1jb21wYXQgbW9kZSBhbmQgYXJlIG5vdCByZXByZXNlbnRhdGl2ZSBvZiBsaWtlbHkgcmVhbC13b3JsZAo+IGV4dGVuc2lvbnMuCgoKVGhhdCBzb3VuZHMgbGlrZSB3ZSBuZWVkIGRvY3VtZW50YXRpb24gdXBkYXRlZCB0aGVuLiBOb25lIG9mIHRoYXQgaXMKb2J2aW91cyB0byBtZS4KCgo+Cj4gKiBJIHRoaW5rIHdlIHNob3VsZCBpbnRyb2R1Y2UgTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCB0byB0aGUgdGVzdAo+IGV4dGVuc2lvbnMuIFRoaXMgbWV0YWRhdGEgd2hhdCBpbnRyb2R1Y2VkIHRvIGNvbmZpZ3VyZSBjbGFzc3BhdGgKPiB2aXNpYmlsaXR5LCBzbyBsZXRzIHVzZSBpdC4KCgpBZ2Fpbiwgbm90IG9idmlvdXMgdG8gbWUsIGlmIHRoYXQgZmlsZSBhbGxvd3MgY29udHJvbCBvZiBjbGFzc3BhdGgKdmlzaWJpbGl0eSB0aGVuIGl0IG1heSBiZSB0aGF0IHRoZSBvbmx5IGlzc3VlICp3aXRoKiAzLjUuMSBpcyB0aGUgbGFjayBvZgpkb2N1bWVudGF0aW9uLi4uIG5vdyBwcmV2aW91cyB2ZXJzaW9ucyB3b3VsZCBoYXZlIGJlZW4gYWRkaW5nIGJyZWFraW5nCmNoYW5nZXMgZnJvbSBteSBQb1YgYnV0IHRoYXQgaXMgdGhlIHBhc3QgYW5kIHNob3VsZCBub3QgYWZmZWN0IHRoZSAzLjUuMQpyZWxlYXNlLgoKUFJzIGZvciB0aGUgcHJvYmUgcHJvamVjdCB3ZWxjb21lLiBJIGFtIGhhcHB5IHRvIHRyeSBhbmQgd3JpdGUgZG9jcyBvbmNlIEkKaGF2ZSBhbiB1bmRlcnN0YW5kaW5nIG9mIHdoYXQgdGhlIGV4cGVjdGVkIGJlaGF2aW91cnMgYXJlCgoKPgo+IC0tCj4gUmVnYXJkcywKPiBJZ29yCj4KPiBPbiBUdWUsIFNlcCAxOSwgMjAxNywgYXQgMDU6MTIgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgd3JvdGU6Cj4gPiBZZXMsIHRoZSBleHBlY3RhdGlvbnMgYXJlIGtleS4gRGVwZW5kaW5nIG9uIHdoYXQgdGhleSBhcmUgd2UgbWF5IGVpdGhlcgo+ID4gZHJvcCAzLjUuMSBvciBnbyBhaGVhZCBhcyBpdCBkZXBlbmRzIG9uIHdoZXRoZXIgdGhpcyBpcyBtb3JlIGNvcnJlY3QgdGhhbgo+ID4gMy41LjAgb3Igc3dhcHBpbmcgb25lIGZpeCBmb3IgYSBidWcKPiA+Cj4gPiBPbiBUdWUgMTkgU2VwIDIwMTcgYXQgMjE6MzksIElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY29tPiB3cm90ZToKPiA+Cj4gPiA+IEp1c3QgdG8gY29uZmlybSBJIHVuZGVyc3RhbmQgd2hhdCB3ZSBhcmUgdHJ5aW5nIHRvIGVzdGFibGlzaCBoZXJlLiBXZQo+ID4gPiB3YW50IHRvIGRlY2lkZSB0aGUgZXhwZWN0ZWQvZGVzaXJlZCBjb21wb25lbnQgaW5qZWN0aW9uIGJlaGF2aW91ciBhbmQKPiA+ID4gY2xhc3NwYXRoIHZpc2liaWxpdHkgaW4gdGhlIGFic2VuY2Ugb2YgcGFja2FnZSBhbmQgYXJ0aWZhY3QgZXhwb3J0Cj4gPiA+IGNvbmZpZ3VyYXRpb24gKGkuZS4gTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCBmaWxlKS4gRGlkIEkgZ2V0IHRoaXMKPiA+ID4gcmlnaHQ/Cj4gPiA+Cj4gPiA+IC0tCj4gPiA+IFJlZ2FyZHMsCj4gPiA+IElnb3IKPiA+ID4KPiA+ID4gT24gVHVlLCBTZXAgMTksIDIwMTcsIGF0IDAzOjUyIFBNLCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPiA+ID4gPiBMZXQncyBkbyBpdCBsaWtlIHRoaXM6Cj4gPiA+ID4KPiA+ID4KPiBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kb3dubG9hZC9hdHRhY2htZW50cy8yMzI5ODQxL2NsYXNzcmVhbG1zLnBkZj9hcGk9djIKPiA+ID4gPgo+ID4gPiA+IFJvYmVydAo+ID4gPiA+Cj4gPiA+ID4gT24gVHVlLCAxOSBTZXAgMjAxNyAyMTowODozOSArMDIwMCwgU3RlcGhlbiBDb25ub2xseQo+ID4gPiA+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+ID4gPgo+ID4gPiA+ID4gSSB0aGluayB5b3Ugd2lsbCBuZWVkIGEgbGluayB0byB0aGUgUERGIGFzIGF0dGFjaG1lbnRzIGFyZSBzdHJpcHBlZAo+ID4gPiBmcm9tCj4gPiA+ID4gPiB0aGUgTUwKPiA+ID4gPiA+Cj4gPiA+ID4gPiBPbiBUdWUgMTkgU2VwIDIwMTcgYXQgMTk6NTcsIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KPiA+ID4gd3JvdGU6Cj4gPiA+ID4gPgo+ID4gPiA+ID4+IEF0dGFjaGVkIGEgc2luZ2xlIHBhZ2Ugb3ZlcnZpZXcuCj4gPiA+ID4gPj4KPiA+ID4gPiA+PiBQZXIgYmxvY2sgeW91J2xsIHNlZSBpbiB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgdGhlIGV4ZWN1dGVkIHBsdWdpbgo+ID4gPiA+ID4+IFRoZSBsZWZ0IGNvbHVtbiBjb250YWlucyB0aGUgZXh0ZW5zaW9ucyBhbmQgcGx1Z2luIGluIG9yZGVyYXMKPiA+ID4gc3BlY2lmaWVkCj4gPiA+ID4gPj4gaW4KPiA+ID4gPiA+PiB0aGUgcG9tLnhtbAo+ID4gPiA+ID4+IEluIGV2ZXJ5IGNsYXNzbG9hZGVyY29sdW1uIHlvdSdsbCBzZWUgbnVtYmVycyB3aGljaCByZXByZXNlbnQgdGhlCj4gPiA+IG9yZGVyLgo+ID4gPiA+ID4+Cj4gPiA+ID4gPj4gSSBob3BlIEkgZGlkbid0IG1ha2UgYW55IG1pc3Rha2VzLgo+ID4gPiA+ID4+IFRvbW9ycm93IEkgaGF2ZSBlbm91Z2ggdGltZSB0byBzZWUgaWYgSSB1bmRlcnN0YW5kIHdoYXQncwo+IGhhcHBlbmluZwo+ID4gPiA+ID4+IGhlcmUuCj4gPiA+ID4gPj4KPiA+ID4gPiA+PiBJIHdpbGwgY29tZSBiYWNrIHdpdGggbXkgY29uY2x1c2lvbnMuCj4gPiA+ID4gPj4KPiA+ID4gPiA+PiBSb2JlcnQKPiA+ID4gPiA+Pgo+ID4gPiA+ID4+IE9uIFR1ZSwgMTkgU2VwIDIwMTcgMDY6NTU6MDggKzAyMDAsIElnb3IgRmVkb3JlbmtvIDwKPiA+ID4gaWdvckBpZmVkb3JlbmtvLmNvbT4KPiA+ID4gPiA+PiB3cm90ZToKPiA+ID4gPiA+Pgo+ID4gPiA+ID4+ID4gVEw7RFIgeW91ciB0ZXN0IHByb2plY3QgZXhwb3NlZCB0d28gZXhpc3RpbmcgYnVncywgb25lIGNoYW5nZSBpbgo+ID4gPiA+ID4+ID4gYmVoYXZpb3VyIGFuZCBvbmUgcXVpcmsgSSBjYW4ndCBleHBsYWluCj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4+ID4gKiBCdWlsZCBgPGV4dGVuc2lvbnM+YCBhcmUgbG9hZGVkIGJ5IHR3byBjbGFzc2xvYWRlcnMsIHdoaWNoIGlzCj4gYQo+ID4gPiBidWcKPiA+ID4gPiA+PiBpbgo+ID4gPiA+ID4+ID4gRGVmYXVsdFByb2plY3RCdWlsZGluZ0hlbHBlciNjcmVhdGVQcm9qZWN0UmVhbG0gYW5kIGV4cGxhaW5zCj4gd2h5IHlvdQo+ID4gPiA+ID4+IHNlZQo+ID4gPiA+ID4+ID4gZXh0amFyMS9leHRqYXIyIGluIHRoZSBvdXRwdXQKPiA+ID4gPiA+PiA+ICogQ2xhc3NSZWFsbSBkb2VzIG5vdCBhbGxvdyBzYW1lIGZvcmVpZ24taW1wb3J0IGZyb20gbXVsdGlwbGUKPiA+ID4gPiA+PiA+IGNsYXNzbG9hZGVycywgd2hpY2ggaXMgYSBidWcgYW5kIGV4cGxhaW5zIHdoeSBpdCBpcyBub3QKPiBwb3NzaWJsZSB0bwo+ID4gPiA+ID4+IGxvYWQKPiA+ID4gPiA+PiA+IHNhbWUgcmVzb3VyY2UgZnJvbSBtdWx0aXBsZSBwbHVnaW5zL2V4dGVuc2lvbnMKPiA+ID4gPiA+PiA+ICogVENDTCBkb2VzIG5vdCBoYXZlIGFjY2VzcyB0byBwcml2YXRlIChpLmUuIG5vdCBleHBvcnRlZCkKPiByZXNvdXJjZXMKPiA+ID4gPiA+PiBvZgo+ID4gPiA+ID4+ID4gdGhpcyBleHRlbnNpb25zIHBsdWdpbiwgd2hpY2ggaXMgYSBjaGFuZ2Ugb2YgYmVoYXZpb3VyCj4gaW50cm9kdWNlZCBieQo+ID4gPiA+ID4+ID4gbW5nLTYyMDkgZml4Cj4gPiA+ID4gPj4gPiAqIEFsc28sIGNvbXBvbmVudCBpbmplY3Rpb24gb3JkZXIgYXBwZWFycyB0byBiZSBiYWNrd2FyZHMsIGJ1dAo+IG1heWJlCj4gPiA+ID4gPj4gPiBTdHVhcnQgY2FuIGV4cGxhaW4gd2h5Lgo+ID4gPiA+ID4+ID4KPiA+ID4gPiA+PiA+Cj4gPiA+ID4gPj4gPiBCZWxvdyBpcyBtb3JlIGRldGFpbGVkIGV4cGxhbmF0aW9uIG9mIGV4cGVjdGVkIGFuZCBvYnNlcnZlZAo+ID4gPiBiZWhhdmlvdXIKPiA+ID4gPiA+PiA+Cj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4+ID4gIyMgQ29tcG9uZW50IGluamVjdGlvbiBkZXBlbmRzIG9uIHRoZSBjdXJyZW50bHkgcnVubmluZyBwbHVnaW4KPiBhbmQKPiA+ID4gdGhlCj4gPiA+ID4gPj4gPiBpbmplY3Rpb24gc2l0ZQo+ID4gPiA+ID4+ID4KPiA+ID4gPiA+PiA+IEN1cnJlbnRseSBydW5uaW5nIHBsdWdpbnMgaGF2ZSBhY2Nlc3MgdG8gdGhlIGZvbGxvd2luZyBjb21wb25lbnQKPiA+ID4gPiA+PiA+IGltcGxlbWVudGF0aW9uczoKPiA+ID4gPiA+PiA+Cj4gPiA+ID4gPj4gPiAqIFJlZ3VsYXIgcGx1Z2luIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50cyBpbXBsZW1lbnRlZCBieSB0aGUKPiBwbHVnaW4sCj4gPiA+ID4gPj4gPiBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMsIGlmIGFueSAodmlhIHByb2plY3QgY2xhc3MgcmVhbG0KPiBmb3JlaWduCj4gPiA+ID4gPj4gPiBpbXBvcnQpIGFuZCBNYXZlbiBDb3JlLgo+ID4gPiA+ID4+ID4gKiBFeHRlbnNpb24gcGx1Z2luIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50cyBpbXBsZW1lbnRlZCBieSB0aGUKPiA+ID4gcHJvamVjdAo+ID4gPiA+ID4+ID4gYnVpbGQgZXh0ZW5zaW9ucyBhbmQgTWF2ZW4gQ29yZS4KPiA+ID4gPiA+PiA+ICogV2l0aG91dCBhIHJ1bm5pbmcgcGx1Z2luIChlLmcuLCBkdXJpbmcgcHJvamVjdCBkZXBlbmRlbmN5Cj4gPiA+ID4gPj4gcmVzb2x1dGlvbiksCj4gPiA+ID4gPj4gPiBjb21wb25lbnRzIGltcGxlbWVudGVkIGJ5IHRoZSBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMgYW5kIE1hdmVuCj4gPiA+IENvcmUKPiA+ID4gPiA+PiA+IGFyZSBhY2Nlc3NpYmxlLgo+ID4gPiA+ID4+ID4KPiA+ID4gPiA+PiA+IERpZmZlcmVudCBpbmplY3Rpb24gc2l0ZXMgaGF2ZSBhY2Nlc3MgdG8gdGhlIGZvbGxvd2luZyBjb21wb25lbnQKPiA+ID4gPiA+PiA+IGludGVyZmFjZXM6Cj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4+ID4gKiBNYXZlbiBDb3JlIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50IGludGVyZmFjZXMgZGVmaW5lZCBieSB0aGUKPiBjb3JlCj4gPiA+ID4gPj4gPiBpdHNlbGYgKG9idmlvdXNseSkKPiA+ID4gPiA+PiA+ICogUHJvamVjdCBidWlsZCBleHRlbnNpb25zIGhhdmUgYWNjZXNzIHRvICoqcHVibGljKiogY29tcG9uZW50Cj4gPiA+ID4gPj4gPiBpbnRlcmZhY2VzIGRlZmluZWQgYnkgTWF2ZW4gQ29yZSBhbmQgY29tcG9uZW50IGludGVyZmFjZXMKPiBkZWZpbmVkIGJ5Cj4gPiA+ID4gPj4gdGhlCj4gPiA+ID4gPj4gPiBidWlsZCBleHRlbnNpb24gaXRzZWxmICh0aGVyZSBpcyBubyB3YXkgdG8gYWNjZXNzIGNvbXBvbmVudAo+ID4gPiBpbnRlcmZhY2VzCj4gPiA+ID4gPj4gPiBkZWZpbmVkIGluIG90aGVyIGV4dGVuc2lvbnMpCj4gPiA+ID4gPj4gPiAqIFJlZ3VsYXIgcGx1Z2lucyBoYXZlIGFjY2VzcyB0byAqKnB1YmxpYyoqIGNvbXBvbmVudCBpbnRlcmZhY2VzCj4gPiA+ID4gPj4gZGVmaW5lZAo+ID4gPiA+ID4+ID4gYnkgTWF2ZW4gQ29yZSwgY29tcG9uZW50IGludGVyZmFjZXMgKipleHBvcnRlZCoqIGJ5IGJ1aWxkCj4gZXh0ZW5zaW9ucwo+ID4gPiA+ID4+IGFuZAo+ID4gPiA+ID4+ID4gY29tcG9uZW50IGludGVyZmFjZXMgZGVmaW5lZCBpbiB0aGUgcGx1Z2luIGl0c2VsZgo+ID4gPiA+ID4+ID4KPiA+ID4gPiA+PiA+IEZvciBpbmplY3Rpb24gdG8gd29yaywgaW5qZWN0aW9uIHNpdGUgaGFzIHRvIGhhdmUgYWNjZXNzIHRvIHRoZQo+ID4gPiA+ID4+ID4gY29tcG9uZW50IGludGVyZmFjZSBhbmQgdGhlIGNvbXBvbmVudCBpbXBsZW1lbnRhdGlvbiBtdXN0IGJlCj4gPiA+ID4gPj4gYWNjZXNzaWJsZQo+ID4gPiA+ID4+ID4gdGhyb3VnaCB0aGUgY3VycmVudCBjb250ZXh0Lgo+ID4gPiA+ID4+ID4KPiA+ID4gPiA+PiA+IEZyb20gd2hhdCBJIGNhbiB0ZWxsLCBpbiB5b3VyIGV4YW1wbGUgYWxsIHBsdWdpbnMgaGF2ZSBhY2Nlc3MKPiB0byB0aGUKPiA+ID4gPiA+PiA+IHJpZ2h0IGNvbXBvbmVudHMgd2hlbiB1c2luZyBjdXJyZW50IDMuNS4yLVNOQVBTSE9ULiBUaGUKPiBpbmplY3Rpb24KPiA+ID4gPiA+PiBvcmRlcgo+ID4gPiA+ID4+ID4gZG9lcyBhcHBlYXIgdG8gYmUgYmFja3dhcmRzIGZyb20gd2hhdCBJIGV4cGVjdGVkLCBob3dldmVyLgo+ID4gPiA+ID4+ID4KPiA+ID4gPiA+PiA+Cj4gPiA+ID4gPj4gPiAjIyBSZXNvdXJjZXMgbG9va3VwIGZ1bGx5IGRlcGVuZHMgb24gY2xhc3NwYXRoIHZpc2liaWxpdHksCj4gPiA+ID4gPj4gc3BlY2lmaWNhbGx5Cj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4+ID4gKiBSZWd1bGFyIHBsdWdpbiBjbGFzcyByZWFsbSBoYXMgYWNjZXNzIHRvIHJlc291cmNlcyBmcm9tIHRoZQo+IHBsdWdpbgo+ID4gPiA+ID4+ID4gaXRzZWxmLCBmcm9tICoqZXhwb3J0ZWQqKiBwYWNrYWdlcyBvZiB0aGUgcHJvamVjdCBidWlsZAo+IGV4dGVuc2lvbnMKPiA+ID4gYW5kCj4gPiA+ID4gPj4gPiAqKnB1YmxpYyoqIE1hdmVuIENvcmUgcGFja2FnZXMKPiA+ID4gPiA+PiA+ICogRXh0ZW5zaW9ucyBwbHVnaW4gY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byB0aGUgcmVzb3VyY2VzCj4gZnJvbSB0aGUKPiA+ID4gPiA+PiA+IGV4dGVuc2lvbnMgcGx1Z2luIGl0c2VsZiBhbmQgZnJvbSAqKnB1YmxpYyoqIE1hdmVuIENvcmUgcGFja2FnZXMKPiA+ID4gPiA+PiA+ICogUHJvamVjdCBjbGFzcyByZWFsbSBoYXMgYWNjZXNzIHRvIGNsYXNzZXMgYW5kIHJlc291cmNlcwo+ID4gPiAqKmV4cG9ydGVkKioKPiA+ID4gPiA+PiA+IGJ5IHByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucyBhbmQgKipwdWJsaWMqKiBNYXZlbiBDb3JlIHBhY2thZ2VzCj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4+ID4gSSBzZWUgdGhyZWUgcHJvYmxlbXMgaGVyZQo+ID4gPiA+ID4+ID4KPiA+ID4gPiA+PiA+ICogTWF2ZW4gYWRkcyBidWlsZCBzaW5nbGUtamFyIGA8ZXh0ZW5zaW9ucz5gIGVsZW1lbnRzIGRpcmVjdGx5Cj4gdG8KPiA+ID4gPiA+PiA+IHByb2plY3QgY2xhc3MgcmVhbG0gKiphbmQqKiBjcmVhdGVzIHNlcGFyYXRlIGV4dGVuc2lvbnMgY2xhc3MKPiByZWFsbXMKPiA+ID4gPiA+PiBmb3IKPiA+ID4gPiA+PiA+IHRoZW0uIFdoaWNoIHJlc3VsdHMgaW4gZHVwbGljYXRlIGNsYXNzZXMvcmVzb3VyY2VzIGxvYWRlZCBieSB0d28KPiA+ID4gPiA+PiA+IGNsYXNzbG9hZGVycyBhbmQgZXhwbGFpbnMgd2h5IHlvdSBzZWUgZXh0amFyMS9leHRqYXIyIG91dHB1dAo+ICh3aGljaAo+ID4gPiA+ID4+IHlvdQo+ID4gPiA+ID4+ID4gc2hvdWxkbid0IGFjY29yZGluZyB0byB0aGUgZXhwbGFuYXRpb24gYWJvdmUpCj4gPiA+ID4gPj4gPiAqIENsYXNzUmVhbG0gZG9lcyBub3QgYWxsb3cgZm9yZWlnbi1pbXBvcnQgb2YgdGhlIHNhbWUgcGFja2FnZQo+IGZyb20KPiA+ID4gPiA+PiA+IG11bHRpcGxlIGNsYXNzbG9hZGVycy4gVGhpcyBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIGxvYWQgdGhlIHNhbWUKPiA+ID4gPiA+PiA+IHJlc291cmNlIGZyb20gbXVsdGlwbGUgcGx1Z2lucy9leHRlbnNpb25zLgo+ID4gPiA+ID4+ID4gKiBFeHRlbnNpb25zIHBsdWdpbnMgY2Fubm90IGFjY2VzcyB0aGVpciBvd24gcHJpdmF0ZSAoaS5lLiBub3QKPiA+ID4gPiA+PiBleHBvcnRlZCkKPiA+ID4gPiA+PiA+IHJlc291cmNlcyB2aWEgVENDTCwgdGhpcyBpcyBjaGFuZ2UgaW4gYmVoYXZpb3VyIGludHJvZHVjZWQgYnkKPiA+ID4gbW5nLTYyMDkKPiA+ID4gPiA+PiA+IGZpeAo+ID4gPiA+ID4+ID4KPiA+ID4gPiA+PiA+IEhvcGUgdGhpcyBoZWxwcwo+ID4gPiA+ID4+Cj4gPiA+ID4gPj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPgo+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+Cj4gPiA+Cj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Cj4gPiA+IC0tCj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4gLS0KU2VudCBmcm9tIG15IHBob25lCgotLTAwMWExMTQyN2E2Njk0MWIyZDA1NTk5OWI0YjYtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDQzMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gTm92ICA2IDA4OjM3OjQ4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQzMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA1N0MwODE3Mjc1Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgIDYgTm92IDIwMTcgMDg6Mzc6NDggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5MjAzMyBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IE5vdiAyMDE3IDA4OjM3OjQ4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MTk1NiBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IE5vdiAyMDE3IDA4OjM3OjQ4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTE5NDMgaW52b2tlZCBieSB1aWQgOTkpOyA2IE5vdiAyMDE3IDA4OjM3OjQ3IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAwNiBOb3YgMjAxNyAwODozNzo0NyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEQ2QUQ3Qzg5RTQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICA2IE5vdiAyMDE3IDA4OjM3OjQ2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi4zNzkKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi4zNzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHUtSlF1TWt3V2VrbCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgIDYgTm92IDIwMTcgMDg6Mzc6NDQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13bTAtZjQ4Lmdvb2dsZS5jb20gKG1haWwtd20wLWY0OC5nb29nbGUuY29tIFs3NC4xMjUuODIuNDhdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNjg1NTg2MEQyNAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgIDYgTm92IDIwMTcgMDg6Mzc6NDQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd20wLWY0OC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBiOXNvMTI0MTE5NjV3bWguMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDA2IE5vdiAyMDE3IDAwOjM3OjQ0IC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWF1NmlrVitBcDV2bUlzUzQ3cFNUdlU2TU9KOWFtZy9aeWNBNlplSmpqV1U9OwogICAgICAgIGI9dCtKbThJQ1ZlNm5MeXdlUWMrOWVIWHhjZ2tHczB2WmFUNFBaNEt0aThWLytpMkY1YzZ5VmhpQmh5UGxTYWpFM0NSCiAgICAgICAgIDNYdThLN3hUNjdKcjl1YVlucnJXa3pJdW94ZkdqeFU4SWRIUUQxNHlLZldsbG1WOGp0bFY1Rmh3U21ZdzVhdTZ0VUIxCiAgICAgICAgIFlIZS9zREZxY2dUaUd0Y0MwMEhDSXlzZVYyQkMwdmNCWG5WNms4MjF0T2xjYXgrVHJRQnpFZGRjamxxODNUWlB1cGs5CiAgICAgICAgIExEUDZCRDlRUjZOL1NXWloxWmVvQXFiV3hKZlpqQWlHR2dZYVJCZk9UOTBMUUl3MHlUQUtlMnEyaUFYSmxnczVVU0RDCiAgICAgICAgIFAxNG9rMzNlR0FGYmpmamI2R3k2a3dpcVRVdGxXdkdzc0d5MkpwTWNmWHowVWhKU2hUY2cvWDJQa2E2eEJ2MkhwSVNLCiAgICAgICAgIHZFOHc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWF1NmlrVitBcDV2bUlzUzQ3cFNUdlU2TU9KOWFtZy9aeWNBNlplSmpqV1U9OwogICAgICAgIGI9TmJaalhXbDJKU3JxRE9EL1BCMEhsVUdUcXdJdE1qRTczSklZc0xwOWVaY05jazdaaWc1QThRZnFSVytWV240V1EzCiAgICAgICAgIG04L252ZUtmLzQwN2dMYW40ZFVrNEdiRzdjRHNNN1VScHNON0VzODdCendGYUlxRG9XcXN0TWVsN2tVb3Mxa1ZoUHJqCiAgICAgICAgIFVaa2JrOVdkR2cxQ2tabXJCZlFNWVl3eFV6MVAvdmJNc0ZVS2d5Q1FET2Z1Z3J1QmxDRWEwSXRleWhNc0V6OU0zRml4CiAgICAgICAgIFBpREFGck9yNDNGbm5RWmZscGJsbDdqTnFnNEVOdjFHZ21Hd0QyTWNJcEpKZjhQTXdWbVdKcDRMbi95Y2orVmRYU1U0CiAgICAgICAgIHNHRnUyb25DdmFvL2k1WnEwZ2JhRk5kRURSSzg0K1J4Z2tyR2N2d3cyY1VGWmlobEdzRjdLT0lPejU4Z2NjVXlmQXFTCiAgICAgICAgIGxEUkE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDdmUHZMYWpiT0VrSDZvaEwwT2J0ZTNBb1M5Yi9IaE5ZWW44ZmtMQjJrV0c4aUNuOGZQCgl5NG9YS0psUEVRaGFrTVdubkZZVElqMGVndE9mTG82Z3lNb0QvbzB0aEE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArVGxtZlNhODJhbHhaVHNISHQ1dmh6R3I1c2F6YnZSdm5LTkZDRHlqVWdJdmpyUUJ2QmhaTk1XZHErSGJmb3dQcDNLKy9VLzBlbWZMQytUdUtxaWlrcz0KWC1SZWNlaXZlZDogYnkgMTAuMjguMjEuMTAgd2l0aCBTTVRQIGlkIDEwbXI0MjIwNTQ2d212LjQxLjE1MDk5NTc0NjM4MTk7IE1vbiwKIDA2IE5vdiAyMDE3IDAwOjM3OjQzIC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDxDQStuUG5Nd0VIOVoybXlwNzF1YVNyZGN5TEpSRnJFLVZydDIwMTkxcmQwMWgrVWZoandAbWFpbC5nbWFpbC5jb20+CiA8Q0FMWUdtMXhiMU1PSHBzWCs3RUc4eDRiZC16SForTzk1ZTJZNVkyRHVkWmlFRTZlTkNBQG1haWwuZ21haWwuY29tPgogPG9wLnk4Njd3eGg0a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPiA8RTk5QTA0RjYtQjc4RS00QjRGLTgyRTktQzg5QThGQjc0NERFQHRhbGlvcy5jb20+CiA8NTlmZjgyNTguZWNiMmRmMGEuNWQzMTYuYmM4OUBteC5nb29nbGUuY29tPiA8Q0FDTEU9N01LTF82Q052UkJuVk82a3JGeEhNODZlaDg4b1pRT3JILXZ0cXRzcS1RUUVBQG1haWwuZ21haWwuY29tPgpJbi1SZXBseS1UbzogPENBQ0xFPTdNS0xfNkNOdlJCblZPNmtyRnhITTg2ZWg4OG9aUU9ySC12dHF0c3EtUVFFQUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAwNiBOb3YgMjAxNyAwODozNzozMiArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXhzTTFPeGlaUXVuOXZqS0hid0JnTWl3cllFamFCNVg0WG5GbUdMZVRaWUVBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogTWF2ZW4gNC4wLjAKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDVhOTMyNDFjYWQzMDU1ZDRjNWU0ZSIKCi0tMDAxYTExNDVhOTMyNDFjYWQzMDU1ZDRjNWU0ZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPbiBNb24gNiBOb3YgMjAxNyBhdCAwODoxMywgUm9tYWluIE1hbm5pLUJ1Y2F1IDxybWFubmlidWNhdUBnbWFpbC5jb20+Cndyb3RlOgoKPiBGb3Jnb3QgYSB1c2VyIHdpc2ggZmVhdHVyZTogc29tZSBwcm9ncmVzcyBsb2dnaW5nIHNvbWVob3cuIE9uICJiaWciIHByb2plPQpjdAo+IChhY3R1YWxseSBvbiBwcm9qZWN0IGxvZ2dpbmcgYSBsb3QpIHlvdSBhcmUgZWFzaWx5IGxvc3Qgb24gdGhlIHByb2dyZXNzLAo+IHlvdSBrbm93IGN1cnJlbnQgbW9kdWxlIGlzIFggYnV0IHlvdSBkb24ndCBrbm93IGFueW1vcmUgaWYgaXQgaXMgNTAlIG9mIHQ9CmhlCj4gYnVpbGQgb3IgNSUuIEhhdmluZyBhdCBsZWFzdCAibW9kdWxlIFggLyBZIiB3b3VsZCBiZSBoZWxwZnVsLiBJTU8gaXQgaXMKPiBlbm91Z2ggdG8gbG9nIGl0IHdpdGggdGhlIG1vZHVsZSBuYW1lOgo+Cj4gW0lORk9dCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gW0lORk9dIEJ1aWxkaW5nIEZvbyAxLjAuMC1TTkFQU0hPVAo+IFtJTkZPXQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFtJTkZPXSBNb2R1bGUgMTAgLyAxMDAKPgoKQ2FuIHlvdSBmaWxlIGEgSklSQT8KCj4KPgo+Cj4KPgo+IFJvbWFpbiBNYW5uaS1CdWNhdQo+IEBybWFubmlidWNhdSA8aHR0cHM6Ly90d2l0dGVyLmNvbS9ybWFubmlidWNhdT4gfCAgQmxvZwo+IDxodHRwczovL3JtYW5uaWJ1Y2F1Lm1ldGF3ZXJ4Lm5ldC8+IHwgT2xkIEJsb2cKPiA8aHR0cDovL3JtYW5uaWJ1Y2F1LndvcmRwcmVzcy5jb20+IHwgR2l0aHViIDwKPiBodHRwczovL2dpdGh1Yi5jb20vcm1hbm5pYnVjYXU+IHwKPiBMaW5rZWRJbiA8aHR0cHM6Ly93d3cubGlua2VkaW4uY29tL2luL3JtYW5uaWJ1Y2F1Pgo+Cj4gMjAxNy0xMS0wNSAyMjoyNyBHTVQrMDE6MDAgQmVybmQgRWNrZW5mZWxzIDxlY2tpQHp1c2FtbWVua3VuZnQubmV0PjoKPgo+ID4gSGVsbG8sCj4gPgo+ID4KPiA+Cj4gPiBBZGRpbmcgYW5ub3RhdGlvbnMgYW5kIHByb2Nlc3NvciBhcyBhIGNvbXBpbGV0aW1lIGRlcGVuZGVuY3kgc291bmRzIGxpaz0KZQo+IGEKPiA+IHJlYXNvbmFibGUgdGhpbmcuIEl0IHdvdWxkIGhvd2V2ZXIgYmUgY29vbCBpZiB0aGUgSkFSIGNvdWxkIGRlc2NyaWJlCj4gd2hpY2gKPiA+IHBhY2thZ2UgbmVlZHMgdG8gZ28gb24gdGhlIGNsYXNzcGF0aCBhbmQgd2hpY2ggaXMgcHJvY2Vzc29yIGltcGwuIChhbmQKPiA+IGhhdmluZyBhIGRpZmZlcmVudCBhcnRpZmFjdCBmb3IgcnVudGltZSkKPiA+Cj4gPgo+ID4KPiA+IEdydXNzCj4gPgo+ID4gQmVybmQKPiA+Cj4gPgo+ID4KPiA+ICpWb246ICpNYXJrIERlcnJpY3V0dCA8bWFya0B0YWxpb3MuY29tPgo+ID4gKkdlc2VuZGV0OiAqU29ubnRhZywgNS4gTm92ZW1iZXIgMjAxNyAyMjoyMAo+ID4gKkFuOiAqTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KPiA+ICpCZXRyZWZmOiAqUmU6IE1hdmVuIDQuMC4wCj4gPgo+ID4KPiA+Cj4gPiBPbiA1IE5vdiAyMDE3LCBhdCAxMDo0MiwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4gPgo+ID4gSSB3b3VsZCBsaWtlIHRvIGRyb3Agc3RyaWN0IHNjb3BlcyBpbiBnZW5lcmFsIGFuZCBnaXZlIHBsdWdpbnMgdGhlCj4gPiBvcHBvcnR1bml0eSB0byBkZXBlbmQgb24KPiA+IHNwZWNpZmljIHNjb3BlZCBkZXBlbmRlbmNpZXMuCj4gPgo+ID4gSG93IHdvdWxkIHRoaXMgaGVscCB3aXRoIGFubm90YXRpb25zIHRobz8gVGhlIG1haW4gaXNzdWUgSSdtIGZhY2luZyBpcwo+ID4gaGF2aW5nIGEgc3RhbmRhcmQgbS1jLXAgcGx1Z2luIGRlZmluaXRpb24gaW4gYSBwYXJlbnQgKCBvciB0aWxlICkgYnV0Cj4gPiBuZWVkaW5nIGRpZmZlcmVudCBhbm5vdGF0aW9uIHByb2Nlc3NvcnMgdXNlZCBwZXIgcHJvamVjdC4gV2l0aCB0aGUKPiBjdXJyZW50Cj4gPiBwbHVnaW4sIHRoaXMgbWVhbnMgZWl0aGVyIGxpc3RpbmcgdGhlbSBhcyBzdGFuZGFyZCBkZXBlbmRlbmNpZXMgYW5kIGhhdj0KZQo+ID4gdGhlbSBhdXRvLXNjYW5uZWQsIGFuZCBwb2xsdXRlIHRoZSBjb21waWxhdGlvbiBjbGFzc3BhdGgsIG9yIGxpc3QgZXZlcnkKPiA+IHBvc3NpYmxlIGFubm90YXRpb24gcHJvY2Vzc29yIGRlcGVuZGVuY3kgd2UgbWF5IHVzZSBpbiBvdXIgcHJvamVjdHMgaW4KPiB0aGUKPiA+IHBhcmVudCwgd2hpY2ggaXMgbGVzcyB0aGFuIGlkZWFsLgo+ID4KPiA+IEkgaG9wZSB5b3UgYXJlIGF3YXJlIHRoYXQgbW9kdWxlcyBhbHJlYWR5IGVuZCB1cCBvbiB0aGUgbW9kdWxlcGF0aCBiYXNlPQpkCj4gPiBvbiB0aGUgbW9kdWxlZGVzY3JpcHRvcihzKS4gU28gSSBkb24ndCBzZWUgdGhlIG5lZWQgZm9yIHRoaXMgc2NvcGUuCj4gKHVubGVzcwo+ID4geW91IGhhdmUgdGhpcyB3aXNoIHRoYXQgaW4gdGhlIGVuZCBNYXZlbiB3aWxsIGNyZWF0ZSB0aGUgbW9kdWxlCj4gZGVzY3JpcHRvcgo+ID4gYmFzZWQgb24gdGhpcywgYnV0IEkgc3RpbGwgdGhpbmsgd2Ugc2hvdWxkbid0IGRvIHRoYXQpCj4gPgo+ID4gSSByZW1lbWJlcmVkIHJlYWRpbmcgc29tZXRoaW5nIGFib3V0IHRoaXMsIGFuZCBhc3N1bWVkIGl0IHdhcyB0aGUgY2FzZSA9CmlmCj4gPiB0aGVyZSB3YXMgYSBtb2R1bGUtaW5mby5jbGFzcywgYnV0IHdoYXQgaWYgaXRzIGEgc3RhbmRhcmQgamFyIHdpdGggYW4KPiA+IEF1dG9tYXRpYy1Nb2R1bGUtTmFtZSBoZWFkZXI/IERvZXMgdGhhdCBmYWxsIGludG8gdGhlIG1vZHVsZSBwYXRoIG9yCj4gPiBjbGFzc3BhdGg/IEhhdmluZyBjb250cm9sIGZvciB0aGlzIGNhc2UgbWF5IGJlIHVzZWZ1bC4KPiA+Cj4gPiBJIHJlY29nbml6ZSB0aGlzIHdpc2guIFRoZSBiZXN0IHNvbHV0aW9uIGlzIHRvIG1ha2UgdGhlIGRlcGVuZGVuY3kKPiA+IG9wdGlvbmFsLgo+ID4KPiA+IFRoZSBwcm9ibGVtIHdpdGggdGhpcyBpcyB0aGF0IHRoZSBkZXBlbmRlbmN5IGlzIHN0aWxsIG9uIHRoZSBjbGFzc3BhdGgKPiBmb3IKPiA+IHNheSBzdXJlZmlyZSwgd2hpY2ggY2FuIGluZmx1ZW5jZSBiZWhhdmlvdXIuCj4gPgo+ID4gTWFyawo+ID4KPiA+ICJUaGUgZWFzZSB3aXRoIHdoaWNoIGEgY2hhbmdlIGNhbiBiZSBpbXBsZW1lbnRlZCBoYXMgbm8gcmVsZXZhbmNlIGF0IGFsPQpsCj4gPiB0byB3aGV0aGVyIGl0IGlzIHRoZSByaWdodCBjaGFuZ2UgZm9yIHRoZSAoSmF2YSkgUGxhdGZvcm0gZm9yIGFsbCB0aW1lLj0KIgo+ID1FMj04MD05NAo+ID4gTWFyayBSZWluaG9sZC4KPiA+Cj4gPiBNYXJrIERlcnJpY3V0dAo+ID4gaHR0cDovL3d3dy50aGVvcnlpbnByYWN0aWNlLm5ldAo+ID4gaHR0cDovL3d3dy5jaGFsaWNlb2ZibG9vZC5uZXQKPiA+IGh0dHA6Ly9wbHVzLmdvb2dsZS5jb20vK01hcmtEZXJyaWN1dHQKPiA+IGh0dHA6Ly90d2l0dGVyLmNvbS90YWxpb3MKPiA+IGh0dHA6Ly9mYWNlYm9vay5jb20vbWRlcnJpY3V0dAo+ID4KPiA+Cj4gPgo+ID4KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Cj4KLS09MjAKU2VudCBmcm9tIG15IHBob25lCgotLTAwMWExMTQ1YTkzMjQxY2FkMzA1NWQ0YzVlNGUtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDA5Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gU2VwIDI0IDE3OjM2OjMyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDA5Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA2NzkyMEYwQzEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAyNCBTZXAgMjAxNyAxNzozNjozMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE1MTcyIGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IFNlcCAyMDE3IDE3OjM2OjMyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNTA4OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNCBTZXAgMjAxNyAxNzozNjozMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE1MDc3IGludm9rZWQgYnkgdWlkIDk5KTsgMjQgU2VwIDIwMTcgMTc6MzY6MzEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDI0IFNlcCAyMDE3IDE3OjM2OjMxICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMkIzNDREQTJGNAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjQgU2VwIDIwMTcgMTc6MzY6MzEgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC40MDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuNDAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQganB3NkdtcGZUdkVGIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAyNCBTZXAgMjAxNyAxNzozNjoyOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdyMC1mMTc3Lmdvb2dsZS5jb20gKG1haWwtd3IwLWYxNzcuZ29vZ2xlLmNvbSBbMjA5Ljg1LjEyOC4xNzddKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgODMwRDI1RkRFMgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjQgU2VwIDIwMTcgMTc6MzY6MjcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd3IwLWYxNzcuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgdTk2c280MzI3NzQ4d3JiLjYKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAyNCBTZXAgMjAxNyAxMDozNjoyNyAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD0wSWhYU1p0VUU2cHJJYVhneFhqcm9kejhPSGx4KzFKSmRRd0ErY1FqcFhjPTsKICAgICAgICBiPXJDTmtTaWU4UXF0bzg0M1R2eVNOaE80NXl6NFpDZ2U5Y3ZqL1hPYWVNaHhKdW9DWGc3ZDBQYUZET08yN1BtY25kTgogICAgICAgICBjSW1VRHdnVit5bFBUdDd1d2txM1Z3ZG16OUFyZ3ZrWXYwWHp5blhHNDI3SjJpczJab3N6YmdRbUp0N0tkK0FKUjJDdwogICAgICAgICBrcHY1STlCc0ozWldGcWZ4cjltL2M2ZzYzbk90cEdXMXJHZTdoZC9McCtVaUhEODFBUW8rd1RtNmQ2b2owRGxuRis4cwogICAgICAgICBLaGo3VVZVWVpaOVU5aTl1QUtxN01PcFhhTjdOMGljdFN2dkZlR3k3L1FLSlJHS1BwcEYwWWZYOEg3UWNyUDMxa0pSVAogICAgICAgICBSRHBNdzlvNDhCbTNLc2ZwOENndTJXazhsMWhoT2RQTk1yT2tBeGZOODErdCtDbDdCTUJEYzExTDJGWVFObUN2cE50OAogICAgICAgICAxM3pRPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD0wSWhYU1p0VUU2cHJJYVhneFhqcm9kejhPSGx4KzFKSmRRd0ErY1FqcFhjPTsKICAgICAgICBiPXByRWZ0TG00WU1pU1oyNHgxTzJwblp1dzc0SFllL2hLckw1YXYycXdSNXV0WEZ3WjVrUVVnZmZqK3JZR29JRmFWMwogICAgICAgICArUlYrNlNKaHhrMVFORGh1Q3ZwVlZDRjNMMktVTG1oWXlETE01RGUrNHNsTUF5WjY3cnpvMTlCWGlqV2c2YlVma3N6eAogICAgICAgICBRSENSTW9aSlhPSW4xSGdPM2pIYmcrY1pjNnNJYW1LY0FBL2JFdmdBN2pjTFhXTE1heUlObVpsVGdHWFZ4Y0RlM3ZrcwogICAgICAgICBPR1RGSzQySUlQcE9kOWhaRFZ1SHhWNWtoVkJhdUdIL0taRzQwWHB5ZnFLOUdFRGFpSHVQdldVTUdlR0pucWNOWE5scgogICAgICAgICBMTytYR3lGVG8vVWlPekF4YnBEVG04SXhBQUhjWEFtOGdlNm9yKzhEZTcxNFhhaE12ajA1NUVKN1V2QXZNbjNZb0d4MAogICAgICAgICBNWndBPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVoM29NTnNIZERIY1pzMEdHZVdyN0hoNnByZk5oQ0xLaHNsN2REUGxzN0hwb0djcHpWVgoJN0t1UXd0Y2VRaHBXQUs0TVJjdGtuNHpnODZ4T2hHS1JIOTluVE5jYlhnPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUF0bDBzSlBmQWhsLzB6bWN1TXN4eWFPRkVwNklSTnhTcFRRYzkraVZhYjBialdVaXBOYmdCRUZWMVlPL3lMUGJwTm1WdC9hcXlaQStCUHhvSWN0Unc9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xODIuMTM3IHdpdGggU01UUCBpZCBqOW1yMzkwNjczNndyZS4xNTAuMTUwNjI3NDU4NjEwNTsKIFN1biwgMjQgU2VwIDIwMTcgMTA6MzY6MjYgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPENBK25Qbk13TUNxT19FdGNCVzVfM3JNNzEtdENyaXRwNFVrc3lmUG1ER0FZcjZ4ej1vUUBtYWlsLmdtYWlsLmNvbT4KIDxGMUY4QjNDRi1EREFDLTQ0QkEtQUVCNy00MTIyQzg4N0M0QUJAaG9udG9uLm9yZz4gPENBK25Qbk13Zl9CZnRZdXMtcm5Rck83bzUrZHVHRnowVkVhN05pb2hHMV9fWVV6cmM1d0BtYWlsLmdtYWlsLmNvbT4KIDwxNTA1Nzk2OTA4LjI1MTY4MDguMTExMDY3MzEyOC42MzVBQzM1RkB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CiA8b3AueTZ0dG1yZWJrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDxDQStuUG5NeEZGRVRRbXF0ZTAtNTB1M0VGU3diZzZ5aXB3NVZTQmRMUHdUelBoZFZrNXdAbWFpbC5nbWFpbC5jb20+CiA8b3AueTZ0djVrZjNrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDwxNTA1ODUzNTQwLjM0NDM0NjUuMTExMTYyMDY0MC4zMzFCRTU4QUB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CiA8Q0ErblBuTXprTnZCRl9GY3QtRT03cWZHUWZwSFVCS1QxOWNXQzM4U0NxdHE2a3ZpZTlnQG1haWwuZ21haWwuY29tPgogPDE1MDU4NjczNzQuMzQ5Mzg0Mi4xMTExNzk2NTIwLjUxMjRBQ0E2QHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KIDxDQStuUG5NeHFIYTN5QlJGV3IraU9Fc09taGtYOExjZ2MwTTRkRzlzeXVjTHNQYUxSNUFAbWFpbC5nbWFpbC5jb20+CiA8b3AueTZ1c2V1d3lrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDwxNTA1OTA3ODkyLjIyNzI0OC4xMTEyMjgyMzEyLjA5M0RBOEM1QHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KIDxDQStuUG5NenUrWXZLUVgzdlQ9QUJrSzNwY0dQLU1oeHRzaW9rVDBDc2t6QWJqTTl4N0FAbWFpbC5nbWFpbC5jb20+IDxvcC55NjJ3cjJtaGtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KSW4tUmVwbHktVG86IDxvcC55NjJ3cjJtaGtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAyNCBTZXAgMjAxNyAxNzozNjoxNSArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXh0PWdCMDNUN0czUHFpMjdVK2ZTaV95MytmOW12UlVWb1p3PUFyZWFuaTF3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogVW5kZXJzdGFuZGluZyBNTkctNjIwOSAod2FzOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEpClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9ImY0MDMwNDM4OGU2OGEzYWQ3ODA1NTlmMmUxODYiCgotLWY0MDMwNDM4OGU2OGEzYWQ3ODA1NTlmMmUxODYKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gU3VuIDI0IFNlcCAyMDE3IGF0IDE3OjQ0LCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+IHdyb3RlOgoKPiBBcmUgdGhlc2UgcXVlc3Rpb25zIHdlIGNhbi9zaG91bGQgYW5zd2VyIHdpdGhpbiBhIGNvdXBsZSBvZiBkYXlzPwo+IEknbSBub3QgYXdhcmUgb2Ygc29tZWJvZHkgaGl0dGluZyB0aGUgcmVncmVzc2lvbiBhcyBjYXVzZWQgYnkgTU5HLTU3NDIKPiBvdGhlciB0aGFuIElnb3IuCj4gSG93ZXZlciwgd2UndmUgc2VlbiBhIGNvdXBsZSBvZiBjaGFuZ2VkIGJlaGF2aW9yIGNsZWFybHkgY2F1c2VkIGJ5Cj4gTU5HLTYyMDkgKG5vdCBhbnN3ZXJpbmcgaWYgdGhpcyBpbnRlbmRlZCBvciBub3QpCj4KPiBXZSBjb3VsZCBhbHNvIG1ha2UgdGhlIGRlY2lzaW9uIHRvIGxlYXZlIE1ORy02MjA5IG91dCwgZG8gYSBuZXcgcmVsZWFzZQo+IGFuZCBjb21wbGV0ZSBvdXIgaW52ZXN0aWdhdGlvbiBkaXJlY3RseSBhZnRlcndhcmRzLgo+IFRoaXMgY2hhbmdlIGlzIHdheSB0b28gdHJpY2t5IHRvIGRvIGFkZGl0aW9uYWwgY2hhbmdlcyB1bmRlciBwcmVzc3VyZS4KCgpJZiB3ZSBkcm9wIDMuNS4xIGk9RTI9ODA9OTlkIGJlIGluIGZhdm91ciBvZiByZXZlcnRpbmcgYm90aCBNTkctNjIwOSBhbmQgTU49CkctNjI3NQoodGhlIFRDQ0wgb25lKSBhcyBJIGhhdmUgZm91bmQgZG9jdW1lbnRhdGlvbiBzdGF0aW5nIHRoYXQgVENDTCBpcyB0aGUKcGx1Z2luIGNsYXNzbG9hZGVyLCB3aGljaCBtYWtlcyBtZSB3YXJ5IG9mIGNoYW5naW5nIHRoYXQgaW4gYSBwYXRjaCByZWxlYXNlCihidXQgSSBjYW4gYmUgY29udmluY2VkIG90aGVyd2lzZSkKCgo+Cj4gdGhhbmtzLAo+IFJvYmVydAo+Cj4KPiBPbiBTdW4sIDI0IFNlcCAyMDE3IDE4OjA3OjM5ICswMjAwLCBTdGVwaGVuIENvbm5vbGx5Cj4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Cj4gPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL21pbmkvZ3VpZGUtbWF2ZW4tY2xhc3Nsb2FkaW5nLmh0bWwgc2F5cz0KOgo+ID4KPiA+PiBXaGVuIGEgYnVpbGQgcGx1Z2luIGlzIGV4ZWN1dGVkLCB0aGUgdGhyZWFkJ3MgY29udGV4dCBjbGFzc2xvYWRlciBpcyBzPQpldAo+ID4gdG8gdGhlIHBsdWdpbiBjbGFzc2xvYWRlci4KPiA+Cj4gPiBTbyB3ZSdsbCBuZWVkIHRvIGZpeCBzb21ldGhpbmcgc29tZXdoZXJlLi4uCj4gPgo+ID4KPiBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vbWF2ZW4vY29udGVudC9yZWZlPQpyZW5jZS9tYXZlbi1jbGFzc2xvYWRpbmcuaHRtbAo+ID4gaXMgdW5hY2Nlc3NpYmxlIGZyb20gdGhlIHdlYnNpdGUgZHVlIHRvIGEgcmV3cml0ZSBydWxlLi4uCj4gPgo+ID4gVGhpbmdzIHRoYXQgc2VlbSB0byBiZSBtaXNzaW5nOgo+ID4KPiA+ICogV2hhdCBpcyB0aGUgZGVzaXJlZCBjbGFzc2xvYWRpbmcgZm9yIGEgcGx1Z2luIHRoYXQgaXMgbWFya2VkIGFzIGFuCj4gPiBleHRlbnNpb24/IENhbiBhIHBsdWdpbiBoYXZlIGEgTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCB0byBhbGxvdwo+ID4gZXhwb3J0aW5nIGNsYXNzZXMgYW5kIGFydGlmYWN0cyB3aGVuIHVzZWQgYXMgYW4gZXh0ZW5zaW9uPyBIb3cgc2hvdWxkIHQ9CmhlCj4gPiBjbGFzc2xvYWRpbmcgbG9vayBmb3Igc3VjaCBhIHN0cmFuZ2UgYmVhc3QuCj4gPgo+ID4gKiBIb3cgZG9lcyBvbmUgYWNjZXNzIHRoZSBwbHVnaW4gY2xhc3Nsb2FkZXIgaWYgd2Ugd2FudCBUQ0NMIHRvIGJlIG90aGU9CnIKPiA+IHRoYW4gdGhhdCwgaXMgaXQgYSBEZXBlbmRlbmN5IEluamVjdGlvbiBvciBzb21ldGhpbmcgZWxzZT8KPiA+Cj4gPiAqIFdoYXQgZGlmZmVyZW50aWF0ZXMgYSBDb3JlIGV4dGVuc2lvbiBmcm9tIGEgQnVpbGQgZXh0ZW5zaW9uIChpcyBpdAo+ID4gdGhhdCBhCj4gPiBidWlsZCBleHRlbnNpb24gbGFja3MgYSBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sIGFuZCB3YXMgb25seQo+ID4gZGVjbGFyZWQKPiA+IGluIHRoZSBwb20ueG1sLCB3aGlsZSBhIGNvcmUgZXh0ZW5zaW9uIGVpdGhlciBoYXMgYQo+ID4gTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCAtIGlmIGRlY2xhcmVkIGluIHRoZSBwb20gLSBvciBpcyBhbgo+ID4gZXh0ZW5zaW9uCj4gPiBkZWNsYXJlZCBpbiAubXZuL2V4dGVuc2lvbnMueG1sKQo+ID4KPiA+IEF0IHRoaXMgcG9pbnQgaW4gdGltZSBJIHRoaW5rIHdlIGFyZSBuZWFyaW5nIHRoZSBwb2ludCB3aGVyZSBJIG1heSBoYXZlCj4gPiB0bwo+ID4gZGVjbGFyZSAzLjUuMSBhYmFuZG9uZWQgYXMgSSB0aGluayB0aGUgY2xhc3Nsb2FkaW5nIGluIHRoYXQgaXMgYSBzeW1wdG89Cm0KPiA+IG9mCj4gPiB0b28gbWFueSBjb29rcyBhbGwgY2hhbmdpbmcgdGhpbmdzIGluIGRpZmZlcmVudCBkaXJlY3Rpb25zLiBXZSBuZWVkIGEKPiA+IGNvbnNpc3RlbnQgdmlzaW9uIG9mIHdoZXJlIHdlIHdhbnQgdGhpbmdzIHRvIGdvIGFuZCAtIHdoaWxlIHdlIG5lZWQgbm90Cj4gPiBnZXQKPiA+IHRoZXJlIGluIG9uZSBnbyAtIHRoZSBwYXRoIHByZXNlbnRlZCBmb3Igb3RoZXJzIHRvIHNlZS4KPiA+Cj4gPiBUaGluZ3MgSSB0aGluayB3ZSBzaG91bGQgY29uc2lkZXI6Cj4gPgo+ID4gMS4gRG8gd2Ugd2FudCB0byBmb3JtYWxseSBkZXByZWNhdGUgQnVpbGQgRXh0ZW5zaW9ucyBhbmQgdGhlCj4gPiAvcHJvamVjdC9idWlsZC9leHRlbnNpb25zIGVsZW1lbnQgKHN0YXJ0IGxvZ2dpbmcgd2FybmluZ3MsIGV0Yyk/Cj4gPiAyLiBEbyB3ZSB3YW50IHRvIGZvcm1hbGx5IGRlcHJlY2F0ZSBwbHVnaW5zIGFzIGV4dGVuc2lvbnMgYW5kIHN0YXJ0Cj4gPiBsb2dnaW5nCj4gPiB3YXJuaW5ncyBmb3IKPiA+Cj4gL3Byb2plY3QvYnVpbGQvKHBsdWdpbk1hbmFnZW1lbnR8LikvcGx1Z2lucy9wbHVnaW4vZXh0ZW5zaW9uc1t0ZXh0KCk9M0Q9Cj0zRHRydWVdCj4gPiAzLiBXaGF0IGlzIHRoZSBkaWZmZXJlbmNlIGluIGNsYXNzbG9hZGluZyBmb3IgYSAvcHJvamVjdC9idWlsZC9leHRlbnNpbz0KbnMKPiA+IHdoaWNoIGhhcyBhIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgYW5kIG9uZSB0aGF0IGRvZXNuJ3Q/Cj4gPgo+ID4gSSdtIGtlZXBpbmcgdGhlIDMuNS4xIHJlbGVhc2UgaW4gc3RhZ2luZyB1bnRpbCB3ZSBnZXQgYSBjbGVhciB2aXNpb24gZm89CnIKPiA+IGhvdyB3ZSB3YW50IHRvIGhhdmUgY2xhc3Nsb2FkaW5nIHNvIHRoYXQgSSBjYW4gYXNzZXNzIHdoZXRoZXIgdGhlIDMuNS4xCj4gPiBhY3R1YWxpdHkgaXMgb25seSBtb3ZpbmcgbmVhcmVyIHRvIHRoZSB2aXNpb24gKG9rIHRvIHJlbGVhc2UpIG9yIGhhcwo+ID4gbW92ZWQKPiA+IG5lYXJlciBpbiBzb21lIHdheXMgYnV0IGZ1cnRoZXIgaW4gb3RoZXJzIChub3Qgb2sgdG8gcmVsZWFzZSkKPiA+Cj4gPiBPbiAyMCBTZXB0ZW1iZXIgMjAxNyBhdCAxMjo0NCwgSWdvciBGZWRvcmVua28gPGlnb3JAaWZlZG9yZW5rby5jb20+Cj4gPiB3cm90ZToKPiA+Cj4gPj4gUmVhbC13b3JsZCBzY20gb3Igd2Fnb24gPGV4dGVuc2lvbnM+IHdvbid0IHRyaWdnZXIgbWF2ZW4yLWNvbXBhdCBjb2RlCj4gPj4gcGF0aCBbMV0uIFRvIGF2b2lkIHRoYXQgb2JzY3VyZSBjb2RlIHBhdGggd2UgY2FuIGVpdGhlciBtYWtlIHRoZSB0ZXN0Cj4gPj4gbW9yZSBlbGFib3JhdGUgKGkuZS4gYWRkIGRlcGVuZGVuY2llcyB0byBleHRqYXIxL2V4dGphcjIpIG9yIHdlIGNhbiB1cz0KZQo+ID4+IGV4dGVuc2lvbnMgPHBsdWdpbj4uIEVpdGhlciB3YXkgSSBkb24ndCB0aGluayB3ZSBzaG91bGQgc3BlbmQgdGltZSBvbgo+ID4+IHRoZSBjb2RlIHBhdGggdW5saWtlbHkgdG8gYmUgdXNlZCBpbiByZWFsIGxpZmUuCj4gPj4KPiA+PiBbMV0KPiA+PiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL2Jsb2IvbWF2ZW4tMy41LjEvbWF2ZW4tCj4gPj4KPiBjb3JlL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wcm9qZWN0L0RlZmF1bHRQcm9qZWN0QnVpbGRpbmdIZWxwZXIuCj4gPj4gamF2YSNMMjEwLUwyMTkKPiA+Pgo+ID4+IC0tCj4gPj4gUmVnYXJkcywKPiA+PiBJZ29yCj4gPj4KPiA+PiBPbiBXZWQsIFNlcCAyMCwgMjAxNywgYXQgMDM6MjkgQU0sIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+ID4+ID4gT24gV2VkLCAyMCBTZXAgMjAxNyAwOToxMjo0NyArMDIwMCwgU3RlcGhlbiBDb25ub2xseQo+ID4+ID4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4+ID4KPiA+PiA+ID4gT24gV2VkIDIwIFNlcCAyMDE3IGF0IDAxOjI5LCBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvbT4KPiA+PiB3cm90ZToKPiA+PiA+ID4KPiA+PiA+ID4+IEluIHRoYXQgY2FzZSwgY2FuIEkgc3VnZ2VzdCBjb3VwbGUgb2YgY2hhbmdlcyB0byB0aGUgdGVzdCBwcm9qZWN0Cj4gPj4gPiA+Pgo+ID4+ID4gPj4gKiBJIHRoaW5rcyBpdCBtYWtlcyBtb3JlIHNlbnNlIHRvIGNvbmZpZ3VyZSBleHRqYXIxIGFuZCBleHRqYXIyIGE9CnMKPiA+PiA+ID4+IGV4dGVuc2lvbnMgPHBsdWdpbj4gZWxlbWVudHMgaW4gcHJvYmxlTiBwb20ueG1sIGZpbGVzLiBGaXJzdCwKPiA+PiB0aGVyZSBpcwo+ID4+ID4gPj4gbm8gbWVhbmluZ2Z1bCBvcmRlciBiZXR3ZWVuIDxleHRlbnNpb25zPiBhbmQgPHBsdWdpbnM+IGVsZW1lbnRzLgo+ID4+IE1vcmUKPiA+PiA+ID4+IGltcG9ydGFudGx5LCB0aG91Z2gsIHNpbXBsZSA8ZXh0ZW5zaW9ucz4gYXJlIHRyZWF0ZWQgaW4gc3BlY2lhbAo+ID4+ID4gPj4gbWF2ZW4yLWNvbXBhdCBtb2RlIGFuZCBhcmUgbm90IHJlcHJlc2VudGF0aXZlIG9mIGxpa2VseSByZWFsLXdvcmw9CmQKPiA+PiA+ID4+IGV4dGVuc2lvbnMuCj4gPj4gPiA+Cj4gPj4gPgo+ID4+ID4gTm90IHN1cmUgSSBhZ3JlZSB3aXRoIHRoaXMuIEkgdGhpbmsgdGhlcmUgYXJlIGphcnMgd29ydGggc2hhcmluZwo+ID4+IGFjcm9zcwo+ID4+ID4gbXVsdGlwbGUgcGx1Z2lucywgYnV0IHdoZXJlIG1ha2luZyB0aGUgcGx1Z2luIGFuIGV4dGVuc2lvbiBpcyBhIGJpdAo+ID4+ID4gd2VpcmQuCj4gPj4gPiBJJ20gdGhpbmtpbmcgb2Ygc2NtIGFuZCB3YWdvbiBpbiB0aGlzIGNhc2UuCj4gPj4gPgo+ID4+ID4gPgo+ID4+ID4gPiBUaGF0IHNvdW5kcyBsaWtlIHdlIG5lZWQgZG9jdW1lbnRhdGlvbiB1cGRhdGVkIHRoZW4uIE5vbmUgb2YgdGhhdCA9CmlzCj4gPj4gPiA+IG9idmlvdXMgdG8gbWUuCj4gPj4gPiA+Cj4gPj4gPiA+Cj4gPj4gPiA+Pgo+ID4+ID4gPj4gKiBJIHRoaW5rIHdlIHNob3VsZCBpbnRyb2R1Y2UgTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCB0byB0aGUKPiA+PiB0ZXN0Cj4gPj4gPiA+PiBleHRlbnNpb25zLiBUaGlzIG1ldGFkYXRhIHdoYXQgaW50cm9kdWNlZCB0byBjb25maWd1cmUgY2xhc3NwYXRoCj4gPj4gPiA+PiB2aXNpYmlsaXR5LCBzbyBsZXRzIHVzZSBpdC4KPiA+PiA+ID4KPiA+PiA+ID4KPiA+PiA+ID4gQWdhaW4sIG5vdCBvYnZpb3VzIHRvIG1lLCBpZiB0aGF0IGZpbGUgYWxsb3dzIGNvbnRyb2wgb2YgY2xhc3NwYXRoCj4gPj4gPiA+IHZpc2liaWxpdHkgdGhlbiBpdCBtYXkgYmUgdGhhdCB0aGUgb25seSBpc3N1ZSAqd2l0aCogMy41LjEgaXMgdGhlCj4gPj4gbGFjawo+ID4+IG9mCj4gPj4gPiA+IGRvY3VtZW50YXRpb24uLi4gbm93IHByZXZpb3VzIHZlcnNpb25zIHdvdWxkIGhhdmUgYmVlbiBhZGRpbmcKPiA+PiBicmVha2luZwo+ID4+ID4gPiBjaGFuZ2VzIGZyb20gbXkgUG9WIGJ1dCB0aGF0IGlzIHRoZSBwYXN0IGFuZCBzaG91bGQgbm90IGFmZmVjdCB0aGUKPiA+PiAzLjUuMQo+ID4+ID4gPiByZWxlYXNlLgo+ID4+ID4gPgo+ID4+ID4gPiBQUnMgZm9yIHRoZSBwcm9iZSBwcm9qZWN0IHdlbGNvbWUuIEkgYW0gaGFwcHkgdG8gdHJ5IGFuZCB3cml0ZSBkb2M9CnMKPiA+PiBvbmNlCj4gPj4gPiA+IEkKPiA+PiA+ID4gaGF2ZSBhbiB1bmRlcnN0YW5kaW5nIG9mIHdoYXQgdGhlIGV4cGVjdGVkIGJlaGF2aW91cnMgYXJlCj4gPj4gPiA+Cj4gPj4gPiA+Cj4gPj4gPiA+Pgo+ID4+ID4gPj4gLS0KPiA+PiA+ID4+IFJlZ2FyZHMsCj4gPj4gPiA+PiBJZ29yCj4gPj4gPiA+Pgo+ID4+ID4gPj4gT24gVHVlLCBTZXAgMTksIDIwMTcsIGF0IDA1OjEyIFBNLCBTdGVwaGVuIENvbm5vbGx5IHdyb3RlOgo+ID4+ID4gPj4gPiBZZXMsIHRoZSBleHBlY3RhdGlvbnMgYXJlIGtleS4gRGVwZW5kaW5nIG9uIHdoYXQgdGhleSBhcmUgd2UgbWE9CnkKPiA+PiA+ID4+IGVpdGhlcgo+ID4+ID4gPj4gPiBkcm9wIDMuNS4xIG9yIGdvIGFoZWFkIGFzIGl0IGRlcGVuZHMgb24gd2hldGhlciB0aGlzIGlzIG1vcmUKPiA+PiBjb3JyZWN0Cj4gPj4gPiA+PiB0aGFuCj4gPj4gPiA+PiA+IDMuNS4wIG9yIHN3YXBwaW5nIG9uZSBmaXggZm9yIGEgYnVnCj4gPj4gPiA+PiA+Cj4gPj4gPiA+PiA+IE9uIFR1ZSAxOSBTZXAgMjAxNyBhdCAyMTozOSwgSWdvciBGZWRvcmVua28gPGlnb3JAaWZlZG9yZW5rby5jbz0KbQo+ID4KPiA+PiA+ID4+IHdyb3RlOgo+ID4+ID4gPj4gPgo+ID4+ID4gPj4gPiA+IEp1c3QgdG8gY29uZmlybSBJIHVuZGVyc3RhbmQgd2hhdCB3ZSBhcmUgdHJ5aW5nIHRvIGVzdGFibGlzaAo+ID4+IGhlcmUuCj4gPj4gPiA+PiBXZQo+ID4+ID4gPj4gPiA+IHdhbnQgdG8gZGVjaWRlIHRoZSBleHBlY3RlZC9kZXNpcmVkIGNvbXBvbmVudCBpbmplY3Rpb24KPiA+PiBiZWhhdmlvdXIKPiA+PiA+ID4+IGFuZAo+ID4+ID4gPj4gPiA+IGNsYXNzcGF0aCB2aXNpYmlsaXR5IGluIHRoZSBhYnNlbmNlIG9mIHBhY2thZ2UgYW5kIGFydGlmYWN0Cj4gPj4gZXhwb3J0Cj4gPj4gPiA+PiA+ID4gY29uZmlndXJhdGlvbiAoaS5lLiBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sIGZpbGUpLiBEaWQgSQo+ID4+IGdldAo+ID4+ID4gPj4gdGhpcwo+ID4+ID4gPj4gPiA+IHJpZ2h0Pwo+ID4+ID4gPj4gPiA+Cj4gPj4gPiA+PiA+ID4gLS0KPiA+PiA+ID4+ID4gPiBSZWdhcmRzLAo+ID4+ID4gPj4gPiA+IElnb3IKPiA+PiA+ID4+ID4gPgo+ID4+ID4gPj4gPiA+IE9uIFR1ZSwgU2VwIDE5LCAyMDE3LCBhdCAwMzo1MiBQTSwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4gPj4gPiA+PiA+ID4gPiBMZXQncyBkbyBpdCBsaWtlIHRoaXM6Cj4gPj4gPiA+PiA+ID4gPgo+ID4+ID4gPj4gPiA+Cj4gPj4gPiA+PiBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kb3dubG9hZC9hdHRhY2htZW50cy8yMzI5ODQxLwo+ID4+IGNsYXNzcmVhbG1zLnBkZj9hcGk9M0R2Mgo+ID4+ID4gPj4gPiA+ID4KPiA+PiA+ID4+ID4gPiA+IFJvYmVydAo+ID4+ID4gPj4gPiA+ID4KPiA+PiA+ID4+ID4gPiA+IE9uIFR1ZSwgMTkgU2VwIDIwMTcgMjE6MDg6MzkgKzAyMDAsIFN0ZXBoZW4gQ29ubm9sbHkKPiA+PiA+ID4+ID4gPiA+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+PiA+ID4+ID4gPiA+Cj4gPj4gPiA+PiA+ID4gPiA+IEkgdGhpbmsgeW91IHdpbGwgbmVlZCBhIGxpbmsgdG8gdGhlIFBERiBhcyBhdHRhY2htZW50cyBhcj0KZQo+ID4+ID4gPj4gc3RyaXBwZWQKPiA+PiA+ID4+ID4gPiBmcm9tCj4gPj4gPiA+PiA+ID4gPiA+IHRoZSBNTAo+ID4+ID4gPj4gPiA+ID4gPgo+ID4+ID4gPj4gPiA+ID4gPiBPbiBUdWUgMTkgU2VwIDIwMTcgYXQgMTk6NTcsIFJvYmVydCBTY2hvbHRlCj4gPj4gPiA+PiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Cj4gPj4gPiA+PiA+ID4gd3JvdGU6Cj4gPj4gPiA+PiA+ID4gPiA+Cj4gPj4gPiA+PiA+ID4gPiA+PiBBdHRhY2hlZCBhIHNpbmdsZSBwYWdlIG92ZXJ2aWV3Lgo+ID4+ID4gPj4gPiA+ID4gPj4KPiA+PiA+ID4+ID4gPiA+ID4+IFBlciBibG9jayB5b3UnbGwgc2VlIGluIHRoZSB1cHBlciBsZWZ0IGNvcm5lciB0aGUgZXhlY3V0PQplZAo+ID4+ID4gPj4gcGx1Z2luCj4gPj4gPiA+PiA+ID4gPiA+PiBUaGUgbGVmdCBjb2x1bW4gY29udGFpbnMgdGhlIGV4dGVuc2lvbnMgYW5kIHBsdWdpbiBpbgo+ID4+IG9yZGVyYXMKPiA+PiA+ID4+ID4gPiBzcGVjaWZpZWQKPiA+PiA+ID4+ID4gPiA+ID4+IGluCj4gPj4gPiA+PiA+ID4gPiA+PiB0aGUgcG9tLnhtbAo+ID4+ID4gPj4gPiA+ID4gPj4gSW4gZXZlcnkgY2xhc3Nsb2FkZXJjb2x1bW4geW91J2xsIHNlZSBudW1iZXJzIHdoaWNoCj4gPj4gcmVwcmVzZW50Cj4gPj4gPiA+PiB0aGUKPiA+PiA+ID4+ID4gPiBvcmRlci4KPiA+PiA+ID4+ID4gPiA+ID4+Cj4gPj4gPiA+PiA+ID4gPiA+PiBJIGhvcGUgSSBkaWRuJ3QgbWFrZSBhbnkgbWlzdGFrZXMuCj4gPj4gPiA+PiA+ID4gPiA+PiBUb21vcnJvdyBJIGhhdmUgZW5vdWdoIHRpbWUgdG8gc2VlIGlmIEkgdW5kZXJzdGFuZCB3aGF0Jz0Kcwo+ID4+ID4gPj4gaGFwcGVuaW5nCj4gPj4gPiA+PiA+ID4gPiA+PiBoZXJlLgo+ID4+ID4gPj4gPiA+ID4gPj4KPiA+PiA+ID4+ID4gPiA+ID4+IEkgd2lsbCBjb21lIGJhY2sgd2l0aCBteSBjb25jbHVzaW9ucy4KPiA+PiA+ID4+ID4gPiA+ID4+Cj4gPj4gPiA+PiA+ID4gPiA+PiBSb2JlcnQKPiA+PiA+ID4+ID4gPiA+ID4+Cj4gPj4gPiA+PiA+ID4gPiA+PiBPbiBUdWUsIDE5IFNlcCAyMDE3IDA2OjU1OjA4ICswMjAwLCBJZ29yIEZlZG9yZW5rbyA8Cj4gPj4gPiA+PiA+ID4gaWdvckBpZmVkb3JlbmtvLmNvbT4KPiA+PiA+ID4+ID4gPiA+ID4+IHdyb3RlOgo+ID4+ID4gPj4gPiA+ID4gPj4KPiA+PiA+ID4+ID4gPiA+ID4+ID4gVEw7RFIgeW91ciB0ZXN0IHByb2plY3QgZXhwb3NlZCB0d28gZXhpc3RpbmcgYnVncywgb25lCj4gPj4gPiA+PiBjaGFuZ2UgaW4KPiA+PiA+ID4+ID4gPiA+ID4+ID4gYmVoYXZpb3VyIGFuZCBvbmUgcXVpcmsgSSBjYW4ndCBleHBsYWluCj4gPj4gPiA+PiA+ID4gPiA+PiA+Cj4gPj4gPiA+PiA+ID4gPiA+PiA+ICogQnVpbGQgYDxleHRlbnNpb25zPmAgYXJlIGxvYWRlZCBieSB0d28gY2xhc3Nsb2FkZXJzLAo+ID4+IHdoaWNoCj4gPj4gPiA+PiBpcwo+ID4+ID4gPj4gYQo+ID4+ID4gPj4gPiA+IGJ1Zwo+ID4+ID4gPj4gPiA+ID4gPj4gaW4KPiA+PiA+ID4+ID4gPiA+ID4+ID4gRGVmYXVsdFByb2plY3RCdWlsZGluZ0hlbHBlciNjcmVhdGVQcm9qZWN0UmVhbG0gYW5kCj4gPj4gZXhwbGFpbnMKPiA+PiA+ID4+IHdoeSB5b3UKPiA+PiA+ID4+ID4gPiA+ID4+IHNlZQo+ID4+ID4gPj4gPiA+ID4gPj4gPiBleHRqYXIxL2V4dGphcjIgaW4gdGhlIG91dHB1dAo+ID4+ID4gPj4gPiA+ID4gPj4gPiAqIENsYXNzUmVhbG0gZG9lcyBub3QgYWxsb3cgc2FtZSBmb3JlaWduLWltcG9ydCBmcm9tCj4gPj4gbXVsdGlwbGUKPiA+PiA+ID4+ID4gPiA+ID4+ID4gY2xhc3Nsb2FkZXJzLCB3aGljaCBpcyBhIGJ1ZyBhbmQgZXhwbGFpbnMgd2h5IGl0IGlzIG5vPQp0Cj4gPj4gPiA+PiBwb3NzaWJsZSB0bwo+ID4+ID4gPj4gPiA+ID4gPj4gbG9hZAo+ID4+ID4gPj4gPiA+ID4gPj4gPiBzYW1lIHJlc291cmNlIGZyb20gbXVsdGlwbGUgcGx1Z2lucy9leHRlbnNpb25zCj4gPj4gPiA+PiA+ID4gPiA+PiA+ICogVENDTCBkb2VzIG5vdCBoYXZlIGFjY2VzcyB0byBwcml2YXRlIChpLmUuIG5vdAo+ID4+IGV4cG9ydGVkKQo+ID4+ID4gPj4gcmVzb3VyY2VzCj4gPj4gPiA+PiA+ID4gPiA+PiBvZgo+ID4+ID4gPj4gPiA+ID4gPj4gPiB0aGlzIGV4dGVuc2lvbnMgcGx1Z2luLCB3aGljaCBpcyBhIGNoYW5nZSBvZiBiZWhhdmlvdXIKPiA+PiA+ID4+IGludHJvZHVjZWQgYnkKPiA+PiA+ID4+ID4gPiA+ID4+ID4gbW5nLTYyMDkgZml4Cj4gPj4gPiA+PiA+ID4gPiA+PiA+ICogQWxzbywgY29tcG9uZW50IGluamVjdGlvbiBvcmRlciBhcHBlYXJzIHRvIGJlCj4gPj4gYmFja3dhcmRzLAo+ID4+ID4gPj4gYnV0Cj4gPj4gPiA+PiBtYXliZQo+ID4+ID4gPj4gPiA+ID4gPj4gPiBTdHVhcnQgY2FuIGV4cGxhaW4gd2h5Lgo+ID4+ID4gPj4gPiA+ID4gPj4gPgo+ID4+ID4gPj4gPiA+ID4gPj4gPgo+ID4+ID4gPj4gPiA+ID4gPj4gPiBCZWxvdyBpcyBtb3JlIGRldGFpbGVkIGV4cGxhbmF0aW9uIG9mIGV4cGVjdGVkIGFuZAo+ID4+IG9ic2VydmVkCj4gPj4gPiA+PiA+ID4gYmVoYXZpb3VyCj4gPj4gPiA+PiA+ID4gPiA+PiA+Cj4gPj4gPiA+PiA+ID4gPiA+PiA+Cj4gPj4gPiA+PiA+ID4gPiA+PiA+ICMjIENvbXBvbmVudCBpbmplY3Rpb24gZGVwZW5kcyBvbiB0aGUgY3VycmVudGx5IHJ1bm5pbj0KZwo+ID4+ID4gPj4gcGx1Z2luCj4gPj4gPiA+PiBhbmQKPiA+PiA+ID4+ID4gPiB0aGUKPiA+PiA+ID4+ID4gPiA+ID4+ID4gaW5qZWN0aW9uIHNpdGUKPiA+PiA+ID4+ID4gPiA+ID4+ID4KPiA+PiA+ID4+ID4gPiA+ID4+ID4gQ3VycmVudGx5IHJ1bm5pbmcgcGx1Z2lucyBoYXZlIGFjY2VzcyB0byB0aGUgZm9sbG93aW5nCj4gPj4gPiA+PiBjb21wb25lbnQKPiA+PiA+ID4+ID4gPiA+ID4+ID4gaW1wbGVtZW50YXRpb25zOgo+ID4+ID4gPj4gPiA+ID4gPj4gPgo+ID4+ID4gPj4gPiA+ID4gPj4gPiAqIFJlZ3VsYXIgcGx1Z2luIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50cyBpbXBsZW1lbnRlZCA9CmJ5Cj4gPj4gdGhlCj4gPj4gPiA+PiBwbHVnaW4sCj4gPj4gPiA+PiA+ID4gPiA+PiA+IHByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucywgaWYgYW55ICh2aWEgcHJvamVjdCBjbGFzcwo+ID4+IHJlYWxtCj4gPj4gPiA+PiBmb3JlaWduCj4gPj4gPiA+PiA+ID4gPiA+PiA+IGltcG9ydCkgYW5kIE1hdmVuIENvcmUuCj4gPj4gPiA+PiA+ID4gPiA+PiA+ICogRXh0ZW5zaW9uIHBsdWdpbiBoYXMgYWNjZXNzIHRvIGNvbXBvbmVudHMgaW1wbGVtZW50ZT0KZAo+ID4+IGJ5Cj4gPj4gPiA+PiB0aGUKPiA+PiA+ID4+ID4gPiBwcm9qZWN0Cj4gPj4gPiA+PiA+ID4gPiA+PiA+IGJ1aWxkIGV4dGVuc2lvbnMgYW5kIE1hdmVuIENvcmUuCj4gPj4gPiA+PiA+ID4gPiA+PiA+ICogV2l0aG91dCBhIHJ1bm5pbmcgcGx1Z2luIChlLmcuLCBkdXJpbmcgcHJvamVjdAo+ID4+IGRlcGVuZGVuY3kKPiA+PiA+ID4+ID4gPiA+ID4+IHJlc29sdXRpb24pLAo+ID4+ID4gPj4gPiA+ID4gPj4gPiBjb21wb25lbnRzIGltcGxlbWVudGVkIGJ5IHRoZSBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMKPiA+PiBhbmQKPiA+PiA+ID4+IE1hdmVuCj4gPj4gPiA+PiA+ID4gQ29yZQo+ID4+ID4gPj4gPiA+ID4gPj4gPiBhcmUgYWNjZXNzaWJsZS4KPiA+PiA+ID4+ID4gPiA+ID4+ID4KPiA+PiA+ID4+ID4gPiA+ID4+ID4gRGlmZmVyZW50IGluamVjdGlvbiBzaXRlcyBoYXZlIGFjY2VzcyB0byB0aGUgZm9sbG93aW5nCj4gPj4gPiA+PiBjb21wb25lbnQKPiA+PiA+ID4+ID4gPiA+ID4+ID4gaW50ZXJmYWNlczoKPiA+PiA+ID4+ID4gPiA+ID4+ID4KPiA+PiA+ID4+ID4gPiA+ID4+ID4gKiBNYXZlbiBDb3JlIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50IGludGVyZmFjZXMgZGVmaW5lPQpkCj4gPj4gYnkKPiA+PiA+ID4+IHRoZQo+ID4+ID4gPj4gY29yZQo+ID4+ID4gPj4gPiA+ID4gPj4gPiBpdHNlbGYgKG9idmlvdXNseSkKPiA+PiA+ID4+ID4gPiA+ID4+ID4gKiBQcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMgaGF2ZSBhY2Nlc3MgdG8gKipwdWJsaWMqKgo+ID4+ID4gPj4gY29tcG9uZW50Cj4gPj4gPiA+PiA+ID4gPiA+PiA+IGludGVyZmFjZXMgZGVmaW5lZCBieSBNYXZlbiBDb3JlIGFuZCBjb21wb25lbnQKPiA+PiBpbnRlcmZhY2VzCj4gPj4gPiA+PiBkZWZpbmVkIGJ5Cj4gPj4gPiA+PiA+ID4gPiA+PiB0aGUKPiA+PiA+ID4+ID4gPiA+ID4+ID4gYnVpbGQgZXh0ZW5zaW9uIGl0c2VsZiAodGhlcmUgaXMgbm8gd2F5IHRvIGFjY2Vzcwo+ID4+IGNvbXBvbmVudAo+ID4+ID4gPj4gPiA+IGludGVyZmFjZXMKPiA+PiA+ID4+ID4gPiA+ID4+ID4gZGVmaW5lZCBpbiBvdGhlciBleHRlbnNpb25zKQo+ID4+ID4gPj4gPiA+ID4gPj4gPiAqIFJlZ3VsYXIgcGx1Z2lucyBoYXZlIGFjY2VzcyB0byAqKnB1YmxpYyoqIGNvbXBvbmVudAo+ID4+ID4gPj4gaW50ZXJmYWNlcwo+ID4+ID4gPj4gPiA+ID4gPj4gZGVmaW5lZAo+ID4+ID4gPj4gPiA+ID4gPj4gPiBieSBNYXZlbiBDb3JlLCBjb21wb25lbnQgaW50ZXJmYWNlcyAqKmV4cG9ydGVkKiogYnkKPiA+PiBidWlsZAo+ID4+ID4gPj4gZXh0ZW5zaW9ucwo+ID4+ID4gPj4gPiA+ID4gPj4gYW5kCj4gPj4gPiA+PiA+ID4gPiA+PiA+IGNvbXBvbmVudCBpbnRlcmZhY2VzIGRlZmluZWQgaW4gdGhlIHBsdWdpbiBpdHNlbGYKPiA+PiA+ID4+ID4gPiA+ID4+ID4KPiA+PiA+ID4+ID4gPiA+ID4+ID4gRm9yIGluamVjdGlvbiB0byB3b3JrLCBpbmplY3Rpb24gc2l0ZSBoYXMgdG8gaGF2ZQo+ID4+IGFjY2VzcyB0bwo+ID4+ID4gPj4gdGhlCj4gPj4gPiA+PiA+ID4gPiA+PiA+IGNvbXBvbmVudCBpbnRlcmZhY2UgYW5kIHRoZSBjb21wb25lbnQgaW1wbGVtZW50YXRpb24KPiA+PiBtdXN0Cj4gPj4gYmUKPiA+PiA+ID4+ID4gPiA+ID4+IGFjY2Vzc2libGUKPiA+PiA+ID4+ID4gPiA+ID4+ID4gdGhyb3VnaCB0aGUgY3VycmVudCBjb250ZXh0Lgo+ID4+ID4gPj4gPiA+ID4gPj4gPgo+ID4+ID4gPj4gPiA+ID4gPj4gPiBGcm9tIHdoYXQgSSBjYW4gdGVsbCwgaW4geW91ciBleGFtcGxlIGFsbCBwbHVnaW5zIGhhdmUKPiA+PiBhY2Nlc3MKPiA+PiA+ID4+IHRvIHRoZQo+ID4+ID4gPj4gPiA+ID4gPj4gPiByaWdodCBjb21wb25lbnRzIHdoZW4gdXNpbmcgY3VycmVudCAzLjUuMi1TTkFQU0hPVC4gVGg9CmUKPiA+PiA+ID4+IGluamVjdGlvbgo+ID4+ID4gPj4gPiA+ID4gPj4gb3JkZXIKPiA+PiA+ID4+ID4gPiA+ID4+ID4gZG9lcyBhcHBlYXIgdG8gYmUgYmFja3dhcmRzIGZyb20gd2hhdCBJIGV4cGVjdGVkLAo+ID4+IGhvd2V2ZXIuCj4gPj4gPiA+PiA+ID4gPiA+PiA+Cj4gPj4gPiA+PiA+ID4gPiA+PiA+Cj4gPj4gPiA+PiA+ID4gPiA+PiA+ICMjIFJlc291cmNlcyBsb29rdXAgZnVsbHkgZGVwZW5kcyBvbiBjbGFzc3BhdGgKPiA+PiB2aXNpYmlsaXR5LAo+ID4+ID4gPj4gPiA+ID4gPj4gc3BlY2lmaWNhbGx5Cj4gPj4gPiA+PiA+ID4gPiA+PiA+Cj4gPj4gPiA+PiA+ID4gPiA+PiA+ICogUmVndWxhciBwbHVnaW4gY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byByZXNvdXJjZXMKPiA+PiBmcm9tCj4gPj4gdGhlCj4gPj4gPiA+PiBwbHVnaW4KPiA+PiA+ID4+ID4gPiA+ID4+ID4gaXRzZWxmLCBmcm9tICoqZXhwb3J0ZWQqKiBwYWNrYWdlcyBvZiB0aGUgcHJvamVjdCBidWlsPQpkCj4gPj4gPiA+PiBleHRlbnNpb25zCj4gPj4gPiA+PiA+ID4gYW5kCj4gPj4gPiA+PiA+ID4gPiA+PiA+ICoqcHVibGljKiogTWF2ZW4gQ29yZSBwYWNrYWdlcwo+ID4+ID4gPj4gPiA+ID4gPj4gPiAqIEV4dGVuc2lvbnMgcGx1Z2luIGNsYXNzIHJlYWxtIGhhcyBhY2Nlc3MgdG8gdGhlCj4gPj4gcmVzb3VyY2VzCj4gPj4gPiA+PiBmcm9tIHRoZQo+ID4+ID4gPj4gPiA+ID4gPj4gPiBleHRlbnNpb25zIHBsdWdpbiBpdHNlbGYgYW5kIGZyb20gKipwdWJsaWMqKiBNYXZlbiBDb3I9CmUKPiA+PiA+ID4+IHBhY2thZ2VzCj4gPj4gPiA+PiA+ID4gPiA+PiA+ICogUHJvamVjdCBjbGFzcyByZWFsbSBoYXMgYWNjZXNzIHRvIGNsYXNzZXMgYW5kCj4gPj4gcmVzb3VyY2VzCj4gPj4gPiA+PiA+ID4gKipleHBvcnRlZCoqCj4gPj4gPiA+PiA+ID4gPiA+PiA+IGJ5IHByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucyBhbmQgKipwdWJsaWMqKiBNYXZlbiBDb3JlCj4gPj4gPiA+PiBwYWNrYWdlcwo+ID4+ID4gPj4gPiA+ID4gPj4gPgo+ID4+ID4gPj4gPiA+ID4gPj4gPiBJIHNlZSB0aHJlZSBwcm9ibGVtcyBoZXJlCj4gPj4gPiA+PiA+ID4gPiA+PiA+Cj4gPj4gPiA+PiA+ID4gPiA+PiA+ICogTWF2ZW4gYWRkcyBidWlsZCBzaW5nbGUtamFyIGA8ZXh0ZW5zaW9ucz5gIGVsZW1lbnRzCj4gPj4gPiA+PiBkaXJlY3RseQo+ID4+ID4gPj4gdG8KPiA+PiA+ID4+ID4gPiA+ID4+ID4gcHJvamVjdCBjbGFzcyByZWFsbSAqKmFuZCoqIGNyZWF0ZXMgc2VwYXJhdGUgZXh0ZW5zaW9uPQpzCj4gPj4gY2xhc3MKPiA+PiA+ID4+IHJlYWxtcwo+ID4+ID4gPj4gPiA+ID4gPj4gZm9yCj4gPj4gPiA+PiA+ID4gPiA+PiA+IHRoZW0uIFdoaWNoIHJlc3VsdHMgaW4gZHVwbGljYXRlIGNsYXNzZXMvcmVzb3VyY2VzCj4gPj4gbG9hZGVkCj4gPj4gYnkKPiA+PiA+ID4+IHR3bwo+ID4+ID4gPj4gPiA+ID4gPj4gPiBjbGFzc2xvYWRlcnMgYW5kIGV4cGxhaW5zIHdoeSB5b3Ugc2VlIGV4dGphcjEvZXh0amFyMgo+ID4+IG91dHB1dAo+ID4+ID4gPj4gKHdoaWNoCj4gPj4gPiA+PiA+ID4gPiA+PiB5b3UKPiA+PiA+ID4+ID4gPiA+ID4+ID4gc2hvdWxkbid0IGFjY29yZGluZyB0byB0aGUgZXhwbGFuYXRpb24gYWJvdmUpCj4gPj4gPiA+PiA+ID4gPiA+PiA+ICogQ2xhc3NSZWFsbSBkb2VzIG5vdCBhbGxvdyBmb3JlaWduLWltcG9ydCBvZiB0aGUgc2FtZQo+ID4+ID4gPj4gcGFja2FnZQo+ID4+ID4gPj4gZnJvbQo+ID4+ID4gPj4gPiA+ID4gPj4gPiBtdWx0aXBsZSBjbGFzc2xvYWRlcnMuIFRoaXMgbWFrZXMgaXQgaW1wb3NzaWJsZSB0byBsb2E9CmQKPiA+PiB0aGUKPiA+PiA+ID4+IHNhbWUKPiA+PiA+ID4+ID4gPiA+ID4+ID4gcmVzb3VyY2UgZnJvbSBtdWx0aXBsZSBwbHVnaW5zL2V4dGVuc2lvbnMuCj4gPj4gPiA+PiA+ID4gPiA+PiA+ICogRXh0ZW5zaW9ucyBwbHVnaW5zIGNhbm5vdCBhY2Nlc3MgdGhlaXIgb3duIHByaXZhdGUKPiA+PiAoaS5lLgo+ID4+ID4gPj4gbm90Cj4gPj4gPiA+PiA+ID4gPiA+PiBleHBvcnRlZCkKPiA+PiA+ID4+ID4gPiA+ID4+ID4gcmVzb3VyY2VzIHZpYSBUQ0NMLCB0aGlzIGlzIGNoYW5nZSBpbiBiZWhhdmlvdXIKPiA+PiBpbnRyb2R1Y2VkCj4gPj4gYnkKPiA+PiA+ID4+ID4gPiBtbmctNjIwOQo+ID4+ID4gPj4gPiA+ID4gPj4gPiBmaXgKPiA+PiA+ID4+ID4gPiA+ID4+ID4KPiA+PiA+ID4+ID4gPiA+ID4+ID4gSG9wZSB0aGlzIGhlbHBzCj4gPj4gPiA+PiA+ID4gPiA+Pgo+ID4+ID4gPj4gPiA+ID4gPj4KPiA+PiA+ID4+Cj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gPiA+PiA+ID4gPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4gPj4gPiA+ID4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDoKPiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPiA+PiA+ID4gPgo+ID4+ID4gPj4gPiA+ID4KPiA+PiA+ID4+Cj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gPiA+PiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4gPj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4gPj4gPiA+ID4KPiA+PiA+ID4+ID4gPgo+ID4+ID4gPj4gPiA+Cj4gPj4gPiA+Pgo+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+ID4gPj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPiA+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4gPj4gPiA+Cj4gPj4gPiA+PiA+ID4gLS0KPiA+PiA+ID4+ID4gU2VudCBmcm9tIG15IHBob25lCj4gPj4gPiA+Pgo+ID4+ID4gPj4KPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiA+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPiA+Pgo+ID4+ID4gPj4gLS0KPiA+PiA+ID4gU2VudCBmcm9tIG15IHBob25lCj4gPj4gPgo+ID4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0KPiA+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPgo+ID4+Cj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4gLS0KU2VudCBmcm9tIG15IHBob25lCgotLWY0MDMwNDM4OGU2OGEzYWQ3ODA1NTlmMmUxODYtLQoKCkZyb20gZGV2LXJldHVybi0xMjM4ODQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IFNlcCAgNyAwODoyNToyMiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM4ODQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQThENTcxQTMyQgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsICA3IFNlcCAyMDE3IDA4OjI1OjIyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzM2MTQgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBTZXAgMjAxNyAwODoyNToyMiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzM1MjMgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBTZXAgMjAxNyAwODoyNToyMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDczNTExIGludm9rZWQgYnkgdWlkIDk5KTsgNyBTZXAgMjAxNyAwODoyNToyMSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMDcgU2VwIDIwMTcgMDg6MjU6MjEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAzRjk2NTFBNkU1RAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgIDcgU2VwIDIwMTcgMDg6MjU6MjEgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAzLjM4ClgtU3BhbS1MZXZlbDogKioqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0zLjM4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJRlJFRU1BSUxfUkVQTFk9MSwgSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxLCBVUklCTF9CTE9DS0VEPTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEpZYmlMNk9wMjUyRyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVRodSwgIDcgU2VwIDIwMTcgMDg6MjU6MTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC11YTAtZjE3My5nb29nbGUuY29tIChtYWlsLXVhMC1mMTczLmdvb2dsZS5jb20gWzIwOS44NS4yMTcuMTczXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEMxRkU1NUZDOEEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsICA3IFNlcCAyMDE3IDA4OjI1OjE4ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXVhMC1mMTczLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGsyM3NvMTc4NDU3NjN1YWYuNAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDA3IFNlcCAyMDE3IDAxOjI1OjE4IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUxKRVhRVnQ3UytPNkJyZTVUdmlraUFXc2h4c3NRTXdxemM0RjBjRFFjY2c9OwogICAgICAgIGI9T0pwaW9lWWJLSFJqVE9HYnlUSThUVkhWc09yOENMWkpJeS82MmtBeEUzbmgxa3VtaW9KMlpVT1RjcU53TVdQS3gwCiAgICAgICAgIDVYUWprempKZDRkaWpvQzZFY2R3VDUwVktucDV2MUE1WkN2ajBJRmZHdm1TRk5OUTFqQlg3cnA3Rld3YzMxRzBlUFdqCiAgICAgICAgIFRHWWIzQVlsWG1RaGVON0hPbmpFZlNVa2FaOG04Zmp1NWpKUThLSlQ2R2hQc3hCb0hBVnF3S3c2Kzd3c01DVXl5L1kwCiAgICAgICAgIHJEWjBiUUpEMjQ5dTJwcnM3N0ZKRzdQM2JtQXg4Qkc4cFRtN3RjMUdYcWt4ZzdlWWxpMitPK3NvRVdkVklzY0FJWUpFCiAgICAgICAgIDNsMFVobm81bVNBOTQxNURldllJU2ROcERlNmdHdEhmclJLTWF3TlhYaERZaHM3bnJOWjRzaUlBZUdHOUdTQitNL1VJCiAgICAgICAgIEJjUUE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUxKRVhRVnQ3UytPNkJyZTVUdmlraUFXc2h4c3NRTXdxemM0RjBjRFFjY2c9OwogICAgICAgIGI9RC94SXVZRVlTUVRKSmhLdkpTMmludDd5VGp6TloxRGxJaWhEYXVJcTkrTGNJdHB1N0d3ZldITkFDOHBneSt4R3k0CiAgICAgICAgIEdVRkNaRnBKbUZFOXhoMklURGlYRm9BVFRLTkZ1cGdud3VlbmdRb0NYUDRyQ2UrMUVjUzcra2ZMaDY2NFdDVkE3VFo1CiAgICAgICAgICtGbi9FSG5QTkFnNU50aXFDSDZiLzRPRkp5RHkrUlIvSFdtdmxYeFRFNm4wMG44Y2c0cGJXL2xWMXVsRi95UG9KWFBoCiAgICAgICAgIEJ1MUJBRVhMcmhFS0drNnJFcUpZZEd4aVNnMDhJc0dsS1E5c2Z6MDl3ZkthNzlKYTU0aHdMRXY5L0ZVeGpRTTFTQ0U4CiAgICAgICAgIEhmYm9peHc5d1lTdGVTR3Y2KzNtZDhNTDdRQmFKcmlDTlJBK1JOMlZVRCt6b1pMWjc0U0N2dU1jK3ZDVzVFM1lnOHVHCiAgICAgICAgIHRiS2c9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWl0TmlpU1UyQktXYU4wR0VZZTVoM05Ca1NDRTY4ODdHMElJRm9zbU5zaXF4ZEtEenpoCglWMUJTL2diMEo4czJ2cy93a3FNQXVJeHZaNHhMdnNZcQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQURLQ05iN1U4cGlmZGlWeXZpcEZ5b3RHYjdsVmF6eEQrL05DWlRkYmwrdVQxWU15eHRiVjhxY2tYdW1jRjQxWjFDdUpDZFpnaHBOTXB0aWxTV0ZqRFRWMmY4Zz0KWC1SZWNlaXZlZDogYnkgMTAuMTc2LjE5LjE2MyB3aXRoIFNNVFAgaWQgbTMybXIxMzA1MTIxdWFlLjExNC4xNTA0NzcyNzE3NTI3OwogVGh1LCAwNyBTZXAgMjAxNyAwMToyNToxNyAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8NTY4MTdCOTEuMTAyMDEwOEBnbXguZGU+IDxDQUt1VnpCUzI3NFRwT0pwRm1Nb0NNd0FZb0FDWUhmZ0QrY08zZ0w1bmk1ZUsrUk1UY2dAbWFpbC5nbWFpbC5jb20+CiA8NTY4MTgwNjguNzAxMDEwOUBnbXguZGU+IDwyRjA1RjUxRC0wQTMwLTQ1QzctODJDQS05RkVEOTA1NTEwNTVAZ21haWwuY29tPgpJbi1SZXBseS1UbzogPDJGMDVGNTFELTBBMzAtNDVDNy04MkNBLTlGRUQ5MDU1MTA1NUBnbWFpbC5jb20+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFRodSwgMDcgU2VwIDIwMTcgMDg6MjU6MDYgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk14dUJWTVRSajE5TF9zYlQrcDNLQ1JkSG14bVJNTVNmOEhLYXV0Vz1vZ1dwZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFF1ZXN0aW9uLi4uY29uY2VybmluZyBjbGFzc2lmaWVyClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQ1NjJkODRiY2NhZTA1NTg5NTMzM2QiCgotLTAwMWExMTQ1NjJkODRiY2NhZTA1NTg5NTMzM2QKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCkNsYXNzaWZpZWRzIGFyZSBsaW1pdGVkIHRvIHRoZSBzYW1lIGNoYXJhY3RlciBzZXQgYXMgPGFydGlmYWN0SWQ+cyBhbmQKPHR5cGU+cyBmb3IgdGhlIHNhbWUgcmVhc29uIHRoYXQgdGhleSB3aWxsIGZvcm0gcGFydCBvZiB0aGUgZmlsZW5hbWUuCgpPbiBUaHUgNyBTZXAgMjAxNyBhdCAwODoyNiwgQ2hyaXMgR3JhaGFtIDxjaHJpc2d3YXJwQGdtYWlsLmNvbT4gd3JvdGU6Cgo+IEhpIEthcmwsCj4KPiBEaWQgeW91IGV2ZXIgZmluZCB3aGF0IHlvdSB3ZXJlIGxvb2tpbmcgZm9yPwo+Cj4gSSBjYW1lIGFjcm9zcyB0aGlzIGluIGEgc2VhcmNoIG9uIGNsYXNzaWZpZXJzIGFzIEkgd2FudCB0byBiZSBhYmxlIHRvCj4gYWNjZXNzIHRoZW0gYXMgYSBwYXJ0IG9mIGEgZmlsdGVyL3RyYW5zZm9ybWF0aW9uIHdoZW4gdGhlIGFzc2VtYmxlIHBsdWdpbgo+IGRvZXMgaXQncyBqb2IuCj4KPiBJIGFtIGZpbmRpbmcgdGhhdCBjbGFzc2lmaWVycyBhcmUgbm90IHdlbGwgZG9jdW1lbnRlZCB0aGVpciB1c2FnZSBhdCBhbGwhCj4gOi0oCj4KPiBTZW50IGZyb20gbXkgaVBob25lCj4KPiA+IE9uIDI5IERlYyAyMDE1LCBhdCA1OjMzIGFtLCBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4KPiB3cm90ZToKPiA+Cj4gPiBIaSBUaWJvciwKPiA+Cj4gPj4gT24gMTIvMjgvMTUgNzoyMiBQTSwgVGlib3IgRGlnYW5hIHdyb3RlOgo+ID4+IEhtLCBjbGFzc2lmaWVycyBpbiBwbHVnaW5zLCBub3QgcmVhbGx5IHVzZWQgYXQgYWxsLiBEZXBlbmRlbmNpZXMgeWVzLiBJCj4gPj4gZ3Vlc3MgY2xhc3NpZmllciBpcyBtb3JlIG92ZXJoZWFkIGFuZCBldmlsIHRoYW4gYmVuZWZpdC4KPiA+Cj4gPiBJZiB5b3UgYnVpbGQgZm9yIHNldmVyYWwgZW52aXJvbm1lbnRzIHRoYW4geW91IG5lZWQgY2xhc3NpZmllcnMgKGUuZy4KPiB3aXRoIG1hdmVuLWFzc2VtYmx5LXBsdWdpbiksIG1hdmVuLWphci1wbHVnaW4gKHRlc3QtamFyLCBqYXIpLAo+IG1hdmVuLWRlcGxveS1wbHVnaW4sIG1hdmVuLXNvdXJjZS1wbHVnaW4sIG1hdmVuLWphdmFkb2MtcGx1Z2luLi5qdXN0Cj4gbWVudGlvbiBzb21lIGV4YW1wbGVzLi4gZXRjLi4uaSB3b3VsZG4ndCBjYWxsIGl0IGV2aWwuLi4KPiA+Cj4gPj4gSSByZW1lbWJlciBNYXZlbiBkb2N1IHRhbGtlZCBhYm91dCBjbGFzc2lmaWVyIGpkazEuNSBhcyBhbiBleGFtcGxlIGFuZAo+ID4+IG1heWJlIGVudmlyb25tZW50IHNwZWNpZmljcywgYnV0IEkgZ3Vlc3MgaXQgd2FzIHRoZSBvbmx5IGV4YW1wbGVzIGluIHRoZQo+ID4+IHR1dG9yaWFsLgo+ID4KPiA+IFllcyB0aGF0J3Mgd2hhdCBpIGtub3cgb2YgYXMgd2VsbC4uLgo+ID4KPiA+PiBSZWdhcmRpbmcgdmFsaWQgY2hhcmFjdGVycyBpbiBjbGFzc2lmaWVyIC0gbm8gaWRlYSBpZiBhbnkgZXhpc3RzLgo+ID4KPiA+IEV4YWN0bHkgdGhhdCdzIHdoYXQgaSdtIHNlYXJjaGluZyBmb3IuLi4KPiA+Cj4gPgo+ID4+Cj4gPj4gT24gTW9uLCBEZWMgMjgsIDIwMTUgYXQgNzoxMiBQTSwgS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGUKPiA+PiA8bWFpbHRvOmtobWFyYmFpc2VAZ214LmRlPj4gd3JvdGU6Cj4gPj4KPiA+PiAgICBIaSwKPiA+Pgo+ID4+ICAgIGR1cmluZyBteSBpbXBsZW1lbnRhdGlvbnMgaSBoYXZlIGNvbWUgdG8gdGhlIGNvbmNsdXNpb24gaWYgc29tZW9uZQo+ID4+ICAgIHNldHMgYSBjbGFzc2lmaWVyIGZvciB0aGUgZXhlY3V0aW9uIG9mIGEgcGx1Z2luLi4uaXQgd291bGQgYmUgdXNlZnVsCj4gPj4gICAgdG8gY2hlY2sgdGhlIHZhbGlkaXR5IG9mIHRoZSBjbGFzc2lmaWVyLi4uCj4gPj4KPiA+PiAgICBCYXNlZCBvbiB0aGF0IGkgc3RhcnRlZCB0byBzZWFyY2ggYnV0IHVuZm9ydHVuYXRlbHkgaSBkaWRuJ3QgZm91bmQgYQo+ID4+ICAgIGRlZmluaXRpb24gZXRjLiBkb2N1bWVudGF0aW9uIGhvdyBhIHZhbGlkIGNsYXNzaWZpZXIgbG9va3MgbGlrZSBvcgo+ID4+ICAgIHRoZSBpbnZlcnNlIHdoYXQgaXQgZG9lcyBub3QgYWxsb3dlZCB0byBiZS4uCj4gPj4KPiA+PiAgICBTbyBkb2VzIHNvbWVvbmUga25vdyBvZiBhbnkga2luZCBvZiBkZWZpbml0aW9uIGhvdyBhIHZhbGlkCj4gPj4gICAgY2xhc3NpZmllciBsb29rcyBsaWtlPyBTb21lIGtpbmQgb2YgcmVmZXJlbmNlID8KPiA+Pgo+ID4+ICAgIEtpbmQgcmVnYXJkcwo+ID4+ICAgIEthcmwgSGVpbnogTWFyYmFpc2UKPiA+Cj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPiAtLQpTZW50IGZyb20gbXkgcGhvbmUKCi0tMDAxYTExNDU2MmQ4NGJjY2FlMDU1ODk1MzMzZC0tCgpGcm9tIGRldi1yZXR1cm4tMTIzOTE5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBTZXAgMTAgMTU6Mzk6MjMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTE5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEQ4QzkyMUFBRjIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAxNTozOToyMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDMyNjc2IGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIFNlcCAyMDE3IDE1OjM5OjIzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMjYwMiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBTZXAgMjAxNyAxNTozOToyMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMyNTg2IGludm9rZWQgYnkgdWlkIDk5KTsgMTAgU2VwIDIwMTcgMTU6Mzk6MjIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDEwIFNlcCAyMDE3IDE1OjM5OjIyICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNjkzODMxODFCM0EKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDE1OjM5OjIyICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMy4xMjkKWC1TcGFtLUxldmVsOiAqKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTMuMTI5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9MT1RTT0ZIQVNIPTAuMjUsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEpGWmVTODlQeE1qYyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgMTAgU2VwIDIwMTcgMTU6Mzk6MjEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC11YTAtZjE3Ny5nb29nbGUuY29tIChtYWlsLXVhMC1mMTc3Lmdvb2dsZS5jb20gWzIwOS44NS4yMTcuMTc3XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDZBRDk5NUY2QzgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDE1OjM5OjIwICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXVhMC1mMTc3Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHMxNXNvODg1NzcwNXVhZy4xCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMDg6Mzk6MjAgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWpmUWtTR2NFR29WYzJ5MzJudmpnRzNFMlNYQlVMN1NNSnZGeDQ5YVhoVms9OwogICAgICAgIGI9R0dMdHNqNXZhRk5CakZ6U0p4U0VHOXR2UVU5eXF5Zk53aXl6OTZ5aitucHBXQS83MjV6UHQ4ZnZlazRHWFlSb0E5CiAgICAgICAgIDlGNk8zWmY5YVVQditPRE0rZmFTR1Fhdng4S01kU3d2UWd3bFpEZ1JZZklYU2JoNHJBR01UNHgyZThHeTNKNWE0Ykd1CiAgICAgICAgIExvNnFhc2JEYWtiNUZMcUtBUlJKMk9aMDVJM1VmN0x6cTIwTWRpZVdyc0NGcjNReUQvYmwybHVpenhwNGlNb3Q2LzdFCiAgICAgICAgIDFRajFoZmR3by9HY2FQc29FQ28xUnZYNDY0aGM4eEpMRlJLdTd0elhzbTlKUSthKzZGellxMzl1eHV4UUdVWDBmelY3CiAgICAgICAgIEpwb1JnSHhleElLeVA4cVlzekJ3VG53T0dTSVBKZDA5SWhpelZNSitSWTYwcWtOaXRrWHlvM3NycUo5ODNkaDdmYzlvCiAgICAgICAgIDJUbVE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWpmUWtTR2NFR29WYzJ5MzJudmpnRzNFMlNYQlVMN1NNSnZGeDQ5YVhoVms9OwogICAgICAgIGI9Q25HRDlNNmJJKytSbXJtMVRtbVQva1h3ZVdldGFNZzBpZFZta0g3WVZJWUpMdEQyYkJFL1RFeklCcHhDRTR6UFJUCiAgICAgICAgIGE4Q1c5UE53WllKZjliYWZ6YWk1ZDZBaWQ2Ky91TWxmOFNXRTVyTjJVY1VSQzJOaDFOc3VwSDFZZWVrdXNzdU5OSWR2CiAgICAgICAgIEdTWk1YQ2RaZ3J4Y3ZRMEs0STRkNXBNSUJRNmpVaGNBdEszbFpEUm9nTFZJZ2lMaE5FUFNha05rQjdSTlhQVVowV3AxCiAgICAgICAgIGdMamtEcVkrRzQrY3FCTlgyaWVaemVVeW9sWEZWcE1mdFpGZEE1aWcyQ2YrOGY4MU5pRjloTVlOeGhUQ3V5L0o0alFCCiAgICAgICAgIC9LcVk0dEpkR3BId1EyeTFEaGRzMHlMU1BadDBjNVJyMy8wS0xkMXFHRmdGTWpKV092T1I4NW1jQ3Fydk4ybHBEMXZBCiAgICAgICAgIDFLWWc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWhJU01oUkgrY25nOFFoRjJPS0lKRDdwM01OSlBXU1hhZ3hIemdjUEtVRGhtWnkvb1NDCgluV0drOWsxd0s0RlUrc05MalBNSVhjQnllOFNpZXdxZ3hlQT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UURWMk9wVWh5M2xTYXB2eWhzUytpajJoaXJWS28vTVh1Vm44NzZITTBEdE1yTEpqWmJoK1V3ejFQLzcvWHFialptbWpNUEU5eEZUcHZNTmNMa3habHc9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjE3Ni45NS42OSB3aXRoIFNNVFAgaWQgejVtcjcwNTM5MzN1YWguMTAwLjE1MDUwNTc5NTMwNDI7CiBTdW4sIDEwIFNlcCAyMDE3IDA4OjM5OjEzIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzYuODkuNiB3aXRoIEhUVFA7IFN1biwgMTAgU2VwIDIwMTcgMDg6Mzk6MTIgLTA3MDAgKFBEVCkKRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAxMCBTZXAgMjAxNyAxNjozOToxMiArMDEwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iZjQwMzA0NWZkZmE0YTg1NjUxMDU1OGQ3OWMyMyIKCi0tZjQwMzA0NWZkZmE0YTg1NjUxMDU1OGQ3OWMyMwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKSGksCgpXZSBzb2x2ZWQgMjUgaXNzdWVzOgpodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/dmVyc2lvbj0xMjMzODk2NCZzdHlsZU5hbWU9VGV4dCZwcm9qZWN0SWQ9MTIzMTY5MjIKClRoZXJlIGFyZSAzNTAgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPXByb2plY3QlMjAlM0QlMjBNTkclMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJTIwQlklMjBkdWUlMjBBU0MlMkMlMjBwcmlvcml0eSUyMERFU0MlMkMlMjBjcmVhdGVkJTIwQVNDCgpTdGFnaW5nIHJlcG86Cmh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjQvCgpUaGUgZGlzdHJpYnV0YWJsZSBiaW5hcmllcyBhbmQgc291cmNlcyBjYW4gYmUgZm91bmQgaGVyZToKaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS8KClNwZWNpZmljYWxseSB0aGUgemlwLCB0YXJiYWxsIGFuZCBzb3VyY2UgYXJjaGl2ZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cmh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLWJpbi56aXAKaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtYmluLnRhci5negpodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwCmh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy50YXIuZ3oKClNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgphcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5neiBzaGExOiA5ZWI4MjFmMTUzYzc2NjcxOTRhYTExY2NkMDk5YjdiZDIwNTk1NjBkCmFwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwOiBzaGExOiAxMjFkNTRiMDQ1MzgwYThhNDg5NWViMTM3OTcwYWI2OWU2OThlYjBlCgpHaXQgdGFnOgpodHRwczovL2dpdC13aXAtdXMuYXBhY2hlLm9yZy9yZXBvcy9hc2Y/cD1tYXZlbi5naXQ7YT1jb21taXQ7aD0wOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzCgpTdGFnaW5nIHNpdGU6Cmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9jb21wb25lbnRzL3JlZi8zLUxBVEVTVC8KClZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCgpbIF0gKzEKWyBdICswClsgXSAtMQoKVGhhbmtzLAoKU3RlcGhlbi4KCi0tZjQwMzA0NWZkZmE0YTg1NjUxMDU1OGQ3OWMyMy0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MTk0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBPY3QgIDggMTY6MjE6MjcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTk0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDA1OENBMTA5MjgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAgOCBPY3QgMjAxNyAxNjoyMToyNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDM4OTg4IGludm9rZWQgYnkgdWlkIDUwMCk7IDggT2N0IDIwMTcgMTY6MjE6MjYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM4OTE3IGludm9rZWQgYnkgdWlkIDUwMCk7IDggT2N0IDIwMTcgMTY6MjE6MjYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzODkwNSBpbnZva2VkIGJ5IHVpZCA5OSk7IDggT2N0IDIwMTcgMTY6MjE6MjYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDA4IE9jdCAyMDE3IDE2OjIxOjI2ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgODQwNzcxQTQ1ODgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sICA4IE9jdCAyMDE3IDE2OjIxOjI1ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi44NzkKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi44NzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEJuc1RoaUVqSGlGMiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgIDggT2N0IDIwMTcgMTY6MjE6MjIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13bTAtZjQ5Lmdvb2dsZS5jb20gKG1haWwtd20wLWY0OS5nb29nbGUuY29tIFs3NC4xMjUuODIuNDldKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMzJBNTA1RjVGRAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgIDggT2N0IDIwMTcgMTY6MjE6MjIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd20wLWY0OS5nb29nbGUuY29tIHdpdGggU01UUCBpZCBmNHNvMTc3NTM3ODd3bWUuMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDA4IE9jdCAyMDE3IDA5OjIxOjIyIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWxIRE5tRllybVFaSVpJcjVMM0ZldEE0WkVjTFBETjByOFdyYUFWYjd2b1k9OwogICAgICAgIGI9VzUzR1ZaRktLSDl0azBQUUIxUTdVYURCclphOWZIUDlMUERPeTV2VmJYbEJlNUhvb2RJeVl2N1VJdjRVT01BMEs2CiAgICAgICAgIE9ybnJTOFlKVEl3U05QWm1BWlEvTmxNampPdjZFMVk5RVVvd09mL3JOdkRpL25YUmNOeVd4U0FXRk5NRzJzbHVwUWI1CiAgICAgICAgIEFpYlBmL0dFOHpBaWVmZk8yVWc5Qk5FTGVIUTNyUWU1R29hNFdYMWRNSGtjNkNUZ3l1dnU4cnA0NHNOK0h5S0RsRTd2CiAgICAgICAgIExZWXRFM0IvZnRaRVJ2RDFBZjlZOFRDVU14dWNEQkN1YXlhRDgvN2FOWGZHWTJKbm1GcjBEdmU0OHhWRnkwWkVhNXFjCiAgICAgICAgIEFCd052QWd5MjlmczJvWmpIS0NGUWJWK0VSZkphWmVwaTdMbjdyRklwemk5S1dIZnptWlRJUHczTS9tSEhmbzRiMjgyCiAgICAgICAgIGY1K1E9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWxIRE5tRllybVFaSVpJcjVMM0ZldEE0WkVjTFBETjByOFdyYUFWYjd2b1k9OwogICAgICAgIGI9UUtTNWt0WGtMNzFSWlNYTXN3NjhMQ1BYSExTV0gySk9xOHN6SDZUUnJZQncrbFZYYzJKM240QkNwaTdEU1JsY3ZGCiAgICAgICAgIFE1MkdNbzdET1FZKzV2Z1d3OG11aWsxVU9CMEQyMlI5LytBbzBMdXNVQ1lRazE4QmQ0L000ZjBMZTNYSzFTVm1PbUZ1CiAgICAgICAgIGhvb05KcGlIdDNaeTFPSzYzRlc1bWltMXpSelg5N1pRUENoV2J0S2ZlNlJjbFJRS2d5OWJkWG1MQURvS0RoMFBZRXdXCiAgICAgICAgIE9vOXMzdnB2eitsamc1Q1JDV3B5SU9jYlRRbzQ0SUU5ZWIyMUc2SkpDRndpeHFxSUFCMGc4bzZZdVVSdFJiRXhrQXg5CiAgICAgICAgIGg1RmRrNVJXeXA3dkNXOG1DYTh0SGpUSjJuaGxsbVhxTDVZUDJGcm94NDRUeGY5aWF1Y1k1amJLa21kY0w4dWlqNFJ1CiAgICAgICAgIHZ0NkE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVZUalI4eFZsK08rVkRnWXh5VFhYcVJXbFYycnlGVEY5dHUwN0grM0J3NUdKOFpQYlJWCglDZWdlS2JEbTlUbWR2UXhKckRUZ2tldXYyNGk0dmJCK0ljZmdHbXFWTGc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQitWWkRUVGpPSmlQNFlFVDdPSnFUKzdwQUQwTVZYMnorVW45QktOcVZleHFHb0wyMHlJd3RQejQvODg1TVBWUVFMYTREY3h4ejZiNGwxQlkrS2Vkbz0KWC1SZWNlaXZlZDogYnkgMTAuMjguMTExLjIwMyB3aXRoIFNNVFAgaWQgYzcybXI2OTczNTM3d21pLjQyLjE1MDc0Nzk2ODE2MjQ7CiBTdW4sIDA4IE9jdCAyMDE3IDA5OjIxOjIxIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDwxMDU0NDYxNS5CNGhPM1BudkV6QGdpZ2E+IDw0MUM0NjQ3QS0zODA4LTRFNkEtQjRCMi0yMkY3RjI1OUU4MTVAaG9udG9uLm9yZz4KIDxDQUt1VnpCVC1adzNIZDBDTHFUNjRrUVgycFNxRkMrTnZ3RDl1TUZleVI1azg5RjZuN0FAbWFpbC5nbWFpbC5jb20+IDwzMDY2MzA4LlJaNzZzTVQyYmNAZ2lnYT4KSW4tUmVwbHktVG86IDwzMDY2MzA4LlJaNzZzTVQyYmNAZ2lnYT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAwOCBPY3QgMjAxNyAxNjoyMToxMCArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXh5UTR0ZTdybzR4TT1YQXJpUHU3aFArVVU3VVhvU1ZNdmZEdlFKOURpPUd3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogSmVua2lucyBhbmQgTWF2ZW4gMy4wLjUgb3IgSkRLIDcKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDc3OWZhZWRlZmYwMDU1YjBiNzYxZSIKCi0tMDAxYTExNDc3OWZhZWRlZmYwMDU1YjBiNzYxZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPbiBTdW4gOCBPY3QgMjAxNyBhdCAwMzo1NSwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdyb3Q9CmU6Cgo+IFRMRFI7ID0zRAo+IFBlcmhhcHMgd2UgY2FuIHN0YXJ0IHdpdGggMiBwcm9vZnMgb2YgY29uY2VwdDoKPiAxLiBmdWxsIGdpdCBjbG9uZSArIEplbmtpbnMgam9icyBmb3IgdGhlIDcgZXhpc3RpbmcgZ2l0IHJlcG9zICh3aXRoIDYKPiBhZGRpdGlvbmFsIG9uZXMgaW4gMiBkYXlzKQo+IDIuIGdpdCBzcGxpdCBvZiBvbmUgb2YgdGhlIGFnZ3JlZ2F0b3Igc3ZuIHRydW5rOiBza2lucyBvciBkb3hpYS10b29scyBjYW4KPiBiZQo+IGVhc3kgY2hvaWNlcyBzaW5jZSB0aGV5IGFyZSBsaWdodCwgd2hlcmUgcGx1Z2lucyBvciBzaGFyZWQgYXJlIHBlcmhhcHMgdG89Cm8KPiBoZWF2eS4gVGhlIG9uZSB3b3JraW5nIG9uIHRoaXMgUG9DIHdpbGwgbWFrZSBoaXMgY2hvaWNlCj4KPiB0aGVuIG1vcmUgZGV0YWlsZWQgYW5zd2VyIGlubGluZSB0aGF0IGxlYWQgdG8gdGhpcyBQb0NzIHByb3Bvc2FsCj4KPiBSZWdhcmRzLAo+Cj4gSGVydj1DMz1BOQo+Cj4gTGUgZGltYW5jaGUgOCBvY3RvYnJlIDIwMTcsIDAwOjAyOjEwIENFU1QgVGlib3IgRGlnYW5hIGEgPUMzPUE5Y3JpdCA6Cj4gPiBJIGRvbid0IHRoaW5rIHRoZSBkZXZzIHdvdWxkIHdvcmsgb24gYWxsIGFydGlmYWN0cyhwcm9qZWN0cykgYSB0aW1lLgo+IHN1cmUsIEkgdGhpbmsgSSdtIG9uZSBvZiB0aGUgZmV3IHBlb3BsZSB3b3JraW5nIG9uIG5lYXIgZXZlcnl0aGluZyAod2l0aAo+IHJhcmUKPiBleGNlcHRpb25zIGxpa2UgU3VyZWZpcmUsIGFzIHlvdSBub3RpY2VkIDopICkKPiBidXQgZm9yIHVzdWFsIGNvbnRyaWJ1dG9yLCB0aGVyZSBpcyBubyBpc3N1ZQo+Cj4gSSdtIG5vdCBhIGdpdCBleHBlcnQsIHRoZW4gSSBkb24ndCBrbm93IGlmIGVhc3kgImZ1bGwgTWF2ZW4gY2xvbmUiIGlzCj4gYmV0dGVyCj4gZG9uZSB3aXRoIGEgc2hlbGwgc2NyaXB0IG9yIHNvbWUgZ2l0IG1vZHVsZXMKPgo+ID4gSWYgdGhlIG5hbWluZyBjb252ZW50aW9uIG9mIHJlcG8gZm9yIGEgcGx1Z2luIHdvdWxkIGJlIGFydGlmYWN0SWQsIGxpa2UKPiA+IC9tYXZlbi1jbGVhbi1wbHVnaW4sIHRoZW4gZXZlbiBlYXN5IHRvIGZpZ3VyZSBvdXQgd2hpY2ggb25lIHRvIGNsb25lLgo+ID4gVGhlIG1vc3QgbGlrZWx5IHRoZSBkZXYgd291bGQganVzdCBjbG9uZSBvbmUgcmVwbyBzaGUvaGUgaXMgaW50ZXJlc3RlZCA9CmluCj4gPiBhdCB0aGUgbW9tZW50LCBpLmUuIHJlcG9zaXRvcnkgL21hdmVuLWNsZWFuLXBsdWdpbiwgbGV0J3Mgc2F5Lgo+ID4gSXQncyBnb29kIHRvIGF2b2lkIGFueSBzaGFyZWQgZmlsZXMgYWNyb3NzIHRoZW0sIGV2ZW4gSSBkb24ndCB0aGluayBkZXY9CnMKPiA+IHNoYXJlIHNvbWUgaW4gc3ZuIHRvZGF5LiBUaGUgcmVsZWFzZSBwcm9jZXNzIHdvdWxkIGJlIHF1aXRlIHVzdWFsLCBpLmUuCj4gb25lCj4gPiByZXBvID0zRCBvbmUgcHJvamVjdCwgYW5kIG5ldyBkZXZzIGFscmVhZHkgaGF2ZSB0aGVzZSBleHBlcmllbmNlcyB3aGljaAo+IHdpbGwKPiA+IGJlIHNpbXBsZSBmb3IgdGhlbSB0byBhZGFwdCBmYXN0ZXIuCj4gKzEKPiB0aGUgb25seSBkcmF3YmFjayBJIHNlZSBjdXJyZW50bHkgaXMgdGhhdCB0aGVyZSBpcyBubyBuYXR1cmFsIGdyb3VwaW5nLAo+IHRoZW4KPiB3ZSBoYXZlIGEgZmxhdCBsaXQgb2YgbmVhciAxMDAgZ2l0IHJlcG9zIHdpdGhvdXQgdGhlIGN1cnJlbnQgc3RydWN0dXJlCj4gKHBsdWdpbnMsIHNoYXJlZCBjb21wb25lbnRzLCBza2lucywgLi4uKTogSSB0aGluayBjb21wb25lbnRzIHN0cnVjdHVyZSBpcwo+IHVzZWZ1bCBmb3IgbWFpbnRlbmFiaWxpdHkKPiBidXQgbm90IHJlYWxseSBhIGNvbXBsZXRlIHNob3dzdG9wcGVyCj4gYW5kIHBlcmhhcHMgdGhlICJNYXZlbiBmdWxsIGNsb25lIiB0b29saW5nIGNhbiByZS1jcmVhdGUgc29tZSBncm91cGluZyB0bwo+IGtlZXAKPiB2aXNpYmxlIHN0cnVjdHVyZQo+Cj4gTm93LCBzb21lb25lIGhhcyB0byBrbm93IGhvdyB0byBjcmVhdGUgcGVyLWNvbXBvbmVudCBnaXQgcmVwbyB3aXRoIHRhZ3MKPiAoZWl0aGVyIGJ5IHJld29ya2luZyBleGl0aW5nIGdpdCBtaXJyb3JzLCBlaXRoZXIgYnkgcmVzdGFydGluZyBmcm9tIHN2biksCj4gYW5kCj4gdGhhdCdzIG5vdCBtZSA6KQo+Cj4gZ2l2ZW4gdGhlIHZvbHVtZSAoYWRkaW5nIDcwIGdpdCByZXBvcyBmb3IgTWF2ZW4pLCB3ZSdsbCBoYXZlIHRvIHRlbGwgaW5mcj0KYQo+IGFib3V0IGl0Lgo+Cj4gVGhlbiB0aGVyZSBpcyB0aGUgSmVua2lucyBqb2JzIGNvbmZpZ3VyYXRpb246Cj4gLSB3ZSBuZWVkIGVhc3kgSmVua2luc2ZpbGUgaW4gZWFjaCByZXBvCgoKc28gd2UgY3JlYXRlIGEgc2hhcmVkIEdyb292eSBsaWJyYXJ5IGxpa2UgdGhlIEplbmtpbnMgcHJvamVjdCBkb2VzIGFuZCB0aGUKSmVua2luc2ZpbGUgYmVjb21lcyBgYnVpbGRQbHVnaW5gIGZvciBhbGwgZXhjZXB0IGNvcmUKCgo+IC0gd2UgbmVlZCBlYXN5IDgwIGpvYnMgY3JlYXRpb24gKG5vLCBJIHdvbid0IG1hbnVhbGx5IGNyZWF0ZSA4MCBqb2JzCj4gcGVyc29uYWxseSkKCgpTbyBJIHdpbGwgYWRkIFNDTU5hdmlnYXRvciBmdW5jdGlvbmFsaXR5IHRvIHRoZSBBU0YgZ2l0LUplbmtpbnMgcGx1Z2luIGFuZAp3ZSBqdXN0IGRlZmluZSBhbiBvcmctZm9sZGVyIGZvciBNYXZlbiBhbmQgYWxsIGdpdCByZXBvcyB3aXRoIGEgSmVua2luc2ZpbGUKd2lsbCBiZSBhdXRvLW1haW50YWluZWQuCgo+Cj4gQW5kIG9uY2UgYWdhaW4sIGluZnJhIHdpbGwgaGF2ZSB0byBiZSBpbiB0aGUgbG9vcCAoYXQgSmVua2lucyBzaWRlIHRoaXMKPiB0aW1lKSwKPiBzaW5jZSBJIGZlYXIgdGhlIGxvYWQgb24gSmVua2lucyBtYXN0ZXIgbm9kZSB3b24ndCBiZSBsaWdodDogcGVyaGFwcyB0aGF0PQoncwo+IHdoZXJlIEplbmtpbnMgZm9sZGVycyB3aWxsIGJlIHVzZWZ1bCwgYnV0IEknbSBub3QgYSBKZW5raW5zIGV4cGVydCBlaXRoZXI9Ci4KCgpJZiB3ZSB1c2UgYW4gb3JnIGZvbGRlciBpbnRlZ3JhdGVkIHdpdGggR2l0UHViU3ViIEkgZG8gbm90IHRoaW5rIHRoZXkgd2lsbApiZSBvdmVybHkgY29uY2VybmVkCgoKPgo+Cj4gSWYgZXZlcnl0aGluZyBzZWVtcyBmZWFzaWJsZSB0byBzcGxpdCBvdXIgc3ZuIGNvZGUgaW50byAxIGdpdCByZXBvIHBlci0KPiBjb21wb25lbnQsIHdoaWNoIHdpbGwgYnJpbmcgdXMgdG8gImZ1bGwgTWF2ZW4gY29kZSIgYmVpbmcgbmVhciAxMDAgcmVwb3MsCj4gSSdtCj4gb2sgd2l0aCBpdC4KPiBXZSdsbCBuZWVkIHRoZSBoZWxwIG9mIG1pc2MgZXhwZXJ0cyBvbiBKZW5raW5zIGFuZCBnaXQgdG8gcHJlcGFyZSB0aGluZ3MgPQphdAo+IHRoaXMgc2NhbGUuCgoKSSB0aGluayBvbmUgcmVwbyBwZXIgcmVsZWFzZSByb290IGlzIHRoZSB3YXkgdG8gZ28uCgpXZSBzaG91bGQgc3RhcnQgYnkgZHJhd2luZyB1cCBhIGxpc3QgYW5kIGFtYWxnYW1hdGlvbiB3aGVyZSBhcHByb3ByaWF0ZToKCkVnCgoqIGRvZXMgaXQgbWFrZSBzZW5zZSB0byByZWxlYXNlIG1hdmVuLWRlcGxveS1wbHVnaW4gYW5kCm1hdmVuLWluc3RhbGwtcGx1Z2luIGluZGVwZW5kZW50bHk/IFNlZW1zIHdlIG1vc3Qgb2Z0ZW4gbWFrZSBtaXJyb3JpbmcKY2hhbmdlcyB0byBib3RoLCBhbmQgcGVyaGFwcyBpdCB3b3VsZCBiZSBiZXR0ZXIgaWYgd2UgZm9yY2VkIHRoYXQgbW9kZWw/CihEb249RTI9ODA9OTl0IGFuc3dlciBpbiB0aGlzIHRocmVhZCwganVzdCBwb2ludGluZyBvdXQgYW4gZXhhbXBsZSkKCj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4gLS0KU2VudCBmcm9tIG15IHBob25lCgotLTAwMWExMTQ3NzlmYWVkZWZmMDA1NWIwYjc2MWUtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDc3MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gRGVjIDExIDIwOjM0OjM4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDc3MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA1NDUwQjE3RTJECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMTEgRGVjIDIwMTcgMjA6MzQ6MzggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5Nzk2OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBEZWMgMjAxNyAyMDozNDozOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTc4NjIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgRGVjIDIwMTcgMjA6MzQ6MzcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5Nzg1MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDExIERlYyAyMDE3IDIwOjM0OjM3IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAxMSBEZWMgMjAxNyAyMDozNDozNyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDIxRDVGMTgwNkIwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMSBEZWMgMjAxNyAyMDozNDozNyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDEuODc5ClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MS44NzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB4MlBsZHZOLWRHMHQgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sIDExIERlYyAyMDE3IDIwOjM0OjI2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd20wLWY1My5nb29nbGUuY29tIChtYWlsLXdtMC1mNTMuZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjUzXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDYzNzQ2NUZDOTcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDExIERlYyAyMDE3IDIwOjI5OjI3ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNTMuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgdDhzbzE2ODM4NDI0d21jLjMKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMSBEZWMgMjAxNyAxMjoyOToyNyAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD0rcmdRQXlMSkRlLzBoUkNtOHhVYkowYmcyZlV6MElkeVFwTG9qTzJUUWw0PTsKICAgICAgICBiPWYvN0tYYlhPZitKVFBTSFZUWXpXYjAxcWQ5aExXVFRVK1VUZGZyc3pwV1piejJxMExXa3ZHK2xiekU3VUgvYlNDMwogICAgICAgICBWalVUdVZBT00wdkI0eU1ZSUQyc01rK2MvT3ZseldVL0hUVjhKUkVxRU1ad0g5dExHWStTMStNYzR5Y2lDaDZsbldYYgogICAgICAgICBhZ01Takg0WE1CU2FtaE51SUJZMUJ6a04rVnM2d3hZa0dFaHBDTmtVV1c1N29sV0lZQ0dLL0poNzJtN2JLUEtmOENHUwogICAgICAgICBWT08wYy8xTXVwNTRXQXE3bk1OV1ZjQjFrNFdJSnp5N0duMnNXTkpCU2ZldnllR3F4NTBxcEZ2UHdiOHplZThCR0FOdwogICAgICAgICBlUVVhUm1vK0lsQ2dmTGxSeTF5WXJhVy9ZU3J2WFlqMlNONlBKWndhc3p5ejlDNEYva2hDVExyS29PdUg5L1dtRVNLQwogICAgICAgICBqdUtnPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD0rcmdRQXlMSkRlLzBoUkNtOHhVYkowYmcyZlV6MElkeVFwTG9qTzJUUWw0PTsKICAgICAgICBiPXRFOFRBMTdUQ3kzanpOamE1dGJQTWpDOVFQRTVjN0dtbkN1ZWhzb2NMT1o0SDlzVVZDcWZHOVYrdTkxQTNOVU1RZwogICAgICAgICBYVGtXdC80aGZjVEdhNFE4UkNtN2JLdjN5b29zajhtT0hOQlFsVUMrc2N2aGxHOFVoSVdZRkQrajBYQzF2K2JIRzE4cwogICAgICAgICBSM3BGNFp6RXdVZkxWSm9jTlBkdUVsaUthejVwYjUrNXBRdDIxZjNUWVAxTWQvS1VHbjRyeDMwTTNWZ29lOUdLcWZ6VAogICAgICAgICBMOTh1NE40WmtVaDVMZDVRUTZoMW9tejRmcE1jRHRsYWdhQjFaL2pPYWE5eE1BZjAxNUtPZm1SazFvRjlOdUF2SUozSgogICAgICAgICBhMlNDYURIa0ZocWp3eGw1cC9IYzdsdzF2ZlpoeHhYbGxOWDhGOWRscGd3bUp3dDExaDFRZkRUa1N2enF2RmFVbTRHYQogICAgICAgICBZV1lRPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBS0dCM21JZExkSm9mTzNIRWlSQ0pvNS9FY3g2akd5UCtkdWtpYlJUUkJEOHhVZ1E0UXNyZHFpQgoJS1dXVjA3R2Rsa3k4MnJ2T2QzN0VuaDFFYXhNbXdNY0pBSHRtT08vVlZRPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFDSmZCb3VQZkovb2I0Tkw0bWVMY3pMMWdQcHoybEdzV0ExSng0aUZhb01ZcC9MTFdBUXJVelFuZXhRNWRHVTRkZVN2ZUh5c3lwbTBqWEZqWWs4cVpNN2JyOUE9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjI4LjE3MC43NSB3aXRoIFNNVFAgaWQgdDcybXIxNzM3NjY5d21lLjE1LjE1MTMwMjQxNjYxNzk7CiBNb24sIDExIERlYyAyMDE3IDEyOjI5OjI2IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDwxOTAwNTU4LkdGeDlRbGZhRTJAZ2lnYT4gPENBK25Qbk13aTlkeEVSYzhUTjZhd2dFYUdOR0xQdURuUnpjUzhkRkpqVG56WmMzVDNmUUBtYWlsLmdtYWlsLmNvbT4KIDwxOTg1MTIyLllSZHpwYW5RSlJAZ2lnYT4gPDIxNDUyMzAuSDU3U3NYQmtlRUBnaWdhPgpJbi1SZXBseS1UbzogPDIxNDUyMzAuSDU3U3NYQmtlRUBnaWdhPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBNb24sIDExIERlYyAyMDE3IDIwOjI5OjE1ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NeSstTnZQa21wdTQyZ016OXdRbStNYnhxPTlSNnVLYXQxQkZrWUJaZk04TmdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBHaXQgbWlncmF0aW9uIG5leHQgc3RlcHMKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDQzNDdjZjYzYzE3MDU2MDE2NjM4ZiIKCi0tMDAxYTExNDQzNDdjZjYzYzE3MDU2MDE2NjM4ZgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPbiBTdW4gMTAgRGVjIDIwMTcgYXQgMDk6NTksIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cm89CnRlOgoKPiBoZXJlIGlzIGEgbGlzdCBvZiBzdHJhbmdlIGlzc3VlcyBpbiBDSSBqb2JzOgo+Cj4gLSBEb3hpYSBTaXRldG9vbHMgaXMgZmFpbGluZyBhdCBjaGVja291dCBbMV0KPgo+IC0gTWF2ZW4gY29yZSBicmFuY2hlcyBmYWlsIGluIG1hdmVuLXdpcCBbMl0gd2hpbGUgdGhlIG11bHRpLWJyYW5jaCBkb2VzIG49Cm90Cj4gZmFpbCBbM106IEFGQUlLLCBzYW1lIEplbmtpbnMgZmlsZXMgYXJlIHVzZWQsIGlzbid0IGl0PwoKClVidW50dS00IHdhcyBoYXZpbmcgaXNzdWVzCgoKPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUMzPUE5Cj4KPiBbMV0KPiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC9qb2IvbWF2ZW4tZG94PQppYS1zaXRldG9vbHMvam9iL21hc3Rlci80L2NvbnNvbGUKPgo+IFsyXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLXdpcC9qb2IvbWF2ZW49Ci8KPgo+IFszXQo+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tMy54LWplbmtpbnNmaWxlLwo+Cj4gTGUgZGltYW5jaGUgMTAgZD1DMz1BOWNlbWJyZSAyMDE3LCAwNjoyOToyMCBDRVQgSGVydj1DMz1BOSBCT1VURU1ZIGEgPUMzPQo9QTljcml0IDoKPiA+IHllcywgYW5kIDgzIG1hdmVuLWJveCBDSSBqb2JzIFsxXQo+ID4KPiA+IHNvbWUgQ0kgZmFpbHVyZXMgYXJlIG5vdCByZWFsbHkgZXhwZWN0ZWQsIGJ1dCBpbiBnZW5lcmFsLCB0aGUgcmVzdWx0IGlzCj4gZ29vZAo+ID4KPiA+IGl0J3MgdGltZSBmb3IgZXZlcnlib2R5IHRvIGNoZWNrIGhpcyBmYXZvcml0ZSBwbHVnaW4gb3Igc2hhcmVkIGNvbXBvbmVuPQp0Cj4gYW5kCj4gPiBkbyB0aGUgbGl0dGxlIGZpeGVzOiB0aGUgZ2xvYmFsIG1pZ3JhdGlvbiBpcyBkb25lCj4gPgo+ID4gYW5kIGl0J3MgdGltZSBhbHNvIHRvIHN0YXJ0IHJldmlld2luZyBQUnMgYW5kIG1lcmdpbmc6IHRoaXMgd2FzIHRoZSBiaWcKPiA+IG9iamVjdGl2ZSB3aXRoIEdpdCBtaWdyYXRpb24KPiA+Cj4gPiBSZWdhcmRzLAo+ID4KPiA+IEhlcnY9QzM9QTkKPiA+Cj4gPiBbMV0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvCj4gPgo+ID4gTGUgc2FtZWRpIDkgZD1DMz1BOWNlbWJyZSAyMDE3LCAxNzowNjowOSBDRVQgU3RlcGhlbiBDb25ub2xseSBhID1DMz1BOWM9CnJpdCA6Cj4gPiA+IEkgc2VlIHdlIGhhdmUgYSBsYXJnZSBudW1iZXIgb2YgcmVwb3Mgbm93IG9uIGdpdGJveCA7LSkKPiA+ID4KPiA+ID4gT24gVGh1IDcgRGVjIDIwMTcgYXQgMDc6MDAsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPQo+Cj4gd3JvdGU6Cj4gPiA+ID4gb2ssIEkgZGlkbid0IHVwZGF0ZSBteSByZXBvIGNsb25lOiBub3cgdGhlIHJ1bi1pdHMgcHJvZmlsZSBpcwo+IGFjdGl2YXRlZAo+ID4gPiA+Cj4gPiA+ID4gdGhlbiB0aGUgcGxhbiBzaG91bGQganVzdCBjb25maXJtICJpdCB3b3JrcyEiIDopCj4gPiA+ID4KPiA+ID4gPiBhbmQgZmluZCB3aGljaCBqb2JzIGFyZSBzcGVjaWFsLCBsaWtlIG1hdmVuLWRpc3QtdG9vbCAod2hpY2ggaGFzIHRvCj4gYmUKPiA+ID4gPiBzY2hlZHVsZWQgZGFpbHkgaW5zdGVhZCBvZiBjb2RlIGNoYW5nZSwgYW5kIG9uZSBwbGF0Zm9ybSBvbmx5KQo+ID4gPiA+Cj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPgo+ID4gPiA+IEhlcnY9QzM9QTkKPiA+ID4gPgo+ID4gPiA+IExlIG1lcmNyZWRpIDYgZD1DMz1BOWNlbWJyZSAyMDE3LCAyMzo1ODo0NSBDRVQgU3RlcGhlbiBDb25ub2xseSBhID0KPUMzPUE5Y3JpdCA6Cj4gPiA+ID4gPiBPbiBXZWQgNiBEZWMgMjAxNyBhdCAyMjozOCwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZT0KZS5mcj4KPiB3cm90ZToKPiA+ID4gPiA+ID4gTm93IHRoYXQgd2UgaGF2ZSAyIEFTRiBPcmdhbml6YXRpb24gSmVua2lucyBqb2JzIChvbmUgZm9yIGdpdGJvPQp4Cj4gWzFdCj4gPiA+ID4KPiA+ID4gPiBhbmQKPiA+ID4gPgo+ID4gPiA+ID4gPiBvbmUKPiA+ID4gPiA+ID4gZm9yIGdpdC13aXA6IHRoYW5rIHlvdSBTdGVwaGVuKSBhbmQgdGhhdCBpdCBsb29rcyBxdWl0ZQo+IHN1Y2Nlc3NmdWwsCj4gPiA+ID4KPiA+ID4gPiBsZXQncwo+ID4gPiA+Cj4gPiA+ID4gPiA+IHBsYW4KPiA+ID4gPiA+ID4gdGhlIG5leHQgc3RlcHMuCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IEhlcmUgaXMgd2hhdCBJIHNlZToKPiA+ID4gPiA+ID4gMS4gcmVtb3ZhbCBvZiBoYW5kLWRlZmluZWQgSmVua2lucyBqb2JzIHRoYXQgYXJlIG5vdyBkdXBsaWNhdGVzCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IDIuIHByZXBhcmF0aW9uIG9mIHRoZSA2MCBuZXcgZW1wdHkgZ2l0IHJlcG9zIGZvciBzaGFyZWQgJiBwbHVnaT0KbnMKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gMy4gbWlncmF0aW9uIG9mIHRoZSAxIHNoYXJlZCBjb21wb25lbnQgYW5kIDEgcGx1Z2luIHVzaW5nCj4gPiA+ID4gPiA+IG1pZ3JhdGUtKi5zaAo+ID4gPiA+ID4gPiBzY3JpcHRzCj4gPiA+ID4gPiA+IFszXSB0byB0ZXN0IGFuZCBldmVudHVhbGx5IHJld29yayB0aGUgSmVua2luc2ZpbGUgKEkgc3VwcG9zZSBpdAo+IHdpbGwKPiA+ID4gPiA+ID4gcmVxdWlyZQo+ID4gPiA+ID4gPiBzb21lIGxpdHRsZSBjaGFuZ2UsIHRvIHJ1biBhZGQgInJ1bi1pdHMiIHByb2ZpbGUpCj4gPiA+ID4gPgo+ID4gPiA+ID4gQXMgZmFyIGFzIEkgcmVjYWxsLCBJIGFkZGVkIC1QK3J1bi1pdHMgYWxyZWFkeQo+ID4gPiA+ID4KPiA+ID4gPiA+IEZvciB0aGUgcGx1Z2luLCBJJ2QgbGlrZSB0byBkbyB0aGUgam9iIGZvciBtYXZlbi1zaXRlLXBsdWdpbiwKPiBzaW5jZSB3ZQo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gZXhwZWN0Cj4gPiA+ID4gPiA+IHRvIHJlbGVhc2UgaXQgc29vbi4KPiA+ID4gPiA+ID4gRm9yIHRoZSBzaGFyZWQgY29tcG9uZW50LCBJIGRvbid0IGtub3cgaWYgdGhlcmUgaXMgYSBiZXN0Cj4gY2FuZGlkYXRlCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IDQuIG9uY2UgcHJldmlvdXMgc3RlcCBpcyBvaywgZG8gdGhlIGZ1bGwgbWlncmF0aW9uOiBpZiB0aGVyZSBhcj0KZQo+ID4gPiA+ID4gPiB2b2x1bnRlZXJzCj4gPiA+ID4gPiA+IGZvciBoZWxwaW5nLCB0aGF0IHdvdWxkIGJlIGdyZWF0LCBzaW5jZSBwb3B1bGF0aW5nIDYwIGdpdCByZXBvcwo+ID4gPiA+ID4gPiB3b24ndAo+ID4gPiA+Cj4gPiA+ID4gYmUKPiA+ID4gPgo+ID4gPiA+ID4gPiByZWFsbHkgZnVuLi4uCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IEFuZCBhcyBwYXJ0IG9mIDYwIGVtcHR5IGdpdCByZXBvcyBjcmVhdGlvbiwgSSBwcm9wb3NlIHRvIG1pZ3JhdD0KZQo+IHRoZQo+ID4gPiA+ID4gPiAiR29vZ2xlCj4gPiA+ID4gPiA+IHJlcG8gbWFuaWZlc3QiIG1hdmVuLWFnZ3JlZ2F0b3IgWzRdIHRvIEFTRjogbXkgcGVyc29uYWwgdXNlIGhhcwo+IGJlZW4KPiA+ID4gPgo+ID4gPiA+IHF1aXRlCj4gPiA+ID4KPiA+ID4gPiA+ID4gc3VjY2Vzc2Z1bCwgSSBob3BlIGl0J3MgdGhlIHNhbWUgZm9yIG90aGVycy4gUGVyaGFwcyB0aGVyZSBhcmUKPiA+ID4gPiA+ID4gYmV0dGVyCj4gPiA+ID4gPiA+IGlkZWFzCj4gPiA+ID4gPiA+IGZvciBpdHMgbmFtZTogbWF2ZW4tYWdncmVnYXRvcgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBBbnkgb3RoZXIgaWRlYT8gYW55IG9iamVjdGlvbj8KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gSGVydj1DMz1BOQo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBbMV0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3g9Ci8KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gWzJdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4td2lwPQovCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFszXQo+IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL21hdmVuL3NhbmRib3gvdHJ1bmsvc2NyaXB0cy9naXQvCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFs0XSBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tYWdncmVnYXRvcgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID4gPiA+IC0KPiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiAtLQo+ID4gPiA+ID4KPiA+ID4gPiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4gPiA+Cj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLS0KPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPgo+ID4gPiA+IC0tCj4gPiA+Cj4gPiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+IC0tClNlbnQgZnJvbSBteSBwaG9uZQoKLS0wMDFhMTE0NDM0N2NmNjNjMTcwNTYwMTY2MzhmLS0KCkZyb20gZGV2LXJldHVybi0xMjQwMTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIFNlcCAxMyAyMjozNDo1MCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwMTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRjE3MDQxOTBFRAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3IDIyOjM0OjUwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjM5NDYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTMgU2VwIDIwMTcgMjI6MzQ6NTAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYzODcxIGludm9rZWQgYnkgdWlkIDUwMCk7IDEzIFNlcCAyMDE3IDIyOjM0OjUwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjM4NTkgaW52b2tlZCBieSB1aWQgOTkpOyAxMyBTZXAgMjAxNyAyMjozNDo0OSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMTMgU2VwIDIwMTcgMjI6MzQ6NDkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA1NzIzMDE4MjVCRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTMgU2VwIDIwMTcgMjI6MzQ6NDkgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjg4ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuODggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMSwgVVJJQkxfQkxPQ0tFRD0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgQVhSVzdtYmZFOTVOIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJV2VkLCAxMyBTZXAgMjAxNyAyMjozNDo0OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXZrMC1mNTEuZ29vZ2xlLmNvbSAobWFpbC12azAtZjUxLmdvb2dsZS5jb20gWzIwOS44NS4yMTMuNTFdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQzM4NjQ2MEQ0NAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTMgU2VwIDIwMTcgMjI6MzQ6NDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdmswLWY1MS5nb29nbGUuY29tIHdpdGggU01UUCBpZCBvMjJzbzE3NzEzNjd2a2UuMQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3IDE1OjM0OjQ3IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPTZwdkJOZnN6RTBEWndTaUZYK3hXdWE1RFk3Z2ZuUU56ZFRheVNIMEJLbGc9OwogICAgICAgIGI9aTZITHdJL1lhV05PczYvSWE0YWFkT3A0UzF1RjgwbTFzYitXR09EOC9LNE9acFI0ajBIRi9UQUdNc29XNTd0NHorCiAgICAgICAgIHRYNjJZcng5K0g1SXl6ZThBOW03NFhsTTZicjhqQjVwdUduaEhjWDBmcWFhakhGd1ZjRWVHNkRrWXJEcFdmbFdKckZkCiAgICAgICAgIFZUWXZaYldaSXNLeDZKcUtaS01IenhKOUg4MEovYmhGS3lYWnhMYmg5QTFhMUlMZjJDdDZMS1lhOHhYaXpGWmRyeWNXCiAgICAgICAgIENMRDF0T0JpZmpxcTcxaWhSbStORHRuYnQ1RE1FNUlpUTlsczNmRjBzdjhkanNFaXB2WHVxeGxzcWI5OHZhMkxkaTZGCiAgICAgICAgIFhuZEx6WW9XbWozOERrdDJBWkQ0dlVwdkpXRzFoZ3pvcjBZZ0hVZXB0cHYvYlVpUncweUNuSk9NUUY0Q2REaXY5ZFBMCiAgICAgICAgIEZVY0E9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPTZwdkJOZnN6RTBEWndTaUZYK3hXdWE1RFk3Z2ZuUU56ZFRheVNIMEJLbGc9OwogICAgICAgIGI9aUxueitkUWIrSDBnV2Y4U25yeWM0WTN0bjFkcm9HTzF3RzR3RWFIdjJJVnRTLzlvTUNmcjJDM29QRzFwSmNXdmNOCiAgICAgICAgIEtlOVJRNmtScHFJdkpqT1BxV1c3WG9XOWVTMlFReTJqclR6azJwQzA2elZSVVJSbGhWa01yUFJkNy95YnRmcjlyL1dMCiAgICAgICAgIHJILy9IbzltbUZycG1KTWtjenFQdmMxQ2tNQ2ZFc2dRbEZQQXN4LzJDVW9VYVVnSjFXbFJhQUFBSjczeDdlYVByUGRQCiAgICAgICAgIGRBRXVPcmNDa1NCd1ZGNlJIMEdlOXVFK01HMGJSQmtiL3Nkdk1nMmdFSFRFeE9ySTZwbUZ6anVZOEk5alNYdjlKWjEzCiAgICAgICAgIGhmR3FyemFYcENuUFBhaG44bWJOQzNkaHBhNWNLaUg4UkozZC9iUDNrZHcrY2s4ZzBqSktZTVUzOHVpa1lISnduSTRPCiAgICAgICAgIEUxZFE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWhZdG9YN0pYb0ZWM0NFZVY3b1VrY1ZWVDNhbS9kRWpuQmFFa09xanAvN0ROMWdtdmZJCglxOE8yR1lQSjd5YnU2c1MrZGUvcjVjelZRRzJmQUlRLzBEQVRZM3VidHc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQm1hd2Ribm1BcE9zWEc5bWEvTHB4VnhpcmIzNmZMaHpsM3VqZGxKN0prSm5SbUp2NysyY2NUcElsYTdoL2RkTzRJQityZ3NROWpwc1kzWU45TnlpYz0KWC1SZWNlaXZlZDogYnkgMTAuMzEuNTAuMTM2IHdpdGggU01UUCBpZCB5MTMwbXIxMzkzNjEzMXZreS4xOTcuMTUwNTM0MjA4MDY1ODsKIFdlZCwgMTMgU2VwIDIwMTcgMTU6MzQ6NDAgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPENBK25Qbk14eUcyTmVQWHBWcWF3ZTlqUj1pdEhFVDZVdWRuTjlDakhodj1vby1LQ3J4d0BtYWlsLmdtYWlsLmNvbT4KIDxDQUZOQ1UtLTJ2cmQ1QmVUdmt4S0N5WDJaUWVQcWl4N1g9d21Wc1dkTTVkNDlYZU5nT3dAbWFpbC5nbWFpbC5jb20+CiA8RjcwNTdFMUItNDMxMy00RDdCLThFRjEtOTkzNDFERDFFMUQwQHRhbGlvcy5jb20+IDxDQStuUG5Nd1VxbUJ1cmF0RDFDcGs9TDl0QUN3Xytxb3Ryc1VwQ3FkcVJaWG1XWGdpVEFAbWFpbC5nbWFpbC5jb20+CiA8QjE0OEM5NjctMTY5NS00NUMyLUExNUYtMUZGRjkwM0JDQjUwQHRhbGlvcy5jb20+IDw3NEMxMjdCMC1GNzA3LTRCQkEtQTJDMS1ENTdFNjBDOUMwRkNAdGFsaW9zLmNvbT4KIDxGQUFEREUxNC1DMzc4LTREM0QtOEFFRS05QUM4Q0NGOTE3ODNAdGFsaW9zLmNvbT4KSW4tUmVwbHktVG86IDxGQUFEREUxNC1DMzc4LTREM0QtOEFFRS05QUM4Q0NGOTE3ODNAdGFsaW9zLmNvbT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAxMyBTZXAgMjAxNyAyMjozNDoyOSArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXkrQlNhK1N0d2hFSExuQ0F4cG49S2RIM0ZCMFBuRjJaYVBGYjlmK2Y3Q2RnQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQzOGZhMmZiYjM2NjA1NTkxOWMzZjUiCgotLTAwMWExMTQzOGZhMmZiYjM2NjA1NTkxOWMzZjUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gV2VkIDEzIFNlcCAyMDE3IGF0IDIzOjMwLCBNYXJrIERlcnJpY3V0dCA8bWFya0B0YWxpb3MuY29tPiB3cm90ZToKCj4gT24gMTQgU2VwIDIwMTcsIGF0IDEwOjI2LCBNYXJrIERlcnJpY3V0dCB3cm90ZToKPgo+IENhbGxpbmcgLTIgZm9yIHZvdGUgaWYgbm90IHRvbyBsYXRlLgo+Cj4gQWN0dWFsbHkgLSBsb29raW5nIGF0IHRoZSBjb21taXQgZGlmZiwgSSBzZWUgaW4gb3VyIGNvZGUgd2UgZGlkIGhhdmUKPiA8ZXh0ZW5zaW9ucz50cnVlPC9leHRlbnNpb25zPiBmb3IgdGhlIGphc21pbmUtbWF2ZW4tcGx1Z2luIHdoaWNoIHdlIGRvbid0Cj4gYWN0dWFsbHkgbmVlZC4gUmVtb3ZpbmcgdGhhdCBmcm9tIHRoZSBtb2pvIGRlZmluaXRpb24gYW5kIHJ1bm5pbmcgbXkgYnVpbD0KZAo+IHdpdGggdGhlIHN0YWdlZCAzLjUuMSByZWxlYXNlIGFuZCBldmVyeXRoaW5nIGJ1aWxkcyBmaW5lLgo+Cj4gKzIgbm9uLWJpbmRpbmcgZnJvbSBNYXJrIQo+CgpIYXZlIHlvdSBhIGRlc2NyaXB0aW9uIG9mIHdoYXQgd2VudCB3cm9uZyBzbyB3ZSBjYW4gYWRkIHRvIHRoZSByZWxlYXNlCm5vdGVzPwoKTWFyawo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Cj4gIlRoZSBlYXNlIHdpdGggd2hpY2ggYSBjaGFuZ2UgY2FuIGJlIGltcGxlbWVudGVkIGhhcyBubyByZWxldmFuY2UgYXQgYWxsCj4gdG8gd2hldGhlciBpdCBpcyB0aGUgcmlnaHQgY2hhbmdlIGZvciB0aGUgKEphdmEpIFBsYXRmb3JtIGZvciBhbGwgdGltZS4iID0KPUUyPTgwPTk0Cj4gTWFyayBSZWluaG9sZC4KPgo+IE1hcmsgRGVycmljdXR0Cj4gaHR0cDovL3d3dy50aGVvcnlpbnByYWN0aWNlLm5ldAo+IGh0dHA6Ly93d3cuY2hhbGljZW9mYmxvb2QubmV0Cj4gaHR0cDovL3BsdXMuZ29vZ2xlLmNvbS8rTWFya0RlcnJpY3V0dAo+IGh0dHA6Ly90d2l0dGVyLmNvbS90YWxpb3MKPiBodHRwOi8vZmFjZWJvb2suY29tL21kZXJyaWN1dHQKPgotLT0yMApTZW50IGZyb20gbXkgcGhvbmUKCi0tMDAxYTExNDM4ZmEyZmJiMzY2MDU1OTE5YzNmNS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0ODk4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBEZWMgMzEgMTA6MDU6NTcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODk4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDY3OENCMTc4MkYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAzMSBEZWMgMjAxNyAxMDowNTo1NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDM3NjIyIGludm9rZWQgYnkgdWlkIDUwMCk7IDMxIERlYyAyMDE3IDEwOjA1OjU3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNzUzMyBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMSBEZWMgMjAxNyAxMDowNTo1NiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM3NTE0IGludm9rZWQgYnkgdWlkIDk5KTsgMzEgRGVjIDIwMTcgMTA6MDU6NTYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDMxIERlYyAyMDE3IDEwOjA1OjU2ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMEI3OThDMkQ3MAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMzEgRGVjIDIwMTcgMTA6MDU6NTYgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjg5OApYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuODk4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMC4wMDEsCglTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCA1cTEwMVptVlM4dlogZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sIDMxIERlYyAyMDE3IDEwOjA1OjUxICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd3IwLWYxNzIuZ29vZ2xlLmNvbSAobWFpbC13cjAtZjE3Mi5nb29nbGUuY29tIFsyMDkuODUuMTI4LjE3Ml0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA1QTk3MTVGMjU0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAzMSBEZWMgMjAxNyAxMDowNTo1MSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13cjAtZjE3Mi5nb29nbGUuY29tIHdpdGggU01UUCBpZCB3MTA3c28xOTAwMzA3MHdyYi45CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMzEgRGVjIDIwMTcgMDI6MDU6NTEgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9bWFHTlRIc1pHNCtmYWxLVTVRaEtmU1NOWDBScnd1UTJiMVAvbVNkMWNpTT07CiAgICAgICAgYj1NdTUweVFxT1c4S3NaV3RwdUNNUXFRL25hMUl0M0F0a2F2cUwzUU1XeGh3bWNwUmkzOEhQcE8zaDlXeVo0SzJmVWkKICAgICAgICAgY2llN21sWVFPUVhRS1BnMHZiQ2tnMTBEL0dQcmxEaWFIZmpXT0wxVkNHcXZkc3FPeDFLNHJET2c1bUtLblhZWUhKRmgKICAgICAgICAgZmtYQ0RPVWRJUk5LVEdJeGlWY0pIQ1JOYk5NaWhSUmlmUTY1dEJ0Q1dqcXRFU2QwZnRkQnlwZ3RTL3MrVDlXY2xIU0QKICAgICAgICAgVzFBOVk3cDlESkJBYlNCN003Q1h1TE5PVVFEM25yWXlOK2F4bno3dHk3K3h3Wk12dFR4Z1hJRlNPcktNNFhXYk9zMXIKICAgICAgICAgZU1GN3FUQlRhRzhVNjJLem1CR2NVV3c0ZVJiT3UrSzlCcVZRYm0wb1p4RStQNjN2QlI4VlpiOFQvL3FGY2tKYm0vMmQKICAgICAgICAgQS9GUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9bWFHTlRIc1pHNCtmYWxLVTVRaEtmU1NOWDBScnd1UTJiMVAvbVNkMWNpTT07CiAgICAgICAgYj1pZlNjV3NGMTNvSUQrM3FzZzhLb0ZHWG54ZFl4UXNrc25uR1haV3lPcTJGK2ZmelAzdmo3NUViQURwbDMrdVpROWEKICAgICAgICAgZ0J6MUQwNXh0SzZNb2YwZXBPZ1AzYzZCNm1Nd09ESU9Kd0dUMzdyekh1T0pIaTNsM0Zsd1NXdFoyOXNUSlRYL1UxR3UKICAgICAgICAgZ25YU241TXljeWZ5eC82QWdzM2Y5YWEvcmFhQW9RV2hmREJNSUJyNG4yNS9FYTZaR0RQNnVmUlZoeVJjNjdvMWlaMnkKICAgICAgICAgUEIzTmZtbHZZc2ZWclJEekZCakJJRXBkZGF4Rk1sajBDcGVhckt1NEZmRElQWnpZcWlqSkxqL1V3UTJIY3VZcENDcnMKICAgICAgICAgbXg5WTVsSVRvcmorUU5zczI0VnlQS1NmMDYzeW9VaGc0bGEzSHl1OFpRRmhOeGtMSVcySEszNUpJUVRqeS80aWNOREMKICAgICAgICAgekdDUT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUtHQjNtTHJZY2dsdDJxeGljcjJGQ3VBUXdWcWpFNTUzVlpoN1JiV3EvSlRXQnJNOUFPY09qWmQKCWkvblpzT3BBYlZYcTY2ZGY1d2ZlTm9EdVF4dlVBRFhyblExeTBNVjZPZz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQ0pmQm91NW50YzB5RmxjWk1xSE1TVnYxa1pHZTBJdGJ1UlM5RWtvakhRTzMvOHJPMnVOMGhneDkwai91QlU4dnloVjN1TGhCcU1vL2VlMzlDU2FkY3FNdURBPQpYLVJlY2VpdmVkOiBieSAxMC4yMjMuMjAwLjc0IHdpdGggU01UUCBpZCBlMTBtcjEzNDU1OTI5d3JoLjEzMy4xNTE0NzE0NzUwNTQ4OwogU3VuLCAzMSBEZWMgMjAxNyAwMjowNTo1MCAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8MjAwOTc2NTU5Mi4yMjk3MjIxNy4xNTE0MTA5MjU2NjMyLkphdmFNYWlsLnJvb3RAc3Bvb2xlcjQtZzI3PgogPDE5MTc2NzExLk9zN3h4S2I4M2ZAZ2lnYT4gPENBUG95QnFRMXZNU1RhYncrQkxvLWI3N1ZRcEZockFrTTZHZVFzZENwdUoyNXdaVlg9d0BtYWlsLmdtYWlsLmNvbT4KIDwxMDA5ODI3ODEub3ZLaTlWR05yNUBnaWdhPgpJbi1SZXBseS1UbzogPDEwMDk4Mjc4MS5vdktpOVZHTnI1QGdpZ2E+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFN1biwgMzEgRGVjIDIwMTcgMTA6MDU6MzkgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk15LTdfUi12c3ZrRmdoYj1keUtMVkVfK1hQQ2UweUhrSjVBdW5jN0c0enNiUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtJTVBPUlRBTlRdIFJlOiBHaXQgbWlncmF0aW9uIG5leHQgc3RlcHMKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDg5ZTA4MjlkMjY4YTQ3ZWEwMDU2MWEwMDJiOSIKCi0tMDg5ZTA4MjlkMjY4YTQ3ZWEwMDU2MWEwMDJiOQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPbiBTdW4gMzEgRGVjIDIwMTcgYXQgMDA6MDIsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cm89CnRlOgoKPiBMZSBkaW1hbmNoZSAzMSBkPUMzPUE5Y2VtYnJlIDIwMTcsIDAwOjA0OjU5IENFVCBPbGl2aWVyIExhbXkgYSA9QzM9QTljcml0PQogOgo+ID4gd29ya3MgZmluZSAob24gbXkgbWFjaGluZSA6LSkgKQo+ID4gT1NYICsgamF2YSAxLjguMF8xMjEKPiBvaywgSSBoYWQgYSBkZWVwZXIgbG9vazogdGhlIElUIGV4cGVjdHMgYSB3YXJuaW5nIHRoYXQgZXhpc3RzIHdpdGggSmF2YSA4Cj4gKG1pc3NpbmcgQHBhcmFtKSBidXQgbm90IEphdmEgNyAobW9yZSBwZXJtaXNzaXZlIG9uIGRvY3VtZW50YXRpb24pCj4gSSBhZGRlZCBhIHNlcmlhbHdhcm46IHRoaXMgY2F1c2VzIGEgd2FybmluZyBpbiBKYXZhIDcgYWxzbywgdGhlbiBmaXhlcyB0aD0KZQo+IElUCj4KPiBUaGVyZSBpcyBubyBpc3N1ZSBvbiBteSBtYWNoaW5lIGFueSBtb3JlIDopCj4KPiA+Cj4gPiBXZWxsIFRCSCBJJ20gYSBiaXQgbG9zdCB3aXRoIEplbmtpbnMgcmVzdWx0IGRpc3BsYXkuLi4uCj4gPgo+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tYm94L2pvYi9tYXZlbi1qYXY9CmFkbwo+ID4gYy1wbHVnaW4vam9iL21hc3Rlci8KPiA+Cj4gPiB3aGF0IGFyZSBhbGwgdGhlIG9wZW4gdGFza3MgbGlua3M/Cj4gd2FzIHN1cHBvc2VkIHRvIGJlIGZpeGVkIGFmdGVyIEplbmtpbnMgcGx1Z2luIHVwZ3JhZGUgdGhpcyB3ZWVrCj4gQFN0ZXBoZW4gaXMgdGhpcyBhIGtub3duIGlzc3VlPwoKCkkgbWF5IGhhdmUgdG8gdHdlYWsgdGhlIHNoYXJlZCBsaWIgYWxzby4gSXQgd2lsbCBiZSBUdWVzZGF5IGJlZm9yZSBJIHR1cm4Kb24gbXkgTWFjCgoKPgo+ID4KPiA+IEknbSBldmVuIG1vcmUgbG9zdCBJZiBJIGxvb2sgYXQgYSBidWlsZCByZXN1bHQKPiA+Cj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvam9iL21hdmVuLWphdj0KYWRvCj4gPiBjLXBsdWdpbi9qb2IvbWFzdGVyLzMvIGNoYW5nZXMgYXJlIGR1cGxpY2F0ZWQKPiA+IGp1bml0IHJlc3VsdCBzYXlzIGZhaWx1cmUKPiA+Cj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvam9iL21hdmVuLWphdj0KYWRvCj4gPiBjLXBsdWdpbi9qb2IvbWFzdGVyLzMvdGVzdFJlcG9ydC8gYnV0IGxvb2tpbmcgYXQgZmFpbGVkIHRlc3QgcmVzdWx0IHNheT0Kcwo+ID4gcGFzc2VkCj4gPgo+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tYm94L2pvYi9tYXZlbi1qYXY9CmFkbwo+ID4KPiBjLXBsdWdpbi9qb2IvbWFzdGVyLzMvdGVzdFJlcG9ydC9vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMuamF2YWRvYy9KYXZhZG9jPQpSZXAKPiA+IG9ydFRlc3QvdGVzdEphdmFkb2NSZXNvdXJjZXMvCj4gPgo+ID4gQXMgSSBjYW4gdW5kZXJzdGFuZCBhbGwgYnVpbGQgbG9ncyAobGludXgvd2luZG93cyB3aXRoIGRpZmZlcmVudCBqZGtzKQo+IGFyZQo+ID4gdG90YWxseSBtaXhlZCB1cCBhbGwgdG9nZXRoZXIKPiA+Cj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvam9iL21hdmVuLWphdj0KYWRvCj4gPiBjLXBsdWdpbi9qb2IvbWFzdGVyLzMvY29uc29sZUZ1bGwgVEJIIGl0IGEgcmVhbGx5IGJpZyBwYWluIHRvIHJlYWQhISBJCj4gZG9uJ3QKPiA+IHdhbnQgdG8gc3BlbmQgaG91cnMgb24gdGhhdC4uLi4uIFNvIGFmdGVyIHdhc3RpbmcgYSBiaXQgb2YgdGltZSBpdCBsb29rPQpzCj4gPiB0aGUgYnVpbGQgaXMgZmFpbGluZyBvbiB3aW5kb3dzIG9ubHkKPiBpdCBzZWVtcyBpdCdzIGFub3RoZXIgY29tcGxldGVseSB1bnJlbGF0ZWQgaXNzdWUgdG8gbWluZSwgd2hpY2ggd2FzCj4gcmVsYXRlZCB0bwo+IEphdmEgNyBub3QgZ2V0dGluZyBhbnkgd2FybmluZyBvbiBhbiBJVCB0aGF0IGV4cGVjdGVkIGEgd2FybmluZwo+Cj4gPgo+ID4gW3dpbmRvd3MtamRrOF0gW1dBUk5JTkddIFRoZSBmb2xsb3dpbmcgYnVpbGRzIGZhaWxlZDpbd2luZG93cy1qZGs4XQo+ID4gW1dBUk5JTkddICogIGRldGVjdExpbmtzXHBvbS54bWwKPiA+Cj4gPgo+ID4gW3dpbmRvd3MtamRrN10gW1dBUk5JTkddIFRoZSBmb2xsb3dpbmcgYnVpbGRzIGZhaWxlZDoKPiA+Cj4gPiBbd2luZG93cy1qZGs3XSBbV0FSTklOR10gKiAgZGV0ZWN0TGlua3NccG9tLnhtbAo+ID4KPiA+Cj4gPiBIb25lc3RseSB0aGUgY3VycmVudCBqZW5raW5zIHJlc3VsdCBpcyBjb21wbGljYXRlZCB0byB1c2UuLi4uCj4gd2hlbiB0aGUgcmVzZXVsdCBpcyBhIHBhc3NpbmcgYnVpbGQsIGl0J3MgcGVyZmVjdCwgYnV0IEkgY29uZmlybSB0aGF0IHdoZT0Kbgo+IHRoZXJlIGlzIGEgZmFpbHVyZSwgaXQncyBhIHBhaW4gdG8gdW5kZXJzdGFuZCB3aGVyZSBpcyB0aGUgZmFpbHVyZSAod2hpY2gKPiBPUy8KPiBqZGssIHdoaWNoIHRlc3QpCj4gYW5kIGV2ZW50dWFsbHkgZGV0ZWN0IGlmIHRoZXJlIGFyZSBmYWxzZSBwb3NpdGl2ZXMgb24gc29tZSBjb25kaXRpb25zLi4uCgoKU28gdGhlcmUgYXJlIHR3byBpc3N1ZXMgaW1obzoKCjEuIEZhc3QgZmFpbCBraWxscyBvdGhlciBwYXJhbGxlbCBleGVjdXRpb25zIGluIHN1Y2ggYSB3YXkgdGhhdCB0aGV5IHJlcG9ydAphcyBmYWlsZWQuIEk9RTI9ODA9OTlkIGxpa2UgdGhlbSB0byBmbGFnIGFzIGFib3J0ZWQgaW5zdGVhZC4gVGhhdCB3b3VsZCBtYWs9CmUKaWRlbnRpZmljYXRpb24gZnJvbSB0aGUgc3RhZ2UgdmlldyBvciBibHVlIG9jZWFuIGVhc2llci4KCjIuIFRoZSBwYXJhbGxlbCBsb2dzLiBUaGlzIGlzIGEgcGlwZWxpbmUgZGVzaWduIGRlY2lzaW9uLiBZb3UgYXJlIGJldHRlcgpvZmYgdmlld2luZyBsb2dzIHRocm91Z2ggc3RhZ2UgdmlldyBvciBibHVlIG9jZWFuLgoKPgo+Cj4gPiBBbmQgYXMgZmFyIEkgY2FuIHNlZSBTTkFQU0hPVCBhcmUgbm90IGFueW1vcmUgZGVwbG95ZWQgd2hlcmVhcyB0aGV5IHdlcj0KZQo+ID4gZGVwbG95ZWQgcHJldmlvdXNseS4KPiA+IElNSE8gaXQncyB2ZXJ5IGNvbnZlbmllbnQgYXMgc29tZSB1c2VycyB0ZXN0IG91ciBmaXhlcy4uLi4KPiBAU3RlcGhlbiBhZGRpbmcgYXV0by1kZXBsb3kgZm9yIG1hc3RlciBicmFuY2ggY291bGQgbWFrZSBzZW5zZSwgaXNuJ3QgaXQ/Cj4KCkkgcmVhbGx5IHRoaW5rIGF1dG8tZGVwbG95IG9mIHNuYXBzaG90cyBpcyBhbiBhbnRpLXBhdHRlcm4uIElmIHdlIHdhbnQgaXQKdG8gYmUgZm9yIENJIG9ubHkgaW4gYSBDSSBkZWRpY2F0ZWQgcmVwbywgSSBjYW4gZmluZCB0aGF0IGFjY2VwdGFibGUuLi4gYnV0Cm90aGVyd2lzZSBJIHJlYWxseSBoYXRlIHRoZSBpZGVhLgoKCj4gPgo+ID4gQGhlcnZlIGRvIHlvdSBoYXZlIGFueSBsb2dzIHJlZ2FyZGluZyB0aGUgYnVpbGQgZmFpbGluZyBmb3IgeW91Lgo+ID4KPiA+IE9uIDMwIERlY2VtYmVyIDIwMTcgYXQgMjA6NTEsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPQo+Cj4gd3JvdGU6Cj4gPiA+IG1lcmdlIGRvbmU6IGNhbiB5b3UgY2hlY2sgaXQncyBhcyB5b3UgZXhwZWN0ZWQ/Cj4gPiA+Cj4gPiA+IG5vdGljZSB0aGF0IGlmIHlvdSBoYXZlIGZhaWxpbmcgSVQgb24gTUpBVkFET0MtNTA4IGxpa2UgSSBoYXZlIGxvY2FsbD0KeSwKPiA+ID4gaXQncwo+ID4gPiBub3QgdGhlIG1lcmdlIGJ1dCBpdCB3YXMgYWxyZWFkeSBwcmVzZW50IGJlZm9yZQo+ID4gPgo+ID4gPiBAT2xpdmllcjogSSBkb24ndCBrbm93IGluIHdoaWNoIGNvbmRpdGlvbnMgeW91IHRlc3RlZCBNSkFWQURPQy01MDgsCj4gYnV0IGl0Cj4gPiA+IGlzCj4gPiA+IGZhaWxpbmcgZm9yIG1lOiBMaW51eCtKYXZhIDcKPiA+ID4KPiA+ID4gUmVnYXJkcywKPiA+ID4KPiA+ID4gSGVydj1DMz1BOQo+ID4gPgo+ID4gPiBMZSBqZXVkaSAyOCBkPUMzPUE5Y2VtYnJlIDIwMTcsIDA5OjQ4OjMxIENFVCBIZXJ2PUMzPUE5IEJPVVRFTVkgYSA9QzM9Cj1BOWNyaXQgOgo+ID4gPiA+IG9uIG1hdmVuLWphdmFkb2MtcGx1Z2luOiB3aGF0IGFib3V0IG1lcmdpbmcgbWFzdGVyMiBicmFuY2ggaW50bwo+IG1hc3RlciwKPiA+ID4KPiA+ID4gbGlrZQo+ID4gPgo+ID4gPiA+IGlmIGl0IHdhcyBhIFBSPwo+ID4gPiA+IEluIGdlbmVyYWwsIEkgZG9uJ3QgbGlrZSB0aGlzIHdheSBvZiBkb2luZyBQUiBtZXJnZXMgKEkgcHJlZmVyCj4gcmViYXNpbmcKPiA+ID4KPiA+ID4gb3IKPiA+ID4KPiA+ID4gPiBjaGVycnkgcGlja2luZywgdG8gYXZvaWQgdGhlIG1lcmdlIGNvbW1pdCBhbmQgdGhlIHBhcmFsbGVsIGJyYW5jaGVzCj4gPiA+Cj4gPiA+IHN0YXlpbmcKPiA+ID4KPiA+ID4gPiBmb3IgZXZlciBpbiB0aGUgcmVwbyksIGJ1dCBzaW5jZSB0aGlzIHdheSBvZiBtZXJnaW5nIFBScyBpcyBvZnRlbgo+IHVzZWQKPiA+ID4gPiBieQo+ID4gPiA+IHRoZSB0ZWFtLCBsZXQncyB1c2UgdGhpcyB0ZWNobmlxdWUgb24gdGhlIGN1cnJlbnQgY2FzZSB3aGVyZSBpdCBtYWs9CmVzCj4gPiA+ID4gb3VyCj4gPiA+ID4gbGlmZSBlYXNpZXIKPiA+ID4gPgo+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4KPiA+ID4gPiBIZXJ2PUMzPUE5Cj4gPiA+ID4KPiA+ID4gPiBMZSBkaW1hbmNoZSAyNCBkPUMzPUE5Y2VtYnJlIDIwMTcsIDEzOjA0OjU2IENFVCBSb2JlcnQgU2Nob2x0ZSBhID0KPUMzPUE5Y3JpdCA6Cj4gPiA+ID4gPiBJIGRpZCB0aGUgYXNzdW1wdGlvbiB0aGF0IHlvdSBjYW4gaXNvbGF0ZSBhbGwgbWF2ZW4tamF2YWRvYy1wbHVnaT0Kbgo+ID4gPiA+ID4gY29tbWl0cy4KPiA+ID4gPiA+IElmIGl0IGlzIGZvciBhbGwgbWF2ZW4tcGx1Z2lucyBvciBub3RoaW5nLCB0aGVuIGl0IGlzIGEgZGlmZmVyZW50Cj4gPiA+Cj4gPiA+IHN0b3J5Lgo+ID4gPgo+ID4gPiA+ID4gT24gU3VuLCAyNCBEZWMgMjAxNyAxMDo1NDoxNiArMDEwMCwgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3JvdGU9CjoKPiA+ID4gPiA+ID4gSSdkIHN1Z2dlc3QgdG8gdHJ5IHRoZSBwcm9jZXNzIHRvIGEgcGVyc29uYWwgcGVyc29uYWwgcmVwbyBvbgo+IEdpdEh1Ygo+ID4gPgo+ID4gPiB0bwo+ID4gPgo+ID4gPiA+ID4gPiBzZWUgaWYgeW91J3JlIGFibGUgdG8gZ2V0IGEgYmV0dGVyIHJlc3VsdCBiZWZvcmUgaW52b2x2aW5nIG1hbnU9CmFsCj4gPiA+Cj4gPiA+IHdvcmsKPiA+ID4KPiA+ID4gPiA+ID4gZnJvbSBJTkZSQSAob24gbW9yZSB0aGFuIDYwIHJlcG9zLi4uKQo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiAoaXQncyBzYWQgdG8gc2VlIG5vYm9keSB0cnkgdG8gZXhwbGFpbiB3aGF0J3MgaGFwcGVubmluZyBvcgo+IGltcHJvdmUKPiA+ID4KPiA+ID4gdGhlCj4gPiA+Cj4gPiA+ID4gPiA+IGRvY3VtZW50ZWQgY29tbWFuZHMsIGp1c3QgZ2V0IHRvIGEgY29uY2x1c2lvbjogcmUtZG8gZXZlcnl0aGluZwo+IGFuZAo+ID4gPiA+ID4gPiBwcmF5KQo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBIZXJ2PUMzPUE5Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IC0tLS0tIE1haWwgb3JpZ2luYWwgLS0tLS0KPiA+ID4gPiA+ID4gRGU6ICJLYXJsIEhlaW56IE1hcmJhaXNlIiA8a2htYXJiYWlzZUBnbXguZGU+Cj4gPiA+ID4gPiA+ID1DMz04MDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwgIlJvYmVydAo+IFNjaG9sdGUiCj4gPiA+ID4gPiA+IDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KPiA+ID4gPiA+ID4gRW52b3k9QzM9QTk6IERpbWFuY2hlIDI0IEQ9QzM9QTljZW1icmUgMjAxNyAxMDo0Nzo0Mwo+ID4gPiA+ID4gPiBPYmpldDogUmU6IFtJTVBPUlRBTlRdIFJlOiBHaXQgbWlncmF0aW9uIG5leHQgc3RlcHMKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gSGksCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IE9uIDI0LzEyLzE3IDEwOjQwLCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPiA+ID4gPiA+ID4+IEhvdyBhYm91dCBhIGhhcmQgcmVzZXQgb3IgZHJvcHBpbmcgdGhlIHJlcG8gYW5kIGRvaW5nIGl0IGFsbAo+IG92ZXIKPiA+ID4gPiA+ID4+IGFnYWluPwo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBJZiBJIGNvcnJlY3RseSBzZWVuIHRoYXQgLi50aGVyZSBoYWQgbm8gY29tbWl0IHlldCBvbiB0aGUgbmV3IGc9Cml0Cj4gPiA+ID4gPiA+IHJlcG9zLi4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gU28gSSB0aGluayBpdCB3b3VsZCBiZSB0aGUgZWFzaWVzdCB3YXkgdG8gZG8gYXMgUm9iZXJ0IHN1Z2dlc3QKPiAuLi50bwo+ID4gPiA+ID4gPiByZWRvIG1pZ3JhdGlvbiBmb3IgdGhvc2UgcmVwb3MuLgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBLaW5kIHJlZ2FyZHMKPiA+ID4gPiA+ID4gS2FybCBIZWluego+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPj4gT24gV2VkLCAyMCBEZWMgMjAxNyAxMDo0MjozNiArMDEwMCwgSGVydj1DMz1BOSBCT1VURU1ZCj4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPj4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3JvdGU6Cj4gPiA+ID4gPiA+Pj4gSU5GUkEtMTU2NzkgZml4ZWQgYnkgaW5mcmEgdGVhbQo+ID4gPiA+ID4gPj4+IHRoZW4gSSByZS1ydW4gbWlncmF0ZS1wbHVnaW5zLnNoIHNjcmlwdCB0byBzcGxpdCB0aGUgc3ZuMmdpdAo+ID4gPgo+ID4gPiBtaXJyb3IgdG8KPiA+ID4KPiA+ID4gPiA+ID4+PiBwZXItCj4gPiA+ID4gPiA+Pj4gcGx1Z2luIGdpdCByZXBvCj4gPiA+ID4gPiA+Pj4gYW5kIEkgcHVzaGVkICJtYXN0ZXIyIiBicmFuY2hlcyBmb3IgbS1qYXZhZG9jLXAsIG0tc2l0ZS1wIGFuZAo+ID4gPgo+ID4gPiBtLXBkZi1wLAo+ID4gPgo+ID4gPiA+ID4gPj4+IHdoaWNoCj4gPiA+ID4gPiA+Pj4gd2VyZSB0aGUgMyBwbHVnaW5zIHdoaWNoIHN1ZmZlcmVkIGZyb20gbWlzc2luZyBjb21taXRzCj4gPiA+ID4gPiA+Pj4KPiA+ID4gPiA+ID4+PiBvbiBtLXNpdGUtcCBhbmQgbS1wZGYtcCwgSSdsbCBjaGVycnkgcGljayB0aGUgdW5pcXVlIGNvbW1pdAo+IHRoYXQKPiA+ID4KPiA+ID4gd2FzCj4gPiA+Cj4gPiA+ID4gPiA+Pj4gbWlzc2VkOgo+ID4gPiA+ID4gPj4+IG5vdCBhIGJpZyBkZWFsCj4gPiA+ID4gPiA+Pj4KPiA+ID4gPiA+ID4+PiBvbiBtLWphdmFkb2MtcCwgdGhlIHNpdHVhdGlvbiBpcyBtb3JlIGNvcGxleCwgc2luY2UgdGhlcmUgd2FzPQogYQo+ID4gPiA+ID4gPj4+IHJlbGVhc2UKPiA+ID4gPiA+ID4+Pgo+ID4gPiA+ID4gPj4+IEkgYWxzbyBub3RpY2VkIHRoYXQgSSBmb3Jnb3QgdG8gcHVzaCB0YWdzIHdoZW4gaW1wb3J0aW5nOiBJCj4gPiA+Cj4gPiA+IHN0YXJ0ZWQgdG8KPiA+ID4KPiA+ID4gPiA+ID4+PiBkbyAiZ2l0Cj4gPiA+ID4gPiA+Pj4gcHVzaCAtLXRhZ3MiLCBidXQgdGhlIHJlc3VsdCBkb2VzIG5vdCBsb29rIGFzIEkgZXhwZWN0ZWQ6IGl0Cj4gPiA+Cj4gPiA+IGNyZWF0ZXMgYQo+ID4gPgo+ID4gPiA+ID4gPj4+IGxvdCBvZgo+ID4gPiA+ID4gPj4+IHBhcmFsbGVsIGJyYW5jaGVzCj4gPiA+ID4gPiA+Pj4KPiA+ID4gPiA+ID4+PiBJJ2xsIG5lZWQgaGVscCBmcm9tIGdpdCBleHBlcnRzOiB3aGF0IGlzIGhhcHBlbmluZz8KPiA+ID4gPiA+ID4+Pgo+ID4gPiA+ID4gPj4+IEkgc3RvcHBlZCB0aGUgdGFncyBwdXNoIGhhbGYgdGhlIHdheSwgd2UnbGwgbmVlZCB0byBkZWNpZGUKPiB3aGF0IHRvCj4gPiA+ID4gPiA+Pj4gZG8uLi4KPiA+ID4gPiA+ID4+PiAoSSBrbmV3IEkgd2FzIG5vdCBhIGdpdCBleHBlcnQgYW5kIHRoZXJlIHdhcyBhIHJpc2sgZm9yCj4gc29tZXRoaW5nCj4gPiA+ID4gPiA+Pj4gd2VpcmQgbGlrZQo+ID4gPiA+ID4gPj4+IHdoYXQncyBjdXJyZW50bHkgaGFwcGVuaW5nLi4uKQo+ID4gPiA+ID4gPj4+Cj4gPiA+ID4gPiA+Pj4gQW55IGhpbnQ/Cj4gPiA+ID4gPiA+Pj4KPiA+ID4gPiA+ID4+PiBSZWdhcmRzLAo+ID4gPiA+ID4gPj4+Cj4gPiA+ID4gPiA+Pj4gSGVydj1DMz1BOQo+ID4gPiA+ID4gPj4+Cj4gPiA+ID4gPiA+Pj4gTGUgc2FtZWRpIDE2IGQ9QzM9QTljZW1icmUgMjAxNywgMTY6Mjg6NDggQ0VUIEhlcnY9QzM9QTkgQk9VVD0KRU1ZIGEgPUMzPUE5Y3JpdAo+IDoKPiA+ID4gPiA+ID4+Pj4gb2ssIEkgd2FzIGNvbmZ1c2VkIGJ5IHRoZSBkaWZmZXJlbnQgdGFrZXMgYXQgbS1qYXZhZG9jLXAgMy4wPQouMAo+ID4gPiA+ID4gPj4+Pgo+ID4gPiA+ID4gPj4+PiB5ZXMsIHN2bjJnaXQgbWlycm9yIGlzIHN0dWNrIFsxXSBhdCByMTgxNTY3NQo+ID4gPiA+ID4gPj4+Pgo+ID4gPiA+ID4gPj4+PiBJIGp1c3Qgb3BlbmVkIGFuIElORlJBIEppcmEgaXNzdWUKPiA+ID4gPiA+ID4+Pj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9JTkZSQS0xNTY3OQo+ID4gPiA+ID4gPj4+Pgo+ID4gPiA+ID4gPj4+PiBvbmNlIHRoZSBzdm4yZ2l0IG1pcnJvciB3aWxsIGJlIHVwZGF0ZWQsIHdlJ2xsIGhhdmUgdG8gcmUtcnU9Cm4KPiB0aGUKPiA+ID4gPiA+ID4+Pj4gc3BsaXQKPiA+ID4gPiA+ID4+Pj4gc2NyaXB0cyBhbmQgY2hlcnJ5IHBpY2sgdGhlIG1pc3NpbmcgY29tbWl0cwo+ID4gPiA+ID4gPj4+Pgo+ID4gPiA+ID4gPj4+PiBSZWdhcmRzLAo+ID4gPiA+ID4gPj4+Pgo+ID4gPiA+ID4gPj4+PiBIZXJ2PUMzPUE5Cj4gPiA+ID4gPiA+Pj4+Cj4gPiA+ID4gPiA+Pj4+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvY29tbWl0cy90cnVuawo+ID4gPiA+ID4gPj4+Pgo+ID4gPiA+ID4gPj4+PiBMZSBzYW1lZGkgMTYgZD1DMz1BOWNlbWJyZSAyMDE3LCAxMzowMTowNSBDRVQgUm9iZXJ0IFNjaG9sdGU9CiBhCj4gPUMzPUE5Y3JpdCA6Cj4gPiA+ID4gPiA+Pj4+ID4gSSB3YXMgdHJpZ2dlcmVkIGJ5IHNvbWUgZmFpbGluZyB1bml0IHRlc3RzLCB3aGljaCBzaG91bGQKPiBoYXZlCj4gPiA+Cj4gPiA+IGJlZW4KPiA+ID4KPiA+ID4gPiA+ID4+Pj4gc29sdmVkCj4gPiA+ID4gPiA+Pj4+Cj4gPiA+ID4gPiA+Pj4+ID4gaW4gbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAKPiA+ID4gPiA+ID4+Pj4gPgo+ID4gPiA+ID4gPj4+PiA+IE15IGxhc3QgY29tbWl0IGFjY29yZGluZyB0byBHSVQgd2FzIG5vdmVtYmVyIDE4dGgKPiA+ID4gPiA+ID4+Pj4gPiBNeSBsYXN0IGNvbW1pdCBhY2NvcmRpbmcgdG8gU1ZOIHdhcyBkZWNlbWJlciAzcmQKPiA+ID4gPiA+ID4+Pj4gPgo+ID4gPiA+ID4gPj4+PiA+IGNvbXBhcmluZyBzdm5sb2cgd2l0aCBnaXRsb2cgbW9zdCBvZiB0aGVzZSBjb21taXRzIGFyZSBsb3M9CnQ6Cj4gPiA+ID4gPiA+Pj4+ID4KPiA+ID4gPiA+ID4+Pj4gPiBtb3ZlZCB0byBnaXQKPiA+ID4gPiA+ID4+Pj4gPiAtLS0tCj4gPiA+ID4gPiA+Pj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIGZvciBuZXh0IGRldmVsb3BtZW50Cj4gaXRlcmF0aW9uCj4gPiA+ID4gPiA+Pj4+ID4gLS0tLQo+ID4gPiA+ID4gPj4+PiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSByZWxlYXNlCj4gPiA+Cj4gPiA+IG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wCj4gPiA+Cj4gPiA+ID4gPiA+Pj4+ID4gLS0tLQo+ID4gPiA+ID4gPj4+PiA+IFtNSkFWQURPQy00OThdICJtb2R1bGUgbm90IGZvdW5kIiB3aGVuIEphdmEgOSBtb2R1bGUtaW5mbwo+ID4gPgo+ID4gPiBwcmVzZW50Cj4gPiA+Cj4gPiA+ID4gPiA+Pj4+ID4gU3VwcG9ydCBhZ2dyYXRlZCBqYXZhZG9jCj4gPiA+ID4gPiA+Pj4+ID4gLS0tLQo+ID4gPiA+ID4gPj4+PiA+IFNraXAgc2V2ZXJhbCB1bml0dGVzdHMgZm9yIEphdmE5Cj4gPiA+ID4gPiA+Pj4+ID4gLS0tLQo+ID4gPiA+ID4gPj4+PiA+IEpESy04MDMyMjA1IHdhcyBjbG9zZWQgYXMgbm90IGFuIGlzc3VlLCBzbyBub3Qgc29sdmVkIGluCj4gSmF2YTkuCj4gPiA+ID4gPiA+Pj4+ID4gTmVlZCB0byByZXZpZXcgdGhlIGNvbmNsdXNpb24KPiA+ID4gPiA+ID4+Pj4gPiAtLS0tCj4gPiA+ID4gPiA+Pj4+ID4gVXBncmFkZSBtb2NraXRvIHRvIHJlbW92ZSB3YXJuaW5nIGFib3V0IGlsbGVnYWwgcmVmbGVjdGl2ZQo+ID4gPgo+ID4gPiBhY2Nlc3MKPiA+ID4KPiA+ID4gPiA+ID4+Pj4gPiAtLS0tCj4gPiA+ID4gPiA+Pj4+ID4gSW1wcm92ZSBUZXN0SmF2YWRvY1JlcG9ydFRlc3QjdGVzdFRlc3RKYXZhZG9jCj4gPiA+ID4gPiA+Pj4+ID4gSjggd2FybnMgYW5kIGNvbnRpbnVlcyB3aXRoIG1pc3NpbmcgZGVwZW5kZW5jeSwgSjkgZmFpbHMuCj4gPiA+ID4gPiA+Pj4+ID4gSW4gZmFjdCB0ZXN0IHdhcyB3cm9uZzogZGVwZW5kZW5jeSBzaG91bGQgaGF2ZSBiZWVuIG9uCj4gPiA+ID4gPiA+Pj4+ID4gY2xhc3NwYXRoCj4gPiA+ID4gPiA+Pj4+ID4gLS0tLQo+ID4gPiA+ID4gPj4+PiA+IHVuaXR0ZXN0IHNob3VsZCBwcmVmZXIgSkFWQV9IT01FIHdoZW4gZXhlY3V0aW5nIGZyb20gY21kbGk9Cm5lCj4gPiA+ID4gPiA+Pj4+ID4gV2hlbiBydW5uaW5nIHdpdGggSmF2YTkrIG5vIG5lZWQgdG8gc3dpdGNoIGZyb20ganJlIHRvIGpkawo+ID4gPiA+ID4gPj4+PiA+IGRpcmVjdG9yeQo+ID4gPiA+ID4gPj4+PiA+IChqZXAyMjApCj4gPiA+ID4gPiA+Pj4+ID4gLS0tLQo+ID4gPiA+ID4gPj4+PiA+IE1KQVZBRE9DLTUwMiBVcGRhdGUgREVGQVVMVF9KQVZBX0FQSV9MSU5LUwo+ID4gPiA+ID4gPj4+PiA+IC0tLS0KPiA+ID4gPiA+ID4+Pj4gPiBzZXNzaW9uIGlzIHJlcXVpcmVkIHBhcmFtZXRlciwgc28gY2Fubm90IGJlIG51bGwuIEZpeAo+IHJlbGF0ZWQKPiA+ID4gPiA+ID4+Pj4KPiA+ID4gPiA+ID4+Pj4gdW5pdHRlc3RzCj4gPiA+ID4gPiA+Pj4+Cj4gPiA+ID4gPiA+Pj4+ID4gLS0tLQo+ID4gPiA+ID4gPj4+PiA+IEFkZCBwcm9qZWN0L2FydGlmYWN0IGtleSB0byBzZXQgb2Ygc291cmNlUGF0aHMgdG8gcmVjb2duaXo9CmUKPiA+ID4KPiA+ID4gcmVhY3Rvcgo+ID4gPgo+ID4gPiA+ID4gPj4+PiA+IHByb2plY3RzIHZlcnN1cyBkZXBlbmRlbmNpZXMKPiA+ID4gPiA+ID4+Pj4gPiAtLS0tCj4gPiA+ID4gPiA+Pj4+ID4gR3JvdXAgc2V0cyBvZiBzb3VyY2VwYXRocyBwZXIgcHJvamVjdCwgaW4gcHJlcGFyZSBvZiB1c2FnZQo+IG9mCj4gPiA+ID4gPiA+Pj4+ID4gbW9kdWxlLXNvdXJjZS1wYXRoLgo+ID4gPiA+ID4gPj4+PiA+IC0tLS0KPiA+ID4gPiA+ID4+Pj4gPiBTd2l0Y2ggZnJvbSBMaXN0IHRvIENvbGxlY3Rpb24gdG8gbWFrZSBpdCBlYXNpZXIgdG8gdXNlIFNlPQp0cwo+ID4gPgo+ID4gPiB3aGVuCj4gPiA+Cj4gPiA+ID4gPiA+Pj4+ID4gcHJlZmVycmVkCj4gPiA+ID4gPiA+Pj4+ID4gLS0tLQo+ID4gPiA+ID4gPj4+PiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSBmb3IgbmV4dCBkZXZlbG9wbWVudAo+IGl0ZXJhdGlvbgo+ID4gPiA+ID4gPj4+PiA+IC0tLS0KPiA+ID4gPiA+ID4+Pj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgcmVsZWFzZQo+ID4gPgo+ID4gPiBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+ID4gPgo+ID4gPiA+ID4gPj4+PiA+IC0tLS0KPiA+ID4gPiA+ID4+Pj4gPgo+ID4gPiA+ID4gPj4+PiA+Cj4gPiA+ID4gPiA+Pj4+ID4KPiA+ID4gPiA+ID4+Pj4gPgo+ID4gPiA+ID4gPj4+PiA+IE9uIFNhdCwgMTYgRGVjIDIwMTcgMTI6NTM6MjMgKzAxMDAsIEhlcnY9QzM9QTkgQk9VVEVNWQo+ID4gPiA+ID4gPj4+Pgo+ID4gPiA+ID4gPj4+PiA8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID4gPiA+ID4gPj4+Pgo+ID4gPiA+ID4gPj4+PiA+IHdyb3RlOgo+ID4gPiA+ID4gPj4+PiA+ID4gbG9va2luZyBhdCBjb21taXRzQCBjb250ZW50IGh0dHBzOi8vbGlzdHMuYXBhY2hlLm9yZy9saXM9CnQKPiAuCj4gPiA+Cj4gPiA+IGh0bWw/Cj4gPiA+Cj4gPiA+ID4gPiA+Pj4+ID4gPiBjb21taXRzQG1hdmVuLmFwYWNoZS5vcmcgd2l0aCBzdWJqZWN0IGNvbnRhaW5pbmcKPiA+ID4gPiA+ID4+Pj4KPiA+ID4gPiA+ID4+Pj4gIm1hdmVuL3BsdWdpbnMvdHJ1bmsiCj4gPiA+ID4gPiA+Pj4+Cj4gPiA+ID4gPiA+Pj4+ID4gPiBhbmQgcGx1Z2lucyBzdm4yZ2l0IG1pcnJvcgo+ID4gPiA+ID4gPj4+PiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL2NvbW1pdHMvCj4gPiA+ID4gPiA+Pj4+ID4gPiB0cnVuawo+ID4gPiA+ID4gPj4+PiA+ID4KPiA+ID4gPiA+ID4+Pj4gPiA+IG9ubHkgMSBjb21taXQgaXMgbWlzc2luZzogbXkgbGF0ZXN0IGNvbW1pdCBvbgo+ID4gPgo+ID4gPiBtYXZlbi1zaXRlLXBsdWdpbgo+ID4gPgo+ID4gPiA+ID4gPj4+PiA+ID4gKHRoZSBsYXN0IGNvbW1pdCBmb3IgR2l0IG1pZ3JhdGlvbiBpcyBub3QgdXNlZnVsKQo+ID4gPiA+ID4gPj4+PiA+ID4KPiA+ID4gPiA+ID4+Pj4gPiA+Cj4gPiA+ID4gPiA+Pj4+ID4gPiBTYW1lIG9uIHNoYXJlZCBzaG93ZWQgbm8gbWlzc2luZyBjb21taXQuCj4gPiA+ID4gPiA+Pj4+ID4gPgo+ID4gPiA+ID4gPj4+PiA+ID4KPiA+ID4gPiA+ID4+Pj4gPiA+IHdoYXQgbGF0ZXN0IGNvbW1pdCBvZiBtYXZlbi1qYXZhZG9jLXBsdWdpbiBhcmUgeW91IGxvb2tpPQpuZwo+ID4gPgo+ID4gPiBmb3I/Cj4gPiA+Cj4gPiA+ID4gPiA+Pj4+ID4gPiBSZWdhcmRzLAo+ID4gPiA+ID4gPj4+PiA+ID4KPiA+ID4gPiA+ID4+Pj4gPiA+IEhlcnY9QzM9QTkKPiA+ID4gPiA+ID4+Pj4gPiA+Cj4gPiA+ID4gPiA+Pj4+ID4gPiBMZSBzYW1lZGkgMTYgZD1DMz1BOWNlbWJyZSAyMDE3LCAxMTo1NjozMSBDRVQgUm9iZXJ0IFNjaD0Kb2x0ZSBhCj4gPiA+Cj4gPiA+ID1DMz1BOWNyaXQgOgo+ID4gPiA+ID4gPj4+PiA+ID4+IEZvciBldmVyeWJvZHkganVzdCBhIHdhcm5pbmcgSSBmYWNlZCB0b2RheToKPiA+ID4gPiA+ID4+Pj4gPiA+PiBJZiB5b3Ugc3dpdGNoIHRvIHRoZSBnaXQgcmVwb3MsIHBsZWFzZSBtYWtlIHN1cmUgYWxsCj4gY29tbWl0cwo+ID4gPgo+ID4gPiBhcmUKPiA+ID4KPiA+ID4gPiA+ID4+Pj4gPiA+PiBtaWdyYXRlZC4KPiA+ID4gPiA+ID4+Pj4gPiA+PiBJIG5vdGljZWQgdGhlIGxhdGVzdCBjb21taXRzIG9mIHRoZSBtYXZlbi1qYXZhZG9jLXBsdWdpPQpuCj4gZ290Cj4gPiA+ID4gPiA+Pj4+Cj4gPiA+ID4gPiA+Pj4+IGxvc3QuCj4gPiA+ID4gPiA+Pj4+Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gdGhhbmtzLAo+ID4gPiA+ID4gPj4+PiA+ID4+IFJvYmVydAo+ID4gPiA+ID4gPj4+PiA+ID4+Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gT24gU2F0LCAwOSBEZWMgMjAxNyAxNzowNjowOSArMDEwMCwgU3RlcGhlbiBDb25ub2xseQo+ID4gPiA+ID4gPj4+PiA+ID4+Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiA+ID4gPj4+PiA+ID4+ID4gSSBzZWUgd2UgaGF2ZSBhIGxhcmdlIG51bWJlciBvZiByZXBvcyBub3cgb24gZ2l0Ym94IDs9Ci0pCj4gPiA+ID4gPiA+Pj4+ID4gPj4gPgo+ID4gPiA+ID4gPj4+PiA+ID4+ID4gT24gVGh1IDcgRGVjIDIwMTcgYXQgMDc6MDAsIEhlcnY9QzM9QTkgQk9VVEVNWQo+ID4gPiA+ID4gPj4+Pgo+ID4gPiA+ID4gPj4+PiA8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID4gPiA+ID4gPj4+Pgo+ID4gPiA+ID4gPj4+PiA+ID4+IHdyb3RlOgo+ID4gPiA+ID4gPj4+PiA+ID4+ID4+IG9rLCBJIGRpZG4ndCB1cGRhdGUgbXkgcmVwbyBjbG9uZTogbm93IHRoZSBydW4taXRzCj4gPiA+Cj4gPiA+IHByb2ZpbGUgaXMKPiA+ID4KPiA+ID4gPiA+ID4+Pj4gPiA+PiBhY3RpdmF0ZWQKPiA+ID4gPiA+ID4+Pj4gPiA+Pgo+ID4gPiA+ID4gPj4+PiA+ID4+ID4+IHRoZW4gdGhlIHBsYW4gc2hvdWxkIGp1c3QgY29uZmlybSAiaXQgd29ya3MhIiA6KQo+ID4gPiA+ID4gPj4+PiA+ID4+ID4+Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gYW5kIGZpbmQgd2hpY2ggam9icyBhcmUgc3BlY2lhbCwgbGlrZSBtYXZlbi1kaXN0LXRvbz0KbAo+ID4gPgo+ID4gPiAod2hpY2gKPiA+ID4KPiA+ID4gPiA+ID4+Pj4gaGFzIHRvCj4gPiA+ID4gPiA+Pj4+Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gYmUKPiA+ID4gPiA+ID4+Pj4gPiA+Pgo+ID4gPiA+ID4gPj4+PiA+ID4+ID4+IHNjaGVkdWxlZCBkYWlseSBpbnN0ZWFkIG9mIGNvZGUgY2hhbmdlLCBhbmQgb25lCj4gcGxhdGZvcm0KPiA+ID4gPiA+ID4+Pj4gPiA+PiA+PiBvbmx5KQo+ID4gPiA+ID4gPj4+PiA+ID4+ID4+Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gUmVnYXJkcywKPiA+ID4gPiA+ID4+Pj4gPiA+PiA+Pgo+ID4gPiA+ID4gPj4+PiA+ID4+ID4+IEhlcnY9QzM9QTkKPiA+ID4gPiA+ID4+Pj4gPiA+PiA+Pgo+ID4gPiA+ID4gPj4+PiA+ID4+ID4+IExlIG1lcmNyZWRpIDYgZD1DMz1BOWNlbWJyZSAyMDE3LCAyMzo1ODo0NSBDRVQgU3RlcGg9CmVuCj4gPiA+Cj4gPiA+IENvbm5vbGx5IGEKPiA+ID4KPiA+ID4gPiA+ID4+Pj4gPUMzPUE5Y3JpdCA6Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiBPbiBXZWQgNiBEZWMgMjAxNyBhdCAyMjozOCwgSGVydj1DMz1BOSBCT1VURU1ZCj4gPiA+ID4gPiA+Pj4+Cj4gPiA+ID4gPiA+Pj4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPiA+ID4gPiA+Pj4+Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gd3JvdGU6Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IE5vdyB0aGF0IHdlIGhhdmUgMiBBU0YgT3JnYW5pemF0aW9uIEplbmtpbnMgam9icwo+IChvbmUKPiA+ID4KPiA+ID4gZm9yCj4gPiA+Cj4gPiA+ID4gPiA+Pj4+IGdpdGJveAo+ID4gPiA+ID4gPj4+Pgo+ID4gPiA+ID4gPj4+PiA+ID4+IFsxXQo+ID4gPiA+ID4gPj4+PiA+ID4+Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gYW5kCj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4KPiA+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gb25lCj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IGZvciBnaXQtd2lwOiB0aGFuayB5b3UgU3RlcGhlbikgYW5kIHRoYXQgaXQgbG9vaz0Kcwo+ID4gPgo+ID4gPiBxdWl0ZQo+ID4gPgo+ID4gPiA+ID4gPj4+PiA+ID4+IHN1Y2Nlc3NmdWwsCj4gPiA+ID4gPiA+Pj4+ID4gPj4KPiA+ID4gPiA+ID4+Pj4gPiA+PiA+PiBsZXQncwo+ID4gPiA+ID4gPj4+PiA+ID4+ID4+Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IHBsYW4KPiA+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gdGhlIG5leHQgc3RlcHMuCj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IEhlcmUgaXMgd2hhdCBJIHNlZToKPiA+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gMS4gcmVtb3ZhbCBvZiBoYW5kLWRlZmluZWQgSmVua2lucyBqb2JzIHRoYXQgYXJlCj4gbm93Cj4gPiA+ID4gPiA+Pj4+Cj4gPiA+ID4gPiA+Pj4+IGR1cGxpY2F0ZXMKPiA+ID4gPiA+ID4+Pj4KPiA+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gMi4gcHJlcGFyYXRpb24gb2YgdGhlIDYwIG5ldyBlbXB0eSBnaXQgcmVwb3MgZm9yCj4gPiA+Cj4gPiA+IHNoYXJlZCAmCj4gPiA+Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IHBsdWdpbnMKPiA+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4KPiA+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gMy4gbWlncmF0aW9uIG9mIHRoZSAxIHNoYXJlZCBjb21wb25lbnQgYW5kIDEKPiBwbHVnaW4KPiA+ID4KPiA+ID4gdXNpbmcKPiA+ID4KPiA+ID4gPiA+ID4+Pj4gPiA+PiA+PiBtaWdyYXRlLSouc2gKPiA+ID4gPiA+ID4+Pj4gPiA+PiA+Pgo+ID4gPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBzY3JpcHRzCj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IFszXSB0byB0ZXN0IGFuZCBldmVudHVhbGx5IHJld29yayB0aGUgSmVua2luc2ZpbD0KZQo+IChJCj4gPiA+ID4gPiA+Pj4+Cj4gPiA+ID4gPiA+Pj4+IHN1cHBvc2UgaXQKPiA+ID4gPiA+ID4+Pj4KPiA+ID4gPiA+ID4+Pj4gPiA+PiB3aWxsCj4gPiA+ID4gPiA+Pj4+ID4gPj4KPiA+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gcmVxdWlyZQo+ID4gPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBzb21lIGxpdHRsZSBjaGFuZ2UsIHRvIHJ1biBhZGQgInJ1bi1pdHMiIHByb2ZpbGU9CikKPiA+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiBBcyBmYXIgYXMgSSByZWNhbGwsIEkgYWRkZWQgLVArcnVuLWl0cyBhbHJlYWR5Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPgo+ID4gPiA+ID4gPj4+PiA+ID4+ID4+ID4gRm9yIHRoZSBwbHVnaW4sIEknZCBsaWtlIHRvIGRvIHRoZSBqb2IgZm9yCj4gPiA+ID4gPiA+Pj4+Cj4gPiA+ID4gPiA+Pj4+IG1hdmVuLXNpdGUtcGx1Z2luLAo+ID4gPiA+ID4gPj4+Pgo+ID4gPiA+ID4gPj4+PiA+ID4+IHNpbmNlIHdlCj4gPiA+ID4gPiA+Pj4+ID4gPj4KPiA+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gZXhwZWN0Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IHRvIHJlbGVhc2UgaXQgc29vbi4KPiA+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gRm9yIHRoZSBzaGFyZWQgY29tcG9uZW50LCBJIGRvbid0IGtub3cgaWYgdGhlcmUKPiBpcyBhCj4gPiA+Cj4gPiA+IGJlc3QKPiA+ID4KPiA+ID4gPiA+ID4+Pj4gPiA+PiBjYW5kaWRhdGUKPiA+ID4gPiA+ID4+Pj4gPiA+Pgo+ID4gPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiA0LiBvbmNlIHByZXZpb3VzIHN0ZXAgaXMgb2ssIGRvIHRoZSBmdWxsCj4gbWlncmF0aW9uOgo+ID4gPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBpZgo+ID4gPiA+ID4gPj4+Pgo+ID4gPiA+ID4gPj4+PiB0aGVyZSBhcmUKPiA+ID4gPiA+ID4+Pj4KPiA+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gdm9sdW50ZWVycwo+ID4gPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBmb3IgaGVscGluZywgdGhhdCB3b3VsZCBiZSBncmVhdCwgc2luY2UKPiBwb3B1bGF0aW5nIDYwCj4gPiA+Cj4gPiA+IGdpdAo+ID4gPgo+ID4gPiA+ID4gPj4+PiByZXBvcwo+ID4gPiA+ID4gPj4+Pgo+ID4gPiA+ID4gPj4+PiA+ID4+ID4+IHdvbid0Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gYmUKPiA+ID4gPiA+ID4+Pj4gPiA+PiA+Pgo+ID4gPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiByZWFsbHkgZnVuLi4uCj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IEFuZCBhcyBwYXJ0IG9mIDYwIGVtcHR5IGdpdCByZXBvcyBjcmVhdGlvbiwgSQo+IHByb3Bvc2UKPiA+ID4KPiA+ID4gdG8KPiA+ID4KPiA+ID4gPiA+ID4+Pj4gbWlncmF0ZQo+ID4gPiA+ID4gPj4+Pgo+ID4gPiA+ID4gPj4+PiA+ID4+IHRoZQo+ID4gPiA+ID4gPj4+PiA+ID4+Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+ICJHb29nbGUKPiA+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gcmVwbyBtYW5pZmVzdCIgbWF2ZW4tYWdncmVnYXRvciBbNF0gdG8gQVNGOiBteQo+ID4gPgo+ID4gPiBwZXJzb25hbAo+ID4gPgo+ID4gPiA+ID4gPj4+PiB1c2UgaGFzCj4gPiA+ID4gPiA+Pj4+Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gYmVlbgo+ID4gPiA+ID4gPj4+PiA+ID4+Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gcXVpdGUKPiA+ID4gPiA+ID4+Pj4gPiA+PiA+Pgo+ID4gPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBzdWNjZXNzZnVsLCBJIGhvcGUgaXQncyB0aGUgc2FtZSBmb3Igb3RoZXJzLgo+IFBlcmhhcHMKPiA+ID4gPiA+ID4+Pj4KPiA+ID4gPiA+ID4+Pj4gdGhlcmUgYXJlCj4gPiA+ID4gPiA+Pj4+Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gYmV0dGVyCj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4KPiA+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gaWRlYXMKPiA+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gZm9yIGl0cyBuYW1lOiBtYXZlbi1hZ2dyZWdhdG9yCj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IEFueSBvdGhlciBpZGVhPyBhbnkgb2JqZWN0aW9uPwo+ID4gPiA+ID4gPj4+PiA+ID4+ID4+ID4gPgo+ID4gPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBSZWdhcmRzLAo+ID4gPiA+ID4gPj4+PiA+ID4+ID4+ID4gPgo+ID4gPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBIZXJ2PUMzPUE5Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IFsxXQo+ID4gPiA+ID4gPj4+Pgo+ID4gPiA+ID4gPj4+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC8KPiA+ID4gPiA+ID4+Pj4KPiA+ID4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gWzJdCj4gPiA+ID4gPiA+Pj4+Cj4gPiA+ID4gPiA+Pj4+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4td2lwLwo+ID4gPiA+ID4gPj4+Pgo+ID4gPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBbM10KPiA+ID4gPiA+ID4+Pj4gPiA+Pgo+ID4gPiA+ID4gPj4+PiA+ID4+Cj4gaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy92aWV3dmMvbWF2ZW4vc2FuZGJveC90cnVuay9zY3JpcHRzLwo+ID4gPgo+ID4gPiBnaXQvCj4gPiA+Cj4gPiA+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IFs0XSBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tYWdncmVnYXRvcgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4KPiA+ID4gLS0tLS0tLS0tCj4gPiA+Cj4gPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+Cj4gPiA+IC0tLS0tLS0tLQo+ID4gPgo+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPgo+ID4gPiA+ID4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4KPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotLQo+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPgo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4gLS0KU2VudCBmcm9tIG15IHBob25lCgotLTA4OWUwODI5ZDI2OGE0N2VhMDA1NjFhMDAyYjktLQoKRnJvbSBkZXYtcmV0dXJuLTEyMzkyNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gU2VwIDEwIDE3OjA3OjQ2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzkyNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA1QTJENzFBQzVGCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMTc6MDc6NDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyMjc5OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBTZXAgMjAxNyAxNzowNzo0MSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjI3MTcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgU2VwIDIwMTcgMTc6MDc6NDAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMjcwNSBpbnZva2VkIGJ5IHVpZCA5OSk7IDEwIFNlcCAyMDE3IDE3OjA3OjM5IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxMCBTZXAgMjAxNyAxNzowNzozOSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDVBNUM3MUEyQzgzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAxNzowNzozOSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuMzc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuMzc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgRlNRa1VqWnBYUi1RIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAxMCBTZXAgMjAxNyAxNzowNzozOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXVhMC1mMTgyLmdvb2dsZS5jb20gKG1haWwtdWEwLWYxODIuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNy4xODJdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQUMzMTk1RjZCRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMTc6MDc6MzcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdWEwLWYxODIuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgczE1c284OTkwOTM5dWFnLjEKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAxMDowNzozNyAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1GcCtsWFU0U0VwUTdtOHluVnJBTWlOOVk5eFdYQTFUajFnaGhPWkFzM2RnPTsKICAgICAgICBiPU1yUDdKYXBoalFGUm12d292YUNZK0Y1Z2ZtVUZyeHA3ZXRrWVF0NEgzTllMQnVCNGlsLzV2NTBVdHoyWC9QLytkdwogICAgICAgICBxL3FhR3R4QUptWFlPWlVDVlhtd2lOaldLemZXLzd1OWN2UDlQT1p3cGRoYVlNZXFNMFNwbzRwSFcra3RSMVp1SURWRgogICAgICAgICAyd1FMR2lVMjhldEJibWlySHRRMUMxUm14NzlNRzRudjlyWnlvYmZUVG5oZ05La1pkbDROTzV2SytIUjJiYTdBYUp0UwogICAgICAgICBjOWtYNDNTTTF3Yi80cng0TUlDV2NldUR4eWVUUEo2TEtOQTZWaDFIU20yT3NabWtvSU1SVFlNZHhYUGh3N1dhOFp3dwogICAgICAgICBNQW9LckZmQjYvU2tTQ3gzRER6ZlJSN0kxRnBucUVzczRNUXJ0ai9JQzQyQnFDeFozSVM3Y2lUTkpaMkx5LzRNSXdaZAogICAgICAgICA2N0tBPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1GcCtsWFU0U0VwUTdtOHluVnJBTWlOOVk5eFdYQTFUajFnaGhPWkFzM2RnPTsKICAgICAgICBiPXRBQldYWUEvZHNnVnhvUVVMeElsYUhlRHluT2VyemtIR1NWYVVTOEJkaEFXdHZBTW8wMjd2ZThoMllqbFVzc1AyTQogICAgICAgICB6WTRjcEpxMjBSM3NLWUVGYmZReVhmdjBKVktwVjhkV2V6cmtPbVdaSGYxdDVOZ3dVZVlweHMyTThObDYvQjAzamJCeAogICAgICAgICBFcThvWmZOVEhuM3ZjMDR5RjhWQW5pUVFFMTdYbXArWlV2UndrL0xHRlFBOFJoL1Jtc0p5UEVyRlQ5S1FxOHFybEZ0UgogICAgICAgICByU0M2d1UxRFZnelExWGd3bEE4TGcwa2c2SUNjV3c1RTRGUmI4T25qQUtNNVIvalpiUUh2LzV2QzRjM2d5NU1LOUxNbQogICAgICAgICBhbEZWc05xdkU3MzU1RStpUFBuNmZSUzRGOEMzckxUdXUyVy9YaWN5RWFQekxKcERqOUdPYzJ5WjBsRmhZZ3g1cG5aZwogICAgICAgICBYMWxRPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVnODJ6ekpVbHI1ejVESGJtNERPUlZ0RkRYd1ZqREkrL3ZuYjlIMmFOMWgzeFBpdjU1LwoJdlM0VUJoaXRLeHd4bjZ0eUdpVVdoS3lXdk96R0lHNnUKWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFES0NOYjdkSGxxWXlzelg4eEFaejlvSHYxNGljWDhrY2srZ2dsdmtmR0ZBbS9hcE5yZ2MvUWVpLzFGOHFoNisxbngrNkljMXZkbEcwMUpJZWFkVS9SdG12Y289ClgtUmVjZWl2ZWQ6IGJ5IDEwLjE3Ni4zMC43IHdpdGggU01UUCBpZCBtN21yMzMzNDQ5NHVhay4xMzkuMTUwNTA2MzI1MDU0MDsgU3VuLAogMTAgU2VwIDIwMTcgMTA6MDc6MzAgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPENBK25Qbk16ejJ1Nj1jZFU1K2gxSHN2V2hTNENUNXprWXpyV0NFb3ctRzhDenYrbVkyZ0BtYWlsLmdtYWlsLmNvbT4KIDxDQStuUG5Neit2SGtrbXMxM0VDaHc1a0dCblhEazkzX0hyNUY3NitEZXRibnBxZmlHWHdAbWFpbC5nbWFpbC5jb20+CiA8b3AueTZjeXhqZ2NrZGtocnJAZGVza3RvcC0ya2hzazQ0PiA8Q0FDWmtYUHdPRVgrZDVNNzZVMk0tVW1zVmtrTGNQSENlQ1R0MlNKazRmeXhSYkgybXlBQG1haWwuZ21haWwuY29tPgogPENBRk5DVS0tTE9PTTQxbzhxSjNzeHRBYW1acTNERFc9MW1VRzhPVXRRQmZPTlM5djhpUUBtYWlsLmdtYWlsLmNvbT4KSW4tUmVwbHktVG86IDxDQUZOQ1UtLUxPT000MW84cUozc3h0QWFtWnEzRERXPTFtVUc4T1V0UUJmT05TOXY4aVFAbWFpbC5nbWFpbC5jb20+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFN1biwgMTAgU2VwIDIwMTcgMTc6MDc6MTkgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk15OS1NUWZjV3ZyM3N4Nm9lY28tOUFxYTl4eFJFS0RTci1PTTlINGo4LTN4d0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtSRVNVTFRdIFJlOiBQbGVhc2UgcmV0d2VldCBhbmQgdm90ZQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwODllMDgyODk1Nzg2OWJhYmMwNTU4ZDhkOGU1IgoKLS0wODllMDgyODk1Nzg2OWJhYmMwNTU4ZDhkOGU1CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkhlcnY9QzM9QTkgYW5kIEkgZGlzY3Vzc2VkIG9uIGlyYyBlYXJsaWVyIHRvZGF5LgoKTXkgc3VnZ2VzdGlvbiAtIEkgd2FzIGdvaW5nIHRvIHdyaXRlIHVwIHRvbW9ycm93IC0gaXMgdGhhdCB3ZSBkcm9wIDcgZm9yCjMuNi54CgpXZSBzaG91bGQgZm9jdXMgMy42Lnggb24gbWFraW5nIHRoZSBjb2RlYmFzZSBKYXZhIDggKGxhbWJkYXMsIHJlcGxhY2UKRmlsZV9fX19TdHJlYW0gd2l0aCB0aGUgbm9uLWZpbGUgaGFuZGxlIGxlYWsgdmVyc2lvbiwgYWRvcHQgUGF0aCwgZXRjKSB3aXRoCmEgdmlldyB0byBlbmNvdXJhZ2UgY29udHJpYnV0aW9ucy4uLiBhbmQgYmVzdCBzdXBwb3J0IGZvciBKYXZhIDkgKHN1Y2ggdGhhdAppZiB5b3UgcnVuIGo5IHdlIHJlY29tbWVuZCAzLjYueCkKCldlIGNhbiBrZWVwIDMuNS54IGFsaXZlIGZvciBzZWN1cml0eSBpc3N1ZXMgYW5kIFMxL1MyIGJhY2twb3J0cyBmb3IgdGhlCm5leHQgNiBtb250aHMgb3Igc28uIENsb3NlIGFsbCBvdGhlciBsaW5lcy4KCjc1JSBvZiBwZW9wbGUgd2VyZSBmaW5lIHdpdGggcmVxdWlyaW5nIEphdmEgOAoKQWxzbyByZW1lbWJlciB0aGF0IEphdmEgNyBzaGlwcyB3aXRoIG91dCBvZiBkYXRlIFRMUyByb290IENBIGNlcnRzIGFuZCBpaXJjCmRvZXMgbm90IHN1cHBvcnQgU05JLCBzbyB0aGUgcmVhbGl0eSBpcyB5b3Ugc2hvdWxkbid0IGJlIHJ1bm5pbmcgTWF2ZW4gd2l0aApKYXZhIDcgdW5sZXNzIHlvdSBhcmUgd2l0aGluIGEgc2VjdXJlIGludHJhbmV0IHdpdGggYSBjb3JwIHByb3h5IHRoYXQgY2FuCnBlcmZvcm0gdGhlIFRMUyB2ZXJpZmljYXRpb24gZm9yIHlvdS4KCihOb3cgb3BlbmpkayA3IGlzIGEgZGlmZmVyZW50IHN0b3J5LCBidXQgaWYgd2Ugc2F5IHNvbWUgc3Vic2V0IG9mIDcgdGhlbgpwZW9wbGUgd2lsbCBhc3N1bWUgb3JhY2xlIDcgYWxzbykKCk9uIFN1biAxMCBTZXAgMjAxNyBhdCAxNzo1MiwgQXJuYXVkIEg9QzM9QTlyaXRpZXIgPGFoZXJpdGllckBnbWFpbC5jb20+IHdybz0KdGU6Cgo+IEJ1dCBvbiB0d2l0dGVyIHRodXMgcHJvYmFibHkgZmFyIGZyb20gYmVpbmcgYSBnb29kIHJlcHJlc2VudGF0aW9uIG9mIG91cgo+IHVzZXJzIC4uLgo+Cj4gTGUgZGltLiAxMCBzZXB0LiAyMDE3ID1DMz1BMCAxODo0NSwgR2FyeSBHcmVnb3J5IDxnYXJ5ZGdyZWdvcnlAZ21haWwuY29tPj0KIGEKPiA9QzM9QTljcml0IDoKPgo+ID4gT24gU2VwIDEwLCAyMDE3IDEwOjMzLCAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4gd3JvdGU6Cj4gPgo+ID4gU28gd2hhdCB3b3VsZCBiZSB0aGUgY29uY2x1c2lvbj8KPiA+Cj4gPiAzNSUgd2FudCB0byBrZWVwIEphdmE3IGFzIEpSRSBmb3IgTWF2ZW4gZm9yIGEgc2hvcnRlciBvciBsb25nZXIgcGVyaW9kPwo+ID4KPiA+IElNSE8gdGhhdCdzIGEgbG90Cj4gPgo+ID4KPiA+IGJ1dCBsZXNzIHRoYW4gdGhlIDY1JSB3aG8gZG8gbm90LCBhbiBvdmVyd2hlbG1pbmcgbWFqb3JpdHkuCj4gPgo+ID4gR2FyeQo+ID4KPiA+Cj4gPiBSb2JlcnQKPiA+Cj4gPgo+ID4gT24gU3VuLCAxMCBTZXAgMjAxNyAxMTo1NToyMCArMDIwMCwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+Cj4gPiBTbyBwb2xsIHJlc3VsdHM6Cj4gPiA+Cj4gPiA+IDQ5MyB2b3RlcyBjYXN0Cj4gPiA+Cj4gPiA+IDI1JSB3YW50IEphdmEgNyw4JjkgZm9yIE1hdmVuIDMuNi54Cj4gPiA+IDY1JSB3YW50IEphdmEgOCY5IGZvciBNYXZlbiAzLjYueAo+ID4gPiAxMCUgd2FudCBKYXZhIDgmOSBmb3IgTWF2ZW4gMy42LnggYW5kIDYgbW9udGhzIG9mIGJhY2twb3J0aW5nIHRvIDMuNS49CngKPiA+ID4KPiA+ID4gT24gU2F0IDkgU2VwIDIwMTcgYXQgMTE6NTAsIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+ID4KPiA+ID4gaHR0cHM6Ly90d2l0dGVyLmNvbS9hc2ZtYXZlbnByb2plY3Qvc3RhdHVzLzkwNjQ1MTA1OTk2NjY5MzM3Ngo+ID4gPj4gLS0KPiA+ID4+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4gPj4KPiA+ID4KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Cj4gLS0KPiAtLS0tLQo+IEFybmF1ZCBIPUMzPUE5cml0aWVyCj4gaHR0cDovL2FoZXJpdGllci5uZXQKPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKPgotLT0yMApTZW50IGZyb20gbXkgcGhvbmUKCi0tMDg5ZTA4Mjg5NTc4NjliYWJjMDU1OGQ4ZDhlNS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NzA1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBEZWMgIDIgMTA6MjQ6MTkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzA1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDE0QjY4MTc0RkQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgMiBEZWMgMjAxNyAxMDoyNDoxOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDc5MDMxIGludm9rZWQgYnkgdWlkIDUwMCk7IDIgRGVjIDIwMTcgMTA6MjQ6MTMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc4OTM2IGludm9rZWQgYnkgdWlkIDUwMCk7IDIgRGVjIDIwMTcgMTA6MjQ6MTMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3ODkyNCBpbnZva2VkIGJ5IHVpZCA5OSk7IDIgRGVjIDIwMTcgMTA6MjQ6MTMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDAyIERlYyAyMDE3IDEwOjI0OjEzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQjVEQzhDMDJENAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDIgRGVjIDIwMTcgMTA6MjQ6MTIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjg3OQpYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuODc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBuOFRsekc4eDhGLUggZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsICAyIERlYyAyMDE3IDEwOjI0OjExICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd20wLWY0NS5nb29nbGUuY29tIChtYWlsLXdtMC1mNDUuZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjQ1XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDc4RTlFNUY0N0QKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICAyIERlYyAyMDE3IDEwOjI0OjExICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNDUuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgZjlzbzcxMDQ1OTV3bWguMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDAyIERlYyAyMDE3IDAyOjI0OjExIC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWp6cWZWRnhRUGdOSG5sVm8zVmw1NG9sby8vaURtQTF3TTY1R05BalZDSzA9OwogICAgICAgIGI9amVJZFRxQXFiWmhxQVZTSFZuOStaaTNhb1pMK21UNUU0U2J6MkxGdFZxL3dkd3BONlg0bUIzNU5DRWdZTlMwVUZ2CiAgICAgICAgIGFtbmpIL3ExM29yS1pNcmphUjNmQjBBNm1tYnE1TlJ6NWNJUnRXSWhBWCttWmVlN3Y4bXhjMS9kSEtGdndPZmQwNlI3CiAgICAgICAgIHkwdjNMWTFacXFWakU0QVNUR3lzSWNyaTFPZ1VmS1ZpN0Z6WEtqTVl3RDQzc29GSlBLQnplSVNWL3ZXWVdQeENhcEJDCiAgICAgICAgIG5wbkhSNEhFUXdYaFhGdnQ2OGh6ZUtNV29iaVY0RE5qN1psandBN24xU0F5Q3FQQ3dCT1greUd3SWxDVzlMV0haTWRaCiAgICAgICAgIDY0Nng4V2tydnFqRUwzU3d1SThnOWJBZS9keDVxWlRTeUJhQngyMjFVbkdhT0FoMzdWR2hhaXBvei9kRWNnQjMzcnVkCiAgICAgICAgIHN2bEE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWp6cWZWRnhRUGdOSG5sVm8zVmw1NG9sby8vaURtQTF3TTY1R05BalZDSzA9OwogICAgICAgIGI9UWtncXQySW1naXZDNDVPU3lhdTZkeUYzbm80QU1rVFNIVDFEYXVIbHVPNmtHaDlkMEtyZG9QdVF1ck1pV1JYbVc5CiAgICAgICAgIG9STnFtNFp4RzczM2FYNTRhVlprSno4QnlDZFhLNTgwSFlpaFkrTmdjYVpCclk3UEhZaUtvYkhzckVmWmt1NXhFU05qCiAgICAgICAgIEw1S0tsUHB2M0Fvc2pkSzlPSmgwZDhsVkdleFNzcUZzaTc5aGJXeFVBQUQ5OUVrVWRXNmRPMFZWVkVTZmxoZFM1TVRRCiAgICAgICAgIDZYTHJMZC8wWmt0Z0QybUJvR0N2dFd6dndmMEl5a1pLVERnN1dMT2lIUXZZSlJ2K1FwamVIVkxZWkcyRUNrSzF3bnFaCiAgICAgICAgIHZ3Nk9MY1RBaVYvcWlCUjBwdXZvRzFJdVo0dnJMT1pOMkp1K0Vsb1JvQTY4T0ltTktNVUV6Lys5ZTBUa2RhdHNLbGpOCiAgICAgICAgIGJtQWc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFLR0IzbUpCR1MxVytKdkxkMzVTU09QZ0luYmxqZzIwajFXNWZMU25NNFB6RVRJNFRzZUhzNkNYCglqbW9BVy9PSkZoWkhBeHJ0SlFZNlh2aGNsNkFoQitYT1lWTVEwcnpoTGc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUdzNHpNWmhtc2dnM09RazlkMnNDVk9JTitGUEJXa25PK080NXpxU0xZbUNGb21PN2JlMzVDYjhnRENHdGk1NXQ1dGtYaVR0a3JsVWVwai83SWpnRjZ4N1V0OD0KWC1SZWNlaXZlZDogYnkgMTAuMjguMTUwLjIwIHdpdGggU01UUCBpZCB5MjBtcjI5NjQ4ODR3bWQuMTE4LjE1MTIyMTAyNDM5NjQ7CiBTYXQsIDAyIERlYyAyMDE3IDAyOjI0OjAzIC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDxDQStuUG5NdzBzV2cxb0pQOVA1VG5ycWJncFFTY1dlQTBtOFppMlNhOE1DYjAxZ2U5V3dAbWFpbC5nbWFpbC5jb20+CiA8Q0FLdVZ6QlEwYTZKODBUdCtNSGRkV1R3U2RyKy15X3RhV3VMUDYxdz1veGJ0TXMyeVhnQG1haWwuZ21haWwuY29tPgpJbi1SZXBseS1UbzogPENBS3VWekJRMGE2SjgwVHQrTUhkZFdUd1NkcisteV90YVd1TFA2MXc9b3hidE1zMnlYZ0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAwMiBEZWMgMjAxNyAxMDoyMzo1MyArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXk5a2lMdkNzbUVXWmZ4RHZCTV9uajFKMGpHNzRpdGZiSjVXRXVpeEFwLTN3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogUkUgc3dpdGNoaW5nIHN1cmVmaXJlIHRvIHRoZSBzdGFuZGFyZCBidWlsZApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0YjNjOTQ2YWQ0NDMwNTVmNThlMjk4IgoKLS0wMDFhMTE0YjNjOTQ2YWQ0NDMwNTVmNThlMjk4CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCk9uIFNhdCAyIERlYyAyMDE3IGF0IDEwOjAzLCBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+IHdyb3RlOgoKPiBQbHMgZG8gbm90IGRvIGl0IQo+IEkgd2FudCB0byBoYXZlIGl0IHVuZGVyIGNvbnRyb2wgaW4gSmVua2luc2ZpbGUgYW5kIG5vdCB0byBzaGFyZSB0aGUgY29kZQo+IHdpdGggb3RoZXIgcHJvamVjdHMuCgoKSSBkbyBub3Qgc2VlIHRoYXQgeW91IGFjdHVhbGx5IGhhdmUgYW55dGhpbmcgdGhhdCBuZWVkcyBhIGN1c3RvbSBidWlsZC4KCldlIGNhbiBhZGQgY29kZSBjb3ZlcmFnZSB0byB0aGUgdGVtcGxhdGUuCgpUaGUgb25seSByZXBvIEkgc2VlIHdpdGggcmVhc29uYWJsZSBleGN1c2VzIGZvciBhIGN1c3RvbSBKZW5raW5zZmlsZSBpcyB0aGUKY29yZSBNYXZlbiBpdHNlbGYuLi4gYW5kIHRoYXQ9RTI9ODA9OTlzIG9ubHkgYmVjYXVzZSBvZiB0aGUgY29yZSBpbnRlZ3JhdGlvPQpuIHRlc3RzLgoKCj4gU3VyZWZpcmUgcHJvamVjdCBpcyBkaWZmZXJlbnQgYW5kIGl0IG11c3QgYmUgc3RpbGwgZGlmZmVyZW50LgoKCkNlcnRhaW5seSB5b3UgaGF2ZSBtb3ZlZCB0aGUgYnVpbGQgdGhhdCB3YXkuLi4gaT1FMj04MD05OWQgTGlrZSB0byBzZWUgZXhwbD0KaWNpdApyZWFzb25zIHdoeSBzdXJlZmlyZSBjYW5ub3QgdXNlIHRoZSBzdGFuZGFyZCBidWlsZC4gU25vd2ZsYWtlIGJ1aWxkcyBkbyBub3QKaGVscCBncm93IGNvbW11bml0eS4KCgo+IEkgc2VlIEdyb292eSBsaWJyYXJpZXMgdXNlZnVsIG9ubHkgaW4gc2l0dWF0aW9ucyB3aGVuIEkgY2FsbCBIdWRzb24gQVBJCj4gZnVuY3Rpb25zIGFuZCBJIG5lZWQgdG8gYXZvaWQgc2VjdXJpdHkgaXNzdWUgb24gdGhlc2UgY2FsbHMgYWZ0ZXIgdXNpbmcKPiBzaGFyZWQgR3Jvb3Z5IGxpYnJhcnkgZm9yIEplbmtpbnMsIGJ1dCBub3QgaW4gaGVyZSBsaWtlIG9uZSBmdW5jdGlvbgo+IHN1YnN0aXR1dGluZyBlbnRpcmUgY29udGVudCBvZiBKZW5raW5zZmlsZS4KCgpUaGVyZSBhcmUgbWFueSB1c2UgY2FzZXMgZm9yIHNoYXJlZCBsaWJyYXJpZXMuIERvIG5vdCBsaW1pdCB5b3Vyc2VsZiB0byBvbmUKc21hbGwgKGFuZCBpbiBteSB2aWV3IGFudGlwYXR0ZXJuKSB1c2UgY2FzZQoKCj4KPiBUCj4KPiBPbiBUaHUsIE5vdiAzMCwgMjAxNyBhdCAxMDo1OSBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiA+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvam9iL21hdmVuLXdpcC9qb2IvbWF2ZW4tc3VyZWZpcmUvCj4gPiBqb2IvbmV3LWplbmtpbnNmaWxlLwo+ID4gdG8gc2VlIHdoYXQgaXQncyBsaWtlLgo+ID4KPiA+IFdlIGNhbiBsb29rIGludG8gYWRkaW5nIGphY29jbyByZXBvcnRpbmcgdG8gdGhlIHN0YW5kYXJkIGJ1aWxkIGlmIGl0IGlzCj4gPiBzZWVuIGFzIGltcG9ydGFudAo+ID4KPgotLT0yMApTZW50IGZyb20gbXkgcGhvbmUKCi0tMDAxYTExNGIzYzk0NmFkNDQzMDU1ZjU4ZTI5OC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NTY1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBOb3YgMjIgMDk6NDg6MzMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTY1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEQ2RDRGMTA5NzIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyMiBOb3YgMjAxNyAwOTo0ODozMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg2MzE3IGludm9rZWQgYnkgdWlkIDUwMCk7IDIyIE5vdiAyMDE3IDA5OjQ4OjMzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NjIzOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMiBOb3YgMjAxNyAwOTo0ODozMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg2MjI3IGludm9rZWQgYnkgdWlkIDk5KTsgMjIgTm92IDIwMTcgMDk6NDg6MzMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDIyIE5vdiAyMDE3IDA5OjQ4OjMzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNjdDMkVDM0U5NgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjIgTm92IDIwMTcgMDk6NDg6MzIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjA5OApYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjA5OCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQl9XQU1fRlJPTV9OQU1FX1NJTkdMRVdPUkQ9MC4yLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0wLjAwMSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFZhMlJWTjdUSFFNQiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgMjIgTm92IDIwMTcgMDk6NDg6MzEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13cjAtZjE3NC5nb29nbGUuY29tIChtYWlsLXdyMC1mMTc0Lmdvb2dsZS5jb20gWzIwOS44NS4xMjguMTc0XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEQ2ODE0NUZDREEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDIyIE5vdiAyMDE3IDA5OjQ4OjMwICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdyMC1mMTc0Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHIyc283NDg3MDc5d3JhLjEzCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjIgTm92IDIwMTcgMDE6NDg6MzAgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Z2NuR0U1RG85MUplTndvbFZQZ0szak5Dc0IwQkVGRFUvc3ZsL2E3VkQ5Yz07CiAgICAgICAgYj1JVTN3d2w1ZWFaWDc5NFJCZGtKZUhHY3ROc3A5L1BRU0UyMitROHdPd0EyNUZJQ2hMd01IWXNFVHE0NFJLMVhjZE0KICAgICAgICAgL1lhbXpMK2pqVHRyVzM1WXJBZllGeTBmOVRqRFl0Y3BOZ0o1SFlVWWtSdHMySmZ0RVpyT0paWDNibjlXSjh4Yy9nbkQKICAgICAgICAgSVRnL2RTY1FSbVZNdUg1eXpxOHVMSHdlaXhPc3l6VzZGcUt3MGU0MnJTWG1Ha0NHTWJkdTlWbkQxYTF2cDJQYmhHdEQKICAgICAgICAgN0VCbk4zUlllb2RTd0puUFFlcFVRalhqMnU0a1FhdjV5clZkazBKYXlNT01yczg5aUs1dTdzcTU2UlFZb0ljNFQyS3YKICAgICAgICAgSnFSNkpiTGZZN1ZNc2hRc1FhUERTd3JxbzBTRTlnZlh0NjdVM0xhQkRmNUF6NHI0V1ptUVFQVmtwTDI0cTdNNWpPK1UKICAgICAgICAgTHI5UT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Z2NuR0U1RG85MUplTndvbFZQZ0szak5Dc0IwQkVGRFUvc3ZsL2E3VkQ5Yz07CiAgICAgICAgYj1aVW9aaWh4UU1CSXR1bFFEWVVISitJSUh4QVFTYmhJYm5URHJBdzJXcSszN1lHTzdpWU41VUJBMkRWbmp3M0tQYlEKICAgICAgICAgQXdpTDRSSHlDZTR5YjFydWhtelY4TEhEWERrejhWUVlTVUlXOTVkT2hZd2VSTGFMeklOcWFKSjBQMnpnSVpQWlR1dHUKICAgICAgICAgNVk5QjFJUDA4ckxKakMrLzBtcXl3SVdNVmZxNnZxSnhoR01lMXZkS01Ldm41TmovMWVrS2NGWTg5cTJseUE1dXhLUlMKICAgICAgICAgTDNEUVBzUW54bzNvTFM1SVVwMkNkVnBsVFlNUEFlOTc5djZBOTZ4QWxxVUxSRURlTFZqTUdweXVuUEVYaGZtZmJsQlMKICAgICAgICAgcThicFRLY2ZRc0RrdlRNaW9DdlJzdnQyT3dTd1QwOFAwMWFoSDE3ZSs2SmpOaGxuSlZXbE5qcy9kZVhYUFRGdHhJSisKICAgICAgICAgY0p1UT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYNzNPaWMxV2ZFR0NGc1ZMb2xlTGFLaHBGKzd3RlgvL01tNDhPRFhSeUg4b09lRVp4Q2sKCW5JYlhoM3BuZHlONUFFdHNmNHhHMWZHNE5JWHFVZVk5SFNrTkgxbDQzakRQClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1id1ZoTUlHTnFDelJlWDFmRmNKOG5Pei90L0I0RGVrN2toSTZKam9XZkp3dWNvZjdtM0t4eHh2WkRROG1KcytSQ0VLOGpaeVBseVA1cUJiSmRxZXhFPQpYLVJlY2VpdmVkOiBieSAxMC4yMjMuMTU2LjE0NiB3aXRoIFNNVFAgaWQgZDE4bXI4MzUyMTg5d3JlLjE2MS4xNTExMzQ0MTA5ODM5OwogV2VkLCAyMiBOb3YgMjAxNyAwMTo0ODoyOSAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMjIzLjE3My4yMzUgd2l0aCBIVFRQOyBXZWQsIDIyIE5vdiAyMDE3IDAxOjQ4OjI5IC0wODAwIChQU1QpCkluLVJlcGx5LVRvOiA8Q0FGTkNVLTkzMllHUkxQYll0TnRyRDkwUDEtdW5hME5MMzc3NmF4c29rPTZ0RER0aW5RQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXp2MG45VjA9amc0U0FjUEEwK01uRGtGZ0NGOFJ2SkN6Mkp5NlkrdD1GREZnQG1haWwuZ21haWwuY29tPgogPENBRk5DVS05MzJZR1JMUGJZdE50ckQ5MFAxLXVuYTBOTDM3NzZheHNvaz02dEREdGluUUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAyMiBOb3YgMjAxNyAwOTo0ODoyOSArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXlCdzFhS3o3T1ZkQkpjQjM0WkJScjZLOWNFNGtSUnRiT1NfTFc1a1BDdVFBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogRllJIElORlJBLTE1NTI0IGNyZWF0ZWQgZm9yIHRoZSBiZXR0ZXIgSmVua2lucyBVWApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSJmNDAzMDQzOWJiMDBjY2U5NDIwNTVlOGYzOGVlIgoKLS1mNDAzMDQzOWJiMDBjY2U5NDIwNTVlOGYzOGVlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKClNjaGVkdWxlZCBmb3IgdGhlIE5vdmVtYmVyIDI2dGggdXBncmFkZToKaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9JTkZSQS9KZW5raW5zK1BsdWdpbitVcGdyYWRlcwoKT24gMjEgTm92ZW1iZXIgMjAxNyBhdCAxNDo0NiwgQXJuYXVkIEg9QzM9QTlyaXRpZXIgPGFoZXJpdGllckBnbWFpbC5jb20+IHdyPQpvdGU6Cgo+IHllYWggISEKPgo+IE9uIFR1ZSwgTm92IDIxLCAyMDE3IGF0IDI6MTAgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Cj4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0lORlJBLTE1NTI0Cj4gPgo+ID4gSGVydj1DMz1BOSBpdCBpcyBuZWFybHkgdGltZSB0byBwYXJ0eSEKPiA+Cj4KPgo+Cj4gLS0KPiAtLS0tLQo+IEFybmF1ZCBIPUMzPUE5cml0aWVyCj4gaHR0cDovL2FoZXJpdGllci5uZXQKPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKPgoKLS1mNDAzMDQzOWJiMDBjY2U5NDIwNTVlOGYzOGVlLS0KCkZyb20gZGV2LXJldHVybi0xMjQzMjctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE9jdCAyNCAyMDo0NzoxOCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzMjctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNkZDNUIxN0MyNgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDI0IE9jdCAyMDE3IDIwOjQ3OjE4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzMwMzkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjQgT2N0IDIwMTcgMjA6NDc6MTggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDcyOTU1IGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IE9jdCAyMDE3IDIwOjQ3OjE4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzI5NDMgaW52b2tlZCBieSB1aWQgOTkpOyAyNCBPY3QgMjAxNyAyMDo0NzoxNyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMjQgT2N0IDIwMTcgMjA6NDc6MTcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBERkU0Q0M3NDJGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyNCBPY3QgMjAxNyAyMDo0NzoxNiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDMuMTI5ClgtU3BhbS1MZXZlbDogKioqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0zLjEyOSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTE9UU09GSEFTSD0wLjI1LCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHpQb3NXSTFIeDk1cyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVR1ZSwgMjQgT2N0IDIwMTcgMjA6NDc6MTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13bTAtZjQ1Lmdvb2dsZS5jb20gKG1haWwtd20wLWY0NS5nb29nbGUuY29tIFs3NC4xMjUuODIuNDVdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNTVCRDM1RkM5RAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjQgT2N0IDIwMTcgMjA6NDc6MTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd20wLWY0NS5nb29nbGUuY29tIHdpdGggU01UUCBpZCBiMTg5c28xNzkzOTA3NndtZC40CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjQgT2N0IDIwMTcgMTM6NDc6MTUgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWNCc0FYZ1E2QkdSWkhPZ0pDQlJaOFFHZlgwbTI2Vmg5M3h6ZCtKUWZlSlk9OwogICAgICAgIGI9V1JNUjBOSFI5TUhrUVJQVWswd3J1K3R1VTkwNVhtTTh2VjFxcmRnd0V2aEhNcU5jeGdqNFM0YzZzcmJ5bVY1RnFiCiAgICAgICAgIGt5Vnl0dlVMS2cvMXZxWmkrU04wMHJhMGJaR0lWakVSQ3AyOWtKdzZ4QjNIelpMd2kxK09MenhsM3JvcFRScTlGNm5GCiAgICAgICAgIHJlektzZExsSVlneWtXVVcxTW43Mzl2U1EvRWEraStKRzVkL21PNXR6TDhvMHZpczFOTytBaXRPQ3BvNXhlSVFvS01vCiAgICAgICAgIGZ2ckoybDcxdTdoSEZZam00T3pRMXNubnVyUzFka0RueFVST01vN3hOU0d1QlVlR2FFRy9hclAvRFdDeDg5WW1MWUY1CiAgICAgICAgIHl6ZmpkbG1tcUpVdDdoQ25DQW9BWENLRGZCVGZlekUwRGk0RjBuc0s3Q1d2RVN2Ujd1NFBpMGpkSnk5YVRWc0pJVzZYCiAgICAgICAgIERDQWc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWNCc0FYZ1E2QkdSWkhPZ0pDQlJaOFFHZlgwbTI2Vmg5M3h6ZCtKUWZlSlk9OwogICAgICAgIGI9YW5hSitnajBERjV1bEtPUjJ6SmQrVThJUkZjaGNLT2JUZzRyc09zazFERkVJdHRpYk84WnVnSjQ2c0lndklSRWZTCiAgICAgICAgIGMvb2VDVW9mMVZxVlMyL1VJVitzejNXak4xaTBRNFo3U1J5VDVPQkJHTXJKN2p2OEpDdEY4Mml6SlhleXd5OGpFMGwwCiAgICAgICAgIHRDRXN4Z2JBdGlxZFYrU05NUEQ0eE4yZ0llMS9rWW8yaUwrUm9DQkhmR2tTMDFTb1hoeWRqN2lMdWhORE5vQ2FrRkU2CiAgICAgICAgIEc2NW9RTkpKbE9Cd0h4MjFWTnJKamp5VnlobTRkamd1QzVKbDhLbXg3ZzVmdTNIMGFIa2pBQ0VsSE5qR0RzRVltUXhxCiAgICAgICAgIEpTc3R4UlRGQTJUMDJ2ZFQxc2NXamJIZWhpYjdWK1ZPV0RsVWpXUDVDMHlXQ0wrcHZhbzJBeERwRzhRZGY5SDUrQitoCiAgICAgICAgIG1ibEE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVV4K3ZtNnNkdGR2MzNGVVdQcUk0cWRJVVdpMVkvVWFUOFRBeDFVUU5oVWpRV1N2eWJCCglEckIvK0JRUWcycTNuTENSZ3lEUVN1K1FoMm1TWGhwTkZ3VE80ZnhRNmc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArUXhVSUh3TUhOTnkrTVI3dVFoT0FrTlhjdFBEM0RIZExqV1N0M0ZoQTdrZWRYb3hBSWdNNnpGTWxrVkJnZldBUUYyd2ZQbkszeTI4VkhoYlhrVDFaQT0KWC1SZWNlaXZlZDogYnkgMTAuMjguNDcuNjkgd2l0aCBTTVRQIGlkIHY2Nm1yNTkwMjN3bXYuOTguMTUwODg3ODAzNDU3NDsgVHVlLAogMjQgT2N0IDIwMTcgMTM6NDc6MTQgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xODcuOCB3aXRoIEhUVFA7IFR1ZSwgMjQgT2N0IDIwMTcgMTM6NDc6MTMgLTA3MDAgKFBEVCkKRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyNCBPY3QgMjAxNyAxMzo0NzoxMyAtMDcwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXlHQzJLN1V3bTZIYWZXV2ZpSGtLalgwclVxMk1YeDFrNFl0NjZMczF0X0tnQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBbUkVTVUxUXSBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjIKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDIzNjU2NDJhNDlhMDU1YzUxMGI4NCIKCi0tMDAxYTExNDIzNjU2NDJhNDlhMDU1YzUxMGI4NApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPbiAxOCBPY3RvYmVyIDIwMTcgYXQgMDM6NTAsIFN0ZXBoZW4gQ29ubm9sbHkgPApzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKCj4gSGksCj4KPiBXZSBzb2x2ZWQgMjYgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiB2ZXJzaW9uPTNEMTIzMzg5NjQmc3R5bGVOYW1lPTNEVGV4dCZwcm9qZWN0SWQ9M0QxMjMxNjkyMgo+Cj4gVGhlcmUgYXJlIDM1NyBpc3N1ZXMgbGVmdCBpbiBKSVJBIGZvciBNYXZlbiBjb3JlOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlCj4gM0QlMjBNTkclMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJQo+IDIwQlklMjBkdWUlMjBBU0MlMkMlMjBwcmlvcml0eSUyMERFU0MlMkMlMjBjcmVhdGVkJTIwQVNDCj4KPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3My8KPgo+IFRoZSBkaXN0cmlidXRhYmxlIGJpbmFyaWVzIGFuZCBzb3VyY2VzIGNhbiBiZSBmb3VuZCBoZXJlOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+IDEzNzMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvCj4KPiBTcGVjaWZpY2FsbHkgdGhlIHppcCwgdGFyYmFsbCBhbmQgc291cmNlIGFyY2hpdmVzIGNhbiBiZSBmb3VuZCBoZXJlOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+IDEzNzMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvYXBhY2hlLW1hdmVuLTMuNS4yLWJpbi56aXAKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiAxMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yL2FwYWNoZS1tYXZlbi0zLjUuMi1iaW4udGFyLmd6Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gMTM3My9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItc3JjLnppcAo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+IDEzNzMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvYXBhY2hlLW1hdmVuLTMuNS4yLXNyYy50YXIuZ3oKPgo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IGFwYWNoZS1tYXZlbi0zLjUuMi1zcmMudGFyLmd6IHNoYTE6IDk3ZDZkN2IxODQ4NWI3OTA2ZGQ3ZjMxM2NkZDQxMQo+IDkxZDE2ZGRlNDYKPiBhcGFjaGUtbWF2ZW4tMy41LjItc3JjLnppcDogc2hhMTogZGM4Y2FhNWNkYWNiNDAwOTQzZDI0OTFhMDIwZjc0MmE1MThlOGYwPQo4Cj4KPiBHaXQgdGFnOgo+IGh0dHBzOi8vZ2l0LXdpcC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPTNEbWF2ZW4uZ2l0O2E9M0Rjb21taXQ7aD0zRAo+IDEzOGVkZDYxZmQxMDBlYzY1OGJmYTJkMzA3YzQzYjc2OTQwYTVkN2QKPgo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvY29tcG9uZW50cy9yZWYvMy1MQVRFU1QvCj4KPiBWb3RlIG9wZW4gZm9yIDcyIGhvdXJzLgo+Cj4gWyBdICsxCj4gWyBdICswCj4gWyBdIC0xCj4KPgorMSAoYmluZGluZyk6IFN0ZXBoZW4sIFJvYmVydCwgQXJuYXVkLCBIZXJ2PUMzPUE5LCBPbGl2aWVyCisxIChleHRyYS1zcGVjaWFsKTogTWFyaywgUGV0cgowOgotMToKClRoaXMgdm90ZSBoYXMgcGFzc2VkLCBJIHdpbGwgcHJvY2VlZCB3aXRoIGZpbmlzaGluZyBvZmYgdGhlIHJlbGVhc2Ugbm90ZXMKYW5kIHB1Ymxpc2hpbmcgdGhlIHJlbGVhc2UKCgo+IFRoYW5rcywKPgo+IFN0ZXBoZW4uCj4KCi0tMDAxYTExNDIzNjU2NDJhNDlhMDU1YzUxMGI4NC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MDA1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBTZXAgMTMgMDg6MDg6MTEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDA1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDYyRjEyMUFDMDEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAxMyBTZXAgMjAxNyAwODowODoxMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE0NzE0IGludm9rZWQgYnkgdWlkIDUwMCk7IDEzIFNlcCAyMDE3IDA4OjA4OjExIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNDYzOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMyBTZXAgMjAxNyAwODowODoxMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE0NjI2IGludm9rZWQgYnkgdWlkIDk5KTsgMTMgU2VwIDIwMTcgMDg6MDg6MTAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDEzIFNlcCAyMDE3IDA4OjA4OjEwICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMEZFMkUxQTE2RDkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3IDA4OjA4OjEwICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi44OApYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjg4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDEsIFVSSUJMX0JMT0NLRUQ9MC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgVkNOZUFRTFZoOHdoIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJV2VkLCAxMyBTZXAgMjAxNyAwODowODowOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXVhMC1mMTc5Lmdvb2dsZS5jb20gKG1haWwtdWEwLWYxNzkuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNy4xNzldKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMkIxMEY1RkMyMQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTMgU2VwIDIwMTcgMDg6MDg6MDggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdWEwLWYxNzkuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgcTI5c28xNzg0NjA1NXVhZi4zCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTMgU2VwIDIwMTcgMDE6MDg6MDggLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9MFIyYWN6dEFMODRKRWQ2NmRwVjUvaFM4ME9acVVKUEZMaFZaUjlrbEhXST07CiAgICAgICAgYj1TdU5yN2thaS9jT2hzRWRsTUpadW8xdTBlNVlxU012ZFJud20yL2I0VGxPb05YbXUxd1VqREFIRDQ1MnUrclpOcEoKICAgICAgICAgM1Q3VkNxZkk0MjYxSW1YTFhZb24wTUF6UHFtQjJieFZlWTlpR29MeS9GRW9qQkZQR2xGZWpzMW9GR3NZZlFWM2dmQTIKICAgICAgICAgS3hrZk4vUFZPUFN5NlNzNU5sYnRpUFNGV0Iyc2R3aWpZOGJPdVd4bkNZNVlQaU45enpFdk9ibE5KQ0hnNTVlbCtDYkIKICAgICAgICAganFVNEd2NEx5Wk1FYW85MkViVzBhWndLci9RV0pCRHV6aUlZT0Q3ejdRSE9jVFhKcGRPOENDYmphanRwUkhjZnJjcjYKICAgICAgICAgSlZhNnV5S3VCSlFCZVE0UE1nNXQ5L0JVVEV5NXI2ZFZleWNORkdraGh0MXNTaFZXZUVIeFhYUmh6Q2YwdThLZE9kZFIKICAgICAgICAgSWg1QT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9MFIyYWN6dEFMODRKRWQ2NmRwVjUvaFM4ME9acVVKUEZMaFZaUjlrbEhXST07CiAgICAgICAgYj1oaHdGazRJaE5TRWIyVEx1UzlZcHRrbHB2RFh6STNJR0RyYzRUaDhrNWs0K2p1SW44ZFBNdTMva1l6TUlabzBRTUMKICAgICAgICAgcHlBZDltTm9vK3lRTEtYTTJEaTNWQ1R2YjRVWERGTSs3ekpEV1l1UUhVU3hjOVNWU08zZGt5VWs1SmhEZzlBaWVLNW0KICAgICAgICAgb2oyUzFvQjZDbElQYXpmdk8yODV6ZGUxM1FZRlhSSzV2ZUM3NVppM0YrTTNjYURIQlhyY2FhbEdaaGVNcWNYeFltd0gKICAgICAgICAgMjhmMitkcDBrZ211MytITU42dzN1b2Z1TVROcUNTc0pBKzJLc0grZGRnWVcyaE04ajFUMVV5cGExUGJIZnlCVGJveC8KICAgICAgICAgMGg0RmhBSlh1YWRZS25sbjJ4TW5GSDhyNDc5UU9OMGd5NDFPVEZEQjh3blJ2aUxrNURNa1duRG9CKzIxekdsd0l5QTAKICAgICAgICAga1lJUT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVaHdjYlllRkQ4R2sydWd2eU1PUWRrNXBQUmtRN1Y5S3V6SmhFWXpZR0VlK05OUzlTQy8KCUxLRS9xSW8wYm5mclFoRmRkb1UxWllXc3QrQXpueHo3ViszcXVZek1jM2JzClgtR29vZ2xlLVNtdHAtU291cmNlOiBBREtDTmI3MVlOY0sreThlTWNTYVdmRjNqOUFrUG5lT3RiblJKNkx5anNydTFOei9SRmFnOUhHUTMrcnc5czQyVERWRkt5T21oWDZhWmowR1FPMityYmVBMm5ZPQpYLVJlY2VpdmVkOiBieSAxMC4xNzYuODkuMTY4IHdpdGggU01UUCBpZCBnMzdtcjEzOTg0NDk4dWFkLjUzLjE1MDUyOTAwODA1NzI7CiBXZWQsIDEzIFNlcCAyMDE3IDAxOjA4OjAwIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzYuODIuMjUyIHdpdGggSFRUUDsgV2VkLCAxMyBTZXAgMjAxNyAwMTowNzo1OSAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPENBK25Qbk15Y1RaZFh0QXVSYzIrLTBxREtFUExMSkhvR0o2SDhkWj1aeWtPYVh1VzNYUUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk14eUcyTmVQWHBWcWF3ZTlqUj1pdEhFVDZVdWRuTjlDakhodj1vby1LQ3J4d0BtYWlsLmdtYWlsLmNvbT4KIDxwb255LTU2YTNhZGVhZjYwYzQwNTk2ZmIyODRiMjQ1MjQxNDhmNjA1ZThkMjMtNTJkNDFjZDQwZjIzNDNjODk1Mjg4MGU4Zjg0ZGEzZTgwZDMzNTUwOUBkZXYubWF2ZW4uYXBhY2hlLm9yZz4KIDxDQStuUG5NeVMycTF1ZmFXK1M2c21oWloxSmN4aGY5aFk1LTNuQkotaUNXZWpQVUFEVkFAbWFpbC5nbWFpbC5jb20+CiA8MjA1Nzk0OC5rMUd5Zmp1R1hkQGdpZ2E+IDxDQStuUG5Nd2NvSEZadlVxV2lVc3lIQmhhTW1vU2NjeWRUQnN6U1hnc0d0Rj13TkdES3dAbWFpbC5nbWFpbC5jb20+CiA8Q0FLRFVOMXY1VHNGbitvLXZ2OEhoM1B1dkdYV2UrZlFuTStqd0RadCs9enR4c3BjZ2d3QG1haWwuZ21haWwuY29tPiA8Q0ErblBuTXljVFpkWHRBdVJjMistMHFES0VQTExKSG9HSjZIOGRaPVp5a09hWHVXM1hRQG1haWwuZ21haWwuY29tPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBXZWQsIDEzIFNlcCAyMDE3IDAxOjA3OjU5IC0wNzAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NeUxaMkRIbWppZHlSNHJMR19ra3Z5ZjJ6Sk02X0YrZ2ZiQmZ6QnZObjRxQlFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LCBPbGl2aWVyIExhbXkgPG9saXZlci5sYW15QGdtYWlsLmNvbT4sIAoJQXJuYXVkIEhFUklUSUVSIDxhaGVyaXRpZXJAYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0NjYwM2E4OTU4YmMwNTU5MGRhODBhIgoKLS0wMDFhMTE0NjYwM2E4OTU4YmMwNTU5MGRhODBhCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpPbiAxMyBTZXB0ZW1iZXIgMjAxNyBhdCAwMTowNSwgU3RlcGhlbiBDb25ub2xseSA8CnN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgoKPiBPbiAxMyBTZXB0ZW1iZXIgMjAxNyBhdCAwMDoyNiwgQW5kZXJzIEhhbW1hciA8YW5kZXJzQGhhbW1hci5uZXQ+IHdyb3RlOgo+Cj4+IE9uIFR1ZSwgU2VwIDEyLCAyMDE3IGF0IDg6NTQgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+PiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4KPj4gPiBIYXZlIHdlIGdvdCBhbnkgZmVlZGJhY2sgZnJvbSB0aGUgZW1iZWRkZXIgaW50ZWdyYXRpb25zIHlldD8KPj4gPgo+Pgo+PiBJIGhhdmVuJ3QgaGVhcmQgYW55dGhpbmcgZnJvbSB0aGUgbTJlIHBlb3BsZS4gTWF5YmUgd2UgbmVlZCB0byBwaW5nIHRoZW0KPj4gZGlyZWN0bHkuIEkgY2FuIGNvbnRhY3QgRnJlZCBCcmljb24uCj4+Cj4+IC9BbmRlcnMKPj4KPj4KPiBQbGVhc2UgZG8sIGFsc28gaWYgYW55b25lIGhhcyBhIGNvbnRhY3QgaW4gbmV0YmVhbnMgb3IgaW50ZWxsaWogYW5kIGNvdWxkCj4gbGV0IHRoZW0ga25vdyB3ZSdkIGxpa2UgZWl0aGVyIGZlZWRiYWNrIG9yICJ3ZSdyZSBvayBpZiBNTkctNjI3NSBtYWtlcwo+IHRyb3VibGUgZm9yIHVzLCBnbyBhaGVhZCBhbmQgcmVsZWFzZSIuIEknZCBsaWtlIHRvIGNsb3NlIHRoZSB2b3RlIG9uIEZyaWRheQo+IDEzOjAwIFVUQy4KPgo+CgpPbGl2aWVyIC8gQXJuYXVkLCBoYXZlIGVpdGhlciBvZiB5b3UgaGFkIGEgY2hhbmNlIHRvIHRlc3QgdGhpcyB3aXRoIHRoZQpldmlsIHByb2plY3QgdHlwZVsxXSBhcyB5b3UgdHdvIHNlZW0gdG8gYmUgdGhlIGFjdGl2ZSBtYWludGFpbmVyc1syXQoKWzFdOgpodHRwczovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuaWUvMjAxMy8xMS9qZW5raW5zLW1hdmVuLWpvYi10eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sClsyXTogaHR0cHM6Ly9naXRodWIuY29tL2plbmtpbnNjaS9tYXZlbi1wbHVnaW4vY29tbWl0cy9tYXN0ZXIKCi0tMDAxYTExNDY2MDNhODk1OGJjMDU1OTBkYTgwYS0tCgpGcm9tIGRldi1yZXR1cm4tMTIzOTcwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBTZXAgMTEgMTE6NTM6NTAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTcwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDhDRjE4MTk3RTAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAxMTo1Mzo1MCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDYwMzY5IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDExOjUzOjUwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MDI5MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAxMTo1Mzo1MCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYwMjc0IGludm9rZWQgYnkgdWlkIDk5KTsgMTEgU2VwIDIwMTcgMTE6NTM6NDkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDExIFNlcCAyMDE3IDExOjUzOjQ5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNzM4QzIxOTcxMDMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDExOjUzOjQ5ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMy42MjkKWC1TcGFtLUxldmVsOiAqKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTMuNjI5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJRlJFRU1BSUxfUkVQTFk9MSwgSFRNTF9NRVNTQUdFPTIsIEtBTV9MT1RTT0ZIQVNIPTAuMjUsCglLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHp6OU1hempJaWxNaiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMTEgU2VwIDIwMTcgMTE6NTM6NDggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC11YTAtZjE4MS5nb29nbGUuY29tIChtYWlsLXVhMC1mMTgxLmdvb2dsZS5jb20gWzIwOS44NS4yMTcuMTgxXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEM4ODJBNjEyNzcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDExOjUzOjQ3ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXVhMC1mMTgxLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHEyOXNvMTA5MzQwNjd1YWYuMwogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDA0OjUzOjQ3IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWpFQ3V1c0xvb2FGUFdCUGlQTEU1MmJOOFhxYkVrL0ROYzE2TCtncldQT009OwogICAgICAgIGI9cDRidDV6YUVlam8zV1NDYzNmMmFyekdwQnUzMmlVSFJMZXg3S1NiTEVQc1IwWUpxNzNBellIQW1senhlRWp0MEtECiAgICAgICAgIGtxb2ZwTVJPTWhwWXFZTGRLU2FnVERyaVB3NVNYbVVVVzJ1ajl0cEUwWTBsTU14Z1JUdm42dVc3N2c3eDBCWU1JaUJoCiAgICAgICAgIHJabTFxenkvZ0UvRk5ZeU8rRHE2Q3plWkU2bXVCYkVHeUtUYW52Q0ZKSW1nUitudnkxT1Z5aXhvUmdiSE0rWkVXUnZICiAgICAgICAgIHRNZkRZOE5jRVFxL21vQ090cmtlL3ZtZzNaODRvQmRnRVY2V05VSStZVUpZQ2E5RXdnMXRybnRCakk4SjdoZ3B1UDJtCiAgICAgICAgIGwxSTJtM2JFUytFSit3WkpCd2pPMktVcTNOZE5oUTg1ZDVMQmxkVm92c1RHcVdqTVZHbGxQei9zWDkxcDBqOHNveTRlCiAgICAgICAgIDZlU2c9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWpFQ3V1c0xvb2FGUFdCUGlQTEU1MmJOOFhxYkVrL0ROYzE2TCtncldQT009OwogICAgICAgIGI9U24xMk1nS0hBTXdvRG94RGpwbit0RGJBelZ2c3ZvSURRM1N3b1RETkpBZzFtWDBCVCtsM1RFdzM4S0NidEw5ZDRTCiAgICAgICAgIGRkcVlmSENSaXB1QkgzZUxhb1J4Y2VKUGVmTVRQQi9xUE5WUGc3U0grY0I5SHpyRGNaMXJKM0xMckFDWkFyT2dWQVNICiAgICAgICAgIFBRRStZTHVXT2NtQ00xTVQ1NTFUWlNlSzNDbWozNlhuQVVVMmQxdFFlV2FPcXhEekZwTTE2UENUYlptMFVranh5b1kyCiAgICAgICAgIGNWZXRCeVUweGdOSG5icVk3cklQV1lyTDdEMHNKZy9kYjh2RkpQZ1BpYjE3Y0J0TFFlQU9vRGNPU3JqbWZZblhIYUQ3CiAgICAgICAgIGh4eGd6WVBvclhteG9XSmxoOW9uUFJkcncybEZncXFBaXozME9mQ1RTL1NPSzNvTnFqUmpHdVkzbnhwajhWMG9XaG5GCiAgICAgICAgIDNianc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWhyMng3RC9kRmI2Mmx3VERSRFAwcFZtbHFXN1pIbHdZSEVaN200R0V2U0ZMbTEwdmpMCglXdUNxaWxCSFJLdzZjbWxwRVBzRmU5QXIxckpISFJoQgpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQURLQ05iNFR3SVFhVnI2Q0tMZlZGTnFZSDJ2S05NME9yZ0NQeDRyeURkNmUrWFJhK3lzVnVhOFFwcnE3TEJQem5DdThRRVF0S0JIVm1DNkI2ZWxLcWt6UTFRTT0KWC1SZWNlaXZlZDogYnkgMTAuMTU5LjM0LjEzMiB3aXRoIFNNVFAgaWQgNG1yNzYxMTc2NnVhbi45OS4xNTA1MTMwODI3MTczOyBNb24sCiAxMSBTZXAgMjAxNyAwNDo1Mzo0NyAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTc2Ljg5LjYgd2l0aCBIVFRQOyBNb24sIDExIFNlcCAyMDE3IDA0OjUzOjQ2IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8cG9ueS01NmEzYWRlYWY2MGM0MDU5NmZiMjg0YjI0NTI0MTQ4ZjYwNWU4ZDIzLTUyZDQxY2Q0MGYyMzQzYzg5NTI4ODBlOGY4NGRhM2U4MGQzMzU1MDlAZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlZmVyZW5jZXM6IDxDQStuUG5NeHlHMk5lUFhwVnFhd2U5alI9aXRIRVQ2VXVkbk45Q2pIaHY9b28tS0NyeHdAbWFpbC5nbWFpbC5jb20+CiA8cG9ueS01NmEzYWRlYWY2MGM0MDU5NmZiMjg0YjI0NTI0MTQ4ZjYwNWU4ZDIzLTUyZDQxY2Q0MGYyMzQzYzg5NTI4ODBlOGY4NGRhM2U4MGQzMzU1MDlAZGV2Lm1hdmVuLmFwYWNoZS5vcmc+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTEgU2VwIDIwMTcgMTI6NTM6NDYgKzAxMDAKTWVzc2FnZS1JRDogPENBK25Qbk15UzJxMXVmYVcrUzZzbWhaWjFKY3hoZjloWTUtM25CSi1pQ1dlalBVQURWQUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSI5NGViMmMwM2ViMGU0YjU0ZGYwNTU4ZTg5NDk1IgoKLS05NGViMmMwM2ViMGU0YjU0ZGYwNTU4ZTg5NDk1CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpTbyB0aGF0IGlzIHdpbmRvd3Mgb25seSwgb3Igd2VyZSB0aGV5IGxvc3Qgb24gb3RoZXIgT1NlcyBmb3IgeW91LgoKSSBoYXZlIGNvbG91cnMgb24gbGludXggKHZpYSBkb2NrZXIpIGFuZCBvcy14CgpPbiAxMSBTZXB0ZW1iZXIgMjAxNyBhdCAxMjozNSwgZGVqYW4yNjA5QGdtYWlsLmNvbSA8ZGVqYW4yNjA5QGdtYWlsLmNvbT4Kd3JvdGU6Cgo+ICsxIChjb25kaXRpb25hbGx5KS4KPgo+IFRlc3RlZCB2aWEgcHJvamVjdCB0aGF0IGluY2x1ZGVzIGRvemVuIG9mIHBsdWdpbnM6IDFzdCB0aWVyLCBNb2pvSGF1cyBhbmQKPiBmZXcgM3JkIHBhcnR5IHBsdWdpbnMgKHNvIHRvIHNheSkuCj4KPiBFdmVyeXRoaW5nIGxvb2tzIGdvb2Qgd2l0aCBvbmUgbm90YWJsZSByZWdyZXNzaW9uOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyODIgQ29uc29sZSBvdXRwdXQgaGFzIG5vCj4gY29sb3JzIChyZWdyZXNzaW9uIGluIE1hdmVuIDMuNS4xKQo+Cj4gUmVnYXJkcywKPiBEZWphbgo+Cj4gT24gMjAxNy0wOS0xMCAxNzozOSwgU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KPiB3cm90ZToKPiA+IEhpLAo+ID4KPiA+IFdlIHNvbHZlZCAyNSBpc3N1ZXM6Cj4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4gdmVyc2lvbj0xMjMzODk2NCZzdHlsZU5hbWU9VGV4dCZwcm9qZWN0SWQ9MTIzMTY5MjIKPiA+Cj4gPiBUaGVyZSBhcmUgMzUwIGlzc3VlcyBsZWZ0IGluIEpJUkEgZm9yIE1hdmVuIGNvcmU6Cj4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9cHJvamVjdCUyMCUKPiAzRCUyME1ORyUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlCj4gMjBCWSUyMGR1ZSUyMEFTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMGNyZWF0ZWQlMjBBU0MKPiA+Cj4gPiBTdGFnaW5nIHJlcG86Cj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY0Lwo+ID4KPiA+IFRoZSBkaXN0cmlidXRhYmxlIGJpbmFyaWVzIGFuZCBzb3VyY2VzIGNhbiBiZSBmb3VuZCBoZXJlOgo+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS8KPiA+Cj4gPiBTcGVjaWZpY2FsbHkgdGhlIHppcCwgdGFyYmFsbCBhbmQgc291cmNlIGFyY2hpdmVzIGNhbiBiZSBmb3VuZCBoZXJlOgo+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtYmluLnppcAo+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtYmluLnRhci5nego+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcAo+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5nego+ID4KPiA+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+ID4gYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy50YXIuZ3ogc2hhMTogOWViODIxZjE1M2M3NjY3MTk0YWExMWNjZDA5OWI3Cj4gYmQyMDU5NTYwZAo+ID4gYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy56aXA6IHNoYTE6IDEyMWQ1NGIwNDUzODBhOGE0ODk1ZWIxMzc5NzBhYgo+IDY5ZTY5OGViMGUKPiA+Cj4gPiBHaXQgdGFnOgo+ID4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9bWF2ZW4uZ2l0O2E9Y29tbWl0O2g9Cj4gMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMwo+ID4KPiA+IFN0YWdpbmcgc2l0ZToKPiA+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9jb21wb25lbnRzL3JlZi8zLUxBVEVTVC8KPiA+Cj4gPiBWb3RlIG9wZW4gZm9yIDcyIGhvdXJzLgo+ID4KPiA+IFsgXSArMQo+ID4gWyBdICswCj4gPiBbIF0gLTEKPiA+Cj4gPiBUaGFua3MsCj4gPgo+ID4gU3RlcGhlbi4KPiA+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+CgotLTk0ZWIyYzAzZWIwZTRiNTRkZjA1NThlODk0OTUtLQoKRnJvbSBkZXYtcmV0dXJuLTEyMzk2Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gU2VwIDExIDExOjA0OjQ4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzk2Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBCOTQ2NjE5NjY0Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMTE6MDQ6NDggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1NTAyMiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAxMTowNDo0OCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTQ5NDkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgU2VwIDIwMTcgMTE6MDQ6NDggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NDkzNiBpbnZva2VkIGJ5IHVpZCA5OSk7IDExIFNlcCAyMDE3IDExOjA0OjQ4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAxMSBTZXAgMjAxNyAxMTowNDo0OCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDkwNzQyMUE1NDYwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAxMTowNDo0NyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDEuMDk5ClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MS4wOTkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglGUkVFTUFJTF9SRVBMWT0xLCBIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCA2dzlfNXl6ME5jcXEgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sIDExIFNlcCAyMDE3IDExOjA0OjQzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtdmswLWY0Ny5nb29nbGUuY29tIChtYWlsLXZrMC1mNDcuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxMy40N10pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAzRjAwOTVGNjQwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAxMTowNDo0MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC12azAtZjQ3Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIG8yMnNvOTM1MTQwOXZrZS4xCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMDQ6MDQ6NDMgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9a1ZOSU5uVytFV01sUEVrSE5saS8zZnR0R05kSHVqKytWemJVN1NPUFY2bz07CiAgICAgICAgYj1LcG8zTDBSQzVjYnJuN3VIMjNIS3FIU2JZMGxqT0tnQXJYTmRSSTJ0cS80V3h3UzFPQ09MSmsyYytXMzFQL1M1cE4KICAgICAgICAgMTJLTURnUEVjOVRQK1Zzc3lLNHB1RkU5OWdxNHg5L2JjalhZN3BsSU9CemlPcXZHVW0vbU1jRnRwYkNGUDhldXNBbEIKICAgICAgICAgMmxSNjBkQkMzcDRCemNTcFNsdWlUWVZJaUF4M2dMQ2VKVzVoUWw3a2l5RS9ZcmJtY201djNFVU1wMEtxcnpoc1JzQlQKICAgICAgICAgRFpHbXEza2RLMTV1K0Zva01HQ1FsWmNTUHROaytQVkFXajFueHBSSmNhaEh0OFRYako4cG14RXIySHZnT2pJNkt4UEoKICAgICAgICAgS2Z6WENuN2ljV016TitDRWQrNGRRMEZNaTBGdmhXbW1YZVhRR0d6V2ZsUCtoeVhSbDk3WE9IT2Y4enVpTVpLaVRyblQKICAgICAgICAgUGkvdz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9a1ZOSU5uVytFV01sUEVrSE5saS8zZnR0R05kSHVqKytWemJVN1NPUFY2bz07CiAgICAgICAgYj1ZQlFOYVRlNkMraE85MlF4SFJrQzQ4NU5mNDV1RTBjUVUxUTRIamxNS1FGbGFHZFZ1N1p4Nmt2NDJpK2ZTWEozd08KICAgICAgICAgdGQ2Tk45b21WTjdRSDVpSnVMaXNuSThkMTVtK1pwWGpCOUxWTzlHaDlpM2M3N3UrWkVGQVpjd3hWL3huT0E5RDNESUMKICAgICAgICAgRzZmU1pDcUZtSnRRZ0dEL0MxRzhZMitrazJZRU5oWE9YSmp6R2p4emlEbkR4djdWamswYUNqQlJwSFVOOW9jYUNWL2QKICAgICAgICAgdEtydEZURU00eGpXTkdqU3UwUTA4ZG1EeFppenRlK004M2NLamU0andLNENSMUVTR2RrMnIxakI0MnBLNTNvbXhDWTEKICAgICAgICAgVVl0Y2Q2NHZmbFBpeHo1MVZhTDlvSVFWcFlnTFhFbHlFQkNac1NDL3M2YUFHRUpiRUlzMGo3TURQa2tXbW00cisrSjMKICAgICAgICAgMUtsZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVaWZRZkh6alhnbWFjcEoxdnBvTlkrbHZwTGRtdlp1M2FJL0R0eDd3LzZna0dveGZWc3AKCWR3TEtVOUdVTzd3THNYQndkak9rSUpwT2h5UmFaMlp0ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FDNks0SDRDeEhJVVowQldJR3JUeS94ZWVWK3ZabCtxdm0yYlhiNDJIYjI2YWt5Y2V4YmU5WU5ETUNtbGZhdWRFZEk1ZXhENEpIbEsrNHljOUZHTzBBPQpYLVJlY2VpdmVkOiBieSAxMC4zMS43Mi4xMzMgd2l0aCBTTVRQIGlkIHYxMjdtcjY2NTM2Mzl2a2EuMTI0LjE1MDUxMjc4ODE4MzI7CiBNb24sIDExIFNlcCAyMDE3IDA0OjA0OjQxIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzYuODkuNiB3aXRoIEhUVFA7IE1vbiwgMTEgU2VwIDIwMTcgMDQ6MDQ6NDEgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxDQUt1VnpCUkhPSlZ6S2UtUVVMa0VxOVUzb29OR2tZYkcrTnROaGlkOXJnaU4tNj0yZXdAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxlZmI5Nzk2MC1lMWI3LTQyMjctNTk5OC1kZTJjMjQwMTViYjBAYXBhY2hlLm9yZz4KIDxDQStuUG5NdzdvZzVncnFKWk55WWMzSnlNSmNIPXJjaFMtR1lZRF9hTUF2ZUFpY0pvVXdAbWFpbC5nbWFpbC5jb20+CiA8NzhhZjk2NTUtNzZiYy1mNTZjLTJlYjUtMWFmMmMxMjBmNDNmQGFwYWNoZS5vcmc+IDxDQUt1VnpCUXE0WjBhTVhnNmRXOXZ4ZTN4QmYrZEhGMFMyTmZkSHZNUERGbmU4SHJZdXdAbWFpbC5nbWFpbC5jb20+CiA8MjRjYzM4ZTgtNWMzYS02NDAyLWNmZmYtODc2YjMyNGFhODcxQGdteC5kZT4gPENBS3VWekJSd2Z2K3o5QUN3YXNEZl9GbnFCMm81dzVSMHNmQ0dpTkp3RGdRSz1BT0t3QUBtYWlsLmdtYWlsLmNvbT4KIDxjZjg4MWU1OS02N2MwLTg1ZTctMWM0NC04MzdlNTIxZWY3NzlAYXBhY2hlLm9yZz4gPENBS3VWekJTLUhrVnBfb3czVno5bTdZMDdjbnorRVROY3FmQVpWaGdVb1RxaUhPM2dVQUBtYWlsLmdtYWlsLmNvbT4KIDw4OWQxNDM0NS05YjAyLWVmZTktNDBmZS0yMjA5YjFkOTdkNmZAYXBhY2hlLm9yZz4gPENBS3VWekJTeFd3NjBwSlMxRTJRUkpCLWNEd19tOHh1TURwMDYyOWhmSFdVT01lZ09CUUBtYWlsLmdtYWlsLmNvbT4KIDxDQStuUG5NeEVMY1JTLXIyenY0VnBLZ19fPWdhWGZTTXdSelVURThDdXdzQj0rRkc2V3dAbWFpbC5nbWFpbC5jb20+CiA8Q0ErblBuTXp3aVRiMFBSZ1l5VHZDR21lenhNQjZkLWZZZW9EYlhXczZSejZqSmlUK0pRQG1haWwuZ21haWwuY29tPiA8Q0FLdVZ6QlJIT0pWektlLVFVTGtFcTlVM29vTkdrWWJHK050TmhpZDlyZ2lOLTY9MmV3QG1haWwuZ21haWwuY29tPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBNb24sIDExIFNlcCAyMDE3IDEyOjA0OjQxICswMTAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NeVZaRnNWakFjel81M01RYm1YaHh4bWYzT2dkeWVHZWtmM3dxOWsxdENWV3dAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBUZXN0cyBmb3IgTU5HLTYyNzUgZmFpbCBvbiBKYXZhIDEuNy4wXzE1MS1iMDEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNGRkNGM0YmQ3MjVmMDU1OGU3ZTQzZCIKCi0tMDAxYTExNGRkNGM0YmQ3MjVmMDU1OGU3ZTQzZApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKVGlib3IsIHllcywgYnV0IHdpdGggSmF2YSA4IHRoZSBjbGFzcyBsb2FkZXIgdGhhdCBoYXMgdGhlIHNjcmlwdCBlbmdpbmUKY2hhbmdlZCwgd2hpY2ggaXMgd2hhdCBNTkctNjI3NSBpcyBhbGwgYWJvdXQuLi4gdGhlIGZhaWxpbmcgdGVzdHMgYXJlCmJlY2F1c2UgWnVsdSBKREsgNyBkb2Vzbid0IGhhdmUgYW55IHNjcmlwdCBlbmdpbmUgaW4gdGhlIGJvb3QgY2xhc3NwYXRoIGFuZAp0aGUgdGVzdCAoYXMgb3JpZ2luYWxseSB3cml0dGVuKSBhc3N1bWVzIHRoZXJlIGlzIGF0IGxlYXN0IG9uZQoKT24gMTEgU2VwdGVtYmVyIDIwMTcgYXQgMTE6NTEsIFRpYm9yIERpZ2FuYSA8dGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tPgp3cm90ZToKCj4gU2VydmljZUxvYWRlciBpbiBKYXZhIHRha2VzIFN5c3RlbSBDbGFzc0xvYWRlciBieSBkZWZhdWx0Lgo+Cj4gT24gTW9uLCBTZXAgMTEsIDIwMTcgYXQgMTE6NDEgQU0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Cj4gPiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL2NvbW1pdC81NDJhN2E4OTE1NjI2M2IzNGQxNDcyZTlkOWMxYTIKPiA+IDc5NWFmY2NkMmQKPiA+Cj4gPiBJZiB0aGUgSlJFIGRvZXMgbm90IGhhdmUgYSBTY3JpcHRFbmdpbmVGYWN0b3J5IHRoZW4gdGhlIHRlc3QgY2Fubm90IHBhc3MKPiBhcwo+ID4gaXQgcmVsaWVzIG9uIHRoZSBhc3N1bXB0aW9uIChpbnZhbGlkIGZvciBKYXZhIDcpIHRoYXQgdGhlcmUgaXMgYWx3YXlzCj4gPiBhIFNjcmlwdEVuZ2luZUZhY3RvcnkgYXZhaWxhYmxlLgo+ID4KPiA+IFlvdSBjYW4gdXNlIHRoaXMgc21hbGwgY2xhc3MgdG8gY2hlY2sgeW91ciBKUkUgZm9yICBTY3JpcHRFbmdpbmVGYWN0b3J5Cj4gPiBpbXBsZW1lbnRhdGlvbnM6Cj4gPgo+ID4gaW1wb3J0IGphdmEudXRpbC5TZXJ2aWNlTG9hZGVyOwo+ID4KPiA+IGltcG9ydCBqYXZheC5zY3JpcHQuU2NyaXB0RW5naW5lRmFjdG9yeTsKPiA+Cj4gPiBwdWJsaWMgY2xhc3MgUHJvYmVTY3JpcHRFbmdpbmVGYWN0b3J5IHsKPiA+IHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKPiA+IFNlcnZpY2VMb2FkZXI8U2NyaXB0RW5naW5lRmFjdG9yeT4gc2VmID0gU2VydmljZUxvYWRlci5sb2FkKAo+ID4gU2NyaXB0RW5naW5lRmFjdG9yeS5jbGFzcyApOwo+ID4gU3lzdGVtLm91dC5wcmludGxuKCJCb290IGNsYXNzbG9hZGVyIik7Cj4gPiBTeXN0ZW0ub3V0LnByaW50bG4oIj09PT09PT09PT09PT09PT0iKTsKPiA+IFN5c3RlbS5vdXQucHJpbnRsbigpOwo+ID4gZm9yIChTY3JpcHRFbmdpbmVGYWN0b3J5IGY6IHNlZikgewo+ID4gU3lzdGVtLm91dC5wcmludGxuKGYuZ2V0Q2xhc3MoKS5nZXROYW1lKCkpOwo+ID4gfQo+ID4gU3lzdGVtLm91dC5wcmludGxuKCk7Cj4gPiBzZWYgPSBTZXJ2aWNlTG9hZGVyLmxvYWQoIFNjcmlwdEVuZ2luZUZhY3RvcnkuY2xhc3MsCj4gPiBQcm9iZVNjcmlwdEVuZ2luZUZhY3RvcnkuY2xhc3MuZ2V0Q2xhc3NMb2FkZXIoKSApOwo+ID4gU3lzdGVtLm91dC5wcmludGxuKCJNYWluIGNsYXNzbG9hZGVyIik7Cj4gPiBTeXN0ZW0ub3V0LnByaW50bG4oIj09PT09PT09PT09PT09PT0iKTsKPiA+IFN5c3RlbS5vdXQucHJpbnRsbigpOwo+ID4gZm9yIChTY3JpcHRFbmdpbmVGYWN0b3J5IGY6IHNlZikgewo+ID4gU3lzdGVtLm91dC5wcmludGxuKGYuZ2V0Q2xhc3MoKS5nZXROYW1lKCkpOwo+ID4gfQo+ID4gfQo+ID4gfQo+ID4KPiA+IEhlcmUgYXJlIHNvbWUgb3V0cHV0czoKPiA+Cj4gPiBBcHBsZSBKVk0KPiA+IC0tLS0tLS0tLS0tLS0tCj4gPgo+ID4gamF2YSB2ZXJzaW9uICIxLjYuMF8yNCIKPiA+IEphdmEoVE0pIFNFIFJ1bnRpbWUgRW52aXJvbm1lbnQgKGJ1aWxkIDEuNi4wXzI0LWIwNy0zMzQpCj4gPiBKYXZhIEhvdFNwb3QoVE0pIDY0LUJpdCBTZXJ2ZXIgVk0gKGJ1aWxkIDE5LjEtYjAyLTMzNCwgbWl4ZWQgbW9kZSkKPiA+IEJvb3QgY2xhc3Nsb2FkZXIKPiA+ID09PT09PT09PT09PT09PT0KPiA+Cj4gPiBjb20uc3VuLnNjcmlwdC5qYXZhc2NyaXB0LlJoaW5vU2NyaXB0RW5naW5lRmFjdG9yeQo+ID4KPiA+IE1haW4gY2xhc3Nsb2FkZXIKPiA+ID09PT09PT09PT09PT09PT0KPiA+Cj4gPiBjb20uc3VuLnNjcmlwdC5qYXZhc2NyaXB0LlJoaW5vU2NyaXB0RW5naW5lRmFjdG9yeQo+ID4KPiA+IE9wZW5KREsgNyB1NjAKPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4KPiA+IG9wZW5qZGsgdmVyc2lvbiAiMS43LjAtdTYwLXVub2ZmaWNpYWwiCj4gPiBPcGVuSkRLIFJ1bnRpbWUgRW52aXJvbm1lbnQgKGJ1aWxkIDEuNy4wLXU2MC11bm9mZmljaWFsLWIzMCkKPiA+IE9wZW5KREsgNjQtQml0IFNlcnZlciBWTSAoYnVpbGQgMjQuNjAtYjA5LCBtaXhlZCBtb2RlKQo+ID4gQm9vdCBjbGFzc2xvYWRlcgo+ID4gPT09PT09PT09PT09PT09PQo+ID4KPiA+Cj4gPiBNYWluIGNsYXNzbG9hZGVyCj4gPiA9PT09PT09PT09PT09PT09Cj4gPgo+ID4gT3JhY2xlIEphdmEgN3U4MAo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+Cj4gPiBqYXZhIHZlcnNpb24gIjEuNy4wXzgwIgo+ID4gSmF2YShUTSkgU0UgUnVudGltZSBFbnZpcm9ubWVudCAoYnVpbGQgMS43LjBfODAtYjE1KQo+ID4gSmF2YSBIb3RTcG90KFRNKSA2NC1CaXQgU2VydmVyIFZNIChidWlsZCAyNC44MC1iMTEsIG1peGVkIG1vZGUpCj4gPiBCb290IGNsYXNzbG9hZGVyCj4gPiA9PT09PT09PT09PT09PT09Cj4gPgo+ID4gY29tLnN1bi5zY3JpcHQuamF2YXNjcmlwdC5SaGlub1NjcmlwdEVuZ2luZUZhY3RvcnkKPiA+Cj4gPiBNYWluIGNsYXNzbG9hZGVyCj4gPiA9PT09PT09PT09PT09PT09Cj4gPgo+ID4gY29tLnN1bi5zY3JpcHQuamF2YXNjcmlwdC5SaGlub1NjcmlwdEVuZ2luZUZhY3RvcnkKPiA+Cj4gPiBBenVsJ3MgWnVsdSA3dTE1NAo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+Cj4gPiBvcGVuamRrIHZlcnNpb24gIjEuNy4wXzE1NCIKPiA+IE9wZW5KREsgUnVudGltZSBFbnZpcm9ubWVudCAoWnVsdSA3LjIwLjAuMy1saW51eDY0KSAoYnVpbGQgMS43LjBfMTU0LWIwMSkKPiA+IE9wZW5KREsgNjQtQml0IFNlcnZlciBWTSAoWnVsdSA3LjIwLjAuMy1saW51eDY0KSAoYnVpbGQgMjQuMTU0LWIwMSwgbWl4ZWQKPiA+IG1vZGUpCj4gPiBCb290IGNsYXNzbG9hZGVyCj4gPiA9PT09PT09PT09PT09PT09Cj4gPgo+ID4KPiA+IE1haW4gY2xhc3Nsb2FkZXIKPiA+ID09PT09PT09PT09PT09PT0KPiA+Cj4gPiBPcmFjbGUgSmF2YSA4dTEzMQo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4KPiA+IGphdmEgdmVyc2lvbiAiMS44LjBfMTMxIgo+ID4gSmF2YShUTSkgU0UgUnVudGltZSBFbnZpcm9ubWVudCAoYnVpbGQgMS44LjBfMTMxLWIxMSkKPiA+IEphdmEgSG90U3BvdChUTSkgNjQtQml0IFNlcnZlciBWTSAoYnVpbGQgMjUuMTMxLWIxMSwgbWl4ZWQgbW9kZSkKPiA+IEJvb3QgY2xhc3Nsb2FkZXIKPiA+ID09PT09PT09PT09PT09PT0KPiA+Cj4gPiBqZGsubmFzaG9ybi5hcGkuc2NyaXB0aW5nLk5hc2hvcm5TY3JpcHRFbmdpbmVGYWN0b3J5Cj4gPgo+ID4gTWFpbiBjbGFzc2xvYWRlcgo+ID4gPT09PT09PT09PT09PT09PQo+ID4KPiA+IGpkay5uYXNob3JuLmFwaS5zY3JpcHRpbmcuTmFzaG9yblNjcmlwdEVuZ2luZUZhY3RvcnkKPiA+Cj4gPgo+ID4gTm93IElJVUMsIE5hc2hvcm4gaXMgcGFydCBvZiBKYXZhIDggYnV0IFJoaW5vIHdhcyBub3QgcmVxdWlyZWQgYXMgcGFydCBvZgo+ID4gSmF2YSA3LCBoZW5jZSBmcm9tIEphdmEgOCBvbndhcmRzIHRoZXJlIHNob3VsZCBhbHdheXMgYmUgYQo+ID4gU2NyaXB0RW5naW5lRmFjdG9yeSwgYnV0IG5vdCBldmVyeSBKYXZhIDcgd2FzIHJlcXVpcmVkIHRvIGhhdmUgb25lLgo+ID4KPiA+IE9uIDEwIFNlcHRlbWJlciAyMDE3IGF0IDE0OjU4LCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4KPiA+ID4gTWlnaHQganVzdCBiZSB0aGUgdGVzdCBpcyBsb29raW5nIGZvciBhbiBpbXBsZW1lbnRhdGlvbiBjbGFzcyBub3QKPiA+ID4gYXZhaWxhYmxlIG9uIHRob3NlIGpyZXMuIERvIHlvdSBoYXZlIHRoZSBmYWlsdXJlIG1lc3NhZ2VzCj4gPiA+Cj4gPiA+IE9uIFN1biAxMCBTZXAgMjAxNyBhdCAyMjoyOSwgVGlib3IgRGlnYW5hIDx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20KPiA+Cj4gPiA+IHdyb3RlOgo+ID4gPgo+ID4gPj4gWW91IHRoaW5rIGl0IGhhcyB0byBkbyB5b3UgdGhlIGNvbW1pdCBmaXhpbmcgQ2xhc3MgTG9hZGVyIGlzc3VlIG9yIHRoZQo+ID4gPj4gcHJldmlvdXMgY29tbWl0cyBhcyB3ZWxsPwo+ID4gPj4KPiA+ID4+IE9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDExOjIzIFBNLCBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZwo+ID4KPiA+ID4+IHdyb3RlOgo+ID4gPj4KPiA+ID4+ID4gQW0gMjAxNy0wOS0xMCB1bSAyMzoxOSBzY2hyaWViIFRpYm9yIERpZ2FuYToKPiA+ID4+ID4KPiA+ID4+ID4+IERlZmluaXRlbHkgSSBhZ3JlZSEKPiA+ID4+ID4+IExldCdzIHNlZSBpZiBpdCBpcyBKREsgaXNzdWUgb3IgcGxhdGZvcm0gaXNzdWUuIExldCdzIGV4Y2x1ZGUKPiBPcmFjbGUKPiA+ID4+IEphdmEKPiA+ID4+ID4+IHN1c3BpY2lvbiBhbmQgdGhlbiBpdCdzIHNlcmlvdXMgaXNzdWUuCj4gPiA+PiA+Pgo+ID4gPj4gPgo+ID4gPj4gPiBOb3QgYSBwbGF0Zm9ybSBvbmUuIFJlcHJvZHVjZWQgb24gV2luZG93cyAxMCB3aXRoIFp1bHUgNyBVcGRhdGUKPiAxNTQuIEkKPiA+ID4+ID4gd2lsbCBkb3dubG9hZCBPcmFjbGEgSmF2YSA3IGZyb20gTU9TQyBhbmQgdGVzdCBhZ2Fpbi4gSSBhbSBwcmV0dHkKPiBzdXJlCj4gPiA+PiB0aGF0Cj4gPiA+PiA+IGl0IHdpbGwgZmFpbCB0b28uCj4gPiA+PiA+Cj4gPiA+PiA+Cj4gPiA+PiA+IE9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDExOjE3IFBNLCBNaWNoYWVsIE9zaXBvdiA8Cj4gbWljaGFlbG9AYXBhY2hlLm9yZwo+ID4gPgo+ID4gPj4gPj4gd3JvdGU6Cj4gPiA+PiA+Pgo+ID4gPj4gPj4gQW0gMjAxNy0wOS0xMCB1bSAyMzoxNSBzY2hyaWViIFRpYm9yIERpZ2FuYToKPiA+ID4+ID4+Pgo+ID4gPj4gPj4+IFRoaXMgb25lIDEuNy4wXzgwIHdoaWNoIGlzIDd1ODA6Cj4gPiA+PiA+Pj4+IGh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobmV0d29yay9qYXZhL2phdmFzZS9kb3dubG9hZHMvCj4gPiA+PiA+Pj4+IGphdmEtYXJjaGl2ZS1kb3dubG9hZHMtamF2YXNlNy01MjEyNjEuaHRtbAo+ID4gPj4gPj4+Pgo+ID4gPj4gPj4+Pgo+ID4gPj4gPj4+IE5vIG9uZSB3aWxsIHNlcmlvdXNseSBydW4gdGhpcyBvbmUuIFNvIGlmIHdlIHNheSB0aGF0IG91ciBzdHVmZgo+IHJ1bnMKPiA+ID4+IG9mZgo+ID4gPj4gPj4+IDcKPiA+ID4+ID4+PiB0aGVuIHdlIGhhdmUgdG8gdGVzdCBPcGVuSkRLIGFuZCBadWx1IHRvby4KPiA+ID4+ID4+Pgo+ID4gPj4gPj4+IE1pY2hhZWwKPiA+ID4+ID4+Pgo+ID4gPj4gPj4+Cj4gPiA+PiA+Pj4gT24gU3VuLCBTZXAgMTAsIDIwMTcgYXQgMTE6MTIgUE0sIE1pY2hhZWwgT3NpcG92IDxtb3NpcG92QGdteC5kZT4KPiA+ID4+IHdyb3RlOgo+ID4gPj4gPj4+Cj4gPiA+PiA+Pj4+Cj4gPiA+PiA+Pj4+IEFtIDIwMTctMDktMTAgdW0gMjM6MDcgc2NocmllYiBUaWJvciBEaWdhbmE6Cj4gPiA+PiA+Pj4+Cj4gPiA+PiA+Pj4+Pgo+ID4gPj4gPj4+Pj4gTWljaGFlbCwgbm93IHRyeSB3aXRoIE9yYWNsZSBKYXZhIDcuCj4gPiA+PiA+Pj4+Pgo+ID4gPj4gPj4+Pj4+Cj4gPiA+PiA+Pj4+Pj4KPiA+ID4+ID4+Pj4+PiBMYXN0IHB1YmxpYyB2ZXJzaW9uIG9yIHVwLXRvLWRhdGUgcGFpZCB2ZXJzaW9uPwo+ID4gPj4gPj4+Pj4KPiA+ID4+ID4+Pj4+IE9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDExOjAyIFBNLCBNaWNoYWVsIE9zaXBvdiA8Cj4gPiA+PiBtaWNoYWVsb0BhcGFjaGUub3JnPgo+ID4gPj4gPj4+Pj4KPiA+ID4+ID4+Pj4+IHdyb3RlOgo+ID4gPj4gPj4+Pj4+Cj4gPiA+PiA+Pj4+Pj4gQW0gMjAxNy0wOS0xMCB1bSAyMjoyNyBzY2hyaWViIFN0ZXBoZW4gQ29ubm9sbHk6Cj4gPiA+PiA+Pj4+Pj4KPiA+ID4+ID4+Pj4+Pgo+ID4gPj4gPj4+Pj4+PiBXZWxsIEkgcmFuIHRoZSByZWxlYXNlIHdpdGggMS43LjBfODAgd2hpY2ggaWlyYyBpcyB0aGUgbGFzdAo+ID4gcHVibGljCj4gPiA+PiA+Pj4+Pj4+Cj4gPiA+PiA+Pj4+Pj4+IHJlbGVhc2UKPiA+ID4+ID4+Pj4+Pj4+IG9mIE9yYWNsZSBKYXZhIDcuLi4KPiA+ID4+ID4+Pj4+Pj4+Cj4gPiA+PiA+Pj4+Pj4+Pgo+ID4gPj4gPj4+Pj4+Pj4gRmFpbHMgYWxzbyBvbiBXaW5kb3dzIHdpdGggWnVsdSA3Ogo+ID4gPj4gPj4+Pj4+Pj4KPiA+ID4+ID4+Pj4+Pj4gJCBtdm4gLXYKPiA+ID4+ID4+Pj4+Pj4gQXBhY2hlIE1hdmVuIDMuNS4wIChmZjhmNWU3NDQ0MDQ1NjM5YWY2NWY2MDk1YzYyMjEwYjU3MTNmNDI2Owo+ID4gPj4gPj4+Pj4+PiAyMDE3LTA0LTAzVDIxOjM5OjA2KzAyOjAwKQo+ID4gPj4gPj4+Pj4+PiBNYXZlbiBob21lOiBEOlxFbnR3aWNrbHVuZ1xQcm9ncmFtbWVcYXBhY2hlLW1hdmVuLTMuNS4wCj4gPiA+PiA+Pj4+Pj4+IEphdmEgdmVyc2lvbjogMS43LjBfMTU0LCB2ZW5kb3I6IEF6dWwgU3lzdGVtcywgSW5jLgo+ID4gPj4gPj4+Pj4+PiBKYXZhIGhvbWU6IEM6XFByb2dyYW0gRmlsZXNcWnVsdVx6dWx1LTdcanJlCj4gPiA+PiA+Pj4+Pj4+IERlZmF1bHQgbG9jYWxlOiBkZV9ERSwgcGxhdGZvcm0gZW5jb2Rpbmc6IENwMTI1Mgo+ID4gPj4gPj4+Pj4+PiBPUyBuYW1lOiAid2luZG93cyAxMCIsIHZlcnNpb246ICIxMC4wIiwgYXJjaDogImFtZDY0IiwgZmFtaWx5Ogo+ID4gPj4gPj4+Pj4+PiAid2luZG93cyIKPiA+ID4+ID4+Pj4+Pj4KPiA+ID4+ID4+Pj4+Pj4KPiA+ID4+ID4+Pj4+Pj4KPiA+ID4+ID4+Pj4+Pj4gT24gU3VuIDEwIFNlcCAyMDE3IGF0IDIxOjA4LCBNaWNoYWVsIE9zaXBvdiA8Cj4gPiBtaWNoYWVsb0BhcGFjaGUub3JnPgo+ID4gPj4gPj4+Pj4+PiB3cm90ZToKPiA+ID4+ID4+Pj4+Pj4KPiA+ID4+ID4+Pj4+Pj4KPiA+ID4+ID4+Pj4+Pj4gRm9sa3MsCj4gPiA+PiA+Pj4+Pj4+Pgo+ID4gPj4gPj4+Pj4+Pj4KPiA+ID4+ID4+Pj4+Pj4+IHRyaWVkIHJ1bm5pbmcgbWFzdGVyIG9uCj4gPiA+PiA+Pj4+Pj4+Pj4gTWF2ZW4gaG9tZTogL3Vzci9sb2NhbC9zaGFyZS9qYXZhL21hdmVuCj4gPiA+PiA+Pj4+Pj4+Pj4gSmF2YSB2ZXJzaW9uOiAxLjcuMF8xNTEsIHZlbmRvcjogT3JhY2xlIENvcnBvcmF0aW9uCj4gPiA+PiA+Pj4+Pj4+Pj4gSmF2YSBob21lOiAvdXNyL2xvY2FsL29wZW5qZGs3L2pyZQo+ID4gPj4gPj4+Pj4+Pj4+IERlZmF1bHQgbG9jYWxlOiBkZV9ERSwgcGxhdGZvcm0gZW5jb2Rpbmc6IFVURi04Cj4gPiA+PiA+Pj4+Pj4+Pj4gT1MgbmFtZTogImZyZWVic2QiLCB2ZXJzaW9uOiAiMTEuMS1yZWxlYXNlLXAxIiwgYXJjaDoKPiAiaTM4NiIsCj4gPiA+PiA+Pj4+Pj4+Pj4gZmFtaWx5Ogo+ID4gPj4gPj4+Pj4+Pj4+ICJ1bml4Igo+ID4gPj4gPj4+Pj4+Pj4+Cj4gPiA+PiA+Pj4+Pj4+Pj4gYW5kIEkgZ2V0IHRoaXM6Cj4gPiA+PiA+Pj4+Pj4+Pj4gRmFpbGVkIHRlc3RzOgo+ID4gPj4gPj4+Pj4+Pj4+Cj4gPiA+PiA+Pj4+Pj4+Pj4KPiA+ID4+ID4+Pj4+Pj4+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1Xwo+IGNvcmVSZWFsbURlZmF1bHRQYXIKPiA+ID4+ID4+Pj4+Pj4+PiBlbnRDbGFzc0xvYWRlcjo5OQo+ID4gPj4gPj4+Pj4+Pj4+IG51bGwKPiA+ID4+ID4+Pj4+Pj4+Pgo+ID4gPj4gPj4+Pj4+Pj4+Cj4gPiA+PiA+Pj4+Pj4+Pj4gRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXN0TU5HNjI3NV8KPiBleHRlbnNpb25SZWFsbURlZmF1Cj4gPiA+PiA+Pj4+Pj4+Pj4gbHRQYXJlbnRDbGFzc0xvYWRlcjo3Mwo+ID4gPj4gPj4+Pj4+Pj4+IG51bGwKPiA+ID4+ID4+Pj4+Pj4+Pgo+ID4gPj4gPj4+Pj4+Pj4+Cj4gPiA+PiA+Pj4+Pj4+Pj4gRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXN0TU5HNjI3NV8KPiBtYXZlbkFwaVJlYWxtRGVmYXVsCj4gPiA+PiA+Pj4+Pj4+Pj4gdFBhcmVudENsYXNzTG9hZGVyOjkxCj4gPiA+PiA+Pj4+Pj4+Pj4gbnVsbAo+ID4gPj4gPj4+Pj4+Pj4+Cj4gPiA+PiA+Pj4+Pj4+Pj4KPiA+ID4+ID4+Pj4+Pj4+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1Xwo+IHBsdWdpblJlYWxtRGVmYXVsdFAKPiA+ID4+ID4+Pj4+Pj4+PiBhcmVudENsYXNzTG9hZGVyOjYyCj4gPiA+PiA+Pj4+Pj4+Pj4gbnVsbAo+ID4gPj4gPj4+Pj4+Pj4+Cj4gPiA+PiA+Pj4+Pj4+Pj4KPiA+ID4+ID4+Pj4+Pj4+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1Xwo+IHByb2plY3RSZWFsbURlZmF1bHQKPiA+ID4+ID4+Pj4+Pj4+PiBQYXJlbnRDbGFzc0xvYWRlcjo4Mwo+ID4gPj4gPj4+Pj4+Pj4+IG51bGwKPiA+ID4+ID4+Pj4+Pj4+Pgo+ID4gPj4gPj4+Pj4+Pj4+IEFsbCB0ZXN0cyBmYWlsIHdpdGggImp1bml0LmZyYW1ld29yay5Bc3NlcnRpb25GYWlsZWRFcnJvcjoKPiA+ID4+IG51bGwiLgo+ID4gPj4gPj4+Pj4+Pj4+Cj4gPiA+PiA+Pj4+Pj4+Pj4gUnVubmluZyB3aXRoCj4gPiA+PiA+Pj4+Pj4+Pj4gTWF2ZW4gaG9tZTogL3Vzci9sb2NhbC9zaGFyZS9qYXZhL21hdmVuCj4gPiA+PiA+Pj4+Pj4+Pj4gSmF2YSB2ZXJzaW9uOiAxLjguMF8xNDQsIHZlbmRvcjogT3JhY2xlIENvcnBvcmF0aW9uCj4gPiA+PiA+Pj4+Pj4+Pj4gSmF2YSBob21lOiAvdXNyL2xvY2FsL29wZW5qZGs4L2pyZQo+ID4gPj4gPj4+Pj4+Pj4+IERlZmF1bHQgbG9jYWxlOiBkZV9ERSwgcGxhdGZvcm0gZW5jb2Rpbmc6IFVURi04Cj4gPiA+PiA+Pj4+Pj4+Pj4gT1MgbmFtZTogImZyZWVic2QiLCB2ZXJzaW9uOiAiMTEuMS1yZWxlYXNlLXAxIiwgYXJjaDoKPiAiaTM4NiIsCj4gPiA+PiA+Pj4+Pj4+Pj4gZmFtaWx5Ogo+ID4gPj4gPj4+Pj4+Pj4+ICJ1bml4Igo+ID4gPj4gPj4+Pj4+Pj4+Cj4gPiA+PiA+Pj4+Pj4+Pj4gd29ya3MgZmxhd2xlc3NseS4KPiA+ID4+ID4+Pj4+Pj4+Pgo+ID4gPj4gPj4+Pj4+Pj4+IEFueSBpZGVhcz8KPiA+ID4+ID4+Pj4+Pj4+Pgo+ID4gPj4gPj4+Pj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPj4gPj4+Pj4+Pj4+IC0tLS0tLS0tLQo+ID4gPj4gPj4+Pj4+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+PiA+Pj4+Pj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4gPj4+Pj4+Pj4+Cj4gPiA+PiA+Pj4+Pj4+Pj4gLS0KPiA+ID4+ID4+Pj4+Pj4+Pgo+ID4gPj4gPj4+Pj4+Pj4+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4gPj4gPj4+Pj4+Pj4+Cj4gPiA+PiA+Pj4+Pj4+Pj4KPiA+ID4+ID4+Pj4+Pj4+Cj4gPiA+PiA+Pj4+Pj4+Pgo+ID4gPj4gPj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+PiA+Pj4+Pj4+PiAtLS0tLS0tLS0KPiA+ID4+ID4+Pj4+Pj4+Cj4gPiA+PiA+Pj4+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+PiA+Pj4+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+ID4+Pj4+Pj4KPiA+ID4+ID4+Pj4+Pj4KPiA+ID4+ID4+Pj4+Pj4KPiA+ID4+ID4+Pj4+Pj4KPiA+ID4+ID4+Pj4+Pj4KPiA+ID4+ID4+Pj4+Pgo+ID4gPj4gPj4+Pj4+Cj4gPiA+PiA+Pj4+Pgo+ID4gPj4gPj4+Pgo+ID4gPj4gPj4+Pgo+ID4gPj4gPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gLS0tLS0tLS0tCj4gPiA+PiA+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+ID4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+PiA+Pj4KPiA+ID4+ID4+Pgo+ID4gPj4gPj4+Cj4gPiA+PiA+Pgo+ID4gPj4gPj4KPiA+ID4+ID4KPiA+ID4+Cj4gPiA+Pgo+ID4gPj4gLS0KPiA+ID4+IENoZWVycwo+ID4gPj4gVGlib3IKPiA+ID4+Cj4gPiA+IC0tCj4gPiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4gPgo+ID4KPgo+Cj4KPiAtLQo+IENoZWVycwo+IFRpYm9yCj4KCi0tMDAxYTExNGRkNGM0YmQ3MjVmMDU1OGU3ZTQzZC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NzUzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBEZWMgIDYgMjI6NTk6MDAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzUzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIENERUREMTBGMjYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAgNiBEZWMgMjAxNyAyMjo1OTowMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ4Mjg3IGludm9rZWQgYnkgdWlkIDUwMCk7IDYgRGVjIDIwMTcgMjI6NTk6MDAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ4MjE3IGludm9rZWQgYnkgdWlkIDUwMCk7IDYgRGVjIDIwMTcgMjI6NTk6MDAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0ODIwNSBpbnZva2VkIGJ5IHVpZCA5OSk7IDYgRGVjIDIwMTcgMjI6NTk6MDAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDA2IERlYyAyMDE3IDIyOjU5OjAwICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNjEwMzIxQTA3NjgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsICA2IERlYyAyMDE3IDIyOjU4OjU5ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi4zNzkKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi4zNzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBSV0RaV0pIQmFoNU0gZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsICA2IERlYyAyMDE3IDIyOjU4OjU4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd20wLWY0Ni5nb29nbGUuY29tIChtYWlsLXdtMC1mNDYuZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjQ2XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEM2RTE2NUYyNTYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsICA2IERlYyAyMDE3IDIyOjU4OjU3ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNDYuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgZjE0MHNvOTc5NDczMndtZC4yCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMDYgRGVjIDIwMTcgMTQ6NTg6NTcgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9NFFSRUNzRjY4aUlrYzQ0WTAycWRJcXdpUEh6Tml1emVEb01GUjNpbmo2MD07CiAgICAgICAgYj1IdFY1TEROQ2dEak9iSWJxMFhrdW5lMHA3b2tmOHc0ZS81alhDeUFZLzh6Mm5jL1NJbWdJUGVucEk5WFh5RUxGUjIKICAgICAgICAgNEJ6eUN0cEtpbUl0UTZDOVJES3dTWDV4ajdudlBtd1JkSmRwam1uUzd3MEt2YlRYOTFPUWdLWXhkQndQcGV5aDNuNjkKICAgICAgICAgYzJ6aGV0VlJVTHEyNEh4UnBKakhWT1JVcVVsT1h2UTNpVzVTVEl5V1B0ZUQzMWZzREU3Znk2UTV4VGVxdksvM3FvNHQKICAgICAgICAgaTlVMU9zOHU5MU9wVjVDU3V1b2ZnNEJSTmN1aklOL1JLcmJ2VkdDSTBEbDJlTlZodytuUllHV3BuOHdhbk9XY2prS3oKICAgICAgICAgTHNOandLMDk4MGRJMHVTRGVuWFNNMXRETDBtWVA5V2RMRVN2VjZTYlA0NWdoTWFGYmhsVmJmVVIzYVo5eHNXd2pVZFUKICAgICAgICAgOEJLdz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9NFFSRUNzRjY4aUlrYzQ0WTAycWRJcXdpUEh6Tml1emVEb01GUjNpbmo2MD07CiAgICAgICAgYj1FV3lJUEpFU3ZwcGdJNE8rOU0wdUcvL3NhTTl5MDB1RWhVRU9FY3FYL0FvZnNyNUZiWUY1bCs4SFJNQnEvUlZjN1oKICAgICAgICAgaC83djdDbmo2T2h4d2FTdXE0WHJIa3hBR0lMcGZyWjRrb0U0SG4wRlJHYnBaL2ZnMkZvUXpUdEVDQjQzNkRkcmJUREUKICAgICAgICAgd3laQ3RxaDljMERxa0JqbE82UkRCc2NqYnhOZ1o5bUI0MDJmWURsZHNxUStRNGd1by8yMDdwakJ5eWxYQ0E2dXFuMVcKICAgICAgICAgcDhNU2JRV2JHTEc3VURJTzh5NFc4emxxc1MxaDUvR2s5cUdIdXczR1NhVHhmMHhBYjNrOHhERWxaYkZENkwrL3ZpVmMKICAgICAgICAgeEtyQWc2N3BkMElNeWIrQVhibEJ1MHBWd3E0cHhTODlkejNzV0l4ODl3S3ZhbmNYckt5Q0RCdy9mbEZ0MGJNenNybE0KICAgICAgICAgNzczZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUtHQjNtS2VjY3ZJR2l0NU1PWmVKUnh4Vi9wSllicXlTNFBYNXhyNDhMOVB4NGl6TU9VelJZYjQKCWl2SDUzc3RVNmw4alhTeW11eitiWnpSNmJhcmErRmN0SUkrUmhreUNDdz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1iTzFPK3NSTmFxa2h6ZVN0dm5idWpGUUhJbW1Ic092UFBTNnZodHgwaU9xbWVod3ZOdmhkcmJwc3JxeDBGOFhscHJGdFlmYk9SYnFWaFB5bmhPWmhvPQpYLVJlY2VpdmVkOiBieSAxMC4yOC40OS4xOTUgd2l0aCBTTVRQIGlkIHgxODZtcjkwMjU3ODZ3bXguMTE2LjE1MTI2MDExMzY2MTY7CiBXZWQsIDA2IERlYyAyMDE3IDE0OjU4OjU2IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDwxOTAwNTU4LkdGeDlRbGZhRTJAZ2lnYT4KSW4tUmVwbHktVG86IDwxOTAwNTU4LkdGeDlRbGZhRTJAZ2lnYT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAwNiBEZWMgMjAxNyAyMjo1ODo0NSArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXlWbldtNC10QWZhZVl2dGsxeDhINVQwMEZFbytTSjZzPXlZVGduPThIWHVRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogR2l0IG1pZ3JhdGlvbiBuZXh0IHN0ZXBzClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQyZTI2NDZmNWExNjA1NWZiM2U1YWMiCgotLTAwMWExMTQyZTI2NDZmNWExNjA1NWZiM2U1YWMKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gV2VkIDYgRGVjIDIwMTcgYXQgMjI6MzgsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cm90PQplOgoKPiBOb3cgdGhhdCB3ZSBoYXZlIDIgQVNGIE9yZ2FuaXphdGlvbiBKZW5raW5zIGpvYnMgKG9uZSBmb3IgZ2l0Ym94IFsxXSBhbmQKPiBvbmUKPiBmb3IgZ2l0LXdpcDogdGhhbmsgeW91IFN0ZXBoZW4pIGFuZCB0aGF0IGl0IGxvb2tzIHF1aXRlIHN1Y2Nlc3NmdWwsIGxldCdzCj4gcGxhbgo+IHRoZSBuZXh0IHN0ZXBzLgo+Cj4gSGVyZSBpcyB3aGF0IEkgc2VlOgo+IDEuIHJlbW92YWwgb2YgaGFuZC1kZWZpbmVkIEplbmtpbnMgam9icyB0aGF0IGFyZSBub3cgZHVwbGljYXRlcwo+Cj4gMi4gcHJlcGFyYXRpb24gb2YgdGhlIDYwIG5ldyBlbXB0eSBnaXQgcmVwb3MgZm9yIHNoYXJlZCAmIHBsdWdpbnMKPgo+IDMuIG1pZ3JhdGlvbiBvZiB0aGUgMSBzaGFyZWQgY29tcG9uZW50IGFuZCAxIHBsdWdpbiB1c2luZyBtaWdyYXRlLSouc2gKPiBzY3JpcHRzCj4gWzNdIHRvIHRlc3QgYW5kIGV2ZW50dWFsbHkgcmV3b3JrIHRoZSBKZW5raW5zZmlsZSAoSSBzdXBwb3NlIGl0IHdpbGwKPiByZXF1aXJlCj4gc29tZSBsaXR0bGUgY2hhbmdlLCB0byBydW4gYWRkICJydW4taXRzIiBwcm9maWxlKQo+CgpBcyBmYXIgYXMgSSByZWNhbGwsIEkgYWRkZWQgLVArcnVuLWl0cyBhbHJlYWR5CgpGb3IgdGhlIHBsdWdpbiwgSSdkIGxpa2UgdG8gZG8gdGhlIGpvYiBmb3IgbWF2ZW4tc2l0ZS1wbHVnaW4sIHNpbmNlIHdlCj4gZXhwZWN0Cj4gdG8gcmVsZWFzZSBpdCBzb29uLgo+IEZvciB0aGUgc2hhcmVkIGNvbXBvbmVudCwgSSBkb24ndCBrbm93IGlmIHRoZXJlIGlzIGEgYmVzdCBjYW5kaWRhdGUKPgo+IDQuIG9uY2UgcHJldmlvdXMgc3RlcCBpcyBvaywgZG8gdGhlIGZ1bGwgbWlncmF0aW9uOiBpZiB0aGVyZSBhcmUgdm9sdW50ZWU9CnJzCj4gZm9yIGhlbHBpbmcsIHRoYXQgd291bGQgYmUgZ3JlYXQsIHNpbmNlIHBvcHVsYXRpbmcgNjAgZ2l0IHJlcG9zIHdvbid0IGJlCj4gcmVhbGx5IGZ1bi4uLgo+Cj4gQW5kIGFzIHBhcnQgb2YgNjAgZW1wdHkgZ2l0IHJlcG9zIGNyZWF0aW9uLCBJIHByb3Bvc2UgdG8gbWlncmF0ZSB0aGUKPiAiR29vZ2xlCj4gcmVwbyBtYW5pZmVzdCIgbWF2ZW4tYWdncmVnYXRvciBbNF0gdG8gQVNGOiBteSBwZXJzb25hbCB1c2UgaGFzIGJlZW4gcXVpdD0KZQo+IHN1Y2Nlc3NmdWwsIEkgaG9wZSBpdCdzIHRoZSBzYW1lIGZvciBvdGhlcnMuIFBlcmhhcHMgdGhlcmUgYXJlIGJldHRlciBpZGU9CmFzCj4gZm9yIGl0cyBuYW1lOiBtYXZlbi1hZ2dyZWdhdG9yCj4KPiBBbnkgb3RoZXIgaWRlYT8gYW55IG9iamVjdGlvbj8KPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUMzPUE5Cj4KPiBbMV0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvCj4KPiBbMl0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi13aXAvCj4KPiBbM10gaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy92aWV3dmMvbWF2ZW4vc2FuZGJveC90cnVuay9zY3JpcHRzL2dpdC8KPgo+IFs0XSBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tYWdncmVnYXRvcgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPiAtLQpTZW50IGZyb20gbXkgcGhvbmUKCi0tMDAxYTExNDJlMjY0NmY1YTE2MDU1ZmIzZTVhYy0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NTc5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBOb3YgMjMgMTg6Mjc6MjIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTc5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDRCNTlBMTc3MUEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAyMyBOb3YgMjAxNyAxODoyNzoyMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE5NjQ1IGludm9rZWQgYnkgdWlkIDUwMCk7IDIzIE5vdiAyMDE3IDE4OjI3OjIxIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxOTU3NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMyBOb3YgMjAxNyAxODoyNzoyMSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE5NTY1IGludm9rZWQgYnkgdWlkIDk5KTsgMjMgTm92IDIwMTcgMTg6Mjc6MjEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDIzIE5vdiAyMDE3IDE4OjI3OjIxICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRDQ4ODkxQTBGOUUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDIzIE5vdiAyMDE3IDE4OjI3OjIwICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS44NzkKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjg3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgdjNiWDFvaGNtUWlWIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVGh1LCAyMyBOb3YgMjAxNyAxODoyNzoxOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdtMC1mNDMuZ29vZ2xlLmNvbSAobWFpbC13bTAtZjQzLmdvb2dsZS5jb20gWzc0LjEyNS44Mi40M10pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA3RURCNDVGQkVFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyMyBOb3YgMjAxNyAxODoyNzoxOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13bTAtZjQzLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIDEyNHNvMTcxODk5NHdtdi4xCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjMgTm92IDIwMTcgMTA6Mjc6MTggLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9dTRicDNDa0UrYVpGK2x4L2FCYkhrVE1Ua0JjT3BzZjRxOG85SDVZUGpQND07CiAgICAgICAgYj1aUG0zbVQrVTJwQ0pyQlpMcWJMb3RKYm5CL3lWalhCeWsxZ2lrME9HVW1hdEsySVhpUlhMVnNFMVdaK1pQYTVHRnYKICAgICAgICAgaU8rTVVhZDJyMGQ2cWhpRTc4WURpeTdlckxBclUwYlVQMlFzOHVCQ1JGSG1lYUlGcWlwWXlwTjdneEJtRXEwV0NwZ1IKICAgICAgICAgTGZTc1ZLRjcyeTRobGhvaVBJaUYxUUQreEY1S0RhbkdkSVE0WFRZY1JWek9xVS95ajBsU1ZwME0xU0ZCUFA1ZTYxa1EKICAgICAgICAgd2ZVMCtQOHFqOU1DQXdHbjBoeXBCT1E2d1pndWgvR0Zoc3BRTzhFVEFFUzdnWFZPdW52bnp1TUtVRW8wYjdmWldzTVUKICAgICAgICAgajQyYlpoVythQUJBZ0xKZnRLcVU4ZE04dHdCNmJwbW5ZRmJUbTI4VjZMSCtyNGdscFdOSENUaTk0c2hnQU5PNzdmNlAKICAgICAgICAgVnNqZz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9dTRicDNDa0UrYVpGK2x4L2FCYkhrVE1Ua0JjT3BzZjRxOG85SDVZUGpQND07CiAgICAgICAgYj1FRVE1eFZPMTh2QjQwemVkcEFGTVFEY1M4V1I3eDdVYWM4UUUwN3VtNWdrTGxBVTIwUmpTbzBBcGNRd3BEY2JuZXMKICAgICAgICAgZFNoV05DdzRkV0w0U3d4MVNjdUxhWk16M1h5dDFEalhkclFRV1V2bE5oMFphRUJ2Wmc4bHVJTnNiUVg2ZlVEZXplTUMKICAgICAgICAgclZMbUlJYnRJNDlKZ3R5RXEzdUtrekI5dXBaUFFNNmtJNENjWTVjOFF3WkdGdmZyVi9ITGdGODZteDdJbjhjOUNuVzQKICAgICAgICAgWklZWUx2WWZ5ejlaQ1RUdXQwR1BSZmQrcjd1dStSWHBBTGRxaWo5QmNldW51MkV5YzJERmpPdzRKbnFoS01MVVRuRTkKICAgICAgICAgc3VWeENuelNJMUd5eXBLaEFJSU91enlrUzc1WmhFMXFLdnpSRDZjT2hYNzEvVkZ4L2RURDVqMzZaQStEQzUvNmtqeEIKICAgICAgICAgVldxQT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYNWNuY1RDckJnR0JYRnV6eEw1ajRTWjYra2s5K1ZQNkgvS0FsQUwrNEduNDdmK3RFdFYKCWNYa1M5VW9UcmxnckZmVTVFT3VacWtUdkxqTEF4RzJGZlE2ZmNnQUxFdz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1iZHUxam51cExoZ2l3YzI4bmh5RUFpZTJyblVUL1dGemdjYmpid2xvTVdVeERkcGJwZ3c5UFZjK0tTWFRlbDJlVE9pN21DMnJhMk8rYmhQM2JNa1pnPQpYLVJlY2VpdmVkOiBieSAxMC4yOC44Ny43OCB3aXRoIFNNVFAgaWQgbDc1bXI4MjM3NTA2d21iLjk4LjE1MTE0NjE2MzczMjk7IFRodSwKIDIzIE5vdiAyMDE3IDEwOjI3OjE3IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDwyMDE3MTEwOTA1MzU1MS45NTdENDI5QzUwRDFAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPgogPDE2NjcxOTUudDdIZzJPTTliZUBnaWdhPiA8ODVjNTQ2MzgtZDgyNS02YzFjLWE1MDQtMTM4OGY4Yzc3N2M5QGFwYWNoZS5vcmc+CiA8NzkxNjg3OC55TG1NY2NEeVM3QGdpZ2E+IDw0MWVjZTMyNy0wYTc2LTk0MGUtOWRmYi02YzMzYmM2MjE0NTRAYXBhY2hlLm9yZz4KIDwyMDE3MTEyMzA0MjA0NS45QzgyODI5QzAzRDRAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPiA8Q0ErblBuTXpMZHRFNjFDWGMrdk81OHh0bj1qYlZSQlhVRlJqU0tSTVp4Q3ZLR05CLXp3QG1haWwuZ21haWwuY29tPgogPDIwMTcxMTIzMTYxMzQ1LjVDQTE4MjlDMDZGN0BkZDE3MzMyLmthc3NlcnZlci5jb20+CkluLVJlcGx5LVRvOiA8MjAxNzExMjMxNjEzNDUuNUNBMTgyOUMwNkY3QGRkMTczMzIua2Fzc2VydmVyLmNvbT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAyMyBOb3YgMjAxNyAxODoyNzowNiArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXlXWnFwNk5yX2hoRDNZN2FXb051VXZYWT1CTVFxWHFPOFd6ZFBjX3JzaTlRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogTWF2ZW4gcmVzb2x2ZXIgYnJhbmNoIGNvbnNvbGlkYXRpb24KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDQyNjdjZmMxODQyMDU1ZWFhOTU5OSIKCi0tMDAxYTExNDQyNjdjZmMxODQyMDU1ZWFhOTU5OQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpIZXJ2PUMzPUE5IG1pZ2h0IGtub3cuLi4gY291bGQgYmUgc2VsZi1zZXJ2aWNlIG9uIGdpdGJveCEKCkkgaGF2ZSB0d28gcmVwb3MgdG8gY3JlYXRlIGFmdGVyIHRoZSBKZW5raW5zIFNlcnZlciBpcyB1cGdyYWRlZCBvbiBTdW5kYXksCnNvIGxldCBtZSBrbm93IHRoZSBwcm9jZXNzCgpPbiBUaHUgMjMgTm92IDIwMTcgYXQgMTY6MTMsIE1hbmZyZWQgTW9zZXIgPG1hbmZyZWRAc2ltcGxpZ2lsaXR5LmNvbT4gd3JvdGU9CjoKCj4gU28gaG93IGRvIEkgbWFrZSB0aGlzIHJlcG8gY29weSBoYXBwZW4/IEFuIGluZnJhIHRpY2tldCBvciBzb21ldGhpbmcgbGlrZQo+IHRoYXQ/Cj4KPiBTdGVwaGVuIENvbm5vbGx5IHdyb3RlIG9uIDIwMTctMTEtMjIgMjM6NTM6Cj4KPiA+IE9uIFRodSAyMyBOb3YgMjAxNyBhdCAwNDoyMCwgTWFuZnJlZCBNb3NlciA8bWFuZnJlZEBzaW1wbGlnaWxpdHkuY29tPgo+IHdyb3RlOgo+ID4KPiA+PiBTdGF0dXMgdXBkYXRlIGFuZCBxdWVzdGlvbnM6Cj4gPj4KPiA+PiAtIGRlbW9zIGFyZSBhbGwgbm93IGluIG1hc3RlciBhbmQgcGFydCBvZiB0aGUgbXVsdGkgbW9kdWxlIGJ1aWxkCj4gPj4gLSBubyBjaGFuZ2VzIG9uIHRoZSBhbnQgdGFza3MgZm9yIG5vdwo+ID4+Cj4gPj4gUXVlc3Rpb25zOgo+ID4+Cj4gPj4gMS4gQ2FuIEkgZGVsZXRlIHRoZSBkZW1vcyBicmFuY2ggbm93IG9yIGRvIHdlIHdhaXQgdW50aWwgbmV4dCByZWxlYXNlPz0KIEkKPiA+PiB3b3VsZCBwcmVmZXIgdG8gZGVsZXRlIHRoZSBicmFuY2ggYW5kIGNsb3NlIHRoZSB0aWNrZXQgdG8gYmUgaG9uZXN0Lgo+ID4+Cj4gPj4gMi4gSSBsaWtlIHRoZSBpZGVhIG9mIHByb21vdGluZyB0aGUgYW50IHRhc2sgZnJvbSBiZWluZyBoaWRkZW4gaW4gdGhlCj4gPj4gYnJhbmNoIGludG8gdGhlaXIgb3duIHJlcG8uIEFsbCB3ZSB3b3VsZCBoYXZlIHRvIGRvIGlzIHRvIGNvcHkgdGhlCj4gZXhpc3RpbmcKPiA+PiByZXBvIHNvbWVob3cgaW50byBhIG5ldyByZXBvIGluIGFwYWNoZSBnaXQuIFRoZW4gd2UgY2FuIGREZWxldGUgYWxsIHRoPQplCj4gPj4gYnJhbmNoZXMgYXBhcnQgZnJvbSB0aGUgYW50LXRhc2sgYnJhbmNoIGFuZCBtYWtlIHRoYXQgdGhlIG1hc3Rlci4gRG9uZT0KLgo+IEkKPiA+PiBhbSBoYXBweSB0byBkbyB0aGF0IGluIHRlcm1zIG9mIHRoZSBicmFuY2hlcyBhbmQgc28gb24gYnV0IGhvdyBkbyBJIGdvCj4gPj4gYWJvdXQgZ2V0dGluZyB0aGUgcmVwbyBjb3BpZWQgaW50byBhIG5ldyByZXBvIG5hbWVkCj4gPj4gbWF2ZW4tcmVzb2x2ZXItYW50LXRhc2tzPwo+ID4KPiA+Cj4gPiBJIGxpa2UgdGhhdCBzb2x1dGlvbiB0b28KPiA+Cj4gPj4KPiA+Pgo+ID4+IFRoYW5rcwo+ID4+Cj4gPj4gTWFuZnJlZAo+ID4+Cj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4KPiA+PiAtLQo+ID4gU2VudCBmcm9tIG15IHBob25lCj4gPgo+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+IC0tClNlbnQgZnJvbSBteSBwaG9uZQoKLS0wMDFhMTE0NDI2N2NmYzE4NDIwNTVlYWE5NTk5LS0KCkZyb20gZGV2LXJldHVybi0xMjQ4MjUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIERlYyAyNCAxMTo1NzowNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4MjUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgN0JENTgxNzlCMwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDI0IERlYyAyMDE3IDExOjU3OjA0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjM5NzEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjQgRGVjIDIwMTcgMTE6NTc6MDQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIzODg5IGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IERlYyAyMDE3IDExOjU3OjA0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjM4NzMgaW52b2tlZCBieSB1aWQgOTkpOyAyNCBEZWMgMjAxNyAxMTo1NzowMyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMjQgRGVjIDIwMTcgMTE6NTc6MDMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA1Njc2RTFBMDZFNAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjQgRGVjIDIwMTcgMTE6NTc6MDMgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC45MDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuOTAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgT3lZUTNHWWhwVmJwIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAyNCBEZWMgMjAxNyAxMTo1Njo1OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdyMC1mMTcxLmdvb2dsZS5jb20gKG1haWwtd3IwLWYxNzEuZ29vZ2xlLmNvbSBbMjA5Ljg1LjEyOC4xNzFdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNEI2ODc1RjIwMQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjQgRGVjIDIwMTcgMTE6NTY6NTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd3IwLWYxNzEuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgdTE5c28yNTAxNDA5N3dyYy4zCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjQgRGVjIDIwMTcgMDM6NTY6NTggLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9VkdueWNhd0JMR3A1Vlc2UWZsWm1hNjRmcTZudnlETTQwWkY4eVFOek1UOD07CiAgICAgICAgYj1yRXl1Rm5INmcrQTV3c1JweU1KZ2NwZFN5ZnpWd1hocTdzTlFlVllEUkh4YnhXMGRYZDlaSmNTa1Z1R1pta09QT2YKICAgICAgICAgcVhxKzFrZnNnTkI4ckJBN3ZjWkk5TFM5QkZzZ3owcGRmeHlvTTZNQTRKUXY0UjRoMG1CWGk1QVBWMk56cXRabm01VmYKICAgICAgICAgYW9zNFhEMkNiWWdva245TkZDWEdWS1ZibUk2TnJxS1pCYzRhMWdUWS9RSWt3WUczclQ4eUJVTTF1OS9RMmpzb05hZ3oKICAgICAgICAgRjd6dzhtZmk2MnBPckVoRm9ibjJPRThrbDJJb1FIZWI2RGZtV2V1aUpwa3Bydm1RZThieFRZQkxtY0tWeFdlMUtFdHYKICAgICAgICAgalIwd3FPVVV3V1VwaURFbUg5QUx5Nk0yYWZqZEhkRkpmelhQaFE4azMzUUFIRmtPU05FWDdiNkJVdjdqcmEvR2NtTmYKICAgICAgICAgUWxxdz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9VkdueWNhd0JMR3A1Vlc2UWZsWm1hNjRmcTZudnlETTQwWkY4eVFOek1UOD07CiAgICAgICAgYj1TVk5OZUpqM3dzczRvS0pFcDJvRDlxbWNzZ242YU1NVTJPNUFxN3VvR1dZM2ljREtlWkVISW01bkE3aDFld0RaYlUKICAgICAgICAgTVRRV0V5S3AwRzlJKzh0elJtTzBCYlRNRm85OVlWTWhoTVpORkU4aHJaTkl0Y3dvc1JIQTdDTW9IaTNwb3J0QnlldFEKICAgICAgICAgWUN3OTNmWitOUzZlekpPUFlmN2ZpVVpnTjQrK1MxTE1zUGc3TEZLczBFMVFRWW85Qmg3bG52UGdIVGxla1Q1M0tBVVUKICAgICAgICAgTVNoY1dhQjNRNnlXbVVIMjYzbEdxZ3dHaWpRSWpodVFIWjN1VVMrWEw1b2xTRkR1dmZ2cUVVSENDa3NMVkVtMDRuWjMKICAgICAgICAgOWZnaDBINS83RFo2ckZkTkw4b00wNFBzNVBRZFdCQ0F3d3hRNjJCcjR0cFJxMTRTUW9MQmc4ODlzMVlOVWdyQk5WRzUKICAgICAgICAgYTdtQT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUtHQjNtSzAycCt3M3ZNV2Q2dHNLKzlvSXlNTlNRTSs1QkJNK1BvQXU0VjFlZHpKbHFiek9XWUcKCXYyU2N1aHoxeG9DM0NYODk5cW9zWHhHL24raUdNZXZMRElTYm15NEMwdz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQ0pmQm92bWowVVRqM0NWZ2VGVi9OUTE5U0RTL0IrMHJuYWdDN3V6aVRhSG05UHo0N1RxRTFpNlFjVCthKzl3bFBIektEamxkZ0VJMG41U0p3MHZjQ3BlSkJrPQpYLVJlY2VpdmVkOiBieSAxMC4yMjMuMTcxLjEzMiB3aXRoIFNNVFAgaWQgczRtcjkxODQ2NHdyYy4xOTQuMTUxNDExNjYxNzYzMDsKIFN1biwgMjQgRGVjIDIwMTcgMDM6NTY6NTcgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPDczOGM5OWQzLTQ0NDEtNzQxZS0xNmRmLTc0N2M1ZjRmNWIxY0BnbXguZGU+IDwyMDA5NzY1NTkyLjIyOTcyMjE3LjE1MTQxMDkyNTY2MzIuSmF2YU1haWwucm9vdEBzcG9vbGVyNC1nMjc+CkluLVJlcGx5LVRvOiA8MjAwOTc2NTU5Mi4yMjk3MjIxNy4xNTE0MTA5MjU2NjMyLkphdmFNYWlsLnJvb3RAc3Bvb2xlcjQtZzI3PgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBTdW4sIDI0IERlYyAyMDE3IDExOjU2OjQ3ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NeWFCNUY0cldCNTJEbVU9M2RrT0p5RGpINHloWT1FbVZSMERILVVtWmU3T2dAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbSU1QT1JUQU5UXSBSZTogR2l0IG1pZ3JhdGlvbiBuZXh0IHN0ZXBzClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQ3YjVmMDI0NzgwMDA1NjExNGJmNTkiCgotLTAwMWExMTQ3YjVmMDI0NzgwMDA1NjExNGJmNTkKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKRGVwZW5kaW5nIG9uIHRoZSBjaGFuZ2VzLCBtYXkgbm90IGJlIGFueSBuZWVkIHRvIGludm9sdmUgaW5mcmEuIFlvdSBzaG91bGQKYmUgYWJsZSB0byBkZWxldGUgdGFncyAoYW5kIHRoZW4gcmVjcmVhdGUgdGhlbSk6CgokIGdpdCBwdXNoIG9yaWdpbiA6Ym9ya2VkLXRhZy1uYW1lCgpQcmVzdW1hYmx5IG1hc3RlciB3aWxsIHN0aWxsIGhhdmUgdGhlIHNhbWUgaGFzaCAoYXMgb25seSB0aGUgdGFncyBuZWVkCmZpeHVwKQoKV2U9RTI9ODA9OTlkIG9ubHkgbmVlZCBpbmZyYSAqaWYqIHRoZSBicmFuY2hlcyBuZWVkIGEgZm9yY2UgdXBkYXRlICphbmQqIHdlPQogaGF2ZQp0aGVtIHNldCBhcyBwcm90ZWN0ZWQgKGxpa2UgbWFzdGVyIG9uIGNvcmUgJiBzdXJlZmlyZSksIGJ1dCBJIGRvbj1FMj04MD05OXQ9CiB0aGluawp0aGF0IGlzIHRoZSBjYXNlIGFzIElJUkMgcHJvdGVjdGVkIGJyYW5jaGVzIGFyZSBvcHQtaW4uCgoKCk9uIFN1biAyNCBEZWMgMjAxNyBhdCAwOTo1NCwgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3JvdGU6Cgo+IEknZCBzdWdnZXN0IHRvIHRyeSB0aGUgcHJvY2VzcyB0byBhIHBlcnNvbmFsIHBlcnNvbmFsIHJlcG8gb24gR2l0SHViIHRvCj4gc2VlIGlmIHlvdSdyZSBhYmxlIHRvIGdldCBhIGJldHRlciByZXN1bHQgYmVmb3JlIGludm9sdmluZyBtYW51YWwgd29yayBmcj0Kb20KPiBJTkZSQSAob24gbW9yZSB0aGFuIDYwIHJlcG9zLi4uKQo+Cj4gKGl0J3Mgc2FkIHRvIHNlZSBub2JvZHkgdHJ5IHRvIGV4cGxhaW4gd2hhdCdzIGhhcHBlbm5pbmcgb3IgaW1wcm92ZSB0aGUKPiBkb2N1bWVudGVkIGNvbW1hbmRzLCBqdXN0IGdldCB0byBhIGNvbmNsdXNpb246IHJlLWRvIGV2ZXJ5dGhpbmcgYW5kIHByYXkpCj4KPiBSZWdhcmRzLAo+Cj4gSGVydj1DMz1BOQo+Cj4gLS0tLS0gTWFpbCBvcmlnaW5hbCAtLS0tLQo+IERlOiAiS2FybCBIZWlueiBNYXJiYWlzZSIgPGtobWFyYmFpc2VAZ214LmRlPgo+ID1DMz04MDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwgIlJvYmVydCBTY2hvbHRlIiA9CjwKPiByZnNjaG9sdGVAYXBhY2hlLm9yZz4KPiBFbnZveT1DMz1BOTogRGltYW5jaGUgMjQgRD1DMz1BOWNlbWJyZSAyMDE3IDEwOjQ3OjQzCj4gT2JqZXQ6IFJlOiBbSU1QT1JUQU5UXSBSZTogR2l0IG1pZ3JhdGlvbiBuZXh0IHN0ZXBzCj4KPiBIaSwKPgo+IE9uIDI0LzEyLzE3IDEwOjQwLCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPiA+IEhvdyBhYm91dCBhIGhhcmQgcmVzZXQgb3IgZHJvcHBpbmcgdGhlIHJlcG8gYW5kIGRvaW5nIGl0IGFsbCBvdmVyIGFnYWluPQo/Cj4KPiBJZiBJIGNvcnJlY3RseSBzZWVuIHRoYXQgLi50aGVyZSBoYWQgbm8gY29tbWl0IHlldCBvbiB0aGUgbmV3IGdpdCByZXBvcy4uCj4KPiBTbyBJIHRoaW5rIGl0IHdvdWxkIGJlIHRoZSBlYXNpZXN0IHdheSB0byBkbyBhcyBSb2JlcnQgc3VnZ2VzdCAuLi50bwo+IHJlZG8gbWlncmF0aW9uIGZvciB0aG9zZSByZXBvcy4uCj4KPiBLaW5kIHJlZ2FyZHMKPiBLYXJsIEhlaW56Cj4gPgo+ID4gT24gV2VkLCAyMCBEZWMgMjAxNyAxMDo0MjozNiArMDEwMCwgSGVydj1DMz1BOSBCT1VURU1ZCj4gPiA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cm90ZToKPiA+Cj4gPj4gSU5GUkEtMTU2NzkgZml4ZWQgYnkgaW5mcmEgdGVhbQo+ID4+IHRoZW4gSSByZS1ydW4gbWlncmF0ZS1wbHVnaW5zLnNoIHNjcmlwdCB0byBzcGxpdCB0aGUgc3ZuMmdpdCBtaXJyb3IgdG8KPiA+PiBwZXItCj4gPj4gcGx1Z2luIGdpdCByZXBvCj4gPj4gYW5kIEkgcHVzaGVkICJtYXN0ZXIyIiBicmFuY2hlcyBmb3IgbS1qYXZhZG9jLXAsIG0tc2l0ZS1wIGFuZCBtLXBkZi1wLAo+ID4+IHdoaWNoCj4gPj4gd2VyZSB0aGUgMyBwbHVnaW5zIHdoaWNoIHN1ZmZlcmVkIGZyb20gbWlzc2luZyBjb21taXRzCj4gPj4KPiA+PiBvbiBtLXNpdGUtcCBhbmQgbS1wZGYtcCwgSSdsbCBjaGVycnkgcGljayB0aGUgdW5pcXVlIGNvbW1pdCB0aGF0IHdhcwo+ID4+IG1pc3NlZDoKPiA+PiBub3QgYSBiaWcgZGVhbAo+ID4+Cj4gPj4gb24gbS1qYXZhZG9jLXAsIHRoZSBzaXR1YXRpb24gaXMgbW9yZSBjb3BsZXgsIHNpbmNlIHRoZXJlIHdhcyBhIHJlbGVhcz0KZQo+ID4+Cj4gPj4gSSBhbHNvIG5vdGljZWQgdGhhdCBJIGZvcmdvdCB0byBwdXNoIHRhZ3Mgd2hlbiBpbXBvcnRpbmc6IEkgc3RhcnRlZCB0bwo+ID4+IGRvICJnaXQKPiA+PiBwdXNoIC0tdGFncyIsIGJ1dCB0aGUgcmVzdWx0IGRvZXMgbm90IGxvb2sgYXMgSSBleHBlY3RlZDogaXQgY3JlYXRlcyBhCj4gPj4gbG90IG9mCj4gPj4gcGFyYWxsZWwgYnJhbmNoZXMKPiA+Pgo+ID4+IEknbGwgbmVlZCBoZWxwIGZyb20gZ2l0IGV4cGVydHM6IHdoYXQgaXMgaGFwcGVuaW5nPwo+ID4+Cj4gPj4gSSBzdG9wcGVkIHRoZSB0YWdzIHB1c2ggaGFsZiB0aGUgd2F5LCB3ZSdsbCBuZWVkIHRvIGRlY2lkZSB3aGF0IHRvIGRvLj0KLi4KPiA+PiAoSSBrbmV3IEkgd2FzIG5vdCBhIGdpdCBleHBlcnQgYW5kIHRoZXJlIHdhcyBhIHJpc2sgZm9yIHNvbWV0aGluZwo+ID4+IHdlaXJkIGxpa2UKPiA+PiB3aGF0J3MgY3VycmVudGx5IGhhcHBlbmluZy4uLikKPiA+Pgo+ID4+IEFueSBoaW50Pwo+ID4+Cj4gPj4gUmVnYXJkcywKPiA+Pgo+ID4+IEhlcnY9QzM9QTkKPiA+Pgo+ID4+IExlIHNhbWVkaSAxNiBkPUMzPUE5Y2VtYnJlIDIwMTcsIDE2OjI4OjQ4IENFVCBIZXJ2PUMzPUE5IEJPVVRFTVkgYSA9QzM9Cj1BOWNyaXQgOgo+ID4+PiBvaywgSSB3YXMgY29uZnVzZWQgYnkgdGhlIGRpZmZlcmVudCB0YWtlcyBhdCBtLWphdmFkb2MtcCAzLjAuMAo+ID4+Pgo+ID4+PiB5ZXMsIHN2bjJnaXQgbWlycm9yIGlzIHN0dWNrIFsxXSBhdCByMTgxNTY3NQo+ID4+Pgo+ID4+PiBJIGp1c3Qgb3BlbmVkIGFuIElORlJBIEppcmEgaXNzdWUKPiA+Pj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9JTkZSQS0xNTY3OQo+ID4+Pgo+ID4+PiBvbmNlIHRoZSBzdm4yZ2l0IG1pcnJvciB3aWxsIGJlIHVwZGF0ZWQsIHdlJ2xsIGhhdmUgdG8gcmUtcnVuIHRoZSBzcGw9Cml0Cj4gPj4+IHNjcmlwdHMgYW5kIGNoZXJyeSBwaWNrIHRoZSBtaXNzaW5nIGNvbW1pdHMKPiA+Pj4KPiA+Pj4gUmVnYXJkcywKPiA+Pj4KPiA+Pj4gSGVydj1DMz1BOQo+ID4+Pgo+ID4+PiBbMV0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL2NvbW1pdHMvdHJ1bmsKPiA+Pj4KPiA+Pj4gTGUgc2FtZWRpIDE2IGQ9QzM9QTljZW1icmUgMjAxNywgMTM6MDE6MDUgQ0VUIFJvYmVydCBTY2hvbHRlIGEgPUMzPUE5PQpjcml0IDoKPiA+Pj4gPiBJIHdhcyB0cmlnZ2VyZWQgYnkgc29tZSBmYWlsaW5nIHVuaXQgdGVzdHMsIHdoaWNoIHNob3VsZCBoYXZlIGJlZW4KPiA+Pj4gc29sdmVkCj4gPj4+ID4gaW4gbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAKPiA+Pj4gPgo+ID4+PiA+IE15IGxhc3QgY29tbWl0IGFjY29yZGluZyB0byBHSVQgd2FzIG5vdmVtYmVyIDE4dGgKPiA+Pj4gPiBNeSBsYXN0IGNvbW1pdCBhY2NvcmRpbmcgdG8gU1ZOIHdhcyBkZWNlbWJlciAzcmQKPiA+Pj4gPgo+ID4+PiA+IGNvbXBhcmluZyBzdm5sb2cgd2l0aCBnaXRsb2cgbW9zdCBvZiB0aGVzZSBjb21taXRzIGFyZSBsb3N0Ogo+ID4+PiA+Cj4gPj4+ID4gbW92ZWQgdG8gZ2l0Cj4gPj4+ID4gLS0tLQo+ID4+PiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSBmb3IgbmV4dCBkZXZlbG9wbWVudCBpdGVyYXRpb24KPiA+Pj4gPiAtLS0tCj4gPj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIHJlbGVhc2UgbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAKPiA+Pj4gPiAtLS0tCj4gPj4+ID4gW01KQVZBRE9DLTQ5OF0gIm1vZHVsZSBub3QgZm91bmQiIHdoZW4gSmF2YSA5IG1vZHVsZS1pbmZvIHByZXNlbnQKPiA+Pj4gPiBTdXBwb3J0IGFnZ3JhdGVkIGphdmFkb2MKPiA+Pj4gPiAtLS0tCj4gPj4+ID4gU2tpcCBzZXZlcmFsIHVuaXR0ZXN0cyBmb3IgSmF2YTkKPiA+Pj4gPiAtLS0tCj4gPj4+ID4gSkRLLTgwMzIyMDUgd2FzIGNsb3NlZCBhcyBub3QgYW4gaXNzdWUsIHNvIG5vdCBzb2x2ZWQgaW4gSmF2YTkuCj4gPj4+ID4gTmVlZCB0byByZXZpZXcgdGhlIGNvbmNsdXNpb24KPiA+Pj4gPiAtLS0tCj4gPj4+ID4gVXBncmFkZSBtb2NraXRvIHRvIHJlbW92ZSB3YXJuaW5nIGFib3V0IGlsbGVnYWwgcmVmbGVjdGl2ZSBhY2Nlc3MKPiA+Pj4gPiAtLS0tCj4gPj4+ID4gSW1wcm92ZSBUZXN0SmF2YWRvY1JlcG9ydFRlc3QjdGVzdFRlc3RKYXZhZG9jCj4gPj4+ID4gSjggd2FybnMgYW5kIGNvbnRpbnVlcyB3aXRoIG1pc3NpbmcgZGVwZW5kZW5jeSwgSjkgZmFpbHMuCj4gPj4+ID4gSW4gZmFjdCB0ZXN0IHdhcyB3cm9uZzogZGVwZW5kZW5jeSBzaG91bGQgaGF2ZSBiZWVuIG9uIGNsYXNzcGF0aAo+ID4+PiA+IC0tLS0KPiA+Pj4gPiB1bml0dGVzdCBzaG91bGQgcHJlZmVyIEpBVkFfSE9NRSB3aGVuIGV4ZWN1dGluZyBmcm9tIGNtZGxpbmUKPiA+Pj4gPiBXaGVuIHJ1bm5pbmcgd2l0aCBKYXZhOSsgbm8gbmVlZCB0byBzd2l0Y2ggZnJvbSBqcmUgdG8gamRrIGRpcmVjdG9yPQp5Cj4gPj4+ID4gKGplcDIyMCkKPiA+Pj4gPiAtLS0tCj4gPj4+ID4gTUpBVkFET0MtNTAyIFVwZGF0ZSBERUZBVUxUX0pBVkFfQVBJX0xJTktTCj4gPj4+ID4gLS0tLQo+ID4+PiA+IHNlc3Npb24gaXMgcmVxdWlyZWQgcGFyYW1ldGVyLCBzbyBjYW5ub3QgYmUgbnVsbC4gRml4IHJlbGF0ZWQKPiA+Pj4gdW5pdHRlc3RzCj4gPj4+ID4gLS0tLQo+ID4+PiA+IEFkZCBwcm9qZWN0L2FydGlmYWN0IGtleSB0byBzZXQgb2Ygc291cmNlUGF0aHMgdG8gcmVjb2duaXplIHJlYWN0b3IKPiA+Pj4gPiBwcm9qZWN0cyB2ZXJzdXMgZGVwZW5kZW5jaWVzCj4gPj4+ID4gLS0tLQo+ID4+PiA+IEdyb3VwIHNldHMgb2Ygc291cmNlcGF0aHMgcGVyIHByb2plY3QsIGluIHByZXBhcmUgb2YgdXNhZ2Ugb2YKPiA+Pj4gPiBtb2R1bGUtc291cmNlLXBhdGguCj4gPj4+ID4gLS0tLQo+ID4+PiA+IFN3aXRjaCBmcm9tIExpc3QgdG8gQ29sbGVjdGlvbiB0byBtYWtlIGl0IGVhc2llciB0byB1c2UgU2V0cyB3aGVuCj4gPj4+ID4gcHJlZmVycmVkCj4gPj4+ID4gLS0tLQo+ID4+PiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSBmb3IgbmV4dCBkZXZlbG9wbWVudCBpdGVyYXRpb24KPiA+Pj4gPiAtLS0tCj4gPj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIHJlbGVhc2UgbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAKPiA+Pj4gPiAtLS0tCj4gPj4+ID4KPiA+Pj4gPgo+ID4+PiA+Cj4gPj4+ID4KPiA+Pj4gPiBPbiBTYXQsIDE2IERlYyAyMDE3IDEyOjUzOjIzICswMTAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkKPiA+Pj4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPiA+Pj4gPgo+ID4+PiA+IHdyb3RlOgo+ID4+PiA+ID4gbG9va2luZyBhdCBjb21taXRzQCBjb250ZW50IGh0dHBzOi8vbGlzdHMuYXBhY2hlLm9yZy9saXN0Lmh0bWw/Cj4gPj4+ID4gPiBjb21taXRzQG1hdmVuLmFwYWNoZS5vcmcgd2l0aCBzdWJqZWN0IGNvbnRhaW5pbmcKPiA+Pj4gIm1hdmVuL3BsdWdpbnMvdHJ1bmsiCj4gPj4+ID4gPgo+ID4+PiA+ID4gYW5kIHBsdWdpbnMgc3ZuMmdpdCBtaXJyb3IKPiA+Pj4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9jb21taXRzLwo+ID4+PiA+ID4gdHJ1bmsKPiA+Pj4gPiA+Cj4gPj4+ID4gPiBvbmx5IDEgY29tbWl0IGlzIG1pc3Npbmc6IG15IGxhdGVzdCBjb21taXQgb24gbWF2ZW4tc2l0ZS1wbHVnaW4KPiA+Pj4gPiA+ICh0aGUgbGFzdCBjb21taXQgZm9yIEdpdCBtaWdyYXRpb24gaXMgbm90IHVzZWZ1bCkKPiA+Pj4gPiA+Cj4gPj4+ID4gPgo+ID4+PiA+ID4gU2FtZSBvbiBzaGFyZWQgc2hvd2VkIG5vIG1pc3NpbmcgY29tbWl0Lgo+ID4+PiA+ID4KPiA+Pj4gPiA+Cj4gPj4+ID4gPiB3aGF0IGxhdGVzdCBjb21taXQgb2YgbWF2ZW4tamF2YWRvYy1wbHVnaW4gYXJlIHlvdSBsb29raW5nIGZvcj8KPiA+Pj4gPiA+Cj4gPj4+ID4gPiBSZWdhcmRzLAo+ID4+PiA+ID4KPiA+Pj4gPiA+IEhlcnY9QzM9QTkKPiA+Pj4gPiA+Cj4gPj4+ID4gPiBMZSBzYW1lZGkgMTYgZD1DMz1BOWNlbWJyZSAyMDE3LCAxMTo1NjozMSBDRVQgUm9iZXJ0IFNjaG9sdGUgYSA9Cj1DMz1BOWNyaXQgOgo+ID4+PiA+ID4+IEZvciBldmVyeWJvZHkganVzdCBhIHdhcm5pbmcgSSBmYWNlZCB0b2RheToKPiA+Pj4gPiA+PiBJZiB5b3Ugc3dpdGNoIHRvIHRoZSBnaXQgcmVwb3MsIHBsZWFzZSBtYWtlIHN1cmUgYWxsIGNvbW1pdHMgYXJlCj4gPj4+ID4gPj4gbWlncmF0ZWQuCj4gPj4+ID4gPj4gSSBub3RpY2VkIHRoZSBsYXRlc3QgY29tbWl0cyBvZiB0aGUgbWF2ZW4tamF2YWRvYy1wbHVnaW4gZ290IGxvcz0KdC4KPiA+Pj4gPiA+Pgo+ID4+PiA+ID4+IHRoYW5rcywKPiA+Pj4gPiA+PiBSb2JlcnQKPiA+Pj4gPiA+Pgo+ID4+PiA+ID4+IE9uIFNhdCwgMDkgRGVjIDIwMTcgMTc6MDY6MDkgKzAxMDAsIFN0ZXBoZW4gQ29ubm9sbHkKPiA+Pj4gPiA+Pgo+ID4+PiA+ID4+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+Pj4gPiA+PiA+IEkgc2VlIHdlIGhhdmUgYSBsYXJnZSBudW1iZXIgb2YgcmVwb3Mgbm93IG9uIGdpdGJveCA7LSkKPiA+Pj4gPiA+PiA+Cj4gPj4+ID4gPj4gPiBPbiBUaHUgNyBEZWMgMjAxNyBhdCAwNzowMCwgSGVydj1DMz1BOSBCT1VURU1ZIDwKPiBoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPj4+ID4gPj4KPiA+Pj4gPiA+PiB3cm90ZToKPiA+Pj4gPiA+PiA+PiBvaywgSSBkaWRuJ3QgdXBkYXRlIG15IHJlcG8gY2xvbmU6IG5vdyB0aGUgcnVuLWl0cyBwcm9maWxlIGlzCj4gPj4+ID4gPj4KPiA+Pj4gPiA+PiBhY3RpdmF0ZWQKPiA+Pj4gPiA+Pgo+ID4+PiA+ID4+ID4+IHRoZW4gdGhlIHBsYW4gc2hvdWxkIGp1c3QgY29uZmlybSAiaXQgd29ya3MhIiA6KQo+ID4+PiA+ID4+ID4+Cj4gPj4+ID4gPj4gPj4gYW5kIGZpbmQgd2hpY2ggam9icyBhcmUgc3BlY2lhbCwgbGlrZSBtYXZlbi1kaXN0LXRvb2wgKHdoaWNoCj4gPj4+IGhhcyB0bwo+ID4+PiA+ID4+Cj4gPj4+ID4gPj4gYmUKPiA+Pj4gPiA+Pgo+ID4+PiA+ID4+ID4+IHNjaGVkdWxlZCBkYWlseSBpbnN0ZWFkIG9mIGNvZGUgY2hhbmdlLCBhbmQgb25lIHBsYXRmb3JtIG9ubHk9CikKPiA+Pj4gPiA+PiA+Pgo+ID4+PiA+ID4+ID4+IFJlZ2FyZHMsCj4gPj4+ID4gPj4gPj4KPiA+Pj4gPiA+PiA+PiBIZXJ2PUMzPUE5Cj4gPj4+ID4gPj4gPj4KPiA+Pj4gPiA+PiA+PiBMZSBtZXJjcmVkaSA2IGQ9QzM9QTljZW1icmUgMjAxNywgMjM6NTg6NDUgQ0VUIFN0ZXBoZW4gQ29ubm9sPQpseSBhCj4gPj4+ID1DMz1BOWNyaXQgOgo+ID4+PiA+ID4+ID4+ID4gT24gV2VkIDYgRGVjIDIwMTcgYXQgMjI6MzgsIEhlcnY9QzM9QTkgQk9VVEVNWQo+ID4+PiA8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID4+PiA+ID4+ID4+Cj4gPj4+ID4gPj4gPj4gd3JvdGU6Cj4gPj4+ID4gPj4gPj4gPiA+IE5vdyB0aGF0IHdlIGhhdmUgMiBBU0YgT3JnYW5pemF0aW9uIEplbmtpbnMgam9icyAob25lIGZvcgo+ID4+PiBnaXRib3gKPiA+Pj4gPiA+Pgo+ID4+PiA+ID4+IFsxXQo+ID4+PiA+ID4+Cj4gPj4+ID4gPj4gPj4gYW5kCj4gPj4+ID4gPj4gPj4KPiA+Pj4gPiA+PiA+PiA+ID4gb25lCj4gPj4+ID4gPj4gPj4gPiA+IGZvciBnaXQtd2lwOiB0aGFuayB5b3UgU3RlcGhlbikgYW5kIHRoYXQgaXQgbG9va3MgcXVpdGUKPiA+Pj4gPiA+Pgo+ID4+PiA+ID4+IHN1Y2Nlc3NmdWwsCj4gPj4+ID4gPj4KPiA+Pj4gPiA+PiA+PiBsZXQncwo+ID4+PiA+ID4+ID4+Cj4gPj4+ID4gPj4gPj4gPiA+IHBsYW4KPiA+Pj4gPiA+PiA+PiA+ID4gdGhlIG5leHQgc3RlcHMuCj4gPj4+ID4gPj4gPj4gPiA+Cj4gPj4+ID4gPj4gPj4gPiA+IEhlcmUgaXMgd2hhdCBJIHNlZToKPiA+Pj4gPiA+PiA+PiA+ID4gMS4gcmVtb3ZhbCBvZiBoYW5kLWRlZmluZWQgSmVua2lucyBqb2JzIHRoYXQgYXJlIG5vdwo+ID4+PiBkdXBsaWNhdGVzCj4gPj4+ID4gPj4gPj4gPiA+Cj4gPj4+ID4gPj4gPj4gPiA+IDIuIHByZXBhcmF0aW9uIG9mIHRoZSA2MCBuZXcgZW1wdHkgZ2l0IHJlcG9zIGZvciBzaGFyZWQgJgo+ID4+PiA+ID4+ID4+ID4gPiBwbHVnaW5zCj4gPj4+ID4gPj4gPj4gPiA+Cj4gPj4+ID4gPj4gPj4gPiA+IDMuIG1pZ3JhdGlvbiBvZiB0aGUgMSBzaGFyZWQgY29tcG9uZW50IGFuZCAxIHBsdWdpbiB1c2luZwo+ID4+PiA+ID4+ID4+Cj4gPj4+ID4gPj4gPj4gbWlncmF0ZS0qLnNoCj4gPj4+ID4gPj4gPj4KPiA+Pj4gPiA+PiA+PiA+ID4gc2NyaXB0cwo+ID4+PiA+ID4+ID4+ID4gPiBbM10gdG8gdGVzdCBhbmQgZXZlbnR1YWxseSByZXdvcmsgdGhlIEplbmtpbnNmaWxlIChJCj4gPj4+IHN1cHBvc2UgaXQKPiA+Pj4gPiA+Pgo+ID4+PiA+ID4+IHdpbGwKPiA+Pj4gPiA+Pgo+ID4+PiA+ID4+ID4+ID4gPiByZXF1aXJlCj4gPj4+ID4gPj4gPj4gPiA+IHNvbWUgbGl0dGxlIGNoYW5nZSwgdG8gcnVuIGFkZCAicnVuLWl0cyIgcHJvZmlsZSkKPiA+Pj4gPiA+PiA+PiA+Cj4gPj4+ID4gPj4gPj4gPiBBcyBmYXIgYXMgSSByZWNhbGwsIEkgYWRkZWQgLVArcnVuLWl0cyBhbHJlYWR5Cj4gPj4+ID4gPj4gPj4gPgo+ID4+PiA+ID4+ID4+ID4gRm9yIHRoZSBwbHVnaW4sIEknZCBsaWtlIHRvIGRvIHRoZSBqb2IgZm9yIG1hdmVuLXNpdGUtcGx1Z2k9Cm4sCj4gPj4+ID4gPj4KPiA+Pj4gPiA+PiBzaW5jZSB3ZQo+ID4+PiA+ID4+Cj4gPj4+ID4gPj4gPj4gPiA+IGV4cGVjdAo+ID4+PiA+ID4+ID4+ID4gPiB0byByZWxlYXNlIGl0IHNvb24uCj4gPj4+ID4gPj4gPj4gPiA+IEZvciB0aGUgc2hhcmVkIGNvbXBvbmVudCwgSSBkb24ndCBrbm93IGlmIHRoZXJlIGlzIGEgYmVzdAo+ID4+PiA+ID4+Cj4gPj4+ID4gPj4gY2FuZGlkYXRlCj4gPj4+ID4gPj4KPiA+Pj4gPiA+PiA+PiA+ID4gNC4gb25jZSBwcmV2aW91cyBzdGVwIGlzIG9rLCBkbyB0aGUgZnVsbCBtaWdyYXRpb246IGlmCj4gPj4+IHRoZXJlIGFyZQo+ID4+PiA+ID4+ID4+ID4gPiB2b2x1bnRlZXJzCj4gPj4+ID4gPj4gPj4gPiA+IGZvciBoZWxwaW5nLCB0aGF0IHdvdWxkIGJlIGdyZWF0LCBzaW5jZSBwb3B1bGF0aW5nIDYwIGdpdAo+ID4+PiByZXBvcwo+ID4+PiA+ID4+ID4+Cj4gPj4+ID4gPj4gPj4gd29uJ3QKPiA+Pj4gPiA+PiA+PiBiZQo+ID4+PiA+ID4+ID4+Cj4gPj4+ID4gPj4gPj4gPiA+IHJlYWxseSBmdW4uLi4KPiA+Pj4gPiA+PiA+PiA+ID4KPiA+Pj4gPiA+PiA+PiA+ID4gQW5kIGFzIHBhcnQgb2YgNjAgZW1wdHkgZ2l0IHJlcG9zIGNyZWF0aW9uLCBJIHByb3Bvc2UgdG8KPiA+Pj4gbWlncmF0ZQo+ID4+PiA+ID4+Cj4gPj4+ID4gPj4gdGhlCj4gPj4+ID4gPj4KPiA+Pj4gPiA+PiA+PiA+ID4gIkdvb2dsZQo+ID4+PiA+ID4+ID4+ID4gPiByZXBvIG1hbmlmZXN0IiBtYXZlbi1hZ2dyZWdhdG9yIFs0XSB0byBBU0Y6IG15IHBlcnNvbmFsCj4gPj4+IHVzZSBoYXMKPiA+Pj4gPiA+Pgo+ID4+PiA+ID4+IGJlZW4KPiA+Pj4gPiA+Pgo+ID4+PiA+ID4+ID4+IHF1aXRlCj4gPj4+ID4gPj4gPj4KPiA+Pj4gPiA+PiA+PiA+ID4gc3VjY2Vzc2Z1bCwgSSBob3BlIGl0J3MgdGhlIHNhbWUgZm9yIG90aGVycy4gUGVyaGFwcwo+ID4+PiB0aGVyZSBhcmUKPiA+Pj4gPiA+PiA+Pgo+ID4+PiA+ID4+ID4+IGJldHRlcgo+ID4+PiA+ID4+ID4+Cj4gPj4+ID4gPj4gPj4gPiA+IGlkZWFzCj4gPj4+ID4gPj4gPj4gPiA+IGZvciBpdHMgbmFtZTogbWF2ZW4tYWdncmVnYXRvcgo+ID4+PiA+ID4+ID4+ID4gPgo+ID4+PiA+ID4+ID4+ID4gPiBBbnkgb3RoZXIgaWRlYT8gYW55IG9iamVjdGlvbj8KPiA+Pj4gPiA+PiA+PiA+ID4KPiA+Pj4gPiA+PiA+PiA+ID4gUmVnYXJkcywKPiA+Pj4gPiA+PiA+PiA+ID4KPiA+Pj4gPiA+PiA+PiA+ID4gSGVydj1DMz1BOQo+ID4+PiA+ID4+ID4+ID4gPgo+ID4+PiA+ID4+ID4+ID4gPiBbMV0KPiA+Pj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvCj4gPj4+ID4gPj4gPj4gPiA+Cj4gPj4+ID4gPj4gPj4gPiA+IFsyXQo+ID4+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLXdpcC8KPiA+Pj4gPiA+PiA+PiA+ID4KPiA+Pj4gPiA+PiA+PiA+ID4gWzNdCj4gPj4+ID4gPj4KPiA+Pj4gPiA+PiBodHRwczovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy9tYXZlbi9zYW5kYm94L3RydW5rL3NjcmlwdHMvZ2l0Lwo+ID4+PiA+ID4+Cj4gPj4+ID4gPj4gPj4gPiA+IFs0XSBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tYWdncmVnYXRvcgo+ID4+PiA+ID4+ID4+Cj4gPj4+ID4gPj4gPj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+IC0tClNlbnQgZnJvbSBteSBwaG9uZQoKLS0wMDFhMTE0N2I1ZjAyNDc4MDAwNTYxMTRiZjU5LS0KCkZyb20gZGV2LXJldHVybi0xMjQ2MTktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIE5vdiAyNyAxMDoxNjoxNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ2MTktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNDQ2MzAxN0EwMAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDI3IE5vdiAyMDE3IDEwOjE2OjE0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjM3NTAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjcgTm92IDIwMTcgMTA6MTY6MTMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIzNjY4IGludm9rZWQgYnkgdWlkIDUwMCk7IDI3IE5vdiAyMDE3IDEwOjE2OjEzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjMxNTMgaW52b2tlZCBieSB1aWQgOTkpOyAyNyBOb3YgMjAxNyAxMDoxNjoxMyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMjcgTm92IDIwMTcgMTA6MTY6MTMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA1RkYyMTE4MDQxNAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMjcgTm92IDIwMTcgMTA6MTY6MTIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC45MDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuOTAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEF1OHZLV2wzdi1iUyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMjcgTm92IDIwMTcgMTA6MTY6MTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13cjAtZjE3MS5nb29nbGUuY29tIChtYWlsLXdyMC1mMTcxLmdvb2dsZS5jb20gWzIwOS44NS4xMjguMTcxXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEQxMDg1NUYyNTYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDI3IE5vdiAyMDE3IDEwOjE2OjEwICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdyMC1mMTcxLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHIyc28xOTM5NTE2MXdyYS4xMwogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDI3IE5vdiAyMDE3IDAyOjE2OjEwIC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXZCaUZoNkNhbFR1MkphR0s5R3M0NGJFRlIvem1sNmtST3NybEc2MThqSVU9OwogICAgICAgIGI9SDNLZ21jVkhkS2x1dDVWeFdRWUFOUWNwckRXeWg5cDQ5dnlKcHNlRWZJYTNpSXBDSnpUK2pFQ0xyaHpDWWg2L1RDCiAgICAgICAgIE9EWXJDaW5KVmFLYXBYWTAyU2ZMYVkrTWJzMTdlQkRBTDladTVvS2pQUnRQaXNKNlB2Sm5OUEQrdTg2YkJmRXRybTd2CiAgICAgICAgIEs2K0tpalJNTWwzM0pIcVpjZktQUWdscCsrVUVKSjk3OXhZRnd2ZExZaXE4TDUyMCtoNitTME1mNVc1WGlDWERVaGJZCiAgICAgICAgIEFhRmtoT2VXK1NnVzlDVmNDbzJ3ZTl5Y1ZGY09QeEQwNzV2bzBxNjdpWVVkYXlhcnM4RjJYVVY0ZWs3eDZFbXdIeGdkCiAgICAgICAgIGtmQ2M4dzlzeE9McHVtRWdpNldxdEJrS1Z5ZC9JU0xvYnNHV09LU3Y4LzFNNE9FRVFDTHpHYm82QXFKSmlUdHpMdG9ZCiAgICAgICAgIEpRbmc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXZCaUZoNkNhbFR1MkphR0s5R3M0NGJFRlIvem1sNmtST3NybEc2MThqSVU9OwogICAgICAgIGI9SWIzdHU0N1RDbVl3L2t1TDc1NndBczU2SmRJYmYwSi9ZUksyMktDVjZNc0ZkNkcxRWpPdnBZdFpRM0s5N3NBUzM5CiAgICAgICAgIGZuSHFodkJoTDl5bnBuOWVpM2hwV3NwVkdmR0J3dGZTb2lSU1FiT2xoMW41N2ZlOENKMG1pNXE4Zk5SNmRXaVhENUtCCiAgICAgICAgIHZtS0VzYkpXYkJvaG1TSzlUaG1PYnEzYlg5SnVtWWRMbzhGcmE0YjZLZEdMVnY4cWk0ZEFNN1dVYWx3amRtSEhtRTU1CiAgICAgICAgIE85bFBEby9kRGtuTGhVZk0rMVRlRlZtY0E2OWpaZFl4OWVVRmdJT0o3cXhxU0l4SWdFR01jSnBscEh4SDdvTDMxRC8xCiAgICAgICAgIDVsYU1Wakl2WGJDalhOZHZXREJsK3M4NnZUc3V3b3BKcnZBSGZvVkxERjAySThWTkptMStYVnk5VTZ0dy9EellpUmZ3CiAgICAgICAgIEZibFE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDcvbmJpQXdNRnliczlGZVZma0tFS0hJd0kxNFNEQUZXU0JMNEVHQjF0UCtqWktXVFpNCgk5VU51MjMzTU9BVFkxZjVzcEZmWFhhczJ4ZFVtUWtCY0daVDUwZDFsaXpIbApYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUdzNHpNYmtGck1VQzNXU3BYaFJ2NXRqN0ZwSHhwangxWFVJTEFMQ0x4N09PY1RqbGdEeng4WXdmTHFGNUwwNU1PbHd0YndobTd1WGZRMkkraE16UVgyeUNTYz0KWC1SZWNlaXZlZDogYnkgMTAuMjIzLjE2My4yMTYgd2l0aCBTTVRQIGlkIG0yNG1yMzA2ODE5NTl3cmIuMTA3LjE1MTE3Nzc3NjQwMzk7CiBNb24sIDI3IE5vdiAyMDE3IDAyOjE2OjA0IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yMjMuMTczLjIzNSB3aXRoIEhUVFA7IE1vbiwgMjcgTm92IDIwMTcgMDI6MTY6MDMgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDxDQStuUG5NeUJ3MWFLejdPVmRCSmNCMzRaQlJyNks5Y0U0a1JSdGJPU19MVzVrUEN1UUFAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQStuUG5NenYwbjlWMD1qZzRTQWNQQTArTW5Ea0ZnQ0Y4UnZKQ3oySnk2WSt0PUZERmdAbWFpbC5nbWFpbC5jb20+CiA8Q0FGTkNVLTkzMllHUkxQYll0TnRyRDkwUDEtdW5hME5MMzc3NmF4c29rPTZ0RER0aW5RQG1haWwuZ21haWwuY29tPiA8Q0ErblBuTXlCdzFhS3o3T1ZkQkpjQjM0WkJScjZLOWNFNGtSUnRiT1NfTFc1a1BDdVFBQG1haWwuZ21haWwuY29tPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBNb24sIDI3IE5vdiAyMDE3IDEwOjE2OjAzICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NeWFRY0xPT21oMzU1Y0NfYW1TNUxjMVNudzFnd2F6OXJqM29renZ3dXRWMUFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBGWUkgSU5GUkEtMTU1MjQgY3JlYXRlZCBmb3IgdGhlIGJldHRlciBKZW5raW5zIFVYClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9ImY0MDMwNDVmMTljMjlhZTAxNjA1NWVmNDMwMGYiCgotLWY0MDMwNDVmMTljMjlhZTAxNjA1NWVmNDMwMGYKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKUEFSVFkgUEFSVFkgUEFSVFkgVElNRQoKaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvCgpPbiAyMiBOb3ZlbWJlciAyMDE3IGF0IDA5OjQ4LCBTdGVwaGVuIENvbm5vbGx5IDwKc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cgo+IFNjaGVkdWxlZCBmb3IgdGhlIE5vdmVtYmVyIDI2dGggdXBncmFkZTogaHR0cHM6Ly9jd2lraS5hcGFjaGUuCj4gb3JnL2NvbmZsdWVuY2UvZGlzcGxheS9JTkZSQS9KZW5raW5zK1BsdWdpbitVcGdyYWRlcwo+Cj4gT24gMjEgTm92ZW1iZXIgMjAxNyBhdCAxNDo0NiwgQXJuYXVkIEg9QzM9QTlyaXRpZXIgPGFoZXJpdGllckBnbWFpbC5jb20+ID0Kd3JvdGU6Cj4KPj4geWVhaCAhIQo+Pgo+PiBPbiBUdWUsIE5vdiAyMSwgMjAxNyBhdCAyOjEwIFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4+Cj4+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9JTkZSQS0xNTUyNAo+PiA+Cj4+ID4gSGVydj1DMz1BOSBpdCBpcyBuZWFybHkgdGltZSB0byBwYXJ0eSEKPj4gPgo+Pgo+Pgo+Pgo+PiAtLQo+PiAtLS0tLQo+PiBBcm5hdWQgSD1DMz1BOXJpdGllcgo+PiBodHRwOi8vYWhlcml0aWVyLm5ldAo+PiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+PiBUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyCj4+Cj4KPgoKLS1mNDAzMDQ1ZjE5YzI5YWUwMTYwNTVlZjQzMDBmLS0KCkZyb20gZGV2LXJldHVybi0xMjQwMDQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIFNlcCAxMyAwODowNTo1MyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwMDQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQjlFRjAxQUJERgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3IDA4OjA1OjUzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTA2OTggaW52b2tlZCBieSB1aWQgNTAwKTsgMTMgU2VwIDIwMTcgMDg6MDU6NTMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDEwNjMwIGludm9rZWQgYnkgdWlkIDUwMCk7IDEzIFNlcCAyMDE3IDA4OjA1OjUzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTA2MTggaW52b2tlZCBieSB1aWQgOTkpOyAxMyBTZXAgMjAxNyAwODowNTo1MiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMTMgU2VwIDIwMTcgMDg6MDU6NTIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA0MjFDMUQ0MzlCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMyBTZXAgMjAxNyAwODowNTo1MiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDAuMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMSwKCVVSSUJMX0JMT0NLRUQ9MC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCA5T05RNm9mLTJpOGwgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsIDEzIFNlcCAyMDE3IDA4OjA1OjUxICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtdWEwLWYxNzEuZ29vZ2xlLmNvbSAobWFpbC11YTAtZjE3MS5nb29nbGUuY29tIFsyMDkuODUuMjE3LjE3MV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA1QzUzNTVGQjk2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMyBTZXAgMjAxNyAwODowNTo1MSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC11YTAtZjE3MS5nb29nbGUuY29tIHdpdGggU01UUCBpZCBjMjdzbzE3ODQ0OTA0dWFoLjIKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMyBTZXAgMjAxNyAwMTowNTo1MSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1HOXRkL1FPcm1DVXdIREpoKzJOekxWZHVmSnIvamhJbWZuTmxQT2JPWW00PTsKICAgICAgICBiPVBVR0tSb3pxV3F4dEdXMS9aOVoxV0xQcDZJb2pEZUl0NllpeWF3bHMrR2IvSkJWdmxVM1NJMm9HR2RNYVhVeGpJOQogICAgICAgICB6bENSa3B1bTkvWjVTWFRkMEErVEFhUnFYbllGdTJIK0s1clZ3UW5kWWJGdE95MG5QNm1pb1UvUXYyd1JsaFcrWk9XUwogICAgICAgICArY3F6RXFZY1EyRkU0N1NEQXo3WkpCK1czNjFSVnFnOGZUQS9HODdNdTcrVzZZdjRFanEvdzF2QldaRFRHRnpUbUlmVgogICAgICAgICBYekNNYnd6UTVPYTJDeExXbzJqUWJ4Wk1sTjF3cDh1V2F3dVRvT1hmNlZidG01bEpQRVpsU2ZiZmNtUWphK3ZleEQ3QgogICAgICAgICBrQ0wxWnBrUlNPRWNpbnlHbFJ5OW95cVE2TWJkc0V4c1o1UjJoU3pIM0xjdlpTdWRCL09PYTR1bXRWWWVsQS9VbDJRYQogICAgICAgICBYYzJRPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1HOXRkL1FPcm1DVXdIREpoKzJOekxWZHVmSnIvamhJbWZuTmxQT2JPWW00PTsKICAgICAgICBiPWdvYnFzeDhwd3VkNkIyY1c3U1lVcnRDU3hZL2RBUTRQOE5LYkNBQmpHVDFUdHliYmNYb2ZqUzFSdVRNS2t0a2tRbgogICAgICAgICBaVHdwNUJCVHcrQlNpRTdjTjR0L1JLclBXVFNLZHpGMDZWNjViNzI5NjJiTzdlQ0x1eXpXeG9XblMzZzVPTFZaVUxZUAogICAgICAgICBtOWNUYWl5YllCdDlCNlBhbHRBV1pacXd1cGdOTjg1TFoxL2pseDdlUTQ2YWltS05IU2U5UEJXNjlUeDRRRDhzOGU1YgogICAgICAgICA5eEhuNXFxQ2d0OXV4VFR2emNQL2ZNdDNmeTVlZSs1ZkFIOWNUMkYyL2FaZUNMVkV1WC9LbHZFeU96aWtFNzhTcE03OQogICAgICAgICBpWUp4U3dEc1AwSEFpaVJWUkpjTjRJRXM2SXZCclNJVDhrMWV5REhFMHl1SjJkYlc1VHF4WUVFUjZBbi95V2d1N2doWAogICAgICAgICBzSmdnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVnendaMjNJS2l3ajFUU1Q0cTRaN1ZqcUpaV3dHYVFMdEZqdGhqWS9zQ3cxdk44b0NIRgoJQVpiV2ZDWkVneUhsWVlzeTV1blNKM2RhemIwVWpJT05uRDFYbkg5N3BiOWYKWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFES0NOYjRvK0MvU213NWlzUzFsRzlhOVFBdzNueFZaTEVoclF4QXlxQTk0VlNGZTA1TVdNdkF4K29hSWY5aTRtUVkxWXdwNVN3cllwam9Ka1g3UkxyYXJEbjA9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjE3Ni4yNi44IHdpdGggU01UUCBpZCBhOG1yMTQxMDI5NTF1YWkuMTM4LjE1MDUyODk5NDQ2MDQ7CiBXZWQsIDEzIFNlcCAyMDE3IDAxOjA1OjQ0IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzYuODIuMjUyIHdpdGggSFRUUDsgV2VkLCAxMyBTZXAgMjAxNyAwMTowNTo0MyAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPENBS0RVTjF2NVRzRm4rby12djhIaDNQdXZHWFdlK2ZRbk0randEWnQrPXp0eHNwY2dnd0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk14eUcyTmVQWHBWcWF3ZTlqUj1pdEhFVDZVdWRuTjlDakhodj1vby1LQ3J4d0BtYWlsLmdtYWlsLmNvbT4KIDxwb255LTU2YTNhZGVhZjYwYzQwNTk2ZmIyODRiMjQ1MjQxNDhmNjA1ZThkMjMtNTJkNDFjZDQwZjIzNDNjODk1Mjg4MGU4Zjg0ZGEzZTgwZDMzNTUwOUBkZXYubWF2ZW4uYXBhY2hlLm9yZz4KIDxDQStuUG5NeVMycTF1ZmFXK1M2c21oWloxSmN4aGY5aFk1LTNuQkotaUNXZWpQVUFEVkFAbWFpbC5nbWFpbC5jb20+CiA8MjA1Nzk0OC5rMUd5Zmp1R1hkQGdpZ2E+IDxDQStuUG5Nd2NvSEZadlVxV2lVc3lIQmhhTW1vU2NjeWRUQnN6U1hnc0d0Rj13TkdES3dAbWFpbC5nbWFpbC5jb20+CiA8Q0FLRFVOMXY1VHNGbitvLXZ2OEhoM1B1dkdYV2UrZlFuTStqd0RadCs9enR4c3BjZ2d3QG1haWwuZ21haWwuY29tPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBXZWQsIDEzIFNlcCAyMDE3IDAxOjA1OjQzIC0wNzAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NeWNUWmRYdEF1UmMyKy0wcURLRVBMTEpIb0dKNkg4ZFo9WnlrT2FYdVczWFFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNGFkMWVjNmVhNjBjMDU1OTBkYTBjYyIKCi0tMDAxYTExNGFkMWVjNmVhNjBjMDU1OTBkYTBjYwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKT24gMTMgU2VwdGVtYmVyIDIwMTcgYXQgMDA6MjYsIEFuZGVycyBIYW1tYXIgPGFuZGVyc0BoYW1tYXIubmV0PiB3cm90ZToKCj4gT24gVHVlLCBTZXAgMTIsIDIwMTcgYXQgODo1NCBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiA+IEhhdmUgd2UgZ290IGFueSBmZWVkYmFjayBmcm9tIHRoZSBlbWJlZGRlciBpbnRlZ3JhdGlvbnMgeWV0Pwo+ID4KPgo+IEkgaGF2ZW4ndCBoZWFyZCBhbnl0aGluZyBmcm9tIHRoZSBtMmUgcGVvcGxlLiBNYXliZSB3ZSBuZWVkIHRvIHBpbmcgdGhlbQo+IGRpcmVjdGx5LiBJIGNhbiBjb250YWN0IEZyZWQgQnJpY29uLgo+Cj4gL0FuZGVycwo+Cj4KUGxlYXNlIGRvLCBhbHNvIGlmIGFueW9uZSBoYXMgYSBjb250YWN0IGluIG5ldGJlYW5zIG9yIGludGVsbGlqIGFuZCBjb3VsZApsZXQgdGhlbSBrbm93IHdlJ2QgbGlrZSBlaXRoZXIgZmVlZGJhY2sgb3IgIndlJ3JlIG9rIGlmIE1ORy02Mjc1IG1ha2VzCnRyb3VibGUgZm9yIHVzLCBnbyBhaGVhZCBhbmQgcmVsZWFzZSIuIEknZCBsaWtlIHRvIGNsb3NlIHRoZSB2b3RlIG9uIEZyaWRheQoxMzowMCBVVEMuCgotLTAwMWExMTRhZDFlYzZlYTYwYzA1NTkwZGEwY2MtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDA0My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgU2VwIDE1IDE2OjA5OjI0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDA0My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA1MTNGRjFBODAwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMTUgU2VwIDIwMTcgMTY6MDk6MjQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4MDg4MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNSBTZXAgMjAxNyAxNjowOToyNCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODA3ODggaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgU2VwIDIwMTcgMTY6MDk6MjMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MDc3MSBpbnZva2VkIGJ5IHVpZCA5OSk7IDE1IFNlcCAyMDE3IDE2OjA5OjIzIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAxNSBTZXAgMjAxNyAxNjowOToyMyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDAyNTA1MUEyNjU4Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAxNSBTZXAgMjAxNyAxNjowOToyMyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDMuODgKWC1TcGFtLUxldmVsOiAqKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTMuODggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglGUkVFTUFJTF9SRVBMWT0xLCBIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMSwKCVVSSUJMX0JMT0NLRUQ9MC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB4bklONENVX0t5WGEgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglGcmksIDE1IFNlcCAyMDE3IDE2OjA5OjE5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtdmswLWY0NS5nb29nbGUuY29tIChtYWlsLXZrMC1mNDUuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxMy40NV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBFQTdBNTVGQjU3Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAxNSBTZXAgMjAxNyAxNjowOToxOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC12azAtZjQ1Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHQxMHNvMTI2NDExM3ZrZS4wCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTUgU2VwIDIwMTcgMDk6MDk6MTggLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9WVNxUTRjU0EvYUQvN3R4NkpBeGVQTkVLSS9nbWNxWlpaNngreUhWSHlROD07CiAgICAgICAgYj1jNXBIRFJCeG9Za002c2ZvdU1ta1BRcUQyQkR1UzY0M0tZNHBoaE5jcnNUS0hnK3VIUytFb1RkN0RCam14WmZBRlcKICAgICAgICAgaXdMS3pxeHVyMjJVMXJvYnhMVkpqbGljNGU1ZlgwbHFnTWpzWEFoYlRJUTFlbmcvNmtFMzZnVHNNZmNFTkYza01oeFYKICAgICAgICAgUXFpUURtT3E3elFtUGxNbVdZM2tiZnFmT2NDdWhubXpEZ25FR1Z4M3Z5RTVJOXdFVTFMcWtlbyt1dXk4VUZxUzZsUkkKICAgICAgICAgVWZtclVWWDhCOHNaOXZUcU5JVjNjeWcwb1pWMlk2dHZIOGhXb1RzYnpUbzlCWDM2T1B3QmZwMHVWSURVMUJLSFR2TWoKICAgICAgICAgSGF6T1hWbDBWZ1dGcXpRRU04UXVBaG9SekpsVWdMby9CWDFDb1dFVlFqdVpxN0Fpc1JnbS91RGIzRGdTV0RzUm9yNkQKICAgICAgICAgdjlJdz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9WVNxUTRjU0EvYUQvN3R4NkpBeGVQTkVLSS9nbWNxWlpaNngreUhWSHlROD07CiAgICAgICAgYj1hcnNBTzN2U0xCZStCMUIzZGhpakVTOHdIZ0VjMEY3VmlZRklBSlNWZlVNMGd2U3dkWXRFZGlpaG5Yalg2RG9HQmkKICAgICAgICAgL2JWUlIvSjNXaGxvSERlVDhjdEhwWGN3eFNFYUNMa3daSHhiTmxRVVZZODBCczVPaG9jYXkva1dwb1ByVTZBd3lJV2EKICAgICAgICAgN3pna1VwalF6d0xIa3JQWUJJVHRJYVorUWE4VlE1MEVRd2kxZWdUWnJmQlhxc1VZNmtxMzFIVi9vNUN1M2pPQkZkZmsKICAgICAgICAgT3pwUzRtTW9yblB6VHFkdy84R0JBNWVEYi9KVjY0eDQ1L0J0SDluSVJ4UVdTTGowYXlBRHBRd1pJSjc1SHRlVk1PdmYKICAgICAgICAgdFlwa2Fsbno2NkFXWFQyNHVzdytFQ0NHdlhhdDl3M052aG14bnVUTTFqV2dtSU9mSzVLWGpqa1FrTWU1Ty9rUTFGUGUKICAgICAgICAgV3FpZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVZzJydGNLSDhEbWVXN2ZTdm1XdnU1T3B5NnpUWG1uNnd3NW92UUJPQ2oySERoN1BpRTIKCTJyT0hKR3UzandaT0xHbjBWWGJQYms3SVBld0VMblVySFYvblJQYWhpZz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FCeTlONWc3WWczMDVETGVUcnpFMnh4S1ZodjRkSDZFYW9ad2wwZlJmRlF5SmtZUmJHcjN6dDVYbTZFRGExSVZlVGdwZm01R0xzNTFIRnFWb1g0NEVNPQpYLVJlY2VpdmVkOiBieSAxMC4zMS43Mi4xMzQgd2l0aCBTTVRQIGlkIHYxMjhtcjY1MDI1OTh2a2EuMTI0LjE1MDU0OTE3NTE4MDc7CiBGcmksIDE1IFNlcCAyMDE3IDA5OjA5OjExIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzYuODIuMjUyIHdpdGggSFRUUDsgRnJpLCAxNSBTZXAgMjAxNyAwOTowOToxMCAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPDE1MDU0Nzk1MTAuMjQ2MTQ4LjExMDcxODAzODQuMkUwNTJDQzRAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgogPHBvbnktNTZhM2FkZWFmNjBjNDA1OTZmYjI4NGIyNDUyNDE0OGY2MDVlOGQyMy01MmQ0MWNkNDBmMjM0M2M4OTUyODgwZThmODRkYTNlODBkMzM1NTA5QGRldi5tYXZlbi5hcGFjaGUub3JnPgogPENBK25Qbk15UzJxMXVmYVcrUzZzbWhaWjFKY3hoZjloWTUtM25CSi1pQ1dlalBVQURWQUBtYWlsLmdtYWlsLmNvbT4KIDwyMDU3OTQ4LmsxR3lmanVHWGRAZ2lnYT4gPENBK25Qbk13Y29IRlp2VXFXaVVzeUhCaGFNbW9TY2N5ZFRCc3pTWGdzR3RGPXdOR0RLd0BtYWlsLmdtYWlsLmNvbT4KIDxDQUtEVU4xdjVUc0ZuK28tdnY4SGgzUHV2R1hXZStmUW5NK2p3RFp0Kz16dHhzcGNnZ3dAbWFpbC5nbWFpbC5jb20+CiA8Q0FLRFVOMXNtMEtLck5va3B4aCtOQk9Ya1VGODRHQkx4aFFWMmZkd0VLLUZ4Ky14blZ3QG1haWwuZ21haWwuY29tPgogPENBS0RVTjF0ZEQ9UHg1bjlMNjBLY2EyRnVuQ1ZOMndyb1BkOVVyUU5LeF94YnptdE02d0BtYWlsLmdtYWlsLmNvbT4KIDwxNTA1NDc3NTQ1LjIzOTI3Ny4xMTA3MTU3MDk2LjYzODQ2NkFDQHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KIDxDQUtEVU4xdk5rU1JPZ25TTGRiXzBqdWh0Ql9laHNrQmtzNkJ0OUUtaUtCY1A5cmp5amdAbWFpbC5nbWFpbC5jb20+CiA8Q0FMWUdtMXdyLTdZd1Z3c3JPU2VWcHRuamd5NkJHalowaC05eDJyTVVaaHhvWDF5a1JRQG1haWwuZ21haWwuY29tPiA8MTUwNTQ3OTUxMC4yNDYxNDguMTEwNzE4MDM4NC4yRTA1MkNDNEB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMTUgU2VwIDIwMTcgMDk6MDk6MTAgLTA3MDAKTWVzc2FnZS1JRDogPENBK25Qbk15Zk5tY2s1WU5oYU9TUTlGenhXRzR3YU9KVnJMUVJxX1g1WmFGQXU4SEhPQUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sIElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY29tPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTRkZDBhNjE0MzA3OTA1NTkzYzlkYjAiCgotLTAwMWExMTRkZDBhNjE0MzA3OTA1NTkzYzlkYjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSSdtIGdvaW5nIHRvIGhvbGQgb2ZmIGNsb3NpbmcgdGhlIHZvdGUgb3ZlciB0aGUgd2Vla2VuZCB0byBnaXZlIElnb3IgYQpjaGFuY2UgdG86CgoxLiBjb21tZW50IG9uIHdoZXRoZXIgd2UgbmVlZCBhbiBhbHRlcm5hdGl2ZSBmaXggZm9yIE1ORy02Mjc1IChhbmQgaW5kZWVkCmlkZWFsbHkgcHJvdmlkZSBvbmUgOy0gKTsKMi4gY29tbWVudCBvbiB3aGV0aGVyIHRoZSBmaXggZm9yIE1ORy02MjA5IGlzIGV4cG9zaW5nIGJ1Z3MgaW4gcGx1Z2lucyB0aGF0Cm1hZGUgaW5jb3JyZWN0IGFzc3VtcHRpb25zIGFib3V0IFRDQ0wsIG9yIHdoZXRoZXIgdGhlIGZpeCBpcyBpbnZhbGlkIG9yCmV2ZW4gaW5jb21wbGV0ZSAoSSB3b25kZXIgaWYgVENDTCBzaG91bGQgYWx3YXlzIGJlIHByb2plY3QuZ2V0Q2xhc3NSZWFsbSgpCmFzIGV4dGVuc2lvbnMgc2hvdWxkIGJlIGF2YWlsYWJsZSB0byBhbGwgcGx1Z2lucyBub3QganVzdCB0aG9zZSB0aGF0CmRlY2xhcmUgdGhleSBhcmUgcHJvdmlkaW5nIGV4dGVuc2lvbnMgLSB1bmxlc3MgSSBtaXN1bmRlcnN0YW5kKQoKT25jZSBJIGhhdmUgdGhlIHJlcXVpcmVkIGluZm9ybWF0aW9uIEkgd2lsbCBiZSBiZXR0ZXIgYWJsZSB0byBhc3Nlc3MKd2hldGhlciB3ZSBzaG91bGQgcmVsZWFzZSAzLjUuMSBhbmQgZm9sbG93IHVwIHdpdGggYSBxdWljayAzLjUuMiBvciBqdXN0CmRyb3AgMy41LjEgYW5kIGdvIHN0cmFpZ2h0IHRvIDMuNS4yLgoKLVN0ZXBoZW4KCk9uIDE1IFNlcHRlbWJlciAyMDE3IGF0IDA1OjQ1LCBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvbT4gd3JvdGU6Cgo+IEhhcyBhbnlvbmUgdHJpZWQgd2lyaW5nIGp2bSBleHRlbnNpb25zIENsYXNzTG9hZGVyIGFzIGZvcmVpZ24gaW1wb3J0IHRvCj4gcGx1Z2luL2V4dGVuc2lvbnMgcmVhbG1zPyBKdm0gZXh0ZW5zaW9ucyBjbGFzc2xvYWRlciBpcyBsaXR0bGUgdHJpY2t5IHRvCj4gZ2V0IHRvIChzZWUgaG93IHRoaXMgaXMgZG9uZSBpbiBqYXZhLnV0aWwuU2VydmljZUxvYWRlci5sb2FkSW5zdGFsbGVkKSwKPiBidXQgSSB0aGluayB0aGlzIHdpbGwgc29sdmUgU2VydmljZUxvYWRlci9NTkctNjI3NSB3aXRob3V0IHBvbGx1dGluZwo+IHBsdWdpbiBjbGFzc3BhdGggdG9vIG11Y2guCj4KPiAtLQo+IFJlZ2FyZHMsCj4gSWdvcgo+Cj4gT24gRnJpLCBTZXAgMTUsIDIwMTcsIGF0IDA4OjMyIEFNLCBNYXJrIERlcnJpY3V0dCB3cm90ZToKPiA+IFdvdWxkIGl0IGJlIHBvc3NpYmxlIHRvIGhhbmRsZSB0aGlzIGluIGEgc29tZXdoYXQgc2ltaWxhciB3YXkgdG8KPiA+IHRocmVhZFNhZmUKPiA+IG1vam9zIC0gc29tZSBmb3JtIG9mIHBsdWdpbiBmbGFnIHRoYXQgc2F5cyAiZXh0ZW5zaW9uU2FmZSIgWzFdLCB0aGF0IGlmCj4gPiB0aGUKPiA+IHBsdWdpbiBoYXMgPGV4dGVuc2lvbnM+dHJ1ZTwvZXh0ZW5zaW9ucz4gZGVjbGFyZWQgYW5kIGRvZXNuJ3QgZGVjbGFyZQo+ID4gaXRzZWxmIGFzIGJlaW5nIGV4dGVuc2lvblNhZmUvZXh0ZW5zaW9uQXdhcmUgdGhlbiB3ZSBsb2cgYSBidWlsZCB3YXJuaW49CmcKPiA+IC0KPiA+IGl0IHdvdWxkbid0IHNvbHZlIGFueXRoaW5nLCBvdGhlciB0aGFuIGdpdmluZyBzb21lIGZlZWRiYWNrIHRvIHVzZXJzIHNvPQptZQo+ID4gaW5kaWNhdGlvbiBvZiBXSFkgdGhlaXIgYnVpbGQgZmFpbHMgdW5kZXIgMy41LjEgLSBhbmQgdG8gZWl0aGVyIHJlbW92ZQo+ID4gPGV4dGVuc2lvbnM+IG9yIGZpeC91cGRhdGUgdGhlaXIgcGx1Z2lucy4KPiA+Cj4gPiBbMV0gT3IgZXZlbiBqdXN0IGluZmVyIHRoZSBhcHBsaWNhYmlsaXR5IG9mIGV4dGVuc2lvbnMgYnkgdGhlIHByZXNlbmNlID0Kb2YKPiA+IGN1c3RvbSBsaWZlY3ljbGVzLCBvciBNb2pvcyBpbXBsZW1lbnRpbmcgdGhlIGV4dGVuc2lvbiBpbnRlcmZhY2VzICggaXQnPQpzCj4gPiBtaWRuaWdodCwgYW5kIGEgaGF6eSB0aXJlZCB0aG91Z2h0ICkuCj4gPgo+ID4gLS0KPiA+ICJHcmVhdCBhcnRpc3RzIGFyZSBleHRyZW1lbHkgc2VsZmlzaCBhbmQgYXJyb2dhbnQgdGhpbmdzIiA9RTI9ODA9OTQgU3RlPQp2ZW4KPiA+IFdpbHNvbiwKPiA+IFBvcmN1cGluZSBUcmVlCj4gPgo+ID4gT24gU2F0LCBTZXAgMTYsIDIwMTcgYXQgMTI6MjIgQU0sIEFuZGVycyBIYW1tYXIgPGFuZGVyc0BoYW1tYXIubmV0Pgo+ID4gd3JvdGU6Cj4gPgo+ID4gPiBCYXNlZCBvbiBJZ29yJ3MgZmVlZGJhY2sgSSdtIGNoYW5naW5nIG15IHZvdGUgdG8gKzEuCj4gPiA+Cj4gPiA+IEhhdmluZyB0aGlzIGNsYXNzIGxvYWRlciBjaGFuZ2UgaW4gYSBidWcgZml4IHJlbGVhc2UgaXMgcHJvYmFibHkgbm90Cj4gPiA+IChzZW12ZXIpIGlkZWFsIHRob3VnaC4KPiA+ID4KPiA+ID4gL0FuZGVycwo+ID4gPgo+ID4gPiBPbiBGcmksIFNlcCAxNSwgMjAxNyBhdCAyOjEyIFBNLCBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvbT4KPiA+ID4gd3JvdGU6Cj4gPiA+Cj4gPiA+ID4gSSBhbnN3ZXJlZCBpbiBtb3JlIGRldGFpbHMgb24gbTJlLWRldiwgYnV0IEkgYmVsaWV2ZSB3ZSBjYW4KPiBjb21wZW5zYXRlCj4gPiA+ID4gZm9yIHRoZSBjaGFuZ2UgZnJvbSBtMmUgZW5kLiBJbiB0aGUgd29yc3QgY2FzZSB3ZSdsbCBidW5kbGUgaGFja2VkCj4gPiA+ID4gdmVyc2lvbiBvZiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXIgd2l0aCBtMmUsIG5vdCBpZGVhbCwgYnV0IG5vdCB0aD0KZQo+IGVuZAo+ID4gPiA+IG9mIHRoZSB3b3JsZCBlaXRoZXIuCj4gPiA+ID4KPiA+ID4gPiAtLQo+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4gSWdvcgo+ID4gPiA+Cj4gPiA+ID4gT24gRnJpLCBTZXAgMTUsIDIwMTcsIGF0IDA3OjIxIEFNLCBBbmRlcnMgSGFtbWFyIHdyb3RlOgo+ID4gPiA+ID4gT24gRnJpLCBTZXAgMTUsIDIwMTcgYXQgODoyOSBBTSwgQW5kZXJzIEhhbW1hciA8YW5kZXJzQGhhbW1hci5uZXQ9Cj4KPiA+ID4gPiB3cm90ZToKPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFJlcG9ydGluZyBiYWNrIGZyb20gdGVzdHMgb2YgbTJlIHdpdGggZW1iZWRkZWQgTWF2ZW4gMy41LjEsIHdlCj4gc2VlCj4gPiA+ID4gcHJvYmxlbQo+ID4gPiA+ID4gPiB3aXRoIHRoZSBqYXh3cy1tYXZlbi1wbHVnaW4gbW9qby4gV2UncmUgdHdvIHBlb3BsZSBzZWVpbmcgdGhlCj4gaXNzdWUKPiA+ID4gPiA+ID4gaW5kZXBlbmRlbnRseSwgYnV0IHVuZm9ydHVuYXRlbHkgRnJlZCBCcmljb24gaGFzbid0IGJlZW4gYWJsZSB0PQpvCj4gPiA+ID4gcmVwcm9kdWNlLgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4KPiA+ID4gPiA+IFRvIGZvbGxvdyB1cCBvbiB0aGlzLCBteSB0ZXN0cyBpbmRpY2F0ZSB0aGF0IE1hdmVuIDMuNS4xIGNhdXNlcwo+IGNoYW5nZWQKPiA+ID4gPiA+IGNsYXNzIGxvYWRpbmcgdGhhdCBjb3VsZCBjYXVzZSBpc3N1ZXMgZm9yIHBsdWdpbnMgaW4gbTJlLiBJJ3ZlCj4gYXNrZWQKPiA+ID4gZm9yCj4gPiA+ID4gPiBpbnB1dCBmcm9tIHRoZSBtMmUgZGV2cyBpZiBpdCBpcyBwb3NzaWJsZSB0byBoYW5kbGUgaW4gbTJlIGJ1dCB0aD0KZXkKPiA+ID4gPiA+IGhhdmVuJ3QKPiA+ID4gPiA+IHJlc3BvbmRlZCB5ZXQuCj4gPiA+ID4gPgo+ID4gPiA+ID4gL0FuZGVycwo+ID4gPiA+ID4KPiA+ID4gPiA+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFNvIGN1cnJlbnRseSBJJ20gMCBvbiB0aGUgdm90aW5nIGJ1dCBJJ2xsIGludmVzdGlnYXRlIHNvbWUgbW9yZT0KLgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiAvQW5kZXJzCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IE9uIFdlZCwgU2VwIDEzLCAyMDE3IGF0IDk6MjYgQU0sIEFuZGVycyBIYW1tYXIgPAo+IGFuZGVyc0BoYW1tYXIubmV0Pgo+ID4gPiA+IHdyb3RlOgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+PiBPbiBUdWUsIFNlcCAxMiwgMjAxNyBhdCA4OjU0IFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+ID4gPiA+ID4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4+PiBIYXZlIHdlIGdvdCBhbnkgZmVlZGJhY2sgZnJvbSB0aGUgZW1iZWRkZXIgaW50ZWdyYXRpb25zIHlldD8KPiA+ID4gPiA+ID4+Pgo+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4+IEkgaGF2ZW4ndCBoZWFyZCBhbnl0aGluZyBmcm9tIHRoZSBtMmUgcGVvcGxlLiBNYXliZSB3ZSBuZWVkIHRvCj4gcGluZwo+ID4gPiA+IHRoZW0KPiA+ID4gPiA+ID4+IGRpcmVjdGx5LiBJIGNhbiBjb250YWN0IEZyZWQgQnJpY29uLgo+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4+IC9BbmRlcnMKPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPj4+Cj4gPiA+ID4gPiA+Pj4gT24gTW9uIDExIFNlcCAyMDE3IGF0IDIyOjU3LCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPiA+ID4gPiA+ID4+PiB3cm90ZToKPiA+ID4gPiA+ID4+Pgo+ID4gPiA+ID4gPj4+ID4ganVzdCBmb3IgdGhlIHJlY29yZHM6IGl0IGlzIFdpbmRvd3MgKyBHaXQgQmFzaCAoTUlOR1c2NCkgb249Cmx5Cj4gPiA+ID4gPiA+Pj4gPgo+ID4gPiA+ID4gPj4+ID4gYW5kIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgYWRkaW5nIC1EamFuc2kuZm9yY2U9M0R0cnVlIGNhbgo+IGZvcmNlCj4gPiA+ID4gSkFuc2kKPiA+ID4gPiA+ID4+PiA+IGFjdGl2YXRpb24gKGV2ZW4gaWYgSkFuc2kgZmFpbHMgdG8gZGV0ZWN0IHRoYXQgaXQgc2hvdWxkCj4gPiA+ID4gYXV0by1hY3RpdmF0ZSkKPiA+ID4gPiA+ID4+PiA+Cj4gPiA+ID4gPiA+Pj4gPiBkZXRhaWxzIG9uIGlzc3VlIGluIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvCj4gPiA+IGppcmEvYnJvd3NlL01ORy02MjgyCj4gPiA+ID4gLAo+ID4gPiA+ID4gPj4+IGFuZCBhCj4gPiA+ID4gPiA+Pj4gPiBmdXR1cmUgSkFuc2kgaXNzdWUuLi4KPiA+ID4gPiA+ID4+PiA+Cj4gPiA+ID4gPiA+Pj4gPiBSZWdhcmRzLAo+ID4gPiA+ID4gPj4+ID4KPiA+ID4gPiA+ID4+PiA+IEhlcnY9QzM9QTkKPiA+ID4gPiA+ID4+PiA+Cj4gPiA+ID4gPiA+Pj4gPiBMZSBsdW5kaSAxMSBzZXB0ZW1icmUgMjAxNywgMTI6NTM6NDYgQ0VTVCBTdGVwaGVuIENvbm5vbGx5ID0KYQo+ID4gPiA9QzM9QTljcml0Cj4gPiA+ID4gOgo+ID4gPiA+ID4gPj4+ID4gPiBTbyB0aGF0IGlzIHdpbmRvd3Mgb25seSwgb3Igd2VyZSB0aGV5IGxvc3Qgb24gb3RoZXIgT1Nlcwo+IGZvcgo+ID4gPiB5b3UuCj4gPiA+ID4gPiA+Pj4gPiA+Cj4gPiA+ID4gPiA+Pj4gPiA+IEkgaGF2ZSBjb2xvdXJzIG9uIGxpbnV4ICh2aWEgZG9ja2VyKSBhbmQgb3MteAo+ID4gPiA+ID4gPj4+ID4gPgo+ID4gPiA+ID4gPj4+ID4gPiBPbiAxMSBTZXB0ZW1iZXIgMjAxNyBhdCAxMjozNSwgZGVqYW4yNjA5QGdtYWlsLmNvbSA8Cj4gPiA+ID4gPiA+Pj4gZGVqYW4yNjA5QGdtYWlsLmNvbT4KPiA+ID4gPiA+ID4+PiA+ID4KPiA+ID4gPiA+ID4+PiA+ID4gd3JvdGU6Cj4gPiA+ID4gPiA+Pj4gPiA+ID4gKzEgKGNvbmRpdGlvbmFsbHkpLgo+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPiA+Pj4gPiA+ID4gVGVzdGVkIHZpYSBwcm9qZWN0IHRoYXQgaW5jbHVkZXMgZG96ZW4gb2YgcGx1Z2luczogMXN0Cj4gdGllciwKPiA+ID4gPiA+ID4+PiBNb2pvSGF1cwo+ID4gPiA+ID4gPj4+ID4gYW5kCj4gPiA+ID4gPiA+Pj4gPiA+ID4gZmV3IDNyZCBwYXJ0eSBwbHVnaW5zIChzbyB0byBzYXkpLgo+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPiA+Pj4gPiA+ID4gRXZlcnl0aGluZyBsb29rcyBnb29kIHdpdGggb25lIG5vdGFibGUgcmVncmVzc2lvbjoKPiA+ID4gPiA+ID4+PiA+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MjgyIENvbnNvbGUKPiA+ID4gb3V0cHV0Cj4gPiA+ID4gaGFzCj4gPiA+ID4gPiA+Pj4gbm8KPiA+ID4gPiA+ID4+PiA+ID4gPiBjb2xvcnMgKHJlZ3Jlc3Npb24gaW4gTWF2ZW4gMy41LjEpCj4gPiA+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPiA+ID4+PiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+ID4gPj4+ID4gPiA+IERlamFuCj4gPiA+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPiA+ID4+PiA+ID4gPiBPbiAyMDE3LTA5LTEwIDE3OjM5LCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+ID4gPiA+ID4+PiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tCj4gPiA+ID4gPiA+Pj4gPiA+Cj4gPiA+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPiA+ID4+PiA+ID4gPiB3cm90ZToKPiA+ID4gPiA+ID4+PiA+ID4gPiA+IEhpLAo+ID4gPiA+ID4gPj4+ID4gPiA+ID4KPiA+ID4gPiA+ID4+PiA+ID4gPiA+IFdlIHNvbHZlZCAyNSBpc3N1ZXM6Cj4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcD0KYQo+ID8KPiA+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4gPj4+ID4gPiA+IHZlcnNpb249M0QxMjMzODk2NCZzdHlsZU5hbWU9M0RUZXh0JnByb2plY3RJZD0zRDEyMzE2OTI9CjIKPiA+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4gPj4+ID4gPiA+ID4gVGhlcmUgYXJlIDM1MCBpc3N1ZXMgbGVmdCBpbiBKSVJBIGZvciBNYXZlbiBjb3JlOgo+ID4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCU9CjIwJQo+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPiA+Pj4gPiA+ID4gM0QlMjBNTkclMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJQo+ID4gPiA+ID4gPj4+ID4gPiA+IDIwQlklMjBkdWUlMjBBU0MlMkMlMjBwcmlvcml0eSUyMERFU0MlMkMlMjBjcmVhdGVkJTIwQVM9CkMKPiA+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4gPj4+ID4gPiA+ID4gU3RhZ2luZyByZXBvOgo+ID4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvCj4gY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gPiA+ID4gMTM2NC8KPiA+ID4gPiA+ID4+PiA+ID4gPiA+Cj4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBUaGUgZGlzdHJpYnV0YWJsZSBiaW5hcmllcyBhbmQgc291cmNlcyBjYW4gYmUgZm91bmQKPiBoZXJlOgo+ID4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvCj4gY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tPgo+ID4gPiA+Cj4gPiA+ID4gPiA+Pj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS8KPiA+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4gPj4+ID4gPiA+ID4gU3BlY2lmaWNhbGx5IHRoZSB6aXAsIHRhcmJhbGwgYW5kIHNvdXJjZSBhcmNoaXZlcyBjYW4KPiBiZQo+ID4gPiA+IGZvdW5kCj4gPiA+ID4gPiA+Pj4gaGVyZToKPiA+ID4gPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnLwo+IGNvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4KPiA+ID4gPgo+ID4gPiA+ID4gPj4+ID4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtCj4gbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLQo+ID4gPiA+ID4gPj4+IGJpbi56aXAKPiA+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvCj4gY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tPgo+ID4gPiA+Cj4gPiA+ID4gPiA+Pj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS0KPiBtYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtCj4gPiA+ID4gPiA+Pj4gYmluLnRhci5nego+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy8KPiBjb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+Cj4gPiA+ID4KPiA+ID4gPiA+ID4+PiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLQo+IG1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS0KPiA+ID4gPiA+ID4+PiBzcmMuemlwCj4gPiA+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnLwo+IGNvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4KPiA+ID4gPgo+ID4gPiA+ID4gPj4+ID4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtCj4gbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLQo+ID4gPiA+ID4gPj4+IHNyYy50YXIuZ3oKPiA+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4gPj4+ID4gPiA+ID4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5neiBzaGExOgo+ID4gPiA+ID4gPj4+IDllYjgyMWYxNTNjNzY2NzE5NGFhMTFjY2QwOTliNwo+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPiA+Pj4gPiA+ID4gYmQyMDU5NTYwZAo+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcDogc2hhMToKPiA+ID4gPiAxMjFkNTRiMDQ1MzgwYThhNDg5NWViMTM3OTcwYWIKPiA+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4gPj4+ID4gPiA+IDY5ZTY5OGViMGUKPiA+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4gPj4+ID4gPiA+ID4gR2l0IHRhZzoKPiA+ID4gPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vZ2l0LXdpcC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPTNEbWF2ZW4uZ2l0PQo7YT0zRAo+ID4gPiA+IGNvbW1pdDtoPTNECj4gPiA+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPiA+ID4+PiA+ID4gPiAwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzCj4gPiA+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPiA+ID4+PiA+ID4gPiA+IFN0YWdpbmcgc2l0ZToKPiA+ID4gPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9jb21wb25lbnRzL3JlZi8zLUxBVEVTVC8KPiA+ID4gPiA+ID4+PiA+ID4gPiA+Cj4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBWb3RlIG9wZW4gZm9yIDcyIGhvdXJzLgo+ID4gPiA+ID4gPj4+ID4gPiA+ID4KPiA+ID4gPiA+ID4+PiA+ID4gPiA+IFsgXSArMQo+ID4gPiA+ID4gPj4+ID4gPiA+ID4gWyBdICswCj4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBbIF0gLTEKPiA+ID4gPiA+ID4+PiA+ID4gPiA+Cj4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBUaGFua3MsCj4gPiA+ID4gPiA+Pj4gPiA+ID4gPgo+ID4gPiA+ID4gPj4+ID4gPiA+ID4gU3RlcGhlbi4KPiA+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4gPj4+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiA+ID4gPj4+IC0tLS0tLS0tLQo+ID4gPiA+ID4gPj4+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3I9CmcKPiA+ID4gPiA+ID4+PiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOgo+IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4+PiA+Cj4gPiA+ID4gPiA+Pj4gPgo+ID4gPiA+ID4gPj4+ID4KPiA+ID4gPiA+ID4+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotCj4gPiA+ID4gLS0tLS0tLS0tCj4gPiA+ID4gPiA+Pj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPj4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPj4+ID4KPiA+ID4gPiA+ID4+PiA+IC0tCj4gPiA+ID4gPiA+Pj4gU2VudCBmcm9tIG15IHBob25lCj4gPiA+ID4gPiA+Pj4KPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPgo+ID4gPiA+Cj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tCj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4KPiA+ID4gPgo+ID4gPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKLS0wMDFhMTE0ZGQwYTYxNDMwNzkwNTU5M2M5ZGIwLS0KCkZyb20gZGV2LXJldHVybi0xMjQ0MzEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIE5vdiAgNiAwNzo1NDo0OCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0MzEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOUI5MDkxMEY5OQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sICA2IE5vdiAyMDE3IDA3OjU0OjQ4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDEwODggaW52b2tlZCBieSB1aWQgNTAwKTsgNiBOb3YgMjAxNyAwNzo1NDo0OCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDA5OTMgaW52b2tlZCBieSB1aWQgNTAwKTsgNiBOb3YgMjAxNyAwNzo1NDo0OCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQwOTgwIGludm9rZWQgYnkgdWlkIDk5KTsgNiBOb3YgMjAxNyAwNzo1NDo0NyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMDYgTm92IDIwMTcgMDc6NTQ6NDcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBFMTBBOTFCNjQ0NwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgIDYgTm92IDIwMTcgMDc6NTQ6NDYgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC45MDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuOTAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgU2RQdUppQnllQVp6IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAgNiBOb3YgMjAxNyAwNzo1NDo0NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdyMC1mMTk1Lmdvb2dsZS5jb20gKG1haWwtd3IwLWYxOTUuZ29vZ2xlLmNvbSBbMjA5Ljg1LjEyOC4xOTVdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRTQ4Qjk1RkJCMAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgIDYgTm92IDIwMTcgMDc6NTQ6NDMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd3IwLWYxOTUuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgbDE4c280MjI3NDg4d3JjLjMKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAwNSBOb3YgMjAxNyAyMzo1NDo0MyAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD10WUdIUjNiMG5vdERHSjZNU1BTNDZCTGFIaUFCb1pKdXdhRE40VC92VnNZPTsKICAgICAgICBiPUlBc1FiU0N0d09iM2RCbVFYT0FaVC9uNnlBNkFZazNMMGJLYjZRYmVFTjVqdjZFc3JjcjVhMWRRMXhIZ2hsNklwaAogICAgICAgICBhY01XOUcxSGQ2L3gzWWR6a01PUmNBV1N4ZEozSXcxY0o3ZnhadnhmR1BCSTV5eVpZaHVUS1plVUZkOE1JS0hjMWRLdAogICAgICAgICAvZ3Fucy9GL1RDWldtSmZzZzg0Wi92ekhMSTNRSmtKZ2VPNUN4SWxYQzI5QXgxaDJ4dzlHMGVvbVlyYjlDc2FOdEppZwogICAgICAgICA4MHZEcmNzVVhjWmErLzlUenNBQ3VpNExJeHc4YjM4Mk5oeHViUytZYkwxMTZabjBBRUhMd1dvdk1EcjZ0eTZ4OVN3SgogICAgICAgICBneG9neS9ac2hlZDZ2c2hGeHQ3L2J2c3BvYkRxajJPOHRkTkovdGZhbDZ6SUpYTnFyYWRHRmhDV3BTR1EzUThmbk1lNgogICAgICAgICA0eFF3PT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD10WUdIUjNiMG5vdERHSjZNU1BTNDZCTGFIaUFCb1pKdXdhRE40VC92VnNZPTsKICAgICAgICBiPUswbWo3NWFiYjdIOHBlS1N1bE1qd3ZhZU9jY3UvNnN3cFprRksyeDlvbmlYdmdSUVFDT2xZbEZIVXI0cVlHY3ArUAogICAgICAgICBRWTAxMUJHMEpxcUNCbE0xT2RYa202MjQxUGRYT0xyUkQvbGZVSnRQc1l2S3czK2pYeG1kb0N6RDhMME8rQ045Qm9WSAogICAgICAgICBEL1Y3QlQrc0c5Q2pna1IzZW5udUZsalFVemRHaEQ4L08xWmFpcHBDZ00wRjJCbzNWU1lMb0RZMEtlcVppRFE2Q3IyRwogICAgICAgICBSaW0yT2JDL0Q5UTVWV3EwcStvMEZlR2hZZlVZcGxLTitUYlFPeVZKZmNpRHNNRmsrS2N2QkxyNFNtS3ZpOW5kdFV5RAogICAgICAgICBQNHZJeUdNemRINzZwRVpqUDR5V1FTdUFZQUVsai9SMWpNdndIQ05lM011OTFYS01VL2EwVTl2bWRDeVZqektRSThuNwogICAgICAgICBRZVJ3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FWRXJtYXg2aVJya2VGUXFjNkRrNHIyaXdmaHRacEwxTzg0UUNqbGxzamQ0Z1ByR2xCTgoJWU0xZDQzZE5ndWljUkJKS24vVFNuQ1pOYks0amFNcmxVK2tUL0tXRjFRPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFCaFFwK1J5R1ZWSE9yS1N2ZkVQaXVWWkNaK1M0OEhaVE1OMmtwdlNmbUNGSDR1WlZZOExTZnFZNWNNaHIveWl5RDJMTzlacUpJaUIzdUZjbXQxdkVBYTVRYUU9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xNjYuMTQ2IHdpdGggU01UUCBpZCB0MThtcjEyNDA2MDg1d3JjLjY0LjE1MDk5NTQ4ODMzNjg7CiBTdW4sIDA1IE5vdiAyMDE3IDIzOjU0OjQzIC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDw1OWZmN2ZmMy42ZjgzNTQwYS4yZGZmYy5iZTEwU01UUElOX0FEREVEX01JU1NJTkdAbXguZ29vZ2xlLmNvbT4KSW4tUmVwbHktVG86IDw1OWZmN2ZmMy42ZjgzNTQwYS4yZGZmYy5iZTEwU01UUElOX0FEREVEX01JU1NJTkdAbXguZ29vZ2xlLmNvbT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAwNiBOb3YgMjAxNyAwNzo1NDozMiArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXluLVhfdWdfTFBveERLMEJaRG5oNmZwUm9zNHBuRHJkV3NQb24ySF9wMj13QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogUmVhY3RvciBzYWZlL3JhbGx5IHBvaW50cwpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0NzZlOTg3MzNkMTUwNTVkNGJjNDBmIgoKLS0wMDFhMTE0NzZlOTg3MzNkMTUwNTVkNGJjNDBmCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCk9uIFN1biA1IE5vdiAyMDE3IGF0IDIxOjE3LCBSb2JlcnQgU2Nob2x0ZSA8YXBhY2hlQHNvdXJjZWdyb3VuZHMuY29tPiB3cm90ZT0KOgoKPiBPbmUgdGhpbmcgSSdkIGxpa2UgdG8gY2hhbmdlIGlzIHRoYXQgaWYgYSBtb2R1bGUgaXMgYSBkZXBlbmRlbmN5IGl0IG11c3QKPiByZWFsbHkgYmVoYXZlIGxpa2Ugb25lLiAgSXQgc2hvdWxkIG5vdCBiZSB0aGUgTWF2ZW5Qcm9qZWN0LCB0aGF0IHNob3VsZAo+IG9ubHkgYmUgdXNlZCBmb3IgYnVpbGRpbmcgKnRoYXQqIHByb2plY3QuIEl0IHNob3VsZCBhY3QgYXMgaWYgaXQgd2FzCj4gZG93bmxvYWRlZCB2aWEgdGhlIGFydGlmYWN0IHJlc29sdmVyCgoKV2hpY2ggd291bGQgbmVlZCBzYWZlIHBvaW50cyB0b28uLi4gZWcgZmxhdHRlbiBNYXZlbiBwbHVnaW4gd291bGQgbmVlZCB0bwpmbGFnIGJlaW5nIGEgcG9tIG1vZGlmaWVyIGdvYWwuLi4gb3RoZXJ3aXNlIGhvdyBkbyB5b3Uga25vdyB3aGVuIHRoZSBtb2RlbApoYXMgY2hhbmdlZCBhaGVhZCBvZiB0aW1lIGluIGNyZWF0aW5nIHRoZSBidWlsZCBwbGFuCgoKPiBSb2JlcnQKPgo+IFZlcnpvbmRlbiB2YW5hZiBtaWpuIFNhbXN1bmcgR2FsYXh5LXNtYXJ0cGhvbmUuCj4gLS0tLS0tLS0gT29yc3Byb25rZWxpamsgYmVyaWNodCAtLS0tLS0tLVZhbjogU3RlcGhlbiBDb25ub2xseSA8Cj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gRGF0dW06IDA1LTExLTE3ICAxODo1NyAgKEdNVCswMTowMCkgQWFuOgo+IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+IE9uZGVyd2VycDogUmVhY3Rvcgo+IHNhZmUvcmFsbHkgcG9pbnRzCj4gVGhlcmUgYXJlIHR3byBzZXRzIG9mIHByb2JsZW1zIHRoYXQsIGFzc3VtaW5nIHdlIHdhbnQgdG8gZml4LCBib3RoIG5lZWQKPiBzb21lIHdheSB0byByYWxseSBhIGNvbmN1cnJlbnQgbXVsdGltb2R1bGUgYnVpbGQgYXQuCj4KPiAxLiBUaGVyZSBpcyB0aGUgc2hhZGUgbGlrZSBjbGFzcyBvZiBwcm9ibGVtcywgd2hlcmUgYSBwbHVnaW4gd2FudHMgdG8KPiBtb2RpZnkgdGhlIGVmZmVjdGl2ZSB0cmFuc2l0aXZlIGRlcGVuZGVuY2llcyBvZiBhIG1vZHVsZS4KPgo+IDIuIFRoZXJlIGlzIHRoZSBleHRlbnNpYmlsaXR5IGNsYXNzIG9mIHByb2JsZW1zLCB3aGVyZSBwZW9wbGUgd2FudCB0byBidWk9CmxkCj4gYSBwbHVnaW4gYW5kIGNvbnN1bWUgdGhlIHNhbWUgcGx1Z2luIGluIG9uZSByZWFjdG9yLgo+Cj4gTm93IGluIGJvdGggY2FzZXMsIEkgdGhpbmsgd2UgY2FuIHNvbHZlIGEgc3Vic2V0IG9mIHRoZXNlIHByb2JsZW1zIGJ5Cj4gaW50cm9kdWNpbmcgYSBjb25jZXB0IG9mIGEgcmFsbHkgLyBzYWZlIHBvaW50IGluIHRoZSBidWlsZCBwbGFuLgo+Cj4gVGhlIG11dGFibGUgbW9kZWwgY2FuIGJlIHNvbHZlZCBmb3IgcmVkdWNpbmcgc2NvcGUvIHJlbW92aW5nCj4gZGVwZW5kZW5jaWVzLi4uIGNvdWxkIHBvc3NpYmx5IGFsc28gYWxsb3cgYWRkaW5nIGRlcGVuZGVuY2llcywgcHJvdmlkZWQgdD0KaGUKPiBkZXBlbmRlbmNpZXMgYXJlIG5vdCBwYXJ0IG9mIHRoZSByZWFjdG9yLiBUaGUgcHJvdmlzbyBpcyB0aGF0IHRoZSBwbHVnaW4KPiBnb2FsIHdvdWxkIG5lZWQgdG8gYmUgbWFya2VkIGFzIGEgPUUyPTgwPTlDbXV0YXRpb249RTI9ODA9OUQgZ29hbCwgYW5kIHRoPQplIGV4ZWN1dGlvbiBvZiBhbGwKPiA9RTI9ODA9OUNtdXRhdGlvbj1FMj04MD05RCBnb2FscyBmb3IgYSBtb2R1bGUgZGVmaW5lcyBhIHNhZmUtcG9pbnQuIEFsbCBkPQpvd25zdHJlYW0gbW9kdWxlcwo+IHRoYXQgZGVjbGFyZSBhIGRlcGVuZGVuY3kgbXVzdCBiZSBibG9ja2VkIGZyb20gZXhlY3V0aW9uIHVudGlsIHRoZQo+IHNhZmUtcG9pbnQgaXMgcmVhY2hlZC4KPgo+IERpc2N1c3Npb24gcG9pbnRzOgo+ICogaG93IGRvIHdlIGhhbmRsZSBhIGJ1aWxkIHJlcXVlc3QgdGhhdCB3aWxsIG5ldmVyIHJlYWNoIHRoZSBzYWZlLXBvaW50LCA9CmVnCj4gYG12biB0ZXN0YCB3aWxsIG5vdCByZWFjaCBwYWNrYWdlLCBhbmQgaGVuY2Ugd2lsbCBub3QgcnViIHNoYWRlLi4uIHNob3VsZAo+IHdlIHNheTogZmluZSwgbm8gc2FmZXBvaW50IGluIGJ1aWxkIHBsYW4sIHNvIGFsbCBnb29kLi4uIHNob3VsZCB3ZSBzYXk6Cj4gb29wcyBlc2NhbGF0ZSB0aGUgbW9kdWxlIHdpdGggYSBzYWZlIHBvaW50IHRvIGBwYWNrYWdlYD8KPiAqIHdoaWxlIHRlY2huaWNhbGx5IHBvc3NpYmxlIHRvICphZGQqIGV4LXJlYWN0b3IgZGVwZW5kZW5jaWVzIChpZgo+IGV4LXJlYWN0b3IgdGhleSBjYW5ub3QgYWZmZWN0IHRoZSBidWlsZCBwbGFuKSBpdCBjb3VsZCBiZSBhIGJhZCBpZGVhIGZvcgo+IGJ1aWxkIHJlcXVlc3RzIHRoYXQgd291bGRuPUUyPTgwPTk5dCByZWFjaCB0aGUgc2FmZXBvaW50LCBpcyB0aGF0IHJlYXNvbiA9CmVub3VnaCB0bwo+IHJlamVjdCBhZGRpdGlvbj8KPgo+IFRoZSBleHRlbnNpYmlsaXR5IGlzc3VlIGlzIGFjdHVhbGx5IGFuIGltcG9ydGFudCBjYXNlLiBVc2VycyB3YW50IGZlYXR1cmU9CnMKPiBsaWtlIHNjcmlwdGluZyBiZWNhdXNlIHRoZXkgbmVlZCBzb21ldGhpbmcgY3VzdG9tLiBTY3JpcHRpbmcgYnJpbmdzIGJhY2sKPiBpbXBlcmF0aXZlIGJ1aWxkcywgd2hpY2ggSU1ITyBNYXZlbiB2aWV3cyBhcyBhbiBhbnRpLXBhdHRlcm4uCj4KPiBTbyB3aGF0IGlzIHRoZSBwcm9ibGVtIHBlb3BsZSBhcmUgdHJ5aW5nIHRvIHNvbHZlPyBUaGV5IHdhbnQgYSBwbHVnaW4gZm9yCj4ganVzdCBvbmUgcHJvamVjdC4gUmlnaHQgbm93IHlvdSBjYW5ub3QgYmVjYXVzZSB3ZSBjYW5ub3QgaW5zdGFudGlhdGUgdGhlCj4gZnVsbCBidWlsZCBwbGFuIHVudGlsIHdlIGNhbiBpbnNwZWN0IHRoZSBwbHVnaW4gbWV0YWRhdGEuLi4gYnV0IHVudGlsIHdlCj4gYnVpbGQgdGhlIHBsdWdpbiB3ZSBjYW5ub3QgZ2V0IHRoZSBtZXRhZGF0YS4KPgo+IFdpdGggYSBnZW5lcmFsIHBsdWdpbiwgSSB0aGluayB0aGVyZSBpcyBub3QgbXVjaCB3ZSBjYW4gZG8uIEZvciBleGFtcGxlIGEKPiBwbHVnaW4gcmVkZWZpbmluZyBhIGxpZmVjeWNsZSBtaWdodCBhY3R1YWxseSBtZWFuIHRoYXQgdGhlIGJ1aWxkIHBsYW4gd2lsPQpsCj4gYmUgZGlmZmVyZW50IGZvciBtb2R1bGVzIHVzaW5nIHRoYXQgcGx1Z2luIGFzIGFuIGV4dGVuc2lvbi4KPgo+IEJ1dCBpZiB0aGUgcGx1Z2luIGlzIGp1c3QgZGVmaW5pbmcgc29tZSBnb2FscyBhbmQgdGhvc2UgZ29hbHMgYXJlIGp1c3QKPiBib3VuZCB0byBwaGFzZXMgaW4gdGhlIHByZS1leGlzdGluZyBsaWZlIGN5Y2xlcy4uLiBhZ2FpbiwgaXQgc2VlbXMgd2UgY2FuCj4gYWxsb3cgdGhlIGJ1aWxkIHRvIHByb2NlZWQKPgo+IERpc2N1c3Npb24gcG9pbnRzOgo+ICogaG93IHRvIGhhbmRsZSBgbXZuIHRlc3RgLiBJZiB0aGUgcGx1Z2luIGlzIG9ubHkgYm91bmQgdG8gbGF0ZXIgcGhhc2VzLCA9CndlCj4gYXJlIGdvb2QuLi4gYnV0IHdoYXQgaWYgdGhlIHBsdWdpbiBpcyBib3VuZCB0byBhbiBlYXJseSBwaGFzZT8gRG8gd2UganVzdAo+IGJvbWIgb3V0IGFuZCBzYXksIHNvcnJ5IHlvdSBuZWVkIHRvIGludm9rZSBhdCBsZWFzdCBwYWNrYWdlPyBEbyB3ZSBmYWxsCj4gYmFjayB0byBsb2NhbCByZXBvPyBEbyB3ZSB1cHNjYWxlIHRoZSBidWlsZCBwbGFuIGZvciB0aGUgcGx1Z2luIHRvIHBhY2thZz0KZQo+ICogaG93IHRvIGhhbmRsZSBgbXZuIHNpdGVgLi4uIGluIHRoaXMgY2FzZSB3ZSB3b3VsZG49RTI9ODA9OTl0IGJlIHByb2R1Y2k9Cm5nIHRoZQo+IHBsdWdpbiBpbiB0aGUgcmVhY3RvciBhbnl3YXkuLi4gZG8gd2UgYm9tYiBvdXQgYW5kIHNheSA9RTI9ODA9OUN5b3UgbXVzdCA9CmRvIGBtdm4KPiBwYWNrYWdlIHNpdGVgPUUyPTgwPTlDPyBEbyB3ZSBtb2RpZnkgdGhlIGJ1aWxkIHBsYW4/IERvIHdlIHVzZSBsb2NhbCByZXBvPQo/Cj4gKiB3ZSBjb3VsZCBiZSBzbWFydGVyIGFuZCB1c2UgdGhlIGJ1aWxkIHBsYW4gc2FmZXBvaW50IGFzIGEgc3RhZ2luZyBwb2ludAo+IGFuZCBhbGxvdyBsaWZlY3ljbGVzIGFuZCBvdGhlciB0aGluZ3MuLi4gdGhvdWdoIG9idmlvdXNseSBtb3JlIHdvcmsKPiAqIHdoYXQgYWJvdXQgaW52b2tpbmcgYSBwbHVnaW4gZ29hbCBmcm9tIHRoZSBDTEkgZGlyZWN0bHkuLi4gZG8gd2UgYXNrIGZvPQpyCj4gYG12biBwYWNrYWdlIGZvbzptYW5jaHVgPyBGb3IgdGhpcyB0byB3b3JrLCBmb286bWFuY2h1IHdvdWxkIGhhdmUgdG8gYmUgYT0Kbgo+IGFnZ3JlZ2F0b3IgZ29hbCwgb3RoZXJ3aXNlIGl0IGNvdWxkIGJlIGFuIGV4ZWN1dGlvbiByZXF1ZXN0IG9uIGVhcmxpZXIKPiBtb2R1bGVzIGJ5IGEgbGF0ZXIgbW9kdWxlPyBDb3VsZCB3ZSBkZWxheSB0aGUgYnVpbGQgcGxhbiBpbnN0YW50aWF0aW9uCj4gdW50aWwgYWZ0ZXIgdGhlIHBsdWdpbiBpcyBidWlsdD8gQ291bGQgd2UganVzdCByZXF1aXJlIHRoZSBwbHVnaW4gYmUgc2Vydj0KZWQKPiBmcm9tIHRoZSBsb2NhbCByZXBvc2l0b3J5IGFuZCByZXZhbGlkYXRlIHRoZSBidWlsZCBwbGFuIGFmdGVyIHRoZSBuZXcKPiBwbHVnaW4gYnVpbGQgaXMgYXZhaWxhYmxlPwo+Cj4gSSB0aGluayB0aGVzZSBhcmUgdHdvIGltcHJvdmVtZW50cyB0aGF0IGNvdWxkIGJlIG1hZGUgKndpdGhvdXQqIGNoYW5nZXMgdD0Kbwo+IHRoZSBtb2RlbFZlcnNpb24gYW5kIHRoZXkgd291bGQgaGF2ZSBhIHJlYWwgYW5kIG1lYW5pbmdmdWwgaW1wcm92ZW1lbnQgZm89CnIKPiBvdXIgdXNlcnMuLi4gYXMgc3VjaCBJIHdvdWxkIGxpa2UgdXMgdG8gY29uc2lkZXIgKGFzIG9wdGlvbmFsIGdvYWxzKSBmb3IKPiBNYXZlbiA0LjAuMAo+Cj4gV2R5dD8KPiAtLQo+IFNlbnQgZnJvbSBteSBwaG9uZQo+Ci0tPTIwClNlbnQgZnJvbSBteSBwaG9uZQoKLS0wMDFhMTE0NzZlOTg3MzNkMTUwNTVkNGJjNDBmLS0KCkZyb20gZGV2LXJldHVybi0xMjQ3ODMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIERlYyAxNyAyMDoyMjo0NCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3ODMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNEQ5NTMxMEMwRQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDE3IERlYyAyMDE3IDIwOjIyOjQ0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjEyODcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTcgRGVjIDIwMTcgMjA6MjI6NDMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYxMTc2IGludm9rZWQgYnkgdWlkIDUwMCk7IDE3IERlYyAyMDE3IDIwOjIyOjQzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjExNTcgaW52b2tlZCBieSB1aWQgOTkpOyAxNyBEZWMgMjAxNyAyMDoyMjo0MyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTcgRGVjIDIwMTcgMjA6MjI6NDMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAxQTIxOUMwQ0FFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxNyBEZWMgMjAxNyAyMDoyMjo0MyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDEuODk4ClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MS44OTggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0wLjAwMSwKCVNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHdnSGhsT1N5QWhRcyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgMTcgRGVjIDIwMTcgMjA6MjI6NDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13cjAtZjE4Mi5nb29nbGUuY29tIChtYWlsLXdyMC1mMTgyLmdvb2dsZS5jb20gWzIwOS44NS4xMjguMTgyXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDhBNkMzNUYxOUQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDE3IERlYyAyMDE3IDIwOjIyOjQwICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdyMC1mMTgyLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHoxMDRzbzMzNTgxMzB3cmIuMgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDE3IERlYyAyMDE3IDEyOjIyOjQwIC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUE3ajlFYUtBVHRSR3dNVEZDNDkxaU5lanJKZSsyQUk4a0dOTnhiL1pXOG89OwogICAgICAgIGI9VitBSUp6U1B0bkwzbmNsa0l6aDE1emtpbzdDcHlEdW5qMjZWaUZ5ZmZPUGNnSXRmc0xmUnl5N1haZW9KZW1oN3h3CiAgICAgICAgIGRCYSt6dm5rYkQzMjgrV0RZTHBqb3hTUXkwbWtadWFrQUo3NEVzeXl2TzVkWTZBTTJlSUV5SHErU1I5MXl5alVld2xXCiAgICAgICAgIHNSenZtemQ0SjFkN1RFc0JWcjBGbDI3NFRwV1BKa2NNMS9yUklCbCsyYlJXVWM0SDBXSmpuQ3FTVEFCTHNzTWl5dENNCiAgICAgICAgIFI5WTdaaVdpZThJenNiYVZrUU9qbjlHdWZJYjAwS3k1ZXk0SFREaWVVdlFvbVVMZWtiVzZVNDRwRjZYMEJTS2dRaWphCiAgICAgICAgIG9IbmhJZXQ0VnI4WTNvaUNjZW96ZU1QblZzQkYyUGNkczVtLzBlbVFKQ2Fwdmlua3pPNUgxM3VmZUdkSXFMdGlvMWl3CiAgICAgICAgIDFpR0E9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUE3ajlFYUtBVHRSR3dNVEZDNDkxaU5lanJKZSsyQUk4a0dOTnhiL1pXOG89OwogICAgICAgIGI9Qk5HVFlNelFlMkR0RjBYZHppOUxmUUdFSS9KVFJqWlUrQWlrR0ZPaExDWFNEUXVJTHE3TmZjb21zUVRVN1pTRWZSCiAgICAgICAgIGR5ZjB0akFXQ09XajVySTB2bk9ka0ViRENkRFJ1SWE3bm9DYS8weFFDNnlReHQvcEc0cTlyamdMdmd2SWh4MEw0VlRTCiAgICAgICAgIGN3bE5IYllyeVNDTUUxbDZzQkZvQzB2cUpEbFJCcTBzTUUvSzZGekIzelRSek5sc2x2dnFrQkNxaEZqbFUzSTBJSXNOCiAgICAgICAgIEF4QTNyZW9Tc25GSG9mclg1akd2MWFVOVR0U0UvelQvc0hsemtocXN1cGx0NU8rWGlLSkNnbUZBUEUwKzE1T01DNFdTCiAgICAgICAgIEJqU0pVT3IrREpiaHMweFpuaXp5eWdCeDN5eldHY1dtZHRnazVkbnJQRHIwOFVsN1pEejlrZDdvNnY4WnA0UU5jaExrCiAgICAgICAgIDdXanc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFLR0IzbUxLWTFYSzZneVBHUyt1VXo4TXhqS2lGT050SDJESWZYNVMxQ29SQ0JTUGZ5d0h0MmNFCgllRmgrOU9qWUppZThpZ05ER3luaEExalZaNG56V3lldWxWZFBpVkJkVFZwbApYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUNKZkJvdWdWamZnVTRVbjB6c3plc25UTSs4cXN1VGpDeXgrQlJETmp2TWxSUnhOM3hBZ3NFZ0dhUXlhQkRIWVhMczFOMnYzbmE1YVlQWjc3R2FFQ05sVkZzdz0KWC1SZWNlaXZlZDogYnkgMTAuMjIzLjE2Mi4xMzcgd2l0aCBTTVRQIGlkIHM5bXIxNjU3NjkzNHdyYS4yNzIuMTUxMzU0MjE1OTU5MjsKIFN1biwgMTcgRGVjIDIwMTcgMTI6MjI6MzkgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xNzQuODIgd2l0aCBIVFRQOyBTdW4sIDE3IERlYyAyMDE3IDEyOjIyOjM4IC0wODAwIChQU1QpCkluLVJlcGx5LVRvOiA8Q0ErblBuTXdjODk9RzhxSmVvSFpmWGhRN0QzNXZPLTlILUxuVS1mQllzMllVMjJhelJnQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8MTkwMDU1OC5HRng5UWxmYUUyQGdpZ2E+IDxDQStuUG5NeSstTnZQa21wdTQyZ016OXdRbStNYnhxPTlSNnVLYXQxQkZrWUJaZk04TmdAbWFpbC5nbWFpbC5jb20+CiA8MTU4MTM2NS5zYjhnMDBLTVlpQGdpZ2E+IDwxMTQ2OTgzNC5wbm1kWjJMNHo4QGdpZ2E+IDxDQStuUG5Nd2M4OT1HOHFKZW9IWmZYaFE3RDM1dk8tOUgtTG5VLWZCWXMyWVUyMmF6UmdAbWFpbC5nbWFpbC5jb20+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFN1biwgMTcgRGVjIDIwMTcgMjA6MjI6MzggKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk15b2dlTWZKQzJKS2FUM0F4QnFCQVhXdWV1eW1GN0hhb3FNaDN2UDdPYXQ0QUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IEdpdCBtaWdyYXRpb24gbmV4dCBzdGVwcwpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSJmNDAzMDQ1ZWE2ZWNjNjczZDgwNTYwOGVmZWMxIgoKLS1mNDAzMDQ1ZWE2ZWNjNjczZDgwNTYwOGVmZWMxCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCk9uIDE1IERlY2VtYmVyIDIwMTcgYXQgMDg6MDUsIFN0ZXBoZW4gQ29ubm9sbHkgPApzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKCj4KPiBPbiBGcmkgMTUgRGVjIDIwMTcgYXQgMDY6MzQsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3PQpyb3RlOgo+Cj4+IGFub3RoZXIgc3RyYW5nZSB0aGluZyBbMV0KPj4gLSB3aGF0IGFyZSB0aGUgbWFueSAiT3BlbiB0YXNrcyI/Cj4KPgo+IEJ1ZyBpbiB3aXRoTWF2ZW4gcGlwZWxpbmUgd3JhcHBlciB0aGF0IEN5cmlsbGUgaGFzIGZpeGVkIGluIDMuMC42IChuZWVkIHQ9Cm8KPiB3YWl0IGZvciBpbmZyYSB0byB1cGdyYWRlIHRoYXQgcGx1Z2luIGFuZCByZXN0YXJ0IEplbmtpbnMpCj4KCmh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvSU5GUkEtMTU2ODEKCgo+Cj4+IC0gd2h5IGFyZSBjaGFuZ2VzIHdyaXR0ZW4gNSB0aW1lcz8KPgo+Cj4gVGhlcmUgYXJlIDUgY2hlY2tvdXRzLCB0aGUgZ2l0IHBsdWdpbiBpcyBub3QgZ3JlYXQgYXQgZGUtZHVwbGljYXRpb24uIEkKPiBtaWdodCBoYXZlIHRvIHRyeSBhbmQgZml4IGl0IG15c2VsZiBhcyBNYXJrIFdhaXRlIGlzIGJ1c3kgd2l0aCBvdGhlciBpc3N1PQplcy4KPgo+Cj4+Cj4+IFJlZ2FyZHMKPj4KPj4gSGVydj1DMz1BOQo+Pgo+PiBbMV0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi0KPj4gYm94L2pvYi9tYXZlbi1zaXRlLXBsdWdpbi9qb2IvbWFzdGVyL2NoYW5nZXMKPj4KPj4gTGUgbWVyY3JlZGkgMTMgZD1DMz1BOWNlbWJyZSAyMDE3LCAwNTo1ODoyOCBDRVQgSGVydj1DMz1BOSBCT1VURU1ZIGEgPUMzPQo9QTljcml0IDoKPj4gPiB0aGFuayB5b3U6IG9uZSBsZXNzIGlzc3VlCj4+ID4KPj4gPiBhIG5ldyBmaW5kaW5nOiB0aGUgSmlyYSBtZXNzYWdlIHBvaW50cyB0byB0aGUgSmVua2lucyBidWlsZCwgd2h5IG5vdAo+PiA+IEJ1dCBpdCBkb2VzIG5vdCBwb2ludCB0byBHaXQgY29tbWl0IFsxXQo+PiA+Cj4+ID4gdGhlIGxpbmsgdG8gdGhlIGdpdCBjb21taXQgaXMgdmVyeSB1c2VmdWwgdG8gdHJhY2sgaG93IHRoZSBmaXggd2FzCj4+IGRvbmUsIGFuZAo+PiA+IHJlbWFpbnMgdmFsaWQgb24gYSBsb25nIHBlcmlvZCAod2hpY2ggaXMgbm90IHRoZSBjYXNlIG9mIHRoZSBKZW5raW5zCj4+IGJ1aWxkKQo+PiA+Cj4+ID4gSXMgaXQgcG9zc2libGUgdG8gaGF2ZSB0aGlzIGluIG91ciBzdGFuZGFyZCBidWlsZCwgcGxlYXNlPwo+PiA+Cj4+ID4gUmVnYXJkcywKPj4gPgo+PiA+IEhlcnY9QzM9QTkKPj4gPgo+PiA+IFsxXSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0RPWElBU0lURVRPT0xTLTE4Mgo+PiA+Cj4+ID4gTGUgbHVuZGkgMTEgZD1DMz1BOWNlbWJyZSAyMDE3LCAyMToyOToxNSBDRVQgU3RlcGhlbiBDb25ub2xseSBhID1DMz1BOT0KY3JpdCA6Cj4+ID4gPiBPbiBTdW4gMTAgRGVjIDIwMTcgYXQgMDk6NTksIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLj0KZnI+Cj4+IHdyb3RlOgo+PiA+ID4gPiBoZXJlIGlzIGEgbGlzdCBvZiBzdHJhbmdlIGlzc3VlcyBpbiBDSSBqb2JzOgo+PiA+ID4gPgo+PiA+ID4gPiAtIERveGlhIFNpdGV0b29scyBpcyBmYWlsaW5nIGF0IGNoZWNrb3V0IFsxXQo+PiA+ID4gPgo+PiA+ID4gPiAtIE1hdmVuIGNvcmUgYnJhbmNoZXMgZmFpbCBpbiBtYXZlbi13aXAgWzJdIHdoaWxlIHRoZSBtdWx0aS1icmFuY2gKPj4gZG9lcwo+PiA+ID4gPiBub3QKPj4gPiA+ID4gZmFpbCBbM106IEFGQUlLLCBzYW1lIEplbmtpbnMgZmlsZXMgYXJlIHVzZWQsIGlzbid0IGl0Pwo+PiA+ID4KPj4gPiA+IFVidW50dS00IHdhcyBoYXZpbmcgaXNzdWVzCj4+ID4gPgo+PiA+ID4gPiBSZWdhcmRzLAo+PiA+ID4gPgo+PiA+ID4gPiBIZXJ2PUMzPUE5Cj4+ID4gPiA+Cj4+ID4gPiA+IFsxXQo+PiA+ID4gPiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLQo+PiBib3gvam9iL21hdmVuLWRvCj4+ID4gPiA+IHhpCj4+ID4gPiA+IGEtc2l0ZXRvb2xzL2pvYi9tYXN0ZXIvNC9jb25zb2xlCj4+ID4gPiA+Cj4+ID4gPiA+IFsyXQo+PiA+ID4gPiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLQo+PiB3aXAvam9iL21hdmVuLwo+PiA+ID4gPgo+PiA+ID4gPiBbM10KPj4gPiA+ID4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi0KPj4gMy54LWplbmtpbnNmaWxlLwo+PiA+ID4gPgo+PiA+ID4gPiBMZSBkaW1hbmNoZSAxMCBkPUMzPUE5Y2VtYnJlIDIwMTcsIDA2OjI5OjIwIENFVCBIZXJ2PUMzPUE5IEJPVVRFTVk9CiBhID1DMz1BOWNyaXQgOgo+PiA+ID4gPiA+IHllcywgYW5kIDgzIG1hdmVuLWJveCBDSSBqb2JzIFsxXQo+PiA+ID4gPiA+Cj4+ID4gPiA+ID4gc29tZSBDSSBmYWlsdXJlcyBhcmUgbm90IHJlYWxseSBleHBlY3RlZCwgYnV0IGluIGdlbmVyYWwsIHRoZQo+PiByZXN1bHQKPj4gPiA+ID4gPiBpcwo+PiA+ID4gPgo+PiA+ID4gPiBnb29kCj4+ID4gPiA+Cj4+ID4gPiA+ID4gaXQncyB0aW1lIGZvciBldmVyeWJvZHkgdG8gY2hlY2sgaGlzIGZhdm9yaXRlIHBsdWdpbiBvciBzaGFyZWQKPj4gPiA+ID4gPiBjb21wb25lbnQKPj4gPiA+ID4KPj4gPiA+ID4gYW5kCj4+ID4gPiA+Cj4+ID4gPiA+ID4gZG8gdGhlIGxpdHRsZSBmaXhlczogdGhlIGdsb2JhbCBtaWdyYXRpb24gaXMgZG9uZQo+PiA+ID4gPiA+Cj4+ID4gPiA+ID4gYW5kIGl0J3MgdGltZSBhbHNvIHRvIHN0YXJ0IHJldmlld2luZyBQUnMgYW5kIG1lcmdpbmc6IHRoaXMgd2FzCj4+IHRoZQo+PiA+ID4gPiA+IGJpZwo+PiA+ID4gPiA+IG9iamVjdGl2ZSB3aXRoIEdpdCBtaWdyYXRpb24KPj4gPiA+ID4gPgo+PiA+ID4gPiA+IFJlZ2FyZHMsCj4+ID4gPiA+ID4KPj4gPiA+ID4gPiBIZXJ2PUMzPUE5Cj4+ID4gPiA+ID4KPj4gPiA+ID4gPiBbMV0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvCj4+ID4gPiA+ID4KPj4gPiA+ID4gPiBMZSBzYW1lZGkgOSBkPUMzPUE5Y2VtYnJlIDIwMTcsIDE3OjA2OjA5IENFVCBTdGVwaGVuIENvbm5vbGx5IGEgPQo9QzM9QTljcml0IDoKPj4gPiA+ID4gPiA+IEkgc2VlIHdlIGhhdmUgYSBsYXJnZSBudW1iZXIgb2YgcmVwb3Mgbm93IG9uIGdpdGJveCA7LSkKPj4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiBPbiBUaHUgNyBEZWMgMjAxNyBhdCAwNzowMCwgSGVydj1DMz1BOSBCT1VURU1ZIDwKPj4gaGVydmUuYm91dGVteUBmcmVlLmZyPgo+PiA+ID4gPgo+PiA+ID4gPiB3cm90ZToKPj4gPiA+ID4gPiA+ID4gb2ssIEkgZGlkbid0IHVwZGF0ZSBteSByZXBvIGNsb25lOiBub3cgdGhlIHJ1bi1pdHMgcHJvZmlsZSBpPQpzCj4+ID4gPiA+Cj4+ID4gPiA+IGFjdGl2YXRlZAo+PiA+ID4gPgo+PiA+ID4gPiA+ID4gPiB0aGVuIHRoZSBwbGFuIHNob3VsZCBqdXN0IGNvbmZpcm0gIml0IHdvcmtzISIgOikKPj4gPiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gYW5kIGZpbmQgd2hpY2ggam9icyBhcmUgc3BlY2lhbCwgbGlrZSBtYXZlbi1kaXN0LXRvb2wgKHdoaWNoCj4+IGhhcwo+PiA+ID4gPiA+ID4gPiB0bwo+PiA+ID4gPgo+PiA+ID4gPiBiZQo+PiA+ID4gPgo+PiA+ID4gPiA+ID4gPiBzY2hlZHVsZWQgZGFpbHkgaW5zdGVhZCBvZiBjb2RlIGNoYW5nZSwgYW5kIG9uZSBwbGF0Zm9ybSBvbmw9CnkpCj4+ID4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+IFJlZ2FyZHMsCj4+ID4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+IEhlcnY9QzM9QTkKPj4gPiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gTGUgbWVyY3JlZGkgNiBkPUMzPUE5Y2VtYnJlIDIwMTcsIDIzOjU4OjQ1IENFVCBTdGVwaGVuIENvbm5vPQpsbHkgYQo+PiA9QzM9QTljcml0Cj4+IDoKPj4gPiA+ID4gPiA+ID4gPiBPbiBXZWQgNiBEZWMgMjAxNyBhdCAyMjozOCwgSGVydj1DMz1BOSBCT1VURU1ZCj4+ID4gPiA+ID4gPiA+ID4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4gPiA+ID4KPj4gPiA+ID4gd3JvdGU6Cj4+ID4gPiA+ID4gPiA+ID4gPiBOb3cgdGhhdCB3ZSBoYXZlIDIgQVNGIE9yZ2FuaXphdGlvbiBKZW5raW5zIGpvYnMgKG9uZSBmbz0Kcgo+PiA+ID4gPiA+ID4gPiA+ID4gZ2l0Ym94Cj4+ID4gPiA+Cj4+ID4gPiA+IFsxXQo+PiA+ID4gPgo+PiA+ID4gPiA+ID4gPiBhbmQKPj4gPiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPiA+IG9uZQo+PiA+ID4gPiA+ID4gPiA+ID4gZm9yIGdpdC13aXA6IHRoYW5rIHlvdSBTdGVwaGVuKSBhbmQgdGhhdCBpdCBsb29rcyBxdWl0ZQo+PiA+ID4gPgo+PiA+ID4gPiBzdWNjZXNzZnVsLAo+PiA+ID4gPgo+PiA+ID4gPiA+ID4gPiBsZXQncwo+PiA+ID4gPiA+ID4gPgo+PiA+ID4gPiA+ID4gPiA+ID4gcGxhbgo+PiA+ID4gPiA+ID4gPiA+ID4gdGhlIG5leHQgc3RlcHMuCj4+ID4gPiA+ID4gPiA+ID4gPgo+PiA+ID4gPiA+ID4gPiA+ID4gSGVyZSBpcyB3aGF0IEkgc2VlOgo+PiA+ID4gPiA+ID4gPiA+ID4gMS4gcmVtb3ZhbCBvZiBoYW5kLWRlZmluZWQgSmVua2lucyBqb2JzIHRoYXQgYXJlIG5vdwo+PiA+ID4gPiA+ID4gPiA+ID4gZHVwbGljYXRlcwo+PiA+ID4gPiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPiA+IDIuIHByZXBhcmF0aW9uIG9mIHRoZSA2MCBuZXcgZW1wdHkgZ2l0IHJlcG9zIGZvciBzaGFyZWQgPQomCj4+ID4gPiA+ID4gPiA+ID4gPiBwbHVnaW5zCj4+ID4gPiA+ID4gPiA+ID4gPgo+PiA+ID4gPiA+ID4gPiA+ID4gMy4gbWlncmF0aW9uIG9mIHRoZSAxIHNoYXJlZCBjb21wb25lbnQgYW5kIDEgcGx1Z2luIHVzaW49CmcKPj4gPiA+ID4gPiA+ID4gPiA+IG1pZ3JhdGUtKi5zaAo+PiA+ID4gPiA+ID4gPiA+ID4gc2NyaXB0cwo+PiA+ID4gPiA+ID4gPiA+ID4gWzNdIHRvIHRlc3QgYW5kIGV2ZW50dWFsbHkgcmV3b3JrIHRoZSBKZW5raW5zZmlsZSAoSQo+PiBzdXBwb3NlCj4+ID4gPiA+ID4gPiA+ID4gPiBpdAo+PiA+ID4gPgo+PiA+ID4gPiB3aWxsCj4+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+ID4gPiByZXF1aXJlCj4+ID4gPiA+ID4gPiA+ID4gPiBzb21lIGxpdHRsZSBjaGFuZ2UsIHRvIHJ1biBhZGQgInJ1bi1pdHMiIHByb2ZpbGUpCj4+ID4gPiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPiBBcyBmYXIgYXMgSSByZWNhbGwsIEkgYWRkZWQgLVArcnVuLWl0cyBhbHJlYWR5Cj4+ID4gPiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPiBGb3IgdGhlIHBsdWdpbiwgSSdkIGxpa2UgdG8gZG8gdGhlIGpvYiBmb3IKPj4gbWF2ZW4tc2l0ZS1wbHVnaW4sCj4+ID4gPiA+Cj4+ID4gPiA+IHNpbmNlIHdlCj4+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+ID4gPiBleHBlY3QKPj4gPiA+ID4gPiA+ID4gPiA+IHRvIHJlbGVhc2UgaXQgc29vbi4KPj4gPiA+ID4gPiA+ID4gPiA+IEZvciB0aGUgc2hhcmVkIGNvbXBvbmVudCwgSSBkb24ndCBrbm93IGlmIHRoZXJlIGlzIGEgYmVzPQp0Cj4+ID4gPiA+Cj4+ID4gPiA+IGNhbmRpZGF0ZQo+PiA+ID4gPgo+PiA+ID4gPiA+ID4gPiA+ID4gNC4gb25jZSBwcmV2aW91cyBzdGVwIGlzIG9rLCBkbyB0aGUgZnVsbCBtaWdyYXRpb246IGlmCj4+IHRoZXJlCj4+ID4gPiA+ID4gPiA+ID4gPiBhcmUKPj4gPiA+ID4gPiA+ID4gPiA+IHZvbHVudGVlcnMKPj4gPiA+ID4gPiA+ID4gPiA+IGZvciBoZWxwaW5nLCB0aGF0IHdvdWxkIGJlIGdyZWF0LCBzaW5jZSBwb3B1bGF0aW5nIDYwIGdpPQp0Cj4+ID4gPiA+ID4gPiA+ID4gPiByZXBvcwo+PiA+ID4gPiA+ID4gPiA+ID4gd29uJ3QKPj4gPiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gYmUKPj4gPiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPiA+IHJlYWxseSBmdW4uLi4KPj4gPiA+ID4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+ID4gPiBBbmQgYXMgcGFydCBvZiA2MCBlbXB0eSBnaXQgcmVwb3MgY3JlYXRpb24sIEkgcHJvcG9zZSB0bwo+PiA+ID4gPiA+ID4gPiA+ID4gbWlncmF0ZQo+PiA+ID4gPgo+PiA+ID4gPiB0aGUKPj4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPiA+ICJHb29nbGUKPj4gPiA+ID4gPiA+ID4gPiA+IHJlcG8gbWFuaWZlc3QiIG1hdmVuLWFnZ3JlZ2F0b3IgWzRdIHRvIEFTRjogbXkgcGVyc29uYWwKPj4gdXNlCj4+ID4gPiA+ID4gPiA+ID4gPiBoYXMKPj4gPiA+ID4KPj4gPiA+ID4gYmVlbgo+PiA+ID4gPgo+PiA+ID4gPiA+ID4gPiBxdWl0ZQo+PiA+ID4gPiA+ID4gPgo+PiA+ID4gPiA+ID4gPiA+ID4gc3VjY2Vzc2Z1bCwgSSBob3BlIGl0J3MgdGhlIHNhbWUgZm9yIG90aGVycy4gUGVyaGFwcwo+PiB0aGVyZSBhcmUKPj4gPiA+ID4gPiA+ID4gPiA+IGJldHRlcgo+PiA+ID4gPiA+ID4gPiA+ID4gaWRlYXMKPj4gPiA+ID4gPiA+ID4gPiA+IGZvciBpdHMgbmFtZTogbWF2ZW4tYWdncmVnYXRvcgo+PiA+ID4gPiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPiA+IEFueSBvdGhlciBpZGVhPyBhbnkgb2JqZWN0aW9uPwo+PiA+ID4gPiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPiA+IFJlZ2FyZHMsCj4+ID4gPiA+ID4gPiA+ID4gPgo+PiA+ID4gPiA+ID4gPiA+ID4gSGVydj1DMz1BOQo+PiA+ID4gPiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPiA+IFsxXQo+PiA+ID4gPiA+ID4gPiA+ID4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi0KPj4gYm94Lwo+PiA+ID4gPiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPiA+IFsyXQo+PiA+ID4gPiA+ID4gPiA+ID4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi0KPj4gd2lwLwo+PiA+ID4gPiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPiA+IFszXQo+PiA+ID4gPgo+PiA+ID4gPiBodHRwczovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy9tYXZlbi9zYW5kYm94L3RydW5rL3NjcmlwdHMvZ2l0Lwo+PiA+ID4gPgo+PiA+ID4gPiA+ID4gPiA+ID4gWzRdIGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1hZ2dyZWdhdG9yCj4+ID4gPiA+Cj4+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiAtLS0tLS0tLQo+PiA+ID4gPgo+PiA+ID4gPiA+ID4gPiA+ID4gLQo+PiA+ID4gPiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+ID4gPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6Cj4+IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+ID4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+ID4gPiAtLQo+PiA+ID4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+ID4gU2VudCBmcm9tIG15IHBob25lCj4+ID4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiAtLS0tLS0KPj4gPiA+ID4gPiA+ID4gLS0KPj4gPiA+ID4gPiA+ID4gLQo+PiA+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+IC0tCj4+ID4gPiA+ID4gPgo+PiA+ID4gPiA+ID4gU2VudCBmcm9tIG15IHBob25lCj4+ID4gPiA+ID4KPj4gPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gLS0tLS0tLS0tCj4+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPiA+Cj4+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiAtLS0tLS0tLS0KPj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4gPgo+PiA+ID4gPiAtLQo+PiA+ID4KPj4gPiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+PiA+Cj4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Cj4+Cj4+Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Cj4+IC0tCj4gU2VudCBmcm9tIG15IHBob25lCj4KCi0tZjQwMzA0NWVhNmVjYzY3M2Q4MDU2MDhlZmVjMS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NzMwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBEZWMgIDQgMDA6MDg6MzEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzMwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDUyNkU4MTA3QzcKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAgNCBEZWMgMjAxNyAwMDowODozMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk3NDQ1IGludm9rZWQgYnkgdWlkIDUwMCk7IDQgRGVjIDIwMTcgMDA6MDg6MzAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk3Mzc4IGludm9rZWQgYnkgdWlkIDUwMCk7IDQgRGVjIDIwMTcgMDA6MDg6MzAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NzM2NiBpbnZva2VkIGJ5IHVpZCA5OSk7IDQgRGVjIDIwMTcgMDA6MDg6MzAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDA0IERlYyAyMDE3IDAwOjA4OjMwICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgN0U1ODkxODA1ODIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICA0IERlYyAyMDE3IDAwOjA4OjI5ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuNDAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjQwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHF6Z3Q0bE9ybEFaSiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgIDQgRGVjIDIwMTcgMDA6MDg6MTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13cjAtZjE3Ni5nb29nbGUuY29tIChtYWlsLXdyMC1mMTc2Lmdvb2dsZS5jb20gWzIwOS44NS4xMjguMTc2XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDg3NTJDNUZCNUIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICA0IERlYyAyMDE3IDAwOjA4OjE2ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdyMC1mMTc2Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHE5c28xNTQxMjA1OHdyZS43CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMDMgRGVjIDIwMTcgMTY6MDg6MTYgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9WEl2bjJ4VnF6OGZnODVuK2Y2blUzVnJJTC95cFpzYmwzbjROdisyUEI3Yz07CiAgICAgICAgYj1UZ1E0RENueStNeXFJalNta1FLYTA1SzF2cWt0eG82S3YwSnc0Y2NxVVlSRm9GYmp2OXlEMmEwSkVsb1NCLzdMNU4KICAgICAgICAgcms2Z1hGNkJRUm9oMFZJSWpFeWo3dm1CMUhnaUNRbGNDdFY0a0psZ2E0aXJPaEJLdCtzSzlPMGhCbm01cXN2NzNpam4KICAgICAgICAgdndndHdpaXJ4QlV0Y0lJakJKeWF1R2xld0hZQ2xneTFwQ3NVLzIwbWZpc1Z6U1k2Ry8rZDRxdjVpVHNKRm1KMndJZ1kKICAgICAgICAgSXJnVE5xOURlVkJqN1RLRkppUWZ3UG42aEEzdUxBUytMK2V2VVVNVkNreUVQeWwzQkFneXpQMFhGOFRPNjh4ODNuKy8KICAgICAgICAgaW5LZGNFUUFoZkd2eG83V3lCU2N1cEUrVDN1Snl6aEh5aTlMKzVtZVBVaTU0dm1XRmZhTC9RdE5Pdi9YUnl6dFhCZXQKICAgICAgICAgemNOZz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9WEl2bjJ4VnF6OGZnODVuK2Y2blUzVnJJTC95cFpzYmwzbjROdisyUEI3Yz07CiAgICAgICAgYj1JeVA3ZG5ack82QXMyLzdPQzI4Q0RvQkRHWTZHcFZCMmZKQ1NVUzI2UTVLZHlBeTIzTGpJSFdGVUVvQVB5QmNNamoKICAgICAgICAgU2w4NHgyQlBZNllGa05ZY0FMRXJHVVoxVEJaamVFbzc3RFNzMG9ET0JUVG1oMTF3K0R1SzkxQzUxbEZ6MnBSNVlGc1MKICAgICAgICAgMkxRTTU5SUZuVWtPS2I0UTE3NUp0MWV0N1Irc0VFY3dNM3c0NVlQZlJ1cjdsWDJacE9QdUkrdkpnOTErblVJSkRwcXIKICAgICAgICAgU0g4eUc4MDhreG1IR3NucHVacnZDMEVLcUo5VktRL0RUNjJJTXB3enhzTVYvVGtVbytUbVYxUTVGUnJKb0JEdzVldWwKICAgICAgICAgd3NQRTBwdGlOMEFIRnY2MUpwcm1jN2pqUzhBTkVvTko0am1HcHVpdzBJbTlDUVUya2Y3cDJ3RnlrWmp2SWR0dWdGYlUKICAgICAgICAgUHZqZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYNlNhV2tIU0RmMkovclVhai9iNjZaVWxTRllQMHptbnM4NkJQVkI4eGdXc2s0MUV6dWkKCTNkbzFyU1REU0RtZU9CS0hvamNxMnNFRGNGYkg3TFZqMGxpMjUyQkp2dz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1aeUJXYWNUck5vWTlSaDdXZEtoYWlpM0VhMkY1Wm1YOEs5RmFMK3dSNU41SUlMU3RMR1ZsQVI4dFhPR0t5VlBJRFppa1JqcnFCcFlSQ29vdUVlSmZVPQpYLVJlY2VpdmVkOiBieSAxMC4yMjMuMTM0LjE4NCB3aXRoIFNNVFAgaWQgNTNtcjEwNzkwODA2d3J4LjE3LjE1MTIzNDYwOTU1MTk7CiBTdW4sIDAzIERlYyAyMDE3IDE2OjA4OjE1IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yMjMuMTczLjIzNSB3aXRoIEhUVFA7IFN1biwgMyBEZWMgMjAxNyAxNjowODoxNCAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPENBUG95QnFUcj09N2Y0M200Wmc3NVBhdGtzcytiTmJab2lOckt2cmVHVDF5UTdpbkRMUUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPDIwMjc1NzY2ODkuODc2LjE1MTE5NDgyNjU3MDAuSmF2YU1haWwuamVua2luc0BqZW5raW5zLW1hc3Rlci5hcGFjaGUub3JnPgogPDE0MDg3NDA5NS4xMjU1LjE1MTIyMTIyNzQ4NzAuSmF2YU1haWwuamVua2luc0BqZW5raW5zLW1hc3Rlci5hcGFjaGUub3JnPgogPENBK25Qbk13MSs1dG5BbWZHNCswZTlraHQ2NVlocHhKTW1Cc2NoTnIrR1hrYzJ2RU52UUBtYWlsLmdtYWlsLmNvbT4gPENBUG95QnFUcj09N2Y0M200Wmc3NVBhdGtzcytiTmJab2lOckt2cmVHVDF5UTdpbkRMUUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA0IERlYyAyMDE3IDAwOjA4OjE0ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NeXlUMnJkcTFKaHpaOFZfZGJzWV96YT1GMVAycEFlV2crQ3M4ZnZCcz1TRkFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6ID0/VVRGLTg/UT9SZT0zQV9CdWlsZF9mYWlsZWRfaW5fSmVua2lucz0zQV9NYXZlbl9UTFBfPUMyPUJCX21hdmVuPTJEcmVsZT89Cgk9P1VURi04P1E/YXNlXz1DMj1CQl9tYXN0ZXJfPTIzMz89ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQ2YzY0MmNkMGQxNDA1NWY3ODgzMTAiCgotLTAwMWExMTQ2YzY0MmNkMGQxNDA1NWY3ODgzMTAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gMyBEZWNlbWJlciAyMDE3IGF0IDIzOjI1LCBPbGl2aWVyIExhbXkgPG9sYW15QGFwYWNoZS5vcmc+IHdyb3RlOgoKPiBpcyB0aGVyZSBhbnkgd2F5IHRvIHRyaWdnZXIgYSBidWlsZCB3aGVuIHNuYXBzaG90IGRlcGVuZGVuY2llcyBhcmUgYnVpbGQ/Cj4gKGlzIGl0IHVzaW5nIHRoZSB3aXRoTWF2ZW4/KQo+CgppdCdzIHVzaW5nIHdpdGhNYXZlbgoKCj4gaW4gdGhpcyBjYXNlIGl0J3Mgb25seSBhIG1hdHRlciBvZiBoYXZpbmcgbWF2ZW4tc2NtIGJ1aWxkIGFuZCBkZXBsb3llZC4KPgoKSG1tbSBJIGRvbid0IGxpa2UgY2kgYXV0by1kZXBsb3lpbmcuLi4KCgo+Cj4gT24gMiBEZWNlbWJlciAyMDE3IGF0IDIyOjI1LCBTdGVwaGVuIENvbm5vbGx5IDwKPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPgo+ID4gSGVyZT1FMj04MD05OXMgdGhlIGZhaWx1cmUuIElmIHRyYWNpbmcgdGhlIHJvb3QgY2F1c2UgdXN1YWxseSBiZXN0IHRvIGw9Cm9vayBhdAo+ID4gdGhlIHBpcGVsaW5lIHN0ZXBzIHZpZXcgb2YgYSBidWlsZCBhcyB0aGF0IGxldHMgeW91IHNlZSB0aGUgaW5kaXZpZHVhbAo+ID4gc3RlcD1FMj04MD05OXMgbG9nCj4gPgo+ID4KPiA+IFtFUlJPUl0gRmFpbGVkIHRvIGV4ZWN1dGUgZ29hbAo+ID4gb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zOm1hdmVuLWNvbXBpbGVyLXBsdWdpbjozLjI6Y29tcGlsZQo+ID4gKGRlZmF1bHQtY29tcGlsZSkgb24gcHJvamVjdCBtYXZlbi1yZWxlYXNlLW1hbmFnZXI6IENvbXBpbGF0aW9uCj4gPiBmYWlsdXJlW0VSUk9SXSAvaG9tZS9qZW5raW5zL2plbmtpbnMtc2xhdmUvd29ya3NwYWNlL2VuLWJveF9tYXZlbi0KPiA+IHJlbGVhc2VfbWFzdGVyLU9DS0dVTFFCQ1o2N1ZCS0o3SEY2RTdLWlVDS1g3WkM2Rlg2NEdINjZPSFA3QTRWQVFCSVEvbS8KPiA+IG1hdmVuLXJlbGVhc2UtbWFuYWdlci9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vCj4gc2hhcmVkL3JlbGVhc2UvcGhhc2UvCj4gPiBDaGVja291dFByb2plY3RGcm9tU2NtLmphdmE6WzIxOCw0N10KPiA+IG5vIHN1aXRhYmxlIG1ldGhvZCBmb3VuZCBmb3IKPiA+IGNoZWNrT3V0KG9yZy5hcGFjaGUubWF2ZW4uc2NtLnJlcG9zaXRvcnkuU2NtUmVwb3NpdG9yeSxvcmcuCj4gPiBhcGFjaGUubWF2ZW4uc2NtLlNjbUZpbGVTZXQsb3JnLmFwYWNoZS5tYXZlbi5zY20uU2NtVGFnLAo+ID4gb3JnLmFwYWNoZS5tYXZlbi5zY20uQ29tbWFuZFBhcmFtZXRlcnMpW0VSUk9SXQo+ID4gICAgIG1ldGhvZCBvcmcuYXBhY2hlLm1hdmVuLnNjbS5wcm92aWRlci5TY21Qcm92aWRlci5jaGVja091dChvcmcuCj4gPiBhcGFjaGUubWF2ZW4uc2NtLnJlcG9zaXRvcnkuU2NtUmVwb3NpdG9yeSxvcmcuYXBhY2hlLgo+ID4gbWF2ZW4uc2NtLlNjbUZpbGVTZXQsb3JnLmFwYWNoZS5tYXZlbi5zY20uU2NtVmVyc2lvbixib29sZWFuKQo+ID4gaXMgbm90IGFwcGxpY2FibGVbRVJST1JdICAgICAgIChhY3R1YWwgYXJndW1lbnQKPiA+IG9yZy5hcGFjaGUubWF2ZW4uc2NtLkNvbW1hbmRQYXJhbWV0ZXJzIGNhbm5vdCBiZSBjb252ZXJ0ZWQgdG8gYm9vbGVhbgo+ID4gYnkgbWV0aG9kIGludm9jYXRpb24gY29udmVyc2lvbilbRVJST1JdICAgICBtZXRob2QKPiA+IG9yZy5hcGFjaGUubWF2ZW4uc2NtLnByb3ZpZGVyLlNjbVByb3ZpZGVyLmNoZWNrT3V0KG9yZy4KPiA+IGFwYWNoZS5tYXZlbi5zY20ucmVwb3NpdG9yeS5TY21SZXBvc2l0b3J5LG9yZy5hcGFjaGUuCj4gPiBtYXZlbi5zY20uU2NtRmlsZVNldCxib29sZWFuKQo+ID4gaXMgbm90IGFwcGxpY2FibGVbRVJST1JdICAgICAgIChhY3R1YWwgYW5kIGZvcm1hbCBhcmd1bWVudCBsaXN0cwo+ID4gZGlmZmVyIGluIGxlbmd0aClbRVJST1JdICAgICBtZXRob2QKPiA+IG9yZy5hcGFjaGUubWF2ZW4uc2NtLnByb3ZpZGVyLlNjbVByb3ZpZGVyLmNoZWNrT3V0KG9yZy4KPiA+IGFwYWNoZS5tYXZlbi5zY20ucmVwb3NpdG9yeS5TY21SZXBvc2l0b3J5LG9yZy5hcGFjaGUuCj4gPiBtYXZlbi5zY20uU2NtRmlsZVNldCxqYXZhLmxhbmcuU3RyaW5nLGJvb2xlYW4pCj4gPiBpcyBub3QgYXBwbGljYWJsZVtFUlJPUl0gICAgICAgKGFjdHVhbCBhcmd1bWVudAo+ID4gb3JnLmFwYWNoZS5tYXZlbi5zY20uU2NtVGFnIGNhbm5vdCBiZSBjb252ZXJ0ZWQgdG8gamF2YS5sYW5nLlN0cmluZyBieQo+ID4gbWV0aG9kIGludm9jYXRpb24gY29udmVyc2lvbilbRVJST1JdICAgICBtZXRob2QKPiA+IG9yZy5hcGFjaGUubWF2ZW4uc2NtLnByb3ZpZGVyLlNjbVByb3ZpZGVyLmNoZWNrT3V0KG9yZy4KPiA+IGFwYWNoZS5tYXZlbi5zY20ucmVwb3NpdG9yeS5TY21SZXBvc2l0b3J5LG9yZy5hcGFjaGUuCj4gPiBtYXZlbi5zY20uU2NtRmlsZVNldCxvcmcuYXBhY2hlLm1hdmVuLnNjbS5TY21WZXJzaW9uKQo+ID4gaXMgbm90IGFwcGxpY2FibGVbRVJST1JdICAgICAgIChhY3R1YWwgYW5kIGZvcm1hbCBhcmd1bWVudCBsaXN0cwo+ID4gZGlmZmVyIGluIGxlbmd0aClbRVJST1JdICAgICBtZXRob2QKPiA+IG9yZy5hcGFjaGUubWF2ZW4uc2NtLnByb3ZpZGVyLlNjbVByb3ZpZGVyLmNoZWNrT3V0KG9yZy4KPiA+IGFwYWNoZS5tYXZlbi5zY20ucmVwb3NpdG9yeS5TY21SZXBvc2l0b3J5LG9yZy5hcGFjaGUuCj4gbWF2ZW4uc2NtLlNjbUZpbGVTZXQpCj4gPiBpcyBub3QgYXBwbGljYWJsZVtFUlJPUl0gICAgICAgKGFjdHVhbCBhbmQgZm9ybWFsIGFyZ3VtZW50IGxpc3RzCj4gPiBkaWZmZXIgaW4gbGVuZ3RoKVtFUlJPUl0gICAgIG1ldGhvZAo+ID4gb3JnLmFwYWNoZS5tYXZlbi5zY20ucHJvdmlkZXIuU2NtUHJvdmlkZXIuY2hlY2tPdXQob3JnLgo+ID4gYXBhY2hlLm1hdmVuLnNjbS5yZXBvc2l0b3J5LlNjbVJlcG9zaXRvcnksb3JnLmFwYWNoZS4KPiA+IG1hdmVuLnNjbS5TY21GaWxlU2V0LGphdmEubGFuZy5TdHJpbmcpCj4gPiBpcyBub3QgYXBwbGljYWJsZVtFUlJPUl0gICAgICAgKGFjdHVhbCBhbmQgZm9ybWFsIGFyZ3VtZW50IGxpc3RzCj4gPiBkaWZmZXIgaW4gbGVuZ3RoKVtFUlJPUl0gLT4gW0hlbHAgMV1bRVJST1JdIFtFUlJPUl0gVG8gc2VlIHRoZSBmdWxsCj4gPiBzdGFjayB0cmFjZSBvZiB0aGUgZXJyb3JzLCByZS1ydW4gTWF2ZW4gd2l0aCB0aGUgLWUgc3dpdGNoLltFUlJPUl0KPiA+IFJlLXJ1biBNYXZlbiB1c2luZyB0aGUgLVggc3dpdGNoIHRvIGVuYWJsZSBmdWxsIGRlYnVnIGxvZ2dpbmcuW0VSUk9SXQo+ID4gW0VSUk9SXSBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXJyb3JzIGFuZCBwb3NzaWJsZSBzb2x1dGlvbnMsCj4gPiBwbGVhc2UgcmVhZCB0aGUgZm9sbG93aW5nIGFydGljbGVzOgo+ID4KPiA+Cj4gPgo+ID4gT24gU2F0IDIgRGVjIDIwMTcgYXQgMTA6NTgsIEFwYWNoZSBKZW5raW5zIFNlcnZlciA8Cj4gPiBqZW5raW5zQGJ1aWxkcy5hcGFjaGUub3JnPgo+ID4gd3JvdGU6Cj4gPgo+ID4gPiBTZWUKPiA+ID4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy9qb2IvbWF2ZW4tYm94L2pvYi9tYXZlbi1yZWxlYXNlLwo+IGpvYi9tYXN0ZXIvMy8KPiA+ID4KPiA+ID4gQ2hhbmdlczoKPiA+ID4KPiA+ID4gKiB0ZXN0aW5nIGVtYWlsZXh0IHRlbXBsYXRlcwo+ID4gPiAqIHRlc3RpbmcgZW1haWxleHQgdGVtcGxhdGVzCj4gPiA+ICogdHdlYWtzCj4gPiA+ICogZGVidWdnaW5nCj4gPiA+ICogZm9ybWF0dGluZwo+ID4gPiAqIEZvcm1hdHRpbmcKPiA+ID4gKiB0cnlpbmcgdG8gZGVidWcgZmFpbGluZyBidWlsZCBpc3N1ZQo+ID4gPiAqIG1vcmUgc2FmZXR5Cj4gPiA+ICogQWRkIGxpY2Vuc2UgaGVhZGVycwo+ID4gPiAqIFtKRU5LSU5TLTM0Mzc2XSBXb3JrYXJvdW5kIEplbmtpbnMgaXNzdWUgdG8gZGV0ZWN0IGFib3J0ZWQgYnVpbGRzCj4gPiBiZXR0ZXIKPiA+ID4gKiBNb3JlIHR3ZWFraW5nLi4uIGZmcyBwaXBlbGluZSB5b3UgZG9uJ3QgbWFrZSBpdCBlYXN5IHRvIGdldCB0aGUKPiBhY3R1YWwKPiA+ID4gKiBBbGxvdyBmYWlsaW5nIHRlc3RzIHRvIGJlIHJlY29yZGVkIGFzIHVuc3RhYmxlIGJ1aWxkCj4gPiA+ICogRW5zdXJlIHRoZSBlbWFpbCBvbiBmYWlsdXJlIGlzIGFsd2F5cyBzZW50IGlmIHdlIHN0YXJ0IHRoZSBidWlsZAo+ID4gPiAqIE5vIG5lZWQgdG8gY29sbGVjdCBmaW5kYnVncyBldGMgb24gYW55dGhpbmcgb3RoZXIgdGhhbiB0aGUgZmlyc3QKPiA+ID4gKiBzeW50YXgKPiA+ID4gKiBzeW50YXggYWdhaW4KPiA+ID4gKiBBbGxvdyAnamRrJyBvciAnamRrcycKPiA+ID4gKiBCZXR0ZXIgcmVwb3J0IGNvbGxlY3Rpb24gb3B0aW1pemF0aW9uCj4gPiA+ICogc3ludGF4IGZ0dwo+ID4gPiAqIHN5bnRheCB0YWtlIDUKPiA+ID4gKiBidWlsZCB0aGUgY29tbWFuZCBsaW5lIGluIG1vcmUgZXh0ZW5zaWJsZSB3YXkKPiA+ID4gKiBBaGFcISBmaXJzdCB3YXMgYmVpbmcgZXZhbHVhdGVkIGFmdGVyIGFkZGluZyB0aGUgdGFzawo+ID4gPiAqIGNhcHR1cmUgYW5vdGhlcgo+ID4gPiAqIFtNUkVMRUFTRS05OTNdIFVzZSBzaGFsbG93IGNoZWNrb3V0IHBlciBkZWZhdWx0IChnaXQgc2NtKQo+ID4gPiAqIFtNUkVMRUFTRS05OTNdIFVzZSBzaGFsbG93IGNoZWNrb3V0IHBlciBkZWZhdWx0IChnaXQgc2NtKQo+ID4gPiAqIFtNUkVMRUFTRS05OTNdIFVzZSBzaGFsbG93IGNoZWNrb3V0IHBlciBkZWZhdWx0IChnaXQgc2NtKQo+ID4gPiAqIFtNUkVMRUFTRS05OTNdIFVzZSBzaGFsbG93IGNoZWNrb3V0IHBlciBkZWZhdWx0IChnaXQgc2NtKQo+ID4gPiAqIFtNUkVMRUFTRS05OTNdIFVzZSBzaGFsbG93IGNoZWNrb3V0IHBlciBkZWZhdWx0IChnaXQgc2NtKQo+ID4gPiAqIFtNUkVMRUFTRS05OTNdIFVzZSBzaGFsbG93IGNoZWNrb3V0IHBlciBkZWZhdWx0IChnaXQgc2NtKQo+ID4gPgo+ID4gPiBObyB0ZXN0cyByYW4uCj4gPiA+Cj4gPiA+IEJ1aWxkIGxvZzoKPiA+ID4gWy4uLnRydW5jYXRlZCAxLjc2IE1CLi4uXQo+ID4gPiBbbGludXgtamRrOV0gW0lORk9dIENoYW5nZXMgZGV0ZWN0ZWQgLSByZWNvbXBpbGluZyB0aGUgbW9kdWxlIQo+ID4gPiBbbGludXgtamRrOV0gW0lORk9dIENvbXBpbGluZyAxMDMgc291cmNlIGZpbGVzIHRvCj4gPiA+IC9ob21lL2plbmtpbnMvamVua2lucy1zbGF2ZS93b3Jrc3BhY2UvZW4tYm94X21hdmVuLXJlbGVhc2VfbWFzdGVyLQo+ID4gT0NLR1VMUUJDWjY3VkJLSjdIRjZFN0taVUNLWDdaQzZGWDY0R0g2Nk9IUDdBNFZBUUJJUS9tLwo+ID4gbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyL3RhcmdldC9jbGFzc2VzCj4gPiA+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1jdnNleGUvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+ID4gcHJvdmlkZXItY3ZzZXhlLTEuOS42LTIwMTcxMjAxLjIzMjY0Ni0xMi5qYXIKPiA+ID4gKDMxIGtCIGF0IDYzIGtCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItY3ZzamF2YS8xLjkuNi1TTkFQU0hPVC9tYXZlbi0KPiA+IHNjbS1wcm92aWRlci1jdnNqYXZhLTEuOS42LTIwMTcxMjAxLjIzMjY1MS0xMi5qYXIKPiA+ID4gW3dpbmRvd3MtamRrOQo+ID4gPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItY3ZzamF2YS8xLjkuNi1TTkFQU0hPVC9tYXZlbi0KPiA+IHNjbS1wcm92aWRlci1jdnNqYXZhLTEuOS42LTIwMTcxMjAxLjIzMjY1MS0xMi5qYXIlNUJ3aW5kb3dzLWpkazk+XQo+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItYmF6YWFyLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS0KPiA+IHByb3ZpZGVyLWJhemFhci0xLjkuNi0yMDE3MTIwMS4yMzI2MjktMTIuamFyCj4gPiA+ICg1NyBrQiBhdCAxMDcga0IvcykKPiA+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1naXRleGUvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+ID4gcHJvdmlkZXItZ2l0ZXhlLTEuOS42LTIwMTcxMjAxLjIzMjcwOS0xMi5qYXIKPiA+ID4gW3dpbmRvd3MtamRrOQo+ID4gPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItZ2l0ZXhlLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS0KPiA+IHByb3ZpZGVyLWdpdGV4ZS0xLjkuNi0yMDE3MTIwMS4yMzI3MDktMTIuamFyJTVCd2luZG93cy1qZGs5Pl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWFjY3VyZXYvMS45LjYtU05BUFNIT1QvbWF2ZW4tCj4gPiBzY20tcHJvdmlkZXItYWNjdXJldi0xLjkuNi0yMDE3MTIwMS4yMzI2MjMtMTIuamFyCj4gPiA+ICg5NyBrQiBhdCAxNTgga0IvcykKPiA+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWN2cy1jb21tb25zLzEuOS42LVNOQVBTSE9UL21hdmVuLQo+ID4gc2NtLXByb3ZpZGVyLWN2cy1jb21tb25zLTEuOS42LTIwMTcxMjAxLjIzMjY0MC0xMi5qYXIKPiA+ID4gKDc4IGtCIGF0IDEyOCBrQi9zKQo+ID4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWdpdC1jb21tb25zLzEuOS42LVNOQVBTSE9UL21hdmVuLQo+ID4gc2NtLXByb3ZpZGVyLWdpdC1jb21tb25zLTEuOS42LTIwMTcxMjAxLjIzMjcwMy0xMi5qYXIKPiA+ID4gW3dpbmRvd3MtamRrOQo+ID4gPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItZ2l0LWNvbW1vbnMvMS45LjYtU05BUFNIT1QvbWF2ZW4tCj4gPiBzY20tcHJvdmlkZXItZ2l0LWNvbW1vbnMtMS45LjYtMjAxNzEyMDEuMjMyNzAzLTEyLmphciU1QndpbmRvd3MtamRrOT5dCj4gPiA+IFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItamdpdC8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gPiBwcm92aWRlci1qZ2l0LTEuOS42LTIwMTcxMjAxLjIzMjczOS0xMi5qYXIKPiA+ID4gW3dpbmRvd3MtamRrOQo+ID4gPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItamdpdC8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gPiBwcm92aWRlci1qZ2l0LTEuOS42LTIwMTcxMjAxLjIzMjczOS0xMi5qYXIlNUJ3aW5kb3dzLWpkazk+XQo+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItY2xlYXJjYXNlLzEuOS42LVNOQVBTSE9ULwo+ID4gbWF2ZW4tc2NtLXByb3ZpZGVyLWNsZWFyY2FzZS0xLjkuNi0yMDE3MTIwMS4yMzI2MzQtMTIuamFyCj4gPiA+ICg3MCBrQiBhdCAxMTQga0IvcykKPiA+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1oZy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXItCj4gPiBoZy0xLjkuNi0yMDE3MTIwMS4yMzI3MjEtMTIuamFyCj4gPiA+IFt3aW5kb3dzLWpkazkKPiA+ID4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWhnLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlci0KPiA+IGhnLTEuOS42LTIwMTcxMjAxLjIzMjcyMS0xMi5qYXIlNUJ3aW5kb3dzLWpkazk+XQo+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItY3ZzamF2YS8xLjkuNi1TTkFQU0hPVC9tYXZlbi0KPiA+IHNjbS1wcm92aWRlci1jdnNqYXZhLTEuOS42LTIwMTcxMjAxLjIzMjY1MS0xMi5qYXIKPiA+ID4gKDQ1IGtCIGF0IDQ0IGtCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItcGVyZm9yY2UvMS45LjYtU05BUFNIT1QvbWF2ZW4tCj4gPiBzY20tcHJvdmlkZXItcGVyZm9yY2UtMS45LjYtMjAxNzEyMDEuMjMyODAwLTEyLmphcgo+ID4gPiBbd2luZG93cy1qZGs5Cj4gPiA+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1wZXJmb3JjZS8xLjkuNi1TTkFQU0hPVC9tYXZlbi0KPiA+IHNjbS1wcm92aWRlci1wZXJmb3JjZS0xLjkuNi0yMDE3MTIwMS4yMzI4MDAtMTIuamFyJTVCd2luZG93cy1qZGs5Pl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWdpdC1jb21tb25zLzEuOS42LVNOQVBTSE9UL21hdmVuLQo+ID4gc2NtLXByb3ZpZGVyLWdpdC1jb21tb25zLTEuOS42LTIwMTcxMjAxLjIzMjcwMy0xMi5qYXIKPiA+ID4gKDM1IGtCIGF0IDMzIGtCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItc3RhcnRlYW0vMS45LjYtU05BUFNIT1QvbWF2ZW4tCj4gPiBzY20tcHJvdmlkZXItc3RhcnRlYW0tMS45LjYtMjAxNzEyMDEuMjMyODA2LTEyLmphcgo+ID4gPiBbd2luZG93cy1qZGs5Cj4gPiA+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1zdGFydGVhbS8xLjkuNi1TTkFQU0hPVC9tYXZlbi0KPiA+IHNjbS1wcm92aWRlci1zdGFydGVhbS0xLjkuNi0yMDE3MTIwMS4yMzI4MDYtMTIuamFyJTVCd2luZG93cy1qZGs5Pl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWdpdGV4ZS8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gPiBwcm92aWRlci1naXRleGUtMS45LjYtMjAxNzEyMDEuMjMyNzA5LTEyLmphcgo+ID4gPiAoNjkga0IgYXQgNjQga0IvcykKPiA+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1zdm5leGUvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+ID4gcHJvdmlkZXItc3ZuZXhlLTEuOS42LTIwMTcxMjAxLjIzMjgxNy0xMi5qYXIKPiA+ID4gW3dpbmRvd3MtamRrOQo+ID4gPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItc3ZuZXhlLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS0KPiA+IHByb3ZpZGVyLXN2bmV4ZS0xLjkuNi0yMDE3MTIwMS4yMzI4MTctMTIuamFyJTVCd2luZG93cy1qZGs5Pl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWhnLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlci0KPiA+IGhnLTEuOS42LTIwMTcxMjAxLjIzMjcyMS0xMi5qYXIKPiA+ID4gKDY5IGtCIGF0IDYwIGtCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItc3luZXJneS8xLjkuNi1TTkFQU0hPVC9tYXZlbi0KPiA+IHNjbS1wcm92aWRlci1zeW5lcmd5LTEuOS42LTIwMTcxMjAxLjIzMjgyOS0xMi5qYXIKPiA+ID4gW3dpbmRvd3MtamRrOQo+ID4gPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItc3luZXJneS8xLjkuNi1TTkFQU0hPVC9tYXZlbi0KPiA+IHNjbS1wcm92aWRlci1zeW5lcmd5LTEuOS42LTIwMTcxMjAxLjIzMjgyOS0xMi5qYXIlNUJ3aW5kb3dzLWpkazk+XQo+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItamdpdC8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gPiBwcm92aWRlci1qZ2l0LTEuOS42LTIwMTcxMjAxLjIzMjczOS0xMi5qYXIKPiA+ID4gKDUzIGtCIGF0IDQ2IGtCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItdnNzLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS0KPiA+IHByb3ZpZGVyLXZzcy0xLjkuNi0yMDE3MTIwMS4yMzI4NDEtMTIuamFyCj4gPiA+IFtsaW51eC1qZGs3Cj4gPiA+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci12c3MvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+ID4gcHJvdmlkZXItdnNzLTEuOS42LTIwMTcxMjAxLjIzMjg0MS0xMi5qYXIlNUJsaW51eC1qZGs3Pl0KPiA+ID4gRmFpbGVkIGluIGJyYW5jaCBsaW51eC1qZGs3Cj4gPiA+IFtsaW51eC1qZGs4XSBbSU5GT10KPiA+ID4gW2xpbnV4LWpkazhdIFtJTkZPXSAtLS0gbWF2ZW4tcmVzb3VyY2VzLXBsdWdpbjoyLjc6cmVzb3VyY2VzCj4gPiA+IChkZWZhdWx0LXJlc291cmNlcykgQCBtYXZlbi1yZWxlYXNlLW1hbmFnZXIgLS0tCj4gPiA+IFtsaW51eC1qZGs4XSBbSU5GT10gVXNpbmcgJ1VURi04JyBlbmNvZGluZyB0byBjb3B5IGZpbHRlcmVkIHJlc291cmNlcz0KLgo+ID4gPiBbbGludXgtamRrOF0gW0lORk9dIENvcHlpbmcgMyByZXNvdXJjZXMKPiA+ID4gW2xpbnV4LWpkazhdIFtJTkZPXSBDb3B5aW5nIDMgcmVzb3VyY2VzCj4gPiA+IFtsaW51eC1qZGs4XSBbSU5GT10KPiA+ID4gW2xpbnV4LWpkazhdIFtJTkZPXSAtLS0gbWF2ZW4tY29tcGlsZXItcGx1Z2luOjMuMjpjb21waWxlCj4gPiA+IChkZWZhdWx0LWNvbXBpbGUpIEAgbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyIC0tLQo+ID4gPiBbbGludXgtamRrOF0gW0lORk9dIENoYW5nZXMgZGV0ZWN0ZWQgLSByZWNvbXBpbGluZyB0aGUgbW9kdWxlIQo+ID4gPiBbbGludXgtamRrOF0gW0lORk9dIENvbXBpbGluZyAxMDMgc291cmNlIGZpbGVzIHRvCj4gPiA+IC9ob21lL2plbmtpbnMvamVua2lucy1zbGF2ZS93b3Jrc3BhY2UvZW4tYm94X21hdmVuLXJlbGVhc2VfbWFzdGVyLQo+ID4gT0NLR1VMUUJDWjY3VkJLSjdIRjZFN0taVUNLWDdaQzZGWDY0R0g2Nk9IUDdBNFZBUUJJUS9tLwo+ID4gbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyL3RhcmdldC9jbGFzc2VzCj4gPiA+IFtsaW51eC1qZGs5XSBTZW5kaW5nIGludGVycnVwdCBzaWduYWwgdG8gcHJvY2Vzcwo+ID4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItcGVyZm9yY2UvMS45LjYtU05BUFNIT1QvbWF2ZW4tCj4gPiBzY20tcHJvdmlkZXItcGVyZm9yY2UtMS45LjYtMjAxNzEyMDEuMjMyODAwLTEyLmphcgo+ID4gPiAoODYga0IgYXQgNTUga0IvcykKPiA+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci10ZnMvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+ID4gcHJvdmlkZXItdGZzLTEuOS42LTIwMTcxMjAxLjIzMjgzNS0xMi5qYXIKPiA+ID4gW3dpbmRvd3MtamRrOQo+ID4gPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItdGZzLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS0KPiA+IHByb3ZpZGVyLXRmcy0xLjkuNi0yMDE3MTIwMS4yMzI4MzUtMTIuamFyJTVCd2luZG93cy1qZGs5Pl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXN0YXJ0ZWFtLzEuOS42LVNOQVBTSE9UL21hdmVuLQo+ID4gc2NtLXByb3ZpZGVyLXN0YXJ0ZWFtLTEuOS42LTIwMTcxMjAxLjIzMjgwNi0xMi5qYXIKPiA+ID4gKDczIGtCIGF0IDQ1IGtCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItaW50ZWdyaXR5LzEuOS42LVNOQVBTSE9ULwo+ID4gbWF2ZW4tc2NtLXByb3ZpZGVyLWludGVncml0eS0xLjkuNi0yMDE3MTIwMS4yMzI3MjctMTIuamFyCj4gPiA+IFt3aW5kb3dzLWpkazkKPiA+ID4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWludGVncml0eS8xLjkuNi1TTkFQU0hPVC8KPiA+IG1hdmVuLXNjbS1wcm92aWRlci1pbnRlZ3JpdHktMS45LjYtMjAxNzEyMDEuMjMyNzI3LTEyLmphciUKPiA1QndpbmRvd3MtamRrOT5dCj4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1zdm5leGUvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+ID4gcHJvdmlkZXItc3ZuZXhlLTEuOS42LTIwMTcxMjAxLjIzMjgxNy0xMi5qYXIKPiA+ID4gKDgxIGtCIGF0IDUwIGtCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItamF6ei8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gPiBwcm92aWRlci1qYXp6LTEuOS42LTIwMTcxMjAxLjIzMjczMy0xMi5qYXIKPiA+ID4gW3dpbmRvd3MtamRrOQo+ID4gPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItamF6ei8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gPiBwcm92aWRlci1qYXp6LTEuOS42LTIwMTcxMjAxLjIzMjczMy0xMi5qYXIlNUJ3aW5kb3dzLWpkazk+XQo+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItc3luZXJneS8xLjkuNi1TTkFQU0hPVC9tYXZlbi0KPiA+IHNjbS1wcm92aWRlci1zeW5lcmd5LTEuOS42LTIwMTcxMjAxLjIzMjgyOS0xMi5qYXIKPiA+ID4gKDYwIGtCIGF0IDM1IGtCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tYXBpLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1hcGktMS45LjYtCj4gPiAyMDE3MTIwMS4yMzI1NTYtMTIuamFyCj4gPiA+IFt3aW5kb3dzLWpkazkKPiA+ID4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiBzY20vbWF2ZW4tc2NtLWFwaS8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tYXBpLTEuOS42LQo+ID4gMjAxNzEyMDEuMjMyNTU2LTEyLmphciU1QndpbmRvd3MtamRrOT5dCj4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci12c3MvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+ID4gcHJvdmlkZXItdnNzLTEuOS42LTIwMTcxMjAxLjIzMjg0MS0xMi5qYXIKPiA+ID4gKDcyIGtCIGF0IDQyIGtCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItc3ZuLWNvbW1vbnMvMS45LjYtU05BUFNIT1QvbWF2ZW4tCj4gPiBzY20tcHJvdmlkZXItc3ZuLWNvbW1vbnMtMS45LjYtMjAxNzEyMDEuMjMyODEyLTEyLmphcgo+ID4gPiBbd2luZG93cy1qZGs5Cj4gPiA+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1zdm4tY29tbW9ucy8xLjkuNi1TTkFQU0hPVC9tYXZlbi0KPiA+IHNjbS1wcm92aWRlci1zdm4tY29tbW9ucy0xLjkuNi0yMDE3MTIwMS4yMzI4MTItMTIuamFyJTVCd2luZG93cy1qZGs5Pl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXRmcy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gPiBwcm92aWRlci10ZnMtMS45LjYtMjAxNzEyMDEuMjMyODM1LTEyLmphcgo+ID4gPiAoNDUga0IgYXQgMjEga0IvcykKPiA+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gc2NtL21hdmVuLXNjbS10ZXN0LzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS10ZXN0LTEuOS42LQo+ID4gMjAxNzEyMDEuMjMyOTE4LTEyLmphcgo+ID4gPiBbd2luZG93cy1qZGs5Cj4gPiA+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gc2NtL21hdmVuLXNjbS10ZXN0LzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS10ZXN0LTEuOS42LQo+ID4gMjAxNzEyMDEuMjMyOTE4LTEyLmphciU1QndpbmRvd3MtamRrOT5dCj4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1pbnRlZ3JpdHkvMS45LjYtU05BUFNIT1QvCj4gPiBtYXZlbi1zY20tcHJvdmlkZXItaW50ZWdyaXR5LTEuOS42LTIwMTcxMjAxLjIzMjcyNy0xMi5qYXIKPiA+ID4gKDgyIGtCIGF0IDM4IGtCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1zdm4tY29tbW9ucy8xLjkuNi1TTkFQU0hPVC9tYXZlbi0KPiA+IHNjbS1wcm92aWRlci1zdm4tY29tbW9ucy0xLjkuNi0yMDE3MTIwMS4yMzI4MTItMTIuamFyCj4gPiA+ICgzOCBrQiBhdCAxOCBrQi9zKQo+ID4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItamF6ei8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gPiBwcm92aWRlci1qYXp6LTEuOS42LTIwMTcxMjAxLjIzMjczMy0xMi5qYXIKPiA+ID4gKDY5IGtCIGF0IDMyIGtCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gc2NtL21hdmVuLXNjbS1hcGkvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLWFwaS0xLjkuNi0KPiA+IDIwMTcxMjAxLjIzMjU1Ni0xMi5qYXIKPiA+ID4gKDEwOSBrQiBhdCA0NyBrQi9zKQo+ID4gPiBbd2luZG93cy1qZGs3XSBTZW5kaW5nIGludGVycnVwdCBzaWduYWwgdG8gcHJvY2Vzcwo+ID4gPiBbd2luZG93cy1qZGs3XSBbSU5GT10gUmF0IGNoZWNrOiBTdW1tYXJ5IG9mIGZpbGVzLiBVbmFwcHJvdmVkOiAwCj4gdW5rbm93bjoKPiA+ID4gMCBnZW5lcmF0ZWQ6IDAgYXBwcm92ZWQ6IDEwNzcgbGljZW5jZS4KPiA+ID4gW3dpbmRvd3MtamRrN10gW0lORk9dCj4gPiA+IFt3aW5kb3dzLWpkazddIFtJTkZPXSAtLS0gbW9kZWxsby1tYXZlbi1wbHVnaW46MS43OnhwcDMtcmVhZGVyCj4gPiAoZGVmYXVsdCkgQAo+ID4gPiBtYXZlbi1yZWxlYXNlLW1hbmFnZXIgLS0tCj4gPiA+IFt3aW5kb3dzLWpkazddIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiBwbHVnaW4tYXBpLzIuMC43L21hdmVuLXBsdWdpbi1hcGktMi4wLjcucG9tCj4gPiA+IFt3aW5kb3dzLWpkazcKPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+ID4gbWF2ZW4tcGx1Z2luLWFwaS8yLjAuNy9tYXZlbi1wbHVnaW4tYXBpLTIuMC43LnBvbSU1QndpbmRvd3MtamRrNz5dCj4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiA+IHBsdWdpbi1hcGkvMi4wLjcvbWF2ZW4tcGx1Z2luLWFwaS0yLjAuNy5wb20KPiA+ID4gKDEuNSBrQiBhdCAxMjEga0IvcykKPiA+ID4gW3dpbmRvd3MtamRrN10gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi8KPiA+IDIuMC43L21hdmVuLTIuMC43LnBvbQo+ID4gPiBbd2luZG93cy1qZGs3Cj4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IG1hdmVuLzIuMC43L21hdmVuLTIuMC43LnBvbSU1QndpbmRvd3MtamRrNz5dCj4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi8KPiA+IDIuMC43L21hdmVuLTIuMC43LnBvbQo+ID4gPiAoMTEga0IgYXQgMS4yIE1CL3MpCj4gPiA+IFt3aW5kb3dzLWpkazddIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gbW9kZWxsby1jb3JlLzEuNy9tb2RlbGxvLWNvcmUtMS43LnBvbQo+ID4gPiBbd2luZG93cy1qZGs3Cj4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+ID4gbW9kZWxsby9tb2RlbGxvLWNvcmUvMS43L21vZGVsbG8tY29yZS0xLjcucG9tJTVCd2luZG93cy1qZGs3Pl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+IG1vZGVsbG8tY29yZS8xLjcvbW9kZWxsby1jb3JlLTEuNy5wb20KPiA+ID4gKDEuNSBrQiBhdCAxMzYga0IvcykKPiA+ID4gW3dpbmRvd3MtamRrN10gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL3NvbmF0eXBlL3BsZXh1cy8KPiA+IHBsZXh1cy1idWlsZC1hcGkvMC4wLjcvcGxleHVzLWJ1aWxkLWFwaS0wLjAuNy5wb20KPiA+ID4gW3dpbmRvd3MtamRrOQo+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9zb25hdHlwZS8KPiA+IHBsZXh1cy9wbGV4dXMtYnVpbGQtYXBpLzAuMC43L3BsZXh1cy1idWlsZC1hcGktMC4wLjcucG9tJQo+IDVCd2luZG93cy1qZGs5Pl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiBzY20vbWF2ZW4tc2NtLXRlc3QvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLXRlc3QtMS45LjYtCj4gPiAyMDE3MTIwMS4yMzI5MTgtMTIuamFyCj4gPiA+ICg1MSBrQiBhdCAxOSBrQi9zKQo+ID4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10KPiA+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dIC0tLSBtYXZlbi1jbGVhbi1wbHVnaW46Mi41OmNsZWFuIChkZWZhdWx0LWNsZWFuPQopCj4gQAo+ID4gPiBtYXZlbi1yZWxlYXNlLW1hbmFnZXIgLS0tCj4gPiA+IFt3aW5kb3dzLWpkazldIFtJTkZPXQo+ID4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gLS0tIG1hdmVuLWVuZm9yY2VyLXBsdWdpbjoxLjMuMTplbmZvcmNlCj4gPiA+IChlbmZvcmNlLWJ5dGVjb2RlLXZlcnNpb24pIEAgbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyIC0tLQo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gUmF0IGNoZWNrOiBTdW1tYXJ5IG9mIGZpbGVzLiBVbmFwcHJvdmVkOiAwCj4gdW5rbm93bjoKPiA+ID4gMCBnZW5lcmF0ZWQ6IDAgYXBwcm92ZWQ6IDEwNzcgbGljZW5jZS4KPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSAtLS0gbW9kZWxsby1tYXZlbi1wbHVnaW46MS43OnhwcDMtcmVhZGVyCj4gPiAoZGVmYXVsdCkgQAo+ID4gPiBtYXZlbi1yZWxlYXNlLW1hbmFnZXIgLS0tCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiBwbHVnaW4tYXBpLzIuMC43L21hdmVuLXBsdWdpbi1hcGktMi4wLjcucG9tCj4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+ID4gbWF2ZW4tcGx1Z2luLWFwaS8yLjAuNy9tYXZlbi1wbHVnaW4tYXBpLTIuMC43LnBvbSU1QndpbmRvd3MtamRrOD5dCj4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiA+IHBsdWdpbi1hcGkvMi4wLjcvbWF2ZW4tcGx1Z2luLWFwaS0yLjAuNy5wb20KPiA+ID4gKDEuNSBrQiBhdCAxMzIga0IvcykKPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi8KPiA+IDIuMC43L21hdmVuLTIuMC43LnBvbQo+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IG1hdmVuLzIuMC43L21hdmVuLTIuMC43LnBvbSU1QndpbmRvd3MtamRrOD5dCj4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi8KPiA+IDIuMC43L21hdmVuLTIuMC43LnBvbQo+ID4gPiAoMTEga0IgYXQgMS4zIE1CL3MpCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gbW9kZWxsby1jb3JlLzEuNy9tb2RlbGxvLWNvcmUtMS43LnBvbQo+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+ID4gbW9kZWxsby9tb2RlbGxvLWNvcmUvMS43L21vZGVsbG8tY29yZS0xLjcucG9tJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+IG1vZGVsbG8tY29yZS8xLjcvbW9kZWxsby1jb3JlLTEuNy5wb20KPiA+ID4gKDEuNSBrQiBhdCAxNjcga0IvcykKPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL3NvbmF0eXBlL3BsZXh1cy8KPiA+IHBsZXh1cy1idWlsZC1hcGkvMC4wLjcvcGxleHVzLWJ1aWxkLWFwaS0wLjAuNy5wb20KPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9zb25hdHlwZS8KPiA+IHBsZXh1cy9wbGV4dXMtYnVpbGQtYXBpLzAuMC43L3BsZXh1cy1idWlsZC1hcGktMC4wLjcucG9tJQo+IDVCd2luZG93cy1qZGs4Pl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvc29uYXR5cGUvcGxleHVzLwo+ID4gcGxleHVzLWJ1aWxkLWFwaS8wLjAuNy9wbGV4dXMtYnVpbGQtYXBpLTAuMC43LnBvbQo+ID4gPiAoMy4yIGtCIGF0IDMyMCBrQi9zKQo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvc29uYXR5cGUvc3BpY2UvCj4gPiBzcGljZS1wYXJlbnQvMTUvc3BpY2UtcGFyZW50LTE1LnBvbQo+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL3NvbmF0eXBlL3NwaWNlLwo+ID4gc3BpY2UtcGFyZW50LzE1L3NwaWNlLXBhcmVudC0xNS5wb20lNUJ3aW5kb3dzLWpkazg+XQo+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9zb25hdHlwZS9zcGljZS8KPiA+IHNwaWNlLXBhcmVudC8xNS9zcGljZS1wYXJlbnQtMTUucG9tCj4gPiA+ICg4LjQga0IgYXQgNjk2IGtCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9wbGV4dXMvCj4gPiBwbGV4dXMtdXRpbHMvMy4wLjkvcGxleHVzLXV0aWxzLTMuMC45LnBvbQo+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+ID4gcGxleHVzL3BsZXh1cy11dGlscy8zLjAuOS9wbGV4dXMtdXRpbHMtMy4wLjkucG9tJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvcGxleHVzLwo+ID4gcGxleHVzLXV0aWxzLzMuMC45L3BsZXh1cy11dGlscy0zLjAuOS5wb20KPiA+ID4gKDMuMSBrQiBhdCAyODYga0IvcykKPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiA+IHByb2plY3QvMi4wLjcvbWF2ZW4tcHJvamVjdC0yLjAuNy5wb20KPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiBtYXZlbi1wcm9qZWN0LzIuMC43L21hdmVuLXByb2plY3QtMi4wLjcucG9tJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gcHJvamVjdC8yLjAuNy9tYXZlbi1wcm9qZWN0LTIuMC43LnBvbQo+ID4gPiAoMi42IGtCIGF0IDI0MCBrQi9zKQo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gc2V0dGluZ3MvMi4wLjcvbWF2ZW4tc2V0dGluZ3MtMi4wLjcucG9tCj4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+ID4gbWF2ZW4tc2V0dGluZ3MvMi4wLjcvbWF2ZW4tc2V0dGluZ3MtMi4wLjcucG9tJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gc2V0dGluZ3MvMi4wLjcvbWF2ZW4tc2V0dGluZ3MtMi4wLjcucG9tCj4gPiA+ICgyLjAga0IgYXQgMjUwIGtCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiBtb2RlbC8yLjAuNy9tYXZlbi1tb2RlbC0yLjAuNy5wb20KPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiBtYXZlbi1tb2RlbC8yLjAuNy9tYXZlbi1tb2RlbC0yLjAuNy5wb20lNUJ3aW5kb3dzLWpkazg+XQo+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiBtb2RlbC8yLjAuNy9tYXZlbi1tb2RlbC0yLjAuNy5wb20KPiA+ID4gKDMuMCBrQiBhdCAzODEga0IvcykKPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiA+IHByb2ZpbGUvMi4wLjcvbWF2ZW4tcHJvZmlsZS0yLjAuNy5wb20KPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiBtYXZlbi1wcm9maWxlLzIuMC43L21hdmVuLXByb2ZpbGUtMi4wLjcucG9tJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gcHJvZmlsZS8yLjAuNy9tYXZlbi1wcm9maWxlLTIuMC43LnBvbQo+ID4gPiAoMi4wIGtCIGF0IDI0OCBrQi9zKQo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gYXJ0aWZhY3QtbWFuYWdlci8yLjAuNy9tYXZlbi1hcnRpZmFjdC1tYW5hZ2VyLTIuMC43LnBvbQo+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IG1hdmVuLWFydGlmYWN0LW1hbmFnZXIvMi4wLjcvbWF2ZW4tYXJ0aWZhY3QtbWFuYWdlci0yLjAuNy4KPiA+IHBvbSU1QndpbmRvd3MtamRrOD5dCj4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiA+IGFydGlmYWN0LW1hbmFnZXIvMi4wLjcvbWF2ZW4tYXJ0aWZhY3QtbWFuYWdlci0yLjAuNy5wb20KPiA+ID4gKDIuNiBrQiBhdCAyOTEga0IvcykKPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiA+IHJlcG9zaXRvcnktbWV0YWRhdGEvMi4wLjcvbWF2ZW4tcmVwb3NpdG9yeS1tZXRhZGF0YS0yLjAuNy5wb20KPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiBtYXZlbi1yZXBvc2l0b3J5LW1ldGFkYXRhLzIuMC43L21hdmVuLXJlcG9zaXRvcnktbWV0YWRhdGEtMi4KPiA+IDAuNy5wb20lNUJ3aW5kb3dzLWpkazg+XQo+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiByZXBvc2l0b3J5LW1ldGFkYXRhLzIuMC43L21hdmVuLXJlcG9zaXRvcnktbWV0YWRhdGEtMi4wLjcucG9tCj4gPiA+ICgxLjkga0IgYXQgMTY4IGtCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiBhcnRpZmFjdC8yLjAuNy9tYXZlbi1hcnRpZmFjdC0yLjAuNy5wb20KPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiBtYXZlbi1hcnRpZmFjdC8yLjAuNy9tYXZlbi1hcnRpZmFjdC0yLjAuNy5wb20lNUJ3aW5kb3dzLWpkazg+XQo+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiBhcnRpZmFjdC8yLjAuNy9tYXZlbi1hcnRpZmFjdC0yLjAuNy5wb20KPiA+ID4gKDEuNiBrQiBhdCAyMjUga0IvcykKPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiA+IHBsdWdpbi1yZWdpc3RyeS8yLjAuNy9tYXZlbi1wbHVnaW4tcmVnaXN0cnktMi4wLjcucG9tCj4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+ID4gbWF2ZW4tcGx1Z2luLXJlZ2lzdHJ5LzIuMC43L21hdmVuLXBsdWdpbi1yZWdpc3RyeS0yLjAuNy4KPiBwb20lNUJ3aW5kb3dzLWpkazgKPiA+ID5dCj4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiA+IHBsdWdpbi1yZWdpc3RyeS8yLjAuNy9tYXZlbi1wbHVnaW4tcmVnaXN0cnktMi4wLjcucG9tCj4gPiA+ICgxLjkga0IgYXQgMjc4IGtCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gbW9kZWxsby1wbHVnaW4tY29udmVydGVycy8xLjcvbW9kZWxsby1wbHVnaW4tY29udmVydGVycy0xLjcucG9tCj4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2luLWNvbnZlcnRlcnMvMS43L21vZGVsbG8tcGx1Z2luLQo+ID4gY29udmVydGVycy0xLjcucG9tJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+IG1vZGVsbG8tcGx1Z2luLWNvbnZlcnRlcnMvMS43L21vZGVsbG8tcGx1Z2luLWNvbnZlcnRlcnMtMS43LnBvbQo+ID4gPiAoMS42IGtCIGF0IDIwMCBrQi9zKQo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+IG1vZGVsbG8tcGx1Z2lucy8xLjcvbW9kZWxsby1wbHVnaW5zLTEuNy5wb20KPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy8KPiA+IG1vZGVsbG8vbW9kZWxsby1wbHVnaW5zLzEuNy9tb2RlbGxvLXBsdWdpbnMtMS43LnBvbSU1QndpbmRvd3MtamRrOD5dCj4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiBtb2RlbGxvLXBsdWdpbnMvMS43L21vZGVsbG8tcGx1Z2lucy0xLjcucG9tCj4gPiA+ICgyLjMga0IgYXQgMjU4IGtCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gbW9kZWxsby1wbHVnaW4tamF2YS8xLjcvbW9kZWxsby1wbHVnaW4tamF2YS0xLjcucG9tCj4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2luLWphdmEvMS43L21vZGVsbG8tcGx1Z2luLWphdmEtMS43LnBvbSUKPiA1QndpbmRvd3MtamRrOAo+ID4gPl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+IG1vZGVsbG8tcGx1Z2luLWphdmEvMS43L21vZGVsbG8tcGx1Z2luLWphdmEtMS43LnBvbQo+ID4gPiAoMi42IGtCIGF0IDMyMyBrQi9zKQo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+IG1vZGVsbG8tcGx1Z2luLWRvbTRqLzEuNy9tb2RlbGxvLXBsdWdpbi1kb200ai0xLjcucG9tCj4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2luLWRvbTRqLzEuNy9tb2RlbGxvLXBsdWdpbi1kb200ai0xLjcuCj4gPiBwb20lNUJ3aW5kb3dzLWpkazg+XQo+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gbW9kZWxsby1wbHVnaW4tZG9tNGovMS43L21vZGVsbG8tcGx1Z2luLWRvbTRqLTEuNy5wb20KPiA+ID4gKDEuNiBrQiBhdCAxOTcga0IvcykKPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiBtb2RlbGxvLXBsdWdpbi14bWwvMS43L21vZGVsbG8tcGx1Z2luLXhtbC0xLjcucG9tCj4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2luLXhtbC8xLjcvbW9kZWxsby1wbHVnaW4teG1sLTEuNy5wb20lCj4gNUJ3aW5kb3dzLWpkazg+XQo+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gbW9kZWxsby1wbHVnaW4teG1sLzEuNy9tb2RlbGxvLXBsdWdpbi14bWwtMS43LnBvbQo+ID4gPiAoMS4wIGtCIGF0IDE0OSBrQi9zKQo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+IG1vZGVsbG8tcGx1Z2luLWpkb20vMS43L21vZGVsbG8tcGx1Z2luLWpkb20tMS43LnBvbQo+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+ID4gbW9kZWxsby9tb2RlbGxvLXBsdWdpbi1qZG9tLzEuNy9tb2RlbGxvLXBsdWdpbi1qZG9tLTEuNy5wb20lCj4gNUJ3aW5kb3dzLWpkazgKPiA+ID5dCj4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiBtb2RlbGxvLXBsdWdpbi1qZG9tLzEuNy9tb2RlbGxvLXBsdWdpbi1qZG9tLTEuNy5wb20KPiA+ID4gKDEuOSBrQiBhdCAyNjgga0IvcykKPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiBtb2RlbGxvLXBsdWdpbi1zdGF4LzEuNy9tb2RlbGxvLXBsdWdpbi1zdGF4LTEuNy5wb20KPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy8KPiA+IG1vZGVsbG8vbW9kZWxsby1wbHVnaW4tc3RheC8xLjcvbW9kZWxsby1wbHVnaW4tc3RheC0xLjcucG9tJQo+IDVCd2luZG93cy1qZGs4Cj4gPiA+XQo+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gbW9kZWxsby1wbHVnaW4tc3RheC8xLjcvbW9kZWxsby1wbHVnaW4tc3RheC0xLjcucG9tCj4gPiA+ICgyLjMga0IgYXQgMjkwIGtCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gbW9kZWxsby1wbHVnaW4teGRvYy8xLjcvbW9kZWxsby1wbHVnaW4teGRvYy0xLjcucG9tCj4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2luLXhkb2MvMS43L21vZGVsbG8tcGx1Z2luLXhkb2MtMS43LnBvbSUKPiA1QndpbmRvd3MtamRrOAo+ID4gPl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+IG1vZGVsbG8tcGx1Z2luLXhkb2MvMS43L21vZGVsbG8tcGx1Z2luLXhkb2MtMS43LnBvbQo+ID4gPiAoMS4yIGtCIGF0IDIwNiBrQi9zKQo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+IG1vZGVsbG8tcGx1Z2luLXhzZC8xLjcvbW9kZWxsby1wbHVnaW4teHNkLTEuNy5wb20KPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy8KPiA+IG1vZGVsbG8vbW9kZWxsby1wbHVnaW4teHNkLzEuNy9tb2RlbGxvLXBsdWdpbi14c2QtMS43LnBvbSUKPiA1QndpbmRvd3MtamRrOD5dCj4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiBtb2RlbGxvLXBsdWdpbi14c2QvMS43L21vZGVsbG8tcGx1Z2luLXhzZC0xLjcucG9tCj4gPiA+ICgxLjMga0IgYXQgMTkxIGtCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gbW9kZWxsby1wbHVnaW4teHBwMy8xLjcvbW9kZWxsby1wbHVnaW4teHBwMy0xLjcucG9tCj4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2luLXhwcDMvMS43L21vZGVsbG8tcGx1Z2luLXhwcDMtMS43LnBvbSUKPiA1QndpbmRvd3MtamRrOAo+ID4gPl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+IG1vZGVsbG8tcGx1Z2luLXhwcDMvMS43L21vZGVsbG8tcGx1Z2luLXhwcDMtMS43LnBvbQo+ID4gPiAoMS40IGtCIGF0IDE3OSBrQi9zKQo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gcGx1Z2luLWFwaS8yLjAuNy9tYXZlbi1wbHVnaW4tYXBpLTIuMC43Lmphcgo+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IG1hdmVuLXBsdWdpbi1hcGkvMi4wLjcvbWF2ZW4tcGx1Z2luLWFwaS0yLjAuNy5qYXIlNUJ3aW5kb3dzLWpkazg+XQo+ID4gPiBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+IG1vZGVsbG8tY29yZS8xLjcvbW9kZWxsby1jb3JlLTEuNy5qYXIKPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy8KPiA+IG1vZGVsbG8vbW9kZWxsby1jb3JlLzEuNy9tb2RlbGxvLWNvcmUtMS43LmphciU1QndpbmRvd3MtamRrOD5dCj4gPiA+IFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiBzZXR0aW5ncy8yLjAuNy9tYXZlbi1zZXR0aW5ncy0yLjAuNy5qYXIKPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiBtYXZlbi1zZXR0aW5ncy8yLjAuNy9tYXZlbi1zZXR0aW5ncy0yLjAuNy5qYXIlNUJ3aW5kb3dzLWpkazg+XQo+ID4gPiBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gcHJvZmlsZS8yLjAuNy9tYXZlbi1wcm9maWxlLTIuMC43Lmphcgo+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IG1hdmVuLXByb2ZpbGUvMi4wLjcvbWF2ZW4tcHJvZmlsZS0yLjAuNy5qYXIlNUJ3aW5kb3dzLWpkazg+XQo+ID4gPiBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gcHJvamVjdC8yLjAuNy9tYXZlbi1wcm9qZWN0LTIuMC43Lmphcgo+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IG1hdmVuLXByb2plY3QvMi4wLjcvbWF2ZW4tcHJvamVjdC0yLjAuNy5qYXIlNUJ3aW5kb3dzLWpkazg+XQo+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gbW9kZWxsby1jb3JlLzEuNy9tb2RlbGxvLWNvcmUtMS43Lmphcgo+ID4gPiAoNTgga0IgYXQgMy42IE1CL3MpCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiBhcnRpZmFjdC1tYW5hZ2VyLzIuMC43L21hdmVuLWFydGlmYWN0LW1hbmFnZXItMi4wLjcuamFyCj4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+ID4gbWF2ZW4tYXJ0aWZhY3QtbWFuYWdlci8yLjAuNy9tYXZlbi1hcnRpZmFjdC1tYW5hZ2VyLTIuMC43Lgo+ID4gamFyJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gcHJvZmlsZS8yLjAuNy9tYXZlbi1wcm9maWxlLTIuMC43Lmphcgo+ID4gPiAoMzUga0IgYXQgMi4xIE1CL3MpCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiByZXBvc2l0b3J5LW1ldGFkYXRhLzIuMC43L21hdmVuLXJlcG9zaXRvcnktbWV0YWRhdGEtMi4wLjcuamFyCj4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+ID4gbWF2ZW4tcmVwb3NpdG9yeS1tZXRhZGF0YS8yLjAuNy9tYXZlbi1yZXBvc2l0b3J5LW1ldGFkYXRhLTIuCj4gPiAwLjcuamFyJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gc2V0dGluZ3MvMi4wLjcvbWF2ZW4tc2V0dGluZ3MtMi4wLjcuamFyCj4gPiA+ICg0OSBrQiBhdCAyLjcgTUIvcykKPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiA+IHBsdWdpbi1yZWdpc3RyeS8yLjAuNy9tYXZlbi1wbHVnaW4tcmVnaXN0cnktMi4wLjcuamFyCj4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+ID4gbWF2ZW4tcGx1Z2luLXJlZ2lzdHJ5LzIuMC43L21hdmVuLXBsdWdpbi1yZWdpc3RyeS0yLjAuNy4KPiBqYXIlNUJ3aW5kb3dzLWpkazgKPiA+ID5dCj4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiA+IHBsdWdpbi1hcGkvMi4wLjcvbWF2ZW4tcGx1Z2luLWFwaS0yLjAuNy5qYXIKPiA+ID4gKDEzIGtCIGF0IDU1OSBrQi9zKQo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gYXJ0aWZhY3QvMi4wLjcvbWF2ZW4tYXJ0aWZhY3QtMi4wLjcuamFyCj4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+ID4gbWF2ZW4tYXJ0aWZhY3QvMi4wLjcvbWF2ZW4tYXJ0aWZhY3QtMi4wLjcuamFyJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gcHJvamVjdC8yLjAuNy9tYXZlbi1wcm9qZWN0LTIuMC43Lmphcgo+ID4gPiAoMTE3IGtCIGF0IDQuOSBNQi9zKQo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gbW9kZWwvMi4wLjcvbWF2ZW4tbW9kZWwtMi4wLjcuamFyCj4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+ID4gbWF2ZW4tbW9kZWwvMi4wLjcvbWF2ZW4tbW9kZWwtMi4wLjcuamFyJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gcmVwb3NpdG9yeS1tZXRhZGF0YS8yLjAuNy9tYXZlbi1yZXBvc2l0b3J5LW1ldGFkYXRhLTIuMC43Lmphcgo+ID4gPiAoMjQga0IgYXQgODc0IGtCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9wbGV4dXMvCj4gPiBwbGV4dXMtdXRpbHMvMy4wLjkvcGxleHVzLXV0aWxzLTMuMC45Lmphcgo+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+ID4gcGxleHVzL3BsZXh1cy11dGlscy8zLjAuOS9wbGV4dXMtdXRpbHMtMy4wLjkuamFyJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gYXJ0aWZhY3QtbWFuYWdlci8yLjAuNy9tYXZlbi1hcnRpZmFjdC1tYW5hZ2VyLTIuMC43Lmphcgo+ID4gPiAoNTcga0IgYXQgMS45IE1CL3MpCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gbW9kZWxsby1wbHVnaW4tY29udmVydGVycy8xLjcvbW9kZWxsby1wbHVnaW4tY29udmVydGVycy0xLjcuamFyCj4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2luLWNvbnZlcnRlcnMvMS43L21vZGVsbG8tcGx1Z2luLQo+ID4gY29udmVydGVycy0xLjcuamFyJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gcGx1Z2luLXJlZ2lzdHJ5LzIuMC43L21hdmVuLXBsdWdpbi1yZWdpc3RyeS0yLjAuNy5qYXIKPiA+ID4gKDI5IGtCIGF0IDg3NyBrQi9zKQo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+IG1vZGVsbG8tcGx1Z2luLWRvbTRqLzEuNy9tb2RlbGxvLXBsdWdpbi1kb200ai0xLjcuamFyCj4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2luLWRvbTRqLzEuNy9tb2RlbGxvLXBsdWdpbi1kb200ai0xLjcuCj4gPiBqYXIlNUJ3aW5kb3dzLWpkazg+XQo+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiBhcnRpZmFjdC8yLjAuNy9tYXZlbi1hcnRpZmFjdC0yLjAuNy5qYXIKPiA+ID4gKDg4IGtCIGF0IDIuNCBNQi9zKQo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+IG1vZGVsbG8tcGx1Z2luLXhtbC8xLjcvbW9kZWxsby1wbHVnaW4teG1sLTEuNy5qYXIKPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy8KPiA+IG1vZGVsbG8vbW9kZWxsby1wbHVnaW4teG1sLzEuNy9tb2RlbGxvLXBsdWdpbi14bWwtMS43LmphciUKPiA1QndpbmRvd3MtamRrOD5dCj4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiA+IG1vZGVsLzIuMC43L21hdmVuLW1vZGVsLTIuMC43Lmphcgo+ID4gPiAoODYga0IgYXQgMi4yIE1CL3MpCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gbW9kZWxsby1wbHVnaW4tamF2YS8xLjcvbW9kZWxsby1wbHVnaW4tamF2YS0xLjcuamFyCj4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2luLWphdmEvMS43L21vZGVsbG8tcGx1Z2luLWphdmEtMS43LmphciUKPiA1QndpbmRvd3MtamRrOAo+ID4gPl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+IG1vZGVsbG8tcGx1Z2luLWNvbnZlcnRlcnMvMS43L21vZGVsbG8tcGx1Z2luLWNvbnZlcnRlcnMtMS43Lmphcgo+ID4gPiAoOS40IGtCIGF0IDIyNCBrQi9zKQo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+IG1vZGVsbG8tcGx1Z2luLWpkb20vMS43L21vZGVsbG8tcGx1Z2luLWpkb20tMS43Lmphcgo+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+ID4gbW9kZWxsby9tb2RlbGxvLXBsdWdpbi1qZG9tLzEuNy9tb2RlbGxvLXBsdWdpbi1qZG9tLTEuNy5qYXIlCj4gNUJ3aW5kb3dzLWpkazgKPiA+ID5dCj4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiBtb2RlbGxvLXBsdWdpbi1kb200ai8xLjcvbW9kZWxsby1wbHVnaW4tZG9tNGotMS43Lmphcgo+ID4gPiAoMTgga0IgYXQgNDI3IGtCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gbW9kZWxsby1wbHVnaW4tc3RheC8xLjcvbW9kZWxsby1wbHVnaW4tc3RheC0xLjcuamFyCj4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2luLXN0YXgvMS43L21vZGVsbG8tcGx1Z2luLXN0YXgtMS43LmphciUKPiA1QndpbmRvd3MtamRrOAo+ID4gPl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+IG1vZGVsbG8tcGx1Z2luLXhtbC8xLjcvbW9kZWxsby1wbHVnaW4teG1sLTEuNy5qYXIKPiA+ID4gKDE1IGtCIGF0IDMwNyBrQi9zKQo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+IG1vZGVsbG8tcGx1Z2luLXhkb2MvMS43L21vZGVsbG8tcGx1Z2luLXhkb2MtMS43Lmphcgo+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+ID4gbW9kZWxsby9tb2RlbGxvLXBsdWdpbi14ZG9jLzEuNy9tb2RlbGxvLXBsdWdpbi14ZG9jLTEuNy5qYXIlCj4gNUJ3aW5kb3dzLWpkazgKPiA+ID5dCj4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL3BsZXh1cy8KPiA+IHBsZXh1cy11dGlscy8zLjAuOS9wbGV4dXMtdXRpbHMtMy4wLjkuamFyCj4gPiA+ICgyMzIga0IgYXQgNC42IE1CL3MpCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gbW9kZWxsby1wbHVnaW4teHBwMy8xLjcvbW9kZWxsby1wbHVnaW4teHBwMy0xLjcuamFyCj4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2luLXhwcDMvMS43L21vZGVsbG8tcGx1Z2luLXhwcDMtMS43LmphciUKPiA1QndpbmRvd3MtamRrOAo+ID4gPl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+IG1vZGVsbG8tcGx1Z2luLWpkb20vMS43L21vZGVsbG8tcGx1Z2luLWpkb20tMS43Lmphcgo+ID4gPiAoMTQga0IgYXQgMjY5IGtCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gbW9kZWxsby1wbHVnaW4teHNkLzEuNy9tb2RlbGxvLXBsdWdpbi14c2QtMS43Lmphcgo+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+ID4gbW9kZWxsby9tb2RlbGxvLXBsdWdpbi14c2QvMS43L21vZGVsbG8tcGx1Z2luLXhzZC0xLjcuamFyJQo+IDVCd2luZG93cy1qZGs4Pl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+IG1vZGVsbG8tcGx1Z2luLXN0YXgvMS43L21vZGVsbG8tcGx1Z2luLXN0YXgtMS43Lmphcgo+ID4gPiAoMzcga0IgYXQgNjY2IGtCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9zb25hdHlwZS9wbGV4dXMvCj4gPiBwbGV4dXMtYnVpbGQtYXBpLzAuMC43L3BsZXh1cy1idWlsZC1hcGktMC4wLjcuamFyCj4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvc29uYXR5cGUvCj4gPiBwbGV4dXMvcGxleHVzLWJ1aWxkLWFwaS8wLjAuNy9wbGV4dXMtYnVpbGQtYXBpLTAuMC43LmphciUKPiA1QndpbmRvd3MtamRrOD5dCj4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiBtb2RlbGxvLXBsdWdpbi1qYXZhLzEuNy9tb2RlbGxvLXBsdWdpbi1qYXZhLTEuNy5qYXIKPiA+ID4gKDg0IGtCIGF0IDEuNCBNQi9zKQo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gbW9kZWxsby1wbHVnaW4teHBwMy8xLjcvbW9kZWxsby1wbHVnaW4teHBwMy0xLjcuamFyCj4gPiA+ICgyOSBrQiBhdCA0NzEga0IvcykKPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+IG1vZGVsbG8tcGx1Z2luLXhkb2MvMS43L21vZGVsbG8tcGx1Z2luLXhkb2MtMS43Lmphcgo+ID4gPiAoMTQga0IgYXQgMjIzIGtCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiBtb2RlbGxvLXBsdWdpbi14c2QvMS43L21vZGVsbG8tcGx1Z2luLXhzZC0xLjcuamFyCj4gPiA+ICgxNCBrQiBhdCAyMTcga0IvcykKPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvc29uYXR5cGUvcGxleHVzLwo+ID4gcGxleHVzLWJ1aWxkLWFwaS8wLjAuNy9wbGV4dXMtYnVpbGQtYXBpLTAuMC43Lmphcgo+ID4gPiAoOC41IGtCIGF0IDEyNyBrQi9zKQo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gb3V0cHV0RGlyZWN0b3J5Ogo+ID4gPiBGOlxqZW5raW5zXGplbmtpbnMtc2xhdmVcd29ya3NwYWNlXGVuLWJveF9tYXZlbi1yZWxlYXNlX21hc3Rlci0KPiA+IE9DS0dVTFFCQ1o2N1ZCS0o3SEY2RTdLWlVDS1g3WkM2Rlg2NEdINjZPSFA3QTRWQVFCSVFcbVwKPiA+IG1hdmVuLXJlbGVhc2UtbWFuYWdlclx0YXJnZXRcZ2VuZXJhdGVkLXNvdXJjZXNcbW9kZWxsbwo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gV29ya2luZyBvbiBtb2RlbDogc3JjL21haW4vbWRvL3JlbGVhc2UtCj4gPiBkZXNjcmlwdG9yLm1kbwo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gR2VuZXJhdGluZyBjdXJyZW50IHZlcnNpb246IDMuMC4wCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXQo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gLS0tIG1vZGVsbG8tbWF2ZW4tcGx1Z2luOjEuNzpqYXZhIChkZWZhdWx0KSBACj4gPiA+IG1hdmVuLXJlbGVhc2UtbWFuYWdlciAtLS0KPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIG91dHB1dERpcmVjdG9yeToKPiA+ID4gRjpcamVua2luc1xqZW5raW5zLXNsYXZlXHdvcmtzcGFjZVxlbi1ib3hfbWF2ZW4tcmVsZWFzZV9tYXN0ZXItCj4gPiBPQ0tHVUxRQkNaNjdWQktKN0hGNkU3S1pVQ0tYN1pDNkZYNjRHSDY2T0hQN0E0VkFRQklRXG1cCj4gPiBtYXZlbi1yZWxlYXNlLW1hbmFnZXJcdGFyZ2V0XGdlbmVyYXRlZC1zb3VyY2VzXG1vZGVsbG8KPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIFdvcmtpbmcgb24gbW9kZWw6IHNyYy9tYWluL21kby9yZWxlYXNlLQo+ID4gZGVzY3JpcHRvci5tZG8KPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIEdlbmVyYXRpbmcgY3VycmVudCB2ZXJzaW9uOiAzLjAuMAo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10KPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIC0tLSBtb2RlbGxvLW1hdmVuLXBsdWdpbjoxLjc6eHBwMy13cml0ZXIKPiA+IChkZWZhdWx0KSBACj4gPiA+IG1hdmVuLXJlbGVhc2UtbWFuYWdlciAtLS0KPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIG91dHB1dERpcmVjdG9yeToKPiA+ID4gRjpcamVua2luc1xqZW5raW5zLXNsYXZlXHdvcmtzcGFjZVxlbi1ib3hfbWF2ZW4tcmVsZWFzZV9tYXN0ZXItCj4gPiBPQ0tHVUxRQkNaNjdWQktKN0hGNkU3S1pVQ0tYN1pDNkZYNjRHSDY2T0hQN0E0VkFRQklRXG1cCj4gPiBtYXZlbi1yZWxlYXNlLW1hbmFnZXJcdGFyZ2V0XGdlbmVyYXRlZC1zb3VyY2VzXG1vZGVsbG8KPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIFdvcmtpbmcgb24gbW9kZWw6IHNyYy9tYWluL21kby9yZWxlYXNlLQo+ID4gZGVzY3JpcHRvci5tZG8KPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIEdlbmVyYXRpbmcgY3VycmVudCB2ZXJzaW9uOiAzLjAuMAo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10KPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIC0tLSBtYXZlbi1yZW1vdGUtcmVzb3VyY2VzLXBsdWdpbjoxLjU6cHJvY2Vzcwo+ID4gPiAoZGVmYXVsdCkgQCBtYXZlbi1yZWxlYXNlLW1hbmFnZXIgLS0tCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXJzLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlcnMtCj4gPiAxLjkuNi0yMDE3MTIwMS4yMzI4NDYtMTIucG9tCj4gPiA+IFt3aW5kb3dzLWpkazcKPiA+ID4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVycy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXJzLQo+ID4gMS45LjYtMjAxNzEyMDEuMjMyODQ2LTEyLnBvbSU1QndpbmRvd3MtamRrNz5dCj4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL3NvbmF0eXBlL3BsZXh1cy8KPiA+IHBsZXh1cy1idWlsZC1hcGkvMC4wLjcvcGxleHVzLWJ1aWxkLWFwaS0wLjAuNy5wb20KPiA+ID4gKDMuMiBrQiBhdCA0MDAga0IvcykKPiA+ID4gW3dpbmRvd3MtamRrN10gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL3NvbmF0eXBlL3NwaWNlLwo+ID4gc3BpY2UtcGFyZW50LzE1L3NwaWNlLXBhcmVudC0xNS5wb20KPiA+ID4gW3dpbmRvd3MtamRrNwo+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9zb25hdHlwZS9zcGljZS8KPiA+IHNwaWNlLXBhcmVudC8xNS9zcGljZS1wYXJlbnQtMTUucG9tJTVCd2luZG93cy1qZGs3Pl0KPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvc29uYXR5cGUvc3BpY2UvCj4gPiBzcGljZS1wYXJlbnQvMTUvc3BpY2UtcGFyZW50LTE1LnBvbQo+ID4gPiAoOC40IGtCIGF0IDEuMCBNQi9zKQo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXJzLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlcnMtCj4gPiAxLjkuNi0yMDE3MTIwMS4yMzI4NDYtMTIucG9tCj4gPiA+ICgwIEIgYXQgMCBCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20vMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLTEuOS42LTIwMTcxMjAxLjIzMjU0OS0xMi5wb20KPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20vMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLTEuOS42LTIwMTcxMjAxLgo+ID4gMjMyNTQ5LTEyLnBvbSU1QndpbmRvd3MtamRrOD5dCj4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gc2NtL21hdmVuLXNjbS8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tMS45LjYtMjAxNzEyMDEuMjMyNTQ5LTEyLnBvbQo+ID4gPiAoMCBCIGF0IDAgQi9zKQo+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVycy1jdnMvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+ID4gcHJvdmlkZXJzLWN2cy0xLjkuNi0yMDE3MTIwMS4yMzI4NTMtMTIucG9tCj4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVycy1jdnMvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+ID4gcHJvdmlkZXJzLWN2cy0xLjkuNi0yMDE3MTIwMS4yMzI4NTMtMTIucG9tJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gU2VuZGluZyBpbnRlcnJ1cHQgc2lnbmFsIHRvIHByb2Nlc3MKPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVycy1jdnMvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+ID4gcHJvdmlkZXJzLWN2cy0xLjkuNi0yMDE3MTIwMS4yMzI4NTMtMTIucG9tCj4gPiA+ICgwIEIgYXQgMCBCL3MpCj4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXJzLWdpdC8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gPiBwcm92aWRlcnMtZ2l0LTEuOS42LTIwMTcxMjAxLjIzMjkwMC0xMi5wb20KPiA+ID4gW3dpbmRvd3MtamRrOQo+ID4gPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXJzLWdpdC8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gPiBwcm92aWRlcnMtZ2l0LTEuOS42LTIwMTcxMjAxLjIzMjkwMC0xMi5wb20lNUJ3aW5kb3dzLWpkazk+XQo+ID4gPiBTZW5kaW5nIGludGVycnVwdCBzaWduYWwgdG8gcHJvY2Vzcwo+ID4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazhdIH0KPiA+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs3XSB9Cj4gPiA+IFtQaXBlbGluZV0gW2xpbnV4LWpkazhdIH0KPiA+ID4gW1BpcGVsaW5lXSBbbGludXgtamRrOV0gfQo+ID4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazhdIC8vIGRpcgo+ID4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazddIC8vIGRpcgo+ID4gPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs4XSAvLyBkaXIKPiA+ID4gW1BpcGVsaW5lXSBbbGludXgtamRrOV0gLy8gZGlyCj4gPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOF0gfQo+ID4gPiBbd2luZG93cy1qZGs4XSBbd2l0aE1hdmVuXSBPbmUgb3IgbXVsdGlwbGUgTWF2ZW4gZXhlY3V0aW9ucyBoYXZlIGJlZW4KPiA+ID4gaWdub3JlZCBieSB0aGUgSmVua2lucyBQaXBlbGluZSBNYXZlbiBQbHVnaW4gYmVjYXVzZSB0aGV5IGhhdmUgYmVlbgo+ID4gPiBpbnRlcnJ1cHRlZCBiZWZvcmUgY29tcGxldGlvbiAoMSkuIFNlZSBQaXBlbGluZSBNYXZlbiBQbHVnaW4gRkFRIGZvcgo+IG1vcmUKPiA+ID4gZGV0YWlscy4KPiA+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs3XSB9Cj4gPiA+IFt3aW5kb3dzLWpkazddIFt3aXRoTWF2ZW5dIE9uZSBvciBtdWx0aXBsZSBNYXZlbiBleGVjdXRpb25zIGhhdmUgYmVlbgo+ID4gPiBpZ25vcmVkIGJ5IHRoZSBKZW5raW5zIFBpcGVsaW5lIE1hdmVuIFBsdWdpbiBiZWNhdXNlIHRoZXkgaGF2ZSBiZWVuCj4gPiA+IGludGVycnVwdGVkIGJlZm9yZSBjb21wbGV0aW9uICgxKS4gU2VlIFBpcGVsaW5lIE1hdmVuIFBsdWdpbiBGQVEgZm9yCj4gbW9yZQo+ID4gPiBkZXRhaWxzLgo+ID4gPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs4XSB9Cj4gPiA+IFtsaW51eC1qZGs4XSBbd2l0aE1hdmVuXSBPbmUgb3IgbXVsdGlwbGUgTWF2ZW4gZXhlY3V0aW9ucyBoYXZlIGJlZW4KPiA+ID4gaWdub3JlZCBieSB0aGUgSmVua2lucyBQaXBlbGluZSBNYXZlbiBQbHVnaW4gYmVjYXVzZSB0aGV5IGhhdmUgYmVlbgo+ID4gPiBpbnRlcnJ1cHRlZCBiZWZvcmUgY29tcGxldGlvbiAoMSkuIFNlZSBQaXBlbGluZSBNYXZlbiBQbHVnaW4gRkFRIGZvcgo+IG1vcmUKPiA+ID4gZGV0YWlscy4KPiA+ID4gW1BpcGVsaW5lXSBbbGludXgtamRrOV0gfQo+ID4gPiBbbGludXgtamRrOV0gW3dpdGhNYXZlbl0gT25lIG9yIG11bHRpcGxlIE1hdmVuIGV4ZWN1dGlvbnMgaGF2ZSBiZWVuCj4gPiA+IGlnbm9yZWQgYnkgdGhlIEplbmtpbnMgUGlwZWxpbmUgTWF2ZW4gUGx1Z2luIGJlY2F1c2UgdGhleSBoYXZlIGJlZW4KPiA+ID4gaW50ZXJydXB0ZWQgYmVmb3JlIGNvbXBsZXRpb24gKDEpLiBTZWUgUGlwZWxpbmUgTWF2ZW4gUGx1Z2luIEZBUSBmb3IKPiBtb3JlCj4gPiA+IGRldGFpbHMuCj4gPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOF0gLy8gd2l0aE1hdmVuCj4gPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrN10gLy8gd2l0aE1hdmVuCj4gPiA+IFtQaXBlbGluZV0gW2xpbnV4LWpkazhdIC8vIHdpdGhNYXZlbgo+ID4gPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs5XSAvLyB3aXRoTWF2ZW4KPiA+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs4XSB9Cj4gPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrN10gfQo+ID4gPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs4XSB9Cj4gPiA+IFtQaXBlbGluZV0gW2xpbnV4LWpkazldIH0KPiA+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs5XSB9Cj4gPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOF0gLy8gc3RhZ2UKPiA+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs3XSAvLyBzdGFnZQo+ID4gPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs4XSAvLyBzdGFnZQo+ID4gPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs5XSAvLyBzdGFnZQo+ID4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazldIC8vIGRpcgo+ID4gPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs4XSB9Cj4gPiA+IFtQaXBlbGluZV0gW2xpbnV4LWpkazldIH0KPiA+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs3XSB9Cj4gPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOF0gfQo+ID4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazldIH0KPiA+ID4gW3dpbmRvd3MtamRrOV0gW3dpdGhNYXZlbl0gT25lIG9yIG11bHRpcGxlIE1hdmVuIGV4ZWN1dGlvbnMgaGF2ZSBiZWVuCj4gPiA+IGlnbm9yZWQgYnkgdGhlIEplbmtpbnMgUGlwZWxpbmUgTWF2ZW4gUGx1Z2luIGJlY2F1c2UgdGhleSBoYXZlIGJlZW4KPiA+ID4gaW50ZXJydXB0ZWQgYmVmb3JlIGNvbXBsZXRpb24gKDEpLiBTZWUgUGlwZWxpbmUgTWF2ZW4gUGx1Z2luIEZBUSBmb3IKPiBtb3JlCj4gPiA+IGRldGFpbHMuCj4gPiA+IFtQaXBlbGluZV0gW2xpbnV4LWpkazhdIC8vIG5vZGUKPiA+ID4gW1BpcGVsaW5lXSBbbGludXgtamRrOV0gLy8gbm9kZQo+ID4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazddIC8vIG5vZGUKPiA+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs4XSAvLyBub2RlCj4gPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOV0gLy8gd2l0aE1hdmVuCj4gPiA+IFtQaXBlbGluZV0gW2xpbnV4LWpkazhdIH0KPiA+ID4gW2xpbnV4LWpkazhdIEZhaWxlZCBpbiBicmFuY2ggbGludXgtamRrOAo+ID4gPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs5XSB9Cj4gPiA+IFtsaW51eC1qZGs5XSBGYWlsZWQgaW4gYnJhbmNoIGxpbnV4LWpkazkKPiA+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs3XSB9Cj4gPiA+IFt3aW5kb3dzLWpkazddIEZhaWxlZCBpbiBicmFuY2ggd2luZG93cy1qZGs3Cj4gPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOF0gfQo+ID4gPiBbd2luZG93cy1qZGs4XSBGYWlsZWQgaW4gYnJhbmNoIHdpbmRvd3MtamRrOAo+ID4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazldIH0KPiA+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs5XSAvLyBzdGFnZQo+ID4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazldIH0KPiA+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs5XSAvLyBub2RlCj4gPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOV0gfQo+ID4gPiBbd2luZG93cy1qZGs5XSBGYWlsZWQgaW4gYnJhbmNoIHdpbmRvd3MtamRrOQo+ID4gPiBbUGlwZWxpbmVdIC8vIHBhcmFsbGVsCj4gPiA+IFtQaXBlbGluZV0gc3RhZ2UKPiA+ID4gW1BpcGVsaW5lXSB7IChOb3RpZmljYXRpb25zKQo+ID4gPiBbUGlwZWxpbmVdIGVjaG8KPiA+ID4gQnVpbGQgcmVzdWx0OiBGQUlMVVJFCj4gPiA+IFtQaXBlbGluZV0gamlyYUlzc3VlU2VsZWN0b3IKPiA+ID4gW1BpcGVsaW5lXSBqaXJhQ29tbWVudAo+ID4gPiBbUGlwZWxpbmVdIGppcmFDb21tZW50Cj4gPiA+IFtQaXBlbGluZV0gZW1haWxleHQKPiA+Cj4gPiAtLQo+ID4gU2VudCBmcm9tIG15IHBob25lCj4gPgo+Cj4KPgo+IC0tCj4gT2xpdmllciBMYW15Cj4gaHR0cDovL3R3aXR0ZXIuY29tL29sYW15IHwgaHR0cDovL2xpbmtlZGluLmNvbS9pbi9vbGFteQo+CgotLTAwMWExMTQ2YzY0MmNkMGQxNDA1NWY3ODgzMTAtLQoKCkZyb20gZGV2LXJldHVybi0xMjM5MjAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIFNlcCAxMCAxNTo0MzowOSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5MjAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQTczQ0QxQUFGRQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDE1OjQzOjA5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzQ2NjYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgU2VwIDIwMTcgMTU6NDM6MDkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM0NTkxIGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIFNlcCAyMDE3IDE1OjQzOjA4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzQ1NzkgaW52b2tlZCBieSB1aWQgOTkpOyAxMCBTZXAgMjAxNyAxNTo0MzowNyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTAgU2VwIDIwMTcgMTU6NDM6MDcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAzRkNGQjE4MjYyMwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMTU6NDM6MDcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiA0LjIzMQpYLVNwYW0tTGV2ZWw6ICoqKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTQuMjMxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9MT1RTT0ZIQVNIPTAuMjUsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDEsCglUUkFDS0VSX0lEPTEuMTAyXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIENWbFdjVXd4aW5ZUyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgMTAgU2VwIDIwMTcgMTU6NDM6MDUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC12azAtZjQ2Lmdvb2dsZS5jb20gKG1haWwtdmswLWY0Ni5nb29nbGUuY29tIFsyMDkuODUuMjEzLjQ2XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEMzQjYzNUZERDgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDE1OjQzOjA0ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXZrMC1mNDYuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgbTE0MnNvNzY3NjIxMHZrZi4yCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMDg6NDM6MDQgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9d2dIbzVXbnF6YVlIeFZUcjJqdFdya3R6YTU3bUxFbDJWOERrV2tNdmZUYz07CiAgICAgICAgYj1sWXMrQ1EyQW1lZ0gzTVhiMFFzVVhuUnlBaWR3cHNZN3psVml2a1JrL0ljY1R5MmNsL3BZRkN5MjRKZTZzV3lFbFgKICAgICAgICAgTEhPQlptRzJtNlY3S1M4YUFpdWhRL0ZvYlkvVkZ4R3UwbmxpOWhlaDF6ME42TThIeUZmajR4aWN0cUR1NTA0UThjamQKICAgICAgICAgaHJISndmR1ZaL2xmMTJsK3JncUxVVTNNWjgzOTB6WmZRSGcxSjhEM1NZL0NRbWxMWTJrSXJXdWVMSSszZzlqQ3FXM3IKICAgICAgICAgbk45c2VCUGZ4Sm4rOVlMaVJnZE1jeElsS3ptWnhEQ0RDN3VzaUxDNW9KM0o2Q3NpQklSc1JWZzloM21RdmZUMUhPb3MKICAgICAgICAgOEJWbEVodmpiYi80NE95c2UxWGRkOUR3SFlSNnd3aHFvdC9GdHlnaXRPTnNQSm5JS2FMVFBnRUJLalVWMlNZQzdLdVMKICAgICAgICAgMGlBUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9d2dIbzVXbnF6YVlIeFZUcjJqdFdya3R6YTU3bUxFbDJWOERrV2tNdmZUYz07CiAgICAgICAgYj1xNWFUVHVSTTlHbGYwL3BxZWJSUGhIVXhhN1IvTzUzcHJYa1ErTUtvRmZPc3RVZkpQWXhYQXhIemdNeTVwcnd4WnEKICAgICAgICAgQnFwUWtjdTFINjE2SCttSm15a2hvbFZjWDZWVXR4NS9zdlF5WklhajFzWExkaGJPUEtZZGcxSkdhTk5hdWNVVWY1bWkKICAgICAgICAgd2JUZS9HT2lSUFhSY3M2OXNWdkhQanAwenFYQStTLzg3amZldlkyeFNqQSs2dWZOdFBwcW1nYjZKTzhidVZ3bUNXUHcKICAgICAgICAgMnVBekp3UWZUUk9XN3lCQ3k0Vlh4SkdkVEplZjNIdlpicnVyNTRsRyt2TGtIZHIrSm10c3VsUE9EeGhTUm9HV0lqdlgKICAgICAgICAgRWl1bHpCR0FXeXpqOHlHNWhLQ1ZseUcwcHplcytHc2pUUGhIMVY0MFA3SCtHUjFWSVAvVGVnVjVxaWFmQXc2SThWS2wKICAgICAgICAgZmFWZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVaFdQbHozL1RrMlROOVRLaCtxTElscnM4Y0VxbjZZSis1MjVBWVNGdDhHQVdYTVdRMVkKCVpSSCtkSnc0aTlmWDJDWjdIeXZuMXloQngxNlVhTDBacHBFPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRREErS0Q5cG4rWmE0bFV0QUo0ZU9mWmpCcFpneTMzZjFHcU9vZExRMnRKR2I0UWFNTEErcDhQMnMyNHJHWThLOTdhYSt1NkRnUmVLZDFDSEo1TjNBMD0KWC1SZWNlaXZlZDogYnkgMTAuMzEuOTMuNiB3aXRoIFNNVFAgaWQgcjZtcjU5NzI5OTl2a2IuMTIxLjE1MDUwNTgxODM1NDE7IFN1biwKIDEwIFNlcCAyMDE3IDA4OjQzOjAzIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzYuODkuNiB3aXRoIEhUVFA7IFN1biwgMTAgU2VwIDIwMTcgMDg6NDM6MDMgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxDQStuUG5NeHlHMk5lUFhwVnFhd2U5alI9aXRIRVQ2VXVkbk45Q2pIaHY9b28tS0NyeHdAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQStuUG5NeHlHMk5lUFhwVnFhd2U5alI9aXRIRVQ2VXVkbk45Q2pIaHY9b28tS0NyeHdAbWFpbC5nbWFpbC5jb20+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFN1biwgMTAgU2VwIDIwMTcgMTY6NDM6MDMgKzAxMDAKTWVzc2FnZS1JRDogPENBK25Qbk15eW9xNlp3cm92ck1jTTR3OVNnK2RFNkh2ajFaNzUxTl80S2FQdmUwNDFqQUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSI5NGViMmMwOTE5OGE2NTdkMTkwNTU4ZDdhYWVlIgoKLS05NGViMmMwOTE5OGE2NTdkMTkwNTU4ZDdhYWVlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpBbmFseXplci4uLgoKc3RhZ2luZ1VybDogaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2NApncm91cElkOiBvcmcuYXBhY2hlLm1hdmVuCmFydGlmYWN0SWQ6IGFwYWNoZS1tYXZlbgp2ZXJzaW9uOiAzLjUuMQoKU291cmNlIFpJUCB1cmwgZXhpc3RzLgpodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwCgpTb3VyY2UgWklQIFNIQTEgdXJsIGV4aXN0cy4KaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcC5zaGExCgpCaW5hcnkgWklQIHVybCBleGlzdHMuCmh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLWJpbi56aXAKCkJpbmFyeSBaSVAgU0hBMSB1cmwgZXhpc3RzLgpodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1iaW4uemlwLnNoYTEKCkNhbGN1bGF0ZWQgU0hBMSBvZiBzb3VyY2UgWklQIG1hdGNoZXMgcHVibGlzaGVkIFNIQTEgb2Ygc291cmNlIFpJUC4KMTIxZDU0YjA0NTM4MGE4YTQ4OTVlYjEzNzk3MGFiNjllNjk4ZWIwZQoKQ2FsY3VsYXRlZCBTSEExIG9mIGJpbmFyeSBaSVAgbWF0Y2hlcyBwdWJsaXNoZWQgU0hBMSBvZiBiaW5hcnkgWklQLgo4YTNkN2VjMzE1ZTA3NTllYjFkMWM2ZjkyODZiMjQzYTAwNmJmOTFlCgpHaXQgcmV2aXNpb24gb2YgcmVsZWFzZSBhcyBkZXRlcm1pbmVkIGZyb20KbWF2ZW4tY29yZS0zLjUuMS5qYXI6b3JnL2FwYWNoZS9tYXZlbi9tZXNzYWdlcy9idWlsZC5wcm9wZXJ0aWVzKGJ1aWxkTnVtYmVyKToKMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMwoKRmlsZXMgdGhhdCBhcmUgcHJlc2VudCBpbiB0aGUgc291cmNlIGRpc3RyaWJ1dGlvbiBidXQgbm90IGluIHRoZSBzb3VyY2UKcmV2aXNpb246CkRFUEVOREVOQ0lFUwoKCk9uIDEwIFNlcHRlbWJlciAyMDE3IGF0IDE2OjM5LCBTdGVwaGVuIENvbm5vbGx5IDwKc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cgo+IEhpLAo+Cj4gV2Ugc29sdmVkIDI1IGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4gdmVyc2lvbj0xMjMzODk2NCZzdHlsZU5hbWU9VGV4dCZwcm9qZWN0SWQ9MTIzMTY5MjIKPgo+IFRoZXJlIGFyZSAzNTAgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9cHJvamVjdCUyMCUKPiAzRCUyME1ORyUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlCj4gMjBCWSUyMGR1ZSUyMEFTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMGNyZWF0ZWQlMjBBU0MKPgo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY0Lwo+Cj4gVGhlIGRpc3RyaWJ1dGFibGUgYmluYXJpZXMgYW5kIHNvdXJjZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS8KPgo+IFNwZWNpZmljYWxseSB0aGUgemlwLCB0YXJiYWxsIGFuZCBzb3VyY2UgYXJjaGl2ZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtYmluLnppcAo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLWJpbi50YXIuZ3oKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5nego+Cj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy50YXIuZ3ogc2hhMTogOWViODIxZjE1M2M3NjY3MTk0YWExMWNjZDA5OWI3Cj4gYmQyMDU5NTYwZAo+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwOiBzaGExOiAxMjFkNTRiMDQ1MzgwYThhNDg5NWViMTM3OTcwYWI2OWU2OThlYjBlCj4KPiBHaXQgdGFnOgo+IGh0dHBzOi8vZ2l0LXdpcC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPW1hdmVuLmdpdDthPWNvbW1pdDtoPQo+IDA5NGU0ZTMxYTVhZjU1YmIxN2JlODc2NzVkYTQxZDlhZWNhMDYyZjMKPgo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvY29tcG9uZW50cy9yZWYvMy1MQVRFU1QvCj4KPiBWb3RlIG9wZW4gZm9yIDcyIGhvdXJzLgo+Cj4gWyBdICsxCj4gWyBdICswCj4gWyBdIC0xCj4KPiBUaGFua3MsCj4KPiBTdGVwaGVuLgo+CgotLTk0ZWIyYzA5MTk4YTY1N2QxOTA1NThkN2FhZWUtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDMyOC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgT2N0IDI1IDA4OjAxOjU5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDMyOC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFQ0NDOTE3M0M4Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMjUgT2N0IDIwMTcgMDg6MDE6NTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3NzM0MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNSBPY3QgMjAxNyAwODowMTo1OCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzY3ODcgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgT2N0IDIwMTcgMDg6MDE6NTggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3Njc1MSBpbnZva2VkIGJ5IHVpZCA5OSk7IDI1IE9jdCAyMDE3IDA4OjAxOjU3IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAyNSBPY3QgMjAxNyAwODowMTo1NyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEE0OUREMTgwN0RDOwoJV2VkLCAyNSBPY3QgMjAxNyAwODowMTo1NiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDEuOTgKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjk4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwKCUhFQURFUl9GUk9NX0RJRkZFUkVOVF9ET01BSU5TPTAuMDAxLCBIVE1MX01FU1NBR0U9MiwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgSFB5aFVwSm1oQ3VjOyBXZWQsIDI1IE9jdCAyMDE3IDA4OjAxOjU1ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd20wLWY0MS5nb29nbGUuY29tIChtYWlsLXdtMC1mNDEuZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjQxXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEM5NzI1NUZDMUM7CglXZWQsIDI1IE9jdCAyMDE3IDA4OjAxOjU0ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNDEuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgcjE5NnNvMTE1NzQ5d21mLjI7CiAgICAgICAgV2VkLCAyNSBPY3QgMjAxNyAwMTowMTo1NCAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnNlbmRlcjpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOmNjOwogICAgICAgIGJoPXJNMEc3bWphWHZSSHhpbDFFSVBYZ244cStTWCtvbmk5TFBqVWQxK1RuaFU9OwogICAgICAgIGI9aU5IbzdUSTBwVE1yTnptM2g4eE9GRGM3WVJHVTVPS0VxODNNTlRrMFFKUDY4dUJDd0xBRGNOTzNpd2dkVUhEUVNhCiAgICAgICAgIHNUVTFMdXVhNTVtRmhNbmRqNW4vd2VkVU9ZYlRMeityVVE0WTNwQ0J1eWJhRm1SMTRiSy9YcnlWT211cmNDTjBsdXN0CiAgICAgICAgIG8vK0lTWDlvYUxNUzRLbUZlcmNCL28wN3BMaDN5YnhXOCtxdEQ4S0dIWWVrOHdEV1BmdVNBVGFZMXdtV3JUM1BxamdkCiAgICAgICAgIG1sTGNqYzNkbGY3bmVzNlpJMWpiS1NMTmJ1ZjNsdUFvL0hBemk3N3JoeXRiWnBuWEFZajhwNU5Ib21LV0tWZ1NoUE9TCiAgICAgICAgIDFFMjJxMjhSWG11UWRFdTI4REg1R0srVDlkems0Z3VUcXBId1JmbW11cmFld3ZaS2xiUGsyNThCcUd5QVlWeWwvVjRaCiAgICAgICAgIGdFVFE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpzZW5kZXI6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdAogICAgICAgICA6dG86Y2M7CiAgICAgICAgYmg9ck0wRzdtamFYdlJIeGlsMUVJUFhnbjhxK1NYK29uaTlMUGpVZDErVG5oVT07CiAgICAgICAgYj1iMzFSeGtwenJlZlQxZWdiMmFnTytkQXBIZGwyQU4yZWZmeHE2TzBZK3hQdk9BczZ4dWEvSXVoUncwVWVzZ0NZWSsKICAgICAgICAgRXYyYkhMdzBpK0R0dEJEZ2VZTFhhUFlTOUFKbkN1NWhDQ1RUWERqeUNBU0lmSGJtRjBDYldrdkV2SldlaXAvSXFuVWQKICAgICAgICAgZTIrSGJiMzVGWEhGQXRSZzJTbW5MRGlYdklhNndhcE1WdTNoOXFDN0ZMdkcxZVd4ek5HajRSeG9UeG9ISE9jWUpsQUcKICAgICAgICAgUkRNYmtTNXNHWmNDVTZUSlpyb2wvL0xmdG1EQldJNkJObW9ENXZKS3M1d2M0bk02V2YrVlJSOTJ1V1NBSHdrYkZ2akQKICAgICAgICAgWGNhenFwTm5yYjRrZHlBUzNMdUlpV0tnVzd6QzZkclUwL2hlNHl0Y2F3ekx1enR1WWNBSVVnSHlXNzZ1ai9aTGc4bTEKICAgICAgICAgbjVwZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhV2hHZE9MNmpGU3J4OUo2VXVxSmR3NEVJaHkwMU5DYVYzbUdzdzZhSk52TzNZY3M0VUwKCU9jdFh2NW1kbmpBYytqSmNoU1FIWWRRNWFiR0RYd3BKNmVMcTJVb3ZnSFpIClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtSSEYzWGY4cUp6ZDFNODBzZHcwTFFtS1VSSFZmL0JDVmY5eFZUbW9VQldJV0FsbEpZc1AvTE45RmttemVVRVZ3a1d3SWdvNE53Y0dUdGdNbmhMZ3IwPQpYLVJlY2VpdmVkOiBieSAxMC4yOC4xMTEuMjAzIHdpdGggU01UUCBpZCBjNzJtcjkzNzI3MHdtaS40Mi4xNTA4OTE4NTEzNDYxOwogV2VkLCAyNSBPY3QgMjAxNyAwMTowMTo1MyAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApTZW5kZXI6IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20KUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xODcuOCB3aXRoIEhUVFA7IFdlZCwgMjUgT2N0IDIwMTcgMDE6MDE6NTIgLTA3MDAgKFBEVCkKRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbmNAYXBhY2hlLm9yZz4KRGF0ZTogV2VkLCAyNSBPY3QgMjAxNyAwMTowMTo1MiAtMDcwMApYLUdvb2dsZS1TZW5kZXItQXV0aDogR1hmeXBES1pjSzFxZFNEQTB3WGhXbm1fV1lJCk1lc3NhZ2UtSUQ6IDxDQStuUG5NeXpKMT10VFFfPXNBS25qOTVfMlBqaUU0QXJVUWt5c3lKclcrcHo1TUVXY0FAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFtBTk5dIEFwYWNoZSBNYXZlbiAzLjUuMiBSZWxlYXNlZApUbzogYW5ub3VuY2VAbWF2ZW4uYXBhY2hlLm9yZywgTWF2ZW4gVXNlcnMgTGlzdCA8dXNlcnNAbWF2ZW4uYXBhY2hlLm9yZz4KQ2M6IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDc3OWZhZmQ2ZGY3MDU1YzVhNzc0MCIKCi0tMDAxYTExNDc3OWZhZmQ2ZGY3MDU1YzVhNzc0MApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpUaGUgQXBhY2hlIE1hdmVuIHRlYW0gaXMgcGxlYXNlZCB0byBhbm5vdW5jZSB0aGUgcmVsZWFzZSBvZiB0aGUgQXBhY2hlCk1hdmVuIDMuNS4yCgpZb3UgY2FuIGRvd25sb2FkIHRoZSBhcHByb3ByaWF0ZSBzb3VyY2VzIGV0Yy4gZnJvbSB0aGUgZG93bmxvYWQgcGFnZQoKQ29udHJpYnV0b3JzCj0zRD0zRD0zRD0zRD0zRD0zRD0zRD0zRD0zRD0zRD0zRD0zRApUaGUgQXBhY2hlIE1hdmVuIHRlYW0gd291bGQgbGlrZSB0byB0aGFuayB0aGUgZm9sbG93aW5nIGNvbnRyaWJ1dG9ycywKd2l0aG91dCB3aG9tIHRoaXMgcmVsZWFzZSB3b3VsZCBub3QgaGF2ZSBiZWVuIHBvc3NpYmxlOgoKQ29kZSBjb250cmlidXRvcnM6CgotIE1hcmlvIEtyaXptYW5pYwotIERlamFuIFN0b2phZGlub3ZpYwotIEFudG9uIFRhbmFzZW5rbwotIFN0ZWZhbiBFaWNoZXIKCklzc3VlIHJlcG9ydGVyczoKCi0gTWFyY2VsIFNjaHV0dGUKLSBNYXJpbyBLcml6bWFuaWMKLSBDaGFybGVzIEdvdWxkCi0gQnJpYW4gT3hsZXkKLSBBbnRvbiBUYW5hc2Vua28KLSBHcmVnb3IgQi4gUm9zZW5hdWVyCi0gU3lsd2VzdGVyIExhY2hpZXdpY3oKLSBTdGVmYW4gRWljaGVyCi0gTWFudWVsIFJ5YW4KCkNvbW11bml0eSB0ZXN0ZXJzIHBhcnRpY2lwYXRpbmcgaW4gdm90aW5nIGZvciB0aGlzIHJlbGVhc2Ugc2VyaWVzOgoKLSBNYXJrIERlcnJpY3V0dAotIERlamFuIFN0b2phZGlub3ZpYwotIFRob21hcyBDb2xsaWdub24KLSBHcnplZ29yeiBHcnp5YmVrCi0gUGV0YXIgVGFoY2hpZXYKLSBqaWVyeW4KLSBQZXRyID1DNT1BMGlyb2s9QzM9QkQKClRoYW5rIHlvdSBmb3IgeW91ciB0aW1lIGFuZCBmZWVkYmFjay4KCgpSZWxlYXNlIE5vdGVzIC0gTWF2ZW4gLSBWZXJzaW9uIDMuNS4yCgpTdWItdGFza3M6CgogICAgKiBbTU5HLTYxODZdIC0gc3dpdGNoIHRvIGltcHJvdmVkIEhhd3RKTkkKICAgICogW01ORy02MjgwXSAtIEFycmF5SW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbiBjYXVzZWQgYnkgcG9tLnhtbCB3aXRoCnByb2Nlc3MgaW5zdHJ1Y3Rpb25zCgpCdWdzOgoKICAgICogW01ORy01OTM1XSAtIE9wdGlvbmFsIHRydWUgZ2V0dGluZyBsb3N0IGluIG1hbmFnZWQgZGVwZW5kZW5jaWVzIHdoZW4KdHJhbnNpdGl2ZQogICAgKiBbTU5HLTYxMjddIC0gRml4IHBsdWdpbiBleGVjdXRpb24gY29uZmlndXJhdGlvbiBpbnRlcmZlcmVuY2UKICAgICogW01ORy02MTQ4XSAtIENhbid0IHBhY2thZ2UgYW5kIGFzc2VtYmxlIHdpdGggSkRLOS9KaWdzYXcKICAgICogW01ORy02MTQ5XSAtIE1ldGFkYXRhUmVzb2x1dGlvblJlc3VsdCNnZXRHcmFwaCgpIG5ldmVyIHJlc29sdmVzCnJlcXVlc3QgdHlwZSAndGVzdCcKICAgICogW01ORy02MjA1XSAtIE5vbi1hc2NpaSBjaGFycyBpbiBuYW1lIGVsZW1lbnQgYXJlIGRpc3BsYXllZCBhcwpxdWVzdGlvbiBtYXJrcyBpbiBXaW4gQ0xJIG91dHB1dCAocmVncmVzc2lvbikKICAgICogW01ORy02MjEwXSAtIGNhbid0IGxvYWQgQFNlc3Npb25TY29wZWQvQE1vam9FeGVjdXRpb25TY29wZWQKY29tcG9uZW50cyBmcm9tIC5tdm4vZXh0ZW5zaW9ucy54bWwKICAgICogW01ORy02MjIzXSAtIG12biAtZiBvdXRwdXRzIGludmFsaWQgZXJyb3Igd2hlbiBzcGVjaWZ5aW5nIFBPTQpkaXJlY3RvcnkKICAgICogW01ORy02MjMzXSAtIG1hdmVuLXJlc29sdmVyLXByb3ZpZGVyIG1peGVzIEpSUyAzMzAgYW5kIFBsZXh1cwphbm5vdGF0aW9ucwogICAgKiBbTU5HLTYyMzRdIC0gUmVncmVzc2lvbiA2MTgyYTIwODogbGlicmFyeS5qYW5zaS5wYXRoIGRvZXMgbm90IHBvaW50CnRvIHByb3BlciBkaXJlY3RvcnkKICAgICogW01ORy02MjQwXSAtIER1cGxpY2F0ZSBjb21wb25lbnRzIGluIHBsdWdpbiBleHRlbnNpb24gcmVhbG0gd2hlbgpwbHVnaW4gZGVwZW5kcyBvbiBtYXZlbi1hZXRoZXItcmVzb2x2ZXIKICAgICogW01ORy02MjQyXSAtIE5vIGNvbG9yIGZvciBtYXZlbiBvbiBDeWd3aW4KCkltcHJvdmVtZW50czoKCiAgICAqIFtNTkctNTQ1N10gLSBTaG93IHJlcG9zaXRvcnkgaWQgd2hlbiBkb3dubG9hZGluZyBvciB1cGxvYWRpbmcgZnJvbS90bwphIHJlbW90ZSByZXBvc2l0b3J5CiAgICAqIFtNTkctNjAyNV0gLSBBZGQgYSBQcm9qZWN0QXJ0aWZhY3RzQ2FjaGUgc2ltaWxhciB0bwpQbHVnaW5BcnRpZmFjdHNDYWNoZQogICAgKiBbTU5HLTYxMjNdIC0gZGV0ZWN0IHNlbGYgcmVmZXJlbmNlcyBpbiBQT00gYW5kIGZhaWwgZmFzdAogICAgKiBbTU5HLTYxNzRdIC0gQ2xlYW4gVXAgTWF2ZW4gTW9kZWwKICAgICogW01ORy02MTk2XSAtIFVwZGF0ZSBzbGY0aiBhbmQgc2ltcGxpZnkgaXRzIGNvbG9yIGludGVncmF0aW9uCiAgICAqIFtNTkctNjIwM10gLSBNaW5vciBjbGVhbnVwIGluIE1hdmVuQ2xpLmphdmEKICAgICogW01ORy02MjA2XSAtIFdlIHNob3VsZCBwcm9kdWNlIGEgV0FSTklORyBieSB1c2luZyBSRUxFQVNFLCBMQVRFU1QgYXMKdmVyc2lvbnMKICAgICogW01ORy02MjA3XSAtIENyZWF0ZSBXQVJOSU5HcyBpbiBjYXNlIG9mIHVzaW5nIHN5c3RlbSBzY29wZQogICAgKiBbTU5HLTYyMjhdIC0gT3B0aW9uYWxpdHkgbm90IGRpc3BsYXllZCBpbiBkZXBlbmRlbmN5IHRyZWUgd2hlbiBydW4gaW4KZGVidWcgbW9kZQoKTmV3IEZlYXR1cmVzOgoKICAgICogW01ORy02MDg0XSAtIFN1cHBvcnQgSlNSIDI1MCBhbm5vdGF0aW9ucwogICAgKiBbTU5HLTYyMjBdIC0gQWRkIENMSSBvcHRpb25zIHRvIGNvbnRyb2wgY29sb3Igb3V0cHV0CgpUYXNrczoKCiAgICAqIFtNTkctNjE2N10gLSBDbGVhbiB1cCBkZXBlbmRlbmN5IG1lc3MgKHJlcG9ydGVkIGJ5IGRlcGVuZGVuY3k6YW5hbHl6ZT0KKQogICAgKiBbTU5HLTYyNThdIC0gVXBncmFkZSB0byBNYXZlbiBSZXNvbHZlciAxLjEuMAoKRW5qb3ksCgotVGhlIEFwYWNoZSBNYXZlbiB0ZWFtCgotLTAwMWExMTQ3NzlmYWZkNmRmNzA1NWM1YTc3NDAtLQoKRnJvbSBkZXYtcmV0dXJuLTEyMzkxOC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gU2VwIDEwIDA5OjU1OjM5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzkxOC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA0MzBGMDFBNjM0Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMDk6NTU6MzkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzNDMwMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBTZXAgMjAxNyAwOTo1NTozNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzQyMzAgaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgU2VwIDIwMTcgMDk6NTU6MzYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNDIwNyBpbnZva2VkIGJ5IHVpZCA5OSk7IDEwIFNlcCAyMDE3IDA5OjU1OjM1IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxMCBTZXAgMjAxNyAwOTo1NTozNSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDA4M0RBMUEyMzY5OwoJU3VuLCAxMCBTZXAgMjAxNyAwOTo1NTozNSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjQwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC40MDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCAzQTRjZ2ZhSmNEYTM7IFN1biwgMTAgU2VwIDIwMTcgMDk6NTU6MzEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC11YTAtZjE3MS5nb29nbGUuY29tIChtYWlsLXVhMC1mMTcxLmdvb2dsZS5jb20gWzIwOS44NS4yMTcuMTcxXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDQzRjJBNUZFMTY7CglTdW4sIDEwIFNlcCAyMDE3IDA5OjU1OjMxICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXVhMC1mMTcxLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHEyOXNvODM2Mjg3OHVhZi4zOwogICAgICAgIFN1biwgMTAgU2VwIDIwMTcgMDI6NTU6MzEgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9TlhWcm0vbS9TcFZ3US9may9EMXI3MjlRSXV5bVlUdlc4SjBVVjROcll5az07CiAgICAgICAgYj12VXJseHFIQU91bEx0UkRuOHFKVGdxb1pMdnVLQlV6VmQ1aElwWHcvblZiS1IwZS9vSGRoc3hURFlObnRaSTRCRjUKICAgICAgICAgaWFFZitpYkU1dFZXR3YvVmlBa01OYjZmSkloS1lLUGhFaDRHSU9kTXhVTzlwaE9LNC9ncmtLM2RpMy9IVzFjZDlueGEKICAgICAgICAgck9iV1E5b241UDMzeHJxeFVvdFJYTS95MzdqZ1J0d2Z4VklHc1poQlJPRjZqdjVpanJBSnZNZ29OcG01RG9vLzl3dU8KICAgICAgICAgZDd2eG9VQk1YRkFTemZBRk5xVTBDR3BJYkswWXY2OFgrQ0cwSlZyNS9lMGpLb1dIb2NleUgzL1VlOHpra2lhUktkMngKICAgICAgICAgUDJpY1JiQ0hnbk00YmZ2SktrV0dCV3BpM0w2VXFNWlU2MThlODFUSmhWVzdDckk3R3FSUnFzeDBNTjhWMVZ4YTNCT1QKICAgICAgICAgcGREQT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9TlhWcm0vbS9TcFZ3US9may9EMXI3MjlRSXV5bVlUdlc4SjBVVjROcll5az07CiAgICAgICAgYj1ITWhET1MvVXAxYU9Uak4rOTQwWjU0RDBaRVk2SHFWUGFpTkV1WW1VUG95UzJhS0Rnb2VQZGllS0Z2MFhyaEUvVlUKICAgICAgICAgcVkwdndiSHFVcVFqRG0xZUFMTVdtNXBCMEdhMkRTZ21BSk5IV3N0cnZSZGJxUjV3dWFtR0RoYk1BS1RKRHllcTc3U3UKICAgICAgICAgU0lXRDhndlZqQVFHWFAzK1h1N2trcDJRSU9xVXZuT1VOd0NmR1pQTU5hZUpIdWpoQkY0NDQwZDM5U2FaaWo0TUZyNCsKICAgICAgICAgWkNGclI2SWNLZENMajJMbmV4WnNZVFN1WkIzR3psdlB2Y2tpSEZLN2l5Z2tPVmoyUFR2TmgxRzNvajU2cU81YThCaEgKICAgICAgICAgMDNkZHNFazdhbVlCY0g2MlNwY2hla0w2MU00VENFK1FkQ1l2bEEwWks3MXJ2TW9sNFVRTzdNMys3N1hWVVF0SFlqYW4KICAgICAgICAgS2N0dz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVajhWYVc3enllOW1iQWlRcDAzRGNFQmtHKzJ5dmpCdVNjMEJKWXlzZ0ZVQ0lua2lCMW4KCTFoN2hJbjEzNlRYV3NUQTJvbVBZSkdiR09lbGxGY3lCClgtR29vZ2xlLVNtdHAtU291cmNlOiBBREtDTmI0TEQ4SlhnaU1JTHp3NWhod29pRytBdmdZRkJVZFJtdjBBbEZWME12d1RoQW9FTWlHR25QbXAzaVhjZktTbTRJOWJXV09yRWtHZzJzREhCSDVkRVdNPQpYLVJlY2VpdmVkOiBieSAxMC4xNzYuMTkuMTYzIHdpdGggU01UUCBpZCBtMzJtcjY0NDU3MzR1YWUuMTE0LjE1MDUwMzczMzA0NTk7CiBTdW4sIDEwIFNlcCAyMDE3IDAyOjU1OjMwIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDxDQStuUG5NenoydTY9Y2RVNStoMUhzdldoUzRDVDV6a1l6cldDRW93LUc4Q3p2K21ZMmdAbWFpbC5nbWFpbC5jb20+CkluLVJlcGx5LVRvOiA8Q0ErblBuTXp6MnU2PWNkVTUraDFIc3ZXaFM0Q1Q1emtZenJXQ0Vvdy1HOEN6dittWTJnQG1haWwuZ21haWwuY29tPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBTdW4sIDEwIFNlcCAyMDE3IDA5OjU1OjIwICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5Neit2SGtrbXMxM0VDaHc1a0dCblhEazkzX0hyNUY3NitEZXRibnBxZmlHWHdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFtSRVNVTFRdIFJlOiBQbGVhc2UgcmV0d2VldCBhbmQgdm90ZQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sIE1hdmVuIFVzZXJzIExpc3QgPHVzZXJzQG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDU2MmQ4NzRhZWQ0MDU1OGQyY2YzYSIKCi0tMDAxYTExNDU2MmQ4NzRhZWQ0MDU1OGQyY2YzYQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKU28gcG9sbCByZXN1bHRzOgoKNDkzIHZvdGVzIGNhc3QKCjI1JSB3YW50IEphdmEgNyw4JjkgZm9yIE1hdmVuIDMuNi54CjY1JSB3YW50IEphdmEgOCY5IGZvciBNYXZlbiAzLjYueAoxMCUgd2FudCBKYXZhIDgmOSBmb3IgTWF2ZW4gMy42LnggYW5kIDYgbW9udGhzIG9mIGJhY2twb3J0aW5nIHRvIDMuNS54CgpPbiBTYXQgOSBTZXAgMjAxNyBhdCAxMTo1MCwgU3RlcGhlbiBDb25ub2xseSA8CnN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgoKPiBodHRwczovL3R3aXR0ZXIuY29tL2FzZm1hdmVucHJvamVjdC9zdGF0dXMvOTA2NDUxMDU5OTY2NjkzMzc2Cj4gLS0KPiBTZW50IGZyb20gbXkgcGhvbmUKPgotLSAKU2VudCBmcm9tIG15IHBob25lCgotLTAwMWExMTQ1NjJkODc0YWVkNDA1NThkMmNmM2EtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDI1NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgT2N0IDE3IDE4OjE1OjIwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI1NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyMENDOTEwNzdDCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMTcgT2N0IDIwMTcgMTg6MTU6MjAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0MjUyNiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNyBPY3QgMjAxNyAxODoxNToxOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDI0NTUgaW52b2tlZCBieSB1aWQgNTAwKTsgMTcgT2N0IDIwMTcgMTg6MTU6MTkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0MjQ0MyBpbnZva2VkIGJ5IHVpZCA5OSk7IDE3IE9jdCAyMDE3IDE4OjE1OjE5IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAxNyBPY3QgMjAxNyAxODoxNToxOSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDk2Q0NEQzNGMjAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDE3IE9jdCAyMDE3IDE4OjE1OjE4ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuMTUxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjE1MSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTE9UU09GSEFTSD0wLjI1LCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEZ0RlVuMUQ0X2RKbiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVR1ZSwgMTcgT2N0IDIwMTcgMTg6MTU6MTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13cjAtZjE3OC5nb29nbGUuY29tIChtYWlsLXdyMC1mMTc4Lmdvb2dsZS5jb20gWzIwOS44NS4xMjguMTc4XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDYwQ0JENUYzREUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDE3IE9jdCAyMDE3IDE4OjE1OjE3ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdyMC1mMTc4Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHE0MnNvMjYyMTM1NXdyYi43CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTcgT2N0IDIwMTcgMTE6MTU6MTcgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXBVSHdRYTlPVTlMaDJWTFVSOXJ3b0xueFFVYmJWc284Ty9EdlVOeG9IMTQ9OwogICAgICAgIGI9SmVMWFlNNXZVWnpaNVQ4SmdUNnZXRkdxU0hoYloyMG0rV1hsd2ZRWEw3cTB2K0k3RDlTYUw2TDV5NVo2N3ZvZU1jCiAgICAgICAgIHl0VWQ5MGNCVWVwVDBUMlhyMDhVMTdBcXYvVm9BVHpXK3lGTkNLaUI2ZG9lNktQRG03ZFdFMnRYNG5qZXJUM0ZzZEJUCiAgICAgICAgIGtSelJ0SGZoQ0pSNGRqckdiUEFSVlV4bXRiT1V5bWdTT2pBUS8xempVZnFHMjZFejBZeFBieERtRi9WMmxJZkVTMWdnCiAgICAgICAgIHpHNmZRUUNqWWFpaSsvUXFzMXZtck9DM2p0ZGU1ZzRkRGcxTDN4cFVIK1Nuc1FwK0lZVTlVb3VLck1YQjJwQkVYQkMrCiAgICAgICAgIFdYbitKMXlLaDZ6azIwYkY0WlFqckFYOVNMZW9ZRmc5Mml4VzR0ZExlcWpLNTgzMmFoblQ2NTV0NkdjK2Z6eTlBTHhDCiAgICAgICAgIDhBdUE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXBVSHdRYTlPVTlMaDJWTFVSOXJ3b0xueFFVYmJWc284Ty9EdlVOeG9IMTQ9OwogICAgICAgIGI9bHNKclpTait5TTdHeUJoelRzamk3UVFBRGR1SVA1TEg5cE1MTmlEQTIrSktUamVtaUozcnlhWHV3cnBKL29zUGNTCiAgICAgICAgIHFlVElGcWNuZGZvUkVtdmxuSytidFR3eEV0QzNSWGhjM2ZHVmdmU0xsSXRkZlBhVFJIT0lYZlJ0QnpUQjAydzZoSXJ4CiAgICAgICAgIG5OQXpGSGNiVlcxSGF3d0ZTclJrZjV3WDJCV1M2VGh4eVozQVh4d2Zwb05qeG03cTB0K2l3cGZDZG1Oa2hSSDZJWGw3CiAgICAgICAgIC9IWlNwaE1nN2xPeXRMWmw5ODlnTDZVOW02dnl3MUFEbm8wQ2doU1IvS296WVNpVkxxclk4eVdPTXg0MytuZ3c1NkVlCiAgICAgICAgIEZEWTluZTQ3VVNDZVpmaVZiaC9QdFRkbUVucHMxbnVXY3ZpVHRsQkNwbHM1TzU2RXBEMTRzL20xZm1VenU5RWRPY0d3CiAgICAgICAgICtQQkE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVVLbERHWnUzeUlOY2pIMDE0TFRvY2hqSGxLUWlvOUt5cnhJamc3Y3VXR01SZm9ZMmxLCgkxSXY2QTB4NDBNVG8rcFoyVUxrQ2pBVFlUQWhneEtRaUJIa1U2ZzZtUHc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArVFVQakVuWXM3ZjkvL3I0MW94MFZjdnh0NnZOM2FISElrUEsxeFpISHpwZnhMNk5RM2pTNmo4Skoydm5uZUNjNDZaUTVnbklvQU03b2thbHROZHllMD0KWC1SZWNlaXZlZDogYnkgMTAuMjIzLjE4Mi4xMzQgd2l0aCBTTVRQIGlkIGo2bXI0MjgzODE0d3JlLjE1MC4xNTA4MjY0MTE2MTA2OwogVHVlLCAxNyBPY3QgMjAxNyAxMToxNToxNiAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMjIzLjE4Ny44IHdpdGggSFRUUDsgVHVlLCAxNyBPY3QgMjAxNyAxMToxNToxNSAtMDcwMCAoUERUKQpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBUdWUsIDE3IE9jdCAyMDE3IDE5OjE1OjE1ICswMTAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NejRTLUZKSzI1dkdBNmFjanEtV3RWNDA1OU9mNGVMMzUyRGFMOHZQTnlNWEFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFtDQU5DRUxMRURdIFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSJmNDAzMDQzODkzMjhkZTNhYzAwNTViYzIxYWYzIgoKLS1mNDAzMDQzODkzMjhkZTNhYzAwNTViYzIxYWYzCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpUaGlzIHZvdGUsIGRlc3BpdGUgYmVpbmcgc3VjY2Vzc2Z1bCwgaXMgYmVpbmcgY2FuY2VsbGVkLgoKQXMgcmVsZWFzZSBtYW5hZ2VyIGZvciB0aGlzIHZvdGUgSSBoYXZlIG1hZGUgdGhlIGRlY2lzaW9uIGlzIHRoYXQgcmVsZWFzaW5nCndpdGggdGhlIHR3byBpc3N1ZXM6CgpNTkctNjI3NQpNTkctNjIwOQoKV291bGQgcHJlc2VudCBhbiB1bm5lY2Vzc2FyeSByaXNrIHRvIHVzZXJzLgoKV2UncmUgZ29pbmcgdG8gcmV2ZXJ0IHRob3NlIHRvIGFsbG93IGZvciBsZXNzIHJpc2t5IGZpeGVzIHRvIGJlIGRldmVsb3BlZC4KCkknbGwgY2FsbCBhIHZvdGUgb24gMy41LjIgb25jZSBJIGdldCBpdCBzcHVuLgoKLVN0ZXBoZW4KCk9uIDEwIFNlcHRlbWJlciAyMDE3IGF0IDE2OjM5LCBTdGVwaGVuIENvbm5vbGx5IDwKc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cgo+IEhpLAo+Cj4gV2Ugc29sdmVkIDI1IGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4gdmVyc2lvbj0xMjMzODk2NCZzdHlsZU5hbWU9VGV4dCZwcm9qZWN0SWQ9MTIzMTY5MjIKPgo+IFRoZXJlIGFyZSAzNTAgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9cHJvamVjdCUyMCUKPiAzRCUyME1ORyUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlCj4gMjBCWSUyMGR1ZSUyMEFTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMGNyZWF0ZWQlMjBBU0MKPgo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY0Lwo+Cj4gVGhlIGRpc3RyaWJ1dGFibGUgYmluYXJpZXMgYW5kIHNvdXJjZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS8KPgo+IFNwZWNpZmljYWxseSB0aGUgemlwLCB0YXJiYWxsIGFuZCBzb3VyY2UgYXJjaGl2ZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtYmluLnppcAo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLWJpbi50YXIuZ3oKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5nego+Cj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy50YXIuZ3ogc2hhMTogOWViODIxZjE1M2M3NjY3MTk0YWExMWNjZDA5OWI3Cj4gYmQyMDU5NTYwZAo+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwOiBzaGExOiAxMjFkNTRiMDQ1MzgwYThhNDg5NWViMTM3OTcwYWI2OWU2OThlYjBlCj4KPiBHaXQgdGFnOgo+IGh0dHBzOi8vZ2l0LXdpcC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPW1hdmVuLmdpdDthPWNvbW1pdDtoPQo+IDA5NGU0ZTMxYTVhZjU1YmIxN2JlODc2NzVkYTQxZDlhZWNhMDYyZjMKPgo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvY29tcG9uZW50cy9yZWYvMy1MQVRFU1QvCj4KPiBWb3RlIG9wZW4gZm9yIDcyIGhvdXJzLgo+Cj4gWyBdICsxCj4gWyBdICswCj4gWyBdIC0xCj4KPiBUaGFua3MsCj4KPiBTdGVwaGVuLgo+CgotLWY0MDMwNDM4OTMyOGRlM2FjMDA1NWJjMjFhZjMtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDMwOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gT2N0IDIyIDE1OjUwOjQ0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDMwOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA1MzcyMjEwQ0Q3Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMjIgT2N0IDIwMTcgMTU6NTA6NDQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyNjcxMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMiBPY3QgMjAxNyAxNTo1MDo0NCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjY2MjYgaW52b2tlZCBieSB1aWQgNTAwKTsgMjIgT2N0IDIwMTcgMTU6NTA6NDQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNjYxNCBpbnZva2VkIGJ5IHVpZCA5OSk7IDIyIE9jdCAyMDE3IDE1OjUwOjQzIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAyMiBPY3QgMjAxNyAxNTo1MDo0MyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEU1NzZEMTgwNzFFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAyMiBPY3QgMjAxNyAxNTo1MDo0MiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjQwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC40MDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgMVhHZUFhT3p4WkhyIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAyMiBPY3QgMjAxNyAxNTo1MDo0MCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdyMC1mMTgyLmdvb2dsZS5jb20gKG1haWwtd3IwLWYxODIuZ29vZ2xlLmNvbSBbMjA5Ljg1LjEyOC4xODJdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMzZCOUM1RjMwNgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjIgT2N0IDIwMTcgMTU6NTA6NDAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd3IwLWYxODIuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgMTVzbzEyMzE3ODZ3cmIuNQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDIyIE9jdCAyMDE3IDA4OjUwOjQwIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWVNbnRxQzJSVG1pUEVvcFZwMGsrUVRFNDhXRC9HUGxwNndjQjZXanp6ZEk9OwogICAgICAgIGI9cUJpdy9CZ3RWTTlwZ1F4YnUvTG9OaXM3N1lNVzREODJZK2gwVGREMHNoeURYcXpNN3RudnJPbEIzQnNxeEhwYmo4CiAgICAgICAgIGkzKzV4bEJ5OEpDdkdtZmdzVENxREpBYXM2RGpjSEFaazFubE5XZFFGS1VJZ3VQSS9zVFIxeWxZRGhYSElQUUpyWVhOCiAgICAgICAgIDJUWUJLOWJJUU5WbmFRK2pRVjFmY0FCL2FqalUvNFBlSjVYSGRNcU9JbzJwWDNvZDcwT0lMRXdwaFVqei9sRno3UXkrCiAgICAgICAgIDlMcnA3OTBWaEFGV3ZORk9MdXE4dWJXYUNOVXpQc2w5anNuMjVJV050c2pvNWhadjNYRlR1T1Y3QTVucXN4Q3dKa2xPCiAgICAgICAgIGJuTmQycGFXVFFyNDQ3L2U1OWdpVDg5Qko4QzVod1h3MmpHcUNFdGNxR0Z0aHhmOEtTSnh6ZWVaRGVwaGRGWWt1MnpECiAgICAgICAgIFF2UHc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWVNbnRxQzJSVG1pUEVvcFZwMGsrUVRFNDhXRC9HUGxwNndjQjZXanp6ZEk9OwogICAgICAgIGI9RjYxMXkwWk1qR1RlRENjTkNpdGFGbnN6OWNLc1FsbmtFd3F6dUtvajRJdjJwcm1tdFdMa09xYVhjM3hyaDRIYjhXCiAgICAgICAgIG92STVBS3Y0VjJhdENLWDNmaUJTZ0xDRDVoZHl2dHI3ZHNUU0dmb3hpemFMeHRBYWFkR1c1ZTRtZVFLR2lKVTNxYVVqCiAgICAgICAgIDkwaEhMaUpJMUc1K3Y4UXdSdlU5Smx0NjRFQThOVlFhWUhvWVhSL0cwT3dTOHBIWER5WHZSSFM2cklEdEJHY0ZEclFXCiAgICAgICAgIG1DaUhub0pvSzdpVHcvZFdwcHNYTitDRW5YYXFlRDZUWllSSDlzU3JHblljUjBucVhtMWNQQ2RvR2VRVmlPb09tdUQ3CiAgICAgICAgIGR5dVYxbmZkZDc4TEFyWEhSYTlkSzhsZzJQYXdxd01raklTc3BaeEw2NjNwMHhlQ1NNSTVMM0F4Sk10WVJiSkM0MEh3CiAgICAgICAgICtYMmc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVYzZTZLdmlHY1RQd2kvejIwRzZQZWI4YzN0cVVFaVJZZVFVREw5NmhGdEE3bXJQdVVICgkzdVF6TDFCNlI5elZ5VUh5Qnp4YkxWV1VGcllMWlIyZGpTekxxVEJCRmc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArVDRnNnExbE5wcWZoWHdSYUdDZk1lU2FPRFh4MmF3RFhtN203WWZqWlMveU1lUHZ5d2c0Q0pxTFhFb1FjSHhEZFh4dGIzYUVvdzFGSGd0VEtLVVhFbz0KWC1SZWNlaXZlZDogYnkgMTAuMjIzLjE2Ni4xNDYgd2l0aCBTTVRQIGlkIHQxOG1yOTYwMzU0N3dyYy42NC4xNTA4Njg3NDM0NDg3OwogU3VuLCAyMiBPY3QgMjAxNyAwODo1MDozNCAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8Njg5MTIwMS5vbzJtNzFzbFhnQGdpZ2E+CkluLVJlcGx5LVRvOiA8Njg5MTIwMS5vbzJtNzFzbFhnQGdpZ2E+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFN1biwgMjIgT2N0IDIwMTcgMTU6NTA6MjMgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk16NmlKcXQwdHNxTlo9VDJCbXcrY2dOeVU0aC09NGczZ3N1SDJaOG4zZGlVZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IG5leHQgY2FuZGlkYXRlcyBmb3IgR2l0IG1pZ3JhdGlvbgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0NzZlOTg5YzFhM2IwNTVjMjRhYTVkIgoKLS0wMDFhMTE0NzZlOTg5YzFhM2IwNTVjMjRhYTVkCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKClNob3VsZCB3ZSBzZWUgYWJvdXQgbW92aW5nIG91ciBnaXQtd2lwIHRvIGdpdGJveD8KCk9uIFN1biAyMiBPY3QgMjAxNyBhdCAxNToxMiwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdybz0KdGU6Cgo+IG5vdyB3ZSBoYXZlIDE1IGdpdCByZXBvczogOSBHaXQtV0lQICsgNiBHaXRCb3gKPiBJIGRpZG4ndCB0cnkgdGhlIGdpdCBtb2R1bGVzIHN0cmF0ZWd5IHRvIGhhdmUgYW4gZWFzeSBjbG9uZS9wdWxsOiBpZgo+IHNvbWVib2R5Cj4gdHJpZWQsIHBsZWFzZSBzaGFyZSByZXN1bHRzCj4KPiBsZXQncyBzZWUgdGhlIG5leHQgY2FuZGlkYXRlcyBbMV0sIHdoaWNoIGFyZSBsZXNzIG9idmlvdXMgdGhhbiB0aGUgMTUgZmlyPQpzdAo+IG9uZXM6Cj4KPiAtIDIgc2l0ZXMgKE1hdmVuIGFuZCBEb3hpYSk6IGFueWJvZHkga25vd3MgaWYgQ01TIHN1cHBvcnRzIHNvdXJjZSBpbiBHaXQ/Cj4KPiAtIDIgcGFyZW50IHBvbXM6IEFTRiBhbmQgbWF2ZW4tcGFyZW50LiBTZWVtcyBmZWFzaWJsZSB0byBoYXZlIDIgcmVwb3MuIE9uPQpseQo+IGlzc3VlcyBJIHNlZSBhcmU6Cj4gICAtIGhvdyB0byBuYW1lIHRoZSByZXBvIGZvciBBU0Y/Cj4gICAtIGhvdyB0byBnZXQgdGhlIGhpc3RvcnkgZm9yIG1hdmVuLXBhcmVudCwgZ2l2ZW4gdGhlcmUgd2VyZSBhIGxvdHMgb2YKPiBtb3Zlcz8KPgo+IC0gNiByZXNvdXJjZSBidW5kbGVzOiBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9hcGFjaGUtcmVzb3VyY2UtYnVuZGxlcy8KPiB3aGF0IGFib3V0IGRvaW5nIDEgZ2l0IHJlcG8gb25seSwgd2l0aCBvbmUgdW5pcXVlIGNvbW1vbiB2ZXJzaW9uPwo+Cj4gLSAyIHNraW5zOiBzZWVtcyBmZWFzaWJsZSB0byBoYXZlIDIgcmVwb3MgKEkgZG9uJ3Qga25vdyBpZiBnZXR0aW5nIGhpc3Rvcj0KeQo+IGlzCj4gZWFzeSBvciBub3QpCj4KPiAtIDUgZG94aWEgdG9vbHM6IDUgcmVwb3Mgc2VlbXMgcmVhc29uYWJsZQo+Cj4gLSA0MSBwbHVnaW5zCj4gLSAyNiBzaGFyZWQgY29tcG9uZW50cwo+IHJlYWxseSwgdGhpcyB3aWxsIGJlIHRoZSBoYXJkIHBhcnRzLi4uCj4KPiAtIGFyY2hldHlwZXM6IGxvb2tzIGl0IGhhcyBtb3ZlZCB0byAxMCBpbmRlcGVuZGFudCBhcmNoZXR5cGVzCj4KPgo+IFRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpc3Qgc2VlbXMgZmVhc2libGU6IG5vdCBhcyBlYXN5IGFzIHByZXZpb3VzbHksIGJ1dAo+IGZlYXNpYmxlCj4gQXJlIHRoZXJlIHZvbHVudGVlcnMgdG8gcHJlcGFyZSByZWZlcmVuY2UgdGFyZ2V0IGdpdCByZXBvcz8KPgo+IElmIHdlIGNhbid0IGdldCB0aGUgam9iIGRvbmUgb24gdGhlc2UsIEkgdGhpbmsgdGhhdCB0YWxraW5nIGFib3V0IHBsdWdpbnMKPiArc2hhcmVkK2FyY2hldHlwZXMgaXMganVzdCBhIHdhc3RlIG9mIHRpbWUKPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUMzPUE5Cj4KPgo+IFsxXSBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL0dpdCtNaWdyYXRpb24KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4gLS0KU2VudCBmcm9tIG15IHBob25lCgotLTAwMWExMTQ3NmU5ODljMWEzYjA1NWMyNGFhNWQtLQoKRnJvbSBkZXYtcmV0dXJuLTEyMzk2NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gU2VwIDExIDA5OjMxOjQxIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzk2NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAwMTQyRTE5MzAzCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMDk6MzE6NDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1MTQzNiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAwOTozMTo0MCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTEzMzIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgU2VwIDIwMTcgMDk6MzE6NDAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MTMyMCBpbnZva2VkIGJ5IHVpZCA5OSk7IDExIFNlcCAyMDE3IDA5OjMxOjQwIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAxMSBTZXAgMjAxNyAwOTozMTo0MCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEQzQ0VCMUE1MzkyCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAwOTozMTozOSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDQuMjkxClgtU3BhbS1MZXZlbDogKioqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9NC4yOTEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgSFRNTF9PQkZVU0NBVEVfMTBfMjA9MS4xNjIsIEtBTV9MT1RTT0ZIQVNIPTAuMjUsCglLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgS0ZhZ0NlRWxPTXZEIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAxMSBTZXAgMjAxNyAwOTozMTozNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXVhMC1mMTY5Lmdvb2dsZS5jb20gKG1haWwtdWEwLWYxNjkuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNy4xNjldKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQkM2NDI1RjE5RAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMDk6MzE6MzUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdWEwLWYxNjkuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgZzQ3c28xMDY4MDI5OHVhZC4wCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMDI6MzE6MzUgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9ejlvWmVrTmRLcE9EaDdVdXJad3BkVlpYWFNxOGRNS2N2WXRaVUFTb3J3az07CiAgICAgICAgYj1HbGJIYkRCaThQSmJHOUFoc1dOeDFHZkRLM2NvZFBPbWtIcG5ZSHJPVFNGdkpTSHRZOS9wNWlUQlhGVWNoVkxjcksKICAgICAgICAgbzR2em1BOU8rQUhQZGdhMjc0c3FzaFZWbHhFMUtYaTVpRHd3S29pVjlBb1hadThCTHg5dUYrWUo4bGFsQXpqZHNnQ0kKICAgICAgICAgT3FZbm1IYXVDUFRGakl0VzVQNHYwK2EyOFRwcDc4K0VDNUZxdmd0cE45WmxTMEtQeWh3cTZxYVdWVzhmUmt1dDVLeGwKICAgICAgICAgRXNSMkRLVzdHRmNPOVhRU3JLemVOV2FjbXg0ay9hdkp0Z3pyQVpjdmFUMm5Ydm00cUhuN0xNN1pQZXhYUG9qa0xEdGwKICAgICAgICAgSzhjdWp5RG5RTHJXR0JPOEdXMjFuYk5Yc28zbVRjU1htSmljNG5wZ2MwamV0TmJHNW8wN0U4VklISit5MmxNME9ZcDIKICAgICAgICAgRTkxUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9ejlvWmVrTmRLcE9EaDdVdXJad3BkVlpYWFNxOGRNS2N2WXRaVUFTb3J3az07CiAgICAgICAgYj1wV1VzZEhvT0ZTSG5lV1BtdjdpVGdkZUtldjg2Y1FldDlaQS82U2pML3hrR3liUHBjZm52YUs4TW1DS2MvTU5ZakcKICAgICAgICAgWUJKRzdkUTRxeUlBNTBZMC9EUG81bkZzbUJYallWZ1lVVTUzKzcvL0h1ekZGTE5JVDR5NENReFY4ak9oS3lERXFoM04KICAgICAgICAgZ1ZUN1hQZzRjUmdncHRRd3Zic0grYUI5TzkvdGFrZFVjRkx5Mnp4dWFzQ0VvYklaT3J3c0lISER0SE5leVdDemxPQk8KICAgICAgICAgSEdRZnd5VDlJclArZ2tRSEFLdkY0WTdSR0NLNDlFQi9EY055bTkzbklIR0dhTElRYm9zVTBiY2FJUm1abVY3RjVBWkQKICAgICAgICAgRk9TT2d4M2JLQUpTMVpHbXlrQkN0dTU2dHpwWllvb0twVi9IVEtiLzJNWjg1bkJZOTREczlWRWU4TUVTM21lT1BJemIKICAgICAgICAgTVUzZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVanVZemN6eE5Cbk95V29UeWQ2WXB4SUg4UnVvMzB3QXk0MThYZXFQWHlLVGhUZnhpcjYKCWdhUUJ4Y1lTR0dIU1B2eHBqOHdiR0dIYWJXVjJmUjVsY0FRPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQURLQ05iN3lYTk5ZL0tGa25ocUVYb3VoWmpTV2FrMFc2RWYvZ3FaN0x0ZjlVSFM3Yk5XK0pWWkVxakxCanloOTZ1bTkrMmVwdWhCVWh4SDNKajhFNmR2ZEF6az0KWC1SZWNlaXZlZDogYnkgMTAuMTc2LjMwLjcgd2l0aCBTTVRQIGlkIG03bXI0NzgwMjY2dWFrLjEzOS4xNTA1MTIyMjk0OTE1OyBNb24sCiAxMSBTZXAgMjAxNyAwMjozMTozNCAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTc2Ljg5LjYgd2l0aCBIVFRQOyBNb24sIDExIFNlcCAyMDE3IDAyOjMxOjM0IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0ErblBuTXdVWD1oRWtMS3E1NUY2SnNOQTJYUCs1QllzOG9NR0JRaistTGZuYU1UNFBBQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgogPENBS3VWekJSNUVEa1Qram1iM3BlQmZrcmthdnl2aXllRlJDbW1Zb2dPN1g3aUg9Sy1hUUBtYWlsLmdtYWlsLmNvbT4KIDxDQVBDampuRVRGWlRMbSs4cmdLVzByNHN5WFlScG9CWmpfYUpqMXgyZHZpY3pPWUhrZGdAbWFpbC5nbWFpbC5jb20+CiA8Q0ErblBuTXgwPWYrK0RRaTMzNmcwcUhnMGF0QllRTU40NkN5X3V6QyttelZORHBtQUxBQG1haWwuZ21haWwuY29tPgogPENBK25Qbk14bXNaWU9lMmMtMC1TNEE0czlWOEo4TnJmVm8tNjVDLTc3Ti1DUGdySkFmQUBtYWlsLmdtYWlsLmNvbT4gPENBK25Qbk13VVg9aEVrTEtxNTVGNkpzTkEyWFArNUJZczhvTUdCUWorLUxmbmFNVDRQQUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxMSBTZXAgMjAxNyAwMjozMTozNCAtMDcwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXpDRVl1cTQtVD1FOXItWDVoaTRDMjl2RWNVTHZiRmNDRE8tYWhCeE1ZQWt3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjA4OWUwODI4OTU3OGJiNjczYjA1NThlNjk3N2IiCgotLTA4OWUwODI4OTU3OGJiNjczYjA1NThlNjk3N2IKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCmh0dHA6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2RpZmYvNTQyYTdhODkgdG8gZGVmYW5nIHRoZQp0ZXN0IGdvaW5nIGZvcndhcmQsIHdpdGggdGhhdCBjaGFuZ2Ugb24gQXp1bCdzIFp1bHUgSkRLIDcgSSBnZXQ6CgpMaW51eCBkZGYwMzE4YjY5OGIgNC45LjQ2LW1vYnkgIzEgU01QIFRodSBTZXAgNyAwMjo1Mzo0MiBVVEMgMjAxNyB4ODZfNjQKeDg2XzY0IHg4Nl82NCBHTlUvTGludXgKQXBhY2hlIE1hdmVuIDMuNS4xICgwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzOwoyMDE3LTA5LTEwVDEyOjQyOjU0WikKTWF2ZW4gaG9tZTogL3dvcmsvYmluCkphdmEgdmVyc2lvbjogMS43LjBfMTU0LCB2ZW5kb3I6IEF6dWwgU3lzdGVtcywgSW5jLgpKYXZhIGhvbWU6IC91c3IvbGliL2p2bS96dWx1LTctYW1kNjQvanJlCkRlZmF1bHQgbG9jYWxlOiBlbl9VUywgcGxhdGZvcm0gZW5jb2Rpbmc6IFVURi04Ck9TIG5hbWU6ICJsaW51eCIsIHZlcnNpb246ICI0LjkuNDYtbW9ieSIsIGFyY2g6ICJhbWQ2NCIsIGZhbWlseTogInVuaXgiCgptdm4gdmVyaWZ5ID0+IFNVQ0NFU1MKCgpPbiAxMSBTZXB0ZW1iZXIgMjAxNyBhdCAwMjowMCwgU3RlcGhlbiBDb25ub2xseSA8CnN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgoKPiBTbyBBenVsJ3MgWnVsdSA3IGRvZXMgbm90IGhhdmUKPgo+IGNvbS5zdW4uc2NyaXB0LmphdmFzY3JpcHQuUmhpbm9TY3JpcHRFbmdpbmVGYWN0b3J5IG9yIGFueQo+IFNjcmlwdEVuZ2luZUZhY3RvcnkgaW4gdGhlIGJhc2UgY2xhc3Nsb2FkZXIuLi4KPgo+IFp1bHUgOCBoYXMgamRrLm5hc2hvcm4uYXBpLnNjcmlwdGluZy5OYXNob3JuU2NyaXB0RW5naW5lRmFjdG9yeQo+Cj4gU28gYXQgdGhpcyBwb2ludCBpbiB0aW1lLCBteSBhbmFseXNpcyBpcyB0aGF0IHRoZQo+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QgaXMgbm90IGEgdmFsaWQgdGVzdCB3aGVuIHRoZSBkZWZhdWx0Cj4gY2xhc3Nsb2FkZXIgZG9lcyBub3QgaGF2ZSBhbnkgU2NyaXB0RW5naW5lRmFjdG9yeS4uLiBJJ20gZ29pbmcgdG8gY29tbWl0Cj4gYSBmaXgsIGJ1dCB0aGlzIHNob3VsZCBub3QgaW52YWxpZGF0ZSB0aGUgMy41LjEgcmVsZWFzZQo+Cj4gT24gMTEgU2VwdGVtYmVyIDIwMTcgYXQgMDE6NTMsIFN0ZXBoZW4gQ29ubm9sbHkgPAo+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Cj4+IFdpdGggaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1pbnRlZ3JhdGlvbi10ZXN0aW5nLwo+PiBjb21taXQvYTA4ZDY1YmZiNWZlZGVjOWY2ODRjMTNiZjVhMGRjY2I5NmY1Y2M1NiBJIHdhcyBhYmxlIHRvIGdldAo+PiBNaWNoYWVsJ3MgdGVzdCBmYWlsdXJlczoKPj4KPj4gQXBhY2hlIE1hdmVuIDMuNS4xICgwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzOwo+PiAyMDE3LTA5LTEwVDEyOjQyOjU0WikKPj4gTWF2ZW4gaG9tZTogL3dvcmsvYmluCj4+IEphdmEgdmVyc2lvbjogMS43LjBfMTU0LCB2ZW5kb3I6IEF6dWwgU3lzdGVtcywgSW5jLgo+PiBKYXZhIGhvbWU6IC91c3IvbGliL2p2bS96dWx1LTctYW1kNjQvanJlCj4+IERlZmF1bHQgbG9jYWxlOiBlbl9VUywgcGxhdGZvcm0gZW5jb2Rpbmc6IFVURi04Cj4+IE9TIG5hbWU6ICJsaW51eCIsIHZlcnNpb246ICI0LjkuNDYtbW9ieSIsIGFyY2g6ICJhbWQ2NCIsIGZhbWlseTogInVuaXgiCj4+Cj4+Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRlc3Qgc2V0OiBvcmcuYXBhY2hlLm1hdmVuLmNsYXNzcmVhbG0uRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdAo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiBUZXN0cyBydW46IDUsIEZhaWx1cmVzOiA1LCBFcnJvcnM6IDAsIFNraXBwZWQ6IDAsIFRpbWUgZWxhcHNlZDogMi4xMjggc2VjCj4+IDw8PCBGQUlMVVJFISAtIGluIG9yZy5hcGFjaGUubWF2ZW4uY2xhc3NyZWFsbS5EZQo+PiBmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdAo+PiB0ZXN0TU5HNjI3NV9tYXZlbkFwaVJlYWxtRGVmYXVsdFBhcmVudENsYXNzTG9hZGVyKG9yZy4KPj4gYXBhY2hlLm1hdmVuLmNsYXNzcmVhbG0uRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdCkgIFRpbWUgZWxhcHNlZDoKPj4gMS4xMiBzZWMgIDw8PCBGQUlMVVJFIQo+PiBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0aW9uRmFpbGVkRXJyb3I6IG51bGwKPj4gYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5mYWlsKEFzc2VydC5qYXZhOjU1KQo+PiBhdCBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0LmFzc2VydFRydWUoQXNzZXJ0LmphdmE6MjIpCj4+IGF0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQuYXNzZXJ0VHJ1ZShBc3NlcnQuamF2YTozMSkKPj4gYXQganVuaXQuZnJhbWV3b3JrLlRlc3RDYXNlLmFzc2VydFRydWUoVGVzdENhc2UuamF2YToyMDEpCj4+IGF0IG9yZy5hcGFjaGUubWF2ZW4uY2xhc3NyZWFsbS5EZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlcwo+PiB0TU5HNjI3NV9tYXZlbkFwaVJlYWxtRGVmYXVsdFBhcmVudENsYXNzTG9hZGVyKERlZmF1bHRDbGFzc1IKPj4gZWFsbU1hbmFnZXJUZXN0LmphdmE6OTEpCj4+Cj4+IHRlc3RNTkc2Mjc1X2NvcmVSZWFsbURlZmF1bHRQYXJlbnRDbGFzc0xvYWRlcihvcmcuYXBhY2hlLgo+PiBtYXZlbi5jbGFzc3JlYWxtLkRlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QpICBUaW1lIGVsYXBzZWQ6IDAuMjcxIHNlYwo+PiAgPDw8IEZBSUxVUkUhCj4+IGp1bml0LmZyYW1ld29yay5Bc3NlcnRpb25GYWlsZWRFcnJvcjogbnVsbAo+PiBhdCBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0LmZhaWwoQXNzZXJ0LmphdmE6NTUpCj4+IGF0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQuYXNzZXJ0VHJ1ZShBc3NlcnQuamF2YToyMikKPj4gYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5hc3NlcnRUcnVlKEFzc2VydC5qYXZhOjMxKQo+PiBhdCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2UuYXNzZXJ0VHJ1ZShUZXN0Q2FzZS5qYXZhOjIwMSkKPj4gYXQgb3JnLmFwYWNoZS5tYXZlbi5jbGFzc3JlYWxtLkRlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzCj4+IHRNTkc2Mjc1X2NvcmVSZWFsbURlZmF1bHRQYXJlbnRDbGFzc0xvYWRlcihEZWZhdWx0Q2xhc3NSZWFsbQo+PiBNYW5hZ2VyVGVzdC5qYXZhOjk5KQo+Pgo+PiB0ZXN0TU5HNjI3NV9leHRlbnNpb25SZWFsbURlZmF1bHRQYXJlbnRDbGFzc0xvYWRlcihvcmcuCj4+IGFwYWNoZS5tYXZlbi5jbGFzc3JlYWxtLkRlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QpICBUaW1lIGVsYXBzZWQ6Cj4+IDAuMjUxIHNlYyAgPDw8IEZBSUxVUkUhCj4+IGp1bml0LmZyYW1ld29yay5Bc3NlcnRpb25GYWlsZWRFcnJvcjogbnVsbAo+PiBhdCBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0LmZhaWwoQXNzZXJ0LmphdmE6NTUpCj4+IGF0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQuYXNzZXJ0VHJ1ZShBc3NlcnQuamF2YToyMikKPj4gYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5hc3NlcnRUcnVlKEFzc2VydC5qYXZhOjMxKQo+PiBhdCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2UuYXNzZXJ0VHJ1ZShUZXN0Q2FzZS5qYXZhOjIwMSkKPj4gYXQgb3JnLmFwYWNoZS5tYXZlbi5jbGFzc3JlYWxtLkRlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzCj4+IHRNTkc2Mjc1X2V4dGVuc2lvblJlYWxtRGVmYXVsdFBhcmVudENsYXNzTG9hZGVyKERlZmF1bHRDbGFzcwo+PiBSZWFsbU1hbmFnZXJUZXN0LmphdmE6NzMpCj4+Cj4+IHRlc3RNTkc2Mjc1X3BsdWdpblJlYWxtRGVmYXVsdFBhcmVudENsYXNzTG9hZGVyKG9yZy5hcGFjaGUuCj4+IG1hdmVuLmNsYXNzcmVhbG0uRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdCkgIFRpbWUgZWxhcHNlZDogMC4yNDQgc2VjCj4+ICA8PDwgRkFJTFVSRSEKPj4ganVuaXQuZnJhbWV3b3JrLkFzc2VydGlvbkZhaWxlZEVycm9yOiBudWxsCj4+IGF0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQuZmFpbChBc3NlcnQuamF2YTo1NSkKPj4gYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5hc3NlcnRUcnVlKEFzc2VydC5qYXZhOjIyKQo+PiBhdCBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0LmFzc2VydFRydWUoQXNzZXJ0LmphdmE6MzEpCj4+IGF0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZS5hc3NlcnRUcnVlKFRlc3RDYXNlLmphdmE6MjAxKQo+PiBhdCBvcmcuYXBhY2hlLm1hdmVuLmNsYXNzcmVhbG0uRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXMKPj4gdE1ORzYyNzVfcGx1Z2luUmVhbG1EZWZhdWx0UGFyZW50Q2xhc3NMb2FkZXIoRGVmYXVsdENsYXNzUmVhCj4+IGxtTWFuYWdlclRlc3QuamF2YTo2MikKPj4KPj4gdGVzdE1ORzYyNzVfcHJvamVjdFJlYWxtRGVmYXVsdFBhcmVudENsYXNzTG9hZGVyKG9yZy5hcGFjaGUuCj4+IG1hdmVuLmNsYXNzcmVhbG0uRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdCkgIFRpbWUgZWxhcHNlZDogMC4yNDIgc2VjCj4+ICA8PDwgRkFJTFVSRSEKPj4ganVuaXQuZnJhbWV3b3JrLkFzc2VydGlvbkZhaWxlZEVycm9yOiBudWxsCj4+IGF0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQuZmFpbChBc3NlcnQuamF2YTo1NSkKPj4gYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5hc3NlcnRUcnVlKEFzc2VydC5qYXZhOjIyKQo+PiBhdCBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0LmFzc2VydFRydWUoQXNzZXJ0LmphdmE6MzEpCj4+IGF0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZS5hc3NlcnRUcnVlKFRlc3RDYXNlLmphdmE6MjAxKQo+PiBhdCBvcmcuYXBhY2hlLm1hdmVuLmNsYXNzcmVhbG0uRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXMKPj4gdE1ORzYyNzVfcHJvamVjdFJlYWxtRGVmYXVsdFBhcmVudENsYXNzTG9hZGVyKERlZmF1bHRDbGFzc1JlCj4+IGFsbU1hbmFnZXJUZXN0LmphdmE6ODMpCj4+Cj4+IGludmVzdGlnYXRpbmcuLi4KPj4KPj4gT24gMTEgU2VwdGVtYmVyIDIwMTcgYXQgMDE6NDQsIFN0ZXBoZW4gQ29ubm9sbHkgPAo+PiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4KPj4+IEJ1aWxkaW5nIHRoZSBzb3VyY2UgYnVuZGxlcyB3aXRoIHRoZSBiaW5hcnkgYnVuZGxlcyBpbiB0aGUgc3RhZ2luZyByZXBvCj4+PiB1c2luZyB0aGUgRG9ja2VyZmlsZSBlbnZpcm9ubWVudHMgaW4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlCj4+PiBuLWludGVncmF0aW9uLXRlc3RpbmcvdHJlZS9tYXN0ZXIvZW52aXJvbm1lbnRzCj4+Pgo+Pj4gRGViaWFuIEpESyA3Cj4+PiA9PT09PT09PT09PQo+Pj4KPj4+IExpbnV4IDY1ZmI4MzJkZmU0MyA0LjkuNDYtbW9ieSAjMSBTTVAgVGh1IFNlcCA3IDAyOjUzOjQyIFVUQyAyMDE3IHg4Nl82NAo+Pj4gR05VL0xpbnV4Cj4+PiBBcGFjaGUgTWF2ZW4gMy41LjEgKDA5NGU0ZTMxYTVhZjU1YmIxN2JlODc2NzVkYTQxZDlhZWNhMDYyZjM7Cj4+PiAyMDE3LTA5LTEwVDEyOjQyOjU0WikKPj4+IE1hdmVuIGhvbWU6IC93b3JrL2Jpbgo+Pj4gSmF2YSB2ZXJzaW9uOiAxLjcuMF8xNTEsIHZlbmRvcjogT3JhY2xlIENvcnBvcmF0aW9uCj4+PiBKYXZhIGhvbWU6IC91c3IvbGliL2p2bS9qYXZhLTctb3Blbmpkay1hbWQ2NC9qcmUKPj4+IERlZmF1bHQgbG9jYWxlOiBlbiwgcGxhdGZvcm0gZW5jb2Rpbmc6IFVURi04Cj4+PiBPUyBuYW1lOiAibGludXgiLCB2ZXJzaW9uOiAiNC45LjQ2LW1vYnkiLCBhcmNoOiAiYW1kNjQiLCBmYW1pbHk6ICJ1bml4Igo+Pj4KPj4+IG12biB2ZXJpZnkgPT4gU1VDQ0VTUwo+Pj4KPj4+IERlYmlhbiBKREsgOAo+Pj4gPT09PT09PT09PT0KPj4+Cj4+PiBMaW51eCAxMWVmMWMxMTRiNmIgNC45LjQ2LW1vYnkgIzEgU01QIFRodSBTZXAgNyAwMjo1Mzo0MiBVVEMgMjAxNyB4ODZfNjQKPj4+IEdOVS9MaW51eAo+Pj4gQXBhY2hlIE1hdmVuIDMuNS4xICgwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzOwo+Pj4gMjAxNy0wOS0xMFQxMjo0Mjo1NFopCj4+PiBNYXZlbiBob21lOiAvd29yay9iaW4KPj4+IEphdmEgdmVyc2lvbjogMS44LjBfMTQxLCB2ZW5kb3I6IE9yYWNsZSBDb3Jwb3JhdGlvbgo+Pj4gSmF2YSBob21lOiAvdXNyL2xpYi9qdm0vamF2YS04LW9wZW5qZGstYW1kNjQvanJlCj4+PiBEZWZhdWx0IGxvY2FsZTogZW4sIHBsYXRmb3JtIGVuY29kaW5nOiBVVEYtOAo+Pj4gT1MgbmFtZTogImxpbnV4IiwgdmVyc2lvbjogIjQuOS40Ni1tb2J5IiwgYXJjaDogImFtZDY0IiwgZmFtaWx5OiAidW5peCIKPj4+Cj4+PiBtdm4gdmVyaWZ5ID0+IFNVQ0NFU1MKPj4+Cj4+PiBGZWRvcmEgSkRLIDgKPj4+ID09PT09PT09PT09Cj4+Pgo+Pj4gTGludXggNTQyMTFhMGU2OTRlIDQuOS40Ni1tb2J5ICMxIFNNUCBUaHUgU2VwIDcgMDI6NTM6NDIgVVRDIDIwMTcgeDg2XzY0Cj4+PiB4ODZfNjQgeDg2XzY0IEdOVS9MaW51eAo+Pj4gQXBhY2hlIE1hdmVuIDMuNS4xICgwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzOwo+Pj4gMjAxNy0wOS0xMFQxMjo0Mjo1NFopCj4+PiBNYXZlbiBob21lOiAvd29yay9iaW4KPj4+IEphdmEgdmVyc2lvbjogMS44LjBfMTQ0LCB2ZW5kb3I6IE9yYWNsZSBDb3Jwb3JhdGlvbgo+Pj4gSmF2YSBob21lOiAvdXNyL2xpYi9qdm0vamF2YS0xLjguMC1vcGVuamRrLTEuOC4wLjE0NC01LmIwMS5mYzI2Lng4Nl82NC8KPj4+IGpyZQo+Pj4gRGVmYXVsdCBsb2NhbGU6IGVuX1VTLCBwbGF0Zm9ybSBlbmNvZGluZzogQU5TSV9YMy40LTE5NjgKPj4+IE9TIG5hbWU6ICJsaW51eCIsIHZlcnNpb246ICI0LjkuNDYtbW9ieSIsIGFyY2g6ICJhbWQ2NCIsIGZhbWlseTogInVuaXgiCj4+Pgo+Pj4gbXZuIHZlcmlmeSA9PiBTVUNDRVNTCj4+Pgo+Pj4gSUJNIEpESyA4Cj4+PiA9PT09PT09PQo+Pj4KPj4+IExpbnV4IDE5OTYzMWVkY2VlZCA0LjkuNDYtbW9ieSAjMSBTTVAgVGh1IFNlcCA3IDAyOjUzOjQyIFVUQyAyMDE3IHg4Nl82NAo+Pj4geDg2XzY0IHg4Nl82NCBHTlUvTGludXgKPj4+IEFwYWNoZSBNYXZlbiAzLjUuMSAoMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMzsKPj4+IDIwMTctMDktMTBUMTI6NDI6NTRaKQo+Pj4gTWF2ZW4gaG9tZTogL3dvcmsvYmluCj4+PiBKYXZhIHZlcnNpb246IDEuOC4wLCB2ZW5kb3I6IElCTSBDb3Jwb3JhdGlvbgo+Pj4gSmF2YSBob21lOiAvb3B0L2libS9qYXZhL2pyZQo+Pj4gRGVmYXVsdCBsb2NhbGU6IGVuX1VTLCBwbGF0Zm9ybSBlbmNvZGluZzogQU5TSV9YMy40LTE5NjgKPj4+IE9TIG5hbWU6ICJsaW51eCIsIHZlcnNpb246ICI0LjkuNDYtbW9ieSIsIGFyY2g6ICJhbWQ2NCIsIGZhbWlseTogInVuaXgiCj4+Pgo+Pj4gbXZuIHZlcmlmeSA9PiBTVUNDRVNTCj4+Pgo+Pj4gQXN1bCBadWx1IEpESyA4Cj4+PiA9PT09PT09PT09PT09Cj4+Pgo+Pj4gTGludXggMTBlOGY0ZTQ2MTM4IDQuOS40Ni1tb2J5ICMxIFNNUCBUaHUgU2VwIDcgMDI6NTM6NDIgVVRDIDIwMTcgeDg2XzY0Cj4+PiB4ODZfNjQgeDg2XzY0IEdOVS9MaW51eAo+Pj4gQXBhY2hlIE1hdmVuIDMuNS4xICgwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzOwo+Pj4gMjAxNy0wOS0xMFQxMjo0Mjo1NFopCj4+PiBNYXZlbiBob21lOiAvd29yay9iaW4KPj4+IEphdmEgdmVyc2lvbjogMS44LjBfMTQ0LCB2ZW5kb3I6IEF6dWwgU3lzdGVtcywgSW5jLgo+Pj4gSmF2YSBob21lOiAvdXNyL2xpYi9qdm0venVsdS04LWFtZDY0L2pyZQo+Pj4gRGVmYXVsdCBsb2NhbGU6IGVuX1VTLCBwbGF0Zm9ybSBlbmNvZGluZzogVVRGLTgKPj4+IE9TIG5hbWU6ICJsaW51eCIsIHZlcnNpb246ICI0LjkuNDYtbW9ieSIsIGFyY2g6ICJhbWQ2NCIsIGZhbWlseTogInVuaXgiCj4+Pgo+Pj4gbXZuIHZlcmlmeSA9PiBTVUNDRVNTCj4+Pgo+Pj4gSWYgSSBnZXQgdGltZSBsYXRlciBJJ2xsIHJ1biB0aGUgaW50ZWdyYXRpb24gdGVzdHMuCj4+Pgo+Pj4gT24gMTEgU2VwdGVtYmVyIDIwMTcgYXQgMDA6MjAsIERhbiBUcmFuIDxkYW50cmFuQGdtYWlsLmNvbT4gd3JvdGU6Cj4+Pgo+Pj4+IEZhbHNlIGFsYXJtLCBJIG1pc3NlZCBjb25maWd1cmUgZ2xvYmFsIHNldHRpbmdzLnhtbCwgaXQgaXMgbWlzc2luZyB0aGUKPj4+PiBkZWZhdWx0IHJlcG9zaXRvcnkgc2V0dXAKPj4+Pgo+Pj4+IC1ECj4+Pj4KPj4+PiBPbiBTdW4sIFNlcCAxMCwgMjAxNyBhdCAxMTo0NyBQTSwgVGlib3IgRGlnYW5hIDwKPj4+PiB0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+Cj4+Pj4gd3JvdGU6Cj4+Pj4KPj4+PiA+ICsxOgo+Pj4+ID4gMy41LjEgd29ya3MgaW4gbXkgcHJvamVjdCBsaWtlIGEgY2hhcm0gOy0pCj4+Pj4gPgo+Pj4+ID4gT24gU3VuLCBTZXAgMTAsIDIwMTcgYXQgNTozOSBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4+Pj4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4+PiA+Cj4+Pj4gPiA+IEhpLAo+Pj4+ID4gPgo+Pj4+ID4gPiBXZSBzb2x2ZWQgMjUgaXNzdWVzOgo+Pj4+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4+Pj4gPiA+IHZlcnNpb249MTIzMzg5NjQmc3R5bGVOYW1lPVRleHQmcHJvamVjdElkPTEyMzE2OTIyCj4+Pj4gPiA+Cj4+Pj4gPiA+IFRoZXJlIGFyZSAzNTAgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKPj4+PiA+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPXByb2plY3QlMjAlCj4+Pj4gPiA+IDNEJTIwTU5HJTIwQU5EJTIwcmVzb2x1dGlvbiUyMCUzRCUyMFVucmVzb2x2ZWQlMjBPUkRFUiUKPj4+PiA+ID4gMjBCWSUyMGR1ZSUyMEFTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMGNyZWF0ZWQlMjBBU0MKPj4+PiA+ID4KPj4+PiA+ID4gU3RhZ2luZyByZXBvOgo+Pj4+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY0Lwo+Pj4+ID4gPgo+Pj4+ID4gPiBUaGUgZGlzdHJpYnV0YWJsZSBiaW5hcmllcyBhbmQgc291cmNlcyBjYW4gYmUgZm91bmQgaGVyZToKPj4+PiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4+Pj4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvCj4+Pj4gPiA+Cj4+Pj4gPiA+IFNwZWNpZmljYWxseSB0aGUgemlwLCB0YXJiYWxsIGFuZCBzb3VyY2UgYXJjaGl2ZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4+Pj4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+Pj4+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1iaW4uemlwCj4+Pj4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+Pj4+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS0KPj4+PiBiaW4udGFyLmd6Cj4+Pj4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+Pj4+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwCj4+Pj4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+Pj4+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS0KPj4+PiBzcmMudGFyLmd6Cj4+Pj4gPiA+Cj4+Pj4gPiA+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+Pj4+ID4gPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5neiBzaGExOiA5ZWI4MjFmMTUzYzc2NjcxOTRhYTExY2NkMDk5YjcKPj4+PiA+ID4gYmQyMDU5NTYwZAo+Pj4+ID4gPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcDogc2hhMTogMTIxZDU0YjA0NTM4MGE4YTQ4OTVlYjEzNzk3MGFiCj4+Pj4gPiA2OWU2OThlYjBlCj4+Pj4gPiA+Cj4+Pj4gPiA+IEdpdCB0YWc6Cj4+Pj4gPiA+IGh0dHBzOi8vZ2l0LXdpcC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPW1hdmVuLmdpdDthPWNvbW1pdDtoPQo+Pj4+ID4gPiAwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzCj4+Pj4gPiA+Cj4+Pj4gPiA+IFN0YWdpbmcgc2l0ZToKPj4+PiA+ID4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2NvbXBvbmVudHMvcmVmLzMtTEFURVNULwo+Pj4+ID4gPgo+Pj4+ID4gPiBWb3RlIG9wZW4gZm9yIDcyIGhvdXJzLgo+Pj4+ID4gPgo+Pj4+ID4gPiBbIF0gKzEKPj4+PiA+ID4gWyBdICswCj4+Pj4gPiA+IFsgXSAtMQo+Pj4+ID4gPgo+Pj4+ID4gPiBUaGFua3MsCj4+Pj4gPiA+Cj4+Pj4gPiA+IFN0ZXBoZW4uCj4+Pj4gPiA+Cj4+Pj4gPgo+Pj4+ID4KPj4+PiA+Cj4+Pj4gPiAtLQo+Pj4+ID4gQ2hlZXJzCj4+Pj4gPiBUaWJvcgo+Pj4+ID4KPj4+Pgo+Pj4KPj4+Cj4+Cj4KCi0tMDg5ZTA4Mjg5NTc4YmI2NzNiMDU1OGU2OTc3Yi0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NDM2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBOb3YgIDYgMDk6MDE6MDAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDM2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDUwRkI0MTczMjEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAgNiBOb3YgMjAxNyAwOTowMTowMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDIzNjcyIGludm9rZWQgYnkgdWlkIDUwMCk7IDYgTm92IDIwMTcgMDk6MDE6MDAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIzNTkxIGludm9rZWQgYnkgdWlkIDUwMCk7IDYgTm92IDIwMTcgMDk6MDE6MDAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMzU3OSBpbnZva2VkIGJ5IHVpZCA5OSk7IDYgTm92IDIwMTcgMDk6MDA6NTkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDA2IE5vdiAyMDE3IDA5OjAwOjU5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQzlGODIxODA3NzgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICA2IE5vdiAyMDE3IDA5OjAwOjU4ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC4wOTkKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC4wOTkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgNkViLVhLeVNkb3hWIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAgNiBOb3YgMjAxNyAwOTowMDo1MiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdyMC1mMTc4Lmdvb2dsZS5jb20gKG1haWwtd3IwLWYxNzguZ29vZ2xlLmNvbSBbMjA5Ljg1LjEyOC4xNzhdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMjcxNTk2MEQyOAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgIDYgTm92IDIwMTcgMDk6MDA6NTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd3IwLWYxNzguZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgcTY2c280MjM0ODAyd3JiLjEzCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMDYgTm92IDIwMTcgMDE6MDA6NTIgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9eUcrWG13cmx5emNLd0ZRa3N5dFJrUzUybnNBSWNOSEgzYlAvdklHd2g4MD07CiAgICAgICAgYj1oVHFQY0xmMW5jeHAxUFRLT0ZQdk1EWDU0ZFM0eFIvdzBneURvbTY3QXlNYVE5dDlSbEE3VDA0Z0t4dHZCVHpoYjYKICAgICAgICAgR0IvQzZnWkViTUwwcTBYc3RoOXRjUXlGcUJpS3kzVkZlb1NDSzJZVW5ZbmcwcDYwT3dDVE9vMklWWXpBWk9ueXBTQTAKICAgICAgICAgem5KN3hldW4yQVN1MzRFZUlpN3dFZk5QcTFZUVVPeVZVRHg3MzRzZE9nMmVyVWZINHdsRlBBSmpCWkNYNzFwTHBHUzQKICAgICAgICAgVllNeGl0NHdrN2xxVTBQVHNtYStUU3lmUUthSWtUaXNVamh3WXNxUWE1UDdYMm1YRmdQQzVtd0JtODNCbGhwdXF5UVYKICAgICAgICAgRDh5bGVRcU85aGFTaXBJQk11RkJkOEh6UG93ZlZQRkg1VHdNZCtSOFREZmhVMmVGRU03aW9EZVhja3NDSldXb2dsUVUKICAgICAgICAgRU85Zz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9eUcrWG13cmx5emNLd0ZRa3N5dFJrUzUybnNBSWNOSEgzYlAvdklHd2g4MD07CiAgICAgICAgYj1rVjNIdWpnOVhva3ppellYZ1NEUC9WY1hNU0taVDRmek5zc1RWb2hoMVJOMG5LT2M3OHpxOEoyNms2ZTVjMlFWeXQKICAgICAgICAgc2VqTk9QWWQ4TjNkMUtKVDNqbHFrSHNQWi85ak56SUhFeDcwbUxjRWlSS1dtTUZpY0h6VUlIRXRaS2hGZGUrT1dNcDEKICAgICAgICAgV1Juc2VFM3hyb0pRSUE1eWZNWjZKMnZYNmkrTjd1T011T3pTUHI5RE1DWlRjbSs5d2JPUzlsc2h2WCtLSEhsbGR3VmwKICAgICAgICAgRnJIdzNxb2lub1VRQnZ3dUg2Tis2M0ZCOVVQSnp6SmJreTZrcVd4cGprQ1JwMkV1Q2FGcTdVQk1YOXVqLzVTS1hiTlIKICAgICAgICAgV2NlSlpFYnNtcnV0dklaN0dCTmUvd0RGeG00YWlFT3FTYWFoY3k3RHJDbXBwa2FGSE1yS3Q3LzJWRW1HT3JuT3J4Um4KICAgICAgICAgbUtwZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhWFJFQ01INnRidlFOaTFqUmFoVGdqREpFUWh0TVVaUHdqcDdpYmFjWXIxN05CRTBzREsKCTQrMWhoRm1RT3I3YnhPZEJKNHR3cnBhRVpWUE11YWhDRFVxM3p6UTEvdz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtTQVhZdWhxVytBUU1BdVViZDBvbHc1YTVnNlFGNzdBcEdpSW1YMHF5SktWWmpZaldEejBoVlBJb1E5VVJNaGpXSGZIOEQyYmUzZldQMU5tR3pwYWxRPQpYLVJlY2VpdmVkOiBieSAxMC4yMjMuMTY2LjE0NiB3aXRoIFNNVFAgaWQgdDE4bXIxMjU2MjQwMHdyYy42NC4xNTA5OTU4ODQ1OTUyOwogTW9uLCAwNiBOb3YgMjAxNyAwMTowMDo0NSAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMjIzLjE4Ny44IHdpdGggSFRUUDsgTW9uLCA2IE5vdiAyMDE3IDAxOjAwOjQ0IC0wODAwIChQU1QpCkluLVJlcGx5LVRvOiA8Q0FDTEU9N01WaFdzZkVqeWtWUXNBQ3UzdHVYLV9RTld2QlJIa1JNTCtBa0ttblczWGNnQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXdFSDlaMm15cDcxdWFTcmRjeUxKUkZyRS1WcnQyMDE5MXJkMDFoK1VmaGp3QG1haWwuZ21haWwuY29tPgogPENBTFlHbTF4YjFNT0hwc1grN0VHOHg0YmQtekhaK085NWUyWTVZMkR1ZFppRUU2ZU5DQUBtYWlsLmdtYWlsLmNvbT4KIDxvcC55ODY3d3hoNGtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4gPEU5OUEwNEY2LUI3OEUtNEI0Ri04MkU5LUM4OUE4RkI3NDRERUB0YWxpb3MuY29tPgogPDU5ZmY4MjU4LmVjYjJkZjBhLjVkMzE2LmJjODlAbXguZ29vZ2xlLmNvbT4gPENBQ0xFPTdNS0xfNkNOdlJCblZPNmtyRnhITTg2ZWg4OG9aUU9ySC12dHF0c3EtUVFFQUBtYWlsLmdtYWlsLmNvbT4KIDxDQStuUG5NeHNNMU94aVpRdW45dmpLSGJ3QmdNaXdyWUVqYUI1WDRYbkZtR0xlVFpZRUFAbWFpbC5nbWFpbC5jb20+IDxDQUNMRT03TVZoV3NmRWp5a1ZRc0FDdTN0dVgtX1FOV3ZCUkhrUk1MK0FrS21uVzNYY2dAbWFpbC5nbWFpbC5jb20+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IE1vbiwgNiBOb3YgMjAxNyAwMTowMDo0NCAtMDgwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXpGVkRUWXlyRkJiVTRiejFnM2FLNkdBblVvcjVMZGFCZ3R5RkdUVTNvcG1nQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogTWF2ZW4gNC4wLjAKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDc2ZTk4YTM3OTYxMDU1ZDRjYjAxOCIKCi0tMDAxYTExNDc2ZTk4YTM3OTYxMDU1ZDRjYjAxOApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpGWUkgdGhpcyBzZWVtcyBzb21ldGhpbmcgdGhhdCBkb2VzbnQgbmVlZCB0byB3YWl0IGZvciA0LjAuMAoKSWYgdGhlcmUgd2FzIGEgUFIgZm9yIHRoaXMgYW5kIGVub3VnaCBvdGhlciBzbWFsbCBjaGFuZ2VzIEknZCBiZSBoYXBweSB0bwpyb2xsIGEgMy41LjMKCkRvIHlvdSB3YW50IHRvIHRha2UgYSBzdGFiIGF0IGl0PwoKKG9ubHkgY29tcGxleGl0eSBtaWdodCBiZSBwYXJhbGxlbCBleGVjdXRpb24sIGJ1dCB3ZSBjb3VsZCBqdXN0IHJlcG9ydCB0aGUKbGluZWFyIHBsYW4gbnVtYmVyIGFuZCB3aGVuIGluIHBhcmFsbGVsIGFsc28gbG9nIGhvdyBtYW55IGhhdmUgY29tcGxldGVkKQoKT24gNiBOb3ZlbWJlciAyMDE3IGF0IDAwOjUxLCBSb21haW4gTWFubmktQnVjYXUgPHJtYW5uaWJ1Y2F1QGdtYWlsLmNvbT4Kd3JvdGU6Cgo+IGluZGVlZDogaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjMwMgo+Cj4gUm9tYWluIE1hbm5pLUJ1Y2F1Cj4gQHJtYW5uaWJ1Y2F1IHwgIEJsb2cgfCBPbGQgQmxvZyB8IEdpdGh1YiB8IExpbmtlZEluCj4KPgo+IDIwMTctMTEtMDYgOTozNyBHTVQrMDE6MDAgU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLgo+IGNvbT46Cj4gPiBPbiBNb24gNiBOb3YgMjAxNyBhdCAwODoxMywgUm9tYWluIE1hbm5pLUJ1Y2F1IDxybWFubmlidWNhdUBnbWFpbC5jb20+Cj4gPiB3cm90ZToKPiA+Cj4gPj4gRm9yZ290IGEgdXNlciB3aXNoIGZlYXR1cmU6IHNvbWUgcHJvZ3Jlc3MgbG9nZ2luZyBzb21laG93LiBPbiAiYmlnIgo+IHByb2plY3QKPiA+PiAoYWN0dWFsbHkgb24gcHJvamVjdCBsb2dnaW5nIGEgbG90KSB5b3UgYXJlIGVhc2lseSBsb3N0IG9uIHRoZSBwcm9ncmVzPQpzLAo+ID4+IHlvdSBrbm93IGN1cnJlbnQgbW9kdWxlIGlzIFggYnV0IHlvdSBkb24ndCBrbm93IGFueW1vcmUgaWYgaXQgaXMgNTAlIG89CmYKPiB0aGUKPiA+PiBidWlsZCBvciA1JS4gSGF2aW5nIGF0IGxlYXN0ICJtb2R1bGUgWCAvIFkiIHdvdWxkIGJlIGhlbHBmdWwuIElNTyBpdCBpPQpzCj4gPj4gZW5vdWdoIHRvIGxvZyBpdCB3aXRoIHRoZSBtb2R1bGUgbmFtZToKPiA+Pgo+ID4+IFtJTkZPXQo+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0tLS0tLS0tLS0tLQo+ID4+IFtJTkZPXSBCdWlsZGluZyBGb28gMS4wLjAtU05BUFNIT1QKPiA+PiBbSU5GT10KPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtLS0tLS0tLS0tLS0KPiA+PiBbSU5GT10gTW9kdWxlIDEwIC8gMTAwCj4gPj4KPiA+Cj4gPiBDYW4geW91IGZpbGUgYSBKSVJBPwo+ID4KPiA+Pgo+ID4+Cj4gPj4KPiA+Pgo+ID4+Cj4gPj4gUm9tYWluIE1hbm5pLUJ1Y2F1Cj4gPj4gQHJtYW5uaWJ1Y2F1IDxodHRwczovL3R3aXR0ZXIuY29tL3JtYW5uaWJ1Y2F1PiB8ICBCbG9nCj4gPj4gPGh0dHBzOi8vcm1hbm5pYnVjYXUubWV0YXdlcngubmV0Lz4gfCBPbGQgQmxvZwo+ID4+IDxodHRwOi8vcm1hbm5pYnVjYXUud29yZHByZXNzLmNvbT4gfCBHaXRodWIgPAo+ID4+IGh0dHBzOi8vZ2l0aHViLmNvbS9ybWFubmlidWNhdT4gfAo+ID4+IExpbmtlZEluIDxodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vcm1hbm5pYnVjYXU+Cj4gPj4KPiA+PiAyMDE3LTExLTA1IDIyOjI3IEdNVCswMTowMCBCZXJuZCBFY2tlbmZlbHMgPGVja2lAenVzYW1tZW5rdW5mdC5uZXQ+Ogo+ID4+Cj4gPj4gPiBIZWxsbywKPiA+PiA+Cj4gPj4gPgo+ID4+ID4KPiA+PiA+IEFkZGluZyBhbm5vdGF0aW9ucyBhbmQgcHJvY2Vzc29yIGFzIGEgY29tcGlsZXRpbWUgZGVwZW5kZW5jeSBzb3VuZHMKPiBsaWtlCj4gPj4gYQo+ID4+ID4gcmVhc29uYWJsZSB0aGluZy4gSXQgd291bGQgaG93ZXZlciBiZSBjb29sIGlmIHRoZSBKQVIgY291bGQgZGVzY3JpYmUKPiA+PiB3aGljaAo+ID4+ID4gcGFja2FnZSBuZWVkcyB0byBnbyBvbiB0aGUgY2xhc3NwYXRoIGFuZCB3aGljaCBpcyBwcm9jZXNzb3IgaW1wbC4gKGE9Cm5kCj4gPj4gPiBoYXZpbmcgYSBkaWZmZXJlbnQgYXJ0aWZhY3QgZm9yIHJ1bnRpbWUpCj4gPj4gPgo+ID4+ID4KPiA+PiA+Cj4gPj4gPiBHcnVzcwo+ID4+ID4KPiA+PiA+IEJlcm5kCj4gPj4gPgo+ID4+ID4KPiA+PiA+Cj4gPj4gPiAqVm9uOiAqTWFyayBEZXJyaWN1dHQgPG1hcmtAdGFsaW9zLmNvbT4KPiA+PiA+ICpHZXNlbmRldDogKlNvbm50YWcsIDUuIE5vdmVtYmVyIDIwMTcgMjI6MjAKPiA+PiA+ICpBbjogKk1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Cj4gPj4gPiAqQmV0cmVmZjogKlJlOiBNYXZlbiA0LjAuMAo+ID4+ID4KPiA+PiA+Cj4gPj4gPgo+ID4+ID4gT24gNSBOb3YgMjAxNywgYXQgMTA6NDIsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+ID4+ID4KPiA+PiA+IEkgd291bGQgbGlrZSB0byBkcm9wIHN0cmljdCBzY29wZXMgaW4gZ2VuZXJhbCBhbmQgZ2l2ZSBwbHVnaW5zIHRoZQo+ID4+ID4gb3Bwb3J0dW5pdHkgdG8gZGVwZW5kIG9uCj4gPj4gPiBzcGVjaWZpYyBzY29wZWQgZGVwZW5kZW5jaWVzLgo+ID4+ID4KPiA+PiA+IEhvdyB3b3VsZCB0aGlzIGhlbHAgd2l0aCBhbm5vdGF0aW9ucyB0aG8/IFRoZSBtYWluIGlzc3VlIEknbSBmYWNpbmcgPQppcwo+ID4+ID4gaGF2aW5nIGEgc3RhbmRhcmQgbS1jLXAgcGx1Z2luIGRlZmluaXRpb24gaW4gYSBwYXJlbnQgKCBvciB0aWxlICkgYnU9CnQKPiA+PiA+IG5lZWRpbmcgZGlmZmVyZW50IGFubm90YXRpb24gcHJvY2Vzc29ycyB1c2VkIHBlciBwcm9qZWN0LiBXaXRoIHRoZQo+ID4+IGN1cnJlbnQKPiA+PiA+IHBsdWdpbiwgdGhpcyBtZWFucyBlaXRoZXIgbGlzdGluZyB0aGVtIGFzIHN0YW5kYXJkIGRlcGVuZGVuY2llcyBhbmQKPiBoYXZlCj4gPj4gPiB0aGVtIGF1dG8tc2Nhbm5lZCwgYW5kIHBvbGx1dGUgdGhlIGNvbXBpbGF0aW9uIGNsYXNzcGF0aCwgb3IgbGlzdAo+IGV2ZXJ5Cj4gPj4gPiBwb3NzaWJsZSBhbm5vdGF0aW9uIHByb2Nlc3NvciBkZXBlbmRlbmN5IHdlIG1heSB1c2UgaW4gb3VyIHByb2plY3RzID0KaW4KPiA+PiB0aGUKPiA+PiA+IHBhcmVudCwgd2hpY2ggaXMgbGVzcyB0aGFuIGlkZWFsLgo+ID4+ID4KPiA+PiA+IEkgaG9wZSB5b3UgYXJlIGF3YXJlIHRoYXQgbW9kdWxlcyBhbHJlYWR5IGVuZCB1cCBvbiB0aGUgbW9kdWxlcGF0aAo+IGJhc2VkCj4gPj4gPiBvbiB0aGUgbW9kdWxlZGVzY3JpcHRvcihzKS4gU28gSSBkb24ndCBzZWUgdGhlIG5lZWQgZm9yIHRoaXMgc2NvcGUuCj4gPj4gKHVubGVzcwo+ID4+ID4geW91IGhhdmUgdGhpcyB3aXNoIHRoYXQgaW4gdGhlIGVuZCBNYXZlbiB3aWxsIGNyZWF0ZSB0aGUgbW9kdWxlCj4gPj4gZGVzY3JpcHRvcgo+ID4+ID4gYmFzZWQgb24gdGhpcywgYnV0IEkgc3RpbGwgdGhpbmsgd2Ugc2hvdWxkbid0IGRvIHRoYXQpCj4gPj4gPgo+ID4+ID4gSSByZW1lbWJlcmVkIHJlYWRpbmcgc29tZXRoaW5nIGFib3V0IHRoaXMsIGFuZCBhc3N1bWVkIGl0IHdhcyB0aGUKPiBjYXNlIGlmCj4gPj4gPiB0aGVyZSB3YXMgYSBtb2R1bGUtaW5mby5jbGFzcywgYnV0IHdoYXQgaWYgaXRzIGEgc3RhbmRhcmQgamFyIHdpdGggYT0Kbgo+ID4+ID4gQXV0b21hdGljLU1vZHVsZS1OYW1lIGhlYWRlcj8gRG9lcyB0aGF0IGZhbGwgaW50byB0aGUgbW9kdWxlIHBhdGggb3IKPiA+PiA+IGNsYXNzcGF0aD8gSGF2aW5nIGNvbnRyb2wgZm9yIHRoaXMgY2FzZSBtYXkgYmUgdXNlZnVsLgo+ID4+ID4KPiA+PiA+IEkgcmVjb2duaXplIHRoaXMgd2lzaC4gVGhlIGJlc3Qgc29sdXRpb24gaXMgdG8gbWFrZSB0aGUgZGVwZW5kZW5jeQo+ID4+ID4gb3B0aW9uYWwuCj4gPj4gPgo+ID4+ID4gVGhlIHByb2JsZW0gd2l0aCB0aGlzIGlzIHRoYXQgdGhlIGRlcGVuZGVuY3kgaXMgc3RpbGwgb24gdGhlIGNsYXNzcGE9CnRoCj4gPj4gZm9yCj4gPj4gPiBzYXkgc3VyZWZpcmUsIHdoaWNoIGNhbiBpbmZsdWVuY2UgYmVoYXZpb3VyLgo+ID4+ID4KPiA+PiA+IE1hcmsKPiA+PiA+Cj4gPj4gPiAiVGhlIGVhc2Ugd2l0aCB3aGljaCBhIGNoYW5nZSBjYW4gYmUgaW1wbGVtZW50ZWQgaGFzIG5vIHJlbGV2YW5jZSBhdAo+IGFsbAo+ID4+ID4gdG8gd2hldGhlciBpdCBpcyB0aGUgcmlnaHQgY2hhbmdlIGZvciB0aGUgKEphdmEpIFBsYXRmb3JtIGZvciBhbGwKPiB0aW1lLiIKPiA+PiA9RTI9ODA9OTQKPiA+PiA+IE1hcmsgUmVpbmhvbGQuCj4gPj4gPgo+ID4+ID4gTWFyayBEZXJyaWN1dHQKPiA+PiA+IGh0dHA6Ly93d3cudGhlb3J5aW5wcmFjdGljZS5uZXQKPiA+PiA+IGh0dHA6Ly93d3cuY2hhbGljZW9mYmxvb2QubmV0Cj4gPj4gPiBodHRwOi8vcGx1cy5nb29nbGUuY29tLytNYXJrRGVycmljdXR0Cj4gPj4gPiBodHRwOi8vdHdpdHRlci5jb20vdGFsaW9zCj4gPj4gPiBodHRwOi8vZmFjZWJvb2suY29tL21kZXJyaWN1dHQKPiA+PiA+Cj4gPj4gPgo+ID4+ID4KPiA+PiA+Cj4gPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLQo+ID4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+Cj4gPj4KPiA+IC0tCj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCi0tMDAxYTExNDc2ZTk4YTM3OTYxMDU1ZDRjYjAxOC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0Nzg3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBEZWMgMTggMDk6MDQ6MjcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0Nzg3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEMxOTEzMTdDOUYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxOCBEZWMgMjAxNyAwOTowNDoyNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI1MDQyIGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IERlYyAyMDE3IDA5OjA0OjI3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNDk1OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBEZWMgMjAxNyAwOTowNDoyNyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI0OTM3IGludm9rZWQgYnkgdWlkIDk5KTsgMTggRGVjIDIwMTcgMDk6MDQ6MjYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDE4IERlYyAyMDE3IDA5OjA0OjI2ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgODYzQjUxQTBCM0EKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE4IERlYyAyMDE3IDA5OjA0OjI2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuNDAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjQwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGs0WTYwRnM5TjFRNyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMTggRGVjIDIwMTcgMDk6MDQ6MjUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13cjAtZjE3NC5nb29nbGUuY29tIChtYWlsLXdyMC1mMTc0Lmdvb2dsZS5jb20gWzIwOS44NS4xMjguMTc0XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEIxOEJGNUY1MUYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE4IERlYyAyMDE3IDA5OjA0OjI0ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdyMC1mMTc0Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHA2OXNvNDUxMjkxM3dyYi44CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTggRGVjIDIwMTcgMDE6MDQ6MjQgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9VzY2RUVkOVFPS3ZaSzFlZ1FLQ2xMcHlOaG01L0tDSXQvSlQ0Ukk2dHlMMD07CiAgICAgICAgYj1DQUxaTExCQTQ1VE5lQmVmVzdmSXpLdUFqMkxBZmowRWFFcS9BcUxkYm5leUs3SDFFZkU3MnVDcjdYdG43SVdCc3QKICAgICAgICAgSEhCVGxtQ0ZZZlRMRHBIcVJQUS9uV3gvWHlZSGl1cWZFZUcveW5vOG5uR3JrR1JwZGtDemhiUnA0RWZsQVZXYWQ0SzkKICAgICAgICAgRmJ0dEdaUU1lSFJyMDA5SEU3M3AxY1hDSHV1c3Y3SXdQcnBqUDF5bDlVZ0tnczhVM0JUYnh6MngxWldTNmhYdUNVYVAKICAgICAgICAgd01SOGxMb0JENyttVEtCQnZTS0NCWXZRanFyek1RcGZpT1h3THRUTVd3b3hXOEJkdnZZM1NGay9TcG9aUEV5MlRYazQKICAgICAgICAgUmovQ2RRMFpLYkQ5d1BML2N6NmttUno0MElsUDI2RmduellTOTY5a0hJTlZLUlNDL01zUEtCMDBqak9ONngrVWRCWE4KICAgICAgICAgZWl5UT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9VzY2RUVkOVFPS3ZaSzFlZ1FLQ2xMcHlOaG01L0tDSXQvSlQ0Ukk2dHlMMD07CiAgICAgICAgYj1HWUpUdXpVL1JXNCtBNnQ3R0ZUcFVWeVRONEgzRy8rcUJVV2g3NmNxN0pYZlAvMGdYdXlyaDZJMEovYlpZQldUYm8KICAgICAgICAgb0lnRzNHZmc2QnQ4Sm1qRnl6RU1xekx5ZDBIcVgrY0RxWC9TZEM3dTQwU0dGeTE0by9kZWhoTW5MUVZ0eHFFT3ZJQ1gKICAgICAgICAgWFZpL0VaVUtxRysxUCs2LzF2TlAxRGRSaVNZYldzek9uelc3NEFMbDgwQXcvR0FMMDJnU3R5TDQrU3FtNTNmTkFVV3MKICAgICAgICAgSWgrN3B1UkhUWi9BeDY0RlhFZjZNK2hVbUV1SDAvTzRzS0JVeGNRdkxMcFhoUXVQOG1OeGlWMnY3RVVIQk1sTTRuNy8KICAgICAgICAgdHhsYzkxd2FZYTJKWUo1encvOGVleU5yTm9sSVVuNHROOGQwSDJqTEphUXhwYzFobHdwcVZVYnRyVWptMlRRUC9pYmYKICAgICAgICAgZnMzUT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUtHQjNtSmkrVFNqZUV3NE9zbkJ3NVdKRFBaV2dLdkVkSHF5dy8zVmtkeDZkYmlkVC9NUmtGRlIKCU1jYVd4T0x2Q2ZzWHhPME5JVzNEK2MzWUo2WWtYR2hzb0JBQWpTSEgwZmhVClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQ0pmQm91UEJWQjhuZEVoTkxuSEM4c01MRmdUQnM0NERxZXMxbllBMkhyR3dCTDZjNWxhMXovQlJ2ejgrak5rbTFrSkk4RkNSTG9Bb3Z0eUZSaGkxZDhPMHRzPQpYLVJlY2VpdmVkOiBieSAxMC4yMjMuMTYzLjE0MSB3aXRoIFNNVFAgaWQgbDEzbXI2NjgxNDZ3cmIuMTM2LjE1MTM1ODc4NjM5ODE7CiBNb24sIDE4IERlYyAyMDE3IDAxOjA0OjIzIC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yMjMuMTc0LjgyIHdpdGggSFRUUDsgTW9uLCAxOCBEZWMgMjAxNyAwMTowNDoyMyAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPDExOTIyMTcxLmJBekRlRUZpT01AZ2lnYT4KUmVmZXJlbmNlczogPDExOTIyMTcxLmJBekRlRUZpT01AZ2lnYT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxOCBEZWMgMjAxNyAwOTowNDoyMyArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXpGekp2ZjlBdHlTZmpvaVNaMXdlMmFidlRPWS03ZG1PVExwTEFqMkQzVHJ3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW0ZFRURCQUNLIFdBTlRFRF0gZWRpdCBidXR0b24gb24gYSBNYXZlbiBzaXRlClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9ImY0MDMwNDVmMjNmNGY4MTFmOTA1NjA5OWEyMjkiCgotLWY0MDMwNDVmMjNmNGY4MTFmOTA1NjA5OWEyMjkKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSSB3b25kZXIgd291bGQgaXQgbWFrZSBtb3JlIHNlbnNlIG9uIHRoZSBsZWZ0IGhhbmQgc2lkZSBvZiB0aGUgYnJlYWRjcnVtYgpiYXI6CgoKICAgLSBBcGFjaGUgPGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvPi8KICAgLSBNYXZlbiA8aHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2luZGV4Lmh0bWw+LwogICAtIFNraW5zIDxodHRwczovL21hdmVuLmFwYWNoZS5vcmcvc2tpbnMtYXJjaGl2ZXMvaW5kZXguaHRtbD4vCiAgIC0gQXBhY2hlIE1hdmVuIEZsdWlkbyBTa2luCiAgIDxodHRwczovL21hdmVuLmFwYWNoZS5vcmcvc2tpbnMtYXJjaGl2ZXMvbWF2ZW4tZmx1aWRvLXNraW4tTEFURVNUL2luZGV4Lj0KaHRtbD4KICAgLwogICAtIEludHJvZHVjdGlvbiAoZWRpdCkKCgpPbiAxOCBEZWNlbWJlciAyMDE3IGF0IDA3OjQyLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3I9Cm90ZToKCj4gSGksCj4KPiBJIGp1c3QgbWFuYWdlZCB0byBhZGQgYW4gImVkaXQiIGJ1dHRvbiBpbiBNYXZlbiBnZW5lcmF0ZWQgc2l0ZXMsIHRoYXQgd2lsPQpsCj4gaGVscCBwZW9wbGUgZmluZCB0aGUgc291cmNlIG9mIHRoZSBkb2N1bWVudC4KPgo+IFNlZSBhbiBleGFtcGxlIGhlcmUgKHRoZSBsaXR0bGUgaWNvbiBuZWFyIHRoZSB2ZXJzaW9uKToKPiBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9za2lucy1hcmNoaXZlcy9tYXZlbi1mbHVpZG8tc2tpbi1MQVRFU1QvCj4KPiBJIHdhbnRlZCB0byBwdWJsaXNoIGl0IHRvIE1hdmVuIHNpdGUgdGhyb3VnaAo+IGh0dHA6Ly9zdm4uYXBhY2hlLm9yZy9yMTgxODQ4OQo+IGJ1dCBidWlsZGJvdCBkaWQgbm90IGNhdGNoIHRoZSBTTkFQU0hPVCBtLXNpdGUtcCBwbHVnaW46IHdlJ2xsIGhhdmUgdG8gd2E9Cml0Cj4gZm9yIHRoZSByZWxlYXNlIChhZnRlciBEb3hpYSB0aGVuIERveGlhIFNpdGV0b29scyByZWxlYXNlczogcGxlYXNlIHZvdGUpLgo+Cj4gRmVlZGJhY2sgYXBwcmVjaWF0ZWQgb24gdGhlIG5ldyBpY29uLCBpdHMgY29uZmlndXJhdGlvbiwgb3IgYW55IGlkZWEgdGhhdAo+IGNvdWxkCj4gaW1wcm92ZSB0aGUgZmVhdHVyZS4KPiBEb24ndCBoZXNpdGF0ZSB0byBwcm9wb3NlIGltcHJvdmVtZW50cyBhcyBodG1sIGNoYW5nZXM6IHdlJ2xsIHNlZSBsYXRlcgo+IGhvdyB0bwo+IGdldCB0aGUgdXBkYXRlIGluIHRoZSBWZWxvY2l0eSB0ZW1wbGF0ZSB0aGF0IGdlbmVyYXRlZCB0aGUgaHRtbC4uLgo+Cj4gUmVnYXJkcywKPgo+IEhlcnY9QzM9QTkKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCi0tZjQwMzA0NWYyM2Y0ZjgxMWY5MDU2MDk5YTIyOS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0ODM1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBEZWMgMjYgMTA6Mjg6MDQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODM1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDIyN0FDMTAyMTYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAyNiBEZWMgMjAxNyAxMDoyODowNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDM3ODU5IGludm9rZWQgYnkgdWlkIDUwMCk7IDI2IERlYyAyMDE3IDEwOjI4OjAzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNzc2OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBEZWMgMjAxNyAxMDoyODowMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM3NzU2IGludm9rZWQgYnkgdWlkIDk5KTsgMjYgRGVjIDIwMTcgMTA6Mjg6MDMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDI2IERlYyAyMDE3IDEwOjI4OjAzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRTdERjRDMUEzMAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjYgRGVjIDIwMTcgMTA6Mjg6MDIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjg5OApYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuODk4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMC4wMDEsCglTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBZdFJqVkNBdXBVYUcgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUdWUsIDI2IERlYyAyMDE3IDEwOjI4OjAxICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd3IwLWYxNzMuZ29vZ2xlLmNvbSAobWFpbC13cjAtZjE3My5nb29nbGUuY29tIFsyMDkuODUuMTI4LjE3M10pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA0NjY1QzVGMzY2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyNiBEZWMgMjAxNyAxMDoyODowMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13cjAtZjE3My5nb29nbGUuY29tIHdpdGggU01UUCBpZCAzNnNvMTAyNTYxMndyaC4xCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjYgRGVjIDIwMTcgMDI6Mjg6MDEgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG8KICAgICAgICAgOmNjOwogICAgICAgIGJoPUFqY3hRNEQ0eXRTZUFHZVhseXdyWTBWN1JxRGppRDJhbmcvQ0F1WGp6TUE9OwogICAgICAgIGI9VWpYbUdxMUxVY2hveThBZjhnM3lUd1g4bkVVdHptVlhKb2NYTXFiV1ZIVG1MUHVqU0VkU3pLblQvVDdyeWV2ZzJmCiAgICAgICAgIE5XR1VVcTRWU1NYTHVxVmV5NlkvWmttQlhra1lJdFMwR05zMGNlenpXK2xVeE5hRHprY1AybGJzTjhDRkNxMEI2eHBUCiAgICAgICAgIHlWSlBZTnRvcCt0bC9BTFpHRHh6WmljVlZzN0E3U2Yya1M3QWczTXdmMGdvd0IrS2xmOWNvdlFxSTMxYm5hMzErYnlNCiAgICAgICAgIE1zMktOOW5FUUp6YnpBSTdNVXUrYzVIYTliNWhDWTRCU0dXeE5vRjd0SEFTdjdiNkZETXFwUGxGWDVUTTdjTzQ0V2RaCiAgICAgICAgIG9jVFpCdHhoR3BxQkx0QkdpeHJUYXZvRXhVVTlzQklCN0QrVWhDd1FOZTdBME5zT3JSSndHaC84czFyU2xqSFg5WlBoCiAgICAgICAgIEVPRmc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOmNjOwogICAgICAgIGJoPUFqY3hRNEQ0eXRTZUFHZVhseXdyWTBWN1JxRGppRDJhbmcvQ0F1WGp6TUE9OwogICAgICAgIGI9blRUbS9Gc1M3eHRyZ1V6bXNoQWpHengvQ0tBMkg0TW5JenljVjIyMCtXNkM3a00rNWVKWmxpdkx5bUNoaWJ0QU5CCiAgICAgICAgIFVzaWlkcTBNZzNqTUtraS8rNHNab29qb0xjWFR5UmFWc1hIeGYvRSthVkhBMjA4bFhTZi81Q0l5L1Jva3V4dW40bmIyCiAgICAgICAgIExPNHFkbDZ4ekczUEk0bWpKZkk4djBjbGxzL2lxVzgybHR1NWVMV2kxRXVUOU5BQ1oxbElxRUZvTlNFU1M4NUM2ZUVtCiAgICAgICAgIFcza0lCcmhETTZ3cnlhTXA4S2Y2ZFc2SHhNNThWSG11K2RITGFIUUJmK0JNTW50Rmd0dVp0VkZWakhZZkZtQXFaZWFoCiAgICAgICAgIHpoQ3ZWM0lLSlE3QmdzQXF6NVVNUitUUElPSTJCSXNocHJwVUVvSU9YVVZpdTNCVlUrUjJqMTExYWhQNEVDMXh3ZXhpCiAgICAgICAgIFMwOXc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFLR0IzbUpTOEFlTnNwVVk5Q3cyNExRQkxQdTJjVEFVTUlxUnUrcE5HbjI4b3o1VUtCeGNudUdNCglnTHN4ZGk2YTgxT1lGRFZiNDFqcHBSdElmT3VJWkthdnVPY0ZmeGRmYXc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUNKZkJvc0Y1T1lZQzhXYXl0dUZlN2tWMER3RW0zT2lhbGhmZ2dXV1dKMk5xM3kxS2tPZWtYWHJyTkltSUpadHNCb3YzemV2cXNFOTFzUGVtRDVsQlcrRVJKaz0KWC1SZWNlaXZlZDogYnkgMTAuMjIzLjE3MS4xMzIgd2l0aCBTTVRQIGlkIHM0bXI1NDM3NTI2d3JjLjE5NC4xNTE0Mjg0MDc1MDc0OwogVHVlLCAyNiBEZWMgMjAxNyAwMjoyNzo1NSAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8MzQ2OTc5M0ItNDU4Mi00MUY3LUI2NDEtNTAyRUZGN0RBREIzQGFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8MzQ2OTc5M0ItNDU4Mi00MUY3LUI2NDEtNTAyRUZGN0RBREIzQGFwYWNoZS5vcmc+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjYgRGVjIDIwMTcgMTA6Mjc6NDQgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk16R2RKRjhLUWluRE5nQ05yUGJUVlduOHlOcnBCNkJ4X2FVNjNnTGFhX2tzUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFF1ZXN0aW9ucyByZWdhcmRpbmcgaW1wcm92aW5nIHRoZSBBcGFjaGUgQ29tbW9ucyByZWxlYXNlIHByb2Nlc3MuClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDYzogQ29tbW9ucyBEZXZlbG9wZXJzIExpc3QgPGRldkBjb21tb25zLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDdiNWYwNjI0N2JkMDU2MTNiYmM3NiIKCi0tMDAxYTExNDdiNWYwNjI0N2JkMDU2MTNiYmM3NgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPbiBUdWUgMjYgRGVjIDIwMTcgYXQgMDM6MTAsIFJvYiBUb21wa2lucyA8Y2h0b21wa2lAYXBhY2hlLm9yZz4gd3JvdGU6Cgo+IEhlbGxvIGFsbCwKPgo+IFBhcmRvbiwgbWF5YmUgdGhpcyBzaG91bGQgaGF2ZSBnb25lIHRvIHlvdXIgQHVzZXIgbGlzdCwgYnV0IHdoeSBub3QgcGluZwo+IHRoZSBkZXYgY3Jldy4gST1FMj04MD05OXZlIGJlZW4gcGxheWluZyBhcm91bmQgdGhlIGlkZWFzIHN1cnJvdW5kaW5nIG91ciA9CmZhaXJseQo+IG1hbnVhbCByZWxlYXNlIHByb2Nlc3MgZm9yIHRoZSBjb21wb25lbnRzIGluIENvbW1vbnMsIGFuZCBJIHdhcyBob3BpbmcgZm89CnIKPiBzb21lIGluc2lnaHRzLgo+Cj4gU2NyaXB0aW5nIHRoZSB2ZXJzaW9uIGNoYW5nZXMgaXNuPUUyPTgwPTk5dCByZWFsbHkgdGhhdCBiaWcgb2YgYSBkZWFsIGZvcj0KIHVzLCBhbmQKPiB0aGF0IEkgY2FuIG1hbmFnZS4gQnV0LCB3aGVuIGl0IGNvbWVzIHRvIHB1Ymxpc2hpbmcgb3VyIGFydGlmYWN0cyB0byB0aGUKPiBhcGFjaGUgbmV4dXMgcmVwb3NpdG9yeSwgYW5kIHRoZW4gc2VwYXJhdGVseSBwdWJsaXNoaW5nIG91ciAtc3JjIGFuZCAtYmluCj4gYXNzZW1ibGllcyB0byB0aGUgZGV2IGRpc3Qgc3VidmVyc2lvbiByZXBvc2l0b3J5IChhbmQgY29uc2VxdWVudGx5IGRlbGV0aT0KbmcKPiB0aG9zZSBhcnRpZmFjdHMgZnJvbSBuZXh1cyBhcyB0aGV5PUUyPTgwPTk5cmUgPUUyPTgwPTlDYXR0YWNoZWQ9RTI9ODA9OUQgPQpmb3IgdGhlIHB1cnBvc2Ugb2YgZ3BnCj4gc2lnbmluZyksIEkgZmVlbCBpdCBhIHRhZCBjdW1iZXJzb21lLgo+Cj4gST1FMj04MD05OXZlIGZpZGRsZWQgYXJvdW5kIGEgbGl0dGxlIHdpdGggdGhlIGlkZWEgb2YgZGV0YWNoaW5nIHRoZSAtc3JjID0KYW5kIC1iaW4KPiBhc3NlbWJsaWVzIGFmdGVyIGdwZyBzaWduaW5nIHdpdGggc29tZSBzdWNjZXNzLCBidXQgdGhlbiBJIGhhdmUgdG8gZGVsdmUKPiBpbnRvIHRoZSBtZWNoYW5pY3Mgb2YgcHVibGlzaGluZyB0aG9zZSB1cCB0byB0aGUgc3VidmVyc2lvbiByZXBvc2l0b3J5LCBhPQpuZAo+IGNsZWFybHkgdGhhdCBwcm9ibGVtIGhhcyBhbHJlYWR5IGJlZW4gc29sdmVkLgoKCklzIHlvdXIgcHJvYmxlbSB5b3UgZG9uPUUyPTgwPTk5dCB3YW50IHRob3NlIGdvaW5nIHRvIE5leHVzIHN0YWdpbmcgYnV0IG9ubD0KeSB0bwpkaXN0PyBPciBpcyBpdCB0aGF0IHlvdSB3YW50IHRoZW0gKmFsc28qIGdvaW5nIHRvIGRpc3QuCgpQZXJzb25hbGx5Li4uIEkgc2VlIG5vIHJlYXNvbiB0byByZW1vdmUgdGhlbSBmcm9tIGdvaW5nIHRvIE5leHVzIHN0YWdpbmcKKGluIGZhY3QgSSBoYXZlIGEgYmFja2dyb3VuZCBwbGFuIHRvIGFkZCBzZWNvbmRhcnkgc2lnbmluZyBzdXBwb3J0IHRvCnN0YWdpbmcuLi4gaT1FMj04MD05OW0gV2FpdGluZyB0byBzZWUgdGhlIE5leHVzIDMgc3RhZ2luZyBBUElzIGJlZm9yZSBhdHRlbT0KcHRpbmcKdGhvdWdoLiBUaGF0IHdvdWxkIG1lYW4gdGhhdCB0aGUgUE1DIHdvdWxkIGJlIGFibGUgdG8gKmFkZCogdGhlaXIgR1BHCnNpZ25hdHVyZSB0byB0aGUgc3RhZ2VkIGFydGlmYWN0cyBhcyBwYXJ0IG9mIHRoZSB2b3RpbmcuLi4gaW4gd2hpY2ggY2FzZQp5b3U9RTI9ODA9OTlkIHdhbnQgdG8gaG9sZCBvZmYgdXBsb2FkaW5nIHRvIGRpc3QgdW50aWwgKmFmdGVyKiB0aGUgdm90ZSBzbyA9CnlvdSBnZXQKdGhlIGZ1bGwgc2V0IG9mIHNpZ25hdHVyZXMpCgpJZiB5b3Ugd2FudCB0byB1cGxvYWQgYSBzdWJzZXQgb2YgYXR0YWNoZWQgYXJ0aWZhY3RzIHRvIGRpc3QgYXMgcGFydCBvZiB0aGUKcmVsZWFzZSwgdGhhdCBzZWVtcyBtdWNoIG1vcmUgdGVuYWJsZS4uLiBqdXN0IGEgZGVyaXZhdGl2ZSBvZiB0aGUKc2NtLXB1Ymxpc2ggcGx1Z2luIGZyb20gd2hhdCBJIGNhbiBzZWUuCgpTbyBJIGZpbmQgbXlzZWxmIGluIHRoZSBzcGFjZSBvZiB0cnlpbmcgdG8gc2hvZWhvcm4gb3VyIHByb2Nlc3MgaW50byBpdHMKPiB0aGUgbWFpbiBtYXZlbi1yZWxlYXNlLXBsdWdpbiwgd2hpY2ggST1FMj04MD05OXZlIGZvdW5kIGEgdGFkIGRpZmZpY3VsdCwgPQp2ZXJzdXMKPiB3cml0aW5nIG91ciBvd24gcmVsZWFzZSBwbHVnaW4sIHdoaWNoIGZlZWxzIGxpa2UgSSB3b3VsZCBiZSBkdXBsaWNhdGluZwo+IHRvbnMgb2YgY29kZSAod2hpY2ggSSBkb249RTI9ODA9OTl0IHdhbnQgdG8gZG8pLgoKClNvIHRoZSByZWxlYXNlIHBsdWdpbiBpcyByZWFsbHkgdHdvIHBhcnRzOgoKMS4gQSB0b29sa2l0IGZvciB3cml0aW5nIHJlbGVhc2UgcGx1Z2lucwoKMi4gQW4gZXhhbXBsZSB0aGF0IGRvZXMgdGhlIGpvYiBmb3IgdGhlIHJlcXVpcmVtZW50cyBvZiB0aGUgTWF2ZW4gVExQIGFuZApoYXMgc2VlbWVkID1FMj04MD05Q3N1ZmZpY2llbnQ9RTI9ODA9OUQgZm9yIGEgbG90IG9mIG90aGVyIHBlb3BsZS4KCkFzIHN1Y2gsIGlmIHlvdSBoYXZlIGRpZmZlcmVudCBuZWVkcywgZG8gbm90IGZlZWwgYmFkIGFib3V0IGhhdmluZyB0bwplbmNvZGUgZGlmZmVyZW50bHkuLi4gaG9wZWZ1bGx5IHRoZSB0b29sa2l0IGhhbGYgb2YgdGhlIGNvZGViYXNlIGlzCnN1ZmZpY2llbnQgZm9yIHlvdS4KCj4KPgo+IEk9RTI9ODA9OTltIGN1cmlvdXMgaWYgeW91IGd1eXMgaGF2ZSBhbnkgdGhvdWdodHMgb24gdGhlIG1hdHRlciBhcyBJPUUyPQo9ODA9OTl2ZSBiZWVuCj4gcGxheWluZyBhcm91bmQgaW4gdGhlIHNwYWNlIGZvciBhIGxpdHRsZSB3aGlsZSBub3cuCj4KPiBDaGVlcnMgYW5kIGhhcHB5IGhvbGlkYXlzIGZyb20gVVRDLTUsCj4gLVJvYgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4gLS0KU2VudCBmcm9tIG15IHBob25lCgotLTAwMWExMTQ3YjVmMDYyNDdiZDA1NjEzYmJjNzYtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDI2MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgT2N0IDE4IDEwOjUxOjQ4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI2MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3NEI5OTEwRUM2Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMTggT2N0IDIwMTcgMTA6NTE6NDggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxMzUwOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBPY3QgMjAxNyAxMDo1MTo0OCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTM0MzEgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggT2N0IDIwMTcgMTA6NTE6NDggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMzQwMiBpbnZva2VkIGJ5IHVpZCA5OSk7IDE4IE9jdCAyMDE3IDEwOjUxOjQ3IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAxOCBPY3QgMjAxNyAxMDo1MTo0NyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDA4N0IzMTgwMjI0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxOCBPY3QgMjAxNyAxMDo1MTo0NyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDAuOTUxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTAuOTUxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9MT1RTT0ZIQVNIPTAuMjUsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LCBTUEZfUEFTUz0tMC4wMDEsCglUUkFDS0VSX0lEPTEuMTAyXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGN1UXZaZ2ExZEU0NyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgMTggT2N0IDIwMTcgMTA6NTE6NDUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13cjAtZjE3MC5nb29nbGUuY29tIChtYWlsLXdyMC1mMTcwLmdvb2dsZS5jb20gWzIwOS44NS4xMjguMTcwXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDE2MDUxNUYxMjEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDE4IE9jdCAyMDE3IDEwOjUxOjQ1ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdyMC1mMTcwLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHkzOXNvNDU0Mjc3M3dyZC40CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTggT2N0IDIwMTcgMDM6NTE6NDUgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9em9LZnNiL2FHVXRIeWtHUUtjcXd0K2Y0VUQ2WldWOWpnNGtvQzBoc25OYz07CiAgICAgICAgYj1QTzAvMXhPYUplaWFyWXh6Y3pqUDRyY3hFdUNldk5aVTRmaUZSWlczdGtPKy8wK3dYMnRzd2pETWpZVzl4TUl5VTMKICAgICAgICAgeS9DSzU0QXU5VTg5b2UzdDY1aTQ3UkluS0pDaFowZU1vSUJHdzZVTWMzZ1kzZm5CN2xXZkZGbG1McHRHQi9JTXR5S3cKICAgICAgICAgOUFzbG11QUlnU2JKSDJBSm5MMjYza3NHQ0VhN2hwYkZKQThteWxkYmh0ZEsreTFjcDR3ZFRLb1A3QWRKc1ZnWW5UWU8KICAgICAgICAgZVdWT28xcTVMQXdOVHBBUVZvVHByc2JJc1BtUFNMZDJNZEx5N3BaUnNyZENyTTlaRUthRHJscDBOUTV6R1haUlA4OGUKICAgICAgICAgdk1BeFd5b2ZjOXdQSU9xUlhmb2ZsU2JRQnpDQWpObmJGRU85azhvMlhwMDR5Wm12eUdlZGdUaXVXZE9Dbk9yQTVkWUkKICAgICAgICAgT0xsdz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9em9LZnNiL2FHVXRIeWtHUUtjcXd0K2Y0VUQ2WldWOWpnNGtvQzBoc25OYz07CiAgICAgICAgYj1rbjdaY1NKUHJlYkhFcGx4L2RHakxhdU5DL0hmSlA3MHdNRndMVk1YZkhTZ1ZyYmc1UE9jTXZGZWJtUVhRcUdYeFgKICAgICAgICAgNFh2aXJkbE02ZllTaEdzakhraisydXpvN2toL0oxdXVWQlltUTBsWFVaQTMyNXIwa0ZRSnZVdjdvZjlQcVoyQmtzcWoKICAgICAgICAgOGdVOGtreElPTlgwOVhvOGxNWFlkTjlnVU8rNTRKT2Zla3hadUMxUWJCcjFQYjZKUVN1c0NPdmhySExUNllKSHhzZjEKICAgICAgICAgdFFlRnBnVlh3bXdPRUZ6SVdmYW4rMGM3QUZDWStLYnNmYXNuUDZHdlNtNTVXUXRLVU9EQnFScVM4TFdER3JJVHBEMXQKICAgICAgICAgZlQvenBHMERENzNta2x1TTQzdXBLdXlJSmh4Y2gyeFZYYkRlMnBKRjUraGRrQ2J4YWRsOGZ6U3VjbHA2a3ZvMU5kbEcKICAgICAgICAgTFRZUT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhV2c2YkdYcUxXd0ZJT3pCUmtiSjlPcGJSQk53SEk0aFRQb1RQajFMaktvN29rSzZSSFIKCWljWE5ZYThjSnlvbGs1d05iRHd3aVptaklRWFFReUpQQ0tSWVQyR1BYM0NsClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtScUEvTTh1M2FtZ25rWWlvcXlPVGtkTElCK09DMDMwT1NUSXpRK2Rwek9jRHo2aWJpS1ErRTA3bGdJeWRrdS9rZWREdVFSQVNkYkQzSHVKdVdzL0Q4PQpYLVJlY2VpdmVkOiBieSAxMC4yMjMuMTgyLjEzNCB3aXRoIFNNVFAgaWQgajZtcjYxMzUyMjV3cmUuMTUwLjE1MDgzMjM5MDQ0NDQ7CiBXZWQsIDE4IE9jdCAyMDE3IDAzOjUxOjQ0IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yMjMuMTg3Ljggd2l0aCBIVFRQOyBXZWQsIDE4IE9jdCAyMDE3IDAzOjUxOjQzIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0ErblBuTXd0am5aRS01M0FONTN4Rj1NZjZIWS1GYkdZd1pBVXczRVVLSEE0ZUtCNTJRQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXd0am5aRS01M0FONTN4Rj1NZjZIWS1GYkdZd1pBVXczRVVLSEE0ZUtCNTJRQG1haWwuZ21haWwuY29tPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBXZWQsIDE4IE9jdCAyMDE3IDAzOjUxOjQzIC0wNzAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NektzanFhTlVUSzh6aXlSY2NqczdBZmMrLTQxc3JQalBIWTRrYnRrNi1udkFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjIKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iZjQwMzA0Mzg5MzI4ODdkYjdlMDU1YmQwMDZhNyIKCi0tZjQwMzA0Mzg5MzI4ODdkYjdlMDU1YmQwMDZhNwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKQW5hbHl6ZXIuLi4KCnN0YWdpbmdVcmw6IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzMKZ3JvdXBJZDogb3JnLmFwYWNoZS5tYXZlbgphcnRpZmFjdElkOiBhcGFjaGUtbWF2ZW4KdmVyc2lvbjogMy41LjIKClNvdXJjZSBaSVAgdXJsIGV4aXN0cy4KaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3My9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItc3JjLnppcAoKU291cmNlIFpJUCBTSEExIHVybCBleGlzdHMuCmh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvYXBhY2hlLW1hdmVuLTMuNS4yLXNyYy56aXAuc2hhMQoKQmluYXJ5IFpJUCB1cmwgZXhpc3RzLgpodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yL2FwYWNoZS1tYXZlbi0zLjUuMi1iaW4uemlwCgpCaW5hcnkgWklQIFNIQTEgdXJsIGV4aXN0cy4KaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3My9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItYmluLnppcC5zaGExCgpDYWxjdWxhdGVkIFNIQTEgb2Ygc291cmNlIFpJUCBtYXRjaGVzIHB1Ymxpc2hlZCBTSEExIG9mIHNvdXJjZSBaSVAuCmRjOGNhYTVjZGFjYjQwMDk0M2QyNDkxYTAyMGY3NDJhNTE4ZThmMDgKCkNhbGN1bGF0ZWQgU0hBMSBvZiBiaW5hcnkgWklQIG1hdGNoZXMgcHVibGlzaGVkIFNIQTEgb2YgYmluYXJ5IFpJUC4KMjNhZGFkYzkwYjdmNzlhZDg0YmQxNDU3NDU4MWQwMTQ1NjExYmZkYQoKR2l0IHJldmlzaW9uIG9mIHJlbGVhc2UgYXMgZGV0ZXJtaW5lZCBmcm9tCm1hdmVuLWNvcmUtMy41LjIuamFyOm9yZy9hcGFjaGUvbWF2ZW4vbWVzc2FnZXMvYnVpbGQucHJvcGVydGllcyhidWlsZE51bWJlcik6CjEzOGVkZDYxZmQxMDBlYzY1OGJmYTJkMzA3YzQzYjc2OTQwYTVkN2QKCkZpbGVzIHRoYXQgYXJlIHByZXNlbnQgaW4gdGhlIHNvdXJjZSBkaXN0cmlidXRpb24gYnV0IG5vdCBpbiB0aGUgc291cmNlCnJldmlzaW9uOgpERVBFTkRFTkNJRVMKCgpPbiAxOCBPY3RvYmVyIDIwMTcgYXQgMDM6NTAsIFN0ZXBoZW4gQ29ubm9sbHkgPApzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKCj4gSGksCj4KPiBXZSBzb2x2ZWQgMjYgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiB2ZXJzaW9uPTEyMzM4OTY0JnN0eWxlTmFtZT1UZXh0JnByb2plY3RJZD0xMjMxNjkyMgo+Cj4gVGhlcmUgYXJlIDM1NyBpc3N1ZXMgbGVmdCBpbiBKSVJBIGZvciBNYXZlbiBjb3JlOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJQo+IDNEJTIwTU5HJTIwQU5EJTIwcmVzb2x1dGlvbiUyMCUzRCUyMFVucmVzb2x2ZWQlMjBPUkRFUiUKPiAyMEJZJTIwZHVlJTIwQVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwY3JlYXRlZCUyMEFTQwo+Cj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzMvCj4KPiBUaGUgZGlzdHJpYnV0YWJsZSBiaW5hcmllcyBhbmQgc291cmNlcyBjYW4gYmUgZm91bmQgaGVyZToKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiAxMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yLwo+Cj4gU3BlY2lmaWNhbGx5IHRoZSB6aXAsIHRhcmJhbGwgYW5kIHNvdXJjZSBhcmNoaXZlcyBjYW4gYmUgZm91bmQgaGVyZToKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiAxMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yL2FwYWNoZS1tYXZlbi0zLjUuMi1iaW4uemlwCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gMTM3My9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItYmluLnRhci5nego+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+IDEzNzMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvYXBhY2hlLW1hdmVuLTMuNS4yLXNyYy56aXAKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiAxMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yL2FwYWNoZS1tYXZlbi0zLjUuMi1zcmMudGFyLmd6Cj4KPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBhcGFjaGUtbWF2ZW4tMy41LjItc3JjLnRhci5neiBzaGExOiA5N2Q2ZDdiMTg0ODViNzkwNmRkN2YzMTNjZGQ0MTEKPiA5MWQxNmRkZTQ2Cj4gYXBhY2hlLW1hdmVuLTMuNS4yLXNyYy56aXA6IHNoYTE6IGRjOGNhYTVjZGFjYjQwMDk0M2QyNDkxYTAyMGY3NDJhNTE4ZThmMDgKPgo+IEdpdCB0YWc6Cj4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9bWF2ZW4uZ2l0O2E9Y29tbWl0O2g9Cj4gMTM4ZWRkNjFmZDEwMGVjNjU4YmZhMmQzMDdjNDNiNzY5NDBhNWQ3ZAo+Cj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9jb21wb25lbnRzL3JlZi8zLUxBVEVTVC8KPgo+IFZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCj4KPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPgo+IFRoYW5rcywKPgo+IFN0ZXBoZW4uCj4KCi0tZjQwMzA0Mzg5MzI4ODdkYjdlMDU1YmQwMDZhNy0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MDQ1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBTZXAgMTYgMDk6NTI6MjQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDQ1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEVBNTVDMUEyNzAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAxNiBTZXAgMjAxNyAwOTo1MjoyNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk3MDgxIGludm9rZWQgYnkgdWlkIDUwMCk7IDE2IFNlcCAyMDE3IDA5OjUyOjI0IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NzAxNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNiBTZXAgMjAxNyAwOTo1MjoyNCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk3MDAzIGludm9rZWQgYnkgdWlkIDk5KTsgMTYgU2VwIDIwMTcgMDk6NTI6MjQgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDE2IFNlcCAyMDE3IDA5OjUyOjI0ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQTZBREExODM5MjUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDE2IFNlcCAyMDE3IDA5OjUyOjIzICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMy44NzkKWC1TcGFtLUxldmVsOiAqKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTMuODc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJRlJFRU1BSUxfUkVQTFk9MSwgSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHlfaXdpN3VDTHduNiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgMTYgU2VwIDIwMTcgMDk6NTI6MTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC11YTAtZjE3NC5nb29nbGUuY29tIChtYWlsLXVhMC1mMTc0Lmdvb2dsZS5jb20gWzIwOS44NS4yMTcuMTc0XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDU0RDFCNUZCRTIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDE2IFNlcCAyMDE3IDA5OjUyOjE3ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXVhMC1mMTc0Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGsyM3NvMjMxMjIwNXVhZi40CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTYgU2VwIDIwMTcgMDI6NTI6MTcgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9TW0rVWRBZDFqNVc5MEdyR1g4ZVFlNXVjY2xDYm1lelRNRHpjWXZvRnNkRT07CiAgICAgICAgYj1YRGgxN2FjNmhhcmRZR2YyRFNveERIbWF5WVVDbHJDaVpENkc0RzhsTTZpaHF2a2Y1bnAvWVlVZ2FTVEZhRTZMaDAKICAgICAgICAgNUxCQm1hR29VdUk1a0J0TDlzNDFSakZUNG5zaXJTTHJ4Z1RtK09ONElyOXp1ODhwd0VZYXlOWW9LR2NxODdmRlJjdFEKICAgICAgICAgRmtQeFBuaVYxQTAva1Aza0dJSENrSWFkTjhac2pDdmRJdDBVVXpQZWJKVUZyOFhTdUJlK3BxOUk3ZlNGM2locFhpSW8KICAgICAgICAgR3p6L2FreVkyRWUzSTlRK0hQSHNnSjMzZUhhRCs1RDdpSmJML00xTzJybzQrUTErUG5lb2s3cVpacE8yNTY0UmpROHoKICAgICAgICAgYlkwSDFvRThqcnRaOVJMUE5BT1lHUk00VENrb3pVeUdBYnJ3VytiSHpJc2NSdDFBZnkvSUZMQzBCUU1WSGMyRXZCQmcKICAgICAgICAgUlVSQT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9TW0rVWRBZDFqNVc5MEdyR1g4ZVFlNXVjY2xDYm1lelRNRHpjWXZvRnNkRT07CiAgICAgICAgYj1vaWR3YjgwNkwrUjJoYW1PTjdXbDF0MkRscFZlSnA2aDROcUI4b3dRN3ZNSS9ZU0hOdXAzN0g4UnlXcCtobnc3cWwKICAgICAgICAgK3BsNzhWZmIxYXZHLzRWaCtnSGR0YWV2ekpMeHFha0VYSXdNUFMrOFhXc1FDd2gwQ0ZSRUVaekJEYWkwOS9XOXNNenAKICAgICAgICAgY0dqQTRPNTNoZG9QMThXOXVOUGIvMnV2UDVjYjNUSzJWd0hteWVFdGxESVRkOXp1alEyYjVkMVRBZEpnN2xlT1pzRkkKICAgICAgICAgZGxsQmxCRFdwTmVVd3NoYnZMdXRIMGd5ZFBOeURoenp4NnFsN3VrVXlyNTYwUDJyWThBSFJZekRJc0ExcFVNdkdJOWUKICAgICAgICAgek04SU01NkFyNlZjdTZxYlMwYXZKY1I2K0VGSU5jdHdORHB6QnZiNkc5eEUzcnJCTHhwd0ZTR2pMNGRKU1JtT2JXbEwKICAgICAgICAgNWF2dz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVZ3haa3Z0YXdybHRnc0pHVDFXZGJLOVcxQitlQS9odnBRcTExWTFwUklkSkZSMk1zTXoKCWJQbE5MYmczajZRMFlXa0c3MXM3cFRLcVFnVVF5TE9xL09ORmNqcWdmQT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBREtDTmI0SW9ZRVdkd1Nwb2MxRCtxUmE2QmcxY2NzbXdocllkTFp6dXVVREpNQXBGZmhlR2NOclZMVDdBT0NaaklHMWU1cDJZWkdzU2FCMmRQbDBqb0xtczdNPQpYLVJlY2VpdmVkOiBieSAxMC4xNzYuODkuMTY4IHdpdGggU01UUCBpZCBnMzdtcjIzMjU2MTc3dWFkLjUzLjE1MDU1NTU1Mjk3NDQ7CiBTYXQsIDE2IFNlcCAyMDE3IDAyOjUyOjA5IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDxDQStuUG5NeHlHMk5lUFhwVnFhd2U5alI9aXRIRVQ2VXVkbk45Q2pIaHY9b28tS0NyeHdAbWFpbC5nbWFpbC5jb20+CiA8cG9ueS01NmEzYWRlYWY2MGM0MDU5NmZiMjg0YjI0NTI0MTQ4ZjYwNWU4ZDIzLTUyZDQxY2Q0MGYyMzQzYzg5NTI4ODBlOGY4NGRhM2U4MGQzMzU1MDlAZGV2Lm1hdmVuLmFwYWNoZS5vcmc+CiA8Q0ErblBuTXlTMnExdWZhVytTNnNtaFpaMUpjeGhmOWhZNS0zbkJKLWlDV2VqUFVBRFZBQG1haWwuZ21haWwuY29tPgogPDIwNTc5NDguazFHeWZqdUdYZEBnaWdhPiA8Q0ErblBuTXdjb0hGWnZVcVdpVXN5SEJoYU1tb1NjY3lkVEJzelNYZ3NHdEY9d05HREt3QG1haWwuZ21haWwuY29tPgogPENBS0RVTjF2NVRzRm4rby12djhIaDNQdXZHWFdlK2ZRbk0randEWnQrPXp0eHNwY2dnd0BtYWlsLmdtYWlsLmNvbT4KIDxDQUtEVU4xc20wS0tyTm9rcHhoK05CT1hrVUY4NEdCTHhoUVYyZmR3RUstRngrLXhuVndAbWFpbC5nbWFpbC5jb20+CiA8Q0FLRFVOMXRkRD1QeDVuOUw2MEtjYTJGdW5DVk4yd3JvUGQ5VXJRTkt4X3hiem10TTZ3QG1haWwuZ21haWwuY29tPgogPDE1MDU0Nzc1NDUuMjM5Mjc3LjExMDcxNTcwOTYuNjM4NDY2QUNAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgogPENBS0RVTjF2TmtTUk9nblNMZGJfMGp1aHRCX2Voc2tCa3M2QnQ5RS1pS0JjUDlyanlqZ0BtYWlsLmdtYWlsLmNvbT4KIDxDQUxZR20xd3ItN1l3Vndzck9TZVZwdG5qZ3k2QkdqWjBoLTl4MnJNVVpoeG9YMXlrUlFAbWFpbC5nbWFpbC5jb20+CiA8MTUwNTQ3OTUxMC4yNDYxNDguMTEwNzE4MDM4NC4yRTA1MkNDNEB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CiA8Q0ErblBuTXlmTm1jazVZTmhhT1NROUZ6eFdHNHdhT0pWckxRUnFfWDVaYUZBdThISE9BQG1haWwuZ21haWwuY29tPiA8MTUwNTUzMTI0NS40MzgyOTIuMTEwNzkwNDQyNC4xMzA5QTc1OUB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CkluLVJlcGx5LVRvOiA8MTUwNTUzMTI0NS40MzgyOTIuMTEwNzkwNDQyNC4xMzA5QTc1OUB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFNhdCwgMTYgU2VwIDIwMTcgMDk6NTE6NTggKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk16TFNqNmRUOUJaRXdlUXFrPUdLOUM9UFlXR1Njc3hEbS1adEJXTkptPVEzUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0NjYwM2E4YTQ3Y2UwNTU5NGI3NjczIgoKLS0wMDFhMTE0NjYwM2E4YTQ3Y2UwNTU5NGI3NjczCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCk9uIFNhdCAxNiBTZXAgMjAxNyBhdCAwNDowNywgSWdvciBGZWRvcmVua28gPGlnb3JAaWZlZG9yZW5rby5jb20+IHdyb3RlOgoKPiBJIGRvbid0IHJlYWxseSBoYXZlIG11Y2ggdG8gYWRkLCBidXQgbGV0IG1lIGFuc3dlciBhbnl3YXlzIDotKQo+Cj4gMSkgSSBhbSByZWFzb25hYmx5IGNvbmZpZGVudCB3ZSBjYW4gY29tcGVuc2F0ZSBmb3IgdGhlIG5ldyBjbGFzc2xvYWRlcgo+IGFycmFuZ2VtZW50IGluIG0yZSB3aXRob3V0IG11Y2ggcHJvYmxlbXMuIFRoZSBuZXcgc2V0dXAgZG9lcyBtYWtlIHBsdWdpbgo+IHJ1bnRpbWUgY2xhc3NwYXRoIGxlc3Mgc3RhYmxlLCBzbyB0aGVyZSBhcmUgbGlrZWx5IG90aGVyIHNjZW5hcmlvcyB3aGVyZQo+IHBsdWdpbnMgd2lsbCBiZWhhdmUgZGlmZmVyZW50bHkgKGJhZCkuIE9uIHRoZSBvdGhlciBoYW5kLCBJIGRvbid0IHNlZQo+IGFueSBiZXR0ZXIgd2F5IHRvIHN1cHBvcnQgU2VydmljZUxvYWRlci4gRm9yIGphdmEgOCBpdCBtYXkgYmUgcG9zc2libGUKPiB0byB1c2UgZm9yZWlnbi1pbXBvcnQgb2YgZXh0ZW5zaW9ucyBjbGFzc2xvYWRlciB0byBmaXggTU5HLTYyNzUsIGJ1dAo+IHRoYXQgY2xhc3Nsb2FkZXIgd2FzIHJlbW92ZWQgaW4gamF2YSA5LCB1bmxlc3MgSSBhbSBtaXN0YWtlbi4KCgpPayBzbyBJIHRoaW5rIHRoZSBjb25zZW5zdXMgaXMgNjI3NSBpcyBwcm9iYWJseSBhIG5lY2Vzc2FyeSBmaXggZm9yIEphdmEgOAppbnRlcm9wZXJhYmlsaXR5LCBidXQgbWF5IGV4cG9zZSBidWdzIGluIHBsdWdpbnMgdGhhdCBtYWRlIGluY29ycmVjdAphc3N1bXB0aW9ucywgYW5kIGlzIGEgYnJlYWtpbmcgY2hhbmdlIGZyb20gdGhlIFBvViBvZiB0aGUgZWNsaXBzZQppbnRlZ3JhdGlvbi4gTmV0YmVhbnMgaXMgZmluZSBhbmQgSW50ZWxsaUogc2VlbXMgdG8gZG8gaXRzIG93biB0aGluayAoZ2l2ZW4KSSBoYXZlIGFuIG9wZW4gYnVnIHRoYXQgc3VnZ2VzdHMgSW50ZWxsaUogaXMgaWdub3JhbnQgb2YgdGhlIGV4dGVuc2lvbnMKdHlwZSBtYXBwaW5nKQoKCj4KPiAyKSBJIGJlbGlldmUgVENDTCBpcyBhbHJlYWR5IHNldCB0byBwcm9qZWN0IHJlYWxtIGZvciBwcm9qZWN0cyB0aGF0IGhhdmUKPiBleHRlbnNpb25zIChhbmQgdG8gcGx1Z2luIHJlYWxtIG90aGVyd2lzZSkgZHVyaW5nIHBsdWdpbiBleGVjdXRpb24uCgoKU28gbXkgcXVlc3Rpb24gaXMgd2h5IHNob3VsZCBUQ0NMICpldmVyKiBiZSBhbnl0aGluZyBvdGhlciB0aGFuIHByb2plY3QKcmVhbG0/CgpUaGUgcG9tIHJlZmVyZW5jZSBzYXlzOgoKICAgLSAqZXh0ZW5zaW9ucyo6IHRydWUgb3IgZmFsc2UsIHdoZXRoZXIgb3Igbm90IHRvIGxvYWQgZXh0ZW5zaW9ucyBvZiB0aGlzCiAgIHBsdWdpbi4gSXQgaXMgYnkgZGVmYXVsdCBmYWxzZS4gRXh0ZW5zaW9ucyBhcmUgY292ZXJlZCBsYXRlciBpbiB0aGlzCiAgIGRvY3VtZW50LgoKSXQgZG9lcyBub3Qgc2F5IHRoYXQgdGhpcyBmbGFnIGFmZmVjdHMgdGhlIGNsYXNzbG9hZGVyIG9mIHRoZSBwbHVnaW4sCnJhdGhlciB0byBtZSBzYXlzIHdoZW4gdHJ1ZSB0aGUgcHJvamVjdCByZWFsbSBzaGFsbCBpbmNsdWRlIHRoZSBwbHVnaW4ncwpleHRlbnNpb25zLgoKTXkgdW5kZXJzdGFuZGluZyB3YXMgdGhhdCBhIHBsdWdpbiB3b3VsZCBhbHdheXMgc2VlIGl0cyBvd24gZXh0ZW5zaW9ucywgYnV0CmlmIHlvdSBzZXQgdGhpcyBmbGFnIHRoZW4gdGhlIHByb2plY3Qgd291bGQgYmUgYWJsZSB0byBzZWUgdGhlbSB0b28uLi4KCk5vdyBncmFudGVkIG15IHVuZGVyc3RhbmRpbmcgbWF5IGJlIGluY29ycmVjdCwgYnV0IHRoaXMgY2hhbmdlIHNlZW1zIHRvIGJlCnR1cm5pbmcgdGhpbmdzIGluIGFuIGVudGlyZWx5IGRpZmZlcmVudCBkaXJlY3Rpb24KClByb2JsZW0gaXMsIG5laXRoZXIgcHJvamVjdCByZWFsbSBub3IgYW55IG9mIHRoZSBwbHVnaW4gcmVhbG1zIGhhdmUKPiBhY2Nlc3MgdG8ganZtIGV4dGVuc2lvbnMgY2xhc3Nsb2FkZXIsIHNvIFNlcnZpY2VMb2FkZXIgY2FuJ3QgZ2V0IGNsYXNzZXMKPiBmcm9tIHRoZXJlLgoKClRoYXQgaXMgYW5vdGhlciBzZXQgb2YgaXNzdWVzLi4uIGJ1dCB0aGlzIHNob3VsZCBoYXZlIGJlZW4gZml4ZWQgYnkgNjI3NQp1bmxlc3MgSSBhbSBtaXN0YWtlbgoKCj4KPiAtLQo+IFJlZ2FyZHMsCj4gSWdvcgo+Cj4gT24gRnJpLCBTZXAgMTUsIDIwMTcsIGF0IDEyOjA5IFBNLCBTdGVwaGVuIENvbm5vbGx5IHdyb3RlOgo+ID4gSSdtIGdvaW5nIHRvIGhvbGQgb2ZmIGNsb3NpbmcgdGhlIHZvdGUgb3ZlciB0aGUgd2Vla2VuZCB0byBnaXZlIElnb3IgYQo+ID4gY2hhbmNlIHRvOgo+ID4KPiA+IDEuIGNvbW1lbnQgb24gd2hldGhlciB3ZSBuZWVkIGFuIGFsdGVybmF0aXZlIGZpeCBmb3IgTU5HLTYyNzUgKGFuZCBpbmRlPQplZAo+ID4gaWRlYWxseSBwcm92aWRlIG9uZSA7LSApOwo+ID4gMi4gY29tbWVudCBvbiB3aGV0aGVyIHRoZSBmaXggZm9yIE1ORy02MjA5IGlzIGV4cG9zaW5nIGJ1Z3MgaW4gcGx1Z2lucwo+ID4gdGhhdAo+ID4gbWFkZSBpbmNvcnJlY3QgYXNzdW1wdGlvbnMgYWJvdXQgVENDTCwgb3Igd2hldGhlciB0aGUgZml4IGlzIGludmFsaWQgb3IKPiA+IGV2ZW4gaW5jb21wbGV0ZSAoSSB3b25kZXIgaWYgVENDTCBzaG91bGQgYWx3YXlzIGJlCj4gPiBwcm9qZWN0LmdldENsYXNzUmVhbG0oKQo+ID4gYXMgZXh0ZW5zaW9ucyBzaG91bGQgYmUgYXZhaWxhYmxlIHRvIGFsbCBwbHVnaW5zIG5vdCBqdXN0IHRob3NlIHRoYXQKPiA+IGRlY2xhcmUgdGhleSBhcmUgcHJvdmlkaW5nIGV4dGVuc2lvbnMgLSB1bmxlc3MgSSBtaXN1bmRlcnN0YW5kKQo+ID4KPiA+IE9uY2UgSSBoYXZlIHRoZSByZXF1aXJlZCBpbmZvcm1hdGlvbiBJIHdpbGwgYmUgYmV0dGVyIGFibGUgdG8gYXNzZXNzCj4gPiB3aGV0aGVyIHdlIHNob3VsZCByZWxlYXNlIDMuNS4xIGFuZCBmb2xsb3cgdXAgd2l0aCBhIHF1aWNrIDMuNS4yIG9yIGp1cz0KdAo+ID4gZHJvcCAzLjUuMSBhbmQgZ28gc3RyYWlnaHQgdG8gMy41LjIuCj4gPgo+ID4gLVN0ZXBoZW4KPiA+Cj4gPiBPbiAxNSBTZXB0ZW1iZXIgMjAxNyBhdCAwNTo0NSwgSWdvciBGZWRvcmVua28gPGlnb3JAaWZlZG9yZW5rby5jb20+Cj4gPiB3cm90ZToKPiA+Cj4gPiA+IEhhcyBhbnlvbmUgdHJpZWQgd2lyaW5nIGp2bSBleHRlbnNpb25zIENsYXNzTG9hZGVyIGFzIGZvcmVpZ24gaW1wb3J0ID0KdG8KPiA+ID4gcGx1Z2luL2V4dGVuc2lvbnMgcmVhbG1zPyBKdm0gZXh0ZW5zaW9ucyBjbGFzc2xvYWRlciBpcyBsaXR0bGUgdHJpY2t5Cj4gdG8KPiA+ID4gZ2V0IHRvIChzZWUgaG93IHRoaXMgaXMgZG9uZSBpbiBqYXZhLnV0aWwuU2VydmljZUxvYWRlci5sb2FkSW5zdGFsbGVkPQopLAo+ID4gPiBidXQgSSB0aGluayB0aGlzIHdpbGwgc29sdmUgU2VydmljZUxvYWRlci9NTkctNjI3NSB3aXRob3V0IHBvbGx1dGluZwo+ID4gPiBwbHVnaW4gY2xhc3NwYXRoIHRvbyBtdWNoLgo+ID4gPgo+ID4gPiAtLQo+ID4gPiBSZWdhcmRzLAo+ID4gPiBJZ29yCj4gPiA+Cj4gPiA+IE9uIEZyaSwgU2VwIDE1LCAyMDE3LCBhdCAwODozMiBBTSwgTWFyayBEZXJyaWN1dHQgd3JvdGU6Cj4gPiA+ID4gV291bGQgaXQgYmUgcG9zc2libGUgdG8gaGFuZGxlIHRoaXMgaW4gYSBzb21ld2hhdCBzaW1pbGFyIHdheSB0bwo+ID4gPiA+IHRocmVhZFNhZmUKPiA+ID4gPiBtb2pvcyAtIHNvbWUgZm9ybSBvZiBwbHVnaW4gZmxhZyB0aGF0IHNheXMgImV4dGVuc2lvblNhZmUiIFsxXSwgdGhhPQp0Cj4gaWYKPiA+ID4gPiB0aGUKPiA+ID4gPiBwbHVnaW4gaGFzIDxleHRlbnNpb25zPnRydWU8L2V4dGVuc2lvbnM+IGRlY2xhcmVkIGFuZCBkb2Vzbid0IGRlY2xhPQpyZQo+ID4gPiA+IGl0c2VsZiBhcyBiZWluZyBleHRlbnNpb25TYWZlL2V4dGVuc2lvbkF3YXJlIHRoZW4gd2UgbG9nIGEgYnVpbGQKPiB3YXJuaW5nCj4gPiA+ID4gLQo+ID4gPiA+IGl0IHdvdWxkbid0IHNvbHZlIGFueXRoaW5nLCBvdGhlciB0aGFuIGdpdmluZyBzb21lIGZlZWRiYWNrIHRvIHVzZXI9CnMKPiBzb21lCj4gPiA+ID4gaW5kaWNhdGlvbiBvZiBXSFkgdGhlaXIgYnVpbGQgZmFpbHMgdW5kZXIgMy41LjEgLSBhbmQgdG8gZWl0aGVyCj4gcmVtb3ZlCj4gPiA+ID4gPGV4dGVuc2lvbnM+IG9yIGZpeC91cGRhdGUgdGhlaXIgcGx1Z2lucy4KPiA+ID4gPgo+ID4gPiA+IFsxXSBPciBldmVuIGp1c3QgaW5mZXIgdGhlIGFwcGxpY2FiaWxpdHkgb2YgZXh0ZW5zaW9ucyBieSB0aGUKPiBwcmVzZW5jZSBvZgo+ID4gPiA+IGN1c3RvbSBsaWZlY3ljbGVzLCBvciBNb2pvcyBpbXBsZW1lbnRpbmcgdGhlIGV4dGVuc2lvbiBpbnRlcmZhY2VzICgKPiBpdCdzCj4gPiA+ID4gbWlkbmlnaHQsIGFuZCBhIGhhenkgdGlyZWQgdGhvdWdodCApLgo+ID4gPiA+Cj4gPiA+ID4gLS0KPiA+ID4gPiAiR3JlYXQgYXJ0aXN0cyBhcmUgZXh0cmVtZWx5IHNlbGZpc2ggYW5kIGFycm9nYW50IHRoaW5ncyIgPUUyPTgwPTk0PQogU3RldmVuCj4gPiA+ID4gV2lsc29uLAo+ID4gPiA+IFBvcmN1cGluZSBUcmVlCj4gPiA+ID4KPiA+ID4gPiBPbiBTYXQsIFNlcCAxNiwgMjAxNyBhdCAxMjoyMiBBTSwgQW5kZXJzIEhhbW1hciA8YW5kZXJzQGhhbW1hci5uZXQ+Cj4gPiA+ID4gd3JvdGU6Cj4gPiA+ID4KPiA+ID4gPiA+IEJhc2VkIG9uIElnb3IncyBmZWVkYmFjayBJJ20gY2hhbmdpbmcgbXkgdm90ZSB0byArMS4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBIYXZpbmcgdGhpcyBjbGFzcyBsb2FkZXIgY2hhbmdlIGluIGEgYnVnIGZpeCByZWxlYXNlIGlzIHByb2JhYmx5Cj4gbm90Cj4gPiA+ID4gPiAoc2VtdmVyKSBpZGVhbCB0aG91Z2guCj4gPiA+ID4gPgo+ID4gPiA+ID4gL0FuZGVycwo+ID4gPiA+ID4KPiA+ID4gPiA+IE9uIEZyaSwgU2VwIDE1LCAyMDE3IGF0IDI6MTIgUE0sIElnb3IgRmVkb3JlbmtvIDwKPiBpZ29yQGlmZWRvcmVua28uY29tPgo+ID4gPiA+ID4gd3JvdGU6Cj4gPiA+ID4gPgo+ID4gPiA+ID4gPiBJIGFuc3dlcmVkIGluIG1vcmUgZGV0YWlscyBvbiBtMmUtZGV2LCBidXQgSSBiZWxpZXZlIHdlIGNhbgo+ID4gPiBjb21wZW5zYXRlCj4gPiA+ID4gPiA+IGZvciB0aGUgY2hhbmdlIGZyb20gbTJlIGVuZC4gSW4gdGhlIHdvcnN0IGNhc2Ugd2UnbGwgYnVuZGxlCj4gaGFja2VkCj4gPiA+ID4gPiA+IHZlcnNpb24gb2YgRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyIHdpdGggbTJlLCBub3QgaWRlYWwsIGJ1dCBubz0KdAo+IHRoZQo+ID4gPiBlbmQKPiA+ID4gPiA+ID4gb2YgdGhlIHdvcmxkIGVpdGhlci4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gLS0KPiA+ID4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiA+ID4gSWdvcgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBPbiBGcmksIFNlcCAxNSwgMjAxNywgYXQgMDc6MjEgQU0sIEFuZGVycyBIYW1tYXIgd3JvdGU6Cj4gPiA+ID4gPiA+ID4gT24gRnJpLCBTZXAgMTUsIDIwMTcgYXQgODoyOSBBTSwgQW5kZXJzIEhhbW1hciA8Cj4gYW5kZXJzQGhhbW1hci5uZXQ+Cj4gPiA+ID4gPiA+IHdyb3RlOgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBSZXBvcnRpbmcgYmFjayBmcm9tIHRlc3RzIG9mIG0yZSB3aXRoIGVtYmVkZGVkIE1hdmVuIDMuNS4xLAo+IHdlCj4gPiA+IHNlZQo+ID4gPiA+ID4gPiBwcm9ibGVtCj4gPiA+ID4gPiA+ID4gPiB3aXRoIHRoZSBqYXh3cy1tYXZlbi1wbHVnaW4gbW9qby4gV2UncmUgdHdvIHBlb3BsZSBzZWVpbmcgdD0KaGUKPiA+ID4gaXNzdWUKPiA+ID4gPiA+ID4gPiA+IGluZGVwZW5kZW50bHksIGJ1dCB1bmZvcnR1bmF0ZWx5IEZyZWQgQnJpY29uIGhhc24ndCBiZWVuCj4gYWJsZSB0bwo+ID4gPiA+ID4gPiByZXByb2R1Y2UuCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gVG8gZm9sbG93IHVwIG9uIHRoaXMsIG15IHRlc3RzIGluZGljYXRlIHRoYXQgTWF2ZW4gMy41LjEgY2F1cz0KZXMKPiA+ID4gY2hhbmdlZAo+ID4gPiA+ID4gPiA+IGNsYXNzIGxvYWRpbmcgdGhhdCBjb3VsZCBjYXVzZSBpc3N1ZXMgZm9yIHBsdWdpbnMgaW4gbTJlLiBJJ3Y9CmUKPiA+ID4gYXNrZWQKPiA+ID4gPiA+IGZvcgo+ID4gPiA+ID4gPiA+IGlucHV0IGZyb20gdGhlIG0yZSBkZXZzIGlmIGl0IGlzIHBvc3NpYmxlIHRvIGhhbmRsZSBpbiBtMmUgYnU9CnQKPiB0aGV5Cj4gPiA+ID4gPiA+ID4gaGF2ZW4ndAo+ID4gPiA+ID4gPiA+IHJlc3BvbmRlZCB5ZXQuCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiAvQW5kZXJzCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IFNvIGN1cnJlbnRseSBJJ20gMCBvbiB0aGUgdm90aW5nIGJ1dCBJJ2xsIGludmVzdGlnYXRlIHNvbWUKPiBtb3JlLgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IC9BbmRlcnMKPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBPbiBXZWQsIFNlcCAxMywgMjAxNyBhdCA5OjI2IEFNLCBBbmRlcnMgSGFtbWFyIDwKPiA+ID4gYW5kZXJzQGhhbW1hci5uZXQ+Cj4gPiA+ID4gPiA+IHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+ID4gPj4gT24gVHVlLCBTZXAgMTIsIDIwMTcgYXQgODo1NCBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPiA+ID4gPiA+ID4gPj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4gPiA+Pj4gSGF2ZSB3ZSBnb3QgYW55IGZlZWRiYWNrIGZyb20gdGhlIGVtYmVkZGVyIGludGVncmF0aW9ucwo+IHlldD8KPiA+ID4gPiA+ID4gPiA+Pj4KPiA+ID4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPiA+ID4+IEkgaGF2ZW4ndCBoZWFyZCBhbnl0aGluZyBmcm9tIHRoZSBtMmUgcGVvcGxlLiBNYXliZSB3ZSBuZWU9CmQKPiB0bwo+ID4gPiBwaW5nCj4gPiA+ID4gPiA+IHRoZW0KPiA+ID4gPiA+ID4gPiA+PiBkaXJlY3RseS4gSSBjYW4gY29udGFjdCBGcmVkIEJyaWNvbi4KPiA+ID4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPiA+ID4+IC9BbmRlcnMKPiA+ID4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+ID4gPj4+Cj4gPiA+ID4gPiA+ID4gPj4+IE9uIE1vbiAxMSBTZXAgMjAxNyBhdCAyMjo1NywgSGVydj1DMz1BOSBCT1VURU1ZIDwKPiA+ID4gaGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID4gPiA+ID4gPiA+ID4+PiB3cm90ZToKPiA+ID4gPiA+ID4gPiA+Pj4KPiA+ID4gPiA+ID4gPiA+Pj4gPiBqdXN0IGZvciB0aGUgcmVjb3JkczogaXQgaXMgV2luZG93cyArIEdpdCBCYXNoIChNSU5HVzY0PQopCj4gb25seQo+ID4gPiA+ID4gPiA+ID4+PiA+Cj4gPiA+ID4gPiA+ID4gPj4+ID4gYW5kIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgYWRkaW5nIC1EamFuc2kuZm9yY2U9M0R0cnVlID0KY2FuCj4gPiA+IGZvcmNlCj4gPiA+ID4gPiA+IEpBbnNpCj4gPiA+ID4gPiA+ID4gPj4+ID4gYWN0aXZhdGlvbiAoZXZlbiBpZiBKQW5zaSBmYWlscyB0byBkZXRlY3QgdGhhdCBpdCBzaG91bD0KZAo+ID4gPiA+ID4gPiBhdXRvLWFjdGl2YXRlKQo+ID4gPiA+ID4gPiA+ID4+PiA+Cj4gPiA+ID4gPiA+ID4gPj4+ID4gZGV0YWlscyBvbiBpc3N1ZSBpbiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnLwo+ID4gPiA+ID4gamlyYS9icm93c2UvTU5HLTYyODIKPiA+ID4gPiA+ID4gLAo+ID4gPiA+ID4gPiA+ID4+PiBhbmQgYQo+ID4gPiA+ID4gPiA+ID4+PiA+IGZ1dHVyZSBKQW5zaSBpc3N1ZS4uLgo+ID4gPiA+ID4gPiA+ID4+PiA+Cj4gPiA+ID4gPiA+ID4gPj4+ID4gUmVnYXJkcywKPiA+ID4gPiA+ID4gPiA+Pj4gPgo+ID4gPiA+ID4gPiA+ID4+PiA+IEhlcnY9QzM9QTkKPiA+ID4gPiA+ID4gPiA+Pj4gPgo+ID4gPiA+ID4gPiA+ID4+PiA+IExlIGx1bmRpIDExIHNlcHRlbWJyZSAyMDE3LCAxMjo1Mzo0NiBDRVNUIFN0ZXBoZW4KPiBDb25ub2xseSBhCj4gPiA+ID4gPiA9QzM9QTljcml0Cj4gPiA+ID4gPiA+IDoKPiA+ID4gPiA+ID4gPiA+Pj4gPiA+IFNvIHRoYXQgaXMgd2luZG93cyBvbmx5LCBvciB3ZXJlIHRoZXkgbG9zdCBvbiBvdGhlcgo+IE9TZXMKPiA+ID4gZm9yCj4gPiA+ID4gPiB5b3UuCj4gPiA+ID4gPiA+ID4gPj4+ID4gPgo+ID4gPiA+ID4gPiA+ID4+PiA+ID4gSSBoYXZlIGNvbG91cnMgb24gbGludXggKHZpYSBkb2NrZXIpIGFuZCBvcy14Cj4gPiA+ID4gPiA+ID4gPj4+ID4gPgo+ID4gPiA+ID4gPiA+ID4+PiA+ID4gT24gMTEgU2VwdGVtYmVyIDIwMTcgYXQgMTI6MzUsIGRlamFuMjYwOUBnbWFpbC5jb20gPAo+ID4gPiA+ID4gPiA+ID4+PiBkZWphbjI2MDlAZ21haWwuY29tPgo+ID4gPiA+ID4gPiA+ID4+PiA+ID4KPiA+ID4gPiA+ID4gPiA+Pj4gPiA+IHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiArMSAoY29uZGl0aW9uYWxseSkuCj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+IFRlc3RlZCB2aWEgcHJvamVjdCB0aGF0IGluY2x1ZGVzIGRvemVuIG9mIHBsdWdpbnM6Cj4gMXN0Cj4gPiA+IHRpZXIsCj4gPiA+ID4gPiA+ID4gPj4+IE1vam9IYXVzCj4gPiA+ID4gPiA+ID4gPj4+ID4gYW5kCj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+IGZldyAzcmQgcGFydHkgcGx1Z2lucyAoc28gdG8gc2F5KS4KPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gRXZlcnl0aGluZyBsb29rcyBnb29kIHdpdGggb25lIG5vdGFibGUgcmVncmVzc2lvbjoKPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjI4Mgo+IENvbnNvbGUKPiA+ID4gPiA+IG91dHB1dAo+ID4gPiA+ID4gPiBoYXMKPiA+ID4gPiA+ID4gPiA+Pj4gbm8KPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gY29sb3JzIChyZWdyZXNzaW9uIGluIE1hdmVuIDMuNS4xKQo+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiBEZWphbgo+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiBPbiAyMDE3LTA5LTEwIDE3OjM5LCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+ID4gPiA+ID4gPiA+Pj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbQo+ID4gPiA+ID4gPiA+ID4+PiA+ID4KPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gd3JvdGU6Cj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gSGksCj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBXZSBzb2x2ZWQgMjUgaXNzdWVzOgo+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhCj4gPiA+ID8KPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gdmVyc2lvbj0zRDEyMzM4OTY0JnN0eWxlTmFtZT0zRFRleHQmcHJvamVjdElkPTNEMTIzPQoxNjkyMgo+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IFRoZXJlIGFyZSAzNTAgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlCj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gM0QlMjBNTkclMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJQo+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+IDIwQlklMjBkdWUlMjBBU0MlMkMlMjBwcmlvcml0eSUyMERFU0MlMkMlMjBjcmVhdGVkJTIwQVNDCj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gU3RhZ2luZyByZXBvOgo+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnLwo+ID4gPiBjb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiA+ID4gPiA+ID4gMTM2NC8KPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IFRoZSBkaXN0cmlidXRhYmxlIGJpbmFyaWVzIGFuZCBzb3VyY2VzIGNhbiBiZSBmb3U9Cm5kCj4gPiA+IGhlcmU6Cj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvCj4gPiA+IGNvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS8KPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBTcGVjaWZpY2FsbHkgdGhlIHppcCwgdGFyYmFsbCBhbmQgc291cmNlIGFyY2hpdmVzCj4gY2FuCj4gPiA+IGJlCj4gPiA+ID4gPiA+IGZvdW5kCj4gPiA+ID4gPiA+ID4gPj4+IGhlcmU6Cj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvCj4gPiA+IGNvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS0KPiA+ID4gbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLQo+ID4gPiA+ID4gPiA+ID4+PiBiaW4uemlwCj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvCj4gPiA+IGNvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS0KPiA+ID4gbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLQo+ID4gPiA+ID4gPiA+ID4+PiBiaW4udGFyLmd6Cj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvCj4gPiA+IGNvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS0KPiA+ID4gbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLQo+ID4gPiA+ID4gPiA+ID4+PiBzcmMuemlwCj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvCj4gPiA+IGNvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS0KPiA+ID4gbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLQo+ID4gPiA+ID4gPiA+ID4+PiBzcmMudGFyLmd6Cj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy50YXIuZ3ogc2hhMToKPiA+ID4gPiA+ID4gPiA+Pj4gOWViODIxZjE1M2M3NjY3MTk0YWExMWNjZDA5OWI3Cj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+IGJkMjA1OTU2MGQKPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcDogc2hhMToKPiA+ID4gPiA+ID4gMTIxZDU0YjA0NTM4MGE4YTQ4OTVlYjEzNzk3MGFiCj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+IDY5ZTY5OGViMGUKPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBHaXQgdGFnOgo+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+Cj4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9M0RtYXZlbi5naXQ7YT0zRAo+ID4gPiA+ID4gPiBjb21taXQ7aD0zRAo+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiAwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzCj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gU3RhZ2luZyBzaXRlOgo+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9jb21wb25lbnRzL3JlZi8zLUxBVEVTVC8KPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IFZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBbIF0gKzEKPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBbIF0gKzAKPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBbIF0gLTEKPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IFRoYW5rcywKPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IFN0ZXBoZW4uCj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gPiA+ID4gPiA+Pj4gLS0tLS0tLS0tCj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6Cj4gZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDoKPiA+ID4gZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPiA+ID4+PiA+Cj4gPiA+ID4gPiA+ID4gPj4+ID4KPiA+ID4gPiA+ID4gPiA+Pj4gPgo+ID4gPiA+ID4gPiA+ID4+PiA+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID4gPiA+IC0tLS0tLS0tLQo+ID4gPiA+ID4gPiA+ID4+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3I9CmcKPiA+ID4gPiA+ID4gPiA+Pj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOgo+IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4gPiA+Pj4gPgo+ID4gPiA+ID4gPiA+ID4+PiA+IC0tCj4gPiA+ID4gPiA+ID4gPj4+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4gPiA+ID4gPiA+ID4+Pgo+ID4gPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiAtLS0tLS0tLS0KPiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4KPiA+ID4KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4KPiA+ID4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4gLS0KU2VudCBmcm9tIG15IHBob25lCgotLTAwMWExMTQ2NjAzYThhNDdjZTA1NTk0Yjc2NzMtLQoKCkZyb20gZGV2LXJldHVybi0xMjQ1NzItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE5vdiAyMyAwNzo1MzoyMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1NzItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQjgxN0UxN0Q3RQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDIzIE5vdiAyMDE3IDA3OjUzOjIwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTQ1OTAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjMgTm92IDIwMTcgMDc6NTM6MjAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE0MDY3IGludm9rZWQgYnkgdWlkIDUwMCk7IDIzIE5vdiAyMDE3IDA3OjUzOjE5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTQwNTUgaW52b2tlZCBieSB1aWQgOTkpOyAyMyBOb3YgMjAxNyAwNzo1MzoxOSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMjMgTm92IDIwMTcgMDc6NTM6MTkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA5RjRFMzFBMjY5NAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjMgTm92IDIwMTcgMDc6NTM6MTggKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjg3OQpYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuODc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBEc1BoY2RoVTVxWk4gZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsIDIzIE5vdiAyMDE3IDA3OjUzOjE3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd20wLWY0NC5nb29nbGUuY29tIChtYWlsLXdtMC1mNDQuZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjQ0XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDJCOEE0NUZEMTQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDIzIE5vdiAyMDE3IDA3OjUzOjE3ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNDQuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgdjE4NnNvMTQ1OTA1MzN3bWEuMgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDIyIE5vdiAyMDE3IDIzOjUzOjE3IC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPTZQNUROY0Q4Q3hnVmJSems2azVEaFd2clhOOHA3ZzFIL3ZldkplblJ4MGs9OwogICAgICAgIGI9UEFaMEpsb20xZWY2Z0pVOFRvakMxd0tZdE90MFEzanhwMnN3MkFERHhZRTZhdmI2NDFPeUhvamNJTmg5QVZqdUI4CiAgICAgICAgIE9ScTZzVlFITEsxNG1KMFBSdmd6dEtYOGpzUUo4RENKUnZlWmVLaDcybGR1YTR2UVhsZkcyZzhqZXoyZ25SWS9RVHgzCiAgICAgICAgIDZJV0pnaFJQcVRoME5TTW9hTjZNcVZraFhPeTVyempSYVhBS3JUK0VxSU0wODRkaFg1T202elRpZ2M1QkZkbHRTaWFvCiAgICAgICAgIGVIeVZPYjBLcnlNdzJXWnkzcFJuRzZZSHdjWjJzV3hGZkxmUTdUVjJBakdBVVdTSVFzcGJ0ZFVkaEFaTHZETEwvSEtkCiAgICAgICAgIGtkdUV0YkpoRlllQ1FkbFYrM3N6S0ZHWG1sOXV5dkZTdU1UMzRZeGVPNDBWTWFRSmcwOVIrOVd5VGFzTVcvZmhLdk40CiAgICAgICAgIExYL2c9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPTZQNUROY0Q4Q3hnVmJSems2azVEaFd2clhOOHA3ZzFIL3ZldkplblJ4MGs9OwogICAgICAgIGI9akQ2SUI0bkpnbng3UlBaUGFYNzJFWHloZkxyWkZscmpudE4wczFRYWNId1VsMWY2V29kNitZWlFwMFlLZVkzNUdVCiAgICAgICAgIGtnTHdqNmMzWmg2eUxBZG5rVVhCQW1qRHNCQUFhdFpOZjd5MTNaekVoQjMrQ1dNMjB4c1IvdWFrZElmQS91MFBhVkhJCiAgICAgICAgIDgvT1BoNFN1T1BQRmltQVFXdE9QR1JwQ3pYeGtVRzJ6Y0VsSTNrd0Rxc0tMOEZnZ3RZVkw2blhiZjJsZ1pHTFRMSmwwCiAgICAgICAgIGdUcFE1eURpK3dITUJ5b2ZrK3NjNHd3OENhL1dwZVdBZ3BwSWIyQjFBdFh3Ulo3V1JYM1ZlaCsyK01ncEV6RDNTeEM0CiAgICAgICAgIE80QSthRlhXSzdIT3ZDb2tTUlk3Z0ZNcmg2SHhURDh4MTFUNHBqb0RUZVdycGcrV0I4RmZjS1RaMWVHcWwrV0ZyVUlCCiAgICAgICAgIFFGT2c9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDUzdzhyZ3VjdW4xRVloS0JHNWFkRVZLVkxoQURHc2hwcXliWVg4T1pPNHI1UDNOUkllCgk2aE1ubnEwdDZCVmx5Zm8wbVBOM2ZtQ0EwNDVqR3dZTDZVMUxSbm5SSnc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUdzNHpNWnR6YkRjVjFKWENidnNOKzRobVhDaDZ4aTREdFhnSWI5b0tNcDE4OXo4cWtTSE8ydjJrT0VlRU8rUlRUM0xrekJDMnkvSnM4cUZRZng4OWJwVXlITT0KWC1SZWNlaXZlZDogYnkgMTAuMjguMTA1LjE0IHdpdGggU01UUCBpZCBlMTRtcjYyMzQ2OTl3bWMuNzQuMTUxMTQyMzU5NjAwOTsKIFdlZCwgMjIgTm92IDIwMTcgMjM6NTM6MTYgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPDIwMTcxMTA5MDUzNTUxLjk1N0Q0MjlDNTBEMUBkZDE3MzMyLmthc3NlcnZlci5jb20+CiA8MTY2NzE5NS50N0hnMk9NOWJlQGdpZ2E+IDw4NWM1NDYzOC1kODI1LTZjMWMtYTUwNC0xMzg4ZjhjNzc3YzlAYXBhY2hlLm9yZz4KIDw3OTE2ODc4LnlMbU1jY0R5UzdAZ2lnYT4gPDQxZWNlMzI3LTBhNzYtOTQwZS05ZGZiLTZjMzNiYzYyMTQ1NEBhcGFjaGUub3JnPiA8MjAxNzExMjMwNDIwNDUuOUM4MjgyOUMwM0Q0QGRkMTczMzIua2Fzc2VydmVyLmNvbT4KSW4tUmVwbHktVG86IDwyMDE3MTEyMzA0MjA0NS45QzgyODI5QzAzRDRAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBUaHUsIDIzIE5vdiAyMDE3IDA3OjUzOjA1ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NekxkdEU2MUNYYyt2TzU4eHRuPWpiVlJCWFVGUmpTS1JNWnhDdktHTkItendAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiByZXNvbHZlciBicmFuY2ggY29uc29saWRhdGlvbgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0N2MyMTg4YmEwYWYwNTVlYTFiYTVjIgoKLS0wMDFhMTE0N2MyMTg4YmEwYWYwNTVlYTFiYTVjCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpPbiBUaHUgMjMgTm92IDIwMTcgYXQgMDQ6MjAsIE1hbmZyZWQgTW9zZXIgPG1hbmZyZWRAc2ltcGxpZ2lsaXR5LmNvbT4gd3JvdGU6Cgo+IFN0YXR1cyB1cGRhdGUgYW5kIHF1ZXN0aW9uczoKPgo+IC0gZGVtb3MgYXJlIGFsbCBub3cgaW4gbWFzdGVyIGFuZCBwYXJ0IG9mIHRoZSBtdWx0aSBtb2R1bGUgYnVpbGQKPiAtIG5vIGNoYW5nZXMgb24gdGhlIGFudCB0YXNrcyBmb3Igbm93Cj4KPiBRdWVzdGlvbnM6Cj4KPiAxLiBDYW4gSSBkZWxldGUgdGhlIGRlbW9zIGJyYW5jaCBub3cgb3IgZG8gd2Ugd2FpdCB1bnRpbCBuZXh0IHJlbGVhc2U/IEkKPiB3b3VsZCBwcmVmZXIgdG8gZGVsZXRlIHRoZSBicmFuY2ggYW5kIGNsb3NlIHRoZSB0aWNrZXQgdG8gYmUgaG9uZXN0Lgo+Cj4gMi4gSSBsaWtlIHRoZSBpZGVhIG9mIHByb21vdGluZyB0aGUgYW50IHRhc2sgZnJvbSBiZWluZyBoaWRkZW4gaW4gdGhlCj4gYnJhbmNoIGludG8gdGhlaXIgb3duIHJlcG8uIEFsbCB3ZSB3b3VsZCBoYXZlIHRvIGRvIGlzIHRvIGNvcHkgdGhlIGV4aXN0aW5nCj4gcmVwbyBzb21laG93IGludG8gYSBuZXcgcmVwbyBpbiBhcGFjaGUgZ2l0LiBUaGVuIHdlIGNhbiBkRGVsZXRlIGFsbCB0aGUKPiBicmFuY2hlcyBhcGFydCBmcm9tIHRoZSBhbnQtdGFzayBicmFuY2ggYW5kIG1ha2UgdGhhdCB0aGUgbWFzdGVyLiBEb25lLiBJCj4gYW0gaGFwcHkgdG8gZG8gdGhhdCBpbiB0ZXJtcyBvZiB0aGUgYnJhbmNoZXMgYW5kIHNvIG9uIGJ1dCBob3cgZG8gSSBnbwo+IGFib3V0IGdldHRpbmcgdGhlIHJlcG8gY29waWVkIGludG8gYSBuZXcgcmVwbyBuYW1lZAo+IG1hdmVuLXJlc29sdmVyLWFudC10YXNrcz8KCgpJIGxpa2UgdGhhdCBzb2x1dGlvbiB0b28KCj4KPgo+IFRoYW5rcwo+Cj4gTWFuZnJlZAo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPiAtLQpTZW50IGZyb20gbXkgcGhvbmUKCi0tMDAxYTExNDdjMjE4OGJhMGFmMDU1ZWExYmE1Yy0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MDk4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBTZXAgMjQgMTk6Mzg6MjcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDk4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDBCNUE1RjNERAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDI0IFNlcCAyMDE3IDE5OjM4OjI3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjAxNzIgaW52b2tlZCBieSB1aWQgNTAwKTsgMjQgU2VwIDIwMTcgMTk6Mzg6MjYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYwMDkyIGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IFNlcCAyMDE3IDE5OjM4OjI2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjAwODAgaW52b2tlZCBieSB1aWQgOTkpOyAyNCBTZXAgMjAxNyAxOTozODoyNiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMjQgU2VwIDIwMTcgMTk6Mzg6MjYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBCQjdDMDFBMjhDOAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjQgU2VwIDIwMTcgMTk6Mzg6MjUgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjg3OQpYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuODc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCA0UGpwQnBUczdiNEcgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sIDI0IFNlcCAyMDE3IDE5OjM4OjE3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd20wLWY1MC5nb29nbGUuY29tIChtYWlsLXdtMC1mNTAuZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjUwXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEEwMjc3NUZERTIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDI0IFNlcCAyMDE3IDE5OjM4OjE2ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNTAuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgYjE5NXNvMTQyODA5MjZ3bWIuNQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDI0IFNlcCAyMDE3IDEyOjM4OjE2IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWtaczZNdlFEZjdTK3dQYzVzRzQ4Rmd5aDdlN0NyWHRKdzQxc3JGbWlkcUE9OwogICAgICAgIGI9cnRHazcrOXk2UExNbWZ1Y0J1NWcvZUhvYUE0a2VOYXUwWGY0N25COTVTNVF4NFhZS1E4b1lkbUN4ZG8wZGJwUGNnCiAgICAgICAgIFB3LzliSXlzYWx3ejVicG15RkFnODdDL0srRHZnNXZaenRnbEhKbW5oZVJKU1diNUxDd0FEMFdubG4xQnhNUTJMdDVJCiAgICAgICAgIHRLYWIreEd3QTluaTJsU2JXK2FYVEVSNGVNU0JpUWRJSlRyeGlJWG9oS015bnBmSkQvKy8weEV3aFdFeTRPT3FoYis4CiAgICAgICAgIDFJNjltdEFTL3JmZmo5NXZqQnhuNTA5Y3IwRmFDQkVlQ0pTZlBFY250Q3c3Ujl4Z1lJdWdISFo3VjVwQ04xc0RtTU85CiAgICAgICAgIDBQMy9BNi91ZU83Nyt5bVZaVkRBYjhXSzZQdlBOdmM0bUZiYmdWK3J3bVJpbkhyMlBoYlhsMUhsbnladnZKbHBVMjlYCiAgICAgICAgIHAxV2c9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWtaczZNdlFEZjdTK3dQYzVzRzQ4Rmd5aDdlN0NyWHRKdzQxc3JGbWlkcUE9OwogICAgICAgIGI9WXBUSFJaR0VmMkg3ckw5M2wvV1lSODlNMFpSL0UvMjZHZ1RzSHBZVWczRjNDZkl0NTNVd1pBUFV5S2J0L2hmcUl4CiAgICAgICAgIC95V1cxOGJFZ2pxSjVaVFpjUjY5Tm5POVRDcUUwTzZZd2VYQ2I3V1FMTkNVZVVZSzZ3QnVUTStpZUUxZWRIYjhRWk5OCiAgICAgICAgIGN3T2RrQmpzNkczQ1VzMmh0dWEySmxKZVNWTVdGRnB5ZVJWRURDVm51dVZTd2I5aWE0QU4wd3pqTnliK2VrVVlBQWVlCiAgICAgICAgIDJ1K014bTdqU2RsZFNURlZOVFZxRElqcnBkWm9mRWZabHd4M3ZRdDNzUE5WalR2NSsya1NOemV2dEpHQk1kUGpPb3hBCiAgICAgICAgIEZraW4wRzZHVFZMaUIzWjAvaGNnM2pJeHNmc2orVU9ER2xsM0pxM3VjM1A4QUUzc2tkQmhUZW12UWNPQ3Y2ZkMzM21WCiAgICAgICAgIDdtVWc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWpPUHYxdVE0YUR6b0dyMTlpVm9DSVA1MWh3cWk3TS9uTi9EZ1hNeW9tZlpmVjkzZC83Cgl4K1JxZ3N5ZXpOd0JIMWxjUzFpNjlMUEFweUdkeVhLWXZla3E5c1NoTGc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRRFdvZHN5MlpKdVJDM2hZaS9MZ0ZnOVg2ZFB4MFVWQllrQ2RSUnNxdjlOdnlFVElSaGdJUXhpUmNwRmdSNUQ4UndlTTk3Y09tUTJMZmlTYWVwMFgxcz0KWC1SZWNlaXZlZDogYnkgMTAuMjguMTEuMTk1IHdpdGggU01UUCBpZCAxODZtcjc4NTkxNDl3bWwuNDEuMTUwNjI4MTg4OTY3ODsKIFN1biwgMjQgU2VwIDIwMTcgMTI6Mzg6MDkgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPENBK25Qbk13TUNxT19FdGNCVzVfM3JNNzEtdENyaXRwNFVrc3lmUG1ER0FZcjZ4ej1vUUBtYWlsLmdtYWlsLmNvbT4KIDxGMUY4QjNDRi1EREFDLTQ0QkEtQUVCNy00MTIyQzg4N0M0QUJAaG9udG9uLm9yZz4gPENBK25Qbk13Zl9CZnRZdXMtcm5Rck83bzUrZHVHRnowVkVhN05pb2hHMV9fWVV6cmM1d0BtYWlsLmdtYWlsLmNvbT4KIDwxNTA1Nzk2OTA4LjI1MTY4MDguMTExMDY3MzEyOC42MzVBQzM1RkB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CiA8b3AueTZ0dG1yZWJrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDxDQStuUG5NeEZGRVRRbXF0ZTAtNTB1M0VGU3diZzZ5aXB3NVZTQmRMUHdUelBoZFZrNXdAbWFpbC5nbWFpbC5jb20+CiA8b3AueTZ0djVrZjNrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDwxNTA1ODUzNTQwLjM0NDM0NjUuMTExMTYyMDY0MC4zMzFCRTU4QUB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CiA8Q0ErblBuTXprTnZCRl9GY3QtRT03cWZHUWZwSFVCS1QxOWNXQzM4U0NxdHE2a3ZpZTlnQG1haWwuZ21haWwuY29tPgogPDE1MDU4NjczNzQuMzQ5Mzg0Mi4xMTExNzk2NTIwLjUxMjRBQ0E2QHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KIDxDQStuUG5NeHFIYTN5QlJGV3IraU9Fc09taGtYOExjZ2MwTTRkRzlzeXVjTHNQYUxSNUFAbWFpbC5nbWFpbC5jb20+CiA8b3AueTZ1c2V1d3lrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDwxNTA1OTA3ODkyLjIyNzI0OC4xMTEyMjgyMzEyLjA5M0RBOEM1QHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KIDxDQStuUG5NenUrWXZLUVgzdlQ9QUJrSzNwY0dQLU1oeHRzaW9rVDBDc2t6QWJqTTl4N0FAbWFpbC5nbWFpbC5jb20+CiA8MTUwNjI3NTkzMS4yMDgxODgxLjExMTY1Njc4NzIuNDUyQjJGMDRAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgogPENBK25Qbk14RWNGQUNoazgwaHNadkdhVUNoNDVCcm12MzIrWXRtcmU1PVpjeWdUY19fd0BtYWlsLmdtYWlsLmNvbT4gPDE1MDYyNzk5NzAuMjA5NDU1MS4xMTE2NjE2MzY4LjA0QkNFNUJGQHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KSW4tUmVwbHktVG86IDwxNTA2Mjc5OTcwLjIwOTQ1NTEuMTExNjYxNjM2OC4wNEJDRTVCRkB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFN1biwgMjQgU2VwIDIwMTcgMTk6Mzc6NTggKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk16TmpDNlRWeGZ1MVB1QnBMPTZYSmM1ZzV1Z293MktBMEhBK1Fpa3lNcE5QZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFVuZGVyc3RhbmRpbmcgTU5HLTYyMDkgKHdhczogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xKQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0NDIyNTRmNzUwZjgwNTU5ZjQ5NGM1IgoKLS0wMDFhMTE0NDIyNTRmNzUwZjgwNTU5ZjQ5NGM1CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKClJpZ2h0IG5vdyBJIGhhdmUgYSBzdWNjZXNzZnVsIHZvdGUgdG8gcmVsZWFzZSAzLjUuMQoKSSBhbHNvIGhhdmUgdHdvIGlzc3VlcyBjaGFuZ2luZyBjbGFzc2xvYWRlciBiZWhhdmlvdXJzIGluIHdheXMgdGhhdCBtYXkKc3VycHJpc2UgcGVvcGxlLgoKSSBhbSBub3QgYWdhaW5zdCByZWxlYXNpbmcgd2hhdCB3ZSBoYXZlIGFzIGEgYnVnIGZpeCByZWxlYXNlIC0gaWYgdGhlc2UgYXJlCmFjdHVhbCBidWdzLgoKSSBhbSBub3QgYWdhaW5zdCBmaXhpbmcgaW5jb25zaXN0ZW5jaWVzIHdpdGggdGhlIHNpdGUgZG9jdW1lbnRhdGlvbiAtIGlmCnRoZSBkb2N1bWVudGF0aW9uIGlzIGluIGVycm9yLgoKQnV0IHJpZ2h0IG5vdyB3aGF0IEkgZG8gbm90IHNlZSBpcyBhIGNsZWFyIGV4cHJlc3Npb24gb2YgaG93IHdlIGVudmlzaW9uCk1hdmVuIGNsYXNzbG9hZGluZyAqc2hvdWxkKiB3b3JrLgoKSSBleHBlY3QgbWFzdGVyIGlzIG5vdCBhbGlnbmVkIHdpdGggd2hhdCB3ZSB3b3VsZCB3YW50LCBhbmQgMy41LjAgaXMgYWxzbwpub3QgYWxpZ25lZC4uLiBidXQgaWYgd2Ugc2F5IHRoaXMgaXMgYW4gTiB2YXJpYWJsZSBwcm9ibGVtIGFuZCB0aGUgaWRlYWwgaXMKKHgseSx6LHYsdywuLi4scSkgYW5kIDMuNS4wIGlzICh4LTUseSx6LTIsdix3LC4uLixxKSBhbmQgMy41LjEgaXMKKHgrMyx5LTEsei0yLHYsdywuLi4scSkgd2hpY2ggaXMgPUUyPTgwPTlDY2xvc2VyPUUyPTgwPTlEIHRvIHRoZSBpZGVhbCBidXQgPQpoYXMgb3ZlcnNob3Qgb25lCmZhY3RvciBhbmQgYWN0dWFsbHkgZGVncmFkZWQgYW5vdGhlci4uLiB3ZWxsIEkgZG9uPUUyPTgwPTk5dCB3YW50IHRvIHJlbGVhcz0KZSB0aGF0CgpPdG9oIGlmIDMuNS4xIGlzICh4LTQseSx6LTEsdix3LC4uLixxKSB3aGljaCBpcyBtb3Zpbmcgc29tZSBhc3BlY3RzIGNsb3NlcgpidXQgdGhvc2UgYXNwZWN0cyBhcmUgc3RpbGwgbm90IHBlcmZlY3QuLi4gaT1FMj04MD05OW0gZmluZSAtIGFzIDMuNS4xIHJlbGU9CmFzZQptYW5hZ2VyIC0gd2l0aCBjbG9zaW5nIHRoZSB2b3RlIGFuZCBwdXNoaW5nIHRoZSByZWxlYXNlLgoKTm93IEkgc2VlIDYyMDkgY2hhbmdpbmcgdGhlIGNsYXNzbG9hZGVyIGZvciBwbHVnaW5zIHRoYXQgYXJlIGFsc28gYnVpbGQKZXh0ZW5zaW9ucy4uLiB0aGUgcXVlc3Rpb24gaGVyZSBpcyB0d28gZm9sZDoKCjEuIElzIHRoZSBuZXcgYmVoYXZpb3VyICpjb3JyZWN0KiBvciBqdXN0ICpsZXNzIHdyb25nKj8KMi4gSWYgPUUyPTgwPTlDbGVzcyB3cm9uZz1FMj04MD05RCwgaXMgaXQgbGVzcyB3cm9uZyBvbiB0aGUgc2FtZSBzaWRlIG9mIGNvPQpycmVjdCBhcyB0aGUgb2xkCmJlaGF2aW91ciwgb3IgaXMgaXQgbGVzcyB3cm9uZyBvbiB0aGUgb3RoZXIgc2lkZSBvZiBjb3JyZWN0PwoKVGhlIG90aGVyIG9uZSBpcyA2Mjc1IGNoYW5naW5nIHRoZSBUQ0NMLiBXZSBoYXZlIHNpdGUgZG9jdW1lbnRhdGlvbgoqc3RhdGluZyogdGhhdCBUQ0NMIHdpbGwgYmUgdGhlIHBsdWdpbiBjbGFzc2xvYWRlciwgYW5kIHdlIGFyZSBjaGFuZ2luZyBub3cKc28gdGhhdCBUQ0NMIGlzIG5vdC4KCjMuIFdoaWNoIGRvIHdlIG5lZWQgdG8gZml4OiBzaXRlIG9yIGNvZGU/CjQuIEFyZSB3ZSBzdXJlIHdlIGNhbiBndWFyYW50ZWUgdGhhdCB0aGUgcGx1Z2luIGNsYXNzbG9hZGVyIGlzIGFsd2F5cyB0aGUKY2xhc3Nsb2FkZXIgdGhhdCBsb2FkZWQgdGhlIHBsdWdpbiBjbGFzczogd2hhdCBpZiBJIGhhdmUgcGx1Z2luIEEKZGVwZW5kZW5kcyBvbiBQbHVnaW4gQiAobm90IHdoYXQgaT1FMj04MD05OWQgcmVjb21tZW5kLCBidXQgdXNlcnMgZG8gY3JhenkgPQp0aGluZ3MpCnNvIHdlIGhhdmUgdGhlIG1vam9zIGluIFBsdWdpbiBCIGNvbWluZyBmcm9tIGEgamFyIGRlcGVuZGVuY3kgb2YgUGx1Z2luCkEuLi4gc28gY291bGQgd2UgdGhlbiB3ZSBoYXZlIGxheWVyZWQgY2xhc3Nsb2FkZXJzIGluIHdoaWNoIGNhc2Ugd2hlbiBJCmludm9rZSBBOm1vam8tZnJvbS1iIHdpbGwgaXQgYmUgbG9hZGVkIGJ5IEE9RTI9ODA9OTlzIGNsYXNzbG9hZGVyIG9yIGEgcGFyZT0KbnQgb2YgQQp0aGF0IGhvbGQgdGhlIEIgamFyPwoKT3Igd2hhdCBpZiBJIHdlcmUgdG8gdXNlIGFuIGV4dGVuc2lvbiB0byBwcm92aWRlIHRoZSBtb2pvIGJ1dCBhZHZlcnRpc2luZwp0aGUgZXh0ZW5zaW9uPUUyPTgwPTk5cyBtb2pvIGNsYXNzIHZpYSBhIHBsdWdpbj8KClRoZXNlIGFyZSBhbGwgKnJlYWxseSogc3R1cGlkIHRoaW5ncyBpbiBteSBvcGluaW9uLCBidXQgd2UgaGF2ZW49RTI9ODA9OTl0ID0Kc2FpZAo9RTI9ODA9OUN0aG91IHNoYWx0IG5vdCBleHBvc2UgbW9qb3MgZnJvbSBvdGhlciBqYXIgZmlsZXM9RTI9ODA9OUQgc28gc29tZW89Cm5lICpjb3VsZCogaGF2ZQpkb25lIGl0Li4uIGhvdyBhcmUgdGhleSB0byBnZXQgdGhlIHBsdWdpbiBjbGFzc2xvYWRlciBub3cgdGhhdCA2Mjc1IGlzCmxhbmRpbmc/IChJIHRoaW5rIGEgY29tcG9uZW50IG9mIHR5cGUgY2xhc3Nsb2FkZXIgd2l0aCBhIHJvbGUtaGludCBvZgo9RTI9ODA9OUNwbHVnaW49RTI9ODA9OUQgd291bGQgbWFrZSBzZW5zZSB0byBtZSkKCkFsdGVybmF0aXZlbHksIHdlIGRvY3VtZW50ID1FMj04MD05Q3Rob3Ugc2hhbHQgbm90PUUyPTgwPTlEIGFuZCBiZSBkb25lIHdpdD0KaCBpdC4uLgoKQnV0IHRoZXNlIGFyZSB0aGUga2luZHMgb2YgdGhpbmdzIHdlIG5lZWQgdG8gcmVzb2x2ZSBiZWZvcmUgSSBmZWVsIEkgY2FuCmNsb3NlIHRoZSAzLjUuMSB2b3RlIG9uZSB3YXkgb3IgYW5vdGhlci4KCgpPbiBTdW4gMjQgU2VwIDIwMTcgYXQgMjA6MDYsIElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY29tPiB3cm90ZToKCj4gTGV0cyBkZWNpZGUgdGhlIGFnZW5kYSBmaXJzdCwgdGhlbiB3aG8geW91IG5lZWQgdG8gYXR0ZW5kIChhc3N1bWluZyB5b3UKPiBhcmUgZHJpdmluZyB0aGlzIGRpc2N1c3Npb24vZGVjaXNpb24pLCB0aGVuIHBpY2sgdGhlIHRpbWUgdGhhdCB3b3Jrcy4KPgo+IEZyb20gbXkgc2lkZSwgSSBzdGlsbCBkb24ndCB1bmRlcnN0YW5kIHRoZSBwcm9ibGVtcyB3ZSBhcmUgdHJ5aW5nIHRvCj4gc29sdmUuIElmIHRoaXMgaXMgdGhlIGxhY2tpbmcgZG9jdW1lbnRhdGlvbiBhbmQgZ2VuZXJhbCAidW5jb21mb3J0IiB0bwo+IG1lc3Mgd2l0aCBjbGFzc2xvYWRpbmcgaW4gYnVnIGZpeCByZWxlYXNlLCB0aGVuIG1heWJlIGRvIHdoYXQgQW5kZXJzCj4gc3VnZ2VzdHMgKEkgdGhpbmspLCBidW1wIHRoZSB2ZXJzaW9uIHRvIDMuNi4wLCBkb2N1bWVudCB0aGUgYmVoYXZpb3VyIHdlCj4gaGF2ZSBvbiBtYXN0ZXIgYW5kIG1vdmUgb24uCj4KPiAtLQo+IFJlZ2FyZHMsCj4gSWdvcgo+Cj4gT24gU3VuLCBTZXAgMjQsIDIwMTcsIGF0IDAyOjI4IFBNLCBTdGVwaGVuIENvbm5vbGx5IHdyb3RlOgo+ID4gSSB3b25kZXIgc2hvdWxkIHdlIGRvIGEgaGFuZ291dCB0byBkZWNpZGUgd2hhdCB5b3UgZG8/Cj4gPgo+ID4gV2hhdCB0aW1lcyBvbiBNb25kYXkgd29yayBiZXN0Pwo+ID4KPiA+IEkgY2FuIG1heWJlIGRvIDg6MzAtOTozMHBtIElyaXNoIHRpbWUKPiA+Cj4gPgo+IGh0dHBzOi8vd3d3LnRpbWVhbmRkYXRlLmNvbS93b3JsZGNsb2NrL21lZXRpbmdkZXRhaWxzLmh0bWw/eWVhcj0zRDIwMTcmbW89Cm50aD0zRDkmZGF5PTNEMjUmaG91cj0zRDE5Jm1pbj0zRDMwJnNlYz0zRDAmcDE9M0Q3OCZwMj0zRDM3JnAzPTNEMTc5Cj4gPgo+ID4gQnV0IHdlPUUyPTgwPTk5ZCBuZWVkIHRvIGRlY2lkZSB3aG8gd2UgbmVlZCBhbmQgYW4gYWN0dWFsIGFnZW5kYS4KPiA+Cj4gPiBJZiBNb25kYXkgaXMgdG9vIHNvb24gSSBjYW4gc2VlIGlmIEkgaGF2ZSBhIHdpbmRvdyBsYXRlciB0aGlzIHdlZWsKPiA+Cj4gPiBPbiBTdW4gMjQgU2VwIDIwMTcgYXQgMTg6NTgsIElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY29tPiB3cm90ZT0KOgo+ID4KPiA+ID4gU2VlIG15IGFuc3dlcnMvY29tbWVudHMgaW5saW5lCj4gPiA+Cj4gPiA+Cj4gPiA+IE9uIFN1biwgU2VwIDI0LCAyMDE3LCBhdCAxMjowNyBQTSwgU3RlcGhlbiBDb25ub2xseSB3cm90ZToKPiA+ID4gPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL21pbmkvZ3VpZGUtbWF2ZW4tY2xhc3Nsb2FkaW5nLmh0bWwKPiBzYXlzOgo+ID4gPiA+Cj4gPiA+ID4gPiBXaGVuIGEgYnVpbGQgcGx1Z2luIGlzIGV4ZWN1dGVkLCB0aGUgdGhyZWFkJ3MgY29udGV4dCBjbGFzc2xvYWRlcgo+IGlzCj4gPiA+IHNldAo+ID4gPiA+IHRvIHRoZSBwbHVnaW4gY2xhc3Nsb2FkZXIuCj4gPiA+ID4KPiA+ID4gPiBTbyB3ZSdsbCBuZWVkIHRvIGZpeCBzb21ldGhpbmcgc29tZXdoZXJlLi4uCj4gPiA+ID4KPiA+ID4gPgo+ID4gPgo+IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9tYXZlbi9jb250ZW50L3JlZmU9CnJlbmNlL21hdmVuLWNsYXNzbG9hZGluZy5odG1sCj4gPiA+ID4gaXMgdW5hY2Nlc3NpYmxlIGZyb20gdGhlIHdlYnNpdGUgZHVlIHRvIGEgcmV3cml0ZSBydWxlLi4uCj4gPiA+ID4KPiA+ID4gPiBUaGluZ3MgdGhhdCBzZWVtIHRvIGJlIG1pc3Npbmc6Cj4gPiA+ID4KPiA+ID4gPiAqIFdoYXQgaXMgdGhlIGRlc2lyZWQgY2xhc3Nsb2FkaW5nIGZvciBhIHBsdWdpbiB0aGF0IGlzIG1hcmtlZCBhcyBhPQpuCj4gPiA+ID4gZXh0ZW5zaW9uPyBDYW4gYSBwbHVnaW4gaGF2ZSBhIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgdG8gYWxsbz0Kdwo+ID4gPiA+IGV4cG9ydGluZyBjbGFzc2VzIGFuZCBhcnRpZmFjdHMgd2hlbiB1c2VkIGFzIGFuIGV4dGVuc2lvbj8gSG93Cj4gc2hvdWxkIHRoZQo+ID4gPiA+IGNsYXNzbG9hZGluZyBsb29rIGZvciBzdWNoIGEgc3RyYW5nZSBiZWFzdC4KPiA+ID4KPiA+ID4gVG8gbWUsIHRoZSBrZXkgcmVxdWlyZW1lbnQgaXMgdGhhdCBAU2luZ2xldG9uIGNvbXBvbmVudHMgYW5kIGNsYXNzCj4gPiA+IHN0YXRpYyBtZW1iZXJzIGFyZSBzaW5nbGV0b25zIHdoZW4gaW5qZWN0ZWQgaW4gTWF2ZW4gY29yZSBvciBpbiBATW9qbz0Kcy4KPiA+ID4gVGhpcyBpbXBsaWVzIHRoYXQgdGhlcmUgc2hvdWxkIGJlIHNpbmdsZSBjbGFzc2xvYWRlciByZXByZXNlbnRpbmcgYW4KPiA+ID4gZXh0ZW5zaW9ucyBwbHVnaW5zIChNTkctNTc0MikuCj4gPiA+Cj4gPiA+IE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgZGVjbGFyZXMgd2hhdCBwYWNrYWdlcyBvZiB0aGUgZXh0ZW5zaW9uCj4gPiA+IHBsdWdpbiBhcmUgdmlzaWJsZSB0byBvdGhlciAobm9uIGV4dGVuc2lvbikgcGx1Z2lucy4KPiA+ID4gTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCBkb2VzIG5vdCBhZmZlY3QgY2xhc3Nsb2FkaW5nIG9mIHRoZQo+ID4gPiBleHRlbnNpb24gcGx1Z2luIG5vciBpdCBhZmZlY3RzIHRoZSAic2hhcGUiIG9mIG90aGVyIGNsYXNzbG9hZGVycy4KPiA+ID4KPiA+ID4gPiAqIEhvdyBkb2VzIG9uZSBhY2Nlc3MgdGhlIHBsdWdpbiBjbGFzc2xvYWRlciBpZiB3ZSB3YW50IFRDQ0wgdG8gYmUKPiBvdGhlcgo+ID4gPiA+IHRoYW4gdGhhdCwgaXMgaXQgYSBEZXBlbmRlbmN5IEluamVjdGlvbiBvciBzb21ldGhpbmcgZWxzZT8KPiA+ID4KPiA+ID4gdGhpcy5nZXRDbGFzcygpLmdldENsYXNzTG9hZGVyKCkgaXMgdGhlIG1vc3QgZGlyZWN0IHdheSB0byBhY2Nlc3MKPiBwbHVnaW4KPiA+ID4gY2xhc3Nsb2FkZXIuIFdoeSBkbyB5b3UgdGhpbmsgd2UgbmVlZCBhbnl0aGluZyBtb3JlIGVsYWJvcmF0ZT8KPiA+ID4KPiA+ID4KPiA+ID4gPiAqIFdoYXQgZGlmZmVyZW50aWF0ZXMgYSBDb3JlIGV4dGVuc2lvbiBmcm9tIGEgQnVpbGQgZXh0ZW5zaW9uIChpcyBpPQp0Cj4gdGhhdAo+ID4gPiA+IGEKPiA+ID4gPiBidWlsZCBleHRlbnNpb24gbGFja3MgYSBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sIGFuZCB3YXMgb25seQo+ID4gPiA+IGRlY2xhcmVkCj4gPiA+ID4gaW4gdGhlIHBvbS54bWwsIHdoaWxlIGEgY29yZSBleHRlbnNpb24gZWl0aGVyIGhhcyBhCj4gPiA+ID4gTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCAtIGlmIGRlY2xhcmVkIGluIHRoZSBwb20gLSBvciBpcyBhbgo+ID4gPiA+IGV4dGVuc2lvbgo+ID4gPiA+IGRlY2xhcmVkIGluIC5tdm4vZXh0ZW5zaW9ucy54bWwpCj4gPiA+Cj4gPiA+IENvcmUgZXh0ZW5zaW9ucyBhcmUgbG9hZGVkICpiZWZvcmUqIGJ1aWxkIHN0YXJ0cywgc28gdGhleSBjYW4KPiBjb250cmlidXRlCj4gPiA+IEFic3RyYWN0TWF2ZW5MaWZlY3ljbGVQYXJ0aWNpcGFudCNhZnRlclNlc3Npb25TdGFydCwgZm9yIGV4YW1wbGUuIFRoZT0KeQo+ID4gPiBjYW4gYWxzbyBleHBvcnQgcGFja2FnZXMgdmlzaWJsZSB0byBhbGwgYnVpbGQgcGx1Z2lucywgaW5jbHVkaW5nCj4gPiA+IGV4dGVuc2lvbnM9M0R0cnVlLiBPbiB0aGUgZmxpcCBzaWRlLCBlYWNoIGNvcmUgZXh0ZW5zaW9uIGlzIGVmZmVjdGl2ZT0KbHkKPiA+ID4gc2luZ2xldG9uLCB5b3UgY2FuJ3QgaGF2ZSB0d28gZGlmZmVyZW50IHZlcnNpb25zIG9mIHRoZSBzYW1lIENvcmUKPiA+ID4gZXh0ZW5zaW9uLiBDb3JlIGV4dGVuc2lvbnMgYWxzbyBoYXZlIGRpcmVjdCBhY2Nlc3MgdG8gTWF2ZW4gY29yZQo+IGNsYXNzZXMKPiA+ID4gYW5kIGNhbiBkbyBtb3JlIGludGVyZXN0aW5nIHRoaW5ncyB0aGVyZSAoZm9yIGJldHRlciBvciB3b3JzZSkuCj4gPiA+Cj4gPiA+IEJ1aWxkIGV4dGVuc2lvbnMgYXJlIHBhcnQgb2YgdGhlIHByb2plY3QgYnVpbGQgYW5kIGFzIHN1Y2ggYXJlIGxpbWl0ZT0KZAo+ID4gPiB3aGF0IGNvbXBvbmVudHMgdGhleSBjYW4gY29udHJpYnV0ZSB0byB0aGUgQ29yZSBhbmQgd2hhdCBjb3JlIGNsYXNzZXMKPiA+ID4gdGhleSBoYXZlIGFjY2VzcyB0by4KPiA+ID4KPiA+ID4gSSB0cmllZCB0byBjYXB0dXJlIHRoaXMgaW4gdGhlIGRpYWdyYW0gSSBkcmV3IGZvcgo+ID4gPiBodHRwOi8vdGFrYXJpLmlvL2Jvb2svOTEtbWF2ZW4tY2xhc3Nsb2FkaW5nLmh0bWwuCj4gPiA+Cj4gPiA+ID4gQXQgdGhpcyBwb2ludCBpbiB0aW1lIEkgdGhpbmsgd2UgYXJlIG5lYXJpbmcgdGhlIHBvaW50IHdoZXJlIEkgbWF5Cj4gaGF2ZQo+ID4gPiA+IHRvCj4gPiA+ID4gZGVjbGFyZSAzLjUuMSBhYmFuZG9uZWQgYXMgSSB0aGluayB0aGUgY2xhc3Nsb2FkaW5nIGluIHRoYXQgaXMgYQo+IHN5bXB0b20KPiA+ID4gPiBvZgo+ID4gPiA+IHRvbyBtYW55IGNvb2tzIGFsbCBjaGFuZ2luZyB0aGluZ3MgaW4gZGlmZmVyZW50IGRpcmVjdGlvbnMuIFdlIG5lZWQ9CiBhCj4gPiA+ID4gY29uc2lzdGVudCB2aXNpb24gb2Ygd2hlcmUgd2Ugd2FudCB0aGluZ3MgdG8gZ28gYW5kIC0gd2hpbGUgd2UgbmVlZAo+IG5vdAo+ID4gPiA+IGdldAo+ID4gPiA+IHRoZXJlIGluIG9uZSBnbyAtIHRoZSBwYXRoIHByZXNlbnRlZCBmb3Igb3RoZXJzIHRvIHNlZS4KPiA+ID4KPiA+ID4gVGhlcmUgd2VyZSB0d28gY2xhc3Nsb2FkaW5nIGNoYW5nZXMgaW4gMy41LjEsIG5hbWVseSBleHRlbnNpb25zPTNEdHJ1PQplCj4gPiA+IHBsdWdpbnMgbm93IGhhdmUgcHJvamVjdCByZWFsbSBhcyBUQ0NMIGFuZCBhbGwgcmVhbG1zIG5vdyB1c2UKPiA+ID4gYXBwbGljYXRpb24gY2xhc3Nsb2FkZXIgYXMgdGhlIHBhcmVudC4gQXBhcnQgZnJvbSBsYWNraW5nCj4gZG9jdW1lbnRhdGlvbiwKPiA+ID4gd2hhdCBwcmFjdGljYWwgcHJvYmxlbXMgaGF2ZSBiZWVuIGNhdXNlZCBieSB0aGVzZSB0d28gY2hhbmdlcz8KPiA+ID4KPiA+ID4gPgo+ID4gPiA+IFRoaW5ncyBJIHRoaW5rIHdlIHNob3VsZCBjb25zaWRlcjoKPiA+ID4gPgo+ID4gPiA+IDEuIERvIHdlIHdhbnQgdG8gZm9ybWFsbHkgZGVwcmVjYXRlIEJ1aWxkIEV4dGVuc2lvbnMgYW5kIHRoZQo+ID4gPiA+IC9wcm9qZWN0L2J1aWxkL2V4dGVuc2lvbnMgZWxlbWVudCAoc3RhcnQgbG9nZ2luZyB3YXJuaW5ncywgZXRjKT8KPiA+ID4gPiAyLiBEbyB3ZSB3YW50IHRvIGZvcm1hbGx5IGRlcHJlY2F0ZSBwbHVnaW5zIGFzIGV4dGVuc2lvbnMgYW5kIHN0YXJ0Cj4gPiA+ID4gbG9nZ2luZwo+ID4gPiA+IHdhcm5pbmdzIGZvcgo+ID4gPiA+Cj4gPiA+Cj4gL3Byb2plY3QvYnVpbGQvKHBsdWdpbk1hbmFnZW1lbnR8LikvcGx1Z2lucy9wbHVnaW4vZXh0ZW5zaW9uc1t0ZXh0KCk9M0Q9Cj0zRHRydWVdCj4gPiA+Cj4gPiA+IEknZCBrZWVwIHRoZW0gYm90aCwgYW5kIG1heWJlIGZpeC9yZW1vdmUgbWF2ZW4yLWNvbXBhdCBjb2RlcGF0aC4gSWYgSQo+ID4gPiBoYWQgdG8gY2hvb3NlIGJldHdlZW4gdGhlIHR3bywgaG93ZXZlciwgSSdkIGNob29zZSA8cGx1Z2luPiB3aXRoCj4gPiA+IGV4dGVuc2lvbnM9M0R0cnVlLiBUaGluayBvZiBhIGN1c3RvbSBwYWNrYWdpbmcgdHlwZSB3aXRoIG1vam9zIHRoZSB1cz0KZXIKPiA+ID4gd2FudHMgdG8gY29uZmlndXJlIGluIHBvbS54bWwsIGl0J2QgYmUgbW9yZSB0ZWRpb3VzIHRvIGNvbmZpZ3VyZSBpZiBJCj4gPiA+IGhhZCB0byBhZGQgYnVpbGQvZXh0ZW5zaW9uIGFuZCBidWlsZC9wbHVnaW4uCj4gPiA+Cj4gPiA+ID4gMy4gV2hhdCBpcyB0aGUgZGlmZmVyZW5jZSBpbiBjbGFzc2xvYWRpbmcgZm9yIGEKPiAvcHJvamVjdC9idWlsZC9leHRlbnNpb25zCj4gPiA+ID4gd2hpY2ggaGFzIGEgTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCBhbmQgb25lIHRoYXQgZG9lc24ndD8KPiA+ID4KPiA+ID4gSSB0aGluayBleHRlbnNpb25zIHdpdGggTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCBzaG91bGQgbm90IGdvCj4gPiA+IHRocm91Z2ggbWF2ZW4yLWNvbXBhdCBjb2RlcGF0aC4gSW4gb3RoZXIgd29yZHMsIHdlIG5lZWQgdG8gY2hhbmdlIHRoZQo+ID4gPiBjdXJyZW50IGJlaGF2aW91ci4KPiA+ID4KPiA+ID4gRXh0ZW5zaW9ucyB3aXRob3V0IE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwuLi4gSSBhbSBub3Qgc3VyZS4KPiA+ID4gUHJvYmFibHkgc2FmZXIgdG8ga2VlcCB0aGUgY3VycmVudCBtYXZlbjItY29tcGF0IGJlaGF2aW91ci4KPiA+ID4KPiA+ID4gPiBJJ20ga2VlcGluZyB0aGUgMy41LjEgcmVsZWFzZSBpbiBzdGFnaW5nIHVudGlsIHdlIGdldCBhIGNsZWFyIHZpc2lvPQpuCj4gZm9yCj4gPiA+ID4gaG93IHdlIHdhbnQgdG8gaGF2ZSBjbGFzc2xvYWRpbmcgc28gdGhhdCBJIGNhbiBhc3Nlc3Mgd2hldGhlciB0aGUKPiAzLjUuMQo+ID4gPiA+IGFjdHVhbGl0eSBpcyBvbmx5IG1vdmluZyBuZWFyZXIgdG8gdGhlIHZpc2lvbiAob2sgdG8gcmVsZWFzZSkgb3IgaGE9CnMKPiA+ID4gPiBtb3ZlZAo+ID4gPiA+IG5lYXJlciBpbiBzb21lIHdheXMgYnV0IGZ1cnRoZXIgaW4gb3RoZXJzIChub3Qgb2sgdG8gcmVsZWFzZSkKPiA+ID4gPgo+ID4gPgo+ID4gPgo+ID4gPiAtLQo+ID4gPiBSZWdhcmRzLAo+ID4gPiBJZ29yCj4gPiA+Cj4gPiA+Cj4gPiA+Cj4gPiA+ID4gT24gMjAgU2VwdGVtYmVyIDIwMTcgYXQgMTI6NDQsIElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY29tPgo+ID4gPiA+IHdyb3RlOgo+ID4gPiA+Cj4gPiA+ID4gPiBSZWFsLXdvcmxkIHNjbSBvciB3YWdvbiA8ZXh0ZW5zaW9ucz4gd29uJ3QgdHJpZ2dlciBtYXZlbjItY29tcGF0Cj4gY29kZQo+ID4gPiA+ID4gcGF0aCBbMV0uIFRvIGF2b2lkIHRoYXQgb2JzY3VyZSBjb2RlIHBhdGggd2UgY2FuIGVpdGhlciBtYWtlIHRoZQo+IHRlc3QKPiA+ID4gPiA+IG1vcmUgZWxhYm9yYXRlIChpLmUuIGFkZCBkZXBlbmRlbmNpZXMgdG8gZXh0amFyMS9leHRqYXIyKSBvciB3ZQo+IGNhbiB1c2UKPiA+ID4gPiA+IGV4dGVuc2lvbnMgPHBsdWdpbj4uIEVpdGhlciB3YXkgSSBkb24ndCB0aGluayB3ZSBzaG91bGQgc3BlbmQgdGltPQplCj4gb24KPiA+ID4gPiA+IHRoZSBjb2RlIHBhdGggdW5saWtlbHkgdG8gYmUgdXNlZCBpbiByZWFsIGxpZmUuCj4gPiA+ID4gPgo+ID4gPiA+ID4gWzFdCj4gPiA+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL2Jsb2IvbWF2ZW4tMy41LjEvbWF2ZW4tCj4gPiA+ID4gPgo+ID4gPgo+IGNvcmUvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3Byb2plY3QvRGVmYXVsdFByb2plY3RCdWlsZGluZ0hlbHBlci4KPiA+ID4gPiA+IGphdmEjTDIxMC1MMjE5Cj4gPiA+ID4gPgo+ID4gPiA+ID4gLS0KPiA+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4gPiBJZ29yCj4gPiA+ID4gPgo+ID4gPiA+ID4gT24gV2VkLCBTZXAgMjAsIDIwMTcsIGF0IDAzOjI5IEFNLCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPiA+ID4gPiA+ID4gT24gV2VkLCAyMCBTZXAgMjAxNyAwOToxMjo0NyArMDIwMCwgU3RlcGhlbiBDb25ub2xseQo+ID4gPiA+ID4gPiA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gT24gV2VkIDIwIFNlcCAyMDE3IGF0IDAxOjI5LCBJZ29yIEZlZG9yZW5rbyA8Cj4gaWdvckBpZmVkb3JlbmtvLmNvbT4KPiA+ID4gPiA+IHdyb3RlOgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4+IEluIHRoYXQgY2FzZSwgY2FuIEkgc3VnZ2VzdCBjb3VwbGUgb2YgY2hhbmdlcyB0byB0aGUgdGVzdAo+IHByb2plY3QKPiA+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4gPj4gKiBJIHRoaW5rcyBpdCBtYWtlcyBtb3JlIHNlbnNlIHRvIGNvbmZpZ3VyZSBleHRqYXIxIGFuZAo+IGV4dGphcjIgYXMKPiA+ID4gPiA+ID4gPj4gZXh0ZW5zaW9ucyA8cGx1Z2luPiBlbGVtZW50cyBpbiBwcm9ibGVOIHBvbS54bWwgZmlsZXMuIEZpcnN0PQosCj4gPiA+IHRoZXJlIGlzCj4gPiA+ID4gPiA+ID4+IG5vIG1lYW5pbmdmdWwgb3JkZXIgYmV0d2VlbiA8ZXh0ZW5zaW9ucz4gYW5kIDxwbHVnaW5zPgo+IGVsZW1lbnRzLgo+ID4gPiBNb3JlCj4gPiA+ID4gPiA+ID4+IGltcG9ydGFudGx5LCB0aG91Z2gsIHNpbXBsZSA8ZXh0ZW5zaW9ucz4gYXJlIHRyZWF0ZWQgaW4KPiBzcGVjaWFsCj4gPiA+ID4gPiA+ID4+IG1hdmVuMi1jb21wYXQgbW9kZSBhbmQgYXJlIG5vdCByZXByZXNlbnRhdGl2ZSBvZiBsaWtlbHkKPiByZWFsLXdvcmxkCj4gPiA+ID4gPiA+ID4+IGV4dGVuc2lvbnMuCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gTm90IHN1cmUgSSBhZ3JlZSB3aXRoIHRoaXMuIEkgdGhpbmsgdGhlcmUgYXJlIGphcnMgd29ydGggc2hhcmluPQpnCj4gPiA+IGFjcm9zcwo+ID4gPiA+ID4gPiBtdWx0aXBsZSBwbHVnaW5zLCBidXQgd2hlcmUgbWFraW5nIHRoZSBwbHVnaW4gYW4gZXh0ZW5zaW9uIGlzIGEKPiBiaXQKPiA+ID4gPiA+ID4gd2VpcmQuCj4gPiA+ID4gPiA+IEknbSB0aGlua2luZyBvZiBzY20gYW5kIHdhZ29uIGluIHRoaXMgY2FzZS4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IFRoYXQgc291bmRzIGxpa2Ugd2UgbmVlZCBkb2N1bWVudGF0aW9uIHVwZGF0ZWQgdGhlbi4gTm9uZSBvZgo+IHRoYXQKPiA+ID4gaXMKPiA+ID4gPiA+ID4gPiBvYnZpb3VzIHRvIG1lLgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4gPj4gKiBJIHRoaW5rIHdlIHNob3VsZCBpbnRyb2R1Y2UgTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCB0PQpvCj4gdGhlCj4gPiA+IHRlc3QKPiA+ID4gPiA+ID4gPj4gZXh0ZW5zaW9ucy4gVGhpcyBtZXRhZGF0YSB3aGF0IGludHJvZHVjZWQgdG8gY29uZmlndXJlCj4gY2xhc3NwYXRoCj4gPiA+ID4gPiA+ID4+IHZpc2liaWxpdHksIHNvIGxldHMgdXNlIGl0Lgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBBZ2Fpbiwgbm90IG9idmlvdXMgdG8gbWUsIGlmIHRoYXQgZmlsZSBhbGxvd3MgY29udHJvbCBvZgo+IGNsYXNzcGF0aAo+ID4gPiA+ID4gPiA+IHZpc2liaWxpdHkgdGhlbiBpdCBtYXkgYmUgdGhhdCB0aGUgb25seSBpc3N1ZSAqd2l0aCogMy41LjEgaXMKPiB0aGUKPiA+ID4gbGFjawo+ID4gPiA+ID4gb2YKPiA+ID4gPiA+ID4gPiBkb2N1bWVudGF0aW9uLi4uIG5vdyBwcmV2aW91cyB2ZXJzaW9ucyB3b3VsZCBoYXZlIGJlZW4gYWRkaW5nCj4gPiA+IGJyZWFraW5nCj4gPiA+ID4gPiA+ID4gY2hhbmdlcyBmcm9tIG15IFBvViBidXQgdGhhdCBpcyB0aGUgcGFzdCBhbmQgc2hvdWxkIG5vdCBhZmZlYz0KdAo+IHRoZQo+ID4gPiA+ID4gMy41LjEKPiA+ID4gPiA+ID4gPiByZWxlYXNlLgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gUFJzIGZvciB0aGUgcHJvYmUgcHJvamVjdCB3ZWxjb21lLiBJIGFtIGhhcHB5IHRvIHRyeSBhbmQgd3JpdD0KZQo+IGRvY3MKPiA+ID4gPiA+IG9uY2UKPiA+ID4gPiA+ID4gPiBJCj4gPiA+ID4gPiA+ID4gaGF2ZSBhbiB1bmRlcnN0YW5kaW5nIG9mIHdoYXQgdGhlIGV4cGVjdGVkIGJlaGF2aW91cnMgYXJlCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPiA+PiAtLQo+ID4gPiA+ID4gPiA+PiBSZWdhcmRzLAo+ID4gPiA+ID4gPiA+PiBJZ29yCj4gPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+ID4+IE9uIFR1ZSwgU2VwIDE5LCAyMDE3LCBhdCAwNToxMiBQTSwgU3RlcGhlbiBDb25ub2xseSB3cm90ZToKPiA+ID4gPiA+ID4gPj4gPiBZZXMsIHRoZSBleHBlY3RhdGlvbnMgYXJlIGtleS4gRGVwZW5kaW5nIG9uIHdoYXQgdGhleSBhcmUKPiB3ZSBtYXkKPiA+ID4gPiA+ID4gPj4gZWl0aGVyCj4gPiA+ID4gPiA+ID4+ID4gZHJvcCAzLjUuMSBvciBnbyBhaGVhZCBhcyBpdCBkZXBlbmRzIG9uIHdoZXRoZXIgdGhpcyBpcyBtbz0KcmUKPiA+ID4gY29ycmVjdAo+ID4gPiA+ID4gPiA+PiB0aGFuCj4gPiA+ID4gPiA+ID4+ID4gMy41LjAgb3Igc3dhcHBpbmcgb25lIGZpeCBmb3IgYSBidWcKPiA+ID4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPiA+PiA+IE9uIFR1ZSAxOSBTZXAgMjAxNyBhdCAyMTozOSwgSWdvciBGZWRvcmVua28gPAo+ID4gPiBpZ29yQGlmZWRvcmVua28uY29tPgo+ID4gPiA+ID4gPiA+PiB3cm90ZToKPiA+ID4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPiA+PiA+ID4gSnVzdCB0byBjb25maXJtIEkgdW5kZXJzdGFuZCB3aGF0IHdlIGFyZSB0cnlpbmcgdG8KPiBlc3RhYmxpc2gKPiA+ID4gaGVyZS4KPiA+ID4gPiA+ID4gPj4gV2UKPiA+ID4gPiA+ID4gPj4gPiA+IHdhbnQgdG8gZGVjaWRlIHRoZSBleHBlY3RlZC9kZXNpcmVkIGNvbXBvbmVudCBpbmplY3Rpb24KPiA+ID4gYmVoYXZpb3VyCj4gPiA+ID4gPiA+ID4+IGFuZAo+ID4gPiA+ID4gPiA+PiA+ID4gY2xhc3NwYXRoIHZpc2liaWxpdHkgaW4gdGhlIGFic2VuY2Ugb2YgcGFja2FnZSBhbmQKPiBhcnRpZmFjdAo+ID4gPiBleHBvcnQKPiA+ID4gPiA+ID4gPj4gPiA+IGNvbmZpZ3VyYXRpb24gKGkuZS4gTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCBmaWxlKS4KPiBEaWQgSQo+ID4gPiBnZXQKPiA+ID4gPiA+ID4gPj4gdGhpcwo+ID4gPiA+ID4gPiA+PiA+ID4gcmlnaHQ/Cj4gPiA+ID4gPiA+ID4+ID4gPgo+ID4gPiA+ID4gPiA+PiA+ID4gLS0KPiA+ID4gPiA+ID4gPj4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4gPiA+ID4+ID4gPiBJZ29yCj4gPiA+ID4gPiA+ID4+ID4gPgo+ID4gPiA+ID4gPiA+PiA+ID4gT24gVHVlLCBTZXAgMTksIDIwMTcsIGF0IDAzOjUyIFBNLCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPiA+ID4gPiA+ID4gPj4gPiA+ID4gTGV0J3MgZG8gaXQgbGlrZSB0aGlzOgo+ID4gPiA+ID4gPiA+PiA+ID4gPgo+ID4gPiA+ID4gPiA+PiA+ID4KPiA+ID4gPiA+ID4gPj4KPiBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kb3dubG9hZC9hdHRhY2htZW50cy8yMzI5ODQxLwo+ID4gPiA+ID4gY2xhc3NyZWFsbXMucGRmP2FwaT0zRHYyCj4gPiA+ID4gPiA+ID4+ID4gPiA+Cj4gPiA+ID4gPiA+ID4+ID4gPiA+IFJvYmVydAo+ID4gPiA+ID4gPiA+PiA+ID4gPgo+ID4gPiA+ID4gPiA+PiA+ID4gPiBPbiBUdWUsIDE5IFNlcCAyMDE3IDIxOjA4OjM5ICswMjAwLCBTdGVwaGVuIENvbm5vbGx5Cj4gPiA+ID4gPiA+ID4+ID4gPiA+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+ID4gPiA+ID4gPj4gPiA+ID4KPiA+ID4gPiA+ID4gPj4gPiA+ID4gPiBJIHRoaW5rIHlvdSB3aWxsIG5lZWQgYSBsaW5rIHRvIHRoZSBQREYgYXMKPiBhdHRhY2htZW50cyBhcmUKPiA+ID4gPiA+ID4gPj4gc3RyaXBwZWQKPiA+ID4gPiA+ID4gPj4gPiA+IGZyb20KPiA+ID4gPiA+ID4gPj4gPiA+ID4gPiB0aGUgTUwKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+IE9uIFR1ZSAxOSBTZXAgMjAxNyBhdCAxOTo1NywgUm9iZXJ0IFNjaG9sdGUKPiA+ID4gPiA+ID4gPj4gPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgo+ID4gPiA+ID4gPiA+PiA+ID4gd3JvdGU6Cj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gQXR0YWNoZWQgYSBzaW5nbGUgcGFnZSBvdmVydmlldy4KPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4KPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gUGVyIGJsb2NrIHlvdSdsbCBzZWUgaW4gdGhlIHVwcGVyIGxlZnQgY29ybmVyIHRoZQo+ID4gPiBleGVjdXRlZAo+ID4gPiA+ID4gPiA+PiBwbHVnaW4KPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gVGhlIGxlZnQgY29sdW1uIGNvbnRhaW5zIHRoZSBleHRlbnNpb25zIGFuZCBwbHVnaW4gPQppbgo+ID4gPiBvcmRlcmFzCj4gPiA+ID4gPiA+ID4+ID4gPiBzcGVjaWZpZWQKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gaW4KPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gdGhlIHBvbS54bWwKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gSW4gZXZlcnkgY2xhc3Nsb2FkZXJjb2x1bW4geW91J2xsIHNlZSBudW1iZXJzIHdoaWNoCj4gPiA+IHJlcHJlc2VudAo+ID4gPiA+ID4gPiA+PiB0aGUKPiA+ID4gPiA+ID4gPj4gPiA+IG9yZGVyLgo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+Pgo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiBJIGhvcGUgSSBkaWRuJ3QgbWFrZSBhbnkgbWlzdGFrZXMuCj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+IFRvbW9ycm93IEkgaGF2ZSBlbm91Z2ggdGltZSB0byBzZWUgaWYgSSB1bmRlcnN0YW5kCj4gd2hhdCdzCj4gPiA+ID4gPiA+ID4+IGhhcHBlbmluZwo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiBoZXJlLgo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+Pgo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiBJIHdpbGwgY29tZSBiYWNrIHdpdGggbXkgY29uY2x1c2lvbnMuCj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+IFJvYmVydAo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+Pgo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiBPbiBUdWUsIDE5IFNlcCAyMDE3IDA2OjU1OjA4ICswMjAwLCBJZ29yIEZlZG9yZW5rbyA9CjwKPiA+ID4gPiA+ID4gPj4gPiA+IGlnb3JAaWZlZG9yZW5rby5jb20+Cj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+IHdyb3RlOgo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+Pgo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IFRMO0RSIHlvdXIgdGVzdCBwcm9qZWN0IGV4cG9zZWQgdHdvIGV4aXN0aW5nIGJ1Z3M9CiwKPiBvbmUKPiA+ID4gPiA+ID4gPj4gY2hhbmdlIGluCj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gYmVoYXZpb3VyIGFuZCBvbmUgcXVpcmsgSSBjYW4ndCBleHBsYWluCj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIEJ1aWxkIGA8ZXh0ZW5zaW9ucz5gIGFyZSBsb2FkZWQgYnkgdHdvCj4gY2xhc3Nsb2FkZXJzLAo+ID4gPiA+ID4gd2hpY2gKPiA+ID4gPiA+ID4gPj4gaXMKPiA+ID4gPiA+ID4gPj4gYQo+ID4gPiA+ID4gPiA+PiA+ID4gYnVnCj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+IGluCj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gRGVmYXVsdFByb2plY3RCdWlsZGluZ0hlbHBlciNjcmVhdGVQcm9qZWN0UmVhbG0gYT0KbmQKPiA+ID4gPiA+IGV4cGxhaW5zCj4gPiA+ID4gPiA+ID4+IHdoeSB5b3UKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gc2VlCj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gZXh0amFyMS9leHRqYXIyIGluIHRoZSBvdXRwdXQKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIENsYXNzUmVhbG0gZG9lcyBub3QgYWxsb3cgc2FtZSBmb3JlaWduLWltcG9ydAo+IGZyb20KPiA+ID4gPiA+IG11bHRpcGxlCj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gY2xhc3Nsb2FkZXJzLCB3aGljaCBpcyBhIGJ1ZyBhbmQgZXhwbGFpbnMgd2h5IGl0Cj4gaXMgbm90Cj4gPiA+ID4gPiA+ID4+IHBvc3NpYmxlIHRvCj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+IGxvYWQKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBzYW1lIHJlc291cmNlIGZyb20gbXVsdGlwbGUgcGx1Z2lucy9leHRlbnNpb25zCj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gKiBUQ0NMIGRvZXMgbm90IGhhdmUgYWNjZXNzIHRvIHByaXZhdGUgKGkuZS4gbm90Cj4gPiA+IGV4cG9ydGVkKQo+ID4gPiA+ID4gPiA+PiByZXNvdXJjZXMKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gb2YKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiB0aGlzIGV4dGVuc2lvbnMgcGx1Z2luLCB3aGljaCBpcyBhIGNoYW5nZSBvZgo+IGJlaGF2aW91cgo+ID4gPiA+ID4gPiA+PiBpbnRyb2R1Y2VkIGJ5Cj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gbW5nLTYyMDkgZml4Cj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gKiBBbHNvLCBjb21wb25lbnQgaW5qZWN0aW9uIG9yZGVyIGFwcGVhcnMgdG8gYmUKPiA+ID4gYmFja3dhcmRzLAo+ID4gPiA+ID4gPiA+PiBidXQKPiA+ID4gPiA+ID4gPj4gbWF5YmUKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBTdHVhcnQgY2FuIGV4cGxhaW4gd2h5Lgo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBCZWxvdyBpcyBtb3JlIGRldGFpbGVkIGV4cGxhbmF0aW9uIG9mIGV4cGVjdGVkIGFuPQpkCj4gPiA+IG9ic2VydmVkCj4gPiA+ID4gPiA+ID4+ID4gPiBiZWhhdmlvdXIKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gIyMgQ29tcG9uZW50IGluamVjdGlvbiBkZXBlbmRzIG9uIHRoZSBjdXJyZW50bHkKPiBydW5uaW5nCj4gPiA+ID4gPiA+ID4+IHBsdWdpbgo+ID4gPiA+ID4gPiA+PiBhbmQKPiA+ID4gPiA+ID4gPj4gPiA+IHRoZQo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGluamVjdGlvbiBzaXRlCj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBDdXJyZW50bHkgcnVubmluZyBwbHVnaW5zIGhhdmUgYWNjZXNzIHRvIHRoZQo+IGZvbGxvd2luZwo+ID4gPiA+ID4gPiA+PiBjb21wb25lbnQKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBpbXBsZW1lbnRhdGlvbnM6Cj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIFJlZ3VsYXIgcGx1Z2luIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50cwo+IGltcGxlbWVudGVkCj4gPiA+IGJ5Cj4gPiA+ID4gPiB0aGUKPiA+ID4gPiA+ID4gPj4gcGx1Z2luLAo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IHByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucywgaWYgYW55ICh2aWEgcHJvamVjdCBjbGE9CnNzCj4gPiA+IHJlYWxtCj4gPiA+ID4gPiA+ID4+IGZvcmVpZ24KPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBpbXBvcnQpIGFuZCBNYXZlbiBDb3JlLgo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogRXh0ZW5zaW9uIHBsdWdpbiBoYXMgYWNjZXNzIHRvIGNvbXBvbmVudHMKPiA+ID4gaW1wbGVtZW50ZWQgYnkKPiA+ID4gPiA+ID4gPj4gdGhlCj4gPiA+ID4gPiA+ID4+ID4gPiBwcm9qZWN0Cj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gYnVpbGQgZXh0ZW5zaW9ucyBhbmQgTWF2ZW4gQ29yZS4KPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIFdpdGhvdXQgYSBydW5uaW5nIHBsdWdpbiAoZS5nLiwgZHVyaW5nIHByb2plY3QKPiA+ID4gZGVwZW5kZW5jeQo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiByZXNvbHV0aW9uKSwKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBjb21wb25lbnRzIGltcGxlbWVudGVkIGJ5IHRoZSBwcm9qZWN0IGJ1aWxkCj4gZXh0ZW5zaW9ucwo+ID4gPiBhbmQKPiA+ID4gPiA+ID4gPj4gTWF2ZW4KPiA+ID4gPiA+ID4gPj4gPiA+IENvcmUKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBhcmUgYWNjZXNzaWJsZS4KPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IERpZmZlcmVudCBpbmplY3Rpb24gc2l0ZXMgaGF2ZSBhY2Nlc3MgdG8gdGhlCj4gZm9sbG93aW5nCj4gPiA+ID4gPiA+ID4+IGNvbXBvbmVudAo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGludGVyZmFjZXM6Cj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIE1hdmVuIENvcmUgaGFzIGFjY2VzcyB0byBjb21wb25lbnQgaW50ZXJmYWNlcwo+ID4gPiBkZWZpbmVkIGJ5Cj4gPiA+ID4gPiA+ID4+IHRoZQo+ID4gPiA+ID4gPiA+PiBjb3JlCj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gaXRzZWxmIChvYnZpb3VzbHkpCj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gKiBQcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMgaGF2ZSBhY2Nlc3MgdG8KPiAqKnB1YmxpYyoqCj4gPiA+ID4gPiA+ID4+IGNvbXBvbmVudAo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGludGVyZmFjZXMgZGVmaW5lZCBieSBNYXZlbiBDb3JlIGFuZCBjb21wb25lbnQKPiA+ID4gaW50ZXJmYWNlcwo+ID4gPiA+ID4gPiA+PiBkZWZpbmVkIGJ5Cj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+IHRoZQo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGJ1aWxkIGV4dGVuc2lvbiBpdHNlbGYgKHRoZXJlIGlzIG5vIHdheSB0byBhY2Nlc3MKPiA+ID4gY29tcG9uZW50Cj4gPiA+ID4gPiA+ID4+ID4gPiBpbnRlcmZhY2VzCj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gZGVmaW5lZCBpbiBvdGhlciBleHRlbnNpb25zKQo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogUmVndWxhciBwbHVnaW5zIGhhdmUgYWNjZXNzIHRvICoqcHVibGljKioKPiBjb21wb25lbnQKPiA+ID4gPiA+ID4gPj4gaW50ZXJmYWNlcwo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiBkZWZpbmVkCj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gYnkgTWF2ZW4gQ29yZSwgY29tcG9uZW50IGludGVyZmFjZXMgKipleHBvcnRlZCoqID0KYnkKPiA+ID4gYnVpbGQKPiA+ID4gPiA+ID4gPj4gZXh0ZW5zaW9ucwo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiBhbmQKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBjb21wb25lbnQgaW50ZXJmYWNlcyBkZWZpbmVkIGluIHRoZSBwbHVnaW4gaXRzZWxmCj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBGb3IgaW5qZWN0aW9uIHRvIHdvcmssIGluamVjdGlvbiBzaXRlIGhhcyB0byBoYXZlCj4gPiA+IGFjY2VzcyB0bwo+ID4gPiA+ID4gPiA+PiB0aGUKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBjb21wb25lbnQgaW50ZXJmYWNlIGFuZCB0aGUgY29tcG9uZW50Cj4gaW1wbGVtZW50YXRpb24KPiA+ID4gbXVzdAo+ID4gPiA+ID4gYmUKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gYWNjZXNzaWJsZQo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IHRocm91Z2ggdGhlIGN1cnJlbnQgY29udGV4dC4KPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IEZyb20gd2hhdCBJIGNhbiB0ZWxsLCBpbiB5b3VyIGV4YW1wbGUgYWxsIHBsdWdpbnMKPiBoYXZlCj4gPiA+ID4gPiBhY2Nlc3MKPiA+ID4gPiA+ID4gPj4gdG8gdGhlCj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gcmlnaHQgY29tcG9uZW50cyB3aGVuIHVzaW5nIGN1cnJlbnQKPiAzLjUuMi1TTkFQU0hPVC4gVGhlCj4gPiA+ID4gPiA+ID4+IGluamVjdGlvbgo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiBvcmRlcgo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGRvZXMgYXBwZWFyIHRvIGJlIGJhY2t3YXJkcyBmcm9tIHdoYXQgSSBleHBlY3RlZCwKPiA+ID4gaG93ZXZlci4KPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gIyMgUmVzb3VyY2VzIGxvb2t1cCBmdWxseSBkZXBlbmRzIG9uIGNsYXNzcGF0aAo+ID4gPiB2aXNpYmlsaXR5LAo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiBzcGVjaWZpY2FsbHkKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogUmVndWxhciBwbHVnaW4gY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0bwo+IHJlc291cmNlcwo+ID4gPiBmcm9tCj4gPiA+ID4gPiB0aGUKPiA+ID4gPiA+ID4gPj4gcGx1Z2luCj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gaXRzZWxmLCBmcm9tICoqZXhwb3J0ZWQqKiBwYWNrYWdlcyBvZiB0aGUgcHJvamVjdAo+IGJ1aWxkCj4gPiA+ID4gPiA+ID4+IGV4dGVuc2lvbnMKPiA+ID4gPiA+ID4gPj4gPiA+IGFuZAo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICoqcHVibGljKiogTWF2ZW4gQ29yZSBwYWNrYWdlcwo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogRXh0ZW5zaW9ucyBwbHVnaW4gY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byB0aGUKPiA+ID4gcmVzb3VyY2VzCj4gPiA+ID4gPiA+ID4+IGZyb20gdGhlCj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gZXh0ZW5zaW9ucyBwbHVnaW4gaXRzZWxmIGFuZCBmcm9tICoqcHVibGljKiogTWF2ZT0Kbgo+IENvcmUKPiA+ID4gPiA+ID4gPj4gcGFja2FnZXMKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIFByb2plY3QgY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byBjbGFzc2VzIGFuZAo+ID4gPiByZXNvdXJjZXMKPiA+ID4gPiA+ID4gPj4gPiA+ICoqZXhwb3J0ZWQqKgo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGJ5IHByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucyBhbmQgKipwdWJsaWMqKiBNYXZlbgo+IENvcmUKPiA+ID4gPiA+ID4gPj4gcGFja2FnZXMKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IEkgc2VlIHRocmVlIHByb2JsZW1zIGhlcmUKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogTWF2ZW4gYWRkcyBidWlsZCBzaW5nbGUtamFyIGA8ZXh0ZW5zaW9ucz5gCj4gZWxlbWVudHMKPiA+ID4gPiA+ID4gPj4gZGlyZWN0bHkKPiA+ID4gPiA+ID4gPj4gdG8KPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBwcm9qZWN0IGNsYXNzIHJlYWxtICoqYW5kKiogY3JlYXRlcyBzZXBhcmF0ZQo+IGV4dGVuc2lvbnMKPiA+ID4gPiA+IGNsYXNzCj4gPiA+ID4gPiA+ID4+IHJlYWxtcwo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiBmb3IKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiB0aGVtLiBXaGljaCByZXN1bHRzIGluIGR1cGxpY2F0ZSBjbGFzc2VzL3Jlc291cmNlPQpzCj4gPiA+IGxvYWRlZAo+ID4gPiA+ID4gYnkKPiA+ID4gPiA+ID4gPj4gdHdvCj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gY2xhc3Nsb2FkZXJzIGFuZCBleHBsYWlucyB3aHkgeW91IHNlZQo+IGV4dGphcjEvZXh0amFyMgo+ID4gPiA+ID4gb3V0cHV0Cj4gPiA+ID4gPiA+ID4+ICh3aGljaAo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiB5b3UKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBzaG91bGRuJ3QgYWNjb3JkaW5nIHRvIHRoZSBleHBsYW5hdGlvbiBhYm92ZSkKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIENsYXNzUmVhbG0gZG9lcyBub3QgYWxsb3cgZm9yZWlnbi1pbXBvcnQgb2YgdGhlCj4gc2FtZQo+ID4gPiA+ID4gPiA+PiBwYWNrYWdlCj4gPiA+ID4gPiA+ID4+IGZyb20KPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBtdWx0aXBsZSBjbGFzc2xvYWRlcnMuIFRoaXMgbWFrZXMgaXQgaW1wb3NzaWJsZSB0PQpvCj4gPiA+IGxvYWQgdGhlCj4gPiA+ID4gPiA+ID4+IHNhbWUKPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiByZXNvdXJjZSBmcm9tIG11bHRpcGxlIHBsdWdpbnMvZXh0ZW5zaW9ucy4KPiA+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIEV4dGVuc2lvbnMgcGx1Z2lucyBjYW5ub3QgYWNjZXNzIHRoZWlyIG93bgo+IHByaXZhdGUKPiA+ID4gKGkuZS4KPiA+ID4gPiA+ID4gPj4gbm90Cj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+IGV4cG9ydGVkKQo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IHJlc291cmNlcyB2aWEgVENDTCwgdGhpcyBpcyBjaGFuZ2UgaW4gYmVoYXZpb3VyCj4gPiA+IGludHJvZHVjZWQKPiA+ID4gPiA+IGJ5Cj4gPiA+ID4gPiA+ID4+ID4gPiBtbmctNjIwOQo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGZpeAo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gSG9wZSB0aGlzIGhlbHBzCj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+ID4+Cj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiA+ID4gPiA+PiA+ID4gPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOgo+IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiA+ID4+ID4gPiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6Cj4gPiA+IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4gPj4gPiA+ID4KPiA+ID4gPiA+ID4gPj4gPiA+ID4KPiA+ID4gPiA+ID4gPj4KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID4gPiA+ID4+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6Cj4gZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4gPj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDoKPiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiA+ID4+ID4gPiA+Cj4gPiA+ID4gPiA+ID4+ID4gPgo+ID4gPiA+ID4gPiA+PiA+ID4KPiA+ID4gPiA+ID4gPj4KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID4gPiA+ID4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPiA+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDoKPiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiA+ID4+ID4gPgo+ID4gPiA+ID4gPiA+PiA+ID4gLS0KPiA+ID4gPiA+ID4gPj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4gPj4KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID4gPiA+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4gPj4gLS0KPiA+ID4gPiA+ID4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPgo+ID4gPiA+ID4KPiA+ID4gPiA+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4KPiA+ID4gPiA+Cj4gPiA+Cj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Cj4gPiA+IC0tCj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4gLS0KU2VudCBmcm9tIG15IHBob25lCgotLTAwMWExMTQ0MjI1NGY3NTBmODA1NTlmNDk0YzUtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDQxMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgTm92ICA0IDE3OjE3OjM5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQxMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAxODA4MDEwNjQ1Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMTc6MTc6MzkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2MDk4MyBpbnZva2VkIGJ5IHVpZCA1MDApOyA0IE5vdiAyMDE3IDE3OjE3OjM4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MDkyOSBpbnZva2VkIGJ5IHVpZCA1MDApOyA0IE5vdiAyMDE3IDE3OjE3OjM4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjA5MTcgaW52b2tlZCBieSB1aWQgOTkpOyA0IE5vdiAyMDE3IDE3OjE3OjM4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwNCBOb3YgMjAxNyAxNzoxNzozOCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEEzNjgxMTA3Q0EyCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxNzoxNzozNyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuMzgKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi4zOCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDEsCglVUklCTF9CTE9DS0VEPTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgYzNZQUpaTXVhVDVuIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAgNCBOb3YgMjAxNyAxNzoxNzozNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdtMC1mNDQuZ29vZ2xlLmNvbSAobWFpbC13bTAtZjQ0Lmdvb2dsZS5jb20gWzc0LjEyNS44Mi40NF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBDRkFEODVGMjlBCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxNzoxNzozNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13bTAtZjQ0Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGIxODlzbzY2ODQ3NzZ3bWQuNAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDA0IE5vdiAyMDE3IDEwOjE3OjM1IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPW5IZndFLzRoekphM1k2aDNIL0FjU1dsUVBiSWpqTlJUSmkyc1c2OTRLOFU9OwogICAgICAgIGI9VG52K2lmWWkwM1FBUGF2TStDZU94OHQxR09acEJyRUhXdlpyTEdGdHNQanVzTkpqYk5TZGM1UzQzaFNrTnJxWmlJCiAgICAgICAgIDRNOXduMkVUcDgxSTVVaG5oTjB5WTZXZjFjR3JzY3RMakYzSHJyMFhDYVlCM3I4UmMycnNMZzRINEJ2YTB1SXVNNFdkCiAgICAgICAgIFpGd0pwVEhCRVE3QlBIaWZmemJvczE3OFRWQ0pJclYvMTBFUzZ1N0w5Ym1FelYyZnI3bmlocnc2Mk5PU2dPRUJyaDlJCiAgICAgICAgIDRNMEpzcjNobFdTSFUvSmphVzVPcWc2d3FVVkFxdWRlMm5vbEc2eGo2VUhlZ0thTmhLakRFWWZudXllMFdZZDdjVEZ1CiAgICAgICAgIE9mMWFZRmIzcEt2L3hGTGlpVmtyYjNJUHdkcHYyVXpVVjBQeG8xdWdMejhlNVloYlhmdkd1UkpXU082UU9Na3VGbEJ2CiAgICAgICAgIGtGeVE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPW5IZndFLzRoekphM1k2aDNIL0FjU1dsUVBiSWpqTlJUSmkyc1c2OTRLOFU9OwogICAgICAgIGI9bHV1WEtVUGlGOW5RaGs4VmhvdDA3bzdoUklYYkJ3dWFVVHlpL0FlTVlKeUQ0L2UrUnZpQlcxSlJnLzYvTEhyL2IrCiAgICAgICAgIGRoVDhrTHJqOExKa1JpUU1HR3JSUE5Cemg4MEFPRnlDcmR4K3hDYTc3YTJuUVc0dXJCSUZMNmV1cklJYTRLa05yWnNYCiAgICAgICAgIHM5K3Y5SnhNUkNzQXJ6Y0JvVXhpaUNiL0hjQmZjSWhwcUppWjJneFgrMGtSRFQ0U2NMRGgrcmVpQWNQNkFNZHA2UCtpCiAgICAgICAgIHNBblhpVDZRbGRjcW8rN1pzV0pFTlozMCtWVTZlcUl4QmhTSlRmUXFQVkpLSkp2bGVOT1RyNEFzT2U4NFJMcDF2a2RmCiAgICAgICAgIG1lWDQrdThvdTFqVVFGYTNCcUx4QXluL05vc2YyRlhWd1NkZHFNQzd2b25LRXNrTzJuUXdXcTVoVVNCU0Q1Z2h5WFU3CiAgICAgICAgIE16T3c9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDQyeWZoNm5uYmxwaDFtbzJ1T3A0V0RWNHUvWG40QnA0RG5mUjI1eTF2OU5JRkFrTFVXCglDYVA1MmRtMklCZ0FGOWFnZERlWnVtVnZ6ZDdSbXdMdUtBWExwRGxSU2c9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArVFl5OUs2TjhEMDRpNUt5RS9kL2g3M2F1YkN2Nm1idUdlZE5BWFVYdU0rUUtGaDR5d21wWDR4YTkvcmsrcS93MGhqdmx1b3U1R1hSNDhRY29HSE9qaz0KWC1SZWNlaXZlZDogYnkgMTAuMjguMi44NCB3aXRoIFNNVFAgaWQgODFtcjE4ODU0OTJ3bWMuMTA2LjE1MDk4MTU4NTQ1Mzk7IFNhdCwKIDA0IE5vdiAyMDE3IDEwOjE3OjM0IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDxDQStuUG5Nd0VIOVoybXlwNzF1YVNyZGN5TEpSRnJFLVZydDIwMTkxcmQwMWgrVWZoandAbWFpbC5nbWFpbC5jb20+CiA8Q0ErMjk4VWpwNmRaTFYxeU5xYlBCYzRmV0JEem96RXhjQ203RjU2Q249RS05RmFEYThBQG1haWwuZ21haWwuY29tPgogPENBSDl1MTBudG1GQlpjVGg5WXZBYkVLZ0R1Sk45WGQ1eHVlcE80ZmlSNUJLUnF1WkJQZ0BtYWlsLmdtYWlsLmNvbT4KIDwxNTQ5ODU2LkhlMU1TQngzVVNAZ2lnYT4gPENBK25Qbk16WUdwMlZFSFRZMFVYTlN4YVZ2ZkNUb1ordG1RRFZjUHpRVkc2emJOc29IZ0BtYWlsLmdtYWlsLmNvbT4KIDxDQUNMRT03T3RVVzlNbWk1azhRUWtmUDNHYkJndVhKTUZMcllWWHFHeTAxYnRfRDRkWXdAbWFpbC5nbWFpbC5jb20+CkluLVJlcGx5LVRvOiA8Q0FDTEU9N090VVc5TW1pNWs4UVFrZlAzR2JCZ3VYSk1GTHJZVlhxR3kwMWJ0X0Q0ZFl3QG1haWwuZ21haWwuY29tPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBTYXQsIDA0IE5vdiAyMDE3IDE3OjE3OjIzICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NelVQK0E9Mmp1SkVYcHZ1MnNvQWVHPXMwUXRjd1dEczAwaEo0RjVybVRUZmdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiA0LjAuMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTEzYzhiYjhhZmFjMTAwNTVkMmI2NWVjIgoKLS0wMDFhMTEzYzhiYjhhZmFjMTAwNTVkMmI2NWVjCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCk9uIFNhdCA0IE5vdiAyMDE3IGF0IDE3OjExLCBSb21haW4gTWFubmktQnVjYXUgPHJtYW5uaWJ1Y2F1QGdtYWlsLmNvbT4Kd3JvdGU6Cgo+IE15IHdpc2hsaXN0IGFzIGEgdXNlciB3b3VsZCBiZToKPgo+IC0gaW5jcmVtZW50YWwgYnVpbGQgKGJhc2VkIG9uIHNjbSBpcyBmaW5lKQo+IC0gc29tZSBidWlsdCBpbiBzY3JpcHRpbmcgKGdyb292eSBiYXNlZD8pCgoKSSBoYXZlIGEgd29ycnkgZm9yIGdyb292eSB3aXRoIEphdmEgOSsKCkFuZCBzY3JpcHRpbmcgaXMgdGhlIHBhdGggdG8gdGhlIGRhcmsgc2lkZSBvZiBpbXBlcmF0aXZlIGJ1aWxkcy4uLiBidXQKcHJvcG9zYWxzIHdlbGNvbWUKCgo+IC0gcGx1Z2luIHNvcnRpbmcgZnJvbSB0aGUgcG9tIChjdXJyZW50IHJ1bGVzIGFyZSBkZXRlcm1pbmlzdGljIGJ1dCB0b28gaGE9CnJkCj4gdG8gdXNlIHNvIGRlZmluaW5nIGEgZGVwZW5kZW5jeSBiZXR3ZWVuIHR3byBleGVjdXRpb25zIGluIHRoZSBzYW1lIHBoYXNlCj4gd291bGQgYmUgdmVyeSBoYW5keSAtIGRlcGVuZHMtb24gdGFnPykKPgo+IEFzIGEgcGx1Z2luIGRldmVsb3BwZXI6Cj4KPiAtIHByb2dyYW1tYXRpYyBjb21wb25lbnQgbG9va3VwIGFwaSAoaXQgaXMgZGVwcmVjYXRlZCBhdCB0aGUgbW9tZW50KQo+IC0gYWJpbGl0eSB0byBjb250cmlidXRlIGRlcGVuZGVuY2llcyBmb3IgbmV4dCBwbHVnaW5zL3BoYXNlcwo+IChyZXNvbHZlZEFydGlmYWN0cykKPgo+IExlIDQgbm92LiAyMDE3IDE3OjAzLCAiU3RlcGhlbiBDb25ub2xseSIgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb209Cj4KPiBhID1DMz1BOWNyaXQgOgo+Cj4gPiBPbiA0IE5vdmVtYmVyIDIwMTcgYXQgMDc6MzAsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+IHdyb3RlOgo+ID4KPiA+ID4gTGUgc2FtZWRpIDQgbm92ZW1icmUgMjAxNywgMTQ6NDM6NDYgQ0VUIEpvaG4gUGF0cmljayBhID1DMz1BOWNyaXQgOgo+ID4gPiA+IEkndmUgZ290ICBhIGZldyB1cGRhdGVzIEkgZmVlbCB3b3VsZCBiZSB1c2VmdWwgZm9yIHRoZSBuZXh0IG1ham9yCj4gPiA+IHZlcnNpb247Cj4gPiA+ID4KPiA+ID4gPiAxKSBQYWNrYWdpbmcgdHlwZSBnZW5lcmljICdhcmNoaXZlJywgb3Igc3BlY2lmaWMgemlwIG9yIHRhci5nego+ID4gPiA+IC0gbWF5YmUgYSB1c2VyIHByb3BlcnR5IHRvIGVuYWJsZSB6aXAgYW5kL29yIHRhci5nego+ID4gPiA+Cj4gPiA+ID4gMikgUGFja2FnaW5nIHR5cGUgZ2VuZXJpYyAnYXBwbGljYXRpb24nLCBvciBzcGVjaWZpYyBycG0gb3IgZGViCj4gPiA+ID4gLSBpbiBmdXR1cmUgY291bGQgYmUgZXh0ZW5kZWQgZm9yIHdpbmRvd3MgaW5zdGFsbGVycyB0b28KPiA+ID4gPgo+ID4gPiA+IE92ZXIgdGhlIHBhc3QgNiB5ZWFycyBJJ3ZlIG1haW5seSBjcmVhdGVkIGphciwgd2FyIG9yIGVhciwgYnV0IGZvcgo+ID4gPiA+IGRlcGxveW1lbnQgdGhlIHN0YW5kYXJkIGlzIGJ1bmRsZSBpdCB1cCBpbnRvIGEgdGFyLmd6IG9yIHppcCwgYWxvbmcKPiA+ID4gPiB3aXRoIHRoZSBhbnNpYmxlIHNjcmlwdHMgb3IgY3VzdG9tIHNjcmlwdHMuIFNvIEkgdXN1YWxseSB1c2UgcG9tCj4gPiA+ID4gcGFja2FnaW5nIHRoZW4gYWRkaW5nIGFzc2VtYmx5IHBsdWdpbiwganVzdCBmZWVscyBzdHJhbmdlIGRvaW5nIHRoYT0KdAo+ID4gPiA+IGFsbCB0aGUgdGltZSBhbmQgaXQgbWlnaHQgbWFrZSBpdCBtb3JlIHNpbXBsZXIgZm9yIGV2ZXJ5b25lLgo+ID4gPiBkbyB5b3UgaGF2ZSBzb21lIGRlbW9zIG9mIHN1Y2ggcGFja2FnaW5ncz8KPiA+ID4KPiA+Cj4gPiBUaGlzIGZlZWxzIGxpa2UgcGx1Z2luIGxldmVsIGZ1bmN0aW9uYWxpdHkuIEkgYW0gdW5jbGVhciBob3cgdGhpcyBuZWVkcwo+ID4gY29yZSBjaGFuZ2VzLiBDb3VsZCB5b3UgcHJvdmlkZSBkZXRhaWxzIHdoZXJlIHlvdSBmZWVsIHdlIG5lZWQgdG8gbW9kaWY9CnkKPiA+IGNvcmUgZm9yIHRoaXMgKG9yIGlzIGl0IHlvdSB3YW50IHRvIGJlIGFibGUgdG8gZmV0Y2ggc29tZSBhcnRpZmFjdHMgZnJvPQptCj4gPiB3aXRoaW4gdGhlIHppcCwgaW93IGEgemlwIHdpdGggdGhlIG90aGVyIGFydGlmYWN0cyBlbWJlZGRlZCBhbmQgd2UgInJlYT0KY2gKPiA+IGluIj8KPiA+Cj4gPgo+ID4gPgo+ID4gPiA+Cj4gPiA+ID4gMykgQ2hlY2tzdW0sIHN3aXRjaCB0byBTSEEzLCBkcm9wIG1kNSBhbmQgc2hhMS4gSWYgd2UgY2FyZSBhYm91dAo+ID4gPiA+IHNlY3VyaXR5LCB3ZSBzaG91bGQga2VlcCB1cCB0byBkYXRlIHdpdGggd2hhdCBpcyBjb25zaWRlcmVkIHNlY3VyZQo+ID4gPiA+IHN0aWxsLgo+ID4gPiAtMQo+ID4gPiBjaGVja3N1bXMgYXJlIGNoZWNrc3Vtcywgbm90IHNlY3VyaXR5Cj4gPiA+IGlmIHlvdSB3YW50IHNlY3VyaXR5LCBkb24ndCBsb29rIGF0IGNoZWNrc3VtcyBidXQgYXQgc2lnbmF0dXJlcwo+ID4gPgo+ID4gPiBUaGlzIG1ha2VzIG1lIHRoaW5rIHRoYXQgd2Ugc2hvdWxkIGZpbmQgYSB3YXkgdG8gc2hvdyBzZWN1cml0eSAod2l0aAo+ID4gdGhlc2UKPiA+ID4gc2lnbmF0dXJlcyk6IEkgZG9uJ3Qga25vdyBwcmVjaXNlbHkgaG93LCBidXQgdGhhdCB3b3VsZCBkZWZpbml0ZWx5IGJlCj4gPiA+IHVzZWZ1bAo+ID4gPgo+ID4gPiA+Cj4gPiA+ID4gMykgRGViaWFuIHN0eWxlIHJlcG8gbWFuYWdlbWVudC4gSW5zdGVhZCBvZiBoYXZpbmcgYSBtYXNzaXZlIGJ1Y2tldAo+IG9mCj4gPiA+ID4gYXJ0ZWZhY3RzLCBzdGFydCBoYXZpbmcgcmVwbydzIGVpdGhlciBiYXNlZCB1cG9uIGphdmEgY2xhc3MgdmVyc2lvbj0KLAo+ID4gPiA+IG9yIG1hdmVuIG1ham9yIHJlbGVhc2UgdmVyc2lvbi4gQWxzbyBzcGxpdCBtb3JlIHRoYW4ganVzdCByZWxlYXNlIGE9Cm5kCj4gPiA+ID4gc25hcHNob3QsIG1heWJlIGNvcmUsIHBsdWdpbnMsIGdlbmVyYWwuLi4KPiA+ID4gPgo+ID4gPiA+IE5vdCBzdXJlIGV4YWN0bHkgdGhlIGJlc3Qgc29sdXRpb24sIGJ1dCBhcyBtYXZlbiBjZW50cmFsIGhhcyBzdHVmZgo+ID4gPiA+IGdvaW5nIGJhY2sgeWVhcnMgYW5kIHllYXJzLiBIb3cgbXVjaCBvZiB0aGUgb2xkIHN0dWZmIHdpbGwgYmUgdXNlZAo+IGZvcgo+ID4gPiA+IG5ldyBwcm9qZWN0cyBnb2luZyBmb3J3YXJkLgo+ID4gPiB3aGF0J3MgdGhlIG9iamVjdGl2ZT8KPiA+ID4gd2l0aCBMaW51eCBkaXN0cmlidXRpb25zLCB0aGVyZSBhcmUgY29tcGF0aWJpbGl0eSBpc3N1ZXMgdGhhdCByZXF1aXJlCj4gPiA+IGRpZmZlcmVudCBhcnRpZmFjdHMsIGFuZCBhbiBvYmplY3RpdmUgdG8ga2VlcCBkaXN0cm8gb24gb25lIENEL0RWRAo+ID4gPiBCdXQgSmF2YSBhbmQgY2VudHJhbCBkb24ndCBoYXZlIHN1Y2ggY29uc2lkZXJhdGlvbnMKPiA+ID4KPiA+ID4gPgo+ID4gPiA+IEFueXdheSwgdGhvc2UgYXJlIHNvbWUgb2YgbXkgdGhvdWdodHMsIGlmIHRoZWlyIGlzIGEgbW9yZSBmb3JtYWwgd2E9CnkKPiA+ID4gPiBvZiBzdWdnZXN0aW5nIHRoZW0gbGV0IG1lIGtub3cgYW5kIEknbGwgYmUgaGFwcHkgdG8gcmFpc2UgdGhlbQo+ID4gPiA+IHNlcGFyYXRlbHkgZm9yIGNvbnNpZGVyYXRpb24gYW5kIG1heWJlIGFsc28gZG8gc29tZSBwdWxsIHJlcXVlc3RzIGY9Cm9yCj4gPiA+ID4gdGhlbS4KPiA+ID4gSSB0aGluayB0aGUgcGFja2FnaW5nIGlkZWFzIGRlc2VydmUgc29tZSBkZW1vcyB0byBzZWUgaWYgc29tZXRoaW5nIGNhPQpuCj4gYmUKPiA+ID4gbWFkZQo+ID4gPiBnZW5lcmljIGVub3VnaAo+ID4gPgo+ID4gPiBSZWdhcmRzLAo+ID4gPgo+ID4gPiBIZXJ2PUMzPUE5Cj4gPiA+Cj4gPiA+ID4KPiA+ID4gPiBKb2huCj4gPiA+ID4KPiA+ID4gPiBPbiA0IE5vdmVtYmVyIDIwMTcgYXQgMTM6MTgsIFBhdWwgSGFtbWFudCA8cGF1bEBoYW1tYW50Lm9yZz4gd3JvdGU6Cj4gPiA+ID4gPj4gPiAqMy4gTW9yZSBwbHVnZ2FibGUgZGVwZW5kZW5jeSByZXNvbHZlcjoqCj4gPiA+ID4gPj4KPiA+ID4gPiA+PiBJIGFtIHdpbGxpbmcgdG8gbGV0IHRoaXMgYmUgb3B0aW9uYWwgc2NvcGUgZm9yIG5vdy4gTWF5IGJlIHlhbmtlPQpkCj4gaWYKPiA+ID4gdG9vCj4gPiA+ID4gPj4gcmlza3kgb3Igbm90IHJlYWR5IGluIHRpbWUKPiA+ID4gPiA+Cj4gPiA+ID4gPiBJIGRvbid0IHNlZSBob3cgeW91IGNhbiBldmVuIG1ha2UgaXQgb3B0aW9uYWwgd2l0aG91dCBhIHBvbQo+IHNwZWNpZmllZAo+ID4gPiB3YXkKPiA+ID4gPiA+IG9mIHNheWluZyAibm90IG1hdmVuIGNlbnRyYWwsIHRoaXMgd2F5L3BsYWNlIGluc3RlYWQiCj4gPiA+ID4KPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotLQo+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPgo+ID4gPgo+ID4gPgo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPgo+ID4gPgo+ID4KPgotLT0yMApTZW50IGZyb20gbXkgcGhvbmUKCi0tMDAxYTExM2M4YmI4YWZhYzEwMDU1ZDJiNjVlYy0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NDExLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgIDQgMTY6MDM6NTkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDExLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDc2RjA5MTA0MjMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxNjowMzo1OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDUyNjQyIGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMTY6MDM6NTkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUyNTQ0IGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMTY6MDM6NTkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MjUzMSBpbnZva2VkIGJ5IHVpZCA5OSk7IDQgTm92IDIwMTcgMTY6MDM6NTggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA0IE5vdiAyMDE3IDE2OjAzOjU4ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRjA3Q0JFOEQxQwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMTY6MDM6NTcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjM3OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjM3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgcy1vYU1xV3FqVUZMIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAgNCBOb3YgMjAxNyAxNjowMzo1NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdtMC1mNTMuZ29vZ2xlLmNvbSAobWFpbC13bTAtZjUzLmdvb2dsZS5jb20gWzc0LjEyNS44Mi41M10pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAzMUI1MDVGREQ0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxNjowMzo1NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13bTAtZjUzLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHk4M3NvNjczNzg0M3dtYy40CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMDQgTm92IDIwMTcgMDk6MDM6NTYgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9VGdRc2c1WUpwWkx0MWthblZJc1RFKzRiZlJFWGlDNlJDRjhnTldXUFQ5WT07CiAgICAgICAgYj1GRGk0bk9OUUthdmpXaGdGSjZiQU9HVHdFUUdzRlNremZxN0ZpZTQ2VUx3eXpoVFFoSG5uOFp1bndmaHZrSXU1UXoKICAgICAgICAgejFCMlBwdHJZajdDZ0RPUGdWNnBHRGs3aUxYanQxTXFvZGh3T0JhZUpNbXFRcEhqZVFsaWpQa0x2OW8zZEVOUDlRMCsKICAgICAgICAgVERURDlsa3JwRTRISjVLOEhsK0ordDcxTzJPNmJpVFBqdis1cGViM3hoMEN0TUdGZDRiKyszUlRyZnI4aXYzb3MxNWkKICAgICAgICAgelJyLys4aktaRlVsL2ZBY1lFRlRuMnpvb0s1QW91Z2o0NDVWNmsxY2FTdFJ4V2NTcGgvL3hNZzBqcFFYaWdhSUU2YUUKICAgICAgICAgeUhaR0NSM3QyTktEdkFwaU1SMkJsRHhKbmJOcnUxV3VYU3p6ZFVkQ0hicmRkS0dZbFVZOWhYVlc3dXRJNm5pdDRENDkKICAgICAgICAgSFluQT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9VGdRc2c1WUpwWkx0MWthblZJc1RFKzRiZlJFWGlDNlJDRjhnTldXUFQ5WT07CiAgICAgICAgYj1pU3dCV2pVNnZQRkhJSUpjV0tMaXhSeHJiRVJXRjdWNFc2ckQrUUMyZDh3cmU2TjMrZXZENDNYS0doMWFYWkxYbWQKICAgICAgICAgckhnNFh3Q014aUZEbTFCVlpISXNOZ0U1TmhrQjZHdzZndTZ3b0t0dGxaOE9VSDZ3cjZLaWVTQit6NWIvZXpHTEdzaTcKICAgICAgICAgK05lL2RGWVVnUVJYcGF3U3lodU1pMm5samtDMm5FUGlRY2Y0ZXcxRDhGUHUyVGZKRFAzOVFRbERMcFcwYTRxMkUvNWsKICAgICAgICAgU2NJWlZFTUloZEJobGRPTWdNWlFVVFFKOXB1K1ZBTXloS1MwRU94WnBlcnJ6NWMvWVBTSkYwYWZFNWxjeVNuVmNuRXUKICAgICAgICAgem9oSng1akdZMmxoOUdLNTNybEJ5enJPYkN1eUMySlpWMUtha1kyOUhkc0tWb2orMWVBUElsWXBmMEEvSGV2eU5jWmEKICAgICAgICAgb0gyUT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYNVd1UnJpUnNvenRxRHNpUng2enhieEJ0S0t0WjQ5eGxjZm9hWnhlTjNEbDhyNEFZejAKCTlhNUErMmJNRmNNL0srNERTZElSRDhhMXVqenROeUxzV1lLaXpJMlc0UT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtSelBiaDBCSTdLQkdTK3JTNjZCTFZVNlNKRjcrR2VURjY5OUtsY3JDcElnMWxNUTcwUDdQS2RKRXVKNmprUk1NOW42UnRzRzNYNTlrMUdWNTB5VkVZPQpYLVJlY2VpdmVkOiBieSAxMC4yOC4yLjg0IHdpdGggU01UUCBpZCA4MW1yMTc5MDM2N3dtYy4xMDYuMTUwOTgxMTQzMDIwMjsgU2F0LAogMDQgTm92IDIwMTcgMDk6MDM6NTAgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xODcuOCB3aXRoIEhUVFA7IFNhdCwgNCBOb3YgMjAxNyAwOTowMzo0OSAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPDE1NDk4NTYuSGUxTVNCeDNVU0BnaWdhPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXdFSDlaMm15cDcxdWFTcmRjeUxKUkZyRS1WcnQyMDE5MXJkMDFoK1VmaGp3QG1haWwuZ21haWwuY29tPgogPENBKzI5OFVqcDZkWkxWMXlOcWJQQmM0ZldCRHpvekV4Y0NtN0Y1NkNuPUUtOUZhRGE4QUBtYWlsLmdtYWlsLmNvbT4KIDxDQUg5dTEwbnRtRkJaY1RoOVl2QWJFS2dEdUpOOVhkNXh1ZXBPNGZpUjVCS1JxdVpCUGdAbWFpbC5nbWFpbC5jb20+IDwxNTQ5ODU2LkhlMU1TQngzVVNAZ2lnYT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogU2F0LCA0IE5vdiAyMDE3IDA5OjAzOjQ5IC0wNzAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NellHcDJWRUhUWTBVWE5TeGFWdmZDVG9aK3RtUURWY1B6UVZHNnpiTnNvSGdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiA0LjAuMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTEzYzhiYjhmOWEyYTgwNTVkMmE1ZGI3IgoKLS0wMDFhMTEzYzhiYjhmOWEyYTgwNTVkMmE1ZGI3CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCk9uIDQgTm92ZW1iZXIgMjAxNyBhdCAwNzozMCwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdybz0KdGU6Cgo+IExlIHNhbWVkaSA0IG5vdmVtYnJlIDIwMTcsIDE0OjQzOjQ2IENFVCBKb2huIFBhdHJpY2sgYSA9QzM9QTljcml0IDoKPiA+IEkndmUgZ290ICBhIGZldyB1cGRhdGVzIEkgZmVlbCB3b3VsZCBiZSB1c2VmdWwgZm9yIHRoZSBuZXh0IG1ham9yCj4gdmVyc2lvbjsKPiA+Cj4gPiAxKSBQYWNrYWdpbmcgdHlwZSBnZW5lcmljICdhcmNoaXZlJywgb3Igc3BlY2lmaWMgemlwIG9yIHRhci5nego+ID4gLSBtYXliZSBhIHVzZXIgcHJvcGVydHkgdG8gZW5hYmxlIHppcCBhbmQvb3IgdGFyLmd6Cj4gPgo+ID4gMikgUGFja2FnaW5nIHR5cGUgZ2VuZXJpYyAnYXBwbGljYXRpb24nLCBvciBzcGVjaWZpYyBycG0gb3IgZGViCj4gPiAtIGluIGZ1dHVyZSBjb3VsZCBiZSBleHRlbmRlZCBmb3Igd2luZG93cyBpbnN0YWxsZXJzIHRvbwo+ID4KPiA+IE92ZXIgdGhlIHBhc3QgNiB5ZWFycyBJJ3ZlIG1haW5seSBjcmVhdGVkIGphciwgd2FyIG9yIGVhciwgYnV0IGZvcgo+ID4gZGVwbG95bWVudCB0aGUgc3RhbmRhcmQgaXMgYnVuZGxlIGl0IHVwIGludG8gYSB0YXIuZ3ogb3IgemlwLCBhbG9uZwo+ID4gd2l0aCB0aGUgYW5zaWJsZSBzY3JpcHRzIG9yIGN1c3RvbSBzY3JpcHRzLiBTbyBJIHVzdWFsbHkgdXNlIHBvbQo+ID4gcGFja2FnaW5nIHRoZW4gYWRkaW5nIGFzc2VtYmx5IHBsdWdpbiwganVzdCBmZWVscyBzdHJhbmdlIGRvaW5nIHRoYXQKPiA+IGFsbCB0aGUgdGltZSBhbmQgaXQgbWlnaHQgbWFrZSBpdCBtb3JlIHNpbXBsZXIgZm9yIGV2ZXJ5b25lLgo+IGRvIHlvdSBoYXZlIHNvbWUgZGVtb3Mgb2Ygc3VjaCBwYWNrYWdpbmdzPwo+CgpUaGlzIGZlZWxzIGxpa2UgcGx1Z2luIGxldmVsIGZ1bmN0aW9uYWxpdHkuIEkgYW0gdW5jbGVhciBob3cgdGhpcyBuZWVkcwpjb3JlIGNoYW5nZXMuIENvdWxkIHlvdSBwcm92aWRlIGRldGFpbHMgd2hlcmUgeW91IGZlZWwgd2UgbmVlZCB0byBtb2RpZnkKY29yZSBmb3IgdGhpcyAob3IgaXMgaXQgeW91IHdhbnQgdG8gYmUgYWJsZSB0byBmZXRjaCBzb21lIGFydGlmYWN0cyBmcm9tCndpdGhpbiB0aGUgemlwLCBpb3cgYSB6aXAgd2l0aCB0aGUgb3RoZXIgYXJ0aWZhY3RzIGVtYmVkZGVkIGFuZCB3ZSAicmVhY2gKaW4iPwoKCj4KPiA+Cj4gPiAzKSBDaGVja3N1bSwgc3dpdGNoIHRvIFNIQTMsIGRyb3AgbWQ1IGFuZCBzaGExLiBJZiB3ZSBjYXJlIGFib3V0Cj4gPiBzZWN1cml0eSwgd2Ugc2hvdWxkIGtlZXAgdXAgdG8gZGF0ZSB3aXRoIHdoYXQgaXMgY29uc2lkZXJlZCBzZWN1cmUKPiA+IHN0aWxsLgo+IC0xCj4gY2hlY2tzdW1zIGFyZSBjaGVja3N1bXMsIG5vdCBzZWN1cml0eQo+IGlmIHlvdSB3YW50IHNlY3VyaXR5LCBkb24ndCBsb29rIGF0IGNoZWNrc3VtcyBidXQgYXQgc2lnbmF0dXJlcwo+Cj4gVGhpcyBtYWtlcyBtZSB0aGluayB0aGF0IHdlIHNob3VsZCBmaW5kIGEgd2F5IHRvIHNob3cgc2VjdXJpdHkgKHdpdGggdGhlcz0KZQo+IHNpZ25hdHVyZXMpOiBJIGRvbid0IGtub3cgcHJlY2lzZWx5IGhvdywgYnV0IHRoYXQgd291bGQgZGVmaW5pdGVseSBiZQo+IHVzZWZ1bAo+Cj4gPgo+ID4gMykgRGViaWFuIHN0eWxlIHJlcG8gbWFuYWdlbWVudC4gSW5zdGVhZCBvZiBoYXZpbmcgYSBtYXNzaXZlIGJ1Y2tldCBvZgo+ID4gYXJ0ZWZhY3RzLCBzdGFydCBoYXZpbmcgcmVwbydzIGVpdGhlciBiYXNlZCB1cG9uIGphdmEgY2xhc3MgdmVyc2lvbiwKPiA+IG9yIG1hdmVuIG1ham9yIHJlbGVhc2UgdmVyc2lvbi4gQWxzbyBzcGxpdCBtb3JlIHRoYW4ganVzdCByZWxlYXNlIGFuZAo+ID4gc25hcHNob3QsIG1heWJlIGNvcmUsIHBsdWdpbnMsIGdlbmVyYWwuLi4KPiA+Cj4gPiBOb3Qgc3VyZSBleGFjdGx5IHRoZSBiZXN0IHNvbHV0aW9uLCBidXQgYXMgbWF2ZW4gY2VudHJhbCBoYXMgc3R1ZmYKPiA+IGdvaW5nIGJhY2sgeWVhcnMgYW5kIHllYXJzLiBIb3cgbXVjaCBvZiB0aGUgb2xkIHN0dWZmIHdpbGwgYmUgdXNlZCBmb3IKPiA+IG5ldyBwcm9qZWN0cyBnb2luZyBmb3J3YXJkLgo+IHdoYXQncyB0aGUgb2JqZWN0aXZlPwo+IHdpdGggTGludXggZGlzdHJpYnV0aW9ucywgdGhlcmUgYXJlIGNvbXBhdGliaWxpdHkgaXNzdWVzIHRoYXQgcmVxdWlyZQo+IGRpZmZlcmVudCBhcnRpZmFjdHMsIGFuZCBhbiBvYmplY3RpdmUgdG8ga2VlcCBkaXN0cm8gb24gb25lIENEL0RWRAo+IEJ1dCBKYXZhIGFuZCBjZW50cmFsIGRvbid0IGhhdmUgc3VjaCBjb25zaWRlcmF0aW9ucwo+Cj4gPgo+ID4gQW55d2F5LCB0aG9zZSBhcmUgc29tZSBvZiBteSB0aG91Z2h0cywgaWYgdGhlaXIgaXMgYSBtb3JlIGZvcm1hbCB3YXkKPiA+IG9mIHN1Z2dlc3RpbmcgdGhlbSBsZXQgbWUga25vdyBhbmQgSSdsbCBiZSBoYXBweSB0byByYWlzZSB0aGVtCj4gPiBzZXBhcmF0ZWx5IGZvciBjb25zaWRlcmF0aW9uIGFuZCBtYXliZSBhbHNvIGRvIHNvbWUgcHVsbCByZXF1ZXN0cyBmb3IKPiA+IHRoZW0uCj4gSSB0aGluayB0aGUgcGFja2FnaW5nIGlkZWFzIGRlc2VydmUgc29tZSBkZW1vcyB0byBzZWUgaWYgc29tZXRoaW5nIGNhbiBiZQo+IG1hZGUKPiBnZW5lcmljIGVub3VnaAo+Cj4gUmVnYXJkcywKPgo+IEhlcnY9QzM9QTkKPgo+ID4KPiA+IEpvaG4KPiA+Cj4gPiBPbiA0IE5vdmVtYmVyIDIwMTcgYXQgMTM6MTgsIFBhdWwgSGFtbWFudCA8cGF1bEBoYW1tYW50Lm9yZz4gd3JvdGU6Cj4gPiA+PiA+ICozLiBNb3JlIHBsdWdnYWJsZSBkZXBlbmRlbmN5IHJlc29sdmVyOioKPiA+ID4+Cj4gPiA+PiBJIGFtIHdpbGxpbmcgdG8gbGV0IHRoaXMgYmUgb3B0aW9uYWwgc2NvcGUgZm9yIG5vdy4gTWF5IGJlIHlhbmtlZCBpZgo+IHRvbwo+ID4gPj4gcmlza3kgb3Igbm90IHJlYWR5IGluIHRpbWUKPiA+ID4KPiA+ID4gSSBkb24ndCBzZWUgaG93IHlvdSBjYW4gZXZlbiBtYWtlIGl0IG9wdGlvbmFsIHdpdGhvdXQgYSBwb20gc3BlY2lmaWVkCj4gd2F5Cj4gPiA+IG9mIHNheWluZyAibm90IG1hdmVuIGNlbnRyYWwsIHRoaXMgd2F5L3BsYWNlIGluc3RlYWQiCj4gPgo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCi0tMDAxYTExM2M4YmI4ZjlhMmE4MDU1ZDJhNWRiNy0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NzcyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBEZWMgMTIgMDg6MTQ6MzAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzcyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEMwQzEwMTc5RDkKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAxMiBEZWMgMjAxNyAwODoxNDozMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDIwOTI3IGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIERlYyAyMDE3IDA4OjE0OjMwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMDgzOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMiBEZWMgMjAxNyAwODoxNDozMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIwODIyIGludm9rZWQgYnkgdWlkIDk5KTsgMTIgRGVjIDIwMTcgMDg6MTQ6MzAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDEyIERlYyAyMDE3IDA4OjE0OjMwICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQTBDOUUxQTA0NzMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDEyIERlYyAyMDE3IDA4OjE0OjI5ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS44NzkKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjg3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgd3hYeDZBdzJLUnVjIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVHVlLCAxMiBEZWMgMjAxNyAwODoxNDoyNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdtMC1mNDQuZ29vZ2xlLmNvbSAobWFpbC13bTAtZjQ0Lmdvb2dsZS5jb20gWzc0LjEyNS44Mi40NF0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBBRENGMDVGQjJECglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxMiBEZWMgMjAxNyAwODoxNDoyNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13bTAtZjQ0Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGYyMDZzbzE4NTYxNTQzd21mLjUKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxMiBEZWMgMjAxNyAwMDoxNDoyNiAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1POFllYngzZXNTVHdqOTBhMzFXODJsQWNtZXpMWFI4eWdCTHNhbEF2eFprPTsKICAgICAgICBiPVh0YjB3RzBVVXkrTkk0U3MrR0taNldRQ0J5c3RHbzJrMnlvNGt0Rzl0VE9YM1oyVnRCOUdxenZsYU5DVnNsNFFxTAogICAgICAgICByTnFHSkNSRnFzTEl1VkJiUHM1US9FaWlKTEtCQTBaeFpnVG91T3dHNXY4Z0xwMjFKRk5VZWU1SHh6V2FWcUErUWtnQwogICAgICAgICBTMEJhQUZTK3kzak1KbTU2cGZoVDQ0RE9NYm5wUzFhekZKaUx6QlpMcDltTEpOUkhoeFNnM04wZzZyQTl6NTVIeisraAogICAgICAgICBBRkdsOWZCbG51My9sMzlvVWExTTV1bTNrV2E1djBzcEw3OVFVUVpnOUlkODgxVHRyTFdvK0ZQd3JESHovS1hHVzZmaQogICAgICAgICBta0xJcFBGSHZCWkRQUUlqTldYSi9NcGttVjU2WDVQSWZGV01MVEFQUzIwNXZwS2xIRjRhb1dwSlhXUEExVkcvUVp1VwogICAgICAgICB3WTBRPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1POFllYngzZXNTVHdqOTBhMzFXODJsQWNtZXpMWFI4eWdCTHNhbEF2eFprPTsKICAgICAgICBiPXBhSFVNdEhISjU1Wng2a3lWend2TThld1N4NVNESUtkTERmK2JoZVVNUEZ0VkZaVHRXRE5uK01TYzdhbGJNZi9QRAogICAgICAgICAyZEVyVk9mSzlrc1JjN21Vd3ZCSGhTeEJqMTdKY0prWE1UVVcwSGxlV3BYQnp0WHBhRy9jdzZ4YWFtVUl5ZGxDbXdSSAogICAgICAgICBPOHJvM0ZTekwrZmt3TlhsYjdyM2swV0VXdUEzUGx1MDd6ZnRHRkUrL0Z4aFBUOUE5ZVR4dkdNUmkyWDdReGVYS2JsNgogICAgICAgICBEeWNodnRzUE1SVmpvWnkzbHZlRG11Y0FNVnhuQzB0VmRZT3hWQkhpeS9RZENLeHVXWXhkbW44d1YvQlhOQzQwbmNxSgogICAgICAgICB0T2NycG15WmxUbE5QdDQyVWJxUFA3RCs2eFp4eWlENHpQMDBEVmt4bXMwTUdQT3hRYXlYT3VYUTRUS09EOGZmdlQvegogICAgICAgICAwRUhBPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBS0dCM21JSUZSMnVMQlBESU81bno4OEFiQU9YUDhLMUxZM1A3Y2FKa1JuS0MwakN1SlEvZWFGcgoJTURHMUZVRWR6MG9tdXN5YzM1MG9pL0ptNXNCNHY1MXZvR2hOTFdtRDB3PT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFDSmZCb3Zab0FjYWpmQ0xQb3VmemV1N2dsQ0tmaXE2WEhDVjRoWTRaRzg1SmkySnhpM0RpVGFlRHFGNWJURGpzc29aY1liUWRxWGZmYkRydmlTNmV1dktOL009ClgtUmVjZWl2ZWQ6IGJ5IDEwLjI4LjQ3LjY2IHdpdGggU01UUCBpZCB2NjNtcjg2MDQ3N3dtdi4xNDQuMTUxMzA2NjQ2NjEwNjsgVHVlLAogMTIgRGVjIDIwMTcgMDA6MTQ6MjYgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPDcyMUU4QzIyLTA3Q0YtNDRGMC1CNDA1LTZBRDZEMEM5MjRGMUBob250b24ub3JnPgpJbi1SZXBseS1UbzogPDcyMUU4QzIyLTA3Q0YtNDRGMC1CNDA1LTZBRDZEMEM5MjRGMUBob250b24ub3JnPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBUdWUsIDEyIERlYyAyMDE3IDA4OjE0OjE1ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NemJ1OUxxWHJOemFKRXZKRmhjei00NEFhMUIwaEdMRCtaVmNaX3NqLVAxb3dAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBHaXRib3ggcHVsbCByZXF1ZXN0cwpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0MjMwY2UzYmUzMmUwNTYwMjAzZDBkIgoKLS0wMDFhMTE0MjMwY2UzYmUzMmUwNTYwMjAzZDBkCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpPbiBUdWUgMTIgRGVjIDIwMTcgYXQgMDY6MTEsIENoYXMgSG9udG9uIDxjaGFzQGhvbnRvbi5vcmc+IHdyb3RlOgoKPiBQdWxsIHJlcXVlc3RzIGZvciBuZXcgcHJvamVjdCBhcmUgbm90IHNlbnQgdG8gdGhlIGRldiBtYWlsaW5nIGxpc3QgKGUuZy4KPiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRlcGxveS1wbHVnaW4vcHVsbC8xKS4gQXJlIHRoZXNlIFBScwo+IHN1cHBvc2VkIHRvIGJlIGZvcndhcmRlZCB0byBzb21lIG1haWxpbmcgbGlzdD8gIEFyZSB0aGVzZSBQUnMgc3VwcG9zZWQgdG8KPiBiZSBhdXRvbWF0aWNhbGx5IGJ1aWx0Pwo+CgpQUnMgYXJlIG5vdCBhdXRvbWF0aWNhbGx5IGJ1aWx0Li4uIHlldCEKCldlIG5lZWQgdG8gcHV0IGluIHBsYWNlIHByb3RlY3Rpb25zIHRvIHByZXZlbnQgdGhpbmdzIGxpa2UgcGVvcGxlIGFkZGluZyBhCmJpdGNvaW4tbWluaW5nIHVuaXQgdGVzdCBvciBhIGJpdGNvaW4tbWluaW5nIGV4ZWN1dGlvbiB0byBhIHBoYXNlIGluIHRoZQpwb20uLi4gb3IgZW1haWwgc2NhbSBzcGFtbWluZy4uLiBldGMKCkJ1dCBQUiBidWlsZGluZyBpcyBvbiB0aGUgcm9hZG1hcAoKPgo+IFRoYW5rcywKPiBDaGFzCgotLSAKU2VudCBmcm9tIG15IHBob25lCgotLTAwMWExMTQyMzBjZTNiZTMyZTA1NjAyMDNkMGQtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDY1MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgTm92IDI4IDE5OjQ1OjMyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDY1MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA2QzgxNjE3RjU5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMjggTm92IDIwMTcgMTk6NDU6MzIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0ODMxMCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBOb3YgMjAxNyAxOTo0NTozMiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDgyMzUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggTm92IDIwMTcgMTk6NDU6MzEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0ODIyMyBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IE5vdiAyMDE3IDE5OjQ1OjMxIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAyOCBOb3YgMjAxNyAxOTo0NTozMSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEFDMTc5MTgwNjBGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAxOTo0NTozMCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuODc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuODc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgQjlha3pobFdLeV9YIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVHVlLCAyOCBOb3YgMjAxNyAxOTo0NToyOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdtMC1mNDkuZ29vZ2xlLmNvbSAobWFpbC13bTAtZjQ5Lmdvb2dsZS5jb20gWzc0LjEyNS44Mi40OV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA3RjNFMTVGMjM5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAxOTo0NToyNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13bTAtZjQ5Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGk3MXNvMTgyNzA2OHdtZi4yCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjggTm92IDIwMTcgMTE6NDU6MjcgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9OFNLQWx4dnkwZWVCcGE2VmZEMmk3eWdqRHlvUXNDVFhKZjhKWG0yZjhzWT07CiAgICAgICAgYj1ORHArQTIranhrK2FYWndEYmdPNjdvbDc4UFBCRVIxdVZzM0VpRThkblAybW1XR2pZMmpSNnRPYXRLNXZneGk2STEKICAgICAgICAgUnFIQ1lZZTQ5cDJNSUMycHBkOEVWS1dsOTM1b1FJSnFXUVNXM3JvRnlKbnpkbUV1UlJZZFJXSndDYWkxVkVTWm9CSVUKICAgICAgICAgS08rZlp2Z0tuNWRTT2ZVRXlXcWYxNzdncS8rVkVCSm0xMGJ0bDJEVFA1RHRYdk5wdzNnKzVycjRKb1o0Szk1eHBZVWcKICAgICAgICAgNWxDSFBtMk0yM0Eza1pJQ1BoWXpBbnRaTCt2ci9TTmRBYUVoM1FUZ2wxd3pzNUQ2SmhmZjlpR3B6Y2RrNVA3L2ZsRWMKICAgICAgICAgTWU5eU5GL0ROZ013bzl6K0FuUE1QTEhvRVNZS0srenR5aktKOVNGVmt1TytzbzhORHdSRTlBRTBRaGNDU1dWVWI0Q0EKICAgICAgICAgUHV1Zz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9OFNLQWx4dnkwZWVCcGE2VmZEMmk3eWdqRHlvUXNDVFhKZjhKWG0yZjhzWT07CiAgICAgICAgYj1FZ2Z0cDFiZ0ZzTTNzRExlQlFCTHljU01ra0k4TlU4Z3MvVnJFdk1ReHdtZ1UrQ0ZyK0dVY0lGVlZNNUJVaXNCcnAKICAgICAgICAgTzNYQk94YzhBU3hYZUV5SjBnbnJsMjVsQ3pabXNXU00rLzFYRzYvbE9uRXVYTlZiZnljRkFZWDhLZ3o1dE5VOWtrMW0KICAgICAgICAgajNxbWs4MXFidmFFRWdscTdMZjY4UkxXeUFlNitEa0xXcWM1ODZ6NFFUM2ZGcm8zbmlnM0xqbGQwS0ZyVmRlWjhZREgKICAgICAgICAgczVzNzExS3djNkNGZUluMUlXVHk5aDkrRWJXNFdVdFd4SEFjRVVqUGFaVmVCc0xqamZKWWRiYStCYjRVektWajFNamQKICAgICAgICAgS2pId2I3TzZ1dk5JTWR5czFmVGQxN1UxT2w3UVFRNUNDM3lOUVVXb0JnQ1RtTTh2TldkNjFudWp1ZlhxU3d6TUpVM2cKICAgICAgICAgbzd1Zz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYN3lObWlERWlYT3o0bXhPcmZGVTlJRUg4ejRpNmwxMVVZTHl6ekM5VlNscXhFejJVcDYKCURYemt1YkZEcEl3RDZyNW9rd0FvejhmNU1jenBlRzhGc1llTWN2eTZvZz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1ZODJBKzhCaGNEcU5nWDBJYlgwaGpvOUc5WkhLdVVBbUdBN3RFZm5YUUI4QTFYT1k2V050Ui9tUUIrcm0xbVYxL29CZEZCUlRmSzFLbzB6MjRSRW0wPQpYLVJlY2VpdmVkOiBieSAxMC4yOC4yMTYuMTM3IHdpdGggU01UUCBpZCBwMTMxbXI1OTAxOTV3bWcuNTAuMTUxMTg5ODMyNjc1NjsKIFR1ZSwgMjggTm92IDIwMTcgMTE6NDU6MjYgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPDUwNTk0Mzk2Ni42MTguMTUxMTg5NzUzNjU5MS5KYXZhTWFpbC5qZW5raW5zQGplbmtpbnMtbWFzdGVyLmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8NTA1OTQzOTY2LjYxOC4xNTExODk3NTM2NTkxLkphdmFNYWlsLmplbmtpbnNAamVua2lucy1tYXN0ZXIuYXBhY2hlLm9yZz4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyOCBOb3YgMjAxNyAxOTo0NToxNiArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXpmZlFGdFhTQ2ZHLUNXSHFVUEdiVEhGQ2g9dml6PVZCT2RKSD1KTF9XQTR3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiA9P1VURi04P1E/UmU9M0FfQnVpbGRfc3VjY2VlZGVkX2luX0plbmtpbnM9M0FfTWF2ZW5fVExQXz1DMj1CQl9tYXZlbj0yRHA/PQoJPT9VVEYtOD9RP2FyZW50Xz1DMj1CQl9tYXN0ZXJfPTIzNj89ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQ1ZmUxMGIzZjY2ZDA1NWYxMDQyNDkiCgotLTAwMWExMTQ1ZmUxMGIzZjY2ZDA1NWYxMDQyNDkKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCk9rIHN0YW5kYXJkIGJ1aWxkIHNob3VsZCBub3cgaGF2ZSBidWlsZCBub3RpZmljYXRpb24gZW1haWxzLi4uCgpOb3cgdG8gcG9saXNoIHVwIGFuZCB0aGVuIHNlZSBhYm91dCBKSVJBIHRpY2tldCB1cGRhdGluZwoKT24gVHVlIDI4IE5vdiAyMDE3IGF0IDE5OjMyLCBBcGFjaGUgSmVua2lucyBTZXJ2ZXIgPApqZW5raW5zQGJ1aWxkcy5hcGFjaGUub3JnPiB3cm90ZToKCj4gU2VlIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvam9iL21hdmVuLWJveC9qb2IvbWF2ZW4tcGFyZW50L2pvYi9tYXN0ZXIvNi8KPgo+IENoYW5nZXM6Cj4KPiAqIEFkZCBhbm90aGVyIGxheWVyIG9mIHVud3JhcHBpbmcKCi0tIApTZW50IGZyb20gbXkgcGhvbmUKCi0tMDAxYTExNDVmZTEwYjNmNjZkMDU1ZjEwNDI0OS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MjQyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBPY3QgMTQgMTg6MTI6MTMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjQyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDREMzlEMTA2MzcKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAxNCBPY3QgMjAxNyAxODoxMjoxMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDM2NDI4IGludm9rZWQgYnkgdWlkIDUwMCk7IDE0IE9jdCAyMDE3IDE4OjEyOjA4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNjM0MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNCBPY3QgMjAxNyAxODoxMjowOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM2MzMxIGludm9rZWQgYnkgdWlkIDk5KTsgMTQgT2N0IDIwMTcgMTg6MTI6MDcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDE0IE9jdCAyMDE3IDE4OjEyOjA3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRDNCN0YxQTAzOTQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDE0IE9jdCAyMDE3IDE4OjEyOjA2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi44NzkKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi44NzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIERacmx0M3QzN0JmTCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgMTQgT2N0IDIwMTcgMTg6MTI6MDQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13bTAtZjUxLmdvb2dsZS5jb20gKG1haWwtd20wLWY1MS5nb29nbGUuY29tIFs3NC4xMjUuODIuNTFdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgM0M3MzU1RkJCMQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTQgT2N0IDIwMTcgMTg6MTI6MDQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd20wLWY1MS5nb29nbGUuY29tIHdpdGggU01UUCBpZCBiMTg5c28yNjQwMzk4OXdtZC40CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTQgT2N0IDIwMTcgMTE6MTI6MDQgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9a3FCa2lEZExiSTdJakQyNFgvOFNZWHlrVnF4UTU1N0cwUUFwVW5ISXJRTT07CiAgICAgICAgYj10bGJFNEdvYVg5ekExK1VyWU83NWNtbktLQjU1TnlNamxSMTRhODFtRmFOWm1kT2JnaE5RbTFoNnVXSndyS1l0STQKICAgICAgICAgaVZCakNVVmFNSEZWYXZ6dmZma0F3SXF5dkxWODVGOG96R1pNeWVPaHFxaHdnL2ZOVGNiNU9mYkJTZGZ3VjhtTnkvWHgKICAgICAgICAgb2dVeUxxMWFyQjJudE5HK3VoQ3JVVXBuOXQ5em1LQno2SnVMV1FrQ2h0a1lhZFNLMFU3LzhNTzAraTgrVHhWYmJRZEcKICAgICAgICAgaVg0Zmw1OGFQbVptc3NNeVNoZ3dsQ0Z0UUdIK2Q0eWcvbGZWb2VndEpZWG5IZUhTWnBObFFPb3R1dFgyS0lDWG9pV3kKICAgICAgICAgU0JaT2M4WjdOdnVJd3hPNkgyZDI3TWFGZlJTTCtiWkE2VGdFQnZCWjdhVmhCMDR3OGwzei9PaEN0Vmt0T0ozZHZPa3QKICAgICAgICAgaHRPUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9a3FCa2lEZExiSTdJakQyNFgvOFNZWHlrVnF4UTU1N0cwUUFwVW5ISXJRTT07CiAgICAgICAgYj1YclVmVXdIOEl0ZHhnN0dxSWQzemVndnpDNFVIZ3FIM0xtWUZ6NGhrSXBwekdNN3NQdytHT2RYMFlYc0UrR2tjajkKICAgICAgICAgekpVeitmdWJySnpwTTBjbEtjU0hWNUJMTkFuZUhhTmQreXdPQjUxYXpYbXdDbFpxODJMNXpjVURndW1HTTN3N2dOdWoKICAgICAgICAgVmY0Q29wQy9KaHJTNVdaZmYvazIzQzkzM3F5S0tkU3JrRU95N1E2bHc4MGJZdVg3YmY3aVJyWi9zSzlBRFNOYys4ZVQKICAgICAgICAgY2tPUTFwalVxS3U4QXU1a2MwVG80aGEwN25COHFidERPZlJOOXNrRUkyaXZaQldTTXI4WHNNc2dCLy81a0VxRmZFL0sKICAgICAgICAgLzg0Vk4wcUM0cGhseCtrNHVNclk4SmpSdzRaQk5OOGRrK0NuQUgyUXc1T1QxRzFXTkpKeC8veXhTUm83eE01TFpMUXAKICAgICAgICAgNnBHZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhV24vM2c2bkVpdWFqS2ZwSVhNTzVjbURxc0ZGUGdYcXNIVERHcTBGQWVxQzE1ck8rUm8KCXo1UG5MZ1VQOUJSejZaZ2tKbVQrRUhmUlFEMU5DS091OUExTEJPdzdoQT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtRWXN0aDlKTGZTTTBxQXJYdk5hTGVueEljbU9mK05taVFjRmhtUEgxWlhlYlcxTzlHbTF2R0Z0L1piM2QwaEFKak5JL0cvZ1REbkczUEg1OUV2dmlVPQpYLVJlY2VpdmVkOiBieSAxMC4yOC40Ny42OSB3aXRoIFNNVFAgaWQgdjY2bXI0MjczMjcxd212Ljk4LjE1MDgwMDQ3MjM3MzU7IFNhdCwKIDE0IE9jdCAyMDE3IDExOjEyOjAzIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDwzMjk2NzU0Lm5ZRnpwN3kyczhAZ2lnYT4KSW4tUmVwbHktVG86IDwzMjk2NzU0Lm5ZRnpwN3kyczhAZ2lnYT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAxNCBPY3QgMjAxNyAxODoxMTo1MiArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXpqMnotdWVSU0JEMHl4Qlh3dmRPbk9QM001TzM3cHdiVzFZRzlmN1piZFZnQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogaW1wcm92ZW1lbnRzIGZvciBNYXZlbiAzLjUuMgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0MjM2NTZlMGMzNzMwNTViODViNTE0IgoKLS0wMDFhMTE0MjM2NTZlMGMzNzMwNTViODViNTE0CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCisxCgpPbiBTYXQgMTQgT2N0IDIwMTcgYXQgMTY6MzAsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cm89CnRlOgoKPiBJJ2QgbGlrZSB0byBtZXJnZSB0byBtYXN0ZXIgZm9sbG93aW5nIGlzc3Vlcywgd2l0aCBjb3JyZXNwb25kaW5nIGNvZGUKPiByZWFkeSBpbgo+IHRoZWlyIGJyYW5jaGVzOgo+IC0gTU5HLTYyNDIgTm8gY29sb3IgZm9yIG1hdmVuIG9uIEN5Z3dpbgo+IC0gTU5HLTYxOTYgVXBkYXRlIHNsZjRqIGFuZCBzaW1wbGlmeSBpdHMgY29sb3IgaW50ZWdyYXRpb24KPgo+IEFyZSB0aGVyZSBzZWNvbmRlcnM/Cj4KPiBSZWdhcmRzLAo+Cj4gSGVydj1DMz1BOQo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPiAtLQpTZW50IGZyb20gbXkgcGhvbmUKCi0tMDAxYTExNDIzNjU2ZTBjMzczMDU1Yjg1YjUxNC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0Mzk0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgIDQgMTI6NTI6MzkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0Mzk0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDU2MDI0MTdEQzQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxMjo1MjozOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ4NDUwIGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMTI6NTI6MzkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ4MzYzIGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMTI6NTI6MzkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0ODM0OSBpbnZva2VkIGJ5IHVpZCA5OSk7IDQgTm92IDIwMTcgMTI6NTI6MzggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA0IE5vdiAyMDE3IDEyOjUyOjM4ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRTJEOUUxQTg3MDEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA0IE5vdiAyMDE3IDEyOjUyOjM3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi44NzkKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi44NzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFYxeTZkWGRzc2xRViBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgIDQgTm92IDIwMTcgMTI6NTI6MzUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13bTAtZjUwLmdvb2dsZS5jb20gKG1haWwtd20wLWY1MC5nb29nbGUuY29tIFs3NC4xMjUuODIuNTBdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNEMwRTE2MEUzNQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMTI6NTI6MzUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd20wLWY1MC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBiOXNvNjI3NTkzNHdtaC4wCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMDQgTm92IDIwMTcgMDU6NTI6MzUgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9THo2Q2xmOHZyd0ZtMS8raENFSVliRWkzVmtpdVljc2N4VVlUbUZTRUdQVT07CiAgICAgICAgYj12ZXVwb2h3RitYblRnVzB5YWFkL2JyMU8waHBqR2R2dVpDN1k1dTBrTTd5Z2MwK2YybGFBeEk4aStGYXVyaE9LQXcKICAgICAgICAgMG16RXJGd3pydS9wdlRIcktsNW54dEVONWdhSWd6bzJ4WTBHOUYxWldRT1VkQVN0dlErNzVJZmoyWTExejQwSEU5cVYKICAgICAgICAgYllNYXMxWVhZMDJZajZueVBYQTRhejhqSkZLM1V3eWt1K0F4RUhHNDZVSGwzcHIzN2VDcGZFQmtqaE5FQVowcU83cVcKICAgICAgICAgZjhpL3RiOGs1eGY5bVhPK1JCNjhEdzFuQmZScXVjV21FK0tNcFlDVkQrR0FJeVJHWEJ6SksvTlBOSHhLenVxQUhaeGkKICAgICAgICAgQXFDalZacVFtWFFRbFRBZWsrcW9rQktZWXpwWWE2ckVkWFVSWHNJQWkzYU8wQ1ZnbHFwTTdEbERxVEhKMWdGSWJ6dksKICAgICAgICAgdHNBZz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9THo2Q2xmOHZyd0ZtMS8raENFSVliRWkzVmtpdVljc2N4VVlUbUZTRUdQVT07CiAgICAgICAgYj1ES3FKemRlbTh2SmswMDN1Nm5qOEpXcVF5aUo2bFlyL0FPMUxlQmNpR2hQY3hqdHRJcW1SSU04emhKUnNjQkZtY00KICAgICAgICAgN3c4R3N6SVVDZEdCTC9WcUgzS0JuRTJIL0VoNXpmWEJUTzJWdndsblZsWDUrN2J4a2ZHb09mRmJJYk94R0dKbU5TM0IKICAgICAgICAgRFhHOFFnMFZqSk1IOTBwOE9mQmQ0bnF6cXRiazV5UC9LK1FZU0s3dlBRdnVzSkQrV0oybmxXM0I1U1VmbXhhSlArSFYKICAgICAgICAgS0RnbzdLeVBrdU5QdW8yeFNIcEM4MjdGbllNZktFbFQ0WjFtbGtHY0phUm92RUl6NUhpblRhYU94Rk9ZazBiRXVEOHIKICAgICAgICAgV2VIUW9hR1BhSG9LVkVLYitadkRjcisvUmhXWVI0cFVPakpBeXRYMVNOYitQd2dCOVpSUlR0dVZPLzViZTFzWFR4cG0KICAgICAgICAgRkMwQT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYN3cxZk5FMkZKck95VkwzVlgzQlprMWUyMWZLUnR1eGFKYUxkVTIrZGdBU0l3czBPUzAKCUlrc3VOOHNhOGFmUXp6SzhRQnZGZFBYRU9IbmlZS0svc0pxQU01WVgrQT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtTbEM2VkRRcGd3NDg0d1BrYzBBMlF3ekQ0Uk1BM0tsZm0xQUE2eWVUMTYwWFFMUHJqd2lOblg2aWhVTmtsMVJWa1VsNjRTMXJmRmpIaGNHbGxCNjNBPQpYLVJlY2VpdmVkOiBieSAxMC4yOC45OS4xMzkgd2l0aCBTTVRQIGlkIHgxMzNtcjEzNzQ0MDN3bWIuMTIyLjE1MDk3OTk5NDk0MjU7CiBTYXQsIDA0IE5vdiAyMDE3IDA1OjUyOjI5IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDxDQStuUG5Nd0VIOVoybXlwNzF1YVNyZGN5TEpSRnJFLVZydDIwMTkxcmQwMWgrVWZoandAbWFpbC5nbWFpbC5jb20+CiA8OTY5NDhjNjctZWU5Yi1jYjE0LWYzZjEtNGU2YTQzOGE5M2U0QGFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8OTY5NDhjNjctZWU5Yi1jYjE0LWYzZjEtNGU2YTQzOGE5M2U0QGFwYWNoZS5vcmc+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFNhdCwgMDQgTm92IDIwMTcgMTI6NTI6MTggKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk16algzYWJkemFpUFFnWWFhZTRmVGgwLSthYlVCeDFib184bXg1OGRZVk9Rd0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IE1hdmVuIDQuMC4wClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQ4ZTFiOGFhZTEyYjA1NWQyN2IxODgiCgotLTAwMWExMTQ4ZTFiOGFhZTEyYjA1NWQyN2IxODgKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gU2F0IDQgTm92IDIwMTcgYXQgMTI6NDksIE1pY2hhZWwgT3NpcG92IDxtaWNoYWVsb0BhcGFjaGUub3JnPiB3cm90ZToKCj4gQW0gMjAxNy0xMS0wNCB1bSAxMzoyMCBzY2hyaWViIFN0ZXBoZW4gQ29ubm9sbHk6Cj4gPiBUaGUgcGFzdCB0d28gZGF5cywgSGVydj1DMz1BOSwgUm9iZXJ0IGFuZCBJIGhhdmUgYmVlbiBkaXNjdXNzaW5nIG91ciBuZT0KeHQKPiBzdGVwcy4KPiA+Cj4gPiBJIHRoaW5rIHdlIGhhdmUgYSBzZW1pLWNvbnNlbnN1cyB3aGljaCBJIHdhbnQgdG8gYnJpbmcgYmFjayB0byB0aGUgbGlzdD0KOgo+ID4KPiA+IFdlIGtlZXAgMy41LnggYXMgYSBzdGFibGUgYnJhbmNoIHdpdGggY3JpdGljYWwgYnVnIGZpeGVzIG9ubHkKPiA+Cj4gPiBXZSBzd2l0Y2ggbWFzdGVyIHRvIDQuMC4wIGFuZCBzdGFydCB0byBidXJuIGRvd24gYSByZWxlYXNlIHNjb3BlLgo+ID4KPiA+IDQuMC4wIHdpbGwgbm90IGNoYW5nZSB0aGUgcG9tIG1vZGVsVmVyc2lvbgo+ID4KPiA+IFRoZSA0LjAuMCBzY29wZSBzaG91bGQgcHJvYmFibHkgYmU6Cj4gPgo+ID4gUmVxdWlyZWQ6Cj4gPiAqIGRyb3AgSmF2YSA3LCBzd2l0Y2ggY29kZWJhc2UgdG8gSmF2YSA4IGlkaW9tcyAod2hpbGUgbWFpbnRhaW5pbmcgYmluYT0KcnkKPiA+IGFwaSBjb21wYXRpYmlsaXR5IGZvciBwbHVnaW5zKQo+Cj4gV2hvIGlzIGdvaW5nIHRvIGRvIHRoaXM/IEkgaGF2ZW4ndCBldmVuIHNlZW4gYW55IEphdmEgNyBpbXByb3ZlbWVudHMKPiAoTklPIDIgYW5kIG90aGVycykgaW4gY29yZSBzaW5jZSAzLjMuIEkgZG91YnQgdGhhdCBjb3JlIHdpbGwgd2UgYmUKPiByZXdyaXR0ZW4gd2l0aCBKYXZhIDggaWRpb21zLgo+IENvbnNpZGVyIHRoYXQgd2Ugc3RpbGwgaGF2ZSBwbHVnaW5zIHJ1bm5pbmcgTWF2ZW4gMi4yLnggd2hpY2ggbmVlZCBtb3JlCj4gYXR0ZW50aW9uIGZpcnN0LgoKCldlIGFyZSBnb2luZyB0byBhc2sgdGhlIHdpZGVyIGNvbW11bml0eSB0byBjb250cmlidXRlIFBScyB0b3dhcmRzIHRoYXQKZ29hbCwgZWFjaCBQUiBsaW1pdGVkIHRvIH4yMCBMaW5lcyBvZiBkaWZmLgoKV2Ugd2lsbCBuZWVkIGluZnJhc3RydWN0dXJlIHRvIGFzc3VyZSBiaW5hcnkgY29tcGF0aWJpbGl0eSAobGlrZSBjbGlyciB1c2VkCnRvIGRvIGJlZm9yZSBpdCBkaWVkKSBiZWZvcmUgd2UgY2FuIHN0YXJ0IHRoYXQgZWZmb3J0LgoKQWltIGlzIHRvIGZpbmQgcGVvcGxlIHdpbGxpbmcgdG8gZGl2ZSBpbiBhbmQgZ2V0IHRoZW0gZmFtaWxpYXIgd2l0aCB0aGUKY29kZSBiYXNlIGJ5IG1ha2luZyBtYW55IHNtYWxsIGxvdy9ubyByaXNrIGNoYW5nZXMKCgo+Cj4gPiAqIHNwZWNpZnkgdGhlIGNsYXNzbG9hZGVyIGJlaGF2aW91ciBhbmQgZml4IGltcGwgdG8gYWxpZ24gd2l0aCBzcGVjIChtYT0KeQo+ID4gbmVlZCBhIHBsdWdpbiBmbGFnIHRvIGFsbG93IHBsdWdpbnMgdG8gb3B0IGluIHRvIHNwZWMgYmVoYXZpb3VyKQo+ID4gKiBzcGVjaWZ5IHRoZSBleHRlbnNpb24gc3BlYwo+ID4gKiBhbGxvdyBsaW1pdGVkIG11dGF0aW9uIG9mIHRoZSBydW50aW1lIG1vZGVsIChyZWR1Y2luZyB0cmFuc2l0aXZlCj4gPiBkZXBlbmRlbmNpZXMgZm9yIGNvbnN1bWVycyB3aXRoaW4gdGhlIHJlYWN0b3IsIG9ubHkgZm9yIHBsdWdpbiBnb2FscyB0aD0KYXQKPiA+IGRlY2xhcmUgaW50ZW50KSB1c2UgY2FzZTogc2hhZGUgcGx1Z2luCj4gPiAqIGJldHRlciBDSSBpbnRlZ3JhdGlvbiBob29rcwo+ID4gKiBuaWNlIGVycm9yIG1lc3NhZ2UgZm9yIG5ld2VyIHBvbSBtb2RlbFZlcnNpb24KPgo+IFRoaXMgbG9va3MgcXVpdGUgcmVhc29uYWJsZSB0byBtZS4KPgo+IE1pY2hhZWwKPgo+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+IC0tClNlbnQgZnJvbSBteSBwaG9uZQoKLS0wMDFhMTE0OGUxYjhhYWUxMmIwNTVkMjdiMTg4LS0KCkZyb20gZGV2LXJldHVybi0xMjQwNzEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIFNlcCAxOSAyMToxMjo0NSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwNzEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgN0E0QTlDRDM3Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMTkgU2VwIDIwMTcgMjE6MTI6NDUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1NzExMyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOSBTZXAgMjAxNyAyMToxMjo0NSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTcwNTAgaW52b2tlZCBieSB1aWQgNTAwKTsgMTkgU2VwIDIwMTcgMjE6MTI6NDUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NzAzOCBpbnZva2VkIGJ5IHVpZCA5OSk7IDE5IFNlcCAyMDE3IDIxOjEyOjQ0IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAxOSBTZXAgMjAxNyAyMToxMjo0NCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDRGMTFBQzE3RkIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDE5IFNlcCAyMDE3IDIxOjEyOjQ0ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuNApYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC40IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxLCBVUklCTF9CTE9DS0VEPTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHhQaW5iUGFEQzVLbCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVR1ZSwgMTkgU2VwIDIwMTcgMjE6MTI6NDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC11YTAtZjE3MS5nb29nbGUuY29tIChtYWlsLXVhMC1mMTcxLmdvb2dsZS5jb20gWzIwOS44NS4yMTcuMTcxXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDJFM0Y4NjExMTYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDE5IFNlcCAyMDE3IDIxOjEyOjQxICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXVhMC1mMTcxLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGsyM3NvNTU5MDMzdWFmLjQKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxOSBTZXAgMjAxNyAxNDoxMjo0MSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1NQ0FCVnhyMEhoaXVIUG1wa1J0THhIODFBMFBEOWJPVVdraEJ2dU1DZVRRPTsKICAgICAgICBiPWZKYXMrcTRneXI5RUNzTGgxU2tpOHBnUEUvelZCa0NjdEgzaGhDczVXZmZ3cng4cmNJQWNxVzcvdXBVV2ZNVW9uMwogICAgICAgICBlYklwYjdqWDZ0dlUxNDU1T2xKK0FIME91Smlza3BsMnhDUVNwVnpJL2NQdkwwZzNiOW5xaEV2Y1d0UXYrTEN1NkRIWQogICAgICAgICAxeThQVzRSRGg1Z0ZQMEJybUthakoxT05Md2ZvYXE3dFBENFZnWDczajdLSTVjQTc5eGJFbGVrVEpaZ2U2Nk9qTGNmawogICAgICAgICBnYWVGZmgyeTdnREJ0alpFcmZSNGtUdFJYZ1FKVkcyYUpxQ3NDa2M5Yk9qdVFMTU1nRjFsTk5SYlJzeG9jQkkvQjM5TQogICAgICAgICBnRGNIZ2ttcXdQM3NwdWkrUCtheE5BUTZaTmxYbTZRN2ljaWgweUd2Rk5UR2VxVG0yQ1RyZzU4Y0ZLNkMrT0x3aVRQZAogICAgICAgICBDQzhRPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1NQ0FCVnhyMEhoaXVIUG1wa1J0THhIODFBMFBEOWJPVVdraEJ2dU1DZVRRPTsKICAgICAgICBiPUdMdUpwS3g1T1M2ZnM5REhvSDF2c1Vtelh6cTZWRUZsTWFvTTltLzlKVkpFU2l0R1pmdC9BNzcxRlgyZ1VibCt4dwogICAgICAgICA5QmhDUVVaVGlzRFhUREZXS0t5eUM3cWtmNUdleEN1ZkF4QjRzZTYxaWZEQmNnc0FuQWxVMHRNTEI5QU1KUmdWbmhjSAogICAgICAgICA4djFsQjVRVmZDVjZlMmx5ZXRCM0NIb2lwY0dTdE5Kb08zY3k5K2RwWlFLMVJQd2lYMW1UVk5TdWtuQ0V3K2FqVFpaOAogICAgICAgICBwWEVIVUpuYUdWbmRwMk9OK3JlbTEyaGdnd3BjK2lCTW9PdWtMNU1hMmkrck4rTTVYdVBKNEgwRUtzRTFyeXRudjVLdgogICAgICAgICA3THVBVTNxZ01LR1ZMdnVPbkZ4YTBRZlJoWUZJRXJ2VFA1U29pYzAraHVvbGNLeHpVa3NtTDlncVNHMExwVGRuS0tBRQogICAgICAgICBYalZBPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVod2tYK1Nja0dpemtLbFIyVzA5VU9VbzU5L29YajlqczlqM1dUVWVYQWtCMEJFSE5WbgoJMGNCNVZiME5IR2RjVG5rZkp0aHBQVUJKelVpUmF6cGFrbythdGt0aGRRPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUNtcFRhNDhyK0tqRWY0NWZrc0Rud2tpa1A3SmhOQXJweHM2eGkyUzlXd1RFZ0c4ZkJwS2Nja2lTcWNCQk9YbTlNeVM0RHVFUHI4SDVtN2hpVmlKOVU9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjE3Ni4zMC43IHdpdGggU01UUCBpZCBtN21yMjQ3MTE4MXVhay4xMzkuMTUwNTg1NTU1NDgzMTsgVHVlLAogMTkgU2VwIDIwMTcgMTQ6MTI6MzQgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPENBK25Qbk13TUNxT19FdGNCVzVfM3JNNzEtdENyaXRwNFVrc3lmUG1ER0FZcjZ4ej1vUUBtYWlsLmdtYWlsLmNvbT4KIDxGMUY4QjNDRi1EREFDLTQ0QkEtQUVCNy00MTIyQzg4N0M0QUJAaG9udG9uLm9yZz4gPENBK25Qbk13Zl9CZnRZdXMtcm5Rck83bzUrZHVHRnowVkVhN05pb2hHMV9fWVV6cmM1d0BtYWlsLmdtYWlsLmNvbT4KIDwxNTA1Nzk2OTA4LjI1MTY4MDguMTExMDY3MzEyOC42MzVBQzM1RkB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CiA8b3AueTZ0dG1yZWJrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDxDQStuUG5NeEZGRVRRbXF0ZTAtNTB1M0VGU3diZzZ5aXB3NVZTQmRMUHdUelBoZFZrNXdAbWFpbC5nbWFpbC5jb20+CiA8b3AueTZ0djVrZjNrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDwxNTA1ODUzNTQwLjM0NDM0NjUuMTExMTYyMDY0MC4zMzFCRTU4QUB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CkluLVJlcGx5LVRvOiA8MTUwNTg1MzU0MC4zNDQzNDY1LjExMTE2MjA2NDAuMzMxQkU1OEFAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBUdWUsIDE5IFNlcCAyMDE3IDIxOjEyOjI0ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NemtOdkJGX0ZjdC1FPTdxZkdRZnBIVUJLVDE5Y1dDMzhTQ3F0cTZrdmllOWdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBVbmRlcnN0YW5kaW5nIE1ORy02MjA5ICh3YXM6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMSkKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDg5ZTA4Mjg5NTc4NmRjYTJkMDU1OTkxNTE2NSIKCi0tMDg5ZTA4Mjg5NTc4NmRjYTJkMDU1OTkxNTE2NQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKWWVzLCB0aGUgZXhwZWN0YXRpb25zIGFyZSBrZXkuIERlcGVuZGluZyBvbiB3aGF0IHRoZXkgYXJlIHdlIG1heSBlaXRoZXIKZHJvcCAzLjUuMSBvciBnbyBhaGVhZCBhcyBpdCBkZXBlbmRzIG9uIHdoZXRoZXIgdGhpcyBpcyBtb3JlIGNvcnJlY3QgdGhhbgozLjUuMCBvciBzd2FwcGluZyBvbmUgZml4IGZvciBhIGJ1ZwoKT24gVHVlIDE5IFNlcCAyMDE3IGF0IDIxOjM5LCBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvbT4gd3JvdGU6Cgo+IEp1c3QgdG8gY29uZmlybSBJIHVuZGVyc3RhbmQgd2hhdCB3ZSBhcmUgdHJ5aW5nIHRvIGVzdGFibGlzaCBoZXJlLiBXZQo+IHdhbnQgdG8gZGVjaWRlIHRoZSBleHBlY3RlZC9kZXNpcmVkIGNvbXBvbmVudCBpbmplY3Rpb24gYmVoYXZpb3VyIGFuZAo+IGNsYXNzcGF0aCB2aXNpYmlsaXR5IGluIHRoZSBhYnNlbmNlIG9mIHBhY2thZ2UgYW5kIGFydGlmYWN0IGV4cG9ydAo+IGNvbmZpZ3VyYXRpb24gKGkuZS4gTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCBmaWxlKS4gRGlkIEkgZ2V0IHRoaXMKPiByaWdodD8KPgo+IC0tCj4gUmVnYXJkcywKPiBJZ29yCj4KPiBPbiBUdWUsIFNlcCAxOSwgMjAxNywgYXQgMDM6NTIgUE0sIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+ID4gTGV0J3MgZG8gaXQgbGlrZSB0aGlzOgo+ID4KPiBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kb3dubG9hZC9hdHRhY2htZW50cy8yMzI5ODQxL2NsYXNzcmVhbG1zLnBkZj9hcGk9djIKPiA+Cj4gPiBSb2JlcnQKPiA+Cj4gPiBPbiBUdWUsIDE5IFNlcCAyMDE3IDIxOjA4OjM5ICswMjAwLCBTdGVwaGVuIENvbm5vbGx5Cj4gPiA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPgo+ID4gPiBJIHRoaW5rIHlvdSB3aWxsIG5lZWQgYSBsaW5rIHRvIHRoZSBQREYgYXMgYXR0YWNobWVudHMgYXJlIHN0cmlwcGVkCj4gZnJvbQo+ID4gPiB0aGUgTUwKPiA+ID4KPiA+ID4gT24gVHVlIDE5IFNlcCAyMDE3IGF0IDE5OjU3LCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Cj4gd3JvdGU6Cj4gPiA+Cj4gPiA+PiBBdHRhY2hlZCBhIHNpbmdsZSBwYWdlIG92ZXJ2aWV3Lgo+ID4gPj4KPiA+ID4+IFBlciBibG9jayB5b3UnbGwgc2VlIGluIHRoZSB1cHBlciBsZWZ0IGNvcm5lciB0aGUgZXhlY3V0ZWQgcGx1Z2luCj4gPiA+PiBUaGUgbGVmdCBjb2x1bW4gY29udGFpbnMgdGhlIGV4dGVuc2lvbnMgYW5kIHBsdWdpbiBpbiBvcmRlcmFzCj4gc3BlY2lmaWVkCj4gPiA+PiBpbgo+ID4gPj4gdGhlIHBvbS54bWwKPiA+ID4+IEluIGV2ZXJ5IGNsYXNzbG9hZGVyY29sdW1uIHlvdSdsbCBzZWUgbnVtYmVycyB3aGljaCByZXByZXNlbnQgdGhlCj4gb3JkZXIuCj4gPiA+Pgo+ID4gPj4gSSBob3BlIEkgZGlkbid0IG1ha2UgYW55IG1pc3Rha2VzLgo+ID4gPj4gVG9tb3Jyb3cgSSBoYXZlIGVub3VnaCB0aW1lIHRvIHNlZSBpZiBJIHVuZGVyc3RhbmQgd2hhdCdzIGhhcHBlbmluZwo+ID4gPj4gaGVyZS4KPiA+ID4+Cj4gPiA+PiBJIHdpbGwgY29tZSBiYWNrIHdpdGggbXkgY29uY2x1c2lvbnMuCj4gPiA+Pgo+ID4gPj4gUm9iZXJ0Cj4gPiA+Pgo+ID4gPj4gT24gVHVlLCAxOSBTZXAgMjAxNyAwNjo1NTowOCArMDIwMCwgSWdvciBGZWRvcmVua28gPAo+IGlnb3JAaWZlZG9yZW5rby5jb20+Cj4gPiA+PiB3cm90ZToKPiA+ID4+Cj4gPiA+PiA+IFRMO0RSIHlvdXIgdGVzdCBwcm9qZWN0IGV4cG9zZWQgdHdvIGV4aXN0aW5nIGJ1Z3MsIG9uZSBjaGFuZ2UgaW4KPiA+ID4+ID4gYmVoYXZpb3VyIGFuZCBvbmUgcXVpcmsgSSBjYW4ndCBleHBsYWluCj4gPiA+PiA+Cj4gPiA+PiA+ICogQnVpbGQgYDxleHRlbnNpb25zPmAgYXJlIGxvYWRlZCBieSB0d28gY2xhc3Nsb2FkZXJzLCB3aGljaCBpcyBhCj4gYnVnCj4gPiA+PiBpbgo+ID4gPj4gPiBEZWZhdWx0UHJvamVjdEJ1aWxkaW5nSGVscGVyI2NyZWF0ZVByb2plY3RSZWFsbSBhbmQgZXhwbGFpbnMgd2h5IHlvdQo+ID4gPj4gc2VlCj4gPiA+PiA+IGV4dGphcjEvZXh0amFyMiBpbiB0aGUgb3V0cHV0Cj4gPiA+PiA+ICogQ2xhc3NSZWFsbSBkb2VzIG5vdCBhbGxvdyBzYW1lIGZvcmVpZ24taW1wb3J0IGZyb20gbXVsdGlwbGUKPiA+ID4+ID4gY2xhc3Nsb2FkZXJzLCB3aGljaCBpcyBhIGJ1ZyBhbmQgZXhwbGFpbnMgd2h5IGl0IGlzIG5vdCBwb3NzaWJsZSB0bwo+ID4gPj4gbG9hZAo+ID4gPj4gPiBzYW1lIHJlc291cmNlIGZyb20gbXVsdGlwbGUgcGx1Z2lucy9leHRlbnNpb25zCj4gPiA+PiA+ICogVENDTCBkb2VzIG5vdCBoYXZlIGFjY2VzcyB0byBwcml2YXRlIChpLmUuIG5vdCBleHBvcnRlZCkgcmVzb3VyY2VzCj4gPiA+PiBvZgo+ID4gPj4gPiB0aGlzIGV4dGVuc2lvbnMgcGx1Z2luLCB3aGljaCBpcyBhIGNoYW5nZSBvZiBiZWhhdmlvdXIgaW50cm9kdWNlZCBieQo+ID4gPj4gPiBtbmctNjIwOSBmaXgKPiA+ID4+ID4gKiBBbHNvLCBjb21wb25lbnQgaW5qZWN0aW9uIG9yZGVyIGFwcGVhcnMgdG8gYmUgYmFja3dhcmRzLCBidXQgbWF5YmUKPiA+ID4+ID4gU3R1YXJ0IGNhbiBleHBsYWluIHdoeS4KPiA+ID4+ID4KPiA+ID4+ID4KPiA+ID4+ID4gQmVsb3cgaXMgbW9yZSBkZXRhaWxlZCBleHBsYW5hdGlvbiBvZiBleHBlY3RlZCBhbmQgb2JzZXJ2ZWQKPiBiZWhhdmlvdXIKPiA+ID4+ID4KPiA+ID4+ID4KPiA+ID4+ID4gIyMgQ29tcG9uZW50IGluamVjdGlvbiBkZXBlbmRzIG9uIHRoZSBjdXJyZW50bHkgcnVubmluZyBwbHVnaW4gYW5kCj4gdGhlCj4gPiA+PiA+IGluamVjdGlvbiBzaXRlCj4gPiA+PiA+Cj4gPiA+PiA+IEN1cnJlbnRseSBydW5uaW5nIHBsdWdpbnMgaGF2ZSBhY2Nlc3MgdG8gdGhlIGZvbGxvd2luZyBjb21wb25lbnQKPiA+ID4+ID4gaW1wbGVtZW50YXRpb25zOgo+ID4gPj4gPgo+ID4gPj4gPiAqIFJlZ3VsYXIgcGx1Z2luIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50cyBpbXBsZW1lbnRlZCBieSB0aGUgcGx1Z2luLAo+ID4gPj4gPiBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMsIGlmIGFueSAodmlhIHByb2plY3QgY2xhc3MgcmVhbG0gZm9yZWlnbgo+ID4gPj4gPiBpbXBvcnQpIGFuZCBNYXZlbiBDb3JlLgo+ID4gPj4gPiAqIEV4dGVuc2lvbiBwbHVnaW4gaGFzIGFjY2VzcyB0byBjb21wb25lbnRzIGltcGxlbWVudGVkIGJ5IHRoZQo+IHByb2plY3QKPiA+ID4+ID4gYnVpbGQgZXh0ZW5zaW9ucyBhbmQgTWF2ZW4gQ29yZS4KPiA+ID4+ID4gKiBXaXRob3V0IGEgcnVubmluZyBwbHVnaW4gKGUuZy4sIGR1cmluZyBwcm9qZWN0IGRlcGVuZGVuY3kKPiA+ID4+IHJlc29sdXRpb24pLAo+ID4gPj4gPiBjb21wb25lbnRzIGltcGxlbWVudGVkIGJ5IHRoZSBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMgYW5kIE1hdmVuCj4gQ29yZQo+ID4gPj4gPiBhcmUgYWNjZXNzaWJsZS4KPiA+ID4+ID4KPiA+ID4+ID4gRGlmZmVyZW50IGluamVjdGlvbiBzaXRlcyBoYXZlIGFjY2VzcyB0byB0aGUgZm9sbG93aW5nIGNvbXBvbmVudAo+ID4gPj4gPiBpbnRlcmZhY2VzOgo+ID4gPj4gPgo+ID4gPj4gPiAqIE1hdmVuIENvcmUgaGFzIGFjY2VzcyB0byBjb21wb25lbnQgaW50ZXJmYWNlcyBkZWZpbmVkIGJ5IHRoZSBjb3JlCj4gPiA+PiA+IGl0c2VsZiAob2J2aW91c2x5KQo+ID4gPj4gPiAqIFByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucyBoYXZlIGFjY2VzcyB0byAqKnB1YmxpYyoqIGNvbXBvbmVudAo+ID4gPj4gPiBpbnRlcmZhY2VzIGRlZmluZWQgYnkgTWF2ZW4gQ29yZSBhbmQgY29tcG9uZW50IGludGVyZmFjZXMgZGVmaW5lZCBieQo+ID4gPj4gdGhlCj4gPiA+PiA+IGJ1aWxkIGV4dGVuc2lvbiBpdHNlbGYgKHRoZXJlIGlzIG5vIHdheSB0byBhY2Nlc3MgY29tcG9uZW50Cj4gaW50ZXJmYWNlcwo+ID4gPj4gPiBkZWZpbmVkIGluIG90aGVyIGV4dGVuc2lvbnMpCj4gPiA+PiA+ICogUmVndWxhciBwbHVnaW5zIGhhdmUgYWNjZXNzIHRvICoqcHVibGljKiogY29tcG9uZW50IGludGVyZmFjZXMKPiA+ID4+IGRlZmluZWQKPiA+ID4+ID4gYnkgTWF2ZW4gQ29yZSwgY29tcG9uZW50IGludGVyZmFjZXMgKipleHBvcnRlZCoqIGJ5IGJ1aWxkIGV4dGVuc2lvbnMKPiA+ID4+IGFuZAo+ID4gPj4gPiBjb21wb25lbnQgaW50ZXJmYWNlcyBkZWZpbmVkIGluIHRoZSBwbHVnaW4gaXRzZWxmCj4gPiA+PiA+Cj4gPiA+PiA+IEZvciBpbmplY3Rpb24gdG8gd29yaywgaW5qZWN0aW9uIHNpdGUgaGFzIHRvIGhhdmUgYWNjZXNzIHRvIHRoZQo+ID4gPj4gPiBjb21wb25lbnQgaW50ZXJmYWNlIGFuZCB0aGUgY29tcG9uZW50IGltcGxlbWVudGF0aW9uIG11c3QgYmUKPiA+ID4+IGFjY2Vzc2libGUKPiA+ID4+ID4gdGhyb3VnaCB0aGUgY3VycmVudCBjb250ZXh0Lgo+ID4gPj4gPgo+ID4gPj4gPiBGcm9tIHdoYXQgSSBjYW4gdGVsbCwgaW4geW91ciBleGFtcGxlIGFsbCBwbHVnaW5zIGhhdmUgYWNjZXNzIHRvIHRoZQo+ID4gPj4gPiByaWdodCBjb21wb25lbnRzIHdoZW4gdXNpbmcgY3VycmVudCAzLjUuMi1TTkFQU0hPVC4gVGhlIGluamVjdGlvbgo+ID4gPj4gb3JkZXIKPiA+ID4+ID4gZG9lcyBhcHBlYXIgdG8gYmUgYmFja3dhcmRzIGZyb20gd2hhdCBJIGV4cGVjdGVkLCBob3dldmVyLgo+ID4gPj4gPgo+ID4gPj4gPgo+ID4gPj4gPiAjIyBSZXNvdXJjZXMgbG9va3VwIGZ1bGx5IGRlcGVuZHMgb24gY2xhc3NwYXRoIHZpc2liaWxpdHksCj4gPiA+PiBzcGVjaWZpY2FsbHkKPiA+ID4+ID4KPiA+ID4+ID4gKiBSZWd1bGFyIHBsdWdpbiBjbGFzcyByZWFsbSBoYXMgYWNjZXNzIHRvIHJlc291cmNlcyBmcm9tIHRoZSBwbHVnaW4KPiA+ID4+ID4gaXRzZWxmLCBmcm9tICoqZXhwb3J0ZWQqKiBwYWNrYWdlcyBvZiB0aGUgcHJvamVjdCBidWlsZCBleHRlbnNpb25zCj4gYW5kCj4gPiA+PiA+ICoqcHVibGljKiogTWF2ZW4gQ29yZSBwYWNrYWdlcwo+ID4gPj4gPiAqIEV4dGVuc2lvbnMgcGx1Z2luIGNsYXNzIHJlYWxtIGhhcyBhY2Nlc3MgdG8gdGhlIHJlc291cmNlcyBmcm9tIHRoZQo+ID4gPj4gPiBleHRlbnNpb25zIHBsdWdpbiBpdHNlbGYgYW5kIGZyb20gKipwdWJsaWMqKiBNYXZlbiBDb3JlIHBhY2thZ2VzCj4gPiA+PiA+ICogUHJvamVjdCBjbGFzcyByZWFsbSBoYXMgYWNjZXNzIHRvIGNsYXNzZXMgYW5kIHJlc291cmNlcwo+ICoqZXhwb3J0ZWQqKgo+ID4gPj4gPiBieSBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMgYW5kICoqcHVibGljKiogTWF2ZW4gQ29yZSBwYWNrYWdlcwo+ID4gPj4gPgo+ID4gPj4gPiBJIHNlZSB0aHJlZSBwcm9ibGVtcyBoZXJlCj4gPiA+PiA+Cj4gPiA+PiA+ICogTWF2ZW4gYWRkcyBidWlsZCBzaW5nbGUtamFyIGA8ZXh0ZW5zaW9ucz5gIGVsZW1lbnRzIGRpcmVjdGx5IHRvCj4gPiA+PiA+IHByb2plY3QgY2xhc3MgcmVhbG0gKiphbmQqKiBjcmVhdGVzIHNlcGFyYXRlIGV4dGVuc2lvbnMgY2xhc3MgcmVhbG1zCj4gPiA+PiBmb3IKPiA+ID4+ID4gdGhlbS4gV2hpY2ggcmVzdWx0cyBpbiBkdXBsaWNhdGUgY2xhc3Nlcy9yZXNvdXJjZXMgbG9hZGVkIGJ5IHR3bwo+ID4gPj4gPiBjbGFzc2xvYWRlcnMgYW5kIGV4cGxhaW5zIHdoeSB5b3Ugc2VlIGV4dGphcjEvZXh0amFyMiBvdXRwdXQgKHdoaWNoCj4gPiA+PiB5b3UKPiA+ID4+ID4gc2hvdWxkbid0IGFjY29yZGluZyB0byB0aGUgZXhwbGFuYXRpb24gYWJvdmUpCj4gPiA+PiA+ICogQ2xhc3NSZWFsbSBkb2VzIG5vdCBhbGxvdyBmb3JlaWduLWltcG9ydCBvZiB0aGUgc2FtZSBwYWNrYWdlIGZyb20KPiA+ID4+ID4gbXVsdGlwbGUgY2xhc3Nsb2FkZXJzLiBUaGlzIG1ha2VzIGl0IGltcG9zc2libGUgdG8gbG9hZCB0aGUgc2FtZQo+ID4gPj4gPiByZXNvdXJjZSBmcm9tIG11bHRpcGxlIHBsdWdpbnMvZXh0ZW5zaW9ucy4KPiA+ID4+ID4gKiBFeHRlbnNpb25zIHBsdWdpbnMgY2Fubm90IGFjY2VzcyB0aGVpciBvd24gcHJpdmF0ZSAoaS5lLiBub3QKPiA+ID4+IGV4cG9ydGVkKQo+ID4gPj4gPiByZXNvdXJjZXMgdmlhIFRDQ0wsIHRoaXMgaXMgY2hhbmdlIGluIGJlaGF2aW91ciBpbnRyb2R1Y2VkIGJ5Cj4gbW5nLTYyMDkKPiA+ID4+ID4gZml4Cj4gPiA+PiA+Cj4gPiA+PiA+IEhvcGUgdGhpcyBoZWxwcwo+ID4gPj4KPiA+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Cj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPiAtLQpTZW50IGZyb20gbXkgcGhvbmUKCi0tMDg5ZTA4Mjg5NTc4NmRjYTJkMDU1OTkxNTE2NS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MDI0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBTZXAgMTQgMTE6NTM6NDMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDI0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEMxMkNGMUFCNDgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAxNCBTZXAgMjAxNyAxMTo1Mzo0MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDIzNjY2IGludm9rZWQgYnkgdWlkIDUwMCk7IDE0IFNlcCAyMDE3IDExOjUzOjM4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMzU2OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNCBTZXAgMjAxNyAxMTo1MzozNyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIzNTU2IGludm9rZWQgYnkgdWlkIDk5KTsgMTQgU2VwIDIwMTcgMTE6NTM6MzYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDE0IFNlcCAyMDE3IDExOjUzOjM2ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNzFBNjIxODQzMjcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDE0IFNlcCAyMDE3IDExOjUzOjM2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC4wOTkKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC4wOTkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgZjZ5T2Y3ZzBYLUNKIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVGh1LCAxNCBTZXAgMjAxNyAxMTo1MzozNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXZrMC1mNDcuZ29vZ2xlLmNvbSAobWFpbC12azAtZjQ3Lmdvb2dsZS5jb20gWzIwOS44NS4yMTMuNDddKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNTc5Mzg1RjE5RAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMTQgU2VwIDIwMTcgMTE6NTM6MzQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdmswLWY0Ny5nb29nbGUuY29tIHdpdGggU01UUCBpZCBpMXNvNDc3MjF2a2UuMTIKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAxNCBTZXAgMjAxNyAwNDo1MzozNCAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1qTFdlNDlLZDF1Qm41UWpWQ0tOcllDVmJlWkZaMit6NGJyMnFBY0JhbFBRPTsKICAgICAgICBiPXNxZE45Sm5vVUxJbXZhcWFxdlFFbWVQLzlEdUNJdjZ6Yk1xS09GbGRYZ2liZ2kzT2JVMktQMXErZXVYMkJndlVBWAogICAgICAgICBPNGdxK3hFTXVIdEs5UXlJazk3VDVnUkZCbkFOamM4SWFhdDdLeWFtMW5KK2NSbFY0RjZvQTY3WUNmWEFMY2VjSnhwWgogICAgICAgICBTZkd2ODBzbDVvT1laOHJYMDFxUzE1bG5JdDN6V3V0dHRQQ2d5U0lhVktDaExzc1hmM0ZUc1g1UTkrb2QxMUxzbmZGNgogICAgICAgICBNYndvWFV2eUZ5UEJPRzdsT3VCb2xkM3Mrdzg1SlR2WjVGbXlhME9WVDJ2VFpaS2RxRnRNVnlhNnN1YWsxanQvb3pMZAogICAgICAgICBNekNqZFJMeUd5SUJZQUREZnNBZ05EcldlOVJNMWhoZU0ydXpOT2NidXovSjYvdnlKbUo1OXZYYm9Ca3NkODNQR0xCWgogICAgICAgICBZUjhBPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1qTFdlNDlLZDF1Qm41UWpWQ0tOcllDVmJlWkZaMit6NGJyMnFBY0JhbFBRPTsKICAgICAgICBiPVlPeWYxN0tBQWMyU3N2cEJjUTI2d3VYV1Q0TG51NTlJcUlyOVNQNVk3c2wrdkJLRElXN0tUT3F3a3ZzblBGZk5zYgogICAgICAgICBJK1h6WkNxU3VIRHpQemJGMmhKeU1tRnA3Vkx6L1NxSndyZ2hOU3Z2bURSaFFzejkzRVFKS2s0Umx6MTdvdFduNDFndgogICAgICAgICAwQTRqR2JWNit1Y0xYSk54T1pqWnZQOUliaTNTbjg5NEVKRDl5ZUNUY01zTjU5amFNT00rU1VSZGFvU3Q0bGF2U1pwNwogICAgICAgICBONm1NNFhuSTMvZmpvcURxdlRrdXhEcldIdjQ0TzRidCtWOFVzZEpGcEpKekJGNTJtWmxNVGdmZEpscXZIa3hzTlg5TwogICAgICAgICB2bnZlUC91L0VLaGoyS2s3cm0vYjVwa2pvejNmUnBFay80WlVZbElNOFF0QTBiMys1MWNJOFQ2SHprN1dYR1dmOXpMTAogICAgICAgICBTYUZnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVnaG9ja09EajJXN2hJSHlmRURJY1JIWUNZOGJQUml2Tjd0RDladVBkUEkrZ3VxQ21SMgoJeGl4TVFINnI5NTNQNTFtWGIySDZGd0xJY3haeGpMNjBqYVA3L1pZRHBnPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UURYT1d3cW9WeTdLUFovTVU0Y0c0VHNqcnFIaHFrcU95T0Iva3VjTjZQOHY2QVYwMnBoQTgvRDFEbzJDeTFzMzZCc0d3WVZQMVU4bkttVUZGaU1WMzQ9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjMxLjcyLjEzNCB3aXRoIFNNVFAgaWQgdjEyOG1yMjkxMDcwOHZrYS4xMjQuMTUwNTM5MDAxMzczNjsKIFRodSwgMTQgU2VwIDIwMTcgMDQ6NTM6MzMgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjE3Ni44Mi4yNTIgd2l0aCBIVFRQOyBUaHUsIDE0IFNlcCAyMDE3IDA0OjUzOjMyIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0FMWUdtMXk5VE14QUFpaG5pN2tibz0ycmh1bjJ4dDRGOHgwTXlrTkxrQnR0djdHaUh3QG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgogPENBRk5DVS0tMnZyZDVCZVR2a3hLQ3lYMlpRZVBxaXg3WD13bVZzV2RNNWQ0OVhlTmdPd0BtYWlsLmdtYWlsLmNvbT4KIDxGNzA1N0UxQi00MzEzLTREN0ItOEVGMS05OTM0MUREMUUxRDBAdGFsaW9zLmNvbT4gPENBK25Qbk13VXFtQnVyYXREMUNwaz1MOXRBQ3dfK3FvdHJzVXBDcWRxUlpYbVdYZ2lUQUBtYWlsLmdtYWlsLmNvbT4KIDxCMTQ4Qzk2Ny0xNjk1LTQ1QzItQTE1Ri0xRkZGOTAzQkNCNTBAdGFsaW9zLmNvbT4gPDc0QzEyN0IwLUY3MDctNEJCQS1BMkMxLUQ1N0U2MEM5QzBGQ0B0YWxpb3MuY29tPgogPEZBQURERTE0LUMzNzgtNEQzRC04QUVFLTlBQzhDQ0Y5MTc4M0B0YWxpb3MuY29tPiA8Q0FMWUdtMXk5VE14QUFpaG5pN2tibz0ycmh1bjJ4dDRGOHgwTXlrTkxrQnR0djdHaUh3QG1haWwuZ21haWwuY29tPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBUaHUsIDE0IFNlcCAyMDE3IDA0OjUzOjMyIC0wNzAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5Nem1rUSs4Wml2VHlCQWJuai01eFE0Q3N4VWlhMWRMbWlmM21IOTdqMEFKekFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNGRkMGE2MDQ2YTUzMDU1OTI0ZWQwYSIKCi0tMDAxYTExNGRkMGE2MDQ2YTUzMDU1OTI0ZWQwYQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPbiAxNCBTZXB0ZW1iZXIgMjAxNyBhdCAwNDo0MywgTWFyayBEZXJyaWN1dHQgPG1hcmtAdGFsaW9zLmNvbT4gd3JvdGU6Cgo+ID4gKzIgbm9uLWJpbmRpbmcgZnJvbSBNYXJrIQo+Cj4gSSB3YXMgZGlzY3Vzc2luZyB0aGlzIHdpdGggYSBjb3dvcmtlciBhbmQgaGUgbWFkZSB0aGUgY29tbWVudCB0aGF0IGlmIHRoaT0Kcwo+IGNoYW5nZSBjb3VsZCBicmVhayBNb2pvcywgbWF5YmUgaXQgc2hvdWxkbid0IGJlIGluIGEgcG9pbnQgcmVsZWFzZSAtIHdoYXQ9CnMKPiB0aGUgcG9saWN5IG9uIGNoYW5nZXMgdGhhdCBtYXkgcG90ZW50aWFsbHkgYnJlYWsgZXhpc3RpbmcgcGx1Z2lucz8KPgoKV2VsbCB3ZSBuZWVkIHRvIGFzc2VzcyB0aGUgaXNzdWUuIFJpZ2h0IG5vdyBJIGRvbid0IGV2ZW4gaGF2ZSBhIGRlc2NyaXB0aW9uCm9mIHdoYXQgd2VudCB3cm9uZy4gQW55IGNoYW5jZSB5b3UgY291bGQgcHJvdmlkZSBhIHJlcGxpY2F0aW9uLi4uIG9yIG1haWwKbWUgZGlyZWN0bHkgaWYgeW91IGNhbm5vdCBzaGFyZSBpdCBwdWJsaWNhbGx5IGFuZCBJIG1heSBiZSBhYmxlIHRvIHByb2R1Y2UKYSBtaW5pbWFsIHJlcHJvZHVjdGlvbiBmcm9tIGl0LgoKSWYgdGhpcyBicmVha3MgYSBtb2pvIHRoYXQgd2FzIGRvaW5nIHNvbWV0aGluZyB3cm9uZyBpbiB0aGUgZmlyc3QgcGxhY2UsCndlbGwgdGhhdCB3aWxsIG5vdCBzdG9wIDMuNS4xLi4uIE9UT0ggaWYgdGhpcyBleHBvc2VzIGEgYnVnIGluIHRoZSBpc3N1ZQoiZml4ZWQiIHRoZW4gSSdkIGxpa2VseSByZXZlcnQgYW5kIHJlc3Bpbi4KCldlIHJlYWxseSBuZWVkIGEgcmVwcm9kdWNlciBmaXJzdC4KCgo+Cj4gLS0KPiAiR3JlYXQgYXJ0aXN0cyBhcmUgZXh0cmVtZWx5IHNlbGZpc2ggYW5kIGFycm9nYW50IHRoaW5ncyIgPUUyPTgwPTk0IFN0ZXZlPQpuIFdpbHNvbiwKPiBQb3JjdXBpbmUgVHJlZQo+Cj4gT24gVGh1LCBTZXAgMTQsIDIwMTcgYXQgMTA6MjkgQU0sIE1hcmsgRGVycmljdXR0IDxtYXJrQHRhbGlvcy5jb20+IHdyb3RlOgo+Cj4gPiBPbiAxNCBTZXAgMjAxNywgYXQgMTA6MjYsIE1hcmsgRGVycmljdXR0IHdyb3RlOgo+ID4KPiA+IENhbGxpbmcgLTIgZm9yIHZvdGUgaWYgbm90IHRvbyBsYXRlLgo+ID4KPiA+IEFjdHVhbGx5IC0gbG9va2luZyBhdCB0aGUgY29tbWl0IGRpZmYsIEkgc2VlIGluIG91ciBjb2RlIHdlIGRpZCBoYXZlCj4gPiA8ZXh0ZW5zaW9ucz50cnVlPC9leHRlbnNpb25zPiBmb3IgdGhlIGphc21pbmUtbWF2ZW4tcGx1Z2luIHdoaWNoIHdlIGRvbj0KJ3QKPiA+IGFjdHVhbGx5IG5lZWQuIFJlbW92aW5nIHRoYXQgZnJvbSB0aGUgbW9qbyBkZWZpbml0aW9uIGFuZCBydW5uaW5nIG15Cj4gYnVpbGQKPiA+IHdpdGggdGhlIHN0YWdlZCAzLjUuMSByZWxlYXNlIGFuZCBldmVyeXRoaW5nIGJ1aWxkcyBmaW5lLgo+ID4KPiA+ICsyIG5vbi1iaW5kaW5nIGZyb20gTWFyayEKPiA+Cj4gPiBNYXJrCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+Cj4gPiAiVGhlIGVhc2Ugd2l0aCB3aGljaCBhIGNoYW5nZSBjYW4gYmUgaW1wbGVtZW50ZWQgaGFzIG5vIHJlbGV2YW5jZSBhdCBhbD0KbAo+ID4gdG8gd2hldGhlciBpdCBpcyB0aGUgcmlnaHQgY2hhbmdlIGZvciB0aGUgKEphdmEpIFBsYXRmb3JtIGZvciBhbGwgdGltZS49CiIKPiA9RTI9ODA9OTQKPiA+IE1hcmsgUmVpbmhvbGQuCj4gPgo+ID4gTWFyayBEZXJyaWN1dHQKPiA+IGh0dHA6Ly93d3cudGhlb3J5aW5wcmFjdGljZS5uZXQKPiA+IGh0dHA6Ly93d3cuY2hhbGljZW9mYmxvb2QubmV0Cj4gPiBodHRwOi8vcGx1cy5nb29nbGUuY29tLytNYXJrRGVycmljdXR0Cj4gPiBodHRwOi8vdHdpdHRlci5jb20vdGFsaW9zCj4gPiBodHRwOi8vZmFjZWJvb2suY29tL21kZXJyaWN1dHQKPiA+Cj4KCi0tMDAxYTExNGRkMGE2MDQ2YTUzMDU1OTI0ZWQwYS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MDQ2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBTZXAgMTYgMTA6NTI6MTcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDQ2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEIxRTI1MUEzNUMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAxNiBTZXAgMjAxNyAxMDo1MjoxNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDYwODIxIGludm9rZWQgYnkgdWlkIDUwMCk7IDE2IFNlcCAyMDE3IDEwOjUyOjE3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MDc0NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNiBTZXAgMjAxNyAxMDo1MjoxNyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYwNzMyIGludm9rZWQgYnkgdWlkIDk5KTsgMTYgU2VwIDIwMTcgMTA6NTI6MTYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDE2IFNlcCAyMDE3IDEwOjUyOjE2ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNkY1N0IxODQwQUYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDE2IFNlcCAyMDE3IDEwOjUyOjE2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMy44NzkKWC1TcGFtLUxldmVsOiAqKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTMuODc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJRlJFRU1BSUxfUkVQTFk9MSwgSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEdFODE0dUdJbWM5RiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgMTYgU2VwIDIwMTcgMTA6NTI6MTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC11YTAtZjE3OC5nb29nbGUuY29tIChtYWlsLXVhMC1mMTc4Lmdvb2dsZS5jb20gWzIwOS44NS4yMTcuMTc4XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIENCQUFCNUY2QzgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDE2IFNlcCAyMDE3IDEwOjUyOjEwICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXVhMC1mMTc4Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIG4zOHNvMjMzOTExNXVhaS45CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTYgU2VwIDIwMTcgMDM6NTI6MTAgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9cUdxS0o2T0Q3TVRIRXhidEtaYXVOTG5GOGpsVWdJNHNwTWovQ3RiYTdkcz07CiAgICAgICAgYj10ZmMvN0ZXK3hYamtYcW5oZ3hvYXVTTXEzZ1lzVFBPYTRmaWtrMzZvTVFjL2tzYlh6alpDOUkvNTVLUklhT25UOXUKICAgICAgICAgamZMRlQyNmNjd3FGNE1JdVVSbUlLMFdnOE1XT3JHOVVkckx0WmVWUXVPd213UWRRME10Umk0MkNXVTVxM21xYXMza0cKICAgICAgICAgaks5WnlNUU5sZUdWUHczNkRIbnpnV0MweU12MHVPcytDdktSa1h2UWoySitLUmtBcThlR3AzclF3MldXZ1ZJSzloT0EKICAgICAgICAgNWZqZ25xOW84K0hBcWdrQVVCWXdzblk3a2doL1ZMdDdpMklpWHhPanNEd2hVNGZjQ0gwV3YvWXhpSHRHZnJPU29iNFIKICAgICAgICAgSzF3L3ZMeWRZK2oxdU9WK1ExVGIyazA1Q1IrV1dLOGZDaytxM01qZFNBWUdVTDlHSEdDZWFBakJWL3c2aWczYlZaN20KICAgICAgICAgSDdydz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9cUdxS0o2T0Q3TVRIRXhidEtaYXVOTG5GOGpsVWdJNHNwTWovQ3RiYTdkcz07CiAgICAgICAgYj1pTFU3eVprZm5ocVJzUTV3RnBCaGd3N295dmhNY0ZrMXFUQTdSY2FQZDV0QTRvWTV4eEVvWE5xQ0U0Y29SVTVURXoKICAgICAgICAgTGpSYzg2T1hneEFJQUVwdkEvK0RNQk5SSjdPTTlkdm1lTis3Z1haZFNSVytadWF4WTZxbE85OGtDazFGbHovSjc4UlYKICAgICAgICAgc0hsOTMwTndHQ1dFaDZrRldKY0dCNEZGK09JdTJ1dFkyMW5UYjAwNExGUytBbWxyVmNGdjRQMkdDa0ErMDhRZWljWW4KICAgICAgICAgZnJqcDgrMDdQWnM1K2JaUWN5K0J5bEZzOCtSU0d1WGZEaGp2OUtkekdjOWNHM2orRzlhUjNMRHVRbXYrcFFBMjBKS3kKICAgICAgICAgSkN6ZkR2UUtJaTI0dXBNT1I4QzE5MnMzYy9zQ2g3UHNodll2cVFQdzVxaWQzN2dvZUxMU1lZTjF4WFBjNDNYVTNGQUYKICAgICAgICAgMHpVdz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVaVA1a3FDTlVLRGg1TkttN0lXMFNVMjZoZFo0STN0TGk0ay9HRy9xUkdqdjc0aXZyZnMKCWU4QUhTZGZ5NVZlWDBxbEZIVVVJdnRHcXJRa0VnNGh0dWRpTkQ2TjRtUT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBREtDTmI2R1IyNGtpTWpPTko2K0RUZ2J3cnRwVy8rNzBIaW0wTTIvUUtjOE5wRGZidWFtL3JKR3F1anIzck5GbkdjVjdWd29ndzlWR3Yrd3lXNnc0MFJRTzQ0PQpYLVJlY2VpdmVkOiBieSAxMC4xNzYuODQuMTQ4IHdpdGggU01UUCBpZCBwMjBtcjI0Mjg1MjYxdWFhLjE1NC4xNTA1NTU5MTI5OTM2OwogU2F0LCAxNiBTZXAgMjAxNyAwMzo1MjowOSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgogPHBvbnktNTZhM2FkZWFmNjBjNDA1OTZmYjI4NGIyNDUyNDE0OGY2MDVlOGQyMy01MmQ0MWNkNDBmMjM0M2M4OTUyODgwZThmODRkYTNlODBkMzM1NTA5QGRldi5tYXZlbi5hcGFjaGUub3JnPgogPENBK25Qbk15UzJxMXVmYVcrUzZzbWhaWjFKY3hoZjloWTUtM25CSi1pQ1dlalBVQURWQUBtYWlsLmdtYWlsLmNvbT4KIDwyMDU3OTQ4LmsxR3lmanVHWGRAZ2lnYT4gPENBK25Qbk13Y29IRlp2VXFXaVVzeUhCaGFNbW9TY2N5ZFRCc3pTWGdzR3RGPXdOR0RLd0BtYWlsLmdtYWlsLmNvbT4KIDxDQUtEVU4xdjVUc0ZuK28tdnY4SGgzUHV2R1hXZStmUW5NK2p3RFp0Kz16dHhzcGNnZ3dAbWFpbC5nbWFpbC5jb20+CiA8Q0FLRFVOMXNtMEtLck5va3B4aCtOQk9Ya1VGODRHQkx4aFFWMmZkd0VLLUZ4Ky14blZ3QG1haWwuZ21haWwuY29tPgogPENBS0RVTjF0ZEQ9UHg1bjlMNjBLY2EyRnVuQ1ZOMndyb1BkOVVyUU5LeF94YnptdE02d0BtYWlsLmdtYWlsLmNvbT4KIDwxNTA1NDc3NTQ1LjIzOTI3Ny4xMTA3MTU3MDk2LjYzODQ2NkFDQHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KIDxDQUtEVU4xdk5rU1JPZ25TTGRiXzBqdWh0Ql9laHNrQmtzNkJ0OUUtaUtCY1A5cmp5amdAbWFpbC5nbWFpbC5jb20+CiA8Q0FMWUdtMXdyLTdZd1Z3c3JPU2VWcHRuamd5NkJHalowaC05eDJyTVVaaHhvWDF5a1JRQG1haWwuZ21haWwuY29tPgogPDE1MDU0Nzk1MTAuMjQ2MTQ4LjExMDcxODAzODQuMkUwNTJDQzRAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgogPENBK25Qbk15Zk5tY2s1WU5oYU9TUTlGenhXRzR3YU9KVnJMUVJxX1g1WmFGQXU4SEhPQUBtYWlsLmdtYWlsLmNvbT4KIDwxNTA1NTMxMjQ1LjQzODI5Mi4xMTA3OTA0NDI0LjEzMDlBNzU5QHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4gPENBK25Qbk16TFNqNmRUOUJaRXdlUXFrPUdLOUM9UFlXR1Njc3hEbS1adEJXTkptPVEzUUBtYWlsLmdtYWlsLmNvbT4KSW4tUmVwbHktVG86IDxDQStuUG5NekxTajZkVDlCWkV3ZVFxaz1HSzlDPVBZV0dTY3N4RG0tWnRCV05KbT1RM1FAbWFpbC5nbWFpbC5jb20+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFNhdCwgMTYgU2VwIDIwMTcgMTA6NTE6NTggKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk16bk0ydXJVMTVNa0NhanZkNFBYYmFaRGhEOXRudCtlUXBvdWJqR2tNZk1hZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSI5NGViMmMxYjEwY2MyMGY1NmIwNTU5NGM0ZDkzIgoKLS05NGViMmMxYjEwY2MyMGY1NmIwNTU5NGM0ZDkzCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCk9uIFNhdCAxNiBTZXAgMjAxNyBhdCAxMDo1MSwgU3RlcGhlbiBDb25ub2xseSA8CnN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgoKPiBPbiBTYXQgMTYgU2VwIDIwMTcgYXQgMDQ6MDcsIElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY29tPiB3cm90ZToKPgo+PiBJIGRvbid0IHJlYWxseSBoYXZlIG11Y2ggdG8gYWRkLCBidXQgbGV0IG1lIGFuc3dlciBhbnl3YXlzIDotKQo+Pgo+PiAxKSBJIGFtIHJlYXNvbmFibHkgY29uZmlkZW50IHdlIGNhbiBjb21wZW5zYXRlIGZvciB0aGUgbmV3IGNsYXNzbG9hZGVyCj4+IGFycmFuZ2VtZW50IGluIG0yZSB3aXRob3V0IG11Y2ggcHJvYmxlbXMuIFRoZSBuZXcgc2V0dXAgZG9lcyBtYWtlIHBsdWdpbgo+PiBydW50aW1lIGNsYXNzcGF0aCBsZXNzIHN0YWJsZSwgc28gdGhlcmUgYXJlIGxpa2VseSBvdGhlciBzY2VuYXJpb3Mgd2hlcmUKPj4gcGx1Z2lucyB3aWxsIGJlaGF2ZSBkaWZmZXJlbnRseSAoYmFkKS4gT24gdGhlIG90aGVyIGhhbmQsIEkgZG9uJ3Qgc2VlCj4+IGFueSBiZXR0ZXIgd2F5IHRvIHN1cHBvcnQgU2VydmljZUxvYWRlci4gRm9yIGphdmEgOCBpdCBtYXkgYmUgcG9zc2libGUKPj4gdG8gdXNlIGZvcmVpZ24taW1wb3J0IG9mIGV4dGVuc2lvbnMgY2xhc3Nsb2FkZXIgdG8gZml4IE1ORy02Mjc1LCBidXQKPj4gdGhhdCBjbGFzc2xvYWRlciB3YXMgcmVtb3ZlZCBpbiBqYXZhIDksIHVubGVzcyBJIGFtIG1pc3Rha2VuLgo+Cj4KPiBPayBzbyBJIHRoaW5rIHRoZSBjb25zZW5zdXMgaXMgNjI3NSBpcyBwcm9iYWJseSBhIG5lY2Vzc2FyeSBmaXggZm9yIEphdmEgPQo4Cj4gaW50ZXJvcGVyYWJpbGl0eSwgYnV0IG1heSBleHBvc2UgYnVncyBpbiBwbHVnaW5zIHRoYXQgbWFkZSBpbmNvcnJlY3QKPiBhc3N1bXB0aW9ucywgYW5kIGlzIGEgYnJlYWtpbmcgY2hhbmdlIGZyb20gdGhlIFBvViBvZiB0aGUgZWNsaXBzZQo+IGludGVncmF0aW9uLiBOZXRiZWFucyBpcyBmaW5lIGFuZCBJbnRlbGxpSiBzZWVtcyB0byBkbyBpdHMgb3duIHRoaW5rIChnaXY9CmVuCj4gSSBoYXZlIGFuIG9wZW4gYnVnIHRoYXQgc3VnZ2VzdHMgSW50ZWxsaUogaXMgaWdub3JhbnQgb2YgdGhlIGV4dGVuc2lvbnMKPiB0eXBlIG1hcHBpbmcpCj4KPgo+Pgo+PiAyKSBJIGJlbGlldmUgVENDTCBpcyBhbHJlYWR5IHNldCB0byBwcm9qZWN0IHJlYWxtIGZvciBwcm9qZWN0cyB0aGF0IGhhdmUKPj4gZXh0ZW5zaW9ucyAoYW5kIHRvIHBsdWdpbiByZWFsbSBvdGhlcndpc2UpIGR1cmluZyBwbHVnaW4gZXhlY3V0aW9uLgo+Cj4KPiBTbyBteSBxdWVzdGlvbiBpcyB3aHkgc2hvdWxkIFRDQ0wgKmV2ZXIqIGJlIGFueXRoaW5nIG90aGVyIHRoYW4gcHJvamVjdAo+IHJlYWxtPwo+Cj4gVGhlIHBvbSByZWZlcmVuY2Ugc2F5czoKPgo+ICAgIC0gKmV4dGVuc2lvbnMqOiB0cnVlIG9yIGZhbHNlLCB3aGV0aGVyIG9yIG5vdCB0byBsb2FkIGV4dGVuc2lvbnMgb2YKPiAgICB0aGlzIHBsdWdpbi4gSXQgaXMgYnkgZGVmYXVsdCBmYWxzZS4gRXh0ZW5zaW9ucyBhcmUgY292ZXJlZCBsYXRlciBpbiB0PQpoaXMKPiAgICBkb2N1bWVudC4KPgo+IEl0IGRvZXMgbm90IHNheSB0aGF0IHRoaXMgZmxhZyBhZmZlY3RzIHRoZSBjbGFzc2xvYWRlciBvZiB0aGUgcGx1Z2luLAo+IHJhdGhlciB0byBtZSBzYXlzIHdoZW4gdHJ1ZSB0aGUgcHJvamVjdCByZWFsbSBzaGFsbCBpbmNsdWRlIHRoZSBwbHVnaW4ncwo+IGV4dGVuc2lvbnMuCj4KPiBNeSB1bmRlcnN0YW5kaW5nIHdhcyB0aGF0IGEgcGx1Z2luIHdvdWxkIGFsd2F5cyBzZWUgaXRzIG93biBleHRlbnNpb25zLAo+IGJ1dCBpZiB5b3Ugc2V0IHRoaXMgZmxhZyB0aGVuIHRoZSBwcm9qZWN0IHdvdWxkIGJlIGFibGUgdG8gc2VlIHRoZW0gdG9vLi49Ci4KPgo+IE5vdyBncmFudGVkIG15IHVuZGVyc3RhbmRpbmcgbWF5IGJlIGluY29ycmVjdCwgYnV0IHRoaXMgY2hhbmdlIHNlZW1zIHRvIGI9CmUKPiB0dXJuaW5nIHRoaW5ncyBpbiBhbiBlbnRpcmVseSBkaWZmZXJlbnQgZGlyZWN0aW9uCj4KCk9rIGRpc2N1c3NlZCB0aGlzIG9uICNtYXZlbi1kZXYKCkkgbmVlZCB0byBjb25maXJtIG15IGFuYWx5c2lzLCBidXQgaWYgY29ycmVjdCwgdGhlbiB0aGUgZml4IGZvciBNTkctNjIwOSBpcwpjb3JyZWN0Li4uIHdpbGwgbmVlZCBjYXJlZnVsIHJlbGVhc2Ugbm90aW5nCgo+Cj4gUHJvYmxlbSBpcywgbmVpdGhlciBwcm9qZWN0IHJlYWxtIG5vciBhbnkgb2YgdGhlIHBsdWdpbiByZWFsbXMgaGF2ZQo+PiBhY2Nlc3MgdG8ganZtIGV4dGVuc2lvbnMgY2xhc3Nsb2FkZXIsIHNvIFNlcnZpY2VMb2FkZXIgY2FuJ3QgZ2V0IGNsYXNzZXMKPj4gZnJvbSB0aGVyZS4KPgo+Cj4gVGhhdCBpcyBhbm90aGVyIHNldCBvZiBpc3N1ZXMuLi4gYnV0IHRoaXMgc2hvdWxkIGhhdmUgYmVlbiBmaXhlZCBieSA2Mjc1Cj4gdW5sZXNzIEkgYW0gbWlzdGFrZW4KPgo+Cj4+Cj4+IC0tCj4+IFJlZ2FyZHMsCj4+IElnb3IKPj4KPj4gT24gRnJpLCBTZXAgMTUsIDIwMTcsIGF0IDEyOjA5IFBNLCBTdGVwaGVuIENvbm5vbGx5IHdyb3RlOgo+PiA+IEknbSBnb2luZyB0byBob2xkIG9mZiBjbG9zaW5nIHRoZSB2b3RlIG92ZXIgdGhlIHdlZWtlbmQgdG8gZ2l2ZSBJZ29yIGEKPj4gPiBjaGFuY2UgdG86Cj4+ID4KPj4gPiAxLiBjb21tZW50IG9uIHdoZXRoZXIgd2UgbmVlZCBhbiBhbHRlcm5hdGl2ZSBmaXggZm9yIE1ORy02Mjc1IChhbmQKPj4gaW5kZWVkCj4+ID4gaWRlYWxseSBwcm92aWRlIG9uZSA7LSApOwo+PiA+IDIuIGNvbW1lbnQgb24gd2hldGhlciB0aGUgZml4IGZvciBNTkctNjIwOSBpcyBleHBvc2luZyBidWdzIGluIHBsdWdpbnMKPj4gPiB0aGF0Cj4+ID4gbWFkZSBpbmNvcnJlY3QgYXNzdW1wdGlvbnMgYWJvdXQgVENDTCwgb3Igd2hldGhlciB0aGUgZml4IGlzIGludmFsaWQgbz0Kcgo+PiA+IGV2ZW4gaW5jb21wbGV0ZSAoSSB3b25kZXIgaWYgVENDTCBzaG91bGQgYWx3YXlzIGJlCj4+ID4gcHJvamVjdC5nZXRDbGFzc1JlYWxtKCkKPj4gPiBhcyBleHRlbnNpb25zIHNob3VsZCBiZSBhdmFpbGFibGUgdG8gYWxsIHBsdWdpbnMgbm90IGp1c3QgdGhvc2UgdGhhdAo+PiA+IGRlY2xhcmUgdGhleSBhcmUgcHJvdmlkaW5nIGV4dGVuc2lvbnMgLSB1bmxlc3MgSSBtaXN1bmRlcnN0YW5kKQo+PiA+Cj4+ID4gT25jZSBJIGhhdmUgdGhlIHJlcXVpcmVkIGluZm9ybWF0aW9uIEkgd2lsbCBiZSBiZXR0ZXIgYWJsZSB0byBhc3Nlc3MKPj4gPiB3aGV0aGVyIHdlIHNob3VsZCByZWxlYXNlIDMuNS4xIGFuZCBmb2xsb3cgdXAgd2l0aCBhIHF1aWNrIDMuNS4yIG9yIGp1PQpzdAo+PiA+IGRyb3AgMy41LjEgYW5kIGdvIHN0cmFpZ2h0IHRvIDMuNS4yLgo+PiA+Cj4+ID4gLVN0ZXBoZW4KPj4gPgo+PiA+IE9uIDE1IFNlcHRlbWJlciAyMDE3IGF0IDA1OjQ1LCBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvbT4KPj4gPiB3cm90ZToKPj4gPgo+PiA+ID4gSGFzIGFueW9uZSB0cmllZCB3aXJpbmcganZtIGV4dGVuc2lvbnMgQ2xhc3NMb2FkZXIgYXMgZm9yZWlnbiBpbXBvcnQKPj4gdG8KPj4gPiA+IHBsdWdpbi9leHRlbnNpb25zIHJlYWxtcz8gSnZtIGV4dGVuc2lvbnMgY2xhc3Nsb2FkZXIgaXMgbGl0dGxlIHRyaWNrPQp5Cj4+IHRvCj4+ID4gPiBnZXQgdG8gKHNlZSBob3cgdGhpcyBpcyBkb25lIGluCj4+IGphdmEudXRpbC5TZXJ2aWNlTG9hZGVyLmxvYWRJbnN0YWxsZWQpLAo+PiA+ID4gYnV0IEkgdGhpbmsgdGhpcyB3aWxsIHNvbHZlIFNlcnZpY2VMb2FkZXIvTU5HLTYyNzUgd2l0aG91dCBwb2xsdXRpbmcKPj4gPiA+IHBsdWdpbiBjbGFzc3BhdGggdG9vIG11Y2guCj4+ID4gPgo+PiA+ID4gLS0KPj4gPiA+IFJlZ2FyZHMsCj4+ID4gPiBJZ29yCj4+ID4gPgo+PiA+ID4gT24gRnJpLCBTZXAgMTUsIDIwMTcsIGF0IDA4OjMyIEFNLCBNYXJrIERlcnJpY3V0dCB3cm90ZToKPj4gPiA+ID4gV291bGQgaXQgYmUgcG9zc2libGUgdG8gaGFuZGxlIHRoaXMgaW4gYSBzb21ld2hhdCBzaW1pbGFyIHdheSB0bwo+PiA+ID4gPiB0aHJlYWRTYWZlCj4+ID4gPiA+IG1vam9zIC0gc29tZSBmb3JtIG9mIHBsdWdpbiBmbGFnIHRoYXQgc2F5cyAiZXh0ZW5zaW9uU2FmZSIgWzFdLAo+PiB0aGF0IGlmCj4+ID4gPiA+IHRoZQo+PiA+ID4gPiBwbHVnaW4gaGFzIDxleHRlbnNpb25zPnRydWU8L2V4dGVuc2lvbnM+IGRlY2xhcmVkIGFuZCBkb2Vzbid0Cj4+IGRlY2xhcmUKPj4gPiA+ID4gaXRzZWxmIGFzIGJlaW5nIGV4dGVuc2lvblNhZmUvZXh0ZW5zaW9uQXdhcmUgdGhlbiB3ZSBsb2cgYSBidWlsZAo+PiB3YXJuaW5nCj4+ID4gPiA+IC0KPj4gPiA+ID4gaXQgd291bGRuJ3Qgc29sdmUgYW55dGhpbmcsIG90aGVyIHRoYW4gZ2l2aW5nIHNvbWUgZmVlZGJhY2sgdG8KPj4gdXNlcnMgc29tZQo+PiA+ID4gPiBpbmRpY2F0aW9uIG9mIFdIWSB0aGVpciBidWlsZCBmYWlscyB1bmRlciAzLjUuMSAtIGFuZCB0byBlaXRoZXIKPj4gcmVtb3ZlCj4+ID4gPiA+IDxleHRlbnNpb25zPiBvciBmaXgvdXBkYXRlIHRoZWlyIHBsdWdpbnMuCj4+ID4gPiA+Cj4+ID4gPiA+IFsxXSBPciBldmVuIGp1c3QgaW5mZXIgdGhlIGFwcGxpY2FiaWxpdHkgb2YgZXh0ZW5zaW9ucyBieSB0aGUKPj4gcHJlc2VuY2Ugb2YKPj4gPiA+ID4gY3VzdG9tIGxpZmVjeWNsZXMsIG9yIE1vam9zIGltcGxlbWVudGluZyB0aGUgZXh0ZW5zaW9uIGludGVyZmFjZXMgPQooCj4+IGl0J3MKPj4gPiA+ID4gbWlkbmlnaHQsIGFuZCBhIGhhenkgdGlyZWQgdGhvdWdodCApLgo+PiA+ID4gPgo+PiA+ID4gPiAtLQo+PiA+ID4gPiAiR3JlYXQgYXJ0aXN0cyBhcmUgZXh0cmVtZWx5IHNlbGZpc2ggYW5kIGFycm9nYW50IHRoaW5ncyIgPUUyPTgwPQo9OTQgU3RldmVuCj4+ID4gPiA+IFdpbHNvbiwKPj4gPiA+ID4gUG9yY3VwaW5lIFRyZWUKPj4gPiA+ID4KPj4gPiA+ID4gT24gU2F0LCBTZXAgMTYsIDIwMTcgYXQgMTI6MjIgQU0sIEFuZGVycyBIYW1tYXIgPGFuZGVyc0BoYW1tYXIubmV0PQo+Cj4+ID4gPiA+IHdyb3RlOgo+PiA+ID4gPgo+PiA+ID4gPiA+IEJhc2VkIG9uIElnb3IncyBmZWVkYmFjayBJJ20gY2hhbmdpbmcgbXkgdm90ZSB0byArMS4KPj4gPiA+ID4gPgo+PiA+ID4gPiA+IEhhdmluZyB0aGlzIGNsYXNzIGxvYWRlciBjaGFuZ2UgaW4gYSBidWcgZml4IHJlbGVhc2UgaXMgcHJvYmFibHkKPj4gbm90Cj4+ID4gPiA+ID4gKHNlbXZlcikgaWRlYWwgdGhvdWdoLgo+PiA+ID4gPiA+Cj4+ID4gPiA+ID4gL0FuZGVycwo+PiA+ID4gPiA+Cj4+ID4gPiA+ID4gT24gRnJpLCBTZXAgMTUsIDIwMTcgYXQgMjoxMiBQTSwgSWdvciBGZWRvcmVua28gPAo+PiBpZ29yQGlmZWRvcmVua28uY29tPgo+PiA+ID4gPiA+IHdyb3RlOgo+PiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiBJIGFuc3dlcmVkIGluIG1vcmUgZGV0YWlscyBvbiBtMmUtZGV2LCBidXQgSSBiZWxpZXZlIHdlIGNhbgo+PiA+ID4gY29tcGVuc2F0ZQo+PiA+ID4gPiA+ID4gZm9yIHRoZSBjaGFuZ2UgZnJvbSBtMmUgZW5kLiBJbiB0aGUgd29yc3QgY2FzZSB3ZSdsbCBidW5kbGUKPj4gaGFja2VkCj4+ID4gPiA+ID4gPiB2ZXJzaW9uIG9mIERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlciB3aXRoIG0yZSwgbm90IGlkZWFsLCBidXQKPj4gbm90IHRoZQo+PiA+ID4gZW5kCj4+ID4gPiA+ID4gPiBvZiB0aGUgd29ybGQgZWl0aGVyLgo+PiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+IC0tCj4+ID4gPiA+ID4gPiBSZWdhcmRzLAo+PiA+ID4gPiA+ID4gSWdvcgo+PiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+IE9uIEZyaSwgU2VwIDE1LCAyMDE3LCBhdCAwNzoyMSBBTSwgQW5kZXJzIEhhbW1hciB3cm90ZToKPj4gPiA+ID4gPiA+ID4gT24gRnJpLCBTZXAgMTUsIDIwMTcgYXQgODoyOSBBTSwgQW5kZXJzIEhhbW1hciA8Cj4+IGFuZGVyc0BoYW1tYXIubmV0Pgo+PiA+ID4gPiA+ID4gd3JvdGU6Cj4+ID4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+ID4gUmVwb3J0aW5nIGJhY2sgZnJvbSB0ZXN0cyBvZiBtMmUgd2l0aCBlbWJlZGRlZCBNYXZlbiAzLjUuMT0KLAo+PiB3ZQo+PiA+ID4gc2VlCj4+ID4gPiA+ID4gPiBwcm9ibGVtCj4+ID4gPiA+ID4gPiA+ID4gd2l0aCB0aGUgamF4d3MtbWF2ZW4tcGx1Z2luIG1vam8uIFdlJ3JlIHR3byBwZW9wbGUgc2VlaW5nCj4+IHRoZQo+PiA+ID4gaXNzdWUKPj4gPiA+ID4gPiA+ID4gPiBpbmRlcGVuZGVudGx5LCBidXQgdW5mb3J0dW5hdGVseSBGcmVkIEJyaWNvbiBoYXNuJ3QgYmVlbgo+PiBhYmxlIHRvCj4+ID4gPiA+ID4gPiByZXByb2R1Y2UuCj4+ID4gPiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gVG8gZm9sbG93IHVwIG9uIHRoaXMsIG15IHRlc3RzIGluZGljYXRlIHRoYXQgTWF2ZW4gMy41LjEKPj4gY2F1c2VzCj4+ID4gPiBjaGFuZ2VkCj4+ID4gPiA+ID4gPiA+IGNsYXNzIGxvYWRpbmcgdGhhdCBjb3VsZCBjYXVzZSBpc3N1ZXMgZm9yIHBsdWdpbnMgaW4gbTJlLiBJJz0KdmUKPj4gPiA+IGFza2VkCj4+ID4gPiA+ID4gZm9yCj4+ID4gPiA+ID4gPiA+IGlucHV0IGZyb20gdGhlIG0yZSBkZXZzIGlmIGl0IGlzIHBvc3NpYmxlIHRvIGhhbmRsZSBpbiBtMmUKPj4gYnV0IHRoZXkKPj4gPiA+ID4gPiA+ID4gaGF2ZW4ndAo+PiA+ID4gPiA+ID4gPiByZXNwb25kZWQgeWV0Lgo+PiA+ID4gPiA+ID4gPgo+PiA+ID4gPiA+ID4gPiAvQW5kZXJzCj4+ID4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPiBTbyBjdXJyZW50bHkgSSdtIDAgb24gdGhlIHZvdGluZyBidXQgSSdsbCBpbnZlc3RpZ2F0ZSBzb21lCj4+IG1vcmUuCj4+ID4gPiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPiAvQW5kZXJzCj4+ID4gPiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPiBPbiBXZWQsIFNlcCAxMywgMjAxNyBhdCA5OjI2IEFNLCBBbmRlcnMgSGFtbWFyIDwKPj4gPiA+IGFuZGVyc0BoYW1tYXIubmV0Pgo+PiA+ID4gPiA+ID4gd3JvdGU6Cj4+ID4gPiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPj4KPj4gPiA+ID4gPiA+ID4gPj4KPj4gPiA+ID4gPiA+ID4gPj4gT24gVHVlLCBTZXAgMTIsIDIwMTcgYXQgODo1NCBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4+ID4gPiA+ID4gPiA+ID4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+PiA+ID4gPiA+ID4gPiA+Pgo+PiA+ID4gPiA+ID4gPiA+Pj4gSGF2ZSB3ZSBnb3QgYW55IGZlZWRiYWNrIGZyb20gdGhlIGVtYmVkZGVyIGludGVncmF0aW9ucwo+PiB5ZXQ/Cj4+ID4gPiA+ID4gPiA+ID4+Pgo+PiA+ID4gPiA+ID4gPiA+Pgo+PiA+ID4gPiA+ID4gPiA+PiBJIGhhdmVuJ3QgaGVhcmQgYW55dGhpbmcgZnJvbSB0aGUgbTJlIHBlb3BsZS4gTWF5YmUgd2UKPj4gbmVlZCB0bwo+PiA+ID4gcGluZwo+PiA+ID4gPiA+ID4gdGhlbQo+PiA+ID4gPiA+ID4gPiA+PiBkaXJlY3RseS4gSSBjYW4gY29udGFjdCBGcmVkIEJyaWNvbi4KPj4gPiA+ID4gPiA+ID4gPj4KPj4gPiA+ID4gPiA+ID4gPj4gL0FuZGVycwo+PiA+ID4gPiA+ID4gPiA+Pgo+PiA+ID4gPiA+ID4gPiA+Pgo+PiA+ID4gPiA+ID4gPiA+Pj4KPj4gPiA+ID4gPiA+ID4gPj4+IE9uIE1vbiAxMSBTZXAgMjAxNyBhdCAyMjo1NywgSGVydj1DMz1BOSBCT1VURU1ZIDwKPj4gPiA+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4gPiA+ID4gPiA+ID4gPj4+IHdyb3RlOgo+PiA+ID4gPiA+ID4gPiA+Pj4KPj4gPiA+ID4gPiA+ID4gPj4+ID4ganVzdCBmb3IgdGhlIHJlY29yZHM6IGl0IGlzIFdpbmRvd3MgKyBHaXQgQmFzaAo+PiAoTUlOR1c2NCkgb25seQo+PiA+ID4gPiA+ID4gPiA+Pj4gPgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiBhbmQgdGhlcmUgaXMgYSBjaGFuY2UgdGhhdCBhZGRpbmcgLURqYW5zaS5mb3JjZT0zRHRydWU9CiBjYW4KPj4gPiA+IGZvcmNlCj4+ID4gPiA+ID4gPiBKQW5zaQo+PiA+ID4gPiA+ID4gPiA+Pj4gPiBhY3RpdmF0aW9uIChldmVuIGlmIEpBbnNpIGZhaWxzIHRvIGRldGVjdCB0aGF0IGl0IHNob3U9CmxkCj4+ID4gPiA+ID4gPiBhdXRvLWFjdGl2YXRlKQo+PiA+ID4gPiA+ID4gPiA+Pj4gPgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiBkZXRhaWxzIG9uIGlzc3VlIGluIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvCj4+ID4gPiA+ID4gamlyYS9icm93c2UvTU5HLTYyODIKPj4gPiA+ID4gPiA+ICwKPj4gPiA+ID4gPiA+ID4gPj4+IGFuZCBhCj4+ID4gPiA+ID4gPiA+ID4+PiA+IGZ1dHVyZSBKQW5zaSBpc3N1ZS4uLgo+PiA+ID4gPiA+ID4gPiA+Pj4gPgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiBSZWdhcmRzLAo+PiA+ID4gPiA+ID4gPiA+Pj4gPgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiBIZXJ2PUMzPUE5Cj4+ID4gPiA+ID4gPiA+ID4+PiA+Cj4+ID4gPiA+ID4gPiA+ID4+PiA+IExlIGx1bmRpIDExIHNlcHRlbWJyZSAyMDE3LCAxMjo1Mzo0NiBDRVNUIFN0ZXBoZW4KPj4gQ29ubm9sbHkgYQo+PiA+ID4gPiA+ID1DMz1BOWNyaXQKPj4gPiA+ID4gPiA+IDoKPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiBTbyB0aGF0IGlzIHdpbmRvd3Mgb25seSwgb3Igd2VyZSB0aGV5IGxvc3Qgb24gb3RoZXIKPj4gT1Nlcwo+PiA+ID4gZm9yCj4+ID4gPiA+ID4geW91Lgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+Cj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gSSBoYXZlIGNvbG91cnMgb24gbGludXggKHZpYSBkb2NrZXIpIGFuZCBvcy14Cj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4KPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiBPbiAxMSBTZXB0ZW1iZXIgMjAxNyBhdCAxMjozNSwgZGVqYW4yNjA5QGdtYWlsLmNvbSA8Cj4+ID4gPiA+ID4gPiA+ID4+PiBkZWphbjI2MDlAZ21haWwuY29tPgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+Cj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gd3JvdGU6Cj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiArMSAoY29uZGl0aW9uYWxseSkuCj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gVGVzdGVkIHZpYSBwcm9qZWN0IHRoYXQgaW5jbHVkZXMgZG96ZW4gb2YgcGx1Z2luczoKPj4gMXN0Cj4+ID4gPiB0aWVyLAo+PiA+ID4gPiA+ID4gPiA+Pj4gTW9qb0hhdXMKPj4gPiA+ID4gPiA+ID4gPj4+ID4gYW5kCj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiBmZXcgM3JkIHBhcnR5IHBsdWdpbnMgKHNvIHRvIHNheSkuCj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gRXZlcnl0aGluZyBsb29rcyBnb29kIHdpdGggb25lIG5vdGFibGUgcmVncmVzc2lvbjoKPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyODIKPj4gQ29uc29sZQo+PiA+ID4gPiA+IG91dHB1dAo+PiA+ID4gPiA+ID4gaGFzCj4+ID4gPiA+ID4gPiA+ID4+PiBubwo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gY29sb3JzIChyZWdyZXNzaW9uIGluIE1hdmVuIDMuNS4xKQo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+IFJlZ2FyZHMsCj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiBEZWphbgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+IE9uIDIwMTctMDktMTAgMTc6MzksIFN0ZXBoZW4gQ29ubm9sbHkgPAo+PiA+ID4gPiA+ID4gPiA+Pj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbQo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+Cj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gd3JvdGU6Cj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IEhpLAo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBXZSBzb2x2ZWQgMjUgaXNzdWVzOgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPgo+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGEKPj4gPiA+ID8KPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiB2ZXJzaW9uPTNEMTIzMzg5NjQmc3R5bGVOYW1lPTNEVGV4dCZwcm9qZWN0SWQ9M0QxMj0KMzE2OTIyCj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBUaGVyZSBhcmUgMzUwIGlzc3VlcyBsZWZ0IGluIEpJUkEgZm9yIE1hdmVuIGNvcmU9CjoKPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4KPj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUKPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+PiAzRCUyME1ORyUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlCj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+PiAyMEJZJTIwZHVlJTIwQVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwY3JlYXRlZCUyMEFTQwo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gU3RhZ2luZyByZXBvOgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy8KPj4gPiA+IGNvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+PiA+ID4gPiA+ID4gMTM2NC8KPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gVGhlIGRpc3RyaWJ1dGFibGUgYmluYXJpZXMgYW5kIHNvdXJjZXMgY2FuIGJlCj4+IGZvdW5kCj4+ID4gPiBoZXJlOgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy8KPj4gPiA+IGNvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4KPj4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xLwo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gU3BlY2lmaWNhbGx5IHRoZSB6aXAsIHRhcmJhbGwgYW5kIHNvdXJjZSBhcmNoaXZlPQpzCj4+IGNhbgo+PiA+ID4gYmUKPj4gPiA+ID4gPiA+IGZvdW5kCj4+ID4gPiA+ID4gPiA+ID4+PiBoZXJlOgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy8KPj4gPiA+IGNvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4KPj4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLQo+PiA+ID4gbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLQo+PiA+ID4gPiA+ID4gPiA+Pj4gYmluLnppcAo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvCj4+ID4gPiBjb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+Cj4+ID4gPiA+ID4gPgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS0KPj4gPiA+IG1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS0KPj4gPiA+ID4gPiA+ID4gPj4+IGJpbi50YXIuZ3oKPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnLwo+PiA+ID4gY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tPgo+PiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtCj4+ID4gPiBtYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtCj4+ID4gPiA+ID4gPiA+ID4+PiBzcmMuemlwCj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy8KPj4gPiA+IGNvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4KPj4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLQo+PiA+ID4gbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLQo+PiA+ID4gPiA+ID4gPiA+Pj4gc3JjLnRhci5nego+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMudGFyLmd6IHNoYTE6Cj4+ID4gPiA+ID4gPiA+ID4+PiA5ZWI4MjFmMTUzYzc2NjcxOTRhYTExY2NkMDk5YjcKPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiBiZDIwNTk1NjBkCj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcDogc2hhMToKPj4gPiA+ID4gPiA+IDEyMWQ1NGIwNDUzODBhOGE0ODk1ZWIxMzc5NzBhYgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+IDY5ZTY5OGViMGUKPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IEdpdCB0YWc6Cj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+Cj4+IGh0dHBzOi8vZ2l0LXdpcC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPTNEbWF2ZW4uZ2l0O2E9M0QKPj4gPiA+ID4gPiA+IGNvbW1pdDtoPTNECj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMwo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gU3RhZ2luZyBzaXRlOgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvY29tcG9uZW50cy9yZWYvMy1MQVRFU1Q9Ci8KPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gVm90ZSBvcGVuIGZvciA3MiBob3Vycy4KPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gWyBdICsxCj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiA+IFsgXSArMAo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBbIF0gLTEKPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+ID4gVGhhbmtzLAo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4gPiBTdGVwaGVuLgo+PiA+ID4gPiA+ID4gPiA+Pj4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ID4gPiA+ID4gPiA+ID4+PiAtLS0tLS0tLS0KPj4gPiA+ID4gPiA+ID4gPj4+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6Cj4+IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPiA+ID4gPiA+ID4+PiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOgo+PiA+ID4gZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4gPiA+ID4gPiA+Pj4gPgo+PiA+ID4gPiA+ID4gPiA+Pj4gPgo+PiA+ID4gPiA+ID4gPiA+Pj4gPgo+PiA+ID4gPiA+ID4gPiA+Pj4gPgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gPiA+ID4gPiA+IC0tLS0tLS0tLQo+PiA+ID4gPiA+ID4gPiA+Pj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOgo+PiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4gPiA+ID4gPiA+Pj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOgo+PiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPiA+ID4gPiA+ID4+PiA+Cj4+ID4gPiA+ID4gPiA+ID4+PiA+IC0tCj4+ID4gPiA+ID4gPiA+ID4+PiBTZW50IGZyb20gbXkgcGhvbmUKPj4gPiA+ID4gPiA+ID4gPj4+Cj4+ID4gPiA+ID4gPiA+ID4+Cj4+ID4gPiA+ID4gPiA+ID4+Cj4+ID4gPiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gPiA+IC0tLS0tLS0tLQo+PiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPgo+PiA+ID4gPiA+Cj4+ID4gPgo+PiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0KPj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPgo+PiA+ID4KPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KPj4gLS0KPiBTZW50IGZyb20gbXkgcGhvbmUKPgotLT0yMApTZW50IGZyb20gbXkgcGhvbmUKCi0tOTRlYjJjMWIxMGNjMjBmNTZiMDU1OTRjNGQ5My0tCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDM3Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gT2N0IDMwIDIwOjE4OjE5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDM3Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA2ODA0NTEwMzIwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMzAgT2N0IDIwMTcgMjA6MTg6MTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3MzI2IGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIE9jdCAyMDE3IDIwOjE4OjE3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MjQ1IGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIE9jdCAyMDE3IDIwOjE4OjE3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzIyMSBpbnZva2VkIGJ5IHVpZCA5OSk7IDMwIE9jdCAyMDE3IDIwOjE4OjE3IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAzMCBPY3QgMjAxNyAyMDoxODoxNyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDUwOTJBQ0Q4QUE7CglNb24sIDMwIE9jdCAyMDE3IDIwOjE4OjE2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuOTAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjkwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDlGS2RIbE9hUTRUYzsgTW9uLCAzMCBPY3QgMjAxNyAyMDoxODoxNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdyMC1mMTc3Lmdvb2dsZS5jb20gKG1haWwtd3IwLWYxNzcuZ29vZ2xlLmNvbSBbMjA5Ljg1LjEyOC4xNzddKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQzYyQ0M1RjU2OTsKCU1vbiwgMzAgT2N0IDIwMTcgMjA6MTg6MTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd3IwLWYxNzcuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgazYyc28xMzg2NjI2MHdyYy45OwogICAgICAgIE1vbiwgMzAgT2N0IDIwMTcgMTM6MTg6MTQgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOmNjOwogICAgICAgIGJoPStmWUwvRTgrYUJESkZqb1oyNHFXOUNrekhlQkF1VHdQekNHbFdVS3NJak09OwogICAgICAgIGI9b3JWazg2NXJJRmtGZ05lb00rODYvSWRjM1dYOXhJdzNqbVFCQTZidHdNaTZDcC9UQ0xzS3ZmVDduVWs2SDNJQWhPCiAgICAgICAgIFdvcDFkKzBZM1h5SmR4bGYwNkFDVm9JbmJZTyswdjgrZ1hhYXBlNGdHTmREZ0dHR0lkT3J6SzQ1UVk3RUlqL0ZsdkRkCiAgICAgICAgIFA2UVhqNFpZckpoLzQ5eGJFVGp1L2tSM2NzRkR3UHVCSHZpQjFWcFpFZUVKdk82OEdJemIwN0Q2TVZSZ2lQR2szdjBWCiAgICAgICAgIFN0Z0dGTk1OTmZsVXM3SXdud1pMc0hNamcyMVVBQVVpSUM2ZGJjQ3ZEOVRuMnpiaDI1WHdIVXV3M3BaTzhMdWx3TkNqCiAgICAgICAgICtVeHI2MXl4eUZaSzNDSU5tcVM0b0pyNmR0dFFUSSsrK1lVTmx4UU9FSHFQKzdUSytNV0trNXluWDZYQlFabzVoNTEyCiAgICAgICAgIFJldXc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOmNjOwogICAgICAgIGJoPStmWUwvRTgrYUJESkZqb1oyNHFXOUNrekhlQkF1VHdQekNHbFdVS3NJak09OwogICAgICAgIGI9UVI0VUwrQjJmOWpuWmJhdGY3VWdMZ0Nyd2NpMkJLSlZyNUhTWmpydU8zWStpYVlhL250WlZRRTV2cnlYbWZDc3g3CiAgICAgICAgIEpyZGhsbXdTUjdMNC9XVUVnZE9lOXBYdlhmTnEwT1BmbjYvYTBjZDd1WU9kSzFReXFOM3RQOXIvK2MyQkV3Y1hXbnY5CiAgICAgICAgIElRUG42VWFGWHVHTVVqZCtHOG9hbG8zLytNOTh5cU43RXVhV2lrdWQzUEtkeWRpUE8xYUN6T2QyRVZaUCtsdXZOSlYrCiAgICAgICAgIDdrdDFLQ0FEbnlPMVdRUXhIaG9QT2JiVXhmVEZ1WFlnMlVySzJGaERVK3hXall1a1lDdlVMOThlbnlPekJZU3dVRE5pCiAgICAgICAgIFVyd0RyaDhHYzcvZDdzTzJZMC9rcDZNYitLS2wxV0Z1SGwzZkdIVVN4cFZGSm9DK3pqSUxTVjhUUXZLTzROMDBEeUZFCiAgICAgICAgIDFxY3c9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVVmQ0FlODJIRjJ6M2hmWCs1QVhrdTBiVU81ZVZBQkxadE5HZnBPL3VrWkZQYkNvWWdLCglvQXl5MC83WS92WDlGOW9TcnF0YlpyM0c5Tk50MnRKZXhoNTdWeWZhbkE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArUlIvUHZ3QnMvZmdOV1c0NDYrNi9IcnMxZWxRUDc2MUtQNU1pSSs2WE5NemFNODVVMWIvNTJ3L1JQdTJYZjVRb1J0QzNhYmhibzFmV0drN3JuTUlDRT0KWC1SZWNlaXZlZDogYnkgMTAuMjIzLjE0NC4yMjYgd2l0aCBTTVRQIGlkIGk4OW1yODM1Nzg1M3dyaS4yMTcuMTUwOTM5NDY5NDEwMTsKIE1vbiwgMzAgT2N0IDIwMTcgMTM6MTg6MTQgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAzMCBPY3QgMjAxNyAyMDoxODowMyArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXpwSjhFYUwyLU50aG9GeF9fOHlySmNTb3RjRTF0dXJzc2d5X1J0X2Q2MEdBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBUb3dhcmRzIG1vcmUgZWZmZWN0aXZlIHVzZSBvZiBKZW5raW5zClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDYzogTWF2ZW4gVXNlcnMgTGlzdCA8dXNlcnNAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSI5NGViMmMwNWY0ODI5MTYzN2YwNTVjYzk1NjJmIgoKLS05NGViMmMwNWY0ODI5MTYzN2YwNTVjYzk1NjJmCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkhlcnY9QzM9QTkgd2FzIGxvb2tpbmcgZm9yIHN1Z2dlc3Rpb25zIG9uIGhvdyB3ZSBjYW4gdXNlIEplbmtpbnMgbW9yZQplZmZlY3RpdmVseS4KCkkgZGVjaWRlZCB0byB1c2UgdGhpcyBhcyBhbiBvcHBvcnR1bml0eSB0byBraWxsIHNldmVyYWwgYmlyZHMgd2l0aCB0aGUgb25lCnN0b25lLgoKST1FMj04MD05OW0gcmVjb3JkaW5nIGEgc2VyaWVzIG9mIGxpdmUsIHVuc2NyaXB0ZWQsIHVuZWRpdGVkIHZpZGVvcyBkZXZlbG9wPQppbmcKSmVua2lucyBwbHVnaW5zIGFuZCBKZW5raW5zZmlsZSBzaGFyZWQgbGlicmFyaWVzIHRvIHByb3ZpZGUgYSBtdWNoIGltcHJvdmVkCnVzYWdlIG9mIEplbmtpbnMuCgpJZiB5b3UgYXJlIGludGVyZXN0ZWQsIHRoZSBmaXJzdCBvbmUgaXMgYXZhaWxhYmxlOgoKaHR0cHM6Ly93d3cuY2xvdWRiZWVzLmNvbS9ibG9nL3dhdGNoLW1lLWNvZGUtZXBpc29kZS0xCgpUaGlzIHNlcmllcyB3aWxsIHByb2JhYmx5IGhhdmUgOC0xMCBlcGlzb2RlcyBiYXNlZCBvbiBhcHByb3hpbWF0ZWx5IHRoZQppZGVhIGZvciB3aGVyZSBJIHdhbnQgdG8gZ2V0IHRvIChhc3N1bWluZyBJIGRvbj1FMj04MD05OXQgY2hhbmdlIHBsYW5uZWQgZW49CmQgcG9pbnQKYXMgSSBnbykKCk5vdGVzOgoqIGk9RTI9ODA9OTltIGFpbWluZyBmb3IgZWFjaCBvbmUgdG8gYmUgYWJvdXQgMjBtaW4uIEVwaXNvZGUgMiBpcyBhID1FMj04MD0KPTlDZG91YmxlCmVwaXNvZGU9RTI9ODA9OUQgYXMgd2UgbmVlZGVkIHRvIGdldCB0byBhbiBNVlAKKiB0aGluZ3MgZ28gd3JvbmcsIEkgdGhpbmsgc2VlaW5nIGhvdyBzb21lb25lIGZpeGVzIGlzIG1vcmUgaW5mb3JtYXRpdmUKdGhhbiBzZWVpbmcgYSBwZXJmZWN0IHNjcmlwdGVkIGV4ZWN1dGlvbi4KKiB0aGluZ3MgY2FuIGFsc28gZ28gdW5leHBlY3RlZGx5IHJpZ2h0IChlZyBlcGlzb2RlIDMpCi0tPTIwClNlbnQgZnJvbSBteSBwaG9uZQoKLS05NGViMmMwNWY0ODI5MTYzN2YwNTVjYzk1NjJmLS0KCkZyb20gZGV2LXJldHVybi0xMjQwMzQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIFNlcCAxNSAwOTo1NTowNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwMzQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNDk1MzExQUE1QQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDE1IFNlcCAyMDE3IDA5OjU1OjA1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTAzMDYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgU2VwIDIwMTcgMDk6NTU6MDQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUwMjI0IGludm9rZWQgYnkgdWlkIDUwMCk7IDE1IFNlcCAyMDE3IDA5OjU1OjA0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTAyMTIgaW52b2tlZCBieSB1aWQgOTkpOyAxNSBTZXAgMjAxNyAwOTo1NTowNCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMTUgU2VwIDIwMTcgMDk6NTU6MDQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBFQ0REQTFBMjJEOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTUgU2VwIDIwMTcgMDk6NTU6MDMgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjM4ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuMzggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxLAoJVVJJQkxfQkxPQ0tFRD0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEhaZk1WaFNkUjlxSSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCUZyaSwgMTUgU2VwIDIwMTcgMDk6NTU6MDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC11YTAtZjE3My5nb29nbGUuY29tIChtYWlsLXVhMC1mMTczLmdvb2dsZS5jb20gWzIwOS44NS4yMTcuMTczXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDQ4QTcwNUZBRjMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDE1IFNlcCAyMDE3IDA5OjU1OjAxICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXVhMC1mMTczLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGMyN3NvOTgwMTc4dWFoLjIKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAxNSBTZXAgMjAxNyAwMjo1NTowMSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bwogICAgICAgICA6Y2M7CiAgICAgICAgYmg9eVV3RUNSbW85bTFuTnlSSUkyTGkyRjdQZllnVmtZeWx4TmMyUUFWNGN0az07CiAgICAgICAgYj1pYWtpQUo2UHN4N2cyNE5iMXkyb1M1bVJxR3hoeUYrQTFOK2tyZjUxUnFMMEZ1dDg2VXFjak1kNGpGb1J2a2lwYmQKICAgICAgICAgSDlvMllNL3RkSXFWczUwMVcxWlRFbCtJL29hL08vOXoyM2N6a0s0SU9EdzJCbHpVbzNWWkFNc3c1L1MrSXJDRzhoVkIKICAgICAgICAgV1M2L0pGZ09BY0JrT0xFRXkzQ0xybWpBQ2tGNjRibmFXZVRsdlZ5REtLaG9YbTduN0RGWDRqU0lXQU52QWRsUTlmdDAKICAgICAgICAgeUZ0S0RDY0lqb0JiZDFPd0o5b0xiSGxhQW9STEJnVHB5MHppbURDQ0swelJQTjk0Z2w1ZXN0YzBwci9kelVTZzV2eDcKICAgICAgICAgMmgvTE92THNSSkIwUzV2US9MQTIxVVNHajRmOWZLZHR4dUJSTFJTKzNBN2FLV0VqY3lUa3Yra0pRVzIwNFlFcW5EWWwKICAgICAgICAgWDBRQT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG86Y2M7CiAgICAgICAgYmg9eVV3RUNSbW85bTFuTnlSSUkyTGkyRjdQZllnVmtZeWx4TmMyUUFWNGN0az07CiAgICAgICAgYj1KWFFoYkdKTGJ1eFBVNnVJM285cGxaYjR6d0Y2OXZjVnhxQUl2MWRxSURXMDdmSmtaVW9jRVdTZ012NDR1NGxYMXcKICAgICAgICAgT3BtaTlNaERyRjIwZzFHSnVYNjVkcENQeWxxUWF0ZVlKRWJYY21HYmdQeFNzdmRDVDczU1FRcU9LU2VvT2YxenBtUTUKICAgICAgICAgNGRGZXVMSXptbnhqKzAzeHMwTmJJV2twMUZuMVJlOTU1MjZBU0xhWmJnOU5HOUN4NjVjbHNTamd4THl0WTgrL2M2blMKICAgICAgICAga3FLVTdNcUc5YWhaMDc2QXBLQ0p2UFVDQ0M3d1htM1JkZXhjZjRkNjJzSncvbDcxcU9lM3VzcERMcG9xeTF1Y3VjN2YKICAgICAgICAgandSeFhITERKaW9RbFZjZlAwT3IrQ2ZDQVZrcUN2Snk1RGhIaUlnZ3ZuMmVPZWR3MkNMMXpPei9EWXZ6MGpVMk9pV08KICAgICAgICAgbkhNQT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVZ05UaWtsU0ZmQldrNXl0SkxXZ0MyKzdSbCs4b2lUbnphaHo4bHJHcXpvVS9EMjhMb04KCXk4cFBLOWF3QlNHU1VxV0dmMStnZGxNa2lwUjRaRWlxdXQ5c2JJUUlEdz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBREtDTmI1U2hBaXFvMWxTVklJN09BTmpSUXNwOE5DN2txUTUrUURjK21obm9wVjQzeW95R2hGWjJvaElaSnNIM2hWcHhZc3ZnMklXVU4zRnh3WFZ3VzhmLzZrPQpYLVJlY2VpdmVkOiBieSAxMC4xNzYuODkuMTY4IHdpdGggU01UUCBpZCBnMzdtcjIwMjMzNDMydWFkLjUzLjE1MDU0NjkyOTUwOTU7CiBGcmksIDE1IFNlcCAyMDE3IDAyOjU0OjU1IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzYuODIuMjUyIHdpdGggSFRUUDsgRnJpLCAxNSBTZXAgMjAxNyAwMjo1NDo1NCAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPDc3YWY3ZjkwLWU1OTYtNjQyNS01OWY5LWM2YWM3NTExZjBiMUBhcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgogPENBRk5DVS0tMnZyZDVCZVR2a3hLQ3lYMlpRZVBxaXg3WD13bVZzV2RNNWQ0OVhlTmdPd0BtYWlsLmdtYWlsLmNvbT4KIDxGNzA1N0UxQi00MzEzLTREN0ItOEVGMS05OTM0MUREMUUxRDBAdGFsaW9zLmNvbT4gPENBK25Qbk13VXFtQnVyYXREMUNwaz1MOXRBQ3dfK3FvdHJzVXBDcWRxUlpYbVdYZ2lUQUBtYWlsLmdtYWlsLmNvbT4KIDxCMTQ4Qzk2Ny0xNjk1LTQ1QzItQTE1Ri0xRkZGOTAzQkNCNTBAdGFsaW9zLmNvbT4gPDc0QzEyN0IwLUY3MDctNEJCQS1BMkMxLUQ1N0U2MEM5QzBGQ0B0YWxpb3MuY29tPgogPEZBQURERTE0LUMzNzgtNEQzRC04QUVFLTlBQzhDQ0Y5MTc4M0B0YWxpb3MuY29tPiA8Q0FMWUdtMXk5VE14QUFpaG5pN2tibz0ycmh1bjJ4dDRGOHgwTXlrTkxrQnR0djdHaUh3QG1haWwuZ21haWwuY29tPgogPENBK25Qbk16bWtRKzhaaXZUeUJBYm5qLTV4UTRDc3hVaWExZExtaWYzbUg5N2owQUp6QUBtYWlsLmdtYWlsLmNvbT4KIDxDQSs9K0xyTE89RmM9WllOVG80aDJHZHlpTWF3dGRxVlh1MGJibTJ0V3hBY0R6eUpUemdAbWFpbC5nbWFpbC5jb20+CiA8Q0ErPStMckw2NUxtR0N2T3dwLTdNWEtCaVQ9ZjlZUmFzNW9ybT1aZUE4Mlo2T1hNNzJRQG1haWwuZ21haWwuY29tPgogPENBKz0rTHIrSGFlMHhaYT1LRmF0PXR1LWVLWkVXV3ZZcGstV0Nod2YyU0NyRVF5dlpNd0BtYWlsLmdtYWlsLmNvbT4gPDc3YWY3ZjkwLWU1OTYtNjQyNS01OWY5LWM2YWM3NTExZjBiMUBhcGFjaGUub3JnPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBGcmksIDE1IFNlcCAyMDE3IDAyOjU0OjU0IC0wNzAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NenBVWWNpWXl0NCs9Sm9UQ1lZMWZreHpWekJvY1hRcWJXQUZKZ2I9R28rcHdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNjOiA9P1VURi04P0I/VUdWMGNpREZvR2x5YjJ2RHZRPT0/PSA8c2lyb2t5LnBldHJAZ21haWwuY29tPiwgCglJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvbT4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0NjYwM2E4ZGY0OTEwNTU5Mzc2MjI4IgoKLS0wMDFhMTE0NjYwM2E4ZGY0OTEwNTU5Mzc2MjI4CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCk9uIDE0IFNlcHRlbWJlciAyMDE3IGF0IDIzOjU1LCBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz4gd3JvdGU6Cgo+IEFtIDIwMTctMDktMTUgdW0gMDA6NTAgc2NocmllYiBQZXRyID1DNT1BMGlyb2s9QzM9QkQ6Cj4KPj4gSSB3YXMgYWJsZSB0byBlYXNpbHkgZml4IG91ciBwbHVnaW4gYnkgZS5nLiByZXBsYWNpbmcKPj4gIlRocmVhZC5jdXJyZW50VGhyZWFkKCkuZ2V0Q29udGV4dENsYXNzTG9hZGVyKCkiIHdpdGgKPj4gInRoaXMuZ2V0Q2xhc3MoKS5nZXRDbGFzc0xvYWRlcigpIiAoaW4gdGhlIE1vam8gY2xhc3MpIHRvIGdldCB0aGUgcGx1Z2luCj4+IGNsYXNzbG9hZGVyLgo+Pgo+PiBJIGRvbid0IGtub3cgdGhvdWdoIGlmIHRoZSAiVGhyZWFkLmN1cnJlbnRUaHJlYWQoKS5nZXRDb24KPj4gdGV4dENsYXNzTG9hZGVyKCkiCj4+IGlzIGp1c3QgbWlzdXNlIG9uIG91ciBzaWRlIG9yIGlmIGl0J3Mgc29tZXRoaW5nIHRoYXQgbW9yZSBwbHVnaW5zIG1heSByZT0KbHkKPj4gb24uCj4+Cj4KPiBTaW1pbGFyIGNhdXNlIGluIE1BU1NFTUJMWTogaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjIwPQo5Cj4KPiBJIHRoaW5rIHVzaW5nIFRDQ0wgaXMgd3JvbmcgaGVyZS4KCgpJIGFncmVlLCBJIHRoaW5rIHRoZSBUQ0NMIGlzIHN1cHBvc2VkIHRvIGJlIGZvciBleHRlbnNpb24gbG9va3VwLgoKSWYgeW91IHdhbnQgdGhlIHBsdWdpbidzIGNsYXNzbG9hZGVyIHRoZW4gdGhhdCBzaG91bGQgYmUKYHRoaXMuZ2V0Q2xhc3MoKS5nZXRDbGFzc0xvYWRlcigpYCBmcm9tIHRoZSBNb2pvIGNsYXNzLgoKSWYgeW91IHdhbnQgdGhlIGNsYXNzbG9hZGVyIHdpdGggYWxsIHRoZSBleHRlbnNpb25zLCB0aGF0IHNob3VsZCBiZSBUQ0NMLgoKV2hhdCBpcyB1bmNsZWFyIHRvIG1lIGlzIHdoeSB3ZSBzZXQgVENDTCB0byBhbnl0aGluZyBvdGhlciB0aGFuIHRoZSBwcm9qZWN0CnJlYWxtLiBBIHBvbSBwbHVnaW4gZGVjbGFyYXRpb24gb2YgPGV4dGVuc2lvbnM+dHJ1ZTwvZXh0ZW5zaW9ucz4gc2hvdWxkIG5vdAphZmZlY3QgdGhlIFRDQ0wgdGhhdCB0aGUgcGx1Z2luIGV4ZWN1dGlvbiBzZWVzLCBzbyBJIHdvbmRlciBpZiB0aGUgcm9vdCBidWcKaXMgdGhhdCB0aGUgZml4IGFsbG93cyB0aGUgVENDTCB0byBiZSBvdGhlciB0aGFuIHByb2plY3QgcmVhbG0/CgpJZ29yPwoKCj4KPgo+IE9uIFRodSwgU2VwIDE0LCAyMDE3IGF0IDI6NDIgUE0gUGV0ciA9QzU9QTBpcm9rPUMzPUJEIDxzaXJva3kucGV0ckBnbWFpbC49CmNvbT4gd3JvdGU6Cj4+Cj4+IEFyZ2gsIEkgZm9yZ290IHRvIGxpbmsgdGhlIHBsdWdpbiBzb3VyY2U6Cj4+PiBodHRwczovL2dpdGh1Yi5jb20va2llZ3JvdXAvZHJvb2xzamJwbS1pbnRlZ3JhdGlvbi90cmVlLzcuMy4KPj4+IDAuRmluYWwva2llLW1hdmVuLXBsdWdpbgo+Pj4KPj4+IE9uIFRodSwgU2VwIDE0LCAyMDE3IGF0IDI6NDEgUE0gUGV0ciA9QzU9QTBpcm9rPUMzPUJEIDxzaXJva3kucGV0ckBnbWFpPQpsLmNvbT4KPj4+IHdyb3RlOgo+Pj4KPj4+IEhlbGxvLAo+Pj4+Cj4+Pj4gSSBhbSBzZWVpbmcgYSAocHJvYmFibHkpIHNpbWlsYXIgaXNzdWUgd2l0aCBvdXIgY3VzdG9tIHBsdWdpbi4KPj4+Pgo+Pj4+IFNlZSB0aGUgcmVwcm9kdWNlcjoKPj4+PiBodHRwczovL2dpdGh1Yi5jb20vcHNpcm9reS9yZXByb2R1Y2Vycy90cmVlL212bjM1MS1raWUtbWF2ZW4tcGx1Z2luCj4+Pj4gKHdvcmtzCj4+Pj4gZmluZSB3aXRoIG1hdmVuIDMuNS4wLCBidXQgZmFpbHMgd2l0aCBOUEUgd2l0aCB0aGUgUkMgb2YgbWF2ZW4gMy41LjEpLgo+Pj4+Cj4+Pj4gSSBhbSBub3QgeWV0IHN1cmUgaWYgdGhlIHBsdWdpbiBpcyBqdXN0IGRvaW5nIHNvbWV0aGluZyBpdCdzIG5vdAo+Pj4+IHN1cHBvc2VkCj4+Pj4gdG8sIG9yIGlmIHRoaXMgaXMgYSByZWdyZXNzaW9uIGluIG1hdmVuIGl0c2VsZi4gSSdsbCB3aWxsIHRha2UgYSBkZWVwZT0Kcgo+Pj4+IGxvb2suCj4+Pj4KPj4+PiBQZXRyCj4+Pj4KPj4+Pgo+Pj4+IE9uIFRodSwgU2VwIDE0LCAyMDE3IGF0IDE6NTMgUE0gU3RlcGhlbiBDb25ub2xseSA8Cj4+Pj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4+Pj4KPj4+PiBPbiAxNCBTZXB0ZW1iZXIgMjAxNyBhdCAwNDo0MywgTWFyayBEZXJyaWN1dHQgPG1hcmtAdGFsaW9zLmNvbT4gd3JvdGU6Cj4+Pj4+Cj4+Pj4+ICsyIG5vbi1iaW5kaW5nIGZyb20gTWFyayEKPj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+IEkgd2FzIGRpc2N1c3NpbmcgdGhpcyB3aXRoIGEgY293b3JrZXIgYW5kIGhlIG1hZGUgdGhlIGNvbW1lbnQgdGhhdCBpPQpmCj4+Pj4+Pgo+Pj4+PiB0aGlzCj4+Pj4+Cj4+Pj4+PiBjaGFuZ2UgY291bGQgYnJlYWsgTW9qb3MsIG1heWJlIGl0IHNob3VsZG4ndCBiZSBpbiBhIHBvaW50IHJlbGVhc2UgLQo+Pj4+Pj4KPj4+Pj4gd2hhdHMKPj4+Pj4KPj4+Pj4+IHRoZSBwb2xpY3kgb24gY2hhbmdlcyB0aGF0IG1heSBwb3RlbnRpYWxseSBicmVhayBleGlzdGluZyBwbHVnaW5zPwo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+IFdlbGwgd2UgbmVlZCB0byBhc3Nlc3MgdGhlIGlzc3VlLiBSaWdodCBub3cgSSBkb24ndCBldmVuIGhhdmUgYQo+Pj4+PiBkZXNjcmlwdGlvbgo+Pj4+PiBvZiB3aGF0IHdlbnQgd3JvbmcuIEFueSBjaGFuY2UgeW91IGNvdWxkIHByb3ZpZGUgYSByZXBsaWNhdGlvbi4uLiBvcgo+Pj4+PiBtYWlsCj4+Pj4+IG1lIGRpcmVjdGx5IGlmIHlvdSBjYW5ub3Qgc2hhcmUgaXQgcHVibGljYWxseSBhbmQgSSBtYXkgYmUgYWJsZSB0bwo+Pj4+PiBwcm9kdWNlCj4+Pj4+IGEgbWluaW1hbCByZXByb2R1Y3Rpb24gZnJvbSBpdC4KPj4+Pj4KPj4+Pj4gSWYgdGhpcyBicmVha3MgYSBtb2pvIHRoYXQgd2FzIGRvaW5nIHNvbWV0aGluZyB3cm9uZyBpbiB0aGUgZmlyc3QKPj4+Pj4gcGxhY2UsCj4+Pj4+IHdlbGwgdGhhdCB3aWxsIG5vdCBzdG9wIDMuNS4xLi4uIE9UT0ggaWYgdGhpcyBleHBvc2VzIGEgYnVnIGluIHRoZQo+Pj4+PiBpc3N1ZQo+Pj4+PiAiZml4ZWQiIHRoZW4gSSdkIGxpa2VseSByZXZlcnQgYW5kIHJlc3Bpbi4KPj4+Pj4KPj4+Pj4gV2UgcmVhbGx5IG5lZWQgYSByZXByb2R1Y2VyIGZpcnN0Lgo+Pj4+Pgo+Pj4+Pgo+Pj4+Pgo+Pj4+Pj4gLS0KPj4+Pj4+ICJHcmVhdCBhcnRpc3RzIGFyZSBleHRyZW1lbHkgc2VsZmlzaCBhbmQgYXJyb2dhbnQgdGhpbmdzIiA9RTI9ODA9OTQgPQpTdGV2ZW4KPj4+Pj4+Cj4+Pj4+IFdpbHNvbiwKPj4+Pj4KPj4+Pj4+IFBvcmN1cGluZSBUcmVlCj4+Pj4+Pgo+Pj4+Pj4gT24gVGh1LCBTZXAgMTQsIDIwMTcgYXQgMTA6MjkgQU0sIE1hcmsgRGVycmljdXR0IDxtYXJrQHRhbGlvcy5jb20+Cj4+Pj4+Pgo+Pj4+PiB3cm90ZToKPj4+Pj4KPj4+Pj4+Cj4+Pj4+PiBPbiAxNCBTZXAgMjAxNywgYXQgMTA6MjYsIE1hcmsgRGVycmljdXR0IHdyb3RlOgo+Pj4+Pj4+Cj4+Pj4+Pj4gQ2FsbGluZyAtMiBmb3Igdm90ZSBpZiBub3QgdG9vIGxhdGUuCj4+Pj4+Pj4KPj4+Pj4+PiBBY3R1YWxseSAtIGxvb2tpbmcgYXQgdGhlIGNvbW1pdCBkaWZmLCBJIHNlZSBpbiBvdXIgY29kZSB3ZSBkaWQgaGF2PQplCj4+Pj4+Pj4gPGV4dGVuc2lvbnM+dHJ1ZTwvZXh0ZW5zaW9ucz4gZm9yIHRoZSBqYXNtaW5lLW1hdmVuLXBsdWdpbiB3aGljaCB3ZQo+Pj4+Pj4+Cj4+Pj4+PiBkb24ndAo+Pj4+Pgo+Pj4+Pj4gYWN0dWFsbHkgbmVlZC4gUmVtb3ZpbmcgdGhhdCBmcm9tIHRoZSBtb2pvIGRlZmluaXRpb24gYW5kIHJ1bm5pbmcgbXkKPj4+Pj4+Pgo+Pj4+Pj4gYnVpbGQKPj4+Pj4+Cj4+Pj4+Pj4gd2l0aCB0aGUgc3RhZ2VkIDMuNS4xIHJlbGVhc2UgYW5kIGV2ZXJ5dGhpbmcgYnVpbGRzIGZpbmUuCj4+Pj4+Pj4KPj4+Pj4+PiArMiBub24tYmluZGluZyBmcm9tIE1hcmshCj4+Pj4+Pj4KPj4+Pj4+PiBNYXJrCj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4+Pj4KPj4+Pj4+PiAiVGhlIGVhc2Ugd2l0aCB3aGljaCBhIGNoYW5nZSBjYW4gYmUgaW1wbGVtZW50ZWQgaGFzIG5vIHJlbGV2YW5jZSBhPQp0Cj4+Pj4+Pj4KPj4+Pj4+IGFsbAo+Pj4+Pgo+Pj4+Pj4gdG8gd2hldGhlciBpdCBpcyB0aGUgcmlnaHQgY2hhbmdlIGZvciB0aGUgKEphdmEpIFBsYXRmb3JtIGZvciBhbGwKPj4+Pj4+Pgo+Pj4+Pj4gdGltZS4iCj4+Pj4+Cj4+Pj4+PiA9RTI9ODA9OTQKPj4+Pj4+Cj4+Pj4+Pj4gTWFyayBSZWluaG9sZC4KPj4+Pj4+Pgo+Pj4+Pj4+IE1hcmsgRGVycmljdXR0Cj4+Pj4+Pj4gaHR0cDovL3d3dy50aGVvcnlpbnByYWN0aWNlLm5ldAo+Pj4+Pj4+IGh0dHA6Ly93d3cuY2hhbGljZW9mYmxvb2QubmV0Cj4+Pj4+Pj4gaHR0cDovL3BsdXMuZ29vZ2xlLmNvbS8rTWFya0RlcnJpY3V0dAo+Pj4+Pj4+IGh0dHA6Ly90d2l0dGVyLmNvbS90YWxpb3MKPj4+Pj4+PiBodHRwOi8vZmFjZWJvb2suY29tL21kZXJyaWN1dHQKPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pgo+Pj4+Cj4+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCi0tMDAxYTExNDY2MDNhOGRmNDkxMDU1OTM3NjIyOC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NDMwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBOb3YgIDYgMDc6MzA6MjEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDMwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDE3MERBMTBFRkEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAgNiBOb3YgMjAxNyAwNzozMDoyMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDEwNDY3IGludm9rZWQgYnkgdWlkIDUwMCk7IDYgTm92IDIwMTcgMDc6MzA6MjAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDEwMTk2IGludm9rZWQgYnkgdWlkIDUwMCk7IDYgTm92IDIwMTcgMDc6MzA6MjAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMDE4NCBpbnZva2VkIGJ5IHVpZCA5OSk7IDYgTm92IDIwMTcgMDc6MzA6MjAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDA2IE5vdiAyMDE3IDA3OjMwOjIwICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNDlENTQxQjYxMTQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICA2IE5vdiAyMDE3IDA3OjMwOjE5ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS44NzkKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjg3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgM29iZ09oVXlEMTRJIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAgNiBOb3YgMjAxNyAwNzozMDoxNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdtMC1mNTQuZ29vZ2xlLmNvbSAobWFpbC13bTAtZjU0Lmdvb2dsZS5jb20gWzc0LjEyNS44Mi41NF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA2NUYxRjVGRDdFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAgNiBOb3YgMjAxNyAwNzozMDoxNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13bTAtZjU0Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHk4MHNvMTE2MjQzMTV3bWQuMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDA1IE5vdiAyMDE3IDIzOjMwOjE3IC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPVpRRzh1MWc1S3ZhZkRmdysxYks3MlJWL0htTzk1ZkRCRld1QjNEQkZvY2M9OwogICAgICAgIGI9ZUR0MFJKU0hzL2JZaVcyS3Jkb0k3amkxTGY4cllQcXMzdzFwbk8waEFoQXdENUg2ejNFY0hEZGJqMjc4SFRnS2lECiAgICAgICAgIDJIT1cvN2wzVzFZLzZPVWtnWk5vWXBQc3VMRmdxNDRVOGh0QVo4aG4rcDc4cmY5TWdoVzZqZTcwOVFkaEVwcXJJNmdHCiAgICAgICAgIDA5blNLNzljUmk5ekorSFIvV3BxYm56QWkvVERXUVRnMmRVWDN4UHE1S0VwRyt1amJITS9LVUZiR3VoTWwrOEdKRDgwCiAgICAgICAgIDg4Y1AwV1hJTUVOUjh5Y09lVlJwSVUvUys2Wm5mMFhURXVwaklzYnFDUnJnVFBialdIMXZad2h6M01saWdLV2xZdzJmCiAgICAgICAgIEhOQ2JPc2tXd0JROGZTU1Q3YnFzVGpMQWJFMm1YRWpXYkxja2VQdkN2R2IyTFFIa3NuM3hJYUxwYlFPSnoyY3did0p0CiAgICAgICAgIDdIK0E9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPVpRRzh1MWc1S3ZhZkRmdysxYks3MlJWL0htTzk1ZkRCRld1QjNEQkZvY2M9OwogICAgICAgIGI9Qkdaa3krTzRmdWY5anhOV05LdDZlMkpqd0kzOGY4SjdVc3dWdXcvUmZhYkFZTUpTQW1VM241N2ZpTzBlcWVlYzV3CiAgICAgICAgIHZwYkpVeEdxa3dXWDllS0NXOE53Z3pSVWtnbGNRUTdja2RVSjlWZWIvblcxZEhvRjIrY0sxMW5qd0l6eFFXNTZpV1NZCiAgICAgICAgIFJmRlVsb25LK2NXQVFXRlhURXRYTksvalA4azk2ZDFadGMvYXdBUFAxSnd0L2M4dE11Unc2ck9BZHJZZFgxWVVRcWVhCiAgICAgICAgIGdGUTNYVnpxV0JxNjd6d2FyT0VDSThZUUlRSmtJb25YdXdxbXpFV09rNTZkN0tLd20wMWlhWnZOK2l0NnlIK1N0MjViCiAgICAgICAgIDJ5VXF2bTRuVEM1YjFwUUQ0RE1SMDhTN0g3eEprMFVLdDNXNWNZRVc2THRzN1dOMDRscmZucUs1VEptaVFJdnJkNjR5CiAgICAgICAgIGdPSmc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDc1ZThWZ1cyUmt2VXJhZmNhUEFyWW9lTzRsNGN0a2xIdmd1Y3FqYjFWZGkwVWU4RXU1CglBd1hBV01hYmFjZEc1SXZDTEg5SUFrcVd1bUEvbUhuSU5yVDJDMGZDR2c9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArUXh0NXRBMldHblZZaTRjdWR4eEtPTFF5dEI2WW9TelNGZjA2Nm9LUG96NDJoVEk5alp0N3hSZS9UNlpJWUthUUsvUXlzTHROak5YdS94c3VmSUdrST0KWC1SZWNlaXZlZDogYnkgMTAuMjguMjEuMTAgd2l0aCBTTVRQIGlkIDEwbXI0MDkxMzExd212LjQxLjE1MDk5NTM0MTYwNDk7IFN1biwKIDA1IE5vdiAyMDE3IDIzOjMwOjE2IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDw4NjE0MUVCMy0xMzNGLTQ1NEYtOUYyRi0zRkUyMjEzMDExRTRAaG9udG9uLm9yZz4KSW4tUmVwbHktVG86IDw4NjE0MUVCMy0xMzNGLTQ1NEYtOUYyRi0zRkUyMjEzMDExRTRAaG9udG9uLm9yZz4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAwNiBOb3YgMjAxNyAwNzozMDowNSArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXpzODlGX3FDX1pzZlBqYXlQaHE9NUZqeXc4bWhUTW50WFBhODJfb2gtTVJ3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogUmVhY3RvciBzYWZlL3JhbGx5IHBvaW50cwpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0NWE5MzJmZGI4Y2YwNTVkNGI2Y2M5IgoKLS0wMDFhMTE0NWE5MzJmZGI4Y2YwNTVkNGI2Y2M5CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCk9uIE1vbiA2IE5vdiAyMDE3IGF0IDAxOjQ4LCBDaGFybGVzIEhvbnRvbiA8Y2hhc0Bob250b24ub3JnPiB3cm90ZToKCj4gQm90aCB0aGVzZSB1c2UgY2FzZXMgc291bmQgbGlrZSBhZGRpbmcgaW5jcmVkaWJsZSBjb21wbGV4aXR5IHRvIHN1cHBvcnQKPiBsZXNzIHRoYW4gMSUgc2l0dWF0aW9ucywgYW5kIHdvcnNlLCBlbmNvdXJhZ2luZyBtb25vbGl0aGljIGJ1aWxkcy4KPgo+IEluIHRoZSBmaXJzdCBjYXNlLCB0aGUgbW9kdWxlIGNyZWF0aW5nIGEgc2hhZGVkIGphciBjYW4gbWFyayBpdHMKPiBjb25zdGl0dWVudCBqYXJzIGFzIG9wdGlvbmFsOyBwcmV2ZW50aW5nIHRoZSB0cmFuc2l0aXZlIGRlcGVuZGVuY2llcy4KCgpIYSEgVGhhdCBkb2VzIG5vdCBkbyB3aGF0IHlvdSB0aGluayBpdCBkb2VzLgoKT3B0aW9uYWwgZGVwZW5kZW5jaWVzIGFyZSBzdGlsbCB0aGVyZSBidXQgb25seSBhcyBhIHZlcnNpb24gY29uc3RyYWludCB0aGF0CmdldHMgYXBwbGllZCBpZiBzb21ldGhpbmcgZWxzZSBicmluZ3MgdGhlIGRlcGVuZGVuY3kgaW50byB0aGUgdHJlZSBpbiBhcyBhCm5vbi1vcHRpb25hbCBkZXBlbmRlbmN5LgoKTm9ybWFsbHkgeW91IG5lZWQgYSBjb21wbGV4IGRlZXAgdHJlZSB0byBzZWUgdGhlIGVmZmVjdCAoYXMgbW9zdCBwZW9wbGUgdXNlCnZlcnNpb24gaGludHMgcmF0aGVyIHRoYW4gc3BlY2lmaWNhdGlvbnMuLi4gYW5kIHdpdGggaGludHMsIGNsb3Nlc3Qgd2lucywKd2hlcmVhcyBzcGVjaWZpY2F0aW9ucyBhcmUgZ2xvYmFsbHkgbWVyZ2VkKQoKUHJvdmlkZWQgc2NvcGUgaXMgbW9yZSBjb3JyZWN0LCBidXQgc2hhZGUgZG9lc249RTI9ODA9OTl0IG9wZXJhdGUgb24gcHJvdmlkPQplZApzY29wZS4uLiBhbmQgYW55d2F5IGlpcmMgdGhhdCBhbHNvIHB1c2hlcyB0aGUgY29uc3RyYWludCBhcyB0cmFuc2l0aXZlLgoKV2l0aCBzaGFkZSwgdGhlIGRlcGVuZGVuY3kgaXMgcmVtb3ZlZC4KCgo+IEluIHRoZSBzZWNvbmQgY2FzZSwgSXQgd291bGQgYmUgYmV0dGVyIGZvciB0aGUgcGx1Z2luIGJlIGFuIGluZGVwZW5kZW50Cj4gYnVpbGQgdG8gZW5jb3VyYWdlIHJlLXVzZSBvZiB0aGF0IHBsdWdpbi4KCgpZZXMgaXQgd291bGQsIGJ1dCBzb2NpYWxseSBwZW9wbGUgZG9uPUUyPTgwPTk5dCBkbyB0aGF0Li4uIGFuZCBhbnl3YXksIHRoZXI9CmUgYXJlCmxlZ2l0aW1hdGUgdXNlIGNhc2VzLCBlZyB0b21lZSBoYXMgKG9yIGhhZCBpZiB0aGV5IGdhdmUgdXAgZmlnaHRpbmcgYW5kCm1vdmVkIGl0IG91dCBvZiByZWFjdG9yKSBhIHBsdWdpbiB0aGF0IHdhcyB0aWVkIHRvIHRoZSBjb250YWluZXIgdmVyc2lvbi4KVG8gYWxsb3cgaW50ZWdyYXRpb24gdGVzdHMgaW4gdGhlIHNhbWUgcmVhY3RvciBhcyB0aGUgbWFpbiBjb2RlYmFzZSwgaXQgaXMKcmVhc29uYWJsZSB0byB3YW50IHRoZSBwbHVnaW4gYnVpbHQgYXQgdGhlIHNhbWUgdGltZS4KCklmIHdlIGRvbj1FMj04MD05OXQgYWxsb3cgcGVvcGxlIHRvIGJ1aWxkIHRoZSBwbHVnaW4gaW4gdGhlIHNhbWUgcmVhY3RvciwgdD0KaGV5IGp1c3QKZmlnaHQgdXMgYW5kIGFkZCBzY3JpcHRzIG9yIG1vdmUgdG8gb3RoZXIgYnVpbGQgdG9vbHMuLi4gYm90aCBvZiB3aGljaApyZW1vdmVzIHRoZSBiZW5lZml0cyBvZiBNYXZlbi4KClRoaXMgd291bGQgcHJvdmlkZSBhIGJldHRlciBwYXRoLCBhbmQgZXZlbnR1YWxseSB0aGV5IHdpbGwgPUUyPTgwPTlDc2VlIHNlbj0Kc2U9RTI9ODA9OUQKKHRyYW5zbGF0aW9uLCBmaW5kIG90aGVyIHByb2plY3RzIHRoYXQgbmVlZCB0aGUgc2FtZSBmdW5jdGlvbmFsaXR5KSBhbmQKcHVsbCB0aGUgcGx1Z2luIGludG8gaXRzIG93biByZWFjdG9yLgoKCj4KPiA+IFRoZXJlIGFyZSB0d28gc2V0cyBvZiBwcm9ibGVtcyB0aGF0LCBhc3N1bWluZyB3ZSB3YW50IHRvIGZpeCwgYm90aCBuZWVkCj4gPiBzb21lIHdheSB0byByYWxseSBhIGNvbmN1cnJlbnQgbXVsdGltb2R1bGUgYnVpbGQgYXQuCj4gPgo+ID4gMS4gVGhlcmUgaXMgdGhlIHNoYWRlIGxpa2UgY2xhc3Mgb2YgcHJvYmxlbXMsIHdoZXJlIGEgcGx1Z2luIHdhbnRzIHRvCj4gPiBtb2RpZnkgdGhlIGVmZmVjdGl2ZSB0cmFuc2l0aXZlIGRlcGVuZGVuY2llcyBvZiBhIG1vZHVsZS4KPiA+Cj4gPiAyLiBUaGVyZSBpcyB0aGUgZXh0ZW5zaWJpbGl0eSBjbGFzcyBvZiBwcm9ibGVtcywgd2hlcmUgcGVvcGxlIHdhbnQgdG8KPiBidWlsZAo+ID4gYSBwbHVnaW4gYW5kIGNvbnN1bWUgdGhlIHNhbWUgcGx1Z2luIGluIG9uZSByZWFjdG9yLgo+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+IC0tClNlbnQgZnJvbSBteSBwaG9uZQoKLS0wMDFhMTE0NWE5MzJmZGI4Y2YwNTVkNGI2Y2M5LS0KCkZyb20gZGV2LXJldHVybi0xMjQ2MzktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE5vdiAyOCAwNzo0OTo0OCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ2MzktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMTQ2QzMxNzIxMwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDA3OjQ5OjQ4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjkyMjEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggTm92IDIwMTcgMDc6NDk6NDcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY4ODExIGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE5vdiAyMDE3IDA3OjQ5OjQ3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjg3OTYgaW52b2tlZCBieSB1aWQgOTkpOyAyOCBOb3YgMjAxNyAwNzo0OTo0NiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMjggTm92IDIwMTcgMDc6NDk6NDYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAyNjY1QUMwMTY0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAwNzo0OTo0NiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuMDc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuMDc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtCX1dBTV9GUk9NX05BTUVfU0lOR0xFV09SRD0wLjIsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgU21saG9zOEY0cmljIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVHVlLCAyOCBOb3YgMjAxNyAwNzo0OTo0NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdtMC1mNDkuZ29vZ2xlLmNvbSAobWFpbC13bTAtZjQ5Lmdvb2dsZS5jb20gWzc0LjEyNS44Mi40OV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBCQUIxRDVGMUIzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAwNzo0OTo0MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13bTAtZjQ5Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIDlzbzM4NzkzMDYxd21lLjQKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAyNyBOb3YgMjAxNyAyMzo0OTo0MyAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1Ea2Q0Y2p2dWRZVmNKOWJvKzhsd0lzbVRlbndWNlU5SVVvOSt1VXFqb1dNPTsKICAgICAgICBiPWYvSkdkUFA3aHhyVGRnVVdwZ1FkMTlyZVFmZnNOdFpQRmlpV04veFRoYUFqKzJJNDBCTm95U3RYaFB4VWd2VExLMAogICAgICAgICA4MHBkMFgrSHNCU3ZIdGVrZUE3cmJsOHpHdDM0NjJ6S1F6NUYwL1hiU0JSRTI3TU02OE01bGdWU0lrdWVoVXdMdW1oWQogICAgICAgICBMMjVnd0VWNWpJcUt2ZmV5Q3lNVlFldVhncGRRR0JDWGd1SXE2UDZLRXJwSkZsRDNta3dJcklYU0RqSFlKcE5hWWllMQogICAgICAgICBhQWIrZWRPVHh4d2J0RzUyZUx2TVptUmRQbGoyZ0lHSTEwNHJTa3JXbGJiMVM1c0lGcnp5SU51Rzd0TFp4L0Vka3RRVQogICAgICAgICBrelJwRno5ck1TK2t0TVhRRjB4WG56Q3hkQjRhUUxuMDlPbHZHNG5lN3pLOTJxTGRzSCthcUY1emgvZkdCdStBVExWaAogICAgICAgICA5SFZnPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1Ea2Q0Y2p2dWRZVmNKOWJvKzhsd0lzbVRlbndWNlU5SVVvOSt1VXFqb1dNPTsKICAgICAgICBiPVhLeVE0WWgrcUVsZVU3NGFyMlVsaUpueS9aeHpUZ3FZNWFDU3J4RGFOQVYxSW1RYkRpT2RPYmloRjZmYzlxMmh5YQogICAgICAgICBqV3NBNUJ5NWxva3VjdnBiT05BQ1hQMXIzVEwvZ3RGZjdpdzZKbW92eVM3TlhGZysrcExZb1o2TzZUSit6azhUU2NpTwogICAgICAgICBnTUpoWERQZFFsUWF5cjNZUHhsRW9yb2RKb1JDaE55bDdIK0VRSjlWSFpXQVZ6VFlhUS9tamZYV2NSaFNTTktSbW9vUwogICAgICAgICBvV1dhc2tadXp3NnkvdW9vRzFGN3RrcXhlVUJDSlhiTlQzd1hmQ3lEL3Y5Q2VuUmZGYjBBeVBGU3V0ZStnYWFzbTdQbgogICAgICAgICB4YS9qbFdBQ29MK1pabkVZVW9PSWsvSzQ5MWhjc2VmMDFnWnB5Q2VmRERxZWZORkFweWhOcTJUekxHZFN4M3JoOWtWSQogICAgICAgICA0MHJ3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg2c1FSYzcrNFFoNHRFb3EyNzc3NzNYdXlDZWFaU0JTSTdnNXVyVUVmbVJtanduZGxYagoJVEI3b3NPMTZtdnZtN3VURDJHSkhybFNLSkxZSURSVkdHQWk1TVBNenZ3PT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TWFkeW9KckRua3RydkZqSGxFRjFZWHNpUVpBSVcvYkE3UjlBU1dHUEU2eEp0L0pJckdvait1bGV3RUc1NGxWRk5hUXlnZ0kzRVBxc0xBWUtiUmlpRTA9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjI4LjIxNi4xMzcgd2l0aCBTTVRQIGlkIHAxMzFtcjE3OTI5MzE4d21nLjUwLjE1MTE4NTUzODI2MzE7CiBNb24sIDI3IE5vdiAyMDE3IDIzOjQ5OjQyIC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDxDQStuUG5NenYwbjlWMD1qZzRTQWNQQTArTW5Ea0ZnQ0Y4UnZKQ3oySnk2WSt0PUZERmdAbWFpbC5nbWFpbC5jb20+CiA8Q0ErblBuTXlCdzFhS3o3T1ZkQkpjQjM0WkJScjZLOWNFNGtSUnRiT1NfTFc1a1BDdVFBQG1haWwuZ21haWwuY29tPgogPENBK25Qbk15YVFjTE9PbWgzNTVjQ19hbVM1TGMxU253MWd3YXo5cmozb2t6dnd1dFYxQUBtYWlsLmdtYWlsLmNvbT4KIDwxNTI2NjE3LjNjcDFjRERNOEtAZ2lnYT4gPENBK25Qbk14T3I4TDdrRlJpQTFBVTJlQjJLTUR0bURPUjgrYk5iLVc5WEhpaVF4Zmo2QUBtYWlsLmdtYWlsLmNvbT4KSW4tUmVwbHktVG86IDxDQStuUG5NeE9yOEw3a0ZSaUExQVUyZUIyS01EdG1ET1I4K2JOYi1XOVhIaWlReGZqNkFAbWFpbC5nbWFpbC5jb20+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjggTm92IDIwMTcgMDc6NDk6MzEgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk16dEh3ZVk2UnhYQmZRTUNOTk02aVpaQjVZWTNCWWRONUgxa0hqcGlBbkt1QUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IEZZSSBJTkZSQS0xNTUyNCBjcmVhdGVkIGZvciB0aGUgYmV0dGVyIEplbmtpbnMgVVgKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDVmZTEwMDg5N2QzMDU1ZjA2NDM3MyIKCi0tMDAxYTExNDVmZTEwMDg5N2QzMDU1ZjA2NDM3MwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPbiBUdWUgMjggTm92IDIwMTcgYXQgMDc6MjUsIFN0ZXBoZW4gQ29ubm9sbHkgPApzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKCj4gT24gVHVlIDI4IE5vdiAyMDE3IGF0IDA2OjUzLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gdz0Kcm90ZToKPgo+PiBhd2Vzb21lIQo+PiBJdCBldmVuIHNob3dzIHRoZSBvd2wgaWNvbiA6KQo+Pgo+PiBub3csIGV2ZXJ5IGJ1aWxkICBsb29rcyB0byBmYWlsLCBhbmQgSSBjYW4ndCBvcGVuIEJsdWUgT2NlYW4gdG8gdHJ5IHRvCj4+IGZpZ3VyZQo+Cj4KSSB0aGluayB0aGF0PUUyPTgwPTk5cyBiZWNhdXNlIGk9RTI9ODA9OTltIHVzaW5nID1FMj04MD05Q2ZhaWxGYXN0PUUyPTgwPTlEPQogd2hpY2ggd2lsbCBpbnRlcnJ1cHQgZXZlcnl0aGluZwpvbmNlIG9uZSBwYXJhbGxlbCBzdGVwIGZhaWxzIGFuZCB0aHVzIHRoZXkgYWxsIGFwcGVhciB0byBmYWlsLCBiZWNhdXNlIHRoZXkKd2VyZSBpbnRlcnJ1cHRlZC4KCldlIGNvdWxkIHR1cm4gdGhhdCBvZmYgYnV0IHdlPUUyPTgwPTk5ZCBkcm93biB0aGUgYnVpbGQgc2VydmVyIHRoZW4gOy0pCgoKPj4gb3V0IGF0IHdoaWNoIHN0ZXAuIEZyb20gbG9nLCBJSVVDLCB0aGVyZSBpcyBhbiBpc3N1ZSB3aXRoIEpESyA5OiB0aGF0J3MKPj4gaXQ/Cj4KPgo+IFllcyBqZGsgOSBvbiBXaW5kb3dzLiBHYXZpbiBhc2tlZCBDaHJpcyB0byBsb29rIGludG8gaXQuCj4KPiBJZiB5b3UgbG9vayBhdCBteSBidWlsZCBzZXJ2ZXJbMV0sIHRob3NlIGJ1aWxkcyBhbGwgd29yayBzbyB0aGUgYnVpbGQgaXMKPiBmaW5lLCBqdXN0IG5lZWQgdGhlIGVudmlyb25tZW50IGZpeGVkIDstKQo+Cj4gWzFdIGh0dHBzOi8vamVua2lucy5vbmUtZGFzaC5jb20vam9iL21hdmVuLwo+Cj4KPj4KPj4gV2UncmUgcmVhbGx5IGluIHRoZSByaWdodCBkaXJlY3Rpb246IHNvb24sIHdlJ2xsIGJlIHJlYWR5IHRvIHN0YXJ0Cj4+IHBsdWdpbnMgKDQwCj4+IHBsdWdpbnMpIGFuZCBzaGFyZWQgKDIwIGNvbXBvbmVudHMpIG1pZ3JhdGlvbi4uLgo+Pgo+PiBSZWdhcmRzLAo+Pgo+PiBIZXJ2PUMzPUE5Cj4+Cj4+IExlIGx1bmRpIDI3IG5vdmVtYnJlIDIwMTcsIDExOjE2OjAzIENFVCBTdGVwaGVuIENvbm5vbGx5IGEgPUMzPUE5Y3JpdCA6Cj4+ID4gUEFSVFkgUEFSVFkgUEFSVFkgVElNRQo+PiA+Cj4+ID4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvCj4+ID4KPj4gPiBPbiAyMiBOb3ZlbWJlciAyMDE3IGF0IDA5OjQ4LCBTdGVwaGVuIENvbm5vbGx5IDwKPj4gPgo+PiA+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+PiA+ID4gU2NoZWR1bGVkIGZvciB0aGUgTm92ZW1iZXIgMjZ0aCB1cGdyYWRlOiBodHRwczovL2N3aWtpLmFwYWNoZS4KPj4gPiA+IG9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvSU5GUkEvSmVua2lucytQbHVnaW4rVXBncmFkZXMKPj4gPiA+Cj4+ID4gPiBPbiAyMSBOb3ZlbWJlciAyMDE3IGF0IDE0OjQ2LCBBcm5hdWQgSD1DMz1BOXJpdGllciA8YWhlcml0aWVyQGdtYWlsLj0KY29tPgo+PiB3cm90ZToKPj4gPiA+PiB5ZWFoICEhCj4+ID4gPj4KPj4gPiA+PiBPbiBUdWUsIE5vdiAyMSwgMjAxNyBhdCAyOjEwIFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPj4gPiA+Pgo+PiA+ID4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+PiA+ID4+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9JTkZSQS0xNTUyNAo+PiA+ID4+ID4KPj4gPiA+PiA+IEhlcnY9QzM9QTkgaXQgaXMgbmVhcmx5IHRpbWUgdG8gcGFydHkhCj4+ID4gPj4KPj4gPiA+PiAtLQo+PiA+ID4+IC0tLS0tCj4+ID4gPj4gQXJuYXVkIEg9QzM9QTlyaXRpZXIKPj4gPiA+PiBodHRwOi8vYWhlcml0aWVyLm5ldAo+PiA+ID4+IE1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tCj4+ID4gPj4gVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcgo+Pgo+Pgo+Pgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pgo+PiAtLQo+IFNlbnQgZnJvbSBteSBwaG9uZQo+Ci0tPTIwClNlbnQgZnJvbSBteSBwaG9uZQoKLS0wMDFhMTE0NWZlMTAwODk3ZDMwNTVmMDY0MzczLS0KCkZyb20gZGV2LXJldHVybi0xMjQwOTAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIFNlcCAyNCAxNjowNzo1NCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwOTAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQzI5MEJDRjQzCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMjQgU2VwIDIwMTcgMTY6MDc6NTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzNTg3MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNCBTZXAgMjAxNyAxNjowNzo1NCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzU4MDAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjQgU2VwIDIwMTcgMTY6MDc6NTQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNTc4OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI0IFNlcCAyMDE3IDE2OjA3OjUzIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAyNCBTZXAgMjAxNyAxNjowNzo1MyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDc5RDA3MUE1NjQ1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAyNCBTZXAgMjAxNyAxNjowNzo1MyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjQwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC40MDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBJSURkcTNCUTZVTXAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sIDI0IFNlcCAyMDE3IDE2OjA3OjQ4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd3IwLWYxNzcuZ29vZ2xlLmNvbSAobWFpbC13cjAtZjE3Ny5nb29nbGUuY29tIFsyMDkuODUuMTI4LjE3N10pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBCRjUzNTVGNkMzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAyNCBTZXAgMjAxNyAxNjowNzo0NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13cjAtZjE3Ny5nb29nbGUuY29tIHdpdGggU01UUCBpZCBrMjBzbzQxNjk2NDN3cmUuNAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDI0IFNlcCAyMDE3IDA5OjA3OjQ3IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUFJV3c5bmR2cGJHbk9sNU9FLzEyZ2tYUGllMHlFaVRsNmMxclNlYTBlRW89OwogICAgICAgIGI9aGo0V0preE9yLy81TjVKbXJadHh3VGFBdzhWZXNISjRNVkR3cVpiQkRmV2EzQWhSbTM5SWRyUVhQd204M2pDeGZQCiAgICAgICAgIEhKUE1aN0VFeWdGanI1a0xEcFc0SkdXSzBMakhoOUVPVjU0dkFnWldvdlR0K2NWaFhMUUZYVUtlWllreXNxSHJSbGhYCiAgICAgICAgIFpiZklWbzd4emFLKzliWit3aVN5c2x3b1J1TEFVSExMcmZyeXA5UHRaYWhJWFZCQlJRM0FyQ2hmNnFYVHAwQTFYWVBHCiAgICAgICAgIGtzQ3hETGZhUHdsVklQbEYxT3p2Z29VMzNWZnF2ZzZheTFTS1BVUThGTndTOW1UWXR5c0xLZkt0UnVyWmhQZFJIY1pmCiAgICAgICAgIFUwOEFWc3pNa0pYWWoxWitGOXRhMEQ0SmpkN2d0bzNHRWlIditpRTdBdm5QYmxrMUhyMDR3S1YrK0tWNUFVSTRvU29zCiAgICAgICAgIHA3c1E9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUFJV3c5bmR2cGJHbk9sNU9FLzEyZ2tYUGllMHlFaVRsNmMxclNlYTBlRW89OwogICAgICAgIGI9VGZZYW5SRG10aVovZWRGUmxMRUdCZFdLdlVKak1rREZjN1ltaWxKNzIrSTdHd0RENWlKQzhSVTBkaGRaeXl1enR2CiAgICAgICAgIFBlT2E0TW1NTm9BZnhoV2ZvZUE4eTE3SSt5VnQxTW82V1lneURDM3VGbnhacUxLeFdDZkpVMGFrMXAwaDFneUo2NUhpCiAgICAgICAgIEIwSHFMWFhuMGdJa3M0UGVvNnh2ZEdNNS9oaEtEWElXd3duN2hDMHZRcm5XVmhKbUFYb1dJV2d3cEJTWVhkNzVERTVwCiAgICAgICAgIGJ0QkFLZk02UjBDVlZsNThtYitBZ2FzTko5bXFpRkw3SnVwR1Zuc3RKdWN6V3YzdStVTXEyL3VzdThMTXVQa3Q2eUNZCiAgICAgICAgIHV4UTlzdjZpOExVbkwyUVltaWltcWh6NVd0cFNEM0xYRy9TWURES01GaHAxSXNVMXdRQm1FbHcwdVl4M1ZkSkZucWNKCiAgICAgICAgIDlOVmc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWlyN0hzM0lHTEkvdDFEbVNVcGFndkw2OWVWelVvVFNCcHNPVERjQVVVMWRsdXBKWGlHCgk1NGYyZkdEbGVucVVXQ3M1b1VsbkJCcFEvaE5tSmNMNzIvWUNkYlM0MkpNVApYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQ1RzS1ZEU1o1cTFOWTJQbmZJSlA3WFh5bEY2UERNL0lTa2tCd0NTMGV6TXBMYklKWGl4Vm5pM0RVdWtIY2xpOHk4ZmRKdE5SVFROdHY3cml4YnhFRT0KWC1SZWNlaXZlZDogYnkgMTAuMjIzLjE3NC4xNzUgd2l0aCBTTVRQIGlkIHk0NG1yMzU0MTUxN3dyYy4zNS4xNTA2MjY5MjYwNDAyOwogU3VuLCAyNCBTZXAgMjAxNyAwOTowNzo0MCAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMjIzLjEzNC4yMjkgd2l0aCBIVFRQOyBTdW4sIDI0IFNlcCAyMDE3IDA5OjA3OjM5IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8MTUwNTkwNzg5Mi4yMjcyNDguMTExMjI4MjMxMi4wOTNEQThDNUB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+ClJlZmVyZW5jZXM6IDxDQStuUG5Nd01DcU9fRXRjQlc1XzNyTTcxLXRDcml0cDRVa3N5ZlBtREdBWXI2eHo9b1FAbWFpbC5nbWFpbC5jb20+CiA8RjFGOEIzQ0YtRERBQy00NEJBLUFFQjctNDEyMkM4ODdDNEFCQGhvbnRvbi5vcmc+IDxDQStuUG5Nd2ZfQmZ0WXVzLXJuUXJPN281K2R1R0Z6MFZFYTdOaW9oRzFfX1lVenJjNXdAbWFpbC5nbWFpbC5jb20+CiA8MTUwNTc5NjkwOC4yNTE2ODA4LjExMTA2NzMxMjguNjM1QUMzNUZAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgogPG9wLnk2dHRtcmVia2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPiA8Q0ErblBuTXhGRkVUUW1xdGUwLTUwdTNFRlN3Ymc2eWlwdzVWU0JkTFB3VHpQaGRWazV3QG1haWwuZ21haWwuY29tPgogPG9wLnk2dHY1a2Yza2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPiA8MTUwNTg1MzU0MC4zNDQzNDY1LjExMTE2MjA2NDAuMzMxQkU1OEFAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgogPENBK25Qbk16a052QkZfRmN0LUU9N3FmR1FmcEhVQktUMTljV0MzOFNDcXRxNmt2aWU5Z0BtYWlsLmdtYWlsLmNvbT4KIDwxNTA1ODY3Mzc0LjM0OTM4NDIuMTExMTc5NjUyMC41MTI0QUNBNkB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CiA8Q0ErblBuTXhxSGEzeUJSRldyK2lPRXNPbWhrWDhMY2djME00ZEc5c3l1Y0xzUGFMUjVBQG1haWwuZ21haWwuY29tPgogPG9wLnk2dXNldXd5a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPiA8MTUwNTkwNzg5Mi4yMjcyNDguMTExMjI4MjMxMi4wOTNEQThDNUB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFN1biwgMjQgU2VwIDIwMTcgMTc6MDc6MzkgKzAxMDAKTWVzc2FnZS1JRDogPENBK25Qbk16dStZdktRWDN2VD1BQmtLM3BjR1AtTWh4dHNpb2tUMENza3pBYmpNOXg3QUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFVuZGVyc3RhbmRpbmcgTU5HLTYyMDkgKHdhczogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xKQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0MDNkOTIzM2Q2YmYwNTU5ZjFhNDBhIgoKLS0wMDFhMTE0MDNkOTIzM2Q2YmYwNTU5ZjFhNDBhCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL21pbmkvZ3VpZGUtbWF2ZW4tY2xhc3Nsb2FkaW5nLmh0bWwgc2F5czoKCj4gV2hlbiBhIGJ1aWxkIHBsdWdpbiBpcyBleGVjdXRlZCwgdGhlIHRocmVhZCdzIGNvbnRleHQgY2xhc3Nsb2FkZXIgaXMgc2V0CnRvIHRoZSBwbHVnaW4gY2xhc3Nsb2FkZXIuCgpTbyB3ZSdsbCBuZWVkIHRvIGZpeCBzb21ldGhpbmcgc29tZXdoZXJlLi4uCgpodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vbWF2ZW4vY29udGVudC9yZWZlcmVuY2UvbWF2ZW4tY2xhc3Nsb2FkaW5nLmh0bWwKaXMgdW5hY2Nlc3NpYmxlIGZyb20gdGhlIHdlYnNpdGUgZHVlIHRvIGEgcmV3cml0ZSBydWxlLi4uCgpUaGluZ3MgdGhhdCBzZWVtIHRvIGJlIG1pc3Npbmc6CgoqIFdoYXQgaXMgdGhlIGRlc2lyZWQgY2xhc3Nsb2FkaW5nIGZvciBhIHBsdWdpbiB0aGF0IGlzIG1hcmtlZCBhcyBhbgpleHRlbnNpb24/IENhbiBhIHBsdWdpbiBoYXZlIGEgTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCB0byBhbGxvdwpleHBvcnRpbmcgY2xhc3NlcyBhbmQgYXJ0aWZhY3RzIHdoZW4gdXNlZCBhcyBhbiBleHRlbnNpb24/IEhvdyBzaG91bGQgdGhlCmNsYXNzbG9hZGluZyBsb29rIGZvciBzdWNoIGEgc3RyYW5nZSBiZWFzdC4KCiogSG93IGRvZXMgb25lIGFjY2VzcyB0aGUgcGx1Z2luIGNsYXNzbG9hZGVyIGlmIHdlIHdhbnQgVENDTCB0byBiZSBvdGhlcgp0aGFuIHRoYXQsIGlzIGl0IGEgRGVwZW5kZW5jeSBJbmplY3Rpb24gb3Igc29tZXRoaW5nIGVsc2U/CgoqIFdoYXQgZGlmZmVyZW50aWF0ZXMgYSBDb3JlIGV4dGVuc2lvbiBmcm9tIGEgQnVpbGQgZXh0ZW5zaW9uIChpcyBpdCB0aGF0IGEKYnVpbGQgZXh0ZW5zaW9uIGxhY2tzIGEgTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCBhbmQgd2FzIG9ubHkgZGVjbGFyZWQKaW4gdGhlIHBvbS54bWwsIHdoaWxlIGEgY29yZSBleHRlbnNpb24gZWl0aGVyIGhhcyBhCk1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgLSBpZiBkZWNsYXJlZCBpbiB0aGUgcG9tIC0gb3IgaXMgYW4gZXh0ZW5zaW9uCmRlY2xhcmVkIGluIC5tdm4vZXh0ZW5zaW9ucy54bWwpCgpBdCB0aGlzIHBvaW50IGluIHRpbWUgSSB0aGluayB3ZSBhcmUgbmVhcmluZyB0aGUgcG9pbnQgd2hlcmUgSSBtYXkgaGF2ZSB0bwpkZWNsYXJlIDMuNS4xIGFiYW5kb25lZCBhcyBJIHRoaW5rIHRoZSBjbGFzc2xvYWRpbmcgaW4gdGhhdCBpcyBhIHN5bXB0b20gb2YKdG9vIG1hbnkgY29va3MgYWxsIGNoYW5naW5nIHRoaW5ncyBpbiBkaWZmZXJlbnQgZGlyZWN0aW9ucy4gV2UgbmVlZCBhCmNvbnNpc3RlbnQgdmlzaW9uIG9mIHdoZXJlIHdlIHdhbnQgdGhpbmdzIHRvIGdvIGFuZCAtIHdoaWxlIHdlIG5lZWQgbm90IGdldAp0aGVyZSBpbiBvbmUgZ28gLSB0aGUgcGF0aCBwcmVzZW50ZWQgZm9yIG90aGVycyB0byBzZWUuCgpUaGluZ3MgSSB0aGluayB3ZSBzaG91bGQgY29uc2lkZXI6CgoxLiBEbyB3ZSB3YW50IHRvIGZvcm1hbGx5IGRlcHJlY2F0ZSBCdWlsZCBFeHRlbnNpb25zIGFuZCB0aGUKL3Byb2plY3QvYnVpbGQvZXh0ZW5zaW9ucyBlbGVtZW50IChzdGFydCBsb2dnaW5nIHdhcm5pbmdzLCBldGMpPwoyLiBEbyB3ZSB3YW50IHRvIGZvcm1hbGx5IGRlcHJlY2F0ZSBwbHVnaW5zIGFzIGV4dGVuc2lvbnMgYW5kIHN0YXJ0IGxvZ2dpbmcKd2FybmluZ3MgZm9yCi9wcm9qZWN0L2J1aWxkLyhwbHVnaW5NYW5hZ2VtZW50fC4pL3BsdWdpbnMvcGx1Z2luL2V4dGVuc2lvbnNbdGV4dCgpPT10cnVlXQozLiBXaGF0IGlzIHRoZSBkaWZmZXJlbmNlIGluIGNsYXNzbG9hZGluZyBmb3IgYSAvcHJvamVjdC9idWlsZC9leHRlbnNpb25zCndoaWNoIGhhcyBhIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgYW5kIG9uZSB0aGF0IGRvZXNuJ3Q/CgpJJ20ga2VlcGluZyB0aGUgMy41LjEgcmVsZWFzZSBpbiBzdGFnaW5nIHVudGlsIHdlIGdldCBhIGNsZWFyIHZpc2lvbiBmb3IKaG93IHdlIHdhbnQgdG8gaGF2ZSBjbGFzc2xvYWRpbmcgc28gdGhhdCBJIGNhbiBhc3Nlc3Mgd2hldGhlciB0aGUgMy41LjEKYWN0dWFsaXR5IGlzIG9ubHkgbW92aW5nIG5lYXJlciB0byB0aGUgdmlzaW9uIChvayB0byByZWxlYXNlKSBvciBoYXMgbW92ZWQKbmVhcmVyIGluIHNvbWUgd2F5cyBidXQgZnVydGhlciBpbiBvdGhlcnMgKG5vdCBvayB0byByZWxlYXNlKQoKT24gMjAgU2VwdGVtYmVyIDIwMTcgYXQgMTI6NDQsIElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY29tPiB3cm90ZToKCj4gUmVhbC13b3JsZCBzY20gb3Igd2Fnb24gPGV4dGVuc2lvbnM+IHdvbid0IHRyaWdnZXIgbWF2ZW4yLWNvbXBhdCBjb2RlCj4gcGF0aCBbMV0uIFRvIGF2b2lkIHRoYXQgb2JzY3VyZSBjb2RlIHBhdGggd2UgY2FuIGVpdGhlciBtYWtlIHRoZSB0ZXN0Cj4gbW9yZSBlbGFib3JhdGUgKGkuZS4gYWRkIGRlcGVuZGVuY2llcyB0byBleHRqYXIxL2V4dGphcjIpIG9yIHdlIGNhbiB1c2UKPiBleHRlbnNpb25zIDxwbHVnaW4+LiBFaXRoZXIgd2F5IEkgZG9uJ3QgdGhpbmsgd2Ugc2hvdWxkIHNwZW5kIHRpbWUgb24KPiB0aGUgY29kZSBwYXRoIHVubGlrZWx5IHRvIGJlIHVzZWQgaW4gcmVhbCBsaWZlLgo+Cj4gWzFdCj4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9ibG9iL21hdmVuLTMuNS4xL21hdmVuLQo+IGNvcmUvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3Byb2plY3QvRGVmYXVsdFByb2plY3RCdWlsZGluZ0hlbHBlci4KPiBqYXZhI0wyMTAtTDIxOQo+Cj4gLS0KPiBSZWdhcmRzLAo+IElnb3IKPgo+IE9uIFdlZCwgU2VwIDIwLCAyMDE3LCBhdCAwMzoyOSBBTSwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4gPiBPbiBXZWQsIDIwIFNlcCAyMDE3IDA5OjEyOjQ3ICswMjAwLCBTdGVwaGVuIENvbm5vbGx5Cj4gPiA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPgo+ID4gPiBPbiBXZWQgMjAgU2VwIDIwMTcgYXQgMDE6MjksIElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY29tPgo+IHdyb3RlOgo+ID4gPgo+ID4gPj4gSW4gdGhhdCBjYXNlLCBjYW4gSSBzdWdnZXN0IGNvdXBsZSBvZiBjaGFuZ2VzIHRvIHRoZSB0ZXN0IHByb2plY3QKPiA+ID4+Cj4gPiA+PiAqIEkgdGhpbmtzIGl0IG1ha2VzIG1vcmUgc2Vuc2UgdG8gY29uZmlndXJlIGV4dGphcjEgYW5kIGV4dGphcjIgYXMKPiA+ID4+IGV4dGVuc2lvbnMgPHBsdWdpbj4gZWxlbWVudHMgaW4gcHJvYmxlTiBwb20ueG1sIGZpbGVzLiBGaXJzdCwgdGhlcmUgaXMKPiA+ID4+IG5vIG1lYW5pbmdmdWwgb3JkZXIgYmV0d2VlbiA8ZXh0ZW5zaW9ucz4gYW5kIDxwbHVnaW5zPiBlbGVtZW50cy4gTW9yZQo+ID4gPj4gaW1wb3J0YW50bHksIHRob3VnaCwgc2ltcGxlIDxleHRlbnNpb25zPiBhcmUgdHJlYXRlZCBpbiBzcGVjaWFsCj4gPiA+PiBtYXZlbjItY29tcGF0IG1vZGUgYW5kIGFyZSBub3QgcmVwcmVzZW50YXRpdmUgb2YgbGlrZWx5IHJlYWwtd29ybGQKPiA+ID4+IGV4dGVuc2lvbnMuCj4gPiA+Cj4gPgo+ID4gTm90IHN1cmUgSSBhZ3JlZSB3aXRoIHRoaXMuIEkgdGhpbmsgdGhlcmUgYXJlIGphcnMgd29ydGggc2hhcmluZyBhY3Jvc3MKPiA+IG11bHRpcGxlIHBsdWdpbnMsIGJ1dCB3aGVyZSBtYWtpbmcgdGhlIHBsdWdpbiBhbiBleHRlbnNpb24gaXMgYSBiaXQKPiA+IHdlaXJkLgo+ID4gSSdtIHRoaW5raW5nIG9mIHNjbSBhbmQgd2Fnb24gaW4gdGhpcyBjYXNlLgo+ID4KPiA+ID4KPiA+ID4gVGhhdCBzb3VuZHMgbGlrZSB3ZSBuZWVkIGRvY3VtZW50YXRpb24gdXBkYXRlZCB0aGVuLiBOb25lIG9mIHRoYXQgaXMKPiA+ID4gb2J2aW91cyB0byBtZS4KPiA+ID4KPiA+ID4KPiA+ID4+Cj4gPiA+PiAqIEkgdGhpbmsgd2Ugc2hvdWxkIGludHJvZHVjZSBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sIHRvIHRoZSB0ZXN0Cj4gPiA+PiBleHRlbnNpb25zLiBUaGlzIG1ldGFkYXRhIHdoYXQgaW50cm9kdWNlZCB0byBjb25maWd1cmUgY2xhc3NwYXRoCj4gPiA+PiB2aXNpYmlsaXR5LCBzbyBsZXRzIHVzZSBpdC4KPiA+ID4KPiA+ID4KPiA+ID4gQWdhaW4sIG5vdCBvYnZpb3VzIHRvIG1lLCBpZiB0aGF0IGZpbGUgYWxsb3dzIGNvbnRyb2wgb2YgY2xhc3NwYXRoCj4gPiA+IHZpc2liaWxpdHkgdGhlbiBpdCBtYXkgYmUgdGhhdCB0aGUgb25seSBpc3N1ZSAqd2l0aCogMy41LjEgaXMgdGhlIGxhY2sKPiBvZgo+ID4gPiBkb2N1bWVudGF0aW9uLi4uIG5vdyBwcmV2aW91cyB2ZXJzaW9ucyB3b3VsZCBoYXZlIGJlZW4gYWRkaW5nIGJyZWFraW5nCj4gPiA+IGNoYW5nZXMgZnJvbSBteSBQb1YgYnV0IHRoYXQgaXMgdGhlIHBhc3QgYW5kIHNob3VsZCBub3QgYWZmZWN0IHRoZQo+IDMuNS4xCj4gPiA+IHJlbGVhc2UuCj4gPiA+Cj4gPiA+IFBScyBmb3IgdGhlIHByb2JlIHByb2plY3Qgd2VsY29tZS4gSSBhbSBoYXBweSB0byB0cnkgYW5kIHdyaXRlIGRvY3MKPiBvbmNlCj4gPiA+IEkKPiA+ID4gaGF2ZSBhbiB1bmRlcnN0YW5kaW5nIG9mIHdoYXQgdGhlIGV4cGVjdGVkIGJlaGF2aW91cnMgYXJlCj4gPiA+Cj4gPiA+Cj4gPiA+Pgo+ID4gPj4gLS0KPiA+ID4+IFJlZ2FyZHMsCj4gPiA+PiBJZ29yCj4gPiA+Pgo+ID4gPj4gT24gVHVlLCBTZXAgMTksIDIwMTcsIGF0IDA1OjEyIFBNLCBTdGVwaGVuIENvbm5vbGx5IHdyb3RlOgo+ID4gPj4gPiBZZXMsIHRoZSBleHBlY3RhdGlvbnMgYXJlIGtleS4gRGVwZW5kaW5nIG9uIHdoYXQgdGhleSBhcmUgd2UgbWF5Cj4gPiA+PiBlaXRoZXIKPiA+ID4+ID4gZHJvcCAzLjUuMSBvciBnbyBhaGVhZCBhcyBpdCBkZXBlbmRzIG9uIHdoZXRoZXIgdGhpcyBpcyBtb3JlIGNvcnJlY3QKPiA+ID4+IHRoYW4KPiA+ID4+ID4gMy41LjAgb3Igc3dhcHBpbmcgb25lIGZpeCBmb3IgYSBidWcKPiA+ID4+ID4KPiA+ID4+ID4gT24gVHVlIDE5IFNlcCAyMDE3IGF0IDIxOjM5LCBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvbT4KPiA+ID4+IHdyb3RlOgo+ID4gPj4gPgo+ID4gPj4gPiA+IEp1c3QgdG8gY29uZmlybSBJIHVuZGVyc3RhbmQgd2hhdCB3ZSBhcmUgdHJ5aW5nIHRvIGVzdGFibGlzaCBoZXJlLgo+ID4gPj4gV2UKPiA+ID4+ID4gPiB3YW50IHRvIGRlY2lkZSB0aGUgZXhwZWN0ZWQvZGVzaXJlZCBjb21wb25lbnQgaW5qZWN0aW9uIGJlaGF2aW91cgo+ID4gPj4gYW5kCj4gPiA+PiA+ID4gY2xhc3NwYXRoIHZpc2liaWxpdHkgaW4gdGhlIGFic2VuY2Ugb2YgcGFja2FnZSBhbmQgYXJ0aWZhY3QgZXhwb3J0Cj4gPiA+PiA+ID4gY29uZmlndXJhdGlvbiAoaS5lLiBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sIGZpbGUpLiBEaWQgSSBnZXQKPiA+ID4+IHRoaXMKPiA+ID4+ID4gPiByaWdodD8KPiA+ID4+ID4gPgo+ID4gPj4gPiA+IC0tCj4gPiA+PiA+ID4gUmVnYXJkcywKPiA+ID4+ID4gPiBJZ29yCj4gPiA+PiA+ID4KPiA+ID4+ID4gPiBPbiBUdWUsIFNlcCAxOSwgMjAxNywgYXQgMDM6NTIgUE0sIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+ID4gPj4gPiA+ID4gTGV0J3MgZG8gaXQgbGlrZSB0aGlzOgo+ID4gPj4gPiA+ID4KPiA+ID4+ID4gPgo+ID4gPj4gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZG93bmxvYWQvYXR0YWNobWVudHMvMjMyOTg0MS8KPiBjbGFzc3JlYWxtcy5wZGY/YXBpPXYyCj4gPiA+PiA+ID4gPgo+ID4gPj4gPiA+ID4gUm9iZXJ0Cj4gPiA+PiA+ID4gPgo+ID4gPj4gPiA+ID4gT24gVHVlLCAxOSBTZXAgMjAxNyAyMTowODozOSArMDIwMCwgU3RlcGhlbiBDb25ub2xseQo+ID4gPj4gPiA+ID4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPj4gPiA+ID4KPiA+ID4+ID4gPiA+ID4gSSB0aGluayB5b3Ugd2lsbCBuZWVkIGEgbGluayB0byB0aGUgUERGIGFzIGF0dGFjaG1lbnRzIGFyZQo+ID4gPj4gc3RyaXBwZWQKPiA+ID4+ID4gPiBmcm9tCj4gPiA+PiA+ID4gPiA+IHRoZSBNTAo+ID4gPj4gPiA+ID4gPgo+ID4gPj4gPiA+ID4gPiBPbiBUdWUgMTkgU2VwIDIwMTcgYXQgMTk6NTcsIFJvYmVydCBTY2hvbHRlCj4gPiA+PiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Cj4gPiA+PiA+ID4gd3JvdGU6Cj4gPiA+PiA+ID4gPiA+Cj4gPiA+PiA+ID4gPiA+PiBBdHRhY2hlZCBhIHNpbmdsZSBwYWdlIG92ZXJ2aWV3Lgo+ID4gPj4gPiA+ID4gPj4KPiA+ID4+ID4gPiA+ID4+IFBlciBibG9jayB5b3UnbGwgc2VlIGluIHRoZSB1cHBlciBsZWZ0IGNvcm5lciB0aGUgZXhlY3V0ZWQKPiA+ID4+IHBsdWdpbgo+ID4gPj4gPiA+ID4gPj4gVGhlIGxlZnQgY29sdW1uIGNvbnRhaW5zIHRoZSBleHRlbnNpb25zIGFuZCBwbHVnaW4gaW4gb3JkZXJhcwo+ID4gPj4gPiA+IHNwZWNpZmllZAo+ID4gPj4gPiA+ID4gPj4gaW4KPiA+ID4+ID4gPiA+ID4+IHRoZSBwb20ueG1sCj4gPiA+PiA+ID4gPiA+PiBJbiBldmVyeSBjbGFzc2xvYWRlcmNvbHVtbiB5b3UnbGwgc2VlIG51bWJlcnMgd2hpY2ggcmVwcmVzZW50Cj4gPiA+PiB0aGUKPiA+ID4+ID4gPiBvcmRlci4KPiA+ID4+ID4gPiA+ID4+Cj4gPiA+PiA+ID4gPiA+PiBJIGhvcGUgSSBkaWRuJ3QgbWFrZSBhbnkgbWlzdGFrZXMuCj4gPiA+PiA+ID4gPiA+PiBUb21vcnJvdyBJIGhhdmUgZW5vdWdoIHRpbWUgdG8gc2VlIGlmIEkgdW5kZXJzdGFuZCB3aGF0J3MKPiA+ID4+IGhhcHBlbmluZwo+ID4gPj4gPiA+ID4gPj4gaGVyZS4KPiA+ID4+ID4gPiA+ID4+Cj4gPiA+PiA+ID4gPiA+PiBJIHdpbGwgY29tZSBiYWNrIHdpdGggbXkgY29uY2x1c2lvbnMuCj4gPiA+PiA+ID4gPiA+Pgo+ID4gPj4gPiA+ID4gPj4gUm9iZXJ0Cj4gPiA+PiA+ID4gPiA+Pgo+ID4gPj4gPiA+ID4gPj4gT24gVHVlLCAxOSBTZXAgMjAxNyAwNjo1NTowOCArMDIwMCwgSWdvciBGZWRvcmVua28gPAo+ID4gPj4gPiA+IGlnb3JAaWZlZG9yZW5rby5jb20+Cj4gPiA+PiA+ID4gPiA+PiB3cm90ZToKPiA+ID4+ID4gPiA+ID4+Cj4gPiA+PiA+ID4gPiA+PiA+IFRMO0RSIHlvdXIgdGVzdCBwcm9qZWN0IGV4cG9zZWQgdHdvIGV4aXN0aW5nIGJ1Z3MsIG9uZQo+ID4gPj4gY2hhbmdlIGluCj4gPiA+PiA+ID4gPiA+PiA+IGJlaGF2aW91ciBhbmQgb25lIHF1aXJrIEkgY2FuJ3QgZXhwbGFpbgo+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPj4gPiA+ID4gPj4gPiAqIEJ1aWxkIGA8ZXh0ZW5zaW9ucz5gIGFyZSBsb2FkZWQgYnkgdHdvIGNsYXNzbG9hZGVycywKPiB3aGljaAo+ID4gPj4gaXMKPiA+ID4+IGEKPiA+ID4+ID4gPiBidWcKPiA+ID4+ID4gPiA+ID4+IGluCj4gPiA+PiA+ID4gPiA+PiA+IERlZmF1bHRQcm9qZWN0QnVpbGRpbmdIZWxwZXIjY3JlYXRlUHJvamVjdFJlYWxtIGFuZAo+IGV4cGxhaW5zCj4gPiA+PiB3aHkgeW91Cj4gPiA+PiA+ID4gPiA+PiBzZWUKPiA+ID4+ID4gPiA+ID4+ID4gZXh0amFyMS9leHRqYXIyIGluIHRoZSBvdXRwdXQKPiA+ID4+ID4gPiA+ID4+ID4gKiBDbGFzc1JlYWxtIGRvZXMgbm90IGFsbG93IHNhbWUgZm9yZWlnbi1pbXBvcnQgZnJvbQo+IG11bHRpcGxlCj4gPiA+PiA+ID4gPiA+PiA+IGNsYXNzbG9hZGVycywgd2hpY2ggaXMgYSBidWcgYW5kIGV4cGxhaW5zIHdoeSBpdCBpcyBub3QKPiA+ID4+IHBvc3NpYmxlIHRvCj4gPiA+PiA+ID4gPiA+PiBsb2FkCj4gPiA+PiA+ID4gPiA+PiA+IHNhbWUgcmVzb3VyY2UgZnJvbSBtdWx0aXBsZSBwbHVnaW5zL2V4dGVuc2lvbnMKPiA+ID4+ID4gPiA+ID4+ID4gKiBUQ0NMIGRvZXMgbm90IGhhdmUgYWNjZXNzIHRvIHByaXZhdGUgKGkuZS4gbm90IGV4cG9ydGVkKQo+ID4gPj4gcmVzb3VyY2VzCj4gPiA+PiA+ID4gPiA+PiBvZgo+ID4gPj4gPiA+ID4gPj4gPiB0aGlzIGV4dGVuc2lvbnMgcGx1Z2luLCB3aGljaCBpcyBhIGNoYW5nZSBvZiBiZWhhdmlvdXIKPiA+ID4+IGludHJvZHVjZWQgYnkKPiA+ID4+ID4gPiA+ID4+ID4gbW5nLTYyMDkgZml4Cj4gPiA+PiA+ID4gPiA+PiA+ICogQWxzbywgY29tcG9uZW50IGluamVjdGlvbiBvcmRlciBhcHBlYXJzIHRvIGJlIGJhY2t3YXJkcywKPiA+ID4+IGJ1dAo+ID4gPj4gbWF5YmUKPiA+ID4+ID4gPiA+ID4+ID4gU3R1YXJ0IGNhbiBleHBsYWluIHdoeS4KPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4+ID4gPiA+ID4+ID4gQmVsb3cgaXMgbW9yZSBkZXRhaWxlZCBleHBsYW5hdGlvbiBvZiBleHBlY3RlZCBhbmQgb2JzZXJ2ZWQKPiA+ID4+ID4gPiBiZWhhdmlvdXIKPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4+ID4gPiA+ID4+ID4gIyMgQ29tcG9uZW50IGluamVjdGlvbiBkZXBlbmRzIG9uIHRoZSBjdXJyZW50bHkgcnVubmluZwo+ID4gPj4gcGx1Z2luCj4gPiA+PiBhbmQKPiA+ID4+ID4gPiB0aGUKPiA+ID4+ID4gPiA+ID4+ID4gaW5qZWN0aW9uIHNpdGUKPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4+ID4gPiA+ID4+ID4gQ3VycmVudGx5IHJ1bm5pbmcgcGx1Z2lucyBoYXZlIGFjY2VzcyB0byB0aGUgZm9sbG93aW5nCj4gPiA+PiBjb21wb25lbnQKPiA+ID4+ID4gPiA+ID4+ID4gaW1wbGVtZW50YXRpb25zOgo+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPj4gPiA+ID4gPj4gPiAqIFJlZ3VsYXIgcGx1Z2luIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50cyBpbXBsZW1lbnRlZCBieQo+IHRoZQo+ID4gPj4gcGx1Z2luLAo+ID4gPj4gPiA+ID4gPj4gPiBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMsIGlmIGFueSAodmlhIHByb2plY3QgY2xhc3MgcmVhbG0KPiA+ID4+IGZvcmVpZ24KPiA+ID4+ID4gPiA+ID4+ID4gaW1wb3J0KSBhbmQgTWF2ZW4gQ29yZS4KPiA+ID4+ID4gPiA+ID4+ID4gKiBFeHRlbnNpb24gcGx1Z2luIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50cyBpbXBsZW1lbnRlZCBieQo+ID4gPj4gdGhlCj4gPiA+PiA+ID4gcHJvamVjdAo+ID4gPj4gPiA+ID4gPj4gPiBidWlsZCBleHRlbnNpb25zIGFuZCBNYXZlbiBDb3JlLgo+ID4gPj4gPiA+ID4gPj4gPiAqIFdpdGhvdXQgYSBydW5uaW5nIHBsdWdpbiAoZS5nLiwgZHVyaW5nIHByb2plY3QgZGVwZW5kZW5jeQo+ID4gPj4gPiA+ID4gPj4gcmVzb2x1dGlvbiksCj4gPiA+PiA+ID4gPiA+PiA+IGNvbXBvbmVudHMgaW1wbGVtZW50ZWQgYnkgdGhlIHByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucyBhbmQKPiA+ID4+IE1hdmVuCj4gPiA+PiA+ID4gQ29yZQo+ID4gPj4gPiA+ID4gPj4gPiBhcmUgYWNjZXNzaWJsZS4KPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4+ID4gPiA+ID4+ID4gRGlmZmVyZW50IGluamVjdGlvbiBzaXRlcyBoYXZlIGFjY2VzcyB0byB0aGUgZm9sbG93aW5nCj4gPiA+PiBjb21wb25lbnQKPiA+ID4+ID4gPiA+ID4+ID4gaW50ZXJmYWNlczoKPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4+ID4gPiA+ID4+ID4gKiBNYXZlbiBDb3JlIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50IGludGVyZmFjZXMgZGVmaW5lZCBieQo+ID4gPj4gdGhlCj4gPiA+PiBjb3JlCj4gPiA+PiA+ID4gPiA+PiA+IGl0c2VsZiAob2J2aW91c2x5KQo+ID4gPj4gPiA+ID4gPj4gPiAqIFByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucyBoYXZlIGFjY2VzcyB0byAqKnB1YmxpYyoqCj4gPiA+PiBjb21wb25lbnQKPiA+ID4+ID4gPiA+ID4+ID4gaW50ZXJmYWNlcyBkZWZpbmVkIGJ5IE1hdmVuIENvcmUgYW5kIGNvbXBvbmVudCBpbnRlcmZhY2VzCj4gPiA+PiBkZWZpbmVkIGJ5Cj4gPiA+PiA+ID4gPiA+PiB0aGUKPiA+ID4+ID4gPiA+ID4+ID4gYnVpbGQgZXh0ZW5zaW9uIGl0c2VsZiAodGhlcmUgaXMgbm8gd2F5IHRvIGFjY2VzcyBjb21wb25lbnQKPiA+ID4+ID4gPiBpbnRlcmZhY2VzCj4gPiA+PiA+ID4gPiA+PiA+IGRlZmluZWQgaW4gb3RoZXIgZXh0ZW5zaW9ucykKPiA+ID4+ID4gPiA+ID4+ID4gKiBSZWd1bGFyIHBsdWdpbnMgaGF2ZSBhY2Nlc3MgdG8gKipwdWJsaWMqKiBjb21wb25lbnQKPiA+ID4+IGludGVyZmFjZXMKPiA+ID4+ID4gPiA+ID4+IGRlZmluZWQKPiA+ID4+ID4gPiA+ID4+ID4gYnkgTWF2ZW4gQ29yZSwgY29tcG9uZW50IGludGVyZmFjZXMgKipleHBvcnRlZCoqIGJ5IGJ1aWxkCj4gPiA+PiBleHRlbnNpb25zCj4gPiA+PiA+ID4gPiA+PiBhbmQKPiA+ID4+ID4gPiA+ID4+ID4gY29tcG9uZW50IGludGVyZmFjZXMgZGVmaW5lZCBpbiB0aGUgcGx1Z2luIGl0c2VsZgo+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPj4gPiA+ID4gPj4gPiBGb3IgaW5qZWN0aW9uIHRvIHdvcmssIGluamVjdGlvbiBzaXRlIGhhcyB0byBoYXZlIGFjY2VzcyB0bwo+ID4gPj4gdGhlCj4gPiA+PiA+ID4gPiA+PiA+IGNvbXBvbmVudCBpbnRlcmZhY2UgYW5kIHRoZSBjb21wb25lbnQgaW1wbGVtZW50YXRpb24gbXVzdAo+IGJlCj4gPiA+PiA+ID4gPiA+PiBhY2Nlc3NpYmxlCj4gPiA+PiA+ID4gPiA+PiA+IHRocm91Z2ggdGhlIGN1cnJlbnQgY29udGV4dC4KPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4+ID4gPiA+ID4+ID4gRnJvbSB3aGF0IEkgY2FuIHRlbGwsIGluIHlvdXIgZXhhbXBsZSBhbGwgcGx1Z2lucyBoYXZlCj4gYWNjZXNzCj4gPiA+PiB0byB0aGUKPiA+ID4+ID4gPiA+ID4+ID4gcmlnaHQgY29tcG9uZW50cyB3aGVuIHVzaW5nIGN1cnJlbnQgMy41LjItU05BUFNIT1QuIFRoZQo+ID4gPj4gaW5qZWN0aW9uCj4gPiA+PiA+ID4gPiA+PiBvcmRlcgo+ID4gPj4gPiA+ID4gPj4gPiBkb2VzIGFwcGVhciB0byBiZSBiYWNrd2FyZHMgZnJvbSB3aGF0IEkgZXhwZWN0ZWQsIGhvd2V2ZXIuCj4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+PiA+ID4gPiA+PiA+ICMjIFJlc291cmNlcyBsb29rdXAgZnVsbHkgZGVwZW5kcyBvbiBjbGFzc3BhdGggdmlzaWJpbGl0eSwKPiA+ID4+ID4gPiA+ID4+IHNwZWNpZmljYWxseQo+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPj4gPiA+ID4gPj4gPiAqIFJlZ3VsYXIgcGx1Z2luIGNsYXNzIHJlYWxtIGhhcyBhY2Nlc3MgdG8gcmVzb3VyY2VzIGZyb20KPiB0aGUKPiA+ID4+IHBsdWdpbgo+ID4gPj4gPiA+ID4gPj4gPiBpdHNlbGYsIGZyb20gKipleHBvcnRlZCoqIHBhY2thZ2VzIG9mIHRoZSBwcm9qZWN0IGJ1aWxkCj4gPiA+PiBleHRlbnNpb25zCj4gPiA+PiA+ID4gYW5kCj4gPiA+PiA+ID4gPiA+PiA+ICoqcHVibGljKiogTWF2ZW4gQ29yZSBwYWNrYWdlcwo+ID4gPj4gPiA+ID4gPj4gPiAqIEV4dGVuc2lvbnMgcGx1Z2luIGNsYXNzIHJlYWxtIGhhcyBhY2Nlc3MgdG8gdGhlIHJlc291cmNlcwo+ID4gPj4gZnJvbSB0aGUKPiA+ID4+ID4gPiA+ID4+ID4gZXh0ZW5zaW9ucyBwbHVnaW4gaXRzZWxmIGFuZCBmcm9tICoqcHVibGljKiogTWF2ZW4gQ29yZQo+ID4gPj4gcGFja2FnZXMKPiA+ID4+ID4gPiA+ID4+ID4gKiBQcm9qZWN0IGNsYXNzIHJlYWxtIGhhcyBhY2Nlc3MgdG8gY2xhc3NlcyBhbmQgcmVzb3VyY2VzCj4gPiA+PiA+ID4gKipleHBvcnRlZCoqCj4gPiA+PiA+ID4gPiA+PiA+IGJ5IHByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucyBhbmQgKipwdWJsaWMqKiBNYXZlbiBDb3JlCj4gPiA+PiBwYWNrYWdlcwo+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPj4gPiA+ID4gPj4gPiBJIHNlZSB0aHJlZSBwcm9ibGVtcyBoZXJlCj4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+PiA+ID4gPiA+PiA+ICogTWF2ZW4gYWRkcyBidWlsZCBzaW5nbGUtamFyIGA8ZXh0ZW5zaW9ucz5gIGVsZW1lbnRzCj4gPiA+PiBkaXJlY3RseQo+ID4gPj4gdG8KPiA+ID4+ID4gPiA+ID4+ID4gcHJvamVjdCBjbGFzcyByZWFsbSAqKmFuZCoqIGNyZWF0ZXMgc2VwYXJhdGUgZXh0ZW5zaW9ucwo+IGNsYXNzCj4gPiA+PiByZWFsbXMKPiA+ID4+ID4gPiA+ID4+IGZvcgo+ID4gPj4gPiA+ID4gPj4gPiB0aGVtLiBXaGljaCByZXN1bHRzIGluIGR1cGxpY2F0ZSBjbGFzc2VzL3Jlc291cmNlcyBsb2FkZWQKPiBieQo+ID4gPj4gdHdvCj4gPiA+PiA+ID4gPiA+PiA+IGNsYXNzbG9hZGVycyBhbmQgZXhwbGFpbnMgd2h5IHlvdSBzZWUgZXh0amFyMS9leHRqYXIyCj4gb3V0cHV0Cj4gPiA+PiAod2hpY2gKPiA+ID4+ID4gPiA+ID4+IHlvdQo+ID4gPj4gPiA+ID4gPj4gPiBzaG91bGRuJ3QgYWNjb3JkaW5nIHRvIHRoZSBleHBsYW5hdGlvbiBhYm92ZSkKPiA+ID4+ID4gPiA+ID4+ID4gKiBDbGFzc1JlYWxtIGRvZXMgbm90IGFsbG93IGZvcmVpZ24taW1wb3J0IG9mIHRoZSBzYW1lCj4gPiA+PiBwYWNrYWdlCj4gPiA+PiBmcm9tCj4gPiA+PiA+ID4gPiA+PiA+IG11bHRpcGxlIGNsYXNzbG9hZGVycy4gVGhpcyBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvIGxvYWQgdGhlCj4gPiA+PiBzYW1lCj4gPiA+PiA+ID4gPiA+PiA+IHJlc291cmNlIGZyb20gbXVsdGlwbGUgcGx1Z2lucy9leHRlbnNpb25zLgo+ID4gPj4gPiA+ID4gPj4gPiAqIEV4dGVuc2lvbnMgcGx1Z2lucyBjYW5ub3QgYWNjZXNzIHRoZWlyIG93biBwcml2YXRlIChpLmUuCj4gPiA+PiBub3QKPiA+ID4+ID4gPiA+ID4+IGV4cG9ydGVkKQo+ID4gPj4gPiA+ID4gPj4gPiByZXNvdXJjZXMgdmlhIFRDQ0wsIHRoaXMgaXMgY2hhbmdlIGluIGJlaGF2aW91ciBpbnRyb2R1Y2VkCj4gYnkKPiA+ID4+ID4gPiBtbmctNjIwOQo+ID4gPj4gPiA+ID4gPj4gPiBmaXgKPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4+ID4gPiA+ID4+ID4gSG9wZSB0aGlzIGhlbHBzCj4gPiA+PiA+ID4gPiA+Pgo+ID4gPj4gPiA+ID4gPj4KPiA+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPj4gPiA+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+ID4gPiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+ID4gPiA+Cj4gPiA+PiA+ID4gPgo+ID4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+PiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4gPiA+ID4KPiA+ID4+ID4gPgo+ID4gPj4gPiA+Cj4gPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+ID4gPgo+ID4gPj4gPiA+IC0tCj4gPiA+PiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4gPj4KPiA+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+Cj4gPiA+PiAtLQo+ID4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+Cj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKLS0wMDFhMTE0MDNkOTIzM2Q2YmYwNTU5ZjFhNDBhLS0KCgpGcm9tIGRldi1yZXR1cm4tMTI0NTU5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBOb3YgMjEgMTM6MTA6NTcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTU5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEI3NDRGMTc4OEIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAyMSBOb3YgMjAxNyAxMzoxMDo1NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ2MjU2IGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIE5vdiAyMDE3IDEzOjEwOjU3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0NjE4NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBOb3YgMjAxNyAxMzoxMDo1NyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ2MTc0IGludm9rZWQgYnkgdWlkIDk5KTsgMjEgTm92IDIwMTcgMTM6MTA6NTcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDIxIE5vdiAyMDE3IDEzOjEwOjU3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNDc1RjkxQTAxMDAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDIxIE5vdiAyMDE3IDEzOjEwOjU2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuNDAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjQwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEtSbmFYVThPVmlCOCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVR1ZSwgMjEgTm92IDIwMTcgMTM6MTA6NTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13cjAtZjE4MC5nb29nbGUuY29tIChtYWlsLXdyMC1mMTgwLmdvb2dsZS5jb20gWzIwOS44NS4xMjguMTgwXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDA1Q0NENUZERDQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDIxIE5vdiAyMDE3IDEzOjEwOjU1ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdyMC1mMTgwLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHoxNHNvMTEyNDc4Mjd3cmIuOAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDIxIE5vdiAyMDE3IDA1OjEwOjU1IC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1XcWx1c25TQ3RQeHZsTjhGN29MZjd1dEJvK29PWkQzbmJoeUljdmhXTkpVPTsKICAgICAgICBiPWFrK1p5ekg2dzdlZm1DZXVqQUVXRzJDSEFwVEhvbkRDUCtBQUhwSm5ZdFFCc2RDZCtFZ1I1dWRvR2IzSkx4alVJZAogICAgICAgICBySU12eU1zWHpsR1R5RjhkT1lyVllCQlJoMmRFZHFwNjlyckM4VGtSb1NhS2gxSVA2VVFZbTZqOVV4OGRxSm0rZFBBNQogICAgICAgICBmcWpkc2pIQ3BZWXhBSFB0d3ZrRFF3Y0RncXFFUUR3b3pwVkdLZXVuNXNJRGY2ckJLWUl5QVZoNVBXdkZxZjN2eC9HegogICAgICAgICBONjAzTUVjRnRrN0dicW5xNGQ3U1dTWDlZaGtDbUNua3BXNWJGaHRtaFJMWEdlN01nYTRlQnFXTSt2KzY0RXNpUzFNMwogICAgICAgICBVNUNtend1eU9iallxd3FqVEkvcUo1aldDK3d6WVlVaVBSUFIvY1hINEhWbFNMbkMrQUNMaitRZ3VyNEt4SHlnMjJMYwogICAgICAgICBYWEtRPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1XcWx1c25TQ3RQeHZsTjhGN29MZjd1dEJvK29PWkQzbmJoeUljdmhXTkpVPTsKICAgICAgICBiPW8xS21EaXpzUC82VHpiaE5pU29SM1F3L0U3OUpxMFhZR05xUmhIOEVwT2hZYWRKTjlsU3RMZVc2Y1EvdmE4bUJjNQogICAgICAgICBKUDZsZ3NhelRHSUVwcC80UjBPKzF4TDZUUkFaOGExM2RnTHBSVnludWRhMWhlb0hpWXMrdzVqM2NKc2JnbTdXcnBadwogICAgICAgICBjUFViRFMzc05lems2L1dHWUowQkIzWlFoYUV6V1RJajcyczhjL0ZtNEU3Yklxc1NOL0M4anJibThVSFJUaDRGb2hoYgogICAgICAgICBVZG9mbWpOVDdUUGhuQlFSNUd2SVAzTmFFNG55bnZpaWhRVkxrd1Rya1dIaEJEMVdqcXc2ZW9jTWVpV1ZveFdOWUZaaQogICAgICAgICArSzBwbUxVU2Q4c3VhSitpNTE4NGQxTDlrMEhkeEtIaW9oOFBnYjl0cWRoTFg5VHc5MTFMNjBXeDVXWTN6c1o1MmMrbgogICAgICAgICA2ZFB3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg2bDcycGJmTlg1WFR1UmZESTlWcWgrQWdRdWgwVzZmdTdybEZjTUdIcmhSUkVlUVlpcQoJZTVNZWJxK1BGL0NUYmgzcGgwbXBRVnJmWUJzZW5YblFXdTVXTHpJWndsbjAKWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TWF0UUZjWEtNWDFjZWRzYlYrbnVpUHRnQWIvOEVhK0Q2TjJsK2VoYTNzTWtsN1NOWE9hZXZLV1FEdXZRN0s5RDNyY3RpOGpzVU00WXpMbm1XdlRGVTQ9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xNTYuMTQ2IHdpdGggU01UUCBpZCBkMThtcjU1NDU4ODN3cmUuMTYxLjE1MTEyNjk4NTQ0MTg7CiBUdWUsIDIxIE5vdiAyMDE3IDA1OjEwOjU0IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yMjMuMTczLjIzNSB3aXRoIEhUVFA7IFR1ZSwgMjEgTm92IDIwMTcgMDU6MTA6NTMgLTA4MDAgKFBTVCkKRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyMSBOb3YgMjAxNyAxMzoxMDo1MyArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXp2MG45VjA9amc0U0FjUEEwK01uRGtGZ0NGOFJ2SkN6Mkp5NlkrdD1GREZnQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBGWUkgSU5GUkEtMTU1MjQgY3JlYXRlZCBmb3IgdGhlIGJldHRlciBKZW5raW5zIFVYClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9ImY0MDMwNDM5YmIwMGQ1MjA3YjA1NWU3ZGVlOGMiCgotLWY0MDMwNDM5YmIwMGQ1MjA3YjA1NWU3ZGVlOGMKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9JTkZSQS0xNTUyNAoKSGVydj1DMz1BOSBpdCBpcyBuZWFybHkgdGltZSB0byBwYXJ0eSEKCi0tZjQwMzA0MzliYjAwZDUyMDdiMDU1ZTdkZWU4Yy0tCgpGcm9tIGRldi1yZXR1cm4tMTI0Nzg4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBEZWMgMTggMDk6MDg6MTQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0Nzg4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDAwQkYyMTdDQzQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxOCBEZWMgMjAxNyAwOTowODoxNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDMwNzE0IGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IERlYyAyMDE3IDA5OjA4OjEzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMDYyNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBEZWMgMjAxNyAwOTowODoxMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMwNjEzIGludm9rZWQgYnkgdWlkIDk5KTsgMTggRGVjIDIwMTcgMDk6MDg6MTMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDE4IERlYyAyMDE3IDA5OjA4OjEzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQzcyMzgxODA3MEYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE4IERlYyAyMDE3IDA5OjA4OjEyICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuOTAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjkwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBvVlNxM3JDeU9WMlkgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sIDE4IERlYyAyMDE3IDA5OjA4OjA5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd3IwLWYxNzEuZ29vZ2xlLmNvbSAobWFpbC13cjAtZjE3MS5nb29nbGUuY29tIFsyMDkuODUuMTI4LjE3MV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAzMDQyRjVGQjU0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxOCBEZWMgMjAxNyAwOTowODowOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13cjAtZjE3MS5nb29nbGUuY29tIHdpdGggU01UUCBpZCB1MTlzbzY5NjUxMTB3cmMuMwogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE4IERlYyAyMDE3IDAxOjA4OjA5IC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUsvWlU4d2Zjb1VOMUZVdGthMDlzUHNJbDZwYm4xQko1eE15bFlVZnAxRU09OwogICAgICAgIGI9VzhZNHBpN1EvUit5ditGbUF2TFFDZnVLQy9jcUdmTmFOZ3FIKzRLclFseE5NL3lETFJoV250cHozVERvdGIwcElJCiAgICAgICAgIGNmUnVzNkxvQTRydXZmRGs3TUo2VFk2eTBRSWFQejJ3VDEwOFRIN1RISU55L3h2bDZCalhmT0JSNmlkUzRwWUZHbEZUCiAgICAgICAgIG0vZ2lYNUc1MDZNZDM2WG5QNit2dFM4WUJITGpEbUJNSWRrbkRtYWZ0NWhxS2tJRWZGUGF1bnJ3U3dxcVlRYjRkQXZCCiAgICAgICAgIEx5MXFWWVE0dmMzOWx4dUhiaGU2QjhSVlNzYm53RlNkSmhGQTBjeThrTmNrL1pIWFo3YzE1a054U250Q2NZWEE2bHhLCiAgICAgICAgIEpUeCs5dkNWYUZhNDdHYXBvcS82UTZmcWVrcDFON3dLYThEQmZyY0xlVng1Nzl4VDl5Q3k4TldwbG9ZU0NTRXFLY2grCiAgICAgICAgIFNGR1E9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUsvWlU4d2Zjb1VOMUZVdGthMDlzUHNJbDZwYm4xQko1eE15bFlVZnAxRU09OwogICAgICAgIGI9a1F5Sktmdzkvb2h4NVd1ZWNCV1o2cnJQZ0s4c0ZxUjNMVCtURHJKc3FlNmgwWWNWdGRZY0NudkttVUZvd0Nyc3o3CiAgICAgICAgIHY5VG9XTXl4TzFWTG9FZ1EyNG1KbGFMd1lwTEY2bG1mZ3dRL3VvVS9aZnIybzkzNU8zTVJZZ2xwY2JoVWlDdHozckRvCiAgICAgICAgIDkxdzVkRkdOaXF1aVUxRTd4K3VndDZKVzArSEp2S0RoaXRBaWEzZk1lSWVya1ptL3BOcXpKTWgrUHNjRXl2ZlNEaitKCiAgICAgICAgICs1cCtGQ0FsWWR4RlRNMFN1MVFtYmFTTSsyQUcrU2kvemFUelI0dklEam9YdTRiVDJWa25BNmRtZjR2NW1vWkllcEZQCiAgICAgICAgIGhEN2xsb3BYSHdLdnh6RkZjZzRPQ1NGaXVObFhjQnZHMXV0cHp3Z3BuOVlEbCthb0N4SXkyR0VQazB0RlVFMXFNRE9FCiAgICAgICAgIGY2Umc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFLR0IzbUwyeFVDNEM3U1BZQUQzTUNyMDJadmpkaTJVdXNHbUxJekM3VGpuVmpRZW5IK3BibjVGCglWWGoxSWF3VUdGWEFTT2NKVHlrelo2N3NLNUxlUkhSVFRqeWtacTAwZnc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUNKZkJvdGZ6dmFmVU52MC9ucDRTUm94eFMyQjFWV2FlcTVhek5Wa25IYWFpR1V0Y0FwcW9lWnJpRUpBSUpCbml0bkVjNGw4Y0htZnVnc2s0NE1tekF3a3ZROD0KWC1SZWNlaXZlZDogYnkgMTAuMjIzLjIwMC42NSB3aXRoIFNNVFAgaWQgZTFtcjgxMDU4NDh3cmguMTMzLjE1MTM1ODgwODc4OTE7CiBNb24sIDE4IERlYyAyMDE3IDAxOjA4OjA3IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yMjMuMTc0LjgyIHdpdGggSFRUUDsgTW9uLCAxOCBEZWMgMjAxNyAwMTowODowNyAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPENBK25Qbk15b2dlTWZKQzJKS2FUM0F4QnFCQVhXdWV1eW1GN0hhb3FNaDN2UDdPYXQ0QUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPDE5MDA1NTguR0Z4OVFsZmFFMkBnaWdhPiA8Q0ErblBuTXkrLU52UGttcHU0MmdNejl3UW0rTWJ4cT05UjZ1S2F0MUJGa1lCWmZNOE5nQG1haWwuZ21haWwuY29tPgogPDE1ODEzNjUuc2I4ZzAwS01ZaUBnaWdhPiA8MTE0Njk4MzQucG5tZFoyTDR6OEBnaWdhPiA8Q0ErblBuTXdjODk9RzhxSmVvSFpmWGhRN0QzNXZPLTlILUxuVS1mQllzMllVMjJhelJnQG1haWwuZ21haWwuY29tPgogPENBK25Qbk15b2dlTWZKQzJKS2FUM0F4QnFCQVhXdWV1eW1GN0hhb3FNaDN2UDdPYXQ0QUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxOCBEZWMgMjAxNyAwOTowODowNyArMDAwMApNZXNzYWdlLUlEOiA8Q0ErblBuTXp3R2FVQUJCcVZnTXh0X3FHT09tRnVOPVY2bkZ3cTdRVTNuNmJqZ0JNRmFRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogR2l0IG1pZ3JhdGlvbiBuZXh0IHN0ZXBzClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjA4OWUwODI5YzhiMDUwYWQwODA1NjA5OWIwNjAiCgotLTA4OWUwODI5YzhiMDUwYWQwODA1NjA5OWIwNjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKVXBncmFkZSBzY2hlZHVsZWQgZm9yIERlYyAyNHRoCgpPbiAxNyBEZWNlbWJlciAyMDE3IGF0IDIwOjIyLCBTdGVwaGVuIENvbm5vbGx5IDwKc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cgo+Cj4KPiBPbiAxNSBEZWNlbWJlciAyMDE3IGF0IDA4OjA1LCBTdGVwaGVuIENvbm5vbGx5IDwKPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPgo+Pgo+PiBPbiBGcmkgMTUgRGVjIDIwMTcgYXQgMDY6MzQsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiA9Cndyb3RlOgo+Pgo+Pj4gYW5vdGhlciBzdHJhbmdlIHRoaW5nIFsxXQo+Pj4gLSB3aGF0IGFyZSB0aGUgbWFueSAiT3BlbiB0YXNrcyI/Cj4+Cj4+Cj4+IEJ1ZyBpbiB3aXRoTWF2ZW4gcGlwZWxpbmUgd3JhcHBlciB0aGF0IEN5cmlsbGUgaGFzIGZpeGVkIGluIDMuMC42IChuZWVkCj4+IHRvIHdhaXQgZm9yIGluZnJhIHRvIHVwZ3JhZGUgdGhhdCBwbHVnaW4gYW5kIHJlc3RhcnQgSmVua2lucykKPj4KPgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvSU5GUkEtMTU2ODEKPgo+Cj4+Cj4+PiAtIHdoeSBhcmUgY2hhbmdlcyB3cml0dGVuIDUgdGltZXM/Cj4+Cj4+Cj4+IFRoZXJlIGFyZSA1IGNoZWNrb3V0cywgdGhlIGdpdCBwbHVnaW4gaXMgbm90IGdyZWF0IGF0IGRlLWR1cGxpY2F0aW9uLiBJCj4+IG1pZ2h0IGhhdmUgdG8gdHJ5IGFuZCBmaXggaXQgbXlzZWxmIGFzIE1hcmsgV2FpdGUgaXMgYnVzeSB3aXRoIG90aGVyIGlzcz0KdWVzLgo+Pgo+Pgo+Pj4KPj4+IFJlZ2FyZHMKPj4+Cj4+PiBIZXJ2PUMzPUE5Cj4+Pgo+Pj4gWzFdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tYm94Lwo+Pj4gam9iL21hdmVuLXNpdGUtcGx1Z2luL2pvYi9tYXN0ZXIvY2hhbmdlcwo+Pj4KPj4+IExlIG1lcmNyZWRpIDEzIGQ9QzM9QTljZW1icmUgMjAxNywgMDU6NTg6MjggQ0VUIEhlcnY9QzM9QTkgQk9VVEVNWSBhID0KPUMzPUE5Y3JpdCA6Cj4+PiA+IHRoYW5rIHlvdTogb25lIGxlc3MgaXNzdWUKPj4+ID4KPj4+ID4gYSBuZXcgZmluZGluZzogdGhlIEppcmEgbWVzc2FnZSBwb2ludHMgdG8gdGhlIEplbmtpbnMgYnVpbGQsIHdoeSBub3QKPj4+ID4gQnV0IGl0IGRvZXMgbm90IHBvaW50IHRvIEdpdCBjb21taXQgWzFdCj4+PiA+Cj4+PiA+IHRoZSBsaW5rIHRvIHRoZSBnaXQgY29tbWl0IGlzIHZlcnkgdXNlZnVsIHRvIHRyYWNrIGhvdyB0aGUgZml4IHdhcwo+Pj4gZG9uZSwgYW5kCj4+PiA+IHJlbWFpbnMgdmFsaWQgb24gYSBsb25nIHBlcmlvZCAod2hpY2ggaXMgbm90IHRoZSBjYXNlIG9mIHRoZSBKZW5raW5zCj4+PiBidWlsZCkKPj4+ID4KPj4+ID4gSXMgaXQgcG9zc2libGUgdG8gaGF2ZSB0aGlzIGluIG91ciBzdGFuZGFyZCBidWlsZCwgcGxlYXNlPwo+Pj4gPgo+Pj4gPiBSZWdhcmRzLAo+Pj4gPgo+Pj4gPiBIZXJ2PUMzPUE5Cj4+PiA+Cj4+PiA+IFsxXSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0RPWElBU0lURVRPT0xTLTE4Mgo+Pj4gPgo+Pj4gPiBMZSBsdW5kaSAxMSBkPUMzPUE5Y2VtYnJlIDIwMTcsIDIxOjI5OjE1IENFVCBTdGVwaGVuIENvbm5vbGx5IGEgPUMzPQo9QTljcml0IDoKPj4+ID4gPiBPbiBTdW4gMTAgRGVjIDIwMTcgYXQgMDk6NTksIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlPQouZnI+Cj4+PiB3cm90ZToKPj4+ID4gPiA+IGhlcmUgaXMgYSBsaXN0IG9mIHN0cmFuZ2UgaXNzdWVzIGluIENJIGpvYnM6Cj4+PiA+ID4gPgo+Pj4gPiA+ID4gLSBEb3hpYSBTaXRldG9vbHMgaXMgZmFpbGluZyBhdCBjaGVja291dCBbMV0KPj4+ID4gPiA+Cj4+PiA+ID4gPiAtIE1hdmVuIGNvcmUgYnJhbmNoZXMgZmFpbCBpbiBtYXZlbi13aXAgWzJdIHdoaWxlIHRoZSBtdWx0aS1icmFuYz0KaAo+Pj4gZG9lcwo+Pj4gPiA+ID4gbm90Cj4+PiA+ID4gPiBmYWlsIFszXTogQUZBSUssIHNhbWUgSmVua2lucyBmaWxlcyBhcmUgdXNlZCwgaXNuJ3QgaXQ/Cj4+PiA+ID4KPj4+ID4gPiBVYnVudHUtNCB3YXMgaGF2aW5nIGlzc3Vlcwo+Pj4gPiA+Cj4+PiA+ID4gPiBSZWdhcmRzLAo+Pj4gPiA+ID4KPj4+ID4gPiA+IEhlcnY9QzM9QTkKPj4+ID4gPiA+Cj4+PiA+ID4gPiBbMV0KPj4+ID4gPiA+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tYm94Lwo+Pj4gam9iL21hdmVuLWRvCj4+PiA+ID4gPiB4aQo+Pj4gPiA+ID4gYS1zaXRldG9vbHMvam9iL21hc3Rlci80L2NvbnNvbGUKPj4+ID4gPiA+Cj4+PiA+ID4gPiBbMl0KPj4+ID4gPiA+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4td2lwLwo+Pj4gam9iL21hdmVuLwo+Pj4gPiA+ID4KPj4+ID4gPiA+IFszXQo+Pj4gPiA+ID4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi0zLngtCj4+PiBqZW5raW5zZmlsZS8KPj4+ID4gPiA+Cj4+PiA+ID4gPiBMZSBkaW1hbmNoZSAxMCBkPUMzPUE5Y2VtYnJlIDIwMTcsIDA2OjI5OjIwIENFVCBIZXJ2PUMzPUE5IEJPVVRFTT0KWSBhID1DMz1BOWNyaXQgOgo+Pj4gPiA+ID4gPiB5ZXMsIGFuZCA4MyBtYXZlbi1ib3ggQ0kgam9icyBbMV0KPj4+ID4gPiA+ID4KPj4+ID4gPiA+ID4gc29tZSBDSSBmYWlsdXJlcyBhcmUgbm90IHJlYWxseSBleHBlY3RlZCwgYnV0IGluIGdlbmVyYWwsIHRoZQo+Pj4gcmVzdWx0Cj4+PiA+ID4gPiA+IGlzCj4+PiA+ID4gPgo+Pj4gPiA+ID4gZ29vZAo+Pj4gPiA+ID4KPj4+ID4gPiA+ID4gaXQncyB0aW1lIGZvciBldmVyeWJvZHkgdG8gY2hlY2sgaGlzIGZhdm9yaXRlIHBsdWdpbiBvciBzaGFyZWQKPj4+ID4gPiA+ID4gY29tcG9uZW50Cj4+PiA+ID4gPgo+Pj4gPiA+ID4gYW5kCj4+PiA+ID4gPgo+Pj4gPiA+ID4gPiBkbyB0aGUgbGl0dGxlIGZpeGVzOiB0aGUgZ2xvYmFsIG1pZ3JhdGlvbiBpcyBkb25lCj4+PiA+ID4gPiA+Cj4+PiA+ID4gPiA+IGFuZCBpdCdzIHRpbWUgYWxzbyB0byBzdGFydCByZXZpZXdpbmcgUFJzIGFuZCBtZXJnaW5nOiB0aGlzIHdhcwo+Pj4gdGhlCj4+PiA+ID4gPiA+IGJpZwo+Pj4gPiA+ID4gPiBvYmplY3RpdmUgd2l0aCBHaXQgbWlncmF0aW9uCj4+PiA+ID4gPiA+Cj4+PiA+ID4gPiA+IFJlZ2FyZHMsCj4+PiA+ID4gPiA+Cj4+PiA+ID4gPiA+IEhlcnY9QzM9QTkKPj4+ID4gPiA+ID4KPj4+ID4gPiA+ID4gWzFdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tYm94PQovCj4+PiA+ID4gPiA+Cj4+PiA+ID4gPiA+IExlIHNhbWVkaSA5IGQ9QzM9QTljZW1icmUgMjAxNywgMTc6MDY6MDkgQ0VUIFN0ZXBoZW4gQ29ubm9sbHkgYT0KID1DMz1BOWNyaXQKPj4+IDoKPj4+ID4gPiA+ID4gPiBJIHNlZSB3ZSBoYXZlIGEgbGFyZ2UgbnVtYmVyIG9mIHJlcG9zIG5vdyBvbiBnaXRib3ggOy0pCj4+PiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiBPbiBUaHUgNyBEZWMgMjAxNyBhdCAwNzowMCwgSGVydj1DMz1BOSBCT1VURU1ZIDwKPj4+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4+ID4gPiA+Cj4+PiA+ID4gPiB3cm90ZToKPj4+ID4gPiA+ID4gPiA+IG9rLCBJIGRpZG4ndCB1cGRhdGUgbXkgcmVwbyBjbG9uZTogbm93IHRoZSBydW4taXRzIHByb2ZpbGUgPQppcwo+Pj4gPiA+ID4KPj4+ID4gPiA+IGFjdGl2YXRlZAo+Pj4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+IHRoZW4gdGhlIHBsYW4gc2hvdWxkIGp1c3QgY29uZmlybSAiaXQgd29ya3MhIiA6KQo+Pj4gPiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+IGFuZCBmaW5kIHdoaWNoIGpvYnMgYXJlIHNwZWNpYWwsIGxpa2UgbWF2ZW4tZGlzdC10b29sICh3aGljPQpoCj4+PiBoYXMKPj4+ID4gPiA+ID4gPiA+IHRvCj4+PiA+ID4gPgo+Pj4gPiA+ID4gYmUKPj4+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiBzY2hlZHVsZWQgZGFpbHkgaW5zdGVhZCBvZiBjb2RlIGNoYW5nZSwgYW5kIG9uZSBwbGF0Zm9ybQo+Pj4gb25seSkKPj4+ID4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiBSZWdhcmRzLAo+Pj4gPiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+IEhlcnY9QzM9QTkKPj4+ID4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiBMZSBtZXJjcmVkaSA2IGQ9QzM9QTljZW1icmUgMjAxNywgMjM6NTg6NDUgQ0VUIFN0ZXBoZW4gQ29ubj0Kb2xseSBhCj4+PiA9QzM9QTljcml0Cj4+PiA6Cj4+PiA+ID4gPiA+ID4gPiA+IE9uIFdlZCA2IERlYyAyMDE3IGF0IDIyOjM4LCBIZXJ2PUMzPUE5IEJPVVRFTVkKPj4+ID4gPiA+ID4gPiA+ID4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4+ID4gPiA+Cj4+PiA+ID4gPiB3cm90ZToKPj4+ID4gPiA+ID4gPiA+ID4gPiBOb3cgdGhhdCB3ZSBoYXZlIDIgQVNGIE9yZ2FuaXphdGlvbiBKZW5raW5zIGpvYnMgKG9uZSBmPQpvcgo+Pj4gPiA+ID4gPiA+ID4gPiA+IGdpdGJveAo+Pj4gPiA+ID4KPj4+ID4gPiA+IFsxXQo+Pj4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+IGFuZAo+Pj4gPiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4gPiBvbmUKPj4+ID4gPiA+ID4gPiA+ID4gPiBmb3IgZ2l0LXdpcDogdGhhbmsgeW91IFN0ZXBoZW4pIGFuZCB0aGF0IGl0IGxvb2tzIHF1aXRlCj4+PiA+ID4gPgo+Pj4gPiA+ID4gc3VjY2Vzc2Z1bCwKPj4+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiBsZXQncwo+Pj4gPiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4gPiBwbGFuCj4+PiA+ID4gPiA+ID4gPiA+ID4gdGhlIG5leHQgc3RlcHMuCj4+PiA+ID4gPiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4gPiBIZXJlIGlzIHdoYXQgSSBzZWU6Cj4+PiA+ID4gPiA+ID4gPiA+ID4gMS4gcmVtb3ZhbCBvZiBoYW5kLWRlZmluZWQgSmVua2lucyBqb2JzIHRoYXQgYXJlIG5vdwo+Pj4gPiA+ID4gPiA+ID4gPiA+IGR1cGxpY2F0ZXMKPj4+ID4gPiA+ID4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPiA+IDIuIHByZXBhcmF0aW9uIG9mIHRoZSA2MCBuZXcgZW1wdHkgZ2l0IHJlcG9zIGZvciBzaGFyZWQ9CiAmCj4+PiA+ID4gPiA+ID4gPiA+ID4gcGx1Z2lucwo+Pj4gPiA+ID4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+ID4gMy4gbWlncmF0aW9uIG9mIHRoZSAxIHNoYXJlZCBjb21wb25lbnQgYW5kIDEgcGx1Z2luIHVzaT0KbmcKPj4+ID4gPiA+ID4gPiA+ID4gPiBtaWdyYXRlLSouc2gKPj4+ID4gPiA+ID4gPiA+ID4gPiBzY3JpcHRzCj4+PiA+ID4gPiA+ID4gPiA+ID4gWzNdIHRvIHRlc3QgYW5kIGV2ZW50dWFsbHkgcmV3b3JrIHRoZSBKZW5raW5zZmlsZSAoSQo+Pj4gc3VwcG9zZQo+Pj4gPiA+ID4gPiA+ID4gPiA+IGl0Cj4+PiA+ID4gPgo+Pj4gPiA+ID4gd2lsbAo+Pj4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4gPiByZXF1aXJlCj4+PiA+ID4gPiA+ID4gPiA+ID4gc29tZSBsaXR0bGUgY2hhbmdlLCB0byBydW4gYWRkICJydW4taXRzIiBwcm9maWxlKQo+Pj4gPiA+ID4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPiBBcyBmYXIgYXMgSSByZWNhbGwsIEkgYWRkZWQgLVArcnVuLWl0cyBhbHJlYWR5Cj4+PiA+ID4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+IEZvciB0aGUgcGx1Z2luLCBJJ2QgbGlrZSB0byBkbyB0aGUgam9iIGZvcgo+Pj4gbWF2ZW4tc2l0ZS1wbHVnaW4sCj4+PiA+ID4gPgo+Pj4gPiA+ID4gc2luY2Ugd2UKPj4+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+ID4gZXhwZWN0Cj4+PiA+ID4gPiA+ID4gPiA+ID4gdG8gcmVsZWFzZSBpdCBzb29uLgo+Pj4gPiA+ID4gPiA+ID4gPiA+IEZvciB0aGUgc2hhcmVkIGNvbXBvbmVudCwgSSBkb24ndCBrbm93IGlmIHRoZXJlIGlzIGEgYmU9CnN0Cj4+PiA+ID4gPgo+Pj4gPiA+ID4gY2FuZGlkYXRlCj4+PiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPiA+IDQuIG9uY2UgcHJldmlvdXMgc3RlcCBpcyBvaywgZG8gdGhlIGZ1bGwgbWlncmF0aW9uOiBpZgo+Pj4gdGhlcmUKPj4+ID4gPiA+ID4gPiA+ID4gPiBhcmUKPj4+ID4gPiA+ID4gPiA+ID4gPiB2b2x1bnRlZXJzCj4+PiA+ID4gPiA+ID4gPiA+ID4gZm9yIGhlbHBpbmcsIHRoYXQgd291bGQgYmUgZ3JlYXQsIHNpbmNlIHBvcHVsYXRpbmcgNjAgZz0KaXQKPj4+ID4gPiA+ID4gPiA+ID4gPiByZXBvcwo+Pj4gPiA+ID4gPiA+ID4gPiA+IHdvbid0Cj4+PiA+ID4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gYmUKPj4+ID4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+ID4gcmVhbGx5IGZ1bi4uLgo+Pj4gPiA+ID4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+ID4gQW5kIGFzIHBhcnQgb2YgNjAgZW1wdHkgZ2l0IHJlcG9zIGNyZWF0aW9uLCBJIHByb3Bvc2UgdD0Kbwo+Pj4gPiA+ID4gPiA+ID4gPiA+IG1pZ3JhdGUKPj4+ID4gPiA+Cj4+PiA+ID4gPiB0aGUKPj4+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+ID4gIkdvb2dsZQo+Pj4gPiA+ID4gPiA+ID4gPiA+IHJlcG8gbWFuaWZlc3QiIG1hdmVuLWFnZ3JlZ2F0b3IgWzRdIHRvIEFTRjogbXkgcGVyc29uYWwKPj4+IHVzZQo+Pj4gPiA+ID4gPiA+ID4gPiA+IGhhcwo+Pj4gPiA+ID4KPj4+ID4gPiA+IGJlZW4KPj4+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiBxdWl0ZQo+Pj4gPiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4gPiBzdWNjZXNzZnVsLCBJIGhvcGUgaXQncyB0aGUgc2FtZSBmb3Igb3RoZXJzLiBQZXJoYXBzCj4+PiB0aGVyZSBhcmUKPj4+ID4gPiA+ID4gPiA+ID4gPiBiZXR0ZXIKPj4+ID4gPiA+ID4gPiA+ID4gPiBpZGVhcwo+Pj4gPiA+ID4gPiA+ID4gPiA+IGZvciBpdHMgbmFtZTogbWF2ZW4tYWdncmVnYXRvcgo+Pj4gPiA+ID4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+ID4gQW55IG90aGVyIGlkZWE/IGFueSBvYmplY3Rpb24/Cj4+PiA+ID4gPiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4gPiBSZWdhcmRzLAo+Pj4gPiA+ID4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+ID4gSGVydj1DMz1BOQo+Pj4gPiA+ID4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+ID4gWzFdCj4+PiA+ID4gPiA+ID4gPiA+ID4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3Cj4+PiAvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC8KPj4+ID4gPiA+ID4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPiA+IFsyXQo+Pj4gPiA+ID4gPiA+ID4gPiA+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldwo+Pj4gL00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi13aXAvCj4+PiA+ID4gPiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4gPiBbM10KPj4+ID4gPiA+Cj4+PiA+ID4gPiBodHRwczovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy9tYXZlbi9zYW5kYm94L3RydW5rL3NjcmlwdHMvZ2l0Lwo+Pj4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4gPiBbNF0gaHR0cHM6Ly9naXRodWIuY29tL2hib3V0ZW15L21hdmVuLWFnZ3JlZ2F0b3IKPj4+ID4gPiA+Cj4+PiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+IC0tLS0tLS0tCj4+PiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPiA+IC0KPj4+ID4gPiA+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yPQpnCj4+PiA+ID4gPiA+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDoKPj4+IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+ID4gPiA+ID4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPiA+IC0tCj4+PiA+ID4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+Pj4gPiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotCj4+PiAtLS0tLS0KPj4+ID4gPiA+ID4gPiA+IC0tCj4+PiA+ID4gPiA+ID4gPiAtCj4+PiA+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gPiA+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gPiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+IC0tCj4+PiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiBTZW50IGZyb20gbXkgcGhvbmUKPj4+ID4gPiA+ID4KPj4+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+PiAtLS0tLS0tLS0KPj4+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gPiA+ID4KPj4+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gLS0tLS0tLS0tCj4+PiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gPiA+ID4KPj4+ID4gPiA+IC0tCj4+PiA+ID4KPj4+ID4gPiBTZW50IGZyb20gbXkgcGhvbmUKPj4+ID4KPj4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+PiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+Cj4+Pgo+Pj4KPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+Cj4+PiAtLQo+PiBTZW50IGZyb20gbXkgcGhvbmUKPj4KPgo+CgotLTA4OWUwODI5YzhiMDUwYWQwODA1NjA5OWIwNjAtLQoKRnJvbSBkZXYtcmV0dXJuLTEyMzk2NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gU2VwIDExIDA5OjQxOjI0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzk2NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyNjZEQzE5MzgxCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMDk6NDE6MjQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3NTEyOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAwOTo0MToyMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzUwNDUgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgU2VwIDIwMTcgMDk6NDE6MjIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NTAzMyBpbnZva2VkIGJ5IHVpZCA5OSk7IDExIFNlcCAyMDE3IDA5OjQxOjIyIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAxMSBTZXAgMjAxNyAwOTo0MToyMiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDJDN0IyRDVENDYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDA5OjQxOjIyICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuNDAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjQwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgMVhTbndqeHlpVVlVIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAxMSBTZXAgMjAxNyAwOTo0MToyMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXVhMC1mMTc2Lmdvb2dsZS5jb20gKG1haWwtdWEwLWYxNzYuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNy4xNzZdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQkE4OEM1RkMxMgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMDk6NDE6MTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdWEwLWYxNzYuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgZzQ3c28xMDcwNDkxNnVhZC4wCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMDI6NDE6MTkgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9OHQzeHlBeWtGUnFmYzErMWs1UG1jbUsyYnU2U0xCOG9FWXpnU3lyUFRsdz07CiAgICAgICAgYj12VG9nb1NRV1AycGRESG9QcGdjMUNoQlMyek9zeVl2ZUdhWTNHR0ozM0RIZDJHUWlYbk1sOC9zWUtmTmw1SHRveHYKICAgICAgICAgcnhadmZRbitjbkFQaWxFRkZTOXFpWGJrWTNyQmZmS0F2ak1XVFQ3T0VZcTJ6QVVaVDAyWlNiWDRwQXdaMUNCQXJuWDcKICAgICAgICAgcW1iLzlWMURST013cTAxbE5KK0FiaHRoYTBvL200VFRDZ0l0MXJ3WEQ0UnVrOXBBYVJVSHFrZ0tqelgrM3J3eXdEcSsKICAgICAgICAgc0J6aUdhWjZBUHR0UC8zQ0I5a2Q0dXhTQUEwSjdIMUJRNmxCS3U1VVNHckJZR3IzRk42YW5qbGxQbjN1MjJLNGdlbmQKICAgICAgICAgdUtJVENMZ0UxaEt3UFRHZmYyUC9tMVVQNHpNUGFYSWhPeDVPMHBvcyt2Qk0rOEk4Z3VERDdmVzQ3YVk1WW9XSGEvRGMKICAgICAgICAgZ0NSUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9OHQzeHlBeWtGUnFmYzErMWs1UG1jbUsyYnU2U0xCOG9FWXpnU3lyUFRsdz07CiAgICAgICAgYj1VYk54ZUxUcWE3RlFRRGo2ays2ZkI3VmpOMXQ2NHM4SStEUERJbkFkZGhYTWJqVTBGbVlCRjRRd3dBRTVweWtHTysKICAgICAgICAgd2c5alJpWUtIaDc4NFRaTVhsNHpOSVh2bVpkQ3duSmRIOHFSeldBc0pBSDg1ZGZGVXU2UFo1ZlZKNVVQVk5vQkk2VmwKICAgICAgICAgcDR6TVNlM2hJbFIwN0NNVUNnN2VsY3o3U3FqSEVOQXowNTZOZmZVcW15SXlvMHp4VlFOeFlpNkVvTzhvNmF2ZERlRXgKICAgICAgICAgc3A2Z3puUmdvK05DRkQvU3YyOEp0Rlo3L001RmZ1WDYxUDJtWnNnVEVZOTlZNGV4QzRHN3FIbFdXN0h1UnAxdk1yeXUKICAgICAgICAgWWVGdmlheG1vMmtDRmRaam4ydUgrZ3lLRTVmUkVRV3BkdFhuMU1oeE1IL2phMGdWNnBNNjJMMGJlaU15MHBKY0tUVUkKICAgICAgICAgNnB0UT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVaVVmM0JOWjFYRmxySGRIay9aK1pKTVo2dlprNkZwRmw3SHFKa0J5dnpRR2hCL3U3a1YKCTFLdEJNQjdpdWVmK0E2bmQrZGlsa2QvL3preU5jMkxrbXZRPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQURLQ05iNXNnVUUxOW9DU01NbmhVKy8reXNLNXM0R0Q3MUJNUC9GR29jWk55RjRvVVB0RmNoMUpkODBWZ21YcVd6YmV0U3Z0K05ITXN0WDhDNVRXemN4WW9QWT0KWC1SZWNlaXZlZDogYnkgMTAuMTc2Ljg0LjE0OCB3aXRoIFNNVFAgaWQgcDIwbXI4OTIyMzY4dWFhLjE1NC4xNTA1MTIyODcyNDMyOwogTW9uLCAxMSBTZXAgMjAxNyAwMjo0MToxMiAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTc2Ljg5LjYgd2l0aCBIVFRQOyBNb24sIDExIFNlcCAyMDE3IDAyOjQxOjExIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0ErblBuTXhFTGNSUy1yMnp2NFZwS2dfXz1nYVhmU013UnpVVEU4Q3V3c0I9K0ZHNld3QG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8ZWZiOTc5NjAtZTFiNy00MjI3LTU5OTgtZGUyYzI0MDE1YmIwQGFwYWNoZS5vcmc+CiA8Q0ErblBuTXc3b2c1Z3JxSlpOeVljM0p5TUpjSD1yY2hTLUdZWURfYU1BdmVBaWNKb1V3QG1haWwuZ21haWwuY29tPgogPDc4YWY5NjU1LTc2YmMtZjU2Yy0yZWI1LTFhZjJjMTIwZjQzZkBhcGFjaGUub3JnPiA8Q0FLdVZ6QlFxNFowYU1YZzZkVzl2eGUzeEJmK2RIRjBTMk5mZEh2TVBERm5lOEhyWXV3QG1haWwuZ21haWwuY29tPgogPDI0Y2MzOGU4LTVjM2EtNjQwMi1jZmZmLTg3NmIzMjRhYTg3MUBnbXguZGU+IDxDQUt1VnpCUndmdit6OUFDd2FzRGZfRm5xQjJvNXc1UjBzZkNHaU5Kd0RnUUs9QU9Ld0FAbWFpbC5nbWFpbC5jb20+CiA8Y2Y4ODFlNTktNjdjMC04NWU3LTFjNDQtODM3ZTUyMWVmNzc5QGFwYWNoZS5vcmc+IDxDQUt1VnpCUy1Ia1ZwX293M1Z6OW03WTA3Y256K0VUTmNxZkFaVmhnVW9UcWlITzNnVUFAbWFpbC5nbWFpbC5jb20+CiA8ODlkMTQzNDUtOWIwMi1lZmU5LTQwZmUtMjIwOWIxZDk3ZDZmQGFwYWNoZS5vcmc+IDxDQUt1VnpCU3hXdzYwcEpTMUUyUVJKQi1jRHdfbTh4dU1EcDA2MjloZkhXVU9NZWdPQlFAbWFpbC5nbWFpbC5jb20+CiA8Q0ErblBuTXhFTGNSUy1yMnp2NFZwS2dfXz1nYVhmU013UnpVVEU4Q3V3c0I9K0ZHNld3QG1haWwuZ21haWwuY29tPgpGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBNb24sIDExIFNlcCAyMDE3IDAyOjQxOjExIC0wNzAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NendpVGIwUFJnWXlUdkNHbWV6eE1CNmQtZlllb0RiWFdzNlJ6NmpKaVQrSlFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBUZXN0cyBmb3IgTU5HLTYyNzUgZmFpbCBvbiBKYXZhIDEuNy4wXzE1MS1iMDEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iOTRlYjJjMWIxMGNjMjc5ZWZiMDU1OGU2YmE0MyIKCi0tOTRlYjJjMWIxMGNjMjc5ZWZiMDU1OGU2YmE0MwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9jb21taXQvNTQyYTdhODkxNTYyNjNiMzRkMTQ3MmU5ZDljMWEyNzk1YWZjY2QyZAoKSWYgdGhlIEpSRSBkb2VzIG5vdCBoYXZlIGEgU2NyaXB0RW5naW5lRmFjdG9yeSB0aGVuIHRoZSB0ZXN0IGNhbm5vdCBwYXNzIGFzCml0IHJlbGllcyBvbiB0aGUgYXNzdW1wdGlvbiAoaW52YWxpZCBmb3IgSmF2YSA3KSB0aGF0IHRoZXJlIGlzIGFsd2F5cwphIFNjcmlwdEVuZ2luZUZhY3RvcnkgYXZhaWxhYmxlLgoKWW91IGNhbiB1c2UgdGhpcyBzbWFsbCBjbGFzcyB0byBjaGVjayB5b3VyIEpSRSBmb3IgIFNjcmlwdEVuZ2luZUZhY3RvcnkKaW1wbGVtZW50YXRpb25zOgoKaW1wb3J0IGphdmEudXRpbC5TZXJ2aWNlTG9hZGVyOwoKaW1wb3J0IGphdmF4LnNjcmlwdC5TY3JpcHRFbmdpbmVGYWN0b3J5OwoKcHVibGljIGNsYXNzIFByb2JlU2NyaXB0RW5naW5lRmFjdG9yeSB7CnB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKU2VydmljZUxvYWRlcjxTY3JpcHRFbmdpbmVGYWN0b3J5PiBzZWYgPSBTZXJ2aWNlTG9hZGVyLmxvYWQoClNjcmlwdEVuZ2luZUZhY3RvcnkuY2xhc3MgKTsKU3lzdGVtLm91dC5wcmludGxuKCJCb290IGNsYXNzbG9hZGVyIik7ClN5c3RlbS5vdXQucHJpbnRsbigiPT09PT09PT09PT09PT09PSIpOwpTeXN0ZW0ub3V0LnByaW50bG4oKTsKZm9yIChTY3JpcHRFbmdpbmVGYWN0b3J5IGY6IHNlZikgewpTeXN0ZW0ub3V0LnByaW50bG4oZi5nZXRDbGFzcygpLmdldE5hbWUoKSk7Cn0KU3lzdGVtLm91dC5wcmludGxuKCk7CnNlZiA9IFNlcnZpY2VMb2FkZXIubG9hZCggU2NyaXB0RW5naW5lRmFjdG9yeS5jbGFzcywKUHJvYmVTY3JpcHRFbmdpbmVGYWN0b3J5LmNsYXNzLmdldENsYXNzTG9hZGVyKCkgKTsKU3lzdGVtLm91dC5wcmludGxuKCJNYWluIGNsYXNzbG9hZGVyIik7ClN5c3RlbS5vdXQucHJpbnRsbigiPT09PT09PT09PT09PT09PSIpOwpTeXN0ZW0ub3V0LnByaW50bG4oKTsKZm9yIChTY3JpcHRFbmdpbmVGYWN0b3J5IGY6IHNlZikgewpTeXN0ZW0ub3V0LnByaW50bG4oZi5nZXRDbGFzcygpLmdldE5hbWUoKSk7Cn0KfQp9CgpIZXJlIGFyZSBzb21lIG91dHB1dHM6CgpBcHBsZSBKVk0KLS0tLS0tLS0tLS0tLS0KCmphdmEgdmVyc2lvbiAiMS42LjBfMjQiCkphdmEoVE0pIFNFIFJ1bnRpbWUgRW52aXJvbm1lbnQgKGJ1aWxkIDEuNi4wXzI0LWIwNy0zMzQpCkphdmEgSG90U3BvdChUTSkgNjQtQml0IFNlcnZlciBWTSAoYnVpbGQgMTkuMS1iMDItMzM0LCBtaXhlZCBtb2RlKQpCb290IGNsYXNzbG9hZGVyCj09PT09PT09PT09PT09PT0KCmNvbS5zdW4uc2NyaXB0LmphdmFzY3JpcHQuUmhpbm9TY3JpcHRFbmdpbmVGYWN0b3J5CgpNYWluIGNsYXNzbG9hZGVyCj09PT09PT09PT09PT09PT0KCmNvbS5zdW4uc2NyaXB0LmphdmFzY3JpcHQuUmhpbm9TY3JpcHRFbmdpbmVGYWN0b3J5CgpPcGVuSkRLIDcgdTYwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKb3BlbmpkayB2ZXJzaW9uICIxLjcuMC11NjAtdW5vZmZpY2lhbCIKT3BlbkpESyBSdW50aW1lIEVudmlyb25tZW50IChidWlsZCAxLjcuMC11NjAtdW5vZmZpY2lhbC1iMzApCk9wZW5KREsgNjQtQml0IFNlcnZlciBWTSAoYnVpbGQgMjQuNjAtYjA5LCBtaXhlZCBtb2RlKQpCb290IGNsYXNzbG9hZGVyCj09PT09PT09PT09PT09PT0KCgpNYWluIGNsYXNzbG9hZGVyCj09PT09PT09PT09PT09PT0KCk9yYWNsZSBKYXZhIDd1ODAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmphdmEgdmVyc2lvbiAiMS43LjBfODAiCkphdmEoVE0pIFNFIFJ1bnRpbWUgRW52aXJvbm1lbnQgKGJ1aWxkIDEuNy4wXzgwLWIxNSkKSmF2YSBIb3RTcG90KFRNKSA2NC1CaXQgU2VydmVyIFZNIChidWlsZCAyNC44MC1iMTEsIG1peGVkIG1vZGUpCkJvb3QgY2xhc3Nsb2FkZXIKPT09PT09PT09PT09PT09PQoKY29tLnN1bi5zY3JpcHQuamF2YXNjcmlwdC5SaGlub1NjcmlwdEVuZ2luZUZhY3RvcnkKCk1haW4gY2xhc3Nsb2FkZXIKPT09PT09PT09PT09PT09PQoKY29tLnN1bi5zY3JpcHQuamF2YXNjcmlwdC5SaGlub1NjcmlwdEVuZ2luZUZhY3RvcnkKCkF6dWwncyBadWx1IDd1MTU0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpvcGVuamRrIHZlcnNpb24gIjEuNy4wXzE1NCIKT3BlbkpESyBSdW50aW1lIEVudmlyb25tZW50IChadWx1IDcuMjAuMC4zLWxpbnV4NjQpIChidWlsZCAxLjcuMF8xNTQtYjAxKQpPcGVuSkRLIDY0LUJpdCBTZXJ2ZXIgVk0gKFp1bHUgNy4yMC4wLjMtbGludXg2NCkgKGJ1aWxkIDI0LjE1NC1iMDEsIG1peGVkCm1vZGUpCkJvb3QgY2xhc3Nsb2FkZXIKPT09PT09PT09PT09PT09PQoKCk1haW4gY2xhc3Nsb2FkZXIKPT09PT09PT09PT09PT09PQoKT3JhY2xlIEphdmEgOHUxMzEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKamF2YSB2ZXJzaW9uICIxLjguMF8xMzEiCkphdmEoVE0pIFNFIFJ1bnRpbWUgRW52aXJvbm1lbnQgKGJ1aWxkIDEuOC4wXzEzMS1iMTEpCkphdmEgSG90U3BvdChUTSkgNjQtQml0IFNlcnZlciBWTSAoYnVpbGQgMjUuMTMxLWIxMSwgbWl4ZWQgbW9kZSkKQm9vdCBjbGFzc2xvYWRlcgo9PT09PT09PT09PT09PT09CgpqZGsubmFzaG9ybi5hcGkuc2NyaXB0aW5nLk5hc2hvcm5TY3JpcHRFbmdpbmVGYWN0b3J5CgpNYWluIGNsYXNzbG9hZGVyCj09PT09PT09PT09PT09PT0KCmpkay5uYXNob3JuLmFwaS5zY3JpcHRpbmcuTmFzaG9yblNjcmlwdEVuZ2luZUZhY3RvcnkKCgpOb3cgSUlVQywgTmFzaG9ybiBpcyBwYXJ0IG9mIEphdmEgOCBidXQgUmhpbm8gd2FzIG5vdCByZXF1aXJlZCBhcyBwYXJ0IG9mCkphdmEgNywgaGVuY2UgZnJvbSBKYXZhIDggb253YXJkcyB0aGVyZSBzaG91bGQgYWx3YXlzIGJlIGEKU2NyaXB0RW5naW5lRmFjdG9yeSwgYnV0IG5vdCBldmVyeSBKYXZhIDcgd2FzIHJlcXVpcmVkIHRvIGhhdmUgb25lLgoKT24gMTAgU2VwdGVtYmVyIDIwMTcgYXQgMTQ6NTgsIFN0ZXBoZW4gQ29ubm9sbHkgPApzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKCj4gTWlnaHQganVzdCBiZSB0aGUgdGVzdCBpcyBsb29raW5nIGZvciBhbiBpbXBsZW1lbnRhdGlvbiBjbGFzcyBub3QKPiBhdmFpbGFibGUgb24gdGhvc2UganJlcy4gRG8geW91IGhhdmUgdGhlIGZhaWx1cmUgbWVzc2FnZXMKPgo+IE9uIFN1biAxMCBTZXAgMjAxNyBhdCAyMjoyOSwgVGlib3IgRGlnYW5hIDx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+Cj4gd3JvdGU6Cj4KPj4gWW91IHRoaW5rIGl0IGhhcyB0byBkbyB5b3UgdGhlIGNvbW1pdCBmaXhpbmcgQ2xhc3MgTG9hZGVyIGlzc3VlIG9yIHRoZQo+PiBwcmV2aW91cyBjb21taXRzIGFzIHdlbGw/Cj4+Cj4+IE9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDExOjIzIFBNLCBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz4KPj4gd3JvdGU6Cj4+Cj4+ID4gQW0gMjAxNy0wOS0xMCB1bSAyMzoxOSBzY2hyaWViIFRpYm9yIERpZ2FuYToKPj4gPgo+PiA+PiBEZWZpbml0ZWx5IEkgYWdyZWUhCj4+ID4+IExldCdzIHNlZSBpZiBpdCBpcyBKREsgaXNzdWUgb3IgcGxhdGZvcm0gaXNzdWUuIExldCdzIGV4Y2x1ZGUgT3JhY2xlCj4+IEphdmEKPj4gPj4gc3VzcGljaW9uIGFuZCB0aGVuIGl0J3Mgc2VyaW91cyBpc3N1ZS4KPj4gPj4KPj4gPgo+PiA+IE5vdCBhIHBsYXRmb3JtIG9uZS4gUmVwcm9kdWNlZCBvbiBXaW5kb3dzIDEwIHdpdGggWnVsdSA3IFVwZGF0ZSAxNTQuIEkKPj4gPiB3aWxsIGRvd25sb2FkIE9yYWNsYSBKYXZhIDcgZnJvbSBNT1NDIGFuZCB0ZXN0IGFnYWluLiBJIGFtIHByZXR0eSBzdXJlCj4+IHRoYXQKPj4gPiBpdCB3aWxsIGZhaWwgdG9vLgo+PiA+Cj4+ID4KPj4gPiBPbiBTdW4sIFNlcCAxMCwgMjAxNyBhdCAxMToxNyBQTSwgTWljaGFlbCBPc2lwb3YgPG1pY2hhZWxvQGFwYWNoZS5vcmc+Cj4+ID4+IHdyb3RlOgo+PiA+Pgo+PiA+PiBBbSAyMDE3LTA5LTEwIHVtIDIzOjE1IHNjaHJpZWIgVGlib3IgRGlnYW5hOgo+PiA+Pj4KPj4gPj4+IFRoaXMgb25lIDEuNy4wXzgwIHdoaWNoIGlzIDd1ODA6Cj4+ID4+Pj4gaHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2huZXR3b3JrL2phdmEvamF2YXNlL2Rvd25sb2Fkcy8KPj4gPj4+PiBqYXZhLWFyY2hpdmUtZG93bmxvYWRzLWphdmFzZTctNTIxMjYxLmh0bWwKPj4gPj4+Pgo+PiA+Pj4+Cj4+ID4+PiBObyBvbmUgd2lsbCBzZXJpb3VzbHkgcnVuIHRoaXMgb25lLiBTbyBpZiB3ZSBzYXkgdGhhdCBvdXIgc3R1ZmYgcnVucwo+PiBvZmYKPj4gPj4+IDcKPj4gPj4+IHRoZW4gd2UgaGF2ZSB0byB0ZXN0IE9wZW5KREsgYW5kIFp1bHUgdG9vLgo+PiA+Pj4KPj4gPj4+IE1pY2hhZWwKPj4gPj4+Cj4+ID4+Pgo+PiA+Pj4gT24gU3VuLCBTZXAgMTAsIDIwMTcgYXQgMTE6MTIgUE0sIE1pY2hhZWwgT3NpcG92IDxtb3NpcG92QGdteC5kZT4KPj4gd3JvdGU6Cj4+ID4+Pgo+PiA+Pj4+Cj4+ID4+Pj4gQW0gMjAxNy0wOS0xMCB1bSAyMzowNyBzY2hyaWViIFRpYm9yIERpZ2FuYToKPj4gPj4+Pgo+PiA+Pj4+Pgo+PiA+Pj4+PiBNaWNoYWVsLCBub3cgdHJ5IHdpdGggT3JhY2xlIEphdmEgNy4KPj4gPj4+Pj4KPj4gPj4+Pj4+Cj4+ID4+Pj4+Pgo+PiA+Pj4+Pj4gTGFzdCBwdWJsaWMgdmVyc2lvbiBvciB1cC10by1kYXRlIHBhaWQgdmVyc2lvbj8KPj4gPj4+Pj4KPj4gPj4+Pj4gT24gU3VuLCBTZXAgMTAsIDIwMTcgYXQgMTE6MDIgUE0sIE1pY2hhZWwgT3NpcG92IDwKPj4gbWljaGFlbG9AYXBhY2hlLm9yZz4KPj4gPj4+Pj4KPj4gPj4+Pj4gd3JvdGU6Cj4+ID4+Pj4+Pgo+PiA+Pj4+Pj4gQW0gMjAxNy0wOS0xMCB1bSAyMjoyNyBzY2hyaWViIFN0ZXBoZW4gQ29ubm9sbHk6Cj4+ID4+Pj4+Pgo+PiA+Pj4+Pj4KPj4gPj4+Pj4+PiBXZWxsIEkgcmFuIHRoZSByZWxlYXNlIHdpdGggMS43LjBfODAgd2hpY2ggaWlyYyBpcyB0aGUgbGFzdCBwdWJsaWMKPj4gPj4+Pj4+Pgo+PiA+Pj4+Pj4+IHJlbGVhc2UKPj4gPj4+Pj4+Pj4gb2YgT3JhY2xlIEphdmEgNy4uLgo+PiA+Pj4+Pj4+Pgo+PiA+Pj4+Pj4+Pgo+PiA+Pj4+Pj4+PiBGYWlscyBhbHNvIG9uIFdpbmRvd3Mgd2l0aCBadWx1IDc6Cj4+ID4+Pj4+Pj4+Cj4+ID4+Pj4+Pj4gJCBtdm4gLXYKPj4gPj4+Pj4+PiBBcGFjaGUgTWF2ZW4gMy41LjAgKGZmOGY1ZTc0NDQwNDU2MzlhZjY1ZjYwOTVjNjIyMTBiNTcxM2Y0MjY7Cj4+ID4+Pj4+Pj4gMjAxNy0wNC0wM1QyMTozOTowNiswMjowMCkKPj4gPj4+Pj4+PiBNYXZlbiBob21lOiBEOlxFbnR3aWNrbHVuZ1xQcm9ncmFtbWVcYXBhY2hlLW1hdmVuLTMuNS4wCj4+ID4+Pj4+Pj4gSmF2YSB2ZXJzaW9uOiAxLjcuMF8xNTQsIHZlbmRvcjogQXp1bCBTeXN0ZW1zLCBJbmMuCj4+ID4+Pj4+Pj4gSmF2YSBob21lOiBDOlxQcm9ncmFtIEZpbGVzXFp1bHVcenVsdS03XGpyZQo+PiA+Pj4+Pj4+IERlZmF1bHQgbG9jYWxlOiBkZV9ERSwgcGxhdGZvcm0gZW5jb2Rpbmc6IENwMTI1Mgo+PiA+Pj4+Pj4+IE9TIG5hbWU6ICJ3aW5kb3dzIDEwIiwgdmVyc2lvbjogIjEwLjAiLCBhcmNoOiAiYW1kNjQiLCBmYW1pbHk6Cj4+ID4+Pj4+Pj4gIndpbmRvd3MiCj4+ID4+Pj4+Pj4KPj4gPj4+Pj4+Pgo+PiA+Pj4+Pj4+Cj4+ID4+Pj4+Pj4gT24gU3VuIDEwIFNlcCAyMDE3IGF0IDIxOjA4LCBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz4KPj4gPj4+Pj4+PiB3cm90ZToKPj4gPj4+Pj4+Pgo+PiA+Pj4+Pj4+Cj4+ID4+Pj4+Pj4gRm9sa3MsCj4+ID4+Pj4+Pj4+Cj4+ID4+Pj4+Pj4+Cj4+ID4+Pj4+Pj4+IHRyaWVkIHJ1bm5pbmcgbWFzdGVyIG9uCj4+ID4+Pj4+Pj4+PiBNYXZlbiBob21lOiAvdXNyL2xvY2FsL3NoYXJlL2phdmEvbWF2ZW4KPj4gPj4+Pj4+Pj4+IEphdmEgdmVyc2lvbjogMS43LjBfMTUxLCB2ZW5kb3I6IE9yYWNsZSBDb3Jwb3JhdGlvbgo+PiA+Pj4+Pj4+Pj4gSmF2YSBob21lOiAvdXNyL2xvY2FsL29wZW5qZGs3L2pyZQo+PiA+Pj4+Pj4+Pj4gRGVmYXVsdCBsb2NhbGU6IGRlX0RFLCBwbGF0Zm9ybSBlbmNvZGluZzogVVRGLTgKPj4gPj4+Pj4+Pj4+IE9TIG5hbWU6ICJmcmVlYnNkIiwgdmVyc2lvbjogIjExLjEtcmVsZWFzZS1wMSIsIGFyY2g6ICJpMzg2IiwKPj4gPj4+Pj4+Pj4+IGZhbWlseToKPj4gPj4+Pj4+Pj4+ICJ1bml4Igo+PiA+Pj4+Pj4+Pj4KPj4gPj4+Pj4+Pj4+IGFuZCBJIGdldCB0aGlzOgo+PiA+Pj4+Pj4+Pj4gRmFpbGVkIHRlc3RzOgo+PiA+Pj4+Pj4+Pj4KPj4gPj4+Pj4+Pj4+Cj4+ID4+Pj4+Pj4+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X2NvcmVSZWFsbURlZmF1bHRQYXIKPj4gPj4+Pj4+Pj4+IGVudENsYXNzTG9hZGVyOjk5Cj4+ID4+Pj4+Pj4+PiBudWxsCj4+ID4+Pj4+Pj4+Pgo+PiA+Pj4+Pj4+Pj4KPj4gPj4+Pj4+Pj4+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfZXh0ZW5zaW9uUmVhbG1EZWZhdQo+PiA+Pj4+Pj4+Pj4gbHRQYXJlbnRDbGFzc0xvYWRlcjo3Mwo+PiA+Pj4+Pj4+Pj4gbnVsbAo+PiA+Pj4+Pj4+Pj4KPj4gPj4+Pj4+Pj4+Cj4+ID4+Pj4+Pj4+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X21hdmVuQXBpUmVhbG1EZWZhdWwKPj4gPj4+Pj4+Pj4+IHRQYXJlbnRDbGFzc0xvYWRlcjo5MQo+PiA+Pj4+Pj4+Pj4gbnVsbAo+PiA+Pj4+Pj4+Pj4KPj4gPj4+Pj4+Pj4+Cj4+ID4+Pj4+Pj4+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X3BsdWdpblJlYWxtRGVmYXVsdFAKPj4gPj4+Pj4+Pj4+IGFyZW50Q2xhc3NMb2FkZXI6NjIKPj4gPj4+Pj4+Pj4+IG51bGwKPj4gPj4+Pj4+Pj4+Cj4+ID4+Pj4+Pj4+Pgo+PiA+Pj4+Pj4+Pj4gRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXN0TU5HNjI3NV9wcm9qZWN0UmVhbG1EZWZhdWx0Cj4+ID4+Pj4+Pj4+PiBQYXJlbnRDbGFzc0xvYWRlcjo4Mwo+PiA+Pj4+Pj4+Pj4gbnVsbAo+PiA+Pj4+Pj4+Pj4KPj4gPj4+Pj4+Pj4+IEFsbCB0ZXN0cyBmYWlsIHdpdGggImp1bml0LmZyYW1ld29yay5Bc3NlcnRpb25GYWlsZWRFcnJvcjoKPj4gbnVsbCIuCj4+ID4+Pj4+Pj4+Pgo+PiA+Pj4+Pj4+Pj4gUnVubmluZyB3aXRoCj4+ID4+Pj4+Pj4+PiBNYXZlbiBob21lOiAvdXNyL2xvY2FsL3NoYXJlL2phdmEvbWF2ZW4KPj4gPj4+Pj4+Pj4+IEphdmEgdmVyc2lvbjogMS44LjBfMTQ0LCB2ZW5kb3I6IE9yYWNsZSBDb3Jwb3JhdGlvbgo+PiA+Pj4+Pj4+Pj4gSmF2YSBob21lOiAvdXNyL2xvY2FsL29wZW5qZGs4L2pyZQo+PiA+Pj4+Pj4+Pj4gRGVmYXVsdCBsb2NhbGU6IGRlX0RFLCBwbGF0Zm9ybSBlbmNvZGluZzogVVRGLTgKPj4gPj4+Pj4+Pj4+IE9TIG5hbWU6ICJmcmVlYnNkIiwgdmVyc2lvbjogIjExLjEtcmVsZWFzZS1wMSIsIGFyY2g6ICJpMzg2IiwKPj4gPj4+Pj4+Pj4+IGZhbWlseToKPj4gPj4+Pj4+Pj4+ICJ1bml4Igo+PiA+Pj4+Pj4+Pj4KPj4gPj4+Pj4+Pj4+IHdvcmtzIGZsYXdsZXNzbHkuCj4+ID4+Pj4+Pj4+Pgo+PiA+Pj4+Pj4+Pj4gQW55IGlkZWFzPwo+PiA+Pj4+Pj4+Pj4KPj4gPj4+Pj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiA+Pj4+Pj4+Pj4gLS0tLS0tLS0tCj4+ID4+Pj4+Pj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+Pj4+Pj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+Pj4+Pj4+Pj4KPj4gPj4+Pj4+Pj4+IC0tCj4+ID4+Pj4+Pj4+Pgo+PiA+Pj4+Pj4+Pj4gU2VudCBmcm9tIG15IHBob25lCj4+ID4+Pj4+Pj4+Pgo+PiA+Pj4+Pj4+Pj4KPj4gPj4+Pj4+Pj4KPj4gPj4+Pj4+Pj4KPj4gPj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ID4+Pj4+Pj4+IC0tLS0tLS0tLQo+PiA+Pj4+Pj4+Pgo+PiA+Pj4+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4+Pj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+Pj4+Pj4+Cj4+ID4+Pj4+Pj4KPj4gPj4+Pj4+Pgo+PiA+Pj4+Pj4+Cj4+ID4+Pj4+Pj4KPj4gPj4+Pj4+Cj4+ID4+Pj4+Pgo+PiA+Pj4+Pgo+PiA+Pj4+Cj4+ID4+Pj4KPj4gPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiA+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4gPj4+Cj4+ID4+Pgo+PiA+Pj4KPj4gPj4KPj4gPj4KPj4gPgo+Pgo+Pgo+PiAtLQo+PiBDaGVlcnMKPj4gVGlib3IKPj4KPiAtLQo+IFNlbnQgZnJvbSBteSBwaG9uZQo+CgotLTk0ZWIyYzFiMTBjYzI3OWVmYjA1NThlNmJhNDMtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDQ2NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gTm92IDEyIDEwOjEzOjMyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQ2NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBCNTFBNDEwOTc0Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMTIgTm92IDIwMTcgMTA6MTM6MzIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2MTQxIGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIE5vdiAyMDE3IDEwOjEzOjMyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MDY3IGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIE5vdiAyMDE3IDEwOjEzOjMyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjA1MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDEyIE5vdiAyMDE3IDEwOjEzOjMyIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxMiBOb3YgMjAxNyAxMDoxMzozMiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDQ0MTFGMUEwQzQzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMiBOb3YgMjAxNyAxMDoxMzozMSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjQwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC40MDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFRwNDV5Mm5vNFFBQSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgMTIgTm92IDIwMTcgMTA6MTM6MjkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13cjAtZjE4MC5nb29nbGUuY29tIChtYWlsLXdyMC1mMTgwLmdvb2dsZS5jb20gWzIwOS44NS4xMjguMTgwXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDQzMTM2NUZDOUIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEyIE5vdiAyMDE3IDEwOjEzOjI5ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdyMC1mMTgwLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGoxNXNvMTE5ODQ1NzR3cmUuOAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEyIE5vdiAyMDE3IDAyOjEzOjI5IC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPVAraUY3cjhURzA4SythOWhhWVNKdlVFdStJc2w3NlAzaTN3NzhpeFplOEE9OwogICAgICAgIGI9VitlQlhHYmtCSmtqckF2WXJvNDQ5ZTkxeVRpbnNPV3RtVmhuSWhKRmNOMkE1T0txeWZOU2ZPUnlzeDNTZUFIYXZ1CiAgICAgICAgIFBEZmtkT2dxM3hPYysza04vQzdxamVzN2x4Y3QrL2lXejhSQWR2VFNMNTBMaEVVNVAvOHJ0Z21qZzNrRXZxdlozRDBpCiAgICAgICAgIG5XQzdtYWJneG1PajVwdHNWSFlKbTVwQU01M3lrZEZWVEpHUU93N1ZDWGxCeWF5UnFJTnNQOTFaUzFjc2x6aDU1SkRLCiAgICAgICAgIGZyY0ZHamtaQ3RKRCsyR29VODM3UW93dXQvOXlrZ2FHK09UeGJZbXpvL21YcE1XRUo0bHFiamErMzVnWnhsV1ROeXJJCiAgICAgICAgIExIQzlZS2VucFhTandoU1UwNW02NmRNN3JRNEFOQi9RanlSRWxtS2o4N1V3WlpYRElmMTZRTlVYd0FPNmhtS0JXTEpjCiAgICAgICAgIHExaXc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPVAraUY3cjhURzA4SythOWhhWVNKdlVFdStJc2w3NlAzaTN3NzhpeFplOEE9OwogICAgICAgIGI9WlJEMGxadFhjQnF5bHN2MDVMampLdnJjT3dqeVNJa0pldjIyblIwVGljVjdiQXU1UDY3b1A0eDdrN2xpYUVnaFhHCiAgICAgICAgIGFDNkF0NFRTYXduUFhyc0pFWnhQYVk5TEFkNmlNdXZxMDNremFBcDlSU2dnVEgyN1VUT1dESzJPZ1o1SXNiTFdXZm85CiAgICAgICAgIEFJekFoZEpnQXl4Ylk2ZjVtL093Tkp0U0RLSDVoZG82Z2EwQ0lPaXdENVZFRmU5V1h3MGV0MkZDWnRkTnBhZmpjN0ZxCiAgICAgICAgIEwzbXA0VkNBMHZyekdtS1FzbEM5MmxNMko5VG9wNHhOZCtuUExyRHdOTnl1NW9mb1o0Y01YelVQSlMxR0F2S0dSdEFICiAgICAgICAgIFQ5d0dPeVpHNGIvZ3JTVzR4aVdGQ3pXZUdSYlg2TFVYNEdLaFI5TXhQOWswU2JUWUhiQTBtWGIxSWNCQWZBYk1aSFd6CiAgICAgICAgIFM0Qmc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDVSZWtmMksvT29HT0lPcjJNMFJxc2pSeUdwT1ZVRzJIT2VBRzIwVVk0dHVpMHhqK1VzCglCenNKSThIbmVpemFBRFZQK1hrTG9XNlBmVFVsUGpNSHluRngrR2JmeVE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUdzNHpNYTVTcGdkZDh4RXZVbVRTaWhvbGo2eWNVd2ZTYjJBY2NjdDlpdHkrM29aN3lzUUFmUGtXMkpoQWdxOVdDTkh4VkNJZmdYL0phc0M5L2xLaXVrNWNmYz0KWC1SZWNlaXZlZDogYnkgMTAuMjIzLjIwMS41IHdpdGggU01UUCBpZCBtNW1yNDk3NDM4NHdyaC42OC4xNTEwNDgxNjAyNjc1OyBTdW4sCiAxMiBOb3YgMjAxNyAwMjoxMzoyMiAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8Q0ErblBuTXdFSDlaMm15cDcxdWFTcmRjeUxKUkZyRS1WcnQyMDE5MXJkMDFoK1VmaGp3QG1haWwuZ21haWwuY29tPgogPENBSmNLekhHZXZYV3V1Tld2UVMtNWM0cUZrWTdQZ1lIX3Z6UHRDaHhUN243dE5kV0QzZ0BtYWlsLmdtYWlsLmNvbT4gPENBSmNLekhIejB6WTlyQ2F3T3JFb24xMmhwaWQ5TFJkQVJOMnZGa0c2TDhqaXYwNjNqQUBtYWlsLmdtYWlsLmNvbT4KSW4tUmVwbHktVG86IDxDQUpjS3pISHowelk5ckNhd09yRW9uMTJocGlkOUxSZEFSTjJ2RmtHNkw4aml2MDYzakFAbWFpbC5nbWFpbC5jb20+CkZyb206IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkRhdGU6IFN1biwgMTIgTm92IDIwMTcgMTA6MTM6MTEgKzAwMDAKTWVzc2FnZS1JRDogPENBK25Qbk16eDFSVXgzenI9QXVwT01hTm91WHl4cmhQbWYxVzVNNEc2R1M9S0NZc05MQUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IE1hdmVuIDQuMC4wClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjA4OWUwODJmOTExYzVlMDkzMDA1NWRjNjY3NzEiCgotLTA4OWUwODJmOTExYzVlMDkzMDA1NWRjNjY3NzEKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKS2VlcCBpbiBtaW5kLCBNYXZlbiBpcyBub3QgdGhlIG9ubHkgcG9tIGNvbnN1bWVyLiBFeHByZXNzaW9uIGNoYW5nZXMKb3V0c2lkZSB0aGUgcG9tIGFyZSBwcm9iYWJseSBmaW5lLiBFeHByZXNzaW9uIGNoYW5nZXMgaW5zaWRlIHRoZSBwb20gd2lsbApwcm9iYWJseSByZXF1aXJlIHRoZSA0LjAuMCAob3B0aW9uYWwgc2NvcGUpIGZlYXR1cmUgdG8gYnJpbmcgZmxhdHRlbiBNYXZlbgpwbHVnaW4gdHlwZSBmZWF0dXJlcyB0byBmaXJzdCBjbGFzcyBjb3JlIHN1cHBvcnQgKGllIGRlcGxveSB0aGUgcG9tIHdpdGgKbmV3IHByb3BlcnRpZXMgcmVzb2x2ZWQpCgpPbiBTdW4gMTIgTm92IDIwMTcgYXQgMDc6NTYsIENocmlzIEdyYWhhbSA8Y2hyaXNnd2FycEBnbWFpbC5jb20+IHdyb3RlOgoKPiBPbmUgbW9yZTogQmV0dGVyIHN1cHBvcnQgZm9yIGNsYXNzaWZpZXJzLiBpZGVhbGx5IGJlIGFibGUgdG8gcmVmZXJlbmNlIHRoPQplbQo+IHZpYSBhIHskcHJvamVjdC5jbGFzc2lmaWVyfSB0eXBlIG9mIGNvbnN0cnVjdCwgZXNwIHNvIEkgY2FuIHVzZS9yZWZlcmVuY2UKPiB0aGVtIGluIGFzc2VtYmxlIHRyYW5zZm9ybWF0aW9ucy4KPgo+IFRoaXMgbWlnaHQgYmUgYWJsZSB0byBiZSBkb25lIHdpdGhvdXQgYnVtcGluZyB0byBWNCB0aG91Z2guCj4KPgo+Cj4gT24gU3VuLCBOb3YgMTIsIDIwMTcgYXQgNjo0MSBQTSwgQ2hyaXMgR3JhaGFtIDxjaHJpc2d3YXJwQGdtYWlsLmNvbT4KPiB3cm90ZToKPgo+ID4gcmVxdWlyZWQ6Cj4gPiAgLSAqZXZlcnl0aGluZyogaW4gc2V0dGluZ3MueG1sIGNhbiBiZSBwdXQgaW4gYSBwcm9maWxlIHNlY3Rpb24gaW4KPiA+IHNldHRpbmdzLnhtbC4KPiA+Cj4gPiBJIG9mdGVuIG1vdmUgYXJvdW5kL2JldHdlZW4gcHJvamVjdHMgYW5kIGhhdmluZyB0byByZWRvIG1pcnJvcnMgc2VjdGlvbj0KLAo+ID4gYW5kIHVuYWJsZSB0byBhZGQgc2VydmVycyBpbnRvIHRoZSBwcm9maWxlIHNlY3Rpb24gZm9yIGNsYXJpdHkgaXMgYSBwYWk9Cm4uCj4gPgo+ID4gRm9yIG1lLCBpdCdzIGp1c3QgYSBtYXR0ZXIgb2YgY29udmllbmVuY2UuCj4gPgo+ID4gT24gU2F0LCBOb3YgNCwgMjAxNyBhdCAxMToyMCBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+Cj4gPj4gVGhlIHBhc3QgdHdvIGRheXMsIEhlcnY9QzM9QTksIFJvYmVydCBhbmQgSSBoYXZlIGJlZW4gZGlzY3Vzc2luZyBvdXIgbj0KZXh0Cj4gPj4gc3RlcHMuCj4gPj4KPiA+PiBJIHRoaW5rIHdlIGhhdmUgYSBzZW1pLWNvbnNlbnN1cyB3aGljaCBJIHdhbnQgdG8gYnJpbmcgYmFjayB0byB0aGUgbGlzPQp0Ogo+ID4+Cj4gPj4gV2Uga2VlcCAzLjUueCBhcyBhIHN0YWJsZSBicmFuY2ggd2l0aCBjcml0aWNhbCBidWcgZml4ZXMgb25seQo+ID4+Cj4gPj4gV2Ugc3dpdGNoIG1hc3RlciB0byA0LjAuMCBhbmQgc3RhcnQgdG8gYnVybiBkb3duIGEgcmVsZWFzZSBzY29wZS4KPiA+Pgo+ID4+IDQuMC4wIHdpbGwgbm90IGNoYW5nZSB0aGUgcG9tIG1vZGVsVmVyc2lvbgo+ID4+Cj4gPj4gVGhlIDQuMC4wIHNjb3BlIHNob3VsZCBwcm9iYWJseSBiZToKPiA+Pgo+ID4+IFJlcXVpcmVkOgo+ID4+ICogZHJvcCBKYXZhIDcsIHN3aXRjaCBjb2RlYmFzZSB0byBKYXZhIDggaWRpb21zICh3aGlsZSBtYWludGFpbmluZwo+IGJpbmFyeQo+ID4+IGFwaSBjb21wYXRpYmlsaXR5IGZvciBwbHVnaW5zKQo+ID4+ICogc3BlY2lmeSB0aGUgY2xhc3Nsb2FkZXIgYmVoYXZpb3VyIGFuZCBmaXggaW1wbCB0byBhbGlnbiB3aXRoIHNwZWMgKG09CmF5Cj4gPj4gbmVlZCBhIHBsdWdpbiBmbGFnIHRvIGFsbG93IHBsdWdpbnMgdG8gb3B0IGluIHRvIHNwZWMgYmVoYXZpb3VyKQo+ID4+ICogc3BlY2lmeSB0aGUgZXh0ZW5zaW9uIHNwZWMKPiA+PiAqIGFsbG93IGxpbWl0ZWQgbXV0YXRpb24gb2YgdGhlIHJ1bnRpbWUgbW9kZWwgKHJlZHVjaW5nIHRyYW5zaXRpdmUKPiA+PiBkZXBlbmRlbmNpZXMgZm9yIGNvbnN1bWVycyB3aXRoaW4gdGhlIHJlYWN0b3IsIG9ubHkgZm9yIHBsdWdpbiBnb2Fscwo+IHRoYXQKPiA+PiBkZWNsYXJlIGludGVudCkgdXNlIGNhc2U6IHNoYWRlIHBsdWdpbgo+ID4+ICogYmV0dGVyIENJIGludGVncmF0aW9uIGhvb2tzCj4gPj4gKiBuaWNlIGVycm9yIG1lc3NhZ2UgZm9yIG5ld2VyIHBvbSBtb2RlbFZlcnNpb24KPiA+Pgo+ID4+IE9wdGlvbmFsOgo+ID4+ICogKGRhbW4gSSBmb3Jnb3QsIG1heWJlIFJvYmVydCByZW1lbWJlcnMpCj4gPj4gLS0KPiA+PiBTZW50IGZyb20gbXkgcGhvbmUKPiA+Pgo+ID4KPiA+Cj4KLS09MjAKU2VudCBmcm9tIG15IHBob25lCgotLTA4OWUwODJmOTExYzVlMDkzMDA1NWRjNjY3NzEtLQoKRnJvbSBkZXYtcmV0dXJuLTEyMzkxMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgU2VwICA5IDEwOjUwOjIwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzkxMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA5NzQ0NDE5MDExCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDkgU2VwIDIwMTcgMTA6NTA6MjAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzNDcxOSBpbnZva2VkIGJ5IHVpZCA1MDApOyA5IFNlcCAyMDE3IDEwOjUwOjE4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNDA5MSBpbnZva2VkIGJ5IHVpZCA1MDApOyA5IFNlcCAyMDE3IDEwOjUwOjE4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzQwNjcgaW52b2tlZCBieSB1aWQgOTkpOyA5IFNlcCAyMDE3IDEwOjUwOjE4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwOSBTZXAgMjAxNyAxMDo1MDoxOCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEU4QjhCRDA4RTM7CglTYXQsICA5IFNlcCAyMDE3IDEwOjUwOjE3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuNDAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjQwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGMwM2dJVnNLUTJSZjsgU2F0LCAgOSBTZXAgMjAxNyAxMDo1MDoxNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXVhMC1mMTcyLmdvb2dsZS5jb20gKG1haWwtdWEwLWYxNzIuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNy4xNzJdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgOUVFQTQ1RkJFQTsKCVNhdCwgIDkgU2VwIDIwMTcgMTA6NTA6MTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdWEwLWYxNzIuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgYzI3c282NjI3MjA2dWFoLjI7CiAgICAgICAgU2F0LCAwOSBTZXAgMjAxNyAwMzo1MDoxNiAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9cWgvZU1ERTExMGhEUzlCS2dJZGhzRmo1Q2tHN2g5SHhaTkpFZHBRSzJndz07CiAgICAgICAgYj1HellHMVpybzIvQ0g1M0Jsc1lmWVdUNmswRnZTVTZlSTNMS2wvbzk1RENLVU14bmdDT09ZNXNpdG1wMW5QYmhrM2MKICAgICAgICAgOUdsOEtKcU5VZWVxM0FxczY5R3dkRjZWKzBUMWNKdkQ2MFU1YVVEOTVQM3lVZGI3Z2kwYWdOUUkrN2FpTFNOb0g1R04KICAgICAgICAgM1FzUFJvOUR0dzFHOVZLd1lBa0pvVmxmNFBMWkdrY2h1OHpxRTlzcVJSRXZEVEFkcmZrNklOemY2U3R2bTZLREFSaDEKICAgICAgICAgUTZNVGRGZU5hRkJLcXpKaDhScjRyQU9DQUNxWWE1MDNIcmxObWpiUE1HSG9ZTWQ4YURlS2VUR3oxNEtiaWVYT0I0RDgKICAgICAgICAgSzJ1Z0pHSnNDTTlPVnRwRkZGQ1U5WUx5S1NDL3ZqWlNpbFUyK2duOHFiUUNLT29TMk1UOTZ3Y2dKQkR5Y0RwUC9wMEYKICAgICAgICAgR2VNQT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9cWgvZU1ERTExMGhEUzlCS2dJZGhzRmo1Q2tHN2g5SHhaTkpFZHBRSzJndz07CiAgICAgICAgYj1XY2hqeDBKME45YkV2QkpvUjQvQ1VnNTJORFhMaVVDS1h5UGZMWVlyWU5TNDIrR05UZ2NUN09lTEgrSXVqaGFGUTIKICAgICAgICAgSnhiT2MvSUE2VHc3dmdSUW9hdkRPQlUxdzFDSXZYN0l2STcrbDdNb01neWlpK2dvYjd5djNPZUhLTnRadTRYM1laa1gKICAgICAgICAgWUthNEFkNnB6NzZvb2RJc2NiNHNmY09iS0lhOGVvUGh3RW1QRjIwN3Q1YlgxUDlFOEpzdExsdW9iaXM0L1NEVG1uRE0KICAgICAgICAgdUtlN3FtVXlReEpOQUIxU2dGaXBkOTd2ekV5STNMN3BKN1NTdUxiSUV4bkF0bjdGVG5CQlVvUExzSkU2eWY0UTBLMm4KICAgICAgICAgd2xvRWNtVjNtQ2tEOTZjRm1oaC9mOTFuRi9QNUFHMktqOThWOFl5T212VnV3R3kwblRvT1luRDZrbEJ1ekZTdDZ4dWUKICAgICAgICAgai9kQT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVaDRxK1VIYVRkeXN4K1JFNHMvM0pQWm4rN0grSzJ0RWdFMXV1em9VWHkyeEgvaFA4TGYKCStaVXJtZ0pBbVdpMCtkWDMrTmJOeFllejFQTVRUZ1JEClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FBbWt6UWxhVE9PdmhjakFDdHN4NmljRytXK0FiT2FnTVpZdHNudjdEVnlpeFZEUUFBaWV6ZmpVNHN4cFNzTzdKN2JoWnBmTnhiN1VaNXJaK3l0bE5VPQpYLVJlY2VpdmVkOiBieSAxMC4xNzYuOTUuNjkgd2l0aCBTTVRQIGlkIHo1bXI0Mzg4MjcydWFoLjEwMC4xNTA0OTU0MjE1MzI0OwogU2F0LCAwOSBTZXAgMjAxNyAwMzo1MDoxNSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApGcm9tOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpEYXRlOiBTYXQsIDA5IFNlcCAyMDE3IDEwOjUwOjA0ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQStuUG5NenoydTY9Y2RVNStoMUhzdldoUzRDVDV6a1l6cldDRW93LUc4Q3p2K21ZMmdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFBsZWFzZSByZXR3ZWV0IGFuZCB2b3RlClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwgTWF2ZW4gVXNlcnMgTGlzdCA8dXNlcnNAbWF2ZW4uYXBhY2hlLm9yZz4sIAoJImplbmtpbnNjaS1kZXZAZ29vZ2xlZ3JvdXBzLmNvbSIgPGplbmtpbnNjaS1kZXZAZ29vZ2xlZ3JvdXBzLmNvbT4sIAoJImplbmtpbnNjaS11c2Vyc0Bnb29nbGVncm91cHMuY29tIiA8amVua2luc2NpLXVzZXJzQGdvb2dsZWdyb3Vwcy5jb20+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iZjQwMzA0NWZkZmE0Njg2MjgwMDU1OGJmNzU2MCIKCi0tZjQwMzA0NWZkZmE0Njg2MjgwMDU1OGJmNzU2MApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKaHR0cHM6Ly90d2l0dGVyLmNvbS9hc2ZtYXZlbnByb2plY3Qvc3RhdHVzLzkwNjQ1MTA1OTk2NjY5MzM3NgotLSAKU2VudCBmcm9tIG15IHBob25lCgotLWY0MDMwNDVmZGZhNDY4NjI4MDA1NThiZjc1NjAtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDYzMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gTm92IDI3IDIxOjQ2OjA4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDYzMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBBRDYxQjE3QjRECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMjcgTm92IDIwMTcgMjE6NDY6MDggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxOTM0MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBOb3YgMjAxNyAyMTo0NjowOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTkyNjMgaW52b2tlZCBieSB1aWQgNTAwKTsgMjcgTm92IDIwMTcgMjE6NDY6MDggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxOTI1MSBpbnZva2VkIGJ5IHVpZCA5OSk7IDI3IE5vdiAyMDE3IDIxOjQ2OjA4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAyNyBOb3YgMjAxNyAyMTo0NjowNyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDM1Mzk2QzRERkQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDI3IE5vdiAyMDE3IDIxOjQ2OjA3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi4wNzkKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi4wNzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0JfV0FNX0ZST01fTkFNRV9TSU5HTEVXT1JEPTAuMiwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBHV3hOQjFkMnUyVUMgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sIDI3IE5vdiAyMDE3IDIxOjQ2OjA2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtbGYwLWY0Ni5nb29nbGUuY29tIChtYWlsLWxmMC1mNDYuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNS40Nl0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBBM0MyMjVGMjBCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAyNyBOb3YgMjAxNyAyMTo0NjowNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1sZjAtZjQ2Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGQxMHNvMjM0NzQxMTZsZmouNwogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDI3IE5vdiAyMDE3IDEzOjQ2OjA1IC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUNWdkF0UDZEWGY0UjRPMnpyd3p0RkdncERIS1BnNWJhcWpEZ1NoSzRJNHM9OwogICAgICAgIGI9dFo3dkdrZmFnYWNKVWNVTjFSVnhrL3ZDdkM1aVhNS2JXS3BpdkZkSGdVd01oTndUejVYMmlaaThpQ3c5cHJ3cThNCiAgICAgICAgIGVoLyt4UDdVdmlCWnR5ZkJPbHRkdVorM1FpSmJBNjI1NHhkRS9QTXdiWTRsZEFDVVRScmkzS0hjK2FPRktoVE0xZGlICiAgICAgICAgIDNoeG84c0ZQUElobngvL3hjTmRsdlhPVU15cGNKUU0vay9lcWV5WWdPQ0JzS2FUVFpqUndnTEluZ3AvOWd3d1R3UVJXCiAgICAgICAgIDRidXBzV2hQZHhMTWw5OGYzc2trSFg2N2VVUEZ5RkJtMkVhZmdzR1BnYy92VWp2aHJOS1E0VktnL2srLzA3N24wSitxCiAgICAgICAgIEdIN3k2MHkxdFFULy9BTmVZMm05TURDTGF2dnBSS1dia09ydDBTZHE0bWxqdXB3WUlQeEJLeU9DSXhvVnFWZzVndTc2CiAgICAgICAgIHZNRWc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUNWdkF0UDZEWGY0UjRPMnpyd3p0RkdncERIS1BnNWJhcWpEZ1NoSzRJNHM9OwogICAgICAgIGI9cFpXNTlIZUpOMEhzY240VS8rRzYxVnlHbkM0VmlwMEc2WlRybkQ1Z0V6YmExcFllVlNoL1VoeHB5MmUwQVhndEh4CiAgICAgICAgIHlhSldkOWVhNWR5ektZbFhaa2dHbGMwZC9uaTFCYUxWam0xUERDZXIvOUFsY2VBZXBWdlk4VElBRDJlZE9reHlINWI3CiAgICAgICAgIEo0MUFsV0pKWU0wdlgvRXYyWkYyaGNla2RORTdyM0FGK0tsUmU1WnBSWWluelVzZElvWE55Y2ptUWR1SzZVTWVCd0xmCiAgICAgICAgIHc4RDVJcWIzT3ptNDFmZkEvVnZBV0RxVzZFWWF6QmdUYjh5WjZYQkQwVkVoTlFLZldVYUJWQlJpVnVIQ2JqRVMyNE1iCiAgICAgICAgIDNXWXRxK1hjd0tkWTMreEVKdHNMemRzOTFjV0ZQV1djRmlvWENReGRBNU5zNzVIYUFEUHZBc1hNYk03S1hIZUF4cWorCiAgICAgICAgIGJUL0E9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDdVdzBmdzMvNXZYaDdHS09rdUs4TlhkR0JITkpRSzhrUUl3S2ZZSTlpa1NDcWdTRW1oCgl5MDZ3UnNVNUtZQldrYWR4WkkvU1pYbllJbFRnR2phY0ZJcHpIY2FIZUE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUdzNHpNWnMxZ09BWTlKVytNOWpwa1N1cjlsQ0dRdGREVmVMYU9sTFNvT2dZcXBQZTFwYkJYc05Yd2tWY2NDNzhLeitrbE5SVXkyUUZITm8yVzBmeGh0WjNnVT0KWC1SZWNlaXZlZDogYnkgMTAuMjUuMjMuMjA3IHdpdGggU01UUCBpZCA3Nm1yMTIxMzMxOTdsZnguMTIzLjE1MTE4MTkxNjQ4MjE7CiBNb24sIDI3IE5vdiAyMDE3IDEzOjQ2OjA0IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yNS4yMTIuMjAzIHdpdGggSFRUUDsgTW9uLCAyNyBOb3YgMjAxNyAxMzo0NjowMyAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPENBS3VWekJUY25xS2g4ZDRLTlNLY2h2cDRkR0xjWncyZUR3TWluS1oxVUtCejgxMjlYQUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBS3VWekJUY25xS2g4ZDRLTlNLY2h2cDRkR0xjWncyZUR3TWluS1oxVUtCejgxMjlYQUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogTmljayBTdG9sd2lqayA8bmljay5zdG9sd2lqa0BnbWFpbC5jb20+CkRhdGU6IE1vbiwgMjcgTm92IDIwMTcgMjI6NDY6MDMgKzAxMDAKTWVzc2FnZS1JRDogPENBQTlTNmk3PUpTVjRuNTlOa2U1K2EyaFctNEgrY19BUXY0eDN2RzVtTGdnaXpkdkJRQUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFByb2JsZW0gdG8gZG93bmxvYWQgZGVwZW5kZW5jeSBvbiBVYnVudHUKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDExMjhhNDhhZTFlMDU1ZWZkZDQzNyIKCi0tMDAxYTExNDExMjhhNDhhZTFlMDU1ZWZkZDQzNwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKRGlkIHlvdSBhbHNvIGNvbmZpZ3VyZSB5b3VyIHByb3h5IGluIHRoZSBzZXR0aW5ncy54bWw/IFsxXQoKSHRoLAoKTmljawoKWzFdIGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvbWluaS9ndWlkZS1wcm94aWVzLmh0bWwKCk5pY2sgU3RvbHdpamsKCn5+fiBUcnkgdG8gbGVhdmUgdGhpcyB3b3JsZCBhIGxpdHRsZSBiZXR0ZXIgdGhhbiB5b3UgZm91bmQgaXQgYW5kLCB3aGVuCnlvdXIgdHVybiBjb21lcyB0byBkaWUsIHlvdSBjYW4gZGllIGhhcHB5IGluIGZlZWxpbmcgdGhhdCBhdCBhbnkgcmF0ZSB5b3UKaGF2ZSBub3Qgd2FzdGVkIHlvdXIgdGltZSBidXQgaGF2ZSBkb25lIHlvdXIgYmVzdCB+fn4KCkxvcmQgQmFkZW4tUG93ZWxsCgpPbiBNb24sIE5vdiAyNywgMjAxNyBhdCAxMDoyMiBQTSwgVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPgp3cm90ZToKCj4gTXkgY29tbWFuZCAqbXZuIGNsZWFuKiBpcyBub3QgYWJsZSB0byBkb3dubG9hZCBhIG5ldyBhcnRpZmFjdAo+ICpvcmcuYXJxdWlsbGlhbi51bml2ZXJzZTphcnF1aWxsaWFuLWp1bml0OnBvbSoKPiBob3dldmVyIGl0IGV4aXN0cyBvbiBNYXZlbiBDZW50cmFsLgo+Cj4gSSBydW4gdGhlIGNvbW1hbmQgb24gVWJ1bnR1IEtvbnNvbGUsIGFuZCBub3RoaW5nIGlzIGRvd25sb2FkZWQuCj4gV2hlbiBJIHJ1biB3Z2V0IFsxXSBmcm9tIHRoZSBzYW1lIEtvbnNvbGUsIHRoZSBQT00gaXMgZG93bmxvYWRlZC4KPgo+IFRoZSBzZXR0aW5ncy54bWwgaXMgbm90IGEgcHJvYmxlbSwgSSBjaGVja2VkLiBUaGVyZSBpcyBhIG1pcnJvciBvZiBjZW50cmFsCj4gYW5kIFVSTCBvZiBOZXh1cyBpbiBjb21wYW55Lgo+Cj4gSXMgdGhlcmUgYW55IG5hdGl2ZSBkaWZmZXJlbmNlIGJldHdlZW4gd2dldCBhbmQgbXZuL0phdmEgb24gVWJ1bnR1IHNvIHRoYXQKPiB0aGUgcmVtb3RlIG1hdmVucmVwbyBtYXkgbm90IGJlIHJlYWNoZWQ/Cj4gSSBkaWQgc2V0dXAgb2YgL2V0Yy9lbnZpcm9ubWVudCwgL2V0Yy9uZXR3b3JrL2ludGVyZmFjZSwgfi8ucHJvZmlsZSBkdWUgdG8KPiBwcm94eSwgRE5TLCBodHRwX25vX3Byb3h5LCBldGMuIGJ1dCBub3RoaW5nIGhlbHBzLgo+Cj4gQW55IGhpbnQgd291bGQgYmUgaGVscGZ1bCBoZXJlLgo+IE1BVkVOIGFuZCBKQVZBX09QVFMgaXMgbm90IHNldC4KPgo+IFsxXTogd2dldAo+IGh0dHA6Ly9tYXZlbnJlcG8uYWRzLmxvY2FsL25leHVzL2NvbnRlbnQvZ3JvdXBzL3B1YmxpYy8KPiBvcmcvYXJxdWlsbGlhbi9hcnF1aWxsaWFuLXVuaXZlcnNlLzEuMS4xMy43L2FycXVpbGxpYW4tCj4gdW5pdmVyc2UtMS4xLjEzLjcucG9tCj4KPiBUaHgKPiBUaWJvcgo+CgotLTAwMWExMTQxMTI4YTQ4YWUxZTA1NWVmZGQ0MzctLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDAwMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgU2VwIDEzIDA2OjA0OjE3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDAwMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3NEY4RDFBODRDCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMTMgU2VwIDIwMTcgMDY6MDQ6MTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4MDA5MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMyBTZXAgMjAxNyAwNjowNDoxNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODAwMTggaW52b2tlZCBieSB1aWQgNTAwKTsgMTMgU2VwIDIwMTcgMDY6MDQ6MTYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MDAwNiBpbnZva2VkIGJ5IHVpZCA5OSk7IDEzIFNlcCAyMDE3IDA2OjA0OjE2IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAxMyBTZXAgMjAxNyAwNjowNDoxNiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDM5RkExRDQyMDIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3IDA2OjA0OjE2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMy4xNzkKWC1TcGFtLUxldmVsOiAqKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTMuMTc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJRlJFRU1BSUxfUkVQTFk9MSwgSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTE9XPS0wLjcsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBRdld3MDBDVUdmV3kgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsIDEzIFNlcCAyMDE3IDA2OjA0OjE0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtcXQwLWYxNzkuZ29vZ2xlLmNvbSAobWFpbC1xdDAtZjE3OS5nb29nbGUuY29tIFsyMDkuODUuMjE2LjE3OV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAyNzhBNTYwRjA1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMyBTZXAgMjAxNyAwNjowNDoxNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1xdDAtZjE3OS5nb29nbGUuY29tIHdpdGggU01UUCBpZCB0NDZzbzY0MTgwNTdxdGouMgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDEyIFNlcCAyMDE3IDIzOjA0OjE0IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXMyN2R4QUoxVTRnLy9reFUxVDk1WTI2OXRlcHVEbFdvZWRQUDNFUU50NkU9OwogICAgICAgIGI9c3R6bUpLekdhK0VEOEdQZlErcU5FOHgwdUF1WnAxdTJJWDdwWHRmQzRGZlZYSEl5NVVjYlB0N2lTK3BaeTFJajBZCiAgICAgICAgIFMvQm5mOWY2QlpBZlNudUgzTU5yZWEwdEdKK2lrRU1OQXJLSkx3Q2VRa2tQV1RVWG02UkJrNkIwWWlOdk9Sc2VicVo5CiAgICAgICAgICtTZnlmLzFSWWM5YWJMSGgycFlHNTR0U05idlMrTkdrS3pnWTNKbEtFRGE1TU5oVnJ3cEFrb0FJRG9odUZRVENYZUYxCiAgICAgICAgIFpNbzMzYWpMZGdsYThIcmEzNzlxWUhOVWpJQjhEb3VpZ2JoakxqK1dHelIrS290VW9wQmFSdDl2bXplS3RFdzVWWDhFCiAgICAgICAgIElUR1hKWFVZMXMxMWwxNWJ3ekwvN0I4QWxIZ2M2NUNHbE9ubkw4dUVBRE1UVzJ3U05GWEkvK2Q5ZHlHSjZEZCtxK0FCCiAgICAgICAgIGl3OEE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXMyN2R4QUoxVTRnLy9reFUxVDk1WTI2OXRlcHVEbFdvZWRQUDNFUU50NkU9OwogICAgICAgIGI9RW9jYnVYRUpCYWZ5d0E4Mlc3RnlLRzJ5b1BpclVKeFoyY3BPMDZjby9RY25kUFdwbEJaWU55L2RCYVBLM0U4TFFOCiAgICAgICAgIGN6Z3VuUS9HcGsxZFI3clVjQUFLUnBzUHEwRHo2dEJ4dzBnbllpdTdSUmdQbXF2T2VPOHdaWWpwb1lWRDVnK3NhalZKCiAgICAgICAgIGxESU5paWRQWFllYmVBYTVTMGN4V1JWcGVwUEdKVy8zTll6d1VKN1JDTXVFdy9LTENKVlY3Q3MzenZqZUlBT0ZVTHFMCiAgICAgICAgIHdzNHRxL0dud09adEJXTVNoeWJKUWZnMG1qNndIWjNlZE5iZDV6aG9UakVKUHkrdzJXYkQxQTYrQ0xJM1hKS2dXanZ3CiAgICAgICAgIG9BQkdPdzRTc2Uvc3pFb0xwSXhEeUZBa0xNS3lwejliZTNCeTQrRzhJRWJzbExSQUx5d1BRM0pDWGlEN3Jqcmhwa3VpCiAgICAgICAgIFVPMHc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWdQcUl3Q0ljaFJNVlJSZmZmc2t6TUtobHpZMFdSWmxNcmIyUEZUYUtOZkQxYUVqUVY4CglWbW5UdHg2YkphaVRhZTFvdnRzQnozT1UyZlI2T3NRRTArZ0VxVms9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FEbkFzam1OS3ZxZ3VycFluRmQwR1BpcWZqNW1MUEcvODlRNVJIVURIMlNNUlExZE1SaTlJQkdEdmh5SUV1ajFBeWVzVXpuSXdSUEduRzhVTEZ2b0JBPQpYLVJlY2VpdmVkOiBieSAxMC4yMzcuMzQuMjQgd2l0aCBTTVRQIGlkIG4yNG1yMTMwODU2MjBxdGMuMjE4LjE1MDUyODI2NTI5OTM7CiBUdWUsIDEyIFNlcCAyMDE3IDIzOjA0OjEyIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yMzcuMzIuMjM1IHdpdGggSFRUUDsgVHVlLCAxMiBTZXAgMjAxNyAyMzowNDoxMiAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPENBRHp5N2pDNUd3V2lpUmRqNnN3ZUo3eGV1QnBGeUhIUWFaaGlPR1ltUWtTMkxpWTZiZ0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk14eUcyTmVQWHBWcWF3ZTlqUj1pdEhFVDZVdWRuTjlDakhodj1vby1LQ3J4d0BtYWlsLmdtYWlsLmNvbT4KIDxwb255LTU2YTNhZGVhZjYwYzQwNTk2ZmIyODRiMjQ1MjQxNDhmNjA1ZThkMjMtNTJkNDFjZDQwZjIzNDNjODk1Mjg4MGU4Zjg0ZGEzZTgwZDMzNTUwOUBkZXYubWF2ZW4uYXBhY2hlLm9yZz4KIDxDQStuUG5NeVMycTF1ZmFXK1M2c21oWloxSmN4aGY5aFk1LTNuQkotaUNXZWpQVUFEVkFAbWFpbC5nbWFpbC5jb20+CiA8MjA1Nzk0OC5rMUd5Zmp1R1hkQGdpZ2E+IDxDQStuUG5Nd2NvSEZadlVxV2lVc3lIQmhhTW1vU2NjeWRUQnN6U1hnc0d0Rj13TkdES3dAbWFpbC5nbWFpbC5jb20+CiA8Q0FEenk3akM1R3dXaWlSZGo2c3dlSjd4ZXVCcEZ5SEhRYVpoaU9HWW1Ra1MyTGlZNmJnQG1haWwuZ21haWwuY29tPgpGcm9tOiBHcnplZ29yeiBHcnp5YmVrIDxnci5ncnp5YmVrQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAxMyBTZXAgMjAxNyAwODowNDoxMiArMDIwMApNZXNzYWdlLUlEOiA8Q0FBZFhtaHFrRVY5dk5UV0xDPVYxdjRDal8raWpQQUoycExGNzU4bU9Qb2lyem9DQkFRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTM1NmYxY2QxN2JjYTA1NTkwYmVkNjgiCgotLTAwMWExMTM1NmYxY2QxN2JjYTA1NTkwYmVkNjgKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSGVsbG8KCisxIChub24tYmluZGluZykgLSB0ZXN0ZWQgRnVzZS9LYXJhZi9PU0dpIHByb2plY3RzCgpyZWdhcmRzCkdyemVnb3J6IEdyenliZWsKCjIwMTctMDktMTMgODowMCBHTVQrMDI6MDAgVGhvbWFzIENvbGxpZ25vbiA8dG9taXBob25lM2dAZ21haWwuY29tPjoKCj4gSGVsbG8KPgo+ICsxIGZvciBtZQo+Cj4gMjAxNy0wOS0xMiAyMDo1NCBHTVQrMDI6MDAgU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLgo+IGNvbQo+ID46Cj4KPiA+IEhhdmUgd2UgZ290IGFueSBmZWVkYmFjayBmcm9tIHRoZSBlbWJlZGRlciBpbnRlZ3JhdGlvbnMgeWV0Pwo+ID4KPiA+IE9uIE1vbiAxMSBTZXAgMjAxNyBhdCAyMjo1NywgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gd3JvdGU6Cj4gPgo+ID4gPiBqdXN0IGZvciB0aGUgcmVjb3JkczogaXQgaXMgV2luZG93cyArIEdpdCBCYXNoIChNSU5HVzY0KSBvbmx5Cj4gPiA+Cj4gPiA+IGFuZCB0aGVyZSBpcyBhIGNoYW5jZSB0aGF0IGFkZGluZyAtRGphbnNpLmZvcmNlPTNEdHJ1ZSBjYW4gZm9yY2UgSkFucz0KaQo+ID4gPiBhY3RpdmF0aW9uIChldmVuIGlmIEpBbnNpIGZhaWxzIHRvIGRldGVjdCB0aGF0IGl0IHNob3VsZCBhdXRvLWFjdGl2YXQ9CmUpCj4gPiA+Cj4gPiA+IGRldGFpbHMgb24gaXNzdWUgaW4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjI4MiAsCj4gPiBhbmQgYQo+ID4gPiBmdXR1cmUgSkFuc2kgaXNzdWUuLi4KPiA+ID4KPiA+ID4gUmVnYXJkcywKPiA+ID4KPiA+ID4gSGVydj1DMz1BOQo+ID4gPgo+ID4gPiBMZSBsdW5kaSAxMSBzZXB0ZW1icmUgMjAxNywgMTI6NTM6NDYgQ0VTVCBTdGVwaGVuIENvbm5vbGx5IGEgPUMzPUE5Y3I9Cml0IDoKPiA+ID4gPiBTbyB0aGF0IGlzIHdpbmRvd3Mgb25seSwgb3Igd2VyZSB0aGV5IGxvc3Qgb24gb3RoZXIgT1NlcyBmb3IgeW91Lgo+ID4gPiA+Cj4gPiA+ID4gSSBoYXZlIGNvbG91cnMgb24gbGludXggKHZpYSBkb2NrZXIpIGFuZCBvcy14Cj4gPiA+ID4KPiA+ID4gPiBPbiAxMSBTZXB0ZW1iZXIgMjAxNyBhdCAxMjozNSwgZGVqYW4yNjA5QGdtYWlsLmNvbSA8Cj4gPiBkZWphbjI2MDlAZ21haWwuY29tPgo+ID4gPiA+Cj4gPiA+ID4gd3JvdGU6Cj4gPiA+ID4gPiArMSAoY29uZGl0aW9uYWxseSkuCj4gPiA+ID4gPgo+ID4gPiA+ID4gVGVzdGVkIHZpYSBwcm9qZWN0IHRoYXQgaW5jbHVkZXMgZG96ZW4gb2YgcGx1Z2luczogMXN0IHRpZXIsCj4gTW9qb0hhdXMKPiA+ID4gYW5kCj4gPiA+ID4gPiBmZXcgM3JkIHBhcnR5IHBsdWdpbnMgKHNvIHRvIHNheSkuCj4gPiA+ID4gPgo+ID4gPiA+ID4gRXZlcnl0aGluZyBsb29rcyBnb29kIHdpdGggb25lIG5vdGFibGUgcmVncmVzc2lvbjoKPiA+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyODIgQ29uc29sZSBvdXRwdXQgaGFzCj4gbm8KPiA+ID4gPiA+IGNvbG9ycyAocmVncmVzc2lvbiBpbiBNYXZlbiAzLjUuMSkKPiA+ID4gPiA+Cj4gPiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+ID4gRGVqYW4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBPbiAyMDE3LTA5LTEwIDE3OjM5LCBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haT0KbC4KPiA+IGNvbQo+ID4gPiA+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gd3JvdGU6Cj4gPiA+ID4gPiA+IEhpLAo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBXZSBzb2x2ZWQgMjUgaXNzdWVzOgo+ID4gPiA+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4gPiA+ID4gPgo+ID4gPiA+ID4gdmVyc2lvbj0zRDEyMzM4OTY0JnN0eWxlTmFtZT0zRFRleHQmcHJvamVjdElkPTNEMTIzMTY5MjIKPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFRoZXJlIGFyZSAzNTAgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKPiA+ID4gPiA+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUKPiA+ID4gPiA+Cj4gPiA+ID4gPiAzRCUyME1ORyUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlCj4gPiA+ID4gPiAyMEJZJTIwZHVlJTIwQVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwY3JlYXRlZCUyMEFTQwo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gU3RhZ2luZyByZXBvOgo+ID4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY0Lwo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBUaGUgZGlzdHJpYnV0YWJsZSBiaW5hcmllcyBhbmQgc291cmNlcyBjYW4gYmUgZm91bmQgaGVyZToKPiA+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tPiA+Cj4gPiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xLwo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gU3BlY2lmaWNhbGx5IHRoZSB6aXAsIHRhcmJhbGwgYW5kIHNvdXJjZSBhcmNoaXZlcyBjYW4gYmUgZm91bmQKPiA+IGhlcmU6Cj4gPiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4gPgo+ID4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41Lgo+IDEtYmluLnppcAo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tPiA+Cj4gPiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuCj4gPiAxLWJpbi50YXIuZ3oKPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4gPgo+ID4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41Lgo+IDEtc3JjLnppcAo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tPiA+Cj4gPiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuCj4gPiAxLXNyYy50YXIuZ3oKPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+ID4gPiA+ID4gPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5neiBzaGExOgo+IDllYjgyMWYxNTNjNzY2NzE5NGFhMTFjY2QwOTliNwo+ID4gPiA+ID4KPiA+ID4gPiA+IGJkMjA1OTU2MGQKPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwOiBzaGExOiAxMjFkNTRiMDQ1MzgwYThhNDg5NWViMTM3OTcwYT0KYgo+ID4gPiA+ID4KPiA+ID4gPiA+IDY5ZTY5OGViMGUKPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IEdpdCB0YWc6Cj4gPiA+ID4gPiA+IGh0dHBzOi8vZ2l0LXdpcC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPTNEbWF2ZW4uZ2l0O2E9M0Rjb21taT0KdDtoPTNECj4gPiA+ID4gPgo+ID4gPiA+ID4gMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMwo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gU3RhZ2luZyBzaXRlOgo+ID4gPiA+ID4gPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvY29tcG9uZW50cy9yZWYvMy1MQVRFU1QvCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFsgXSArMQo+ID4gPiA+ID4gPiBbIF0gKzAKPiA+ID4gPiA+ID4gWyBdIC0xCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFRoYW5rcywKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gU3RlcGhlbi4KPiA+ID4gPiA+Cj4gPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IC0tLS0tLS0tLQo+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4KPiA+ID4KPiA+ID4KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4KPiA+ID4gLS0KPiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4KPgoKLS0wMDFhMTEzNTZmMWNkMTdiY2EwNTU5MGJlZDY4LS0KCkZyb20gZGV2LXJldHVybi0xMjQwMDktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIFNlcCAxMyAxMzowNjoxNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwMDktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMDgxNTgxQTcyNAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3IDEzOjA2OjE0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzE0OTggaW52b2tlZCBieSB1aWQgNTAwKTsgMTMgU2VwIDIwMTcgMTM6MDY6MTMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDcxNDEzIGludm9rZWQgYnkgdWlkIDUwMCk7IDEzIFNlcCAyMDE3IDEzOjA2OjEyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzE0MDEgaW52b2tlZCBieSB1aWQgOTkpOyAxMyBTZXAgMjAxNyAxMzowNjoxMiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMTMgU2VwIDIwMTcgMTM6MDY6MTIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAwRTBCNkM5Q0ZBCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMyBTZXAgMjAxNyAxMzowNjoxMiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDAuMzgKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC4zOCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFNQRl9QQVNTPS0wLjAwMSwKCVVSSUJMX0JMT0NLRUQ9MC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBSRWVwVUlHVGs2N2cgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsIDEzIFNlcCAyMDE3IDEzOjA2OjExICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd20wLWY1NC5nb29nbGUuY29tIChtYWlsLXdtMC1mNTQuZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjU0XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIERGQ0E1NUZFMTYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3IDEzOjA2OjEwICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNTQuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgZzIwNnNvNjM0MTIxN3dtZS4wCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTMgU2VwIDIwMTcgMDY6MDY6MTAgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9bkc0UmNzRjVjNzdXUHRRME5JWGN4YWJLZ1M0b2IvRDdIY2ZNNE51dEJ5Yz07CiAgICAgICAgYj11YjhBdm5KNlZMR01pZkNNWmNvbHhKTldUeEF0bktYUmJPWFRpMkM4cEZMa1Iyb25pK2tyWnJ1UmkyTW1IczVzNzEKICAgICAgICAgZzVnbHQ0Q0t0MDBjdkFlbEliL213a0ZzK09qcmFmaFB2cGJNaG50ZTQvTGViYUpkRCttZ3A1d1NKU1JCbmlISzhSWnIKICAgICAgICAgU2VidXlEUFpDTk42OHVCUzNkem5qZnJNWSsxSVRmb3RVZGNnMTdOc29rVGMzOFNkaFRHWDZnQUxFV1I3L3VJY2kwZkMKICAgICAgICAgMHpiMkN1OTR6d09Ra2ttMjZyeFV2K0wycXZPOWRSVk5MRG8wUFRvNzNUNWFpc3JMcitNRDBzUGpJUko2elFpYnJTN3gKICAgICAgICAgWlI5NkJlVmJ5Tllicy83RTdrSlZxUjlBWXFTam1pMzlveGx0Q3VZdDJSTG43QmlUQzltcS9TOHYxL0FvdmlYMmliQmoKICAgICAgICAgOWdJZz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9bkc0UmNzRjVjNzdXUHRRME5JWGN4YWJLZ1M0b2IvRDdIY2ZNNE51dEJ5Yz07CiAgICAgICAgYj1qb1RPVEFSTmg5NURxaHdMcjRjdkJKKzRaNjVTUG95SGxsZWZtanZmcXVteXZ0T3ZuRmxESVk2TVZ2Rm9yRHVpdnUKICAgICAgICAgNTErK0ZtcStKYUIvWVZKcll0S0FaUEJJNnI4QUpVWThRWnVrU2MrN0Y5MVFML256SlNXN1VsWFZETkRqMENSL2ErWUQKICAgICAgICAgTVExNmtOaXhlVVVUYnpKT2JMb0dWT0NPcmMzWklkVFZDU3QzTUJjdXNIYmxjWUlLTzRSZzczaEloOU92WXdvNEErZkMKICAgICAgICAgdC8wUEsycy8rSnVqeUEzVG53ZnJPc2U4S29teDBTYk0ydzVMUm1ibStldXJhVU9XamRNN0k4aDQySnlsdWpSaE5PYlQKICAgICAgICAgR2hnMmV2V0lNTUZUdmhocEI0STBmTzVoV3dBR3VBSUIzQ0lWUmpzRVF0aTBIY1BVZW9iZWVlNnNzOEhzcTdJZnNrUUgKICAgICAgICAgd0FZUT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVZzZmMUt0enZTbGNBV3VlUkdaNFhGMVhGZ2Q0V2Z3cXg1M0hTRys3Nm1EdUdQWENhMCsKCXNRV2tCdGFNWm4xekt4andQR09qc05uTVhRY3h0enBjR084Y21ueng0UT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FEZGNoUmNSODQ5SGhZekVjZXo1S1FRallpOHpacWRPaUlHUzFrMDYxSHM0V21QSlNoU2Y4d2YzQWtIc3d6bzdtVitENDRuQ2JuL1V2aExsMmt0ZWdZPQpYLVJlY2VpdmVkOiBieSAxMC4yOC4yMjMuMTk1IHdpdGggU01UUCBpZCB3MTg2bXIyNzI0NDA4d21nLjEwNS4xNTA1MzA3OTY5MTk3OwogV2VkLCAxMyBTZXAgMjAxNyAwNjowNjowOSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMjIzLjE2MC4zNiB3aXRoIEhUVFA7IFdlZCwgMTMgU2VwIDIwMTcgMDY6MDY6MDcgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDw1OWI5MjJiNy41MzVmNjMwYS41YmY0Mi5kZGQ4U01UUElOX0FEREVEX01JU1NJTkdAbXguZ29vZ2xlLmNvbT4KUmVmZXJlbmNlczogPDU5YjkyMmI3LjUzNWY2MzBhLjViZjQyLmRkZDhTTVRQSU5fQURERURfTUlTU0lOR0BteC5nb29nbGUuY29tPgpGcm9tOiBqaWVyeW4gPGppZXJ5bkBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMTMgU2VwIDIwMTcgMDk6MDY6MDcgLTA0MDAKTWVzc2FnZS1JRDogPENBQXJVOWlhNE43ZVNKcDhrLTNIT3V0Y0JYaWlqbkhReThnKzMyc181cEtYUjctWUsyZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCisxIG5vbi1iaW5kaW5nCgpJIHRlc3RlZCB3aXRoIE9wZW5KREsgSmF2YSA4IG9uIExpbnV4IHg4Nl82NCB3aXRoIGEgdmFyaWV0eSBvZgpwcm9qZWN0cy4gRXZlcnl0aGluZyBsb29rcyBnb29kLCB0aGUgb25seSBuZXcgYmVoYXZpb3IgSSdtIHNlZWluZyBpcyBhCndhcm5pbmc6CgpbV0FSTklOR10gVGhlIHByb2plY3QgPDxwcm9qZWN0OnZlcnNpb24+PiB1c2VzIHByZXJlcXVpc2l0ZXMgd2hpY2ggaXMKb25seSBpbnRlbmRlZCBmb3IgbWF2ZW4tcGx1Z2luIHByb2plY3RzIGJ1dCBub3QgZm9yIG5vbiBtYXZlbi1wbHVnaW4KcHJvamVjdHMuIEZvciBzdWNoIHB1cnBvc2VzIHlvdSBzaG91bGQgdXNlIHRoZSBtYXZlbi1lbmZvcmNlci1wbHVnaW4uClNlZSBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZW5mb3JjZXIvZW5mb3JjZXItcnVsZXMvcmVxdWlyZU1hdmVuVmVyc2lvbi5odG1sCgpCdXQgaXQgbG9va3MgbGlrZSB0aGlzIGlzIGludGVudGlvbmFsIGFuZCB3ZWxsIGRvY3VtZW50ZWQsIHRoYW5rIHlvdSEKCgpPbiBXZWQsIFNlcCAxMywgMjAxNyBhdCA4OjIwIEFNLCBSb2JlcnQgU2Nob2x0ZQo8YXBhY2hlQHNvdXJjZWdyb3VuZHMuY29tPiB3cm90ZToKPiBKdXN0IHJlY2VpdmVkIHRoZSBjb25maXJtYXRpb24gdGhhdCBuZXRiZWFucyB1c2VzIHRoZSBjbGksIHNvIHRoZXJlIHNob3VsZCBiZSBubyBpc3N1ZSB0aGVyZS4KPiBSb2JlcnQKPiBWZXJ6b25kZW4gdmFuYWYgbWlqbiBTYW1zdW5nIEdhbGF4eS1zbWFydHBob25lLgo+IC0tLS0tLS0tIE9vcnNwcm9ua2VsaWprIGJlcmljaHQgLS0tLS0tLS1WYW46IFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IERhdHVtOiAxMy0wOS0xNyAgMTA6MDUgIChHTVQrMDE6MDApIEFhbjogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4gT25kZXJ3ZXJwOiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xCj4gT24gMTMgU2VwdGVtYmVyIDIwMTcgYXQgMDA6MjYsIEFuZGVycyBIYW1tYXIgPGFuZGVyc0BoYW1tYXIubmV0PiB3cm90ZToKPgo+PiBPbiBUdWUsIFNlcCAxMiwgMjAxNyBhdCA4OjU0IFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4+Cj4+ID4gSGF2ZSB3ZSBnb3QgYW55IGZlZWRiYWNrIGZyb20gdGhlIGVtYmVkZGVyIGludGVncmF0aW9ucyB5ZXQ/Cj4+ID4KPj4KPj4gSSBoYXZlbid0IGhlYXJkIGFueXRoaW5nIGZyb20gdGhlIG0yZSBwZW9wbGUuIE1heWJlIHdlIG5lZWQgdG8gcGluZyB0aGVtCj4+IGRpcmVjdGx5LiBJIGNhbiBjb250YWN0IEZyZWQgQnJpY29uLgo+Pgo+PiAvQW5kZXJzCj4+Cj4+Cj4gUGxlYXNlIGRvLCBhbHNvIGlmIGFueW9uZSBoYXMgYSBjb250YWN0IGluIG5ldGJlYW5zIG9yIGludGVsbGlqIGFuZCBjb3VsZAo+IGxldCB0aGVtIGtub3cgd2UnZCBsaWtlIGVpdGhlciBmZWVkYmFjayBvciAid2UncmUgb2sgaWYgTU5HLTYyNzUgbWFrZXMKPiB0cm91YmxlIGZvciB1cywgZ28gYWhlYWQgYW5kIHJlbGVhc2UiLiBJJ2QgbGlrZSB0byBjbG9zZSB0aGUgdm90ZSBvbiBGcmlkYXkKPiAxMzowMCBVVEMuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQwMTAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIFNlcCAxMyAxNjo0Mzo1OCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwMTAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNUUyNkIxQTEwNQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3IDE2OjQzOjU4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTY1NTkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTMgU2VwIDIwMTcgMTY6NDM6NTggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU2NDY4IGludm9rZWQgYnkgdWlkIDUwMCk7IDEzIFNlcCAyMDE3IDE2OjQzOjU2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTY0NTYgaW52b2tlZCBieSB1aWQgOTkpOyAxMyBTZXAgMjAxNyAxNjo0Mzo1NiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMTMgU2VwIDIwMTcgMTY6NDM6NTYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAxRTEzNUNBMzY4Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMyBTZXAgMjAxNyAxNjo0Mzo1NiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDEuMzgKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjM4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJRlJFRU1BSUxfUkVQTFk9MSwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxLAoJVVJJQkxfQkxPQ0tFRD0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHByRS05RHkyc1BZVCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgMTMgU2VwIDIwMTcgMTY6NDM6NTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13bTAtZjU0Lmdvb2dsZS5jb20gKG1haWwtd20wLWY1NC5nb29nbGUuY29tIFs3NC4xMjUuODIuNTRdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMDJGQzY1RkMyMQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTMgU2VwIDIwMTcgMTY6NDM6NTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd20wLWY1NC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBpMTg5c28xMTQzNjk1OXdtZi4xCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTMgU2VwIDIwMTcgMDk6NDM6NTIgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9eEhFeGZWUE9nZnFXOVRId3NlK0FPdlV1OEFsTkk1b0N4UlhRZWszL2F1Zz07CiAgICAgICAgYj1sb0FFTGZ3bGsrYXVRbWlWcmNYNG5Jd0J1T09YaEhJUFgxZlN5dDFUV0p2MDJRcXRZZmkzbjIyRVNqSWtOYW9OekQKICAgICAgICAgZ0xJbHo3Si81K2xwT1RTR2R6OHJjYXY3cXBYSmRKMmxHVDVoZldJWWFaN3IwZGJUM3kwNDZxcUxwUmFmL1djVE9QYXgKICAgICAgICAgREZRYUphbm03MGUwQzlKaFhQZkROSW0rNUhKQ0cveWp3djhmN3RxV1VHK1ZwKzM4STBVVHBRbEdMYjdRWFBWc3NGSlAKICAgICAgICAgZDBGUHhLVXc4bkdKVERyaVczanhnZUE1ajNhQ0JhT09XalpyeHFvNWxTRXNEeG9naUdkVng2MkIrR2RRaWRrU3o5aUIKICAgICAgICAgMVdTdFNIcGQyYzk4Vk5YSzRYcTd0TUhBakgrUHJEbHlnNmNSWUZqbThzaVBMdi9nNS9SR3REL3VGc1RzS2U5T01FL1kKICAgICAgICAgdlplQT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9eEhFeGZWUE9nZnFXOVRId3NlK0FPdlV1OEFsTkk1b0N4UlhRZWszL2F1Zz07CiAgICAgICAgYj1wSWdaL0NpWHNqbVRtSldSay9JRjFua3pGeWd6UEVIMTNCQkNFbHhzb0hVczNKYllMNUM3NVJDa05WRW9oYSszRGgKICAgICAgICAgV1pqL2MvemVqeGlJaFpoMzBRZy9VVVNuTXR2TUZJUHhkaHZ0S2lvY0haVkx3Y0NlT3RIWmRBcitJUWdUdGtMOHpOcUQKICAgICAgICAgS3ViRCt4cldoVjBIOGg3SWhwMldBODZHSjI4ZUxPZnFmbHlFN2pxTC9yMEM1dFNUQlU1eEFsdENoa3h5cHQ4VnpOOEYKICAgICAgICAgaFBWOW5uTjJlcGdOUVFsUk1OQmMzY3J0TUVRb0N2aWNCK3gwVHZvcVlnclF6L2h1R2FjNUxBQ2s3ZnR4cGdSYkc1WW8KICAgICAgICAgOFMzeGVsOVZIT21neWYybjhRaTRzN2MxVzVLelk1cFozU1dPVEtxRDkyNkE5dzlGbExkNm1JaTBid3JSZE1NcW1wOE8KICAgICAgICAgeEVPZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVanlCVzA4NFR3YlpPRmtpUkx4U0lpOFZMYTBzK2ovVXdWVFhwUG5GVm10bU5oOUFEem4KCXFBR0VrRXhEVGFGamEwT0FNYUhlN2lXdWtuMHVENGJ5T1FWR0FLMD0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUFkTVhhajJLUmUyOWtKM3diNytOL0RCd3F0NGZTU1h5dEhHMWlFUUk3bmRrRkJLQ3VvelFGVkhob1ZYZVJheURzcU8xb0ZBY0FIK2RYNXg5TnhkWjA9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjI4LjEzNS4yMDkgd2l0aCBTTVRQIGlkIGoyMDBtcjI5Mzk2ODR3bWQuNDAuMTUwNTMyMTAzMjIxMjsKIFdlZCwgMTMgU2VwIDIwMTcgMDk6NDM6NTIgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xNjAuMzYgd2l0aCBIVFRQOyBXZWQsIDEzIFNlcCAyMDE3IDA5OjQzOjUxIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0FQQ2pqbkdxMXo5UGhvckRGM2JiblcyMz1UNnhMa00xNUpnQTItdHZyOVJBZERzS19BQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0FLdVZ6QlRqTk9iUUxtdG84Zjk3Zk8xeCtUMWkxX29UejdNX08wM1ZrV2FDazdGXytRQG1haWwuZ21haWwuY29tPgogPENBQ2NlZmdmaktUNz1TRGdPRzNaVWplTmYteXBVS3VvX25pNkFHMEtob0VWN1J5LVFyQUBtYWlsLmdtYWlsLmNvbT4KIDxDQVBDampuR0RpcWUrRWJmVlJLQzl5V1FiK2pWRG5ZSzA4NF9lNzRtTkJZdmJVdVZRbXdAbWFpbC5nbWFpbC5jb20+CiA8Q0FLdVZ6QlN0R0Nva3h1K190TlEtcTUrbnl1d251YVY0MzJYejloT25mMVZNTks0cTJRQG1haWwuZ21haWwuY29tPgogPENBRHp5N2pBZ2hmTjR5YWZnQlNVMjV5dnF1UGN3cWtaZktTN2Y2ZFBGelpSeTJ1dVl5d0BtYWlsLmdtYWlsLmNvbT4gPENBUENqam5HcTF6OVBob3JERjNiYm5XMjM9VDZ4TGtNMTVKZ0EyLXR2cjlSQWREc0tfQUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogamllcnluIDxqaWVyeW5AZ21haWwuY29tPgpEYXRlOiBXZWQsIDEzIFNlcCAyMDE3IDEyOjQzOjUxIC0wNDAwCk1lc3NhZ2UtSUQ6IDxDQUFyVTlpYXRQPTk2eHVfdzdLMVlXaHdkUkVEMnBmc2liakZBSExqXzZWWDNIc1RmdkFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gU3VyZWZpcmUgUGx1Z2luIHZlcnNpb24gMi4yMC4xClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKKzEgbm9uLWJpbmRpbmcsIHRyaWVkIHdpdGggT3BlbkpESyBKYXZhIDgsIExpbnV4IHg4Nl82NCwgdHJpZWQgb24gYQpidW5jaCBvZiBpbnRlcm5hbCBwcm9qZWN0cywgbm9uLWZvcmtpbmcgbW9kZSBidXQgd2l0aCAtLXRocmVhZHMgMiwgYWxsCmp1bml0IHRlc3RzLCBhYm91dCAzayBpbiB0b3RhbCwgdHJpZWQgZmFpbHNhZmUgcGx1Z2luIGZvciBhcnF1aWxsaWFuCnRlc3RzLCBhbGwgbG9va3MgcmlnaHQKCmRpZCBub3QgdGVzdCBleG90aWMgdGVzdGluZyBtb2RlcyBub3Igc2l0ZSBwbHVnaW4gcmVwb3J0CgpUaGFua3MgVGlib3IhCgpPbiBXZWQsIFNlcCAxMywgMjAxNyBhdCA0OjQ3IEFNLCBEYW4gVHJhbiA8ZGFudHJhbkBnbWFpbC5jb20+IHdyb3RlOgo+ICsxIG5vbiBiaW5kaW5nLCB3b3JrcyB3aXRoIG15IHByb2R1Y3Rpb24gYnVpbGQgYW5kIEkgY2FuIG9ubHkgIHRlc3Qgd2l0aAo+IHNuYXBzaG90Cj4KPiBPbiBUdWUsIFNlcCAxMiwgMjAxNyBhdCAxMTo1MyBQTSwgVGhvbWFzIENvbGxpZ25vbiA8dG9taXBob25lM2dAZ21haWwuY29tPgo+IHdyb3RlOgo+Cj4+IEhlbGxvCj4+Cj4+ICsxIGZvciBtZQo+Pgo+PiAyMDE3LTA5LTEyIDEwOjI5IEdNVCswMjowMCBUaWJvciBEaWdhbmEgPHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbT46Cj4+Cj4+ID4gSGkgRGFuLAo+PiA+IFllcyB5b3UgY2FuIHVzZSBzdWNoIHZlcnNpb24uIFRoZSBVUkwgZm9yIHNuYXBzaG90cyBpcwo+PiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL3NuYXBzaG90cwo+PiA+Cj4+ID4gT24gVHVlLCBTZXAgMTIsIDIwMTcgYXQgNTowMSBBTSwgRGFuIFRyYW4gPGRhbnRyYW5AZ21haWwuY29tPiB3cm90ZToKPj4gPgo+PiA+ID4gSXMgdGhlcmUgYSBzbmFwc2hvdCBpIGNhbiB0ZXN0IHdpdGggbXkgcHJvZHVjdGlvbj8gb25seSBzZWUKPj4gMi4yMS1TTkFQU0hPVAo+PiA+ID4KPj4gPiA+IFRoYW5rcwo+PiA+ID4KPj4gPiA+IC1EYW4KPj4gPiA+Cj4+ID4gPiBPbiBNb24sIFNlcCAxMSwgMjAxNyBhdCA1OjA1IEFNLCBFbnJpY28gT2xpdmVsbGkgPGVvbGl2ZWxsaUBnbWFpbC5jb20+Cj4+ID4gPiB3cm90ZToKPj4gPiA+Cj4+ID4gPiA+ICsxIChub24gYmluZGluZykKPj4gPiA+ID4KPj4gPiA+ID4gcnVuIHVuaXQgdGVzdHMgb24gc3VyZWZpcmUgcHJvamVjdCBpdHNlbGYKPj4gPiA+ID4KPj4gPiA+ID4gb24gIEpESyA5KzE4MSBydW4gdW5pdCB0ZXN0cyBvZiBvdGhlciBKYXZhOCBwcm9qZWN0cyB3aGljaCByZXF1aXJlZAo+PiA+ID4gPiBqYXZhLnNlLmVlIG1vZHVsZSB0byBiZSBwcmVzZW50Cj4+ID4gPiA+Cj4+ID4gPiA+IFRoYW5rIHlvdSAhCj4+ID4gPiA+Cj4+ID4gPiA+IEVucmljbwo+PiA+ID4gPgo+PiA+ID4gPgo+PiA+ID4gPiAyMDE3LTA5LTExIDU6MzMgR01UKzAyOjAwIFRpYm9yIERpZ2FuYSA8dGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tCj4+ID46Cj4+ID4gPiA+Cj4+ID4gPiA+ID4gSGksCj4+ID4gPiA+ID4KPj4gPiA+ID4gPiBXZSBzb2x2ZWQgMjQgaXNzdWVzOgo+PiA+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPj4gPiA+ID4gPiBwcm9qZWN0SWQ9MTIzMTc5MjcmdmVyc2lvbj0xMjM0MDI5Nwo+PiA+ID4gPiA+Cj4+ID4gPiA+ID4gVGhlcmUgYXJlIDEwMSBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+PiA+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pI2lzc3Vlcy8/anFsPXByb2plY3QrJQo+PiA+ID4gPiA+IDNEK1NVUkVGSVJFK0FORCtzdGF0dXMrJTNEK09wZW4rT1JERVIrQlkrcHJpb3JpdHkrREVTQwo+PiA+ID4gPiA+Cj4+ID4gPiA+ID4gU3RhZ2luZyByZXBvOgo+PiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjYvCj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4+ID4gPiA+ID4gMTM2Ni9vcmcvYXBhY2hlL21hdmVuL3N1cmVmaXJlL3N1cmVmaXJlLzIuMjAuMS8KPj4gPiBzdXJlZmlyZS0yLjIwLjEtc291cmNlLQo+PiA+ID4gPiA+IHJlbGVhc2UuemlwCj4+ID4gPiA+ID4KPj4gPiA+ID4gPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPj4gPiA+ID4gPiBtYXZlbi1zdXJlZmlyZS1wbHVnaW4tMi4yMC4xLXNpdGUtc291cmNlLnppcCBzaGExOgo+PiA+ID4gPiA+IDQxODdhNzkzMjI2OGM3YWQ0Njc5NzMyNTRkODc1ODQwODVlMzA1YzEKPj4gPiA+ID4gPgo+PiA+ID4gPiA+IFN0YWdpbmcgc2l0ZToKPj4gPiA+ID4gPiBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9zdXJlZmlyZS1hcmNoaXZlcy9zdXJlZmlyZS1MQVRFU1QvCj4+ID4gPiA+ID4KPj4gPiA+ID4gPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPj4gPiA+ID4gPiBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtCj4+ID4gdGVzdGluZy1yZWxlYXNlcy5odG1sCj4+ID4gPiA+ID4KPj4gPiA+ID4gPiBWb3RlIG9wZW4gZm9yIDcyIGhvdXJzLgo+PiA+ID4gPiA+Cj4+ID4gPiA+ID4gWyBdICsxCj4+ID4gPiA+ID4gWyBdICswCj4+ID4gPiA+ID4gWyBdIC0xCj4+ID4gPiA+ID4KPj4gPiA+ID4gPiAtLQo+PiA+ID4gPiA+IENoZWVycwo+PiA+ID4gPiA+IFRpYm9yCj4+ID4gPiA+ID4KPj4gPiA+ID4KPj4gPiA+Cj4+ID4KPj4gPgo+PiA+Cj4+ID4gLS0KPj4gPiBDaGVlcnMKPj4gPiBUaWJvcgo+PiA+Cj4+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3OTAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIERlYyAxOCAxODowMzowNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3OTAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNTlDMTIxMDEwNQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDE4IERlYyAyMDE3IDE4OjAzOjA0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODg4NDkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggRGVjIDIwMTcgMTg6MDM6MDMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg4NzI4IGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IERlYyAyMDE3IDE4OjAzOjAzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODgxNTUgaW52b2tlZCBieSB1aWQgOTkpOyAxOCBEZWMgMjAxNyAxODowMzowMyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMTggRGVjIDIwMTcgMTg6MDM6MDMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBCRkIzRUMzRTQ2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxOCBEZWMgMjAxNyAxODowMzowMiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDEuMTk5ClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MS4xOTkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMTAyNC1iaXQga2V5KSBoZWFkZXIuZD12ZXJpem9uLmNvbSBoZWFkZXIuYj1yYVJ2QWltcDsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD12ZXJpem9uLWNvbS4yMDE1MDYyMy5nYXBwc3NtdHAuY29tCgloZWFkZXIuYj1xMWwyNUdadgpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgZENNbE8xd3YxNVc5IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAxOCBEZWMgMjAxNyAxODowMzowMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBteDBhLTAwMjRhMjAxLnBwaG9zdGVkLmNvbSAobXgwYS0wMDI0YTIwMS5wcGhvc3RlZC5jb20gWzE0OC4xNjMuMTQ5LjkzXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDA4QUZENUYyOTcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE4IERlYyAyMDE3IDE4OjAzOjAwICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHBwcy5maWx0ZXJkIChtMDA5ODQ4NC5wcG9wcy5uZXQgWzEyNy4wLjAuMV0pCglieSBteDBhLTAwMjRhMjAxLnBwaG9zdGVkLmNvbSAoOC4xNi4wLjIxLzguMTYuMC4yMSkgd2l0aCBTTVRQIGlkIHZCSUh4Z0E1MDg2OTQ4Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxOCBEZWMgMjAxNyAxMzowMjo1OSAtMDUwMApES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOyBkPXZlcml6b24uY29tOyBoPW1pbWUtdmVyc2lvbiA6IGZyb20KIDogZGF0ZSA6IG1lc3NhZ2UtaWQgOiBzdWJqZWN0IDogdG8gOiBjb250ZW50LXR5cGU7IHM9Y29ycDsKIGJoPVZESlp1K3l2bzVmVHJDclpXeVBNU0xrNjkrK1JjdUVnUTNKRTdMZnZzNXM9OwogYj1yYVJ2QWltcHFpUE8xczVTZnpmeENhWHFtVjZaN2tSRnlBUlhlYmJGN0pmRDlLWEpMV21qQkxHSFpWd205Z2RlSk56RQogT28vbTYxaTRmb3JScENjbkwyMHdIZzQxdURXYXVPWUVIQVlpa1Y3bkwxT2twcjhpdXB6bTBleXM0M0ZoNHl6QXg4elAKIFZySnRvcnFvdk1OWGp6QjhDRG1FbExTRzZ4VjkvWUs2U2xFPSAKUmVjZWl2ZWQ6IGZyb20gbWFpbC13cjAtZjE5OS5nb29nbGUuY29tIChtYWlsLXdyMC1mMTk5Lmdvb2dsZS5jb20gWzIwOS44NS4xMjguMTk5XSkKCWJ5IG14MGEtMDAyNGEyMDEucHBob3N0ZWQuY29tIHdpdGggRVNNVFAgaWQgMmV4ajRjOGNuMS0xCgkodmVyc2lvbj1UTFN2MS4yIGNpcGhlcj1FQ0RIRS1SU0EtQUVTMTI4LUdDTS1TSEEyNTYgYml0cz0xMjggdmVyaWZ5PU5PVCkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE4IERlYyAyMDE3IDEzOjAyOjU5IC0wNTAwClJlY2VpdmVkOiBieSBtYWlsLXdyMC1mMTk5Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIDU1c285ODAxMjUwd3J4LjIxCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTggRGVjIDIwMTcgMTA6MDI6NTggLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPXZlcml6b24tY29tLjIwMTUwNjIzLmdhcHBzc210cC5jb207IHM9MjAxNTA2MjM7CiAgICAgICAgaD1taW1lLXZlcnNpb246ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1WREpadSt5dm81ZlRyQ3JaV3lQTVNMazY5KytSY3VFZ1EzSkU3TGZ2czVzPTsKICAgICAgICBiPXExbDI1R1p2S0p0RkN1YW4vb1NBcEkxUGxjS3Y4Tm1zVWVIc3hWdkVKbUR3eDJGV3VHdWZnUVRVSHp4WVdWRkY2cwogICAgICAgICB6MElPZ21UQ1FZTENmUlVCMVZsS1VsRkZVODFZWG1hbktCOTFNbjZXQ0xiRHhmeWhLbmFla1lpVzJmZERBTndMZUs1WgogICAgICAgICB0MDNPS09uTFdTU0hDS3BVUkp4b3JlcEhsTVpVSWR3blhGa2V2M2RSeDJVVFJWeTA3ajljZnlFTmxtcFdpbG52MWhJSQogICAgICAgICBPK1NPcTlWSExWWll5bDNLdmRUNjlNRzJRcWJNbFpUai95UTZQaG9XRm4vSlpybjRIcFJFZHRZajdSY3FYWGx2a1VOeAogICAgICAgICBwZERPcUlFNEdHSmJGaUo2VzMwQzJQOENXQVFtWUNsandmQlZ2K3R6R2tSV1RsWmhiZ210N0ExanNYZFVQbWpJTDBGaQogICAgICAgICBVTG5nPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1WREpadSt5dm81ZlRyQ3JaV3lQTVNMazY5KytSY3VFZ1EzSkU3TGZ2czVzPTsKICAgICAgICBiPURWQjVoV3VVVCt4bFNLMzV0dkhCRHBJT3lqcE9ZMCtnNmNoc29aaklVWGQvTEh5SlJqMnM3NWtnSWNzYUM4MXFoegogICAgICAgICBpS25UQjVJdnEyMkZrMVI1WFg4T0hWSGJaOHU4bjhMaTVOdDFPd1l0S0FSTlNHOE9zQlRJa1YwTU93cm9YZWVvZzN3agogICAgICAgICBINlRRbFJXaEliTkMzdCt1dGZPaFc0UFVFNWdhTVQ4OHF2ZWNCbGZrWEpuSFNXMXlDYS8wY0E1WmlCYXlKdmV3MTZxZAogICAgICAgICBKQ2xLRUF6U1pPODROZzRDNk50ajV2STJ1RytHRGplOXY4em9LeURaMkZWNzlqNFQ3M1FkZHlYcVE3MWQyREVEdjNUbAogICAgICAgICBNNGQwY1YwRmRFYUREQm9PMFo0MlMzb1Rlb3RpSFlQK1Q1ZkJWV3dIMm9JZTd3cW1GakV5dFFYL3VzaVN1amw4cVVSOAogICAgICAgICBUYUJnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBS0dCM21MMElZTmdkTlc3WEFUZHFjOEJXQTRkaWFISnFZc3NWMm9JZkJLSXBQNHVWbi9ycGpwbQoJMXBSd1VaRVVnU2EwbU9rcGx2R2JGZTFiQVFqRDl2MittUEdIdUdkamF6blRueER6bEY5ZENqa0pZQllMREpjNS9YVG1iWWQ1aTFJCgkwUlNrMGVSQ0FVaVdMd3pvbGkzRzVxWGlpN1hrR3l3PT0KWC1SZWNlaXZlZDogYnkgMTAuMjIzLjIwMS4xMzkgd2l0aCBTTVRQIGlkIGYxMW1yODQ0MDEyd3JoLjI4My4xNTEzNjIwMTc2ODk1OwogICAgICAgIE1vbiwgMTggRGVjIDIwMTcgMTA6MDI6NTYgLTA4MDAgKFBTVCkKWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFDSmZCb3VLNXR3Tzg5b2ZlemRWclUzL1hXZlh2c1J1aCt3VW1vOE1tTTFIcHRHSEtQYUdEZkoreHRiaUN4UlhwS0JLR3FjNlZ0b2RTc2lIcFFzNWVTelJGOEE9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4yMDEuMTM5IHdpdGggU01UUCBpZCBmMTFtcjg0Mzk5NXdyaC4yODMuMTUxMzYyMDE3NjcxMDsKIE1vbiwgMTggRGVjIDIwMTcgMTA6MDI6NTYgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xODIuNjUgd2l0aCBIVFRQOyBNb24sIDE4IERlYyAyMDE3IDEwOjAyOjU2IC0wODAwIChQU1QpCkZyb206ICJRdWlqYWRhLCBKb3NlIE0iIDxqb3NlLnF1aWphZGFAdmVyaXpvbi5jb20+CkRhdGU6IE1vbiwgMTggRGVjIDIwMTcgMTM6MDI6NTYgLTA1MDAKTWVzc2FnZS1JRDogPENBQ0toenJuNUZWQTNlQXFqVnpjQlhqUEoyVzZMZVR5QTNfSkI2Y1JhVENpZ1FrWVhvd0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogRHluYW1pY2FsbHkgbW9kaWZ5aW5nIE1hdmVuUHJvamVjdC5nZXRNb2RlbCgpIHNvIHRoYXQgc3ViLXNlcXVlbnQKIGxpZmVjeWNsZSBwaGFzZXMgY2FuIHBpY2sgdXAgdGhvc2UgY2hhbmdlcwpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwODllMDgyZjc2OWNmNTQxMGQwNTYwYTEyODY0IgpYLW1haWxyb3V0ZTogaW50ZXJuYWwKWC1Qcm9vZnBvaW50LVNwYW0tRGV0YWlsczogcnVsZT1vdXRfc3BhbV9ub3RzcGFtIHBvbGljeT1vdXRfc3BhbSBzY29yZT0wIHByaW9yaXR5c2NvcmU9MTUwMQogbWFsd2FyZXNjb3JlPTAgc3VzcGVjdHNjb3JlPTMgcGhpc2hzY29yZT0wIGJ1bGtzY29yZT0wIHNwYW1zY29yZT0wCiBjbHhzY29yZT0xMDExIGxvd3ByaW9yaXR5c2NvcmU9MCBtbHhzY29yZT0wIGltcG9zdG9yc2NvcmU9MAogbWx4bG9nc2NvcmU9OTk5IGFkdWx0c2NvcmU9MCBjbGFzc2lmaWVyPXNwYW0gYWRqdXN0PTAgcmVhc29uPW1seAogc2NhbmNvdW50PTEgZW5naW5lPTguMC4xLTE3MTEyMjAwMDAgZGVmaW5pdGlvbnM9bWFpbi0xNzEyMTgwMjM5CgotLTA4OWUwODJmNzY5Y2Y1NDEwZDA1NjBhMTI4NjQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCkkgd291bGQgbGlrZSB0byB3cml0ZSBhIE1hdmVuIHBsdWdpbiB0aGF0IGFtb25nIG90aGVyIHRoaW5ncyBtYW5pcHVsYXRlcwooYm90aCBhZGQvdXBkYXRlKSB0aGUgUE9NIG1vZGVsIGF2YWlsYWJsZSBhdCBNYXZlblByb2plY3RzLmdldE1vZGVsKCkgd2hpbGUKZXhlY3V0aW5nIE1hdmVuIHBoYXNlIGdvYWxzLCBzdWNoIGFzICJ0ZXN0IiBhbmQgInNpdGUiLCBzbyB0aGF0IGZvcgppbnN0YW5jZSBJIGNhbjoKCjEpIEFkZCBhIDxyZXBvcnRpbmcvPiBub2RlIGFsb25nIHdpdGggcGx1Z2lucyBpbnNpZGUsIHNvIHRoYXQgd2hlbiB0aGUKInNpdGUiIHBoYXNlIHJ1bnMsIHRob3NlIHBsdWdpbnMgY2FuIGJlIHVzZWQgdG8gZ2VuZXJhdGUgcmVwb3J0cwoyKSBPbiB0aGUgZmx5IGFkZCBwbHVnaW5zIHRvIDxidWlsZC8+LCBhbG9uZyB3aXRoIDxleGVjdXRpb25zLz4gZm9yIHRob3NlCnBsdWdpbnMsIHNvIHRoYXQgdGhleSBydW4gYXMgcGFydCBvZiBvdGhlciBwaGFzZXMuCjMpIEZybyBwbHVnaW5zIHRoYXQgYXJlIGFscmVhZHkgaW4gdGhlIFBPTSBtb2RlbCwgdXBkYXRlIHRoaW5ncyBsaWtlCnZlcnNpb25zLCA8ZXhlY3V0aW9ucy8+LgoKCkkgYWxyZWFkeSB3cm90ZSB0aGUgcGx1Z2luLCBhbmQgd3JvdGUgSmF2YSBjb2RlIHRvIG1ha2UgdGhlIG5lY2Vzc2FyeQphZGRpdGlvbnMvdXBkYXRlIHRvIHRoZSBQT00uIEkndmUgaW5qZWN0ZWQgTWF2ZW5Qcm9qZWN0IGludG8gbXkgTW9qbyB2aWEKQFBhcmFtZXRlcihkZWZhdWx0VmFsdWUgPSAiJHtwcm9qZWN0fSIpCgpwcml2YXRlIE1hdmVuUHJvamVjdCBwcm9qZWN0OwoKCkJ1dCB0aG9zZSBhZGRpdGlvbnMvY2hhbmdlcyB0byB0aGUgUE9NIE1vZGVsIG9iamVjdCBhcmUgYmVpbmcgaWdub3JlZC4KRm9yIGV4YXhhbXBsZSwKCm9uZSB1c2UgY2FzZSBJIGhhdmUgaXMgdG8gdGFjayBvbiA8cmVwb3J0aW5nLz4gd2l0aCBhIGJ1bmNoIG9mIHBsdWdpbnMKCmFuZCByZXBvcnRzIHRoZXkgc2hvdWxkIGdlbmVyYXRlLiBJIGV4ZWN1dGUgbXkgY3VzdG9tIGxvZ2ljIGFzIHBhcnQgb2YKCnRoZSBwcmUtc2l0ZSBmYWNlIChJIGNyZWF0ZSBhIE1vam8gYW5kIGNvbmZpZ3VyZWQgaXRzIGdvYWwgdG8gcnVuIHdpdGgKcHJlLXNpdGUpLiBUaGVuIG4KCmluIHRoZSBjb2RlIG9mIHRoZSBNb2pvIEkgZG8gdGhlIGFkZGl0aW9ucy91cGRhdGVzIHRvIHRoZSBQT00uIEJ1dAp3aGVuICJzaXRlIiBwaGFzZSBydW5zLAoKdGhlIHJlcG9ydHMgYWRkZWQgdG8gdGhlIFBPTSBub3QgZXhlY3V0aW5nLgoKCkFtIEkgbWlzc2luZyBzb21ldGhpbmcgZnVuZGFtZW50YWwgYWJvdXQgTWF2ZW4gUE9NPyBBcmUgbW9kaWZpY2F0aW9ucwp0byBQT00gYXQgcnVudGltZQoKbm90IGFsbG93ZWQ/IEkgc3VzcGVjdCB0aGlzIGlzIHRoZSByZWFzb24sIGJ1dCBJIHdhbnRlZCB0byBjb25maXJtZWQgd2l0aAoKbW9yZSBleHBlcmllbmNlZCBNYXZlbiBkZXZlbG9wZXJzLgoKClRoYW5rIHlvdSwgYW5kIGxldCBtZSBrbm93IHdoYXQgb3RoZXIgZGV0YWlscyBJIGNhbiBwcm92aWRlIHRvIGNsYXJpZnkgdGhpbmdzLgoKCgpCZXN0LAoKSm9zZS4KCi0tMDg5ZTA4MmY3NjljZjU0MTBkMDU2MGExMjg2NC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0Mzg3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBOb3YgIDMgMTA6MjA6NTkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0Mzg3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDY1QTFEMTc3NUUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAgMyBOb3YgMjAxNyAxMDoyMDo1OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDc3Nzc5IGludm9rZWQgYnkgdWlkIDUwMCk7IDMgTm92IDIwMTcgMTA6MjA6NTkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc3NzA1IGludm9rZWQgYnkgdWlkIDUwMCk7IDMgTm92IDIwMTcgMTA6MjA6NTkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NzY5MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDMgTm92IDIwMTcgMTA6MjA6NTggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDAzIE5vdiAyMDE3IDEwOjIwOjU4ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRDM2RUQxQTU5NjkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksICAzIE5vdiAyMDE3IDEwOjIwOjU3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC4zNzkKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC4zNzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEZOVHIwMXRLOV9UMCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCUZyaSwgIDMgTm92IDIwMTcgMTA6MjA6NTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC15dzAtZjE3Ni5nb29nbGUuY29tIChtYWlsLXl3MC1mMTc2Lmdvb2dsZS5jb20gWzIwOS44NS4xNjEuMTc2XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDk4RUY4NjBGMTUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksICAzIE5vdiAyMDE3IDEwOjIwOjU2ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXl3MC1mMTc2Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHExMjZzbzE5NjU4MDB5d3EuMTAKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAwMyBOb3YgMjAxNyAwMzoyMDo1NiAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9U09TU0hkSFcwcnNEZXczSWdjajl3OU5NalF3UzlmUkI4R0pLNk1zOFI2UT07CiAgICAgICAgYj1LUHNRQlBtWEoxM3lPaDdETlJmWlhLVzFnRUVRNXFhTEw1anFqZmdmc3d5aU5jQU1TQ0ZiemZCTWkxTkJ3ZFNuSTIKICAgICAgICAgazZvYWxRZUFPSUNLT2VLQklvNVlUSHRvNjA0c1VaQldCdng2US9NRmpJNFVVKzBIUDh6Z0k3VWVpbzhmcnJHRUIzY3YKICAgICAgICAgU3JIOHBNL3ZpZXVNS0pSRkFuZS9qbEpXYUZ0cm9mZVlOQVNjSUlmOTFqWnFRR2FML3ZzcGJIN3ozd3BldVJ1YXlIdlcKICAgICAgICAgZlRjand2bGZQdG1tVjhKNDRvUG5CU3JLOHAxRHdNYnd1azA1dk1QalJKMm5zQXpKb2tleFdNcFFGcDZBeDkrYVF0SncKICAgICAgICAgSW54WWMyUk9UcUtUcCtTWmhFSG5YUzNhdUU4VHFWY0ZNbmZyVmlMOUcvVllNcThjQjg4OGxXT0ZOcmxTRm5rTzljS20KICAgICAgICAgU1RaUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9U09TU0hkSFcwcnNEZXczSWdjajl3OU5NalF3UzlmUkI4R0pLNk1zOFI2UT07CiAgICAgICAgYj1aa1h5KzVVbHdneGk4TzlWeGFOQlR2WWpRWmhWWjJnY1kwbGpUT1FpN0dNU09OOG4velFZUDhWZkc0TktXUkxDbmUKICAgICAgICAgOG5scVdydUs2Vm5sL0o4cWpQem5NcStRbXBvVy9qUndZODlFU00vTnRkOWI0L3E5eDQrMkliOHVBeUg1VHA0Z1ZFeWgKICAgICAgICAgQnV4dFZVbjNteDFJbVRZTU5HUDh1M2xBTXRCd0M0NHV3ZEFNQjcwQlVaK2gzLzFDZHowUVFZaU8xWGdOcGpXek5KcUkKICAgICAgICAgVFhHUzNZazRLUkJxN05kUlVPaDh0OHAzdFpFVkhOMEFKVGRsb1ZWem9hb3RzZERGdmw2K1puQVRjWHF5MU41aHNJbGkKICAgICAgICAgaFdJSm1FalJnWVVLSW44ZkJGK2w2VUxVVm16d3ZRdEJWUForZktqdkE4bDljb0xTVnJ5clF6MWxWU1dlRTZpMlpXdlcKICAgICAgICAgTE5EUT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhV1hoMGswbU8vcXN0N01lRVF0RGdPQldzelFYSEVBMG4vWU5PLzBEazlidUNWTHdXVG4KCVZ4VHpNWUNKMWs2N3k5SUFBTUtPQm9VVUN5UkZyZVdlY3I4OUhGaDJJUT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtTK1JKTlFrR2dwK0dVZDhTYnFETmhHbXNCT2hPeEVXMFpGbnY0Q3RYQmJjWXpNekJySXdteGJNTjRYRXhXdzRRRWJzY2pOWGJ4RVZiemhuK1lacmtNPQpYLVJlY2VpdmVkOiBieSAxMC4xMjkuMTczLjEyIHdpdGggU01UUCBpZCBsMTJtcjQxNzM5OTF5d2guMTM4LjE1MDk3MDQ0NTUyNjI7CiBGcmksIDAzIE5vdiAyMDE3IDAzOjIwOjU1IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4zNy41LjE0OSB3aXRoIEhUVFA7IEZyaSwgMyBOb3YgMjAxNyAwMzoyMDozNCAtMDcwMCAoUERUKQpGcm9tOiBSb21haW4gTWFubmktQnVjYXUgPHJtYW5uaWJ1Y2F1QGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAzIE5vdiAyMDE3IDExOjIwOjM0ICswMTAwCk1lc3NhZ2UtSUQ6IDxDQUNMRT03TUhSSi05cXZQU1ZaZkpaTzZfM0c9Mi14eE1lcUJ5aEtSc2ZvWWN0anVSOFFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IEJldHRlciBpbmNyZW1lbnRhbCBidWlsZCBpbiBkZWZhdWx0IGRpc3Rybz8KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpIaSBndXlzLAoKQW55IHBsYW4gdG8gaW50ZWdyYXRlIHNvbWV0aGluZyBsaWtlCmh0dHBzOi8vZ2l0aHViLmNvbS9raG1hcmJhaXNlL2luY3JlbWVudGFsLW1vZHVsZS1idWlsZGVyIGluIG1hdmVuCmRpc3RyaWJ1dGlvbj8gSXQgY291bGQgYmUgYSBiaXQgbW9yZSBmYW5jeSBsaWtlIGhhdmUgYSBtdm5pIHNjcmlwdCBvcgpzb21ldGhpbmcgbGlrZSB0aGF0LgoKU29tZSBBU0YgcHJvamVjdHMgaW52ZXN0aWdhdGUgYWx0ZXJuYXRpdmVzIGJlY2F1c2UgdGhlaXIgbWF2ZW4gYnVpbGRzCmFyZSBzbG93IChpdCBpcyBub3QgdGhlIGJhY2tib25lIG9mIG1hdmVuIGJ1dCBidXQgYSByZWFsIHByb2plY3Qgd2l0aApzZXZlcmFsIHBsdWdpbnMpLiBNYWluIG91dGNvbWUgaXMgdGhhdCBsYXVuY2hpbmcgYSBmdWxsIGJ1aWxkIHdoZW4Kb25seSBhIG1vZHVsZSBjaGFuZ2VkIGlzIHRvbyBjb3N0bHkgKGNvbmNyZXRlbHkgYSAyaCBidWlsZCBmb3IgYQpjaGFuZ2UgaW4gYSBtb2R1bGUgdGFraW5nIDEwcyB0byBidWlsZCBpcyBub3QgYWNjZXB0YWJsZSkuIFdvbmRlciBpZgp3ZSBjYW4gZ2V0IHNvbWUgaGVscCBoZXJlIGFuZCBnbyB0byBzb21ldGhpbmcgYSBiaXQgbW9yZSBpbmNyZW1lbnRhbAphbmQgc21vb3RoIGZvciB0aGVzZSBiaWcgcHJvamVjdHM/CgpUaGFua3MsClJvbWFpbiBNYW5uaS1CdWNhdQpAcm1hbm5pYnVjYXUgfCAgQmxvZyB8IE9sZCBCbG9nIHwgR2l0aHViIHwgTGlua2VkSW4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQzMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gTm92ICA2IDA4OjEzOjU4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQzMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3QjZCNjE3MUNFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgIDYgTm92IDIwMTcgMDg6MTM6NTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2Nzk5NCBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IE5vdiAyMDE3IDA4OjEzOjU4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2NzkxNCBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IE5vdiAyMDE3IDA4OjEzOjU4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjc5MDIgaW52b2tlZCBieSB1aWQgOTkpOyA2IE5vdiAyMDE3IDA4OjEzOjU3IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAwNiBOb3YgMjAxNyAwODoxMzo1NyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDAwMDY0QzMzMjcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICA2IE5vdiAyMDE3IDA4OjEzOjU2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi44NzkKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi44NzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEVUWWFvWGh4dGlMMiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgIDYgTm92IDIwMTcgMDg6MTM6NTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC15dzAtZjE3My5nb29nbGUuY29tIChtYWlsLXl3MC1mMTczLmdvb2dsZS5jb20gWzIwOS44NS4xNjEuMTczXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDRBRjhBNUY1QjQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICA2IE5vdiAyMDE3IDA4OjEzOjU0ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXl3MC1mMTczLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHQxMXNvNzExNjQ5NXl3Zy4xMgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDA2IE5vdiAyMDE3IDAwOjEzOjU0IC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWdQMmJoL0NEV285UGZGSmxVVEVhbkgwREl6NnNsWHBidXloSFpBMTIwYW89OwogICAgICAgIGI9Wm9RclpOdUx2NS90eFc5Slo0b3o3d05TSUx2Z2hiaXVCWEI3d21NcnkzaGd5SUFESUFYVWpGRytvTXFKdUV3N2hDCiAgICAgICAgIGFNakZtNzRqdmEybnBJRlQ1ZHhqTlJ6WXRFVHp2cC9YMm5SdWRGV3pIQ0lKa2ZpOWZwYkx6YzRxKzV2Uy91TjJuNkFXCiAgICAgICAgIFRkNTg3WDdKQmMvODRORFpBd1hwbUhid05wV3R6QUFNb2F0MTlWQXMrSTg1cWdhZjY5SFBQWmFVNkszOEREa3RCYnNUCiAgICAgICAgIDZqb3cxSnVDTzdRRksrdnVoUlU0cTVxcUdzZC85Z0l0ak1pejhuOEFUeEdnWmo5cDB4ZXRETUNjc3dqRGJxaGNnOU5jCiAgICAgICAgIDc3VUlSQ3FwdllWOVRqbk5WZUc2eGh2LzltWWRLbURTN0ZUb2c5TE5ZNHd2c295TjAzcW1nODMyb3UwZXl5cUZ2WHRVCiAgICAgICAgIDBOY3c9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWdQMmJoL0NEV285UGZGSmxVVEVhbkgwREl6NnNsWHBidXloSFpBMTIwYW89OwogICAgICAgIGI9RzZKZG1ZdHowQlBYZlNJakhmdkc5cldPTCs0ZEhYbEFIK2w3RVBPSmRqdDE4Vkt5OHJWV1p4VmJFVGpOWWkwYzNuCiAgICAgICAgIGNrdmg0UlBrVXlKdUlaUmptaDIxSFVRSlBRSGdlQldoVjA3TXhiVk1TK1ZyUkQzaFJJN2xzRStMa0xQZEtqajJxMTgrCiAgICAgICAgIHdmQUdoazQxWjdHYnRiYjhkRXhGbDdPbG5XMnliMnBhd1pKV25VU1AxckVyZFNsbTdCNHJqN2NkWDdJZ21uTlRNaG5vCiAgICAgICAgIEJnNSt6WEZaSUlVd1ZYeTA4cFlzdEJmVWttQ2tjS2h0OFluZEd3MlI4ckgxemN4cWlhdEpLdWFnN3prTDZWSUUzZDFlCiAgICAgICAgIHV2ZHVsR1IrcXl0UllHb3BJUFJjdDd0bEgwQ3VYVVZjNzYybVVaaG9LdE9BZ1JKaHJWRVZyS3FyZFUvYnFkKzdvUVdCCiAgICAgICAgIE9xRXc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVZHcDV1Q2VyemJIS01zenQrcjg2My93T2JuTkJGZmRib0JUUEVnNWVRMjVhUnM0aGdQCglFUzJVV3lmbDRUWE91U1hLL1pleEdqUmJSdHlhU1Fxb3dDNSs0MGc1ckE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArVG9PNE1WeXdwaGorV0pXTXZ5QTVnRWRBZCt3WGFvU25xQXRVeEc5dFlrekN4M3JBMFdKZjBGcUdVRGpLMW03bm9ndHZDYXlrK0lsUDJXdVlGTDhyVT0KWC1SZWNlaXZlZDogYnkgMTAuMTMuMTk5LjE5NyB3aXRoIFNNVFAgaWQgajE4OG1yODkxNzY5M3l3ZC44NC4xNTA5OTU2MDMzMDcxOwogTW9uLCAwNiBOb3YgMjAxNyAwMDoxMzo1MyAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMzcuNS4xNDkgd2l0aCBIVFRQOyBNb24sIDYgTm92IDIwMTcgMDA6MTM6MzIgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDw1OWZmODI1OC5lY2IyZGYwYS41ZDMxNi5iYzg5QG14Lmdvb2dsZS5jb20+ClJlZmVyZW5jZXM6IDxDQStuUG5Nd0VIOVoybXlwNzF1YVNyZGN5TEpSRnJFLVZydDIwMTkxcmQwMWgrVWZoandAbWFpbC5nbWFpbC5jb20+CiA8Q0FMWUdtMXhiMU1PSHBzWCs3RUc4eDRiZC16SForTzk1ZTJZNVkyRHVkWmlFRTZlTkNBQG1haWwuZ21haWwuY29tPgogPG9wLnk4Njd3eGg0a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPiA8RTk5QTA0RjYtQjc4RS00QjRGLTgyRTktQzg5QThGQjc0NERFQHRhbGlvcy5jb20+CiA8NTlmZjgyNTguZWNiMmRmMGEuNWQzMTYuYmM4OUBteC5nb29nbGUuY29tPgpGcm9tOiBSb21haW4gTWFubmktQnVjYXUgPHJtYW5uaWJ1Y2F1QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA2IE5vdiAyMDE3IDA5OjEzOjMyICswMTAwCk1lc3NhZ2UtSUQ6IDxDQUNMRT03TUtMXzZDTnZSQm5WTzZrckZ4SE04NmVoODhvWlFPckgtdnRxdHNxLVFRRUFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiA0LjAuMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0ZGFhYzhmYTRmNmQwNTVkNGMwODUxIgoKLS0wMDFhMTE0ZGFhYzhmYTRmNmQwNTVkNGMwODUxCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkZvcmdvdCBhIHVzZXIgd2lzaCBmZWF0dXJlOiBzb21lIHByb2dyZXNzIGxvZ2dpbmcgc29tZWhvdy4gT24gImJpZyIgcHJvamVjdAooYWN0dWFsbHkgb24gcHJvamVjdCBsb2dnaW5nIGEgbG90KSB5b3UgYXJlIGVhc2lseSBsb3N0IG9uIHRoZSBwcm9ncmVzcywKeW91IGtub3cgY3VycmVudCBtb2R1bGUgaXMgWCBidXQgeW91IGRvbid0IGtub3cgYW55bW9yZSBpZiBpdCBpcyA1MCUgb2YgdGhlCmJ1aWxkIG9yIDUlLiBIYXZpbmcgYXQgbGVhc3QgIm1vZHVsZSBYIC8gWSIgd291bGQgYmUgaGVscGZ1bC4gSU1PIGl0IGlzCmVub3VnaCB0byBsb2cgaXQgd2l0aCB0aGUgbW9kdWxlIG5hbWU6CgpbSU5GT10KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCltJTkZPXSBCdWlsZGluZyBGb28gMS4wLjAtU05BUFNIT1QKW0lORk9dCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpbSU5GT10gTW9kdWxlIDEwIC8gMTAwCgoKCgoKUm9tYWluIE1hbm5pLUJ1Y2F1CkBybWFubmlidWNhdSA8aHR0cHM6Ly90d2l0dGVyLmNvbS9ybWFubmlidWNhdT4gfCAgQmxvZwo8aHR0cHM6Ly9ybWFubmlidWNhdS5tZXRhd2VyeC5uZXQvPiB8IE9sZCBCbG9nCjxodHRwOi8vcm1hbm5pYnVjYXUud29yZHByZXNzLmNvbT4gfCBHaXRodWIgPGh0dHBzOi8vZ2l0aHViLmNvbS9ybWFubmlidWNhdT0KPiB8CkxpbmtlZEluIDxodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vcm1hbm5pYnVjYXU+CgoyMDE3LTExLTA1IDIyOjI3IEdNVCswMTowMCBCZXJuZCBFY2tlbmZlbHMgPGVja2lAenVzYW1tZW5rdW5mdC5uZXQ+OgoKPiBIZWxsbywKPgo+Cj4KPiBBZGRpbmcgYW5ub3RhdGlvbnMgYW5kIHByb2Nlc3NvciBhcyBhIGNvbXBpbGV0aW1lIGRlcGVuZGVuY3kgc291bmRzIGxpa2UgPQphCj4gcmVhc29uYWJsZSB0aGluZy4gSXQgd291bGQgaG93ZXZlciBiZSBjb29sIGlmIHRoZSBKQVIgY291bGQgZGVzY3JpYmUgd2hpYz0KaAo+IHBhY2thZ2UgbmVlZHMgdG8gZ28gb24gdGhlIGNsYXNzcGF0aCBhbmQgd2hpY2ggaXMgcHJvY2Vzc29yIGltcGwuIChhbmQKPiBoYXZpbmcgYSBkaWZmZXJlbnQgYXJ0aWZhY3QgZm9yIHJ1bnRpbWUpCj4KPgo+Cj4gR3J1c3MKPgo+IEJlcm5kCj4KPgo+Cj4gKlZvbjogKk1hcmsgRGVycmljdXR0IDxtYXJrQHRhbGlvcy5jb20+Cj4gKkdlc2VuZGV0OiAqU29ubnRhZywgNS4gTm92ZW1iZXIgMjAxNyAyMjoyMAo+ICpBbjogKk1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Cj4gKkJldHJlZmY6ICpSZTogTWF2ZW4gNC4wLjAKPgo+Cj4KPiBPbiA1IE5vdiAyMDE3LCBhdCAxMDo0MiwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4KPiBJIHdvdWxkIGxpa2UgdG8gZHJvcCBzdHJpY3Qgc2NvcGVzIGluIGdlbmVyYWwgYW5kIGdpdmUgcGx1Z2lucyB0aGUKPiBvcHBvcnR1bml0eSB0byBkZXBlbmQgb24KPiBzcGVjaWZpYyBzY29wZWQgZGVwZW5kZW5jaWVzLgo+Cj4gSG93IHdvdWxkIHRoaXMgaGVscCB3aXRoIGFubm90YXRpb25zIHRobz8gVGhlIG1haW4gaXNzdWUgSSdtIGZhY2luZyBpcwo+IGhhdmluZyBhIHN0YW5kYXJkIG0tYy1wIHBsdWdpbiBkZWZpbml0aW9uIGluIGEgcGFyZW50ICggb3IgdGlsZSApIGJ1dAo+IG5lZWRpbmcgZGlmZmVyZW50IGFubm90YXRpb24gcHJvY2Vzc29ycyB1c2VkIHBlciBwcm9qZWN0LiBXaXRoIHRoZSBjdXJyZW49CnQKPiBwbHVnaW4sIHRoaXMgbWVhbnMgZWl0aGVyIGxpc3RpbmcgdGhlbSBhcyBzdGFuZGFyZCBkZXBlbmRlbmNpZXMgYW5kIGhhdmUKPiB0aGVtIGF1dG8tc2Nhbm5lZCwgYW5kIHBvbGx1dGUgdGhlIGNvbXBpbGF0aW9uIGNsYXNzcGF0aCwgb3IgbGlzdCBldmVyeQo+IHBvc3NpYmxlIGFubm90YXRpb24gcHJvY2Vzc29yIGRlcGVuZGVuY3kgd2UgbWF5IHVzZSBpbiBvdXIgcHJvamVjdHMgaW4gdGg9CmUKPiBwYXJlbnQsIHdoaWNoIGlzIGxlc3MgdGhhbiBpZGVhbC4KPgo+IEkgaG9wZSB5b3UgYXJlIGF3YXJlIHRoYXQgbW9kdWxlcyBhbHJlYWR5IGVuZCB1cCBvbiB0aGUgbW9kdWxlcGF0aCBiYXNlZAo+IG9uIHRoZSBtb2R1bGVkZXNjcmlwdG9yKHMpLiBTbyBJIGRvbid0IHNlZSB0aGUgbmVlZCBmb3IgdGhpcyBzY29wZS4gKHVubGU9CnNzCj4geW91IGhhdmUgdGhpcyB3aXNoIHRoYXQgaW4gdGhlIGVuZCBNYXZlbiB3aWxsIGNyZWF0ZSB0aGUgbW9kdWxlIGRlc2NyaXB0bz0Kcgo+IGJhc2VkIG9uIHRoaXMsIGJ1dCBJIHN0aWxsIHRoaW5rIHdlIHNob3VsZG4ndCBkbyB0aGF0KQo+Cj4gSSByZW1lbWJlcmVkIHJlYWRpbmcgc29tZXRoaW5nIGFib3V0IHRoaXMsIGFuZCBhc3N1bWVkIGl0IHdhcyB0aGUgY2FzZSBpZgo+IHRoZXJlIHdhcyBhIG1vZHVsZS1pbmZvLmNsYXNzLCBidXQgd2hhdCBpZiBpdHMgYSBzdGFuZGFyZCBqYXIgd2l0aCBhbgo+IEF1dG9tYXRpYy1Nb2R1bGUtTmFtZSBoZWFkZXI/IERvZXMgdGhhdCBmYWxsIGludG8gdGhlIG1vZHVsZSBwYXRoIG9yCj4gY2xhc3NwYXRoPyBIYXZpbmcgY29udHJvbCBmb3IgdGhpcyBjYXNlIG1heSBiZSB1c2VmdWwuCj4KPiBJIHJlY29nbml6ZSB0aGlzIHdpc2guIFRoZSBiZXN0IHNvbHV0aW9uIGlzIHRvIG1ha2UgdGhlIGRlcGVuZGVuY3kKPiBvcHRpb25hbC4KPgo+IFRoZSBwcm9ibGVtIHdpdGggdGhpcyBpcyB0aGF0IHRoZSBkZXBlbmRlbmN5IGlzIHN0aWxsIG9uIHRoZSBjbGFzc3BhdGggZm89CnIKPiBzYXkgc3VyZWZpcmUsIHdoaWNoIGNhbiBpbmZsdWVuY2UgYmVoYXZpb3VyLgo+Cj4gTWFyawo+Cj4gIlRoZSBlYXNlIHdpdGggd2hpY2ggYSBjaGFuZ2UgY2FuIGJlIGltcGxlbWVudGVkIGhhcyBubyByZWxldmFuY2UgYXQgYWxsCj4gdG8gd2hldGhlciBpdCBpcyB0aGUgcmlnaHQgY2hhbmdlIGZvciB0aGUgKEphdmEpIFBsYXRmb3JtIGZvciBhbGwgdGltZS4iID0KPUUyPTgwPTk0Cj4gTWFyayBSZWluaG9sZC4KPgo+IE1hcmsgRGVycmljdXR0Cj4gaHR0cDovL3d3dy50aGVvcnlpbnByYWN0aWNlLm5ldAo+IGh0dHA6Ly93d3cuY2hhbGljZW9mYmxvb2QubmV0Cj4gaHR0cDovL3BsdXMuZ29vZ2xlLmNvbS8rTWFya0RlcnJpY3V0dAo+IGh0dHA6Ly90d2l0dGVyLmNvbS90YWxpb3MKPiBodHRwOi8vZmFjZWJvb2suY29tL21kZXJyaWN1dHQKPgo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+CgotLTAwMWExMTRkYWFjOGZhNGY2ZDA1NWQ0YzA4NTEtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDYzNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgTm92IDI4IDA2OjU4OjM3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDYzNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4NjhFRjEwRTkwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMjggTm92IDIwMTcgMDY6NTg6MzcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4NzcyMyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBOb3YgMjAxNyAwNjo1ODozNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODc0OTUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggTm92IDIwMTcgMDY6NTg6MzYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NzQ4MyBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IE5vdiAyMDE3IDA2OjU4OjM2IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAyOCBOb3YgMjAxNyAwNjo1ODozNiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDdFQTJGQzU4RDEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDA2OjU4OjM1ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC44OTgKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC44OTggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQl9XQU1fRlJPTV9OQU1FX1NJTkdMRVdPUkQ9MC4yLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0wLjAwMSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFo5MmpsMmM5V1l6bSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVR1ZSwgMjggTm92IDIwMTcgMDY6NTg6MzQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC15YjAtZjE3NS5nb29nbGUuY29tIChtYWlsLXliMC1mMTc1Lmdvb2dsZS5jb20gWzIwOS44NS4yMTMuMTc1XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDkxMDFDNUY1QTQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDA2OjU4OjMzICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXliMC1mMTc1Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGQxOTVzbzExNjA4NzkzeWJoLjgKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAyNyBOb3YgMjAxNyAyMjo1ODozMyAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bwogICAgICAgICA6Y29udGVudC10cmFuc2Zlci1lbmNvZGluZzsKICAgICAgICBiaD1pWHVHQTNYVXl3eFBySU01bDl4eGQ0UVdWVVY3NlpiMU5BdUp5Y1hjQ1JvPTsKICAgICAgICBiPUx1RlpneW5vTVBLaG9iRVZsY2RkRlYwOE5lc0oxVm9CRU1HREtOSldZeGpzM0R3VjFFY05BcmRvVlcvTlFUVFNYeQogICAgICAgICAybHN2a0lYRUVGcjdoMnhzblRHVkR4RkVBdk01aHZ0SSt3S0ROejIwYUl4Z3JUdmFscnFxN083c1JlcW5rWkMya2M1bgogICAgICAgICA1MTcvVldQL1gzNlI4ZmhOcktuQ1p1WHhSeDN4UW9TblVHZDZBT3RDNGRRaXhOUU1Xczk2cVM1UWttbzdEZ3N5QlNHSQogICAgICAgICAwOTl5QWRWaDd1WTdsTEdFTWdKZ3FZcTZkUlNhQ0lET284MjhuSVQ2cWZIeEhhcFJuY0FnOFZNbEtRZ0dYUGYzVmNPVgogICAgICAgICBJZWdYa04rZGcxS3paajByVDJjWXc0azJ2eWJpOGRKcUtGUzVsMzhIQk9OT0RNV1ZxM3dzR2drbTgvbC9kQ256ejlPbAogICAgICAgICB1NXh3PT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzpjb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOwogICAgICAgIGJoPWlYdUdBM1hVeXd4UHJJTTVsOXh4ZDRRV1ZVVjc2WmIxTkF1SnljWGNDUm89OwogICAgICAgIGI9RGN1Z0dFdGhMU2tBYkNYMWxqRW9KMHhEWVkxNVhSVDcvRzI4bGZVd1ZVMEgxZ0pVLzlFTk9TYWJGSk9oN1VYUlM2CiAgICAgICAgIDgxaXo5YlloeWtRRmhaMnJ0Z2NRRk93Y2x1VXVEbEgxUG5DYUQzQTYwSW9Fb011bmwvY1J2TVd1aFl2MlIxVXFkbmNMCiAgICAgICAgIGJqbGlGaE5jRTZjeEQ0K0ZaTWNvdk9uQmRjUjU4Zm9ySVZ3YkNwWE4wZHMxUm5MeG02emFwa01vQTBzYi9JY3l3aXRGCiAgICAgICAgIEtnN3FnTXBZUUdkU0VhT2paZTBYMjdCdVpWeWludWpXWW94RHpXeWV0NmxOL0I5ZjExR2psQ04wcTMrTWs3VjlYQnJVCiAgICAgICAgIGdTakU1dkRESENGRmxVN294L1Y1aWRLd2cxUjhRWUFmNVN1TUFBMWFDZW1MQmd2cTNsSWFoNlVoN0M5eHNweEFHU2hhCiAgICAgICAgIExJTnc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDc5YSttRy9pd2s1Tzd6S1NQSVRLeURGKzFBWCt0ZExxSjZZdTBIaU5LaGttRFM4dnNuCglveEtrSjJNUURpbmxLb1RKV0p4VTFIdVZvOXFkdzg0eUhuQTVNTEk9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1heGl5WlBnVkZPZFFYbkpLa28zQUozOEhXajg3M2VKMWdYRWw3Vk55a2JFL0JlaWs0dzBibnZjeGlYRDVsYjdxM2RZRmh3a2FiRWY0Rk53c2JGQTZJPQpYLVJlY2VpdmVkOiBieSAxMC4zNy4xMDUuMTQyIHdpdGggU01UUCBpZCBlMTM2bXIyNTUyODU1MXliYy4xMTguMTUxMTg1MjMxMjE5MTsKIE1vbiwgMjcgTm92IDIwMTcgMjI6NTg6MzIgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjM3LjUuMjAzIHdpdGggSFRUUDsgTW9uLCAyNyBOb3YgMjAxNyAyMjo1ODoxMSAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPDI0MTM3OTUueWh2cHpsdjVReEBnaWdhPgpSZWZlcmVuY2VzOiA8Q0FDTEU9N05reWlnWXhtaEp5VEM5dTdSM3RaWGhFb1BPQXBkOGpPakd1VUQyMVlxX3hnQG1haWwuZ21haWwuY29tPgogPDIwMTcxMTI3MjIwMTUzLjJFNEJCMjlDNDNDOUBkZDE3MzMyLmthc3NlcnZlci5jb20+IDxDQUNMRT03UG9XakdyPS01Q0RHX2J0SjhBTzFtaWFWNVFIK2ZyS2Z4dlpvRzdGVzgtc2dAbWFpbC5nbWFpbC5jb20+CiA8MjQxMzc5NS55aHZwemx2NVF4QGdpZ2E+CkZyb206IFJvbWFpbiBNYW5uaS1CdWNhdSA8cm1hbm5pYnVjYXVAZ21haWwuY29tPgpEYXRlOiBUdWUsIDI4IE5vdiAyMDE3IDA3OjU4OjExICswMTAwCk1lc3NhZ2UtSUQ6IDxDQUNMRT03TUtjdVJFellZdk9rWHRIb19YTF93RDFvX3lKdlV6ZzFHZlJudEtGd1Q4dFFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBiZWFtIGxlYXZpbmcgbWF2ZW4sIGFueXRoaW5nIGRvYWJsZT8KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCmlmIHlvdSBicm93c2UgdGhlIGJlYW0gZGlzY3Vzc2lvbiB5b3UgaGF2ZSBtb3N0IG9mIGZpZ3VyZXMuIFVzaW5nIGJlYW0KY2FuIGJlIG5pY2UgLSBldmVuIGlmIHBlcnNvbmFsbHkgSSB3b3VsZCBoYXZlIGxvdmVkIHRvbWVlIGluZGVlZCA7KSAtCnNpbmNlIHdlIGtub3cgd2UgY2FuIGJvb3N0IGl0IGEgbG90IHVwZnJvbnQuCgpsZXQgbWUga25vdyBpZiB5b3UgbmVlZCBoZWxwIEhlcnY9QzM9QTksIEkgd291bGQgYmUgaGFwcHkgdG8gc29sdmUgaXQKYmVmb3JlIHRoZXkgdm90ZSB0aGUgc3dpdGNoLgoKUm9tYWluIE1hbm5pLUJ1Y2F1CkBybWFubmlidWNhdSB8ICBCbG9nIHwgT2xkIEJsb2cgfCBHaXRodWIgfCBMaW5rZWRJbgoKCjIwMTctMTEtMjggNzo0NiBHTVQrMDE6MDAgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Ogo+PiBXaXRoIHNvIG11Y2ggZGlmZmVyZW5jZSBJIHN0cm9uZ2x5IHRoaW5rIHRoZXJlIGFyZSByb29tIGZvciBpbXByb3ZlbWVudCA9CmJ1dAo+PiBmYWlsIHRvIHNlZSBob3cgbWF2ZW4gZ3JhcGggY29tcHV0YXRpb24gY2FuIGxvb2sgdGhhdCBiYWQgOiguCj4gSU1ITywgdmlzdWFsaXppbmcgdGhhdCBncmFwaCBhbmQgdGhlIGVmZmVjdGl2ZSB0aW1lIG9uIGVhY2ggYnVpbGQgc3RlcCBpcz0KIHRoZQo+IGZpcnN0IHRoaW5nIHRvIGRvIGJlZm9yZSB0cnlpbmcgdG8gY2hhbmdlIGFueXRoaW5nCj4gSXQncyBvbiBteSBUT0RPIGxpc3QgZm9yIGEgbG9uZyB0aW1lOiBoYXZpbmcgc29tZSBjb21tb24gd29yayBvbiBpdCB3b3VsZD0KIGhlbHAKPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUMzPUE5Cj4KPiBMZSBtYXJkaSAyOCBub3ZlbWJyZSAyMDE3LCAwNzowNDowNCBDRVQgUm9tYWluIE1hbm5pLUJ1Y2F1IGEgPUMzPUE5Y3JpdCA6Cj4+IExlIDI3IG5vdi4gMjAxNyAyMzowMiwgIk1hbmZyZWQgTW9zZXIiIDxtYW5mcmVkQHNpbXBsaWdpbGl0eS5jb20+IGEgPUMzPQo9QTljcml0IDoKPj4KPj4gSnVzdCBteSAyYyBhcyBhIGxvbmcgdGVybXMgTWF2ZW4gdXNlciBhbmQgY29tbWl0dGVyLi4KPj4KPj4gUGVvcGxlIGhhdmUgYmVlbiBtb3ZpbmcgZnJvbSBvbmUgYnVpbGQgdG9vbCB0aGUgb3RoZXIgZm9yIHllYXJzLiBUaGF0Cj4+IGluY2x1ZGVzIHRvIEdyYWRsZSwgdG8gTWF2ZW4gYW5kIHRvIGFsbCBzb3J0cyBvZiBvdGhlcnMgc3R1ZmYgYW5kIGJhY2suID0KSWYKPj4gdGhlIEJlYW0gcHJvamVjdCB0aGlua3MgdGhleSB3aWxsIGdldCBzaWduaWZpY2FudCBpbXByb3ZlbWVudHMgZm9yIHRoZWlyCj4+IGJ1aWxkIHRpbWVzIGFuZCB0aGV5IHdhbnQgdG8gbWlncmF0ZS4uIGxldCB0aGVtLiBUaGV5IHdpbGwgaGF2ZSB0byBsZWFybj0KIGEKPj4gd2hvbGUgYnVuY2ggb2YgZGlmZmVyZW50IHRoaW5ncyBhbmQgc2VlIHNvbWUgYWR2YW50YWdlcyBhcyB3ZWxsIGFzIGxvdCBvPQpmCj4+IGRpc2FkdmFudGFnZXMuCj4+Cj4+Cj4+IFRoZXkgYWxyZWFkeSBoYXZlIGdyYWRsZSBidWlsZCBmdW5jdGlvbmFsLgo+Pgo+Pgo+Pgo+PiBGcm9tIG15IHBlcnNwZWN0aXZlIHRoZSBidWlsZCB0aW1lIGlzIE5PVCBzaWduaWZpY2FudGx5IGZhc3RlciB3aXRoIEdyYWQ9CmxlCj4+IGFuZCBkZXBlbmRzIGEgTE9UIG9uIHdoYXQgeW91ciBidWlsZCBhY3R1YWxseSBkb2VzLiBNb3JlIGltcG9ydGFudGx5IHRoZQo+PiBpbnRlZ3JhdGlvbiB3aXRoIElERXMgYW5kIG90aGVyIHRvb2xzIGlzIGEgbG90IHdvcnNlIGluIG1hbnkgYXNwZWN0cy4KPj4KPj4KPj4gSXQgaXMgZm9yIG11bHRpbW9kdWtlIHByb2plY3QuIEkgZGlkbnQgcmVwcm9kdWNlIHRoZWlyIGZpZ3VyZXMgYnV0IHNraXBwPQppbmcKPj4gdGhlaXIgcHl0aG9uIHBhcnQgaXQgaXMgcmVhbGx5IGxpa2UgMzAlIGZhc3RlciBmb3IgbWUgZm9yIHRoZSBzYW1lIHRoZy4KPj4KPj4KPj4KPj4gQXMgbG9uZyBhcyB0aGV5IGNhbiBtYWtlIHN1cmUgdGhhdCB0aGVpciBiaW5hcmllcyBhcmUgcHVibGlzaGVkIHNvIHRoYXQgPQphbnkKPj4gdXNlciBjYW4gZWFzaWx5IGNvbnN1bWUgdGhlbSAoZS5hLiB0aGV5IHB1Ymxpc2ggcHJvcGVyIGJpbmFyaWVzIGFuZCBwb20KPj4gZmlsZXMgdG8gdGhlIENlbnRyYWwgUmVwb3NpdG9yeSkgSSBoYXZlIG5vIG9iamVjdGlvbi4KPj4KPj4gT2YgY291cnNlIGlmIHRoZXkgd291bGQgc3RlcCB1cCBhbmQgaGVscCB1cyB3aXRoIE1hdmVuIGFuZCBtYWtlIGl0IGJldHRlPQpyCj4+IHRoYXQgd291bGQgY2VydGFpbmx5IGJlIGJldHRlciB0aGFuIHB1dHRpbmcgZWZmb3J0IGludG8gbWlncmF0aW5nLi4uIGJ1dAo+PiB0aGF0cyBhIGRpZmZlcmVudCBzdG9yeS4KPj4KPj4gQW5kIGFub3RoZXIgb25lIG9mIGNvdXJzZSBpcyB0aGF0IEdyYWRsZSBpcyBvcGVuIHNvdXJjZSBwcm9qZWN0IG1vc3RseQo+PiBzcG9uc29yZWQgYnkgYSBzaW5nbGUgY29tcGFueSBhbmQgaGVuY2UgdW5kZXIgYSB2ZXJ5IGRpZmZlcmVudCBjb250cm9sCj4+IGNvbXBhcmVkIHRvIE1hdmVuLi4KPj4KPj4KPj4KPj4gQWdyZWUgYml0IC8yIC0gZm9yIG1vc3Qgb3RoZXIgcGVvcGxlIC0gdGhlIGJ1aWxkIHRpbWUgd2hpY2ggaXMgc2lnbmlmaWNhPQpudAo+PiAoaXQgaXMgbm90IGEgY29tbW1vbnMgcHJvamVjdCB5b3UgY2FuIGJ1aWxkIGluIGxlc3MgdGhhbiA1bW4gOykpLgo+Pgo+PiBXaXRoIHNvIG11Y2ggZGlmZmVyZW5jZSBJIHN0cm9uZ2x5IHRoaW5rIHRoZXJlIGFyZSByb29tIGZvciBpbXByb3ZlbWVudCA9CmJ1dAo+PiBmYWlsIHRvIHNlZSBob3cgbWF2ZW4gZ3JhcGggY29tcHV0YXRpb24gY2FuIGxvb2sgdGhhdCBiYWQgOiguCj4+Cj4+Cj4+IE1hbmZyZWQKPj4KPj4gUm9tYWluIE1hbm5pLUJ1Y2F1IHdyb3RlIG9uIDIwMTctMTEtMjcgMTM6NDM6Cj4+ID4gRG9lc250IGNoYW5nZSBhbnl0aGluZyBzaWduaWZpY2F0aXZlIC0gdGhpcyBpcyBteSBzZXR1cC4KPj4gPgo+PiA+IExlIDI3IG5vdi4gMjAxNyAyMjowMSwgIklnb3IgRmVkb3JlbmtvIiA8aWdvckBpZmVkb3JlbmtvLmNvbT4gYSA9QzM9QTk9CmNyaXQgOgo+PiA+PiBJIHdvdWxkbid0IGJvdGhlciB3aXRoIFRha2FyaSBsb2NhbCByZXBvc2l0b3J5LCBpdCdzIGJyb2tlbiBicm9rZW4sIHM9CmVlCj4+ID4+IFsxXSBhbmQgWzJdLiBEZWZhdWx0IEFldGhlciBsb2NhbCByZXBvc2l0b3J5IGltcGwgaXMgdGhyZWFkLXNhZmUgZW5vdT0KZ2gsCj4+ID4+IGF0IGxlYXN0IHdoZW4gbG9jYWwgcmVwb3NpdG9yeSBpcyB1c2VkIGZyb20gc2luZ2xlLXByb2Nlc3MKPj4gPj4gbXVsdGktdGhyZWFkZWQgYnVpbGQuCj4+ID4+Cj4+ID4+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vdGFrYXJpL3Rha2FyaS1sb2NhbC1yZXBvc2l0b3J5L2lzc3Vlcy80Cj4+ID4+IFsyXSBodHRwczovL2dpdGh1Yi5jb20vdGFrYXJpL3Rha2FyaS1sb2NhbC1yZXBvc2l0b3J5L2lzc3Vlcy81Cj4+ID4+Cj4+ID4+IC0tCj4+ID4+IFJlZ2FyZHMsCj4+ID4+IElnb3IKPj4gPj4KPj4gPj4gT24gTW9uLCBOb3YgMjcsIDIwMTcsIGF0IDAzOjI4IFBNLCBNaWNoYWVsIE9zaXBvdiB3cm90ZToKPj4gPj4gPiBJIHJlYWxseSB3b3VsZCBsaWtlIHRvIHNlZSB0aGUgc2FtZSBudW1iZXJzIHdpdGggVGFrYXJpIFNtYXJ0IEJ1aWxkPQplcgo+PiA+PiA+IGFuZCB0aHJlYWQtc2FmZSBsb2NhbCByZXBvIG1vZHVsZS4KPj4gPj4gPgo+PiA+PiA+IEFtIDIwMTctMTEtMjcgdW0gMjA6NTIgc2NocmllYiBSb21haW4gTWFubmktQnVjYXU6Cj4+ID4+ID4gPiBFdmVuIGRvaW5nIGl0IHRoZSBkaWZmZXJlbmNlIGlzIHNpZ25pZmljYXRpdmUuIFRoZSBwYXJhbGxlbGlzbSBhbj0KZAo+PiA+PiA+ID4gZ3JhcGggY29tcHV0YXRpb24gKGxpbmtlZCB0byB0aGUgbG9jYWwgcmVwbyB0aHJlYWQgc2FmZXR5KSBpcyB0aGUKPj4KPj4gbWFpbgo+Pgo+PiA+PiA+ID4gZHJhd2JhY2sgb2YgbWF2ZW4gaXQgc2VlbXMuCj4+ID4+ID4gPgo+PiA+PiA+ID4gUm9tYWluIE1hbm5pLUJ1Y2F1Cj4+ID4+ID4gPiBAcm1hbm5pYnVjYXUgfCAgQmxvZyB8IE9sZCBCbG9nIHwgR2l0aHViIHwgTGlua2VkSW4KPj4gPj4gPiA+Cj4+ID4+ID4gPiAyMDE3LTExLTI3IDIwOjQ3IEdNVCswMTowMCBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz46Cj4+ID4+ID4gPj4gQW0gMjAxNy0xMS0yNyB1bSAyMDoyNCBzY2hyaWViIFJvbWFpbiBNYW5uaS1CdWNhdToKPj4gPj4gPiA+Pj4gSGkgZ3V5cywKPj4gPj4gPiA+Pj4KPj4gPj4gPiA+Pj4gYW55dGhpbmcgZG9hYmxlIG9uIG1hdmVuIHNpZGUgKGVpdGhlciB0dW5pbmcgb3IgY29kZSBjaGFuZ2VzKSB0PQpvIGJlCj4+ID4+Cj4+ID4+IGFzCj4+ID4+Cj4+ID4+ID4gPj4+IGdvb2QgYXMgZ3JhZGxlIG9uIGJlYW0gcHJvamVjdC4gVGhlIHByb2plY3QgaXMgZ29pbmQgdG8gbGVhdmUgbT0KYXZlbgo+PiA+Pgo+PiA+PiBhcwo+PiA+Pgo+PiA+PiA+ID4+PiBidWlsZCB0b29sIChbMV0pIGFuZCBJIHRoaW5rIGl0IGlzIHZlcnkgYmFkIGZvciAxLiB0aGUgY29tbXVuaXQ9CnkKPj4KPj4gYW5kCj4+Cj4+ID4+ID4gPj4+IDIuIEFTRiBhcyBhbiBlY29zeXN0ZW0uCj4+ID4+ID4gPj4+Cj4+ID4+ID4gPj4+IFsxXQo+PiA+PiA+ID4+PiBodHRwczovL2xpc3RzLmFwYWNoZS5vcmcvdGhyZWFkLmh0bWwvNmQ2ZjdmZmM2NjYyMmRiMWRkNDU5ZTE3MDQ9CmMzYTUKPj4gPj4KPj4gPj4gZDhhNGJjMjljMmQ5YzBiNjAzNTRmZDNiNmFAJTNDZGV2LmJlYW0uYXBhY2hlLm9yZyUzRQo+PiA+Pgo+PiA+PiA+ID4+IERpZCB0aGV5IGRpc2FibGUgdGhlIGJ1aWxkIGRhZW1vbj8gSWYgbm90LCBpdCBpcyBub3QgYSBmYWlyCj4+ID4+Cj4+ID4+IGNvbXBhcnNpb24uCj4+ID4+Cj4+ID4+ID4gPj4gTWljaGFlbAo+PiA+PiA+ID4KPj4gPj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotLS0tCj4+ID4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+PiA+Cj4+ID4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLS0KPj4gPj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+PiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4gPj4KPj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NDM1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBOb3YgIDYgMDg6NTI6MTUgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDM1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEI1MjU5MTcyRUQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAgNiBOb3YgMjAxNyAwODo1MjoxNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE1MjI2IGludm9rZWQgYnkgdWlkIDUwMCk7IDYgTm92IDIwMTcgMDg6NTI6MTUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE1MTI3IGludm9rZWQgYnkgdWlkIDUwMCk7IDYgTm92IDIwMTcgMDg6NTI6MTUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNTExNCBpbnZva2VkIGJ5IHVpZCA5OSk7IDYgTm92IDIwMTcgMDg6NTI6MTUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDA2IE5vdiAyMDE3IDA4OjUyOjE1ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMzUyOTcxODA3NzgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICA2IE5vdiAyMDE3IDA4OjUyOjE0ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS42NzkKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjY3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUtBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDNPVW1PNl9XaW53YSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgIDYgTm92IDIwMTcgMDg6NTI6MTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC15dzAtZjE3Ni5nb29nbGUuY29tIChtYWlsLXl3MC1mMTc2Lmdvb2dsZS5jb20gWzIwOS44NS4xNjEuMTc2XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDdBMzc4NUYyQUMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICA2IE5vdiAyMDE3IDA4OjUyOjExICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXl3MC1mMTc2Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHcyc283MTkzMTExeXdhLjkKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAwNiBOb3YgMjAxNyAwMDo1MjoxMSAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bwogICAgICAgICA6Y29udGVudC10cmFuc2Zlci1lbmNvZGluZzsKICAgICAgICBiaD1Da1hWeGh2T2VpendGdkdlRFg4eTBTYkVPUmZMSzEyMEdVWjhGa1Bhek8wPTsKICAgICAgICBiPWRkaHNZbHptdU5sa2Y0MUx0YnI5NVNKNjNVYnRIYjdTU29Nc1didFVqeVRkVlZIOVpvazJnSFBZWlJOa09udEVYbgogICAgICAgICBwRUsxSStNQXN6dnIxeGl1ZWR3Y3VqN2swREIxb2dzUFlPcDBVd2s1VXdkOHMvN2paV1JVazNNTXJYWWtMcTFFcnB6cQogICAgICAgICB2WDZkSWJzQVBsUHV1b0VXUEpsWWU0K2p2MkRZRnJXM0xlbzRGMnBscFVLVHA3eXc2a1hiUXp5ZkJwa1NUWmwydnVCZgogICAgICAgICB3a3M1OVRtOUhOdjg1dnFZWXlTU3Y3YVFHeUREWEJhUUkvR2dUbkNwRW9nTEdOQm9Vd0pTOEhOSjVoa0dPODJBY1hkUgogICAgICAgICBHZDhrT0JGQjk2TFlXQ1RreWRQdGNqZzdJTUVWWlBranBRcnY2cVRZdHJyZy9GSVpuU2tXdElzT0tnMVJiZTRzaXg1QwogICAgICAgICBPSmlBPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzpjb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOwogICAgICAgIGJoPUNrWFZ4aHZPZWl6d0Z2R2VEWDh5MFNiRU9SZkxLMTIwR1VaOEZrUGF6TzA9OwogICAgICAgIGI9Tkc4aWM0d3dtajlQem5GSDkvUDBKaDE1M3NwSFNianpmbEVsZkswMFUvRlY0U2x6R3ZLb3drTFcvUkoyajdxbkExCiAgICAgICAgIHA2STBvRER4NkVOMjh4UzVMZEprcStZYnRzblJWOHhINnU2ZDdQL1B6Y0pEZXYxaHAyd1VtNWZKdmFDQXA4ZUlQQkV1CiAgICAgICAgIDI0RzdZcDdJNUh4dXIycmVFeXJPWFptRTkzRXdPaHUrNXJySk5LN1NFRjQ1NC8zaXhYelk2bnFzNnlNS1c1Ny9pdC95CiAgICAgICAgIExHdmtwNG1ZUXZUdnUwS0c1SEpwcy9Hc0ZzTWxYMkkxRis2VENJOXo3WjVWZTYvM1RXZWNBK0NQWlgvM2g5ZWV5M2ZmCiAgICAgICAgIFJ0MzUvV1pXUWl0REtjQUp6dDllZlVvTTM3OFJJQUljZVpVL3owbnFLM1J3b0x6U3FwSW14VXFGR0xaUkg1elJ4THBFCiAgICAgICAgIEtGeFE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVZlT3R5V1dDVFA3cEEyQlc0UkxaeWFhTnRheTJ2VWpXQUxvR1VmNGpiQ1lBMjUyMVIwCglMdU9iendNL2dVWkw0SnY4Y3Z0MUdFRmJjckNhb04yK0t1aXRhZFdVQlE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArUm9EQ0pmR2kwQ0t0dDFrdUFYeS9pRnBDbVIwSlhVRC9tSGgwbGczOWRVYnMwUmJKSTIvNkU1L2c2ZzNkOFdTVkZFTG5palkzQ0dnSTEvejJsNFVNVT0KWC1SZWNlaXZlZDogYnkgMTAuMzcuMTkwLjEzOSB3aXRoIFNNVFAgaWQgaTExbXI5MDU2MjA4eWJrLjI5Ni4xNTA5OTU4MzMwMTk0OwogTW9uLCAwNiBOb3YgMjAxNyAwMDo1MjoxMCAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMzcuNS4xNDkgd2l0aCBIVFRQOyBNb24sIDYgTm92IDIwMTcgMDA6NTE6NDkgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDxDQStuUG5NeHNNMU94aVpRdW45dmpLSGJ3QmdNaXdyWUVqYUI1WDRYbkZtR0xlVFpZRUFAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQStuUG5Nd0VIOVoybXlwNzF1YVNyZGN5TEpSRnJFLVZydDIwMTkxcmQwMWgrVWZoandAbWFpbC5nbWFpbC5jb20+CiA8Q0FMWUdtMXhiMU1PSHBzWCs3RUc4eDRiZC16SForTzk1ZTJZNVkyRHVkWmlFRTZlTkNBQG1haWwuZ21haWwuY29tPgogPG9wLnk4Njd3eGg0a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPiA8RTk5QTA0RjYtQjc4RS00QjRGLTgyRTktQzg5QThGQjc0NERFQHRhbGlvcy5jb20+CiA8NTlmZjgyNTguZWNiMmRmMGEuNWQzMTYuYmM4OUBteC5nb29nbGUuY29tPiA8Q0FDTEU9N01LTF82Q052UkJuVk82a3JGeEhNODZlaDg4b1pRT3JILXZ0cXRzcS1RUUVBQG1haWwuZ21haWwuY29tPgogPENBK25Qbk14c00xT3hpWlF1bjl2aktIYndCZ01pd3JZRWphQjVYNFhuRm1HTGVUWllFQUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogUm9tYWluIE1hbm5pLUJ1Y2F1IDxybWFubmlidWNhdUBnbWFpbC5jb20+CkRhdGU6IE1vbiwgNiBOb3YgMjAxNyAwOTo1MTo0OSArMDEwMApNZXNzYWdlLUlEOiA8Q0FDTEU9N01WaFdzZkVqeWtWUXNBQ3UzdHVYLV9RTld2QlJIa1JNTCtBa0ttblczWGNnQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogTWF2ZW4gNC4wLjAKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCmluZGVlZDogaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjMwMgoKUm9tYWluIE1hbm5pLUJ1Y2F1CkBybWFubmlidWNhdSB8ICBCbG9nIHwgT2xkIEJsb2cgfCBHaXRodWIgfCBMaW5rZWRJbgoKCjIwMTctMTEtMDYgOTozNyBHTVQrMDE6MDAgU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT0KPjoKPiBPbiBNb24gNiBOb3YgMjAxNyBhdCAwODoxMywgUm9tYWluIE1hbm5pLUJ1Y2F1IDxybWFubmlidWNhdUBnbWFpbC5jb20+Cj4gd3JvdGU6Cj4KPj4gRm9yZ290IGEgdXNlciB3aXNoIGZlYXR1cmU6IHNvbWUgcHJvZ3Jlc3MgbG9nZ2luZyBzb21laG93LiBPbiAiYmlnIiBwcm9qPQplY3QKPj4gKGFjdHVhbGx5IG9uIHByb2plY3QgbG9nZ2luZyBhIGxvdCkgeW91IGFyZSBlYXNpbHkgbG9zdCBvbiB0aGUgcHJvZ3Jlc3MsCj4+IHlvdSBrbm93IGN1cnJlbnQgbW9kdWxlIGlzIFggYnV0IHlvdSBkb24ndCBrbm93IGFueW1vcmUgaWYgaXQgaXMgNTAlIG9mID0KdGhlCj4+IGJ1aWxkIG9yIDUlLiBIYXZpbmcgYXQgbGVhc3QgIm1vZHVsZSBYIC8gWSIgd291bGQgYmUgaGVscGZ1bC4gSU1PIGl0IGlzCj4+IGVub3VnaCB0byBsb2cgaXQgd2l0aCB0aGUgbW9kdWxlIG5hbWU6Cj4+Cj4+IFtJTkZPXQo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gW0lORk9dIEJ1aWxkaW5nIEZvbyAxLjAuMC1TTkFQU0hPVAo+PiBbSU5GT10KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFtJTkZPXSBNb2R1bGUgMTAgLyAxMDAKPj4KPgo+IENhbiB5b3UgZmlsZSBhIEpJUkE/Cj4KPj4KPj4KPj4KPj4KPj4KPj4gUm9tYWluIE1hbm5pLUJ1Y2F1Cj4+IEBybWFubmlidWNhdSA8aHR0cHM6Ly90d2l0dGVyLmNvbS9ybWFubmlidWNhdT4gfCAgQmxvZwo+PiA8aHR0cHM6Ly9ybWFubmlidWNhdS5tZXRhd2VyeC5uZXQvPiB8IE9sZCBCbG9nCj4+IDxodHRwOi8vcm1hbm5pYnVjYXUud29yZHByZXNzLmNvbT4gfCBHaXRodWIgPAo+PiBodHRwczovL2dpdGh1Yi5jb20vcm1hbm5pYnVjYXU+IHwKPj4gTGlua2VkSW4gPGh0dHBzOi8vd3d3LmxpbmtlZGluLmNvbS9pbi9ybWFubmlidWNhdT4KPj4KPj4gMjAxNy0xMS0wNSAyMjoyNyBHTVQrMDE6MDAgQmVybmQgRWNrZW5mZWxzIDxlY2tpQHp1c2FtbWVua3VuZnQubmV0PjoKPj4KPj4gPiBIZWxsbywKPj4gPgo+PiA+Cj4+ID4KPj4gPiBBZGRpbmcgYW5ub3RhdGlvbnMgYW5kIHByb2Nlc3NvciBhcyBhIGNvbXBpbGV0aW1lIGRlcGVuZGVuY3kgc291bmRzIGxpPQprZQo+PiBhCj4+ID4gcmVhc29uYWJsZSB0aGluZy4gSXQgd291bGQgaG93ZXZlciBiZSBjb29sIGlmIHRoZSBKQVIgY291bGQgZGVzY3JpYmUKPj4gd2hpY2gKPj4gPiBwYWNrYWdlIG5lZWRzIHRvIGdvIG9uIHRoZSBjbGFzc3BhdGggYW5kIHdoaWNoIGlzIHByb2Nlc3NvciBpbXBsLiAoYW5kCj4+ID4gaGF2aW5nIGEgZGlmZmVyZW50IGFydGlmYWN0IGZvciBydW50aW1lKQo+PiA+Cj4+ID4KPj4gPgo+PiA+IEdydXNzCj4+ID4KPj4gPiBCZXJuZAo+PiA+Cj4+ID4KPj4gPgo+PiA+ICpWb246ICpNYXJrIERlcnJpY3V0dCA8bWFya0B0YWxpb3MuY29tPgo+PiA+ICpHZXNlbmRldDogKlNvbm50YWcsIDUuIE5vdmVtYmVyIDIwMTcgMjI6MjAKPj4gPiAqQW46ICpNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgo+PiA+ICpCZXRyZWZmOiAqUmU6IE1hdmVuIDQuMC4wCj4+ID4KPj4gPgo+PiA+Cj4+ID4gT24gNSBOb3YgMjAxNywgYXQgMTA6NDIsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+PiA+Cj4+ID4gSSB3b3VsZCBsaWtlIHRvIGRyb3Agc3RyaWN0IHNjb3BlcyBpbiBnZW5lcmFsIGFuZCBnaXZlIHBsdWdpbnMgdGhlCj4+ID4gb3Bwb3J0dW5pdHkgdG8gZGVwZW5kIG9uCj4+ID4gc3BlY2lmaWMgc2NvcGVkIGRlcGVuZGVuY2llcy4KPj4gPgo+PiA+IEhvdyB3b3VsZCB0aGlzIGhlbHAgd2l0aCBhbm5vdGF0aW9ucyB0aG8/IFRoZSBtYWluIGlzc3VlIEknbSBmYWNpbmcgaXMKPj4gPiBoYXZpbmcgYSBzdGFuZGFyZCBtLWMtcCBwbHVnaW4gZGVmaW5pdGlvbiBpbiBhIHBhcmVudCAoIG9yIHRpbGUgKSBidXQKPj4gPiBuZWVkaW5nIGRpZmZlcmVudCBhbm5vdGF0aW9uIHByb2Nlc3NvcnMgdXNlZCBwZXIgcHJvamVjdC4gV2l0aCB0aGUKPj4gY3VycmVudAo+PiA+IHBsdWdpbiwgdGhpcyBtZWFucyBlaXRoZXIgbGlzdGluZyB0aGVtIGFzIHN0YW5kYXJkIGRlcGVuZGVuY2llcyBhbmQgaGE9CnZlCj4+ID4gdGhlbSBhdXRvLXNjYW5uZWQsIGFuZCBwb2xsdXRlIHRoZSBjb21waWxhdGlvbiBjbGFzc3BhdGgsIG9yIGxpc3QgZXZlcj0KeQo+PiA+IHBvc3NpYmxlIGFubm90YXRpb24gcHJvY2Vzc29yIGRlcGVuZGVuY3kgd2UgbWF5IHVzZSBpbiBvdXIgcHJvamVjdHMgaW4KPj4gdGhlCj4+ID4gcGFyZW50LCB3aGljaCBpcyBsZXNzIHRoYW4gaWRlYWwuCj4+ID4KPj4gPiBJIGhvcGUgeW91IGFyZSBhd2FyZSB0aGF0IG1vZHVsZXMgYWxyZWFkeSBlbmQgdXAgb24gdGhlIG1vZHVsZXBhdGggYmFzPQplZAo+PiA+IG9uIHRoZSBtb2R1bGVkZXNjcmlwdG9yKHMpLiBTbyBJIGRvbid0IHNlZSB0aGUgbmVlZCBmb3IgdGhpcyBzY29wZS4KPj4gKHVubGVzcwo+PiA+IHlvdSBoYXZlIHRoaXMgd2lzaCB0aGF0IGluIHRoZSBlbmQgTWF2ZW4gd2lsbCBjcmVhdGUgdGhlIG1vZHVsZQo+PiBkZXNjcmlwdG9yCj4+ID4gYmFzZWQgb24gdGhpcywgYnV0IEkgc3RpbGwgdGhpbmsgd2Ugc2hvdWxkbid0IGRvIHRoYXQpCj4+ID4KPj4gPiBJIHJlbWVtYmVyZWQgcmVhZGluZyBzb21ldGhpbmcgYWJvdXQgdGhpcywgYW5kIGFzc3VtZWQgaXQgd2FzIHRoZSBjYXNlPQogaWYKPj4gPiB0aGVyZSB3YXMgYSBtb2R1bGUtaW5mby5jbGFzcywgYnV0IHdoYXQgaWYgaXRzIGEgc3RhbmRhcmQgamFyIHdpdGggYW4KPj4gPiBBdXRvbWF0aWMtTW9kdWxlLU5hbWUgaGVhZGVyPyBEb2VzIHRoYXQgZmFsbCBpbnRvIHRoZSBtb2R1bGUgcGF0aCBvcgo+PiA+IGNsYXNzcGF0aD8gSGF2aW5nIGNvbnRyb2wgZm9yIHRoaXMgY2FzZSBtYXkgYmUgdXNlZnVsLgo+PiA+Cj4+ID4gSSByZWNvZ25pemUgdGhpcyB3aXNoLiBUaGUgYmVzdCBzb2x1dGlvbiBpcyB0byBtYWtlIHRoZSBkZXBlbmRlbmN5Cj4+ID4gb3B0aW9uYWwuCj4+ID4KPj4gPiBUaGUgcHJvYmxlbSB3aXRoIHRoaXMgaXMgdGhhdCB0aGUgZGVwZW5kZW5jeSBpcyBzdGlsbCBvbiB0aGUgY2xhc3NwYXRoCj4+IGZvcgo+PiA+IHNheSBzdXJlZmlyZSwgd2hpY2ggY2FuIGluZmx1ZW5jZSBiZWhhdmlvdXIuCj4+ID4KPj4gPiBNYXJrCj4+ID4KPj4gPiAiVGhlIGVhc2Ugd2l0aCB3aGljaCBhIGNoYW5nZSBjYW4gYmUgaW1wbGVtZW50ZWQgaGFzIG5vIHJlbGV2YW5jZSBhdCBhPQpsbAo+PiA+IHRvIHdoZXRoZXIgaXQgaXMgdGhlIHJpZ2h0IGNoYW5nZSBmb3IgdGhlIChKYXZhKSBQbGF0Zm9ybSBmb3IgYWxsIHRpbWU9Ci4iCj4+ID1FMj04MD05NAo+PiA+IE1hcmsgUmVpbmhvbGQuCj4+ID4KPj4gPiBNYXJrIERlcnJpY3V0dAo+PiA+IGh0dHA6Ly93d3cudGhlb3J5aW5wcmFjdGljZS5uZXQKPj4gPiBodHRwOi8vd3d3LmNoYWxpY2VvZmJsb29kLm5ldAo+PiA+IGh0dHA6Ly9wbHVzLmdvb2dsZS5jb20vK01hcmtEZXJyaWN1dHQKPj4gPiBodHRwOi8vdHdpdHRlci5jb20vdGFsaW9zCj4+ID4gaHR0cDovL2ZhY2Vib29rLmNvbS9tZGVycmljdXR0Cj4+ID4KPj4gPgo+PiA+Cj4+ID4KPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4gPgo+Pgo+IC0tCj4gU2VudCBmcm9tIG15IHBob25lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0MzgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIE5vdiAgNiAxMDozMDo0NCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0MzgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRTMyRkYxNzRDRgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sICA2IE5vdiAyMDE3IDEwOjMwOjQzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzQ2MTMgaW52b2tlZCBieSB1aWQgNTAwKTsgNiBOb3YgMjAxNyAxMDozMDo0MyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzQ1MzkgaW52b2tlZCBieSB1aWQgNTAwKTsgNiBOb3YgMjAxNyAxMDozMDo0MyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM0NDI5IGludm9rZWQgYnkgdWlkIDk5KTsgNiBOb3YgMjAxNyAxMDozMDo0MyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMDYgTm92IDIwMTcgMTA6MzA6NDMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA3MjkzNDE4MDM1MwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgIDYgTm92IDIwMTcgMTA6MzA6NDIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjY3OQpYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuNjc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgS0FNX05VTVNVQkpFQ1Q9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgV0pIX2xLdlRUV3ZRIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAgNiBOb3YgMjAxNyAxMDozMDo0MCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXl3MC1mMTc1Lmdvb2dsZS5jb20gKG1haWwteXcwLWYxNzUuZ29vZ2xlLmNvbSBbMjA5Ljg1LjE2MS4xNzVdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMTlBQUY2MTg0OAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgIDYgTm92IDIwMTcgMTA6MTY6NDkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwteXcwLWYxNzUuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgcTEyNnNvNzMzOTAyNXl3cS4xMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDA2IE5vdiAyMDE3IDAyOjE2OjQ5IC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvCiAgICAgICAgIDpjb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOwogICAgICAgIGJoPTFrbVdoTVkrN2lzQ0hQYm9FUnVBZUVGMFJzY0J0RlBKVlRhTGhtR2xNNG89OwogICAgICAgIGI9aEduc1pJOHlGcHhNQlViUXNpd2NxVVVVelV6aGtZZnVEUDZtZjZzMWY2Q2pqci95Qlg3NUg0amFzWG0vMWxZQWlxCiAgICAgICAgIHI2enBlOG5xU2R6cmZwUlgxOGc4Wng5Tk5GU0RCcmxqT3VMREQ1Tk1yVHZ4K1ZhWjhTV204WDVxSDZielB5WlF6VEkrCiAgICAgICAgIEtUVm9uZGhMMW5pVWpKb3dUQm5uVTBNbERHRWgzYjg1dVI5MzgwYlJsR2RrWU9ZbmhoUS83K3ZUOExDMk9wcDBPZjdLCiAgICAgICAgIHVab1VjbkxRN3hQN001dDYzNjNTMkxKT1FTZEMya1RzWjdvUUV4L3h4VFFNdll4WGhTRElJTjJyL3JoOVdXR2dKOEs4CiAgICAgICAgIEZZNVpQQnc1RlM5TnVRSm96MlB0aG8wYWoxNGFsdFhMZGo1M0dMTVNOWnI0MTlSV2x6TWQ4SlA2cURmSVVqSGFIYlRWCiAgICAgICAgIG9SK0E9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOmNvbnRlbnQtdHJhbnNmZXItZW5jb2Rpbmc7CiAgICAgICAgYmg9MWttV2hNWSs3aXNDSFBib0VSdUFlRUYwUnNjQnRGUEpWVGFMaG1HbE00bz07CiAgICAgICAgYj1pNFFURHMrM2Y2NWNkTG8zNXZkaGtZT3NwdXp4OVd1ODVESEljc2pMZkhFZXM0YXEyR0pvcEJIMnRZdllJVnVoQ2sKICAgICAgICAgMDZwVnhuSHJ5cFlVYzZpQWpsN2t6bnFPd21DclZnM3NoVFZWKzdhakd6YklBd1pUMFl5TjlHM09ORnVVR21aNndhK0IKICAgICAgICAgemgwNzd3enpRNVJlZFBaUkJNSnk1MThoMzkyOFh0TU1lSFRFaFJ1S2JoZDRRQVk2VkJhM2Y1SWNTSTBnbUdBTVZJeWUKICAgICAgICAgRVNWamRXQUdkSDU4TkRyWEdqdnlzVFBaZXN3UW9zZGVGU3FUVUd3em8zL0I1RDZJajVsajhhTU12OU1pcGQ3bml5cnkKICAgICAgICAgN0xzaFpVZWVVOU11VHpQRlNEOEF5eTFyWGhWYUxsdS8zU0hpMUxReFpZdjNuU3RhYURDL3dEOSt4UWlVLzUvY1hTUC8KICAgICAgICAgK1A1dz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVkNobzRuQmhDK3ZBSHcrRFZjZVlnWEV6MVpOWG1OZWxsOWIxSGF5ekdrelhra0RGRWkKCXRNUEdjLzA0S3ZEYVNYTkora2tNZklSZXZoZS9VYzhGU2xuOFV5RT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFCaFFwK1JGdnV0bVV3R0g0TjR6L1JBYkZoR2FkaVJWelVHZHFlWTFkZDUrM1ZZYjBkdXRYVHVReWlocVFPVk9KbkFJRFNhdVhJSXNmZytWQjgwcmNNRURnWWc9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjM3LjE5OS4xMzcgd2l0aCBTTVRQIGlkIHcxMzFtcjkwMzQxNjZ5YmUuMTE4LjE1MDk5NjM0MDE1MTE7CiBNb24sIDA2IE5vdiAyMDE3IDAyOjE2OjQxIC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4zNy41LjE0OSB3aXRoIEhUVFA7IE1vbiwgNiBOb3YgMjAxNyAwMjoxNjoyMCAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPENBK25Qbk16RlZEVFl5ckZCYlU0YnoxZzNhSzZHQW5Vb3I1TGRhQmd0eUZHVFUzb3BtZ0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk13RUg5WjJteXA3MXVhU3JkY3lMSlJGckUtVnJ0MjAxOTFyZDAxaCtVZmhqd0BtYWlsLmdtYWlsLmNvbT4KIDxDQUxZR20xeGIxTU9IcHNYKzdFRzh4NGJkLXpIWitPOTVlMlk1WTJEdWRaaUVFNmVOQ0FAbWFpbC5nbWFpbC5jb20+CiA8b3AueTg2N3d4aDRrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDxFOTlBMDRGNi1CNzhFLTRCNEYtODJFOS1DODlBOEZCNzQ0REVAdGFsaW9zLmNvbT4KIDw1OWZmODI1OC5lY2IyZGYwYS41ZDMxNi5iYzg5QG14Lmdvb2dsZS5jb20+IDxDQUNMRT03TUtMXzZDTnZSQm5WTzZrckZ4SE04NmVoODhvWlFPckgtdnRxdHNxLVFRRUFAbWFpbC5nbWFpbC5jb20+CiA8Q0ErblBuTXhzTTFPeGlaUXVuOXZqS0hid0JnTWl3cllFamFCNVg0WG5GbUdMZVRaWUVBQG1haWwuZ21haWwuY29tPgogPENBQ0xFPTdNVmhXc2ZFanlrVlFzQUN1M3R1WC1fUU5XdkJSSGtSTUwrQWtLbW5XM1hjZ0BtYWlsLmdtYWlsLmNvbT4gPENBK25Qbk16RlZEVFl5ckZCYlU0YnoxZzNhSzZHQW5Vb3I1TGRhQmd0eUZHVFUzb3BtZ0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogUm9tYWluIE1hbm5pLUJ1Y2F1IDxybWFubmlidWNhdUBnbWFpbC5jb20+CkRhdGU6IE1vbiwgNiBOb3YgMjAxNyAxMToxNjoyMCArMDEwMApNZXNzYWdlLUlEOiA8Q0FDTEU9N01Xc2ttWFg4WCt6ek9DOTZqcWlYNTVEMW5Sd2p4YXMtcFhZMW42azV2eWhnQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogTWF2ZW4gNC4wLjAKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkNhbid0IHRhY2tsZSBpdCBiZWZvcmUgbmV4dCB5ZWFyIGJ1dCBpZiBub3QgZG9uZSBpbiBqYW51YXJ5IHN1cmUuCgoKMjAxNy0xMS0wNiAxMDowMCBHTVQrMDE6MDAgU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvPQptPjoKPiBGWUkgdGhpcyBzZWVtcyBzb21ldGhpbmcgdGhhdCBkb2VzbnQgbmVlZCB0byB3YWl0IGZvciA0LjAuMAo+Cj4gSWYgdGhlcmUgd2FzIGEgUFIgZm9yIHRoaXMgYW5kIGVub3VnaCBvdGhlciBzbWFsbCBjaGFuZ2VzIEknZCBiZSBoYXBweSB0bwo+IHJvbGwgYSAzLjUuMwo+Cj4gRG8geW91IHdhbnQgdG8gdGFrZSBhIHN0YWIgYXQgaXQ/Cj4KPiAob25seSBjb21wbGV4aXR5IG1pZ2h0IGJlIHBhcmFsbGVsIGV4ZWN1dGlvbiwgYnV0IHdlIGNvdWxkIGp1c3QgcmVwb3J0IHRoPQplCj4gbGluZWFyIHBsYW4gbnVtYmVyIGFuZCB3aGVuIGluIHBhcmFsbGVsIGFsc28gbG9nIGhvdyBtYW55IGhhdmUgY29tcGxldGVkKQo+Cj4gT24gNiBOb3ZlbWJlciAyMDE3IGF0IDAwOjUxLCBSb21haW4gTWFubmktQnVjYXUgPHJtYW5uaWJ1Y2F1QGdtYWlsLmNvbT4KPiB3cm90ZToKPgo+PiBpbmRlZWQ6IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYzMDIKPj4KPj4gUm9tYWluIE1hbm5pLUJ1Y2F1Cj4+IEBybWFubmlidWNhdSB8ICBCbG9nIHwgT2xkIEJsb2cgfCBHaXRodWIgfCBMaW5rZWRJbgo+Pgo+Pgo+PiAyMDE3LTExLTA2IDk6MzcgR01UKzAxOjAwIFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC4KPj4gY29tPjoKPj4gPiBPbiBNb24gNiBOb3YgMjAxNyBhdCAwODoxMywgUm9tYWluIE1hbm5pLUJ1Y2F1IDxybWFubmlidWNhdUBnbWFpbC5jb20+Cj4+ID4gd3JvdGU6Cj4+ID4KPj4gPj4gRm9yZ290IGEgdXNlciB3aXNoIGZlYXR1cmU6IHNvbWUgcHJvZ3Jlc3MgbG9nZ2luZyBzb21laG93LiBPbiAiYmlnIgo+PiBwcm9qZWN0Cj4+ID4+IChhY3R1YWxseSBvbiBwcm9qZWN0IGxvZ2dpbmcgYSBsb3QpIHlvdSBhcmUgZWFzaWx5IGxvc3Qgb24gdGhlIHByb2dyZT0Kc3MsCj4+ID4+IHlvdSBrbm93IGN1cnJlbnQgbW9kdWxlIGlzIFggYnV0IHlvdSBkb24ndCBrbm93IGFueW1vcmUgaWYgaXQgaXMgNTAlID0Kb2YKPj4gdGhlCj4+ID4+IGJ1aWxkIG9yIDUlLiBIYXZpbmcgYXQgbGVhc3QgIm1vZHVsZSBYIC8gWSIgd291bGQgYmUgaGVscGZ1bC4gSU1PIGl0ID0KaXMKPj4gPj4gZW5vdWdoIHRvIGxvZyBpdCB3aXRoIHRoZSBtb2R1bGUgbmFtZToKPj4gPj4KPj4gPj4gW0lORk9dCj4+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiAtLS0tLS0tLS0tLS0KPj4gPj4gW0lORk9dIEJ1aWxkaW5nIEZvbyAxLjAuMC1TTkFQU0hPVAo+PiA+PiBbSU5GT10KPj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IC0tLS0tLS0tLS0tLQo+PiA+PiBbSU5GT10gTW9kdWxlIDEwIC8gMTAwCj4+ID4+Cj4+ID4KPj4gPiBDYW4geW91IGZpbGUgYSBKSVJBPwo+PiA+Cj4+ID4+Cj4+ID4+Cj4+ID4+Cj4+ID4+Cj4+ID4+Cj4+ID4+IFJvbWFpbiBNYW5uaS1CdWNhdQo+PiA+PiBAcm1hbm5pYnVjYXUgPGh0dHBzOi8vdHdpdHRlci5jb20vcm1hbm5pYnVjYXU+IHwgIEJsb2cKPj4gPj4gPGh0dHBzOi8vcm1hbm5pYnVjYXUubWV0YXdlcngubmV0Lz4gfCBPbGQgQmxvZwo+PiA+PiA8aHR0cDovL3JtYW5uaWJ1Y2F1LndvcmRwcmVzcy5jb20+IHwgR2l0aHViIDwKPj4gPj4gaHR0cHM6Ly9naXRodWIuY29tL3JtYW5uaWJ1Y2F1PiB8Cj4+ID4+IExpbmtlZEluIDxodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vcm1hbm5pYnVjYXU+Cj4+ID4+Cj4+ID4+IDIwMTctMTEtMDUgMjI6MjcgR01UKzAxOjAwIEJlcm5kIEVja2VuZmVscyA8ZWNraUB6dXNhbW1lbmt1bmZ0Lm5ldD46Cj4+ID4+Cj4+ID4+ID4gSGVsbG8sCj4+ID4+ID4KPj4gPj4gPgo+PiA+PiA+Cj4+ID4+ID4gQWRkaW5nIGFubm90YXRpb25zIGFuZCBwcm9jZXNzb3IgYXMgYSBjb21waWxldGltZSBkZXBlbmRlbmN5IHNvdW5kcwo+PiBsaWtlCj4+ID4+IGEKPj4gPj4gPiByZWFzb25hYmxlIHRoaW5nLiBJdCB3b3VsZCBob3dldmVyIGJlIGNvb2wgaWYgdGhlIEpBUiBjb3VsZCBkZXNjcmliPQplCj4+ID4+IHdoaWNoCj4+ID4+ID4gcGFja2FnZSBuZWVkcyB0byBnbyBvbiB0aGUgY2xhc3NwYXRoIGFuZCB3aGljaCBpcyBwcm9jZXNzb3IgaW1wbC4gKD0KYW5kCj4+ID4+ID4gaGF2aW5nIGEgZGlmZmVyZW50IGFydGlmYWN0IGZvciBydW50aW1lKQo+PiA+PiA+Cj4+ID4+ID4KPj4gPj4gPgo+PiA+PiA+IEdydXNzCj4+ID4+ID4KPj4gPj4gPiBCZXJuZAo+PiA+PiA+Cj4+ID4+ID4KPj4gPj4gPgo+PiA+PiA+ICpWb246ICpNYXJrIERlcnJpY3V0dCA8bWFya0B0YWxpb3MuY29tPgo+PiA+PiA+ICpHZXNlbmRldDogKlNvbm50YWcsIDUuIE5vdmVtYmVyIDIwMTcgMjI6MjAKPj4gPj4gPiAqQW46ICpNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgo+PiA+PiA+ICpCZXRyZWZmOiAqUmU6IE1hdmVuIDQuMC4wCj4+ID4+ID4KPj4gPj4gPgo+PiA+PiA+Cj4+ID4+ID4gT24gNSBOb3YgMjAxNywgYXQgMTA6NDIsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+PiA+PiA+Cj4+ID4+ID4gSSB3b3VsZCBsaWtlIHRvIGRyb3Agc3RyaWN0IHNjb3BlcyBpbiBnZW5lcmFsIGFuZCBnaXZlIHBsdWdpbnMgdGhlCj4+ID4+ID4gb3Bwb3J0dW5pdHkgdG8gZGVwZW5kIG9uCj4+ID4+ID4gc3BlY2lmaWMgc2NvcGVkIGRlcGVuZGVuY2llcy4KPj4gPj4gPgo+PiA+PiA+IEhvdyB3b3VsZCB0aGlzIGhlbHAgd2l0aCBhbm5vdGF0aW9ucyB0aG8/IFRoZSBtYWluIGlzc3VlIEknbSBmYWNpbmc9CiBpcwo+PiA+PiA+IGhhdmluZyBhIHN0YW5kYXJkIG0tYy1wIHBsdWdpbiBkZWZpbml0aW9uIGluIGEgcGFyZW50ICggb3IgdGlsZSApIGI9CnV0Cj4+ID4+ID4gbmVlZGluZyBkaWZmZXJlbnQgYW5ub3RhdGlvbiBwcm9jZXNzb3JzIHVzZWQgcGVyIHByb2plY3QuIFdpdGggdGhlCj4+ID4+IGN1cnJlbnQKPj4gPj4gPiBwbHVnaW4sIHRoaXMgbWVhbnMgZWl0aGVyIGxpc3RpbmcgdGhlbSBhcyBzdGFuZGFyZCBkZXBlbmRlbmNpZXMgYW5kCj4+IGhhdmUKPj4gPj4gPiB0aGVtIGF1dG8tc2Nhbm5lZCwgYW5kIHBvbGx1dGUgdGhlIGNvbXBpbGF0aW9uIGNsYXNzcGF0aCwgb3IgbGlzdAo+PiBldmVyeQo+PiA+PiA+IHBvc3NpYmxlIGFubm90YXRpb24gcHJvY2Vzc29yIGRlcGVuZGVuY3kgd2UgbWF5IHVzZSBpbiBvdXIgcHJvamVjdHM9CiBpbgo+PiA+PiB0aGUKPj4gPj4gPiBwYXJlbnQsIHdoaWNoIGlzIGxlc3MgdGhhbiBpZGVhbC4KPj4gPj4gPgo+PiA+PiA+IEkgaG9wZSB5b3UgYXJlIGF3YXJlIHRoYXQgbW9kdWxlcyBhbHJlYWR5IGVuZCB1cCBvbiB0aGUgbW9kdWxlcGF0aAo+PiBiYXNlZAo+PiA+PiA+IG9uIHRoZSBtb2R1bGVkZXNjcmlwdG9yKHMpLiBTbyBJIGRvbid0IHNlZSB0aGUgbmVlZCBmb3IgdGhpcyBzY29wZS4KPj4gPj4gKHVubGVzcwo+PiA+PiA+IHlvdSBoYXZlIHRoaXMgd2lzaCB0aGF0IGluIHRoZSBlbmQgTWF2ZW4gd2lsbCBjcmVhdGUgdGhlIG1vZHVsZQo+PiA+PiBkZXNjcmlwdG9yCj4+ID4+ID4gYmFzZWQgb24gdGhpcywgYnV0IEkgc3RpbGwgdGhpbmsgd2Ugc2hvdWxkbid0IGRvIHRoYXQpCj4+ID4+ID4KPj4gPj4gPiBJIHJlbWVtYmVyZWQgcmVhZGluZyBzb21ldGhpbmcgYWJvdXQgdGhpcywgYW5kIGFzc3VtZWQgaXQgd2FzIHRoZQo+PiBjYXNlIGlmCj4+ID4+ID4gdGhlcmUgd2FzIGEgbW9kdWxlLWluZm8uY2xhc3MsIGJ1dCB3aGF0IGlmIGl0cyBhIHN0YW5kYXJkIGphciB3aXRoID0KYW4KPj4gPj4gPiBBdXRvbWF0aWMtTW9kdWxlLU5hbWUgaGVhZGVyPyBEb2VzIHRoYXQgZmFsbCBpbnRvIHRoZSBtb2R1bGUgcGF0aCBvPQpyCj4+ID4+ID4gY2xhc3NwYXRoPyBIYXZpbmcgY29udHJvbCBmb3IgdGhpcyBjYXNlIG1heSBiZSB1c2VmdWwuCj4+ID4+ID4KPj4gPj4gPiBJIHJlY29nbml6ZSB0aGlzIHdpc2guIFRoZSBiZXN0IHNvbHV0aW9uIGlzIHRvIG1ha2UgdGhlIGRlcGVuZGVuY3kKPj4gPj4gPiBvcHRpb25hbC4KPj4gPj4gPgo+PiA+PiA+IFRoZSBwcm9ibGVtIHdpdGggdGhpcyBpcyB0aGF0IHRoZSBkZXBlbmRlbmN5IGlzIHN0aWxsIG9uIHRoZSBjbGFzc3A9CmF0aAo+PiA+PiBmb3IKPj4gPj4gPiBzYXkgc3VyZWZpcmUsIHdoaWNoIGNhbiBpbmZsdWVuY2UgYmVoYXZpb3VyLgo+PiA+PiA+Cj4+ID4+ID4gTWFyawo+PiA+PiA+Cj4+ID4+ID4gIlRoZSBlYXNlIHdpdGggd2hpY2ggYSBjaGFuZ2UgY2FuIGJlIGltcGxlbWVudGVkIGhhcyBubyByZWxldmFuY2UgYT0KdAo+PiBhbGwKPj4gPj4gPiB0byB3aGV0aGVyIGl0IGlzIHRoZSByaWdodCBjaGFuZ2UgZm9yIHRoZSAoSmF2YSkgUGxhdGZvcm0gZm9yIGFsbAo+PiB0aW1lLiIKPj4gPj4gPUUyPTgwPTk0Cj4+ID4+ID4gTWFyayBSZWluaG9sZC4KPj4gPj4gPgo+PiA+PiA+IE1hcmsgRGVycmljdXR0Cj4+ID4+ID4gaHR0cDovL3d3dy50aGVvcnlpbnByYWN0aWNlLm5ldAo+PiA+PiA+IGh0dHA6Ly93d3cuY2hhbGljZW9mYmxvb2QubmV0Cj4+ID4+ID4gaHR0cDovL3BsdXMuZ29vZ2xlLmNvbS8rTWFya0RlcnJpY3V0dAo+PiA+PiA+IGh0dHA6Ly90d2l0dGVyLmNvbS90YWxpb3MKPj4gPj4gPiBodHRwOi8vZmFjZWJvb2suY29tL21kZXJyaWN1dHQKPj4gPj4gPgo+PiA+PiA+Cj4+ID4+ID4KPj4gPj4gPgo+PiA+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0tCj4+ID4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4+ID4KPj4gPj4KPj4gPiAtLQo+PiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+Pgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pgo+PgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NDU2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBOb3YgIDkgMDg6MzI6NDIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDU2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEMwRDZBMTA0RkUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAgOSBOb3YgMjAxNyAwODozMjo0MiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk1NzU1IGludm9rZWQgYnkgdWlkIDUwMCk7IDkgTm92IDIwMTcgMDg6MzI6MzcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk1NjU0IGludm9rZWQgYnkgdWlkIDUwMCk7IDkgTm92IDIwMTcgMDg6MzI6MzcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NTY0MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDkgTm92IDIwMTcgMDg6MzI6MzcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDA5IE5vdiAyMDE3IDA4OjMyOjM3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNjIyQzcxQTEzQjQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsICA5IE5vdiAyMDE3IDA4OjMyOjM2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC44OApYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjg4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMSwgVVJJQkxfQkxPQ0tFRD0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBDSWpIS2NVWURsV24gZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsICA5IE5vdiAyMDE3IDA4OjMyOjM0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwteXcwLWYxNzMuZ29vZ2xlLmNvbSAobWFpbC15dzAtZjE3My5nb29nbGUuY29tIFsyMDkuODUuMTYxLjE3M10pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA3MUE0MTVGRTVDCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAgOSBOb3YgMjAxNyAwODozMjozNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC15dzAtZjE3My5nb29nbGUuY29tIHdpdGggU01UUCBpZCBjMTg2c28yMDIyNTY0eXdiLjIKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAwOSBOb3YgMjAxNyAwMDozMjozNCAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bwogICAgICAgICA6Y29udGVudC10cmFuc2Zlci1lbmNvZGluZzsKICAgICAgICBiaD1RRHpQcm8rWWw3dFZ6Z3RQM2V1SVVNMWptdjZJbm91OUdNd0V4Yk4vaWVrPTsKICAgICAgICBiPVAwWXNCQldNejJIeS91c25ZUlpBWjQvc0NrbDJTOUFrYzBIaDA5NllESlpUOFVuaTBoU2l2eGhIcS9DTCt2T3l5UAogICAgICAgICBPWi9ZbTl4cWVXTWtqb0hvUUIvaUhVSVA4L2NvKzZMcFNhZXBNUjhBTlVuRE1UMUhWNFpzY2NhSlVTY2pVaHdQSXF0YgogICAgICAgICA5UGVmdTlYaGJCdDRqeHhCbFNoeFptYzVDck4zUXNOeWlZajVzaVN3N3hacUNLaGxHaXZJNTNMZGphcWJGRjBsTnNYSAogICAgICAgICAwOTZ4MWJDakFhZm9iaXN5cU8zMEwycnByaVQyeGZvSGtiQ0FuTVJ1TWRTK3BXcmphWUNVYmNWVWk4REVQc3lhekhvVAogICAgICAgICBtYkIvOTIwV3plT1RkS01KcFZnNFBramZNejlnbkgyQyttbXNnb09EaTVuT2dOSlhBYko2ZVJLWkhCZEhmQlljY3Q5awogICAgICAgICBWUEdnPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzpjb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOwogICAgICAgIGJoPVFEelBybytZbDd0VnpndFAzZXVJVU0xam12Nklub3U5R013RXhiTi9pZWs9OwogICAgICAgIGI9ZTlnUFZOZXlrS3h0TFRsaXBrZFlyaXh6OVYySCs2THg0VFptRGpyVmpoTFY1WFJOckFYWTN0YmxwRHNFRkF4OUROCiAgICAgICAgIDBXSS9jVkwwMFRicC9heHVmbENodTA2UkUrV0dVbkNSU2ZxbTRicTJGbkFTL1hJTHk1R3ZOYkJsYWxBK3VSZmhUZEpjCiAgICAgICAgIEdmNzJ0U2djb3huR2ZmWUhYamhSaVR2RzVvZ2M5RERXZGJNOGFLQkFXb0xoazRuZnRUd3RhSExtN3o1VE9kaDNyZXorCiAgICAgICAgIDZHTzNrc1FCZnJMMjR6M1VTai9MQzRoWjZqeTJRdEtEZ1dxUitUb0tlQjhsblJWZmZZVk5xb2dINTlWUHhzaXRwajVqCiAgICAgICAgIGhtUTZkN3IxYmtOcC9MVm9zRWhvQlQ5TU95VWFuRkQxamlrM2Z5WmdXNzFiaFBQNVJNUDlWWVBCSis3VnRIQ2dJdGtYCiAgICAgICAgIHlaakE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDd2UkZhZDZ1cGk5U0ozMDhmMkdCbFB4SUFOaSt2N25VUUZFeTFuZjcxU2hnYXNZOWMrCglkNkpnWkliL3pjVGphU3hQZHREZm0xSFVweU1JaEp2dmRWKzdjOEtWbWc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArUVc5RFd3WnJjNHhZRysyaHAzcTV6TXFQdWF4TkQrQ3dNNXdsOWh0WWVJL09kY2tIVDBiaHJaN1NuRFpRMjJqRGpUTmRuN2ZsbDNScVBtcEpGaU5ocz0KWC1SZWNlaXZlZDogYnkgMTAuMzcuMTk5LjEzNyB3aXRoIFNNVFAgaWQgdzEzMW1yMTk4ODA2MHliZS4xMTguMTUxMDIxNjM1Mjk4NjsKIFRodSwgMDkgTm92IDIwMTcgMDA6MzI6MzIgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjM3LjUuMjAzIHdpdGggSFRUUDsgVGh1LCA5IE5vdiAyMDE3IDAwOjMyOjEyIC0wODAwIChQU1QpCkluLVJlcGx5LVRvOiA8b3UxM25vJDRqbyQxQGJsYWluZS5nbWFuZS5vcmc+ClJlZmVyZW5jZXM6IDxDQStuUG5Nd0VIOVoybXlwNzF1YVNyZGN5TEpSRnJFLVZydDIwMTkxcmQwMWgrVWZoandAbWFpbC5nbWFpbC5jb20+CiA8b3UxM25vJDRqbyQxQGJsYWluZS5nbWFuZS5vcmc+CkZyb206IFJvbWFpbiBNYW5uaS1CdWNhdSA8cm1hbm5pYnVjYXVAZ21haWwuY29tPgpEYXRlOiBUaHUsIDkgTm92IDIwMTcgMDk6MzI6MTIgKzAxMDAKTWVzc2FnZS1JRDogPENBQ0xFPTdNWHhVX3ZvVUNlWEh3QVZ1NzM3c1N4RmRiQzZzUkxXQzVaQVA1Y2VHZVJRZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IE1hdmVuIDQuMC4wClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpGWUkgb3BlbmVkIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vcHVsbC8xMzYgZm9yIHRoZSBNTkctNjMwMgooZ3Vlc3Mgd2UgY2FuIHN3aXRjaCBmcm9tIHRocmVhZCB0byBkaXNjdXNzIGl0IG5vdz8pCgpSb21haW4gTWFubmktQnVjYXUKQHJtYW5uaWJ1Y2F1IHwgIEJsb2cgfCBPbGQgQmxvZyB8IEdpdGh1YiB8IExpbmtlZEluCgoKMjAxNy0xMS0wOSA5OjMwIEdNVCswMTowMCBKPUMzPUI2cmcgU2NoYWlibGUgPGpvZXJnLnNjaGFpYmxlQGJwbS1pbnNwaXJlLmNvPQptPjoKPiBIaSwKPgo+IG9uZSB3aXNoOiBCZXR0ZXIgaW50ZWdyYXRpb24gd2l0aCBwb20tbGVzcyBUeWNobyBwcm9qZWN0cy4KPgo+IEN1cnJlbnRseSBpdCBpcyBub3QgcG9zc2libGUgdG8gcnVuIE1hdmVuIGFuZCB1c2Ugc3RhbmRhcmQgTWF2ZW4tYmFzZWQKPiBhbmQgcG9tLWxlc3MgVHljaG8tYmFzZWQgcHJvamVjdHMgaW4gb25lIHJlYWN0b3IgaWYgdGhlIFR5Y2hvIHByb2plY3RzCj4gaGF2ZSBkZXBlbmRlbmNpZXMgb24gdGhlIE1hdmVuLWJhc2VkIHByb2plY3RzLgo+Cj4gQUZBSUNTIHRoZSBwcm9ibGVtIGlzIHRoYXQgUG9seWdsb3R0IGlzIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIHRlbXBvcmFyeQo+IFBPTXMgb3V0IG9mIHRoZSBNQU5JRkVTVC5NRiBvbiB0aGUgZmx5LCBidXQgdGhlIHJlYWN0b3ItcGhhc2UgaGFzIGFscmVhZHkKPiBwYXNzZWQgdGhhdCBjYWxjdWxhdGVzIHRoZSBidWlsZCBvcmRlci4KPgo+IEl0IHdvdWxkIGJlIG5pY2UgdG8gYWRqdXN0IE1hdmVuIENvcmUgaW4gYSB3YXkgdGhhdCBhbGxvd3Mgc3VjaAo+IGV4dGVuc2lvbnMgY29udHJpYnV0ZSB0byB0aGUgYnVpbGQgb3JkZXIuCj4KPiBDaGVlcnMsCj4gSj1DMz1CNnJnCj4KPgo+IEFtIFNhdCwgMDQgTm92IDIwMTcgMTI6MjA6MTggKzAwMDAgc2NocmllYiBTdGVwaGVuIENvbm5vbGx5Ogo+Cj4+IFRoZSBwYXN0IHR3byBkYXlzLCBIZXJ2PUMzPUE5LCBSb2JlcnQgYW5kIEkgaGF2ZSBiZWVuIGRpc2N1c3Npbmcgb3VyIG5leD0KdAo+PiBzdGVwcy4KPj4KPj4gSSB0aGluayB3ZSBoYXZlIGEgc2VtaS1jb25zZW5zdXMgd2hpY2ggSSB3YW50IHRvIGJyaW5nIGJhY2sgdG8gdGhlIGxpc3Q6Cj4+Cj4+IFdlIGtlZXAgMy41LnggYXMgYSBzdGFibGUgYnJhbmNoIHdpdGggY3JpdGljYWwgYnVnIGZpeGVzIG9ubHkKPj4KPj4gV2Ugc3dpdGNoIG1hc3RlciB0byA0LjAuMCBhbmQgc3RhcnQgdG8gYnVybiBkb3duIGEgcmVsZWFzZSBzY29wZS4KPj4KPj4gNC4wLjAgd2lsbCBub3QgY2hhbmdlIHRoZSBwb20gbW9kZWxWZXJzaW9uCj4+Cj4+IFRoZSA0LjAuMCBzY29wZSBzaG91bGQgcHJvYmFibHkgYmU6Cj4+Cj4+IFJlcXVpcmVkOgo+PiAqIGRyb3AgSmF2YSA3LCBzd2l0Y2ggY29kZWJhc2UgdG8gSmF2YSA4IGlkaW9tcyAod2hpbGUgbWFpbnRhaW5pbmcKPj4gYmluYXJ5IGFwaSBjb21wYXRpYmlsaXR5IGZvciBwbHVnaW5zKQo+PiAqIHNwZWNpZnkgdGhlIGNsYXNzbG9hZGVyIGJlaGF2aW91ciBhbmQgZml4IGltcGwgdG8gYWxpZ24gd2l0aCBzcGVjIChtYXkKPj4gbmVlZCBhIHBsdWdpbiBmbGFnIHRvIGFsbG93IHBsdWdpbnMgdG8gb3B0IGluIHRvIHNwZWMgYmVoYXZpb3VyKQo+PiAqIHNwZWNpZnkgdGhlIGV4dGVuc2lvbiBzcGVjICogYWxsb3cgbGltaXRlZCBtdXRhdGlvbiBvZiB0aGUgcnVudGltZQo+PiBtb2RlbCAocmVkdWNpbmcgdHJhbnNpdGl2ZSBkZXBlbmRlbmNpZXMgZm9yIGNvbnN1bWVycyB3aXRoaW4gdGhlCj4+IHJlYWN0b3IsIG9ubHkgZm9yIHBsdWdpbiBnb2FscyB0aGF0IGRlY2xhcmUgaW50ZW50KSB1c2UgY2FzZTogc2hhZGUKPj4gcGx1Z2luICogYmV0dGVyIENJIGludGVncmF0aW9uIGhvb2tzICogbmljZSBlcnJvciBtZXNzYWdlIGZvciBuZXdlciBwb20KPj4gbW9kZWxWZXJzaW9uCj4+Cj4+IE9wdGlvbmFsOgo+PiAqIChkYW1uIEkgZm9yZ290LCBtYXliZSBSb2JlcnQgcmVtZW1iZXJzKQo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0MTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAgNCAxNzozNDo0NSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0MTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMjdEMDUxMDZFNQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICA0IE5vdiAyMDE3IDE3OjM0OjQ1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTIxNjAgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBOb3YgMjAxNyAxNzozNDo0NCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTIwNzcgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBOb3YgMjAxNyAxNzozNDo0NCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkyMDY0IGludm9rZWQgYnkgdWlkIDk5KTsgNCBOb3YgMjAxNyAxNzozNDo0NCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDQgTm92IDIwMTcgMTc6MzQ6NDQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBBOEM5RTFBMDNBMQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMTc6MzQ6NDMgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjY4ClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MS42OCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUtBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDEsCglVUklCTF9CTE9DS0VEPTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgVS1rdnNjbW1NZXZnIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAgNCBOb3YgMjAxNyAxNzozNDo0MSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXl3MC1mMTY5Lmdvb2dsZS5jb20gKG1haWwteXcwLWYxNjkuZ29vZ2xlLmNvbSBbMjA5Ljg1LjE2MS4xNjldKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgOTg1NTE2MTEyRAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMTc6MzQ6NDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwteXcwLWYxNjkuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgcTFzbzQ4NjI1MjB5d2guNQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDA0IE5vdiAyMDE3IDEwOjM0OjQxIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvCiAgICAgICAgIDpjb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOwogICAgICAgIGJoPUo0MUV6MWZLOHhnbGlsU1YzR2QyOWtNWUZscTRvazZnajhUTzFIMTNtUGs9OwogICAgICAgIGI9VWNhbWxhT0Z3QUlYSjJaWWpJeFdVZnh6UHdURWU4a0RMdFhTTmIwSExLNmZnVHg2UzNId1oyUTRHaGxJL3BWNmlZCiAgICAgICAgIHY1SngweUFScU5BRUpKaUFRaEgxWk1SSHozbmxPb2pyZ0kzYi95MHFKYzdCUFNMdDFqbmNrNWZzTUd2REF3SzFxeHAwCiAgICAgICAgIDdCZ0ZtQXdESTVXQjFId2xqc291YWdMeDFkMVFzdkpLSU9CbWZTTUxOY1pmd3JVSG1IVWdETXcxRDRLK2d4Snh6MXp4CiAgICAgICAgICt3cFN4aWF1VExSTUgwLzBoL1FOZ2hYeWljY0JKQlZ2OVhVVUd2S2tyTFpKRkZnOHltUEhNMVZGeHUxbUlxWWMrUEJCCiAgICAgICAgIHJUL3RUYUd0T3p6MVdFcVYrQS9UQjVId0NldTQraEg2OEsvanQ5Q280RU1DbURDOE9lVUxZeWdOc0t0NDl2M0RyLys5CiAgICAgICAgIFJ5U2c9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOmNvbnRlbnQtdHJhbnNmZXItZW5jb2Rpbmc7CiAgICAgICAgYmg9SjQxRXoxZks4eGdsaWxTVjNHZDI5a01ZRmxxNG9rNmdqOFRPMUgxM21Qaz07CiAgICAgICAgYj1LNVBjVkxNalFZK3FLc2p0aHNEcGNDMXFzZUQvMUJObUxGTFhPSFdBR2dxU0Q3dGdheis0NzNVdlJTaVIyUW5KZG4KICAgICAgICAgRjRndGR5aDViVkxhRVJYVk5zZFdWclYyaEsvZTNLcXpaZ1crN0Y1MlZrVXJELzNDQnRzR2V3a3JoMHVyOFNOVnNlNm0KICAgICAgICAgeEk0WXMxMWRoa1c4SVN1ZnRkcE9ZSWI3SzNtd1AzellSVlFrNHlXTXZrajArVnpac25pbkowOE43K04yenR1VVhOcDUKICAgICAgICAgazBwaXZtdHpBcWo5aDhTT3EwZ0VhMlJzbkdzdnIyYkdZMEl0Z3dTL09KOGJLMDVra2dLdVdUbGFMNkJDN1RGTUs1UCsKICAgICAgICAgWmtSV0tWWmYvdzdYbUFaOVBndSs3L2ZsNlRvY3ZKR3UxRUVNRWxOUzZENjNtcnNOQmF3SjB3ZVdyODU4TUtEZnc2dloKICAgICAgICAgeDE2QT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhV0lKNDVXTFJ3T2VtYVI0SGpBT1NlRmQ5aDJxbkd3bmFLQUtvMGRTZWszME5wQktkd04KCW1VbG4vR2F0QlRUS0tTYjF3aTlhSk5zdkZZVFlLSjNlQ25tQzRLWT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFCaFFwK1NHWWllcUtPRUt1QjBHcVNSUWpQOEorUFNNWUVJWlBHRE1QaGJwanFKcGU1NmJmRlpCRlJUSUZJaEF5QzgvWnV6QmRRQWIxZ1J6VW1qaVQvMlUxMUU9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjEyOS4xMjIuODUgd2l0aCBTTVRQIGlkIHY4Mm1yNjgxMTUxMnl3Yy4xMjcuMTUwOTgxNjg3NDk2NzsKIFNhdCwgMDQgTm92IDIwMTcgMTA6MzQ6MzQgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjM3LjUuMTQ5IHdpdGggSFRUUDsgU2F0LCA0IE5vdiAyMDE3IDEwOjM0OjE0IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0ErblBuTXpVUCtBPTJqdUpFWHB2dTJzb0FlRz1zMFF0Y3dXRHMwMGhKNEY1cm1UVGZnQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXdFSDlaMm15cDcxdWFTcmRjeUxKUkZyRS1WcnQyMDE5MXJkMDFoK1VmaGp3QG1haWwuZ21haWwuY29tPgogPENBKzI5OFVqcDZkWkxWMXlOcWJQQmM0ZldCRHpvekV4Y0NtN0Y1NkNuPUUtOUZhRGE4QUBtYWlsLmdtYWlsLmNvbT4KIDxDQUg5dTEwbnRtRkJaY1RoOVl2QWJFS2dEdUpOOVhkNXh1ZXBPNGZpUjVCS1JxdVpCUGdAbWFpbC5nbWFpbC5jb20+CiA8MTU0OTg1Ni5IZTFNU0J4M1VTQGdpZ2E+IDxDQStuUG5NellHcDJWRUhUWTBVWE5TeGFWdmZDVG9aK3RtUURWY1B6UVZHNnpiTnNvSGdAbWFpbC5nbWFpbC5jb20+CiA8Q0FDTEU9N090VVc5TW1pNWs4UVFrZlAzR2JCZ3VYSk1GTHJZVlhxR3kwMWJ0X0Q0ZFl3QG1haWwuZ21haWwuY29tPiA8Q0ErblBuTXpVUCtBPTJqdUpFWHB2dTJzb0FlRz1zMFF0Y3dXRHMwMGhKNEY1cm1UVGZnQG1haWwuZ21haWwuY29tPgpGcm9tOiBSb21haW4gTWFubmktQnVjYXUgPHJtYW5uaWJ1Y2F1QGdtYWlsLmNvbT4KRGF0ZTogU2F0LCA0IE5vdiAyMDE3IDE4OjM0OjE0ICswMTAwCk1lc3NhZ2UtSUQ6IDxDQUNMRT03TVlINVR5d0VaQ0RaaFBRPTJIYnVhbjFaTHg5enJRdXh4OFBRLVZRMkd6WGdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiA0LjAuMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKMjAxNy0xMS0wNCAxODoxNyBHTVQrMDE6MDAgU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvPQptPjoKPiBPbiBTYXQgNCBOb3YgMjAxNyBhdCAxNzoxMSwgUm9tYWluIE1hbm5pLUJ1Y2F1IDxybWFubmlidWNhdUBnbWFpbC5jb20+Cj4gd3JvdGU6Cj4KPj4gTXkgd2lzaGxpc3QgYXMgYSB1c2VyIHdvdWxkIGJlOgo+Pgo+PiAtIGluY3JlbWVudGFsIGJ1aWxkIChiYXNlZCBvbiBzY20gaXMgZmluZSkKPj4gLSBzb21lIGJ1aWx0IGluIHNjcmlwdGluZyAoZ3Jvb3Z5IGJhc2VkPykKPgo+Cj4gSSBoYXZlIGEgd29ycnkgZm9yIGdyb292eSB3aXRoIEphdmEgOSsKClVuZGVyc3RhbmQsIGhlcmUgaXMgdGhlIGxvbmcgdmVyc2lvbiBvZiB0aGF0IHdpc2g6CgoxLiBqYXZhIC0+IGdyb292eSBpcyB2ZXJ5IGRvYWJsZSAoY29tcGFyZWQgdG8gb3RoZXIgbGFuZ3VhZ2UpIHNvIGl0IGlzCnRoZSBuYXR1cmFsIGxhbmd1YWdlIGZvciBtYXZlbiBJTUhPCjIuIGdyb292eSB3aWxsIGhhdmUgdG8gc3VwcG9ydCBKYXZhIDkgLSB0byBiZSBob25lc3QgSSB3b3JyeSBhcyBtdWNoCmZvciBhIHBsYWluIGphdmEgbGliIHRoYW4gZm9yIGdyb292eSBzbyBndWVzcyBpdCBpcyAxLTEKMy4gSSdtIGhhcHB5IHRvIGhhdmUgYSBqYXZhIHNjcmlwdGluZyBhbHRlcm5hdGl2ZSAoc3JjL2J1aWxkL2phdmEpCndoaWNoIGlzIG5vdCBhdmFpbGFibGUgb3V0c2lkZSB0aGUgc2NvcGUgb2YgYSBwbHVnaW4gKD0zRCBubyBpbmhlcml0ZWQKaW4gY29tcGlsZSBvciB0ZXN0IHNjb3BlcykKCj4KPiBBbmQgc2NyaXB0aW5nIGlzIHRoZSBwYXRoIHRvIHRoZSBkYXJrIHNpZGUgb2YgaW1wZXJhdGl2ZSBidWlsZHMuLi4gYnV0Cj4gcHJvcG9zYWxzIHdlbGNvbWUKClRoaXMgaXMgdHJ1ZSBidXQgdGhpcyBpcyBhbHNvIG1hbmRhdG9yeSB0b2RheS4gVGhlcmUgaXMgYSBzbWFsbAphbHRlcm5hdGl2ZSB0byB0aGF0IGFuZCBJIHdvdWxkIGJlIGFzIGhhcHB5IGlmIG1hdmVuIGNhbiBkbyBpdDoKc3VwcG9ydCBtb2pvIGZyb20gdGhlIHJlYWN0b3IgKGllIGhhdmluZyBhIHByb2plY3Qgd2l0aCB0aGlzIGxheW91dDoKcGFyZW50L1ttb2R1bGUxLCBteS1tYXZlbi1wbHVnaW5dKS4gSWYgdGhpcyB3b3JrcyB0aGVuIG5vIG5lZWQgb2YKc2NyaXB0aW5nCmJ1dCB0b2RheSB5b3UgbXVzdCByZWxlYXNlIHRoZSBtb2pvIGJlZm9yZSB1c2luZyBpdCBpbiB5b3VyIGJ1aWxkCndoaWNoIGltcG9zZXMgdG8gdXNlIHNjcmlwdGluZy4KCj4KPgo+PiAtIHBsdWdpbiBzb3J0aW5nIGZyb20gdGhlIHBvbSAoY3VycmVudCBydWxlcyBhcmUgZGV0ZXJtaW5pc3RpYyBidXQgdG9vIGg9CmFyZAo+PiB0byB1c2Ugc28gZGVmaW5pbmcgYSBkZXBlbmRlbmN5IGJldHdlZW4gdHdvIGV4ZWN1dGlvbnMgaW4gdGhlIHNhbWUgcGhhc2UKPj4gd291bGQgYmUgdmVyeSBoYW5keSAtIGRlcGVuZHMtb24gdGFnPykKPj4KPj4gQXMgYSBwbHVnaW4gZGV2ZWxvcHBlcjoKPj4KPj4gLSBwcm9ncmFtbWF0aWMgY29tcG9uZW50IGxvb2t1cCBhcGkgKGl0IGlzIGRlcHJlY2F0ZWQgYXQgdGhlIG1vbWVudCkKPj4gLSBhYmlsaXR5IHRvIGNvbnRyaWJ1dGUgZGVwZW5kZW5jaWVzIGZvciBuZXh0IHBsdWdpbnMvcGhhc2VzCj4+IChyZXNvbHZlZEFydGlmYWN0cykKPj4KPj4gTGUgNCBub3YuIDIwMTcgMTc6MDMsICJTdGVwaGVuIENvbm5vbGx5IiA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvPQptPgo+PiBhID1DMz1BOWNyaXQgOgo+Pgo+PiA+IE9uIDQgTm92ZW1iZXIgMjAxNyBhdCAwNzozMCwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI9Cj4KPj4gd3JvdGU6Cj4+ID4KPj4gPiA+IExlIHNhbWVkaSA0IG5vdmVtYnJlIDIwMTcsIDE0OjQzOjQ2IENFVCBKb2huIFBhdHJpY2sgYSA9QzM9QTljcml0IDoKPj4gPiA+ID4gSSd2ZSBnb3QgIGEgZmV3IHVwZGF0ZXMgSSBmZWVsIHdvdWxkIGJlIHVzZWZ1bCBmb3IgdGhlIG5leHQgbWFqb3IKPj4gPiA+IHZlcnNpb247Cj4+ID4gPiA+Cj4+ID4gPiA+IDEpIFBhY2thZ2luZyB0eXBlIGdlbmVyaWMgJ2FyY2hpdmUnLCBvciBzcGVjaWZpYyB6aXAgb3IgdGFyLmd6Cj4+ID4gPiA+IC0gbWF5YmUgYSB1c2VyIHByb3BlcnR5IHRvIGVuYWJsZSB6aXAgYW5kL29yIHRhci5nego+PiA+ID4gPgo+PiA+ID4gPiAyKSBQYWNrYWdpbmcgdHlwZSBnZW5lcmljICdhcHBsaWNhdGlvbicsIG9yIHNwZWNpZmljIHJwbSBvciBkZWIKPj4gPiA+ID4gLSBpbiBmdXR1cmUgY291bGQgYmUgZXh0ZW5kZWQgZm9yIHdpbmRvd3MgaW5zdGFsbGVycyB0b28KPj4gPiA+ID4KPj4gPiA+ID4gT3ZlciB0aGUgcGFzdCA2IHllYXJzIEkndmUgbWFpbmx5IGNyZWF0ZWQgamFyLCB3YXIgb3IgZWFyLCBidXQgZm9yCj4+ID4gPiA+IGRlcGxveW1lbnQgdGhlIHN0YW5kYXJkIGlzIGJ1bmRsZSBpdCB1cCBpbnRvIGEgdGFyLmd6IG9yIHppcCwgYWxvbj0KZwo+PiA+ID4gPiB3aXRoIHRoZSBhbnNpYmxlIHNjcmlwdHMgb3IgY3VzdG9tIHNjcmlwdHMuIFNvIEkgdXN1YWxseSB1c2UgcG9tCj4+ID4gPiA+IHBhY2thZ2luZyB0aGVuIGFkZGluZyBhc3NlbWJseSBwbHVnaW4sIGp1c3QgZmVlbHMgc3RyYW5nZSBkb2luZyB0aD0KYXQKPj4gPiA+ID4gYWxsIHRoZSB0aW1lIGFuZCBpdCBtaWdodCBtYWtlIGl0IG1vcmUgc2ltcGxlciBmb3IgZXZlcnlvbmUuCj4+ID4gPiBkbyB5b3UgaGF2ZSBzb21lIGRlbW9zIG9mIHN1Y2ggcGFja2FnaW5ncz8KPj4gPiA+Cj4+ID4KPj4gPiBUaGlzIGZlZWxzIGxpa2UgcGx1Z2luIGxldmVsIGZ1bmN0aW9uYWxpdHkuIEkgYW0gdW5jbGVhciBob3cgdGhpcyBuZWVkPQpzCj4+ID4gY29yZSBjaGFuZ2VzLiBDb3VsZCB5b3UgcHJvdmlkZSBkZXRhaWxzIHdoZXJlIHlvdSBmZWVsIHdlIG5lZWQgdG8gbW9kaT0KZnkKPj4gPiBjb3JlIGZvciB0aGlzIChvciBpcyBpdCB5b3Ugd2FudCB0byBiZSBhYmxlIHRvIGZldGNoIHNvbWUgYXJ0aWZhY3RzIGZyPQpvbQo+PiA+IHdpdGhpbiB0aGUgemlwLCBpb3cgYSB6aXAgd2l0aCB0aGUgb3RoZXIgYXJ0aWZhY3RzIGVtYmVkZGVkIGFuZCB3ZSAicmU9CmFjaAo+PiA+IGluIj8KPj4gPgo+PiA+Cj4+ID4gPgo+PiA+ID4gPgo+PiA+ID4gPiAzKSBDaGVja3N1bSwgc3dpdGNoIHRvIFNIQTMsIGRyb3AgbWQ1IGFuZCBzaGExLiBJZiB3ZSBjYXJlIGFib3V0Cj4+ID4gPiA+IHNlY3VyaXR5LCB3ZSBzaG91bGQga2VlcCB1cCB0byBkYXRlIHdpdGggd2hhdCBpcyBjb25zaWRlcmVkIHNlY3VyZQo+PiA+ID4gPiBzdGlsbC4KPj4gPiA+IC0xCj4+ID4gPiBjaGVja3N1bXMgYXJlIGNoZWNrc3Vtcywgbm90IHNlY3VyaXR5Cj4+ID4gPiBpZiB5b3Ugd2FudCBzZWN1cml0eSwgZG9uJ3QgbG9vayBhdCBjaGVja3N1bXMgYnV0IGF0IHNpZ25hdHVyZXMKPj4gPiA+Cj4+ID4gPiBUaGlzIG1ha2VzIG1lIHRoaW5rIHRoYXQgd2Ugc2hvdWxkIGZpbmQgYSB3YXkgdG8gc2hvdyBzZWN1cml0eSAod2l0aAo+PiA+IHRoZXNlCj4+ID4gPiBzaWduYXR1cmVzKTogSSBkb24ndCBrbm93IHByZWNpc2VseSBob3csIGJ1dCB0aGF0IHdvdWxkIGRlZmluaXRlbHkgYj0KZQo+PiA+ID4gdXNlZnVsCj4+ID4gPgo+PiA+ID4gPgo+PiA+ID4gPiAzKSBEZWJpYW4gc3R5bGUgcmVwbyBtYW5hZ2VtZW50LiBJbnN0ZWFkIG9mIGhhdmluZyBhIG1hc3NpdmUgYnVja2U9CnQKPj4gb2YKPj4gPiA+ID4gYXJ0ZWZhY3RzLCBzdGFydCBoYXZpbmcgcmVwbydzIGVpdGhlciBiYXNlZCB1cG9uIGphdmEgY2xhc3MgdmVyc2lvPQpuLAo+PiA+ID4gPiBvciBtYXZlbiBtYWpvciByZWxlYXNlIHZlcnNpb24uIEFsc28gc3BsaXQgbW9yZSB0aGFuIGp1c3QgcmVsZWFzZSA9CmFuZAo+PiA+ID4gPiBzbmFwc2hvdCwgbWF5YmUgY29yZSwgcGx1Z2lucywgZ2VuZXJhbC4uLgo+PiA+ID4gPgo+PiA+ID4gPiBOb3Qgc3VyZSBleGFjdGx5IHRoZSBiZXN0IHNvbHV0aW9uLCBidXQgYXMgbWF2ZW4gY2VudHJhbCBoYXMgc3R1ZmYKPj4gPiA+ID4gZ29pbmcgYmFjayB5ZWFycyBhbmQgeWVhcnMuIEhvdyBtdWNoIG9mIHRoZSBvbGQgc3R1ZmYgd2lsbCBiZSB1c2VkCj4+IGZvcgo+PiA+ID4gPiBuZXcgcHJvamVjdHMgZ29pbmcgZm9yd2FyZC4KPj4gPiA+IHdoYXQncyB0aGUgb2JqZWN0aXZlPwo+PiA+ID4gd2l0aCBMaW51eCBkaXN0cmlidXRpb25zLCB0aGVyZSBhcmUgY29tcGF0aWJpbGl0eSBpc3N1ZXMgdGhhdCByZXF1aXI9CmUKPj4gPiA+IGRpZmZlcmVudCBhcnRpZmFjdHMsIGFuZCBhbiBvYmplY3RpdmUgdG8ga2VlcCBkaXN0cm8gb24gb25lIENEL0RWRAo+PiA+ID4gQnV0IEphdmEgYW5kIGNlbnRyYWwgZG9uJ3QgaGF2ZSBzdWNoIGNvbnNpZGVyYXRpb25zCj4+ID4gPgo+PiA+ID4gPgo+PiA+ID4gPiBBbnl3YXksIHRob3NlIGFyZSBzb21lIG9mIG15IHRob3VnaHRzLCBpZiB0aGVpciBpcyBhIG1vcmUgZm9ybWFsIHc9CmF5Cj4+ID4gPiA+IG9mIHN1Z2dlc3RpbmcgdGhlbSBsZXQgbWUga25vdyBhbmQgSSdsbCBiZSBoYXBweSB0byByYWlzZSB0aGVtCj4+ID4gPiA+IHNlcGFyYXRlbHkgZm9yIGNvbnNpZGVyYXRpb24gYW5kIG1heWJlIGFsc28gZG8gc29tZSBwdWxsIHJlcXVlc3RzID0KZm9yCj4+ID4gPiA+IHRoZW0uCj4+ID4gPiBJIHRoaW5rIHRoZSBwYWNrYWdpbmcgaWRlYXMgZGVzZXJ2ZSBzb21lIGRlbW9zIHRvIHNlZSBpZiBzb21ldGhpbmcgYz0KYW4KPj4gYmUKPj4gPiA+IG1hZGUKPj4gPiA+IGdlbmVyaWMgZW5vdWdoCj4+ID4gPgo+PiA+ID4gUmVnYXJkcywKPj4gPiA+Cj4+ID4gPiBIZXJ2PUMzPUE5Cj4+ID4gPgo+PiA+ID4gPgo+PiA+ID4gPiBKb2huCj4+ID4gPiA+Cj4+ID4gPiA+IE9uIDQgTm92ZW1iZXIgMjAxNyBhdCAxMzoxOCwgUGF1bCBIYW1tYW50IDxwYXVsQGhhbW1hbnQub3JnPiB3cm90ZT0KOgo+PiA+ID4gPiA+PiA+ICozLiBNb3JlIHBsdWdnYWJsZSBkZXBlbmRlbmN5IHJlc29sdmVyOioKPj4gPiA+ID4gPj4KPj4gPiA+ID4gPj4gSSBhbSB3aWxsaW5nIHRvIGxldCB0aGlzIGJlIG9wdGlvbmFsIHNjb3BlIGZvciBub3cuIE1heSBiZSB5YW5rPQplZAo+PiBpZgo+PiA+ID4gdG9vCj4+ID4gPiA+ID4+IHJpc2t5IG9yIG5vdCByZWFkeSBpbiB0aW1lCj4+ID4gPiA+ID4KPj4gPiA+ID4gPiBJIGRvbid0IHNlZSBob3cgeW91IGNhbiBldmVuIG1ha2UgaXQgb3B0aW9uYWwgd2l0aG91dCBhIHBvbQo+PiBzcGVjaWZpZWQKPj4gPiA+IHdheQo+PiA+ID4gPiA+IG9mIHNheWluZyAibm90IG1hdmVuIGNlbnRyYWwsIHRoaXMgd2F5L3BsYWNlIGluc3RlYWQiCj4+ID4gPiA+Cj4+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLS0tCj4+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+Cj4+ID4gPgo+PiA+ID4KPj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotCj4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4KPj4gPiA+Cj4+ID4KPj4KPiAtLQo+IFNlbnQgZnJvbSBteSBwaG9uZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NjI1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBOb3YgMjcgMTk6MjU6MDcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjI1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEQ0RTJGMTc1NUYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAyNyBOb3YgMjAxNyAxOToyNTowNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDcxNTg2IGludm9rZWQgYnkgdWlkIDUwMCk7IDI3IE5vdiAyMDE3IDE5OjI1OjAyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MTQ5NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBOb3YgMjAxNyAxOToyNTowMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDcxNDc1IGludm9rZWQgYnkgdWlkIDk5KTsgMjcgTm92IDIwMTcgMTk6MjU6MDIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDI3IE5vdiAyMDE3IDE5OjI1OjAyICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgOTUzNUUxQTEwRDkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDI3IE5vdiAyMDE3IDE5OjI1OjAxICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC4zNzkKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC4zNzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFN6NTdidkUxWm1QRiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMjcgTm92IDIwMTcgMTk6MjQ6NTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC15dzAtZjE3Ni5nb29nbGUuY29tIChtYWlsLXl3MC1mMTc2Lmdvb2dsZS5jb20gWzIwOS44NS4xNjEuMTc2XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDVFNzRDNUYyMUUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDI3IE5vdiAyMDE3IDE5OjI0OjU5ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXl3MC1mMTc2Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHQ0c28xMDY4NDgyMHl3Zi43CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMjcgTm92IDIwMTcgMTE6MjQ6NTkgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWlvRy84V1RmZ2JBL1c2TTJDOXBGa2M2SzRDSnc2WC9XMUV6eThOWUdSMDg9OwogICAgICAgIGI9RVVaV0F5WWFFL0tKUHV0Q1llM3lkWElDYlFiMmVGVDE5aDBzcHY2c0duN0Z2ZE1Xdmtkenp2OUJVM3ZpL1FtZVJLCiAgICAgICAgIHpqMnU1UW51bHM1SUswdHU5SG1PZ2trYzgxemZKKzNSVnQ0dklRZGoxOTg3MzNENHNHV1ZrZnExUFdkSE45MDFzWm5GCiAgICAgICAgIFRaUlJEdllIRUthQjBEMFkzcEc4NDYyc1ZJWldybUo0Q003R0hubUVkb3FGTGZBSlkvbnNhTjZ1UkxsNEdRcFdZOFFxCiAgICAgICAgIHFJRlJkbHNCQzZSYlJPQW9qeEdlK1UvNEYxYzhzRm5RNmpUd05DaDkyTnJxZkZqSmRRTVhxNGlFMU9qOTBVNWtsQ0dtCiAgICAgICAgIEFUQmxCMFVzajc2clFTeThUK3QyZmlYR1dUeHpGdHM0UUdWWkRnVjFlNW50QnMrTi9GNVhQbmZ3bjk2dzJiRDVtYkRBCiAgICAgICAgIGFkamc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWlvRy84V1RmZ2JBL1c2TTJDOXBGa2M2SzRDSnc2WC9XMUV6eThOWUdSMDg9OwogICAgICAgIGI9SXErTEQ4amJzSUxneGg5bnZFZTZqQklzSEYwZUVCemZtQ0tMNmRVdnlRZ25wak9mTTE3eFNPSVplMjJVeDQ5ekswCiAgICAgICAgIE9USjBiK0RKVVRXZzIzNytLRzNEUzVmVnlDSHNhVkpEeDI1cXU1TVczZ21iTjVHRUhtbnJoYlZKS0tGazM1T01aUjZICiAgICAgICAgIDVBcThoYytYVUZZSkRqR2QyV1Z1S2Z2bkVnZmRyYmJZc296a0tCYkpFUXdYMnpkYmJpU2Q5S3dDNWhjZkVaV2RyOHJqCiAgICAgICAgIGtPZGtJVGIyQVVacVM5cnp4KzhnZTR5Y2QzMTQyUWZIK0FVUmc1NWQyVEw4RnlXM3M5WnNydmpQeU1zMkF4NnFLQWRYCiAgICAgICAgIDAvUVdzR0NUb1ZXbkpCSHArZ2Z1OHN0VVQzclRvajI4TTlpRnhRU2piL01KUDNtaE9TSGJDOHFIU2wyTG5paGUzNVdUCiAgICAgICAgIE1HL1E9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDVtZSswbWxxWkoyQVdpNFRTdnphTFlDcXAzd2VHSzd6bHlvMXVPQ3liWUtmNUh0UktPCglYTS9odnBvZWRLNzkveWl5dlBldHFSOHB3S25XOU43SmNsc3c4MXlFZlE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUdzNHpNWnJGVUZ2WEFPUGxCNU9tK3FZMWtrZEI2a1ZyVEhZcURMQ1FFMXA3VHYxd1pqWjhhS1M4bkZLSzh6MkwranNSWFA3cVg1d0RweU1CdEVhTGhWSXE2bz0KWC1SZWNlaXZlZDogYnkgMTAuMTI5LjEzNy42OSB3aXRoIFNNVFAgaWQgejY2bXI2MTI0NjIweXdmLjQ5NS4xNTExODEwNjk4ODEyOwogTW9uLCAyNyBOb3YgMjAxNyAxMToyNDo1OCAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMzcuNS4yMDMgd2l0aCBIVFRQOyBNb24sIDI3IE5vdiAyMDE3IDExOjI0OjM4IC0wODAwIChQU1QpCkZyb206IFJvbWFpbiBNYW5uaS1CdWNhdSA8cm1hbm5pYnVjYXVAZ21haWwuY29tPgpEYXRlOiBNb24sIDI3IE5vdiAyMDE3IDIwOjI0OjM4ICswMTAwCk1lc3NhZ2UtSUQ6IDxDQUNMRT03Tmt5aWdZeG1oSnlUQzl1N1IzdFpYaEVvUE9BcGQ4ak9qR3VVRDIxWXFfeGdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IGJlYW0gbGVhdmluZyBtYXZlbiwgYW55dGhpbmcgZG9hYmxlPwpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCkhpIGd1eXMsCgphbnl0aGluZyBkb2FibGUgb24gbWF2ZW4gc2lkZSAoZWl0aGVyIHR1bmluZyBvciBjb2RlIGNoYW5nZXMpIHRvIGJlIGFzCmdvb2QgYXMgZ3JhZGxlIG9uIGJlYW0gcHJvamVjdC4gVGhlIHByb2plY3QgaXMgZ29pbmQgdG8gbGVhdmUgbWF2ZW4gYXMKYnVpbGQgdG9vbCAoWzFdKSBhbmQgSSB0aGluayBpdCBpcyB2ZXJ5IGJhZCBmb3IgMS4gdGhlIGNvbW11bml0eSBhbmQKMi4gQVNGIGFzIGFuIGVjb3N5c3RlbS4KClsxXSBodHRwczovL2xpc3RzLmFwYWNoZS5vcmcvdGhyZWFkLmh0bWwvNmQ2ZjdmZmM2NjYyMmRiMWRkNDU5ZTE3MDRjM2E1ZDhhNGJjMjljMmQ5YzBiNjAzNTRmZDNiNmFAJTNDZGV2LmJlYW0uYXBhY2hlLm9yZyUzRQoKUm9tYWluIE1hbm5pLUJ1Y2F1CkBybWFubmlidWNhdSB8ICBCbG9nIHwgT2xkIEJsb2cgfCBHaXRodWIgfCBMaW5rZWRJbgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NDc2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBOb3YgMTMgMTA6MjA6MTEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDc2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDVDMTJGMTA5NkMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxMyBOb3YgMjAxNyAxMDoyMDoxMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE3MjMxIGludm9rZWQgYnkgdWlkIDUwMCk7IDEzIE5vdiAyMDE3IDEwOjIwOjExIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNzE0MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMyBOb3YgMjAxNyAxMDoyMDoxMSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE3MTI5IGludm9rZWQgYnkgdWlkIDk5KTsgMTMgTm92IDIwMTcgMTA6MjA6MTAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDEzIE5vdiAyMDE3IDEwOjIwOjEwICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQ0FFRTIxODA3RDUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDEzIE5vdiAyMDE3IDEwOjIwOjA5ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC44NzkKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC44NzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHozeGR3VS1CZXlVcSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMTMgTm92IDIwMTcgMTA6MjA6MDkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC15dzAtZjE3MS5nb29nbGUuY29tIChtYWlsLXl3MC1mMTcxLmdvb2dsZS5jb20gWzIwOS44NS4xNjEuMTcxXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEQ5QTcyNUZFMEUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDEzIE5vdiAyMDE3IDEwOjIwOjA4ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXl3MC1mMTcxLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGkxOThzbzEyOTcyOTY4eXdlLjcKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMyBOb3YgMjAxNyAwMjoyMDowOCAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bwogICAgICAgICA6Y29udGVudC10cmFuc2Zlci1lbmNvZGluZzsKICAgICAgICBiaD04VFVUU3RoaXg5SmEvR3pqSTdhWjhITWFqem40ZnJkeXc2QmJjM2NWenY4PTsKICAgICAgICBiPURoc1lKL3FHejY2aTE2NFpPY1RLVExZb0xQbGJEVUhZTUJLMTJiOGhhTGkzM0tPWW5BOXBORkVmZmdIcnlHTkIwKwogICAgICAgICA0VTcvYjdRL3BjSjI3eU5ydzlFelgrTHZPWHRXSVBxZ0QxRG1ONHhpYlZncTRTSVJrTnpSTWpUVUdoTjR3L2ZFT05QRQogICAgICAgICBMcyswT1RGRUs3RGxqTmtiRzFLcG41b3Rwb0kwR1ZrbWZBVDVvUW43NHFDR2xVcVo0TzJmZ3NDTVhyK1lSTTU3azN2SgogICAgICAgICBOZUtWK0ZDU1RnQllFdzV3TGRNRzMwMi84eUNjVXFxdnc1TWNEbFBTbndZMW1HQVFvWmdpenpOOEsrSjJxYkdRNUNtcQogICAgICAgICBtNnRSVkszMXZ3bXBZUmorb0xQaFRzZ25TYTBYQyt6bndwS1NqdTdPS3pFM1hkeE82YXFhdDMybVB5aG5ZRXY4a2FhQgogICAgICAgICBmNllBPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzpjb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOwogICAgICAgIGJoPThUVVRTdGhpeDlKYS9HempJN2FaOEhNYWp6bjRmcmR5dzZCYmMzY1Z6djg9OwogICAgICAgIGI9TitEVm1wM3lUak55RmZRbjJYaEVrUzdVRFc5ajNjMGdnb3ZNakljcXA1Q3hIT21oWkdUUk1jaEdHQmxmRTZmckR5CiAgICAgICAgIHg4bWRzQ0IxRXI3bDRvNUVvc2N0THJqS0RGTFJBZWFUcFQzU3V6QXFqM0ZwVm5ha0pKd1FqbWtTNVkxZ2k2YmJNTzJJCiAgICAgICAgIFdzNUVhU3N2M1l1ZmtDa2svbzMzeUE1Rm9PbXhtYlFEcWd2d3BFWFMxL3ZlYXBzRjFLeE1VaUt0SFZVR21JUUhxVzNSCiAgICAgICAgIGkxYjNMWTd6ZlZqUi8xOGdMbTRHVHVsaXM4RXV4MHdPYzdDM1pXVXM3WTV2Z3VvUHZ4U0hTc2s2Z3RtMnNuQ2xTbzJBCiAgICAgICAgIGpZQitHaHdlYVFGUm12MEZzWHdXUEpXNnNiSEl1R1YzTE9YZ3JuTnppNzdCMnd3Tm16b3NBZmtPd09YS0pDK2lIQ25TCiAgICAgICAgIFM3RGc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDVoNjV4OXY1QkZyZGJYWUExdG4xK3lSelBlWUV6K1dwNG1SV2V5UnYvZkRRTnhwY1VSCgl2amowVnNjMCtDWDNLOHczRDEvTXB2ZW9hN0NkTlRSZUpBV1pWQTFuNXc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUdzNHpNWkwvQ0NqU1UvanNXZW94UGdvN3l6dzVtbDR2WnF5eHdMV3J2V2lzaldHM2p1eEd3am1QM1hBdHdWbFBobnk4aGVsOEpZeTBXcWVSK1E0eVg2Z3RvST0KWC1SZWNlaXZlZDogYnkgMTAuMzcuMTkwLjEzOSB3aXRoIFNNVFAgaWQgaTExbXI1MTY1NjQ3eWJrLjI5Ni4xNTEwNTY4NDAxOTEzOwogTW9uLCAxMyBOb3YgMjAxNyAwMjoyMDowMSAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMzcuNS4yMDMgd2l0aCBIVFRQOyBNb24sIDEzIE5vdiAyMDE3IDAyOjE5OjQxIC0wODAwIChQU1QpCkluLVJlcGx5LVRvOiA8b3VicjR2JDliOSQxQGJsYWluZS5nbWFuZS5vcmc+ClJlZmVyZW5jZXM6IDxDQStuUG5Nd0VIOVoybXlwNzF1YVNyZGN5TEpSRnJFLVZydDIwMTkxcmQwMWgrVWZoandAbWFpbC5nbWFpbC5jb20+CiA8b3UxM25vJDRqbyQxQGJsYWluZS5nbWFuZS5vcmc+IDxDQUNMRT03TVh4VV92b1VDZVhId0FWdTczN3NTeEZkYkM2c1JMV0M1WkFQNWNlR2VSUWdAbWFpbC5nbWFpbC5jb20+CiA8b3VicjR2JDliOSQxQGJsYWluZS5nbWFuZS5vcmc+CkZyb206IFJvbWFpbiBNYW5uaS1CdWNhdSA8cm1hbm5pYnVjYXVAZ21haWwuY29tPgpEYXRlOiBNb24sIDEzIE5vdiAyMDE3IDExOjE5OjQxICswMTAwCk1lc3NhZ2UtSUQ6IDxDQUNMRT03Ty1OMVh5S2QzVWR3akU3dHVBMHRQTzVueXk2MWQxOUo5Qml4VktvWTZHZ0FAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiA0LjAuMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSGkgSj1DMz1CNnJnLCBmdWxseSB1bnJlbGF0ZWQgKGNyb3NzIHRvcGljKS4gQWJvdXQgdHljaG8gSSBvZnRlbiBlbmQgdXAKZG9pbmcgYSBjdXN0b20gc2NyaXB0IGhhY2tpbmcgdGhlIHJlc29sdmVkQXJ0aWZhY3RzIGFuZCB1c2luZyBhIGxvY2FsCmNhY2hlIChtMiBmYWtlIHJlcG8pIGJlY2F1c2UgdHljaG8gcGx1Z2luIGlzIHdheSB0byBzbG93IGluIHByYWN0aXNlLgpJdCBjYW4gbG9vayBsaWtlCmh0dHBzOi8vZ2l0aHViLmNvbS9UYWxlbmQvY29tcG9uZW50LXJ1bnRpbWUvYmxvYi9tYXN0ZXIvY29tcG9uZW50LXN0dWRpby1pbj0KdGVncmF0aW9uL3NyYy9idWlsZC9TdHVkaW9EZXBlbmRlbmNpZXMuZ3Jvb3Z5I0wyNwood2hpY2ggdHJhbnNpdGl2ZSBkZXBzIHN1cHBvcnQgYnV0IGl0IGlzIG5vdCB0aGF0IGhhcmQgdG8gYWRkKS4KClJvbWFpbiBNYW5uaS1CdWNhdQpAcm1hbm5pYnVjYXUgfCAgQmxvZyB8IE9sZCBCbG9nIHwgR2l0aHViIHwgTGlua2VkSW4KCgoyMDE3LTExLTEzIDExOjExIEdNVCswMTowMCBKPUMzPUI2cmcgU2NoYWlibGUgPGpvZXJnLnNjaGFpYmxlQGJwbS1pbnNwaXJlLmM9Cm9tPjoKPiBIaSBSb21haW4sCj4KPiBBbSBUaHUsIDA5IE5vdiAyMDE3IDA5OjMyOjEyICswMTAwIHNjaHJpZWIgUm9tYWluIE1hbm5pLUJ1Y2F1Ogo+Cj4+IEZZSSBvcGVuZWQgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9wdWxsLzEzNiBmb3IgdGhlIE1ORy02MzAyCj4+IChndWVzcyB3ZSBjYW4gc3dpdGNoIGZyb20gdGhyZWFkIHRvIGRpc2N1c3MgaXQgbm93PykKPgo+IEhvdyBpcyB0aGlzIGlzc3VlIHJlbGF0ZWQgd2l0aCBteSB0b3BpYyByZWdhcmRpbmcgaW1wcm92ZWQgVHljaG8gc3VwcG9ydAo+IGluIE1hdmVuIDQuMC4wPwo+Cj4gUmVnYXJkcywKPiBKPUMzPUI2cmcKPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQ1MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgTm92ICA4IDIwOjA2OjQ5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQ1MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA0MUM0MTE3RjQ0Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgIDggTm92IDIwMTcgMjA6MDY6NDkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzMTc0MiBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IE5vdiAyMDE3IDIwOjA2OjQ4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMTY0MCBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IE5vdiAyMDE3IDIwOjA2OjQ4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzE2MjggaW52b2tlZCBieSB1aWQgOTkpOyA4IE5vdiAyMDE3IDIwOjA2OjQ4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAwOCBOb3YgMjAxNyAyMDowNjo0OCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEI1RDE1RDJCQTkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsICA4IE5vdiAyMDE3IDIwOjA2OjQ3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS4xNzkKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjE3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUtBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBkZFk2bWJOalRSeDUgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsICA4IE5vdiAyMDE3IDIwOjA2OjQ1ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwteXcwLWYxNzQuZ29vZ2xlLmNvbSAobWFpbC15dzAtZjE3NC5nb29nbGUuY29tIFsyMDkuODUuMTYxLjE3NF0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA1OUZGOTYxNEYyCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAgOCBOb3YgMjAxNyAyMDowMzowOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC15dzAtZjE3NC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBpMTk4c28zMzUzODM0eXdlLjcKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAwOCBOb3YgMjAxNyAxMjowMzowOCAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bwogICAgICAgICA6Y29udGVudC10cmFuc2Zlci1lbmNvZGluZzsKICAgICAgICBiaD1PQkk0RXFIRVFLTlF4NWlVSXMyaERDNTRnTDBDQ1ZvV3dmR2tnUHBmaGZnPTsKICAgICAgICBiPUdDRzFucGR5UnhiMTdTclo5YmpsMzI3MjdrZThwQVlWMDZVbFhOdnMvK1lHWDBQZGwyVGJoWjA0RGV0dWl2cU5XTgogICAgICAgICB3VVk5WXdoWWl2ZjhFK1VtL0lKU09Za0dQSVJCY0J5WGw1RE4weEkzZ0lvbStWWjZ5RmpPamtYb2VQQ3BTRkpNS09WQQogICAgICAgICA0NVo4enZHT0VhZHFBWXVzZ2FaTTAyenZJT3luUWd6NTgvNjU4NFVpcnNWQkE4NkYxRk83OUcxKytZUFRBUEc0bUNuegogICAgICAgICBFcmd2STQvOUkvZFQyQVJBOVJmYm9jRW9nWWdIZTZJSkgrbHFyQTR1K0N5YmVZRlVJYllUa1IrQ3h3Wkg0Z2NOQUdidwogICAgICAgICBUQndFOVBkYjhaRWJRWGMydWp5eXZ0YmhldFFFczVmaG1XNTNleWoySDdZVHBQQlBNcFVYSGo1enNncEdoRk9SRlRhVQogICAgICAgICBFbkxBPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzpjb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOwogICAgICAgIGJoPU9CSTRFcUhFUUtOUXg1aVVJczJoREM1NGdMMENDVm9Xd2ZHa2dQcGZoZmc9OwogICAgICAgIGI9Q25XMmU2bXI3dFU3L3BNZ0t5ODY3bzlYL1NGNU1PaVVMalRKT2Y3cUpzTlZoZTg4d25OdFo0NTNsZ0xYbGdQbFNVCiAgICAgICAgIFJXdnA1QnFVb2NjcDM5M3JyYWdWWVcrcVFCMDBtT2pobG1JUWdOUDI2OG8rUm15aTZuOEZJUk0wMkVFQkFqQldydzAvCiAgICAgICAgIDkrck0vOWg1ZE9RVERSSDVwQ0FIRWN3Sm1Pa0RINy9DZEZtMFZrL2p5TU5SSHgrdTgzakk1b3JSNUhhalBwaWFock1OCiAgICAgICAgIDcyZWpYVklTeGh6WjlpNW1VTU90d2RBcVB5NVFYVVlaRWlleVBWdDVUUkJzenl3VHltU3BmZXZ2VENncks3THkwdmlFCiAgICAgICAgIFVtb0pEay80TGg5UmNqRzdod0ZQRXlJRXdzN1ZST2ZONklsQkxGcVlHbCtJRlV3MSs1RjdRY3gzVXViTnV0SzRWTEtzCiAgICAgICAgIEVmWlE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDdkNFRCZEFCNnl2ZG4vRkdIOWtoWk5jd3B0T2hUdWpOZXV3bzF1YzBURndncVNpZTNUCglDR1B5T1J2aklJNlg4dFp5dEo2dzJnaXlvOTZDUTRnMnhFbmRXTUk9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtSWE9BSUwxQzd6K3I3eHBDY3VhRmg4aUxMazdTUXNQU1AzV2F5M2hXY2tKdU8xbzdHU1FLbnRqY0tzRzRBTzY2ck9uUXRqanExR1lOZHNlVlB1MlhrPQpYLVJlY2VpdmVkOiBieSAxMC4zNy4xOTkuMTM3IHdpdGggU01UUCBpZCB3MTMxbXIxMTAwOTczeWJlLjExOC4xNTEwMTcxMzgwNDI3OwogV2VkLCAwOCBOb3YgMjAxNyAxMjowMzowMCAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMzcuNS4yMDMgd2l0aCBIVFRQOyBXZWQsIDggTm92IDIwMTcgMTI6MDI6MzkgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDxDQUNMRT03TVdza21YWDhYK3p6T0M5NmpxaVg1NUQxblJ3anhhcy1wWFkxbjZrNXZ5aGdAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQStuUG5Nd0VIOVoybXlwNzF1YVNyZGN5TEpSRnJFLVZydDIwMTkxcmQwMWgrVWZoandAbWFpbC5nbWFpbC5jb20+CiA8Q0FMWUdtMXhiMU1PSHBzWCs3RUc4eDRiZC16SForTzk1ZTJZNVkyRHVkWmlFRTZlTkNBQG1haWwuZ21haWwuY29tPgogPG9wLnk4Njd3eGg0a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPiA8RTk5QTA0RjYtQjc4RS00QjRGLTgyRTktQzg5QThGQjc0NERFQHRhbGlvcy5jb20+CiA8NTlmZjgyNTguZWNiMmRmMGEuNWQzMTYuYmM4OUBteC5nb29nbGUuY29tPiA8Q0FDTEU9N01LTF82Q052UkJuVk82a3JGeEhNODZlaDg4b1pRT3JILXZ0cXRzcS1RUUVBQG1haWwuZ21haWwuY29tPgogPENBK25Qbk14c00xT3hpWlF1bjl2aktIYndCZ01pd3JZRWphQjVYNFhuRm1HTGVUWllFQUBtYWlsLmdtYWlsLmNvbT4KIDxDQUNMRT03TVZoV3NmRWp5a1ZRc0FDdTN0dVgtX1FOV3ZCUkhrUk1MK0FrS21uVzNYY2dAbWFpbC5nbWFpbC5jb20+CiA8Q0ErblBuTXpGVkRUWXlyRkJiVTRiejFnM2FLNkdBblVvcjVMZGFCZ3R5RkdUVTNvcG1nQG1haWwuZ21haWwuY29tPiA8Q0FDTEU9N01Xc2ttWFg4WCt6ek9DOTZqcWlYNTVEMW5Sd2p4YXMtcFhZMW42azV2eWhnQG1haWwuZ21haWwuY29tPgpGcm9tOiBSb21haW4gTWFubmktQnVjYXUgPHJtYW5uaWJ1Y2F1QGdtYWlsLmNvbT4KRGF0ZTogV2VkLCA4IE5vdiAyMDE3IDIxOjAyOjM5ICswMTAwCk1lc3NhZ2UtSUQ6IDxDQUNMRT03TzIzV0dOWHU3akFONDZGSkdlbVlFUmpfZkErWU5pbUVKam1UbUgtM2Z5TGdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiA0LjAuMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKQW5vdGhlciBnb29kIGZlZWRiYWNrIGZyb20gYmVhbSAodGhleSBkaWQgYSBQb0MgdXNpbmcgZ3JhZGxlIGFuZCBhcmUKc2lnbmlnaWNhbnRseSBmYXN0ZXIgd2l0aCBncmFkbGUpOiBiZWluZyBhYmxlIHRvIHBhcmFsbGVsaXplIHNvbWUKcGx1Z2lucyAobGlrZSBjaGVja3N0eWxlL2ZpbmRidWdzL3BtZCkgY2FuIGJlIGJlbmVmaWNpYWwgdG8gdGhlCm92ZXJhbGwgc29mdC4KClJvbWFpbiBNYW5uaS1CdWNhdQpAcm1hbm5pYnVjYXUgfCAgQmxvZyB8IE9sZCBCbG9nIHwgR2l0aHViIHwgTGlua2VkSW4KCgoyMDE3LTExLTA2IDExOjE2IEdNVCswMTowMCBSb21haW4gTWFubmktQnVjYXUgPHJtYW5uaWJ1Y2F1QGdtYWlsLmNvbT46Cj4gQ2FuJ3QgdGFja2xlIGl0IGJlZm9yZSBuZXh0IHllYXIgYnV0IGlmIG5vdCBkb25lIGluIGphbnVhcnkgc3VyZS4KPgo+Cj4gMjAxNy0xMS0wNiAxMDowMCBHTVQrMDE6MDAgU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLj0KY29tPjoKPj4gRllJIHRoaXMgc2VlbXMgc29tZXRoaW5nIHRoYXQgZG9lc250IG5lZWQgdG8gd2FpdCBmb3IgNC4wLjAKPj4KPj4gSWYgdGhlcmUgd2FzIGEgUFIgZm9yIHRoaXMgYW5kIGVub3VnaCBvdGhlciBzbWFsbCBjaGFuZ2VzIEknZCBiZSBoYXBweSB0PQpvCj4+IHJvbGwgYSAzLjUuMwo+Pgo+PiBEbyB5b3Ugd2FudCB0byB0YWtlIGEgc3RhYiBhdCBpdD8KPj4KPj4gKG9ubHkgY29tcGxleGl0eSBtaWdodCBiZSBwYXJhbGxlbCBleGVjdXRpb24sIGJ1dCB3ZSBjb3VsZCBqdXN0IHJlcG9ydCB0PQpoZQo+PiBsaW5lYXIgcGxhbiBudW1iZXIgYW5kIHdoZW4gaW4gcGFyYWxsZWwgYWxzbyBsb2cgaG93IG1hbnkgaGF2ZSBjb21wbGV0ZWQ9CikKPj4KPj4gT24gNiBOb3ZlbWJlciAyMDE3IGF0IDAwOjUxLCBSb21haW4gTWFubmktQnVjYXUgPHJtYW5uaWJ1Y2F1QGdtYWlsLmNvbT4KPj4gd3JvdGU6Cj4+Cj4+PiBpbmRlZWQ6IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYzMDIKPj4+Cj4+PiBSb21haW4gTWFubmktQnVjYXUKPj4+IEBybWFubmlidWNhdSB8ICBCbG9nIHwgT2xkIEJsb2cgfCBHaXRodWIgfCBMaW5rZWRJbgo+Pj4KPj4+Cj4+PiAyMDE3LTExLTA2IDk6MzcgR01UKzAxOjAwIFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbD0KLgo+Pj4gY29tPjoKPj4+ID4gT24gTW9uIDYgTm92IDIwMTcgYXQgMDg6MTMsIFJvbWFpbiBNYW5uaS1CdWNhdSA8cm1hbm5pYnVjYXVAZ21haWwuY29tPQo+Cj4+PiA+IHdyb3RlOgo+Pj4gPgo+Pj4gPj4gRm9yZ290IGEgdXNlciB3aXNoIGZlYXR1cmU6IHNvbWUgcHJvZ3Jlc3MgbG9nZ2luZyBzb21laG93LiBPbiAiYmlnIgo+Pj4gcHJvamVjdAo+Pj4gPj4gKGFjdHVhbGx5IG9uIHByb2plY3QgbG9nZ2luZyBhIGxvdCkgeW91IGFyZSBlYXNpbHkgbG9zdCBvbiB0aGUgcHJvZ3I9CmVzcywKPj4+ID4+IHlvdSBrbm93IGN1cnJlbnQgbW9kdWxlIGlzIFggYnV0IHlvdSBkb24ndCBrbm93IGFueW1vcmUgaWYgaXQgaXMgNTAlPQogb2YKPj4+IHRoZQo+Pj4gPj4gYnVpbGQgb3IgNSUuIEhhdmluZyBhdCBsZWFzdCAibW9kdWxlIFggLyBZIiB3b3VsZCBiZSBoZWxwZnVsLiBJTU8gaXQ9CiBpcwo+Pj4gPj4gZW5vdWdoIHRvIGxvZyBpdCB3aXRoIHRoZSBtb2R1bGUgbmFtZToKPj4+ID4+Cj4+PiA+PiBbSU5GT10KPj4+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gLS0tLS0tLS0tLS0tCj4+PiA+PiBbSU5GT10gQnVpbGRpbmcgRm9vIDEuMC4wLVNOQVBTSE9UCj4+PiA+PiBbSU5GT10KPj4+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gLS0tLS0tLS0tLS0tCj4+PiA+PiBbSU5GT10gTW9kdWxlIDEwIC8gMTAwCj4+PiA+Pgo+Pj4gPgo+Pj4gPiBDYW4geW91IGZpbGUgYSBKSVJBPwo+Pj4gPgo+Pj4gPj4KPj4+ID4+Cj4+PiA+Pgo+Pj4gPj4KPj4+ID4+Cj4+PiA+PiBSb21haW4gTWFubmktQnVjYXUKPj4+ID4+IEBybWFubmlidWNhdSA8aHR0cHM6Ly90d2l0dGVyLmNvbS9ybWFubmlidWNhdT4gfCAgQmxvZwo+Pj4gPj4gPGh0dHBzOi8vcm1hbm5pYnVjYXUubWV0YXdlcngubmV0Lz4gfCBPbGQgQmxvZwo+Pj4gPj4gPGh0dHA6Ly9ybWFubmlidWNhdS53b3JkcHJlc3MuY29tPiB8IEdpdGh1YiA8Cj4+PiA+PiBodHRwczovL2dpdGh1Yi5jb20vcm1hbm5pYnVjYXU+IHwKPj4+ID4+IExpbmtlZEluIDxodHRwczovL3d3dy5saW5rZWRpbi5jb20vaW4vcm1hbm5pYnVjYXU+Cj4+PiA+Pgo+Pj4gPj4gMjAxNy0xMS0wNSAyMjoyNyBHTVQrMDE6MDAgQmVybmQgRWNrZW5mZWxzIDxlY2tpQHp1c2FtbWVua3VuZnQubmV0PjoKPj4+ID4+Cj4+PiA+PiA+IEhlbGxvLAo+Pj4gPj4gPgo+Pj4gPj4gPgo+Pj4gPj4gPgo+Pj4gPj4gPiBBZGRpbmcgYW5ub3RhdGlvbnMgYW5kIHByb2Nlc3NvciBhcyBhIGNvbXBpbGV0aW1lIGRlcGVuZGVuY3kgc291bmQ9CnMKPj4+IGxpa2UKPj4+ID4+IGEKPj4+ID4+ID4gcmVhc29uYWJsZSB0aGluZy4gSXQgd291bGQgaG93ZXZlciBiZSBjb29sIGlmIHRoZSBKQVIgY291bGQgZGVzY3JpPQpiZQo+Pj4gPj4gd2hpY2gKPj4+ID4+ID4gcGFja2FnZSBuZWVkcyB0byBnbyBvbiB0aGUgY2xhc3NwYXRoIGFuZCB3aGljaCBpcyBwcm9jZXNzb3IgaW1wbC4gPQooYW5kCj4+PiA+PiA+IGhhdmluZyBhIGRpZmZlcmVudCBhcnRpZmFjdCBmb3IgcnVudGltZSkKPj4+ID4+ID4KPj4+ID4+ID4KPj4+ID4+ID4KPj4+ID4+ID4gR3J1c3MKPj4+ID4+ID4KPj4+ID4+ID4gQmVybmQKPj4+ID4+ID4KPj4+ID4+ID4KPj4+ID4+ID4KPj4+ID4+ID4gKlZvbjogKk1hcmsgRGVycmljdXR0IDxtYXJrQHRhbGlvcy5jb20+Cj4+PiA+PiA+ICpHZXNlbmRldDogKlNvbm50YWcsIDUuIE5vdmVtYmVyIDIwMTcgMjI6MjAKPj4+ID4+ID4gKkFuOiAqTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KPj4+ID4+ID4gKkJldHJlZmY6ICpSZTogTWF2ZW4gNC4wLjAKPj4+ID4+ID4KPj4+ID4+ID4KPj4+ID4+ID4KPj4+ID4+ID4gT24gNSBOb3YgMjAxNywgYXQgMTA6NDIsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+Pj4gPj4gPgo+Pj4gPj4gPiBJIHdvdWxkIGxpa2UgdG8gZHJvcCBzdHJpY3Qgc2NvcGVzIGluIGdlbmVyYWwgYW5kIGdpdmUgcGx1Z2lucyB0aGUKPj4+ID4+ID4gb3Bwb3J0dW5pdHkgdG8gZGVwZW5kIG9uCj4+PiA+PiA+IHNwZWNpZmljIHNjb3BlZCBkZXBlbmRlbmNpZXMuCj4+PiA+PiA+Cj4+PiA+PiA+IEhvdyB3b3VsZCB0aGlzIGhlbHAgd2l0aCBhbm5vdGF0aW9ucyB0aG8/IFRoZSBtYWluIGlzc3VlIEknbSBmYWNpbj0KZyBpcwo+Pj4gPj4gPiBoYXZpbmcgYSBzdGFuZGFyZCBtLWMtcCBwbHVnaW4gZGVmaW5pdGlvbiBpbiBhIHBhcmVudCAoIG9yIHRpbGUgKSA9CmJ1dAo+Pj4gPj4gPiBuZWVkaW5nIGRpZmZlcmVudCBhbm5vdGF0aW9uIHByb2Nlc3NvcnMgdXNlZCBwZXIgcHJvamVjdC4gV2l0aCB0aGUKPj4+ID4+IGN1cnJlbnQKPj4+ID4+ID4gcGx1Z2luLCB0aGlzIG1lYW5zIGVpdGhlciBsaXN0aW5nIHRoZW0gYXMgc3RhbmRhcmQgZGVwZW5kZW5jaWVzIGFuPQpkCj4+PiBoYXZlCj4+PiA+PiA+IHRoZW0gYXV0by1zY2FubmVkLCBhbmQgcG9sbHV0ZSB0aGUgY29tcGlsYXRpb24gY2xhc3NwYXRoLCBvciBsaXN0Cj4+PiBldmVyeQo+Pj4gPj4gPiBwb3NzaWJsZSBhbm5vdGF0aW9uIHByb2Nlc3NvciBkZXBlbmRlbmN5IHdlIG1heSB1c2UgaW4gb3VyIHByb2plY3Q9CnMgaW4KPj4+ID4+IHRoZQo+Pj4gPj4gPiBwYXJlbnQsIHdoaWNoIGlzIGxlc3MgdGhhbiBpZGVhbC4KPj4+ID4+ID4KPj4+ID4+ID4gSSBob3BlIHlvdSBhcmUgYXdhcmUgdGhhdCBtb2R1bGVzIGFscmVhZHkgZW5kIHVwIG9uIHRoZSBtb2R1bGVwYXRoCj4+PiBiYXNlZAo+Pj4gPj4gPiBvbiB0aGUgbW9kdWxlZGVzY3JpcHRvcihzKS4gU28gSSBkb24ndCBzZWUgdGhlIG5lZWQgZm9yIHRoaXMgc2NvcGU9Ci4KPj4+ID4+ICh1bmxlc3MKPj4+ID4+ID4geW91IGhhdmUgdGhpcyB3aXNoIHRoYXQgaW4gdGhlIGVuZCBNYXZlbiB3aWxsIGNyZWF0ZSB0aGUgbW9kdWxlCj4+PiA+PiBkZXNjcmlwdG9yCj4+PiA+PiA+IGJhc2VkIG9uIHRoaXMsIGJ1dCBJIHN0aWxsIHRoaW5rIHdlIHNob3VsZG4ndCBkbyB0aGF0KQo+Pj4gPj4gPgo+Pj4gPj4gPiBJIHJlbWVtYmVyZWQgcmVhZGluZyBzb21ldGhpbmcgYWJvdXQgdGhpcywgYW5kIGFzc3VtZWQgaXQgd2FzIHRoZQo+Pj4gY2FzZSBpZgo+Pj4gPj4gPiB0aGVyZSB3YXMgYSBtb2R1bGUtaW5mby5jbGFzcywgYnV0IHdoYXQgaWYgaXRzIGEgc3RhbmRhcmQgamFyIHdpdGg9CiBhbgo+Pj4gPj4gPiBBdXRvbWF0aWMtTW9kdWxlLU5hbWUgaGVhZGVyPyBEb2VzIHRoYXQgZmFsbCBpbnRvIHRoZSBtb2R1bGUgcGF0aCA9Cm9yCj4+PiA+PiA+IGNsYXNzcGF0aD8gSGF2aW5nIGNvbnRyb2wgZm9yIHRoaXMgY2FzZSBtYXkgYmUgdXNlZnVsLgo+Pj4gPj4gPgo+Pj4gPj4gPiBJIHJlY29nbml6ZSB0aGlzIHdpc2guIFRoZSBiZXN0IHNvbHV0aW9uIGlzIHRvIG1ha2UgdGhlIGRlcGVuZGVuY3kKPj4+ID4+ID4gb3B0aW9uYWwuCj4+PiA+PiA+Cj4+PiA+PiA+IFRoZSBwcm9ibGVtIHdpdGggdGhpcyBpcyB0aGF0IHRoZSBkZXBlbmRlbmN5IGlzIHN0aWxsIG9uIHRoZSBjbGFzcz0KcGF0aAo+Pj4gPj4gZm9yCj4+PiA+PiA+IHNheSBzdXJlZmlyZSwgd2hpY2ggY2FuIGluZmx1ZW5jZSBiZWhhdmlvdXIuCj4+PiA+PiA+Cj4+PiA+PiA+IE1hcmsKPj4+ID4+ID4KPj4+ID4+ID4gIlRoZSBlYXNlIHdpdGggd2hpY2ggYSBjaGFuZ2UgY2FuIGJlIGltcGxlbWVudGVkIGhhcyBubyByZWxldmFuY2UgPQphdAo+Pj4gYWxsCj4+PiA+PiA+IHRvIHdoZXRoZXIgaXQgaXMgdGhlIHJpZ2h0IGNoYW5nZSBmb3IgdGhlIChKYXZhKSBQbGF0Zm9ybSBmb3IgYWxsCj4+PiB0aW1lLiIKPj4+ID4+ID1FMj04MD05NAo+Pj4gPj4gPiBNYXJrIFJlaW5ob2xkLgo+Pj4gPj4gPgo+Pj4gPj4gPiBNYXJrIERlcnJpY3V0dAo+Pj4gPj4gPiBodHRwOi8vd3d3LnRoZW9yeWlucHJhY3RpY2UubmV0Cj4+PiA+PiA+IGh0dHA6Ly93d3cuY2hhbGljZW9mYmxvb2QubmV0Cj4+PiA+PiA+IGh0dHA6Ly9wbHVzLmdvb2dsZS5jb20vK01hcmtEZXJyaWN1dHQKPj4+ID4+ID4gaHR0cDovL3R3aXR0ZXIuY29tL3RhbGlvcwo+Pj4gPj4gPiBodHRwOi8vZmFjZWJvb2suY29tL21kZXJyaWN1dHQKPj4+ID4+ID4KPj4+ID4+ID4KPj4+ID4+ID4KPj4+ID4+ID4KPj4+ID4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotLS0KPj4+ID4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+ID4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gPj4gPgo+Pj4gPj4KPj4+ID4gLS0KPj4+ID4gU2VudCBmcm9tIG15IHBob25lCj4+Pgo+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4KPj4+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3OTEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIERlYyAxOCAxODoxMDowNiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3OTEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOEE2NzIxMDIxNAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDE4IERlYyAyMDE3IDE4OjEwOjA2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODMyNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBEZWMgMjAxNyAxODoxMDowNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODIyOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBEZWMgMjAxNyAxODoxMDowNiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgyMTEgaW52b2tlZCBieSB1aWQgOTkpOyAxOCBEZWMgMjAxNyAxODoxMDowNSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMTggRGVjIDIwMTcgMTg6MTA6MDUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA0QUYxMDE4MDc4MgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTggRGVjIDIwMTcgMTg6MTA6MDUgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC40MDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuNDAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFo5LVB2VHhGaW05YyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMTggRGVjIDIwMTcgMTg6MTA6MDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC15YjAtZjE3Mi5nb29nbGUuY29tIChtYWlsLXliMC1mMTcyLmdvb2dsZS5jb20gWzIwOS44NS4yMTMuMTcyXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEI5RkY2NUYzQ0UKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE4IERlYyAyMDE3IDE4OjEwOjAyICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXliMC1mMTcyLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGo3c28xMTcyNjk3MnlibC4zCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTggRGVjIDIwMTcgMTA6MTA6MDIgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9UXVBUHRmZVhRZDRJK2c0c2MwemlxZjg0Y1FicTA1aWpvRnZ3RFNUclhIUT07CiAgICAgICAgYj1Wbzg4THBRNlFDeUlEVlFzQ2RocjVaN2FEcTlpZG5vSDVmY0JtU1pjN1FLN1NRcllsRFgyTTU1bkxRRnVCY3pOeisKICAgICAgICAgbHhVNk5tMnAvQ1A2NVNkL0ZkK1hJaHZlT2hQUklvZnBCZ3N4ZHZrSGRGTFcyckJMc2orVE8wRHdaRlRjZTRna21aMHIKICAgICAgICAgbXc0Y056Rk9jYnFDQ0Njd0h1TTdSaE5Oa3drMDh1TVJDMVA0c0x3WjBseG9JMjRyUG5Ibm1XMUFGR1ZlcTRlanYyUUMKICAgICAgICAgaHNadkdXY04yRDd4VWwrVzNvQjdyeTFOcXlZcUY5TVVWVFkwLzhDVmlTUWxPOWpUS0ZnSFZBNk9MaFlQeWFoeUlWVXAKICAgICAgICAgWDQ3YzJvSHFiTzQ5NkRiZ3oyNmxxQ01MQTd0SGMxNnJIb0hIem1ZcW10alVabDhPbjE0NWhpVUZYV0NqN2N3WmlQVVYKICAgICAgICAgOVpCUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9UXVBUHRmZVhRZDRJK2c0c2MwemlxZjg0Y1FicTA1aWpvRnZ3RFNUclhIUT07CiAgICAgICAgYj1yazcwb012YXFqajk3czFBMG9UK2hQMVNqSjRJSUE0VmUvOHBhTkJjY3ZlSTZlM2ZBaWF1ZXBhVjcxWkUwNkl5R3oKICAgICAgICAgcHlhS01Xc1ZRREZYZUdjTnlvUnYySnlvTmZXVjZiN2huekpCSlMvUGxNMEd3ZVZmbGN0L2dYVlNJeWZTYXhsSlQyUkkKICAgICAgICAgdWtzU29LaG1seUtFRURBYkdVejhQbXI3SzFRRnpyRTJwckVxUkJTc3JsVjZNbTlLYlNrVzg1MThNMWZNK3YrTkJkSzIKICAgICAgICAgeEpaeE0raVUxVTYwTEFyWlhEUlh4RVBnWThPVUppZ1FEYnNlcS9MUFZpcitjY2tPNVBmaU15OE9NZjUvemFXTWRhcHIKICAgICAgICAgM3hGd2t6V3ZBcFdjbzA3elFSNzM4aXFzNUtteElOMXpmbEExUDR5SjI5OE9GVUpNZUdFYVNDS2dVTlc0VkdoWVJxY1cKICAgICAgICAgeGdKUT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUtHQjNtTEU4TTEwWEhCTzVGZzBTNUlJMlBvT2VKVUkxQmRDWS9SZjFtMmNybzJQZ1ZEMHlIeGIKCTJOSzcvMm5Lb204dmhYbllYc3pQanR0QU9Ta2swOUlCNWxCMHk4VT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFDSmZCb3ZDMWZLNlVQNmJRNWJ2eUN4RTlaVFdPTi9PU0pvTnJockJ5ckpFck16bUdTYVB2MVlEZ0sydHN6WEdFVHduK1BDSGRnMjhDNnZzV2c5M1RBdytDaDQ9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjEyOS4xNDcuNiB3aXRoIFNNVFAgaWQgazZtcjUwNDYwMHl3Zy44NC4xNTEzNjIwNjAyMTAwOyBNb24sCiAxOCBEZWMgMjAxNyAxMDoxMDowMiAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMzcuMjMyLjcgd2l0aCBIVFRQOyBNb24sIDE4IERlYyAyMDE3IDEwOjEwOjAxIC0wODAwIChQU1QpClJlY2VpdmVkOiBieSAxMC4zNy4yMzIuNyB3aXRoIEhUVFA7IE1vbiwgMTggRGVjIDIwMTcgMTA6MTA6MDEgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDxDQUNLaHpybjVGVkEzZUFxalZ6Y0JYalBKMlc2TGVUeUEzX0pCNmNSYVRDaWdRa1lYb3dAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQUNLaHpybjVGVkEzZUFxalZ6Y0JYalBKMlc2TGVUeUEzX0pCNmNSYVRDaWdRa1lYb3dAbWFpbC5nbWFpbC5jb20+CkZyb206IFJvbWFpbiBNYW5uaS1CdWNhdSA8cm1hbm5pYnVjYXVAZ21haWwuY29tPgpEYXRlOiBNb24sIDE4IERlYyAyMDE3IDE5OjEwOjAxICswMTAwCk1lc3NhZ2UtSUQ6IDxDQUNMRT03T2ZEMV9oM0RkdFlCaHoxSFIrV1B1dUJXMEIzYVVId0dnT2dBcjRiNzVXZVFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBEeW5hbWljYWxseSBtb2RpZnlpbmcgTWF2ZW5Qcm9qZWN0LmdldE1vZGVsKCkgc28gdGhhdCBzdWItc2VxdWVudAogbGlmZWN5Y2xlIHBoYXNlcyBjYW4gcGljayB1cCB0aG9zZSBjaGFuZ2VzClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzA4MTJlZTUwMjFkNDA1NjBhMTQyZWUiCgotLTk0ZWIyYzA4MTJlZTUwMjFkNDA1NjBhMTQyZWUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSGkKCkRpZCB5b3UgdHJ5IHdyaXRpbmcgYW4gZXh0ZW5zaW9uIGluc3RlYWQgb2YgYSBtb2pvPyBJdCBkb2VzIGV4YWN0bHkgdGhhdCAoKwpmZXcgb3RoZXIgdGhpbmdzKQoKTGUgMTggZD1DMz1BOWMuIDIwMTcgMTk6MDMsICJRdWlqYWRhLCBKb3NlIE0iIDxqb3NlLnF1aWphZGFAdmVyaXpvbi5jb20+IGEKPUMzPUE5Y3JpdCA6Cgo+IEkgd291bGQgbGlrZSB0byB3cml0ZSBhIE1hdmVuIHBsdWdpbiB0aGF0IGFtb25nIG90aGVyIHRoaW5ncyBtYW5pcHVsYXRlcwo+IChib3RoIGFkZC91cGRhdGUpIHRoZSBQT00gbW9kZWwgYXZhaWxhYmxlIGF0IE1hdmVuUHJvamVjdHMuZ2V0TW9kZWwoKSB3aGk9CmxlCj4gZXhlY3V0aW5nIE1hdmVuIHBoYXNlIGdvYWxzLCBzdWNoIGFzICJ0ZXN0IiBhbmQgInNpdGUiLCBzbyB0aGF0IGZvcgo+IGluc3RhbmNlIEkgY2FuOgo+Cj4gMSkgQWRkIGEgPHJlcG9ydGluZy8+IG5vZGUgYWxvbmcgd2l0aCBwbHVnaW5zIGluc2lkZSwgc28gdGhhdCB3aGVuIHRoZQo+ICJzaXRlIiBwaGFzZSBydW5zLCB0aG9zZSBwbHVnaW5zIGNhbiBiZSB1c2VkIHRvIGdlbmVyYXRlIHJlcG9ydHMKPiAyKSBPbiB0aGUgZmx5IGFkZCBwbHVnaW5zIHRvIDxidWlsZC8+LCBhbG9uZyB3aXRoIDxleGVjdXRpb25zLz4gZm9yIHRob3NlCj4gcGx1Z2lucywgc28gdGhhdCB0aGV5IHJ1biBhcyBwYXJ0IG9mIG90aGVyIHBoYXNlcy4KPiAzKSBGcm8gcGx1Z2lucyB0aGF0IGFyZSBhbHJlYWR5IGluIHRoZSBQT00gbW9kZWwsIHVwZGF0ZSB0aGluZ3MgbGlrZQo+IHZlcnNpb25zLCA8ZXhlY3V0aW9ucy8+Lgo+Cj4KPiBJIGFscmVhZHkgd3JvdGUgdGhlIHBsdWdpbiwgYW5kIHdyb3RlIEphdmEgY29kZSB0byBtYWtlIHRoZSBuZWNlc3NhcnkKPiBhZGRpdGlvbnMvdXBkYXRlIHRvIHRoZSBQT00uIEkndmUgaW5qZWN0ZWQgTWF2ZW5Qcm9qZWN0IGludG8gbXkgTW9qbyB2aWEKPiBAUGFyYW1ldGVyKGRlZmF1bHRWYWx1ZSA9M0QgIiR7cHJvamVjdH0iKQo+Cj4gcHJpdmF0ZSBNYXZlblByb2plY3QgcHJvamVjdDsKPgo+Cj4gQnV0IHRob3NlIGFkZGl0aW9ucy9jaGFuZ2VzIHRvIHRoZSBQT00gTW9kZWwgb2JqZWN0IGFyZSBiZWluZyBpZ25vcmVkLgo+IEZvciBleGF4YW1wbGUsCj4KPiBvbmUgdXNlIGNhc2UgSSBoYXZlIGlzIHRvIHRhY2sgb24gPHJlcG9ydGluZy8+IHdpdGggYSBidW5jaCBvZiBwbHVnaW5zCj4KPiBhbmQgcmVwb3J0cyB0aGV5IHNob3VsZCBnZW5lcmF0ZS4gSSBleGVjdXRlIG15IGN1c3RvbSBsb2dpYyBhcyBwYXJ0IG9mCj4KPiB0aGUgcHJlLXNpdGUgZmFjZSAoSSBjcmVhdGUgYSBNb2pvIGFuZCBjb25maWd1cmVkIGl0cyBnb2FsIHRvIHJ1biB3aXRoCj4gcHJlLXNpdGUpLiBUaGVuIG4KPgo+IGluIHRoZSBjb2RlIG9mIHRoZSBNb2pvIEkgZG8gdGhlIGFkZGl0aW9ucy91cGRhdGVzIHRvIHRoZSBQT00uIEJ1dAo+IHdoZW4gInNpdGUiIHBoYXNlIHJ1bnMsCj4KPiB0aGUgcmVwb3J0cyBhZGRlZCB0byB0aGUgUE9NIG5vdCBleGVjdXRpbmcuCj4KPgo+IEFtIEkgbWlzc2luZyBzb21ldGhpbmcgZnVuZGFtZW50YWwgYWJvdXQgTWF2ZW4gUE9NPyBBcmUgbW9kaWZpY2F0aW9ucwo+IHRvIFBPTSBhdCBydW50aW1lCj4KPiBub3QgYWxsb3dlZD8gSSBzdXNwZWN0IHRoaXMgaXMgdGhlIHJlYXNvbiwgYnV0IEkgd2FudGVkIHRvIGNvbmZpcm1lZCB3aXRoCj4KPiBtb3JlIGV4cGVyaWVuY2VkIE1hdmVuIGRldmVsb3BlcnMuCj4KPgo+IFRoYW5rIHlvdSwgYW5kIGxldCBtZSBrbm93IHdoYXQgb3RoZXIgZGV0YWlscyBJIGNhbiBwcm92aWRlIHRvIGNsYXJpZnkKPiB0aGluZ3MuCj4KPgo+Cj4gQmVzdCwKPgo+IEpvc2UuCj4KCi0tOTRlYjJjMDgxMmVlNTAyMWQ0MDU2MGExNDJlZS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NDEyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgIDQgMTc6MTE6MTEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDEyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEIzMkE2MTA1RDYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxNzoxMToxMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDM5OTkxIGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMTc6MTE6MTEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM5OTExIGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMTc6MTE6MTEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzOTg1OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDQgTm92IDIwMTcgMTc6MTE6MTEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA0IE5vdiAyMDE3IDE3OjExOjExICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgM0JBNTgxQTE5NjYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA0IE5vdiAyMDE3IDE3OjExOjEwICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi4zNzkKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi4zNzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDVHaDR3RU1uWEJGbyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgIDQgTm92IDIwMTcgMTc6MTE6MDggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC15dzAtZjE4Mi5nb29nbGUuY29tIChtYWlsLXl3MC1mMTgyLmdvb2dsZS5jb20gWzIwOS44NS4xNjEuMTgyXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDg2MEI1NUZCMkUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA0IE5vdiAyMDE3IDE3OjExOjA3ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXl3MC1mMTgyLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGsxMXNvNDg0OTI3OHl3aC4xCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMDQgTm92IDIwMTcgMTA6MTE6MDcgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9aElESEk4M2NodGVMRkhmTFVGdTJmZUtDa1g2eDZoZnBiL2xSMGwvYldzcz07CiAgICAgICAgYj1RNUZDYnRlQllSYWJZNEFyNnRReHFOSU0vNlk0RDlmNTdwcSs5VFF2RmpEdkhsdXdvUG8ya0dhSlFPMGkrUnlOOUkKICAgICAgICAgdk9GK0xjb2JpbXZJWWZxY0VWeVFyUjJyWFUvamZCZEhua053ZTdZV2RucXVOWFQzOEt5REF4WEZxZkdiU2tmUlRndnoKICAgICAgICAgVkF1ait3N2hiUWFmV0o3M3NuYUN5VWhlUzA0c09oSWxMVngxOFhkMVp4VTAvYXkrSXlZc1BWZ25wUEJXczdpYzQrM1gKICAgICAgICAgZlRRN2M0MmRqenR5cTljSHozUUIwM2ZWTGRBblpINjR6VDZxUnNXSVY3dmc3WC9YSEN5V0o3czVZeVVuNkNYYjF0NjEKICAgICAgICAgeGhmZ2h4LzhKQzV5Vzdvd0NaNlhjTHpzNXJZWFVpZWxaNy9kWVhJdnZ2aFdobml0S2R0MWpZUEdBTSt4NWpZUlJkMEYKICAgICAgICAgUG91UT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9aElESEk4M2NodGVMRkhmTFVGdTJmZUtDa1g2eDZoZnBiL2xSMGwvYldzcz07CiAgICAgICAgYj1nbW9ieUJBZkRoakVXYXpkOTJ1aU1DeEh4eU85UzVwU1UxWi9JVjg1QUh6RzdqVUw2S3ovT3lnOG1oa3drQUFkMW8KICAgICAgICAgYVhvMXdVdWR6cW9EajI3TFl5NnM0a1FJRnFySGZVTTRhOFk1eWErTnFrTzRsczhOS1AwZFJ6eVJVUUo5Z1o5cG9YaVcKICAgICAgICAgSHpVVW9YeGRnRnB6T2I0bGFXekZkWG14MWRwNWtHZFEvdE4ySUdEOHpSQlJWWGVvdFVXR2lPS054WnBoSHdUUzJ3VXcKICAgICAgICAgajQ3VU9TSXBlWlpGOVRMTEhZcEVkN3ZxeDBycjRHdUc2V1lmNTNUQ2NmNUlrd0RsSTBGSVdQSWlNUEc4OEx0UlVSc2UKICAgICAgICAgYVRxQ2pabEhNVGcvdzg2dUcrRmtra09Gc0FSZFRxTkwzaWFTV1liYXJiRmgyNW5pQUFvQ1RnNEcvSVV3SUl1cEtWdHMKICAgICAgICAgakdjZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVVRFaEswdzVINHNIaTdwZVhjQ0VtbldyaWlwMVlCZE9pZlFJb2haRHN0N0NXRlZOeTkKCTQrakVJVU1Wby9sZFVNTDM1a2IrQml3b3FCUzROcE5NZkgyY2hEcz0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFCaFFwK1RKSG1KWTd3dTd1d296TEJJaVp1eHdXRitaczEwdVNtbUJraTI4WDQ5bUsxZ09KN3FYeXdscEJ4Tm15aGVYZ3hueDZJRlRqUXRjUGlEaEhxbTJLaTg9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjM3LjE5MC4xMzkgd2l0aCBTTVRQIGlkIGkxMW1yNjY2NTA2Mnliay4yOTYuMTUwOTgxNTQ2NjA5NzsKIFNhdCwgMDQgTm92IDIwMTcgMTA6MTE6MDYgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjM3LjUuMTQ5IHdpdGggSFRUUDsgU2F0LCA0IE5vdiAyMDE3IDEwOjExOjA1IC0wNzAwIChQRFQpClJlY2VpdmVkOiBieSAxMC4zNy41LjE0OSB3aXRoIEhUVFA7IFNhdCwgNCBOb3YgMjAxNyAxMDoxMTowNSAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPENBK25Qbk16WUdwMlZFSFRZMFVYTlN4YVZ2ZkNUb1ordG1RRFZjUHpRVkc2emJOc29IZ0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk13RUg5WjJteXA3MXVhU3JkY3lMSlJGckUtVnJ0MjAxOTFyZDAxaCtVZmhqd0BtYWlsLmdtYWlsLmNvbT4KIDxDQSsyOThVanA2ZFpMVjF5TnFiUEJjNGZXQkR6b3pFeGNDbTdGNTZDbj1FLTlGYURhOEFAbWFpbC5nbWFpbC5jb20+CiA8Q0FIOXUxMG50bUZCWmNUaDlZdkFiRUtnRHVKTjlYZDV4dWVwTzRmaVI1QktScXVaQlBnQG1haWwuZ21haWwuY29tPgogPDE1NDk4NTYuSGUxTVNCeDNVU0BnaWdhPiA8Q0ErblBuTXpZR3AyVkVIVFkwVVhOU3hhVnZmQ1RvWit0bVFEVmNQelFWRzZ6Yk5zb0hnQG1haWwuZ21haWwuY29tPgpGcm9tOiBSb21haW4gTWFubmktQnVjYXUgPHJtYW5uaWJ1Y2F1QGdtYWlsLmNvbT4KRGF0ZTogU2F0LCA0IE5vdiAyMDE3IDE4OjExOjA1ICswMTAwCk1lc3NhZ2UtSUQ6IDxDQUNMRT03T3RVVzlNbWk1azhRUWtmUDNHYkJndVhKTUZMcllWWHFHeTAxYnRfRDRkWXdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiA0LjAuMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwODllMDgyNjRkYjQ4ODgyNmQwNTVkMmI0ZTA0IgoKLS0wODllMDgyNjRkYjQ4ODgyNmQwNTVkMmI0ZTA0CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCk15IHdpc2hsaXN0IGFzIGEgdXNlciB3b3VsZCBiZToKCi0gaW5jcmVtZW50YWwgYnVpbGQgKGJhc2VkIG9uIHNjbSBpcyBmaW5lKQotIHNvbWUgYnVpbHQgaW4gc2NyaXB0aW5nIChncm9vdnkgYmFzZWQ/KQotIHBsdWdpbiBzb3J0aW5nIGZyb20gdGhlIHBvbSAoY3VycmVudCBydWxlcyBhcmUgZGV0ZXJtaW5pc3RpYyBidXQgdG9vIGhhcmQKdG8gdXNlIHNvIGRlZmluaW5nIGEgZGVwZW5kZW5jeSBiZXR3ZWVuIHR3byBleGVjdXRpb25zIGluIHRoZSBzYW1lIHBoYXNlCndvdWxkIGJlIHZlcnkgaGFuZHkgLSBkZXBlbmRzLW9uIHRhZz8pCgpBcyBhIHBsdWdpbiBkZXZlbG9wcGVyOgoKLSBwcm9ncmFtbWF0aWMgY29tcG9uZW50IGxvb2t1cCBhcGkgKGl0IGlzIGRlcHJlY2F0ZWQgYXQgdGhlIG1vbWVudCkKLSBhYmlsaXR5IHRvIGNvbnRyaWJ1dGUgZGVwZW5kZW5jaWVzIGZvciBuZXh0IHBsdWdpbnMvcGhhc2VzCihyZXNvbHZlZEFydGlmYWN0cykKCkxlIDQgbm92LiAyMDE3IDE3OjAzLCAiU3RlcGhlbiBDb25ub2xseSIgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CmEgPUMzPUE5Y3JpdCA6Cgo+IE9uIDQgTm92ZW1iZXIgMjAxNyBhdCAwNzozMCwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHc9CnJvdGU6Cj4KPiA+IExlIHNhbWVkaSA0IG5vdmVtYnJlIDIwMTcsIDE0OjQzOjQ2IENFVCBKb2huIFBhdHJpY2sgYSA9QzM9QTljcml0IDoKPiA+ID4gSSd2ZSBnb3QgIGEgZmV3IHVwZGF0ZXMgSSBmZWVsIHdvdWxkIGJlIHVzZWZ1bCBmb3IgdGhlIG5leHQgbWFqb3IKPiA+IHZlcnNpb247Cj4gPiA+Cj4gPiA+IDEpIFBhY2thZ2luZyB0eXBlIGdlbmVyaWMgJ2FyY2hpdmUnLCBvciBzcGVjaWZpYyB6aXAgb3IgdGFyLmd6Cj4gPiA+IC0gbWF5YmUgYSB1c2VyIHByb3BlcnR5IHRvIGVuYWJsZSB6aXAgYW5kL29yIHRhci5nego+ID4gPgo+ID4gPiAyKSBQYWNrYWdpbmcgdHlwZSBnZW5lcmljICdhcHBsaWNhdGlvbicsIG9yIHNwZWNpZmljIHJwbSBvciBkZWIKPiA+ID4gLSBpbiBmdXR1cmUgY291bGQgYmUgZXh0ZW5kZWQgZm9yIHdpbmRvd3MgaW5zdGFsbGVycyB0b28KPiA+ID4KPiA+ID4gT3ZlciB0aGUgcGFzdCA2IHllYXJzIEkndmUgbWFpbmx5IGNyZWF0ZWQgamFyLCB3YXIgb3IgZWFyLCBidXQgZm9yCj4gPiA+IGRlcGxveW1lbnQgdGhlIHN0YW5kYXJkIGlzIGJ1bmRsZSBpdCB1cCBpbnRvIGEgdGFyLmd6IG9yIHppcCwgYWxvbmcKPiA+ID4gd2l0aCB0aGUgYW5zaWJsZSBzY3JpcHRzIG9yIGN1c3RvbSBzY3JpcHRzLiBTbyBJIHVzdWFsbHkgdXNlIHBvbQo+ID4gPiBwYWNrYWdpbmcgdGhlbiBhZGRpbmcgYXNzZW1ibHkgcGx1Z2luLCBqdXN0IGZlZWxzIHN0cmFuZ2UgZG9pbmcgdGhhdAo+ID4gPiBhbGwgdGhlIHRpbWUgYW5kIGl0IG1pZ2h0IG1ha2UgaXQgbW9yZSBzaW1wbGVyIGZvciBldmVyeW9uZS4KPiA+IGRvIHlvdSBoYXZlIHNvbWUgZGVtb3Mgb2Ygc3VjaCBwYWNrYWdpbmdzPwo+ID4KPgo+IFRoaXMgZmVlbHMgbGlrZSBwbHVnaW4gbGV2ZWwgZnVuY3Rpb25hbGl0eS4gSSBhbSB1bmNsZWFyIGhvdyB0aGlzIG5lZWRzCj4gY29yZSBjaGFuZ2VzLiBDb3VsZCB5b3UgcHJvdmlkZSBkZXRhaWxzIHdoZXJlIHlvdSBmZWVsIHdlIG5lZWQgdG8gbW9kaWZ5Cj4gY29yZSBmb3IgdGhpcyAob3IgaXMgaXQgeW91IHdhbnQgdG8gYmUgYWJsZSB0byBmZXRjaCBzb21lIGFydGlmYWN0cyBmcm9tCj4gd2l0aGluIHRoZSB6aXAsIGlvdyBhIHppcCB3aXRoIHRoZSBvdGhlciBhcnRpZmFjdHMgZW1iZWRkZWQgYW5kIHdlICJyZWFjaAo+IGluIj8KPgo+Cj4gPgo+ID4gPgo+ID4gPiAzKSBDaGVja3N1bSwgc3dpdGNoIHRvIFNIQTMsIGRyb3AgbWQ1IGFuZCBzaGExLiBJZiB3ZSBjYXJlIGFib3V0Cj4gPiA+IHNlY3VyaXR5LCB3ZSBzaG91bGQga2VlcCB1cCB0byBkYXRlIHdpdGggd2hhdCBpcyBjb25zaWRlcmVkIHNlY3VyZQo+ID4gPiBzdGlsbC4KPiA+IC0xCj4gPiBjaGVja3N1bXMgYXJlIGNoZWNrc3Vtcywgbm90IHNlY3VyaXR5Cj4gPiBpZiB5b3Ugd2FudCBzZWN1cml0eSwgZG9uJ3QgbG9vayBhdCBjaGVja3N1bXMgYnV0IGF0IHNpZ25hdHVyZXMKPiA+Cj4gPiBUaGlzIG1ha2VzIG1lIHRoaW5rIHRoYXQgd2Ugc2hvdWxkIGZpbmQgYSB3YXkgdG8gc2hvdyBzZWN1cml0eSAod2l0aAo+IHRoZXNlCj4gPiBzaWduYXR1cmVzKTogSSBkb24ndCBrbm93IHByZWNpc2VseSBob3csIGJ1dCB0aGF0IHdvdWxkIGRlZmluaXRlbHkgYmUKPiA+IHVzZWZ1bAo+ID4KPiA+ID4KPiA+ID4gMykgRGViaWFuIHN0eWxlIHJlcG8gbWFuYWdlbWVudC4gSW5zdGVhZCBvZiBoYXZpbmcgYSBtYXNzaXZlIGJ1Y2tldCBvPQpmCj4gPiA+IGFydGVmYWN0cywgc3RhcnQgaGF2aW5nIHJlcG8ncyBlaXRoZXIgYmFzZWQgdXBvbiBqYXZhIGNsYXNzIHZlcnNpb24sCj4gPiA+IG9yIG1hdmVuIG1ham9yIHJlbGVhc2UgdmVyc2lvbi4gQWxzbyBzcGxpdCBtb3JlIHRoYW4ganVzdCByZWxlYXNlIGFuZAo+ID4gPiBzbmFwc2hvdCwgbWF5YmUgY29yZSwgcGx1Z2lucywgZ2VuZXJhbC4uLgo+ID4gPgo+ID4gPiBOb3Qgc3VyZSBleGFjdGx5IHRoZSBiZXN0IHNvbHV0aW9uLCBidXQgYXMgbWF2ZW4gY2VudHJhbCBoYXMgc3R1ZmYKPiA+ID4gZ29pbmcgYmFjayB5ZWFycyBhbmQgeWVhcnMuIEhvdyBtdWNoIG9mIHRoZSBvbGQgc3R1ZmYgd2lsbCBiZSB1c2VkIGZvPQpyCj4gPiA+IG5ldyBwcm9qZWN0cyBnb2luZyBmb3J3YXJkLgo+ID4gd2hhdCdzIHRoZSBvYmplY3RpdmU/Cj4gPiB3aXRoIExpbnV4IGRpc3RyaWJ1dGlvbnMsIHRoZXJlIGFyZSBjb21wYXRpYmlsaXR5IGlzc3VlcyB0aGF0IHJlcXVpcmUKPiA+IGRpZmZlcmVudCBhcnRpZmFjdHMsIGFuZCBhbiBvYmplY3RpdmUgdG8ga2VlcCBkaXN0cm8gb24gb25lIENEL0RWRAo+ID4gQnV0IEphdmEgYW5kIGNlbnRyYWwgZG9uJ3QgaGF2ZSBzdWNoIGNvbnNpZGVyYXRpb25zCj4gPgo+ID4gPgo+ID4gPiBBbnl3YXksIHRob3NlIGFyZSBzb21lIG9mIG15IHRob3VnaHRzLCBpZiB0aGVpciBpcyBhIG1vcmUgZm9ybWFsIHdheQo+ID4gPiBvZiBzdWdnZXN0aW5nIHRoZW0gbGV0IG1lIGtub3cgYW5kIEknbGwgYmUgaGFwcHkgdG8gcmFpc2UgdGhlbQo+ID4gPiBzZXBhcmF0ZWx5IGZvciBjb25zaWRlcmF0aW9uIGFuZCBtYXliZSBhbHNvIGRvIHNvbWUgcHVsbCByZXF1ZXN0cyBmb3IKPiA+ID4gdGhlbS4KPiA+IEkgdGhpbmsgdGhlIHBhY2thZ2luZyBpZGVhcyBkZXNlcnZlIHNvbWUgZGVtb3MgdG8gc2VlIGlmIHNvbWV0aGluZyBjYW4gPQpiZQo+ID4gbWFkZQo+ID4gZ2VuZXJpYyBlbm91Z2gKPiA+Cj4gPiBSZWdhcmRzLAo+ID4KPiA+IEhlcnY9QzM9QTkKPiA+Cj4gPiA+Cj4gPiA+IEpvaG4KPiA+ID4KPiA+ID4gT24gNCBOb3ZlbWJlciAyMDE3IGF0IDEzOjE4LCBQYXVsIEhhbW1hbnQgPHBhdWxAaGFtbWFudC5vcmc+IHdyb3RlOgo+ID4gPiA+PiA+ICozLiBNb3JlIHBsdWdnYWJsZSBkZXBlbmRlbmN5IHJlc29sdmVyOioKPiA+ID4gPj4KPiA+ID4gPj4gSSBhbSB3aWxsaW5nIHRvIGxldCB0aGlzIGJlIG9wdGlvbmFsIHNjb3BlIGZvciBub3cuIE1heSBiZSB5YW5rZWQgPQppZgo+ID4gdG9vCj4gPiA+ID4+IHJpc2t5IG9yIG5vdCByZWFkeSBpbiB0aW1lCj4gPiA+ID4KPiA+ID4gPiBJIGRvbid0IHNlZSBob3cgeW91IGNhbiBldmVuIG1ha2UgaXQgb3B0aW9uYWwgd2l0aG91dCBhIHBvbSBzcGVjaWZpPQplZAo+ID4gd2F5Cj4gPiA+ID4gb2Ygc2F5aW5nICJub3QgbWF2ZW4gY2VudHJhbCwgdGhpcyB3YXkvcGxhY2UgaW5zdGVhZCIKPiA+ID4KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Cj4gPgo+ID4KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Cj4gPgo+CgotLTA4OWUwODI2NGRiNDg4ODI2ZDA1NWQyYjRlMDQtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDYzMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gTm92IDI3IDIxOjQzOjUyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDYzMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDMkRFMzE3QjJECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMjcgTm92IDIwMTcgMjE6NDM6NTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxMTQxMiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBOb3YgMjAxNyAyMTo0Mzo1MiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTEzMjcgaW52b2tlZCBieSB1aWQgNTAwKTsgMjcgTm92IDIwMTcgMjE6NDM6NTIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMTMwNiBpbnZva2VkIGJ5IHVpZCA5OSk7IDI3IE5vdiAyMDE3IDIxOjQzOjUyIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAyNyBOb3YgMjAxNyAyMTo0Mzo1MiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDQxQTc0MTgwNUQ2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAyNyBOb3YgMjAxNyAyMTo0Mzo1MSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuMzc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuMzc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDZtNWxQNm44b2JZYSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMjcgTm92IDIwMTcgMjE6NDM6NDkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC15YjAtZjE3NC5nb29nbGUuY29tIChtYWlsLXliMC1mMTc0Lmdvb2dsZS5jb20gWzIwOS44NS4yMTMuMTc0XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDc0Rjc3NUYyMUUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDI3IE5vdiAyMDE3IDIxOjQzOjQ5ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXliMC1mMTc0Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIDE4OHNvMTExOTIyMTJ5YmQuMTMKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAyNyBOb3YgMjAxNyAxMzo0Mzo0OSAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1HU3dwMENCbGlkNmlnOXNSYThwQWNlU2EvMkFpemczWkMrL1ArL0VnSU93PTsKICAgICAgICBiPVBRNy9DbTNoRHNiWnhJRGRFM2FnalY5QmRPdUpxcmtrRGJ5Ri9aMGptVS9CZS9BMk1ZcVJ1aDd5VnRrWHZpZzFZaAogICAgICAgICA0cXdZVy9XYWVKZVNVZ1pQRTBPbUx4RGNsVFVhbForY1ZITEJtNkIzcDV6UnIyN0Q1bmNXTVd6OVZtQUZoNCtYTy9iaQogICAgICAgICB2NkhOSWRheklkcVAvb0d1Rm9DSjl1ZUg3NXlNN0ZnSkdpcHYrWkN1TTkvUUwyWDhyV250dG9TVnhTVThJeTFuVnVPNQogICAgICAgICBVMDJJUDBFcDRrSjFGRFZVeHhFQjE4aXRXcWtpdXhhbDVRRldHMU5sQVVVeFFQYVJZVkNXdG1Tc0FuWTlxZjFSSnduOQogICAgICAgICBsN3hPUnR6SVhXWHpXK1IrL0ZhYng5c3U0QXorT1JUSmNnR0I3MnNtSGFaMlZTQWw0UFpKL2xGaUZHZEd3TFBqSzZaOAogICAgICAgICBQMW1nPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1HU3dwMENCbGlkNmlnOXNSYThwQWNlU2EvMkFpemczWkMrL1ArL0VnSU93PTsKICAgICAgICBiPVlUaHhYMUdmVWFkZVNxenZqd0RWN3VFaEtBQklJVUxDbC9nZkoxTmk4K1FBdFRyV29COGJYSEJ0QmV3bm4rbWtJTQogICAgICAgICBZRkFTcGJ0SSs5bGNOVk40T0RENk5iM1ZlTytWZkJQTFNXcU4vVy92MWtsZVBWV2xOS3NtMVpSOWtTK3JNYm9tdDdZOQogICAgICAgICB5YlRlRlczMWdwQTN0a09yYnNic3hyRFRPOHVxOHRoTS9pekJFdTZRdGNGejhURUFMQTVWRmtDZmhLbFdQa1NwTVJKVAogICAgICAgICB4UFZXQk03aUtzKzR3UktSODUwYnRVTUlhWDFkMGNIR1o0c0Y0Q2habTE4NFJQMXVsazk3K1NzVUNwMXJaMEcyRVRCLwogICAgICAgICBSZU9MOGNLS2t1TWlLbVQvNjhRejFuczByUFdDTERJVnhRM2hPQmhJRU4wTDZseTZrNno0ZFAzKzgweWJQM3dRQ21KdQogICAgICAgICAzN1VRPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg2SUI1UGNDL0JaWVEwdndMcDFoQXJPengvcVFybUh0NEFrSGFlODNNMHZCT21MRGFGbAoJK24wWHlDTnVjTU9DUzZkckx2R083NS9EdkFqSG5tMzhPb25CNVhjPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUdzNHpNWStESlhWSm5NTzJvTTB6VEN4RkFuUXFxZHJZdTFkbDlpV09uS1RPSm5mU1AwT2g2SzVnNVVBVkxMRmQ3dm82UG5XTkVzU1FJQXRoOUhtL2J5a0xpRT0KWC1SZWNlaXZlZDogYnkgMTAuMzcuMTAuMyB3aXRoIFNNVFAgaWQgM21yMjQ4ODQzNDB5YmsuMjE0LjE1MTE4MTkwMjI3MDg7IE1vbiwKIDI3IE5vdiAyMDE3IDEzOjQzOjQyIC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4zNy41LjIwMyB3aXRoIEhUVFA7IE1vbiwgMjcgTm92IDIwMTcgMTM6NDM6NDIgLTA4MDAgKFBTVCkKUmVjZWl2ZWQ6IGJ5IDEwLjM3LjUuMjAzIHdpdGggSFRUUDsgTW9uLCAyNyBOb3YgMjAxNyAxMzo0Mzo0MiAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPDE1MTE4MTY0OTYuNzExNjEuMTE4NTk5OTk0NC41OTlDMzFDM0B3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+ClJlZmVyZW5jZXM6IDxDQUNMRT03Tmt5aWdZeG1oSnlUQzl1N1IzdFpYaEVvUE9BcGQ4ak9qR3VVRDIxWXFfeGdAbWFpbC5nbWFpbC5jb20+CiA8OWNlYjRjYTQtZjk4NC1iYmEzLTI1YWUtOWFlMGNlNDU0ZWI1QGFwYWNoZS5vcmc+IDxDQUNMRT03UDR4XzNlR1JSd1N6MDhvQTl5QWU1VHV6QmplT18zTlp2ei1xbzBwbVdhSkFAbWFpbC5nbWFpbC5jb20+CiA8YjM0MzU4YjYtNzY1ZC1hODc4LWVkYTEtYjBkYTY5YmZjYWYyQGFwYWNoZS5vcmc+IDwxNTExODE2NDk2LjcxMTYxLjExODU5OTk5NDQuNTk5QzMxQzNAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgpGcm9tOiBSb21haW4gTWFubmktQnVjYXUgPHJtYW5uaWJ1Y2F1QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAyNyBOb3YgMjAxNyAyMjo0Mzo0MiArMDEwMApNZXNzYWdlLUlEOiA8Q0FDTEU9N1AtN0Q2MFBqRjVLPVg9d19QdTVBajlTUUxCM2hXVHZtX3IrMDZMQlpnb3JBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogYmVhbSBsZWF2aW5nIG1hdmVuLCBhbnl0aGluZyBkb2FibGU/ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTNkYjg0MGQwMzhjNDA1NWVmZGNiNmUiCgotLTAwMWExMTNkYjg0MGQwMzhjNDA1NWVmZGNiNmUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKRG9lc250IGNoYW5nZSBhbnl0aGluZyBzaWduaWZpY2F0aXZlIC0gdGhpcyBpcyBteSBzZXR1cC4KCkxlIDI3IG5vdi4gMjAxNyAyMjowMSwgIklnb3IgRmVkb3JlbmtvIiA8aWdvckBpZmVkb3JlbmtvLmNvbT4gYSA9QzM9QTljcml0ID0KOgoKPiBJIHdvdWxkbid0IGJvdGhlciB3aXRoIFRha2FyaSBsb2NhbCByZXBvc2l0b3J5LCBpdCdzIGJyb2tlbiBicm9rZW4sIHNlZQo+IFsxXSBhbmQgWzJdLiBEZWZhdWx0IEFldGhlciBsb2NhbCByZXBvc2l0b3J5IGltcGwgaXMgdGhyZWFkLXNhZmUgZW5vdWdoLAo+IGF0IGxlYXN0IHdoZW4gbG9jYWwgcmVwb3NpdG9yeSBpcyB1c2VkIGZyb20gc2luZ2xlLXByb2Nlc3MKPiBtdWx0aS10aHJlYWRlZCBidWlsZC4KPgo+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vdGFrYXJpL3Rha2FyaS1sb2NhbC1yZXBvc2l0b3J5L2lzc3Vlcy80Cj4gWzJdIGh0dHBzOi8vZ2l0aHViLmNvbS90YWthcmkvdGFrYXJpLWxvY2FsLXJlcG9zaXRvcnkvaXNzdWVzLzUKPgo+IC0tCj4gUmVnYXJkcywKPiBJZ29yCj4KPiBPbiBNb24sIE5vdiAyNywgMjAxNywgYXQgMDM6MjggUE0sIE1pY2hhZWwgT3NpcG92IHdyb3RlOgo+ID4gSSByZWFsbHkgd291bGQgbGlrZSB0byBzZWUgdGhlIHNhbWUgbnVtYmVycyB3aXRoIFRha2FyaSBTbWFydCBCdWlsZGVyCj4gPiBhbmQgdGhyZWFkLXNhZmUgbG9jYWwgcmVwbyBtb2R1bGUuCj4gPgo+ID4gQW0gMjAxNy0xMS0yNyB1bSAyMDo1MiBzY2hyaWViIFJvbWFpbiBNYW5uaS1CdWNhdToKPiA+ID4gRXZlbiBkb2luZyBpdCB0aGUgZGlmZmVyZW5jZSBpcyBzaWduaWZpY2F0aXZlLiBUaGUgcGFyYWxsZWxpc20gYW5kCj4gPiA+IGdyYXBoIGNvbXB1dGF0aW9uIChsaW5rZWQgdG8gdGhlIGxvY2FsIHJlcG8gdGhyZWFkIHNhZmV0eSkgaXMgdGhlIG1haT0Kbgo+ID4gPiBkcmF3YmFjayBvZiBtYXZlbiBpdCBzZWVtcy4KPiA+ID4KPiA+ID4gUm9tYWluIE1hbm5pLUJ1Y2F1Cj4gPiA+IEBybWFubmlidWNhdSB8ICBCbG9nIHwgT2xkIEJsb2cgfCBHaXRodWIgfCBMaW5rZWRJbgo+ID4gPgo+ID4gPgo+ID4gPiAyMDE3LTExLTI3IDIwOjQ3IEdNVCswMTowMCBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz46Cj4gPiA+PiBBbSAyMDE3LTExLTI3IHVtIDIwOjI0IHNjaHJpZWIgUm9tYWluIE1hbm5pLUJ1Y2F1Ogo+ID4gPj4+Cj4gPiA+Pj4gSGkgZ3V5cywKPiA+ID4+Pgo+ID4gPj4+IGFueXRoaW5nIGRvYWJsZSBvbiBtYXZlbiBzaWRlIChlaXRoZXIgdHVuaW5nIG9yIGNvZGUgY2hhbmdlcykgdG8gYmUKPiBhcwo+ID4gPj4+IGdvb2QgYXMgZ3JhZGxlIG9uIGJlYW0gcHJvamVjdC4gVGhlIHByb2plY3QgaXMgZ29pbmQgdG8gbGVhdmUgbWF2ZW4KPiBhcwo+ID4gPj4+IGJ1aWxkIHRvb2wgKFsxXSkgYW5kIEkgdGhpbmsgaXQgaXMgdmVyeSBiYWQgZm9yIDEuIHRoZSBjb21tdW5pdHkgYW49CmQKPiA+ID4+PiAyLiBBU0YgYXMgYW4gZWNvc3lzdGVtLgo+ID4gPj4+Cj4gPiA+Pj4gWzFdCj4gPiA+Pj4gaHR0cHM6Ly9saXN0cy5hcGFjaGUub3JnL3RocmVhZC5odG1sLzZkNmY3ZmZjNjY2MjJkYjFkZDQ1OWUxNzA0YzNhNQo+IGQ4YTRiYzI5YzJkOWMwYjYwMzU0ZmQzYjZhQCUzQ2Rldi5iZWFtLmFwYWNoZS5vcmclM0UKPiA+ID4+Cj4gPiA+Pgo+ID4gPj4gRGlkIHRoZXkgZGlzYWJsZSB0aGUgYnVpbGQgZGFlbW9uPyBJZiBub3QsIGl0IGlzIG5vdCBhIGZhaXIKPiBjb21wYXJzaW9uLgo+ID4gPj4KPiA+ID4+IE1pY2hhZWwKPiA+ID4KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4KPiA+ID4KPiA+Cj4gPgo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCi0tMDAxYTExM2RiODQwZDAzOGM0MDU1ZWZkY2I2ZS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NjI3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBOb3YgMjcgMTk6NTM6MjQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjI3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDYwRkJEMTc2RDgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAyNyBOb3YgMjAxNyAxOTo1MzoyNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQyOTQzIGludm9rZWQgYnkgdWlkIDUwMCk7IDI3IE5vdiAyMDE3IDE5OjUzOjI0IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0Mjg2OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBOb3YgMjAxNyAxOTo1MzoyNCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQyODU3IGludm9rZWQgYnkgdWlkIDk5KTsgMjcgTm92IDIwMTcgMTk6NTM6MjMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDI3IE5vdiAyMDE3IDE5OjUzOjIzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQzc0MDkxQTEzMDIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDI3IE5vdiAyMDE3IDE5OjUzOjIyICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC4zNzkKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC4zNzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGlhQk43QWxKZ3hFZiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMjcgTm92IDIwMTcgMTk6NTM6MjIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC15YjAtZjE4MC5nb29nbGUuY29tIChtYWlsLXliMC1mMTgwLmdvb2dsZS5jb20gWzIwOS44NS4yMTMuMTgwXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDVCOERENUYxRDUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDI3IE5vdiAyMDE3IDE5OjUzOjIxICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXliMC1mMTgwLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHg3MnNvMTEwNTMxNDV5YmcuMTEKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAyNyBOb3YgMjAxNyAxMTo1MzoyMSAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bwogICAgICAgICA6Y2M7CiAgICAgICAgYmg9WkczMzQ1b2FOQVRvRHB4b2YrZUxWWlFBbXFoYVhjd0VjbXU3YWVDUTJObz07CiAgICAgICAgYj1kRUtUZXFyZWpnSDlOd3JJbGJyNmphenZ4aFgzdEFCdlQvME4zQmIvSWQ5S21seFUxY1BodFpvNUJSRzVpNU4vZXMKICAgICAgICAgWE5aQ0FMcnVYTFo0Njg2MW9tdUZORFc1cHpKNGQxTGZkR1R3NUR6MFdYNmw1MDQxY1pzb29ZSFRwTUd1a1JrZHJCb3YKICAgICAgICAgMmFtWVZtMzQxR2t5ZS96TTFRaDNnZFdSWmVEV2tHZkRHdklYcTNORE1BNHRoT2RFYUZKaVZWeGNtL2piU0psSHczQ3QKICAgICAgICAgZmtFSEoxZDFlZUtqMFFJTWovbXVpdXJJdysvcVdKWWRQNEFvMmpTbCt2dW00T1dqcVFZUjJxZjBGUndXdTQ3dTFRQjEKICAgICAgICAgald3UHJaZ09ZV2YyajIyYkY0RGE4ckNBbWxYdnZQZ3E2YU5WUk9sSEJMUXlHTWttNkJua1g4a2RXczE1NXJTeEJaSm8KICAgICAgICAgRHZiZz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG86Y2M7CiAgICAgICAgYmg9WkczMzQ1b2FOQVRvRHB4b2YrZUxWWlFBbXFoYVhjd0VjbXU3YWVDUTJObz07CiAgICAgICAgYj1CR1dDNm5FWDduS1VqemY2TzVSd2tOUmxtWldTUlhMNERVK243b3NZeGtwMkZ4WDRGN2hzclFybks5WWhwdmhBTG0KICAgICAgICAgNFFDRFNLS3QzbUpBUEtzS0xJWW90bkdzeXRlb1RUYkVxYWdDR2VCS1JiU2FUTmNhRTZsSTg0SEp4OHY0c2dkTUhSeEkKICAgICAgICAgS2c3OEJnM1pnUjRsbEVEekRnVGhKbExRL1hLQVJvUmRNWkJJQ3ZBM1g3WGRlUVNnem9YZ29UOThqNWdiRDNWS0I5UG0KICAgICAgICAgNzZKTXl4OUdWL1F5TzhMQ3B5akhnQW1SbzZ0RUpyODVHUmFqb052L1Q5NklkaFRUOHVtUHBaWGJiQ2JsWlFod1liMHEKICAgICAgICAgcWYwcmFuaHp2alZ6aXloakJjVEg0VFJEbWEwcTJ2R1VnQXQ0UExYRlNVZUxyZXd1ZWJzNThZZ25aRUdJTmZvNk1BUGYKICAgICAgICAgcmdQZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYNHBiZHRiZ0lxeWx2MmJEWTJ6bkZmcVZMbktjU3o2U0ZZaW1tc2JpOEl6K2JlaUZ1c0kKCUcwcko5NUxyQThXQzdiUmkvSmpHR1ArYnRKZ1RzK1ZsQUhUZVZQaz0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TVlMaktzT0tiQkg5aEhCdEMzQlpOQXhwSmlwYXhzNnNxbG03Vk1BSU9TdVQvc0VXcEJyWVRZalpQR29yTjhkd2Y2ZUlSSFZ1eSttU0dtYWFkZmtSTnM9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjM3LjUwLjEyOSB3aXRoIFNNVFAgaWQgeTEyM21yMjUyNTc3Njd5YnkuNDg1LjE1MTE4MTIzOTQwNTE7CiBNb24sIDI3IE5vdiAyMDE3IDExOjUzOjE0IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4zNy41LjIwMyB3aXRoIEhUVFA7IE1vbiwgMjcgTm92IDIwMTcgMTE6NTI6NTMgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDw5Y2ViNGNhNC1mOTg0LWJiYTMtMjVhZS05YWUwY2U0NTRlYjVAYXBhY2hlLm9yZz4KUmVmZXJlbmNlczogPENBQ0xFPTdOa3lpZ1l4bWhKeVRDOXU3UjN0WlhoRW9QT0FwZDhqT2pHdVVEMjFZcV94Z0BtYWlsLmdtYWlsLmNvbT4KIDw5Y2ViNGNhNC1mOTg0LWJiYTMtMjVhZS05YWUwY2U0NTRlYjVAYXBhY2hlLm9yZz4KRnJvbTogUm9tYWluIE1hbm5pLUJ1Y2F1IDxybWFubmlidWNhdUBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMjcgTm92IDIwMTcgMjA6NTI6NTMgKzAxMDAKTWVzc2FnZS1JRDogPENBQ0xFPTdQNHhfM2VHUlJ3U3owOG9BOXlBZTVUdXpCamVPXzNOWnZ6LXFvMHBtV2FKQUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IGJlYW0gbGVhdmluZyBtYXZlbiwgYW55dGhpbmcgZG9hYmxlPwpUbzogTWljaGFlbCBPc2lwb3YgPG1pY2hhZWxvQGFwYWNoZS5vcmc+CkNjOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKRXZlbiBkb2luZyBpdCB0aGUgZGlmZmVyZW5jZSBpcyBzaWduaWZpY2F0aXZlLiBUaGUgcGFyYWxsZWxpc20gYW5kCmdyYXBoIGNvbXB1dGF0aW9uIChsaW5rZWQgdG8gdGhlIGxvY2FsIHJlcG8gdGhyZWFkIHNhZmV0eSkgaXMgdGhlIG1haW4KZHJhd2JhY2sgb2YgbWF2ZW4gaXQgc2VlbXMuCgpSb21haW4gTWFubmktQnVjYXUKQHJtYW5uaWJ1Y2F1IHwgIEJsb2cgfCBPbGQgQmxvZyB8IEdpdGh1YiB8IExpbmtlZEluCgoKMjAxNy0xMS0yNyAyMDo0NyBHTVQrMDE6MDAgTWljaGFlbCBPc2lwb3YgPG1pY2hhZWxvQGFwYWNoZS5vcmc+Ogo+IEFtIDIwMTctMTEtMjcgdW0gMjA6MjQgc2NocmllYiBSb21haW4gTWFubmktQnVjYXU6Cj4+Cj4+IEhpIGd1eXMsCj4+Cj4+IGFueXRoaW5nIGRvYWJsZSBvbiBtYXZlbiBzaWRlIChlaXRoZXIgdHVuaW5nIG9yIGNvZGUgY2hhbmdlcykgdG8gYmUgYXMKPj4gZ29vZCBhcyBncmFkbGUgb24gYmVhbSBwcm9qZWN0LiBUaGUgcHJvamVjdCBpcyBnb2luZCB0byBsZWF2ZSBtYXZlbiBhcwo+PiBidWlsZCB0b29sIChbMV0pIGFuZCBJIHRoaW5rIGl0IGlzIHZlcnkgYmFkIGZvciAxLiB0aGUgY29tbXVuaXR5IGFuZAo+PiAyLiBBU0YgYXMgYW4gZWNvc3lzdGVtLgo+Pgo+PiBbMV0KPj4gaHR0cHM6Ly9saXN0cy5hcGFjaGUub3JnL3RocmVhZC5odG1sLzZkNmY3ZmZjNjY2MjJkYjFkZDQ1OWUxNzA0YzNhNWQ4YTRiYzI5YzJkOWMwYjYwMzU0ZmQzYjZhQCUzQ2Rldi5iZWFtLmFwYWNoZS5vcmclM0UKPgo+Cj4gRGlkIHRoZXkgZGlzYWJsZSB0aGUgYnVpbGQgZGFlbW9uPyBJZiBub3QsIGl0IGlzIG5vdCBhIGZhaXIgY29tcGFyc2lvbi4KPgo+IE1pY2hhZWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDYzNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgTm92IDI4IDA2OjA0OjA5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDYzNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyRjJFOTEwQzU0Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMjggTm92IDIwMTcgMDY6MDQ6MDkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4Mzg1NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBOb3YgMjAxNyAwNjowNDowOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODM3NTIgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggTm92IDIwMTcgMDY6MDQ6MDggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4Mzc0MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IE5vdiAyMDE3IDA2OjA0OjA4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAyOCBOb3YgMjAxNyAwNjowNDowOCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDU2QkE4QzA3RjgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDA2OjA0OjA3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi4wNzkKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi4wNzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0JfV0FNX0ZST01fTkFNRV9TSU5HTEVXT1JEPTAuMiwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBiSjVNR3g4MXdRaUUgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUdWUsIDI4IE5vdiAyMDE3IDA2OjA0OjA2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwteWIwLWYxNzguZ29vZ2xlLmNvbSAobWFpbC15YjAtZjE3OC5nb29nbGUuY29tIFsyMDkuODUuMjEzLjE3OF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBDRDhBRDVGMjNDCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAwNjowNDowNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC15YjAtZjE3OC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBuMTg1c28xMTMyNDY3NXliYS42CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMjcgTm92IDIwMTcgMjI6MDQ6MDUgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9WHBESG1EbTcwdjBZZmRLSys1V21qaGF5anRpeDFXMkYxd2F1NWJkL1hCWT07CiAgICAgICAgYj1mbXl6S01Ha055SktpZmFqOXkrVFRSdXdEVFRmaDd6MG5aWFV0Qngvd2NVdVZmcXcwa2kraVpsdmpsS1Jvb3kreU0KICAgICAgICAgR2NaZnM5eE40TTBaczVkbWxBNk5aY09yeVNqaFlna0ppR21sY0Y3K2JpWUNlMlpTNkhDVjBHV1ZHUlJLVCtjUGFUM3oKICAgICAgICAga21EbkVZZFZEaDAweTAyYjR3MElOVWpOaUs2Q2tSTSswaHNiQjFpWDlaS3JQMHk1ZW9YZEUrd2ZZU1JZa2MvWm1kR24KICAgICAgICAgcklSMjlhMFNvUEd0ZkZvbWpraG9ROEJNdFFVQXdGaVQ5NzlIMW1iSE9xb1NVbHRmdmhZU2VXMjBsdW1BN2V0MzkyZGoKICAgICAgICAgSU11S2psMkxYZlMwcDhFR3NJUWNqeUFXdW11N1MzRUNEV1hFZ3ZqZ3dvVWQ1eWp6ZHRYY0RWM3VkSG5XaEprY3JNbzcKICAgICAgICAgbGxFZz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9WHBESG1EbTcwdjBZZmRLSys1V21qaGF5anRpeDFXMkYxd2F1NWJkL1hCWT07CiAgICAgICAgYj1pMXVzS0xia000TjFjaTlVSzc2U0lCTXZjUjJrUm9wajcvN2lmWnkzajdZM1JabWtzbUNndEJUSlZLMlRMZ2Q2WVgKICAgICAgICAgTWFONHZrcW9wcFUrZnpEY1FFVHZRdThreTZ4ZFhtQkVkYkNnZXROMU1tQ3FBSWxYWGtBak5FRkNMcVBzZDNBTmlDTUgKICAgICAgICAgcXduTlNHcUh1NFlaTWQxTWZ0MDE4WTJPMXNrTGhZbnhxbGZZQkNXZ3pLMlFqQnhpSFJIZ0FDcWN4YlVvZHZKZ2pRUXIKICAgICAgICAgaXRxVXJQZGtIUVd1a2UrQ3pQTmhaeWhNc0FCaXdlVldhWEdPTzY0eFZoTVNud25iWTJHczhDeVY4L3NEc0FrM3g3d0IKICAgICAgICAgTi9jdm9ETDdlc215aFV2NCt4L1Y5ZGJCT1Z4TlpvNWZueWM3d0xMWHpoRUw3R2txek5rZkNCWGErazJNOWpuNmZ5R3AKICAgICAgICAgeStVQT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYNnJqQ2FUZ2tlazZOWWR6THhYYWUzVEx3M3dSYURyYnVROWJRM2JaNi9qbHoxd0RxNmIKCVpnQ0VUM0hBQ3o2d1c4cEVvR1R4ZCtVQ2xrdUZYUHYxZWNpckVxRT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TVlFRWt2Q2xTZHhNT21idjJLMi8yY0VJYUVyUzZMMFIxdDI2c3BndysvNTBzakJzRW1vMVpJZXc0MGh0bzMwaGN4RTRBaDFaN1I2YndyWWZiOFdRU009ClgtUmVjZWl2ZWQ6IGJ5IDEwLjM3LjEwNS4xNDIgd2l0aCBTTVRQIGlkIGUxMzZtcjI1NDc2MjA3eWJjLjExOC4xNTExODQ5MDQ1MTUxOwogTW9uLCAyNyBOb3YgMjAxNyAyMjowNDowNSAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMzcuNS4yMDMgd2l0aCBIVFRQOyBNb24sIDI3IE5vdiAyMDE3IDIyOjA0OjA0IC0wODAwIChQU1QpClJlY2VpdmVkOiBieSAxMC4zNy41LjIwMyB3aXRoIEhUVFA7IE1vbiwgMjcgTm92IDIwMTcgMjI6MDQ6MDQgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDwyMDE3MTEyNzIyMDE1My4yRTRCQjI5QzQzQzlAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPgpSZWZlcmVuY2VzOiA8Q0FDTEU9N05reWlnWXhtaEp5VEM5dTdSM3RaWGhFb1BPQXBkOGpPakd1VUQyMVlxX3hnQG1haWwuZ21haWwuY29tPgogPDljZWI0Y2E0LWY5ODQtYmJhMy0yNWFlLTlhZTBjZTQ1NGViNUBhcGFjaGUub3JnPiA8Q0FDTEU9N1A0eF8zZUdSUndTejA4b0E5eUFlNVR1ekJqZU9fM05adnotcW8wcG1XYUpBQG1haWwuZ21haWwuY29tPgogPGIzNDM1OGI2LTc2NWQtYTg3OC1lZGExLWIwZGE2OWJmY2FmMkBhcGFjaGUub3JnPiA8MTUxMTgxNjQ5Ni43MTE2MS4xMTg1OTk5OTQ0LjU5OUMzMUMzQHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KIDxDQUNMRT03UC03RDYwUGpGNUs9WD13X1B1NUFqOVNRTEIzaFdUdm1fciswNkxCWmdvckFAbWFpbC5nbWFpbC5jb20+IDwyMDE3MTEyNzIyMDE1My4yRTRCQjI5QzQzQzlAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPgpGcm9tOiBSb21haW4gTWFubmktQnVjYXUgPHJtYW5uaWJ1Y2F1QGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyOCBOb3YgMjAxNyAwNzowNDowNCArMDEwMApNZXNzYWdlLUlEOiA8Q0FDTEU9N1BvV2pHcj0tNUNER19idEo4QU8xbWlhVjVRSCtmcktmeHZab0c3Rlc4LXNnQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogYmVhbSBsZWF2aW5nIG1hdmVuLCBhbnl0aGluZyBkb2FibGU/ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzE0ZWQ4NDRhNTdkNDA1NWYwNGM5YjciCgotLTk0ZWIyYzE0ZWQ4NDRhNTdkNDA1NWYwNGM5YjcKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKTGUgMjcgbm92LiAyMDE3IDIzOjAyLCAiTWFuZnJlZCBNb3NlciIgPG1hbmZyZWRAc2ltcGxpZ2lsaXR5LmNvbT4gYSA9QzM9QTljPQpyaXQgOgoKSnVzdCBteSAyYyBhcyBhIGxvbmcgdGVybXMgTWF2ZW4gdXNlciBhbmQgY29tbWl0dGVyLi4KClBlb3BsZSBoYXZlIGJlZW4gbW92aW5nIGZyb20gb25lIGJ1aWxkIHRvb2wgdGhlIG90aGVyIGZvciB5ZWFycy4gVGhhdAppbmNsdWRlcyB0byBHcmFkbGUsIHRvIE1hdmVuIGFuZCB0byBhbGwgc29ydHMgb2Ygb3RoZXJzIHN0dWZmIGFuZCBiYWNrLiBJZgp0aGUgQmVhbSBwcm9qZWN0IHRoaW5rcyB0aGV5IHdpbGwgZ2V0IHNpZ25pZmljYW50IGltcHJvdmVtZW50cyBmb3IgdGhlaXIKYnVpbGQgdGltZXMgYW5kIHRoZXkgd2FudCB0byBtaWdyYXRlLi4gbGV0IHRoZW0uIFRoZXkgd2lsbCBoYXZlIHRvIGxlYXJuIGEKd2hvbGUgYnVuY2ggb2YgZGlmZmVyZW50IHRoaW5ncyBhbmQgc2VlIHNvbWUgYWR2YW50YWdlcyBhcyB3ZWxsIGFzIGxvdCBvZgpkaXNhZHZhbnRhZ2VzLgoKClRoZXkgYWxyZWFkeSBoYXZlIGdyYWRsZSBidWlsZCBmdW5jdGlvbmFsLgoKCgo+RnJvbSBteSBwZXJzcGVjdGl2ZSB0aGUgYnVpbGQgdGltZSBpcyBOT1Qgc2lnbmlmaWNhbnRseSBmYXN0ZXIgd2l0aCBHcmFkbGUKYW5kIGRlcGVuZHMgYSBMT1Qgb24gd2hhdCB5b3VyIGJ1aWxkIGFjdHVhbGx5IGRvZXMuIE1vcmUgaW1wb3J0YW50bHkgdGhlCmludGVncmF0aW9uIHdpdGggSURFcyBhbmQgb3RoZXIgdG9vbHMgaXMgYSBsb3Qgd29yc2UgaW4gbWFueSBhc3BlY3RzLgoKCkl0IGlzIGZvciBtdWx0aW1vZHVrZSBwcm9qZWN0LiBJIGRpZG50IHJlcHJvZHVjZSB0aGVpciBmaWd1cmVzIGJ1dCBza2lwcGluZwp0aGVpciBweXRob24gcGFydCBpdCBpcyByZWFsbHkgbGlrZSAzMCUgZmFzdGVyIGZvciBtZSBmb3IgdGhlIHNhbWUgdGhnLgoKCgpBcyBsb25nIGFzIHRoZXkgY2FuIG1ha2Ugc3VyZSB0aGF0IHRoZWlyIGJpbmFyaWVzIGFyZSBwdWJsaXNoZWQgc28gdGhhdCBhbnkKdXNlciBjYW4gZWFzaWx5IGNvbnN1bWUgdGhlbSAoZS5hLiB0aGV5IHB1Ymxpc2ggcHJvcGVyIGJpbmFyaWVzIGFuZCBwb20KZmlsZXMgdG8gdGhlIENlbnRyYWwgUmVwb3NpdG9yeSkgSSBoYXZlIG5vIG9iamVjdGlvbi4KCk9mIGNvdXJzZSBpZiB0aGV5IHdvdWxkIHN0ZXAgdXAgYW5kIGhlbHAgdXMgd2l0aCBNYXZlbiBhbmQgbWFrZSBpdCBiZXR0ZXIKdGhhdCB3b3VsZCBjZXJ0YWlubHkgYmUgYmV0dGVyIHRoYW4gcHV0dGluZyBlZmZvcnQgaW50byBtaWdyYXRpbmcuLi4gYnV0CnRoYXRzIGEgZGlmZmVyZW50IHN0b3J5LgoKQW5kIGFub3RoZXIgb25lIG9mIGNvdXJzZSBpcyB0aGF0IEdyYWRsZSBpcyBvcGVuIHNvdXJjZSBwcm9qZWN0IG1vc3RseQpzcG9uc29yZWQgYnkgYSBzaW5nbGUgY29tcGFueSBhbmQgaGVuY2UgdW5kZXIgYSB2ZXJ5IGRpZmZlcmVudCBjb250cm9sCmNvbXBhcmVkIHRvIE1hdmVuLi4KCgoKQWdyZWUgYml0IC8yIC0gZm9yIG1vc3Qgb3RoZXIgcGVvcGxlIC0gdGhlIGJ1aWxkIHRpbWUgd2hpY2ggaXMgc2lnbmlmaWNhbnQKKGl0IGlzIG5vdCBhIGNvbW1tb25zIHByb2plY3QgeW91IGNhbiBidWlsZCBpbiBsZXNzIHRoYW4gNW1uIDspKS4KCldpdGggc28gbXVjaCBkaWZmZXJlbmNlIEkgc3Ryb25nbHkgdGhpbmsgdGhlcmUgYXJlIHJvb20gZm9yIGltcHJvdmVtZW50IGJ1dApmYWlsIHRvIHNlZSBob3cgbWF2ZW4gZ3JhcGggY29tcHV0YXRpb24gY2FuIGxvb2sgdGhhdCBiYWQgOiguCgoKTWFuZnJlZAoKUm9tYWluIE1hbm5pLUJ1Y2F1IHdyb3RlIG9uIDIwMTctMTEtMjcgMTM6NDM6Cgo+IERvZXNudCBjaGFuZ2UgYW55dGhpbmcgc2lnbmlmaWNhdGl2ZSAtIHRoaXMgaXMgbXkgc2V0dXAuCj4KPiBMZSAyNyBub3YuIDIwMTcgMjI6MDEsICJJZ29yIEZlZG9yZW5rbyIgPGlnb3JAaWZlZG9yZW5rby5jb20+IGEgPUMzPUE5Y3JpPQp0IDoKPgo+PiBJIHdvdWxkbid0IGJvdGhlciB3aXRoIFRha2FyaSBsb2NhbCByZXBvc2l0b3J5LCBpdCdzIGJyb2tlbiBicm9rZW4sIHNlZQo+PiBbMV0gYW5kIFsyXS4gRGVmYXVsdCBBZXRoZXIgbG9jYWwgcmVwb3NpdG9yeSBpbXBsIGlzIHRocmVhZC1zYWZlIGVub3VnaCwKPj4gYXQgbGVhc3Qgd2hlbiBsb2NhbCByZXBvc2l0b3J5IGlzIHVzZWQgZnJvbSBzaW5nbGUtcHJvY2Vzcwo+PiBtdWx0aS10aHJlYWRlZCBidWlsZC4KPj4KPj4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS90YWthcmkvdGFrYXJpLWxvY2FsLXJlcG9zaXRvcnkvaXNzdWVzLzQKPj4gWzJdIGh0dHBzOi8vZ2l0aHViLmNvbS90YWthcmkvdGFrYXJpLWxvY2FsLXJlcG9zaXRvcnkvaXNzdWVzLzUKPj4KPj4gLS0KPj4gUmVnYXJkcywKPj4gSWdvcgo+Pgo+PiBPbiBNb24sIE5vdiAyNywgMjAxNywgYXQgMDM6MjggUE0sIE1pY2hhZWwgT3NpcG92IHdyb3RlOgo+PiA+IEkgcmVhbGx5IHdvdWxkIGxpa2UgdG8gc2VlIHRoZSBzYW1lIG51bWJlcnMgd2l0aCBUYWthcmkgU21hcnQgQnVpbGRlcgo+PiA+IGFuZCB0aHJlYWQtc2FmZSBsb2NhbCByZXBvIG1vZHVsZS4KPj4gPgo+PiA+IEFtIDIwMTctMTEtMjcgdW0gMjA6NTIgc2NocmllYiBSb21haW4gTWFubmktQnVjYXU6Cj4+ID4gPiBFdmVuIGRvaW5nIGl0IHRoZSBkaWZmZXJlbmNlIGlzIHNpZ25pZmljYXRpdmUuIFRoZSBwYXJhbGxlbGlzbSBhbmQKPj4gPiA+IGdyYXBoIGNvbXB1dGF0aW9uIChsaW5rZWQgdG8gdGhlIGxvY2FsIHJlcG8gdGhyZWFkIHNhZmV0eSkgaXMgdGhlCm1haW4KPj4gPiA+IGRyYXdiYWNrIG9mIG1hdmVuIGl0IHNlZW1zLgo+PiA+ID4KPj4gPiA+IFJvbWFpbiBNYW5uaS1CdWNhdQo+PiA+ID4gQHJtYW5uaWJ1Y2F1IHwgIEJsb2cgfCBPbGQgQmxvZyB8IEdpdGh1YiB8IExpbmtlZEluCj4+ID4gPgo+PiA+ID4KPj4gPiA+IDIwMTctMTEtMjcgMjA6NDcgR01UKzAxOjAwIE1pY2hhZWwgT3NpcG92IDxtaWNoYWVsb0BhcGFjaGUub3JnPjoKPj4gPiA+PiBBbSAyMDE3LTExLTI3IHVtIDIwOjI0IHNjaHJpZWIgUm9tYWluIE1hbm5pLUJ1Y2F1Ogo+PiA+ID4+Pgo+PiA+ID4+PiBIaSBndXlzLAo+PiA+ID4+Pgo+PiA+ID4+PiBhbnl0aGluZyBkb2FibGUgb24gbWF2ZW4gc2lkZSAoZWl0aGVyIHR1bmluZyBvciBjb2RlIGNoYW5nZXMpIHRvIGI9CmUKPj4gYXMKPj4gPiA+Pj4gZ29vZCBhcyBncmFkbGUgb24gYmVhbSBwcm9qZWN0LiBUaGUgcHJvamVjdCBpcyBnb2luZCB0byBsZWF2ZSBtYXZlPQpuCj4+IGFzCj4+ID4gPj4+IGJ1aWxkIHRvb2wgKFsxXSkgYW5kIEkgdGhpbmsgaXQgaXMgdmVyeSBiYWQgZm9yIDEuIHRoZSBjb21tdW5pdHkKYW5kCj4+ID4gPj4+IDIuIEFTRiBhcyBhbiBlY29zeXN0ZW0uCj4+ID4gPj4+Cj4+ID4gPj4+IFsxXQo+PiA+ID4+PiBodHRwczovL2xpc3RzLmFwYWNoZS5vcmcvdGhyZWFkLmh0bWwvNmQ2ZjdmZmM2NjYyMmRiMWRkNDU5ZTE3MDRjM2E9CjUKPj4gZDhhNGJjMjljMmQ5YzBiNjAzNTRmZDNiNmFAJTNDZGV2LmJlYW0uYXBhY2hlLm9yZyUzRQo+PiA+ID4+Cj4+ID4gPj4KPj4gPiA+PiBEaWQgdGhleSBkaXNhYmxlIHRoZSBidWlsZCBkYWVtb24/IElmIG5vdCwgaXQgaXMgbm90IGEgZmFpcgo+PiBjb21wYXJzaW9uLgo+PiA+ID4+Cj4+ID4gPj4gTWljaGFlbAo+PiA+ID4KPj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotCj4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4KPj4gPiA+Cj4+ID4KPj4gPgo+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+Cj4+Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Cj4+Cj4KCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKLS05NGViMmMxNGVkODQ0YTU3ZDQwNTVmMDRjOWI3LS0KCkZyb20gZGV2LXJldHVybi0xMjM5MjItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIFNlcCAxMCAxNjo0NToxOCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5MjItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNDg2RTYxQUJERQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDE2OjQ1OjE4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTQ2NTggaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgU2VwIDIwMTcgMTY6NDU6MTcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk0NTgxIGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIFNlcCAyMDE3IDE2OjQ1OjE2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTQ1NjggaW52b2tlZCBieSB1aWQgOTkpOyAxMCBTZXAgMjAxNyAxNjo0NToxNSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTAgU2VwIDIwMTcgMTY6NDU6MTUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA1MUI0MzFBMUZCQgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMTY6NDU6MTQgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC40ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjQgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgSFRNTF9PQkZVU0NBVEVfMDVfMTA9MC4wMDEsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGp1X1J5QjhYcEl2OCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgMTAgU2VwIDIwMTcgMTY6NDU6MTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC1pbzAtZjE3OS5nb29nbGUuY29tIChtYWlsLWlvMC1mMTc5Lmdvb2dsZS5jb20gWzIwOS44NS4yMjMuMTc5XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDlENDQ1NUZCOUYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDE2OjQ1OjEzICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLWlvMC1mMTc5Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIG42OXNvMTI3Nzk4ODNpb2kuNQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDA5OjQ1OjEzIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXFKTHR6VStCbFYvNTJRM010ZEZjclk1ZHVkeXBSTE9BZ2tyTFNwUXpTU289OwogICAgICAgIGI9c0hsdGFydDVMdzBtVWhRcU5mYVc0M1p5ZzFNQ1p1bHA0eEg4VjlKN0Q1MkhQbkpwSXVFd2VXT0NkM1VNVFNjU2FOCiAgICAgICAgIHFsOXVLcDFHLzRoZGY3NGpTYVhDbXRZOENheTRlejhsVy9DZGhFL1JiY3JxOGpHR290UndCZXc5KzBtdHJBaHgzdHBpCiAgICAgICAgICsyWXVRRXo1UnZpNWZzN2tpejNSQnVSN3E5a0xrVFVIYUlyN3dzOGtvR1liejdOTXZ1MEtxdmlFN01NRURZSkNVbFEyCiAgICAgICAgIEF0d1Fybm9EOEgyL2dBYm51SFNWRmtmTWRsM1daWU1QRVlYU3Vsa3p5Qng3S1dYZGU5ckNwMFl2Ym1qZUxGZUxOa3M3CiAgICAgICAgIFlJdmlkajlHN0sxSVN0THI1dzlUMFhZYWl2cm0yM0pVQjNaZnpCWlNXb2lJc1BnMHZSWklXVzlnM013c2IvTWtybW9qCiAgICAgICAgIEJ6Tmc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXFKTHR6VStCbFYvNTJRM010ZEZjclk1ZHVkeXBSTE9BZ2tyTFNwUXpTU289OwogICAgICAgIGI9ZVFSN3g0VmZnZkdyQjZ1Q0N4YnlJMWdUOU9sNTRCKzJvMDNkU0lqREZTNVBHRlQyd0d3YjVHNGdCWGYxN2E2RTcrCiAgICAgICAgIFByTjFTbVZhNm15R3J4WmJQZkc1cyt3dCtJQjQ4NmIvakFnZC9XV3htS2ZJZ0FsYzB1dU83blROQnNycGZJNjNaTnBDCiAgICAgICAgIE9Tb01CZlhZNlNFNVhKVkFsdjhBanN0UllXNnJEejZBb1UyKzhFZ0JLUWVQNEdSVERIN2xEakxmR0hCcEYzbDJrZ1lBCiAgICAgICAgIE9QMU1BY04wdE83RVhkY1BqeUdrQ0FzUW1sckd1eXRtVksyMVhJZHg0eW5MRjVjbDYrakp6dU1ZVmNnUEVtU3RNdnU2CiAgICAgICAgIHpTTmVSZ2pObnVhc0tyWDdkckp2SFpJRmtFeXNDVUZnQzdwOCtPak4vRUJrZitobVNFNWpnOWpnWHJxZU5NcER5YmhHCiAgICAgICAgIDNWSXc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWlTRGpxamIxUHN2NkI4bkUwVnFvVW8zVmhQL3dObC80QzM2d3ozNFNscGd1UXczRjJDCglPMlh2bHQzVGg4dUVTZDhCbzdiaW1UZ0x0OWtMR3NPSQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQy9peWFTTXdKRnNvVDFyZjkyY1JVakV3VjQ4S0R0RzA5ZlFuWEpaZlptL3pSeEY3c3hiUXpZbCsvcm5jVEwzYmlLWmRFSDR6OUthcFYxam5GZWk3cz0KWC1SZWNlaXZlZDogYnkgMTAuMjAyLjIzMS4yMTIgd2l0aCBTTVRQIGlkIGUyMDNtcjk2NzQxNzhvaWguNDMuMTUwNTA2MTkwNjkyODsKIFN1biwgMTAgU2VwIDIwMTcgMDk6NDU6MDYgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjE1Ny40Ny4xMDEgd2l0aCBIVFRQOyBTdW4sIDEwIFNlcCAyMDE3IDA5OjQ1OjA2IC0wNzAwIChQRFQpClJlY2VpdmVkOiBieSAxMC4xNTcuNDcuMTAxIHdpdGggSFRUUDsgU3VuLCAxMCBTZXAgMjAxNyAwOTo0NTowNiAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPG9wLnk2Y3l4amdja2RraHJyQGRlc2t0b3AtMmtoc2s0ND4KUmVmZXJlbmNlczogPENBK25Qbk16ejJ1Nj1jZFU1K2gxSHN2V2hTNENUNXprWXpyV0NFb3ctRzhDenYrbVkyZ0BtYWlsLmdtYWlsLmNvbT4KIDxDQStuUG5Neit2SGtrbXMxM0VDaHc1a0dCblhEazkzX0hyNUY3NitEZXRibnBxZmlHWHdAbWFpbC5nbWFpbC5jb20+IDxvcC55NmN5eGpnY2tka2hyckBkZXNrdG9wLTJraHNrNDQ+CkZyb206IEdhcnkgR3JlZ29yeSA8Z2FyeWRncmVnb3J5QGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAxMCBTZXAgMjAxNyAxMDo0NTowNiAtMDYwMApNZXNzYWdlLUlEOiA8Q0FDWmtYUHdPRVgrZDVNNzZVMk0tVW1zVmtrTGNQSENlQ1R0MlNKazRmeXhSYkgybXlBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1JFU1VMVF0gUmU6IFBsZWFzZSByZXR3ZWV0IGFuZCB2b3RlClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQxYTVkYzUzZGQzNzA1NThkODg4ZDIiCgotLTAwMWExMTQxYTVkYzUzZGQzNzA1NThkODg4ZDIKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCk9uIFNlcCAxMCwgMjAxNyAxMDozMywgIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+IHdyb3RlOgoKU28gd2hhdCB3b3VsZCBiZSB0aGUgY29uY2x1c2lvbj8KCjM1JSB3YW50IHRvIGtlZXAgSmF2YTcgYXMgSlJFIGZvciBNYXZlbiBmb3IgYSBzaG9ydGVyIG9yIGxvbmdlciBwZXJpb2Q/CgpJTUhPIHRoYXQncyBhIGxvdAoKCmJ1dCBsZXNzIHRoYW4gdGhlIDY1JSB3aG8gZG8gbm90LCBhbiBvdmVyd2hlbG1pbmcgbWFqb3JpdHkuCgpHYXJ5CgoKUm9iZXJ0CgoKT24gU3VuLCAxMCBTZXAgMjAxNyAxMTo1NToyMCArMDIwMCwgU3RlcGhlbiBDb25ub2xseSA8CnN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgoKU28gcG9sbCByZXN1bHRzOgo+Cj4gNDkzIHZvdGVzIGNhc3QKPgo+IDI1JSB3YW50IEphdmEgNyw4JjkgZm9yIE1hdmVuIDMuNi54Cj4gNjUlIHdhbnQgSmF2YSA4JjkgZm9yIE1hdmVuIDMuNi54Cj4gMTAlIHdhbnQgSmF2YSA4JjkgZm9yIE1hdmVuIDMuNi54IGFuZCA2IG1vbnRocyBvZiBiYWNrcG9ydGluZyB0byAzLjUueAo+Cj4gT24gU2F0IDkgU2VwIDIwMTcgYXQgMTE6NTAsIFN0ZXBoZW4gQ29ubm9sbHkgPAo+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Cj4gaHR0cHM6Ly90d2l0dGVyLmNvbS9hc2ZtYXZlbnByb2plY3Qvc3RhdHVzLzkwNjQ1MTA1OTk2NjY5MzM3Ngo+PiAtLQo+PiBTZW50IGZyb20gbXkgcGhvbmUKPj4KPgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKLS0wMDFhMTE0MWE1ZGM1M2RkMzcwNTU4ZDg4OGQyLS0KCkZyb20gZGV2LXJldHVybi0xMjQ0MjgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIE5vdiAgNiAwMDo1Mzo1NiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0MjgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQUI4QzAxMDc3RgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sICA2IE5vdiAyMDE3IDAwOjUzOjU2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDU4MjYgaW52b2tlZCBieSB1aWQgNTAwKTsgNiBOb3YgMjAxNyAwMDo1Mzo1NiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDU3NDQgaW52b2tlZCBieSB1aWQgNTAwKTsgNiBOb3YgMjAxNyAwMDo1Mzo1NiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ1NzMwIGludm9rZWQgYnkgdWlkIDk5KTsgNiBOb3YgMjAxNyAwMDo1Mzo1NiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMDYgTm92IDIwMTcgMDA6NTM6NTYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAzRTgwNjE4MDczMwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgIDYgTm92IDIwMTcgMDA6NTM6NTUgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjg3OQpYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuODc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgcEZiVUJieEFqOG54IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAgNiBOb3YgMjAxNyAwMDo1Mzo1MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLW9pMC1mNDEuZ29vZ2xlLmNvbSAobWFpbC1vaTAtZjQxLmdvb2dsZS5jb20gWzIwOS44NS4yMTguNDFdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQkU1RjI1RjJBQwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgIDYgTm92IDIwMTcgMDA6NTM6NTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtb2kwLWY0MS5nb29nbGUuY29tIHdpdGggU01UUCBpZCBoNnNvNTgyNzQ0MW9pYS4xMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDA1IE5vdiAyMDE3IDE2OjUzOjUyIC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUVaN0tCMUZnTXNIeHp2TFZqcW4xSlBhUTIvSUY2YlQ3ZGJ1YTc2WTNyUTQ9OwogICAgICAgIGI9VGNGT3AyY2ZEMnY5SFlmSnltYXJXcXh0d2M3TStFVDZXWjV3UHFPV1pXQXU4OTkrN2crNTFuWXpLczgyWkcrSUs4CiAgICAgICAgIGR4Z1IvNTJtVEp1RlJ4eUVkT0VlcWtWaDdOQjI3eEIvS3pGdklHZHRPaTlwUjVFTk5qbmxBeWcwMXJ0YXNZU1NmK3V6CiAgICAgICAgIDlZdmQwWGJ4U1kxV1F4Tk5rY0lESkgyZDUrSHpDcmVZeXFveis3bmN0dGVTWmZZeXkvblpJSFFXcFJrRThOeUpQNFZWCiAgICAgICAgIGhaS3J6SW5aM1FUQmc1am1pWFFNWnVhaVRvY2hRQy8xNEtPT2xsblptRGRkNnFXbzNiT2pSczMwdEhhMGlqS0k1TS92CiAgICAgICAgIFhlV0hROVhBaTk4MFVwL1hoRG0xMXlFamF5LzZXeUFvZ09ERXFQSUtoTEJqNHVWUzNOQVRhWVYvdkxFajJIazIxZVNuCiAgICAgICAgIFRONHc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUVaN0tCMUZnTXNIeHp2TFZqcW4xSlBhUTIvSUY2YlQ3ZGJ1YTc2WTNyUTQ9OwogICAgICAgIGI9TkhGdXN4TXhWZ2V1UTR1bEdGY0FxWnlkeTY1ZE5RVS9YaFB4Z3pMMzdsNmRjNWcvNlVtNERrSHQwaDByNGplbDdvCiAgICAgICAgIG8rK2QrSjZTUzdTSE44Z0dNcjRDVVUveEIzVklUZ0NBKzZMVjBvaW93Mk9adGJnTHJYVS8yNjF5UFkydzBRckJ5NklrCiAgICAgICAgIDYwcFJENGNmbU1uU09mUC9aL2x1Z0dwbm5PWTNQby84LzlScTRQbmNEeFVkWWdpaU9SUCtRQzNvcnhrQVBEU3NGSFpwCiAgICAgICAgIG5CKzdmRzdnNzgwL0RlMGR4bm41N08xaFZIWDJpeC9nSnh3aXI1MENXdXROUkQ3UEtrbGwrOGZCRUpPVzVQZUEyZjVzCiAgICAgICAgIGt3QStFV3BOVWFsQTJITmlnd0s4L2JaVklZekNuN3NOenRSbGI5bVdpYzVqd2ZRaXVtQ3dSZlRFNUM1SE14SjlqRHRBCiAgICAgICAgICtuNHc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVYrZjRoaFZQL0pmc1dsTHhWMnlzUlp2SmJvZnBhZG9POWszem42R0VnNXRTT3dleHJvCglNNmEzdGVJZmNhUzkwbHZzbUtyM2ZrcGxrdGF0MG1UVzBsTWpVbnpQClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtTNUxDZ3M5aTducXErRzBxTnVaOWRVYUo3ZDNWNEdrTGNwbU1OdkNvSko0VDhNcEZOUGh6dTZVdHk1SUpNQ1F3L3BYR1FnY1VCTWIyK2diU01VYkpVPQpYLVJlY2VpdmVkOiBieSAxMC4yMDIuNjEuNjkgd2l0aCBTTVRQIGlkIGs2Nm1yNzY5NTU5NW9pYS4yMDAuMTUwOTkyOTYzMTE1NjsKIFN1biwgMDUgTm92IDIwMTcgMTY6NTM6NTEgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjE1Ny40Mi4xMzQgd2l0aCBIVFRQOyBTdW4sIDUgTm92IDIwMTcgMTY6NTM6NTAgLTA4MDAgKFBTVCkKUmVjZWl2ZWQ6IGJ5IDEwLjE1Ny40Mi4xMzQgd2l0aCBIVFRQOyBTdW4sIDUgTm92IDIwMTcgMTY6NTM6NTAgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDxFQkNGMTcyMC00NTVCLTQxNEItQjQ0RS0yMjgzQTAwQ0MzQ0JAdGFsaW9zLmNvbT4KUmVmZXJlbmNlczogPDhhZDliNDc2LWM5MzktNGY1NC04MjcxLWExNmFhZDMxNDAyY0BvcmFjbGUuY29tPiA8RUJDRjE3MjAtNDU1Qi00MTRCLUI0NEUtMjI4M0EwMENDM0NCQHRhbGlvcy5jb20+CkZyb206IEdhcnkgR3JlZ29yeSA8Z2FyeWRncmVnb3J5QGdtYWlsLmNvbT4KRGF0ZTogU3VuLCA1IE5vdiAyMDE3IDE3OjUzOjUwIC0wNzAwCk1lc3NhZ2UtSUQ6IDxDQUNaa1hQeFpPdEY0c0x2VVJkM0hIb3Bpam1NVnFyRVNoTXdhNDNjNzRTK3hVMHNXREFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBKREsgMTAgYjI5IEVhcmx5IEFjY2VzcyBpcyBhdmFpbGFibGUgb24gamRrLmphdmEubmV0ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTNjZGNmODRkMTFjMDA1NWQ0NWUzNWQiCgotLTAwMWExMTNjZGNmODRkMTFjMDA1NWQ0NWUzNWQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKVGhlIFZPVEUgdG8gcmVsZWFzZSBDb21tb25zIExhbmcgMy43IGlzIHVuZGVyd2F5LiBUaGlzIHdpbGwgZml4IHRoZSBOT1cuCgpHYXJ5CgpPbiBOb3YgNSwgMjAxNyAxNDowNiwgIk1hcmsgRGVycmljdXR0IiA8bWFya0B0YWxpb3MuY29tPiB3cm90ZToKCj4gT24gMyBOb3YgMjAxNywgYXQgMjI6NDgsIFJvcnkgTydEb25uZWxsIHdyb3RlOgo+Cj4gSkRLIDEwIEVhcmx5IEFjY2VzcyAgYnVpbGQgMjkgaXMgYXZhaWxhYmxlIGF0IDogLSBqZGsuamF2YS5uZXQvMTAvCj4KPiBMb29rcyBsaWtlIFN1cmVmaXJlIGlzIHRoZSBmaXJzdCBjYXN1YWx0eToKPgo+IENhdXNlZCBieTogamF2YS5sYW5nLk51bGxQb2ludGVyRXhjZXB0aW9uCj4gYXQgb3JnLmFwYWNoZS5tYXZlbi5zdXJlZmlyZS5zaGFkZS5vcmcuYXBhY2hlLmNvbW1vbnMubGFuZzMuU3lzdGVtVXRpbHMuaT0Kc0phdmFWZXJzaW9uQXRMZWFzdAo+IChTeXN0ZW1VdGlscy5qYXZhOjE2MjYpCj4gYXQgb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW4uc3VyZWZpcmUuQWJzdHJhY3RTdXJlZmlyZU1vam8uZ2V0RWZmZWN0aXZlSnZtCj4gKEFic3RyYWN0U3VyZWZpcmVNb2pvLmphdmE6MjEwNykKPiBhdCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbi5zdXJlZmlyZS5BYnN0cmFjdFN1cmVmaXJlTW9qby5nZXRGb3JrQ29uZmlndXJhPQp0aW9uCj4gKEFic3RyYWN0U3VyZWZpcmVNb2pvLmphdmE6MTk3NikKPiBhdCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbi5zdXJlZmlyZS5BYnN0cmFjdFN1cmVmaXJlTW9qby5leGVjdXRlUHJvdmlkZXIKPiAoQWJzdHJhY3RTdXJlZmlyZU1vam8uamF2YToxMTExKQo+IGF0IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLnN1cmVmaXJlLkFic3RyYWN0U3VyZWZpcmVNb2pvLgo+IGV4ZWN1dGVBZnRlclByZWNvbmRpdGlvbnNDaGVja2VkIChBYnN0cmFjdFN1cmVmaXJlTW9qby5qYXZhOjk1NCkKPiBhdCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbi5zdXJlZmlyZS5BYnN0cmFjdFN1cmVmaXJlTW9qby5leGVjdXRlCj4gKEFic3RyYWN0U3VyZWZpcmVNb2pvLmphdmE6ODMyKQo+IGF0IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLkRlZmF1bHRCdWlsZFBsdWdpbk1hbmFnZXIuZXhlY3V0ZU1vam8KPiAoRGVmYXVsdEJ1aWxkUGx1Z2luTWFuYWdlci5qYXZhOjEzNCkKPgo+IEkgZ3Vlc3MgdGhhdCBuZXctbmV3IHZlcnNpb24gc3RyaW5nIGNoYW5nZSBpcyBnb25uYSBiaXRlIGV2ZXJ5b25lLi4uLgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Cj4gIlRoZSBlYXNlIHdpdGggd2hpY2ggYSBjaGFuZ2UgY2FuIGJlIGltcGxlbWVudGVkIGhhcyBubyByZWxldmFuY2UgYXQgYWxsCj4gdG8gd2hldGhlciBpdCBpcyB0aGUgcmlnaHQgY2hhbmdlIGZvciB0aGUgKEphdmEpIFBsYXRmb3JtIGZvciBhbGwgdGltZS4iID0KPUUyPTgwPTk0Cj4gTWFyayBSZWluaG9sZC4KPgo+IE1hcmsgRGVycmljdXR0Cj4gaHR0cDovL3d3dy50aGVvcnlpbnByYWN0aWNlLm5ldAo+IGh0dHA6Ly93d3cuY2hhbGljZW9mYmxvb2QubmV0Cj4gaHR0cDovL3BsdXMuZ29vZ2xlLmNvbS8rTWFya0RlcnJpY3V0dAo+IGh0dHA6Ly90d2l0dGVyLmNvbS90YWxpb3MKPiBodHRwOi8vZmFjZWJvb2suY29tL21kZXJyaWN1dHQKPgoKLS0wMDFhMTEzY2RjZjg0ZDExYzAwNTVkNDVlMzVkLS0KCkZyb20gZGV2LXJldHVybi0xMjQ3OTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIERlYyAxOSAwNzozMDozNiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3OTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMjQ2NzQxMDQyRgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDE5IERlYyAyMDE3IDA3OjMwOjM2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzkzMjggaW52b2tlZCBieSB1aWQgNTAwKTsgMTkgRGVjIDIwMTcgMDc6MzA6MzUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM5MjMwIGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IERlYyAyMDE3IDA3OjMwOjM1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzkyMTUgaW52b2tlZCBieSB1aWQgOTkpOyAxOSBEZWMgMjAxNyAwNzozMDozNSAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAxOSBEZWMgMjAxNyAwNzozMDozNSArMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXdyMC1mMTcxLmdvb2dsZS5jb20gKG1haWwtd3IwLWYxNzEuZ29vZ2xlLmNvbSBbMjA5Ljg1LjEyOC4xNzFdKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgNEI5QUYxQTAxMTIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDE5IERlYyAyMDE3IDA3OjMwOjMzICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdyMC1mMTcxLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGY4c282NzM5MjU0d3JlLjQKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxOCBEZWMgMjAxNyAyMzozMDozMiAtMDgwMCAoUFNUKQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFLR0IzbUxOQktyMHpuQnp5NjAxbWErOVhHTnlZMXRaaWFXUVRQejlNSUNlVHo2NFc2emtvUmRuCgloN0FpSlZwandGMXRCRDNPd2FMT1BBcjBhNHc2a09MWXEzM0w5Vjg9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQ0pmQm90cG9FM2szd3FMcnNuNGxGWVJsVUNIUWh5WUpMSWRFSFJmdFlsQ1N3L2hBVWRPckpuYW9rSHpNQTV4WmVKVUg1TjZ1TjhGTEJoL0J1ckZIak80Y3FFPQpYLVJlY2VpdmVkOiBieSAxMC4yMjMuMTc1LjE5NCB3aXRoIFNNVFAgaWQgeTJtcjM2NDQyNTN3cmQuMTA2LjE1MTM2Njg2MzE1OTQ7CiBNb24sIDE4IERlYyAyMDE3IDIzOjMwOjMxIC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yMjMuMTM5LjE5IHdpdGggSFRUUDsgTW9uLCAxOCBEZWMgMjAxNyAyMzozMDozMSAtMDgwMCAoUFNUKQpGcm9tOiBFbnJpY28gT2xpdmVsbGkgPGVvbGl2ZWxsaUBhcGFjaGUub3JnPgpEYXRlOiBUdWUsIDE5IERlYyAyMDE3IDA4OjMwOjMxICswMTAwClgtR21haWwtT3JpZ2luYWwtTWVzc2FnZS1JRDogPENBQ2NlZmdjMmkzRGNoRitiOFVzS012V0s5SFpKPUoxMCtMYU1YNkdKSEdVamhHVVFkUUBtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JRDogPENBQ2NlZmdjMmkzRGNoRitiOFVzS012V0s5SFpKPUoxMCtMYU1YNkdKSEdVamhHVVFkUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogU3VyZWZpcmUgMi4yMSByZWxlYXNlIGRhdGUgPwpUbzogVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPiwgTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSJmNDAzMDQzODkzMzQxODI5MWYwNTYwYWM3MTI3IgoKLS1mNDAzMDQzODkzMzQxODI5MWYwNTYwYWM3MTI3CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpIaSBUaWJvciwKRG8geW91IGhhdmUgYW55IHBsYW4gYWJvdXQgdGhlIHJlbGVhc2UgZGF0ZSBvZiBzdXJlZmlyZSAyLjIxLjAgPwoKSWYgeW91IGhhdmUgc29tZSB0YXNrcyB0byBkbyBJIHdpbGwgYmUgaGFwcHkgdG8gaGVscC4KCkNoZWVycwpFbnJpY28KCi0tZjQwMzA0Mzg5MzM0MTgyOTFmMDU2MGFjNzEyNy0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NzI2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBEZWMgIDMgMTY6NTY6MzAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzI2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEJGNDVDMTAxMjgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAgMyBEZWMgMjAxNyAxNjo1NjozMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE2NjU2IGludm9rZWQgYnkgdWlkIDUwMCk7IDMgRGVjIDIwMTcgMTY6NTY6MjUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE2NTc3IGludm9rZWQgYnkgdWlkIDUwMCk7IDMgRGVjIDIwMTcgMTY6NTY6MjUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNjU2NSBpbnZva2VkIGJ5IHVpZCA5OSk7IDMgRGVjIDIwMTcgMTY6NTY6MjUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDAzIERlYyAyMDE3IDE2OjU2OjI1ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNkIxM0QxQTBBMEIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sICAzIERlYyAyMDE3IDE2OjU2OjI0ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuNDAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjQwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgN2RZZFBTSUNPMGkxIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAgMyBEZWMgMjAxNyAxNjo1NjoyMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdyMC1mMTc4Lmdvb2dsZS5jb20gKG1haWwtd3IwLWYxNzguZ29vZ2xlLmNvbSBbMjA5Ljg1LjEyOC4xNzhdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNjAwMzY1RjUyMwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgIDMgRGVjIDIwMTcgMTY6NTY6MjIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd3IwLWYxNzguZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgczY2c28xNDc3MDQ5OHdyYy45CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMDMgRGVjIDIwMTcgMDg6NTY6MjIgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9a1lPQXZ6bllYK2M2Mm4yWVJBWXlZVDVOOHRiMUZTRmpCcmgzZG1Yd2JsND07CiAgICAgICAgYj1BelQ0b2V2NjlFMExIdW91SEQ0czNuK1laR0o3eEpQbC9SUG93eGlLM29HVjNhUUdpZTJZYzc2YTRjMG4zQ0NzcC8KICAgICAgICAgaGdNN0syb2NBQ3JYUHA0Q3dYcnBVZWNHZmlncUpoZkowQzZOajJKWmFramVaS0R5RTAxaXk2U1lwdjlRbys4V0lHbysKICAgICAgICAgclpiRzBUUnhrb0kvUkt0bXd6TDBiOFpxNWRNTnNqT0E3RVdielQ0RzFsdnFaODJwdHRwcmU5WEhmMGJBZmp5YlBNTFQKICAgICAgICAgSWhhZGFkTS95QU4rRm5UUVBmdDhnRVllcEREd2VSYWw3N1JSZVV1bEFnbCtuczJhU1poYmlXSDhDeWw2NGl4MVVhYXoKICAgICAgICAgUkk1R0JwQTI3Qk02V01wMFRXQ0xibDZXNzZXNWQ5dGIvRWI2MjhIeEV4WnNIWHVveGh3NmdJNkhNa2VINEl5bDRqVkgKICAgICAgICAgajN2QT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9a1lPQXZ6bllYK2M2Mm4yWVJBWXlZVDVOOHRiMUZTRmpCcmgzZG1Yd2JsND07CiAgICAgICAgYj1CNXdNV0tNRUxHZWh4R3VLTXlibWV3NTRLK3pGMlcyRlJaNHVuS3FvalRYbEhXWE5XakVtZDFqUHVJTXZIbnBGc1kKICAgICAgICAgMTlTN2lEWXhQSitpaG12NTRDYnI2U2tKRzZEQXFnWmZnOXdic3ptanU2V3JWaEZIekZuazNWMDhKOUgyWkN1N0dTQ3IKICAgICAgICAgM3NIcEptNWZ3MC9OM3M4bDkzVmkxSlBLb1oxb1VCbTlXdTd6bFZTTUhiTnVJQlpINnp3OWVXNFFWUXU1Y25tUUViVS8KICAgICAgICAgVHFEalc0Ykhad3kxTC9LYWV0aHNoY3lSMW1KZThzMTJsMCtHalVOR1hzRW80RExEMnc5Wjh0TmVWQ3diRjMyVDNqL2wKICAgICAgICAgSGF5Q0c4N3BGL2RvMjFMZXg2a0Fab0FucTdZNWFzYXY1ZHpBaFdudkNoNGY0VHhWUG1wUFltc2szKzRtUERDQitKZE8KICAgICAgICAgNUlJZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYN2dqZjhBTkpjazJhTmNxRElaZzRjTFRqQTAvNGdMaS9aTTdLcnc5eFdjeHBEUUsyZ2sKCWZvWTdqR3VpSDRabzVGWFIwaXpCekI5UGt4SnNYYkJWdkNkcW8xUjdGZz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1hUEdEdG9sNW5pWWdiMWl3bWc4UWVpaHlCSTVqcU10ZHNjQ01XQUcrMk1EUDJqcGN4TEZ6aWhTUjVBZGRpRUpYUENEZytERmlZMXA5TzBSM21uVkw4PQpYLVJlY2VpdmVkOiBieSAxMC4yMjMuMTM0LjIxNiB3aXRoIFNNVFAgaWQgMjRtcjExMTc3MDAxd3J5LjE1Ni4xNTEyMzIwMTc1MzIxOwogU3VuLCAwMyBEZWMgMjAxNyAwODo1NjoxNSAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8Q0FLdVZ6QlNYOHhNNzNSNTc3SjNCQ0wtWm9laj1xR3dvZzNYK2RXNHd5Z1ppNVJCcGhnQG1haWwuZ21haWwuY29tPgogPENBQ2NlZmdlSC1LN2dBRDRQcUJWc3BZX1Uwa3k4cHQxMjNXWWg9b083bzFQYzdyOWR4d0BtYWlsLmdtYWlsLmNvbT4KIDxDQUt1VnpCUjg0c210NWNuYmM3Q213X212OUZmUXhxZ0JXUzBRKzZrMnhBYitxVlNXeGdAbWFpbC5nbWFpbC5jb20+IDxDQUt1VnpCUlh0SENQRFdwODJCUkNlSz05REQ4YitKVXI1aWplZFFieVJ2WEowWDFWZlFAbWFpbC5nbWFpbC5jb20+CkluLVJlcGx5LVRvOiA8Q0FLdVZ6QlJYdEhDUERXcDgyQlJDZUs9OUREOGIrSlVyNWlqZWRRYnlSdlhKMFgxVmZRQG1haWwuZ21haWwuY29tPgpGcm9tOiBFbnJpY28gT2xpdmVsbGkgPGVvbGl2ZWxsaUBnbWFpbC5jb20+CkRhdGU6IFN1biwgMDMgRGVjIDIwMTcgMTY6NTY6MDQgKzAwMDAKTWVzc2FnZS1JRDogPENBQ2NlZmdjczVNK0VxLXN4R0tld2J2Z3kwMHYrYUZzX2RMSzVjT0pSOD1yeVl4d095Z0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFN1cmVmaXJlIGF0IEphdmEgOSBhbmQgSmF2YSAxMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0OTdmZjZkNjM2ZjAwNTVmNzI3YTZlIgoKLS0wMDFhMTE0OTdmZjZkNjM2ZjAwNTVmNzI3YTZlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpJbCBkb20gMyBkaWMgMjAxNywgMTc6MzQgVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPiBoYSBzY3JpdHRvOgoKPiA2IG1vbnRocyBpcyBxdWl0ZSBmYXIgYXdheS4KPiBObyByZWFzb24gdG8gYmUgYWZyYWlkIGJlY2F1c2UgSSBjYW4gY2hlY2sgaXQgbm93YWRheXMgYW5kIHdlIHdpbGwgc2VlIGhvdwo+IG11Y2ggb2YgdGhlIElUcyBpcyBicm9rZW4uCj4gVGhlIHByb2JsZW0gaW4gSmF2YSA5IHdhcyB0aGF0IE9yYWNsZSBicm9rZSBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBhbmQKPiB0aGV5IGRpZCBub3QgZ2l2ZSB1cyBhIGNoYW5jZSB0byByZS1pbnRyb2R1Y2UgZXh0ZW5zaW9ucyAocmVtb3ZlZCBtb2R1bGVzKQo+IGJhY2sgdG8gSkRLLiBJIGV4cGVjdGVkIGZyb20gT3JhY2xlIHRvIHJlbGVhc2UgZXh0ZW5zaWJsZSBKREsgKG1vZHVsZXMvYXBpCj4gKyBsYW5ndWFnZXMpLgo+IElmIHRoZXkgZGlkIG5vdCBicmVhayBpdCBhZ2FpbiBpbiAxMCB0aGVuIGl0IHNob3VsZCBub3QgbWVhbiBhbnkgZGlmZmVyZW5jZQo+IGJldHdlZW4gOSBhbmQgMTAgZm9yIG91ciB0ZXN0cy4KPgoKV29ya3MgZm9yIG1lCkkgd2lsbCBmb2xsb3cgeW91ciB1cGRhdGVzLgpFbnJpY28KCgo+Cj4gT24gU3VuLCBEZWMgMywgMjAxNyBhdCA1OjIzIFBNLCBUaWJvciBEaWdhbmEgPHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbT4KPiB3cm90ZToKPgo+ID4gTG9vaywgSSBkbyBub3Qgd2FudCB0byBmb3JjZSBvdXIgY29udHJpYnV0b3JzIHRvIHJlbHkgb24gamF2YSA5IG9yIGphdmEKPiA+IDEwLiBUaGV5IGNhbiB1c2UgdGhlaXIgZGVmYXVsdCBqZGsuCj4gPiBNeSBzdHJhdGVneSBpcyB0byBmYWxsYmFjayB0byBkZWZhdWx0IGpkayB1bmxlc3MgamRrLmhvbWUgc3lzdGVtIHByb3BlcnR5Cj4gPiBpcyBzcGVjaWZpZWQuCj4gPiBJIGFtIGZpbmUgd2l0aCBKZW5raW5zIG11bHRpLWJyYW5jaCBpZiBpdCBmYWlscyBvbiBqYXZhIDkgYmVmb3JlCj4gPiBpbnRlZ3JhdGluZyBhIGJyYW5jaCB0byBtYXN0ZXIuCj4gPiBJdCBoYXBwZW5zIHRoYXQgdGhlIGJyb2tlbiBicmFuY2ggaGFzIHRvIGJlIG92ZXJyaWRkZW4gYnkgYnVpbGQgZml4IGFuZAo+ID4gdGhlbiB0aGUgc3VjY2VzcyBjYW4gYmUgaW50ZWdyYXRlZCB0byBtYXN0ZXIuCj4gPgo+ID4gT24gU3VuLCBEZWMgMywgMjAxNyBhdCA0OjAzIFBNLCBFbnJpY28gT2xpdmVsbGkgPGVvbGl2ZWxsaUBnbWFpbC5jb20+Cj4gPiB3cm90ZToKPiA+Cj4gPj4gVGlib3IsCj4gPj4gVGhlcmUgYXJlIElUIHRlc3RzIHdoaWNoIGNoZWNrIGZvciBleGFjbHR5IGphdmEuc3BlY2lmaWNhdGlvbi52ZXJzaW9uPTkKPiA+PiBIb3cgIGFyZSB3ZSBnb2luZyB0byBkZWFsIHdpdGggdGhlbT8KPiA+PiBJdCBzZWVtcyB0aGF0IGEgbmV3IG1ham9yIHJlbGVhc2Ugd2lsbCBhcHBlYXIgIGV2ZXJ5IDYgbW9udGhzCj4gPj4gSU1ITyBpdCB3aWxsIGJlIGVub3VnaCB0byBkcm9wIHRoYXQgYXNzZXJ0aW9uCj4gPj4KPiA+PiBFbnJpY28KPiA+Pgo+ID4+IElsIGRvbSAzIGRpYyAyMDE3LCAxMzoyMSBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+IGhhCj4gPj4gc2NyaXR0bzoKPiA+Pgo+ID4+ID4gQXMgZGlzY3Vzc2VkIGJlZm9yZSBhYm91dCBKYXZhIDkuCj4gPj4gPiBJIHdpbGwgdHJ5IHRvIHJ1biBTdXJlZmlyZSBpbnRlZ3JhdGlvbiB0ZXN0cyB3aXRoIEpESyA5IGFuZCAxMCBvbgo+IExpbnV4Cj4gPj4gYW5kCj4gPj4gPiBJIHdpbGwgYWRkIEpESyA4LzkgdG8gQ0kgcGlwZWxpbmUuCj4gPj4gPiBJIGRvIG5vdCBleHBlY3QgYW55IGJ1Z3MgaGVyZS4gTWF5YmUgb25seSBlbmFibGluZyBzb21lIG1vZHVsZXMgZm9yCj4gdGhlCj4gPj4gSVRzCj4gPj4gPiBpbiB3b3JzdCBjYXNlLgo+ID4+ID4KPiA+PiA+IFN1cmVmaXJlIHN1cHBvcnRzIEppZ3NhdyBhbHJlYWR5IG5vdyBpbiBvcmlnaW4vbWFzdGVyLgo+ID4+ID4KPiA+PiA+IFRoZXJlIGFyZSBtb3JlIGltcG9ydGFudCB0d28gb3IgdGhyZWUgYnVncyB3aGVuIERvY2tlciBidWlsZCBjcmFzaGVzCj4gYW5kCj4gPj4gPiB0aGlzIGhhcyB0byBiZSBmaXhlZCB0aWxsIDIuMjEuMCBhcyB3ZWxsLgo+ID4+ID4KPiA+PiA+IENoZWVycwo+ID4+ID4gVGlib3IKPiA+PiA+Cj4gPj4gLS0KPiA+Pgo+ID4+Cj4gPj4gLS0gRW5yaWNvIE9saXZlbGxpCj4gPj4KPiA+Cj4gPgo+ID4KPiA+IC0tCj4gPiBDaGVlcnMKPiA+IFRpYm9yCj4gPgo+Ci0tIAoKCi0tIEVucmljbyBPbGl2ZWxsaQoKLS0wMDFhMTE0OTdmZjZkNjM2ZjAwNTVmNzI3YTZlLS0KCkZyb20gZGV2LXJldHVybi0xMjQxMjMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE9jdCAgMSAxNToxMjozNyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxMjMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMDYzMTdGNDZFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgIDEgT2N0IDIwMTcgMTU6MTI6MzcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5ODk5OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxIE9jdCAyMDE3IDE1OjEyOjM2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5ODkzNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxIE9jdCAyMDE3IDE1OjEyOjM2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTg5MjIgaW52b2tlZCBieSB1aWQgOTkpOyAxIE9jdCAyMDE3IDE1OjEyOjM2IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAwMSBPY3QgMjAxNyAxNToxMjozNiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIERGRUJFMUExNDNGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAgMSBPY3QgMjAxNyAxNToxMjozNSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDAuMDk5ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTAuMDk5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44LCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgNEJQY1ZxcHNoS2ZwIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAgMSBPY3QgMjAxNyAxNToxMjozNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdyMC1mMTY5Lmdvb2dsZS5jb20gKG1haWwtd3IwLWYxNjkuZ29vZ2xlLmNvbSBbMjA5Ljg1LjEyOC4xNjldKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQkM3QjU1RkRFNwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgIDEgT2N0IDIwMTcgMTU6MTI6MzMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd3IwLWYxNjkuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgbTE4c28yMzQxNzIyd3JtLjIKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAwMSBPY3QgMjAxNyAwODoxMjozMyAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1meXdjbFBkd1hsVzBRQks1cHZsakNaek10WTMrSTJlTUJ0eDhNMjEyRkNrPTsKICAgICAgICBiPVZHTVdENWpXanZmWWVJTm1qNFVBTW4rZHZrRzZPTEZoM0srRGd6ODV4SkxXR0FaVTJlQVRRSktvUHJWb1hSYjhUcwogICAgICAgICBuK0dlTFAyRURjelQzUFZTdXJEOG5md3hVcnBDa0tmV2x0dFVmUlNYUmxPL1FCY0pFTGZNUEZ2aXZ3QlZIY2NXeE1wQgogICAgICAgICB3cXNWUSt1ZzRobzNJcjY1WHNvaEljS1VUVEhoOWxJaWR3ZG9ZYVJiWk5Bc3hYdzE0ek00QmJMeVhIMjQwb0JWYkNEcQogICAgICAgICB2NERMMFlOdS8vYkluclhKSWtYRGpKWUt6U1U2NUdyYmxXd2RaU2NtTFhLNGhMRDNOaXJWMkU2elcvUkI3YUtEeEdFeAogICAgICAgICBYdjR0SzRlekVmcVhhOGt2a25nWDNXVEZ0QU1BU09lb1JxRXZGbzNINXBKcXNwZUJRdVdBbWpsNXBrY1IwNmpXRzdhNgogICAgICAgICBuUkRRPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1meXdjbFBkd1hsVzBRQks1cHZsakNaek10WTMrSTJlTUJ0eDhNMjEyRkNrPTsKICAgICAgICBiPWZJQytOMVBqYjJXa3QyOHlVWkkra1F1UDE4WWZxU2dzcmZSRHB1d2Z4MmdsWVlCQkgvNGJtd1EzbkY5SXJYbWpmNgogICAgICAgICBUbWZ1aGQ1RmFlYzlQbHJNNUp5STd5REJvOE5rdU42cnZpZVRGazNZVVphZjc1LzFYMVcrK0pZa3Z5ZnFUWlM2RlhKWQogICAgICAgICBpQStmaEhHeDAzRDgzNlFtK2dHOFU4ekZRSVB2djFiTjFQYzRRMDBIQ0hpYnhhMVpjeGhYTXZPYzYzZWxKd0dPRmRpZQogICAgICAgICBRemRnUlhKandKZ0gwaFUyY0tLNzVSUy9uRU15Smk5ZWwrSE81ZXFpYkI3T0hYY0RYaHFDeXljRUJTMHBiblkyWS9ISAogICAgICAgICBnNmZFUnFYWG9ZWUQvZjVjUGo1T05PMlpITkJpUnJRSFphYkhHUUFBZ3VhMWlPcTI0cVZ0VmV5KzVzY0ZzeW1WR05LQgogICAgICAgICBtSEtnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FVZW9tQkYwZlVvcEd3WFpvSHRScnVVaUU5RXhJSjVJWFY5eVdFRUdmYVJhNTg4NWtHZwoJVWpra2pWZUFsalpXQXBjSHNaSUNLMmcrUkJISXMxbUUydi8rNEI0ZnRBPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUFoVzg2QmFEZ1FCME5rZUVWaHIvQ1prdlJHVGtLaXJlaGtzcXY4bURTMm9ZbTVJOGZRNFh5S25NeVNYdmtZNTN0cG96ZUpJZ0ZhQW1KckRhcDhoVUU9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xODIuMTU2IHdpdGggU01UUCBpZCBqMjhtcjE2Mzg1NDd3cmUuNDYuMTUwNjg3MDc1MzM2ODsKIFN1biwgMDEgT2N0IDIwMTcgMDg6MTI6MzMgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPEZFMTA3QjRELUQ3QjQtNDcxQi04NzA5LUIxOTcxNzE4RDE0MEBhcGFjaGUub3JnPgogPENBQ2NlZmdmZmRaR283TUQzbWV6ejByRy1MRGJWQkdxWmZZaU8xTjdtcHRMZXJyRHFmUUBtYWlsLmdtYWlsLmNvbT4gPGI4Y2E3NjFlLTMxNWItMDIyNi0zODU3LWYwZDM5MmE3OWRiMEBnbXguZGU+CkluLVJlcGx5LVRvOiA8YjhjYTc2MWUtMzE1Yi0wMjI2LTM4NTctZjBkMzkyYTc5ZGIwQGdteC5kZT4KRnJvbTogRW5yaWNvIE9saXZlbGxpIDxlb2xpdmVsbGlAZ21haWwuY29tPgpEYXRlOiBTdW4sIDAxIE9jdCAyMDE3IDE1OjEyOjIyICswMDAwCk1lc3NhZ2UtSUQ6IDxDQUNjZWZnZCttTGhhYVVhQVM0bkE5TVNhOFg4VENvRUFuVzM3aVY5RGpfb0NLQzJYdkFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiBTdXJlZmlyZSBhbmQgSlVuaXQgNQpUbzogaW5mb0Bzb2ViZXMuZGUsIE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iZjQwMzA0Mzg4ZDU0ZmExZTY5MDU1YTdkYWY3OCIKCi0tZjQwMzA0Mzg4ZDU0ZmExZTY5MDU1YTdkYWY3OApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpTb3JyeQpJIHdhbnRlZCB0byByZXBseSB0byBhbm90aGVyIG1lc3NhZ2UgZnJvbSBCZW5lZGlrdApFbnJpY28KCklsIGRvbSAxIG90dCAyMDE3LCAxNjoxNyBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4gaGEgc2NyaXR0bz0KOgoKPiBIaSBFbnJpY28sCj4KPiBPbiAwMS8xMC8xNyAxNjowMCwgRW5yaWNvIE9saXZlbGxpIHdyb3RlOgo+ID4gQmVuZWRpa3QsCj4gPiBkaWQgeW91IHRyeSB0byB1cGRhdGUgYWxsIG9mIHlvdXIgbWF2ZW4gcGx1Z2lucyB0byBsYXRlc3QgdmVyc2lvbj8KPiA+IENhbiB5b3Ugc2hhcmUgc29tZSBzdGFja3RyYWNlPyBUaGlzIHdpbGwgZ2l2ZSBhIGZpcnN0IGhpbnQgd2l0aG91dCBoYXZpPQpuZwo+ID4gdG8gYnVpbGQgalVEREkKPgo+IFRoaXMgaXMgdGhlIHdyb25nIG1haWxpbmcgbGlzdC4uLlVzZXJzIGxpc3Qgd2FzIHRoZSBzdWJqZWN0IGFib3V0IGpVRERJCj4gOy0pLi4KPgo+IE5vdCByZWxhdGVkIHRvIFN1cmVmaXJlIGFuZCBKVW5pdCA1IC4uLgo+Cj4gS2luZCByZWdhcmRzCj4gS2FybCBIZWlueiBNYXJiYWlzZQo+ID4gQ2hlZXJzCj4gPgo+ID4gRW5yaWNvCj4gPgo+ID4gSWwgc2FiIDMwIHNldCAyMDE3LCAxMDozNCBCZW5lZGlrdCBSaXR0ZXIgPGJyaXR0ZXJAYXBhY2hlLm9yZz4gaGEKPiBzY3JpdHRvOgo+ID4KPiA+PiBIZWxsbywKPiA+Pgo+ID4+IGZvciBvdmVyIGEgeWVhciBub3cgST1FMj04MD05OW0gdHJ5aW5nIHRvIGhlbHAgZ2V0dGluZyBKVW5pdCA1IHN1cHBvcnQ9CiBpbnRvCj4gTWF2ZW4KPiA+PiBTdXJlZmlyZS4gVGhpcyBoYXMgYmVlbiBoYXJkIHNpbmNlIFRpYm9yIHNlZW1zIHRvIGJlIHRoZSBvbmx5IG9uZQo+ID4+IG1haW50YWluaW5nIE1hdmVuIFN1cmVmaXJlIGFuZCBoZSBoYWQgdG8gY29tZSB3aXRoIG90aGVyIHRoaW5ncy4KPiA+Pgo+ID4+IEZvciB0aGlzIHJlYXNvbiBJPUUyPTgwPTk5ZCBsaWtlIHRvIGFzayBvdGhlciBNYXZlbiBtYWludGFpbmVycyB0byBoZWw9CnAgd2l0aCB0aGUKPiA+PiBKVW5pdCA1IHN1cHBvcnQuIEk9RTI9ODA9OTltIGhhcHB5IHRvIGRvIHRoZSB3b3JrLCBidXQgST1FMj04MD05OW0gY29uPQpzdGFudGx5IGJsb2NrZWQgYnkKPiA+PiBvYnNjdXJlIGJ1aWxkIGZhaWx1cmVzIHdoaWNoIEk9RTI9ODA9OTltIHVuYWJsZSB0byByZXNvbHZlIG15c2VsZiBvciBiPQp5IGxhY2sgb2YKPiA+PiBjb2RlIHJldmlldyB1bmQgbWVyZ2Ugb2YgY2hhbmdlcy4KPiA+Pgo+ID4+IC0gV29yayBvbiBKVW5pdDUgc3VwcG9ydCBpcyBjdXJyZW50bHkgZG9uZSBpbiB0aGUganVuaXQ1IGJyYW5jaC4KPiA+PiAtIEkgaGF2ZSBkcmFmdGVkIGEgUHJvdmlkZXIgTG9va3VwIGltcGxlbWVudGF0aW9uIGluIHRoZSBqdW5pdDUgYnJhbmNoPQosCj4gPj4gYnV0IEkgZG9uPUUyPTgwPTk5dCBrbm93IHdoZXRoZXIgaXQgd29ya3MgYmVjYXVzZSBJIGNhbj1FMj04MD05OXQgZ2V0ID0KdGhlIGludGVncmF0aW9uCj4gdGVzdHMKPiA+PiBydW5uaW5nCj4gPj4gLSBUaGVyZSBpcyBhbiBvcGVuIFBSIHRvIG1lcmdlIHRoZSBtYXN0ZXIgYnJhbmNoIGJhY2sgaW50byBqdW5pdDUKPiBicmFuY2gsCj4gPj4gYnV0IGl0IGhhcyBidWlsZCBmYWlsdXJlcyBJIGRvbj1FMj04MD05OXQgdW5kZXJzdGFuZCBbMV0KPiA+Pgo+ID4+IFBsZWFzZSBoZWxwIQo+ID4+IENoZWVycywKPiA+PiBCZW5lZGlrdAo+Ci0tPTIwCgoKLS0gRW5yaWNvIE9saXZlbGxpCgotLWY0MDMwNDM4OGQ1NGZhMWU2OTA1NWE3ZGFmNzgtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDExMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgU2VwIDI5IDA3OjU3OjIzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDExMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFNDI4MEM4RDUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAyOSBTZXAgMjAxNyAwNzo1NzoyMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDc5MzQ5IGludm9rZWQgYnkgdWlkIDUwMCk7IDI5IFNlcCAyMDE3IDA3OjU3OjIzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3OTI4MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOSBTZXAgMjAxNyAwNzo1NzoyMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc5MjY4IGludm9rZWQgYnkgdWlkIDk5KTsgMjkgU2VwIDIwMTcgMDc6NTc6MjMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDI5IFNlcCAyMDE3IDA3OjU3OjIzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgOUE1ODAxQTFCQjEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDI5IFNlcCAyMDE3IDA3OjU3OjIyICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC4wOTkKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC4wOTkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBzV1FDNWs0TUwwWWggZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglGcmksIDI5IFNlcCAyMDE3IDA3OjU3OjE5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd3IwLWYxNzIuZ29vZ2xlLmNvbSAobWFpbC13cjAtZjE3Mi5nb29nbGUuY29tIFsyMDkuODUuMTI4LjE3Ml0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAxMjk2MjYwRDNGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAyOSBTZXAgMjAxNyAwNzo1NzoxOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13cjAtZjE3Mi5nb29nbGUuY29tIHdpdGggU01UUCBpZCBnMjlzbzk0NDY5OHdyZy4xMQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDI5IFNlcCAyMDE3IDAwOjU3OjE5IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvCiAgICAgICAgIDpjYzsKICAgICAgICBiaD1CeEczYzZ4UThiTjkyWmFVeHYwVUVnbFhFOWZoaDdIR0FCRTlrZnVtbUxRPTsKICAgICAgICBiPVFNd0RlLzFvTFNTT0xzZjF2NE95UkR4QWdpbDRlcTcwdDBaS3NPYjZSVEtsaEFob2IxTUFRUUo4Um1PSzBHeFFJZQogICAgICAgICBPR0pPeW1kVU40UWo3U0xxMUU0WjVEMWtMVm5HeEhMWDlyUVJ2bDB6Umx3SDBZNWpXSERBOUlFaVpvTSt5Vms3TWVqWQogICAgICAgICBHbWVlc2lTT2VTZk42MVVKM3Z6ekp1dXdyUkRmMFppTVkwcE96b2phVStWSGtLbkR0dmphK3J2V3hPTER2Qmk4SDIwVQogICAgICAgICB5Q0RJemxJR3lPLzVZVGZURkdYTU91V2lyZ1pMczMwYjRzMTA0NCtLWTk4eFpsMG04ak1MMlRrdndnQUcwQUpwQ2UzdwogICAgICAgICBHb25oREsvQTBLUGk2aE85VlNYMEwxdHQrR3JHQWNPeUZDSTNyTk4yK2o1VlVGRjJEeEFNWHJRTEI3cFo3UFlmblJBZgogICAgICAgICBYeStnPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzpjYzsKICAgICAgICBiaD1CeEczYzZ4UThiTjkyWmFVeHYwVUVnbFhFOWZoaDdIR0FCRTlrZnVtbUxRPTsKICAgICAgICBiPW1kclZzRnJmUkVlN0lDdlk4M21HYm5CTTB2TE52eWNZazkyZ3BTZUVQVjQ1SFRzRDRsa2VDR3B2c09uZm4ybWZhbgogICAgICAgICBvNTgzenQvZG4rMWRyb0pmcGVTZ0dpQWFhUnBXeVN2RUZFZ2UyUGRDV1Qva09BeG9sZ0xQQ2ExRHZOSlZWaVFzWkxvdAogICAgICAgICBVVXNUUzVUMk00MGYxM3FyU0J0QjdnbENBeitRa0hrVGpObEJPMTdqNWQyVFVsbFFhbHE4cFdUckpwRUh5OHFBaHB5TgogICAgICAgICBWdEY4MFA5ajNObXN5WEMvRlljZUh3RmgzbmpVdlEvOUUvMXJPbDNYR2ErU3QrMEVaTnhnT1VLN3JpdGJ4VElTZHZoRgogICAgICAgICB1SjJmd1U5cGJRSUorZFhBQndXSCtlMUVxTlZyVng3VGFqVDBRaFplYi9MTGppMUF3OHZzWlNRS05hT0tTa1dSSW9FZQogICAgICAgICBuYjdnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVoZ2NwMnd6aGsrZ2dPRm9YVHdQRk1ZVnFUOWlvQ3FYVmsxaU1aR0gwS0taa290d1lPcQoJem80Y1NObFdZeHEzTllWR29XS2hSMjFSeUYyb0tSYW05VzhXYVd5RmtTbHQKWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUFjaStKcTVMVjhnc0xuSHlvVjJHV3dYc2ZvSS9VT0dueGhrNFNaTy9lQ1RFS0RwK0tNOHBnUURxa1NaQkJBWmFvQ0lDTVBOdzRpVG5Wa2NXUXhPUmM9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xNDQuMTI5IHdpdGggU01UUCBpZCBpMW1yNjQyNTIzOXdyaS43NS4xNTA2NjcxODM4NDEwOwogRnJpLCAyOSBTZXAgMjAxNyAwMDo1NzoxOCAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMjIzLjE1NS4xOTUgd2l0aCBIVFRQOyBGcmksIDI5IFNlcCAyMDE3IDAwOjU3OjE3IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8b3AueTdiZ283bXlrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+ClJlZmVyZW5jZXM6IDxKSVJBLjEzMTA1MDE2LjE1MDY0MTM3NjgwMDBAQXRsYXNzaWFuLkpJUkE+IDxKSVJBLjEzMTA1MDE2LjE1MDY0MTM3NjgwNDVAamlyYS1sdy11cy5hcGFjaGUub3JnPgogPEpJUkEuMTMxMDUwMTYuMTUwNjQxMzc2ODAwMC4yMzA0MDYuMTUwNjYzMzY2MDMxOUBBdGxhc3NpYW4uSklSQT4gPG9wLnk3YmdvN215a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpGcm9tOiBFbnJpY28gT2xpdmVsbGkgPGVvbGl2ZWxsaUBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMjkgU2VwIDIwMTcgMDk6NTc6MTcgKzAyMDAKTWVzc2FnZS1JRDogPENBQ2NlZmdkLV81ZU84UTk3MXduQXJhd3BtTW5OUSt3ZmZFRUZwclAyVjJGdmYrSjFrUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtqaXJhXSAoU1VSRUZJUkUtMTQyNCkgamF2YXgudHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25NYW5hZ2VyIG5vdAogdmlzaWJsZSB3aXRoIEphdmE5ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDYzogIlRpYm9yIERpZ2FuYSAoSklSQSkiIDxqaXJhQGFwYWNoZS5vcmc+LCBTdGVwaGFuZSBOaWNvbGwgPHN0ZXBoYW5lLm5pY29sbEBnbWFpbC5jb20+LCAKCUFsYW4gQmF0ZW1hbiA8QWxhbi5CYXRlbWFuQG9yYWNsZS5jb20+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iOTRlYjJjMDVkYWQ2YjhiYjgzMDU1YTRmNWZiZCIKCi0tOTRlYjJjMDVkYWQ2YjhiYjgzMDU1YTRmNWZiZApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpSb2JlcnQsIFRpYm9yLApJIGFncmVlIHdpdGggUm9iZXJ0IHRoYXQgdGhlIHR3ZWFrIGFib3V0IGFkZGluZyAtLWFkZC1tb2R1bGVzIGphdmEuc2UuZWUKaGFzIHJlYWxseSBsaW1pdGVkIGVmZmVjdCBhcyBJIHBvaW50ZWQgb3V0IGluIGFub3RoZXIgcHJpdmF0ZSBlbWFpbCB0aHJlYWQsCmFjdHVhbGx5IHRoZSBoYWNrIGRvZXMgbm90IHdvcmsgd2l0aCBtb3JlIHRoYW4gb25lIGZvcmtlZCBKVk0uCgpNeSBwcm9wb3NhbCBpcyB0byBkcm9wIHRoYXQgZml4IGFuZCBkb2N1bWVudCBob3cgdG8gZGVhbCB3aXRoIGNoYW5nZXMgaW4KamF2YTksIG1vc3Qgb2YgdGhlIHRyaWNrcyBhcmU6Ci0gdXNpbmcgSkRLX0pBVkFfT1BUSU9OUz0zRC0tYWRkLW1vZHVsZXM9M0RqYXZhLnNlLmVlCi0gdXNpbmcgLm12bi9qdm0uY29uZmlnCi0gdXNpbmcgcHJvZmlsZXMgYWN0aXZhdGVkIG9uIGphdmEgdmVyc2lvbiA+PTNEIDkKLSBhZGRpbmcgZXhwbGljaXQgZGVwZW5kZW5jaWVzIGZvciBBUElzIGRyb3BwZWQgYnkgZGVmYXVsdCAobm9uIGluY2x1ZGVkIGluCmphdmEuYmFzZSkKCkkgaGF2ZSBzb21lIGlzc3VlcyB3aGljaCBJIGNhbm5vdCByZXNvbHZlOgoxKSBsaWNlbnNpbmcgYWJvdXQgdGhvc2UgbmV3IGRlcGVuZGVuY2llcwppZiB5b3UgbG9hZCBqYXZheC54bWwueHh4eCBmcm9tIHRoZSBKREsgeW91IGRvIG5vdCBoYXZlIHRvIHJlZGlzdHJpYnV0ZSBpdCwKYnV0IGlmIHlvdSBidW5kbGUgdGhvc2UgamFycyB3aXRoaW4geW91ciBhcHAgbWF5YmUgeW91IHdpbGwgbm90IGJlIGhhcHB5CmFib3V0IHRoZSBDQ0RMIGxpY2Vuc2UKCjIpIGRlYWxpbmcgd2l0aCBtb2R1bGVzIGxpa2UgamF2YS5zcWwgd2hpY2ggYXMgbm90IGluIGphdmEuYmFzZSAoCmh0dHA6Ly9kb3dubG9hZC5qYXZhLm5ldC9qYXZhL2pkazkvZG9jcy9hcGkvamF2YS5iYXNlLXN1bW1hcnkuaHRtbCkKQ3VycmVudGx5IEkgaGF2ZSBubyBzb2x1dGlvbiBhcyB0aGVyZSBpcyBubyBvZmZpY2lhbCBtYXZlbiBkZXBlbmRlbmN5IGZvcgpqYXZhLnNxbCBwYWNrYWdlCgpFbnJpY28KCgoyMDE3LTA5LTI5IDk6MzUgR01UKzAyOjAwIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz46Cgo+IEhpIFRpYm9yLAo+Cj4gbW92aW5nIHRoaXMgdG8gdGhlIGRldi1saXN0LCBJIGRvbid0IHRoaW5rIEpJUkEgaXMgdGhlIHJpZ2h0IHBsYWNlIGZvcgo+IHRoaXMga2luZCBvZiBkaXNjdXNzaW9ucy4KPgo+IGJxLiBUaGlzIGlzIG5vdCBhIHJlZ3Jlc3Npb24gYW5kIG5vdCBhIGJ1ZyBpbiBTdXJlZmlyZS4KPgo+IFNvcnJ5LCBJIGRvbid0IGFncmVlIHdpdGggeW91LiBUaGUgSmF2YTggcHJvamVjdCBwcm92aWRlZCBieSBTdD1DMz1BOXBoYW49CmUKPiB3b3JrcyB3aXRoIDIuMjAuMCwgYnV0IG5vdCB3aXRoIDIuMjAuMSwgc28gZm9yIG1lIHRoaXMgaXMgY2xlYXJseSBhCj4gcmVncmVzc2lvbiBpbiBzdXJlZmlyZS4KPgo+IFdlIGFyZSBhbGwgYXdhcmUgdGhhdCB0aGUgbW9kdWxhcml6YXRpb24gaW4gSmF2YSA5IGNhbiBicmVhayB0aGluZ3MsIGFuZAo+IHllcyBzb21ldGltZXMgdGhhdCBjYW4gYmUgcXVpdGUgZnJ1c3RyYXRpbmcuIEkgdGhpbmsgaXQgaXMgdGhlIHRhc2sgb2YKPiBNYXZlbiB0byBzb2x2ZSB0aGVzZSBraW5kIG9mIGlzc3VlcyB3aGVyZSBwb3NzaWJsZS4gTWF2ZW4gc2hvdWxkIHNvbHZlIHRoPQplCj4gaGFyZCBwYXJ0cyBmb3IgdXNpbmcgSmF2YSB0byBsZXQgdXNlcnMgZXhwZXJpZW5jZSBhIGdyZWF0IHdheSB0byBkZXZlbG9wCj4gd2l0aCBKYXZhLgo+Cj4gSSBkb24ndCBtaW5kIHBpY2tpbmcgdGhpcyBpc3N1ZSB1cCBhbmQgdHJ5IHRvIGdldCByaWQgb2YgdGhlCj4gIi0tYWRkLW1vZHVsZXMgamF2YS5zZS5lZSIgKHRoaXMgaXNzdWUganVzdCBjb25maXJtcyB0byBtZSBpdCBpcyBpbmRlZWQgYQo+IGhhY2spLiBBbGFuIHBvaW50ZWQgbWUgdG8gc29tZSBkZXBlbmRlbmNpZXMgd2Ugc2hvdWxkIGFkZCwgd2hpY2ggc2hvdWxkCj4gc29sdmUgdGhpcyBpc3N1ZS4KPgo+IFJvYmVydAo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKLS05NGViMmMwNWRhZDZiOGJiODMwNTVhNGY1ZmJkLS0KCkZyb20gZGV2LXJldHVybi0xMjQ3MjMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIERlYyAgMyAxNTowMzoyNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3MjMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOThDNTYxN0VDRgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sICAzIERlYyAyMDE3IDE1OjAzOjI1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzAwNiBpbnZva2VkIGJ5IHVpZCA1MDApOyAzIERlYyAyMDE3IDE1OjAzOjI1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2ODgxIGludm9rZWQgYnkgdWlkIDUwMCk7IDMgRGVjIDIwMTcgMTU6MDM6MjUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2ODY5IGludm9rZWQgYnkgdWlkIDk5KTsgMyBEZWMgMjAxNyAxNTowMzoyNCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMDMgRGVjIDIwMTcgMTU6MDM6MjQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAzNkE2QjE4MDZEQgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgIDMgRGVjIDIwMTcgMTU6MDM6MjQgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjA5OQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjA5OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB5SUJFZ1BidUYtUXogZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sICAzIERlYyAyMDE3IDE1OjAzOjIzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd3IwLWYxODIuZ29vZ2xlLmNvbSAobWFpbC13cjAtZjE4Mi5nb29nbGUuY29tIFsyMDkuODUuMTI4LjE4Ml0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA4Qzc2NzVGNTIzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAgMyBEZWMgMjAxNyAxNTowMzoyMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13cjAtZjE4Mi5nb29nbGUuY29tIHdpdGggU01UUCBpZCB6MThzbzE0NjUxODUzd3JiLjgKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAwMyBEZWMgMjAxNyAwNzowMzoyMiAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD16bWxnaEU3NWwya3Urb0IzSnBLcWk1MjN2WFJxYW94Kzhwa2U4UTBzbDFRPTsKICAgICAgICBiPW55SThuNXZrMkUweXFWclpCdzF2M0FlVDI2aFg4cHRJRjZpdW0rMHlzejBPMVlSV0dLWUZFcXJ2YzRIOVBsZ1V5YwogICAgICAgICBFSnBreVIyRFY3Snh2RWdOTkpWYXJycGMzNXRhclk5YVhHT3lYTEtzY0tVRTdEVEYvQmxGNFVxT2F5bmU1WjAxRVpadQogICAgICAgICA3bVQ3YkpQSVQyNTdRdUhkeVBHOG9nbU9hQW9SNXNjajVkWHczKzgrTzFkUnhvM2V6SzQzTjcxcU9ONVZvS05JZjhZWAogICAgICAgICAxNmtKQTlMR2dhcjl1WG9pTlR5MVJuaFBCeG5QR1A1MU9jUXl6ZGUraU5jT1E4RFdDd0thRlZ1bUE2RUpyQzc5MVJmUAogICAgICAgICBRaE9LVENPMjdBNkJCcHRJQktnTSsvZ0w1SERUelZpYmUwRmMzWmZZV25tTTZsb0x6bHh5cTMweVN3QlcxZFpIYzJNaAogICAgICAgICBNNXVnPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD16bWxnaEU3NWwya3Urb0IzSnBLcWk1MjN2WFJxYW94Kzhwa2U4UTBzbDFRPTsKICAgICAgICBiPUZwT2pqWkErenBwRnB3RHpMSEhKZy9Nd0xYdzJ5aVV4UjFoUEoxYXJEei9idXhoQ2RDZzlMRFE0SDR4c1p6Z2tDcwogICAgICAgICB6ZlFhODYweGg1aFVYRVFUUE4yREZZTFE1Y1VRN2NwcExmNk54b1oxTzQ5SE53NVBPQmZOVHFLNWMrd2JPNjRFQjF2bQogICAgICAgICB3KzBBeU1GeWlPK3VWaHFMTEtRdUFKUUZZRWJVMEQvT1JCU3VKMCszdDQ0N1hUdVJ1dk1TRkhSbjV2R2c2UHIvTXlQcwogICAgICAgICBTRkNWd2pwa3R4Um44SURzSUdUZElLeFBwT2FkR1BySGROTnMxbmFhQ0cycWkzdzRBV1RKbStNSHJhQ1E1NEZwNkRvVAogICAgICAgICBlSkp3djcvQ1JpV0p3MHViM0w3Wm1INXNPYUo5WTNaanhPSGw5MHBYeDNPVnFjZFcyVjZBQVBSYXV0MWx3Q1lSeGNHNAogICAgICAgICB1UXZnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg2ZFQ4eE5LdmdRRUVJWjgrVzNsWUp2czFIeEFGTVFnbSthdFVYa2lMaXRlTXA4Um9DUQoJZ2cwcXVaSlZHTkYwcTRkZHdya0puMUNINGwzYVMvMEs0ZHFBakZ0YnZ3PT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TVlHeTB6VTQzZVZ3bFZ1R2J2Q3FDVHZUUXcxV0Z5UU9Yb2V2c01BbjdkekdIa2ozZmJkaHJYamthVVdhN3ZSR2tuaE1FRHhJZnZZalE5ckl2QnRvazA9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xMzQuMjE2IHdpdGggU01UUCBpZCAyNG1yMTA5ODUwNjJ3cnkuMTU2LjE1MTIzMTMzOTYxMTM7CiBTdW4sIDAzIERlYyAyMDE3IDA3OjAzOjE2IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDxDQUt1VnpCU1g4eE03M1I1NzdKM0JDTC1ab2VqPXFHd29nM1grZFc0d3lnWmk1UkJwaGdAbWFpbC5nbWFpbC5jb20+CkluLVJlcGx5LVRvOiA8Q0FLdVZ6QlNYOHhNNzNSNTc3SjNCQ0wtWm9laj1xR3dvZzNYK2RXNHd5Z1ppNVJCcGhnQG1haWwuZ21haWwuY29tPgpGcm9tOiBFbnJpY28gT2xpdmVsbGkgPGVvbGl2ZWxsaUBnbWFpbC5jb20+CkRhdGU6IFN1biwgMDMgRGVjIDIwMTcgMTU6MDM6MDUgKzAwMDAKTWVzc2FnZS1JRDogPENBQ2NlZmdlSC1LN2dBRDRQcUJWc3BZX1Uwa3k4cHQxMjNXWWg9b083bzFQYzdyOWR4d0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFN1cmVmaXJlIGF0IEphdmEgOSBhbmQgSmF2YSAxMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0OTdmZjZjM2I2ZjYwNTVmNzBlNmNjIgoKLS0wMDFhMTE0OTdmZjZjM2I2ZjYwNTVmNzBlNmNjCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpUaWJvciwKVGhlcmUgYXJlIElUIHRlc3RzIHdoaWNoIGNoZWNrIGZvciBleGFjbHR5IGphdmEuc3BlY2lmaWNhdGlvbi52ZXJzaW9uPTkKSG93ICBhcmUgd2UgZ29pbmcgdG8gZGVhbCB3aXRoIHRoZW0/Ckl0IHNlZW1zIHRoYXQgYSBuZXcgbWFqb3IgcmVsZWFzZSB3aWxsIGFwcGVhciAgZXZlcnkgNiBtb250aHMKSU1ITyBpdCB3aWxsIGJlIGVub3VnaCB0byBkcm9wIHRoYXQgYXNzZXJ0aW9uCgpFbnJpY28KCklsIGRvbSAzIGRpYyAyMDE3LCAxMzoyMSBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+IGhhIHNjcml0dG86Cgo+IEFzIGRpc2N1c3NlZCBiZWZvcmUgYWJvdXQgSmF2YSA5Lgo+IEkgd2lsbCB0cnkgdG8gcnVuIFN1cmVmaXJlIGludGVncmF0aW9uIHRlc3RzIHdpdGggSkRLIDkgYW5kIDEwIG9uIExpbnV4IGFuZAo+IEkgd2lsbCBhZGQgSkRLIDgvOSB0byBDSSBwaXBlbGluZS4KPiBJIGRvIG5vdCBleHBlY3QgYW55IGJ1Z3MgaGVyZS4gTWF5YmUgb25seSBlbmFibGluZyBzb21lIG1vZHVsZXMgZm9yIHRoZSBJVHMKPiBpbiB3b3JzdCBjYXNlLgo+Cj4gU3VyZWZpcmUgc3VwcG9ydHMgSmlnc2F3IGFscmVhZHkgbm93IGluIG9yaWdpbi9tYXN0ZXIuCj4KPiBUaGVyZSBhcmUgbW9yZSBpbXBvcnRhbnQgdHdvIG9yIHRocmVlIGJ1Z3Mgd2hlbiBEb2NrZXIgYnVpbGQgY3Jhc2hlcyBhbmQKPiB0aGlzIGhhcyB0byBiZSBmaXhlZCB0aWxsIDIuMjEuMCBhcyB3ZWxsLgo+Cj4gQ2hlZXJzCj4gVGlib3IKPgotLSAKCgotLSBFbnJpY28gT2xpdmVsbGkKCi0tMDAxYTExNDk3ZmY2YzNiNmY2MDU1ZjcwZTZjYy0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MTIxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBPY3QgIDEgMTQ6MDA6MjYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTIxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDRDNEM0RjMxNgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sICAxIE9jdCAyMDE3IDE0OjAwOjI2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjcwMzYgaW52b2tlZCBieSB1aWQgNTAwKTsgMSBPY3QgMjAxNyAxNDowMDoyNSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjY5NDkgaW52b2tlZCBieSB1aWQgNTAwKTsgMSBPY3QgMjAxNyAxNDowMDoyNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI2OTM3IGludm9rZWQgYnkgdWlkIDk5KTsgMSBPY3QgMjAxNyAxNDowMDoyNSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMDEgT2N0IDIwMTcgMTQ6MDA6MjUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA5NThDQjFBNTYyRAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgIDEgT2N0IDIwMTcgMTQ6MDA6MjQgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjM3OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjM3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgZmtwY2xBeHA1ZWpQIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAgMSBPY3QgMjAxNyAxNDowMDoyMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdtMC1mNTAuZ29vZ2xlLmNvbSAobWFpbC13bTAtZjUwLmdvb2dsZS5jb20gWzc0LjEyNS44Mi41MF0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA2NzYwODYwRDNGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAgMSBPY3QgMjAxNyAxNDowMDoyMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13bTAtZjUwLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIG03MnNvNjMxNzQ1NHdtYy4xCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMDEgT2N0IDIwMTcgMDc6MDA6MjIgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9b0tKRDZwL1M3KzVxdGlRYk54amh5VnJseVlQaGcvb3E2Y2s2Rlh2TlpkMD07CiAgICAgICAgYj1LWHhPK2UzVzk0Sm9ucUlacmNLaFQ1dE1wa2VGRjZXY3RRbVdudXNZb1JsUWFnQVE1Z2NncDZYaDNqVk02M2ZWS1IKICAgICAgICAgRUlic1E5aU43dWlqbThMWTQyTGNzMFdmQm9VWWZac3VHdU0xcUQycU9VSlNXcmhzQTl0dDRnRHd4VkgwSG0veHk2KysKICAgICAgICAgV1JnZTVGdStyQmw5d0V5azI5b2RqMXNIaEVjS05aU2l2SHZLOFM3bUJSckZmWUFKc3Z6SHJMc1BmZktKb1FUYXNPZ1MKICAgICAgICAgL1I2cWtPSzVHbWpydlBDbERHM2ZBc240cWxIdmJjb2REN1RURmNMbTlaK0JrV2JmcEtTOEl5bkZxQ3ZUcVpObmQ2UUgKICAgICAgICAgMkwyNlcxT0MvVTZiNnh2ZXp2aWdySWlJcFNSalRNM2RMVStiZGNWM3JhTVRVTGM2MHlLL3FzMVZhWVovMk14Y3YwQ2sKICAgICAgICAgbUo2Zz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9b0tKRDZwL1M3KzVxdGlRYk54amh5VnJseVlQaGcvb3E2Y2s2Rlh2TlpkMD07CiAgICAgICAgYj1wclJBSm10V08rNUROcGE3M2ZmS2puZjJLWCt0dHVCY1VWb29VSlVrMmJCZS80S3g5R3ZQUURtV1RSUXJIdzVBUTQKICAgICAgICAgMERERW1lTTg4Q05DN1d4aTJRRTRWVTAxODRyVzE3VUZGTThCTnE4aEV3SStwZi9pWjNRL04zSytSazhnTTM1R2ZnNVIKICAgICAgICAgTUExOEMvTFNrQUFDeG1yVStBTU5tUXdjZ0NVRE0vYk9NVFV4c016YjAxNnFnV3AzT0htNGludEZTV1N1dWRveGRtOEoKICAgICAgICAgcm1xR2E4ZkFSV1RTL29aWDc2UWpXek8zOTNFd21VZjJRaERlbGgwWGVQWGpRNDFqaEhjdWszN1dRT0ZlT3hneU9hTTAKICAgICAgICAgRFk5d2hNOHR6RGJuSi8vMTh5WUNtakZQNFI2SGNwRXFpMWhWTTJXeERmNGtiS1F2dGF1WW5hOVB5ckNWRzZQZ0FMNEUKICAgICAgICAgU3NsZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVkcyeGRjZy9rMXlyT1ZIQ0UvamtZSDVJMnZjdGMrczVaV0RaKzREbjhVSmdoQWxUQzgKCWxjK3cwSGxFbjZZVjJZYmxWQWF1SFlUeSt4UUNQMmR6ZlFqVjRod3Rudz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FETEpJc2U1UnpQSXF3NEJ3SDRYKzdxSFN0czhickRYclN0UkFoOVB3aGdlY0hXc2Y5dU9jaUhHRGFOa0NkOVZFbjhPUUNFMXVKNk9WQWZDZ2FkMy8wPQpYLVJlY2VpdmVkOiBieSAxMC4yOC4yMTUuNCB3aXRoIFNNVFAgaWQgbzRtcjMzNDk1MTl3bWcuMC4xNTA2ODY2NDE1ODAxOyBTdW4sCiAwMSBPY3QgMjAxNyAwNzowMDoxNSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8RkUxMDdCNEQtRDdCNC00NzFCLTg3MDktQjE5NzE3MThEMTQwQGFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8RkUxMDdCNEQtRDdCNC00NzFCLTg3MDktQjE5NzE3MThEMTQwQGFwYWNoZS5vcmc+CkZyb206IEVucmljbyBPbGl2ZWxsaSA8ZW9saXZlbGxpQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAwMSBPY3QgMjAxNyAxNDowMDowNSArMDAwMApNZXNzYWdlLUlEOiA8Q0FDY2VmZ2ZmZFpHbzdNRDNtZXp6MHJHLUxEYlZCR3FaZllpTzFON21wdExlcnJEcWZRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogTWF2ZW4gU3VyZWZpcmUgYW5kIEpVbml0IDUKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDcxOTllNzAxOTFhMDU1YTdjYWQwNCIKCi0tMDAxYTExNDcxOTllNzAxOTFhMDU1YTdjYWQwNApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpCZW5lZGlrdCwKZGlkIHlvdSB0cnkgdG8gdXBkYXRlIGFsbCBvZiB5b3VyIG1hdmVuIHBsdWdpbnMgdG8gbGF0ZXN0IHZlcnNpb24/CkNhbiB5b3Ugc2hhcmUgc29tZSBzdGFja3RyYWNlPyBUaGlzIHdpbGwgZ2l2ZSBhIGZpcnN0IGhpbnQgd2l0aG91dCBoYXZpbmcKdG8gYnVpbGQgalVEREkKQ2hlZXJzCgpFbnJpY28KCklsIHNhYiAzMCBzZXQgMjAxNywgMTA6MzQgQmVuZWRpa3QgUml0dGVyIDxicml0dGVyQGFwYWNoZS5vcmc+IGhhIHNjcml0dG86Cgo+IEhlbGxvLAo+Cj4gZm9yIG92ZXIgYSB5ZWFyIG5vdyBJPUUyPTgwPTk5bSB0cnlpbmcgdG8gaGVscCBnZXR0aW5nIEpVbml0IDUgc3VwcG9ydCBpbj0KdG8gTWF2ZW4KPiBTdXJlZmlyZS4gVGhpcyBoYXMgYmVlbiBoYXJkIHNpbmNlIFRpYm9yIHNlZW1zIHRvIGJlIHRoZSBvbmx5IG9uZQo+IG1haW50YWluaW5nIE1hdmVuIFN1cmVmaXJlIGFuZCBoZSBoYWQgdG8gY29tZSB3aXRoIG90aGVyIHRoaW5ncy4KPgo+IEZvciB0aGlzIHJlYXNvbiBJPUUyPTgwPTk5ZCBsaWtlIHRvIGFzayBvdGhlciBNYXZlbiBtYWludGFpbmVycyB0byBoZWxwIHc9Cml0aCB0aGUKPiBKVW5pdCA1IHN1cHBvcnQuIEk9RTI9ODA9OTltIGhhcHB5IHRvIGRvIHRoZSB3b3JrLCBidXQgST1FMj04MD05OW0gY29uc3RhPQpudGx5IGJsb2NrZWQgYnkKPiBvYnNjdXJlIGJ1aWxkIGZhaWx1cmVzIHdoaWNoIEk9RTI9ODA9OTltIHVuYWJsZSB0byByZXNvbHZlIG15c2VsZiBvciBieSBsPQphY2sgb2YKPiBjb2RlIHJldmlldyB1bmQgbWVyZ2Ugb2YgY2hhbmdlcy4KPgo+IC0gV29yayBvbiBKVW5pdDUgc3VwcG9ydCBpcyBjdXJyZW50bHkgZG9uZSBpbiB0aGUganVuaXQ1IGJyYW5jaC4KPiAtIEkgaGF2ZSBkcmFmdGVkIGEgUHJvdmlkZXIgTG9va3VwIGltcGxlbWVudGF0aW9uIGluIHRoZSBqdW5pdDUgYnJhbmNoLAo+IGJ1dCBJIGRvbj1FMj04MD05OXQga25vdyB3aGV0aGVyIGl0IHdvcmtzIGJlY2F1c2UgSSBjYW49RTI9ODA9OTl0IGdldCB0aGU9CiBpbnRlZ3JhdGlvbiB0ZXN0cwo+IHJ1bm5pbmcKPiAtIFRoZXJlIGlzIGFuIG9wZW4gUFIgdG8gbWVyZ2UgdGhlIG1hc3RlciBicmFuY2ggYmFjayBpbnRvIGp1bml0NSBicmFuY2gsCj4gYnV0IGl0IGhhcyBidWlsZCBmYWlsdXJlcyBJIGRvbj1FMj04MD05OXQgdW5kZXJzdGFuZCBbMV0KPgo+IFBsZWFzZSBoZWxwIQo+IENoZWVycywKPiBCZW5lZGlrdAo+Cj4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNjUKPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPiAtLQoKCi0tIEVucmljbyBPbGl2ZWxsaQoKLS0wMDFhMTE0NzE5OWU3MDE5MWEwNTVhN2NhZDA0LS0KCkZyb20gZGV2LXJldHVybi0xMjQxMTUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIFNlcCAyOSAwOToyMToxMyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxMTUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRTk5RUJDQjlDCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMjkgU2VwIDIwMTcgMDk6MjE6MTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0OTM4MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOSBTZXAgMjAxNyAwOToyMToxMiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDkyOTggaW52b2tlZCBieSB1aWQgNTAwKTsgMjkgU2VwIDIwMTcgMDk6MjE6MTIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0OTI3OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI5IFNlcCAyMDE3IDA5OjIxOjEyIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAyOSBTZXAgMjAxNyAwOToyMToxMiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDk2RUMxMTg2MDkzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAyOSBTZXAgMjAxNyAwOToyMToxMSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDAuMDk5ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTAuMDk5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44LCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFFvaVhDWHFNS0NmeSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCUZyaSwgMjkgU2VwIDIwMTcgMDk6MjE6MDggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13cjAtZjE3NC5nb29nbGUuY29tIChtYWlsLXdyMC1mMTc0Lmdvb2dsZS5jb20gWzIwOS44NS4xMjguMTc0XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDI5MDJFNjEwMzIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDI5IFNlcCAyMDE3IDA5OjIxOjA4ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdyMC1mMTc0Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGoxNHNvMTI0Nzg0NHdyZS44CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjkgU2VwIDIwMTcgMDI6MjE6MDggLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG8KICAgICAgICAgOmNjOwogICAgICAgIGJoPWVRMlFjd0xEMXpDSzJJbHRiU241MlRPdFozRWlLWEVHOElwb0lQaVhwUFU9OwogICAgICAgIGI9RUp1bGxXSzNMVDBIdkJrQ1RHc2dMcUt1ZTdoaTAyU3pSV0R0SC92V0wxckJaczZTN09KLzhaNDBVVVo0aEd5MWNoCiAgICAgICAgIHUvdUthM1JXQklucTZLOW1DQ1hiYWdJUWJZdVBGZS9mbjd4MTg4SUNnQjFZZjlyT0ZMaWszVHMvMFpqREZqLzBrLytrCiAgICAgICAgIHZQQjVHZ2NGQjBqN1VQZzZNdXR0alAvWnI3MXUvYUlHREZveld4NW5ZWUdIMWtuNnI4Rjk5cmhMU0NQU1hmZWNFb0NoCiAgICAgICAgIFZRcDZ0ZXNjc2RjN0NLdkZSZzRKdlZQV0VONTU5SHBBdFB4VUh5dUsvUk1MWUZtY0pMT0pwU3packJBbkpuQ2dUR3FNCiAgICAgICAgIEJVdXhIUy9ySFlZQjVVYlRGcDBtczh4VjZRaUN4dkhTNnlBdlZ0dXVBTjk4WFhQWWEwWWRCR2RoOTdTY2d5YzJINjlDCiAgICAgICAgIDYyS1E9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOmNjOwogICAgICAgIGJoPWVRMlFjd0xEMXpDSzJJbHRiU241MlRPdFozRWlLWEVHOElwb0lQaVhwUFU9OwogICAgICAgIGI9QVZqM1E5eVh3bXlkME9OWlkyRFFGQ3dHeUpSY2dWdXc2bmdJT3cyQXZDL2Nna1dWN1M4RkJMdTlZNktySnJJRTRDCiAgICAgICAgIHhTYUxPMGZtWlNnRkM3UzA2R0IwSW5GSTFja2luZ0FxTUNvUFZqMXVXS2NMNzR1dmxOaVJpc2dIU05DNzBsOUd5U3I3CiAgICAgICAgIHdjSHZsclo1cEpYZ09vT1pYSk9qb1N6Qjl4U0FKV1Mra3NJZWRKNEVnS3N4SkQ4a1dIem1kK1RTVjZici9tWE8xVmxMCiAgICAgICAgIGY2czl0RWNFdVJvUVkvSzNNOFp4Rkw3M1N4VnFXc3FnOUlucDI5S0ptMXp2UnA4MklzcVZyQlZCTVNrOXJiVjllWWMwCiAgICAgICAgIGc0bWQ5MEJpbzNOZ0Z4RzRGMHcyWmN0RnZxMS9wdUZFeWt5NFIrODJXZExodlF5akRUREErS2M1MFpWM3UyYkFmRkpOCiAgICAgICAgIHJwV2c9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWlaaDJKdVV4NERMSWFyaDRDTG1jOC9rdllUbXY3ZTlleUtqUzFRNWZ6dEVmdWRxU09hCglpdWMxOVM3NmM5NVBIQ3doTDRFOTFxZVFhL1hYdmxLMjBwOHhNcmRKWWxCVQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRREtIMlFZUTJ6NEd3YWp1S1ZMdXU5TDZlTWdkNFFlOTdlanBxa2xxTFlKeDZaWmI4dk5UOVZZTDZ6ajNSNStkR1BlcEx5M0k4alRkdTlKNHp4aVc5bz0KWC1SZWNlaXZlZDogYnkgMTAuMjIzLjE5My4xNDAgd2l0aCBTTVRQIGlkIHgxMm1yNjc3MTUzOXdyZS4xNTUuMTUwNjY3NTMzNzE3NzsKIEZyaSwgMjkgU2VwIDIwMTcgMDE6NTU6MzcgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xNTUuMTk1IHdpdGggSFRUUDsgRnJpLCAyOSBTZXAgMjAxNyAwMTo1NTozNiAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPDA5ZDYyNGViLWRjZmQtY2JkYi04ZTA2LTE5YjhjZjMyNWM4NkBvcmFjbGUuY29tPgpSZWZlcmVuY2VzOiA8SklSQS4xMzEwNTAxNi4xNTA2NDEzNzY4MDAwQEF0bGFzc2lhbi5KSVJBPiA8SklSQS4xMzEwNTAxNi4xNTA2NDEzNzY4MDQ1QGppcmEtbHctdXMuYXBhY2hlLm9yZz4KIDxKSVJBLjEzMTA1MDE2LjE1MDY0MTM3NjgwMDAuMjMwNDA2LjE1MDY2MzM2NjAzMTlAQXRsYXNzaWFuLkpJUkE+CiA8b3AueTdiZ283bXlrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDxDQUNjZWZnZC1fNWVPOFE5NzF3bkFyYXdwbU1uTlErd2ZmRUVGcHJQMlYyRnZmK0oxa1FAbWFpbC5nbWFpbC5jb20+CiA8MDlkNjI0ZWItZGNmZC1jYmRiLThlMDYtMTliOGNmMzI1Yzg2QG9yYWNsZS5jb20+CkZyb206IEVucmljbyBPbGl2ZWxsaSA8ZW9saXZlbGxpQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAyOSBTZXAgMjAxNyAxMDo1NTozNiArMDIwMApNZXNzYWdlLUlEOiA8Q0FDY2VmZ2ZpeFhteUNEcjQ1TFhYLTd6TGlDNV9WaGg3d18xRzdfTTlPeWNMVnpjPVZ3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW2ppcmFdIChTVVJFRklSRS0xNDI0KSBqYXZheC50cmFuc2FjdGlvbi5UcmFuc2FjdGlvbk1hbmFnZXIgbm90CiB2aXNpYmxlIHdpdGggSmF2YTkKVG86IEFsYW4gQmF0ZW1hbiA8QWxhbi5CYXRlbWFuQG9yYWNsZS5jb20+CkNjOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwgIlRpYm9yIERpZ2FuYSAoSklSQSkiIDxqaXJhQGFwYWNoZS5vcmc+LCAKCVN0ZXBoYW5lIE5pY29sbCA8c3RlcGhhbmUubmljb2xsQGdtYWlsLmNvbT4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwODllMDgyMzkxZWM0M2IxOGEwNTVhNTAzMDc4IgoKLS0wODllMDgyMzkxZWM0M2IxOGEwNTVhNTAzMDc4CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgoyMDE3LTA5LTI5IDEwOjQxIEdNVCswMjowMCBBbGFuIEJhdGVtYW4gPEFsYW4uQmF0ZW1hbkBvcmFjbGUuY29tPjoKCj4gT24gMjkvMDkvMjAxNyAwODo1NywgRW5yaWNvIE9saXZlbGxpIHdyb3RlOgo+Cj4+IDoKPj4KPj4gMikgZGVhbGluZyB3aXRoIG1vZHVsZXMgbGlrZSBqYXZhLnNxbCB3aGljaCBhcyBub3QgaW4gamF2YS5iYXNlICgKPj4gaHR0cDovL2Rvd25sb2FkLmphdmEubmV0L2phdmEvamRrOS9kb2NzL2FwaS9qYXZhLmJhc2Utc3VtbWFyeS5odG1sKQo+PiBDdXJyZW50bHkgSSBoYXZlIG5vIHNvbHV0aW9uIGFzIHRoZXJlIGlzIG5vIG9mZmljaWFsIG1hdmVuIGRlcGVuZGVuY3kgZm9yCj4+IGphdmEuc3FsIHBhY2thZ2UKPj4KPj4gWW91IHNob3VsZG4ndCBuZWVkIHRvIGJlIGNvbmNlcm5lZCB3aXRoIHRoZSBqYXZhLnNxbCBtb2R1bGUuCgoKPkZyb20gdGhlIHBvaW50IG9mIHZpZXcgb2YgYSBkZXZlbG9wZXIgd2hpY2ggdXNlcyBNYXZlbiB0aGVyZSBpcyBubyBNYXZlbgpzdHlsZSB3YXkgdG8gdXNlIGphdmEuc3FsIG1vZHVsZSwgbGlrZSAiYWRkaW5nIGEgZGVwZW5kZW5jeSIKVGhlIGhhY2sgb24gc3VyZWZpcmUgdHJpZWQgdG8gc29sdmUgdGhpcyBwcm9ibGVtLgoKVXNpbmcgSkRLX0pBVkFfT1BUSU9OUyBpcyBhbiBvcHRpb24sIGJ1dCBhcyBpdCBpcyBhIGVudiBlbnRyeSBpdCBtdXN0IGJlCnNldCBleHRlcm5hbGx5IHRvIHRoZSBtYXZlbiBwb20ueG1sIG9yIGNvbmZpZwpVc2luZyAubXZuL2p2bS5jb25maWcgd2lsbCBwcmV2ZW50IHRoZSBidWlsZCB0byB3b3JrIG9uIGphdmE4IChleGNlcHQgZnJvbQp1c2luZyAtWFg6K0lnbm9yZVVucmVjb2duaXplZFZNT3B0aW9ucyB3aGljaCB3aWxsIGJlIGRyb3BwZWQgaW4gamF2YTExID8/KQoKV2hpY2ggaXMgdGhlIGJlc3Qgc3VnZ2VzdGlvbiB0byBnaXZlIHRvIG1hdmVuIHVzZXJzID8KCi0tIEVucmljbwoKCgo+IFRoZSBvbmx5IG1vZHVsZXMgdGhhdCB5b3UgbmVlZCB0byBiZSBjb25jZXJuZWQgYWJvdXQgYXJlOgo+Cj4gamF2YS5jb3JiYQo+IGphdmEudHJhbnNhY3Rpb24KPiBqYXZhLmFjdGl2YXRpb24KPiBqYXZhLnhtbC5iaW5kCj4gamF2YS54bWwud3MKPiBqYXZhLnhtbC53cy5hbm5vdGF0aW9uCj4KPiBhbmQgdGhlIGphdmEuc2UuZWUgYWdncmVnYXRvci4KPgo+IFRoZXNlIG1vZHVsZXMgYXJlIGRlcHJlY2F0ZWQgaW4gSmF2YSBTRSBhbmQgYXJlIHByb3Bvc2VkIHRvIGJlIHJlbW92ZWQgaW4KPiBhIGZ1dHVyZSByZWxlYXNlLgo+Cj4gQXNpZGUgZnJvbSBqYXZhLmNvcmJhLCB0aGUgNSBtb2R1bGVzIHNoYXJlZCB3aXRoIEphdmEgRUUgYXJlIHN0YW5kYWxvbmUKPiB0ZWNobm9sb2dpZXMsIGVhY2ggd2l0aCBvbmUgb3IgbW9yZSBKU1JzIGFuZCBpdHMgb3duIGRvd25sb2FkLiBFYWNoIG9mCj4gdGhlc2UgcHJvamVjdHMgdXNlZCB0byBiZSBvbiBqYXZhLm5ldCBidXQgbW92ZWQgdG8gdGhlIEphdmEgRUUgZ2l0aHViCj4gcHJvamVjdCByZWNlbnRseS4gSSBkb24ndCBrbm93IGlmIHRoZSBtb3ZlIHRvIEVjbGlwc2Ugd2lsbCBjaGFuZ2UgYW55dGhpbmcKPiB0aGVyZS4KPgo+IEluIGFueSBjYXNlLCBlYWNoIG9mIHRoZSBzdGFuZGFsb25lIHZlcnNpb25zIGNhbiBiZSBkZXBsb3llZCBvbiB0aGUgY2xhc3MKPiBwYXRoIHdpdGggSkRLIDkuCj4KPiBJbiB0aW1lIHRoZXkgd2lsbCBiZSBkZXBsb3lhYmxlIGFzIG1vZHVsZXMgdG9vIGFuZCB0aGlzIHdpbGwgYWxsb3cgdGhlbSB0bwo+IGJlIGRlcGxveWVkIG9uIHRoZSB1cGdyYWRlIG1vZHVsZSBwYXRoICgtLXVwZ3JhZGUtbW9kdWxlLXBhdGgpIHRvCj4gdXBncmFkZS9vdmVycmlkZSB0aGUgbW9kdWxlIGluIHRoZSBydW4tdGltZSBpbWFnZSB3aXRoIHRoZSBzdGFuZGFsb25lIG9yCj4gSmF2YSBFRSBtb2R1bGUuIFRoaXMgd2lsbCBhY3R1YWxseSB3b3JrIHdpdGggYWxsIGV4Y2VwdCBmb3IgdGhlIHRyYW5zYWN0aW9uCj4gQVBJIGFzIHRoZXJlIGFyZSBhIGNvdXBsZSBvZiBpc3N1ZXMgdG8gc29ydCBvdXQgdGhlcmUgYmVmb3JlIGl0IGNhbiBiZQo+IGRlcGxveWVkIGFzIGEgbW9kdWxlLgo+Cj4gQXMgSSB1bmRlcnN0YW5kIGl0LCB0aGUgU3ByaW5nIGZvbGtzIGluIHRoZSBKSVJBIGlzc3VlIGFyZSBkZXBsb3lpbmcgdGhlCj4gSlRBIEpBUiBmaWxlIG9uIHRoZSBjbGFzcyBwYXRoLiBUaGF0IHNob3VsZCBqdXN0IHdvcmsgYnV0IGlzIGNvbXBsaWNhdGVkIGJ5Cj4gYC0tYWRkLW1vZHVsZT1qYXZhLnNlLmVlYCBhcyB0aGF0IHdpbGwgY2F1c2UgdGhlIGphdmEudHJhbnNhY3Rpb24gbW9kdWxlCj4gdG8gYmUgcmVzb2x2ZWQuIFlvdSBjYW4ndCBzcGxpdCB0aGUgamF2YXgudHJhbnNhY3Rpb24gcGFja2FnZSBiZXR3ZWVuIGEKPiBtb2R1bGUgYW5kIHRoZSBjbGFzcyBwYXRoLgo+Cj4gRm9yIHRoZSBzdXJlZmlyZSBwbHVnaW4gdGhlbiBkcm9wcGluZyB0aGUgLS1hZGQtbW9kdWxlcyBzaG91bGQgYmUgbG9va2VkCj4gYXQuIFlvdSdsbCBuZWVkIHRvIGRvIHRoYXQgYW55d2F5IG9uY2UgamF2YS5zZS5lZSBnb2VzIGF3YXkuIElmIHRoZQo+IHBsdWdpbiByZWxpZXMgb24gSkFYQiB0aGVuIGFkZGluZyBhIGRlcGVuZGVuY3kgb24gdGhlIHN0YW5kYWxvbmUgdmVyc2lvbgo+IHNob3VsZCB3b3JrLgo+Cj4gLUFsYW4KPgo+Cj4KPgo+CgotLTA4OWUwODIzOTFlYzQzYjE4YTA1NWE1MDMwNzgtLQoKRnJvbSBkZXYtcmV0dXJuLTEyMzg5MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgU2VwICA4IDA2OjQ4OjUzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzg5MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFMTM4QzFBNjdGCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgIDggU2VwIDIwMTcgMDY6NDg6NTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyMjkgaW52b2tlZCBieSB1aWQgNTAwKTsgOCBTZXAgMjAxNyAwNjo0ODo1MiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTM5IGludm9rZWQgYnkgdWlkIDUwMCk7IDggU2VwIDIwMTcgMDY6NDg6NTEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMjIgaW52b2tlZCBieSB1aWQgOTkpOyA4IFNlcCAyMDE3IDA2OjQ4OjUxIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAwOCBTZXAgMjAxNyAwNjo0ODo1MSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEQ1QkNDMThFRTM2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAgOCBTZXAgMjAxNyAwNjo0ODo1MCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjQwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC40MDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgbFZ3ZGtySmxaeGNqIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJRnJpLCAgOCBTZXAgMjAxNyAwNjo0ODo0NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdyMC1mMTcwLmdvb2dsZS5jb20gKG1haWwtd3IwLWYxNzAuZ29vZ2xlLmNvbSBbMjA5Ljg1LjEyOC4xNzBdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMDg0QUE1RjZCRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgIDggU2VwIDIwMTcgMDY6NDg6NDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd3IwLWYxNzAuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgbzQyc28yNzgyODgwd3JiLjMKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAwNyBTZXAgMjAxNyAyMzo0ODo0NSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD0zbndRdGFxNUZ3R2U1TDBDd2hESmZhU3FXU0pYc3VhYkx1cmNOakY4K2tZPTsKICAgICAgICBiPUtzQWErVW90QWRRM3BHM0thajJIb2xFM0pZTzR6dXA2c2RaSnhKY2pWS203TnNvVDJDS0Vjek5DN0hrUW5VRE51dgogICAgICAgICBjZEZpMUlEZXlZa1FtYnQ5YVhiUGpucm54cHQzaGYzdnh3Wi9WcENJeVRmSEtGSTdsbTdOMFRCTkM2OGo0UElJVXU3ZwogICAgICAgICBEd2xlWlI2ZjRvdjd5azFlbUFnQko3MmlmYms4Zm1TSDR1WkpTc250NjZOdFNjdE80QlBwTzIwNkJxSU8xejViNGVUOAogICAgICAgICBzWHhOMzJ3Uk1YNGxodTZpcXZyYS9Jd3E0bGRtaFpqU1pHcWI5MnVzL0FyZjFvTTBMbTFNRW5IcUlKYTVBUnp6b01sWQogICAgICAgICBpYTRHMlhZTWIxT3AvV0QyMzNrM0dqMUZYYVZ3Z3hSQWVYRU4rNTd0RDRzM1Z1eGQ2VEt0ZktOUnNnWTBoYU5XTDk1LwogICAgICAgICBmUnFBPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD0zbndRdGFxNUZ3R2U1TDBDd2hESmZhU3FXU0pYc3VhYkx1cmNOakY4K2tZPTsKICAgICAgICBiPVRGM3dYL1JTSUZ2YXZ3MGlZSlpKODRGMkVYQjA5UWpUOFpaN2lxVzJSa3FGdXhvTS9FOW9vNE90bUdZdU1KbGYvSQogICAgICAgICB0K0ovbkZaUnR0a1ptVURGM29ON0lWb0tScW9RdzAxaVQzRHRqMWNYSUlEOHhxcFZyd0U5RzVLVHBPZ2RtSDIvc0NsZQogICAgICAgICBDeThpdGs3UmM4TFQ4WGRLTjl3WVNhUkxvdmpVR2hGRVN5SENvQzRkSG9YYjZiMkJGaU9jL0IzZUUwMkJoUjh1KzRCdQogICAgICAgICBhN3dCQVRzd1F4ZXhqVWlFOVlzcWo1OVZuZFBzTnYvSW5kMk1pU2kyUFdURkZmSWVzeHVRVVA0U2tObGZHWkthL3Z2cQogICAgICAgICBYdWMwWUE1NG9OS205eG1jUVlPQlNQN3hqTVdXSmV0Y3gwcHF4K1V6MHJxMEZweTBuRXlKcE9vZ2xDMjJOZFdRdFY1OAogICAgICAgICBJeHFnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVpZDg3amxNZnZLYlRHU0pTV0JMdG9IWVRiQ0dmdllYcnNHMlZRdGExdHNnMmJSNi9nQQoJQzZ0U0h2eVRrRXE0Qnc0cTNlVVByeFAxR29DZTJLWXIKWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFES0NOYjRIQXZiMDA1clVmV2tlZGROZ2dvaE9BbVBwUEhMaHdDenJLODdnakUrNWlPMmhWRG1kT1F2aFJBaC9jdXNsM3R2WEd4NUN1WFFZRmd2T1dNemwweFE9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xNTUuMjAyIHdpdGggU01UUCBpZCBlMTBtcjEzMTc5MzZ3cmMuMzMwLjE1MDQ4NTMzMTkwODU7CiBUaHUsIDA3IFNlcCAyMDE3IDIzOjQ4OjM5IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDxDQUt1VnpCUks1S2hFU1RQTHRnZTVjeUM5R3U4K2NXN044NE5PMytIeW83dGpQNys2VkFAbWFpbC5nbWFpbC5jb20+CkluLVJlcGx5LVRvOiA8Q0FLdVZ6QlJLNUtoRVNUUEx0Z2U1Y3lDOUd1OCtjVzdOODROTzMrSHlvN3RqUDcrNlZBQG1haWwuZ21haWwuY29tPgpGcm9tOiBFbnJpY28gT2xpdmVsbGkgPGVvbGl2ZWxsaUBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMDggU2VwIDIwMTcgMDY6NDg6MjggKzAwMDAKTWVzc2FnZS1JRDogPENBQ2NlZmdmaXhrdjNGZk5vcExVelFHSndGZTVuMThTY05nT19BNzV2S3VnTGttVUtaZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFdhbnQgdG8gY3V0IHJlbGVhc2UgVmVyc2lvbiAyLjIwLjEgaW4gU3VyZWZpcmUgcHJvamVjdApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSI5NGViMmMxYjYzYWE4NWYyNDAwNTU4YTdmNzI1IgoKLS05NGViMmMxYjYzYWE4NWYyNDAwNTU4YTdmNzI1CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpHcmVhdCEKRW5yaWNvCgpPbiBnaW8gNyBzZXQgMjAxNywgMjM6MzQgVGlib3IgRGlnYW5hIDx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+IHdyb3RlOgoKPiBIaSBBbGwsCj4KPiBJIHdvdWxkIGxpa2UgdG8gc3RvcCBkZXZlbG9wbWVudCBpbiBTdXJlZmlyZSBtYXN0ZXIgdGlsbCBWZXJzaW9uIDIuMjAuMSBbMV0KPiBpcyByZWxlYXNlZC4gVGhlIHJlYXNvbiBpcyB0aGF0IGFuIGltcG9ydGFudCBpc3N1ZSB3aXRoIE91dCBPZiBNZW1vcnkgRXJyb3IKPiBpcyBmaXhlZC4KPgo+IEkgaGF2ZSBwbGFubmVkIG9ubHkgNSBzaW1wbGUgZml4ZXMsIHRoZSBtb3N0IG9mIHRoZW0gb2ZmZXJlZCBieSBvdXIKPiBjb250cmlidXRvcnMsIGluIFZlcnNpb24gMi4yMC4yLCBhbmQgb25lIGltcG9ydGFudCBpc3N1ZSBpbiAyLjIwLjMuCj4KPiBbMV06Cj4KPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9cHJvamVjdCUyMCUzRCUyMFNVUkVGSVJFJTIwQU5EJTIwZml4VmVyc2lvbiUyMCUzRCUyMDIuMjAuMQo+Cj4KPiAtLQo+IENoZWVycwo+IFRpYm9yCj4KLS0gCgoKLS0gRW5yaWNvIE9saXZlbGxpCgotLTk0ZWIyYzFiNjNhYTg1ZjI0MDA1NThhN2Y3MjUtLQoKRnJvbSBkZXYtcmV0dXJuLTEyMzk3MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gU2VwIDExIDEyOjA1OjExIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzk3MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3RjhEODE5ODZGCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMTI6MDU6MTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4MTAxMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAxMjowNToxMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODA5MzUgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgU2VwIDIwMTcgMTI6MDU6MTEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MDkxOSBpbnZva2VkIGJ5IHVpZCA5OSk7IDExIFNlcCAyMDE3IDEyOjA1OjEwIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAxMSBTZXAgMjAxNyAxMjowNToxMCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDY0NzE2REE3QjQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDEyOjA1OjEwICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC4wOTkKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC4wOTkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBWTGphX3Y1bGNnVTkgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sIDExIFNlcCAyMDE3IDEyOjA1OjA4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd3IwLWYxODAuZ29vZ2xlLmNvbSAobWFpbC13cjAtZjE4MC5nb29nbGUuY29tIFsyMDkuODUuMTI4LjE4MF0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA4RjIwODYwRDUzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAxMjowNTowOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13cjAtZjE4MC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBrMjBzbzE0MDkxMDMzd3JlLjQKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAwNTowNTowOCAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1RZUh1Y25UQVFDWHBMWDVaN2FzREpLUWlXK0QxUlo2b0FrbTRObE55RDVZPTsKICAgICAgICBiPVhxckNEZHA5YzkrRFJaV2NRbXZFcm9aNHA4dHVWREhnMTFGTzIzUi9wR0NDQitZUHJ0M3c1My9mWTBaQ0tUMFdoWAogICAgICAgICA1OEhwNk5SVGxXTHp1ZHpTS2R3N0loWUhydktQQW1aQ0JzQkM5c3E1dTVZdDh3dmQwUE5WUC9vSjI4aGFKYmpLR3RKZwogICAgICAgICBWOG9pT25XMm9hMXdnMzJFRTVWWnF4YVZYdlc5aFhYdEZzQTcvanNDait4RHNYdjRVdTBzWThzNG5pQTd3dTJFQUhLQwogICAgICAgICBQNDd0UEFlZy9SYWVuaDlxQ1ZDTHFEK0YwMVIyOUY4SWFuTExTTERvNTU2S1JPZTJIODZnbkpxUjQvUENEblEzUk1JcgogICAgICAgICBwYkdMNXhJWFNFWU5raFBRcTZVS29TTnorSlkrVzBYMUUwY0N6clZoRlJCbytUNjZkMUp6azVoVVBhbEJCTmFjK0xORgogICAgICAgICBrckxnPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1RZUh1Y25UQVFDWHBMWDVaN2FzREpLUWlXK0QxUlo2b0FrbTRObE55RDVZPTsKICAgICAgICBiPVphbzV3QnYyaGN0NmNiVmpqZUZKRVlaTmtFaFVlV1JMa09sZlBxb0pMWWlZKzVrVU9WQlhEa2xRanVwVGI4VXY1ZQogICAgICAgICArb25sN05yU2dUWGpzRVdkb2xYQVZ4Y0lsRytic0hVTE02akRrWXh6N0d3ZGFlNGF4ZG9YcFlVb002czUvMEFaUDlqbwogICAgICAgICBWcEdLNFRZOTZEZzF3QUsyN2s4aWZWMEJRak8xRXZDMlNwYTBUZFN6WnF5SEZUNE5mUTd4Q1hhbDV3d1AzeEVIcEg2VgogICAgICAgICB5a3JjNEtXOVdlQThNc1RONXN6dXZONzNnSVVJb3RENDNidWR1ajF4VllXa0FKRXd0TkM0MmU5NUhlNENJVm9tVHZmOAogICAgICAgICBLLzNsR2xJOGRaQkp3alhUbG5qcU9KVDlXcHowcFUvWEJwaEg4NUtkeXZOeUUxNVdEVGgxNTd5aWZ4cmVDQjVtZzhGNwogICAgICAgICBkZG1RPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVnZDBaL0R0YUx1VmVTTHlQNkZXNWRvckZqSzkxcXhXOFZ6UCs0Zjk3eGxpOVpOWGo0cAoJV0pDaFZGcFNuYWxqNUVkRlRmUGRrYVVVWko3b3pOL0p5Skk9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBREtDTmI0WHROSUs1bmlwRUt0b3ZvNU9YUEhCUHNLa0FsZGlSbWhPamRNemR1aEdEK2NQaWNaQVFnQW8yL2ExSzNTTEpXRjQ3MkZBSllKL0E4dENSYzE3ekQ0PQpYLVJlY2VpdmVkOiBieSAxMC4yMjMuMTM5LjIxMiB3aXRoIFNNVFAgaWQgdzIwbXI4NjEzODQ4d3JhLjI3NS4xNTA1MTMxNTA3ODI1OwogTW9uLCAxMSBTZXAgMjAxNyAwNTowNTowNyAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMjIzLjE1NS4xOTUgd2l0aCBIVFRQOyBNb24sIDExIFNlcCAyMDE3IDA1OjA1OjA3IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0FLdVZ6QlRqTk9iUUxtdG84Zjk3Zk8xeCtUMWkxX29UejdNX08wM1ZrV2FDazdGXytRQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0FLdVZ6QlRqTk9iUUxtdG84Zjk3Zk8xeCtUMWkxX29UejdNX08wM1ZrV2FDazdGXytRQG1haWwuZ21haWwuY29tPgpGcm9tOiBFbnJpY28gT2xpdmVsbGkgPGVvbGl2ZWxsaUBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTEgU2VwIDIwMTcgMTQ6MDU6MDcgKzAyMDAKTWVzc2FnZS1JRDogPENBQ2NlZmdmaktUNz1TRGdPRzNaVWplTmYteXBVS3VvX25pNkFHMEtob0VWN1J5LVFyQUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBTdXJlZmlyZSBQbHVnaW4gdmVyc2lvbiAyLjIwLjEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iZjQwMzA0NWU5ZDQwZGQ0MDYyMDU1OGU4YmM3OSIKCi0tZjQwMzA0NWU5ZDQwZGQ0MDYyMDU1OGU4YmM3OQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKKzEgKG5vbiBiaW5kaW5nKQoKcnVuIHVuaXQgdGVzdHMgb24gc3VyZWZpcmUgcHJvamVjdCBpdHNlbGYKCm9uICBKREsgOSsxODEgcnVuIHVuaXQgdGVzdHMgb2Ygb3RoZXIgSmF2YTggcHJvamVjdHMgd2hpY2ggcmVxdWlyZWQKamF2YS5zZS5lZSBtb2R1bGUgdG8gYmUgcHJlc2VudAoKVGhhbmsgeW91ICEKCkVucmljbwoKCjIwMTctMDktMTEgNTozMyBHTVQrMDI6MDAgVGlib3IgRGlnYW5hIDx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+OgoKPiBIaSwKPgo+IFdlIHNvbHZlZCAyNCBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhPwo+IHByb2plY3RJZD0xMjMxNzkyNyZ2ZXJzaW9uPTEyMzQwMjk3Cj4KPiBUaGVyZSBhcmUgMTAxIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2kjaXNzdWVzLz9qcWw9cHJvamVjdCslCj4gM0QrU1VSRUZJUkUrQU5EK3N0YXR1cyslM0QrT3BlbitPUkRFUitCWStwcmlvcml0eStERVNDCj4KPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2Ni8KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiAxMzY2L29yZy9hcGFjaGUvbWF2ZW4vc3VyZWZpcmUvc3VyZWZpcmUvMi4yMC4xL3N1cmVmaXJlLTIuMjAuMS1zb3VyY2UtCj4gcmVsZWFzZS56aXAKPgo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IG1hdmVuLXN1cmVmaXJlLXBsdWdpbi0yLjIwLjEtc2l0ZS1zb3VyY2UuemlwIHNoYTE6Cj4gNDE4N2E3OTMyMjY4YzdhZDQ2Nzk3MzI1NGQ4NzU4NDA4NWUzMDVjMQo+Cj4gU3RhZ2luZyBzaXRlOgo+IGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3N1cmVmaXJlLWFyY2hpdmVzL3N1cmVmaXJlLUxBVEVTVC8KPgo+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+IGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPgo+IFZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCj4KPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPgo+IC0tCj4gQ2hlZXJzCj4gVGlib3IKPgoKLS1mNDAzMDQ1ZTlkNDBkZDQwNjIwNTU4ZThiYzc5LS0KCkZyb20gZGV2LXJldHVybi0xMjQ3NDUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIERlYyAgNiAwOTozNzo1NyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3NDUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgODI3NUUxMDVENAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsICA2IERlYyAyMDE3IDA5OjM3OjU3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTQ1IGludm9rZWQgYnkgdWlkIDUwMCk7IDYgRGVjIDIwMTcgMDk6Mzc6NTcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQzNyBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IERlYyAyMDE3IDA5OjM3OjU3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDE5IGludm9rZWQgYnkgdWlkIDk5KTsgNiBEZWMgMjAxNyAwOTozNzo1NiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMDYgRGVjIDIwMTcgMDk6Mzc6NTYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA5OTIzNTFBMEI5NQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgIDYgRGVjIDIwMTcgMDk6Mzc6NTUgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC45MDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuOTAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgNXN6ZGdRTFh4VDVkIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJV2VkLCAgNiBEZWMgMjAxNyAwOTozNzo1NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdyMC1mMTc3Lmdvb2dsZS5jb20gKG1haWwtd3IwLWYxNzcuZ29vZ2xlLmNvbSBbMjA5Ljg1LjEyOC4xNzddKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQjFFOTU1RjM0MQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgIDYgRGVjIDIwMTcgMDk6Mzc6NTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd3IwLWYxNzcuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgbzJzbzMxNjk5ODJ3cm8uNQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDA2IERlYyAyMDE3IDAxOjM3OjUzIC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD01VkQrNEJQU0dVQXZoRTBOMGRRODl1WGVnYnF6emFUa203OGhkS2lPUjlrPTsKICAgICAgICBiPU5yaGFQN1FhK2twbUp3aXZ2OGlOSVkvNGxORHRTWjZ3dUEvei9tcjdUOFZDZ0NEVWY4QlRGSG41R24xWGljMGcwNAogICAgICAgICB0UzREbkpQV3laYVA4bHNMTWdmd29IQXI2elg4ZDFNUkl6QmY3NUdsVE1mODdhT0szS01UTlluOHNPOVBsQjV1dUZmUQogICAgICAgICA5bnNYVC9jemtlMHowVzlLOWoreDNnOEx1NmhjNHh5U2ZJdFMvNHN2aTI3VkNTYitCV1ZJcUxsOUliUTRqU2ZOZ1lqKwogICAgICAgICBJK2ZVK3haQUQxTFBRYXgrSXJCazRFbFVVRzJCV2wycnNoeTMwMkRYRUNuK3poTDhLd3ZaRmxBSktXaG5JbGVZb2J3QgogICAgICAgICBzWkZtaTUwREk4NTV4cFRRN2kzZ0dDY0VvNnNzaEdCaHUySUFuMXdmQ3gyUzc4R0ptTUcyRGhIM2doSkNOYmRTN1MvZAogICAgICAgICBhVHhnPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD01VkQrNEJQU0dVQXZoRTBOMGRRODl1WGVnYnF6emFUa203OGhkS2lPUjlrPTsKICAgICAgICBiPU9TSE9MRkx3NHpUVllHZS9BKytZa0VyakkrMDBvY0pFd01WMDBSUjJjUzdhbzRDWHdjZDN0SjN3Q1ZZaUlaeGEzaAogICAgICAgICBoM0prV2dNdDVTUThNK2lqK2h6dmpMUlZXN1cyUEtHV0ZXWWduRmdTaU5ZbUwwdTN5NUZEdmROZUI3V2hnekNCbTNHSwogICAgICAgICBUWEZYOUlWNi8vd2s2aEdmM1BMVGlvOGxiQmorekI4UXU1WXdORERXSGRrQ25NSnlxcVFINDZHUlh4c0ZFWUd1ZG90RAogICAgICAgICBBSVI3bkJkeEhtSGx2UWVGM1dvTGtIdXZrdXB5bzIrYmhVS0F4RE5lTnFMTXA0c2E3aVdVYjJkTFAyNjk5SWJqMGliaAogICAgICAgICA3T1NhOVpEUjN3ZTRidEVhejJVanRENFM3NGdNRVlOVjhHUWNsZkpqcHh4blFXWnNwdS9ZbDRRMXNNY3Z0SUd5WGNieQogICAgICAgICBHZVd3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg0ZEFMZWNDa0VqTnpCaWlXdlVBaGc1a3hUWVhEVGoxL2xVamtzU1NwMW0zc3NGeWUwRAoJbXRrdnNDUnhiaDRDVWREaEJab1VPUGthdit0RUx1RFdPL1IwOHRuakI5NzkKWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TVozZXZUSXhMM2dRcy92NXVGcW5oeXJHUFJva1MrMGN3dkM0c3hSTHdxeFBLdkdNYnM1Q3crSjJ2c0tDQUVpTHl6VzZZN1NtQ3BNdVBod2loV2tLU2c9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xODUuMyB3aXRoIFNNVFAgaWQgazNtcjE5NzcwODQzd3JmLjQwLjE1MTI1NTMwNzI5NTY7CiBXZWQsIDA2IERlYyAyMDE3IDAxOjM3OjUyIC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yMjMuMjAxLjE1IHdpdGggSFRUUDsgV2VkLCA2IERlYyAyMDE3IDAxOjM3OjUyIC0wODAwIChQU1QpCkZyb206IEVucmljbyBPbGl2ZWxsaSA8ZW9saXZlbGxpQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCA2IERlYyAyMDE3IDEwOjM3OjUyICswMTAwCk1lc3NhZ2UtSUQ6IDxDQUNjZWZnZnd5c0RDKz1XY0ttUEFKa0xrNkZmVWpyTmhaYmhfczk1ZmtUN0F1U2prQ2dAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFN1cmVmaXJlIGFuZCBKVW5pdCBDYXRlZ29yaWVzIC0gZ3JvdXBzIGluIHJlYWN0b3IKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iZjQwMzA0NWZhNTJhOWUxYWU1MDU1ZmE4YjRjMSIKCi0tZjQwMzA0NWZhNTJhOWUxYWU1MDU1ZmE4YjRjMQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKSGksCkkgd291bGQgbGtlIHRvIHVzZSB0aGUgY2F0ZWdvcmllcyBmYWNpbGl0eSB3aXRoIEpVbml0IDQuMTIgaW4gYSByZWFjdG9yCnByb2plY3QsIEkgYW0gZmluZGluZyBzb21lIGlzc3VlLCBidXQgdGhleSBzZWVtIHRvIG1lIHNvIGJhc2ljIHRoYXQgbWF5YmUKaXQgaXMgb25seSBhIGxhY2sgb2YgZG9jdW1lbnRhdGlvbiBvciB0aGF0IHdlIGNhbiBwcm92aWRlIHNvbWUgbWlub3IgZml4IGluCm9yZGVyIHRvIG1ha2UgbGlmZSBlYXNpZXI6CgoxKSBJbiBhIHJlYWN0b3IgYSB3b3VsZCBsaWtlIHRvIHJ1biBtdm4gdGVzdAotRGdyb3Vwcz1tYWduZXdzLnRlc3Rncm91cHMuTWluaW11bUFjY2VwdGFuY2UgIGJ1dCBzdXJlZmlyZSBjcmFzaGVzIGlmIHRoZQpjbGFzcyBpcyBub3QgcmVhY2hhYmxlIGluIHNvbWUgbW9kdWxlCgpvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlLnV0aWwuU3VyZWZpcmVSZWZsZWN0aW9uRXhjZXB0aW9uOgpqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uOyBuZXN0ZWQgZXhjZXB0aW9uIGlzCmphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb246IG51bGwKamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbgogICAgYXQgc3VuLnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZTAoTmF0aXZlIE1ldGhvZCkKICAgIGF0CnN1bi5yZWZsZWN0Lk5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmphdmE6NjIpCiAgICBhdApzdW4ucmVmbGVjdC5EZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShEZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmphdmE6NDMpCiAgICBhdCBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2QuaW52b2tlKE1ldGhvZC5qYXZhOjQ5OCkKICAgIGF0Cm9yZy5hcGFjaGUubWF2ZW4uc3VyZWZpcmUudXRpbC5SZWZsZWN0aW9uVXRpbHMuaW52b2tlTWV0aG9kV2l0aEFycmF5KFJlZmxlY3Rpb25VdGlscy5qYXZhOjE4OSkKICAgIGF0Cm9yZy5hcGFjaGUubWF2ZW4uc3VyZWZpcmUuYm9vdGVyLlByb3ZpZGVyRmFjdG9yeSRQcm92aWRlclByb3h5Lmludm9rZShQcm92aWRlckZhY3RvcnkuamF2YToxNjUpCiAgICBhdApvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlLmJvb3Rlci5Qcm92aWRlckZhY3RvcnkuaW52b2tlUHJvdmlkZXIoUHJvdmlkZXJGYWN0b3J5LmphdmE6ODUpCiAgICBhdApvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlLmJvb3Rlci5Gb3JrZWRCb290ZXIucnVuU3VpdGVzSW5Qcm9jZXNzKEZvcmtlZEJvb3Rlci5qYXZhOjExNSkKICAgIGF0Cm9yZy5hcGFjaGUubWF2ZW4uc3VyZWZpcmUuYm9vdGVyLkZvcmtlZEJvb3Rlci5tYWluKEZvcmtlZEJvb3Rlci5qYXZhOjc1KQpDYXVzZWQgYnk6IGphdmEubGFuZy5SdW50aW1lRXhjZXB0aW9uOiBVbmFibGUgdG8gbG9hZCBjYXRlZ29yeToKbWFnbmV3cy50ZXN0Z3JvdXBzLk1pbmltdW1BY2NlcHRhbmNlCiAgICBhdApvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlLmdyb3VwLm1hdGNoLlNpbmdsZUdyb3VwTWF0Y2hlci5sb2FkR3JvdXBDbGFzc2VzKFNpbmdsZUdyb3VwTWF0Y2hlci5qYXZhOjEzNCkKICAgIGF0Cm9yZy5hcGFjaGUubWF2ZW4uc3VyZWZpcmUuY29tbW9uLmp1bml0NDguRmlsdGVyRmFjdG9yeS5jcmVhdGVHcm91cEZpbHRlcihGaWx0ZXJGYWN0b3J5LmphdmE6OTIpCiAgICBhdApvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlLmp1bml0Y29yZS5KVW5pdENvcmVQcm92aWRlci5jcmVhdGVKVW5pdDQ4RmlsdGVyKEpVbml0Q29yZVByb3ZpZGVyLmphdmE6MTgzKQogICAgYXQKb3JnLmFwYWNoZS5tYXZlbi5zdXJlZmlyZS5qdW5pdGNvcmUuSlVuaXRDb3JlUHJvdmlkZXIuaW52b2tlKEpVbml0Q29yZVByb3ZpZGVyLmphdmE6MTE1KQogICAgLi4uIDkgbW9yZQpDYXVzZWQgYnk6IGphdmEubGFuZy5DbGFzc05vdEZvdW5kRXhjZXB0aW9uOgptYWduZXdzLnRlc3Rncm91cHMuTWluaW11bUFjY2VwdGFuY2UKICAgIGF0IGphdmEubmV0LlVSTENsYXNzTG9hZGVyLmZpbmRDbGFzcyhVUkxDbGFzc0xvYWRlci5qYXZhOjM4MSkKICAgIGF0IGphdmEubGFuZy5DbGFzc0xvYWRlci5sb2FkQ2xhc3MoQ2xhc3NMb2FkZXIuamF2YTo0MjQpCiAgICBhdCBzdW4ubWlzYy5MYXVuY2hlciRBcHBDbGFzc0xvYWRlci5sb2FkQ2xhc3MoTGF1bmNoZXIuamF2YTozMzEpCiAgICBhdCBqYXZhLmxhbmcuQ2xhc3NMb2FkZXIubG9hZENsYXNzKENsYXNzTG9hZGVyLmphdmE6MzU3KQogICAgYXQKb3JnLmFwYWNoZS5tYXZlbi5zdXJlZmlyZS5ncm91cC5tYXRjaC5TaW5nbGVHcm91cE1hdGNoZXIubG9hZEdyb3VwQ2xhc3NlcyhTaW5nbGVHcm91cE1hdGNoZXIuamF2YToxMzApCiAgICAuLi4gMTIgbW9yZQoKClNlY29uZCBwcm9ibGVtOgppZiBpbiB0aGUgcmVhY3RvciB0aGVyZSBpcyBhIG1vZHVsZSB3aGljaCBkb2VzIG5vdCBoYXZlIGF0IGxlYXN0IG9uZSB0ZXN0Cm1hcmtlZCB3aXRoIHRoZSBjYXRlZ29yeSB0aGUgYnVpbGQgZmFpbHMgYW5kIHRoZXJlIGlzIG5vIHdheSB0byBvdmVycmlkZQp0aGlzIGJlaGF2aW91ciBldmVudCB3aXRoIC1EZmFpbElmTm9UZXN0cz1mYWxzZQotRHVyZWZpcmUuZmFpbElmTm9TcGVjaWZpZWRUZXN0cz1mYWxzZQoKamF2YS5sYW5nLkV4Y2VwdGlvbjogTm8gdGVzdHMgZm91bmQgbWF0Y2hpbmcKKm1hZ25ld3MudGVzdGdyb3Vwcy5NaW5pbXVtQWNjZXB0YW5jZSBmcm9tCm9yZy5qdW5pdC5ydW5uZXIuUmVxdWVzdCQxQDFjNmI2NDc4CiAgICBhdApvcmcuanVuaXQuaW50ZXJuYWwucmVxdWVzdHMuRmlsdGVyUmVxdWVzdC5nZXRSdW5uZXIoRmlsdGVyUmVxdWVzdC5qYXZhOjM1KQogICAgYXQgb3JnLmp1bml0LnJ1bm5lci5KVW5pdENvcmUucnVuKEpVbml0Q29yZS5qYXZhOjEzOCkKICAgIGF0Cm9yZy5hcGFjaGUubWF2ZW4uc3VyZWZpcmUuanVuaXRjb3JlLkpVbml0Q29yZVdyYXBwZXIuZXhlY3V0ZShKVW5pdENvcmVXcmFwcGVyLmphdmE6NjIpCiAgICBhdApvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlLmp1bml0Y29yZS5KVW5pdENvcmVQcm92aWRlci5pbnZva2UoSlVuaXRDb3JlUHJvdmlkZXIuamF2YToxMzkpCiAgICBhdCBzdW4ucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlMChOYXRpdmUgTWV0aG9kKQogICAgYXQKc3VuLnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShOYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuamF2YTo2MikKICAgIGF0CnN1bi5yZWZsZWN0LkRlbGVnYXRpbmdNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlKERlbGVnYXRpbmdNZXRob2RBY2Nlc3NvckltcGwuamF2YTo0MykKICAgIGF0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZva2UoTWV0aG9kLmphdmE6NDk4KQogICAgYXQKb3JnLmFwYWNoZS5tYXZlbi5zdXJlZmlyZS51dGlsLlJlZmxlY3Rpb25VdGlscy5pbnZva2VNZXRob2RXaXRoQXJyYXkoUmVmbGVjdGlvblV0aWxzLmphdmE6MTg5KQogICAgYXQKb3JnLmFwYWNoZS5tYXZlbi5zdXJlZmlyZS5ib290ZXIuUHJvdmlkZXJGYWN0b3J5JFByb3ZpZGVyUHJveHkuaW52b2tlKFByb3ZpZGVyRmFjdG9yeS5qYXZhOjE2NSkKICAgIGF0Cm9yZy5hcGFjaGUubWF2ZW4uc3VyZWZpcmUuYm9vdGVyLlByb3ZpZGVyRmFjdG9yeS5pbnZva2VQcm92aWRlcihQcm92aWRlckZhY3RvcnkuamF2YTo4NSkKICAgIGF0Cm9yZy5hcGFjaGUubWF2ZW4uc3VyZWZpcmUuYm9vdGVyLkZvcmtlZEJvb3Rlci5ydW5TdWl0ZXNJblByb2Nlc3MoRm9ya2VkQm9vdGVyLmphdmE6MTE1KQogICAgYXQKb3JnLmFwYWNoZS5tYXZlbi5zdXJlZmlyZS5ib290ZXIuRm9ya2VkQm9vdGVyLm1haW4oRm9ya2VkQm9vdGVyLmphdmE6NzUpCgpJZGVhcyA/ClNob3VsZCBJIGZpbGUgSklSQXMgPwpJIHdpbGwgYmUgaGFwcHkgdG8gY29udHJpYnV0ZSBwYXRjaGVzIGlmIHRoZXNlIGFyZSByZWFsIHByb2JsZW1zLgpJIGFtIHJ1bm5pbmcgbGF0ZXN0IGFuZCBncmVhdGVzdCByZWxlYXNlZCBzdXJlZmlyZSAyLjIwLjEKCkNoZWVycwpFbnJpY28KCi0tZjQwMzA0NWZhNTJhOWUxYWU1MDU1ZmE4YjRjMS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MDAyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBTZXAgMTMgMDY6NTM6NDcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDAyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDgwRjhFMUE5QTAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAxMyBTZXAgMjAxNyAwNjo1Mzo0NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg1MjAyIGludm9rZWQgYnkgdWlkIDUwMCk7IDEzIFNlcCAyMDE3IDA2OjUzOjQ3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NDc5NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMyBTZXAgMjAxNyAwNjo1Mzo0NiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg0Nzg0IGludm9rZWQgYnkgdWlkIDk5KTsgMTMgU2VwIDIwMTcgMDY6NTM6NDYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDEzIFNlcCAyMDE3IDA2OjUzOjQ2ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQzZERUYxQTczRUYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3IDA2OjUzOjQ1ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi4xOApYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjE4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMSwgVVJJQkxfQkxPQ0tFRD0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCAwbWtSR2VDTzYyUFcgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsIDEzIFNlcCAyMDE3IDA2OjUzOjQzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtcXQwLWYxNzguZ29vZ2xlLmNvbSAobWFpbC1xdDAtZjE3OC5nb29nbGUuY29tIFsyMDkuODUuMjE2LjE3OF0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBFMkEzNDVGQzIxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMyBTZXAgMjAxNyAwNjo1Mzo0MiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1xdDAtZjE3OC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBzMThzbzI4NTE0OTM4cXRhLjMKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxMiBTZXAgMjAxNyAyMzo1Mzo0MiAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1GUlBsU0VyMkV0bXVpN0NUc1YyQlZIK1d3blh4Y1dOYTVWeW9CYk1Xb2NNPTsKICAgICAgICBiPVpUMGNGL3FIZHd6RThPODZYUDd4ZWRjL0loYTA0aTczRUNaMlRWM0ZsT1VXS2xZR3ZuZ0t0amtOUFlPbUFkK1VWZwogICAgICAgICBlNDdlZU13ZFpMQ09FOG1obWlZdkFpODZKeURvcm1sR1lmd1hzaXJibDRDTkl1by9XK1hPMmpDbE50TC90bDZkSWNwVAogICAgICAgICA4Y2REbWtBd2pBTGtmeWVPMjhld0NHaWZKTC9OTjNFRWtqVEZvcUJFMlVoQVdBWTdLdC8vdEcxRXFWWGk5OU9FdERlUwogICAgICAgICBRcFp5Rnk4OHdPeVl6ZkhmMys5QWhtSFh1d0ZLZ29yZERpT3lGVEpWeE9Hem9QNVEvTHV2bEZVR3pveWVNUHVPMUJoMgogICAgICAgICBPSm9UblJMYW9Sdkh2aklzMnNpdjNpMnJReDhmaUtZeUZjZmNXVE9MWURMeGJIZGpHc2w2OTVXdmcyQXIxK0hTUmIrdwogICAgICAgICBoV2Z3PT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1GUlBsU0VyMkV0bXVpN0NUc1YyQlZIK1d3blh4Y1dOYTVWeW9CYk1Xb2NNPTsKICAgICAgICBiPW1JTndKNEVkL1A1WUlwc1pSMkd2Rno2ZUducG5nZmx1aGd6c0pRZ1hWV2Rua2JLM2ZMVk4rc2ZaeHMyR3dNcEN6WQogICAgICAgICBxTXd5SS8vZXVDeVFkQVBib3BPN1NyVmZvWFFWeEtaU2FIMTIxTllUSGhxK0h0aE1mamNTTm5lMVlkMi9pQklRZVZ3TwogICAgICAgICBNT2ZpL2dWYmwramZQOTVFQWRmSFlWUi9LWTExYWRiK01iRWxSNll5dWJucE5vR3IxZmxQTm1FeUVlUE85MHNQQmxjbAogICAgICAgICBXbGRXRUpBS253eDZPV0hVbktWWDc1UEhLcE81elYvdU4zdXFydzZoSUR3UjhaY04vemdCZGY2M2djQlk1Zjhxa2t1RgogICAgICAgICBWcmFGaUo4QlQrTEY0VzJxTGNkRXNpUnVtUXZ2aVNZNExJQWJQSGZ3QlZ3UjhqWUZSOFdSTnpsd3FNeTIyTDFoR1NUVgogICAgICAgICBjTmhRPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVqTjY3SGZndFoyZ1JkbG5jamdOWVZ4U1RIb3Q2Nm53SXNzZ2VaWGRuQitNK0l2VjlkQgoJSWRHRlpSZmdqQUxBSG9qRmhNb1JSczB6VlVvL1JKUGY5ZmhiYUFnPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQmZ4Ynpwb2FFdWcvY21MYjdZSTh6a28yVmM0SnhtbTVEMitrbmlBRTA3aTFOMTJoTVdTR1dQZjhKSWpRM2tKYWhpdUtFSVErRFEwMW9aUFlOYytLbz0KWC1SZWNlaXZlZDogYnkgMTAuMjAwLjQ3LjExNCB3aXRoIFNNVFAgaWQgazQ3bXIyNjMwMTQwN3F0YS4xMDkuMTUwNTI4NTYyMTU5NzsKIFR1ZSwgMTIgU2VwIDIwMTcgMjM6NTM6NDEgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjIwMC40OC4yMjYgd2l0aCBIVFRQOyBUdWUsIDEyIFNlcCAyMDE3IDIzOjUzOjQxIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0FLdVZ6QlN0R0Nva3h1K190TlEtcTUrbnl1d251YVY0MzJYejloT25mMVZNTks0cTJRQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0FLdVZ6QlRqTk9iUUxtdG84Zjk3Zk8xeCtUMWkxX29UejdNX08wM1ZrV2FDazdGXytRQG1haWwuZ21haWwuY29tPgogPENBQ2NlZmdmaktUNz1TRGdPRzNaVWplTmYteXBVS3VvX25pNkFHMEtob0VWN1J5LVFyQUBtYWlsLmdtYWlsLmNvbT4KIDxDQVBDampuR0RpcWUrRWJmVlJLQzl5V1FiK2pWRG5ZSzA4NF9lNzRtTkJZdmJVdVZRbXdAbWFpbC5nbWFpbC5jb20+IDxDQUt1VnpCU3RHQ29reHUrX3ROUS1xNStueXV3bnVhVjQzMlh6OWhPbmYxVk1OSzRxMlFAbWFpbC5nbWFpbC5jb20+CkZyb206IFRob21hcyBDb2xsaWdub24gPHRvbWlwaG9uZTNnQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAxMyBTZXAgMjAxNyAwODo1Mzo0MSArMDIwMApNZXNzYWdlLUlEOiA8Q0FEenk3akFnaGZONHlhZmdCU1UyNXl2cXVQY3dxa1pmS1M3ZjZkUEZ6WlJ5MnV1WXl3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIFN1cmVmaXJlIFBsdWdpbiB2ZXJzaW9uIDIuMjAuMQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTEzZDc0NjhjMmM5MTEwNTU5MGM5ZTcxIgoKLS0wMDFhMTEzZDc0NjhjMmM5MTEwNTU5MGM5ZTcxCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpIZWxsbwoKKzEgZm9yIG1lCgoyMDE3LTA5LTEyIDEwOjI5IEdNVCswMjowMCBUaWJvciBEaWdhbmEgPHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbT46Cgo+IEhpIERhbiwKPiBZZXMgeW91IGNhbiB1c2Ugc3VjaCB2ZXJzaW9uLiBUaGUgVVJMIGZvciBzbmFwc2hvdHMgaXMKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9zbmFwc2hvdHMKPgo+IE9uIFR1ZSwgU2VwIDEyLCAyMDE3IGF0IDU6MDEgQU0sIERhbiBUcmFuIDxkYW50cmFuQGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiA+IElzIHRoZXJlIGEgc25hcHNob3QgaSBjYW4gdGVzdCB3aXRoIG15IHByb2R1Y3Rpb24/IG9ubHkgc2VlIDIuMjEtU05BUFNIT1QKPiA+Cj4gPiBUaGFua3MKPiA+Cj4gPiAtRGFuCj4gPgo+ID4gT24gTW9uLCBTZXAgMTEsIDIwMTcgYXQgNTowNSBBTSwgRW5yaWNvIE9saXZlbGxpIDxlb2xpdmVsbGlAZ21haWwuY29tPgo+ID4gd3JvdGU6Cj4gPgo+ID4gPiArMSAobm9uIGJpbmRpbmcpCj4gPiA+Cj4gPiA+IHJ1biB1bml0IHRlc3RzIG9uIHN1cmVmaXJlIHByb2plY3QgaXRzZWxmCj4gPiA+Cj4gPiA+IG9uICBKREsgOSsxODEgcnVuIHVuaXQgdGVzdHMgb2Ygb3RoZXIgSmF2YTggcHJvamVjdHMgd2hpY2ggcmVxdWlyZWQKPiA+ID4gamF2YS5zZS5lZSBtb2R1bGUgdG8gYmUgcHJlc2VudAo+ID4gPgo+ID4gPiBUaGFuayB5b3UgIQo+ID4gPgo+ID4gPiBFbnJpY28KPiA+ID4KPiA+ID4KPiA+ID4gMjAxNy0wOS0xMSA1OjMzIEdNVCswMjowMCBUaWJvciBEaWdhbmEgPHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbT46Cj4gPiA+Cj4gPiA+ID4gSGksCj4gPiA+ID4KPiA+ID4gPiBXZSBzb2x2ZWQgMjQgaXNzdWVzOgo+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiA+ID4gPiBwcm9qZWN0SWQ9MTIzMTc5MjcmdmVyc2lvbj0xMjM0MDI5Nwo+ID4gPiA+Cj4gPiA+ID4gVGhlcmUgYXJlIDEwMSBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pI2lzc3Vlcy8/anFsPXByb2plY3QrJQo+ID4gPiA+IDNEK1NVUkVGSVJFK0FORCtzdGF0dXMrJTNEK09wZW4rT1JERVIrQlkrcHJpb3JpdHkrREVTQwo+ID4gPiA+Cj4gPiA+ID4gU3RhZ2luZyByZXBvOgo+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjYvCj4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gPiA+ID4gMTM2Ni9vcmcvYXBhY2hlL21hdmVuL3N1cmVmaXJlL3N1cmVmaXJlLzIuMjAuMS8KPiBzdXJlZmlyZS0yLjIwLjEtc291cmNlLQo+ID4gPiA+IHJlbGVhc2UuemlwCj4gPiA+ID4KPiA+ID4gPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiA+ID4gPiBtYXZlbi1zdXJlZmlyZS1wbHVnaW4tMi4yMC4xLXNpdGUtc291cmNlLnppcCBzaGExOgo+ID4gPiA+IDQxODdhNzkzMjI2OGM3YWQ0Njc5NzMyNTRkODc1ODQwODVlMzA1YzEKPiA+ID4gPgo+ID4gPiA+IFN0YWdpbmcgc2l0ZToKPiA+ID4gPiBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9zdXJlZmlyZS1hcmNoaXZlcy9zdXJlZmlyZS1MQVRFU1QvCj4gPiA+ID4KPiA+ID4gPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiA+ID4gPiBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtCj4gdGVzdGluZy1yZWxlYXNlcy5odG1sCj4gPiA+ID4KPiA+ID4gPiBWb3RlIG9wZW4gZm9yIDcyIGhvdXJzLgo+ID4gPiA+Cj4gPiA+ID4gWyBdICsxCj4gPiA+ID4gWyBdICswCj4gPiA+ID4gWyBdIC0xCj4gPiA+ID4KPiA+ID4gPiAtLQo+ID4gPiA+IENoZWVycwo+ID4gPiA+IFRpYm9yCj4gPiA+ID4KPiA+ID4KPiA+Cj4KPgo+Cj4gLS0KPiBDaGVlcnMKPiBUaWJvcgo+CgotLTAwMWExMTNkNzQ2OGMyYzkxMTA1NTkwYzllNzEtLQoKRnJvbSBkZXYtcmV0dXJuLTEyMzk5OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgU2VwIDEzIDA2OjAwOjIxIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzk5OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3MTkzNzFBODJECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMTMgU2VwIDIwMTcgMDY6MDA6MjEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2NzQ5MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMyBTZXAgMjAxNyAwNjowMDoyMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjczMTYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTMgU2VwIDIwMTcgMDY6MDA6MjEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2NzA4MSBpbnZva2VkIGJ5IHVpZCA5OSk7IDEzIFNlcCAyMDE3IDA2OjAwOjIwIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAxMyBTZXAgMjAxNyAwNjowMDoyMCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDFBN0JFMTg0MDBBCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMyBTZXAgMjAxNyAwNjowMDoyMCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDMuODc5ClgtU3BhbS1MZXZlbDogKioqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0zLjg3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUZSRUVNQUlMX1JFUExZPTEsIEhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBMa3ZQZXFpc2pnSUogZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsIDEzIFNlcCAyMDE3IDA2OjAwOjE4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtcXQwLWYxNzAuZ29vZ2xlLmNvbSAobWFpbC1xdDAtZjE3MC5nb29nbGUuY29tIFsyMDkuODUuMjE2LjE3MF0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBCQUE1QzYwRjA2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMyBTZXAgMjAxNyAwNjowMDoxNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1xdDAtZjE3MC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBpNTBzbzMwMjU1NjM0cXRmLjAKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxMiBTZXAgMjAxNyAyMzowMDoxNiAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1BZ010YTBoMG54K0pIUWlaUzc3dU00a2lERDlTdnZUTlJ6eWVQY2QvbGpjPTsKICAgICAgICBiPUpzb3BWQnB2dTZFRUNJM1o1QmZvQXFKdHBqQ3hOTjRtMzRUNGlBSlFxSHhGbHpJUnpTMHJyK1NyS0JXc0hNdjlQbQogICAgICAgICBiT2ZDK2dBMGZucXFLK3hWWEVBd20vdnoxU1lwTE1NUnQ0TitEM3BGNUdyVTFibXpiTFJjSVlaMUc5aFdpUnFRNW5uNAogICAgICAgICBuMFBNZ056NFg1MkNyU2c5b3Q3c1laZHQ1c2c2QlErU0pHVXUvWFlRYlFVRlJwQTB1MGhCRDZQSmk3WWVrdkVwL3RiQgogICAgICAgICBCL2JnK3JVRHBpa2xBUlkvR25MNnF3dTNFYVRKZ3lOMmRNRmFXeFZCWkZOUDVCbXpQVFI1djRVSkVSSm5hcE10ZUNCZQogICAgICAgICBQSlgwOWJaZElGdE4xS0F1QXVkUWxaMnI1akR4ZFVhNnNMcmtoRWN6ekFnS0lKTHRxaGgvVHFDeDl0N3o3TW4vbDQ4NwogICAgICAgICBSSmJRPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1BZ010YTBoMG54K0pIUWlaUzc3dU00a2lERDlTdnZUTlJ6eWVQY2QvbGpjPTsKICAgICAgICBiPUE4MU5FdGlHMGFRelBUVEdDUS9PdUZ4MGNOcDRoVzRzQk4wRUhlWXNLS3l4UlNwMGNNOVRTVjkvWmJydnJ0T0IySwogICAgICAgICBOajlDenFMOXY0WGFtWDQvdUJrelhoRExyVXlzandxanZwalJzbGwwMWlaN1RaZmFDTHhhZ093OTZYdTk1SzFteTFKTgogICAgICAgICBBYUZiTUdWNFl2VFlhQ0NrWnV5Vk1xTVc3RXNKNzdiTlMxeUhzMjVFTTRkKzVUOTE5cy8xYjJrVlMrMmYzZTNpbHBKSgogICAgICAgICBCUm9QSG9OZGdvVTZRaU9iMHpCUWZQRnFaNk85T2tLc0crTnJ6Zlk1K3R2S2hHSlN3UEtjM2ZxQTNDQjVKdC81RjZ3ZQogICAgICAgICBaekgxeVBCY2kyUnNZZ2JPdWZncUYxUWFqeTFnck1SK1FYT1lUeG1KdktpMGZOa3RzSkc1aFJyWTFOZ1VFUmdiNkVQMwogICAgICAgICBpdjd3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVnbmhMZ1hJWE8xOFZGbUxqZzZYb3ZFSWpuczRSc29HOUJlc2dSd3ErcGFPUC9kZEErYwoJbkhZTThiMzBYb3RRTnAxOTVQM1ZqK3ZWbUtmUm5sTjZOeHJqa0FBPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQkxTMkFqRFBub3NkWE1DeVFtRVdvM3IwbkZVa01LY2lqVVBCZktCbUM5RmhEZ0o4c1BVYWF3bzBZbGFGTytKWGJYc29YNWpiU3VLVFFydFZkQXIzWT0KWC1SZWNlaXZlZDogYnkgMTAuMjAwLjMuMTUwIHdpdGggU01UUCBpZCB0MjJtcjEzNDIwMjFxdGcuMTg3LjE1MDUyODI0MDk0NDE7CiBUdWUsIDEyIFNlcCAyMDE3IDIzOjAwOjA5IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yMDAuNDguMjI2IHdpdGggSFRUUDsgVHVlLCAxMiBTZXAgMjAxNyAyMzowMDowOCAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPENBK25Qbk13Y29IRlp2VXFXaVVzeUhCaGFNbW9TY2N5ZFRCc3pTWGdzR3RGPXdOR0RLd0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk14eUcyTmVQWHBWcWF3ZTlqUj1pdEhFVDZVdWRuTjlDakhodj1vby1LQ3J4d0BtYWlsLmdtYWlsLmNvbT4KIDxwb255LTU2YTNhZGVhZjYwYzQwNTk2ZmIyODRiMjQ1MjQxNDhmNjA1ZThkMjMtNTJkNDFjZDQwZjIzNDNjODk1Mjg4MGU4Zjg0ZGEzZTgwZDMzNTUwOUBkZXYubWF2ZW4uYXBhY2hlLm9yZz4KIDxDQStuUG5NeVMycTF1ZmFXK1M2c21oWloxSmN4aGY5aFk1LTNuQkotaUNXZWpQVUFEVkFAbWFpbC5nbWFpbC5jb20+CiA8MjA1Nzk0OC5rMUd5Zmp1R1hkQGdpZ2E+IDxDQStuUG5Nd2NvSEZadlVxV2lVc3lIQmhhTW1vU2NjeWRUQnN6U1hnc0d0Rj13TkdES3dAbWFpbC5nbWFpbC5jb20+CkZyb206IFRob21hcyBDb2xsaWdub24gPHRvbWlwaG9uZTNnQGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAxMyBTZXAgMjAxNyAwODowMDowOCArMDIwMApNZXNzYWdlLUlEOiA8Q0FEenk3akM1R3dXaWlSZGo2c3dlSjd4ZXVCcEZ5SEhRYVpoaU9HWW1Ra1MyTGlZNmJnQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9ImY0MDMwNDM1MmZhNDRkMmNkMjA1NTkwYmRmYzMiCgotLWY0MDMwNDM1MmZhNDRkMmNkMjA1NTkwYmRmYzMKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSGVsbG8KCisxIGZvciBtZQoKMjAxNy0wOS0xMiAyMDo1NCBHTVQrMDI6MDAgU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvPQptCj46Cgo+IEhhdmUgd2UgZ290IGFueSBmZWVkYmFjayBmcm9tIHRoZSBlbWJlZGRlciBpbnRlZ3JhdGlvbnMgeWV0Pwo+Cj4gT24gTW9uIDExIFNlcCAyMDE3IGF0IDIyOjU3LCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gdz0Kcm90ZToKPgo+ID4ganVzdCBmb3IgdGhlIHJlY29yZHM6IGl0IGlzIFdpbmRvd3MgKyBHaXQgQmFzaCAoTUlOR1c2NCkgb25seQo+ID4KPiA+IGFuZCB0aGVyZSBpcyBhIGNoYW5jZSB0aGF0IGFkZGluZyAtRGphbnNpLmZvcmNlPTNEdHJ1ZSBjYW4gZm9yY2UgSkFuc2kKPiA+IGFjdGl2YXRpb24gKGV2ZW4gaWYgSkFuc2kgZmFpbHMgdG8gZGV0ZWN0IHRoYXQgaXQgc2hvdWxkIGF1dG8tYWN0aXZhdGUpCj4gPgo+ID4gZGV0YWlscyBvbiBpc3N1ZSBpbiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MjgyICwKPiBhbmQgYQo+ID4gZnV0dXJlIEpBbnNpIGlzc3VlLi4uCj4gPgo+ID4gUmVnYXJkcywKPiA+Cj4gPiBIZXJ2PUMzPUE5Cj4gPgo+ID4gTGUgbHVuZGkgMTEgc2VwdGVtYnJlIDIwMTcsIDEyOjUzOjQ2IENFU1QgU3RlcGhlbiBDb25ub2xseSBhID1DMz1BOWNyaXQ9CiA6Cj4gPiA+IFNvIHRoYXQgaXMgd2luZG93cyBvbmx5LCBvciB3ZXJlIHRoZXkgbG9zdCBvbiBvdGhlciBPU2VzIGZvciB5b3UuCj4gPiA+Cj4gPiA+IEkgaGF2ZSBjb2xvdXJzIG9uIGxpbnV4ICh2aWEgZG9ja2VyKSBhbmQgb3MteAo+ID4gPgo+ID4gPiBPbiAxMSBTZXB0ZW1iZXIgMjAxNyBhdCAxMjozNSwgZGVqYW4yNjA5QGdtYWlsLmNvbSA8Cj4gZGVqYW4yNjA5QGdtYWlsLmNvbT4KPiA+ID4KPiA+ID4gd3JvdGU6Cj4gPiA+ID4gKzEgKGNvbmRpdGlvbmFsbHkpLgo+ID4gPiA+Cj4gPiA+ID4gVGVzdGVkIHZpYSBwcm9qZWN0IHRoYXQgaW5jbHVkZXMgZG96ZW4gb2YgcGx1Z2luczogMXN0IHRpZXIsIE1vam9IYT0KdXMKPiA+IGFuZAo+ID4gPiA+IGZldyAzcmQgcGFydHkgcGx1Z2lucyAoc28gdG8gc2F5KS4KPiA+ID4gPgo+ID4gPiA+IEV2ZXJ5dGhpbmcgbG9va3MgZ29vZCB3aXRoIG9uZSBub3RhYmxlIHJlZ3Jlc3Npb246Cj4gPiA+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjI4MiBDb25zb2xlIG91dHB1dCBoYXMgbj0Kbwo+ID4gPiA+IGNvbG9ycyAocmVncmVzc2lvbiBpbiBNYXZlbiAzLjUuMSkKPiA+ID4gPgo+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4gRGVqYW4KPiA+ID4gPgo+ID4gPiA+IE9uIDIwMTctMDktMTAgMTc6MzksIFN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC4KPiBjb20KPiA+ID4KPiA+ID4gPgo+ID4gPiA+IHdyb3RlOgo+ID4gPiA+ID4gSGksCj4gPiA+ID4gPgo+ID4gPiA+ID4gV2Ugc29sdmVkIDI1IGlzc3VlczoKPiA+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiA+ID4gPgo+ID4gPiA+IHZlcnNpb249M0QxMjMzODk2NCZzdHlsZU5hbWU9M0RUZXh0JnByb2plY3RJZD0zRDEyMzE2OTIyCj4gPiA+ID4KPiA+ID4gPiA+IFRoZXJlIGFyZSAzNTAgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKPiA+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlCj4gPiA+ID4KPiA+ID4gPiAzRCUyME1ORyUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlCj4gPiA+ID4gMjBCWSUyMGR1ZSUyMEFTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMGNyZWF0ZWQlMjBBU0MKPiA+ID4gPgo+ID4gPiA+ID4gU3RhZ2luZyByZXBvOgo+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2NC8KPiA+ID4gPiA+Cj4gPiA+ID4gPiBUaGUgZGlzdHJpYnV0YWJsZSBiaW5hcmllcyBhbmQgc291cmNlcyBjYW4gYmUgZm91bmQgaGVyZToKPiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4gPgo+ID4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvCj4gPiA+ID4KPiA+ID4gPiA+IFNwZWNpZmljYWxseSB0aGUgemlwLCB0YXJiYWxsIGFuZCBzb3VyY2UgYXJjaGl2ZXMgY2FuIGJlIGZvdW5kCj4gaGVyZToKPiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4gPgo+ID4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLWJpbi56aXAKPiA+ID4gPgo+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tPiA+Cj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41Lgo+IDEtYmluLnRhci5nego+ID4gPiA+Cj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+ID4KPiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwCj4gPiA+ID4KPiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4gPgo+ID4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4KPiAxLXNyYy50YXIuZ3oKPiA+ID4gPgo+ID4gPiA+ID4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gPiA+ID4gPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5neiBzaGExOiA5ZWI4MjFmMTUzYzc2NjcxOTRhYTExY2NkMDk5Yj0KNwo+ID4gPiA+Cj4gPiA+ID4gYmQyMDU5NTYwZAo+ID4gPiA+Cj4gPiA+ID4gPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcDogc2hhMTogMTIxZDU0YjA0NTM4MGE4YTQ4OTVlYjEzNzk3MGFiCj4gPiA+ID4KPiA+ID4gPiA2OWU2OThlYjBlCj4gPiA+ID4KPiA+ID4gPiA+IEdpdCB0YWc6Cj4gPiA+ID4gPiBodHRwczovL2dpdC13aXAtdXMuYXBhY2hlLm9yZy9yZXBvcy9hc2Y/cD0zRG1hdmVuLmdpdDthPTNEY29tbWl0Oz0KaD0zRAo+ID4gPiA+Cj4gPiA+ID4gMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMwo+ID4gPiA+Cj4gPiA+ID4gPiBTdGFnaW5nIHNpdGU6Cj4gPiA+ID4gPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvY29tcG9uZW50cy9yZWYvMy1MQVRFU1QvCj4gPiA+ID4gPgo+ID4gPiA+ID4gVm90ZSBvcGVuIGZvciA3MiBob3Vycy4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBbIF0gKzEKPiA+ID4gPiA+IFsgXSArMAo+ID4gPiA+ID4gWyBdIC0xCj4gPiA+ID4gPgo+ID4gPiA+ID4gVGhhbmtzLAo+ID4gPiA+ID4KPiA+ID4gPiA+IFN0ZXBoZW4uCj4gPiA+ID4KPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtLS0tLS0tLS0KPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Cj4gPgo+ID4KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Cj4gPiAtLQo+IFNlbnQgZnJvbSBteSBwaG9uZQo+CgotLWY0MDMwNDM1MmZhNDRkMmNkMjA1NTkwYmRmYzMtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDI0OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gT2N0IDE2IDA0OjQyOjM0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI0OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA5N0E2NTEwODNCCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMTYgT2N0IDIwMTcgMDQ6NDI6MzQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyNzY3MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNiBPY3QgMjAxNyAwNDo0MjozNCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjc1ODUgaW52b2tlZCBieSB1aWQgNTAwKTsgMTYgT2N0IDIwMTcgMDQ6NDI6MzQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNzU3MyBpbnZva2VkIGJ5IHVpZCA5OSk7IDE2IE9jdCAyMDE3IDA0OjQyOjMzIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAxNiBPY3QgMjAxNyAwNDo0MjozMyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEM4OEMyQ0FDMkMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE2IE9jdCAyMDE3IDA0OjQyOjMyICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC4zNzkKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC4zNzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nb29nbGVtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgUHBtckkzNC1aSTVyIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAxNiBPY3QgMjAxNyAwNDo0MjozMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLWxmMC1mNTAuZ29vZ2xlLmNvbSAobWFpbC1sZjAtZjUwLmdvb2dsZS5jb20gWzIwOS44NS4yMTUuNTBdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMENDMTY1RjNERQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTYgT2N0IDIwMTcgMDQ6NDI6MzAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtbGYwLWY1MC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBwMTg0c28xNTQ2OTMxMmxmZS4xMgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDE1IE9jdCAyMDE3IDIxOjQyOjMwIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nb29nbGVtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG8KICAgICAgICAgOmNjOwogICAgICAgIGJoPU1qYTJ5M0pDSVNkeXVKdGpGS1N1SHBUdTJwVlE2MW84ak1QREx3V3hubmc9OwogICAgICAgIGI9Y1h2YVNMMVVRUEZZQlErTmg4ZFZFbDR6RVY1SW1oUWI0RStLOUFweDhVOFlXYWY1U3hucDNLTDdoZ0Y1UThReldRCiAgICAgICAgIHZ0VkVTcEhySm1JOWs0S0dBRVZkNXcxQXpiQ0orNXF3aTJ6ZUQ4RzlnSWpGTFU2TG9Mam1ndTlTYkJ2dmN1c0tCYkhFCiAgICAgICAgIGhZc2dyT0I0N2NGQ2I3ZUU0SmxZOU1HT3Rxd0ZPRVIveVdyN0J2MGpaTzJQdW9OcW9UQXo5VXpyRE5zV2xFYkJ3WUNGCiAgICAgICAgIHJTRnZ1Ry9wTjB5ZXQ2bFJ3QUxsNzd0ZDdCUHNHbXBORjhsUi84dFhZdURBZUpkR0tUZm9lY21raE4wR3o2Mldua1FqCiAgICAgICAgIGFRWHVQaytnb2s5alM3UkF4V3FtZER2OG5mbnpDclM0M2NPMzBNYUtqQjFMN3J1YjlkOEsyQzI5WDE1M1dnaGZ5M1lICiAgICAgICAgIHZiN2c9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOmNjOwogICAgICAgIGJoPU1qYTJ5M0pDSVNkeXVKdGpGS1N1SHBUdTJwVlE2MW84ak1QREx3V3hubmc9OwogICAgICAgIGI9RjZBaEI3bjAzMWtlWWdGMHg1N3V5b2FYNkxoOEp4dkE0cUVJK0lYRzNMNFNmRlNFNnltWWJUd2JCVjNqaGhDUXBuCiAgICAgICAgIElla0RSR1lYY2VwRjREOFpMWmJDVDBSMUdsVG1ublhNeWdFemNZa2wvVjdBZzJma2hjcnNDSSs4VnJJSnEvUCt1cjJ3CiAgICAgICAgIHlZMWtSK2RucGptMmkydmVoaXQrQ3o4MTBLVG9reUxLekorMWtiQnZ3RG5UbFpLN2xGb2szaDc5eGVKS2k1cHArejY2CiAgICAgICAgIDI3Yk9UWDRRKzkwQkZxazZiMDFzVjdINHF5emJwaFhuNTFOa1gzRllTbEIrNjVGd01Ed0NKV2doZk1MT05rZ25RNU9zCiAgICAgICAgIDhtaGVXaXVrckxqWTdDWjZ6aWRXOFRQcHpQSTZpb3hoMGtxcWpKb3ZzSlNDNEY2TmllakN4ekovRitLbWFkNGpWaTJmCiAgICAgICAgIG94aHc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVZvd1ZSMzAxTGR2Z2lLWGtnTDdQZ1JRSGdWMXlNUE9qMjJjdWZ1U3VDZ0lYT3dSeEQxCgl4RlBKVXljeGtybS9hS053WTBlNnVkR3ZaeUQ4OHRMaXN1OHdvYTQ9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtSYklGaEllK1JVSTVBeHF1NG5tcGVSMnZxL1JqcFlLUkRpOWQwUGUycm9VNmpMZFZUUmlESGFnOTd6NFduYy9wMFRyZEs3V09kU0lHZzI1RjkwSHVRPQpYLVJlY2VpdmVkOiBieSAxMC40Ni4yOS42NSB3aXRoIFNNVFAgaWQgZDYybXIzMzE0NzM0bGpkLjEzOS4xNTA4MTI4OTQ5NTIxOwogU3VuLCAxNSBPY3QgMjAxNyAyMTo0MjoyOSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMjUuODcuMTUgd2l0aCBIVFRQOyBTdW4sIDE1IE9jdCAyMDE3IDIxOjQyOjI4IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8NDEwOTdiMGQtODFmYS01YmQwLWI4ZGUtZTEyYzQzNDhjOGNkQGdteC5kZT4KUmVmZXJlbmNlczogPENBRXlNenltc0hIdk9CRi1idHFUdmo4a3YwckZMZ0JkPUpHSHJ1UFpqRXlZWm89QS0wZ0BtYWlsLmdtYWlsLmNvbT4KIDw0MTA5N2IwZC04MWZhLTViZDAtYjhkZS1lMTJjNDM0OGM4Y2RAZ214LmRlPgpGcm9tOiBDaHJpc3RvcGggTGFldWJyaWNoIDxsYWV1YmkubW9iaWxlQGdvb2dsZW1haWwuY29tPgpEYXRlOiBNb24sIDE2IE9jdCAyMDE3IDA2OjQyOjI4ICswMjAwCk1lc3NhZ2UtSUQ6IDxDQUV5TXp5a3RkZUxDUkdaUF9iVm80dkIrUzRxZzNnaFJqUTNnQlFuQW5mRzlWcXhRS2dAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiBQbHVnaW4gdGhhdCBwcm92aWRlcyBhbHRlcm5hdGl2ZSByZXBvc2l0b3J5ClRvOiBpbmZvQHNvZWJlcy5kZQpDYzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCkhpLAoKdGhhbmtzIGZvciB5b3VyIHJlcGx5LiBJJ2QgbGlrZSB0byBtYWtlIGFydGlmYWN0cyBhdmFpYWJsZSB0byBtYXZlbgp2aWEgPGRlcGVuZGVuY3k+IHRoYXQgYXJlIGxvY2F0ZWQgaW4gYSByZXBvc2l0b3J5IHdpdGggYSBmb3JtYXQgdGhhdAptYXZlbiBkb2VzIG5vdCB1bmRlcnN0YW5kLgpFdmVuIHRob3VnaCBpZiBJIHdvdWxkIGhhdmUgdGhlIGdyb3VwK2FydGlmYWN0aWQrdmVyc2lvbiBJIGNhbiBsb2NhdGUKdGhhdCBhcnRpZmFjdCB0aGVyZS4KU28gdGhlIGlkZWEgaXMgdG8gYWRkIGEgcGx1Z2luIHRvIHRoZSBidWlsZCB0aGF0IGdldHMgYXNrZWQgd2hlbmV2ZXIKbWF2ZW4gZG9lcyBub3QgZmluZCBhbiBhcnRpZmFjdCBpbiBhbnkgb2YgaXRzIGRlZmF1bHQgc291cmNlcyBzbyBJIGNhbgpnaXZlIGl0IGEgdHJ5IHRvIGZpbmQgaXQgaW4gbXkgc3BlY2lhbCByZXByby4KCkV2ZW4gdGhvdWdoIGl0IG1pZ2h0IGJlIHBvc3NpYmxlIHRvIGNvbnZlcnQgdGhlIG90aGVyIHJlcHJvIHRvIGEgbWF2ZW4Kc3RydWN0dXJlLCB0aGlzIG1lYW5zIEkgaGF2ZSB0byBkb3dubG9hZCBhbGwgYXJ0aWZhY3RzIGZyb20gdGhpcywKdXBsb2FkIHRoZW0gYWdhaW4gYW5kIHJlcGVhdCB0aGUgc3RlcHAgYW4gZWFjaCBjaGFuZ2UsIHRoYXRzIHdoeSBJJ2QKbGlrZSB0byBmaW5kIGEgd2F5IHRvIHVzZSB0aGUgcmVwcm8gZGlyZWN0bHkuCgoyMDE3LTEwLTEyIDE4OjQ4IEdNVCswMjowMCBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT46Cj4gSGksCj4KPiBPbiAxMi8xMC8xNyAxNjoyOCwgQ2hyaXN0b3BoIExhZXVicmljaCB3cm90ZToKPj4KPj4gSGksCj4+Cj4+IEknZCBsaWtlIHRvIGNyZWF0ZSBhIHBsdWdpbiB0aGF0IGdldHMgbm90aWZpZWQgaWYgbWF2ZW4gdHJpZXMgdG8KPj4gZG93bmxvYWQgYW4gYXJ0aWZhY3QgYnV0IGRvZXMgbm90IGZpbmQgaXQgaW4gYW55IG9mIGl0cyBjb25maWd1cmVkCj4+IHJlcG9zaXRvcmllcy4gSXMgdGhpcyBwb3NzaWJsZSB0byBhcmNoaXZlIGJ5IGEgbWF2ZW4gcGx1Z2luPyBJZiB5ZXMKPj4gd2hhdCBpcyB0aGUgYmVzdCBzdGFydGluZyBwb2ludCBmb3IgdGhpcz8KPgo+Cj4gTXkgZmlyc3QgcXVlc3Rpb24gaXM6IFdoYXQgaXMgdGhlIGJhY2tncm91bmQgb2YgdGhpcyBxdWVzdGlvbj8gTWVhbnMgd2hhdAo+IGFyZSB5b3UgdHJ5aW5nIHRvIHNvbHZlPyBXaGF0IGtpbmQgb2YgcHJvYmxlbSBkbyB5b3UgaGF2ZT8KPgo+Cj4+Cj4+IE15IG93biBzZWFyY2ggZm9yIHRoaXMgaGF2ZSBub3QgcmV2ZWxlYWQgYW55IHVzZWZ1bGwgaW5mb3JtYXRpb24KPj4gYmVzaWRlIGJhc2ljIG1hdmVuIHBsdWdpbiB0dXRvcmlhbHMgdGhhdCBkbyBub3QgY292ZXIgdGhpcyBzcGVjaWZpYwo+PiBjYXNlLgo+Pgo+Cj4gS2luZCByZWdhcmRzCj4gS2FybCBIZWlueiBNYXJiYWlzZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MjI3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBPY3QgMTIgMTQ6Mjg6NDkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjI3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDRCNjc1MTA5MUQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAxMiBPY3QgMjAxNyAxNDoyODo0OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDIyNDIxIGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIE9jdCAyMDE3IDE0OjI4OjQ5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMjM0MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMiBPY3QgMjAxNyAxNDoyODo0OCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIyMzIzIGludm9rZWQgYnkgdWlkIDk5KTsgMTIgT2N0IDIwMTcgMTQ6Mjg6NDggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDEyIE9jdCAyMDE3IDE0OjI4OjQ4ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRTY4NUIxODMyNjMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDEyIE9jdCAyMDE3IDE0OjI4OjQ3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC4zNzkKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC4zNzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nb29nbGVtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFNOc09WeV8yenhjaiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVRodSwgMTIgT2N0IDIwMTcgMTQ6Mjg6NDUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC1sZjAtZjQyLmdvb2dsZS5jb20gKG1haWwtbGYwLWY0Mi5nb29nbGUuY29tIFsyMDkuODUuMjE1LjQyXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDg1N0ZDNjBEMDgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDEyIE9jdCAyMDE3IDE0OjI4OjQzICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLWxmMC1mNDIuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgYjE5MHNvNjE1ODk1M2xmZy45CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMTIgT2N0IDIwMTcgMDc6Mjg6NDMgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdvb2dsZW1haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9ckZEOUxVL3Q4TCtVQlNlbnNwVHpTZEZWbklkQU4wU1pTQTNEVThYRmNaMD07CiAgICAgICAgYj1Qb0dsRFVOWWtzQklnQlpuMFFvU0ZSM25tNXlQUURQWUtRQnpUcjVnSU0wdFZCcVc1T25hQ0htQUowdENpNkV4NjAKICAgICAgICAgWnEyeElaZVUwRUlNeEZXRjhJZVk5Qm1YeEhJak9EQ1psQzIybVJ4cjNXc3oxeU9mRzVFVzdlL2poVnJOMUFMdWl1aEcKICAgICAgICAgMUY5WldybUIwdFZwWFZWMXVoTzdPQWo1SDY5cHFVcGQzTHhId2htelhiTGZid29abW1Ib3hTVDZsTitwRWw1dXhxbG8KICAgICAgICAgOFRLTjNrVldhYXhlSVZJc05Dd3hobjNWWnNMY1dyUW9OS1IxUi9DQTA5N0o3cDhpVzhYTW1KeHBSNG1qSiswbkNLVWsKICAgICAgICAgTlZESVBsUitoeVpGTE05MEsrWk02ZnBGcGZtVDVRY2xoWGplZG5XVEdyWm9ZbnQ1MHRuRmdnSTFrYzRGeXlGUmV2Q2MKICAgICAgICAgU2ZUQT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9ckZEOUxVL3Q4TCtVQlNlbnNwVHpTZEZWbklkQU4wU1pTQTNEVThYRmNaMD07CiAgICAgICAgYj1aa2YzdVBqNHBHMEVQbjVOZnRnTVRVb1Zic0hNK2NNV1JjdklVZitkemZRTUpia1A4cWFsQW80eWs5akl2aEhrcFQKICAgICAgICAgRC9XM0traWVveTlRaUhDaGExcHRuWEZuckxJV1N6OUlsUGRUeDI2WkpqenptV05xKy9XWWNMNk1nejE2aDBiZnRFS1MKICAgICAgICAgS1h4S1lPeUFGOFJDN1NuclFXY05Ba2p5T3VTV0hjMk8yS0dGTFFNUTdHTFhoNEhESlRiRWRoN09ReVZkaFJ1NFdTa0kKICAgICAgICAgblA3T1lxMWY2Ui91RHZkcFlMQmlTMEx1ZkV6L29Fc0xIbWFQbGhaVm96Qmt1NEQ0eGZlWjVrUEtTSVZXczhZWjNjbWMKICAgICAgICAgaDZPeGJIYkVJTlhZUzNpV0tPd2VtQjZneEJHTnZZaHF2OFI3MmZYMkx6SFdFcEtrMDdoSzBVVDdOenVsWW5ZSjh1L3UKICAgICAgICAgY1o2Zz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVmJUcStlSjJQNjR1MkJZMkdJWi9iWG40TlMxc2hsNkJrOW5TTG1ENG1mRE9ZMmNadzEKCW5GWTgrQi8rV0ZSVnZVTVp5Yk1SUW5aZWF4S2JNWUlZemEyeDYvaz0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFCaFFwK1F3enNSRE85cHBXMjRjZUZ0TnAwRUtuRFZkcEZSV1E2TzhxTXNyTUFUWm1WU3RLNnlYN2dKRFpNZnJOOUpIakk1Q3MzNklFbSs2eVFHT3dtcjN0ZHM9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjI1LjQwLjE5NiB3aXRoIFNNVFAgaWQgbzE4N21yNzU4NTMybGZvLjE0OS4xNTA3ODE4NTIyNzUxOwogVGh1LCAxMiBPY3QgMjAxNyAwNzoyODo0MiAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMjUuODYuMSB3aXRoIEhUVFA7IFRodSwgMTIgT2N0IDIwMTcgMDc6Mjg6NDIgLTA3MDAgKFBEVCkKRnJvbTogQ2hyaXN0b3BoIExhZXVicmljaCA8bGFldWJpLm1vYmlsZUBnb29nbGVtYWlsLmNvbT4KRGF0ZTogVGh1LCAxMiBPY3QgMjAxNyAxNjoyODo0MiArMDIwMApNZXNzYWdlLUlEOiA8Q0FFeU16eW1zSEh2T0JGLWJ0cVR2ajhrdjByRkxnQmQ9SkdIcnVQWmpFeVlabz1BLTBnQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBNYXZlbiBQbHVnaW4gdGhhdCBwcm92aWRlcyBhbHRlcm5hdGl2ZSByZXBvc2l0b3J5ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKSGksCgpJJ2QgbGlrZSB0byBjcmVhdGUgYSBwbHVnaW4gdGhhdCBnZXRzIG5vdGlmaWVkIGlmIG1hdmVuIHRyaWVzIHRvCmRvd25sb2FkIGFuIGFydGlmYWN0IGJ1dCBkb2VzIG5vdCBmaW5kIGl0IGluIGFueSBvZiBpdHMgY29uZmlndXJlZApyZXBvc2l0b3JpZXMuIElzIHRoaXMgcG9zc2libGUgdG8gYXJjaGl2ZSBieSBhIG1hdmVuIHBsdWdpbj8gSWYgeWVzCndoYXQgaXMgdGhlIGJlc3Qgc3RhcnRpbmcgcG9pbnQgZm9yIHRoaXM/CgpNeSBvd24gc2VhcmNoIGZvciB0aGlzIGhhdmUgbm90IHJldmVsZWFkIGFueSB1c2VmdWxsIGluZm9ybWF0aW9uCmJlc2lkZSBiYXNpYyBtYXZlbiBwbHVnaW4gdHV0b3JpYWxzIHRoYXQgZG8gbm90IGNvdmVyIHRoaXMgc3BlY2lmaWMKY2FzZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDI2NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgT2N0IDE5IDA0OjEzOjAwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI2NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA0NEZCRDEwQTg5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMTkgT2N0IDIwMTcgMDQ6MTM6MDAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4NTExIGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IE9jdCAyMDE3IDA0OjEzOjAwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MTAxIGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IE9jdCAyMDE3IDA0OjEyOjU5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODA4OSBpbnZva2VkIGJ5IHVpZCA5OSk7IDE5IE9jdCAyMDE3IDA0OjEyOjU5IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAxOSBPY3QgMjAxNyAwNDoxMjo1OSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDQxRTUxQzA4MkMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDE5IE9jdCAyMDE3IDA0OjEyOjU4ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS4xOApYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuMTggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglLQU1fQVNDSUlfRElWSURFUlM9MC44LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMSwgVVJJQkxfQkxPQ0tFRD0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z29vZ2xlbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEVCcDMyb2thZEs2NCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVRodSwgMTkgT2N0IDIwMTcgMDQ6MTI6NTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC1sZjAtZjQ0Lmdvb2dsZS5jb20gKG1haWwtbGYwLWY0NC5nb29nbGUuY29tIFsyMDkuODUuMjE1LjQ0XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEU3RDMxNUY0NzcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDE5IE9jdCAyMDE3IDA0OjEyOjU2ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLWxmMC1mNDQuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgOTBzbzgwNjQxMDRsZnMuMTMKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxOCBPY3QgMjAxNyAyMToxMjo1NiAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z29vZ2xlbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWl5MlVNdlBoSHVBTzBiaisxdjlEZlRXTDdwdkVsR2VKdG1YYm4wSGF4c2c9OwogICAgICAgIGI9QzBYdEFsL216eUQzd3dqRGRkZzFrWkpscmFWSlRXREt5NDc5clpubTBEMzZ1aGFyNm9QK0NFc2tqVy93Y01SQVBRCiAgICAgICAgIDdGc3B2K3lzU0NvU3V3Nmk0VXlTVnNzZ0pNT0lrNDd3dFlGdHlzV2Vxak12UVNzaE5mNmVCck1NbEJUWnlkaU80SFRwCiAgICAgICAgIFRvMVFnSDNjQUlXa0VJS3JWQlhiekIrNWV1T2xzMnVZZy9DTERERHpCUEVJTng4Z3JKR3NXbHFlZCtuUG5sa01ROXRqCiAgICAgICAgIG9tOFBYSXVLTjVJMmdLT0NvSGg4YXpUVlRVaDQ5ZzVNOVJEbUtDTjlXZFI1NzBCTzFQRzhOcndaTEZDSlpZVTJscXlqCiAgICAgICAgIGljK2pXaFp2NUhReFV3dEdWTEtMSU54MkR6SW9oL1U5RjZocjFwT0tncFlEK2dwb1g4TE1sQUx1YUZDRUEwSGx6TkRKCiAgICAgICAgIFlCZ0E9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWl5MlVNdlBoSHVBTzBiaisxdjlEZlRXTDdwdkVsR2VKdG1YYm4wSGF4c2c9OwogICAgICAgIGI9S1RUTEtHOEhNdW5PbGROdUIzZEFybCtqdHhnS2lnbkdHL1RLV2M2VHBBYkpNZStaUXd6RVNRayt2OXlySHJWK2xUCiAgICAgICAgIGZwa2lNUDdHaGpLYThjTjBZZ0h2ZkxLKzJyS2hteFhvdGJNdm9DcWwzekx6aEJ4NTY4cExsVmZ5OTBackhwbGdTK1Y4CiAgICAgICAgIE8rYnJkLzUya3JCM0pHcWpXbU02YmpZVnVRc0FCVmJiOHlLVndTK1Y4bktKRWdUellob0VvWXRwVm9Valh0U05tV1hvCiAgICAgICAgIGVVdW54c3EvZENqRmdnV1ZUcEltUXF4dHZWOERVS0Q5OE53aXUxTUlmYTFSZXlsSzVnUW1FY2g4dm4zQjByWVFSaG9PCiAgICAgICAgIEtaVlFQVGlybXBwOWFpMUlWT0ZhbnVWSTQ0Ni9iS3Uwc1YvdDdjSXB4Q3lZRjdoTzcwbFpCZ0pJZUo1SFNETm5YNXFHCiAgICAgICAgIHFPRHc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVhiU1o4SDlBUldyb2xJQVI0d2U4TFhWS25ScWVEQ3F4Q0plL2VIbWNDVlhOZGtVSzNVCglTZXBlSzF3YXE2bFVzM0tLOEduNkp4WFBOSlc4QVVwRWVIMjZmV1Rwdmc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArVElVWXlGWG1CaFVnUVMrK05iQlBxT2tRWmdZdW5MaGNZSXBqS0Ivc1FEOFZQcWw2Z0U4WVdueVJiRE5CcVdySitBc01tLzhGT3BqTzJuRmlnSTlYWT0KWC1SZWNlaXZlZDogYnkgMTAuNDYuMTI3LjExIHdpdGggU01UUCBpZCBhMTFtcjk5NjgybGpkLjQ4LjE1MDgzODYzNzQ5MTI7IFdlZCwKIDE4IE9jdCAyMDE3IDIxOjEyOjU0IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yNS44Ny4xNSB3aXRoIEhUVFA7IFdlZCwgMTggT2N0IDIwMTcgMjE6MTI6NTQgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxiMjFlM2RkNi1mM2NkLTcwYWYtN2NiNi1lMjE3YjI3OTE5MmZAcmVkaGF0LmNvbT4KUmVmZXJlbmNlczogPENBRXlNenltc0hIdk9CRi1idHFUdmo4a3YwckZMZ0JkPUpHSHJ1UFpqRXlZWm89QS0wZ0BtYWlsLmdtYWlsLmNvbT4KIDw0MTA5N2IwZC04MWZhLTViZDAtYjhkZS1lMTJjNDM0OGM4Y2RAZ214LmRlPiA8Q0FFeU16eWt0ZGVMQ1JHWlBfYlZvNHZCK1M0cWczZ2hSalEzZ0JRbkFuZkc5VnF4UUtnQG1haWwuZ21haWwuY29tPgogPGE1Y2RiN2JjLWFiMzgtNTFhZi02ZWQxLTE0YjUyMTEzYmYzOEByZWRoYXQuY29tPiA8Q0ErMjk4VWhlNWthcHdGM0JjdHg5UFZadU5FdVF4VzJUWUU5MTZxM01xN19QTm10ajJ3QG1haWwuZ21haWwuY29tPgogPGIyMWUzZGQ2LWYzY2QtNzBhZi03Y2I2LWUyMTdiMjc5MTkyZkByZWRoYXQuY29tPgpGcm9tOiBDaHJpc3RvcGggTGFldWJyaWNoIDxsYWV1YmkubW9iaWxlQGdvb2dsZW1haWwuY29tPgpEYXRlOiBUaHUsIDE5IE9jdCAyMDE3IDA2OjEyOjU0ICswMjAwCk1lc3NhZ2UtSUQ6IDxDQUV5TXp5bkdGUG1tZDJCTWNfPUpxakw3PTg9NzFPZ0pqY09SN1U3OHdKaFk3cVdLVEFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiBQbHVnaW4gdGhhdCBwcm92aWRlcyBhbHRlcm5hdGl2ZSByZXBvc2l0b3J5ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKU28gZXh0ZW5zaW9ucyBmb3IgV29ya3NwYWNlUmVhZGVyIGNhbid0IGJlIHVzZWQgbGlrZSBkZXNjcmliZWQgaGVyZVsxXQppbnNpZGUgdGhlIHBvbS54bWw/CkRvZXMgdGhhdCBtZWFuIEkgaGF2ZSB0byBwdXQgbXkgZXh0ZW5zaW9uIGluIHRoZSBtYXZlbiBjbGFzc3BhdGggdG8KbWFrZSBpdCB3b3JrPwoKSWYgSSBkbyB0aXMsIGlzIGl0IHN0aWxsIHBvc3NpYmxlIHRvIGNvbmZpZ3VyZSB0aGUgRXh0ZW5zaW9uIGluc2lkZQp0aGUgcG9tIG9yIGhhcyBpdCB0byBiZSBkb25lIGJ5IHN5c3RlbS1wcm9wZXJ0aWVzPwoKWzFdaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9taW5pL2d1aWRlLXVzaW5nLWV4dGVuc2lvbnMuaHRtbAoKMjAxNy0xMC0xNyA5OjAwIEdNVCswMjowMCBNaWtvbGFqIEl6ZGVic2tpIDxtaXpkZWJza0ByZWRoYXQuY29tPjoKPiBPbiAxMC8xNi8yMDE3IDEyOjM5IFBNLCBQYXVsIEhhbW1hbnQgd3JvdGU6Cj4+Pgo+Pj4gVGhpcyBzaG91bGQgYmUgcG9zc2libGUgYnkgcHJvdmlkaW5nIFdvcmtzcGFjZVJlYWRlciBpbXBsZW1lbnRhdGlvbiAtCj4+PiBAQ29tcG9uZW50KCByb2xlID0gV29ya3NwYWNlUmVhZGVyLmNsYXNzLCBoaW50ID0gImlkZSIgKQo+Pj4KPj4+IE5vdGUgdGhhdCBNYXZlbiB0cmllcyByZXNvbHV0aW9uIGZyb20gd29ya3NwYWNlICpiZWZvcmUqIHJlcG9zaXRvcmllcyAtCj4+PiB3b3Jrc3BhY2UgcmVhZGVyIGhhcyBwcmlvcml0eSBsb3dlciB0aGFuIHJlYWN0b3IsIGJ1dCBoaWdoZXIgdGhhbiByZW1vdGUKPj4+IHJlcG9zIGtub3duIHRvIE1hdmVuLgo+Pgo+PiBXb3Jrc3BhY2VSZWFkZXIgZnVuY3Rpb25hbGl0eSBpcyBvciBpcyBub3QgYSB0aGluZyB0aGF0IGNhbiBiZSBzZXQgaW4KPj4gcG9tLnhtbCBmaWxlcz8KPgo+IFdoZW4gUE9NIGlzIHBhcnNlZCwgd29ya3NwYWNlIHJlYWRlciBpcyBhbHJlYWR5IGxvYWRlZCwgc28gaXQgd291bGQgYmUKPiB0b28gbGF0ZS4gU28gaXQgbmVlZHMgdG8gYmUgbG9hZGVkIGJ5IGFuIGV4dGVuc2lvbi4KPgo+PiBBcmUgdGhlcmUgYW55IGV4YW1wbGVzIGluIHB1YmxpYyB0aGF0IHVzZSBXb3Jrc3BhY2VSZWFkZXIgaW4gdXNlIHRvCj4+IHNvdXJjZSBhIGRlcCBmcm9tIG91dHNpZGUgb2YgbWF2ZW4gY2VudHJhbCAob3IgdGhlIHByb2plY3RzIHNpYmxpbmcKPj4gbW9kdWxlcyk/Cj4KPiBFY2xpcHNlIE0yRSBpcyBvbmUgZXhhbXBsZS4gQW5vdGhlciBvbmUgaXMgWE12biwgd2hpY2ggdXNlcyB3b3Jrc3BhY2UKPiByZWFkZXIgdG8gcmVzb2x2ZSBkZXBlbmRlbmNpZXMgZnJvbSBzeXN0ZW0gcmVwb3NpdG9yeSAobm90IGluIE1hdmVuIGZvcm1hdCk6Cj4KPiBodHRwczovL2dpdGh1Yi5jb20vZmVkb3JhLWphdmEveG12bi9ibG9iL21hc3Rlci94bXZuLWNvbm5lY3Rvci1hZXRoZXIvc3JjL21haW4vamF2YS9vcmcvZmVkb3JhcHJvamVjdC94bXZuL2Nvbm5lY3Rvci9hZXRoZXIvWE12bldvcmtzcGFjZVJlYWRlci5qYXZhCj4KPj4KPj4gLSBQYXVsCj4+Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Cj4KPiAtLQo+IE1pa29sYWogSXpkZWJza2kKPiBTb2Z0d2FyZSBFbmdpbmVlciwgUmVkIEhhdAo+IElSQzogbWl6ZGVic2sKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQxNTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE9jdCAgNiAxODozNjoyMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxNTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRTQ0RDYxMDJERAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksICA2IE9jdCAyMDE3IDE4OjM2OjIwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzAyMyBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IE9jdCAyMDE3IDE4OjM2OjE1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2OTUwIGludm9rZWQgYnkgdWlkIDUwMCk7IDYgT2N0IDIwMTcgMTg6MzY6MTUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2OTM4IGludm9rZWQgYnkgdWlkIDk5KTsgNiBPY3QgMjAxNyAxODozNjoxNSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMDYgT2N0IDIwMTcgMTg6MzY6MTUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA3Nzg2NjFBM0EyMwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgIDYgT2N0IDIwMTcgMTg6MzY6MTQgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjg3OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjg3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgSGROSlBpdDJ0bTF3IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJRnJpLCAgNiBPY3QgMjAxNyAxODozNjoxMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXVhMC1mMTY5Lmdvb2dsZS5jb20gKG1haWwtdWEwLWYxNjkuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNy4xNjldKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMzMzRjI1RkQ4MwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgIDYgT2N0IDIwMTcgMTg6MzY6MTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdWEwLWYxNjkuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgczQxc285ODk2NzYwdWFiLjEwCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMDYgT2N0IDIwMTcgMTE6MzY6MTIgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9U1dWRWd2TG9EMWxNVU8rd3ptR1BIMDYraEpCamhTbG9BdGhqWjFVamlLZz07CiAgICAgICAgYj1Qb2xXZXo0S2VVZkRVOHFUU1FRS1l3L0pqdlN6WDgzUzR4WnNaeTZnWjhYN0FDUmVhUlh6UmJaVEo5ZWd3U0ZFMXYKICAgICAgICAgUVhWRnlVQ1pIUW51UldDNzVteEhialNQNXI5WTZJMXpuQllLeEVER0Z6K0x4N0R3N2VmbFVzaDFaM0NIb1VMOFZ0VG8KICAgICAgICAgbTBCREQwZXdlTytqVUdHd082RDNYNzJzQ0daTUNvVVNUQyt3RVllYWJDeWRjT2hUZkVVa0RYeVZyS1o2bThPZjRoWVUKICAgICAgICAgV09kM3ZwWE9rci9mT20wVmNQWDFiS1lyZ1FkYUZrSFF4MmtKT3BmVW8ySE1JV1BDRzM2aXNlSDFVUGZ0T0JiTnBjK1gKICAgICAgICAgMlNHUG9OM0JFWTRxYTRTVFVoS21CWDZJYzNFc2Vld1dIZ3RRck1oR3ZrbDZLN1d1NzFzdC96WnNCcCtZRlkrOFVSN0IKICAgICAgICAgVWVUQT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9U1dWRWd2TG9EMWxNVU8rd3ptR1BIMDYraEpCamhTbG9BdGhqWjFVamlLZz07CiAgICAgICAgYj1qYk1uemwrOE5DVmthTVNma2F5ZThHVHVBdndWajRKTC9zSWh0bEU2OStKVmZDZk5qTjdoSDZyMjN2OW5FNW1BdUoKICAgICAgICAgQUVWUEoxeFpJbXRYUE0rRnQ1d29GOVFGaVhrbXpIeHN1NmlzNTBzZGJBSUpBOVhMK2ozcGRUNk5OMjJZb0xVUC9RRDUKICAgICAgICAgaEFvRXBOM1lHMjhJYW1pNVZMR3V0TmY3UWtMVDZRVFM3cHhKRUw5OXpXTFRFMUtxMTVlVHRabDJXbWlmMzhxVkIvVXAKICAgICAgICAgRTc5WnUyT0xUeHJic2IwaFNFbVVzU0J6UXZadzBVRU9JZSswTnJrZ2RWRWNYcTJUZnNrSGRReldBbGUzd3g2SmFOSWUKICAgICAgICAgWmRPUWsyZVZQWTF1eldBSjA0RFplM1Y4TCtRZmRvb3gxRWpidjErSTY3d3EwcGFCZ3N6UmpiZlhlNWVPbzB0NGdLTFUKICAgICAgICAgOHp3dz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhWEhBRUlGWEJHNzdhQ2lKZGxxR0VXNjNuZlV6cDN3M04wNnpvVU1GREovWEtiQkpZdWIKCWlYY2p1c0pUenUrSy81dEZMalorU0l3THMzV2FaM0pGaVlSQ0Y5WjJpdz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FBWklsUDM0dFBSQjZXUzR4MncwMjRFUk4yRkI1bUpvdk5KZkNNdmdiRUdwTHp3NkVmc0dCdWJoaEFQbWQrQ1ZLR0IwMXZGRklBTzB1bkNUQjFobW80PQpYLVJlY2VpdmVkOiBieSAxMC4xNzYuOTEuMTggd2l0aCBTTVRQIGlkIHUxOG1yMTUyNTk0MXVhZS43Ny4xNTA3MzE0OTY1ODg0OwogRnJpLCAwNiBPY3QgMjAxNyAxMTozNjowNSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTc2Ljg1LjEzNiB3aXRoIEhUVFA7IEZyaSwgNiBPY3QgMjAxNyAxMTozNTo0NSAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPDE1MjI5ODU3LmsxRHlCYVI5TkxAZ2lnYT4KUmVmZXJlbmNlczogPDEwNTQ0NjE1LkI0aE8zUG52RXpAZ2lnYT4gPENBK25Qbk14OW4zMFF3VDZIMVBiZlZSeE4zaTl0VHZ5Zm49bzR4UXdFZzFCZXNfNndRd0BtYWlsLmdtYWlsLmNvbT4KIDxDQUZOQ1UtOXFhTmVYVWVzN08rQnhTUG9BcER5NUxET1VCYWtUMWMxRj1oODZMSmJCU3dAbWFpbC5nbWFpbC5jb20+IDwxNTIyOTg1Ny5rMUR5QmFSOU5MQGdpZ2E+CkZyb206ID0/VVRGLTg/UT9Bcm5hdWRfSD1DMz1BOXJpdGllcj89IDxhaGVyaXRpZXJAZ21haWwuY29tPgpEYXRlOiBGcmksIDYgT2N0IDIwMTcgMjA6MzU6NDUgKzAyMDAKTWVzc2FnZS1JRDogPENBRk5DVS0tMEVadDRFQlR4bUFFc3ROLWY2cVIzdE5LZ0RKVzY0PW5RelM2aVMyQjR3Z0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IEplbmtpbnMgYW5kIE1hdmVuIDMuMC41IG9yIEpESyA3ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9ImY0MDMwNDVmOGIwYzFiMzVjOTA1NWFlNTFkN2MiCgotLWY0MDMwNDVmOGIwYzFiMzVjOTA1NWFlNTFkN2MKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKQnV0IGRpZCB3ZSBjb21wbGV0ZWx5IGFiYW5kb25lZCB0aGUgaWRlYSBvZiBtb3ZpbmcgZXZlcnl0aGluZyB0byBnaXQgPwpUaGUgQ0kgc2V0dXAgd2FzIHRoZSBtYWluIHN0b3AgZm9yIGl0ID8KCk9uIEZyaSwgT2N0IDYsIDIwMTcgYXQgODowNSBQTSwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ID0Kd3JvdGU6Cgo+IEkgd2FzIGV4cGVjdGluZyB0aGUgdXN1YWwgbGl0YW55Cj4KPiB3aGF0IEknbSBub3QgY29uZmlkZW50IGN1cnJlbnRseSB3aXRoIHBpcGVsaW5lIG9uIE1hdmVuIGNvcmUgaXMgdGhhdCB3ZQo+IGhhdmUKPiBmb3IgZXhhbXBsZSB0aGUgIm1hdmVuLTMueC1qZW5raW5zZmlsZS9NTkctNjI0MiAtIGJ1aWxkICMxIC0gbnVsbCIKPiBtZXNzYWdlLAo+IHdpdGggdGhpcyAibnVsbCIgcGFydCB0aGF0IG1ha2VzIG1lIHdvbmRlciBpZiB3ZSBhcmUgdXNpbmcgaXQgYXMgZXhwZWN0ZWQ9Ci4KPgo+IEFuZCBmb3IgbGFyZ2UgbXVsdGktbW9kdWxlIHN2biB0cnVua3MgKHRoZSBvbmVzIHdlIGRvbid0IG1pZ3JhdGUgdG8gZ2l0Ogo+IG1haW5seSBwbHVnaW5zIGFuZCBzaGFyZWQpLCBpcyB0aGVyZSBhIHNvbHV0aW9uIHRvIHJlYnVpbGQganVzdCBjaGFuZ2VkCj4gbW9kdWxlcz8KPgo+IGlkZWFsbHksIHRoZSByZWJ1aWxkIHdoZW4gYSBTTkFQU0hPVCBkZXBlbmRlbmN5IGlzIHB1Ymxpc2hlZCB3b3VsZCBoYXZlCj4gYmVlbiBhCj4gcGx1cywgYnV0IHRoaXMgaXMgc3VmZmljaWVudGx5IGEgcmFyZSB1c2UgdGhhdCBJIHdvbid0IGJlIGV4dHJlbWlzdAo+Cj4KPiBUaGVuIElJVUMsIHRoaXMgbWlncmF0aW9uIGpvYiBpcyBvbmUgYWRkaXRpb25hbCBUT0RPIGZvciBtZS4uLgo+Cj4gUmVnYXJkcywKPgo+IEhlcnY9QzM9QTkKPgo+IExlIHZlbmRyZWRpIDYgb2N0b2JyZSAyMDE3LCAxNzo0Njo1MyBDRVNUIEFybmF1ZCBIPUMzPUE5cml0aWVyIGEgPUMzPUE5Y3I9Cml0IDoKPiA+IEkgYWdyZWUgdGhhdCB3ZSBzaG91bGQgdXNlIHBpcGVsaW5lIG5vd2RheXMKPiA+IHBlcmhhcHMgYSBzaGFyZWQgbGliIGlmIHdlIHdhbnQgdG8gc3RhbmRhcmRpemUgc29tZSBzdHVmZnMgYW5kIGEgc2V0IG9mCj4gPiBtdWx0aS1icmFuY2hlcyBqb2JzIChvciBvcmcgZm9sZGVyIGJ1dCBpdCByZXF1aXJlcyBHaXRIdWIgOiggKQo+ID4KPiA+IE9uIEZyaSwgT2N0IDYsIDIwMTcgYXQgOToxNiBBTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPgo+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+IE9uIEZyaSA2IE9jdCAyMDE3IGF0IDA2OjMyLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj0KPgo+IHdyb3RlOgo+ID4gPiA+IEkganVzdCBmaXhlZCBhIGZldyBmYWlsaW5nIGpvYnMgWzFdIHRvIGhhdmUgYWdhaW4gYSB1c2FibGUgSmVua2lucy4KPiA+ID4gPgo+ID4gPiA+IE5vdyBJJ20gZmFjaW5nIHNvbWUgaXNzdWVzLCBJIHN1cHBvc2UgY2F1c2VkIGJ5IG5ld2VyIEplbmtpbnMKPiB2ZXJzaW9uczoKPiA+ID4gPiAtIE1hdmVuIDMuMC41IGNhdXNlcyBOb1N1Y2hNZXRob2RFcnJvcjogby5jLnBsZXh1cy51dGlsLnhtbC5wdWxsLgo+ID4gPgo+ID4gPiBNWFBhcnNlcgo+ID4gPgo+ID4gPiA+IFsyXQo+ID4gPiA+IC0gSSBoYWQgdG8gc3dpdGNoIHRvIEpESyA4IGZvciBtYXZlbi1wbHVnaW4tdG9vbHMgam9iLCBzaW5jZSBKREsKPiBjYXVzZXMKPiA+ID4gPiBmYWlsdXJlcyAobG9va3MgbGlrZSBKZW5raW5zIHVzZXMgYSBoYWNrIHRvIGluamVjdCBKREsgNyBhcyBhIHRvb2wKPiB3aGlsZQo+ID4gPiA+IHRoZQo+ID4gPiA+IGJ1aWxkIEpWTSBpcyBKYXZhIDgpCj4gPiA+ID4KPiA+ID4gPiBTaG91bGQgd2UgZHJvcCBNYXZlbiAzLjAuNSBidWlsZHMgYW5kIEpESyA3Pwo+ID4gPiA+IE5vdGljZSBJIGRpZG4ndCBjaGVjayB3aGljaCBpcyB0aGUgbWluaW11bSBNYXZlbiB2ZXJzaW9uIHJlcXVpcmVkLi49Ci4KPiA+ID4gPgo+ID4gPiA+IE9yIHBlcmhhcHMgc2ltcGx5IGRvbid0IHVzZSB0aGUgSmVua2lucyBNYXZlbiBwbHVnaW4gd2l0aCB0aGlzIE1hdmU9Cm4KPiA+ID4KPiA+ID4gMy4wLjUKPiA+ID4KPiA+ID4gPiBvcgo+ID4gPiA+IEpESyA3IGNvbmZpZ3VyYXRpb246IGRlZmF1bHQgYnVpbGQgYXMgSmVua2lucyBNYXZlbiBwbHVnaW4gd2l0aCBKREsKPiA4ICsKPiA+ID4gPiBsYXRlc3QKPiA+ID4gPiBNYXZlbiwgYW5kIG90aGVyIGNvbmZpZ3VyYXRpb25zIGFzIHNjcmlwdGVkIGpvYnM/Cj4gPiA+Cj4gPiA+IGh0dHA6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90LmllLzIwMTMvMTEvamVua2lucy1tYXZlbi1qb2ItPiA+Cj4gdHlwZS1jb25zaWRlcmVkLWV2aWwuaHRtbAo+ID4gPiA8aHR0cDovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuaWUvMjAxMy8xMS9qZW5raW5zLT4gPgo+IG1hdmVuLWpvYi10eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sP209M0QxPgo+ID4gPgo+ID4gPiBXZSBzaG91bGQgc3RvcCB1c2luZyB0aGUgZXZpbCBqb2IgdHlwZSBhcyBpdD1FMj04MD05OXMgbWluaW11bSBKYXZhIHY9CmVyc2lvbiBpcwo+ID4gPiBkaWN0YXRlZCBieSBKZW5raW5zPUUyPTgwPTk5IEphdmEgbWluaW11bS4KPiA+ID4KPiA+ID4gPiBXZSBuZWVkIHRvIGRlZmluZSBvdXIgY29tbW9uIHN0cmF0ZWd5IGFuZCBoYXZlIGEgY29uc2lzdGVudAo+ID4gPiA+IGNvbmZpZ3VyYXRpb24KPiA+ID4gPiBmb3IKPiA+ID4gPiBldmVyeSBqb2IgdW5kZXJzdG9vZCBieSBldmVyeWJvZHkKPiA+ID4KPiA+ID4gSSByZWNvbW1lbmQgSmVua2luc2ZpbGUgYW5kIHRoZSBgd2l0aE1hdmVuYCB3cmFwcGVyCj4gPiA+Cj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPgo+ID4gPiA+IEhlcnY9QzM9QTkKPiA+ID4gPgo+ID4gPiA+IFsxXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vCj4gPiA+ID4KPiA+ID4gPiBbMl0KPiA+ID4gPiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLT4gPgo+ID4gPiBwbHVnaW4tdG9vbHMtamRrLTEuNy8xNjIvY29uc29sZQo+ID4gPgo+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0tLS0tLS0tLQo+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+Cj4gPiA+ID4gLS0KPiA+ID4KPiA+ID4gU2VudCBmcm9tIG15IHBob25lCj4KPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKCi0tPTIwCi0tLS0tCkFybmF1ZCBIPUMzPUE5cml0aWVyCmh0dHA6Ly9haGVyaXRpZXIubmV0Ck1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tClR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKCi0tZjQwMzA0NWY4YjBjMWIzNWM5MDU1YWU1MWQ3Yy0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MTcyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBPY3QgIDcgMTk6NTE6MzQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTcyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDJCMkVGMTA1REIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgNyBPY3QgMjAxNyAxOTo1MTozNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk4MTM3IGludm9rZWQgYnkgdWlkIDUwMCk7IDcgT2N0IDIwMTcgMTk6NTE6MzMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk4MDQ2IGludm9rZWQgYnkgdWlkIDUwMCk7IDcgT2N0IDIwMTcgMTk6NTE6MzMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5ODAzMyBpbnZva2VkIGJ5IHVpZCA5OSk7IDcgT2N0IDIwMTcgMTk6NTE6MzMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA3IE9jdCAyMDE3IDE5OjUxOjMzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQzRENDlEMzZFNwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMTk6NTE6MzIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjM3OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjM3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgZE91ejdVYUEzczFPIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAgNyBPY3QgMjAxNyAxOTo1MTozMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXVhMC1mMTc3Lmdvb2dsZS5jb20gKG1haWwtdWEwLWYxNzcuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNy4xNzddKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMzcxOEQ1RjNGRgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMTk6NTE6MzEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdWEwLWYxNzcuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgYjExc28xMjgyMzY5N3VhZS4xMgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDA3IE9jdCAyMDE3IDEyOjUxOjMxIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPVZsZ3lTS3hkeDVEYVhxZjFUazFxVzZWaHNDSU11c3lNN2x1MGNLeElqZG89OwogICAgICAgIGI9SjRFemdyR1N3c1l5T0RSVUZQelNnZzA2bzhXbVhwODErc1pYejMvTW9CR0o3clg0eVZKT1VMRTdIMXF0WDFYdlRiCiAgICAgICAgIGE0TGNUNE5BRk1YWkJtZDhuSi9SbDVsK2RvM1RHUW1SL1Y3cHlVTHM5YnZLVnhnclFHWVAvSHE5dGF3d0JWeGNmc1F0CiAgICAgICAgIGV3MWp2aWVVYkVIc1Y0VGZhb3RrcVJOY09WQ1dKTStoem44N014amZLcER1elpLOVBOWklqTG10UGZBN1ZWcnVTNnlzCiAgICAgICAgIHF2NDBRUFA0ejJVQm95RW12QnJNQmxKQy9pbms4RW9vZWQ4Uyt1dzdLY3pBTFhaSldYdUtGUllVYWtnRzJaMmdmd28zCiAgICAgICAgIEtJaWhCU0NhZVhjRy85QUg0Z080YjZtczVkZjF2ZGdQWHVrVVpvalpuYmxybGpmN2tybWhVdXdyTllVVUIrOHBDR0F4CiAgICAgICAgIFZpRGc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPVZsZ3lTS3hkeDVEYVhxZjFUazFxVzZWaHNDSU11c3lNN2x1MGNLeElqZG89OwogICAgICAgIGI9ZEJlampSL2x5R3QybFU5bzVhenA0UWFDOU01WW53am5wcWRTdnk2aXZvY0pFeWhTWkJlWnR5bVpCOEs4dVpJS1hWCiAgICAgICAgIHgxZUI1NHlYS244d3NFampoRFVvaWFEeW1HbVh0dE8wenJHRzk4YnlabHphaGJXN2MzMlE3MFVKUklYV1ZOOHVHcTl3CiAgICAgICAgIDVOOS8rZy9IQk9SRkRVR01wR0hpMlU3akJteTlPNU5ONGhHSS83TEhtVHQrM0FROTVXT0xpNzczcEpQUUFtMGxyS2JVCiAgICAgICAgIGRjTVNrelA5cTZOS0VkeG1RaGgvek5RWmNSbGJUcnllYXRyZU1pcWhPcmdwTEtPUHJJRTRHVDl1L2JWN0pkVHd2S241CiAgICAgICAgIENJQWdRMFZyelpRRHBiNWxmcGdUQUVSNFZzOGl4K1U1MWR2dHVaOEtIbkh1UDJxZEtWWXFOaFJySnp3bVJPUzJlcC9tCiAgICAgICAgIDdHMGc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVVRSnlUTnY0aDF4WVhxTFRubHlLd3YyZWRuZk1TNWdZZ0tFdTNERTBoMXcrdjYyQ1F6CglKajhjOTVXbWRpWHZ4UGQ5ck03cm41d1FnWjBLdEoydkhMNXpTMW1WMHc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQVhKL1lqcS94VDZnQldpMzdQZHpRd0J3TnZJOE85dmNrUzBLdzcvQlVqRG9SRmY4c1BSSWVGUlVOY1BidDIwMWRnWVpJNURRTjBwU2VTK05FT3FYST0KWC1SZWNlaXZlZDogYnkgMTAuMTc2LjgwLjE4MyB3aXRoIFNNVFAgaWQgYzUybXIxMzUxOTl1YWEuMTYyLjE1MDc0MDU4ODk2MjI7CiBTYXQsIDA3IE9jdCAyMDE3IDEyOjUxOjI5IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzYuODUuMTM2IHdpdGggSFRUUDsgU2F0LCA3IE9jdCAyMDE3IDEyOjUxOjA5IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0ErblBuTXhuNW0zcERuRU10THNBc1VRbWgxSk01c291M3lkZS1WN3Z6SkxDRFcyOG1RQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8MTA1NDQ2MTUuQjRoTzNQbnZFekBnaWdhPiA8Q0ErblBuTXg5bjMwUXdUNkgxUGJmVlJ4TjNpOXRUdnlmbj1vNHhRd0VnMUJlc182d1F3QG1haWwuZ21haWwuY29tPgogPENBRk5DVS05cWFOZVhVZXM3TytCeFNQb0FwRHk1TERPVUJha1QxYzFGPWg4NkxKYkJTd0BtYWlsLmdtYWlsLmNvbT4gPENBK25Qbk14bjVtM3BEbkVNdExzQXNVUW1oMUpNNXNvdTN5ZGUtVjd2ekpMQ0RXMjhtUUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogPT9VVEYtOD9RP0FybmF1ZF9IPUMzPUE5cml0aWVyPz0gPGFoZXJpdGllckBnbWFpbC5jb20+CkRhdGU6IFNhdCwgNyBPY3QgMjAxNyAyMTo1MTowOSArMDIwMApNZXNzYWdlLUlEOiA8Q0FGTkNVLS0xZFI2Z0JTNDd3amRkZWM4Q3h3bU41Mit0b1BINTBBRjBac0hpbUJfWjFBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogSmVua2lucyBhbmQgTWF2ZW4gMy4wLjUgb3IgSkRLIDcKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iOTRlYjJjMThmZDIyOTU1Njg0MDU1YWZhNDg5MiIKCi0tOTRlYjJjMThmZDIyOTU1Njg0MDU1YWZhNDg5MgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPbiBGcmksIE9jdCA2LCAyMDE3IGF0IDEwOjUyIFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cgo+IE9uIEZyaSA2IE9jdCAyMDE3IGF0IDE2OjQ3LCBBcm5hdWQgSD1DMz1BOXJpdGllciA8YWhlcml0aWVyQGdtYWlsLmNvbT4gd3I9Cm90ZToKPgo+ID4gSSBhZ3JlZSB0aGF0IHdlIHNob3VsZCB1c2UgcGlwZWxpbmUgbm93ZGF5cwo+ID4gcGVyaGFwcyBhIHNoYXJlZCBsaWIgaWYgd2Ugd2FudCB0byBzdGFuZGFyZGl6ZSBzb21lIHN0dWZmcyBhbmQgYSBzZXQgb2YKPiA+IG11bHRpLWJyYW5jaGVzIGpvYnMgKG9yIG9yZyBmb2xkZXIgYnV0IGl0IHJlcXVpcmVzIEdpdEh1YiA6KCApCj4KPgo+IE5haCBJIGNhbiBnaXZlIHVzIG9yZyBmb2xkZXIgb24gdG9wIG9mIEFTRiBwdWJzdWIgcmVsYXRpdmVseSBlYXNpbHkKPgo+CgpJbnRlcmVzdGluZyA6LSkKCgo+Cj4gPgo+ID4gT24gRnJpLCBPY3QgNiwgMjAxNyBhdCA5OjE2IEFNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4KPiA+ID4gT24gRnJpIDYgT2N0IDIwMTcgYXQgMDY6MzIsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPQo+Cj4gd3JvdGU6Cj4gPiA+Cj4gPiA+ID4gSSBqdXN0IGZpeGVkIGEgZmV3IGZhaWxpbmcgam9icyBbMV0gdG8gaGF2ZSBhZ2FpbiBhIHVzYWJsZSBKZW5raW5zLgo+ID4gPiA+Cj4gPiA+ID4gTm93IEknbSBmYWNpbmcgc29tZSBpc3N1ZXMsIEkgc3VwcG9zZSBjYXVzZWQgYnkgbmV3ZXIgSmVua2lucwo+IHZlcnNpb25zOgo+ID4gPiA+IC0gTWF2ZW4gMy4wLjUgY2F1c2VzIE5vU3VjaE1ldGhvZEVycm9yOiBvLmMucGxleHVzLnV0aWwueG1sLnB1bGwuCj4gPiA+IE1YUGFyc2VyCj4gPiA+ID4gWzJdCj4gPiA+ID4gLSBJIGhhZCB0byBzd2l0Y2ggdG8gSkRLIDggZm9yIG1hdmVuLXBsdWdpbi10b29scyBqb2IsIHNpbmNlIEpESwo+IGNhdXNlcwo+ID4gPiA+IGZhaWx1cmVzIChsb29rcyBsaWtlIEplbmtpbnMgdXNlcyBhIGhhY2sgdG8gaW5qZWN0IEpESyA3IGFzIGEgdG9vbAo+ID4gd2hpbGUKPiA+ID4gPiB0aGUKPiA+ID4gPiBidWlsZCBKVk0gaXMgSmF2YSA4KQo+ID4gPiA+Cj4gPiA+ID4gU2hvdWxkIHdlIGRyb3AgTWF2ZW4gMy4wLjUgYnVpbGRzIGFuZCBKREsgNz8KPiA+ID4gPiBOb3RpY2UgSSBkaWRuJ3QgY2hlY2sgd2hpY2ggaXMgdGhlIG1pbmltdW0gTWF2ZW4gdmVyc2lvbiByZXF1aXJlZC4uPQouCj4gPiA+ID4KPiA+ID4gPiBPciBwZXJoYXBzIHNpbXBseSBkb24ndCB1c2UgdGhlIEplbmtpbnMgTWF2ZW4gcGx1Z2luIHdpdGggdGhpcyBNYXZlPQpuCj4gPiA+IDMuMC41Cj4gPiA+ID4gb3IKPiA+ID4gPiBKREsgNyBjb25maWd1cmF0aW9uOiBkZWZhdWx0IGJ1aWxkIGFzIEplbmtpbnMgTWF2ZW4gcGx1Z2luIHdpdGggSkRLCj4gOCArCj4gPiA+ID4gbGF0ZXN0Cj4gPiA+ID4gTWF2ZW4sIGFuZCBvdGhlciBjb25maWd1cmF0aW9ucyBhcyBzY3JpcHRlZCBqb2JzPwo+ID4gPgo+ID4gPgo+ID4gPiBodHRwOi8vamF2YWFkdmVudHVyZS5ibG9nc3BvdC5pZS8yMDEzLzExL2plbmtpbnMtbWF2ZW4tam9iLQo+ID4gPiB0eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sCj4gPiA+IDxodHRwOi8vamF2YWFkdmVudHVyZS5ibG9nc3BvdC5pZS8yMDEzLzExL2plbmtpbnMtCj4gPiA+IG1hdmVuLWpvYi10eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sP209M0QxPgo+ID4gPgo+ID4gPiBXZSBzaG91bGQgc3RvcCB1c2luZyB0aGUgZXZpbCBqb2IgdHlwZSBhcyBpdD1FMj04MD05OXMgbWluaW11bSBKYXZhIHY9CmVyc2lvbiBpcwo+ID4gPiBkaWN0YXRlZCBieSBKZW5raW5zPUUyPTgwPTk5IEphdmEgbWluaW11bS4KPiA+ID4KPiA+ID4KPiA+ID4gPgo+ID4gPiA+IFdlIG5lZWQgdG8gZGVmaW5lIG91ciBjb21tb24gc3RyYXRlZ3kgYW5kIGhhdmUgYSBjb25zaXN0ZW50Cj4gPiBjb25maWd1cmF0aW9uCj4gPiA+ID4gZm9yCj4gPiA+ID4gZXZlcnkgam9iIHVuZGVyc3Rvb2QgYnkgZXZlcnlib2R5Cj4gPiA+Cj4gPiA+Cj4gPiA+IEkgcmVjb21tZW5kIEplbmtpbnNmaWxlIGFuZCB0aGUgYHdpdGhNYXZlbmAgd3JhcHBlcgo+ID4gPgo+ID4gPiA+Cj4gPiA+ID4KPiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+Cj4gPiA+ID4gSGVydj1DMz1BOQo+ID4gPiA+Cj4gPiA+ID4gWzFdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi8KPiA+ID4gPgo+ID4gPiA+IFsyXQo+ID4gPiA+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tCj4gPiA+IHBsdWdpbi10b29scy1qZGstMS43LzE2Mi9jb25zb2xlCj4gPiA+ID4KPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtLS0tLS0tLS0KPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPgo+ID4gPiA+IC0tCj4gPiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4gPgo+ID4KPiA+Cj4gPgo+ID4gLS0KPiA+IC0tLS0tCj4gPiBBcm5hdWQgSD1DMz1BOXJpdGllcgo+ID4gaHR0cDovL2FoZXJpdGllci5uZXQKPiA+IE1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tCj4gPiBUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyCj4gPgo+IC0tCj4gU2VudCBmcm9tIG15IHBob25lCj4KCgoKLS09MjAKLS0tLS0KQXJuYXVkIEg9QzM9QTlyaXRpZXIKaHR0cDovL2FoZXJpdGllci5uZXQKTWFpbC9HVGFsazogYWhlcml0aWVyIEFUIGdtYWlsIERPVCBjb20KVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcgoKLS05NGViMmMxOGZkMjI5NTU2ODQwNTVhZmE0ODkyLS0KCkZyb20gZGV2LXJldHVybi0xMjM5MzItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIFNlcCAxMCAyMDowMTozMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5MzItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNzI1MjUxQUVBOQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDIwOjAxOjMxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODY4NzAgaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgU2VwIDIwMTcgMjA6MDE6MzEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg2NzY0IGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIFNlcCAyMDE3IDIwOjAxOjMwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODY3NTIgaW52b2tlZCBieSB1aWQgOTkpOyAxMCBTZXAgMjAxNyAyMDowMTozMCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTAgU2VwIDIwMTcgMjA6MDE6MzAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBGMjg3NDFBMkQzMgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMjA6MDE6MjkgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjYyOQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjYyOSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTE9UU09GSEFTSD0wLjI1LCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgeDFJTm1vcm54bHEzIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAxMCBTZXAgMjAxNyAyMDowMToyOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXVhMC1mMTczLmdvb2dsZS5jb20gKG1haWwtdWEwLWYxNzMuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNy4xNzNdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQUUzODk1RjNEMQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMjA6MDE6MjcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdWEwLWYxNzMuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgcTI5c285MjE3NDk3dWFmLjMKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAxMzowMToyNyAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1DWlpnYUxTTFhlYnA4THNKeWJFTEJ1WTlrOXFvakFZdVlCTUxZQ1gwM1BjPTsKICAgICAgICBiPXFnN0s1Rzd4OTA3eW1pMDJVRzRIa1hMMWxveldWb0tiWWh5QmxuWTNheTMzYjB2U084UGpCeHVjVHAvNndlcHBiTAogICAgICAgICBIVVE1SDljREU2bzVuVUFxTFhTTytNdWdZaXRqcTFYWWxVNnVLMGdLZlhta3J5RWdnR0NYMUhWV2ErS3ZIa0xyK1ZsOQogICAgICAgICBZRG0vZzl5TkZxQTNhdVJrT2NxaVZRbVRQbmwrdFdEMExmRFQrTi9XelhzVEZmQ0srdEtZYnlRRS9OTnAvQW1ieGx3bAogICAgICAgICBHVnhOS2VYWDhQZGFFWXZFbUcxZDdHdmhjNm8vVzUwalhlR3dBTW5HR1NPajR3K0ZQYlM1U1F4YkpJKy9wQUM0bEpvTwogICAgICAgICBPeTNncUxHK3RXRzJaQXRxbzFXUExZYWtUc3FJOWY5MWlKR0NTZ0orYlNkR0lsYzNVdDZydEVTQko2Z3doYzZnVEVSOQogICAgICAgICBmS3NRPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1DWlpnYUxTTFhlYnA4THNKeWJFTEJ1WTlrOXFvakFZdVlCTUxZQ1gwM1BjPTsKICAgICAgICBiPVpKMGVCeUlBdTZpWC9ibGlCYkNGT3RSRVlUejM2eFdTcG5ma2VMY0ZYZ0M4QWVCeEpZL0EwYlNTSytnY0IvZDdDKwogICAgICAgICA5dWhZelZGVzI4aG1kOVZQZ3dWb0E2bXZrRUs0d0dYZzhpQzRSanN5cjl4cWcxSFArVTljSmptRmhYZGNaakhPVDlxMAogICAgICAgICBZemNPbkdYbkZrNmpwRTUwUFhGcHkvRUdSQmdISUwwSUlZN3RvQjNhcVpTMW1YZ2RBQWNJankyemlVNWd0TnFHb1YvegogICAgICAgICBobU1TaUlXY09qa0wveEdWblJhRythWU5XMG1QM0dLZzcrWGZiS0lQS3M4WmFDeUcwcmVOWEM2VHdHMmxzVVZ6WktvNAogICAgICAgICAzYy93clE4b1ZuRURBektQZTVVUGduRysrSjFPaVEwaHA2OUUwZmtmUXh2OFM0cmlDditnb3BiRW01VC9xMjdXNEpBdQogICAgICAgICBoN3J3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVnUE9IYW45TW01NGp0akY4dFQzMTcwVnh6aTIwdlc2YXpyd1FCbE13UFExc3NXZi91SQoJRGordTNONkFhOGFjeFdEeUwzNjhLSUZYQVYvcFVrY3AKWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UURQNnRWeUYwVFNNWGJvTGxFc3NLMGFBZVREa1M4RlNwNCtoTlVRSUlFdVdiUUxpZE1NN1pwZW9pZ1ZmTDRMVkhod1ZwdjBPd0hCRzhOMGpwSjk2NDQ9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjE3Ni4yLjg3IHdpdGggU01UUCBpZCA4MW1yNzMzNzA4NnVhcy4xNjIuMTUwNTA3MzY4NjI4MDsgU3VuLAogMTAgU2VwIDIwMTcgMTM6MDE6MjYgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjE1OS4zNS44NyB3aXRoIEhUVFA7IFN1biwgMTAgU2VwIDIwMTcgMTM6MDE6MDUgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxDQStuUG5NeHlHMk5lUFhwVnFhd2U5alI9aXRIRVQ2VXVkbk45Q2pIaHY9b28tS0NyeHdAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQStuUG5NeHlHMk5lUFhwVnFhd2U5alI9aXRIRVQ2VXVkbk45Q2pIaHY9b28tS0NyeHdAbWFpbC5nbWFpbC5jb20+CkZyb206ID0/VVRGLTg/UT9Bcm5hdWRfSD1DMz1BOXJpdGllcj89IDxhaGVyaXRpZXJAZ21haWwuY29tPgpEYXRlOiBTdW4sIDEwIFNlcCAyMDE3IDIyOjAxOjA1ICswMjAwCk1lc3NhZ2UtSUQ6IDxDQUZOQ1UtLTJ2cmQ1QmVUdmt4S0N5WDJaUWVQcWl4N1g9d21Wc1dkTTVkNDlYZU5nT3dAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExMzc2MzRhNmU4YWE5MDU1OGRiNDZiNiIKCi0tMDAxYTExMzc2MzRhNmU4YWE5MDU1OGRiNDZiNgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpUZXN0ZWQgb24gc2V2ZXJhbCBwcm9qZWN0cwoKKzEKCk9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDU6MzkgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgPApzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKCj4gSGksCj4KPiBXZSBzb2x2ZWQgMjUgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiB2ZXJzaW9uPTNEMTIzMzg5NjQmc3R5bGVOYW1lPTNEVGV4dCZwcm9qZWN0SWQ9M0QxMjMxNjkyMgo+Cj4gVGhlcmUgYXJlIDM1MCBpc3N1ZXMgbGVmdCBpbiBKSVJBIGZvciBNYXZlbiBjb3JlOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlCj4gM0QlMjBNTkclMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJQo+IDIwQlklMjBkdWUlMjBBU0MlMkMlMjBwcmlvcml0eSUyMERFU0MlMkMlMjBjcmVhdGVkJTIwQVNDCj4KPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2NC8KPgo+IFRoZSBkaXN0cmlidXRhYmxlIGJpbmFyaWVzIGFuZCBzb3VyY2VzIGNhbiBiZSBmb3VuZCBoZXJlOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvCj4KPiBTcGVjaWZpY2FsbHkgdGhlIHppcCwgdGFyYmFsbCBhbmQgc291cmNlIGFyY2hpdmVzIGNhbiBiZSBmb3VuZCBoZXJlOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLWJpbi56aXAKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1iaW4udGFyLmd6Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcAo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy50YXIuZ3oKPgo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMudGFyLmd6IHNoYTE6IDllYjgyMWYxNTNjNzY2NzE5NGFhMTFjY2QwOTliNwo+IGJkMjA1OTU2MGQKPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcDogc2hhMTogMTIxZDU0YjA0NTM4MGE4YTQ4OTVlYjEzNzk3MGFiNjllNjk4ZWIwPQplCj4KPiBHaXQgdGFnOgo+IGh0dHBzOi8vZ2l0LXdpcC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPTNEbWF2ZW4uZ2l0O2E9M0Rjb21taXQ7aD0zRAo+IDA5NGU0ZTMxYTVhZjU1YmIxN2JlODc2NzVkYTQxZDlhZWNhMDYyZjMKPgo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvY29tcG9uZW50cy9yZWYvMy1MQVRFU1QvCj4KPiBWb3RlIG9wZW4gZm9yIDcyIGhvdXJzLgo+Cj4gWyBdICsxCj4gWyBdICswCj4gWyBdIC0xCj4KPiBUaGFua3MsCj4KPiBTdGVwaGVuLgo+CgoKCi0tPTIwCi0tLS0tCkFybmF1ZCBIPUMzPUE5cml0aWVyCmh0dHA6Ly9haGVyaXRpZXIubmV0Ck1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tClR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKCi0tMDAxYTExMzc2MzRhNmU4YWE5MDU1OGRiNDZiNi0tCgpGcm9tIGRldi1yZXR1cm4tMTIzOTIzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBTZXAgMTAgMTY6NTI6NDQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTIzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDAyRjY2MUFDMjAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAxNjo1Mjo0NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE1NzEgaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgU2VwIDIwMTcgMTY6NTI6NDMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE0OTkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgU2VwIDIwMTcgMTY6NTI6NDMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNDg3IGludm9rZWQgYnkgdWlkIDk5KTsgMTAgU2VwIDIwMTcgMTY6NTI6NDMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDEwIFNlcCAyMDE3IDE2OjUyOjQzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQ0JBRTQxQTJDNzgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDE2OjUyOjQyICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi4zNzkKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi4zNzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBNb0NHdWxhOVkzb0UgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sIDEwIFNlcCAyMDE3IDE2OjUyOjQxICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtdWEwLWYxNzQuZ29vZ2xlLmNvbSAobWFpbC11YTAtZjE3NC5nb29nbGUuY29tIFsyMDkuODUuMjE3LjE3NF0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBCRDdCRDVGNkM4Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAxNjo1Mjo0MCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC11YTAtZjE3NC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBxMjlzbzg5NDUzNDZ1YWYuMwogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDA5OjUyOjQwIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXRvMS9hVzV3R3h5WDhEaCsvaG1FTlEvNEs4OFQ3Mk5iMm5wUSt5bkNDekU9OwogICAgICAgIGI9R1Q1bzNmSDUrbmROTHJuanI4OFhJRUtNZUFLUCtZMkhuQ0tjcjZKek8za0pNMjNoWUZSSzZNc3hQSWxuRHZlZ2doCiAgICAgICAgIDNqd1hTbFliRzJGUWNPM0xkcTNnZFFuck10NGIzeVJ5ZmJDaTlBRExyR3Avc2srTURnVEdxQ1FhVnF0U1Nvenp1d09pCiAgICAgICAgIEZqNXBIc3M3ZWNVYXJmYTZaWW5KL1l4VEIvMEJMU0hZSWpMWWFrV3VsRTFNTGQ1QWpLNUF2SkwwTWFYbFB1M3hOZXNyCiAgICAgICAgIGc4Rzh6dTZ1SGRGNmJiUDIxc3NQWEl6QlRTdTY4MjI3UVcyaHRVbnlJZnlRSkJpYjRZV1BFRlBVMlZad2I0ZHRCdFllCiAgICAgICAgIDVFcTNEclUvY2NwSEFvQ0h5UFpoTmJ1Tkh3UE5tZlJabWhrSW1EQVZySkdjNldXbkp3YlpPdHNyMUZVRHF0dHJJcHBjCiAgICAgICAgIEZqRUE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXRvMS9hVzV3R3h5WDhEaCsvaG1FTlEvNEs4OFQ3Mk5iMm5wUSt5bkNDekU9OwogICAgICAgIGI9bWsxRkpIT0JKMm9hUmt1Y2FQVElwdkg3ay9VZEkrNGJIQnExb0lZWFQxSUVwcDNsWUhNZnMyenZWWElvbGdPbjFkCiAgICAgICAgIHprRUYvbU9SU05FUWllVmpsY2ZZTHlmYkVoOS9qYm9hVkkxU1ZkWmg3YlA4a1dBdTVlL0ltQUIzOVgyQWdCb3RNN2lBCiAgICAgICAgIGZqNyt1MysvSjZ1QWFjbS92YlQ2N1ZQVEJXbDJCM0wvREFWSzdIUGJscWg4ZXg4bEJHaFF4czZESUtUM25nNldkYjJLCiAgICAgICAgIHc4cVF3REVxNEJpQkg2cnBoT3gyNk9HMHY5T0c5cU03VVM1dDBqQ2ozOE5jQ0RHU3UvWG9MU3owVUM1anI5dHdReHVkCiAgICAgICAgIGphcXBMdk1DR0xEMGJWQk5jbElhTHVMZEVlUDFvdGZ2bE5JcTkvd0F0VW40V3BHWU9GTVQwNkJFY043RmV2ejFkbWhRCiAgICAgICAgIFdPREE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWg1Q0lSQURCZEtZUkdISUpheUNBZTk5L2wwdS9GQkdISEQ3WEhNYnJvbkVrRGFpbXdUCgl4QnVYc3RrV3F1ZHppcS9JVzlvQlpDWFNia0RObWpTSQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQWt3M1VZWmtpZERsLzgzUnR5OFBuOFhJdDlzT1ZPN1JJV2U3MXduY0FaTGd0VmJHUnBHWk1FM0ovZDBiUmRFajJ0QmREQndKejhUaDFPVUo0ZVljUT0KWC1SZWNlaXZlZDogYnkgMTAuMTU5LjU3Ljg4IHdpdGggU01UUCBpZCBpMjRtcjY3NDMxNzh1YWcuMTguMTUwNTA2MjM1NDAxMzsKIFN1biwgMTAgU2VwIDIwMTcgMDk6NTI6MzQgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPENBK25Qbk16ejJ1Nj1jZFU1K2gxSHN2V2hTNENUNXprWXpyV0NFb3ctRzhDenYrbVkyZ0BtYWlsLmdtYWlsLmNvbT4KIDxDQStuUG5Neit2SGtrbXMxM0VDaHc1a0dCblhEazkzX0hyNUY3NitEZXRibnBxZmlHWHdAbWFpbC5nbWFpbC5jb20+CiA8b3AueTZjeXhqZ2NrZGtocnJAZGVza3RvcC0ya2hzazQ0PiA8Q0FDWmtYUHdPRVgrZDVNNzZVMk0tVW1zVmtrTGNQSENlQ1R0MlNKazRmeXhSYkgybXlBQG1haWwuZ21haWwuY29tPgpJbi1SZXBseS1UbzogPENBQ1prWFB3T0VYK2Q1TTc2VTJNLVVtc1Zra0xjUEhDZUNUdDJTSms0Znl4UmJIMm15QUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogPT9VVEYtOD9RP0FybmF1ZF9IPUMzPUE5cml0aWVyPz0gPGFoZXJpdGllckBnbWFpbC5jb20+CkRhdGU6IFN1biwgMTAgU2VwIDIwMTcgMTY6NTI6MjIgKzAwMDAKTWVzc2FnZS1JRDogPENBRk5DVS0tTE9PTTQxbzhxSjNzeHRBYW1acTNERFc9MW1VRzhPVXRRQmZPTlM5djhpUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtSRVNVTFRdIFJlOiBQbGVhc2UgcmV0d2VldCBhbmQgdm90ZQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSJmNDAzMDQzZWRlZWNmOWQ1MmEwNTU4ZDhhMjg1IgoKLS1mNDAzMDQzZWRlZWNmOWQ1MmEwNTU4ZDhhMjg1CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkJ1dCBvbiB0d2l0dGVyIHRodXMgcHJvYmFibHkgZmFyIGZyb20gYmVpbmcgYSBnb29kIHJlcHJlc2VudGF0aW9uIG9mIG91cgp1c2VycyAuLi4KCkxlIGRpbS4gMTAgc2VwdC4gMjAxNyA9QzM9QTAgMTg6NDUsIEdhcnkgR3JlZ29yeSA8Z2FyeWRncmVnb3J5QGdtYWlsLmNvbT4gYQo9QzM9QTljcml0IDoKCj4gT24gU2VwIDEwLCAyMDE3IDEwOjMzLCAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4gd3JvdGU6Cj4KPiBTbyB3aGF0IHdvdWxkIGJlIHRoZSBjb25jbHVzaW9uPwo+Cj4gMzUlIHdhbnQgdG8ga2VlcCBKYXZhNyBhcyBKUkUgZm9yIE1hdmVuIGZvciBhIHNob3J0ZXIgb3IgbG9uZ2VyIHBlcmlvZD8KPgo+IElNSE8gdGhhdCdzIGEgbG90Cj4KPgo+IGJ1dCBsZXNzIHRoYW4gdGhlIDY1JSB3aG8gZG8gbm90LCBhbiBvdmVyd2hlbG1pbmcgbWFqb3JpdHkuCj4KPiBHYXJ5Cj4KPgo+IFJvYmVydAo+Cj4KPiBPbiBTdW4sIDEwIFNlcCAyMDE3IDExOjU1OjIwICswMjAwLCBTdGVwaGVuIENvbm5vbGx5IDwKPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPgo+IFNvIHBvbGwgcmVzdWx0czoKPiA+Cj4gPiA0OTMgdm90ZXMgY2FzdAo+ID4KPiA+IDI1JSB3YW50IEphdmEgNyw4JjkgZm9yIE1hdmVuIDMuNi54Cj4gPiA2NSUgd2FudCBKYXZhIDgmOSBmb3IgTWF2ZW4gMy42LngKPiA+IDEwJSB3YW50IEphdmEgOCY5IGZvciBNYXZlbiAzLjYueCBhbmQgNiBtb250aHMgb2YgYmFja3BvcnRpbmcgdG8gMy41LngKPiA+Cj4gPiBPbiBTYXQgOSBTZXAgMjAxNyBhdCAxMTo1MCwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+Cj4gPiBodHRwczovL3R3aXR0ZXIuY29tL2FzZm1hdmVucHJvamVjdC9zdGF0dXMvOTA2NDUxMDU5OTY2NjkzMzc2Cj4gPj4gLS0KPiA+PiBTZW50IGZyb20gbXkgcGhvbmUKPiA+Pgo+ID4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgotLT0yMAotLS0tLQpBcm5hdWQgSD1DMz1BOXJpdGllcgpodHRwOi8vYWhlcml0aWVyLm5ldApNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQpUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyCgotLWY0MDMwNDNlZGVlY2Y5ZDUyYTA1NThkOGEyODUtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDI0Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gT2N0IDE1IDIxOjAxOjEzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI0Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAwOEVENUNGN0YKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxNSBPY3QgMjAxNyAyMTowMToxMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE2NTgzIGludm9rZWQgYnkgdWlkIDUwMCk7IDE1IE9jdCAyMDE3IDIxOjAxOjEyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNjUwNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNSBPY3QgMjAxNyAyMTowMToxMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE2NDk1IGludm9rZWQgYnkgdWlkIDk5KTsgMTUgT2N0IDIwMTcgMjE6MDE6MTIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDE1IE9jdCAyMDE3IDIxOjAxOjEyICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgOEE2MDExQTFGNjAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDE1IE9jdCAyMDE3IDIxOjAxOjExICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi44OApYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjg4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEhUTUxfT0JGVVNDQVRFXzA1XzEwPTAuMDAxLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFltRVZqbXV0TnpnSSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgMTUgT2N0IDIwMTcgMjE6MDE6MTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC11YTAtZjE3OS5nb29nbGUuY29tIChtYWlsLXVhMC1mMTc5Lmdvb2dsZS5jb20gWzIwOS44NS4yMTcuMTc5XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDg4MjQwNUZDRTUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDE1IE9jdCAyMDE3IDIxOjAxOjA5ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXVhMC1mMTc5Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGkzNXNvODQzNzcyMHVhaC45CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTUgT2N0IDIwMTcgMTQ6MDE6MDkgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9T1BNWUIzdVBkM0JMUGVrU0J2OWwvUFBMZWx2d1BpRWZKZnlnUEoybkNjQT07CiAgICAgICAgYj1PQXM0UWZpTXdrRHJCYkVzOXJzUHVhdVIyL04wNkZ4d0dKYkdPWVFMZjQwT2Z1Y0F4MHFIOXJVRzNLU3NuSFJwWFgKICAgICAgICAgRmw5T3JkbmJSRm15bUJ4RG4xN2VKVXNiOTVxZ0w1dmtRTGtjajRCYjRDM0ZGU2d2VmVkd3I2T25RNVJnellEUFZOa2MKICAgICAgICAgTlBwT2tyMXg2SnA5dVdzUzFoTkVVTTEwdHhaVGNydjFCUWs0UG9Bek5RKzRiY1QzTnRrd3g0WnZ0b1lQaEJWNUp1RnYKICAgICAgICAgb0ZpcGN4V1ZYYjhDcGtndFVkWTVMSTZWNThQMitWbllyVHlNMDY2bGkrenByRm5qQzc3eU1adThqT0V1UGQzd3AvajEKICAgICAgICAgWlpIRDlLa0VQSE5lVnJlZDgxZytxNXU3MHlTVUhRTFEwT1dVVUZNZlExUEJHZzVaNTFzV1l4bmI4bEIzb3ZSTGZNaFAKICAgICAgICAgeThqZz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9T1BNWUIzdVBkM0JMUGVrU0J2OWwvUFBMZWx2d1BpRWZKZnlnUEoybkNjQT07CiAgICAgICAgYj1SVDg0OElxYUdtOEVVRmFTcWpxa3JVclQ0ZGpzMkhqdFZYRTJJeitNWm85WXhTcXhjK25TQlBBeUNmR3B1cWIxbmcKICAgICAgICAgOFd0YTRqOUk0RnI3bTRlUk05R29xSG1kZm5xbmt4NHU2dVg0TktEY2owRUZLNmVuSitrRHFndi9PSUNoNlk4Z3BhTmUKICAgICAgICAganYrSlhVOE9QT0hYUDQra05NYU9LR0pwWVZBSm9EcXpCd0hBY3VpenAyMWV2Y3hlRDFUeC9sd04vRFNHeHhROVhGemgKICAgICAgICAgdFVMbTFtaDhUTVZFYlZBNkRDVk5pa0ZFYk9EclV5RjYrQUh5RGZyL3RYc2ZmZG9MejMyKzRJalE1UzJZSEtaQTlsQ0QKICAgICAgICAgMDhQRzZiNzMzbkFvMjQ1NElIUm9PNGtObHlwZmtyQWpHY1hYajIrb2tUOTVqQzRIa3luczVKaUZ5VlR2dzZlM0sxaWYKICAgICAgICAgSG9Jdz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVkZsb2x3R3BaL1lxVElxYkltTGxNK0E4M0dFaGkwZ1UrUDlxdTZ4eXhXMFlsQlQ2K3cKCWRkZXpkbGhpbWJ1enBsSGkzaisyOWlRNDRpYXNFUFJ4aHFERDd2akZjZz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FCUlVNSTk5UzlQbVFBOThzL2NCTUFjcmdyRGd3d3JGbXhhbk5lSXNKQUlwOHZ2N3ppc1JUb2t6N2phMC9FV2NUQkl4K2ZhaUxMOE9XSmp0N3ZwLzBZPQpYLVJlY2VpdmVkOiBieSAxMC4xNzYuODAuMTgzIHdpdGggU01UUCBpZCBjNTJtcjYyMTQ4NjN1YWEuMTYyLjE1MDgxMDEyNjc5NDM7CiBTdW4sIDE1IE9jdCAyMDE3IDE0OjAxOjA3IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzYuODUuMTM2IHdpdGggSFRUUDsgU3VuLCAxNSBPY3QgMjAxNyAxNDowMDo0NyAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPG9wLnk3NXFncmZja2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpSZWZlcmVuY2VzOiA8Mzk4MzY5Ny4wSERHUFljQWZBQGdpZ2E+IDxvcC55NzVxZ3JmY2tka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KRnJvbTogPT9VVEYtOD9RP0FybmF1ZF9IPUMzPUE5cml0aWVyPz0gPGFoZXJpdGllckBnbWFpbC5jb20+CkRhdGU6IFN1biwgMTUgT2N0IDIwMTcgMjM6MDA6NDcgKzAyMDAKTWVzc2FnZS1JRDogPENBRk5DVS0tZUtvZERDRWh0YmphYWd3anFiY01vN2lLYVY4SzZjb21wVEx2R0ctZD01QUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBSZXBvcnRpbmcgRXhlYyB2ZXJzaW9uIDEuNApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSI5NGViMmMxOGZkMjI1Yzc2Y2UwNTViOWMzMDgwIgoKLS05NGViMmMxOGZkMjI1Yzc2Y2UwNTViOWMzMDgwCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCisxCgpPbiBTdW4sIE9jdCAxNSwgMjAxNyBhdCA1OjU0IFBNLCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Cndyb3RlOgoKPiArMQo+Cj4KPiBPbiBGcmksIDEzIE9jdCAyMDE3IDAyOjA5OjU4ICswMjAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlPQplLmZyPgo+IHdyb3RlOgo+Cj4gSGksCj4+Cj4+IFdlIHNvbHZlZCAzIGlzc3VlczoKPj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhPwo+PiBwcm9qZWN0SWQ9M0QxMjMxNzkyMiZ2ZXJzaW9uPTNEMTIzMzg2MjEKPj4KPj4gU3RhZ2luZyByZXBvOgo+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzcyCj4+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzIvb3JnL2FwYWNoZT0KLwo+PiBtYXZlbi9yZXBvcnRpbmcvbWF2ZW4tcmVwb3J0aW5nLWV4ZWMvMS40L21hdmVuLXJlcG9ydGluZy1leGVjLTEuNC1zb3VyY2U9Ci0KPj4gcmVsZWFzZS56aXAKPj4KPj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4+IG1hdmVuLXJlcG9ydGluZy1leGVjLTEuNC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMToKPj4gYzFmM2MxMmEyNGVjNDUxM2Y1YWRiYjQxNTJlYzZhMzE0ZjBjNGEyYgo+Pgo+PiBTdGFnaW5nIHNpdGU6Cj4+IGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3NoYXJlZC1hcmNoaXZlcy9tYXZlbi1yZXBvcnRpbmctZXhlYy1MQVRFU1QvCj4+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+PiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+PiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+PiAgICBbIF0gKzEKPj4gICAgIFsgXSArMAo+PiAgICAgWyBdIC0xCj4+Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+CgoKLS09MjAKLS0tLS0KQXJuYXVkIEg9QzM9QTlyaXRpZXIKaHR0cDovL2FoZXJpdGllci5uZXQKTWFpbC9HVGFsazogYWhlcml0aWVyIEFUIGdtYWlsIERPVCBjb20KVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcgoKLS05NGViMmMxOGZkMjI1Yzc2Y2UwNTViOWMzMDgwLS0KCkZyb20gZGV2LXJldHVybi0xMjQxMzktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE9jdCAgMyAxODoyMjo0MyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxMzktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQTZERjcxMDI1QgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsICAzIE9jdCAyMDE3IDE4OjIyOjQzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzAxNTggaW52b2tlZCBieSB1aWQgNTAwKTsgMyBPY3QgMjAxNyAxODoyMjo0MyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzAwOTAgaW52b2tlZCBieSB1aWQgNTAwKTsgMyBPY3QgMjAxNyAxODoyMjo0MyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMwMDc4IGludm9rZWQgYnkgdWlkIDk5KTsgMyBPY3QgMjAxNyAxODoyMjo0MiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMDMgT2N0IDIwMTcgMTg6MjI6NDIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAyNTA4QjFBMTAyOAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgIDMgT2N0IDIwMTcgMTg6MjI6NDIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC4xIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44LCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDEsCglVUklCTF9CTE9DS0VEPTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgVkJYcEhsc1ZGLVo5IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVHVlLCAgMyBPY3QgMjAxNyAxODoyMjo0MCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXZrMC1mNDMuZ29vZ2xlLmNvbSAobWFpbC12azAtZjQzLmdvb2dsZS5jb20gWzIwOS44NS4yMTMuNDNdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMDUxQjA1RkI1NwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgIDMgT2N0IDIwMTcgMTg6MjI6NDAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdmswLWY0My5nb29nbGUuY29tIHdpdGggU01UUCBpZCBoNjNzbzUwOTIwMDB2a2EuNAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDAzIE9jdCAyMDE3IDExOjIyOjM5IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPVhxWHRJZXdwbzdFYnZZM3BVUTMvTUFFUlJ4WE53cVFGSVpURGl4elZrNGc9OwogICAgICAgIGI9cU1MaEhmaXlOSkRSNStPTG9HQ0I1YTZITDNPWWQrZVVieGJaRSttVzRDc3lnbWJSdlErR3lOVU1iNmNQWlUxY1BvCiAgICAgICAgIFJnbVNxTThMUyt6SldUWmQzWmpkbDVTNDlZbTZ0ei9jYnUyMWZoRmoxUklhVDVDU3lWWXFmcFJ0RHF4OWUxRDlyeGtBCiAgICAgICAgIElZQTI2RENQT2JEdWpBVHJTMkNKYlJ3R1F6bzRzbzRBbG5BNUJLUS9wQ09rZE0wNXFkalV0QzF6a0RtQ2NRcDFUK1IvCiAgICAgICAgIFRIQ2NrdzR4VDZCNXJENzBpMVplUTdxMXJBbTEvdmVGa1ZPRllHM0lkbmsydEFzaDh1UXhxQmpXVXNBdU0yNTVyT056CiAgICAgICAgIHdFNWdGU0Fqd0VRdDZRcUw1M3R0WHFIdEVNeWhtVWlaSkh5eEZoVGlTdkxBaVkzVjRrdFc2YVpFcnQ1SHBocXRJdmErCiAgICAgICAgIEJXZkE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPVhxWHRJZXdwbzdFYnZZM3BVUTMvTUFFUlJ4WE53cVFGSVpURGl4elZrNGc9OwogICAgICAgIGI9WExRbStpMDRrYnFZbGJQNmxaeEQvb3dQWkxTT3pudG41d1YvWUZjbi9la25DQVFpM2plMHBjV20wdjdzbnZlZm9HCiAgICAgICAgIE5WU0N4RFFUb3lEWXM2Z2RtaHhzaDZ3MlV1Z3VoOW1CaFFtUUowTzBuNG9JYnFMbmZyTG5TTEUxakxmcDVRQUx0UlZQCiAgICAgICAgIHRTK2syUFJ0czJVbVpZdVFpR0EvbHg1UFpiM0NmenNhU1JtYnBrbXU1cDBxOEYvcnpqajVkaGF1WFVpbzd5b2MvWEM3CiAgICAgICAgIERHc1JKdDNkRDNxanpDRnNTaW5JYWpvNVVUc3lTZHo2V0Z0OXdYNTZ6Q3I5cEdMMVBnVlZzRm9EMEo1UFNIbjBIY0gxCiAgICAgICAgIHUrOUNneXhiMENtTEdBQ1UzTzFlMmVNMVp1dVQvbTNYSDJHbkpxQ3hoZDBNU1NuUnZKbk83dDl0aTh3N29WQ291Z2JuCiAgICAgICAgIE1ZVVE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVVBdkhwa0h2cUdWcm9SWk55OGI3MVVEVENwNHlubEY0SHFTaUJjSlBFVmkvU2FFQnRuCglwZ2ZyZ2poYko0ZlVsYlFVeUJkMGphb0ZCSXFDd2FQWnNwaTVIcUZKb1E9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQm1iZTlUOCtNbitZSzR3SzZwNHBxTlFRS0w0ZFdNMVpqWTB2UkE1VWFVeTNLVVgrQWVQaVcvOXc3amYwdFZpN01Qd2ZDK080aE1QR2tmNEh2T1M5dz0KWC1SZWNlaXZlZDogYnkgMTAuMzEuNjAuMTQ0IHdpdGggU01UUCBpZCBqMTM4bXIzNTM3MzE5dmthLjE5Ny4xNTA3MDU0OTU5MDQyOwogVHVlLCAwMyBPY3QgMjAxNyAxMToyMjozOSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTc2Ljg1LjEzNiB3aXRoIEhUVFA7IFR1ZSwgMyBPY3QgMjAxNyAxMToyMjoxOCAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPENBK25Qbk13TU9naFBtY3VnVj04X19NNDQ1d0RlNDh1WHZYQnVFR0ZOajFCYmNGX3p5d0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk14eUcyTmVQWHBWcWF3ZTlqUj1pdEhFVDZVdWRuTjlDakhodj1vby1LQ3J4d0BtYWlsLmdtYWlsLmNvbT4KIDxwb255LTU2YTNhZGVhZjYwYzQwNTk2ZmIyODRiMjQ1MjQxNDhmNjA1ZThkMjMtNTJkNDFjZDQwZjIzNDNjODk1Mjg4MGU4Zjg0ZGEzZTgwZDMzNTUwOUBkZXYubWF2ZW4uYXBhY2hlLm9yZz4KIDxDQStuUG5NeVMycTF1ZmFXK1M2c21oWloxSmN4aGY5aFk1LTNuQkotaUNXZWpQVUFEVkFAbWFpbC5nbWFpbC5jb20+CiA8MjA1Nzk0OC5rMUd5Zmp1R1hkQGdpZ2E+IDxDQStuUG5Nd2NvSEZadlVxV2lVc3lIQmhhTW1vU2NjeWRUQnN6U1hnc0d0Rj13TkdES3dAbWFpbC5nbWFpbC5jb20+CiA8Q0FLRFVOMXY1VHNGbitvLXZ2OEhoM1B1dkdYV2UrZlFuTStqd0RadCs9enR4c3BjZ2d3QG1haWwuZ21haWwuY29tPgogPENBK25Qbk15Y1RaZFh0QXVSYzIrLTBxREtFUExMSkhvR0o2SDhkWj1aeWtPYVh1VzNYUUBtYWlsLmdtYWlsLmNvbT4KIDxDQStuUG5NeUxaMkRIbWppZHlSNHJMR19ra3Z5ZjJ6Sk02X0YrZ2ZiQmZ6QnZObjRxQlFAbWFpbC5nbWFpbC5jb20+CiA8Q0FGTkNVLTh2Q3BtazUtRGNZdz1RdEE3Y1k4T21nVTlkajFqSzFxNXJyR1dIUmI0cF9nQG1haWwuZ21haWwuY29tPgogPENBUG95QnFUOFk4ck5iTERPcE9TdUd1PTJXbmRudk5uRmYtX245eVZRMkY0enh4Ym1id0BtYWlsLmdtYWlsLmNvbT4KIDxDQUZOQ1UtX3RpZGdqN3dFUVMzT0U4SD1WNmdPVjhMYi1zYmRnYjh4X1dUUzJOU1VfT3dAbWFpbC5nbWFpbC5jb20+IDxDQStuUG5Nd01PZ2hQbWN1Z1Y9OF9fTTQ0NXdEZTQ4dVh2WEJ1RUdGTmoxQmJjRl96eXdAbWFpbC5nbWFpbC5jb20+CkZyb206ID0/VVRGLTg/UT9Bcm5hdWRfSD1DMz1BOXJpdGllcj89IDxhaGVyaXRpZXJAZ21haWwuY29tPgpEYXRlOiBUdWUsIDMgT2N0IDIwMTcgMjA6MjI6MTggKzAyMDAKTWVzc2FnZS1JRDogPENBRk5DVS0taFhaMTlLV29jMmNpOG0rWEhjdStfRm9CaVFNcGFSWExaZ09HVkItU3JkUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0MmZmZjI3ZGE5YjIwNTVhYTg5MzNkIgoKLS0wMDFhMTE0MmZmZjI3ZGE5YjIwNTVhYTg5MzNkCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKClRoYW5rcyBTdGVwaGVuCgpPbiBUdWUsIE9jdCAzLCAyMDE3IGF0IDg6MTggUE0sIFN0ZXBoZW4gQ29ubm9sbHkgPApzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKCj4gSSBhbSBob3BpbmcgSSBjYW4gZmluZCBzb21lIHRpbWUgdG8gZG8gYSBmaW5hbCByb3VuZCBvZiBleHBlcmltZW50cyBhbmQKPiB0aGVuIGNsb3NlIHRoZSB2b3RlIHdpdGggc3VjY2VzcyBhbmQgcHVibGlzaC4KPgo+Cj4gT24gVHVlIDMgT2N0IDIwMTcgYXQgMTE6MTMsIEFybmF1ZCBIPUMzPUE5cml0aWVyIDxhaGVyaXRpZXJAZ21haWwuY29tPiB3cj0Kb3RlOgo+Cj4gPiBAU3RlcGhlbiBXaGF0IHNob3VsZCB3ZSBkbyBub3cgPwo+ID4KPiA+Cj4gPiBPbiBUdWUsIFNlcCAxOSwgMjAxNyBhdCAzOjE0IEFNLCBPbGl2aWVyIExhbXkgPG9sYW15QGFwYWNoZS5vcmc+IHdyb3RlOgo+ID4KPiA+PiBIaQo+ID4+IFNvcnJ5IGEgYml0IG91dCBvZiB0aW1lIEFUTSBmb3IgdGVzdGluZyB0aGlzLgo+ID4+IFdlbGwgSSB0cnVzdCBBcm5hdWQgdGVzdGluZyB0aGF0IGVzcGVjaWFsbHkgaWYgdGhpcyBpbXByb3ZlIHRoZQo+ID4+IHBlcmZvcm1hbmNlCj4gPj4gb2YgdGhpcyB2ZXJ5IGdyZWF0L2F3ZXNvbWUvdXNlcnMgb3JpZW50ZWQgcGx1Z2luIDpQCj4gPj4KPiA+PiBPbiAxMyBTZXB0ZW1iZXIgMjAxNyBhdCAyMjoxOSwgQXJuYXVkIEg9QzM9QTlyaXRpZXIgPGFoZXJpdGllckBhcGFjaGUuPQpvcmc+Cj4gPj4gd3JvdGU6Cj4gPj4KPiA+PiA+IERhbW5lZCwgY2FuJ3Qgd2UgYmUgYW5vbnltb3VzIG9uIEdpdGh1YiA/Cj4gPj4gPiBJIG1haW50YWluIGl0IGlzIGEgYmlnIHdvcmQsIEknbSB0cnlpbmcgdG8gZml4IG1vcmUgYnVncyB0aGFuIEkgYWRkCj4gbmV3Cj4gPj4gPiBvbmVzCj4gPj4gPiBJIGFkZGVkIE9sZWcgaW4gdGhlIGxvb3AgYXMgaGUgY29udHJpYnV0ZWQgYSBsb3Qgb24gaXQgdG9vCj4gPj4gPiBJIGRpZCBhIHF1aWNrIHRlc3QgdG8gYnVpbGQgb24gSmVua2lucyAyLjYwLjMgb3VyIG1hdmVuIGNvcmUgd2l0aCB0aD0KZQo+ID4+IEV2aWwKPiA+PiA+IE1hdmVuIHBsdWdpbiAyLjE3IG9uIGEgbG9jYWwgU1NIIGFnZW50IGFuZCBpdCBpcyBvawo+ID4+ID4gQnV0IGl0IGlzIHJlYWxseSBhIHF1aWNrIHRlc3QgLi4uCj4gPj4gPgo+ID4+ID4gQ2hlZXJzCj4gPj4gPgo+ID4+ID4KPiA+PiA+Cj4gPj4gPiBPbiBXZWQsIFNlcCAxMywgMjAxNyBhdCAxMDowNyBBTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPj4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+PiA+Cj4gPj4gPiA+IE9uIDEzIFNlcHRlbWJlciAyMDE3IGF0IDAxOjA1LCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+PiA+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPj4gPiA+Cj4gPj4gPiA+PiBPbiAxMyBTZXB0ZW1iZXIgMjAxNyBhdCAwMDoyNiwgQW5kZXJzIEhhbW1hciA8YW5kZXJzQGhhbW1hci5uZXQ+Cj4gPj4gd3JvdGU6Cj4gPj4gPiA+Pgo+ID4+ID4gPj4+IE9uIFR1ZSwgU2VwIDEyLCAyMDE3IGF0IDg6NTQgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4+ID4gPj4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4+ID4gPj4+Cj4gPj4gPiA+Pj4gPiBIYXZlIHdlIGdvdCBhbnkgZmVlZGJhY2sgZnJvbSB0aGUgZW1iZWRkZXIgaW50ZWdyYXRpb25zIHlldD8KPiA+PiA+ID4+PiA+Cj4gPj4gPiA+Pj4KPiA+PiA+ID4+PiBJIGhhdmVuJ3QgaGVhcmQgYW55dGhpbmcgZnJvbSB0aGUgbTJlIHBlb3BsZS4gTWF5YmUgd2UgbmVlZCB0bwo+IHBpbmcKPiA+PiA+IHRoZW0KPiA+PiA+ID4+PiBkaXJlY3RseS4gSSBjYW4gY29udGFjdCBGcmVkIEJyaWNvbi4KPiA+PiA+ID4+Pgo+ID4+ID4gPj4+IC9BbmRlcnMKPiA+PiA+ID4+Pgo+ID4+ID4gPj4+Cj4gPj4gPiA+PiBQbGVhc2UgZG8sIGFsc28gaWYgYW55b25lIGhhcyBhIGNvbnRhY3QgaW4gbmV0YmVhbnMgb3IgaW50ZWxsaWogYT0KbmQKPiA+PiA+IGNvdWxkCj4gPj4gPiA+PiBsZXQgdGhlbSBrbm93IHdlJ2QgbGlrZSBlaXRoZXIgZmVlZGJhY2sgb3IgIndlJ3JlIG9rIGlmIE1ORy02Mjc1Cj4gPj4gbWFrZXMKPiA+PiA+ID4+IHRyb3VibGUgZm9yIHVzLCBnbyBhaGVhZCBhbmQgcmVsZWFzZSIuIEknZCBsaWtlIHRvIGNsb3NlIHRoZSB2b3RlCj4gb24KPiA+PiA+IEZyaWRheQo+ID4+ID4gPj4gMTM6MDAgVVRDLgo+ID4+ID4gPj4KPiA+PiA+ID4+Cj4gPj4gPiA+Cj4gPj4gPiA+IE9saXZpZXIgLyBBcm5hdWQsIGhhdmUgZWl0aGVyIG9mIHlvdSBoYWQgYSBjaGFuY2UgdG8gdGVzdCB0aGlzIHdpdD0KaAo+ID4+IHRoZQo+ID4+ID4gPiBldmlsIHByb2plY3QgdHlwZVsxXSBhcyB5b3UgdHdvIHNlZW0gdG8gYmUgdGhlIGFjdGl2ZSBtYWludGFpbmVyc1s9CjJdCj4gPj4gPiA+Cj4gPj4gPiA+IFsxXTogaHR0cHM6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90LmllLzIwMTMvMTEvamVua2lucy0KPiA+PiA+ID4gbWF2ZW4tam9iLXR5cGUtY29uc2lkZXJlZC1ldmlsLmh0bWwKPiA+PiA+ID4gWzJdOiBodHRwczovL2dpdGh1Yi5jb20vamVua2luc2NpL21hdmVuLXBsdWdpbi9jb21taXRzL21hc3Rlcgo+ID4+ID4gPgo+ID4+ID4KPiA+PiA+Cj4gPj4gPgo+ID4+ID4gLS0KPiA+PiA+Cj4gPj4gPiBBcm5hdWQKPiA+PiA+Cj4gPj4KPiA+Pgo+ID4+Cj4gPj4gLS0KPiA+PiBPbGl2aWVyIExhbXkKPiA+PiBodHRwOi8vdHdpdHRlci5jb20vb2xhbXkgfCBodHRwOi8vbGlua2VkaW4uY29tL2luL29sYW15Cj4gPj4KPiA+Cj4gPgo+ID4KPiA+IC0tCj4gPiAtLS0tLQo+ID4gQXJuYXVkIEg9QzM9QTlyaXRpZXIKPiA+IGh0dHA6Ly9haGVyaXRpZXIubmV0Cj4gPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+ID4gVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcgo+ID4KPiAtLQo+IFNlbnQgZnJvbSBteSBwaG9uZQo+CgoKCi0tPTIwCi0tLS0tCkFybmF1ZCBIPUMzPUE5cml0aWVyCmh0dHA6Ly9haGVyaXRpZXIubmV0Ck1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tClR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKCi0tMDAxYTExNDJmZmYyN2RhOWIyMDU1YWE4OTMzZC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NTUwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBOb3YgMTkgMTk6NTM6MjYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTUwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDVCNTgzMTBBMUUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxOSBOb3YgMjAxNyAxOTo1MzoyNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDYyOTg5IGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IE5vdiAyMDE3IDE5OjUzOjI2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2Mjg5MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOSBOb3YgMjAxNyAxOTo1MzoyNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYyODgxIGludm9rZWQgYnkgdWlkIDk5KTsgMTkgTm92IDIwMTcgMTk6NTM6MjUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDE5IE5vdiAyMDE3IDE5OjUzOjI1ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRDZCNzUxODA1QUEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDE5IE5vdiAyMDE3IDE5OjUzOjI0ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi4zNzkKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi4zNzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgM3J2OWxlLURVU3dGIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAxOSBOb3YgMjAxNyAxOTo1MzoyMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLWxmMC1mNTAuZ29vZ2xlLmNvbSAobWFpbC1sZjAtZjUwLmdvb2dsZS5jb20gWzIwOS44NS4yMTUuNTBdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgOTBBRDk1RjJBQQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTkgTm92IDIwMTcgMTk6NTM6MjEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtbGYwLWY1MC5nb29nbGUuY29tIHdpdGggU01UUCBpZCA3M3NvNzc4NjYyMWxmdS4xMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDE5IE5vdiAyMDE3IDExOjUzOjIxIC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPVpvc2JmRUN6dmNqZWFvUHFYazdQaXVWMjZhek9mcS81b0FKalhkZGk3N3M9OwogICAgICAgIGI9YjM0UFVmclQ4dUV2UXVqdk50QVhrSmJTV1U3VmY1dDNCVVFyc215OXQvZlNpMDRXdnJaemE0MTc3SFBndWt1UDZECiAgICAgICAgIGp6SSswM2IrdmZSaUhzWFZoZ1BxQ0JXRTcxcWxGK2JuSEVZM2N5aTRuR01LRTlOVHY0dkNWK1lDZGtQNzRxS3BQREh0CiAgICAgICAgIGRYZ2dWdytMZncrQkZ1VnM2LzJpdFlnNHBlM0pHbXV6KzBVSGNucGhUanBLcWFjVXRWWEVJYUdPelVzODVTeU9hTGdaCiAgICAgICAgIEJSOGNqU3VDdWVTckRSZ2QxWjZwLy9td2dQQldTeGZOSjRMYVNXTG9QVm1GYTVYeDV2MSs4dnlkUzNVeVRWcjNkMkIwCiAgICAgICAgICtpUExZUW9xVHFqQ0I5QzJ3bk56UmtzandLQkJoaWhBNURvYjY4RHR6c1dVUW52eVI2Y3NlSlRBOGJtT2VzZUVDWlQvCiAgICAgICAgIFIra0E9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPVpvc2JmRUN6dmNqZWFvUHFYazdQaXVWMjZhek9mcS81b0FKalhkZGk3N3M9OwogICAgICAgIGI9UmkvUXZKdTE5QWJOa3JaZCtzb3l6bkEySHpKb0VvVnJ5czJsNkwxaStQeTQzNXpZd20yTDZzSDRjTGcvNlo5TFZkCiAgICAgICAgIDVzdGxsQ0xqa2hyTVVMZTJXcnlPWkY5dEF3OFRTdFFWcTFtcHpmQ1EySlFpY0d0SldJZzhTOHExS1VGMWIwWVNmWGtkCiAgICAgICAgIEtscTlwZXVSSE1mcktZU01sTnp2WVBLL3Jody91WG1jK3BWSTdWYnR4ZytpTmExY3JJUlMrRzRCaHRMZlZoLzFTcmhkCiAgICAgICAgIFZNcVBoUjBSTmZyUnJscFNGczlpb1JMdEZJN2daZURJYm5xNFc0OUQ1akdQYjJ4S1g2aGRlUDk0ZnJQbzJpRUZsaTBlCiAgICAgICAgIEdDdVFUMXdoVUEvK1lHTkc2elJ2V1I4UENpN1NHdDNFNVhpb25YRjhxbmV0OWtsbG1uUitnTTJFOWltOWN2d3czdzdQCiAgICAgICAgIDN0cmc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDczYkxsaGlTYndHZktiTi9wUVVVV3dLSlgwYjBNMUNFcnNjQzIzMldSeEtGWjB2R1NZCgk4YjRkTVFwVUNveUdxNHA3N05rdC9zY0p3eHBQTTRicXg0dU5tUm1NMmc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUdzNHpNWStzNTlLU3JvcEZPRi9PMTRxemVyWVVlRTF4azdtbnYxTEdnaXlFTHBoY2NYY2RPc3daLzdPQ3V0bjRjdGdVaitaTFVFN3pBTm1STDBXTGtnZWt2cz0KWC1SZWNlaXZlZDogYnkgMTAuNDYuNzcuMjYgd2l0aCBTTVRQIGlkIGEyNm1yMzkwMzA5MGxqYi4xNTUuMTUxMTEyMTE5NTM0NjsKIFN1biwgMTkgTm92IDIwMTcgMTE6NTM6MTUgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjI1LjgxLjg3IHdpdGggSFRUUDsgU3VuLCAxOSBOb3YgMjAxNyAxMTo1Mjo1NCAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPG9wLnk5eXQxbHp6a2RraHJyQGRlc2t0b3AtMmtoc2s0ND4KUmVmZXJlbmNlczogPG9wLnk5dWg0bnl3a2RraHJyQGRlc2t0b3AtMmtoc2s0ND4gPDE1NTI2MDEucWxtMDNnQzhKdEBnaWdhPgogPDM0NjA1NzYuc0xNWVZwaE90dUBnaWdhPiA8MjIwMjI1NC5pYm9NUDVCdGFBQGdpZ2E+IDxvcC55OXl0MWx6emtka2hyckBkZXNrdG9wLTJraHNrNDQ+CkZyb206ID0/VVRGLTg/UT9Bcm5hdWRfSD1DMz1BOXJpdGllcj89IDxhaGVyaXRpZXJAZ21haWwuY29tPgpEYXRlOiBTdW4sIDE5IE5vdiAyMDE3IDIwOjUyOjU0ICswMTAwCk1lc3NhZ2UtSUQ6IDxDQUZOQ1UtLWt2M3QzMjk5Q3FxUHc4WFFVUmhSRXZNc2tBWm5ZTFE9Ny1jcG5LVEdVWndAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBEb3dubG9hZCBsaW5rcwpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSI5NGViMmMxYWE5YjAwZmFlZGEwNTVlNWI1MmY3IgoKLS05NGViMmMxYWE5YjAwZmFlZGEwNTVlNWI1MmY3CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkdvb2QuIFRoYW5rcyBhIGxvdAoKT24gU3VuLCBOb3YgMTksIDIwMTcgYXQgODozNSBQTSwgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgp3cm90ZToKCj4gVGhhbmtzIGZvciBwaWNraW5nIHRoaXMgdXAgYW5kIHRoZSBncmVhdCByZXN1bHRzIQo+Cj4gUm9iZXJ0Cj4KPgo+IE9uIFN1biwgMTkgTm92IDIwMTcgMTg6NTk6MDAgKzAxMDAsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmU9CmUuZnI+Cj4gd3JvdGU6Cj4KPiBpc3N1ZSBmaXhlZCwgYW5kIGV2ZW4gbW9yZSEhIQo+PiBldmVyeSBpc3N1ZSB3aXRoIHJld3JpdGUgcnVsZXMgYXJlIGZpeGVkOiB0aGVua3MgdG8gU2ViYiBpZGVhLCBJIHJlcGxhY2U9CmQKPj4gdGhlCj4+IHJld3JpdGUgcnVsZXMgd2l0aCBzeW1saW5rcwo+Pgo+PiBub3cgaXQncyBlYXN5IHRvIHVuZGVyc3RhbmQgKGV2ZW4gdGhlIG1pcnJvciBzY3JpcHQgY2FuKSBhbmQgZXZlcnl0aGluZwo+PiB3b3Jrcwo+PiBhcyBleHBlY3RlZDogbm8gbW9yZSAvY29tcG9uZW50cyByZWRpcmVjdGlvbiB3aGVuIHlvdSBmb3Jnb3QgdHJhaWxpbmcgLwo+PiBvbiBhCj4+IGRpcmVjdG9yeQo+Pgo+Pgo+PiB3b3csIHRoYXQncyBnb29kIHRvIGZpeCBzdWNoIGEgbG9uZ3N0YW5kaW5nIGlzc3VlLi4uCj4+Cj4+IFJlZ2FyZHMsCj4+Cj4+IEhlcnY9QzM9QTkKPj4KPj4gTGUgc2FtZWRpIDE4IG5vdmVtYnJlIDIwMTcsIDEzOjAzOjQ4IENFVCBIZXJ2PUMzPUE5IEJPVVRFTVkgYSA9QzM9QTljcml0PQogOgo+Pgo+Pj4gZm91bmQgc29tZXRoaW5nIHRoYXQgY2FuIGV4cGxhaW46IHdoZW4gdXNpbmcgdGhlIHJlYWwgdXJsIHN0YXJ0aW5nIHdpdGg9CiAvCj4+PiBjb21wb25lbnRzLywgdGhlIENHSSBzY3JpcHQgd29ya3MgWzRdCj4+PiBCdXQgbm90IHdoZW4gdXNpbmcgdGhlIHVzZXItdmlzaWJsZSB1cmwgKHRoYXQgdXNlcyAuaHRhY2Nlc3MgcmV3cml0ZQo+Pj4gcnVsZXMpCj4+PiBbNV0KPj4+Cj4+PiBJTkZSQSBKaXJhIGlzc3VlIG9wZW5lZDogaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhCj4+PiAvYnJvd3NlL0lORlJBLTE1NTEzCj4+Pgo+Pj4gUmVnYXJkcywKPj4+Cj4+PiBIZXJ2PUMzPUE5Cj4+Pgo+Pj4KPj4+IFs0XSBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvY29tcG9uZW50cy9wbHVnaW5zL21hdmVuLWpkZXByc2Nhbi1wbHVnaW4vCj4+PiBkb3dubG9hZC5jZ2kKPj4+Cj4+PiBbNV0gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMvbWF2ZW4tamRlcHJzY2FuLXBsdWdpbi9kb3dubG9hZC5jZz0KaQo+Pj4KPj4+IExlIHNhbWVkaSAxOCBub3ZlbWJyZSAyMDE3LCAwMToxODoyNyBDRVQgSGVydj1DMz1BOSBCT1VURU1ZIGEgPUMzPUE5Y3JpPQp0IDoKPj4+ID4gb2ssIHhkb2MvZG93bmxvYWQueG1sLnZtIHdhcyBtaXNzaW5nIGZvciB0aGlzIG5ldyBwbHVnaW46IEkgYWRkZWQgaXQKPj4+IGFuZAo+Pj4gPiBtYW51YWxseSBhZGRlZCBhIGdlbmVyYXRlZCBodG1sIHJlc3VsdCB0byBzdm5wdWJzdWIgbG9jYXRpb24gWzFdCj4+PiA+Cj4+PiA+IHRoaXMgaXMgbm90IHlldCBzdWZmaWNpZW50OiBJIGRvbid0IGtub3cgd2h5IGRvd25sb2FkLmNnaSBzY3JpcHQgZG9lcwo+Pj4gbm90Cj4+PiA+IGZpbmQgZG93bmxvYWQuaHRtbAo+Pj4gPgo+Pj4gPiB0aGlzIGlzIHdvcmtpbmcgb24gbWFpbiBNYXZlbiBzaXRlIFsyXSBmcm9tIGl0cyBvd24gc3ZucHVic3ViIGxvY2F0aW89Cm4KPj4+IFszXQo+Pj4gPgo+Pj4gPiBhbnkgaGludD8KPj4+ID4KPj4+ID4gUmVnYXJkcywKPj4+ID4KPj4+ID4gSGVydj1DMz1BOQo+Pj4gPgo+Pj4gPiBbMV0KPj4+ID4gaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL21hdmVuCj4+PiAvY29tcG9uZW50cy8KPj4+ID4gcGx1Z2lucy9tYXZlbi1qZGVwcnNjYW4tcGx1Z2luLwo+Pj4gPgo+Pj4gPiBbMl0gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvZG93bmxvYWQuY2dpCj4+PiA+Cj4+PiA+IFszXSBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vbWF2ZW4KPj4+IC9jb250ZW50Lwo+Pj4gPgo+Pj4gPiBMZSB2ZW5kcmVkaSAxNyBub3ZlbWJyZSAyMDE3LCAxMjo0Nzo1MSBDRVQgSGVydj1DMz1BOSBCT1VURU1ZIGEgPUMzPQo9QTljcml0IDoKPj4+ID4gPiB0aGUgZGVlcGxpbmsgdXNlZCB0byB3b3JrOiB0aGF0J3MgdGhlIG9iamVjdGl2ZSBvZiBvdXIKPj4+ID4gPiAicmVzb3VyY2VzL2Rvd25sb2FkLmNnaSArIHhkb2MvZG93bmxvYWQueG1sLnZtIiBwYXR0ZXJuIHRoYXQgd2FzCj4+PiBjcmVhdGVkCj4+PiA+ID4gc29tZSB5ZWFycyBhZ28uCj4+PiA+ID4gZG93bmxvYWQuY2dpIGlzIHN1cHBvc2VkIHRvIHVzZSBzdGFuZGFyZCBBU0Ygc2NyaXB0IHRoYXQgdXNlcwo+Pj4gPiA+IGRvd25sb2FkLmh0bWwKPj4+ID4gPiBhcyBjb250ZW50Cj4+PiA+ID4KPj4+ID4gPiBJIGRvbid0IGtub3cgd2h5IHRoaXMgZG9lcyBub3Qgd29yayBhbnkgbW9yZS4KPj4+ID4gPgo+Pj4gPiA+IEkgdmFndWVseSByZW1lbWJlciBzb21ldGhpbmcgYSBmZXcgeWVhcnMgYWdvIGFib3V0IGV4ZWN1dGFibGUgYml0LAo+Pj4gc29tZQo+Pj4gPiA+IGhlYWRhY2hlIEkgaGFkIGF0IHRoYXQgdGltZSB0byB0cnkgdG8gZml4IHdvcmtpbmcgd2l0aCBpbnRlcmVzdGVkCj4+PiBwZW9wbGUKPj4+ID4gPiAoaWUuIG5vdCBtYW55LCBidXQgU2ViYiB3YXMgcHJvYmFibHkgb25lIG9mIHRoZSBmZXcpLiBQZXJoYXBzIGl0J3MKPj4+IHRpbWUKPj4+ID4gPiB0bwo+Pj4gPiA+IHJld29yayBvbiBpdDogSSdsbCBzZWUgdG9uaWdodCBpZiBJIGNhbiBmaW5kIHJlZmVyZW5jZXMgb24gdGhlCj4+PiBhbmFseXNpcwo+Pj4gPiA+IGFscmVhZHkgZG9uZSBhdCB0aGF0IHRpbWUuCj4+PiA+ID4KPj4+ID4gPiBSZWdhcmRzLAo+Pj4gPiA+Cj4+PiA+ID4gSGVydj1DMz1BOQo+Pj4gPiA+Cj4+PiA+ID4gTGUgdmVuZHJlZGkgMTcgbm92ZW1icmUgMjAxNywgMTI6Mjc6NDkgQ0VUIFJvYmVydCBTY2hvbHRlIGEgPUMzPUE5Yz0Kcml0IDoKPj4+ID4gPiA+IFRoaXMgdG9waWMgZGVzZXJ2ZXMgYSBzZXBhcmF0ZSBtYWlsdGhyZWFkLgo+Pj4gPiA+ID4KPj4+ID4gPiA+IFF1b3RpbmcgU2ViYiBvbiBhIGRpZmZlcmVudCB0aHJlYWQ6Cj4+PiA+ID4gPiAiVGhlIGRvd25sb2FkIGxpbmsgcG9pbnRzIHRvIHRoZSB0b3AtbGV2ZWwgb2YgdGhlIEFTRiBtaXJyb3IKPj4+IHN5c3RlbS4KPj4+ID4gPiA+Cj4+PiA+ID4gPiBUaGlzIG1ha2VzIGl0IHZlcnkgaGFyZCB0byB1c2UuIgo+Pj4gPiA+ID4KPj4+ID4gPiA+IEFGQUlLIHRoZSBBU0Ygc2F5cyB0aGVyZSBzaG91bGQgYmUgYSBkb3dubG9hZCBidXR0b24gZm9yIGV2ZXJ5Cj4+PiA+ID4gPiByZWxlYXNlZAo+Pj4gPiA+ID4gcHJvZHVjdC4KPj4+ID4gPiA+IEluIGNhc2Ugb2YgTWF2ZW4gd2UncmUgdGFsa2luZyBhYm91dCBhIGxvdCBvZiBwcm9qZWN0cywgYW5kCj4+PiBkb3dubG9hZHMKPj4+ID4gPiA+IHNob3VsZCBiZSByZWRpcmVjdGVkIHZpYSBhIG1pcnJvci4KPj4+ID4gPiA+IEkgZG9uJ3QgdGhpbmsgaXQgaXMgcG9zc2libGUgdG8gZG8gYSBkZWVwbGluayB0byBhIHNwZWNpZmljIGZvbGRlPQpyLgo+Pj4gPiA+ID4KPj4+ID4gPiA+IEFsc28sIGluIGNhc2Ugb2YgTWF2ZW4gcGx1Z2lucyBhbmQgb3RoZXIgZGVwZW5kZW5jaWVzIChhbGwKPj4+IGV4Y2x1ZGluZwo+Pj4gPiA+ID4gdGhlCj4+PiA+ID4gPiBNYXZlbiBkaXN0cmlidXRpb24gaXRzZWxmKSBpdCBpcyBraW5kIG9mIHN0cmFuZ2UgdG8gcHJvdmlkZSBhCj4+PiBkb3dubG9hZAo+Pj4gPiA+ID4gbGluayB3aGVuIHdlIGNvdWxkIGFzc3VtZSB0aGF0IHRoZXkgb25seSB3YW50IHRvIGhhdmUgdGhlCj4+PiA+ID4gPiBwbHVnaW4vZGVwZW5kZW5jeSBYTUwgZnJhZ21lbnQuCj4+PiA+ID4gPgo+Pj4gPiA+ID4gSSBhZ3JlZSB0aGF0IHRoZSBsaW5rIGlzIGtpbmQgb2YgdXNlbGVzcyByaWdodCBub3csIGJ1dCBhbHNvIHRoZQo+Pj4gYmVzdAo+Pj4gPiA+ID4gd2UKPj4+ID4gPiA+IGNhbiBkbyB3aGVuIHByb3ZpZGluZyBhIGRpcmVjdCBkb3dubG9hZCBsaW5rLgo+Pj4gPiA+ID4gSWYgdGhlcmUncyBubyB3YXkgdG8gZG8gYSBkZWVwbGluaywgSSdkIHByZWZlciB0byByZW1vdmUgaXQgZnJvbQo+Pj4gdGhlCj4+PiA+ID4gPiBwYWdlcwo+Pj4gPiA+ID4gYW5kIGFubm91bmNlbWVudHMuCj4+PiA+ID4gPgo+Pj4gPiA+ID4gdGhhbmtzLAo+Pj4gPiA+ID4gUm9iZXJ0Cj4+PiA+ID4gPgo+Pj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+PiAtLS0tLS0tLS0KPj4+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+PiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+PiA+ID4KPj4+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+IC0tLS0tLS0tLQo+Pj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gPgo+Pj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4KPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+Cj4+Cj4+Cj4+Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+CgoKLS09MjAKLS0tLS0KQXJuYXVkIEg9QzM9QTlyaXRpZXIKaHR0cDovL2FoZXJpdGllci5uZXQKTWFpbC9HVGFsazogYWhlcml0aWVyIEFUIGdtYWlsIERPVCBjb20KVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcgoKLS05NGViMmMxYWE5YjAwZmFlZGEwNTVlNWI1MmY3LS0KCkZyb20gZGV2LXJldHVybi0xMjQxNzctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE9jdCAgNyAyMDozMzoxNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxNzctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOTAzMTkxMDZCMQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDIwOjMzOjE0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDI5NDQgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBPY3QgMjAxNyAyMDozMzoxNCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDI4NjAgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBPY3QgMjAxNyAyMDozMzoxNCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQyODQ4IGludm9rZWQgYnkgdWlkIDk5KTsgNyBPY3QgMjAxNyAyMDozMzoxMyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDcgT2N0IDIwMTcgMjA6MzM6MTMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAwOEZEQjE4MDdGMAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMjA6MzM6MTMgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiA1LjA5OQpYLVNwYW0tTGV2ZWw6ICoqKioqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT01LjA5OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUZSRUVNQUlMX1JFUExZPTEsIEhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMSwgVVJJQkxfQkxBQ0s9NF0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgbTlJYll0TmZXVHViIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAgNyBPY3QgMjAxNyAyMDozMzowNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXVhMC1mMTc1Lmdvb2dsZS5jb20gKG1haWwtdWEwLWYxNzUuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNy4xNzVdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQjhGQjI1RjU2OQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMjA6MzM6MDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdWEwLWYxNzUuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgczQxc28xMTE0MTIyMHVhYi4xMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDA3IE9jdCAyMDE3IDEzOjMzOjA3IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPU9QczFFdEZLMUFaYmxzRFlPMkZpTzh3Y3UwM3pSTnFMWnpOQWhDOGVQSkU9OwogICAgICAgIGI9aFhWNEw1YkZUaUtRaWU3a3ozV1hmeUFzVjZkaUEvV25MZ2dSZVFQZzRiczlPMk95V0NCek5jKy96K0FQNldKWTQ1CiAgICAgICAgIEV6M2pURWsvaTNGQzlLS3BzUmVQVWZJL2VNaGpmWGFOUEZUampNbllkU2ZSKzVnSldlWmlnOFZ1NHFCS1ZUWWphUGpKCiAgICAgICAgIGM2RjBVREw5SEg4YjgxUGNidDdJM21VTjdRcEFNdEZMUVpZZVBuNUJBVE1SNU1oTFV0Y2xjUWhoMjVUSjlieGxUK3ppCiAgICAgICAgIDQ1SkFNU1NyWEh4eDgvQU5XK09BN01wT1FUaXVpMDVTa203VnlhMVFMYms5TkxxUS96Q0h5WnU2YWduZ0luRzJ0TDVNCiAgICAgICAgIGxqWTZZNDNFQ2FZc1p2ZWFVT2ZEQWxkUG54RUs0WnltQTdRa0gwRVRlQnpZUU5vZTVyYVN3NjVlbzRBVVZsaEFGL21mCiAgICAgICAgIHBPOHc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPU9QczFFdEZLMUFaYmxzRFlPMkZpTzh3Y3UwM3pSTnFMWnpOQWhDOGVQSkU9OwogICAgICAgIGI9ZTRhcUxSNXlBaVE0QkhTOG03Rk1DMU0veXRwZFJTaUJrenRNelpQRElRN3ZmYjVWYkZGOFo3RUd6MmkyRWFFRWpSCiAgICAgICAgIFVxaDBldjlFMTk4U0V3MUZFM2NFOU01MlJCQm1XZ1lHZW1VMDhNRlI1UW9BUWhrdDlTV2cwMTA2dE9QMG54cE9kUTlQCiAgICAgICAgIEI5M3M4NDFLSDloOEFLaGduZTNhZWFsS29jekJhUXhzTDU3Vzh5MGtiTzJBRTcyOE1VcXVOZ2NiV2JDMjl1RDZaNzNrCiAgICAgICAgIFRVUmNOMWw3V1JTT3QwOVVyTnNKbzIzMnN5SVNkZURuWjhqZytZNjBRWFFiSlZBS1Vta3c3NnRlNW1jdWlxT09veWczCiAgICAgICAgIHBCSTBTU0lCNHVHcXBac2VUclZLNXlIQTVLL04rRStHd2RadVRhVllPOHZiSkRwR3pVZEkvRlRsSXRmZ291ZVVVaC9ICiAgICAgICAgIGp2UHc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVVpNFhmeW9PZVBWUG11ZW9Zbi9iaityeDNKVituVFQ1R0YvK1Z2N2lsZXdiK2hwUlh6Cgk0bnN1RHpuOVZyTHh6QXJYUXVGMG1FQ0xSOGFhT3BGRmMyeVplVndzc2c9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQWFvaUF1QlZDTG5tVWhHT0tjMXdEM2xhUlM2cGRPdXdJS3Jyb3NDSUtNTm9KZW9FMXhxM25tdU01S0VHbm1LeXFwc3hMMDJYZ2hreEtyZENsVUc1UT0KWC1SZWNlaXZlZDogYnkgMTAuMTU5LjYxLjgxIHdpdGggU01UUCBpZCBtMTdtcjM0OTM5NDJ1YWkuNDkuMTUwNzQwODM4Njk0MjsKIFNhdCwgMDcgT2N0IDIwMTcgMTM6MzM6MDYgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjE3Ni44NS4xMzYgd2l0aCBIVFRQOyBTYXQsIDcgT2N0IDIwMTcgMTM6MzI6NDYgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxFMkQyRkQwMy02MjE0LTQyMTAtOTQ1OS05N0FGMjNGMDBCNEVAaG9udG9uLm9yZz4KUmVmZXJlbmNlczogPDEwNTQ0NjE1LkI0aE8zUG52RXpAZ2lnYT4gPENBS3VWekJSMncrZms1UzN1bkJRUjdCNTRlVTgwQ1FRYUM2NHV5WTVYTkVDSG9TSDZHZ0BtYWlsLmdtYWlsLmNvbT4KIDxDQUt1VnpCUVNnUlhXVkVnOENnclpkc05Hd2RUZk50YzRxV3Q0R255SkRvb2l5YXIyTkFAbWFpbC5nbWFpbC5jb20+CiA8MTkzNDk4My54Uk04S3lJaW1pQGdpZ2E+IDxDQUZOQ1UtXzVDZmFQTUwyZndaKzd0RkVBWkpUK3daQkR4NmI9LTdFNEpSS0FtPS1ZZ2dAbWFpbC5nbWFpbC5jb20+CiA8RTJEMkZEMDMtNjIxNC00MjEwLTk0NTktOTdBRjIzRjAwQjRFQGhvbnRvbi5vcmc+CkZyb206ID0/VVRGLTg/UT9Bcm5hdWRfSD1DMz1BOXJpdGllcj89IDxhaGVyaXRpZXJAZ21haWwuY29tPgpEYXRlOiBTYXQsIDcgT2N0IDIwMTcgMjI6MzI6NDYgKzAyMDAKTWVzc2FnZS1JRDogPENBRk5DVS0tb0hIRCtDRm1jMTBqSFVPSl9uVENULV89YW5NcXkwT2FjN3Y3a0dqbXU3UUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IEplbmtpbnMgYW5kIE1hdmVuIDMuMC41IG9yIEpESyA3ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjA4OWUwOGU0ZDcwYjZmNmRhYjA1NWFmYWRkMjIiCgotLTA4OWUwOGU0ZDcwYjZmNmRhYjA1NWFmYWRkMjIKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKQUZBSVIgdGhlIG1haW4gY29uY2VybiB3YXMgZm9yIGRldmVsb3BlcnMgdG8gaGF2ZSB0byBjbG9uZSBzZXZlcmFsIGRvemVuIG9mCnJlcG9zaXRvcmllcwpJIGRvbid0IHRoaW5rIGl0IGlzIGEgcmVhbCBpc3N1ZS4gV2UgY2FuIHNoYXJlIGEgc2NyaXB0IHRvIGRvIGl0IGVhc2lseQoKCk9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgMTA6MjYgUE0sIENoYXMgSG9udG9uIDxjaGFzQGhvbnRvbi5vcmc+IHdyb3RlOgoKPiBXaGF0IGFyZSB0aGUgY29uY2VybnMgd2l0aCBzZXBhcmF0ZSBnaXQgcmVwb3NpdG9yeSBwZXIgYXJ0aWZhY3Q/ICBJcyBpdAo+IHRoZSBtb25vbGl0aGljIGJ1aWxkPwo+Cj4gQ2hhcwo+Cj4gPiBPbiBPY3QgNywgMjAxNywgYXQgMToyMCBQTSwgQXJuYXVkIEg9QzM9QTlyaXRpZXIgPGFoZXJpdGllckBnbWFpbC5jb20+ID0Kd3JvdGU6Cj4gPgo+ID4gKzEKPiA+Cj4gPj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCA3OjExIFBNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZT0KLmZyPgo+IHdyb3RlOgo+ID4+Cj4gPj4gd2UgY2FuIHN0YXJ0IHdpdGggbmFtaW5nIHRoZSBmdXR1cmUgZ2l0IHJlcG9zOiBJIHN1cHBvc2UgYWRkaW5nIGEgdGFibD0KZQo+IGF0Cj4gPj4gdGhlCj4gPj4gZW5kIG9mIHRoZSBHaXQgbWlncmF0aW9uIFdpa2kgcGFnZSBjYW4gZ2l2ZSBhIGdvb2QgdmlldyBvZiB0aGUgcmVzdWx0Cj4gPj4gKHdpdGggNzgKPiA+PiBuZXcgcmVwb3MgKyBleGlzdGluZyA3IHJlcG9zICsgdGhlIDYgaW4gbWlncmF0aW9uIGlmIG5vYm9keSBvYmplY3RzID0KPTNEIDkxCj4gPj4gcmVwb3MpCj4gPj4KPiA+PiBvbmNlIHdlJ3JlIGFsbCBjb252aW5jZWQgb2YgdGhlIHRhcmdldCwgd2UnbGwgc2VlIGhvdyB0byB3b3JrIHdpdGggaW5mPQpyYQo+ID4+IGFuZCBJIHN1cHBvc2UgdGhleSBhbHJlYWR5IGhhdmUgdGhlIHJpZ2h0IGF1dGhvcnMgbGlzdCwgZ2l2ZW4gdGhlCj4gY3VycmVudAo+ID4+IG1pcnJvcnMgYWxyZWFkeSBwdWJsaXNoZWQKPiA+Pgo+ID4+IFJlZ2FyZHMsCj4gPj4KPiA+PiBIZXJ2PUMzPUE5Cj4gPj4KPiA+PiBMZSBzYW1lZGkgNyBvY3RvYnJlIDIwMTcsIDE2OjA1OjQ1IENFU1QgVGlib3IgRGlnYW5hIGEgPUMzPUE5Y3JpdCA6Cj4gPj4+IEhlcnZlLAo+ID4+Pgo+ID4+PiBJIHRoaW5rLCBmaXJzdCBvZiBhbGwsIHdlIHNob3VsZCB3cml0ZSBhIGxpc3Qgd2l0aCBleGFjdCBuYW1lcyBvZiBnaXQKPiA+Pj4gcmVwb3NpdG9yaWVzIGZvciB3aGljaCBJTkZSQSB3aWxsIGNyYXRlIHRoZW0gaW4KPiA+Pj4gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcvcmVwb3MvYXNmCj4gPj4+IGFuZCBtaXJyb3IgaW4gZ2l0aHViLmNvbS9hcGFjaGUKPiA+Pj4KPiA+Pj4gQW5kIHRoZW4gdGhlIGF1dGhvcnMudHh0Lgo+ID4+Pgo+ID4+PiBJbiBteSBjYXNlIEkgZGlkIG5vdCBtaWdyYXRlIHRhZ3MgYW5kIGJyYW5jaGVzIHdoaWNoIGlzIG15IHByb2JsZW0KPiBnaXZlbgo+ID4+IGluCj4gPj4+IG15IGV4YW1wbGUgd2l0aCBwcmV2aW91cyBlLW1haWwuCj4gPj4+Cj4gPj4+IE9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgMzo0OCBQTSwgVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPgo+ID4+IHdyb3RlOgo+ID4+Pj4gSGVydmUsCj4gPj4+PiBJIHRoaW5rIG1ha2luZyB0aGUgdGFnIGFzIEkgd2FudGVkIHdvdWxkIG5vdCBiZSBwb3NzaWJsZSBpbiBnaXQuCj4gPj4+Pgo+ID4+Pj4gTGV0J3MgbWFrZSBpdCB3aXRoIGFsbCA3OCBwcm9qZWN0cy4KPiA+Pj4+IEluIDIwMTYgSSBtaWdyYXRlZCBteSBzdm4gcHJvamVjdCAiYXVkaXQiIGxvY2F0ZWQgaW4gc3ViLWZvbGRlciBiZWhpPQpuZAo+ID4+Pj4gdHJ1bmsgKHRydW5rL2xpYnMvYXVkaXQpIHRvIGdpdCB3aGljaCBpcyBleGFjdGx5IHdoYXQgd2UgbmVlZCB0byBkbyA9CmluCj4gPj4+PiBBU0YuCj4gPj4+Pgo+ID4+Pj4gSW4gb3VyIGNhc2UgdGhlIGNvbW1hbmRzIHdvdWxkIGJlIDk5JSB0aGUgc2FtZS4gVGhlIDElIGlzIHRoZSBzb3VyY2UKPiA+PiBTVk4KPiA+Pj4+IFVSTCBhbmQgdGFyZ2V0IEdpdEh1YiBVUkwuIFRoYXQncyBhbGwuIFRoZW4gaWYgd2UgcHJvdmlkZSBJTkZSQSB3aXRoCj4gPj4gYnVuY2gKPiA+Pj4+IG9mIGNvbW1hbmRzIGxpa2UgdGhlc2UgdGhlbiB0aGV5IHdpbGwgb25seSBleGVjdXRlIHRoZW0gd2l0aCB0aGVpcgo+ID4+Pj4gcGVybWlzc2lvbnMuCj4gPj4+PiBJIGRvIG5vdCB0aGluayB0aGV5IHdpbGwgZ2l2ZSBtZSBhZG1pbiBwZXJtaXNzaW9ucyB0byBtYWtlIGl0Lgo+ID4+Pj4KPiA+Pj4+IGdpdCBzdm4gY2xvbmUgLS1uby1tZXRhZGF0YSAtLWF1dGhvcnMtZmlsZT0zREU6XCphdXRob3JzLnR4dCogaHR0cDovPQovCj4gPj4+PiAqKiovc3ZuLyoqKi8qdHJ1bmsvbGlicy9hdWRpdCBhdWRpdCoKPiA+Pj4+IGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5uYW1lICIqKiogKioqIgo+ID4+Pj4gZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLmVtYWlsICIqKipAKioqLioqKiIKPiA+Pj4+IGdpdCByZW1vdGUgYWRkIG9yaWdpbiBodHRwczovLyoqKkBnaXRodWIuY29tL2FwYWNoZS8KPiA+PiAqbWF2ZW4tY2xlYW4tcGx1Z2luKgo+ID4+Pj4gLmdpdAo+ID4+Pj4gZ2l0IHB1c2ggLXUgb3JpZ2luIC0tYWxsCj4gPj4+Pgo+ID4+Pj4gSSBvYnNlcnZlZCB0aGUgKmF1dGhvcnMudHh0KiBmcm9tIGNvbW1hbmQKPiA+Pj4+ICpzdm4gbG9nIC1xKgo+ID4+Pj4gRWFjaCBwZXJzb24gZnJvbSBiZXR3ZWVuIGZpcnN0IHR3byBwaXBlcywgZS5nLjoKPiA+Pj4+IHIxMjM0NTY3IHwgdGlib3JkaWdhbmEgfCAyMDE1LTEwLTE5IDAyOjIwOjAwCj4gPj4+Pgo+ID4+Pj4gRXZlcnkgZGV2ZWxvcGVyIGFkZGVkIGUtbWFpbCBhbmQgZnVsbCBuYW1lLCBpLmUuOgo+ID4+Pj4gdGlib3JkaWdhbmEgPTNEIFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4KPiA+Pj4+IGV0Yy4KPiA+Pj4+Cj4gPj4+PiBUaGlzIGxpc3Qgb2YgdXNlcnMgd2hpY2ggc2hvdWxkIGJlIGNyZWF0ZWQgaW4gcHJpb3IgdG8gY29udGFjdCBJTkZSQT0KLgo+ID4+Pj4gTm90IGFsbCB1c2VycyBhcmUgYWN0aXZlIGFmdGVyIHllYXJzIGJ1dCBpdCB3b3VsZCBiZSBuaWNlIHRvIGluY2x1ZGUKPiA+PiB0aGVtCj4gPj4+PiB0b28uCj4gPj4+PiBUaGlzIGxpc3Qgb2YgdXNlcnMgaXMgb25lIHRoaW5nIHdoaWNoIGNhbm5vdCBiZSBhdXRvbWF0ZWQhCj4gPj4+Pgo+ID4+Pj4KPiA+Pj4+Cj4gPj4+Pgo+ID4+Pj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCAyOjQ4IFBNLCBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc9Cj4KPiA+Pj4+Cj4gPj4+PiB3cm90ZToKPiA+Pj4+PiBJbiBteSBjb21wYW55IEkgaGF2ZSBzdWNoIHNpdHVhdGlvbiBpbiBTVk4uIE1ha2luZyBhIHRhZyBmcm9tCj4gPj4gc3ViZm9sZGVyLgo+ID4+Pj4+IEdpdCBhbHdheXMgbWFrZXMgdGhlIHRhZyBmcm9tIHRoZSByb290LCByaWdodD8KPiA+Pj4+PiBMZXQncyBnb29nbGUgc29tZXRoaW5nLi4uCj4gPj4+Pj4KPiA+Pj4+PiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDI6NDcgUE0sIFRpYm9yIERpZ2FuYSA8Cj4gPj4gdGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tCj4gPj4+Pj4KPiA+Pj4+Pj4gd3JvdGU6Cj4gPj4+Pj4+IEluIG15IGNvbXBhbnkgSSBoYXZlIHN1Y2ggc2l0dWF0aW9uLgo+ID4+Pj4+PiBNYWtpbmcgYSB0YWcgZnJvbSBzdWJmb2xkZXIuCj4gPj4+Pj4+IEdpdCBhbHdheXMgbWFrZXMgdGhlIHRhZyBmcm9tIHRoZSByb290LCByaWdodD8KPiA+Pj4+Pj4gTGV0J3MgZ29vZ2xlIHNvbWV0aGluZy4uLgo+ID4+Pj4+Pgo+ID4+Pj4+PiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDI6MDUgUE0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8Cj4gaGVydmUuYm91dGVteUBmcmVlLmZyCj4gPj4+Cj4gPj4+Pj4+Cj4gPj4+Pj4+IHdyb3RlOgo+ID4+Pj4+Pj4gdGhhbmtzIGZvciB5b3VyIGludGVyZXN0IGFuZCBmZWVkYmFjawo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IExlIHNhbWVkaSA3IG9jdG9icmUgMjAxNywgMTI6MDA6MzIgQ0VTVCBUaWJvciBEaWdhbmEgYSA9QzM9QTljcml0PQogOgo+ID4+Pj4+Pj4+IDc4IGlzIHRvbyBtdWNoLgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IG5vdGljZSB0aGF0IHRoZXJlIHdvdWxkIGFsc28gYmUgYSBxdWVzdGlvbiBvbiB0aGUgZ2l0IHJlcG9zIG5hbWluPQpnCj4gPj4+Pj4+PiBjb252ZW50aW9uLAo+ID4+Pj4+Pj4gdG8gYXZvaWQgZmxhdCA3OCBuYW1lcyBidXQga2VlcCBhdCBsZWFzdCAzIG1lYW5pbmdmdWwgZ3JvdXBzCj4gPj4gKHBsdWdpbnMsCj4gPj4+Pj4+PiBzaGFyZWQsCj4gPj4+Pj4+PiByZXNvdXJjZXM6IEkgdGhpbmsgdGhpcyBpcyBub3QgYWJzb2x1dGVseSBuZWNlc3NhcnkgZm9yCj4gZG94aWEtdG9vbHMpCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4+IFRoZXJlIGlzIG5vIHByb2JsZW0gdG8gdHJpZ2dlciByZWxlYXNlIG92ZXIgc3ViLWZvbGRlcnMgYW5kIHRhZyA9Cml0Cj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gd2l0aAo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+PiBwcmVmaXggd2hpY2ggaXMgYWxyZWFkeSBkb25lIGluIFNWTi4KPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBpcyBpdCBzdXBwb3J0ZWQgYnkgbWF2ZW4tcmVsZWFzZSBwbHVnaW4gd2l0aCBnaXQ/Cj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gbm90aWNlIEkgZGlkIG5vdCBrbm93IHRoYXQgZ2l0IHdhcyBhYmxlIHRvIHRhZyBvbmx5IGEgc3VidHJlZTogYnU9CnQKPiBJCj4gPj4+Pj4+PiBrbmV3IEkKPiA+Pj4+Pj4+IGRvbid0IHlldCB1bmRlcnN0YW5kIGV2ZXJ5IGFzcGVjdCBvZiBnaXQgbWFnaWMuLi4gOikKPiA+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gVGhlIENJIGJ1aWxkIGNhbiBhbHdheXMgdHJpZ2dlciB0aGUgcm9vdCBhbmQgSmVua2luc2ZpbGUgd291bGQKPiA+PiBoYXZlCj4gPj4+Pj4+Pj4gNDEKPiA+Pj4+Pj4+PiBzdGFnZXMgZm9yIHBsdWdpbnMsIDI2IHN0YWdlcyBmb3IgU2hhcmVkLCBldGMuCj4gPj4+Pj4+Pj4gSXQgY2FuIGJlIGRvbmUgaW4gSmVua2luc2ZpbGUgYW5kIHNvIHRoZSBzaGVsbCB3b3VsZCBub3QgdGhyb3cKPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBleGNlcHRpb24KPiA+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gYnV0IHN0YXR1cyB3b3VsZCBiZSBzZXQgaW5zdGVhZCBhbmQgZ29lcyB0byB0aGUgbmV4dCBzdGFnZS4KPiA+Pj4+Pj4+PiBJIGRvIG5vdCBrbm93IGhvdyB0byBkZXRlY3QgaW4gR2l0U0NNIHdoaWNoIHN1Yi1mb2xkZXIocykgcmVjZWl2PQplZAo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IGJ1dCBJCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4+IGd1ZXNzIHRoaXMgY2FuIGJlIGludmVzdGlnYXRlZC4KPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiArMQo+ID4+Pj4+Pj4gYnV0IEkgZG9uJ3Qga25vdyB3aGVyZSB0byBsb29rIGZvciBteXNlbGY6IG9uIHRoYXQgcG9pbnQsIEkgaG9wZSA9CnRvCj4gPj4+Pj4+PiBoYXZlIHNvbWUKPiA+Pj4+Pj4+IGhlbHAgZnJvbSBKZW5raW5zZmlsZSBleHBlcnRzCj4gPj4+Pj4+PiBhbmQgZXZlbnR1YWxseSBzdGFydCB3aXRoIHN2biwgdG8gaGF2ZSBzb21ldGhpbmcgYmVmb3JlIHRoZSBnaXQKPiA+Pj4+Pj4+IG1pZ3JhdGlvbgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+PiBUaGVuIGl0IGNhbiBiZSBhIGtpbmQgb2Ygc3dpdGNoLWNhc2Ugb3ZlciBjb21taXR0ZWQgZm9sZGVycyBpbgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IEplbmtpbnNmaWxlLgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+PiBUaGlzIG1lYW5zIHRoYXQgZXZlcnkgdGltZSBhbm90aGVyIHN0YWdlL3N1Yi1mb2xkZXIgaXMgc2hvd24gaW4KPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBQaXBlbGluZQo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+PiB3aGljaCB3aWxsIGJlIG1lc3N5IGluIHRoZSBVSS4gOigKPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBub3RpY2UgdGhhdCB3ZSBjYW4gcGVyaGFwcyBzcGxpdCB0aGUgcmVwb3MgaW4gbGVzcyBwYXJ0cyB0aGFuIHdlCj4gPj4gaGF2ZQo+ID4+Pj4+Pj4gY29tcG9uZW50czogb24gcGx1Z2lucywgZm9yIGV4YW1wbGUsIHdlIGFscmVhZHkgaGF2ZSA0IGNhdGVnb3JpZXMKPiA+PiBbMV0KPiA+Pj4+Pj4+IHdoaWNoCj4gPj4+Pj4+PiB3b3VsZCBhdm9pZCAxIHJlcG8gd2l0aCA0MSBwbHVnaW5zLCBidXQgbW9yZSBzb21ldGhpbmcgbGlrZQo+ID4+IDYrMTArMTArMTUKPiA+Pj4+Pj4+IEkgc3VwcG9zZSB3ZSBjb3VsZCBkbyB0aGUgc2FtZSBmb3Igc2hhcmVkIChyZXBvcnRpbmcgZm9sZGVyIGNvbWVzCj4gPj4gdG8gbXkKPiA+Pj4+Pj4+IG1pbmQpCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gVGhlIGtleSBmZWFzaWJpbGl0eSBpc3N1ZSBpcyB0aGUgY2FwYWNpdHkgdG8gcmVsZWFzZSBhCj4gc3ViLWNvbXBvbmVudAo+ID4+Pj4+Pj4gZnJvbSBnaXQKPiA+Pj4+Pj4+IHdpdGggbWF2ZW4tcmVsZWFzZS1wbHVnaW4sIElNSE8KPiA+Pj4+Pj4+ICh0YWtpbmcgYXBhcnQgdGhlIGdpdCBwdXJpc3RzIGlkZWEgb2YgMSBsaWZlY3ljbGUgPTNEIDEgZ2l0IHJlcG8pCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gUmVnYXJkcywKPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBIZXJ2PUMzPUE5Cj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IFsxXSBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLwo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+PiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDQ6MTcgQU0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8Cj4gPj4gaGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IHdyb3RlOgo+ID4+Pj4+Pj4+PiBUaGVyZSBhcmUgNiBzdm4gbG9jYXRpb25zIHdpdGhvdXQgYW55IHNwZWNpYWwgY29tcGxleGl0eSB0aGF0Cj4gPj4gYXJlCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gd2FpdGluZwo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gZm9yCj4gPj4+Pj4+Pj4+IGEgdm9sdW50ZWVyIGZvciBnaXQgbWlncmF0aW9uIGZvciBhIGZldyB5ZWFycyBidXQgbm9ib2R5IGRvZXMKPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBhbnl0aGluZwo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gYWJvdXQ6Cj4gPj4+Pj4+Pj4+IEkgc3RhcnRlZCAzIGRheXMgYWdvIHRvIGFzayBmb3IgaGVscCBhYm91dCBpdCBhbmQgZ290IHByZXR0eSBubwo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IGZlZWRiYWNrCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBbMV0KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gdGhlbiB0aGVyZSBhcmUgdGhlIDQgY29tcGxleCBzdm4gbG9jYXRpb25zIChwbHVnaW5zLCBzaGFyZWQsCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gcmVzb3VyY2VzLAo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gZG94aWEtCj4gPj4+Pj4+Pj4+IHRvb2xzKSB0aGF0IHJlcXVpcmUgbXVjaCBtb3JlIHdvcms6IEkgc3VwcG9zZSB3ZSBjYW4ndCB0ZWxsIGdpdAo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IG1pZ3JhdGlvbgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gaXMKPiA+Pj4+Pj4+Pj4gYWJhbmRvbmVkLCBidXQgaXQgd2lsbCByZXF1aXJlIHNvbWVvbmUgdG8gd29yayBvbiBpdCBzZXJpb3VzbHkKPiA+Pj4+Pj4+Pj4gUmVtZW1iZXIgdGhhdCB0aGUga2V5IHF1ZXN0aW9uIFsyXSBpczogZG8gd2UgdHJhbnNmb3JtIHRoZXNlIDQKPiA+PiBzdm4KPiA+Pj4+Pj4+Pj4gbG9jYXRpb25zCj4gPj4+Pj4+Pj4+IGludG8gNDEgKzI2ICsgNiArIDUgPTNEIDc4IGluZGVwZW5kZW50IGdpdCByZXBvcz8KPiA+Pj4+Pj4+Pj4gWWVzLCBJIHRvbGQgdGhhdCBKZW5raW5zIGNvbmZpZ3VyYXRpb24gaXMgb25lIGtleSBhc3BlY3Qgd2UKPiA+PiBuZWVkIGEKPiA+Pj4+Pj4+Pj4gc3RyYXRlZ3kKPiA+Pj4+Pj4+Pj4gYWJvdXQsIGluIHBhcmFsbGVsIHdpdGggZ2l0IHN0cmF0ZWd5Lgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gdGhlbiB0aGVyZSB3aWxsIGJlIHRoZSByZW1haW5pbmcgY2FzZXMgd2hlcmUgd2UgbmVlZCB0byBkZWNpZGU6Cj4gPj4+Pj4+PiBsb3dlcgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gaW1wYWN0LAo+ID4+Pj4+Pj4+PiBsb3dlciBwcmlvcml0eS4KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gU3VtbWFyeTogbm90aGluZyBpcyBhYmFuZG9uZWQsIGJ1dDoKPiA+Pj4+Pj4+Pj4gLSBzaW1wbGUgY2FzZXM6IG5vIHZvbHVudGVlciB0byBkbyB0aGUgam9iCj4gPj4+Pj4+Pj4+IC0gaGFyZCBjYXNlczogaXMgdGhlcmUgYSB2b2x1bnRlZXIgZWl0aGVyIHRvIGRlZmluZSBhIHN0cmF0ZWd5Cj4gPj4gb3IKPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBkbyBzb21lCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4+PiB3b3JrCj4gPj4+Pj4+Pj4+IG9uIGl0Pwo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBSZWdhcmRzLAo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBIZXJ2PUMzPUE5Cj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IFsxXSBodHRwczovL2xpc3RzLmFwYWNoZS5vcmcvdGhyZWFkLmh0bWwvCj4gPj4+Pj4+Pj4+IGVkZjM2NDJhN2JkZDUxNWYwY2FkNDIxYzI1NTg5NzQxODE5NDQ2NDYzNjE0YmYwNTE1ZTU2ZGJlQAo+ID4+Pj4+Pj4+PiAlM0NkZXYubWF2ZW4uYXBhY2hlLm9yZyUzRQo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBbMl0gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9HaXQKPiA+Pj4+Pj4+Pj4gK01pZ3JhdGlvbiNHaXRNaWdyYXRpb24tTWlncmF0aW5nYW5hZ2dyZWdhdG9ydHJlZWludG9hY29sbGVjCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gdGlvbm9mZ2l0cmVwb3MKPiA+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IExlIHZlbmRyZWRpIDYgb2N0b2JyZSAyMDE3LCAyMDozNTo0NSBDRVNUIEFybmF1ZCBIPUMzPUE5cml0aWVyID0KYQo+ID4+ID1DMz1BOWNyaXQgOgo+ID4+Pj4+Pj4+Pj4gQnV0IGRpZCB3ZSBjb21wbGV0ZWx5IGFiYW5kb25lZCB0aGUgaWRlYSBvZiBtb3ZpbmcgZXZlcnl0aGluZwo+ID4+IHRvCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gZ2l0ID8KPiA+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+PiBUaGUgQ0kgc2V0dXAgd2FzIHRoZSBtYWluIHN0b3AgZm9yIGl0ID8KPiA+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+PiBPbiBGcmksIE9jdCA2LCAyMDE3IGF0IDg6MDUgUE0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8Cj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gaGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gd3JvdGU6Cj4gPj4+Pj4+Pj4+Pj4gSSB3YXMgZXhwZWN0aW5nIHRoZSB1c3VhbCBsaXRhbnkKPiA+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IHdoYXQgSSdtIG5vdCBjb25maWRlbnQgY3VycmVudGx5IHdpdGggcGlwZWxpbmUgb24gTWF2ZW4KPiA+PiBjb3JlIGlzCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gdGhhdAo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiB3ZQo+ID4+Pj4+Pj4+Pj4+IGhhdmUKPiA+Pj4+Pj4+Pj4+PiBmb3IgZXhhbXBsZSB0aGUgIm1hdmVuLTMueC1qZW5raW5zZmlsZS9NTkctNjI0MiAtIGJ1aWxkICMxCj4gPj4gLQo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IG51bGwiCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IG1lc3NhZ2UsCj4gPj4+Pj4+Pj4+Pj4gd2l0aCB0aGlzICJudWxsIiBwYXJ0IHRoYXQgbWFrZXMgbWUgd29uZGVyIGlmIHdlIGFyZSB1c2luZwo+ID4+IGl0Cj4gPj4+Pj4+Pj4+Pj4gYXMKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gZXhwZWN0ZWQuCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gQW5kIGZvciBsYXJnZSBtdWx0aS1tb2R1bGUgc3ZuIHRydW5rcyAodGhlIG9uZXMgd2UgZG9uJ3QKPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBtaWdyYXRlIHRvCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBnaXQ6Cj4gPj4+Pj4+Pj4+Pj4gbWFpbmx5IHBsdWdpbnMgYW5kIHNoYXJlZCksIGlzIHRoZXJlIGEgc29sdXRpb24gdG8gcmVidWlsZAo+ID4+IGp1c3QKPiA+Pj4+Pj4+Pj4+PiBjaGFuZ2VkCj4gPj4+Pj4+Pj4+Pj4gbW9kdWxlcz8KPiA+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IGlkZWFsbHksIHRoZSByZWJ1aWxkIHdoZW4gYSBTTkFQU0hPVCBkZXBlbmRlbmN5IGlzIHB1Ymxpc2hlZAo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IHdvdWxkCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IGhhdmUKPiA+Pj4+Pj4+Pj4+PiBiZWVuIGEKPiA+Pj4+Pj4+Pj4+PiBwbHVzLCBidXQgdGhpcyBpcyBzdWZmaWNpZW50bHkgYSByYXJlIHVzZSB0aGF0IEkgd29uJ3QgYmUKPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBleHRyZW1pc3QKPiA+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gVGhlbiBJSVVDLCB0aGlzIG1pZ3JhdGlvbiBqb2IgaXMgb25lIGFkZGl0aW9uYWwgVE9ETyBmb3IKPiA+PiBtZS4uLgo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gUmVnYXJkcywKPiA+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IEhlcnY9QzM9QTkKPiA+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IExlIHZlbmRyZWRpIDYgb2N0b2JyZSAyMDE3LCAxNzo0Njo1MyBDRVNUIEFybmF1ZCBIPUMzPUE5cml0aWU9CnIgYQo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+ID1DMz1BOWNyaXQgOgo+ID4+Pj4+Pj4+Pj4+PiBJIGFncmVlIHRoYXQgd2Ugc2hvdWxkIHVzZSBwaXBlbGluZSBub3dkYXlzCj4gPj4+Pj4+Pj4+Pj4+IHBlcmhhcHMgYSBzaGFyZWQgbGliIGlmIHdlIHdhbnQgdG8gc3RhbmRhcmRpemUgc29tZSBzdHVmZnMKPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBhbmQgYSBzZXQKPiA+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IG9mCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+IG11bHRpLWJyYW5jaGVzIGpvYnMgKG9yIG9yZyBmb2xkZXIgYnV0IGl0IHJlcXVpcmVzIEdpdEh1Ygo+ID4+IDooCj4gPj4+Pj4+Pj4+Pj4+ICkKPiA+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4gT24gRnJpLCBPY3QgNiwgMjAxNyBhdCA5OjE2IEFNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPj4+Pj4+Pj4+Pj4+PiBPbiBGcmkgNiBPY3QgMjAxNyBhdCAwNjozMiwgSGVydj1DMz1BOSBCT1VURU1ZIDwKPiA+Pj4+Pj4+Cj4gPj4+Pj4+PiBoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IHdyb3RlOgo+ID4+Pj4+Pj4+Pj4+Pj4+IEkganVzdCBmaXhlZCBhIGZldyBmYWlsaW5nIGpvYnMgWzFdIHRvIGhhdmUgYWdhaW4gYQo+ID4+Pj4+Pj4+Pj4+Pj4+IHVzYWJsZQo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBKZW5raW5zLgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+IE5vdyBJJ20gZmFjaW5nIHNvbWUgaXNzdWVzLCBJIHN1cHBvc2UgY2F1c2VkIGJ5IG5ld2VyCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gSmVua2lucwo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiB2ZXJzaW9uczoKPiA+Pj4+Pj4+Pj4+Pj4+PiAtIE1hdmVuIDMuMC41IGNhdXNlcyBOb1N1Y2hNZXRob2RFcnJvcjoKPiA+Pj4+Pj4+Pj4+Pj4+PiBvLmMucGxleHVzLnV0aWwueG1sLnB1bGwuCj4gPj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4gTVhQYXJzZXIKPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4gWzJdCj4gPj4+Pj4+Pj4+Pj4+Pj4gLSBJIGhhZCB0byBzd2l0Y2ggdG8gSkRLIDggZm9yIG1hdmVuLXBsdWdpbi10b29scyBqb2IsCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gc2luY2UgSkRLCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IGNhdXNlcwo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4gZmFpbHVyZXMgKGxvb2tzIGxpa2UgSmVua2lucyB1c2VzIGEgaGFjayB0byBpbmplY3QKPiA+PiBKREsgNwo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IGFzIGEKPiA+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IHRvb2wKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiB3aGlsZQo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4gdGhlCj4gPj4+Pj4+Pj4+Pj4+Pj4gYnVpbGQgSlZNIGlzIEphdmEgOCkKPiA+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+IFNob3VsZCB3ZSBkcm9wIE1hdmVuIDMuMC41IGJ1aWxkcyBhbmQgSkRLIDc/Cj4gPj4+Pj4+Pj4+Pj4+Pj4gTm90aWNlIEkgZGlkbid0IGNoZWNrIHdoaWNoIGlzIHRoZSBtaW5pbXVtIE1hdmVuCj4gPj4gdmVyc2lvbgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiByZXF1aXJlZC4uLgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+IE9yIHBlcmhhcHMgc2ltcGx5IGRvbid0IHVzZSB0aGUgSmVua2lucyBNYXZlbiBwbHVnaW4KPiA+PiB3aXRoCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gdGhpcwo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gTWF2ZW4KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+IDMuMC41Cj4gPj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+IG9yCj4gPj4+Pj4+Pj4+Pj4+Pj4gSkRLIDcgY29uZmlndXJhdGlvbjogZGVmYXVsdCBidWlsZCBhcyBKZW5raW5zIE1hdmVuCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gcGx1Z2luIHdpdGgKPiA+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IEpESwo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IDggKwo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4gbGF0ZXN0Cj4gPj4+Pj4+Pj4+Pj4+Pj4gTWF2ZW4sIGFuZCBvdGhlciBjb25maWd1cmF0aW9ucyBhcyBzY3JpcHRlZCBqb2JzPwo+ID4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+IGh0dHA6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90Lgo+ID4+IGllLzIwMTMvMTEvamVua2lucy1tYXZlbi1qb2ItPiA+Pj4+ID4gPiA+ID4gPiA+ID4KPiA+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IHR5cGUtY29uc2lkZXJlZC1ldmlsLmh0bWwKPiA+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4gPGh0dHA6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90LmllLzIwMTMvMTEvamVua2lucy0+ID4KPiA+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IG1hdmVuLWpvYi10eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sP209M0QxPgo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiBXZSBzaG91bGQgc3RvcCB1c2luZyB0aGUgZXZpbCBqb2IgdHlwZSBhcyBpdD1FMj04MD05OXMgbWluaT0KbXVtCj4gPj4gSmF2YQo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiB2ZXJzaW9uIGlzCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiBkaWN0YXRlZCBieSBKZW5raW5zPUUyPTgwPTk5IEphdmEgbWluaW11bS4KPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4gV2UgbmVlZCB0byBkZWZpbmUgb3VyIGNvbW1vbiBzdHJhdGVneSBhbmQgaGF2ZSBhCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gY29uc2lzdGVudAo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+PiBjb25maWd1cmF0aW9uCj4gPj4+Pj4+Pj4+Pj4+Pj4gZm9yCj4gPj4+Pj4+Pj4+Pj4+Pj4gZXZlcnkgam9iIHVuZGVyc3Rvb2QgYnkgZXZlcnlib2R5Cj4gPj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4gSSByZWNvbW1lbmQgSmVua2luc2ZpbGUgYW5kIHRoZSBgd2l0aE1hdmVuYCB3cmFwcGVyCj4gPj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+IFJlZ2FyZHMsCj4gPj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+PiBIZXJ2PUMzPUE5Cj4gPj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+PiBbMV0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuLwo+ID4+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4gWzJdCj4gPj4+Pj4+Pj4+Pj4+Pj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy8KPiA+PiB2aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi0+Cj4gPj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4gcGx1Z2luLXRvb2xzLWpkay0xLjcvMTYyL2NvbnNvbGUKPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IC0tLS0tLS0tLQo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS4KPiA+PiBvcmcKPiA+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDoKPiA+Pj4+Pj4+IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4gLS0KPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiBTZW50IGZyb20gbXkgcGhvbmUKPiA+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IC0tLS0tLS0tLQo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Pj4+Pj4+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gLS0tLS0tLS0tCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Pj4+Pj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gLS0tLS0tLS0tCj4gPj4+Pj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Pj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Pj4+Pgo+ID4+Pj4+PiAtLQo+ID4+Pj4+PiBDaGVlcnMKPiA+Pj4+Pj4gVGlib3IKPiA+Pgo+ID4+Cj4gPj4KPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pgo+ID4+Cj4gPgo+ID4KPiA+IC0tCj4gPiAtLS0tLQo+ID4gQXJuYXVkIEg9QzM9QTlyaXRpZXIKPiA+IGh0dHA6Ly9haGVyaXRpZXIubmV0Cj4gPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+ID4gVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcgo+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+CgoKLS09MjAKLS0tLS0KQXJuYXVkIEg9QzM9QTlyaXRpZXIKaHR0cDovL2FoZXJpdGllci5uZXQKTWFpbC9HVGFsazogYWhlcml0aWVyIEFUIGdtYWlsIERPVCBjb20KVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcgoKLS0wODllMDhlNGQ3MGI2ZjZkYWIwNTVhZmFkZDIyLS0KCgpGcm9tIGRldi1yZXR1cm4tMTIzODUxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBTZXAgIDEgMTU6MTE6NDYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzODUxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDlEODU3MUFFNDUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAgMSBTZXAgMjAxNyAxNToxMTo0NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDIwODcgaW52b2tlZCBieSB1aWQgNTAwKTsgMSBTZXAgMjAxNyAxNToxMTo0MSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTg4NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxIFNlcCAyMDE3IDE1OjExOjQwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTgzNCBpbnZva2VkIGJ5IHVpZCA5OSk7IDEgU2VwIDIwMTcgMTU6MTE6NDAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDAxIFNlcCAyMDE3IDE1OjExOjQwICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQjZFRkQxODM4OUMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksICAxIFNlcCAyMDE3IDE1OjExOjM5ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC4xClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTAuMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBIVE1MX09CRlVTQ0FURV8wNV8xMD0wLjAwMSwgS0FNX05VTVNVQkpFQ1Q9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgU0pOa3JTUk9uRUR3IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJRnJpLCAgMSBTZXAgMjAxNyAxNToxMTozOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXVhMC1mMTcxLmdvb2dsZS5jb20gKG1haWwtdWEwLWYxNzEuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNy4xNzFdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNzZDNjc1RjU2OAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgIDEgU2VwIDIwMTcgMTU6MTE6MzggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdWEwLWYxNzEuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgYzI3c28xNDM4NTcxdWFoLjIKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAwMSBTZXAgMjAxNyAwODoxMTozOCAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1XUURzM05Eb1IvVXB6em1vamM5S3BGbFd6Sk9JVVE2cWs4ZXQ5Z0RvVVV3PTsKICAgICAgICBiPVloM1FqaTlCYUVXcmdOOTFKYlBuZGhwaGhTV0VVaTdaMUpRQU8xZUcrM2ZwN2M3NDVoSzJZY0MvUE02SXN5dWtYaQogICAgICAgICAzQU1FbHlGeDREMG9jN3creWtWU1JiRC9SWWRTWmRweE9RMk9CelUwMTIzbzZWL0ZKdE90S1JIT2hJemNBY29wTUVIcAogICAgICAgICBCN3Q1amZUMnBkUlpiaGhhcDdVNlRrMzk1Tmk0T3VZTmVHLy9OU2c4SWlDbkJyOW5sei9KcnZoMlJGZGU5OENqQ1RjbwogICAgICAgICA4RVhiVkJZalo5Z1FhcURJYTljc1h1VHhQOS9xOG5lalNwZXdXM1htZU96NmhNWXE0NWpPVytTSk1lcm8zM01kSW4zRQogICAgICAgICA3V3VGeE4rWXdXUDJZaVR6UFlrYWF6UHhxYUlUWjBIQTAxZmNRUjN3OG13dkhDWmpnOWRrWEdMK2E3UUcydkx2dGlWRwogICAgICAgICBaZ1BnPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1XUURzM05Eb1IvVXB6em1vamM5S3BGbFd6Sk9JVVE2cWs4ZXQ5Z0RvVVV3PTsKICAgICAgICBiPXIzeng0TmgwdCs4R2cwUDg2L1BvS1gvdlg4aG5rQ0wrSHZUbGJZYnpsYi9BU20ySlFhV1RWL3ltNU1XakxlSlRYZQogICAgICAgICBCY050MmxhQkEzV24zRGhUbFR5ZXExcmZ3KzZYbElYcFVpMC8zZzAvd0xpcC8zSWxWaXd5K3pkU2FvMURlbkF3WmE0dQogICAgICAgICAxYmt0SFQ4YWttdUN6SkU0VFp2a0o5eW5HVWQxRWo0djluTE9QTHEzSnM3bHo2NnVHUlFTVnhRQ1kzYXN0Tk0yWTZObQogICAgICAgICBFNHpCRHdENkViWjlCQ0lsT2UwTE1ReW1zeWUvOEc4aUtOYVdYRGhVeWVQWE5uT1BkTGFHSmpDVnlwa3VEYWtFQ1VzSAogICAgICAgICA4TXpwckorV0FJbXNFQUdCQVhkNjlTUG1NdXJ3SXZwKzEyVG15M21NMUM2bkFzc0lPQlNyUWFNeXpTdE9tN3NVUkV2TQogICAgICAgICBPeGpBPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVqUTN6L1NxTkpEdlA3YzQxYVd3WWlwM1ZTTXc3OG04T0lYT0hwTUY4VnlnSWNCYVdhRwoJQUp5VzB4b2RISktxYkplaCt0Ylcva0IvSmdraEJPN1gKWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFES0NOYjdCRHZ3NlJaNUNGUWJIdzZWZyt2V1I3V3UvWFFLMTZlTmxjSzlValNRM2JYQk9rRHJjUytXN01zRytpVVdycDZudU9hRklvN2MyTldSUE4vUUhmdVk9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjE1OS4zMy4xMDEgd2l0aCBTTVRQIGlkIDkybXIxMzU3MjgxdWFiLjIwMi4xNTA0Mjc4NjkxNTg4OwogRnJpLCAwMSBTZXAgMjAxNyAwODoxMTozMSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTU5LjU1Ljc3IHdpdGggSFRUUDsgRnJpLCAxIFNlcCAyMDE3IDA4OjExOjExIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8b3AueTV2M2Q2cTJrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+ClJlZmVyZW5jZXM6IDxvcC55NXYzZDZxMmtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KRnJvbTogPT9VVEYtOD9RP0FybmF1ZF9IPUMzPUE5cml0aWVyPz0gPGFoZXJpdGllckBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMSBTZXAgMjAxNyAxNzoxMToxMSArMDIwMApNZXNzYWdlLUlEOiA8Q0FGTkNVLTg5bkVBU3MwNlNmUUgzeDdoeF80UXREZks5dy1ORz04PWozUz1fa04ySFVRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIENvbXBpbGVyIFBsdWdpbiB2ZXJzaW9uIDMuNy4wClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzBiNmYzYzBlMzU1YTA1NTgyMjJkZDMiCgotLTk0ZWIyYzBiNmYzYzBlMzU1YTA1NTgyMjJkZDMKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKKzEKCk9uIEZyaSwgU2VwIDEsIDIwMTcgYXQgMzo1MCBQTSwgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPiB3cm90ZT0KOgoKPiBIaSwKPgo+IFdlIHNvbHZlZCA2IGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamUKPiBjdElkPTNEMTIzMTcyMjUmdmVyc2lvbj0zRDEyMzQxMjY2JnN0eWxlTmFtZT0zRFRleHQKPgo+IFRoZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlM0QlCj4gMjAxMjMxNzIyNSUyMEFORCUyMHN0YXR1cyUyMCUzRCUyME9wZW4lMjBPUkRFUiUyMEJZJTIwa2V5JQo+IDIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQwo+Cj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNTkvCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc2VydmljZS9sb2NhbC9yZXBvc2l0b3JpZXMvbWF2Cj4gZW4tMTM1OS9jb250ZW50L29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi1jb21waWxlci1wbHVnCj4gaW4vMy43LjAvbWF2ZW4tY29tcGlsZXItcGx1Z2luLTMuNy4wLXNvdXJjZS1yZWxlYXNlLnppcAo+Cj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gbWF2ZW4tY29tcGlsZXItcGx1Z2luLTMuNy4wLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOgo+IDExNDhkOGExZjg5ZTY5MDBhZmIwY2ExZGJmNzRmNjQ5MzI0MDJjZmQKPgo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1jb21waWxlci1wbHVnaW4tTEFURVNULwo+Cj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPgo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4KPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCgotLT0yMAotLS0tLQpBcm5hdWQgSD1DMz1BOXJpdGllcgpodHRwOi8vYWhlcml0aWVyLm5ldApNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQpUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyCgotLTk0ZWIyYzBiNmYzYzBlMzU1YTA1NTgyMjJkZDMtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDIxNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgT2N0IDExIDE3OjAzOjQwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDIxNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA2Qzg5RjEwNDdCCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMTEgT2N0IDIwMTcgMTc6MDM6NDAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1Njc2IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIE9jdCAyMDE3IDE3OjAzOjQwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NTg0IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIE9jdCAyMDE3IDE3OjAzOjQwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTU2NSBpbnZva2VkIGJ5IHVpZCA5OSk7IDExIE9jdCAyMDE3IDE3OjAzOjM5IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAxMSBPY3QgMjAxNyAxNzowMzozOSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEM0MTkwREIxMTcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDExIE9jdCAyMDE3IDE3OjAzOjM4ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi4zNzkKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi4zNzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIElHemgtR2NBckJocSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgMTEgT2N0IDIwMTcgMTc6MDM6MzUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC12azAtZjUwLmdvb2dsZS5jb20gKG1haWwtdmswLWY1MC5nb29nbGUuY29tIFsyMDkuODUuMjEzLjUwXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDg0NTVENUYxOUMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDExIE9jdCAyMDE3IDE3OjAzOjM0ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXZrMC1mNTAuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgMTM3c28xMzA1NzU4dmtrLjgKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMSBPY3QgMjAxNyAxMDowMzozNCAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1PTGpPMnJOc29kRnlqcXZucDFrNGNMYlg0dUZmTk05WHFsUitmVDBML1djPTsKICAgICAgICBiPUV2VUpWSEd4QUhhZEowbGZ4Ris0UnBUeFNvcEVObStUSHY2eThCMHVDRlNtd1NZajBIYUtGTVlSWm9oWFlVc3VUUgogICAgICAgICA1UVA2VHpPYkE2Q2szZzkwQTluYWd2WjhZTUUydlhFU2dpWnZUZjlESHNBQ3Nqdk03c0tUaTFkSGwrMWZMQzBDZ3Q0WAogICAgICAgICAzYlAxdkY4cmEwWENUd1kyTnFOWndBVU5jZW5mTnlBWjFUM0d6a2dMcWFCUzR5S0pobVF1a3BTWW5BZ0VUTUJmSjlLWgogICAgICAgICBSUkxGSCtOSmc2WkZCU1dDeThoQ29aUDFObVpiM1BZald5UWF5YXBQR1ZITkw3N2Rjc2l3cEhGRk9scVlOdkpvQ2JCSAogICAgICAgICBEbVdvcklvSGU4T0xwcE11SWNTUDhnSmdVL0hTMWdDS3JRMFEyU3dwaDRQbENaRXN1dEpUQVBUT1pYV0FHRnhwS3JocQogICAgICAgICBad1ZRPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1PTGpPMnJOc29kRnlqcXZucDFrNGNMYlg0dUZmTk05WHFsUitmVDBML1djPTsKICAgICAgICBiPVBLc0RuSkt1MmRDVTFCcjBGVWJrNExMUWJHOFhUMVYrMjZMN1pQMDdmSFdtUVZCNXJRUGlYRkE4aE01L29xVGVmMAogICAgICAgICAvc0lZTkJocno0bVpiUlc4NThiN1RXL2orZHFCdE9WT2VINmw1RTRPMDZwL29BT3NIOGtqNitWa1EzL01oTHlzRjN0SgogICAgICAgICBISEZRNnRhVWFtcnpCTFRpSHdpWkw3dFNkVVd5UmlKTTFiOCtFWFRIZFBJbHJxTmwvNzVPNDJ4ZzI3QThIU2c1TjFicAogICAgICAgICBOSDN4amgyYlVQVCt0U0xpMDNrdmk3UVQvdG9EbzFxVmoxS3NwZGczZXFVbE5IOVVYZk8yY0xRdng0T2twUmlhNDlXbQogICAgICAgICBFNDR1WUxWT3B1NWhhWWUyRHdrUzlJRnU5d1hQaDluQm0vajFmNkMzbDVqUUpZNFhEY040NXppWk1aRzJrb2ZHMlZXegogICAgICAgICA1OWp3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FWVEtsTHE3MksrTU45cjdOdFhTNVRxV0lYRGdFUzJndjdYRHlDcmJvSkNYbG1wZWFMeQoJRnlkMmtPenNxQ3Nud05WaDRENEJHcllOWHhQMDNnVHcwejlqWC9pQlNnPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUFWd1lBdVlKZFdXejBES3ZyL0haSytVbEgvV2xRbkNNbjVPMnZsU3MvUGdlSXgyZ0R0SVBIeHJBaVl2b1dIcU5lem5EYnUrS3gvbDBLam1zanRLMEk9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjMxLjU4LjE0NSB3aXRoIFNNVFAgaWQgaDEzOW1yMjM1MTY4dmthLjE5NC4xNTA3NzQxNDEyOTYyOwogV2VkLCAxMSBPY3QgMjAxNyAxMDowMzozMiAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTc2Ljg1LjEzNiB3aXRoIEhUVFA7IFdlZCwgMTEgT2N0IDIwMTcgMTA6MDM6MTIgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDwzMjk3NzA0MC1DNzAxLTQwNTMtQTU1NC03MENEQjE3QzhBRjFAeWFob28uZGU+ClJlZmVyZW5jZXM6IDwxMDU0NDYxNS5CNGhPM1BudkV6QGdpZ2E+IDxDQUt1VnpCUjJ3K2ZrNVMzdW5CUVI3QjU0ZVU4MENRUWFDNjR1eVk1WE5FQ0hvU0g2R2dAbWFpbC5nbWFpbC5jb20+CiA8Q0FLdVZ6QlFTZ1JYV1ZFZzhDZ3JaZHNOR3dkVGZOdGM0cVd0NEdueUpEb29peWFyMk5BQG1haWwuZ21haWwuY29tPgogPDE5MzQ5ODMueFJNOEt5SWltaUBnaWdhPiA8Q0FGTkNVLV81Q2ZhUE1MMmZ3Wis3dEZFQVpKVCt3WkJEeDZiPS03RTRKUktBbT0tWWdnQG1haWwuZ21haWwuY29tPgogPEUyRDJGRDAzLTYyMTQtNDIxMC05NDU5LTk3QUYyM0YwMEI0RUBob250b24ub3JnPiA8Q0FGTkNVLS1vSEhEK0NGbWMxMGpIVU9KX25UQ1QtXz1hbk1xeTBPYWM3djdrR2ptdTdRQG1haWwuZ21haWwuY29tPgogPDMyOTc3MDQwLUM3MDEtNDA1My1BNTU0LTcwQ0RCMTdDOEFGMUB5YWhvby5kZT4KRnJvbTogPT9VVEYtOD9RP0FybmF1ZF9IPUMzPUE5cml0aWVyPz0gPGFoZXJpdGllckBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMTEgT2N0IDIwMTcgMTk6MDM6MTIgKzAyMDAKTWVzc2FnZS1JRDogPENBRk5DVS04RURUUW40U2VBaTJteGZxX0xSK0hienk5MUNodUw5ajdBRW96WUxvc2lNUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IEplbmtpbnMgYW5kIE1hdmVuIDMuMC41IG9yIEpESyA3ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQzMmI5NDU1MzhiNzA1NWI0ODY3YmYiCgotLTAwMWExMTQzMmI5NDU1MzhiNzA1NWI0ODY3YmYKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSSBhZ3JlZSB3aXRoIE1hcmsgYWJvdXQgdGhlIHJ1bGUgdG8gc3BsaXQ6IDEgcmVwbyA9M0QgMSBsaWZlY3ljbGUKQnV0IGxpa2Ugd2Ugc2FpZCB3aXRoIHRoZSBudW1iZXIgb2YgcmVwbyBhbmQgdGhlIGZsYXQgb3JnYW5pc2F0aW9uIGluIGluZnJhCnNpZGUgaXQgd29uJ3QgYmUgZWFzeSA6KAoKQWJvdXQgc3ViLW1vZHVsZXMgb3Igc3ViLXRyZWVzIEkgbmV2ZXIgdXNlZCB0aGVtIG15c2VsZiBidXQgSSBhbHdheXMgaGFkCnZhcmlvdXMgYmFkIGZlZWRiYWNrcy4KCkFib3V0IGRlcGVuZGVuY2llcyBjeWNsZXMgLi4uIHllYWggaXQncyBhIHJlY3VycmVudCBpc3N1ZSBidXQgSSB0aGluayBpdAptaWdodCBoYXBwZW4gd2hhdGV2ZXIgU0NNIG9yZ2FuaXNhdGlvbiB3ZSBjaG9vc2UKCkZvciB0aGUgaW50ZWdyYXRpb24gcHJvcG9zZWQgYnkgU3RlcGhlbiBDICsxMDAwIGJ1dCBJIGtub3cgaGUgaGFzIGEgbG90IG9uCmhpcyBwbGF0ZSAuLi4KCgpPbiBNb24sIE9jdCA5LCAyMDE3IGF0IDExOjMxIEFNLCBNYXJrIFN0cnViZXJnIDxzdHJ1YmVyZ0B5YWhvby5kZS5pbnZhbGlkPgp3cm90ZToKCj4gSGkgZm9sa3MhCj4KPiBIYXZpbmcgZG96ZW4gc3ViIHJlcG9zIGluIEdJVCBpcyBzdGlsbCBhIFBJVEEuCj4gQWxzbyBnaXQtc3VibW9kdWxlcyBpcyBzdGlsbCBzdWItb3B0aW1hbCBhbmQgYXQgYmVzdCBhIHNtYWxsaXNoIGhlbHBlci4KPgo+IEZvciBtZSBwZXJzb25hbGx5IHRoZXJlIGlzIG9uZSBtYWpvciBkZWNpc2lvbiBwb2ludCBpZiBpdCBjb21lcyB0bwo+IGRlY2lkaW5nIHdoZXRoZXIgdG8gaGF2IG9uZSBiaWcgcmVwbyBvciBtdWx0aXBsZSBzbWFsbGVyIG9uZXM6IHRoZQo+IGRlbGl2ZXJhYmxlLgo+Cj4gSXMgdGhlcmUgZXhhY3RseSBvbmUgZGVsaXZlcmFibGUgKG9uZSAnbWF2ZW4nIHJlbGVhc2UpLCB0aGVuIGl0IHNob3VsZCBiZQo+IG9uZSByZXBvLgo+Cj4gQXJlIHRoZXJlIG1hbnkgZGVsaXZlcmFibGVzIHdoaXRoIHNlcGFyYXRlIGxpZmVjeWNsZSAobGlrZSBtb3N0IHBsdWdpbnMpCj4gdGhlbiBJIG5vcm1hbGx5IGRvIHNlcGVyYXRlIHJlcG9zLgo+Cj4gSWYgSSBoYXZlIG11bHRpcGxlIHJlcG9zIHRoZW4gSSB1c3VhbGx5IGRvIGEgbWFudWFsbHkgbWFpbnRhaW5lZCBidWlsZAo+IHBpcGVsaW5lIGFnYWluc3QgYSBGUkVTSCByZXBvIQo+IFRoaXMgaXMgaW1wb3J0YW50ISBZb3UgbXVzdCBfbm90XyBoYXZlIGFueSBzbmFwc2hvdCBvZiB0aGF0IHZlcnNpb24gaW4KPiB5b3VyIHVwc3RyZWFtIG1hdmVuIHJlcG9zLgo+IE90aGVyd2lzZSB5b3UgZWZmZWN0aXZlbHkgY2Fubm90IGRldGVjdCB3aGV0aGVyZSB0aGVyZSBhcmUgY3ljbGVzIGJldHdlZW4KPiBtb2R1bGVzLgo+IEEgLT4gQiAtPiBBLiBXb3JrcyB0b3RhbGx5IGZpbmUgYW5kIGNvbXBpbGVzIGlmIGEgbi0xIHZlcnNpb24gU05BUFNIT1Qgb2YKPiBBIGFuZCBCIGlzIGluIHRoZSByZXBvc2l0b3J5LiBCdXQgeW91IHdpbGwgbmV2ZXIgYmUgYWJsZSB0byBidWlsZCBpdCBmcm9tCj4gc2NyYXRjaC4KPgo+IFRoZSBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoZSAnY29yZScgbWF2ZW4gcGx1Z2lucyAobWF2ZW4tY2xlYW4tcGx1Z2luLAo+IG1hdmVuLXBsdWdpbi1wbHVnaW4sIGV0YykgY3JlYXRlIHN1Y2ggYSBjeWNsZSB3aXRoIHRoZSBtYXZlbiBjb3JlPwo+IFRoYXQgbWlnaHQgaGFwcGVuIGlmIHdlIGFkZCBhIG5ldyBmZWF0dXJlIHRvIHRoZSBwbHVnaW4gQVBJPwo+Cj4gTGllR3J1ZSwKPiBzdHJ1Ygo+Cj4KPiA+IEFtIDA3LjEwLjIwMTcgdW0gMjI6MzIgc2NocmllYiBBcm5hdWQgSD1DMz1BOXJpdGllciA8YWhlcml0aWVyQGdtYWlsLmNvPQptPjoKPiA+Cj4gPiBBRkFJUiB0aGUgbWFpbiBjb25jZXJuIHdhcyBmb3IgZGV2ZWxvcGVycyB0byBoYXZlIHRvIGNsb25lIHNldmVyYWwgZG96ZT0Kbgo+IG9mCj4gPiByZXBvc2l0b3JpZXMKPiA+IEkgZG9uJ3QgdGhpbmsgaXQgaXMgYSByZWFsIGlzc3VlLiBXZSBjYW4gc2hhcmUgYSBzY3JpcHQgdG8gZG8gaXQgZWFzaWx5Cj4gPgo+ID4KPiA+IE9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgMTA6MjYgUE0sIENoYXMgSG9udG9uIDxjaGFzQGhvbnRvbi5vcmc+IHdyb3RlOgo+ID4KPiA+PiBXaGF0IGFyZSB0aGUgY29uY2VybnMgd2l0aCBzZXBhcmF0ZSBnaXQgcmVwb3NpdG9yeSBwZXIgYXJ0aWZhY3Q/ICBJcyBpPQp0Cj4gPj4gdGhlIG1vbm9saXRoaWMgYnVpbGQ/Cj4gPj4KPiA+PiBDaGFzCj4gPj4KPiA+Pj4gT24gT2N0IDcsIDIwMTcsIGF0IDE6MjAgUE0sIEFybmF1ZCBIPUMzPUE5cml0aWVyIDxhaGVyaXRpZXJAZ21haWwuY29tPQo+Cj4gd3JvdGU6Cj4gPj4+Cj4gPj4+ICsxCj4gPj4+Cj4gPj4+PiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDc6MTEgUE0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcj0KZWUuZnI+Cj4gPj4gd3JvdGU6Cj4gPj4+Pgo+ID4+Pj4gd2UgY2FuIHN0YXJ0IHdpdGggbmFtaW5nIHRoZSBmdXR1cmUgZ2l0IHJlcG9zOiBJIHN1cHBvc2UgYWRkaW5nIGEKPiB0YWJsZQo+ID4+IGF0Cj4gPj4+PiB0aGUKPiA+Pj4+IGVuZCBvZiB0aGUgR2l0IG1pZ3JhdGlvbiBXaWtpIHBhZ2UgY2FuIGdpdmUgYSBnb29kIHZpZXcgb2YgdGhlIHJlc3VsPQp0Cj4gPj4+PiAod2l0aCA3OAo+ID4+Pj4gbmV3IHJlcG9zICsgZXhpc3RpbmcgNyByZXBvcyArIHRoZSA2IGluIG1pZ3JhdGlvbiBpZiBub2JvZHkgb2JqZWN0cyA9Cj0zRAo+IDkxCj4gPj4+PiByZXBvcykKPiA+Pj4+Cj4gPj4+PiBvbmNlIHdlJ3JlIGFsbCBjb252aW5jZWQgb2YgdGhlIHRhcmdldCwgd2UnbGwgc2VlIGhvdyB0byB3b3JrIHdpdGgKPiBpbmZyYQo+ID4+Pj4gYW5kIEkgc3VwcG9zZSB0aGV5IGFscmVhZHkgaGF2ZSB0aGUgcmlnaHQgYXV0aG9ycyBsaXN0LCBnaXZlbiB0aGUKPiA+PiBjdXJyZW50Cj4gPj4+PiBtaXJyb3JzIGFscmVhZHkgcHVibGlzaGVkCj4gPj4+Pgo+ID4+Pj4gUmVnYXJkcywKPiA+Pj4+Cj4gPj4+PiBIZXJ2PUMzPUE5Cj4gPj4+Pgo+ID4+Pj4gTGUgc2FtZWRpIDcgb2N0b2JyZSAyMDE3LCAxNjowNTo0NSBDRVNUIFRpYm9yIERpZ2FuYSBhID1DMz1BOWNyaXQgOgo+ID4+Pj4+IEhlcnZlLAo+ID4+Pj4+Cj4gPj4+Pj4gSSB0aGluaywgZmlyc3Qgb2YgYWxsLCB3ZSBzaG91bGQgd3JpdGUgYSBsaXN0IHdpdGggZXhhY3QgbmFtZXMgb2YgZz0KaXQKPiA+Pj4+PiByZXBvc2l0b3JpZXMgZm9yIHdoaWNoIElORlJBIHdpbGwgY3JhdGUgdGhlbSBpbgo+ID4+Pj4+IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnL3JlcG9zL2FzZgo+ID4+Pj4+IGFuZCBtaXJyb3IgaW4gZ2l0aHViLmNvbS9hcGFjaGUKPiA+Pj4+Pgo+ID4+Pj4+IEFuZCB0aGVuIHRoZSBhdXRob3JzLnR4dC4KPiA+Pj4+Pgo+ID4+Pj4+IEluIG15IGNhc2UgSSBkaWQgbm90IG1pZ3JhdGUgdGFncyBhbmQgYnJhbmNoZXMgd2hpY2ggaXMgbXkgcHJvYmxlbQo+ID4+IGdpdmVuCj4gPj4+PiBpbgo+ID4+Pj4+IG15IGV4YW1wbGUgd2l0aCBwcmV2aW91cyBlLW1haWwuCj4gPj4+Pj4KPiA+Pj4+PiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDM6NDggUE0sIFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yPQpnCj4gPgo+ID4+Pj4gd3JvdGU6Cj4gPj4+Pj4+IEhlcnZlLAo+ID4+Pj4+PiBJIHRoaW5rIG1ha2luZyB0aGUgdGFnIGFzIEkgd2FudGVkIHdvdWxkIG5vdCBiZSBwb3NzaWJsZSBpbiBnaXQuCj4gPj4+Pj4+Cj4gPj4+Pj4+IExldCdzIG1ha2UgaXQgd2l0aCBhbGwgNzggcHJvamVjdHMuCj4gPj4+Pj4+IEluIDIwMTYgSSBtaWdyYXRlZCBteSBzdm4gcHJvamVjdCAiYXVkaXQiIGxvY2F0ZWQgaW4gc3ViLWZvbGRlcgo+IGJlaGluZAo+ID4+Pj4+PiB0cnVuayAodHJ1bmsvbGlicy9hdWRpdCkgdG8gZ2l0IHdoaWNoIGlzIGV4YWN0bHkgd2hhdCB3ZSBuZWVkIHRvIGQ9Cm8KPiBpbgo+ID4+Pj4+PiBBU0YuCj4gPj4+Pj4+Cj4gPj4+Pj4+IEluIG91ciBjYXNlIHRoZSBjb21tYW5kcyB3b3VsZCBiZSA5OSUgdGhlIHNhbWUuIFRoZSAxJSBpcyB0aGUgc291cj0KY2UKPiA+Pj4+IFNWTgo+ID4+Pj4+PiBVUkwgYW5kIHRhcmdldCBHaXRIdWIgVVJMLiBUaGF0J3MgYWxsLiBUaGVuIGlmIHdlIHByb3ZpZGUgSU5GUkEgd2k9CnRoCj4gPj4+PiBidW5jaAo+ID4+Pj4+PiBvZiBjb21tYW5kcyBsaWtlIHRoZXNlIHRoZW4gdGhleSB3aWxsIG9ubHkgZXhlY3V0ZSB0aGVtIHdpdGggdGhlaXIKPiA+Pj4+Pj4gcGVybWlzc2lvbnMuCj4gPj4+Pj4+IEkgZG8gbm90IHRoaW5rIHRoZXkgd2lsbCBnaXZlIG1lIGFkbWluIHBlcm1pc3Npb25zIHRvIG1ha2UgaXQuCj4gPj4+Pj4+Cj4gPj4+Pj4+IGdpdCBzdm4gY2xvbmUgLS1uby1tZXRhZGF0YSAtLWF1dGhvcnMtZmlsZT0zREU6XCphdXRob3JzLnR4dCogaHR0cD0KOi8vCj4gPj4+Pj4+ICoqKi9zdm4vKioqLyp0cnVuay9saWJzL2F1ZGl0IGF1ZGl0Kgo+ID4+Pj4+PiBnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIubmFtZSAiKioqICoqKiIKPiA+Pj4+Pj4gZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLmVtYWlsICIqKipAKioqLioqKiIKPiA+Pj4+Pj4gZ2l0IHJlbW90ZSBhZGQgb3JpZ2luIGh0dHBzOi8vKioqQGdpdGh1Yi5jb20vYXBhY2hlLwo+ID4+Pj4gKm1hdmVuLWNsZWFuLXBsdWdpbioKPiA+Pj4+Pj4gLmdpdAo+ID4+Pj4+PiBnaXQgcHVzaCAtdSBvcmlnaW4gLS1hbGwKPiA+Pj4+Pj4KPiA+Pj4+Pj4gSSBvYnNlcnZlZCB0aGUgKmF1dGhvcnMudHh0KiBmcm9tIGNvbW1hbmQKPiA+Pj4+Pj4gKnN2biBsb2cgLXEqCj4gPj4+Pj4+IEVhY2ggcGVyc29uIGZyb20gYmV0d2VlbiBmaXJzdCB0d28gcGlwZXMsIGUuZy46Cj4gPj4+Pj4+IHIxMjM0NTY3IHwgdGlib3JkaWdhbmEgfCAyMDE1LTEwLTE5IDAyOjIwOjAwCj4gPj4+Pj4+Cj4gPj4+Pj4+IEV2ZXJ5IGRldmVsb3BlciBhZGRlZCBlLW1haWwgYW5kIGZ1bGwgbmFtZSwgaS5lLjoKPiA+Pj4+Pj4gdGlib3JkaWdhbmEgPTNEIFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4KPiA+Pj4+Pj4gZXRjLgo+ID4+Pj4+Pgo+ID4+Pj4+PiBUaGlzIGxpc3Qgb2YgdXNlcnMgd2hpY2ggc2hvdWxkIGJlIGNyZWF0ZWQgaW4gcHJpb3IgdG8gY29udGFjdAo+IElORlJBLgo+ID4+Pj4+PiBOb3QgYWxsIHVzZXJzIGFyZSBhY3RpdmUgYWZ0ZXIgeWVhcnMgYnV0IGl0IHdvdWxkIGJlIG5pY2UgdG8gaW5jbHU9CmRlCj4gPj4+PiB0aGVtCj4gPj4+Pj4+IHRvby4KPiA+Pj4+Pj4gVGhpcyBsaXN0IG9mIHVzZXJzIGlzIG9uZSB0aGluZyB3aGljaCBjYW5ub3QgYmUgYXV0b21hdGVkIQo+ID4+Pj4+Pgo+ID4+Pj4+Pgo+ID4+Pj4+Pgo+ID4+Pj4+Pgo+ID4+Pj4+PiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDI6NDggUE0sIFRpYm9yIERpZ2FuYSA8Cj4gdGlib3JkaWdhbmFAYXBhY2hlLm9yZz4KPiA+Pj4+Pj4KPiA+Pj4+Pj4gd3JvdGU6Cj4gPj4+Pj4+PiBJbiBteSBjb21wYW55IEkgaGF2ZSBzdWNoIHNpdHVhdGlvbiBpbiBTVk4uIE1ha2luZyBhIHRhZyBmcm9tCj4gPj4+PiBzdWJmb2xkZXIuCj4gPj4+Pj4+PiBHaXQgYWx3YXlzIG1ha2VzIHRoZSB0YWcgZnJvbSB0aGUgcm9vdCwgcmlnaHQ/Cj4gPj4+Pj4+PiBMZXQncyBnb29nbGUgc29tZXRoaW5nLi4uCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCAyOjQ3IFBNLCBUaWJvciBEaWdhbmEgPAo+ID4+Pj4gdGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tCj4gPj4+Pj4+Pgo+ID4+Pj4+Pj4+IHdyb3RlOgo+ID4+Pj4+Pj4+IEluIG15IGNvbXBhbnkgSSBoYXZlIHN1Y2ggc2l0dWF0aW9uLgo+ID4+Pj4+Pj4+IE1ha2luZyBhIHRhZyBmcm9tIHN1YmZvbGRlci4KPiA+Pj4+Pj4+PiBHaXQgYWx3YXlzIG1ha2VzIHRoZSB0YWcgZnJvbSB0aGUgcm9vdCwgcmlnaHQ/Cj4gPj4+Pj4+Pj4gTGV0J3MgZ29vZ2xlIHNvbWV0aGluZy4uLgo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCAyOjA1IFBNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+ID4+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcgo+ID4+Pj4+Cj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+PiB3cm90ZToKPiA+Pj4+Pj4+Pj4gdGhhbmtzIGZvciB5b3VyIGludGVyZXN0IGFuZCBmZWVkYmFjawo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBMZSBzYW1lZGkgNyBvY3RvYnJlIDIwMTcsIDEyOjAwOjMyIENFU1QgVGlib3IgRGlnYW5hIGEgPUMzPUE5Y3I9Cml0IDoKPiA+Pj4+Pj4+Pj4+IDc4IGlzIHRvbyBtdWNoLgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBub3RpY2UgdGhhdCB0aGVyZSB3b3VsZCBhbHNvIGJlIGEgcXVlc3Rpb24gb24gdGhlIGdpdCByZXBvcwo+IG5hbWluZwo+ID4+Pj4+Pj4+PiBjb252ZW50aW9uLAo+ID4+Pj4+Pj4+PiB0byBhdm9pZCBmbGF0IDc4IG5hbWVzIGJ1dCBrZWVwIGF0IGxlYXN0IDMgbWVhbmluZ2Z1bCBncm91cHMKPiA+Pj4+IChwbHVnaW5zLAo+ID4+Pj4+Pj4+PiBzaGFyZWQsCj4gPj4+Pj4+Pj4+IHJlc291cmNlczogSSB0aGluayB0aGlzIGlzIG5vdCBhYnNvbHV0ZWx5IG5lY2Vzc2FyeSBmb3IKPiA+PiBkb3hpYS10b29scykKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+IFRoZXJlIGlzIG5vIHByb2JsZW0gdG8gdHJpZ2dlciByZWxlYXNlIG92ZXIgc3ViLWZvbGRlcnMgYW5kIHRhPQpnCj4gaXQKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gd2l0aAo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4gcHJlZml4IHdoaWNoIGlzIGFscmVhZHkgZG9uZSBpbiBTVk4uCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IGlzIGl0IHN1cHBvcnRlZCBieSBtYXZlbi1yZWxlYXNlIHBsdWdpbiB3aXRoIGdpdD8KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gbm90aWNlIEkgZGlkIG5vdCBrbm93IHRoYXQgZ2l0IHdhcyBhYmxlIHRvIHRhZyBvbmx5IGEgc3VidHJlZToKPiBidXQKPiA+PiBJCj4gPj4+Pj4+Pj4+IGtuZXcgSQo+ID4+Pj4+Pj4+PiBkb24ndCB5ZXQgdW5kZXJzdGFuZCBldmVyeSBhc3BlY3Qgb2YgZ2l0IG1hZ2ljLi4uIDopCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+PiBUaGUgQ0kgYnVpbGQgY2FuIGFsd2F5cyB0cmlnZ2VyIHRoZSByb290IGFuZCBKZW5raW5zZmlsZSB3b3VsZAo+ID4+Pj4gaGF2ZQo+ID4+Pj4+Pj4+Pj4gNDEKPiA+Pj4+Pj4+Pj4+IHN0YWdlcyBmb3IgcGx1Z2lucywgMjYgc3RhZ2VzIGZvciBTaGFyZWQsIGV0Yy4KPiA+Pj4+Pj4+Pj4+IEl0IGNhbiBiZSBkb25lIGluIEplbmtpbnNmaWxlIGFuZCBzbyB0aGUgc2hlbGwgd291bGQgbm90IHRocm93Cj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IGV4Y2VwdGlvbgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4gYnV0IHN0YXR1cyB3b3VsZCBiZSBzZXQgaW5zdGVhZCBhbmQgZ29lcyB0byB0aGUgbmV4dCBzdGFnZS4KPiA+Pj4+Pj4+Pj4+IEkgZG8gbm90IGtub3cgaG93IHRvIGRldGVjdCBpbiBHaXRTQ00gd2hpY2ggc3ViLWZvbGRlcihzKQo+IHJlY2VpdmVkCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IGJ1dCBJCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+PiBndWVzcyB0aGlzIGNhbiBiZSBpbnZlc3RpZ2F0ZWQuCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+ICsxCj4gPj4+Pj4+Pj4+IGJ1dCBJIGRvbid0IGtub3cgd2hlcmUgdG8gbG9vayBmb3IgbXlzZWxmOiBvbiB0aGF0IHBvaW50LCBJIGhvcD0KZQo+IHRvCj4gPj4+Pj4+Pj4+IGhhdmUgc29tZQo+ID4+Pj4+Pj4+PiBoZWxwIGZyb20gSmVua2luc2ZpbGUgZXhwZXJ0cwo+ID4+Pj4+Pj4+PiBhbmQgZXZlbnR1YWxseSBzdGFydCB3aXRoIHN2biwgdG8gaGF2ZSBzb21ldGhpbmcgYmVmb3JlIHRoZSBnaXQKPiA+Pj4+Pj4+Pj4gbWlncmF0aW9uCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+PiBUaGVuIGl0IGNhbiBiZSBhIGtpbmQgb2Ygc3dpdGNoLWNhc2Ugb3ZlciBjb21taXR0ZWQgZm9sZGVycyBpbgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBKZW5raW5zZmlsZS4KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+IFRoaXMgbWVhbnMgdGhhdCBldmVyeSB0aW1lIGFub3RoZXIgc3RhZ2Uvc3ViLWZvbGRlciBpcyBzaG93biBpPQpuCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IFBpcGVsaW5lCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+PiB3aGljaCB3aWxsIGJlIG1lc3N5IGluIHRoZSBVSS4gOigKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gbm90aWNlIHRoYXQgd2UgY2FuIHBlcmhhcHMgc3BsaXQgdGhlIHJlcG9zIGluIGxlc3MgcGFydHMgdGhhbiB3PQplCj4gPj4+PiBoYXZlCj4gPj4+Pj4+Pj4+IGNvbXBvbmVudHM6IG9uIHBsdWdpbnMsIGZvciBleGFtcGxlLCB3ZSBhbHJlYWR5IGhhdmUgNCBjYXRlZ29yaT0KZXMKPiA+Pj4+IFsxXQo+ID4+Pj4+Pj4+PiB3aGljaAo+ID4+Pj4+Pj4+PiB3b3VsZCBhdm9pZCAxIHJlcG8gd2l0aCA0MSBwbHVnaW5zLCBidXQgbW9yZSBzb21ldGhpbmcgbGlrZQo+ID4+Pj4gNisxMCsxMCsxNQo+ID4+Pj4+Pj4+PiBJIHN1cHBvc2Ugd2UgY291bGQgZG8gdGhlIHNhbWUgZm9yIHNoYXJlZCAocmVwb3J0aW5nIGZvbGRlciBjb209CmVzCj4gPj4+PiB0byBteQo+ID4+Pj4+Pj4+PiBtaW5kKQo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBUaGUga2V5IGZlYXNpYmlsaXR5IGlzc3VlIGlzIHRoZSBjYXBhY2l0eSB0byByZWxlYXNlIGEKPiA+PiBzdWItY29tcG9uZW50Cj4gPj4+Pj4+Pj4+IGZyb20gZ2l0Cj4gPj4+Pj4+Pj4+IHdpdGggbWF2ZW4tcmVsZWFzZS1wbHVnaW4sIElNSE8KPiA+Pj4+Pj4+Pj4gKHRha2luZyBhcGFydCB0aGUgZ2l0IHB1cmlzdHMgaWRlYSBvZiAxIGxpZmVjeWNsZSA9M0QgMSBnaXQgcmVwPQpvKQo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBSZWdhcmRzLAo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBIZXJ2PUMzPUE5Cj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IFsxXSBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLwo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCA0OjE3IEFNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+ID4+Pj4gaGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiB3cm90ZToKPiA+Pj4+Pj4+Pj4+PiBUaGVyZSBhcmUgNiBzdm4gbG9jYXRpb25zIHdpdGhvdXQgYW55IHNwZWNpYWwgY29tcGxleGl0eSB0aGF0Cj4gPj4+PiBhcmUKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gd2FpdGluZwo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IGZvcgo+ID4+Pj4+Pj4+Pj4+IGEgdm9sdW50ZWVyIGZvciBnaXQgbWlncmF0aW9uIGZvciBhIGZldyB5ZWFycyBidXQgbm9ib2R5IGRvZXMKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gYW55dGhpbmcKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBhYm91dDoKPiA+Pj4+Pj4+Pj4+PiBJIHN0YXJ0ZWQgMyBkYXlzIGFnbyB0byBhc2sgZm9yIGhlbHAgYWJvdXQgaXQgYW5kIGdvdCBwcmV0dHkgPQpubwo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBmZWVkYmFjawo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IFsxXQo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gdGhlbiB0aGVyZSBhcmUgdGhlIDQgY29tcGxleCBzdm4gbG9jYXRpb25zIChwbHVnaW5zLCBzaGFyZWQsCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IHJlc291cmNlcywKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBkb3hpYS0KPiA+Pj4+Pj4+Pj4+PiB0b29scykgdGhhdCByZXF1aXJlIG11Y2ggbW9yZSB3b3JrOiBJIHN1cHBvc2Ugd2UgY2FuJ3QgdGVsbCBnPQppdAo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBtaWdyYXRpb24KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBpcwo+ID4+Pj4+Pj4+Pj4+IGFiYW5kb25lZCwgYnV0IGl0IHdpbGwgcmVxdWlyZSBzb21lb25lIHRvIHdvcmsgb24gaXQgc2VyaW91c2w9CnkKPiA+Pj4+Pj4+Pj4+PiBSZW1lbWJlciB0aGF0IHRoZSBrZXkgcXVlc3Rpb24gWzJdIGlzOiBkbyB3ZSB0cmFuc2Zvcm0gdGhlc2UgPQo0Cj4gPj4+PiBzdm4KPiA+Pj4+Pj4+Pj4+PiBsb2NhdGlvbnMKPiA+Pj4+Pj4+Pj4+PiBpbnRvIDQxICsyNiArIDYgKyA1ID0zRCA3OCBpbmRlcGVuZGVudCBnaXQgcmVwb3M/Cj4gPj4+Pj4+Pj4+Pj4gWWVzLCBJIHRvbGQgdGhhdCBKZW5raW5zIGNvbmZpZ3VyYXRpb24gaXMgb25lIGtleSBhc3BlY3Qgd2UKPiA+Pj4+IG5lZWQgYQo+ID4+Pj4+Pj4+Pj4+IHN0cmF0ZWd5Cj4gPj4+Pj4+Pj4+Pj4gYWJvdXQsIGluIHBhcmFsbGVsIHdpdGggZ2l0IHN0cmF0ZWd5Lgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IHRoZW4gdGhlcmUgd2lsbCBiZSB0aGUgcmVtYWluaW5nIGNhc2VzIHdoZXJlIHdlIG5lZWQgdG8gZGVjaWQ9CmU6Cj4gPj4+Pj4+Pj4+IGxvd2VyCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gaW1wYWN0LAo+ID4+Pj4+Pj4+Pj4+IGxvd2VyIHByaW9yaXR5Lgo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBTdW1tYXJ5OiBub3RoaW5nIGlzIGFiYW5kb25lZCwgYnV0Ogo+ID4+Pj4+Pj4+Pj4+IC0gc2ltcGxlIGNhc2VzOiBubyB2b2x1bnRlZXIgdG8gZG8gdGhlIGpvYgo+ID4+Pj4+Pj4+Pj4+IC0gaGFyZCBjYXNlczogaXMgdGhlcmUgYSB2b2x1bnRlZXIgZWl0aGVyIHRvIGRlZmluZSBhIHN0cmF0ZWc9CnkKPiA+Pj4+IG9yCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IGRvIHNvbWUKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiB3b3JrCj4gPj4+Pj4+Pj4+Pj4gb24gaXQ/Cj4gPj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IFJlZ2FyZHMsCj4gPj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBIZXJ2PUMzPUE5Cj4gPj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBbMV0gaHR0cHM6Ly9saXN0cy5hcGFjaGUub3JnL3RocmVhZC5odG1sLwo+ID4+Pj4+Pj4+Pj4+IGVkZjM2NDJhN2JkZDUxNWYwY2FkNDIxYzI1NTg5NzQxODE5NDQ2NDYzNjE0YmYwNTE1ZTU2ZGJlQAo+ID4+Pj4+Pj4+Pj4+ICUzQ2Rldi5tYXZlbi5hcGFjaGUub3JnJTNFCj4gPj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBbMl0gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9HaXQKPiA+Pj4+Pj4+Pj4+PiArTWlncmF0aW9uI0dpdE1pZ3JhdGlvbi1NaWdyYXRpbmdhbmFnZ3JlZ2F0b3J0cmVlaW50b2Fjb2xsZWMKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gdGlvbm9mZ2l0cmVwb3MKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBMZSB2ZW5kcmVkaSA2IG9jdG9icmUgMjAxNywgMjA6MzU6NDUgQ0VTVCBBcm5hdWQgSD1DMz1BOXJpdGllPQpyIGEKPiA+Pj4+ID1DMz1BOWNyaXQgOgo+ID4+Pj4+Pj4+Pj4+PiBCdXQgZGlkIHdlIGNvbXBsZXRlbHkgYWJhbmRvbmVkIHRoZSBpZGVhIG9mIG1vdmluZyBldmVyeXRoaW49CmcKPiA+Pj4+IHRvCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IGdpdCA/Cj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+IFRoZSBDSSBzZXR1cCB3YXMgdGhlIG1haW4gc3RvcCBmb3IgaXQgPwo+ID4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+PiBPbiBGcmksIE9jdCA2LCAyMDE3IGF0IDg6MDUgUE0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8Cj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiB3cm90ZToKPiA+Pj4+Pj4+Pj4+Pj4+IEkgd2FzIGV4cGVjdGluZyB0aGUgdXN1YWwgbGl0YW55Cj4gPj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4gd2hhdCBJJ20gbm90IGNvbmZpZGVudCBjdXJyZW50bHkgd2l0aCBwaXBlbGluZSBvbiBNYXZlbgo+ID4+Pj4gY29yZSBpcwo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiB0aGF0Cj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiB3ZQo+ID4+Pj4+Pj4+Pj4+Pj4gaGF2ZQo+ID4+Pj4+Pj4+Pj4+Pj4gZm9yIGV4YW1wbGUgdGhlICJtYXZlbi0zLngtamVua2luc2ZpbGUvTU5HLTYyNDIgLSBidWlsZCAjMQo+ID4+Pj4gLQo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBudWxsIgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4gbWVzc2FnZSwKPiA+Pj4+Pj4+Pj4+Pj4+IHdpdGggdGhpcyAibnVsbCIgcGFydCB0aGF0IG1ha2VzIG1lIHdvbmRlciBpZiB3ZSBhcmUgdXNpbmcKPiA+Pj4+IGl0Cj4gPj4+Pj4+Pj4+Pj4+PiBhcwo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gZXhwZWN0ZWQuCj4gPj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+IEFuZCBmb3IgbGFyZ2UgbXVsdGktbW9kdWxlIHN2biB0cnVua3MgKHRoZSBvbmVzIHdlIGRvbid0Cj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IG1pZ3JhdGUgdG8KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBnaXQ6Cj4gPj4+Pj4+Pj4+Pj4+PiBtYWlubHkgcGx1Z2lucyBhbmQgc2hhcmVkKSwgaXMgdGhlcmUgYSBzb2x1dGlvbiB0byByZWJ1aWxkCj4gPj4+PiBqdXN0Cj4gPj4+Pj4+Pj4+Pj4+PiBjaGFuZ2VkCj4gPj4+Pj4+Pj4+Pj4+PiBtb2R1bGVzPwo+ID4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+IGlkZWFsbHksIHRoZSByZWJ1aWxkIHdoZW4gYSBTTkFQU0hPVCBkZXBlbmRlbmN5IGlzIHB1Ymxpc2hlPQpkCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IHdvdWxkCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiBoYXZlCj4gPj4+Pj4+Pj4+Pj4+PiBiZWVuIGEKPiA+Pj4+Pj4+Pj4+Pj4+IHBsdXMsIGJ1dCB0aGlzIGlzIHN1ZmZpY2llbnRseSBhIHJhcmUgdXNlIHRoYXQgSSB3b24ndCBiZQo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBleHRyZW1pc3QKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+IFRoZW4gSUlVQywgdGhpcyBtaWdyYXRpb24gam9iIGlzIG9uZSBhZGRpdGlvbmFsIFRPRE8gZm9yCj4gPj4+PiBtZS4uLgo+ID4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+IFJlZ2FyZHMsCj4gPj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4gSGVydj1DMz1BOQo+ID4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+IExlIHZlbmRyZWRpIDYgb2N0b2JyZSAyMDE3LCAxNzo0Njo1MyBDRVNUIEFybmF1ZCBIPUMzPUE5cml0PQppZXIgYQo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiA9QzM9QTljcml0IDoKPiA+Pj4+Pj4+Pj4+Pj4+PiBJIGFncmVlIHRoYXQgd2Ugc2hvdWxkIHVzZSBwaXBlbGluZSBub3dkYXlzCj4gPj4+Pj4+Pj4+Pj4+Pj4gcGVyaGFwcyBhIHNoYXJlZCBsaWIgaWYgd2Ugd2FudCB0byBzdGFuZGFyZGl6ZSBzb21lIHN0dWZmcwo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBhbmQgYSBzZXQKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBvZgo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4gbXVsdGktYnJhbmNoZXMgam9icyAob3Igb3JnIGZvbGRlciBidXQgaXQgcmVxdWlyZXMgR2l0SHViCj4gPj4+PiA6KAo+ID4+Pj4+Pj4+Pj4+Pj4+ICkKPiA+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+IE9uIEZyaSwgT2N0IDYsIDIwMTcgYXQgOToxNiBBTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+PiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+Pj4+Pj4+Pj4+Pj4+Pj4gT24gRnJpIDYgT2N0IDIwMTcgYXQgMDY6MzIsIEhlcnY9QzM9QTkgQk9VVEVNWSA8Cj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+IHdyb3RlOgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gSSBqdXN0IGZpeGVkIGEgZmV3IGZhaWxpbmcgam9icyBbMV0gdG8gaGF2ZSBhZ2FpbiBhCj4gPj4+Pj4+Pj4+Pj4+Pj4+PiB1c2FibGUKPiA+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IEplbmtpbnMuCj4gPj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IE5vdyBJJ20gZmFjaW5nIHNvbWUgaXNzdWVzLCBJIHN1cHBvc2UgY2F1c2VkIGJ5IG5ld2VyCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IEplbmtpbnMKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+IHZlcnNpb25zOgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gLSBNYXZlbiAzLjAuNSBjYXVzZXMgTm9TdWNoTWV0aG9kRXJyb3I6Cj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBvLmMucGxleHVzLnV0aWwueG1sLnB1bGwuCj4gPj4+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+IE1YUGFyc2VyCj4gPj4+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBbMl0KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IC0gSSBoYWQgdG8gc3dpdGNoIHRvIEpESyA4IGZvciBtYXZlbi1wbHVnaW4tdG9vbHMgam9iLAo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBzaW5jZSBKREsKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+IGNhdXNlcwo+ID4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IGZhaWx1cmVzIChsb29rcyBsaWtlIEplbmtpbnMgdXNlcyBhIGhhY2sgdG8gaW5qZWN0Cj4gPj4+PiBKREsgNwo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBhcyBhCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gdG9vbAo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiB3aGlsZQo+ID4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IHRoZQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gYnVpbGQgSlZNIGlzIEphdmEgOCkKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBTaG91bGQgd2UgZHJvcCBNYXZlbiAzLjAuNSBidWlsZHMgYW5kIEpESyA3Pwo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gTm90aWNlIEkgZGlkbid0IGNoZWNrIHdoaWNoIGlzIHRoZSBtaW5pbXVtIE1hdmVuCj4gPj4+PiB2ZXJzaW9uCj4gPj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiByZXF1aXJlZC4uLgo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBPciBwZXJoYXBzIHNpbXBseSBkb24ndCB1c2UgdGhlIEplbmtpbnMgTWF2ZW4gcGx1Z2luCj4gPj4+PiB3aXRoCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IHRoaXMKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBNYXZlbgo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+IDMuMC41Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBvcgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gSkRLIDcgY29uZmlndXJhdGlvbjogZGVmYXVsdCBidWlsZCBhcyBKZW5raW5zIE1hdmVuCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IHBsdWdpbiB3aXRoCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gSkRLCj4gPj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+IDggKwo+ID4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IGxhdGVzdAo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gTWF2ZW4sIGFuZCBvdGhlciBjb25maWd1cmF0aW9ucyBhcyBzY3JpcHRlZCBqb2JzPwo+ID4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+PiBodHRwOi8vamF2YWFkdmVudHVyZS5ibG9nc3BvdC4KPiA+Pj4+IGllLzIwMTMvMTEvamVua2lucy1tYXZlbi1qb2ItPiA+Pj4+ID4gPiA+ID4gPiA+ID4KPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiB0eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sCj4gPj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+PiA8aHR0cDovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuaWUvMjAxMy8xMS9qZW5raW5zLT4gPgo+ID4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+IG1hdmVuLWpvYi10eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sP209M0QxPgo+ID4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4gV2Ugc2hvdWxkIHN0b3AgdXNpbmcgdGhlIGV2aWwgam9iIHR5cGUgYXMgaXQ9RTI9ODA9OTlzIG1pPQpuaW11bQo+ID4+Pj4gSmF2YQo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gdmVyc2lvbiBpcwo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+IGRpY3RhdGVkIGJ5IEplbmtpbnM9RTI9ODA9OTkgSmF2YSBtaW5pbXVtLgo+ID4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gV2UgbmVlZCB0byBkZWZpbmUgb3VyIGNvbW1vbiBzdHJhdGVneSBhbmQgaGF2ZSBhCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IGNvbnNpc3RlbnQKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IGNvbmZpZ3VyYXRpb24KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IGZvcgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gZXZlcnkgam9iIHVuZGVyc3Rvb2QgYnkgZXZlcnlib2R5Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+IEkgcmVjb21tZW5kIEplbmtpbnNmaWxlIGFuZCB0aGUgYHdpdGhNYXZlbmAgd3JhcHBlcgo+ID4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gUmVnYXJkcywKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBIZXJ2PUMzPUE5Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gWzFdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBbMl0KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvCj4gPj4+PiB2aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi0+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+IHBsdWdpbi10b29scy1qZGstMS43LzE2Mi9jb25zb2xlCj4gPj4+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiAtLS0tLS0tLS0KPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLgo+ID4+Pj4gb3JnCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOgo+ID4+Pj4+Pj4+PiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+PiAtLQo+ID4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+PiBTZW50IGZyb20gbXkgcGhvbmUKPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiAtLS0tLS0tLS0KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4+Pj4+Pj4+Pj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gLS0tLS0tLS0tCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4+Pj4+Pj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+Pj4gLS0tLS0tLS0tCj4gPj4+Pj4+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4+Pj4+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+IC0tCj4gPj4+Pj4+Pj4gQ2hlZXJzCj4gPj4+Pj4+Pj4gVGlib3IKPiA+Pj4+Cj4gPj4+Pgo+ID4+Pj4KPiA+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotCj4gPj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Pj4KPiA+Pj4+Cj4gPj4+Cj4gPj4+Cj4gPj4+IC0tCj4gPj4+IC0tLS0tCj4gPj4+IEFybmF1ZCBIPUMzPUE5cml0aWVyCj4gPj4+IGh0dHA6Ly9haGVyaXRpZXIubmV0Cj4gPj4+IE1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tCj4gPj4+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKPiA+Pgo+ID4+Cj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4KPiA+Pgo+ID4KPiA+Cj4gPiAtLQo+ID4gLS0tLS0KPiA+IEFybmF1ZCBIPUMzPUE5cml0aWVyCj4gPiBodHRwOi8vYWhlcml0aWVyLm5ldAo+ID4gTWFpbC9HVGFsazogYWhlcml0aWVyIEFUIGdtYWlsIERPVCBjb20KPiA+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKCi0tPTIwCi0tLS0tCkFybmF1ZCBIPUMzPUE5cml0aWVyCmh0dHA6Ly9haGVyaXRpZXIubmV0Ck1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tClR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKCi0tMDAxYTExNDMyYjk0NTUzOGI3MDU1YjQ4NjdiZi0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MTczLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBPY3QgIDcgMjA6MDU6MTQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTczLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDlFMjFGMTA2MjcKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgNyBPY3QgMjAxNyAyMDowNToxNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDkwMjcgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBPY3QgMjAxNyAyMDowNToxNCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODk0NSBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE9jdCAyMDE3IDIwOjA1OjE0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODkzMyBpbnZva2VkIGJ5IHVpZCA5OSk7IDcgT2N0IDIwMTcgMjA6MDU6MTMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA3IE9jdCAyMDE3IDIwOjA1OjEzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMkNDQUVEMzc3NgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMjA6MDU6MTMgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjg3OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjg3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgQ3dLNFc3WTBMcDBrIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAgNyBPY3QgMjAxNyAyMDowNToxMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXVhMC1mMTczLmdvb2dsZS5jb20gKG1haWwtdWEwLWYxNzMuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNy4xNzNdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMTRBMkE1RjQ2RgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMjA6MDU6MTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdWEwLWYxNzMuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgOTdzbzEyNzk3MDk4dWFpLjYKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAwNyBPY3QgMjAxNyAxMzowNToxMSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD02NTRjN1UxeGdpRUtUNVVob3Nzdm1qcmR6SG1scytEa1dGV1NKYWhZbTc4PTsKICAgICAgICBiPWdnOEp2KzVkRDkvREFMaGJSTGN5RUdsVjE1WFc5eFVUc1I5OUI0VUhGNzJOU3NSSzA3d3FSbDU5RllYaTh2Z1luSAogICAgICAgICA4MUw3S1ZDRS9MMllzczFUeFl0K0ZtQ3NFVit6V05JTTZHTHJnNXh5Nkg3UzlVcG1MeWd0OThLQ3dibWViMDhUdWlhOQogICAgICAgICB0b2xYK0ErS2ZiV3BxQTY1M0tPd0xHbkIyWVdkbVFrL0ViWFZVaGVCOVUyUXZMdDlVbnpwYkp2WTgxSVRNK0hseUxCTwogICAgICAgICBwSE0yOG9VYVkxSFZWWThnYWhyUVdqNjhENTNLa3FrNEhDZ29NUlR0cmxoTktLd1ZEVHVDTzAyVVFSQVhsR0hwK2lsQwogICAgICAgICBJSGY0WE1vVm44Vms1ZHIwcmxhSzBZejdTWjNFbXdtRHNpV2VFNlU2NERUbnNJaWZpZXR0RFlnZXhyazhGUy9relp1UwogICAgICAgICAxWEF3PT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD02NTRjN1UxeGdpRUtUNVVob3Nzdm1qcmR6SG1scytEa1dGV1NKYWhZbTc4PTsKICAgICAgICBiPVZJenRuL1JpZTVHN1luaTR1dDFTS1dMYnNkTm5HMnhlei9Qcmg2SlN2WFEwSTJkTVZkZUJQeHlHczZEZmlTMG9kSAogICAgICAgICBLQXFzZ3dtQ2dVMUR0aUh5U2ZZZU1TeW1uZDUvWjBxRjRIYVY3SlBBNzNnQU9mbW1aM1BheXpvWUpPVGd5b3FxalFKQwogICAgICAgICBXNldQRGZNM2FRQndrM0NRZ3VwdjFiZGZ0aUNXRWNuZUNNUnhna0hHMGloSU9oODN5OTErQmVVVnIrUWVFS0JKQkRPNQogICAgICAgICBOSHZtQ1Vqb2QvNVI4aDR2NFJ4RXNjZXJYZHFldWJzMFhHcUJBQm9RQVFaU2VoWVFPQ1pJbjQ5UGZXUE5pdEIzMitQYgogICAgICAgICBYbXN2T2w5djJ5M3FsamhyZ2s0L0hMTkc0SzRnWU1BOU5aTXpKYnIwZTFMNEpKcGJuTDVrZEtKVHUwcnQxY0d2QWw2ZwogICAgICAgICA0TkRBPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FWa2VaMFh1MThvb2U3bE9iYmVYUm9GVXRoZmlVN3Z3REZpdGlUcW0wT3dHZlRuWnRjSQoJbGRRQWxXNkFQKy9RaWJ3YlpxeDJtcVVqbFpTUHVBNmpPR1hUS1FzajVLUkgKWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUJCTjZOQld4OHJQVjRNZDM0cFkxUmoxUFBJWG11b0dGcjNGdytZeGNwbzBTTnFzMnhxYkJDMjRtdlpGRC9tendBYnlDOENnakhXNktZL29nL3BpZnM9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjE1OS42MS44MSB3aXRoIFNNVFAgaWQgbTE3bXIzNDY1NjE4dWFpLjQ5LjE1MDc0MDY3MDQzNTQ7CiBTYXQsIDA3IE9jdCAyMDE3IDEzOjA1OjA0IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzYuODUuMTM2IHdpdGggSFRUUDsgU2F0LCA3IE9jdCAyMDE3IDEzOjA0OjQzIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8MjAxNDI2My45aTdsY0Ezakx5QGdpZ2E+ClJlZmVyZW5jZXM6IDwxMDU0NDYxNS5CNGhPM1BudkV6QGdpZ2E+IDwxNTIyOTg1Ny5rMUR5QmFSOU5MQGdpZ2E+CiA8Q0FGTkNVLS0wRVp0NEVCVHhtQUVzdE4tZjZxUjN0TktnREpXNjQ9blF6UzZpUzJCNHdnQG1haWwuZ21haWwuY29tPiA8MjAxNDI2My45aTdsY0Ezakx5QGdpZ2E+CkZyb206ID0/VVRGLTg/UT9Bcm5hdWRfSD1DMz1BOXJpdGllcj89IDxhaGVyaXRpZXJAZ21haWwuY29tPgpEYXRlOiBTYXQsIDcgT2N0IDIwMTcgMjI6MDQ6NDMgKzAyMDAKTWVzc2FnZS1JRDogPENBRk5DVS04UGtIOHNTajFlQ1NUdkpuNENvZHlFeGc9ZUtKcW9YcHFtVTlTdHRYbit0d0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IEplbmtpbnMgYW5kIE1hdmVuIDMuMC41IG9yIEpESyA3ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjA4OWUwOGU0ZDcwYjI1MmE0YTA1NWFmYTc5MjgiCgotLTA4OWUwOGU0ZDcwYjI1MmE0YTA1NWFmYTc5MjgKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gU2F0LCBPY3QgNywgMjAxNyBhdCA0OjE3IEFNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gPQp3cm90ZToKCj4gVGhlcmUgYXJlIDYgc3ZuIGxvY2F0aW9ucyB3aXRob3V0IGFueSBzcGVjaWFsIGNvbXBsZXhpdHkgdGhhdCBhcmUgd2FpdGluZwo+IGZvcgo+IGEgdm9sdW50ZWVyIGZvciBnaXQgbWlncmF0aW9uIGZvciBhIGZldyB5ZWFycyBidXQgbm9ib2R5IGRvZXMgYW55dGhpbmcKPiBhYm91dDoKPiBJIHN0YXJ0ZWQgMyBkYXlzIGFnbyB0byBhc2sgZm9yIGhlbHAgYWJvdXQgaXQgYW5kIGdvdCBwcmV0dHkgbm8gZmVlZGJhY2sKPiBbMV0KPgoKSSBjb21wbGV0ZWx5IG1pc3NlZCB0aGlzIGVtYWlsLiBTb3JyeQoKCj4KPiB0aGVuIHRoZXJlIGFyZSB0aGUgNCBjb21wbGV4IHN2biBsb2NhdGlvbnMgKHBsdWdpbnMsIHNoYXJlZCwgcmVzb3VyY2VzLAo+IGRveGlhLQo+IHRvb2xzKSB0aGF0IHJlcXVpcmUgbXVjaCBtb3JlIHdvcms6IEkgc3VwcG9zZSB3ZSBjYW4ndCB0ZWxsIGdpdCBtaWdyYXRpb24KPiBpcwo+IGFiYW5kb25lZCwgYnV0IGl0IHdpbGwgcmVxdWlyZSBzb21lb25lIHRvIHdvcmsgb24gaXQgc2VyaW91c2x5Cj4KCnllcwoKCj4gUmVtZW1iZXIgdGhhdCB0aGUga2V5IHF1ZXN0aW9uIFsyXSBpczogZG8gd2UgdHJhbnNmb3JtIHRoZXNlIDQgc3ZuCj4gbG9jYXRpb25zCj4gaW50byA0MSArMjYgKyA2ICsgNSA9M0QgNzggaW5kZXBlbmRlbnQgZ2l0IHJlcG9zPwo+IFllcywgSSB0b2xkIHRoYXQgSmVua2lucyBjb25maWd1cmF0aW9uIGlzIG9uZSBrZXkgYXNwZWN0IHdlIG5lZWQgYSBzdHJhdGU9Cmd5Cj4gYWJvdXQsIGluIHBhcmFsbGVsIHdpdGggZ2l0IHN0cmF0ZWd5Lgo+Cgp5ZXMgSSByZW1lbWJlciB0aGF0IGl0IHdhcyBhIHBhcnQgb2YgdGhlIHByb2JsZW0uCldlIGhhdmUgdG8gZGVmaW5lIHRoZSBncmFudWxhcml0eSBvZiBuZXcgcmVwb3MgYW5kIHRoZW4gcmVjcmVhdGUgYWxsIENJIGpvYj0KcwpXZSBjYW4gYWx3YXlzIHdpdGggZ2l0IHVzZSBzdWJtb2R1bGVzIG9yIHN1YnRyZWVzIHRvIGhhdmUgaW5kZXBlbmRlbnQgcmVwb3MKKGZvciBwbHVnaW5zIGZvciBleGVtcGxlKSBidXQgd2l0aCBhIGNvbW1vbiByZWFjdG9yIHBvbSB0byBidWlsZCBhbGwgb2YKdGhlbS4KTm93YWRheXMgdXNpbmcgdGhlIE1hdmVuIEpvYiBpcyBjcmVhdGluZyBhIGxvdCBvZiBpc3N1ZXMgYW5kIGZvciBzdXJlIEkKY2Fubm90IGFkdmljZSB0byB1c2UgaXQuIExpa2UgeW91IHNhdyB0aGUgcmVjZW50IHVwZ3JhZGUgb2YgSmVua2lucyBjb3JlCmF2b2lkcyB0byB1c2UgYSBKREsgPCA4IHdpdGggdGhlc2Ugam9icyA6KAoKSW4gdGhlIEplbmtpbnMgY29tbXVuaXR5IHdlIGhhdmUgaHVuZHJlZCBvZiBwbHVnaW5zIChyZXBvc2l0b3JpZXMgWzNdKSBpbgppbmRlcGVuZGVudCByZXBvc2l0b3JpZXMgYW5kIGFsbCBvZiB0aGVtIGFyZSBidWlsZCBhdXRvbWF0aWNhbGx5IFs0XSBhbmQKdGhlIENJIGNvbmZpZ3VyYXRpb24gaXMgc2ltcGxpZmllZCBbNV0KClszXSBodHRwczovL2dpdGh1Yi5jb20vamVua2luc2NpCls0XSBodHRwczovL2NpLmplbmtpbnMuaW8vam9iL1BsdWdpbnMvCls1XSBodHRwczovL2dpdGh1Yi5jb20vamVua2lucy1pbmZyYS9waXBlbGluZS1saWJyYXJ5CgpJIGRvbid0IHNheSBpdCBpcyBwZXJmZWN0IGJ1dCBpdCBpcyB0ZWNobmljYWxseSBwb3NzaWJsZQoKSSBkaWQgc3VjaCBtaWdyYXRpb24gbWFueSBtYW55IHllYXJzIGFnbywgdGh1cyBJIGNhbiBwcm9iYWJseSBoZWxwIGlmIHdlCmRlZmluZSBhbGwgdG9nZXRoZXIgd2hhdCB3ZSB3YW50IHRvIGRvIC4uLgoKCj4KPiB0aGVuIHRoZXJlIHdpbGwgYmUgdGhlIHJlbWFpbmluZyBjYXNlcyB3aGVyZSB3ZSBuZWVkIHRvIGRlY2lkZTogbG93ZXIKPiBpbXBhY3QsCj4gbG93ZXIgcHJpb3JpdHkuCj4KPgo+IFN1bW1hcnk6IG5vdGhpbmcgaXMgYWJhbmRvbmVkLCBidXQ6Cj4gLSBzaW1wbGUgY2FzZXM6IG5vIHZvbHVudGVlciB0byBkbyB0aGUgam9iCj4gLSBoYXJkIGNhc2VzOiBpcyB0aGVyZSBhIHZvbHVudGVlciBlaXRoZXIgdG8gZGVmaW5lIGEgc3RyYXRlZ3kgb3IgZG8gc29tZQo+IHdvcmsKPiBvbiBpdD8KPgo+Cj4gUmVnYXJkcywKPgo+IEhlcnY9QzM9QTkKPgo+IFsxXSBodHRwczovL2xpc3RzLmFwYWNoZS5vcmcvdGhyZWFkLmh0bWwvCj4gZWRmMzY0MmE3YmRkNTE1ZjBjYWQ0MjFjMjU1ODk3NDE4MTk0NDY0NjM2MTRiZjA1MTVlNTZkYmVACj4gJTNDZGV2Lm1hdmVuLmFwYWNoZS5vcmclM0UKPgo+IFsyXSBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL0dpdAo+ICtNaWdyYXRpb24jR2l0TWlncmF0aW9uLU1pZ3JhdGluZ2FuYWdncmVnYXRvcnRyZWVpbnRvYWNvbGxlY3Rpb25vZmdpdHJlcG89CnMKPgo+IExlIHZlbmRyZWRpIDYgb2N0b2JyZSAyMDE3LCAyMDozNTo0NSBDRVNUIEFybmF1ZCBIPUMzPUE5cml0aWVyIGEgPUMzPUE5Y3I9Cml0IDoKPiA+IEJ1dCBkaWQgd2UgY29tcGxldGVseSBhYmFuZG9uZWQgdGhlIGlkZWEgb2YgbW92aW5nIGV2ZXJ5dGhpbmcgdG8gZ2l0ID8KPiA+IFRoZSBDSSBzZXR1cCB3YXMgdGhlIG1haW4gc3RvcCBmb3IgaXQgPwo+ID4KPiA+IE9uIEZyaSwgT2N0IDYsIDIwMTcgYXQgODowNSBQTSwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuPQpmcj4KPiB3cm90ZToKPiA+ID4gSSB3YXMgZXhwZWN0aW5nIHRoZSB1c3VhbCBsaXRhbnkKPiA+ID4KPiA+ID4gd2hhdCBJJ20gbm90IGNvbmZpZGVudCBjdXJyZW50bHkgd2l0aCBwaXBlbGluZSBvbiBNYXZlbiBjb3JlIGlzIHRoYXQgPQp3ZQo+ID4gPiBoYXZlCj4gPiA+IGZvciBleGFtcGxlIHRoZSAibWF2ZW4tMy54LWplbmtpbnNmaWxlL01ORy02MjQyIC0gYnVpbGQgIzEgLSBudWxsIgo+ID4gPiBtZXNzYWdlLAo+ID4gPiB3aXRoIHRoaXMgIm51bGwiIHBhcnQgdGhhdCBtYWtlcyBtZSB3b25kZXIgaWYgd2UgYXJlIHVzaW5nIGl0IGFzCj4gZXhwZWN0ZWQuCj4gPiA+Cj4gPiA+IEFuZCBmb3IgbGFyZ2UgbXVsdGktbW9kdWxlIHN2biB0cnVua3MgKHRoZSBvbmVzIHdlIGRvbid0IG1pZ3JhdGUgdG8KPiBnaXQ6Cj4gPiA+IG1haW5seSBwbHVnaW5zIGFuZCBzaGFyZWQpLCBpcyB0aGVyZSBhIHNvbHV0aW9uIHRvIHJlYnVpbGQganVzdCBjaGFuZz0KZWQKPiA+ID4gbW9kdWxlcz8KPiA+ID4KPiA+ID4gaWRlYWxseSwgdGhlIHJlYnVpbGQgd2hlbiBhIFNOQVBTSE9UIGRlcGVuZGVuY3kgaXMgcHVibGlzaGVkIHdvdWxkIGhhPQp2ZQo+ID4gPiBiZWVuIGEKPiA+ID4gcGx1cywgYnV0IHRoaXMgaXMgc3VmZmljaWVudGx5IGEgcmFyZSB1c2UgdGhhdCBJIHdvbid0IGJlIGV4dHJlbWlzdAo+ID4gPgo+ID4gPgo+ID4gPiBUaGVuIElJVUMsIHRoaXMgbWlncmF0aW9uIGpvYiBpcyBvbmUgYWRkaXRpb25hbCBUT0RPIGZvciBtZS4uLgo+ID4gPgo+ID4gPiBSZWdhcmRzLAo+ID4gPgo+ID4gPiBIZXJ2PUMzPUE5Cj4gPiA+Cj4gPiA+IExlIHZlbmRyZWRpIDYgb2N0b2JyZSAyMDE3LCAxNzo0Njo1MyBDRVNUIEFybmF1ZCBIPUMzPUE5cml0aWVyIGEgPUMzPQo9QTljcml0IDoKPiA+ID4gPiBJIGFncmVlIHRoYXQgd2Ugc2hvdWxkIHVzZSBwaXBlbGluZSBub3dkYXlzCj4gPiA+ID4gcGVyaGFwcyBhIHNoYXJlZCBsaWIgaWYgd2Ugd2FudCB0byBzdGFuZGFyZGl6ZSBzb21lIHN0dWZmcyBhbmQgYSBzZT0KdAo+IG9mCj4gPiA+ID4gbXVsdGktYnJhbmNoZXMgam9icyAob3Igb3JnIGZvbGRlciBidXQgaXQgcmVxdWlyZXMgR2l0SHViIDooICkKPiA+ID4gPgo+ID4gPiA+IE9uIEZyaSwgT2N0IDYsIDIwMTcgYXQgOToxNiBBTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPiA+ID4KPiA+ID4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+ID4gPiA+IE9uIEZyaSA2IE9jdCAyMDE3IGF0IDA2OjMyLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlPQplLmZyPgo+ID4gPgo+ID4gPiB3cm90ZToKPiA+ID4gPiA+ID4gSSBqdXN0IGZpeGVkIGEgZmV3IGZhaWxpbmcgam9icyBbMV0gdG8gaGF2ZSBhZ2FpbiBhIHVzYWJsZQo+IEplbmtpbnMuCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IE5vdyBJJ20gZmFjaW5nIHNvbWUgaXNzdWVzLCBJIHN1cHBvc2UgY2F1c2VkIGJ5IG5ld2VyIEplbmtpbnMKPiA+ID4KPiA+ID4gdmVyc2lvbnM6Cj4gPiA+ID4gPiA+IC0gTWF2ZW4gMy4wLjUgY2F1c2VzIE5vU3VjaE1ldGhvZEVycm9yOiBvLmMucGxleHVzLnV0aWwueG1sLnB1bD0KbC4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBNWFBhcnNlcgo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gWzJdCj4gPiA+ID4gPiA+IC0gSSBoYWQgdG8gc3dpdGNoIHRvIEpESyA4IGZvciBtYXZlbi1wbHVnaW4tdG9vbHMgam9iLCBzaW5jZSBKRD0KSwo+ID4gPgo+ID4gPiBjYXVzZXMKPiA+ID4KPiA+ID4gPiA+ID4gZmFpbHVyZXMgKGxvb2tzIGxpa2UgSmVua2lucyB1c2VzIGEgaGFjayB0byBpbmplY3QgSkRLIDcgYXMgYQo+IHRvb2wKPiA+ID4KPiA+ID4gd2hpbGUKPiA+ID4KPiA+ID4gPiA+ID4gdGhlCj4gPiA+ID4gPiA+IGJ1aWxkIEpWTSBpcyBKYXZhIDgpCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFNob3VsZCB3ZSBkcm9wIE1hdmVuIDMuMC41IGJ1aWxkcyBhbmQgSkRLIDc/Cj4gPiA+ID4gPiA+IE5vdGljZSBJIGRpZG4ndCBjaGVjayB3aGljaCBpcyB0aGUgbWluaW11bSBNYXZlbiB2ZXJzaW9uCj4gcmVxdWlyZWQuLi4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gT3IgcGVyaGFwcyBzaW1wbHkgZG9uJ3QgdXNlIHRoZSBKZW5raW5zIE1hdmVuIHBsdWdpbiB3aXRoIHRoaXMKPiBNYXZlbgo+ID4gPiA+ID4KPiA+ID4gPiA+IDMuMC41Cj4gPiA+ID4gPgo+ID4gPiA+ID4gPiBvcgo+ID4gPiA+ID4gPiBKREsgNyBjb25maWd1cmF0aW9uOiBkZWZhdWx0IGJ1aWxkIGFzIEplbmtpbnMgTWF2ZW4gcGx1Z2luIHdpdGgKPiBKREsKPiA+ID4KPiA+ID4gOCArCj4gPiA+Cj4gPiA+ID4gPiA+IGxhdGVzdAo+ID4gPiA+ID4gPiBNYXZlbiwgYW5kIG90aGVyIGNvbmZpZ3VyYXRpb25zIGFzIHNjcmlwdGVkIGpvYnM/Cj4gPiA+ID4gPgo+ID4gPiA+ID4gaHR0cDovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuaWUvMjAxMy8xMS9qZW5raW5zLW1hdmVuLWpvYi0+ID4KPiA+ID4KPiA+ID4gdHlwZS1jb25zaWRlcmVkLWV2aWwuaHRtbAo+ID4gPgo+ID4gPiA+ID4gPGh0dHA6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90LmllLzIwMTMvMTEvamVua2lucy0+ID4KPiA+ID4KPiA+ID4gbWF2ZW4tam9iLXR5cGUtY29uc2lkZXJlZC1ldmlsLmh0bWw/bT0zRDE+Cj4gPiA+Cj4gPiA+ID4gPiBXZSBzaG91bGQgc3RvcCB1c2luZyB0aGUgZXZpbCBqb2IgdHlwZSBhcyBpdD1FMj04MD05OXMgbWluaW11bSBKYT0KdmEKPiB2ZXJzaW9uIGlzCj4gPiA+ID4gPiBkaWN0YXRlZCBieSBKZW5raW5zPUUyPTgwPTk5IEphdmEgbWluaW11bS4KPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFdlIG5lZWQgdG8gZGVmaW5lIG91ciBjb21tb24gc3RyYXRlZ3kgYW5kIGhhdmUgYSBjb25zaXN0ZW50Cj4gPiA+ID4gPiA+IGNvbmZpZ3VyYXRpb24KPiA+ID4gPiA+ID4gZm9yCj4gPiA+ID4gPiA+IGV2ZXJ5IGpvYiB1bmRlcnN0b29kIGJ5IGV2ZXJ5Ym9keQo+ID4gPiA+ID4KPiA+ID4gPiA+IEkgcmVjb21tZW5kIEplbmtpbnNmaWxlIGFuZCB0aGUgYHdpdGhNYXZlbmAgd3JhcHBlcgo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gSGVydj1DMz1BOQo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBbMV0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuLwo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBbMl0KPiA+ID4gPiA+ID4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi0+ID4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBwbHVnaW4tdG9vbHMtamRrLTEuNy8xNjIvY29uc29sZQo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+Cj4gPiA+IC0tLS0tLS0tLQo+ID4gPgo+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IC0tCj4gPiA+ID4gPgo+ID4gPiA+ID4gU2VudCBmcm9tIG15IHBob25lCj4gPiA+Cj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKCi0tPTIwCi0tLS0tCkFybmF1ZCBIPUMzPUE5cml0aWVyCmh0dHA6Ly9haGVyaXRpZXIubmV0Ck1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tClR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKCi0tMDg5ZTA4ZTRkNzBiMjUyYTRhMDU1YWZhNzkyOC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MTgxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBPY3QgIDcgMjI6MTQ6NTcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTgxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDY0QjAzMTA4N0EKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgNyBPY3QgMjAxNyAyMjoxNDo1NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI5NDIxIGludm9rZWQgYnkgdWlkIDUwMCk7IDcgT2N0IDIwMTcgMjI6MTQ6NTcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI5MzMzIGludm9rZWQgYnkgdWlkIDUwMCk7IDcgT2N0IDIwMTcgMjI6MTQ6NTcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyOTMyMSBpbnZva2VkIGJ5IHVpZCA5OSk7IDcgT2N0IDIwMTcgMjI6MTQ6NTYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA3IE9jdCAyMDE3IDIyOjE0OjU2ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQjJBQzYxODA2REYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDIyOjE0OjU1ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMy41OTkKWC1TcGFtLUxldmVsOiAqKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTMuNTk5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44LCBTUEZfUEFTUz0tMC4wMDEsIFVSSUJMX0JMQUNLPTRdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFBvUFVDS0YtbmRuWCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgIDcgT2N0IDIwMTcgMjI6MTQ6NDkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC12azAtZjQzLmdvb2dsZS5jb20gKG1haWwtdmswLWY0My5nb29nbGUuY29tIFsyMDkuODUuMjEzLjQzXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDBBRTE3NUYzNjcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDIyOjE0OjQ5ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXZrMC1mNDMuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgZDEyc28xMTIzNzE5M3ZrZi4xCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMDcgT2N0IDIwMTcgMTU6MTQ6NDkgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Z1pWeGZteUMzWnlIKytaUWR6TThCcDZ1Szk0YnBWK2h0dFB0TklBQVJoMD07CiAgICAgICAgYj1sQWgwVG0rZkhacFR1L2kycnBkVXhjRUNqU2RKUkYzVDlrQUNyT2F2dnBQK1I1MTBtSVBNQmE1OXhlUW9tZ3owZTEKICAgICAgICAgdXdHVDUvT0ROZVgzQVRFZEkrWDM3MERMWWlEZDJzOUJxUjUrYlQ1eHd6Y2cyZWthaW5TYlo5c0FOTzJOZFZveEZVeGMKICAgICAgICAgUWVGT1NOb0x1d054WDNTUm9hRXhvMkgzN1NUMVNWTXROcjlray9DNDhSaUlva2IyenRYaVJUeWNqb1VVZk9BR3k3WnYKICAgICAgICAgMk0wSm1EZFkrd1VONGU0SEJ4akFvd2FpV2FCdUZtWWc5ZE9aRnhzWFh3bjFXM3YxRHlucUFuWVk0aGt3bk9aWHNRaFYKICAgICAgICAgeEtjNEFUcWRncldlQVRLZzBUcHFHbHpORHYwc3grengyQWhIaUlzQzd0YXRlV0dsSlFuWU1BVFJuVk1qWDk0amY4eUYKICAgICAgICAgUTV3QT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Z1pWeGZteUMzWnlIKytaUWR6TThCcDZ1Szk0YnBWK2h0dFB0TklBQVJoMD07CiAgICAgICAgYj1QSXFrdG9Pb1IyV2hKTVBESnBTMUdkd3h4S0dUdGx0Q1hzanJDOWRNVzErMXBxVCtSeWkxakV3azdjeEMxNk1kaWwKICAgICAgICAgRGZFbE9tbjg4eXd3eS9vTFFDVjdoV0R3eWNLQXZzeVpSMGYrTm5mbjkzMGdtSEEveThSSkJ3cUtIMGJKZlE2VUw5RSsKICAgICAgICAgVFBSTXkxQkNmMGRsVmZVUjJ0VW5JSlgxOENlek5VbFJZU0huMTNLZWROdXdEQnhXcG03ZmQxWlpPM0JqL1FzUlo5L3QKICAgICAgICAgYlFpcnZnelpKNWNtUmJ2SFoxVnlMTzZJaS9ha1RHWGw0UG5KcUo5OUpia1loOUhGMDhtWUxabFBmZGRVMUxJVXBSejAKICAgICAgICAgamd0MmZmWGt1aDhlOXJsRnl3bm1zenVseThHajhsbWR2cE1JSjVSRGJXMS9WM1kwRDRoUDU1NjRRMVZLekNqWHlIZk4KICAgICAgICAgaDg0Zz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVlVlaXFONVI5UFZaQVNyd0dRSVNYSGRBMlRTQkdKZEMzZUFxenRJT2RGM2J3cFFUbWUKCXAzVlpHamlqZnR5cTFIaU1ZMjhGZlErb2JCbXc2a3JnYVpaVUU2Wll2QT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FCMjJMM28rbWFyYkV1K3pmbzBtamFWTTZ1SWg0M1ZqYWFDNHhxeE52Qm16QlJlaFFhbmpUYXN3KzRmWU5JTGJmQ3Q5ZnowUW8zTnJGRENtVDJyNmw0PQpYLVJlY2VpdmVkOiBieSAxMC4zMS41OC4xNDUgd2l0aCBTTVRQIGlkIGgxMzltcjI2NjYxMDd2a2EuMTk0LjE1MDc0MTQ0ODgyNzk7CiBTYXQsIDA3IE9jdCAyMDE3IDE1OjE0OjQ4IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzYuODUuMTM2IHdpdGggSFRUUDsgU2F0LCA3IE9jdCAyMDE3IDE1OjE0OjI3IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0FLdVZ6QlQtWnczSGQwQ0xxVDY0a1FYMnBTcUZDK052d0Q5dU1GZXlSNWs4OUY2bjdBQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8MTA1NDQ2MTUuQjRoTzNQbnZFekBnaWdhPiA8Q0FLdVZ6QlIydytmazVTM3VuQlFSN0I1NGVVODBDUVFhQzY0dXlZNVhORUNIb1NINkdnQG1haWwuZ21haWwuY29tPgogPENBS3VWekJRU2dSWFdWRWc4Q2dyWmRzTkd3ZFRmTnRjNHFXdDRHbnlKRG9vaXlhcjJOQUBtYWlsLmdtYWlsLmNvbT4KIDwxOTM0OTgzLnhSTThLeUlpbWlAZ2lnYT4gPENBRk5DVS1fNUNmYVBNTDJmd1orN3RGRUFaSlQrd1pCRHg2Yj0tN0U0SlJLQW09LVlnZ0BtYWlsLmdtYWlsLmNvbT4KIDxFMkQyRkQwMy02MjE0LTQyMTAtOTQ1OS05N0FGMjNGMDBCNEVAaG9udG9uLm9yZz4gPENBRk5DVS0tb0hIRCtDRm1jMTBqSFVPSl9uVENULV89YW5NcXkwT2FjN3Y3a0dqbXU3UUBtYWlsLmdtYWlsLmNvbT4KIDw0MUM0NjQ3QS0zODA4LTRFNkEtQjRCMi0yMkY3RjI1OUU4MTVAaG9udG9uLm9yZz4gPENBS3VWekJULVp3M0hkMENMcVQ2NGtRWDJwU3FGQytOdndEOXVNRmV5UjVrODlGNm43QUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogPT9VVEYtOD9RP0FybmF1ZF9IPUMzPUE5cml0aWVyPz0gPGFoZXJpdGllckBnbWFpbC5jb20+CkRhdGU6IFN1biwgOCBPY3QgMjAxNyAwMDoxNDoyNyArMDIwMApNZXNzYWdlLUlEOiA8Q0FGTkNVLThWZlg3K182UkVBeGJBSlBHNE5LZDdpMnBMWl9kNy1CbzZlckNRN3VDN3pnQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogSmVua2lucyBhbmQgTWF2ZW4gMy4wLjUgb3IgSkRLIDcKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDMyYjk0MWE2ZmEyMDU1YWZjNDlkNCIKCi0tMDAxYTExNDMyYjk0MWE2ZmEyMDU1YWZjNDlkNApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgorMQoKT24gU3VuLCBPY3QgOCwgMjAxNyBhdCAxMjowMiBBTSwgVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPgp3cm90ZToKCj4gSSBkb24ndCB0aGluayB0aGUgZGV2cyB3b3VsZCB3b3JrIG9uIGFsbCBhcnRpZmFjdHMocHJvamVjdHMpIGEgdGltZS4KPiBJZiB0aGUgbmFtaW5nIGNvbnZlbnRpb24gb2YgcmVwbyBmb3IgYSBwbHVnaW4gd291bGQgYmUgYXJ0aWZhY3RJZCwgbGlrZQo+IC9tYXZlbi1jbGVhbi1wbHVnaW4sIHRoZW4gZXZlbiBlYXN5IHRvIGZpZ3VyZSBvdXQgd2hpY2ggb25lIHRvIGNsb25lLgo+IFRoZSBtb3N0IGxpa2VseSB0aGUgZGV2IHdvdWxkIGp1c3QgY2xvbmUgb25lIHJlcG8gc2hlL2hlIGlzIGludGVyZXN0ZWQgaW4KPiBhdCB0aGUgbW9tZW50LCBpLmUuIHJlcG9zaXRvcnkgL21hdmVuLWNsZWFuLXBsdWdpbiwgbGV0J3Mgc2F5Lgo+IEl0J3MgZ29vZCB0byBhdm9pZCBhbnkgc2hhcmVkIGZpbGVzIGFjcm9zcyB0aGVtLCBldmVuIEkgZG9uJ3QgdGhpbmsgZGV2cwo+IHNoYXJlIHNvbWUgaW4gc3ZuIHRvZGF5LiBUaGUgcmVsZWFzZSBwcm9jZXNzIHdvdWxkIGJlIHF1aXRlIHVzdWFsLCBpLmUuIG89Cm5lCj4gcmVwbyA9M0Qgb25lIHByb2plY3QsIGFuZCBuZXcgZGV2cyBhbHJlYWR5IGhhdmUgdGhlc2UgZXhwZXJpZW5jZXMgd2hpY2ggdz0KaWxsCj4gYmUgc2ltcGxlIGZvciB0aGVtIHRvIGFkYXB0IGZhc3Rlci4KPgo+Cj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCAxMTozNiBQTSwgQ2hhcyBIb250b24gPGNoYXNAaG9udG9uLm9yZz4gd3JvdGU6Cj4KPiA+IElzIGl0IHVzdWFsIHRvIG5lZWQgYWxsIGRvemVuIHJlcG9zaXRvcmllcyBvciBpcyBhIHNpbmdsZSByZXBvc2l0b3J5IChvPQpyCj4gYQo+ID4gaGFuZGZ1bCkgbW9yZSBsaWtlbHk/Cj4gPgo+ID4gQ2hhcwo+ID4KPiA+ID4gT24gT2N0IDcsIDIwMTcsIGF0IDE6MzIgUE0sIEFybmF1ZCBIPUMzPUE5cml0aWVyIDxhaGVyaXRpZXJAZ21haWwuY29tPQo+Cj4gd3JvdGU6Cj4gPiA+Cj4gPiA+IEFGQUlSIHRoZSBtYWluIGNvbmNlcm4gd2FzIGZvciBkZXZlbG9wZXJzIHRvIGhhdmUgdG8gY2xvbmUgc2V2ZXJhbAo+IGRvemVuCj4gPiBvZgo+ID4gPiByZXBvc2l0b3JpZXMKPiA+ID4gSSBkb24ndCB0aGluayBpdCBpcyBhIHJlYWwgaXNzdWUuIFdlIGNhbiBzaGFyZSBhIHNjcmlwdCB0byBkbyBpdCBlYXNpPQpseQo+ID4gPgo+ID4gPgo+ID4gPj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCAxMDoyNiBQTSwgQ2hhcyBIb250b24gPGNoYXNAaG9udG9uLm9yZz4gd3JvdGU9CjoKPiA+ID4+Cj4gPiA+PiBXaGF0IGFyZSB0aGUgY29uY2VybnMgd2l0aCBzZXBhcmF0ZSBnaXQgcmVwb3NpdG9yeSBwZXIgYXJ0aWZhY3Q/ICBJcwo+IGl0Cj4gPiA+PiB0aGUgbW9ub2xpdGhpYyBidWlsZD8KPiA+ID4+Cj4gPiA+PiBDaGFzCj4gPiA+Pgo+ID4gPj4+IE9uIE9jdCA3LCAyMDE3LCBhdCAxOjIwIFBNLCBBcm5hdWQgSD1DMz1BOXJpdGllciA8YWhlcml0aWVyQGdtYWlsLmM9Cm9tPgo+ID4gd3JvdGU6Cj4gPiA+Pj4KPiA+ID4+PiArMQo+ID4gPj4+Cj4gPiA+Pj4+IE9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgNzoxMSBQTSwgSGVydj1DMz1BOSBCT1VURU1ZIDwKPiBoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPiA+PiB3cm90ZToKPiA+ID4+Pj4KPiA+ID4+Pj4gd2UgY2FuIHN0YXJ0IHdpdGggbmFtaW5nIHRoZSBmdXR1cmUgZ2l0IHJlcG9zOiBJIHN1cHBvc2UgYWRkaW5nIGEKPiA+IHRhYmxlCj4gPiA+PiBhdAo+ID4gPj4+PiB0aGUKPiA+ID4+Pj4gZW5kIG9mIHRoZSBHaXQgbWlncmF0aW9uIFdpa2kgcGFnZSBjYW4gZ2l2ZSBhIGdvb2QgdmlldyBvZiB0aGUKPiByZXN1bHQKPiA+ID4+Pj4gKHdpdGggNzgKPiA+ID4+Pj4gbmV3IHJlcG9zICsgZXhpc3RpbmcgNyByZXBvcyArIHRoZSA2IGluIG1pZ3JhdGlvbiBpZiBub2JvZHkgb2JqZWN0PQpzCj4gPTNECj4gPiA5MQo+ID4gPj4+PiByZXBvcykKPiA+ID4+Pj4KPiA+ID4+Pj4gb25jZSB3ZSdyZSBhbGwgY29udmluY2VkIG9mIHRoZSB0YXJnZXQsIHdlJ2xsIHNlZSBob3cgdG8gd29yayB3aXRoCj4gPiBpbmZyYQo+ID4gPj4+PiBhbmQgSSBzdXBwb3NlIHRoZXkgYWxyZWFkeSBoYXZlIHRoZSByaWdodCBhdXRob3JzIGxpc3QsIGdpdmVuIHRoZQo+ID4gPj4gY3VycmVudAo+ID4gPj4+PiBtaXJyb3JzIGFscmVhZHkgcHVibGlzaGVkCj4gPiA+Pj4+Cj4gPiA+Pj4+IFJlZ2FyZHMsCj4gPiA+Pj4+Cj4gPiA+Pj4+IEhlcnY9QzM9QTkKPiA+ID4+Pj4KPiA+ID4+Pj4gTGUgc2FtZWRpIDcgb2N0b2JyZSAyMDE3LCAxNjowNTo0NSBDRVNUIFRpYm9yIERpZ2FuYSBhID1DMz1BOWNyaXQgPQo6Cj4gPiA+Pj4+PiBIZXJ2ZSwKPiA+ID4+Pj4+Cj4gPiA+Pj4+PiBJIHRoaW5rLCBmaXJzdCBvZiBhbGwsIHdlIHNob3VsZCB3cml0ZSBhIGxpc3Qgd2l0aCBleGFjdCBuYW1lcyBvZgo+IGdpdAo+ID4gPj4+Pj4gcmVwb3NpdG9yaWVzIGZvciB3aGljaCBJTkZSQSB3aWxsIGNyYXRlIHRoZW0gaW4KPiA+ID4+Pj4+IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnL3JlcG9zL2FzZgo+ID4gPj4+Pj4gYW5kIG1pcnJvciBpbiBnaXRodWIuY29tL2FwYWNoZQo+ID4gPj4+Pj4KPiA+ID4+Pj4+IEFuZCB0aGVuIHRoZSBhdXRob3JzLnR4dC4KPiA+ID4+Pj4+Cj4gPiA+Pj4+PiBJbiBteSBjYXNlIEkgZGlkIG5vdCBtaWdyYXRlIHRhZ3MgYW5kIGJyYW5jaGVzIHdoaWNoIGlzIG15IHByb2JsZT0KbQo+ID4gPj4gZ2l2ZW4KPiA+ID4+Pj4gaW4KPiA+ID4+Pj4+IG15IGV4YW1wbGUgd2l0aCBwcmV2aW91cyBlLW1haWwuCj4gPiA+Pj4+Pgo+ID4gPj4+Pj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCAzOjQ4IFBNLCBUaWJvciBEaWdhbmEgPAo+IHRpYm9yZGlnYW5hQGFwYWNoZS5vcmcKPiA+ID4KPiA+ID4+Pj4gd3JvdGU6Cj4gPiA+Pj4+Pj4gSGVydmUsCj4gPiA+Pj4+Pj4gSSB0aGluayBtYWtpbmcgdGhlIHRhZyBhcyBJIHdhbnRlZCB3b3VsZCBub3QgYmUgcG9zc2libGUgaW4gZ2l0Lgo+ID4gPj4+Pj4+Cj4gPiA+Pj4+Pj4gTGV0J3MgbWFrZSBpdCB3aXRoIGFsbCA3OCBwcm9qZWN0cy4KPiA+ID4+Pj4+PiBJbiAyMDE2IEkgbWlncmF0ZWQgbXkgc3ZuIHByb2plY3QgImF1ZGl0IiBsb2NhdGVkIGluIHN1Yi1mb2xkZXIKPiA+IGJlaGluZAo+ID4gPj4+Pj4+IHRydW5rICh0cnVuay9saWJzL2F1ZGl0KSB0byBnaXQgd2hpY2ggaXMgZXhhY3RseSB3aGF0IHdlIG5lZWQgdG8KPiBkbwo+ID4gaW4KPiA+ID4+Pj4+PiBBU0YuCj4gPiA+Pj4+Pj4KPiA+ID4+Pj4+PiBJbiBvdXIgY2FzZSB0aGUgY29tbWFuZHMgd291bGQgYmUgOTklIHRoZSBzYW1lLiBUaGUgMSUgaXMgdGhlCj4gc291cmNlCj4gPiA+Pj4+IFNWTgo+ID4gPj4+Pj4+IFVSTCBhbmQgdGFyZ2V0IEdpdEh1YiBVUkwuIFRoYXQncyBhbGwuIFRoZW4gaWYgd2UgcHJvdmlkZSBJTkZSQQo+IHdpdGgKPiA+ID4+Pj4gYnVuY2gKPiA+ID4+Pj4+PiBvZiBjb21tYW5kcyBsaWtlIHRoZXNlIHRoZW4gdGhleSB3aWxsIG9ubHkgZXhlY3V0ZSB0aGVtIHdpdGggdGhlPQppcgo+ID4gPj4+Pj4+IHBlcm1pc3Npb25zLgo+ID4gPj4+Pj4+IEkgZG8gbm90IHRoaW5rIHRoZXkgd2lsbCBnaXZlIG1lIGFkbWluIHBlcm1pc3Npb25zIHRvIG1ha2UgaXQuCj4gPiA+Pj4+Pj4KPiA+ID4+Pj4+PiBnaXQgc3ZuIGNsb25lIC0tbm8tbWV0YWRhdGEgLS1hdXRob3JzLWZpbGU9M0RFOlwqYXV0aG9ycy50eHQqCj4gaHR0cDovLwo+ID4gPj4+Pj4+ICoqKi9zdm4vKioqLyp0cnVuay9saWJzL2F1ZGl0IGF1ZGl0Kgo+ID4gPj4+Pj4+IGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5uYW1lICIqKiogKioqIgo+ID4gPj4+Pj4+IGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5lbWFpbCAiKioqQCoqKi4qKioiCj4gPiA+Pj4+Pj4gZ2l0IHJlbW90ZSBhZGQgb3JpZ2luIGh0dHBzOi8vKioqQGdpdGh1Yi5jb20vYXBhY2hlLwo+ID4gPj4+PiAqbWF2ZW4tY2xlYW4tcGx1Z2luKgo+ID4gPj4+Pj4+IC5naXQKPiA+ID4+Pj4+PiBnaXQgcHVzaCAtdSBvcmlnaW4gLS1hbGwKPiA+ID4+Pj4+Pgo+ID4gPj4+Pj4+IEkgb2JzZXJ2ZWQgdGhlICphdXRob3JzLnR4dCogZnJvbSBjb21tYW5kCj4gPiA+Pj4+Pj4gKnN2biBsb2cgLXEqCj4gPiA+Pj4+Pj4gRWFjaCBwZXJzb24gZnJvbSBiZXR3ZWVuIGZpcnN0IHR3byBwaXBlcywgZS5nLjoKPiA+ID4+Pj4+PiByMTIzNDU2NyB8IHRpYm9yZGlnYW5hIHwgMjAxNS0xMC0xOSAwMjoyMDowMAo+ID4gPj4+Pj4+Cj4gPiA+Pj4+Pj4gRXZlcnkgZGV2ZWxvcGVyIGFkZGVkIGUtbWFpbCBhbmQgZnVsbCBuYW1lLCBpLmUuOgo+ID4gPj4+Pj4+IHRpYm9yZGlnYW5hID0zRCBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+Cj4gPiA+Pj4+Pj4gZXRjLgo+ID4gPj4+Pj4+Cj4gPiA+Pj4+Pj4gVGhpcyBsaXN0IG9mIHVzZXJzIHdoaWNoIHNob3VsZCBiZSBjcmVhdGVkIGluIHByaW9yIHRvIGNvbnRhY3QKPiA+IElORlJBLgo+ID4gPj4+Pj4+IE5vdCBhbGwgdXNlcnMgYXJlIGFjdGl2ZSBhZnRlciB5ZWFycyBidXQgaXQgd291bGQgYmUgbmljZSB0bwo+IGluY2x1ZGUKPiA+ID4+Pj4gdGhlbQo+ID4gPj4+Pj4+IHRvby4KPiA+ID4+Pj4+PiBUaGlzIGxpc3Qgb2YgdXNlcnMgaXMgb25lIHRoaW5nIHdoaWNoIGNhbm5vdCBiZSBhdXRvbWF0ZWQhCj4gPiA+Pj4+Pj4KPiA+ID4+Pj4+Pgo+ID4gPj4+Pj4+Cj4gPiA+Pj4+Pj4KPiA+ID4+Pj4+PiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDI6NDggUE0sIFRpYm9yIERpZ2FuYSA8Cj4gPiB0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPgo+ID4gPj4+Pj4+Cj4gPiA+Pj4+Pj4gd3JvdGU6Cj4gPiA+Pj4+Pj4+IEluIG15IGNvbXBhbnkgSSBoYXZlIHN1Y2ggc2l0dWF0aW9uIGluIFNWTi4gTWFraW5nIGEgdGFnIGZyb20KPiA+ID4+Pj4gc3ViZm9sZGVyLgo+ID4gPj4+Pj4+PiBHaXQgYWx3YXlzIG1ha2VzIHRoZSB0YWcgZnJvbSB0aGUgcm9vdCwgcmlnaHQ/Cj4gPiA+Pj4+Pj4+IExldCdzIGdvb2dsZSBzb21ldGhpbmcuLi4KPiA+ID4+Pj4+Pj4KPiA+ID4+Pj4+Pj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCAyOjQ3IFBNLCBUaWJvciBEaWdhbmEgPAo+ID4gPj4+PiB0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20KPiA+ID4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+IHdyb3RlOgo+ID4gPj4+Pj4+Pj4gSW4gbXkgY29tcGFueSBJIGhhdmUgc3VjaCBzaXR1YXRpb24uCj4gPiA+Pj4+Pj4+PiBNYWtpbmcgYSB0YWcgZnJvbSBzdWJmb2xkZXIuCj4gPiA+Pj4+Pj4+PiBHaXQgYWx3YXlzIG1ha2VzIHRoZSB0YWcgZnJvbSB0aGUgcm9vdCwgcmlnaHQ/Cj4gPiA+Pj4+Pj4+PiBMZXQncyBnb29nbGUgc29tZXRoaW5nLi4uCj4gPiA+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCAyOjA1IFBNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+ID4gPj4gaGVydmUuYm91dGVteUBmcmVlLmZyCj4gPiA+Pj4+Pgo+ID4gPj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+IHdyb3RlOgo+ID4gPj4+Pj4+Pj4+IHRoYW5rcyBmb3IgeW91ciBpbnRlcmVzdCBhbmQgZmVlZGJhY2sKPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+IExlIHNhbWVkaSA3IG9jdG9icmUgMjAxNywgMTI6MDA6MzIgQ0VTVCBUaWJvciBEaWdhbmEgYSA9QzM9QTk9CmNyaXQgOgo+ID4gPj4+Pj4+Pj4+PiA3OCBpcyB0b28gbXVjaC4KPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+IG5vdGljZSB0aGF0IHRoZXJlIHdvdWxkIGFsc28gYmUgYSBxdWVzdGlvbiBvbiB0aGUgZ2l0IHJlcG9zCj4gPiBuYW1pbmcKPiA+ID4+Pj4+Pj4+PiBjb252ZW50aW9uLAo+ID4gPj4+Pj4+Pj4+IHRvIGF2b2lkIGZsYXQgNzggbmFtZXMgYnV0IGtlZXAgYXQgbGVhc3QgMyBtZWFuaW5nZnVsIGdyb3Vwcwo+ID4gPj4+PiAocGx1Z2lucywKPiA+ID4+Pj4+Pj4+PiBzaGFyZWQsCj4gPiA+Pj4+Pj4+Pj4gcmVzb3VyY2VzOiBJIHRoaW5rIHRoaXMgaXMgbm90IGFic29sdXRlbHkgbmVjZXNzYXJ5IGZvcgo+ID4gPj4gZG94aWEtdG9vbHMpCj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4gVGhlcmUgaXMgbm8gcHJvYmxlbSB0byB0cmlnZ2VyIHJlbGVhc2Ugb3ZlciBzdWItZm9sZGVycyBhbmQKPiB0YWcKPiA+IGl0Cj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+PiB3aXRoCj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4gcHJlZml4IHdoaWNoIGlzIGFscmVhZHkgZG9uZSBpbiBTVk4uCj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+PiBpcyBpdCBzdXBwb3J0ZWQgYnkgbWF2ZW4tcmVsZWFzZSBwbHVnaW4gd2l0aCBnaXQ/Cj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+PiBub3RpY2UgSSBkaWQgbm90IGtub3cgdGhhdCBnaXQgd2FzIGFibGUgdG8gdGFnIG9ubHkgYSBzdWJ0cmVlPQo6Cj4gPiBidXQKPiA+ID4+IEkKPiA+ID4+Pj4+Pj4+PiBrbmV3IEkKPiA+ID4+Pj4+Pj4+PiBkb24ndCB5ZXQgdW5kZXJzdGFuZCBldmVyeSBhc3BlY3Qgb2YgZ2l0IG1hZ2ljLi4uIDopCj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4gVGhlIENJIGJ1aWxkIGNhbiBhbHdheXMgdHJpZ2dlciB0aGUgcm9vdCBhbmQgSmVua2luc2ZpbGUgd291PQpsZAo+ID4gPj4+PiBoYXZlCj4gPiA+Pj4+Pj4+Pj4+IDQxCj4gPiA+Pj4+Pj4+Pj4+IHN0YWdlcyBmb3IgcGx1Z2lucywgMjYgc3RhZ2VzIGZvciBTaGFyZWQsIGV0Yy4KPiA+ID4+Pj4+Pj4+Pj4gSXQgY2FuIGJlIGRvbmUgaW4gSmVua2luc2ZpbGUgYW5kIHNvIHRoZSBzaGVsbCB3b3VsZCBub3QgdGhyPQpvdwo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4gZXhjZXB0aW9uCj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4gYnV0IHN0YXR1cyB3b3VsZCBiZSBzZXQgaW5zdGVhZCBhbmQgZ29lcyB0byB0aGUgbmV4dCBzdGFnZS4KPiA+ID4+Pj4+Pj4+Pj4gSSBkbyBub3Qga25vdyBob3cgdG8gZGV0ZWN0IGluIEdpdFNDTSB3aGljaCBzdWItZm9sZGVyKHMpCj4gPiByZWNlaXZlZAo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4gYnV0IEkKPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+PiBndWVzcyB0aGlzIGNhbiBiZSBpbnZlc3RpZ2F0ZWQuCj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+PiArMQo+ID4gPj4+Pj4+Pj4+IGJ1dCBJIGRvbid0IGtub3cgd2hlcmUgdG8gbG9vayBmb3IgbXlzZWxmOiBvbiB0aGF0IHBvaW50LCBJCj4gaG9wZQo+ID4gdG8KPiA+ID4+Pj4+Pj4+PiBoYXZlIHNvbWUKPiA+ID4+Pj4+Pj4+PiBoZWxwIGZyb20gSmVua2luc2ZpbGUgZXhwZXJ0cwo+ID4gPj4+Pj4+Pj4+IGFuZCBldmVudHVhbGx5IHN0YXJ0IHdpdGggc3ZuLCB0byBoYXZlIHNvbWV0aGluZyBiZWZvcmUgdGhlIGc9Cml0Cj4gPiA+Pj4+Pj4+Pj4gbWlncmF0aW9uCj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4gVGhlbiBpdCBjYW4gYmUgYSBraW5kIG9mIHN3aXRjaC1jYXNlIG92ZXIgY29tbWl0dGVkIGZvbGRlcnMgPQppbgo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4gSmVua2luc2ZpbGUuCj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4gVGhpcyBtZWFucyB0aGF0IGV2ZXJ5IHRpbWUgYW5vdGhlciBzdGFnZS9zdWItZm9sZGVyIGlzIHNob3duCj4gaW4KPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+IFBpcGVsaW5lCj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4gd2hpY2ggd2lsbCBiZSBtZXNzeSBpbiB0aGUgVUkuIDooCj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+PiBub3RpY2UgdGhhdCB3ZSBjYW4gcGVyaGFwcyBzcGxpdCB0aGUgcmVwb3MgaW4gbGVzcyBwYXJ0cyB0aGFuCj4gd2UKPiA+ID4+Pj4gaGF2ZQo+ID4gPj4+Pj4+Pj4+IGNvbXBvbmVudHM6IG9uIHBsdWdpbnMsIGZvciBleGFtcGxlLCB3ZSBhbHJlYWR5IGhhdmUgNAo+IGNhdGVnb3JpZXMKPiA+ID4+Pj4gWzFdCj4gPiA+Pj4+Pj4+Pj4gd2hpY2gKPiA+ID4+Pj4+Pj4+PiB3b3VsZCBhdm9pZCAxIHJlcG8gd2l0aCA0MSBwbHVnaW5zLCBidXQgbW9yZSBzb21ldGhpbmcgbGlrZQo+ID4gPj4+PiA2KzEwKzEwKzE1Cj4gPiA+Pj4+Pj4+Pj4gSSBzdXBwb3NlIHdlIGNvdWxkIGRvIHRoZSBzYW1lIGZvciBzaGFyZWQgKHJlcG9ydGluZyBmb2xkZXIKPiBjb21lcwo+ID4gPj4+PiB0byBteQo+ID4gPj4+Pj4+Pj4+IG1pbmQpCj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+PiBUaGUga2V5IGZlYXNpYmlsaXR5IGlzc3VlIGlzIHRoZSBjYXBhY2l0eSB0byByZWxlYXNlIGEKPiA+ID4+IHN1Yi1jb21wb25lbnQKPiA+ID4+Pj4+Pj4+PiBmcm9tIGdpdAo+ID4gPj4+Pj4+Pj4+IHdpdGggbWF2ZW4tcmVsZWFzZS1wbHVnaW4sIElNSE8KPiA+ID4+Pj4+Pj4+PiAodGFraW5nIGFwYXJ0IHRoZSBnaXQgcHVyaXN0cyBpZGVhIG9mIDEgbGlmZWN5Y2xlID0zRCAxIGdpdCByPQplcG8pCj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+PiBSZWdhcmRzLAo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4gSGVydj1DMz1BOQo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+PiBbMV0gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy8KPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+PiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDQ6MTcgQU0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8Cj4gPiA+Pj4+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+IHdyb3RlOgo+ID4gPj4+Pj4+Pj4+Pj4gVGhlcmUgYXJlIDYgc3ZuIGxvY2F0aW9ucyB3aXRob3V0IGFueSBzcGVjaWFsIGNvbXBsZXhpdHkgdGg9CmF0Cj4gPiA+Pj4+IGFyZQo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4gd2FpdGluZwo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+PiBmb3IKPiA+ID4+Pj4+Pj4+Pj4+IGEgdm9sdW50ZWVyIGZvciBnaXQgbWlncmF0aW9uIGZvciBhIGZldyB5ZWFycyBidXQgbm9ib2R5IGRvPQplcwo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4gYW55dGhpbmcKPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4gYWJvdXQ6Cj4gPiA+Pj4+Pj4+Pj4+PiBJIHN0YXJ0ZWQgMyBkYXlzIGFnbyB0byBhc2sgZm9yIGhlbHAgYWJvdXQgaXQgYW5kIGdvdCBwcmV0dD0KeQo+IG5vCj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+PiBmZWVkYmFjawo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+PiBbMV0KPiA+ID4+Pj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+PiB0aGVuIHRoZXJlIGFyZSB0aGUgNCBjb21wbGV4IHN2biBsb2NhdGlvbnMgKHBsdWdpbnMsIHNoYXJlZD0KLAo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4gcmVzb3VyY2VzLAo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+PiBkb3hpYS0KPiA+ID4+Pj4+Pj4+Pj4+IHRvb2xzKSB0aGF0IHJlcXVpcmUgbXVjaCBtb3JlIHdvcms6IEkgc3VwcG9zZSB3ZSBjYW4ndCB0ZWxsCj4gZ2l0Cj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+PiBtaWdyYXRpb24KPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4gaXMKPiA+ID4+Pj4+Pj4+Pj4+IGFiYW5kb25lZCwgYnV0IGl0IHdpbGwgcmVxdWlyZSBzb21lb25lIHRvIHdvcmsgb24gaXQKPiBzZXJpb3VzbHkKPiA+ID4+Pj4+Pj4+Pj4+IFJlbWVtYmVyIHRoYXQgdGhlIGtleSBxdWVzdGlvbiBbMl0gaXM6IGRvIHdlIHRyYW5zZm9ybSB0aGVzPQplCj4gNAo+ID4gPj4+PiBzdm4KPiA+ID4+Pj4+Pj4+Pj4+IGxvY2F0aW9ucwo+ID4gPj4+Pj4+Pj4+Pj4gaW50byA0MSArMjYgKyA2ICsgNSA9M0QgNzggaW5kZXBlbmRlbnQgZ2l0IHJlcG9zPwo+ID4gPj4+Pj4+Pj4+Pj4gWWVzLCBJIHRvbGQgdGhhdCBKZW5raW5zIGNvbmZpZ3VyYXRpb24gaXMgb25lIGtleSBhc3BlY3Qgd2UKPiA+ID4+Pj4gbmVlZCBhCj4gPiA+Pj4+Pj4+Pj4+PiBzdHJhdGVneQo+ID4gPj4+Pj4+Pj4+Pj4gYWJvdXQsIGluIHBhcmFsbGVsIHdpdGggZ2l0IHN0cmF0ZWd5Lgo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+PiB0aGVuIHRoZXJlIHdpbGwgYmUgdGhlIHJlbWFpbmluZyBjYXNlcyB3aGVyZSB3ZSBuZWVkIHRvCj4gZGVjaWRlOgo+ID4gPj4+Pj4+Pj4+IGxvd2VyCj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4+IGltcGFjdCwKPiA+ID4+Pj4+Pj4+Pj4+IGxvd2VyIHByaW9yaXR5Lgo+ID4gPj4+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+PiBTdW1tYXJ5OiBub3RoaW5nIGlzIGFiYW5kb25lZCwgYnV0Ogo+ID4gPj4+Pj4+Pj4+Pj4gLSBzaW1wbGUgY2FzZXM6IG5vIHZvbHVudGVlciB0byBkbyB0aGUgam9iCj4gPiA+Pj4+Pj4+Pj4+PiAtIGhhcmQgY2FzZXM6IGlzIHRoZXJlIGEgdm9sdW50ZWVyIGVpdGhlciB0byBkZWZpbmUgYQo+IHN0cmF0ZWd5Cj4gPiA+Pj4+IG9yCj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+PiBkbyBzb21lCj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4+IHdvcmsKPiA+ID4+Pj4+Pj4+Pj4+IG9uIGl0Pwo+ID4gPj4+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+PiBSZWdhcmRzLAo+ID4gPj4+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4+IEhlcnY9QzM9QTkKPiA+ID4+Pj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+PiBbMV0gaHR0cHM6Ly9saXN0cy5hcGFjaGUub3JnL3RocmVhZC5odG1sLwo+ID4gPj4+Pj4+Pj4+Pj4gZWRmMzY0MmE3YmRkNTE1ZjBjYWQ0MjFjMjU1ODk3NDE4MTk0NDY0NjM2MTRiZjA1MTVlNTZkYmVACj4gPiA+Pj4+Pj4+Pj4+PiAlM0NkZXYubWF2ZW4uYXBhY2hlLm9yZyUzRQo+ID4gPj4+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4+IFsyXSBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL0dpdAo+ID4gPj4+Pj4+Pj4+Pj4gK01pZ3JhdGlvbiNHaXRNaWdyYXRpb24tTWlncmF0aW5nYW5hZ2dyZWdhdG9ydHJlZWludG9hY29sbGU9CmMKPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+IHRpb25vZmdpdHJlcG9zCj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4+IExlIHZlbmRyZWRpIDYgb2N0b2JyZSAyMDE3LCAyMDozNTo0NSBDRVNUIEFybmF1ZCBIPUMzPUE5cml0PQppZXIgYQo+ID4gPj4+PiA9QzM9QTljcml0IDoKPiA+ID4+Pj4+Pj4+Pj4+PiBCdXQgZGlkIHdlIGNvbXBsZXRlbHkgYWJhbmRvbmVkIHRoZSBpZGVhIG9mIG1vdmluZwo+IGV2ZXJ5dGhpbmcKPiA+ID4+Pj4gdG8KPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+IGdpdCA/Cj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4+PiBUaGUgQ0kgc2V0dXAgd2FzIHRoZSBtYWluIHN0b3AgZm9yIGl0ID8KPiA+ID4+Pj4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4+IE9uIEZyaSwgT2N0IDYsIDIwMTcgYXQgODowNSBQTSwgSGVydj1DMz1BOSBCT1VURU1ZIDwKPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4gd3JvdGU6Cj4gPiA+Pj4+Pj4+Pj4+Pj4+IEkgd2FzIGV4cGVjdGluZyB0aGUgdXN1YWwgbGl0YW55Cj4gPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+Pj4+IHdoYXQgSSdtIG5vdCBjb25maWRlbnQgY3VycmVudGx5IHdpdGggcGlwZWxpbmUgb24gTWF2ZW4KPiA+ID4+Pj4gY29yZSBpcwo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4gdGhhdAo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+Pj4+IHdlCj4gPiA+Pj4+Pj4+Pj4+Pj4+IGhhdmUKPiA+ID4+Pj4+Pj4+Pj4+Pj4gZm9yIGV4YW1wbGUgdGhlICJtYXZlbi0zLngtamVua2luc2ZpbGUvTU5HLTYyNDIgLSBidWlsZCAjPQoxCj4gPiA+Pj4+IC0KPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+IG51bGwiCj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4+Pj4gbWVzc2FnZSwKPiA+ID4+Pj4+Pj4+Pj4+Pj4gd2l0aCB0aGlzICJudWxsIiBwYXJ0IHRoYXQgbWFrZXMgbWUgd29uZGVyIGlmIHdlIGFyZSB1c2luPQpnCj4gPiA+Pj4+IGl0Cj4gPiA+Pj4+Pj4+Pj4+Pj4+IGFzCj4gPiA+Pj4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4gZXhwZWN0ZWQuCj4gPiA+Pj4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4+PiBBbmQgZm9yIGxhcmdlIG11bHRpLW1vZHVsZSBzdm4gdHJ1bmtzICh0aGUgb25lcyB3ZSBkb24ndAo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4gbWlncmF0ZSB0bwo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+PiBnaXQ6Cj4gPiA+Pj4+Pj4+Pj4+Pj4+IG1haW5seSBwbHVnaW5zIGFuZCBzaGFyZWQpLCBpcyB0aGVyZSBhIHNvbHV0aW9uIHRvIHJlYnVpbD0KZAo+ID4gPj4+PiBqdXN0Cj4gPiA+Pj4+Pj4+Pj4+Pj4+IGNoYW5nZWQKPiA+ID4+Pj4+Pj4+Pj4+Pj4gbW9kdWxlcz8KPiA+ID4+Pj4+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4+Pj4gaWRlYWxseSwgdGhlIHJlYnVpbGQgd2hlbiBhIFNOQVBTSE9UIGRlcGVuZGVuY3kgaXMKPiBwdWJsaXNoZWQKPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+IHdvdWxkCj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4+Pj4gaGF2ZQo+ID4gPj4+Pj4+Pj4+Pj4+PiBiZWVuIGEKPiA+ID4+Pj4+Pj4+Pj4+Pj4gcGx1cywgYnV0IHRoaXMgaXMgc3VmZmljaWVudGx5IGEgcmFyZSB1c2UgdGhhdCBJIHdvbid0IGJlCj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+PiBleHRyZW1pc3QKPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4+PiBUaGVuIElJVUMsIHRoaXMgbWlncmF0aW9uIGpvYiBpcyBvbmUgYWRkaXRpb25hbCBUT0RPIGZvcgo+ID4gPj4+PiBtZS4uLgo+ID4gPj4+Pj4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4+PiBSZWdhcmRzLAo+ID4gPj4+Pj4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4+PiBIZXJ2PUMzPUE5Cj4gPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+Pj4+IExlIHZlbmRyZWRpIDYgb2N0b2JyZSAyMDE3LCAxNzo0Njo1MyBDRVNUIEFybmF1ZCBIPUMzPUE5cj0KaXRpZXIgYQo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4gPUMzPUE5Y3JpdCA6Cj4gPiA+Pj4+Pj4+Pj4+Pj4+PiBJIGFncmVlIHRoYXQgd2Ugc2hvdWxkIHVzZSBwaXBlbGluZSBub3dkYXlzCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiBwZXJoYXBzIGEgc2hhcmVkIGxpYiBpZiB3ZSB3YW50IHRvIHN0YW5kYXJkaXplIHNvbWUgc3R1Zj0KZnMKPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+IGFuZCBhIHNldAo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+PiBvZgo+ID4gPj4+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4+Pj4+IG11bHRpLWJyYW5jaGVzIGpvYnMgKG9yIG9yZyBmb2xkZXIgYnV0IGl0IHJlcXVpcmVzIEdpdEh1PQpiCj4gPiA+Pj4+IDooCj4gPiA+Pj4+Pj4+Pj4+Pj4+PiApCj4gPiA+Pj4+Pj4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4+Pj4gT24gRnJpLCBPY3QgNiwgMjAxNyBhdCA5OjE2IEFNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+ID4+Pj4+Pj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+Pj4+PiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+ID4+Pj4+Pj4+Pj4+Pj4+PiBPbiBGcmkgNiBPY3QgMjAxNyBhdCAwNjozMiwgSGVydj1DMz1BOSBCT1VURU1ZIDwKPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4+PiB3cm90ZToKPiA+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gSSBqdXN0IGZpeGVkIGEgZmV3IGZhaWxpbmcgam9icyBbMV0gdG8gaGF2ZSBhZ2FpbiBhCj4gPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IHVzYWJsZQo+ID4gPj4+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4+IEplbmtpbnMuCj4gPiA+Pj4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4+Pj4+PiBOb3cgSSdtIGZhY2luZyBzb21lIGlzc3VlcywgSSBzdXBwb3NlIGNhdXNlZCBieSBuZXdlcgo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4gSmVua2lucwo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+Pj4+IHZlcnNpb25zOgo+ID4gPj4+Pj4+Pj4+Pj4+Pj4+PiAtIE1hdmVuIDMuMC41IGNhdXNlcyBOb1N1Y2hNZXRob2RFcnJvcjoKPiA+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gby5jLnBsZXh1cy51dGlsLnhtbC5wdWxsLgo+ID4gPj4+Pj4+Pj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+Pj4+Pj4gTVhQYXJzZXIKPiA+ID4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4+Pj4+PiBbMl0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gLSBJIGhhZCB0byBzd2l0Y2ggdG8gSkRLIDggZm9yIG1hdmVuLXBsdWdpbi10b29scyBqb2IsCj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+PiBzaW5jZSBKREsKPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4+PiBjYXVzZXMKPiA+ID4+Pj4+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gZmFpbHVyZXMgKGxvb2tzIGxpa2UgSmVua2lucyB1c2VzIGEgaGFjayB0byBpbmplY3QKPiA+ID4+Pj4gSkRLIDcKPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+IGFzIGEKPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4gdG9vbAo+ID4gPj4+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4+Pj4gd2hpbGUKPiA+ID4+Pj4+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gdGhlCj4gPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IGJ1aWxkIEpWTSBpcyBKYXZhIDgpCj4gPiA+Pj4+Pj4+Pj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IFNob3VsZCB3ZSBkcm9wIE1hdmVuIDMuMC41IGJ1aWxkcyBhbmQgSkRLIDc/Cj4gPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IE5vdGljZSBJIGRpZG4ndCBjaGVjayB3aGljaCBpcyB0aGUgbWluaW11bSBNYXZlbgo+ID4gPj4+PiB2ZXJzaW9uCj4gPiA+Pj4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4gcmVxdWlyZWQuLi4KPiA+ID4+Pj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IE9yIHBlcmhhcHMgc2ltcGx5IGRvbid0IHVzZSB0aGUgSmVua2lucyBNYXZlbiBwbHVnaW4KPiA+ID4+Pj4gd2l0aAo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4gdGhpcwo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+PiBNYXZlbgo+ID4gPj4+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4+Pj4+PiAzLjAuNQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IG9yCj4gPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IEpESyA3IGNvbmZpZ3VyYXRpb246IGRlZmF1bHQgYnVpbGQgYXMgSmVua2lucyBNYXZlbgo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4gcGx1Z2luIHdpdGgKPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4gSkRLCj4gPiA+Pj4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4+PiA4ICsKPiA+ID4+Pj4+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gbGF0ZXN0Cj4gPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IE1hdmVuLCBhbmQgb3RoZXIgY29uZmlndXJhdGlvbnMgYXMgc2NyaXB0ZWQgam9icz8KPiA+ID4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4+Pj4+IGh0dHA6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90Lgo+ID4gPj4+PiBpZS8yMDEzLzExL2plbmtpbnMtbWF2ZW4tam9iLT4gPj4+PiA+ID4gPiA+ID4gPiA+Cj4gPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+Pj4+IHR5cGUtY29uc2lkZXJlZC1ldmlsLmh0bWwKPiA+ID4+Pj4+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4+Pj4+PiA8aHR0cDovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuaWUvMjAxMy8xMS9qZW5raW5zLT4gPgo+ID4gPj4+Pj4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4+PiBtYXZlbi1qb2ItdHlwZS1jb25zaWRlcmVkLWV2aWwuaHRtbD9tPTNEMT4KPiA+ID4+Pj4+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4+Pj4+PiBXZSBzaG91bGQgc3RvcCB1c2luZyB0aGUgZXZpbCBqb2IgdHlwZSBhcyBpdD1FMj04MD05OXMgPQptaW5pbXVtCj4gPiA+Pj4+IEphdmEKPiA+ID4+Pj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+PiB2ZXJzaW9uIGlzCj4gPiA+Pj4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4+Pj4+IGRpY3RhdGVkIGJ5IEplbmtpbnM9RTI9ODA9OTkgSmF2YSBtaW5pbXVtLgo+ID4gPj4+Pj4+Pj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IFdlIG5lZWQgdG8gZGVmaW5lIG91ciBjb21tb24gc3RyYXRlZ3kgYW5kIGhhdmUgYQo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4gY29uc2lzdGVudAo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IGNvbmZpZ3VyYXRpb24KPiA+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gZm9yCj4gPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IGV2ZXJ5IGpvYiB1bmRlcnN0b29kIGJ5IGV2ZXJ5Ym9keQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+Pj4+Pj4gSSByZWNvbW1lbmQgSmVua2luc2ZpbGUgYW5kIHRoZSBgd2l0aE1hdmVuYCB3cmFwcGVyCj4gPiA+Pj4+Pj4+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gUmVnYXJkcywKPiA+ID4+Pj4+Pj4+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gSGVydj1DMz1BOQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4+Pj4+PiBbMV0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuLwo+ID4gPj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4+Pj4+PiBbMl0KPiA+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy8KPiA+ID4+Pj4gdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tPgo+ID4gPj4+Pj4+Pj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+Pj4+Pj4gcGx1Z2luLXRvb2xzLWpkay0xLjcvMTYyL2NvbnNvbGUKPiA+ID4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+Pj4+IC0tLS0tLS0tLQo+ID4gPj4+Pj4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4+Pj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLgo+ID4gPj4+PiBvcmcKPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4+Pj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOgo+ID4gPj4+Pj4+Pj4+IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4+Pj4+PiAtLQo+ID4gPj4+Pj4+Pj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+Pj4+Pj4gU2VudCBmcm9tIG15IHBob25lCj4gPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+IC0tLS0tLS0tLQo+ID4gPj4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+Pj4+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Pj4+Pj4+Pj4+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcj0KZwo+ID4gPj4+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotCj4gPiA+Pj4+Pj4+Pj4KPiA+ID4+Pj4+Pj4+PiAtLS0tLS0tLS0KPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+Pj4+Pj4+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+Pj4+Pj4+Pgo+ID4gPj4+Pj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPj4+PiAtLS0tLS0tLS0KPiA+ID4+Pj4+Pj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4+Pj4+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+Pj4+Pj4+Cj4gPiA+Pj4+Pj4+PiAtLQo+ID4gPj4+Pj4+Pj4gQ2hlZXJzCj4gPiA+Pj4+Pj4+PiBUaWJvcgo+ID4gPj4+Pgo+ID4gPj4+Pgo+ID4gPj4+Pgo+ID4gPj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtLS0tLS0tLS0KPiA+ID4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4+Pgo+ID4gPj4+Pgo+ID4gPj4+Cj4gPiA+Pj4KPiA+ID4+PiAtLQo+ID4gPj4+IC0tLS0tCj4gPiA+Pj4gQXJuYXVkIEg9QzM9QTlyaXRpZXIKPiA+ID4+PiBodHRwOi8vYWhlcml0aWVyLm5ldAo+ID4gPj4+IE1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tCj4gPiA+Pj4gVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcgo+ID4gPj4KPiA+ID4+Cj4gPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLQo+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+Cj4gPiA+Pgo+ID4gPgo+ID4gPgo+ID4gPiAtLQo+ID4gPiAtLS0tLQo+ID4gPiBBcm5hdWQgSD1DMz1BOXJpdGllcgo+ID4gPiBodHRwOi8vYWhlcml0aWVyLm5ldAo+ID4gPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+ID4gPiBUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyCj4gPgo+ID4KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Cj4gPgo+CgoKCi0tPTIwCi0tLS0tCkFybmF1ZCBIPUMzPUE5cml0aWVyCmh0dHA6Ly9haGVyaXRpZXIubmV0Ck1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tClR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKCi0tMDAxYTExNDMyYjk0MWE2ZmEyMDU1YWZjNDlkNC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MTc4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBPY3QgIDcgMjA6MzU6MzggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTc4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDRGOTI3MTA2QkQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgNyBPY3QgMjAxNyAyMDozNTozOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ0NDAyIGludm9rZWQgYnkgdWlkIDUwMCk7IDcgT2N0IDIwMTcgMjA6MzU6MzMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ0MzMxIGludm9rZWQgYnkgdWlkIDUwMCk7IDcgT2N0IDIwMTcgMjA6MzU6MzMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0NDMxOSBpbnZva2VkIGJ5IHVpZCA5OSk7IDcgT2N0IDIwMTcgMjA6MzU6MzIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA3IE9jdCAyMDE3IDIwOjM1OjMyICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRTE5OTMxODAxMUEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDIwOjM1OjMxICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS44NzkKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjg3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIE1IanFuSFZWcTFveiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgIDcgT2N0IDIwMTcgMjA6MzU6MjkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC11YTAtZjE4MC5nb29nbGUuY29tIChtYWlsLXVhMC1mMTgwLmdvb2dsZS5jb20gWzIwOS44NS4yMTcuMTgwXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEYxNjA4NUY1NjkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDIwOjM1OjI4ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXVhMC1mMTgwLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIDQ3c28xMjUyMTgzN3Vhcy44CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMDcgT2N0IDIwMTcgMTM6MzU6MjggLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9NjRyMGUyWWU4ZGx0b1FrN20rZEw4Szk5Q0JlSWV4d3UrM295ay9kLzVnYz07CiAgICAgICAgYj1PYnFUeXQ3SW1oOGxiK0ZRQlJteC9kbWVZS0FTSE9LczluZVpSM2JMSTE2dVcrRjR1OGRYV1lOQk5VNk52UXg1Y1EKICAgICAgICAgbmQ3Um1sQWdqSGtTRGNzT01KV2t1WVJnMDE2R0JFbXNsTXVYYkNkNXZkdmhTUUZZUDZaSzhUQVVZZmlqeHZmTE12VlUKICAgICAgICAgTHVLZnQraWV3eVNPMXkyS2lXc3ZuOGlRejBieTFad3NycHkwSm1VZThNamJmdHhwMDZITythQ2lST2RkWlhJWUpoanEKICAgICAgICAgNitWZG5tOCtXNnZIdlEwOC80UHh2UWdPUUJCUk04Q2V1K0FaalczS2ltQmVJK2ZONjA4UFFVT3l5V2E4Y1dRd29SZ2sKICAgICAgICAgekFBWkFyTjl2NHdVZk9BNEJ3c2U0SjdJZkdBOHoyMTdYaEVhMlpoQ0J5ZEowNzFFbjZYdVhPRUc0SXBZdXNjZ1pqMXMKICAgICAgICAgbUNCUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9NjRyMGUyWWU4ZGx0b1FrN20rZEw4Szk5Q0JlSWV4d3UrM295ay9kLzVnYz07CiAgICAgICAgYj1kS2wxSStBeHhyR3NNVHlSc2hBSDFmeDRpbnVXNkU0UGtLRDd2anhZWkRiNDFaT1QzbkZNN2JQSThTZ0h0TlNxTUwKICAgICAgICAgTHhoOG1wSFVJQlNJTmxEVDNMV3RubWk2eEFRUDBqcDQwUXlWUnQwekthSWNSdit1cnIwcU5PZFc1RURxTE40N3lPeXkKICAgICAgICAgdm1IQmNEdHlyR2wwMkZFa28wRGlLb3Q1SndCUEkzVysrdkdLVTR6M2lnZVd3Vko5RzJpZjF4UCtWaXdIdXB3VkhXNzgKICAgICAgICAgY3BwbG5MYjZFZkl0Y1NEYzhXdWdETTBXU2t2aUJ6a1RjNFB1bUxOUUwrcE1yVHIrMVU3Ty9BRDVXSWxsaG9OTG44MEIKICAgICAgICAgamk2Tkp3YjJ5WDNRQ20rNFh3aVE3NmlMdE9Ba3cvaWo5aEdlTEhwZTRtcE5wWWlRSVBzUklqUjNscHl3M0hGOUdoUmUKICAgICAgICAgcFBVUT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhWFRqT1R3ZlplbTVWekg5UmNiQ2NYbUUwTlhBTXFOWHhzTXVaaTFJU1RGVGE3bjEvNnAKCTZmK0xjSDFHT0hLeklJd25HQ0trdTFubUJ5ZGVGK3dxdXJ5SUZGdkhtZz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FCbXRvNU91cWQ2REN1UEtHbE82dW9FRHNVakdXUGw3bHlKTHNKSm45WHlOYWYreXpySmJ5aHFtekh1dm1zNGU4MjRJZnpLVldJMW85M0d0b1EwQTVBPQpYLVJlY2VpdmVkOiBieSAxMC4xNzYuODAuMTgzIHdpdGggU01UUCBpZCBjNTJtcjE4MDIyNnVhYS4xNjIuMTUwNzQwODUyODM1MzsKIFNhdCwgMDcgT2N0IDIwMTcgMTM6MzU6MjggLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjE3Ni44NS4xMzYgd2l0aCBIVFRQOyBTYXQsIDcgT2N0IDIwMTcgMTM6MzU6MDcgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDwxNjAwOTEwLkd0ZHZ4TTFLOTFAZ2lnYT4KUmVmZXJlbmNlczogPDMwMDY0NzEuR3JTRmpTSmpHWEBnaWdhPiA8MTc5MTM3OC44azAyYVVKM3JwQGdpZ2E+CiA8MTczMzA3OS5mQkpvemdsNXZZQGdpZ2E+IDwxNjAwOTEwLkd0ZHZ4TTFLOTFAZ2lnYT4KRnJvbTogPT9VVEYtOD9RP0FybmF1ZF9IPUMzPUE5cml0aWVyPz0gPGFoZXJpdGllckBnbWFpbC5jb20+CkRhdGU6IFNhdCwgNyBPY3QgMjAxNyAyMjozNTowNyArMDIwMApNZXNzYWdlLUlEOiA8Q0FGTkNVLThiRFg3R2dFPU9xdlRINi1DSmJSWkc3bVFqQXNYOTBlRXBoQmZITVhUUlNBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogbWlncmF0aW5nIHNvbWUgY29kZSB0byBHaXQKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iOTRlYjJjMThmZDIyZGQyZjNiMDU1YWZhZTUzNyIKCi0tOTRlYjJjMThmZDIyZGQyZjNiMDU1YWZhZTUzNwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgorMQoKQ2FuIHlvdSBzaGFyZSB0aGUgc2NyaXB0ID8KCk9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgMTI6MzIgUE0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgp3cm90ZToKCj4gSSB3cm90ZSBhIGxpdHRsZSBzaGVsbCBzY3JpcHQgdG8gY2hlY2sgZGlmZmVyZW5jZXMgYmV0d2VlbiB0YWdzIGluIHN2biBhbj0KZAo+IGdpdAo+IGNoZWNrb3V0Cj4gdGhlIG9ubHkgZGlmZmVyZW5jZXMgSSBmb3VuZCBmb3IgdGhlIDYgZ2l0IHJlcG9zIGFyZToKPiAxLiBlbXB0eSBkaXJzICh3aGljaCBleGlzdCBpbiBzdm4gYnV0IGFyZSBwcnVuZWQgaW4gZ2l0KQo+IDIuIG9uZSBzdHJhZ2UgY2FzZSBpbiBlbmZvcmNlci0xLjIgd2hlcmUgYSBmZXcgZmlsZXMgc2VlbSB0byBoYXZlIG5ld2xpbmU9CnMKPiBpc3N1ZXMKPgo+IHRvIG1lLCB0aGlzIGNhbiBiZSBzYWZlbHkgaWdub3JlZAo+Cj4gaWYgbm9ib2R5IG9iamVjdHMsIGluIDcyaCwgSSdsbCBjcmVhdGUgSU5GUkEgamlyYSBpc3N1ZSB0byBzd2l0Y2gKPiBmb2xsb3dpbmcgNgo+IGNvbXBvbmVudHMgZnJvbSBzdm4gdG8gdGhlIGN1cnJlbnQgZ2l0IG1pcnJvcjoKPiAtIERveGlhIGNvcmUKPiAtIERveGlhIFNpdGV0b29scwo+IC0gRW5mb3JjZXIKPiAtIEp4cgo+IC0gUGx1Z2luIFRvb2xzCj4gLSBSZWxlYXNlCj4KPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUMzPUE5Cj4KPiBMZSBzYW1lZGkgNyBvY3RvYnJlIDIwMTcsIDA0OjQ3OjMyIENFU1QgSGVydj1DMz1BOSBCT1VURU1ZIGEgPUMzPUE5Y3JpdCA6Cj4gPiByZS1yZWFkaW5nIG91ciBtaWdyYXRpb24gcHJvY2VzcyBkb2N1bWVudGF0aW9uIFsxXSwgSSBzZWUgImNoZWNrCj4gZXNwZWNpYWxseQo+ID4gYmVoYXZpb3VyIG9uIGNoZWNraW5nIG91dCB0YWciCj4gPgo+ID4gSSBzdXBwb3NlIHRoYXQgd2UgY291bGQgY29tcGFyZSBjb250ZW50IGJldHdlZW4gZ2l0IGNoZWNrb3V0IGFuZCBzdm4KPiA+IGNoZWNrb3V0IGZvciBIRUFEIGFuZCBldmVyeSBwYXN0IHJlbGVhc2UKPiA+Cj4gPiBkaWQgc29tZWJvZHkgcHJlcGFyZSBhIHNoZWxsIHNjcmlwdCBmb3IgdGhhdD8KPiA+Cj4gPiBSZWdhcmRzLAo+ID4KPiA+IEhlcnY9QzM9QTkKPiA+Cj4gPiBbMV0gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9HaXQKPiA+ICtNaWdyYXRpb24jR2l0TWlncmF0aW9uLU1pZ3JhdGlvbnByb2Nlc3NkZXNjcmlwdGlvbgo+ID4KPiA+IExlIHZlbmRyZWRpIDYgb2N0b2JyZSAyMDE3LCAwMDozNDoxMSBDRVNUIEhlcnY9QzM9QTkgQk9VVEVNWSBhID1DMz1BOWNyPQppdCA6Cj4gPiA+IGdyZWF0LCB0aGFuayB5b3UgZm9yIHlvdXIgaGVscAo+ID4gPgo+ID4gPiBpbiBmYWN0LCBBRkFJSywgQXBhY2hlIGhhcyBhbHJlYWR5IGF1dG9tYXRpYyBzdm4yZ2l0IGV4cG9ydHMgWzFdIHRoYXQKPiBhcmUKPiA+ID4gdGhlbiBtaXJyb3JlZCB0byBnaXRodWIuCj4gPiA+IFRoZW4gd2UgYWxyZWFkeSBoYXZlOgo+ID4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZG94aWEvCj4gPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1kb3hpYS1zaXRldG9vbHMvCj4gPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1lbmZvcmNlci8KPiA+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWp4ci8KPiA+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbi10b29scy8KPiA+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXJlbGVhc2UvCj4gPiA+Cj4gPiA+IEkgc3VwcG9zZSB0aGVzZSBjb3VsZCBiZSB0aGUgbmF0dXJhbCB0YXJnZXRzLgo+ID4gPiBCdXQgSSBkb24ndCByZWFsbHkgc2VlIHdoYXQgY2hlY2tzIHRvIGRvIG9uIHRoZXNlLgo+ID4gPgo+ID4gPiBJIHN1cHBvc2UgdGhhdCBvbmNlIHdlIGFyZSBjb252aW5jZWQgdGhpcyBjb250ZW50IGlzIG9rLCB3ZSBjYW4gYXNrCj4gaW5mcmEKPiA+ID4gdG8gc3dpdGNoIHRoZXNlIHRvIHRoZSBjYW5vbmljYWwgc291cmNlIChhbmQgZGlzYWJsZSB0aGUgc3ZuMmdpdAo+IGV4cG9ydHMpCj4gPiA+Cj4gPiA+IERvIHlvdSBzZWUgYW55IGlzc3VlIGluIHRoZXNlIHJlcG9zPwo+ID4gPgo+ID4gPiBSZWdhcmRzLAo+ID4gPgo+ID4gPiBIZXJ2PUMzPUE5Cj4gPiA+Cj4gPiA+IFsxXSBodHRwOi8vZ2l0LmFwYWNoZS5vcmcvCj4gPiA+Cj4gPiA+IExlIGpldWRpIDUgb2N0b2JyZSAyMDE3LCAxMTo0NToyMyBDRVNUIERlamFuIFN0b2phZGlub3ZpYyBhID1DMz1BOWNyaT0KdCA6Cj4gPiA+ID4gQ291bnQgbWUgaW4gKGZvciBib3RoIGFjdHVhbCBtaWdyYXRpb24gYW5kIHJlbGF0ZWQgdGFza3MpLgo+ID4gPiA+Cj4gPiA+ID4gTXkgd2VhcG9uIG9mIGNob2ljZSBmb3IgU1ZOIC0tPj5HSVQgd291bGQgYmU6Cj4gPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL25pcnZkcnVtL3N2bjJnaXQgKEkgbWFuYWdlZCB0byBtb3ZlIGRvemVuIG9mCj4gcmVwb3MKPiA+ID4gPiBmZXcKPiA+ID4gPiB5ZWFycyBhZ28pLgo+ID4gPiA+Cj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiBEZWphbgo+ID4gPiA+Cj4gPiA+ID4gT24gMjAxNy0xMC0wNCAwMTo0OCwgSGVydj1DMz04Mz1DMj1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZj0Kcj4gd3JvdGU6Cj4gPiA+ID4gPiBJJ2QgbGlrZSB0byB3b3JrIG9uIFBsdWdpbiBUb29scyB3aXRoIGdpdAo+ID4gPiA+ID4KPiA+ID4gPiA+IFdoaWxlIGF0IGl0LCBsb29raW5nIGF0IG91ciBwbGFuIFsxXSwgSSBzZWUgd2UgaGF2ZSBhIGZldyBvdGhlcgo+ID4gPiA+ID4gY29tcG9uZW50cwo+ID4gPiA+ID4gdGhhdCBhcmUgcmVhZHkgdG8gbWlncmF0ZToKPiA+ID4gPiA+IC0gRG94aWEgY29yZQo+ID4gPiA+ID4gLSBEb3hpYSBTaXRldG9vbHMKPiA+ID4gPiA+IC0gRW5mb3JjZXIKPiA+ID4gPiA+IC0gSnhyCj4gPiA+ID4gPiAtIFBsdWdpbiBUb29scwo+ID4gPiA+ID4gLSBSZWxlYXNlCj4gPiA+ID4gPgo+ID4gPiA+ID4gV2hhdCBjaGVja3MgYXJlIHJlcXVpcmVkIGJlZm9yZSBzd2l0Y2hpbmcgdGhlc2UgNiBjb21wb25lbnRzPwo+ID4gPiA+ID4gQW55IHZvbHVudGVlcj8KPiA+ID4gPiA+Cj4gPiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+ID4KPiA+ID4gPiA+IEhlcnY9QzM9ODM9QzI9QTkKPiA+ID4gPiA+Cj4gPiA+ID4gPiBbMV0gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9HaXQrCj4gTWlncmF0aW9uCj4gPiA+ID4gPgo+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tCj4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+Cj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tCj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Cj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPgo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCgotLT0yMAotLS0tLQpBcm5hdWQgSD1DMz1BOXJpdGllcgpodHRwOi8vYWhlcml0aWVyLm5ldApNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQpUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyCgotLTk0ZWIyYzE4ZmQyMmRkMmYzYjA1NWFmYWU1MzctLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDc4NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gRGVjIDE4IDA3OjU0OjM4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDc4NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAxRjg1RjE3QUI5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMTggRGVjIDIwMTcgMDc6NTQ6MzggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyNDY0NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBEZWMgMjAxNyAwNzo1NDozMiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjQ1NTQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggRGVjIDIwMTcgMDc6NTQ6MzIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNDU0MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDE4IERlYyAyMDE3IDA3OjU0OjMyIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAxOCBEZWMgMjAxNyAwNzo1NDozMiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEI0RTUzQzM4NkIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE4IERlYyAyMDE3IDA3OjU0OjMxICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS44NzkKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjg3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgVDlDMVo2eGgyX2pBIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAxOCBEZWMgMjAxNyAwNzo1NDozMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLWxmMC1mNDQuZ29vZ2xlLmNvbSAobWFpbC1sZjAtZjQ0Lmdvb2dsZS5jb20gWzIwOS44NS4yMTUuNDRdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRTkxRDc1RjI5NwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTggRGVjIDIwMTcgMDc6NTQ6MjkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtbGYwLWY0NC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBmMThzbzE2NjY1MjEybGZnLjgKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxNyBEZWMgMjAxNyAyMzo1NDoyOSAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD10dFBiQ2U3d2JVYWMxbkxMY3czWUpzWHFLcEFjSlFSWk8xVlNqc1gvL3o4PTsKICAgICAgICBiPUpWWSt6eFN1UTNCc2ZrK21qMDVvaHpNbEZSdWxRK053YUU0OW02YTBXdVN1MWpiY2xuQnM1UWxjWTlSMTdBMnpjSwogICAgICAgICBwN3IrQXY2N1AxUkxoZUQvdmg2elY5M1grNEdvWXFMMEJjc0kwbGUyL1NyUzJFZndsOXloaVFhWTR4ZFc5TVFFZUlFcwogICAgICAgICBodjlUVmovT01xS2FJdnFsREkyOWd1RnM0blZaU1p2YVRQZ29SZ1BreEhYM3RFTUwxN2laSGUwR3VuM3JocXpWZDhySQogICAgICAgICBUT3dhSU5QMGlCWlMrczExVDRlcmZSMkdkK0t4VlIyVk5rVVpYRTFoQkNWcmJCOTNNcE9qWTRUK0hwVi8zaWo4YUpocQogICAgICAgICB5QmFVQmJ1RDFUd1JIWmxBMTNpMTJqN3phang3alROcVgrUjNpVUkzTXZHYzdMbmRZZTBhKytWTERySGxQbitBNElIZwogICAgICAgICBBUENnPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD10dFBiQ2U3d2JVYWMxbkxMY3czWUpzWHFLcEFjSlFSWk8xVlNqc1gvL3o4PTsKICAgICAgICBiPWZIbllCNXFOOFFtRktwa09NN2gxZURjdHc5VEdGWkdwR2owZCtYQ1h4SzZoRXpDTFlxVSttL3d6d08wS2E1RkJveAogICAgICAgICBydGhxS2xXdnlkNVFqQUVvM3ZKRmovODMvd3djUk1NMkkrTkZjdmhWU2pXSC9QK1pZVHFwdXo0SUhna3kreW9HM2VQQwogICAgICAgICAwSUQzT0JHNkRmWkpqSmdTMVRkTmpkWWwxVjYwUGhodFJxc3dhK0loZ1pOZGhCbnN5NVgvZllhdndJcUJUc1dUbDZwaQogICAgICAgICB2KzVITndEQThFc05KU3hlSjdPQXhxVmd2ODhtVGlLang5YjBybFpnQk9OeFY4cnh1Z1dTMnErc0FCUVNDQ0MzcnpOSwogICAgICAgICBuYnpURllON3A2QUhubVBjeXZwczg4M3p3RUpFMDgwTzBCQ2hjNmYwNnUzeWtoaUdYUTR0TEdsSVNkYUVYWlRHcjBveQogICAgICAgICB4dWFnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBS0dCM21MUWhKR0NtenhuYjVjSFBKbnJZb3kreHh3MXRjWGFTeGRSdk9lSHhWemtESU5NNE5iOQoJMkVaTDlWWGNpd3UzakF5WUxSWW9UMFdEVnhUcTJ5QitibEJJNkk0Szh3PT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFDSmZCb3Z2SFJNNUs5ZmJpREJSSzd1NU0rVXp0UXNBc0Z5UitPVEduc0NsSnJ4Z2xOVmszYkNWSWIwOHgwYlc5cFlCYUNMWXZlUVJiZ2VsWmFvSUI4ZG9zYUE9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjQ2LjEuMjMxIHdpdGggU01UUCBpZCBmMTAwbXIxMDU2NTI3M2xqaS4xMzIuMTUxMzU4MzY2OTA1MTsKIFN1biwgMTcgRGVjIDIwMTcgMjM6NTQ6MjkgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjI1LjI0LjIxNSB3aXRoIEhUVFA7IFN1biwgMTcgRGVjIDIwMTcgMjM6NTQ6MDggLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDwxMTkyMjE3MS5iQXpEZUVGaU9NQGdpZ2E+ClJlZmVyZW5jZXM6IDwxMTkyMjE3MS5iQXpEZUVGaU9NQGdpZ2E+CkZyb206ID0/VVRGLTg/UT9Bcm5hdWRfSD1DMz1BOXJpdGllcj89IDxhaGVyaXRpZXJAZ21haWwuY29tPgpEYXRlOiBNb24sIDE4IERlYyAyMDE3IDA4OjU0OjA4ICswMTAwCk1lc3NhZ2UtSUQ6IDxDQUZOQ1UtOGpoaUJlcXd5R1NvMTRIREROeGJ3R3FwY05oQzhMd2hvSGpoMm5kcF9TT2dAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbRkVFREJBQ0sgV0FOVEVEXSBlZGl0IGJ1dHRvbiBvbiBhIE1hdmVuIHNpdGUKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDJjM2Y4ZWU4Nzk1MDU2MDk4YThjOSIKCi0tMDAxYTExNDJjM2Y4ZWU4Nzk1MDU2MDk4YThjOQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpJIGp1c3QgY29tbWVudGVkIHRoZSBjaGFuZ2UgaW4gR0ggdG8gYWR2aXNlIHlvdSB0byBhZGQgYSB0aXRsZSBhdHRyaWJ1dGUgb24KdGhlIGltYWdlIHRvIGhhdmUgYSB0b29sdGlwIGRpc3BsYXllZCBieSB0aGUgYnJvd3Nlci4gT3RoZXJ3aXNlIGl0J3MgYSB2ZXJ5CnVzZWZ1bCBjaGFuZ2UuCgpPbiBNb24sIERlYyAxOCwgMjAxNyBhdCA4OjQyIEFNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4Kd3JvdGU6Cgo+IEhpLAo+Cj4gSSBqdXN0IG1hbmFnZWQgdG8gYWRkIGFuICJlZGl0IiBidXR0b24gaW4gTWF2ZW4gZ2VuZXJhdGVkIHNpdGVzLCB0aGF0IHdpbD0KbAo+IGhlbHAgcGVvcGxlIGZpbmQgdGhlIHNvdXJjZSBvZiB0aGUgZG9jdW1lbnQuCj4KPiBTZWUgYW4gZXhhbXBsZSBoZXJlICh0aGUgbGl0dGxlIGljb24gbmVhciB0aGUgdmVyc2lvbik6Cj4gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvc2tpbnMtYXJjaGl2ZXMvbWF2ZW4tZmx1aWRvLXNraW4tTEFURVNULwo+Cj4gSSB3YW50ZWQgdG8gcHVibGlzaCBpdCB0byBNYXZlbiBzaXRlIHRocm91Z2gKPiBodHRwOi8vc3ZuLmFwYWNoZS5vcmcvcjE4MTg0ODkKPiBidXQgYnVpbGRib3QgZGlkIG5vdCBjYXRjaCB0aGUgU05BUFNIT1QgbS1zaXRlLXAgcGx1Z2luOiB3ZSdsbCBoYXZlIHRvIHdhPQppdAo+IGZvciB0aGUgcmVsZWFzZSAoYWZ0ZXIgRG94aWEgdGhlbiBEb3hpYSBTaXRldG9vbHMgcmVsZWFzZXM6IHBsZWFzZSB2b3RlKS4KPgo+IEZlZWRiYWNrIGFwcHJlY2lhdGVkIG9uIHRoZSBuZXcgaWNvbiwgaXRzIGNvbmZpZ3VyYXRpb24sIG9yIGFueSBpZGVhIHRoYXQKPiBjb3VsZAo+IGltcHJvdmUgdGhlIGZlYXR1cmUuCj4gRG9uJ3QgaGVzaXRhdGUgdG8gcHJvcG9zZSBpbXByb3ZlbWVudHMgYXMgaHRtbCBjaGFuZ2VzOiB3ZSdsbCBzZWUgbGF0ZXIKPiBob3cgdG8KPiBnZXQgdGhlIHVwZGF0ZSBpbiB0aGUgVmVsb2NpdHkgdGVtcGxhdGUgdGhhdCBnZW5lcmF0ZWQgdGhlIGh0bWwuLi4KPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUMzPUE5Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+CgoKLS09MjAKLS0tLS0KQXJuYXVkIEg9QzM9QTlyaXRpZXIKaHR0cDovL2FoZXJpdGllci5uZXQKTWFpbC9HVGFsazogYWhlcml0aWVyIEFUIGdtYWlsIERPVCBjb20KVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcgoKLS0wMDFhMTE0MmMzZjhlZTg3OTUwNTYwOThhOGM5LS0KCkZyb20gZGV2LXJldHVybi0xMjQyODEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE9jdCAyMCAxOTo0NjoyNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyODEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgN0Y0OEExMDMzMAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDIwIE9jdCAyMDE3IDE5OjQ2OjI0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjAxMjcgaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgT2N0IDIwMTcgMTk6NDY6MjQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIwMDQxIGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIE9jdCAyMDE3IDE5OjQ2OjI0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjAwMjkgaW52b2tlZCBieSB1aWQgOTkpOyAyMCBPY3QgMjAxNyAxOTo0NjoyMyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMjAgT2N0IDIwMTcgMTk6NDY6MjMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBDMDRGNkMxMEM1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAyMCBPY3QgMjAxNyAxOTo0NjoyMiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDQuMjkxClgtU3BhbS1MZXZlbDogKioqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9NC4yOTEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgSFRNTF9PQkZVU0NBVEVfMTBfMjA9MS4xNjIsIEtBTV9MT1RTT0ZIQVNIPTAuMjUsCglLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgNkNRMG9DVEp0VVNTIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJRnJpLCAyMCBPY3QgMjAxNyAxOTo0NjoyMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXZrMC1mNTEuZ29vZ2xlLmNvbSAobWFpbC12azAtZjUxLmdvb2dsZS5jb20gWzIwOS44NS4yMTMuNTFdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgODc5OTU1RkQzOAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjAgT2N0IDIwMTcgMTk6NDY6MjEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdmswLWY1MS5nb29nbGUuY29tIHdpdGggU01UUCBpZCBrMTk1c283OTg1MjcwdmtlLjEwCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjAgT2N0IDIwMTcgMTI6NDY6MjEgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Q1B3L1RTbkJqS041NkRnYUVQTEwvMFpoTDFwS0FCS3hKMHhDZ2t4Vi9SRT07CiAgICAgICAgYj1OVTFxeUk3dGFPYnNta2g3MktoOVJIM2tXZ2tQVDlGMVR0NXZ3MkpaczA0YVVFNzJ5ZVlUSXFtWGo0Wi9TS0hVL1cKICAgICAgICAgSENsZ1dML25RYXhPUUZOMktVL3BWeGRvNFFHenFSSFE0dzVUM3JFSVVVSmdjY2VEMHlOZEdtN2toZUtnamV3cGdhY1IKICAgICAgICAgMkF2T1htY0FsQTRaempQaE1BcHFiOWpmbmU3M21od2E0MHFkdm11Uk01UjFEdVpKMUJWSUt1K25RaFF6S2hTdmZUWUIKICAgICAgICAgbkJ5eHJvVVRVQlB6RzVBOG5WcDc0ZytJTXpnTVBFbFZpSXdQM3pjUVFLeWhJNHpvSXJ4TFBRa0hMWjdNWTJZclgzODgKICAgICAgICAgeWVlWkNmMVpMSVNib2QvTnRtek1jeDM4ZUFvVG9VcmxFWDd4YkVZcW1OUC82ZGtDcVltNkFVa2RESHE1NExTMHV4Q24KICAgICAgICAgbWlqUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Q1B3L1RTbkJqS041NkRnYUVQTEwvMFpoTDFwS0FCS3hKMHhDZ2t4Vi9SRT07CiAgICAgICAgYj11V21yRXovQ3dtVU02SHJBUFhKYXNtUFh3N1hGV2M2dkFaUGFnMWdOV0pZZXRwbEY5VXVacEVyL1JBSmxDd2hPTzkKICAgICAgICAgVGlYM1pkSXhMNmc3WVpOU3duSHh2c2pSeUdnSG9GMlA3T2xmb2RJcmNhaVhMSW83R09Wb09vNHhwbVYvVTNoRENnZjgKICAgICAgICAgUTBlN1cyS2loZlZWTmFPMlp5NXl2MzdNb1FwLzNCR1VIWnVHVnNRaHFBSk9DQ0J0MmJheXk0RlFSMnhwM0NCWExmcG8KICAgICAgICAgeXRUUzBSaS9tTDQxT3E0M2VUMWJBdW8yWTBmcHRrbmtwUVVuK1FIYmlNOHR0UUdVb3FoN0VzUGtpZ0w5UVNEN3hFN3IKICAgICAgICAgVGRiU2hkRWs3SFBNQTY0MDErdURWUlRrRlVvYzE1dHhjZzkvYmdhSUJLeS83TkgyQ2lwSWFjUWs4MUY0b2ZCT2JaSzYKICAgICAgICAgMC85QT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVk1aNFZ4TDd3VEJNMm5JYTdWWElCU0VIMUMrUnI1bmtPSE9wVTQvaGlncmIyUVlpd0kKCStYRWcycXdUOUlTdXdDZWdyeU5PSTZLcDBaL3dJenBKbGVCZCtrZTdiZz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtRb3lWMkNhSmFHQUtKMk9kdDZ3MXNxZ1l5S1M3WnJhN3VJcGZpd2VGU2Z2OVZWRGFDS2xObmlFLzZhZlZvNnZoWnIxeDVHQ05jZzhraG40MHQxVFVBPQpYLVJlY2VpdmVkOiBieSAxMC4zMS41OC4yIHdpdGggU01UUCBpZCBoMm1yNjY1MTM3dmthLjE5NC4xNTA4NTI4NzgwODYyOyBGcmksCiAyMCBPY3QgMjAxNyAxMjo0NjoyMCAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTc2LjkwLjM4IHdpdGggSFRUUDsgRnJpLCAyMCBPY3QgMjAxNyAxMjo0NjowMCAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPG9wLnk4ZTY3b2tpa2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXd0am5aRS01M0FONTN4Rj1NZjZIWS1GYkdZd1pBVXczRVVLSEE0ZUtCNTJRQG1haWwuZ21haWwuY29tPgogPG9wLnk4ZTY3b2tpa2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpGcm9tOiA9P1VURi04P1E/QXJuYXVkX0g9QzM9QTlyaXRpZXI/PSA8YWhlcml0aWVyQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAyMCBPY3QgMjAxNyAyMTo0NjowMCArMDIwMApNZXNzYWdlLUlEOiA8Q0FGTkNVLThzRTBNNGtxVUZCRDQyZUFrUlU0R2I1K2VpMDFhM2tBZ0d5VXFrcm93RnhBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4yClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQzZmQxYzFkZTkwZDA1NWJmZmJhYTIiCgotLTAwMWExMTQzZmQxYzFkZTkwZDA1NWJmZmJhYTIKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKKzEgZm9yIG1lIHRvbwpVc2VkIGl0IHdpdGggbm8gaXNzdWUgKGJ1dCBteSB1c2FnZXMgYXJlIGxpbWl0ZWQpCgpPbiBGcmksIE9jdCAyMCwgMjAxNyBhdCA4OjM0IFBNLCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Cndyb3RlOgoKPiArMQo+Cj4KPiBPbiBXZWQsIDE4IE9jdCAyMDE3IDEyOjUwOjQzICswMjAwLCBTdGVwaGVuIENvbm5vbGx5IDwKPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPgo+IEhpLAo+Pgo+PiBXZSBzb2x2ZWQgMjYgaXNzdWVzOgo+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/dmVyc2kKPj4gb249M0QxMjMzODk2NCZzdHlsZU5hbWU9M0RUZXh0JnByb2plY3RJZD0zRDEyMzE2OTIyCj4+Cj4+IFRoZXJlIGFyZSAzNTcgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKPj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUzRCUKPj4gMjBNTkclMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJTIwQlklCj4+IDIwZHVlJTIwQVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwY3JlYXRlZCUyMEFTQwo+Pgo+PiBTdGFnaW5nIHJlcG86Cj4+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzMvCj4+Cj4+IFRoZSBkaXN0cmlidXRhYmxlIGJpbmFyaWVzIGFuZCBzb3VyY2VzIGNhbiBiZSBmb3VuZCBoZXJlOgo+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzcKPj4gMy9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi8KPj4KPj4gU3BlY2lmaWNhbGx5IHRoZSB6aXAsIHRhcmJhbGwgYW5kIHNvdXJjZSBhcmNoaXZlcyBjYW4gYmUgZm91bmQgaGVyZToKPj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3Cj4+IDMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvYXBhY2hlLW1hdmVuLTMuNS4yLWJpbi56aXAKPj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3Cj4+IDMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvYXBhY2hlLW1hdmVuLTMuNS4yLWJpbi50YXIuZ3oKPj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3Cj4+IDMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvYXBhY2hlLW1hdmVuLTMuNS4yLXNyYy56aXAKPj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3Cj4+IDMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvYXBhY2hlLW1hdmVuLTMuNS4yLXNyYy50YXIuZ3oKPj4KPj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4+IGFwYWNoZS1tYXZlbi0zLjUuMi1zcmMudGFyLmd6IHNoYTE6IDk3ZDZkN2IxODQ4NWI3OTA2ZGQ3ZjMxM2NkZDQxMQo+PiA5MWQxNmRkZTQ2Cj4+IGFwYWNoZS1tYXZlbi0zLjUuMi1zcmMuemlwOiBzaGExOiBkYzhjYWE1Y2RhY2I0MDA5NDNkMjQ5MWEwMjBmNzQKPj4gMmE1MThlOGYwOAo+Pgo+PiBHaXQgdGFnOgo+PiBodHRwczovL2dpdC13aXAtdXMuYXBhY2hlLm9yZy9yZXBvcy9hc2Y/cD0zRG1hdmVuLmdpdDthPTNEY29tbWl0Cj4+IDtoPTNEMTM4ZWRkNjFmZDEwMGVjNjU4YmZhMmQzMDdjNDNiNzY5NDBhNWQ3ZAo+Pgo+PiBTdGFnaW5nIHNpdGU6Cj4+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9jb21wb25lbnRzL3JlZi8zLUxBVEVTVC8KPj4KPj4gVm90ZSBvcGVuIGZvciA3MiBob3Vycy4KPj4KPj4gWyBdICsxCj4+IFsgXSArMAo+PiBbIF0gLTEKPj4KPj4gVGhhbmtzLAo+Pgo+PiBTdGVwaGVuLgo+Pgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKCi0tPTIwCi0tLS0tCkFybmF1ZCBIPUMzPUE5cml0aWVyCmh0dHA6Ly9haGVyaXRpZXIubmV0Ck1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tClR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKCi0tMDAxYTExNDNmZDFjMWRlOTBkMDU1YmZmYmFhMi0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MDA3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBTZXAgMTMgMTI6MjA6MjEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDA3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDk3NDU3MUE1QTUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAxMyBTZXAgMjAxNyAxMjoyMDoyMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDc4NzY0IGludm9rZWQgYnkgdWlkIDUwMCk7IDEzIFNlcCAyMDE3IDEyOjIwOjIxIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3ODY3MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMyBTZXAgMjAxNyAxMjoyMDoyMSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc4NjYyIGludm9rZWQgYnkgdWlkIDk5KTsgMTMgU2VwIDIwMTcgMTI6MjA6MjEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMTMgU2VwIDIwMTcgMTI6MjA6MjEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC12azAtZjUzLmdvb2dsZS5jb20gKG1haWwtdmswLWY1My5nb29nbGUuY29tIFsyMDkuODUuMjEzLjUzXSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEQ3QjI3MUEwMTk4Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMyBTZXAgMjAxNyAxMjoyMDoyMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC12azAtZjUzLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHg4NXNvMzk3NDJ2a3guNQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3IDA1OjIwOjIwIC0wNzAwIChQRFQpClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVZ1Q3dzZPTVNuK0w1SjJ0SWpOTCtEZklqL3dERXlEZ0tFUU1DTHRJNHNEZ2lTaHJoY0MKCTFZL1dFSmtiQ1RJMkxrcExZWWpWSzlHR3k5NkJDejVxS2xzWDZwMD0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUNsd2J3d3BUVm80d0pJRjJvUWpHQ1Rxd29FQlpXK0hTMzJaVERKWlVUYS9iZXcrZWlnbSswVjA4amprTVhzRCtQV3MwdVVDaHRIWFViRGkwT0h3SWs9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjMxLjEzMS4xOSB3aXRoIFNNVFAgaWQgZjE5bXIxMTE2OTI0N3ZrZC44MC4xNTA1MzA1MjIwMTQ1OwogV2VkLCAxMyBTZXAgMjAxNyAwNToyMDoyMCAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTU5LjM1Ljg3IHdpdGggSFRUUDsgV2VkLCAxMyBTZXAgMjAxNyAwNToxOTo1OSAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPENBK25Qbk15TFoyREhtamlkeVI0ckxHX2trdnlmMnpKTTZfRitnZmJCZnpCdk5uNHFCUUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk14eUcyTmVQWHBWcWF3ZTlqUj1pdEhFVDZVdWRuTjlDakhodj1vby1LQ3J4d0BtYWlsLmdtYWlsLmNvbT4KIDxwb255LTU2YTNhZGVhZjYwYzQwNTk2ZmIyODRiMjQ1MjQxNDhmNjA1ZThkMjMtNTJkNDFjZDQwZjIzNDNjODk1Mjg4MGU4Zjg0ZGEzZTgwZDMzNTUwOUBkZXYubWF2ZW4uYXBhY2hlLm9yZz4KIDxDQStuUG5NeVMycTF1ZmFXK1M2c21oWloxSmN4aGY5aFk1LTNuQkotaUNXZWpQVUFEVkFAbWFpbC5nbWFpbC5jb20+CiA8MjA1Nzk0OC5rMUd5Zmp1R1hkQGdpZ2E+IDxDQStuUG5Nd2NvSEZadlVxV2lVc3lIQmhhTW1vU2NjeWRUQnN6U1hnc0d0Rj13TkdES3dAbWFpbC5nbWFpbC5jb20+CiA8Q0FLRFVOMXY1VHNGbitvLXZ2OEhoM1B1dkdYV2UrZlFuTStqd0RadCs9enR4c3BjZ2d3QG1haWwuZ21haWwuY29tPgogPENBK25Qbk15Y1RaZFh0QXVSYzIrLTBxREtFUExMSkhvR0o2SDhkWj1aeWtPYVh1VzNYUUBtYWlsLmdtYWlsLmNvbT4gPENBK25Qbk15TFoyREhtamlkeVI0ckxHX2trdnlmMnpKTTZfRitnZmJCZnpCdk5uNHFCUUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogPT9VVEYtOD9RP0FybmF1ZF9IPUMzPUE5cml0aWVyPz0gPGFoZXJpdGllckBhcGFjaGUub3JnPgpEYXRlOiBXZWQsIDEzIFNlcCAyMDE3IDE0OjE5OjU5ICswMjAwClgtR21haWwtT3JpZ2luYWwtTWVzc2FnZS1JRDogPENBRk5DVS04dkNwbWs1LURjWXc9UXRBN2NZOE9tZ1U5ZGoxaksxcTVyckdXSFJiNHBfZ0BtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JRDogPENBRk5DVS04dkNwbWs1LURjWXc9UXRBN2NZOE9tZ1U5ZGoxaksxcTVyckdXSFJiNHBfZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMQpUbzogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4sIE9sZWcgTmVuYXNoZXYgPG8udi5uZW5hc2hldkBnbWFpbC5jb20+CkNjOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwgT2xpdmllciBMYW15IDxvbGl2ZXIubGFteUBnbWFpbC5jb20+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDU3ODdjZWNlZmMxMDU1OTExMmUzYyIKCi0tMDAxYTExNDU3ODdjZWNlZmMxMDU1OTExMmUzYwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKRGFtbmVkLCBjYW4ndCB3ZSBiZSBhbm9ueW1vdXMgb24gR2l0aHViID8KSSBtYWludGFpbiBpdCBpcyBhIGJpZyB3b3JkLCBJJ20gdHJ5aW5nIHRvIGZpeCBtb3JlIGJ1Z3MgdGhhbiBJIGFkZCBuZXcgb25lcwpJIGFkZGVkIE9sZWcgaW4gdGhlIGxvb3AgYXMgaGUgY29udHJpYnV0ZWQgYSBsb3Qgb24gaXQgdG9vCkkgZGlkIGEgcXVpY2sgdGVzdCB0byBidWlsZCBvbiBKZW5raW5zIDIuNjAuMyBvdXIgbWF2ZW4gY29yZSB3aXRoIHRoZSBFdmlsCk1hdmVuIHBsdWdpbiAyLjE3IG9uIGEgbG9jYWwgU1NIIGFnZW50IGFuZCBpdCBpcyBvawpCdXQgaXQgaXMgcmVhbGx5IGEgcXVpY2sgdGVzdCAuLi4KCkNoZWVycwoKCgpPbiBXZWQsIFNlcCAxMywgMjAxNyBhdCAxMDowNyBBTSwgU3RlcGhlbiBDb25ub2xseSA8CnN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgoKPiBPbiAxMyBTZXB0ZW1iZXIgMjAxNyBhdCAwMTowNSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4KPj4gT24gMTMgU2VwdGVtYmVyIDIwMTcgYXQgMDA6MjYsIEFuZGVycyBIYW1tYXIgPGFuZGVyc0BoYW1tYXIubmV0PiB3cm90ZToKPj4KPj4+IE9uIFR1ZSwgU2VwIDEyLCAyMDE3IGF0IDg6NTQgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+Pj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4+Pgo+Pj4gPiBIYXZlIHdlIGdvdCBhbnkgZmVlZGJhY2sgZnJvbSB0aGUgZW1iZWRkZXIgaW50ZWdyYXRpb25zIHlldD8KPj4+ID4KPj4+Cj4+PiBJIGhhdmVuJ3QgaGVhcmQgYW55dGhpbmcgZnJvbSB0aGUgbTJlIHBlb3BsZS4gTWF5YmUgd2UgbmVlZCB0byBwaW5nIHRoZW0KPj4+IGRpcmVjdGx5LiBJIGNhbiBjb250YWN0IEZyZWQgQnJpY29uLgo+Pj4KPj4+IC9BbmRlcnMKPj4+Cj4+Pgo+PiBQbGVhc2UgZG8sIGFsc28gaWYgYW55b25lIGhhcyBhIGNvbnRhY3QgaW4gbmV0YmVhbnMgb3IgaW50ZWxsaWogYW5kIGNvdWxkCj4+IGxldCB0aGVtIGtub3cgd2UnZCBsaWtlIGVpdGhlciBmZWVkYmFjayBvciAid2UncmUgb2sgaWYgTU5HLTYyNzUgbWFrZXMKPj4gdHJvdWJsZSBmb3IgdXMsIGdvIGFoZWFkIGFuZCByZWxlYXNlIi4gSSdkIGxpa2UgdG8gY2xvc2UgdGhlIHZvdGUgb24gRnJpZGF5Cj4+IDEzOjAwIFVUQy4KPj4KPj4KPgo+IE9saXZpZXIgLyBBcm5hdWQsIGhhdmUgZWl0aGVyIG9mIHlvdSBoYWQgYSBjaGFuY2UgdG8gdGVzdCB0aGlzIHdpdGggdGhlCj4gZXZpbCBwcm9qZWN0IHR5cGVbMV0gYXMgeW91IHR3byBzZWVtIHRvIGJlIHRoZSBhY3RpdmUgbWFpbnRhaW5lcnNbMl0KPgo+IFsxXTogaHR0cHM6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90LmllLzIwMTMvMTEvamVua2lucy0KPiBtYXZlbi1qb2ItdHlwZS1jb25zaWRlcmVkLWV2aWwuaHRtbAo+IFsyXTogaHR0cHM6Ly9naXRodWIuY29tL2plbmtpbnNjaS9tYXZlbi1wbHVnaW4vY29tbWl0cy9tYXN0ZXIKPgoKCgotLSAKCkFybmF1ZAoKLS0wMDFhMTE0NTc4N2NlY2VmYzEwNTU5MTEyZTNjLS0KCkZyb20gZGV2LXJldHVybi0xMjQzMTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIE9jdCAyMyAwODozNTowMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzMTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOTQzRTYxMDE3MwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDIzIE9jdCAyMDE3IDA4OjM1OjAxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODUxNDcgaW52b2tlZCBieSB1aWQgNTAwKTsgMjMgT2N0IDIwMTcgMDg6MzU6MDEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg1MDYyIGludm9rZWQgYnkgdWlkIDUwMCk7IDIzIE9jdCAyMDE3IDA4OjM1OjAxIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODUwNTAgaW52b2tlZCBieSB1aWQgOTkpOyAyMyBPY3QgMjAxNyAwODozNTowMCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMjMgT2N0IDIwMTcgMDg6MzU6MDAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBGMkJCRjFBMTAzRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMjMgT2N0IDIwMTcgMDg6MzQ6NTkgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjU5OQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjU5OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUZSRUVNQUlMX1JFUExZPTEsIEhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBId1IxVUhxSlVORFkgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sIDIzIE9jdCAyMDE3IDA4OjM0OjU2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtdmswLWY0NC5nb29nbGUuY29tIChtYWlsLXZrMC1mNDQuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxMy40NF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA1QzI2MTVGMjM5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAyMyBPY3QgMjAxNyAwODozNDo1NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC12azAtZjQ0Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGQxMnNvMTA2MzMyMDV2a2YuMQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDIzIE9jdCAyMDE3IDAxOjM0OjU2IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPVI0KzZBazdwTFBldVRRWUlnWE1Samhmcm1PWWNYaExGbURmRFdRSlcvelk9OwogICAgICAgIGI9UnVSN2lEQjVJTDJtOGpjUm9zd09sQzc4ckgveUROcFdqYVJzZCtKbk9CZlh2bGxsNWpjQkQ3d3NNd0ZwT2RKazNXCiAgICAgICAgIE1EaU9GRW1XQWZDQi93Z1JBZzBZYks2aTRESlFvSE1GR2lRT2l6ajZSU1VMU1l5Q0k0T2tDU3crMGc2emtENFVtaHpvCiAgICAgICAgIGxodE9RRS9jSE4rRUp4R1BuY2pGUW15cldjUFhldiswRG5rcmZYWENhYmFzdEVGK3JKU3phNTVuWGh0b2dKU0JiVGdVCiAgICAgICAgIGZUQXBzOWZCREZ2dXIwRXI0dFYzZXhFeFRBRWZMTHJzVGpwUE1xVDJKbDJtT2dZYVFxdWNaTTdjL0JuWFBvUERNUlVDCiAgICAgICAgIEFBb1JtYm9XOWxKdU55ZVZoU21PUWM1UmtYZlJURGNMYXgyM1M2VnBKQTVvUDBLOHFFU0NEWlphQlRLRWdseHBLR1RnCiAgICAgICAgIDBqb1E9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPVI0KzZBazdwTFBldVRRWUlnWE1Samhmcm1PWWNYaExGbURmRFdRSlcvelk9OwogICAgICAgIGI9WFFEQVFoazRIOGFVeDhWcTg3TUNmbUZ5UHNIbmozR0pCRGlPN2hqNTNyQ1R6aENsSEtHeXZqVEN5OHdpcjRjTGZpCiAgICAgICAgIFNnd2R0NnFYQ0FDQ2tiYTY1T1JOMURkY1daaVRGWE1mZmNrMzgxREVZZzEyR1RwRlU3WlhuZlZvZkQzUXBVaWpDdlprCiAgICAgICAgIGhEN1FIeTdvWGxSbTRGOFF5Y0UvYWdudkJXU2lid2JKTE9LYUorNjk2a2VxNVNVNytHRk8yWWRJMmM2UVQ5WTBwc3lFCiAgICAgICAgIDgwRzh0L3d5YVEvaGoydDBsc29yUVFVZ3N3VFF3NndYaFZ4eEpYOFJWRHJEc0VDTThqTVNGTFI0dkp3bnFOZnBZUE5kCiAgICAgICAgIDBVSFNEZDBrYVAzN0lyeUovWmk2dmxESUo4c3gxY3BLb2tYa3ZINVdQUCtFNmE0VWthWi80UDNjWGlrMTFTQTNIeGc1CiAgICAgICAgIDdKeFE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVZwM2xvbHhKNGcwVHgvZG8vd09mSTI5eEwyRVZ0cUZCdzZWTzRnSDh2Sy84L2JHdmdqCglvQzBockkyci9kOGpnTjlnR3ZMdU1rZEt6SU44a01uN1R4Mmx3UE4yY3c9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArUUFqZGZxVVRIbm4wZUpxZjZoODczUnRWMUd1dWY2a3p1WFVGWFZSSmloLzB5SWU5WWxPdnZWRlJKaDBoWjlHYmliSUo1RWdkYUFQUzJrVTlKaUdGMD0KWC1SZWNlaXZlZDogYnkgMTAuMzEuNS4xOTggd2l0aCBTTVRQIGlkIDE4OW1yOTE3MTYyN3ZrZi42My4xNTA4NzQ3Njg5OTU4OyBNb24sCiAyMyBPY3QgMjAxNyAwMTozNDo0OSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTc2LjkwLjM4IHdpdGggSFRUUDsgTW9uLCAyMyBPY3QgMjAxNyAwMTozNDoyOSAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPDE1MDg3MzI5OC5uVUNsZ1JuOXFkQGdpZ2E+ClJlZmVyZW5jZXM6IDwzMDA2NDcxLkdyU0ZqU0pqR1hAZ2lnYT4gPENBRk5DVS05R05kditpdU53ZVRDQXZkR0c4NWpVNWpkSitYblhNcFp1bkU9dXdxeXdqd0BtYWlsLmdtYWlsLmNvbT4KIDxDQVBveUJxU0tNc2YrYUZVa3pPUWFZPW1wUyswWVBkb3NHQVp6eHY9cm5yaW5MQm5aOWdAbWFpbC5nbWFpbC5jb20+IDwxNTA4NzMyOTgublVDbGdSbjlxZEBnaWdhPgpGcm9tOiA9P1VURi04P1E/QXJuYXVkX0g9QzM9QTlyaXRpZXI/PSA8YWhlcml0aWVyQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAyMyBPY3QgMjAxNyAxMDozNDoyOSArMDIwMApNZXNzYWdlLUlEOiA8Q0FGTkNVLTkzMUJnXy1uWW1kVVRNTk56VG9NaWktK1R6T0t0eTdlQjZQajFiSk1yOVhBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogbWlncmF0aW5nIHNvbWUgY29kZSB0byBHaXQKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDNkNWFlMWRhNTI3MDU1YzMyYjI2MiIKCi0tMDAxYTExNDNkNWFlMWRhNTI3MDU1YzMyYjI2MgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpJIGNhbiBoZWxwIHlvdSBvbiB0aGlzCgpPbiBNb24sIE9jdCAyMywgMjAxNyBhdCAxMjoxNSBBTSwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI9Cj4Kd3JvdGU6Cgo+IEknbSBoYXBweSB0byBkbyB3aGF0IEknbSBhYmxlIHRvIGRvCj4KPiBmb3IgdGhlIG5leHQgb25lcywgSSBmZWFyIEkgZG9uJ3Qga25vdyBob3cgdG8gcHJlcGFyZSB0YXJnZXQgZ2l0IHJlcG9zOgo+IEknbGwKPiBuZWVkIGhlbHAKPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUMzPUE5Cj4KPiBMZSBkaW1hbmNoZSAyMiBvY3RvYnJlIDIwMTcsIDIzOjI2OjQ0IENFU1QgT2xpdmllciBMYW15IGEgPUMzPUE5Y3JpdCA6Cj4gPiBHcmVhdCEKPiA+IFRoYW5rcyB0byB0YWtlIGNhcmUgb2YgdGhpcyEKPiA+Cj4gPiBPbiBNb24sIDIzIE9jdCAyMDE3IGF0IDc6MDAgYW0sIEFybmF1ZCBIPUMzPUE5cml0aWVyIDxhaGVyaXRpZXJAZ21haWwuYz0Kb20+Cj4gd3JvdGU6Cj4gPiA+IEF3ZXNvbWUgIQo+ID4gPgo+ID4gPiBPbiBTdW4sIE9jdCAyMiwgMjAxNyBhdCAxMjowMCBQTSwgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3I9CmcKPiA+Cj4gPiA+Cj4gPiA+IHdyb3RlOgo+ID4gPiA+IEdyZWF0IGpvYiwgdGhhbmsgeW91IGFsbCEKPiA+ID4gPgo+ID4gPiA+IFJvYmVydAo+ID4gPiA+Cj4gPiA+ID4KPiA+ID4gPiBPbiBTdW4sIDIyIE9jdCAyMDE3IDExOjQ1OjAyICswMjAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcgo+ID4gPiA+Cj4gPiA+ID4gd3JvdGU6Cj4gPiA+ID4KPiA+ID4gPiBtaWdyYXRpb24gZG9uZTogb25seSByZW1haW5pbmcgdGFzayBpcyB0byByZW5hbWUgInRydW5rIiBIRUFEIGJyYW5jPQpoCj4gPiA+ID4KPiA+ID4gPj4gaW5oZXJpdGVkCj4gPiA+ID4+IGZyb20gc3ZuIGhpc3RvcnkgdG8gIm1hc3RlciIgKGFuZCBldmVudHVhbGx5IGFkZCBhIE1PVkVEX1RPX0dJVAo+IGZpbGUgaW4KPiA+ID4gPj4gb3JpZ2luCj4gPiA+ID4+IHN2bikKPiA+ID4gPj4KPiA+ID4gPj4gVGhlIEFwYWNoZSBnaXQgaG9zdGluZyBwcm92aWRlZCBpcyBHaXRCb3gsIHVubGlrZSBwcmV2aW91cyBjb21wb25lPQpudAo+ID4gPgo+ID4gPiB0aGF0Cj4gPiA+Cj4gPiA+ID4+IHVzZQo+ID4gPiA+PiBHaXQtV2lwOiB3aXRoIEdpdEJveCwgdGhlIGNvbnRlbnQgaXMgbW9kaWZpYWJsZSBib3RoIGF0IEFTRiBnaXQgcmU9CnBvCj4gPiA+ID4+IGFuZAo+ID4gPiA+PiBHaXRIdWIKPiA+ID4gPj4gbWlycm9yCj4gPiA+ID4+IFlvdSdsbCBuZWVkIHNvbWUgY29uZmlnIG9uIHlvdXIgc2lkZSBpZiB5b3Ugd2FudCB0byBiZSBhYmxlIHRvIHB1cz0KaAo+ID4gPiA+PiBkaXJlY3RseSB0bwo+ID4gPiA+PiBHaXRIdWI6IHNlZSBodHRwczovL2dpdGJveC5hcGFjaGUub3JnL3NldHVwLwo+ID4gPiA+Pgo+ID4gPiA+PiBUaGFua3MgdG8gaW5mcmEgQ2hyaXMgTGFtYmVydHVzIGZvciBkb2luZyB0aGUgam9iIGZvciB1cwo+ID4gPiA+Pgo+ID4gPiA+PiBSZWdhcmRzLAo+ID4gPiA+Pgo+ID4gPiA+PiBIZXJ2PUMzPUE5Cj4gPiA+ID4+Cj4gPiA+ID4+IExlIG1hcmRpIDEwIG9jdG9icmUgMjAxNywgMTg6NDI6MjYgQ0VTVCBIZXJ2PUMzPUE5IEJPVVRFTVkgYSA9QzM9Cj1BOWNyaXQgOgo+ID4gPiA+Pj4gamlyYSBpc3N1ZSBjcmVhdGVkOgo+ID4gPiA+Pj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9JTkZSQS0xNTI1Mwo+ID4gPiA+Pj4KPiA+ID4gPj4+IFJlZ2FyZHMsCj4gPiA+ID4+Pgo+ID4gPiA+Pj4gSGVydj1DMz1BOQo+ID4gPiA+Pj4KPiA+ID4gPj4+IExlIHNhbWVkaSA3IG9jdG9icmUgMjAxNywgMTI6MzI6MDAgQ0VTVCBIZXJ2PUMzPUE5IEJPVVRFTVkgYSA9QzM9Cj1BOWNyaXQgOgo+ID4gPiA+Pj4gPiBJIHdyb3RlIGEgbGl0dGxlIHNoZWxsIHNjcmlwdCB0byBjaGVjayBkaWZmZXJlbmNlcyBiZXR3ZWVuIHRhZ3MKPiBpbgo+ID4gPgo+ID4gPiBzdm4KPiA+ID4KPiA+ID4gPj4+IGFuZAo+ID4gPiA+Pj4KPiA+ID4gPj4+ID4gZ2l0IGNoZWNrb3V0Cj4gPiA+ID4+PiA+IHRoZSBvbmx5IGRpZmZlcmVuY2VzIEkgZm91bmQgZm9yIHRoZSA2IGdpdCByZXBvcyBhcmU6Cj4gPiA+ID4+PiA+IDEuIGVtcHR5IGRpcnMgKHdoaWNoIGV4aXN0IGluIHN2biBidXQgYXJlIHBydW5lZCBpbiBnaXQpCj4gPiA+ID4+PiA+IDIuIG9uZSBzdHJhZ2UgY2FzZSBpbiBlbmZvcmNlci0xLjIgd2hlcmUgYSBmZXcgZmlsZXMgc2VlbSB0byBoYT0KdmUKPiA+ID4gPj4+Cj4gPiA+ID4+PiBuZXdsaW5lcwo+ID4gPiA+Pj4KPiA+ID4gPj4+ID4gaXNzdWVzCj4gPiA+ID4+PiA+Cj4gPiA+ID4+PiA+IHRvIG1lLCB0aGlzIGNhbiBiZSBzYWZlbHkgaWdub3JlZAo+ID4gPiA+Pj4gPgo+ID4gPiA+Pj4gPiBpZiBub2JvZHkgb2JqZWN0cywgaW4gNzJoLCBJJ2xsIGNyZWF0ZSBJTkZSQSBqaXJhIGlzc3VlIHRvIHN3aXQ9CmNoCj4gPiA+ID4+PiA+IGZvbGxvd2luZwo+ID4gPiA+Pj4gPiA2IGNvbXBvbmVudHMgZnJvbSBzdm4gdG8gdGhlIGN1cnJlbnQgZ2l0IG1pcnJvcjoKPiA+ID4gPj4+ID4gLSBEb3hpYSBjb3JlCj4gPiA+ID4+PiA+IC0gRG94aWEgU2l0ZXRvb2xzCj4gPiA+ID4+PiA+IC0gRW5mb3JjZXIKPiA+ID4gPj4+ID4gLSBKeHIKPiA+ID4gPj4+ID4gLSBQbHVnaW4gVG9vbHMKPiA+ID4gPj4+ID4gLSBSZWxlYXNlCj4gPiA+ID4+PiA+Cj4gPiA+ID4+PiA+Cj4gPiA+ID4+PiA+IFJlZ2FyZHMsCj4gPiA+ID4+PiA+Cj4gPiA+ID4+PiA+IEhlcnY9QzM9QTkKPiA+ID4gPj4+ID4KPiA+ID4gPj4+ID4gTGUgc2FtZWRpIDcgb2N0b2JyZSAyMDE3LCAwNDo0NzozMiBDRVNUIEhlcnY9QzM9QTkgQk9VVEVNWSBhID0KPUMzPUE5Y3JpdCA6Cj4gPiA+ID4+PiA+ID4gcmUtcmVhZGluZyBvdXIgbWlncmF0aW9uIHByb2Nlc3MgZG9jdW1lbnRhdGlvbiBbMV0sIEkgc2VlCj4gImNoZWNrCj4gPiA+ID4+PiA+ID4gZXNwZWNpYWxseQo+ID4gPiA+Pj4gPiA+IGJlaGF2aW91ciBvbiBjaGVja2luZyBvdXQgdGFnIgo+ID4gPiA+Pj4gPiA+Cj4gPiA+ID4+PiA+ID4gSSBzdXBwb3NlIHRoYXQgd2UgY291bGQgY29tcGFyZSBjb250ZW50IGJldHdlZW4gZ2l0IGNoZWNrb3V0Cj4gYW5kCj4gPiA+Cj4gPiA+IHN2bgo+ID4gPgo+ID4gPiA+Pj4gPiA+IGNoZWNrb3V0IGZvciBIRUFEIGFuZCBldmVyeSBwYXN0IHJlbGVhc2UKPiA+ID4gPj4+ID4gPgo+ID4gPiA+Pj4gPiA+IGRpZCBzb21lYm9keSBwcmVwYXJlIGEgc2hlbGwgc2NyaXB0IGZvciB0aGF0Pwo+ID4gPiA+Pj4gPiA+Cj4gPiA+ID4+PiA+ID4gUmVnYXJkcywKPiA+ID4gPj4+ID4gPgo+ID4gPiA+Pj4gPiA+IEhlcnY9QzM9QTkKPiA+ID4gPj4+ID4gPgo+ID4gPiA+Pj4gPiA+IFsxXSBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL0dpdAo+ID4gPiA+Pj4gPiA+ICtNaWdyYXRpb24jR2l0TWlncmF0aW9uLU1pZ3JhdGlvbnByb2Nlc3NkZXNjcmlwdGlvbgo+ID4gPiA+Pj4gPiA+Cj4gPiA+ID4+PiA+ID4gTGUgdmVuZHJlZGkgNiBvY3RvYnJlIDIwMTcsIDAwOjM0OjExIENFU1QgSGVydj1DMz1BOSBCT1VURU1ZID0KYQo+ID1DMz1BOWNyaXQgOgo+ID4gPiA+Pj4gPiA+ID4gZ3JlYXQsIHRoYW5rIHlvdSBmb3IgeW91ciBoZWxwCj4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+Pj4gPiA+ID4gaW4gZmFjdCwgQUZBSUssIEFwYWNoZSBoYXMgYWxyZWFkeSBhdXRvbWF0aWMgc3ZuMmdpdCBleHBvcnQ9CnMKPiBbMV0KPiA+ID4gPj4+Cj4gPiA+ID4+PiB0aGF0Cj4gPiA+ID4+Pgo+ID4gPiA+Pj4gPiA+ID4gYXJlCj4gPiA+ID4+PiA+ID4gPiB0aGVuIG1pcnJvcmVkIHRvIGdpdGh1Yi4KPiA+ID4gPj4+ID4gPiA+IFRoZW4gd2UgYWxyZWFkeSBoYXZlOgo+ID4gPiA+Pj4gPiA+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRveGlhLwo+ID4gPiA+Pj4gPiA+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRveGlhLXNpdGV0b29scy8KPiA+ID4gPj4+ID4gPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1lbmZvcmNlci8KPiA+ID4gPj4+ID4gPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1qeHIvCj4gPiA+ID4+PiA+ID4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2luLXRvb2xzLwo+ID4gPiA+Pj4gPiA+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXJlbGVhc2UvCj4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+Pj4gPiA+ID4gSSBzdXBwb3NlIHRoZXNlIGNvdWxkIGJlIHRoZSBuYXR1cmFsIHRhcmdldHMuCj4gPiA+ID4+PiA+ID4gPiBCdXQgSSBkb24ndCByZWFsbHkgc2VlIHdoYXQgY2hlY2tzIHRvIGRvIG9uIHRoZXNlLgo+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPj4+ID4gPiA+IEkgc3VwcG9zZSB0aGF0IG9uY2Ugd2UgYXJlIGNvbnZpbmNlZCB0aGlzIGNvbnRlbnQgaXMgb2ssIHdlCj4gY2FuCj4gPiA+Cj4gPiA+IGFzawo+ID4gPgo+ID4gPiA+Pj4gPiA+ID4gaW5mcmEKPiA+ID4gPj4+ID4gPiA+IHRvIHN3aXRjaCB0aGVzZSB0byB0aGUgY2Fub25pY2FsIHNvdXJjZSAoYW5kIGRpc2FibGUgdGhlCj4gc3ZuMmdpdAo+ID4gPiA+Pj4gPiA+ID4gZXhwb3J0cykKPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4+PiA+ID4gPiBEbyB5b3Ugc2VlIGFueSBpc3N1ZSBpbiB0aGVzZSByZXBvcz8KPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4+PiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPj4+ID4gPiA+IEhlcnY9QzM9QTkKPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4+PiA+ID4gPiBbMV0gaHR0cDovL2dpdC5hcGFjaGUub3JnLwo+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPj4+ID4gPiA+IExlIGpldWRpIDUgb2N0b2JyZSAyMDE3LCAxMTo0NToyMyBDRVNUIERlamFuIFN0b2phZGlub3ZpYyBhCj4gPiA+Cj4gPiA+ID1DMz1BOWNyaXQgOgo+ID4gPiA+Pj4gPiA+ID4gPiBDb3VudCBtZSBpbiAoZm9yIGJvdGggYWN0dWFsIG1pZ3JhdGlvbiBhbmQgcmVsYXRlZCB0YXNrcyk9Ci4KPiA+ID4gPj4+ID4gPiA+ID4KPiA+ID4gPj4+ID4gPiA+ID4gTXkgd2VhcG9uIG9mIGNob2ljZSBmb3IgU1ZOIC0tPj5HSVQgd291bGQgYmU6Cj4gPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9uaXJ2ZHJ1bS9zdm4yZ2l0IChJIG1hbmFnZWQgdG8gbW92ZQo+IGRvemVuCj4gPiA+Cj4gPiA+IG9mCj4gPiA+Cj4gPiA+ID4+PiA+ID4gPiA+IHJlcG9zCj4gPiA+ID4+PiA+ID4gPiA+IGZldwo+ID4gPiA+Pj4gPiA+ID4gPiB5ZWFycyBhZ28pLgo+ID4gPiA+Pj4gPiA+ID4gPgo+ID4gPiA+Pj4gPiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+Pj4gPiA+ID4gPiBEZWphbgo+ID4gPiA+Pj4gPiA+ID4gPgo+ID4gPiA+Pj4gPiA+ID4gPiBPbiAyMDE3LTEwLTA0IDAxOjQ4LCBIZXJ2PUMzPTgzPUMyPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXQ9CmVteUBmcmVlLmZyCj4gPgo+ID4gPiA+Pj4KPiA+ID4gPj4+IHdyb3RlOgo+ID4gPiA+Pj4gPiA+ID4gPiA+IEknZCBsaWtlIHRvIHdvcmsgb24gUGx1Z2luIFRvb2xzIHdpdGggZ2l0Cj4gPiA+ID4+PiA+ID4gPiA+ID4KPiA+ID4gPj4+ID4gPiA+ID4gPiBXaGlsZSBhdCBpdCwgbG9va2luZyBhdCBvdXIgcGxhbiBbMV0sIEkgc2VlIHdlIGhhdmUgYSBmPQpldwo+ID4gPgo+ID4gPiBvdGhlcgo+ID4gPgo+ID4gPiA+Pj4gPiA+ID4gPiA+IGNvbXBvbmVudHMKPiA+ID4gPj4+ID4gPiA+ID4gPiB0aGF0IGFyZSByZWFkeSB0byBtaWdyYXRlOgo+ID4gPiA+Pj4gPiA+ID4gPiA+IC0gRG94aWEgY29yZQo+ID4gPiA+Pj4gPiA+ID4gPiA+IC0gRG94aWEgU2l0ZXRvb2xzCj4gPiA+ID4+PiA+ID4gPiA+ID4gLSBFbmZvcmNlcgo+ID4gPiA+Pj4gPiA+ID4gPiA+IC0gSnhyCj4gPiA+ID4+PiA+ID4gPiA+ID4gLSBQbHVnaW4gVG9vbHMKPiA+ID4gPj4+ID4gPiA+ID4gPiAtIFJlbGVhc2UKPiA+ID4gPj4+ID4gPiA+ID4gPgo+ID4gPiA+Pj4gPiA+ID4gPiA+IFdoYXQgY2hlY2tzIGFyZSByZXF1aXJlZCBiZWZvcmUgc3dpdGNoaW5nIHRoZXNlIDYKPiA+ID4gPj4+ID4gPiA+ID4gPiBjb21wb25lbnRzPwo+ID4gPiA+Pj4gPiA+ID4gPiA+IEFueSB2b2x1bnRlZXI/Cj4gPiA+ID4+PiA+ID4gPiA+ID4KPiA+ID4gPj4+ID4gPiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+Pj4gPiA+ID4gPiA+Cj4gPiA+ID4+PiA+ID4gPiA+ID4gSGVydj1DMz04Mz1DMj1BOQo+ID4gPiA+Pj4gPiA+ID4gPiA+Cj4gPiA+ID4+PiA+ID4gPiA+ID4gWzFdCj4gPiA+ID4+PiA+ID4gPiA+ID4gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9HaXQrCj4gTWlncmF0Cj4gPiA+ID4+Pgo+ID4gPiA+Pj4gaW9uCj4gPiA+ID4+Pgo+ID4gPiA+Pj4gPiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiA+Pj4KPiA+ID4gPj4+IC0tLS0tLQo+ID4gPiA+Pj4KPiA+ID4gPj4+ID4gPiA+ID4gPiAtLQo+ID4gPiA+Pj4gPiA+ID4gPiA+IC0KPiA+ID4gPj4+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yPQpnCj4gPiA+ID4+PiA+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDoKPiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4+PiA+ID4gPiA+Cj4gPiA+ID4+PiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiA+Pj4KPiA+ID4gPj4+IC0tLS0tLS0tCj4gPiA+ID4+Pgo+ID4gPiA+Pj4gPiA+ID4gPiAtCj4gPiA+ID4+PiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4+PiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcj0KZwo+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPj4+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotCj4gPiA+ID4+Pgo+ID4gPiA+Pj4gLS0tLS0tLS0tCj4gPiA+ID4+Pgo+ID4gPiA+Pj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPj4+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPj4+ID4gPgo+ID4gPiA+Pj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiA+Pj4KPiA+ID4gPj4+IC0tLS0tLS0tLQo+ID4gPiA+Pj4KPiA+ID4gPj4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+Pj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPj4+ID4KPiA+ID4gPj4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0KPiA+ID4gPj4+ID4gLQo+ID4gPiA+Pj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+Pj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4+Pgo+ID4gPiA+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tCj4gPiA+ID4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+Pgo+ID4gPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtLS0tLS0tLS0KPiA+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+Cj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tCj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Cj4gPiA+IC0tCj4gPiA+IC0tLS0tCj4gPiA+IEFybmF1ZCBIPUMzPUE5cml0aWVyCj4gPiA+IGh0dHA6Ly9haGVyaXRpZXIubmV0Cj4gPiA+IE1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tCj4gPiA+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKPgo+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+CgoKLS09MjAKLS0tLS0KQXJuYXVkIEg9QzM9QTlyaXRpZXIKaHR0cDovL2FoZXJpdGllci5uZXQKTWFpbC9HVGFsazogYWhlcml0aWVyIEFUIGdtYWlsIERPVCBjb20KVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcgoKLS0wMDFhMTE0M2Q1YWUxZGE1MjcwNTVjMzJiMjYyLS0KCkZyb20gZGV2LXJldHVybi0xMjQ1NjAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE5vdiAyMSAxNDo0Njo1NiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1NjAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQTk0RjQxN0MwOAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDIxIE5vdiAyMDE3IDE0OjQ2OjU2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzcxMyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBOb3YgMjAxNyAxNDo0Njo1NiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzYzNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBOb3YgMjAxNyAxNDo0Njo1NiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc2MjEgaW52b2tlZCBieSB1aWQgOTkpOyAyMSBOb3YgMjAxNyAxNDo0Njo1NiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMjEgTm92IDIwMTcgMTQ6NDY6NTYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAyNTkwRDE4MDI3MgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjEgTm92IDIwMTcgMTQ6NDY6NTUgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjM3OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjM3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCAxbVZVRDJBSFZhOHggZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUdWUsIDIxIE5vdiAyMDE3IDE0OjQ2OjU0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtbGYwLWY0NC5nb29nbGUuY29tIChtYWlsLWxmMC1mNDQuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNS40NF0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBCNjcxRTVGQ0ZCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyMSBOb3YgMjAxNyAxNDo0Njo1MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1sZjAtZjQ0Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHg2OHNvMTQ0NTA5MzlsZmYuMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDIxIE5vdiAyMDE3IDA2OjQ2OjUzIC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPTlHN25EeHF0UHRTOVFQaEpvVExkNDQ2ZTk5d1NmbDBrMHNNa0g0eFNlQnc9OwogICAgICAgIGI9bDNta2FzNnRESEdzcm9rRUZaN0lrNnk4UTRJTC9DY05sMUJ0NTE2QjZDRE02enU3dnRtRUZlTXRmUkRRcWNnd1I0CiAgICAgICAgIE9iNXpYTXN6ZGU3cjJuUWczbmdhYjRYdHdQYkl2bUFFVUpXWjYrbEZuUTRLL3czdHFINjRxT0ZaVXlFN0Q1OXZIUXFtCiAgICAgICAgIDlRZUxBYWZ0T1lzNExBZHNpbm5EQTNvcHhRZ0dtRVgxRWk5R3c2M0QvcWo2SnYzeEJrc1VsaGFmQXVQdmRQajQweWJtCiAgICAgICAgIEQ5Z3NvK2ZjVEk0RGZ5Nkl1WFZYQ21SSXJvK29DWWkvR0VxZ3VvQzEzVnlOd0RaRzF2L1hiSUltOHZYaU9NSG81OFF6CiAgICAgICAgIEliVmxWZzZUVHAwZVBEUG1LWElrRXRNSy94MUFwYkxNRE82MGo2WUI5S3N2b2l4U2ZhWWJhL0x0czR5T3FmaFBZNWFJCiAgICAgICAgICt1cWc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPTlHN25EeHF0UHRTOVFQaEpvVExkNDQ2ZTk5d1NmbDBrMHNNa0g0eFNlQnc9OwogICAgICAgIGI9Q2J1MnYrOWVpT2UrWkFySmFnNmFsdTdISW13TDM3aGt4VTZaNS9vc2NRYXBmc2QxMWRxbDlQdzFrSzhNZTVld2l0CiAgICAgICAgIG9oMlFXaFAxL2tkNGNWMlNJcHNvNGJGWHZDVTliMk5TcnIwYys0N2FuN2dwblp3N2wrYm5iM1VHd3JGNmNpQ1NlaGdZCiAgICAgICAgIGxPaFlGaHNtajRsSlFUbFNPUEgyUzZFYldSY2c4RHF0bGZKOE4waXVlOUpYUzNoM09rRnNaWjNrQUlaaGVHWkE4dFNpCiAgICAgICAgIEtFSUpEeVNPWXBaVFRIWk1VeDlnTEpLSmcyMnlQZnV5S0NFT1VJYlhjUEdnTTF4cHpMLzczQ1R4VmliejFmSk1MOS91CiAgICAgICAgIDlpcDBoTWtYRUNoU0xmWWZ1dTQySkx6SEIrcnd5ZG9yZ09BOWZONmh4ckFnU3BYQ2ZhN0hxRVJXNjZCeVhaUGhvNGp1CiAgICAgICAgIFBxS3c9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDZNOXZQL1k5NnZiOW1oYjlPMVdXbmZoR3dBbC92QU04c0pKYmJDQTVNdjdqa2tMK1YyCgl2UzBsZDFiN2toa3cwWHlkN2dSdjZxaGFSLzdEK2RuOXN4aHRZT09OQlE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUdzNHpNYnpTNEhsUC9rd2xrRzRwUjZjVjhlUUNQTkNmbXY2OXhiSTZkb3R4TDNmYTZreVFTZ2ZjY0N0TmNIM3Z2MWM5Z3BRbWpLckVzYWpsU2FsSHFMODZjbz0KWC1SZWNlaXZlZDogYnkgMTAuNDYuNzcuMjYgd2l0aCBTTVRQIGlkIGEyNm1yNzA1NTg4MWxqYi4xNTUuMTUxMTI3NTYwNjgxNDsKIFR1ZSwgMjEgTm92IDIwMTcgMDY6NDY6NDYgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjI1LjgxLjg3IHdpdGggSFRUUDsgVHVlLCAyMSBOb3YgMjAxNyAwNjo0NjoyNiAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPENBK25Qbk16djBuOVYwPWpnNFNBY1BBMCtNbkRrRmdDRjhSdkpDejJKeTZZK3Q9RkRGZ0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk16djBuOVYwPWpnNFNBY1BBMCtNbkRrRmdDRjhSdkpDejJKeTZZK3Q9RkRGZ0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogPT9VVEYtOD9RP0FybmF1ZF9IPUMzPUE5cml0aWVyPz0gPGFoZXJpdGllckBnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMjEgTm92IDIwMTcgMTU6NDY6MjYgKzAxMDAKTWVzc2FnZS1JRDogPENBRk5DVS05MzJZR1JMUGJZdE50ckQ5MFAxLXVuYTBOTDM3NzZheHNvaz02dEREdGluUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IEZZSSBJTkZSQS0xNTUyNCBjcmVhdGVkIGZvciB0aGUgYmV0dGVyIEplbmtpbnMgVVgKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iOTRlYjJjMWFhOWIwYjNiNTY2MDU1ZTdmNDU5ZCIKCi0tOTRlYjJjMWFhOWIwYjNiNTY2MDU1ZTdmNDU5ZApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgp5ZWFoICEhCgpPbiBUdWUsIE5vdiAyMSwgMjAxNyBhdCAyOjEwIFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvSU5GUkEtMTU1MjQKPgo+IEhlcnY9QzM9QTkgaXQgaXMgbmVhcmx5IHRpbWUgdG8gcGFydHkhCj4KCgoKLS09MjAKLS0tLS0KQXJuYXVkIEg9QzM9QTlyaXRpZXIKaHR0cDovL2FoZXJpdGllci5uZXQKTWFpbC9HVGFsazogYWhlcml0aWVyIEFUIGdtYWlsIERPVCBjb20KVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcgoKLS05NGViMmMxYWE5YjBiM2I1NjYwNTVlN2Y0NTlkLS0KCkZyb20gZGV2LXJldHVybi0xMjQxNzQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE9jdCAgNyAyMDoyMTowMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxNzQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMTg2QzMxMDY2NgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDIwOjIxOjAxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjU3ODAgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBPY3QgMjAxNyAyMDoyMTowMCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjU3MTcgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBPY3QgMjAxNyAyMDoyMTowMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI1NzA1IGludm9rZWQgYnkgdWlkIDk5KTsgNyBPY3QgMjAxNyAyMDoyMTowMCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDcgT2N0IDIwMTcgMjA6MjE6MDAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBBQzVCQzFBM0Y2NwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMjA6MjA6NTggKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjA5OQpYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuMDk5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJRlJFRU1BSUxfUkVQTFk9MSwgSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgVmxuQnRFLTN0S0FFIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAgNyBPY3QgMjAxNyAyMDoyMDo1NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXVhMC1mMTc1Lmdvb2dsZS5jb20gKG1haWwtdWEwLWYxNzUuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNy4xNzVdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMzA2RjU1RjFCQQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMjA6MjA6NTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdWEwLWYxNzUuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgbjM4c282MTE5NzM4dWFpLjExCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMDcgT2N0IDIwMTcgMTM6MjA6NTQgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Y3p1MmNMOUtDNGtTVzdTZW4wYWUrQ3NwZ1N0NlhPUTVFL01kZDJEYWgzaz07CiAgICAgICAgYj1nVlJEZU1hUm02U2x6dVRXN001YzZ4eUdhUG9tWFg0WVM3SEdVaEJSd05xcUNmaFFyU0dWTkM4bnlTeWFkSzVYUlMKICAgICAgICAgYjdQa0plWnRlZWpheGlhR2k2UUNlWW5kS3FpS0x6VHFrcVVFQUxoSmFORTVqY3ZlMnM4WU42eDA1MXBQTjdWYnN4ZFUKICAgICAgICAgMVN4OTluTXkxbEk4a29oWFdqWE1vZGpZMUpZeE1kZzIyY2w3VVYwWUgrSXFGMDZUbFBkcWdCOXBqQk1DZnd1UENtcDUKICAgICAgICAgNExEL2hLQmovcjZaYy9JdnQ1T2xTV1FyeXJmZkdrdXFsbUdpYXFpcllVZThZMlBKK0NrbmZ2VTBtUXNGSU5mdjRveHYKICAgICAgICAgM1hQV0lDOGR1RFFIVDZIUDljVmduZndqYkxFY3E2bVU2RHlqa1ZaQm55QkxxNWtQem45U2NBMWxiN3E1YVNXN0ZOdkkKICAgICAgICAgbGJWdz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Y3p1MmNMOUtDNGtTVzdTZW4wYWUrQ3NwZ1N0NlhPUTVFL01kZDJEYWgzaz07CiAgICAgICAgYj1XRzVYR0kzVVFqYkJ2SGh3YVlobVN1N2JBTWVHN2JVU29RRDFwVE9xSzlvNXY1bEYvbG1IMFdBWndneW02K1NyYk0KICAgICAgICAgV0R2Z0NJbVJLZnRkcGlxejRVQkRoTGV1VHpMd3hnUVFpb2F3ZmRoUGZaZDRjTHVWMDJzWTE2V2RpTWp3TUJEZ2JrS0MKICAgICAgICAgY0RuMVliU2lTOVVFcE5jaWVFaUpLc1VnR2tSU0dlcDgvVUkySmUxUlNXVHN4NENiaVpxV1k5ZXRhOGhVOGhML3FUQWYKICAgICAgICAgK2Nia0hOU09mS2crRWYrbjcxN1VpQ0Z4RE1DcGE0SSt2RE1uQ05sUE5pdTJiQlgrZ2FuYm1MamxVcVBneVhidzFQV28KICAgICAgICAgNnhZdi95YnIzNGU4WjJPRlVoZm1HcGNwYlhaZThmbjZGYlRQWUhVSWp1aHMzUWZzandIVnM3SHgxRHNWbVJoUVV2WTAKICAgICAgICAgQVNKdz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhV3l6Z2dQWlA4cjZaMUhZTzB5S1hTbnNsNExNNmxjT3Y0KzZsV0pwUUtBNy9hMWkvd3oKCWNzMDJJODVNd3piYno0VG5zODBUZkliWkFzeTF2dGRaU0xOeUZ6NHZyaFNjClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FCTi9URHRqYXBrZ09MUElxcTl2bmlHamxSUHEvWjBReGpJMml2T3VPNWZjMFVCSmZvNERJc1hOLzV5a0RJQzMrMGRtZkV5SXpmd0l6S2RiWWoxTDRnPQpYLVJlY2VpdmVkOiBieSAxMC4xNzYuOTEuMTggd2l0aCBTTVRQIGlkIHUxOG1yMzEwMTk5NXVhZS43Ny4xNTA3NDA3NjQ3NjgwOwogU2F0LCAwNyBPY3QgMjAxNyAxMzoyMDo0NyAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTc2Ljg1LjEzNiB3aXRoIEhUVFA7IFNhdCwgNyBPY3QgMjAxNyAxMzoyMDoyNyAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPENBS3VWekJSMncrZms1UzN1bkJRUjdCNTRlVTgwQ1FRYUM2NHV5WTVYTkVDSG9TSDZHZ0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPDEwNTQ0NjE1LkI0aE8zUG52RXpAZ2lnYT4gPDIwMTQyNjMuOWk3bGNBM2pMeUBnaWdhPgogPENBS3VWekJSTkNER2hBd0VuRzVuU2hyQ3dXPWIzT1pSY0VFZSs3ZkZNZVpuY0ZPYzZqd0BtYWlsLmdtYWlsLmNvbT4KIDwyMTg3MDI5LkszNEUxN000am5AZ2lnYT4gPENBS3VWekJRTVcwOUdhUzI3WHEwQ2JKenFkTFZKN3Jra1ZTSE44cTZQMmFWMXZ3Vz1Hd0BtYWlsLmdtYWlsLmNvbT4KIDxDQUt1VnpCUlBvdXZGMlY1d2Z4WHJiQ1JjY3VLdmNaaEJETjNnQ2pyTFBiMFNKZ290SkFAbWFpbC5nbWFpbC5jb20+IDxDQUt1VnpCUjJ3K2ZrNVMzdW5CUVI3QjU0ZVU4MENRUWFDNjR1eVk1WE5FQ0hvU0g2R2dAbWFpbC5nbWFpbC5jb20+CkZyb206ID0/VVRGLTg/UT9Bcm5hdWRfSD1DMz1BOXJpdGllcj89IDxhaGVyaXRpZXJAZ21haWwuY29tPgpEYXRlOiBTYXQsIDcgT2N0IDIwMTcgMjI6MjA6MjcgKzAyMDAKTWVzc2FnZS1JRDogPENBRk5DVS05OWJ1eVgrOVhrdWYzSGhFMlVxTktVV0E1V1I1RTc9TWlCPVBZd0IwT2RiUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IEplbmtpbnMgYW5kIE1hdmVuIDMuMC41IG9yIEpESyA3ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9ImY0MDMwNDVmOGIwYzVmMmQ4NTA1NWFmYWIxMDEiCgotLWY0MDMwNDVmOGIwYzVmMmQ4NTA1NWFmYWIxMDEKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKTm90aGluZyBhdm9pZHMgdG8gaGF2ZSBhIGJpZyBnaXQgcmVwbyB3aXRoIG1hbnkgaW5kZXBlbmRlbnQgcHJvamVjdHMgYnV0CnllcyBpdCB3aWxsIHRhZyBldmVyeXRoaW5nIGluIHRoZSByZXBvIChub3QgcmVhbGx5IGEgcHJvYmxlbSkuClNhbWUgdGhpbmcgd2hlbiB3ZSBjcmVhdGUgYSBicmFuY2guCgpUaWJvciBJIGRpZCBhIHNjcmlwdCBzaW1pbGFyIHRvIHlvdXJzIGluIHRoZSBwYXN0OgpodHRwczovL2dpc3QuZ2l0aHViLmNvbS9haGVyaXRpZXIvODgyNDE0OCAob2sgaXQgaXMgYSBiaXQgY29tcGxleCA6LSkgKQoKSSB0aGluayB3ZSBjYW4gdG9nZXRoZXIgY3JlYXRlIHN1Y2ggc2NyaXB0IHdpdGggb3VyIG93bgpjb25zdHJhaW50cy9wYXJhbWV0ZXJzCgpPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDM6NDggUE0sIFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4gd3JvdGU9CjoKCj4gSGVydmUsCj4gSSB0aGluayBtYWtpbmcgdGhlIHRhZyBhcyBJIHdhbnRlZCB3b3VsZCBub3QgYmUgcG9zc2libGUgaW4gZ2l0Lgo+Cj4gTGV0J3MgbWFrZSBpdCB3aXRoIGFsbCA3OCBwcm9qZWN0cy4KPiBJbiAyMDE2IEkgbWlncmF0ZWQgbXkgc3ZuIHByb2plY3QgImF1ZGl0IiBsb2NhdGVkIGluIHN1Yi1mb2xkZXIgYmVoaW5kCj4gdHJ1bmsgKHRydW5rL2xpYnMvYXVkaXQpIHRvIGdpdCB3aGljaCBpcyBleGFjdGx5IHdoYXQgd2UgbmVlZCB0byBkbyBpbiBBUz0KRi4KPgo+IEluIG91ciBjYXNlIHRoZSBjb21tYW5kcyB3b3VsZCBiZSA5OSUgdGhlIHNhbWUuIFRoZSAxJSBpcyB0aGUgc291cmNlIFNWTgo+IFVSTCBhbmQgdGFyZ2V0IEdpdEh1YiBVUkwuIFRoYXQncyBhbGwuIFRoZW4gaWYgd2UgcHJvdmlkZSBJTkZSQSB3aXRoIGJ1bmM9CmgKPiBvZiBjb21tYW5kcyBsaWtlIHRoZXNlIHRoZW4gdGhleSB3aWxsIG9ubHkgZXhlY3V0ZSB0aGVtIHdpdGggdGhlaXIKPiBwZXJtaXNzaW9ucy4KPiBJIGRvIG5vdCB0aGluayB0aGV5IHdpbGwgZ2l2ZSBtZSBhZG1pbiBwZXJtaXNzaW9ucyB0byBtYWtlIGl0Lgo+Cj4gZ2l0IHN2biBjbG9uZSAtLW5vLW1ldGFkYXRhIC0tYXV0aG9ycy1maWxlPTNERTpcKmF1dGhvcnMudHh0KiBodHRwOi8vCj4gKioqL3N2bi8qKiovKnRydW5rL2xpYnMvYXVkaXQgYXVkaXQqCj4gZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLm5hbWUgIioqKiAqKioiCj4gZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLmVtYWlsICIqKipAKioqLioqKiIKPiBnaXQgcmVtb3RlIGFkZCBvcmlnaW4gaHR0cHM6Ly8qKipAZ2l0aHViLmNvbS9hcGFjaGUvCj4gKm1hdmVuLWNsZWFuLXBsdWdpbiouZ2l0Cj4gZ2l0IHB1c2ggLXUgb3JpZ2luIC0tYWxsCj4KPiBJIG9ic2VydmVkIHRoZSAqYXV0aG9ycy50eHQqIGZyb20gY29tbWFuZAo+ICpzdm4gbG9nIC1xKgo+IEVhY2ggcGVyc29uIGZyb20gYmV0d2VlbiBmaXJzdCB0d28gcGlwZXMsIGUuZy46Cj4gcjEyMzQ1NjcgfCB0aWJvcmRpZ2FuYSB8IDIwMTUtMTAtMTkgMDI6MjA6MDAKPgo+IEV2ZXJ5IGRldmVsb3BlciBhZGRlZCBlLW1haWwgYW5kIGZ1bGwgbmFtZSwgaS5lLjoKPiB0aWJvcmRpZ2FuYSA9M0QgVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPgo+IGV0Yy4KPgo+IFRoaXMgbGlzdCBvZiB1c2VycyB3aGljaCBzaG91bGQgYmUgY3JlYXRlZCBpbiBwcmlvciB0byBjb250YWN0IElORlJBLgo+IE5vdCBhbGwgdXNlcnMgYXJlIGFjdGl2ZSBhZnRlciB5ZWFycyBidXQgaXQgd291bGQgYmUgbmljZSB0byBpbmNsdWRlIHRoZW0KPiB0b28uCj4gVGhpcyBsaXN0IG9mIHVzZXJzIGlzIG9uZSB0aGluZyB3aGljaCBjYW5ub3QgYmUgYXV0b21hdGVkIQo+Cj4KPgo+Cj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCAyOjQ4IFBNLCBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+Cj4gd3JvdGU6Cj4KPiA+IEluIG15IGNvbXBhbnkgSSBoYXZlIHN1Y2ggc2l0dWF0aW9uIGluIFNWTi4gTWFraW5nIGEgdGFnIGZyb20gc3ViZm9sZGVyPQouCj4gPiBHaXQgYWx3YXlzIG1ha2VzIHRoZSB0YWcgZnJvbSB0aGUgcm9vdCwgcmlnaHQ/Cj4gPiBMZXQncyBnb29nbGUgc29tZXRoaW5nLi4uCj4gPgo+ID4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCAyOjQ3IFBNLCBUaWJvciBEaWdhbmEgPAo+IHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbT4KPiA+IHdyb3RlOgo+ID4KPiA+PiBJbiBteSBjb21wYW55IEkgaGF2ZSBzdWNoIHNpdHVhdGlvbi4KPiA+PiBNYWtpbmcgYSB0YWcgZnJvbSBzdWJmb2xkZXIuCj4gPj4gR2l0IGFsd2F5cyBtYWtlcyB0aGUgdGFnIGZyb20gdGhlIHJvb3QsIHJpZ2h0Pwo+ID4+IExldCdzIGdvb2dsZSBzb21ldGhpbmcuLi4KPiA+Pgo+ID4+IE9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgMjowNSBQTSwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWU9Ci5mcj4KPiA+PiB3cm90ZToKPiA+Pgo+ID4+PiB0aGFua3MgZm9yIHlvdXIgaW50ZXJlc3QgYW5kIGZlZWRiYWNrCj4gPj4+Cj4gPj4+IExlIHNhbWVkaSA3IG9jdG9icmUgMjAxNywgMTI6MDA6MzIgQ0VTVCBUaWJvciBEaWdhbmEgYSA9QzM9QTljcml0IDoKPiA+Pj4gPiA3OCBpcyB0b28gbXVjaC4KPiA+Pj4gbm90aWNlIHRoYXQgdGhlcmUgd291bGQgYWxzbyBiZSBhIHF1ZXN0aW9uIG9uIHRoZSBnaXQgcmVwb3MgbmFtaW5nCj4gPj4+IGNvbnZlbnRpb24sCj4gPj4+IHRvIGF2b2lkIGZsYXQgNzggbmFtZXMgYnV0IGtlZXAgYXQgbGVhc3QgMyBtZWFuaW5nZnVsIGdyb3VwcyAocGx1Z2lucz0KLAo+ID4+PiBzaGFyZWQsCj4gPj4+IHJlc291cmNlczogSSB0aGluayB0aGlzIGlzIG5vdCBhYnNvbHV0ZWx5IG5lY2Vzc2FyeSBmb3IgZG94aWEtdG9vbHMpCj4gPj4+Cj4gPj4+ID4gVGhlcmUgaXMgbm8gcHJvYmxlbSB0byB0cmlnZ2VyIHJlbGVhc2Ugb3ZlciBzdWItZm9sZGVycyBhbmQgdGFnIGl0Cj4gd2l0aAo+ID4+PiA+IHByZWZpeCB3aGljaCBpcyBhbHJlYWR5IGRvbmUgaW4gU1ZOLgo+ID4+PiBpcyBpdCBzdXBwb3J0ZWQgYnkgbWF2ZW4tcmVsZWFzZSBwbHVnaW4gd2l0aCBnaXQ/Cj4gPj4+Cj4gPj4+IG5vdGljZSBJIGRpZCBub3Qga25vdyB0aGF0IGdpdCB3YXMgYWJsZSB0byB0YWcgb25seSBhIHN1YnRyZWU6IGJ1dCBJCj4gPj4+IGtuZXcgSQo+ID4+PiBkb24ndCB5ZXQgdW5kZXJzdGFuZCBldmVyeSBhc3BlY3Qgb2YgZ2l0IG1hZ2ljLi4uIDopCj4gPj4+Cj4gPj4+ID4gVGhlIENJIGJ1aWxkIGNhbiBhbHdheXMgdHJpZ2dlciB0aGUgcm9vdCBhbmQgSmVua2luc2ZpbGUgd291bGQgaGF2ZQo+IDQxCj4gPj4+ID4gc3RhZ2VzIGZvciBwbHVnaW5zLCAyNiBzdGFnZXMgZm9yIFNoYXJlZCwgZXRjLgo+ID4+PiA+IEl0IGNhbiBiZSBkb25lIGluIEplbmtpbnNmaWxlIGFuZCBzbyB0aGUgc2hlbGwgd291bGQgbm90IHRocm93Cj4gPj4+IGV4Y2VwdGlvbgo+ID4+PiA+IGJ1dCBzdGF0dXMgd291bGQgYmUgc2V0IGluc3RlYWQgYW5kIGdvZXMgdG8gdGhlIG5leHQgc3RhZ2UuCj4gPj4+ID4gSSBkbyBub3Qga25vdyBob3cgdG8gZGV0ZWN0IGluIEdpdFNDTSB3aGljaCBzdWItZm9sZGVyKHMpIHJlY2VpdmVkCj4gYnV0Cj4gPj4+IEkKPiA+Pj4gPiBndWVzcyB0aGlzIGNhbiBiZSBpbnZlc3RpZ2F0ZWQuCj4gPj4+ICsxCj4gPj4+IGJ1dCBJIGRvbid0IGtub3cgd2hlcmUgdG8gbG9vayBmb3IgbXlzZWxmOiBvbiB0aGF0IHBvaW50LCBJIGhvcGUgdG8KPiBoYXZlCj4gPj4+IHNvbWUKPiA+Pj4gaGVscCBmcm9tIEplbmtpbnNmaWxlIGV4cGVydHMKPiA+Pj4gYW5kIGV2ZW50dWFsbHkgc3RhcnQgd2l0aCBzdm4sIHRvIGhhdmUgc29tZXRoaW5nIGJlZm9yZSB0aGUgZ2l0Cj4gbWlncmF0aW9uCj4gPj4+Cj4gPj4+ID4gVGhlbiBpdCBjYW4gYmUgYSBraW5kIG9mIHN3aXRjaC1jYXNlIG92ZXIgY29tbWl0dGVkIGZvbGRlcnMgaW4KPiA+Pj4gSmVua2luc2ZpbGUuCj4gPj4+ID4gVGhpcyBtZWFucyB0aGF0IGV2ZXJ5IHRpbWUgYW5vdGhlciBzdGFnZS9zdWItZm9sZGVyIGlzIHNob3duIGluCj4gPj4+IFBpcGVsaW5lCj4gPj4+ID4gd2hpY2ggd2lsbCBiZSBtZXNzeSBpbiB0aGUgVUkuIDooCj4gPj4+IG5vdGljZSB0aGF0IHdlIGNhbiBwZXJoYXBzIHNwbGl0IHRoZSByZXBvcyBpbiBsZXNzIHBhcnRzIHRoYW4gd2UgaGF2ZQo+ID4+PiBjb21wb25lbnRzOiBvbiBwbHVnaW5zLCBmb3IgZXhhbXBsZSwgd2UgYWxyZWFkeSBoYXZlIDQgY2F0ZWdvcmllcyBbMV0KPiA+Pj4gd2hpY2gKPiA+Pj4gd291bGQgYXZvaWQgMSByZXBvIHdpdGggNDEgcGx1Z2lucywgYnV0IG1vcmUgc29tZXRoaW5nIGxpa2UgNisxMCsxMCsxPQo1Cj4gPj4+IEkgc3VwcG9zZSB3ZSBjb3VsZCBkbyB0aGUgc2FtZSBmb3Igc2hhcmVkIChyZXBvcnRpbmcgZm9sZGVyIGNvbWVzIHRvID0KbXkKPiA+Pj4gbWluZCkKPiA+Pj4KPiA+Pj4gVGhlIGtleSBmZWFzaWJpbGl0eSBpc3N1ZSBpcyB0aGUgY2FwYWNpdHkgdG8gcmVsZWFzZSBhIHN1Yi1jb21wb25lbnQKPiA+Pj4gZnJvbSBnaXQKPiA+Pj4gd2l0aCBtYXZlbi1yZWxlYXNlLXBsdWdpbiwgSU1ITwo+ID4+PiAodGFraW5nIGFwYXJ0IHRoZSBnaXQgcHVyaXN0cyBpZGVhIG9mIDEgbGlmZWN5Y2xlID0zRCAxIGdpdCByZXBvKQo+ID4+Pgo+ID4+PiBSZWdhcmRzLAo+ID4+Pgo+ID4+PiBIZXJ2PUMzPUE5Cj4gPj4+Cj4gPj4+Cj4gPj4+IFsxXSBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLwo+ID4+PiA+Cj4gPj4+ID4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCA0OjE3IEFNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZj0KcmVlLmZyCj4gPgo+ID4+PiB3cm90ZToKPiA+Pj4gPiA+IFRoZXJlIGFyZSA2IHN2biBsb2NhdGlvbnMgd2l0aG91dCBhbnkgc3BlY2lhbCBjb21wbGV4aXR5IHRoYXQgYXJlCj4gPj4+IHdhaXRpbmcKPiA+Pj4gPiA+IGZvcgo+ID4+PiA+ID4gYSB2b2x1bnRlZXIgZm9yIGdpdCBtaWdyYXRpb24gZm9yIGEgZmV3IHllYXJzIGJ1dCBub2JvZHkgZG9lcwo+ID4+PiBhbnl0aGluZwo+ID4+PiA+ID4gYWJvdXQ6Cj4gPj4+ID4gPiBJIHN0YXJ0ZWQgMyBkYXlzIGFnbyB0byBhc2sgZm9yIGhlbHAgYWJvdXQgaXQgYW5kIGdvdCBwcmV0dHkgbm8KPiA+Pj4gZmVlZGJhY2sKPiA+Pj4gPiA+IFsxXQo+ID4+PiA+ID4KPiA+Pj4gPiA+IHRoZW4gdGhlcmUgYXJlIHRoZSA0IGNvbXBsZXggc3ZuIGxvY2F0aW9ucyAocGx1Z2lucywgc2hhcmVkLAo+ID4+PiByZXNvdXJjZXMsCj4gPj4+ID4gPiBkb3hpYS0KPiA+Pj4gPiA+IHRvb2xzKSB0aGF0IHJlcXVpcmUgbXVjaCBtb3JlIHdvcms6IEkgc3VwcG9zZSB3ZSBjYW4ndCB0ZWxsIGdpdAo+ID4+PiBtaWdyYXRpb24KPiA+Pj4gPiA+IGlzCj4gPj4+ID4gPiBhYmFuZG9uZWQsIGJ1dCBpdCB3aWxsIHJlcXVpcmUgc29tZW9uZSB0byB3b3JrIG9uIGl0IHNlcmlvdXNseQo+ID4+PiA+ID4gUmVtZW1iZXIgdGhhdCB0aGUga2V5IHF1ZXN0aW9uIFsyXSBpczogZG8gd2UgdHJhbnNmb3JtIHRoZXNlIDQgc3Y9Cm4KPiA+Pj4gPiA+IGxvY2F0aW9ucwo+ID4+PiA+ID4gaW50byA0MSArMjYgKyA2ICsgNSA9M0QgNzggaW5kZXBlbmRlbnQgZ2l0IHJlcG9zPwo+ID4+PiA+ID4gWWVzLCBJIHRvbGQgdGhhdCBKZW5raW5zIGNvbmZpZ3VyYXRpb24gaXMgb25lIGtleSBhc3BlY3Qgd2UgbmVlZCA9CmEKPiA+Pj4gPiA+IHN0cmF0ZWd5Cj4gPj4+ID4gPiBhYm91dCwgaW4gcGFyYWxsZWwgd2l0aCBnaXQgc3RyYXRlZ3kuCj4gPj4+ID4gPgo+ID4+PiA+ID4gdGhlbiB0aGVyZSB3aWxsIGJlIHRoZSByZW1haW5pbmcgY2FzZXMgd2hlcmUgd2UgbmVlZCB0byBkZWNpZGU6Cj4gbG93ZXIKPiA+Pj4gPiA+IGltcGFjdCwKPiA+Pj4gPiA+IGxvd2VyIHByaW9yaXR5Lgo+ID4+PiA+ID4KPiA+Pj4gPiA+Cj4gPj4+ID4gPiBTdW1tYXJ5OiBub3RoaW5nIGlzIGFiYW5kb25lZCwgYnV0Ogo+ID4+PiA+ID4gLSBzaW1wbGUgY2FzZXM6IG5vIHZvbHVudGVlciB0byBkbyB0aGUgam9iCj4gPj4+ID4gPiAtIGhhcmQgY2FzZXM6IGlzIHRoZXJlIGEgdm9sdW50ZWVyIGVpdGhlciB0byBkZWZpbmUgYSBzdHJhdGVneSBvcgo+IGRvCj4gPj4+IHNvbWUKPiA+Pj4gPiA+IHdvcmsKPiA+Pj4gPiA+IG9uIGl0Pwo+ID4+PiA+ID4KPiA+Pj4gPiA+Cj4gPj4+ID4gPiBSZWdhcmRzLAo+ID4+PiA+ID4KPiA+Pj4gPiA+IEhlcnY9QzM9QTkKPiA+Pj4gPiA+Cj4gPj4+ID4gPiBbMV0gaHR0cHM6Ly9saXN0cy5hcGFjaGUub3JnL3RocmVhZC5odG1sLwo+ID4+PiA+ID4gZWRmMzY0MmE3YmRkNTE1ZjBjYWQ0MjFjMjU1ODk3NDE4MTk0NDY0NjM2MTRiZjA1MTVlNTZkYmVACj4gPj4+ID4gPiAlM0NkZXYubWF2ZW4uYXBhY2hlLm9yZyUzRQo+ID4+PiA+ID4KPiA+Pj4gPiA+IFsyXSBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL0dpdAo+ID4+PiA+ID4gK01pZ3JhdGlvbiNHaXRNaWdyYXRpb24tTWlncmF0aW5nYW5hZ2dyZWdhdG9ydHJlZWludG9hY29sbGVjCj4gPj4+IHRpb25vZmdpdHJlcG9zCj4gPj4+ID4gPgo+ID4+PiA+ID4gTGUgdmVuZHJlZGkgNiBvY3RvYnJlIDIwMTcsIDIwOjM1OjQ1IENFU1QgQXJuYXVkIEg9QzM9QTlyaXRpZXIgYSA9Cj1DMz1BOWNyaXQgOgo+ID4+PiA+ID4gPiBCdXQgZGlkIHdlIGNvbXBsZXRlbHkgYWJhbmRvbmVkIHRoZSBpZGVhIG9mIG1vdmluZyBldmVyeXRoaW5nIHQ9Cm8KPiA+Pj4gZ2l0ID8KPiA+Pj4gPiA+ID4gVGhlIENJIHNldHVwIHdhcyB0aGUgbWFpbiBzdG9wIGZvciBpdCA/Cj4gPj4+ID4gPiA+Cj4gPj4+ID4gPiA+IE9uIEZyaSwgT2N0IDYsIDIwMTcgYXQgODowNSBQTSwgSGVydj1DMz1BOSBCT1VURU1ZIDwKPiA+Pj4gaGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID4+PiA+ID4KPiA+Pj4gPiA+IHdyb3RlOgo+ID4+PiA+ID4gPiA+IEkgd2FzIGV4cGVjdGluZyB0aGUgdXN1YWwgbGl0YW55Cj4gPj4+ID4gPiA+ID4KPiA+Pj4gPiA+ID4gPiB3aGF0IEknbSBub3QgY29uZmlkZW50IGN1cnJlbnRseSB3aXRoIHBpcGVsaW5lIG9uIE1hdmVuIGNvcmUgPQppcwo+ID4+PiB0aGF0Cj4gPj4+ID4gPiA+ID4gd2UKPiA+Pj4gPiA+ID4gPiBoYXZlCj4gPj4+ID4gPiA+ID4gZm9yIGV4YW1wbGUgdGhlICJtYXZlbi0zLngtamVua2luc2ZpbGUvTU5HLTYyNDIgLSBidWlsZCAjMSAtCj4gPj4+IG51bGwiCj4gPj4+ID4gPiA+ID4gbWVzc2FnZSwKPiA+Pj4gPiA+ID4gPiB3aXRoIHRoaXMgIm51bGwiIHBhcnQgdGhhdCBtYWtlcyBtZSB3b25kZXIgaWYgd2UgYXJlIHVzaW5nIGl0Cj4gYXMKPiA+Pj4gPiA+Cj4gPj4+ID4gPiBleHBlY3RlZC4KPiA+Pj4gPiA+Cj4gPj4+ID4gPiA+ID4gQW5kIGZvciBsYXJnZSBtdWx0aS1tb2R1bGUgc3ZuIHRydW5rcyAodGhlIG9uZXMgd2UgZG9uJ3QKPiBtaWdyYXRlCj4gPj4+IHRvCj4gPj4+ID4gPgo+ID4+PiA+ID4gZ2l0Ogo+ID4+PiA+ID4gPiA+IG1haW5seSBwbHVnaW5zIGFuZCBzaGFyZWQpLCBpcyB0aGVyZSBhIHNvbHV0aW9uIHRvIHJlYnVpbGQganU9CnN0Cj4gPj4+ID4gPiA+ID4gY2hhbmdlZAo+ID4+PiA+ID4gPiA+IG1vZHVsZXM/Cj4gPj4+ID4gPiA+ID4KPiA+Pj4gPiA+ID4gPiBpZGVhbGx5LCB0aGUgcmVidWlsZCB3aGVuIGEgU05BUFNIT1QgZGVwZW5kZW5jeSBpcyBwdWJsaXNoZWQKPiA+Pj4gd291bGQKPiA+Pj4gPiA+ID4gPiBoYXZlCj4gPj4+ID4gPiA+ID4gYmVlbiBhCj4gPj4+ID4gPiA+ID4gcGx1cywgYnV0IHRoaXMgaXMgc3VmZmljaWVudGx5IGEgcmFyZSB1c2UgdGhhdCBJIHdvbid0IGJlCj4gPj4+IGV4dHJlbWlzdAo+ID4+PiA+ID4gPiA+Cj4gPj4+ID4gPiA+ID4KPiA+Pj4gPiA+ID4gPiBUaGVuIElJVUMsIHRoaXMgbWlncmF0aW9uIGpvYiBpcyBvbmUgYWRkaXRpb25hbCBUT0RPIGZvciBtZS4uPQouCj4gPj4+ID4gPiA+ID4KPiA+Pj4gPiA+ID4gPiBSZWdhcmRzLAo+ID4+PiA+ID4gPiA+Cj4gPj4+ID4gPiA+ID4gSGVydj1DMz1BOQo+ID4+PiA+ID4gPiA+Cj4gPj4+ID4gPiA+ID4gTGUgdmVuZHJlZGkgNiBvY3RvYnJlIDIwMTcsIDE3OjQ2OjUzIENFU1QgQXJuYXVkIEg9QzM9QTlyaXRpZT0KciBhCj4gPj4+ID1DMz1BOWNyaXQgOgo+ID4+PiA+ID4gPiA+ID4gSSBhZ3JlZSB0aGF0IHdlIHNob3VsZCB1c2UgcGlwZWxpbmUgbm93ZGF5cwo+ID4+PiA+ID4gPiA+ID4gcGVyaGFwcyBhIHNoYXJlZCBsaWIgaWYgd2Ugd2FudCB0byBzdGFuZGFyZGl6ZSBzb21lIHN0dWZmcwo+IGFuZAo+ID4+PiBhIHNldAo+ID4+PiA+ID4KPiA+Pj4gPiA+IG9mCj4gPj4+ID4gPgo+ID4+PiA+ID4gPiA+ID4gbXVsdGktYnJhbmNoZXMgam9icyAob3Igb3JnIGZvbGRlciBidXQgaXQgcmVxdWlyZXMgR2l0SHViIDo9CigKPiApCj4gPj4+ID4gPiA+ID4gPgo+ID4+PiA+ID4gPiA+ID4gT24gRnJpLCBPY3QgNiwgMjAxNyBhdCA5OjE2IEFNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+Pj4gPiA+ID4gPiA+Cj4gPj4+ID4gPiA+ID4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+Pj4gPiA+ID4gPiA+ID4gT24gRnJpIDYgT2N0IDIwMTcgYXQgMDY6MzIsIEhlcnY9QzM9QTkgQk9VVEVNWSA8Cj4gPj4+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPiA+Pj4gPiA+ID4gPgo+ID4+PiA+ID4gPiA+IHdyb3RlOgo+ID4+PiA+ID4gPiA+ID4gPiA+IEkganVzdCBmaXhlZCBhIGZldyBmYWlsaW5nIGpvYnMgWzFdIHRvIGhhdmUgYWdhaW4gYQo+IHVzYWJsZQo+ID4+PiA+ID4KPiA+Pj4gPiA+IEplbmtpbnMuCj4gPj4+ID4gPgo+ID4+PiA+ID4gPiA+ID4gPiA+IE5vdyBJJ20gZmFjaW5nIHNvbWUgaXNzdWVzLCBJIHN1cHBvc2UgY2F1c2VkIGJ5IG5ld2VyCj4gPj4+IEplbmtpbnMKPiA+Pj4gPiA+ID4gPgo+ID4+PiA+ID4gPiA+IHZlcnNpb25zOgo+ID4+PiA+ID4gPiA+ID4gPiA+IC0gTWF2ZW4gMy4wLjUgY2F1c2VzIE5vU3VjaE1ldGhvZEVycm9yOgo+ID4+PiA+ID4gPiA+ID4gPiA+IG8uYy5wbGV4dXMudXRpbC54bWwucHVsbC4KPiA+Pj4gPiA+ID4gPiA+ID4KPiA+Pj4gPiA+ID4gPiA+ID4gTVhQYXJzZXIKPiA+Pj4gPiA+ID4gPiA+ID4KPiA+Pj4gPiA+ID4gPiA+ID4gPiBbMl0KPiA+Pj4gPiA+ID4gPiA+ID4gPiAtIEkgaGFkIHRvIHN3aXRjaCB0byBKREsgOCBmb3IgbWF2ZW4tcGx1Z2luLXRvb2xzIGpvYiwKPiA+Pj4gc2luY2UgSkRLCj4gPj4+ID4gPiA+ID4KPiA+Pj4gPiA+ID4gPiBjYXVzZXMKPiA+Pj4gPiA+ID4gPgo+ID4+PiA+ID4gPiA+ID4gPiA+IGZhaWx1cmVzIChsb29rcyBsaWtlIEplbmtpbnMgdXNlcyBhIGhhY2sgdG8gaW5qZWN0IEpESyA9CjcKPiA+Pj4gYXMgYQo+ID4+PiA+ID4KPiA+Pj4gPiA+IHRvb2wKPiA+Pj4gPiA+Cj4gPj4+ID4gPiA+ID4gd2hpbGUKPiA+Pj4gPiA+ID4gPgo+ID4+PiA+ID4gPiA+ID4gPiA+IHRoZQo+ID4+PiA+ID4gPiA+ID4gPiA+IGJ1aWxkIEpWTSBpcyBKYXZhIDgpCj4gPj4+ID4gPiA+ID4gPiA+ID4KPiA+Pj4gPiA+ID4gPiA+ID4gPiBTaG91bGQgd2UgZHJvcCBNYXZlbiAzLjAuNSBidWlsZHMgYW5kIEpESyA3Pwo+ID4+PiA+ID4gPiA+ID4gPiA+IE5vdGljZSBJIGRpZG4ndCBjaGVjayB3aGljaCBpcyB0aGUgbWluaW11bSBNYXZlbiB2ZXJzaW89Cm4KPiA+Pj4gPiA+Cj4gPj4+ID4gPiByZXF1aXJlZC4uLgo+ID4+PiA+ID4KPiA+Pj4gPiA+ID4gPiA+ID4gPiBPciBwZXJoYXBzIHNpbXBseSBkb24ndCB1c2UgdGhlIEplbmtpbnMgTWF2ZW4gcGx1Z2luIHdpPQp0aAo+ID4+PiB0aGlzCj4gPj4+ID4gPgo+ID4+PiA+ID4gTWF2ZW4KPiA+Pj4gPiA+Cj4gPj4+ID4gPiA+ID4gPiA+IDMuMC41Cj4gPj4+ID4gPiA+ID4gPiA+Cj4gPj4+ID4gPiA+ID4gPiA+ID4gb3IKPiA+Pj4gPiA+ID4gPiA+ID4gPiBKREsgNyBjb25maWd1cmF0aW9uOiBkZWZhdWx0IGJ1aWxkIGFzIEplbmtpbnMgTWF2ZW4KPiBwbHVnaW4KPiA+Pj4gd2l0aAo+ID4+PiA+ID4KPiA+Pj4gPiA+IEpESwo+ID4+PiA+ID4KPiA+Pj4gPiA+ID4gPiA4ICsKPiA+Pj4gPiA+ID4gPgo+ID4+PiA+ID4gPiA+ID4gPiA+IGxhdGVzdAo+ID4+PiA+ID4gPiA+ID4gPiA+IE1hdmVuLCBhbmQgb3RoZXIgY29uZmlndXJhdGlvbnMgYXMgc2NyaXB0ZWQgam9icz8KPiA+Pj4gPiA+ID4gPiA+ID4KPiA+Pj4gPiA+ID4gPiA+ID4gaHR0cDovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuCj4gaWUvMjAxMy8xMS9qZW5raW5zLW1hdmVuLWpvYi0+Cj4gPj4+ID4KPiA+Pj4gPiA+ID4gPgo+ID4+PiA+ID4gPiA+IHR5cGUtY29uc2lkZXJlZC1ldmlsLmh0bWwKPiA+Pj4gPiA+ID4gPgo+ID4+PiA+ID4gPiA+ID4gPiA8aHR0cDovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuaWUvMjAxMy8xMS9qZW5raW5zLT4gPgo+ID4+PiA+ID4gPiA+Cj4gPj4+ID4gPiA+ID4gbWF2ZW4tam9iLXR5cGUtY29uc2lkZXJlZC1ldmlsLmh0bWw/bT0zRDE+Cj4gPj4+ID4gPiA+ID4KPiA+Pj4gPiA+ID4gPiA+ID4gV2Ugc2hvdWxkIHN0b3AgdXNpbmcgdGhlIGV2aWwgam9iIHR5cGUgYXMgaXQ9RTI9ODA9OTlzIG1pPQpuaW11bSBKYXZhCj4gPj4+ID4gPgo+ID4+PiA+ID4gdmVyc2lvbiBpcwo+ID4+PiA+ID4KPiA+Pj4gPiA+ID4gPiA+ID4gZGljdGF0ZWQgYnkgSmVua2lucz1FMj04MD05OSBKYXZhIG1pbmltdW0uCj4gPj4+ID4gPiA+ID4gPiA+Cj4gPj4+ID4gPiA+ID4gPiA+ID4gV2UgbmVlZCB0byBkZWZpbmUgb3VyIGNvbW1vbiBzdHJhdGVneSBhbmQgaGF2ZSBhCj4gY29uc2lzdGVudAo+ID4+PiA+ID4gPiA+ID4gPiA+IGNvbmZpZ3VyYXRpb24KPiA+Pj4gPiA+ID4gPiA+ID4gPiBmb3IKPiA+Pj4gPiA+ID4gPiA+ID4gPiBldmVyeSBqb2IgdW5kZXJzdG9vZCBieSBldmVyeWJvZHkKPiA+Pj4gPiA+ID4gPiA+ID4KPiA+Pj4gPiA+ID4gPiA+ID4gSSByZWNvbW1lbmQgSmVua2luc2ZpbGUgYW5kIHRoZSBgd2l0aE1hdmVuYCB3cmFwcGVyCj4gPj4+ID4gPiA+ID4gPiA+Cj4gPj4+ID4gPiA+ID4gPiA+ID4gUmVnYXJkcywKPiA+Pj4gPiA+ID4gPiA+ID4gPgo+ID4+PiA+ID4gPiA+ID4gPiA+IEhlcnY9QzM9QTkKPiA+Pj4gPiA+ID4gPiA+ID4gPgo+ID4+PiA+ID4gPiA+ID4gPiA+IFsxXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vCj4gPj4+ID4gPiA+ID4gPiA+ID4KPiA+Pj4gPiA+ID4gPiA+ID4gPiBbMl0KPiA+Pj4gPiA+ID4gPiA+ID4gPiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuPQotCj4gPgo+ID4+PiA+Cj4gPj4+ID4gPiA+ID4gPiA+Cj4gPj4+ID4gPiA+ID4gPiA+IHBsdWdpbi10b29scy1qZGstMS43LzE2Mi9jb25zb2xlCj4gPj4+ID4gPiA+ID4gPiA+Cj4gPj4+ID4gPiA+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+PiA+ID4gPiA+Cj4gPj4+ID4gPiA+ID4gLS0tLS0tLS0tCj4gPj4+ID4gPiA+ID4KPiA+Pj4gPiA+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yPQpnCj4gPj4+ID4gPiA+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDoKPiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4+ID4gPiA+ID4gPiA+ID4KPiA+Pj4gPiA+ID4gPiA+ID4gPiAtLQo+ID4+PiA+ID4gPiA+ID4gPgo+ID4+PiA+ID4gPiA+ID4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+Pj4gPiA+ID4gPgo+ID4+PiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+PiAtLS0tLS0tLS0KPiA+Pj4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+PiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4gPiA+Cj4gPj4+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+Pj4gLS0tLS0tLS0tCj4gPj4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Pgo+ID4+Pgo+ID4+Cj4gPj4KPiA+PiAtLQo+ID4+IENoZWVycwo+ID4+IFRpYm9yCj4gPj4KPiA+Cj4gPgo+CgoKCi0tPTIwCi0tLS0tCkFybmF1ZCBIPUMzPUE5cml0aWVyCmh0dHA6Ly9haGVyaXRpZXIubmV0Ck1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tClR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKCi0tZjQwMzA0NWY4YjBjNWYyZDg1MDU1YWZhYjEwMS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MzEyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBPY3QgMjIgMjA6MDA6NTQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzEyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIENCMTJDMTAxMjUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAyMiBPY3QgMjAxNyAyMDowMDo1NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDIyMDc3IGludm9rZWQgYnkgdWlkIDUwMCk7IDIyIE9jdCAyMDE3IDIwOjAwOjU0IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMjAwNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMiBPY3QgMjAxNyAyMDowMDo1NCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIxOTkzIGludm9rZWQgYnkgdWlkIDk5KTsgMjIgT2N0IDIwMTcgMjA6MDA6NTQgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDIyIE9jdCAyMDE3IDIwOjAwOjU0ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNTlGRTgxODA3REMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDIyIE9jdCAyMDE3IDIwOjAwOjUzICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi4zOApYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjM4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEhUTUxfT0JGVVNDQVRFXzA1XzEwPTAuMDAxLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgUVNjZGJoTFJmZHlnIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAyMiBPY3QgMjAxNyAyMDowMDo1MCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXZrMC1mNDEuZ29vZ2xlLmNvbSAobWFpbC12azAtZjQxLmdvb2dsZS5jb20gWzIwOS44NS4yMTMuNDFdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQzZFNDQ1RkREOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjIgT2N0IDIwMTcgMjA6MDA6NDkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdmswLWY0MS5nb29nbGUuY29tIHdpdGggU01UUCBpZCBxODBzbzEwMDA5MTYwdmthLjcKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAyMiBPY3QgMjAxNyAxMzowMDo0OSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bwogICAgICAgICA6Y2M7CiAgICAgICAgYmg9MzBBWHFXRk1pWHVsSTk3cXUrRXpPMlVJL29FRFZMNGpGUGs3UjZTZ1dtUT07CiAgICAgICAgYj1PYkRrT3BteUdQbytxSm5FdmZIRFdaWEJ3a0thN3ZuSE5hNFNkZzN4REpLYWhnQ3JaNXQ2bEFFV2NNQ2lUaGR6M0cKICAgICAgICAgeWhSdFZHRmVLaUdVdmNYY3lzSkZlMXdja015K3htZjI0L01yWEpPUmdvNU44NU54S0orMEFDZXhSK2N5QVNselN0cFYKICAgICAgICAgU1FzRUFEajZPU3ZERUlXclRpRldvSWRjNURHNDNOa2JMVElnWHovalFGNFRaTTgrcCtQb21BVTJJTGt0MzMzT1dCUmQKICAgICAgICAgRWQvMGlvTnl6bVd3cGVQNHlrazNLVGprdUtpL0RiN21FQXRSbUNSeEUrYXFKcGVrTTZYazZ4Qk5veVA2SythcDJsSFcKICAgICAgICAgTW1mNG1ITUR4MVZNTzdNVzdyclBIRmlrdlRwZ3lTMXQxb3hHdksrQjNXZEdjQnc0YkRGRTNVVVR0TXZVTk5UQWR3OTEKICAgICAgICAgZU5vUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG86Y2M7CiAgICAgICAgYmg9MzBBWHFXRk1pWHVsSTk3cXUrRXpPMlVJL29FRFZMNGpGUGs3UjZTZ1dtUT07CiAgICAgICAgYj1UTXR6dG9oN3JlTDRzRG9YbWI1SGUwWjZOTEV6Q3BmTitHZVUrRGJFRmFFSm1vam9nb2tNcGNJYk50Q2RYRSt0QUYKICAgICAgICAgdkxsclZ6NWt2c0NsamxWRWJDR2tmUllVKzBGOGY3SWFtV09CUHFIY3F0ZEp6SktlTzltaHE4R2FvUWFKU3NmWGd1QjcKICAgICAgICAgRTRnZzlwK2RhbzJleVd2N1cvUENSSDNUdWhiRGtKajRCWG1ZVGZmMlBnSkZ6R1RGWlRUWjZ0cS9yc0dwclFqcy9CNmQKICAgICAgICAgU0hLSUNsMGVROHd2OEU3ekNxeFF2NEtSWjJtNlhPa3lUcnV0YnI3VmJNb0lDQTZpNTRlbldzbmNucHZSdUxsN3M0WnYKICAgICAgICAgZTFuTlAxRnluQUd0TzV4N0Z6QzRpdDNXeVlvaCswOFF2aVU5eDFOV3pCaENCS3FWclN4U2NYZjZhNGJWVjY0b2VCSXEKICAgICAgICAgNXNOQT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVytGVCtTcjVPMG92N1dEVTZBcjVxWU5lWnFTNzMxZ1hzNzZVbmsrVUVySTJqemc1RXAKCUJSSlMyVUFSWWNrZStNRTRJeGY4b2xXY3hpRW1LUEI4SGt6bWt3WWNwdz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtTMlVXS0pYNC9Rd3FKVVdLbWwvRWZlNitrdVVQTUsxY1JPUVI2ck5xMGdDMjZJYnh0Q2FvdnVFTnIxaXJ4UFAzYUFjZ050bU85a0VEaC9IalJEekhFPQpYLVJlY2VpdmVkOiBieSAxMC4zMS41OC4yIHdpdGggU01UUCBpZCBoMm1yNDE5NTU4NXZrYS4xOTQuMTUwODcwMjQ0ODQwMzsgU3VuLAogMjIgT2N0IDIwMTcgMTM6MDA6NDggLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjE3Ni45MC4zOCB3aXRoIEhUVFA7IFN1biwgMjIgT2N0IDIwMTcgMTM6MDA6MjcgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxvcC55OGg4cm93Y2tka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KUmVmZXJlbmNlczogPDMwMDY0NzEuR3JTRmpTSmpHWEBnaWdhPiA8MTYwMDkxMC5HdGR2eE0xSzkxQGdpZ2E+CiA8NTg2OTc5Ni43dmkxUFR6MG1KQGdpZ2E+IDwyOTIwMzYwLlFHR0VlT3hjYUNAZ2lnYT4gPG9wLnk4aDhyb3dja2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpGcm9tOiA9P1VURi04P1E/QXJuYXVkX0g9QzM9QTlyaXRpZXI/PSA8YWhlcml0aWVyQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAyMiBPY3QgMjAxNyAyMjowMDoyNyArMDIwMApNZXNzYWdlLUlEOiA8Q0FGTkNVLTlHTmR2K2l1TndlVENBdmRHRzg1alU1amRKK1huWE1wWnVuRT11d3F5d2p3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogbWlncmF0aW5nIHNvbWUgY29kZSB0byBHaXQKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNjOiA9P1VURi04P1E/SGVydj1DMz1BOV9CT1VURU1ZPz0gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4sIGNtbEBhcGFjaGUub3JnCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDNmZDFjODI0YjQ5MDU1YzI4Mjk3ZSIKCi0tMDAxYTExNDNmZDFjODI0YjQ5MDU1YzI4Mjk3ZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpBd2Vzb21lICEKCk9uIFN1biwgT2N0IDIyLCAyMDE3IGF0IDEyOjAwIFBNLCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Cndyb3RlOgoKPiBHcmVhdCBqb2IsIHRoYW5rIHlvdSBhbGwhCj4KPiBSb2JlcnQKPgo+Cj4gT24gU3VuLCAyMiBPY3QgMjAxNyAxMTo0NTowMiArMDIwMCwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZT0KZS5mcj4KPiB3cm90ZToKPgo+IG1pZ3JhdGlvbiBkb25lOiBvbmx5IHJlbWFpbmluZyB0YXNrIGlzIHRvIHJlbmFtZSAidHJ1bmsiIEhFQUQgYnJhbmNoCj4+IGluaGVyaXRlZAo+PiBmcm9tIHN2biBoaXN0b3J5IHRvICJtYXN0ZXIiIChhbmQgZXZlbnR1YWxseSBhZGQgYSBNT1ZFRF9UT19HSVQgZmlsZSBpbgo+PiBvcmlnaW4KPj4gc3ZuKQo+Pgo+PiBUaGUgQXBhY2hlIGdpdCBob3N0aW5nIHByb3ZpZGVkIGlzIEdpdEJveCwgdW5saWtlIHByZXZpb3VzIGNvbXBvbmVudCB0aGE9CnQKPj4gdXNlCj4+IEdpdC1XaXA6IHdpdGggR2l0Qm94LCB0aGUgY29udGVudCBpcyBtb2RpZmlhYmxlIGJvdGggYXQgQVNGIGdpdCByZXBvIGFuZAo+PiBHaXRIdWIKPj4gbWlycm9yCj4+IFlvdSdsbCBuZWVkIHNvbWUgY29uZmlnIG9uIHlvdXIgc2lkZSBpZiB5b3Ugd2FudCB0byBiZSBhYmxlIHRvIHB1c2gKPj4gZGlyZWN0bHkgdG8KPj4gR2l0SHViOiBzZWUgaHR0cHM6Ly9naXRib3guYXBhY2hlLm9yZy9zZXR1cC8KPj4KPj4gVGhhbmtzIHRvIGluZnJhIENocmlzIExhbWJlcnR1cyBmb3IgZG9pbmcgdGhlIGpvYiBmb3IgdXMKPj4KPj4gUmVnYXJkcywKPj4KPj4gSGVydj1DMz1BOQo+Pgo+PiBMZSBtYXJkaSAxMCBvY3RvYnJlIDIwMTcsIDE4OjQyOjI2IENFU1QgSGVydj1DMz1BOSBCT1VURU1ZIGEgPUMzPUE5Y3JpdCA9CjoKPj4KPj4+IGppcmEgaXNzdWUgY3JlYXRlZDoKPj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvSU5GUkEtMTUyNTMKPj4+Cj4+PiBSZWdhcmRzLAo+Pj4KPj4+IEhlcnY9QzM9QTkKPj4+Cj4+PiBMZSBzYW1lZGkgNyBvY3RvYnJlIDIwMTcsIDEyOjMyOjAwIENFU1QgSGVydj1DMz1BOSBCT1VURU1ZIGEgPUMzPUE5Y3JpdD0KIDoKPj4+ID4gSSB3cm90ZSBhIGxpdHRsZSBzaGVsbCBzY3JpcHQgdG8gY2hlY2sgZGlmZmVyZW5jZXMgYmV0d2VlbiB0YWdzIGluIHN2PQpuCj4+PiBhbmQKPj4+ID4gZ2l0IGNoZWNrb3V0Cj4+PiA+IHRoZSBvbmx5IGRpZmZlcmVuY2VzIEkgZm91bmQgZm9yIHRoZSA2IGdpdCByZXBvcyBhcmU6Cj4+PiA+IDEuIGVtcHR5IGRpcnMgKHdoaWNoIGV4aXN0IGluIHN2biBidXQgYXJlIHBydW5lZCBpbiBnaXQpCj4+PiA+IDIuIG9uZSBzdHJhZ2UgY2FzZSBpbiBlbmZvcmNlci0xLjIgd2hlcmUgYSBmZXcgZmlsZXMgc2VlbSB0byBoYXZlCj4+PiBuZXdsaW5lcwo+Pj4gPiBpc3N1ZXMKPj4+ID4KPj4+ID4gdG8gbWUsIHRoaXMgY2FuIGJlIHNhZmVseSBpZ25vcmVkCj4+PiA+Cj4+PiA+IGlmIG5vYm9keSBvYmplY3RzLCBpbiA3MmgsIEknbGwgY3JlYXRlIElORlJBIGppcmEgaXNzdWUgdG8gc3dpdGNoCj4+PiA+IGZvbGxvd2luZwo+Pj4gPiA2IGNvbXBvbmVudHMgZnJvbSBzdm4gdG8gdGhlIGN1cnJlbnQgZ2l0IG1pcnJvcjoKPj4+ID4gLSBEb3hpYSBjb3JlCj4+PiA+IC0gRG94aWEgU2l0ZXRvb2xzCj4+PiA+IC0gRW5mb3JjZXIKPj4+ID4gLSBKeHIKPj4+ID4gLSBQbHVnaW4gVG9vbHMKPj4+ID4gLSBSZWxlYXNlCj4+PiA+Cj4+PiA+Cj4+PiA+IFJlZ2FyZHMsCj4+PiA+Cj4+PiA+IEhlcnY9QzM9QTkKPj4+ID4KPj4+ID4gTGUgc2FtZWRpIDcgb2N0b2JyZSAyMDE3LCAwNDo0NzozMiBDRVNUIEhlcnY9QzM9QTkgQk9VVEVNWSBhID1DMz1BOWNyPQppdCA6Cj4+PiA+ID4gcmUtcmVhZGluZyBvdXIgbWlncmF0aW9uIHByb2Nlc3MgZG9jdW1lbnRhdGlvbiBbMV0sIEkgc2VlICJjaGVjawo+Pj4gPiA+IGVzcGVjaWFsbHkKPj4+ID4gPiBiZWhhdmlvdXIgb24gY2hlY2tpbmcgb3V0IHRhZyIKPj4+ID4gPgo+Pj4gPiA+IEkgc3VwcG9zZSB0aGF0IHdlIGNvdWxkIGNvbXBhcmUgY29udGVudCBiZXR3ZWVuIGdpdCBjaGVja291dCBhbmQgc3Y9Cm4KPj4+ID4gPiBjaGVja291dCBmb3IgSEVBRCBhbmQgZXZlcnkgcGFzdCByZWxlYXNlCj4+PiA+ID4KPj4+ID4gPiBkaWQgc29tZWJvZHkgcHJlcGFyZSBhIHNoZWxsIHNjcmlwdCBmb3IgdGhhdD8KPj4+ID4gPgo+Pj4gPiA+IFJlZ2FyZHMsCj4+PiA+ID4KPj4+ID4gPiBIZXJ2PUMzPUE5Cj4+PiA+ID4KPj4+ID4gPiBbMV0gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9HaXQKPj4+ID4gPiArTWlncmF0aW9uI0dpdE1pZ3JhdGlvbi1NaWdyYXRpb25wcm9jZXNzZGVzY3JpcHRpb24KPj4+ID4gPgo+Pj4gPiA+IExlIHZlbmRyZWRpIDYgb2N0b2JyZSAyMDE3LCAwMDozNDoxMSBDRVNUIEhlcnY9QzM9QTkgQk9VVEVNWSBhID1DMz0KPUE5Y3JpdCA6Cj4+PiA+ID4gPiBncmVhdCwgdGhhbmsgeW91IGZvciB5b3VyIGhlbHAKPj4+ID4gPiA+Cj4+PiA+ID4gPiBpbiBmYWN0LCBBRkFJSywgQXBhY2hlIGhhcyBhbHJlYWR5IGF1dG9tYXRpYyBzdm4yZ2l0IGV4cG9ydHMgWzFdCj4+PiB0aGF0Cj4+PiA+ID4gPiBhcmUKPj4+ID4gPiA+IHRoZW4gbWlycm9yZWQgdG8gZ2l0aHViLgo+Pj4gPiA+ID4gVGhlbiB3ZSBhbHJlYWR5IGhhdmU6Cj4+PiA+ID4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZG94aWEvCj4+PiA+ID4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZG94aWEtc2l0ZXRvb2xzLwo+Pj4gPiA+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWVuZm9yY2VyLwo+Pj4gPiA+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWp4ci8KPj4+ID4gPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW4tdG9vbHMvCj4+PiA+ID4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcmVsZWFzZS8KPj4+ID4gPiA+Cj4+PiA+ID4gPiBJIHN1cHBvc2UgdGhlc2UgY291bGQgYmUgdGhlIG5hdHVyYWwgdGFyZ2V0cy4KPj4+ID4gPiA+IEJ1dCBJIGRvbid0IHJlYWxseSBzZWUgd2hhdCBjaGVja3MgdG8gZG8gb24gdGhlc2UuCj4+PiA+ID4gPgo+Pj4gPiA+ID4gSSBzdXBwb3NlIHRoYXQgb25jZSB3ZSBhcmUgY29udmluY2VkIHRoaXMgY29udGVudCBpcyBvaywgd2UgY2FuIGE9CnNrCj4+PiA+ID4gPiBpbmZyYQo+Pj4gPiA+ID4gdG8gc3dpdGNoIHRoZXNlIHRvIHRoZSBjYW5vbmljYWwgc291cmNlIChhbmQgZGlzYWJsZSB0aGUgc3ZuMmdpdAo+Pj4gPiA+ID4gZXhwb3J0cykKPj4+ID4gPiA+Cj4+PiA+ID4gPiBEbyB5b3Ugc2VlIGFueSBpc3N1ZSBpbiB0aGVzZSByZXBvcz8KPj4+ID4gPiA+Cj4+PiA+ID4gPiBSZWdhcmRzLAo+Pj4gPiA+ID4KPj4+ID4gPiA+IEhlcnY9QzM9QTkKPj4+ID4gPiA+Cj4+PiA+ID4gPiBbMV0gaHR0cDovL2dpdC5hcGFjaGUub3JnLwo+Pj4gPiA+ID4KPj4+ID4gPiA+IExlIGpldWRpIDUgb2N0b2JyZSAyMDE3LCAxMTo0NToyMyBDRVNUIERlamFuIFN0b2phZGlub3ZpYyBhID1DMz0KPUE5Y3JpdCA6Cj4+PiA+ID4gPiA+IENvdW50IG1lIGluIChmb3IgYm90aCBhY3R1YWwgbWlncmF0aW9uIGFuZCByZWxhdGVkIHRhc2tzKS4KPj4+ID4gPiA+ID4KPj4+ID4gPiA+ID4gTXkgd2VhcG9uIG9mIGNob2ljZSBmb3IgU1ZOIC0tPj5HSVQgd291bGQgYmU6Cj4+PiA+ID4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9uaXJ2ZHJ1bS9zdm4yZ2l0IChJIG1hbmFnZWQgdG8gbW92ZSBkb3plbiBvZgo+Pj4gPiA+ID4gPiByZXBvcwo+Pj4gPiA+ID4gPiBmZXcKPj4+ID4gPiA+ID4geWVhcnMgYWdvKS4KPj4+ID4gPiA+ID4KPj4+ID4gPiA+ID4gUmVnYXJkcywKPj4+ID4gPiA+ID4gRGVqYW4KPj4+ID4gPiA+ID4KPj4+ID4gPiA+ID4gT24gMjAxNy0xMC0wNCAwMTo0OCwgSGVydj1DMz04Mz1DMj1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyPQplZS5mcj4KPj4+IHdyb3RlOgo+Pj4gPiA+ID4gPiA+IEknZCBsaWtlIHRvIHdvcmsgb24gUGx1Z2luIFRvb2xzIHdpdGggZ2l0Cj4+PiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiBXaGlsZSBhdCBpdCwgbG9va2luZyBhdCBvdXIgcGxhbiBbMV0sIEkgc2VlIHdlIGhhdmUgYSBmZXcgb3RoPQplcgo+Pj4gPiA+ID4gPiA+IGNvbXBvbmVudHMKPj4+ID4gPiA+ID4gPiB0aGF0IGFyZSByZWFkeSB0byBtaWdyYXRlOgo+Pj4gPiA+ID4gPiA+IC0gRG94aWEgY29yZQo+Pj4gPiA+ID4gPiA+IC0gRG94aWEgU2l0ZXRvb2xzCj4+PiA+ID4gPiA+ID4gLSBFbmZvcmNlcgo+Pj4gPiA+ID4gPiA+IC0gSnhyCj4+PiA+ID4gPiA+ID4gLSBQbHVnaW4gVG9vbHMKPj4+ID4gPiA+ID4gPiAtIFJlbGVhc2UKPj4+ID4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+IFdoYXQgY2hlY2tzIGFyZSByZXF1aXJlZCBiZWZvcmUgc3dpdGNoaW5nIHRoZXNlIDYgY29tcG9uZW50cz8KPj4+ID4gPiA+ID4gPiBBbnkgdm9sdW50ZWVyPwo+Pj4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gUmVnYXJkcywKPj4+ID4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+IEhlcnY9QzM9ODM9QzI9QTkKPj4+ID4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+IFsxXQo+Pj4gPiA+ID4gPiA+IGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvTUFWRU4vR2l0K01pZ3JhdAo+Pj4gaW9uCj4+PiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+IC0tLS0tLQo+Pj4gPiA+ID4gPiA+IC0tCj4+PiA+ID4gPiA+ID4gLQo+Pj4gPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+PiA+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gPiA+ID4gPgo+Pj4gPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+IC0tLS0tLS0tCj4+PiA+ID4gPiA+IC0KPj4+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gPiA+ID4KPj4+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gLS0tLS0tLS0tCj4+PiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gPiA+Cj4+PiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+PiAtLS0tLS0tLS0KPj4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+ID4KPj4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+PiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+Cj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Pgo+Pgo+Pgo+Pgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKCi0tPTIwCi0tLS0tCkFybmF1ZCBIPUMzPUE5cml0aWVyCmh0dHA6Ly9haGVyaXRpZXIubmV0Ck1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tClR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKCi0tMDAxYTExNDNmZDFjODI0YjQ5MDU1YzI4Mjk3ZS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NDg5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBOb3YgMTUgMjA6MDQ6NDggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDg5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIERBNkRDMTdEMUEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAxNSBOb3YgMjAxNyAyMDowNDo0OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDU5NDYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgTm92IDIwMTcgMjA6MDQ6NDggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU4NjIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgTm92IDIwMTcgMjA6MDQ6NDggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1ODUwIGludm9rZWQgYnkgdWlkIDk5KTsgMTUgTm92IDIwMTcgMjA6MDQ6NDggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDE1IE5vdiAyMDE3IDIwOjA0OjQ4ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNkU5NEExQTAzMjEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDE1IE5vdiAyMDE3IDIwOjA0OjQ3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi4zOApYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjM4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEhUTUxfT0JGVVNDQVRFXzA1XzEwPTAuMDAxLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgMlB2Tlhuc3g4RDh0IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJV2VkLCAxNSBOb3YgMjAxNyAyMDowNDo0NSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXVhMC1mMTY5Lmdvb2dsZS5jb20gKG1haWwtdWEwLWYxNjkuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNy4xNjldKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMTJDOTg2MTE2QQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTUgTm92IDIwMTcgMjA6MDQ6NDUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdWEwLWYxNjkuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgcTE4c28xNjEyNDU2MnVhYS4wCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTUgTm92IDIwMTcgMTI6MDQ6NDUgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9R24xb1kyNGJuRlVXcStzRTgyZ09nRXhwRXNKZ1phZC9iQjZGczExa0FvVT07CiAgICAgICAgYj1oL280czlzQ0N6bUtDVmlEbWgwMHJMaUN1VUl1bm0vNjlEeWlHVlp4bnR2NnJyUUR5MnFMWm40RytBWXMzcUc4N2sKICAgICAgICAgYldRa1RoVkIxOU85b2lOS3F2ZDQ0TUpIWStpVnBlUTd6emNwR3QyMG1TMjYwWUFRbFNlcTNSTVJJS0lDWHcwN3F6aFMKICAgICAgICAgdjhCUFMrUWkzbXlRSy9jbzRVQ3hiMFpjazE1UGdQTStqSjFqQURRajZnVDZkVlNGYjRFZmhzRVh0MEY1K2wra2xNSGMKICAgICAgICAgTExhSXJCenBlZ1R3T2pEek5aZUZJZVhWT0w4UTJiSlpibzV5QTlIU0pSYUc0MjE3QTdzYlNVNHkxZ0RidHF2enZydTIKICAgICAgICAgZmtqenJkdHBYU3RPOU5kSDNxNDZYYVBzYW1FL0RGUG0vZjF1Z0Q0RlR0TFJCTmN6emV0cU5wa0pvSEN5dVNXSWRIN0cKICAgICAgICAgMG1hZz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9R24xb1kyNGJuRlVXcStzRTgyZ09nRXhwRXNKZ1phZC9iQjZGczExa0FvVT07CiAgICAgICAgYj1NS2l4NlJmd3BjMTJKSFNDTCtrNTNuYkxPVWprbElVdmtWUjJndWN4dDNmSytnQ0FmRHJFdUprOFBydXplOUdFengKICAgICAgICAgb3RSWXVnTXgvSElGT2JRUUozckx5alZjNExiTkdDWE5aUHdJUmwyb0F3VEhWRFlhYUFVMkoxWnBpeFJVTXpQczNncVAKICAgICAgICAgRHMvLzQzOVZnVjQ2TXREcEpZam05SUF5YnZJaVN1Wk5Ja0RsVDM1RmpPTTI0WUVlMVpJYWk4RSsvZ0JCandqODhSOTgKICAgICAgICAgN3U5djk3Y1l6aE9Kc0crU3VVcGh5VEJBTTB4aS85VUJBMkhLeTg3SmZHRnlqZCtTcTYveFJLVlFPK2FiTlNvcVVuMHAKICAgICAgICAgd1pRQWkvSitKcWFMVUdEU2Y3WHJERXAva2VzMEkzb1g1Vnh6TjdXNlpvS0xzTFljeVQ2dkR4eUFhZ2lRSzBYcW9TVE0KICAgICAgICAgT1JGUT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYNVI5VXdlRStjV3BIQVZwN3ZHRW9wT2l3dExIVEplWVh3TXhYa1h5cEFMU0RlMnQyc3AKCXB1NHNadlBXaVhqdlJ0ZVM3UWtGUFFodkM0MEloMzBqQmVkT3Y1aXUvZz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1aenhLZE9lR2xxUVlyRlFYQ013V2o0S3B0RWljdE0zWXRnbTZzVnY1WTVXVkVvcWUyb3BBelJjRTl0NENBazB1dXZUU01YR2FlRzZycW1JeU90RncwPQpYLVJlY2VpdmVkOiBieSAxMC4xNTkuNDQuMTMwIHdpdGggU01UUCBpZCB3Mm1yMTQ0MTE4MDR1YWouMjAyLjE1MTA3NzYyODQyODM7CiBXZWQsIDE1IE5vdiAyMDE3IDEyOjA0OjQ0IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzYuOTAuMzggd2l0aCBIVFRQOyBXZWQsIDE1IE5vdiAyMDE3IDEyOjA0OjIzIC0wODAwIChQU1QpCkluLVJlcGx5LVRvOiA8b3AueTlyZ2hlZ2JrZGtocnJAZGVza3RvcC0ya2hzazQ0PgpSZWZlcmVuY2VzOiA8b3AueTlsamJoendrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDxvcC55OXJnaGVnYmtka2hyckBkZXNrdG9wLTJraHNrNDQ+CkZyb206ID0/VVRGLTg/UT9Bcm5hdWRfSD1DMz1BOXJpdGllcj89IDxhaGVyaXRpZXJAZ21haWwuY29tPgpEYXRlOiBXZWQsIDE1IE5vdiAyMDE3IDE0OjA0OjIzIC0wNjAwCk1lc3NhZ2UtSUQ6IDxDQUZOQ1UtOU50U2M9a0xZM2VaRHpmYkZHY09OZmVwZT1HSnVqaXNWdnB4MnU4ZFE4VWdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gSkRlcHJTY2FuIFBsdWdpbiB2ZXJzaW9uIDMuMC4wLWFscGhhLTEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDg5ZTA4MjU1OGI4YzI4YTcxMDU1ZTBiMDNiYiIKCi0tMDg5ZTA4MjU1OGI4YzI4YTcxMDU1ZTBiMDNiYgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgorMQoKT24gV2VkLCBOb3YgMTUsIDIwMTcgYXQgMTo1OSBQTSwgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgp3cm90ZToKCj4gU3RpbGwgd2F0aW5nIGZvciBvbmUgTWF2ZW4gUE1DIHZvdGUuCj4KPiB0aGFua3MsCj4gUm9iZXJ0Cj4KPiBPbiBTdW4sIDEyIE5vdiAyMDE3IDE2OjE1OjA3ICswMTAwLCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Cj4gd3JvdGU6Cj4KPiBIaSwKPj4KPj4gVGhpcyBpcyB0aGUgaW5pdGlhbCByZWxlYXNlIG9mIHRoZSBNYXZlbiBKRGVwclNjYW4gUGx1Z2luLgo+Pgo+PiBJdCBpcyBhIHdyYXBwZXIgYXJvdW5kIHRoZSBqZGVwcnNjYW4gdG9vbCwgYXZhaWxhYmxlIHNpbmNlIEphdmEgOToKPj4gaHR0cHM6Ly9kb2NzLm9yYWNsZS5jb20vamF2YXNlLzkvdG9vbHMvamRlcHJzY2FuLmh0bQo+Pgo+PiBUaGVyZSBhcmUgemVybyBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9M0Rwcm9qZWN0JTIwJTNEJQo+PiAyME1KREVQUlNDQU4lMjBBTkQlMjBzdGF0dXMlMjAlM0QlMjBPcGVuJTIwT1JERVIlMjBCWSUKPj4gMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDCj4+Cj4+IFN0YWdpbmcgcmVwbzoKPj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3NC8KPj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc2VydmljZS9sb2NhbC9yZXBvc2l0b3JpZXMvbWF2Cj4+IGVuLTEzNzQvY29udGVudC9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4tamRlcHJzY2FuLXBsdQo+PiBnaW4vMy4wLjAtYWxwaGEtMS9tYXZlbi1qZGVwcnNjYW4tcGx1Z2luLTMuMC4wLWFscGhhLTEtc291cmNlLXJlbGVhc2Uuemk9CnAKPj4KPj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4+IG1hdmVuLWpkZXByc2Nhbi1wbHVnaW4tMy4wLjAtYWxwaGEtMS1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMToKPj4gY2NiZWQzM2VhM2JhYTUyN2I5YTBjZjkwZGJiNGY5Y2E4YmI4OGVmNAo+Pgo+PiBTdGFnaW5nIHNpdGU6Cj4+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWpkZXByc2Nhbi1wbHVnaW4tTEFURVNULwo+Pgo+PiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPj4KPj4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPj4KPj4gWyBdICsxCj4+IFsgXSArMAo+PiBbIF0gLTEKPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCgotLT0yMAotLS0tLQpBcm5hdWQgSD1DMz1BOXJpdGllcgpodHRwOi8vYWhlcml0aWVyLm5ldApNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQpUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyCgotLTA4OWUwODI1NThiOGMyOGE3MTA1NWUwYjAzYmItLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDQzNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gTm92ICA2IDEwOjI4OjI3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQzNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFNENCMjE3NEI4Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgIDYgTm92IDIwMTcgMTA6Mjg6MjYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyNTg1MyBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IE5vdiAyMDE3IDEwOjI4OjI2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNTc3MiBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IE5vdiAyMDE3IDEwOjI4OjI2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjU3NjAgaW52b2tlZCBieSB1aWQgOTkpOyA2IE5vdiAyMDE3IDEwOjI4OjI2IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAwNiBOb3YgMjAxNyAxMDoyODoyNiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDZDQkI3MUExQzNGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAgNiBOb3YgMjAxNyAxMDoyODoyNSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjQwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC40MDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBycXJUR0RwUEVJc1AgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sICA2IE5vdiAyMDE3IDEwOjI4OjIyICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtdmswLWY0OC5nb29nbGUuY29tIChtYWlsLXZrMC1mNDguZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxMy40OF0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAxNEQyNzYzRjkzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAgNiBOb3YgMjAxNyAxMDoyODoyMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC12azAtZjQ4Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHkxOTZzbzE5MDgwODJ2a2MuNQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDA2IE5vdiAyMDE3IDAyOjI4OjIyIC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWFNRG11U200L25XYVhjRVduNEpWaG1iYXJSTGVLN054N2kySndlWTUySTg9OwogICAgICAgIGI9RmNDcEd0aG8wVThtRXhIdlk1ZDl2NkN4MnRjSzJES2hwelN5akwrbk8yWlVJa2pHN0NsL3JMNWJPSmI5eTNVNkpSCiAgICAgICAgIFVLVEU3N2ZYZVl5Y2V6THZxK0xoTnR5bVB0RFNJZ1dKUlNnNVltUkh4WEE2MS9IVGhLL054YVMybURsV0ttSTV4MGVRCiAgICAgICAgIFRKWmJZc2RXVHJVZnpXVUNQdjR3NjJtTHJrc2tMcExmUUl0cGh0d0RCbTZrWitMazhUUlk1Q2Vod3ZsN2VMWmVXb2lmCiAgICAgICAgIFg2SjZsVld4ZmNjdUhBQysrelg5MkVPKzBJVnJuOFpnaDhXM0s1YW0rMWFSVExJQlN4OUpoaHFyNkFLYytXT1IwQ2pNCiAgICAgICAgIG5ReE1qVlNPKzBWRVFiaU5qUFVER2dzUXNzcnhXMitOdFY3d3lkdnJreGdkYVdiLzRrbVU3Q1gydjJRTVZSYzd0TWpWCiAgICAgICAgIEYxbkE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWFNRG11U200L25XYVhjRVduNEpWaG1iYXJSTGVLN054N2kySndlWTUySTg9OwogICAgICAgIGI9anVqVU1pN0l0WHZoVmNLTFJPbmFNMm40RkxtdHBrSWRpU2FYT3VTWGlIZVNIWTR5VC9RU1lJR0RiYStKeG0xano0CiAgICAgICAgIExrV1REdTd0RDc1R2VKY0lkY01Kb3p6SXlZWC9hbG5ibE40S2JaVFNjM0FYempkSVJ5dElWVU1pZFJqTEtIM1N3UG1lCiAgICAgICAgIHpNdlMyQWZDSmU4SnhkQmpkRTc3bCtWRS9Va09aRkt1OWRuM1ozUDIzbno0OGgxS0FIMy9VblE2ZWx0N0R5UFNjTVBNCiAgICAgICAgIHl6bC9BY2MrcXhUZjlzMTJrTFdOTFVublM0TXBGWTNUanRRcCtsZTBNbHd4bnF3TGF3T2s5WjYzL3BSOW11dEFtT0pYCiAgICAgICAgIG9oSXc3R1RvOTRKc1J1M2ZvQUJLVGxuYXlNSXJaWlRDQVRrRlZmenR3R0NmdjY1UHBtYzRIQUoyVWFwYzZyTU13WGNvCiAgICAgICAgIGZQekE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVZXMmNPNy9ZOTN2cHU3NVpxK3pHOStmK205Tlo0YktvaEMwMDNoZGlqYktiQWNvTjJTCglNNXhaQWRjUWxQY2RnMDRLclFsQTFBaEIyZ3lZL3d0dTJtUkhQQ1crV3c9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArUnduSzcrbEh4TWVkbFYrVytKdXIyTW8rQS9PY0trUGdXeUdxMnNwdzkrOUFZeXM1U2FtN0M5SXdtam8xRmN5alZiK1pRWmlxWWs4VnQxNzRvazRtcz0KWC1SZWNlaXZlZDogYnkgMTAuMzEuMTYuNzIgd2l0aCBTTVRQIGlkIGc2OW1yMTA4NzYzODJ2a2kuMTk3LjE1MDk5NjQwOTUwMTU7CiBNb24sIDA2IE5vdiAyMDE3IDAyOjI4OjE1IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzYuOTAuMzggd2l0aCBIVFRQOyBNb24sIDYgTm92IDIwMTcgMDI6Mjc6NTQgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDwxMTE5NDU0MC5QVUdQZkUxdkZ4QGdpZ2E+ClJlZmVyZW5jZXM6IDw1ODc4MTEwLlRNRW90NlZFdXVAZ2lnYT4gPDM2MzA3OTYucEN4MkZQUGdGZ0BnaWdhPgogPDUxNjM2NjAuclQ1VEM4RXBYcEBnaWdhPiA8MTExOTQ1NDAuUFVHUGZFMXZGeEBnaWdhPgpGcm9tOiA9P1VURi04P1E/QXJuYXVkX0g9QzM9QTlyaXRpZXI/PSA8YWhlcml0aWVyQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA2IE5vdiAyMDE3IDExOjI3OjU0ICswMTAwCk1lc3NhZ2UtSUQ6IDxDQUZOQ1UtOV9pbks2eWNUNDljUVVhdHNRN09vZnhOQnB3OE9SRDYxU1Zrd0VUMHkweGdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBtaWdyYXRpbmcgc29tZSBjb2RlIHRvIEdpdApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0MzIzZjg4MWQ0ODgwNTVkNGRlOTMxIgoKLS0wMDFhMTE0MzIzZjg4MWQ0ODgwNTVkNGRlOTMxCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkF3ZXNvbWUgd29yayBIZXJ2PUMzPUE5ClRoYW5rcyBhIGxvdAoKRm9yIGFyY2hldHlwZXMgc3BsaXQgSSBkb24ndCBrbm93LiBUZWNobmljYWxseSB3ZSBzaG91bGQgc3BsaXQgdGhlbSBhbmQKdGhleSBjb3VsZCBoYXZlIGRpZmZlcmVudCBsaWZlY3ljbGVzIGJ1dCBpbiByZWFsaXR5IHRoZXJlIGlzIG5vIHJlYWwKYWN0aXZpdHkgdGh1cyBJJ20gbm90IHN1cmUgaXQgaGFzIHNvbWUgaW50ZXJlc3QKCk9uIFNhdCwgTm92IDQsIDIwMTcgYXQgMjo1NiBQTSwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ID0Kd3JvdGU6Cgo+IG1pZ3JhdGlvbiBkb25lIFsxXQo+IHdlIG5vdyBoYXZlIDIyIGdpdCByZXBvcyAobWF2ZW4tcmVzb2x2ZXIgaGFzIDMgaW5kZXBlbmRhbnQgYnJhbmNoZXMuLi4pCj4KPiBJJ20gd2FpdGluZyBmb3IgZmVlZGJhY2sgYmVmb3JlIGNyZWF0aW5nIG1hdmVuLWFnZ3JlZ2F0b3IgQCBBU0YgKGZvciBHb29nPQpsZQo+IHJlcG8gbWFuaWZlc3QpCj4KPiBuZXh0IGJpZyBtaWdyYXRpb25zIHdpbGwgYmUgc2hhcmVkIGFuZCBwbHVnaW5zIG9uY2UgU3RlcGhlbiB2aWRlb3MgYW5kCj4gc29sdXRpb24gb24gc2NhbGluZyBKZW5raW5zIGZvciBvdXIgb3JnYW5pemF0aW9uIHdpbGwgYmUgcmVhZHkKPgo+IFRoZXJlIGEgZmV3IGNhc2VzIHRvIGRpc2N1c3M6Cj4gLSBBcGFjaGUgUmVzb3VyY2UgQnVuZGxlczogc2hvdWxkIElNSE8gYmUgbWVyZ2VkIGludG8gb25lIHVuaXF1ZSByZWxlYXNlOgo+IGFueQo+IHRha2VyPwo+IC0gQXJjaGV0eXBlczogc3BsaXQgKHdhaXQgZm9yIEplbmtpbnMpIG9yIG5vdCBzcGxpdCAoYW5kIGRvIG5vdyk/Cj4gLSBNYXZlbiBhbmQgRG94aWEgc2l0ZXM6IG5lZWQgdG8gc2VlIGlmIENNUyBjYW4gY2hlY2tvdXQgZnJvbSBHaXQsIG9yIGV2ZT0Kbgo+IGlmCj4gd2Ugc2hvdWxkIG5vdCB1c2UgQ01TIGFueSBtb3JlIHRvIGJ1aWxkIGJ1dCB1c2UgSmVua2lucy4uLgo+Cj4gUmVnYXJkcywKPgo+IEhlcnY9QzM9QTkKPgo+IFsxXSBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL0dpdCtNaWdyYXRpb24KPgo+IExlIHNhbWVkaSA0IG5vdmVtYnJlIDIwMTcsIDA5OjUwOjI4IENFVCBIZXJ2PUMzPUE5IEJPVVRFTVkgYSA9QzM9QTljcml0IDoKPiA+IG5vIG9iamVjdGlvbjogc3RhcnRpbmcgdGhlIG1pZ3JhdGlvbiBvZiB0aGVzZSA2IHJlcG9zCj4gPgo+ID4gUmVnYXJkcywKPiA+Cj4gPiBIZXJ2PUMzPUE5Cj4gPgo+ID4gTGUgbWVyY3JlZGkgMSBub3ZlbWJyZSAyMDE3LCAxMjowOTo1OCBDRVQgSGVydj1DMz1BOSBCT1VURU1ZIGEgPUMzPUE5Y3I9Cml0IDoKPiA+ID4gYWRkaW5nIDIgbW9yZSByZXBvcyB0byB0aGUgbGlzdDoKPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2hib3V0ZW15L21hdmVuLWRveGlhLWNvbnZlcnRlcgo+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tZG94aWEtbGlua2NoZWNrCj4gPiA+Cj4gPiA+IExlIG1lcmNyZWRpIDEgbm92ZW1icmUgMjAxNywgMDc6Mjg6MDIgQ0VUIEhlcnY9QzM9QTkgQk9VVEVNWSBhID1DMz1BOT0KY3JpdCA6Cj4gPiA+ID4gZm9yIGxhenkgcGVvcGxlLCBJIHRvb2sgdGltZSB0byBjcmVhdGUgdGhlIDQgcmVwbyBvbiBwZXJzb25hbCBHaXRIdT0KYgo+ID4gPiA+IHNwYWNlOgo+ID4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1hcGFjaGUtcGFyZW50Cj4gPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2hib3V0ZW15L21hdmVuLXBhcmVudAo+ID4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1kZWZhdWx0LXNraW4KPiA+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tZmx1aWRvLXNraW4KPiA+ID4gPgo+ID4gPiA+IEkgd29uJ3QgZG8gdGhlIHNhbWUgaW4gdGhlIGZ1dHVyZSBmb3IgdGhlIDI2IHNoYXJlZCBhbmQgNDUgcGx1Z2lucywKPiA+ID4gPiBzaW5jZQo+ID4gPiA+IG1hbnVhbCByZXBvIGNyZWF0aW9uIGlzIG5vdCBmdW4uLi4KPiA+ID4gPgo+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4KPiA+ID4gPiBIZXJ2PUMzPUE5Cj4gPiA+ID4KPiA+ID4gPiBMZSBtYXJkaSAzMSBvY3RvYnJlIDIwMTcsIDE2OjA4OjAxIENFVCBIZXJ2PUMzPUE5IEJPVVRFTVkgYSA9QzM9QTljPQpyaXQgOgo+ID4gPiA+ID4gQXMgeW91IHByb2JhYmx5IG5vdGljZWQsIEkgbWlncmF0ZWQgbWF2ZW4tZGlzdC10b29sIFsxXSB0byBnaXQsCj4gdXNpbmcKPiA+ID4gPiA+IHNlbGYtCj4gPiA+ID4gPiBzZXJ2aWNlIEdpdGJveCBmb3IgdGhlIGVtcHR5IHJlcG8gY3JlYXRpb24gYW5kIGEgbWlncmF0ZS1zYW5kYm94Lj0Kc2gKPiA+ID4gPiA+IHNoZWxsCj4gPiA+ID4gPiBzY3JpcHQgWzJdIHRvIHBvcHVsYXRlIHRoZW0gKGFmdGVyIFNsaW5nIGV4YW1wbGUpCj4gPiA+ID4gPgo+ID4gPiA+ID4gSXQgd29ya2VkIGxpa2UgYSBjaGFybSEKPiA+ID4gPiA+Cj4gPiA+ID4gPiBJZiBub2JvZHkgb2JqZWN0cywgaW4gNzJoLCBJJ2xsIHVzZSBtaWdyYXRlLXBvbS5zaCBhbmQKPiA+ID4gPiA+IG1pZ3JhdGUtc2tpbnMuc2gKPiA+ID4gPiA+IHRvCj4gPiA+ID4gPiBjcmVhdGUgNCBuZXcgcmVwb3M6IG1hdmVuLWFwYWNoZS1wYXJlbnQsIG1hdmVuLXBhcmVudCwKPiA+ID4gPiA+IG1hdmVuLWRlZmF1bHQtc2tpbgo+ID4gPiA+ID4gYW5kIG1hdmVuLWZsdWlkby1za2luCj4gPiA+ID4gPiBQbGVhc2UgdGFrZSB0aW1lIHRvIGV4ZWN1dGUgdGhlIHNjcmlwdHMgZm9yIHlvdXJzZWxmIGFuZCBjaGVjayB0aD0KYXQKPiA+ID4gPiA+IHRoZQo+ID4gPiA+ID4gcmVzdWx0IGlzIG9rIGZvciB5b3UuCj4gPiA+ID4gPgo+ID4gPiA+ID4gSSBhbHJlYWR5IHByZXBhcmVkIG1pZ3JhdGUtcGx1Z2lucy5zaCBhbmQgbWlncmF0ZS1zaGFyZWQuc2gKPiBzY3JpcHRzOgo+ID4gPiA+ID4gSSdtCj4gPiA+ID4gPiB3YWl0aW5nIGZvciBKZW5raW5zIGludGVncmF0aW9uIHJlc3VsdHMgYmVmb3JlIHRyeWluZyB0byBtaWdyYXRlCj4gdGhpcwo+ID4gPiA+ID4gcGFydCwKPiA+ID4gPiA+IGJ1dCB5b3UgY2FuIGFsc28gdGFrZSB0aW1lIHRvIGNoZWNrIHRoYXQgdGhlIHJlc3VsdGluZyBnaXQgcmVwb3MKPiBmcm9tCj4gPiA+ID4gPiB0aGUKPiA+ID4gPiA+IHNjcmlwdHMgYXJlIGdvb2QuCj4gPiA+ID4gPgo+ID4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiA+Cj4gPiA+ID4gPiBIZXJ2PUMzPUE5Cj4gPiA+ID4gPgo+ID4gPiA+ID4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZGlzdC10b29sLwo+ID4gPiA+ID4KPiA+ID4gPiA+IFsyXSBodHRwczovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy9tYXZlbi9zYW5kYm94L3RydW5rL3NjcmlwdHMvZ2l0PQovCj4gPiA+ID4gPgo+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tCj4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+Cj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tCj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Cj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPgo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCgotLT0yMAotLS0tLQpBcm5hdWQgSD1DMz1BOXJpdGllcgpodHRwOi8vYWhlcml0aWVyLm5ldApNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQpUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyCgotLTAwMWExMTQzMjNmODgxZDQ4ODA1NWQ0ZGU5MzEtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDUwMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgTm92IDE2IDIxOjQ3OjE5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDUwMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyMDFEMDEwMkZDCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMTYgTm92IDIwMTcgMjE6NDc6MTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1NzA1MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNiBOb3YgMjAxNyAyMTo0NzoxOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTY5ODIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTYgTm92IDIwMTcgMjE6NDc6MTggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1Njk3MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDE2IE5vdiAyMDE3IDIxOjQ3OjE4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAxNiBOb3YgMjAxNyAyMTo0NzoxOCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEFFRDA1QzYxODEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDE2IE5vdiAyMDE3IDIxOjQ3OjE3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS44NzkKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjg3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgYTZ1RXNNME9ReTAyIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVGh1LCAxNiBOb3YgMjAxNyAyMTo0NzoxNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXZrMC1mNTIuZ29vZ2xlLmNvbSAobWFpbC12azAtZjUyLmdvb2dsZS5jb20gWzIwOS44NS4yMTMuNTJdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMDRGMDA1RkFDOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMTYgTm92IDIwMTcgMjE6NDc6MTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdmswLWY1Mi5nb29nbGUuY29tIHdpdGggU01UUCBpZCBrODJzbzU0ODU4M3ZrZC41CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMTYgTm92IDIwMTcgMTM6NDc6MTUgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9blcvQ3JtTWhrVVNyeS9nbG9WR1FSYk5WS1JZUkFtendQaHlBY1JrRjVxZz07CiAgICAgICAgYj1YUjFsTVlva2ZZenJXMEZJUXEvMitFZ0tPTSt0dy9PSlk1MitFQ1NXWlFnbFREK21NcnFPZEdOSysyWlJPVFdBV1gKICAgICAgICAgM3VRWHpsaFduQi9lbWJNN0tlN1c1TWk3Sk1jNUtxNzFWQ1lzRmh6OVNSOXVOOFBBd0VDYVR6TEpJb0Z3ZWlyRmxHL3EKICAgICAgICAgYTkwdWsyY2FYblRTNjR3VG9VN3JZRDFZOGlZbS9ZWVRsZWFqY2hqVDNDSUxRbnlQbVVpU0RkRmRndXJVVGh1cXBlS0QKICAgICAgICAgaXZ6OWpZdjdySVQ5WldEOVllNVFxK1gxUjE5Z05rNTJyaWxBbEt5Q2NFR2Q4dW8xNnRGR2RGQWlnVW5UaDd0d3liV1QKICAgICAgICAgSk1Eb3dmUUNnN2hGUHNuU0h4akNiSG1XNUNMdzMyVUZWWVcxaWE4YUJpY0RCREk2SHZoWVFySFY5U1ZSUldDWjdpL0YKICAgICAgICAgQjVsdz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9blcvQ3JtTWhrVVNyeS9nbG9WR1FSYk5WS1JZUkFtendQaHlBY1JrRjVxZz07CiAgICAgICAgYj1rbGNIaDFtZk9oNXo4c2VYM1VnQXlFdWxLVWUwbmlIYk5JdDV0WFdzU0xRSjVnaU9saVdlcW5xWVROWVpzcno1azAKICAgICAgICAgSkxYRGQ3bEtnakVCYmg4SFdqWUVrTDJNWHJjN3ArZ05uUG01Mk5RRGJGY1NXUUFTVVJwbm9rdU9DRW5EOStieVZmcUsKICAgICAgICAgWjRMSnZMbTJuWGdoSGV2NVZOWGxld2dTQjhMdmFmWWlabi82eU50SENUdjVnQ2kya3hzQXd2alRzc0UwbzJkM0NXMUgKICAgICAgICAgeFZlZnFubWYwakhEaFBlUlEybGxqZUxhY3BGMmNGK2dNSXppWFhuR21rWHZucDNnb0hGaS9qN25JYkpUNGNhcHdUZGMKICAgICAgICAgLzBxNmRvMnhGL04yZEIxbFg4RWorWFRsR09ISHZqbFc0WUdWWk9KdXZ1WmdrQ2E5KzRvcEMxcjZ2ZzdPN05adXhXdkUKICAgICAgICAgRU1EQT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYNG5rczBaT1docklGVkxmQWx0Q3V2bmxza3dLUTJPc3ltYnFvbG9yaTh5UlJON2x5cnAKCXpZdjFFbGlFK0RkUWl4Z1czOU9YdDhoNGxQYm9uQ0xqdC9HRUNRNllRUT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1aK3VrelczRHRkSUg0bDJzRDhyRkNCUzhLRVBYZWNUcUxlRUxVaFI3ZzVCWTNpOWoxNzdVNUtTVG92YU9MVzNrdHUvNlA5dXI0U1cyUjRCYklUa0dvPQpYLVJlY2VpdmVkOiBieSAxMC4zMS4yNTIuMTUgd2l0aCBTTVRQIGlkIGExNW1yMjU5NzE2OHZraS4zMy4xNTEwODY4ODM0NjQwOwogVGh1LCAxNiBOb3YgMjAxNyAxMzo0NzoxNCAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTc2LjkwLjM4IHdpdGggSFRUUDsgVGh1LCAxNiBOb3YgMjAxNyAxMzo0Njo1NCAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPG9wLnk5czQyenI4a2RraHJyQGRlc2t0b3AtMmtoc2s0ND4KUmVmZXJlbmNlczogPDE2MjExNzYuc0phaEVtOTMyNUBnaWdhPiA8b3AueTlzNDJ6cjhrZGtocnJAZGVza3RvcC0ya2hzazQ0PgpGcm9tOiA9P1VURi04P1E/QXJuYXVkX0g9QzM9QTlyaXRpZXI/PSA8YWhlcml0aWVyQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAxNiBOb3YgMjAxNyAxNTo0Njo1NCAtMDYwMApNZXNzYWdlLUlEOiA8Q0FGTkNVLTlhSzFCTW1ORnA0U1BGa1I9ckVzTmY3NmlTM3lGaThNd2RQc3huUzY5ZFlRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogbWVyZ2luZyBNTkctNjMwMiB0byBtYXN0ZXIKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iOTRlYjJjMTQ5N2NhMzBlYTE3MDU1ZTIwOTA5ZSIKCi0tOTRlYjJjMTQ5N2NhMzBlYTE3MDU1ZTIwOTA5ZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgorMQoKT24gVGh1LCBOb3YgMTYsIDIwMTcgYXQgMTE6NDggQU0sIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4Kd3JvdGU6Cgo+ICsxCj4KPgo+Cj4gT24gVGh1LCAxNiBOb3YgMjAxNyAxODoyNDowOSArMDEwMCwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZT0KZS5mcj4KPiB3cm90ZToKPgo+IEkgdXBkYXRlZCBNTkctNjMwMiBpbXBsZW1lbnRhdGlvbjoKPj4gc2VlIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYzMDIKPj4KPj4gYXJlIHRoZXJlIHNlY29uZGVycyBmb3IgdGhpcyBpbXBsZW1lbnRhdGlvbj8KPj4gb3IgaWRlYXMgb24gYmV0dGVyIGRpc3BsYXlzPwo+Pgo+PiBSZWdhcmRzLAo+Pgo+PiBIZXJ2PUMzPUE5Cj4+Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+CgoKLS09MjAKLS0tLS0KQXJuYXVkIEg9QzM9QTlyaXRpZXIKaHR0cDovL2FoZXJpdGllci5uZXQKTWFpbC9HVGFsazogYWhlcml0aWVyIEFUIGdtYWlsIERPVCBjb20KVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcgoKLS05NGViMmMxNDk3Y2EzMGVhMTcwNTVlMjA5MDllLS0KCkZyb20gZGV2LXJldHVybi0xMjQzMTMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE9jdCAyMiAyMDowMzoxNyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzMTMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNjhDM0YxMDEzNQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDIyIE9jdCAyMDE3IDIwOjAzOjE3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjM0NzUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjIgT2N0IDIwMTcgMjA6MDM6MTcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIzNDAzIGludm9rZWQgYnkgdWlkIDUwMCk7IDIyIE9jdCAyMDE3IDIwOjAzOjE3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjMzOTAgaW52b2tlZCBieSB1aWQgOTkpOyAyMiBPY3QgMjAxNyAyMDowMzoxNiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMjIgT2N0IDIwMTcgMjA6MDM6MTYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBFODI0OUM0Njg1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAyMiBPY3QgMjAxNyAyMDowMzoxNSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuMzc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuMzc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgckZYeWtuTDB6dWZ3IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAyMiBPY3QgMjAxNyAyMDowMzoxNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXZrMC1mNTAuZ29vZ2xlLmNvbSAobWFpbC12azAtZjUwLmdvb2dsZS5jb20gWzIwOS44NS4yMTMuNTBdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMTEzMjQ1RkREOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjIgT2N0IDIwMTcgMjA6MDM6MTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdmswLWY1MC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBrMTk1c285OTg2NDU1dmtlLjEwCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjIgT2N0IDIwMTcgMTM6MDM6MTQgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9YWxZcEZLY002SWEvL1QybkRSQUphS1lYbzN5cVJUeDlrMTB0V1JBQldrND07CiAgICAgICAgYj1UK0UyTXUwUlpTYWIrSkc5OGt1bzRnUGxZYTRGZDhWSVkyWFhaREtyZW05RmcrSUlWSi9kMG9sSjlxaHptcDRQVXUKICAgICAgICAgVGNHTkJFREc3Y0xWOERLdksrb2VKMzIzbHJ6eG42SzB3T2tIQXorSGkrQUNubW5BWU9iU0lQVDZwOWxwbnBER2NBVlgKICAgICAgICAgYmRjcE1ZVHdjWlpibTV1UTlWSE9BVVpMM0s3NGNhSVl6UGhUdThJSGZWaEo0N3lzOTVCSUdWRkNrTWdMN29PQ1FxNzkKICAgICAgICAgOHRzeXJSUGwvMVZHbzJFUmVJa0xUMHIvM01rZXdtNXZLN3hTeFh1YjFEVEtYbUJ3N2xFRHFlVDJnams2dldyaWVBZHUKICAgICAgICAgUmpaMElZMGJXSHhkK2lwSGxqZG8rZ1ljY1MzWDlQWnZFVVp6Tkw1YTBFMytzdVNwVU9HOEg3Z3ZHWDZUditQL3k3aHIKICAgICAgICAgZVBtUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9YWxZcEZLY002SWEvL1QybkRSQUphS1lYbzN5cVJUeDlrMTB0V1JBQldrND07CiAgICAgICAgYj1OR2N6bmRhcmk3ZDQ3UmMwbk1WdTVSaHovWDZZSlB1NmdrTE1CM0JVVS9IS2tWc2Zhd21PZElQSWowWlF2dWM1b0sKICAgICAgICAgbTlTdzJ6Z2oyc2hCNzB6YWxER2tJd3hhY1k1K3doRXBuSzFuWUthUGlNWEQwSTQvWXRZSTNZK2J6UGFiTkZOWXdSSGIKICAgICAgICAgeHEvbm5UT2o5N2x4OVBacXFFWllSNmdDQUZrOUo4bm9OV00vSktrZ0RLKzRYWFEzWjhNQ0l0MkFzMXFXNytOdnY0Ni8KICAgICAgICAgbU9TQTBMdHRpY093aHdVSnhIeHU4dTI4LzBsN0tmMnlYTDZhS09vRi9zaFhNN1NNWUJ4amIyYi8vMUFyazMvTUlnRXoKICAgICAgICAgWmMyRFNhNkhIWmJZaWNOTlIxQXh5NldQd2NEUFZ4VkJRWjNtY2lybmJad2dyV09SRkZmZ0J6QWVrb2h2YmRMSGdLb3kKICAgICAgICAgVTI4dz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVXMwRzdZTDJEbXNrcWk3QXVLdCszcDBkN3h6bXZtVkFWMms3MmZ6ZkhGc214ZHRCTHgKCXdtZVpFbEN6b2lMUGFqTWd3SlM0S1BMZE9jbjk1Y05XMitWZkVydldmQT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtSSS96ZE1oZDE3R1dmQlR5ZTdOcWY1SC9TVmp1OG5TdVVCZkQ1MGY5V0c1TmJYMW14RVdYa2FNdklYdmtpdVJGdkxHdnZlMjNJYk1Bbno0ZWhrWjBNPQpYLVJlY2VpdmVkOiBieSAxMC4zMS4xNjAuMTk3IHdpdGggU01UUCBpZCBqMTg4bXIzNDg4MTYzdmtlLjgwLjE1MDg3MDI1ODY5NzA7CiBTdW4sIDIyIE9jdCAyMDE3IDEzOjAzOjA2IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzYuOTAuMzggd2l0aCBIVFRQOyBTdW4sIDIyIE9jdCAyMDE3IDEzOjAyOjQ2IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8MzkxODhDNDEtODUwNC00NDQ2LTlDOEMtN0ZCOTIwRUZDM0EwQHgtcmVpemVuZC5kZT4KUmVmZXJlbmNlczogPDE1MjI4OTkuSVdFUW9UaUdmRUBnaWdhPiA8MzkxODhDNDEtODUwNC00NDQ2LTlDOEMtN0ZCOTIwRUZDM0EwQHgtcmVpemVuZC5kZT4KRnJvbTogPT9VVEYtOD9RP0FybmF1ZF9IPUMzPUE5cml0aWVyPz0gPGFoZXJpdGllckBnbWFpbC5jb20+CkRhdGU6IFN1biwgMjIgT2N0IDIwMTcgMjI6MDI6NDYgKzAyMDAKTWVzc2FnZS1JRDogPENBRk5DVS05YkpHUi1QbzZUdGFBeGpKT2VDYitKcTRnSkR6QUVILVFUVEUrNmlFcmhFZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IG1vdmluZyBHaXRIdWIgaXNzdWUgbm90aWZpY2F0aW9ucyB0byBpc3N1ZXNAbWF2ZW4uYS5vClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQxNWEwNGM0YTgzMjA1NWMyODMxOTkiCgotLTAwMWExMTQxNWEwNGM0YTgzMjA1NWMyODMxOTkKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKKzEKCk9uIFNhdCwgT2N0IDIxLCAyMDE3IGF0IDE6MjQgUE0sIFV3ZSBCYXJ0aGVsIDxiYXJ0aGVsQHgtcmVpemVuZC5kZT4gd3JvdGU6Cgo+ICsxIChub24gYmluZGluZykKPgo+IC0tCj4gYmFydGhlbEB4LXJlaXplbmQuZGUKPgo+Cj4gPiBPbiAyMS4gT2N0IDIwMTcsIGF0IDEyOjIyLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gdz0Kcm90ZToKPiA+Cj4gPiBDdXJyZW50bHksIGNvbW1lbnRzIGFyZSBzZW50IHRvIGRldkBtYXZlbi5hLm8KPiA+Cj4gPiBGb3Igb3VyIGNsYXNzaWNhbCBvZmZpY2lhbCBKaXJhIGlzc3VlIHRyYWNrZXIsIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgdD0Kbwo+ID4gaXNzdWVzQG1hdmVuLmEubwo+ID4KPiA+IElmIG5vYm9keSBvYmplY3RzICg3MmggYXMgdXN1YWwpLCBJJ2xsIGFzayBpbmZyYSB0byBzd2l0Y2ggR2l0SHViIGlzc3VlCj4gPiBub3RpZmljYXRpb25zIHRvIGlzc2V1c0BtYXZlbi5hLm8KPiA+Cj4gPiBSZWdhcmRzLAo+ID4KPiA+IEhlcnY9QzM9QTkKPiA+Cj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPgo+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+CgoKLS09MjAKLS0tLS0KQXJuYXVkIEg9QzM9QTlyaXRpZXIKaHR0cDovL2FoZXJpdGllci5uZXQKTWFpbC9HVGFsazogYWhlcml0aWVyIEFUIGdtYWlsIERPVCBjb20KVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcgoKLS0wMDFhMTE0MTVhMDRjNGE4MzIwNTVjMjgzMTk5LS0KCkZyb20gZGV2LXJldHVybi0xMjQxNTItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE9jdCAgNiAxNTo0NzoxOCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxNTItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRTE3RkExMEIxOAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksICA2IE9jdCAyMDE3IDE1OjQ3OjE4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTI0NTAgaW52b2tlZCBieSB1aWQgNTAwKTsgNiBPY3QgMjAxNyAxNTo0NzoxOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTIzNjMgaW52b2tlZCBieSB1aWQgNTAwKTsgNiBPY3QgMjAxNyAxNTo0NzoxOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkyMzUxIGludm9rZWQgYnkgdWlkIDk5KTsgNiBPY3QgMjAxNyAxNTo0NzoxOCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMDYgT2N0IDIwMTcgMTU6NDc6MTggKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA2NTEzNDE4MDhGMQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgIDYgT2N0IDIwMTcgMTU6NDc6MTcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjg3OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjg3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIE9uUkhpbE16VjlXNiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCUZyaSwgIDYgT2N0IDIwMTcgMTU6NDc6MTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC12azAtZjQ5Lmdvb2dsZS5jb20gKG1haWwtdmswLWY0OS5nb29nbGUuY29tIFsyMDkuODUuMjEzLjQ5XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDM5RjczNUZCNTcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksICA2IE9jdCAyMDE3IDE1OjQ3OjE0ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXZrMC1mNDkuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgaDE5MXNvOTkwNTIwNHZrZS42CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMDYgT2N0IDIwMTcgMDg6NDc6MTQgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9dWthSnNYYUpCdDU1VjJ2MlF6RlJSQ0JIbkM3bW5oZTJhTVVidmpxYzRkMD07CiAgICAgICAgYj1xTGxqWnMzcGJibVUzZkt0cEYyeGpqRWhxSzN3QVh1c3Zvck8wOGxGQStJYVVjR2UzT2pzeUxUR1VTcUlJWVhiNDIKICAgICAgICAgS3hMRGFsdjFLbHFMVGMwd1FVbHFodUMzZWh3UTNDUVd4RHhBdEtsTkJvSkM5NFpIZWFya2pwNDVsMm1IRnRlQnNKdDIKICAgICAgICAgVEVzYWsrYVV1T243V2RaRDlxZmNrbk1sbkJLbEl3SUc1S3FWbW5IZmdGRjk5NnZoTFJqS09paUdtQnpMWnVtSklqM0QKICAgICAgICAgRDc1R240ZGttc3gxaFM2azg0TWRzU0hkTnJTV1VVNkVhZ2xoaW9NTFVuWm81MkJVNDV0WkUxUSt3M0ZpdEJDTmZVa08KICAgICAgICAgVzFHYXJVS21CbFVWbDMrT21LU3lyS3FwbHB0cFNhYXRpcFNXd0J4YnQwZWYyQ2RhT0dXeTI0QjhTZUZwbVRzMGVNMU0KICAgICAgICAgZVBFUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9dWthSnNYYUpCdDU1VjJ2MlF6RlJSQ0JIbkM3bW5oZTJhTVVidmpxYzRkMD07CiAgICAgICAgYj1tbmFDL0xwcHNiWmNnYU16VmsyOE9UdVFkb2t2T1RXSGQxdytyQjNVUThybjJ2SUtQOXRIWVB2REdqM0lKM3lMR3EKICAgICAgICAgSGtKWnc3UjFodHdKL0RDUVRIZmlDZHF3T0RZYnpKUFUxNW1ab3FqNmtGdnZJZ3ZMeXdaL0htb1J2L1RIYmZWS2JIY3cKICAgICAgICAgZ0w4QjZORjRzSU1FN2RuTEZIOWNaNVJIbGEvNnRQMXhPTmt6M01hSzZuSVpJVkgwSWptQUc4V0szTFdoSW5EN3ZXSG8KICAgICAgICAgR1N0RENFU0Fod3N0c25UR3AxVU5pclJtcnNRK1RRTFFqOUFUbXNGWFRpQkZDM0xoYlJJNHJLclVuS08vSDFtUUR4M1AKICAgICAgICAgaE84eHdaTDJOQVdqck1NblpTenVJT0wweHpzcHhBZkRROFNyTVRsUG9ZdDdwWjFhOE52enB5NlJzMVh5dW56ckhCUjYKICAgICAgICAgYUhUUT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhV1gvZUpQR0N3dFNIVUppQ1gyQ0pRKzMyYTl3R2xaY0ZibTAvSTN5MGloajhQc05HVysKCWZ3VDllWjNLRHdpQTFrYkF2bEVxZHdURURuaml1NFA5L21rNDBpRHRtdz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FDVTRXMkZ2MTFyNkpDMThUQ0djS091SC9hV0oxS0FlRjk4b3ZrZ3IzTHZlZHo3UTVpcXNHdjVpOW5Rcm1obFNIQ3pGaDZ2YjVibkd0clUzKzFkZ2hZPQpYLVJlY2VpdmVkOiBieSAxMC4zMS43Ny4xMzEgd2l0aCBTTVRQIGlkIGExMjVtcjExMDU0MzJ2a2IuMTYwLjE1MDczMDQ4MzM0OTg7CiBGcmksIDA2IE9jdCAyMDE3IDA4OjQ3OjEzIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzYuODUuMTM2IHdpdGggSFRUUDsgRnJpLCA2IE9jdCAyMDE3IDA4OjQ2OjUzIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0ErblBuTXg5bjMwUXdUNkgxUGJmVlJ4TjNpOXRUdnlmbj1vNHhRd0VnMUJlc182d1F3QG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8MTA1NDQ2MTUuQjRoTzNQbnZFekBnaWdhPiA8Q0ErblBuTXg5bjMwUXdUNkgxUGJmVlJ4TjNpOXRUdnlmbj1vNHhRd0VnMUJlc182d1F3QG1haWwuZ21haWwuY29tPgpGcm9tOiA9P1VURi04P1E/QXJuYXVkX0g9QzM9QTlyaXRpZXI/PSA8YWhlcml0aWVyQGdtYWlsLmNvbT4KRGF0ZTogRnJpLCA2IE9jdCAyMDE3IDE3OjQ2OjUzICswMjAwCk1lc3NhZ2UtSUQ6IDxDQUZOQ1UtOXFhTmVYVWVzN08rQnhTUG9BcER5NUxET1VCYWtUMWMxRj1oODZMSmJCU3dAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBKZW5raW5zIGFuZCBNYXZlbiAzLjAuNSBvciBKREsgNwpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0ZGFkNDYyYjQ2MTUwNTVhZTJjMTY3IgoKLS0wMDFhMTE0ZGFkNDYyYjQ2MTUwNTVhZTJjMTY3CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkkgYWdyZWUgdGhhdCB3ZSBzaG91bGQgdXNlIHBpcGVsaW5lIG5vd2RheXMKcGVyaGFwcyBhIHNoYXJlZCBsaWIgaWYgd2Ugd2FudCB0byBzdGFuZGFyZGl6ZSBzb21lIHN0dWZmcyBhbmQgYSBzZXQgb2YKbXVsdGktYnJhbmNoZXMgam9icyAob3Igb3JnIGZvbGRlciBidXQgaXQgcmVxdWlyZXMgR2l0SHViIDooICkKCk9uIEZyaSwgT2N0IDYsIDIwMTcgYXQgOToxNiBBTSwgU3RlcGhlbiBDb25ub2xseSA8CnN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgoKPiBPbiBGcmkgNiBPY3QgMjAxNyBhdCAwNjozMiwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdyPQpvdGU6Cj4KPiA+IEkganVzdCBmaXhlZCBhIGZldyBmYWlsaW5nIGpvYnMgWzFdIHRvIGhhdmUgYWdhaW4gYSB1c2FibGUgSmVua2lucy4KPiA+Cj4gPiBOb3cgSSdtIGZhY2luZyBzb21lIGlzc3VlcywgSSBzdXBwb3NlIGNhdXNlZCBieSBuZXdlciBKZW5raW5zIHZlcnNpb25zOgo+ID4gLSBNYXZlbiAzLjAuNSBjYXVzZXMgTm9TdWNoTWV0aG9kRXJyb3I6IG8uYy5wbGV4dXMudXRpbC54bWwucHVsbC4KPiBNWFBhcnNlcgo+ID4gWzJdCj4gPiAtIEkgaGFkIHRvIHN3aXRjaCB0byBKREsgOCBmb3IgbWF2ZW4tcGx1Z2luLXRvb2xzIGpvYiwgc2luY2UgSkRLIGNhdXNlcwo+ID4gZmFpbHVyZXMgKGxvb2tzIGxpa2UgSmVua2lucyB1c2VzIGEgaGFjayB0byBpbmplY3QgSkRLIDcgYXMgYSB0b29sIHdoaWw9CmUKPiA+IHRoZQo+ID4gYnVpbGQgSlZNIGlzIEphdmEgOCkKPiA+Cj4gPiBTaG91bGQgd2UgZHJvcCBNYXZlbiAzLjAuNSBidWlsZHMgYW5kIEpESyA3Pwo+ID4gTm90aWNlIEkgZGlkbid0IGNoZWNrIHdoaWNoIGlzIHRoZSBtaW5pbXVtIE1hdmVuIHZlcnNpb24gcmVxdWlyZWQuLi4KPiA+Cj4gPiBPciBwZXJoYXBzIHNpbXBseSBkb24ndCB1c2UgdGhlIEplbmtpbnMgTWF2ZW4gcGx1Z2luIHdpdGggdGhpcyBNYXZlbgo+IDMuMC41Cj4gPiBvcgo+ID4gSkRLIDcgY29uZmlndXJhdGlvbjogZGVmYXVsdCBidWlsZCBhcyBKZW5raW5zIE1hdmVuIHBsdWdpbiB3aXRoIEpESyA4ICsKPiA+IGxhdGVzdAo+ID4gTWF2ZW4sIGFuZCBvdGhlciBjb25maWd1cmF0aW9ucyBhcyBzY3JpcHRlZCBqb2JzPwo+Cj4KPiBodHRwOi8vamF2YWFkdmVudHVyZS5ibG9nc3BvdC5pZS8yMDEzLzExL2plbmtpbnMtbWF2ZW4tam9iLQo+IHR5cGUtY29uc2lkZXJlZC1ldmlsLmh0bWwKPiA8aHR0cDovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuaWUvMjAxMy8xMS9qZW5raW5zLQo+IG1hdmVuLWpvYi10eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sP209M0QxPgo+Cj4gV2Ugc2hvdWxkIHN0b3AgdXNpbmcgdGhlIGV2aWwgam9iIHR5cGUgYXMgaXQ9RTI9ODA9OTlzIG1pbmltdW0gSmF2YSB2ZXJzaT0Kb24gaXMKPiBkaWN0YXRlZCBieSBKZW5raW5zPUUyPTgwPTk5IEphdmEgbWluaW11bS4KPgo+Cj4gPgo+ID4gV2UgbmVlZCB0byBkZWZpbmUgb3VyIGNvbW1vbiBzdHJhdGVneSBhbmQgaGF2ZSBhIGNvbnNpc3RlbnQgY29uZmlndXJhdGk9Cm9uCj4gPiBmb3IKPiA+IGV2ZXJ5IGpvYiB1bmRlcnN0b29kIGJ5IGV2ZXJ5Ym9keQo+Cj4KPiBJIHJlY29tbWVuZCBKZW5raW5zZmlsZSBhbmQgdGhlIGB3aXRoTWF2ZW5gIHdyYXBwZXIKPgo+ID4KPiA+Cj4gPiBSZWdhcmRzLAo+ID4KPiA+IEhlcnY9QzM9QTkKPiA+Cj4gPiBbMV0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuLwo+ID4KPiA+IFsyXQo+ID4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi0KPiBwbHVnaW4tdG9vbHMtamRrLTEuNy8xNjIvY29uc29sZQo+ID4KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Cj4gPiAtLQo+IFNlbnQgZnJvbSBteSBwaG9uZQo+CgoKCi0tPTIwCi0tLS0tCkFybmF1ZCBIPUMzPUE5cml0aWVyCmh0dHA6Ly9haGVyaXRpZXIubmV0Ck1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tClR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKCi0tMDAxYTExNGRhZDQ2MmI0NjE1MDU1YWUyYzE2Ny0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MTc1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBPY3QgIDcgMjA6MjE6MzYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTc1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEYzRDk0MTA2NkIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgNyBPY3QgMjAxNyAyMDoyMTozNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI2NjYwIGludm9rZWQgYnkgdWlkIDUwMCk7IDcgT2N0IDIwMTcgMjA6MjE6MzAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI2NTczIGludm9rZWQgYnkgdWlkIDUwMCk7IDcgT2N0IDIwMTcgMjA6MjE6MzAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNjU2MSBpbnZva2VkIGJ5IHVpZCA5OSk7IDcgT2N0IDIwMTcgMjA6MjE6MzAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA3IE9jdCAyMDE3IDIwOjIxOjMwICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNkYxQzRDQTNENQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMjA6MjE6MjkgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjU5OQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjU5OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUZSRUVNQUlMX1JFUExZPTEsIEhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFMyR0Z2Slpvc3BlciBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgIDcgT2N0IDIwMTcgMjA6MjE6MjYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC12azAtZjQzLmdvb2dsZS5jb20gKG1haWwtdmswLWY0My5nb29nbGUuY29tIFsyMDkuODUuMjEzLjQzXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEM3NTY4NUY1MjMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDIwOjIxOjI1ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXZrMC1mNDMuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgYzE5c28xMTE1NTc3MHZrZS4xMQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDA3IE9jdCAyMDE3IDEzOjIxOjI1IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPStRMW9KdlVqWjBST0FUR3FXVlMwWWhibUZ4TkM4ZHlRbGE4dlROeXMwZ0E9OwogICAgICAgIGI9ZWppbDkvZTBRbFExRnduMnJiNDZpbExkYVBFdG1YeUljTmRPVFlFMHdGWEZhaEwrR2ZvczNYcjFiQVY0ZVRkTldGCiAgICAgICAgIERObFRoYjVYV1IvMHRob1djSWs4TkRjdnB1UkdsZ0picDFLZHg1Sm5hTE5SYnpMQUhGc3ZsVWx1QVNSVisvNjBFMnFICiAgICAgICAgIFU1VGdFOHRLRUZlb0lOQlJDbzZ1d2NTKzdxRzJ6alZYM1E0N0hwTU9HK1RtcUFqMHppSk1DVzJlOEdRUy9sTCtXTGYxCiAgICAgICAgIDdNOWp3TmszY205aDE2ZnZPRFdyM2EwNndObEFDMEdFeUx5aFpGTWhYdnZlU3pXa1VrOXc5UFZBU1I3cEM0b3N0VCtsCiAgICAgICAgIGp1ZkdSQk5JdkhnZGtBNGo3NTZCeFJxaFlWSHk1UFBwM1hZVmJWT1h4Vnh1YkxaNlZuZWNmYmV1eFpZNFExN1o3VDk0CiAgICAgICAgIGpaWHc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPStRMW9KdlVqWjBST0FUR3FXVlMwWWhibUZ4TkM4ZHlRbGE4dlROeXMwZ0E9OwogICAgICAgIGI9cWpyUUpnc0dFZ3FYejc2TFJBTDdUVDdDMDc4d2EraU9KR3JHblozaWxpZWJNN0lmbmlUeHBZUHp6TW5zY2FiNWcvCiAgICAgICAgIFFiMHVySWZiTHM0TjRpMmt6anorcHpqSVVETzNBb2dkUjBsSzlzSFhpb3BrUDgrYlFuMlByZ3ovaGxJUWRESXZsMFhLCiAgICAgICAgIEtKQU5mRUlDcFZoYVkvaUo2blJxeWk4YVF5WldjUGJzWXVQVlNQeGhMbEtMWi9nb2FzZ0FwUXV6YWhkcmJhb3dwbVZaCiAgICAgICAgIC95bFRlekVPKzlHYUw1UFVidGFTWm9qSXhnRnQwOFVnZDh1c0RndDZFZnJCY1JxVXlrdUhhQ1JXb1hLdElHbVhvV0c2CiAgICAgICAgIFJCVHF4MjJlY0JPZzRrbm9XUkk1MHQxclBXM1Yrb0pDeXVXYWk0Mi9CcTZENlcxcmZDbTJiWU5yaXRwdW52bmxjUElQCiAgICAgICAgIDVvb1E9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVdJa2JxQ3dFMThqamYzaUx5N0QxU0NSUEVqVzdMc2YrVFVYM0xBaVFkWmdVd2hIWVIvCglsbkZ2cFNZLzJGeWpOZitRSmVyZWtva0RkU0hDZHQ5OGhMS2x1Z2RkbVE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQ242eldjeS9Sa2E3MlB6WUNibENUVVNoQytJZ0VTUWNIQkxvTVBOSEdGT1BrN3I3QUYvSjF3MzFzUDhiOTlvcmJhRHJHYlNkQVQ0L2U1MnBUL0Y3RT0KWC1SZWNlaXZlZDogYnkgMTAuMzEuNzcuMTMxIHdpdGggU01UUCBpZCBhMTI1bXIyNzAyODM3dmtiLjE2MC4xNTA3NDA3Njc4OTg5OwogU2F0LCAwNyBPY3QgMjAxNyAxMzoyMToxOCAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTc2Ljg1LjEzNiB3aXRoIEhUVFA7IFNhdCwgNyBPY3QgMjAxNyAxMzoyMDo1OCAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPDE5MzQ5ODMueFJNOEt5SWltaUBnaWdhPgpSZWZlcmVuY2VzOiA8MTA1NDQ2MTUuQjRoTzNQbnZFekBnaWdhPiA8Q0FLdVZ6QlIydytmazVTM3VuQlFSN0I1NGVVODBDUVFhQzY0dXlZNVhORUNIb1NINkdnQG1haWwuZ21haWwuY29tPgogPENBS3VWekJRU2dSWFdWRWc4Q2dyWmRzTkd3ZFRmTnRjNHFXdDRHbnlKRG9vaXlhcjJOQUBtYWlsLmdtYWlsLmNvbT4gPDE5MzQ5ODMueFJNOEt5SWltaUBnaWdhPgpGcm9tOiA9P1VURi04P1E/QXJuYXVkX0g9QzM9QTlyaXRpZXI/PSA8YWhlcml0aWVyQGdtYWlsLmNvbT4KRGF0ZTogU2F0LCA3IE9jdCAyMDE3IDIyOjIwOjU4ICswMjAwCk1lc3NhZ2UtSUQ6IDxDQUZOQ1UtXzVDZmFQTUwyZndaKzd0RkVBWkpUK3daQkR4NmI9LTdFNEpSS0FtPS1ZZ2dAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBKZW5raW5zIGFuZCBNYXZlbiAzLjAuNSBvciBKREsgNwpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0ZGFkNDYzY2VkYzUwNTVhZmFiMzk1IgoKLS0wMDFhMTE0ZGFkNDYzY2VkYzUwNTVhZmFiMzk1CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCisxCgpPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDc6MTEgUE0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiA9Cndyb3RlOgoKPiB3ZSBjYW4gc3RhcnQgd2l0aCBuYW1pbmcgdGhlIGZ1dHVyZSBnaXQgcmVwb3M6IEkgc3VwcG9zZSBhZGRpbmcgYSB0YWJsZSBhPQp0Cj4gdGhlCj4gZW5kIG9mIHRoZSBHaXQgbWlncmF0aW9uIFdpa2kgcGFnZSBjYW4gZ2l2ZSBhIGdvb2QgdmlldyBvZiB0aGUgcmVzdWx0Cj4gKHdpdGggNzgKPiBuZXcgcmVwb3MgKyBleGlzdGluZyA3IHJlcG9zICsgdGhlIDYgaW4gbWlncmF0aW9uIGlmIG5vYm9keSBvYmplY3RzID0zRCA5PQoxCj4gcmVwb3MpCj4KPiBvbmNlIHdlJ3JlIGFsbCBjb252aW5jZWQgb2YgdGhlIHRhcmdldCwgd2UnbGwgc2VlIGhvdyB0byB3b3JrIHdpdGggaW5mcmEKPiBhbmQgSSBzdXBwb3NlIHRoZXkgYWxyZWFkeSBoYXZlIHRoZSByaWdodCBhdXRob3JzIGxpc3QsIGdpdmVuIHRoZSBjdXJyZW50Cj4gbWlycm9ycyBhbHJlYWR5IHB1Ymxpc2hlZAo+Cj4gUmVnYXJkcywKPgo+IEhlcnY9QzM9QTkKPgo+IExlIHNhbWVkaSA3IG9jdG9icmUgMjAxNywgMTY6MDU6NDUgQ0VTVCBUaWJvciBEaWdhbmEgYSA9QzM9QTljcml0IDoKPiA+IEhlcnZlLAo+ID4KPiA+IEkgdGhpbmssIGZpcnN0IG9mIGFsbCwgd2Ugc2hvdWxkIHdyaXRlIGEgbGlzdCB3aXRoIGV4YWN0IG5hbWVzIG9mIGdpdAo+ID4gcmVwb3NpdG9yaWVzIGZvciB3aGljaCBJTkZSQSB3aWxsIGNyYXRlIHRoZW0gaW4KPiA+IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnL3JlcG9zL2FzZgo+ID4gYW5kIG1pcnJvciBpbiBnaXRodWIuY29tL2FwYWNoZQo+ID4KPiA+IEFuZCB0aGVuIHRoZSBhdXRob3JzLnR4dC4KPiA+Cj4gPiBJbiBteSBjYXNlIEkgZGlkIG5vdCBtaWdyYXRlIHRhZ3MgYW5kIGJyYW5jaGVzIHdoaWNoIGlzIG15IHByb2JsZW0gZ2l2ZT0Kbgo+IGluCj4gPiBteSBleGFtcGxlIHdpdGggcHJldmlvdXMgZS1tYWlsLgo+ID4KPiA+IE9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgMzo0OCBQTSwgVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPgo+IHdyb3RlOgo+ID4gPiBIZXJ2ZSwKPiA+ID4gSSB0aGluayBtYWtpbmcgdGhlIHRhZyBhcyBJIHdhbnRlZCB3b3VsZCBub3QgYmUgcG9zc2libGUgaW4gZ2l0Lgo+ID4gPgo+ID4gPiBMZXQncyBtYWtlIGl0IHdpdGggYWxsIDc4IHByb2plY3RzLgo+ID4gPiBJbiAyMDE2IEkgbWlncmF0ZWQgbXkgc3ZuIHByb2plY3QgImF1ZGl0IiBsb2NhdGVkIGluIHN1Yi1mb2xkZXIgYmVoaW49CmQKPiA+ID4gdHJ1bmsgKHRydW5rL2xpYnMvYXVkaXQpIHRvIGdpdCB3aGljaCBpcyBleGFjdGx5IHdoYXQgd2UgbmVlZCB0byBkbyBpPQpuCj4gPiA+IEFTRi4KPiA+ID4KPiA+ID4gSW4gb3VyIGNhc2UgdGhlIGNvbW1hbmRzIHdvdWxkIGJlIDk5JSB0aGUgc2FtZS4gVGhlIDElIGlzIHRoZSBzb3VyY2UKPiBTVk4KPiA+ID4gVVJMIGFuZCB0YXJnZXQgR2l0SHViIFVSTC4gVGhhdCdzIGFsbC4gVGhlbiBpZiB3ZSBwcm92aWRlIElORlJBIHdpdGgKPiBidW5jaAo+ID4gPiBvZiBjb21tYW5kcyBsaWtlIHRoZXNlIHRoZW4gdGhleSB3aWxsIG9ubHkgZXhlY3V0ZSB0aGVtIHdpdGggdGhlaXIKPiA+ID4gcGVybWlzc2lvbnMuCj4gPiA+IEkgZG8gbm90IHRoaW5rIHRoZXkgd2lsbCBnaXZlIG1lIGFkbWluIHBlcm1pc3Npb25zIHRvIG1ha2UgaXQuCj4gPiA+Cj4gPiA+IGdpdCBzdm4gY2xvbmUgLS1uby1tZXRhZGF0YSAtLWF1dGhvcnMtZmlsZT0zREU6XCphdXRob3JzLnR4dCogaHR0cDovLwo+ID4gPiAqKiovc3ZuLyoqKi8qdHJ1bmsvbGlicy9hdWRpdCBhdWRpdCoKPiA+ID4gZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLm5hbWUgIioqKiAqKioiCj4gPiA+IGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5lbWFpbCAiKioqQCoqKi4qKioiCj4gPiA+IGdpdCByZW1vdGUgYWRkIG9yaWdpbiBodHRwczovLyoqKkBnaXRodWIuY29tL2FwYWNoZS8KPiAqbWF2ZW4tY2xlYW4tcGx1Z2luKgo+ID4gPiAuZ2l0Cj4gPiA+IGdpdCBwdXNoIC11IG9yaWdpbiAtLWFsbAo+ID4gPgo+ID4gPiBJIG9ic2VydmVkIHRoZSAqYXV0aG9ycy50eHQqIGZyb20gY29tbWFuZAo+ID4gPiAqc3ZuIGxvZyAtcSoKPiA+ID4gRWFjaCBwZXJzb24gZnJvbSBiZXR3ZWVuIGZpcnN0IHR3byBwaXBlcywgZS5nLjoKPiA+ID4gcjEyMzQ1NjcgfCB0aWJvcmRpZ2FuYSB8IDIwMTUtMTAtMTkgMDI6MjA6MDAKPiA+ID4KPiA+ID4gRXZlcnkgZGV2ZWxvcGVyIGFkZGVkIGUtbWFpbCBhbmQgZnVsbCBuYW1lLCBpLmUuOgo+ID4gPiB0aWJvcmRpZ2FuYSA9M0QgVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPgo+ID4gPiBldGMuCj4gPiA+Cj4gPiA+IFRoaXMgbGlzdCBvZiB1c2VycyB3aGljaCBzaG91bGQgYmUgY3JlYXRlZCBpbiBwcmlvciB0byBjb250YWN0IElORlJBLgo+ID4gPiBOb3QgYWxsIHVzZXJzIGFyZSBhY3RpdmUgYWZ0ZXIgeWVhcnMgYnV0IGl0IHdvdWxkIGJlIG5pY2UgdG8gaW5jbHVkZQo+IHRoZW0KPiA+ID4gdG9vLgo+ID4gPiBUaGlzIGxpc3Qgb2YgdXNlcnMgaXMgb25lIHRoaW5nIHdoaWNoIGNhbm5vdCBiZSBhdXRvbWF0ZWQhCj4gPiA+Cj4gPiA+Cj4gPiA+Cj4gPiA+Cj4gPiA+IE9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgMjo0OCBQTSwgVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPgo+ID4gPgo+ID4gPiB3cm90ZToKPiA+ID4+IEluIG15IGNvbXBhbnkgSSBoYXZlIHN1Y2ggc2l0dWF0aW9uIGluIFNWTi4gTWFraW5nIGEgdGFnIGZyb20KPiBzdWJmb2xkZXIuCj4gPiA+PiBHaXQgYWx3YXlzIG1ha2VzIHRoZSB0YWcgZnJvbSB0aGUgcm9vdCwgcmlnaHQ/Cj4gPiA+PiBMZXQncyBnb29nbGUgc29tZXRoaW5nLi4uCj4gPiA+Pgo+ID4gPj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCAyOjQ3IFBNLCBUaWJvciBEaWdhbmEgPAo+IHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbQo+ID4gPj4KPiA+ID4+ID4gd3JvdGU6Cj4gPiA+Pj4gSW4gbXkgY29tcGFueSBJIGhhdmUgc3VjaCBzaXR1YXRpb24uCj4gPiA+Pj4gTWFraW5nIGEgdGFnIGZyb20gc3ViZm9sZGVyLgo+ID4gPj4+IEdpdCBhbHdheXMgbWFrZXMgdGhlIHRhZyBmcm9tIHRoZSByb290LCByaWdodD8KPiA+ID4+PiBMZXQncyBnb29nbGUgc29tZXRoaW5nLi4uCj4gPiA+Pj4KPiA+ID4+PiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDI6MDUgUE0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmPQpyZWUuZnIKPiA+Cj4gPiA+Pj4KPiA+ID4+PiB3cm90ZToKPiA+ID4+Pj4gdGhhbmtzIGZvciB5b3VyIGludGVyZXN0IGFuZCBmZWVkYmFjawo+ID4gPj4+Pgo+ID4gPj4+PiBMZSBzYW1lZGkgNyBvY3RvYnJlIDIwMTcsIDEyOjAwOjMyIENFU1QgVGlib3IgRGlnYW5hIGEgPUMzPUE5Y3JpdCA9CjoKPiA+ID4+Pj4gPiA3OCBpcyB0b28gbXVjaC4KPiA+ID4+Pj4KPiA+ID4+Pj4gbm90aWNlIHRoYXQgdGhlcmUgd291bGQgYWxzbyBiZSBhIHF1ZXN0aW9uIG9uIHRoZSBnaXQgcmVwb3MgbmFtaW5nCj4gPiA+Pj4+IGNvbnZlbnRpb24sCj4gPiA+Pj4+IHRvIGF2b2lkIGZsYXQgNzggbmFtZXMgYnV0IGtlZXAgYXQgbGVhc3QgMyBtZWFuaW5nZnVsIGdyb3Vwcwo+IChwbHVnaW5zLAo+ID4gPj4+PiBzaGFyZWQsCj4gPiA+Pj4+IHJlc291cmNlczogSSB0aGluayB0aGlzIGlzIG5vdCBhYnNvbHV0ZWx5IG5lY2Vzc2FyeSBmb3IgZG94aWEtdG9vbD0KcykKPiA+ID4+Pj4KPiA+ID4+Pj4gPiBUaGVyZSBpcyBubyBwcm9ibGVtIHRvIHRyaWdnZXIgcmVsZWFzZSBvdmVyIHN1Yi1mb2xkZXJzIGFuZCB0YWcgPQppdAo+ID4gPj4+Pgo+ID4gPj4+PiB3aXRoCj4gPiA+Pj4+Cj4gPiA+Pj4+ID4gcHJlZml4IHdoaWNoIGlzIGFscmVhZHkgZG9uZSBpbiBTVk4uCj4gPiA+Pj4+Cj4gPiA+Pj4+IGlzIGl0IHN1cHBvcnRlZCBieSBtYXZlbi1yZWxlYXNlIHBsdWdpbiB3aXRoIGdpdD8KPiA+ID4+Pj4KPiA+ID4+Pj4gbm90aWNlIEkgZGlkIG5vdCBrbm93IHRoYXQgZ2l0IHdhcyBhYmxlIHRvIHRhZyBvbmx5IGEgc3VidHJlZTogYnV0PQogSQo+ID4gPj4+PiBrbmV3IEkKPiA+ID4+Pj4gZG9uJ3QgeWV0IHVuZGVyc3RhbmQgZXZlcnkgYXNwZWN0IG9mIGdpdCBtYWdpYy4uLiA6KQo+ID4gPj4+Pgo+ID4gPj4+PiA+IFRoZSBDSSBidWlsZCBjYW4gYWx3YXlzIHRyaWdnZXIgdGhlIHJvb3QgYW5kIEplbmtpbnNmaWxlIHdvdWxkCj4gaGF2ZQo+ID4gPj4+PiA+IDQxCj4gPiA+Pj4+ID4gc3RhZ2VzIGZvciBwbHVnaW5zLCAyNiBzdGFnZXMgZm9yIFNoYXJlZCwgZXRjLgo+ID4gPj4+PiA+IEl0IGNhbiBiZSBkb25lIGluIEplbmtpbnNmaWxlIGFuZCBzbyB0aGUgc2hlbGwgd291bGQgbm90IHRocm93Cj4gPiA+Pj4+Cj4gPiA+Pj4+IGV4Y2VwdGlvbgo+ID4gPj4+Pgo+ID4gPj4+PiA+IGJ1dCBzdGF0dXMgd291bGQgYmUgc2V0IGluc3RlYWQgYW5kIGdvZXMgdG8gdGhlIG5leHQgc3RhZ2UuCj4gPiA+Pj4+ID4gSSBkbyBub3Qga25vdyBob3cgdG8gZGV0ZWN0IGluIEdpdFNDTSB3aGljaCBzdWItZm9sZGVyKHMpIHJlY2Vpdj0KZWQKPiA+ID4+Pj4KPiA+ID4+Pj4gYnV0IEkKPiA+ID4+Pj4KPiA+ID4+Pj4gPiBndWVzcyB0aGlzIGNhbiBiZSBpbnZlc3RpZ2F0ZWQuCj4gPiA+Pj4+Cj4gPiA+Pj4+ICsxCj4gPiA+Pj4+IGJ1dCBJIGRvbid0IGtub3cgd2hlcmUgdG8gbG9vayBmb3IgbXlzZWxmOiBvbiB0aGF0IHBvaW50LCBJIGhvcGUgdD0Kbwo+ID4gPj4+PiBoYXZlIHNvbWUKPiA+ID4+Pj4gaGVscCBmcm9tIEplbmtpbnNmaWxlIGV4cGVydHMKPiA+ID4+Pj4gYW5kIGV2ZW50dWFsbHkgc3RhcnQgd2l0aCBzdm4sIHRvIGhhdmUgc29tZXRoaW5nIGJlZm9yZSB0aGUgZ2l0Cj4gPiA+Pj4+IG1pZ3JhdGlvbgo+ID4gPj4+Pgo+ID4gPj4+PiA+IFRoZW4gaXQgY2FuIGJlIGEga2luZCBvZiBzd2l0Y2gtY2FzZSBvdmVyIGNvbW1pdHRlZCBmb2xkZXJzIGluCj4gPiA+Pj4+Cj4gPiA+Pj4+IEplbmtpbnNmaWxlLgo+ID4gPj4+Pgo+ID4gPj4+PiA+IFRoaXMgbWVhbnMgdGhhdCBldmVyeSB0aW1lIGFub3RoZXIgc3RhZ2Uvc3ViLWZvbGRlciBpcyBzaG93biBpbgo+ID4gPj4+Pgo+ID4gPj4+PiBQaXBlbGluZQo+ID4gPj4+Pgo+ID4gPj4+PiA+IHdoaWNoIHdpbGwgYmUgbWVzc3kgaW4gdGhlIFVJLiA6KAo+ID4gPj4+Pgo+ID4gPj4+PiBub3RpY2UgdGhhdCB3ZSBjYW4gcGVyaGFwcyBzcGxpdCB0aGUgcmVwb3MgaW4gbGVzcyBwYXJ0cyB0aGFuIHdlCj4gaGF2ZQo+ID4gPj4+PiBjb21wb25lbnRzOiBvbiBwbHVnaW5zLCBmb3IgZXhhbXBsZSwgd2UgYWxyZWFkeSBoYXZlIDQgY2F0ZWdvcmllcwo+IFsxXQo+ID4gPj4+PiB3aGljaAo+ID4gPj4+PiB3b3VsZCBhdm9pZCAxIHJlcG8gd2l0aCA0MSBwbHVnaW5zLCBidXQgbW9yZSBzb21ldGhpbmcgbGlrZQo+IDYrMTArMTArMTUKPiA+ID4+Pj4gSSBzdXBwb3NlIHdlIGNvdWxkIGRvIHRoZSBzYW1lIGZvciBzaGFyZWQgKHJlcG9ydGluZyBmb2xkZXIgY29tZXMKPiB0byBteQo+ID4gPj4+PiBtaW5kKQo+ID4gPj4+Pgo+ID4gPj4+PiBUaGUga2V5IGZlYXNpYmlsaXR5IGlzc3VlIGlzIHRoZSBjYXBhY2l0eSB0byByZWxlYXNlIGEgc3ViLWNvbXBvbmU9Cm50Cj4gPiA+Pj4+IGZyb20gZ2l0Cj4gPiA+Pj4+IHdpdGggbWF2ZW4tcmVsZWFzZS1wbHVnaW4sIElNSE8KPiA+ID4+Pj4gKHRha2luZyBhcGFydCB0aGUgZ2l0IHB1cmlzdHMgaWRlYSBvZiAxIGxpZmVjeWNsZSA9M0QgMSBnaXQgcmVwbykKPiA+ID4+Pj4KPiA+ID4+Pj4gUmVnYXJkcywKPiA+ID4+Pj4KPiA+ID4+Pj4gSGVydj1DMz1BOQo+ID4gPj4+Pgo+ID4gPj4+Pgo+ID4gPj4+PiBbMV0gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy8KPiA+ID4+Pj4KPiA+ID4+Pj4gPiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDQ6MTcgQU0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8Cj4gaGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID4gPj4+Pgo+ID4gPj4+PiB3cm90ZToKPiA+ID4+Pj4gPiA+IFRoZXJlIGFyZSA2IHN2biBsb2NhdGlvbnMgd2l0aG91dCBhbnkgc3BlY2lhbCBjb21wbGV4aXR5IHRoYXQKPiBhcmUKPiA+ID4+Pj4KPiA+ID4+Pj4gd2FpdGluZwo+ID4gPj4+Pgo+ID4gPj4+PiA+ID4gZm9yCj4gPiA+Pj4+ID4gPiBhIHZvbHVudGVlciBmb3IgZ2l0IG1pZ3JhdGlvbiBmb3IgYSBmZXcgeWVhcnMgYnV0IG5vYm9keSBkb2VzCj4gPiA+Pj4+Cj4gPiA+Pj4+IGFueXRoaW5nCj4gPiA+Pj4+Cj4gPiA+Pj4+ID4gPiBhYm91dDoKPiA+ID4+Pj4gPiA+IEkgc3RhcnRlZCAzIGRheXMgYWdvIHRvIGFzayBmb3IgaGVscCBhYm91dCBpdCBhbmQgZ290IHByZXR0eSBuPQpvCj4gPiA+Pj4+Cj4gPiA+Pj4+IGZlZWRiYWNrCj4gPiA+Pj4+Cj4gPiA+Pj4+ID4gPiBbMV0KPiA+ID4+Pj4gPiA+Cj4gPiA+Pj4+ID4gPiB0aGVuIHRoZXJlIGFyZSB0aGUgNCBjb21wbGV4IHN2biBsb2NhdGlvbnMgKHBsdWdpbnMsIHNoYXJlZCwKPiA+ID4+Pj4KPiA+ID4+Pj4gcmVzb3VyY2VzLAo+ID4gPj4+Pgo+ID4gPj4+PiA+ID4gZG94aWEtCj4gPiA+Pj4+ID4gPiB0b29scykgdGhhdCByZXF1aXJlIG11Y2ggbW9yZSB3b3JrOiBJIHN1cHBvc2Ugd2UgY2FuJ3QgdGVsbCBnaT0KdAo+ID4gPj4+Pgo+ID4gPj4+PiBtaWdyYXRpb24KPiA+ID4+Pj4KPiA+ID4+Pj4gPiA+IGlzCj4gPiA+Pj4+ID4gPiBhYmFuZG9uZWQsIGJ1dCBpdCB3aWxsIHJlcXVpcmUgc29tZW9uZSB0byB3b3JrIG9uIGl0IHNlcmlvdXNseQo+ID4gPj4+PiA+ID4gUmVtZW1iZXIgdGhhdCB0aGUga2V5IHF1ZXN0aW9uIFsyXSBpczogZG8gd2UgdHJhbnNmb3JtIHRoZXNlIDQKPiBzdm4KPiA+ID4+Pj4gPiA+IGxvY2F0aW9ucwo+ID4gPj4+PiA+ID4gaW50byA0MSArMjYgKyA2ICsgNSA9M0QgNzggaW5kZXBlbmRlbnQgZ2l0IHJlcG9zPwo+ID4gPj4+PiA+ID4gWWVzLCBJIHRvbGQgdGhhdCBKZW5raW5zIGNvbmZpZ3VyYXRpb24gaXMgb25lIGtleSBhc3BlY3Qgd2UKPiBuZWVkIGEKPiA+ID4+Pj4gPiA+IHN0cmF0ZWd5Cj4gPiA+Pj4+ID4gPiBhYm91dCwgaW4gcGFyYWxsZWwgd2l0aCBnaXQgc3RyYXRlZ3kuCj4gPiA+Pj4+Cj4gPiA+Pj4+ID4gPiB0aGVuIHRoZXJlIHdpbGwgYmUgdGhlIHJlbWFpbmluZyBjYXNlcyB3aGVyZSB3ZSBuZWVkIHRvIGRlY2lkZT0KOgo+ID4gPj4+PiBsb3dlcgo+ID4gPj4+Pgo+ID4gPj4+PiA+ID4gaW1wYWN0LAo+ID4gPj4+PiA+ID4gbG93ZXIgcHJpb3JpdHkuCj4gPiA+Pj4+ID4gPgo+ID4gPj4+PiA+ID4KPiA+ID4+Pj4gPiA+IFN1bW1hcnk6IG5vdGhpbmcgaXMgYWJhbmRvbmVkLCBidXQ6Cj4gPiA+Pj4+ID4gPiAtIHNpbXBsZSBjYXNlczogbm8gdm9sdW50ZWVyIHRvIGRvIHRoZSBqb2IKPiA+ID4+Pj4gPiA+IC0gaGFyZCBjYXNlczogaXMgdGhlcmUgYSB2b2x1bnRlZXIgZWl0aGVyIHRvIGRlZmluZSBhIHN0cmF0ZWd5Cj4gb3IKPiA+ID4+Pj4KPiA+ID4+Pj4gZG8gc29tZQo+ID4gPj4+Pgo+ID4gPj4+PiA+ID4gd29yawo+ID4gPj4+PiA+ID4gb24gaXQ/Cj4gPiA+Pj4+ID4gPgo+ID4gPj4+PiA+ID4KPiA+ID4+Pj4gPiA+IFJlZ2FyZHMsCj4gPiA+Pj4+ID4gPgo+ID4gPj4+PiA+ID4gSGVydj1DMz1BOQo+ID4gPj4+PiA+ID4KPiA+ID4+Pj4gPiA+IFsxXSBodHRwczovL2xpc3RzLmFwYWNoZS5vcmcvdGhyZWFkLmh0bWwvCj4gPiA+Pj4+ID4gPiBlZGYzNjQyYTdiZGQ1MTVmMGNhZDQyMWMyNTU4OTc0MTgxOTQ0NjQ2MzYxNGJmMDUxNWU1NmRiZUAKPiA+ID4+Pj4gPiA+ICUzQ2Rldi5tYXZlbi5hcGFjaGUub3JnJTNFCj4gPiA+Pj4+ID4gPgo+ID4gPj4+PiA+ID4gWzJdIGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvTUFWRU4vR2l0Cj4gPiA+Pj4+ID4gPiArTWlncmF0aW9uI0dpdE1pZ3JhdGlvbi1NaWdyYXRpbmdhbmFnZ3JlZ2F0b3J0cmVlaW50b2Fjb2xsZWMKPiA+ID4+Pj4KPiA+ID4+Pj4gdGlvbm9mZ2l0cmVwb3MKPiA+ID4+Pj4KPiA+ID4+Pj4gPiA+IExlIHZlbmRyZWRpIDYgb2N0b2JyZSAyMDE3LCAyMDozNTo0NSBDRVNUIEFybmF1ZCBIPUMzPUE5cml0aWVyPQogYQo+ID1DMz1BOWNyaXQgOgo+ID4gPj4+PiA+ID4gPiBCdXQgZGlkIHdlIGNvbXBsZXRlbHkgYWJhbmRvbmVkIHRoZSBpZGVhIG9mIG1vdmluZyBldmVyeXRoaW49CmcKPiB0bwo+ID4gPj4+Pgo+ID4gPj4+PiBnaXQgPwo+ID4gPj4+Pgo+ID4gPj4+PiA+ID4gPiBUaGUgQ0kgc2V0dXAgd2FzIHRoZSBtYWluIHN0b3AgZm9yIGl0ID8KPiA+ID4+Pj4gPiA+ID4KPiA+ID4+Pj4gPiA+ID4gT24gRnJpLCBPY3QgNiwgMjAxNyBhdCA4OjA1IFBNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+ID4gPj4+Pgo+ID4gPj4+PiBoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPiA+Pj4+Cj4gPiA+Pj4+ID4gPiB3cm90ZToKPiA+ID4+Pj4gPiA+ID4gPiBJIHdhcyBleHBlY3RpbmcgdGhlIHVzdWFsIGxpdGFueQo+ID4gPj4+PiA+ID4gPiA+Cj4gPiA+Pj4+ID4gPiA+ID4gd2hhdCBJJ20gbm90IGNvbmZpZGVudCBjdXJyZW50bHkgd2l0aCBwaXBlbGluZSBvbiBNYXZlbgo+IGNvcmUgaXMKPiA+ID4+Pj4KPiA+ID4+Pj4gdGhhdAo+ID4gPj4+Pgo+ID4gPj4+PiA+ID4gPiA+IHdlCj4gPiA+Pj4+ID4gPiA+ID4gaGF2ZQo+ID4gPj4+PiA+ID4gPiA+IGZvciBleGFtcGxlIHRoZSAibWF2ZW4tMy54LWplbmtpbnNmaWxlL01ORy02MjQyIC0gYnVpbGQgIzEKPiAtCj4gPiA+Pj4+Cj4gPiA+Pj4+IG51bGwiCj4gPiA+Pj4+Cj4gPiA+Pj4+ID4gPiA+ID4gbWVzc2FnZSwKPiA+ID4+Pj4gPiA+ID4gPiB3aXRoIHRoaXMgIm51bGwiIHBhcnQgdGhhdCBtYWtlcyBtZSB3b25kZXIgaWYgd2UgYXJlIHVzaW5nCj4gaXQKPiA+ID4+Pj4gPiA+ID4gPiBhcwo+ID4gPj4+PiA+ID4KPiA+ID4+Pj4gPiA+IGV4cGVjdGVkLgo+ID4gPj4+PiA+ID4KPiA+ID4+Pj4gPiA+ID4gPiBBbmQgZm9yIGxhcmdlIG11bHRpLW1vZHVsZSBzdm4gdHJ1bmtzICh0aGUgb25lcyB3ZSBkb24ndAo+ID4gPj4+Pgo+ID4gPj4+PiBtaWdyYXRlIHRvCj4gPiA+Pj4+Cj4gPiA+Pj4+ID4gPiBnaXQ6Cj4gPiA+Pj4+ID4gPiA+ID4gbWFpbmx5IHBsdWdpbnMgYW5kIHNoYXJlZCksIGlzIHRoZXJlIGEgc29sdXRpb24gdG8gcmVidWlsZAo+IGp1c3QKPiA+ID4+Pj4gPiA+ID4gPiBjaGFuZ2VkCj4gPiA+Pj4+ID4gPiA+ID4gbW9kdWxlcz8KPiA+ID4+Pj4gPiA+ID4gPgo+ID4gPj4+PiA+ID4gPiA+IGlkZWFsbHksIHRoZSByZWJ1aWxkIHdoZW4gYSBTTkFQU0hPVCBkZXBlbmRlbmN5IGlzIHB1Ymxpc2g9CmVkCj4gPiA+Pj4+Cj4gPiA+Pj4+IHdvdWxkCj4gPiA+Pj4+Cj4gPiA+Pj4+ID4gPiA+ID4gaGF2ZQo+ID4gPj4+PiA+ID4gPiA+IGJlZW4gYQo+ID4gPj4+PiA+ID4gPiA+IHBsdXMsIGJ1dCB0aGlzIGlzIHN1ZmZpY2llbnRseSBhIHJhcmUgdXNlIHRoYXQgSSB3b24ndCBiZQo+ID4gPj4+Pgo+ID4gPj4+PiBleHRyZW1pc3QKPiA+ID4+Pj4KPiA+ID4+Pj4gPiA+ID4gPiBUaGVuIElJVUMsIHRoaXMgbWlncmF0aW9uIGpvYiBpcyBvbmUgYWRkaXRpb25hbCBUT0RPIGZvcgo+IG1lLi4uCj4gPiA+Pj4+ID4gPiA+ID4KPiA+ID4+Pj4gPiA+ID4gPiBSZWdhcmRzLAo+ID4gPj4+PiA+ID4gPiA+Cj4gPiA+Pj4+ID4gPiA+ID4gSGVydj1DMz1BOQo+ID4gPj4+PiA+ID4gPiA+Cj4gPiA+Pj4+ID4gPiA+ID4gTGUgdmVuZHJlZGkgNiBvY3RvYnJlIDIwMTcsIDE3OjQ2OjUzIENFU1QgQXJuYXVkIEg9QzM9QTlyaT0KdGllciBhCj4gPiA+Pj4+Cj4gPiA+Pj4+ID1DMz1BOWNyaXQgOgo+ID4gPj4+PiA+ID4gPiA+ID4gSSBhZ3JlZSB0aGF0IHdlIHNob3VsZCB1c2UgcGlwZWxpbmUgbm93ZGF5cwo+ID4gPj4+PiA+ID4gPiA+ID4gcGVyaGFwcyBhIHNoYXJlZCBsaWIgaWYgd2Ugd2FudCB0byBzdGFuZGFyZGl6ZSBzb21lIHN0dWY9CmZzCj4gPiA+Pj4+Cj4gPiA+Pj4+IGFuZCBhIHNldAo+ID4gPj4+Pgo+ID4gPj4+PiA+ID4gb2YKPiA+ID4+Pj4gPiA+Cj4gPiA+Pj4+ID4gPiA+ID4gPiBtdWx0aS1icmFuY2hlcyBqb2JzIChvciBvcmcgZm9sZGVyIGJ1dCBpdCByZXF1aXJlcyBHaXRIdT0KYgo+IDooCj4gPiA+Pj4+ID4gPiA+ID4gPiApCj4gPiA+Pj4+ID4gPiA+ID4gPgo+ID4gPj4+PiA+ID4gPiA+ID4gT24gRnJpLCBPY3QgNiwgMjAxNyBhdCA5OjE2IEFNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+ID4+Pj4gPiA+ID4gPiA+Cj4gPiA+Pj4+ID4gPiA+ID4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+ID4+Pj4gPiA+ID4gPiA+ID4gT24gRnJpIDYgT2N0IDIwMTcgYXQgMDY6MzIsIEhlcnY9QzM9QTkgQk9VVEVNWSA8Cj4gPiA+Pj4+Cj4gPiA+Pj4+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPiA+ID4+Pj4KPiA+ID4+Pj4gPiA+ID4gPiB3cm90ZToKPiA+ID4+Pj4gPiA+ID4gPiA+ID4gPiBJIGp1c3QgZml4ZWQgYSBmZXcgZmFpbGluZyBqb2JzIFsxXSB0byBoYXZlIGFnYWluIGEKPiA+ID4+Pj4gPiA+ID4gPiA+ID4gPiB1c2FibGUKPiA+ID4+Pj4gPiA+Cj4gPiA+Pj4+ID4gPiBKZW5raW5zLgo+ID4gPj4+PiA+ID4KPiA+ID4+Pj4gPiA+ID4gPiA+ID4gPiBOb3cgSSdtIGZhY2luZyBzb21lIGlzc3VlcywgSSBzdXBwb3NlIGNhdXNlZCBieSBuZXdlPQpyCj4gPiA+Pj4+Cj4gPiA+Pj4+IEplbmtpbnMKPiA+ID4+Pj4KPiA+ID4+Pj4gPiA+ID4gPiB2ZXJzaW9uczoKPiA+ID4+Pj4gPiA+ID4gPiA+ID4gPiAtIE1hdmVuIDMuMC41IGNhdXNlcyBOb1N1Y2hNZXRob2RFcnJvcjoKPiA+ID4+Pj4gPiA+ID4gPiA+ID4gPiBvLmMucGxleHVzLnV0aWwueG1sLnB1bGwuCj4gPiA+Pj4+ID4gPiA+ID4gPiA+Cj4gPiA+Pj4+ID4gPiA+ID4gPiA+IE1YUGFyc2VyCj4gPiA+Pj4+ID4gPiA+ID4gPiA+Cj4gPiA+Pj4+ID4gPiA+ID4gPiA+ID4gWzJdCj4gPiA+Pj4+ID4gPiA+ID4gPiA+ID4gLSBJIGhhZCB0byBzd2l0Y2ggdG8gSkRLIDggZm9yIG1hdmVuLXBsdWdpbi10b29scyBqbz0KYiwKPiA+ID4+Pj4KPiA+ID4+Pj4gc2luY2UgSkRLCj4gPiA+Pj4+Cj4gPiA+Pj4+ID4gPiA+ID4gY2F1c2VzCj4gPiA+Pj4+ID4gPiA+ID4KPiA+ID4+Pj4gPiA+ID4gPiA+ID4gPiBmYWlsdXJlcyAobG9va3MgbGlrZSBKZW5raW5zIHVzZXMgYSBoYWNrIHRvIGluamVjdAo+IEpESyA3Cj4gPiA+Pj4+Cj4gPiA+Pj4+IGFzIGEKPiA+ID4+Pj4KPiA+ID4+Pj4gPiA+IHRvb2wKPiA+ID4+Pj4gPiA+Cj4gPiA+Pj4+ID4gPiA+ID4gd2hpbGUKPiA+ID4+Pj4gPiA+ID4gPgo+ID4gPj4+PiA+ID4gPiA+ID4gPiA+IHRoZQo+ID4gPj4+PiA+ID4gPiA+ID4gPiA+IGJ1aWxkIEpWTSBpcyBKYXZhIDgpCj4gPiA+Pj4+ID4gPiA+ID4gPiA+ID4KPiA+ID4+Pj4gPiA+ID4gPiA+ID4gPiBTaG91bGQgd2UgZHJvcCBNYXZlbiAzLjAuNSBidWlsZHMgYW5kIEpESyA3Pwo+ID4gPj4+PiA+ID4gPiA+ID4gPiA+IE5vdGljZSBJIGRpZG4ndCBjaGVjayB3aGljaCBpcyB0aGUgbWluaW11bSBNYXZlbgo+IHZlcnNpb24KPiA+ID4+Pj4gPiA+Cj4gPiA+Pj4+ID4gPiByZXF1aXJlZC4uLgo+ID4gPj4+PiA+ID4KPiA+ID4+Pj4gPiA+ID4gPiA+ID4gPiBPciBwZXJoYXBzIHNpbXBseSBkb24ndCB1c2UgdGhlIEplbmtpbnMgTWF2ZW4gcGx1Z2luCj4gd2l0aAo+ID4gPj4+Pgo+ID4gPj4+PiB0aGlzCj4gPiA+Pj4+Cj4gPiA+Pj4+ID4gPiBNYXZlbgo+ID4gPj4+PiA+ID4KPiA+ID4+Pj4gPiA+ID4gPiA+ID4gMy4wLjUKPiA+ID4+Pj4gPiA+ID4gPiA+ID4KPiA+ID4+Pj4gPiA+ID4gPiA+ID4gPiBvcgo+ID4gPj4+PiA+ID4gPiA+ID4gPiA+IEpESyA3IGNvbmZpZ3VyYXRpb246IGRlZmF1bHQgYnVpbGQgYXMgSmVua2lucyBNYXZlbgo+ID4gPj4+Pgo+ID4gPj4+PiBwbHVnaW4gd2l0aAo+ID4gPj4+Pgo+ID4gPj4+PiA+ID4gSkRLCj4gPiA+Pj4+ID4gPgo+ID4gPj4+PiA+ID4gPiA+IDggKwo+ID4gPj4+PiA+ID4gPiA+Cj4gPiA+Pj4+ID4gPiA+ID4gPiA+ID4gbGF0ZXN0Cj4gPiA+Pj4+ID4gPiA+ID4gPiA+ID4gTWF2ZW4sIGFuZCBvdGhlciBjb25maWd1cmF0aW9ucyBhcyBzY3JpcHRlZCBqb2JzPwo+ID4gPj4+PiA+ID4gPiA+ID4gPgo+ID4gPj4+PiA+ID4gPiA+ID4gPiBodHRwOi8vamF2YWFkdmVudHVyZS5ibG9nc3BvdC4KPiBpZS8yMDEzLzExL2plbmtpbnMtbWF2ZW4tam9iLT4gPj4+PiA+ID4gPiA+ID4gPiA+Cj4gPiA+Pj4+ID4gPiA+ID4KPiA+ID4+Pj4gPiA+ID4gPiB0eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sCj4gPiA+Pj4+ID4gPiA+ID4KPiA+ID4+Pj4gPiA+ID4gPiA+ID4gPGh0dHA6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90LmllLzIwMTMvMTEvamVua2lucy0+ID4KPiA+ID4+Pj4gPiA+ID4gPgo+ID4gPj4+PiA+ID4gPiA+IG1hdmVuLWpvYi10eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sP209M0QxPgo+ID4gPj4+PiA+ID4gPiA+Cj4gPiA+Pj4+ID4gPiA+ID4gPiA+IFdlIHNob3VsZCBzdG9wIHVzaW5nIHRoZSBldmlsIGpvYiB0eXBlIGFzIGl0PUUyPTgwPTk5cz0KIG1pbmltdW0KPiBKYXZhCj4gPiA+Pj4+ID4gPgo+ID4gPj4+PiA+ID4gdmVyc2lvbiBpcwo+ID4gPj4+PiA+ID4KPiA+ID4+Pj4gPiA+ID4gPiA+ID4gZGljdGF0ZWQgYnkgSmVua2lucz1FMj04MD05OSBKYXZhIG1pbmltdW0uCj4gPiA+Pj4+ID4gPiA+ID4gPiA+Cj4gPiA+Pj4+ID4gPiA+ID4gPiA+ID4gV2UgbmVlZCB0byBkZWZpbmUgb3VyIGNvbW1vbiBzdHJhdGVneSBhbmQgaGF2ZSBhCj4gPiA+Pj4+Cj4gPiA+Pj4+IGNvbnNpc3RlbnQKPiA+ID4+Pj4KPiA+ID4+Pj4gPiA+ID4gPiA+ID4gPiBjb25maWd1cmF0aW9uCj4gPiA+Pj4+ID4gPiA+ID4gPiA+ID4gZm9yCj4gPiA+Pj4+ID4gPiA+ID4gPiA+ID4gZXZlcnkgam9iIHVuZGVyc3Rvb2QgYnkgZXZlcnlib2R5Cj4gPiA+Pj4+ID4gPiA+ID4gPiA+Cj4gPiA+Pj4+ID4gPiA+ID4gPiA+IEkgcmVjb21tZW5kIEplbmtpbnNmaWxlIGFuZCB0aGUgYHdpdGhNYXZlbmAgd3JhcHBlcgo+ID4gPj4+PiA+ID4gPiA+ID4gPgo+ID4gPj4+PiA+ID4gPiA+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+Pj4+ID4gPiA+ID4gPiA+ID4KPiA+ID4+Pj4gPiA+ID4gPiA+ID4gPiBIZXJ2PUMzPUE5Cj4gPiA+Pj4+ID4gPiA+ID4gPiA+ID4KPiA+ID4+Pj4gPiA+ID4gPiA+ID4gPiBbMV0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuLwo+ID4gPj4+PiA+ID4gPiA+ID4gPiA+Cj4gPiA+Pj4+ID4gPiA+ID4gPiA+ID4gWzJdCj4gPiA+Pj4+ID4gPiA+ID4gPiA+ID4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy8KPiB2aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi0+Cj4gPiA+Pj4+ID4gPiA+ID4gPiA+Cj4gPiA+Pj4+ID4gPiA+ID4gPiA+IHBsdWdpbi10b29scy1qZGstMS43LzE2Mi9jb25zb2xlCj4gPiA+Pj4+ID4gPiA+ID4gPiA+Cj4gPiA+Pj4+ID4gPiA+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+Pj4+Cj4gPiA+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPj4+Pgo+ID4gPj4+PiA+ID4gPiA+IC0tLS0tLS0tLQo+ID4gPj4+PiA+ID4gPiA+Cj4gPiA+Pj4+ID4gPiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZT0KLgo+IG9yZwo+ID4gPj4+Pgo+ID4gPj4+PiA+ID4gPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6Cj4gPiA+Pj4+IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+Pj4KPiA+ID4+Pj4gPiA+ID4gPiA+ID4gPiAtLQo+ID4gPj4+PiA+ID4gPiA+ID4gPgo+ID4gPj4+PiA+ID4gPiA+ID4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+ID4+Pj4gPiA+ID4gPgo+ID4gPj4+PiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPj4+Pgo+ID4gPj4+PiAtLS0tLS0tLS0KPiA+ID4+Pj4KPiA+ID4+Pj4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4+PiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+Pj4gPiA+Cj4gPiA+Pj4+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4+Pj4KPiA+ID4+Pj4gLS0tLS0tLS0tCj4gPiA+Pj4+Cj4gPiA+Pj4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4+Pgo+ID4gPj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtLS0tLS0tLS0KPiA+ID4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4+Cj4gPiA+Pj4gLS0KPiA+ID4+PiBDaGVlcnMKPiA+ID4+PiBUaWJvcgo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCgotLT0yMAotLS0tLQpBcm5hdWQgSD1DMz1BOXJpdGllcgpodHRwOi8vYWhlcml0aWVyLm5ldApNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQpUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyCgotLTAwMWExMTRkYWQ0NjNjZWRjNTA1NWFmYWIzOTUtLQoKCkZyb20gZGV2LXJldHVybi0xMjQ2NjktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIE5vdiAyOSAxMjowNTozNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ2NjktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMkM1NkYxMDkyRgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDI5IE5vdiAyMDE3IDEyOjA1OjM1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjAzMjEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjkgTm92IDIwMTcgMTI6MDU6MzQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIwMjEzIGludm9rZWQgYnkgdWlkIDUwMCk7IDI5IE5vdiAyMDE3IDEyOjA1OjM0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjAyMDEgaW52b2tlZCBieSB1aWQgOTkpOyAyOSBOb3YgMjAxNyAxMjowNTozNCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMjkgTm92IDIwMTcgMTI6MDU6MzQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBCN0Q0NkMwRDcwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyOSBOb3YgMjAxNyAxMjowNTozMyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuMDc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuMDc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtCX1dBTV9GUk9NX05BTUVfU0lOR0xFV09SRD0wLjIsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgOWV4aFRwTGNzWlZoIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJV2VkLCAyOSBOb3YgMjAxNyAxMjowNTozMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLWxmMC1mNDcuZ29vZ2xlLmNvbSAobWFpbC1sZjAtZjQ3Lmdvb2dsZS5jb20gWzIwOS44NS4yMTUuNDddKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNjY5NTU1RjI2MAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjkgTm92IDIwMTcgMTI6MDU6MjkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtbGYwLWY0Ny5nb29nbGUuY29tIHdpdGggU01UUCBpZCBlMTM3c28zNTc4MDU0bGZnLjUKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyOSBOb3YgMjAxNyAwNDowNToyOSAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1taThVSUxuMVBTbm5lZUJKS3ZKMm4xaFNGU2VzMHZabGNtWnd2VTdnUm1RPTsKICAgICAgICBiPXFMWVZOZWFpSnplckJ3NzRMbWViZUtneVJIOW1ScXJNVGdEdVJ3MDhVZkhXeDI4SUROanVLNE95WTF3SnRoVm51NgogICAgICAgICA2ZFNnaFJ1bkRLYTg2b0hpb2dISW1ZRk5nR0pnUGpYVE9SRUVTVVVpalFmN1VQRmVWZ293NmVEZnZ6cFZpbUEwdUJsNgogICAgICAgICBJQ2o2VkJWWURFN2txUXNCdFNVd04xaEFPY0RiOTN3TStqYVJrRnIyTTNpZEp5ZUVHVWhDbS9aSkxDaVgxbS9EV3JqYwogICAgICAgICBwVEQvVUkvQnRaeEYwdHIrMUVXcWs2NTFhbFhPL3VsUlZscmphM2ZsQi92b3F3Q0pSdFJmZVVqd2VBYXVkdEZXUkViagogICAgICAgICBUUTh6RXRFa2ZzWjR3NmJFQzFWUVowczI3TDB2OXdTN0RHeVpvUXJUOHBlOWp1K2pPMjYyZkx2cGpyZXJNdnlkc2VMYgogICAgICAgICBtbVFBPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1taThVSUxuMVBTbm5lZUJKS3ZKMm4xaFNGU2VzMHZabGNtWnd2VTdnUm1RPTsKICAgICAgICBiPWRXUm8xME5zRFNnSmt2K3pRSFBDbmJHRUhPY00rOVBGMVZocUhxTFZTUW1jYWE3bVRVeTVYL3FpZVI5L0p4SXRNdwogICAgICAgICBHYjBnR2MvM3BLSCt2bGIvMU45WXg1UG5MYWVlZzc1OTZMVkRIMGxTL3UwYmlUb2hwYWFRRGdEdEhreTRUbTdYek9jSQogICAgICAgICBXL0JlVUF5eHpLQUd4ckZBcXVMcm11UnhJVFdIaWtscGswSzNJM1JOVlZhR052T3IyMjdad1VqckFPMXpqdW5seGJ0cgogICAgICAgICBmdy9DbDJUSVVCNmZ5bmhxbEFYakQvL21ZaHZodDNpMVIvYlZzbFFHZzFiTmNiUFpUVG00MVZGVFBIeFVtcS9xSTJqNwogICAgICAgICBtTkZjL0MybnE2ZGprM1B1UVh6dE1VRk1ha29KOGY1UmY5TkUxYlVoc0YrRXZYUWtHbmZFZUY0V3ViWmI0enFqVWc3dwogICAgICAgICBnQkl3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg0ZUFyN3ZoYUZTUFBpQjlmcGIwbXRjSThmV1JvM0c0OUg0YklnWGNHSkRqNnJsSWJ2aQoJSTdZLytnd3Q4Q1FFNnpxbFNmV0gvaU5WcWk1R1g1bG4yZlIwRllkVGxRPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TWFLUjdONWVHOXFRalI5aFFmWml1QlNxV0JHOTZFUCt3dk9YZEdIbU9DOXJiYUI0N1JtbmFiKzVUZFQzZTZESEtXdEtFQWI0dCtHRm52c1ZOZzRDUjA9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjI1LjE5OC4yMTUgd2l0aCBTTVRQIGlkIHcyMDZtcjEwNDAwMzNsZmYuOC4xNTExOTU3MTI4NDk1OwogV2VkLCAyOSBOb3YgMjAxNyAwNDowNToyOCAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMjUuODEuODcgd2l0aCBIVFRQOyBXZWQsIDI5IE5vdiAyMDE3IDA0OjA1OjA3IC0wODAwIChQU1QpCkluLVJlcGx5LVRvOiA8Q0ErblBuTXhoM0h0dVNqMHo2Tj1uQnFkRGNyOHg2NUdKZW8xR3FDTWhTMXE9QzZxYVpnQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXdNQkc2cCtpTWd2ME45RFJ0MzY5dEUzejVyQW9rWk5LWDRLSkx3czJyQzdBQG1haWwuZ21haWwuY29tPgogPENBK25Qbk14Q0RxaVB6azFuOEVHRjA0WFBGWVpkTytidlRNTkE1K2tFMlJkcVB0MlF2UUBtYWlsLmdtYWlsLmNvbT4gPENBK25Qbk14aDNIdHVTajB6Nk49bkJxZERjcjh4NjVHSmVvMUdxQ01oUzFxPUM2cWFaZ0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogPT9VVEYtOD9RP0FybmF1ZF9IPUMzPUE5cml0aWVyPz0gPGFoZXJpdGllckBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMjkgTm92IDIwMTcgMTM6MDU6MDcgKzAxMDAKTWVzc2FnZS1JRDogPENBRk5DVS1fT2s5T05jaXVpPTZBdnFtQUc4ZWdab21BYUZBNFRmRC0zZ3Rrd3lQemlkUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IE5ldyBKZW5raW5zIGludGVncmF0aW9uClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzFhMWRhYzhmNDg4NTA1NWYxZGYzNTYiCgotLTk0ZWIyYzFhMWRhYzhmNDg4NTA1NWYxZGYzNTYKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKQXdlc29tZQoKT24gV2VkLCBOb3YgMjksIDIwMTcgYXQgMTI6MjEgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgPApzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKCj4gLSBbeF0gRW1haWwgbm90aWZpY2F0aW9uIGNvbnRhaW5zIHRhaWwgb2YgY29uc29sZSBsb2cKPiAtIFt4XSBCdWlsZCBkZXNjcmlwdGlvbiBzZXQgdG8gSklSQSB0aWNrZXQgaWQncwo+Cj4gT2suLi4gSSB0aGluayB3ZSBhcmUgZ29sZGVuIG5vdwo+Cj4gT24gMjkgTm92ZW1iZXIgMjAxNyBhdCAwOTo0OCwgU3RlcGhlbiBDb25ub2xseSA8Cj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiA+IC0gW3hdIEpJUkEgaXNzdWVzIHVwZGF0ZWQKPiA+Cj4gPiBPbiAyOSBOb3ZlbWJlciAyMDE3IGF0IDA5OjQ1LCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4KPiA+PiBPaywgaGVyZSdzIHRoZSBjdXJyZW50IHN0YXR1czoKPiA+Pgo+ID4+IC0gW3hdIENyb3NzIE9TL0pESyBtYXRyaXggYnVpbGRpbmcKPiA+PiAtIFt4XSBGYXN0IGZhaWwKPiA+PiAtIFt4XSBFbWFpbCBub3RpZmljYXRpb24KPiA+PiAtIFt4XSBFbWFpbCBub3RpZmljYXRpb24gaW5jbHVkZXMgcmVjZW50IGNoYW5nZXMKPiA+PiAtIFsgXSBFbWFpbCBub3RpZmljYXRpb24gY29udGFpbnMgdGFpbCBvZiBjb25zb2xlIGxvZwo+ID4+IC0gWyBdIEpJUkEgaXNzdWVzIHVwZGF0ZWQKPiA+PiAtIFsgXSBCdWlsZCBkZXNjcmlwdGlvbiBzZXQgdG8gSklSQSB0aWNrZXQgaWQncwo+ID4+Cj4gPgo+ID4KPgoKCgotLT0yMAotLS0tLQpBcm5hdWQgSD1DMz1BOXJpdGllcgpodHRwOi8vYWhlcml0aWVyLm5ldApNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQpUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyCgotLTk0ZWIyYzFhMWRhYzhmNDg4NTA1NWYxZGYzNTYtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDEzNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgT2N0ICAzIDEwOjEzOjE4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDEzNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAxOTZFMTEwQUM2Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgIDMgT2N0IDIwMTcgMTA6MTM6MTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3NDIzMyBpbnZva2VkIGJ5IHVpZCA1MDApOyAzIE9jdCAyMDE3IDEwOjEzOjE3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NDE2NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAzIE9jdCAyMDE3IDEwOjEzOjE3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzQxNTQgaW52b2tlZCBieSB1aWQgOTkpOyAzIE9jdCAyMDE3IDEwOjEzOjE3IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAwMyBPY3QgMjAxNyAxMDoxMzoxNyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEE0NTJGQzQzNjIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsICAzIE9jdCAyMDE3IDEwOjEzOjE2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC4xClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTAuMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxLAoJVVJJQkxfQkxPQ0tFRD0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFdoLW9kOEZkYWtsOSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVR1ZSwgIDMgT2N0IDIwMTcgMTA6MTM6MTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC11YTAtZjE3NS5nb29nbGUuY29tIChtYWlsLXVhMC1mMTc1Lmdvb2dsZS5jb20gWzIwOS44NS4yMTcuMTc1XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDYyQjAyNUZERDEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsICAzIE9jdCAyMDE3IDEwOjEzOjE1ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXVhMC1mMTc1Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIDk3c280ODYxNDQ1dWFpLjYKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAwMyBPY3QgMjAxNyAwMzoxMzoxNSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bwogICAgICAgICA6Y2M7CiAgICAgICAgYmg9YmdkdHBUdFBoNmpZVy9yNGxzODFkQVpzUDV4ZFdualNnUnF2M2ZVZk1Xcz07CiAgICAgICAgYj1McEFKQnVMT292R2VlRmpqKzZFS0s2WlA2SVAzbkRmQ1daSFFTcy9PRFRIb3hvbm9CTEt4UTVnTXZSVGtyb0pVdzgKICAgICAgICAgbnlKVkVyejkyTi9KdTN4QW5pNk0zUUVkWUp6djQ2UmptUWJack9idlNpb1NEbHY3Q2lOb0laUXR0MGV2RjJvOFYrcHcKICAgICAgICAgZ25FekNqbG53YkhrUm45VmVuL1N4R2I3Q0FiWEZnNVVMcktHaUxMNG5XTkZ1dml1NyswWUpWWThaYzJuSVhZZVdmd0IKICAgICAgICAgYTZDRzFwa29UUTVqUFA1RjRMaEYwUHVvVE5HWVA1TFIxZGo4R3QwUlM1RzlXR1FHUFRlQVpIeExqNThrZS84OGRxVjIKICAgICAgICAgd0t6U1V5SmhPWWNKcENOb1RJT0Iwc09ZQlNvSVh0SHBnSFlCaEFuTUxEanpnWkcvRk41dENOdjJZNm0wUE8xQlNTeGwKICAgICAgICAgNUsrQT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG86Y2M7CiAgICAgICAgYmg9YmdkdHBUdFBoNmpZVy9yNGxzODFkQVpzUDV4ZFdualNnUnF2M2ZVZk1Xcz07CiAgICAgICAgYj1LbHVmb2FqTndwbmxvUE5QcUtjeWMyM212SGttbnNtMnZMUUhJbGlXSEFaSEtuMlcwbHFKa1pmOWdUQW5TV2FYZzEKICAgICAgICAgb0hhZ3NERUwxNUpaTmljMXFIalluMXZ0UWg1bTVTY3pMSktnTW40VUlBa3ZhRkt5UzY1RjFwUTNSUXlQak8xdmEwd3kKICAgICAgICAgYVhjd0hQMGVPK2hEbTMvc25EV0k0N29iSmRYOVhJKytUQ1lULy9LMzQ4SUptOU15MnprUXBZcDROTGNaTlBtV2xJUk0KICAgICAgICAgeTJ1L2ptbElTMHRQVmlhemNQV2ZKVitYY29RMktVcHU3dzR5bWoraWJpb0V2ZEk0ZHp2N3hudEV2RjlXeGJFR3ltWVMKICAgICAgICAgS2dwaVFpZnlIMjlhc1hqamdsUVpwUWZkMjlpaDJYSSt5VENFZ3BVNmpiMEdIQUVWVnhTTFhxcFJCQjUwc3NzVlJXRFUKICAgICAgICAgcDNuUT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhV3dhNjhOQVRqcDdHSUhwOTBtRzRNNTkzMGZ4SUt5WURBb1FzOWh3aFVjbURoOGh0K3oKCVEwTHdwTytMYzUyaTcxWUlqTldGVFBiaVV4Q0F6YWxUdXRoRUNnUHh2Zz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FCTHZ6Vy9QR2NXenZsenEzNlloRGVpR3lSa3lqRzhFVzAxUytnNitNeXkxaGVhM3RpSm9ua0lxb3pXaU9vTE1EMnQrazE1RnY0NmtmZkVOdTNtcjZrPQpYLVJlY2VpdmVkOiBieSAxMC4xNTkuNjEuODEgd2l0aCBTTVRQIGlkIG0xN21yNDg3MjQ4N3VhaS40OS4xNTA3MDI1NTk0NTcxOwogVHVlLCAwMyBPY3QgMjAxNyAwMzoxMzoxNCAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTc2Ljg1LjEzNiB3aXRoIEhUVFA7IFR1ZSwgMyBPY3QgMjAxNyAwMzoxMjo1MyAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPENBUG95QnFUOFk4ck5iTERPcE9TdUd1PTJXbmRudk5uRmYtX245eVZRMkY0enh4Ym1id0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk14eUcyTmVQWHBWcWF3ZTlqUj1pdEhFVDZVdWRuTjlDakhodj1vby1LQ3J4d0BtYWlsLmdtYWlsLmNvbT4KIDxwb255LTU2YTNhZGVhZjYwYzQwNTk2ZmIyODRiMjQ1MjQxNDhmNjA1ZThkMjMtNTJkNDFjZDQwZjIzNDNjODk1Mjg4MGU4Zjg0ZGEzZTgwZDMzNTUwOUBkZXYubWF2ZW4uYXBhY2hlLm9yZz4KIDxDQStuUG5NeVMycTF1ZmFXK1M2c21oWloxSmN4aGY5aFk1LTNuQkotaUNXZWpQVUFEVkFAbWFpbC5nbWFpbC5jb20+CiA8MjA1Nzk0OC5rMUd5Zmp1R1hkQGdpZ2E+IDxDQStuUG5Nd2NvSEZadlVxV2lVc3lIQmhhTW1vU2NjeWRUQnN6U1hnc0d0Rj13TkdES3dAbWFpbC5nbWFpbC5jb20+CiA8Q0FLRFVOMXY1VHNGbitvLXZ2OEhoM1B1dkdYV2UrZlFuTStqd0RadCs9enR4c3BjZ2d3QG1haWwuZ21haWwuY29tPgogPENBK25Qbk15Y1RaZFh0QXVSYzIrLTBxREtFUExMSkhvR0o2SDhkWj1aeWtPYVh1VzNYUUBtYWlsLmdtYWlsLmNvbT4KIDxDQStuUG5NeUxaMkRIbWppZHlSNHJMR19ra3Z5ZjJ6Sk02X0YrZ2ZiQmZ6QnZObjRxQlFAbWFpbC5nbWFpbC5jb20+CiA8Q0FGTkNVLTh2Q3BtazUtRGNZdz1RdEE3Y1k4T21nVTlkajFqSzFxNXJyR1dIUmI0cF9nQG1haWwuZ21haWwuY29tPiA8Q0FQb3lCcVQ4WThyTmJMRE9wT1N1R3U9MlduZG52Tm5GZi1fbjl5VlEyRjR6eHhibWJ3QG1haWwuZ21haWwuY29tPgpGcm9tOiA9P1VURi04P1E/QXJuYXVkX0g9QzM9QTlyaXRpZXI/PSA8YWhlcml0aWVyQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAzIE9jdCAyMDE3IDEyOjEyOjUzICswMjAwCk1lc3NhZ2UtSUQ6IDxDQUZOQ1UtX3RpZGdqN3dFUVMzT0U4SD1WNmdPVjhMYi1zYmRnYjh4X1dUUzJOU1VfT3dAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNjOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiwgT2xlZyBOZW5hc2hldiA8by52Lm5lbmFzaGV2QGdtYWlsLmNvbT4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwODllMDhlNGQ3MGIzYjYzYzIwNTVhYTFiZDkzIgoKLS0wODllMDhlNGQ3MGIzYjYzYzIwNTVhYTFiZDkzCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkBTdGVwaGVuIFdoYXQgc2hvdWxkIHdlIGRvIG5vdyA/CgoKT24gVHVlLCBTZXAgMTksIDIwMTcgYXQgMzoxNCBBTSwgT2xpdmllciBMYW15IDxvbGFteUBhcGFjaGUub3JnPiB3cm90ZToKCj4gSGkKPiBTb3JyeSBhIGJpdCBvdXQgb2YgdGltZSBBVE0gZm9yIHRlc3RpbmcgdGhpcy4KPiBXZWxsIEkgdHJ1c3QgQXJuYXVkIHRlc3RpbmcgdGhhdCBlc3BlY2lhbGx5IGlmIHRoaXMgaW1wcm92ZSB0aGUgcGVyZm9ybWFuPQpjZQo+IG9mIHRoaXMgdmVyeSBncmVhdC9hd2Vzb21lL3VzZXJzIG9yaWVudGVkIHBsdWdpbiA6UAo+Cj4gT24gMTMgU2VwdGVtYmVyIDIwMTcgYXQgMjI6MTksIEFybmF1ZCBIPUMzPUE5cml0aWVyIDxhaGVyaXRpZXJAYXBhY2hlLm9yZz0KPgo+IHdyb3RlOgo+Cj4gPiBEYW1uZWQsIGNhbid0IHdlIGJlIGFub255bW91cyBvbiBHaXRodWIgPwo+ID4gSSBtYWludGFpbiBpdCBpcyBhIGJpZyB3b3JkLCBJJ20gdHJ5aW5nIHRvIGZpeCBtb3JlIGJ1Z3MgdGhhbiBJIGFkZCBuZXcKPiA+IG9uZXMKPiA+IEkgYWRkZWQgT2xlZyBpbiB0aGUgbG9vcCBhcyBoZSBjb250cmlidXRlZCBhIGxvdCBvbiBpdCB0b28KPiA+IEkgZGlkIGEgcXVpY2sgdGVzdCB0byBidWlsZCBvbiBKZW5raW5zIDIuNjAuMyBvdXIgbWF2ZW4gY29yZSB3aXRoIHRoZQo+IEV2aWwKPiA+IE1hdmVuIHBsdWdpbiAyLjE3IG9uIGEgbG9jYWwgU1NIIGFnZW50IGFuZCBpdCBpcyBvawo+ID4gQnV0IGl0IGlzIHJlYWxseSBhIHF1aWNrIHRlc3QgLi4uCj4gPgo+ID4gQ2hlZXJzCj4gPgo+ID4KPiA+Cj4gPiBPbiBXZWQsIFNlcCAxMywgMjAxNyBhdCAxMDowNyBBTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+Cj4gPiA+IE9uIDEzIFNlcHRlbWJlciAyMDE3IGF0IDAxOjA1LCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+Cj4gPiA+PiBPbiAxMyBTZXB0ZW1iZXIgMjAxNyBhdCAwMDoyNiwgQW5kZXJzIEhhbW1hciA8YW5kZXJzQGhhbW1hci5uZXQ+Cj4gd3JvdGU6Cj4gPiA+Pgo+ID4gPj4+IE9uIFR1ZSwgU2VwIDEyLCAyMDE3IGF0IDg6NTQgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4gPj4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPj4+Cj4gPiA+Pj4gPiBIYXZlIHdlIGdvdCBhbnkgZmVlZGJhY2sgZnJvbSB0aGUgZW1iZWRkZXIgaW50ZWdyYXRpb25zIHlldD8KPiA+ID4+PiA+Cj4gPiA+Pj4KPiA+ID4+PiBJIGhhdmVuJ3QgaGVhcmQgYW55dGhpbmcgZnJvbSB0aGUgbTJlIHBlb3BsZS4gTWF5YmUgd2UgbmVlZCB0byBwaW5nCj4gPiB0aGVtCj4gPiA+Pj4gZGlyZWN0bHkuIEkgY2FuIGNvbnRhY3QgRnJlZCBCcmljb24uCj4gPiA+Pj4KPiA+ID4+PiAvQW5kZXJzCj4gPiA+Pj4KPiA+ID4+Pgo+ID4gPj4gUGxlYXNlIGRvLCBhbHNvIGlmIGFueW9uZSBoYXMgYSBjb250YWN0IGluIG5ldGJlYW5zIG9yIGludGVsbGlqIGFuZAo+ID4gY291bGQKPiA+ID4+IGxldCB0aGVtIGtub3cgd2UnZCBsaWtlIGVpdGhlciBmZWVkYmFjayBvciAid2UncmUgb2sgaWYgTU5HLTYyNzUgbWFrPQplcwo+ID4gPj4gdHJvdWJsZSBmb3IgdXMsIGdvIGFoZWFkIGFuZCByZWxlYXNlIi4gSSdkIGxpa2UgdG8gY2xvc2UgdGhlIHZvdGUgb24KPiA+IEZyaWRheQo+ID4gPj4gMTM6MDAgVVRDLgo+ID4gPj4KPiA+ID4+Cj4gPiA+Cj4gPiA+IE9saXZpZXIgLyBBcm5hdWQsIGhhdmUgZWl0aGVyIG9mIHlvdSBoYWQgYSBjaGFuY2UgdG8gdGVzdCB0aGlzIHdpdGggdD0KaGUKPiA+ID4gZXZpbCBwcm9qZWN0IHR5cGVbMV0gYXMgeW91IHR3byBzZWVtIHRvIGJlIHRoZSBhY3RpdmUgbWFpbnRhaW5lcnNbMl0KPiA+ID4KPiA+ID4gWzFdOiBodHRwczovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuaWUvMjAxMy8xMS9qZW5raW5zLQo+ID4gPiBtYXZlbi1qb2ItdHlwZS1jb25zaWRlcmVkLWV2aWwuaHRtbAo+ID4gPiBbMl06IGh0dHBzOi8vZ2l0aHViLmNvbS9qZW5raW5zY2kvbWF2ZW4tcGx1Z2luL2NvbW1pdHMvbWFzdGVyCj4gPiA+Cj4gPgo+ID4KPiA+Cj4gPiAtLQo+ID4KPiA+IEFybmF1ZAo+ID4KPgo+Cj4KPiAtLQo+IE9saXZpZXIgTGFteQo+IGh0dHA6Ly90d2l0dGVyLmNvbS9vbGFteSB8IGh0dHA6Ly9saW5rZWRpbi5jb20vaW4vb2xhbXkKPgoKCgotLT0yMAotLS0tLQpBcm5hdWQgSD1DMz1BOXJpdGllcgpodHRwOi8vYWhlcml0aWVyLm5ldApNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQpUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyCgotLTA4OWUwOGU0ZDcwYjNiNjNjMjA1NWFhMWJkOTMtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDU1Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgTm92IDIxIDA3OjQ2OjMwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDU1Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA1M0JCRjEwQkVCCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMjEgTm92IDIwMTcgMDc6NDY6MzAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxNTg3OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBOb3YgMjAxNyAwNzo0NjozMCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTU0ODEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjEgTm92IDIwMTcgMDc6NDY6MjkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNTQ1NyBpbnZva2VkIGJ5IHVpZCA5OSk7IDIxIE5vdiAyMDE3IDA3OjQ2OjI5IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAyMSBOb3YgMjAxNyAwNzo0NjoyOSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEIzNzFEMTgwMzUzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyMSBOb3YgMjAxNyAwNzo0NjoyOCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuMzc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuMzc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGZQd0Vza3ZuNzE5dCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVR1ZSwgMjEgTm92IDIwMTcgMDc6NDY6MjcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC1sZjAtZjQ1Lmdvb2dsZS5jb20gKG1haWwtbGYwLWY0NS5nb29nbGUuY29tIFsyMDkuODUuMjE1LjQ1XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDNDNTY1NjBEOEMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDIxIE5vdiAyMDE3IDA3OjQ2OjI3ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLWxmMC1mNDUuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgbTFzbzEyOTUzMDQ5bGZqLjkKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAyMCBOb3YgMjAxNyAyMzo0NjoyNyAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1zVW9yekpSWnpxQWhYeUh5QmRtVGhrTnBIa2NaclhXYmphNUtvcCtIbGJnPTsKICAgICAgICBiPU9UOU5aZ3pJOS82eWtYWW9VY3ZlOFlORVVReTllUnkyN29od1pHdjZNd3lBNEVXOXIveHpVOWhBSy91dnptNTJMUwogICAgICAgICB2MGk3T1o1bFFOV3lsVzFSZTRoY1pkbWZUbHNQbHcyTkN3VFJFYllqUDl3Z0JFS3J0ZEJkTkZ1cEQ2emUwQlBYQ3FkUgogICAgICAgICBOdU5kMG0rUlFNUFFlVUtjck1yREppTzNzeTcrbThtUjE3dzBjeW9NR3MyV2VTdnpIVklzWGhPSUFEamM1RFVQbHlrawogICAgICAgICBvSG4rMVZ6M0h6eXNIOXFRdUVlUTkvWTNLMTNJd2tvRHRJeWZXK1hrNE5STHA0Z1k0VDh1QkVURHNWMzZqR1pFd2RjSwogICAgICAgICBHWUtJUVVrWE5vcTZHRG14NjcxSlJwUk0waHIzY2k0RFZNTXZIOURBVEJKandqK1AvU1B6WGpXbTdIOFNkNkRZa3dBWgogICAgICAgICBSYlB3PT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1zVW9yekpSWnpxQWhYeUh5QmRtVGhrTnBIa2NaclhXYmphNUtvcCtIbGJnPTsKICAgICAgICBiPVlvd2Fnem9IdWZkMDdmcjg1MU00NjRWN3lGZnZ0Wld4blp0aXdaS05jb0tZYUhuWGFTVWFDaXpobW92andIZjB0NAogICAgICAgICBjY2NnNG5iYXBJTFFob3lhcFI3TjZ5VXlRaGtWNkxRTWxIemNzR3AvdkpQWmNTaW0wSXUyM0NZUThhV1BvblJNZzVyVwogICAgICAgICBXcmlLRXlnMEhOMnlMQm5ONUpzZ2FwOFZCeWVZY1FQaEtmM3NpSlM1cUR1d3NkVlMxU1MrR1B2dDZwM2RwME1KL3NqRAogICAgICAgICArcUVSY29yY1pJd044UjJpeXhnOHVTWFMyZDF4cithaHBBUGFFbFBpS2NCV2RlWXZsbmpXcHpsWGlnTXNheGExK08xYQogICAgICAgICBOLytIMXNjeU90REJDWEZvRGRsNVMzbE1RaFlQUE4xbEZacEFqdTl6cWI4T2JPSkJJTVBsdVMzZC82WmpGeUZlSm1CRQogICAgICAgICB5YmNRPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg2ZUtnQ0Z3NkxwU1EyVVdrckxvQ0czdlFRR2VsY3NkYmQrY00zSEo4QWFIMGo1N3dEbgoJWXI1YTRVMmhEWGlqc2JTbkpodTlJaGczNDczUFZIRHFkUUl5RFNPSWx3PT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TVovci9ta09PaUxaZVRER0tReFVqSVVobGNNdUVqUk9wb2FkdFNFbEVLSnNOdk9YQ0ZPQXZwUTJLRkowZFRlU3ExZkJFM2g4WVd0dlV1eXNqV1piYnc9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjQ2LjE4LjEzOCB3aXRoIFNNVFAgaWQgMTBtcjU3NDE2ODJsanMuMTc5LjE1MTEyNTAzODYyOTg7CiBNb24sIDIwIE5vdiAyMDE3IDIzOjQ2OjI2IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yNS44MS44NyB3aXRoIEhUVFA7IE1vbiwgMjAgTm92IDIwMTcgMjM6NDY6MDUgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDwyMDc1NjgyLlVEbW5wTVg3anNAZ2lnYT4KUmVmZXJlbmNlczogPG9wLnk5d24yNm9ha2RraHJyQGRlc2t0b3AtMmtoc2s0ND4gPDIwNzU2ODIuVURtbnBNWDdqc0BnaWdhPgpGcm9tOiA9P1VURi04P1E/QXJuYXVkX0g9QzM9QTlyaXRpZXI/PSA8YWhlcml0aWVyQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyMSBOb3YgMjAxNyAwODo0NjowNSArMDEwMApNZXNzYWdlLUlEOiA8Q0FGTkNVLV91ZDBYUl9OLS1LQWZRTWtwPUhHYlhkRGZ5YW8xdGl2Y2RHQ1NSeDI0TzZnQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogU2Vjb25kIE1ORy02Mjk2OiBOZXcgb3B0aW9uIC1Ec3R5bGUuY29sb3IgaXMgbm90IHdvcmtpbmcKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iOTRlYjJjMGRhMGUwNzEyZWJkMDU1ZTc5NjY5NiIKCi0tOTRlYjJjMGRhMGUwNzEyZWJkMDU1ZTc5NjY5NgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgorMQoKT24gVHVlLCBOb3YgMjEsIDIwMTcgYXQgMTI6MDUgQU0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPQo+Cndyb3RlOgoKPiArMQo+Cj4gbm8gbG9nZ2luZyBpbiBwcm9wZXJ0aWVzKCBjbGlSZXF1ZXN0ICksIHRoZW4gbm8gaXNzdWUgZm91bmQgd2hlbiBjYWxsaW5nCj4gYmVmb3JlIGluaXRpYWxpemluZyBsb2dnaW5nCj4KPiBSZWdhcmRzLAo+Cj4gSGVydj1DMz1BOQo+Cj4gTGUgc2FtZWRpIDE4IG5vdmVtYnJlIDIwMTcsIDE2OjMxOjQ0IENFVCBSb2JlcnQgU2Nob2x0ZSBhID1DMz1BOWNyaXQgOgo+ID4gSGksCj4gPgo+ID4gTU5HLTYyMjBbMV0gd2FzIGluY29tcGxldGUsIHdoaWNoIHdpbGwgYmUgZml4ZWQgd2l0aCBNTkctNjI5NlsyXS4KPiA+Cj4gPiBDb21taXQ6Cj4gPiBodHRwczovL2dpdDEtdXMtd2VzdC5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPTNEbWF2ZW4uZ2l0O2E9M0QKPiBjb21taXQ7aD0zRGIyYWZhZmU1Cj4gPiBDSToKPiA+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tCj4gMy54LWplbmtpbnNmaWxlL2pvYi8KPiA+IE1ORy02Mjk2Lwo+ID4KPiA+IFdobyB3YW50cyB0byBzZWNvbmQgdGhpcz8KPiA+Cj4gPiB0aGFua3MsCj4gPiBSb2JlcnQKPiA+Cj4gPiBbMV0gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjIyMAo+ID4gWzJdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyOTYKPiA+Cj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKCi0tPTIwCi0tLS0tCkFybmF1ZCBIPUMzPUE5cml0aWVyCmh0dHA6Ly9haGVyaXRpZXIubmV0Ck1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tClR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKCi0tOTRlYjJjMGRhMGUwNzEyZWJkMDU1ZTc5NjY5Ni0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MTMzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBPY3QgIDIgMTY6NTU6NDQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTMzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDYwQzU0MTAxNkYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAgMiBPY3QgMjAxNyAxNjo1NTo0NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDEwMTE0IGludm9rZWQgYnkgdWlkIDUwMCk7IDIgT2N0IDIwMTcgMTY6NTU6NDQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDEwMDI3IGludm9rZWQgYnkgdWlkIDUwMCk7IDIgT2N0IDIwMTcgMTY6NTU6NDQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMDAxNSBpbnZva2VkIGJ5IHVpZCA5OSk7IDIgT2N0IDIwMTcgMTY6NTU6NDMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDAyIE9jdCAyMDE3IDE2OjU1OjQzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgOTZCRDYxQTVENzMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICAyIE9jdCAyMDE3IDE2OjU1OjQyICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS42NzkKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjY3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgxMDI0LWJpdCBrZXkpIGhlYWRlci5kPWh1YnNwb3QuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBrS0w3SFQxMVczWm4gZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sICAyIE9jdCAyMDE3IDE2OjU1OjM5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtaXQwLWY1MC5nb29nbGUuY29tIChtYWlsLWl0MC1mNTAuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNC41MF0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBBRUE1MDVGMUVFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAgMiBPY3QgMjAxNyAxNjo1NTozOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1pdDAtZjUwLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIDg1c284MTgxOTk3aXRoLjIKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAwMiBPY3QgMjAxNyAwOTo1NTozOSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9aHVic3BvdC5jb207IHM9Z29vZ2xlOwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1sNmNSaFZjaGJncDFwTUFTeml2eHhsMmpzaTV2UVd0dnc0WTlvejVlOUp3PTsKICAgICAgICBiPUVNaUx0ZTdvWFBZdHpQVStZU0lSZllIRVlBRlBSdFA5bnp5ekZEUzFrWi9RYTRmRFQrL1c5bnVhT20rbm5RdFBvOQogICAgICAgICBEcms4cFp0M3IxNGpxdDF4NVJmMnFROEUyRTE2ZW9ld3h3SmVWVDY3VXZPQTVDVFBwNGRwZUFaSlJOVVdYUWVsc0xFOQogICAgICAgICBQdysrVkhEOHlhNHBlbWw2NnV0T3BMV3ZjY0NkMnRuTDJNZFVFPQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWw2Y1JoVmNoYmdwMXBNQVN6aXZ4eGwyanNpNXZRV3R2dzRZOW96NWU5Snc9OwogICAgICAgIGI9YmJ4RHVWT2Qya3hISldMV1lqZ1lKU0o0RGljM2hLWGZESWFTNjhZUU9KTW9rM1ZyUk1rYzQxZUYxNk1vRW9XVWVzCiAgICAgICAgIHpQQ1ZZd00xeTVqT1N6TzkxWW5zYTR6dkVkekJvWHQ5NHordzNNSU1Xckdub2x2ME56dDBGWENKblp5cVE5NUh6TGRFCiAgICAgICAgIC9mVWZSZHovQ3QyaXRsNi96NlRwYjFxY214SFdzaVVtU1pOZHkxM2oxZitCam9PbTNYcTNTSytLMHdjNVlHVlNITlFFCiAgICAgICAgIGpXT1puV05VM1pUTWNkZUExZStSTk1lZEZpYlJQdGNaSnJUSzNnYWVwaW91RFM2SVZxRERlSWl0ZXFUOStwK1FubFpOCiAgICAgICAgIFJncUNpT00zWWxjVHFuSU5GRHRSTmQ2ZVMxd2k5VHBsSXlUcTNLWlJlZ29KeXkvcUpnM2xjVTIzOXNNYVdPUEhTeC84CiAgICAgICAgIHhJVVE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWh6TmoweVMwK2dxeEc0RU5mQlJRMkt2d3ZMWmdrejJSNHp0VTVZWFVzNElXS1hmM1htCgkyQldIVDAvd3NxK0tKSWlpdUNyRjFJdXZnREcrbi8xZFV5d0JMamUwClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FCQ0pLd0gwekpLbFpaRXRYVlJ0elZFaUowRjZ1S3NzSm52VFZHTVd0NUg4QWtnYTFxRk1HTjE0NDJCeGUzZ2pXVnNwZFVZTSsyRDVpb2dFNGN3cmU0PQpYLVJlY2VpdmVkOiBieSAxMC4zNi4xMDQuNzUgd2l0aCBTTVRQIGlkIHY3Mm1yMTk2MzE1MDlpdGIuODEuMTUwNjk2MzMzNzAxMzsKIE1vbiwgMDIgT2N0IDIwMTcgMDk6NTU6MzcgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPDQ5NTk1MjJBLTIwOTAtNDIzOS04MjMzLUUzMjAwMERFOUE1QkBhcGFjaGUub3JnPgogPENBTWtfQmVodi0wQ2o0a1kxbjYyQTFwVkZlOFBkejc0RW1hOGpDRHh2V2NOSEFkZkxVUUBtYWlsLmdtYWlsLmNvbT4KIDxCQzQ1NEJEQS1DMTE2LTREQTYtODEzNS1DMjBENUEzNkI4NTBAYXBhY2hlLm9yZz4gPENBTWtfQmVqendZODdLeUpKckNyTHZWeVRZV2hpVG49cmQtN0JPTXVCWnI2bzFzaFFBUUBtYWlsLmdtYWlsLmNvbT4KIDw4Njk3NTI0OC01QTc4LTQyMUMtQjBCOS0wQjhDNkU2QkVEREZAYXBhY2hlLm9yZz4gPENBSE5keHVtdE5NQ0Ffa08ycUVBeHhnbjB0dnBLU09IbjMyalpxMV9DQUx5dWhxQm9tUUBtYWlsLmdtYWlsLmNvbT4KIDw0MzMxMTkxQS0yMDE4LTRFOTQtOURFOS0xNUJGQjE5MDMyNjZAYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDw0MzMxMTkxQS0yMDE4LTRFOTQtOURFOS0xNUJGQjE5MDMyNjZAYXBhY2hlLm9yZz4KRnJvbTogSm9uYXRoYW4gSGFiZXIgPGpoYWJlckBodWJzcG90LmNvbT4KRGF0ZTogTW9uLCAwMiBPY3QgMjAxNyAxNjo1NToyNiArMDAwMApNZXNzYWdlLUlEOiA8Q0FHZmdfZUVfNmpUU3llRz1CaDZwaXQ4ZFZxTWRxYTl6YnNRaTVMTU9LQTBPNmRUU2ZnQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogZGVwZW5kZW5jeTpnby1vZmZsaW5lIGJyb2tlbj8KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExM2Y2OTlhNjQ4ZjI2MDU1YTkzM2U1OSIKCi0tMDAxYTExM2Y2OTlhNjQ4ZjI2MDU1YTkzM2U1OQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpJJ20gbm90IHN1cmUgaWYgaXQncyBoZWxwZnVsLCBidXQgSSBiZWxpZXZlIFRyYXZpcyBDSSBydW5zIHRoZSBmb2xsb3dpbmcKY29tbWFuZCBkdXJpbmcgdGhlIGluc3RhbGwgcGhhc2UgdG8gZG93bmxvYWQgZGVwZW5kZW5jaWVzOgptdm4gaW5zdGFsbCAtRHNraXBUZXN0cz0zRHRydWUgLURtYXZlbi5qYXZhZG9jLnNraXA9M0R0cnVlIC1CIC1WCgpGb3IgbW9yZSBpbmZvOgpodHRwczovL2RvY3MudHJhdmlzLWNpLmNvbS91c2VyL2xhbmd1YWdlcy9qYXZhLyNNYXZlbi1EZXBlbmRlbmN5LU1hbmFnZW1lbnQKCk9uIE1vbiwgT2N0IDIsIDIwMTcgYXQgMTI6NTIgUE0gQmVuZWRpa3QgUml0dGVyIDxicml0dGVyQGFwYWNoZS5vcmc+IHdyb3RlOgoKPiBIZWxsbyBMYWlyZAo+Cj4gPiBBbSAwMi4xMC4yMDE3IHVtIDE4OjQyIHNjaHJpZWIgTGFpcmQgTmVsc29uIDxsam5lbHNvbkBnbWFpbC5jb20+Ogo+ID4KPiA+IE9uIFdlZCwgU2VwIDI3LCAyMDE3IGF0IDQ6NTMgQU0gQmVuZWRpa3QgUml0dGVyIDxicml0dGVyQGFwYWNoZS5vcmc+Cj4gd3JvdGU6Cj4gPgo+ID4+IEkgaGF2ZSBhIENJIEJ1aWxkIGluIEdpdExhYiwgd2hlcmUgSSB3YW50IHRvIGRlZmluZSBhIGpvYiB0aGF0IGRvd25sb2E9CmRzCj4gPj4gYWxsIHRoZSBhcnRpZmFjdHMgd2hpY2ggYXJlIG5lZWRlZCBmb3IgdGhlIGRpZmZlcmVudCBsaWZlY3ljbGUgcGhhc2VzCj4gYW5kCj4gPj4gcGx1Z2luIGV4ZWN1dGlvbnMgYXMgd2VsbCBhcyBhbGwgcHJvamVjdCBkZXBlbmRlbmNpZXMuIEkgb25seSB3YW50IHRvCj4gPj4gZG93bmxvYWQgYWxsIHRoZSBzdHVmZiBvbmNlIGFuZCB0aGVuIGNvcHkgdGhlIGFydGlmYWN0cyBiZXR3ZWVuIHRoZQo+IGJ1aWxkCj4gPj4gc3RhZ2VzLgo+ID4KPiA+Cj4gPiBIYXZlIHlvdSBsb29rZWQgYXQgdGhlIGNhY2hlIGRpcmVjdGl2ZSAoCj4gPiBodHRwczovL2RvY3MuZ2l0bGFiLmNvbS9lZS9jaS95YW1sLyNjYWNoZSkgYW5kIGEgY3VzdG9tIHNldHRpbmdzLnhtbAo+IHdpdGggYQo+ID4gPGxvY2FsUmVwb3NpdG9yeT4gZWxlbWVudCBpbnN0ZWFkIG9mIHVzaW5nIGFydGlmYWN0cz8KPgo+IFRoZXJlIGlzIG5vIG5lZWQgZm9yIGEgY3VzdG9tIHNldHRpbmdzLnhtbCwgc2luY2UgeW91IGNhbiBzZXQgdGhlIGxvY2FsCj4gcmVwb3NpdG9yeSB1c2luZyBNQVZFTl9PUFRTLiBUaGlzIGNhbiBiZSBkb25lIHdpdGggYSB0b3AgbGV2ZWwgdmFyaWFibGVzCj4gZGVjbGFyYXRpb24gaW4gLmdpdGxhYi1jaS55YW1sLgo+Cj4gVGhlIGNhY2hlIGRpcmVjdGl2ZSB3b249RTI9ODA9OTl0IGhlbHAgeW91IGhlcmUsIHNpbmNlIGl0IHdpbGwgY2FjaGUgZGVwZT0KbmRlbmNpZXMKPiBiZXR3ZWVuIHBpcGVsaW5lIHJ1bnMuIEkgZG9uPUUyPTgwPTk5dCB0aGluayB0aGlzIGlzIGEgZ29vZCBpZGVhLiBJIGxpa2UgPQpteSBDSQo+IGJ1aWxkcyB0byBydW4gZnJvbSBhIGNsZWFuIGVudmlyb25tZW50LiBIb3dldmVyIGZvciBvbmUgcGlwZWxpbmUgcnVuLCBJCj4gd2FudCB0byBkb3dubG9hZCBhbGwgZGVwZW5kZW5jaWVzIHVwZnJvbnQuIEJ1dCB0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUKPiBwb3NzaWJsZS4KPgo+IENoZWVycywKPiBCZW5lZGlrdAo+Cj4gPgo+ID4gQmVzdCwKPiA+IExhaXJkCj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCi0tMDAxYTExM2Y2OTlhNjQ4ZjI2MDU1YTkzM2U1OS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NTgxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBOb3YgMjMgMjA6MzQ6NTMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTgxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEI2RUM5MTc5NTAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAyMyBOb3YgMjAxNyAyMDozNDo1MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDYyOTAwIGludm9rZWQgYnkgdWlkIDUwMCk7IDIzIE5vdiAyMDE3IDIwOjM0OjUzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MjgyOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMyBOb3YgMjAxNyAyMDozNDo1MyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYyODE2IGludm9rZWQgYnkgdWlkIDk5KTsgMjMgTm92IDIwMTcgMjA6MzQ6NTMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDIzIE5vdiAyMDE3IDIwOjM0OjUzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNDgzRUNDMURCOAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjMgTm92IDIwMTcgMjA6MzQ6NTIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjA3OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjA3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQl9XQU1fRlJPTV9OQU1FX1NJTkdMRVdPUkQ9MC4yLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMTAyNC1iaXQga2V5KSBoZWFkZXIuZD1odWJzcG90LmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgampsVjdYVWliZUNQIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVGh1LCAyMyBOb3YgMjAxNyAyMDozNDo1MCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLWl0MC1mNDcuZ29vZ2xlLmNvbSAobWFpbC1pdDAtZjQ3Lmdvb2dsZS5jb20gWzIwOS44NS4yMTQuNDddKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRUNBRjA1RkI5MQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjMgTm92IDIwMTcgMjA6MzQ6NDggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtaXQwLWY0Ny5nb29nbGUuY29tIHdpdGggU01UUCBpZCB4MTNzbzExNDI4MTcxaXRpLjQKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyMyBOb3YgMjAxNyAxMjozNDo0OCAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9aHVic3BvdC5jb207IHM9Z29vZ2xlOwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1JSnF0dTJlWlpEdjBXRmg0S2ZoNlpkYzB1emtHVk43a3dmcGxGbWVrZEowPTsKICAgICAgICBiPW55R0FpN0U4ZExIQ3Y5QU5McUVic09mdk1hbTRIcnhqc3pTRElHalpNMjhudW0wc1FkdjE2QmwzWXBNZURPK25OTAogICAgICAgICBzRWpBTGIyWTRuY0N1MnVGWVREbnp6VWdLZlhnTjVNa1NiOWxHUGpTNGJLeXhwNS9KNk1GMmZqZzN3a1V6RHVPWkFBaQogICAgICAgICB6T1ZNVjE3eFJraTRMV3VHYWwrYVM0TkFlVEFxUENrbGh6ODgwPQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUlKcXR1MmVaWkR2MFdGaDRLZmg2WmRjMHV6a0dWTjdrd2ZwbEZtZWtkSjA9OwogICAgICAgIGI9bm94blRlZ25CU1RWVWhCNzdHazQ0NE1pSFhXZ3V4aGl0TEZJb0VhdlhDMGdoaVRnWWhlUHNpekFUb3g3czB6aUdQCiAgICAgICAgIEJqc0ZsaEMrY3JoQXVoUHgwWnVzNm40bEQ3R0F0TGhWQnJITk1hOGJLU25UM2ZyNDNzYTFmZWhnYkd0cUo0Mm5pcXlvCiAgICAgICAgIHlXd1IrdmJFRkdjWnpVNE0zM1NSd0xFbkdnbm1tTXplYk8rODBqdG1zTEI3VGJ0OTdDeTBrNHRhT3UxcnRja0Rjemo3CiAgICAgICAgIHpwbm1OaHBZRUQ2VVgyVVVyK1B1ME5WMWpVdi9rT1FKS1luSTdHVGg3NlRZcUkwWDJNQ3luTlBHTEJNTTJRMnF1Ujk0CiAgICAgICAgIGZTdlVvUEFncXdiZW1RVEF4ZWZsc3BGT013UVorQnl0NXZqRlhjYVRNS0pPMFBqMFdNaVpoVG10UHlveVpMd3J6TVllCiAgICAgICAgIHN1R2c9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDVQR3lrMW0wcDdId2dvMEFZbTBYRUlSQnkxWWxMZ2FnL3B1b3FTbTdGbGc4NkViNFg2Cgljazh1bU5KQk5LQTFzdkJTc2ovdGl0Y0NrSEI4WjJIbzJwbXcvVVNYClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1ieDREOFZJdFZFbjMrUWk0eFV5am1kNUxqUFNvZ3dtYWV4YUIvNnBBSnNiWUhhTVFUVTY1ZzUyU3F3cldESVVkTUFVWmp6dW5tSjM0WStvaTJIY2Q4PQpYLVJlY2VpdmVkOiBieSAxMC4zNi43OC4yMTIgd2l0aCBTTVRQIGlkIHIyMDNtcjI3NTUyOTJpdGEuNTguMTUxMTQ2OTI4Nzg5MjsKIFRodSwgMjMgTm92IDIwMTcgMTI6MzQ6NDcgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPDliZDA1ZTcyLTQ3MzktZWY5ZC1hMGE2LTI2NjJiNTg4NWZjMUBzdC5pbmZvcm1hdGlrLnR1LWRhcm1zdGFkdC5kZT4KIDxvcC55OTU3dGZkMWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KSW4tUmVwbHktVG86IDxvcC55OTU3dGZkMWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KRnJvbTogSm9uYXRoYW4gSGFiZXIgPGpoYWJlckBodWJzcG90LmNvbT4KRGF0ZTogVGh1LCAyMyBOb3YgMjAxNyAyMDozNDozNyArMDAwMApNZXNzYWdlLUlEOiA8Q0FHZmdfZUVhOSt2T0dBZ05ZUnNxSzBXeWE0UCtuLUI9bW5WUXBLSmd2Ujd4eTFUanNBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogRGVwZW5kZW5jeSBzY29wZXMgYW5kIGNvbmZsaWN0IHJlc29sdXRpb246IFBvc3NpYmxlIGJ1Zz8KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExM2E0ZDk2ZmU3ZmJhMDU1ZWFjNWQ1MiIKCi0tMDAxYTExM2E0ZDk2ZmU3ZmJhMDU1ZWFjNWQ1MgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKQXMgYSB3b3JrYXJvdW5kIHlvdSBjYW4gY2hlY2sgb3V0IHRoZSBkZXBlbmRlbmN5LXNjb3BlLW1hdmVuLXBsdWdpbiB3ZQp3cm90ZToKaHR0cHM6Ly9naXRodWIuY29tL0h1YlNwb3QvZGVwZW5kZW5jeS1zY29wZS1tYXZlbi1wbHVnaW4KClRoZSBpbml0aWFsIG1vdGl2YXRpb24gd2FzIGF2b2lkaW5nIE5vQ2xhc3NEZWZGb3VuZEVycm9yIHdoZW4gc29tZW9uZQphY2NpZGVudGFsbHkgcHV0cyBhIGRlcCBhdCB0ZXN0IHNjb3BlIHRoYXQgaXMgdHJhbnNpdGl2ZWx5IHJlcXVpcmVkIGF0CnJ1bnRpbWUuIEkgbWFkZSBhIHBvbSB3aXRoIHRoZSBleGFtcGxlIGRlcGVuZGVuY2llcyB5b3UgZ2F2ZToKaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vamhhYmVyLzE5ZDBiMGEwNDU0YTZmMDVmZGUzMzc1YjIxYjg0NDdlCgpBbmQgdGhlIHBsdWdpbiBjb3JyZWN0bHkgZmFpbGVkIHRoZSBidWlsZDoKCltJTkZPXSAtLS0gZGVwZW5kZW5jeS1zY29wZS1tYXZlbi1wbHVnaW46MC44OmNoZWNrIChkZWZhdWx0KSBAIHRlc3QgLS0tCgpbRVJST1JdIEZvdW5kIGEgcHJvYmxlbSB3aXRoIHRlc3Qtc2NvcGVkIGRlcGVuZGVuY3kKb3JnLmhhbWNyZXN0OmhhbWNyZXN0LWNvcmUKCiAgU2NvcGUgY29tcGlsZSB3YXMgZXhwZWN0ZWQgYnkgYXJ0aWZhY3Q6IGp1bml0Omp1bml0OjQuOQoKW0lORk9dCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKW0lORk9dIEJVSUxEIEZBSUxVUkUKCltJTkZPXQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCk9uIFRodSwgTm92IDIzLCAyMDE3IGF0IDI6MTYgUE0gUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPiB3cm90ZToKCj4gWW91J3JlIGhpdHRpbmcgTU5HLTU3MzkKPgo+IFdpdGhpbiBhIGRlcGVuZGVuY3ktdHJlZSBhIGdyb3VwSWQrYXJ0aWZhY3RJZCBpcyB1bmlxdWUgKG5lYXJlc3Qgd2lucykuCj4gU3VjaCBhIGRlcGVuZGVuY3kgaGFzIDEgdmVyc2lvbiwgYnV0IGFsc28gMSBzY29wZS4KPiBCeSBzZXR0aW5nIGl0IGV4cGxpY2l0IHRvIHRlc3QsIHlvdSByZWR1Y2UgdGhlIHNjb3BlIGFuZCBpdCBpcyBub3QKPiBhdmFpbGFibGUgZHVyaW5nIGNvbXBpbGUgYW55bW9yZS4KPgo+IElzIHRoaXMgY29ycmVjdD8KPiBXZWxsLCB0aGlzIGNvbmNlcHQgZW5zdXJlcyB0aGF0IHlvdSB0ZXN0IHdpdGggZXhhY3RseSB0aGUgc2FtZSBzZXQgb2YKPiBkZXBlbmRlbmNpZXMgYXMgdGhlIG9uZXMgYXZhaWxhYmxlIGF0IHJ1bnRpbWUuCj4gT24gdGhlIG90aGVyIGhhbmQsIHJlZHVjaW5nIHRoZSBzY29wZSBpbXBsaWVzIHRoYXQgeW91J2xsIGJlIG1pc3Npbmcgb25lCj4gb3IgbW9yZSBkZXBlbmRlbmNpZXMgYXQgcnVudGltZS4KPgo+IFdlIGNvdWxkIHRoaW5rIG9mIG1ha2luZyBkZXBlbmRlbmNpZXMgKmFsd2F5cyogc2NvcGUtY29udGV4dC1hd2FyZS4KPiBVc2luZyB5b3VyIGNhc2Ugb25lIGNvdWxkIHN1Z2dlc3QgdGhhdCBhdCBjb21waWxlLXRpbWUgaGFtY3Jlc3QtY29yZToxLjEKPiBpcyB1c2VkLCBidXQgYXQgdGVzdC10aW1lIGhhbWNyZXN0LWNvcmU6MS4yCj4KPiBUbyBtZSB0aGlzIG1ha2VzIG1vcmUgc2Vuc2UsIGJ1dCBhdCB0aGUgc2FtZSB0aW1lIGl0IGlzIGhhcmQgdG8gcHJlZGljdAo+IHRoZSBpbXBhY3Qgb2Ygc3VjaCBhIGNoYW5nZS4KPgo+IHRoYW5rcywKPiBSb2JlcnQKPgo+IFsxXSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy01NzM5Cj4KPiBPbiBUaHUsIDIzIE5vdiAyMDE3IDA5OjQ5OjUwICswMTAwLCBBbmRyZWFzIFNld2UKPiA8c2V3ZUBzdC5pbmZvcm1hdGlrLnR1LWRhcm1zdGFkdC5kZT4gd3JvdGU6Cj4KPiA+IEhpIE1hdmVuIGRldmVsb3BlcnMsCj4gPgo+ID4gSSBhIHRyeWluZyB0byB3cmFwIG15IGhlYWQgYXJvdW5kIE1hdmVuJ3MgaGFuZGxpbmcgb2YgZGVwZW5kZW5jeSBzY29wZXMKPiA+IGFuZCB3YXMgd29uZGVyaW5nIHRoZSBmb2xsb3dpbmc6IElzIHRoZSB0ZXN0LWNsYXNzcGF0aCBhbHdheXMgYQo+ID4gc3VwZXItc2VxdWVuY2Ugb2YgdGhlIGNvbXBpbGUtY2xhc3NwYXRoPwo+ID4KPiA+IEFGQUlDVCwgdGhpcyBpcyB0aGUgY2FzZS4gSG93ZXZlciwgbXkgZXhwZXJpbWVudHMgKHVzaW5nIE1hdmVuIDMuNS4yKQo+ID4gbGVmdCBtZSB3b25kZXJpbmcgd2hldGhlciBJIG1heSBoYXZlIHN0dW1ibGVkIHVwb24gYSBidWcuCj4gPgo+ID4gTXkgKHNvbWV3aGF0IGNvbnRyaXZlZCkgc2NlbmFyaW8gaXMgdGhpczoKPiA+Cj4gPj4gICA8ZGVwZW5kZW5jaWVzPgo+ID4+ICAgICA8ZGVwZW5kZW5jeT4KPiA+PiAgICAgICA8Z3JvdXBJZD5qdW5pdDwvZ3JvdXBJZD4KPiA+PiAgICAgICA8YXJ0aWZhY3RJZD5qdW5pdDwvYXJ0aWZhY3RJZD4KPiA+PiAgICAgICA8dmVyc2lvbj40Ljk8L3ZlcnNpb24+Cj4gPj4gICAgICAgPHNjb3BlPmNvbXBpbGU8L3Njb3BlPgo+ID4+ICAgICAgIDwhLS0gY29tcGlsZS1kZXBlbmRzIG9uIG9yZy5oYW1jcmVzdDpoYW1jcmVzdC1jb3JlOjEuMSAtLT4KPiA+PiAgICAgPC9kZXBlbmRlbmN5Pgo+ID4+ICAgICA8ZGVwZW5kZW5jeT4KPiA+PiAgICAgICA8Z3JvdXBJZD5vcmcuaGFtY3Jlc3Q8L2dyb3VwSWQ+Cj4gPj4gICAgICAgPGFydGlmYWN0SWQ+aGFtY3Jlc3QtY29yZTwvYXJ0aWZhY3RJZD4KPiA+PiAgICAgICA8dmVyc2lvbj4xLjI8L3ZlcnNpb24+Cj4gPj4gICAgICAgPHNjb3BlPnRlc3Q8L3Njb3BlPgo+ID4+ICAgICA8L2RlcGVuZGVuY3k+Cj4gPj4gICA8L2RlcGVuZGVuY2llcz4KPiA+Cj4gPiBUaGUgKnRlc3QqIGNsYXNzcGF0aCB0aGF0IGNvbXBpbGVyOnRlc3RDb21waWxlIHNlZXMgaXMganVuaXQ6anVuaXQ6NC45ICsKPiA+IG9yZy5oYW1jcmVzdDpoYW1jcmVzdC1jb3JlOjEuMi4gVGhpcyBpcyBhcyBleHBlY3RlZCwgYXMgdGhlIGRpcmVjdAo+ID4gaGFtY3Jlc3QtY29yZSBkZXBlbmRlbmN5IGJlYXRzIHRoZSB0cmFuc2l0aXZlIG9uZTsgaGVuY2UsIHZlcnNpb24gMS4yCj4gPiBnZXRzIHBpY2tlZC4KPiA+Cj4gPiBOb3csIHRoZSAqY29tcGlsZSogY2xhc3NwYXRoIHRoYXQgY29tcGlsZTpjb21waWxlIHNlZXMgaXMganVzdAo+ID4ganVuaXQ6anVuaXQ6NC45LiBXaGlsZSB0aGlzIGFmZmlybXMgbXkgc3VwZXItc2VxdWVuY2UgaHlwb3RoZXNpcywgaXQKPiA+IHNlZW1zIGxpa2UgYSBidWc6IFdpdGhvdXQgdGhlIGRpcmVjdCwgdGVzdC1zY29wZWQKPiA+IG9yZy5oYW1jcmVzdDpoYW1jcmVzdC1jb3JlOjEuMiBkZXBlbmRlbmN5IHRoZSBjb21waWxlIGNsYXNzcGF0aCB3b3VsZAo+ID4gaGF2ZSBiZWVuIGp1bml0Omp1bml0OjQuOSArIG9yZy5oYW1jcmVzdDpoYW1jcmVzdC1jb3JlOjEuMSwgYnV0IHdpdGggaXQKPiA+IGhhbWNyZXN0LWNvcmUgaGFzIHZhbmlzaGVkIGNvbXBsZXRlbHkuCj4gPgo+ID4gRG8geW91IGNvbnNpZGVyIHRoaXMgYSBidWcgYXMgd2VsbD8KPiA+Cj4gPiBJZiBzbywgd2hhdCdzIHRoZSBkZXNpcmVkIGJlaGF2aW9yIGhlcmU/Cj4gPgo+ID4gMS4gQSBjb21waWxlIGNsYXNzcGF0aCBvZiBqdW5pdDpqdW5pdDo0LjkgKwo+ID4gb3JnLmhhbWNyZXN0OmhhbWNyZXN0LWNvcmU6MS4xIHdvdWxkIGJlIGNvbmZ1c2luZywgYXMgdGhlIHN1cGVyLXNlcXVlbmNlCj4gPiBhc3N1bXB0aW9uIHNlZW1zIHZlcnkgbmF0dXJhbC4KPiA+Cj4gPiAyLiBCdXQgYSBjb21waWxlIGNsYXNzcGF0aCBvZiBqdW5pdDpqdW5pdDo0LjkgKwo+ID4gb3JnLmhhbWNyZXN0OmhhbWNyZXN0LWNvcmU6MS4yIHNlZW1zIGhhcmRlciB0byBpbXBsZW1lbnQgKHRvIG15IGFzIGEKPiA+IG1hdmVuLXJlc29sdmVyIGxheW1hbiwgYXQgbGVhc3QpLCBiZWNhdXNlIGEgcHJ1bmVkIHBhcnQgb2YgdGhlCj4gPiBkZXBlbmRlbmN5IGdyYXBoIG1heSBub3cgc3RpbGwgZXhlcnQgaW5mbHVlbmNlIG9uIHRoZSB2ZXJzaW9ucyBpbiBvdGhlcgo+ID4gcGFydHMgb2YgdGhlIGdyYXBoLgo+ID4KPiA+IEJlc3Qgd2lzaGVzLAo+ID4KPiA+IEFuZHJlYXMKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCi0tMDAxYTExM2E0ZDk2ZmU3ZmJhMDU1ZWFjNWQ1Mi0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MjE0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBPY3QgMTEgMTI6NTQ6MzAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjE0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDY4MUNCMTA3QTAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAxMSBPY3QgMjAxNyAxMjo1NDozMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDYwNDk4IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIE9jdCAyMDE3IDEyOjU0OjMwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MDQxOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBPY3QgMjAxNyAxMjo1NDozMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYwNDA2IGludm9rZWQgYnkgdWlkIDk5KTsgMTEgT2N0IDIwMTcgMTI6NTQ6MjkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDExIE9jdCAyMDE3IDEyOjU0OjI5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRTVBQkQxOEREMjAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDExIE9jdCAyMDE3IDEyOjU0OjI4ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi4zNzkKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi4zNzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDEwMjQtYml0IGtleSkgaGVhZGVyLmQ9aHVic3BvdC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBMTU9EYjhKMHRhdHcgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsIDExIE9jdCAyMDE3IDEyOjU0OjI2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtaXQwLWY0Ny5nb29nbGUuY29tIChtYWlsLWl0MC1mNDcuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNC40N10pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBEMEIzQzVGQ0QzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMSBPY3QgMjAxNyAxMjo1NDoyNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1pdDAtZjQ3Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIDcyc28yODIzMTExaXRsLjUKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMSBPY3QgMjAxNyAwNTo1NDoyNSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9aHVic3BvdC5jb207IHM9Z29vZ2xlOwogICAgICAgIGg9bWltZS12ZXJzaW9uOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9UUpRdnNwbU5SVkROOGdvU2hDdmNVUXY2VXJ5c1liSmRjblovWSs3VEpQdz07CiAgICAgICAgYj1OeUR4SkhmbVdKZXo1VWNRMVhkM2llaG95RHhqZVFjb0JFekM0bzVSb2tmQnV4NmFtRzEyaFFIejAzaHAzZWN5cFkKICAgICAgICAgbkZQWVNyZmNzSG1KNFl2S1JCSXROeUNSY3lKcVFmQ1VyMFNhaVlmdWJFVmdablA5MUgrVDFqbFVkazZUSUhISERzaGYKICAgICAgICAgeXBDS0w3Y3N1c2JMMmxISUpFN21TVjM5aTVjUXY1R1UrOCtVVT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1RSlF2c3BtTlJWRE44Z29TaEN2Y1VRdjZVcnlzWWJKZGNuWi9ZKzdUSlB3PTsKICAgICAgICBiPWFkTlA0bGFkU1VzaFRXMmpZclVBdFNTRmRlM2ZZN1VaMWRrVFRpT095WllWdUN0QlJ5c0FnejBCVnR5alFCN2V0WgogICAgICAgICBDK2x4c0RlL3ZEMWszTmhoWnJ1b2JmdDVIZFA5ZEFvbXV5TFBMbFRpUU5Fek9HbmJOVDlyYkt0NDM3dHU2SWlRZmhjMgogICAgICAgICBaazZlaDFlSy84dDZtSVJJZzlyZHdDM0pvaTFOeE5qMnNUd0pxOEh1UWQ4b2pYN2hMN1ZPWDhuTTcvSFJiNWVWWFFaUwogICAgICAgICBPRk1hYlZ1VFhSWmxTdEdlaFI5ZmpvVFRHaVlvYlNSUnI1QVVlWmJxQzVOaCtudEhpaUd6Q1poR3piRmg5eHVyWW8xZAogICAgICAgICBvcXBOUjVudHFXS1hFNGpRWGFHdU9nOEx4QjZjQ2ZUZmhDNy91LzVSV3JHLzZDWTMwaGJXTTYxWUVGc0tLbEJuelZmYwogICAgICAgICA3MkZRPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FWZ1JtK1pBMTBsb3dORHNVN2w0TTd0NEhhY2U1SDJWQnVRVnhrRFd4L3BCKzlVTVd0SQoJZUNxdFcranBLdTAwYUFtajVHbEdDSDU5NmlwSGxnS0VHU2tFdTRDNApYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQTdab3NFQlYvalhlWXkzdDJScDFMWVk2YnBDbjZDSm5Mc2ZNcHgrb2lTY3l2NTlRY2NhZUZ3TlhIOXRPb1RKTEpaYTM4YkVNWHVWajJFdWFuSXczOD0KWC1SZWNlaXZlZDogYnkgMTAuMzYuMjE0LjEzIHdpdGggU01UUCBpZCBvMTNtcjE3MzQwODMwaXRnLjExNy4xNTA3NzI2NDY0MDM5OwogV2VkLCAxMSBPY3QgMjAxNyAwNTo1NDoyNCAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApGcm9tOiBKb25hdGhhbiBIYWJlciA8amhhYmVyQGh1YnNwb3QuY29tPgpEYXRlOiBXZWQsIDExIE9jdCAyMDE3IDEyOjU0OjEzICswMDAwCk1lc3NhZ2UtSUQ6IDxDQUdmZ19lRXF3dj1lMFV5ZEVrdC1fNXNzbkVGeTJIYWpXcW1nZjRLXytDMDJ4WUJmWUFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IEFsbG93IGN1c3RvbSB1cGRhdGVQb2xpY3kKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDlkMDIwNGVkNTcwMDU1YjQ0ZWM3NyIKCi0tMDAxYTExNDlkMDIwNGVkNTcwMDU1YjQ0ZWM3NwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKSSBqdXN0IHdhbnRlZCB0byBnZXQgdGhvdWdodHMgb24gYSBwb3NzaWJsZSBuZXcgZmVhdHVyZS4gUmlnaHQgbm93LCBteQpjb21wYW55IGhhcyB0aG91c2FuZHMgb2YgTWF2ZW4gbW9kdWxlcyB0aGF0IGFyZSBhbGwgb24gc25hcHNob3RzIHdpdGggYW4KdXBkYXRlUG9saWN5IG9mICJhbHdheXMiIChiYXNpY2FsbHkgZXZlcnlvbmUgZ2V0cyB0aGUgbGF0ZXN0IGJ1aWxkIG9mCmV2ZXJ5dGhpbmcsIGtpbmQgb2YgbGlrZSBhIHBvb3IgbWFuJ3MgbW9ub3JlcG8pLiBUaGlzIG1vc3RseSB3b3JrcyBmaW5lLApidXQgb25lIG9mIHRoZSBiaWcgaXNzdWVzIHdlJ3ZlIHJ1biBpbnRvIGlzIHRoYXQgdGhpcyBpcyBwcmV0dHkgc2xvdyBmb3IKbG9jYWwgZGV2ZWxvcG1lbnQuIEZvciBlYWNoIHNuYXBzaG90LCBpdCBuZWVkcyB0byBkb3dubG9hZCB0aGUKbWF2ZW4tbWV0YWRhdGEueG1sIGFuZCBpdHMgY2hlY2tzdW0gdG8ga25vdyB3aGV0aGVyIHNvbWV0aGluZyBoYXMgY2hhbmdlZC4KQW5kIHdoZW4gZGV2ZWxvcGluZyBsb2NhbGx5LCB0aGUgbGF0ZW5jeSB0byBvdXIgTmV4dXMgc2VydmVyIGlzbid0IGdyZWF0CihldmVuIHdvcnNlIGZvciBvdXIgZGV2ZWxvcGVycyBpbiB0aGUgRVUpIHNvIHRoaXMgcHJvY2VzcyBpcyBwcmV0dHkgc2xvdy4KClRvIG1pdGlnYXRlIHRoaXMsIGVhY2ggb2Ygb3VyIGRldmVsb3BlcnMgcnVuIGEgbG9jYWwgcHJveHkgdGhhdCBzaXRzIGluCmZyb250IG9mIE5leHVzLiBUaGUgcHJveHkgdGFsa3MgdG8gb3VyIGJ1aWxkIHN5c3RlbSB0byBrbm93IHdoYXQgYXJ0aWZhY3RzCmhhdmUgYnVpbHQgc28gdGhhdCBpdCBjYW4gc2hvcnQtY2lyY3VpdCB0aGUgbWV0YWRhdGEgcmVxdWVzdHMgaWYgaXQga25vd3MKbm90aGluZyBoYXMgY2hhbmdlZC4gVGhpcyB3b3JrcyBwcmV0dHkgd2VsbCwgYnV0IHdlJ3ZlIG5ldmVyIGJlZW4gYWJsZSB0bwpnZXQgaXQgdG8gd29yayBwZXJmZWN0bHkuIFRoZSBpZGVhIEkgaGFkIHRoYXQgd291bGQgc2ltcGxpZnkgdGhpcyBzZXR1cApzaWduaWZpY2FudGx5IGlzIGlmIGFldGhlci9tYXZlbi1yZXNvbHZlciBhbGxvd2VkIGEgY3VzdG9tIHVwZGF0ZVBvbGljeQp0aGF0IGNhbiBiZSBpbXBsZW1lbnRlZCBieSBleHRlbnNpb25zLiBUaGlzIHdvdWxkIGFsbG93IHVzIHRvIHNpbXBseSB3cml0ZQphbiBleHRlbnNpb24gd2l0aCBvdXIgY3VzdG9tIGxvZ2ljIGFuZCBkaXRjaCB0aGUgbG9jYWwgcHJveHkgYW5kIGFsbCB0aGUKZWRnZSBjYXNlcyBhbmQgY29tcGxleGl0eSB0aGF0IGl0IGJyaW5ncy4KCkxldCBtZSBrbm93IGlmIHRoaXMgc291bmRzIHJlYXNvbmFibGUgb3IgaWYgeW91IGhhdmUgYW55IG90aGVyIHRob3VnaHRzLgoKVGhhbmtzLApKb25hdGhhbgoKLS0wMDFhMTE0OWQwMjA0ZWQ1NzAwNTViNDRlYzc3LS0KCkZyb20gZGV2LXJldHVybi0xMjQyMTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIE9jdCAxMSAxNzoxMTozNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyMTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNDI3OEIxMDRERgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDExIE9jdCAyMDE3IDE3OjExOjM1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzE3NDcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgT2N0IDIwMTcgMTc6MTE6MzQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMxNjI3IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIE9jdCAyMDE3IDE3OjExOjM0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzE1NzQgaW52b2tlZCBieSB1aWQgOTkpOyAxMSBPY3QgMjAxNyAxNzoxMTozNCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMTEgT2N0IDIwMTcgMTc6MTE6MzQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBDMDNBNEMwM0NGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMSBPY3QgMjAxNyAxNzoxMTozMyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuMzc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuMzc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgxMDI0LWJpdCBrZXkpIGhlYWRlci5kPWh1YnNwb3QuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB0X3FiSXM5VlBXR3IgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsIDExIE9jdCAyMDE3IDE3OjExOjMyICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtaXQwLWY1MS5nb29nbGUuY29tIChtYWlsLWl0MC1mNTEuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNC41MV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA4QzYzOTVGNUNDCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMSBPY3QgMjAxNyAxNzoxMTozMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1pdDAtZjUxLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGoxNDBzbzM3MDIxODhpdGouMQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDExIE9jdCAyMDE3IDEwOjExOjMxIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1odWJzcG90LmNvbTsgcz1nb29nbGU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUZSWDcxSHc1MlZVVi9VTWtPeEZYNjN2YzJsWjVDMThMMmN6WjgrV3M2OFE9OwogICAgICAgIGI9ZW5zWGg1RkU1NndyQXZRTkZ1MVlrNTN3WWhWZWh2cG41RDdNSkNGVEo2Sm5GbUxrcmQ3bENuQndRajRwdDBqbUV1CiAgICAgICAgIG5kZ0liWlBzUHJJUE5rbDVSNVcraWJyMjBkakxRUFU3eHpXUnZGZkFiTkdQVzJIVE9PdFJkb0o1Ky9NK1VsVWw3cFlRCiAgICAgICAgIGQyUGMrcS91S2hrbzBWMGk1Q3hTN2FGU1NicEQ5SW9seTdpMkk9ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9RlJYNzFIdzUyVlVWL1VNa094Rlg2M3ZjMmxaNUMxOEwyY3paOCtXczY4UT07CiAgICAgICAgYj1DZW02UmZJNWRSbFVXSytEME5vWW5Hb29pRmhDS2NYeTVqY2Q2SkhSUHJ2bHNncC8yV2tOSjVsUVZOblprL3NnMlUKICAgICAgICAgcXFlSjVVSzBxL0lwbnBFZmZiVHNSWjBBcEIyUDh3akMrbVdsZTBMQjQyMkRtUXRMWGZnTmtPdWZKbUE4cE1mMVQxRXYKICAgICAgICAgQk50RWJsK0hkelY3RHUrVmRWOFU2Tk9BYnJ1VnJtMjhrRTJUalc1a1BkTU4vWlJmRnJzNklqNFUveWZ6RE1wd0NtYWMKICAgICAgICAgaXZuSkRXVzY3VWpreDhwUFhEVkdQREF2em02WFllRkw1ZnZldU9ubnppUnJObVdHNHlFZTd5THh4NnduNXJxK1FYSTkKICAgICAgICAgcnJkNENFU0xuNGxKdUVNeEJFWXdkcU9CYWNPMUFNT3EwZlgwR25uRnYzak5zV0hMTHdVR3p4RXpHZjE2YXhGQlFJOXYKICAgICAgICAgaXBWZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhWEg4ZTBzL1J5SWlXLzVHZXJ4cTBFL3RqNlJVbFRiMWFnVWJxb2RKc256SjA3M2N1TnkKCTkwRzgzdlBvN0JnRHRadWFFandIbVJzZ29vL0prdlBraWZCajg3aWsKWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUFXUDk2SWE3VGpFblhVTS91OU13SlB0WmFJU2NQMnI4K2xMa1pkeWdXVkFKdlZBT256R0dCWEROTjNrL01TWVEyNGxVOFVmT245QnR3QmpCWmJocEk9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjM2LjE4OS4xMzAgd2l0aCBTTVRQIGlkIHgxMjRtcjM1MDUzNml0ZS4yNy4xNTA3NzQxODg5OTc5OwogV2VkLCAxMSBPY3QgMjAxNyAxMDoxMToyOSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8Q0FHZmdfZUVxd3Y9ZTBVeWRFa3QtXzVzc25FRnkySGFqV3FtZ2Y0S18rQzAyeFlCZllBQG1haWwuZ21haWwuY29tPgogPHRyaW5pdHktMjk0M2I5YTMtNDY4MC00ZDQzLWFlMmEtYmE3ODQwMDA3YzdlLTE1MDc3MzY5ODAzMzRAM2MtYXBwLWdteC1iczM0PgpJbi1SZXBseS1UbzogPHRyaW5pdHktMjk0M2I5YTMtNDY4MC00ZDQzLWFlMmEtYmE3ODQwMDA3YzdlLTE1MDc3MzY5ODAzMzRAM2MtYXBwLWdteC1iczM0PgpGcm9tOiBKb25hdGhhbiBIYWJlciA8amhhYmVyQGh1YnNwb3QuY29tPgpEYXRlOiBXZWQsIDExIE9jdCAyMDE3IDE3OjExOjE5ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQUdmZ19lR3F2cndEZGRQeEU1RDU9RGZxaD1UenpGVFBxZDg9alVNUU03K2RRMEFUNGdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBBbGxvdyBjdXN0b20gdXBkYXRlUG9saWN5ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzE5ZTQ0MmM0MDFlYTA1NWI0ODgzY2YiCgotLTk0ZWIyYzE5ZTQ0MmM0MDFlYTA1NWI0ODgzY2YKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCklmIHdlIGRpZCB0aGF0LCB0aGVuIHdvdWxkbid0IHRoZSBidWlsZCBnZXQgcmVhbGx5IHNsb3cgZXZlcnkgdGltZSB5b3UgaGl0CnRoYXQgNSBtaW51dGUgZXhwaXJhdGlvbj8KCk9uIFdlZCwgT2N0IDExLCAyMDE3IGF0IDExOjQ5IEFNIE1pY2hhZWwgT3NpcG92IDwxOTgzLTAxLTA2QGdteC5uZXQ+IHdyb3RlOgoKPgo+ID4gSSBqdXN0IHdhbnRlZCB0byBnZXQgdGhvdWdodHMgb24gYSBwb3NzaWJsZSBuZXcgZmVhdHVyZS4gUmlnaHQgbm93LCBteQo+ID4gY29tcGFueSBoYXMgdGhvdXNhbmRzIG9mIE1hdmVuIG1vZHVsZXMgdGhhdCBhcmUgYWxsIG9uIHNuYXBzaG90cyB3aXRoIGFuCj4gPiB1cGRhdGVQb2xpY3kgb2YgImFsd2F5cyIgKGJhc2ljYWxseSBldmVyeW9uZSBnZXRzIHRoZSBsYXRlc3QgYnVpbGQgb2YKPiA+IGV2ZXJ5dGhpbmcsIGtpbmQgb2YgbGlrZSBhIHBvb3IgbWFuJ3MgbW9ub3JlcG8pLgo+Cj4gV2h5ICJhbHdheXMiIHRoZW4gYW5kIG5vdCA1IG1pbnV0ZXMgb3Igc28/Cj4KPiBNaWNoYWVsCj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+CgotLTk0ZWIyYzE5ZTQ0MmM0MDFlYTA1NWI0ODgzY2YtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDQwMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgTm92ICA0IDEzOjQzOjU2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQwMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA2MEE1QzE3RjBFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMTM6NDM6NTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyMjU4OSBpbnZva2VkIGJ5IHVpZCA1MDApOyA0IE5vdiAyMDE3IDEzOjQzOjU2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMjQ5NSBpbnZva2VkIGJ5IHVpZCA1MDApOyA0IE5vdiAyMDE3IDEzOjQzOjU2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjI0ODMgaW52b2tlZCBieSB1aWQgOTkpOyA0IE5vdiAyMDE3IDEzOjQzOjU1IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwNCBOb3YgMjAxNyAxMzo0Mzo1NSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIERCMzFFMTgwOEVGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxMzo0Mzo1NCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0xLjkwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMS45MDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB1LUtJZ0VJRk5pdHAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsICA0IE5vdiAyMDE3IDEzOjQzOjUzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtaW8wLWYxNzMuZ29vZ2xlLmNvbSAobWFpbC1pbzAtZjE3My5nb29nbGUuY29tIFsyMDkuODUuMjIzLjE3M10pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA0QzJEMjVGNkM4Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAxMzo0Mzo1MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1pbzAtZjE3My5nb29nbGUuY29tIHdpdGggU01UUCBpZCBoNzBzbzExMzgxODgyaW9pLjQKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAwNCBOb3YgMjAxNyAwNjo0Mzo1MyAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1qdzhLN2d5dERscURLMTdLWVg5VnVHWkdSZlFrSTcxcGJpTS9saHovK0JrPTsKICAgICAgICBiPVY0b3JKVm0wSzlhWWY2eFVPWVJEYUx5VGJOWk11NTJUaTBPbmh6Z3Z4L1JGazI5ME5IQWFPK1dDcGVtL0tEZXEwQQogICAgICAgICBRQkFTKzBVL1JHUzZNMk12a3BySDI1S1N6QmRhY2x3a2luWDNlMExUcnk5ZEdqSFpNQjNuc2o2dmlEOGVpS1E2ZmpVYgogICAgICAgICBDNmliQ2swWnc0anJzZHdldGVYVjk4VlZLMTFJYjBibHBIUW9Zb3Q0SFJ3L3JKYy9VTXFQLzZlZzRqazFBN3NjWkxMMwogICAgICAgICBBZXN6RjBVOC9zOFhBZlhpbmZtN2duZnQxemNPTDQ5aVFyUlEvRjNTdEJaWjE5NndmSkJvcnMxdE1VVC9rR0ZyRUF3agogICAgICAgICBQOWlDd29PWEgyOGpUUFB3SkhBUTd5TnRFbEZzbCtYWStJZ3AxZDBTZElHWkUvTDk1ekZCV21DQndSUURsUDl3WTh1LwogICAgICAgICB2MVdnPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1qdzhLN2d5dERscURLMTdLWVg5VnVHWkdSZlFrSTcxcGJpTS9saHovK0JrPTsKICAgICAgICBiPURDMkxjcXBLYTFySUhGL1NreWJ1aEhUZi9wenljd0lZYVhicXpxNXdndk0xdnV0cjNROVFzTVlUUGVvMjJhMUF2awogICAgICAgICByRG1adkpqSHJUcGVxVEpOcXRhbWw1NmQyeVV6Q3ZyTnVXcDRBSzZ3VWxYN3NudDVlNlpxeDZ6SjdrK2tZK3NqaXR0OAogICAgICAgICAzRnZmSDNjNGxxUFJmQWdHVHlXMGU2U3hZaXNyMnFjWXJvZ05JanJQSk9uTW5NU0tscUM0NUwzQjcyb3IxTlBQRGd5QgogICAgICAgICBhNitxWENBdS9JZjNkY3ZVUFVuUWpMVTArY1E0dGk4TWljRUNxZzc1UUYrQWQyTC9YUE9JYmtTYXJ4MmdhSi9tTjZDbwogICAgICAgICAzYzZOd1ZGUTVXQlZHajZLVmppSjlOYVYwL2JwWG9GUm4xOUVWSm84T1l6TFd2QmZBazQ5K1gzaXF6SXVnKzhlc1N3VgogICAgICAgICBJN2t3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FYcFNQbDFQUzBiTis0aERMellIdjYwQlJkUHNkRGk2N1ZRRFNJRVZnTVZMOUZOYTF1RgoJR08vRzIreFQ5OW81cFNqWkJwZXdWay80d0loSXROWmE4YUVOUGp4MzBnPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFCaFFwK1MzRWZEZThiQm12Y2xhOTBzZ0NsNE44a3pSSHcxUFJyUGZPOWxCazRBZW15WGhyR0lRWmtDWGl1aERaVjhFYThpY01pWjIwOFBCTmhVc3dpWnJUNUk9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjEwNy44My40IHdpdGggU01UUCBpZCBoNG1yMTMyMzA3NjFpb2IuMTQ1LjE1MDk4MDMwMjczNTY7CiBTYXQsIDA0IE5vdiAyMDE3IDA2OjQzOjQ3IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC43OS45LjY4IHdpdGggSFRUUDsgU2F0LCA0IE5vdiAyMDE3IDA2OjQzOjQ2IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0ErMjk4VWpwNmRaTFYxeU5xYlBCYzRmV0JEem96RXhjQ203RjU2Q249RS05RmFEYThBQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXdFSDlaMm15cDcxdWFTcmRjeUxKUkZyRS1WcnQyMDE5MXJkMDFoK1VmaGp3QG1haWwuZ21haWwuY29tPgogPENBKzI5OFVnOER3b2tzY2R3Qzl2UHJHKzJUUGZzZFR2cVE1R08yUmRSck9NVD12cGZld0BtYWlsLmdtYWlsLmNvbT4KIDxDQStuUG5NeENSOVl0MWdVTFhGLVE0R0RYUnpBZ2haMHNGNVVra1hkU3RVTUNLUE1MOWdAbWFpbC5nbWFpbC5jb20+IDxDQSsyOThVanA2ZFpMVjF5TnFiUEJjNGZXQkR6b3pFeGNDbTdGNTZDbj1FLTlGYURhOEFAbWFpbC5nbWFpbC5jb20+CkZyb206IEpvaG4gUGF0cmljayA8bmhvai5wYXRyaWNrQGdtYWlsLmNvbT4KRGF0ZTogU2F0LCA0IE5vdiAyMDE3IDEzOjQzOjQ2ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQUg5dTEwbnRtRkJaY1RoOVl2QWJFS2dEdUpOOVhkNXh1ZXBPNGZpUjVCS1JxdVpCUGdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiA0LjAuMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCkkndmUgZ290ICBhIGZldyB1cGRhdGVzIEkgZmVlbCB3b3VsZCBiZSB1c2VmdWwgZm9yIHRoZSBuZXh0IG1ham9yIHZlcnNpb247CgoxKSBQYWNrYWdpbmcgdHlwZSBnZW5lcmljICdhcmNoaXZlJywgb3Igc3BlY2lmaWMgemlwIG9yIHRhci5negotIG1heWJlIGEgdXNlciBwcm9wZXJ0eSB0byBlbmFibGUgemlwIGFuZC9vciB0YXIuZ3oKCjIpIFBhY2thZ2luZyB0eXBlIGdlbmVyaWMgJ2FwcGxpY2F0aW9uJywgb3Igc3BlY2lmaWMgcnBtIG9yIGRlYgotIGluIGZ1dHVyZSBjb3VsZCBiZSBleHRlbmRlZCBmb3Igd2luZG93cyBpbnN0YWxsZXJzIHRvbwoKT3ZlciB0aGUgcGFzdCA2IHllYXJzIEkndmUgbWFpbmx5IGNyZWF0ZWQgamFyLCB3YXIgb3IgZWFyLCBidXQgZm9yCmRlcGxveW1lbnQgdGhlIHN0YW5kYXJkIGlzIGJ1bmRsZSBpdCB1cCBpbnRvIGEgdGFyLmd6IG9yIHppcCwgYWxvbmcKd2l0aCB0aGUgYW5zaWJsZSBzY3JpcHRzIG9yIGN1c3RvbSBzY3JpcHRzLiBTbyBJIHVzdWFsbHkgdXNlIHBvbQpwYWNrYWdpbmcgdGhlbiBhZGRpbmcgYXNzZW1ibHkgcGx1Z2luLCBqdXN0IGZlZWxzIHN0cmFuZ2UgZG9pbmcgdGhhdAphbGwgdGhlIHRpbWUgYW5kIGl0IG1pZ2h0IG1ha2UgaXQgbW9yZSBzaW1wbGVyIGZvciBldmVyeW9uZS4KCjMpIENoZWNrc3VtLCBzd2l0Y2ggdG8gU0hBMywgZHJvcCBtZDUgYW5kIHNoYTEuIElmIHdlIGNhcmUgYWJvdXQKc2VjdXJpdHksIHdlIHNob3VsZCBrZWVwIHVwIHRvIGRhdGUgd2l0aCB3aGF0IGlzIGNvbnNpZGVyZWQgc2VjdXJlCnN0aWxsLgoKMykgRGViaWFuIHN0eWxlIHJlcG8gbWFuYWdlbWVudC4gSW5zdGVhZCBvZiBoYXZpbmcgYSBtYXNzaXZlIGJ1Y2tldCBvZgphcnRlZmFjdHMsIHN0YXJ0IGhhdmluZyByZXBvJ3MgZWl0aGVyIGJhc2VkIHVwb24gamF2YSBjbGFzcyB2ZXJzaW9uLApvciBtYXZlbiBtYWpvciByZWxlYXNlIHZlcnNpb24uIEFsc28gc3BsaXQgbW9yZSB0aGFuIGp1c3QgcmVsZWFzZSBhbmQKc25hcHNob3QsIG1heWJlIGNvcmUsIHBsdWdpbnMsIGdlbmVyYWwuLi4KCk5vdCBzdXJlIGV4YWN0bHkgdGhlIGJlc3Qgc29sdXRpb24sIGJ1dCBhcyBtYXZlbiBjZW50cmFsIGhhcyBzdHVmZgpnb2luZyBiYWNrIHllYXJzIGFuZCB5ZWFycy4gSG93IG11Y2ggb2YgdGhlIG9sZCBzdHVmZiB3aWxsIGJlIHVzZWQgZm9yCm5ldyBwcm9qZWN0cyBnb2luZyBmb3J3YXJkLgoKQW55d2F5LCB0aG9zZSBhcmUgc29tZSBvZiBteSB0aG91Z2h0cywgaWYgdGhlaXIgaXMgYSBtb3JlIGZvcm1hbCB3YXkKb2Ygc3VnZ2VzdGluZyB0aGVtIGxldCBtZSBrbm93IGFuZCBJJ2xsIGJlIGhhcHB5IHRvIHJhaXNlIHRoZW0Kc2VwYXJhdGVseSBmb3IgY29uc2lkZXJhdGlvbiBhbmQgbWF5YmUgYWxzbyBkbyBzb21lIHB1bGwgcmVxdWVzdHMgZm9yCnRoZW0uCgpKb2huCgpPbiA0IE5vdmVtYmVyIDIwMTcgYXQgMTM6MTgsIFBhdWwgSGFtbWFudCA8cGF1bEBoYW1tYW50Lm9yZz4gd3JvdGU6Cj4+Cj4+Cj4+Cj4+ID4KPj4gPiAqMy4gTW9yZSBwbHVnZ2FibGUgZGVwZW5kZW5jeSByZXNvbHZlcjoqCj4+ID4KPj4KPj4gSSBhbSB3aWxsaW5nIHRvIGxldCB0aGlzIGJlIG9wdGlvbmFsIHNjb3BlIGZvciBub3cuIE1heSBiZSB5YW5rZWQgaWYgdG9vCj4+IHJpc2t5IG9yIG5vdCByZWFkeSBpbiB0aW1lCj4+Cj4+Cj4+Cj4gSSBkb24ndCBzZWUgaG93IHlvdSBjYW4gZXZlbiBtYWtlIGl0IG9wdGlvbmFsIHdpdGhvdXQgYSBwb20gc3BlY2lmaWVkIHdheQo+IG9mIHNheWluZyAibm90IG1hdmVuIGNlbnRyYWwsIHRoaXMgd2F5L3BsYWNlIGluc3RlYWQiCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQxMzEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIE9jdCAgMiAxNjo0MjoyOSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxMzEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMTYyNjUxMDBEQwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sICAyIE9jdCAyMDE3IDE2OjQyOjI5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzcwMTkgaW52b2tlZCBieSB1aWQgNTAwKTsgMiBPY3QgMjAxNyAxNjo0MjoyOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzY5NTEgaW52b2tlZCBieSB1aWQgNTAwKTsgMiBPY3QgMjAxNyAxNjo0MjoyOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc2OTM5IGludm9rZWQgYnkgdWlkIDk5KTsgMiBPY3QgMjAxNyAxNjo0MjoyOCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMDIgT2N0IDIwMTcgMTY6NDI6MjggKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA5RDJEQzE4MTZGMwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgIDIgT2N0IDIwMTcgMTY6NDI6MjcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC40MDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuNDAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEhLbmY0NVJpMlhZVCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgIDIgT2N0IDIwMTcgMTY6NDI6MjYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC1pbzAtZjE4MC5nb29nbGUuY29tIChtYWlsLWlvMC1mMTgwLmdvb2dsZS5jb20gWzIwOS44NS4yMjMuMTgwXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDMzMTRBNUZCNTcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICAyIE9jdCAyMDE3IDE2OjQyOjI2ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLWlvMC1mMTgwLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHYzNnNvNTI2Mjk2M2lvaS4xCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMDIgT2N0IDIwMTcgMDk6NDI6MjYgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9YWoycDFqWEFNUHcwbDRXZjZuRnZoNHRuS1JMbFI2U0N1c1pwc0V3dXFhaz07CiAgICAgICAgYj1zZGxmbzNoSDZTVW9rTXVaNEdWZEh4aExEd0hkVE9HSHJOVXhGdW5rbEdhT2V2SnZqdXp6TFdLdFVFUy9EK1piWEUKICAgICAgICAgMU9zdGRCOWE1M3Fpb1NjVVFIZ3ozRnhFME0zY3pzOVZYdm9Pb2IrZkFFZVZhaUVPVlRkWWNmY0RQdm82YURlZGJKY3MKICAgICAgICAgMUpQMXU3NTY2YlRKaHRHTWlmc2xjSTBaUC9tM09rN3dwQ2NaL3hKajBrdVROR2VFVVB2Rml2SGhONEhFdUtnMytGV0sKICAgICAgICAgL3h2UGluR1dDekVHWGx6VVVCUkJRR1kyZnNHWVBPNTM5b0xaSERrRWVNRjF1a2lSM3RQQUtxVW9ETzZLVkpzRHJrcGYKICAgICAgICAgejF0cmFlakxRR09uMGViQjNXNnNiM0pZVktaVzZuZU1tQU9DbGY4ZFhMMFlyNVVtTjNhWjR1eWMwRzhKWk14cDliVDcKICAgICAgICAgM2ZOdz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9YWoycDFqWEFNUHcwbDRXZjZuRnZoNHRuS1JMbFI2U0N1c1pwc0V3dXFhaz07CiAgICAgICAgYj1CelR4K1pVcFhBNzZ3Mk1zdXkwN3A5TFNjMGFNem9kUVJVNzV2dThVSmhrQkc5NUdWcmFxcllKTCt5TmV3M292UXIKICAgICAgICAga1M5a2FNRzRNN2YwZzR5Wk1wTm1jcUJwdkdHT1diTmtUSVZqNzBKY2pEcWpyUVp5dC90ckRHZ1kzNURPdUN2NlNkaysKICAgICAgICAgRStFQVMzcTZRTXg1MGdIa2NYbFIwMzVydUJyN1lhbFpCUGE0NkdoUHFhYnpqczBxS3lDTFdVSWYxWHNMOHAzU0RFR3IKICAgICAgICAgTXZNUkt0bko5Z0p0aXlUZjJDOFUyYlpFOUxTWjJjMEovOVpnai9hSXN2VG92eDlaZ1BhbWx3aVVHQmI3a05ZRFRzd0gKICAgICAgICAgZVVnYjVYRzJORERRMzA4WTdDbnZUZ2FKR0daRm9zYU8xRXdPTnIxS3dQNmNUaFpvL1FLWXArRUVFZlVBMjdTM0c2QloKICAgICAgICAgWWZudz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVTdnREpndWZJSjk2NU5XdWxJczF6Qk5jWVI5WkZhdGFFeXRVa0lzcElFcmJJQlRieTkKCTN0aGoxTytwME1vOHZ2YkwraXJQb3VTbXlFM1R5MnJOd3VlQ2pBQzRtdz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FCcGw2em5SZHV1QUdOVEhWdFZ2cG1jcTVOeHU1eXUrZ3F4U3laQk5zdUxtSkxhcGN6YmxiMFJPS2JvMVRndzBJWXlRVHZtR0UrNktadXJ0V3F1VzhJPQpYLVJlY2VpdmVkOiBieSAxMC4xMDcuMTg2LjYgd2l0aCBTTVRQIGlkIGs2bXIyNjI1NjY5NGlvZi4xODMuMTUwNjk2MjU0NTI2NDsKIE1vbiwgMDIgT2N0IDIwMTcgMDk6NDI6MjUgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPDQ5NTk1MjJBLTIwOTAtNDIzOS04MjMzLUUzMjAwMERFOUE1QkBhcGFjaGUub3JnPgogPENBTWtfQmVodi0wQ2o0a1kxbjYyQTFwVkZlOFBkejc0RW1hOGpDRHh2V2NOSEFkZkxVUUBtYWlsLmdtYWlsLmNvbT4KIDxCQzQ1NEJEQS1DMTE2LTREQTYtODEzNS1DMjBENUEzNkI4NTBAYXBhY2hlLm9yZz4gPENBTWtfQmVqendZODdLeUpKckNyTHZWeVRZV2hpVG49cmQtN0JPTXVCWnI2bzFzaFFBUUBtYWlsLmdtYWlsLmNvbT4KIDw4Njk3NTI0OC01QTc4LTQyMUMtQjBCOS0wQjhDNkU2QkVEREZAYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDw4Njk3NTI0OC01QTc4LTQyMUMtQjBCOS0wQjhDNkU2QkVEREZAYXBhY2hlLm9yZz4KRnJvbTogTGFpcmQgTmVsc29uIDxsam5lbHNvbkBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMDIgT2N0IDIwMTcgMTY6NDI6MTQgKzAwMDAKTWVzc2FnZS1JRDogPENBSE5keHVtdE5NQ0Ffa08ycUVBeHhnbjB0dnBLU09IbjMyalpxMV9DQUx5dWhxQm9tUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IGRlcGVuZGVuY3k6Z28tb2ZmbGluZSBicm9rZW4/ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzA3NmE2MjMzNGVlMzA1NWE5MzBmOTEiCgotLTk0ZWIyYzA3NmE2MjMzNGVlMzA1NWE5MzBmOTEKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCk9uIFdlZCwgU2VwIDI3LCAyMDE3IGF0IDQ6NTMgQU0gQmVuZWRpa3QgUml0dGVyIDxicml0dGVyQGFwYWNoZS5vcmc+IHdyb3RlOgoKPiBJIGhhdmUgYSBDSSBCdWlsZCBpbiBHaXRMYWIsIHdoZXJlIEkgd2FudCB0byBkZWZpbmUgYSBqb2IgdGhhdCBkb3dubG9hZHMKPiBhbGwgdGhlIGFydGlmYWN0cyB3aGljaCBhcmUgbmVlZGVkIGZvciB0aGUgZGlmZmVyZW50IGxpZmVjeWNsZSBwaGFzZXMgYW5kCj4gcGx1Z2luIGV4ZWN1dGlvbnMgYXMgd2VsbCBhcyBhbGwgcHJvamVjdCBkZXBlbmRlbmNpZXMuIEkgb25seSB3YW50IHRvCj4gZG93bmxvYWQgYWxsIHRoZSBzdHVmZiBvbmNlIGFuZCB0aGVuIGNvcHkgdGhlIGFydGlmYWN0cyBiZXR3ZWVuIHRoZSBidWlsZAo+IHN0YWdlcy4KCgpIYXZlIHlvdSBsb29rZWQgYXQgdGhlIGNhY2hlIGRpcmVjdGl2ZSAoCmh0dHBzOi8vZG9jcy5naXRsYWIuY29tL2VlL2NpL3lhbWwvI2NhY2hlKSBhbmQgYSBjdXN0b20gc2V0dGluZ3MueG1sIHdpdGggYQo8bG9jYWxSZXBvc2l0b3J5PiBlbGVtZW50IGluc3RlYWQgb2YgdXNpbmcgYXJ0aWZhY3RzPwoKQmVzdCwKTGFpcmQKCi0tOTRlYjJjMDc2YTYyMzM0ZWUzMDU1YTkzMGY5MS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0ODUyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBEZWMgMjcgMjM6NDk6MDEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODUyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEI0NDRDMTdCNDgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyNyBEZWMgMjAxNyAyMzo0OTowMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDIwMTcyIGludm9rZWQgYnkgdWlkIDUwMCk7IDI3IERlYyAyMDE3IDIzOjQ5OjAxIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMDA5MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBEZWMgMjAxNyAyMzo0OTowMSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIwMDc5IGludm9rZWQgYnkgdWlkIDk5KTsgMjcgRGVjIDIwMTcgMjM6NDk6MDEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDI3IERlYyAyMDE3IDIzOjQ5OjAwICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgN0U5QUVDNDVGNgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjcgRGVjIDIwMTcgMjM6NDk6MDAgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjg3OQpYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuODc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB1cjB6RFMwX0JpZWsgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsIDI3IERlYyAyMDE3IDIzOjQ4OjU5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtaXQwLWY0Mi5nb29nbGUuY29tIChtYWlsLWl0MC1mNDIuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNC40Ml0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAzNTU1QzVGQjI5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyNyBEZWMgMjAxNyAyMzo0ODo1OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1pdDAtZjQyLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIG0xMXNvMjg5NjI5ODBpdGkuMQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDI3IERlYyAyMDE3IDE1OjQ4OjU5IC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvCiAgICAgICAgIDpjYzsKICAgICAgICBiaD1zZzE3UU5jdkJwbnNzOVN0cEdLQVJrTDF0U0t5MXdYTVJOVm9heUJHYUZBPTsKICAgICAgICBiPW9yYVZtTkNCQzN0allaZkhNdXF0T0lDQStPOENLUDZ5bmw0aTBFckN5ZjFwdUhxd0NQakJaSExxZ3lnRW0rVG4vWAogICAgICAgICA0TGRxUmlrcENrSGlVUVV6L1gybFR5dXduTDlFL2dNd2E3OTZzdlNiU2NPU0dPRnZWbkNpS2d0VENDVlZ2dGE4ZEU1cAogICAgICAgICBlcloyRUhPZEtyUlAwSFdEQUhaNVBwRTl5YjdqME9hbzhDK1RXQVFvc1E4QzNWaFRKYVdNN0xvMUlGSDZrVDNqb1pQMgogICAgICAgICAzN2NFWkFCQTFCQy9SeGZ4blpQclB2SHFvTGFtdjMwNVBlNmFxQUIyOU40Q2p0SVhmM283eUw1YU5IWTJDb1JIOC8yNQogICAgICAgICBXK3M3WEpONFZDOGh6aFZ5VDlsSE5YZTNWL3J1T1pGZW1aTzY5T1VocVNLdis0aTdOQk9tZTZObThQT0hpQWYyZ0JtdAogICAgICAgICBydjZnPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzpjYzsKICAgICAgICBiaD1zZzE3UU5jdkJwbnNzOVN0cEdLQVJrTDF0U0t5MXdYTVJOVm9heUJHYUZBPTsKICAgICAgICBiPWU3Ri9KeUx5ek9NdERwS1hPUTZkUVJJNUhVeUtlczduZ0FXTXhCR1puUlpmc21aVHBVRHNSM3RRZlNyWmdPdjVIVgogICAgICAgICBTcmZYci9NV2tlb2ZLUDNwa1VLdkZhNXhsaTczZUIwL0crK1dnYTFXYnp3SFhFYmNRUjJDVTk2YXRsRldvR3VlcllCMAogICAgICAgICBsUnA3cHNSZEt5S2VJcDBBcGFSanoxNXJMalZHdmgyMTJFKzU0Mk5pSDFpLzZnY3JCckJsQWZGeXZkWHdKWUs3NE5kOAogICAgICAgICBQdjF6dnErd242ZEpNUVh1VmxvTk53RkF2R1VyQXRmd3d6c1BSOXdaclpkNmVzTnRhU2o2RVJYNytjTjJIc0hvVWVLbwogICAgICAgICB0TlFJSjBaZWxRMTRGY0RMMFlNcEtDc0oxWWVTT0s0ZWU5YmtTU1dQTnU5U2EvR1d1MFVLZ2hYcm0vRUgvVGlzOWxjMwogICAgICAgICBIb0hBPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBS0dCM21LMC84c1E3SEZvckhPWXNtZjdmY2xFOTRmK1dYS3dGT1dQZ21BY0VlZE9wZWU0TXEyeAoJY0RmcjRpV00xd3Vrc2hBNm11NTM3N2VCbVRYWWhmYWpIUi9KeHBKR2VnPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFDSmZCb3ZXQ3d4YnFka0VsejEwWmg3d05FVVRaVWplbnVBZG1Pd1liREkxVTQrYkFseWIvVlp6djQrdElwTGdjcFJ3S1JMN2kyMURmTnFsN0hWN3RNVEdLR3M9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjM2LjE1Ny4xMjkgd2l0aCBTTVRQIGlkIGYxMjNtcjQwMzI0MjY0aXRkLjM5LjE1MTQ0MTg1Mzg0ODA7CiBXZWQsIDI3IERlYyAyMDE3IDE1OjQ4OjU4IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDw5NTBkZTI4MC01OTI4LTRmZTMtYWNhOC0wOTIzNDE1MjRjNjZAZ214LmRlPiA8Q0FMYVRlQ28wLS1fcDZkdU5GM2MwM2NWRk80WHZUdm8zWW5kd0NqX0g3NFhSdm93WkFnQG1haWwuZ21haWwuY29tPgogPENBTGFUZUNwYlo5YUMrcWRTa1QxUk0yaEJxRT1NY19iTHZiZkFDSGgtc2dVeW5INDhQd0BtYWlsLmdtYWlsLmNvbT4KIDxDQUpHN0RYMVNkYXh3b0pLNXFqYzEyMEZkZUhDWk9IUnppb2VibUV3R3FnejVrWG0xNndAbWFpbC5nbWFpbC5jb20+IDwyMzdiMjAxNS03MzBiLTY1OWEtMWZiYy00NTFhNGJlNDQyOGRAZ214LmRlPgpJbi1SZXBseS1UbzogPDIzN2IyMDE1LTczMGItNjU5YS0xZmJjLTQ1MWE0YmU0NDI4ZEBnbXguZGU+CkZyb206IFN5bHdlc3RlciBMYWNoaWV3aWN6IDxzbGFjaGlld2ljekBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMjcgRGVjIDIwMTcgMjM6NDg6NDcgKzAwMDAKTWVzc2FnZS1JRDogPENBSkc3RFgwSnUxaWFGcFJfeVdvaUxqQ0xvTGNLRVpVa0pFZ3VSa2ErMjdvUXVjeFZHUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IG1hdmVuLWFyY2hpdmVyIGJ1aWxkIG9uIEplbmtpbnMgLSBUZXN0IEZhaWx1cmVzClRvOiBpbmZvQHNvZWJlcy5kZQpDYzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0NGYyZGUwNzBiNTEwNTYxNWIwYmNlIgoKLS0wMDFhMTE0NGYyZGUwNzBiNTEwNTYxNWIwYmNlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCk9rLCBhZnRlciBtb3JlIHRlc3RzIGkgZm91bmQgdGhhdCBlcnJvciBleGlzdHMgd2hlbiBwcm9qZWN0IHdhcyBleGVjdXRlZCBpbgpwYXRoIHdpdGggQCBjaGFyIHRoYXQgd2FzIGVuY29kZWQgdG8gJTQwMiAtCmh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvU1VSRUZJUkUtMTMxMgoKU3lsd2VzdGVyCgo9QzU9OUJyLiwgMjcgZ3J1IDIwMTcgbyAxMzozMSB1PUM1PUJDeXRrb3duaWsgS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWk9CnNlQGdteC5kZT4KbmFwaXNhPUM1PTgyOgoKPiBIaSwKPgo+IE9uIDI3LzEyLzE3IDEzOjAxLCBTeWx3ZXN0ZXIgTGFjaGlld2ljeiB3cm90ZToKPiA+IEJ1aWxkIGZhaWxzIHdpdGggbG9uZyBkaXJlY3RvcnkgbmFtZSAtIGFsc28gb24gd2luZG93cy4KPiA+IFVwZ3JhZGUgbWF2ZW4tc3VyZWZpcmUtcGx1Z2luIHRvIDIuMjAuMSBmaXhlcyB0ZXN0IGVycm9yLgo+Cj4gSG0uLnRoaXMgaXMgYSBsaXR0bGUgYml0IGNvbmZ1c2luZywgY2F1c2UgdGhlIGxlbmd0aCBmb3Igd2luZG93cyBhcmUKPiBhYm91dCAxNDEgY2hhcmFjdGVycyAoYWxyZWFkeSB0aG91Z2h0IGFib3V0IHNvbWV0aGluZyBzaW1pbGFyKSBidXQgdGhlCj4gdXBncmFkZSBjaGFuZ2VzIHRoZSBzaXR1YXRpb24gY29tcGxldGVseSAuLi5UaGFua3MgZm9yIHRoYXQgaGludC4uCj4KPgo+IEp1c3Qgb25lIHRlc3QgY2FzZXMgaXMgZmFpbGluZy4uLgo+Cj4gS2lkbiByZWdhcmRzCj4gS2FybCBIZWlueiBNYXJiYWlzZQo+Cj4gPgo+ID4KPiA+ID1DNT05QnIuLCAyNyBncnUgMjAxNyBvIDA4OjQ5IHU9QzU9QkN5dGtvd25payBQbGFtZW4gVG90ZXYgPAo+IHBsYW1lbi5pdi50b3RldkBnbWFpbC5jb20+Cj4gPiBuYXBpc2E9QzU9ODI6Cj4gPgo+ID4+IEFuZCBpZiB0aGlzIGNvdWxkIGhlbHAgKEkga25vdyBpdCdzIG9idmlvdXMgYnV0IG1heSBzYWZlIHRpbWUpIGl0Cj4gPj4gbG9va3MgdGhlIHJlYXNvbiBmb3IgdGhlIGZhaWxpbmcgdGVzdHMgaXMgdGhlIHNhbWUuIFRoZSBmb2xsb3dpbmcgY29kZQo+ID4+IGZhaWxzIHdpdGggYXNzZXJ0aW9uIGVycm9yOgo+ID4+Cj4gPj4gICAgICAgICAgZmluYWwgTWFuaWZlc3QgbWFuaWZlc3QgPTNEIGdldEphckZpbGVNYW5pZmVzdCggamFyRmlsZSApOwo+ID4+ICAgICAgICAgIFN0cmluZyBjbGFzc1BhdGggPTNEIG1hbmlmZXN0LmdldE1haW5BdHRyaWJ1dGVzKCkuZ2V0VmFsdWUoCj4gPj4gQXR0cmlidXRlcy5OYW1lLkNMQVNTX1BBVEggKTsKPiA+PiAgICAgICAgICBhc3NlcnROb3ROdWxsKCBjbGFzc1BhdGggKTsKPiA+Pgo+ID4+IFRoZSBOdWxsUG9pbnRlckV4Y2VwdGlvbnMgZnJvbSB0aGUgcmVzdCBvZiB0aGUgdGVzdHMgYXJlIGNvbWluZyBmcm9tCj4gPj4gdGhlIHNhbWUgZXhwcmVzc2lvbiAoYG1hbmlmZXN0LmdldE1haW5BdHRyaWJ1dGVzKCkuZ2V0VmFsdWUoCj4gPj4gIkNsYXNzLVBhdGgiICkuZ2V0Qnl0ZXMoKWApLgo+ID4+Cj4gPj4gT24gV2VkLCBEZWMgMjcsIDIwMTcgYXQgOTozOSBBTSwgUGxhbWVuIFRvdGV2IDwKPiBwbGFtZW4uaXYudG90ZXZAZ21haWwuY29tPgo+ID4+IHdyb3RlOgo+ID4+PiBIaSwKPiA+Pj4KPiA+Pj4gT24gVHVlLCBEZWMgMjYsIDIwMTcgYXQgOTowMSBQTSwgS2FybCBIZWlueiBNYXJiYWlzZSA8Cj4ga2htYXJiYWlzZUBnbXguZGU+Cj4gPj4gd3JvdGU6Cj4gPj4+Cj4gPj4+PiBJcyBzb21lb25lIG91dCB0aGVyZSB3aG8gY2FuIGNoZWNrIHRoZSBjdXJyZW50IHN0YXRlIG9mIG1hdmVuLWFyY2hpdj0KZXIKPiA+PiBnaXQKPiA+Pj4+IHJlcG8gb24gV2luZG93cyBhbmQgY2FuIHJlcHJvZHVjZSB0aGUgaXNzdWUgPwo+ID4+Pgo+ID4+PiBJIHJhbiB0aGUgYnVpbGQgYSBjb3VwbGUgb2YgdGltZXMoanVzdCBpbiBjYXNlKSBvbiBXaW5kb3dzIDEwLCBNYXZlbgo+ID4+PiAzLjUuMiwgSkRLIDkuMC4xIGFuZCBldmVyeXRoaW5nIGlzIG9rLiBBbmQgaXQgbG9va3MgbGlrZSB0aGUgYnVpbGQgaXMKPiA+Pj4gZmFpbGluZyBvbiBMaW51eCBKREsgOSBhbmQgV2luZG93cyBKREsgOCBhcyB3ZWxsLCBzbyBpZiB0aGVyZSBpcyBhIGJ1PQpnCj4gPj4+IChhbmQgbm90IGEgcHJvYmxlbSB3aXRoIHRoZSBidWlsZCkgdGhlbiBpdCBpcyBwcm9iYWJseSBub3QgYSBXaW5kb3dzCj4gPj4+IG9yIEpESyA5IHJlbGF0ZWQuCj4gPj4+Cj4gPj4+IFJlZ2FyZHMsCj4gPj4+IFBsYW1lbiBUb3Rldgo+CgotLTAwMWExMTQ0ZjJkZTA3MGI1MTA1NjE1YjBiY2UtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDg0NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgRGVjIDI3IDEyOjAyOjIxIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg0NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3MTRFQjE3NkFCCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMjcgRGVjIDIwMTcgMTI6MDI6MjEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxNzMzOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBEZWMgMjAxNyAxMjowMjoyMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTcyNjkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjcgRGVjIDIwMTcgMTI6MDI6MjEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNzI1NyBpbnZva2VkIGJ5IHVpZCA5OSk7IDI3IERlYyAyMDE3IDEyOjAyOjIwIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAyNyBEZWMgMjAxNyAxMjowMjoyMCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDQ4OTNBQzUwRUUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDI3IERlYyAyMDE3IDEyOjAyOjIwICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS44OTgKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjg5OCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTAuMDAxLAoJU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgUHFlYnNLOWI1Rk03IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJV2VkLCAyNyBEZWMgMjAxNyAxMjowMjoxNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLWlvMC1mMTgwLmdvb2dsZS5jb20gKG1haWwtaW8wLWYxODAuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIyMy4xODBdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMjI1NEI1RjNERgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjcgRGVjIDIwMTcgMTI6MDI6MTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtaW8wLWYxODAuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgdDE5NnNvMzUxNDY0ODNpb2YuMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDI3IERlYyAyMDE3IDA0OjAyOjE3IC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvCiAgICAgICAgIDpjYzsKICAgICAgICBiaD1rOFBjVHNTWkdzUE1SNHFGY2pBcThuY2hXTENMdFkyQ1lqUmFrM2dtblY4PTsKICAgICAgICBiPWFYakY1amlsWTNJdW5GeElVMUhkNWJZMzAxSlhtc2pkZXV6bEJHVWxjOEkzeEpWSjluRVRaN3ppcTVHbDRCK0pSUgogICAgICAgICBpdklqbFRMbVZGcUhLVENybHdCd3R5V3k3bVM1ZVMrdThwSGVBMGR5a01PdDMxL0R4NEpta21XYi95RGgyMTRCS2hYUwogICAgICAgICBuTG1XK3dYYkovTnBEdjJhdms1V2FOVVNYVWVWMkRLZkRhQVJkSnpzblRKbGNiZ1V2bWRtOVVkNXRXRnZ4aFJKRzE5MQogICAgICAgICBvVEx6ZjFHQ3lFbHgzODFOZmlTbmtTcVRLeVoyLzVBdGxBYnhVTTYwNFB1bnJNYUZQMHdYL1QwV1pyTE85eUFQckNROAogICAgICAgICBxMlZzR1A5Tzczb3ZDSTAwVlYrYkJYUWdXd1dsZW9LTjd3MWE3ZEl5dlpPTEJFVEFLNmNGM01LbHhsNWY5bVg1WlU1NgogICAgICAgICBOU0JBPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzpjYzsKICAgICAgICBiaD1rOFBjVHNTWkdzUE1SNHFGY2pBcThuY2hXTENMdFkyQ1lqUmFrM2dtblY4PTsKICAgICAgICBiPXJVYWJFWVFtTzYrTHZtSThuM1VJY0s1WjdKVmd5QWs3RlcrelYzSmJ0aUF6WUZPbVdHa1B3dFp3b3J2cVN2K0FFTQogICAgICAgICBvM2UwQy81YzlKVW1RQldxaTF3cDdBOWhlOWVBb2llZkFHT1cwOXFYRUYwTmhJSTdyNnAxSi91NnJmVDQxNXBTTGk2dwogICAgICAgICBLcE9jbmo2M1lNMktaTDBmRWFxLzZiOCtlUlphTTFoVGRYMktEQkhEMGRYUmZXZ25rK0FJRDEydmpUcGRVeUMxenJ2TgogICAgICAgICA0bWxaV2dGZnoyT3FybWNOY0IxMm1XamZ1Mno3WHNIM3lhekh2NmVpWFVJU1V4d0Qxakljb1BDNWREa3h5dEs1K1ROcgogICAgICAgICBkRmIxK0Y4RHZoalhyVnVkNWdETUNrelp6WmoyR2ptMTZnNkFmMVh5V3BGNm9IZll6THlSNHhkVGFEYU42dXRwQm5yNQogICAgICAgICBiRlJ3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBS0dCM21JR0llYU5ObjBUbGRpRHJ1UVIySzQyK0kzdFZldmMyNlVYaFZ4enJaY2RzanNMR3NXagoJZUpwUGh4TForT1BoQTk0eFRYNEc4RHN6QlV6QndUZlJ2UTI1UlYvenRnPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFDSmZCb3VlcERnZUdoSVFVeEZxVWNzaFBlTHRnN3V5K3hrd2MzZWJlK04vOVFwckJidkoySWRXU1ZmYXFkRWxzSkxMbm9QemRHTCtJcnF6QzhxZ0w0VEgxNDA9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjEwNy4xNjUuMTUgd2l0aCBTTVRQIGlkIG8xNW1yMzYwOTMxODJpb2UuMTI5LjE1MTQzNzYxMzAxODI7CiBXZWQsIDI3IERlYyAyMDE3IDA0OjAyOjEwIC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDw5NTBkZTI4MC01OTI4LTRmZTMtYWNhOC0wOTIzNDE1MjRjNjZAZ214LmRlPiA8Q0FMYVRlQ28wLS1fcDZkdU5GM2MwM2NWRk80WHZUdm8zWW5kd0NqX0g3NFhSdm93WkFnQG1haWwuZ21haWwuY29tPgogPENBTGFUZUNwYlo5YUMrcWRTa1QxUk0yaEJxRT1NY19iTHZiZkFDSGgtc2dVeW5INDhQd0BtYWlsLmdtYWlsLmNvbT4KSW4tUmVwbHktVG86IDxDQUxhVGVDcGJaOWFDK3FkU2tUMVJNMmhCcUU9TWNfYkx2YmZBQ0hoLXNnVXluSDQ4UHdAbWFpbC5nbWFpbC5jb20+CkZyb206IFN5bHdlc3RlciBMYWNoaWV3aWN6IDxzbGFjaGlld2ljekBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMjcgRGVjIDIwMTcgMTI6MDE6NTkgKzAwMDAKTWVzc2FnZS1JRDogPENBSkc3RFgxU2RheHdvSks1cWpjMTIwRmRlSENaT0hSemlvZWJtRXdHcWd6NWtYbTE2d0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IG1hdmVuLWFyY2hpdmVyIGJ1aWxkIG9uIEplbmtpbnMgLSBUZXN0IEZhaWx1cmVzClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDYzogaW5mb0Bzb2ViZXMuZGUKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0MTU3MDA0YmNhZWYwNTYxNTEyYjljIgoKLS0wMDFhMTE0MTU3MDA0YmNhZWYwNTYxNTEyYjljCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkJ1aWxkIGZhaWxzIHdpdGggbG9uZyBkaXJlY3RvcnkgbmFtZSAtIGFsc28gb24gd2luZG93cy4KVXBncmFkZSBtYXZlbi1zdXJlZmlyZS1wbHVnaW4gdG8gMi4yMC4xIGZpeGVzIHRlc3QgZXJyb3IuCgoKPUM1PTlCci4sIDI3IGdydSAyMDE3IG8gMDg6NDkgdT1DNT1CQ3l0a293bmlrIFBsYW1lbiBUb3RldiA8cGxhbWVuLml2LnRvdGV2PQpAZ21haWwuY29tPgpuYXBpc2E9QzU9ODI6Cgo+IEFuZCBpZiB0aGlzIGNvdWxkIGhlbHAgKEkga25vdyBpdCdzIG9idmlvdXMgYnV0IG1heSBzYWZlIHRpbWUpIGl0Cj4gbG9va3MgdGhlIHJlYXNvbiBmb3IgdGhlIGZhaWxpbmcgdGVzdHMgaXMgdGhlIHNhbWUuIFRoZSBmb2xsb3dpbmcgY29kZQo+IGZhaWxzIHdpdGggYXNzZXJ0aW9uIGVycm9yOgo+Cj4gICAgICAgICBmaW5hbCBNYW5pZmVzdCBtYW5pZmVzdCA9M0QgZ2V0SmFyRmlsZU1hbmlmZXN0KCBqYXJGaWxlICk7Cj4gICAgICAgICBTdHJpbmcgY2xhc3NQYXRoID0zRCBtYW5pZmVzdC5nZXRNYWluQXR0cmlidXRlcygpLmdldFZhbHVlKAo+IEF0dHJpYnV0ZXMuTmFtZS5DTEFTU19QQVRIICk7Cj4gICAgICAgICBhc3NlcnROb3ROdWxsKCBjbGFzc1BhdGggKTsKPgo+IFRoZSBOdWxsUG9pbnRlckV4Y2VwdGlvbnMgZnJvbSB0aGUgcmVzdCBvZiB0aGUgdGVzdHMgYXJlIGNvbWluZyBmcm9tCj4gdGhlIHNhbWUgZXhwcmVzc2lvbiAoYG1hbmlmZXN0LmdldE1haW5BdHRyaWJ1dGVzKCkuZ2V0VmFsdWUoCj4gIkNsYXNzLVBhdGgiICkuZ2V0Qnl0ZXMoKWApLgo+Cj4gT24gV2VkLCBEZWMgMjcsIDIwMTcgYXQgOTozOSBBTSwgUGxhbWVuIFRvdGV2IDxwbGFtZW4uaXYudG90ZXZAZ21haWwuY29tPgo+IHdyb3RlOgo+ID4gSGksCj4gPgo+ID4gT24gVHVlLCBEZWMgMjYsIDIwMTcgYXQgOTowMSBQTSwgS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU9Cj4KPiB3cm90ZToKPiA+Cj4gPj4gSXMgc29tZW9uZSBvdXQgdGhlcmUgd2hvIGNhbiBjaGVjayB0aGUgY3VycmVudCBzdGF0ZSBvZiBtYXZlbi1hcmNoaXZlcgo+IGdpdAo+ID4+IHJlcG8gb24gV2luZG93cyBhbmQgY2FuIHJlcHJvZHVjZSB0aGUgaXNzdWUgPwo+ID4KPiA+IEkgcmFuIHRoZSBidWlsZCBhIGNvdXBsZSBvZiB0aW1lcyhqdXN0IGluIGNhc2UpIG9uIFdpbmRvd3MgMTAsIE1hdmVuCj4gPiAzLjUuMiwgSkRLIDkuMC4xIGFuZCBldmVyeXRoaW5nIGlzIG9rLiBBbmQgaXQgbG9va3MgbGlrZSB0aGUgYnVpbGQgaXMKPiA+IGZhaWxpbmcgb24gTGludXggSkRLIDkgYW5kIFdpbmRvd3MgSkRLIDggYXMgd2VsbCwgc28gaWYgdGhlcmUgaXMgYSBidWcKPiA+IChhbmQgbm90IGEgcHJvYmxlbSB3aXRoIHRoZSBidWlsZCkgdGhlbiBpdCBpcyBwcm9iYWJseSBub3QgYSBXaW5kb3dzCj4gPiBvciBKREsgOSByZWxhdGVkLgo+ID4KPiA+IFJlZ2FyZHMsCj4gPiBQbGFtZW4gVG90ZXYKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCi0tMDAxYTExNDE1NzAwNGJjYWVmMDU2MTUxMmI5Yy0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NDYxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBOb3YgMTIgMDc6NDE6MDggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDYxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEFGQ0ZGMTA3OEUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxMiBOb3YgMjAxNyAwNzo0MTowOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDM1NTQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTIgTm92IDIwMTcgMDc6NDE6MDggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMyMjUgaW52b2tlZCBieSB1aWQgNTAwKTsgMTIgTm92IDIwMTcgMDc6NDE6MDggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMjEzIGludm9rZWQgYnkgdWlkIDk5KTsgMTIgTm92IDIwMTcgMDc6NDE6MDcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDEyIE5vdiAyMDE3IDA3OjQxOjA3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRUZERURDNkVENwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTIgTm92IDIwMTcgMDc6NDE6MDYgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjM3OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjM3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgajExdjAtMVB4eXJvIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAxMiBOb3YgMjAxNyAwNzo0MTowNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXVhMC1mMTczLmdvb2dsZS5jb20gKG1haWwtdWEwLWYxNzMuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNy4xNzNdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQzY0ODY1RjNERQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTIgTm92IDIwMTcgMDc6NDE6MDQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdWEwLWYxNzMuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgejRzbzk0NjQwMzV1YXouNQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDExIE5vdiAyMDE3IDIzOjQxOjA0IC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXIxbUVwYlRmeVBkVWV3U2duc0k4dUt1Wk9HbGlPS1FyaUJyWTR2QnRiWGs9OwogICAgICAgIGI9aEVsQmxtWEZHR3hyZjlGN0hnWVpzUDFuamMvR3IrODlZVW1vVjFSQnZ0M3pFWlNIL1BtKy9yR2FUdTIzakVqNFNzCiAgICAgICAgIGhISUNRMHY3NzFyUk5zOEhiYjQ2ZGFiZnRjYlppQnA4bVE3Ujh4UjhTVisrTURnemZJeEF1MUhKdVUrVzRrQVI2RnpBCiAgICAgICAgIHpDQmNJckFWRmtBSmF4bzlXYldQU2VDY05zeEJtTWEzb2FiOUJROERnemM0bm5Dem8rdk9mb0Y0U25BUEwwR2U0RGZXCiAgICAgICAgIHNVSXdSRXUzUE1vWjUvZkZtZzhuMkxHSjU5Zmt5Vm9LWlcyS2VKbEdsVVlwUllrOVpLOUtSMnF5SUdmV2NMdkozRlhZCiAgICAgICAgIHQzRDd2YTBSWW9wc2swQ0ZLdGhnN1RRRmJYV1l2eTdKUzdEZnFQSnJBUitMa2x0VW0ySElxSlNFajZPR0JHc1BHRFFaCiAgICAgICAgIDQrcGc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXIxbUVwYlRmeVBkVWV3U2duc0k4dUt1Wk9HbGlPS1FyaUJyWTR2QnRiWGs9OwogICAgICAgIGI9QjJWSzQyVCtVek5uU3BSV3hKR3BhL1hrUlJnV29xRTlGdGNING9lODNtaTNrOE5UQ0FmTkNoMEljNExSZDRUNjFTCiAgICAgICAgIDUyNUU0T1I4bVZNRFJ3STlYSm9tWkpES1FZNy9VaXAyOGRVVC9TSncreHRuU09zWlhoME9VYVBhUUlrZFlHYndjcGlFCiAgICAgICAgIGt3OVVRbGowK3VabEJoYWVIeUNnSDljNGtJaEZMbWNNYm5HRVlrYWpwaitZeFVZalZNSzVrYSt5RndKQllmWm1mVnR1CiAgICAgICAgIGdPMGsyVUdBUjk2K21jNE5oU2dsc0piQk5NLy9oYWtiZDk0NXFMOTNNdTBicHpKeXZIZGEyTit0ZmM0WkFTU0tRTlFxCiAgICAgICAgIDkzMHZCVHJiVnVFZ1RBcTRZRjdDV2pVbDFiU05aZmFqWVYrVk5HeDU4NDJNT2N6WFFwRE8vZGRsWWhDaGphdm9BNjlhCiAgICAgICAgIGJ2THc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDRTaFI3OVJ2c1VXaXozTFhlUzJtUC82QnZ2aCtEQVFHZUpEMVNoOUJrZ0JBek9LRGp2CgkwTVUwaU1yN25GaXRwYTZLRmFKN3A2NDJNVFVmTmNHTUZjRnk0TnM9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1iKys5U2FvQ0g0NFM1b3lmN2JERWtUc0d0Nlk2MFVIZUVVZjNsTlZzY1B6OEVld2dYSWRsZTJzaFFGdHNMVzZRaEl0dmZvU2xwT0NpY3ZicjM0WHc4PQpYLVJlY2VpdmVkOiBieSAxMC4xNzYuMjAuMjI1IHdpdGggU01UUCBpZCBmMzBtcjQ4OTY3MTZ1YWUuNjYuMTUxMDQ3MjQ2NDE1NTsKIFNhdCwgMTEgTm92IDIwMTcgMjM6NDE6MDQgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjE3Ni4xMC45IHdpdGggSFRUUDsgU2F0LCAxMSBOb3YgMjAxNyAyMzo0MTowMyAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPENBK25Qbk13RUg5WjJteXA3MXVhU3JkY3lMSlJGckUtVnJ0MjAxOTFyZDAxaCtVZmhqd0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk13RUg5WjJteXA3MXVhU3JkY3lMSlJGckUtVnJ0MjAxOTFyZDAxaCtVZmhqd0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogQ2hyaXMgR3JhaGFtIDxjaHJpc2d3YXJwQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAxMiBOb3YgMjAxNyAxODo0MTowMyArMTEwMApNZXNzYWdlLUlEOiA8Q0FKY0t6SEdldlhXdXVOV3ZRUy01YzRxRmtZN1BnWUhfdnpQdENoeFQ3bjd0TmRXRDNnQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogTWF2ZW4gNC4wLjAKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDVhYjAwYWI0OTQyMDU1ZGM0NDZiMiIKCi0tMDAxYTExNDVhYjAwYWI0OTQyMDU1ZGM0NDZiMgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpyZXF1aXJlZDoKIC0gKmV2ZXJ5dGhpbmcqIGluIHNldHRpbmdzLnhtbCBjYW4gYmUgcHV0IGluIGEgcHJvZmlsZSBzZWN0aW9uIGluCnNldHRpbmdzLnhtbC4KCkkgb2Z0ZW4gbW92ZSBhcm91bmQvYmV0d2VlbiBwcm9qZWN0cyBhbmQgaGF2aW5nIHRvIHJlZG8gbWlycm9ycyBzZWN0aW9uLAphbmQgdW5hYmxlIHRvIGFkZCBzZXJ2ZXJzIGludG8gdGhlIHByb2ZpbGUgc2VjdGlvbiBmb3IgY2xhcml0eSBpcyBhIHBhaW4uCgpGb3IgbWUsIGl0J3MganVzdCBhIG1hdHRlciBvZiBjb252aWVuZW5jZS4KCk9uIFNhdCwgTm92IDQsIDIwMTcgYXQgMTE6MjAgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgPApzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKCj4gVGhlIHBhc3QgdHdvIGRheXMsIEhlcnY9QzM9QTksIFJvYmVydCBhbmQgSSBoYXZlIGJlZW4gZGlzY3Vzc2luZyBvdXIgbmV4dD0KIHN0ZXBzLgo+Cj4gSSB0aGluayB3ZSBoYXZlIGEgc2VtaS1jb25zZW5zdXMgd2hpY2ggSSB3YW50IHRvIGJyaW5nIGJhY2sgdG8gdGhlIGxpc3Q6Cj4KPiBXZSBrZWVwIDMuNS54IGFzIGEgc3RhYmxlIGJyYW5jaCB3aXRoIGNyaXRpY2FsIGJ1ZyBmaXhlcyBvbmx5Cj4KPiBXZSBzd2l0Y2ggbWFzdGVyIHRvIDQuMC4wIGFuZCBzdGFydCB0byBidXJuIGRvd24gYSByZWxlYXNlIHNjb3BlLgo+Cj4gNC4wLjAgd2lsbCBub3QgY2hhbmdlIHRoZSBwb20gbW9kZWxWZXJzaW9uCj4KPiBUaGUgNC4wLjAgc2NvcGUgc2hvdWxkIHByb2JhYmx5IGJlOgo+Cj4gUmVxdWlyZWQ6Cj4gKiBkcm9wIEphdmEgNywgc3dpdGNoIGNvZGViYXNlIHRvIEphdmEgOCBpZGlvbXMgKHdoaWxlIG1haW50YWluaW5nIGJpbmFyeQo+IGFwaSBjb21wYXRpYmlsaXR5IGZvciBwbHVnaW5zKQo+ICogc3BlY2lmeSB0aGUgY2xhc3Nsb2FkZXIgYmVoYXZpb3VyIGFuZCBmaXggaW1wbCB0byBhbGlnbiB3aXRoIHNwZWMgKG1heQo+IG5lZWQgYSBwbHVnaW4gZmxhZyB0byBhbGxvdyBwbHVnaW5zIHRvIG9wdCBpbiB0byBzcGVjIGJlaGF2aW91cikKPiAqIHNwZWNpZnkgdGhlIGV4dGVuc2lvbiBzcGVjCj4gKiBhbGxvdyBsaW1pdGVkIG11dGF0aW9uIG9mIHRoZSBydW50aW1lIG1vZGVsIChyZWR1Y2luZyB0cmFuc2l0aXZlCj4gZGVwZW5kZW5jaWVzIGZvciBjb25zdW1lcnMgd2l0aGluIHRoZSByZWFjdG9yLCBvbmx5IGZvciBwbHVnaW4gZ29hbHMgdGhhdAo+IGRlY2xhcmUgaW50ZW50KSB1c2UgY2FzZTogc2hhZGUgcGx1Z2luCj4gKiBiZXR0ZXIgQ0kgaW50ZWdyYXRpb24gaG9va3MKPiAqIG5pY2UgZXJyb3IgbWVzc2FnZSBmb3IgbmV3ZXIgcG9tIG1vZGVsVmVyc2lvbgo+Cj4gT3B0aW9uYWw6Cj4gKiAoZGFtbiBJIGZvcmdvdCwgbWF5YmUgUm9iZXJ0IHJlbWVtYmVycykKPiAtLQo+IFNlbnQgZnJvbSBteSBwaG9uZQo+CgotLTAwMWExMTQ1YWIwMGFiNDk0MjA1NWRjNDQ2YjItLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDQ2Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gTm92IDEyIDA3OjU2OjE0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQ2Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBEQzI1QjEwN0FECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMTIgTm92IDIwMTcgMDc6NTY6MTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3NzI1IGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIE5vdiAyMDE3IDA3OjU2OjE0IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MTEyIGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIE5vdiAyMDE3IDA3OjU2OjE0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzEwMCBpbnZva2VkIGJ5IHVpZCA5OSk7IDEyIE5vdiAyMDE3IDA3OjU2OjEzIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxMiBOb3YgMjAxNyAwNzo1NjoxMyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDk2RDZGMTg0MDlECglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMiBOb3YgMjAxNyAwNzo1NjoxMiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuMzc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuMzc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgNFhUVnZBRG9EaDRqIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAxMiBOb3YgMjAxNyAwNzo1NjoxMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXVhMC1mMTc5Lmdvb2dsZS5jb20gKG1haWwtdWEwLWYxNzkuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNy4xNzldKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQkU4Njc1RjJBQgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTIgTm92IDIwMTcgMDc6NTY6MTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdWEwLWYxNzkuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgdzQ3c281ODc4Nzc0dWFoLjMKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAxMSBOb3YgMjAxNyAyMzo1NjoxMCAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1nVDdVY29tbklleEpzTUt1OThoRjJYZnNOR0RpK0EzV0x0aTROZTVETTBvPTsKICAgICAgICBiPVE4TGZ2ODNQNlRFV1lIajhWMUI2d283Z2FHZ05JbWlrbVd0engrNTFWWXNrZlhIaWczOUg2eDlFVDZydmxERTZPWQogICAgICAgICBqRHBaRjlKdHN3WVdpL2NvRmRDWDFSeGpkU1NxUFJvNC9HdEV3TFN5VWNqR09SWUpBbUpoNVYvbDl0VG82Szg2Q1JBNAogICAgICAgICBzL1kwRmpLcnMrbTdaeXNiUGwvOU15a2tNY1ppZDl0TmwrM1dSd3lhWDU0ZTYyMEU3VjBiU2I3Y0Z5RDZvc1c5bGFlWgogICAgICAgICA0dzdmbjVWaGVGRHlRbUt1a3dXZ3ZmV3BmWkJSd3RNNHNURFpVTldrOFJRWWlvaVlJaENmR3hiVGVHWjQzL1FORUI5TwogICAgICAgICBNK055Q21lS1IyZVZ0cDVrQ0sxczVjd0VrUi9vaHN5SXk3NzdVS3FpUXB0ZnFHMTV5eGFsN004cHYyTVBHMUpoK2s2UwogICAgICAgICBreG9RPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1nVDdVY29tbklleEpzTUt1OThoRjJYZnNOR0RpK0EzV0x0aTROZTVETTBvPTsKICAgICAgICBiPUl2cnlrbm03L3YzUDBoRXR1dklwamlBRzZrVkZOb3Qyc0E1SU1kSWNTWnlwWXZtRVg0WWFBT0E1M015UWtIOG5JVgogICAgICAgICBKNlExUXJIbHNZUnA1dlNpYXNLRlpJS2dXbWhGcHVtUFFLRWpMakdxdWdyTW5QaUo2ZDBQR0x6RXM4bTRwNEtGbHVKbQogICAgICAgICBSZWVScU5Jd2lrd2pxZVFIcmg0VmdQRzNaWVVDZE5xWndLSHlxeFV6S2ppRTNTenFtK2ZHVEVQSlVjcyswcVEzTlc2cgogICAgICAgICBKcFI3WGtaeDgrTE9UZGlpS0w2cEFaV0pDMGVoYzFrOGVOT3oxdURpaXZRVEsvWjU1S2U5UVhiMDVIVVc5MEtLYlpQdgogICAgICAgICBuaHpUb1Z0RHZXRGhYZ3JsUkZlOWF5c3VwaTlBb3E3Z2FpN0plRGtURTFNeFdTQmJFMXZGOHF3dEYrL3BNMVY1dDR5dgogICAgICAgICAvd0FnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg2TUQ2eWVpenYzWUxpQldVM0RZR0NXMjMwb29DQ0xsaTFxZmVCMXViQVpTYmY5empjdQoJd0paS2w1Rk92VmJXVDZmWW1xRVJWak50L2REUjh5WFJjTS9JZXhBPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUdzNHpNYXdIUFJFV00xNjloV2tWRU02MktNcWg4WjI0akQwdnZMK24zQlRmVnl6c2pLUDExdW03b2VxOCtka3BQcU9oYi9VWnZLQmRVYjczRDhWbGdRSHgzWT0KWC1SZWNlaXZlZDogYnkgMTAuMTc2LjMuMTY0IHdpdGggU01UUCBpZCAzM21yNDIxNDI0NXVhdS4xNTIuMTUxMDQ3MzM2MzQ4NzsKIFNhdCwgMTEgTm92IDIwMTcgMjM6NTY6MDMgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjE3Ni4xMC45IHdpdGggSFRUUDsgU2F0LCAxMSBOb3YgMjAxNyAyMzo1NjowMiAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPENBSmNLekhHZXZYV3V1Tld2UVMtNWM0cUZrWTdQZ1lIX3Z6UHRDaHhUN243dE5kV0QzZ0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk13RUg5WjJteXA3MXVhU3JkY3lMSlJGckUtVnJ0MjAxOTFyZDAxaCtVZmhqd0BtYWlsLmdtYWlsLmNvbT4KIDxDQUpjS3pIR2V2WFd1dU5XdlFTLTVjNHFGa1k3UGdZSF92elB0Q2h4VDduN3ROZFdEM2dAbWFpbC5nbWFpbC5jb20+CkZyb206IENocmlzIEdyYWhhbSA8Y2hyaXNnd2FycEBnbWFpbC5jb20+CkRhdGU6IFN1biwgMTIgTm92IDIwMTcgMTg6NTY6MDIgKzExMDAKTWVzc2FnZS1JRDogPENBSmNLekhIejB6WTlyQ2F3T3JFb24xMmhwaWQ5TFJkQVJOMnZGa0c2TDhqaXYwNjNqQUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IE1hdmVuIDQuMC4wClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzA2YzQ0NjQ2MDJhNzA1NWRjNDdjODUiCgotLTk0ZWIyYzA2YzQ0NjQ2MDJhNzA1NWRjNDdjODUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT25lIG1vcmU6IEJldHRlciBzdXBwb3J0IGZvciBjbGFzc2lmaWVycy4gaWRlYWxseSBiZSBhYmxlIHRvIHJlZmVyZW5jZSB0aGVtCnZpYSBhIHskcHJvamVjdC5jbGFzc2lmaWVyfSB0eXBlIG9mIGNvbnN0cnVjdCwgZXNwIHNvIEkgY2FuIHVzZS9yZWZlcmVuY2UKdGhlbSBpbiBhc3NlbWJsZSB0cmFuc2Zvcm1hdGlvbnMuCgpUaGlzIG1pZ2h0IGJlIGFibGUgdG8gYmUgZG9uZSB3aXRob3V0IGJ1bXBpbmcgdG8gVjQgdGhvdWdoLgoKCgpPbiBTdW4sIE5vdiAxMiwgMjAxNyBhdCA2OjQxIFBNLCBDaHJpcyBHcmFoYW0gPGNocmlzZ3dhcnBAZ21haWwuY29tPiB3cm90ZToKCj4gcmVxdWlyZWQ6Cj4gIC0gKmV2ZXJ5dGhpbmcqIGluIHNldHRpbmdzLnhtbCBjYW4gYmUgcHV0IGluIGEgcHJvZmlsZSBzZWN0aW9uIGluCj4gc2V0dGluZ3MueG1sLgo+Cj4gSSBvZnRlbiBtb3ZlIGFyb3VuZC9iZXR3ZWVuIHByb2plY3RzIGFuZCBoYXZpbmcgdG8gcmVkbyBtaXJyb3JzIHNlY3Rpb24sCj4gYW5kIHVuYWJsZSB0byBhZGQgc2VydmVycyBpbnRvIHRoZSBwcm9maWxlIHNlY3Rpb24gZm9yIGNsYXJpdHkgaXMgYSBwYWluLgo+Cj4gRm9yIG1lLCBpdCdzIGp1c3QgYSBtYXR0ZXIgb2YgY29udmllbmVuY2UuCj4KPiBPbiBTYXQsIE5vdiA0LCAyMDE3IGF0IDExOjIwIFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPgo+PiBUaGUgcGFzdCB0d28gZGF5cywgSGVydj1DMz1BOSwgUm9iZXJ0IGFuZCBJIGhhdmUgYmVlbiBkaXNjdXNzaW5nIG91ciBuZXg9CnQKPj4gc3RlcHMuCj4+Cj4+IEkgdGhpbmsgd2UgaGF2ZSBhIHNlbWktY29uc2Vuc3VzIHdoaWNoIEkgd2FudCB0byBicmluZyBiYWNrIHRvIHRoZSBsaXN0Ogo+Pgo+PiBXZSBrZWVwIDMuNS54IGFzIGEgc3RhYmxlIGJyYW5jaCB3aXRoIGNyaXRpY2FsIGJ1ZyBmaXhlcyBvbmx5Cj4+Cj4+IFdlIHN3aXRjaCBtYXN0ZXIgdG8gNC4wLjAgYW5kIHN0YXJ0IHRvIGJ1cm4gZG93biBhIHJlbGVhc2Ugc2NvcGUuCj4+Cj4+IDQuMC4wIHdpbGwgbm90IGNoYW5nZSB0aGUgcG9tIG1vZGVsVmVyc2lvbgo+Pgo+PiBUaGUgNC4wLjAgc2NvcGUgc2hvdWxkIHByb2JhYmx5IGJlOgo+Pgo+PiBSZXF1aXJlZDoKPj4gKiBkcm9wIEphdmEgNywgc3dpdGNoIGNvZGViYXNlIHRvIEphdmEgOCBpZGlvbXMgKHdoaWxlIG1haW50YWluaW5nIGJpbmFyPQp5Cj4+IGFwaSBjb21wYXRpYmlsaXR5IGZvciBwbHVnaW5zKQo+PiAqIHNwZWNpZnkgdGhlIGNsYXNzbG9hZGVyIGJlaGF2aW91ciBhbmQgZml4IGltcGwgdG8gYWxpZ24gd2l0aCBzcGVjIChtYXkKPj4gbmVlZCBhIHBsdWdpbiBmbGFnIHRvIGFsbG93IHBsdWdpbnMgdG8gb3B0IGluIHRvIHNwZWMgYmVoYXZpb3VyKQo+PiAqIHNwZWNpZnkgdGhlIGV4dGVuc2lvbiBzcGVjCj4+ICogYWxsb3cgbGltaXRlZCBtdXRhdGlvbiBvZiB0aGUgcnVudGltZSBtb2RlbCAocmVkdWNpbmcgdHJhbnNpdGl2ZQo+PiBkZXBlbmRlbmNpZXMgZm9yIGNvbnN1bWVycyB3aXRoaW4gdGhlIHJlYWN0b3IsIG9ubHkgZm9yIHBsdWdpbiBnb2FscyB0aGE9CnQKPj4gZGVjbGFyZSBpbnRlbnQpIHVzZSBjYXNlOiBzaGFkZSBwbHVnaW4KPj4gKiBiZXR0ZXIgQ0kgaW50ZWdyYXRpb24gaG9va3MKPj4gKiBuaWNlIGVycm9yIG1lc3NhZ2UgZm9yIG5ld2VyIHBvbSBtb2RlbFZlcnNpb24KPj4KPj4gT3B0aW9uYWw6Cj4+ICogKGRhbW4gSSBmb3Jnb3QsIG1heWJlIFJvYmVydCByZW1lbWJlcnMpCj4+IC0tCj4+IFNlbnQgZnJvbSBteSBwaG9uZQo+Pgo+Cj4KCi0tOTRlYjJjMDZjNDQ2NDYwMmE3MDU1ZGM0N2M4NS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NjE0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBOb3YgMjYgMTA6NDY6NTggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjE0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDYzNDg4MTdFM0QKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAyNiBOb3YgMjAxNyAxMDo0Njo1OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDY5NzczIGludm9rZWQgYnkgdWlkIDUwMCk7IDI2IE5vdiAyMDE3IDEwOjQ2OjUzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2OTY3MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBOb3YgMjAxNyAxMDo0Njo1MiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY5NjU5IGludm9rZWQgYnkgdWlkIDk5KTsgMjYgTm92IDIwMTcgMTA6NDY6NTIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDI2IE5vdiAyMDE3IDEwOjQ2OjUyICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNDYyODExQTAzODUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDI2IE5vdiAyMDE3IDEwOjQ2OjUxICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS44NzkKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjg3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgYjJPYnF0LTlhYjZXIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAyNiBOb3YgMjAxNyAxMDo0Njo0NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLW90MC1mMTc3Lmdvb2dsZS5jb20gKG1haWwtb3QwLWYxNzcuZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjE3N10pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA1QUVGNDVGRENFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAyNiBOb3YgMjAxNyAxMDo0Njo0NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1vdDAtZjE3Ny5nb29nbGUuY29tIHdpdGggU01UUCBpZCBiNDlzbzIxOTI5MTExb3RqLjUKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAyNiBOb3YgMjAxNyAwMjo0Njo0NyAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Uld5VnJyR1lBYUZEalZVVDgvM0RxcDRCZXp2bTdjYlFTS09zMFc5dDZXND07CiAgICAgICAgYj1VeHRRbDlaMUpNR2E3eVNWR3IrS1pzUUV3SzR3YnNuOENxdTE5ajd1VHZWQ29LaTRxckJndW55OFplSkl0ejlETCsKICAgICAgICAgd0xIcEpnblBLOFJvQnJJTmhqanpBSHhBRFIwcExZVWFJUXh0dTdJNjhXSGxyOWxaemVkYnliL0M2S1hieHR5Rm5uZXcKICAgICAgICAgMzRwU0Z1cDNtWGFyK09QU1loaFd5M25yeEpJK0NkMVArK1NTbUlCM3ZLNjgwOXR6VWo0NzFtR0JPWFVORXYxUVFmWUYKICAgICAgICAgcDV0Rnc4SkU4K2VTcFB5V2J4TTgzTmY5YzdVejczWkNkWEFzRzd6MHkvbmdMWFpZUWw2by9hYWRKUVZBdHhnTkcvRWQKICAgICAgICAgdnRVOVVmdndBN3ZwZDBMZjk4WGJFcjFTUGZSU090RzBwMWVHSDNtTjlXVWxnMG9yKytJbDdLbXB2ekRjY29RYXNwZTEKICAgICAgICAgRzJNQT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Uld5VnJyR1lBYUZEalZVVDgvM0RxcDRCZXp2bTdjYlFTS09zMFc5dDZXND07CiAgICAgICAgYj1uOE0reEhvRTdNQmdaamNFV2VPSXVTaW9hTEszaUM5NjlybHJtSWJmeVFzd3pISENFQmFNS1AyUS9aTXY5T2ppcGUKICAgICAgICAgWGR6aDhXTFVrbC8xd1l2a2JDa3Y0bUhnYkN6VTAwWTdYckFnRE1aRDl6UDRDc3RiOUU1RGpQZ0EwdXFiQ0JXb09OZXUKICAgICAgICAgbzlGMjI2aUx3NmpHa0ptQWxBMFkwOFhJTkV3UU1mL0RobUZocDdjcXdKM1VNR0tvdDRUSWJnM1FWMW9oMXVHTnp2R24KICAgICAgICAgcmh0NlJtWW9DbWFsb2JSV2FCNnp5ZHZSaXhCSndRN1RaQjB0MklmQUZCNUwzR2RWQjZNWjhsT3BDKzZjZTh2amxadUgKICAgICAgICAgbFEvMDlBY2dFZXo1SlRVMWd0SFBVSWRKUWQ3RnFZaWtvNVNxQkxSSnIvQkFmcjNETjZDa1EvZkhMaHhCc3VwYnJiYk8KICAgICAgICAgaXkrZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYNHl3cXVYRFE1RU9Ja1hQNGxYOGFnUFBZT3hzcitoTzVQOStoV1Zwc1BEbXo3cE1iMnQKCWJQNi9VYU0wNE1yMUI2UEFERVVYUmgxZVdDWXRCdTViRUd6YjA0bHdKZz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1ZUStidU4zRUNEdmUrTnVsRU5pYjVSdHEwNHkvYmpxbHdGWEtoYm02eGs2T24xN1hjR3JkOVJDeGM0RElIVjFYR3EzYmhWTUFNNzdGdUZaa1ptTW5jPQpYLVJlY2VpdmVkOiBieSAxMC4xNTcuMjIuMjA1IHdpdGggU01UUCBpZCBzMTNtcjI2NzAwNjczb3RzLjIyMy4xNTExNjkzMjAwODY0OwogU3VuLCAyNiBOb3YgMjAxNyAwMjo0Njo0MCAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuNzQuMTIxLjE0IHdpdGggSFRUUDsgU3VuLCAyNiBOb3YgMjAxNyAwMjo0Njo0MCAtMDgwMCAoUFNUKQpGcm9tOiBDaHJpc3RpYW4gU3RlaW4gPHNvcm11cmFzQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAyNiBOb3YgMjAxNyAxMTo0Njo0MCArMDEwMApNZXNzYWdlLUlEOiA8Q0FKaTgrZzdzTDlBRjctaU55ZHNvdENPdzhVMWNPRmhTRkN3TFJkNGRxQ0dMMG09VWdRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBHaXRIdWIgUFIgMTM5IC0gU3VwcG9ydCB3aGl0ZS1ib3ggbW9kdWxhciB0ZXN0IGNvbXBpbGF0aW9uClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQxY2FlODNmM2EzMTA1NWVlMDgwZjMiCgotLTAwMWExMTQxY2FlODNmM2EzMTA1NWVlMDgwZjMKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCkhpIE1hdmVuIGRldnMsCgpJIGltcGxlbWVudGVkIHNvbWUgb3BlbiBlbmRzIGluIHRoZSBtYXZlbi1jb21waWxlci1wbHVnaW4ncwpzdXBwb3J0IGZvciBqcG1zLiBCYXNpY2FsbHkgdGhlIHBsdWdpbiBub3cgc3VwcG9ydHMgbW9kdWxlCmRlc2NyaXB0b3JzIGluIHRlc3Qgc291cmNlIGRpcmVjdG9yaWVzLCB0aGF0IGRlY2xhcmUgdGhlICJyZWFkcyIKb3IgInJlcXVpcmVzIiBkZXBlbmRlbmNpZXMuCgpTZWUgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL3B1bGwvMTM5CgpDaGVlcnMsCkNocmlzdGlhbgoKLS0wMDFhMTE0MWNhZTgzZjNhMzEwNTVlZTA4MGYzLS0KCkZyb20gZGV2LXJldHVybi0xMjQyNzEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE9jdCAyMCAwNjoyMDozNyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyNzEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNjhDQzVDRDAwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMjAgT2N0IDIwMTcgMDY6MjA6MzcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3OTA4NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBPY3QgMjAxNyAwNjoyMDozNSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzgzNzUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgT2N0IDIwMTcgMDY6MjA6MzUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3ODE0NyBpbnZva2VkIGJ5IHVpZCA5OSk7IDIwIE9jdCAyMDE3IDA2OjIwOjM0IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAyMCBPY3QgMjAxNyAwNjoyMDozNCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEREQUIyQzBGQTI7CglGcmksIDIwIE9jdCAyMDE3IDA2OjIwOjMzICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi42MwpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjYzIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJRlJFRU1BSUxfRU5WRlJPTV9FTkRfRElHSVQ9MC4yNSwgSFRNTF9NRVNTQUdFPTIsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxLAoJVVJJQkxfQkxPQ0tFRD0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHdTOHZPSmszTXdrTDsgRnJpLCAyMCBPY3QgMjAxNyAwNjoyMDozMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLWl0MC1mNDQuZ29vZ2xlLmNvbSAobWFpbC1pdDAtZjQ0Lmdvb2dsZS5jb20gWzIwOS44NS4yMTQuNDRdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMjNCNUE1RkJFNTsKCUZyaSwgMjAgT2N0IDIwMTcgMDY6MjA6MzEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtaXQwLWY0NC5nb29nbGUuY29tIHdpdGggU01UUCBpZCB5MTVzbzEyODg0OTc5aXRhLjQ7CiAgICAgICAgVGh1LCAxOSBPY3QgMjAxNyAyMzoyMDozMSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bwogICAgICAgICA6Y2M7CiAgICAgICAgYmg9V2ZFYnFyTlRybVMvd044YkN3eXFSTGhtRmhxaWRCUjJPQm1NYWFGd1U1Zz07CiAgICAgICAgYj10MDdLc2U3S0J2ZUxDVkFrWDZBQ2U1OVQ0UUlNeFJEVGFJZzFqSnJoNlVpOXE4cmZBenpvOFFjVDFrR1F2VEc0Q2UKICAgICAgICAgODlySnAxNS9jY01pUTJmelg5Mkd3YWZLMDcwUjZVY2FNVlU5VE1DY3BLczlIaHpkWU9DTXB6WkxOYkRVUHcxQklwQnYKICAgICAgICAgMFg3MWVtdWxwNE5LYURieHo3SFhwVVNENU8vcGoxcFYwbFZRVTQxY1ZSNXZ0Vk9BN0pUN21KdGFXaVBmVkFvaDZJdzQKICAgICAgICAgTWZ4Rlk5WWdPNzZ5ZjNzdGxSbVdmLzBtSWl6cmZ6YW9oYmZYVURPeCtCVHl2b2xkMlUzN2xnMmdWakpiTWRmdE5xUlIKICAgICAgICAgTFN2NFBEVGc0ZFJyNmVBWmxqZDRyOXR4eGcyUU51QllJSGdQQ3IxNERTSHpBbjY1MG9IK3g2WG5CMWE1TnBoRkhyMW0KICAgICAgICAgSEttdz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG86Y2M7CiAgICAgICAgYmg9V2ZFYnFyTlRybVMvd044YkN3eXFSTGhtRmhxaWRCUjJPQm1NYWFGd1U1Zz07CiAgICAgICAgYj1qVEF3WHFGbG80cEtGY1RNUGdXK1pXcllSUy9DQ1EzT3pIMnZHeFpCN2wvQkVmTDNvNDM1Y1g4aS80UnVFZitueXoKICAgICAgICAgR1BjY1ZzVmpEYXBKcXdNa2R3SU4wSTEyV2dsSE1kcDFzZGZWOTlzQUpsRmJuT0tKYWRaUlc1L1l4S1o3cVVraUwrdC8KICAgICAgICAgNEhPS2paVjBTRkZWTkl0b3BMVlRsV0JXeFFjWFVBL295V21IL3E2OUxaTFE3ZmN0Nm5NUm13NTc4T3hWL0tRMS8rNWoKICAgICAgICAgbWNxcHo2L1pJNXhBd29OTXRQc0hod1hwdUl4Z0ZBTDVWYTBROTg5OFVvemZacDNBclg3WVR5NitZaVRmVUQvMVBSbTYKICAgICAgICAgTVY1L1loL2VyOWFsTk1KKzVPNFNvZ2pRMjF6OE9OQStwN3E3c3lJakpFZ1hkVjJ0VW9hNFFxMEw5NXhGbWk5RHN4eEUKICAgICAgICAgZGZuZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhWEpXREZzS1lOYWVmZ2NqTkxOWDhnZG9lQ0ZRMTB2bldRQ0xManphdnAyMHo5bnJEbE4KCTZEYkNtQUEzdlk1SCtNL2ZIbUYvTVY1YlB0TEcvbmNOUHFGMzFOT0hLZz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtUaGlTZ2JMalhyalg0VVFuVEo4UktmZWllRkNqUmkzcisveGpPYytqYzFjOFNrWU92Z2IrQ3M0clB1dTZCVlBmZzVDdW41VFRicjVRRkxJZjJDS2pFPQpYLVJlY2VpdmVkOiBieSAxMC4zNi4yMDUuMTk4IHdpdGggU01UUCBpZCBsMTg5bXI5OTg0NzZpdGcuMTI1LjE1MDg0ODA0MzAyNjg7CiBUaHUsIDE5IE9jdCAyMDE3IDIzOjIwOjMwIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yLjE4My4xNDcgd2l0aCBIVFRQOyBUaHUsIDE5IE9jdCAyMDE3IDIzOjIwOjI5IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8MTU1ODIwNy5PWlMzSUJsZWhvQGdpZ2E+ClJlZmVyZW5jZXM6IDxDQUpSdkZkby0zM1pmeGlGc0p3amlHUUpNWVQ1bXUzMWZxRDFmX3UzRlVRVG9Kdj1UdWdAbWFpbC5nbWFpbC5jb20+CiA8Q0ErRzM1TzNtWUhYTHVNRDl3UDFaWG5nNjQtOGc1d3c9eGQ3RGs0RTcxWVpZZE5HQmRBQG1haWwuZ21haWwuY29tPgogPENBSm1iczhpVU9oLXc9YVlCWUNmOUJPX1NKX3d1UTRfcllQeU9YbVpGa3BpcFoxWjUyUUBtYWlsLmdtYWlsLmNvbT4gPDE1NTgyMDcuT1pTM0lCbGVob0BnaWdhPgpGcm9tOiBNYXhpbSBTb2xvZG92bmlrIDxzb2xvbWF4NjY2QGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAyMCBPY3QgMjAxNyAxMzoyMDoyOSArMDcwMApNZXNzYWdlLUlEOiA8Q0FKbWJzOGh0VTZjMjU3SDBnYj1taFIwcFNaT01KNWtNV1N1c0h1NExKRDVWNTdwcUdnQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogTWF2ZW4gRG9ja2VyIEltYWdlcwpUbzogTWF2ZW4gVXNlcnMgTGlzdCA8dXNlcnNAbWF2ZW4uYXBhY2hlLm9yZz4KQ2M6IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNGY4ZGNhMzI2NGQ1MDU1YmY0Nzg0NCIKCi0tMDAxYTExNGY4ZGNhMzI2NGQ1MDU1YmY0Nzg0NApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpJIHdvdWxkIHN0YXJ0IHdpdGggZmlsaW5nIElORlJBIHRpY2tldCA6KQoKT24gRnJpLCBPY3QgMjAsIDIwMTcgYXQgMTI6NDAgUE0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPQo+Cndyb3RlOgoKPiBhd2Vzb21lOiB0aGVyZSBpcyBzb21lIGNvbW1vbiBwcmFjdGljZSB3ZSBzaG91bGQgZ2V0IGludG8KPgo+IGRvIHlvdSBrbm93IGlmIHRoZXJlIHNvbWUgZG9jcyBzb21ld2hlcmU/Cj4gSSBzdXBwb3NlIHRoZXJlIGFyZSBzb21lIGNyZWRlbnRpYWxzIGFzc29jaWF0ZWQgdG8gcHVibGlzaGluZyB0byBEb2NrZXJodT0KYgo+Cj4gUmVnYXJkcywKPgo+IEhlcnY9QzM9QTkKPgo+IExlIHZlbmRyZWRpIDIwIG9jdG9icmUgMjAxNywgMTE6Mzk6MjIgQ0VTVCBNYXhpbSBTb2xvZG92bmlrIGEgPUMzPUE5Y3JpdCA9CjoKPiA+IEluIHRoaXMgY2FzZSBkb2NrZXJodWIgaXMgcHJlZmVyYWJsZSA6KQo+ID4KPiA+IE9uIEZyaSwgT2N0IDIwLCAyMDE3IGF0IDExOjA3IEFNLCBCaW5kdWwgQmhvd21payA8Cj4gYmluZHVsYmhvd21pa0BnbWFpbC5jb20+Cj4gPgo+ID4gd3JvdGU6Cj4gPiA+IE1heGltLAo+ID4gPgo+ID4gPiBPbiBUaHUsIE9jdCAxOSwgMjAxNyBhdCA3OjU0IFBNLCBNYXhpbSBTb2xvZG92bmlrIDwKPiBzb2xvbWF4NjY2QGdtYWlsLmNvbT4KPiA+ID4KPiA+ID4gd3JvdGU6Cj4gPiA+ID4gSGVsbG8sCj4gPiA+ID4KPiA+ID4gPiBoZXJlIGlzIHRoZSBwbGFjZSBmb3IgQXBhY2hlIGRvY2tlciBpbWFnZXMgbWFuYWdlZCBieSBpbmZyYSBhbmQKPiBBcGFjaGUKPiA+ID4gPiBwcm9qZWN0cyBodHRwczovL2JpbnRyYXkuY29tL2FwYWNoZS8gOikKPiA+ID4KPiA+ID4gRnJvbSB3aGF0IEkgaGF2ZSBzZWVuLCB3aGlsZSB0aGVyZSBhcmUgNCBwcm9qZWN0cyB3aXRoIGRvY2tlcgo+ID4gPiByZXBvc2l0b3JpZXMgb24gYmludHJheSwgdGhlcmUgc2VlbSB0byBiZSBhIGxvdCBtb3JlIGF0IGRvY2tlcmh1YiBbMV09Ci4KPiA+ID4gSSBkaWQgYSBxdWljayBzZWFyY2ggb24gSU5GUkEgSklSQSBhbmQgZm91bmQgdGhhdCBpbmZyYSBoYXMgc2V0IGEgZmV3Cj4gPiA+IHByb2plY3RzIHVwIG9uIGRvY2tlcmh1YiByZWNlbnRseSBbMl0sIGZvciBleGFtcGxlIElORlJBLTE0NzU2IFszXSBmbz0Kcgo+ID4gPiBib29ra2VlcGVyLgo+ID4gPgo+ID4gPiBCaW5kdWwKPiA+ID4KPiA+ID4gWzFdIGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9hcGFjaGUvCj4gPiA+IFsyXSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9M0Rjb21wb25lbnQlMjAlCj4gPiA+IDNEJTIwRG9ja2VyJTIwQU5EJTIwcHJvamVjdCUyMCUzRCUyMElORlJBCj4gPiA+IFszXSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0lORlJBLTE0NzU2Cj4gPiA+Cj4gPiA+ID4gT24gRnJpLCBPY3QgMjAsIDIwMTcgYXQgMTI6MzAgQU0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8Cj4gaGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID4gPiA+Cj4gPiA+ID4gd3JvdGU6Cj4gPiA+ID4gPiBncmVhdCBpZGVhCj4gPiA+ID4gPgo+ID4gPiA+ID4gb2ssIHdlIG5lZWQgYSBnaXQgcmVwbyBhdCBBU0YKPiA+ID4gPiA+Cj4gPiA+ID4gPiB3aGF0IGVsc2U/Cj4gPiA+ID4gPiBJcyB0aGVyZSBzb21lIHNvcnQgb2YgcmVsZWFzZSBwcm9jZXNzPyBzb21lIHNvcnQgb2Ygc291cmNlIHRvCj4gcmVsZWFzZT8KPiA+ID4gPiA+Cj4gPiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+ID4KPiA+ID4gPiA+IEhlcnY9QzM9QTkKPiA+ID4gPiA+Cj4gPiA+ID4gPiBMZSBqZXVkaSAxOSBvY3RvYnJlIDIwMTcsIDEzOjQ3OjQ1IENFU1QgTWlrZSBEcm9iIGEgPUMzPUE5Y3JpdCA6Cj4gPiA+ID4gPiA+IFRoYW5rcyBmb3IgdGhlIHBvaW50ZXIsIENhcmxvcyEgSSBoYWQgc2VhcmNoZWQgdGhlIGFyY2hpdmVzLCBidT0KdAo+ID4gPgo+ID4gPiBtYXliZSBJCj4gPiA+Cj4gPiA+ID4gPiA+IGRpZG4ndCBnbyBiYWNrIGZhciBlbm91Z2guCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IEkgdGhpbmsgbW92aW5nIHRoZXNlIERvY2tlcmZpbGVzIGludG8gYW4gQVNGIHJlcG8gd291bGQgYmUgZ3JlYT0KdAo+IGZvcgo+ID4gPiA+ID4KPiA+ID4gPiA+IHRoZWlyCj4gPiA+ID4gPgo+ID4gPiA+ID4gPiBtYWludGFpbmFiaWxpdHkuCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFRoYW5rcywKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gTWlrZQo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBPbiAyMDE3LTEwLTE5IDAzOjUwLCBDYXJsb3MgU2FuY2hleiA8Yy4uLkBhcGFjaGUub3JnPiB3cm90ZToKPiA+ID4gPiA+ID4gPiBBcm5hdWQgaXMgY29ycmVjdCwgSSBzZW50IGFuIGVtYWlsIHRvIHVzZXJzQCBiYWNrIG9uIEZyaSwgTm92Cj4gNywKPiA+ID4gPiA+Cj4gPiA+ID4gPiAyMDE0LD4KPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gMDA6MjMgd2hlbiBJIGNyZWF0ZWQgdGhlIGltYWdlPgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBPbiBUaHUsIE9jdCAxOSwgMjAxNywgMTE6MTIgQXJuYXVkIEg9RUY9QkY9QkRyaXRpZXIgPGFoLi4uQGdtPQphaWwuY29tPgo+ID4gPgo+ID4gPiB3cm90ZTo+Cj4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBUaGVzZSBpbWFnZXMgYXJlIGtpbmRseSBtYW5hZ2VkIGJ5IGEgUE1DIG1lbWJlciBvZiBvdXIKPiBwcm9qZWN0Cj4gPiA+ID4gPgo+ID4gPiA+ID4gKENhcmxvcykKPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IGJ1dD4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IHllcyB0aGV5IGFyZW4ndCBtYW5hZ2VkIGRpcmVjdGx5IGJ5IHRoZSBwcm9qZWN0Pgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IFdlIGNhbiBlYXNpbHkgc2VlIHdpdGggaGltIHRvIGltcHJvdmUgdGhpcyBJTU8uPgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IFdoZW4gaGUgc3RhcnRlZCB0aGF0IChzZXZlcmFsIHllYXJzIGFnbykgRG9ja2VyIHdhc24ndCB3aGF0Cj4gaXQKPiA+ID4gPiA+ID4gPiA+IGlzCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IG5vd2FkYXlzLj4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IFdpdGggZG9ja2VyIGJlaW5nIG1haW5zdHJlYW0gSSBhZ3JlZSB0aGF0IHdlIGNhbiByZWNvbnNpZGVyCj4gPiA+Cj4gPiA+IHRoaXMuPgo+ID4gPgo+ID4gPiA+ID4gPiA+ID4gVGhlIGRvY2tlciBpbWFnZSBidWlsZC9kaXN0cmlidXRpb24gY291bGQgcGVyaGFwcyBiZSBwYXJ0IG89CmYKPiBvdXIKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gcmVsZWFzZT4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IHByb2Nlc3MuPgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IFdEWVQgQ2FybG9zID8+Cj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gT24gVGh1LCBPY3QgMTksIDIwMTcgYXQgNDoxNiBBTSwgTWlrZSBEcm9iIDxtZC4uLkBhcGFjaGUub3I9CmcKPiA+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gd3JvdGU6Pgo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gSSBndWVzcyB0aGUgbmF0dXJhbCBmb2xsb3ctb24gcXVlc3Rpb24gaXMgd2hldGhlciB0aGUgTWF2PQplbgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBjb21tdW5pdHk+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IHdvdWxkIGNvbnNpZGVyIHB1Ymxpc2hpbmcgYW4gb2ZmaWNpYWwgc2V0IG9mIGltYWdlcz8gT3IKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gYWx0ZXJuYXRpdmVseT4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gd2hldGhlciB0aGV5IHNob3VsZCBzZW5kIGEgdGFrZWRvd24gbm90aWNlIHRvIHByb3RlY3QgdGhlPQppcgo+ID4gPgo+ID4gPiBicmFuZAo+ID4gPgo+ID4gPiA+ID4gPiBhbmQ+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IHRyYWRlbWFya3MuLi4+Cj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IE9uIDIwMTctMTAtMTggMTg6MzYsICJNYW5mcmVkIE1vc2VyIiA8Cj4gbWEuLi5Ac2ltcGxpZ2lsaXR5LmNvbT4KPiA+ID4gPiA+Cj4gPiA+ID4gPiB3cm90ZTo+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+IE5vLiBBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBnaXRodWIgVVJMIHRoaXMgaXMgTk9UIGFuCj4gYXBhY2hlCj4gPiA+ID4gPgo+ID4gPiA+ID4gVVJMLj4KPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2Nhcmxvc3NnL2RvY2tlci1tYXZlbj4KPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gTWlrZSBEcm9iIHdyb3RlIG9uIDIwMTctMTAtMTggMTY6MzI6Pgo+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBIZWxsbyw+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gQXJlIHRoZSBpbWFnZXMgYXQgaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL18vbWF2ZW4vCj4gPiA+ID4gPgo+ID4gPiA+ID4gY29uc2lkZXJlZCB0bwo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gYmU+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IG9mZmljaWFsPgo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gbWF2ZW4gZG9ja2VyIGltYWdlcyBhbmQgYmxlc3NlZC9wdWJsaXNoZWQgYnkgdGhlIFBNQz89Cj4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGFua3MsPgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gTWlrZT4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+Cj4gPiA+IC0tLS0tLS0tLT4KPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IHVzZXJzLXVuc3Vic2NyaWJlQG1hdmVuLgo+IGFwYWNoZS5vcmcKPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6Cj4gPiA+IHVzZXJzLWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KPiA+ID4KPiA+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+Cj4gPiA+IC0tLS0tLS0tLT4KPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi4KPiBhcGFjaGUub3JnPgo+ID4gPiA+ID4gPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6Cj4gdXNlcnMtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPgo+ID4gPiAtLS0tLS0tLS0+Cj4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IHVzZXJzLXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcj0KZwo+ID4KPiA+ID4gPiA+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDoKPiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Cj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gLS0+Cj4gPiA+ID4gPiA+ID4gPiAtLS0tLT4KPiA+ID4gPiA+ID4gPiA+IEFybmF1ZCBIPUVGPUJGPUJEcml0aWVyPgo+ID4gPiA+ID4gPiA+ID4gaHR0cDovL2FoZXJpdGllci5uZXQ+Cj4gPiA+ID4gPiA+ID4gPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbT4KPiA+ID4gPiA+ID4gPiA+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXI+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tCj4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPgo+ID4gPiA+IC0tCj4gPiA+ID4gV0JSCj4gPiA+ID4gTWF4aW0gYWthIHNvbG9tYXgKPiA+ID4KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogdXNlcnMtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKCi0tPTIwCldCUgpNYXhpbSBha2Egc29sb21heAoKLS0wMDFhMTE0ZjhkY2EzMjY0ZDUwNTViZjQ3ODQ0LS0KCkZyb20gZGV2LXJldHVybi0xMjQyNjktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE9jdCAyMCAwNDozOTo0MSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyNjktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNjg2N0ZDOTRBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMjAgT2N0IDIwMTcgMDQ6Mzk6NDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4OTY2IGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIE9jdCAyMDE3IDA0OjM5OjM4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3OTMyIGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIE9jdCAyMDE3IDA0OjM5OjM4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzQzMyBpbnZva2VkIGJ5IHVpZCA5OSk7IDIwIE9jdCAyMDE3IDA0OjM5OjMwIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAyMCBPY3QgMjAxNyAwNDozOTozMCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDQ3MTJFMTgwNzc4OwoJRnJpLCAyMCBPY3QgMjAxNyAwNDozOToyOSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjE1ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjE1IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJRlJFRU1BSUxfRU5WRlJPTV9FTkRfRElHSVQ9MC4yNSwgSFRNTF9NRVNTQUdFPTIsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMSwgVVJJQkxfQkxPQ0tFRD0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgVC1wYVZuRnA5UjhSOyBGcmksIDIwIE9jdCAyMDE3IDA0OjM5OjI1ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtaW8wLWYxNzEuZ29vZ2xlLmNvbSAobWFpbC1pbzAtZjE3MS5nb29nbGUuY29tIFsyMDkuODUuMjIzLjE3MV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA1MkYzQjVGQkIwOwoJRnJpLCAyMCBPY3QgMjAxNyAwNDozOToyNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1pbzAtZjE3MS5nb29nbGUuY29tIHdpdGggU01UUCBpZCAxMzRzbzEyMDg2NTczaW9vLjA7CiAgICAgICAgVGh1LCAxOSBPY3QgMjAxNyAyMTozOToyNCAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bwogICAgICAgICA6Y2M7CiAgICAgICAgYmg9RmFnQ1d2elNmaGV5dkJFQmt0QzR4T1JEdG16VUNaanlIQkhZWU9LUUUvWT07CiAgICAgICAgYj1LM2VuQ2diSEs5cTd6VXBHVmxCRXNYb0V0eG0wRGxCTzlDOGpKd1pMQjUwdVZ3Qng5MkUzRlZiMFlWV0NxQTIyN2gKICAgICAgICAgOE03MEo2dkJTNFR2VE5SbnlYdlFkbEUxTVNjQWowTThoRSszU0w3Tk9NdTBGeGM3aDlEWFowUkVZWENYU1d1V0wvNDcKICAgICAgICAgYko2MTJleVd1RCtRS1ZFZkxrRU5lK1VRUTJPVVRuelRtbDZXckhPU3RPa25iMnBqZ1F3eEh6bVZUSGg3ZnBBdTV3L1gKICAgICAgICAgUER3ZVdRMSt2Qzl1anlRby96NUlyUitqR2FSMjlsUmU1ZUR3NnJ6eTRib3p5OWczWG5NemtZYmkyZDJsVGgweS9Ea3QKICAgICAgICAgN0svWG5NZzkrMlNGRDdKTHhvcnA0eWNrdWZzWE1IN2xQbmF0MmluQ0x3ajlPclJHKzhoK2F4N1FrNjR4V1U0UEJnYTkKICAgICAgICAgZHpmdz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG86Y2M7CiAgICAgICAgYmg9RmFnQ1d2elNmaGV5dkJFQmt0QzR4T1JEdG16VUNaanlIQkhZWU9LUUUvWT07CiAgICAgICAgYj1mQUdaTjRnN3JOV3dhRy80RXVYcGlMV2lBenNQNkFKQTlSZURGUmNGOU5VU1FJWkNreUVpWjZNV1VpOVI4ZmhvTVoKICAgICAgICAgSzU0U0M2MzIzb29yWkNKaUE3UzZRVHhjSk5sODAxL0lhOVJ1cDVIb2NuZ2gvOGpUMDZoaDhWWWlXSkpMK3NtZ1liZWoKICAgICAgICAgVlJseHYxaTVoT25Ud3p1OFVCaWtHWHIvQ1lpOGtTZnU2WGpwaXFUK3FDdjJVWFZValhleDFWdVRxbHdlWWl5M3Y2K0UKICAgICAgICAgTHNCbEhvNXdFZGtDZmE3WDZFZFBEa0RkbUxYS3grU2VvSVk0ZG9WNkxHeE9JdGdlT29SWEkrb01MellJbHJtT28rT0oKICAgICAgICAgdHNicVVQSGROOGF4OHMveWFkM2dvaFU3YlE5K0VhS2FQMTVhcjE4UEx4eEVORUZrdGNaZzhjVEgyUWRsQXQrcDQvZXkKICAgICAgICAgckRIQT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhV0w0eUVSYytRZG1VckFvRWtscUc2N003K2ptbGx1T1NSdDBwWmxXVFB3OGY4MHptbXUKCVRrQ0VnMExOb2JieHREcFpWZzRDWDE5K2UyUzVHS2FkLzIvd2VEeFJ6dWl1ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtRYzNwL0dvZ2RORUlzL3YrUmZ2UXpUOHFuV0ZpOHZPc0plK21mMHA2b3dtaGtJY2dPd0xQN3QwV08vd1hXZ3pSN1NYWEh3eVFFdUoveWhZNkFLRVc4PQpYLVJlY2VpdmVkOiBieSAxMC4xMDcuMTQ0LjY5IHdpdGggU01UUCBpZCBzNjZtcjQ3MjIyMjVpb2QuMjQ5LjE1MDg0NzQzNjI5MzM7CiBUaHUsIDE5IE9jdCAyMDE3IDIxOjM5OjIyIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yLjE4My4xNDcgd2l0aCBIVFRQOyBUaHUsIDE5IE9jdCAyMDE3IDIxOjM5OjIyIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0ErRzM1TzNtWUhYTHVNRDl3UDFaWG5nNjQtOGc1d3c9eGQ3RGs0RTcxWVpZZE5HQmRBQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0FKUnZGZG8tMzNaZnhpRnNKd2ppR1FKTVlUNW11MzFmcUQxZl91M0ZVUVRvSnY9VHVnQG1haWwuZ21haWwuY29tPgogPDg2MjMwMTMuNHEyQlRyVlkzMkBnaWdhPiA8Q0FKbWJzOGp4NmZCRkRoREp0ZG1MMU5NRCtvK25QaVduOUhnclIrYVNSYWRkWC1QNHd3QG1haWwuZ21haWwuY29tPgogPENBK0czNU8zbVlIWEx1TUQ5d1AxWlhuZzY0LThnNXd3PXhkN0RrNEU3MVlaWWROR0JkQUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogTWF4aW0gU29sb2Rvdm5payA8c29sb21heDY2NkBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMjAgT2N0IDIwMTcgMTE6Mzk6MjIgKzA3MDAKTWVzc2FnZS1JRDogPENBSm1iczhpVU9oLXc9YVlCWUNmOUJPX1NKX3d1UTRfcllQeU9YbVpGa3BpcFoxWjUyUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IE1hdmVuIERvY2tlciBJbWFnZXMKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNjOiBNYXZlbiBVc2VycyBMaXN0IDx1c2Vyc0BtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzA1NTNlODhlMzdhNDA1NWJmMzBlYTYiCgotLTk0ZWIyYzA1NTNlODhlMzdhNDA1NWJmMzBlYTYKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSW4gdGhpcyBjYXNlIGRvY2tlcmh1YiBpcyBwcmVmZXJhYmxlIDopCgpPbiBGcmksIE9jdCAyMCwgMjAxNyBhdCAxMTowNyBBTSwgQmluZHVsIEJob3dtaWsgPGJpbmR1bGJob3dtaWtAZ21haWwuY29tPgp3cm90ZToKCj4gTWF4aW0sCj4KPiBPbiBUaHUsIE9jdCAxOSwgMjAxNyBhdCA3OjU0IFBNLCBNYXhpbSBTb2xvZG92bmlrIDxzb2xvbWF4NjY2QGdtYWlsLmNvbT4KPiB3cm90ZToKPiA+Cj4gPiBIZWxsbywKPiA+Cj4gPiBoZXJlIGlzIHRoZSBwbGFjZSBmb3IgQXBhY2hlIGRvY2tlciBpbWFnZXMgbWFuYWdlZCBieSBpbmZyYSBhbmQgQXBhY2hlCj4gPiBwcm9qZWN0cyBodHRwczovL2JpbnRyYXkuY29tL2FwYWNoZS8gOikKPgo+IEZyb20gd2hhdCBJIGhhdmUgc2Vlbiwgd2hpbGUgdGhlcmUgYXJlIDQgcHJvamVjdHMgd2l0aCBkb2NrZXIKPiByZXBvc2l0b3JpZXMgb24gYmludHJheSwgdGhlcmUgc2VlbSB0byBiZSBhIGxvdCBtb3JlIGF0IGRvY2tlcmh1YiBbMV0uCj4gSSBkaWQgYSBxdWljayBzZWFyY2ggb24gSU5GUkEgSklSQSBhbmQgZm91bmQgdGhhdCBpbmZyYSBoYXMgc2V0IGEgZmV3Cj4gcHJvamVjdHMgdXAgb24gZG9ja2VyaHViIHJlY2VudGx5IFsyXSwgZm9yIGV4YW1wbGUgSU5GUkEtMTQ3NTYgWzNdIGZvcgo+IGJvb2trZWVwZXIuCj4KPiBCaW5kdWwKPgo+IFsxXSBodHRwczovL2h1Yi5kb2NrZXIuY29tL3IvYXBhY2hlLwo+IFsyXSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9M0Rjb21wb25lbnQlMjAlCj4gM0QlMjBEb2NrZXIlMjBBTkQlMjBwcm9qZWN0JTIwJTNEJTIwSU5GUkEKPiBbM10gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9JTkZSQS0xNDc1Ngo+Cj4gPgo+ID4gT24gRnJpLCBPY3QgMjAsIDIwMTcgYXQgMTI6MzAgQU0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmU9CmUuZnI+Cj4gPiB3cm90ZToKPiA+Cj4gPiA+IGdyZWF0IGlkZWEKPiA+ID4KPiA+ID4gb2ssIHdlIG5lZWQgYSBnaXQgcmVwbyBhdCBBU0YKPiA+ID4KPiA+ID4gd2hhdCBlbHNlPwo+ID4gPiBJcyB0aGVyZSBzb21lIHNvcnQgb2YgcmVsZWFzZSBwcm9jZXNzPyBzb21lIHNvcnQgb2Ygc291cmNlIHRvIHJlbGVhc2U9Cj8KPiA+ID4KPiA+ID4gUmVnYXJkcywKPiA+ID4KPiA+ID4gSGVydj1DMz1BOQo+ID4gPgo+ID4gPiBMZSBqZXVkaSAxOSBvY3RvYnJlIDIwMTcsIDEzOjQ3OjQ1IENFU1QgTWlrZSBEcm9iIGEgPUMzPUE5Y3JpdCA6Cj4gPiA+ID4gVGhhbmtzIGZvciB0aGUgcG9pbnRlciwgQ2FybG9zISBJIGhhZCBzZWFyY2hlZCB0aGUgYXJjaGl2ZXMsIGJ1dAo+IG1heWJlIEkKPiA+ID4gPiBkaWRuJ3QgZ28gYmFjayBmYXIgZW5vdWdoLgo+ID4gPiA+Cj4gPiA+ID4gSSB0aGluayBtb3ZpbmcgdGhlc2UgRG9ja2VyZmlsZXMgaW50byBhbiBBU0YgcmVwbyB3b3VsZCBiZSBncmVhdCBmbz0Kcgo+ID4gPiB0aGVpcgo+ID4gPiA+IG1haW50YWluYWJpbGl0eS4KPiA+ID4gPgo+ID4gPiA+IFRoYW5rcywKPiA+ID4gPgo+ID4gPiA+IE1pa2UKPiA+ID4gPgo+ID4gPiA+IE9uIDIwMTctMTAtMTkgMDM6NTAsIENhcmxvcyBTYW5jaGV6IDxjLi4uQGFwYWNoZS5vcmc+IHdyb3RlOgo+ID4gPiA+ID4gQXJuYXVkIGlzIGNvcnJlY3QsIEkgc2VudCBhbiBlbWFpbCB0byB1c2Vyc0AgYmFjayBvbiBGcmksIE5vdiA3LAo+ID4gPiAyMDE0LD4KPiA+ID4gPiA+IDAwOjIzIHdoZW4gSSBjcmVhdGVkIHRoZSBpbWFnZT4KPiA+ID4gPiA+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gT24gVGh1LCBPY3QgMTksIDIwMTcsIDExOjEyIEFybmF1ZCBIPUVGPUJGPUJEcml0aWVyIDxhaC4uLkBnbWFpbC49CmNvbT4KPiB3cm90ZTo+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gPiBUaGVzZSBpbWFnZXMgYXJlIGtpbmRseSBtYW5hZ2VkIGJ5IGEgUE1DIG1lbWJlciBvZiBvdXIgcHJvamVjdAo+ID4gPiAoQ2FybG9zKQo+ID4gPiA+Cj4gPiA+ID4gYnV0Pgo+ID4gPiA+Cj4gPiA+ID4gPiA+IHllcyB0aGV5IGFyZW4ndCBtYW5hZ2VkIGRpcmVjdGx5IGJ5IHRoZSBwcm9qZWN0Pgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBXZSBjYW4gZWFzaWx5IHNlZSB3aXRoIGhpbSB0byBpbXByb3ZlIHRoaXMgSU1PLj4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gV2hlbiBoZSBzdGFydGVkIHRoYXQgKHNldmVyYWwgeWVhcnMgYWdvKSBEb2NrZXIgd2Fzbid0IHdoYXQgaXQgPQppcwo+ID4gPiA+Cj4gPiA+ID4gbm93YWRheXMuPgo+ID4gPiA+Cj4gPiA+ID4gPiA+IFdpdGggZG9ja2VyIGJlaW5nIG1haW5zdHJlYW0gSSBhZ3JlZSB0aGF0IHdlIGNhbiByZWNvbnNpZGVyCj4gdGhpcy4+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFRoZSBkb2NrZXIgaW1hZ2UgYnVpbGQvZGlzdHJpYnV0aW9uIGNvdWxkIHBlcmhhcHMgYmUgcGFydCBvZiBvdT0Kcgo+ID4gPiA+Cj4gPiA+ID4gcmVsZWFzZT4KPiA+ID4gPgo+ID4gPiA+ID4gPiBwcm9jZXNzLj4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gV0RZVCBDYXJsb3MgPz4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gT24gVGh1LCBPY3QgMTksIDIwMTcgYXQgNDoxNiBBTSwgTWlrZSBEcm9iIDxtZC4uLkBhcGFjaGUub3JnPgo+ID4gPiB3cm90ZTo+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gSSBndWVzcyB0aGUgbmF0dXJhbCBmb2xsb3ctb24gcXVlc3Rpb24gaXMgd2hldGhlciB0aGUgTWF2ZW4KPiA+ID4gPgo+ID4gPiA+IGNvbW11bml0eT4KPiA+ID4gPgo+ID4gPiA+ID4gPiA+IHdvdWxkIGNvbnNpZGVyIHB1Ymxpc2hpbmcgYW4gb2ZmaWNpYWwgc2V0IG9mIGltYWdlcz8gT3IKPiA+ID4gPgo+ID4gPiA+IGFsdGVybmF0aXZlbHk+Cj4gPiA+ID4KPiA+ID4gPiA+ID4gPiB3aGV0aGVyIHRoZXkgc2hvdWxkIHNlbmQgYSB0YWtlZG93biBub3RpY2UgdG8gcHJvdGVjdCB0aGVpcgo+IGJyYW5kCj4gPiA+ID4KPiA+ID4gPiBhbmQ+Cj4gPiA+ID4KPiA+ID4gPiA+ID4gPiB0cmFkZW1hcmtzLi4uPgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gT24gMjAxNy0xMC0xOCAxODozNiwgIk1hbmZyZWQgTW9zZXIiIDxtYS4uLkBzaW1wbGlnaWxpdHkuY29tPgo+ID4gPiB3cm90ZTo+Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IE5vLiBBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBnaXRodWIgVVJMIHRoaXMgaXMgTk9UIGFuIGFwYWNoPQplCj4gPiA+IFVSTC4+Cj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2Nhcmxvc3NnL2RvY2tlci1tYXZlbj4KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gTWlrZSBEcm9iIHdyb3RlIG9uIDIwMTctMTAtMTggMTY6MzI6Pgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gSGVsbG8sPgo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiBBcmUgdGhlIGltYWdlcyBhdCBodHRwczovL2h1Yi5kb2NrZXIuY29tL3IvXy9tYXZlbi8KPiA+ID4gY29uc2lkZXJlZCB0bwo+ID4gPiA+Cj4gPiA+ID4gYmU+Cj4gPiA+ID4KPiA+ID4gPiA+ID4gPiBvZmZpY2lhbD4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiBtYXZlbiBkb2NrZXIgaW1hZ2VzIGFuZCBibGVzc2VkL3B1Ymxpc2hlZCBieSB0aGUgUE1DPz4KPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gVGhhbmtzLD4KPiA+ID4gPiA+ID4gPiA+ID4gTWlrZT4KPiA+ID4gPgo+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0tLS0tLS0tLT4KPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3I9CmcKPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6Cj4gdXNlcnMtaGVscEBtYXZlbi5hcGFjaGUub3JnPgo+ID4gPiA+Cj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tPgo+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgo+ID4gPiA+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogdXNlcnMtaGVscEBtYXZlbi5hcGFjaGUub3I9CmcKPiA+Cj4gPiA+ID4KPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtLS0tLS0tLS0+Cj4gPiA+ID4KPiA+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgo+ID4gPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IHVzZXJzLWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gLS0+Cj4gPiA+ID4gPiA+IC0tLS0tPgo+ID4gPiA+ID4gPiBBcm5hdWQgSD1FRj1CRj1CRHJpdGllcj4KPiA+ID4gPiA+ID4gaHR0cDovL2FoZXJpdGllci5uZXQ+Cj4gPiA+ID4gPiA+IE1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tPgo+ID4gPiA+ID4gPiBUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyPgo+ID4gPgo+ID4gPgo+ID4gPgo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogdXNlcnMtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4KPiA+ID4KPiA+Cj4gPgo+ID4gLS0KPiA+IFdCUgo+ID4gTWF4aW0gYWthIHNvbG9tYXgKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCgotLT0yMApXQlIKTWF4aW0gYWthIHNvbG9tYXgKCi0tOTRlYjJjMDU1M2U4OGUzN2E0MDU1YmYzMGVhNi0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MjY3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBPY3QgMjAgMDI6NTQ6NDYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjY3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDdBMjZGQzY1NQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDIwIE9jdCAyMDE3IDAyOjU0OjQ2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjM5NTUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgT2N0IDIwMTcgMDI6NTQ6MzkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYzMjg3IGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIE9jdCAyMDE3IDAyOjU0OjM5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjMyNjMgaW52b2tlZCBieSB1aWQgOTkpOyAyMCBPY3QgMjAxNyAwMjo1NDozOSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMjAgT2N0IDIwMTcgMDI6NTQ6MzggKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAzOEVFOTFBMEU4RjsKCUZyaSwgMjAgT2N0IDIwMTcgMDI6NTQ6MzggKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjkzClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MS45MyB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUZSRUVNQUlMX0VOVkZST01fRU5EX0RJR0lUPTAuMjUsIEhUTUxfTUVTU0FHRT0yLAoJUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxLAoJVVJJQkxfQkxPQ0tFRD0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIElhSWJUVWFSekhhUjsgRnJpLCAyMCBPY3QgMjAxNyAwMjo1NDozNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLWl0MC1mNTAuZ29vZ2xlLmNvbSAobWFpbC1pdDAtZjUwLmdvb2dsZS5jb20gWzIwOS44NS4yMTQuNTBdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRjM1OTY1RkJCMDsKCUZyaSwgMjAgT2N0IDIwMTcgMDI6NTQ6MzQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtaXQwLWY1MC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBmMTg3c28xMjU2ODc3Nml0Yi4xOwogICAgICAgIFRodSwgMTkgT2N0IDIwMTcgMTk6NTQ6MzQgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG8KICAgICAgICAgOmNjOwogICAgICAgIGJoPU1UaW9QNXNKRk9aL252VWI4MWRjL0czb0tNaDNrUlJHa1djKzgwbzNubDQ9OwogICAgICAgIGI9TytWSFNEZGFKcnRibzlPcVFaRFFQNkpya0dkNVc4clMrUERKMkw0ZSs5UmF2YjRHMHRCdzU3bnhBcXdVR0Z4bjNkCiAgICAgICAgIGFaYk4veVM3T0dpaUxPb0ZkZnNtVnVxd2pLYXo2OGRPWmtkQ2ZNNjJoY2NoMi9yd2JpYWF6Z3ZkMXhaS0VnRStqbWh3CiAgICAgICAgIFd0dnE4RnFmVzBqSy9sT3B3d2p5MXR4STA1MkJKL1Y4dzB1U3NCcEx6OFVaM3A0ak5qQ092TVptU1RMVFpndWJOemIxCiAgICAgICAgIFNjR0ZPN2hrWHFpVnEyYmEwbVRLSVhsWExjd1hDVjBaVGdLOHVXLzYxZzJOVm1SZkM0ZE9xaVk4dktOY3orTngweThYCiAgICAgICAgIExML0IvMS9SckN5bHBJZlRXWmVjcVFTOFZxeHhicHR2TDJuQ1dNTkRxWUJlL2NYMXE5c1ZZMDUyWXNMT2lobjZZbC9aCiAgICAgICAgIHBSY2c9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOmNjOwogICAgICAgIGJoPU1UaW9QNXNKRk9aL252VWI4MWRjL0czb0tNaDNrUlJHa1djKzgwbzNubDQ9OwogICAgICAgIGI9bldmelJ5MUs4dzlpNkxwMGlhYWgyLzJWcUNPL3BTZkgvM2tzZ243SWI5M0NBODhDT085M2xjamF3SHI5a0s3cGppCiAgICAgICAgIERNTmVQMDNaM1pNRlBRRmlpOWRyQlVkLzhCVHMvRzNZNWNpdzdtOHl1TXIwTmZ4U0R4VmgyMHVuS3BaYVVEUjd3cHErCiAgICAgICAgIG00YWZreE5scWp3clVYVGNjL1lZa0ZCWkJpR0hwSXpna2VxVWpVZVJxTVBmNWZVVDBWUzdTMHM5NkJ4Nlo4c3JJRUxVCiAgICAgICAgIDRzR2tBQ0FLQy9KSUI1Rm9YcEVHaUIyN0I4TU1lSktOU20xMEFnR2lJcFdUbWVNaklJbE45RXA2MEM4M1pVYVpkbEJ6CiAgICAgICAgIEN6WDExWE5BbGtEZ1N0bzU4Y1JQcWkyOTI2Q2RKMVJwdWJZaFlXYkNiMi9xRHFoT0ZGQWRDaUxoVk9nRnFrTnhLeTVyCiAgICAgICAgIEJIVmc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVhJejZoZ1U4NkhjVksweHMvcURwRFRHaTUzcmxZWUhPZUIrbG5WMFRLSm1ZamhteUZhCgkyYi85R0I5d1R5cmo4dzVSd05sOHVBMzdBSGZVQVNnWHphV3ZEV0ZXVVhNTQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArUWlhR2hEaFpoNlZjOGJaRWE1NitmRHVDUSt2ZDZibHNOdHRBUVhaVG5lcGxKVCt2SUdDcjRwbUxzQmRHT2VoR05uM1lxNlc0eXZHc3IzVm01S1lvaz0KWC1SZWNlaXZlZDogYnkgMTAuMzYuMjA1LjE5OCB3aXRoIFNNVFAgaWQgbDE4OW1yNTUyNDI1aXRnLjEyNS4xNTA4NDY4MDY3ODg0OwogVGh1LCAxOSBPY3QgMjAxNyAxOTo1NDoyNyAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMi4xODMuMTQ3IHdpdGggSFRUUDsgVGh1LCAxOSBPY3QgMjAxNyAxOTo1NDoyNyAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPDg2MjMwMTMuNHEyQlRyVlkzMkBnaWdhPgpSZWZlcmVuY2VzOiA8Q0FKUnZGZG8tMzNaZnhpRnNKd2ppR1FKTVlUNW11MzFmcUQxZl91M0ZVUVRvSnY9VHVnQG1haWwuZ21haWwuY29tPgogPDg2MjMwMTMuNHEyQlRyVlkzMkBnaWdhPgpGcm9tOiBNYXhpbSBTb2xvZG92bmlrIDxzb2xvbWF4NjY2QGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAyMCBPY3QgMjAxNyAwOTo1NDoyNyArMDcwMApNZXNzYWdlLUlEOiA8Q0FKbWJzOGp4NmZCRkRoREp0ZG1MMU5NRCtvK25QaVduOUhnclIrYVNSYWRkWC1QNHd3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogTWF2ZW4gRG9ja2VyIEltYWdlcwpUbzogTWF2ZW4gVXNlcnMgTGlzdCA8dXNlcnNAbWF2ZW4uYXBhY2hlLm9yZz4KQ2M6IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNGY4ZGNhNTc2NmJmMDU1YmYxOTczMCIKCi0tMDAxYTExNGY4ZGNhNTc2NmJmMDU1YmYxOTczMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpIZWxsbywKCmhlcmUgaXMgdGhlIHBsYWNlIGZvciBBcGFjaGUgZG9ja2VyIGltYWdlcyBtYW5hZ2VkIGJ5IGluZnJhIGFuZCBBcGFjaGUKcHJvamVjdHMgaHR0cHM6Ly9iaW50cmF5LmNvbS9hcGFjaGUvIDopCgpPbiBGcmksIE9jdCAyMCwgMjAxNyBhdCAxMjozMCBBTSwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI9Cj4Kd3JvdGU6Cgo+IGdyZWF0IGlkZWEKPgo+IG9rLCB3ZSBuZWVkIGEgZ2l0IHJlcG8gYXQgQVNGCj4KPiB3aGF0IGVsc2U/Cj4gSXMgdGhlcmUgc29tZSBzb3J0IG9mIHJlbGVhc2UgcHJvY2Vzcz8gc29tZSBzb3J0IG9mIHNvdXJjZSB0byByZWxlYXNlPwo+Cj4gUmVnYXJkcywKPgo+IEhlcnY9QzM9QTkKPgo+IExlIGpldWRpIDE5IG9jdG9icmUgMjAxNywgMTM6NDc6NDUgQ0VTVCBNaWtlIERyb2IgYSA9QzM9QTljcml0IDoKPiA+IFRoYW5rcyBmb3IgdGhlIHBvaW50ZXIsIENhcmxvcyEgSSBoYWQgc2VhcmNoZWQgdGhlIGFyY2hpdmVzLCBidXQgbWF5YmUgPQpJCj4gPiBkaWRuJ3QgZ28gYmFjayBmYXIgZW5vdWdoLgo+ID4KPiA+IEkgdGhpbmsgbW92aW5nIHRoZXNlIERvY2tlcmZpbGVzIGludG8gYW4gQVNGIHJlcG8gd291bGQgYmUgZ3JlYXQgZm9yCj4gdGhlaXIKPiA+IG1haW50YWluYWJpbGl0eS4KPiA+Cj4gPiBUaGFua3MsCj4gPgo+ID4gTWlrZQo+ID4KPiA+IE9uIDIwMTctMTAtMTkgMDM6NTAsIENhcmxvcyBTYW5jaGV6IDxjLi4uQGFwYWNoZS5vcmc+IHdyb3RlOgo+ID4gPiBBcm5hdWQgaXMgY29ycmVjdCwgSSBzZW50IGFuIGVtYWlsIHRvIHVzZXJzQCBiYWNrIG9uIEZyaSwgTm92IDcsCj4gMjAxNCw+Cj4gPiA+IDAwOjIzIHdoZW4gSSBjcmVhdGVkIHRoZSBpbWFnZT4KPiA+ID4KPiA+ID4KPiA+ID4gT24gVGh1LCBPY3QgMTksIDIwMTcsIDExOjEyIEFybmF1ZCBIPUVGPUJGPUJEcml0aWVyIDxhaC4uLkBnbWFpbC5jb20+PQogd3JvdGU6Pgo+ID4gPgo+ID4gPiA+IFRoZXNlIGltYWdlcyBhcmUga2luZGx5IG1hbmFnZWQgYnkgYSBQTUMgbWVtYmVyIG9mIG91ciBwcm9qZWN0Cj4gKENhcmxvcykKPiA+Cj4gPiBidXQ+Cj4gPgo+ID4gPiA+IHllcyB0aGV5IGFyZW4ndCBtYW5hZ2VkIGRpcmVjdGx5IGJ5IHRoZSBwcm9qZWN0Pgo+ID4gPiA+Cj4gPiA+ID4gV2UgY2FuIGVhc2lseSBzZWUgd2l0aCBoaW0gdG8gaW1wcm92ZSB0aGlzIElNTy4+Cj4gPiA+ID4KPiA+ID4gPiBXaGVuIGhlIHN0YXJ0ZWQgdGhhdCAoc2V2ZXJhbCB5ZWFycyBhZ28pIERvY2tlciB3YXNuJ3Qgd2hhdCBpdCBpcwo+ID4KPiA+IG5vd2FkYXlzLj4KPiA+Cj4gPiA+ID4gV2l0aCBkb2NrZXIgYmVpbmcgbWFpbnN0cmVhbSBJIGFncmVlIHRoYXQgd2UgY2FuIHJlY29uc2lkZXIgdGhpcy4+Cj4gPiA+ID4KPiA+ID4gPiBUaGUgZG9ja2VyIGltYWdlIGJ1aWxkL2Rpc3RyaWJ1dGlvbiBjb3VsZCBwZXJoYXBzIGJlIHBhcnQgb2Ygb3VyCj4gPgo+ID4gcmVsZWFzZT4KPiA+Cj4gPiA+ID4gcHJvY2Vzcy4+Cj4gPiA+ID4KPiA+ID4gPiBXRFlUIENhcmxvcyA/Pgo+ID4gPiA+Cj4gPiA+ID4gT24gVGh1LCBPY3QgMTksIDIwMTcgYXQgNDoxNiBBTSwgTWlrZSBEcm9iIDxtZC4uLkBhcGFjaGUub3JnPgo+IHdyb3RlOj4KPiA+ID4gPgo+ID4gPiA+ID4gSSBndWVzcyB0aGUgbmF0dXJhbCBmb2xsb3ctb24gcXVlc3Rpb24gaXMgd2hldGhlciB0aGUgTWF2ZW4KPiA+Cj4gPiBjb21tdW5pdHk+Cj4gPgo+ID4gPiA+ID4gd291bGQgY29uc2lkZXIgcHVibGlzaGluZyBhbiBvZmZpY2lhbCBzZXQgb2YgaW1hZ2VzPyBPcgo+ID4KPiA+IGFsdGVybmF0aXZlbHk+Cj4gPgo+ID4gPiA+ID4gd2hldGhlciB0aGV5IHNob3VsZCBzZW5kIGEgdGFrZWRvd24gbm90aWNlIHRvIHByb3RlY3QgdGhlaXIgYnJhbmQKPiA+Cj4gPiBhbmQ+Cj4gPgo+ID4gPiA+ID4gdHJhZGVtYXJrcy4uLj4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBPbiAyMDE3LTEwLTE4IDE4OjM2LCAiTWFuZnJlZCBNb3NlciIgPG1hLi4uQHNpbXBsaWdpbGl0eS5jb20+Cj4gd3JvdGU6Pgo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gTm8uIEFzIHlvdSBjYW4gc2VlIGZyb20gdGhlIGdpdGh1YiBVUkwgdGhpcyBpcyBOT1QgYW4gYXBhY2hlCj4gVVJMLj4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2Nhcmxvc3NnL2RvY2tlci1tYXZlbj4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gTWlrZSBEcm9iIHdyb3RlIG9uIDIwMTctMTAtMTggMTY6MzI6Pgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IEhlbGxvLD4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IEFyZSB0aGUgaW1hZ2VzIGF0IGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9fL21hdmVuLwo+IGNvbnNpZGVyZWQgdG8KPiA+Cj4gPiBiZT4KPiA+Cj4gPiA+ID4gPiBvZmZpY2lhbD4KPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gbWF2ZW4gZG9ja2VyIGltYWdlcyBhbmQgYmxlc3NlZC9wdWJsaXNoZWQgYnkgdGhlIFBNQz8+Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBUaGFua3MsPgo+ID4gPiA+ID4gPiA+IE1pa2U+Cj4gPgo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPgo+ID4KPiA+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgo+ID4gPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IHVzZXJzLWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KPiA+Cj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0+Cj4gPgo+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgo+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Cj4gPgo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPgo+ID4KPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IHVzZXJzLXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Cj4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Cj4gPiA+ID4KPiA+ID4gPiAtLT4KPiA+ID4gPiAtLS0tLT4KPiA+ID4gPiBBcm5hdWQgSD1FRj1CRj1CRHJpdGllcj4KPiA+ID4gPiBodHRwOi8vYWhlcml0aWVyLm5ldD4KPiA+ID4gPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbT4KPiA+ID4gPiBUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyPgo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IHVzZXJzLXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+CgoKLS09MjAKV0JSCk1heGltIGFrYSBzb2xvbWF4CgotLTAwMWExMTRmOGRjYTU3NjZiZjA1NWJmMTk3MzAtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDIxMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgT2N0IDExIDA2OjEzOjIwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDIxMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBBNjEyQTEwOUM5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMTEgT2N0IDIwMTcgMDY6MTM6MjAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4NjY5OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBPY3QgMjAxNyAwNjoxMzoyMCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODYyNjkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgT2N0IDIwMTcgMDY6MTM6MjAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NjI1NyBpbnZva2VkIGJ5IHVpZCA5OSk7IDExIE9jdCAyMDE3IDA2OjEzOjE5IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAxMSBPY3QgMjAxNyAwNjoxMzoxOSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDE1REI4MTk1MUFGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMSBPY3QgMjAxNyAwNjoxMzoxOSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuOTgKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi45OCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsCglIRUFERVJfRlJPTV9ESUZGRVJFTlRfRE9NQUlOUz0wLjAwMSwgSFRNTF9NRVNTQUdFPTIsCglLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGR0ZHVsbVJqdjRPWCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgMTEgT2N0IDIwMTcgMDY6MTM6MTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13bTAtZjUzLmdvb2dsZS5jb20gKG1haWwtd20wLWY1My5nb29nbGUuY29tIFs3NC4xMjUuODIuNTNdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNkM1MEU1RjY1OQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTEgT2N0IDIwMTcgMDY6MTM6MTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd20wLWY1My5nb29nbGUuY29tIHdpdGggU01UUCBpZCBxMTI0c28yMjQ4Njg0d21iLjAKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxMCBPY3QgMjAxNyAyMzoxMzoxNSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnNlbmRlcjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkCiAgICAgICAgIDpzdWJqZWN0OnRvOwogICAgICAgIGJoPVJad0dlYjJadUtPcHQvRndDMVRZenBidjNYaGpWdSsxdUdPM3c0R1NDbTg9OwogICAgICAgIGI9Z08vNTY5N1drRS81L09NMEVBWWlQRXphakxiRlFGYTkzb2dXRzVodGpLZG1NaXVZVHF3ZlpVQ2hvelh0dlAzLy9zCiAgICAgICAgIGkrRE1hZFZvNFY3WlZyd2tUT1BJVlMvQ0ZrNklUd096aGhrMUZkajV0Z1JrbkN0SGoyb09Sd21vMnRIUjc4a1UwTU8zCiAgICAgICAgIEhmbTFyOE5OU2krd0ZyUGhwSGUzRFd4VzNDS2phTmYzTEpUMW54TUUwVENHMTZnTVF5Y2ZBMEhsRDRVQzBkYUt2RTRTCiAgICAgICAgIDJQblI4c0llSXpsWVpWWlVKZHdFQkZKU2d3dDhSdlJzS2QyblFEdEw1VndFc2VReGl4MGpBUnI1QkovNWV0eVBXZXNSCiAgICAgICAgIEdSbUZQSG9EZXI0MGRJK0dxY0FIWENFc05PcWRLak9ML0ZlUHJJSFdZaG9vRS9zK1o1dlFJbVZOdllKaU5iY1AzVXVNCiAgICAgICAgIElIdmc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpzZW5kZXI6aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tCiAgICAgICAgIDpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1SWndHZWIyWnVLT3B0L0Z3QzFUWXpwYnYzWGhqVnUrMXVHTzN3NEdTQ204PTsKICAgICAgICBiPUJNZnlJeUNtZGpwZ1RYWmZiT3JDSW9DbE5mc0J0dWRUL1g2V3crL0tSSlhkWXQ2NVE3MEUwQjlueVlOY2g4Y2lRZAogICAgICAgICBVS0hVbG5tYVZmUnc3NjlraU9ucTVER2p4MWYzL1RMWWtGTUtIaTl5RisxaUFwdnZPQm9XM0ZGY1V1aW5mV1FQNXVZQQogICAgICAgICBvNXFDOEZzODNPcVExVWlhTGVKbVBKQmF3R0xSZGxjK1ZQYWJHS0VCZWpjS0ppK2dkWlU0NTdWUmpNNnZiQWZkVzVHWAogICAgICAgICBGTEdGMWpGYlNucTdjdGJHTy9SQ0kzM1MwRThuQU5ObFRyZFUwSjJkM2ZCYmV1YXRRZ0RZZzNqNStEZFRhRmI2V0t1NAogICAgICAgICBGV3JUenI4K0RCSG5DK1d2ZDcrR3VpZk9DbGtjTlhlV2FCWVk5YzNzVzlKbUFncHdIcjJjOGdGY2d3VzBQelRRc2R6NwogICAgICAgICBpOHB3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FWN3VNSFg5Tytta1pQc00zYndKTW1jQlpSbW9ZZzF3aDByNnNrK2NuZXpKY1pvazVFcwoJbW40V0MwZ1BjZVR6ZmJ5OXhVUFN6QTBoZy85YnQwdDd2MFg0Q1l3ejBRPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUIvaEFGUCtNMWt0RWNqWDhFUHI1YUtMUzlXSldhSkJtSmNKTER3ejdVRTNrdEUwandRMkc1UWh0MHVzREtBNnZGK3RNNDJIVUhzRGFIZnhpVTU1Z0E9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjI4LjE0Ni4yMCB3aXRoIFNNVFAgaWQgdTIwbXIxMTUyMzk3OXdtZC40OS4xNTA3NzAyMzk0NzIxOwogVHVlLCAxMCBPY3QgMjAxNyAyMzoxMzoxNCAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApTZW5kZXI6IGFuZGVycy5nLmhhbW1hckBnbWFpbC5jb20KUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xNTAuNSB3aXRoIEhUVFA7IFR1ZSwgMTAgT2N0IDIwMTcgMjM6MTM6MTMgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDwyMTI2OTQxLkJoZVpNS2ZpanBAZ2lnYT4KUmVmZXJlbmNlczogPENBK25Qbk14eUcyTmVQWHBWcWF3ZTlqUj1pdEhFVDZVdWRuTjlDakhodj1vby1LQ3J4d0BtYWlsLmdtYWlsLmNvbT4KIDxvcC55N3dvNm5rNmtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4gPDM0MDY3ODgudDk3R1BmcWV5WkBnaWdhPgogPDIxMjY5NDEuQmhlWk1LZmlqcEBnaWdhPgpGcm9tOiBBbmRlcnMgSGFtbWFyIDxhbmRlcnNAaGFtbWFyLm5ldD4KRGF0ZTogV2VkLCAxMSBPY3QgMjAxNyAwODoxMzoxMyArMDIwMApYLUdvb2dsZS1TZW5kZXItQXV0aDogdUNMUXo5cm9WVTFWYzJHU2JKWFJKVmJKanBzCk1lc3NhZ2UtSUQ6IDxDQUtEVU4xc19jMnFaMlFxb0QyQ0wtWk9mTnFtcGY3S3pvdzdkdTVqeWtDdHFKZTRjNVFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDQyZmJjYWExYTU3MDU1YjNmNTEzZSIKCi0tMDAxYTExNDQyZmJjYWExYTU3MDU1YjNmNTEzZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpJJ20gZmVlbGluZyBzdHJvbmdlciBhbmQgc3Ryb25nZXIgYWJvdXQgbm90IGhhdmluZyB0aGlzIGNoYW5nZSBpbiBhIGJ1Z2ZpeApyZWxlYXNlLiBXaHkgbm90IGdvIGZvciB2My42LjAgaWYgd2UgZGVjaWRlIHRoYXQgdGhlIGNsYXNzIGxvYWRpbmcgY2hhbmdlCmlzIHRoZSB3YXkgdG8gZ28/IEFuZCBrZWVwIGJ1Z2ZpeCByZWxlYXNlcyBmb3IganVzdCBidWdmaXhlcy4KCi9BbmRlcnMKCk9uIFdlZCwgT2N0IDExLCAyMDE3IGF0IDM6NDMgQU0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgp3cm90ZToKCj4gcGVyaGFwcyB3ZSBzaG91bGQgY3JlYXRlIGEgV2lraSBwYWdlIGZvciBqYXZhLmxhbmcuQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbgo+IGFuZAo+IGxpc3QgdGhlIHBsdWdpbnMgd2l0aCBrbm93biBpc3N1ZXMgYW5kIG1pbmltdW0gZml4ZWQgdmVyc2lvbgo+Cj4gdG8gYmUgYWRkZWQgaW4KPiAgaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9FcnJvcnMrYW5kK1NvbHV0aW9ucwo+Cj4gUmVnYXJkcywKPgo+IEhlcnY9QzM9QTkKPgo+IExlIG1lcmNyZWRpIDExIG9jdG9icmUgMjAxNywgMDI6NTI6NTMgQ0VTVCBIZXJ2PUMzPUE5IEJPVVRFTVkgYSA9QzM9QTljcmk9CnQgOgo+ID4gSUlVQywgaXQncyBNREVQTE9ZLTIyMSBhYm91dCBuZXQuZmxleG1vam9zLm9zczpmbGV4bW9qb3MtbWF2ZW4tcGx1Z2luCj4gPgo+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NREVQTE9ZLTIyMQo+ID4KPiA+IFJlZ2FyZHMsCj4gPgo+ID4gSGVydj1DMz1BOQo+ID4KPiA+IExlIG1hcmRpIDEwIG9jdG9icmUgMjAxNywgMjA6NDg6MTMgQ0VTVCBSb2JlcnQgU2Nob2x0ZSBhID1DMz1BOWNyaXQgOgo+ID4gPiBGWUksIE1ERVBMT1ktMTIxIG1lbnRpb25zIGFub3RoZXIgcGx1Z2luIGJlaW5nIGhpdCBieSB0aGUgY2xhc3Nsb2FkZXIKPiA+ID4gY2hhbmdlcy4KPiA+ID4KPiA+ID4gUm9iZXJ0Cj4gPiA+Cj4gPiA+Cj4gPiA+IE9uIFR1ZSwgMDMgT2N0IDIwMTcgMjA6MjI6MTggKzAyMDAsIEFybmF1ZCBIPUMzPUE5cml0aWVyIDwKPiBhaGVyaXRpZXJAZ21haWwuY29tPgo+ID4gPgo+ID4gPiB3cm90ZToKPiA+ID4gPiBUaGFua3MgU3RlcGhlbgo+ID4gPiA+Cj4gPiA+ID4gT24gVHVlLCBPY3QgMywgMjAxNyBhdCA4OjE4IFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+ID4gPgo+ID4gPiA+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiA+PiBJIGFtIGhvcGluZyBJIGNhbiBmaW5kIHNvbWUgdGltZSB0byBkbyBhIGZpbmFsIHJvdW5kIG9mIGV4cGVyaW1lbnQ9CnMKPiBhbmQKPiA+ID4gPj4gdGhlbiBjbG9zZSB0aGUgdm90ZSB3aXRoIHN1Y2Nlc3MgYW5kIHB1Ymxpc2guCj4gPiA+ID4+Cj4gPiA+ID4+IE9uIFR1ZSAzIE9jdCAyMDE3IGF0IDExOjEzLCBBcm5hdWQgSD1DMz1BOXJpdGllciA8YWhlcml0aWVyQGdtYWlsLj0KY29tPgo+IHdyb3RlOgo+ID4gPiA+PiA+IEBTdGVwaGVuIFdoYXQgc2hvdWxkIHdlIGRvIG5vdyA/Cj4gPiA+ID4+ID4KPiA+ID4gPj4gPgo+ID4gPiA+PiA+IE9uIFR1ZSwgU2VwIDE5LCAyMDE3IGF0IDM6MTQgQU0sIE9saXZpZXIgTGFteSA8b2xhbXlAYXBhY2hlLm9yZz4KPiA+ID4gPj4KPiA+ID4gPj4gd3JvdGU6Cj4gPiA+ID4+ID4+IEhpCj4gPiA+ID4+ID4+IFNvcnJ5IGEgYml0IG91dCBvZiB0aW1lIEFUTSBmb3IgdGVzdGluZyB0aGlzLgo+ID4gPiA+PiA+PiBXZWxsIEkgdHJ1c3QgQXJuYXVkIHRlc3RpbmcgdGhhdCBlc3BlY2lhbGx5IGlmIHRoaXMgaW1wcm92ZSB0aGUKPiA+ID4gPj4gPj4gcGVyZm9ybWFuY2UKPiA+ID4gPj4gPj4gb2YgdGhpcyB2ZXJ5IGdyZWF0L2F3ZXNvbWUvdXNlcnMgb3JpZW50ZWQgcGx1Z2luIDpQCj4gPiA+ID4+ID4+Cj4gPiA+ID4+ID4+IE9uIDEzIFNlcHRlbWJlciAyMDE3IGF0IDIyOjE5LCBBcm5hdWQgSD1DMz1BOXJpdGllcgo+ID4gPiA+PiA+PiA8YWhlcml0aWVyQGFwYWNoZS5vcmc+Cj4gPiA+ID4+ID4+Cj4gPiA+ID4+ID4+IHdyb3RlOgo+ID4gPiA+PiA+PiA+IERhbW5lZCwgY2FuJ3Qgd2UgYmUgYW5vbnltb3VzIG9uIEdpdGh1YiA/Cj4gPiA+ID4+ID4+ID4gSSBtYWludGFpbiBpdCBpcyBhIGJpZyB3b3JkLCBJJ20gdHJ5aW5nIHRvIGZpeCBtb3JlIGJ1Z3MgdGhhbj0KIEkKPiA+ID4gPj4gPj4gPiBhZGQKPiA+ID4gPj4KPiA+ID4gPj4gbmV3Cj4gPiA+ID4+Cj4gPiA+ID4+ID4+ID4gb25lcwo+ID4gPiA+PiA+PiA+IEkgYWRkZWQgT2xlZyBpbiB0aGUgbG9vcCBhcyBoZSBjb250cmlidXRlZCBhIGxvdCBvbiBpdCB0b28KPiA+ID4gPj4gPj4gPiBJIGRpZCBhIHF1aWNrIHRlc3QgdG8gYnVpbGQgb24gSmVua2lucyAyLjYwLjMgb3VyIG1hdmVuIGNvcmUKPiB3aXRoCj4gPiA+ID4+Cj4gPiA+ID4+IHRoZQo+ID4gPiA+Pgo+ID4gPiA+PiA+PiBFdmlsCj4gPiA+ID4+ID4+Cj4gPiA+ID4+ID4+ID4gTWF2ZW4gcGx1Z2luIDIuMTcgb24gYSBsb2NhbCBTU0ggYWdlbnQgYW5kIGl0IGlzIG9rCj4gPiA+ID4+ID4+ID4gQnV0IGl0IGlzIHJlYWxseSBhIHF1aWNrIHRlc3QgLi4uCj4gPiA+ID4+ID4+ID4KPiA+ID4gPj4gPj4gPiBDaGVlcnMKPiA+ID4gPj4gPj4gPgo+ID4gPiA+PiA+PiA+Cj4gPiA+ID4+ID4+ID4KPiA+ID4gPj4gPj4gPiBPbiBXZWQsIFNlcCAxMywgMjAxNyBhdCAxMDowNyBBTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPiA+ID4+ID4+ID4KPiA+ID4gPj4gPj4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+ID4gPj4gPj4gPiA+IE9uIDEzIFNlcHRlbWJlciAyMDE3IGF0IDAxOjA1LCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+ID4gPj4gPj4gPiA+Cj4gPiA+ID4+ID4+ID4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+ID4gPj4gPj4gPiA+PiBPbiAxMyBTZXB0ZW1iZXIgMjAxNyBhdCAwMDoyNiwgQW5kZXJzIEhhbW1hcgo+ID4gPiA+PiA+PiA+ID4+IDxhbmRlcnNAaGFtbWFyLm5ldD4KPiA+ID4gPj4gPj4KPiA+ID4gPj4gPj4gd3JvdGU6Cj4gPiA+ID4+ID4+ID4gPj4+IE9uIFR1ZSwgU2VwIDEyLCAyMDE3IGF0IDg6NTQgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4gPiA+PiA+PiA+ID4+Pgo+ID4gPiA+PiA+PiA+ID4+PiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+ID4gPj4gPj4gPiA+Pj4gPiBIYXZlIHdlIGdvdCBhbnkgZmVlZGJhY2sgZnJvbSB0aGUgZW1iZWRkZXIgaW50ZWdyYXRpb25zCj4geWV0Pwo+ID4gPiA+PiA+PiA+ID4+Pgo+ID4gPiA+PiA+PiA+ID4+PiBJIGhhdmVuJ3QgaGVhcmQgYW55dGhpbmcgZnJvbSB0aGUgbTJlIHBlb3BsZS4gTWF5YmUgd2UKPiBuZWVkIHRvCj4gPiA+ID4+Cj4gPiA+ID4+IHBpbmcKPiA+ID4gPj4KPiA+ID4gPj4gPj4gPiB0aGVtCj4gPiA+ID4+ID4+ID4KPiA+ID4gPj4gPj4gPiA+Pj4gZGlyZWN0bHkuIEkgY2FuIGNvbnRhY3QgRnJlZCBCcmljb24uCj4gPiA+ID4+ID4+ID4gPj4+Cj4gPiA+ID4+ID4+ID4gPj4+IC9BbmRlcnMKPiA+ID4gPj4gPj4gPiA+Pgo+ID4gPiA+PiA+PiA+ID4+IFBsZWFzZSBkbywgYWxzbyBpZiBhbnlvbmUgaGFzIGEgY29udGFjdCBpbiBuZXRiZWFucyBvcgo+IGludGVsbGlqCj4gPiA+ID4+Cj4gPiA+ID4+IGFuZAo+ID4gPiA+Pgo+ID4gPiA+PiA+PiA+IGNvdWxkCj4gPiA+ID4+ID4+ID4KPiA+ID4gPj4gPj4gPiA+PiBsZXQgdGhlbSBrbm93IHdlJ2QgbGlrZSBlaXRoZXIgZmVlZGJhY2sgb3IgIndlJ3JlIG9rIGlmCj4gPiA+ID4+ID4+ID4gPj4gTU5HLTYyNzUKPiA+ID4gPj4gPj4KPiA+ID4gPj4gPj4gbWFrZXMKPiA+ID4gPj4gPj4KPiA+ID4gPj4gPj4gPiA+PiB0cm91YmxlIGZvciB1cywgZ28gYWhlYWQgYW5kIHJlbGVhc2UiLiBJJ2QgbGlrZSB0byBjbG9zZSB0PQpoZQo+ID4gPiA+Pgo+ID4gPiA+PiB2b3RlCj4gPiA+ID4+IG9uCj4gPiA+ID4+Cj4gPiA+ID4+ID4+ID4gRnJpZGF5Cj4gPiA+ID4+ID4+ID4KPiA+ID4gPj4gPj4gPiA+PiAxMzowMCBVVEMuCj4gPiA+ID4+ID4+ID4gPgo+ID4gPiA+PiA+PiA+ID4gT2xpdmllciAvIEFybmF1ZCwgaGF2ZSBlaXRoZXIgb2YgeW91IGhhZCBhIGNoYW5jZSB0byB0ZXN0Cj4gdGhpcwo+ID4gPiA+Pgo+ID4gPiA+PiB3aXRoCj4gPiA+ID4+Cj4gPiA+ID4+ID4+IHRoZQo+ID4gPiA+PiA+Pgo+ID4gPiA+PiA+PiA+ID4gZXZpbCBwcm9qZWN0IHR5cGVbMV0gYXMgeW91IHR3byBzZWVtIHRvIGJlIHRoZSBhY3RpdmUKPiA+ID4gPj4KPiA+ID4gPj4gbWFpbnRhaW5lcnNbMl0KPiA+ID4gPj4KPiA+ID4gPj4gPj4gPiA+IFsxXTogaHR0cHM6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90LmllLzIwMTMvMTEvamVua2lucy0+ID4+Cj4gPj4gPgo+ID4gPiA+PiA+PiA+ID4gPiBtYXZlbi1qb2ItdHlwZS1jb25zaWRlcmVkLWV2aWwuaHRtbCBbMl06Cj4gPiA+ID4+ID4+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vamVua2luc2NpL21hdmVuLXBsdWdpbi9jb21taXRzL21hc3Rlcgo+ID4gPiA+PiA+PiA+Cj4gPiA+ID4+ID4+ID4gLS0KPiA+ID4gPj4gPj4gPgo+ID4gPiA+PiA+PiA+IEFybmF1ZAo+ID4gPiA+PiA+Pgo+ID4gPiA+PiA+PiAtLQo+ID4gPiA+PiA+PiBPbGl2aWVyIExhbXkKPiA+ID4gPj4gPj4gaHR0cDovL3R3aXR0ZXIuY29tL29sYW15IHwgaHR0cDovL2xpbmtlZGluLmNvbS9pbi9vbGFteQo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gLS0KPiA+ID4gPj4gPiAtLS0tLQo+ID4gPiA+PiA+IEFybmF1ZCBIPUMzPUE5cml0aWVyCj4gPiA+ID4+ID4gaHR0cDovL2FoZXJpdGllci5uZXQKPiA+ID4gPj4gPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+ID4gPiA+PiA+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKPiA+ID4gPj4KPiA+ID4gPj4gLS0KPiA+ID4gPj4gU2VudCBmcm9tIG15IHBob25lCj4gPiA+Cj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPgo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCi0tMDAxYTExNDQyZmJjYWExYTU3MDU1YjNmNTEzZS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MDMyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBTZXAgMTUgMDY6Mjk6NTkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDMyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEU5NkQzMUEzMzkKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAxNSBTZXAgMjAxNyAwNjoyOTo1OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg0NjM0IGludm9rZWQgYnkgdWlkIDUwMCk7IDE1IFNlcCAyMDE3IDA2OjI5OjU5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NDU0NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNSBTZXAgMjAxNyAwNjoyOTo1OSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg0NTI4IGludm9rZWQgYnkgdWlkIDk5KTsgMTUgU2VwIDIwMTcgMDY6Mjk6NTkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDE1IFNlcCAyMDE3IDA2OjI5OjU5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQUVGRDQxQTUyNjIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDE1IFNlcCAyMDE3IDA2OjI5OjU4ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuMjk5ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjI5OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsCglIRUFERVJfRlJPTV9ESUZGRVJFTlRfRE9NQUlOUz0wLjAwMSwgSFRNTF9NRVNTQUdFPTIsCglLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgU1BGX1BBU1M9LTAuMDAxLCBVUklCTF9CTE9DS0VEPTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFhrM2JDQWRsMEdqVyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCUZyaSwgMTUgU2VwIDIwMTcgMDY6Mjk6NTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13cjAtZjE3My5nb29nbGUuY29tIChtYWlsLXdyMC1mMTczLmdvb2dsZS5jb20gWzIwOS44NS4xMjguMTczXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEM3ODYyNUZCNTcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDE1IFNlcCAyMDE3IDA2OjI5OjU1ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdyMC1mMTczLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGsyMHNvOTY5NjUxd3JlLjQKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAxNCBTZXAgMjAxNyAyMzoyOTo1NSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnNlbmRlcjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkCiAgICAgICAgIDpzdWJqZWN0OnRvOwogICAgICAgIGJoPVJ1TjFyVFlZYzdxVlpXY2ZNMmtuR1RhT2wzNXRVWlF2VXR1cmJBY2pFUWM9OwogICAgICAgIGI9ZHhRYUU2QXZnb2ZwWGVDc1cyUmdCTXBYQWlPQVVxZXNjM3BSdHREVHpWY3J4NW5Kek52cWJSNWdlemVrTkdkRHloCiAgICAgICAgIHMvWlVvbWMvUXZnczB3emZUMXg2OUxJL2hDSysvVU5QTEVYNFlXbXVRS053Sk56VXBDVzIxY2NnRGxvSWUrTVlzaHN1CiAgICAgICAgIHB3ZDdyYXhYaS9PUkhlWk94ekIrUnlJaERudG82Q3VHZGRTdmVqMTgvVHJmenJJUDRKbGN4WjIvYXQydk1CaytCSW1yCiAgICAgICAgIHlhOE5vQ2IzZ2VqT3Q1bkloNUNxTm1OdGR2WU9STXpZcUEyUEZCZFVidnlnSGpXajIvSWFVeS9DTXY2VTd2VUhRNmtyCiAgICAgICAgIDRqMlFlYWlwQXBVd01nNGFZTkNmdDhQL2dKQ1V1L2dRZm8zMzU0dnZQaGVjb0JsMnFvSXZrUkVybjg1dVJWU1FNU3RSCiAgICAgICAgIGI4R3c9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpzZW5kZXI6aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tCiAgICAgICAgIDpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1SdU4xclRZWWM3cVZaV2NmTTJrbkdUYU9sMzV0VVpRdlV0dXJiQWNqRVFjPTsKICAgICAgICBiPXBtWkd2am03L3FPM1JicTFWUVg0WHE5bHIwWHZtSjcrV05PM1FNVVc2ZjZYS3hEeDhVWWtja0hva1pPb2gxbjU2UgogICAgICAgICBMM2daejNWYkdjSno2cXlBYVZhTzcvK3I5dU1vMkpqd051NmJZUVl2V2VRcUt2S3JYRk9UOE1UTU9YTHFZYURQT3hSMwogICAgICAgICBSLzhxWlVuYXZwb2xiZ00wVVpaZmV1MlVieUpwQjVWZlYyNUh0MTgzMlIvekZiMzJ4ZWVxLzZXaEIweC9nT2daaHcyRwogICAgICAgICB4MWlJYlJKcjdhUHdwS2RyNGJzN3IvMEJCcHptNjJIOVFUYmFycnJnUGE4ZXJ6YXdjTU1QNmt4VFhFaVhWVjh6L2l2MwogICAgICAgICBGTkhOWUlmUVAzOHZHZ2pnSXZSa2t2WnlieDVSMS9uODBjS25wc3lxNnhqRnhOckxsUCtKb3Vvci9QSEE4bGw1ZDJiVQogICAgICAgICBMZ1hRPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVqWFNwL3RDZjBMcFUxREQ4SXJHZU5uaUg5cUFEYUxRQVNxMXd4cVo3a1RNV1QySEhZUQoJcHh5UUpCalhmYWdiRU0vM1NOOFVJRTBuYmJQZy9VNkhoOC96TDRnS0RBPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFES0NOYjVZaWxCY2szeENQUFdqa0VOTXZzRTdVUWc3a2lRVVpaTitIN3h5a2hCY0VtNE5XVFBLcllhNndlUFBaWnVIRjk0azRMblNicUlaVzh3VjFUZ2F2WnM9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xMzUuMjUyIHdpdGggU01UUCBpZCBjNTdtcjE4NzMyOTMyd3JjLjIwNC4xNTA1NDU2OTg5MTQ2OwogVGh1LCAxNCBTZXAgMjAxNyAyMzoyOTo0OSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApTZW5kZXI6IGFuZGVycy5nLmhhbW1hckBnbWFpbC5jb20KUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xMzkuOTIgd2l0aCBIVFRQOyBUaHUsIDE0IFNlcCAyMDE3IDIzOjI5OjQ4IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0FLRFVOMXY1VHNGbitvLXZ2OEhoM1B1dkdYV2UrZlFuTStqd0RadCs9enR4c3BjZ2d3QG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgogPHBvbnktNTZhM2FkZWFmNjBjNDA1OTZmYjI4NGIyNDUyNDE0OGY2MDVlOGQyMy01MmQ0MWNkNDBmMjM0M2M4OTUyODgwZThmODRkYTNlODBkMzM1NTA5QGRldi5tYXZlbi5hcGFjaGUub3JnPgogPENBK25Qbk15UzJxMXVmYVcrUzZzbWhaWjFKY3hoZjloWTUtM25CSi1pQ1dlalBVQURWQUBtYWlsLmdtYWlsLmNvbT4KIDwyMDU3OTQ4LmsxR3lmanVHWGRAZ2lnYT4gPENBK25Qbk13Y29IRlp2VXFXaVVzeUhCaGFNbW9TY2N5ZFRCc3pTWGdzR3RGPXdOR0RLd0BtYWlsLmdtYWlsLmNvbT4KIDxDQUtEVU4xdjVUc0ZuK28tdnY4SGgzUHV2R1hXZStmUW5NK2p3RFp0Kz16dHhzcGNnZ3dAbWFpbC5nbWFpbC5jb20+CkZyb206IEFuZGVycyBIYW1tYXIgPGFuZGVyc0BoYW1tYXIubmV0PgpEYXRlOiBGcmksIDE1IFNlcCAyMDE3IDA4OjI5OjQ4ICswMjAwClgtR29vZ2xlLVNlbmRlci1BdXRoOiBrc29TNXB4eTVQaVdfYzN3VERsMXpraXpmb2cKTWVzc2FnZS1JRDogPENBS0RVTjFzbTBLS3JOb2tweGgrTkJPWGtVRjg0R0JMeGhRVjJmZHdFSy1GeCsteG5Wd0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0OTg5ODYxMDEzNWUwNTU5MzQ4NTExIgoKLS0wMDFhMTE0OTg5ODYxMDEzNWUwNTU5MzQ4NTExCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKClJlcG9ydGluZyBiYWNrIGZyb20gdGVzdHMgb2YgbTJlIHdpdGggZW1iZWRkZWQgTWF2ZW4gMy41LjEsIHdlIHNlZSBwcm9ibGVtCndpdGggdGhlIGpheHdzLW1hdmVuLXBsdWdpbiBtb2pvLiBXZSdyZSB0d28gcGVvcGxlIHNlZWluZyB0aGUgaXNzdWUKaW5kZXBlbmRlbnRseSwgYnV0IHVuZm9ydHVuYXRlbHkgRnJlZCBCcmljb24gaGFzbid0IGJlZW4gYWJsZSB0byByZXByb2R1Y2UuCgpTbyBjdXJyZW50bHkgSSdtIDAgb24gdGhlIHZvdGluZyBidXQgSSdsbCBpbnZlc3RpZ2F0ZSBzb21lIG1vcmUuCgovQW5kZXJzCgpPbiBXZWQsIFNlcCAxMywgMjAxNyBhdCA5OjI2IEFNLCBBbmRlcnMgSGFtbWFyIDxhbmRlcnNAaGFtbWFyLm5ldD4gd3JvdGU6Cgo+Cj4KPiBPbiBUdWUsIFNlcCAxMiwgMjAxNyBhdCA4OjU0IFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPgo+PiBIYXZlIHdlIGdvdCBhbnkgZmVlZGJhY2sgZnJvbSB0aGUgZW1iZWRkZXIgaW50ZWdyYXRpb25zIHlldD8KPj4KPgo+IEkgaGF2ZW4ndCBoZWFyZCBhbnl0aGluZyBmcm9tIHRoZSBtMmUgcGVvcGxlLiBNYXliZSB3ZSBuZWVkIHRvIHBpbmcgdGhlbQo+IGRpcmVjdGx5LiBJIGNhbiBjb250YWN0IEZyZWQgQnJpY29uLgo+Cj4gL0FuZGVycwo+Cj4KPj4KPj4gT24gTW9uIDExIFNlcCAyMDE3IGF0IDIyOjU3LCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gPQp3cm90ZToKPj4KPj4gPiBqdXN0IGZvciB0aGUgcmVjb3JkczogaXQgaXMgV2luZG93cyArIEdpdCBCYXNoIChNSU5HVzY0KSBvbmx5Cj4+ID4KPj4gPiBhbmQgdGhlcmUgaXMgYSBjaGFuY2UgdGhhdCBhZGRpbmcgLURqYW5zaS5mb3JjZT0zRHRydWUgY2FuIGZvcmNlIEpBbnNpCj4+ID4gYWN0aXZhdGlvbiAoZXZlbiBpZiBKQW5zaSBmYWlscyB0byBkZXRlY3QgdGhhdCBpdCBzaG91bGQgYXV0by1hY3RpdmF0ZT0KKQo+PiA+Cj4+ID4gZGV0YWlscyBvbiBpc3N1ZSBpbiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MjgyICwKPj4gYW5kIGEKPj4gPiBmdXR1cmUgSkFuc2kgaXNzdWUuLi4KPj4gPgo+PiA+IFJlZ2FyZHMsCj4+ID4KPj4gPiBIZXJ2PUMzPUE5Cj4+ID4KPj4gPiBMZSBsdW5kaSAxMSBzZXB0ZW1icmUgMjAxNywgMTI6NTM6NDYgQ0VTVCBTdGVwaGVuIENvbm5vbGx5IGEgPUMzPUE5Y3JpPQp0IDoKPj4gPiA+IFNvIHRoYXQgaXMgd2luZG93cyBvbmx5LCBvciB3ZXJlIHRoZXkgbG9zdCBvbiBvdGhlciBPU2VzIGZvciB5b3UuCj4+ID4gPgo+PiA+ID4gSSBoYXZlIGNvbG91cnMgb24gbGludXggKHZpYSBkb2NrZXIpIGFuZCBvcy14Cj4+ID4gPgo+PiA+ID4gT24gMTEgU2VwdGVtYmVyIDIwMTcgYXQgMTI6MzUsIGRlamFuMjYwOUBnbWFpbC5jb20gPAo+PiBkZWphbjI2MDlAZ21haWwuY29tPgo+PiA+ID4KPj4gPiA+IHdyb3RlOgo+PiA+ID4gPiArMSAoY29uZGl0aW9uYWxseSkuCj4+ID4gPiA+Cj4+ID4gPiA+IFRlc3RlZCB2aWEgcHJvamVjdCB0aGF0IGluY2x1ZGVzIGRvemVuIG9mIHBsdWdpbnM6IDFzdCB0aWVyLAo+PiBNb2pvSGF1cwo+PiA+IGFuZAo+PiA+ID4gPiBmZXcgM3JkIHBhcnR5IHBsdWdpbnMgKHNvIHRvIHNheSkuCj4+ID4gPiA+Cj4+ID4gPiA+IEV2ZXJ5dGhpbmcgbG9va3MgZ29vZCB3aXRoIG9uZSBub3RhYmxlIHJlZ3Jlc3Npb246Cj4+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyODIgQ29uc29sZSBvdXRwdXQgaGFzCj4+IG5vCj4+ID4gPiA+IGNvbG9ycyAocmVncmVzc2lvbiBpbiBNYXZlbiAzLjUuMSkKPj4gPiA+ID4KPj4gPiA+ID4gUmVnYXJkcywKPj4gPiA+ID4gRGVqYW4KPj4gPiA+ID4KPj4gPiA+ID4gT24gMjAxNy0wOS0xMCAxNzozOSwgU3RlcGhlbiBDb25ub2xseSA8Cj4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20KPj4gPiA+Cj4+ID4gPiA+Cj4+ID4gPiA+IHdyb3RlOgo+PiA+ID4gPiA+IEhpLAo+PiA+ID4gPiA+Cj4+ID4gPiA+ID4gV2Ugc29sdmVkIDI1IGlzc3VlczoKPj4gPiA+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4+ID4gPiA+Cj4+ID4gPiA+IHZlcnNpb249M0QxMjMzODk2NCZzdHlsZU5hbWU9M0RUZXh0JnByb2plY3RJZD0zRDEyMzE2OTIyCj4+ID4gPiA+Cj4+ID4gPiA+ID4gVGhlcmUgYXJlIDM1MCBpc3N1ZXMgbGVmdCBpbiBKSVJBIGZvciBNYXZlbiBjb3JlOgo+PiA+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlCj4+ID4gPiA+Cj4+ID4gPiA+IDNEJTIwTU5HJTIwQU5EJTIwcmVzb2x1dGlvbiUyMCUzRCUyMFVucmVzb2x2ZWQlMjBPUkRFUiUKPj4gPiA+ID4gMjBCWSUyMGR1ZSUyMEFTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMGNyZWF0ZWQlMjBBU0MKPj4gPiA+ID4KPj4gPiA+ID4gPiBTdGFnaW5nIHJlcG86Cj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2NC8KPj4gPiA+ID4gPgo+PiA+ID4gPiA+IFRoZSBkaXN0cmlidXRhYmxlIGJpbmFyaWVzIGFuZCBzb3VyY2VzIGNhbiBiZSBmb3VuZCBoZXJlOgo+PiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4gPgo+PiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xLwo+PiA+ID4gPgo+PiA+ID4gPiA+IFNwZWNpZmljYWxseSB0aGUgemlwLCB0YXJiYWxsIGFuZCBzb3VyY2UgYXJjaGl2ZXMgY2FuIGJlIGZvdW5kCj4+IGhlcmU6Cj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tPiA+Cj4+ID4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLWJpbi56aT0KcAo+PiA+ID4gPgo+PiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4gPgo+PiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS0KPj4gYmluLnRhci5nego+PiA+ID4gPgo+PiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4gPgo+PiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemk9CnAKPj4gPiA+ID4KPj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+ID4KPj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtCj4+IHNyYy50YXIuZ3oKPj4gPiA+ID4KPj4gPiA+ID4gPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPj4gPiA+ID4gPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5neiBzaGExOiA5ZWI4MjFmMTUzYzc2NjcxOTRhYTExY2NkMDk5PQpiNwo+PiA+ID4gPgo+PiA+ID4gPiBiZDIwNTk1NjBkCj4+ID4gPiA+Cj4+ID4gPiA+ID4gYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy56aXA6IHNoYTE6IDEyMWQ1NGIwNDUzODBhOGE0ODk1ZWIxMzc5NzBhYgo+PiA+ID4gPgo+PiA+ID4gPiA2OWU2OThlYjBlCj4+ID4gPiA+Cj4+ID4gPiA+ID4gR2l0IHRhZzoKPj4gPiA+ID4gPiBodHRwczovL2dpdC13aXAtdXMuYXBhY2hlLm9yZy9yZXBvcy9hc2Y/cD0zRG1hdmVuLmdpdDthPTNEY29tbWl0PQo7aD0zRAo+PiA+ID4gPgo+PiA+ID4gPiAwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzCj4+ID4gPiA+Cj4+ID4gPiA+ID4gU3RhZ2luZyBzaXRlOgo+PiA+ID4gPiA+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9jb21wb25lbnRzL3JlZi8zLUxBVEVTVC8KPj4gPiA+ID4gPgo+PiA+ID4gPiA+IFZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCj4+ID4gPiA+ID4KPj4gPiA+ID4gPiBbIF0gKzEKPj4gPiA+ID4gPiBbIF0gKzAKPj4gPiA+ID4gPiBbIF0gLTEKPj4gPiA+ID4gPgo+PiA+ID4gPiA+IFRoYW5rcywKPj4gPiA+ID4gPgo+PiA+ID4gPiA+IFN0ZXBoZW4uCj4+ID4gPiA+Cj4+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiAtLS0tLS0tLS0KPj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+Cj4+ID4KPj4gPgo+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+Cj4+ID4gLS0KPj4gU2VudCBmcm9tIG15IHBob25lCj4+Cj4KPgoKLS0wMDFhMTE0OTg5ODYxMDEzNWUwNTU5MzQ4NTExLS0KCkZyb20gZGV2LXJldHVybi0xMjQwMzctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIFNlcCAxNSAxMToyMToyMyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwMzctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNkExRjYxQUNDQQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDE1IFNlcCAyMDE3IDExOjIxOjIzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzQyMTIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgU2VwIDIwMTcgMTE6MjE6MjMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM0MTUzIGludm9rZWQgYnkgdWlkIDUwMCk7IDE1IFNlcCAyMDE3IDExOjIxOjIyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzQxNDEgaW52b2tlZCBieSB1aWQgOTkpOyAxNSBTZXAgMjAxNyAxMToyMToyMSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMTUgU2VwIDIwMTcgMTE6MjE6MjEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA2ODc2QjFBMkJEMwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTUgU2VwIDIwMTcgMTE6MjE6MjEgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4yOTkKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMjk5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwKCUhFQURFUl9GUk9NX0RJRkZFUkVOVF9ET01BSU5TPTAuMDAxLCBIVE1MX01FU1NBR0U9MiwKCUtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44LCBTUEZfUEFTUz0tMC4wMDEsIFVSSUJMX0JMT0NLRUQ9MC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgM2hzd0N0U0hvN2tvIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJRnJpLCAxNSBTZXAgMjAxNyAxMToyMToxOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdyMC1mMTc3Lmdvb2dsZS5jb20gKG1haWwtd3IwLWYxNzcuZ29vZ2xlLmNvbSBbMjA5Ljg1LjEyOC4xNzddKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMTBEODU1RjY2NQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTUgU2VwIDIwMTcgMTE6MjE6MTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd3IwLWYxNzcuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgejM5c28xNTUyMjQ4d3JiLjgKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAxNSBTZXAgMjAxNyAwNDoyMToxOCAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnNlbmRlcjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkCiAgICAgICAgIDpzdWJqZWN0OnRvOwogICAgICAgIGJoPTRKMUxIdU5wRk40UXFxdXBkREFWMGFZM2pIc0htY1pTVmlvMStNejRKUDA9OwogICAgICAgIGI9UmRhRmE4eFkyYWRubkxVYTN0cERLU1YvRVYvc1RrT1hnYlJrMDhGOVdBK0NnMjIwVEVuYlVLZkNlOGhyY1hOYW1xCiAgICAgICAgIERjMTFVVGZYMjZrYVltSi9iYnl1SVdrTVVVcXcvUkRsNHp6dVVyeW8zaWZicFh6MW5idHZiZ3JuZWllek1PQWlYeU94CiAgICAgICAgIHVUOGxIeUIvbUJlWjk1RkJjaHZ4ZHZUV1Z2MXVNMDhJbC96SkhPWHNkeHgzQi9SUXdhaVdhL1U4V2xSOEVlZCt2NEJzCiAgICAgICAgIDBVOGc4Q21HQU1DNU1tQ0tERTNXYXBvUXBHVW52ZnJ3SENpb0pBTTZHS2Q2bklpcFVSQi82eUhoUTc2T0RvY0dkR3IwCiAgICAgICAgIHVSS0lPZnllc3MzTXgzNHNJb1NaZ2oxKytMS3JhNXQvQlk2Y2xNRHRFTjF5dTc0WERYSzZsTG51WjQvNVNKaTM0djRXCiAgICAgICAgIGxveVE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpzZW5kZXI6aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tCiAgICAgICAgIDpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD00SjFMSHVOcEZONFFxcXVwZERBVjBhWTNqSHNIbWNaU1ZpbzErTXo0SlAwPTsKICAgICAgICBiPWpla3JRSnN3ZDBiZCtoaURzTDAvZ1V5b2ZZT0J5WHdET2pKaDNEVHkyTXp1cm9rbk5NcTg2RVkvcHBncEcyR1dtbAogICAgICAgICBkMllSdkc4b1NmSmV2Y3NtZGNZeE44VFprTUpSVFZESDNTYWdKSWdvbkpGUWVMYWsyWkpCcjZSSFFhYjd4bEFXMmpYZQogICAgICAgICBDRFlBM3oveDRTWkJlT21LN0tIVlFxM2lHSzd0UjVjTmRiZmUvTlBHNUpCdTNEMzI4SkRXcnA1QXJqc24xbFdkRXZqVgogICAgICAgICArYVcwemd5WVJTanBGbXg5UEp0RGppbDFONGs0RnQrL052eGRtdE5hN000OXZBalJ1V0x6KzdTeFVLeWhqRG9aSXdPegogICAgICAgICArVGs4Y2Z3NW9kM3RMTVBmeG1iV2h4R0RZZnRCMVI1TlFCUGd1d3BhR3pQa2VBUnhIVXdqS0pUS1NxMDh4QmlOci9KYgogICAgICAgICBDZnp3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVqUnVrUWVSMkVFaVZSV2lWL3BrcVFuam9aS05xZU01Z0tIOExkQWVaS05hUDM4dFJjMAoJeXJwaU9JbjlVNXpTZW1tcHNuQUN6NG1ENU4wTkxxQUJLT3o1T080UmlnPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFES0NOYjRmTzU2cjJSS2xXS0tXT2xHc0FnMGRJbXIva1BJMDFiS1BITU9uSkxmQUVobjdTeHVYdkpmMzJUcm9NcjRDbi96WHAvaDhER1JzZko5RVd2YlN2b0U9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xNTcuMjA0IHdpdGggU01UUCBpZCBxMTJtcjIwMTY5NzE1d3JlLjEyLjE1MDU0NzQ0NzczNDY7CiBGcmksIDE1IFNlcCAyMDE3IDA0OjIxOjE3IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClNlbmRlcjogYW5kZXJzLmcuaGFtbWFyQGdtYWlsLmNvbQpSZWNlaXZlZDogYnkgMTAuMjIzLjEzOS45MiB3aXRoIEhUVFA7IEZyaSwgMTUgU2VwIDIwMTcgMDQ6MjE6MTYgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxDQUtEVU4xc20wS0tyTm9rcHhoK05CT1hrVUY4NEdCTHhoUVYyZmR3RUstRngrLXhuVndAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQStuUG5NeHlHMk5lUFhwVnFhd2U5alI9aXRIRVQ2VXVkbk45Q2pIaHY9b28tS0NyeHdAbWFpbC5nbWFpbC5jb20+CiA8cG9ueS01NmEzYWRlYWY2MGM0MDU5NmZiMjg0YjI0NTI0MTQ4ZjYwNWU4ZDIzLTUyZDQxY2Q0MGYyMzQzYzg5NTI4ODBlOGY4NGRhM2U4MGQzMzU1MDlAZGV2Lm1hdmVuLmFwYWNoZS5vcmc+CiA8Q0ErblBuTXlTMnExdWZhVytTNnNtaFpaMUpjeGhmOWhZNS0zbkJKLWlDV2VqUFVBRFZBQG1haWwuZ21haWwuY29tPgogPDIwNTc5NDguazFHeWZqdUdYZEBnaWdhPiA8Q0ErblBuTXdjb0hGWnZVcVdpVXN5SEJoYU1tb1NjY3lkVEJzelNYZ3NHdEY9d05HREt3QG1haWwuZ21haWwuY29tPgogPENBS0RVTjF2NVRzRm4rby12djhIaDNQdXZHWFdlK2ZRbk0randEWnQrPXp0eHNwY2dnd0BtYWlsLmdtYWlsLmNvbT4gPENBS0RVTjFzbTBLS3JOb2tweGgrTkJPWGtVRjg0R0JMeGhRVjJmZHdFSy1GeCsteG5Wd0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogQW5kZXJzIEhhbW1hciA8YW5kZXJzQGhhbW1hci5uZXQ+CkRhdGU6IEZyaSwgMTUgU2VwIDIwMTcgMTM6MjE6MTYgKzAyMDAKWC1Hb29nbGUtU2VuZGVyLUF1dGg6IGZqTzlMNDRabGotZlI4elQ2TWpta1Y5MW9UbwpNZXNzYWdlLUlEOiA8Q0FLRFVOMXRkRD1QeDVuOUw2MEtjYTJGdW5DVk4yd3JvUGQ5VXJRTkt4X3hiem10TTZ3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9ImY0MDMwNDNhMjk2NDcwZDQ5YTA1NTkzODk3NTEiCgotLWY0MDMwNDNhMjk2NDcwZDQ5YTA1NTkzODk3NTEKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gRnJpLCBTZXAgMTUsIDIwMTcgYXQgODoyOSBBTSwgQW5kZXJzIEhhbW1hciA8YW5kZXJzQGhhbW1hci5uZXQ+IHdyb3RlOgoKPiBSZXBvcnRpbmcgYmFjayBmcm9tIHRlc3RzIG9mIG0yZSB3aXRoIGVtYmVkZGVkIE1hdmVuIDMuNS4xLCB3ZSBzZWUgcHJvYmxlPQptCj4gd2l0aCB0aGUgamF4d3MtbWF2ZW4tcGx1Z2luIG1vam8uIFdlJ3JlIHR3byBwZW9wbGUgc2VlaW5nIHRoZSBpc3N1ZQo+IGluZGVwZW5kZW50bHksIGJ1dCB1bmZvcnR1bmF0ZWx5IEZyZWQgQnJpY29uIGhhc24ndCBiZWVuIGFibGUgdG8gcmVwcm9kdWM9CmUuCj4KClRvIGZvbGxvdyB1cCBvbiB0aGlzLCBteSB0ZXN0cyBpbmRpY2F0ZSB0aGF0IE1hdmVuIDMuNS4xIGNhdXNlcyBjaGFuZ2VkCmNsYXNzIGxvYWRpbmcgdGhhdCBjb3VsZCBjYXVzZSBpc3N1ZXMgZm9yIHBsdWdpbnMgaW4gbTJlLiBJJ3ZlIGFza2VkIGZvcgppbnB1dCBmcm9tIHRoZSBtMmUgZGV2cyBpZiBpdCBpcyBwb3NzaWJsZSB0byBoYW5kbGUgaW4gbTJlIGJ1dCB0aGV5IGhhdmVuJ3QKcmVzcG9uZGVkIHlldC4KCi9BbmRlcnMKCgo+Cj4gU28gY3VycmVudGx5IEknbSAwIG9uIHRoZSB2b3RpbmcgYnV0IEknbGwgaW52ZXN0aWdhdGUgc29tZSBtb3JlLgo+Cj4gL0FuZGVycwo+Cj4gT24gV2VkLCBTZXAgMTMsIDIwMTcgYXQgOToyNiBBTSwgQW5kZXJzIEhhbW1hciA8YW5kZXJzQGhhbW1hci5uZXQ+IHdyb3RlOgo+Cj4+Cj4+Cj4+IE9uIFR1ZSwgU2VwIDEyLCAyMDE3IGF0IDg6NTQgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+PiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4KPj4+IEhhdmUgd2UgZ290IGFueSBmZWVkYmFjayBmcm9tIHRoZSBlbWJlZGRlciBpbnRlZ3JhdGlvbnMgeWV0Pwo+Pj4KPj4KPj4gSSBoYXZlbid0IGhlYXJkIGFueXRoaW5nIGZyb20gdGhlIG0yZSBwZW9wbGUuIE1heWJlIHdlIG5lZWQgdG8gcGluZyB0aGVtCj4+IGRpcmVjdGx5LiBJIGNhbiBjb250YWN0IEZyZWQgQnJpY29uLgo+Pgo+PiAvQW5kZXJzCj4+Cj4+Cj4+Pgo+Pj4gT24gTW9uIDExIFNlcCAyMDE3IGF0IDIyOjU3LCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4+IHdyb3RlOgo+Pj4KPj4+ID4ganVzdCBmb3IgdGhlIHJlY29yZHM6IGl0IGlzIFdpbmRvd3MgKyBHaXQgQmFzaCAoTUlOR1c2NCkgb25seQo+Pj4gPgo+Pj4gPiBhbmQgdGhlcmUgaXMgYSBjaGFuY2UgdGhhdCBhZGRpbmcgLURqYW5zaS5mb3JjZT0zRHRydWUgY2FuIGZvcmNlIEpBbnM9CmkKPj4+ID4gYWN0aXZhdGlvbiAoZXZlbiBpZiBKQW5zaSBmYWlscyB0byBkZXRlY3QgdGhhdCBpdCBzaG91bGQgYXV0by1hY3RpdmF0PQplKQo+Pj4gPgo+Pj4gPiBkZXRhaWxzIG9uIGlzc3VlIGluIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyODIgLAo+Pj4gYW5kIGEKPj4+ID4gZnV0dXJlIEpBbnNpIGlzc3VlLi4uCj4+PiA+Cj4+PiA+IFJlZ2FyZHMsCj4+PiA+Cj4+PiA+IEhlcnY9QzM9QTkKPj4+ID4KPj4+ID4gTGUgbHVuZGkgMTEgc2VwdGVtYnJlIDIwMTcsIDEyOjUzOjQ2IENFU1QgU3RlcGhlbiBDb25ub2xseSBhID1DMz1BOWNyPQppdCA6Cj4+PiA+ID4gU28gdGhhdCBpcyB3aW5kb3dzIG9ubHksIG9yIHdlcmUgdGhleSBsb3N0IG9uIG90aGVyIE9TZXMgZm9yIHlvdS4KPj4+ID4gPgo+Pj4gPiA+IEkgaGF2ZSBjb2xvdXJzIG9uIGxpbnV4ICh2aWEgZG9ja2VyKSBhbmQgb3MteAo+Pj4gPiA+Cj4+PiA+ID4gT24gMTEgU2VwdGVtYmVyIDIwMTcgYXQgMTI6MzUsIGRlamFuMjYwOUBnbWFpbC5jb20gPAo+Pj4gZGVqYW4yNjA5QGdtYWlsLmNvbT4KPj4+ID4gPgo+Pj4gPiA+IHdyb3RlOgo+Pj4gPiA+ID4gKzEgKGNvbmRpdGlvbmFsbHkpLgo+Pj4gPiA+ID4KPj4+ID4gPiA+IFRlc3RlZCB2aWEgcHJvamVjdCB0aGF0IGluY2x1ZGVzIGRvemVuIG9mIHBsdWdpbnM6IDFzdCB0aWVyLAo+Pj4gTW9qb0hhdXMKPj4+ID4gYW5kCj4+PiA+ID4gPiBmZXcgM3JkIHBhcnR5IHBsdWdpbnMgKHNvIHRvIHNheSkuCj4+PiA+ID4gPgo+Pj4gPiA+ID4gRXZlcnl0aGluZyBsb29rcyBnb29kIHdpdGggb25lIG5vdGFibGUgcmVncmVzc2lvbjoKPj4+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyODIgQ29uc29sZSBvdXRwdXQgaGFzCj4+PiBubwo+Pj4gPiA+ID4gY29sb3JzIChyZWdyZXNzaW9uIGluIE1hdmVuIDMuNS4xKQo+Pj4gPiA+ID4KPj4+ID4gPiA+IFJlZ2FyZHMsCj4+PiA+ID4gPiBEZWphbgo+Pj4gPiA+ID4KPj4+ID4gPiA+IE9uIDIwMTctMDktMTAgMTc6MzksIFN0ZXBoZW4gQ29ubm9sbHkgPAo+Pj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbQo+Pj4gPiA+Cj4+PiA+ID4gPgo+Pj4gPiA+ID4gd3JvdGU6Cj4+PiA+ID4gPiA+IEhpLAo+Pj4gPiA+ID4gPgo+Pj4gPiA+ID4gPiBXZSBzb2x2ZWQgMjUgaXNzdWVzOgo+Pj4gPiA+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4+PiA+ID4gPgo+Pj4gPiA+ID4gdmVyc2lvbj0zRDEyMzM4OTY0JnN0eWxlTmFtZT0zRFRleHQmcHJvamVjdElkPTNEMTIzMTY5MjIKPj4+ID4gPiA+Cj4+PiA+ID4gPiA+IFRoZXJlIGFyZSAzNTAgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKPj4+ID4gPiA+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUKPj4+ID4gPiA+Cj4+PiA+ID4gPiAzRCUyME1ORyUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlCj4+PiA+ID4gPiAyMEJZJTIwZHVlJTIwQVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwY3JlYXRlZCUyMEFTQwo+Pj4gPiA+ID4KPj4+ID4gPiA+ID4gU3RhZ2luZyByZXBvOgo+Pj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY0Lwo+Pj4gPiA+ID4gPgo+Pj4gPiA+ID4gPiBUaGUgZGlzdHJpYnV0YWJsZSBiaW5hcmllcyBhbmQgc291cmNlcyBjYW4gYmUgZm91bmQgaGVyZToKPj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tPiA+Cj4+PiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xLwo+Pj4gPiA+ID4KPj4+ID4gPiA+ID4gU3BlY2lmaWNhbGx5IHRoZSB6aXAsIHRhcmJhbGwgYW5kIHNvdXJjZSBhcmNoaXZlcyBjYW4gYmUgZm91bmQKPj4+IGhlcmU6Cj4+PiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4gPgo+Pj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtCj4+PiBiaW4uemlwCj4+PiA+ID4gPgo+Pj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+ID4KPj4+ID4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLQo+Pj4gYmluLnRhci5nego+Pj4gPiA+ID4KPj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tPiA+Cj4+PiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS0KPj4+IHNyYy56aXAKPj4+ID4gPiA+Cj4+PiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4gPgo+Pj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtCj4+PiBzcmMudGFyLmd6Cj4+PiA+ID4gPgo+Pj4gPiA+ID4gPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPj4+ID4gPiA+ID4gYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy50YXIuZ3ogc2hhMToKPj4+IDllYjgyMWYxNTNjNzY2NzE5NGFhMTFjY2QwOTliNwo+Pj4gPiA+ID4KPj4+ID4gPiA+IGJkMjA1OTU2MGQKPj4+ID4gPiA+Cj4+PiA+ID4gPiA+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwOiBzaGExOiAxMjFkNTRiMDQ1MzgwYThhNDg5NWViMTM3OTcwYT0KYgo+Pj4gPiA+ID4KPj4+ID4gPiA+IDY5ZTY5OGViMGUKPj4+ID4gPiA+Cj4+PiA+ID4gPiA+IEdpdCB0YWc6Cj4+PiA+ID4gPiA+IGh0dHBzOi8vZ2l0LXdpcC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPTNEbWF2ZW4uZ2l0O2E9M0Rjb21taT0KdDtoPTNECj4+PiA+ID4gPgo+Pj4gPiA+ID4gMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMwo+Pj4gPiA+ID4KPj4+ID4gPiA+ID4gU3RhZ2luZyBzaXRlOgo+Pj4gPiA+ID4gPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvY29tcG9uZW50cy9yZWYvMy1MQVRFU1QvCj4+PiA+ID4gPiA+Cj4+PiA+ID4gPiA+IFZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCj4+PiA+ID4gPiA+Cj4+PiA+ID4gPiA+IFsgXSArMQo+Pj4gPiA+ID4gPiBbIF0gKzAKPj4+ID4gPiA+ID4gWyBdIC0xCj4+PiA+ID4gPiA+Cj4+PiA+ID4gPiA+IFRoYW5rcywKPj4+ID4gPiA+ID4KPj4+ID4gPiA+ID4gU3RlcGhlbi4KPj4+ID4gPiA+Cj4+PiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+IC0tLS0tLS0tLQo+Pj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+ID4KPj4+ID4KPj4+ID4KPj4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+PiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+ID4KPj4+ID4gLS0KPj4+IFNlbnQgZnJvbSBteSBwaG9uZQo+Pj4KPj4KPj4KPgoKLS1mNDAzMDQzYTI5NjQ3MGQ0OWEwNTU5Mzg5NzUxLS0KCkZyb20gZGV2LXJldHVybi0xMjM4OTMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIFNlcCAgOCAwNjo1MzozOCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM4OTMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQkI4MzUxQTY5RQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksICA4IFNlcCAyMDE3IDA2OjUzOjM4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTU2NSBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IFNlcCAyMDE3IDA2OjUzOjM4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NDg5IGludm9rZWQgYnkgdWlkIDUwMCk7IDggU2VwIDIwMTcgMDY6NTM6MzggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NDc0IGludm9rZWQgYnkgdWlkIDk5KTsgOCBTZXAgMjAxNyAwNjo1MzozOCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMDggU2VwIDIwMTcgMDY6NTM6MzggKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA4QUI0OTE4RUVGRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgIDggU2VwIDIwMTcgMDY6NTM6MzcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjk4ClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MS45OCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsCglIRUFERVJfRlJPTV9ESUZGRVJFTlRfRE9NQUlOUz0wLjAwMSwgSFRNTF9NRVNTQUdFPTIsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDN6bDdNY0l2M3hrSyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCUZyaSwgIDggU2VwIDIwMTcgMDY6NTM6MzIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13bTAtZjQ0Lmdvb2dsZS5jb20gKG1haWwtd20wLWY0NC5nb29nbGUuY29tIFs3NC4xMjUuODIuNDRdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgM0Y3NTg1RjU2NwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgIDggU2VwIDIwMTcgMDY6NTM6MzIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd20wLWY0NC5nb29nbGUuY29tIHdpdGggU01UUCBpZCAxMzdzbzM3Mzc0MjR3bWouMQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDA3IFNlcCAyMDE3IDIzOjUzOjMyIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246c2VuZGVyOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQKICAgICAgICAgOnN1YmplY3Q6dG86Y2M7CiAgICAgICAgYmg9WC9QcEhObDQrZkszeTdXRU1ENVBzOUdtdTlmSTRIUjBwemswM1l3dFVnST07CiAgICAgICAgYj1QbWx4bnBCZ2hhN1hFZk1wUGEwdGpOWmcxNVZjcDc3NEliKzgyNDdaY0pOUDB3UVdqTkJkL2VncWdZZzV2ZG9ITlIKICAgICAgICAgSUpSdk81c0wvU09pdEF6S3FoY08wanJLa1BpL2x2bHEvbVNrU29sUTVLOHZaR1piYStzc3B3M01maHVHOVhvMTBOMkoKICAgICAgICAgVDlRL05JSGxSRGdWNy9wUTlSa0xRVXBrWGNJckd0RDk1WnA0QzBUeUpkYzZCS2VubGk1U2c1Wi9BUnNKY0hjQkxoWUQKICAgICAgICAgZkpYREovdWs5dkw4MC9mSkRXSG1qS0Zpd21LbzJDeUx0cnlkQWZMaERycVZ3OXg1ZzBXS2wrUFhObUxRSWp4RFNzckUKICAgICAgICAgR3oraGZIU01TTTNjK1JkdjcvYTIzYUZ6eWdzSTdSci9hOWhrOU44TUttMDVSaDBRSnFhZ2JpUFNKclluVFhXZU9ESXIKICAgICAgICAgYU0xZz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnNlbmRlcjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb20KICAgICAgICAgOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOmNjOwogICAgICAgIGJoPVgvUHBITmw0K2ZLM3k3V0VNRDVQczlHbXU5Zkk0SFIwcHprMDNZd3RVZ0k9OwogICAgICAgIGI9SC9OWkQ4M0wwRDhQcDBPQ055TW5oNGlOSVFFVEdkc09MemtMSjUxVVdxYmJUUk1Bak1ObzNZd1BrWnkrTTlDQysxCiAgICAgICAgICtqOVU4RGh1RnVkVkRGYTlESk9FTCtEeFpIRE4rOS91cjhFd0FwcGJxRGR1Qi8zbitVV2pSaHVBQXFJWDNPc1NSRFdHCiAgICAgICAgIDhjMzVDQjlRNWNsNUIyNEIrZnVLTHpiaHdMM0dwOFd0SzRQRW5CSTV0Njl2blRtR0FLdm9Ib0x6aTJUMy9JenZBMVRVCiAgICAgICAgIHRWamxEWXU5K2wydTBld0NCU25Yai96eCt0QjhkSEMwdFdaNFFieCtKTDdPOEF6Yy83cmliTkFtVjJ0cE1hT3hPb2NUCiAgICAgICAgIFpHREpTTWpVbmo2TGEwcFlVdTN2V1dmeWdSM1RzQnlKL2F1YzBZYVJVS0E4RDI0OFNRdEpLNVFyampscHFObE8vbExwCiAgICAgICAgIEk3MXc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWhVemdOQWQ1RVJKRUxjOHBHVUNvQWhtQzkrclRxNUkxQXBPdmxGb2VHTHdGWVNJelpZCgllZUlrTUx6WXo2RjJnbkU5V3V5dXhscThxR2J3dXV2RDFpS2pEK0hxUVE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQURLQ05iNVg0YVNVYkJkdm00Uk5NMWZvVlhLOTJZR2loS3lPbE5wbytBelZTeDBDclBkb00rMVI0em9TY1BCMzJENmNldUtPUEFITEx0NU1VUWNLUkxvM3lDRT0KWC1SZWNlaXZlZDogYnkgMTAuMjguMTUxLjIwMCB3aXRoIFNNVFAgaWQgejE5MW1yMTA1MTg2MndtZC4xMTUuMTUwNDg1MzYxMTYyMzsKIFRodSwgMDcgU2VwIDIwMTcgMjM6NTM6MzEgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKU2VuZGVyOiBhbmRlcnMuZy5oYW1tYXJAZ21haWwuY29tClJlY2VpdmVkOiBieSAxMC4yMjMuMTI5LjE5NSB3aXRoIEhUVFA7IFRodSwgNyBTZXAgMjAxNyAyMzo1MzozMSAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPDJmMTNhZTRmLTc1NGEtNDViMS01ODg4LTJmMzI1M2U0ODRmYUBhcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8Q0FLdVZ6QlMtVVJQY21pODFSMi14b0xSSmJQUWZCODg3Yi11K01OUGhCVGY3aFQ2RnlnQG1haWwuZ21haWwuY29tPgogPDJmMTNhZTRmLTc1NGEtNDViMS01ODg4LTJmMzI1M2U0ODRmYUBhcGFjaGUub3JnPgpGcm9tOiBBbmRlcnMgSGFtbWFyIDxhbmRlcnNAaGFtbWFyLm5ldD4KRGF0ZTogRnJpLCA4IFNlcCAyMDE3IDA4OjUzOjMxICswMjAwClgtR29vZ2xlLVNlbmRlci1BdXRoOiBKUnNvc04ycnp6RkFMcWxRU1VDSjFQbmV6WFkKTWVzc2FnZS1JRDogPENBS0RVTjF0dGlaN1JSamhmRXk2bV9XeWVUcHIxdnFDWXg4RDgzQ3ZhX0JoM1h4Qzd4UUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFVzZXJzIGNhbiBhc3NpZ24gRml4IFZlcnNpb24vcyBpbiBKaXJhClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDYzogVGlib3IgRGlnYW5hIDx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDUzYjIwZjViZTBmMDU1OGE4MDhiNCIKCi0tMDAxYTExNDUzYjIwZjViZTBmMDU1OGE4MDhiNApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKSSBhZ3JlZSwgaXQncyBmb3IgdXMgYXMgY29tbWl0dGVycyB0byBkZWNpZGUuCgovQW5kZXJzCgpPbiBGcmksIFNlcCA4LCAyMDE3IGF0IDg6NTEgQU0sIE1pY2hhZWwgT3NpcG92IDxtaWNoYWVsb0BhcGFjaGUub3JnPiB3cm90ZToKCj4gQW0gMjAxNy0wOS0wOCB1bSAwMDo0MiBzY2hyaWViIFRpYm9yIERpZ2FuYToKPgo+PiBJIGZvdW5kIG91dCB0aGF0IHVzZXJzIGNyZWF0ZSBhbiBpc3N1ZSBpbiBKaXJhIGFuZCAqYXNzaWduIHZlcnNpb24qIFsxXS4KPj4gSSByZW1lbWJlciB0aGlzIGRpZCBub3QgaGFwcGVuIGluIG9sZCBKaXJhLgo+PiBTbyBJIGRlY2lkZSB0byByZXBvcnQgYSB0aWNrZXQgaW4gSU5GUkEuCj4+Cj4+IERvIHlvdSBoYXZlIHRoZSBzYW1lIGV4cGVyaWVuY2VzPwo+PiBXaGF0J3MgeW91ciBvcGluaW9uIGFib3V0IGl0Pwo+Pgo+PiBbMV06IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvSU5GUkEtMTUwNDcKPj4KPgo+IFRoaXMgaXMgYW4gYW5ub3lpbmcgYnVnLiBJIGNvbnN0YW50bHkgcmVtb3ZlIHVzZXItYXNzaWduZWQgdmVyc2lvbiB3aGVuIEkKPiBzZWUgaXQsIGJlY2F1c2UgdGhpcyBkZWNpc2lvbiBzaG91bGQgb25seSBiZSB1cHRvIHVzLCBub3QgdGhlbS4KPgo+IE1pY2hhZWwKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCi0tMDAxYTExNDUzYjIwZjViZTBmMDU1OGE4MDhiNC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MDk2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBTZXAgMjQgMTg6NTA6MTAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDk2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEUyRDk5RjI2MQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDI0IFNlcCAyMDE3IDE4OjUwOjEwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzY1MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNCBTZXAgMjAxNyAxODo1MDoxMCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzU2MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNCBTZXAgMjAxNyAxODo1MDoxMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc1NTEgaW52b2tlZCBieSB1aWQgOTkpOyAyNCBTZXAgMjAxNyAxODo1MDoxMCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMjQgU2VwIDIwMTcgMTg6NTA6MTAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBBQjczOTE4MjYzNgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjQgU2VwIDIwMTcgMTg6NTA6MDkgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4zClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjMgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLAoJSEVBREVSX0ZST01fRElGRkVSRU5UX0RPTUFJTlM9MC4wMDEsIEhUTUxfTUVTU0FHRT0yLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgQmVsZDFLeVB3VldjIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAyNCBTZXAgMjAxNyAxODo1MDowMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdyMC1mMTc4Lmdvb2dsZS5jb20gKG1haWwtd3IwLWYxNzguZ29vZ2xlLmNvbSBbMjA5Ljg1LjEyOC4xNzhdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgOTExNTc1RkNEQQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjQgU2VwIDIwMTcgMTg6NTA6MDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd3IwLWYxNzguZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgbzQyc280NDgwMDQwd3JiLjMKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAyNCBTZXAgMjAxNyAxMTo1MDowMSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnNlbmRlcjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkCiAgICAgICAgIDpzdWJqZWN0OnRvOwogICAgICAgIGJoPVBNUEFYRXZEekdZb0I4VkMrR3JHUW9FRnhxTTdNd3p0ZW5hakhmOThhT2c9OwogICAgICAgIGI9TzlSdUxram1mZEJGR1EyMHh0UExMY2x1WVVQdTI0OVhZa3ViaHREK2RUZm45MzgxVnA1aGNYOVQ2V24vTnJuNjB2CiAgICAgICAgIHg1Y1FscFl0UjFVcEdDT29yMldMRW1NTFRkNW55RW1zR2xLZ3cyTS9aS2RoZTliZklyRmVpOWhMM0RmNzJFVU5wUGJmCiAgICAgICAgIFhYcWlLam9FQWVsYnArS1pPeFdOaklpM0psdmt5azZZbjVlU1l5ZnVEb0RLc25LbWRrOW90czhYM0krL3FUeWlwTTlRCiAgICAgICAgIHlJRXlkN2lFRC94amVIUVRxamY4VDJ0NnFqRDM5OWJ6TXc2WjN2aGVtdi9KUVZvRzl1TmNkLzRnRC9aTXgzUmNFWkpJCiAgICAgICAgIFBPZ1J0UUVXWnYwZ05ZQVRxVVZSVXR3ZUFVVERNdDI3YVgyS3ErbndpQUhrT3BmMHdDOWIxS2lIc2FqWW9RSm4zdE50CiAgICAgICAgIGZyZ1E9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpzZW5kZXI6aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tCiAgICAgICAgIDpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1QTVBBWEV2RHpHWW9COFZDK0dyR1FvRUZ4cU03TXd6dGVuYWpIZjk4YU9nPTsKICAgICAgICBiPVJkR0ZCa3F3WVhsSVZOMHNKMmxXS2FwM09wOHByMi9WcHNPWDBNZ2g2VUdVUFNlRVEwOU9qV3JDcVI5YXV5cExCeQogICAgICAgICA3NHNjVXNmNzJzRkIxZTRwREJFeG5CMjJWdGdJTEtyWWJUYWZvN3ByNXpadWNIdlBXbEVkWStkVDZWQlZ6Ni9oeUw5VgogICAgICAgICBERGkxL2lmZ25yK0VETWZMRjk0M1JFVVI2SXhibS9lQ2JXR1d0Z01Tc0xBUG9BUVVxRGYzSDlaSzMxcTZJMW1rVGRqMQogICAgICAgICBTcUsyWG1DcVMrRXFoQ282YUFUWDBiejhaRWp6SzRpYmNMRG5wbW5IQWNKdTVGQ0hkbHNTQVg1ZVArdy9UdHc0aHBJMwogICAgICAgICBrYlFpOVJEekNPWTBiRG5XdUxiQ24zeHhzRGhIWUVyMHlTUGdqOE83VVBsZXJRVXU4US9CUG1LbEkrV01iVGVPYjRDZwogICAgICAgICBVd1hnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVqdFR1cnMyVnpJTmNxNE85RDc0VG0zVDg5bVFGalpWaENjVHQ5Wm1RRjFhM0g2aVV4LwoJUkNDNDIwNlNVcDJIeWxzVk9oNzA4TDJQVlZrNGVtTUt1bU45V0pMVWp3PT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUFlajNXN1lTYXhEQ3Vjei9CWjRnTFE2c1daNG1Jcy9hUFVWL2ZwNkVNYTFFOURJSm5BWlNBWjRFNTJOelRYZFV0eFQ5R3pUWFd1YUY4UUFTMlZ3Nk09ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xMzUuMjUyIHdpdGggU01UUCBpZCBjNTdtcjM3Mzk1NTB3cmMuMjA0LjE1MDYyNzg5OTQ1NDM7CiBTdW4sIDI0IFNlcCAyMDE3IDExOjQ5OjU0IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClNlbmRlcjogYW5kZXJzLmcuaGFtbWFyQGdtYWlsLmNvbQpSZWNlaXZlZDogYnkgMTAuMjIzLjEzOS45MiB3aXRoIEhUVFA7IFN1biwgMjQgU2VwIDIwMTcgMTE6NDk6NTMgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxDQStuUG5NeEVjRkFDaGs4MGhzWnZHYVVDaDQ1QnJtdjMyK1l0bXJlNT1aY3lnVGNfX3dAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQStuUG5Nd01DcU9fRXRjQlc1XzNyTTcxLXRDcml0cDRVa3N5ZlBtREdBWXI2eHo9b1FAbWFpbC5nbWFpbC5jb20+CiA8RjFGOEIzQ0YtRERBQy00NEJBLUFFQjctNDEyMkM4ODdDNEFCQGhvbnRvbi5vcmc+IDxDQStuUG5Nd2ZfQmZ0WXVzLXJuUXJPN281K2R1R0Z6MFZFYTdOaW9oRzFfX1lVenJjNXdAbWFpbC5nbWFpbC5jb20+CiA8MTUwNTc5NjkwOC4yNTE2ODA4LjExMTA2NzMxMjguNjM1QUMzNUZAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgogPG9wLnk2dHRtcmVia2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPiA8Q0ErblBuTXhGRkVUUW1xdGUwLTUwdTNFRlN3Ymc2eWlwdzVWU0JkTFB3VHpQaGRWazV3QG1haWwuZ21haWwuY29tPgogPG9wLnk2dHY1a2Yza2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPiA8MTUwNTg1MzU0MC4zNDQzNDY1LjExMTE2MjA2NDAuMzMxQkU1OEFAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgogPENBK25Qbk16a052QkZfRmN0LUU9N3FmR1FmcEhVQktUMTljV0MzOFNDcXRxNmt2aWU5Z0BtYWlsLmdtYWlsLmNvbT4KIDwxNTA1ODY3Mzc0LjM0OTM4NDIuMTExMTc5NjUyMC41MTI0QUNBNkB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CiA8Q0ErblBuTXhxSGEzeUJSRldyK2lPRXNPbWhrWDhMY2djME00ZEc5c3l1Y0xzUGFMUjVBQG1haWwuZ21haWwuY29tPgogPG9wLnk2dXNldXd5a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPiA8MTUwNTkwNzg5Mi4yMjcyNDguMTExMjI4MjMxMi4wOTNEQThDNUB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+CiA8Q0ErblBuTXp1K1l2S1FYM3ZUPUFCa0szcGNHUC1NaHh0c2lva1QwQ3NrekFiak05eDdBQG1haWwuZ21haWwuY29tPgogPDE1MDYyNzU5MzEuMjA4MTg4MS4xMTE2NTY3ODcyLjQ1MkIyRjA0QHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4gPENBK25Qbk14RWNGQUNoazgwaHNadkdhVUNoNDVCcm12MzIrWXRtcmU1PVpjeWdUY19fd0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogQW5kZXJzIEhhbW1hciA8YW5kZXJzQGhhbW1hci5uZXQ+CkRhdGU6IFN1biwgMjQgU2VwIDIwMTcgMjA6NDk6NTMgKzAyMDAKWC1Hb29nbGUtU2VuZGVyLUF1dGg6IHlnb2lWdzhiT0VGLURsWWx2ZkZvZDF0bmdnRQpNZXNzYWdlLUlEOiA8Q0FLRFVOMXUwZG0ybzMyVC1QaEg2eTFzNl9UaFk5TlVGQjdVYzdZLVIwaWl6Q3hrSzFRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogVW5kZXJzdGFuZGluZyBNTkctNjIwOSAod2FzOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEpClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQ5ODk4NjY3MDZjNjA1NTlmM2U4MjAiCgotLTAwMWExMTQ5ODk4NjY3MDZjNjA1NTlmM2U4MjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKVG8gYWRkIHRvIHRoZSB0b3BpYyBJIHRoaW5rIHRoYXQgaWYgd2UgZml4L2NoYW5nZSB0aGUgY2xhc3MgbG9hZGluZywgd2UKc2hvdWxkbid0IGRvIHRoYXQgaW4gYSBidWcgZml4IHJlbGVhc2UuIEknZCByYXRoZXIgc2VlIGEgMy42LjAgd2l0aCBpdAp0aG91Z2h0IHRocm91Z2gsIGZpeGVkIGFuZCBkb2N1bWVudGVkIChjb3VsZCBiZSBpbiBJVHMpLiBUaGUgYXJndWluZyBiZWluZwp0aGF0IGEgYnVnIGZpeCByZWxlYXNlIHNob3VsZG4ndCBjYXVzZSBuZXcgaXNzdWVzIGluIHBsdWdpbnMgZXRjLgoKL0FuZGVycwoKT24gU3VuLCBTZXAgMjQsIDIwMTcgYXQgODoyOCBQTSwgU3RlcGhlbiBDb25ub2xseSA8CnN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgoKPiBJIHdvbmRlciBzaG91bGQgd2UgZG8gYSBoYW5nb3V0IHRvIGRlY2lkZSB3aGF0IHlvdSBkbz8KPgo+IFdoYXQgdGltZXMgb24gTW9uZGF5IHdvcmsgYmVzdD8KPgo+IEkgY2FuIG1heWJlIGRvIDg6MzAtOTozMHBtIElyaXNoIHRpbWUKPgo+IGh0dHBzOi8vd3d3LnRpbWVhbmRkYXRlLmNvbS93b3JsZGNsb2NrL21lZXRpbmdkZXRhaWxzLgo+IGh0bWw/eWVhcj0zRDIwMTcmbW9udGg9M0Q5JmRheT0zRDI1JmhvdXI9M0QxOSZtaW49M0QzMCZzZWM9M0QwJnAxPTNENzgmcDI9Cj0zRDM3JnAzPTNEMTc5Cj4KPiBCdXQgd2U9RTI9ODA9OTlkIG5lZWQgdG8gZGVjaWRlIHdobyB3ZSBuZWVkIGFuZCBhbiBhY3R1YWwgYWdlbmRhLgo+Cj4gSWYgTW9uZGF5IGlzIHRvbyBzb29uIEkgY2FuIHNlZSBpZiBJIGhhdmUgYSB3aW5kb3cgbGF0ZXIgdGhpcyB3ZWVrCj4KPiBPbiBTdW4gMjQgU2VwIDIwMTcgYXQgMTg6NTgsIElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY29tPiB3cm90ZToKPgo+ID4gU2VlIG15IGFuc3dlcnMvY29tbWVudHMgaW5saW5lCj4gPgo+ID4KPiA+IE9uIFN1biwgU2VwIDI0LCAyMDE3LCBhdCAxMjowNyBQTSwgU3RlcGhlbiBDb25ub2xseSB3cm90ZToKPiA+ID4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9taW5pL2d1aWRlLW1hdmVuLWNsYXNzbG9hZGluZy5odG1sCj4gc2F5czoKPiA+ID4KPiA+ID4gPiBXaGVuIGEgYnVpbGQgcGx1Z2luIGlzIGV4ZWN1dGVkLCB0aGUgdGhyZWFkJ3MgY29udGV4dCBjbGFzc2xvYWRlciBpPQpzCj4gPiBzZXQKPiA+ID4gdG8gdGhlIHBsdWdpbiBjbGFzc2xvYWRlci4KPiA+ID4KPiA+ID4gU28gd2UnbGwgbmVlZCB0byBmaXggc29tZXRoaW5nIHNvbWV3aGVyZS4uLgo+ID4gPgo+ID4gPgo+ID4gaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uLwo+IG1hdmVuL2NvbnRlbnQvcmVmZXJlbmNlL21hdmVuLWNsYXNzbG9hZGluZy5odG1sCj4gPiA+IGlzIHVuYWNjZXNzaWJsZSBmcm9tIHRoZSB3ZWJzaXRlIGR1ZSB0byBhIHJld3JpdGUgcnVsZS4uLgo+ID4gPgo+ID4gPiBUaGluZ3MgdGhhdCBzZWVtIHRvIGJlIG1pc3Npbmc6Cj4gPiA+Cj4gPiA+ICogV2hhdCBpcyB0aGUgZGVzaXJlZCBjbGFzc2xvYWRpbmcgZm9yIGEgcGx1Z2luIHRoYXQgaXMgbWFya2VkIGFzIGFuCj4gPiA+IGV4dGVuc2lvbj8gQ2FuIGEgcGx1Z2luIGhhdmUgYSBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sIHRvIGFsbG93Cj4gPiA+IGV4cG9ydGluZyBjbGFzc2VzIGFuZCBhcnRpZmFjdHMgd2hlbiB1c2VkIGFzIGFuIGV4dGVuc2lvbj8gSG93IHNob3VsZAo+IHRoZQo+ID4gPiBjbGFzc2xvYWRpbmcgbG9vayBmb3Igc3VjaCBhIHN0cmFuZ2UgYmVhc3QuCj4gPgo+ID4gVG8gbWUsIHRoZSBrZXkgcmVxdWlyZW1lbnQgaXMgdGhhdCBAU2luZ2xldG9uIGNvbXBvbmVudHMgYW5kIGNsYXNzCj4gPiBzdGF0aWMgbWVtYmVycyBhcmUgc2luZ2xldG9ucyB3aGVuIGluamVjdGVkIGluIE1hdmVuIGNvcmUgb3IgaW4gQE1vam9zLgo+ID4gVGhpcyBpbXBsaWVzIHRoYXQgdGhlcmUgc2hvdWxkIGJlIHNpbmdsZSBjbGFzc2xvYWRlciByZXByZXNlbnRpbmcgYW4KPiA+IGV4dGVuc2lvbnMgcGx1Z2lucyAoTU5HLTU3NDIpLgo+ID4KPiA+IE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgZGVjbGFyZXMgd2hhdCBwYWNrYWdlcyBvZiB0aGUgZXh0ZW5zaW9uCj4gPiBwbHVnaW4gYXJlIHZpc2libGUgdG8gb3RoZXIgKG5vbiBleHRlbnNpb24pIHBsdWdpbnMuCj4gPiBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sIGRvZXMgbm90IGFmZmVjdCBjbGFzc2xvYWRpbmcgb2YgdGhlCj4gPiBleHRlbnNpb24gcGx1Z2luIG5vciBpdCBhZmZlY3RzIHRoZSAic2hhcGUiIG9mIG90aGVyIGNsYXNzbG9hZGVycy4KPiA+Cj4gPiA+ICogSG93IGRvZXMgb25lIGFjY2VzcyB0aGUgcGx1Z2luIGNsYXNzbG9hZGVyIGlmIHdlIHdhbnQgVENDTCB0byBiZQo+IG90aGVyCj4gPiA+IHRoYW4gdGhhdCwgaXMgaXQgYSBEZXBlbmRlbmN5IEluamVjdGlvbiBvciBzb21ldGhpbmcgZWxzZT8KPiA+Cj4gPiB0aGlzLmdldENsYXNzKCkuZ2V0Q2xhc3NMb2FkZXIoKSBpcyB0aGUgbW9zdCBkaXJlY3Qgd2F5IHRvIGFjY2VzcyBwbHVnaT0Kbgo+ID4gY2xhc3Nsb2FkZXIuIFdoeSBkbyB5b3UgdGhpbmsgd2UgbmVlZCBhbnl0aGluZyBtb3JlIGVsYWJvcmF0ZT8KPiA+Cj4gPgo+ID4gPiAqIFdoYXQgZGlmZmVyZW50aWF0ZXMgYSBDb3JlIGV4dGVuc2lvbiBmcm9tIGEgQnVpbGQgZXh0ZW5zaW9uIChpcyBpdAo+IHRoYXQKPiA+ID4gYQo+ID4gPiBidWlsZCBleHRlbnNpb24gbGFja3MgYSBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sIGFuZCB3YXMgb25seQo+ID4gPiBkZWNsYXJlZAo+ID4gPiBpbiB0aGUgcG9tLnhtbCwgd2hpbGUgYSBjb3JlIGV4dGVuc2lvbiBlaXRoZXIgaGFzIGEKPiA+ID4gTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCAtIGlmIGRlY2xhcmVkIGluIHRoZSBwb20gLSBvciBpcyBhbgo+ID4gPiBleHRlbnNpb24KPiA+ID4gZGVjbGFyZWQgaW4gLm12bi9leHRlbnNpb25zLnhtbCkKPiA+Cj4gPiBDb3JlIGV4dGVuc2lvbnMgYXJlIGxvYWRlZCAqYmVmb3JlKiBidWlsZCBzdGFydHMsIHNvIHRoZXkgY2FuIGNvbnRyaWJ1dD0KZQo+ID4gQWJzdHJhY3RNYXZlbkxpZmVjeWNsZVBhcnRpY2lwYW50I2FmdGVyU2Vzc2lvblN0YXJ0LCBmb3IgZXhhbXBsZS4gVGhleQo+ID4gY2FuIGFsc28gZXhwb3J0IHBhY2thZ2VzIHZpc2libGUgdG8gYWxsIGJ1aWxkIHBsdWdpbnMsIGluY2x1ZGluZwo+ID4gZXh0ZW5zaW9ucz0zRHRydWUuIE9uIHRoZSBmbGlwIHNpZGUsIGVhY2ggY29yZSBleHRlbnNpb24gaXMgZWZmZWN0aXZlbHkKPiA+IHNpbmdsZXRvbiwgeW91IGNhbid0IGhhdmUgdHdvIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGUgc2FtZSBDb3JlCj4gPiBleHRlbnNpb24uIENvcmUgZXh0ZW5zaW9ucyBhbHNvIGhhdmUgZGlyZWN0IGFjY2VzcyB0byBNYXZlbiBjb3JlIGNsYXNzZT0Kcwo+ID4gYW5kIGNhbiBkbyBtb3JlIGludGVyZXN0aW5nIHRoaW5ncyB0aGVyZSAoZm9yIGJldHRlciBvciB3b3JzZSkuCj4gPgo+ID4gQnVpbGQgZXh0ZW5zaW9ucyBhcmUgcGFydCBvZiB0aGUgcHJvamVjdCBidWlsZCBhbmQgYXMgc3VjaCBhcmUgbGltaXRlZAo+ID4gd2hhdCBjb21wb25lbnRzIHRoZXkgY2FuIGNvbnRyaWJ1dGUgdG8gdGhlIENvcmUgYW5kIHdoYXQgY29yZSBjbGFzc2VzCj4gPiB0aGV5IGhhdmUgYWNjZXNzIHRvLgo+ID4KPiA+IEkgdHJpZWQgdG8gY2FwdHVyZSB0aGlzIGluIHRoZSBkaWFncmFtIEkgZHJldyBmb3IKPiA+IGh0dHA6Ly90YWthcmkuaW8vYm9vay85MS1tYXZlbi1jbGFzc2xvYWRpbmcuaHRtbC4KPiA+Cj4gPiA+IEF0IHRoaXMgcG9pbnQgaW4gdGltZSBJIHRoaW5rIHdlIGFyZSBuZWFyaW5nIHRoZSBwb2ludCB3aGVyZSBJIG1heSBoYT0KdmUKPiA+ID4gdG8KPiA+ID4gZGVjbGFyZSAzLjUuMSBhYmFuZG9uZWQgYXMgSSB0aGluayB0aGUgY2xhc3Nsb2FkaW5nIGluIHRoYXQgaXMgYQo+IHN5bXB0b20KPiA+ID4gb2YKPiA+ID4gdG9vIG1hbnkgY29va3MgYWxsIGNoYW5naW5nIHRoaW5ncyBpbiBkaWZmZXJlbnQgZGlyZWN0aW9ucy4gV2UgbmVlZCBhCj4gPiA+IGNvbnNpc3RlbnQgdmlzaW9uIG9mIHdoZXJlIHdlIHdhbnQgdGhpbmdzIHRvIGdvIGFuZCAtIHdoaWxlIHdlIG5lZWQgbj0Kb3QKPiA+ID4gZ2V0Cj4gPiA+IHRoZXJlIGluIG9uZSBnbyAtIHRoZSBwYXRoIHByZXNlbnRlZCBmb3Igb3RoZXJzIHRvIHNlZS4KPiA+Cj4gPiBUaGVyZSB3ZXJlIHR3byBjbGFzc2xvYWRpbmcgY2hhbmdlcyBpbiAzLjUuMSwgbmFtZWx5IGV4dGVuc2lvbnM9M0R0cnVlCj4gPiBwbHVnaW5zIG5vdyBoYXZlIHByb2plY3QgcmVhbG0gYXMgVENDTCBhbmQgYWxsIHJlYWxtcyBub3cgdXNlCj4gPiBhcHBsaWNhdGlvbiBjbGFzc2xvYWRlciBhcyB0aGUgcGFyZW50LiBBcGFydCBmcm9tIGxhY2tpbmcgZG9jdW1lbnRhdGlvbj0KLAo+ID4gd2hhdCBwcmFjdGljYWwgcHJvYmxlbXMgaGF2ZSBiZWVuIGNhdXNlZCBieSB0aGVzZSB0d28gY2hhbmdlcz8KPiA+Cj4gPiA+Cj4gPiA+IFRoaW5ncyBJIHRoaW5rIHdlIHNob3VsZCBjb25zaWRlcjoKPiA+ID4KPiA+ID4gMS4gRG8gd2Ugd2FudCB0byBmb3JtYWxseSBkZXByZWNhdGUgQnVpbGQgRXh0ZW5zaW9ucyBhbmQgdGhlCj4gPiA+IC9wcm9qZWN0L2J1aWxkL2V4dGVuc2lvbnMgZWxlbWVudCAoc3RhcnQgbG9nZ2luZyB3YXJuaW5ncywgZXRjKT8KPiA+ID4gMi4gRG8gd2Ugd2FudCB0byBmb3JtYWxseSBkZXByZWNhdGUgcGx1Z2lucyBhcyBleHRlbnNpb25zIGFuZCBzdGFydAo+ID4gPiBsb2dnaW5nCj4gPiA+IHdhcm5pbmdzIGZvcgo+ID4gPgo+ID4gL3Byb2plY3QvYnVpbGQvKHBsdWdpbk1hbmFnZW1lbnR8LikvcGx1Z2lucy9wbHVnaW4vZXh0ZW5zaW9uc1t0ZXh0KCk9M0Q9Cj0zRAo+IHRydWVdCj4gPgo+ID4gSSdkIGtlZXAgdGhlbSBib3RoLCBhbmQgbWF5YmUgZml4L3JlbW92ZSBtYXZlbjItY29tcGF0IGNvZGVwYXRoLiBJZiBJCj4gPiBoYWQgdG8gY2hvb3NlIGJldHdlZW4gdGhlIHR3bywgaG93ZXZlciwgSSdkIGNob29zZSA8cGx1Z2luPiB3aXRoCj4gPiBleHRlbnNpb25zPTNEdHJ1ZS4gVGhpbmsgb2YgYSBjdXN0b20gcGFja2FnaW5nIHR5cGUgd2l0aCBtb2pvcyB0aGUgdXNlcgo+ID4gd2FudHMgdG8gY29uZmlndXJlIGluIHBvbS54bWwsIGl0J2QgYmUgbW9yZSB0ZWRpb3VzIHRvIGNvbmZpZ3VyZSBpZiBJCj4gPiBoYWQgdG8gYWRkIGJ1aWxkL2V4dGVuc2lvbiBhbmQgYnVpbGQvcGx1Z2luLgo+ID4KPiA+ID4gMy4gV2hhdCBpcyB0aGUgZGlmZmVyZW5jZSBpbiBjbGFzc2xvYWRpbmcgZm9yIGEKPiAvcHJvamVjdC9idWlsZC9leHRlbnNpb25zCj4gPiA+IHdoaWNoIGhhcyBhIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgYW5kIG9uZSB0aGF0IGRvZXNuJ3Q/Cj4gPgo+ID4gSSB0aGluayBleHRlbnNpb25zIHdpdGggTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCBzaG91bGQgbm90IGdvCj4gPiB0aHJvdWdoIG1hdmVuMi1jb21wYXQgY29kZXBhdGguIEluIG90aGVyIHdvcmRzLCB3ZSBuZWVkIHRvIGNoYW5nZSB0aGUKPiA+IGN1cnJlbnQgYmVoYXZpb3VyLgo+ID4KPiA+IEV4dGVuc2lvbnMgd2l0aG91dCBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sLi4uIEkgYW0gbm90IHN1cmUuCj4gPiBQcm9iYWJseSBzYWZlciB0byBrZWVwIHRoZSBjdXJyZW50IG1hdmVuMi1jb21wYXQgYmVoYXZpb3VyLgo+ID4KPiA+ID4gSSdtIGtlZXBpbmcgdGhlIDMuNS4xIHJlbGVhc2UgaW4gc3RhZ2luZyB1bnRpbCB3ZSBnZXQgYSBjbGVhciB2aXNpb24KPiBmb3IKPiA+ID4gaG93IHdlIHdhbnQgdG8gaGF2ZSBjbGFzc2xvYWRpbmcgc28gdGhhdCBJIGNhbiBhc3Nlc3Mgd2hldGhlciB0aGUgMy41PQouMQo+ID4gPiBhY3R1YWxpdHkgaXMgb25seSBtb3ZpbmcgbmVhcmVyIHRvIHRoZSB2aXNpb24gKG9rIHRvIHJlbGVhc2UpIG9yIGhhcwo+ID4gPiBtb3ZlZAo+ID4gPiBuZWFyZXIgaW4gc29tZSB3YXlzIGJ1dCBmdXJ0aGVyIGluIG90aGVycyAobm90IG9rIHRvIHJlbGVhc2UpCj4gPiA+Cj4gPgo+ID4KPiA+IC0tCj4gPiBSZWdhcmRzLAo+ID4gSWdvcgo+ID4KPiA+Cj4gPgo+ID4gPiBPbiAyMCBTZXB0ZW1iZXIgMjAxNyBhdCAxMjo0NCwgSWdvciBGZWRvcmVua28gPGlnb3JAaWZlZG9yZW5rby5jb20+Cj4gPiA+IHdyb3RlOgo+ID4gPgo+ID4gPiA+IFJlYWwtd29ybGQgc2NtIG9yIHdhZ29uIDxleHRlbnNpb25zPiB3b24ndCB0cmlnZ2VyIG1hdmVuMi1jb21wYXQgY289CmRlCj4gPiA+ID4gcGF0aCBbMV0uIFRvIGF2b2lkIHRoYXQgb2JzY3VyZSBjb2RlIHBhdGggd2UgY2FuIGVpdGhlciBtYWtlIHRoZSB0ZT0Kc3QKPiA+ID4gPiBtb3JlIGVsYWJvcmF0ZSAoaS5lLiBhZGQgZGVwZW5kZW5jaWVzIHRvIGV4dGphcjEvZXh0amFyMikgb3Igd2UgY2FuCj4gdXNlCj4gPiA+ID4gZXh0ZW5zaW9ucyA8cGx1Z2luPi4gRWl0aGVyIHdheSBJIGRvbid0IHRoaW5rIHdlIHNob3VsZCBzcGVuZCB0aW1lID0Kb24KPiA+ID4gPiB0aGUgY29kZSBwYXRoIHVubGlrZWx5IHRvIGJlIHVzZWQgaW4gcmVhbCBsaWZlLgo+ID4gPiA+Cj4gPiA+ID4gWzFdCj4gPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9ibG9iL21hdmVuLTMuNS4xL21hdmVuLQo+ID4gPiA+Cj4gPiBjb3JlL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9wcm9qZWN0Lwo+IERlZmF1bHRQcm9qZWN0QnVpbGRpbmdIZWxwZXIuCj4gPiA+ID4gamF2YSNMMjEwLUwyMTkKPiA+ID4gPgo+ID4gPiA+IC0tCj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiBJZ29yCj4gPiA+ID4KPiA+ID4gPiBPbiBXZWQsIFNlcCAyMCwgMjAxNywgYXQgMDM6MjkgQU0sIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+ID4gPiA+ID4gT24gV2VkLCAyMCBTZXAgMjAxNyAwOToxMjo0NyArMDIwMCwgU3RlcGhlbiBDb25ub2xseQo+ID4gPiA+ID4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gT24gV2VkIDIwIFNlcCAyMDE3IGF0IDAxOjI5LCBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvPQptCj4gPgo+ID4gPiA+IHdyb3RlOgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPj4gSW4gdGhhdCBjYXNlLCBjYW4gSSBzdWdnZXN0IGNvdXBsZSBvZiBjaGFuZ2VzIHRvIHRoZSB0ZXN0Cj4gcHJvamVjdAo+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4+ICogSSB0aGlua3MgaXQgbWFrZXMgbW9yZSBzZW5zZSB0byBjb25maWd1cmUgZXh0amFyMSBhbmQgZXh0amFyPQoyCj4gYXMKPiA+ID4gPiA+ID4+IGV4dGVuc2lvbnMgPHBsdWdpbj4gZWxlbWVudHMgaW4gcHJvYmxlTiBwb20ueG1sIGZpbGVzLiBGaXJzdCwKPiA+IHRoZXJlIGlzCj4gPiA+ID4gPiA+PiBubyBtZWFuaW5nZnVsIG9yZGVyIGJldHdlZW4gPGV4dGVuc2lvbnM+IGFuZCA8cGx1Z2lucz4gZWxlbWVudD0Kcy4KPiA+IE1vcmUKPiA+ID4gPiA+ID4+IGltcG9ydGFudGx5LCB0aG91Z2gsIHNpbXBsZSA8ZXh0ZW5zaW9ucz4gYXJlIHRyZWF0ZWQgaW4gc3BlY2lhPQpsCj4gPiA+ID4gPiA+PiBtYXZlbjItY29tcGF0IG1vZGUgYW5kIGFyZSBub3QgcmVwcmVzZW50YXRpdmUgb2YgbGlrZWx5Cj4gcmVhbC13b3JsZAo+ID4gPiA+ID4gPj4gZXh0ZW5zaW9ucy4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBOb3Qgc3VyZSBJIGFncmVlIHdpdGggdGhpcy4gSSB0aGluayB0aGVyZSBhcmUgamFycyB3b3J0aCBzaGFyaW5nCj4gPiBhY3Jvc3MKPiA+ID4gPiA+IG11bHRpcGxlIHBsdWdpbnMsIGJ1dCB3aGVyZSBtYWtpbmcgdGhlIHBsdWdpbiBhbiBleHRlbnNpb24gaXMgYSBiPQppdAo+ID4gPiA+ID4gd2VpcmQuCj4gPiA+ID4gPiBJJ20gdGhpbmtpbmcgb2Ygc2NtIGFuZCB3YWdvbiBpbiB0aGlzIGNhc2UuCj4gPiA+ID4gPgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBUaGF0IHNvdW5kcyBsaWtlIHdlIG5lZWQgZG9jdW1lbnRhdGlvbiB1cGRhdGVkIHRoZW4uIE5vbmUgb2YgdGg9CmF0Cj4gPiBpcwo+ID4gPiA+ID4gPiBvYnZpb3VzIHRvIG1lLgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4+ICogSSB0aGluayB3ZSBzaG91bGQgaW50cm9kdWNlIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgdG8KPiB0aGUKPiA+IHRlc3QKPiA+ID4gPiA+ID4+IGV4dGVuc2lvbnMuIFRoaXMgbWV0YWRhdGEgd2hhdCBpbnRyb2R1Y2VkIHRvIGNvbmZpZ3VyZSBjbGFzc3BhPQp0aAo+ID4gPiA+ID4gPj4gdmlzaWJpbGl0eSwgc28gbGV0cyB1c2UgaXQuCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IEFnYWluLCBub3Qgb2J2aW91cyB0byBtZSwgaWYgdGhhdCBmaWxlIGFsbG93cyBjb250cm9sIG9mCj4gY2xhc3NwYXRoCj4gPiA+ID4gPiA+IHZpc2liaWxpdHkgdGhlbiBpdCBtYXkgYmUgdGhhdCB0aGUgb25seSBpc3N1ZSAqd2l0aCogMy41LjEgaXMgdD0KaGUKPiA+IGxhY2sKPiA+ID4gPiBvZgo+ID4gPiA+ID4gPiBkb2N1bWVudGF0aW9uLi4uIG5vdyBwcmV2aW91cyB2ZXJzaW9ucyB3b3VsZCBoYXZlIGJlZW4gYWRkaW5nCj4gPiBicmVha2luZwo+ID4gPiA+ID4gPiBjaGFuZ2VzIGZyb20gbXkgUG9WIGJ1dCB0aGF0IGlzIHRoZSBwYXN0IGFuZCBzaG91bGQgbm90IGFmZmVjdAo+IHRoZQo+ID4gPiA+IDMuNS4xCj4gPiA+ID4gPiA+IHJlbGVhc2UuCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFBScyBmb3IgdGhlIHByb2JlIHByb2plY3Qgd2VsY29tZS4gSSBhbSBoYXBweSB0byB0cnkgYW5kIHdyaXRlCj4gZG9jcwo+ID4gPiA+IG9uY2UKPiA+ID4gPiA+ID4gSQo+ID4gPiA+ID4gPiBoYXZlIGFuIHVuZGVyc3RhbmRpbmcgb2Ygd2hhdCB0aGUgZXhwZWN0ZWQgYmVoYXZpb3VycyBhcmUKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+PiAtLQo+ID4gPiA+ID4gPj4gUmVnYXJkcywKPiA+ID4gPiA+ID4+IElnb3IKPiA+ID4gPiA+ID4+Cj4gPiA+ID4gPiA+PiBPbiBUdWUsIFNlcCAxOSwgMjAxNywgYXQgMDU6MTIgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgd3JvdGU6Cj4gPiA+ID4gPiA+PiA+IFllcywgdGhlIGV4cGVjdGF0aW9ucyBhcmUga2V5LiBEZXBlbmRpbmcgb24gd2hhdCB0aGV5IGFyZSB3ZQo+IG1heQo+ID4gPiA+ID4gPj4gZWl0aGVyCj4gPiA+ID4gPiA+PiA+IGRyb3AgMy41LjEgb3IgZ28gYWhlYWQgYXMgaXQgZGVwZW5kcyBvbiB3aGV0aGVyIHRoaXMgaXMgbW9yZQo+ID4gY29ycmVjdAo+ID4gPiA+ID4gPj4gdGhhbgo+ID4gPiA+ID4gPj4gPiAzLjUuMCBvciBzd2FwcGluZyBvbmUgZml4IGZvciBhIGJ1Zwo+ID4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPj4gPiBPbiBUdWUgMTkgU2VwIDIwMTcgYXQgMjE6MzksIElnb3IgRmVkb3JlbmtvIDwKPiA+IGlnb3JAaWZlZG9yZW5rby5jb20+Cj4gPiA+ID4gPiA+PiB3cm90ZToKPiA+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4+ID4gPiBKdXN0IHRvIGNvbmZpcm0gSSB1bmRlcnN0YW5kIHdoYXQgd2UgYXJlIHRyeWluZyB0byBlc3RhYmxpPQpzaAo+ID4gaGVyZS4KPiA+ID4gPiA+ID4+IFdlCj4gPiA+ID4gPiA+PiA+ID4gd2FudCB0byBkZWNpZGUgdGhlIGV4cGVjdGVkL2Rlc2lyZWQgY29tcG9uZW50IGluamVjdGlvbgo+ID4gYmVoYXZpb3VyCj4gPiA+ID4gPiA+PiBhbmQKPiA+ID4gPiA+ID4+ID4gPiBjbGFzc3BhdGggdmlzaWJpbGl0eSBpbiB0aGUgYWJzZW5jZSBvZiBwYWNrYWdlIGFuZCBhcnRpZmFjPQp0Cj4gPiBleHBvcnQKPiA+ID4gPiA+ID4+ID4gPiBjb25maWd1cmF0aW9uIChpLmUuIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgZmlsZSkuIERpPQpkCj4gSQo+ID4gZ2V0Cj4gPiA+ID4gPiA+PiB0aGlzCj4gPiA+ID4gPiA+PiA+ID4gcmlnaHQ/Cj4gPiA+ID4gPiA+PiA+ID4KPiA+ID4gPiA+ID4+ID4gPiAtLQo+ID4gPiA+ID4gPj4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4gPiA+PiA+ID4gSWdvcgo+ID4gPiA+ID4gPj4gPiA+Cj4gPiA+ID4gPiA+PiA+ID4gT24gVHVlLCBTZXAgMTksIDIwMTcsIGF0IDAzOjUyIFBNLCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPiA+ID4gPiA+ID4+ID4gPiA+IExldCdzIGRvIGl0IGxpa2UgdGhpczoKPiA+ID4gPiA+ID4+ID4gPiA+Cj4gPiA+ID4gPiA+PiA+ID4KPiA+ID4gPiA+ID4+IGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rvd25sb2FkLwo+IGF0dGFjaG1lbnRzLzIzMjk4NDEvCj4gPiA+ID4gY2xhc3NyZWFsbXMucGRmP2FwaT0zRHYyCj4gPiA+ID4gPiA+PiA+ID4gPgo+ID4gPiA+ID4gPj4gPiA+ID4gUm9iZXJ0Cj4gPiA+ID4gPiA+PiA+ID4gPgo+ID4gPiA+ID4gPj4gPiA+ID4gT24gVHVlLCAxOSBTZXAgMjAxNyAyMTowODozOSArMDIwMCwgU3RlcGhlbiBDb25ub2xseQo+ID4gPiA+ID4gPj4gPiA+ID4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiA+ID4gPj4gPiA+ID4KPiA+ID4gPiA+ID4+ID4gPiA+ID4gSSB0aGluayB5b3Ugd2lsbCBuZWVkIGEgbGluayB0byB0aGUgUERGIGFzIGF0dGFjaG1lbnRzCj4gYXJlCj4gPiA+ID4gPiA+PiBzdHJpcHBlZAo+ID4gPiA+ID4gPj4gPiA+IGZyb20KPiA+ID4gPiA+ID4+ID4gPiA+ID4gdGhlIE1MCj4gPiA+ID4gPiA+PiA+ID4gPiA+Cj4gPiA+ID4gPiA+PiA+ID4gPiA+IE9uIFR1ZSAxOSBTZXAgMjAxNyBhdCAxOTo1NywgUm9iZXJ0IFNjaG9sdGUKPiA+ID4gPiA+ID4+IDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KPiA+ID4gPiA+ID4+ID4gPiB3cm90ZToKPiA+ID4gPiA+ID4+ID4gPiA+ID4KPiA+ID4gPiA+ID4+ID4gPiA+ID4+IEF0dGFjaGVkIGEgc2luZ2xlIHBhZ2Ugb3ZlcnZpZXcuCj4gPiA+ID4gPiA+PiA+ID4gPiA+Pgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gUGVyIGJsb2NrIHlvdSdsbCBzZWUgaW4gdGhlIHVwcGVyIGxlZnQgY29ybmVyIHRoZQo+ID4gZXhlY3V0ZWQKPiA+ID4gPiA+ID4+IHBsdWdpbgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gVGhlIGxlZnQgY29sdW1uIGNvbnRhaW5zIHRoZSBleHRlbnNpb25zIGFuZCBwbHVnaW4gaW4KPiA+IG9yZGVyYXMKPiA+ID4gPiA+ID4+ID4gPiBzcGVjaWZpZWQKPiA+ID4gPiA+ID4+ID4gPiA+ID4+IGluCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiB0aGUgcG9tLnhtbAo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gSW4gZXZlcnkgY2xhc3Nsb2FkZXJjb2x1bW4geW91J2xsIHNlZSBudW1iZXJzIHdoaWNoCj4gPiByZXByZXNlbnQKPiA+ID4gPiA+ID4+IHRoZQo+ID4gPiA+ID4gPj4gPiA+IG9yZGVyLgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4KPiA+ID4gPiA+ID4+ID4gPiA+ID4+IEkgaG9wZSBJIGRpZG4ndCBtYWtlIGFueSBtaXN0YWtlcy4KPiA+ID4gPiA+ID4+ID4gPiA+ID4+IFRvbW9ycm93IEkgaGF2ZSBlbm91Z2ggdGltZSB0byBzZWUgaWYgSSB1bmRlcnN0YW5kCj4gd2hhdCdzCj4gPiA+ID4gPiA+PiBoYXBwZW5pbmcKPiA+ID4gPiA+ID4+ID4gPiA+ID4+IGhlcmUuCj4gPiA+ID4gPiA+PiA+ID4gPiA+Pgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gSSB3aWxsIGNvbWUgYmFjayB3aXRoIG15IGNvbmNsdXNpb25zLgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4KPiA+ID4gPiA+ID4+ID4gPiA+ID4+IFJvYmVydAo+ID4gPiA+ID4gPj4gPiA+ID4gPj4KPiA+ID4gPiA+ID4+ID4gPiA+ID4+IE9uIFR1ZSwgMTkgU2VwIDIwMTcgMDY6NTU6MDggKzAyMDAsIElnb3IgRmVkb3JlbmtvIDwKPiA+ID4gPiA+ID4+ID4gPiBpZ29yQGlmZWRvcmVua28uY29tPgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gd3JvdGU6Cj4gPiA+ID4gPiA+PiA+ID4gPiA+Pgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBUTDtEUiB5b3VyIHRlc3QgcHJvamVjdCBleHBvc2VkIHR3byBleGlzdGluZyBidWdzLAo+IG9uZQo+ID4gPiA+ID4gPj4gY2hhbmdlIGluCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGJlaGF2aW91ciBhbmQgb25lIHF1aXJrIEkgY2FuJ3QgZXhwbGFpbgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIEJ1aWxkIGA8ZXh0ZW5zaW9ucz5gIGFyZSBsb2FkZWQgYnkgdHdvCj4gY2xhc3Nsb2FkZXJzLAo+ID4gPiA+IHdoaWNoCj4gPiA+ID4gPiA+PiBpcwo+ID4gPiA+ID4gPj4gYQo+ID4gPiA+ID4gPj4gPiA+IGJ1Zwo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gaW4KPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gRGVmYXVsdFByb2plY3RCdWlsZGluZ0hlbHBlciNjcmVhdGVQcm9qZWN0UmVhbG0gYW5kCj4gPiA+ID4gZXhwbGFpbnMKPiA+ID4gPiA+ID4+IHdoeSB5b3UKPiA+ID4gPiA+ID4+ID4gPiA+ID4+IHNlZQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBleHRqYXIxL2V4dGphcjIgaW4gdGhlIG91dHB1dAo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIENsYXNzUmVhbG0gZG9lcyBub3QgYWxsb3cgc2FtZSBmb3JlaWduLWltcG9ydCBmcm89Cm0KPiA+ID4gPiBtdWx0aXBsZQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBjbGFzc2xvYWRlcnMsIHdoaWNoIGlzIGEgYnVnIGFuZCBleHBsYWlucyB3aHkgaXQgaXMKPiBub3QKPiA+ID4gPiA+ID4+IHBvc3NpYmxlIHRvCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiBsb2FkCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IHNhbWUgcmVzb3VyY2UgZnJvbSBtdWx0aXBsZSBwbHVnaW5zL2V4dGVuc2lvbnMKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gKiBUQ0NMIGRvZXMgbm90IGhhdmUgYWNjZXNzIHRvIHByaXZhdGUgKGkuZS4gbm90Cj4gPiBleHBvcnRlZCkKPiA+ID4gPiA+ID4+IHJlc291cmNlcwo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gb2YKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gdGhpcyBleHRlbnNpb25zIHBsdWdpbiwgd2hpY2ggaXMgYSBjaGFuZ2Ugb2YKPiBiZWhhdmlvdXIKPiA+ID4gPiA+ID4+IGludHJvZHVjZWQgYnkKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gbW5nLTYyMDkgZml4Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogQWxzbywgY29tcG9uZW50IGluamVjdGlvbiBvcmRlciBhcHBlYXJzIHRvIGJlCj4gPiBiYWNrd2FyZHMsCj4gPiA+ID4gPiA+PiBidXQKPiA+ID4gPiA+ID4+IG1heWJlCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IFN0dWFydCBjYW4gZXhwbGFpbiB3aHkuCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IEJlbG93IGlzIG1vcmUgZGV0YWlsZWQgZXhwbGFuYXRpb24gb2YgZXhwZWN0ZWQgYW5kCj4gPiBvYnNlcnZlZAo+ID4gPiA+ID4gPj4gPiA+IGJlaGF2aW91cgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAjIyBDb21wb25lbnQgaW5qZWN0aW9uIGRlcGVuZHMgb24gdGhlIGN1cnJlbnRseQo+IHJ1bm5pbmcKPiA+ID4gPiA+ID4+IHBsdWdpbgo+ID4gPiA+ID4gPj4gYW5kCj4gPiA+ID4gPiA+PiA+ID4gdGhlCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGluamVjdGlvbiBzaXRlCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IEN1cnJlbnRseSBydW5uaW5nIHBsdWdpbnMgaGF2ZSBhY2Nlc3MgdG8gdGhlCj4gZm9sbG93aW5nCj4gPiA+ID4gPiA+PiBjb21wb25lbnQKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gaW1wbGVtZW50YXRpb25zOgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIFJlZ3VsYXIgcGx1Z2luIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50cyBpbXBsZW1lbnQ9CmVkCj4gPiBieQo+ID4gPiA+IHRoZQo+ID4gPiA+ID4gPj4gcGx1Z2luLAo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMsIGlmIGFueSAodmlhIHByb2plY3QgY2xhc3MKPiA+IHJlYWxtCj4gPiA+ID4gPiA+PiBmb3JlaWduCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGltcG9ydCkgYW5kIE1hdmVuIENvcmUuCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogRXh0ZW5zaW9uIHBsdWdpbiBoYXMgYWNjZXNzIHRvIGNvbXBvbmVudHMKPiA+IGltcGxlbWVudGVkIGJ5Cj4gPiA+ID4gPiA+PiB0aGUKPiA+ID4gPiA+ID4+ID4gPiBwcm9qZWN0Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGJ1aWxkIGV4dGVuc2lvbnMgYW5kIE1hdmVuIENvcmUuCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogV2l0aG91dCBhIHJ1bm5pbmcgcGx1Z2luIChlLmcuLCBkdXJpbmcgcHJvamVjdAo+ID4gZGVwZW5kZW5jeQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gcmVzb2x1dGlvbiksCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGNvbXBvbmVudHMgaW1wbGVtZW50ZWQgYnkgdGhlIHByb2plY3QgYnVpbGQKPiBleHRlbnNpb25zCj4gPiBhbmQKPiA+ID4gPiA+ID4+IE1hdmVuCj4gPiA+ID4gPiA+PiA+ID4gQ29yZQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBhcmUgYWNjZXNzaWJsZS4KPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gRGlmZmVyZW50IGluamVjdGlvbiBzaXRlcyBoYXZlIGFjY2VzcyB0byB0aGUKPiBmb2xsb3dpbmcKPiA+ID4gPiA+ID4+IGNvbXBvbmVudAo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBpbnRlcmZhY2VzOgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIE1hdmVuIENvcmUgaGFzIGFjY2VzcyB0byBjb21wb25lbnQgaW50ZXJmYWNlcwo+ID4gZGVmaW5lZCBieQo+ID4gPiA+ID4gPj4gdGhlCj4gPiA+ID4gPiA+PiBjb3JlCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGl0c2VsZiAob2J2aW91c2x5KQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIFByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucyBoYXZlIGFjY2VzcyB0byAqKnB1YmxpYyo9CioKPiA+ID4gPiA+ID4+IGNvbXBvbmVudAo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBpbnRlcmZhY2VzIGRlZmluZWQgYnkgTWF2ZW4gQ29yZSBhbmQgY29tcG9uZW50Cj4gPiBpbnRlcmZhY2VzCj4gPiA+ID4gPiA+PiBkZWZpbmVkIGJ5Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiB0aGUKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gYnVpbGQgZXh0ZW5zaW9uIGl0c2VsZiAodGhlcmUgaXMgbm8gd2F5IHRvIGFjY2Vzcwo+ID4gY29tcG9uZW50Cj4gPiA+ID4gPiA+PiA+ID4gaW50ZXJmYWNlcwo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBkZWZpbmVkIGluIG90aGVyIGV4dGVuc2lvbnMpCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogUmVndWxhciBwbHVnaW5zIGhhdmUgYWNjZXNzIHRvICoqcHVibGljKiogY29tcG9uZT0KbnQKPiA+ID4gPiA+ID4+IGludGVyZmFjZXMKPiA+ID4gPiA+ID4+ID4gPiA+ID4+IGRlZmluZWQKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gYnkgTWF2ZW4gQ29yZSwgY29tcG9uZW50IGludGVyZmFjZXMgKipleHBvcnRlZCoqIGJ5Cj4gPiBidWlsZAo+ID4gPiA+ID4gPj4gZXh0ZW5zaW9ucwo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gYW5kCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGNvbXBvbmVudCBpbnRlcmZhY2VzIGRlZmluZWQgaW4gdGhlIHBsdWdpbiBpdHNlbGYKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gRm9yIGluamVjdGlvbiB0byB3b3JrLCBpbmplY3Rpb24gc2l0ZSBoYXMgdG8gaGF2ZQo+ID4gYWNjZXNzIHRvCj4gPiA+ID4gPiA+PiB0aGUKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gY29tcG9uZW50IGludGVyZmFjZSBhbmQgdGhlIGNvbXBvbmVudCBpbXBsZW1lbnRhdGlvPQpuCj4gPiBtdXN0Cj4gPiA+ID4gYmUKPiA+ID4gPiA+ID4+ID4gPiA+ID4+IGFjY2Vzc2libGUKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gdGhyb3VnaCB0aGUgY3VycmVudCBjb250ZXh0Lgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBGcm9tIHdoYXQgSSBjYW4gdGVsbCwgaW4geW91ciBleGFtcGxlIGFsbCBwbHVnaW5zCj4gaGF2ZQo+ID4gPiA+IGFjY2Vzcwo+ID4gPiA+ID4gPj4gdG8gdGhlCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IHJpZ2h0IGNvbXBvbmVudHMgd2hlbiB1c2luZyBjdXJyZW50IDMuNS4yLVNOQVBTSE9ULgo+IFRoZQo+ID4gPiA+ID4gPj4gaW5qZWN0aW9uCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiBvcmRlcgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBkb2VzIGFwcGVhciB0byBiZSBiYWNrd2FyZHMgZnJvbSB3aGF0IEkgZXhwZWN0ZWQsCj4gPiBob3dldmVyLgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAjIyBSZXNvdXJjZXMgbG9va3VwIGZ1bGx5IGRlcGVuZHMgb24gY2xhc3NwYXRoCj4gPiB2aXNpYmlsaXR5LAo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gc3BlY2lmaWNhbGx5Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogUmVndWxhciBwbHVnaW4gY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byByZXNvdXJjZT0Kcwo+ID4gZnJvbQo+ID4gPiA+IHRoZQo+ID4gPiA+ID4gPj4gcGx1Z2luCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGl0c2VsZiwgZnJvbSAqKmV4cG9ydGVkKiogcGFja2FnZXMgb2YgdGhlIHByb2plY3QKPiBidWlsZAo+ID4gPiA+ID4gPj4gZXh0ZW5zaW9ucwo+ID4gPiA+ID4gPj4gPiA+IGFuZAo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqKnB1YmxpYyoqIE1hdmVuIENvcmUgcGFja2FnZXMKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gKiBFeHRlbnNpb25zIHBsdWdpbiBjbGFzcyByZWFsbSBoYXMgYWNjZXNzIHRvIHRoZQo+ID4gcmVzb3VyY2VzCj4gPiA+ID4gPiA+PiBmcm9tIHRoZQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBleHRlbnNpb25zIHBsdWdpbiBpdHNlbGYgYW5kIGZyb20gKipwdWJsaWMqKiBNYXZlbgo+IENvcmUKPiA+ID4gPiA+ID4+IHBhY2thZ2VzCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogUHJvamVjdCBjbGFzcyByZWFsbSBoYXMgYWNjZXNzIHRvIGNsYXNzZXMgYW5kCj4gPiByZXNvdXJjZXMKPiA+ID4gPiA+ID4+ID4gPiAqKmV4cG9ydGVkKioKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gYnkgcHJvamVjdCBidWlsZCBleHRlbnNpb25zIGFuZCAqKnB1YmxpYyoqIE1hdmVuIENvPQpyZQo+ID4gPiA+ID4gPj4gcGFja2FnZXMKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gSSBzZWUgdGhyZWUgcHJvYmxlbXMgaGVyZQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIE1hdmVuIGFkZHMgYnVpbGQgc2luZ2xlLWphciBgPGV4dGVuc2lvbnM+YCBlbGVtZW49CnRzCj4gPiA+ID4gPiA+PiBkaXJlY3RseQo+ID4gPiA+ID4gPj4gdG8KPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gcHJvamVjdCBjbGFzcyByZWFsbSAqKmFuZCoqIGNyZWF0ZXMgc2VwYXJhdGUKPiBleHRlbnNpb25zCj4gPiA+ID4gY2xhc3MKPiA+ID4gPiA+ID4+IHJlYWxtcwo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gZm9yCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IHRoZW0uIFdoaWNoIHJlc3VsdHMgaW4gZHVwbGljYXRlIGNsYXNzZXMvcmVzb3VyY2VzCj4gPiBsb2FkZWQKPiA+ID4gPiBieQo+ID4gPiA+ID4gPj4gdHdvCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IGNsYXNzbG9hZGVycyBhbmQgZXhwbGFpbnMgd2h5IHlvdSBzZWUgZXh0amFyMS9leHRqYT0KcjIKPiA+ID4gPiBvdXRwdXQKPiA+ID4gPiA+ID4+ICh3aGljaAo+ID4gPiA+ID4gPj4gPiA+ID4gPj4geW91Cj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IHNob3VsZG4ndCBhY2NvcmRpbmcgdG8gdGhlIGV4cGxhbmF0aW9uIGFib3ZlKQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiAqIENsYXNzUmVhbG0gZG9lcyBub3QgYWxsb3cgZm9yZWlnbi1pbXBvcnQgb2YgdGhlCj4gc2FtZQo+ID4gPiA+ID4gPj4gcGFja2FnZQo+ID4gPiA+ID4gPj4gZnJvbQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBtdWx0aXBsZSBjbGFzc2xvYWRlcnMuIFRoaXMgbWFrZXMgaXQgaW1wb3NzaWJsZSB0bwo+ID4gbG9hZCB0aGUKPiA+ID4gPiA+ID4+IHNhbWUKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gcmVzb3VyY2UgZnJvbSBtdWx0aXBsZSBwbHVnaW5zL2V4dGVuc2lvbnMuCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+ICogRXh0ZW5zaW9ucyBwbHVnaW5zIGNhbm5vdCBhY2Nlc3MgdGhlaXIgb3duIHByaXZhdD0KZQo+ID4gKGkuZS4KPiA+ID4gPiA+ID4+IG5vdAo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gZXhwb3J0ZWQpCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiA+IHJlc291cmNlcyB2aWEgVENDTCwgdGhpcyBpcyBjaGFuZ2UgaW4gYmVoYXZpb3VyCj4gPiBpbnRyb2R1Y2VkCj4gPiA+ID4gYnkKPiA+ID4gPiA+ID4+ID4gPiBtbmctNjIwOQo+ID4gPiA+ID4gPj4gPiA+ID4gPj4gPiBmaXgKPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4KPiA+ID4gPiA+ID4+ID4gPiA+ID4+ID4gSG9wZSB0aGlzIGhlbHBzCj4gPiA+ID4gPiA+PiA+ID4gPiA+Pgo+ID4gPiA+ID4gPj4gPiA+ID4gPj4KPiA+ID4gPiA+ID4+Cj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gPiA+ID4+ID4gPiA+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUuCj4gb3JnCj4gPiA+ID4gPiA+PiA+ID4gPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOgo+ID4gZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPj4gPiA+ID4KPiA+ID4gPiA+ID4+ID4gPiA+Cj4gPiA+ID4gPiA+Pgo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ID4gPiA+PiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDoKPiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiA+PiA+ID4gPgo+ID4gPiA+ID4gPj4gPiA+Cj4gPiA+ID4gPiA+PiA+ID4KPiA+ID4gPiA+ID4+Cj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gPiA+ID4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4+ID4gPgo+ID4gPiA+ID4gPj4gPiA+IC0tCj4gPiA+ID4gPiA+PiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4gPiA+ID4gPj4KPiA+ID4gPiA+ID4+Cj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gPiA+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiA+Pgo+ID4gPiA+ID4gPj4gLS0KPiA+ID4gPiA+ID4gU2VudCBmcm9tIG15IHBob25lCj4gPiA+ID4gPgo+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tCj4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4KPiA+ID4gPgo+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0tLS0tLS0tLQo+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+Cj4gPiA+ID4KPiA+Cj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPgo+ID4gLS0KPiBTZW50IGZyb20gbXkgcGhvbmUKPgoKLS0wMDFhMTE0OTg5ODY2NzA2YzYwNTU5ZjNlODIwLS0KCkZyb20gZGV2LXJldHVybi0xMjM5OTItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIFNlcCAxMiAwODo1Nzo1NSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5OTItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNzkxMDgxQTZCNgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDEyIFNlcCAyMDE3IDA4OjU3OjU1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTM2MjMgaW52b2tlZCBieSB1aWQgNTAwKTsgMTIgU2VwIDIwMTcgMDg6NTc6NTUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDEzNTM0IGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIFNlcCAyMDE3IDA4OjU3OjU1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTM1MjIgaW52b2tlZCBieSB1aWQgOTkpOyAxMiBTZXAgMjAxNyAwODo1Nzo1NCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMTIgU2VwIDIwMTcgMDg6NTc6NTQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA1MjA1MzE4QjcyOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTIgU2VwIDIwMTcgMDg6NTc6NTQgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjM2MgpYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuMzYyIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwKCUhFQURFUl9GUk9NX0RJRkZFUkVOVF9ET01BSU5TPTAuMDAxLCBIVE1MX01FU1NBR0U9MiwKCUhUTUxfT0JGVVNDQVRFXzEwXzIwPTEuMTYyLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBCM2xTVG5XRS1jSjcgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUdWUsIDEyIFNlcCAyMDE3IDA4OjU3OjUyICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd3IwLWYxNzkuZ29vZ2xlLmNvbSAobWFpbC13cjAtZjE3OS5nb29nbGUuY29tIFsyMDkuODUuMTI4LjE3OV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA5MkY3RTVGNjQwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxMiBTZXAgMjAxNyAwODo1Nzo1MiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13cjAtZjE3OS5nb29nbGUuY29tIHdpdGggU01UUCBpZCAxMDhzbzE5MjY3OTUyd3JhLjUKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxMiBTZXAgMjAxNyAwMTo1Nzo1MiAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnNlbmRlcjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkCiAgICAgICAgIDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXF1cnIzeiswQlQ5d1VyczlyVlFncnRWSVhzTDdrT3ZyaTFwVUdXOHA5T1U9OwogICAgICAgIGI9RDZJVUlONGZlaTMvMy9Kdmt2OU9CdFIwcmZ1dXRaOVk4RUkySndoWTJKeDJEWFB5S2NOVjFXNUVuSmdUMDdCKzk2CiAgICAgICAgIE81K3lwbi9WUUFSRWtXUXQ4dEY5S2RRcmR2MnBwUzEwQzIzTU1hQjlZQTRIR01xeGpkNDN4K0FSZW9BTWw2TlhEWFpWCiAgICAgICAgIHUrdzVhSHdDTFgzU3hIUUlLZ0R5NmFuQ21vZUEvd3ROR0lYSmUwaHJ6MkpjMXA2SGZ3Ni9MSm5jSnV5NkFkVTVvQ0NhCiAgICAgICAgIG5EeGtLbzRQTVZEc1E5YjBsU3pmRHRORVA3WjYzK01WbkN4c1JScEVUajdyaktRWGEzM1NoRE9URVY2TEhFdzRPZkhuCiAgICAgICAgIDNPekFQdTF4Wi9iNnNCZ3ZkTEtOK0NiVEFRaUljeThpbFJpV3V3U2I3bWtIM0Nuc0RRNHZoZzRKZmkxQVI3V3d4K2NYCiAgICAgICAgIFJ5b1E9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpzZW5kZXI6aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tCiAgICAgICAgIDpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1xdXJyM3orMEJUOXdVcnM5clZRZ3J0VklYc0w3a092cmkxcFVHVzhwOU9VPTsKICAgICAgICBiPWlNOWswd3ZMU2p5RG1BcnNMMmhaRXM4RElIQTZQOUI3ZDdsbFRhNXErWnYybEZUNzh4ajhjYzUrZDNZOFg1WUlxRwogICAgICAgICBLNEl6b1BPaStzM0hwMkFPN3UvRUt4U0xwaEQxTkUrRkEwckZZT1o4QTFNbWRlbXR2dW9MeC9CSS9qK3poOCtnRExGVQogICAgICAgICA0SEl4S3g4NXBnRVJ5ZTJqKzdRUXVTZGR0YkdtdHBGMFgzbC9FNGZvZUpIVERUTUJQbFg2ZFNYMTczSFNGTXdTbmZseQogICAgICAgICBHMk1ESUF6UFg4R2pMam45SkExdFRYTHVDcjNhNzBQTlplVGs4d1MxWjJQUGExUkpvL0IxcVgzNmZiUFluWGxsZXphdQogICAgICAgICBCSlduWTJ5MGMweVRoN0xyNVBTMm1qY0pGZjdpanVUT0FmMGIyKzRKSEdjVmcvSXdndU9lMlVqY2R3aGxQRnM3cC9FaAogICAgICAgICA0SGd3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVqL3JMVTZTVklZMGZuSHlGMzVFa2ZsdnJ5am9xdVpSVmdJWjczYVhrc1ZERVZWb2c4ZAoJQXBHa1NTbWNFY05rUUNBdTRvb2Izc21kbjBXOUZHVTcKWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFES0NOYjZEWUVqeGdQc0FUYmJNYmVraHo4N2pKdjRGY0F2M0JseVlDckVocUxkSlRFdWtZazEzVElCQ1NJd2F0L1FaUWJKMEJINTNocWoySjJVL0c3bFdMRE09ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xNzAuMjAyIHdpdGggU01UUCBpZCBpMTBtcjExNjAxNTM0d3JjLjIzMi4xNTA1MjA2NjcxOTg2OwogVHVlLCAxMiBTZXAgMjAxNyAwMTo1Nzo1MSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApTZW5kZXI6IGFuZGVycy5nLmhhbW1hckBnbWFpbC5jb20KUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xMzkuOTIgd2l0aCBIVFRQOyBUdWUsIDEyIFNlcCAyMDE3IDAxOjU3OjUxIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8NzhhNWFmOTItZTQ3MS1mOWY5LTdkZTAtZjAyZDA5ZmE0MDM1QGdteC5kZT4KUmVmZXJlbmNlczogPDc4YTVhZjkyLWU0NzEtZjlmOS03ZGUwLWYwMmQwOWZhNDAzNUBnbXguZGU+CkZyb206IEFuZGVycyBIYW1tYXIgPGFuZGVyc0BoYW1tYXIubmV0PgpEYXRlOiBUdWUsIDEyIFNlcCAyMDE3IDEwOjU3OjUxICswMjAwClgtR29vZ2xlLVNlbmRlci1BdXRoOiBfRUVLLTBIV2Y2dHJKMHcwNDJUN0ZxRmV2NlEKTWVzc2FnZS1JRDogPENBS0RVTjF1VVhtdkpoaHF5RmRRaEpxbWoySlE9YUhpVnFfN1dzUTMzRG9VWmFHK0hoUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBEZXBlbmRlbmN5IFBsdWdpbiB2ZXJzaW9uIDMuMC4yClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwgaW5mb0Bzb2ViZXMuZGUKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSI5NGViMmMxYjY4NmVmZjU1ZDYwNTU4ZmEzY2IzIgoKLS05NGViMmMxYjY4NmVmZjU1ZDYwNTU4ZmEzY2IzCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgorMQoKVGVzdGVkIHdpdGggTWF2ZW4gMy4zLjkgYW5kIElCTSBKREsgNy4xIG9uIFdpbmRvd3MgNy4KCi9BbmRlcnMKCk9uIFNhdCwgU2VwIDksIDIwMTcgYXQgMjozNCBQTSwgS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+Cndyb3RlOgoKPiBIaSwKPgo+IFdlIHNvbHZlZCA3IGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamUKPiBjdElkPTEyMzE3MjI3JnZlcnNpb249MTIzNDEyNTQKPgo+IFRoZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJTNEJQo+IDIwTURFUCUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlMjBCWSUKPiAyMGtleSUyMERFU0MlMkMlMjBwcmlvcml0eSUyMERFU0MlMkMlMjB1cGRhdGVkJTIwREVTQwo+Cj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjAKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzYKPiAwL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi1kZXBlbmRlbmN5LXBsdWdpbi8zLjAuMi9tYXYKPiBlbi1kZXBlbmRlbmN5LXBsdWdpbi0zLjAuMi1zb3VyY2UtcmVsZWFzZS56aXAKPgo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IG1hdmVuLWRlcGVuZGVuY3ktcGx1Z2luLTMuMC4yLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOgo+IDNjNGFhNzE2ZTI4YjI0MTgzNGQ0N2QyMmUxZmY1ZjZlNjJmMTZiOWIKPgo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1kZXBlbmRlbmN5LXBsdWdpbi1MQVRFU1QvCj4KPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+Cj4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPgo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQo+Cj4gS2luZCByZWdhcmRzCj4gS2FybCBIZWlueiBNYXJiYWlzZQo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKLS05NGViMmMxYjY4NmVmZjU1ZDYwNTU4ZmEzY2IzLS0KCkZyb20gZGV2LXJldHVybi0xMjQzMjQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE9jdCAyNCAwNjoyOTo0MiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzMjQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRTg1QzYxNzQxNQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDI0IE9jdCAyMDE3IDA2OjI5OjQyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTgwODAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjQgT2N0IDIwMTcgMDY6Mjk6NDIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU3NjgyIGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IE9jdCAyMDE3IDA2OjI5OjQyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTc2NzAgaW52b2tlZCBieSB1aWQgOTkpOyAyNCBPY3QgMjAxNyAwNjoyOTo0MiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMjQgT2N0IDIwMTcgMDY6Mjk6NDIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA1QUQ3MDFBMDgzQQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjQgT2N0IDIwMTcgMDY6Mjk6NDEgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjk4ClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MS45OCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsCglIRUFERVJfRlJPTV9ESUZGRVJFTlRfRE9NQUlOUz0wLjAwMSwgSFRNTF9NRVNTQUdFPTIsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgdlNMQjhPbi1OR2I1IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVHVlLCAyNCBPY3QgMjAxNyAwNjoyOTozOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdtMC1mNDguZ29vZ2xlLmNvbSAobWFpbC13bTAtZjQ4Lmdvb2dsZS5jb20gWzc0LjEyNS44Mi40OF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA0RTEyODVGQkU2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyNCBPY3QgMjAxNyAwNjoyOTozOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13bTAtZjQ4Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHUxMzhzbzEzODQ5Njgyd211LjQKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAyMyBPY3QgMjAxNyAyMzoyOTozOSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOnNlbmRlcjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkCiAgICAgICAgIDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWppYU5lSmFPY2FTbEdnekRmTlJIR0ROVkxsWDVmeFF1YTRkenFZdTB1Tjg9OwogICAgICAgIGI9RzRVSTFGNk9FYXEvSFRNZmlMVVlXemJJS3MwUXB5OFQ0K2NKSFoycGhjYWdWRzNuUnNZay9OOWcwczFrZ3kvMlJXCiAgICAgICAgIDQwSGx0OTQxVndzQmhmTTZTb2h0NXgrWk9SdXlJbnZkMzhTU1A3L2ZIcEt4aVZoZjYzNytoTjBaS2lCRy9DU0NhMTFWCiAgICAgICAgIGV1aFBXQTYrUFJDYUN5ajIwYmljbU1xTFU3cXBLS1paTVh0elY2TUQ5YWVNMldtS0hpNzJMbVJpZzlaaGh3aXI1Z25oCiAgICAgICAgIE5TeThpZFBhejFvZFB5ZlA2dFNPZFJub1pnVDhHMitwVytneExTNjQ3SnFuTjNIcnRiTXlQei9YOHEvRlN0aXUwMGtLCiAgICAgICAgIGNWajhyZmcxYzdpT2xvWHg0OGRSRHFBaTdFNWU0VmMvdFVyQ24yczVNQ0pwSzVWbXRVQ0VFMHBscUNydWNnSnQ4OFgzCiAgICAgICAgIGxUS0E9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpzZW5kZXI6aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tCiAgICAgICAgIDpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1qaWFOZUphT2NhU2xHZ3pEZk5SSEdETlZMbFg1ZnhRdWE0ZHpxWXUwdU44PTsKICAgICAgICBiPVFXVzQvRUF1eDdFU0lxKzkwL0tFeWxJN2Z2WUdMV0xJZ3VwRnpnb3MwTlg0UTNyQVpJSDZhM1luQms4RWxrUUl5LwogICAgICAgICAyN3Jid1lZelVKMnlKK0hwNDBOYkN4OW9wWXZjWnJVcm1sUmRQQmFTK3VBYzJsRm16cGw2MXkrREp2OUZxQXhOMDgwWAogICAgICAgICBKaXZRWE9qWnpXenRRenV3YjFvc2hNNmJRMHhIUnU2Z0xGVlMwZno3TS9LVWpjQk5BVGZnTUdSR2xua1dWV0lUNm4zVQogICAgICAgICBaVTNuY2dSMXBWU2hKZGJyb3N5VS9lRCtSWkp1UzRpMHRMZ3BVSkMvNUlPUlhjS00vQmtCR2ZZMnBqMVdCMWpnQkNkTAogICAgICAgICBjZnlkeUNDd25ENzJWbm4wbWZoQWxDRkJxS0lrZFdTUWpKUjByN2ozWnNZQW95VGlpV2ZpcmtOc0c1NHNZNzc0bmhScQogICAgICAgICBOSlRnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FWREZaQVBPOE1TeElOM0ZOZWwvaUU4bFBpVTZhNHBKOHpRa2txd1l4cVFqWXArNjBubQoJN2hXSnJWQmZMQnJaSTdJTXVRTHZVWnFQL3ZWWnlBSzkxQmd0RE1BcjgvdFgKWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFCaFFwK1R6Q2ZhYlJzblRPTzJENFhON2VMZ0VLVnZBak16U0JrL1BZYXFUM01QWnRSTzJQK0l4N1pnWS9Tb1ZQUHNQdVlGdEdxOFIvSXowUEZEbFdtTk5oQ1U9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjI4LjQ4LjE0MyB3aXRoIFNNVFAgaWQgdzEzN21yNzUwMzU5M3dtdy4zLjE1MDg4MjY1Nzc5OTM7CiBNb24sIDIzIE9jdCAyMDE3IDIzOjI5OjM3IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClNlbmRlcjogYW5kZXJzLmcuaGFtbWFyQGdtYWlsLmNvbQpSZWNlaXZlZDogYnkgMTAuMjIzLjE3Ni45IHdpdGggSFRUUDsgTW9uLCAyMyBPY3QgMjAxNyAyMzoyOTozNyAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPENBTDV6cTlhRDdOVjdjZkcrNUgyPWdHdDZTMHpGZ2ZILVBkMkV6RDltYkVKLXNEPUtod0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBTDV6cTlhRDdOVjdjZkcrNUgyPWdHdDZTMHpGZ2ZILVBkMkV6RDltYkVKLXNEPUtod0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogQW5kZXJzIEhhbW1hciA8YW5kZXJzQGhhbW1hci5uZXQ+CkRhdGU6IFR1ZSwgMjQgT2N0IDIwMTcgMDg6Mjk6MzcgKzAyMDAKWC1Hb29nbGUtU2VuZGVyLUF1dGg6IFV2eTlTLWI5Z2otVUJjOWFNc3JydW1nU1Y3OApNZXNzYWdlLUlEOiA8Q0FLRFVOMXVvczM5SmloVHZVZD1jUi09RVZGcDVKX3M3eDM0cEttM3Q2NmE3NzIydFpBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogTWF2ZW4gcGx1Z2luIGRldmVsb3BlciBkb3VtZW50YXRpb24KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDFmYmQyMzU4ODAwMDU1YzQ1MTBlYiIKCi0tMDAxYTExNDFmYmQyMzU4ODAwMDU1YzQ1MTBlYgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKV2hhdCB5b3Ugc2hvdWxkIHR5cGljYWxseSBkbyBpcyBkZWNsYXJlIGRlcGVuZGVuY3kgdG8gdGhlIGxvd2VzdCB2ZXJzaW9uIG9mCk1hdmVuIHRoYXQgeW91IHdhbnQgdG8gc3VwcG9ydCBzdXBwb3J0LiBTbyBmb3Igb3VyIGNvcmUgQXBhY2hlIE1hdmVuCnBsdWdpbnMgd2UgZGVjbGFyZSBkZXBlbmRlbmN5IHRvIHZlcnNpb24gMy4wIG9mIHRoZSAoY29yZSkgTWF2ZW4KZGVwZW5kZW5jaWVzLCB3aGljaCBpcyBiZWNhdXNlIHdlIHdhbnQgdGhlIHBsdWdpbnMgdG8gc3VwcG9ydCB2My4wKyBvZgpNYXZlbi4gU28gd2UgYnVpbGQgdGhlIHBsdWdpbiB0b3dhcmRzIHRoZSB2My4wIGxpYnMgYnV0IGl0IHNob3VsZCB3b3JrIHdpdGgKMy41LjAgZm9yIGV4YW1wbGUgYXMgaXQgaXMgaW50ZW5kZWQgdG8gYmUgYmFja3dhcmRzIGNvbXBhdGlibGUuCgpUaGUgc2Vjb25kIHBhcnQgb2YgdGhpcyBpcyB0byBmaWd1cmUgb3V0IHdoYXQgZGVwZW5kZW5jaWVzIHRoYXQgYXJlIHJlbGF0ZWQKdG8gKGNvcmUpIE1hdmVuLiBUaGF0IHdvdWxkIGJlIHRob3NlIGxpYnJhcmllcyB0aGF0IGFyZSBpbiB0aGUgZ3JvdXBJZAoib3JnLmFwYWNoZS5tYXZlbiIuIFRob3NlIGFyZSB0aGUgb25lcyB0aGF0IHNob3VsZCBoYXZlIHZlcnNpb24gIjMuMCIsIGZvcgpleGFtcGxlLCBhY2NvcmRpbmcgb3QgdGhlIHRoaW5raW5nIGRlc2NyaWJlZCBhYm92ZS4gQW55dGhpbmcgZWxzZSBjb3VsZCBiZQp3aGF0IGV2ZXIgeW91IHNlZSBmaXQuIEluIHlvdXIgbGlzdCwgZm9yIGV4YW1wbGUsIHRoYXQgd291bGQgYmUKIm1hdmVuLXBsdWdpbi1hbm5vdGF0aW9ucyIKYW5kICJwbGV4dXMtdXRpbHMiLiBUeXBpY2FsbHkgeW91IHdvdWxkIHNlbGVjdCB0aGUgbGF0ZXN0IHZlcnNpb24gYXZhaWxhYmxlLgoKL0FuZGVycwoKT24gVHVlLCBPY3QgMjQsIDIwMTcgYXQgMjowNiBBTSwgQ2hyaXN0b3BoZXIgPGN0dWJic2lpQGFwYWNoZS5vcmc+IHdyb3RlOgoKPiBIaSwKPgo+IEkgZGV2ZWxvcCBzb21lIE1hdmVuIHBsdWdpbnMsIGFuZCBhbSBzdHJ1Z2dsaW5nIHRyeWluZyB0byBmaW5kCj4gZG9jdW1lbnRhdGlvbiBvbiB3aGljaCBkZXBlbmRlbmNpZXMgYXJlIHByb3ZpZGVkIGJ5IGEgcGFydGljdWxhciB2ZXJzaW9uIG9mCj4gTWF2ZW4sIGFuZCB3aGVuIEkgc2hvdWxkIHVzZSBhIG5ld2VyIGNvbXBhdGlibGUgdmVyc2lvbiBhcyB0aGUgZGVwZW5kZW5jeQo+IGluIG15IHBsdWdpbi4KPgo+IEZvciBleGFtcGxlLCBJIGhhdmUgYSBwbHVnaW4gd2hpY2ggZGVjbGFyZXMgMy4yLjUgYXMgYSBwcmVyZXF1aXNpdGUgYW5kIGhhcwo+IHRoZSBmb2xsb3dpbmcgZGVwZW5kZW5jaWVzOgo+ICAgbWF2ZW4tY29yZSAoMy4yLjUsIHByb3ZpZGVkKQo+ICAgbWF2ZW4tcGx1Z2luLWFwaSAoMy4yLjUsIHByb3ZpZGVkKQo+ICAgbWF2ZW4tcGx1Z2luLWFubm90YXRpb25zICgzLjUsIHByb3ZpZGVkKQo+ICAgcGxleHVzLXV0aWxzICgzLjAuMjQsIHByb3ZpZGVkKQo+Cj4gSG93ZXZlciwgSSBkb24ndCBhY3R1YWxseSBrbm93IHdoaWNoIHZlcnNpb25zIG9mIHRoZXNlIHBsdWdpbnMgYXJlIHByb3ZpZGVkCj4gYnkgd2hpY2ggTWF2ZW4gdmVyc2lvbnMsIGFuZCB3aGV0aGVyIG9yIG5vdCBJIGNvdWxkIHVzZSB0aGlzIHBsdWdpbiB3aXRoIGFuCj4gZWFybGllciB2ZXJzaW9uIG9mIE1hdmVuLiBQZXJoYXBzIEkgY291bGQgc2V0IHRoZSBwcmVyZXF1aXNpdGUgdG8gMy4wLjUgYW5kCj4gaXQgd291bGQgd29yayBmaW5lPwo+Cj4gSWRlYWxseSwgZXZlcnkgdmVyc2lvbiBvZiBNYXZlbiB3b3VsZCByZWxlYXNlIHdpdGggYSBndWlkZSBmb3IgcGx1Z2luCj4gZGV2ZWxvcGVycywgdG8gbGV0IGRldmVsb3BlcnMga25vdyB3aGljaCB2ZXJzaW9ucyBvZiB0aGUgZGVwZW5kZW5jaWVzIHRoZXkKPiBzaG91bGQgdXNlLCBidXQgSSBjYW4ndCBmaW5kIGFueXRoaW5nIGxpa2UgdGhhdC4gSXMgdGhlcmUgYSB1c2VmdWwgZ3VpZGUKPiBzb21ld2hlcmU/Cj4KPiBBIHJlbGF0ZWQgcHJvYmxlbSB0aGF0IGNvdWxkIGJlIGNvdmVyZWQgYnkgYSBkZXZlbG9wZXIgZ3VpZGU6IHdoaWNoIG1hdmVuCj4gbGlicmFyeSBjb2RlIGlzIGV4ZWN1dGVkIGR1cmluZyBwbHVnaW4gZXhlY3V0aW9uLCBhbmQgd2hpY2ggYXJlIGV4ZWN1dGVkCj4gZHVyaW5nIHBsdWdpbiBjb21waWxhdGlvbj8gKEluIG90aGVyIHdvcmRzLCB3aGVuIGlzIGl0IHNhZmUgdG8gdXNlciBhIG5ld2VyCj4gdmVyc2lvbiBvZiBhIHBhcnRpY3VsYXIgZGVwZW5kZW5jeSwgd2l0aG91dCBicmVha2luZyB0aGF0IHBsdWdpbidzCj4gY29tcGF0aWJpbGl0eSB3aXRoIGEgcGFydGljdWxhciB2ZXJzaW9uIG9mIE1hdmVuPykgUGVyaGFwcyB0aGlzIHJlYWxseQo+IGJvaWxzIGRvd24gdG86ICJIb3cgc3RhYmxlIGFyZSB0aGUgQVBJcyBmb3IgdGhlc2UgTWF2ZW4gbGlicmFyaWVzIHVzZWQgZm9yCj4gTWF2ZW4gcGx1Z2lucz8iCj4KPiBIb3BlZnVsbHksIHRoZXJlJ3MgYWxyZWFkeSBhIHVzZWZ1bCBndWlkZSBvdXQgdGhlcmUsIG9yIG1heWJlIGp1c3QgYSBmZXcKPiBzaW1wbGUgZ3VpZGVsaW5lcyB3aGljaCBjYW4gYmUgc2hhcmVkIHdpdGggbWUuIE90aGVyd2lzZSwgSSBmZWFyIHRoaXMgbWlnaHQKPiBiZSBhbm90aGVyICJkZXBlbmRlbmN5IGhlbGwiIGlzc3VlLgo+Cj4KPiBUaGFua3MgZm9yIGFueSBndWlkYW5jZSB5b3UgY2FuIHByb3ZpZGUgZm9yIG1hbmFnaW5nIHBsdWdpbiBkZXBlbmRlbmNpZXMsCj4KPiBDaHJpc3RvcGhlcgo+CgotLTAwMWExMTQxZmJkMjM1ODgwMDA1NWM0NTEwZWItLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDAwMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgU2VwIDEzIDA3OjI2OjQyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDAwMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4OEM0NDFBQTgxCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMTMgU2VwIDIwMTcgMDc6MjY6NDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0NjA4OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMyBTZXAgMjAxNyAwNzoyNjo0MiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDU5ODAgaW52b2tlZCBieSB1aWQgNTAwKTsgMTMgU2VwIDIwMTcgMDc6MjY6NDIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0NTk2OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDEzIFNlcCAyMDE3IDA3OjI2OjQxIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAxMyBTZXAgMjAxNyAwNzoyNjo0MSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDNBOEVCMTg1NkRDCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMyBTZXAgMjAxNyAwNzoyNjo0MSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjI5OQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC4yOTkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLAoJSEVBREVSX0ZST01fRElGRkVSRU5UX0RPTUFJTlM9MC4wMDEsIEhUTUxfTUVTU0FHRT0yLAoJSFRNTF9PQkZVU0NBVEVfMDVfMTA9MC4wMDEsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEV6WG1iVC1DR1VLVSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgMTMgU2VwIDIwMTcgMDc6MjY6MzggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13cjAtZjE4MC5nb29nbGUuY29tIChtYWlsLXdyMC1mMTgwLmdvb2dsZS5jb20gWzIwOS44NS4xMjguMTgwXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDJCMjVFNjBDRjgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3IDA3OjI2OjM4ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdyMC1mMTgwLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGsyMHNvMjY3NDk3NzZ3cmUuNAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3IDAwOjI2OjM4IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246c2VuZGVyOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQKICAgICAgICAgOnN1YmplY3Q6dG87CiAgICAgICAgYmg9RTFtMG1xNmlqcVU4dW5wZE5obGo1UDNrbXdFV09USkJwTGZFRFJ4QzZudz07CiAgICAgICAgYj1venl1NFl2ajhkN3A2SmlTQ3BKTGk1RVg5eUFCUm5PcXZBM3JjRjBLQkN6QXIwYlNVdWxkQnRCallsV0hYL04zY2sKICAgICAgICAgRllqaHZaN1B5b3A0SkZUM0YxQjFXU2IxclVxWFNCWWhUWElmM3VFZVUvYmxVOTlMWCtiZlplY0ZsaG5ydGI3WFEvUU4KICAgICAgICAgNFJIb1BMd3RnaVBrbWNoZXNPaVYzTStrWjVlQm9qVHZNTlg3RTV2bG96b2VSVkZqdko4Qk9MN0hoZmZ5KzFBYkgwTE0KICAgICAgICAgWGpYWEdTWFUwdXpJSmlMdE5DOWNUbkF6ZEl4dkw3c1BXaXRTaG41R3J1NHRlOXNzd0o3V3NjdXExdmVpWjRTUzlId1YKICAgICAgICAgMXVJZ3ZZcllLSHliWGMrVDhnWWMzTVkyUzBGTndpZDBhbElrMVhNMW5DL2FCUEtDNHJDYTVXbndkU3NXT0dmQXJFSFUKICAgICAgICAgUkdkUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnNlbmRlcjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb20KICAgICAgICAgOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUUxbTBtcTZpanFVOHVucGROaGxqNVAza213RVdPVEpCcExmRURSeEM2bnc9OwogICAgICAgIGI9Tmp0b3J1YlBVS29Gb0RMWW15ZERDQldYbzNaeTFZS0VZY00reUxRWDVrL2hyOGFYWEJqU05NVFJPTzlwQXRhdWplCiAgICAgICAgIFFPbXlVVkdpQmpGYWZ3UWlVZnBTSEJLOWFQOTZDZlp0cnZPb1BSNkV3YjNSeXliU0gwRWdNTjRhdGhpb0Y0NW1mbnJBCiAgICAgICAgIDNZWWQxek1HMytXSVB0SHdSY2hmc1huMEhDb21kbzdyYXQ3bkNqYnE0T0hwSUJXZnNMUDFRL2FNeXJrS2h4ZHEvZVFxCiAgICAgICAgIExicWxwN0s3NE1WVzh3VXN4R21UNzh5RzIvRURDZnBrdW9ndGY2MVppVGF1dmpjdGliMEZOa2o3eG5QNm9CSDFaU2hsCiAgICAgICAgIDFXRVFmL1NiVlFsQ0ZxZk5INXFNdkNnTzc0TU1ST2NaY1laSjhIK3Q1ZklFbE05SEdoMGJWOG9TQTVaMVdkWjVkNkRxCiAgICAgICAgIGQzN1E9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWhQYWR1L0JBcHRWSzJ5RE1lK0llc3FTNnVQWWdhKzBpTzlMdUVNVVRiQ3huU2NlVU9pCgl1VDgza01WUFRLQkg4a29mUVE3Mm1VYk8wampqZ2pETFEyamluclBUa3c9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQURLQ05iNUZiWXJCSVVLdUNINXBtWmVGaUxXZnBWWEU1QkV1d3MwMzgwa0d3T21nY3dJZkszbzN6eFR0RzlzbFR3dzlPajUvOU1rZTJiWnhmbmxMZ3BBMnk1MD0KWC1SZWNlaXZlZDogYnkgMTAuMjIzLjEzMS45OSB3aXRoIFNNVFAgaWQgOTBtcjE0NzYxODgxd3JkLjE5OC4xNTA1Mjg3NTkxNzczOwogV2VkLCAxMyBTZXAgMjAxNyAwMDoyNjozMSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApTZW5kZXI6IGFuZGVycy5nLmhhbW1hckBnbWFpbC5jb20KUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xMzkuOTIgd2l0aCBIVFRQOyBXZWQsIDEzIFNlcCAyMDE3IDAwOjI2OjMxIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0ErblBuTXdjb0hGWnZVcVdpVXN5SEJoYU1tb1NjY3lkVEJzelNYZ3NHdEY9d05HREt3QG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgogPHBvbnktNTZhM2FkZWFmNjBjNDA1OTZmYjI4NGIyNDUyNDE0OGY2MDVlOGQyMy01MmQ0MWNkNDBmMjM0M2M4OTUyODgwZThmODRkYTNlODBkMzM1NTA5QGRldi5tYXZlbi5hcGFjaGUub3JnPgogPENBK25Qbk15UzJxMXVmYVcrUzZzbWhaWjFKY3hoZjloWTUtM25CSi1pQ1dlalBVQURWQUBtYWlsLmdtYWlsLmNvbT4KIDwyMDU3OTQ4LmsxR3lmanVHWGRAZ2lnYT4gPENBK25Qbk13Y29IRlp2VXFXaVVzeUhCaGFNbW9TY2N5ZFRCc3pTWGdzR3RGPXdOR0RLd0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogQW5kZXJzIEhhbW1hciA8YW5kZXJzQGhhbW1hci5uZXQ+CkRhdGU6IFdlZCwgMTMgU2VwIDIwMTcgMDk6MjY6MzEgKzAyMDAKWC1Hb29nbGUtU2VuZGVyLUF1dGg6IDFCWHRPT0s3YWtEVGxnY1czZVVEYWlHUGVXYwpNZXNzYWdlLUlEOiA8Q0FLRFVOMXY1VHNGbitvLXZ2OEhoM1B1dkdYV2UrZlFuTStqd0RadCs9enR4c3BjZ2d3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzBkMTA2YTMxNDliMDA1NTkwZDE0YzAiCgotLTk0ZWIyYzBkMTA2YTMxNDliMDA1NTkwZDE0YzAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gVHVlLCBTZXAgMTIsIDIwMTcgYXQgODo1NCBQTSwgU3RlcGhlbiBDb25ub2xseSA8CnN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgoKPiBIYXZlIHdlIGdvdCBhbnkgZmVlZGJhY2sgZnJvbSB0aGUgZW1iZWRkZXIgaW50ZWdyYXRpb25zIHlldD8KPgoKSSBoYXZlbid0IGhlYXJkIGFueXRoaW5nIGZyb20gdGhlIG0yZSBwZW9wbGUuIE1heWJlIHdlIG5lZWQgdG8gcGluZyB0aGVtCmRpcmVjdGx5LiBJIGNhbiBjb250YWN0IEZyZWQgQnJpY29uLgoKL0FuZGVycwoKCj4KPiBPbiBNb24gMTEgU2VwIDIwMTcgYXQgMjI6NTcsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3PQpyb3RlOgo+Cj4gPiBqdXN0IGZvciB0aGUgcmVjb3JkczogaXQgaXMgV2luZG93cyArIEdpdCBCYXNoIChNSU5HVzY0KSBvbmx5Cj4gPgo+ID4gYW5kIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgYWRkaW5nIC1EamFuc2kuZm9yY2U9M0R0cnVlIGNhbiBmb3JjZSBKQW5zaQo+ID4gYWN0aXZhdGlvbiAoZXZlbiBpZiBKQW5zaSBmYWlscyB0byBkZXRlY3QgdGhhdCBpdCBzaG91bGQgYXV0by1hY3RpdmF0ZSkKPiA+Cj4gPiBkZXRhaWxzIG9uIGlzc3VlIGluIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyODIgLAo+IGFuZCBhCj4gPiBmdXR1cmUgSkFuc2kgaXNzdWUuLi4KPiA+Cj4gPiBSZWdhcmRzLAo+ID4KPiA+IEhlcnY9QzM9QTkKPiA+Cj4gPiBMZSBsdW5kaSAxMSBzZXB0ZW1icmUgMjAxNywgMTI6NTM6NDYgQ0VTVCBTdGVwaGVuIENvbm5vbGx5IGEgPUMzPUE5Y3JpdD0KIDoKPiA+ID4gU28gdGhhdCBpcyB3aW5kb3dzIG9ubHksIG9yIHdlcmUgdGhleSBsb3N0IG9uIG90aGVyIE9TZXMgZm9yIHlvdS4KPiA+ID4KPiA+ID4gSSBoYXZlIGNvbG91cnMgb24gbGludXggKHZpYSBkb2NrZXIpIGFuZCBvcy14Cj4gPiA+Cj4gPiA+IE9uIDExIFNlcHRlbWJlciAyMDE3IGF0IDEyOjM1LCBkZWphbjI2MDlAZ21haWwuY29tIDwKPiBkZWphbjI2MDlAZ21haWwuY29tPgo+ID4gPgo+ID4gPiB3cm90ZToKPiA+ID4gPiArMSAoY29uZGl0aW9uYWxseSkuCj4gPiA+ID4KPiA+ID4gPiBUZXN0ZWQgdmlhIHByb2plY3QgdGhhdCBpbmNsdWRlcyBkb3plbiBvZiBwbHVnaW5zOiAxc3QgdGllciwgTW9qb0hhPQp1cwo+ID4gYW5kCj4gPiA+ID4gZmV3IDNyZCBwYXJ0eSBwbHVnaW5zIChzbyB0byBzYXkpLgo+ID4gPiA+Cj4gPiA+ID4gRXZlcnl0aGluZyBsb29rcyBnb29kIHdpdGggb25lIG5vdGFibGUgcmVncmVzc2lvbjoKPiA+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MjgyIENvbnNvbGUgb3V0cHV0IGhhcyBuPQpvCj4gPiA+ID4gY29sb3JzIChyZWdyZXNzaW9uIGluIE1hdmVuIDMuNS4xKQo+ID4gPiA+Cj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiBEZWphbgo+ID4gPiA+Cj4gPiA+ID4gT24gMjAxNy0wOS0xMCAxNzozOSwgU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLj0KYwo+IG9tCj4gPiA+Cj4gPiA+ID4KPiA+ID4gPiB3cm90ZToKPiA+ID4gPiA+IEhpLAo+ID4gPiA+ID4KPiA+ID4gPiA+IFdlIHNvbHZlZCAyNSBpc3N1ZXM6Cj4gPiA+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4gPiA+ID4KPiA+ID4gPiB2ZXJzaW9uPTNEMTIzMzg5NjQmc3R5bGVOYW1lPTNEVGV4dCZwcm9qZWN0SWQ9M0QxMjMxNjkyMgo+ID4gPiA+Cj4gPiA+ID4gPiBUaGVyZSBhcmUgMzUwIGlzc3VlcyBsZWZ0IGluIEpJUkEgZm9yIE1hdmVuIGNvcmU6Cj4gPiA+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9M0Rwcm9qZWN0JTIwJQo+ID4gPiA+Cj4gPiA+ID4gM0QlMjBNTkclMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJQo+ID4gPiA+IDIwQlklMjBkdWUlMjBBU0MlMkMlMjBwcmlvcml0eSUyMERFU0MlMkMlMjBjcmVhdGVkJTIwQVNDCj4gPiA+ID4KPiA+ID4gPiA+IFN0YWdpbmcgcmVwbzoKPiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjQvCj4gPiA+ID4gPgo+ID4gPiA+ID4gVGhlIGRpc3RyaWJ1dGFibGUgYmluYXJpZXMgYW5kIHNvdXJjZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+ID4KPiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xLwo+ID4gPiA+Cj4gPiA+ID4gPiBTcGVjaWZpY2FsbHkgdGhlIHppcCwgdGFyYmFsbCBhbmQgc291cmNlIGFyY2hpdmVzIGNhbiBiZSBmb3VuZAo+IGhlcmU6Cj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+ID4KPiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1iaW4uemlwCj4gPiA+ID4KPiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4gPgo+ID4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLQo+IGJpbi50YXIuZ3oKPiA+ID4gPgo+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tPiA+Cj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcAo+ID4gPiA+Cj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+ID4KPiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS0KPiBzcmMudGFyLmd6Cj4gPiA+ID4KPiA+ID4gPiA+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+ID4gPiA+ID4gYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy50YXIuZ3ogc2hhMTogOWViODIxZjE1M2M3NjY3MTk0YWExMWNjZDA5OWI9CjcKPiA+ID4gPgo+ID4gPiA+IGJkMjA1OTU2MGQKPiA+ID4gPgo+ID4gPiA+ID4gYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy56aXA6IHNoYTE6IDEyMWQ1NGIwNDUzODBhOGE0ODk1ZWIxMzc5NzBhYgo+ID4gPiA+Cj4gPiA+ID4gNjllNjk4ZWIwZQo+ID4gPiA+Cj4gPiA+ID4gPiBHaXQgdGFnOgo+ID4gPiA+ID4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9M0RtYXZlbi5naXQ7YT0zRGNvbW1pdDs9Cmg9M0QKPiA+ID4gPgo+ID4gPiA+IDA5NGU0ZTMxYTVhZjU1YmIxN2JlODc2NzVkYTQxZDlhZWNhMDYyZjMKPiA+ID4gPgo+ID4gPiA+ID4gU3RhZ2luZyBzaXRlOgo+ID4gPiA+ID4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2NvbXBvbmVudHMvcmVmLzMtTEFURVNULwo+ID4gPiA+ID4KPiA+ID4gPiA+IFZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCj4gPiA+ID4gPgo+ID4gPiA+ID4gWyBdICsxCj4gPiA+ID4gPiBbIF0gKzAKPiA+ID4gPiA+IFsgXSAtMQo+ID4gPiA+ID4KPiA+ID4gPiA+IFRoYW5rcywKPiA+ID4gPiA+Cj4gPiA+ID4gPiBTdGVwaGVuLgo+ID4gPiA+Cj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tCj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPgo+ID4KPiA+Cj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPgo+ID4gLS0KPiBTZW50IGZyb20gbXkgcGhvbmUKPgoKLS05NGViMmMwZDEwNmEzMTQ5YjAwNTU5MGQxNGMwLS0KCkZyb20gZGV2LXJldHVybi0xMjM4NjMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIFNlcCAgNCAwNzoyODoyMyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM4NjMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQjA0NkExQTM1QwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sICA0IFNlcCAyMDE3IDA3OjI4OjIzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzA3MjUgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBTZXAgMjAxNyAwNzoyODoyMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzA2MjkgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBTZXAgMjAxNyAwNzoyODoyMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDcwNjE3IGludm9rZWQgYnkgdWlkIDk5KTsgNCBTZXAgMjAxNyAwNzoyODoyMiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMDQgU2VwIDIwMTcgMDc6Mjg6MjIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA1MEJFNDFBMjc2QwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgIDQgU2VwIDIwMTcgMDc6Mjg6MjIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjg2MgpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjg2MiB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsCglIRUFERVJfRlJPTV9ESUZGRVJFTlRfRE9NQUlOUz0wLjAwMSwgSFRNTF9NRVNTQUdFPTIsCglIVE1MX09CRlVTQ0FURV8xMF8yMD0xLjE2MiwgS0FNX05VTVNVQkpFQ1Q9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBUcjlIcTd2OV9VemcgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sICA0IFNlcCAyMDE3IDA3OjI4OjIwICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd3IwLWYxNzYuZ29vZ2xlLmNvbSAobWFpbC13cjAtZjE3Ni5nb29nbGUuY29tIFsyMDkuODUuMTI4LjE3Nl0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAzOEZCNjVGMjU0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAgNCBTZXAgMjAxNyAwNzoyODoyMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13cjAtZjE3Ni5nb29nbGUuY29tIHdpdGggU01UUCBpZCA0MHNvMTIxMzg4OTJ3cnYuNQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDA0IFNlcCAyMDE3IDAwOjI4OjIwIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246c2VuZGVyOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQKICAgICAgICAgOnN1YmplY3Q6dG87CiAgICAgICAgYmg9SThOYzZRaEs4UncvU3BSMUpoZ01xbXRkU0todDRFQlJiMGo2dFFpbDdtMD07CiAgICAgICAgYj1XMHJNR0pyTXI5V29yM2krNU45RHZHSVFmWWR6UTNJdWdlTVpLVWp5VUcwRThzc0s1akszbEgwejdSejV1bUZTcFQKICAgICAgICAgQzJ2eHZxci9Pbk1hODIrUEI5bkZkUG5Zc2pGa0hWaVJ6dkdaTGlQS0dMOE1UUldTRERjdjVsUzNMRkU5ejRQczB3WGsKICAgICAgICAgeVlQbnZEcytiblQ0NGNBZGZCVE51cndFdi80OE5TZkJUVXNYVFQ4cVN4VVhZOHhGQTZqbkZ6OUpZNU1CMlBiUFVyTi8KICAgICAgICAgckVoVDFqakRPbmpUWjFOUkV5SXh1ZlZSTkRSSk5GMkxaM2ppVVJEZjludDJmOGxCSVlmTHBySSt0UGFjVG0wWDlWbnoKICAgICAgICAgbHRkQ3pOaUtBTko1ZlBpRm9PVG1XMXI4YkM0WUM5SjI5QmZTV3grMVpzeUxvZEhVLzhOb2RzOW5QSGx2Qk85V0RtaEkKICAgICAgICAgNEVRZz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnNlbmRlcjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb20KICAgICAgICAgOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUk4TmM2UWhLOFJ3L1NwUjFKaGdNcW10ZFNLaHQ0RUJSYjBqNnRRaWw3bTA9OwogICAgICAgIGI9cmJhZkkwd3dSK3VqNkRxNytEWmg4ZkhOZ0ZLek9aaWdoaG5idXB1OGQ0N1BINTNNUDJER1NOdzJEYnNmT3BRd3JyCiAgICAgICAgIFVRYm9JTVVFRFRoVzQvMkZyaTNZaTI2WDh2NTlicnFnZzdLTnhTOEZFN1hIanRmeVZZVGdzMjYzZkN6Zm1LYmhmdU1qCiAgICAgICAgIGpJYytJczgzYTBIeWZGOVNiWUpDY1EzZ3lmUUt2MTl6SVZYT1pzcXFGSWNlODkwcTN4eFg4emNYWnlTTVo4YkJObUZ1CiAgICAgICAgIEwvN2FnRGxFTGRZRXBDTVVtVVNGa1hrcmZOeWI5TWZVSTNuZnhsOWx2NG9FMjFIU2FGeVptYlZURldBcXJkMFozRmlLCiAgICAgICAgIGhCS1F2bU5yUUNkMHdpMjU3N0NDK1FVTW1KZ1FFbEQwbXBtWDNTQk9JSDdjYWJUaFUyTmIvZUFsM1IwemtVcFZ4QzhWCiAgICAgICAgIFpjSUE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWpJbDNONEU2V2U2SXNaUDRjRHRUTXJucC9DNHZKYTdkQVVUZmxWWnRiUmFURlBnMm9HCglQNTdzR2Nac3Q0TitmOXVvRUl5NC9mWEJ0YWpmS2tUUgpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQURLQ05iNlJ6SWk0c2MwYXFmL3ozQk91YzBiQTNyQk9NQnN4NG9aTkJSSTUrYXMzNHdoN1FURTA4WmhBS1F0UlJCbk9KaDhyUjFHOGlZYUl0WmVUalcwbXZ5dz0KWC1SZWNlaXZlZDogYnkgMTAuMjIzLjE2NC4xMzIgd2l0aCBTTVRQIGlkIGc0bXI0NzY1Mjd3cmIuMzA3LjE1MDQ1MTAwOTM3ODI7CiBNb24sIDA0IFNlcCAyMDE3IDAwOjI4OjEzIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClNlbmRlcjogYW5kZXJzLmcuaGFtbWFyQGdtYWlsLmNvbQpSZWNlaXZlZDogYnkgMTAuMjIzLjEyOS4xOTUgd2l0aCBIVFRQOyBNb24sIDQgU2VwIDIwMTcgMDA6Mjg6MTMgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxvcC55NXYzZDZxMmtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KUmVmZXJlbmNlczogPG9wLnk1djNkNnEya2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpGcm9tOiBBbmRlcnMgSGFtbWFyIDxhbmRlcnNAaGFtbWFyLm5ldD4KRGF0ZTogTW9uLCA0IFNlcCAyMDE3IDA5OjI4OjEzICswMjAwClgtR29vZ2xlLVNlbmRlci1BdXRoOiA3aU9EelMzNlRBWWdMc3NNS2k5QmFKZER1aTAKTWVzc2FnZS1JRDogPENBS0RVTjF2SERjWjR0RlFVRFFZVk84NGRBK0picjNxaDNLUkYrZjFiajdTVXlndXpCZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBDb21waWxlciBQbHVnaW4gdmVyc2lvbiAzLjcuMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSJmNDAzMDQ1ZjFjMWFiMzc3MzYwNTU4NTgwZGU2IgoKLS1mNDAzMDQ1ZjFjMWFiMzc3MzYwNTU4NTgwZGU2CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgorMQoKVGVzdGVkIHdpdGggTWF2ZW4gMy4zLjMgYW5kIElCTSBKREsgNy4xIG9uIFdpbmRvd3MgNy4KCi9BbmRlcnMKCk9uIEZyaSwgU2VwIDEsIDIwMTcgYXQgMzo1MCBQTSwgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPiB3cm90ZToKCj4gSGksCj4KPiBXZSBzb2x2ZWQgNiBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plCj4gY3RJZD0xMjMxNzIyNSZ2ZXJzaW9uPTEyMzQxMjY2JnN0eWxlTmFtZT1UZXh0Cj4KPiBUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9cHJvamVjdCUyMCUzRCUKPiAyMDEyMzE3MjI1JTIwQU5EJTIwc3RhdHVzJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklMjBrZXklCj4gMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDCj4KPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM1OS8KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zZXJ2aWNlL2xvY2FsL3JlcG9zaXRvcmllcy9tYXYKPiBlbi0xMzU5L2NvbnRlbnQvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL21hdmVuLWNvbXBpbGVyLXBsdWcKPiBpbi8zLjcuMC9tYXZlbi1jb21waWxlci1wbHVnaW4tMy43LjAtc291cmNlLXJlbGVhc2UuemlwCj4KPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBtYXZlbi1jb21waWxlci1wbHVnaW4tMy43LjAtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6Cj4gMTE0OGQ4YTFmODllNjkwMGFmYjBjYTFkYmY3NGY2NDkzMjQwMmNmZAo+Cj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWNvbXBpbGVyLXBsdWdpbi1MQVRFU1QvCj4KPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+Cj4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPgo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKLS1mNDAzMDQ1ZjFjMWFiMzc3MzYwNTU4NTgwZGU2LS0KCkZyb20gZGV2LXJldHVybi0xMjQwMzktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIFNlcCAxNSAxMjoyMjo1NSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwMzktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQkQ4NzgxQUVDMAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDE1IFNlcCAyMDE3IDEyOjIyOjU1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzAxMjMgaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgU2VwIDIwMTcgMTI6MjI6NTUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDcwMDE0IGludm9rZWQgYnkgdWlkIDUwMCk7IDE1IFNlcCAyMDE3IDEyOjIyOjU0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzAwMDEgaW52b2tlZCBieSB1aWQgOTkpOyAxNSBTZXAgMjAxNyAxMjoyMjo1NCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMTUgU2VwIDIwMTcgMTI6MjI6NTQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAxRTA0MTE4NEQ2NQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTUgU2VwIDIwMTcgMTI6MjI6NTQgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjQ4MQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjQ4MSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsCglIRUFERVJfRlJPTV9ESUZGRVJFTlRfRE9NQUlOUz0wLjAwMSwgSFRNTF9NRVNTQUdFPTIsCglLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDEsCglVUklCTF9CTE9DS0VEPTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFFRQWZ4bllqZVI4VCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCUZyaSwgMTUgU2VwIDIwMTcgMTI6MjI6NTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC13bTAtZjQ2Lmdvb2dsZS5jb20gKG1haWwtd20wLWY0Ni5nb29nbGUuY29tIFs3NC4xMjUuODIuNDZdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNkU5MzU1RkM4QQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTUgU2VwIDIwMTcgMTI6MjI6NTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd20wLWY0Ni5nb29nbGUuY29tIHdpdGggU01UUCBpZCBlNzFzbzc4MzUzOTF3bWcuNAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDE1IFNlcCAyMDE3IDA1OjIyOjUwIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246c2VuZGVyOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQKICAgICAgICAgOnN1YmplY3Q6dG87CiAgICAgICAgYmg9c3BvNzF6R0tRaVZpbUtRSURVWENWalNsOEVRVVZaclVnZGxuUTlkMUp6QT07CiAgICAgICAgYj1MdEwvMXpoNCt1VDYvTlpteHpOS1VqdDhKeFF1MFNVbDUvUW5jOXpCRm5FMGpCd0VXa2RoTGVSWjlMNFEzVi9UbWQKICAgICAgICAgR3FVTURQNnpNM0JkKy9mRGdmNUxNd292cnFjMzZobmhQNXp6LzREN1h1NC9qOFBmVVhITy9yR01WaVYzeFRwVlNmb0UKICAgICAgICAgZEpaRUw0alBOWTgwaWpRRFZ5NXFaRU9KWUY2THdzWERaSGZoS3ZNZERCRmY4d2pxQUMzSzhFUVVzcFBzM0pva042by8KICAgICAgICAgMUR6MlB4UmJnUis0NXJScHJVTTZaOUllSVBHeXVRcG1TdWhYUkhkaSsrZWl1Rkw5VVJVU3kvK1NoQ2R6MUdrV1ZHSGMKICAgICAgICAgek9qSi9EYkhqTUR4YVBUdXJ3ejNmS0JWdXhweUNoRVpzaEV2T24rZ09WaTZJYy93dWZKY2s4d3RhSGZlQWRZM2VvNnoKICAgICAgICAgM3Nvdz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnNlbmRlcjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb20KICAgICAgICAgOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXNwbzcxekdLUWlWaW1LUUlEVVhDVmpTbDhFUVVWWnJVZ2RsblE5ZDFKekE9OwogICAgICAgIGI9YjJnR3NkZVVDdGd1QW1aTlZYZUdPdUErT1JDUEREelJpZUg1OG9uOEFQRmEzUk53QThuN0Vyc24ycEIvbnlZcERhCiAgICAgICAgIDdyUG5CZE1TWGtBejhsa1VnWlZ4ZjllOHBrSTdsSi9CbFp1OC9nbnZPdUVNUXRkcXZYV2ZtZzBUd3JCNkx5a3ZFMDBYCiAgICAgICAgIFZDcUttWGlOeGFrR2F0ckYrdG1keDRiSlZYTHFRZ3BZM0svU2xKbzRmM3l4dUxhRmJLNGJQSTEydmJEbklCZ1hFOEUzCiAgICAgICAgIHQ4Qjc5MWZITzdzZE0zRVBVcWFJU3NsaC9XT1IzYlhYVEgyREJXOUk1QVpEWFpWYjM0dFdjcFpCUHU4Y0ZZcmpjL2pqCiAgICAgICAgIExFLzYvZVZlb2xuVDhscE9ia2NtTStmY1hhbXZSQXVnODhjcnBnU2dXTHRiSmZ3b0JSQWcyNFFqdXBhQU9Sc3JZTU41CiAgICAgICAgIE8xVGc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWpBSC93U1IyaUQ5M2JJQjJobExBSm14Yi9WUHB4WHM3WHVpSi9nMzR0RkNIRy9TME96CgkxUWd0UzVhWWdVRU10V0hDQ3V3VGpveCtZWENRcElmWktza2Y4TDFXa1E9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQkc2SGZPaFZmUlVIVTdMYXVtN1E4bGlzRGo5MkRlYmJOVDJJZW9LVmFEZUNKQkF5eE5KTlc2OEFiSDgrODVUYk1TODdsb1VNNGtkc2p4SEhrL3UrWT0KWC1SZWNlaXZlZDogYnkgMTAuMjguMTUxLjIwMCB3aXRoIFNNVFAgaWQgejE5MW1yMjk0NzQ4NXdtZC4xMTUuMTUwNTQ3ODE2OTU5NzsKIEZyaSwgMTUgU2VwIDIwMTcgMDU6MjI6NDkgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKU2VuZGVyOiBhbmRlcnMuZy5oYW1tYXJAZ21haWwuY29tClJlY2VpdmVkOiBieSAxMC4yMjMuMTM5LjkyIHdpdGggSFRUUDsgRnJpLCAxNSBTZXAgMjAxNyAwNToyMjo0OCAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPDE1MDU0Nzc1NDUuMjM5Mjc3LjExMDcxNTcwOTYuNjM4NDY2QUNAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgogPHBvbnktNTZhM2FkZWFmNjBjNDA1OTZmYjI4NGIyNDUyNDE0OGY2MDVlOGQyMy01MmQ0MWNkNDBmMjM0M2M4OTUyODgwZThmODRkYTNlODBkMzM1NTA5QGRldi5tYXZlbi5hcGFjaGUub3JnPgogPENBK25Qbk15UzJxMXVmYVcrUzZzbWhaWjFKY3hoZjloWTUtM25CSi1pQ1dlalBVQURWQUBtYWlsLmdtYWlsLmNvbT4KIDwyMDU3OTQ4LmsxR3lmanVHWGRAZ2lnYT4gPENBK25Qbk13Y29IRlp2VXFXaVVzeUhCaGFNbW9TY2N5ZFRCc3pTWGdzR3RGPXdOR0RLd0BtYWlsLmdtYWlsLmNvbT4KIDxDQUtEVU4xdjVUc0ZuK28tdnY4SGgzUHV2R1hXZStmUW5NK2p3RFp0Kz16dHhzcGNnZ3dAbWFpbC5nbWFpbC5jb20+CiA8Q0FLRFVOMXNtMEtLck5va3B4aCtOQk9Ya1VGODRHQkx4aFFWMmZkd0VLLUZ4Ky14blZ3QG1haWwuZ21haWwuY29tPgogPENBS0RVTjF0ZEQ9UHg1bjlMNjBLY2EyRnVuQ1ZOMndyb1BkOVVyUU5LeF94YnptdE02d0BtYWlsLmdtYWlsLmNvbT4gPDE1MDU0Nzc1NDUuMjM5Mjc3LjExMDcxNTcwOTYuNjM4NDY2QUNAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgpGcm9tOiBBbmRlcnMgSGFtbWFyIDxhbmRlcnNAaGFtbWFyLm5ldD4KRGF0ZTogRnJpLCAxNSBTZXAgMjAxNyAxNDoyMjo0OCArMDIwMApYLUdvb2dsZS1TZW5kZXItQXV0aDogalg5NWhPMFBrSGRmN0puTjNQTWtRUGN5T0E4Ck1lc3NhZ2UtSUQ6IDxDQUtEVU4xdk5rU1JPZ25TTGRiXzBqdWh0Ql9laHNrQmtzNkJ0OUUtaUtCY1A5cmp5amdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDUzYjIwODQyNDIwMDU1OTM5NzM0YSIKCi0tMDAxYTExNDUzYjIwODQyNDIwMDU1OTM5NzM0YQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpCYXNlZCBvbiBJZ29yJ3MgZmVlZGJhY2sgSSdtIGNoYW5naW5nIG15IHZvdGUgdG8gKzEuCgpIYXZpbmcgdGhpcyBjbGFzcyBsb2FkZXIgY2hhbmdlIGluIGEgYnVnIGZpeCByZWxlYXNlIGlzIHByb2JhYmx5IG5vdAooc2VtdmVyKSBpZGVhbCB0aG91Z2guCgovQW5kZXJzCgpPbiBGcmksIFNlcCAxNSwgMjAxNyBhdCAyOjEyIFBNLCBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvbT4gd3JvdGU9CjoKCj4gSSBhbnN3ZXJlZCBpbiBtb3JlIGRldGFpbHMgb24gbTJlLWRldiwgYnV0IEkgYmVsaWV2ZSB3ZSBjYW4gY29tcGVuc2F0ZQo+IGZvciB0aGUgY2hhbmdlIGZyb20gbTJlIGVuZC4gSW4gdGhlIHdvcnN0IGNhc2Ugd2UnbGwgYnVuZGxlIGhhY2tlZAo+IHZlcnNpb24gb2YgRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyIHdpdGggbTJlLCBub3QgaWRlYWwsIGJ1dCBub3QgdGhlIGVuZAo+IG9mIHRoZSB3b3JsZCBlaXRoZXIuCj4KPiAtLQo+IFJlZ2FyZHMsCj4gSWdvcgo+Cj4gT24gRnJpLCBTZXAgMTUsIDIwMTcsIGF0IDA3OjIxIEFNLCBBbmRlcnMgSGFtbWFyIHdyb3RlOgo+ID4gT24gRnJpLCBTZXAgMTUsIDIwMTcgYXQgODoyOSBBTSwgQW5kZXJzIEhhbW1hciA8YW5kZXJzQGhhbW1hci5uZXQ+Cj4gd3JvdGU6Cj4gPgo+ID4gPiBSZXBvcnRpbmcgYmFjayBmcm9tIHRlc3RzIG9mIG0yZSB3aXRoIGVtYmVkZGVkIE1hdmVuIDMuNS4xLCB3ZSBzZWUKPiBwcm9ibGVtCj4gPiA+IHdpdGggdGhlIGpheHdzLW1hdmVuLXBsdWdpbiBtb2pvLiBXZSdyZSB0d28gcGVvcGxlIHNlZWluZyB0aGUgaXNzdWUKPiA+ID4gaW5kZXBlbmRlbnRseSwgYnV0IHVuZm9ydHVuYXRlbHkgRnJlZCBCcmljb24gaGFzbid0IGJlZW4gYWJsZSB0bwo+IHJlcHJvZHVjZS4KPiA+ID4KPiA+Cj4gPiBUbyBmb2xsb3cgdXAgb24gdGhpcywgbXkgdGVzdHMgaW5kaWNhdGUgdGhhdCBNYXZlbiAzLjUuMSBjYXVzZXMgY2hhbmdlZAo+ID4gY2xhc3MgbG9hZGluZyB0aGF0IGNvdWxkIGNhdXNlIGlzc3VlcyBmb3IgcGx1Z2lucyBpbiBtMmUuIEkndmUgYXNrZWQgZm89CnIKPiA+IGlucHV0IGZyb20gdGhlIG0yZSBkZXZzIGlmIGl0IGlzIHBvc3NpYmxlIHRvIGhhbmRsZSBpbiBtMmUgYnV0IHRoZXkKPiA+IGhhdmVuJ3QKPiA+IHJlc3BvbmRlZCB5ZXQuCj4gPgo+ID4gL0FuZGVycwo+ID4KPiA+Cj4gPiA+Cj4gPiA+IFNvIGN1cnJlbnRseSBJJ20gMCBvbiB0aGUgdm90aW5nIGJ1dCBJJ2xsIGludmVzdGlnYXRlIHNvbWUgbW9yZS4KPiA+ID4KPiA+ID4gL0FuZGVycwo+ID4gPgo+ID4gPiBPbiBXZWQsIFNlcCAxMywgMjAxNyBhdCA5OjI2IEFNLCBBbmRlcnMgSGFtbWFyIDxhbmRlcnNAaGFtbWFyLm5ldD4KPiB3cm90ZToKPiA+ID4KPiA+ID4+Cj4gPiA+Pgo+ID4gPj4gT24gVHVlLCBTZXAgMTIsIDIwMTcgYXQgODo1NCBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPiA+PiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+ID4+Cj4gPiA+Pj4gSGF2ZSB3ZSBnb3QgYW55IGZlZWRiYWNrIGZyb20gdGhlIGVtYmVkZGVyIGludGVncmF0aW9ucyB5ZXQ/Cj4gPiA+Pj4KPiA+ID4+Cj4gPiA+PiBJIGhhdmVuJ3QgaGVhcmQgYW55dGhpbmcgZnJvbSB0aGUgbTJlIHBlb3BsZS4gTWF5YmUgd2UgbmVlZCB0byBwaW5nCj4gdGhlbQo+ID4gPj4gZGlyZWN0bHkuIEkgY2FuIGNvbnRhY3QgRnJlZCBCcmljb24uCj4gPiA+Pgo+ID4gPj4gL0FuZGVycwo+ID4gPj4KPiA+ID4+Cj4gPiA+Pj4KPiA+ID4+PiBPbiBNb24gMTEgU2VwIDIwMTcgYXQgMjI6NTcsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlPQouZnI+Cj4gPiA+Pj4gd3JvdGU6Cj4gPiA+Pj4KPiA+ID4+PiA+IGp1c3QgZm9yIHRoZSByZWNvcmRzOiBpdCBpcyBXaW5kb3dzICsgR2l0IEJhc2ggKE1JTkdXNjQpIG9ubHkKPiA+ID4+PiA+Cj4gPiA+Pj4gPiBhbmQgdGhlcmUgaXMgYSBjaGFuY2UgdGhhdCBhZGRpbmcgLURqYW5zaS5mb3JjZT0zRHRydWUgY2FuIGZvcmNlCj4gSkFuc2kKPiA+ID4+PiA+IGFjdGl2YXRpb24gKGV2ZW4gaWYgSkFuc2kgZmFpbHMgdG8gZGV0ZWN0IHRoYXQgaXQgc2hvdWxkCj4gYXV0by1hY3RpdmF0ZSkKPiA+ID4+PiA+Cj4gPiA+Pj4gPiBkZXRhaWxzIG9uIGlzc3VlIGluIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyOD0KMgo+ICwKPiA+ID4+PiBhbmQgYQo+ID4gPj4+ID4gZnV0dXJlIEpBbnNpIGlzc3VlLi4uCj4gPiA+Pj4gPgo+ID4gPj4+ID4gUmVnYXJkcywKPiA+ID4+PiA+Cj4gPiA+Pj4gPiBIZXJ2PUMzPUE5Cj4gPiA+Pj4gPgo+ID4gPj4+ID4gTGUgbHVuZGkgMTEgc2VwdGVtYnJlIDIwMTcsIDEyOjUzOjQ2IENFU1QgU3RlcGhlbiBDb25ub2xseSBhID1DMz0KPUE5Y3JpdAo+IDoKPiA+ID4+PiA+ID4gU28gdGhhdCBpcyB3aW5kb3dzIG9ubHksIG9yIHdlcmUgdGhleSBsb3N0IG9uIG90aGVyIE9TZXMgZm9yIHlvPQp1Lgo+ID4gPj4+ID4gPgo+ID4gPj4+ID4gPiBJIGhhdmUgY29sb3VycyBvbiBsaW51eCAodmlhIGRvY2tlcikgYW5kIG9zLXgKPiA+ID4+PiA+ID4KPiA+ID4+PiA+ID4gT24gMTEgU2VwdGVtYmVyIDIwMTcgYXQgMTI6MzUsIGRlamFuMjYwOUBnbWFpbC5jb20gPAo+ID4gPj4+IGRlamFuMjYwOUBnbWFpbC5jb20+Cj4gPiA+Pj4gPiA+Cj4gPiA+Pj4gPiA+IHdyb3RlOgo+ID4gPj4+ID4gPiA+ICsxIChjb25kaXRpb25hbGx5KS4KPiA+ID4+PiA+ID4gPgo+ID4gPj4+ID4gPiA+IFRlc3RlZCB2aWEgcHJvamVjdCB0aGF0IGluY2x1ZGVzIGRvemVuIG9mIHBsdWdpbnM6IDFzdCB0aWVyLAo+ID4gPj4+IE1vam9IYXVzCj4gPiA+Pj4gPiBhbmQKPiA+ID4+PiA+ID4gPiBmZXcgM3JkIHBhcnR5IHBsdWdpbnMgKHNvIHRvIHNheSkuCj4gPiA+Pj4gPiA+ID4KPiA+ID4+PiA+ID4gPiBFdmVyeXRoaW5nIGxvb2tzIGdvb2Qgd2l0aCBvbmUgbm90YWJsZSByZWdyZXNzaW9uOgo+ID4gPj4+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyODIgQ29uc29sZSBvdXRwdXQKPiBoYXMKPiA+ID4+PiBubwo+ID4gPj4+ID4gPiA+IGNvbG9ycyAocmVncmVzc2lvbiBpbiBNYXZlbiAzLjUuMSkKPiA+ID4+PiA+ID4gPgo+ID4gPj4+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+Pj4gPiA+ID4gRGVqYW4KPiA+ID4+PiA+ID4gPgo+ID4gPj4+ID4gPiA+IE9uIDIwMTctMDktMTAgMTc6MzksIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4gPj4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20KPiA+ID4+PiA+ID4KPiA+ID4+PiA+ID4gPgo+ID4gPj4+ID4gPiA+IHdyb3RlOgo+ID4gPj4+ID4gPiA+ID4gSGksCj4gPiA+Pj4gPiA+ID4gPgo+ID4gPj4+ID4gPiA+ID4gV2Ugc29sdmVkIDI1IGlzc3VlczoKPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiA+ID4+PiA+ID4gPgo+ID4gPj4+ID4gPiA+IHZlcnNpb249M0QxMjMzODk2NCZzdHlsZU5hbWU9M0RUZXh0JnByb2plY3RJZD0zRDEyMzE2OTIyCj4gPiA+Pj4gPiA+ID4KPiA+ID4+PiA+ID4gPiA+IFRoZXJlIGFyZSAzNTAgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlCj4gPiA+Pj4gPiA+ID4KPiA+ID4+PiA+ID4gPiAzRCUyME1ORyUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlCj4gPiA+Pj4gPiA+ID4gMjBCWSUyMGR1ZSUyMEFTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMGNyZWF0ZWQlMjBBU0MKPiA+ID4+PiA+ID4gPgo+ID4gPj4+ID4gPiA+ID4gU3RhZ2luZyByZXBvOgo+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gMTM2NC8KPiA+ID4+PiA+ID4gPiA+Cj4gPiA+Pj4gPiA+ID4gPiBUaGUgZGlzdHJpYnV0YWJsZSBiaW5hcmllcyBhbmQgc291cmNlcyBjYW4gYmUgZm91bmQgaGVyZToKPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4gPQo+Cj4gPiA+Pj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS8KPiA+ID4+PiA+ID4gPgo+ID4gPj4+ID4gPiA+ID4gU3BlY2lmaWNhbGx5IHRoZSB6aXAsIHRhcmJhbGwgYW5kIHNvdXJjZSBhcmNoaXZlcyBjYW4gYmUKPiBmb3VuZAo+ID4gPj4+IGhlcmU6Cj4gPiA+Pj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+ID0KPgo+ID4gPj4+ID4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLQo+ID4gPj4+IGJpbi56aXAKPiA+ID4+PiA+ID4gPgo+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tPiA9Cj4KPiA+ID4+PiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS0KPiA+ID4+PiBiaW4udGFyLmd6Cj4gPiA+Pj4gPiA+ID4KPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4gPQo+Cj4gPiA+Pj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtCj4gPiA+Pj4gc3JjLnppcAo+ID4gPj4+ID4gPiA+Cj4gPiA+Pj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+ID0KPgo+ID4gPj4+ID4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLQo+ID4gPj4+IHNyYy50YXIuZ3oKPiA+ID4+PiA+ID4gPgo+ID4gPj4+ID4gPiA+ID4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gPiA+Pj4gPiA+ID4gPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5neiBzaGExOgo+ID4gPj4+IDllYjgyMWYxNTNjNzY2NzE5NGFhMTFjY2QwOTliNwo+ID4gPj4+ID4gPiA+Cj4gPiA+Pj4gPiA+ID4gYmQyMDU5NTYwZAo+ID4gPj4+ID4gPiA+Cj4gPiA+Pj4gPiA+ID4gPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcDogc2hhMToKPiAxMjFkNTRiMDQ1MzgwYThhNDg5NWViMTM3OTcwYWIKPiA+ID4+PiA+ID4gPgo+ID4gPj4+ID4gPiA+IDY5ZTY5OGViMGUKPiA+ID4+PiA+ID4gPgo+ID4gPj4+ID4gPiA+ID4gR2l0IHRhZzoKPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vZ2l0LXdpcC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPTNEbWF2ZW4uZ2l0O2E9M0QKPiBjb21taXQ7aD0zRAo+ID4gPj4+ID4gPiA+Cj4gPiA+Pj4gPiA+ID4gMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMwo+ID4gPj4+ID4gPiA+Cj4gPiA+Pj4gPiA+ID4gPiBTdGFnaW5nIHNpdGU6Cj4gPiA+Pj4gPiA+ID4gPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvY29tcG9uZW50cy9yZWYvMy1MQVRFU1QvCj4gPiA+Pj4gPiA+ID4gPgo+ID4gPj4+ID4gPiA+ID4gVm90ZSBvcGVuIGZvciA3MiBob3Vycy4KPiA+ID4+PiA+ID4gPiA+Cj4gPiA+Pj4gPiA+ID4gPiBbIF0gKzEKPiA+ID4+PiA+ID4gPiA+IFsgXSArMAo+ID4gPj4+ID4gPiA+ID4gWyBdIC0xCj4gPiA+Pj4gPiA+ID4gPgo+ID4gPj4+ID4gPiA+ID4gVGhhbmtzLAo+ID4gPj4+ID4gPiA+ID4KPiA+ID4+PiA+ID4gPiA+IFN0ZXBoZW4uCj4gPiA+Pj4gPiA+ID4KPiA+ID4+PiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4+PiAtLS0tLS0tLS0KPiA+ID4+PiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+PiA+Cj4gPiA+Pj4gPgo+ID4gPj4+ID4KPiA+ID4+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0tLS0tLS0tLQo+ID4gPj4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+PiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+PiA+Cj4gPiA+Pj4gPiAtLQo+ID4gPj4+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4gPj4+Cj4gPiA+Pgo+ID4gPj4KPiA+ID4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCi0tMDAxYTExNDUzYjIwODQyNDIwMDU1OTM5NzM0YS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0Nzg2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBEZWMgMTggMDc6NTc6MDkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0Nzg2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDI2MEUzMTdBQzMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxOCBEZWMgMjAxNyAwNzo1NzowOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI3NjcxIGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IERlYyAyMDE3IDA3OjU3OjA4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNzU5MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBEZWMgMjAxNyAwNzo1NzowOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI3NTc4IGludm9rZWQgYnkgdWlkIDk5KTsgMTggRGVjIDIwMTcgMDc6NTc6MDggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDE4IERlYyAyMDE3IDA3OjU3OjA4ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRTRDNDIxODA2MzMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE4IERlYyAyMDE3IDA3OjU3OjA3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS45OApYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuOTggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLAoJSEVBREVSX0ZST01fRElGRkVSRU5UX0RPTUFJTlM9MC4wMDEsIEhUTUxfTUVTU0FHRT0yLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCByelZaR1lrN19WUkcgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sIDE4IERlYyAyMDE3IDA3OjU3OjA2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd20wLWY0My5nb29nbGUuY29tIChtYWlsLXdtMC1mNDMuZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjQzXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDM2RDMwNUYzMEMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE4IERlYyAyMDE3IDA3OjU3OjA2ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNDMuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgOXNvMjcyNzMyNDF3bWUuNAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDE3IERlYyAyMDE3IDIzOjU3OjA2IC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246c2VuZGVyOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQKICAgICAgICAgOnN1YmplY3Q6dG87CiAgICAgICAgYmg9d0ZtR04vRnkrbGIrbCtEN3JNK1haTFNSd29WNDB4YUdJT1BzS29wb0VEZz07CiAgICAgICAgYj1pT1VJYjFvZ0Ezd2M4ZitYbmdUM0dxZHpxZERLQmFwWWRSRDBYWFdFZFpYdFRISGhiaW8rSExTV3hLMzY3bGF1Q0sKICAgICAgICAgc1AwTHpzb083a2V3WEpEZ1FJVHBITElNMGhsOWoxV05pRTRqRzVtQjI3Wmk3SGlRdFdabzhxUWRtL01ENFoydU1teE0KICAgICAgICAgVTQ0V0VBVlZxVlJCWTdOVFFXaFFwd1dET1NSZjVMQkVKZHNQV0pRYWo2Y05DT1N3N2lBUUFsVFh2REJNOVZIWE9ja1AKICAgICAgICAgNlg4bmJIUnVnY3VLczg5YW9zSmVWVVRPVTVlN2F3VDluTmxpQ3pjeHdkR2tPc2lPcWFJWDdKSHNEOGZ0Q0lYVVBhb3gKICAgICAgICAgNC9aSm9PdWVzMGxtbmhCZlVFaVJWYXNjNW9pTGpXQXhuZ3I4a21aY1lJTDhNOExOWVFZYWVtd1BvUTRLRGVzVnF4MzcKICAgICAgICAgYWxxQT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnNlbmRlcjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb20KICAgICAgICAgOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXdGbUdOL0Z5K2xiK2wrRDdyTStYWkxTUndvVjQweGFHSU9Qc0tvcG9FRGc9OwogICAgICAgIGI9bFpoeWpmUEJMM2RRUWNPODB2UHg1NHBKalJQZHZUbnZDTStQaVM3UGF3dDNjcmFVWGc4TlZjQTBiWUw0ZTFXaUFCCiAgICAgICAgIG5MYTNuMldjdTdxaksvNXg3Q09MWG0zL3AwUWlTdEViRkh0ZUoyNXdNbVp6bG5rSWpDZkZiVzhpc3B2VmQvNzBGSkVtCiAgICAgICAgIFNESTNLemtXMkdqUTJNZTd5NVkrTm9jR2lVV0pjTlRBaXhyZmhCRlUyemRwaWtrVWlQc2I3RkJ3UC9uYXYzdkMzdVdJCiAgICAgICAgIDJBcTdVU0E3Mm50cnVkMXZzYlQ5K05LU0lZVEM4SE1IU3hFeEFxd3pJWFNvL2Zzelhsa2R3eFU2UlFrNWNIa2IvMy9FCiAgICAgICAgIFVDNkVTb3ZsVVcyZTBsdjdDT0pOdThleWplODVKRld2WmdHS3djc1VoRFN4aW1TdlpOd05hZ0JkWkVZQVVOTndJUEtmCiAgICAgICAgIDhaemc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFLR0IzbUtVRDJzcGxhTDZta2JKV1BSaWhQakIxRzJnMEV3WnRjemN5d2xCeTl3U3VsbnVmODFJCglZaWRiUmNTZ0RlclhYeTJMOXk4UDZPREx5enZCWWZ6MUNTb3N2UE1CTFE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUNKZkJvdE5oZ3hrTEpCbTlYU2lEQ2tzRGFseC91c1NrMm5UaHg5cnBhNHZQWXZPc0t3eXEzdWdQTmtCZzRZcTVoV2xvNnoxVHk2MHFOdmRUREtDdmJvUGoycz0KWC1SZWNlaXZlZDogYnkgMTAuMjguNi4xNDggd2l0aCBTTVRQIGlkIDE0Mm1yMTA1NjIxMjR3bWcuMjYuMTUxMzU4MzgxODY1MzsKIFN1biwgMTcgRGVjIDIwMTcgMjM6NTY6NTggLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKU2VuZGVyOiBhbmRlcnMuZy5oYW1tYXJAZ21haWwuY29tClJlY2VpdmVkOiBieSAxMC4yMjMuMTMzLjE1MyB3aXRoIEhUVFA7IFN1biwgMTcgRGVjIDIwMTcgMjM6NTY6NTggLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDwxMTkyMjE3MS5iQXpEZUVGaU9NQGdpZ2E+ClJlZmVyZW5jZXM6IDwxMTkyMjE3MS5iQXpEZUVGaU9NQGdpZ2E+CkZyb206IEFuZGVycyBIYW1tYXIgPGFuZGVyc0BoYW1tYXIubmV0PgpEYXRlOiBNb24sIDE4IERlYyAyMDE3IDA4OjU2OjU4ICswMTAwClgtR29vZ2xlLVNlbmRlci1BdXRoOiB2WWxwZ0poYjY4SEF2cjVGNEwtQmNpSVlWbDQKTWVzc2FnZS1JRDogPENBS0RVTjF2VEJwVk5rMUEwUVVNaGRaLTJRdkN0eTFLRktwUGRadVVlOXdfSkxCWUtNZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtGRUVEQkFDSyBXQU5URURdIGVkaXQgYnV0dG9uIG9uIGEgTWF2ZW4gc2l0ZQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0NDJhNGVkOTQ1ZDYwNTYwOThiMWU3IgoKLS0wMDFhMTE0NDJhNGVkOTQ1ZDYwNTYwOThiMWU3CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKClRoZSBpZGVhIGlzIGdyZWF0LCBidXQgcGVyc29uYWxseSBJIGRvbid0IGZpbmQgdGhlIGljb24gbG9jYXRpb24gb2J2aW91cy4gSQp3YXMgc2VhcmNoaW5nIGZvciBhIHBlbiBpY29uIGluIHRoZSBsb3dlciByaWdodCBjb3JuZXIgb2YgaHRlIHNjcmVlbiwgd2hpY2gKKHRvIG1lKSBpcyB0aGUgZGUtZmFjdG8gc3RhbmRhcmQuIElmIHdlIGhhdmUgaXQgd2hlcmUgaXQgaXMgbm93LCB0aGVyZQpzaG91bGQgYXQgbGVhc3QgYmUgYSBob292ZXIgaGludCBzYXlpbmcgd2hhdCBpdCBkb2VzLgoKL0FuZGVycwoKT24gTW9uLCBEZWMgMTgsIDIwMTcgYXQgODo0MiBBTSwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cndyb3RlOgoKPiBIaSwKPgo+IEkganVzdCBtYW5hZ2VkIHRvIGFkZCBhbiAiZWRpdCIgYnV0dG9uIGluIE1hdmVuIGdlbmVyYXRlZCBzaXRlcywgdGhhdCB3aWw9CmwKPiBoZWxwIHBlb3BsZSBmaW5kIHRoZSBzb3VyY2Ugb2YgdGhlIGRvY3VtZW50Lgo+Cj4gU2VlIGFuIGV4YW1wbGUgaGVyZSAodGhlIGxpdHRsZSBpY29uIG5lYXIgdGhlIHZlcnNpb24pOgo+IGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3NraW5zLWFyY2hpdmVzL21hdmVuLWZsdWlkby1za2luLUxBVEVTVC8KPgo+IEkgd2FudGVkIHRvIHB1Ymxpc2ggaXQgdG8gTWF2ZW4gc2l0ZSB0aHJvdWdoCj4gaHR0cDovL3N2bi5hcGFjaGUub3JnL3IxODE4NDg5Cj4gYnV0IGJ1aWxkYm90IGRpZCBub3QgY2F0Y2ggdGhlIFNOQVBTSE9UIG0tc2l0ZS1wIHBsdWdpbjogd2UnbGwgaGF2ZSB0byB3YT0KaXQKPiBmb3IgdGhlIHJlbGVhc2UgKGFmdGVyIERveGlhIHRoZW4gRG94aWEgU2l0ZXRvb2xzIHJlbGVhc2VzOiBwbGVhc2Ugdm90ZSkuCj4KPiBGZWVkYmFjayBhcHByZWNpYXRlZCBvbiB0aGUgbmV3IGljb24sIGl0cyBjb25maWd1cmF0aW9uLCBvciBhbnkgaWRlYSB0aGF0Cj4gY291bGQKPiBpbXByb3ZlIHRoZSBmZWF0dXJlLgo+IERvbid0IGhlc2l0YXRlIHRvIHByb3Bvc2UgaW1wcm92ZW1lbnRzIGFzIGh0bWwgY2hhbmdlczogd2UnbGwgc2VlIGxhdGVyCj4gaG93IHRvCj4gZ2V0IHRoZSB1cGRhdGUgaW4gdGhlIFZlbG9jaXR5IHRlbXBsYXRlIHRoYXQgZ2VuZXJhdGVkIHRoZSBodG1sLi4uCj4KPiBSZWdhcmRzLAo+Cj4gSGVydj1DMz1BOQo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKLS0wMDFhMTE0NDJhNGVkOTQ1ZDYwNTYwOThiMWU3LS0KCkZyb20gZGV2LXJldHVybi0xMjQxMjgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIE9jdCAgMiAxMjoxMzoyNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxMjgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMzNDQ0IxMEZDMwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sICAyIE9jdCAyMDE3IDEyOjEzOjI1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTc2OTggaW52b2tlZCBieSB1aWQgNTAwKTsgMiBPY3QgMjAxNyAxMjoxMzoyNCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTc2MDkgaW52b2tlZCBieSB1aWQgNTAwKTsgMiBPY3QgMjAxNyAxMjoxMzoyNCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk3NTkyIGludm9rZWQgYnkgdWlkIDk5KTsgMiBPY3QgMjAxNyAxMjoxMzoyNCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMDIgT2N0IDIwMTcgMTI6MTM6MjQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBCMkEyQzFBMDk4QwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgIDIgT2N0IDIwMTcgMTI6MTM6MjMgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjM4ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuMzggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgSFRNTF9PQkZVU0NBVEVfMDVfMTA9MC4wMDEsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBGMTE1V3Jkb2tXa2UgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sICAyIE9jdCAyMDE3IDEyOjEzOjIyICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd20wLWY0NC5nb29nbGUuY29tIChtYWlsLXdtMC1mNDQuZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjQ0XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEFGRTlFNUY1QjgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICAyIE9jdCAyMDE3IDEyOjEzOjIxICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNDQuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgazRzbzgwMjUyNjd3bWMuMQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDAyIE9jdCAyMDE3IDA1OjEzOjIxIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvCiAgICAgICAgIDpjYzsKICAgICAgICBiaD1iMTlQaFBHS21vRFBlY1BXV3lBb0F5S2xUTGxCZFRDS1VhMkZBYjlWOS9ZPTsKICAgICAgICBiPUhMNHlGSnI1eFZJNDhpQ1NZVXdXRzZLZG12Z3lSaXJ1WmtWcDEycjVYM0hjejRKM3MvMnlOUUtOVUlnRkR3MlVKVwogICAgICAgICAzUE0rbEdRRFJhRlZqUkJsMFpEcEZrcHlWYlRQUVFndHpMa1NDTTZocHpXRm12K2NYbjRoUVR2SHBGd3VmYUJBc1BpRwogICAgICAgICB4c3FPcDFJVjk0ZnZPcTc0ak1hMGZ5c2VwYXlZcG9qOG12cE9TTEhTV1JvdTVLQkszaGpmdzJ0NHBkVzRKVEVEaTlQaQogICAgICAgICBpdEdmZGVtaFZrVXVRTGN5cnc2MDY4SER5OTNxcnByT1Q1aG13MmNZcTBkNzZlWXBURDFKRU52emRabkhkbWRqNHNVSQogICAgICAgICBDdG14MDUybDRYUDRZZU0xeGdGZ2tjM1JMYXEvZjRWd1VKOUNYNzlFTkQ1UE4rN3Jtemh3WUNXcGd6SkxEU2xkK2FocwogICAgICAgICBJZDFRPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzpjYzsKICAgICAgICBiaD1iMTlQaFBHS21vRFBlY1BXV3lBb0F5S2xUTGxCZFRDS1VhMkZBYjlWOS9ZPTsKICAgICAgICBiPWkxUkEwOGltOUFmTFg4ZGJIdnIxQ1FjV0lVOHNjUWQ0amxEVmdGTWpEcHpSdVNUNERxZU1oN0JBMUJwby8vcHlvRQogICAgICAgICBZQjZKaFdrMmpJNWdhOHcyQUJ1eENqM3pTTkwyKy9hV2RxdVFsK3FQUThPK1VDcVpmVUpWb053SW8zYkdrWm1WZmhpUwogICAgICAgICArd2FKRHRoVUlXRC82dVJabU5BbmlQNnBMaC9aTjErQlhvL3o3ZldVeWdFVk1KYXoxZ0dPTXFqdjVmNVZ0cnNxRXhMQwogICAgICAgICArY0plVklKOWRTcDhrWTBoa2lNaFBDWEM1R0pQRjFHcmRtWitnNmIva3dHY0o2NFVVSk5qd2k1QWwyall2OEhEdUxrdAogICAgICAgICBJOTVBb2JQdWNHc3VPd2ZKS0x3Ny9jUHh0M2pZS3R2ZWs0TnR1VjhNRXBOQVN5NVQ4L2xZd3QvRVExbStiMXh4R1RCbAogICAgICAgICBzdUNnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVoSDhMN0s3RWN2UU0zYWdzWkhqYy9ybC9JUVVjaVhQUWg3blpsUG4zUVVGeDVhS2psUAoJa0NnOTAwajI0Q0FwNXg2cFhSKzlZb2FhWmZTU0tOMEdPRHJvNU5RPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQ0lJbDNmUE85ZUZnWFgvQzRUNUo2OFpSZ3FOYlBNTmtXZU5mZWZvK3BadTMyREZtNEo4WmRPV1hsY1VHU2hCZXF4cUxKOGNhdVR2WDBocXFTR1BWbz0KWC1SZWNlaXZlZDogYnkgMTAuODAuMTQ2LjU2IHdpdGggU01UUCBpZCBpNTNtcjIwNzkwMzg0ZWRhLjE0OC4xNTA2OTQ2Mzk1MzkxOwogTW9uLCAwMiBPY3QgMjAxNyAwNToxMzoxNSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuODAuMjA5LjE5OCB3aXRoIEhUVFA7IE1vbiwgMiBPY3QgMjAxNyAwNToxMzoxNSAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPGIwMzlmZDA5LTliNTItMDdkMS03MjI5LTdjM2ZhNGY5MzFhMkBnbXguZGU+ClJlZmVyZW5jZXM6IDxkMzBlYTQ3Ni0wNzk0LWYwOTYtY2U2MS01ZmI0MWIwM2I5NmFAZ214LmRlPiA8NTcwOTY3ZjktODE1MC1mMDZhLTUyMTMtYWU1YzY4NjZmMmQwQGdteC5kZT4KIDxDQUtZM1F5VkplUnIza1FrN2RnXy1CZjJPOWt5TjRFdkRnWXpXcjhpS0RWZ1pCTnZIVkFAbWFpbC5nbWFpbC5jb20+IDxiMDM5ZmQwOS05YjUyLTA3ZDEtNzIyOS03YzNmYTRmOTMxYTJAZ214LmRlPgpGcm9tOiBHYWJyaWVsIEJlbGluZ3VlcmVzIDxiZWxpbmd1ZXJlc0BnbWFpbC5jb20+CkRhdGU6IE1vbiwgMiBPY3QgMjAxNyAwOToxMzoxNSAtMDMwMApNZXNzYWdlLUlEOiA8Q0FLWTNReVZKRnR6TkIzdnpfVDVSZVdOSFpxaDZEYl9KcVZCcHV4OW9kSkdEWXRqOUJBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIFdBUiBQbHVnaW4gdmVyc2lvbiAzLjIuMApUbzogaW5mb0Bzb2ViZXMuZGUKQ2M6IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iZjQwMzA0NWMxOTdlOTdjYTUxMDU1YThmNGNlYiIKCi0tZjQwMzA0NWMxOTdlOTdjYTUxMDU1YThmNGNlYgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKSGkgS2FybDoKClRoZSBmaXggaXMgb24gUFIjNSB3aGljaCB3YXMgY29tbWl0dGVkIGFmdGVyIHJlbGVhc2UgMS4yNCwgc28gYSBuZXcgcmVsZWFzZQppcyBuZWVkZWQuCkkgdGVzdGVkIHRoZSBwbHVnaW4gd2l0aCBpbnRlcnBvbGF0aW9uIDEuMjUtU05BUFNIT1QgYW5kIGl0IHNvbHZlcyBNV0FSLTMwMywKYnV0IHdpdGggdGhlIDEuMjQgcmVsZWFzZSBkb2VzIG5vdC4KCkdhYnJpZWwKCjIwMTctMTAtMDIgNTozMyBHTVQtMDM6MDAgS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+OgoKPiBIaSwKPgo+Cj4gT24gMDIvMTAvMTcgMDQ6NTUsIEdhYnJpZWwgQmVsaW5ndWVyZXMgd3JvdGU6Cj4KPj4gV291bGQgaXQgYmUgcG9zc2libGUgdG8gY3V0IGEgcmVsZWFzZSBvZiBwbGV4dXMtaW50ZXJwb2xhdGlvbiBhbmQgdXBncmFkZQo+PiB0aGlzIGRlcGVuZGVuY3kgdG8gc29sdmUgTVdBUi0zMDM/Cj4+Cj4KPiBUaGUgcGxleHVzLWludGVycG9sYXRpb24gdmVyc2lvbiAxLjI0IGlzIGluY2x1ZGVkIHdoaWNoIGNvbnRhaW5zIHRoZSBQUiM4Cj4gLi4uc28gZnJvbSBteSBwb2ludCBvZiB2aWV3IHRoaXMgaXMgYWxyZWFkeSBkb25lIChOZWVkIHRvIGNsb3NlIE1XQVItMzAzKSA/Cj4gQ2FuIHlvdSBjaGVjayB0aGF0IHdpdGggdGhhdCByZWxlYXNlPwo+Cj4gS2luZCByZWdhcmRzCj4gS2FybCBIZWlueiBNYXJiYWlzZQo+Cj4KPj4gMjAxNy0wOS0zMCAxMzoxNiBHTVQtMDM6MDAgTWlrYWlsIE9zaXBvdiA8bW9zaXBvdkBnbXguZGU+Ogo+Pgo+PiBBbSAyMDE3LTA5LTMwIHVtIDE3OjU1IHNjaHJpZWIgS2FybCBIZWlueiBNYXJiYWlzZToKPj4+Cj4+PiBIaSwKPj4+Pgo+Pj4+IFdlIHNvbHZlZCAzIGlzc3VlczoKPj4+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamUKPj4+PiBjdElkPTEyMzE4MTIxJnZlcnNpb249MTIzNDEzNzIKPj4+Pgo+Pj4+IFRoZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+Pj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJTNEJQo+Pj4+IDIwTVdBUiUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlMjBCWSUKPj4+PiAyMGtleSUyMERFU0MlMkMlMjBwcmlvcml0eSUyMERFU0MlMkMlMjB1cGRhdGVkJTIwREVTQwo+Pj4+Cj4+Pj4gU3RhZ2luZyByZXBvOgo+Pj4+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzEKPj4+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzcKPj4+PiAxL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi13YXItcGx1Z2luLzMuMi4wL21hdmVuLXdhci0KPj4+PiBwbHVnaW4tMy4yLjAtc291cmNlLXJlbGVhc2UuemlwCj4+Pj4KPj4+PiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPj4+PiBtYXZlbi13YXItcGx1Z2luLTMuMi4wLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOgo+Pj4+IDVjNjYxZjQ1NTQ2MTYxNDc0OTEwMzZkZmFjNjg5YmE5ZGI5MGNlYzIKPj4+Pgo+Pj4+Cj4+Pj4gU3RhZ2luZyBzaXRlOgo+Pj4+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLXdhci1wbHVnaW4tTEFURVNULwo+Pj4+Cj4+Pj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4+Pj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPj4+Pgo+Pj4+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4+Pj4KPj4+Pgo+Pj4gKzEKPj4+Cj4+PgoKLS1mNDAzMDQ1YzE5N2U5N2NhNTEwNTVhOGY0Y2ViLS0KCkZyb20gZGV2LXJldHVybi0xMjQxMjUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIE9jdCAgMiAwMjo1NTo1MiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxMjUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgODYyMTgxMDEzRQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sICAyIE9jdCAyMDE3IDAyOjU1OjUyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODU4OTUgaW52b2tlZCBieSB1aWQgNTAwKTsgMiBPY3QgMjAxNyAwMjo1NTo0NyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODU4MjggaW52b2tlZCBieSB1aWQgNTAwKTsgMiBPY3QgMjAxNyAwMjo1NTo0NiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg1ODEyIGludm9rZWQgYnkgdWlkIDk5KTsgMiBPY3QgMjAxNyAwMjo1NTo0NiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMDIgT2N0IDIwMTcgMDI6NTU6NDYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBFMEIwOUQ3RDQ1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAgMiBPY3QgMjAxNyAwMjo1NTo0NSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuODgKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi44OCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBIVE1MX09CRlVTQ0FURV8wNV8xMD0wLjAwMSwgS0FNX05VTVNVQkpFQ1Q9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBneEw4Nmh3bXB2bEkgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sICAyIE9jdCAyMDE3IDAyOjU1OjQzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd20wLWY0Ny5nb29nbGUuY29tIChtYWlsLXdtMC1mNDcuZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjQ3XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEY0MTUxNUZCNEUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICAyIE9jdCAyMDE3IDAyOjU1OjQyICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNDcuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgbTcyc281OTkyMDg0d21jLjAKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAwMSBPY3QgMjAxNyAxOTo1NTo0MiAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1IckRUZ0FoSEc2QXQ3NHJIRXJBY0ZweGdlL3pjNEM2WWhHUWF2Zm5pNy9nPTsKICAgICAgICBiPVlYWExBYzc1U0xOeHVBZG1VemNuZkpHOFZFSE54REZWaTVYN0IyM0hnZ3lIdWxYclFHcFh1bXNZZENmbmdIczA1UgogICAgICAgICB2OTMrem9vU0lta08yWlFxaHlveEhkK1dyb1JNOVh6c3JtUXh3bnZjNVJTQ3luYjh2ekhIR0ViMkN0WVFjdXNqdy9hVAogICAgICAgICBSazJXM0l0RE1qVy9IZUJWWnQyOEE3eWxjZ3pYOEE5OVcvaVQ2L0hUcC9NN1p4Nm80NG1Wa00vUURnYUF2WERxeWFFcgogICAgICAgICB4aFE1cnZCNHBxZTNvVllsK0VOaTA4a0lVUjcxQVJXeURlTDl1U2lKMjFqbExLRVVUVVNRSElPVXBUQ3RHVGI1TXZSbQogICAgICAgICAyOUljNWxXVHBmTEdyeGR5Q3N6N1Y3bGthdVg4eXA2SVBjdmJ3bWpYM1BuT29IVC9hMzdTb0c3aVVsMnorUWRWaEExbgogICAgICAgICA5VElBPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1IckRUZ0FoSEc2QXQ3NHJIRXJBY0ZweGdlL3pjNEM2WWhHUWF2Zm5pNy9nPTsKICAgICAgICBiPXRQeEFiN09TZUF1UlkyU1kwRDY3S09wTWlvc2NNS2FxMno3OUpVZFRYY1AyM1phLzJienAvMFZWcHh4YmZEWC9jbgogICAgICAgICBhSS9tM0tTUGRybDJsZG9ObzU3aUhhMW5zd0dIVU5CVDRyZ2wvbldXMUdhQjlndjVpWmo1dUdWblpKUE1BaGEwZStvaQogICAgICAgICBzNmxkQWFlR2Q1SXc4M1E4aFFOV3IweC9kdU4zRTg4TEhHc0Z5cWFoKzI4aXRFc3lsNnYvZjZUYWlFRjg0R09waFFJTgogICAgICAgICB1TXB0akhVV2pUbXkrbnZkMlNieHZoMVNKajhNaHFpVzJQSENuTkJ2TXRXak5uQWJuL2h2VXNQeWlOQTM4NUJTckY0YwogICAgICAgICAvOTBiVVJVMFgzdWJxSGwrZmtXUmJPU05iQ0F5ODJjcGV5Y01YaTljM2U1Y0R3SmRVVHc0Y3NaQ09hRTBBejQrVmpjYwogICAgICAgICA5dHFRPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVoWjQxdml2bGtqa2lRMnhkSkJZL3JkWmdId0M3dExHMVBUOFZCM2Q3S3IranBTRW1QMAoJS2FXVXNJWXhXbTdMMWRKbkkweElkaEhCSkVma2s2SzhNZEVPUEw4PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRREYyd3E2OFF5OFdrWGlLZGhCTWZlaTJzKy9VbVpmUUlwemtFOXZuV2VabHJuLzJCS3ZiQ2V4ajFVeElTNEJxUnR6enlZZ0FzYWdFcnR3SXVTaXF0cz0KWC1SZWNlaXZlZDogYnkgMTAuODAuMTQ2LjU2IHdpdGggU01UUCBpZCBpNTNtcjE5Mjg3Mjg2ZWRhLjE0OC4xNTA2OTEyOTQyNDY5OwogU3VuLCAwMSBPY3QgMjAxNyAxOTo1NTo0MiAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuODAuMjA5LjE5OCB3aXRoIEhUVFA7IFN1biwgMSBPY3QgMjAxNyAxOTo1NTo0MiAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPDU3MDk2N2Y5LTgxNTAtZjA2YS01MjEzLWFlNWM2ODY2ZjJkMEBnbXguZGU+ClJlZmVyZW5jZXM6IDxkMzBlYTQ3Ni0wNzk0LWYwOTYtY2U2MS01ZmI0MWIwM2I5NmFAZ214LmRlPiA8NTcwOTY3ZjktODE1MC1mMDZhLTUyMTMtYWU1YzY4NjZmMmQwQGdteC5kZT4KRnJvbTogR2FicmllbCBCZWxpbmd1ZXJlcyA8YmVsaW5ndWVyZXNAZ21haWwuY29tPgpEYXRlOiBTdW4sIDEgT2N0IDIwMTcgMjM6NTU6NDIgLTAzMDAKTWVzc2FnZS1JRDogPENBS1kzUXlWSmVScjNrUWs3ZGdfLUJmMk85a3lONEV2RGdZeldyOGlLRFZnWkJOdkhWQUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBXQVIgUGx1Z2luIHZlcnNpb24gMy4yLjAKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iZjQwMzA0NWMxOTdlYTRiNzBiMDU1YTg3ODIxZCIKCi0tZjQwMzA0NWMxOTdlYTRiNzBiMDU1YTg3ODIxZApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKV291bGQgaXQgYmUgcG9zc2libGUgdG8gY3V0IGEgcmVsZWFzZSBvZiBwbGV4dXMtaW50ZXJwb2xhdGlvbiBhbmQgdXBncmFkZQp0aGlzIGRlcGVuZGVuY3kgdG8gc29sdmUgTVdBUi0zMDM/CgoyMDE3LTA5LTMwIDEzOjE2IEdNVC0wMzowMCBNaWthaWwgT3NpcG92IDxtb3NpcG92QGdteC5kZT46Cgo+IEFtIDIwMTctMDktMzAgdW0gMTc6NTUgc2NocmllYiBLYXJsIEhlaW56IE1hcmJhaXNlOgo+Cj4+IEhpLAo+Pgo+PiBXZSBzb2x2ZWQgMyBpc3N1ZXM6Cj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZQo+PiBjdElkPTEyMzE4MTIxJnZlcnNpb249MTIzNDEzNzIKPj4KPj4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJTNEJQo+PiAyME1XQVIlMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJTIwQlklCj4+IDIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMHVwZGF0ZWQlMjBERVNDCj4+Cj4+IFN0YWdpbmcgcmVwbzoKPj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3MQo+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzcKPj4gMS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4td2FyLXBsdWdpbi8zLjIuMC9tYXZlbi13YXItCj4+IHBsdWdpbi0zLjIuMC1zb3VyY2UtcmVsZWFzZS56aXAKPj4KPj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4+IG1hdmVuLXdhci1wbHVnaW4tMy4yLjAtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6Cj4+IDVjNjYxZjQ1NTQ2MTYxNDc0OTEwMzZkZmFjNjg5YmE5ZGI5MGNlYzIKPj4KPj4KPj4gU3RhZ2luZyBzaXRlOgo+PiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi13YXItcGx1Z2luLUxBVEVTVC8KPj4KPj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCj4+Cj4+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4+Cj4KPiArMQo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKLS1mNDAzMDQ1YzE5N2VhNGI3MGIwNTVhODc4MjFkLS0KCkZyb20gZGV2LXJldHVybi0xMjQ1NTMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIE5vdiAyMCAxNzozOTowOCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1NTMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQjdFMzYxMEUxQgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDIwIE5vdiAyMDE3IDE3OjM5OjA4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjcwNTQgaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgTm92IDIwMTcgMTc6Mzk6MDggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI2OTc4IGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIE5vdiAyMDE3IDE3OjM5OjA4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjY5NjQgaW52b2tlZCBieSB1aWQgOTkpOyAyMCBOb3YgMjAxNyAxNzozOTowOCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMjAgTm92IDIwMTcgMTc6Mzk6MDggKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAzOTQ0QTE4MDcxQQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMjAgTm92IDIwMTcgMTc6Mzk6MDcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjM4ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuMzggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMSwKCVdFSVJEX1BPUlQ9MC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgbTRxUFp5MXdXMThGIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAyMCBOb3YgMjAxNyAxNzozOTowNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXFrMC1mMTczLmdvb2dsZS5jb20gKG1haWwtcWswLWYxNzMuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIyMC4xNzNdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRTY1NzU1RkUyMgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMjAgTm92IDIwMTcgMTc6Mzk6MDMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtcWswLWYxNzMuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgdzEyNXNvODQzOTA3NXFrYi42CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMjAgTm92IDIwMTcgMDk6Mzk6MDMgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9S2t4QlhXb2hHSThrWG96SlpPQ3Q1WFF4VFZVcU12THR2c0FkTjIraEQ4VT07CiAgICAgICAgYj1ySHZ0VWNwT0loQkQzazZVWjJORTIrSkJKZ2VqS0lIVlBxUmdZcEhYaHoyV2MxT1ZLbTRRUGdnMjBiS3k1T2Jyd0YKICAgICAgICAgdFJBUHpMdUZpWldKa1dwZ2tmRk01djlPb3EwdEwrR2dPTXl5MVBjMENjSjhlT2ZiZGZERXViNHJPM2w2NG1mMGhHdFoKICAgICAgICAgVXJiYWs5YStWa0lkSnBEWjcwUnh0Q1dTZ255Z2E2M3hqbGJGT0plUW9JZzNUTHJZQmViWXZTVEpFZnV3YW4zNlYycGwKICAgICAgICAgSWlTeHNFUXRpOTQvNTdKK0JpYklvS2Zjc2d0L0NTOGRJamJhWDdMT3BYWDhpU2FtMXBGOXBValM4SkRFY2dITW5lOEcKICAgICAgICAgN3Z3QTVtNENKdWdiejUyelVTSUhZSW1IZThyaWdCUFloS29nWFBlRVZXMjRvZ1Z1OUpSa253RGhlTURoTS9hdUlDTTQKICAgICAgICAgbWlaUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9S2t4QlhXb2hHSThrWG96SlpPQ3Q1WFF4VFZVcU12THR2c0FkTjIraEQ4VT07CiAgICAgICAgYj1LOTNyQXlvWDdmT1RIbVlJVEJ5S2R1SmxJU1oyaFlUa2hxRHpZVUtPVEQ2ZnNEbHhvQWNIVnpiWE13cFpOS0FOZjAKICAgICAgICAgeWRmNEpsbTBnWHZFeVBIYjZkMVY4SWFoaGhDcmVmL0wzWThYTmx5MDI1NmJsdkdyTDJsbUtrcW5Ga1o0c2hQdFFCemsKICAgICAgICAgUmVlL1J5WTJkelRCTENRNVVzczdsU0taQnBSeHNNNVdMank1QkZCai9aVCtrcjdqbXpQZjlBV3FvVDJUOTdHc3krcnYKICAgICAgICAgRG03U01qWW1OOXQrK2JYa3BNZE9hZWRWeGhRYVZoa1JJalNFSThiQzdKa3NiU0ZGeWpJY3pwbEZObzEyOUlqUDZjMWwKICAgICAgICAgU0xyL2xmTHM3UHEwZXV5eXRSZEQzMVFMUWxGVk12SlgxWGZQVllnblF2RXFqUzU3aW5wbUwyOXByVXlVVGVFanNCZVIKICAgICAgICAgWlJwZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYNC9aY3JLZ2dScXIvRGY3ZmV2RVEwU0s3bHZTS29PRXpPblNHa3QvZjFGd1N2ZGFVb0gKCTRENzFMNXNSa2dlNm9qbWFPUUNERXpYZEw3cFZhZHFqYUlRVkd6V0lkdz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1aSjc0UHlTbDJCQjNKVkt2ZmFFanA2NmczalNYN3I2dHhxbTFiSWttVisyWDJxY0h0S0E0c2d0S0x4YkZ6NW9xZGYvRTlwVXlCMklGUkFzY0RLSDY0PQpYLVJlY2VpdmVkOiBieSAxMC41NS4yMS4yMDAgd2l0aCBTTVRQIGlkIDY5bXIyMjUyODUxNHFrdi4yODYuMTUxMTE5OTUzNjc3MzsKIE1vbiwgMjAgTm92IDIwMTcgMDk6Mzg6NTYgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjEyLjE2Mi4xMzQgd2l0aCBIVFRQOyBNb24sIDIwIE5vdiAyMDE3IDA5OjM4OjU2IC0wODAwIChQU1QpCkluLVJlcGx5LVRvOiA8b3AueTJpYnF3eGprZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+ClJlZmVyZW5jZXM6IDxDQUtuYmVtWDd5RFdYVUNxRHdvWDR6QjhCUUNRVlE2NExHQzN2dCt4SGZ3NmVQQXExVWdAbWFpbC5nbWFpbC5jb20+CiA8Q0ErMjk4VWdHeTBUa249RHdiaDVPcFdvZG1XK0wrV1FVMHQ2aGN2VVBCZ3NnYmhKS1F3QG1haWwuZ21haWwuY29tPgogPG9wLnkyYjM3ZHpxa2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPiA8Q0FLbmJlbVd4MCtyam5tQjZ2RE1EVl90OUVoZXlMWVNUaWdzNEJaM3p0ZE1Ua2txQmt3QG1haWwuZ21haWwuY29tPgogPG9wLnkyZHM1bnFta2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPiA8Q0FLbmJlbVgzYmNFN0F4cG9rNkc3RnZSMmptSzBvNmJXLVZ5NjdLMGIyOFA1XzNVUld3QG1haWwuZ21haWwuY29tPgogPG9wLnkyaWJxd3hqa2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpGcm9tOiBQZXRhciBUYWhjaGlldiA8cGFyYW5vaWFibGFAZ21haWwuY29tPgpEYXRlOiBNb24sIDIwIE5vdiAyMDE3IDE5OjM4OjU2ICswMjAwCk1lc3NhZ2UtSUQ6IDxDQUtuYmVtVXNMQ1ZEZW9paGNtSmNDaHQ2N3FjbXJMZmNwdWY0aDcyWHlfNjJxd1BWc0FAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiByZWxlYXNlIHBsdWdpbgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0NzNhZWU5MmZmZDIwNTVlNmQ4ZjcyIgoKLS0wMDFhMTE0NzNhZWU5MmZmZDIwNTVlNmQ4ZjcyCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpIaSBSb2JlcnQsCgphbnkgdXBkYXRlcyBvbiB0aGUgcmVsZWFzZS1hZ2dyZWdhdG9yPyBJcyB0aGVyZSBhbnl0aGluZyBJIGNhbiBkbyB0byBoZWxwPwoKMjAxNy0wNi0yNyAyMjo0MyBHTVQrMDM6MDAgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPjoKCj4gSGkgUGV0YXIsCj4KPiBUaGlzIGlzIGEgY2xlYXIgc2lnbiB0aGF0ICR7cHJvamVjdH0gc2hvdWxkIG5vdCBiZSB1c2VkIHRvIHJlc29sdmUgdGhpcy4KPiBJbnN0ZWFkIHRoZSBwb20gc2hvdWxkIGJlIGFuYWx5emVkIGFnYWluIGFuZCBpZiB0aGVyZSdzIGEgc3lzdGVtIHByb3BlcnR5Cj4gbWF0Y2hpbmcgdGhlIHBhcmVudCwgaXQgc2hvdWxkIGJlIHJlcGxhY2VkIGJlZm9yZSBsb2FkaW5nIHRoZSBwYXJlbnQuCj4gVGhhdCdsbCByZXF1aXJlIHF1aXRlIHNvbWUgbmV3IGxpbmVzIG9mIGNvZGUgOikKPiBUaGUgc3VnZ2VzdGVkIHJlbGVhc2UtYWdncmVnYXRvciB3aWxsIHJlcXVpcmUgdGhpcyBzYW1lIGZlYXR1cmUsIHNvIHNvb25lcgo+IG9yIGxhdGVyIHRoaXMgbXVzdCBiZSBmaXhlZC4KPgo+IFJvYmVydAo+Cj4KPiBPbiBUdWUsIDI3IEp1biAyMDE3IDA5OjUwOjM3ICswMjAwLCBQZXRhciBUYWhjaGlldiA8cGFyYW5vaWFibGFAZ21haWwuY29tPgo+IHdyb3RlOgo+Cj4gSGV5IGd1eXMsCj4+Cj4+IG15IHB1bGwtcmVxdWVzdCB3b3JrZWQgZmluZSB0byBub3Qgc2hvdyB0aGUgcHJvbXB0IHRvIHNwZWNpZnkgYSB2ZXJzaW9uLgo+PiBIb3dldmVyLCBpdCBmYWlscyB0byB1cGRhdGUgc25hcHNob3QgZGVwZW5kZW5jeSB2ZXJzaW9ucyB3aGVuIHlvdSByZXNvbHZlCj4+IHRoZSBwYXJlbnQgdG8gYSBjb25jcmV0ZSB2ZXJzaW9uLgo+PiBQYXJ0aWN1bGFybHkgaW4gbXkgY2FzZToKPj4KPj4KPj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCT01dCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgICBcCj4+ICAgICAgICAgICAgICBbUExBVEZPUk1dICBbREVNT19TVE9SRV0KPj4gICAgICAgICAgICAgICAgLW1vZHVsZTEgICAgICAgICAgICAgLSBwbGF0Zm9ybTptb2R1bGUxCj4+ICAgICAgICAgICAgICAgIC1tb2R1bGUyICAgICAgICAgICAgIC0gcGxhdGZvcm06bW9kdWxlMgo+PiAgICAgICAgICAgICAgICAuLi4uICAgICAgICAgICAgICAgICAgICAgIC4uLi4uCj4+ICAgICAgICAgICAgICAgIC0gbW9kdWxlTiAgICAgICAgICAgIC0gcGxhdGZvcm06bW9kdWxlTgo+Pgo+PiBUaGUgW0JPTV0gZGVmaW5lcyBpbiBkZXBlbmRlbmN5TWFuYWdlbWVudCBzZWN0aW9uIGFsbCB0aGUgdmVyc2lvbnMgb2YgdGhlCj4+IG1vZHVsZXMgb2YgdGhlIFtQTEFURk9STV0uIFRoZW4gdGhlIFtERU1PX1NUT1JFXSBjYW4gcmVmZXJlbmNlIHRoZW0KPj4gd2l0aG91dAo+PiBzcGVjaWZ5aW5nIGEgdmVyc2lvbi4gRHVyaW5nIHJlbGVhc2Ugd2hhdCBJIGRvIGlzIEkgZmlyc3QgcmVsZWFzZSB0aGUKPj4gW0JPTV0sIHRoZW4gcmVsZWFzZSB0aGUgW1BMQVRGT1JNXSBhbmQgdXAgdG8gaGVyZSBJIHNlZSBubyBwcm9ibGVtcy4gQnV0Cj4+IHRoZW4gSSB0cnkgdG8gcmVsZWFzZSB0aGUgREVNT19TVE9SRV0gYW5kIGV2ZW4gdGhvdWdoIEkgc3BlY2lmeSBvbiB0aGUKPj4gY29tbWFuZCBsaW5lIHRoZSB2ZXJzaW9uIG9mIHRoZSBwYXJlbnQgW0JPTV06Cj4+Cj4+IC1EZGVwZW5kZW5jeS5jb20ubmVtZXNpczpib20ucmVsZWFzZT0xLjUuMi5SRUxFQVNFCj4+IC1EZGVwZW5kZW5jeS5jb20ubmVtZXNpczpib20uZGV2ZWxvcG1lbnQ9MS41LjMuQlVJTEQtU05BUFNIT1QKPj4KPj4KPj4gaXQgc3RpbGwgYXNrcyBtZSBmb3IgdmVyc2lvbnMgb2YgZGVwZW5kZW5jaWVzIHdoaWNoIGFyZSBzcGVjaWZpZWQgaW4gdGhlCj4+IHJlbGVhc2VkIFtCT01dLiBJIHRyaWVkIHBhdGNoaW5nIHRoZSBjb2RlIGFuZCBzcGVjaWZ5aW5nIGEgbmV3IHZlcnNpb24gb2YKPj4gdGhlIHBhcmVudAo+Pgo+PiBwcm9qZWN0LmdldFBhcmVudEFydGlmYWN0KCkuc2V0VmVyc2lvbigiMS41LjIuUkVMRUFTRSIpCj4+Cj4+IGp1c3QgdG8gc2VlIGlmIGl0IHdvcmtzLCBidXQgdGhlIHByb2JsZW0gaXMgdGhhdCB0aGUgZGVwZW5kZW5jaWVzIGluIHRoZQo+PiBwcm9qZWN0IGFyZSBhbHJlYWR5IHJlc29sdmVkOiB3aGVuIEkgY2FsbCBwcm9qZWN0LmdldERlcGVuZGVuY2llcygpIEkgZ2V0Cj4+IHRoZSBTTkFQU0hPVCB2ZXJzaW9ucy4KPj4KPj4gSXMgdGhlcmUgYW55IHdheSB0byByZWxvYWQgdGhlIHByb2plY3QgbW9kZWwgYWZ0ZXIgSSBzcGVjaWZ5IGEgbmV3Cj4+IHBhcmVudFZlcnNpb24oKT8gU28gdGhhdCBJdCB1bmRlcnN0YW5kcyB0aGUgW0JPTV0gaXMgbm8gbG9uZ2VyIGEgc25hcHNob3QKPj4gdmVyc2lvbi4KPj4KPj4gVGhhbmtzCj4+Cj4+IDIwMTctMDYtMjUgMTI6MTEgR01UKzAzOjAwIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz46Cj4+Cj4+IE1SRUxFQVNFLTM2MlsxXSBpcyBwcm9iYWJseSB0aGUgbWF0Y2hpbmcgaXNzdWUuCj4+PiBCZSBhd2FyZSB0aGF0IHNvbWUgYXJlIHRhbGtpbmcgYWJvdXQgdGFnZ2luZyBldmVyeSBtb2R1bGUuIEluIG1vc3QKPj4+IHNpdHVhdGlvbnMgSSBkb24ndCBsaWtlIHRoYXQuIElmIHRoZSBzdHJ1Y3R1cmUgaXMgaGllcmFyY2hpY2FsIGFuZCB0aGUKPj4+IHJvb3QKPj4+IGlzIHRhZ2dlZCwgdGhlbiBhbGwgdGhlIG1vZHVsZXMgYXJlIGFscmVhZHkgdGFnZ2VkLiBBbGwgdGFncyBtdXN0IGJlCj4+PiBjaGVja2VkIG91dCBkdXJpbmcgcmVsZWFzZTpwZXJmb3JtLCBrZWVwIHRoYXQgaW4gbWluZC4KPj4+IEkgc2VlIG9wdGlvbnMgd2l0aCBhIGZsYXQgc3RydWN0dXJlIGFuZCB3aXRoIHRoZSByZWxlYXNlLWFnZ3JlZ2F0b3IuCj4+Pgo+Pj4gUm9iZXJ0Cj4+Pgo+Pj4gWzFdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTVJFTEVBU0UtMzYyCj4+Pgo+Pj4KPj4+IE9uIFNhdCwgMjQgSnVuIDIwMTcgMjI6NTk6NDggKzAyMDAsIFBldGFyIFRhaGNoaWV2IDwKPj4+IHBhcmFub2lhYmxhQGdtYWlsLmNvbT4KPj4+IHdyb3RlOgo+Pj4KPj4+IEhpIFBhdWwsCj4+Pgo+Pj4+Cj4+Pj4gSSB0aGluayB5b3UgbWlzdW5kZXJzdG9vZC4gVGhlIFtCT01dIGlzIGEgc2VwYXJhdGUgcHJvamVjdCBhbmQgdGhlCj4+Pj4gW1BMQVRGT1JNXSBhbmQgW0RFTU9fU1RPUkVdIGFyZSBhbHNvIHNlcGFyYXRlIHByb2plY3RzLCBib3RoIG9mIHdoaWNoCj4+Pj4gZGVjbGFyZSBhcyB0aGVpciBwYXJlbnQgdGhlIFtCT01dLgo+Pj4+Cj4+Pj4gQFJvYmVydDogSSBoYXZlIGFkZGVkIHRoZSB0ZXN0LWNhc2U6Cj4+Pj4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1yZWxlYXNlL3B1bGwvMTgvY29tbWl0cy8KPj4+PiBSZWxlYXNlLWFnZ3JlZ2F0b3IgaXMgZXhhY3RseSB3aGF0J3MgbWlzc2luZy4gSXMgdGhlcmUgYW4gaXNzdWUgSSBjYW4KPj4+PiBzdWJzY3JpYmUgYW5kIHRyYWNrPwo+Pj4+Cj4+Pj4KPj4+PiAyMDE3LTA2LTI0IDE0OjE1IEdNVCswMzowMCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ogo+Pj4+Cj4+Pj4gV2hhdCB3ZSdyZSBzdGlsbCBtaXNzaW5nIGlzIGEgcmVsZWFzZS1hZ2dyZWdhdG9yLCB3aGljaCBjYW4gcmVsZWFzZQo+Pj4+Cj4+Pj4+IG11bHRpcGxlIHJlbGVhc2Utcm9vdHMgYXQgb25jZS4gVGhhdCB3b3VsZCBwcm9iYWJseSBiZSB0aGUgcHJlZmVycmVkCj4+Pj4+IGZpeCwKPj4+Pj4gdGhlIHN1Z2dlc3RlZCBwYXRjaCBpcyBqdXN0IGFuIGVhc3kgd29yay1hcm91bmQuCj4+Pj4+IEl0IGlzIHN0aWxsIG9uIG15IHRvZG8tbGlzdC4KPj4+Pj4KPj4+Pj4gUm9iZXJ0Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+IE9uIFNhdCwgMjQgSnVuIDIwMTcgMTI6NDI6MjIgKzAyMDAsIFBhdWwgSGFtbWFudCA8cGF1bEBoYW1tYW50Lm9yZz4KPj4+Pj4gd3JvdGU6Cj4+Pj4+Cj4+Pj4+IEVhc3kgdG8gZml4LiAgSGF2ZSBhIHByb2ZpbGUgJ3BsYXRmb3JtT25seScgaW4gdGhlIHJvb3QgbW9kdWxlIChJJ20gbm90Cj4+Pj4+Cj4+Pj4+IHN1cmUgaWYgJ0JPTScgc2hvdWxkIG1lYW4gYW55dGhpbmcgdG8gbWUpIHRoYXQgaW5jbHVkZXMgb25seSAncGxhdGZvcm0nCj4+Pj4+PiBhcwo+Pj4+Pj4gYSBjaGlsZCBtb2R1bGUuCj4+Pj4+Pgo+Pj4+Pj4gICAgbXZuIHJlbGVhc2U6cHJlcGFyZSAtUHBsYXRmb3JtT25seSAjIGV0Ywo+Pj4+Pj4KPj4+Pj4+IExhdGVyIHdoZW4geW91J3JlIHJlYWR5IHRvIGRvIHRoZSBkZW1vIHN0b3JlIHJlbGVhc2UsIHVzZSBhbm90aGVyCj4+Pj4+PiAoZnJvbQo+Pj4+Pj4gcm9vdCk6Cj4+Pj4+Pgo+Pj4+Pj4gICAgbXZuIHJlbGVhc2U6cHJlcGFyZSAtUGRlbW9Pbmx5ICMgZXRjCj4+Pj4+Pgo+Pj4+Pj4gT2YgY291cnNlLCB5b3UgbWFuIG5vdCBuZWVkIHRvIHN0dWZmIGRlbW8gaW4geW91cgo+Pj4+Pj4gQXJ0aWZhY3RvcnkvTmV4dXMvZXRjCj4+Pj4+PiBpbgo+Pj4+Pj4gd2hpY2ggY2FzZSBqdXN0IGRvIHlvdXIgZGVwbG95IGZ1IGFmdGVyIGFuICdpbnN0YWxsJyB3L28gdGhlIHJlbGVhc2UKPj4+Pj4+IHBsdWdpbgo+Pj4+Pj4gaW52b2x2ZWQgb3IgdGhhdCBzZWNvbmQgcHJvZmlsZS4KPj4+Pj4+Cj4+Pj4+PiAtIFBhdWwKPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gT24gU2F0LCBKdW4gMjQsIDIwMTcgYXQgMjo1OCBBTSwgUGV0YXIgVGFoY2hpZXYgPAo+Pj4+Pj4gcGFyYW5vaWFibGFAZ21haWwuY29tPgo+Pj4+Pj4gd3JvdGU6Cj4+Pj4+Pgo+Pj4+Pj4gSGV5IGd1eXMsCj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+PiBJJ20gZmFjaW5nIGEgbnVtYmVyIG9mIGNoYWxsZW5nZXMgd2hlbiBJIHJlbGVhc2UgdGhlIHByb2plY3QgYXQgbXkKPj4+Pj4+PiBjb21wYW55Lgo+Pj4+Pj4+IEhlcmUncyBteSBzZXR1cDoKPj4+Pj4+Pgo+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQk9NXQo+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgICBcCj4+Pj4+Pj4gICAgICAgICAgICAgIFtQTEFURk9STV0gIFtERU1PX1NUT1JFXQo+Pj4+Pj4+Cj4+Pj4+Pj4gSSBoYXZlIGEgbWFzdGVyIEJPTSBwcm9qZWN0IHdoaWNoIGhvbGRzIGFsbCB0aGUgdmVyc2lvbiBhcyBkZWZpbmVkCj4+Pj4+Pj4gcHJvcGVydGllcy4gVGhpcyBCT00gaXMgdGhlIHBhcmVudCB0byB0d28gb3RoZXIgcHJvamVjdHMgLSBbUExBVEZPUk1dCj4+Pj4+Pj4gYW5kCj4+Pj4+Pj4gW0RFTU9fU1RPUkVdLCBUaGUgW1BMQVRGT1JNXSBpcyBhIHByb2plY3Qgd2l0aCBtb3JlIHRoYW4gNjAgbW9kdWxlcwo+Pj4+Pj4+IGluc2lkZSwKPj4+Pj4+PiBhbmQgdGhlIFtERU1PX1NUT1JFXSBpcyBhIHByb2plY3QgdGhhdCBkZWNsYXJlcyB0aG9zZSBtb2R1bGVzIGFzCj4+Pj4+Pj4gZGVwZW5kZW5jaWVzLgo+Pj4+Pj4+Cj4+Pj4+Pj4gTm93IHdoYXQgSSB3YW50IGlzIHRvIHJlbGVhc2UgYWxsIHRocmVlIGZyb20gSmVua2lucy4gSSBjYW4gcmVsZWFzZQo+Pj4+Pj4+IHRoZQo+Pj4+Pj4+IFtCT01dIHdpdGggbm8gcHJvYmxlbXMsIHRoZW4gSSBzdGFydCByZWxlYXNlIG9mIHRoZSBbUExBVEZPUk1dIGFuZAo+Pj4+Pj4+IGFsbAo+Pj4+Pj4+IG9mIGEKPj4+Pj4+PiBzdWRkZW4gSmVua2lucyBibG9ja3MgYmVjYXVzZSBNYXZlbiBhc2tzIG1lIG9uIHRoZSBjb21tYW5kIGxpbmUgaWYgSQo+Pj4+Pj4+IHdhbnQKPj4+Pj4+PiB0byByZXNvbHZlIHRoZSBTTkFQU0hPVCBkZXBlbmRlbmNpZXMgKHJlbWVtYmVyIHRoZSBwYXJlbnQgb2YgdGhlCj4+Pj4+Pj4gW1BMQVRGT1JNXQo+Pj4+Pj4+IGlzIHRoZSBbQk9NXSBTTkFQU0hPVCB2ZXJzaW9uKS4KPj4+Pj4+Pgo+Pj4+Pj4+IFNvIEkgY3JlYXRlZCB0aGlzIGlzc3VlIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYQo+Pj4+Pj4+IC9icm93c2UvTVJFTEVBU0UtOTg1Cj4+Pj4+Pj4gdG8gYmUgYWJsZSB0byBzcGVjaWZ5IHRoZSBbQk9NXSBwYXJlbnQgdmVyc2lvbiB3aGVuIEkgc3RhcnQgdGhlCj4+Pj4+Pj4gcmVsZWFzZQo+Pj4+Pj4+IG9mCj4+Pj4+Pj4gW1BMQVRGT1JNXS4gSSB0aGluayBJIGFsc28gZml4ZWQgaXQgd2l0aCB0aGlzIHB1bGwtcmVxdWVzdDoKPj4+Pj4+PiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXJlbGVhc2UvcHVsbC8xOAo+Pj4+Pj4+Cj4+Pj4+Pj4gQ2FuIHNvbWVvbmUgaGF2ZSBhIGxvb2sgYXQgdGhpcyBwdWxsIHJlcXVlc3QgYW5kIHRlbGwgbWUgaWYgaXQgaXMgT0s/Cj4+Pj4+Pj4KPj4+Pj4+PiAtLQo+Pj4+Pj4+IFJlZ2FyZHMsIFBldGFyIQo+Pj4+Pj4+IEthcmxvdm8sIEJ1bGdhcmlhLgo+Pj4+Pj4+IC0tLQo+Pj4+Pj4+IFB1YmxpYyBQR1AgS2V5IGF0Ogo+Pj4+Pj4+IGh0dHA6Ly9wZ3AubWl0LmVkdToxMTM3MS9wa3MvbG9va3VwP29wPWdldCZzZWFyY2g9MHgxOTY1ODU1MEMzMTEwNjExCj4+Pj4+Pj4gS2V5IEZpbmdlcnByaW50OiBBMzY5IEE3RUUgNjFCQyA5M0EzIENERkYgIDU1QTUgMTk2NSA4NTUwIEMzMTEgMDYxMQo+Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+Pj4+IC0tLS0tLS0tLQo+Pj4+Pj4KPj4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Pgo+Pj4+Pgo+Pj4+Pgo+Pj4+Pgo+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+Cj4+Pgo+Pj4KPj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+CgoKLS0gClJlZ2FyZHMsIFBldGFyIQpLYXJsb3ZvLCBCdWxnYXJpYS4KLS0tClB1YmxpYyBQR1AgS2V5IGF0OgpodHRwOi8vcGdwLm1pdC5lZHU6MTEzNzEvcGtzL2xvb2t1cD9vcD1nZXQmc2VhcmNoPTB4MTk2NTg1NTBDMzExMDYxMQpLZXkgRmluZ2VycHJpbnQ6IEEzNjkgQTdFRSA2MUJDIDkzQTMgQ0RGRiAgNTVBNSAxOTY1IDg1NTAgQzMxMSAwNjExCgotLTAwMWExMTQ3M2FlZTkyZmZkMjA1NWU2ZDhmNzItLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDU1OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgTm92IDIxIDA5OjMxOjE1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDU1OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAwMTk2RjEwRjQxCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMjEgTm92IDIwMTcgMDk6MzE6MTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4ODIxMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBOb3YgMjAxNyAwOTozMToxNCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODgxNDUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjEgTm92IDIwMTcgMDk6MzE6MTQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4ODEyNyBpbnZva2VkIGJ5IHVpZCA5OSk7IDIxIE5vdiAyMDE3IDA5OjMxOjE0IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAyMSBOb3YgMjAxNyAwOTozMToxNCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDY0QUEyMTgwNkI3Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyMSBOb3YgMjAxNyAwOTozMToxMyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuMzgKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi4zOCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxLAoJV0VJUkRfUE9SVD0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB6YlNGamhZOWIzVnYgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUdWUsIDIxIE5vdiAyMDE3IDA5OjMxOjA5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtcXQwLWYxNjkuZ29vZ2xlLmNvbSAobWFpbC1xdDAtZjE2OS5nb29nbGUuY29tIFsyMDkuODUuMjE2LjE2OV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBCMzgxRTVGNTc0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyMSBOb3YgMjAxNyAwOTozMTowOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1xdDAtZjE2OS5nb29nbGUuY29tIHdpdGggU01UUCBpZCByMzdzbzEwMjM2Mzc2cXRqLjEyCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjEgTm92IDIwMTcgMDE6MzE6MDggLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9c3dkM3BtcmRIN3pCSVJXN3l4VVMzWVFSYUw2YUN2RVgyZ1hXRm4vWEx6Zz07CiAgICAgICAgYj1BYndKNmg3aU9EYW55a0xmV1QxU0ZjL2c4WW9KbmtXbTV3ZnNhYXpGT2hqRjhxcXZwczZlOUxQWTVSK2JpVjY2WEQKICAgICAgICAgdDlTTHU2WnZSME9Zc3VSWGl1ZDNJOC9PcGs1U0dYTVNtOWEyenZMdUhLellhZ3J4ajdZblluSzV4Nk9pT2pzdHZXTHEKICAgICAgICAgQ29pLzFBVC9RaXBUemVBcGpmeWhzcmpGT3pMUjRiY25GbHhiY2tJYk9qU1NWb3dGYXlKVXpmQkNnWWs3R1RVTVdzRWMKICAgICAgICAgUTF4WURYOC82NUNxanRDM2lQY1FxQWx3eGVqaDd6NnkwMm5ML3Q4K3VVY0xZVHlaMjNCa1lRa0RQZlBydnovdTJYU1kKICAgICAgICAgcHh5V3dsMzZtQ3RlaWRVbUx2SUx2aUxqeVhGM3NYK2d3L3Z3VE9IQmJNb1F4aGJzZ2hlenh1MFJrNFhFdlNoUjZrc3gKICAgICAgICAgQ1Fwdz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9c3dkM3BtcmRIN3pCSVJXN3l4VVMzWVFSYUw2YUN2RVgyZ1hXRm4vWEx6Zz07CiAgICAgICAgYj1sV1NQU0xUM1JmejloTGJXSXNRSWsxTkFrYnV4bHVwRkdYK2haSFNMc045MEJ4cjRmWE9QQ0QrdDQrM0tLWHFsWGYKICAgICAgICAgZnMwSmg3OFlSTVRQTUJ1aXdZWmE0NEdMTXFRVnJsSzBQZGU4WmVKMkdldDlQTnVxeVJpN211bC9GdUMyM3M1d1FUQU8KICAgICAgICAgS3JyaW1zUTNZWlJ1Q2swWjZ2TkNSMHRiZ25WQXBYQjcwc1BxRjhwL3FobmpQRXJzNjkwdGxvbDlHY1huZ0tpNFlVOE0KICAgICAgICAgUThhUFFCYW1ydDc0aUd4R3BHQ0RIeXVPYlhURTF5b3lidTlkaUxzWFZiY1FZTDU0WE5paHFodjZxLzdsdkxicEZpYjIKICAgICAgICAgQTZ5eGdKQmJGd3ZmV2NiMlppQkduWk1hNWxIUnVwTDkyUzdYaG5SaHJOT3dVbkNPOFdwRC9MckVtRndnSm1XTC9BcU8KICAgICAgICAgZkxGQT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYNkZ1cVlibkdqMURYSkZ6TGtMdWZwNTg4cDNQVWl2cDdNQm5PaEVnblZITmlHc3dKTXkKCXc4WkRaVXpTVHluSzAwNXd2QXlCbzlRZkw4Ly9PNHorK0d4S2ozMENaUT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1hZWN4bUEzOWNHbmdIb2l5YjdBdThONWtUMkJOMXc2YzFMY1YyTWdGRlFWbWxQREozS21TNTVWMHNBZkEwakI5TCszSHNsRFZuVTM0N2RPZWFkN2VBPQpYLVJlY2VpdmVkOiBieSAxMC4yMDAuMjguMTQ1IHdpdGggU01UUCBpZCBmMTdtcjI2OTM5NTcycXRsLjQ1LjE1MTEyNTY2NjgxNDE7CiBUdWUsIDIxIE5vdiAyMDE3IDAxOjMxOjA4IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xMi4xNjIuMTM0IHdpdGggSFRUUDsgVHVlLCAyMSBOb3YgMjAxNyAwMTozMTowNyAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPG9wLnk5MG9rMWdxa2RraHJyQGRlc2t0b3AtMmtoc2s0ND4KUmVmZXJlbmNlczogPENBS25iZW1YN3lEV1hVQ3FEd29YNHpCOEJRQ1FWUTY0TEdDM3Z0K3hIZnc2ZVBBcTFVZ0BtYWlsLmdtYWlsLmNvbT4KIDxDQSsyOThVZ0d5MFRrbj1Ed2JoNU9wV29kbVcrTCtXUVUwdDZoY3ZVUEJnc2diaEpLUXdAbWFpbC5nbWFpbC5jb20+CiA8b3AueTJiMzdkenFrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDxDQUtuYmVtV3gwK3Jqbm1CNnZETURWX3Q5RWhleUxZU1RpZ3M0QlozenRkTVRra3FCa3dAbWFpbC5nbWFpbC5jb20+CiA8b3AueTJkczVucW1rZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDxDQUtuYmVtWDNiY0U3QXhwb2s2RzdGdlIyam1LMG82YlctVnk2N0swYjI4UDVfM1VSV3dAbWFpbC5nbWFpbC5jb20+CiA8b3AueTJpYnF3eGprZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDxDQUtuYmVtVXNMQ1ZEZW9paGNtSmNDaHQ2N3FjbXJMZmNwdWY0aDcyWHlfNjJxd1BWc0FAbWFpbC5nbWFpbC5jb20+CiA8b3AueTkwb2sxZ3FrZGtocnJAZGVza3RvcC0ya2hzazQ0PgpGcm9tOiBQZXRhciBUYWhjaGlldiA8cGFyYW5vaWFibGFAZ21haWwuY29tPgpEYXRlOiBUdWUsIDIxIE5vdiAyMDE3IDExOjMxOjA3ICswMjAwCk1lc3NhZ2UtSUQ6IDxDQUtuYmVtVkxmQlNiMlJMVjd0U1JHdjdKNFlaT3F0Szc5eXBOM2FWcWllUWFxeTBMa0FAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiByZWxlYXNlIHBsdWdpbgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwODllMDgyNjFmMTRkZTdmN2QwNTVlN2FkYzkzIgoKLS0wODllMDgyNjFmMTRkZTdmN2QwNTVlN2FkYzkzCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpIaSBSb2JlcnQsCmknbGwgZ2l2ZSBpdCBhIHRyeS4gQ2FuIHlvdSBwbGVhc2Ugc3VtbWFyaXplIHdoYXQgbmVlZHMgdG8gYmUgZG9uZSwgb3IKcGVyaGFwcyBwb2ludCBtZSB0aGUgcmlnaHQgZGlyZWN0aW9uPwoKMjAxNy0xMS0yMCAyMTozMiBHTVQrMDI6MDAgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPjoKCj4gSGkgUGV0YXIsCj4KPiB3b3VsZCBiZSBncmVhdCBpZiB5b3UgY291bGQgcGljayB0aGlzIHVwLgo+IFRoZXJlJ3MgZW5vdWdoIHdvcmsgSSB3YW50IHRvIGZpbmlzaCBmaXJzdCwgbWF2ZW4tcmVsZWFzZS1wbHVnaW4gaXMgbm90Cj4gb25lIG9mIHRoZW0gcmlnaHQgbm93Lgo+Cj4gdGhhbmtzLAo+IFJvYmVydAo+Cj4KPiBPbiBNb24sIDIwIE5vdiAyMDE3IDE4OjM4OjU2ICswMTAwLCBQZXRhciBUYWhjaGlldiA8cGFyYW5vaWFibGFAZ21haWwuY29tPgo+IHdyb3RlOgo+Cj4gSGkgUm9iZXJ0LAo+Pgo+PiBhbnkgdXBkYXRlcyBvbiB0aGUgcmVsZWFzZS1hZ2dyZWdhdG9yPyBJcyB0aGVyZSBhbnl0aGluZyBJIGNhbiBkbyB0byBoZWxwPwo+Pgo+PiAyMDE3LTA2LTI3IDIyOjQzIEdNVCswMzowMCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ogo+Pgo+PiBIaSBQZXRhciwKPj4+Cj4+PiBUaGlzIGlzIGEgY2xlYXIgc2lnbiB0aGF0ICR7cHJvamVjdH0gc2hvdWxkIG5vdCBiZSB1c2VkIHRvIHJlc29sdmUgdGhpcy4KPj4+IEluc3RlYWQgdGhlIHBvbSBzaG91bGQgYmUgYW5hbHl6ZWQgYWdhaW4gYW5kIGlmIHRoZXJlJ3MgYSBzeXN0ZW0gcHJvcGVydHkKPj4+IG1hdGNoaW5nIHRoZSBwYXJlbnQsIGl0IHNob3VsZCBiZSByZXBsYWNlZCBiZWZvcmUgbG9hZGluZyB0aGUgcGFyZW50Lgo+Pj4gVGhhdCdsbCByZXF1aXJlIHF1aXRlIHNvbWUgbmV3IGxpbmVzIG9mIGNvZGUgOikKPj4+IFRoZSBzdWdnZXN0ZWQgcmVsZWFzZS1hZ2dyZWdhdG9yIHdpbGwgcmVxdWlyZSB0aGlzIHNhbWUgZmVhdHVyZSwgc28KPj4+IHNvb25lcgo+Pj4gb3IgbGF0ZXIgdGhpcyBtdXN0IGJlIGZpeGVkLgo+Pj4KPj4+IFJvYmVydAo+Pj4KPj4+Cj4+PiBPbiBUdWUsIDI3IEp1biAyMDE3IDA5OjUwOjM3ICswMjAwLCBQZXRhciBUYWhjaGlldiA8Cj4+PiBwYXJhbm9pYWJsYUBnbWFpbC5jb20+Cj4+PiB3cm90ZToKPj4+Cj4+PiBIZXkgZ3V5cywKPj4+Cj4+Pj4KPj4+PiBteSBwdWxsLXJlcXVlc3Qgd29ya2VkIGZpbmUgdG8gbm90IHNob3cgdGhlIHByb21wdCB0byBzcGVjaWZ5IGEgdmVyc2lvbi4KPj4+PiBIb3dldmVyLCBpdCBmYWlscyB0byB1cGRhdGUgc25hcHNob3QgZGVwZW5kZW5jeSB2ZXJzaW9ucyB3aGVuIHlvdQo+Pj4+IHJlc29sdmUKPj4+PiB0aGUgcGFyZW50IHRvIGEgY29uY3JldGUgdmVyc2lvbi4KPj4+PiBQYXJ0aWN1bGFybHkgaW4gbXkgY2FzZToKPj4+Pgo+Pj4+Cj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCT01dCj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICAgIFwKPj4+PiAgICAgICAgICAgICAgW1BMQVRGT1JNXSAgW0RFTU9fU1RPUkVdCj4+Pj4gICAgICAgICAgICAgICAgLW1vZHVsZTEgICAgICAgICAgICAgLSBwbGF0Zm9ybTptb2R1bGUxCj4+Pj4gICAgICAgICAgICAgICAgLW1vZHVsZTIgICAgICAgICAgICAgLSBwbGF0Zm9ybTptb2R1bGUyCj4+Pj4gICAgICAgICAgICAgICAgLi4uLiAgICAgICAgICAgICAgICAgICAgICAuLi4uLgo+Pj4+ICAgICAgICAgICAgICAgIC0gbW9kdWxlTiAgICAgICAgICAgIC0gcGxhdGZvcm06bW9kdWxlTgo+Pj4+Cj4+Pj4gVGhlIFtCT01dIGRlZmluZXMgaW4gZGVwZW5kZW5jeU1hbmFnZW1lbnQgc2VjdGlvbiBhbGwgdGhlIHZlcnNpb25zIG9mCj4+Pj4gdGhlCj4+Pj4gbW9kdWxlcyBvZiB0aGUgW1BMQVRGT1JNXS4gVGhlbiB0aGUgW0RFTU9fU1RPUkVdIGNhbiByZWZlcmVuY2UgdGhlbQo+Pj4+IHdpdGhvdXQKPj4+PiBzcGVjaWZ5aW5nIGEgdmVyc2lvbi4gRHVyaW5nIHJlbGVhc2Ugd2hhdCBJIGRvIGlzIEkgZmlyc3QgcmVsZWFzZSB0aGUKPj4+PiBbQk9NXSwgdGhlbiByZWxlYXNlIHRoZSBbUExBVEZPUk1dIGFuZCB1cCB0byBoZXJlIEkgc2VlIG5vIHByb2JsZW1zLiBCdXQKPj4+PiB0aGVuIEkgdHJ5IHRvIHJlbGVhc2UgdGhlIERFTU9fU1RPUkVdIGFuZCBldmVuIHRob3VnaCBJIHNwZWNpZnkgb24gdGhlCj4+Pj4gY29tbWFuZCBsaW5lIHRoZSB2ZXJzaW9uIG9mIHRoZSBwYXJlbnQgW0JPTV06Cj4+Pj4KPj4+PiAtRGRlcGVuZGVuY3kuY29tLm5lbWVzaXM6Ym9tLnJlbGVhc2U9MS41LjIuUkVMRUFTRQo+Pj4+IC1EZGVwZW5kZW5jeS5jb20ubmVtZXNpczpib20uZGV2ZWxvcG1lbnQ9MS41LjMuQlVJTEQtU05BUFNIT1QKPj4+Pgo+Pj4+Cj4+Pj4gaXQgc3RpbGwgYXNrcyBtZSBmb3IgdmVyc2lvbnMgb2YgZGVwZW5kZW5jaWVzIHdoaWNoIGFyZSBzcGVjaWZpZWQgaW4gdGhlCj4+Pj4gcmVsZWFzZWQgW0JPTV0uIEkgdHJpZWQgcGF0Y2hpbmcgdGhlIGNvZGUgYW5kIHNwZWNpZnlpbmcgYSBuZXcgdmVyc2lvbgo+Pj4+IG9mCj4+Pj4gdGhlIHBhcmVudAo+Pj4+Cj4+Pj4gcHJvamVjdC5nZXRQYXJlbnRBcnRpZmFjdCgpLnNldFZlcnNpb24oIjEuNS4yLlJFTEVBU0UiKQo+Pj4+Cj4+Pj4ganVzdCB0byBzZWUgaWYgaXQgd29ya3MsIGJ1dCB0aGUgcHJvYmxlbSBpcyB0aGF0IHRoZSBkZXBlbmRlbmNpZXMgaW4gdGhlCj4+Pj4gcHJvamVjdCBhcmUgYWxyZWFkeSByZXNvbHZlZDogd2hlbiBJIGNhbGwgcHJvamVjdC5nZXREZXBlbmRlbmNpZXMoKSBJCj4+Pj4gZ2V0Cj4+Pj4gdGhlIFNOQVBTSE9UIHZlcnNpb25zLgo+Pj4+Cj4+Pj4gSXMgdGhlcmUgYW55IHdheSB0byByZWxvYWQgdGhlIHByb2plY3QgbW9kZWwgYWZ0ZXIgSSBzcGVjaWZ5IGEgbmV3Cj4+Pj4gcGFyZW50VmVyc2lvbigpPyBTbyB0aGF0IEl0IHVuZGVyc3RhbmRzIHRoZSBbQk9NXSBpcyBubyBsb25nZXIgYQo+Pj4+IHNuYXBzaG90Cj4+Pj4gdmVyc2lvbi4KPj4+Pgo+Pj4+IFRoYW5rcwo+Pj4+Cj4+Pj4gMjAxNy0wNi0yNSAxMjoxMSBHTVQrMDM6MDAgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPjoKPj4+Pgo+Pj4+IE1SRUxFQVNFLTM2MlsxXSBpcyBwcm9iYWJseSB0aGUgbWF0Y2hpbmcgaXNzdWUuCj4+Pj4KPj4+Pj4gQmUgYXdhcmUgdGhhdCBzb21lIGFyZSB0YWxraW5nIGFib3V0IHRhZ2dpbmcgZXZlcnkgbW9kdWxlLiBJbiBtb3N0Cj4+Pj4+IHNpdHVhdGlvbnMgSSBkb24ndCBsaWtlIHRoYXQuIElmIHRoZSBzdHJ1Y3R1cmUgaXMgaGllcmFyY2hpY2FsIGFuZCB0aGUKPj4+Pj4gcm9vdAo+Pj4+PiBpcyB0YWdnZWQsIHRoZW4gYWxsIHRoZSBtb2R1bGVzIGFyZSBhbHJlYWR5IHRhZ2dlZC4gQWxsIHRhZ3MgbXVzdCBiZQo+Pj4+PiBjaGVja2VkIG91dCBkdXJpbmcgcmVsZWFzZTpwZXJmb3JtLCBrZWVwIHRoYXQgaW4gbWluZC4KPj4+Pj4gSSBzZWUgb3B0aW9ucyB3aXRoIGEgZmxhdCBzdHJ1Y3R1cmUgYW5kIHdpdGggdGhlIHJlbGVhc2UtYWdncmVnYXRvci4KPj4+Pj4KPj4+Pj4gUm9iZXJ0Cj4+Pj4+Cj4+Pj4+IFsxXSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01SRUxFQVNFLTM2Mgo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBPbiBTYXQsIDI0IEp1biAyMDE3IDIyOjU5OjQ4ICswMjAwLCBQZXRhciBUYWhjaGlldiA8Cj4+Pj4+IHBhcmFub2lhYmxhQGdtYWlsLmNvbT4KPj4+Pj4gd3JvdGU6Cj4+Pj4+Cj4+Pj4+IEhpIFBhdWwsCj4+Pj4+Cj4+Pj4+Cj4+Pj4+PiBJIHRoaW5rIHlvdSBtaXN1bmRlcnN0b29kLiBUaGUgW0JPTV0gaXMgYSBzZXBhcmF0ZSBwcm9qZWN0IGFuZCB0aGUKPj4+Pj4+IFtQTEFURk9STV0gYW5kIFtERU1PX1NUT1JFXSBhcmUgYWxzbyBzZXBhcmF0ZSBwcm9qZWN0cywgYm90aCBvZiB3aGljaAo+Pj4+Pj4gZGVjbGFyZSBhcyB0aGVpciBwYXJlbnQgdGhlIFtCT01dLgo+Pj4+Pj4KPj4+Pj4+IEBSb2JlcnQ6IEkgaGF2ZSBhZGRlZCB0aGUgdGVzdC1jYXNlOgo+Pj4+Pj4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1yZWxlYXNlL3B1bGwvMTgvY29tbWl0cy8KPj4+Pj4+IFJlbGVhc2UtYWdncmVnYXRvciBpcyBleGFjdGx5IHdoYXQncyBtaXNzaW5nLiBJcyB0aGVyZSBhbiBpc3N1ZSBJIGNhbgo+Pj4+Pj4gc3Vic2NyaWJlIGFuZCB0cmFjaz8KPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gMjAxNy0wNi0yNCAxNDoxNSBHTVQrMDM6MDAgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPjoKPj4+Pj4+Cj4+Pj4+PiBXaGF0IHdlJ3JlIHN0aWxsIG1pc3NpbmcgaXMgYSByZWxlYXNlLWFnZ3JlZ2F0b3IsIHdoaWNoIGNhbiByZWxlYXNlCj4+Pj4+Pgo+Pj4+Pj4gbXVsdGlwbGUgcmVsZWFzZS1yb290cyBhdCBvbmNlLiBUaGF0IHdvdWxkIHByb2JhYmx5IGJlIHRoZSBwcmVmZXJyZWQKPj4+Pj4+PiBmaXgsCj4+Pj4+Pj4gdGhlIHN1Z2dlc3RlZCBwYXRjaCBpcyBqdXN0IGFuIGVhc3kgd29yay1hcm91bmQuCj4+Pj4+Pj4gSXQgaXMgc3RpbGwgb24gbXkgdG9kby1saXN0Lgo+Pj4+Pj4+Cj4+Pj4+Pj4gUm9iZXJ0Cj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+IE9uIFNhdCwgMjQgSnVuIDIwMTcgMTI6NDI6MjIgKzAyMDAsIFBhdWwgSGFtbWFudCA8cGF1bEBoYW1tYW50Lm9yZz4KPj4+Pj4+PiB3cm90ZToKPj4+Pj4+Pgo+Pj4+Pj4+IEVhc3kgdG8gZml4LiAgSGF2ZSBhIHByb2ZpbGUgJ3BsYXRmb3JtT25seScgaW4gdGhlIHJvb3QgbW9kdWxlIChJJ20KPj4+Pj4+PiBub3QKPj4+Pj4+Pgo+Pj4+Pj4+IHN1cmUgaWYgJ0JPTScgc2hvdWxkIG1lYW4gYW55dGhpbmcgdG8gbWUpIHRoYXQgaW5jbHVkZXMgb25seQo+Pj4+Pj4+ICdwbGF0Zm9ybScKPj4+Pj4+Pgo+Pj4+Pj4+PiBhcwo+Pj4+Pj4+PiBhIGNoaWxkIG1vZHVsZS4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gICAgbXZuIHJlbGVhc2U6cHJlcGFyZSAtUHBsYXRmb3JtT25seSAjIGV0Ywo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBMYXRlciB3aGVuIHlvdSdyZSByZWFkeSB0byBkbyB0aGUgZGVtbyBzdG9yZSByZWxlYXNlLCB1c2UgYW5vdGhlcgo+Pj4+Pj4+PiAoZnJvbQo+Pj4+Pj4+PiByb290KToKPj4+Pj4+Pj4KPj4+Pj4+Pj4gICAgbXZuIHJlbGVhc2U6cHJlcGFyZSAtUGRlbW9Pbmx5ICMgZXRjCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IE9mIGNvdXJzZSwgeW91IG1hbiBub3QgbmVlZCB0byBzdHVmZiBkZW1vIGluIHlvdXIKPj4+Pj4+Pj4gQXJ0aWZhY3RvcnkvTmV4dXMvZXRjCj4+Pj4+Pj4+IGluCj4+Pj4+Pj4+IHdoaWNoIGNhc2UganVzdCBkbyB5b3VyIGRlcGxveSBmdSBhZnRlciBhbiAnaW5zdGFsbCcgdy9vIHRoZSByZWxlYXNlCj4+Pj4+Pj4+IHBsdWdpbgo+Pj4+Pj4+PiBpbnZvbHZlZCBvciB0aGF0IHNlY29uZCBwcm9maWxlLgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAtIFBhdWwKPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gT24gU2F0LCBKdW4gMjQsIDIwMTcgYXQgMjo1OCBBTSwgUGV0YXIgVGFoY2hpZXYgPAo+Pj4+Pj4+PiBwYXJhbm9pYWJsYUBnbWFpbC5jb20+Cj4+Pj4+Pj4+IHdyb3RlOgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBIZXkgZ3V5cywKPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gSSdtIGZhY2luZyBhIG51bWJlciBvZiBjaGFsbGVuZ2VzIHdoZW4gSSByZWxlYXNlIHRoZSBwcm9qZWN0IGF0IG15Cj4+Pj4+Pj4+PiBjb21wYW55Lgo+Pj4+Pj4+Pj4gSGVyZSdzIG15IHNldHVwOgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQk9NXQo+Pj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICAgIFwKPj4+Pj4+Pj4+ICAgICAgICAgICAgICBbUExBVEZPUk1dICBbREVNT19TVE9SRV0KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBJIGhhdmUgYSBtYXN0ZXIgQk9NIHByb2plY3Qgd2hpY2ggaG9sZHMgYWxsIHRoZSB2ZXJzaW9uIGFzIGRlZmluZWQKPj4+Pj4+Pj4+IHByb3BlcnRpZXMuIFRoaXMgQk9NIGlzIHRoZSBwYXJlbnQgdG8gdHdvIG90aGVyIHByb2plY3RzIC0KPj4+Pj4+Pj4+IFtQTEFURk9STV0KPj4+Pj4+Pj4+IGFuZAo+Pj4+Pj4+Pj4gW0RFTU9fU1RPUkVdLCBUaGUgW1BMQVRGT1JNXSBpcyBhIHByb2plY3Qgd2l0aCBtb3JlIHRoYW4gNjAgbW9kdWxlcwo+Pj4+Pj4+Pj4gaW5zaWRlLAo+Pj4+Pj4+Pj4gYW5kIHRoZSBbREVNT19TVE9SRV0gaXMgYSBwcm9qZWN0IHRoYXQgZGVjbGFyZXMgdGhvc2UgbW9kdWxlcyBhcwo+Pj4+Pj4+Pj4gZGVwZW5kZW5jaWVzLgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IE5vdyB3aGF0IEkgd2FudCBpcyB0byByZWxlYXNlIGFsbCB0aHJlZSBmcm9tIEplbmtpbnMuIEkgY2FuIHJlbGVhc2UKPj4+Pj4+Pj4+IHRoZQo+Pj4+Pj4+Pj4gW0JPTV0gd2l0aCBubyBwcm9ibGVtcywgdGhlbiBJIHN0YXJ0IHJlbGVhc2Ugb2YgdGhlIFtQTEFURk9STV0gYW5kCj4+Pj4+Pj4+PiBhbGwKPj4+Pj4+Pj4+IG9mIGEKPj4+Pj4+Pj4+IHN1ZGRlbiBKZW5raW5zIGJsb2NrcyBiZWNhdXNlIE1hdmVuIGFza3MgbWUgb24gdGhlIGNvbW1hbmQgbGluZSBpZgo+Pj4+Pj4+Pj4gSQo+Pj4+Pj4+Pj4gd2FudAo+Pj4+Pj4+Pj4gdG8gcmVzb2x2ZSB0aGUgU05BUFNIT1QgZGVwZW5kZW5jaWVzIChyZW1lbWJlciB0aGUgcGFyZW50IG9mIHRoZQo+Pj4+Pj4+Pj4gW1BMQVRGT1JNXQo+Pj4+Pj4+Pj4gaXMgdGhlIFtCT01dIFNOQVBTSE9UIHZlcnNpb24pLgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFNvIEkgY3JlYXRlZCB0aGlzIGlzc3VlIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYQo+Pj4+Pj4+Pj4gL2Jyb3dzZS9NUkVMRUFTRS05ODUKPj4+Pj4+Pj4+IHRvIGJlIGFibGUgdG8gc3BlY2lmeSB0aGUgW0JPTV0gcGFyZW50IHZlcnNpb24gd2hlbiBJIHN0YXJ0IHRoZQo+Pj4+Pj4+Pj4gcmVsZWFzZQo+Pj4+Pj4+Pj4gb2YKPj4+Pj4+Pj4+IFtQTEFURk9STV0uIEkgdGhpbmsgSSBhbHNvIGZpeGVkIGl0IHdpdGggdGhpcyBwdWxsLXJlcXVlc3Q6Cj4+Pj4+Pj4+PiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXJlbGVhc2UvcHVsbC8xOAo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IENhbiBzb21lb25lIGhhdmUgYSBsb29rIGF0IHRoaXMgcHVsbCByZXF1ZXN0IGFuZCB0ZWxsIG1lIGlmIGl0IGlzCj4+Pj4+Pj4+PiBPSz8KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiAtLQo+Pj4+Pj4+Pj4gUmVnYXJkcywgUGV0YXIhCj4+Pj4+Pj4+PiBLYXJsb3ZvLCBCdWxnYXJpYS4KPj4+Pj4+Pj4+IC0tLQo+Pj4+Pj4+Pj4gUHVibGljIFBHUCBLZXkgYXQ6Cj4+Pj4+Pj4+PiBodHRwOi8vcGdwLm1pdC5lZHU6MTEzNzEvcGtzL2xvb2t1cD9vcD1nZXQmc2VhcmNoPTB4MTk2NTg1NTAKPj4+Pj4+Pj4+IEMzMTEwNjExCj4+Pj4+Pj4+PiBLZXkgRmluZ2VycHJpbnQ6IEEzNjkgQTdFRSA2MUJDIDkzQTMgQ0RGRiAgNTVBNSAxOTY1IDg1NTAgQzMxMSAwNjExCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4gLS0tLS0tLS0tCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+Pj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4+PiAtLS0tLS0tLS0KPj4+Pj4+Cj4+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+Pj4KPj4+Pj4KPj4+Pj4KPj4+Pj4KPj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Pgo+Pj4KPj4+Cj4+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKCi0tIApSZWdhcmRzLCBQZXRhciEKS2FybG92bywgQnVsZ2FyaWEuCi0tLQpQdWJsaWMgUEdQIEtleSBhdDoKaHR0cDovL3BncC5taXQuZWR1OjExMzcxL3Brcy9sb29rdXA/b3A9Z2V0JnNlYXJjaD0weDE5NjU4NTUwQzMxMTA2MTEKS2V5IEZpbmdlcnByaW50OiBBMzY5IEE3RUUgNjFCQyA5M0EzIENERkYgIDU1QTUgMTk2NSA4NTUwIEMzMTEgMDYxMQoKLS0wODllMDgyNjFmMTRkZTdmN2QwNTVlN2FkYzkzLS0KCkZyb20gZGV2LXJldHVybi0xMjQwMDEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIFNlcCAxMyAwNjoyMDoyMiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwMDEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgODE4RDYxQThCNQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3IDA2OjIwOjIyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTI4ODkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTMgU2VwIDIwMTcgMDY6MjA6MjIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDEyNzk2IGludm9rZWQgYnkgdWlkIDUwMCk7IDEzIFNlcCAyMDE3IDA2OjIwOjIyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTI3NDUgaW52b2tlZCBieSB1aWQgOTkpOyAxMyBTZXAgMjAxNyAwNjoyMDoyMSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMTMgU2VwIDIwMTcgMDY6MjA6MjEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBFQUIwQjE4NTZGQQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTMgU2VwIDIwMTcgMDY6MjA6MjAgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAzLjE4ClgtU3BhbS1MZXZlbDogKioqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0zLjE4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJRlJFRU1BSUxfUkVQTFk9MSwgSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTE9XPS0wLjcsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMSwKCVdFSVJEX1BPUlQ9MC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgMG1UNjFCS0FPQTdVIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJV2VkLCAxMyBTZXAgMjAxNyAwNjoyMDoxOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXF0MC1mMTgxLmdvb2dsZS5jb20gKG1haWwtcXQwLWYxODEuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNi4xODFdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNzg2RkQ1RjZCRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTMgU2VwIDIwMTcgMDY6MjA6MTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtcXQwLWYxODEuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgYjFzbzIwNTM5MDM0cXRjLjQKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxMiBTZXAgMjAxNyAyMzoyMDoxOCAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1BVXhrMFNNcVJVRzZTQkUzWWg5cEhxZ1F4YlFBbGtLU3JUUVBuTzJSTTQwPTsKICAgICAgICBiPXZRSE1uWHRPajhyWm92YlZIWElEUjkvQndyL3VMRjJ2THRRWEx3aUlrZ2dhbnB0aXVJQmMrNmJrd004cCsvU2hjYwogICAgICAgICBsSnlQcFFvaXF0U2xrRTYvY2dzZkdCWlpaT3N1cVJvWk9pN3YrMGlCbzVMY000Z2xQL1ROS2U0UG1rQTlwbUN0QXAybQogICAgICAgICBoYmZLTmJWN3hLV3FxL1R5cENxUFE5c2dwU2tqQjZ6VzV5OStYc3F2azBxNVhPZERmY0NNSWJVb3F3R3g3eVQzTGoyYQogICAgICAgICAzdFB2cHUxSTRLdG04cDVhT1M2bVh1K3lDdTMwQUl1WEhaK3lKbGdhMGZHMFRuWStZVis2Q2pNMmpvMnRTSGs5Z2VCMwogICAgICAgICB4RnJjbGlkTTVaT0l6S2tSWjFZWWVURndZaHRwV0F3dnIwdTQxVXVvbGd0WU9zRHNrVmxHS1lmbGQ1QUo1K1lBZTBwUQogICAgICAgICBNVWlBPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1BVXhrMFNNcVJVRzZTQkUzWWg5cEhxZ1F4YlFBbGtLU3JUUVBuTzJSTTQwPTsKICAgICAgICBiPW1CN3R6alIrTlU0M3E4clRzQWo1TFJ0MWgzS3k5UWxHZzE1aDBCT2hVa2lQTDc4dXZKQkJtYzJhMnlkdWFVallLZwogICAgICAgICBXeHhtZWdoQnlDY25KbUdiRmx5bW5LWm9KQ04wU0p1cE1qSlN2cXFLNko0bXhVbzNscnczUkZaNmVmSDkyNUpTN1Q2NAogICAgICAgICBnWXdleU15SXJWa1NVNDhLNDJHaHJUT2I4VVFwTzI4M1JESGVyblMvSUk3a0RESWM4aWFZN0VpdVlFNmc1WDNpMGNEdwogICAgICAgICByY2phOVRpZXRGUzFNU3pnY3dudmd5NlIrTzdsUHllV3RodmZKaXJiVTFqY0tOTFRCcmJiUDlvNnlZOVpEaHN6QWR6ZAogICAgICAgICBWL2xaaFplelVzL28xaHJlbXNQSVJhZ2k0a2ovT1A3MHdHY05OZmViYkFnZG5mSExqeDFUN3ZkdEhCK3Z1eFFsNFZrbAogICAgICAgICBPRnBRPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVoaU5UN1hIZWZaK3p3bkNkVWsybVVObUdnOHlBTFBucDEwWHNNNDNpSVFURCthaTRTZAoJS0dST3hEczNySnFNZXdOVnpTeEFNc2xiUzk2OHEvQmROTCsxakRJYW1nPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UURsNkNzT0l5eWNGbEtnK3FnWFRqVU1XSWZRaW0zcXQ0WWVqaFNHTXZBTG5kaUd4VUdPVEVhOWxyQmZ5YTZBL3VTeGdZVDQ4YS9GK0QwOW5LWU0vWDQ9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIwMC4yLjE0MSB3aXRoIFNNVFAgaWQgcDEzbXIxNzQ5NzMwN3F0Zy40NS4xNTA1MjgzNjExNzkzOwogVHVlLCAxMiBTZXAgMjAxNyAyMzoyMDoxMSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTIuMTU0LjUgd2l0aCBIVFRQOyBUdWUsIDEyIFNlcCAyMDE3IDIzOjIwOjEwIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0FBZFhtaHFrRVY5dk5UV0xDPVYxdjRDal8raWpQQUoycExGNzU4bU9Qb2lyem9DQkFRQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgogPHBvbnktNTZhM2FkZWFmNjBjNDA1OTZmYjI4NGIyNDUyNDE0OGY2MDVlOGQyMy01MmQ0MWNkNDBmMjM0M2M4OTUyODgwZThmODRkYTNlODBkMzM1NTA5QGRldi5tYXZlbi5hcGFjaGUub3JnPgogPENBK25Qbk15UzJxMXVmYVcrUzZzbWhaWjFKY3hoZjloWTUtM25CSi1pQ1dlalBVQURWQUBtYWlsLmdtYWlsLmNvbT4KIDwyMDU3OTQ4LmsxR3lmanVHWGRAZ2lnYT4gPENBK25Qbk13Y29IRlp2VXFXaVVzeUhCaGFNbW9TY2N5ZFRCc3pTWGdzR3RGPXdOR0RLd0BtYWlsLmdtYWlsLmNvbT4KIDxDQUR6eTdqQzVHd1dpaVJkajZzd2VKN3hldUJwRnlISFFhWmhpT0dZbVFrUzJMaVk2YmdAbWFpbC5nbWFpbC5jb20+IDxDQUFkWG1ocWtFVjl2TlRXTEM9VjF2NENqXytpalBBSjJwTEY3NThtT1BvaXJ6b0NCQVFAbWFpbC5nbWFpbC5jb20+CkZyb206IFBldGFyIFRhaGNoaWV2IDxwYXJhbm9pYWJsYUBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMTMgU2VwIDIwMTcgMDk6MjA6MTAgKzAzMDAKTWVzc2FnZS1JRDogPENBS25iZW1XbWY9WU1mQnd6RjdHbjRCMEQ4dUxvUnBUR0g1cT1NT1R2WWhQK0ZpekNRQUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSJmNDAzMDQzNWNmYjBmNzlmODcwNTU5MGMyNmM0IgoKLS1mNDAzMDQzNWNmYjBmNzlmODcwNTU5MGMyNmM0CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCisxIC0gZ28gZm9yIGl0LgoKCjIwMTctMDktMTMgOTowNCBHTVQrMDM6MDAgR3J6ZWdvcnogR3J6eWJlayA8Z3IuZ3J6eWJla0BnbWFpbC5jb20+OgoKPiBIZWxsbwo+Cj4gKzEgKG5vbi1iaW5kaW5nKSAtIHRlc3RlZCBGdXNlL0thcmFmL09TR2kgcHJvamVjdHMKPgo+IHJlZ2FyZHMKPiBHcnplZ29yeiBHcnp5YmVrCj4KPiAyMDE3LTA5LTEzIDg6MDAgR01UKzAyOjAwIFRob21hcyBDb2xsaWdub24gPHRvbWlwaG9uZTNnQGdtYWlsLmNvbT46Cj4KPiA+IEhlbGxvCj4gPgo+ID4gKzEgZm9yIG1lCj4gPgo+ID4gMjAxNy0wOS0xMiAyMDo1NCBHTVQrMDI6MDAgU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWk9CmwuCj4gPiBjb20KPiA+ID46Cj4gPgo+ID4gPiBIYXZlIHdlIGdvdCBhbnkgZmVlZGJhY2sgZnJvbSB0aGUgZW1iZWRkZXIgaW50ZWdyYXRpb25zIHlldD8KPiA+ID4KPiA+ID4gT24gTW9uIDExIFNlcCAyMDE3IGF0IDIyOjU3LCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mPQpyPgo+ID4gd3JvdGU6Cj4gPiA+Cj4gPiA+ID4ganVzdCBmb3IgdGhlIHJlY29yZHM6IGl0IGlzIFdpbmRvd3MgKyBHaXQgQmFzaCAoTUlOR1c2NCkgb25seQo+ID4gPiA+Cj4gPiA+ID4gYW5kIHRoZXJlIGlzIGEgY2hhbmNlIHRoYXQgYWRkaW5nIC1EamFuc2kuZm9yY2U9M0R0cnVlIGNhbiBmb3JjZSBKQT0KbnNpCj4gPiA+ID4gYWN0aXZhdGlvbiAoZXZlbiBpZiBKQW5zaSBmYWlscyB0byBkZXRlY3QgdGhhdCBpdCBzaG91bGQKPiBhdXRvLWFjdGl2YXRlKQo+ID4gPiA+Cj4gPiA+ID4gZGV0YWlscyBvbiBpc3N1ZSBpbiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MjgyID0KLAo+ID4gPiBhbmQgYQo+ID4gPiA+IGZ1dHVyZSBKQW5zaSBpc3N1ZS4uLgo+ID4gPiA+Cj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPgo+ID4gPiA+IEhlcnY9QzM9QTkKPiA+ID4gPgo+ID4gPiA+IExlIGx1bmRpIDExIHNlcHRlbWJyZSAyMDE3LCAxMjo1Mzo0NiBDRVNUIFN0ZXBoZW4gQ29ubm9sbHkgYSA9QzM9QTk9CmNyaXQgOgo+ID4gPiA+ID4gU28gdGhhdCBpcyB3aW5kb3dzIG9ubHksIG9yIHdlcmUgdGhleSBsb3N0IG9uIG90aGVyIE9TZXMgZm9yIHlvdS4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBJIGhhdmUgY29sb3VycyBvbiBsaW51eCAodmlhIGRvY2tlcikgYW5kIG9zLXgKPiA+ID4gPiA+Cj4gPiA+ID4gPiBPbiAxMSBTZXB0ZW1iZXIgMjAxNyBhdCAxMjozNSwgZGVqYW4yNjA5QGdtYWlsLmNvbSA8Cj4gPiA+IGRlamFuMjYwOUBnbWFpbC5jb20+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gd3JvdGU6Cj4gPiA+ID4gPiA+ICsxIChjb25kaXRpb25hbGx5KS4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gVGVzdGVkIHZpYSBwcm9qZWN0IHRoYXQgaW5jbHVkZXMgZG96ZW4gb2YgcGx1Z2luczogMXN0IHRpZXIsCj4gPiBNb2pvSGF1cwo+ID4gPiA+IGFuZAo+ID4gPiA+ID4gPiBmZXcgM3JkIHBhcnR5IHBsdWdpbnMgKHNvIHRvIHNheSkuCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IEV2ZXJ5dGhpbmcgbG9va3MgZ29vZCB3aXRoIG9uZSBub3RhYmxlIHJlZ3Jlc3Npb246Cj4gPiA+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyODIgQ29uc29sZSBvdXRwdXQKPiBoYXMKPiA+IG5vCj4gPiA+ID4gPiA+IGNvbG9ycyAocmVncmVzc2lvbiBpbiBNYXZlbiAzLjUuMSkKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiA+ID4gRGVqYW4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gT24gMjAxNy0wOS0xMCAxNzozOSwgU3RlcGhlbiBDb25ub2xseQo+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuCj4gPiA+IGNvbQo+ID4gPiA+ID4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gd3JvdGU6Cj4gPiA+ID4gPiA+ID4gSGksCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBXZSBzb2x2ZWQgMjUgaXNzdWVzOgo+ID4gPiA+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gdmVyc2lvbj0zRDEyMzM4OTY0JnN0eWxlTmFtZT0zRFRleHQmcHJvamVjdElkPTNEMTIzMTY5MjIKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBUaGVyZSBhcmUgMzUwIGlzc3VlcyBsZWZ0IGluIEpJUkEgZm9yIE1hdmVuIGNvcmU6Cj4gPiA+ID4gPiA+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gM0QlMjBNTkclMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJQo+ID4gPiA+ID4gPiAyMEJZJTIwZHVlJTIwQVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwY3JlYXRlZCUyMEFTQwo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IFN0YWdpbmcgcmVwbzoKPiA+ID4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY0PQovCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBUaGUgZGlzdHJpYnV0YWJsZSBiaW5hcmllcyBhbmQgc291cmNlcyBjYW4gYmUgZm91bmQgaGVyZToKPiA+ID4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+ID4KPiA+ID4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS8KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBTcGVjaWZpY2FsbHkgdGhlIHppcCwgdGFyYmFsbCBhbmQgc291cmNlIGFyY2hpdmVzIGNhbiBiZSBmb3VuPQpkCj4gPiA+IGhlcmU6Cj4gPiA+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tPiA+Cj4gPiA+ID4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4KPiA+IDEtYmluLnppcAo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4gPgo+ID4gPiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuCj4gPiA+IDEtYmluLnRhci5nego+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT4gPgo+ID4gPiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuCj4gPiAxLXNyYy56aXAKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0+ID4KPiA+ID4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41Lgo+ID4gPiAxLXNyYy50YXIuZ3oKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiA+ID4gPiA+ID4gPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5neiBzaGExOgo+ID4gOWViODIxZjE1M2M3NjY3MTk0YWExMWNjZDA5OWI3Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IGJkMjA1OTU2MGQKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcDogc2hhMToKPiAxMjFkNTRiMDQ1MzgwYThhNDg5NWViMTM3OTcwYWIKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gNjllNjk4ZWIwZQo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IEdpdCB0YWc6Cj4gPiA+ID4gPiA+ID4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9M0RtYXZlbi5naXQ7YT0zRAo+IGNvbW1pdDtoPTNECj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IDA5NGU0ZTMxYTVhZjU1YmIxN2JlODc2NzVkYTQxZDlhZWNhMDYyZjMKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBTdGFnaW5nIHNpdGU6Cj4gPiA+ID4gPiA+ID4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2NvbXBvbmVudHMvcmVmLzMtTEFURVNULwo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gVm90ZSBvcGVuIGZvciA3MiBob3Vycy4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IFsgXSArMQo+ID4gPiA+ID4gPiA+IFsgXSArMAo+ID4gPiA+ID4gPiA+IFsgXSAtMQo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gVGhhbmtzLAo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gU3RlcGhlbi4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IC0tLS0tLS0tLQo+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4KPiA+ID4gPgo+ID4gPiA+Cj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tCj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4KPiA+ID4gPiAtLQo+ID4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+ID4KPiA+Cj4KCgoKLS09MjAKUmVnYXJkcywgUGV0YXIhCkthcmxvdm8sIEJ1bGdhcmlhLgotLS0KUHVibGljIFBHUCBLZXkgYXQ6Cmh0dHA6Ly9wZ3AubWl0LmVkdToxMTM3MS9wa3MvbG9va3VwP29wPTNEZ2V0JnNlYXJjaD0zRDB4MTk2NTg1NTBDMzExMDYxMQpLZXkgRmluZ2VycHJpbnQ6IEEzNjkgQTdFRSA2MUJDIDkzQTMgQ0RGRiAgNTVBNSAxOTY1IDg1NTAgQzMxMSAwNjExCgotLWY0MDMwNDM1Y2ZiMGY3OWY4NzA1NTkwYzI2YzQtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDgwNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgRGVjIDIxIDA4OjMzOjUxIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDgwNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBCNDEyNTEwREMwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjEgRGVjIDIwMTcgMDg6MzM6NTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3OTI3NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBEZWMgMjAxNyAwODozMzo1MSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzkyMDggaW52b2tlZCBieSB1aWQgNTAwKTsgMjEgRGVjIDIwMTcgMDg6MzM6NTEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3OTExOSBpbnZva2VkIGJ5IHVpZCA5OSk7IDIxIERlYyAyMDE3IDA4OjMzOjUwIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyMSBEZWMgMjAxNyAwODozMzo1MCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDU0QjQ3MTgwQTE3Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyMSBEZWMgMjAxNyAwODozMzo1MCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuODgKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi44OCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxLCBXRUlSRF9QT1JUPTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBQWnZ0M2gxODRnaXcgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsIDIxIERlYyAyMDE3IDA4OjMzOjQ5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtcWswLWYxNzAuZ29vZ2xlLmNvbSAobWFpbC1xazAtZjE3MC5nb29nbGUuY29tIFsyMDkuODUuMjIwLjE3MF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBEQjM5RjVGMTlBCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyMSBEZWMgMjAxNyAwODozMzo0OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1xazAtZjE3MC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBwMTNzbzEzOTIwMDAxcWtlLjQKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyMSBEZWMgMjAxNyAwMDozMzo0OCAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1Mbi9lSVpNL2lDb1dJQTAvb1BJRVdmMGxDWTRyUHFxR3ZFUjB2SHRVS3BjPTsKICAgICAgICBiPURFSmFlcGIyTTdxcDJUR3R3b25Ca1NMQk1Ja0R5a2xWeHZEc3Y1ZzJYV3JYUnc4MTRneDZMcmVmdlU3aE9teUhqTwogICAgICAgICBGem92b2FxUUpjOGhFaUZEREZ3UFJVWWlwampZRUtpaHVpL0hRazFObmlMQXRhY3JvK0lpUjN6ZGVCYUwxeTRwUWNpQgogICAgICAgICBhWEdvZFJVVEprT1MzNWswTVFQY0pITjkzSE5IQkZ2ZXpzU3A1UE01TU83eHZCb0E1M2NWTFpEblRYODNRQVE0Umw4MwogICAgICAgICAvT1p2QlAyNTFhbzZvZXN2K0FFRGthRkwxODZZQUVYZEUvUjB2SUVwdzd6cjBQa1cxTXA3TXdzbEJ6aFp5V29sdHVlUAogICAgICAgICA4SXgxVEV2d25NdFRkbVFEMzRMbDcwc015YjhHMi9LaTF3QTdtdW9HYjJjSmhxaHJHWWhrWW90WWRxOG0xcmc2eE4zZwogICAgICAgICBkdFlRPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1Mbi9lSVpNL2lDb1dJQTAvb1BJRVdmMGxDWTRyUHFxR3ZFUjB2SHRVS3BjPTsKICAgICAgICBiPUt3VGo1QlNPZTc1MkRJdUZmaE8vZDc5bndRbkRBMWZDaVU1RWxrTmM4NGswUjJ5L3N4Q0NLcmQzdlkybkdXRzVnVQogICAgICAgICBqWFFMcWZ3eXR2bTVsTkcvSGNLbWZ4ZDdlbTU4R05HOWRvbzBKODZiTG45eHF3K1d1MXZ2dHVzNmp2K3lKUnBRcS95MwogICAgICAgICBuTW9iYXQ3RFdvVnJIdG1ndDVjMElna0ZWUEp4YW9uTEdDVHZIVWVQaUxCcEdFZkw2bUFQQ0kvQ213d1g0dWpDeWRCWQogICAgICAgICBLTnA2aUpGL1dEOUo0NHdYYnFDblZXYmMzSlJ1L2pCVW5pTkc1b2hvcU9pQ2xIeG0vbkk3cjVsY2xJNmtuc1BldS9wVwogICAgICAgICB1dnJISEtnYjV0eVNqR0hDK1BsNXV5cW1aUmtnOG9XT1laMmN0L09rSTNMTUlhWVg5U0UrUzFvRzhHcVlselg4NXc5YgogICAgICAgICBMQVV3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBS0dCM21LVkdneG1EYTVlSDBpa0dwbmM4em9RR2xHVVZ2SXN1c0I5QTZ4TVp3b003QkFDTDdRZwoJR3NjbmFTT1lEbklJWmFsNUhZckt6bkk2UlR1R0tMbjNSMG4ySVNNaC9nPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFDSmZCb3RPKzNocUtJRG1nUlJMRTZKdzBHdEpEcGZFZ2FEVUZMd0pVak83VnduTTI2VHg2cTRDNXMyVjltM2pXZW9McFRsK0k4UTJFb3dCYWEwR09BeGhtbFU9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIzMy4yMzcuMjEyIHdpdGggU01UUCBpZCBjMjAzbXIxMzUyMjQ0NXFrZy4zMjMuMTUxMzg0NTIyODM1NjsKIFRodSwgMjEgRGVjIDIwMTcgMDA6MzM6NDggLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjEyLjIxOS4xMyB3aXRoIEhUVFA7IFRodSwgMjEgRGVjIDIwMTcgMDA6MzM6NDcgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDwzNzk2MzI4LkgzV2k5cmhKN0VAZ2lnYT4KUmVmZXJlbmNlczogPDU2NTc5NDMuaFlvMk1vbVFXSEBnaWdhPiA8Mzc5NjMyOC5IM1dpOXJoSjdFQGdpZ2E+CkZyb206IFBldGFyIFRhaGNoaWV2IDxwYXJhbm9pYWJsYUBnbWFpbC5jb20+CkRhdGU6IFRodSwgMjEgRGVjIDIwMTcgMTA6MzM6NDcgKzAyMDAKTWVzc2FnZS1JRDogPENBS25iZW1YTjU9UUdhYl94OGVXdURRRVhyZUxSaHdYZzU9Rl9xU1hubVozZ3h1Y0s2Z0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBEb3hpYSB2ZXJzaW9uIDEuOApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0OGI1ZmMxNGNhYjMwNTYwZDU4ZmZlIgoKLS0wMDFhMTE0OGI1ZmMxNGNhYjMwNTYwZDU4ZmZlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCisxIGZyb20gbWUuCgoyMDE3LTEyLTIxIDEwOjMwIEdNVCswMjowMCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj46Cgo+IG9uZSB2b3RlIHN0aWxsIG1pc3NpbmcuLi4KPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUMzPUE5Cj4KPiBMZSBkaW1hbmNoZSAxNyBkPUMzPUE5Y2VtYnJlIDIwMTcsIDE3OjM2OjUzIENFVCBIZXJ2PUMzPUE5IEJPVVRFTVkgYSA9QzM9Cj1BOWNyaXQgOgo+ID4gSGksCj4gPgo+ID4gV2Ugc29sdmVkIDE5IGlzc3VlczoKPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiA+IHByb2plY3RJZD0zRDEyMzE3MjMwJnZlcnNpb249M0QxMjMzNDg0NyZzdHlsZU5hbWU9M0RUZXh0Cj4gPgo+ID4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9M0Rwcm9qZWN0JTIwJTNEJTIwRE9YSUElMjBBTj0KRAo+ID4gJTIwc3RhdHVzJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDCj4gPgo+ID4gU3RhZ2luZyByZXBvOgo+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM4My8KPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+IDEzODMvb3JnL2FwYWNoZS8KPiA+IG1hdmVuL2RveGlhL2RveGlhLzEuOC9kb3hpYS0xLjgtc291cmNlLXJlbGVhc2UuemlwCj4gPgo+ID4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gPiBkb3hpYS0xLjgtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6IDk3YmY0MzVkYTAzZGQ0YThkNWNmYzFiMGYwNzI2NQo+IDA5MDg2M2NmZjAKPiA+Cj4gPiBTdGFnaW5nIHNpdGU6Cj4gPiBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9kb3hpYS9kb3hpYS1hcmNoaXZlcy9kb3hpYS1MQVRFU1QvCj4gPgo+ID4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+ID4KPiA+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4gPgo+ID4gWyBdICsxCj4gPiBbIF0gKzAKPiA+IFsgXSAtMQo+ID4KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+CgoKLS09MjAKUmVnYXJkcywgUGV0YXIhCkthcmxvdm8sIEJ1bGdhcmlhLgotLS0KUHVibGljIFBHUCBLZXkgYXQ6Cmh0dHA6Ly9wZ3AubWl0LmVkdToxMTM3MS9wa3MvbG9va3VwP29wPTNEZ2V0JnNlYXJjaD0zRDB4MTk2NTg1NTBDMzExMDYxMQpLZXkgRmluZ2VycHJpbnQ6IEEzNjkgQTdFRSA2MUJDIDkzQTMgQ0RGRiAgNTVBNSAxOTY1IDg1NTAgQzMxMSAwNjExCgotLTAwMWExMTQ4YjVmYzE0Y2FiMzA1NjBkNThmZmUtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDcwMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgRGVjICAyIDEwOjAzOjIzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDcwMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAwNzNBNjE3NEJECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDIgRGVjIDIwMTcgMTA6MDM6MjMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1MTA1OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIERlYyAyMDE3IDEwOjAzOjIyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MDk4NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIERlYyAyMDE3IDEwOjAzOjIyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTA5NzUgaW52b2tlZCBieSB1aWQgOTkpOyAyIERlYyAyMDE3IDEwOjAzOjIyIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDAyIERlYyAyMDE3IDEwOjAzOjIyICswMDAwClJlY2VpdmVkOiBmcm9tIG1haWwteXcwLWYxODEuZ29vZ2xlLmNvbSAobWFpbC15dzAtZjE4MS5nb29nbGUuY29tIFsyMDkuODUuMTYxLjE4MV0pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCBFNDhCODFBMDE2MQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDIgRGVjIDIwMTcgMTA6MDM6MjEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwteXcwLWYxODEuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgeTE4N3NvNDk4OTU3OHl3ZC4xMgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDAyIERlYyAyMDE3IDAyOjAzOjIxIC0wODAwIChQU1QpClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYNG4xbTA4SDVDcmdHUGg0ZjhLTWRxbXF4NXN1TVl1WjJRQzhESERsQUZSb1VLdmZBMkcKCURBbXBYK0Q2ZGE0MU1sT0R0d2J4b3pZd3lHcjdzRjVodmdEWUFLQT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TWJlczZwRGV0dEhtMndVN2VrMUdUbStRN0x2TFFML3NIY3RxbjRNeEJBMGFXMHFnMmVzQWVzRzJEcEFEUkZKY3hNWFVJWXUzc21HUnFiL3RMcmRacU09ClgtUmVjZWl2ZWQ6IGJ5IDEwLjEzLjI0OC4xOTUgd2l0aCBTTVRQIGlkIGkxODZtcjU4Mzk0OTh5d2YuNDM2LjE1MTIyMDkwMDA0NzA7CiBTYXQsIDAyIERlYyAyMDE3IDAyOjAzOjIwIC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xMjkuMTIyLjE1MSB3aXRoIEhUVFA7IFNhdCwgMiBEZWMgMjAxNyAwMjowMzoyMCAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPENBK25Qbk13MHNXZzFvSlA5UDVUbnJxYmdwUVNjV2VBMG04WmkyU2E4TUNiMDFnZTlXd0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk13MHNXZzFvSlA5UDVUbnJxYmdwUVNjV2VBMG04WmkyU2E4TUNiMDFnZTlXd0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPgpEYXRlOiBTYXQsIDIgRGVjIDIwMTcgMTE6MDM6MjAgKzAxMDAKWC1HbWFpbC1PcmlnaW5hbC1NZXNzYWdlLUlEOiA8Q0FLdVZ6QlEwYTZKODBUdCtNSGRkV1R3U2RyKy15X3RhV3VMUDYxdz1veGJ0TXMyeVhnQG1haWwuZ21haWwuY29tPgpNZXNzYWdlLUlEOiA8Q0FLdVZ6QlEwYTZKODBUdCtNSGRkV1R3U2RyKy15X3RhV3VMUDYxdz1veGJ0TXMyeVhnQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogUkUgc3dpdGNoaW5nIHN1cmVmaXJlIHRvIHRoZSBzdGFuZGFyZCBidWlsZApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSI5NGViMmMwODI2YTI0YzllN2UwNTVmNTg5OGU2IgoKLS05NGViMmMwODI2YTI0YzllN2UwNTVmNTg5OGU2CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpQbHMgZG8gbm90IGRvIGl0IQpJIHdhbnQgdG8gaGF2ZSBpdCB1bmRlciBjb250cm9sIGluIEplbmtpbnNmaWxlIGFuZCBub3QgdG8gc2hhcmUgdGhlIGNvZGUKd2l0aCBvdGhlciBwcm9qZWN0cy4KU3VyZWZpcmUgcHJvamVjdCBpcyBkaWZmZXJlbnQgYW5kIGl0IG11c3QgYmUgc3RpbGwgZGlmZmVyZW50LgpJIHNlZSBHcm9vdnkgbGlicmFyaWVzIHVzZWZ1bCBvbmx5IGluIHNpdHVhdGlvbnMgd2hlbiBJIGNhbGwgSHVkc29uIEFQSQpmdW5jdGlvbnMgYW5kIEkgbmVlZCB0byBhdm9pZCBzZWN1cml0eSBpc3N1ZSBvbiB0aGVzZSBjYWxscyBhZnRlciB1c2luZwpzaGFyZWQgR3Jvb3Z5IGxpYnJhcnkgZm9yIEplbmtpbnMsIGJ1dCBub3QgaW4gaGVyZSBsaWtlIG9uZSBmdW5jdGlvbgpzdWJzdGl0dXRpbmcgZW50aXJlIGNvbnRlbnQgb2YgSmVua2luc2ZpbGUuCgpUCgpPbiBUaHUsIE5vdiAzMCwgMjAxNyBhdCAxMDo1OSBQTSwgU3RlcGhlbiBDb25ub2xseSA8CnN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgoKPiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL2pvYi9tYXZlbi13aXAvam9iL21hdmVuLXN1cmVmaXJlLwo+IGpvYi9uZXctamVua2luc2ZpbGUvCj4gdG8gc2VlIHdoYXQgaXQncyBsaWtlLgo+Cj4gV2UgY2FuIGxvb2sgaW50byBhZGRpbmcgamFjb2NvIHJlcG9ydGluZyB0byB0aGUgc3RhbmRhcmQgYnVpbGQgaWYgaXQgaXMKPiBzZWVuIGFzIGltcG9ydGFudAo+CgotLTk0ZWIyYzA4MjZhMjRjOWU3ZTA1NWY1ODk4ZTYtLQoKRnJvbSBkZXYtcmV0dXJuLTEyMzk5NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgU2VwIDEyIDE4OjQxOjM2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzk5NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBBMzk3MjFBMTY2Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMTIgU2VwIDIwMTcgMTg6NDE6MzYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxNDg2NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMiBTZXAgMjAxNyAxODo0MTozNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTQ3NzggaW52b2tlZCBieSB1aWQgNTAwKTsgMTIgU2VwIDIwMTcgMTg6NDE6MzUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNDc2NSBpbnZva2VkIGJ5IHVpZCA5OSk7IDEyIFNlcCAyMDE3IDE4OjQxOjM1IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAxMiBTZXAgMjAxNyAxODo0MTozNSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDEzMDBFQzhGNzUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDEyIFNlcCAyMDE3IDE4OjQxOjM1ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi44OApYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjg4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEhUTUxfT0JGVVNDQVRFXzA1XzEwPTAuMDAxLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nb29nbGVtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgZUkzWVpOeWo4UGhrIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVHVlLCAxMiBTZXAgMjAxNyAxODo0MTozMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXl3MC1mMTc5Lmdvb2dsZS5jb20gKG1haWwteXcwLWYxNzkuZ29vZ2xlLmNvbSBbMjA5Ljg1LjE2MS4xNzldKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgOEZEOEI1RjZCRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTIgU2VwIDIwMTcgMTg6NDE6MzMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwteXcwLWYxNzkuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgczYyc28zMDE4MTY5Nnl3Zy4wCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTIgU2VwIDIwMTcgMTE6NDE6MzMgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdvb2dsZW1haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1vRmlrVzZOcEIzamVWUmRIM1JNTERvNjlvS00zR0E2ZVZaWUFGNHNtWklFPTsKICAgICAgICBiPXVxUFUrOEh4MThzeDA1cjJDWEJ1WXUzZWVkbkk4anpTMUJEOFBPSnFWb01yMnc4eDJHYTJHRndvUmZYd1RyU1prUwogICAgICAgICBaM0pZSG8yTkxTV2dIWE9RZWdsUUxuT1VPdHN4Sm00MjAzSzgrSWxyWWJtbyt0V0pDMkVBbGZCSHo5Qi9IUDdzdWovOQogICAgICAgICBvRUREVnBlYjBBL2F2TzQreC8vb2NGT2tiZmVzK0VSOS9JQnVGOUZQVmxkWW5TdGcvNThxZWtITzNsQmtBcWVhSHVINQogICAgICAgICBpWllkMk90WlhMa29HRDNBOVpjTFg2anVCVjZka1gyU25DOVExdlZtbnJXODduSm9ZSVZoa2g2MHNWQjBDT0lWQVVHYgogICAgICAgICBJTFZIejBONkdqMG5FK0IwbEcwUFMvdXF0THdxMllHNHJJT2Rua241Q2xqV0VFWFdoQWlTMUNiL2t3eEk0Rm1qbTU4UQogICAgICAgICBtNk9RPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1vRmlrVzZOcEIzamVWUmRIM1JNTERvNjlvS00zR0E2ZVZaWUFGNHNtWklFPTsKICAgICAgICBiPWtycnNGTzNtNzN1UkVHTVJNK0FOeXVoRVRRdHJaTlhLZzVNTlFkRmtlclVRa1RydmtMUGZRaEx6VElueUcwdXhjaQogICAgICAgICAvUmdrbFZ1emltaTZrS3RWU3lJTEw0dnRFNTNYQzg3bEVzeFU5aEh5TVpzblhwR0RMa2NLUDR0SVBicGNHOUFMcVpUbQogICAgICAgICBhY2d3SnhxWEF1ZmZHQ0pXTjdIUUpkTzF4YjlvbVBOT1NyOFlBVDlwdDRrZ2hNK3lnZ0hka2gzYVdFN0NYUHpsVFlragogICAgICAgICBmNDBmNWpRbmw2REdqd1N6cmc2YUZyTnE4VXZMcnMvVi9wZ2t1bHFJSHdJYXZpaVB0Nlo1Z3JPZ09mbDdXNTNsS3p4SgogICAgICAgICBmbXYzcXhZenNkY2RXazZUZS9QbkJkN0NlN01rRXBVdXo2clVCd1JmaFBaNTArZGZDWWgxY0RhRXdacmxMUWdYTG4xegogICAgICAgICB3SWZBPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVpOE9tZThpZUNFNExQUWZDbE5BQWRlMEV5OTJBdnJOSG03Q0cxTmlTUDBqK3VZMklRYwoJY1JRcEI1YkI3dk9ZSjNPYnBhZHJuUWFUZDBOU1F3PT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFES0NOYjdJR1JlOTFVZkZ5dUpSMFV4NGdMdWhyTzN3NW9ma0o5aWlVQzh3c2hHZXhKZzZNeWlsdW54eStGZ0hPTGdOc1B6L0VYZzBsUldwOXFvaG1BWFF4ck09ClgtUmVjZWl2ZWQ6IGJ5IDEwLjEyOS40Mi44NCB3aXRoIFNNVFAgaWQgcTgxbXIxMzM0MDc3M3l3cS4xODcuMTUwNTI0MTY5MjkyODsKIFR1ZSwgMTIgU2VwIDIwMTcgMTE6NDE6MzIgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjEyOS4xNTcuMTk4IHdpdGggSFRUUDsgVHVlLCAxMiBTZXAgMjAxNyAxMTo0MTozMiAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPDc4YTVhZjkyLWU0NzEtZjlmOS03ZGUwLWYwMmQwOWZhNDAzNUBnbXguZGU+ClJlZmVyZW5jZXM6IDw3OGE1YWY5Mi1lNDcxLWY5ZjktN2RlMC1mMDJkMDlmYTQwMzVAZ214LmRlPgpGcm9tOiBUaWJvciBEaWdhbmEgPHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbT4KRGF0ZTogVHVlLCAxMiBTZXAgMjAxNyAyMDo0MTozMiArMDIwMApNZXNzYWdlLUlEOiA8Q0FLdVZ6QlFKZnlNMjdRbUU9TXREcThRaUdhRlplN21lb2ZnOHpSbU92Mmh5MURVcjZBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIERlcGVuZGVuY3kgUGx1Z2luIHZlcnNpb24gMy4wLjIKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LCBpbmZvQHNvZWJlcy5kZQpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQxZDcxMDY4N2Q0ZTA1NTkwMjY0YzIiCgotLTAwMWExMTQxZDcxMDY4N2Q0ZTA1NTkwMjY0YzIKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCisxOiB0ZXN0ZWQgaW4gbXkgY29tcGFueSBwcm9qZWN0CgpPbiBTYXQsIFNlcCA5LCAyMDE3IGF0IDI6MzQgUE0sIEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPgp3cm90ZToKCj4gSGksCj4KPiBXZSBzb2x2ZWQgNyBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plCj4gY3RJZD0xMjMxNzIyNyZ2ZXJzaW9uPTEyMzQxMjU0Cj4KPiBUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9cHJvamVjdCUyMCUzRCUKPiAyME1ERVAlMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJTIwQlklCj4gMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwdXBkYXRlZCUyMERFU0MKPgo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzYwCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2Cj4gMC9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4tZGVwZW5kZW5jeS1wbHVnaW4vMy4wLjIvbWF2Cj4gZW4tZGVwZW5kZW5jeS1wbHVnaW4tMy4wLjItc291cmNlLXJlbGVhc2UuemlwCj4KPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBtYXZlbi1kZXBlbmRlbmN5LXBsdWdpbi0zLjAuMi1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMToKPiAzYzRhYTcxNmUyOGIyNDE4MzRkNDdkMjJlMWZmNWY2ZTYyZjE2YjliCj4KPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tZGVwZW5kZW5jeS1wbHVnaW4tTEFURVNULwo+Cj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPgo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4KPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPgo+IEtpbmQgcmVnYXJkcwo+IEthcmwgSGVpbnogTWFyYmFpc2UKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCgotLSAKQ2hlZXJzClRpYm9yCgotLTAwMWExMTQxZDcxMDY4N2Q0ZTA1NTkwMjY0YzItLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDE2Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgT2N0ICA3IDEyOjQ4OjA2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDE2Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBENjAwMzEwRDI3Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMTI6NDg6MDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1OTU4MyBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE9jdCAyMDE3IDEyOjQ4OjAxIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1OTUwMiBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE9jdCAyMDE3IDEyOjQ4OjAxIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTk0ODkgaW52b2tlZCBieSB1aWQgOTkpOyA3IE9jdCAyMDE3IDEyOjQ4OjAxIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwNyBPY3QgMjAxNyAxMjo0ODowMSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDY3Q0I1MTgwNjc1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNyBPY3QgMjAxNyAxMjo0ODowMCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDMuODc5ClgtU3BhbS1MZXZlbDogKioqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0zLjg3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUZSRUVNQUlMX1JFUExZPTEsIEhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nb29nbGVtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGpiMzlmNFBrWDlDUSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgIDcgT2N0IDIwMTcgMTI6NDc6NTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC1xdDAtZjE3Ni5nb29nbGUuY29tIChtYWlsLXF0MC1mMTc2Lmdvb2dsZS5jb20gWzIwOS44NS4yMTYuMTc2XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDJCMzYwNUY1MjMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDEyOjQ3OjU2ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXF0MC1mMTc2Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGszMXNvNTcyMDg4cXRhLjYKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAwNyBPY3QgMjAxNyAwNTo0Nzo1NiAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z29vZ2xlbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWUyaUU4VnNjMGxzQ0Faa0huS1ZVZjArQmxDejdQT3hQM2VNeExMVUZ3ZjQ9OwogICAgICAgIGI9cUc2VWlYL3ZIa292OEFwa2xCdVMxUkpmYTdZTTVieGJsb2ErWC9rcUpCejJuODBSQTVrUUVLdmNXK05hZjJMbWZHCiAgICAgICAgIDkwc25oc1V5QWNqVVBNQnNpdGttVjFCKzlsT055Z0VhOFJ2ajRXUVE2MFVpd2plU1RNQy9qdnkvTm1YOURuVjRpVGQ4CiAgICAgICAgIG44Mmc5Umx0SGczWVVRMXQ2ZEZVL3U0SDFFc3JZOWFnZTlXcFlVc0tpVk5lSWlSNFBSYlM3alFvV292bkN3VU5PRmVRCiAgICAgICAgIEtEbVRzdG5ZR0NMUmhRRmdZamlxZmx0OU9GTFRQSDBPb2NjQ0tNOHBFdVN2VHhubVZrcjJLczFZYXNaQVNwT1NzdXBlCiAgICAgICAgIGIwaEw0dzNIajFSQ1Z3NmRlMityQTQrd1VxVUI2QkQzU0paTFFYTVhBZFlxR2Qwb3U3RTFrN2UxZ1ZsMkk0VVBaUEVICiAgICAgICAgIGZnYlE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWUyaUU4VnNjMGxzQ0Faa0huS1ZVZjArQmxDejdQT3hQM2VNeExMVUZ3ZjQ9OwogICAgICAgIGI9TFRQelFrSVlibnM3RmYybmljb2VrVVlHNzNJc3NwK3NsaDJLakV0RmFhL1o1dENER3NWb2xXazJUdUJJM0lEbmx3CiAgICAgICAgIHZjYXZUQ0t6aC9JRDhTRnlIU3Y1eVBIRjRIYnNGZWtwY2VyMmMzbU9BMi9tbmlkZnEvU3ZzMlJDMGJnY3dnb2ZiV3JlCiAgICAgICAgIC93RDd0TjNhZXk4VmYyWWxmZ1hjNUJQRmZjbTZBYkJPUlRZdllwNVU5ak9uOTJLaUlBQldEMVBqejB0d1RCUlBjNG1yCiAgICAgICAgIHN2UXROUWI4SEplNUdXZ3pzeE1GZWdrbW9zVTUwRUZHSmdhOW52LzM0OXJXODlhamlobnJrL3ZHRlRMK3dvVDQ2Z05FCiAgICAgICAgIGI5ZE9PTllKV1hsWnJYN01lcGZadERmL0JOc0F0cTFWdjJRSXBCS1pRSWN0SmwrSUZ2MjkySGQ4NElhRDhnNm5GQVFVCiAgICAgICAgIHBvUkE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVVFaGVEVldIK21iNUZ3YjAzbHNMYStjN29zUzV6eHhWdnB1YTFwbEFZWWdycDZZYkZYCgluMmVmNXd0WVljNW5oQjhJamRJOWZULzFmWkhab0xqZ3JieE9rQ2M9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FCYVNtZlpHVTE5QmdNcGF6cHRwUGE1OUJOdDVUcy9MaGQxMGdLYUo4TEZXUVJjUHNZT1FPTkkzVUsreU81Vm1wV1loNUZGNmNQYm5jUGRZWUw0eERjPQpYLVJlY2VpdmVkOiBieSAxMC4xMy4yMzQuMTQ2IHdpdGggU01UUCBpZCB0MTQwbXI0MTU4ODY1eXdlLjMyNi4xNTA3MzgwNDY4NjA2OwogU2F0LCAwNyBPY3QgMjAxNyAwNTo0Nzo0OCAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTI5LjE5My42NyB3aXRoIEhUVFA7IFNhdCwgNyBPY3QgMjAxNyAwNTo0Nzo0OCAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPDIxODcwMjkuSzM0RTE3TTRqbkBnaWdhPgpSZWZlcmVuY2VzOiA8MTA1NDQ2MTUuQjRoTzNQbnZFekBnaWdhPiA8MjAxNDI2My45aTdsY0Ezakx5QGdpZ2E+CiA8Q0FLdVZ6QlJOQ0RHaEF3RW5HNW5TaHJDd1c9YjNPWlJjRUVlKzdmRk1lWm5jRk9jNmp3QG1haWwuZ21haWwuY29tPiA8MjE4NzAyOS5LMzRFMTdNNGpuQGdpZ2E+CkZyb206IFRpYm9yIERpZ2FuYSA8dGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tPgpEYXRlOiBTYXQsIDcgT2N0IDIwMTcgMTQ6NDc6NDggKzAyMDAKTWVzc2FnZS1JRDogPENBS3VWekJRTVcwOUdhUzI3WHEwQ2JKenFkTFZKN3Jra1ZTSE44cTZQMmFWMXZ3Vz1Hd0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IEplbmtpbnMgYW5kIE1hdmVuIDMuMC41IG9yIEpESyA3ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzA4N2NmNjVmNmQxYzA1NWFmNDVkMTEiCgotLTk0ZWIyYzA4N2NmNjVmNmQxYzA1NWFmNDVkMTEKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSW4gbXkgY29tcGFueSBJIGhhdmUgc3VjaCBzaXR1YXRpb24uCk1ha2luZyBhIHRhZyBmcm9tIHN1YmZvbGRlci4KR2l0IGFsd2F5cyBtYWtlcyB0aGUgdGFnIGZyb20gdGhlIHJvb3QsIHJpZ2h0PwpMZXQncyBnb29nbGUgc29tZXRoaW5nLi4uCgpPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDI6MDUgUE0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiA9Cndyb3RlOgoKPiB0aGFua3MgZm9yIHlvdXIgaW50ZXJlc3QgYW5kIGZlZWRiYWNrCj4KPiBMZSBzYW1lZGkgNyBvY3RvYnJlIDIwMTcsIDEyOjAwOjMyIENFU1QgVGlib3IgRGlnYW5hIGEgPUMzPUE5Y3JpdCA6Cj4gPiA3OCBpcyB0b28gbXVjaC4KPiBub3RpY2UgdGhhdCB0aGVyZSB3b3VsZCBhbHNvIGJlIGEgcXVlc3Rpb24gb24gdGhlIGdpdCByZXBvcyBuYW1pbmcKPiBjb252ZW50aW9uLAo+IHRvIGF2b2lkIGZsYXQgNzggbmFtZXMgYnV0IGtlZXAgYXQgbGVhc3QgMyBtZWFuaW5nZnVsIGdyb3VwcyAocGx1Z2lucywKPiBzaGFyZWQsCj4gcmVzb3VyY2VzOiBJIHRoaW5rIHRoaXMgaXMgbm90IGFic29sdXRlbHkgbmVjZXNzYXJ5IGZvciBkb3hpYS10b29scykKPgo+ID4gVGhlcmUgaXMgbm8gcHJvYmxlbSB0byB0cmlnZ2VyIHJlbGVhc2Ugb3ZlciBzdWItZm9sZGVycyBhbmQgdGFnIGl0IHdpdGgKPiA+IHByZWZpeCB3aGljaCBpcyBhbHJlYWR5IGRvbmUgaW4gU1ZOLgo+IGlzIGl0IHN1cHBvcnRlZCBieSBtYXZlbi1yZWxlYXNlIHBsdWdpbiB3aXRoIGdpdD8KPgo+IG5vdGljZSBJIGRpZCBub3Qga25vdyB0aGF0IGdpdCB3YXMgYWJsZSB0byB0YWcgb25seSBhIHN1YnRyZWU6IGJ1dCBJIGtuZXc9CiBJCj4gZG9uJ3QgeWV0IHVuZGVyc3RhbmQgZXZlcnkgYXNwZWN0IG9mIGdpdCBtYWdpYy4uLiA6KQo+Cj4gPiBUaGUgQ0kgYnVpbGQgY2FuIGFsd2F5cyB0cmlnZ2VyIHRoZSByb290IGFuZCBKZW5raW5zZmlsZSB3b3VsZCBoYXZlIDQxCj4gPiBzdGFnZXMgZm9yIHBsdWdpbnMsIDI2IHN0YWdlcyBmb3IgU2hhcmVkLCBldGMuCj4gPiBJdCBjYW4gYmUgZG9uZSBpbiBKZW5raW5zZmlsZSBhbmQgc28gdGhlIHNoZWxsIHdvdWxkIG5vdCB0aHJvdyBleGNlcHRpbz0Kbgo+ID4gYnV0IHN0YXR1cyB3b3VsZCBiZSBzZXQgaW5zdGVhZCBhbmQgZ29lcyB0byB0aGUgbmV4dCBzdGFnZS4KPiA+IEkgZG8gbm90IGtub3cgaG93IHRvIGRldGVjdCBpbiBHaXRTQ00gd2hpY2ggc3ViLWZvbGRlcihzKSByZWNlaXZlZCBidXQgPQpJCj4gPiBndWVzcyB0aGlzIGNhbiBiZSBpbnZlc3RpZ2F0ZWQuCj4gKzEKPiBidXQgSSBkb24ndCBrbm93IHdoZXJlIHRvIGxvb2sgZm9yIG15c2VsZjogb24gdGhhdCBwb2ludCwgSSBob3BlIHRvIGhhdmUKPiBzb21lCj4gaGVscCBmcm9tIEplbmtpbnNmaWxlIGV4cGVydHMKPiBhbmQgZXZlbnR1YWxseSBzdGFydCB3aXRoIHN2biwgdG8gaGF2ZSBzb21ldGhpbmcgYmVmb3JlIHRoZSBnaXQgbWlncmF0aW9uCj4KPiA+IFRoZW4gaXQgY2FuIGJlIGEga2luZCBvZiBzd2l0Y2gtY2FzZSBvdmVyIGNvbW1pdHRlZCBmb2xkZXJzIGluCj4gSmVua2luc2ZpbGUuCj4gPiBUaGlzIG1lYW5zIHRoYXQgZXZlcnkgdGltZSBhbm90aGVyIHN0YWdlL3N1Yi1mb2xkZXIgaXMgc2hvd24gaW4gUGlwZWxpbj0KZQo+ID4gd2hpY2ggd2lsbCBiZSBtZXNzeSBpbiB0aGUgVUkuIDooCj4gbm90aWNlIHRoYXQgd2UgY2FuIHBlcmhhcHMgc3BsaXQgdGhlIHJlcG9zIGluIGxlc3MgcGFydHMgdGhhbiB3ZSBoYXZlCj4gY29tcG9uZW50czogb24gcGx1Z2lucywgZm9yIGV4YW1wbGUsIHdlIGFscmVhZHkgaGF2ZSA0IGNhdGVnb3JpZXMgWzFdIHdoaT0KY2gKPiB3b3VsZCBhdm9pZCAxIHJlcG8gd2l0aCA0MSBwbHVnaW5zLCBidXQgbW9yZSBzb21ldGhpbmcgbGlrZSA2KzEwKzEwKzE1Cj4gSSBzdXBwb3NlIHdlIGNvdWxkIGRvIHRoZSBzYW1lIGZvciBzaGFyZWQgKHJlcG9ydGluZyBmb2xkZXIgY29tZXMgdG8gbXkKPiBtaW5kKQo+Cj4gVGhlIGtleSBmZWFzaWJpbGl0eSBpc3N1ZSBpcyB0aGUgY2FwYWNpdHkgdG8gcmVsZWFzZSBhIHN1Yi1jb21wb25lbnQgZnJvbQo+IGdpdAo+IHdpdGggbWF2ZW4tcmVsZWFzZS1wbHVnaW4sIElNSE8KPiAodGFraW5nIGFwYXJ0IHRoZSBnaXQgcHVyaXN0cyBpZGVhIG9mIDEgbGlmZWN5Y2xlID0zRCAxIGdpdCByZXBvKQo+Cj4gUmVnYXJkcywKPgo+IEhlcnY9QzM9QTkKPgo+Cj4gWzFdIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMvCj4gPgo+ID4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCA0OjE3IEFNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS49CmZyPgo+IHdyb3RlOgo+ID4gPiBUaGVyZSBhcmUgNiBzdm4gbG9jYXRpb25zIHdpdGhvdXQgYW55IHNwZWNpYWwgY29tcGxleGl0eSB0aGF0IGFyZQo+IHdhaXRpbmcKPiA+ID4gZm9yCj4gPiA+IGEgdm9sdW50ZWVyIGZvciBnaXQgbWlncmF0aW9uIGZvciBhIGZldyB5ZWFycyBidXQgbm9ib2R5IGRvZXMgYW55dGhpbj0KZwo+ID4gPiBhYm91dDoKPiA+ID4gSSBzdGFydGVkIDMgZGF5cyBhZ28gdG8gYXNrIGZvciBoZWxwIGFib3V0IGl0IGFuZCBnb3QgcHJldHR5IG5vCj4gZmVlZGJhY2sKPiA+ID4gWzFdCj4gPiA+Cj4gPiA+IHRoZW4gdGhlcmUgYXJlIHRoZSA0IGNvbXBsZXggc3ZuIGxvY2F0aW9ucyAocGx1Z2lucywgc2hhcmVkLCByZXNvdXJjZT0KcywKPiA+ID4gZG94aWEtCj4gPiA+IHRvb2xzKSB0aGF0IHJlcXVpcmUgbXVjaCBtb3JlIHdvcms6IEkgc3VwcG9zZSB3ZSBjYW4ndCB0ZWxsIGdpdAo+IG1pZ3JhdGlvbgo+ID4gPiBpcwo+ID4gPiBhYmFuZG9uZWQsIGJ1dCBpdCB3aWxsIHJlcXVpcmUgc29tZW9uZSB0byB3b3JrIG9uIGl0IHNlcmlvdXNseQo+ID4gPiBSZW1lbWJlciB0aGF0IHRoZSBrZXkgcXVlc3Rpb24gWzJdIGlzOiBkbyB3ZSB0cmFuc2Zvcm0gdGhlc2UgNCBzdm4KPiA+ID4gbG9jYXRpb25zCj4gPiA+IGludG8gNDEgKzI2ICsgNiArIDUgPTNEIDc4IGluZGVwZW5kZW50IGdpdCByZXBvcz8KPiA+ID4gWWVzLCBJIHRvbGQgdGhhdCBKZW5raW5zIGNvbmZpZ3VyYXRpb24gaXMgb25lIGtleSBhc3BlY3Qgd2UgbmVlZCBhCj4gPiA+IHN0cmF0ZWd5Cj4gPiA+IGFib3V0LCBpbiBwYXJhbGxlbCB3aXRoIGdpdCBzdHJhdGVneS4KPiA+ID4KPiA+ID4gdGhlbiB0aGVyZSB3aWxsIGJlIHRoZSByZW1haW5pbmcgY2FzZXMgd2hlcmUgd2UgbmVlZCB0byBkZWNpZGU6IGxvd2VyCj4gPiA+IGltcGFjdCwKPiA+ID4gbG93ZXIgcHJpb3JpdHkuCj4gPiA+Cj4gPiA+Cj4gPiA+IFN1bW1hcnk6IG5vdGhpbmcgaXMgYWJhbmRvbmVkLCBidXQ6Cj4gPiA+IC0gc2ltcGxlIGNhc2VzOiBubyB2b2x1bnRlZXIgdG8gZG8gdGhlIGpvYgo+ID4gPiAtIGhhcmQgY2FzZXM6IGlzIHRoZXJlIGEgdm9sdW50ZWVyIGVpdGhlciB0byBkZWZpbmUgYSBzdHJhdGVneSBvciBkbwo+IHNvbWUKPiA+ID4gd29yawo+ID4gPiBvbiBpdD8KPiA+ID4KPiA+ID4KPiA+ID4gUmVnYXJkcywKPiA+ID4KPiA+ID4gSGVydj1DMz1BOQo+ID4gPgo+ID4gPiBbMV0gaHR0cHM6Ly9saXN0cy5hcGFjaGUub3JnL3RocmVhZC5odG1sLwo+ID4gPiBlZGYzNjQyYTdiZGQ1MTVmMGNhZDQyMWMyNTU4OTc0MTgxOTQ0NjQ2MzYxNGJmMDUxNWU1NmRiZUAKPiA+ID4gJTNDZGV2Lm1hdmVuLmFwYWNoZS5vcmclM0UKPiA+ID4KPiA+ID4gWzJdIGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvTUFWRU4vR2l0Cj4gPiA+ICtNaWdyYXRpb24jR2l0TWlncmF0aW9uLU1pZ3JhdGluZ2FuYWdncmVnYXRvcnRyZWVpbnRvYQo+IGNvbGxlY3Rpb25vZmdpdHJlcG9zCj4gPiA+Cj4gPiA+IExlIHZlbmRyZWRpIDYgb2N0b2JyZSAyMDE3LCAyMDozNTo0NSBDRVNUIEFybmF1ZCBIPUMzPUE5cml0aWVyIGEgPUMzPQo9QTljcml0IDoKPiA+ID4gPiBCdXQgZGlkIHdlIGNvbXBsZXRlbHkgYWJhbmRvbmVkIHRoZSBpZGVhIG9mIG1vdmluZyBldmVyeXRoaW5nIHRvIGdpPQp0Cj4gPwo+ID4gPiA+IFRoZSBDSSBzZXR1cCB3YXMgdGhlIG1haW4gc3RvcCBmb3IgaXQgPwo+ID4gPiA+Cj4gPiA+ID4gT24gRnJpLCBPY3QgNiwgMjAxNyBhdCA4OjA1IFBNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZj0KcmVlLmZyCj4gPgo+ID4gPgo+ID4gPiB3cm90ZToKPiA+ID4gPiA+IEkgd2FzIGV4cGVjdGluZyB0aGUgdXN1YWwgbGl0YW55Cj4gPiA+ID4gPgo+ID4gPiA+ID4gd2hhdCBJJ20gbm90IGNvbmZpZGVudCBjdXJyZW50bHkgd2l0aCBwaXBlbGluZSBvbiBNYXZlbiBjb3JlIGlzCj4gdGhhdAo+ID4gPiA+ID4gd2UKPiA+ID4gPiA+IGhhdmUKPiA+ID4gPiA+IGZvciBleGFtcGxlIHRoZSAibWF2ZW4tMy54LWplbmtpbnNmaWxlL01ORy02MjQyIC0gYnVpbGQgIzEgLSBudWxsPQoiCj4gPiA+ID4gPiBtZXNzYWdlLAo+ID4gPiA+ID4gd2l0aCB0aGlzICJudWxsIiBwYXJ0IHRoYXQgbWFrZXMgbWUgd29uZGVyIGlmIHdlIGFyZSB1c2luZyBpdCBhcwo+ID4gPgo+ID4gPiBleHBlY3RlZC4KPiA+ID4KPiA+ID4gPiA+IEFuZCBmb3IgbGFyZ2UgbXVsdGktbW9kdWxlIHN2biB0cnVua3MgKHRoZSBvbmVzIHdlIGRvbid0IG1pZ3JhdGUgPQp0bwo+ID4gPgo+ID4gPiBnaXQ6Cj4gPiA+ID4gPiBtYWlubHkgcGx1Z2lucyBhbmQgc2hhcmVkKSwgaXMgdGhlcmUgYSBzb2x1dGlvbiB0byByZWJ1aWxkIGp1c3QKPiA+ID4gPiA+IGNoYW5nZWQKPiA+ID4gPiA+IG1vZHVsZXM/Cj4gPiA+ID4gPgo+ID4gPiA+ID4gaWRlYWxseSwgdGhlIHJlYnVpbGQgd2hlbiBhIFNOQVBTSE9UIGRlcGVuZGVuY3kgaXMgcHVibGlzaGVkIHdvdWw9CmQKPiA+ID4gPiA+IGhhdmUKPiA+ID4gPiA+IGJlZW4gYQo+ID4gPiA+ID4gcGx1cywgYnV0IHRoaXMgaXMgc3VmZmljaWVudGx5IGEgcmFyZSB1c2UgdGhhdCBJIHdvbid0IGJlIGV4dHJlbWk9CnN0Cj4gPiA+ID4gPgo+ID4gPiA+ID4KPiA+ID4gPiA+IFRoZW4gSUlVQywgdGhpcyBtaWdyYXRpb24gam9iIGlzIG9uZSBhZGRpdGlvbmFsIFRPRE8gZm9yIG1lLi4uCj4gPiA+ID4gPgo+ID4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiA+Cj4gPiA+ID4gPiBIZXJ2PUMzPUE5Cj4gPiA+ID4gPgo+ID4gPiA+ID4gTGUgdmVuZHJlZGkgNiBvY3RvYnJlIDIwMTcsIDE3OjQ2OjUzIENFU1QgQXJuYXVkIEg9QzM9QTlyaXRpZXIgYSA9Cj1DMz1BOWNyaXQgOgo+ID4gPiA+ID4gPiBJIGFncmVlIHRoYXQgd2Ugc2hvdWxkIHVzZSBwaXBlbGluZSBub3dkYXlzCj4gPiA+ID4gPiA+IHBlcmhhcHMgYSBzaGFyZWQgbGliIGlmIHdlIHdhbnQgdG8gc3RhbmRhcmRpemUgc29tZSBzdHVmZnMgYW5kID0KYQo+IHNldAo+ID4gPgo+ID4gPiBvZgo+ID4gPgo+ID4gPiA+ID4gPiBtdWx0aS1icmFuY2hlcyBqb2JzIChvciBvcmcgZm9sZGVyIGJ1dCBpdCByZXF1aXJlcyBHaXRIdWIgOiggKQo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBPbiBGcmksIE9jdCA2LCAyMDE3IGF0IDk6MTYgQU0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+ID4gPiA+ID4gPiBPbiBGcmkgNiBPY3QgMjAxNyBhdCAwNjozMiwgSGVydj1DMz1BOSBCT1VURU1ZIDwKPiBoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gd3JvdGU6Cj4gPiA+ID4gPiA+ID4gPiBJIGp1c3QgZml4ZWQgYSBmZXcgZmFpbGluZyBqb2JzIFsxXSB0byBoYXZlIGFnYWluIGEgdXNhYmxlCj4gPiA+Cj4gPiA+IEplbmtpbnMuCj4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBOb3cgSSdtIGZhY2luZyBzb21lIGlzc3VlcywgSSBzdXBwb3NlIGNhdXNlZCBieSBuZXdlciBKZW5raT0KbnMKPiA+ID4gPiA+Cj4gPiA+ID4gPiB2ZXJzaW9uczoKPiA+ID4gPiA+ID4gPiA+IC0gTWF2ZW4gMy4wLjUgY2F1c2VzIE5vU3VjaE1ldGhvZEVycm9yOgo+ID4gPiA+ID4gPiA+ID4gby5jLnBsZXh1cy51dGlsLnhtbC5wdWxsLgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gTVhQYXJzZXIKPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gWzJdCj4gPiA+ID4gPiA+ID4gPiAtIEkgaGFkIHRvIHN3aXRjaCB0byBKREsgOCBmb3IgbWF2ZW4tcGx1Z2luLXRvb2xzIGpvYiwgc2luYz0KZQo+IEpESwo+ID4gPiA+ID4KPiA+ID4gPiA+IGNhdXNlcwo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IGZhaWx1cmVzIChsb29rcyBsaWtlIEplbmtpbnMgdXNlcyBhIGhhY2sgdG8gaW5qZWN0IEpESyA3IGFzPQogYQo+ID4gPgo+ID4gPiB0b29sCj4gPiA+Cj4gPiA+ID4gPiB3aGlsZQo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IHRoZQo+ID4gPiA+ID4gPiA+ID4gYnVpbGQgSlZNIGlzIEphdmEgOCkKPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBTaG91bGQgd2UgZHJvcCBNYXZlbiAzLjAuNSBidWlsZHMgYW5kIEpESyA3Pwo+ID4gPiA+ID4gPiA+ID4gTm90aWNlIEkgZGlkbid0IGNoZWNrIHdoaWNoIGlzIHRoZSBtaW5pbXVtIE1hdmVuIHZlcnNpb24KPiA+ID4KPiA+ID4gcmVxdWlyZWQuLi4KPiA+ID4KPiA+ID4gPiA+ID4gPiA+IE9yIHBlcmhhcHMgc2ltcGx5IGRvbid0IHVzZSB0aGUgSmVua2lucyBNYXZlbiBwbHVnaW4gd2l0aAo+IHRoaXMKPiA+ID4KPiA+ID4gTWF2ZW4KPiA+ID4KPiA+ID4gPiA+ID4gPiAzLjAuNQo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBvcgo+ID4gPiA+ID4gPiA+ID4gSkRLIDcgY29uZmlndXJhdGlvbjogZGVmYXVsdCBidWlsZCBhcyBKZW5raW5zIE1hdmVuIHBsdWdpbgo+IHdpdGgKPiA+ID4KPiA+ID4gSkRLCj4gPiA+Cj4gPiA+ID4gPiA4ICsKPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBsYXRlc3QKPiA+ID4gPiA+ID4gPiA+IE1hdmVuLCBhbmQgb3RoZXIgY29uZmlndXJhdGlvbnMgYXMgc2NyaXB0ZWQgam9icz8KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IGh0dHA6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90LmllLzIwMTMvMTEvamVua2lucy1tYXZlbi1qb2ItPiA9Cj4KPiA+ID4gPiA+Cj4gPiA+ID4gPiB0eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sCj4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IDxodHRwOi8vamF2YWFkdmVudHVyZS5ibG9nc3BvdC5pZS8yMDEzLzExL2plbmtpbnMtPiA+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gbWF2ZW4tam9iLXR5cGUtY29uc2lkZXJlZC1ldmlsLmh0bWw/bT0zRDE+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IFdlIHNob3VsZCBzdG9wIHVzaW5nIHRoZSBldmlsIGpvYiB0eXBlIGFzIGl0PUUyPTgwPTk5cyBtaW5pbXU9Cm0gSmF2YQo+ID4gPgo+ID4gPiB2ZXJzaW9uIGlzCj4gPiA+Cj4gPiA+ID4gPiA+ID4gZGljdGF0ZWQgYnkgSmVua2lucz1FMj04MD05OSBKYXZhIG1pbmltdW0uCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IFdlIG5lZWQgdG8gZGVmaW5lIG91ciBjb21tb24gc3RyYXRlZ3kgYW5kIGhhdmUgYSBjb25zaXN0ZW50Cj4gPiA+ID4gPiA+ID4gPiBjb25maWd1cmF0aW9uCj4gPiA+ID4gPiA+ID4gPiBmb3IKPiA+ID4gPiA+ID4gPiA+IGV2ZXJ5IGpvYiB1bmRlcnN0b29kIGJ5IGV2ZXJ5Ym9keQo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gSSByZWNvbW1lbmQgSmVua2luc2ZpbGUgYW5kIHRoZSBgd2l0aE1hdmVuYCB3cmFwcGVyCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gSGVydj1DMz1BOQo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IFsxXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gWzJdCj4gPiA+ID4gPiA+ID4gPiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLT4gPgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gcGx1Z2luLXRvb2xzLWpkay0xLjcvMTYyL2NvbnNvbGUKPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0KPiA+ID4gPiA+Cj4gPiA+ID4gPiAtLS0tLS0tLS0KPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IC0tCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+ID4gPiA+Cj4gPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtLS0tLS0tLS0KPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Cj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKCi0tPTIwCkNoZWVycwpUaWJvcgoKLS05NGViMmMwODdjZjY1ZjZkMWMwNTVhZjQ1ZDExLS0KCkZyb20gZGV2LXJldHVybi0xMjQxNjktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE9jdCAgNyAxNDowNTo0OCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxNjktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMEVGRTUxMEU4MAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDE0OjA1OjQ4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTgyMTIgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBPY3QgMjAxNyAxNDowNTo0NyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTgxMTYgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBPY3QgMjAxNyAxNDowNTo0NyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE4MTAwIGludm9rZWQgYnkgdWlkIDk5KTsgNyBPY3QgMjAxNyAxNDowNTo0NyAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwNyBPY3QgMjAxNyAxNDowNTo0NyArMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXF0MC1mMTY5Lmdvb2dsZS5jb20gKG1haWwtcXQwLWYxNjkuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNi4xNjldKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgMzlCNzExQTAwNTUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDE0OjA1OjQ3ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXF0MC1mMTY5Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGYxNXNvMzYxNzYwMTFxdGYuNwogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDA3IE9jdCAyMDE3IDA3OjA1OjQ3IC0wNzAwIChQRFQpClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhV3BzbWZGbDVLSElndDR5WXhkc1ljcVRNTnhGcjlQNzZCa0FXcGFrc1Q4MWhrR1Q0TnAKCVAwQjBxQ1pBa0lDenBLbmJLeWZEQ1dzOGVaeHIxVDloY2ZlSzBQUT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUFDS054Uk9HR1p6dlhRRkVaalR5K2o2bHdNN1JiQmhkSVVPVk5rMzFRMUQ1ODVqdGdnUFJWeXZLbG9YWXlNMEFpazJrUDUvRi8vSjdaa3VUZkVNdnM9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjM3LjEzMi44MiB3aXRoIFNNVFAgaWQgcjE4bXI0MTc0NDQweWJtLjM4NC4xNTA3Mzg1MTQ2NDc2OwogU2F0LCAwNyBPY3QgMjAxNyAwNzowNTo0NiAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTI5LjE5My42NyB3aXRoIEhUVFA7IFNhdCwgNyBPY3QgMjAxNyAwNzowNTo0NSAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPENBS3VWekJSMncrZms1UzN1bkJRUjdCNTRlVTgwQ1FRYUM2NHV5WTVYTkVDSG9TSDZHZ0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPDEwNTQ0NjE1LkI0aE8zUG52RXpAZ2lnYT4gPDIwMTQyNjMuOWk3bGNBM2pMeUBnaWdhPgogPENBS3VWekJSTkNER2hBd0VuRzVuU2hyQ3dXPWIzT1pSY0VFZSs3ZkZNZVpuY0ZPYzZqd0BtYWlsLmdtYWlsLmNvbT4KIDwyMTg3MDI5LkszNEUxN000am5AZ2lnYT4gPENBS3VWekJRTVcwOUdhUzI3WHEwQ2JKenFkTFZKN3Jra1ZTSE44cTZQMmFWMXZ3Vz1Hd0BtYWlsLmdtYWlsLmNvbT4KIDxDQUt1VnpCUlBvdXZGMlY1d2Z4WHJiQ1JjY3VLdmNaaEJETjNnQ2pyTFBiMFNKZ290SkFAbWFpbC5nbWFpbC5jb20+IDxDQUt1VnpCUjJ3K2ZrNVMzdW5CUVI3QjU0ZVU4MENRUWFDNjR1eVk1WE5FQ0hvU0g2R2dAbWFpbC5nbWFpbC5jb20+CkZyb206IFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4KRGF0ZTogU2F0LCA3IE9jdCAyMDE3IDE2OjA1OjQ1ICswMjAwClgtR21haWwtT3JpZ2luYWwtTWVzc2FnZS1JRDogPENBS3VWekJRU2dSWFdWRWc4Q2dyWmRzTkd3ZFRmTnRjNHFXdDRHbnlKRG9vaXlhcjJOQUBtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JRDogPENBS3VWekJRU2dSWFdWRWc4Q2dyWmRzTkd3ZFRmTnRjNHFXdDRHbnlKRG9vaXlhcjJOQUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IEplbmtpbnMgYW5kIE1hdmVuIDMuMC41IG9yIEpESyA3ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjA4OWUwODI2ZjQ1YzMyMTE2ZDA1NWFmNTc0NjUiCgotLTA4OWUwODI2ZjQ1YzMyMTE2ZDA1NWFmNTc0NjUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSGVydmUsCgpJIHRoaW5rLCBmaXJzdCBvZiBhbGwsIHdlIHNob3VsZCB3cml0ZSBhIGxpc3Qgd2l0aCBleGFjdCBuYW1lcyBvZiBnaXQKcmVwb3NpdG9yaWVzIGZvciB3aGljaCBJTkZSQSB3aWxsIGNyYXRlIHRoZW0gaW4KZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcvcmVwb3MvYXNmCmFuZCBtaXJyb3IgaW4gZ2l0aHViLmNvbS9hcGFjaGUKCkFuZCB0aGVuIHRoZSBhdXRob3JzLnR4dC4KCkluIG15IGNhc2UgSSBkaWQgbm90IG1pZ3JhdGUgdGFncyBhbmQgYnJhbmNoZXMgd2hpY2ggaXMgbXkgcHJvYmxlbSBnaXZlbiBpbgpteSBleGFtcGxlIHdpdGggcHJldmlvdXMgZS1tYWlsLgoKT24gU2F0LCBPY3QgNywgMjAxNyBhdCAzOjQ4IFBNLCBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+IHdyb3RlPQo6Cgo+IEhlcnZlLAo+IEkgdGhpbmsgbWFraW5nIHRoZSB0YWcgYXMgSSB3YW50ZWQgd291bGQgbm90IGJlIHBvc3NpYmxlIGluIGdpdC4KPgo+IExldCdzIG1ha2UgaXQgd2l0aCBhbGwgNzggcHJvamVjdHMuCj4gSW4gMjAxNiBJIG1pZ3JhdGVkIG15IHN2biBwcm9qZWN0ICJhdWRpdCIgbG9jYXRlZCBpbiBzdWItZm9sZGVyIGJlaGluZAo+IHRydW5rICh0cnVuay9saWJzL2F1ZGl0KSB0byBnaXQgd2hpY2ggaXMgZXhhY3RseSB3aGF0IHdlIG5lZWQgdG8gZG8gaW4gQVM9CkYuCj4KPiBJbiBvdXIgY2FzZSB0aGUgY29tbWFuZHMgd291bGQgYmUgOTklIHRoZSBzYW1lLiBUaGUgMSUgaXMgdGhlIHNvdXJjZSBTVk4KPiBVUkwgYW5kIHRhcmdldCBHaXRIdWIgVVJMLiBUaGF0J3MgYWxsLiBUaGVuIGlmIHdlIHByb3ZpZGUgSU5GUkEgd2l0aCBidW5jPQpoCj4gb2YgY29tbWFuZHMgbGlrZSB0aGVzZSB0aGVuIHRoZXkgd2lsbCBvbmx5IGV4ZWN1dGUgdGhlbSB3aXRoIHRoZWlyCj4gcGVybWlzc2lvbnMuCj4gSSBkbyBub3QgdGhpbmsgdGhleSB3aWxsIGdpdmUgbWUgYWRtaW4gcGVybWlzc2lvbnMgdG8gbWFrZSBpdC4KPgo+IGdpdCBzdm4gY2xvbmUgLS1uby1tZXRhZGF0YSAtLWF1dGhvcnMtZmlsZT0zREU6XCphdXRob3JzLnR4dCogaHR0cDovLwo+ICoqKi9zdm4vKioqLyp0cnVuay9saWJzL2F1ZGl0IGF1ZGl0Kgo+IGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5uYW1lICIqKiogKioqIgo+IGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5lbWFpbCAiKioqQCoqKi4qKioiCj4gZ2l0IHJlbW90ZSBhZGQgb3JpZ2luIGh0dHBzOi8vKioqQGdpdGh1Yi5jb20vYXBhY2hlLyptYXZlbi1jbGVhbi1wbHVnaW4qCj4gLmdpdAo+IGdpdCBwdXNoIC11IG9yaWdpbiAtLWFsbAo+Cj4gSSBvYnNlcnZlZCB0aGUgKmF1dGhvcnMudHh0KiBmcm9tIGNvbW1hbmQKPiAqc3ZuIGxvZyAtcSoKPiBFYWNoIHBlcnNvbiBmcm9tIGJldHdlZW4gZmlyc3QgdHdvIHBpcGVzLCBlLmcuOgo+IHIxMjM0NTY3IHwgdGlib3JkaWdhbmEgfCAyMDE1LTEwLTE5IDAyOjIwOjAwCj4KPiBFdmVyeSBkZXZlbG9wZXIgYWRkZWQgZS1tYWlsIGFuZCBmdWxsIG5hbWUsIGkuZS46Cj4gdGlib3JkaWdhbmEgPTNEIFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4KPiBldGMuCj4KPiBUaGlzIGxpc3Qgb2YgdXNlcnMgd2hpY2ggc2hvdWxkIGJlIGNyZWF0ZWQgaW4gcHJpb3IgdG8gY29udGFjdCBJTkZSQS4KPiBOb3QgYWxsIHVzZXJzIGFyZSBhY3RpdmUgYWZ0ZXIgeWVhcnMgYnV0IGl0IHdvdWxkIGJlIG5pY2UgdG8gaW5jbHVkZSB0aGVtCj4gdG9vLgo+IFRoaXMgbGlzdCBvZiB1c2VycyBpcyBvbmUgdGhpbmcgd2hpY2ggY2Fubm90IGJlIGF1dG9tYXRlZCEKPgo+Cj4KPgo+IE9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgMjo0OCBQTSwgVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPgo+IHdyb3RlOgo+Cj4+IEluIG15IGNvbXBhbnkgSSBoYXZlIHN1Y2ggc2l0dWF0aW9uIGluIFNWTi4gTWFraW5nIGEgdGFnIGZyb20gc3ViZm9sZGVyLgo+PiBHaXQgYWx3YXlzIG1ha2VzIHRoZSB0YWcgZnJvbSB0aGUgcm9vdCwgcmlnaHQ/Cj4+IExldCdzIGdvb2dsZSBzb21ldGhpbmcuLi4KPj4KPj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCAyOjQ3IFBNLCBUaWJvciBEaWdhbmEgPHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvPQptCj4+ID4gd3JvdGU6Cj4+Cj4+PiBJbiBteSBjb21wYW55IEkgaGF2ZSBzdWNoIHNpdHVhdGlvbi4KPj4+IE1ha2luZyBhIHRhZyBmcm9tIHN1YmZvbGRlci4KPj4+IEdpdCBhbHdheXMgbWFrZXMgdGhlIHRhZyBmcm9tIHRoZSByb290LCByaWdodD8KPj4+IExldCdzIGdvb2dsZSBzb21ldGhpbmcuLi4KPj4+Cj4+PiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDI6MDUgUE0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLj0KZnI+Cj4+PiB3cm90ZToKPj4+Cj4+Pj4gdGhhbmtzIGZvciB5b3VyIGludGVyZXN0IGFuZCBmZWVkYmFjawo+Pj4+Cj4+Pj4gTGUgc2FtZWRpIDcgb2N0b2JyZSAyMDE3LCAxMjowMDozMiBDRVNUIFRpYm9yIERpZ2FuYSBhID1DMz1BOWNyaXQgOgo+Pj4+ID4gNzggaXMgdG9vIG11Y2guCj4+Pj4gbm90aWNlIHRoYXQgdGhlcmUgd291bGQgYWxzbyBiZSBhIHF1ZXN0aW9uIG9uIHRoZSBnaXQgcmVwb3MgbmFtaW5nCj4+Pj4gY29udmVudGlvbiwKPj4+PiB0byBhdm9pZCBmbGF0IDc4IG5hbWVzIGJ1dCBrZWVwIGF0IGxlYXN0IDMgbWVhbmluZ2Z1bCBncm91cHMgKHBsdWdpbnMsCj4+Pj4gc2hhcmVkLAo+Pj4+IHJlc291cmNlczogSSB0aGluayB0aGlzIGlzIG5vdCBhYnNvbHV0ZWx5IG5lY2Vzc2FyeSBmb3IgZG94aWEtdG9vbHMpCj4+Pj4KPj4+PiA+IFRoZXJlIGlzIG5vIHByb2JsZW0gdG8gdHJpZ2dlciByZWxlYXNlIG92ZXIgc3ViLWZvbGRlcnMgYW5kIHRhZyBpdAo+Pj4+IHdpdGgKPj4+PiA+IHByZWZpeCB3aGljaCBpcyBhbHJlYWR5IGRvbmUgaW4gU1ZOLgo+Pj4+IGlzIGl0IHN1cHBvcnRlZCBieSBtYXZlbi1yZWxlYXNlIHBsdWdpbiB3aXRoIGdpdD8KPj4+Pgo+Pj4+IG5vdGljZSBJIGRpZCBub3Qga25vdyB0aGF0IGdpdCB3YXMgYWJsZSB0byB0YWcgb25seSBhIHN1YnRyZWU6IGJ1dCBJCj4+Pj4ga25ldyBJCj4+Pj4gZG9uJ3QgeWV0IHVuZGVyc3RhbmQgZXZlcnkgYXNwZWN0IG9mIGdpdCBtYWdpYy4uLiA6KQo+Pj4+Cj4+Pj4gPiBUaGUgQ0kgYnVpbGQgY2FuIGFsd2F5cyB0cmlnZ2VyIHRoZSByb290IGFuZCBKZW5raW5zZmlsZSB3b3VsZCBoYXZlID0KNDEKPj4+PiA+IHN0YWdlcyBmb3IgcGx1Z2lucywgMjYgc3RhZ2VzIGZvciBTaGFyZWQsIGV0Yy4KPj4+PiA+IEl0IGNhbiBiZSBkb25lIGluIEplbmtpbnNmaWxlIGFuZCBzbyB0aGUgc2hlbGwgd291bGQgbm90IHRocm93Cj4+Pj4gZXhjZXB0aW9uCj4+Pj4gPiBidXQgc3RhdHVzIHdvdWxkIGJlIHNldCBpbnN0ZWFkIGFuZCBnb2VzIHRvIHRoZSBuZXh0IHN0YWdlLgo+Pj4+ID4gSSBkbyBub3Qga25vdyBob3cgdG8gZGV0ZWN0IGluIEdpdFNDTSB3aGljaCBzdWItZm9sZGVyKHMpIHJlY2VpdmVkCj4+Pj4gYnV0IEkKPj4+PiA+IGd1ZXNzIHRoaXMgY2FuIGJlIGludmVzdGlnYXRlZC4KPj4+PiArMQo+Pj4+IGJ1dCBJIGRvbid0IGtub3cgd2hlcmUgdG8gbG9vayBmb3IgbXlzZWxmOiBvbiB0aGF0IHBvaW50LCBJIGhvcGUgdG8KPj4+PiBoYXZlIHNvbWUKPj4+PiBoZWxwIGZyb20gSmVua2luc2ZpbGUgZXhwZXJ0cwo+Pj4+IGFuZCBldmVudHVhbGx5IHN0YXJ0IHdpdGggc3ZuLCB0byBoYXZlIHNvbWV0aGluZyBiZWZvcmUgdGhlIGdpdAo+Pj4+IG1pZ3JhdGlvbgo+Pj4+Cj4+Pj4gPiBUaGVuIGl0IGNhbiBiZSBhIGtpbmQgb2Ygc3dpdGNoLWNhc2Ugb3ZlciBjb21taXR0ZWQgZm9sZGVycyBpbgo+Pj4+IEplbmtpbnNmaWxlLgo+Pj4+ID4gVGhpcyBtZWFucyB0aGF0IGV2ZXJ5IHRpbWUgYW5vdGhlciBzdGFnZS9zdWItZm9sZGVyIGlzIHNob3duIGluCj4+Pj4gUGlwZWxpbmUKPj4+PiA+IHdoaWNoIHdpbGwgYmUgbWVzc3kgaW4gdGhlIFVJLiA6KAo+Pj4+IG5vdGljZSB0aGF0IHdlIGNhbiBwZXJoYXBzIHNwbGl0IHRoZSByZXBvcyBpbiBsZXNzIHBhcnRzIHRoYW4gd2UgaGF2ZQo+Pj4+IGNvbXBvbmVudHM6IG9uIHBsdWdpbnMsIGZvciBleGFtcGxlLCB3ZSBhbHJlYWR5IGhhdmUgNCBjYXRlZ29yaWVzIFsxXQo+Pj4+IHdoaWNoCj4+Pj4gd291bGQgYXZvaWQgMSByZXBvIHdpdGggNDEgcGx1Z2lucywgYnV0IG1vcmUgc29tZXRoaW5nIGxpa2UgNisxMCsxMCsxNQo+Pj4+IEkgc3VwcG9zZSB3ZSBjb3VsZCBkbyB0aGUgc2FtZSBmb3Igc2hhcmVkIChyZXBvcnRpbmcgZm9sZGVyIGNvbWVzIHRvIG09CnkKPj4+PiBtaW5kKQo+Pj4+Cj4+Pj4gVGhlIGtleSBmZWFzaWJpbGl0eSBpc3N1ZSBpcyB0aGUgY2FwYWNpdHkgdG8gcmVsZWFzZSBhIHN1Yi1jb21wb25lbnQKPj4+PiBmcm9tIGdpdAo+Pj4+IHdpdGggbWF2ZW4tcmVsZWFzZS1wbHVnaW4sIElNSE8KPj4+PiAodGFraW5nIGFwYXJ0IHRoZSBnaXQgcHVyaXN0cyBpZGVhIG9mIDEgbGlmZWN5Y2xlID0zRCAxIGdpdCByZXBvKQo+Pj4+Cj4+Pj4gUmVnYXJkcywKPj4+Pgo+Pj4+IEhlcnY9QzM9QTkKPj4+Pgo+Pj4+Cj4+Pj4gWzFdIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMvCj4+Pj4gPgo+Pj4+ID4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCA0OjE3IEFNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnI9CmVlLmZyPgo+Pj4+IHdyb3RlOgo+Pj4+ID4gPiBUaGVyZSBhcmUgNiBzdm4gbG9jYXRpb25zIHdpdGhvdXQgYW55IHNwZWNpYWwgY29tcGxleGl0eSB0aGF0IGFyZQo+Pj4+IHdhaXRpbmcKPj4+PiA+ID4gZm9yCj4+Pj4gPiA+IGEgdm9sdW50ZWVyIGZvciBnaXQgbWlncmF0aW9uIGZvciBhIGZldyB5ZWFycyBidXQgbm9ib2R5IGRvZXMKPj4+PiBhbnl0aGluZwo+Pj4+ID4gPiBhYm91dDoKPj4+PiA+ID4gSSBzdGFydGVkIDMgZGF5cyBhZ28gdG8gYXNrIGZvciBoZWxwIGFib3V0IGl0IGFuZCBnb3QgcHJldHR5IG5vCj4+Pj4gZmVlZGJhY2sKPj4+PiA+ID4gWzFdCj4+Pj4gPiA+Cj4+Pj4gPiA+IHRoZW4gdGhlcmUgYXJlIHRoZSA0IGNvbXBsZXggc3ZuIGxvY2F0aW9ucyAocGx1Z2lucywgc2hhcmVkLAo+Pj4+IHJlc291cmNlcywKPj4+PiA+ID4gZG94aWEtCj4+Pj4gPiA+IHRvb2xzKSB0aGF0IHJlcXVpcmUgbXVjaCBtb3JlIHdvcms6IEkgc3VwcG9zZSB3ZSBjYW4ndCB0ZWxsIGdpdAo+Pj4+IG1pZ3JhdGlvbgo+Pj4+ID4gPiBpcwo+Pj4+ID4gPiBhYmFuZG9uZWQsIGJ1dCBpdCB3aWxsIHJlcXVpcmUgc29tZW9uZSB0byB3b3JrIG9uIGl0IHNlcmlvdXNseQo+Pj4+ID4gPiBSZW1lbWJlciB0aGF0IHRoZSBrZXkgcXVlc3Rpb24gWzJdIGlzOiBkbyB3ZSB0cmFuc2Zvcm0gdGhlc2UgNCBzdm4KPj4+PiA+ID4gbG9jYXRpb25zCj4+Pj4gPiA+IGludG8gNDEgKzI2ICsgNiArIDUgPTNEIDc4IGluZGVwZW5kZW50IGdpdCByZXBvcz8KPj4+PiA+ID4gWWVzLCBJIHRvbGQgdGhhdCBKZW5raW5zIGNvbmZpZ3VyYXRpb24gaXMgb25lIGtleSBhc3BlY3Qgd2UgbmVlZCBhCj4+Pj4gPiA+IHN0cmF0ZWd5Cj4+Pj4gPiA+IGFib3V0LCBpbiBwYXJhbGxlbCB3aXRoIGdpdCBzdHJhdGVneS4KPj4+PiA+ID4KPj4+PiA+ID4gdGhlbiB0aGVyZSB3aWxsIGJlIHRoZSByZW1haW5pbmcgY2FzZXMgd2hlcmUgd2UgbmVlZCB0byBkZWNpZGU6Cj4+Pj4gbG93ZXIKPj4+PiA+ID4gaW1wYWN0LAo+Pj4+ID4gPiBsb3dlciBwcmlvcml0eS4KPj4+PiA+ID4KPj4+PiA+ID4KPj4+PiA+ID4gU3VtbWFyeTogbm90aGluZyBpcyBhYmFuZG9uZWQsIGJ1dDoKPj4+PiA+ID4gLSBzaW1wbGUgY2FzZXM6IG5vIHZvbHVudGVlciB0byBkbyB0aGUgam9iCj4+Pj4gPiA+IC0gaGFyZCBjYXNlczogaXMgdGhlcmUgYSB2b2x1bnRlZXIgZWl0aGVyIHRvIGRlZmluZSBhIHN0cmF0ZWd5IG9yCj4+Pj4gZG8gc29tZQo+Pj4+ID4gPiB3b3JrCj4+Pj4gPiA+IG9uIGl0Pwo+Pj4+ID4gPgo+Pj4+ID4gPgo+Pj4+ID4gPiBSZWdhcmRzLAo+Pj4+ID4gPgo+Pj4+ID4gPiBIZXJ2PUMzPUE5Cj4+Pj4gPiA+Cj4+Pj4gPiA+IFsxXSBodHRwczovL2xpc3RzLmFwYWNoZS5vcmcvdGhyZWFkLmh0bWwvCj4+Pj4gPiA+IGVkZjM2NDJhN2JkZDUxNWYwY2FkNDIxYzI1NTg5NzQxODE5NDQ2NDYzNjE0YmYwNTE1ZTU2ZGJlQAo+Pj4+ID4gPiAlM0NkZXYubWF2ZW4uYXBhY2hlLm9yZyUzRQo+Pj4+ID4gPgo+Pj4+ID4gPiBbMl0gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9HaXQKPj4+PiA+ID4gK01pZ3JhdGlvbiNHaXRNaWdyYXRpb24tTWlncmF0aW5nYW5hZ2dyZWdhdG9ydHJlZWludG9hY29sbGVjCj4+Pj4gdGlvbm9mZ2l0cmVwb3MKPj4+PiA+ID4KPj4+PiA+ID4gTGUgdmVuZHJlZGkgNiBvY3RvYnJlIDIwMTcsIDIwOjM1OjQ1IENFU1QgQXJuYXVkIEg9QzM9QTlyaXRpZXIgYSA9Cj1DMz1BOWNyaXQgOgo+Pj4+ID4gPiA+IEJ1dCBkaWQgd2UgY29tcGxldGVseSBhYmFuZG9uZWQgdGhlIGlkZWEgb2YgbW92aW5nIGV2ZXJ5dGhpbmcgdG8KPj4+PiBnaXQgPwo+Pj4+ID4gPiA+IFRoZSBDSSBzZXR1cCB3YXMgdGhlIG1haW4gc3RvcCBmb3IgaXQgPwo+Pj4+ID4gPiA+Cj4+Pj4gPiA+ID4gT24gRnJpLCBPY3QgNiwgMjAxNyBhdCA4OjA1IFBNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+Pj4+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4+PiA+ID4KPj4+PiA+ID4gd3JvdGU6Cj4+Pj4gPiA+ID4gPiBJIHdhcyBleHBlY3RpbmcgdGhlIHVzdWFsIGxpdGFueQo+Pj4+ID4gPiA+ID4KPj4+PiA+ID4gPiA+IHdoYXQgSSdtIG5vdCBjb25maWRlbnQgY3VycmVudGx5IHdpdGggcGlwZWxpbmUgb24gTWF2ZW4gY29yZSBpPQpzCj4+Pj4gdGhhdAo+Pj4+ID4gPiA+ID4gd2UKPj4+PiA+ID4gPiA+IGhhdmUKPj4+PiA+ID4gPiA+IGZvciBleGFtcGxlIHRoZSAibWF2ZW4tMy54LWplbmtpbnNmaWxlL01ORy02MjQyIC0gYnVpbGQgIzEgLQo+Pj4+IG51bGwiCj4+Pj4gPiA+ID4gPiBtZXNzYWdlLAo+Pj4+ID4gPiA+ID4gd2l0aCB0aGlzICJudWxsIiBwYXJ0IHRoYXQgbWFrZXMgbWUgd29uZGVyIGlmIHdlIGFyZSB1c2luZyBpdCA9CmFzCj4+Pj4gPiA+Cj4+Pj4gPiA+IGV4cGVjdGVkLgo+Pj4+ID4gPgo+Pj4+ID4gPiA+ID4gQW5kIGZvciBsYXJnZSBtdWx0aS1tb2R1bGUgc3ZuIHRydW5rcyAodGhlIG9uZXMgd2UgZG9uJ3QKPj4+PiBtaWdyYXRlIHRvCj4+Pj4gPiA+Cj4+Pj4gPiA+IGdpdDoKPj4+PiA+ID4gPiA+IG1haW5seSBwbHVnaW5zIGFuZCBzaGFyZWQpLCBpcyB0aGVyZSBhIHNvbHV0aW9uIHRvIHJlYnVpbGQganVzPQp0Cj4+Pj4gPiA+ID4gPiBjaGFuZ2VkCj4+Pj4gPiA+ID4gPiBtb2R1bGVzPwo+Pj4+ID4gPiA+ID4KPj4+PiA+ID4gPiA+IGlkZWFsbHksIHRoZSByZWJ1aWxkIHdoZW4gYSBTTkFQU0hPVCBkZXBlbmRlbmN5IGlzIHB1Ymxpc2hlZAo+Pj4+IHdvdWxkCj4+Pj4gPiA+ID4gPiBoYXZlCj4+Pj4gPiA+ID4gPiBiZWVuIGEKPj4+PiA+ID4gPiA+IHBsdXMsIGJ1dCB0aGlzIGlzIHN1ZmZpY2llbnRseSBhIHJhcmUgdXNlIHRoYXQgSSB3b24ndCBiZQo+Pj4+IGV4dHJlbWlzdAo+Pj4+ID4gPiA+ID4KPj4+PiA+ID4gPiA+Cj4+Pj4gPiA+ID4gPiBUaGVuIElJVUMsIHRoaXMgbWlncmF0aW9uIGpvYiBpcyBvbmUgYWRkaXRpb25hbCBUT0RPIGZvciBtZS4uLgo+Pj4+ID4gPiA+ID4KPj4+PiA+ID4gPiA+IFJlZ2FyZHMsCj4+Pj4gPiA+ID4gPgo+Pj4+ID4gPiA+ID4gSGVydj1DMz1BOQo+Pj4+ID4gPiA+ID4KPj4+PiA+ID4gPiA+IExlIHZlbmRyZWRpIDYgb2N0b2JyZSAyMDE3LCAxNzo0Njo1MyBDRVNUIEFybmF1ZCBIPUMzPUE5cml0aWVyPQogYQo+Pj4+ID1DMz1BOWNyaXQgOgo+Pj4+ID4gPiA+ID4gPiBJIGFncmVlIHRoYXQgd2Ugc2hvdWxkIHVzZSBwaXBlbGluZSBub3dkYXlzCj4+Pj4gPiA+ID4gPiA+IHBlcmhhcHMgYSBzaGFyZWQgbGliIGlmIHdlIHdhbnQgdG8gc3RhbmRhcmRpemUgc29tZSBzdHVmZnMKPj4+PiBhbmQgYSBzZXQKPj4+PiA+ID4KPj4+PiA+ID4gb2YKPj4+PiA+ID4KPj4+PiA+ID4gPiA+ID4gbXVsdGktYnJhbmNoZXMgam9icyAob3Igb3JnIGZvbGRlciBidXQgaXQgcmVxdWlyZXMgR2l0SHViIDooPQogKQo+Pj4+ID4gPiA+ID4gPgo+Pj4+ID4gPiA+ID4gPiBPbiBGcmksIE9jdCA2LCAyMDE3IGF0IDk6MTYgQU0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+Pj4+ID4gPiA+ID4gPgo+Pj4+ID4gPiA+ID4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4+PiA+ID4gPiA+ID4gPiBPbiBGcmkgNiBPY3QgMjAxNyBhdCAwNjozMiwgSGVydj1DMz1BOSBCT1VURU1ZIDwKPj4+PiBoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4+Pj4gPiA+ID4gPgo+Pj4+ID4gPiA+ID4gd3JvdGU6Cj4+Pj4gPiA+ID4gPiA+ID4gPiBJIGp1c3QgZml4ZWQgYSBmZXcgZmFpbGluZyBqb2JzIFsxXSB0byBoYXZlIGFnYWluIGEgdXNhYj0KbGUKPj4+PiA+ID4KPj4+PiA+ID4gSmVua2lucy4KPj4+PiA+ID4KPj4+PiA+ID4gPiA+ID4gPiA+IE5vdyBJJ20gZmFjaW5nIHNvbWUgaXNzdWVzLCBJIHN1cHBvc2UgY2F1c2VkIGJ5IG5ld2VyCj4+Pj4gSmVua2lucwo+Pj4+ID4gPiA+ID4KPj4+PiA+ID4gPiA+IHZlcnNpb25zOgo+Pj4+ID4gPiA+ID4gPiA+ID4gLSBNYXZlbiAzLjAuNSBjYXVzZXMgTm9TdWNoTWV0aG9kRXJyb3I6Cj4+Pj4gPiA+ID4gPiA+ID4gPiBvLmMucGxleHVzLnV0aWwueG1sLnB1bGwuCj4+Pj4gPiA+ID4gPiA+ID4KPj4+PiA+ID4gPiA+ID4gPiBNWFBhcnNlcgo+Pj4+ID4gPiA+ID4gPiA+Cj4+Pj4gPiA+ID4gPiA+ID4gPiBbMl0KPj4+PiA+ID4gPiA+ID4gPiA+IC0gSSBoYWQgdG8gc3dpdGNoIHRvIEpESyA4IGZvciBtYXZlbi1wbHVnaW4tdG9vbHMgam9iLAo+Pj4+IHNpbmNlIEpESwo+Pj4+ID4gPiA+ID4KPj4+PiA+ID4gPiA+IGNhdXNlcwo+Pj4+ID4gPiA+ID4KPj4+PiA+ID4gPiA+ID4gPiA+IGZhaWx1cmVzIChsb29rcyBsaWtlIEplbmtpbnMgdXNlcyBhIGhhY2sgdG8gaW5qZWN0IEpESyA3Cj4+Pj4gYXMgYQo+Pj4+ID4gPgo+Pj4+ID4gPiB0b29sCj4+Pj4gPiA+Cj4+Pj4gPiA+ID4gPiB3aGlsZQo+Pj4+ID4gPiA+ID4KPj4+PiA+ID4gPiA+ID4gPiA+IHRoZQo+Pj4+ID4gPiA+ID4gPiA+ID4gYnVpbGQgSlZNIGlzIEphdmEgOCkKPj4+PiA+ID4gPiA+ID4gPiA+Cj4+Pj4gPiA+ID4gPiA+ID4gPiBTaG91bGQgd2UgZHJvcCBNYXZlbiAzLjAuNSBidWlsZHMgYW5kIEpESyA3Pwo+Pj4+ID4gPiA+ID4gPiA+ID4gTm90aWNlIEkgZGlkbid0IGNoZWNrIHdoaWNoIGlzIHRoZSBtaW5pbXVtIE1hdmVuIHZlcnNpb24KPj4+PiA+ID4KPj4+PiA+ID4gcmVxdWlyZWQuLi4KPj4+PiA+ID4KPj4+PiA+ID4gPiA+ID4gPiA+IE9yIHBlcmhhcHMgc2ltcGx5IGRvbid0IHVzZSB0aGUgSmVua2lucyBNYXZlbiBwbHVnaW4gd2l0PQpoCj4+Pj4gdGhpcwo+Pj4+ID4gPgo+Pj4+ID4gPiBNYXZlbgo+Pj4+ID4gPgo+Pj4+ID4gPiA+ID4gPiA+IDMuMC41Cj4+Pj4gPiA+ID4gPiA+ID4KPj4+PiA+ID4gPiA+ID4gPiA+IG9yCj4+Pj4gPiA+ID4gPiA+ID4gPiBKREsgNyBjb25maWd1cmF0aW9uOiBkZWZhdWx0IGJ1aWxkIGFzIEplbmtpbnMgTWF2ZW4KPj4+PiBwbHVnaW4gd2l0aAo+Pj4+ID4gPgo+Pj4+ID4gPiBKREsKPj4+PiA+ID4KPj4+PiA+ID4gPiA+IDggKwo+Pj4+ID4gPiA+ID4KPj4+PiA+ID4gPiA+ID4gPiA+IGxhdGVzdAo+Pj4+ID4gPiA+ID4gPiA+ID4gTWF2ZW4sIGFuZCBvdGhlciBjb25maWd1cmF0aW9ucyBhcyBzY3JpcHRlZCBqb2JzPwo+Pj4+ID4gPiA+ID4gPiA+Cj4+Pj4gPiA+ID4gPiA+ID4gaHR0cDovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuaWUvMjAxMy8xMS9qZW5raW5zLW1hdmVuLWpvYj0KLT4KPj4+PiA+Cj4+Pj4gPiA+ID4gPgo+Pj4+ID4gPiA+ID4gdHlwZS1jb25zaWRlcmVkLWV2aWwuaHRtbAo+Pj4+ID4gPiA+ID4KPj4+PiA+ID4gPiA+ID4gPiA8aHR0cDovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuaWUvMjAxMy8xMS9qZW5raW5zLT4gPgo+Pj4+ID4gPiA+ID4KPj4+PiA+ID4gPiA+IG1hdmVuLWpvYi10eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sP209M0QxPgo+Pj4+ID4gPiA+ID4KPj4+PiA+ID4gPiA+ID4gPiBXZSBzaG91bGQgc3RvcCB1c2luZyB0aGUgZXZpbCBqb2IgdHlwZSBhcyBpdD1FMj04MD05OXMgbWluPQppbXVtIEphdmEKPj4+PiA+ID4KPj4+PiA+ID4gdmVyc2lvbiBpcwo+Pj4+ID4gPgo+Pj4+ID4gPiA+ID4gPiA+IGRpY3RhdGVkIGJ5IEplbmtpbnM9RTI9ODA9OTkgSmF2YSBtaW5pbXVtLgo+Pj4+ID4gPiA+ID4gPiA+Cj4+Pj4gPiA+ID4gPiA+ID4gPiBXZSBuZWVkIHRvIGRlZmluZSBvdXIgY29tbW9uIHN0cmF0ZWd5IGFuZCBoYXZlIGEKPj4+PiBjb25zaXN0ZW50Cj4+Pj4gPiA+ID4gPiA+ID4gPiBjb25maWd1cmF0aW9uCj4+Pj4gPiA+ID4gPiA+ID4gPiBmb3IKPj4+PiA+ID4gPiA+ID4gPiA+IGV2ZXJ5IGpvYiB1bmRlcnN0b29kIGJ5IGV2ZXJ5Ym9keQo+Pj4+ID4gPiA+ID4gPiA+Cj4+Pj4gPiA+ID4gPiA+ID4gSSByZWNvbW1lbmQgSmVua2luc2ZpbGUgYW5kIHRoZSBgd2l0aE1hdmVuYCB3cmFwcGVyCj4+Pj4gPiA+ID4gPiA+ID4KPj4+PiA+ID4gPiA+ID4gPiA+IFJlZ2FyZHMsCj4+Pj4gPiA+ID4gPiA+ID4gPgo+Pj4+ID4gPiA+ID4gPiA+ID4gSGVydj1DMz1BOQo+Pj4+ID4gPiA+ID4gPiA+ID4KPj4+PiA+ID4gPiA+ID4gPiA+IFsxXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vCj4+Pj4gPiA+ID4gPiA+ID4gPgo+Pj4+ID4gPiA+ID4gPiA+ID4gWzJdCj4+Pj4gPiA+ID4gPiA+ID4gPiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLT0KPgo+Pj4+ID4KPj4+PiA+ID4gPiA+ID4gPgo+Pj4+ID4gPiA+ID4gPiA+IHBsdWdpbi10b29scy1qZGstMS43LzE2Mi9jb25zb2xlCj4+Pj4gPiA+ID4gPiA+ID4KPj4+PiA+ID4gPiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+ID4gPiA+ID4KPj4+PiA+ID4gPiA+IC0tLS0tLS0tLQo+Pj4+ID4gPiA+ID4KPj4+PiA+ID4gPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+Pj4gPiA+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOgo+Pj4+IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+PiA+ID4gPiA+ID4gPiA+Cj4+Pj4gPiA+ID4gPiA+ID4gPiAtLQo+Pj4+ID4gPiA+ID4gPiA+Cj4+Pj4gPiA+ID4gPiA+ID4gU2VudCBmcm9tIG15IHBob25lCj4+Pj4gPiA+ID4gPgo+Pj4+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4gLS0tLS0tLS0tCj4+Pj4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+ID4gPgo+Pj4+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+PiAtLS0tLS0tLS0KPj4+PiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Cj4+Pj4KPj4+Pgo+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Cj4+Pj4KPj4+Cj4+Pgo+Pj4gLS0KPj4+IENoZWVycwo+Pj4gVGlib3IKPj4+Cj4+Cj4+Cj4KCi0tMDg5ZTA4MjZmNDVjMzIxMTZkMDU1YWY1NzQ2NS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MDIwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBTZXAgMTQgMDY6MDA6MzggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDIwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDhCNjU5MUExMkQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAxNCBTZXAgMjAxNyAwNjowMDozOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDMyMTMgaW52b2tlZCBieSB1aWQgNTAwKTsgMTQgU2VwIDIwMTcgMDY6MDA6MzggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMxMDggaW52b2tlZCBieSB1aWQgNTAwKTsgMTQgU2VwIDIwMTcgMDY6MDA6MzggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMDk3IGludm9rZWQgYnkgdWlkIDk5KTsgMTQgU2VwIDIwMTcgMDY6MDA6MzggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMTQgU2VwIDIwMTcgMDY6MDA6MzcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC15dzAtZjE3MC5nb29nbGUuY29tIChtYWlsLXl3MC1mMTcwLmdvb2dsZS5jb20gWzIwOS44NS4xNjEuMTcwXSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDMyMENCMUEwMDJCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAxNCBTZXAgMjAxNyAwNjowMDozNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC15dzAtZjE3MC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBxODBzbzUwODgyOTh5d2cuMgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3IDIzOjAwOjM2IC0wNzAwIChQRFQpClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVamRoMFBjaWJzYmdJQTRuR3dwbzEraDNzdXRmdnJ2Z0NkWDhXQ1luNzBhZ3I5RzY0ekIKCUpqRC9XUTF5Tlp5N2J0cUd5WVZCZ0xZV0JianlZSFlIcmtHTlNQbz0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUQreFEwRmV0a2xkNTRSN2NUVEhJSElQQnZ6Ynp0YlYrTDR4TUxRcnpQR2dpYjZvT0E2L05VbHE3NVdlZ1NTaUo1ajhqSU9EeTZlOU1ISGs0U3BacTg9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjM3LjgwLjYgd2l0aCBTTVRQIGlkIGU2bXIxNzc3NjcyNnliYi4xNjcuMTUwNTM2ODgzNTIwNTsgV2VkLAogMTMgU2VwIDIwMTcgMjM6MDA6MzUgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjEyOS4xNTcuMTk4IHdpdGggSFRUUDsgV2VkLCAxMyBTZXAgMjAxNyAyMzowMDozNCAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPENBS3VWekJUcWZSMVoxMS1mMkNOVTNMMV9HY1l6K2Q1OXgrVzJMOFZaQzNxTGV6ZDFYd0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBS3VWekJUak5PYlFMbXRvOGY5N2ZPMXgrVDFpMV9vVHo3TV9PMDNWa1dhQ2s3Rl8rUUBtYWlsLmdtYWlsLmNvbT4KIDxDQUt1VnpCVHFmUjFaMTEtZjJDTlUzTDFfR2NZeitkNTl4K1cyTDhWWkMzcUxlemQxWHdAbWFpbC5nbWFpbC5jb20+CkZyb206IFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4KRGF0ZTogVGh1LCAxNCBTZXAgMjAxNyAwODowMDozNCArMDIwMApYLUdtYWlsLU9yaWdpbmFsLU1lc3NhZ2UtSUQ6IDxDQUt1VnpCUWk3TzQtb0hmXy1NNUVuTkM0bSt5NTdZZnE4ZWZMUVFpV0E0VTFDWmdDVndAbWFpbC5nbWFpbC5jb20+Ck1lc3NhZ2UtSUQ6IDxDQUt1VnpCUWk3TzQtb0hmXy1NNUVuTkM0bSt5NTdZZnE4ZWZMUVFpV0E0VTFDWmdDVndAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gU3VyZWZpcmUgUGx1Z2luIHZlcnNpb24gMi4yMC4xClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTNlYTI5MGFkYjA1MTA1NTkxZmZlMGIiCgotLTAwMWExMTNlYTI5MGFkYjA1MTA1NTkxZmZlMGIKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCihhZ2FpbiBmcm9tIG15IEFwYWNoZSBtYWlsIGFjY291bnQpClBscyBwYXJ0aWNpcGF0ZSBpbiB0aGUgdm90ZSBhbmQgdGVzdC4KCk9uIFRodSwgU2VwIDE0LCAyMDE3IGF0IDc6NTkgQU0sIFRpYm9yIERpZ2FuYSA8dGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tPgp3cm90ZToKCj4gUGxzIHBhcnRpY2lwYXRlIGluIHRoZSB2b3RlIGFuZCB0ZXN0Lgo+Cj4gT24gTW9uLCBTZXAgMTEsIDIwMTcgYXQgNTozMyBBTSwgVGlib3IgRGlnYW5hIDx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20KPiA+IHdyb3RlOgo+Cj4+IEhpLAo+Pgo+PiBXZSBzb2x2ZWQgMjQgaXNzdWVzOgo+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamUKPj4gY3RJZD0xMjMxNzkyNyZ2ZXJzaW9uPTEyMzQwMjk3Cj4+Cj4+IFRoZXJlIGFyZSAxMDEgaXNzdWVzIGxlZnQgaW4gSklSQToKPj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2kjaXNzdWVzLz9qcWw9cHJvamVjdCslM0QrCj4+IFNVUkVGSVJFK0FORCtzdGF0dXMrJTNEK09wZW4rT1JERVIrQlkrcHJpb3JpdHkrREVTQwo+Pgo+PiBTdGFnaW5nIHJlcG86Cj4+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjYvCj4+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNgo+PiA2L29yZy9hcGFjaGUvbWF2ZW4vc3VyZWZpcmUvc3VyZWZpcmUvMi4yMC4xL3N1cmVmaXJlLTIuMjAuCj4+IDEtc291cmNlLXJlbGVhc2UuemlwCj4+Cj4+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+PiBtYXZlbi1zdXJlZmlyZS1wbHVnaW4tMi4yMC4xLXNpdGUtc291cmNlLnppcCBzaGExOgo+PiA0MTg3YTc5MzIyNjhjN2FkNDY3OTczMjU0ZDg3NTg0MDg1ZTMwNWMxCj4+Cj4+IFN0YWdpbmcgc2l0ZToKPj4gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvc3VyZWZpcmUtYXJjaGl2ZXMvc3VyZWZpcmUtTEFURVNULwo+Pgo+PiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPj4gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+Pgo+PiBWb3RlIG9wZW4gZm9yIDcyIGhvdXJzLgo+Pgo+PiBbIF0gKzEKPj4gWyBdICswCj4+IFsgXSAtMQo+Pgo+PiAtLQo+PiBDaGVlcnMKPj4gVGlib3IKPj4KPgo+Cj4KPiAtLQo+IENoZWVycwo+IFRpYm9yCj4KCi0tMDAxYTExM2VhMjkwYWRiMDUxMDU1OTFmZmUwYi0tCgpGcm9tIGRldi1yZXR1cm4tMTIzOTM2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBTZXAgMTAgMjE6MDc6MTQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTM2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDE4QUEwMUFGQ0EKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAyMTowNzoxNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDUwNTU4IGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIFNlcCAyMDE3IDIxOjA3OjEzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MDQ2OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBTZXAgMjAxNyAyMTowNzoxMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUwNDU2IGludm9rZWQgYnkgdWlkIDk5KTsgMTAgU2VwIDIwMTcgMjE6MDc6MTMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDEwIFNlcCAyMDE3IDIxOjA3OjEzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgOUEzMzAxODJFQkMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDIxOjA3OjEyICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogNC4wNDEKWC1TcGFtLUxldmVsOiAqKioqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT00LjA0MSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBIVE1MX09CRlVTQ0FURV8xMF8yMD0xLjE2MiwgS0FNX05VTVNVQkpFQ1Q9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z29vZ2xlbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBETTdOS18tUVpCLXUgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sIDEwIFNlcCAyMDE3IDIxOjA3OjExICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwteXcwLWYxNzcuZ29vZ2xlLmNvbSAobWFpbC15dzAtZjE3Ny5nb29nbGUuY29tIFsyMDkuODUuMTYxLjE3N10pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA0ODUwQjVGQzIxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAyMTowNzoxMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC15dzAtZjE3Ny5nb29nbGUuY29tIHdpdGggU01UUCBpZCBzNjJzbzE4MDI3NDE2eXdnLjAKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAxNDowNzoxMCAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z29vZ2xlbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvCiAgICAgICAgIDpjYzsKICAgICAgICBiaD0wMktMRGhIN0hDc1RPclhFWERidXdyVzcwbzJVVGNidlJnZ2JmRVpGcE53PTsKICAgICAgICBiPVRUOHVIZEl6eXVFYW05bC9vT0ErWTd2NWMvRmo2czZxRVc0REpzRTZmdmt1NWhURnFlVVU3dWlFblM1Nmk1WGVaMAogICAgICAgICBjU2RWaG0ycnA4dW9YSk5kR2RLK2dubFBjTTM2LzR5d1daS3VyTk01T1Y1Nm4wQ1F2eVF2WUpyV096MWxHd1NXTmV6RgogICAgICAgICB0MEppNUV3TlBkZmFUbVR4OE4xVHV2YS9hVzA5VjNWbndLTDZDRXVJRmNJOWszbXc3anREeTdmMjNPUS83ajlxNEpUUgogICAgICAgICBMWEptcEpnOVhJdXNyU2svNCtuTzhvR0lXSGRIMmxKcXhRMU00MnFNYkYwNVlxRjFPNmw3S2N3cGhXeDVHZnlsQ2NnagogICAgICAgICA2ZVdDNU5KQm5WSDNIcndkdmYrMklQdEphU2VVUmpEdkExajBUcVdhTEVGWUZkZ2tvNjNCODM1MkNpUU5yOTU0elJIcAogICAgICAgICBKdDNnPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzpjYzsKICAgICAgICBiaD0wMktMRGhIN0hDc1RPclhFWERidXdyVzcwbzJVVGNidlJnZ2JmRVpGcE53PTsKICAgICAgICBiPVFuenZDdWNnZlN6WVh6Y0xES08xWC9JNXFtTmoxd3lZaXlDY1lPelB1WnIyTDVYVTZ0R1ZHU29vdTN5SlZWajVMRQogICAgICAgICB3OVFzc0RCNmQzTGhYK0tFSHVPNk5ZWUNmTEdSMVlVU21xYk8yaTkwS3BIeSt4ODRsNEpuQldVa2VYd3prSyszWTRXMwogICAgICAgICB3dHVZWUJMYWdxQjRFbk82Lzc0bFlsYVd0WWtRT0F3Y3EvQUxDVFZmeERVanN5MFZwcHhEM0lRTWNLWFRxaXQ0MVlRNQogICAgICAgICB1TWZkbTJEVE9SMmVjOElQeXRHUk9ZWjFJTHBiVi80Z0RvbEFYeXJDNDlGYXlQRHBKa2YraTlZdG01Sks5ME1QMDRZdgogICAgICAgICBMMzFIbHN6M3g4QnpsSVczUWZqM3JEYWFpVGpCendKRk1kaXJnUzc2TDdpTElSUExSZVFYTHpFRWZ5dDNmTnVNcE94NQogICAgICAgICBSTjBBPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVqZlprV3FBZEtyUityWkJqSzdjaUJrVjFZV0ZtNmFHeU5pNG4vb1B3OSswTG5NR2hpRgoJQWtUT0doYjdiUExtdTZIbmh0L3BxUEo0K1JDYTdBPT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFES0NOYjVnOWozUDFWUW1lUnh4Ymt3MHErRGFDWXViMmQyekpSUW5wZjIxL0llTHNMUmlCUWRjWUNyWDhNVFo0Qmk3Q3dMbVMvZE5KYjVpK1pjKy9kZWJQWmc9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjEzLjIzMS4yIHdpdGggU01UUCBpZCBxMm1yNzk0NDU0N3l3ZS4zMjQuMTUwNTA3NzYyODk4ODsgU3VuLAogMTAgU2VwIDIwMTcgMTQ6MDc6MDggLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjEyOS4xNTcuMTk4IHdpdGggSFRUUDsgU3VuLCAxMCBTZXAgMjAxNyAxNDowNzowOCAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPDc4YWY5NjU1LTc2YmMtZjU2Yy0yZWI1LTFhZjJjMTIwZjQzZkBhcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8ZWZiOTc5NjAtZTFiNy00MjI3LTU5OTgtZGUyYzI0MDE1YmIwQGFwYWNoZS5vcmc+CiA8Q0ErblBuTXc3b2c1Z3JxSlpOeVljM0p5TUpjSD1yY2hTLUdZWURfYU1BdmVBaWNKb1V3QG1haWwuZ21haWwuY29tPiA8NzhhZjk2NTUtNzZiYy1mNTZjLTJlYjUtMWFmMmMxMjBmNDNmQGFwYWNoZS5vcmc+CkZyb206IFRpYm9yIERpZ2FuYSA8dGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tPgpEYXRlOiBTdW4sIDEwIFNlcCAyMDE3IDIzOjA3OjA4ICswMjAwCk1lc3NhZ2UtSUQ6IDxDQUt1VnpCUXE0WjBhTVhnNmRXOXZ4ZTN4QmYrZEhGMFMyTmZkSHZNUERGbmU4SHJZdXdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBUZXN0cyBmb3IgTU5HLTYyNzUgZmFpbCBvbiBKYXZhIDEuNy4wXzE1MS1iMDEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNjOiBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzA3ZDk3MjZmODA4YTA1NThkYzMxOTgiCgotLTk0ZWIyYzA3ZDk3MjZmODA4YTA1NThkYzMxOTgKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCk1pY2hhZWwsIG5vdyB0cnkgd2l0aCBPcmFjbGUgSmF2YSA3LgoKT24gU3VuLCBTZXAgMTAsIDIwMTcgYXQgMTE6MDIgUE0sIE1pY2hhZWwgT3NpcG92IDxtaWNoYWVsb0BhcGFjaGUub3JnPgp3cm90ZToKCj4gQW0gMjAxNy0wOS0xMCB1bSAyMjoyNyBzY2hyaWViIFN0ZXBoZW4gQ29ubm9sbHk6Cj4KPj4gV2VsbCBJIHJhbiB0aGUgcmVsZWFzZSB3aXRoIDEuNy4wXzgwIHdoaWNoIGlpcmMgaXMgdGhlIGxhc3QgcHVibGljIHJlbGVhc2UKPj4gb2YgT3JhY2xlIEphdmEgNy4uLgo+Pgo+Cj4gRmFpbHMgYWxzbyBvbiBXaW5kb3dzIHdpdGggWnVsdSA3Ogo+ICQgbXZuIC12Cj4gQXBhY2hlIE1hdmVuIDMuNS4wIChmZjhmNWU3NDQ0MDQ1NjM5YWY2NWY2MDk1YzYyMjEwYjU3MTNmNDI2Owo+IDIwMTctMDQtMDNUMjE6Mzk6MDYrMDI6MDApCj4gTWF2ZW4gaG9tZTogRDpcRW50d2lja2x1bmdcUHJvZ3JhbW1lXGFwYWNoZS1tYXZlbi0zLjUuMAo+IEphdmEgdmVyc2lvbjogMS43LjBfMTU0LCB2ZW5kb3I6IEF6dWwgU3lzdGVtcywgSW5jLgo+IEphdmEgaG9tZTogQzpcUHJvZ3JhbSBGaWxlc1xadWx1XHp1bHUtN1xqcmUKPiBEZWZhdWx0IGxvY2FsZTogZGVfREUsIHBsYXRmb3JtIGVuY29kaW5nOiBDcDEyNTIKPiBPUyBuYW1lOiAid2luZG93cyAxMCIsIHZlcnNpb246ICIxMC4wIiwgYXJjaDogImFtZDY0IiwgZmFtaWx5OiAid2luZG93cyIKPgo+Cj4KPiBPbiBTdW4gMTAgU2VwIDIwMTcgYXQgMjE6MDgsIE1pY2hhZWwgT3NpcG92IDxtaWNoYWVsb0BhcGFjaGUub3JnPiB3cm90ZToKPj4KPj4gRm9sa3MsCj4+Pgo+Pj4gdHJpZWQgcnVubmluZyBtYXN0ZXIgb24KPj4+IE1hdmVuIGhvbWU6IC91c3IvbG9jYWwvc2hhcmUvamF2YS9tYXZlbgo+Pj4gSmF2YSB2ZXJzaW9uOiAxLjcuMF8xNTEsIHZlbmRvcjogT3JhY2xlIENvcnBvcmF0aW9uCj4+PiBKYXZhIGhvbWU6IC91c3IvbG9jYWwvb3BlbmpkazcvanJlCj4+PiBEZWZhdWx0IGxvY2FsZTogZGVfREUsIHBsYXRmb3JtIGVuY29kaW5nOiBVVEYtOAo+Pj4gT1MgbmFtZTogImZyZWVic2QiLCB2ZXJzaW9uOiAiMTEuMS1yZWxlYXNlLXAxIiwgYXJjaDogImkzODYiLCBmYW1pbHk6Cj4+PiAidW5peCIKPj4+Cj4+PiBhbmQgSSBnZXQgdGhpczoKPj4+IEZhaWxlZCB0ZXN0czoKPj4+Cj4+Pgo+Pj4gRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXN0TU5HNjI3NV9jb3JlUmVhbG1EZWZhdWx0UGFyCj4+PiBlbnRDbGFzc0xvYWRlcjo5OQo+Pj4gbnVsbAo+Pj4KPj4+Cj4+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X2V4dGVuc2lvblJlYWxtRGVmYXUKPj4+IGx0UGFyZW50Q2xhc3NMb2FkZXI6NzMKPj4+IG51bGwKPj4+Cj4+Pgo+Pj4gRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXN0TU5HNjI3NV9tYXZlbkFwaVJlYWxtRGVmYXVsCj4+PiB0UGFyZW50Q2xhc3NMb2FkZXI6OTEKPj4+IG51bGwKPj4+Cj4+Pgo+Pj4gRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXN0TU5HNjI3NV9wbHVnaW5SZWFsbURlZmF1bHRQCj4+PiBhcmVudENsYXNzTG9hZGVyOjYyCj4+PiBudWxsCj4+Pgo+Pj4KPj4+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfcHJvamVjdFJlYWxtRGVmYXVsdAo+Pj4gUGFyZW50Q2xhc3NMb2FkZXI6ODMKPj4+IG51bGwKPj4+Cj4+PiBBbGwgdGVzdHMgZmFpbCB3aXRoICJqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0aW9uRmFpbGVkRXJyb3I6IG51bGwiLgo+Pj4KPj4+IFJ1bm5pbmcgd2l0aAo+Pj4gTWF2ZW4gaG9tZTogL3Vzci9sb2NhbC9zaGFyZS9qYXZhL21hdmVuCj4+PiBKYXZhIHZlcnNpb246IDEuOC4wXzE0NCwgdmVuZG9yOiBPcmFjbGUgQ29ycG9yYXRpb24KPj4+IEphdmEgaG9tZTogL3Vzci9sb2NhbC9vcGVuamRrOC9qcmUKPj4+IERlZmF1bHQgbG9jYWxlOiBkZV9ERSwgcGxhdGZvcm0gZW5jb2Rpbmc6IFVURi04Cj4+PiBPUyBuYW1lOiAiZnJlZWJzZCIsIHZlcnNpb246ICIxMS4xLXJlbGVhc2UtcDEiLCBhcmNoOiAiaTM4NiIsIGZhbWlseToKPj4+ICJ1bml4Igo+Pj4KPj4+IHdvcmtzIGZsYXdsZXNzbHkuCj4+Pgo+Pj4gQW55IGlkZWFzPwo+Pj4KPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+Cj4+PiAtLQo+Pj4KPj4gU2VudCBmcm9tIG15IHBob25lCj4+Cj4+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+CgoKLS0gCkNoZWVycwpUaWJvcgoKLS05NGViMmMwN2Q5NzI2ZjgwOGEwNTU4ZGMzMTk4LS0KCkZyb20gZGV2LXJldHVybi0xMjQxNjgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE9jdCAgNyAxMzo0ODoxMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxNjgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOTY0NUMxMEUyOQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDEzOjQ4OjEwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjk3NyBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE9jdCAyMDE3IDEzOjQ4OjEwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyODk5IGludm9rZWQgYnkgdWlkIDUwMCk7IDcgT2N0IDIwMTcgMTM6NDg6MTAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyODg4IGludm9rZWQgYnkgdWlkIDk5KTsgNyBPY3QgMjAxNyAxMzo0ODoxMCAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwNyBPY3QgMjAxNyAxMzo0ODoxMCArMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXF0MC1mMTgxLmdvb2dsZS5jb20gKG1haWwtcXQwLWYxODEuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNi4xODFdKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgMEVBREQxQTAwNTUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDEzOjQ4OjA4ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXF0MC1mMTgxLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGE0M3NvMzAxOTE2MDNxdGEuMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDA3IE9jdCAyMDE3IDA2OjQ4OjA3IC0wNzAwIChQRFQpClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVkhEaWZHMnVRUDFMblVZVGlRS2hpZkJ3SUlGeDhQYmVHQTJzaTFVcUVmcENSNDhZdG0KCWQxQi9OUXE5bEpyVGhFZnp4UjJUTENoWDRzOURicnA5MkxXRmQxRT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUJHVXhEWjF6VFgxQXZUdEtCSzBHUCs1dkU4TG1mMGJGWjZUVkNTZmZqWGI4aWxRSFZSeWV0RmlLdUY0NTZhbUlqRGw1N2lKZkUvWVBVL3IwazFnR1k9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjEzLjIxMi4xMzIgd2l0aCBTTVRQIGlkIHcxMjZtcjQwNTIxNzR5d2QuMTY5LjE1MDczODQwODYzNjA7CiBTYXQsIDA3IE9jdCAyMDE3IDA2OjQ4OjA2IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xMjkuMTkzLjY3IHdpdGggSFRUUDsgU2F0LCA3IE9jdCAyMDE3IDA2OjQ4OjA1IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0FLdVZ6QlJQb3V2RjJWNXdmeFhyYkNSY2N1S3ZjWmhCRE4zZ0NqckxQYjBTSmdvdEpBQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8MTA1NDQ2MTUuQjRoTzNQbnZFekBnaWdhPiA8MjAxNDI2My45aTdsY0Ezakx5QGdpZ2E+CiA8Q0FLdVZ6QlJOQ0RHaEF3RW5HNW5TaHJDd1c9YjNPWlJjRUVlKzdmRk1lWm5jRk9jNmp3QG1haWwuZ21haWwuY29tPgogPDIxODcwMjkuSzM0RTE3TTRqbkBnaWdhPiA8Q0FLdVZ6QlFNVzA5R2FTMjdYcTBDYkp6cWRMVko3cmtrVlNITjhxNlAyYVYxdndXPUd3QG1haWwuZ21haWwuY29tPgogPENBS3VWekJSUG91dkYyVjV3ZnhYcmJDUmNjdUt2Y1poQkROM2dDanJMUGIwU0pnb3RKQUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPgpEYXRlOiBTYXQsIDcgT2N0IDIwMTcgMTU6NDg6MDUgKzAyMDAKWC1HbWFpbC1PcmlnaW5hbC1NZXNzYWdlLUlEOiA8Q0FLdVZ6QlIydytmazVTM3VuQlFSN0I1NGVVODBDUVFhQzY0dXlZNVhORUNIb1NINkdnQG1haWwuZ21haWwuY29tPgpNZXNzYWdlLUlEOiA8Q0FLdVZ6QlIydytmazVTM3VuQlFSN0I1NGVVODBDUVFhQzY0dXlZNVhORUNIb1NINkdnQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogSmVua2lucyBhbmQgTWF2ZW4gMy4wLjUgb3IgSkRLIDcKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNGZiMTgyMDFmOGIzMDU1YWY1MzU0ZCIKCi0tMDAxYTExNGZiMTgyMDFmOGIzMDU1YWY1MzU0ZApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpIZXJ2ZSwKSSB0aGluayBtYWtpbmcgdGhlIHRhZyBhcyBJIHdhbnRlZCB3b3VsZCBub3QgYmUgcG9zc2libGUgaW4gZ2l0LgoKTGV0J3MgbWFrZSBpdCB3aXRoIGFsbCA3OCBwcm9qZWN0cy4KSW4gMjAxNiBJIG1pZ3JhdGVkIG15IHN2biBwcm9qZWN0ICJhdWRpdCIgbG9jYXRlZCBpbiBzdWItZm9sZGVyIGJlaGluZAp0cnVuayAodHJ1bmsvbGlicy9hdWRpdCkgdG8gZ2l0IHdoaWNoIGlzIGV4YWN0bHkgd2hhdCB3ZSBuZWVkIHRvIGRvIGluIEFTRi4KCkluIG91ciBjYXNlIHRoZSBjb21tYW5kcyB3b3VsZCBiZSA5OSUgdGhlIHNhbWUuIFRoZSAxJSBpcyB0aGUgc291cmNlIFNWTgpVUkwgYW5kIHRhcmdldCBHaXRIdWIgVVJMLiBUaGF0J3MgYWxsLiBUaGVuIGlmIHdlIHByb3ZpZGUgSU5GUkEgd2l0aCBidW5jaApvZiBjb21tYW5kcyBsaWtlIHRoZXNlIHRoZW4gdGhleSB3aWxsIG9ubHkgZXhlY3V0ZSB0aGVtIHdpdGggdGhlaXIKcGVybWlzc2lvbnMuCkkgZG8gbm90IHRoaW5rIHRoZXkgd2lsbCBnaXZlIG1lIGFkbWluIHBlcm1pc3Npb25zIHRvIG1ha2UgaXQuCgpnaXQgc3ZuIGNsb25lIC0tbm8tbWV0YWRhdGEgLS1hdXRob3JzLWZpbGU9M0RFOlwqYXV0aG9ycy50eHQqIGh0dHA6Ly8KKioqL3N2bi8qKiovKnRydW5rL2xpYnMvYXVkaXQgYXVkaXQqCmdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5uYW1lICIqKiogKioqIgpnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIuZW1haWwgIioqKkAqKiouKioqIgpnaXQgcmVtb3RlIGFkZCBvcmlnaW4gaHR0cHM6Ly8qKipAZ2l0aHViLmNvbS9hcGFjaGUvKm1hdmVuLWNsZWFuLXBsdWdpbiouZ2k9CnQKZ2l0IHB1c2ggLXUgb3JpZ2luIC0tYWxsCgpJIG9ic2VydmVkIHRoZSAqYXV0aG9ycy50eHQqIGZyb20gY29tbWFuZAoqc3ZuIGxvZyAtcSoKRWFjaCBwZXJzb24gZnJvbSBiZXR3ZWVuIGZpcnN0IHR3byBwaXBlcywgZS5nLjoKcjEyMzQ1NjcgfCB0aWJvcmRpZ2FuYSB8IDIwMTUtMTAtMTkgMDI6MjA6MDAKCkV2ZXJ5IGRldmVsb3BlciBhZGRlZCBlLW1haWwgYW5kIGZ1bGwgbmFtZSwgaS5lLjoKdGlib3JkaWdhbmEgPTNEIFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4KZXRjLgoKVGhpcyBsaXN0IG9mIHVzZXJzIHdoaWNoIHNob3VsZCBiZSBjcmVhdGVkIGluIHByaW9yIHRvIGNvbnRhY3QgSU5GUkEuCk5vdCBhbGwgdXNlcnMgYXJlIGFjdGl2ZSBhZnRlciB5ZWFycyBidXQgaXQgd291bGQgYmUgbmljZSB0byBpbmNsdWRlIHRoZW0KdG9vLgpUaGlzIGxpc3Qgb2YgdXNlcnMgaXMgb25lIHRoaW5nIHdoaWNoIGNhbm5vdCBiZSBhdXRvbWF0ZWQhCgoKCgpPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDI6NDggUE0sIFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4gd3JvdGU9CjoKCj4gSW4gbXkgY29tcGFueSBJIGhhdmUgc3VjaCBzaXR1YXRpb24gaW4gU1ZOLiBNYWtpbmcgYSB0YWcgZnJvbSBzdWJmb2xkZXIuCj4gR2l0IGFsd2F5cyBtYWtlcyB0aGUgdGFnIGZyb20gdGhlIHJvb3QsIHJpZ2h0Pwo+IExldCdzIGdvb2dsZSBzb21ldGhpbmcuLi4KPgo+IE9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgMjo0NyBQTSwgVGlib3IgRGlnYW5hIDx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb209Cj4KPiB3cm90ZToKPgo+PiBJbiBteSBjb21wYW55IEkgaGF2ZSBzdWNoIHNpdHVhdGlvbi4KPj4gTWFraW5nIGEgdGFnIGZyb20gc3ViZm9sZGVyLgo+PiBHaXQgYWx3YXlzIG1ha2VzIHRoZSB0YWcgZnJvbSB0aGUgcm9vdCwgcmlnaHQ/Cj4+IExldCdzIGdvb2dsZSBzb21ldGhpbmcuLi4KPj4KPj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCAyOjA1IFBNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mPQpyPgo+PiB3cm90ZToKPj4KPj4+IHRoYW5rcyBmb3IgeW91ciBpbnRlcmVzdCBhbmQgZmVlZGJhY2sKPj4+Cj4+PiBMZSBzYW1lZGkgNyBvY3RvYnJlIDIwMTcsIDEyOjAwOjMyIENFU1QgVGlib3IgRGlnYW5hIGEgPUMzPUE5Y3JpdCA6Cj4+PiA+IDc4IGlzIHRvbyBtdWNoLgo+Pj4gbm90aWNlIHRoYXQgdGhlcmUgd291bGQgYWxzbyBiZSBhIHF1ZXN0aW9uIG9uIHRoZSBnaXQgcmVwb3MgbmFtaW5nCj4+PiBjb252ZW50aW9uLAo+Pj4gdG8gYXZvaWQgZmxhdCA3OCBuYW1lcyBidXQga2VlcCBhdCBsZWFzdCAzIG1lYW5pbmdmdWwgZ3JvdXBzIChwbHVnaW5zLAo+Pj4gc2hhcmVkLAo+Pj4gcmVzb3VyY2VzOiBJIHRoaW5rIHRoaXMgaXMgbm90IGFic29sdXRlbHkgbmVjZXNzYXJ5IGZvciBkb3hpYS10b29scykKPj4+Cj4+PiA+IFRoZXJlIGlzIG5vIHByb2JsZW0gdG8gdHJpZ2dlciByZWxlYXNlIG92ZXIgc3ViLWZvbGRlcnMgYW5kIHRhZyBpdCB3aT0KdGgKPj4+ID4gcHJlZml4IHdoaWNoIGlzIGFscmVhZHkgZG9uZSBpbiBTVk4uCj4+PiBpcyBpdCBzdXBwb3J0ZWQgYnkgbWF2ZW4tcmVsZWFzZSBwbHVnaW4gd2l0aCBnaXQ/Cj4+Pgo+Pj4gbm90aWNlIEkgZGlkIG5vdCBrbm93IHRoYXQgZ2l0IHdhcyBhYmxlIHRvIHRhZyBvbmx5IGEgc3VidHJlZTogYnV0IEkKPj4+IGtuZXcgSQo+Pj4gZG9uJ3QgeWV0IHVuZGVyc3RhbmQgZXZlcnkgYXNwZWN0IG9mIGdpdCBtYWdpYy4uLiA6KQo+Pj4KPj4+ID4gVGhlIENJIGJ1aWxkIGNhbiBhbHdheXMgdHJpZ2dlciB0aGUgcm9vdCBhbmQgSmVua2luc2ZpbGUgd291bGQgaGF2ZSA0PQoxCj4+PiA+IHN0YWdlcyBmb3IgcGx1Z2lucywgMjYgc3RhZ2VzIGZvciBTaGFyZWQsIGV0Yy4KPj4+ID4gSXQgY2FuIGJlIGRvbmUgaW4gSmVua2luc2ZpbGUgYW5kIHNvIHRoZSBzaGVsbCB3b3VsZCBub3QgdGhyb3cKPj4+IGV4Y2VwdGlvbgo+Pj4gPiBidXQgc3RhdHVzIHdvdWxkIGJlIHNldCBpbnN0ZWFkIGFuZCBnb2VzIHRvIHRoZSBuZXh0IHN0YWdlLgo+Pj4gPiBJIGRvIG5vdCBrbm93IGhvdyB0byBkZXRlY3QgaW4gR2l0U0NNIHdoaWNoIHN1Yi1mb2xkZXIocykgcmVjZWl2ZWQgYnU9CnQKPj4+IEkKPj4+ID4gZ3Vlc3MgdGhpcyBjYW4gYmUgaW52ZXN0aWdhdGVkLgo+Pj4gKzEKPj4+IGJ1dCBJIGRvbid0IGtub3cgd2hlcmUgdG8gbG9vayBmb3IgbXlzZWxmOiBvbiB0aGF0IHBvaW50LCBJIGhvcGUgdG8gaGF2PQplCj4+PiBzb21lCj4+PiBoZWxwIGZyb20gSmVua2luc2ZpbGUgZXhwZXJ0cwo+Pj4gYW5kIGV2ZW50dWFsbHkgc3RhcnQgd2l0aCBzdm4sIHRvIGhhdmUgc29tZXRoaW5nIGJlZm9yZSB0aGUgZ2l0IG1pZ3JhdGk9Cm9uCj4+Pgo+Pj4gPiBUaGVuIGl0IGNhbiBiZSBhIGtpbmQgb2Ygc3dpdGNoLWNhc2Ugb3ZlciBjb21taXR0ZWQgZm9sZGVycyBpbgo+Pj4gSmVua2luc2ZpbGUuCj4+PiA+IFRoaXMgbWVhbnMgdGhhdCBldmVyeSB0aW1lIGFub3RoZXIgc3RhZ2Uvc3ViLWZvbGRlciBpcyBzaG93biBpbgo+Pj4gUGlwZWxpbmUKPj4+ID4gd2hpY2ggd2lsbCBiZSBtZXNzeSBpbiB0aGUgVUkuIDooCj4+PiBub3RpY2UgdGhhdCB3ZSBjYW4gcGVyaGFwcyBzcGxpdCB0aGUgcmVwb3MgaW4gbGVzcyBwYXJ0cyB0aGFuIHdlIGhhdmUKPj4+IGNvbXBvbmVudHM6IG9uIHBsdWdpbnMsIGZvciBleGFtcGxlLCB3ZSBhbHJlYWR5IGhhdmUgNCBjYXRlZ29yaWVzIFsxXQo+Pj4gd2hpY2gKPj4+IHdvdWxkIGF2b2lkIDEgcmVwbyB3aXRoIDQxIHBsdWdpbnMsIGJ1dCBtb3JlIHNvbWV0aGluZyBsaWtlIDYrMTArMTArMTUKPj4+IEkgc3VwcG9zZSB3ZSBjb3VsZCBkbyB0aGUgc2FtZSBmb3Igc2hhcmVkIChyZXBvcnRpbmcgZm9sZGVyIGNvbWVzIHRvIG15Cj4+PiBtaW5kKQo+Pj4KPj4+IFRoZSBrZXkgZmVhc2liaWxpdHkgaXNzdWUgaXMgdGhlIGNhcGFjaXR5IHRvIHJlbGVhc2UgYSBzdWItY29tcG9uZW50Cj4+PiBmcm9tIGdpdAo+Pj4gd2l0aCBtYXZlbi1yZWxlYXNlLXBsdWdpbiwgSU1ITwo+Pj4gKHRha2luZyBhcGFydCB0aGUgZ2l0IHB1cmlzdHMgaWRlYSBvZiAxIGxpZmVjeWNsZSA9M0QgMSBnaXQgcmVwbykKPj4+Cj4+PiBSZWdhcmRzLAo+Pj4KPj4+IEhlcnY9QzM9QTkKPj4+Cj4+Pgo+Pj4gWzFdIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMvCj4+PiA+Cj4+PiA+IE9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgNDoxNyBBTSwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZT0KZS5mcj4KPj4+IHdyb3RlOgo+Pj4gPiA+IFRoZXJlIGFyZSA2IHN2biBsb2NhdGlvbnMgd2l0aG91dCBhbnkgc3BlY2lhbCBjb21wbGV4aXR5IHRoYXQgYXJlCj4+PiB3YWl0aW5nCj4+PiA+ID4gZm9yCj4+PiA+ID4gYSB2b2x1bnRlZXIgZm9yIGdpdCBtaWdyYXRpb24gZm9yIGEgZmV3IHllYXJzIGJ1dCBub2JvZHkgZG9lcwo+Pj4gYW55dGhpbmcKPj4+ID4gPiBhYm91dDoKPj4+ID4gPiBJIHN0YXJ0ZWQgMyBkYXlzIGFnbyB0byBhc2sgZm9yIGhlbHAgYWJvdXQgaXQgYW5kIGdvdCBwcmV0dHkgbm8KPj4+IGZlZWRiYWNrCj4+PiA+ID4gWzFdCj4+PiA+ID4KPj4+ID4gPiB0aGVuIHRoZXJlIGFyZSB0aGUgNCBjb21wbGV4IHN2biBsb2NhdGlvbnMgKHBsdWdpbnMsIHNoYXJlZCwKPj4+IHJlc291cmNlcywKPj4+ID4gPiBkb3hpYS0KPj4+ID4gPiB0b29scykgdGhhdCByZXF1aXJlIG11Y2ggbW9yZSB3b3JrOiBJIHN1cHBvc2Ugd2UgY2FuJ3QgdGVsbCBnaXQKPj4+IG1pZ3JhdGlvbgo+Pj4gPiA+IGlzCj4+PiA+ID4gYWJhbmRvbmVkLCBidXQgaXQgd2lsbCByZXF1aXJlIHNvbWVvbmUgdG8gd29yayBvbiBpdCBzZXJpb3VzbHkKPj4+ID4gPiBSZW1lbWJlciB0aGF0IHRoZSBrZXkgcXVlc3Rpb24gWzJdIGlzOiBkbyB3ZSB0cmFuc2Zvcm0gdGhlc2UgNCBzdm4KPj4+ID4gPiBsb2NhdGlvbnMKPj4+ID4gPiBpbnRvIDQxICsyNiArIDYgKyA1ID0zRCA3OCBpbmRlcGVuZGVudCBnaXQgcmVwb3M/Cj4+PiA+ID4gWWVzLCBJIHRvbGQgdGhhdCBKZW5raW5zIGNvbmZpZ3VyYXRpb24gaXMgb25lIGtleSBhc3BlY3Qgd2UgbmVlZCBhCj4+PiA+ID4gc3RyYXRlZ3kKPj4+ID4gPiBhYm91dCwgaW4gcGFyYWxsZWwgd2l0aCBnaXQgc3RyYXRlZ3kuCj4+PiA+ID4KPj4+ID4gPiB0aGVuIHRoZXJlIHdpbGwgYmUgdGhlIHJlbWFpbmluZyBjYXNlcyB3aGVyZSB3ZSBuZWVkIHRvIGRlY2lkZTogbG93PQplcgo+Pj4gPiA+IGltcGFjdCwKPj4+ID4gPiBsb3dlciBwcmlvcml0eS4KPj4+ID4gPgo+Pj4gPiA+Cj4+PiA+ID4gU3VtbWFyeTogbm90aGluZyBpcyBhYmFuZG9uZWQsIGJ1dDoKPj4+ID4gPiAtIHNpbXBsZSBjYXNlczogbm8gdm9sdW50ZWVyIHRvIGRvIHRoZSBqb2IKPj4+ID4gPiAtIGhhcmQgY2FzZXM6IGlzIHRoZXJlIGEgdm9sdW50ZWVyIGVpdGhlciB0byBkZWZpbmUgYSBzdHJhdGVneSBvciBkPQpvCj4+PiBzb21lCj4+PiA+ID4gd29yawo+Pj4gPiA+IG9uIGl0Pwo+Pj4gPiA+Cj4+PiA+ID4KPj4+ID4gPiBSZWdhcmRzLAo+Pj4gPiA+Cj4+PiA+ID4gSGVydj1DMz1BOQo+Pj4gPiA+Cj4+PiA+ID4gWzFdIGh0dHBzOi8vbGlzdHMuYXBhY2hlLm9yZy90aHJlYWQuaHRtbC8KPj4+ID4gPiBlZGYzNjQyYTdiZGQ1MTVmMGNhZDQyMWMyNTU4OTc0MTgxOTQ0NjQ2MzYxNGJmMDUxNWU1NmRiZUAKPj4+ID4gPiAlM0NkZXYubWF2ZW4uYXBhY2hlLm9yZyUzRQo+Pj4gPiA+Cj4+PiA+ID4gWzJdIGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvTUFWRU4vR2l0Cj4+PiA+ID4gK01pZ3JhdGlvbiNHaXRNaWdyYXRpb24tTWlncmF0aW5nYW5hZ2dyZWdhdG9ydHJlZWludG9hY29sbGVjCj4+PiB0aW9ub2ZnaXRyZXBvcwo+Pj4gPiA+Cj4+PiA+ID4gTGUgdmVuZHJlZGkgNiBvY3RvYnJlIDIwMTcsIDIwOjM1OjQ1IENFU1QgQXJuYXVkIEg9QzM9QTlyaXRpZXIgYSA9Cj1DMz1BOWNyaXQgOgo+Pj4gPiA+ID4gQnV0IGRpZCB3ZSBjb21wbGV0ZWx5IGFiYW5kb25lZCB0aGUgaWRlYSBvZiBtb3ZpbmcgZXZlcnl0aGluZyB0bwo+Pj4gZ2l0ID8KPj4+ID4gPiA+IFRoZSBDSSBzZXR1cCB3YXMgdGhlIG1haW4gc3RvcCBmb3IgaXQgPwo+Pj4gPiA+ID4KPj4+ID4gPiA+IE9uIEZyaSwgT2N0IDYsIDIwMTcgYXQgODowNSBQTSwgSGVydj1DMz1BOSBCT1VURU1ZIDwKPj4+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4+ID4gPgo+Pj4gPiA+IHdyb3RlOgo+Pj4gPiA+ID4gPiBJIHdhcyBleHBlY3RpbmcgdGhlIHVzdWFsIGxpdGFueQo+Pj4gPiA+ID4gPgo+Pj4gPiA+ID4gPiB3aGF0IEknbSBub3QgY29uZmlkZW50IGN1cnJlbnRseSB3aXRoIHBpcGVsaW5lIG9uIE1hdmVuIGNvcmUgaXMKPj4+IHRoYXQKPj4+ID4gPiA+ID4gd2UKPj4+ID4gPiA+ID4gaGF2ZQo+Pj4gPiA+ID4gPiBmb3IgZXhhbXBsZSB0aGUgIm1hdmVuLTMueC1qZW5raW5zZmlsZS9NTkctNjI0MiAtIGJ1aWxkICMxIC0KPj4+IG51bGwiCj4+PiA+ID4gPiA+IG1lc3NhZ2UsCj4+PiA+ID4gPiA+IHdpdGggdGhpcyAibnVsbCIgcGFydCB0aGF0IG1ha2VzIG1lIHdvbmRlciBpZiB3ZSBhcmUgdXNpbmcgaXQgYT0Kcwo+Pj4gPiA+Cj4+PiA+ID4gZXhwZWN0ZWQuCj4+PiA+ID4KPj4+ID4gPiA+ID4gQW5kIGZvciBsYXJnZSBtdWx0aS1tb2R1bGUgc3ZuIHRydW5rcyAodGhlIG9uZXMgd2UgZG9uJ3QgbWlncmF0PQplCj4+PiB0bwo+Pj4gPiA+Cj4+PiA+ID4gZ2l0Ogo+Pj4gPiA+ID4gPiBtYWlubHkgcGx1Z2lucyBhbmQgc2hhcmVkKSwgaXMgdGhlcmUgYSBzb2x1dGlvbiB0byByZWJ1aWxkIGp1c3QKPj4+ID4gPiA+ID4gY2hhbmdlZAo+Pj4gPiA+ID4gPiBtb2R1bGVzPwo+Pj4gPiA+ID4gPgo+Pj4gPiA+ID4gPiBpZGVhbGx5LCB0aGUgcmVidWlsZCB3aGVuIGEgU05BUFNIT1QgZGVwZW5kZW5jeSBpcyBwdWJsaXNoZWQKPj4+IHdvdWxkCj4+PiA+ID4gPiA+IGhhdmUKPj4+ID4gPiA+ID4gYmVlbiBhCj4+PiA+ID4gPiA+IHBsdXMsIGJ1dCB0aGlzIGlzIHN1ZmZpY2llbnRseSBhIHJhcmUgdXNlIHRoYXQgSSB3b24ndCBiZQo+Pj4gZXh0cmVtaXN0Cj4+PiA+ID4gPiA+Cj4+PiA+ID4gPiA+Cj4+PiA+ID4gPiA+IFRoZW4gSUlVQywgdGhpcyBtaWdyYXRpb24gam9iIGlzIG9uZSBhZGRpdGlvbmFsIFRPRE8gZm9yIG1lLi4uCj4+PiA+ID4gPiA+Cj4+PiA+ID4gPiA+IFJlZ2FyZHMsCj4+PiA+ID4gPiA+Cj4+PiA+ID4gPiA+IEhlcnY9QzM9QTkKPj4+ID4gPiA+ID4KPj4+ID4gPiA+ID4gTGUgdmVuZHJlZGkgNiBvY3RvYnJlIDIwMTcsIDE3OjQ2OjUzIENFU1QgQXJuYXVkIEg9QzM9QTlyaXRpZXIgPQphCj4+PiA9QzM9QTljcml0IDoKPj4+ID4gPiA+ID4gPiBJIGFncmVlIHRoYXQgd2Ugc2hvdWxkIHVzZSBwaXBlbGluZSBub3dkYXlzCj4+PiA+ID4gPiA+ID4gcGVyaGFwcyBhIHNoYXJlZCBsaWIgaWYgd2Ugd2FudCB0byBzdGFuZGFyZGl6ZSBzb21lIHN0dWZmcyBhbj0KZAo+Pj4gYSBzZXQKPj4+ID4gPgo+Pj4gPiA+IG9mCj4+PiA+ID4KPj4+ID4gPiA+ID4gPiBtdWx0aS1icmFuY2hlcyBqb2JzIChvciBvcmcgZm9sZGVyIGJ1dCBpdCByZXF1aXJlcyBHaXRIdWIgOiggPQopCj4+PiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiBPbiBGcmksIE9jdCA2LCAyMDE3IGF0IDk6MTYgQU0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+Pj4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4+PiA+ID4gPiA+ID4gPiBPbiBGcmkgNiBPY3QgMjAxNyBhdCAwNjozMiwgSGVydj1DMz1BOSBCT1VURU1ZIDwKPj4+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4+ID4gPiA+ID4KPj4+ID4gPiA+ID4gd3JvdGU6Cj4+PiA+ID4gPiA+ID4gPiA+IEkganVzdCBmaXhlZCBhIGZldyBmYWlsaW5nIGpvYnMgWzFdIHRvIGhhdmUgYWdhaW4gYSB1c2FibD0KZQo+Pj4gPiA+Cj4+PiA+ID4gSmVua2lucy4KPj4+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPiBOb3cgSSdtIGZhY2luZyBzb21lIGlzc3VlcywgSSBzdXBwb3NlIGNhdXNlZCBieSBuZXdlcgo+Pj4gSmVua2lucwo+Pj4gPiA+ID4gPgo+Pj4gPiA+ID4gPiB2ZXJzaW9uczoKPj4+ID4gPiA+ID4gPiA+ID4gLSBNYXZlbiAzLjAuNSBjYXVzZXMgTm9TdWNoTWV0aG9kRXJyb3I6Cj4+PiA+ID4gPiA+ID4gPiA+IG8uYy5wbGV4dXMudXRpbC54bWwucHVsbC4KPj4+ID4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiBNWFBhcnNlcgo+Pj4gPiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4gWzJdCj4+PiA+ID4gPiA+ID4gPiA+IC0gSSBoYWQgdG8gc3dpdGNoIHRvIEpESyA4IGZvciBtYXZlbi1wbHVnaW4tdG9vbHMgam9iLAo+Pj4gc2luY2UgSkRLCj4+PiA+ID4gPiA+Cj4+PiA+ID4gPiA+IGNhdXNlcwo+Pj4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPiBmYWlsdXJlcyAobG9va3MgbGlrZSBKZW5raW5zIHVzZXMgYSBoYWNrIHRvIGluamVjdCBKREsgNwo+Pj4gYXMgYQo+Pj4gPiA+Cj4+PiA+ID4gdG9vbAo+Pj4gPiA+Cj4+PiA+ID4gPiA+IHdoaWxlCj4+PiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+IHRoZQo+Pj4gPiA+ID4gPiA+ID4gPiBidWlsZCBKVk0gaXMgSmF2YSA4KQo+Pj4gPiA+ID4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPiBTaG91bGQgd2UgZHJvcCBNYXZlbiAzLjAuNSBidWlsZHMgYW5kIEpESyA3Pwo+Pj4gPiA+ID4gPiA+ID4gPiBOb3RpY2UgSSBkaWRuJ3QgY2hlY2sgd2hpY2ggaXMgdGhlIG1pbmltdW0gTWF2ZW4gdmVyc2lvbgo+Pj4gPiA+Cj4+PiA+ID4gcmVxdWlyZWQuLi4KPj4+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPiBPciBwZXJoYXBzIHNpbXBseSBkb24ndCB1c2UgdGhlIEplbmtpbnMgTWF2ZW4gcGx1Z2luIHdpdGgKPj4+IHRoaXMKPj4+ID4gPgo+Pj4gPiA+IE1hdmVuCj4+PiA+ID4KPj4+ID4gPiA+ID4gPiA+IDMuMC41Cj4+PiA+ID4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPiBvcgo+Pj4gPiA+ID4gPiA+ID4gPiBKREsgNyBjb25maWd1cmF0aW9uOiBkZWZhdWx0IGJ1aWxkIGFzIEplbmtpbnMgTWF2ZW4gcGx1Z2k9Cm4KPj4+IHdpdGgKPj4+ID4gPgo+Pj4gPiA+IEpESwo+Pj4gPiA+Cj4+PiA+ID4gPiA+IDggKwo+Pj4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPiBsYXRlc3QKPj4+ID4gPiA+ID4gPiA+ID4gTWF2ZW4sIGFuZCBvdGhlciBjb25maWd1cmF0aW9ucyBhcyBzY3JpcHRlZCBqb2JzPwo+Pj4gPiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+IGh0dHA6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90LmllLzIwMTMvMTEvamVua2lucy1tYXZlbi1qb2ItPQo+Cj4+PiA+Cj4+PiA+ID4gPiA+Cj4+PiA+ID4gPiA+IHR5cGUtY29uc2lkZXJlZC1ldmlsLmh0bWwKPj4+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+IDxodHRwOi8vamF2YWFkdmVudHVyZS5ibG9nc3BvdC5pZS8yMDEzLzExL2plbmtpbnMtPiA+Cj4+PiA+ID4gPiA+Cj4+PiA+ID4gPiA+IG1hdmVuLWpvYi10eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sP209M0QxPgo+Pj4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gV2Ugc2hvdWxkIHN0b3AgdXNpbmcgdGhlIGV2aWwgam9iIHR5cGUgYXMgaXQ9RTI9ODA9OTlzIG1pbmk9Cm11bSBKYXZhCj4+PiA+ID4KPj4+ID4gPiB2ZXJzaW9uIGlzCj4+PiA+ID4KPj4+ID4gPiA+ID4gPiA+IGRpY3RhdGVkIGJ5IEplbmtpbnM9RTI9ODA9OTkgSmF2YSBtaW5pbXVtLgo+Pj4gPiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4gV2UgbmVlZCB0byBkZWZpbmUgb3VyIGNvbW1vbiBzdHJhdGVneSBhbmQgaGF2ZSBhIGNvbnNpc3RlPQpudAo+Pj4gPiA+ID4gPiA+ID4gPiBjb25maWd1cmF0aW9uCj4+PiA+ID4gPiA+ID4gPiA+IGZvcgo+Pj4gPiA+ID4gPiA+ID4gPiBldmVyeSBqb2IgdW5kZXJzdG9vZCBieSBldmVyeWJvZHkKPj4+ID4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiBJIHJlY29tbWVuZCBKZW5raW5zZmlsZSBhbmQgdGhlIGB3aXRoTWF2ZW5gIHdyYXBwZXIKPj4+ID4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+IFJlZ2FyZHMsCj4+PiA+ID4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+IEhlcnY9QzM9QTkKPj4+ID4gPiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4gWzFdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi8KPj4+ID4gPiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4gWzJdCj4+PiA+ID4gPiA+ID4gPiA+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tPgo+Pj4gPgo+Pj4gPiA+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+IHBsdWdpbi10b29scy1qZGstMS43LzE2Mi9jb25zb2xlCj4+PiA+ID4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gPiA+ID4gPgo+Pj4gPiA+ID4gPiAtLS0tLS0tLS0KPj4+ID4gPiA+ID4KPj4+ID4gPiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+ID4gPiA+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yPQpnCj4+PiA+ID4gPiA+ID4gPiA+Cj4+PiA+ID4gPiA+ID4gPiA+IC0tCj4+PiA+ID4gPiA+ID4gPgo+Pj4gPiA+ID4gPiA+ID4gU2VudCBmcm9tIG15IHBob25lCj4+PiA+ID4gPiA+Cj4+PiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gLS0tLS0tLS0tCj4+PiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+PiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+ID4gPgo+Pj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gLS0tLS0tLS0tCj4+PiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Pgo+Pj4KPj4+Cj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Pgo+Pj4KPj4KPj4KPj4gLS0KPj4gQ2hlZXJzCj4+IFRpYm9yCj4+Cj4KPgoKLS0wMDFhMTE0ZmIxODIwMWY4YjMwNTVhZjUzNTRkLS0KCkZyb20gZGV2LXJldHVybi0xMjQ2NDctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE5vdiAyOCAxODoxODo0MiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ2NDctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNzc0RDExN0I1QQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDE4OjE4OjQyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODQwNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBOb3YgMjAxNyAxODoxODo0MiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODI5MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBOb3YgMjAxNyAxODoxODo0MiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgyNjggaW52b2tlZCBieSB1aWQgOTkpOyAyOCBOb3YgMjAxNyAxODoxODo0MSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMjggTm92IDIwMTcgMTg6MTg6NDEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBEM0VBN0M2MDVECglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAxODoxODo0MCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDQuMDgxClgtU3BhbS1MZXZlbDogKioqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9NC4wODEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX0JBRElQSFRUUD0yLCBLQU1fU0hPUlQ9MC4wMDEsCglLQl9XQU1fRlJPTV9OQU1FX1NJTkdMRVdPUkQ9MC4yLCBOT1JNQUxfSFRUUF9UT19JUD0wLjAwMSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z29vZ2xlbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIExoN0txRUp5d2ZQZyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVR1ZSwgMjggTm92IDIwMTcgMTg6MTg6MzkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC15YjAtZjE3OS5nb29nbGUuY29tIChtYWlsLXliMC1mMTc5Lmdvb2dsZS5jb20gWzIwOS44NS4yMTMuMTc5XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEJFNTczNUYxQjMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDE4OjE4OjM5ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXliMC1mMTc5Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGcxODdzbzMwODM5MHliYS4xMwogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDEwOjE4OjM5IC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nb29nbGVtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9dVdaZUJST2xyb0VXZFZVYjJLVUFxNEp4NittaHR3MXB3OUxGN25UYWdrVT07CiAgICAgICAgYj1jTVZ4RStwc1M3aDhrWFAxTUhleXo4RlFOYVFhMUtNcHBPMHJudmNzem1Qbkd0R3NyYUJwUklIMkd5RjlZSFdpM2sKICAgICAgICAgRjJIenNuSW1QUTdZaTRNYkFvenh5R0NyRVhoY3RYajFXbHREMHc0aE5qemwzaFluT2hVaDl2S2RQaUFvdmZQbEtjUEUKICAgICAgICAgM0JheXo3amVWVVUvbzJreXo0RFZocjY4K2VIRUVmS2I0NDRuSWxQSUJscnpNY2NVMWhPRm9SVzJCRWV6WGg2OUhXOVcKICAgICAgICAgM2xLTzdVbGtBaFlPZ05nNzVaUStIZ2xtTXd6YXR6UW5OUnhmS2h4akg1aVB2d1pHUWlLYnA3TllUQW8wWjJuQkhRWWIKICAgICAgICAgYitEQ1czT0ZTT1dxQWcvaVkxdU5lQlM5U0VPZmtya1RTTmRFc0tmNnVqLzhvMytUTUY4WXZ2T3VLRHdEczVHQThoSm4KICAgICAgICAga0pidz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9dVdaZUJST2xyb0VXZFZVYjJLVUFxNEp4NittaHR3MXB3OUxGN25UYWdrVT07CiAgICAgICAgYj1RL0xiYjg0dW9oVXdLUXpyMkEvU1Voc0dYNGpTaFpDRzFGWHRNU2Z6MUNRMFVzUXZKZEpDK1gwbW5RZTRqVHptUDUKICAgICAgICAgUXl6cmdiNVBJUitScVdsbmpDZ0ZJamkvVnEzSkRzSWRrci9Lc3RjdE9GYXVoZ3RINGZuVWFmbUhuQmVDZ2NPUjYxRzkKICAgICAgICAgN2JiQW5QZXkvb29hRG9lelcrSzQ4RElOM0tIQzJRVjYyUWVST1k0VmU2SGJBczVDWVJXNnVlUWh4bzd5MEhSUXNsVnAKICAgICAgICAgbHNSWU1wdkR3c2xZU3U3QWVBSHFHVjBFR1RodDhzN0VTOW8yT2hEdEkxcTArWi9VejYvN3VjNEN6YW1LRUI4OTRKeCsKICAgICAgICAgUFJWTzluTmdMQm9pcEtsUlZkQ0IwajFuOVR1TFVLUEZoazFjRFFMYjBUcEJIOHlGY0ZwODZRUC9menJ4UzVQdHo2UDUKICAgICAgICAgUHhjZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYNWtoK09mWVVLc24zdTJmUFVQNktlM3R1amNQMGNYbGRjT2lKb0thUlcvR3RaanBySVAKCXJWNDZVYmE0TXlSZkJlbDYyNnpVWFZEaVdGQ2c3cDRLc0krZGNFeVljZz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1Za0t0RWx3TFdWVlF6VExuTWJRenZ3a3J2ZXJRbm5qTVlITjdWVy8veGZCN3ZQMG03TFgwZ0VweDRNS3JzdkNDK1QycFVBRFNoS2g1cWVFNFNPUU04PQpYLVJlY2VpdmVkOiBieSAxMC4zNy4xOTkuMTQ1IHdpdGggU01UUCBpZCB3MTM5bXIyNzU4MHliZS4xMDcuMTUxMTg5MzExOTI1OTsKIFR1ZSwgMjggTm92IDIwMTcgMTA6MTg6MzkgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjEyOS4xMjIuMTUxIHdpdGggSFRUUDsgVHVlLCAyOCBOb3YgMjAxNyAxMDoxODozOCAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPENBQTlTNmk3PUpTVjRuNTlOa2U1K2EyaFctNEgrY19BUXY0eDN2RzVtTGdnaXpkdkJRQUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBS3VWekJUY25xS2g4ZDRLTlNLY2h2cDRkR0xjWncyZUR3TWluS1oxVUtCejgxMjlYQUBtYWlsLmdtYWlsLmNvbT4KIDxDQUE5UzZpNz1KU1Y0bjU5TmtlNSthMmhXLTRIK2NfQVF2NHgzdkc1bUxnZ2l6ZHZCUUFAbWFpbC5nbWFpbC5jb20+CkZyb206IFRpYm9yIERpZ2FuYSA8dGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tPgpEYXRlOiBUdWUsIDI4IE5vdiAyMDE3IDE5OjE4OjM4ICswMTAwCk1lc3NhZ2UtSUQ6IDxDQUt1VnpCUjMrNXc1VGNndk1oR1BtRi13cXNkVm1rSHNSZWlLQmorMWM2YXJMVEpHWkFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBQcm9ibGVtIHRvIGRvd25sb2FkIGRlcGVuZGVuY3kgb24gVWJ1bnR1ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzE0ODBmYTRmZGM4YzA1NWYwZjBjNzkiCgotLTk0ZWIyYzE0ODBmYTRmZGM4YzA1NWYwZjBjNzkKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKClRoZXNlIGFyZSBteSBsb2dzIGZyb20gbXZuIC1YIGNsZWFuCgpbREVCVUddIFVzaW5nIG1pcnJvciBuZXh1cyAoCmh0dHA6Ly9tYXZlbnJlcG8uYWRzLmxvY2FsL25leHVzL2NvbnRlbnQvZ3JvdXBzL3B1YmxpYykgZm9yIGNlbnRyYWwgKApodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIpLgouLi4KW0RFQlVHXSBVc2luZyB0cmFuc3BvcnRlciBXYWdvblRyYW5zcG9ydGVyIHdpdGggcHJpb3JpdHkgLTEuMCBmb3IKaHR0cDovL21hdmVucmVwby5hZHMubG9jYWwvbmV4dXMvY29udGVudC9ncm91cHMvcHVibGljCltERUJVR10gVXNpbmcgY29ubmVjdG9yIEJhc2ljUmVwb3NpdG9yeUNvbm5lY3RvciB3aXRoIHByaW9yaXR5IDAuMCBmb3IKaHR0cDovL21hdmVucmVwby5hZHMubG9jYWwvbmV4dXMvY29udGVudC9ncm91cHMvcHVibGljIHdpdGgKdXNlcm5hbWU9ZGVwbG95bWVudCwgcGFzc3dvcmQ9KioqCkRvd25sb2FkaW5nOgpodHRwOi8vbWF2ZW5yZXBvLmFkcy5sb2NhbC9uZXh1cy9jb250ZW50L2dyb3Vwcy9wdWJsaWMvb3JnL2FycXVpbGxpYW4vYXJxdWlsbGlhbi11bml2ZXJzZS8xLjEuMTMuNy9hcnF1aWxsaWFuLXVuaXZlcnNlLTEuMS4xMy43LnBvbQpbV0FSTklOR10gRmFpbGVkIHRvIGNyZWF0ZSBwYXJlbnQgZGlyZWN0b3JpZXMgZm9yIHRyYWNraW5nIGZpbGUKL2hvbWUveG1zNDAvLm0yL3JlcG9zaXRvcnkvb3JnL2FycXVpbGxpYW4vYXJxdWlsbGlhbi11bml2ZXJzZS8KMS4xLjEzLjcvYXJxdWlsbGlhbi11bml2ZXJzZS0xLjEuMTMuNy5wb20ubGFzdFVwZGF0ZWQKLi4uCltFUlJPUl0gTm9uLXJlc29sdmFibGUgaW1wb3J0IFBPTTogQ291bGQgbm90IHRyYW5zZmVyIGFydGlmYWN0Cm9yZy5hcnF1aWxsaWFuOmFycXVpbGxpYW4tdW5pdmVyc2U6cG9tOjEuMS4xMy43IGZyb20vdG8gbmV4dXMgKApodHRwOi8vbWF2ZW5yZXBvLmFkcy5sb2NhbC9uZXh1cy9jb250ZW50L2dyb3Vwcy9wdWJsaWMpOgovaG9tZS94bXM0MC8ubTIvcmVwb3NpdG9yeS9vcmcvYXJxdWlsbGlhbi9hcnF1aWxsaWFuLXVuaXZlcnNlLwoxLjEuMTMuNy9hcnF1aWxsaWFuLXVuaXZlcnNlLTEuMS4xMy43LnBvbS5wYXJ0LmxvY2sgKE5vIHN1Y2ggZmlsZSBvcgpkaXJlY3RvcnkpCgoKT24gTW9uLCBOb3YgMjcsIDIwMTcgYXQgMTA6NDYgUE0sIE5pY2sgU3RvbHdpamsgPG5pY2suc3RvbHdpamtAZ21haWwuY29tPgp3cm90ZToKCj4gRGlkIHlvdSBhbHNvIGNvbmZpZ3VyZSB5b3VyIHByb3h5IGluIHRoZSBzZXR0aW5ncy54bWw/IFsxXQo+Cj4gSHRoLAo+Cj4gTmljawo+Cj4gWzFdIGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvbWluaS9ndWlkZS1wcm94aWVzLmh0bWwKPgo+IE5pY2sgU3RvbHdpamsKPgo+IH5+fiBUcnkgdG8gbGVhdmUgdGhpcyB3b3JsZCBhIGxpdHRsZSBiZXR0ZXIgdGhhbiB5b3UgZm91bmQgaXQgYW5kLCB3aGVuCj4geW91ciB0dXJuIGNvbWVzIHRvIGRpZSwgeW91IGNhbiBkaWUgaGFwcHkgaW4gZmVlbGluZyB0aGF0IGF0IGFueSByYXRlIHlvdQo+IGhhdmUgbm90IHdhc3RlZCB5b3VyIHRpbWUgYnV0IGhhdmUgZG9uZSB5b3VyIGJlc3Qgfn5+Cj4KPiBMb3JkIEJhZGVuLVBvd2VsbAo+Cj4gT24gTW9uLCBOb3YgMjcsIDIwMTcgYXQgMTA6MjIgUE0sIFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4KPiB3cm90ZToKPgo+ID4gTXkgY29tbWFuZCAqbXZuIGNsZWFuKiBpcyBub3QgYWJsZSB0byBkb3dubG9hZCBhIG5ldyBhcnRpZmFjdAo+ID4gKm9yZy5hcnF1aWxsaWFuLnVuaXZlcnNlOmFycXVpbGxpYW4tanVuaXQ6cG9tKgo+ID4gaG93ZXZlciBpdCBleGlzdHMgb24gTWF2ZW4gQ2VudHJhbC4KPiA+Cj4gPiBJIHJ1biB0aGUgY29tbWFuZCBvbiBVYnVudHUgS29uc29sZSwgYW5kIG5vdGhpbmcgaXMgZG93bmxvYWRlZC4KPiA+IFdoZW4gSSBydW4gd2dldCBbMV0gZnJvbSB0aGUgc2FtZSBLb25zb2xlLCB0aGUgUE9NIGlzIGRvd25sb2FkZWQuCj4gPgo+ID4gVGhlIHNldHRpbmdzLnhtbCBpcyBub3QgYSBwcm9ibGVtLCBJIGNoZWNrZWQuIFRoZXJlIGlzIGEgbWlycm9yIG9mCj4gY2VudHJhbAo+ID4gYW5kIFVSTCBvZiBOZXh1cyBpbiBjb21wYW55Lgo+ID4KPiA+IElzIHRoZXJlIGFueSBuYXRpdmUgZGlmZmVyZW5jZSBiZXR3ZWVuIHdnZXQgYW5kIG12bi9KYXZhIG9uIFVidW50dSBzbwo+IHRoYXQKPiA+IHRoZSByZW1vdGUgbWF2ZW5yZXBvIG1heSBub3QgYmUgcmVhY2hlZD8KPiA+IEkgZGlkIHNldHVwIG9mIC9ldGMvZW52aXJvbm1lbnQsIC9ldGMvbmV0d29yay9pbnRlcmZhY2UsIH4vLnByb2ZpbGUgZHVlCj4gdG8KPiA+IHByb3h5LCBETlMsIGh0dHBfbm9fcHJveHksIGV0Yy4gYnV0IG5vdGhpbmcgaGVscHMuCj4gPgo+ID4gQW55IGhpbnQgd291bGQgYmUgaGVscGZ1bCBoZXJlLgo+ID4gTUFWRU4gYW5kIEpBVkFfT1BUUyBpcyBub3Qgc2V0Lgo+ID4KPiA+IFsxXTogd2dldAo+ID4gaHR0cDovL21hdmVucmVwby5hZHMubG9jYWwvbmV4dXMvY29udGVudC9ncm91cHMvcHVibGljLwo+ID4gb3JnL2FycXVpbGxpYW4vYXJxdWlsbGlhbi11bml2ZXJzZS8xLjEuMTMuNy9hcnF1aWxsaWFuLQo+ID4gdW5pdmVyc2UtMS4xLjEzLjcucG9tCj4gPgo+ID4gVGh4Cj4gPiBUaWJvcgo+ID4KPgoKCgotLSAKQ2hlZXJzClRpYm9yCgotLTk0ZWIyYzE0ODBmYTRmZGM4YzA1NWYwZjBjNzktLQoKRnJvbSBkZXYtcmV0dXJuLTEyMzk1NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gU2VwIDExIDA2OjQ3OjI5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzk1NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3QzIyRTFBQjk5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMDY6NDc6MjkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2NDY2OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAwNjo0NzoyOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjQ1NzMgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgU2VwIDIwMTcgMDY6NDc6MjkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2NDU2MSBpbnZva2VkIGJ5IHVpZCA5OSk7IDExIFNlcCAyMDE3IDA2OjQ3OjI4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAxMSBTZXAgMjAxNyAwNjo0NzoyOCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDUxQUY4MTk1MkUxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAwNjo0NzoyOCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuNjI5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuNjI5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9MT1RTT0ZIQVNIPTAuMjUsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z29vZ2xlbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBKSHU4dFA4QVpDRjIgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sIDExIFNlcCAyMDE3IDA2OjQ3OjI2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwteXcwLWYxNjkuZ29vZ2xlLmNvbSAobWFpbC15dzAtZjE2OS5nb29nbGUuY29tIFsyMDkuODUuMTYxLjE2OV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAzNzJBNDVGRENFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAwNjo0NzoyNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC15dzAtZjE2OS5nb29nbGUuY29tIHdpdGggU01UUCBpZCBzNjJzbzE5NjEzMDc0eXdnLjAKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAyMzo0NzoyNiAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z29vZ2xlbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWVRS0pLWS82QkFld0lXUmlpZWRzYzNscjhHRU02ZkF1dUM5Ykh4YWE1cnM9OwogICAgICAgIGI9YmdCWWZXQXJhK3ZraGJZOUc5Uk00SnkvRGVuUXdJVTlpZ2RtTndRYmNFQ1Npd3RNVHVVSVlqcVZGZnA5OE5kbElnCiAgICAgICAgIHRjOWVkaFFKNFRzZDNrcEhPRzFkdE9ueHlaQVpSYzkweGRMdTZObnBRaDBrRVBSck51eGdvLzg4TFRiVHZFT2tENHRrCiAgICAgICAgIE9raVJTNGZwaEtJV2RpQmFndmVKYlc5ZWp0cTJkaER4VGYwRFRTbzdQZHdiT2l0MTJPRHFOeWZSMXh1OVdGaUxWK01FCiAgICAgICAgIEJaTXdxUnpWdlZSWVZzTVh3R2s1YTNkV0M3MnYvcStBOURmS3BOcHpOM05mMzNqTlZtUDRONlVycTZOdGR1MjVNOFdtCiAgICAgICAgIDRrUGp2K2pZSHZVb0gwTWxQOUYrU2dYOVErbTBqZHdJSkt6SFAwTkpEQ3B3dW00emJibmJMSmlGTGhnalZmblhNY1pJCiAgICAgICAgIFJVYlE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWVRS0pLWS82QkFld0lXUmlpZWRzYzNscjhHRU02ZkF1dUM5Ykh4YWE1cnM9OwogICAgICAgIGI9TzBZZGpJU2hLTllYRUZURGRnQnNWdnBhNm10b1ZEaDNsRzc1S2xkVGlGQU9neDZSbVd1YU4rNWg2T3VTa1ZPVDNuCiAgICAgICAgIFZvZTZTNlNTMjJlcGprMUJNWTVoVXo5SnBTNnZqdXRkbE03dDNNeldtRnN2WG5QM1NTWG5FS250VEIzcTM0Z1JFbjNpCiAgICAgICAgIHVtNHR0MVdSRGZMelVCenVkMys1WnN4ZWRQWEZGdEdoYlNlM25EdUFjV0laRFp2OThpdVh3Ulp1QjZxVTAwK0ptdWVUCiAgICAgICAgIDlvOUlaanU2bkZWUzNBN2pxbVhLSGJEWXpJM2kwaXhoVlV3T1NzSmhsaE9JRFgvSXQ5MGUyNC9BM3RqKzhKelU4aTFtCiAgICAgICAgIGZ2WnBUNU5IOTl5bDZPVFFWa2Rob0laWXNaZ1BLMy9RR09TY0pYVEEwTVZRQmswS3ZBbGZBbWJmM0oxWDJYR1RiOWtJCiAgICAgICAgIExqNFE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWdtWXIrc3lOTTllTkgwNnVSamZHTUhIclB5T3d6Q1RQMHFuZ0FyeWVydTFabFRrVnVSCgl6azdYQUVyYk5MS2ZUVE5NU0pmSSs4Nk9WQXhQakE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQURLQ05iN2JjYXkxdXBOaThzOG5LUjJ6STZmTW9CMmFCVXZBeWtEajErcWlKOXNvcC91elBsU3p2VW9HS28rT0NvRlZQSVVyVk13bi9mNlBkVWlWMDBpVDFwOD0KWC1SZWNlaXZlZDogYnkgMTAuMTI5LjExNC42OSB3aXRoIFNNVFAgaWQgbjY2bXI4NzYwNDMyeXdjLjQxOC4xNTA1MTEyNDQ1NTcwOwogU3VuLCAxMCBTZXAgMjAxNyAyMzo0NzoyNSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTI5LjE1Ny4xOTggd2l0aCBIVFRQOyBTdW4sIDEwIFNlcCAyMDE3IDIzOjQ3OjI1IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgpGcm9tOiBUaWJvciBEaWdhbmEgPHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbT4KRGF0ZTogTW9uLCAxMSBTZXAgMjAxNyAwODo0NzoyNSArMDIwMApNZXNzYWdlLUlEOiA8Q0FLdVZ6QlI1RURrVCtqbWIzcGVCZmtya2F2eXZpeWVGUkNtbVlvZ083WDdpSD1LLWFRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQ3MzljYWFhNTRhYjA1NThlNDRjMTciCgotLTAwMWExMTQ3MzljYWFhNTRhYjA1NThlNDRjMTcKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCisxOgozLjUuMSB3b3JrcyBpbiBteSBwcm9qZWN0IGxpa2UgYSBjaGFybSA7LSkKCk9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDU6MzkgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgPApzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKCj4gSGksCj4KPiBXZSBzb2x2ZWQgMjUgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiB2ZXJzaW9uPTEyMzM4OTY0JnN0eWxlTmFtZT1UZXh0JnByb2plY3RJZD0xMjMxNjkyMgo+Cj4gVGhlcmUgYXJlIDM1MCBpc3N1ZXMgbGVmdCBpbiBKSVJBIGZvciBNYXZlbiBjb3JlOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJQo+IDNEJTIwTU5HJTIwQU5EJTIwcmVzb2x1dGlvbiUyMCUzRCUyMFVucmVzb2x2ZWQlMjBPUkRFUiUKPiAyMEJZJTIwZHVlJTIwQVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwY3JlYXRlZCUyMEFTQwo+Cj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjQvCj4KPiBUaGUgZGlzdHJpYnV0YWJsZSBiaW5hcmllcyBhbmQgc291cmNlcyBjYW4gYmUgZm91bmQgaGVyZToKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xLwo+Cj4gU3BlY2lmaWNhbGx5IHRoZSB6aXAsIHRhcmJhbGwgYW5kIHNvdXJjZSBhcmNoaXZlcyBjYW4gYmUgZm91bmQgaGVyZToKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1iaW4uemlwCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtYmluLnRhci5nego+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy56aXAKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1zcmMudGFyLmd6Cj4KPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5neiBzaGExOiA5ZWI4MjFmMTUzYzc2NjcxOTRhYTExY2NkMDk5YjcKPiBiZDIwNTk1NjBkCj4gYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy56aXA6IHNoYTE6IDEyMWQ1NGIwNDUzODBhOGE0ODk1ZWIxMzc5NzBhYjY5ZTY5OGViMGUKPgo+IEdpdCB0YWc6Cj4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9bWF2ZW4uZ2l0O2E9Y29tbWl0O2g9Cj4gMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMwo+Cj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9jb21wb25lbnRzL3JlZi8zLUxBVEVTVC8KPgo+IFZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCj4KPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPgo+IFRoYW5rcywKPgo+IFN0ZXBoZW4uCj4KCgoKLS0gCkNoZWVycwpUaWJvcgoKLS0wMDFhMTE0NzM5Y2FhYTU0YWIwNTU4ZTQ0YzE3LS0KCkZyb20gZGV2LXJldHVybi0xMjQ3MjQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIERlYyAgMyAxNjoyMzoxMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3MjQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOTEyQUExMDBCNAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sICAzIERlYyAyMDE3IDE2OjIzOjExICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTQxNjEgaW52b2tlZCBieSB1aWQgNTAwKTsgMyBEZWMgMjAxNyAxNjoyMzoxMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTQwODMgaW52b2tlZCBieSB1aWQgNTAwKTsgMyBEZWMgMjAxNyAxNjoyMzoxMSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk0MDcxIGludm9rZWQgYnkgdWlkIDk5KTsgMyBEZWMgMjAxNyAxNjoyMzoxMCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMDMgRGVjIDIwMTcgMTY6MjM6MTAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAyMjRDMjFBMDczNwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgIDMgRGVjIDIwMTcgMTY6MjM6MTAgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjg3OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjg3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdvb2dsZW1haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCAxNzJ0WmdnbEZHa00gZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sICAzIERlYyAyMDE3IDE2OjIzOjA4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwteWIwLWYxNzcuZ29vZ2xlLmNvbSAobWFpbC15YjAtZjE3Ny5nb29nbGUuY29tIFsyMDkuODUuMjEzLjE3N10pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA2QjE2RjVGMkE5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAgMyBEZWMgMjAxNyAxNjoyMzowOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC15YjAtZjE3Ny5nb29nbGUuY29tIHdpdGggU01UUCBpZCB0MTI3c281NzM0MDE4eWJmLjkKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAwMyBEZWMgMjAxNyAwODoyMzowOCAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z29vZ2xlbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPU1DN1lTWk94NUdkelgxUTZMdFFuZDBPU210c0d6Sm11VkNwWU1VY01MT0k9OwogICAgICAgIGI9UFZaVEN1azlqT0ZwT3JuTU1MTEdIR21GRzdrRW15NDY1b1VhN2ZNU1MrYTRxcFM0UkVla2ljZm9LeXBUamwxNGI3CiAgICAgICAgIEtkTEJFM0pWQUFKaW9IWlQzYWdqdFFhZlM2VHVpaUljZ0d3bEEyOWRRNnIzaDVKcU1kdzF2UFdmcUFWWDBGLzJ0L2xWCiAgICAgICAgIDY4UjZMWDZiTXlRRlUwc0x0VFBYRCs0dHF1SlJSaklpL3U1cytXTWJXaHc5dHpOZWtDVmMvdEhoVldVVVZmNE81UXZwCiAgICAgICAgIFVKQjJkYkNuUW1xa0wrblh2VEZIUmloaXJMY1UxcmpkVEZWWVVzSFRiZk8zeVdmL3pMVW8yeXRENkF2TzRoTlF2allQCiAgICAgICAgIFp0RXV5T011Z0NRaG5BSTNhVSsyemdLa0RNL3NFZm1KTzBIK2c5RXZqcEtFSUZKRnFTVmVGc2ZVNFlIUUt4bEVEWExrCiAgICAgICAgIG8yanc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPU1DN1lTWk94NUdkelgxUTZMdFFuZDBPU210c0d6Sm11VkNwWU1VY01MT0k9OwogICAgICAgIGI9U25DUzlLWjhwWXhPbEN4K0xHeU1PYTZsN3dNWGhSbWxXMWdhZGhNQmQ5Y202R2Z2OXVYYk93QWtXTDlaSk9ZcUl0CiAgICAgICAgIE00ZS9xVUtGVmNUQ2N3cFZhZVpzZXlXQVRKU2VTdllLTGJwSnd5cncvRWdYVmlGcW4rVTcyUngxNzlacUlQYTJLNzFFCiAgICAgICAgIFhoQ21VZFc3VkJHSVc0VHZvYkIyS1pNUWMzekdWZ09GbWdaY0hSQVJKZFFJRkFQUktoc01ubW1ETXhVTmxydHdlU2UrCiAgICAgICAgICtsamZLanJTeUp1c2x2c2phYWI1WDBlbUVQbWowYTRNNjFpY3I4c2hZeTRCbTZrM0JwOGdzcTNDTEdzY0o0VDloaUVYCiAgICAgICAgIHdNaTdrSmpvN3dxRVpzUGJRbys1THBxY1ZaK1lOc1EyVXhuekd4NVdCYjBsaUdLU1dKQi81UlNJaFIzV05veHpERUxhCiAgICAgICAgIHE0YkE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDQwYXFtVkI3c3VGa2lVRmN6YmoxSWdNM3NCVC9JenhuSnNoeFF2WVhVVWdCWGJlbUQ0CglLcGtBTi9GZnhEVkdCRDNpdVEwOVUvYXBZRkpNOGQyaVBESmtMbFE9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1aTmdkZ2pkTzVHYXJxaXBhQnVjbCsweXRucWFXVGxJSzV3MVd0RGFxcFI4eTlkOVlpYTBrOW9VbnZyRExvVkFHQmcvRzBVNk02QVVjZGxIaHVVMzkwPQpYLVJlY2VpdmVkOiBieSAxMC4zNy4xOTkuMTQ1IHdpdGggU01UUCBpZCB3MTM5bXI3NjczMDI0eWJlLjEwNy4xNTEyMzE4MTgyMTY4OwogU3VuLCAwMyBEZWMgMjAxNyAwODoyMzowMiAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTI5LjEyMi4xNTEgd2l0aCBIVFRQOyBTdW4sIDMgRGVjIDIwMTcgMDg6MjM6MDEgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDxDQUNjZWZnZUgtSzdnQUQ0UHFCVnNwWV9VMGt5OHB0MTIzV1loPW9PN28xUGM3cjlkeHdAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQUt1VnpCU1g4eE03M1I1NzdKM0JDTC1ab2VqPXFHd29nM1grZFc0d3lnWmk1UkJwaGdAbWFpbC5nbWFpbC5jb20+CiA8Q0FDY2VmZ2VILUs3Z0FENFBxQlZzcFlfVTBreThwdDEyM1dZaD1vTzdvMVBjN3I5ZHh3QG1haWwuZ21haWwuY29tPgpGcm9tOiBUaWJvciBEaWdhbmEgPHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbT4KRGF0ZTogU3VuLCAzIERlYyAyMDE3IDE3OjIzOjAxICswMTAwCk1lc3NhZ2UtSUQ6IDxDQUt1VnpCUjg0c210NWNuYmM3Q213X212OUZmUXhxZ0JXUzBRKzZrMnhBYitxVlNXeGdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBTdXJlZmlyZSBhdCBKYXZhIDkgYW5kIEphdmEgMTAKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iOTRlYjJjMTQ4MGZhMDkyMDFiMDU1ZjcyMDRiOCIKCi0tOTRlYjJjMTQ4MGZhMDkyMDFiMDU1ZjcyMDRiOApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKTG9vaywgSSBkbyBub3Qgd2FudCB0byBmb3JjZSBvdXIgY29udHJpYnV0b3JzIHRvIHJlbHkgb24gamF2YSA5IG9yIGphdmEgMTAuClRoZXkgY2FuIHVzZSB0aGVpciBkZWZhdWx0IGpkay4KTXkgc3RyYXRlZ3kgaXMgdG8gZmFsbGJhY2sgdG8gZGVmYXVsdCBqZGsgdW5sZXNzIGpkay5ob21lIHN5c3RlbSBwcm9wZXJ0eQppcyBzcGVjaWZpZWQuCkkgYW0gZmluZSB3aXRoIEplbmtpbnMgbXVsdGktYnJhbmNoIGlmIGl0IGZhaWxzIG9uIGphdmEgOSBiZWZvcmUKaW50ZWdyYXRpbmcgYSBicmFuY2ggdG8gbWFzdGVyLgpJdCBoYXBwZW5zIHRoYXQgdGhlIGJyb2tlbiBicmFuY2ggaGFzIHRvIGJlIG92ZXJyaWRkZW4gYnkgYnVpbGQgZml4IGFuZAp0aGVuIHRoZSBzdWNjZXNzIGNhbiBiZSBpbnRlZ3JhdGVkIHRvIG1hc3Rlci4KCk9uIFN1biwgRGVjIDMsIDIwMTcgYXQgNDowMyBQTSwgRW5yaWNvIE9saXZlbGxpIDxlb2xpdmVsbGlAZ21haWwuY29tPiB3cm90ZToKCj4gVGlib3IsCj4gVGhlcmUgYXJlIElUIHRlc3RzIHdoaWNoIGNoZWNrIGZvciBleGFjbHR5IGphdmEuc3BlY2lmaWNhdGlvbi52ZXJzaW9uPTkKPiBIb3cgIGFyZSB3ZSBnb2luZyB0byBkZWFsIHdpdGggdGhlbT8KPiBJdCBzZWVtcyB0aGF0IGEgbmV3IG1ham9yIHJlbGVhc2Ugd2lsbCBhcHBlYXIgIGV2ZXJ5IDYgbW9udGhzCj4gSU1ITyBpdCB3aWxsIGJlIGVub3VnaCB0byBkcm9wIHRoYXQgYXNzZXJ0aW9uCj4KPiBFbnJpY28KPgo+IElsIGRvbSAzIGRpYyAyMDE3LCAxMzoyMSBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+IGhhIHNjcml0dG86Cj4KPiA+IEFzIGRpc2N1c3NlZCBiZWZvcmUgYWJvdXQgSmF2YSA5Lgo+ID4gSSB3aWxsIHRyeSB0byBydW4gU3VyZWZpcmUgaW50ZWdyYXRpb24gdGVzdHMgd2l0aCBKREsgOSBhbmQgMTAgb24gTGludXgKPiBhbmQKPiA+IEkgd2lsbCBhZGQgSkRLIDgvOSB0byBDSSBwaXBlbGluZS4KPiA+IEkgZG8gbm90IGV4cGVjdCBhbnkgYnVncyBoZXJlLiBNYXliZSBvbmx5IGVuYWJsaW5nIHNvbWUgbW9kdWxlcyBmb3IgdGhlCj4gSVRzCj4gPiBpbiB3b3JzdCBjYXNlLgo+ID4KPiA+IFN1cmVmaXJlIHN1cHBvcnRzIEppZ3NhdyBhbHJlYWR5IG5vdyBpbiBvcmlnaW4vbWFzdGVyLgo+ID4KPiA+IFRoZXJlIGFyZSBtb3JlIGltcG9ydGFudCB0d28gb3IgdGhyZWUgYnVncyB3aGVuIERvY2tlciBidWlsZCBjcmFzaGVzIGFuZAo+ID4gdGhpcyBoYXMgdG8gYmUgZml4ZWQgdGlsbCAyLjIxLjAgYXMgd2VsbC4KPiA+Cj4gPiBDaGVlcnMKPiA+IFRpYm9yCj4gPgo+IC0tCj4KPgo+IC0tIEVucmljbyBPbGl2ZWxsaQo+CgoKCi0tIApDaGVlcnMKVGlib3IKCi0tOTRlYjJjMTQ4MGZhMDkyMDFiMDU1ZjcyMDRiOC0tCgpGcm9tIGRldi1yZXR1cm4tMTIzOTY2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBTZXAgMTEgMTA6NTE6MTcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTY2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDNBMTRBMTk1RjkKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAxMDo1MToxNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI1MDg4IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDEwOjUxOjE2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNDk5NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAxMDo1MToxNiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI0OTgxIGludm9rZWQgYnkgdWlkIDk5KTsgMTEgU2VwIDIwMTcgMTA6NTE6MTYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDExIFNlcCAyMDE3IDEwOjUxOjE2ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMTNFQ0MxQTU0MzMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDEwOjUxOjE2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi44NzkKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi44NzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nb29nbGVtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgYzIzUVBSeFZTdVM1IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAxMSBTZXAgMjAxNyAxMDo1MToxMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXl3MC1mMTY5Lmdvb2dsZS5jb20gKG1haWwteXcwLWYxNjkuZ29vZ2xlLmNvbSBbMjA5Ljg1LjE2MS4xNjldKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQTZERjg2MERDNgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMTA6NTE6MTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwteXcwLWYxNjkuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgdjcyc28xODUwMjk1MXl3YS4zCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMDM6NTE6MTEgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdvb2dsZW1haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1TZ2NBTTJGcnpTdGF1ZUVsbjBLQ1MwQ0oyaXZDSGxHQWFMSC9IYjQ4Nmp3PTsKICAgICAgICBiPW5yTTJ3Wk5UZHpPT2FONWh4WVYvM2NrNEhpMWpnQ2h6VnU0ekZ5aXRlT1EyNkFIWUFCdGFLb0VXTmJLQmNDT0x0QgogICAgICAgICBYZ3VtQllpSFc2RU5SZlF4SlJsQTRZcmR1WWNHUGlTRnNjLysrR1VQWlhjZEllQUhZaFZkZS8yQ0tYeW1IV3pPNGpjbwogICAgICAgICA5NUZUeGhNbzlKanJpMDhZekRJK3dXblZhTVhCUzV5eWVCTnhmRmtFeU9USXNDTXczb2h6ZVpiaFcvUm4rWTZNNHpQNwogICAgICAgICBwVTN2YlhEbkJROStIRDhuZnFqaFdrV29BbzFsTUJwZjFJaW5sMGtPR0tLa1N5NDlXcUI2YmRQeXBVR3kzZWZNY1UwVAogICAgICAgICBEVXFmRTV2R1ZqdmlwZE84d2hvbEhZejVSWkR0K0NqOU81NWkvM1ovdHVrQ25QTm4yZGZUc0tCUzlVRXhtOUhwaUVMdQogICAgICAgICBPaG5RPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1TZ2NBTTJGcnpTdGF1ZUVsbjBLQ1MwQ0oyaXZDSGxHQWFMSC9IYjQ4Nmp3PTsKICAgICAgICBiPVRIdUs3YTJzUmNieHl5VVRlMzRGL1hxMXBHWmdpY0R3YWp3eWtiNjYrQ04yZllMa3RJR1FHcVN0UnJGMVJOeFRpVQogICAgICAgICAxblhPWjNPZmZFNUp4S09nWmxwYVluU1lHUnZvRUNOSVFnakNrVm83N3FLbTlOTWlxd0JuUVdlTzlMdEg0ZGQvNnVWSgogICAgICAgICB6VHY1UGw0VS9aSHcwSEZZWDVFSFFIVG91M3lrbjM1VnpBd2xvTERNZlJaZzdkWEZZM051T08rdmFLTXllUTZrTnNKNQogICAgICAgICBBUXFjQ1ZIMDdTeGlucy9Va01XblJMcksxMFZmb2twREhDTURsZ0J2cU1PMktyVm9GVTc2K3F3c2hpbUs1N29LMDBtUAogICAgICAgICBRdzg3ZDNsM0NEUjNRL1h1L0IzNHlKOW9RbVc4d2RPQjR5Q0YwendEYzl3QjJ4d1RCQkFLTTl5Rk0wUE9YUXBiT281cgogICAgICAgICA1WTV3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVpWXZkSXhHSm9UblM5aVRKd1RiREJ3UTFoME9HMGRENW8vSCt4ekc0T2dkT1IzYnBFeQoJYWhURHFET0kwN2JMS082ZmttLzJBcnd2OXorelV3PT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUF6S3U0cFRDcDlaMEM5dlRoT0NydXMxeWZtMzBZd3VzK0c0UVVBSnU1K1l3UWdySWJCTGluYmhRd3Q5KzJKZit2aXdEUUk2VUlvaE9QTHF6M3ZDRjQ9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjM3LjgwLjYgd2l0aCBTTVRQIGlkIGU2bXI5NDgyMDAweWJiLjE2Ny4xNTA1MTI3MDcwNDM1OyBNb24sCiAxMSBTZXAgMjAxNyAwMzo1MToxMCAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTI5LjE1Ny4xOTggd2l0aCBIVFRQOyBNb24sIDExIFNlcCAyMDE3IDAzOjUxOjA5IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0ErblBuTXp3aVRiMFBSZ1l5VHZDR21lenhNQjZkLWZZZW9EYlhXczZSejZqSmlUK0pRQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8ZWZiOTc5NjAtZTFiNy00MjI3LTU5OTgtZGUyYzI0MDE1YmIwQGFwYWNoZS5vcmc+CiA8Q0ErblBuTXc3b2c1Z3JxSlpOeVljM0p5TUpjSD1yY2hTLUdZWURfYU1BdmVBaWNKb1V3QG1haWwuZ21haWwuY29tPgogPDc4YWY5NjU1LTc2YmMtZjU2Yy0yZWI1LTFhZjJjMTIwZjQzZkBhcGFjaGUub3JnPiA8Q0FLdVZ6QlFxNFowYU1YZzZkVzl2eGUzeEJmK2RIRjBTMk5mZEh2TVBERm5lOEhyWXV3QG1haWwuZ21haWwuY29tPgogPDI0Y2MzOGU4LTVjM2EtNjQwMi1jZmZmLTg3NmIzMjRhYTg3MUBnbXguZGU+IDxDQUt1VnpCUndmdit6OUFDd2FzRGZfRm5xQjJvNXc1UjBzZkNHaU5Kd0RnUUs9QU9Ld0FAbWFpbC5nbWFpbC5jb20+CiA8Y2Y4ODFlNTktNjdjMC04NWU3LTFjNDQtODM3ZTUyMWVmNzc5QGFwYWNoZS5vcmc+IDxDQUt1VnpCUy1Ia1ZwX293M1Z6OW03WTA3Y256K0VUTmNxZkFaVmhnVW9UcWlITzNnVUFAbWFpbC5nbWFpbC5jb20+CiA8ODlkMTQzNDUtOWIwMi1lZmU5LTQwZmUtMjIwOWIxZDk3ZDZmQGFwYWNoZS5vcmc+IDxDQUt1VnpCU3hXdzYwcEpTMUUyUVJKQi1jRHdfbTh4dU1EcDA2MjloZkhXVU9NZWdPQlFAbWFpbC5nbWFpbC5jb20+CiA8Q0ErblBuTXhFTGNSUy1yMnp2NFZwS2dfXz1nYVhmU013UnpVVEU4Q3V3c0I9K0ZHNld3QG1haWwuZ21haWwuY29tPiA8Q0ErblBuTXp3aVRiMFBSZ1l5VHZDR21lenhNQjZkLWZZZW9EYlhXczZSejZqSmlUK0pRQG1haWwuZ21haWwuY29tPgpGcm9tOiBUaWJvciBEaWdhbmEgPHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbT4KRGF0ZTogTW9uLCAxMSBTZXAgMjAxNyAxMjo1MTowOSArMDIwMApNZXNzYWdlLUlEOiA8Q0FLdVZ6QlJIT0pWektlLVFVTGtFcTlVM29vTkdrWWJHK050TmhpZDlyZ2lOLTY9MmV3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogVGVzdHMgZm9yIE1ORy02Mjc1IGZhaWwgb24gSmF2YSAxLjcuMF8xNTEtYjAxClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTNlYTI5MDYwMTAyMzA1NThlN2I0NzIiCgotLTAwMWExMTNlYTI5MDYwMTAyMzA1NThlN2I0NzIKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKClNlcnZpY2VMb2FkZXIgaW4gSmF2YSB0YWtlcyBTeXN0ZW0gQ2xhc3NMb2FkZXIgYnkgZGVmYXVsdC4KCk9uIE1vbiwgU2VwIDExLCAyMDE3IGF0IDExOjQxIEFNLCBTdGVwaGVuIENvbm5vbGx5IDwKc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cgo+IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vY29tbWl0LzU0MmE3YTg5MTU2MjYzYjM0ZDE0NzJlOWQ5YzFhMgo+IDc5NWFmY2NkMmQKPgo+IElmIHRoZSBKUkUgZG9lcyBub3QgaGF2ZSBhIFNjcmlwdEVuZ2luZUZhY3RvcnkgdGhlbiB0aGUgdGVzdCBjYW5ub3QgcGFzcyBhcwo+IGl0IHJlbGllcyBvbiB0aGUgYXNzdW1wdGlvbiAoaW52YWxpZCBmb3IgSmF2YSA3KSB0aGF0IHRoZXJlIGlzIGFsd2F5cwo+IGEgU2NyaXB0RW5naW5lRmFjdG9yeSBhdmFpbGFibGUuCj4KPiBZb3UgY2FuIHVzZSB0aGlzIHNtYWxsIGNsYXNzIHRvIGNoZWNrIHlvdXIgSlJFIGZvciAgU2NyaXB0RW5naW5lRmFjdG9yeQo+IGltcGxlbWVudGF0aW9uczoKPgo+IGltcG9ydCBqYXZhLnV0aWwuU2VydmljZUxvYWRlcjsKPgo+IGltcG9ydCBqYXZheC5zY3JpcHQuU2NyaXB0RW5naW5lRmFjdG9yeTsKPgo+IHB1YmxpYyBjbGFzcyBQcm9iZVNjcmlwdEVuZ2luZUZhY3Rvcnkgewo+IHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKPiBTZXJ2aWNlTG9hZGVyPFNjcmlwdEVuZ2luZUZhY3Rvcnk+IHNlZiA9IFNlcnZpY2VMb2FkZXIubG9hZCgKPiBTY3JpcHRFbmdpbmVGYWN0b3J5LmNsYXNzICk7Cj4gU3lzdGVtLm91dC5wcmludGxuKCJCb290IGNsYXNzbG9hZGVyIik7Cj4gU3lzdGVtLm91dC5wcmludGxuKCI9PT09PT09PT09PT09PT09Iik7Cj4gU3lzdGVtLm91dC5wcmludGxuKCk7Cj4gZm9yIChTY3JpcHRFbmdpbmVGYWN0b3J5IGY6IHNlZikgewo+IFN5c3RlbS5vdXQucHJpbnRsbihmLmdldENsYXNzKCkuZ2V0TmFtZSgpKTsKPiB9Cj4gU3lzdGVtLm91dC5wcmludGxuKCk7Cj4gc2VmID0gU2VydmljZUxvYWRlci5sb2FkKCBTY3JpcHRFbmdpbmVGYWN0b3J5LmNsYXNzLAo+IFByb2JlU2NyaXB0RW5naW5lRmFjdG9yeS5jbGFzcy5nZXRDbGFzc0xvYWRlcigpICk7Cj4gU3lzdGVtLm91dC5wcmludGxuKCJNYWluIGNsYXNzbG9hZGVyIik7Cj4gU3lzdGVtLm91dC5wcmludGxuKCI9PT09PT09PT09PT09PT09Iik7Cj4gU3lzdGVtLm91dC5wcmludGxuKCk7Cj4gZm9yIChTY3JpcHRFbmdpbmVGYWN0b3J5IGY6IHNlZikgewo+IFN5c3RlbS5vdXQucHJpbnRsbihmLmdldENsYXNzKCkuZ2V0TmFtZSgpKTsKPiB9Cj4gfQo+IH0KPgo+IEhlcmUgYXJlIHNvbWUgb3V0cHV0czoKPgo+IEFwcGxlIEpWTQo+IC0tLS0tLS0tLS0tLS0tCj4KPiBqYXZhIHZlcnNpb24gIjEuNi4wXzI0Igo+IEphdmEoVE0pIFNFIFJ1bnRpbWUgRW52aXJvbm1lbnQgKGJ1aWxkIDEuNi4wXzI0LWIwNy0zMzQpCj4gSmF2YSBIb3RTcG90KFRNKSA2NC1CaXQgU2VydmVyIFZNIChidWlsZCAxOS4xLWIwMi0zMzQsIG1peGVkIG1vZGUpCj4gQm9vdCBjbGFzc2xvYWRlcgo+ID09PT09PT09PT09PT09PT0KPgo+IGNvbS5zdW4uc2NyaXB0LmphdmFzY3JpcHQuUmhpbm9TY3JpcHRFbmdpbmVGYWN0b3J5Cj4KPiBNYWluIGNsYXNzbG9hZGVyCj4gPT09PT09PT09PT09PT09PQo+Cj4gY29tLnN1bi5zY3JpcHQuamF2YXNjcmlwdC5SaGlub1NjcmlwdEVuZ2luZUZhY3RvcnkKPgo+IE9wZW5KREsgNyB1NjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KPgo+IG9wZW5qZGsgdmVyc2lvbiAiMS43LjAtdTYwLXVub2ZmaWNpYWwiCj4gT3BlbkpESyBSdW50aW1lIEVudmlyb25tZW50IChidWlsZCAxLjcuMC11NjAtdW5vZmZpY2lhbC1iMzApCj4gT3BlbkpESyA2NC1CaXQgU2VydmVyIFZNIChidWlsZCAyNC42MC1iMDksIG1peGVkIG1vZGUpCj4gQm9vdCBjbGFzc2xvYWRlcgo+ID09PT09PT09PT09PT09PT0KPgo+Cj4gTWFpbiBjbGFzc2xvYWRlcgo+ID09PT09PT09PT09PT09PT0KPgo+IE9yYWNsZSBKYXZhIDd1ODAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Cj4gamF2YSB2ZXJzaW9uICIxLjcuMF84MCIKPiBKYXZhKFRNKSBTRSBSdW50aW1lIEVudmlyb25tZW50IChidWlsZCAxLjcuMF84MC1iMTUpCj4gSmF2YSBIb3RTcG90KFRNKSA2NC1CaXQgU2VydmVyIFZNIChidWlsZCAyNC44MC1iMTEsIG1peGVkIG1vZGUpCj4gQm9vdCBjbGFzc2xvYWRlcgo+ID09PT09PT09PT09PT09PT0KPgo+IGNvbS5zdW4uc2NyaXB0LmphdmFzY3JpcHQuUmhpbm9TY3JpcHRFbmdpbmVGYWN0b3J5Cj4KPiBNYWluIGNsYXNzbG9hZGVyCj4gPT09PT09PT09PT09PT09PQo+Cj4gY29tLnN1bi5zY3JpcHQuamF2YXNjcmlwdC5SaGlub1NjcmlwdEVuZ2luZUZhY3RvcnkKPgo+IEF6dWwncyBadWx1IDd1MTU0Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPgo+IG9wZW5qZGsgdmVyc2lvbiAiMS43LjBfMTU0Igo+IE9wZW5KREsgUnVudGltZSBFbnZpcm9ubWVudCAoWnVsdSA3LjIwLjAuMy1saW51eDY0KSAoYnVpbGQgMS43LjBfMTU0LWIwMSkKPiBPcGVuSkRLIDY0LUJpdCBTZXJ2ZXIgVk0gKFp1bHUgNy4yMC4wLjMtbGludXg2NCkgKGJ1aWxkIDI0LjE1NC1iMDEsIG1peGVkCj4gbW9kZSkKPiBCb290IGNsYXNzbG9hZGVyCj4gPT09PT09PT09PT09PT09PQo+Cj4KPiBNYWluIGNsYXNzbG9hZGVyCj4gPT09PT09PT09PT09PT09PQo+Cj4gT3JhY2xlIEphdmEgOHUxMzEKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4KPiBqYXZhIHZlcnNpb24gIjEuOC4wXzEzMSIKPiBKYXZhKFRNKSBTRSBSdW50aW1lIEVudmlyb25tZW50IChidWlsZCAxLjguMF8xMzEtYjExKQo+IEphdmEgSG90U3BvdChUTSkgNjQtQml0IFNlcnZlciBWTSAoYnVpbGQgMjUuMTMxLWIxMSwgbWl4ZWQgbW9kZSkKPiBCb290IGNsYXNzbG9hZGVyCj4gPT09PT09PT09PT09PT09PQo+Cj4gamRrLm5hc2hvcm4uYXBpLnNjcmlwdGluZy5OYXNob3JuU2NyaXB0RW5naW5lRmFjdG9yeQo+Cj4gTWFpbiBjbGFzc2xvYWRlcgo+ID09PT09PT09PT09PT09PT0KPgo+IGpkay5uYXNob3JuLmFwaS5zY3JpcHRpbmcuTmFzaG9yblNjcmlwdEVuZ2luZUZhY3RvcnkKPgo+Cj4gTm93IElJVUMsIE5hc2hvcm4gaXMgcGFydCBvZiBKYXZhIDggYnV0IFJoaW5vIHdhcyBub3QgcmVxdWlyZWQgYXMgcGFydCBvZgo+IEphdmEgNywgaGVuY2UgZnJvbSBKYXZhIDggb253YXJkcyB0aGVyZSBzaG91bGQgYWx3YXlzIGJlIGEKPiBTY3JpcHRFbmdpbmVGYWN0b3J5LCBidXQgbm90IGV2ZXJ5IEphdmEgNyB3YXMgcmVxdWlyZWQgdG8gaGF2ZSBvbmUuCj4KPiBPbiAxMCBTZXB0ZW1iZXIgMjAxNyBhdCAxNDo1OCwgU3RlcGhlbiBDb25ub2xseSA8Cj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiA+IE1pZ2h0IGp1c3QgYmUgdGhlIHRlc3QgaXMgbG9va2luZyBmb3IgYW4gaW1wbGVtZW50YXRpb24gY2xhc3Mgbm90Cj4gPiBhdmFpbGFibGUgb24gdGhvc2UganJlcy4gRG8geW91IGhhdmUgdGhlIGZhaWx1cmUgbWVzc2FnZXMKPiA+Cj4gPiBPbiBTdW4gMTAgU2VwIDIwMTcgYXQgMjI6MjksIFRpYm9yIERpZ2FuYSA8dGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tPgo+ID4gd3JvdGU6Cj4gPgo+ID4+IFlvdSB0aGluayBpdCBoYXMgdG8gZG8geW91IHRoZSBjb21taXQgZml4aW5nIENsYXNzIExvYWRlciBpc3N1ZSBvciB0aGUKPiA+PiBwcmV2aW91cyBjb21taXRzIGFzIHdlbGw/Cj4gPj4KPiA+PiBPbiBTdW4sIFNlcCAxMCwgMjAxNyBhdCAxMToyMyBQTSwgTWljaGFlbCBPc2lwb3YgPG1pY2hhZWxvQGFwYWNoZS5vcmc+Cj4gPj4gd3JvdGU6Cj4gPj4KPiA+PiA+IEFtIDIwMTctMDktMTAgdW0gMjM6MTkgc2NocmllYiBUaWJvciBEaWdhbmE6Cj4gPj4gPgo+ID4+ID4+IERlZmluaXRlbHkgSSBhZ3JlZSEKPiA+PiA+PiBMZXQncyBzZWUgaWYgaXQgaXMgSkRLIGlzc3VlIG9yIHBsYXRmb3JtIGlzc3VlLiBMZXQncyBleGNsdWRlIE9yYWNsZQo+ID4+IEphdmEKPiA+PiA+PiBzdXNwaWNpb24gYW5kIHRoZW4gaXQncyBzZXJpb3VzIGlzc3VlLgo+ID4+ID4+Cj4gPj4gPgo+ID4+ID4gTm90IGEgcGxhdGZvcm0gb25lLiBSZXByb2R1Y2VkIG9uIFdpbmRvd3MgMTAgd2l0aCBadWx1IDcgVXBkYXRlIDE1NC4gSQo+ID4+ID4gd2lsbCBkb3dubG9hZCBPcmFjbGEgSmF2YSA3IGZyb20gTU9TQyBhbmQgdGVzdCBhZ2Fpbi4gSSBhbSBwcmV0dHkgc3VyZQo+ID4+IHRoYXQKPiA+PiA+IGl0IHdpbGwgZmFpbCB0b28uCj4gPj4gPgo+ID4+ID4KPiA+PiA+IE9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDExOjE3IFBNLCBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZwo+ID4KPiA+PiA+PiB3cm90ZToKPiA+PiA+Pgo+ID4+ID4+IEFtIDIwMTctMDktMTAgdW0gMjM6MTUgc2NocmllYiBUaWJvciBEaWdhbmE6Cj4gPj4gPj4+Cj4gPj4gPj4+IFRoaXMgb25lIDEuNy4wXzgwIHdoaWNoIGlzIDd1ODA6Cj4gPj4gPj4+PiBodHRwOi8vd3d3Lm9yYWNsZS5jb20vdGVjaG5ldHdvcmsvamF2YS9qYXZhc2UvZG93bmxvYWRzLwo+ID4+ID4+Pj4gamF2YS1hcmNoaXZlLWRvd25sb2Fkcy1qYXZhc2U3LTUyMTI2MS5odG1sCj4gPj4gPj4+Pgo+ID4+ID4+Pj4KPiA+PiA+Pj4gTm8gb25lIHdpbGwgc2VyaW91c2x5IHJ1biB0aGlzIG9uZS4gU28gaWYgd2Ugc2F5IHRoYXQgb3VyIHN0dWZmIHJ1bnMKPiA+PiBvZmYKPiA+PiA+Pj4gNwo+ID4+ID4+PiB0aGVuIHdlIGhhdmUgdG8gdGVzdCBPcGVuSkRLIGFuZCBadWx1IHRvby4KPiA+PiA+Pj4KPiA+PiA+Pj4gTWljaGFlbAo+ID4+ID4+Pgo+ID4+ID4+Pgo+ID4+ID4+PiBPbiBTdW4sIFNlcCAxMCwgMjAxNyBhdCAxMToxMiBQTSwgTWljaGFlbCBPc2lwb3YgPG1vc2lwb3ZAZ214LmRlPgo+ID4+IHdyb3RlOgo+ID4+ID4+Pgo+ID4+ID4+Pj4KPiA+PiA+Pj4+IEFtIDIwMTctMDktMTAgdW0gMjM6MDcgc2NocmllYiBUaWJvciBEaWdhbmE6Cj4gPj4gPj4+Pgo+ID4+ID4+Pj4+Cj4gPj4gPj4+Pj4gTWljaGFlbCwgbm93IHRyeSB3aXRoIE9yYWNsZSBKYXZhIDcuCj4gPj4gPj4+Pj4KPiA+PiA+Pj4+Pj4KPiA+PiA+Pj4+Pj4KPiA+PiA+Pj4+Pj4gTGFzdCBwdWJsaWMgdmVyc2lvbiBvciB1cC10by1kYXRlIHBhaWQgdmVyc2lvbj8KPiA+PiA+Pj4+Pgo+ID4+ID4+Pj4+IE9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDExOjAyIFBNLCBNaWNoYWVsIE9zaXBvdiA8Cj4gPj4gbWljaGFlbG9AYXBhY2hlLm9yZz4KPiA+PiA+Pj4+Pgo+ID4+ID4+Pj4+IHdyb3RlOgo+ID4+ID4+Pj4+Pgo+ID4+ID4+Pj4+PiBBbSAyMDE3LTA5LTEwIHVtIDIyOjI3IHNjaHJpZWIgU3RlcGhlbiBDb25ub2xseToKPiA+PiA+Pj4+Pj4KPiA+PiA+Pj4+Pj4KPiA+PiA+Pj4+Pj4+IFdlbGwgSSByYW4gdGhlIHJlbGVhc2Ugd2l0aCAxLjcuMF84MCB3aGljaCBpaXJjIGlzIHRoZSBsYXN0Cj4gcHVibGljCj4gPj4gPj4+Pj4+Pgo+ID4+ID4+Pj4+Pj4gcmVsZWFzZQo+ID4+ID4+Pj4+Pj4+IG9mIE9yYWNsZSBKYXZhIDcuLi4KPiA+PiA+Pj4+Pj4+Pgo+ID4+ID4+Pj4+Pj4+Cj4gPj4gPj4+Pj4+Pj4gRmFpbHMgYWxzbyBvbiBXaW5kb3dzIHdpdGggWnVsdSA3Ogo+ID4+ID4+Pj4+Pj4+Cj4gPj4gPj4+Pj4+PiAkIG12biAtdgo+ID4+ID4+Pj4+Pj4gQXBhY2hlIE1hdmVuIDMuNS4wIChmZjhmNWU3NDQ0MDQ1NjM5YWY2NWY2MDk1YzYyMjEwYjU3MTNmNDI2Owo+ID4+ID4+Pj4+Pj4gMjAxNy0wNC0wM1QyMTozOTowNiswMjowMCkKPiA+PiA+Pj4+Pj4+IE1hdmVuIGhvbWU6IEQ6XEVudHdpY2tsdW5nXFByb2dyYW1tZVxhcGFjaGUtbWF2ZW4tMy41LjAKPiA+PiA+Pj4+Pj4+IEphdmEgdmVyc2lvbjogMS43LjBfMTU0LCB2ZW5kb3I6IEF6dWwgU3lzdGVtcywgSW5jLgo+ID4+ID4+Pj4+Pj4gSmF2YSBob21lOiBDOlxQcm9ncmFtIEZpbGVzXFp1bHVcenVsdS03XGpyZQo+ID4+ID4+Pj4+Pj4gRGVmYXVsdCBsb2NhbGU6IGRlX0RFLCBwbGF0Zm9ybSBlbmNvZGluZzogQ3AxMjUyCj4gPj4gPj4+Pj4+PiBPUyBuYW1lOiAid2luZG93cyAxMCIsIHZlcnNpb246ICIxMC4wIiwgYXJjaDogImFtZDY0IiwgZmFtaWx5Ogo+ID4+ID4+Pj4+Pj4gIndpbmRvd3MiCj4gPj4gPj4+Pj4+Pgo+ID4+ID4+Pj4+Pj4KPiA+PiA+Pj4+Pj4+Cj4gPj4gPj4+Pj4+PiBPbiBTdW4gMTAgU2VwIDIwMTcgYXQgMjE6MDgsIE1pY2hhZWwgT3NpcG92IDwKPiBtaWNoYWVsb0BhcGFjaGUub3JnPgo+ID4+ID4+Pj4+Pj4gd3JvdGU6Cj4gPj4gPj4+Pj4+Pgo+ID4+ID4+Pj4+Pj4KPiA+PiA+Pj4+Pj4+IEZvbGtzLAo+ID4+ID4+Pj4+Pj4+Cj4gPj4gPj4+Pj4+Pj4KPiA+PiA+Pj4+Pj4+PiB0cmllZCBydW5uaW5nIG1hc3RlciBvbgo+ID4+ID4+Pj4+Pj4+PiBNYXZlbiBob21lOiAvdXNyL2xvY2FsL3NoYXJlL2phdmEvbWF2ZW4KPiA+PiA+Pj4+Pj4+Pj4gSmF2YSB2ZXJzaW9uOiAxLjcuMF8xNTEsIHZlbmRvcjogT3JhY2xlIENvcnBvcmF0aW9uCj4gPj4gPj4+Pj4+Pj4+IEphdmEgaG9tZTogL3Vzci9sb2NhbC9vcGVuamRrNy9qcmUKPiA+PiA+Pj4+Pj4+Pj4gRGVmYXVsdCBsb2NhbGU6IGRlX0RFLCBwbGF0Zm9ybSBlbmNvZGluZzogVVRGLTgKPiA+PiA+Pj4+Pj4+Pj4gT1MgbmFtZTogImZyZWVic2QiLCB2ZXJzaW9uOiAiMTEuMS1yZWxlYXNlLXAxIiwgYXJjaDogImkzODYiLAo+ID4+ID4+Pj4+Pj4+PiBmYW1pbHk6Cj4gPj4gPj4+Pj4+Pj4+ICJ1bml4Igo+ID4+ID4+Pj4+Pj4+Pgo+ID4+ID4+Pj4+Pj4+PiBhbmQgSSBnZXQgdGhpczoKPiA+PiA+Pj4+Pj4+Pj4gRmFpbGVkIHRlc3RzOgo+ID4+ID4+Pj4+Pj4+Pgo+ID4+ID4+Pj4+Pj4+Pgo+ID4+ID4+Pj4+Pj4+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X2NvcmVSZWFsbURlZmF1bHRQYXIKPiA+PiA+Pj4+Pj4+Pj4gZW50Q2xhc3NMb2FkZXI6OTkKPiA+PiA+Pj4+Pj4+Pj4gbnVsbAo+ID4+ID4+Pj4+Pj4+Pgo+ID4+ID4+Pj4+Pj4+Pgo+ID4+ID4+Pj4+Pj4+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X2V4dGVuc2lvblJlYWxtRGVmYXUKPiA+PiA+Pj4+Pj4+Pj4gbHRQYXJlbnRDbGFzc0xvYWRlcjo3Mwo+ID4+ID4+Pj4+Pj4+PiBudWxsCj4gPj4gPj4+Pj4+Pj4+Cj4gPj4gPj4+Pj4+Pj4+Cj4gPj4gPj4+Pj4+Pj4+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfbWF2ZW5BcGlSZWFsbURlZmF1bAo+ID4+ID4+Pj4+Pj4+PiB0UGFyZW50Q2xhc3NMb2FkZXI6OTEKPiA+PiA+Pj4+Pj4+Pj4gbnVsbAo+ID4+ID4+Pj4+Pj4+Pgo+ID4+ID4+Pj4+Pj4+Pgo+ID4+ID4+Pj4+Pj4+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X3BsdWdpblJlYWxtRGVmYXVsdFAKPiA+PiA+Pj4+Pj4+Pj4gYXJlbnRDbGFzc0xvYWRlcjo2Mgo+ID4+ID4+Pj4+Pj4+PiBudWxsCj4gPj4gPj4+Pj4+Pj4+Cj4gPj4gPj4+Pj4+Pj4+Cj4gPj4gPj4+Pj4+Pj4+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfcHJvamVjdFJlYWxtRGVmYXVsdAo+ID4+ID4+Pj4+Pj4+PiBQYXJlbnRDbGFzc0xvYWRlcjo4Mwo+ID4+ID4+Pj4+Pj4+PiBudWxsCj4gPj4gPj4+Pj4+Pj4+Cj4gPj4gPj4+Pj4+Pj4+IEFsbCB0ZXN0cyBmYWlsIHdpdGggImp1bml0LmZyYW1ld29yay5Bc3NlcnRpb25GYWlsZWRFcnJvcjoKPiA+PiBudWxsIi4KPiA+PiA+Pj4+Pj4+Pj4KPiA+PiA+Pj4+Pj4+Pj4gUnVubmluZyB3aXRoCj4gPj4gPj4+Pj4+Pj4+IE1hdmVuIGhvbWU6IC91c3IvbG9jYWwvc2hhcmUvamF2YS9tYXZlbgo+ID4+ID4+Pj4+Pj4+PiBKYXZhIHZlcnNpb246IDEuOC4wXzE0NCwgdmVuZG9yOiBPcmFjbGUgQ29ycG9yYXRpb24KPiA+PiA+Pj4+Pj4+Pj4gSmF2YSBob21lOiAvdXNyL2xvY2FsL29wZW5qZGs4L2pyZQo+ID4+ID4+Pj4+Pj4+PiBEZWZhdWx0IGxvY2FsZTogZGVfREUsIHBsYXRmb3JtIGVuY29kaW5nOiBVVEYtOAo+ID4+ID4+Pj4+Pj4+PiBPUyBuYW1lOiAiZnJlZWJzZCIsIHZlcnNpb246ICIxMS4xLXJlbGVhc2UtcDEiLCBhcmNoOiAiaTM4NiIsCj4gPj4gPj4+Pj4+Pj4+IGZhbWlseToKPiA+PiA+Pj4+Pj4+Pj4gInVuaXgiCj4gPj4gPj4+Pj4+Pj4+Cj4gPj4gPj4+Pj4+Pj4+IHdvcmtzIGZsYXdsZXNzbHkuCj4gPj4gPj4+Pj4+Pj4+Cj4gPj4gPj4+Pj4+Pj4+IEFueSBpZGVhcz8KPiA+PiA+Pj4+Pj4+Pj4KPiA+PiA+Pj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gPj4+Pj4+Pj4+IC0tLS0tLS0tLQo+ID4+ID4+Pj4+Pj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4+Pj4+Pj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPj4+Pj4+Pj4+Cj4gPj4gPj4+Pj4+Pj4+IC0tCj4gPj4gPj4+Pj4+Pj4+Cj4gPj4gPj4+Pj4+Pj4+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4+ID4+Pj4+Pj4+Pgo+ID4+ID4+Pj4+Pj4+Pgo+ID4+ID4+Pj4+Pj4+Cj4gPj4gPj4+Pj4+Pj4KPiA+PiA+Pj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiA+Pj4+Pj4+PiAtLS0tLS0tLS0KPiA+PiA+Pj4+Pj4+Pgo+ID4+ID4+Pj4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+Pj4+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+Pj4+Pj4+Cj4gPj4gPj4+Pj4+Pgo+ID4+ID4+Pj4+Pj4KPiA+PiA+Pj4+Pj4+Cj4gPj4gPj4+Pj4+Pgo+ID4+ID4+Pj4+Pgo+ID4+ID4+Pj4+Pgo+ID4+ID4+Pj4+Cj4gPj4gPj4+Pgo+ID4+ID4+Pj4KPiA+PiA+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tCj4gPj4gPj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gPj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+Pj4KPiA+PiA+Pj4KPiA+PiA+Pj4KPiA+PiA+Pgo+ID4+ID4+Cj4gPj4gPgo+ID4+Cj4gPj4KPiA+PiAtLQo+ID4+IENoZWVycwo+ID4+IFRpYm9yCj4gPj4KPiA+IC0tCj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+Cj4KCgoKLS0gCkNoZWVycwpUaWJvcgoKLS0wMDFhMTEzZWEyOTA2MDEwMjMwNTU4ZTdiNDcyLS0KCkZyb20gZGV2LXJldHVybi0xMjM4ODgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IFNlcCAgNyAyMTozNDozMyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM4ODgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNEJEMTYxQTY3QgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsICA3IFNlcCAyMDE3IDIxOjM0OjMzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTc2NTAgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBTZXAgMjAxNyAyMTozNDozMiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTc1NjIgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBTZXAgMjAxNyAyMTozNDozMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU3NTQzIGludm9rZWQgYnkgdWlkIDk5KTsgNyBTZXAgMjAxNyAyMTozNDozMiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMDcgU2VwIDIwMTcgMjE6MzQ6MzIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBEQjlBMjFBNzJDMgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgIDcgU2VwIDIwMTcgMjE6MzQ6MzEgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjM3OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjM3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nb29nbGVtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgeURVQ0Y1a3QzanY1IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVGh1LCAgNyBTZXAgMjAxNyAyMTozNDoyNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXl3MC1mMTY5Lmdvb2dsZS5jb20gKG1haWwteXcwLWYxNjkuZ29vZ2xlLmNvbSBbMjA5Ljg1LjE2MS4xNjldKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMTZBRTE1RkUzNAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgIDcgU2VwIDIwMTcgMjE6MzQ6MjUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwteXcwLWYxNjkuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgcjg1c28yNzk3MzU2eXdnLjEKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAwNyBTZXAgMjAxNyAxNDozNDoyNSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z29vZ2xlbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD03djE1YnlqZi85SVpGOCtDNHNHUThzVW8zaDI1bU4zOWFIUE9rUW9HZ3pZPTsKICAgICAgICBiPUpKV0M0U3huZVZoNkU4QU0rbFlRNDRndWg2SGxVS3A1Zk4yTzhxbDhSMXU3TGtwOEo2aEhGSmhEM2lKdXVVaXpMVwogICAgICAgICBRejQrMGlWMW1uVk1kajhWQVgreUdYckwzVFlERnpKSnByTlRNNHUxc3JlcDdUZmNESGNuUmdWOEdTaG55ZnV5YjdGMQogICAgICAgICBTaHpyZnNIZ3RzYVd5SE9uQlpVVlVndFRNNDE1OWhWMEwwTVpnZE5maUNTSzA0M2JIZS9rWFE4MGMrTVQ2Q1FuZGUwSwogICAgICAgICBaSXlOV3I2czhIM1h3cTRVOElLU0ovdU51SHQrWWVJRkVTSlJGZnFBUnQ0NWE0ODY3UDF1ZEVEYzNTOFF1a3ZvaXlLSgogICAgICAgICA3elAzMzhXcXNmMVBRNUY1WitHcllaRFFUYjRNcm14Y0lJdXIyVjRLM1NKbVV5K0c3UTJHUjdNK0RmZGhXL3lNdWs3TwogICAgICAgICB0S3JnPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD03djE1YnlqZi85SVpGOCtDNHNHUThzVW8zaDI1bU4zOWFIUE9rUW9HZ3pZPTsKICAgICAgICBiPVUxRUFBR01CS2NhUWVHbUhwL0dTak1TQ3FlcUhKbUJ5NjFISm1FM1BlaHhTQm51MGo3aG8ybDVpV1Zpd1FNalNHNAogICAgICAgICA2S3liVlZ0QUZHeVN0Y0lwZmdXd21HVG1kWVk4VUFwZ3pOMExkakZJdENQYlhRbncwRXVqZk1LZVVKamVDaEJTSlh1dgogICAgICAgICBLVFZSVlZ5Z2FNcnZCcHdseGZReVV5M3dHMDNGVkcxbzgrdWxobkpvbC9pZWpIOW4ySXl1T0xnSXN2dDlwblptaDJqNAogICAgICAgICB0d3FzZWJsL0RtWHZSUldjYm5WTW9ucitad1kxbm05RVdFbVpNSk5kaWxVMU9jWXFRR2ZUVzZWTnBYT1hPL1k0dmZCTQogICAgICAgICBVeXVNTGdSRGRVdElDaFFGVHZYRjdKV0dqK0FjclVTdnlTdmFLdVhsbVJkVE0rVmJsNkJ1OEhPMFU0bmRGZElNZEUzTgogICAgICAgICBsSU1BPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVod011S3FGSU9qejdhdEZjRFNEYndHRGJUWFF5ZitEeW5XNHFiVTlkVmtUT2FMOE1rcgoJVUo3cmg1R2FJNnB2WXVFejgrc1lneW5nZks4ai9SL0cKWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFES0NOYjR0ZFdiSUswK0Npand6dlRrbnlLV0hoUklhT1gydy9XTHdCOUZldlE2dWhOWW5qeGxhS3RhblNLc0Y0OFVacWFWK0I1eW5NVmlyUHR3MHFSOUloRkE9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjM3LjEwNy43OCB3aXRoIFNNVFAgaWQgbzE0bXI2ODExNzZ5Ym0uNTEuMTUwNDgyMDA1NzkyNTsgVGh1LAogMDcgU2VwIDIwMTcgMTQ6MzQ6MTcgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjEyOS4xNTcuMTk4IHdpdGggSFRUUDsgVGh1LCA3IFNlcCAyMDE3IDE0OjM0OjE3IC0wNzAwIChQRFQpCkZyb206IFRpYm9yIERpZ2FuYSA8dGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tPgpEYXRlOiBUaHUsIDcgU2VwIDIwMTcgMjM6MzQ6MTcgKzAyMDAKTWVzc2FnZS1JRDogPENBS3VWekJSSzVLaEVTVFBMdGdlNWN5QzlHdTgrY1c3Tjg0Tk8zK0h5bzd0alA3KzZWQUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogV2FudCB0byBjdXQgcmVsZWFzZSBWZXJzaW9uIDIuMjAuMSBpbiBTdXJlZmlyZSBwcm9qZWN0ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjA4OWUwODI2NzVjODAwZWUyNjA1NThhMDM5OWEiCgotLTA4OWUwODI2NzVjODAwZWUyNjA1NThhMDM5OWEKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCkhpIEFsbCwKCkkgd291bGQgbGlrZSB0byBzdG9wIGRldmVsb3BtZW50IGluIFN1cmVmaXJlIG1hc3RlciB0aWxsIFZlcnNpb24gMi4yMC4xIFsxXQppcyByZWxlYXNlZC4gVGhlIHJlYXNvbiBpcyB0aGF0IGFuIGltcG9ydGFudCBpc3N1ZSB3aXRoIE91dCBPZiBNZW1vcnkgRXJyb3IKaXMgZml4ZWQuCgpJIGhhdmUgcGxhbm5lZCBvbmx5IDUgc2ltcGxlIGZpeGVzLCB0aGUgbW9zdCBvZiB0aGVtIG9mZmVyZWQgYnkgb3VyCmNvbnRyaWJ1dG9ycywgaW4gVmVyc2lvbiAyLjIwLjIsIGFuZCBvbmUgaW1wb3J0YW50IGlzc3VlIGluIDIuMjAuMy4KClsxXToKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPXByb2plY3QlMjAlM0QlMjBTVVJFRklSRSUyMEFORCUyMGZpeFZlcnNpb24lMjAlM0QlMjAyLjIwLjEKCgotLSAKQ2hlZXJzClRpYm9yCgotLTA4OWUwODI2NzVjODAwZWUyNjA1NThhMDM5OWEtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDcwNi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgRGVjICAyIDEwOjQyOjIzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDcwNi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyNUQ3NzE3NTFDCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDIgRGVjIDIwMTcgMTA6NDI6MjMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5MTUwNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIERlYyAyMDE3IDEwOjQyOjIyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MTQyMyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIERlYyAyMDE3IDEwOjQyOjIyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTE0MTIgaW52b2tlZCBieSB1aWQgOTkpOyAyIERlYyAyMDE3IDEwOjQyOjIyIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDAyIERlYyAyMDE3IDEwOjQyOjIyICswMDAwClJlY2VpdmVkOiBmcm9tIG1haWwteXcwLWYxNzQuZ29vZ2xlLmNvbSAobWFpbC15dzAtZjE3NC5nb29nbGUuY29tIFsyMDkuODUuMTYxLjE3NF0pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCAxRkJEOTFBMDBFMAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDIgRGVjIDIwMTcgMTA6NDI6MjEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwteXcwLWYxNzQuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgbDdzbzUwMTAyMzV5d2EuMTMKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAwMiBEZWMgMjAxNyAwMjo0MjoyMSAtMDgwMCAoUFNUKQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDV2eEtKcXZqYVVWV3hRLzVqRlZiZ1BYdzlNbUZsOEFFa1FlRDJHOXB0YjB2MlBFRVhRCglMc3dxU0ZxNzIxVjlhUlFoeUhKMXlhVEc3OXRrUEYweU9FWGhScU09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1iR1pIMFlwQ2FadE5ua3A5M3V0UGhTNVZqSFc3WGliRDhpcnpQc2R3U0NKZ1hMYi8xeGdwUDB5NjVMZ2kvYUUycmd0cDB5M0crbTFwUm9tTlZpV0gwPQpYLVJlY2VpdmVkOiBieSAxMC4xMjkuOTQuNjggd2l0aCBTTVRQIGlkIHM2NW1yNTg2NTc1Mnl3Yi43My4xNTEyMjExMzQwMTUxOwogU2F0LCAwMiBEZWMgMjAxNyAwMjo0MjoyMCAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTI5LjEyMi4xNTEgd2l0aCBIVFRQOyBTYXQsIDIgRGVjIDIwMTcgMDI6NDI6MTkgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDxDQStuUG5NeTlraUx2Q3NtRVdaZnhEdkJNX25qMUowakc3NGl0ZmJKNVdFdWl4QXAtM3dAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQStuUG5NdzBzV2cxb0pQOVA1VG5ycWJncFFTY1dlQTBtOFppMlNhOE1DYjAxZ2U5V3dAbWFpbC5nbWFpbC5jb20+CiA8Q0FLdVZ6QlEwYTZKODBUdCtNSGRkV1R3U2RyKy15X3RhV3VMUDYxdz1veGJ0TXMyeVhnQG1haWwuZ21haWwuY29tPiA8Q0ErblBuTXk5a2lMdkNzbUVXWmZ4RHZCTV9uajFKMGpHNzRpdGZiSjVXRXVpeEFwLTN3QG1haWwuZ21haWwuY29tPgpGcm9tOiBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+CkRhdGU6IFNhdCwgMiBEZWMgMjAxNyAxMTo0MjoxOSArMDEwMApYLUdtYWlsLU9yaWdpbmFsLU1lc3NhZ2UtSUQ6IDxDQUt1VnpCUk13NzgrX2t2PVNTc3p5Sjd2YTAtYmNNSkNaZmV2cXBWeG49VWp1aDZ0aUFAbWFpbC5nbWFpbC5jb20+Ck1lc3NhZ2UtSUQ6IDxDQUt1VnpCUk13NzgrX2t2PVNTc3p5Sjd2YTAtYmNNSkNaZmV2cXBWeG49VWp1aDZ0aUFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBSRSBzd2l0Y2hpbmcgc3VyZWZpcmUgdG8gdGhlIHN0YW5kYXJkIGJ1aWxkClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQ5MjI3NGMxNTE5ZjA1NWY1OTIzY2UiCgotLTAwMWExMTQ5MjI3NGMxNTE5ZjA1NWY1OTIzY2UKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT25lIGZ1bmN0aW9uIGluIEplbmtpbnNmaWxlIGlzIHNpY2suCkl0IGlzIHB1cmUgYnVyZWF1Y3JhY3kgd2hlcmUgdGhlIEplbmtpbnNmaWxlIGJlY29tZXMgYSBiZXRvbi4KVGhlcmUgaXMgbm8gZnJlZWRvbSBmb3IgZGV2ZWxvcGVycyBpbiBKZW5raW5zZmlsZSBpbiB0aGF0IGNhc2UuCgpUaGUgYnVpbGQgZG9lcyBub3QgbmVlZCB0byBoYXZlIEphdmEgOS4gSXQncyBub3QgdGhlIHJlYXNvbiB0byBpbnZlc3QKZWZmb3J0LiBJIGludmVzdCBlZmZvcnQgdG8gSmlnc2F3IHN1cHBvcnQsIEpVbml0NSBhbmQgMy4wLgpJdCBpcyBxdWl0ZSBhIGxvdCBvZiB3b3JrLgpEbyBub3QgdHJ5IHRvIHNlZSBpdCBmcm9tIG9uZSBkaXJlY3Rpb24gb25seS4KCk9uIFNhdCwgRGVjIDIsIDIwMTcgYXQgMTE6MjMgQU0sIFN0ZXBoZW4gQ29ubm9sbHkgPApzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKCj4gT24gU2F0IDIgRGVjIDIwMTcgYXQgMTA6MDMsIFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4gd3JvdGU6Cj4KPiA+IFBscyBkbyBub3QgZG8gaXQhCj4gPiBJIHdhbnQgdG8gaGF2ZSBpdCB1bmRlciBjb250cm9sIGluIEplbmtpbnNmaWxlIGFuZCBub3QgdG8gc2hhcmUgdGhlIGNvZD0KZQo+ID4gd2l0aCBvdGhlciBwcm9qZWN0cy4KPgo+Cj4gSSBkbyBub3Qgc2VlIHRoYXQgeW91IGFjdHVhbGx5IGhhdmUgYW55dGhpbmcgdGhhdCBuZWVkcyBhIGN1c3RvbSBidWlsZC4KPgo+IFdlIGNhbiBhZGQgY29kZSBjb3ZlcmFnZSB0byB0aGUgdGVtcGxhdGUuCj4KPiBUaGUgb25seSByZXBvIEkgc2VlIHdpdGggcmVhc29uYWJsZSBleGN1c2VzIGZvciBhIGN1c3RvbSBKZW5raW5zZmlsZSBpcyB0PQpoZQo+IGNvcmUgTWF2ZW4gaXRzZWxmLi4uIGFuZCB0aGF0PUUyPTgwPTk5cyBvbmx5IGJlY2F1c2Ugb2YgdGhlIGNvcmUgaW50ZWdyYXQ9CmlvbiB0ZXN0cy4KPgo+Cj4gPiBTdXJlZmlyZSBwcm9qZWN0IGlzIGRpZmZlcmVudCBhbmQgaXQgbXVzdCBiZSBzdGlsbCBkaWZmZXJlbnQuCj4KPgo+IENlcnRhaW5seSB5b3UgaGF2ZSBtb3ZlZCB0aGUgYnVpbGQgdGhhdCB3YXkuLi4gaT1FMj04MD05OWQgTGlrZSB0byBzZWUgZXg9CnBsaWNpdAo+IHJlYXNvbnMgd2h5IHN1cmVmaXJlIGNhbm5vdCB1c2UgdGhlIHN0YW5kYXJkIGJ1aWxkLiBTbm93Zmxha2UgYnVpbGRzIGRvIG49Cm90Cj4gaGVscCBncm93IGNvbW11bml0eS4KPgo+Cj4gPiBJIHNlZSBHcm9vdnkgbGlicmFyaWVzIHVzZWZ1bCBvbmx5IGluIHNpdHVhdGlvbnMgd2hlbiBJIGNhbGwgSHVkc29uIEFQSQo+ID4gZnVuY3Rpb25zIGFuZCBJIG5lZWQgdG8gYXZvaWQgc2VjdXJpdHkgaXNzdWUgb24gdGhlc2UgY2FsbHMgYWZ0ZXIgdXNpbmcKPiA+IHNoYXJlZCBHcm9vdnkgbGlicmFyeSBmb3IgSmVua2lucywgYnV0IG5vdCBpbiBoZXJlIGxpa2Ugb25lIGZ1bmN0aW9uCj4gPiBzdWJzdGl0dXRpbmcgZW50aXJlIGNvbnRlbnQgb2YgSmVua2luc2ZpbGUuCj4KPgo+IFRoZXJlIGFyZSBtYW55IHVzZSBjYXNlcyBmb3Igc2hhcmVkIGxpYnJhcmllcy4gRG8gbm90IGxpbWl0IHlvdXJzZWxmIHRvIG89Cm5lCj4gc21hbGwgKGFuZCBpbiBteSB2aWV3IGFudGlwYXR0ZXJuKSB1c2UgY2FzZQo+Cj4KPiA+Cj4gPiBUCj4gPgo+ID4gT24gVGh1LCBOb3YgMzAsIDIwMTcgYXQgMTA6NTkgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPgo+ID4gPiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL2pvYi9tYXZlbi13aXAvam9iL21hdmVuLXN1cmVmaXJlLwo+ID4gPiBqb2IvbmV3LWplbmtpbnNmaWxlLwo+ID4gPiB0byBzZWUgd2hhdCBpdCdzIGxpa2UuCj4gPiA+Cj4gPiA+IFdlIGNhbiBsb29rIGludG8gYWRkaW5nIGphY29jbyByZXBvcnRpbmcgdG8gdGhlIHN0YW5kYXJkIGJ1aWxkIGlmIGl0ID0KaXMKPiA+ID4gc2VlbiBhcyBpbXBvcnRhbnQKPiA+ID4KPiA+Cj4gLS0KPiBTZW50IGZyb20gbXkgcGhvbmUKPgoKLS0wMDFhMTE0OTIyNzRjMTUxOWYwNTVmNTkyM2NlLS0KCkZyb20gZGV2LXJldHVybi0xMjQxNTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE9jdCAgNyAxMDowMDo0MSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxNTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOERCOTkxMEFFQgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDEwOjAwOjQxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzI0MjYgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBPY3QgMjAxNyAxMDowMDozNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzIzMzIgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBPY3QgMjAxNyAxMDowMDozNiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMyMzIxIGludm9rZWQgYnkgdWlkIDk5KTsgNyBPY3QgMjAxNyAxMDowMDozNiAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwNyBPY3QgMjAxNyAxMDowMDozNiArMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXF0MC1mMTc2Lmdvb2dsZS5jb20gKG1haWwtcXQwLWYxNzYuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNi4xNzZdKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgNjU5NDIxQTAwREYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDEwOjAwOjM0ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXF0MC1mMTc2Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIDM0c28xODQ1NTA4MXF0Yi4xMwogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDA3IE9jdCAyMDE3IDAzOjAwOjM0IC0wNzAwIChQRFQpClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVkNleGliZ3FNa1BsK3htNmwzZHk5N011YkNSbXlCVEpHWlFQcS9PSWc3cW4rNEg5dUwKCUlPMHNqWmw3U2xFeW96UlI4RUNpQkNPS0dGS01UcnV3U2txVnFPMD0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUIrS1ZIWmdKTnFRYlh5WEE1cVU5Uy9LRG1rM0FVbmtjdzI3eVJjcXhObVdVdVZhV2Voak91ZUpPWTNaNFVZaW1Nb1Bldy9DMEV1S1NlVE1xUEtacDA9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjEzLjIxMi4xMzIgd2l0aCBTTVRQIGlkIHcxMjZtcjM2NDUxMzF5d2QuMTY5LjE1MDczNzA0MzMzNjQ7CiBTYXQsIDA3IE9jdCAyMDE3IDAzOjAwOjMzIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xMjkuMTkzLjY3IHdpdGggSFRUUDsgU2F0LCA3IE9jdCAyMDE3IDAzOjAwOjMyIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8MjAxNDI2My45aTdsY0Ezakx5QGdpZ2E+ClJlZmVyZW5jZXM6IDwxMDU0NDYxNS5CNGhPM1BudkV6QGdpZ2E+IDwxNTIyOTg1Ny5rMUR5QmFSOU5MQGdpZ2E+CiA8Q0FGTkNVLS0wRVp0NEVCVHhtQUVzdE4tZjZxUjN0TktnREpXNjQ9blF6UzZpUzJCNHdnQG1haWwuZ21haWwuY29tPiA8MjAxNDI2My45aTdsY0Ezakx5QGdpZ2E+CkZyb206IFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4KRGF0ZTogU2F0LCA3IE9jdCAyMDE3IDEyOjAwOjMyICswMjAwClgtR21haWwtT3JpZ2luYWwtTWVzc2FnZS1JRDogPENBS3VWekJSTkNER2hBd0VuRzVuU2hyQ3dXPWIzT1pSY0VFZSs3ZkZNZVpuY0ZPYzZqd0BtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JRDogPENBS3VWekJSTkNER2hBd0VuRzVuU2hyQ3dXPWIzT1pSY0VFZSs3ZkZNZVpuY0ZPYzZqd0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IEplbmtpbnMgYW5kIE1hdmVuIDMuMC41IG9yIEpESyA3ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTRmYjE4MjM5ZTE2NzA1NWFmMjA3NDgiCgotLTAwMWExMTRmYjE4MjM5ZTE2NzA1NWFmMjA3NDgKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKNzggaXMgdG9vIG11Y2guClRoZXJlIGlzIG5vIHByb2JsZW0gdG8gdHJpZ2dlciByZWxlYXNlIG92ZXIgc3ViLWZvbGRlcnMgYW5kIHRhZyBpdCB3aXRoCnByZWZpeCB3aGljaCBpcyBhbHJlYWR5IGRvbmUgaW4gU1ZOLgpUaGUgQ0kgYnVpbGQgY2FuIGFsd2F5cyB0cmlnZ2VyIHRoZSByb290IGFuZCBKZW5raW5zZmlsZSB3b3VsZCBoYXZlIDQxCnN0YWdlcyBmb3IgcGx1Z2lucywgMjYgc3RhZ2VzIGZvciBTaGFyZWQsIGV0Yy4KSXQgY2FuIGJlIGRvbmUgaW4gSmVua2luc2ZpbGUgYW5kIHNvIHRoZSBzaGVsbCB3b3VsZCBub3QgdGhyb3cgZXhjZXB0aW9uCmJ1dCBzdGF0dXMgd291bGQgYmUgc2V0IGluc3RlYWQgYW5kIGdvZXMgdG8gdGhlIG5leHQgc3RhZ2UuCkkgZG8gbm90IGtub3cgaG93IHRvIGRldGVjdCBpbiBHaXRTQ00gd2hpY2ggc3ViLWZvbGRlcihzKSByZWNlaXZlZCBidXQgSQpndWVzcyB0aGlzIGNhbiBiZSBpbnZlc3RpZ2F0ZWQuClRoZW4gaXQgY2FuIGJlIGEga2luZCBvZiBzd2l0Y2gtY2FzZSBvdmVyIGNvbW1pdHRlZCBmb2xkZXJzIGluIEplbmtpbnNmaWxlLgpUaGlzIG1lYW5zIHRoYXQgZXZlcnkgdGltZSBhbm90aGVyIHN0YWdlL3N1Yi1mb2xkZXIgaXMgc2hvd24gaW4gUGlwZWxpbmUKd2hpY2ggd2lsbCBiZSBtZXNzeSBpbiB0aGUgVUkuIDooCgoKCk9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgNDoxNyBBTSwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ID0Kd3JvdGU6Cgo+IFRoZXJlIGFyZSA2IHN2biBsb2NhdGlvbnMgd2l0aG91dCBhbnkgc3BlY2lhbCBjb21wbGV4aXR5IHRoYXQgYXJlIHdhaXRpbmcKPiBmb3IKPiBhIHZvbHVudGVlciBmb3IgZ2l0IG1pZ3JhdGlvbiBmb3IgYSBmZXcgeWVhcnMgYnV0IG5vYm9keSBkb2VzIGFueXRoaW5nCj4gYWJvdXQ6Cj4gSSBzdGFydGVkIDMgZGF5cyBhZ28gdG8gYXNrIGZvciBoZWxwIGFib3V0IGl0IGFuZCBnb3QgcHJldHR5IG5vIGZlZWRiYWNrCj4gWzFdCj4KPiB0aGVuIHRoZXJlIGFyZSB0aGUgNCBjb21wbGV4IHN2biBsb2NhdGlvbnMgKHBsdWdpbnMsIHNoYXJlZCwgcmVzb3VyY2VzLAo+IGRveGlhLQo+IHRvb2xzKSB0aGF0IHJlcXVpcmUgbXVjaCBtb3JlIHdvcms6IEkgc3VwcG9zZSB3ZSBjYW4ndCB0ZWxsIGdpdCBtaWdyYXRpb24KPiBpcwo+IGFiYW5kb25lZCwgYnV0IGl0IHdpbGwgcmVxdWlyZSBzb21lb25lIHRvIHdvcmsgb24gaXQgc2VyaW91c2x5Cj4gUmVtZW1iZXIgdGhhdCB0aGUga2V5IHF1ZXN0aW9uIFsyXSBpczogZG8gd2UgdHJhbnNmb3JtIHRoZXNlIDQgc3ZuCj4gbG9jYXRpb25zCj4gaW50byA0MSArMjYgKyA2ICsgNSA9M0QgNzggaW5kZXBlbmRlbnQgZ2l0IHJlcG9zPwo+IFllcywgSSB0b2xkIHRoYXQgSmVua2lucyBjb25maWd1cmF0aW9uIGlzIG9uZSBrZXkgYXNwZWN0IHdlIG5lZWQgYSBzdHJhdGU9Cmd5Cj4gYWJvdXQsIGluIHBhcmFsbGVsIHdpdGggZ2l0IHN0cmF0ZWd5Lgo+Cj4gdGhlbiB0aGVyZSB3aWxsIGJlIHRoZSByZW1haW5pbmcgY2FzZXMgd2hlcmUgd2UgbmVlZCB0byBkZWNpZGU6IGxvd2VyCj4gaW1wYWN0LAo+IGxvd2VyIHByaW9yaXR5Lgo+Cj4KPiBTdW1tYXJ5OiBub3RoaW5nIGlzIGFiYW5kb25lZCwgYnV0Ogo+IC0gc2ltcGxlIGNhc2VzOiBubyB2b2x1bnRlZXIgdG8gZG8gdGhlIGpvYgo+IC0gaGFyZCBjYXNlczogaXMgdGhlcmUgYSB2b2x1bnRlZXIgZWl0aGVyIHRvIGRlZmluZSBhIHN0cmF0ZWd5IG9yIGRvIHNvbWUKPiB3b3JrCj4gb24gaXQ/Cj4KPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUMzPUE5Cj4KPiBbMV0gaHR0cHM6Ly9saXN0cy5hcGFjaGUub3JnL3RocmVhZC5odG1sLwo+IGVkZjM2NDJhN2JkZDUxNWYwY2FkNDIxYzI1NTg5NzQxODE5NDQ2NDYzNjE0YmYwNTE1ZTU2ZGJlQAo+ICUzQ2Rldi5tYXZlbi5hcGFjaGUub3JnJTNFCj4KPiBbMl0gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9HaXQKPiArTWlncmF0aW9uI0dpdE1pZ3JhdGlvbi1NaWdyYXRpbmdhbmFnZ3JlZ2F0b3J0cmVlaW50b2Fjb2xsZWN0aW9ub2ZnaXRyZXBvPQpzCj4KPiBMZSB2ZW5kcmVkaSA2IG9jdG9icmUgMjAxNywgMjA6MzU6NDUgQ0VTVCBBcm5hdWQgSD1DMz1BOXJpdGllciBhID1DMz1BOWNyPQppdCA6Cj4gPiBCdXQgZGlkIHdlIGNvbXBsZXRlbHkgYWJhbmRvbmVkIHRoZSBpZGVhIG9mIG1vdmluZyBldmVyeXRoaW5nIHRvIGdpdCA/Cj4gPiBUaGUgQ0kgc2V0dXAgd2FzIHRoZSBtYWluIHN0b3AgZm9yIGl0ID8KPiA+Cj4gPiBPbiBGcmksIE9jdCA2LCAyMDE3IGF0IDg6MDUgUE0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLj0KZnI+Cj4gd3JvdGU6Cj4gPiA+IEkgd2FzIGV4cGVjdGluZyB0aGUgdXN1YWwgbGl0YW55Cj4gPiA+Cj4gPiA+IHdoYXQgSSdtIG5vdCBjb25maWRlbnQgY3VycmVudGx5IHdpdGggcGlwZWxpbmUgb24gTWF2ZW4gY29yZSBpcyB0aGF0ID0Kd2UKPiA+ID4gaGF2ZQo+ID4gPiBmb3IgZXhhbXBsZSB0aGUgIm1hdmVuLTMueC1qZW5raW5zZmlsZS9NTkctNjI0MiAtIGJ1aWxkICMxIC0gbnVsbCIKPiA+ID4gbWVzc2FnZSwKPiA+ID4gd2l0aCB0aGlzICJudWxsIiBwYXJ0IHRoYXQgbWFrZXMgbWUgd29uZGVyIGlmIHdlIGFyZSB1c2luZyBpdCBhcwo+IGV4cGVjdGVkLgo+ID4gPgo+ID4gPiBBbmQgZm9yIGxhcmdlIG11bHRpLW1vZHVsZSBzdm4gdHJ1bmtzICh0aGUgb25lcyB3ZSBkb24ndCBtaWdyYXRlIHRvCj4gZ2l0Ogo+ID4gPiBtYWlubHkgcGx1Z2lucyBhbmQgc2hhcmVkKSwgaXMgdGhlcmUgYSBzb2x1dGlvbiB0byByZWJ1aWxkIGp1c3QgY2hhbmc9CmVkCj4gPiA+IG1vZHVsZXM/Cj4gPiA+Cj4gPiA+IGlkZWFsbHksIHRoZSByZWJ1aWxkIHdoZW4gYSBTTkFQU0hPVCBkZXBlbmRlbmN5IGlzIHB1Ymxpc2hlZCB3b3VsZCBoYT0KdmUKPiA+ID4gYmVlbiBhCj4gPiA+IHBsdXMsIGJ1dCB0aGlzIGlzIHN1ZmZpY2llbnRseSBhIHJhcmUgdXNlIHRoYXQgSSB3b24ndCBiZSBleHRyZW1pc3QKPiA+ID4KPiA+ID4KPiA+ID4gVGhlbiBJSVVDLCB0aGlzIG1pZ3JhdGlvbiBqb2IgaXMgb25lIGFkZGl0aW9uYWwgVE9ETyBmb3IgbWUuLi4KPiA+ID4KPiA+ID4gUmVnYXJkcywKPiA+ID4KPiA+ID4gSGVydj1DMz1BOQo+ID4gPgo+ID4gPiBMZSB2ZW5kcmVkaSA2IG9jdG9icmUgMjAxNywgMTc6NDY6NTMgQ0VTVCBBcm5hdWQgSD1DMz1BOXJpdGllciBhID1DMz0KPUE5Y3JpdCA6Cj4gPiA+ID4gSSBhZ3JlZSB0aGF0IHdlIHNob3VsZCB1c2UgcGlwZWxpbmUgbm93ZGF5cwo+ID4gPiA+IHBlcmhhcHMgYSBzaGFyZWQgbGliIGlmIHdlIHdhbnQgdG8gc3RhbmRhcmRpemUgc29tZSBzdHVmZnMgYW5kIGEgc2U9CnQKPiBvZgo+ID4gPiA+IG11bHRpLWJyYW5jaGVzIGpvYnMgKG9yIG9yZyBmb2xkZXIgYnV0IGl0IHJlcXVpcmVzIEdpdEh1YiA6KCApCj4gPiA+ID4KPiA+ID4gPiBPbiBGcmksIE9jdCA2LCAyMDE3IGF0IDk6MTYgQU0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4gPiA+Cj4gPiA+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+ID4gPiBPbiBGcmkgNiBPY3QgMjAxNyBhdCAwNjozMiwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZT0KZS5mcj4KPiA+ID4KPiA+ID4gd3JvdGU6Cj4gPiA+ID4gPiA+IEkganVzdCBmaXhlZCBhIGZldyBmYWlsaW5nIGpvYnMgWzFdIHRvIGhhdmUgYWdhaW4gYSB1c2FibGUKPiBKZW5raW5zLgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBOb3cgSSdtIGZhY2luZyBzb21lIGlzc3VlcywgSSBzdXBwb3NlIGNhdXNlZCBieSBuZXdlciBKZW5raW5zCj4gPiA+Cj4gPiA+IHZlcnNpb25zOgo+ID4gPiA+ID4gPiAtIE1hdmVuIDMuMC41IGNhdXNlcyBOb1N1Y2hNZXRob2RFcnJvcjogby5jLnBsZXh1cy51dGlsLnhtbC5wdWw9CmwuCj4gPiA+ID4gPgo+ID4gPiA+ID4gTVhQYXJzZXIKPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFsyXQo+ID4gPiA+ID4gPiAtIEkgaGFkIHRvIHN3aXRjaCB0byBKREsgOCBmb3IgbWF2ZW4tcGx1Z2luLXRvb2xzIGpvYiwgc2luY2UgSkQ9CksKPiA+ID4KPiA+ID4gY2F1c2VzCj4gPiA+Cj4gPiA+ID4gPiA+IGZhaWx1cmVzIChsb29rcyBsaWtlIEplbmtpbnMgdXNlcyBhIGhhY2sgdG8gaW5qZWN0IEpESyA3IGFzIGEKPiB0b29sCj4gPiA+Cj4gPiA+IHdoaWxlCj4gPiA+Cj4gPiA+ID4gPiA+IHRoZQo+ID4gPiA+ID4gPiBidWlsZCBKVk0gaXMgSmF2YSA4KQo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBTaG91bGQgd2UgZHJvcCBNYXZlbiAzLjAuNSBidWlsZHMgYW5kIEpESyA3Pwo+ID4gPiA+ID4gPiBOb3RpY2UgSSBkaWRuJ3QgY2hlY2sgd2hpY2ggaXMgdGhlIG1pbmltdW0gTWF2ZW4gdmVyc2lvbgo+IHJlcXVpcmVkLi4uCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IE9yIHBlcmhhcHMgc2ltcGx5IGRvbid0IHVzZSB0aGUgSmVua2lucyBNYXZlbiBwbHVnaW4gd2l0aCB0aGlzCj4gTWF2ZW4KPiA+ID4gPiA+Cj4gPiA+ID4gPiAzLjAuNQo+ID4gPiA+ID4KPiA+ID4gPiA+ID4gb3IKPiA+ID4gPiA+ID4gSkRLIDcgY29uZmlndXJhdGlvbjogZGVmYXVsdCBidWlsZCBhcyBKZW5raW5zIE1hdmVuIHBsdWdpbiB3aXRoCj4gSkRLCj4gPiA+Cj4gPiA+IDggKwo+ID4gPgo+ID4gPiA+ID4gPiBsYXRlc3QKPiA+ID4gPiA+ID4gTWF2ZW4sIGFuZCBvdGhlciBjb25maWd1cmF0aW9ucyBhcyBzY3JpcHRlZCBqb2JzPwo+ID4gPiA+ID4KPiA+ID4gPiA+IGh0dHA6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90LmllLzIwMTMvMTEvamVua2lucy1tYXZlbi1qb2ItPiA+Cj4gPiA+Cj4gPiA+IHR5cGUtY29uc2lkZXJlZC1ldmlsLmh0bWwKPiA+ID4KPiA+ID4gPiA+IDxodHRwOi8vamF2YWFkdmVudHVyZS5ibG9nc3BvdC5pZS8yMDEzLzExL2plbmtpbnMtPiA+Cj4gPiA+Cj4gPiA+IG1hdmVuLWpvYi10eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sP209M0QxPgo+ID4gPgo+ID4gPiA+ID4gV2Ugc2hvdWxkIHN0b3AgdXNpbmcgdGhlIGV2aWwgam9iIHR5cGUgYXMgaXQ9RTI9ODA9OTlzIG1pbmltdW0gSmE9CnZhCj4gdmVyc2lvbiBpcwo+ID4gPiA+ID4gZGljdGF0ZWQgYnkgSmVua2lucz1FMj04MD05OSBKYXZhIG1pbmltdW0uCj4gPiA+ID4gPgo+ID4gPiA+ID4gPiBXZSBuZWVkIHRvIGRlZmluZSBvdXIgY29tbW9uIHN0cmF0ZWd5IGFuZCBoYXZlIGEgY29uc2lzdGVudAo+ID4gPiA+ID4gPiBjb25maWd1cmF0aW9uCj4gPiA+ID4gPiA+IGZvcgo+ID4gPiA+ID4gPiBldmVyeSBqb2IgdW5kZXJzdG9vZCBieSBldmVyeWJvZHkKPiA+ID4gPiA+Cj4gPiA+ID4gPiBJIHJlY29tbWVuZCBKZW5raW5zZmlsZSBhbmQgdGhlIGB3aXRoTWF2ZW5gIHdyYXBwZXIKPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IEhlcnY9QzM9QTkKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gWzFdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi8KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gWzJdCj4gPiA+ID4gPiA+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tPiA+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gcGx1Z2luLXRvb2xzLWpkay0xLjcvMTYyL2NvbnNvbGUKPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPgo+ID4gPiAtLS0tLS0tLS0KPiA+ID4KPiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiAtLQo+ID4gPiA+ID4KPiA+ID4gPiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4gPgo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCi0tMDAxYTExNGZiMTgyMzllMTY3MDU1YWYyMDc0OC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MTY3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBPY3QgIDcgMTI6NDg6MzQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTY3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEFBM0M3MTBEMkIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgNyBPY3QgMjAxNyAxMjo0ODozNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDYwNDUzIGludm9rZWQgYnkgdWlkIDUwMCk7IDcgT2N0IDIwMTcgMTI6NDg6MzQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYwMzcyIGludm9rZWQgYnkgdWlkIDUwMCk7IDcgT2N0IDIwMTcgMTI6NDg6MzQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MDM2MSBpbnZva2VkIGJ5IHVpZCA5OSk7IDcgT2N0IDIwMTcgMTI6NDg6MzQgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDcgT2N0IDIwMTcgMTI6NDg6MzQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1xdDAtZjE3NS5nb29nbGUuY29tIChtYWlsLXF0MC1mMTc1Lmdvb2dsZS5jb20gWzIwOS44NS4yMTYuMTc1XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIERGNDNCMUEwMTJCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAgNyBPY3QgMjAxNyAxMjo0ODozMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1xdDAtZjE3NS5nb29nbGUuY29tIHdpdGggU01UUCBpZCB2MjhzbzI3MTE2NzI3cXR2LjEKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAwNyBPY3QgMjAxNyAwNTo0ODozMyAtMDcwMCAoUERUKQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVhRWjBaMW4raHNoaVpBL2t2Njh3MTJmMVZXZFllWlptZGF2M09aU1RuRUlGdWFsRmpLCglKOFlZak80bU95a21VdVFHQTZ0M3FUbVpVZlAwSkkwZXJ2ZDdqcms9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FCZytML1VnUWJjd24zU3ZNWE00RGRYd2JpQzUvc0xOWjRZVkdBT2txK0lSS3dkd3ljcDFvOXMrdGd4dld4U09ST2JyV2lnZUErOTlzR0pWVVJDQldzPQpYLVJlY2VpdmVkOiBieSAxMC4xMjkuNTAuMjEgd2l0aCBTTVRQIGlkIHkyMW1yNDA1NDU3OXl3eS4zNi4xNTA3MzgwNTEyNTIwOwogU2F0LCAwNyBPY3QgMjAxNyAwNTo0ODozMiAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTI5LjE5My42NyB3aXRoIEhUVFA7IFNhdCwgNyBPY3QgMjAxNyAwNTo0ODozMiAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPENBS3VWekJRTVcwOUdhUzI3WHEwQ2JKenFkTFZKN3Jra1ZTSE44cTZQMmFWMXZ3Vz1Hd0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPDEwNTQ0NjE1LkI0aE8zUG52RXpAZ2lnYT4gPDIwMTQyNjMuOWk3bGNBM2pMeUBnaWdhPgogPENBS3VWekJSTkNER2hBd0VuRzVuU2hyQ3dXPWIzT1pSY0VFZSs3ZkZNZVpuY0ZPYzZqd0BtYWlsLmdtYWlsLmNvbT4KIDwyMTg3MDI5LkszNEUxN000am5AZ2lnYT4gPENBS3VWekJRTVcwOUdhUzI3WHEwQ2JKenFkTFZKN3Jra1ZTSE44cTZQMmFWMXZ3Vz1Hd0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPgpEYXRlOiBTYXQsIDcgT2N0IDIwMTcgMTQ6NDg6MzIgKzAyMDAKWC1HbWFpbC1PcmlnaW5hbC1NZXNzYWdlLUlEOiA8Q0FLdVZ6QlJQb3V2RjJWNXdmeFhyYkNSY2N1S3ZjWmhCRE4zZ0NqckxQYjBTSmdvdEpBQG1haWwuZ21haWwuY29tPgpNZXNzYWdlLUlEOiA8Q0FLdVZ6QlJQb3V2RjJWNXdmeFhyYkNSY2N1S3ZjWmhCRE4zZ0NqckxQYjBTSmdvdEpBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogSmVua2lucyBhbmQgTWF2ZW4gMy4wLjUgb3IgSkRLIDcKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDIxYTdhZmQ4MWExMDU1YWY0NWZmNSIKCi0tMDAxYTExNDIxYTdhZmQ4MWExMDU1YWY0NWZmNQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpJbiBteSBjb21wYW55IEkgaGF2ZSBzdWNoIHNpdHVhdGlvbiBpbiBTVk4uIE1ha2luZyBhIHRhZyBmcm9tIHN1YmZvbGRlci4KR2l0IGFsd2F5cyBtYWtlcyB0aGUgdGFnIGZyb20gdGhlIHJvb3QsIHJpZ2h0PwpMZXQncyBnb29nbGUgc29tZXRoaW5nLi4uCgpPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDI6NDcgUE0sIFRpYm9yIERpZ2FuYSA8dGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tPgp3cm90ZToKCj4gSW4gbXkgY29tcGFueSBJIGhhdmUgc3VjaCBzaXR1YXRpb24uCj4gTWFraW5nIGEgdGFnIGZyb20gc3ViZm9sZGVyLgo+IEdpdCBhbHdheXMgbWFrZXMgdGhlIHRhZyBmcm9tIHRoZSByb290LCByaWdodD8KPiBMZXQncyBnb29nbGUgc29tZXRoaW5nLi4uCj4KPiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDI6MDUgUE0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPQo+Cj4gd3JvdGU6Cj4KPj4gdGhhbmtzIGZvciB5b3VyIGludGVyZXN0IGFuZCBmZWVkYmFjawo+Pgo+PiBMZSBzYW1lZGkgNyBvY3RvYnJlIDIwMTcsIDEyOjAwOjMyIENFU1QgVGlib3IgRGlnYW5hIGEgPUMzPUE5Y3JpdCA6Cj4+ID4gNzggaXMgdG9vIG11Y2guCj4+IG5vdGljZSB0aGF0IHRoZXJlIHdvdWxkIGFsc28gYmUgYSBxdWVzdGlvbiBvbiB0aGUgZ2l0IHJlcG9zIG5hbWluZwo+PiBjb252ZW50aW9uLAo+PiB0byBhdm9pZCBmbGF0IDc4IG5hbWVzIGJ1dCBrZWVwIGF0IGxlYXN0IDMgbWVhbmluZ2Z1bCBncm91cHMgKHBsdWdpbnMsCj4+IHNoYXJlZCwKPj4gcmVzb3VyY2VzOiBJIHRoaW5rIHRoaXMgaXMgbm90IGFic29sdXRlbHkgbmVjZXNzYXJ5IGZvciBkb3hpYS10b29scykKPj4KPj4gPiBUaGVyZSBpcyBubyBwcm9ibGVtIHRvIHRyaWdnZXIgcmVsZWFzZSBvdmVyIHN1Yi1mb2xkZXJzIGFuZCB0YWcgaXQgd2l0PQpoCj4+ID4gcHJlZml4IHdoaWNoIGlzIGFscmVhZHkgZG9uZSBpbiBTVk4uCj4+IGlzIGl0IHN1cHBvcnRlZCBieSBtYXZlbi1yZWxlYXNlIHBsdWdpbiB3aXRoIGdpdD8KPj4KPj4gbm90aWNlIEkgZGlkIG5vdCBrbm93IHRoYXQgZ2l0IHdhcyBhYmxlIHRvIHRhZyBvbmx5IGEgc3VidHJlZTogYnV0IEkga25lPQp3Cj4+IEkKPj4gZG9uJ3QgeWV0IHVuZGVyc3RhbmQgZXZlcnkgYXNwZWN0IG9mIGdpdCBtYWdpYy4uLiA6KQo+Pgo+PiA+IFRoZSBDSSBidWlsZCBjYW4gYWx3YXlzIHRyaWdnZXIgdGhlIHJvb3QgYW5kIEplbmtpbnNmaWxlIHdvdWxkIGhhdmUgNDEKPj4gPiBzdGFnZXMgZm9yIHBsdWdpbnMsIDI2IHN0YWdlcyBmb3IgU2hhcmVkLCBldGMuCj4+ID4gSXQgY2FuIGJlIGRvbmUgaW4gSmVua2luc2ZpbGUgYW5kIHNvIHRoZSBzaGVsbCB3b3VsZCBub3QgdGhyb3cgZXhjZXB0aT0Kb24KPj4gPiBidXQgc3RhdHVzIHdvdWxkIGJlIHNldCBpbnN0ZWFkIGFuZCBnb2VzIHRvIHRoZSBuZXh0IHN0YWdlLgo+PiA+IEkgZG8gbm90IGtub3cgaG93IHRvIGRldGVjdCBpbiBHaXRTQ00gd2hpY2ggc3ViLWZvbGRlcihzKSByZWNlaXZlZCBidXQ9CiBJCj4+ID4gZ3Vlc3MgdGhpcyBjYW4gYmUgaW52ZXN0aWdhdGVkLgo+PiArMQo+PiBidXQgSSBkb24ndCBrbm93IHdoZXJlIHRvIGxvb2sgZm9yIG15c2VsZjogb24gdGhhdCBwb2ludCwgSSBob3BlIHRvIGhhdmUKPj4gc29tZQo+PiBoZWxwIGZyb20gSmVua2luc2ZpbGUgZXhwZXJ0cwo+PiBhbmQgZXZlbnR1YWxseSBzdGFydCB3aXRoIHN2biwgdG8gaGF2ZSBzb21ldGhpbmcgYmVmb3JlIHRoZSBnaXQgbWlncmF0aW89Cm4KPj4KPj4gPiBUaGVuIGl0IGNhbiBiZSBhIGtpbmQgb2Ygc3dpdGNoLWNhc2Ugb3ZlciBjb21taXR0ZWQgZm9sZGVycyBpbgo+PiBKZW5raW5zZmlsZS4KPj4gPiBUaGlzIG1lYW5zIHRoYXQgZXZlcnkgdGltZSBhbm90aGVyIHN0YWdlL3N1Yi1mb2xkZXIgaXMgc2hvd24gaW4gUGlwZWxpPQpuZQo+PiA+IHdoaWNoIHdpbGwgYmUgbWVzc3kgaW4gdGhlIFVJLiA6KAo+PiBub3RpY2UgdGhhdCB3ZSBjYW4gcGVyaGFwcyBzcGxpdCB0aGUgcmVwb3MgaW4gbGVzcyBwYXJ0cyB0aGFuIHdlIGhhdmUKPj4gY29tcG9uZW50czogb24gcGx1Z2lucywgZm9yIGV4YW1wbGUsIHdlIGFscmVhZHkgaGF2ZSA0IGNhdGVnb3JpZXMgWzFdCj4+IHdoaWNoCj4+IHdvdWxkIGF2b2lkIDEgcmVwbyB3aXRoIDQxIHBsdWdpbnMsIGJ1dCBtb3JlIHNvbWV0aGluZyBsaWtlIDYrMTArMTArMTUKPj4gSSBzdXBwb3NlIHdlIGNvdWxkIGRvIHRoZSBzYW1lIGZvciBzaGFyZWQgKHJlcG9ydGluZyBmb2xkZXIgY29tZXMgdG8gbXkKPj4gbWluZCkKPj4KPj4gVGhlIGtleSBmZWFzaWJpbGl0eSBpc3N1ZSBpcyB0aGUgY2FwYWNpdHkgdG8gcmVsZWFzZSBhIHN1Yi1jb21wb25lbnQgZnJvPQptCj4+IGdpdAo+PiB3aXRoIG1hdmVuLXJlbGVhc2UtcGx1Z2luLCBJTUhPCj4+ICh0YWtpbmcgYXBhcnQgdGhlIGdpdCBwdXJpc3RzIGlkZWEgb2YgMSBsaWZlY3ljbGUgPTNEIDEgZ2l0IHJlcG8pCj4+Cj4+IFJlZ2FyZHMsCj4+Cj4+IEhlcnY9QzM9QTkKPj4KPj4KPj4gWzFdIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMvCj4+ID4KPj4gPiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDQ6MTcgQU0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlPQouZnI+Cj4+IHdyb3RlOgo+PiA+ID4gVGhlcmUgYXJlIDYgc3ZuIGxvY2F0aW9ucyB3aXRob3V0IGFueSBzcGVjaWFsIGNvbXBsZXhpdHkgdGhhdCBhcmUKPj4gd2FpdGluZwo+PiA+ID4gZm9yCj4+ID4gPiBhIHZvbHVudGVlciBmb3IgZ2l0IG1pZ3JhdGlvbiBmb3IgYSBmZXcgeWVhcnMgYnV0IG5vYm9keSBkb2VzIGFueXRoaT0KbmcKPj4gPiA+IGFib3V0Ogo+PiA+ID4gSSBzdGFydGVkIDMgZGF5cyBhZ28gdG8gYXNrIGZvciBoZWxwIGFib3V0IGl0IGFuZCBnb3QgcHJldHR5IG5vCj4+IGZlZWRiYWNrCj4+ID4gPiBbMV0KPj4gPiA+Cj4+ID4gPiB0aGVuIHRoZXJlIGFyZSB0aGUgNCBjb21wbGV4IHN2biBsb2NhdGlvbnMgKHBsdWdpbnMsIHNoYXJlZCwKPj4gcmVzb3VyY2VzLAo+PiA+ID4gZG94aWEtCj4+ID4gPiB0b29scykgdGhhdCByZXF1aXJlIG11Y2ggbW9yZSB3b3JrOiBJIHN1cHBvc2Ugd2UgY2FuJ3QgdGVsbCBnaXQKPj4gbWlncmF0aW9uCj4+ID4gPiBpcwo+PiA+ID4gYWJhbmRvbmVkLCBidXQgaXQgd2lsbCByZXF1aXJlIHNvbWVvbmUgdG8gd29yayBvbiBpdCBzZXJpb3VzbHkKPj4gPiA+IFJlbWVtYmVyIHRoYXQgdGhlIGtleSBxdWVzdGlvbiBbMl0gaXM6IGRvIHdlIHRyYW5zZm9ybSB0aGVzZSA0IHN2bgo+PiA+ID4gbG9jYXRpb25zCj4+ID4gPiBpbnRvIDQxICsyNiArIDYgKyA1ID0zRCA3OCBpbmRlcGVuZGVudCBnaXQgcmVwb3M/Cj4+ID4gPiBZZXMsIEkgdG9sZCB0aGF0IEplbmtpbnMgY29uZmlndXJhdGlvbiBpcyBvbmUga2V5IGFzcGVjdCB3ZSBuZWVkIGEKPj4gPiA+IHN0cmF0ZWd5Cj4+ID4gPiBhYm91dCwgaW4gcGFyYWxsZWwgd2l0aCBnaXQgc3RyYXRlZ3kuCj4+ID4gPgo+PiA+ID4gdGhlbiB0aGVyZSB3aWxsIGJlIHRoZSByZW1haW5pbmcgY2FzZXMgd2hlcmUgd2UgbmVlZCB0byBkZWNpZGU6IGxvd2U9CnIKPj4gPiA+IGltcGFjdCwKPj4gPiA+IGxvd2VyIHByaW9yaXR5Lgo+PiA+ID4KPj4gPiA+Cj4+ID4gPiBTdW1tYXJ5OiBub3RoaW5nIGlzIGFiYW5kb25lZCwgYnV0Ogo+PiA+ID4gLSBzaW1wbGUgY2FzZXM6IG5vIHZvbHVudGVlciB0byBkbyB0aGUgam9iCj4+ID4gPiAtIGhhcmQgY2FzZXM6IGlzIHRoZXJlIGEgdm9sdW50ZWVyIGVpdGhlciB0byBkZWZpbmUgYSBzdHJhdGVneSBvciBkbwo+PiBzb21lCj4+ID4gPiB3b3JrCj4+ID4gPiBvbiBpdD8KPj4gPiA+Cj4+ID4gPgo+PiA+ID4gUmVnYXJkcywKPj4gPiA+Cj4+ID4gPiBIZXJ2PUMzPUE5Cj4+ID4gPgo+PiA+ID4gWzFdIGh0dHBzOi8vbGlzdHMuYXBhY2hlLm9yZy90aHJlYWQuaHRtbC8KPj4gPiA+IGVkZjM2NDJhN2JkZDUxNWYwY2FkNDIxYzI1NTg5NzQxODE5NDQ2NDYzNjE0YmYwNTE1ZTU2ZGJlQAo+PiA+ID4gJTNDZGV2Lm1hdmVuLmFwYWNoZS5vcmclM0UKPj4gPiA+Cj4+ID4gPiBbMl0gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9HaXQKPj4gPiA+ICtNaWdyYXRpb24jR2l0TWlncmF0aW9uLU1pZ3JhdGluZ2FuYWdncmVnYXRvcnRyZWVpbnRvYWNvbGxlYwo+PiB0aW9ub2ZnaXRyZXBvcwo+PiA+ID4KPj4gPiA+IExlIHZlbmRyZWRpIDYgb2N0b2JyZSAyMDE3LCAyMDozNTo0NSBDRVNUIEFybmF1ZCBIPUMzPUE5cml0aWVyIGEgPUMzPQo9QTljcml0IDoKPj4gPiA+ID4gQnV0IGRpZCB3ZSBjb21wbGV0ZWx5IGFiYW5kb25lZCB0aGUgaWRlYSBvZiBtb3ZpbmcgZXZlcnl0aGluZyB0bwo+PiBnaXQgPwo+PiA+ID4gPiBUaGUgQ0kgc2V0dXAgd2FzIHRoZSBtYWluIHN0b3AgZm9yIGl0ID8KPj4gPiA+ID4KPj4gPiA+ID4gT24gRnJpLCBPY3QgNiwgMjAxNyBhdCA4OjA1IFBNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+PiBoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4+ID4gPgo+PiA+ID4gd3JvdGU6Cj4+ID4gPiA+ID4gSSB3YXMgZXhwZWN0aW5nIHRoZSB1c3VhbCBsaXRhbnkKPj4gPiA+ID4gPgo+PiA+ID4gPiA+IHdoYXQgSSdtIG5vdCBjb25maWRlbnQgY3VycmVudGx5IHdpdGggcGlwZWxpbmUgb24gTWF2ZW4gY29yZSBpcwo+PiB0aGF0Cj4+ID4gPiA+ID4gd2UKPj4gPiA+ID4gPiBoYXZlCj4+ID4gPiA+ID4gZm9yIGV4YW1wbGUgdGhlICJtYXZlbi0zLngtamVua2luc2ZpbGUvTU5HLTYyNDIgLSBidWlsZCAjMSAtCj4+IG51bGwiCj4+ID4gPiA+ID4gbWVzc2FnZSwKPj4gPiA+ID4gPiB3aXRoIHRoaXMgIm51bGwiIHBhcnQgdGhhdCBtYWtlcyBtZSB3b25kZXIgaWYgd2UgYXJlIHVzaW5nIGl0IGFzCj4+ID4gPgo+PiA+ID4gZXhwZWN0ZWQuCj4+ID4gPgo+PiA+ID4gPiA+IEFuZCBmb3IgbGFyZ2UgbXVsdGktbW9kdWxlIHN2biB0cnVua3MgKHRoZSBvbmVzIHdlIGRvbid0IG1pZ3JhdGUKPj4gdG8KPj4gPiA+Cj4+ID4gPiBnaXQ6Cj4+ID4gPiA+ID4gbWFpbmx5IHBsdWdpbnMgYW5kIHNoYXJlZCksIGlzIHRoZXJlIGEgc29sdXRpb24gdG8gcmVidWlsZCBqdXN0Cj4+ID4gPiA+ID4gY2hhbmdlZAo+PiA+ID4gPiA+IG1vZHVsZXM/Cj4+ID4gPiA+ID4KPj4gPiA+ID4gPiBpZGVhbGx5LCB0aGUgcmVidWlsZCB3aGVuIGEgU05BUFNIT1QgZGVwZW5kZW5jeSBpcyBwdWJsaXNoZWQgd291PQpsZAo+PiA+ID4gPiA+IGhhdmUKPj4gPiA+ID4gPiBiZWVuIGEKPj4gPiA+ID4gPiBwbHVzLCBidXQgdGhpcyBpcyBzdWZmaWNpZW50bHkgYSByYXJlIHVzZSB0aGF0IEkgd29uJ3QgYmUKPj4gZXh0cmVtaXN0Cj4+ID4gPiA+ID4KPj4gPiA+ID4gPgo+PiA+ID4gPiA+IFRoZW4gSUlVQywgdGhpcyBtaWdyYXRpb24gam9iIGlzIG9uZSBhZGRpdGlvbmFsIFRPRE8gZm9yIG1lLi4uCj4+ID4gPiA+ID4KPj4gPiA+ID4gPiBSZWdhcmRzLAo+PiA+ID4gPiA+Cj4+ID4gPiA+ID4gSGVydj1DMz1BOQo+PiA+ID4gPiA+Cj4+ID4gPiA+ID4gTGUgdmVuZHJlZGkgNiBvY3RvYnJlIDIwMTcsIDE3OjQ2OjUzIENFU1QgQXJuYXVkIEg9QzM9QTlyaXRpZXIgYT0KID1DMz1BOWNyaXQKPj4gOgo+PiA+ID4gPiA+ID4gSSBhZ3JlZSB0aGF0IHdlIHNob3VsZCB1c2UgcGlwZWxpbmUgbm93ZGF5cwo+PiA+ID4gPiA+ID4gcGVyaGFwcyBhIHNoYXJlZCBsaWIgaWYgd2Ugd2FudCB0byBzdGFuZGFyZGl6ZSBzb21lIHN0dWZmcyBhbmQKPj4gYSBzZXQKPj4gPiA+Cj4+ID4gPiBvZgo+PiA+ID4KPj4gPiA+ID4gPiA+IG11bHRpLWJyYW5jaGVzIGpvYnMgKG9yIG9yZyBmb2xkZXIgYnV0IGl0IHJlcXVpcmVzIEdpdEh1YiA6KCApCj4+ID4gPiA+ID4gPgo+PiA+ID4gPiA+ID4gT24gRnJpLCBPY3QgNiwgMjAxNyBhdCA5OjE2IEFNLCBTdGVwaGVuIENvbm5vbGx5IDwKPj4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4gPiA+ID4gPiA+ID4gT24gRnJpIDYgT2N0IDIwMTcgYXQgMDY6MzIsIEhlcnY9QzM9QTkgQk9VVEVNWSA8Cj4+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4gPiA+ID4gPgo+PiA+ID4gPiA+IHdyb3RlOgo+PiA+ID4gPiA+ID4gPiA+IEkganVzdCBmaXhlZCBhIGZldyBmYWlsaW5nIGpvYnMgWzFdIHRvIGhhdmUgYWdhaW4gYSB1c2FibGUKPj4gPiA+Cj4+ID4gPiBKZW5raW5zLgo+PiA+ID4KPj4gPiA+ID4gPiA+ID4gPiBOb3cgSSdtIGZhY2luZyBzb21lIGlzc3VlcywgSSBzdXBwb3NlIGNhdXNlZCBieSBuZXdlcgo+PiBKZW5raW5zCj4+ID4gPiA+ID4KPj4gPiA+ID4gPiB2ZXJzaW9uczoKPj4gPiA+ID4gPiA+ID4gPiAtIE1hdmVuIDMuMC41IGNhdXNlcyBOb1N1Y2hNZXRob2RFcnJvcjoKPj4gPiA+ID4gPiA+ID4gPiBvLmMucGxleHVzLnV0aWwueG1sLnB1bGwuCj4+ID4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+IE1YUGFyc2VyCj4+ID4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+ID4gWzJdCj4+ID4gPiA+ID4gPiA+ID4gLSBJIGhhZCB0byBzd2l0Y2ggdG8gSkRLIDggZm9yIG1hdmVuLXBsdWdpbi10b29scyBqb2IsCj4+IHNpbmNlIEpESwo+PiA+ID4gPiA+Cj4+ID4gPiA+ID4gY2F1c2VzCj4+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPiBmYWlsdXJlcyAobG9va3MgbGlrZSBKZW5raW5zIHVzZXMgYSBoYWNrIHRvIGluamVjdCBKREsgNyBhPQpzCj4+IGEKPj4gPiA+Cj4+ID4gPiB0b29sCj4+ID4gPgo+PiA+ID4gPiA+IHdoaWxlCj4+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPiB0aGUKPj4gPiA+ID4gPiA+ID4gPiBidWlsZCBKVk0gaXMgSmF2YSA4KQo+PiA+ID4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+ID4gU2hvdWxkIHdlIGRyb3AgTWF2ZW4gMy4wLjUgYnVpbGRzIGFuZCBKREsgNz8KPj4gPiA+ID4gPiA+ID4gPiBOb3RpY2UgSSBkaWRuJ3QgY2hlY2sgd2hpY2ggaXMgdGhlIG1pbmltdW0gTWF2ZW4gdmVyc2lvbgo+PiA+ID4KPj4gPiA+IHJlcXVpcmVkLi4uCj4+ID4gPgo+PiA+ID4gPiA+ID4gPiA+IE9yIHBlcmhhcHMgc2ltcGx5IGRvbid0IHVzZSB0aGUgSmVua2lucyBNYXZlbiBwbHVnaW4gd2l0aAo+PiB0aGlzCj4+ID4gPgo+PiA+ID4gTWF2ZW4KPj4gPiA+Cj4+ID4gPiA+ID4gPiA+IDMuMC41Cj4+ID4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+ID4gb3IKPj4gPiA+ID4gPiA+ID4gPiBKREsgNyBjb25maWd1cmF0aW9uOiBkZWZhdWx0IGJ1aWxkIGFzIEplbmtpbnMgTWF2ZW4gcGx1Z2luCj4+IHdpdGgKPj4gPiA+Cj4+ID4gPiBKREsKPj4gPiA+Cj4+ID4gPiA+ID4gOCArCj4+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPiBsYXRlc3QKPj4gPiA+ID4gPiA+ID4gPiBNYXZlbiwgYW5kIG90aGVyIGNvbmZpZ3VyYXRpb25zIGFzIHNjcmlwdGVkIGpvYnM/Cj4+ID4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+IGh0dHA6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90LmllLzIwMTMvMTEvamVua2lucy1tYXZlbi1qb2ItPgo+PiA+Cj4+ID4gPiA+ID4KPj4gPiA+ID4gPiB0eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sCj4+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPGh0dHA6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90LmllLzIwMTMvMTEvamVua2lucy0+ID4KPj4gPiA+ID4gPgo+PiA+ID4gPiA+IG1hdmVuLWpvYi10eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sP209M0QxPgo+PiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+IFdlIHNob3VsZCBzdG9wIHVzaW5nIHRoZSBldmlsIGpvYiB0eXBlIGFzIGl0PUUyPTgwPTk5cyBtaW5pbT0KdW0gSmF2YQo+PiA+ID4KPj4gPiA+IHZlcnNpb24gaXMKPj4gPiA+Cj4+ID4gPiA+ID4gPiA+IGRpY3RhdGVkIGJ5IEplbmtpbnM9RTI9ODA9OTkgSmF2YSBtaW5pbXVtLgo+PiA+ID4gPiA+ID4gPgo+PiA+ID4gPiA+ID4gPiA+IFdlIG5lZWQgdG8gZGVmaW5lIG91ciBjb21tb24gc3RyYXRlZ3kgYW5kIGhhdmUgYSBjb25zaXN0ZW49CnQKPj4gPiA+ID4gPiA+ID4gPiBjb25maWd1cmF0aW9uCj4+ID4gPiA+ID4gPiA+ID4gZm9yCj4+ID4gPiA+ID4gPiA+ID4gZXZlcnkgam9iIHVuZGVyc3Rvb2QgYnkgZXZlcnlib2R5Cj4+ID4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+IEkgcmVjb21tZW5kIEplbmtpbnNmaWxlIGFuZCB0aGUgYHdpdGhNYXZlbmAgd3JhcHBlcgo+PiA+ID4gPiA+ID4gPgo+PiA+ID4gPiA+ID4gPiA+IFJlZ2FyZHMsCj4+ID4gPiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPiBIZXJ2PUMzPUE5Cj4+ID4gPiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPiBbMV0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuLwo+PiA+ID4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+ID4gWzJdCj4+ID4gPiA+ID4gPiA+ID4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi0+ID0KPgo+PiA+ID4gPiA+ID4gPgo+PiA+ID4gPiA+ID4gPiBwbHVnaW4tdG9vbHMtamRrLTEuNy8xNjIvY29uc29sZQo+PiA+ID4gPiA+ID4gPgo+PiA+ID4gPiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gPiA+ID4gPgo+PiA+ID4gPiA+IC0tLS0tLS0tLQo+PiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+ID4gPiAtLQo+PiA+ID4gPiA+ID4gPgo+PiA+ID4gPiA+ID4gPiBTZW50IGZyb20gbXkgcGhvbmUKPj4gPiA+ID4gPgo+PiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiAtLS0tLS0tLS0KPj4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+Cj4+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLQo+PiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KPj4KPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KPj4KPgo+Cj4gLS0KPiBDaGVlcnMKPiBUaWJvcgo+CgotLTAwMWExMTQyMWE3YWZkODFhMTA1NWFmNDVmZjUtLQoKRnJvbSBkZXYtcmV0dXJuLTEyMzg5Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgU2VwICA4IDE1OjQ2OjIzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzg5Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA5QzhGQTE5Qzc5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgIDggU2VwIDIwMTcgMTU6NDY6MjMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyNTk4NSBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IFNlcCAyMDE3IDE1OjQ2OjIzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNTg4OSBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IFNlcCAyMDE3IDE1OjQ2OjIyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjQ5MjYgaW52b2tlZCBieSB1aWQgOTkpOyA4IFNlcCAyMDE3IDE1OjQ2OjE2IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAwOCBTZXAgMjAxNyAxNTo0NjoxNiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDZENTY2RDkyRUQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksICA4IFNlcCAyMDE3IDE1OjQ2OjE2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi4zNzkKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi4zNzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z29vZ2xlbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDlJRTRpRzlpNXJPYiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCUZyaSwgIDggU2VwIDIwMTcgMTU6NDY6MTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC15dzAtZjE4Mi5nb29nbGUuY29tIChtYWlsLXl3MC1mMTgyLmdvb2dsZS5jb20gWzIwOS44NS4xNjEuMTgyXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDY2NjdGNUZDODQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksICA4IFNlcCAyMDE3IDE1OjQ2OjE1ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXl3MC1mMTgyLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHM2MnNvODYwODg0NHl3Zy4wCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMDggU2VwIDIwMTcgMDg6NDY6MTUgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdvb2dsZW1haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bwogICAgICAgICA6Y2M7CiAgICAgICAgYmg9TnhMNGpaR3RxSGR0elc1WWU2SGhwVERDK1UvTmhPQXJVYWl2N0ZDRE1PVT07CiAgICAgICAgYj10Umd5MEdBUE02WVh0OXl5VU81dVljekM0VnF2dVBoZnVHUEJ1ekxXUkduSFRXMkFlc3EvUyt1M3FuelNCTE5MNXkKICAgICAgICAgcG95dms4bjUxK2ZPYXBacjVEcEoyczJ0a0lCZFN4MnppTFhjdEJSK29wNnJOVCtya2dxbFZzK3oybHRoVWpHczgvcUwKICAgICAgICAgNWJkY2JkMXM4Y25DYW0wLzN4T05Idnk4ckVxb1h5WGkrNVI3NWZkR2JSdFlhM3lFMEZRVGl5VVErOEZUK1F0dVBremMKICAgICAgICAgWmN6VDFKZWNzM1lVWThYQy9HWlU2QmVLajhlTXBCWnplK25ZOXo1aXFnS1JaeThla1FSY29MZEZTdEduV2Myd2RUUEUKICAgICAgICAgLzF1Y1RGeHZLeEpjOHEvL3N5eWRDTVRCM2UweHFsaDAwbTFvSlNQbFgrRFJnZVpETFpuaWd4VTFiOUpERFg3T3lZZFQKICAgICAgICAgMGZFdz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG86Y2M7CiAgICAgICAgYmg9TnhMNGpaR3RxSGR0elc1WWU2SGhwVERDK1UvTmhPQXJVYWl2N0ZDRE1PVT07CiAgICAgICAgYj1lTEkyWjh4dWM5dDNlNW11YXFEMVplRWZaOUQwQm50dnYyZGFvNUp6ME5IMmFxTGM4VW5VMmZMaGdML1JwTWRQSkoKICAgICAgICAgZVEzanZ5MXh2cklvdXpKZzFHTUFrajFRNEJleVk0bk4yb2tIdDR0QnI0SVBKT2FPOGYxdUhYZGRxWHdsaXl0VUE3bDEKICAgICAgICAgaUsvS3NKdzlkZ241QWxmbmJGSTJUbngzWlBxQzlBYVBPa0J1UHFoYXFyMGNyNmRuRkNjZ0ZWMnM2dUZtVEN6b2xVV2wKICAgICAgICAgTXo0S0Q5NmpqSlNSWmJER0NDMzVPNWRVR0xRVUp5cm84Q1QyR2licEcycEJoQ0o1YWRDOFRPcFRhMm1KVnZrSEVQWGMKICAgICAgICAgSVJhdkYrV2kxOXB6ZjlDai8vQTdsZ2VaMEYvZkwxY3pFbWdsYUxKWEYwUlg1RVpZeGVOOGNJQStPNU9OWTlLTStURk8KICAgICAgICAgOStjUT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVZ0krTFlxQ09VcGs5VlBBVFVyUm1kU3ZNOVJzSmFIb3N4MWhaSmduVytSRXlCZVdjbHAKCWQ1dHBZYnk2dURqUzBIRVNXTlhXMDNPTDdQZnc1QT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FBNDU3UGtROE40ZS92MVhLVGQyU1ZxVEVSdHZsNlBoekFRS3MxaUQvSHhlRDkyVUNlMW95SmVHTzJRUk1WZFIvWEJGNXR4Wk53WEU0ekR3eGZSViswPQpYLVJlY2VpdmVkOiBieSAxMC4zNy4xMDcuODEgd2l0aCBTTVRQIGlkIG8xN21yMTE4NjUzMHlibS41MS4xNTA0ODg1NTc0NDY0OwogRnJpLCAwOCBTZXAgMjAxNyAwODo0NjoxNCAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTI5LjE1Ny4xOTggd2l0aCBIVFRQOyBGcmksIDggU2VwIDIwMTcgMDg6NDY6MTMgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxvcC55NThsM2N2bWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KUmVmZXJlbmNlczogPENBS3VWekJTLVVSUGNtaTgxUjIteG9MUkpiUFFmQjg4N2ItdStNTlBoQlRmN2hUNkZ5Z0BtYWlsLmdtYWlsLmNvbT4KIDwyZjEzYWU0Zi03NTRhLTQ1YjEtNTg4OC0yZjMyNTNlNDg0ZmFAYXBhY2hlLm9yZz4gPENBS0RVTjF0dGlaN1JSamhmRXk2bV9XeWVUcHIxdnFDWXg4RDgzQ3ZhX0JoM1h4Qzd4UUBtYWlsLmdtYWlsLmNvbT4KIDxvcC55NThsM2N2bWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KRnJvbTogVGlib3IgRGlnYW5hIDx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+CkRhdGU6IEZyaSwgOCBTZXAgMjAxNyAxNzo0NjoxMyArMDIwMApNZXNzYWdlLUlEOiA8Q0FLdVZ6QlJVX2RTWDVVenpYbytwdXdKWnRhaj1rWkFQYm9LRU1RVVJwUzhXNkdfdzJRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogVXNlcnMgY2FuIGFzc2lnbiBGaXggVmVyc2lvbi9zIGluIEppcmEKVG86IFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KQ2M6IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LCBBbmRlcnMgSGFtbWFyIDxhbmRlcnNAaGFtbWFyLm5ldD4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwODllMDgyNjRlNmMxN2Y5MTcwNTU4YWY3YTgxIgoKLS0wODllMDgyNjRlNmMxN2Y5MTcwNTU4YWY3YTgxCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpEb2VzIGl0IG1lYW4gdGhhdCB3ZSBoYXZlIHRvIHBvc3QgbmV3IFZvdGUgb24gc2VwYXJhdGUgTWF2ZW4gU2NoZW1lPwoKT24gRnJpLCBTZXAgOCwgMjAxNyBhdCAxMDowNSBBTSwgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgp3cm90ZToKCj4gVGhpcyBpcyBwYXJ0IG9mIHRoZSBzY2hlbWUgaW4gSmlyYS4KPiBTaW5jZSB0aGVyZSdzIGEgcHJvcG9zYWwgdG8gbWFrZSBhIHNlcGFyYXRlIE1hdmVuIFNjaGVtZSwgdGhpcyByZXF1ZXN0Cj4gc2hvdWxkIGJlIGFkZGVkIGFzIHdlbGwuCj4KPiBSb2JlcnQKPgo+Cj4KPiBPbiBGcmksIDA4IFNlcCAyMDE3IDA4OjUzOjMxICswMjAwLCBBbmRlcnMgSGFtbWFyIDxhbmRlcnNAaGFtbWFyLm5ldD4KPiB3cm90ZToKPgo+IEkgYWdyZWUsIGl0J3MgZm9yIHVzIGFzIGNvbW1pdHRlcnMgdG8gZGVjaWRlLgo+Pgo+PiAvQW5kZXJzCj4+Cj4+IE9uIEZyaSwgU2VwIDgsIDIwMTcgYXQgODo1MSBBTSwgTWljaGFlbCBPc2lwb3YgPG1pY2hhZWxvQGFwYWNoZS5vcmc+Cj4+IHdyb3RlOgo+Pgo+PiBBbSAyMDE3LTA5LTA4IHVtIDAwOjQyIHNjaHJpZWIgVGlib3IgRGlnYW5hOgo+Pj4KPj4+IEkgZm91bmQgb3V0IHRoYXQgdXNlcnMgY3JlYXRlIGFuIGlzc3VlIGluIEppcmEgYW5kICphc3NpZ24gdmVyc2lvbiogWzFdLgo+Pj4+IEkgcmVtZW1iZXIgdGhpcyBkaWQgbm90IGhhcHBlbiBpbiBvbGQgSmlyYS4KPj4+PiBTbyBJIGRlY2lkZSB0byByZXBvcnQgYSB0aWNrZXQgaW4gSU5GUkEuCj4+Pj4KPj4+PiBEbyB5b3UgaGF2ZSB0aGUgc2FtZSBleHBlcmllbmNlcz8KPj4+PiBXaGF0J3MgeW91ciBvcGluaW9uIGFib3V0IGl0Pwo+Pj4+Cj4+Pj4gWzFdOiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0lORlJBLTE1MDQ3Cj4+Pj4KPj4+Pgo+Pj4gVGhpcyBpcyBhbiBhbm5veWluZyBidWcuIEkgY29uc3RhbnRseSByZW1vdmUgdXNlci1hc3NpZ25lZCB2ZXJzaW9uIHdoZW4gSQo+Pj4gc2VlIGl0LCBiZWNhdXNlIHRoaXMgZGVjaXNpb24gc2hvdWxkIG9ubHkgYmUgdXB0byB1cywgbm90IHRoZW0uCj4+Pgo+Pj4gTWljaGFlbAo+Pj4KPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+Cj4+PgoKCi0tIApDaGVlcnMKVGlib3IKCi0tMDg5ZTA4MjY0ZTZjMTdmOTE3MDU1OGFmN2E4MS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NzI1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBEZWMgIDMgMTY6MzQ6NTUgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzI1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEQwRUY5MTAwRTQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAgMyBEZWMgMjAxNyAxNjozNDo1NSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ4NTkgaW52b2tlZCBieSB1aWQgNTAwKTsgMyBEZWMgMjAxNyAxNjozNDo1NSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDc2NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAzIERlYyAyMDE3IDE2OjM0OjU1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDc1NiBpbnZva2VkIGJ5IHVpZCA5OSk7IDMgRGVjIDIwMTcgMTY6MzQ6NTUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMDMgRGVjIDIwMTcgMTY6MzQ6NTUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC15YjAtZjE3MC5nb29nbGUuY29tIChtYWlsLXliMC1mMTcwLmdvb2dsZS5jb20gWzIwOS44NS4yMTMuMTcwXSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEQzODU0MUEwMTgwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAgMyBEZWMgMjAxNyAxNjozNDo1NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC15YjAtZjE3MC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBwMTI4c281NzQ1MjMzeWJhLjcKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAwMyBEZWMgMjAxNyAwODozNDo1NCAtMDgwMCAoUFNUKQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDQ3dXFyZkJqa2hpcWl0dmUvc1JheCtuZXZMUlZVME9STVc5L1R4TTJpK3hIRE1YTEZ2CglmVUcvV3VVb3YyVjdjcDlYMmFLdE9RckVlekUyTVFEdlVRTG5BcVE9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1aekJSQnkycmNhSWIrSWxudWY0TUtuTDdHZ3pjWE9mMFh4ZEFMVzB6Q1VhQWhRNDY2OC8vZUU4UEpLcmZKWVFXYnJ0RDg4UjZybHZVVUpzYUlDZUFZPQpYLVJlY2VpdmVkOiBieSAxMC4zNy4xMjYuNiB3aXRoIFNNVFAgaWQgejZtcjc1Njg1Mzl5YmMuNS4xNTEyMzE4ODkyMzIxOyBTdW4sCiAwMyBEZWMgMjAxNyAwODozNDo1MiAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTI5LjEyMi4xNTEgd2l0aCBIVFRQOyBTdW4sIDMgRGVjIDIwMTcgMDg6MzQ6NTEgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDxDQUt1VnpCUjg0c210NWNuYmM3Q213X212OUZmUXhxZ0JXUzBRKzZrMnhBYitxVlNXeGdAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQUt1VnpCU1g4eE03M1I1NzdKM0JDTC1ab2VqPXFHd29nM1grZFc0d3lnWmk1UkJwaGdAbWFpbC5nbWFpbC5jb20+CiA8Q0FDY2VmZ2VILUs3Z0FENFBxQlZzcFlfVTBreThwdDEyM1dZaD1vTzdvMVBjN3I5ZHh3QG1haWwuZ21haWwuY29tPiA8Q0FLdVZ6QlI4NHNtdDVjbmJjN0Ntd19tdjlGZlF4cWdCV1MwUSs2azJ4QWIrcVZTV3hnQG1haWwuZ21haWwuY29tPgpGcm9tOiBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+CkRhdGU6IFN1biwgMyBEZWMgMjAxNyAxNzozNDo1MSArMDEwMApYLUdtYWlsLU9yaWdpbmFsLU1lc3NhZ2UtSUQ6IDxDQUt1VnpCUlh0SENQRFdwODJCUkNlSz05REQ4YitKVXI1aWplZFFieVJ2WEowWDFWZlFAbWFpbC5nbWFpbC5jb20+Ck1lc3NhZ2UtSUQ6IDxDQUt1VnpCUlh0SENQRFdwODJCUkNlSz05REQ4YitKVXI1aWplZFFieVJ2WEowWDFWZlFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBTdXJlZmlyZSBhdCBKYXZhIDkgYW5kIEphdmEgMTAKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNGU1YjY2NWQzMTBmMDU1ZjcyMmUzZSIKCi0tMDAxYTExNGU1YjY2NWQzMTBmMDU1ZjcyMmUzZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKNiBtb250aHMgaXMgcXVpdGUgZmFyIGF3YXkuCk5vIHJlYXNvbiB0byBiZSBhZnJhaWQgYmVjYXVzZSBJIGNhbiBjaGVjayBpdCBub3dhZGF5cyBhbmQgd2Ugd2lsbCBzZWUgaG93Cm11Y2ggb2YgdGhlIElUcyBpcyBicm9rZW4uClRoZSBwcm9ibGVtIGluIEphdmEgOSB3YXMgdGhhdCBPcmFjbGUgYnJva2UgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgYW5kCnRoZXkgZGlkIG5vdCBnaXZlIHVzIGEgY2hhbmNlIHRvIHJlLWludHJvZHVjZSBleHRlbnNpb25zIChyZW1vdmVkIG1vZHVsZXMpCmJhY2sgdG8gSkRLLiBJIGV4cGVjdGVkIGZyb20gT3JhY2xlIHRvIHJlbGVhc2UgZXh0ZW5zaWJsZSBKREsgKG1vZHVsZXMvYXBpCisgbGFuZ3VhZ2VzKS4KSWYgdGhleSBkaWQgbm90IGJyZWFrIGl0IGFnYWluIGluIDEwIHRoZW4gaXQgc2hvdWxkIG5vdCBtZWFuIGFueSBkaWZmZXJlbmNlCmJldHdlZW4gOSBhbmQgMTAgZm9yIG91ciB0ZXN0cy4KCgpPbiBTdW4sIERlYyAzLCAyMDE3IGF0IDU6MjMgUE0sIFRpYm9yIERpZ2FuYSA8dGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tPgp3cm90ZToKCj4gTG9vaywgSSBkbyBub3Qgd2FudCB0byBmb3JjZSBvdXIgY29udHJpYnV0b3JzIHRvIHJlbHkgb24gamF2YSA5IG9yIGphdmEKPiAxMC4gVGhleSBjYW4gdXNlIHRoZWlyIGRlZmF1bHQgamRrLgo+IE15IHN0cmF0ZWd5IGlzIHRvIGZhbGxiYWNrIHRvIGRlZmF1bHQgamRrIHVubGVzcyBqZGsuaG9tZSBzeXN0ZW0gcHJvcGVydHkKPiBpcyBzcGVjaWZpZWQuCj4gSSBhbSBmaW5lIHdpdGggSmVua2lucyBtdWx0aS1icmFuY2ggaWYgaXQgZmFpbHMgb24gamF2YSA5IGJlZm9yZQo+IGludGVncmF0aW5nIGEgYnJhbmNoIHRvIG1hc3Rlci4KPiBJdCBoYXBwZW5zIHRoYXQgdGhlIGJyb2tlbiBicmFuY2ggaGFzIHRvIGJlIG92ZXJyaWRkZW4gYnkgYnVpbGQgZml4IGFuZAo+IHRoZW4gdGhlIHN1Y2Nlc3MgY2FuIGJlIGludGVncmF0ZWQgdG8gbWFzdGVyLgo+Cj4gT24gU3VuLCBEZWMgMywgMjAxNyBhdCA0OjAzIFBNLCBFbnJpY28gT2xpdmVsbGkgPGVvbGl2ZWxsaUBnbWFpbC5jb20+Cj4gd3JvdGU6Cj4KPj4gVGlib3IsCj4+IFRoZXJlIGFyZSBJVCB0ZXN0cyB3aGljaCBjaGVjayBmb3IgZXhhY2x0eSBqYXZhLnNwZWNpZmljYXRpb24udmVyc2lvbj05Cj4+IEhvdyAgYXJlIHdlIGdvaW5nIHRvIGRlYWwgd2l0aCB0aGVtPwo+PiBJdCBzZWVtcyB0aGF0IGEgbmV3IG1ham9yIHJlbGVhc2Ugd2lsbCBhcHBlYXIgIGV2ZXJ5IDYgbW9udGhzCj4+IElNSE8gaXQgd2lsbCBiZSBlbm91Z2ggdG8gZHJvcCB0aGF0IGFzc2VydGlvbgo+Pgo+PiBFbnJpY28KPj4KPj4gSWwgZG9tIDMgZGljIDIwMTcsIDEzOjIxIFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4gaGEKPj4gc2NyaXR0bzoKPj4KPj4gPiBBcyBkaXNjdXNzZWQgYmVmb3JlIGFib3V0IEphdmEgOS4KPj4gPiBJIHdpbGwgdHJ5IHRvIHJ1biBTdXJlZmlyZSBpbnRlZ3JhdGlvbiB0ZXN0cyB3aXRoIEpESyA5IGFuZCAxMCBvbiBMaW51eAo+PiBhbmQKPj4gPiBJIHdpbGwgYWRkIEpESyA4LzkgdG8gQ0kgcGlwZWxpbmUuCj4+ID4gSSBkbyBub3QgZXhwZWN0IGFueSBidWdzIGhlcmUuIE1heWJlIG9ubHkgZW5hYmxpbmcgc29tZSBtb2R1bGVzIGZvciB0aGUKPj4gSVRzCj4+ID4gaW4gd29yc3QgY2FzZS4KPj4gPgo+PiA+IFN1cmVmaXJlIHN1cHBvcnRzIEppZ3NhdyBhbHJlYWR5IG5vdyBpbiBvcmlnaW4vbWFzdGVyLgo+PiA+Cj4+ID4gVGhlcmUgYXJlIG1vcmUgaW1wb3J0YW50IHR3byBvciB0aHJlZSBidWdzIHdoZW4gRG9ja2VyIGJ1aWxkIGNyYXNoZXMgYW5kCj4+ID4gdGhpcyBoYXMgdG8gYmUgZml4ZWQgdGlsbCAyLjIxLjAgYXMgd2VsbC4KPj4gPgo+PiA+IENoZWVycwo+PiA+IFRpYm9yCj4+ID4KPj4gLS0KPj4KPj4KPj4gLS0gRW5yaWNvIE9saXZlbGxpCj4+Cj4KPgo+Cj4gLS0KPiBDaGVlcnMKPiBUaWJvcgo+CgotLTAwMWExMTRlNWI2NjVkMzEwZjA1NWY3MjJlM2UtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDE0OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgT2N0ICA1IDIzOjE4OjUzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDE0OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBEMkNBQjEwOTk2Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgIDUgT2N0IDIwMTcgMjM6MTg6NTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyODQyNyBpbnZva2VkIGJ5IHVpZCA1MDApOyA1IE9jdCAyMDE3IDIzOjE4OjUzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyODM0NCBpbnZva2VkIGJ5IHVpZCA1MDApOyA1IE9jdCAyMDE3IDIzOjE4OjUzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjgzMzAgaW52b2tlZCBieSB1aWQgOTkpOyA1IE9jdCAyMDE3IDIzOjE4OjUzIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAwNSBPY3QgMjAxNyAyMzoxODo1MyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDYwRDg1QzM1QzkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsICA1IE9jdCAyMDE3IDIzOjE4OjUyICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi44NzkKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi44NzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nb29nbGVtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgZlBMOFVaSFRmUmIzIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVGh1LCAgNSBPY3QgMjAxNyAyMzoxODo1MSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXF0MC1mMTc0Lmdvb2dsZS5jb20gKG1haWwtcXQwLWYxNzQuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNi4xNzRdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgOEJDRDk1RjNEMQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgIDUgT2N0IDIwMTcgMjM6MTg6NTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtcXQwLWYxNzQuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgZDEzc28yNzc4NTg0MnF0YS41CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMDUgT2N0IDIwMTcgMTY6MTg6NTAgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdvb2dsZW1haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bwogICAgICAgICA6Y2M7CiAgICAgICAgYmg9Qy9QbTRzT0gyUEVLcGVsSGVtVG1kRHMveVhQM3dlVjA0am9hOE9BNFNiVT07CiAgICAgICAgYj1rZXpabkNBeWE2YlNyNGxlMnBVUElVbWd5QXJlODZWVWU0Snd5TVVLbU1BWHpOS3M3a3JMUEc0QTYvVGR2M1VRR3gKICAgICAgICAgRGJNbVR4QUkrQ3dXamlkYXhNQk53c3BtMjI3OHowV3NwalRjSUR0YTRQR05EU0dENTh0ek1lbVdZRzRuakhwek56M3EKICAgICAgICAgd2RWbTQyM0lrZmZ4dm54RWRMZDBsNm95YThhbUJlUlVZOE42NXNZUzgxUjlzVGdRNFNNR2dneU40WlJhRGZNQ3RrcGMKICAgICAgICAgd3MxZWI0MjRxTlhtYVNjQmx1NDNwek41SHFBcjVtZW9lTHRsckxsckcrekQyd0R5ZXJJUk4yc01YUSt1WU8vWktaUVAKICAgICAgICAgOGhKNzdLMmM3ODlDQU5QcHNUVytmYTZSQjF4MnE4VjIySTY2eFF6cFJaei93S1dQNXFlYzFrZnZVVWdSNDd3NzY2aUYKICAgICAgICAgazI5QT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG86Y2M7CiAgICAgICAgYmg9Qy9QbTRzT0gyUEVLcGVsSGVtVG1kRHMveVhQM3dlVjA0am9hOE9BNFNiVT07CiAgICAgICAgYj1Gc1Jyd1BwR2pXWUY4anF0Z2JWMEliZGEzNHQ1ZCtQZ1I0T1J5eTFPcTVFcHNveCtKTFVEdGJtZm5ydXl6TjVTL3QKICAgICAgICAgb3g3dDZqc3JScnoybk5UZU1BakVKWW5hR3FPM1ZpaEl6eGdwZG02UzJuRGdJbll3S25NNm5uMXRDOGZNVFdmS0s2ZUIKICAgICAgICAgRGZRNFpZRTE2OFdzWlkrd3VSL3cyaWhUa21pbTFvK09lTjZFN2luRkFmcTRaMG1LT1lwK0ZxcHRjaEJXRVBSVmFjd1IKICAgICAgICAgK3ZodENMbnNvZTduVXR2bzBIUUtRZldmMGpmaHE5Tk1pSXdvYlFYeUFPL3NRTE55NGxaWTRUYnlRdFJMSzlLT1FMaEgKICAgICAgICAgeHIrMmFMRUR0UkpzTHA4U2laViswcFZXK3JtSmpCVy96aXpsT21neHpndHJ2OVRqT1MwM09Odk9nM0lnckk0bUNKZGEKICAgICAgICAgZWE2QT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVmdPb3BxVDdmOUsyVWFJK3RZWHZNUkZrZUQ4NXpaRzNTYm5zZnZ4c01UWisrNUJEUVkKCTdzRWI5VGVZSk5wcEo2VnZnaTRiZUFHTjFIWGVDcTNjVmRYYUhUaz0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUJOeFQzVENNNmFhRC8za3M1YVUzekZxQTZXM3J5bmNDeERwK2t1WTFYa2swVXlKVWxlSDFPOXhIZ1FWUk5SVVNDWG0zMDJxcDVkQzdtNTR3ZHh5QmM9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjEzLjE5Ny4yIHdpdGggU01UUCBpZCBoMm1yMjk3MDI5eXdkLjU2LjE1MDcyNDU1MjI5NzY7IFRodSwKIDA1IE9jdCAyMDE3IDE2OjE4OjQyIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xMjkuMTkzLjY3IHdpdGggSFRUUDsgVGh1LCA1IE9jdCAyMDE3IDE2OjE4OjQyIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0FDY2VmZ2QrbUxoYWFVYUFTNG5BOU1TYThYOFRDb0VBblczN2lWOURqX29DS0MyWHZBQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8RkUxMDdCNEQtRDdCNC00NzFCLTg3MDktQjE5NzE3MThEMTQwQGFwYWNoZS5vcmc+CiA8Q0FDY2VmZ2ZmZFpHbzdNRDNtZXp6MHJHLUxEYlZCR3FaZllpTzFON21wdExlcnJEcWZRQG1haWwuZ21haWwuY29tPgogPGI4Y2E3NjFlLTMxNWItMDIyNi0zODU3LWYwZDM5MmE3OWRiMEBnbXguZGU+IDxDQUNjZWZnZCttTGhhYVVhQVM0bkE5TVNhOFg4VENvRUFuVzM3aVY5RGpfb0NLQzJYdkFAbWFpbC5nbWFpbC5jb20+CkZyb206IFRpYm9yIERpZ2FuYSA8dGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tPgpEYXRlOiBGcmksIDYgT2N0IDIwMTcgMDE6MTg6NDIgKzAyMDAKTWVzc2FnZS1JRDogPENBS3VWekJSWj1zaDU9YjJSb1R6dlFXUzV6ZzBfOGU5a21NUV85ZGdjVmNreVQwUmUtd0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IE1hdmVuIFN1cmVmaXJlIGFuZCBKVW5pdCA1ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwgQmVuZWRpa3QgUml0dGVyIDxicml0dGVyQGFwYWNoZS5vcmc+CkNjOiBpbmZvQHNvZWJlcy5kZQpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTRkYWFkMmZjODY5MzA1NWFkNGYxODMiCgotLTAwMWExMTRkYWFkMmZjODY5MzA1NWFkNGYxODMKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSGkgQmVuZWRpa3QsCgpXb3VsZCB5b3UgYWdyZWUgd2l0aCB0aGlzIHBsYW4uClNpbmNlIHdlIHRyeSB0byByZWxlYXNlIHZlcnNpb24gMi4yMS4wIHdpdGggSmlnc2F3IG1vZHVsYXJpdHkgd2hpY2ggaXMgSmF2YQo5IHJlbGF0ZWQgZmVhdHVyZSwgd2UgY2FuIG1ha2UgdGhlIHNhbWUgY29tcHJvbWlzZSB3aXRoIEpVbml0NSBpbiBuZXh0CnZlcnNpb24gMi4yMi4wLiBBbHRvdWdoIFN1cmlmaXJlIGlzIGNvbXBpbGVkIHdpdGggamF2YWMgLXNvdXJjZSAxLjYgLXRhcmdldAoxLjYsIGFuZCBKVW5pdCA1L0phdmEgMS44IHByb3ZpZGVyIGlzIHN0YW5kYWxvbmUgamFyIGZpbGUgd2hpY2ggZG9lcyBub3QKZm9yY2UgdGhlIHBsdWdpbiBpdHNlbGYgdG8gbG9hZCBKYXZhIDggY2xhc3NlcyBmcm9tIHRoZSBwcm92aWRlciwgd2UgY2FuCmZyZWVseSB3b3JrIG9uIEpVbml0IDUgcHJvdmlkZXIgYWZ0ZXIgdGhlIHZlcnNpb24gMi4yMS4wLkppZ3NhdyBoYXMgYmVlbgpyZWxlYXNlZC4gSSBndWVzcyBJIHdpbGwgc3RhcnQgdGhlIHJlbGVhc2UgVm90ZSBuZXh0IHdlZWsgYW5kIHRoZW4gd2UgY2FuCnBpY2t1cCB5b3VyIGNvbW1pdHMgZnJvbSB0aGUgYnJhbmNoIGp1bml0NSwgc3F1YXNoIHRoZW0gaW50byBvbmUgc2luZ2xlCmNvbW1pdCBhbmQgcmViYXNlIG9uIHRoZSB0b3Agb2YgZnV0dXJlIG1hc3Rlci9IRUFELgpJIGJlbGlldmUgeW91IHdhbnQgdG8gbWVyZ2Ugc29tZSBtb3JlIGZpeGVzIGZyb20gSlVuaXQgdGVhbSBhZnRlcndhcmRzIGFuZAptYXliZSB0byBhZGQgc29tZSBtb3JlIHRlc3RzLgoKV2hhdCBkbyB5b3UgdGhpbmssIHdvdWxkIGl0IGJlIHBvc3NpYmxlIGZvciB5b3U/CgpDaGVlcnMKVGlib3IKCk9uIFN1biwgT2N0IDEsIDIwMTcgYXQgNToxMiBQTSwgRW5yaWNvIE9saXZlbGxpIDxlb2xpdmVsbGlAZ21haWwuY29tPiB3cm90ZT0KOgoKPiBTb3JyeQo+IEkgd2FudGVkIHRvIHJlcGx5IHRvIGFub3RoZXIgbWVzc2FnZSBmcm9tIEJlbmVkaWt0Cj4gRW5yaWNvCj4KPiBJbCBkb20gMSBvdHQgMjAxNywgMTY6MTcgS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+IGhhCj4gc2NyaXR0bzoKPgo+ID4gSGkgRW5yaWNvLAo+ID4KPiA+IE9uIDAxLzEwLzE3IDE2OjAwLCBFbnJpY28gT2xpdmVsbGkgd3JvdGU6Cj4gPiA+IEJlbmVkaWt0LAo+ID4gPiBkaWQgeW91IHRyeSB0byB1cGRhdGUgYWxsIG9mIHlvdXIgbWF2ZW4gcGx1Z2lucyB0byBsYXRlc3QgdmVyc2lvbj8KPiA+ID4gQ2FuIHlvdSBzaGFyZSBzb21lIHN0YWNrdHJhY2U/IFRoaXMgd2lsbCBnaXZlIGEgZmlyc3QgaGludCB3aXRob3V0Cj4gaGF2aW5nCj4gPiA+IHRvIGJ1aWxkIGpVRERJCj4gPgo+ID4gVGhpcyBpcyB0aGUgd3JvbmcgbWFpbGluZyBsaXN0Li4uVXNlcnMgbGlzdCB3YXMgdGhlIHN1YmplY3QgYWJvdXQgalVEREkKPiA+IDstKS4uCj4gPgo+ID4gTm90IHJlbGF0ZWQgdG8gU3VyZWZpcmUgYW5kIEpVbml0IDUgLi4uCj4gPgo+ID4gS2luZCByZWdhcmRzCj4gPiBLYXJsIEhlaW56IE1hcmJhaXNlCj4gPiA+IENoZWVycwo+ID4gPgo+ID4gPiBFbnJpY28KPiA+ID4KPiA+ID4gSWwgc2FiIDMwIHNldCAyMDE3LCAxMDozNCBCZW5lZGlrdCBSaXR0ZXIgPGJyaXR0ZXJAYXBhY2hlLm9yZz4gaGEKPiA+IHNjcml0dG86Cj4gPiA+Cj4gPiA+PiBIZWxsbywKPiA+ID4+Cj4gPiA+PiBmb3Igb3ZlciBhIHllYXIgbm93IEk9RTI9ODA9OTltIHRyeWluZyB0byBoZWxwIGdldHRpbmcgSlVuaXQgNSBzdXBwbz0KcnQgaW50bwo+ID4gTWF2ZW4KPiA+ID4+IFN1cmVmaXJlLiBUaGlzIGhhcyBiZWVuIGhhcmQgc2luY2UgVGlib3Igc2VlbXMgdG8gYmUgdGhlIG9ubHkgb25lCj4gPiA+PiBtYWludGFpbmluZyBNYXZlbiBTdXJlZmlyZSBhbmQgaGUgaGFkIHRvIGNvbWUgd2l0aCBvdGhlciB0aGluZ3MuCj4gPiA+Pgo+ID4gPj4gRm9yIHRoaXMgcmVhc29uIEk9RTI9ODA9OTlkIGxpa2UgdG8gYXNrIG90aGVyIE1hdmVuIG1haW50YWluZXJzIHRvIGg9CmVscCB3aXRoCj4gdGhlCj4gPiA+PiBKVW5pdCA1IHN1cHBvcnQuIEk9RTI9ODA9OTltIGhhcHB5IHRvIGRvIHRoZSB3b3JrLCBidXQgST1FMj04MD05OW0gYz0Kb25zdGFudGx5IGJsb2NrZWQKPiBieQo+ID4gPj4gb2JzY3VyZSBidWlsZCBmYWlsdXJlcyB3aGljaCBJPUUyPTgwPTk5bSB1bmFibGUgdG8gcmVzb2x2ZSBteXNlbGYgb3I9CiBieSBsYWNrCj4gb2YKPiA+ID4+IGNvZGUgcmV2aWV3IHVuZCBtZXJnZSBvZiBjaGFuZ2VzLgo+ID4gPj4KPiA+ID4+IC0gV29yayBvbiBKVW5pdDUgc3VwcG9ydCBpcyBjdXJyZW50bHkgZG9uZSBpbiB0aGUganVuaXQ1IGJyYW5jaC4KPiA+ID4+IC0gSSBoYXZlIGRyYWZ0ZWQgYSBQcm92aWRlciBMb29rdXAgaW1wbGVtZW50YXRpb24gaW4gdGhlIGp1bml0NQo+IGJyYW5jaCwKPiA+ID4+IGJ1dCBJIGRvbj1FMj04MD05OXQga25vdyB3aGV0aGVyIGl0IHdvcmtzIGJlY2F1c2UgSSBjYW49RTI9ODA9OTl0IGdlPQp0IHRoZSBpbnRlZ3JhdGlvbgo+ID4gdGVzdHMKPiA+ID4+IHJ1bm5pbmcKPiA+ID4+IC0gVGhlcmUgaXMgYW4gb3BlbiBQUiB0byBtZXJnZSB0aGUgbWFzdGVyIGJyYW5jaCBiYWNrIGludG8ganVuaXQ1Cj4gPiBicmFuY2gsCj4gPiA+PiBidXQgaXQgaGFzIGJ1aWxkIGZhaWx1cmVzIEkgZG9uPUUyPTgwPTk5dCB1bmRlcnN0YW5kIFsxXQo+ID4gPj4KPiA+ID4+IFBsZWFzZSBoZWxwIQo+ID4gPj4gQ2hlZXJzLAo+ID4gPj4gQmVuZWRpa3QKPiA+Cj4gLS0KPgo+Cj4gLS0gRW5yaWNvIE9saXZlbGxpCj4KCgoKLS09MjAKQ2hlZXJzClRpYm9yCgotLTAwMWExMTRkYWFkMmZjODY5MzA1NWFkNGYxODMtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDI0NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gT2N0IDE1IDExOjA3OjM1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI0NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBCMjJGNkM1QTQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxNSBPY3QgMjAxNyAxMTowNzozNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDkwMDE3IGludm9rZWQgYnkgdWlkIDUwMCk7IDE1IE9jdCAyMDE3IDExOjA3OjM1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4OTkxOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNSBPY3QgMjAxNyAxMTowNzozNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg5OTA4IGludm9rZWQgYnkgdWlkIDk5KTsgMTUgT2N0IDIwMTcgMTE6MDc6MzUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTUgT2N0IDIwMTcgMTE6MDc6MzUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1xdDAtZjE3My5nb29nbGUuY29tIChtYWlsLXF0MC1mMTczLmdvb2dsZS5jb20gWzIwOS44NS4yMTYuMTczXSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEYxQThBMUEwMEM1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxNSBPY3QgMjAxNyAxMTowNzozNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1xdDAtZjE3My5nb29nbGUuY29tIHdpdGggU01UUCBpZCB6MTlzbzI2Nzg1NzM4cXRnLjExCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTUgT2N0IDIwMTcgMDQ6MDc6MzQgLTA3MDAgKFBEVCkKWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FYRHpzWjdtYnJtWnVXUW94dWMySTVITEFodk1BMnkxMHBibDdhZjhJZC9QTTU0ME9JcgoJS2dIeS9hRGp0QU85TFBlY2ZNM1FMWERSUkkvRVhuWU4wTmJqZlJRPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArVC8wdERsQmxtSitMSEJiSERkRnIzSUQzV3ZQS3drL29GbExwNzVhdFB1OUdNeFM3OVZYWW1nVTFjczZTeHRUQ0VodVAvOXpvVTZmU1RCcUxLUkVEST0KWC1SZWNlaXZlZDogYnkgMTAuMzcuMTkwLjc2IHdpdGggU01UUCBpZCBkMTJtcjQwMDI2NDl5Ym0uMjA0LjE1MDgwNjU2NTM0ODM7CiBTdW4sIDE1IE9jdCAyMDE3IDA0OjA3OjMzIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xMy4yNTEuNjUgd2l0aCBIVFRQOyBTdW4sIDE1IE9jdCAyMDE3IDA0OjA3OjMyIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8RkUxMDdCNEQtRDdCNC00NzFCLTg3MDktQjE5NzE3MThEMTQwQGFwYWNoZS5vcmc+ClJlZmVyZW5jZXM6IDxGRTEwN0I0RC1EN0I0LTQ3MUItODcwOS1CMTk3MTcxOEQxNDBAYXBhY2hlLm9yZz4KRnJvbTogVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPgpEYXRlOiBTdW4sIDE1IE9jdCAyMDE3IDEzOjA3OjMyICswMjAwClgtR21haWwtT3JpZ2luYWwtTWVzc2FnZS1JRDogPENBS3VWekJSbWhQaTlVQk5HcUVfcFExOG1wRE01S19fcVRxZlRDQmllX3EzX0owX1hId0BtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JRDogPENBS3VWekJSbWhQaTlVQk5HcUVfcFExOG1wRE01S19fcVRxZlRDQmllX3EzX0owX1hId0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IE1hdmVuIFN1cmVmaXJlIGFuZCBKVW5pdCA1ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjA4OWUwODIzMGNiYzkyZWViYTA1NWI5M2U1YzEiCgotLTA4OWUwODIzMGNiYzkyZWViYTA1NWI5M2U1YzEKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSGkgQmVuZWRpa3QsCgpJIGFtIGZpbmUgbm93IGFmdGVyIG15IGlsbG5lc3MsIHRoeC4KSSBhbSBmaW5pc2hpbmcgYnJhbmNoIFNVUkVGSVJFLTEyNjJfMi4gSnVzdCB0byBhZGQgZmV3IG1vcmUgdGVzdHMgYW5kIHRoZW4KSSB3aWxsIGN1dCBhIHJlbGVhc2UuIEkgd2FudCB0byBhZGQgYSBmaXggZm9yIFNVUkVGSVJFLTEzNzQgd2hpY2ggd291bGQgYmUKZmFzdCB0byBkby4KVGhlbiBJIGFtIHJlYWR5IGZvciB5b3UgYW5kIEpVbml0NS4KCkkgaGF2ZSBxdWVzdGlvbnMgcmVnYXJkaW5nIG91ciBKVW5pdCA1IFN1cmVmaXJlIFByb3ZpZGVyIGltcGxlbWVudGVkIGluClN1cmVmaXJlLgoKSXMgaXQgaW1wbGVtZW50ZWQgZXhhY3RseSBpbiB0aGUgc2FtZSBsaWtlIHRoZSBvcmlnaW4gYnkganVuaXQ1IHRlYW0/CkkgYW0gYXNraW5nIGJlY2F1c2UgSSBzYXcgdGhlIGltcGxlbWVudGF0aW9uIG1hZGUgYnkganVuaXQ1IHRlYW0gYW5kIGl0IGlzCm5vdCBsaWtlIG91ciAqSlVuaXRDb3JlUHJvdmlkZXIqLiBUaGlzIG1lYW5zIHRoYXQgdGhleSBkbyBub3QgbWFwIG1ldGhvZAo8LT4gVGhyZWFkIGluICpSdW5MaXN0ZW5lciAqYW5kIHRodXMgdGhlIHByb3ZpZGVyIHdvdWxkIG5vdCBhc3NvY2lhdGUgdGVzdApyZXBvcnQgbG9ncyBhbmQgVGhyZWFkIHByb3Blcmx5IGFuZCBsb2dzIHdpbGwgYmUgbWl4ZWQuCgpOZXh0IHF1ZXN0aW9uIGlzIHJlZ2FyZGluZyB0aGUgZmVhdHVyZSByZS1ydW4uIEl0IGFsc28gZXhpc3RzIGluCipKVW5pdENvcmVQcm92aWRlcgoqYW5kICpKVW5pdDRQcm92aWRlciouIERvZXMgaXQgZXhpc3QgaW4gb3VyIHByb3ZpZGVyIHRvby4KQWxzbyB3ZSBuZWVkIHRvIGhhdmUgYSBmZWF0dXJlIHdoZXJlIEpVbml0IGV4ZWN1dGlvbiBpcyBzdG9wcGVkIHdoaWNoIGNhbgpiZSBjb25maWd1cmVkIGJ5ICpza2lwQWZ0ZXJGYWlsdXJlQ291bnQgKmluIFBPTS4gV2UgaGF2ZSBpbXBsZW1lbnRhdGlvbiBpbgpTdXJlZmlyZSBwcm92aWRlcjoKCm5vdGlmaWVyLmFzRmFpbEZhc3QoIGlzRmFpbEZhc3QoKSApOwoKUmVnYXJkaW5nIGxvZ2dlciBpbiBmb3JrZWQgcHJvdmlkZXIsIHdoaWNoIGhhcyB0byBkbyB3aXRoIHBhcmFsbGVsIGV4ZWMsIEkKdGhpbmsgdGhlIGxvZ3MgZ28gdG8gdGhlIGR1bXAgZmlsZSBpbnN0ZWFkIG9mIHJlcG9ydHMgZmlsZSwgYmVjYXVzZSBTVERPVVQKaXMgbm90IHdyYXBwZWQgaW4gSlVuaXQ1J3MgaW1wbGVtZW50YXRpb24gYW5kIHRoaXMgc2hvdWxkIGJlIGNhbGxlZDoKCnN0YXJ0Q2FwdHVyZSggbGlzdGVuZXIgKQoKClNlZSBteSBxdWVzdGlvbnMgaW4gaHR0cHM6Ly9naXRodWIuY29tL3h3aWtpL3h3aWtpLXBsYXRmb3JtL2NvbW1pdC8KNTI1OGEyMjMwMTk3N2E3ZDFlZTcyNzZjZGQ4MWFmNzY0MWY0ZjVhYwoKRG8gd2UgaGF2ZSBpbnRlZ3JhdGlvbiB0ZXN0cyBmb3IgdGhlc2UgZmVhdHVyZXM/CgoKQ2hlZXJzClRpYm9yCgoKCk9uIFNhdCwgU2VwIDMwLCAyMDE3IGF0IDEwOjM0IEFNLCBCZW5lZGlrdCBSaXR0ZXIgPGJyaXR0ZXJAYXBhY2hlLm9yZz4Kd3JvdGU6Cgo+IEhlbGxvLAo+Cj4gZm9yIG92ZXIgYSB5ZWFyIG5vdyBJPUUyPTgwPTk5bSB0cnlpbmcgdG8gaGVscCBnZXR0aW5nIEpVbml0IDUgc3VwcG9ydCBpbj0KdG8gTWF2ZW4KPiBTdXJlZmlyZS4gVGhpcyBoYXMgYmVlbiBoYXJkIHNpbmNlIFRpYm9yIHNlZW1zIHRvIGJlIHRoZSBvbmx5IG9uZQo+IG1haW50YWluaW5nIE1hdmVuIFN1cmVmaXJlIGFuZCBoZSBoYWQgdG8gY29tZSB3aXRoIG90aGVyIHRoaW5ncy4KPgo+IEZvciB0aGlzIHJlYXNvbiBJPUUyPTgwPTk5ZCBsaWtlIHRvIGFzayBvdGhlciBNYXZlbiBtYWludGFpbmVycyB0byBoZWxwIHc9Cml0aCB0aGUKPiBKVW5pdCA1IHN1cHBvcnQuIEk9RTI9ODA9OTltIGhhcHB5IHRvIGRvIHRoZSB3b3JrLCBidXQgST1FMj04MD05OW0gY29uc3RhPQpudGx5IGJsb2NrZWQgYnkKPiBvYnNjdXJlIGJ1aWxkIGZhaWx1cmVzIHdoaWNoIEk9RTI9ODA9OTltIHVuYWJsZSB0byByZXNvbHZlIG15c2VsZiBvciBieSBsPQphY2sgb2YKPiBjb2RlIHJldmlldyB1bmQgbWVyZ2Ugb2YgY2hhbmdlcy4KPgo+IC0gV29yayBvbiBKVW5pdDUgc3VwcG9ydCBpcyBjdXJyZW50bHkgZG9uZSBpbiB0aGUganVuaXQ1IGJyYW5jaC4KPiAtIEkgaGF2ZSBkcmFmdGVkIGEgUHJvdmlkZXIgTG9va3VwIGltcGxlbWVudGF0aW9uIGluIHRoZSBqdW5pdDUgYnJhbmNoLAo+IGJ1dCBJIGRvbj1FMj04MD05OXQga25vdyB3aGV0aGVyIGl0IHdvcmtzIGJlY2F1c2UgSSBjYW49RTI9ODA9OTl0IGdldCB0aGU9CiBpbnRlZ3JhdGlvbiB0ZXN0cwo+IHJ1bm5pbmcKPiAtIFRoZXJlIGlzIGFuIG9wZW4gUFIgdG8gbWVyZ2UgdGhlIG1hc3RlciBicmFuY2ggYmFjayBpbnRvIGp1bml0NSBicmFuY2gsCj4gYnV0IGl0IGhhcyBidWlsZCBmYWlsdXJlcyBJIGRvbj1FMj04MD05OXQgdW5kZXJzdGFuZCBbMV0KPgo+IFBsZWFzZSBoZWxwIQo+IENoZWVycywKPiBCZW5lZGlrdAo+Cj4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNjUKPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKLS0wODllMDgyMzBjYmM5MmVlYmEwNTViOTNlNWMxLS0KCkZyb20gZGV2LXJldHVybi0xMjQ0NzctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE5vdiAxNCAwMDozNTo1MyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0NzctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMTFDRjMxNzM4RQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDE0IE5vdiAyMDE3IDAwOjM1OjUzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzYwODQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTQgTm92IDIwMTcgMDA6MzU6NTIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc2MDA1IGludm9rZWQgYnkgdWlkIDUwMCk7IDE0IE5vdiAyMDE3IDAwOjM1OjUyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzU5OTQgaW52b2tlZCBieSB1aWQgOTkpOyAxNCBOb3YgMjAxNyAwMDozNTo1MiAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAxNCBOb3YgMjAxNyAwMDozNTo1MiArMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXl3MC1mMTc0Lmdvb2dsZS5jb20gKG1haWwteXcwLWYxNzQuZ29vZ2xlLmNvbSBbMjA5Ljg1LjE2MS4xNzRdKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgNUMyMkExQTAxNDAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDE0IE5vdiAyMDE3IDAwOjM1OjUyICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXl3MC1mMTc0Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHEzN3NvMTI5MjkxN3l3YS4xMgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDEzIE5vdiAyMDE3IDE2OjM1OjUyIC0wODAwIChQU1QpClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYNUhPZDArRU5VRXNMcHNmdWpmRGc3eUJwMFVDTmM0NzJveHNUSExFSEdzOGFuMnF4SUwKCTd5N3pLTFptNmdDamdISDk3RXdSYmV4MlpSNlVIa0MrNnN2Rk9jUT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TWFOcU54N1RmRTJLWUFWaFc5SzdBSTdKaFFKaWtMR3NSZ3NZdnJGSkllU3I1NjllTnRTN1FPRUNSZ203VTg2TzkvL1pac0tVcjFaREl3U1YxRTNHYTg9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjM3LjEzMi44MiB3aXRoIFNNVFAgaWQgcjE4bXI2NDk0NjE0eWJtLjM4NC4xNTEwNjE5NzUxNTEwOwogTW9uLCAxMyBOb3YgMjAxNyAxNjozNTo1MSAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTMuMjUxLjY1IHdpdGggSFRUUDsgTW9uLCAxMyBOb3YgMjAxNyAxNjozNTo1MCAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPENBQ0xFPTdPLU4xWHlLZDNVZHdqRTd0dUEwdFBPNW55eTYxZDE5SjlCaXhWS29ZNkdnQUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk13RUg5WjJteXA3MXVhU3JkY3lMSlJGckUtVnJ0MjAxOTFyZDAxaCtVZmhqd0BtYWlsLmdtYWlsLmNvbT4KIDxvdTEzbm8kNGpvJDFAYmxhaW5lLmdtYW5lLm9yZz4gPENBQ0xFPTdNWHhVX3ZvVUNlWEh3QVZ1NzM3c1N4RmRiQzZzUkxXQzVaQVA1Y2VHZVJRZ0BtYWlsLmdtYWlsLmNvbT4KIDxvdWJyNHYkOWI5JDFAYmxhaW5lLmdtYW5lLm9yZz4gPENBQ0xFPTdPLU4xWHlLZDNVZHdqRTd0dUEwdFBPNW55eTYxZDE5SjlCaXhWS29ZNkdnQUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPgpEYXRlOiBUdWUsIDE0IE5vdiAyMDE3IDAxOjM1OjUwICswMTAwClgtR21haWwtT3JpZ2luYWwtTWVzc2FnZS1JRDogPENBS3VWekJSb1N2d3BmY1o0T3RSMFAzZGZvNksycGQ5UkZKOHhVM2hjc2ZtcWtWZlJxZ0BtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JRDogPENBS3VWekJSb1N2d3BmY1o0T3RSMFAzZGZvNksycGQ5UkZKOHhVM2hjc2ZtcWtWZlJxZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IE1hdmVuIDQuMC4wClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjA4OWUwODI2ZjQ1Y2FkZjk1ODA1NWRlNjkxNmEiCgotLTA4OWUwODI2ZjQ1Y2FkZjk1ODA1NWRlNjkxNmEKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSSB3b3VsZCBsaWtlIHRvIGhhdmUgU0NNIEhvb2sgZnJvbSBDSSBvciBTQ00gQWdlbnQuIE1hdmVuIDQgc2hvdWxkIHJ1biBvbmx5CmNoYW5nZWQgbW9kdWxlcyBzaW1pbGFyIHRvICJtdm4gLXBsLi4uIi4KSWYgd2UgZ2V0IGEgbGlzdCBvZiBjaGFuZ2VkIGZpbGVzLCB0aGUgRWNsaXBzZSBjb21waWxlciBtaWdodCBiZSBmYXN0ZXIgYW5kCnRoZW4gb25seSB0ZXN0cyBmb3IgY2hhbmdlZCBjbGFzc2VzIHdpbGwgcnVuLgoKVGhlbiBJIHdvdWxkIGxpa2UgdG8gaGF2ZSBjbGVhbiBhbmQgc2l0ZSBleGVjdXRlZCBvbiBlbnRpcmUgbXVsdGktbW9kdWxlCnByb2plY3QgYW5kIG5vdCBvbiBpbmRpdmlkdWFsIG1vZHVsZXMgbGlrZSBpdCBpcyBub3dhZGF5cy4gTm93IHdoZW4geW91IHJ1bgoiY2xlYW4gaW5zdGFsbCBzaXRlIHNpdGU6c3RhZ2UiLCBhbGwgYXJlIHJ1biBvbiBldmVyeSBpbmRpdmlkdWFsIG1vZHVsZS4gU28Kd2hlbiBzaXRlIGZhaWxzLCB0aGUgc2xvd2VzdCB3YXMgc2l0ZSBhbmQgYmxvY2tlZCBtb3JlIGltcG9ydGFudCBpbnN0YWxsLgoKV2Ugc2hvdWxkIG1heWJlIGludHJvZHVjZSBhIG5ldyBzdHJ1Y3R1cmUgZm9yIEJPTS4KCkFub3RoZXIgcHJvYmxlbSBJIHN0cnVnZ2xlIGlzIHRyYW5zaXRpdmUgZGVwZW5kZW5jaWVzIGFuZCB0aGVpciBjb25mbGljdC4KU2hvdWxkIGEgZnJhbWV3b3JrIGV4cG9zZSB0cmFuc2l0aXZlIGRlcGVuZGVuY2llcz8KU2hvdWxkIHdlIGludHJvZHVjZSBhIG5ldyBzY29wZSBsaWtlICJhYnN0cmFjdCIgYW5kIGZvcmNlIHRoZSBkZXBlbmRlbnQgUE9NCmZhaWwgaW4gdmFsaWRhdGlvbiBwaGFzZSBpZiB0cmFuc2l0aXZlIGRlcGVuZGVuY3kgZnJvbSBmL3cgZG9lcyBub3QgcHJlc2VudAppbiBBcHA/CkFwcCAoUE9NKSAtLS1bZGVwZW5kZW5jeV0tLS0+IGYvdyhQT00pIC0tLVtkZXBlbmRlbmN5IHdpdGgKc2NvcGU9M0RhYnN0cmFjdF0tLS0+IFQgOjogdHJhbnNpdGl2ZSBkZXAuKFBPTSkKKmFic3RyYWN0IHdvdWxkIGJlIHNpbWlsYXIgdG8gc2NvcGU9M0Rwcm92aWRlZCBidXQgdGhlIEFwcCBQT00gbXVzdCBsaXN0IHRoPQplCmRlcGVuZGVuY3kgVC4KSXQgaXMgZmFpbC1mYXN0IHZhbGlkYXRpb24gd2l0aCBhYnN0cmFjdCBhbmQgdGhlbiB5b3UgZG8gbm90IG5lZWQgdG8gdXNlCm1hdmVuLWVuZm9yY2VyLXBsdWdpbi4KVGhlIFQgZGVwZW5kZW5jeSBhcHBlYXJzIHZlcnkgY2xvc2UgdG8gdGhlIHJvb3Qgb2YgZGVwZW5kZW5jeSB0cmVlIGFuZAp0aGVyZSB3b3VsZCBub3QgYmUgYSBjb25mbGljdC4KVGhlIFQgbWF5IGNvbWUgZnJvbSBjb21wYW55J3MgQk9NLgoKCgpPbiBNb24sIE5vdiAxMywgMjAxNyBhdCAxMToxOSBBTSwgUm9tYWluIE1hbm5pLUJ1Y2F1IDxybWFubmlidWNhdUBnbWFpbC5jb209Cj4Kd3JvdGU6Cgo+IEhpIEo9QzM9QjZyZywgZnVsbHkgdW5yZWxhdGVkIChjcm9zcyB0b3BpYykuIEFib3V0IHR5Y2hvIEkgb2Z0ZW4gZW5kIHVwCj4gZG9pbmcgYSBjdXN0b20gc2NyaXB0IGhhY2tpbmcgdGhlIHJlc29sdmVkQXJ0aWZhY3RzIGFuZCB1c2luZyBhIGxvY2FsCj4gY2FjaGUgKG0yIGZha2UgcmVwbykgYmVjYXVzZSB0eWNobyBwbHVnaW4gaXMgd2F5IHRvIHNsb3cgaW4gcHJhY3Rpc2UuCj4gSXQgY2FuIGxvb2sgbGlrZQo+IGh0dHBzOi8vZ2l0aHViLmNvbS9UYWxlbmQvY29tcG9uZW50LXJ1bnRpbWUvYmxvYi9tYXN0ZXIvCj4gY29tcG9uZW50LXN0dWRpby1pbnRlZ3JhdGlvbi9zcmMvYnVpbGQvU3R1ZGlvRGVwZW5kZW5jaWVzLmdyb292eSNMMjcKPiAod2hpY2ggdHJhbnNpdGl2ZSBkZXBzIHN1cHBvcnQgYnV0IGl0IGlzIG5vdCB0aGF0IGhhcmQgdG8gYWRkKS4KPgo+IFJvbWFpbiBNYW5uaS1CdWNhdQo+IEBybWFubmlidWNhdSB8ICBCbG9nIHwgT2xkIEJsb2cgfCBHaXRodWIgfCBMaW5rZWRJbgo+Cj4KPiAyMDE3LTExLTEzIDExOjExIEdNVCswMTowMCBKPUMzPUI2cmcgU2NoYWlibGUgPGpvZXJnLnNjaGFpYmxlQGJwbS1pbnNwaXJlPQouY29tPjoKPiA+IEhpIFJvbWFpbiwKPiA+Cj4gPiBBbSBUaHUsIDA5IE5vdiAyMDE3IDA5OjMyOjEyICswMTAwIHNjaHJpZWIgUm9tYWluIE1hbm5pLUJ1Y2F1Ogo+ID4KPiA+PiBGWUkgb3BlbmVkIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vcHVsbC8xMzYgZm9yIHRoZSBNTkctNjMwMgo+ID4+IChndWVzcyB3ZSBjYW4gc3dpdGNoIGZyb20gdGhyZWFkIHRvIGRpc2N1c3MgaXQgbm93PykKPiA+Cj4gPiBIb3cgaXMgdGhpcyBpc3N1ZSByZWxhdGVkIHdpdGggbXkgdG9waWMgcmVnYXJkaW5nIGltcHJvdmVkIFR5Y2hvIHN1cHBvcj0KdAo+ID4gaW4gTWF2ZW4gNC4wLjA/Cj4gPgo+ID4gUmVnYXJkcywKPiA+IEo9QzM9QjZyZwo+ID4KPiA+Cj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKLS0wODllMDgyNmY0NWNhZGY5NTgwNTVkZTY5MTZhLS0KCkZyb20gZGV2LXJldHVybi0xMjM5MzgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIFNlcCAxMCAyMToxNToxNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5MzgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRjIzOUMxQUZFRgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDIxOjE1OjE0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjM2MTEgaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgU2VwIDIwMTcgMjE6MTU6MDkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYzNTExIGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIFNlcCAyMDE3IDIxOjE1OjA4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjM0OTUgaW52b2tlZCBieSB1aWQgOTkpOyAxMCBTZXAgMjAxNyAyMToxNTowOCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTAgU2VwIDIwMTcgMjE6MTU6MDggKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBENTlBQUMyQTIzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAyMToxNTowNyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuODgKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi44OCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBIVE1MX09CRlVTQ0FURV8wNV8xMD0wLjAwMSwgS0FNX05VTVNVQkpFQ1Q9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z29vZ2xlbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHh0UkxXcUVDMUE0WiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgMTAgU2VwIDIwMTcgMjE6MTU6MDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC15dzAtZjE3Ny5nb29nbGUuY29tIChtYWlsLXl3MC1mMTc3Lmdvb2dsZS5jb20gWzIwOS44NS4xNjEuMTc3XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDFCQ0ExNUY2MTMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDIxOjE1OjA2ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXl3MC1mMTc3Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHE4MHNvMTgwMDMwNzN5d2cuMgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDE0OjE1OjA2IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nb29nbGVtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG8KICAgICAgICAgOmNjOwogICAgICAgIGJoPUd4VXg4d0dhUmxxa1FXdmdWTUNrMTlHTnY5Vi9ybTlqODFPakMvWDBISUk9OwogICAgICAgIGI9dkxJQkRzeC9BeXNUMnZ5am53NzNQZDZQbnBkaDVad0NkN09GSW5PQlkvUzZlT0NvYWw4V1RNTEdMSWdFYWpmK2xXCiAgICAgICAgIGNpQU9hZTJUVktiSENtaGp3ZDFPL3BCSElTbGJ5RWlIa0R4Z2VMUlhLeFBYMEd4K0VpcXdZYVFiRXIrUTBRRk5tNUhaCiAgICAgICAgIFpoNnEyZ25HNGRkeW5oQ2FyaGRSSW0wK0thcGg3OU00OHhTMlpQcG8wWFR0alo3Q0NrbVJiNWUySFlhcWRXZ29Jays3CiAgICAgICAgIHNtVXZGREhSTFJpZHFRZHo2NEFwK1o0bjEzby9JVk1CNU8xWm8zWjhIWTc4OXUzWE01TjQ3WmRjYmxkd05yaHJjMHExCiAgICAgICAgIGo3b1M1Vm5rYzFLYU5XRlhHVk5rVnJhZ2Vwa3JwSmhpdU1rZ2g2QmRDVmJlejZXRk9sVTZnUFJHYlh5Nm5VK3drY0RpCiAgICAgICAgIG1UZlE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOmNjOwogICAgICAgIGJoPUd4VXg4d0dhUmxxa1FXdmdWTUNrMTlHTnY5Vi9ybTlqODFPakMvWDBISUk9OwogICAgICAgIGI9bzRISTQ1SFJ3TWpyTFpVdTdZR3d6U1UwVDVWR1dpc2xlNG1lejFxakxuT1VBSjJObnBIS2dRRTMxVi9zamIrYWNDCiAgICAgICAgIHlHeEI2TWZMYTZDaVN0Z2Yyd3VWR0NMd1lQaVJmZW1jemI0bVpPYWc1c0U0Qy9aSzhJZ0hLWW5yY2lDV08yY05RWU9iCiAgICAgICAgIHhOVDYvVVFndE1tZVVXOVBsTGpNY3NSNHhLaUVFT0xBMlVtY3hXSXQrNklQb0dReDQrR2hMdTNldHZZaTE2YVNWSmhMCiAgICAgICAgIGlqcU5KVG0wNlNwTUdwSTFrRDRaSDdaalhrZkxNMUdoZVpqbXgxTERTQ0lVTUlENjJGQlJwTG9lUW5qQzd5dU9QOUE1CiAgICAgICAgIGh0Wmc5WkpmbGc2YnVuc0lheVRVYVpVQURsWjlwWUZmOVBsSTJlazJXekx6N3czM0JOeEtwclhpc2IvRDhLcTNmUG1YCiAgICAgICAgIGNKb1E9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWlTdGpGdXVzN3NRRzkrTVNOa2VBZnl5YUpqYmNNbnJlZnZ4ejgyRzZKdWF2M2Q5c1NrCglVYjVsQk8vWXV1TWJXQ1lRMDRkZWgzcWRzL3FxUUE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQURLQ05iN296L0s0WTRiREZlVVdhazVMWGZSWEJuSkJoZ1dnSVBISDNhaVl1SHNwb3pTdkN2V0V4OTlScmEwc0pOdlNmc1dMZ3JLSk9FZnlsalF5aTBlQWNJQT0KWC1SZWNlaXZlZDogYnkgMTAuMTI5LjI4LjE1IHdpdGggU01UUCBpZCBjMTVtcjc4OTcwODl5d2MuMjI0LjE1MDUwNzgxMDQ5NTU7CiBTdW4sIDEwIFNlcCAyMDE3IDE0OjE1OjA0IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xMjkuMTU3LjE5OCB3aXRoIEhUVFA7IFN1biwgMTAgU2VwIDIwMTcgMTQ6MTU6MDQgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDwyNGNjMzhlOC01YzNhLTY0MDItY2ZmZi04NzZiMzI0YWE4NzFAZ214LmRlPgpSZWZlcmVuY2VzOiA8ZWZiOTc5NjAtZTFiNy00MjI3LTU5OTgtZGUyYzI0MDE1YmIwQGFwYWNoZS5vcmc+CiA8Q0ErblBuTXc3b2c1Z3JxSlpOeVljM0p5TUpjSD1yY2hTLUdZWURfYU1BdmVBaWNKb1V3QG1haWwuZ21haWwuY29tPgogPDc4YWY5NjU1LTc2YmMtZjU2Yy0yZWI1LTFhZjJjMTIwZjQzZkBhcGFjaGUub3JnPiA8Q0FLdVZ6QlFxNFowYU1YZzZkVzl2eGUzeEJmK2RIRjBTMk5mZEh2TVBERm5lOEhyWXV3QG1haWwuZ21haWwuY29tPgogPDI0Y2MzOGU4LTVjM2EtNjQwMi1jZmZmLTg3NmIzMjRhYTg3MUBnbXguZGU+CkZyb206IFRpYm9yIERpZ2FuYSA8dGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tPgpEYXRlOiBTdW4sIDEwIFNlcCAyMDE3IDIzOjE1OjA0ICswMjAwCk1lc3NhZ2UtSUQ6IDxDQUt1VnpCUndmdit6OUFDd2FzRGZfRm5xQjJvNXc1UjBzZkNHaU5Kd0RnUUs9QU9Ld0FAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBUZXN0cyBmb3IgTU5HLTYyNzUgZmFpbCBvbiBKYXZhIDEuNy4wXzE1MS1iMDEKVG86IE1pY2hhZWwgT3NpcG92IDxtb3NpcG92QGdteC5kZT4KQ2M6IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LCAKCVN0ZXBoZW4gQ29ubm9sbHkgPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDE0ZDNjY2UyNjFhMDU1OGRjNGQ5NCIKCi0tMDAxYTExNDE0ZDNjY2UyNjFhMDU1OGRjNGQ5NApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKVGhpcyBvbmUgMS43LjBfODAgd2hpY2ggaXMgN3U4MDoKaHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2huZXR3b3JrL2phdmEvamF2YXNlL2Rvd25sb2Fkcy9qYXZhLWFyY2hpdmUtZG93bmxvYWRzLWphdmFzZTctNTIxMjYxLmh0bWwKCk9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDExOjEyIFBNLCBNaWNoYWVsIE9zaXBvdiA8bW9zaXBvdkBnbXguZGU+IHdyb3RlOgoKPiBBbSAyMDE3LTA5LTEwIHVtIDIzOjA3IHNjaHJpZWIgVGlib3IgRGlnYW5hOgo+Cj4+IE1pY2hhZWwsIG5vdyB0cnkgd2l0aCBPcmFjbGUgSmF2YSA3Lgo+Pgo+Cj4gTGFzdCBwdWJsaWMgdmVyc2lvbiBvciB1cC10by1kYXRlIHBhaWQgdmVyc2lvbj8KPgo+IE9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDExOjAyIFBNLCBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz4KPj4gd3JvdGU6Cj4+Cj4+IEFtIDIwMTctMDktMTAgdW0gMjI6Mjcgc2NocmllYiBTdGVwaGVuIENvbm5vbGx5Ogo+Pj4KPj4+IFdlbGwgSSByYW4gdGhlIHJlbGVhc2Ugd2l0aCAxLjcuMF84MCB3aGljaCBpaXJjIGlzIHRoZSBsYXN0IHB1YmxpYwo+Pj4+IHJlbGVhc2UKPj4+PiBvZiBPcmFjbGUgSmF2YSA3Li4uCj4+Pj4KPj4+Pgo+Pj4gRmFpbHMgYWxzbyBvbiBXaW5kb3dzIHdpdGggWnVsdSA3Ogo+Pj4gJCBtdm4gLXYKPj4+IEFwYWNoZSBNYXZlbiAzLjUuMCAoZmY4ZjVlNzQ0NDA0NTYzOWFmNjVmNjA5NWM2MjIxMGI1NzEzZjQyNjsKPj4+IDIwMTctMDQtMDNUMjE6Mzk6MDYrMDI6MDApCj4+PiBNYXZlbiBob21lOiBEOlxFbnR3aWNrbHVuZ1xQcm9ncmFtbWVcYXBhY2hlLW1hdmVuLTMuNS4wCj4+PiBKYXZhIHZlcnNpb246IDEuNy4wXzE1NCwgdmVuZG9yOiBBenVsIFN5c3RlbXMsIEluYy4KPj4+IEphdmEgaG9tZTogQzpcUHJvZ3JhbSBGaWxlc1xadWx1XHp1bHUtN1xqcmUKPj4+IERlZmF1bHQgbG9jYWxlOiBkZV9ERSwgcGxhdGZvcm0gZW5jb2Rpbmc6IENwMTI1Mgo+Pj4gT1MgbmFtZTogIndpbmRvd3MgMTAiLCB2ZXJzaW9uOiAiMTAuMCIsIGFyY2g6ICJhbWQ2NCIsIGZhbWlseTogIndpbmRvd3MiCj4+Pgo+Pj4KPj4+Cj4+PiBPbiBTdW4gMTAgU2VwIDIwMTcgYXQgMjE6MDgsIE1pY2hhZWwgT3NpcG92IDxtaWNoYWVsb0BhcGFjaGUub3JnPiB3cm90ZToKPj4+Cj4+Pj4KPj4+PiBGb2xrcywKPj4+Pgo+Pj4+Pgo+Pj4+PiB0cmllZCBydW5uaW5nIG1hc3RlciBvbgo+Pj4+PiBNYXZlbiBob21lOiAvdXNyL2xvY2FsL3NoYXJlL2phdmEvbWF2ZW4KPj4+Pj4gSmF2YSB2ZXJzaW9uOiAxLjcuMF8xNTEsIHZlbmRvcjogT3JhY2xlIENvcnBvcmF0aW9uCj4+Pj4+IEphdmEgaG9tZTogL3Vzci9sb2NhbC9vcGVuamRrNy9qcmUKPj4+Pj4gRGVmYXVsdCBsb2NhbGU6IGRlX0RFLCBwbGF0Zm9ybSBlbmNvZGluZzogVVRGLTgKPj4+Pj4gT1MgbmFtZTogImZyZWVic2QiLCB2ZXJzaW9uOiAiMTEuMS1yZWxlYXNlLXAxIiwgYXJjaDogImkzODYiLCBmYW1pbHk6Cj4+Pj4+ICJ1bml4Igo+Pj4+Pgo+Pj4+PiBhbmQgSSBnZXQgdGhpczoKPj4+Pj4gRmFpbGVkIHRlc3RzOgo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X2NvcmVSZWFsbURlZmF1bHRQYXIKPj4+Pj4gZW50Q2xhc3NMb2FkZXI6OTkKPj4+Pj4gbnVsbAo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X2V4dGVuc2lvblJlYWxtRGVmYXUKPj4+Pj4gbHRQYXJlbnRDbGFzc0xvYWRlcjo3Mwo+Pj4+PiBudWxsCj4+Pj4+Cj4+Pj4+Cj4+Pj4+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfbWF2ZW5BcGlSZWFsbURlZmF1bAo+Pj4+PiB0UGFyZW50Q2xhc3NMb2FkZXI6OTEKPj4+Pj4gbnVsbAo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X3BsdWdpblJlYWxtRGVmYXVsdFAKPj4+Pj4gYXJlbnRDbGFzc0xvYWRlcjo2Mgo+Pj4+PiBudWxsCj4+Pj4+Cj4+Pj4+Cj4+Pj4+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfcHJvamVjdFJlYWxtRGVmYXVsdAo+Pj4+PiBQYXJlbnRDbGFzc0xvYWRlcjo4Mwo+Pj4+PiBudWxsCj4+Pj4+Cj4+Pj4+IEFsbCB0ZXN0cyBmYWlsIHdpdGggImp1bml0LmZyYW1ld29yay5Bc3NlcnRpb25GYWlsZWRFcnJvcjogbnVsbCIuCj4+Pj4+Cj4+Pj4+IFJ1bm5pbmcgd2l0aAo+Pj4+PiBNYXZlbiBob21lOiAvdXNyL2xvY2FsL3NoYXJlL2phdmEvbWF2ZW4KPj4+Pj4gSmF2YSB2ZXJzaW9uOiAxLjguMF8xNDQsIHZlbmRvcjogT3JhY2xlIENvcnBvcmF0aW9uCj4+Pj4+IEphdmEgaG9tZTogL3Vzci9sb2NhbC9vcGVuamRrOC9qcmUKPj4+Pj4gRGVmYXVsdCBsb2NhbGU6IGRlX0RFLCBwbGF0Zm9ybSBlbmNvZGluZzogVVRGLTgKPj4+Pj4gT1MgbmFtZTogImZyZWVic2QiLCB2ZXJzaW9uOiAiMTEuMS1yZWxlYXNlLXAxIiwgYXJjaDogImkzODYiLCBmYW1pbHk6Cj4+Pj4+ICJ1bml4Igo+Pj4+Pgo+Pj4+PiB3b3JrcyBmbGF3bGVzc2x5Lgo+Pj4+Pgo+Pj4+PiBBbnkgaWRlYXM/Cj4+Pj4+Cj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Pj4+Cj4+Pj4+IC0tCj4+Pj4+Cj4+Pj4+IFNlbnQgZnJvbSBteSBwaG9uZQo+Pj4+Cj4+Pj4KPj4+Pgo+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4KPj4+Cj4+Pgo+Pgo+Pgo+CgoKLS0gCkNoZWVycwpUaWJvcgoKLS0wMDFhMTE0MTRkM2NjZTI2MWEwNTU4ZGM0ZDk0LS0KCkZyb20gZGV2LXJldHVybi0xMjM5NDAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIFNlcCAxMCAyMToxOTo1NCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5NDAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNUM3REUxQUZGQQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDIxOjE5OjU0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjgzNjkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgU2VwIDIwMTcgMjE6MTk6NTQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY4MzE0IGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIFNlcCAyMDE3IDIxOjE5OjUzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjgzMDIgaW52b2tlZCBieSB1aWQgOTkpOyAxMCBTZXAgMjAxNyAyMToxOTo1MyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTAgU2VwIDIwMTcgMjE6MTk6NTMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBDMTQ0M0M0MEQ5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAyMToxOTo1MiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuODgKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi44OCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBIVE1MX09CRlVTQ0FURV8wNV8xMD0wLjAwMSwgS0FNX05VTVNVQkpFQ1Q9MC41LAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z29vZ2xlbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHFGN3VuY3BFOTR2YiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgMTAgU2VwIDIwMTcgMjE6MTk6NTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC15dzAtZjE3Ny5nb29nbGUuY29tIChtYWlsLXl3MC1mMTc3Lmdvb2dsZS5jb20gWzIwOS44NS4xNjEuMTc3XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEEwRTFDNUZCRTIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDIxOjE5OjUwICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXl3MC1mMTc3Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHI4NXNvMTgwNDAxNTN5d2cuMQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDE0OjE5OjUwIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nb29nbGVtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9ZFVxTCt3SG5HZDhydHhhZExscEwydy9xOGtWRXNGN0ZEOXFDSkxMcXJKND07CiAgICAgICAgYj11MzV5ZUJKSkc4NGFwaXMyQ2dESlU3TDJBczdySk9IeDI2UmFIcDlPNmd4djZmNjQwVWtaWjNVNnFEUUVGYTRPTUgKICAgICAgICAgVDF0SXVVUHk4YW5jdVlpajVZQytYZldNYVgyVzVuN3VmYmZXUzBaek43dllUQzd0WUZrYUVrK0FYbXM3eWlHdkJWM1YKICAgICAgICAgV01WcG16RWFsRUJhWTBwN3RxOE1LbU01WFB5djN2RlJhWG00YTZTeGdONTM3eTNHQytxdlJzYzRPWmYydnhpY2d1dFYKICAgICAgICAgWitrS1BiTEh6aXFGK0ZSWEVVTFJpSkQxN2FwcmNKSHorMzJPSXBEZHlYdnpUN1VjbW5KWjlmdVFuVVVYc3p4RnowbUIKICAgICAgICAgeDdNQ3FPMmxYaVA4bkczVy9zSE1aTnB4a2tTQVA4Qy95dlJQVzZUeExldjV4U3VXcnpPdGVHZkRJZ2F6emVJSDFvZTUKICAgICAgICAgcTVndz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9ZFVxTCt3SG5HZDhydHhhZExscEwydy9xOGtWRXNGN0ZEOXFDSkxMcXJKND07CiAgICAgICAgYj1JT2dLS1FiWnhJL2NDZHVhNjZhQTVUc0NScEZCT2tEZXN1U25BZXRudjhsQXBuWlRsNjFSUWx1b01vQ0p0TldqNzgKICAgICAgICAgVDY4aEVPLzI5cUtQWFh3eE1SbGsrbHcyNnJ2MFQ3MkY3bzF6L2ZqazBLY2hkNUFDWmphalROeVRVaUdrd0lkY2tISmQKICAgICAgICAgQ2FhM1RMdlgwYnc0M1prSGlGL1FoVEhrSnN3THFkWThGSWxzVkdWU1JtclRRbU5zUXpCN2pjcmd3RTJ2cXNnbWl1UVgKICAgICAgICAgeXZoN1VibEpTR2V1R1dZOVc4b0VZQm4weUdTQ3JzQ3BIc2dWRWc3YzlHM2RkRzBMemZkMEFKK2xiejBobXZScEFNdUYKICAgICAgICAgaXhsMEphQklMLzRiSlU2bkl5V0wyODJyN2NNbDdFNmVMOW5SVUpaZ0NYeW1xRkt3QlBVYWlYQzgzRkp5WDRkUkxMNmMKICAgICAgICAgSFArdz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVajk0U3JiVXZXUnR6L00zeG9CKzZBMnNkSWJ2UXFJaFF0a0ZXSVhoMFgxMlhKV3E4bUkKCTFNeGw4UlR2aGorWVExOGJuR1cvQTUrKzlRZlpzZz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FCbDBYV25NM1VocHdJRlRRNG1XQmFDd1NDOUZUV0l5UGNReEtiT01ObWZlTW5pWC93K1FpazFmYnRkVmRxdHVpRmNGTXd6NGc1WXNqYTBZMktVOE9zPQpYLVJlY2VpdmVkOiBieSAxMC4zNy4xMDIuODIgd2l0aCBTTVRQIGlkIHoxOG1yMTE4NjE0OHlibS4zOS4xNTA1MDc4Mzg5NDg3OwogU3VuLCAxMCBTZXAgMjAxNyAxNDoxOTo0OSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTI5LjE1Ny4xOTggd2l0aCBIVFRQOyBTdW4sIDEwIFNlcCAyMDE3IDE0OjE5OjQ5IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Y2Y4ODFlNTktNjdjMC04NWU3LTFjNDQtODM3ZTUyMWVmNzc5QGFwYWNoZS5vcmc+ClJlZmVyZW5jZXM6IDxlZmI5Nzk2MC1lMWI3LTQyMjctNTk5OC1kZTJjMjQwMTViYjBAYXBhY2hlLm9yZz4KIDxDQStuUG5NdzdvZzVncnFKWk55WWMzSnlNSmNIPXJjaFMtR1lZRF9hTUF2ZUFpY0pvVXdAbWFpbC5nbWFpbC5jb20+CiA8NzhhZjk2NTUtNzZiYy1mNTZjLTJlYjUtMWFmMmMxMjBmNDNmQGFwYWNoZS5vcmc+IDxDQUt1VnpCUXE0WjBhTVhnNmRXOXZ4ZTN4QmYrZEhGMFMyTmZkSHZNUERGbmU4SHJZdXdAbWFpbC5nbWFpbC5jb20+CiA8MjRjYzM4ZTgtNWMzYS02NDAyLWNmZmYtODc2YjMyNGFhODcxQGdteC5kZT4gPENBS3VWekJSd2Z2K3o5QUN3YXNEZl9GbnFCMm81dzVSMHNmQ0dpTkp3RGdRSz1BT0t3QUBtYWlsLmdtYWlsLmNvbT4KIDxjZjg4MWU1OS02N2MwLTg1ZTctMWM0NC04MzdlNTIxZWY3NzlAYXBhY2hlLm9yZz4KRnJvbTogVGlib3IgRGlnYW5hIDx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+CkRhdGU6IFN1biwgMTAgU2VwIDIwMTcgMjM6MTk6NDkgKzAyMDAKTWVzc2FnZS1JRDogPENBS3VWekJTLUhrVnBfb3czVno5bTdZMDdjbnorRVROY3FmQVpWaGdVb1RxaUhPM2dVQUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFRlc3RzIGZvciBNTkctNjI3NSBmYWlsIG9uIEphdmEgMS43LjBfMTUxLWIwMQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwODllMDgyOGRkZDhjM2JmMjgwNTU4ZGM1ZWMyIgoKLS0wODllMDgyOGRkZDhjM2JmMjgwNTU4ZGM1ZWMyCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpEZWZpbml0ZWx5IEkgYWdyZWUhCkxldCdzIHNlZSBpZiBpdCBpcyBKREsgaXNzdWUgb3IgcGxhdGZvcm0gaXNzdWUuIExldCdzIGV4Y2x1ZGUgT3JhY2xlIEphdmEKc3VzcGljaW9uIGFuZCB0aGVuIGl0J3Mgc2VyaW91cyBpc3N1ZS4KCk9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDExOjE3IFBNLCBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz4Kd3JvdGU6Cgo+IEFtIDIwMTctMDktMTAgdW0gMjM6MTUgc2NocmllYiBUaWJvciBEaWdhbmE6Cj4KPj4gVGhpcyBvbmUgMS43LjBfODAgd2hpY2ggaXMgN3U4MDoKPj4gaHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2huZXR3b3JrL2phdmEvamF2YXNlL2Rvd25sb2Fkcy8KPj4gamF2YS1hcmNoaXZlLWRvd25sb2Fkcy1qYXZhc2U3LTUyMTI2MS5odG1sCj4+Cj4KPiBObyBvbmUgd2lsbCBzZXJpb3VzbHkgcnVuIHRoaXMgb25lLiBTbyBpZiB3ZSBzYXkgdGhhdCBvdXIgc3R1ZmYgcnVucyBvZmYgNwo+IHRoZW4gd2UgaGF2ZSB0byB0ZXN0IE9wZW5KREsgYW5kIFp1bHUgdG9vLgo+Cj4gTWljaGFlbAo+Cj4KPiBPbiBTdW4sIFNlcCAxMCwgMjAxNyBhdCAxMToxMiBQTSwgTWljaGFlbCBPc2lwb3YgPG1vc2lwb3ZAZ214LmRlPiB3cm90ZToKPj4KPj4gQW0gMjAxNy0wOS0xMCB1bSAyMzowNyBzY2hyaWViIFRpYm9yIERpZ2FuYToKPj4+Cj4+PiBNaWNoYWVsLCBub3cgdHJ5IHdpdGggT3JhY2xlIEphdmEgNy4KPj4+Pgo+Pj4+Cj4+PiBMYXN0IHB1YmxpYyB2ZXJzaW9uIG9yIHVwLXRvLWRhdGUgcGFpZCB2ZXJzaW9uPwo+Pj4KPj4+IE9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDExOjAyIFBNLCBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz4KPj4+Cj4+Pj4gd3JvdGU6Cj4+Pj4KPj4+PiBBbSAyMDE3LTA5LTEwIHVtIDIyOjI3IHNjaHJpZWIgU3RlcGhlbiBDb25ub2xseToKPj4+Pgo+Pj4+Pgo+Pj4+PiBXZWxsIEkgcmFuIHRoZSByZWxlYXNlIHdpdGggMS43LjBfODAgd2hpY2ggaWlyYyBpcyB0aGUgbGFzdCBwdWJsaWMKPj4+Pj4KPj4+Pj4+IHJlbGVhc2UKPj4+Pj4+IG9mIE9yYWNsZSBKYXZhIDcuLi4KPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gRmFpbHMgYWxzbyBvbiBXaW5kb3dzIHdpdGggWnVsdSA3Ogo+Pj4+PiAkIG12biAtdgo+Pj4+PiBBcGFjaGUgTWF2ZW4gMy41LjAgKGZmOGY1ZTc0NDQwNDU2MzlhZjY1ZjYwOTVjNjIyMTBiNTcxM2Y0MjY7Cj4+Pj4+IDIwMTctMDQtMDNUMjE6Mzk6MDYrMDI6MDApCj4+Pj4+IE1hdmVuIGhvbWU6IEQ6XEVudHdpY2tsdW5nXFByb2dyYW1tZVxhcGFjaGUtbWF2ZW4tMy41LjAKPj4+Pj4gSmF2YSB2ZXJzaW9uOiAxLjcuMF8xNTQsIHZlbmRvcjogQXp1bCBTeXN0ZW1zLCBJbmMuCj4+Pj4+IEphdmEgaG9tZTogQzpcUHJvZ3JhbSBGaWxlc1xadWx1XHp1bHUtN1xqcmUKPj4+Pj4gRGVmYXVsdCBsb2NhbGU6IGRlX0RFLCBwbGF0Zm9ybSBlbmNvZGluZzogQ3AxMjUyCj4+Pj4+IE9TIG5hbWU6ICJ3aW5kb3dzIDEwIiwgdmVyc2lvbjogIjEwLjAiLCBhcmNoOiAiYW1kNjQiLCBmYW1pbHk6Cj4+Pj4+ICJ3aW5kb3dzIgo+Pj4+Pgo+Pj4+Pgo+Pj4+Pgo+Pj4+PiBPbiBTdW4gMTAgU2VwIDIwMTcgYXQgMjE6MDgsIE1pY2hhZWwgT3NpcG92IDxtaWNoYWVsb0BhcGFjaGUub3JnPgo+Pj4+PiB3cm90ZToKPj4+Pj4KPj4+Pj4KPj4+Pj4+IEZvbGtzLAo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+Pj4gdHJpZWQgcnVubmluZyBtYXN0ZXIgb24KPj4+Pj4+PiBNYXZlbiBob21lOiAvdXNyL2xvY2FsL3NoYXJlL2phdmEvbWF2ZW4KPj4+Pj4+PiBKYXZhIHZlcnNpb246IDEuNy4wXzE1MSwgdmVuZG9yOiBPcmFjbGUgQ29ycG9yYXRpb24KPj4+Pj4+PiBKYXZhIGhvbWU6IC91c3IvbG9jYWwvb3BlbmpkazcvanJlCj4+Pj4+Pj4gRGVmYXVsdCBsb2NhbGU6IGRlX0RFLCBwbGF0Zm9ybSBlbmNvZGluZzogVVRGLTgKPj4+Pj4+PiBPUyBuYW1lOiAiZnJlZWJzZCIsIHZlcnNpb246ICIxMS4xLXJlbGVhc2UtcDEiLCBhcmNoOiAiaTM4NiIsIGZhbWlseToKPj4+Pj4+PiAidW5peCIKPj4+Pj4+Pgo+Pj4+Pj4+IGFuZCBJIGdldCB0aGlzOgo+Pj4+Pj4+IEZhaWxlZCB0ZXN0czoKPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4gRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXN0TU5HNjI3NV9jb3JlUmVhbG1EZWZhdWx0UGFyCj4+Pj4+Pj4gZW50Q2xhc3NMb2FkZXI6OTkKPj4+Pj4+PiBudWxsCj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfZXh0ZW5zaW9uUmVhbG1EZWZhdQo+Pj4+Pj4+IGx0UGFyZW50Q2xhc3NMb2FkZXI6NzMKPj4+Pj4+PiBudWxsCj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfbWF2ZW5BcGlSZWFsbURlZmF1bAo+Pj4+Pj4+IHRQYXJlbnRDbGFzc0xvYWRlcjo5MQo+Pj4+Pj4+IG51bGwKPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4gRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXN0TU5HNjI3NV9wbHVnaW5SZWFsbURlZmF1bHRQCj4+Pj4+Pj4gYXJlbnRDbGFzc0xvYWRlcjo2Mgo+Pj4+Pj4+IG51bGwKPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4gRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXN0TU5HNjI3NV9wcm9qZWN0UmVhbG1EZWZhdWx0Cj4+Pj4+Pj4gUGFyZW50Q2xhc3NMb2FkZXI6ODMKPj4+Pj4+PiBudWxsCj4+Pj4+Pj4KPj4+Pj4+PiBBbGwgdGVzdHMgZmFpbCB3aXRoICJqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0aW9uRmFpbGVkRXJyb3I6IG51bGwiLgo+Pj4+Pj4+Cj4+Pj4+Pj4gUnVubmluZyB3aXRoCj4+Pj4+Pj4gTWF2ZW4gaG9tZTogL3Vzci9sb2NhbC9zaGFyZS9qYXZhL21hdmVuCj4+Pj4+Pj4gSmF2YSB2ZXJzaW9uOiAxLjguMF8xNDQsIHZlbmRvcjogT3JhY2xlIENvcnBvcmF0aW9uCj4+Pj4+Pj4gSmF2YSBob21lOiAvdXNyL2xvY2FsL29wZW5qZGs4L2pyZQo+Pj4+Pj4+IERlZmF1bHQgbG9jYWxlOiBkZV9ERSwgcGxhdGZvcm0gZW5jb2Rpbmc6IFVURi04Cj4+Pj4+Pj4gT1MgbmFtZTogImZyZWVic2QiLCB2ZXJzaW9uOiAiMTEuMS1yZWxlYXNlLXAxIiwgYXJjaDogImkzODYiLCBmYW1pbHk6Cj4+Pj4+Pj4gInVuaXgiCj4+Pj4+Pj4KPj4+Pj4+PiB3b3JrcyBmbGF3bGVzc2x5Lgo+Pj4+Pj4+Cj4+Pj4+Pj4gQW55IGlkZWFzPwo+Pj4+Pj4+Cj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4+Pj4gLS0tLS0tLS0tCj4+Pj4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+Pj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Pj4+Pj4KPj4+Pj4+PiAtLQo+Pj4+Pj4+Cj4+Pj4+Pj4gU2VudCBmcm9tIG15IHBob25lCj4+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Pj4+Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+Cj4+Pj4KPj4+Pgo+Pj4KPj4KPj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCgotLSAKQ2hlZXJzClRpYm9yCgotLTA4OWUwODI4ZGRkOGMzYmYyODA1NThkYzVlYzItLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDAzNS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgU2VwIDE1IDEwOjAwOjQyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDAzNS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyQjg0NzFBQUEyCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMTUgU2VwIDIwMTcgMTA6MDA6NDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1NzkwMyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNSBTZXAgMjAxNyAxMDowMDozNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTc4MjMgaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgU2VwIDIwMTcgMTA6MDA6MzYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NzgwMyBpbnZva2VkIGJ5IHVpZCA5OSk7IDE1IFNlcCAyMDE3IDEwOjAwOjM2IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDE1IFNlcCAyMDE3IDEwOjAwOjM2ICswMDAwClJlY2VpdmVkOiBmcm9tIG1haWwteXcwLWYxNzMuZ29vZ2xlLmNvbSAobWFpbC15dzAtZjE3My5nb29nbGUuY29tIFsyMDkuODUuMTYxLjE3M10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCAyNEUxMDFBMDE0MDsKCUZyaSwgMTUgU2VwIDIwMTcgMTA6MDA6MzUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwteXcwLWYxNzMuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgdTExc281MzEzMzd5d2guNzsKICAgICAgICBGcmksIDE1IFNlcCAyMDE3IDAzOjAwOjM1IC0wNzAwIChQRFQpClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVanpWWWk2S0NFWEhESTdzVDRiZG92U3BGR003TE9sSlFHS2ZhQmgwNXBWU3d6NzYraWsKCTJ4eGplSmQrVld6aWd1cmFnb2dCc0swSXhzSjJERnRFeCt2SHpjVT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUR1WnhTV0RENmZaWWN0UkdOK1IxcjB3dHlzbWx3QTkrTE9qTGgycVQ2dU1Bd3lFQ2p1SFc0UXVGTVEvVExKVGp6czJrQ3I5YU5JenRpSGpmNmZqYkk9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjM3LjgwLjYgd2l0aCBTTVRQIGlkIGU2bXIyMTEzNzkzMnliYi4xNjcuMTUwNTQ2OTYzNDAzOTsgRnJpLAogMTUgU2VwIDIwMTcgMDM6MDA6MzQgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjEyOS4xNTcuMTk4IHdpdGggSFRUUDsgRnJpLCAxNSBTZXAgMjAxNyAwMzowMDozMyAtMDcwMCAoUERUKQpGcm9tOiBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+CkRhdGU6IEZyaSwgMTUgU2VwIDIwMTcgMTI6MDA6MzMgKzAyMDAKWC1HbWFpbC1PcmlnaW5hbC1NZXNzYWdlLUlEOiA8Q0FLdVZ6QlMtTzVoYitjOXJXc25QeWJtS0x2cnVNVjgwWXVjWWl3SmdRVl9MczMxNHN3QG1haWwuZ21haWwuY29tPgpNZXNzYWdlLUlEOiA8Q0FLdVZ6QlMtTzVoYitjOXJXc25QeWJtS0x2cnVNVjgwWXVjWWl3SmdRVl9MczMxNHN3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBbUkVTVUxUXSBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gU3VyZWZpcmUgUGx1Z2luIHZlcnNpb24gMi4yMC4xClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDYzogTWF2ZW4gUHJvamVjdCBNYW5hZ2VtZW50IENvbW1pdHRlZSBMaXN0IDxwcml2YXRlQG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExM2VhMjkwYzFkZTAwMDU1OTM3NzZhNiIKCi0tMDAxYTExM2VhMjkwYzFkZTAwMDU1OTM3NzZhNgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpIaSwKClRoZSB2b3RlIGhhcyBwYXNzZWQgd2l0aCB0aGUgZm9sbG93aW5nIHJlc3VsdDoKCisxIDogRW5yaWNvIE9saXZlbGxpIChub24tYmluZGluZyksIERhbiBUcmFuIChiaW5kaW5nKSwgVGhvbWFzIENvbGxpZ25vbgoobm9uLWJpbmRpbmcpLCBqaWVyeW4gKG5vbi1iaW5kaW5nKSwgTWljaGFlbCBPc2lwb3YgKGJpbmRpbmcpLCBQZXRyID1DNT1BMGk9CnJvaz1DMz1CRAoobm9uLWJpbmRpbmcpLCBUaWJvciBEaWdhPUM1PTg4YSAoYmluZGluZykKClBNQyBxdW9ydW06IERhbiBUcmFuLCBNaWNoYWVsIE9zaXBvdiwgVGlib3IgRGlnYT1DNT04OGEKCkkgd2lsbCBwcm9tb3RlIHRoZSBhcnRpZmFjdHMgdG8gdGhlIGNlbnRyYWwgcmVwby4KSSB3aWxsIGFkZCB0aGUgcmVsZWFzZSB0byB0aGUgbmV4dCBib2FyZCByZXBvcnQuCgpXaXRoIEJlc3QgUmVnYXJkcwpUaWJvciBEaWdhbmEKCi0tMDAxYTExM2VhMjkwYzFkZTAwMDU1OTM3NzZhNi0tCgpGcm9tIGRldi1yZXR1cm4tMTIzODkwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBTZXAgIDcgMjI6NDI6NTAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzODkwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDhCMDBEMUE5QUYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAgNyBTZXAgMjAxNyAyMjo0Mjo1MCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE2MzE4IGludm9rZWQgYnkgdWlkIDUwMCk7IDcgU2VwIDIwMTcgMjI6NDI6NTAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE2MjQ3IGludm9rZWQgYnkgdWlkIDUwMCk7IDcgU2VwIDIwMTcgMjI6NDI6NDggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNjIyOSBpbnZva2VkIGJ5IHVpZCA5OSk7IDcgU2VwIDIwMTcgMjI6NDI6NDggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDA3IFNlcCAyMDE3IDIyOjQyOjQ4ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRDAwMDVDNzI0RgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgIDcgU2VwIDIwMTcgMjI6NDI6NDcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjM3OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjM3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nb29nbGVtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgQ2JoOFVuc3BCNm9YIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVGh1LCAgNyBTZXAgMjAxNyAyMjo0Mjo0MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXl3MC1mMTc4Lmdvb2dsZS5jb20gKG1haWwteXcwLWYxNzguZ29vZ2xlLmNvbSBbMjA5Ljg1LjE2MS4xNzhdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQTRBQTE1RkNFMgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgIDcgU2VwIDIwMTcgMjI6NDI6NDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwteXcwLWYxNzguZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgcTgwc28zMTE3NDMzeXdnLjIKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAwNyBTZXAgMjAxNyAxNTo0Mjo0MiAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z29vZ2xlbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD0vbUZjTXptRFVNRWJycm1DL2twZFhycUJuZ245Qi85YjhXakhKalg3SS84PTsKICAgICAgICBiPUJpbEFvRk5kbWdKU1J3Slp2dUNlVGlQV3Bsb21VdGZiV0dRZEdGeldvMU9Zd0c0OHU0R2VHOFFVMkVJSHQyMFFKUAogICAgICAgICBwQ0RoVnRkYXZrUU12US80ODJZTDR0eGxnSFYzdlNjM25pUHVjTzRPaExyNlNzREMxUTJLeXlYMXV1dEh0c0pWUnNOUwogICAgICAgICBlZGQzU3h5Y3VndmRFTGpzT0F0OGkvZnN1UHIvdk1vYVQ3SE9USnN0a3FvR0tJU1hsbm5reTF3c1dSOFJPdFUwKzIvbAogICAgICAgICBVcnl4OUEzUEhlN0NBeTIrbnZhZm1NZURXTkpLS3NzWHBBTVhuci9QK0lLTys4TlQzRFEzbmZCbGxnU0NPUmRWUDc3dQogICAgICAgICBlZUZjVVVFaVlHSTVUdFJpcUZsNFlobm1sOWtKY1NvUyt5bEg3R2c1LzlvbnI5d01teDBwK01kcVBPYm94RStNVkEydAogICAgICAgICBwTk13PT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD0vbUZjTXptRFVNRWJycm1DL2twZFhycUJuZ245Qi85YjhXakhKalg3SS84PTsKICAgICAgICBiPVZwa3paNUhDcUpsMVoxSldGaUtaQVE0UnNlZmVOYmdTVnB5TXVxcUtmdDRxYjZZQUhNSCtVZEdZR245TEszUFE5UwogICAgICAgICBjM2ZTTnBQZEZ2dk5iOWhEbjczd0h2UVVvbHZBcGVxQktHN0doSVB6RGtJY2xWaTJzN09YaXBMODU0WlVEWXBqYnErVAogICAgICAgICB6ZXFxL0k3MFRaMzZDUFhFZ1RzVm1MMXBYMlUxdzFGVm53dUpOeDEweCs0bkU0Uld2amdITm93RWtVOUVvaHpOazRJTgogICAgICAgICBMVkV4U3hvcG9BSGFXSEJZY1RQK2xuV0JRNDZZZEl1aEZub1lmOVJvNjNFZ2JzSWpNd2lOc0greEd6OEpkV3F0WDZ3egogICAgICAgICBpUFVpTkZ5Tllud0I1dUdISm5EUkpkaTF6ZmF0eDBJS2l1RHFSRVdnd2Q2MWJRSkRqa0QvZDkrUjNpSjY5VTE5aHJsSQogICAgICAgICAyM0d3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVnc3g0R25XOXV6YTlNUjR3RkFiMEJyVTZlVHhsVmVwUjAxU004b0szOGZoRWtuRlIrYwoJTFhTRGZta2s2OERFeVkySkxDUnJvLzRkZ25iUmRyNE8KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUNPYUJsdysxOG1ta05YQ0dTa3ZFM3g1MXplUVN1Wld1WVVaODdUd0FONWYwS0hVYnQ0SWY5d2YvdFRyWXNJbXZ2Rzcvb2JFS3dnQ0cxZ2UxZzVYQmM9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjM3LjgwLjYgd2l0aCBTTVRQIGlkIGU2bXI4MzYwNzJ5YmIuMTY3LjE1MDQ4MjQxNTYzNjE7IFRodSwKIDA3IFNlcCAyMDE3IDE1OjQyOjM2IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xMjkuMTU3LjE5OCB3aXRoIEhUVFA7IFRodSwgNyBTZXAgMjAxNyAxNTo0MjozNSAtMDcwMCAoUERUKQpGcm9tOiBUaWJvciBEaWdhbmEgPHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbT4KRGF0ZTogRnJpLCA4IFNlcCAyMDE3IDAwOjQyOjM1ICswMjAwCk1lc3NhZ2UtSUQ6IDxDQUt1VnpCUy1VUlBjbWk4MVIyLXhvTFJKYlBRZkI4ODdiLXUrTU5QaEJUZjdoVDZGeWdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFVzZXJzIGNhbiBhc3NpZ24gRml4IFZlcnNpb24vcyBpbiBKaXJhClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTNlYTI5MDRhMTg1YzA1NThhMTJkZGQiCgotLTAwMWExMTNlYTI5MDRhMTg1YzA1NThhMTJkZGQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCkkgZm91bmQgb3V0IHRoYXQgdXNlcnMgY3JlYXRlIGFuIGlzc3VlIGluIEppcmEgYW5kICphc3NpZ24gdmVyc2lvbiogWzFdLgpJIHJlbWVtYmVyIHRoaXMgZGlkIG5vdCBoYXBwZW4gaW4gb2xkIEppcmEuClNvIEkgZGVjaWRlIHRvIHJlcG9ydCBhIHRpY2tldCBpbiBJTkZSQS4KCkRvIHlvdSBoYXZlIHRoZSBzYW1lIGV4cGVyaWVuY2VzPwpXaGF0J3MgeW91ciBvcGluaW9uIGFib3V0IGl0PwoKWzFdOiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0lORlJBLTE1MDQ3CgotLSAKQ2hlZXJzClRpYm9yCgotLTAwMWExMTNlYTI5MDRhMTg1YzA1NThhMTJkZGQtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDE4Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gT2N0ICA4IDExOjEwOjAyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDE4Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBENDYxRjEwMEM5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgIDggT2N0IDIwMTcgMTE6MTA6MDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxMDUzOCBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IE9jdCAyMDE3IDExOjEwOjAyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMDQ1NyBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IE9jdCAyMDE3IDExOjEwOjAyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTA0NDYgaW52b2tlZCBieSB1aWQgOTkpOyA4IE9jdCAyMDE3IDExOjEwOjAyIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDA4IE9jdCAyMDE3IDExOjEwOjAyICswMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcXQwLWYxNzAuZ29vZ2xlLmNvbSAobWFpbC1xdDAtZjE3MC5nb29nbGUuY29tIFsyMDkuODUuMjE2LjE3MF0pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCAxNjNDQzFBMDJDRAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgIDggT2N0IDIwMTcgMTE6MTA6MDAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtcXQwLWYxNzAuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgMzRzbzIxNDg0MzkzcXRiLjEzCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMDggT2N0IDIwMTcgMDQ6MTA6MDAgLTA3MDAgKFBEVCkKWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FWekdFQzZyRVZtdHYxWkNMTXBGaUVqSVdJM1Y2Szl2QXdmTEtvWEFUOEx0dUdmOXkweAoJT3VDeTFUcStKL0pZcFk2dDdtOTlkZFpwNXorRFRDNk5FS0J4RFMwPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQ1ZGcTFkT0hwSE1Ca05BTjdxK2pDTS94RkZpYm12cGc2Q3BhWnllN3ZCSzg5N1kzYytJZWxFRFlnOEdCY3oxSVlyR0U2VFl2TnNyR0d1YmdJa3Excz0KWC1SZWNlaXZlZDogYnkgMTAuMTI5LjExOC4xOCB3aXRoIFNNVFAgaWQgcjE4bXI1OTY2NzA2eXdjLjczLjE1MDc0NjA5OTkwNDg7CiBTdW4sIDA4IE9jdCAyMDE3IDA0OjA5OjU5IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xMjkuMTkzLjY3IHdpdGggSFRUUDsgU3VuLCA4IE9jdCAyMDE3IDA0OjA5OjU4IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8NTY1MTc1Ni4wek5DaTViNldKQGdpZ2E+ClJlZmVyZW5jZXM6IDwxMDU0NDYxNS5CNGhPM1BudkV6QGdpZ2E+IDwzMDY2MzA4LlJaNzZzTVQyYmNAZ2lnYT4KIDxDQUt1VnpCVHB3eVJqN2RrcE5PR2JEZkRvU3ktYjl4d01KSGg2NHFSZTF4R2FyOW9kRFFAbWFpbC5nbWFpbC5jb20+IDw1NjUxNzU2LjB6TkNpNWI2V0pAZ2lnYT4KRnJvbTogVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPgpEYXRlOiBTdW4sIDggT2N0IDIwMTcgMTM6MDk6NTggKzAyMDAKWC1HbWFpbC1PcmlnaW5hbC1NZXNzYWdlLUlEOiA8Q0FLdVZ6QlM3VDRUUGNaQUZKZT1mUnl2MVJVR1BLOEJGYkRxamVRM0xUazFadnpIaHpnQG1haWwuZ21haWwuY29tPgpNZXNzYWdlLUlEOiA8Q0FLdVZ6QlM3VDRUUGNaQUZKZT1mUnl2MVJVR1BLOEJGYkRxamVRM0xUazFadnpIaHpnQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogSmVua2lucyBhbmQgTWF2ZW4gMy4wLjUgb3IgSkRLIDcKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iZjQwMzA0NWYwYmE4NWM3MjE1MDU1YjA3MWQ5ZCIKCi0tZjQwMzA0NWYwYmE4NWM3MjE1MDU1YjA3MWQ5ZApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpOb3cgSSBoYXZlIGZvdW5kIG91dCB0aGF0IEdpdEh1YiBoYXMgc3VibW9kdWxlcy4gVGhpcyBkb2VzIG5vdCBpbnRyb2R1Y2UgYW4KaW50ZXJtZWRpYXRlIHBhdGggaW4gVVJMIGJ1dCBpdCB3b3VsZCBpbnRyb2R1Y2UgYSBraW5kIG9mIGdyb3VwcGVyIHJlcG8KZm9sZGVyLiBGb3IgaW5zdGFuY2UgbWF2ZW4tY2xlYW4tcGx1Z2luIHdvdWxkIGJlIHN1Ym1vZHVsZSBpbnNpZGUgcmVwbwptYXZlbi1wbHVnaW5zLgpSZWZlcmVuY2VzOgpodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zNTA0MzczMy9ob3ctZG8taS1jcmVhdGUtbmVzdGVkLXJlcG9zaXQ9Cm9yaWVzLWluLWdpdGh1YgoKRXhhbXBsZSBmcm9tIHN0YWNrb3ZlZmxvdzoKaHR0cHM6Ly9naXRodWIuY29tL2xhcmlzdHJhL2NpbmNoLW5lc3RlZC1leGFtcGxlLwpTZWUgdGhlIGRlZmluaXRpb24gb2Ygc3VibW9kdWxlcwpodHRwczovL2dpdGh1Yi5jb20vbGFyaXN0cmEvY2luY2gtbmVzdGVkLWV4YW1wbGUvYmxvYi9tYXN0ZXIvLmdpdG1vZHVsZXMKd2hpY2ggcmVzdWx0cyBpbiByZXBvczoKaHR0cHM6Ly9naXRodWIuY29tL2xhcmlzdHJhL2NpbmNoLWV4YW1wbGUvCmh0dHBzOi8vZ2l0aHViLmNvbS9sYXJpc3RyYS9jaW5jaAoKSSB0aGluayBHaXRIdWIgZG9lcyBub3QgcHJvdmlkZSB1cyB3aXRoIGJldHRlciBzb2x1dGlvbnMuCgpPbiBTdW4sIE9jdCA4LCAyMDE3IGF0IDEyOjQ5IFBNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4Kd3JvdGU6Cgo+IEkgZmVhciB0aGlzIGlzIG5vdCBhbiBvcHRpb24gdG9kYXksIGJ1dCBpZGVhbGx5LCB0aGF0IHdvdWxkIGJlIGEgcGVyZmVjdGw9CnkKPiB2aXNpYmxlIGdyb3VwaW5nCj4KPiB3ZSBuZWVkIHRvIGZpbmQgYW5vdGhlciB3YXkgb2YgZ3JvdXBpbmcsIGZvciBwZW9wbGUgd2hvIGRvIGNhcmUgYWJvdXQgTWF2PQplbgo+IGdlbmVyYWwgc3RydWN0dXJlOiBwZW9wbGUgd2hvIGp1c3Qgd29yayBvbiBhbiBhcnRpZmFjdCBqdXN0IGRvbid0IGNhcmUKPiBhbmQgdGhleSBkb24ndCBjYXJlIHRoYXQgZ2l0IHJlcG9zIGFyZSBmbGF0IGV2ZW4gYXQgQXBhY2hlIGxldmVsOiBBcGFjaGUKPiBsZXZlbAo+IGp1c3QgZW5mb3JjZSBncm91cGluZyB2aWEgcmVwbyBuYW1lIHByZWZpeAo+IGh0dHA6Ly9naXQuYXBhY2hlLm9yZy8KPgo+IGN1cnJlbnRseSwgSSBob3BlIHRoYXQgb3VyICJmdWxsIE1hdmVuIHNvdXJjZSBjb2RlIGNsb25lIiBpbXBsZW1lbnRhdGlvbgo+IHdvdWxkCj4gbWFrZSB0aGUgTWF2ZW4gY29kZSBzdHJ1Y3R1cmUgZ3JvdXBpbmcgdmlzaWJsZQo+IGlmIHdlIGltcGxlbWVudCBpdCBhcyBhIHNoZWxsIHNjcmlwdCwgdGhhdCdzIG9ubHkgYSBmZXcgbWtkaXJzOiBidXQgSSdtIG49Cm90Cj4gY29udmluY2VkIGJ5IHNoZWxsIHNjcmlwdCBpbXBsZW1lbnRhdGlvbiwgc2luY2UgY2xvbmluZyBpcyBvbmUgY29tbWFuZCwKPiBidXQgd2UKPiBuZWVkIGFsc28gdG8gYmUgYWJsZSB0byBmZXRjaCBhbmQgcHVsbAo+Cj4gUmVnYXJkcywKPgo+IEhlcnY9QzM9QTkKPgo+IExlIGRpbWFuY2hlIDggb2N0b2JyZSAyMDE3LCAxMjoyMTo1NCBDRVNUIFRpYm9yIERpZ2FuYSBhID1DMz1BOWNyaXQgOgo+ID4gV291bGQgd2UgbmVlZCB0byBoYXZlIHRoZSBVUkxzIGxpa2UgdGhlc2U/Cj4gPiBnaXRodWIvYXBhY2hlLyoqKi9yZXBvCj4gPiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlLyptYXZlbi1wbHVnaW5zKi9tYXZlbi1jbGVhbi1wbHVnaW4vCj4gPiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlLyptYXZlbi1zaGFyZWQqL21hdmVuLXNoYXJlZC11dGlscy8KPiA+Cj4gPiBPbiBTdW4sIE9jdCA4LCAyMDE3IGF0IDQ6NTUgQU0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLj0KZnI+Cj4gd3JvdGU6Cj4gPiA+IFRMRFI7ID0zRAo+ID4gPiBQZXJoYXBzIHdlIGNhbiBzdGFydCB3aXRoIDIgcHJvb2ZzIG9mIGNvbmNlcHQ6Cj4gPiA+IDEuIGZ1bGwgZ2l0IGNsb25lICsgSmVua2lucyBqb2JzIGZvciB0aGUgNyBleGlzdGluZyBnaXQgcmVwb3MgKHdpdGggNgo+ID4gPiBhZGRpdGlvbmFsIG9uZXMgaW4gMiBkYXlzKQo+ID4gPiAyLiBnaXQgc3BsaXQgb2Ygb25lIG9mIHRoZSBhZ2dyZWdhdG9yIHN2biB0cnVuazogc2tpbnMgb3IgZG94aWEtdG9vbHMKPiBjYW4KPiA+ID4gYmUKPiA+ID4gZWFzeSBjaG9pY2VzIHNpbmNlIHRoZXkgYXJlIGxpZ2h0LCB3aGVyZSBwbHVnaW5zIG9yIHNoYXJlZCBhcmUgcGVyaGFwPQpzCj4gdG9vCj4gPiA+IGhlYXZ5LiBUaGUgb25lIHdvcmtpbmcgb24gdGhpcyBQb0Mgd2lsbCBtYWtlIGhpcyBjaG9pY2UKPiA+ID4KPiA+ID4gdGhlbiBtb3JlIGRldGFpbGVkIGFuc3dlciBpbmxpbmUgdGhhdCBsZWFkIHRvIHRoaXMgUG9DcyBwcm9wb3NhbAo+ID4gPgo+ID4gPiBSZWdhcmRzLAo+ID4gPgo+ID4gPiBIZXJ2PUMzPUE5Cj4gPiA+Cj4gPiA+IExlIGRpbWFuY2hlIDggb2N0b2JyZSAyMDE3LCAwMDowMjoxMCBDRVNUIFRpYm9yIERpZ2FuYSBhID1DMz1BOWNyaXQgOgo+ID4gPiA+IEkgZG9uJ3QgdGhpbmsgdGhlIGRldnMgd291bGQgd29yayBvbiBhbGwgYXJ0aWZhY3RzKHByb2plY3RzKSBhIHRpbWU9Ci4KPiA+ID4KPiA+ID4gc3VyZSwgSSB0aGluayBJJ20gb25lIG9mIHRoZSBmZXcgcGVvcGxlIHdvcmtpbmcgb24gbmVhciBldmVyeXRoaW5nCj4gKHdpdGgKPiA+ID4gcmFyZQo+ID4gPiBleGNlcHRpb25zIGxpa2UgU3VyZWZpcmUsIGFzIHlvdSBub3RpY2VkIDopICkKPiA+ID4gYnV0IGZvciB1c3VhbCBjb250cmlidXRvciwgdGhlcmUgaXMgbm8gaXNzdWUKPiA+ID4KPiA+ID4gSSdtIG5vdCBhIGdpdCBleHBlcnQsIHRoZW4gSSBkb24ndCBrbm93IGlmIGVhc3kgImZ1bGwgTWF2ZW4gY2xvbmUiIGlzCj4gPiA+IGJldHRlcgo+ID4gPiBkb25lIHdpdGggYSBzaGVsbCBzY3JpcHQgb3Igc29tZSBnaXQgbW9kdWxlcwo+ID4gPgo+ID4gPiA+IElmIHRoZSBuYW1pbmcgY29udmVudGlvbiBvZiByZXBvIGZvciBhIHBsdWdpbiB3b3VsZCBiZSBhcnRpZmFjdElkLAo+IGxpa2UKPiA+ID4gPiAvbWF2ZW4tY2xlYW4tcGx1Z2luLCB0aGVuIGV2ZW4gZWFzeSB0byBmaWd1cmUgb3V0IHdoaWNoIG9uZSB0byBjbG9uPQplLgo+ID4gPiA+IFRoZSBtb3N0IGxpa2VseSB0aGUgZGV2IHdvdWxkIGp1c3QgY2xvbmUgb25lIHJlcG8gc2hlL2hlIGlzCj4gaW50ZXJlc3RlZAo+ID4gPiA+IGluCj4gPiA+ID4gYXQgdGhlIG1vbWVudCwgaS5lLiByZXBvc2l0b3J5IC9tYXZlbi1jbGVhbi1wbHVnaW4sIGxldCdzIHNheS4KPiA+ID4gPiBJdCdzIGdvb2QgdG8gYXZvaWQgYW55IHNoYXJlZCBmaWxlcyBhY3Jvc3MgdGhlbSwgZXZlbiBJIGRvbid0IHRoaW5rCj4gZGV2cwo+ID4gPiA+IHNoYXJlIHNvbWUgaW4gc3ZuIHRvZGF5LiBUaGUgcmVsZWFzZSBwcm9jZXNzIHdvdWxkIGJlIHF1aXRlIHVzdWFsLAo+IGkuZS4KPiA+ID4KPiA+ID4gb25lCj4gPiA+Cj4gPiA+ID4gcmVwbyA9M0Qgb25lIHByb2plY3QsIGFuZCBuZXcgZGV2cyBhbHJlYWR5IGhhdmUgdGhlc2UgZXhwZXJpZW5jZXMgdz0KaGljaAo+ID4gPgo+ID4gPiB3aWxsCj4gPiA+Cj4gPiA+ID4gYmUgc2ltcGxlIGZvciB0aGVtIHRvIGFkYXB0IGZhc3Rlci4KPiA+ID4KPiA+ID4gKzEKPiA+ID4gdGhlIG9ubHkgZHJhd2JhY2sgSSBzZWUgY3VycmVudGx5IGlzIHRoYXQgdGhlcmUgaXMgbm8gbmF0dXJhbCBncm91cGluPQpnLAo+ID4gPiB0aGVuCj4gPiA+IHdlIGhhdmUgYSBmbGF0IGxpdCBvZiBuZWFyIDEwMCBnaXQgcmVwb3Mgd2l0aG91dCB0aGUgY3VycmVudCBzdHJ1Y3R1cj0KZQo+ID4gPiAocGx1Z2lucywgc2hhcmVkIGNvbXBvbmVudHMsIHNraW5zLCAuLi4pOiBJIHRoaW5rIGNvbXBvbmVudHMgc3RydWN0dXI9CmUKPiBpcwo+ID4gPiB1c2VmdWwgZm9yIG1haW50ZW5hYmlsaXR5Cj4gPiA+IGJ1dCBub3QgcmVhbGx5IGEgY29tcGxldGUgc2hvd3N0b3BwZXIKPiA+ID4gYW5kIHBlcmhhcHMgdGhlICJNYXZlbiBmdWxsIGNsb25lIiB0b29saW5nIGNhbiByZS1jcmVhdGUgc29tZSBncm91cGluPQpnCj4gdG8KPiA+ID4ga2VlcAo+ID4gPiB2aXNpYmxlIHN0cnVjdHVyZQo+ID4gPgo+ID4gPiBOb3csIHNvbWVvbmUgaGFzIHRvIGtub3cgaG93IHRvIGNyZWF0ZSBwZXItY29tcG9uZW50IGdpdCByZXBvIHdpdGggdGE9CmdzCj4gPiA+IChlaXRoZXIgYnkgcmV3b3JraW5nIGV4aXRpbmcgZ2l0IG1pcnJvcnMsIGVpdGhlciBieSByZXN0YXJ0aW5nIGZyb20KPiBzdm4pLAo+ID4gPiBhbmQKPiA+ID4gdGhhdCdzIG5vdCBtZSA6KQo+ID4gPgo+ID4gPiBnaXZlbiB0aGUgdm9sdW1lIChhZGRpbmcgNzAgZ2l0IHJlcG9zIGZvciBNYXZlbiksIHdlJ2xsIGhhdmUgdG8gdGVsbAo+IGluZnJhCj4gPiA+IGFib3V0IGl0Lgo+ID4gPgo+ID4gPiBUaGVuIHRoZXJlIGlzIHRoZSBKZW5raW5zIGpvYnMgY29uZmlndXJhdGlvbjoKPiA+ID4gLSB3ZSBuZWVkIGVhc3kgSmVua2luc2ZpbGUgaW4gZWFjaCByZXBvCj4gPiA+IC0gd2UgbmVlZCBlYXN5IDgwIGpvYnMgY3JlYXRpb24gKG5vLCBJIHdvbid0IG1hbnVhbGx5IGNyZWF0ZSA4MCBqb2JzCj4gPiA+IHBlcnNvbmFsbHkpCj4gPiA+IEFuZCBvbmNlIGFnYWluLCBpbmZyYSB3aWxsIGhhdmUgdG8gYmUgaW4gdGhlIGxvb3AgKGF0IEplbmtpbnMgc2lkZSB0aD0KaXMKPiA+ID4gdGltZSksCj4gPiA+IHNpbmNlIEkgZmVhciB0aGUgbG9hZCBvbiBKZW5raW5zIG1hc3RlciBub2RlIHdvbid0IGJlIGxpZ2h0OiBwZXJoYXBzCj4gPiA+IHRoYXQncwo+ID4gPiB3aGVyZSBKZW5raW5zIGZvbGRlcnMgd2lsbCBiZSB1c2VmdWwsIGJ1dCBJJ20gbm90IGEgSmVua2lucyBleHBlcnQKPiBlaXRoZXIuCj4gPiA+Cj4gPiA+Cj4gPiA+IElmIGV2ZXJ5dGhpbmcgc2VlbXMgZmVhc2libGUgdG8gc3BsaXQgb3VyIHN2biBjb2RlIGludG8gMSBnaXQgcmVwbyBwZT0Kci0KPiA+ID4gY29tcG9uZW50LCB3aGljaCB3aWxsIGJyaW5nIHVzIHRvICJmdWxsIE1hdmVuIGNvZGUiIGJlaW5nIG5lYXIgMTAwCj4gcmVwb3MsCj4gPiA+IEknbQo+ID4gPiBvayB3aXRoIGl0Lgo+ID4gPiBXZSdsbCBuZWVkIHRoZSBoZWxwIG9mIG1pc2MgZXhwZXJ0cyBvbiBKZW5raW5zIGFuZCBnaXQgdG8gcHJlcGFyZQo+IHRoaW5ncwo+ID4gPiBhdAo+ID4gPiB0aGlzIHNjYWxlLgo+ID4gPgo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCi0tZjQwMzA0NWYwYmE4NWM3MjE1MDU1YjA3MWQ5ZC0tCgpGcm9tIGRldi1yZXR1cm4tMTIzOTMxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBTZXAgMTAgMTk6MDY6MzcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTMxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDQ0RTQyMUFFMDQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAxOTowNjozNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDM1NzU2IGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIFNlcCAyMDE3IDE5OjA2OjM2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNTY3NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBTZXAgMjAxNyAxOTowNjozNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM1NjY2IGludm9rZWQgYnkgdWlkIDk5KTsgMTAgU2VwIDIwMTcgMTk6MDY6MzUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTAgU2VwIDIwMTcgMTk6MDY6MzUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC15dzAtZjE3Ni5nb29nbGUuY29tIChtYWlsLXl3MC1mMTc2Lmdvb2dsZS5jb20gWzIwOS44NS4xNjEuMTc2XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEFFNzRCMUEwMDI5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAxOTowNjozNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC15dzAtZjE3Ni5nb29nbGUuY29tIHdpdGggU01UUCBpZCB2NzJzbzE1NTQzNDEzeXdhLjMKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAxMjowNjozMyAtMDcwMCAoUERUKQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWpQSFlERnVxdFlBUTFvVVhVY1N1SStYS1BMaDYxSXplMEZ3ZS9sY3pnSEZjNEx6SjVWCglYdENLL0JzZklLN1dWU1l1Y2FXaitDY0FkOTdGSUE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRRGpMYnBiY1J1QzcvZTZ1dnhQYTFjbng5bnFzNXdGdzBpN2FRR2V1MGUyUTZWNXJMSEhuWlZjRWRvY2JHaElDZERKcndCRVg3TSswL1BXZklkamVYST0KWC1SZWNlaXZlZDogYnkgMTAuMzcuMTAyLjgyIHdpdGggU01UUCBpZCB6MThtcjk3MDI5NXlibS4zOS4xNTA1MDcwMzkyNjg5OyBTdW4sCiAxMCBTZXAgMjAxNyAxMjowNjozMiAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTI5LjE1Ny4xOTggd2l0aCBIVFRQOyBTdW4sIDEwIFNlcCAyMDE3IDEyOjA2OjMyIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8b3AueTZjNWdwc2RrZGtocnJAZGVza3RvcC0ya2hzazQ0PgpSZWZlcmVuY2VzOiA8Q0ErblBuTXp6MnU2PWNkVTUraDFIc3ZXaFM0Q1Q1emtZenJXQ0Vvdy1HOEN6dittWTJnQG1haWwuZ21haWwuY29tPgogPENBK25Qbk16K3ZIa2ttczEzRUNodzVrR0JuWERrOTNfSHI1Rjc2K0RldGJucHFmaUdYd0BtYWlsLmdtYWlsLmNvbT4KIDxvcC55NmN5eGpnY2tka2hyckBkZXNrdG9wLTJraHNrNDQ+IDxDQUt1VnpCU05fUmRETWlCcmRmSlVZeUdvUERENGJOYW9xVzhqQThNME49bTZhVWl0bndAbWFpbC5nbWFpbC5jb20+CiA8Q0ErblBuTXdXS1ZtNHhoelRWckY2ZHhzaXlyVU55T3pyVE1DblFhalorQTZpWFk2Qkh3QG1haWwuZ21haWwuY29tPiA8b3AueTZjNWdwc2RrZGtocnJAZGVza3RvcC0ya2hzazQ0PgpGcm9tOiBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+CkRhdGU6IFN1biwgMTAgU2VwIDIwMTcgMjE6MDY6MzIgKzAyMDAKWC1HbWFpbC1PcmlnaW5hbC1NZXNzYWdlLUlEOiA8Q0FLdVZ6QlNCTVMxTjZIeDlaWXhfYz1RNjJTcFFQdExZNXN1ZzRIWUxuamJuWTlQbXJRQG1haWwuZ21haWwuY29tPgpNZXNzYWdlLUlEOiA8Q0FLdVZ6QlNCTVMxTjZIeDlaWXhfYz1RNjJTcFFQdExZNXN1ZzRIWUxuamJuWTlQbXJRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1JFU1VMVF0gUmU6IFBsZWFzZSByZXR3ZWV0IGFuZCB2b3RlClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjA4OWUwODI4ZGRkODFlNGY5NjA1NThkYTgyZDMiCgotLTA4OWUwODI4ZGRkODFlNGY5NjA1NThkYTgyZDMKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKClJvYmVydCwKCj4+QW5kIGlmIHdlJ3JlIGZvY3VzaW5nIG9uIHRoZSBsYXR0ZXIsIHNob3VsZG4ndCB0aGUgdHdpdHRlciBxdWVzdGlvbiBiZQoKR29vZCByZW1hcmshIEkgYW0gbm90IGFnYWluc3Qgc3VjaCBxdWVzdGlvbiBvbiBUd2l0dGVyIGJ1dCBJIHdvdWxkIGJlCmludGVyZXN0ZWQgaW4gb25lIG1vcmUgaW4gY29tcGFyaXNvbiB0byBHcmFkbGUuCgoqV2hhdCB0aGUgTWF2ZW4gc2hvdWxkIGltcHJvdmUgdG8gbWFrZSBNYXZlbiBtb3JlIGF0dHJhY3RpdmUgYWdhaW5zdApHcmFkbGU/KgoKQmVjYXVzZSBJIGRvbid0IHRoaW5rIHRoYXQgcXVlc3Rpb24gYWJvdXQgdXNpbmcgSmF2YSA4IGluIE1hdmVuIGJlYXRzIG1vcmUKdGhhdCB0aGUgcXVlc3Rpb24gd2l0aCBHcmFkbGUuCgpJIGtub3cgdGhlIFBNQydzIGFuc3dlciB0byBHcmFkbGUgYW5kIEkgYW0gdG90YWxseSB3aXRoIHlvdSEgSSBkb24ndCB1c2UKR3JhZGxlIGFuZCBuZXZlciB3aWxsIGJ1dCB0aGUgdXNlcnMgYWx3YXlzIGxpa2UgdG8gdHJ5IHNvbWUgbmV3LgoKT24gU3VuLCBTZXAgMTAsIDIwMTcgYXQgODo1NCBQTSwgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgp3cm90ZToKCj4gT24gU3VuLCAxMCBTZXAgMjAxNyAyMDoyMToxMSArMDIwMCwgU3RlcGhlbiBDb25ub2xseSA8Cj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiBPbiBTdW4gMTAgU2VwIDIwMTcgYXQgMTk6MDQsIFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4gd3JvdGU6Cj4+Cj4+IEhpIEFsbCwKPj4+Cj4+PiBBcmUgd2UgZmFjaW5nIG5ldyBBUEkgcmVnYXJkaW5nIG5ldHdvcmtpbmcgYW5kIHNlY3VyaXR5IHVzZWZ1bCBpbiBKYXZhIDg/Cj4+Pgo+Pj4gV2hlbiBJIGZpcnN0IHNhdyB0aGVzZSBvcHRpb25zIEkgYXNrZWQgbXlzZWxmIHdoYXQgYmVuZWZpdCB3b3VsZCBoYXZlIHRoZQo+Pj4gVXNlciBhbmQgSmVua2lucyBmcm9tIEphdmEgOC4KPj4+IEFuZCBzZWNvbmQgcXVlc3Rpb24gd2FzIHdoZXRoZXIgd2Ugd291bGQgYmUgc28gZmxleGlibGUgdG8gcmV3cml0ZSB0aGUKPj4+IGNvZGUKPj4+IGFuZCB1c2UgTGFtYmRhIGZ1bGx5IGFueXdoZXJlIGluIHRoZSBjb2RlLgo+Pj4KPj4KPj4KPj4gVGhlcmUgaXMgdGhlIHNvY2lhbCBhc3BlY3QuIElmIHlvdSBhcmUgYSBwb3RlbnRpYWwgbmV3IGNvbnRyaWJ1dG9yIHRvCj4+IE1hdmVuCj4+IGFuZCB5b3UgbG9vayBhdCBvdXIgaGVhdnkgSmF2YSAxLjMgY29udmVudGlvbiBjb2RlYmFzZSAob2ssIEknbSBiZWluZyBhCj4+IGRlbWFnb2d1ZSwgaXQncyBoYWQgYSBiaXQgdXBkYXRlZCB0byA1LjApIGFyZSB5b3UgZ29pbmcgdG8gYmUgZW5jb3VyYWdlZAo+PiB0bwo+PiBzdGVwIGZvcndhcmQ/Cj4+Cj4+IEhvdyBjYW4geW91IG1ha2Ugc21hbGwgaW1wcm92ZW1lbnRzIGFuZCBkZW1vbnN0cmF0ZSB5b3UgYXJlIGEgc2FmZSBwYWlyIG9mCj4+IGhhbmRzIHRvIGdhaW4gdGhlIGNvbW1pdCBiaXQ/Cj4+Cj4+IE5vdyBpZiB3ZSBoYXZlIHRoZSBvcGVydHVuaXR5IHRvIG1ha2UgbG90cyBvZiB0aWR5IHVwIGFuZCB5b3UgY2FuIHNob3cgeW91Cj4+IGFyZSBhIHNhZmUgcGFpciBvZiBoYW5kcywgcmV0YWluaW5nIGJpbmFyeSBjb21wYXRpYmlsaXR5IHdpdGggb2xkZXIKPj4gcGx1Z2lucywgbWFraW5nIHRoZSBjb2RlIG1vcmUgcmVhZGFibGUsIGZpbmRpbmcgZmlsZSBoYW5kbGUgbGVha3MsIGV0Yy4uLgo+PiB3ZWxsIG5vdyB5b3UgaGF2ZSBhIHdlbGNvbWUgcGF0aCB0byBkZW1vbnN0cmF0ZSB5b3VyIHNraWxscy4uLi4gd2hpbGUKPj4gZ2FpbmluZyBmYW1pbGlhcml0eSB3aXRoIHRoZSBjb2RlYmFzZSBzbyB0aGF0IHdoZW4gd2UgdHVybiBhcm91bmQgdG8gc3RhcnQKPj4gb24gTWF2ZW4gNS4wLnggeW91IGNhbiBqb2luIGluIHRoZSBmdW4uCj4+Cj4+IE5vdyB0aGF0IGlzIG5vdCBhIHRlY2huaWNhbCBhcmd1bWVudCwgYnV0IHdlIGFyZSBhIGNvbW11bml0eSBmaXJzdC4uLiBzbwo+PiBtYXliZSB0aGUgdGVjaG5pY2FsIGFyZ3VtZW50cyBhcmUgbm90IHNvIHJpZ2h0IHRvIHB1c2ghCj4+Cj4+Cj4gYnEuIGJ1dCB3ZSBhcmUgYSBjb21tdW5pdHkgZmlyc3QKPgo+IFdoYXQncyB0aGUgZGVmaW5pdGlvbiBvZiBjb21tdW5pdHk6IHRoZSBsYXJnZSB1c2VyIGdyb3VwIG9yIHRoZSBmZXcgd2UncmUKPiBob3BpbmcgdG8gZmluZCB3aG8gY2FuIGhlbHAgd29ya2luZyBvbiBNYXZlbj8KPiBBbmQgaWYgd2UncmUgZm9jdXNpbmcgb24gdGhlIGxhdHRlciwgc2hvdWxkbid0IHRoZSB0d2l0dGVyIHF1ZXN0aW9uIGJlOgo+Cj4gSSB3YW50IHRvIGJlY29tZSBhIE1hdmVuIGRldmVsb3Blcgo+IFtdIHJpZ2h0IG5vdyEKPiBbXSBvbmx5IGlmIE1hdmVuIHJlcXVpcmVzIEphdmEgOCAoIHNvIEkgY2FuIHVzZSBsYW1iZGEncywgZXRjLikKPiBbXSBuZXZlciwgbGV0IG90aGVycyBkbyB0aGUgam9iCj4gW10gb3RoZXIuLi4KPgo+Cj4KPj4+IFNvIEkga2VwdCBKYXZhIDcgZm9yIE1hdmVuIDMuNiB3aGljaCBkb2VzIG5vdCBtZWFuIHRoYXQgTWF2ZW4gNCBvciA1Cj4+PiB3b3VsZAo+Pj4gbm90IGNoYW5nZSB0aGlzLgo+Pj4gUmVnYXJkaW5nIHNlY3VyaXR5IGV2ZXJ5Ym9keSBjYW4gdXNlIEpESyA4IHdpdGggb2xkIE1hdmVuIGJ1dCBkaWZmZXJlbnQKPj4+IHN0b3J5IHdvdWxkIGJlIGVuaGFuY2VtZW50cyBpbiBOZXR3b3JraW5nIEFQSS4KPj4+Cj4+Cj4+Cj4+IFllcywgYnV0IHNob3VsZG4ndCB3ZSBzdG9wIHRoZW0gdXNpbmcgdGhlIGtub3duIGJhZCBKYXZhIDcgaWYgdGhleSB3YW50Cj4+IHRoZQo+PiBsYXRlc3QgbWF2ZW4/IElmIHRoZXkgZG9uJ3QgY2FyZSBhYm91dCBzZWN1cml0eSwgdGhlbiB0aGV5J2xsIGxpa2VseSBub3QKPj4gdXBncmFkZSBNYXZlbiBlaXRoZXIuLi4gc28gd2h5IHdvcnJ5IGFib3V0IGtlZXBpbmcgSmF2YSA3IGZvciB0aGVtLi4uIHdoZW4KPj4gdGhleSBkbyBnZXQgYXJvdW5kIHRvIHVwZ3JhZGluZyB0aGV5J2xsIGRvIGl0IGFsbCBpbiBidWxrIGFueXdheS4uLiBzbwo+PiBhc2tpbmcgdGhlbSB0byBnbyBKYXZhIDggYXQgdGhhdCB0aW1lIHdpbGwgbm90IGJlIGFuIGlzc3VlLi4uIHBsdXMgd2UgZG8KPj4gdGhlbSBhIGZhdm91ciBieSBiZWluZyBhbm90aGVyIHJlYXNvbiB0byB1cGdyYWRlIDstKQo+Pgo+Pgo+Pgo+Pj4KPj4+IE9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDY6MzMgUE0sIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KPj4+IHdyb3RlOgo+Pj4KPj4+ID4gU28gd2hhdCB3b3VsZCBiZSB0aGUgY29uY2x1c2lvbj8KPj4+ID4KPj4+ID4gMzUlIHdhbnQgdG8ga2VlcCBKYXZhNyBhcyBKUkUgZm9yIE1hdmVuIGZvciBhIHNob3J0ZXIgb3IgbG9uZ2VyIHBlcmlvZD8KPj4+ID4KPj4+ID4gSU1ITyB0aGF0J3MgYSBsb3QKPj4+ID4KPj4+ID4gUm9iZXJ0Cj4+PiA+Cj4+PiA+IE9uIFN1biwgMTAgU2VwIDIwMTcgMTE6NTU6MjAgKzAyMDAsIFN0ZXBoZW4gQ29ubm9sbHkgPAo+Pj4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4+ID4KPj4+ID4gU28gcG9sbCByZXN1bHRzOgo+Pj4gPj4KPj4+ID4+IDQ5MyB2b3RlcyBjYXN0Cj4+PiA+Pgo+Pj4gPj4gMjUlIHdhbnQgSmF2YSA3LDgmOSBmb3IgTWF2ZW4gMy42LngKPj4+ID4+IDY1JSB3YW50IEphdmEgOCY5IGZvciBNYXZlbiAzLjYueAo+Pj4gPj4gMTAlIHdhbnQgSmF2YSA4JjkgZm9yIE1hdmVuIDMuNi54IGFuZCA2IG1vbnRocyBvZiBiYWNrcG9ydGluZyB0byAzLjUueAo+Pj4gPj4KPj4+ID4+IE9uIFNhdCA5IFNlcCAyMDE3IGF0IDExOjUwLCBTdGVwaGVuIENvbm5vbGx5IDwKPj4+ID4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Pj4gPj4KPj4+ID4+IGh0dHBzOi8vdHdpdHRlci5jb20vYXNmbWF2ZW5wcm9qZWN0L3N0YXR1cy85MDY0NTEwNTk5NjY2OTMzNzYKPj4+ID4+PiAtLQo+Pj4gPj4+IFNlbnQgZnJvbSBteSBwaG9uZQo+Pj4gPj4+Cj4+PiA+Pgo+Pj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gPgo+Pj4gPgo+Pj4KPj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+CgotLTA4OWUwODI4ZGRkODFlNGY5NjA1NThkYTgyZDMtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDIzNS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgT2N0IDEzIDE5OjMyOjQ2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDIzNS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBCQUNFNTEwM0U4Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMTMgT2N0IDIwMTcgMTk6MzI6NDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxMTQxNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMyBPY3QgMjAxNyAxOTozMjo0NiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTEzMzIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTMgT2N0IDIwMTcgMTk6MzI6NDYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMTMyMSBpbnZva2VkIGJ5IHVpZCA5OSk7IDEzIE9jdCAyMDE3IDE5OjMyOjQ2IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDEzIE9jdCAyMDE3IDE5OjMyOjQ2ICswMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcXQwLWYxNzkuZ29vZ2xlLmNvbSAobWFpbC1xdDAtZjE3OS5nb29nbGUuY29tIFsyMDkuODUuMjE2LjE3OV0pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCAzQUNBRDFBMDkxOAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTMgT2N0IDIwMTcgMTk6MzI6NDQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtcXQwLWYxNzkuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgejUwc28yMTU0MjYzMnF0ai40CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTMgT2N0IDIwMTcgMTI6MzI6NDQgLTA3MDAgKFBEVCkKWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FWSzdYT2lBcFgzTGhZdlEzZWZjMjJ5eGxyU3BubTlqekNETlVXeEZveDhpdzlib1pSUAoJblA1eVZPeG5CNlZBa25VY0dMM1hPWFBkSGt4Uld6VVN6dHlSNXlvPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQ0hBQnkvT2gzbTB3SXd1dkh1RThjeS9aeVRNZXNoZkptMGRnckk2djlaWlJ3V1dobENxYnAvSTd2UUNDdUR6NGFGOFRnc0NROUJnbHVqVS9wWEVQdz0KWC1SZWNlaXZlZDogYnkgMTAuMzcuMTczLjE4IHdpdGggU01UUCBpZCB5MThtcjE2Mzk0NTN5YmkuMjcuMTUwNzkyMzE2MzA3NDsKIEZyaSwgMTMgT2N0IDIwMTcgMTI6MzI6NDMgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjEzLjI1MS42NSB3aXRoIEhUVFA7IEZyaSwgMTMgT2N0IDIwMTcgMTI6MzI6NDIgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxCNTM5QTg2Ni0zMTlFLTRCRjctOTYxMS0yODdBODZFQTM2M0VAYXBhY2hlLm9yZz4KUmVmZXJlbmNlczogPDQ5NTk1MjJBLTIwOTAtNDIzOS04MjMzLUUzMjAwMERFOUE1QkBhcGFjaGUub3JnPgogPDM5ODA3NzMuTWVqR0FhQjFxb0BnaWdhPiA8RDJGRjBGNjYtRjc4RC00MzI4LTlCMjktNTM0QjlFMUZDMjAzQGFwYWNoZS5vcmc+CiA8MTg4NzgyNi5WNEdXdm1nMDNuQGdpZ2E+IDxCNTM5QTg2Ni0zMTlFLTRCRjctOTYxMS0yODdBODZFQTM2M0VAYXBhY2hlLm9yZz4KRnJvbTogVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPgpEYXRlOiBGcmksIDEzIE9jdCAyMDE3IDIxOjMyOjQyICswMjAwClgtR21haWwtT3JpZ2luYWwtTWVzc2FnZS1JRDogPENBS3VWekJTS1BhZS1SZzYzYVZIPThNUE16UnNmMlZCdys5T09UT2J3WStPb1Mremg1QUBtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JRDogPENBS3VWekJTS1BhZS1SZzYzYVZIPThNUE16UnNmMlZCdys5T09UT2J3WStPb1Mremg1QUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IGRlcGVuZGVuY3k6Z28tb2ZmbGluZSBicm9rZW4/ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9ImY0MDMwNDVkYzMzYzdiZDY5YTA1NWI3MmI4MmUiCgotLWY0MDMwNDVkYzMzYzdiZDY5YTA1NWI3MmI4MmUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKVGhpcyBleGNlcHRpb24gaXMgZXhwZWN0ZWQuClVzZSBwbHVnaW5Hcm91cCBpbiBzZXR0aW5ncy54bWwgb3IgdHJ5IHRoaXM6Cm9yZy5jb2RlaGF1cy5tb2pvOnRpZHk6MS4wLjA6Y2hlY2sKb3IKb3JnLmNvZGVoYXVzLm1vam86dGlkeS1tYXZlbi1wbHVnaW46MS4wLjA6Y2hlY2sKCkkgZG9uJ3Qga25vdyB3aGF0IGR1bW15LmphciBoYXMgdG8gZG8gd2l0aCB0aWR5IHBsdWdpbiwgaXQncyBpbnRlcm5hbCBjb2RlCmluIHN1cmVmaXJlIGR1ZSB0byBNMiBBUEkgYW5kIHRpZHkgc2hvdWxkIG5vdCBiZSBpbmZsdWVuY2VkIGJ5LgoKQ2hlZXJzClRpYm9yCgpPbiBGcmksIE9jdCAxMywgMjAxNyBhdCA2OjM2IFBNLCBCZW5lZGlrdCBSaXR0ZXIgPGJyaXR0ZXJAYXBhY2hlLm9yZz4gd3JvdGU9CjoKCj4gSGVsbG8sCj4KPiA+IEFtIDA4LjEwLjIwMTcgdW0gMTU6NTQgc2NocmllYiBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mPQpyPjoKPiA+Cj4gPiBMZSBkaW1hbmNoZSA4IG9jdG9icmUgMjAxNywgMTU6Mzc6NTQgQ0VTVCBCZW5lZGlrdCBSaXR0ZXIgYSA9QzM9QTljcml0ID0KOgo+ID4+IEhlbGxvIEhlcnY9QzM9QTkKPiA+Pgo+ID4+PiBUaGVuIEkgYWRkZWQgYSBwbHVnaW5NYW5hZ2VtZW50IHNlY3Rpb24gdG8gc2VsZWN0IHZlcnNpb24gMy4wLjIgYW5kCj4gcmUtcmFuCj4gPj4+IHRoZSB0ZXN0OiB5b3UnbGwgc2VlIHRoZSBvdXRwdXQgaXMgY29tcGxldGVseSBkaWZmZXJlbnQuCj4gPj4+Cj4gPj4+IEFuZCB0aGVyZSBpcyBubyBpc3N1ZSBhbnkgbW9yZQo+ID4+Cj4gPj4gVGhhbmsgeW91IHNvIG11Y2gsIHlvdSB0b29rIHRoZSB0aW1lIHRvIGludmVzdGlnYXRlIHRoaXMgaXNzdWUhIFJlYWxseQo+IG11Y2gKPiA+PiBhcHByZWNpYXRlZC4gTm93IEkgd29uZGVyLCB3aHkgTWF2ZW4gdXNlcyBhbiBvdXRkYXRlZCB2ZXJzaW9uIG9mIHRoZQo+ID4+IGRlcGVuZGVuY3kgcGx1Z2luLiBJcyB0aGlzIGEgcHJvYmxlbSB3aXRoIHRoZSBzdXBlciBwb20/Cj4gPiB0aGlzIGlzIGEgY2hvaWNlIHRvIGtlZXAgc3RhYmlsaXR5Ogo+ID4gaWYgb25lIGRvd25sb2FkcyBkZXBlbmRlbmNpZXMgdXNpbmcgTWF2ZW4gMy4wLjUgdGhlbiBhIGZldyBkYXlzIGxhdGVyCj4gYnVpbGRzCj4gPiBvZmZsaW5lIHdpdGggTWF2ZW4gMy41LCBoZSBkb2VzIG5vdCBoYXZlIGFueSBpc3N1ZSAoYW5kIGJsYW1lCj4gZGVwZW5kZW5jeS1wbHVnaW4pCj4gPgo+ID4gcmVtZW1iZXIgdGhlIGdvb2QgcHJhY3RpY2U6IGRlZmluZSB5b3VyIHBsdWdpbiB2ZXJzaW9ucywgZWl0aGVyIGluIHlvdXIKPiBwb20gb3IKPiA+IGJ5IHVzaW5nIGEgcGFyZW50IHRoYXQgZG9lcyB0aGUgam9iCj4gPgo+ID4+Cj4gPj4gRnVydGhlcm1vcmUgST1FMj04MD05OXZlIG5vdGljZWQsIHRoYXQgbXZuIC1vIHRlc3Qgc3RpbGwgZG9lcyBub3Qgd29yaz0KLCBiZWNhdXNlCj4gc29tZQo+ID4+IHN1cmVmaXJlIGRlcGVuZGVuY2llcyBhcmUgbWlzc2luZzoKPiA+Pgo+ID4+IFtFUlJPUl0gRmFpbGVkIHRvIGV4ZWN1dGUgZ29hbAo+ID4+IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczptYXZlbi1zdXJlZmlyZS1wbHVnaW46Mi4xMi40OnRlc3QKPiAoZGVmYXVsdC10ZXN0KQo+ID4+IG9uIHByb2plY3QgZGVwZW5kZW5jeS1wbHVnaW4tYnVnOiBVbmFibGUgdG8gZ2VuZXJhdGUgY2xhc3NwYXRoOgo+ID4+IG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QucmVzb2x2ZXIuTXVsdGlwbGVBcnRpZmFjdHNOb3RGb3VuZEV4Y2VwdGlvbjoKPiA+PiBNaXNzaW5nOiBbRVJST1JdIC0tLS0tLS0tLS0KPiA+PiBbRVJST1JdIDEpIG9yZy5hcGFjaGUubWF2ZW4uc3VyZWZpcmU6c3VyZWZpcmUtanVuaXQzOmphcjoyLjEyLjQKPiA+PiBbRVJST1JdCj4gPj4gW0VSUk9SXSBUcnkgZG93bmxvYWRpbmcgdGhlIGZpbGUgbWFudWFsbHkgZnJvbSB0aGUgcHJvamVjdCB3ZWJzaXRlLgo+ID4+IFtFUlJPUl0KPiA+PiBbRVJST1JdIFRoZW4sIGluc3RhbGwgaXQgdXNpbmcgdGhlIGNvbW1hbmQ6Cj4gPj4gW0VSUk9SXSBtdm4gaW5zdGFsbDppbnN0YWxsLWZpbGUgLURncm91cElkPTNEb3JnLmFwYWNoZS5tYXZlbi5zdXJlZmlyZQo+ID4+IC1EYXJ0aWZhY3RJZD0zRHN1cmVmaXJlLWp1bml0MyAtRHZlcnNpb249M0QyLjEyLjQgLURwYWNrYWdpbmc9M0RqYXIKPiA+PiAtRGZpbGU9M0QvcGF0aC90by9maWxlIFtFUlJPUl0KPiA+PiBbRVJST1JdIEFsdGVybmF0aXZlbHksIGlmIHlvdSBob3N0IHlvdXIgb3duIHJlcG9zaXRvcnkgeW91IGNhbiBkZXBsb3kKPiB0aGUKPiA+PiBmaWxlIHRoZXJlOiBbRVJST1JdIG12biBkZXBsb3k6ZGVwbG95LWZpbGUKPiA+PiAtRGdyb3VwSWQ9M0RvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlIC1EYXJ0aWZhY3RJZD0zRHN1cmVmaXJlLWp1bml0Mwo+ID4+IC1EdmVyc2lvbj0zRDIuMTIuNCAtRHBhY2thZ2luZz0zRGphciAtRGZpbGU9M0QvcGF0aC90by9maWxlIC1EdXJsPTNEW3U9CnJsXQo+ID4+IC1EcmVwb3NpdG9yeUlkPTNEW2lkXSBbRVJST1JdCj4gPj4gW0VSUk9SXSBQYXRoIHRvIGRlcGVuZGVuY3k6Cj4gPj4gW0VSUk9SXSAxKSBkdW1teTpkdW1teTpqYXI6MS4wCj4gPj4gW0VSUk9SXSAyKSBvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlOnN1cmVmaXJlLWp1bml0MzpqYXI6Mi4xMi40Cj4gPj4gW0VSUk9SXQo+ID4+IFtFUlJPUl0gLS0tLS0tLS0tLQo+ID4+IFtFUlJPUl0gMSByZXF1aXJlZCBhcnRpZmFjdCBpcyBtaXNzaW5nLgo+ID4+IFtFUlJPUl0KPiA+PiBbRVJST1JdIGZvciBhcnRpZmFjdDoKPiA+PiBbRVJST1JdIGR1bW15OmR1bW15OmphcjoxLjAKPiA+PiBbRVJST1JdCj4gPj4gW0VSUk9SXSBmcm9tIHRoZSBzcGVjaWZpZWQgcmVtb3RlIHJlcG9zaXRvcmllczoKPiA+PiBbRVJST1JdIGNlbnRyYWwgKGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMiwgcmVsZWFzZXM9M0R0cnVlPQosCj4gPj4gc25hcHNob3RzPTNEZmFsc2UpIFtFUlJPUl0gLT4gW0hlbHAgMV0KPiA+PiBbRVJST1JdCj4gPj4gW0VSUk9SXSBUbyBzZWUgdGhlIGZ1bGwgc3RhY2sgdHJhY2Ugb2YgdGhlIGVycm9ycywgcmUtcnVuIE1hdmVuIHdpdGgKPiB0aGUgLWUKPiA+PiBzd2l0Y2guIFtFUlJPUl0gUmUtcnVuIE1hdmVuIHVzaW5nIHRoZSAtWCBzd2l0Y2ggdG8gZW5hYmxlIGZ1bGwgZGVidWcKPiA+PiBsb2dnaW5nLiBbRVJST1JdCj4gPj4gW0VSUk9SXSBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXJyb3JzIGFuZCBwb3NzaWJsZSBzb2x1dGlvbnMsCj4gcGxlYXNlCj4gPj4gcmVhZCB0aGUgZm9sbG93aW5nIGFydGljbGVzOiBbRVJST1JdIFtIZWxwIDFdCj4gPj4gaHR0cDovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL01vam9FeGVjdXRpb25FeGNlcHRpbz0Kbgo+ID4+Cj4gPj4gU2luY2UgdGhlcmUgYXJlIG9ubHkgYSBmZXcgZGVwZW5kZW5jaWVzIG1pc3NpbmcsIEkgd2lsbCBydW4gdGVzdCBub3QgaT0Kbgo+ID4+IG9mZmxpbmUgbW9kdXMgb24gbXkgQ0kgc2VydmVyLiBCdXQgSSB3b25kZXIgd2hldGhlciB0aGlzIGlzIGEgYnVnLgo+ID4gSSdsbCBoYXZlIGEgbG9vayBhdCB0aGlzIG9uZSBhbmQgcmVwb3J0Cj4KPiBJIG1hZGUgYW5vdGhlciBpbnRlcmVzdGluZyBvYnNlcnZhdGlvbjoKPgo+IG12biB0aWR5OmNoZWNrIHdvcmtzLCB3aGlsZSBtdm4gLW8gdGlkeTpjaGVjayBkb2VzIG5vdCB3b3JrLiBJdCBmYWlscyB3aXQ9Cmg6Cj4KPiBbSU5GT10gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tLS0tCj4gW0lORk9dIEJVSUxEIEZBSUxVUkUKPiBbSU5GT10gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tLS0tCj4gW0lORk9dIFRvdGFsIHRpbWU6IDAuNjQwIHMKPiBbSU5GT10gRmluaXNoZWQgYXQ6IDIwMTctMTAtMTNUMTg6MzQ6MzIrMDI6MDAKPiBbSU5GT10gRmluYWwgTWVtb3J5OiAxM00vMzA5TQo+IFtJTkZPXSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtLS0tLS0tLS0tLS0KPiBbRVJST1JdIE5vIHBsdWdpbiBmb3VuZCBmb3IgcHJlZml4ICd0aWR5JyBpbiB0aGUgY3VycmVudCBwcm9qZWN0IGFuZCBpbgo+IHRoZSBwbHVnaW4gZ3JvdXBzIFtvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMsIG9yZy5jb2RlaGF1cy5tb2pvXSBhdmFpbGFibGUKPiBmcm9tIHRoZSByZXBvc2l0b3JpZXMgW2xvY2FsICgvVXNlcnMvYmVuZS93b3Jrc3BhY2UvZ2l0aHViL2RlcGVuZGVuY3ktcGx1PQpnaW4tYnVnLy5tMiksCj4gY2VudHJhbCAoaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yKV0gLT4gW0hlbHAgMV0KPiBbRVJST1JdCj4gW0VSUk9SXSBUbyBzZWUgdGhlIGZ1bGwgc3RhY2sgdHJhY2Ugb2YgdGhlIGVycm9ycywgcmUtcnVuIE1hdmVuIHdpdGggdGhlCj4gLWUgc3dpdGNoLgo+IFtFUlJPUl0gUmUtcnVuIE1hdmVuIHVzaW5nIHRoZSAtWCBzd2l0Y2ggdG8gZW5hYmxlIGZ1bGwgZGVidWcgbG9nZ2luZy4KPiBbRVJST1JdCj4gW0VSUk9SXSBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXJyb3JzIGFuZCBwb3NzaWJsZSBzb2x1dGlvbnMsCj4gcGxlYXNlIHJlYWQgdGhlIGZvbGxvd2luZyBhcnRpY2xlczoKPiBbRVJST1JdIFtIZWxwIDFdIGh0dHA6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi8KPiBOb1BsdWdpbkZvdW5kRm9yUHJlZml4RXhjZXB0aW9uCj4KPiBDaGVlcnMsCj4gQmVuZWRpa3QKPgo+ID4KPiA+IFJlZ2FyZHMsCj4gPgo+ID4gSGVydj1DMz1BOQo+ID4KPiA+Pgo+ID4+IFJlZ2FyZHMsCj4gPj4gQmVuZWRpa3QKPiA+Pgo+ID4+PiBSZWdhcmRzLAo+ID4+Pgo+ID4+PiBIZXJ2PUMzPUE5Cj4gPj4+Cj4gPj4+IExlIG1lcmNyZWRpIDIwIHNlcHRlbWJyZSAyMDE3LCAyMjo0ODoxNSBDRVNUIEJlbmVkaWt0IFJpdHRlciBhID1DMz1BOT0KY3JpdCA6Cj4gPj4+PiBIaSwKPiA+Pj4+Cj4gPj4+PiBhcyBmYXIgYXMgSSB1bmRlcnN0YW5kIGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBjYWxsIG12bgo+ID4+Pj4gZGVwZW5kZW5jeTpnby1vZmZsaW5lIGFuZCBmcm9tIHRoZXJlIG9uIHdvcmsgaW4gb2ZmbGluZSBtb2RlIChtdm4gLW89CikuCj4gPj4+PiBJPUUyPTgwPTk5dmUgcHV0IGEgbWluaW1hbCBleGFtcGxlIHRvZ2V0aGVyIFsxXSB0aGF0IGRlbW9uc3RyYXRlcyB0aD0KYXQgdGhpcwo+ID4+Pj4gY3VycmVudGx5IGRvZXMgbm90IHdvcmsuIEFtIEkgbWlzc2luZyBhbnl0aGluZz8KPiA+Pj4+Cj4gPj4+PiBUaGFuayB5b3UhCj4gPj4+PiBCZW5lZGlrdAo+ID4+Pj4KPiA+Pj4+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vYnJpdHRlci9kZXBlbmRlbmN5LXBsdWdpbi1idWcKPiA+Pj4+Cj4gPj4+Pgo+ID4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0KPiA+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4+Cj4gPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4KPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Cj4gPgo+ID4KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKLS1mNDAzMDQ1ZGMzM2M3YmQ2OWEwNTViNzJiODJlLS0KCkZyb20gZGV2LXJldHVybi0xMjQzNTktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE9jdCAyOCAwODoyODowNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzNTktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRDNGRTkxMEM5QgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDI4IE9jdCAyMDE3IDA4OjI4OjA0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTY4NjEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggT2N0IDIwMTcgMDg6Mjg6MDQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU2Nzc0IGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE9jdCAyMDE3IDA4OjI4OjA0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTY3NTkgaW52b2tlZCBieSB1aWQgOTkpOyAyOCBPY3QgMjAxNyAwODoyODowNCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMjggT2N0IDIwMTcgMDg6Mjg6MDQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAzRTQ2NDE4MDcyRAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMjggT2N0IDIwMTcgMDg6Mjg6MDMgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjg3OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjg3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdvb2dsZW1haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgS1NhUE5Sakh0YTl5IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAyOCBPY3QgMjAxNyAwODoyODowMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXl3MC1mMTc0Lmdvb2dsZS5jb20gKG1haWwteXcwLWYxNzQuZ29vZ2xlLmNvbSBbMjA5Ljg1LjE2MS4xNzRdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMjc1MDk1RjNERgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMjggT2N0IDIwMTcgMDg6Mjg6MDAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwteXcwLWYxNzQuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgdDcxc283NjI2NzAzeXdjLjMKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAyOCBPY3QgMjAxNyAwMToyODowMCAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z29vZ2xlbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPTVOK2NiR1RaTi8ycERRSHppRTVzY01aUHBjaGtYZ3psbG40SjZqSXRYblU9OwogICAgICAgIGI9WkF1dzVrYnZLS3Q3dmowdVJzajJLaE1rcUc5K0xPYTZlR0Rsckw1TjlyYWZCcG9QU1FFTWluYWtaY0kzU2VweGU1CiAgICAgICAgIDFoVUU4QzVaRE9TSkh0YjJwMWw3Q2RMcG5qRU5kcS9pMDVhV2NVcGNXZUk5YlE1WUNzSDRLSXpyNWR3ZW9PbUpQQ3VxCiAgICAgICAgIHpFL3FDbDBsbnBDa0g4UVh5Tkd3UnBNRTEvZU12cEp3OG14SVo2OGtxZ2FGY0Rjdkh2TkkrRmNFM3pqZ1krc2hBUjVoCiAgICAgICAgIDlkS2l4QmhaMk9TUUk3SUFXR0l2R2FoeEdadlBqcGc0bEg1SHNGM1JRMFRubUtlWGEwSzQ1ZXJwS004Qks2YmpsRDZFCiAgICAgICAgIHV3S1VxUWdwcFRvclN2SndYcVBQanlTamtRMTJ5MzVieC9CaktxQkxCenpPVU9DNllJNFdMTE9pS0prUFVuVDFMaVFYCiAgICAgICAgIGNLcEE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPTVOK2NiR1RaTi8ycERRSHppRTVzY01aUHBjaGtYZ3psbG40SjZqSXRYblU9OwogICAgICAgIGI9UTM4dktuMmt2UHE3WDFZaWxaM0NxeVhudG16d0hvVkxnRzJTbFFWV3F3TDNFbGtMTEMwVVdaekJOUEF0Sk9TNXlXCiAgICAgICAgIGZEWnNtWEtTU0oxRGxxNHBaNnIvYlVGdlE5Mi9vMW96UDdINFlxdFNYV3Z1M09hdTdvK1VUNndWMFNPRjNzVGJMblluCiAgICAgICAgIEVETWdPMnFwM0I4REdXeStYNEo3ZzI1cTF5VEFOblNlREhUaXRCZGdrRE5Nb2dCQWxUdzdSQUtlSitTRW5tT0p4OFNhCiAgICAgICAgIG11S2M1MW9PRS84ZE9abzFnOVdab25tVDl0YTRWdnMvdGQvZWVWWmZxYkpGSGtlYTk4bDJTMjQrckZDc2F6aFJpblhvCiAgICAgICAgIGU4eW9HdmZ3TlhJN0lYNGdGYTZiVjBSdEw1NTM4Z1FjN2dHcEtTMXg5bkNENmc2WnUxdkhtbEJxUDJjL2cvanIzMFRpCiAgICAgICAgIEc1OXc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVhFVGZMd3RxU1ExWWpDWk0yNkVXanZxWGNtVmROeUoxSDNhSVVKRGxrYTlsVldmMFlTCglRWFpvdzBFNURyL0tCWm1LRVkrQlN0SzJHb2NPbVBVdU9hM29QMFk9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtROGxpVUdRVjhsNmdFVzNJMEtXN05xKzkzKyttOWMyL3hzMTkwZXNSa2lXMkNldlFsaVN3Mk9GNzVnMzVjdmJ5emVKU1IwSHZZbC9hcmk1VnpFbGxBPQpYLVJlY2VpdmVkOiBieSAxMC4zNy44MC4yMDEgd2l0aCBTTVRQIGlkIGUxOTJtcjE5ODAxNzV5YmIuMTA3LjE1MDkxNzkyNzI2MDA7CiBTYXQsIDI4IE9jdCAyMDE3IDAxOjI3OjUyIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xMy4yNTEuNjUgd2l0aCBIVFRQOyBTYXQsIDI4IE9jdCAyMDE3IDAxOjI3OjUyIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8NEUwRjIyNEUtQTkxMy00MkVELTgyRTUtNTk3NDc0NTgxNDVDQGFwYWNoZS5vcmc+ClJlZmVyZW5jZXM6IDxGRTEwN0I0RC1EN0I0LTQ3MUItODcwOS1CMTk3MTcxOEQxNDBAYXBhY2hlLm9yZz4KIDxDQUt1VnpCUm1oUGk5VUJOR3FFX3BRMThtcERNNUtfX3FUcWZUQ0JpZV9xM19KMF9YSHdAbWFpbC5nbWFpbC5jb20+CiA8RjI3NTg3NjItQkMzMC00RURCLTg1NDctQzQxNzFGQTM0NTQ4QGFwYWNoZS5vcmc+IDw0RTBGMjI0RS1BOTEzLTQyRUQtODJFNS01OTc0NzQ1ODE0NUNAYXBhY2hlLm9yZz4KRnJvbTogVGlib3IgRGlnYW5hIDx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+CkRhdGU6IFNhdCwgMjggT2N0IDIwMTcgMTA6Mjc6NTIgKzAyMDAKTWVzc2FnZS1JRDogPENBS3VWekJTTFRWaXMrWWk3N1dKY3hScDFaS3FtWUhnbkhnWkpxQlFjbXkrdi1VcUZ1Z0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IE1hdmVuIFN1cmVmaXJlIGFuZCBKVW5pdCA1ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTNlODVhYTcyMjFjMTA1NWM5NzJlMGMiCgotLTAwMWExMTNlODVhYTcyMjFjMTA1NWM5NzJlMGMKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSGVsbG8gQmVuZWRpa3QsCgpJIHdpbGwgaGF2ZSBhIGxvb2sgdGhpcyB3ZWVrZW5kLgoKT24gU2F0LCBPY3QgMjgsIDIwMTcgYXQgOToxMSBBTSwgQmVuZWRpa3QgUml0dGVyIDxicml0dGVyQGFwYWNoZS5vcmc+IHdyb3RlPQo6Cgo+IEhlbGxvIFRpYm9yLAo+Cj4gZGlkIHlvdSBoYXZlIHNvbWUgdGltZSB0byBkbyB0aGUgcmViYXNlIGFuZCBoZWxwIG1lIGdldCB0aGUgYnVpbGQgdG8gd29yawo+IGluIHRoZSBqdW5pdDUgYnJhbmNoPwo+Cj4gUmVnYXJkcywKPiBCZW5lZGlrdAo+Cj4gPiBBbSAxOC4xMC4yMDE3IHVtIDA5OjEzIHNjaHJpZWIgQmVuZWRpa3QgUml0dGVyIDxicml0dGVyQGFwYWNoZS5vcmc+Ogo+ID4KPiA+IEhlbGxvIFRpYm9yLAo+ID4KPiA+IFNvcnJ5IGZvciB0aGUgZGFpbHkgSSBzb21laG93IG1pc3NlZCB0aGlzIG1haWwuCj4gPgo+ID4+IEFtIDE1LjEwLjIwMTcgdW0gMTM6MDcgc2NocmllYiBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+Ogo+ID4+Cj4gPj4gSGkgQmVuZWRpa3QsCj4gPj4KPiA+PiBJIGFtIGZpbmUgbm93IGFmdGVyIG15IGlsbG5lc3MsIHRoeC4KPiA+PiBJIGFtIGZpbmlzaGluZyBicmFuY2ggU1VSRUZJUkUtMTI2Ml8yLiBKdXN0IHRvIGFkZCBmZXcgbW9yZSB0ZXN0cyBhbmQKPiB0aGVuCj4gPj4gSSB3aWxsIGN1dCBhIHJlbGVhc2UuIEkgd2FudCB0byBhZGQgYSBmaXggZm9yIFNVUkVGSVJFLTEzNzQgd2hpY2ggd291bD0KZAo+IGJlCj4gPj4gZmFzdCB0byBkby4KPiA+PiBUaGVuIEkgYW0gcmVhZHkgZm9yIHlvdSBhbmQgSlVuaXQ1Lgo+ID4+Cj4gPj4gSSBoYXZlIHF1ZXN0aW9ucyByZWdhcmRpbmcgb3VyIEpVbml0IDUgU3VyZWZpcmUgUHJvdmlkZXIgaW1wbGVtZW50ZWQgaT0Kbgo+ID4+IFN1cmVmaXJlLgo+ID4+Cj4gPj4gSXMgaXQgaW1wbGVtZW50ZWQgZXhhY3RseSBpbiB0aGUgc2FtZSBsaWtlIHRoZSBvcmlnaW4gYnkganVuaXQ1IHRlYW0/Cj4gPj4gSSBhbSBhc2tpbmcgYmVjYXVzZSBJIHNhdyB0aGUgaW1wbGVtZW50YXRpb24gbWFkZSBieSBqdW5pdDUgdGVhbSBhbmQgaT0KdAo+IGlzCj4gPj4gbm90IGxpa2Ugb3VyICpKVW5pdENvcmVQcm92aWRlciouIFRoaXMgbWVhbnMgdGhhdCB0aGV5IGRvIG5vdCBtYXAgbWV0aD0Kb2QKPiA+PiA8LT4gVGhyZWFkIGluICpSdW5MaXN0ZW5lciAqYW5kIHRodXMgdGhlIHByb3ZpZGVyIHdvdWxkIG5vdCBhc3NvY2lhdGUKPiB0ZXN0Cj4gPj4gcmVwb3J0IGxvZ3MgYW5kIFRocmVhZCBwcm9wZXJseSBhbmQgbG9ncyB3aWxsIGJlIG1peGVkLgo+ID4KPiA+IFdlIGltcG9ydGVkIHRoZSBjb2RlIGZyb20gdGhlIEpVbml0IHByb2plY3Qgc29tZSB3aGlsZSBhZ28uIFRoZXkgaGF2ZSBpPQpuCj4gdGhlIG1lYW4gdGltZSB1cGRhdGVkIHRoZWlyIHByb3ZpZGVyIGNvZGUuIFRoZXkgYXJlIHBsYW5uaW5nIHRvIGJyaW5nIHRobz0Kc2UKPiBjaGFuZ2VzIGJhY2sgdG8gc3VyZWZpcmUsIG9uY2Ugd2UgZ2V0IG9mIHRoZSBncm91bmQgd2l0aCB0aGUgaW1wbGVtZW50YXRpPQpvbgo+IGluIHN1cmVmaXJlLiBTbyBpZiB5b3U9RTI9ODA9OTlyZSBzZWVpbmcgZGlmZmVyZW5jZSBpbiB0aGUgaW1wbGVtZW50YXRpb249CiBpbgo+IHN1cmVmaXJlIGFuZCBpbiB0aGUgaW1wbGVtZW50YXRpb24gaW4gSlVuaXQsIHRoYXQgbXVzdCBoYXZlIGJlZW4gaW50cm9kdWM9CmVkCj4gYWZ0ZXIgd2UgaW1wb3J0ZWQgdGhlIGNvZGUuCj4gPgo+ID4+Cj4gPj4gTmV4dCBxdWVzdGlvbiBpcyByZWdhcmRpbmcgdGhlIGZlYXR1cmUgcmUtcnVuLiBJdCBhbHNvIGV4aXN0cyBpbgo+ID4+ICpKVW5pdENvcmVQcm92aWRlcgo+ID4+ICphbmQgKkpVbml0NFByb3ZpZGVyKi4gRG9lcyBpdCBleGlzdCBpbiBvdXIgcHJvdmlkZXIgdG9vLgo+ID4KPiA+IEkgZG9uPUUyPTgwPTk5dCBrbm93LCBuZWVkIHRvIGNoZWNrIHRoZSBjb2RlLgo+ID4KPiA+PiBBbHNvIHdlIG5lZWQgdG8gaGF2ZSBhIGZlYXR1cmUgd2hlcmUgSlVuaXQgZXhlY3V0aW9uIGlzIHN0b3BwZWQgd2hpY2gKPiBjYW4KPiA+PiBiZSBjb25maWd1cmVkIGJ5ICpza2lwQWZ0ZXJGYWlsdXJlQ291bnQgKmluIFBPTS4gV2UgaGF2ZSBpbXBsZW1lbnRhdGlvPQpuCj4gaW4KPiA+PiBTdXJlZmlyZSBwcm92aWRlcjoKPiA+Pgo+ID4+IG5vdGlmaWVyLmFzRmFpbEZhc3QoIGlzRmFpbEZhc3QoKSApOwo+ID4KPiA+IFdlIGhhdmUgdG8gZmlndXJlIG91dCwgaG93IHRoaXMgaXMgc3VwcG9ydGVkIGJ5IEpVbml0IDUuCj4gPgo+ID4+Cj4gPj4gUmVnYXJkaW5nIGxvZ2dlciBpbiBmb3JrZWQgcHJvdmlkZXIsIHdoaWNoIGhhcyB0byBkbyB3aXRoIHBhcmFsbGVsCj4gZXhlYywgSQo+ID4+IHRoaW5rIHRoZSBsb2dzIGdvIHRvIHRoZSBkdW1wIGZpbGUgaW5zdGVhZCBvZiByZXBvcnRzIGZpbGUsIGJlY2F1c2UKPiBTVERPVVQKPiA+PiBpcyBub3Qgd3JhcHBlZCBpbiBKVW5pdDUncyBpbXBsZW1lbnRhdGlvbiBhbmQgdGhpcyBzaG91bGQgYmUgY2FsbGVkOgo+ID4+Cj4gPj4gc3RhcnRDYXB0dXJlKCBsaXN0ZW5lciApCj4gPj4KPiA+Pgo+ID4+IFNlZSBteSBxdWVzdGlvbnMgaW4gaHR0cHM6Ly9naXRodWIuY29tL3h3aWtpL3h3aWtpLXBsYXRmb3JtL2NvbW1pdC8KPiA+PiA1MjU4YTIyMzAxOTc3YTdkMWVlNzI3NmNkZDgxYWY3NjQxZjRmNWFjCj4gPj4KPiA+PiBEbyB3ZSBoYXZlIGludGVncmF0aW9uIHRlc3RzIGZvciB0aGVzZSBmZWF0dXJlcz8KPiA+Cj4gPiBXZSBvbmx5IGhhdmUgdmVyeSBsaW1pdGVkIGludGVncmF0aW9uIHRlc3RzIHlldC4gST1FMj04MD05OW0gcGxhbm5pbmcgdD0KbyB3cml0ZQo+IG1vcmUgaW50ZWdyYXRpb24gdGVzdHMgYW5kIHdvcmsgb24gdGhlIHN0cnVjdHVyZSBvZiB0aGUgaW50ZWdyYXRpb24gdGVzdAo+IHByb2plY3QsIG9uY2UgdGhlIGJ1aWxkIGRvZXMgd29yayBhZ2Fpbi4gQ3VycmVudGx5IEk9RTI9ODA9OTltIHVuYWJsZSB0byA9CmV4ZWMgYW4KPiBpbnRlZ3JhdGlvbiB0ZXN0IG9uIHRoZSBqdW5pdDUgYnJhbmNoLiBPbmNlIHRoaXMgaXMgcG9zc2libGUgYWdhaW4sIHdlIGNhPQpuCj4gd3JpdGUgdGhlIG1pc3NpbmcgdGVzdHMuCj4gPgo+ID4gVGhhbmsgeW91IQo+ID4gQmVuZWRpa3QKPiA+Cj4gPj4KPiA+Pgo+ID4+IENoZWVycwo+ID4+IFRpYm9yCj4gPj4KPiA+Pgo+ID4+Cj4gPj4gT24gU2F0LCBTZXAgMzAsIDIwMTcgYXQgMTA6MzQgQU0sIEJlbmVkaWt0IFJpdHRlciA8YnJpdHRlckBhcGFjaGUub3JnPgo+ID4+IHdyb3RlOgo+ID4+Cj4gPj4+IEhlbGxvLAo+ID4+Pgo+ID4+PiBmb3Igb3ZlciBhIHllYXIgbm93IEk9RTI9ODA9OTltIHRyeWluZyB0byBoZWxwIGdldHRpbmcgSlVuaXQgNSBzdXBwb3I9CnQgaW50bwo+IE1hdmVuCj4gPj4+IFN1cmVmaXJlLiBUaGlzIGhhcyBiZWVuIGhhcmQgc2luY2UgVGlib3Igc2VlbXMgdG8gYmUgdGhlIG9ubHkgb25lCj4gPj4+IG1haW50YWluaW5nIE1hdmVuIFN1cmVmaXJlIGFuZCBoZSBoYWQgdG8gY29tZSB3aXRoIG90aGVyIHRoaW5ncy4KPiA+Pj4KPiA+Pj4gRm9yIHRoaXMgcmVhc29uIEk9RTI9ODA9OTlkIGxpa2UgdG8gYXNrIG90aGVyIE1hdmVuIG1haW50YWluZXJzIHRvIGhlPQpscCB3aXRoCj4gdGhlCj4gPj4+IEpVbml0IDUgc3VwcG9ydC4gST1FMj04MD05OW0gaGFwcHkgdG8gZG8gdGhlIHdvcmssIGJ1dCBJPUUyPTgwPTk5bSBjbz0KbnN0YW50bHkgYmxvY2tlZAo+IGJ5Cj4gPj4+IG9ic2N1cmUgYnVpbGQgZmFpbHVyZXMgd2hpY2ggST1FMj04MD05OW0gdW5hYmxlIHRvIHJlc29sdmUgbXlzZWxmIG9yID0KYnkgbGFjayBvZgo+ID4+PiBjb2RlIHJldmlldyB1bmQgbWVyZ2Ugb2YgY2hhbmdlcy4KPiA+Pj4KPiA+Pj4gLSBXb3JrIG9uIEpVbml0NSBzdXBwb3J0IGlzIGN1cnJlbnRseSBkb25lIGluIHRoZSBqdW5pdDUgYnJhbmNoLgo+ID4+PiAtIEkgaGF2ZSBkcmFmdGVkIGEgUHJvdmlkZXIgTG9va3VwIGltcGxlbWVudGF0aW9uIGluIHRoZSBqdW5pdDUgYnJhbmM9CmgsCj4gPj4+IGJ1dCBJIGRvbj1FMj04MD05OXQga25vdyB3aGV0aGVyIGl0IHdvcmtzIGJlY2F1c2UgSSBjYW49RTI9ODA9OTl0IGdldD0KIHRoZSBpbnRlZ3JhdGlvbgo+IHRlc3RzCj4gPj4+IHJ1bm5pbmcKPiA+Pj4gLSBUaGVyZSBpcyBhbiBvcGVuIFBSIHRvIG1lcmdlIHRoZSBtYXN0ZXIgYnJhbmNoIGJhY2sgaW50byBqdW5pdDUKPiBicmFuY2gsCj4gPj4+IGJ1dCBpdCBoYXMgYnVpbGQgZmFpbHVyZXMgSSBkb249RTI9ODA9OTl0IHVuZGVyc3RhbmQgWzFdCj4gPj4+Cj4gPj4+IFBsZWFzZSBoZWxwIQo+ID4+PiBDaGVlcnMsCj4gPj4+IEJlbmVkaWt0Cj4gPj4+Cj4gPj4+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY1Cj4gPj4+Cj4gPj4+Cj4gPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4+Cj4gPj4+Cj4gPgo+ID4KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKCi0tPTIwCkNoZWVycwpUaWJvcgoKLS0wMDFhMTEzZTg1YWE3MjIxYzEwNTVjOTcyZTBjLS0KCkZyb20gZGV2LXJldHVybi0xMjM5MjYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIFNlcCAxMCAxODowNDoyNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5MjYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMDZGNEExQUQ1MwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDE4OjA0OjI0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzgzOTYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgU2VwIDIwMTcgMTg6MDQ6MTkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc4MzA5IGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIFNlcCAyMDE3IDE4OjA0OjE5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzgyOTggaW52b2tlZCBieSB1aWQgOTkpOyAxMCBTZXAgMjAxNyAxODowNDoxOSAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxMCBTZXAgMjAxNyAxODowNDoxOSArMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXl3MC1mMTc5Lmdvb2dsZS5jb20gKG1haWwteXcwLWYxNzkuZ29vZ2xlLmNvbSBbMjA5Ljg1LjE2MS4xNzldKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgQUI4MzUxQTAwMjkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDE4OjA0OjE4ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXl3MC1mMTc5Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHE4MHNvMTc1MTY3NTV5d2cuMgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDExOjA0OjE3IC0wNzAwIChQRFQpClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVakFUU2lGTkUrbWpYb01jVUh6eGwyZmI1OFBoR2FpSkt3Yzdoc05BeWR4ZmZ3WkhMSmgKCTVVMkFQNVFIcmthZkZuSy9ZNHhudWJzS1lvUUd2QT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBREtDTmI2SDQybDNJeHVZQmxtYjhTcUpVaG4zbVpLUXJmWS9KMjVuN1NXMzFaU3ZBc2lpdHdQam0rZVo5cFpSTzVUZ243bDJZR0d4RkZwU1AyS25XQU5LZS9ZPQpYLVJlY2VpdmVkOiBieSAxMC4xMy4yMzEuMiB3aXRoIFNNVFAgaWQgcTJtcjc2NDE3MzR5d2UuMzI0LjE1MDUwNjY2NTY3Mjg7IFN1biwKIDEwIFNlcCAyMDE3IDExOjA0OjE2IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xMjkuMTU3LjE5OCB3aXRoIEhUVFA7IFN1biwgMTAgU2VwIDIwMTcgMTE6MDQ6MTYgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxvcC55NmN5eGpnY2tka2hyckBkZXNrdG9wLTJraHNrNDQ+ClJlZmVyZW5jZXM6IDxDQStuUG5NenoydTY9Y2RVNStoMUhzdldoUzRDVDV6a1l6cldDRW93LUc4Q3p2K21ZMmdAbWFpbC5nbWFpbC5jb20+CiA8Q0ErblBuTXordkhra21zMTNFQ2h3NWtHQm5YRGs5M19IcjVGNzYrRGV0Ym5wcWZpR1h3QG1haWwuZ21haWwuY29tPiA8b3AueTZjeXhqZ2NrZGtocnJAZGVza3RvcC0ya2hzazQ0PgpGcm9tOiBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+CkRhdGU6IFN1biwgMTAgU2VwIDIwMTcgMjA6MDQ6MTYgKzAyMDAKWC1HbWFpbC1PcmlnaW5hbC1NZXNzYWdlLUlEOiA8Q0FLdVZ6QlNOX1JkRE1pQnJkZkpVWXlHb1BERDRiTmFvcVc4akE4TTBOPW02YVVpdG53QG1haWwuZ21haWwuY29tPgpNZXNzYWdlLUlEOiA8Q0FLdVZ6QlNOX1JkRE1pQnJkZkpVWXlHb1BERDRiTmFvcVc4akE4TTBOPW02YVVpdG53QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1JFU1VMVF0gUmU6IFBsZWFzZSByZXR3ZWV0IGFuZCB2b3RlClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzA3ZDk3MjcwM2Y0NzA1NThkOWEzYWQiCgotLTk0ZWIyYzA3ZDk3MjcwM2Y0NzA1NThkOWEzYWQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCkhpIEFsbCwKCkFyZSB3ZSBmYWNpbmcgbmV3IEFQSSByZWdhcmRpbmcgbmV0d29ya2luZyBhbmQgc2VjdXJpdHkgdXNlZnVsIGluIEphdmEgOD8KCldoZW4gSSBmaXJzdCBzYXcgdGhlc2Ugb3B0aW9ucyBJIGFza2VkIG15c2VsZiB3aGF0IGJlbmVmaXQgd291bGQgaGF2ZSB0aGUKVXNlciBhbmQgSmVua2lucyBmcm9tIEphdmEgOC4KQW5kIHNlY29uZCBxdWVzdGlvbiB3YXMgd2hldGhlciB3ZSB3b3VsZCBiZSBzbyBmbGV4aWJsZSB0byByZXdyaXRlIHRoZSBjb2RlCmFuZCB1c2UgTGFtYmRhIGZ1bGx5IGFueXdoZXJlIGluIHRoZSBjb2RlLgpTbyBJIGtlcHQgSmF2YSA3IGZvciBNYXZlbiAzLjYgd2hpY2ggZG9lcyBub3QgbWVhbiB0aGF0IE1hdmVuIDQgb3IgNSB3b3VsZApub3QgY2hhbmdlIHRoaXMuClJlZ2FyZGluZyBzZWN1cml0eSBldmVyeWJvZHkgY2FuIHVzZSBKREsgOCB3aXRoIG9sZCBNYXZlbiBidXQgZGlmZmVyZW50CnN0b3J5IHdvdWxkIGJlIGVuaGFuY2VtZW50cyBpbiBOZXR3b3JraW5nIEFQSS4KCgpPbiBTdW4sIFNlcCAxMCwgMjAxNyBhdCA2OjMzIFBNLCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Cndyb3RlOgoKPiBTbyB3aGF0IHdvdWxkIGJlIHRoZSBjb25jbHVzaW9uPwo+Cj4gMzUlIHdhbnQgdG8ga2VlcCBKYXZhNyBhcyBKUkUgZm9yIE1hdmVuIGZvciBhIHNob3J0ZXIgb3IgbG9uZ2VyIHBlcmlvZD8KPgo+IElNSE8gdGhhdCdzIGEgbG90Cj4KPiBSb2JlcnQKPgo+IE9uIFN1biwgMTAgU2VwIDIwMTcgMTE6NTU6MjAgKzAyMDAsIFN0ZXBoZW4gQ29ubm9sbHkgPAo+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Cj4gU28gcG9sbCByZXN1bHRzOgo+Pgo+PiA0OTMgdm90ZXMgY2FzdAo+Pgo+PiAyNSUgd2FudCBKYXZhIDcsOCY5IGZvciBNYXZlbiAzLjYueAo+PiA2NSUgd2FudCBKYXZhIDgmOSBmb3IgTWF2ZW4gMy42LngKPj4gMTAlIHdhbnQgSmF2YSA4JjkgZm9yIE1hdmVuIDMuNi54IGFuZCA2IG1vbnRocyBvZiBiYWNrcG9ydGluZyB0byAzLjUueAo+Pgo+PiBPbiBTYXQgOSBTZXAgMjAxNyBhdCAxMTo1MCwgU3RlcGhlbiBDb25ub2xseSA8Cj4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Pgo+PiBodHRwczovL3R3aXR0ZXIuY29tL2FzZm1hdmVucHJvamVjdC9zdGF0dXMvOTA2NDUxMDU5OTY2NjkzMzc2Cj4+PiAtLQo+Pj4gU2VudCBmcm9tIG15IHBob25lCj4+Pgo+Pgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCi0tOTRlYjJjMDdkOTcyNzAzZjQ3MDU1OGQ5YTNhZC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NzIwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBEZWMgIDMgMTI6MjE6MzEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzIwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEE1QkZFMTdDQ0YKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAgMyBEZWMgMjAxNyAxMjoyMTozMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDgzMjc5IGludm9rZWQgYnkgdWlkIDUwMCk7IDMgRGVjIDIwMTcgMTI6MjE6MzEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgzMjExIGludm9rZWQgYnkgdWlkIDUwMCk7IDMgRGVjIDIwMTcgMTI6MjE6MzEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MzE5OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDMgRGVjIDIwMTcgMTI6MjE6MzEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMDMgRGVjIDIwMTcgMTI6MjE6MzEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC15YjAtZjE4Mi5nb29nbGUuY29tIChtYWlsLXliMC1mMTgyLmdvb2dsZS5jb20gWzIwOS44NS4yMTMuMTgyXSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEE4MEIyMUEwMTgwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAgMyBEZWMgMjAxNyAxMjoyMTozMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC15YjAtZjE4Mi5nb29nbGUuY29tIHdpdGggU01UUCBpZCB0MTI3c281NjIxNTg1eWJmLjkKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAwMyBEZWMgMjAxNyAwNDoyMToyOSAtMDgwMCAoUFNUKQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDdKMUdnN25QaHNLNmZlR3hReWpmOHVVM3lHcUFNdGlEUzJKSTFoZktSdlJ2WkdJVHJFCglDYytQTDhjTkV1bGsyVFVnOTFPcHZFNVVDUFNoeFRBZlJ1Q092UUE9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1hU0NOYVU4YUwxajh0WURDeXVKZHRjdTgxWFAwcVJ2WXJvZTU3eEplTDArRUZkYStaVS82R1RTUWpIdVJlVnZYUmRTMEsrb3ZobHN0bFJDa1RiYVRVPQpYLVJlY2VpdmVkOiBieSAxMC4zNy4xODguMTQ2IHdpdGggU01UUCBpZCBlMThtcjc1NzAxNjd5YmsuMjcuMTUxMjMwMzY4ODc5NzsKIFN1biwgMDMgRGVjIDIwMTcgMDQ6MjE6MjggLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjEyOS4xMjIuMTUxIHdpdGggSFRUUDsgU3VuLCAzIERlYyAyMDE3IDA0OjIxOjI4IC0wODAwIChQU1QpCkZyb206IFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4KRGF0ZTogU3VuLCAzIERlYyAyMDE3IDEzOjIxOjI4ICswMTAwClgtR21haWwtT3JpZ2luYWwtTWVzc2FnZS1JRDogPENBS3VWekJTWDh4TTczUjU3N0ozQkNMLVpvZWo9cUd3b2czWCtkVzR3eWdaaTVSQnBoZ0BtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JRDogPENBS3VWekJTWDh4TTczUjU3N0ozQkNMLVpvZWo9cUd3b2czWCtkVzR3eWdaaTVSQnBoZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogU3VyZWZpcmUgYXQgSmF2YSA5IGFuZCBKYXZhIDEwClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjA4OWUwODI2NzYyMDI5ZDYyNTA1NWY2ZWE0ZWUiCgotLTA4OWUwODI2NzYyMDI5ZDYyNTA1NWY2ZWE0ZWUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCkFzIGRpc2N1c3NlZCBiZWZvcmUgYWJvdXQgSmF2YSA5LgpJIHdpbGwgdHJ5IHRvIHJ1biBTdXJlZmlyZSBpbnRlZ3JhdGlvbiB0ZXN0cyB3aXRoIEpESyA5IGFuZCAxMCBvbiBMaW51eCBhbmQKSSB3aWxsIGFkZCBKREsgOC85IHRvIENJIHBpcGVsaW5lLgpJIGRvIG5vdCBleHBlY3QgYW55IGJ1Z3MgaGVyZS4gTWF5YmUgb25seSBlbmFibGluZyBzb21lIG1vZHVsZXMgZm9yIHRoZSBJVHMKaW4gd29yc3QgY2FzZS4KClN1cmVmaXJlIHN1cHBvcnRzIEppZ3NhdyBhbHJlYWR5IG5vdyBpbiBvcmlnaW4vbWFzdGVyLgoKVGhlcmUgYXJlIG1vcmUgaW1wb3J0YW50IHR3byBvciB0aHJlZSBidWdzIHdoZW4gRG9ja2VyIGJ1aWxkIGNyYXNoZXMgYW5kCnRoaXMgaGFzIHRvIGJlIGZpeGVkIHRpbGwgMi4yMS4wIGFzIHdlbGwuCgpDaGVlcnMKVGlib3IKCi0tMDg5ZTA4MjY3NjIwMjlkNjI1MDU1ZjZlYTRlZS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NjQ2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBOb3YgMjggMTc6NTk6MjggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjQ2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDZDMUMwMTdBOUEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAxNzo1OToyOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDU3MTYzIGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE5vdiAyMDE3IDE3OjU5OjI4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NzA3NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBOb3YgMjAxNyAxNzo1OToyOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU3MDYyIGludm9rZWQgYnkgdWlkIDk5KTsgMjggTm92IDIwMTcgMTc6NTk6MjcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDI4IE5vdiAyMDE3IDE3OjU5OjI3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRUI4REMxODA3MTQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDE3OjU5OjI2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogNC4zODEKWC1TcGFtLUxldmVsOiAqKioqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT00LjM4MSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fQkFESVBIVFRQPTIsIEtBTV9TSE9SVD0wLjAwMSwKCU5PUk1BTF9IVFRQX1RPX0lQPTAuMDAxLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nb29nbGVtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDZ6YWVrNU1JVkRuayBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVR1ZSwgMjggTm92IDIwMTcgMTc6NTk6MjUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC15YjAtZjE3OS5nb29nbGUuY29tIChtYWlsLXliMC1mMTc5Lmdvb2dsZS5jb20gWzIwOS44NS4yMTMuMTc5XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDM0NThCNUYyMzIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDE3OjU5OjI1ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXliMC1mMTc5Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHYxMnNvMjk4ODg2eWJqLjUKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAwOTo1OToyNSAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z29vZ2xlbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPW1kbm8rUjNLSDZyYmRiU2VINmF3Y0Z1UEluRERWd25lV09yM0MzQldEZnc9OwogICAgICAgIGI9a2VwZTYrZnBSTHBBTDc2TTZxS1g1dHFlNE56bHN5bHd0NnE2UXk4T1lJdnRRMzZ0aUU2UCs4Ym1RcEpwV3BOcTNyCiAgICAgICAgIGkxREtOSDQ4bHB5bDdteldMOU5mZDBEak9Wd0FBdkRjazBERFBsSW15cWdkYWRQNnUwTEgwVy9jNnU5R0p2anFLODNyCiAgICAgICAgIEpEMnRaL2tVbDgwNWxtQjlCNm5pRjRHZ0ZmSEJ4TEMrVVBjdEpxZ09pWmdtUVJDb2hDSnhGeHVZcU0zRG0zQjdpSDhqCiAgICAgICAgIEdmbVVOVXBmeXlXQWZWb1dMVVJLL08rZ0YrUVpzdDdZNWlsYnpyYUNwejZzZHdCeFFFYVFybXdvUElFZG1MaHBjajFRCiAgICAgICAgIEZoZy80MCswVFF6T1NHNEJKc245eCt2WEpTWjdUWTdmdkpKQjF0R2htZHhib1hnRzJLLzBDWnVqem5Wb2dXcXpYMTJPCiAgICAgICAgIGZlaFE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPW1kbm8rUjNLSDZyYmRiU2VINmF3Y0Z1UEluRERWd25lV09yM0MzQldEZnc9OwogICAgICAgIGI9Y1RCTVd1N1pvZ3BHV2kvNW1UNDRaNC9lYUg2b2F4aHpVajJiSDVuUjRzSEpxZGtPNVcvZzhPNEhNOTJJRmZLbzlTCiAgICAgICAgIGJTYmlCeFZtbVg2NEt6M01wbnNPSVRLSHJLNzFOUVAybXdVempoOHk3QjJpMUtpL3lFY3Z4Wlh2cjFnb1Jmd1I0WEp1CiAgICAgICAgIENTenAzZUpWTlhqU0RObktVQTVQNURTa2FrTjR2QUVnbGJtY0llbzc3aGx1U0RoeU1NZWJRUS9TRHcvVExxd1gxck1jCiAgICAgICAgIHE0OTdyc0VDM3ZhZU9BN253WkRQVHRNTlhORHh4ZDRDNWl4ZnV5YlhoKzFxS05vKzVwWG12NXdOUXpQM3JwRVJBRDlVCiAgICAgICAgIDZWYkVKVnNRclVuQXRPYVBYZ0V2OUxTcWZJd014aDNtRXJYbzA5Z0lWYnVMeTRFMGdnazZhTWQzNVlqUjVQamlDcWlhCiAgICAgICAgIGVOc0E9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDRwM0RWejNDNlhBS0JKaGZ0b0t4d2tPRFNoU1p4bWo3a3dSOGxkOXUwbTZPSnFtQ1JECgl0Y3dGcUQwRVBKdHhPQmROUGxBcWdWTWV2eVNBRnVZdExTbGJNOUNLWEE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUdzNHpNWkxkYVVnN0F5blRtRjlaK2VmL0hRY1oyVGlDVURCanlLS214ZkxMcVl5TUFabjhxdjJhdi9ia2VxcUlITUtQVG1pYVgyV0QyVWtaakhwNU44M0hWaz0KWC1SZWNlaXZlZDogYnkgMTAuMzcuMTg4LjE0NiB3aXRoIFNNVFAgaWQgZTE4bXIzMTE2MzM1eWJrLjI3LjE1MTE4OTE5NTk2MzM7CiBUdWUsIDI4IE5vdiAyMDE3IDA5OjU5OjE5IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xMjkuMTIyLjE1MSB3aXRoIEhUVFA7IFR1ZSwgMjggTm92IDIwMTcgMDk6NTk6MTkgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDxDQUE5UzZpNz1KU1Y0bjU5TmtlNSthMmhXLTRIK2NfQVF2NHgzdkc1bUxnZ2l6ZHZCUUFAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQUt1VnpCVGNucUtoOGQ0S05TS2NodnA0ZEdMY1p3MmVEd01pbktaMVVLQno4MTI5WEFAbWFpbC5nbWFpbC5jb20+CiA8Q0FBOVM2aTc9SlNWNG41OU5rZTUrYTJoVy00SCtjX0FRdjR4M3ZHNW1MZ2dpemR2QlFBQG1haWwuZ21haWwuY29tPgpGcm9tOiBUaWJvciBEaWdhbmEgPHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbT4KRGF0ZTogVHVlLCAyOCBOb3YgMjAxNyAxODo1OToxOSArMDEwMApNZXNzYWdlLUlEOiA8Q0FLdVZ6QlNjRi1tanZKRmdhNDBtZ1ZySHVLZz05aWZiK1NhU1lCb0xEOUN0WXdZN1J3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogUHJvYmxlbSB0byBkb3dubG9hZCBkZXBlbmRlbmN5IG9uIFVidW50dQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwODllMDgyNjc2MjAzMTVmNjYwNTVmMGVjNzUwIgoKLS0wODllMDgyNjc2MjAzMTVmNjYwNTVmMGVjNzUwCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpJIHRyaWVkIHRvIHVzZSBQcm94eSBpbiBzZXR0aW5ncy54bWwgYW5kIG5vblByb3h5SG9zdHMgc2VwYXJhdGVkIGJ5IHBpcGUgfAp3aXRoIHNhbWUgcmVzdWx0LCBidXQgdGhpcyBpcyBub3QgbmVjZXNzYXJ5IHRvIGRvIHNpbmNlIG91ciBjb21wYW55IGlzCnVzaW5nIE5leHVzLgpUaGUgZnVubnkgdGhpbmcgaXMgdGhhdCBJIHdyb3RlIEphdmEgY29kZSB3aGljaCBkb3dubG9hZHMgQXJxdWlsbGlhbiBmcm9tCnRoZSBzYW1lIFVSTC4KVGhlIEplbmtpbnMgYWxzbyB3b3JrcyBhbG1vc3Qgd2VsbCAod2l0aCBob3N0IG5hbWUgb2YgTmV4dXMgYW5kIG5vdApkb3dubG9hZGluZyBhcnRpZmFjdHMgd2l0aCBJUCBvZiBOZXh1cykgYnV0IHRoZSBNYXZlbiBmcm9tIGNvbW1hbmRsaW5lIGRvZXMKbm90IGRvd25sb2FkIGFueXRoaW5nIGZyb20gb3VyIE5leHVzLgpXaHk/CgpNYXliZSB0aGUgTWF2ZW4gaGFzIHByb2JsZW0gd2l0aCBuZXR3b3JrIGRvbWFpbi4KVGhlIE5leHVzIGlzIGluIGFub3RoZXIgZG9tYWluLiBJcyBpdCBuZWNlc3NhcnkgZm9yIE1hdmVuIHRvIGtub3cgdGhlCm5ldHdvcmsgZG9tYWluPwpJZiBJIHJ1biBhIHB1cmUgSmF2YSBhcHAgbGlrZSB0aGlzIChqYXZhIE1haW4pLCB0aGUgZmlsZSBpcyBkb3dubG9hZGVkLiBTbwp3aGF0J3MgdGhlIGRpZmZlcmVuY2UgaW4gTWF2ZW4/CgoKCmltcG9ydCBqYXZhLmlvLkJ1ZmZlcmVkUmVhZGVyOwppbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbVJlYWRlcjsKaW1wb3J0IGphdmEubmV0Lkh0dHBVUkxDb25uZWN0aW9uOwppbXBvcnQgamF2YS5uZXQuVVJMOwoKcHVibGljIGNsYXNzIE1haW4gewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nLi4uIGFyZ3MpIHRocm93cyBFeGNlcHRpb24gewogICAgICAgIFVSTCB1cmwgPSBuZXcKVVJMKCJodHRwOi8vbWF2ZW5yZXBvLmFkcy5sb2NhbC9uZXh1cy9jb250ZW50L2dyb3Vwcy9wdWJsaWMvb3JnL2FycXVpbGxpYW4vYXJxdWlsbGlhbi11bml2ZXJzZS8xLjEuMTMuNy9hcnF1aWxsaWFuLXVuaXZlcnNlLTEuMS4xMy43LnBvbSIpOwogICAgICAgIEh0dHBVUkxDb25uZWN0aW9uIGNvbiA9IChIdHRwVVJMQ29ubmVjdGlvbikgdXJsLm9wZW5Db25uZWN0aW9uKCk7CiAgICAgICAgY29uLnNldFJlcXVlc3RNZXRob2QoIkdFVCIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihjb24uZ2V0Q29udGVudExlbmd0aExvbmcoKSk7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGNvbi51c2luZ1Byb3h5KCkpOwogICAgICAgIEJ1ZmZlcmVkUmVhZGVyIHIgPSBuZXcgQnVmZmVyZWRSZWFkZXIobmV3CklucHV0U3RyZWFtUmVhZGVyKGNvbi5nZXRJbnB1dFN0cmVhbSgpKSk7CiAgICAgICAgZm9yIChTdHJpbmcgbGluZTsgKGxpbmUgPSByLnJlYWRMaW5lKCkpICE9IG51bGw7ICkgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4obGluZSk7CiAgICAgICAgfQogICAgICAgIGNvbi5kaXNjb25uZWN0KCk7CiAgICB9Cn0KCgoKCgoKT24gTW9uLCBOb3YgMjcsIDIwMTcgYXQgMTA6NDYgUE0sIE5pY2sgU3RvbHdpamsgPG5pY2suc3RvbHdpamtAZ21haWwuY29tPgp3cm90ZToKCj4gRGlkIHlvdSBhbHNvIGNvbmZpZ3VyZSB5b3VyIHByb3h5IGluIHRoZSBzZXR0aW5ncy54bWw/IFsxXQo+Cj4gSHRoLAo+Cj4gTmljawo+Cj4gWzFdIGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvbWluaS9ndWlkZS1wcm94aWVzLmh0bWwKPgo+IE5pY2sgU3RvbHdpamsKPgo+IH5+fiBUcnkgdG8gbGVhdmUgdGhpcyB3b3JsZCBhIGxpdHRsZSBiZXR0ZXIgdGhhbiB5b3UgZm91bmQgaXQgYW5kLCB3aGVuCj4geW91ciB0dXJuIGNvbWVzIHRvIGRpZSwgeW91IGNhbiBkaWUgaGFwcHkgaW4gZmVlbGluZyB0aGF0IGF0IGFueSByYXRlIHlvdQo+IGhhdmUgbm90IHdhc3RlZCB5b3VyIHRpbWUgYnV0IGhhdmUgZG9uZSB5b3VyIGJlc3Qgfn5+Cj4KPiBMb3JkIEJhZGVuLVBvd2VsbAo+Cj4gT24gTW9uLCBOb3YgMjcsIDIwMTcgYXQgMTA6MjIgUE0sIFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4KPiB3cm90ZToKPgo+ID4gTXkgY29tbWFuZCAqbXZuIGNsZWFuKiBpcyBub3QgYWJsZSB0byBkb3dubG9hZCBhIG5ldyBhcnRpZmFjdAo+ID4gKm9yZy5hcnF1aWxsaWFuLnVuaXZlcnNlOmFycXVpbGxpYW4tanVuaXQ6cG9tKgo+ID4gaG93ZXZlciBpdCBleGlzdHMgb24gTWF2ZW4gQ2VudHJhbC4KPiA+Cj4gPiBJIHJ1biB0aGUgY29tbWFuZCBvbiBVYnVudHUgS29uc29sZSwgYW5kIG5vdGhpbmcgaXMgZG93bmxvYWRlZC4KPiA+IFdoZW4gSSBydW4gd2dldCBbMV0gZnJvbSB0aGUgc2FtZSBLb25zb2xlLCB0aGUgUE9NIGlzIGRvd25sb2FkZWQuCj4gPgo+ID4gVGhlIHNldHRpbmdzLnhtbCBpcyBub3QgYSBwcm9ibGVtLCBJIGNoZWNrZWQuIFRoZXJlIGlzIGEgbWlycm9yIG9mCj4gY2VudHJhbAo+ID4gYW5kIFVSTCBvZiBOZXh1cyBpbiBjb21wYW55Lgo+ID4KPiA+IElzIHRoZXJlIGFueSBuYXRpdmUgZGlmZmVyZW5jZSBiZXR3ZWVuIHdnZXQgYW5kIG12bi9KYXZhIG9uIFVidW50dSBzbwo+IHRoYXQKPiA+IHRoZSByZW1vdGUgbWF2ZW5yZXBvIG1heSBub3QgYmUgcmVhY2hlZD8KPiA+IEkgZGlkIHNldHVwIG9mIC9ldGMvZW52aXJvbm1lbnQsIC9ldGMvbmV0d29yay9pbnRlcmZhY2UsIH4vLnByb2ZpbGUgZHVlCj4gdG8KPiA+IHByb3h5LCBETlMsIGh0dHBfbm9fcHJveHksIGV0Yy4gYnV0IG5vdGhpbmcgaGVscHMuCj4gPgo+ID4gQW55IGhpbnQgd291bGQgYmUgaGVscGZ1bCBoZXJlLgo+ID4gTUFWRU4gYW5kIEpBVkFfT1BUUyBpcyBub3Qgc2V0Lgo+ID4KPiA+IFsxXTogd2dldAo+ID4gaHR0cDovL21hdmVucmVwby5hZHMubG9jYWwvbmV4dXMvY29udGVudC9ncm91cHMvcHVibGljLwo+ID4gb3JnL2FycXVpbGxpYW4vYXJxdWlsbGlhbi11bml2ZXJzZS8xLjEuMTMuNy9hcnF1aWxsaWFuLQo+ID4gdW5pdmVyc2UtMS4xLjEzLjcucG9tCj4gPgo+ID4gVGh4Cj4gPiBUaWJvcgo+ID4KPgoKCgotLSAKQ2hlZXJzClRpYm9yCgotLTA4OWUwODI2NzYyMDMxNWY2NjA1NWYwZWM3NTAtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDI1OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgT2N0IDE3IDE4OjUxOjIyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI1OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA5NDU2MTEwQTUzCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMTcgT2N0IDIwMTcgMTg6NTE6MjIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3NTAyMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNyBPY3QgMjAxNyAxODo1MToyMiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzQ5NDggaW52b2tlZCBieSB1aWQgNTAwKTsgMTcgT2N0IDIwMTcgMTg6NTE6MjIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NDkzNyBpbnZva2VkIGJ5IHVpZCA5OSk7IDE3IE9jdCAyMDE3IDE4OjUxOjIyIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDE3IE9jdCAyMDE3IDE4OjUxOjIyICswMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcXQwLWYxNzcuZ29vZ2xlLmNvbSAobWFpbC1xdDAtZjE3Ny5nb29nbGUuY29tIFsyMDkuODUuMjE2LjE3N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCA5QjYyRTFBMDJDRAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTcgT2N0IDIwMTcgMTg6NTE6MjEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtcXQwLWYxNzcuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgejUwc281NzY1MDY0cXRqLjQKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxNyBPY3QgMjAxNyAxMTo1MToyMSAtMDcwMCAoUERUKQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVhlYklrbmxwVDJ6VnFWa0R6UUJzRmFsS0N6b3VUQ3c3QWY4MHpRME1JNXovUDVjeGxECglpK3RHZ05UOHpXMXhTL3NQbmJhSUZZY21UNTV4bkZ5TDNNVUc4Sm89ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtUNDg2SC9scThyVVk5S3JBMXoyR1hjL2xXL0UvU0ttdURRRytWSWVzbEJkdUFMVkU5eUN3QWVnZWMrcFFEazFrUnBLRkR1dVJKdEhRWFJRdkVQRnpRPQpYLVJlY2VpdmVkOiBieSAxMC4zNy4xOTAuNzYgd2l0aCBTTVRQIGlkIGQxMm1yMzA1NzY3OHlibS4yMDQuMTUwODI2NjI4MDQzODsKIFR1ZSwgMTcgT2N0IDIwMTcgMTE6NTE6MjAgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjEzLjI1MS42NSB3aXRoIEhUVFA7IFR1ZSwgMTcgT2N0IDIwMTcgMTE6NTE6MjAgLTA3MDAgKFBEVCkKRnJvbTogVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPgpEYXRlOiBUdWUsIDE3IE9jdCAyMDE3IDIwOjUxOjIwICswMjAwClgtR21haWwtT3JpZ2luYWwtTWVzc2FnZS1JRDogPENBS3VWekJTdDlrQTJKeDFCSzRmZjM9YkVuUVUreS1qR18yekdSd0RqZHZoZ3NBRXF6UUBtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JRDogPENBS3VWekJTdDlrQTJKeDFCSzRmZjM9YkVuUVUreS1qR18yekdSd0RqZHZoZ3NBRXF6UUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogSG93IGNhbiBJIGRldGVjdCAibXZuIC1xIiBpbiBwbHVnaW4/ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjA4OWUwODIzMGNiY2RmNTIwZTA1NWJjMjliNDMiCgotLTA4OWUwODIzMGNiY2RmNTIwZTA1NWJjMjliNDMKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCkhvdyBjYW4gSSBkZXRlY3QgIm12biAtcSIgaW4gcGx1Z2luPwpJdCBpcyBub3QgcG9zc2libGUgdG8ga25vdyBpbiBEZWZhdWx0TG9nZ2VyLgoKLS0wODllMDgyMzBjYmNkZjUyMGUwNTViYzI5YjQzLS0KCkZyb20gZGV2LXJldHVybi0xMjM5OTEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIFNlcCAxMiAwODoyOToyNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5OTEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMkQ1NTUxQTVCQgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDEyIFNlcCAyMDE3IDA4OjI5OjI1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjQyNDggaW52b2tlZCBieSB1aWQgNTAwKTsgMTIgU2VwIDIwMTcgMDg6Mjk6MjQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY0MTM3IGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIFNlcCAyMDE3IDA4OjI5OjI0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjQxMjEgaW52b2tlZCBieSB1aWQgOTkpOyAxMiBTZXAgMjAxNyAwODoyOToyNCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMTIgU2VwIDIwMTcgMDg6Mjk6MjQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBEMDVGN0M4QTI5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxMiBTZXAgMjAxNyAwODoyOToyMyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuODc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuODc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z29vZ2xlbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHJoQ1B4eHZXcVVMQSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVR1ZSwgMTIgU2VwIDIwMTcgMDg6Mjk6MjEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC15dzAtZjE3Ni5nb29nbGUuY29tIChtYWlsLXl3MC1mMTc2Lmdvb2dsZS5jb20gWzIwOS44NS4xNjEuMTc2XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEU3MTcyNjEyNjQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDEyIFNlcCAyMDE3IDA4OjI5OjIwICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXl3MC1mMTc2Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHI4NXNvMjY3MTkyNzV5d2cuMQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDEyIFNlcCAyMDE3IDAxOjI5OjIwIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nb29nbGVtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Y1RvR3RMcXphWEdiK3BLQ1hJcmNnWlBGZ3NBL3k0NmVtWnpidUp6TGFjQT07CiAgICAgICAgYj1XTHJ0Vlg0MUZaekFRRzhUc2ppOENnZFBFa2U1VmE1bHdrYlZKQnZyVXgwS0t6Y2MxaVdhSENmZGhUalhGTitlUHEKICAgICAgICAgZDhWdjRWK1hjTElpcEs4azNYNzYrbUNYNEFUNGdtcGZ4NTA5UmtoN2pGYmlmeW1wajN2eFlzcTFBMmI1OWY1WXVaUmcKICAgICAgICAgWVJrNHJmNWFRUVBZMnQ5a0ROdHpIZSs2VU5tVis5R2lBM0VBeUN5UVhmRTB6RU9pVlBNL2QvS2JHR2lqanZ4RzVmL3MKICAgICAgICAgRm1seTdqRVAxZ1NBL0l0cXJqcCtuRE9UQU9rcitpTThHUUxyVTE3ekFlcFRkbFZGRVFhWTJSUVBmZkVxemVlUkdIYUQKICAgICAgICAgTFloOGQ2MXl2ZnBOWXBiQkdSZ3JUVm5lc3ljRzJQMlp1RXZLdUpJQnRWcUREVEl1ZmxCcGNTREJRYzBNM0JHc3E3NWQKICAgICAgICAgMlFodz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Y1RvR3RMcXphWEdiK3BLQ1hJcmNnWlBGZ3NBL3k0NmVtWnpidUp6TGFjQT07CiAgICAgICAgYj1UWG8wQTRwbmlSbFE1WnhQRUtiUEI4bzhDRGphTk8yRVA2b2NUd3dadFR1a3BiNVlVNmcyN1R4VytWdTg2TldZUGEKICAgICAgICAgbEZWZlJibUZmNTRRVHFyeUVLTHJFOGluZjAzeDl2YjRuN3pSWkFnd3FTVnQzVkdYVUpuOER1UWJmeHlTejMwMSswcnEKICAgICAgICAgQjljamZDVVF2eXI5ZzM5V2IxRDRvMkxRMDMxUG9Ndlk0Rm94cElCRGE4Y1dPV3dIbmNLcEF3elJPcXFVRVNmUEhOaEoKICAgICAgICAgTzcwUjY4ZXJyV2NrWmZUYlpEOWJLSUc3RWM3ZjJma2xUWVBESUQ1WHVoaUxzcXZXUEJrc1RCK3cxTmlRS0EwNnpHdlIKICAgICAgICAgNHJBVzVsaVNDWG0zNTdCMnJ0TkY0NHo4SllHOVU3Vmk1ZFBLZXZJVDc4dUZMM0d5b3NiL1BYT0xTcFA4Z1hiajJwcVUKICAgICAgICAgcWRuUT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVaVRyMS9FS1I1OUNIRTdkSXNaV2dqa0dMQ3FVZGlqYmRldnFFVmpSZ013Qm51cHhSVFAKCTE0aUh6RWROWUtYNDJFTmxwaTJudlYzUEh3NitIdXdOClgtR29vZ2xlLVNtdHAtU291cmNlOiBBREtDTmI1emFLTUpqRXFqMVlDRFFPbFBnVDdkb1k1cG4yb1ZRcnpmRFFwTXhINjR5bWlnelljVWVFa2llRmVtRG9lYTFxTGNLbDBSVURvdnBPRE4wSXBmM1U4PQpYLVJlY2VpdmVkOiBieSAxMC4xMjkuMTE0LjY5IHdpdGggU01UUCBpZCBuNjZtcjExNjYxMjgyeXdjLjQxOC4xNTA1MjA0OTYwMDk2OwogVHVlLCAxMiBTZXAgMjAxNyAwMToyOToyMCAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTI5LjE1Ny4xOTggd2l0aCBIVFRQOyBUdWUsIDEyIFNlcCAyMDE3IDAxOjI5OjE5IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0FQQ2pqbkdEaXFlK0ViZlZSS0M5eVdRYitqVkRuWUswODRfZTc0bU5CWXZiVXVWUW13QG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0FLdVZ6QlRqTk9iUUxtdG84Zjk3Zk8xeCtUMWkxX29UejdNX08wM1ZrV2FDazdGXytRQG1haWwuZ21haWwuY29tPgogPENBQ2NlZmdmaktUNz1TRGdPRzNaVWplTmYteXBVS3VvX25pNkFHMEtob0VWN1J5LVFyQUBtYWlsLmdtYWlsLmNvbT4gPENBUENqam5HRGlxZStFYmZWUktDOXlXUWIralZEbllLMDg0X2U3NG1OQll2YlV1VlFtd0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogVGlib3IgRGlnYW5hIDx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTIgU2VwIDIwMTcgMTA6Mjk6MTkgKzAyMDAKTWVzc2FnZS1JRDogPENBS3VWekJTdEdDb2t4dStfdE5RLXE1K255dXdudWFWNDMyWHo5aE9uZjFWTU5LNHEyUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBTdXJlZmlyZSBQbHVnaW4gdmVyc2lvbiAyLjIwLjEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDczOWNhZjVmNmExMDU1OGY5ZDZjZCIKCi0tMDAxYTExNDczOWNhZjVmNmExMDU1OGY5ZDZjZApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKSGkgRGFuLApZZXMgeW91IGNhbiB1c2Ugc3VjaCB2ZXJzaW9uLiBUaGUgVVJMIGZvciBzbmFwc2hvdHMgaXMKaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvc25hcHNob3RzCgpPbiBUdWUsIFNlcCAxMiwgMjAxNyBhdCA1OjAxIEFNLCBEYW4gVHJhbiA8ZGFudHJhbkBnbWFpbC5jb20+IHdyb3RlOgoKPiBJcyB0aGVyZSBhIHNuYXBzaG90IGkgY2FuIHRlc3Qgd2l0aCBteSBwcm9kdWN0aW9uPyBvbmx5IHNlZSAyLjIxLVNOQVBTSE9UCj4KPiBUaGFua3MKPgo+IC1EYW4KPgo+IE9uIE1vbiwgU2VwIDExLCAyMDE3IGF0IDU6MDUgQU0sIEVucmljbyBPbGl2ZWxsaSA8ZW9saXZlbGxpQGdtYWlsLmNvbT4KPiB3cm90ZToKPgo+ID4gKzEgKG5vbiBiaW5kaW5nKQo+ID4KPiA+IHJ1biB1bml0IHRlc3RzIG9uIHN1cmVmaXJlIHByb2plY3QgaXRzZWxmCj4gPgo+ID4gb24gIEpESyA5KzE4MSBydW4gdW5pdCB0ZXN0cyBvZiBvdGhlciBKYXZhOCBwcm9qZWN0cyB3aGljaCByZXF1aXJlZAo+ID4gamF2YS5zZS5lZSBtb2R1bGUgdG8gYmUgcHJlc2VudAo+ID4KPiA+IFRoYW5rIHlvdSAhCj4gPgo+ID4gRW5yaWNvCj4gPgo+ID4KPiA+IDIwMTctMDktMTEgNTozMyBHTVQrMDI6MDAgVGlib3IgRGlnYW5hIDx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+Ogo+ID4KPiA+ID4gSGksCj4gPiA+Cj4gPiA+IFdlIHNvbHZlZCAyNCBpc3N1ZXM6Cj4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiA+ID4gcHJvamVjdElkPTEyMzE3OTI3JnZlcnNpb249MTIzNDAyOTcKPiA+ID4KPiA+ID4gVGhlcmUgYXJlIDEwMSBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaSNpc3N1ZXMvP2pxbD1wcm9qZWN0KyUKPiA+ID4gM0QrU1VSRUZJUkUrQU5EK3N0YXR1cyslM0QrT3BlbitPUkRFUitCWStwcmlvcml0eStERVNDCj4gPiA+Cj4gPiA+IFN0YWdpbmcgcmVwbzoKPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2Ni8KPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gPiA+IDEzNjYvb3JnL2FwYWNoZS9tYXZlbi9zdXJlZmlyZS9zdXJlZmlyZS8yLjIwLjEvc3VyZWZpcmUtMi4yMC4xLXNvdXJjZS0KPiA+ID4gcmVsZWFzZS56aXAKPiA+ID4KPiA+ID4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gPiA+IG1hdmVuLXN1cmVmaXJlLXBsdWdpbi0yLjIwLjEtc2l0ZS1zb3VyY2UuemlwIHNoYTE6Cj4gPiA+IDQxODdhNzkzMjI2OGM3YWQ0Njc5NzMyNTRkODc1ODQwODVlMzA1YzEKPiA+ID4KPiA+ID4gU3RhZ2luZyBzaXRlOgo+ID4gPiBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9zdXJlZmlyZS1hcmNoaXZlcy9zdXJlZmlyZS1MQVRFU1QvCj4gPiA+Cj4gPiA+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+ID4gPiBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCj4gPiA+Cj4gPiA+IFZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCj4gPiA+Cj4gPiA+IFsgXSArMQo+ID4gPiBbIF0gKzAKPiA+ID4gWyBdIC0xCj4gPiA+Cj4gPiA+IC0tCj4gPiA+IENoZWVycwo+ID4gPiBUaWJvcgo+ID4gPgo+ID4KPgoKCgotLSAKQ2hlZXJzClRpYm9yCgotLTAwMWExMTQ3MzljYWY1ZjZhMTA1NThmOWQ2Y2QtLQoKRnJvbSBkZXYtcmV0dXJuLTEyMzk0Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gU2VwIDEwIDIxOjI5OjQzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzk0Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3QkRBMDFBMDRECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMjE6Mjk6NDMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3OTAyNiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBTZXAgMjAxNyAyMToyOTo0MyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzg5NDcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgU2VwIDIwMTcgMjE6Mjk6NDMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3ODkzNCBpbnZva2VkIGJ5IHVpZCA5OSk7IDEwIFNlcCAyMDE3IDIxOjI5OjQyIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxMCBTZXAgMjAxNyAyMToyOTo0MiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDNFQjI3Q0E4QzMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDIxOjI5OjQyICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi44NzkKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi44NzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nb29nbGVtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgWDljR3NKanBya284IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAxMCBTZXAgMjAxNyAyMToyOTozOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXl3MC1mMTc1Lmdvb2dsZS5jb20gKG1haWwteXcwLWYxNzUuZ29vZ2xlLmNvbSBbMjA5Ljg1LjE2MS4xNzVdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNUU1MjQ2MEYwNQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMjE6Mjk6MzkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwteXcwLWYxNzUuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgdjcyc28xNTkwMzIyNXl3YS4zCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMTQ6Mjk6MzkgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdvb2dsZW1haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bwogICAgICAgICA6Y2M7CiAgICAgICAgYmg9ZHhLM2U1TVBiQ3VFczZiZUNJUnlBOEQ2aFBwZHlMZFhsTkJMRHlkVDhOaz07CiAgICAgICAgYj1pYXZ0eVJIaXV6bkdmRVpGcytDUURjWm5TMDcxSjF6dTNTZWk2d2JIWmxldC9NcHlRQ2p6Wmc0OGc4cnFacWdMOTIKICAgICAgICAgNGlHVWlQbWQ3STZ0Vk56TTBLUGkxcy9TMzZyWkpjWVp2Q1hta0hEWEJHR1MrVlFOekhzb00zbnRjVFJkUmxLSzdqb3YKICAgICAgICAgbm9pKzc0RFRHcXk5WUIxMFl5WWg4YldXdUtaNlIwcS92K3NKM0g5QXZUU1RBWER5MUt5ZkVIVy81ejF4TzdRMC8zZVIKICAgICAgICAgbTdCT3NpSHJTdk5sbFFLQ255cTFGWjFOVGxVaXJtSlBMbnNQUU5xWnhiTzVyZHFwajNUSytDVnhwVFFYdEdFT1NWWFoKICAgICAgICAgaW00ZlFsY2k4WmRrWWpESEluQ0RHd3I0V0w0Q3l6YUg3RzMxSllLYkNQNjlkMElJMVNIUlN0UVRlUEFzYmxtV2NkT3UKICAgICAgICAgdkdjZz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG86Y2M7CiAgICAgICAgYmg9ZHhLM2U1TVBiQ3VFczZiZUNJUnlBOEQ2aFBwZHlMZFhsTkJMRHlkVDhOaz07CiAgICAgICAgYj10VmVlc2xrSzdwYVdXZDYwY3gzZVVXeFNIbWsvN1BxUm0wUnVwM0NQNlNtMjlWY0lnUW04WDROU0p1N1pQRzFLMG8KICAgICAgICAgY3BmbCttUzFERTlCV0taL3A0MFFyUmNVdW9SenBnTU5UVVhYRjRBSEdPem9SeTVCTUQ2SmxIOHkxUmZVUzkrZFFGdGoKICAgICAgICAgVHFkZEpRL1BCdzlWdDdmNkpsZ3A3T3BKMnV5UG1lOEpaNjBnNnMyMW8za01DSDdxWVMvS1k2YjhGbkcxZDlrTld4QVIKICAgICAgICAgZzYxQnN2dVQrakNQOGJuUlJCZWZ5bXQ5eU0xYm8xUzlTM3BWbjRyVE5PUmJsM1MwM09FWnRlOHNPYU5wL295MTAwRnEKICAgICAgICAgRjdYeGZmUkt0NmhqL2syZmoyYWJBWFBzNDg1RlZDN3ZmN1JBdjh3OWIvYlNsbEpYZ1pFMGRUQ0dKSG1sZ3ltTW1YbUwKICAgICAgICAgd1pBQT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVaGdOekhNOGhIWlBwL2RwY3c1c2N2eGhtV1Q2cFUxQzJERnBhSkFWaUN3ZXdvSnhjY2QKCWFqUXJQVk1XZzVyd1pydkZDc1REdmYyeVlKejBSdz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBREtDTmI3VzFiT3Z3Y1UyUDRYN3Z5Y1NJVGx2ejE1VllYMlVINGczNHU2K0tTZ0Z2L2ZnTTV3Sy9uKzFSTGM3bkFyRVIzZVNJS0tLTGkreUpEeE1nRmVEdWNNPQpYLVJlY2VpdmVkOiBieSAxMC4xMjkuNDIuODQgd2l0aCBTTVRQIGlkIHE4MW1yNzYyMDIwOHl3cS4xODcuMTUwNTA3ODk3MTc3NDsKIFN1biwgMTAgU2VwIDIwMTcgMTQ6Mjk6MzEgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjEyOS4xNTcuMTk4IHdpdGggSFRUUDsgU3VuLCAxMCBTZXAgMjAxNyAxNDoyOTozMSAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPDg5ZDE0MzQ1LTliMDItZWZlOS00MGZlLTIyMDliMWQ5N2Q2ZkBhcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8ZWZiOTc5NjAtZTFiNy00MjI3LTU5OTgtZGUyYzI0MDE1YmIwQGFwYWNoZS5vcmc+CiA8Q0ErblBuTXc3b2c1Z3JxSlpOeVljM0p5TUpjSD1yY2hTLUdZWURfYU1BdmVBaWNKb1V3QG1haWwuZ21haWwuY29tPgogPDc4YWY5NjU1LTc2YmMtZjU2Yy0yZWI1LTFhZjJjMTIwZjQzZkBhcGFjaGUub3JnPiA8Q0FLdVZ6QlFxNFowYU1YZzZkVzl2eGUzeEJmK2RIRjBTMk5mZEh2TVBERm5lOEhyWXV3QG1haWwuZ21haWwuY29tPgogPDI0Y2MzOGU4LTVjM2EtNjQwMi1jZmZmLTg3NmIzMjRhYTg3MUBnbXguZGU+IDxDQUt1VnpCUndmdit6OUFDd2FzRGZfRm5xQjJvNXc1UjBzZkNHaU5Kd0RnUUs9QU9Ld0FAbWFpbC5nbWFpbC5jb20+CiA8Y2Y4ODFlNTktNjdjMC04NWU3LTFjNDQtODM3ZTUyMWVmNzc5QGFwYWNoZS5vcmc+IDxDQUt1VnpCUy1Ia1ZwX293M1Z6OW03WTA3Y256K0VUTmNxZkFaVmhnVW9UcWlITzNnVUFAbWFpbC5nbWFpbC5jb20+CiA8ODlkMTQzNDUtOWIwMi1lZmU5LTQwZmUtMjIwOWIxZDk3ZDZmQGFwYWNoZS5vcmc+CkZyb206IFRpYm9yIERpZ2FuYSA8dGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tPgpEYXRlOiBTdW4sIDEwIFNlcCAyMDE3IDIzOjI5OjMxICswMjAwCk1lc3NhZ2UtSUQ6IDxDQUt1VnpCU3hXdzYwcEpTMUUyUVJKQi1jRHdfbTh4dU1EcDA2MjloZkhXVU9NZWdPQlFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBUZXN0cyBmb3IgTU5HLTYyNzUgZmFpbCBvbiBKYXZhIDEuNy4wXzE1MS1iMDEKVG86IE1pY2hhZWwgT3NpcG92IDxtaWNoYWVsb0BhcGFjaGUub3JnPgpDYzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0MWQ3MTA3OGJkMTIwNTU4ZGM4MTkyIgoKLS0wMDFhMTE0MWQ3MTA3OGJkMTIwNTU4ZGM4MTkyCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpZb3UgdGhpbmsgaXQgaGFzIHRvIGRvIHlvdSB0aGUgY29tbWl0IGZpeGluZyBDbGFzcyBMb2FkZXIgaXNzdWUgb3IgdGhlCnByZXZpb3VzIGNvbW1pdHMgYXMgd2VsbD8KCk9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDExOjIzIFBNLCBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz4Kd3JvdGU6Cgo+IEFtIDIwMTctMDktMTAgdW0gMjM6MTkgc2NocmllYiBUaWJvciBEaWdhbmE6Cj4KPj4gRGVmaW5pdGVseSBJIGFncmVlIQo+PiBMZXQncyBzZWUgaWYgaXQgaXMgSkRLIGlzc3VlIG9yIHBsYXRmb3JtIGlzc3VlLiBMZXQncyBleGNsdWRlIE9yYWNsZSBKYXZhCj4+IHN1c3BpY2lvbiBhbmQgdGhlbiBpdCdzIHNlcmlvdXMgaXNzdWUuCj4+Cj4KPiBOb3QgYSBwbGF0Zm9ybSBvbmUuIFJlcHJvZHVjZWQgb24gV2luZG93cyAxMCB3aXRoIFp1bHUgNyBVcGRhdGUgMTU0LiBJCj4gd2lsbCBkb3dubG9hZCBPcmFjbGEgSmF2YSA3IGZyb20gTU9TQyBhbmQgdGVzdCBhZ2Fpbi4gSSBhbSBwcmV0dHkgc3VyZSB0aGF0Cj4gaXQgd2lsbCBmYWlsIHRvby4KPgo+Cj4gT24gU3VuLCBTZXAgMTAsIDIwMTcgYXQgMTE6MTcgUE0sIE1pY2hhZWwgT3NpcG92IDxtaWNoYWVsb0BhcGFjaGUub3JnPgo+PiB3cm90ZToKPj4KPj4gQW0gMjAxNy0wOS0xMCB1bSAyMzoxNSBzY2hyaWViIFRpYm9yIERpZ2FuYToKPj4+Cj4+PiBUaGlzIG9uZSAxLjcuMF84MCB3aGljaCBpcyA3dTgwOgo+Pj4+IGh0dHA6Ly93d3cub3JhY2xlLmNvbS90ZWNobmV0d29yay9qYXZhL2phdmFzZS9kb3dubG9hZHMvCj4+Pj4gamF2YS1hcmNoaXZlLWRvd25sb2Fkcy1qYXZhc2U3LTUyMTI2MS5odG1sCj4+Pj4KPj4+Pgo+Pj4gTm8gb25lIHdpbGwgc2VyaW91c2x5IHJ1biB0aGlzIG9uZS4gU28gaWYgd2Ugc2F5IHRoYXQgb3VyIHN0dWZmIHJ1bnMgb2ZmCj4+PiA3Cj4+PiB0aGVuIHdlIGhhdmUgdG8gdGVzdCBPcGVuSkRLIGFuZCBadWx1IHRvby4KPj4+Cj4+PiBNaWNoYWVsCj4+Pgo+Pj4KPj4+IE9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDExOjEyIFBNLCBNaWNoYWVsIE9zaXBvdiA8bW9zaXBvdkBnbXguZGU+IHdyb3RlOgo+Pj4KPj4+Pgo+Pj4+IEFtIDIwMTctMDktMTAgdW0gMjM6MDcgc2NocmllYiBUaWJvciBEaWdhbmE6Cj4+Pj4KPj4+Pj4KPj4+Pj4gTWljaGFlbCwgbm93IHRyeSB3aXRoIE9yYWNsZSBKYXZhIDcuCj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+IExhc3QgcHVibGljIHZlcnNpb24gb3IgdXAtdG8tZGF0ZSBwYWlkIHZlcnNpb24/Cj4+Pj4+Cj4+Pj4+IE9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDExOjAyIFBNLCBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz4KPj4+Pj4KPj4+Pj4gd3JvdGU6Cj4+Pj4+Pgo+Pj4+Pj4gQW0gMjAxNy0wOS0xMCB1bSAyMjoyNyBzY2hyaWViIFN0ZXBoZW4gQ29ubm9sbHk6Cj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+PiBXZWxsIEkgcmFuIHRoZSByZWxlYXNlIHdpdGggMS43LjBfODAgd2hpY2ggaWlyYyBpcyB0aGUgbGFzdCBwdWJsaWMKPj4+Pj4+Pgo+Pj4+Pj4+IHJlbGVhc2UKPj4+Pj4+Pj4gb2YgT3JhY2xlIEphdmEgNy4uLgo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBGYWlscyBhbHNvIG9uIFdpbmRvd3Mgd2l0aCBadWx1IDc6Cj4+Pj4+Pj4+Cj4+Pj4+Pj4gJCBtdm4gLXYKPj4+Pj4+PiBBcGFjaGUgTWF2ZW4gMy41LjAgKGZmOGY1ZTc0NDQwNDU2MzlhZjY1ZjYwOTVjNjIyMTBiNTcxM2Y0MjY7Cj4+Pj4+Pj4gMjAxNy0wNC0wM1QyMTozOTowNiswMjowMCkKPj4+Pj4+PiBNYXZlbiBob21lOiBEOlxFbnR3aWNrbHVuZ1xQcm9ncmFtbWVcYXBhY2hlLW1hdmVuLTMuNS4wCj4+Pj4+Pj4gSmF2YSB2ZXJzaW9uOiAxLjcuMF8xNTQsIHZlbmRvcjogQXp1bCBTeXN0ZW1zLCBJbmMuCj4+Pj4+Pj4gSmF2YSBob21lOiBDOlxQcm9ncmFtIEZpbGVzXFp1bHVcenVsdS03XGpyZQo+Pj4+Pj4+IERlZmF1bHQgbG9jYWxlOiBkZV9ERSwgcGxhdGZvcm0gZW5jb2Rpbmc6IENwMTI1Mgo+Pj4+Pj4+IE9TIG5hbWU6ICJ3aW5kb3dzIDEwIiwgdmVyc2lvbjogIjEwLjAiLCBhcmNoOiAiYW1kNjQiLCBmYW1pbHk6Cj4+Pj4+Pj4gIndpbmRvd3MiCj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4gT24gU3VuIDEwIFNlcCAyMDE3IGF0IDIxOjA4LCBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz4KPj4+Pj4+PiB3cm90ZToKPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4gRm9sa3MsCj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IHRyaWVkIHJ1bm5pbmcgbWFzdGVyIG9uCj4+Pj4+Pj4+PiBNYXZlbiBob21lOiAvdXNyL2xvY2FsL3NoYXJlL2phdmEvbWF2ZW4KPj4+Pj4+Pj4+IEphdmEgdmVyc2lvbjogMS43LjBfMTUxLCB2ZW5kb3I6IE9yYWNsZSBDb3Jwb3JhdGlvbgo+Pj4+Pj4+Pj4gSmF2YSBob21lOiAvdXNyL2xvY2FsL29wZW5qZGs3L2pyZQo+Pj4+Pj4+Pj4gRGVmYXVsdCBsb2NhbGU6IGRlX0RFLCBwbGF0Zm9ybSBlbmNvZGluZzogVVRGLTgKPj4+Pj4+Pj4+IE9TIG5hbWU6ICJmcmVlYnNkIiwgdmVyc2lvbjogIjExLjEtcmVsZWFzZS1wMSIsIGFyY2g6ICJpMzg2IiwKPj4+Pj4+Pj4+IGZhbWlseToKPj4+Pj4+Pj4+ICJ1bml4Igo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IGFuZCBJIGdldCB0aGlzOgo+Pj4+Pj4+Pj4gRmFpbGVkIHRlc3RzOgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X2NvcmVSZWFsbURlZmF1bHRQYXIKPj4+Pj4+Pj4+IGVudENsYXNzTG9hZGVyOjk5Cj4+Pj4+Pj4+PiBudWxsCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfZXh0ZW5zaW9uUmVhbG1EZWZhdQo+Pj4+Pj4+Pj4gbHRQYXJlbnRDbGFzc0xvYWRlcjo3Mwo+Pj4+Pj4+Pj4gbnVsbAo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X21hdmVuQXBpUmVhbG1EZWZhdWwKPj4+Pj4+Pj4+IHRQYXJlbnRDbGFzc0xvYWRlcjo5MQo+Pj4+Pj4+Pj4gbnVsbAo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X3BsdWdpblJlYWxtRGVmYXVsdFAKPj4+Pj4+Pj4+IGFyZW50Q2xhc3NMb2FkZXI6NjIKPj4+Pj4+Pj4+IG51bGwKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXN0TU5HNjI3NV9wcm9qZWN0UmVhbG1EZWZhdWx0Cj4+Pj4+Pj4+PiBQYXJlbnRDbGFzc0xvYWRlcjo4Mwo+Pj4+Pj4+Pj4gbnVsbAo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IEFsbCB0ZXN0cyBmYWlsIHdpdGggImp1bml0LmZyYW1ld29yay5Bc3NlcnRpb25GYWlsZWRFcnJvcjogbnVsbCIuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gUnVubmluZyB3aXRoCj4+Pj4+Pj4+PiBNYXZlbiBob21lOiAvdXNyL2xvY2FsL3NoYXJlL2phdmEvbWF2ZW4KPj4+Pj4+Pj4+IEphdmEgdmVyc2lvbjogMS44LjBfMTQ0LCB2ZW5kb3I6IE9yYWNsZSBDb3Jwb3JhdGlvbgo+Pj4+Pj4+Pj4gSmF2YSBob21lOiAvdXNyL2xvY2FsL29wZW5qZGs4L2pyZQo+Pj4+Pj4+Pj4gRGVmYXVsdCBsb2NhbGU6IGRlX0RFLCBwbGF0Zm9ybSBlbmNvZGluZzogVVRGLTgKPj4+Pj4+Pj4+IE9TIG5hbWU6ICJmcmVlYnNkIiwgdmVyc2lvbjogIjExLjEtcmVsZWFzZS1wMSIsIGFyY2g6ICJpMzg2IiwKPj4+Pj4+Pj4+IGZhbWlseToKPj4+Pj4+Pj4+ICJ1bml4Igo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IHdvcmtzIGZsYXdsZXNzbHkuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gQW55IGlkZWFzPwo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+Pj4+Pj4gLS0tLS0tLS0tCj4+Pj4+Pj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Pj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IC0tCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gU2VudCBmcm9tIG15IHBob25lCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4+Pj4+IC0tLS0tLS0tLQo+Pj4+Pj4+Pgo+Pj4+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+Pj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pgo+Pj4+Cj4+Pj4KPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+Cj4+Pgo+Pj4KPj4KPj4KPgoKCi0tIApDaGVlcnMKVGlib3IKCi0tMDAxYTExNDFkNzEwNzhiZDEyMDU1OGRjODE5Mi0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NjUyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBOb3YgMjggMjE6MDQ6NDQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjUyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDI1OUIxMTc0REMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAyMTowNDo0NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDU2MzAwIGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE5vdiAyMDE3IDIxOjA0OjQzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NjIzNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBOb3YgMjAxNyAyMTowNDo0MyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU2MjIzIGludm9rZWQgYnkgdWlkIDk5KTsgMjggTm92IDIwMTcgMjE6MDQ6NDMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMjggTm92IDIwMTcgMjE6MDQ6NDMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC15dzAtZjE3MC5nb29nbGUuY29tIChtYWlsLXl3MC1mMTcwLmdvb2dsZS5jb20gWzIwOS44NS4xNjEuMTcwXSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEM4QjE1MUEwMDhDCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAyMTowNDo0MiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC15dzAtZjE3MC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBtMTI5c281MTcyNTZ5d2IuMTEKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAxMzowNDo0MiAtMDgwMCAoUFNUKQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDdVN2hLTnpVODQ4c3NhS2pCSWxFNEZKbkplNUVKdFNLZ25UWDB5MVhlWHpOQU5NWHgvCgk4MXNkTUVoRXE0UTQ4SDc1eTg0MGVzVE4xb2VUbUp0TW5DZzhlNTg9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1iQkcrenFRM3NCdURVdnR4QUFLdFpqQjBXbVl1WXM1dUlwRXppNmc5T3lscVFNNHJkb3h5M1ZwZlB1MjM0VHdUeUdMeCtEb1FDSXhvZlo2bUVUV2Q0PQpYLVJlY2VpdmVkOiBieSAxMC4xMjkuODMuNjcgd2l0aCBTTVRQIGlkIGg2NG1yMzIyNDc4eXdiLjE2OS4xNTExOTAzMDgxMzIxOwogVHVlLCAyOCBOb3YgMjAxNyAxMzowNDo0MSAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTI5LjEyMi4xNTEgd2l0aCBIVFRQOyBUdWUsIDI4IE5vdiAyMDE3IDEzOjA0OjQwIC0wODAwIChQU1QpCkluLVJlcGx5LVRvOiA8Q0FQTHBSUUxRMmVMQXN0T3RBR1JSZlU0TkVKVjBGZkJOOGp3YXJYTGRlVVMrRk5zLStBQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0FLdVZ6QlRjbnFLaDhkNEtOU0tjaHZwNGRHTGNadzJlRHdNaW5LWjFVS0J6ODEyOVhBQG1haWwuZ21haWwuY29tPgogPENBQTlTNmk3PUpTVjRuNTlOa2U1K2EyaFctNEgrY19BUXY0eDN2RzVtTGdnaXpkdkJRQUBtYWlsLmdtYWlsLmNvbT4KIDxDQUt1VnpCVExBQXgrNj01bStRWTdjT1VPK1NfeXpWN0xCRDNjZGI3cUZXUF83PWhzamdAbWFpbC5nbWFpbC5jb20+IDxDQVBMcFJRTFEyZUxBc3RPdEFHUlJmVTRORUpWMEZmQk44andhclhMZGVVUytGTnMtK0FAbWFpbC5nbWFpbC5jb20+CkZyb206IFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4KRGF0ZTogVHVlLCAyOCBOb3YgMjAxNyAyMjowNDo0MCArMDEwMApYLUdtYWlsLU9yaWdpbmFsLU1lc3NhZ2UtSUQ6IDxDQUt1VnpCU3lHLThCbm9yN3NlekNwNnowQ3YrSm5nMG8xMUhONGhCeDEwQmpXQ1FuT3dAbWFpbC5nbWFpbC5jb20+Ck1lc3NhZ2UtSUQ6IDxDQUt1VnpCU3lHLThCbm9yN3NlekNwNnowQ3YrSm5nMG8xMUhONGhCeDEwQmpXQ1FuT3dAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBQcm9ibGVtIHRvIGRvd25sb2FkIGRlcGVuZGVuY3kgb24gVWJ1bnR1ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTRkOGFmMDE4ZGM0NTA1NWYxMTVlNzYiCgotLTAwMWExMTRkOGFmMDE4ZGM0NTA1NWYxMTVlNzYKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKPj5Gcm9tICJGYWlsZWQgdG8gY3JlYXRlIHBhcmVudCBkaXJlY3RvcmllcyIuLi4KCkl0IGlzIG11bHRpLW1vZHVsZSBwcm9qZWN0IGJ1dCBpdCBkb2VzIG5vdCBoYXZlIGFueSBwYXJlbnQgUE9NLiBJdCBpcyBmdWxseQppc29sYXRlZCBwcm9qZWN0IC0gTWljcm9zZXJ2aWNlLgoKPj5Mb2NhbCByZXBvIGRpcmVjdG9yeSBvd25lcnNoaXAvcGVybWlzc2lvbnM/CkFsbCBpcyBkb25lIGluIG15IHVzZXIgaG9tZS4KY2QgfgpnaXQgY2xvbmUgLi4uCmNkIC4uLgptdm4gLVggLVUgY2xlYW4KCgpUaHgKVGlib3IKCgpPbiBUdWUsIE5vdiAyOCwgMjAxNyBhdCA4OjMxIFBNLCBUYW09QzM9QTFzIENzZXJ2ZW49QzM9QTFrIDx0YW1hc0Bjc2VydmVuYWs9Ci5uZXQ+Cndyb3RlOgoKPiBNeSA1YzoKPiBGcm9tICJGYWlsZWQgdG8gY3JlYXRlIHBhcmVudCBkaXJlY3RvcmllcyIuLi4KPgo+IExvY2FsIHJlcG8gZGlyZWN0b3J5IG93bmVyc2hpcC9wZXJtaXNzaW9ucz8KPgo+IEhUSCwKPiBUCj4KPiBPbiBUdWUsIE5vdiAyOCwgMjAxNyBhdCA3OjIxIFBNIFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4KPiB3cm90ZToKPgo+ID4gVGhlIHNldHRpbmdzLnhtbDoKPiA+Cj4gPiA8P3htbCB2ZXJzaW9uPTNEIjEuMCIgZW5jb2Rpbmc9M0QiVVRGLTgiPz4KPiA+IDxzZXR0aW5ncyB4bWxucz0zRCJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9TRVRUSU5HUy8xLjAuMCIKPiA+ICAgICAgICAgICB4bWxuczp4c2k9M0QiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiCj4gPiAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPTNEImh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1NFVFRJTkdTLzEuMC4wCj4gPiBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy94c2Qvc2V0dGluZ3MtMS4wLjAueHNkIj4KPiA+Cj4gPiAgICAgPGxvY2FsUmVwb3NpdG9yeT4vaG9tZS94bXM0MC8ubTIvcmVwb3NpdG9yeTwvbG9jYWxSZXBvc2l0b3J5Pgo+ID4KPiA+ICAgICA8bWlycm9ycz4KPiA+ICAgICAgICAgPG1pcnJvcj4KPiA+ICAgICAgICAgICAgIDxpZD5uZXh1czwvaWQ+Cj4gPiAgICAgICAgICAgICA8bWlycm9yT2Y+KjwvbWlycm9yT2Y+Cj4gPiAgICAgICAgICAgICA8bmFtZT5Tb25hdHlwZSBOZXh1czwvbmFtZT4KPiA+ICAgICAgICAgICAgIDx1cmw+aHR0cDovL21hdmVucmVwby5hZHMubG9jYWwvbmV4dXMvY29udGVudC9ncm91cHMvcHVibGljCj4gPiA8L3VybD4KPiA+ICAgICAgICAgPC9taXJyb3I+Cj4gPiAgICAgPC9taXJyb3JzPgo+ID4gICAgPHNlcnZlcnM+Cj4gPiAgICAgICA8c2VydmVyPgo+ID4gICAgICAgICAgPGlkPm5leHVzPC9pZD4KPiA+ICAgICAgICAgIDx1c2VybmFtZT4qKio8L3VzZXJuYW1lPgo+ID4gICAgICAgICAgPHBhc3N3b3JkPioqKjwvcGFzc3dvcmQ+Cj4gPiAgICAgICA8L3NlcnZlcj4KPiA+ICAgIDwvc2VydmVycz4KPiA+Cj4gPgo+ID4gPC9zZXR0aW5ncz4KPiA+Cj4gPgo+ID4gT24gTW9uLCBOb3YgMjcsIDIwMTcgYXQgMTA6NDYgUE0sIE5pY2sgU3RvbHdpamsgPG5pY2suc3RvbHdpamtAZ21haWwuY289Cm0KPiA+Cj4gPiB3cm90ZToKPiA+Cj4gPiA+IERpZCB5b3UgYWxzbyBjb25maWd1cmUgeW91ciBwcm94eSBpbiB0aGUgc2V0dGluZ3MueG1sPyBbMV0KPiA+ID4KPiA+ID4gSHRoLAo+ID4gPgo+ID4gPiBOaWNrCj4gPiA+Cj4gPiA+IFsxXSBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL21pbmkvZ3VpZGUtcHJveGllcy5odG1sCj4gPiA+Cj4gPiA+IE5pY2sgU3RvbHdpamsKPiA+ID4KPiA+ID4gfn5+IFRyeSB0byBsZWF2ZSB0aGlzIHdvcmxkIGEgbGl0dGxlIGJldHRlciB0aGFuIHlvdSBmb3VuZCBpdCBhbmQsIHdoPQplbgo+ID4gPiB5b3VyIHR1cm4gY29tZXMgdG8gZGllLCB5b3UgY2FuIGRpZSBoYXBweSBpbiBmZWVsaW5nIHRoYXQgYXQgYW55IHJhdGUKPiB5b3UKPiA+ID4gaGF2ZSBub3Qgd2FzdGVkIHlvdXIgdGltZSBidXQgaGF2ZSBkb25lIHlvdXIgYmVzdCB+fn4KPiA+ID4KPiA+ID4gTG9yZCBCYWRlbi1Qb3dlbGwKPiA+ID4KPiA+ID4gT24gTW9uLCBOb3YgMjcsIDIwMTcgYXQgMTA6MjIgUE0sIFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yPQpnCj4gPgo+ID4gPiB3cm90ZToKPiA+ID4KPiA+ID4gPiBNeSBjb21tYW5kICptdm4gY2xlYW4qIGlzIG5vdCBhYmxlIHRvIGRvd25sb2FkIGEgbmV3IGFydGlmYWN0Cj4gPiA+ID4gKm9yZy5hcnF1aWxsaWFuLnVuaXZlcnNlOmFycXVpbGxpYW4tanVuaXQ6cG9tKgo+ID4gPiA+IGhvd2V2ZXIgaXQgZXhpc3RzIG9uIE1hdmVuIENlbnRyYWwuCj4gPiA+ID4KPiA+ID4gPiBJIHJ1biB0aGUgY29tbWFuZCBvbiBVYnVudHUgS29uc29sZSwgYW5kIG5vdGhpbmcgaXMgZG93bmxvYWRlZC4KPiA+ID4gPiBXaGVuIEkgcnVuIHdnZXQgWzFdIGZyb20gdGhlIHNhbWUgS29uc29sZSwgdGhlIFBPTSBpcyBkb3dubG9hZGVkLgo+ID4gPiA+Cj4gPiA+ID4gVGhlIHNldHRpbmdzLnhtbCBpcyBub3QgYSBwcm9ibGVtLCBJIGNoZWNrZWQuIFRoZXJlIGlzIGEgbWlycm9yIG9mCj4gPiA+IGNlbnRyYWwKPiA+ID4gPiBhbmQgVVJMIG9mIE5leHVzIGluIGNvbXBhbnkuCj4gPiA+ID4KPiA+ID4gPiBJcyB0aGVyZSBhbnkgbmF0aXZlIGRpZmZlcmVuY2UgYmV0d2VlbiB3Z2V0IGFuZCBtdm4vSmF2YSBvbiBVYnVudHUgPQpzbwo+ID4gPiB0aGF0Cj4gPiA+ID4gdGhlIHJlbW90ZSBtYXZlbnJlcG8gbWF5IG5vdCBiZSByZWFjaGVkPwo+ID4gPiA+IEkgZGlkIHNldHVwIG9mIC9ldGMvZW52aXJvbm1lbnQsIC9ldGMvbmV0d29yay9pbnRlcmZhY2UsIH4vLnByb2ZpbGUKPiBkdWUKPiA+ID4gdG8KPiA+ID4gPiBwcm94eSwgRE5TLCBodHRwX25vX3Byb3h5LCBldGMuIGJ1dCBub3RoaW5nIGhlbHBzLgo+ID4gPiA+Cj4gPiA+ID4gQW55IGhpbnQgd291bGQgYmUgaGVscGZ1bCBoZXJlLgo+ID4gPiA+IE1BVkVOIGFuZCBKQVZBX09QVFMgaXMgbm90IHNldC4KPiA+ID4gPgo+ID4gPiA+IFsxXTogd2dldAo+ID4gPiA+IGh0dHA6Ly9tYXZlbnJlcG8uYWRzLmxvY2FsL25leHVzL2NvbnRlbnQvZ3JvdXBzL3B1YmxpYy8KPiA+ID4gPiBvcmcvYXJxdWlsbGlhbi9hcnF1aWxsaWFuLXVuaXZlcnNlLzEuMS4xMy43L2FycXVpbGxpYW4tCj4gPiA+ID4gdW5pdmVyc2UtMS4xLjEzLjcucG9tCj4gPiA+ID4KPiA+ID4gPiBUaHgKPiA+ID4gPiBUaWJvcgo+ID4gPiA+Cj4gPiA+Cj4gPgo+IC0tCj4gVGhhbmtzLAo+IH50fgo+CgotLTAwMWExMTRkOGFmMDE4ZGM0NTA1NWYxMTVlNzYtLQoKRnJvbSBkZXYtcmV0dXJuLTEyMzkwMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgU2VwICA4IDIwOjMyOjA2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzkwMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAzOTZGMzFBOTlECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgIDggU2VwIDIwMTcgMjA6MzI6MDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyMzI3NiBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IFNlcCAyMDE3IDIwOjMyOjA1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMzE4NiBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IFNlcCAyMDE3IDIwOjMyOjA1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjMxNzIgaW52b2tlZCBieSB1aWQgOTkpOyA4IFNlcCAyMDE3IDIwOjMyOjA1IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAwOCBTZXAgMjAxNyAyMDozMjowNSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDAwNDU1MThFNzNGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAgOCBTZXAgMjAxNyAyMDozMjowNSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuMzc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuMzc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdvb2dsZW1haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgSGxUZzJnRThUMDkxIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJRnJpLCAgOCBTZXAgMjAxNyAyMDozMjowMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXl3MC1mMTgxLmdvb2dsZS5jb20gKG1haWwteXcwLWYxODEuZ29vZ2xlLmNvbSBbMjA5Ljg1LjE2MS4xODFdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQzc2RTY1RjI3RAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgIDggU2VwIDIwMTcgMjA6MzI6MDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwteXcwLWYxODEuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgcjg1c28xMDUyODAwN3l3Zy4xCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMDggU2VwIDIwMTcgMTM6MzI6MDIgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdvb2dsZW1haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bwogICAgICAgICA6Y2M7CiAgICAgICAgYmg9NE1FVzdJMGxXVDNEM0JzUGtJYm0rWllmcThDY29vMUliaFI1S3o2VmVLUT07CiAgICAgICAgYj1URlpkMjZKd1ZCenl6UjBZUzdLS3ZkT0FjY3hKY0xIMTNPZTZEMDN0T3pCMHV5Qm1IWVJ0R0V1K0ZpeWsrbkprMmYKICAgICAgICAgZGhVRDN0R0hCMHZIUDZmOUE1QnVENERYVGhkTUZua3RLZ0JTakptSmx2Qys0K0pvVlBFVmVzcEhnaDJUODRRWGt3UW0KICAgICAgICAgS2lZNysrcEZnNGdrRzlJSnl0N2R1MnZ0SlFEcVMwYzJUQmhiZjBvRGFvamJQSE9YQktWanN1VmZTdWJLeGhNK3NhRjMKICAgICAgICAgb0J6Q0grWUQ2dXFJRyt6bVhwQzBUWlRUSHRtd0RSazhUY1c0aGd0ME5pTnNGZS9LNmhNdWY5aTBzcWFaZWduTGN0R2YKICAgICAgICAgYVE3bDFINC9qUi85TTFNek1nYUprYjQ4b2d0bDBmRzNBWVBjNmxUK0t4NTd6TC9GZ3hTRzUwbnUyZDRDYVZDSjNnTy8KICAgICAgICAgWkUxdz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG86Y2M7CiAgICAgICAgYmg9NE1FVzdJMGxXVDNEM0JzUGtJYm0rWllmcThDY29vMUliaFI1S3o2VmVLUT07CiAgICAgICAgYj1BRzJ1YXlwUUFMRjlEMTlWMUlqWmFGdzdncTIrSVhTcEM3a1NHcENqRGNNWVYrLzE3MjA0Yis5czZsQzJZTVRwSEMKICAgICAgICAgZ1ZNV1VQUFFXMm9WWUo0NHNWUTlLbnRRMU14Z1BCcjNWNXd5cGRrOWV6UWNZRWtuVFdsdURBeFBsUHg4aTBiNG9aQkkKICAgICAgICAgakNxd1JmVG81QzQ5andISjRTQjNmdWZUZzU4VG1IdjhUNWQ3ZEdHRzV3WVg2STRWb29DWmJSMzVXeTNFY1lRYjk1bC8KICAgICAgICAgaWE3bGtVNlZEUHRuZjlJRlh3bTltMkI2VVordnR1ZE11RUJpUEE4aHpRQWZkRStYUGE2aHFxZC9RbWY5SWg3VFh5NzQKICAgICAgICAgbTdqR0pJS2dPeERNYlJ1S0Z2Z1pLV3VURjBVVVRaVGw2ekNCM3BoU1U4b3RIaEtFQ1N1K1ZKTnJIcC9VOFZia0RTU3YKICAgICAgICAgd1IxZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVZ2t0RVN5YURWcVJXWHhVTnpjOXdCNDJiZWlmbTY1TWVCMGlNUzJmYi9DNmR0NGJqRzQKCXVoMTNOUUJUalIxbkxQaUdjVWYxeEgxZENxcUFEQT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBREtDTmI3c2ZCZkVOWkZ2UVhIUHlWZ3RRTDIwV3Fic1FRUWdMSGZuQ29nTUNxR0tEeTV2K2hEN0lNZXppM203ZU4vQ2R3eE9HUEZWRzg1MUF2VW1KNjBZd0ZZPQpYLVJlY2VpdmVkOiBieSAxMC4xMjkuMjguMTUgd2l0aCBTTVRQIGlkIGMxNW1yMzQ0ODI0NXl3Yy4yMjQuMTUwNDkwMjcxNjM2MjsKIEZyaSwgMDggU2VwIDIwMTcgMTM6MzE6NTYgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjEyOS4xNTcuMTk4IHdpdGggSFRUUDsgRnJpLCA4IFNlcCAyMDE3IDEzOjMxOjU1IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8b3AueTU4bDloeDRrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+ClJlZmVyZW5jZXM6IDxDQUt1VnpCUks1S2hFU1RQTHRnZTVjeUM5R3U4K2NXN044NE5PMytIeW83dGpQNys2VkFAbWFpbC5nbWFpbC5jb20+CiA8b3AueTU4bDloeDRrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkZyb206IFRpYm9yIERpZ2FuYSA8dGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tPgpEYXRlOiBGcmksIDggU2VwIDIwMTcgMjI6MzE6NTUgKzAyMDAKTWVzc2FnZS1JRDogPENBS3VWekJULUNIRnJMQXM0cl9RNitod252aXJUcW0zTTA4RDZibUFhc2UzWF9YZWJKQUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFdhbnQgdG8gY3V0IHJlbGVhc2UgVmVyc2lvbiAyLjIwLjEgaW4gU3VyZWZpcmUgcHJvamVjdApUbzogUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpDYzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0MTRkM2NkNDk4NjUwNTU4YjM3NzY4IgoKLS0wMDFhMTE0MTRkM2NkNDk4NjUwNTU4YjM3NzY4CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpSZWxlYXNpbmcgMy4wIGlzIG5vdCBwb3NzaWJsZSB3aXRoaW4gb25lIG1vbnRoLgpJdCBjYW4gYmUgb25seSAzLjAtTTEuIEl0J3Mgbm90IGFib3V0IG5ldyBBUEkgb25seSBob3dldmVyIG9sZCAzLjAgYnJhbmNoCmV4aXN0cywgd2UgcGxhbiB0byBpbnRyb2R1Y2UgRXh0ZW5zaW9ucywgYnJlYWsgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgd2l0aApNYXZlbi9TeXN0ZW0gUHJvcGVydGllcyBhbmQgaW50cm9kdWNlIEpVbml0NS4KCkkgdGhpbmsgd2UgY2FuIHRoaW5rIG9mIHZlcnNpb24gMi4wIGZvciBKaWdzYXcuClJvYmVydCwgSSBkaWQgbm90IGhhdmUgdGltZSB0byBhbmFseXNlIHlvdXIgYnJhbmNoIHlldCBiZWNhdXNlIEkgd2FzIGJ1c3kKdGhpcyB3ZWVrLgpRdWVzdGlvbjogV2h5IHlvdSBuZWVkIEphdmEgNz8KCk9uIEZyaSwgU2VwIDgsIDIwMTcgYXQgMTA6MDkgQU0sIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4Kd3JvdGU6Cgo+IE9uIHRvcCBvZiB0aGF0IEknZCBsaWtlIHRvIGRvIGEgMi4yMC4xLWpwbXMgKG9yIDIuMjAuMS1qaWdzYXcpIHJlbGVhc2UuCj4gVGhpcyBoYXMgdGhlIHNhbWUgZml4ZXMgYXMgMi4yMC4xLCBidXQgYWRkcyB0byBzdXBwb3J0IHRvIHJ1biBtb2R1bGFyCj4gcHJvamVjdHMgd2l0aCB0aGUgbW9kdWxlIHBhdGguCj4gSXQgY2FuJ3QgYmUgcGFydCBvZiB0aGUgc2FtZSByZWxlYXNlLCBiZWNhdXNlIEkgaGFkIHRvIHB1c2ggdGhlIEphdmEKPiB2ZXJzaW9uIGZvciBzb3VyY2UvdGFyZ2V0IHRvIDEuNwo+IEZvciBzdXJlZmlyZSBJIHRoaW5rIGl0IGlzIGJldHRlciB0byBkbyB0aGF0IGluIGEgMy4wLjAgcmVsZWFzZSB0b2dldGhlcgo+IHdpdGggYW4gdXBncmFkZSBvZiB0aGUgTWF2ZW4gZGVwZW5kZW5jaWVzIHRvIDMuMAo+Cj4gUm9iZXJ0Cj4KPgo+Cj4gT24gVGh1LCAwNyBTZXAgMjAxNyAyMzozNDoxNyArMDIwMCwgVGlib3IgRGlnYW5hIDwKPiB0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+IHdyb3RlOgo+Cj4gSGkgQWxsLAo+Pgo+PiBJIHdvdWxkIGxpa2UgdG8gc3RvcCBkZXZlbG9wbWVudCBpbiBTdXJlZmlyZSBtYXN0ZXIgdGlsbCBWZXJzaW9uIDIuMjAuMQo+PiBbMV0KPj4gaXMgcmVsZWFzZWQuIFRoZSByZWFzb24gaXMgdGhhdCBhbiBpbXBvcnRhbnQgaXNzdWUgd2l0aCBPdXQgT2YgTWVtb3J5Cj4+IEVycm9yCj4+IGlzIGZpeGVkLgo+Pgo+PiBJIGhhdmUgcGxhbm5lZCBvbmx5IDUgc2ltcGxlIGZpeGVzLCB0aGUgbW9zdCBvZiB0aGVtIG9mZmVyZWQgYnkgb3VyCj4+IGNvbnRyaWJ1dG9ycywgaW4gVmVyc2lvbiAyLjIwLjIsIGFuZCBvbmUgaW1wb3J0YW50IGlzc3VlIGluIDIuMjAuMy4KPj4KPj4gWzFdOgo+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9cHJvamVjdCUyMCUzRCUKPj4gMjBTVVJFRklSRSUyMEFORCUyMGZpeFZlcnNpb24lMjAlM0QlMjAyLjIwLjEKPj4KPj4KCgotLSAKQ2hlZXJzClRpYm9yCgotLTAwMWExMTQxNGQzY2Q0OTg2NTA1NThiMzc3NjgtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDE4MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgT2N0ICA3IDIyOjAyOjE5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDE4MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAwMDJGRjEwODQ2Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMjI6MDI6MTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxMzgyNCBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE9jdCAyMDE3IDIyOjAyOjEzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMzc0MiBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE9jdCAyMDE3IDIyOjAyOjEzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTM3MzEgaW52b2tlZCBieSB1aWQgOTkpOyA3IE9jdCAyMDE3IDIyOjAyOjEzIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA3IE9jdCAyMDE3IDIyOjAyOjEzICswMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcXQwLWYxNzguZ29vZ2xlLmNvbSAobWFpbC1xdDAtZjE3OC5nb29nbGUuY29tIFsyMDkuODUuMjE2LjE3OF0pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCA2NDFDNTFBMDE0MAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMjI6MDI6MTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtcXQwLWYxNzguZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgdjI4c28yODQzODU4NHF0di4xCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMDcgT2N0IDIwMTcgMTU6MDI6MTEgLTA3MDAgKFBEVCkKWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FXdG8yMUl0Ry83OStkR2FjUk5CSjBnMERPUXhWMi91cVpLYkNqOXBRYmpyYU03QnpxRwoJZ29MdjBrRkxFa1dwNlJuUlhWWExjZ3BoOFpjQ05haldmd21SMjVJPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQTQvLzJ2U01ueW1IdG1wTStRTllqZlBENjVKOGZCNDBraFNMcDc4aEFNcTEvMHpyQXI0dEt4QWhUMlZSUG56V3IwWk5maDd0bjg1ZHhyelFkZ2tnWT0KWC1SZWNlaXZlZDogYnkgMTAuMTI5Ljc5LjY4IHdpdGggU01UUCBpZCBkNjVtcjUwNzM3NzV5d2IuNDkzLjE1MDc0MTM3MzA4NDI7CiBTYXQsIDA3IE9jdCAyMDE3IDE1OjAyOjEwIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xMjkuMTkzLjY3IHdpdGggSFRUUDsgU2F0LCA3IE9jdCAyMDE3IDE1OjAyOjEwIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8NDFDNDY0N0EtMzgwOC00RTZBLUI0QjItMjJGN0YyNTlFODE1QGhvbnRvbi5vcmc+ClJlZmVyZW5jZXM6IDwxMDU0NDYxNS5CNGhPM1BudkV6QGdpZ2E+IDxDQUt1VnpCUjJ3K2ZrNVMzdW5CUVI3QjU0ZVU4MENRUWFDNjR1eVk1WE5FQ0hvU0g2R2dAbWFpbC5nbWFpbC5jb20+CiA8Q0FLdVZ6QlFTZ1JYV1ZFZzhDZ3JaZHNOR3dkVGZOdGM0cVd0NEdueUpEb29peWFyMk5BQG1haWwuZ21haWwuY29tPgogPDE5MzQ5ODMueFJNOEt5SWltaUBnaWdhPiA8Q0FGTkNVLV81Q2ZhUE1MMmZ3Wis3dEZFQVpKVCt3WkJEeDZiPS03RTRKUktBbT0tWWdnQG1haWwuZ21haWwuY29tPgogPEUyRDJGRDAzLTYyMTQtNDIxMC05NDU5LTk3QUYyM0YwMEI0RUBob250b24ub3JnPiA8Q0FGTkNVLS1vSEhEK0NGbWMxMGpIVU9KX25UQ1QtXz1hbk1xeTBPYWM3djdrR2ptdTdRQG1haWwuZ21haWwuY29tPgogPDQxQzQ2NDdBLTM4MDgtNEU2QS1CNEIyLTIyRjdGMjU5RTgxNUBob250b24ub3JnPgpGcm9tOiBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+CkRhdGU6IFN1biwgOCBPY3QgMjAxNyAwMDowMjoxMCArMDIwMApYLUdtYWlsLU9yaWdpbmFsLU1lc3NhZ2UtSUQ6IDxDQUt1VnpCVC1adzNIZDBDTHFUNjRrUVgycFNxRkMrTnZ3RDl1TUZleVI1azg5RjZuN0FAbWFpbC5nbWFpbC5jb20+Ck1lc3NhZ2UtSUQ6IDxDQUt1VnpCVC1adzNIZDBDTHFUNjRrUVgycFNxRkMrTnZ3RDl1TUZleVI1azg5RjZuN0FAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBKZW5raW5zIGFuZCBNYXZlbiAzLjAuNSBvciBKREsgNwpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0ZGQ4MWNmNGRkMWIwNTVhZmMxYjdhIgoKLS0wMDFhMTE0ZGQ4MWNmNGRkMWIwNTVhZmMxYjdhCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkkgZG9uJ3QgdGhpbmsgdGhlIGRldnMgd291bGQgd29yayBvbiBhbGwgYXJ0aWZhY3RzKHByb2plY3RzKSBhIHRpbWUuCklmIHRoZSBuYW1pbmcgY29udmVudGlvbiBvZiByZXBvIGZvciBhIHBsdWdpbiB3b3VsZCBiZSBhcnRpZmFjdElkLCBsaWtlCi9tYXZlbi1jbGVhbi1wbHVnaW4sIHRoZW4gZXZlbiBlYXN5IHRvIGZpZ3VyZSBvdXQgd2hpY2ggb25lIHRvIGNsb25lLgpUaGUgbW9zdCBsaWtlbHkgdGhlIGRldiB3b3VsZCBqdXN0IGNsb25lIG9uZSByZXBvIHNoZS9oZSBpcyBpbnRlcmVzdGVkIGluCmF0IHRoZSBtb21lbnQsIGkuZS4gcmVwb3NpdG9yeSAvbWF2ZW4tY2xlYW4tcGx1Z2luLCBsZXQncyBzYXkuCkl0J3MgZ29vZCB0byBhdm9pZCBhbnkgc2hhcmVkIGZpbGVzIGFjcm9zcyB0aGVtLCBldmVuIEkgZG9uJ3QgdGhpbmsgZGV2cwpzaGFyZSBzb21lIGluIHN2biB0b2RheS4gVGhlIHJlbGVhc2UgcHJvY2VzcyB3b3VsZCBiZSBxdWl0ZSB1c3VhbCwgaS5lLiBvbmUKcmVwbyA9M0Qgb25lIHByb2plY3QsIGFuZCBuZXcgZGV2cyBhbHJlYWR5IGhhdmUgdGhlc2UgZXhwZXJpZW5jZXMgd2hpY2ggd2lsPQpsCmJlIHNpbXBsZSBmb3IgdGhlbSB0byBhZGFwdCBmYXN0ZXIuCgoKT24gU2F0LCBPY3QgNywgMjAxNyBhdCAxMTozNiBQTSwgQ2hhcyBIb250b24gPGNoYXNAaG9udG9uLm9yZz4gd3JvdGU6Cgo+IElzIGl0IHVzdWFsIHRvIG5lZWQgYWxsIGRvemVuIHJlcG9zaXRvcmllcyBvciBpcyBhIHNpbmdsZSByZXBvc2l0b3J5IChvciA9CmEKPiBoYW5kZnVsKSBtb3JlIGxpa2VseT8KPgo+IENoYXMKPgo+ID4gT24gT2N0IDcsIDIwMTcsIGF0IDE6MzIgUE0sIEFybmF1ZCBIPUMzPUE5cml0aWVyIDxhaGVyaXRpZXJAZ21haWwuY29tPiA9Cndyb3RlOgo+ID4KPiA+IEFGQUlSIHRoZSBtYWluIGNvbmNlcm4gd2FzIGZvciBkZXZlbG9wZXJzIHRvIGhhdmUgdG8gY2xvbmUgc2V2ZXJhbCBkb3plPQpuCj4gb2YKPiA+IHJlcG9zaXRvcmllcwo+ID4gSSBkb24ndCB0aGluayBpdCBpcyBhIHJlYWwgaXNzdWUuIFdlIGNhbiBzaGFyZSBhIHNjcmlwdCB0byBkbyBpdCBlYXNpbHkKPiA+Cj4gPgo+ID4+IE9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgMTA6MjYgUE0sIENoYXMgSG9udG9uIDxjaGFzQGhvbnRvbi5vcmc+IHdyb3RlOgo+ID4+Cj4gPj4gV2hhdCBhcmUgdGhlIGNvbmNlcm5zIHdpdGggc2VwYXJhdGUgZ2l0IHJlcG9zaXRvcnkgcGVyIGFydGlmYWN0PyAgSXMgaT0KdAo+ID4+IHRoZSBtb25vbGl0aGljIGJ1aWxkPwo+ID4+Cj4gPj4gQ2hhcwo+ID4+Cj4gPj4+IE9uIE9jdCA3LCAyMDE3LCBhdCAxOjIwIFBNLCBBcm5hdWQgSD1DMz1BOXJpdGllciA8YWhlcml0aWVyQGdtYWlsLmNvbT0KPgo+IHdyb3RlOgo+ID4+Pgo+ID4+PiArMQo+ID4+Pgo+ID4+Pj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCA3OjExIFBNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnI9CmVlLmZyPgo+ID4+IHdyb3RlOgo+ID4+Pj4KPiA+Pj4+IHdlIGNhbiBzdGFydCB3aXRoIG5hbWluZyB0aGUgZnV0dXJlIGdpdCByZXBvczogSSBzdXBwb3NlIGFkZGluZyBhCj4gdGFibGUKPiA+PiBhdAo+ID4+Pj4gdGhlCj4gPj4+PiBlbmQgb2YgdGhlIEdpdCBtaWdyYXRpb24gV2lraSBwYWdlIGNhbiBnaXZlIGEgZ29vZCB2aWV3IG9mIHRoZSByZXN1bD0KdAo+ID4+Pj4gKHdpdGggNzgKPiA+Pj4+IG5ldyByZXBvcyArIGV4aXN0aW5nIDcgcmVwb3MgKyB0aGUgNiBpbiBtaWdyYXRpb24gaWYgbm9ib2R5IG9iamVjdHMgPQo9M0QKPiA5MQo+ID4+Pj4gcmVwb3MpCj4gPj4+Pgo+ID4+Pj4gb25jZSB3ZSdyZSBhbGwgY29udmluY2VkIG9mIHRoZSB0YXJnZXQsIHdlJ2xsIHNlZSBob3cgdG8gd29yayB3aXRoCj4gaW5mcmEKPiA+Pj4+IGFuZCBJIHN1cHBvc2UgdGhleSBhbHJlYWR5IGhhdmUgdGhlIHJpZ2h0IGF1dGhvcnMgbGlzdCwgZ2l2ZW4gdGhlCj4gPj4gY3VycmVudAo+ID4+Pj4gbWlycm9ycyBhbHJlYWR5IHB1Ymxpc2hlZAo+ID4+Pj4KPiA+Pj4+IFJlZ2FyZHMsCj4gPj4+Pgo+ID4+Pj4gSGVydj1DMz1BOQo+ID4+Pj4KPiA+Pj4+IExlIHNhbWVkaSA3IG9jdG9icmUgMjAxNywgMTY6MDU6NDUgQ0VTVCBUaWJvciBEaWdhbmEgYSA9QzM9QTljcml0IDoKPiA+Pj4+PiBIZXJ2ZSwKPiA+Pj4+Pgo+ID4+Pj4+IEkgdGhpbmssIGZpcnN0IG9mIGFsbCwgd2Ugc2hvdWxkIHdyaXRlIGEgbGlzdCB3aXRoIGV4YWN0IG5hbWVzIG9mIGc9Cml0Cj4gPj4+Pj4gcmVwb3NpdG9yaWVzIGZvciB3aGljaCBJTkZSQSB3aWxsIGNyYXRlIHRoZW0gaW4KPiA+Pj4+PiBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZy9yZXBvcy9hc2YKPiA+Pj4+PiBhbmQgbWlycm9yIGluIGdpdGh1Yi5jb20vYXBhY2hlCj4gPj4+Pj4KPiA+Pj4+PiBBbmQgdGhlbiB0aGUgYXV0aG9ycy50eHQuCj4gPj4+Pj4KPiA+Pj4+PiBJbiBteSBjYXNlIEkgZGlkIG5vdCBtaWdyYXRlIHRhZ3MgYW5kIGJyYW5jaGVzIHdoaWNoIGlzIG15IHByb2JsZW0KPiA+PiBnaXZlbgo+ID4+Pj4gaW4KPiA+Pj4+PiBteSBleGFtcGxlIHdpdGggcHJldmlvdXMgZS1tYWlsLgo+ID4+Pj4+Cj4gPj4+Pj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCAzOjQ4IFBNLCBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcj0KZwo+ID4KPiA+Pj4+IHdyb3RlOgo+ID4+Pj4+PiBIZXJ2ZSwKPiA+Pj4+Pj4gSSB0aGluayBtYWtpbmcgdGhlIHRhZyBhcyBJIHdhbnRlZCB3b3VsZCBub3QgYmUgcG9zc2libGUgaW4gZ2l0Lgo+ID4+Pj4+Pgo+ID4+Pj4+PiBMZXQncyBtYWtlIGl0IHdpdGggYWxsIDc4IHByb2plY3RzLgo+ID4+Pj4+PiBJbiAyMDE2IEkgbWlncmF0ZWQgbXkgc3ZuIHByb2plY3QgImF1ZGl0IiBsb2NhdGVkIGluIHN1Yi1mb2xkZXIKPiBiZWhpbmQKPiA+Pj4+Pj4gdHJ1bmsgKHRydW5rL2xpYnMvYXVkaXQpIHRvIGdpdCB3aGljaCBpcyBleGFjdGx5IHdoYXQgd2UgbmVlZCB0byBkPQpvCj4gaW4KPiA+Pj4+Pj4gQVNGLgo+ID4+Pj4+Pgo+ID4+Pj4+PiBJbiBvdXIgY2FzZSB0aGUgY29tbWFuZHMgd291bGQgYmUgOTklIHRoZSBzYW1lLiBUaGUgMSUgaXMgdGhlIHNvdXI9CmNlCj4gPj4+PiBTVk4KPiA+Pj4+Pj4gVVJMIGFuZCB0YXJnZXQgR2l0SHViIFVSTC4gVGhhdCdzIGFsbC4gVGhlbiBpZiB3ZSBwcm92aWRlIElORlJBIHdpPQp0aAo+ID4+Pj4gYnVuY2gKPiA+Pj4+Pj4gb2YgY29tbWFuZHMgbGlrZSB0aGVzZSB0aGVuIHRoZXkgd2lsbCBvbmx5IGV4ZWN1dGUgdGhlbSB3aXRoIHRoZWlyCj4gPj4+Pj4+IHBlcm1pc3Npb25zLgo+ID4+Pj4+PiBJIGRvIG5vdCB0aGluayB0aGV5IHdpbGwgZ2l2ZSBtZSBhZG1pbiBwZXJtaXNzaW9ucyB0byBtYWtlIGl0Lgo+ID4+Pj4+Pgo+ID4+Pj4+PiBnaXQgc3ZuIGNsb25lIC0tbm8tbWV0YWRhdGEgLS1hdXRob3JzLWZpbGU9M0RFOlwqYXV0aG9ycy50eHQqIGh0dHA9CjovLwo+ID4+Pj4+PiAqKiovc3ZuLyoqKi8qdHJ1bmsvbGlicy9hdWRpdCBhdWRpdCoKPiA+Pj4+Pj4gZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLm5hbWUgIioqKiAqKioiCj4gPj4+Pj4+IGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5lbWFpbCAiKioqQCoqKi4qKioiCj4gPj4+Pj4+IGdpdCByZW1vdGUgYWRkIG9yaWdpbiBodHRwczovLyoqKkBnaXRodWIuY29tL2FwYWNoZS8KPiA+Pj4+ICptYXZlbi1jbGVhbi1wbHVnaW4qCj4gPj4+Pj4+IC5naXQKPiA+Pj4+Pj4gZ2l0IHB1c2ggLXUgb3JpZ2luIC0tYWxsCj4gPj4+Pj4+Cj4gPj4+Pj4+IEkgb2JzZXJ2ZWQgdGhlICphdXRob3JzLnR4dCogZnJvbSBjb21tYW5kCj4gPj4+Pj4+ICpzdm4gbG9nIC1xKgo+ID4+Pj4+PiBFYWNoIHBlcnNvbiBmcm9tIGJldHdlZW4gZmlyc3QgdHdvIHBpcGVzLCBlLmcuOgo+ID4+Pj4+PiByMTIzNDU2NyB8IHRpYm9yZGlnYW5hIHwgMjAxNS0xMC0xOSAwMjoyMDowMAo+ID4+Pj4+Pgo+ID4+Pj4+PiBFdmVyeSBkZXZlbG9wZXIgYWRkZWQgZS1tYWlsIGFuZCBmdWxsIG5hbWUsIGkuZS46Cj4gPj4+Pj4+IHRpYm9yZGlnYW5hID0zRCBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+Cj4gPj4+Pj4+IGV0Yy4KPiA+Pj4+Pj4KPiA+Pj4+Pj4gVGhpcyBsaXN0IG9mIHVzZXJzIHdoaWNoIHNob3VsZCBiZSBjcmVhdGVkIGluIHByaW9yIHRvIGNvbnRhY3QKPiBJTkZSQS4KPiA+Pj4+Pj4gTm90IGFsbCB1c2VycyBhcmUgYWN0aXZlIGFmdGVyIHllYXJzIGJ1dCBpdCB3b3VsZCBiZSBuaWNlIHRvIGluY2x1PQpkZQo+ID4+Pj4gdGhlbQo+ID4+Pj4+PiB0b28uCj4gPj4+Pj4+IFRoaXMgbGlzdCBvZiB1c2VycyBpcyBvbmUgdGhpbmcgd2hpY2ggY2Fubm90IGJlIGF1dG9tYXRlZCEKPiA+Pj4+Pj4KPiA+Pj4+Pj4KPiA+Pj4+Pj4KPiA+Pj4+Pj4KPiA+Pj4+Pj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCAyOjQ4IFBNLCBUaWJvciBEaWdhbmEgPAo+IHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+Cj4gPj4+Pj4+Cj4gPj4+Pj4+IHdyb3RlOgo+ID4+Pj4+Pj4gSW4gbXkgY29tcGFueSBJIGhhdmUgc3VjaCBzaXR1YXRpb24gaW4gU1ZOLiBNYWtpbmcgYSB0YWcgZnJvbQo+ID4+Pj4gc3ViZm9sZGVyLgo+ID4+Pj4+Pj4gR2l0IGFsd2F5cyBtYWtlcyB0aGUgdGFnIGZyb20gdGhlIHJvb3QsIHJpZ2h0Pwo+ID4+Pj4+Pj4gTGV0J3MgZ29vZ2xlIHNvbWV0aGluZy4uLgo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+IE9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgMjo0NyBQTSwgVGlib3IgRGlnYW5hIDwKPiA+Pj4+IHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbQo+ID4+Pj4+Pj4KPiA+Pj4+Pj4+PiB3cm90ZToKPiA+Pj4+Pj4+PiBJbiBteSBjb21wYW55IEkgaGF2ZSBzdWNoIHNpdHVhdGlvbi4KPiA+Pj4+Pj4+PiBNYWtpbmcgYSB0YWcgZnJvbSBzdWJmb2xkZXIuCj4gPj4+Pj4+Pj4gR2l0IGFsd2F5cyBtYWtlcyB0aGUgdGFnIGZyb20gdGhlIHJvb3QsIHJpZ2h0Pwo+ID4+Pj4+Pj4+IExldCdzIGdvb2dsZSBzb21ldGhpbmcuLi4KPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+IE9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgMjowNSBQTSwgSGVydj1DMz1BOSBCT1VURU1ZIDwKPiA+PiBoZXJ2ZS5ib3V0ZW15QGZyZWUuZnIKPiA+Pj4+Pgo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gd3JvdGU6Cj4gPj4+Pj4+Pj4+IHRoYW5rcyBmb3IgeW91ciBpbnRlcmVzdCBhbmQgZmVlZGJhY2sKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gTGUgc2FtZWRpIDcgb2N0b2JyZSAyMDE3LCAxMjowMDozMiBDRVNUIFRpYm9yIERpZ2FuYSBhID1DMz1BOWNyPQppdCA6Cj4gPj4+Pj4+Pj4+PiA3OCBpcyB0b28gbXVjaC4KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gbm90aWNlIHRoYXQgdGhlcmUgd291bGQgYWxzbyBiZSBhIHF1ZXN0aW9uIG9uIHRoZSBnaXQgcmVwb3MKPiBuYW1pbmcKPiA+Pj4+Pj4+Pj4gY29udmVudGlvbiwKPiA+Pj4+Pj4+Pj4gdG8gYXZvaWQgZmxhdCA3OCBuYW1lcyBidXQga2VlcCBhdCBsZWFzdCAzIG1lYW5pbmdmdWwgZ3JvdXBzCj4gPj4+PiAocGx1Z2lucywKPiA+Pj4+Pj4+Pj4gc2hhcmVkLAo+ID4+Pj4+Pj4+PiByZXNvdXJjZXM6IEkgdGhpbmsgdGhpcyBpcyBub3QgYWJzb2x1dGVseSBuZWNlc3NhcnkgZm9yCj4gPj4gZG94aWEtdG9vbHMpCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+PiBUaGVyZSBpcyBubyBwcm9ibGVtIHRvIHRyaWdnZXIgcmVsZWFzZSBvdmVyIHN1Yi1mb2xkZXJzIGFuZCB0YT0KZwo+IGl0Cj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IHdpdGgKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+IHByZWZpeCB3aGljaCBpcyBhbHJlYWR5IGRvbmUgaW4gU1ZOLgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBpcyBpdCBzdXBwb3J0ZWQgYnkgbWF2ZW4tcmVsZWFzZSBwbHVnaW4gd2l0aCBnaXQ/Cj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IG5vdGljZSBJIGRpZCBub3Qga25vdyB0aGF0IGdpdCB3YXMgYWJsZSB0byB0YWcgb25seSBhIHN1YnRyZWU6Cj4gYnV0Cj4gPj4gSQo+ID4+Pj4+Pj4+PiBrbmV3IEkKPiA+Pj4+Pj4+Pj4gZG9uJ3QgeWV0IHVuZGVyc3RhbmQgZXZlcnkgYXNwZWN0IG9mIGdpdCBtYWdpYy4uLiA6KQo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4gVGhlIENJIGJ1aWxkIGNhbiBhbHdheXMgdHJpZ2dlciB0aGUgcm9vdCBhbmQgSmVua2luc2ZpbGUgd291bGQKPiA+Pj4+IGhhdmUKPiA+Pj4+Pj4+Pj4+IDQxCj4gPj4+Pj4+Pj4+PiBzdGFnZXMgZm9yIHBsdWdpbnMsIDI2IHN0YWdlcyBmb3IgU2hhcmVkLCBldGMuCj4gPj4+Pj4+Pj4+PiBJdCBjYW4gYmUgZG9uZSBpbiBKZW5raW5zZmlsZSBhbmQgc28gdGhlIHNoZWxsIHdvdWxkIG5vdCB0aHJvdwo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBleGNlcHRpb24KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+IGJ1dCBzdGF0dXMgd291bGQgYmUgc2V0IGluc3RlYWQgYW5kIGdvZXMgdG8gdGhlIG5leHQgc3RhZ2UuCj4gPj4+Pj4+Pj4+PiBJIGRvIG5vdCBrbm93IGhvdyB0byBkZXRlY3QgaW4gR2l0U0NNIHdoaWNoIHN1Yi1mb2xkZXIocykKPiByZWNlaXZlZAo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBidXQgSQo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4gZ3Vlc3MgdGhpcyBjYW4gYmUgaW52ZXN0aWdhdGVkLgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiArMQo+ID4+Pj4+Pj4+PiBidXQgSSBkb24ndCBrbm93IHdoZXJlIHRvIGxvb2sgZm9yIG15c2VsZjogb24gdGhhdCBwb2ludCwgSSBob3A9CmUKPiB0bwo+ID4+Pj4+Pj4+PiBoYXZlIHNvbWUKPiA+Pj4+Pj4+Pj4gaGVscCBmcm9tIEplbmtpbnNmaWxlIGV4cGVydHMKPiA+Pj4+Pj4+Pj4gYW5kIGV2ZW50dWFsbHkgc3RhcnQgd2l0aCBzdm4sIHRvIGhhdmUgc29tZXRoaW5nIGJlZm9yZSB0aGUgZ2l0Cj4gPj4+Pj4+Pj4+IG1pZ3JhdGlvbgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4gVGhlbiBpdCBjYW4gYmUgYSBraW5kIG9mIHN3aXRjaC1jYXNlIG92ZXIgY29tbWl0dGVkIGZvbGRlcnMgaW4KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gSmVua2luc2ZpbGUuCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+PiBUaGlzIG1lYW5zIHRoYXQgZXZlcnkgdGltZSBhbm90aGVyIHN0YWdlL3N1Yi1mb2xkZXIgaXMgc2hvd24gaT0Kbgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBQaXBlbGluZQo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4gd2hpY2ggd2lsbCBiZSBtZXNzeSBpbiB0aGUgVUkuIDooCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IG5vdGljZSB0aGF0IHdlIGNhbiBwZXJoYXBzIHNwbGl0IHRoZSByZXBvcyBpbiBsZXNzIHBhcnRzIHRoYW4gdz0KZQo+ID4+Pj4gaGF2ZQo+ID4+Pj4+Pj4+PiBjb21wb25lbnRzOiBvbiBwbHVnaW5zLCBmb3IgZXhhbXBsZSwgd2UgYWxyZWFkeSBoYXZlIDQgY2F0ZWdvcmk9CmVzCj4gPj4+PiBbMV0KPiA+Pj4+Pj4+Pj4gd2hpY2gKPiA+Pj4+Pj4+Pj4gd291bGQgYXZvaWQgMSByZXBvIHdpdGggNDEgcGx1Z2lucywgYnV0IG1vcmUgc29tZXRoaW5nIGxpa2UKPiA+Pj4+IDYrMTArMTArMTUKPiA+Pj4+Pj4+Pj4gSSBzdXBwb3NlIHdlIGNvdWxkIGRvIHRoZSBzYW1lIGZvciBzaGFyZWQgKHJlcG9ydGluZyBmb2xkZXIgY29tPQplcwo+ID4+Pj4gdG8gbXkKPiA+Pj4+Pj4+Pj4gbWluZCkKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gVGhlIGtleSBmZWFzaWJpbGl0eSBpc3N1ZSBpcyB0aGUgY2FwYWNpdHkgdG8gcmVsZWFzZSBhCj4gPj4gc3ViLWNvbXBvbmVudAo+ID4+Pj4+Pj4+PiBmcm9tIGdpdAo+ID4+Pj4+Pj4+PiB3aXRoIG1hdmVuLXJlbGVhc2UtcGx1Z2luLCBJTUhPCj4gPj4+Pj4+Pj4+ICh0YWtpbmcgYXBhcnQgdGhlIGdpdCBwdXJpc3RzIGlkZWEgb2YgMSBsaWZlY3ljbGUgPTNEIDEgZ2l0IHJlcD0KbykKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gUmVnYXJkcywKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gSGVydj1DMz1BOQo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBbMV0gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy8KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+IE9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgNDoxNyBBTSwgSGVydj1DMz1BOSBCT1VURU1ZIDwKPiA+Pj4+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gd3JvdGU6Cj4gPj4+Pj4+Pj4+Pj4gVGhlcmUgYXJlIDYgc3ZuIGxvY2F0aW9ucyB3aXRob3V0IGFueSBzcGVjaWFsIGNvbXBsZXhpdHkgdGhhdAo+ID4+Pj4gYXJlCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IHdhaXRpbmcKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBmb3IKPiA+Pj4+Pj4+Pj4+PiBhIHZvbHVudGVlciBmb3IgZ2l0IG1pZ3JhdGlvbiBmb3IgYSBmZXcgeWVhcnMgYnV0IG5vYm9keSBkb2VzCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IGFueXRoaW5nCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gYWJvdXQ6Cj4gPj4+Pj4+Pj4+Pj4gSSBzdGFydGVkIDMgZGF5cyBhZ28gdG8gYXNrIGZvciBoZWxwIGFib3V0IGl0IGFuZCBnb3QgcHJldHR5ID0Kbm8KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gZmVlZGJhY2sKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBbMV0KPiA+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IHRoZW4gdGhlcmUgYXJlIHRoZSA0IGNvbXBsZXggc3ZuIGxvY2F0aW9ucyAocGx1Z2lucywgc2hhcmVkLAo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiByZXNvdXJjZXMsCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gZG94aWEtCj4gPj4+Pj4+Pj4+Pj4gdG9vbHMpIHRoYXQgcmVxdWlyZSBtdWNoIG1vcmUgd29yazogSSBzdXBwb3NlIHdlIGNhbid0IHRlbGwgZz0KaXQKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gbWlncmF0aW9uCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gaXMKPiA+Pj4+Pj4+Pj4+PiBhYmFuZG9uZWQsIGJ1dCBpdCB3aWxsIHJlcXVpcmUgc29tZW9uZSB0byB3b3JrIG9uIGl0IHNlcmlvdXNsPQp5Cj4gPj4+Pj4+Pj4+Pj4gUmVtZW1iZXIgdGhhdCB0aGUga2V5IHF1ZXN0aW9uIFsyXSBpczogZG8gd2UgdHJhbnNmb3JtIHRoZXNlID0KNAo+ID4+Pj4gc3ZuCj4gPj4+Pj4+Pj4+Pj4gbG9jYXRpb25zCj4gPj4+Pj4+Pj4+Pj4gaW50byA0MSArMjYgKyA2ICsgNSA9M0QgNzggaW5kZXBlbmRlbnQgZ2l0IHJlcG9zPwo+ID4+Pj4+Pj4+Pj4+IFllcywgSSB0b2xkIHRoYXQgSmVua2lucyBjb25maWd1cmF0aW9uIGlzIG9uZSBrZXkgYXNwZWN0IHdlCj4gPj4+PiBuZWVkIGEKPiA+Pj4+Pj4+Pj4+PiBzdHJhdGVneQo+ID4+Pj4+Pj4+Pj4+IGFib3V0LCBpbiBwYXJhbGxlbCB3aXRoIGdpdCBzdHJhdGVneS4KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiB0aGVuIHRoZXJlIHdpbGwgYmUgdGhlIHJlbWFpbmluZyBjYXNlcyB3aGVyZSB3ZSBuZWVkIHRvIGRlY2lkPQplOgo+ID4+Pj4+Pj4+PiBsb3dlcgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IGltcGFjdCwKPiA+Pj4+Pj4+Pj4+PiBsb3dlciBwcmlvcml0eS4KPiA+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gU3VtbWFyeTogbm90aGluZyBpcyBhYmFuZG9uZWQsIGJ1dDoKPiA+Pj4+Pj4+Pj4+PiAtIHNpbXBsZSBjYXNlczogbm8gdm9sdW50ZWVyIHRvIGRvIHRoZSBqb2IKPiA+Pj4+Pj4+Pj4+PiAtIGhhcmQgY2FzZXM6IGlzIHRoZXJlIGEgdm9sdW50ZWVyIGVpdGhlciB0byBkZWZpbmUgYSBzdHJhdGVnPQp5Cj4gPj4+PiBvcgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBkbyBzb21lCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gd29yawo+ID4+Pj4+Pj4+Pj4+IG9uIGl0Pwo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBSZWdhcmRzLAo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gSGVydj1DMz1BOQo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gWzFdIGh0dHBzOi8vbGlzdHMuYXBhY2hlLm9yZy90aHJlYWQuaHRtbC8KPiA+Pj4+Pj4+Pj4+PiBlZGYzNjQyYTdiZGQ1MTVmMGNhZDQyMWMyNTU4OTc0MTgxOTQ0NjQ2MzYxNGJmMDUxNWU1NmRiZUAKPiA+Pj4+Pj4+Pj4+PiAlM0NkZXYubWF2ZW4uYXBhY2hlLm9yZyUzRQo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gWzJdIGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvTUFWRU4vR2l0Cj4gPj4+Pj4+Pj4+Pj4gK01pZ3JhdGlvbiNHaXRNaWdyYXRpb24tTWlncmF0aW5nYW5hZ2dyZWdhdG9ydHJlZWludG9hY29sbGVjCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IHRpb25vZmdpdHJlcG9zCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gTGUgdmVuZHJlZGkgNiBvY3RvYnJlIDIwMTcsIDIwOjM1OjQ1IENFU1QgQXJuYXVkIEg9QzM9QTlyaXRpZT0KciBhCj4gPj4+PiA9QzM9QTljcml0IDoKPiA+Pj4+Pj4+Pj4+Pj4gQnV0IGRpZCB3ZSBjb21wbGV0ZWx5IGFiYW5kb25lZCB0aGUgaWRlYSBvZiBtb3ZpbmcgZXZlcnl0aGluPQpnCj4gPj4+PiB0bwo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBnaXQgPwo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+PiBUaGUgQ0kgc2V0dXAgd2FzIHRoZSBtYWluIHN0b3AgZm9yIGl0ID8KPiA+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4gT24gRnJpLCBPY3QgNiwgMjAxNyBhdCA4OjA1IFBNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gd3JvdGU6Cj4gPj4+Pj4+Pj4+Pj4+PiBJIHdhcyBleHBlY3RpbmcgdGhlIHVzdWFsIGxpdGFueQo+ID4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+IHdoYXQgSSdtIG5vdCBjb25maWRlbnQgY3VycmVudGx5IHdpdGggcGlwZWxpbmUgb24gTWF2ZW4KPiA+Pj4+IGNvcmUgaXMKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gdGhhdAo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4gd2UKPiA+Pj4+Pj4+Pj4+Pj4+IGhhdmUKPiA+Pj4+Pj4+Pj4+Pj4+IGZvciBleGFtcGxlIHRoZSAibWF2ZW4tMy54LWplbmtpbnNmaWxlL01ORy02MjQyIC0gYnVpbGQgIzEKPiA+Pj4+IC0KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gbnVsbCIKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+IG1lc3NhZ2UsCj4gPj4+Pj4+Pj4+Pj4+PiB3aXRoIHRoaXMgIm51bGwiIHBhcnQgdGhhdCBtYWtlcyBtZSB3b25kZXIgaWYgd2UgYXJlIHVzaW5nCj4gPj4+PiBpdAo+ID4+Pj4+Pj4+Pj4+Pj4gYXMKPiA+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IGV4cGVjdGVkLgo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiBBbmQgZm9yIGxhcmdlIG11bHRpLW1vZHVsZSBzdm4gdHJ1bmtzICh0aGUgb25lcyB3ZSBkb24ndAo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBtaWdyYXRlIHRvCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gZ2l0Ogo+ID4+Pj4+Pj4+Pj4+Pj4gbWFpbmx5IHBsdWdpbnMgYW5kIHNoYXJlZCksIGlzIHRoZXJlIGEgc29sdXRpb24gdG8gcmVidWlsZAo+ID4+Pj4ganVzdAo+ID4+Pj4+Pj4+Pj4+Pj4gY2hhbmdlZAo+ID4+Pj4+Pj4+Pj4+Pj4gbW9kdWxlcz8KPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiBpZGVhbGx5LCB0aGUgcmVidWlsZCB3aGVuIGEgU05BUFNIT1QgZGVwZW5kZW5jeSBpcyBwdWJsaXNoZT0KZAo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiB3b3VsZAo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4gaGF2ZQo+ID4+Pj4+Pj4+Pj4+Pj4gYmVlbiBhCj4gPj4+Pj4+Pj4+Pj4+PiBwbHVzLCBidXQgdGhpcyBpcyBzdWZmaWNpZW50bHkgYSByYXJlIHVzZSB0aGF0IEkgd29uJ3QgYmUKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gZXh0cmVtaXN0Cj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiBUaGVuIElJVUMsIHRoaXMgbWlncmF0aW9uIGpvYiBpcyBvbmUgYWRkaXRpb25hbCBUT0RPIGZvcgo+ID4+Pj4gbWUuLi4KPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiBSZWdhcmRzLAo+ID4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+IEhlcnY9QzM9QTkKPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiBMZSB2ZW5kcmVkaSA2IG9jdG9icmUgMjAxNywgMTc6NDY6NTMgQ0VTVCBBcm5hdWQgSD1DMz1BOXJpdD0KaWVyIGEKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gPUMzPUE5Y3JpdCA6Cj4gPj4+Pj4+Pj4+Pj4+Pj4gSSBhZ3JlZSB0aGF0IHdlIHNob3VsZCB1c2UgcGlwZWxpbmUgbm93ZGF5cwo+ID4+Pj4+Pj4+Pj4+Pj4+IHBlcmhhcHMgYSBzaGFyZWQgbGliIGlmIHdlIHdhbnQgdG8gc3RhbmRhcmRpemUgc29tZSBzdHVmZnMKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gYW5kIGEgc2V0Cj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gb2YKPiA+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+IG11bHRpLWJyYW5jaGVzIGpvYnMgKG9yIG9yZyBmb2xkZXIgYnV0IGl0IHJlcXVpcmVzIEdpdEh1Ygo+ID4+Pj4gOigKPiA+Pj4+Pj4+Pj4+Pj4+PiApCj4gPj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+PiBPbiBGcmksIE9jdCA2LCAyMDE3IGF0IDk6MTYgQU0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPj4+Pj4+Pj4+Pj4+Pj4+IE9uIEZyaSA2IE9jdCAyMDE3IGF0IDA2OjMyLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiB3cm90ZToKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IEkganVzdCBmaXhlZCBhIGZldyBmYWlsaW5nIGpvYnMgWzFdIHRvIGhhdmUgYWdhaW4gYQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gdXNhYmxlCj4gPj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+PiBKZW5raW5zLgo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBOb3cgSSdtIGZhY2luZyBzb21lIGlzc3VlcywgSSBzdXBwb3NlIGNhdXNlZCBieSBuZXdlcgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBKZW5raW5zCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiB2ZXJzaW9uczoKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IC0gTWF2ZW4gMy4wLjUgY2F1c2VzIE5vU3VjaE1ldGhvZEVycm9yOgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gby5jLnBsZXh1cy51dGlsLnhtbC5wdWxsLgo+ID4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+PiBNWFBhcnNlcgo+ID4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gWzJdCj4gPj4+Pj4+Pj4+Pj4+Pj4+PiAtIEkgaGFkIHRvIHN3aXRjaCB0byBKREsgOCBmb3IgbWF2ZW4tcGx1Z2luLXRvb2xzIGpvYiwKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gc2luY2UgSkRLCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiBjYXVzZXMKPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBmYWlsdXJlcyAobG9va3MgbGlrZSBKZW5raW5zIHVzZXMgYSBoYWNrIHRvIGluamVjdAo+ID4+Pj4gSkRLIDcKPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gYXMgYQo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IHRvb2wKPiA+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4gd2hpbGUKPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+PiB0aGUKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IGJ1aWxkIEpWTSBpcyBKYXZhIDgpCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gU2hvdWxkIHdlIGRyb3AgTWF2ZW4gMy4wLjUgYnVpbGRzIGFuZCBKREsgNz8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IE5vdGljZSBJIGRpZG4ndCBjaGVjayB3aGljaCBpcyB0aGUgbWluaW11bSBNYXZlbgo+ID4+Pj4gdmVyc2lvbgo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gcmVxdWlyZWQuLi4KPiA+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gT3IgcGVyaGFwcyBzaW1wbHkgZG9uJ3QgdXNlIHRoZSBKZW5raW5zIE1hdmVuIHBsdWdpbgo+ID4+Pj4gd2l0aAo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiB0aGlzCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gTWF2ZW4KPiA+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+PiAzLjAuNQo+ID4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gb3IKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IEpESyA3IGNvbmZpZ3VyYXRpb246IGRlZmF1bHQgYnVpbGQgYXMgSmVua2lucyBNYXZlbgo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBwbHVnaW4gd2l0aAo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IEpESwo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiA4ICsKPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBsYXRlc3QKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IE1hdmVuLCBhbmQgb3RoZXIgY29uZmlndXJhdGlvbnMgYXMgc2NyaXB0ZWQgam9icz8KPiA+Pj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4gaHR0cDovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuCj4gPj4+PiBpZS8yMDEzLzExL2plbmtpbnMtbWF2ZW4tam9iLT4gPj4+PiA+ID4gPiA+ID4gPiA+Cj4gPj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4gdHlwZS1jb25zaWRlcmVkLWV2aWwuaHRtbAo+ID4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4gPGh0dHA6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90LmllLzIwMTMvMTEvamVua2lucy0+ID4KPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiBtYXZlbi1qb2ItdHlwZS1jb25zaWRlcmVkLWV2aWwuaHRtbD9tPTNEMT4KPiA+Pj4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+IFdlIHNob3VsZCBzdG9wIHVzaW5nIHRoZSBldmlsIGpvYiB0eXBlIGFzIGl0PUUyPTgwPTk5cyBtaT0KbmltdW0KPiA+Pj4+IEphdmEKPiA+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IHZlcnNpb24gaXMKPiA+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+PiBkaWN0YXRlZCBieSBKZW5raW5zPUUyPTgwPTk5IEphdmEgbWluaW11bS4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IFdlIG5lZWQgdG8gZGVmaW5lIG91ciBjb21tb24gc3RyYXRlZ3kgYW5kIGhhdmUgYQo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiBjb25zaXN0ZW50Cj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBjb25maWd1cmF0aW9uCj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBmb3IKPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IGV2ZXJ5IGpvYiB1bmRlcnN0b29kIGJ5IGV2ZXJ5Ym9keQo+ID4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+PiBJIHJlY29tbWVuZCBKZW5raW5zZmlsZSBhbmQgdGhlIGB3aXRoTWF2ZW5gIHdyYXBwZXIKPiA+Pj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IFJlZ2FyZHMsCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gSGVydj1DMz1BOQo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4+IFsxXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vCj4gPj4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gWzJdCj4gPj4+Pj4+Pj4+Pj4+Pj4+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnLwo+ID4+Pj4gdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tPgo+ID4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+PiBwbHVnaW4tdG9vbHMtamRrLTEuNy8xNjIvY29uc29sZQo+ID4+Pj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4gLS0tLS0tLS0tCj4gPj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS4KPiA+Pj4+IG9yZwo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDoKPiA+Pj4+Pj4+Pj4gZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4+Pj4gLS0KPiA+Pj4+Pj4+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4+Pj4+Pj4gU2VudCBmcm9tIG15IHBob25lCj4gPj4+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+Pj4+Pj4+Pj4KPiA+Pj4+Pj4+Pj4gLS0tLS0tLS0tCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Pj4+Pj4+Pj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+IC0tLS0tLS0tLQo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4+Pj4+Pj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+Pj4+IC0tLS0tLS0tLQo+ID4+Pj4+Pj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Pj4+Pj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4+Pj4+Pj4KPiA+Pj4+Pj4+PiAtLQo+ID4+Pj4+Pj4+IENoZWVycwo+ID4+Pj4+Pj4+IFRpYm9yCj4gPj4+Pgo+ID4+Pj4KPiA+Pj4+Cj4gPj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLQo+ID4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4+Cj4gPj4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAtLQo+ID4+PiAtLS0tLQo+ID4+PiBBcm5hdWQgSD1DMz1BOXJpdGllcgo+ID4+PiBodHRwOi8vYWhlcml0aWVyLm5ldAo+ID4+PiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+ID4+PiBUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyCj4gPj4KPiA+Pgo+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Cj4gPj4KPiA+Cj4gPgo+ID4gLS0KPiA+IC0tLS0tCj4gPiBBcm5hdWQgSD1DMz1BOXJpdGllcgo+ID4gaHR0cDovL2FoZXJpdGllci5uZXQKPiA+IE1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tCj4gPiBUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyCj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCi0tMDAxYTExNGRkODFjZjRkZDFiMDU1YWZjMWI3YS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MTgyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBPY3QgIDcgMjI6Mzg6NTcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTgyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEVFMDhFMTA4RDMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgNyBPY3QgMjAxNyAyMjozODo1NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ3MTA4IGludm9rZWQgYnkgdWlkIDUwMCk7IDcgT2N0IDIwMTcgMjI6Mzg6NTcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ3MDI5IGludm9rZWQgYnkgdWlkIDUwMCk7IDcgT2N0IDIwMTcgMjI6Mzg6NTcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0NzAxNyBpbnZva2VkIGJ5IHVpZCA5OSk7IDcgT2N0IDIwMTcgMjI6Mzg6NTcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA3IE9jdCAyMDE3IDIyOjM4OjU3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgN0ZFODhDQTg5NgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMjI6Mzg6NTYgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjM3OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjM3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nb29nbGVtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgSXpJSDJzTUNvYmVxIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAgNyBPY3QgMjAxNyAyMjozODo1NSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXF0MC1mMTc3Lmdvb2dsZS5jb20gKG1haWwtcXQwLWYxNzcuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNi4xNzddKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMzlBMDM1RjNDRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMjI6Mzg6NTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtcXQwLWYxNzcuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgMzRzbzIwMjQ0MDA4cXRiLjEzCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMDcgT2N0IDIwMTcgMTU6Mzg6NTQgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdvb2dsZW1haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1zSm9RK1dBdkxzQ3U5QWxIUDlXTU9jaHIrTEVNbWRGNjN5UTUrbnM2K1ZJPTsKICAgICAgICBiPUgvc1ZWQnR1QWZXb1ZhVFNSQ3BucEV6UXJlbjJwZnNMaUIvblZjekRUVURtZ0FMSDl3cUN0ME1Nci80VHp2WHJRTwogICAgICAgICBpRDhkM0toODFQVVpoUFNya3VrbE9VSlFweXg0c1pUR3ZOZlBRVS91MHh1QTNlVXJKWmgvV0pPalZqQUdKOUNGdGFWKwogICAgICAgICBlS2pZRmF1OEgwVU5jeDFtaVBGemQvMlJ2R2l4YWlpSTF5V1Vob0d5TFdlNFhjMjA4WXA0MUtEOVp4NE92QXNiakM2TgogICAgICAgICBRNWQ4UHBUWllxY1FWWmxRVEhuMURFR3ZXMjMwcFl6M1NvY2ozZFhXZ3EydWtDVDRpaXA4NXpObiswd1FwT01Lc2h6SAogICAgICAgICArLzJXVHlpdXpaRkxDQjl3UTdQa2R0eGJNWmJRNVU0ZW1nKzhIK2QxKytuOEpLb3RuVE9mRU1kTVpFejRIS0NpbFFSeAogICAgICAgICBGOE53PT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1zSm9RK1dBdkxzQ3U5QWxIUDlXTU9jaHIrTEVNbWRGNjN5UTUrbnM2K1ZJPTsKICAgICAgICBiPXVCYWV5cjNaYld3bGJmTHBmNjJXQnlDTzI2ZDVyQlhTd2tDRFdWZFJKUHBzaGs1M0gxS29HRlhsMk5qeEhPRHdKUgogICAgICAgICAxd2Zqcitwekhhc1IrWkpyR2I2UzEvL1NwYjMydkpCUVVGK0xrZEQ4OHBnMVVqV0JJaUh5cHZyMXRicitjUDhNYjZzSQogICAgICAgICBUV2tQNmFMbWMwbWVKOW41YnZuYmlzckpvbzhIYmRWdkxCUk9RY0ZlcHhselZXbUU1ZjAyK1QzUWs4QWZ5UVVyRkRjbwogICAgICAgICB2MVdlSVlyYXAvT2tlQmhIclQ0YlE2Y0pFQWNhSzFSVE02VzBhR0FhN1dibnpsd0dzUjI2WVJLYW5UWEtoNm0rUkE3UgogICAgICAgICBEM2c5ZDIvVXJ3c2YzOXgyb2x0cTlMRFdyZWJzem1rZlJWMTRJSFZDT3Rxb040dlhaZjhEeEV6eWV1ZEliQ2lYWXZuYQogICAgICAgICBZdWVnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FVemFSR0ZCVlp4SkhFa2xDSWZGSU1pTnpKM2VCY2E2R0VWZTgvRUt3Q0l0TUhib0lzaAoJSlBZUzJWbVpIYmFrMjlIZElyUzRBU1QrUWF2VUo1NEcycGRHanAvUEl3PT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUNlelBjV21mZEhpQzVPbFFQekYyY1lOVUF3Tm5xcUtKZWZtTnk2bGVXV0Q5YW9LcS9IR0xlNFBtMUoxbVBUK3JMNy9LTWM3OGUwd2I2ZEhwRVFyNzg9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjM3LjY4LjY2IHdpdGggU01UUCBpZCByNjNtcjUwMzQ2OTN5YmEuMTA3LjE1MDc0MTU5MzI5OTk7CiBTYXQsIDA3IE9jdCAyMDE3IDE1OjM4OjUyIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xMjkuMTkzLjY3IHdpdGggSFRUUDsgU2F0LCA3IE9jdCAyMDE3IDE1OjM4OjUyIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0FGTkNVLThiRFg3R2dFPU9xdlRINi1DSmJSWkc3bVFqQXNYOTBlRXBoQmZITVhUUlNBQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8MzAwNjQ3MS5HclNGalNKakdYQGdpZ2E+IDwxNzkxMzc4LjhrMDJhVUozcnBAZ2lnYT4KIDwxNzMzMDc5LmZCSm96Z2w1dllAZ2lnYT4gPDE2MDA5MTAuR3RkdnhNMUs5MUBnaWdhPiA8Q0FGTkNVLThiRFg3R2dFPU9xdlRINi1DSmJSWkc3bVFqQXNYOTBlRXBoQmZITVhUUlNBQG1haWwuZ21haWwuY29tPgpGcm9tOiBUaWJvciBEaWdhbmEgPHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbT4KRGF0ZTogU3VuLCA4IE9jdCAyMDE3IDAwOjM4OjUyICswMjAwCk1lc3NhZ2UtSUQ6IDxDQUt1VnpCVDJfZWdHNEd0OVdKdkRONEMxQXAtUFlKY21RUXJPLXE2QjlXQjZOOFJ4b2dAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBtaWdyYXRpbmcgc29tZSBjb2RlIHRvIEdpdApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTEzZjQ5ODYzNzFlMzEwNTVhZmM5Zjk5IgoKLS0wMDFhMTEzZjQ5ODYzNzFlMzEwNTVhZmM5Zjk5CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCisxIHRvIGNyZWF0ZSBJTkZSQSBqaXJhIGlzc3VlIHRvIHN3aXRjaCBmb2xsb3dpbmcgNgpjb21wb25lbnRzIGZyb20gc3ZuIHRvIHRoZSBjdXJyZW50IGdpdCBtaXJyb3I6Ci0gRG94aWEgY29yZQotIERveGlhIFNpdGV0b29scwotIEVuZm9yY2VyCi0gSnhyCi0gUGx1Z2luIFRvb2xzCi0gUmVsZWFzZQoKT24gU2F0LCBPY3QgNywgMjAxNyBhdCAxMDozNSBQTSwgQXJuYXVkIEg9QzM9QTlyaXRpZXIgPGFoZXJpdGllckBnbWFpbC5jb20+Cndyb3RlOgoKPiArMQo+Cj4gQ2FuIHlvdSBzaGFyZSB0aGUgc2NyaXB0ID8KPgo+IE9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgMTI6MzIgUE0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmY9CnI+Cj4gd3JvdGU6Cj4KPiA+IEkgd3JvdGUgYSBsaXR0bGUgc2hlbGwgc2NyaXB0IHRvIGNoZWNrIGRpZmZlcmVuY2VzIGJldHdlZW4gdGFncyBpbiBzdm4KPiBhbmQKPiA+IGdpdAo+ID4gY2hlY2tvdXQKPiA+IHRoZSBvbmx5IGRpZmZlcmVuY2VzIEkgZm91bmQgZm9yIHRoZSA2IGdpdCByZXBvcyBhcmU6Cj4gPiAxLiBlbXB0eSBkaXJzICh3aGljaCBleGlzdCBpbiBzdm4gYnV0IGFyZSBwcnVuZWQgaW4gZ2l0KQo+ID4gMi4gb25lIHN0cmFnZSBjYXNlIGluIGVuZm9yY2VyLTEuMiB3aGVyZSBhIGZldyBmaWxlcyBzZWVtIHRvIGhhdmUKPiBuZXdsaW5lcwo+ID4gaXNzdWVzCj4gPgo+ID4gdG8gbWUsIHRoaXMgY2FuIGJlIHNhZmVseSBpZ25vcmVkCj4gPgo+ID4gaWYgbm9ib2R5IG9iamVjdHMsIGluIDcyaCwgSSdsbCBjcmVhdGUgSU5GUkEgamlyYSBpc3N1ZSB0byBzd2l0Y2gKPiA+IGZvbGxvd2luZyA2Cj4gPiBjb21wb25lbnRzIGZyb20gc3ZuIHRvIHRoZSBjdXJyZW50IGdpdCBtaXJyb3I6Cj4gPiAtIERveGlhIGNvcmUKPiA+IC0gRG94aWEgU2l0ZXRvb2xzCj4gPiAtIEVuZm9yY2VyCj4gPiAtIEp4cgo+ID4gLSBQbHVnaW4gVG9vbHMKPiA+IC0gUmVsZWFzZQo+ID4KPiA+Cj4gPiBSZWdhcmRzLAo+ID4KPiA+IEhlcnY9QzM9QTkKPiA+Cj4gPiBMZSBzYW1lZGkgNyBvY3RvYnJlIDIwMTcsIDA0OjQ3OjMyIENFU1QgSGVydj1DMz1BOSBCT1VURU1ZIGEgPUMzPUE5Y3JpdD0KIDoKPiA+ID4gcmUtcmVhZGluZyBvdXIgbWlncmF0aW9uIHByb2Nlc3MgZG9jdW1lbnRhdGlvbiBbMV0sIEkgc2VlICJjaGVjawo+ID4gZXNwZWNpYWxseQo+ID4gPiBiZWhhdmlvdXIgb24gY2hlY2tpbmcgb3V0IHRhZyIKPiA+ID4KPiA+ID4gSSBzdXBwb3NlIHRoYXQgd2UgY291bGQgY29tcGFyZSBjb250ZW50IGJldHdlZW4gZ2l0IGNoZWNrb3V0IGFuZCBzdm4KPiA+ID4gY2hlY2tvdXQgZm9yIEhFQUQgYW5kIGV2ZXJ5IHBhc3QgcmVsZWFzZQo+ID4gPgo+ID4gPiBkaWQgc29tZWJvZHkgcHJlcGFyZSBhIHNoZWxsIHNjcmlwdCBmb3IgdGhhdD8KPiA+ID4KPiA+ID4gUmVnYXJkcywKPiA+ID4KPiA+ID4gSGVydj1DMz1BOQo+ID4gPgo+ID4gPiBbMV0gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9HaXQKPiA+ID4gK01pZ3JhdGlvbiNHaXRNaWdyYXRpb24tTWlncmF0aW9ucHJvY2Vzc2Rlc2NyaXB0aW9uCj4gPiA+Cj4gPiA+IExlIHZlbmRyZWRpIDYgb2N0b2JyZSAyMDE3LCAwMDozNDoxMSBDRVNUIEhlcnY9QzM9QTkgQk9VVEVNWSBhID1DMz1BOT0KY3JpdCA6Cj4gPiA+ID4gZ3JlYXQsIHRoYW5rIHlvdSBmb3IgeW91ciBoZWxwCj4gPiA+ID4KPiA+ID4gPiBpbiBmYWN0LCBBRkFJSywgQXBhY2hlIGhhcyBhbHJlYWR5IGF1dG9tYXRpYyBzdm4yZ2l0IGV4cG9ydHMgWzFdIHRoPQphdAo+ID4gYXJlCj4gPiA+ID4gdGhlbiBtaXJyb3JlZCB0byBnaXRodWIuCj4gPiA+ID4gVGhlbiB3ZSBhbHJlYWR5IGhhdmU6Cj4gPiA+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRveGlhLwo+ID4gPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1kb3hpYS1zaXRldG9vbHMvCj4gPiA+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWVuZm9yY2VyLwo+ID4gPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1qeHIvCj4gPiA+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbi10b29scy8KPiA+ID4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcmVsZWFzZS8KPiA+ID4gPgo+ID4gPiA+IEkgc3VwcG9zZSB0aGVzZSBjb3VsZCBiZSB0aGUgbmF0dXJhbCB0YXJnZXRzLgo+ID4gPiA+IEJ1dCBJIGRvbid0IHJlYWxseSBzZWUgd2hhdCBjaGVja3MgdG8gZG8gb24gdGhlc2UuCj4gPiA+ID4KPiA+ID4gPiBJIHN1cHBvc2UgdGhhdCBvbmNlIHdlIGFyZSBjb252aW5jZWQgdGhpcyBjb250ZW50IGlzIG9rLCB3ZSBjYW4gYXNrCj4gPiBpbmZyYQo+ID4gPiA+IHRvIHN3aXRjaCB0aGVzZSB0byB0aGUgY2Fub25pY2FsIHNvdXJjZSAoYW5kIGRpc2FibGUgdGhlIHN2bjJnaXQKPiA+IGV4cG9ydHMpCj4gPiA+ID4KPiA+ID4gPiBEbyB5b3Ugc2VlIGFueSBpc3N1ZSBpbiB0aGVzZSByZXBvcz8KPiA+ID4gPgo+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4KPiA+ID4gPiBIZXJ2PUMzPUE5Cj4gPiA+ID4KPiA+ID4gPiBbMV0gaHR0cDovL2dpdC5hcGFjaGUub3JnLwo+ID4gPiA+Cj4gPiA+ID4gTGUgamV1ZGkgNSBvY3RvYnJlIDIwMTcsIDExOjQ1OjIzIENFU1QgRGVqYW4gU3RvamFkaW5vdmljIGEgPUMzPUE5Yz0Kcml0IDoKPiA+ID4gPiA+IENvdW50IG1lIGluIChmb3IgYm90aCBhY3R1YWwgbWlncmF0aW9uIGFuZCByZWxhdGVkIHRhc2tzKS4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBNeSB3ZWFwb24gb2YgY2hvaWNlIGZvciBTVk4gLS0+PkdJVCB3b3VsZCBiZToKPiA+ID4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9uaXJ2ZHJ1bS9zdm4yZ2l0IChJIG1hbmFnZWQgdG8gbW92ZSBkb3plbiBvZgo+ID4gcmVwb3MKPiA+ID4gPiA+IGZldwo+ID4gPiA+ID4geWVhcnMgYWdvKS4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+ID4gRGVqYW4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBPbiAyMDE3LTEwLTA0IDAxOjQ4LCBIZXJ2PUMzPTgzPUMyPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZT0KLmZyPiB3cm90ZToKPiA+ID4gPiA+ID4gSSdkIGxpa2UgdG8gd29yayBvbiBQbHVnaW4gVG9vbHMgd2l0aCBnaXQKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gV2hpbGUgYXQgaXQsIGxvb2tpbmcgYXQgb3VyIHBsYW4gWzFdLCBJIHNlZSB3ZSBoYXZlIGEgZmV3IG90aGVyCj4gPiA+ID4gPiA+IGNvbXBvbmVudHMKPiA+ID4gPiA+ID4gdGhhdCBhcmUgcmVhZHkgdG8gbWlncmF0ZToKPiA+ID4gPiA+ID4gLSBEb3hpYSBjb3JlCj4gPiA+ID4gPiA+IC0gRG94aWEgU2l0ZXRvb2xzCj4gPiA+ID4gPiA+IC0gRW5mb3JjZXIKPiA+ID4gPiA+ID4gLSBKeHIKPiA+ID4gPiA+ID4gLSBQbHVnaW4gVG9vbHMKPiA+ID4gPiA+ID4gLSBSZWxlYXNlCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFdoYXQgY2hlY2tzIGFyZSByZXF1aXJlZCBiZWZvcmUgc3dpdGNoaW5nIHRoZXNlIDYgY29tcG9uZW50cz8KPiA+ID4gPiA+ID4gQW55IHZvbHVudGVlcj8KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gSGVydj1DMz04Mz1DMj1BOQo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBbMV0gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9HaXQrCj4gPiBNaWdyYXRpb24KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiAtLS0tLS0tLS0KPiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4KPiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gLS0tLS0tLS0tCj4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+Cj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tCj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Cj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPgo+ID4KPiA+Cj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPgo+ID4KPgo+Cj4gLS0KPiAtLS0tLQo+IEFybmF1ZCBIPUMzPUE5cml0aWVyCj4gaHR0cDovL2FoZXJpdGllci5uZXQKPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKPgoKCgotLT0yMApDaGVlcnMKVGlib3IKCi0tMDAxYTExM2Y0OTg2MzcxZTMxMDU1YWZjOWY5OS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NjQ4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBOb3YgMjggMTg6MjE6MTYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjQ4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEM1Mzc4MTdCN0UKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAxODoyMToxNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI1MDA3IGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE5vdiAyMDE3IDE4OjIxOjE2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNDkxOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBOb3YgMjAxNyAxODoyMToxNiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI0OTA2IGludm9rZWQgYnkgdWlkIDk5KTsgMjggTm92IDIwMTcgMTg6MjE6MTYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMjggTm92IDIwMTcgMTg6MjE6MTYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC15YjAtZjE3Ni5nb29nbGUuY29tIChtYWlsLXliMC1mMTc2Lmdvb2dsZS5jb20gWzIwOS44NS4yMTMuMTc2XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEI2OTEwMUEwMDhDCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAxODoyMToxNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC15YjAtZjE3Ni5nb29nbGUuY29tIHdpdGggU01UUCBpZCB2MTJzbzMyODA0Nnliai41CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjggTm92IDIwMTcgMTA6MjE6MTUgLTA4MDAgKFBTVCkKWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg2b3pqUW1wUCs0TXhsZlExMlpoTWp0d041OUpwZmxuVHA2ZzZNSWpWQ2xmTVNtT2FRdwoJc2M4WWJxQmJ0aFo4ZlJVMS8vT1FFTlIrK0c1Sm9BeCtlT0FNZmdBPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUdzNHpNWS9uWXA5dExxZ2kxbUhyQSt3UklkOXNQemp4MmtpeVM4VG5jT05oQjBqOTFkdWlaWXFNT2h4V1ZYdldGdHVFZGlncXZPaVNlNHZCWEY3OUhCVnRaRT0KWC1SZWNlaXZlZDogYnkgMTAuMzcuMjMwLjgwIHdpdGggU01UUCBpZCBkNzdtcjIwOTk2eWJoLjMxNS4xNTExODkzMjc0MTYyOyBUdWUsCiAyOCBOb3YgMjAxNyAxMDoyMToxNCAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTI5LjEyMi4xNTEgd2l0aCBIVFRQOyBUdWUsIDI4IE5vdiAyMDE3IDEwOjIxOjEzIC0wODAwIChQU1QpCkluLVJlcGx5LVRvOiA8Q0FBOVM2aTc9SlNWNG41OU5rZTUrYTJoVy00SCtjX0FRdjR4M3ZHNW1MZ2dpemR2QlFBQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0FLdVZ6QlRjbnFLaDhkNEtOU0tjaHZwNGRHTGNadzJlRHdNaW5LWjFVS0J6ODEyOVhBQG1haWwuZ21haWwuY29tPgogPENBQTlTNmk3PUpTVjRuNTlOa2U1K2EyaFctNEgrY19BUXY0eDN2RzVtTGdnaXpkdkJRQUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPgpEYXRlOiBUdWUsIDI4IE5vdiAyMDE3IDE5OjIxOjEzICswMTAwClgtR21haWwtT3JpZ2luYWwtTWVzc2FnZS1JRDogPENBS3VWekJUTEFBeCs2PTVtK1FZN2NPVU8rU195elY3TEJEM2NkYjdxRldQXzc9aHNqZ0BtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JRDogPENBS3VWekJUTEFBeCs2PTVtK1FZN2NPVU8rU195elY3TEJEM2NkYjdxRldQXzc9aHNqZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFByb2JsZW0gdG8gZG93bmxvYWQgZGVwZW5kZW5jeSBvbiBVYnVudHUKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iOTRlYjJjMGE5MDkwOGI4NDhmMDU1ZjBmMTVkZSIKCi0tOTRlYjJjMGE5MDkwOGI4NDhmMDU1ZjBmMTVkZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKVGhlIHNldHRpbmdzLnhtbDoKCjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CjxzZXR0aW5ncyB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvU0VUVElOR1MvMS4wLjAiCiAgICAgICAgICB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIgogICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9TRVRUSU5HUy8xLjAuMApodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy94c2Qvc2V0dGluZ3MtMS4wLjAueHNkIj4KCiAgICA8bG9jYWxSZXBvc2l0b3J5Pi9ob21lL3htczQwLy5tMi9yZXBvc2l0b3J5PC9sb2NhbFJlcG9zaXRvcnk+CgogICAgPG1pcnJvcnM+CiAgICAgICAgPG1pcnJvcj4KICAgICAgICAgICAgPGlkPm5leHVzPC9pZD4KICAgICAgICAgICAgPG1pcnJvck9mPio8L21pcnJvck9mPgogICAgICAgICAgICA8bmFtZT5Tb25hdHlwZSBOZXh1czwvbmFtZT4KICAgICAgICAgICAgPHVybD5odHRwOi8vbWF2ZW5yZXBvLmFkcy5sb2NhbC9uZXh1cy9jb250ZW50L2dyb3Vwcy9wdWJsaWM8L3VybD4KICAgICAgICA8L21pcnJvcj4KICAgIDwvbWlycm9ycz4KICAgPHNlcnZlcnM+CiAgICAgIDxzZXJ2ZXI+CiAgICAgICAgIDxpZD5uZXh1czwvaWQ+CiAgICAgICAgIDx1c2VybmFtZT4qKio8L3VzZXJuYW1lPgogICAgICAgICA8cGFzc3dvcmQ+KioqPC9wYXNzd29yZD4KICAgICAgPC9zZXJ2ZXI+CiAgIDwvc2VydmVycz4KCgo8L3NldHRpbmdzPgoKCk9uIE1vbiwgTm92IDI3LCAyMDE3IGF0IDEwOjQ2IFBNLCBOaWNrIFN0b2x3aWprIDxuaWNrLnN0b2x3aWprQGdtYWlsLmNvbT4Kd3JvdGU6Cgo+IERpZCB5b3UgYWxzbyBjb25maWd1cmUgeW91ciBwcm94eSBpbiB0aGUgc2V0dGluZ3MueG1sPyBbMV0KPgo+IEh0aCwKPgo+IE5pY2sKPgo+IFsxXSBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL21pbmkvZ3VpZGUtcHJveGllcy5odG1sCj4KPiBOaWNrIFN0b2x3aWprCj4KPiB+fn4gVHJ5IHRvIGxlYXZlIHRoaXMgd29ybGQgYSBsaXR0bGUgYmV0dGVyIHRoYW4geW91IGZvdW5kIGl0IGFuZCwgd2hlbgo+IHlvdXIgdHVybiBjb21lcyB0byBkaWUsIHlvdSBjYW4gZGllIGhhcHB5IGluIGZlZWxpbmcgdGhhdCBhdCBhbnkgcmF0ZSB5b3UKPiBoYXZlIG5vdCB3YXN0ZWQgeW91ciB0aW1lIGJ1dCBoYXZlIGRvbmUgeW91ciBiZXN0IH5+fgo+Cj4gTG9yZCBCYWRlbi1Qb3dlbGwKPgo+IE9uIE1vbiwgTm92IDI3LCAyMDE3IGF0IDEwOjIyIFBNLCBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+Cj4gd3JvdGU6Cj4KPiA+IE15IGNvbW1hbmQgKm12biBjbGVhbiogaXMgbm90IGFibGUgdG8gZG93bmxvYWQgYSBuZXcgYXJ0aWZhY3QKPiA+ICpvcmcuYXJxdWlsbGlhbi51bml2ZXJzZTphcnF1aWxsaWFuLWp1bml0OnBvbSoKPiA+IGhvd2V2ZXIgaXQgZXhpc3RzIG9uIE1hdmVuIENlbnRyYWwuCj4gPgo+ID4gSSBydW4gdGhlIGNvbW1hbmQgb24gVWJ1bnR1IEtvbnNvbGUsIGFuZCBub3RoaW5nIGlzIGRvd25sb2FkZWQuCj4gPiBXaGVuIEkgcnVuIHdnZXQgWzFdIGZyb20gdGhlIHNhbWUgS29uc29sZSwgdGhlIFBPTSBpcyBkb3dubG9hZGVkLgo+ID4KPiA+IFRoZSBzZXR0aW5ncy54bWwgaXMgbm90IGEgcHJvYmxlbSwgSSBjaGVja2VkLiBUaGVyZSBpcyBhIG1pcnJvciBvZgo+IGNlbnRyYWwKPiA+IGFuZCBVUkwgb2YgTmV4dXMgaW4gY29tcGFueS4KPiA+Cj4gPiBJcyB0aGVyZSBhbnkgbmF0aXZlIGRpZmZlcmVuY2UgYmV0d2VlbiB3Z2V0IGFuZCBtdm4vSmF2YSBvbiBVYnVudHUgc28KPiB0aGF0Cj4gPiB0aGUgcmVtb3RlIG1hdmVucmVwbyBtYXkgbm90IGJlIHJlYWNoZWQ/Cj4gPiBJIGRpZCBzZXR1cCBvZiAvZXRjL2Vudmlyb25tZW50LCAvZXRjL25ldHdvcmsvaW50ZXJmYWNlLCB+Ly5wcm9maWxlIGR1ZQo+IHRvCj4gPiBwcm94eSwgRE5TLCBodHRwX25vX3Byb3h5LCBldGMuIGJ1dCBub3RoaW5nIGhlbHBzLgo+ID4KPiA+IEFueSBoaW50IHdvdWxkIGJlIGhlbHBmdWwgaGVyZS4KPiA+IE1BVkVOIGFuZCBKQVZBX09QVFMgaXMgbm90IHNldC4KPiA+Cj4gPiBbMV06IHdnZXQKPiA+IGh0dHA6Ly9tYXZlbnJlcG8uYWRzLmxvY2FsL25leHVzL2NvbnRlbnQvZ3JvdXBzL3B1YmxpYy8KPiA+IG9yZy9hcnF1aWxsaWFuL2FycXVpbGxpYW4tdW5pdmVyc2UvMS4xLjEzLjcvYXJxdWlsbGlhbi0KPiA+IHVuaXZlcnNlLTEuMS4xMy43LnBvbQo+ID4KPiA+IFRoeAo+ID4gVGlib3IKPiA+Cj4KCi0tOTRlYjJjMGE5MDkwOGI4NDhmMDU1ZjBmMTVkZS0tCgpGcm9tIGRldi1yZXR1cm4tMTIzOTI5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBTZXAgMTAgMTg6NDM6NDYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTI5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEEzMjI1MUFEQkIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAxODo0Mzo0NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDIyMzAzIGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIFNlcCAyMDE3IDE4OjQzOjQ2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMjIyOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBTZXAgMjAxNyAxODo0Mzo0NSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIyMjE2IGludm9rZWQgYnkgdWlkIDk5KTsgMTAgU2VwIDIwMTcgMTg6NDM6NDUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTAgU2VwIDIwMTcgMTg6NDM6NDUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC15dzAtZjE3My5nb29nbGUuY29tIChtYWlsLXl3MC1mMTczLmdvb2dsZS5jb20gWzIwOS44NS4xNjEuMTczXSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEI1MEE4MUEwMDI5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAxODo0Mzo0NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC15dzAtZjE3My5nb29nbGUuY29tIHdpdGggU01UUCBpZCByODVzbzE3NjQ1MDI4eXdnLjEKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAxMTo0Mzo0MyAtMDcwMCAoUERUKQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWhuWko4L3YyYzVEWXZ6SGF6a0U3QlRQUDhsU1d5WE1rcktQVUNDQ0dOVTV6WTRwSGRTCglNeUtjNWQwRjFLbjJMcEdOSS9adzBwN20xSjF4RHc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQURLQ05iNlhidk9GdVdkMnI3QTBjWlJQeURuckh0ODZNMWU4cXd0THdzaGJNWCtsQU5mMHdzMmYvZm52U0RYSjJ2N293R0JPS3hRcEM1U3JqMWc2VmxNc25hVT0KWC1SZWNlaXZlZDogYnkgMTAuMTI5LjE3NC44IHdpdGggU01UUCBpZCBtOG1yODI2MTk4OXl3aC45LjE1MDUwNjkwMjI1NzQ7IFN1biwKIDEwIFNlcCAyMDE3IDExOjQzOjQyIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xMjkuMTU3LjE5OCB3aXRoIEhUVFA7IFN1biwgMTAgU2VwIDIwMTcgMTE6NDM6NDEgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDw4OGRiYTA1YS0yNWU0LWE4ODItZDdmMi0xNzRjODNmOWJmODNAYXBhY2hlLm9yZz4KUmVmZXJlbmNlczogPENBK25Qbk16ejJ1Nj1jZFU1K2gxSHN2V2hTNENUNXprWXpyV0NFb3ctRzhDenYrbVkyZ0BtYWlsLmdtYWlsLmNvbT4KIDxDQStuUG5Neit2SGtrbXMxM0VDaHc1a0dCblhEazkzX0hyNUY3NitEZXRibnBxZmlHWHdAbWFpbC5nbWFpbC5jb20+CiA8b3AueTZjeXhqZ2NrZGtocnJAZGVza3RvcC0ya2hzazQ0PiA8Q0FDWmtYUHdPRVgrZDVNNzZVMk0tVW1zVmtrTGNQSENlQ1R0MlNKazRmeXhSYkgybXlBQG1haWwuZ21haWwuY29tPgogPENBRk5DVS0tTE9PTTQxbzhxSjNzeHRBYW1acTNERFc9MW1VRzhPVXRRQmZPTlM5djhpUUBtYWlsLmdtYWlsLmNvbT4KIDxDQStuUG5NeTktTVFmY1d2cjNzeDZvZWNvLTlBcWE5eHhSRUtEU3ItT005SDRqOC0zeHdAbWFpbC5nbWFpbC5jb20+IDw4OGRiYTA1YS0yNWU0LWE4ODItZDdmMi0xNzRjODNmOWJmODNAYXBhY2hlLm9yZz4KRnJvbTogVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPgpEYXRlOiBTdW4sIDEwIFNlcCAyMDE3IDIwOjQzOjQxICswMjAwClgtR21haWwtT3JpZ2luYWwtTWVzc2FnZS1JRDogPENBS3VWekJUTkozcTZPd1JGNkxNVjhNLWstd3cxRm9tOGdoRlNfei1ySGI9dEVjY19pUUBtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JRDogPENBS3VWekJUTkozcTZPd1JGNkxNVjhNLWstd3cxRm9tOGdoRlNfei1ySGI9dEVjY19pUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtSRVNVTFRdIFJlOiBQbGVhc2UgcmV0d2VldCBhbmQgdm90ZQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSJmNDAzMDQ1ZThhNTA3M2ZjNmEwNTU4ZGEzMDYxIgoKLS1mNDAzMDQ1ZThhNTA3M2ZjNmEwNTU4ZGEzMDYxCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKClN0ZXBoZW4sCgpJIHdhcyBwcmFnbWF0aWMgYW5kIGRpZCBub3Qgd2FudCB0byBwdXNoIHVzZXJzIHRvIHVzZSBNYXZlbiZKYXZhOCBvbmx5CmJlY2F1c2UgSkRLIDcgaXMgd2Vhay4KCkZpcnN0IHRoZSBpbnRlcmVzdCBzaG91bGQgZ28gZnJvbSBpbnNpZGUsIHRoaXMgbWVhbnMgQVBJIGFuZCB0aGVuIHVzZXJzLgoKSSBhZ3JlZSB3aXRoIE1pY2hhZWwgd2hldGhlciB3ZSBzaG91bGQgYmV0dGVyIGZvY3VzIG9uIE1hdmVuIDQgYW5kIFBPTQpzdHJ1Y3R1cmUuCgpGb3IgaW5zdGFuY2UgdG9kYXkgZXZlcnlib2R5IGNvdWxkIG5vdGljZSBvbiBtYWlsaW5nIGxpc3QgdGhhdCB3ZSBhcmUgaW4KaHVycnkgd2l0aCBKaWdzYXcgc3VwcG9ydCwgbWUgdG9vISBJdCBkb2VzIG5vdCBtZWFuIGZvciBtZSBKYXZhIDksIG5vdGhpbmcKYnV0IEppZ3NhdydzIG1vZHVsYXJpdHkgYmVjYXVzZSB0aGlzIGdvZXMgd2l0aCBVc2VycyAtIG15IHNlY29uZCBxdWVzdGlvbgooZmlyc3Qgd2FzIEFQSSkuIFNvIHllcyB0aGlzIG1ha2VzIHNlbnNlIHRvIHNwZW5kIHRoZSB0aW1lIGluIEppZ3Nhdwpob3dldmVyIEkgYW0gdGhlIG9uZSB3aG8gZG9lcyBub3QgbGlrZSBPcmFjbGUncyBzdHlsZSBvZiBwdXNoaW5nIHRoZQpyZWxlYXNlIGFuZCBicmVha2luZyB0aGVpciBydWxlcyB0aGF0IEphdmEgU0UgcmVsZWFzZSBpcyBhbGlnbmVkIHdpdGggSmF2YQpFRSByZWxlYXNlIHdoZXJlIEphdmEgRUUgOCBpcyBub3QgeWV0IG91dC4gQW5kIEkgYW0gbm90IHRhbGtpbmcgYWJvdXQgdGhlCmZhY3RzIHRoYXQgT3JhY2xlJ3MgUGF0ZW50IG9mIFNFIHdpbGwgYmUgY2hlYXBlciBidXQgZGV2ZWxvcGVycyBtb3JlIGFuZ3J5CmluIDkgYW5kIDEwIGJlY2F1c2UgSSBrbm93IHdoYXQgdGhleSBwbGFuIHRvIGRvIQoKCk9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDg6MjEgUE0sIE1pY2hhZWwgT3NpcG92IDxtaWNoYWVsb0BhcGFjaGUub3JnPiB3cm90ZT0KOgoKPiBBbSAyMDE3LTA5LTEwIHVtIDE5OjA3IHNjaHJpZWIgU3RlcGhlbiBDb25ub2xseToKPgo+PiBIZXJ2PUMzPUE5IGFuZCBJIGRpc2N1c3NlZCBvbiBpcmMgZWFybGllciB0b2RheS4KPj4KPj4gTXkgc3VnZ2VzdGlvbiAtIEkgd2FzIGdvaW5nIHRvIHdyaXRlIHVwIHRvbW9ycm93IC0gaXMgdGhhdCB3ZSBkcm9wIDcgZm9yCj4+IDMuNi54Cj4+Cj4+IFdlIHNob3VsZCBmb2N1cyAzLjYueCBvbiBtYWtpbmcgdGhlIGNvZGViYXNlIEphdmEgOCAobGFtYmRhcywgcmVwbGFjZQo+PiBGaWxlX19fX1N0cmVhbSB3aXRoIHRoZSBub24tZmlsZSBoYW5kbGUgbGVhayB2ZXJzaW9uLCBhZG9wdCBQYXRoLCBldGMpCj4+IHdpdGgKPj4gYSB2aWV3IHRvIGVuY291cmFnZSBjb250cmlidXRpb25zLi4uIGFuZCBiZXN0IHN1cHBvcnQgZm9yIEphdmEgOSAoc3VjaAo+PiB0aGF0Cj4+IGlmIHlvdSBydW4gajkgd2UgcmVjb21tZW5kIDMuNi54KQo+Pgo+Cj4gVGhpcyB3aWxsIHRha2UgbW9udGhzIHRvIHByb3Blcmx5IHJld3JpdGUgTWF2ZW4gY29yZS4gSSdkIHJhdGhlciBzZWUgdGhpcwo+IGZvciBNYXZlbiA0IGFuZCBjb250aW51ZSB0byBwb2xpc2ggTWF2ZW4gd2l0aCAzLjUueCwgMy42LngsIGV0Yy4KPgo+IFVubGVzcyBubyBvbmUgd2lsbCBkbyB0aGlzIHdpdGhpbiBhIHNob3J0IHRpbWVmcmFtZSwgSSBzZWUgbm8gYmVuZWZpdCBoZXI9CmUuCj4KPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKLS1mNDAzMDQ1ZThhNTA3M2ZjNmEwNTU4ZGEzMDYxLS0KCkZyb20gZGV2LXJldHVybi0xMjQwMzAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IFNlcCAxNCAyMDoyMjozNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwMzAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMTU1RkUxQTIyMwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDE0IFNlcCAyMDE3IDIwOjIyOjM1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzI0MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNCBTZXAgMjAxNyAyMDoyMjozNCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzE3MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNCBTZXAgMjAxNyAyMDoyMjozMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDcxNjEgaW52b2tlZCBieSB1aWQgOTkpOyAxNCBTZXAgMjAxNyAyMDoyMjozMyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMTQgU2VwIDIwMTcgMjA6MjI6MzMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBFRDczMzE4NEM0MgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMTQgU2VwIDIwMTcgMjA6MjI6MzIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjg3OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjg3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdvb2dsZW1haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgQVcyZGtTSWx2R2Y4IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVGh1LCAxNCBTZXAgMjAxNyAyMDoyMjozMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXl3MC1mMTc5Lmdvb2dsZS5jb20gKG1haWwteXcwLWYxNzkuZ29vZ2xlLmNvbSBbMjA5Ljg1LjE2MS4xNzldKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMDgzQTc2MEVERAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMTQgU2VwIDIwMTcgMjA6MjI6MzAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwteXcwLWYxNzkuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgazEzc28zMDA4NjZ5d2guNwogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDE0IFNlcCAyMDE3IDEzOjIyOjI5IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nb29nbGVtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9SllQOEtPU0Q5NVlGYnFLYVc5R2JocjZ4UXhVbnNFaStVMmpRY2M2MUg2WT07CiAgICAgICAgYj1aZHBMWlpxa1MvMEpHRXVjSVZJT01qRndkWURsUEJkVGJGV0Jmc0g1YlBtU2h0WTcwN2ZhazdRQ3JHQm5KeGE2aTAKICAgICAgICAgSEVGeWdDTUZXY05qRk9STGYxTDRBNnYyTVAwLzJRTk9EcVRJOEphRTlhMklNdExVQXdPUkJieTM3REdiL0NsQmcxZnEKICAgICAgICAgVm5XbjBTaVFndGNVM2NEaHE1cHRrWG5WMU1EMFlqKysrVmZDN2xPaVlYZWFQTk9zeE1qaTRydnVORkhMUkZjR2dDL08KICAgICAgICAgZXA4MGxsNzNKdFVzZ0JxWUJuNHJ5eHFBWWx2bkRuVVhvRGZKRFJ0c3JpQnRqakcxM2syN2traW9ySCtma2tKT2E4RTcKICAgICAgICAgMExka0xTQ05CVzN2eU12aDg5Y2xrK3Y1a1BZUDdOZnRzZ0VGZlN4eExhZlNzdVZHaGZ2WklPK3QySEtmRWRxYkdWOW4KICAgICAgICAgZU1SZz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9SllQOEtPU0Q5NVlGYnFLYVc5R2JocjZ4UXhVbnNFaStVMmpRY2M2MUg2WT07CiAgICAgICAgYj1IZnZUTi9SODFiQVJGSS9FSUkzQjhhWHVWWUJDWWZPbHBuUkIyS2VWakVoaHlhOGQ4Tkw1c1Y4K3pOYWVTL3hoUXoKICAgICAgICAgdmppaHNxZTdGY0NLOGlUcVBuNXo0Wm95b1V4c09ocVE1VW8wdlFEVXFrYlBDVTllODFHbTEzZG1VOFJ0OUsxbVAyUzIKICAgICAgICAgbHdoUEhIdmtla1hRMEFMSnVqNW10ZFNaSUk3Z00wU3h3TVBSbWFpRTU5U2hPekxQclpMTUVUOC8xL3NHNXV5cXVVTU4KICAgICAgICAgblZCc1lIdVN0YkcrWDdHOWRwWkxXVUxHajMyOWMyWUpoQURPa0lHK2VhRzlnVE1oaHNtKzh1SGlSSWZ0TFJtbTRMeVMKICAgICAgICAgaVdQVTN4TFFoZnZJS3lVVXpIMTBaMmh1TlIrNzlIc2hoZWVOUmlPVXkweDExVFhxTXAxYi9OSktSdHk1b2h3QnRMQ0oKICAgICAgICAgcXN5Zz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVaFNxU2RSemRyRHlzUVlHb2FKMlNwMjhXRWdSczNDbERjVDlBVnVIbUN2NGVYU0t1dE0KCU5XL0ZRanF3aG9yR0diREQzY0tWUTVRRFJVdFNIRm5vblh6dXlvZz0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUNUQ2lDM0g3c2ZVcFgvM2YwVGRTeExpV0JjVzBuQ0pkSFBDN083RnRvbFhLMTBiQ2VlUXZzZysvYU1DamRtVlVOYmpmbTFQQjZCdVo5MUc3cDBjRTQ9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjM3LjEwMi44MiB3aXRoIFNNVFAgaWQgejE4bXIxMjYwODg1NHlibS4zOS4xNTA1NDIwNTQzMjA3OwogVGh1LCAxNCBTZXAgMjAxNyAxMzoyMjoyMyAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTI5LjE1Ny4xOTggd2l0aCBIVFRQOyBUaHUsIDE0IFNlcCAyMDE3IDEzOjIyOjIyIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0ErPStMckoycGVIcEhHLXlTNHByLWhBPTltNm82RmJNWlBrPT1IeXk5PUpoRzQ2SG9nQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0FLdVZ6QlRqTk9iUUxtdG84Zjk3Zk8xeCtUMWkxX29UejdNX08wM1ZrV2FDazdGXytRQG1haWwuZ21haWwuY29tPgogPENBS3VWekJUcWZSMVoxMS1mMkNOVTNMMV9HY1l6K2Q1OXgrVzJMOFZaQzNxTGV6ZDFYd0BtYWlsLmdtYWlsLmNvbT4KIDxDQUt1VnpCUWk3TzQtb0hmXy1NNUVuTkM0bSt5NTdZZnE4ZWZMUVFpV0E0VTFDWmdDVndAbWFpbC5nbWFpbC5jb20+IDxDQSs9K0xySjJwZUhwSEcteVM0cHItaEE9OW02bzZGYk1aUGs9PUh5eTk9SmhHNDZIb2dAbWFpbC5nbWFpbC5jb20+CkZyb206IFRpYm9yIERpZ2FuYSA8dGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tPgpEYXRlOiBUaHUsIDE0IFNlcCAyMDE3IDIyOjIyOjIyICswMjAwCk1lc3NhZ2UtSUQ6IDxDQUt1VnpCVFRBazZkQ2ZmM3htMm5SYzl4MEpFclYrbXZha1VkRjc3QWc4dVdmQ1BPLVFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gU3VyZWZpcmUgUGx1Z2luIHZlcnNpb24gMi4yMC4xClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjA4OWUwODI4ZGRkOGI3NDZlYjA1NTkyYzA4YjkiCgotLTA4OWUwODI4ZGRkOGI3NDZlYjA1NTkyYzA4YjkKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKKzEKCk9uIFRodSwgU2VwIDE0LCAyMDE3IGF0IDI6MjcgUE0sIFBldHIgPUM1PUEwaXJvaz1DMz1CRCA8c2lyb2t5LnBldHJAZ21haWwuYz0Kb20+IHdyb3RlOgoKPiArMSBub24tYmluZGluZy4gVGVzdGVkIG9uIHNldmVyYWwgcHJvamVjdHMgd2l0aCB0aG91c2FuZHMgb2YgdGVzdHMgKGJvdGgKPiBzdXJlZmlyZSBhbmQgZmFpbHNhZmUgb25lcykuIE5vIGlzc3VlIGZvdW5kLgo+Cj4gRW52Ogo+IEZlZG9yYSAyNQo+IE9yYWNsZSBKREsgOAo+IE1hdmVuIDMuNS4wLgo+Cj4gUGV0cgo+Cj4KPiBPbiBUaHUsIFNlcCAxNCwgMjAxNyBhdCA4OjAwIEFNIFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4KPiB3cm90ZToKPgo+ID4gKGFnYWluIGZyb20gbXkgQXBhY2hlIG1haWwgYWNjb3VudCkKPiA+IFBscyBwYXJ0aWNpcGF0ZSBpbiB0aGUgdm90ZSBhbmQgdGVzdC4KPiA+Cj4gPiBPbiBUaHUsIFNlcCAxNCwgMjAxNyBhdCA3OjU5IEFNLCBUaWJvciBEaWdhbmEgPAo+IHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbQo+ID4gPgo+ID4gd3JvdGU6Cj4gPgo+ID4gPiBQbHMgcGFydGljaXBhdGUgaW4gdGhlIHZvdGUgYW5kIHRlc3QuCj4gPiA+Cj4gPiA+IE9uIE1vbiwgU2VwIDExLCAyMDE3IGF0IDU6MzMgQU0sIFRpYm9yIERpZ2FuYSA8Cj4gPiB0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20KPiA+ID4gPiB3cm90ZToKPiA+ID4KPiA+ID4+IEhpLAo+ID4gPj4KPiA+ID4+IFdlIHNvbHZlZCAyNCBpc3N1ZXM6Cj4gPiA+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamUKPiA+ID4+IGN0SWQ9M0QxMjMxNzkyNyZ2ZXJzaW9uPTNEMTIzNDAyOTcKPiA+ID4+Cj4gPiA+PiBUaGVyZSBhcmUgMTAxIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gPiA+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaSNpc3N1ZXMvP2pxbD0zRHByb2plY3QrJTNEKwo+ID4gPj4gU1VSRUZJUkUrQU5EK3N0YXR1cyslM0QrT3BlbitPUkRFUitCWStwcmlvcml0eStERVNDCj4gPiA+Pgo+ID4gPj4gU3RhZ2luZyByZXBvOgo+ID4gPj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2Ni8KPiA+ID4+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNgo+ID4gPj4gNi9vcmcvYXBhY2hlL21hdmVuL3N1cmVmaXJlL3N1cmVmaXJlLzIuMjAuMS9zdXJlZmlyZS0yLjIwLgo+ID4gPj4gMS1zb3VyY2UtcmVsZWFzZS56aXAKPiA+ID4+Cj4gPiA+PiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiA+ID4+IG1hdmVuLXN1cmVmaXJlLXBsdWdpbi0yLjIwLjEtc2l0ZS1zb3VyY2UuemlwIHNoYTE6Cj4gPiA+PiA0MTg3YTc5MzIyNjhjN2FkNDY3OTczMjU0ZDg3NTg0MDg1ZTMwNWMxCj4gPiA+Pgo+ID4gPj4gU3RhZ2luZyBzaXRlOgo+ID4gPj4gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvc3VyZWZpcmUtYXJjaGl2ZXMvc3VyZWZpcmUtTEFURVNULwo+ID4gPj4KPiA+ID4+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+ID4gPj4gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLQo+IHRlc3RpbmctcmVsZWFzZXMuaHRtbAo+ID4gPj4KPiA+ID4+IFZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCj4gPiA+Pgo+ID4gPj4gWyBdICsxCj4gPiA+PiBbIF0gKzAKPiA+ID4+IFsgXSAtMQo+ID4gPj4KPiA+ID4+IC0tCj4gPiA+PiBDaGVlcnMKPiA+ID4+IFRpYm9yCj4gPiA+Pgo+ID4gPgo+ID4gPgo+ID4gPgo+ID4gPiAtLQo+ID4gPiBDaGVlcnMKPiA+ID4gVGlib3IKPiA+ID4KPiA+Cj4KCgoKLS09MjAKQ2hlZXJzClRpYm9yCgotLTA4OWUwODI4ZGRkOGI3NDZlYjA1NTkyYzA4YjktLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDYzMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gTm92IDI3IDIxOjIyOjIxIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDYzMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBCRDQzNjE3QTk0Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMjcgTm92IDIwMTcgMjE6MjI6MjEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3MzU3MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBOb3YgMjAxNyAyMToyMjoxNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzM0OTMgaW52b2tlZCBieSB1aWQgNTAwKTsgMjcgTm92IDIwMTcgMjE6MjI6MTYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MzQ4MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDI3IE5vdiAyMDE3IDIxOjIyOjE2IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDI3IE5vdiAyMDE3IDIxOjIyOjE2ICswMDAwClJlY2VpdmVkOiBmcm9tIG1haWwteXcwLWYxNzMuZ29vZ2xlLmNvbSAobWFpbC15dzAtZjE3My5nb29nbGUuY29tIFsyMDkuODUuMTYxLjE3M10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCAxQkE1MzFBMDAyRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMjcgTm92IDIwMTcgMjE6MjI6MTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwteXcwLWYxNzMuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgcjE4NnNvMTI0MTk2OTd5d2UuMTMKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAyNyBOb3YgMjAxNyAxMzoyMjoxNiAtMDgwMCAoUFNUKQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDZJSGVxVjVuRzc3dGthbEVEd1pXcWRzUHlGbE4wbGFVdnMxWW9NNEF1czVSRG9BeWJnCglZYU4vVzFiTnRDZWg2bVc5cmE4Zk5YaENJbzlhUlc0a3Z6cWxuSFk9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1iWDNMN2VXRG9teStFSitwcEd5dE1kY3g4MDJONlBHNnZJdno4K2YwWkhNdE9sUFVXZXBxa0FnYWpIckFEN1l3WGUzQWl1cWNDQ1ZlSFA1ZTcyUUZJPQpYLVJlY2VpdmVkOiBieSAxMC4xMy4yMzQuMTk1IHdpdGggU01UUCBpZCB0MTg2bXIyNTM1MzI4NXl3ZS4zMjYuMTUxMTgxNzczNTI3MjsKIE1vbiwgMjcgTm92IDIwMTcgMTM6MjI6MTUgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjEzLjI1MS42NSB3aXRoIEhUVFA7IE1vbiwgMjcgTm92IDIwMTcgMTM6MjI6MTQgLTA4MDAgKFBTVCkKRnJvbTogVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPgpEYXRlOiBNb24sIDI3IE5vdiAyMDE3IDIyOjIyOjE0ICswMTAwClgtR21haWwtT3JpZ2luYWwtTWVzc2FnZS1JRDogPENBS3VWekJUY25xS2g4ZDRLTlNLY2h2cDRkR0xjWncyZUR3TWluS1oxVUtCejgxMjlYQUBtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JRDogPENBS3VWekJUY25xS2g4ZDRLTlNLY2h2cDRkR0xjWncyZUR3TWluS1oxVUtCejgxMjlYQUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUHJvYmxlbSB0byBkb3dubG9hZCBkZXBlbmRlbmN5IG9uIFVidW50dQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSI5NGViMmMwODdlYTQxMzdlZTQwNTVlZmQ3ZjUxIgoKLS05NGViMmMwODdlYTQxMzdlZTQwNTVlZmQ3ZjUxCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpNeSBjb21tYW5kICptdm4gY2xlYW4qIGlzIG5vdCBhYmxlIHRvIGRvd25sb2FkIGEgbmV3IGFydGlmYWN0CipvcmcuYXJxdWlsbGlhbi51bml2ZXJzZTphcnF1aWxsaWFuLWp1bml0OnBvbSoKaG93ZXZlciBpdCBleGlzdHMgb24gTWF2ZW4gQ2VudHJhbC4KCkkgcnVuIHRoZSBjb21tYW5kIG9uIFVidW50dSBLb25zb2xlLCBhbmQgbm90aGluZyBpcyBkb3dubG9hZGVkLgpXaGVuIEkgcnVuIHdnZXQgWzFdIGZyb20gdGhlIHNhbWUgS29uc29sZSwgdGhlIFBPTSBpcyBkb3dubG9hZGVkLgoKVGhlIHNldHRpbmdzLnhtbCBpcyBub3QgYSBwcm9ibGVtLCBJIGNoZWNrZWQuIFRoZXJlIGlzIGEgbWlycm9yIG9mIGNlbnRyYWwKYW5kIFVSTCBvZiBOZXh1cyBpbiBjb21wYW55LgoKSXMgdGhlcmUgYW55IG5hdGl2ZSBkaWZmZXJlbmNlIGJldHdlZW4gd2dldCBhbmQgbXZuL0phdmEgb24gVWJ1bnR1IHNvIHRoYXQKdGhlIHJlbW90ZSBtYXZlbnJlcG8gbWF5IG5vdCBiZSByZWFjaGVkPwpJIGRpZCBzZXR1cCBvZiAvZXRjL2Vudmlyb25tZW50LCAvZXRjL25ldHdvcmsvaW50ZXJmYWNlLCB+Ly5wcm9maWxlIGR1ZSB0bwpwcm94eSwgRE5TLCBodHRwX25vX3Byb3h5LCBldGMuIGJ1dCBub3RoaW5nIGhlbHBzLgoKQW55IGhpbnQgd291bGQgYmUgaGVscGZ1bCBoZXJlLgpNQVZFTiBhbmQgSkFWQV9PUFRTIGlzIG5vdCBzZXQuCgpbMV06IHdnZXQKaHR0cDovL21hdmVucmVwby5hZHMubG9jYWwvbmV4dXMvY29udGVudC9ncm91cHMvcHVibGljL29yZy9hcnF1aWxsaWFuL2FycXVpbGxpYW4tdW5pdmVyc2UvMS4xLjEzLjcvYXJxdWlsbGlhbi11bml2ZXJzZS0xLjEuMTMuNy5wb20KClRoeApUaWJvcgoKLS05NGViMmMwODdlYTQxMzdlZTQwNTVlZmQ3ZjUxLS0KCkZyb20gZGV2LXJldHVybi0xMjQyNDAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE9jdCAxNCAxMzo0MToxNyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyNDAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQjhEQ0IxMEU2QQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDE0IE9jdCAyMDE3IDEzOjQxOjE3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjUyNDcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTQgT2N0IDIwMTcgMTM6NDE6MTcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI1MTc0IGludm9rZWQgYnkgdWlkIDUwMCk7IDE0IE9jdCAyMDE3IDEzOjQxOjE3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjUxNjIgaW52b2tlZCBieSB1aWQgOTkpOyAxNCBPY3QgMjAxNyAxMzo0MToxNyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMTQgT2N0IDIwMTcgMTM6NDE6MTcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA0MTM4MTE4MDk1RQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTQgT2N0IDIwMTcgMTM6NDE6MTYgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjY3OQpYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuNjc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIFJDVkRfSU5fRE5TV0xfTE9XPS0wLjcsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z29vZ2xlbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBWdk9BVHFkc0VGRlQgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsIDE0IE9jdCAyMDE3IDEzOjQxOjEyICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtcXQwLWYxNzguZ29vZ2xlLmNvbSAobWFpbC1xdDAtZjE3OC5nb29nbGUuY29tIFsyMDkuODUuMjE2LjE3OF0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAyMzc1NjVGQ0U1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAxNCBPY3QgMjAxNyAxMzo0MToxMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1xdDAtZjE3OC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBrMzFzbzI0MjQyNjU2cXRhLjYKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAxNCBPY3QgMjAxNyAwNjo0MToxMiAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z29vZ2xlbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUtleTVCUnk4NmhHTDRmTDJyZ3d5eWJJODh5VDMvN0pzN29uTnBDcFdEZUk9OwogICAgICAgIGI9U3YwNVBCSDlpL1lRV1RON0VGUkowbEQ1b2RBd0ZpVHRBMVh1cktUT2RNdXVubW42UStuSWh4MjlDNUt2OXd5VFN4CiAgICAgICAgIGN0c3Uyam5DN3d6TE5zSnMySVUySHVyd1dhNE9WK0tBaFBDOGlnRW00bGlIQnBaanJ0azBndU1kUVE2S0FxSFV3MndWCiAgICAgICAgIFhVbHhqaCtYa05GbVg3OG5tenNwNlFCK1FWSzBGYkJpTjI2SW1tajFIYzZMVEsyeG51elo1bWgrSFpuTWIwdW41aXQ0CiAgICAgICAgIFhPcXFPLzkwZzh2U1hrK2RqcW8zSEdPcGtELzEyWDVSMFJzQWdjeE4zNWJpSGtWMzZzVHpkOExPMDRvdS9TR0J6NmI2CiAgICAgICAgIGhJY2tJWllPVDRlZ2luQ2orSTI0UDdkMXdCWkl4Y084Sy9DWG1hQ2MvNlVTMVYzcnF3RUp3SWMxenZMWlREMmxLV3NUCiAgICAgICAgIEZYZkE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUtleTVCUnk4NmhHTDRmTDJyZ3d5eWJJODh5VDMvN0pzN29uTnBDcFdEZUk9OwogICAgICAgIGI9TnlzK2k0Tld5azV0RnNOTTBJcTYzNi9seC9BbEFIUXRKakFYYkhpdVQ3QWV2VDNpSlRtOEdHOGg4bHhGVEU4b2pqCiAgICAgICAgIHd3ekM0anhRSHd6eG5TQjJtdXM3Y0xpYUhCNDZlaWNGQ0w1TVVhY0ZRNW1ydklEQmNxYTRyZWMrMWJnZGdubHg3aVd0CiAgICAgICAgICs1RjBNajAyRm5BWmhNUmc0S1N0dkdCY2VkdlJNZitDekFvdkRrYWRobU01enFCVDFVUEVVMHZJNDB5WjZNNkJUSjFWCiAgICAgICAgIG0wdkYrUzRxdS9jcDBzUEdsNHNOcUwyQmVNVVB2L21CYWx2YXFxbTVtaHFJNkkyZ2ZUeHEwb0lJZFREM0t2MmFMWnhDCiAgICAgICAgIEdKYW9RTXUrTVorK2V3U1BZWlltQXh5VEpXV09tZzR5bnFaRkd3RGVFSDVkbXg1c3N4bmxFTE8reDlYdXdEeE8yNktyCiAgICAgICAgIDJFZ1E9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVhrenJweUtwbFB1SWFGNUNkMnBvTUIvUzFEMkR3bVB0cisrNldXV0pLRWF3S1g1b0QzCglFUXdXM2tOUUNsMHluOUpUSVBhWTVGcEVmNytEZ2x0Sjg3b0ZqSjA9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtTT210Wm1VV1BQTTI4aStXcFJqdG9mSnpYZENNMXlPSUdzdnQ5eDdSNnhPM1lha1ZOS1Bydjl5MU5zN2oxa01GQjZvV3lXUUpheU4vTFBGekhBZ1NVPQpYLVJlY2VpdmVkOiBieSAxMC4zNy4xOTAuNzYgd2l0aCBTTVRQIGlkIGQxMm1yMjcxODM2NHlibS4yMDQuMTUwNzk4ODQ3MDc5OTsKIFNhdCwgMTQgT2N0IDIwMTcgMDY6NDE6MTAgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjEzLjI1MS42NSB3aXRoIEhUVFA7IFNhdCwgMTQgT2N0IDIwMTcgMDY6NDE6MDkgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxFMEFCQ0NEQS1GNkZCLTRGQjQtQUYzQS0wNDkxODM5QjQ2QjJAYXBhY2hlLm9yZz4KUmVmZXJlbmNlczogPDQ5NTk1MjJBLTIwOTAtNDIzOS04MjMzLUUzMjAwMERFOUE1QkBhcGFjaGUub3JnPgogPDM5ODA3NzMuTWVqR0FhQjFxb0BnaWdhPiA8RDJGRjBGNjYtRjc4RC00MzI4LTlCMjktNTM0QjlFMUZDMjAzQGFwYWNoZS5vcmc+CiA8MTg4NzgyNi5WNEdXdm1nMDNuQGdpZ2E+IDxCNTM5QTg2Ni0zMTlFLTRCRjctOTYxMS0yODdBODZFQTM2M0VAYXBhY2hlLm9yZz4KIDxDQUt1VnpCU0tQYWUtUmc2M2FWSD04TVBNelJzZjJWQncrOU9PVE9id1krT29TK3poNUFAbWFpbC5nbWFpbC5jb20+IDxFMEFCQ0NEQS1GNkZCLTRGQjQtQUYzQS0wNDkxODM5QjQ2QjJAYXBhY2hlLm9yZz4KRnJvbTogVGlib3IgRGlnYW5hIDx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+CkRhdGU6IFNhdCwgMTQgT2N0IDIwMTcgMTU6NDE6MDkgKzAyMDAKTWVzc2FnZS1JRDogPENBS3VWekJUZ09pcExTTjdNTVViVzVNMWtGR2pwZWZYVmNFQ0UwajNUV1JRMkxMZkpWd0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IGRlcGVuZGVuY3k6Z28tb2ZmbGluZSBicm9rZW4/ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjA4OWUwODIzMGNiYzIwYTM4NDA1NWI4MWVkMmIiCgotLTA4OWUwODIzMGNiYzIwYTM4NDA1NWI4MWVkMmIKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSSBoYXZlIG5ldmVyIGhhZCBib3RoIHByb2JsZW1zIHdoZW4gdXNlZCBtYXZuLWRlcGVuZGVuY3ktcGx1Z2luOjIuOC4KV2l0aCBzdWNoIG9sZGVyIHZlcnNpb24gaXQncyBvaz8KCk9uIFNhdCwgT2N0IDE0LCAyMDE3IGF0IDI6MTIgUE0sIEJlbmVkaWt0IFJpdHRlciA8YnJpdHRlckBhcGFjaGUub3JnPiB3cm90ZT0KOgoKPiBIZWxsbywKPgo+ID4gQW0gMTMuMTAuMjAxNyB1bSAyMTozMiBzY2hyaWViIFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz46Cj4gPgo+ID4gVGhpcyBleGNlcHRpb24gaXMgZXhwZWN0ZWQuCj4gPiBVc2UgcGx1Z2luR3JvdXAgaW4gc2V0dGluZ3MueG1sIG9yIHRyeSB0aGlzOgo+ID4gb3JnLmNvZGVoYXVzLm1vam86dGlkeToxLjAuMDpjaGVjawo+ID4gb3IKPiA+IG9yZy5jb2RlaGF1cy5tb2pvOnRpZHktbWF2ZW4tcGx1Z2luOjEuMC4wOmNoZWNrCj4gPgo+ID4gSSBkb24ndCBrbm93IHdoYXQgZHVtbXkuamFyIGhhcyB0byBkbyB3aXRoIHRpZHkgcGx1Z2luLCBpdCdzIGludGVybmFsCj4gY29kZQo+ID4gaW4gc3VyZWZpcmUgZHVlIHRvIE0yIEFQSSBhbmQgdGlkeSBzaG91bGQgbm90IGJlIGluZmx1ZW5jZWQgYnkuCj4KPiBUaGVyZSBhcmUgdG8gZGlzdGluY3QgaXNzdWVzOgo+Cj4gMSkgc3VyZWZpcmUgZG9lcyBzb21lIHRyaWNrZXJ5IHdoaWNoIGNhbiBub3QgYmUgcmVzb2x2ZWQgYnkgdGhlIGRlcGVuZGVuYz0KeQo+IHBsdWdpbi4KPiAyKSB0aGUgdGlkeSBwbHVnaW4gZG9lcyBub3Qgd29yayBpbiBvZmZsaW5lIG1vZGUsIGV2ZW4gaWYgZGVwZW5kZW5jaWVzCj4gaGF2ZSBiZWVuIGRvd25sb2FkZWQgYmVmb3JlLiBXaHkgZG8gSSBoYXZlIHRvIGRlZmluZSB0aGUgcGx1Z2luIGV4cGxpY2l0bD0KeQo+IHRvIHdvcmsgaW4gb2ZmbGluZSBtb2RlPyBJdCBkb2VzIHdvcmsgaW4gb25saW5lIG1vZGUuCj4KPiBSZWdhcmRzLAo+IEJlbmVkaWt0Cj4KPiA+Cj4gPiBDaGVlcnMKPiA+IFRpYm9yCj4gPgo+ID4gT24gRnJpLCBPY3QgMTMsIDIwMTcgYXQgNjozNiBQTSwgQmVuZWRpa3QgUml0dGVyIDxicml0dGVyQGFwYWNoZS5vcmc+Cj4gd3JvdGU6Cj4gPgo+ID4+IEhlbGxvLAo+ID4+Cj4gPj4+IEFtIDA4LjEwLjIwMTcgdW0gMTU6NTQgc2NocmllYiBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZT0KLmZyPjoKPiA+Pj4KPiA+Pj4gTGUgZGltYW5jaGUgOCBvY3RvYnJlIDIwMTcsIDE1OjM3OjU0IENFU1QgQmVuZWRpa3QgUml0dGVyIGEgPUMzPUE5Y3JpPQp0IDoKPiA+Pj4+IEhlbGxvIEhlcnY9QzM9QTkKPiA+Pj4+Cj4gPj4+Pj4gVGhlbiBJIGFkZGVkIGEgcGx1Z2luTWFuYWdlbWVudCBzZWN0aW9uIHRvIHNlbGVjdCB2ZXJzaW9uIDMuMC4yIGFuZAo+ID4+IHJlLXJhbgo+ID4+Pj4+IHRoZSB0ZXN0OiB5b3UnbGwgc2VlIHRoZSBvdXRwdXQgaXMgY29tcGxldGVseSBkaWZmZXJlbnQuCj4gPj4+Pj4KPiA+Pj4+PiBBbmQgdGhlcmUgaXMgbm8gaXNzdWUgYW55IG1vcmUKPiA+Pj4+Cj4gPj4+PiBUaGFuayB5b3Ugc28gbXVjaCwgeW91IHRvb2sgdGhlIHRpbWUgdG8gaW52ZXN0aWdhdGUgdGhpcyBpc3N1ZSEgUmVhbD0KbHkKPiA+PiBtdWNoCj4gPj4+PiBhcHByZWNpYXRlZC4gTm93IEkgd29uZGVyLCB3aHkgTWF2ZW4gdXNlcyBhbiBvdXRkYXRlZCB2ZXJzaW9uIG9mIHRoZQo+ID4+Pj4gZGVwZW5kZW5jeSBwbHVnaW4uIElzIHRoaXMgYSBwcm9ibGVtIHdpdGggdGhlIHN1cGVyIHBvbT8KPiA+Pj4gdGhpcyBpcyBhIGNob2ljZSB0byBrZWVwIHN0YWJpbGl0eToKPiA+Pj4gaWYgb25lIGRvd25sb2FkcyBkZXBlbmRlbmNpZXMgdXNpbmcgTWF2ZW4gMy4wLjUgdGhlbiBhIGZldyBkYXlzIGxhdGVyCj4gPj4gYnVpbGRzCj4gPj4+IG9mZmxpbmUgd2l0aCBNYXZlbiAzLjUsIGhlIGRvZXMgbm90IGhhdmUgYW55IGlzc3VlIChhbmQgYmxhbWUKPiA+PiBkZXBlbmRlbmN5LXBsdWdpbikKPiA+Pj4KPiA+Pj4gcmVtZW1iZXIgdGhlIGdvb2QgcHJhY3RpY2U6IGRlZmluZSB5b3VyIHBsdWdpbiB2ZXJzaW9ucywgZWl0aGVyIGluIHlvPQp1cgo+ID4+IHBvbSBvcgo+ID4+PiBieSB1c2luZyBhIHBhcmVudCB0aGF0IGRvZXMgdGhlIGpvYgo+ID4+Pgo+ID4+Pj4KPiA+Pj4+IEZ1cnRoZXJtb3JlIEk9RTI9ODA9OTl2ZSBub3RpY2VkLCB0aGF0IG12biAtbyB0ZXN0IHN0aWxsIGRvZXMgbm90IHdvPQpyaywKPiBiZWNhdXNlCj4gPj4gc29tZQo+ID4+Pj4gc3VyZWZpcmUgZGVwZW5kZW5jaWVzIGFyZSBtaXNzaW5nOgo+ID4+Pj4KPiA+Pj4+IFtFUlJPUl0gRmFpbGVkIHRvIGV4ZWN1dGUgZ29hbAo+ID4+Pj4gb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zOm1hdmVuLXN1cmVmaXJlLXBsdWdpbjoyLjEyLjQ6dGVzdAo+ID4+IChkZWZhdWx0LXRlc3QpCj4gPj4+PiBvbiBwcm9qZWN0IGRlcGVuZGVuY3ktcGx1Z2luLWJ1ZzogVW5hYmxlIHRvIGdlbmVyYXRlIGNsYXNzcGF0aDoKPiA+Pj4+IG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QucmVzb2x2ZXIuTXVsdGlwbGVBcnRpZmFjdHNOb3RGb3VuZEV4Y2VwCj4gdGlvbjoKPiA+Pj4+IE1pc3Npbmc6IFtFUlJPUl0gLS0tLS0tLS0tLQo+ID4+Pj4gW0VSUk9SXSAxKSBvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlOnN1cmVmaXJlLWp1bml0MzpqYXI6Mi4xMi40Cj4gPj4+PiBbRVJST1JdCj4gPj4+PiBbRVJST1JdIFRyeSBkb3dubG9hZGluZyB0aGUgZmlsZSBtYW51YWxseSBmcm9tIHRoZSBwcm9qZWN0IHdlYnNpdGUuCj4gPj4+PiBbRVJST1JdCj4gPj4+PiBbRVJST1JdIFRoZW4sIGluc3RhbGwgaXQgdXNpbmcgdGhlIGNvbW1hbmQ6Cj4gPj4+PiBbRVJST1JdIG12biBpbnN0YWxsOmluc3RhbGwtZmlsZSAtRGdyb3VwSWQ9M0RvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaT0KcmUKPiA+Pj4+IC1EYXJ0aWZhY3RJZD0zRHN1cmVmaXJlLWp1bml0MyAtRHZlcnNpb249M0QyLjEyLjQgLURwYWNrYWdpbmc9M0RqYXIKPiA+Pj4+IC1EZmlsZT0zRC9wYXRoL3RvL2ZpbGUgW0VSUk9SXQo+ID4+Pj4gW0VSUk9SXSBBbHRlcm5hdGl2ZWx5LCBpZiB5b3UgaG9zdCB5b3VyIG93biByZXBvc2l0b3J5IHlvdSBjYW4gZGVwbG89CnkKPiA+PiB0aGUKPiA+Pj4+IGZpbGUgdGhlcmU6IFtFUlJPUl0gbXZuIGRlcGxveTpkZXBsb3ktZmlsZQo+ID4+Pj4gLURncm91cElkPTNEb3JnLmFwYWNoZS5tYXZlbi5zdXJlZmlyZSAtRGFydGlmYWN0SWQ9M0RzdXJlZmlyZS1qdW5pdDMKPiA+Pj4+IC1EdmVyc2lvbj0zRDIuMTIuNCAtRHBhY2thZ2luZz0zRGphciAtRGZpbGU9M0QvcGF0aC90by9maWxlIC1EdXJsPTNEPQpbdXJsXQo+ID4+Pj4gLURyZXBvc2l0b3J5SWQ9M0RbaWRdIFtFUlJPUl0KPiA+Pj4+IFtFUlJPUl0gUGF0aCB0byBkZXBlbmRlbmN5Ogo+ID4+Pj4gW0VSUk9SXSAxKSBkdW1teTpkdW1teTpqYXI6MS4wCj4gPj4+PiBbRVJST1JdIDIpIG9yZy5hcGFjaGUubWF2ZW4uc3VyZWZpcmU6c3VyZWZpcmUtanVuaXQzOmphcjoyLjEyLjQKPiA+Pj4+IFtFUlJPUl0KPiA+Pj4+IFtFUlJPUl0gLS0tLS0tLS0tLQo+ID4+Pj4gW0VSUk9SXSAxIHJlcXVpcmVkIGFydGlmYWN0IGlzIG1pc3NpbmcuCj4gPj4+PiBbRVJST1JdCj4gPj4+PiBbRVJST1JdIGZvciBhcnRpZmFjdDoKPiA+Pj4+IFtFUlJPUl0gZHVtbXk6ZHVtbXk6amFyOjEuMAo+ID4+Pj4gW0VSUk9SXQo+ID4+Pj4gW0VSUk9SXSBmcm9tIHRoZSBzcGVjaWZpZWQgcmVtb3RlIHJlcG9zaXRvcmllczoKPiA+Pj4+IFtFUlJPUl0gY2VudHJhbCAoaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yLCByZWxlYXNlcz0zRHRyPQp1ZSwKPiA+Pj4+IHNuYXBzaG90cz0zRGZhbHNlKSBbRVJST1JdIC0+IFtIZWxwIDFdCj4gPj4+PiBbRVJST1JdCj4gPj4+PiBbRVJST1JdIFRvIHNlZSB0aGUgZnVsbCBzdGFjayB0cmFjZSBvZiB0aGUgZXJyb3JzLCByZS1ydW4gTWF2ZW4gd2l0aAo+ID4+IHRoZSAtZQo+ID4+Pj4gc3dpdGNoLiBbRVJST1JdIFJlLXJ1biBNYXZlbiB1c2luZyB0aGUgLVggc3dpdGNoIHRvIGVuYWJsZSBmdWxsIGRlYnU9CmcKPiA+Pj4+IGxvZ2dpbmcuIFtFUlJPUl0KPiA+Pj4+IFtFUlJPUl0gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGVycm9ycyBhbmQgcG9zc2libGUgc29sdXRpb25zPQosCj4gPj4gcGxlYXNlCj4gPj4+PiByZWFkIHRoZSBmb2xsb3dpbmcgYXJ0aWNsZXM6IFtFUlJPUl0gW0hlbHAgMV0KPiA+Pj4+IGh0dHA6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi8KPiBNb2pvRXhlY3V0aW9uRXhjZXB0aW9uCj4gPj4+Pgo+ID4+Pj4gU2luY2UgdGhlcmUgYXJlIG9ubHkgYSBmZXcgZGVwZW5kZW5jaWVzIG1pc3NpbmcsIEkgd2lsbCBydW4gdGVzdCBub3QKPiBpbgo+ID4+Pj4gb2ZmbGluZSBtb2R1cyBvbiBteSBDSSBzZXJ2ZXIuIEJ1dCBJIHdvbmRlciB3aGV0aGVyIHRoaXMgaXMgYSBidWcuCj4gPj4+IEknbGwgaGF2ZSBhIGxvb2sgYXQgdGhpcyBvbmUgYW5kIHJlcG9ydAo+ID4+Cj4gPj4gSSBtYWRlIGFub3RoZXIgaW50ZXJlc3Rpbmcgb2JzZXJ2YXRpb246Cj4gPj4KPiA+PiBtdm4gdGlkeTpjaGVjayB3b3Jrcywgd2hpbGUgbXZuIC1vIHRpZHk6Y2hlY2sgZG9lcyBub3Qgd29yay4gSXQgZmFpbHMKPiB3aXRoOgo+ID4+Cj4gPj4gW0lORk9dIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+IC0tLS0tLS0tLS0tLQo+ID4+IFtJTkZPXSBCVUlMRCBGQUlMVVJFCj4gPj4gW0lORk9dIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+IC0tLS0tLS0tLS0tLQo+ID4+IFtJTkZPXSBUb3RhbCB0aW1lOiAwLjY0MCBzCj4gPj4gW0lORk9dIEZpbmlzaGVkIGF0OiAyMDE3LTEwLTEzVDE4OjM0OjMyKzAyOjAwCj4gPj4gW0lORk9dIEZpbmFsIE1lbW9yeTogMTNNLzMwOU0KPiA+PiBbSU5GT10gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gLS0tLS0tLS0tLS0tCj4gPj4gW0VSUk9SXSBObyBwbHVnaW4gZm91bmQgZm9yIHByZWZpeCAndGlkeScgaW4gdGhlIGN1cnJlbnQgcHJvamVjdCBhbmQgaT0Kbgo+ID4+IHRoZSBwbHVnaW4gZ3JvdXBzIFtvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMsIG9yZy5jb2RlaGF1cy5tb2pvXQo+IGF2YWlsYWJsZQo+ID4+IGZyb20gdGhlIHJlcG9zaXRvcmllcyBbbG9jYWwgKC9Vc2Vycy9iZW5lL3dvcmtzcGFjZS9naXRodWIvCj4gZGVwZW5kZW5jeS1wbHVnaW4tYnVnLy5tMiksCj4gPj4gY2VudHJhbCAoaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yKV0gLT4gW0hlbHAgMV0KPiA+PiBbRVJST1JdCj4gPj4gW0VSUk9SXSBUbyBzZWUgdGhlIGZ1bGwgc3RhY2sgdHJhY2Ugb2YgdGhlIGVycm9ycywgcmUtcnVuIE1hdmVuIHdpdGggdD0KaGUKPiA+PiAtZSBzd2l0Y2guCj4gPj4gW0VSUk9SXSBSZS1ydW4gTWF2ZW4gdXNpbmcgdGhlIC1YIHN3aXRjaCB0byBlbmFibGUgZnVsbCBkZWJ1ZyBsb2dnaW5nLgo+ID4+IFtFUlJPUl0KPiA+PiBbRVJST1JdIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlcnJvcnMgYW5kIHBvc3NpYmxlIHNvbHV0aW9ucywKPiA+PiBwbGVhc2UgcmVhZCB0aGUgZm9sbG93aW5nIGFydGljbGVzOgo+ID4+IFtFUlJPUl0gW0hlbHAgMV0gaHR0cDovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOLwo+ID4+IE5vUGx1Z2luRm91bmRGb3JQcmVmaXhFeGNlcHRpb24KPiA+Pgo+ID4+IENoZWVycywKPiA+PiBCZW5lZGlrdAo+ID4+Cj4gPj4+Cj4gPj4+IFJlZ2FyZHMsCj4gPj4+Cj4gPj4+IEhlcnY9QzM9QTkKPiA+Pj4KPiA+Pj4+Cj4gPj4+PiBSZWdhcmRzLAo+ID4+Pj4gQmVuZWRpa3QKPiA+Pj4+Cj4gPj4+Pj4gUmVnYXJkcywKPiA+Pj4+Pgo+ID4+Pj4+IEhlcnY9QzM9QTkKPiA+Pj4+Pgo+ID4+Pj4+IExlIG1lcmNyZWRpIDIwIHNlcHRlbWJyZSAyMDE3LCAyMjo0ODoxNSBDRVNUIEJlbmVkaWt0IFJpdHRlciBhID1DMz0KPUE5Y3JpdAo+IDoKPiA+Pj4+Pj4gSGksCj4gPj4+Pj4+Cj4gPj4+Pj4+IGFzIGZhciBhcyBJIHVuZGVyc3RhbmQgaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGNhbGwgbXZuCj4gPj4+Pj4+IGRlcGVuZGVuY3k6Z28tb2ZmbGluZSBhbmQgZnJvbSB0aGVyZSBvbiB3b3JrIGluIG9mZmxpbmUgbW9kZSAobXZuCj4gLW8pLgo+ID4+Pj4+PiBJPUUyPTgwPTk5dmUgcHV0IGEgbWluaW1hbCBleGFtcGxlIHRvZ2V0aGVyIFsxXSB0aGF0IGRlbW9uc3RyYXRlcyA9CnRoYXQgdGhpcwo+ID4+Pj4+PiBjdXJyZW50bHkgZG9lcyBub3Qgd29yay4gQW0gSSBtaXNzaW5nIGFueXRoaW5nPwo+ID4+Pj4+Pgo+ID4+Pj4+PiBUaGFuayB5b3UhCj4gPj4+Pj4+IEJlbmVkaWt0Cj4gPj4+Pj4+Cj4gPj4+Pj4+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vYnJpdHRlci9kZXBlbmRlbmN5LXBsdWdpbi1idWcKPiA+Pj4+Pj4KPiA+Pj4+Pj4KPiA+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tCj4gPj4+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4+Pgo+ID4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0tLS0tLS0tLQo+ID4+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Pj4KPiA+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotCj4gPj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Cj4gPj4KPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pgo+ID4+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCgotLT0yMApDaGVlcnMKVGlib3IKCi0tMDg5ZTA4MjMwY2JjMjBhMzg0MDU1YjgxZWQyYi0tCgpGcm9tIGRldi1yZXR1cm4tMTIzOTQ5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBTZXAgMTEgMDM6MzM6MDUgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTQ5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDIwRUQ1MUE2ODcKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAwMzozMzowNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI2NjMwIGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDAzOjMzOjA0IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNjUzMCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAwMzozMzowNCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI2NTE3IGludm9rZWQgYnkgdWlkIDk5KTsgMTEgU2VwIDIwMTcgMDM6MzM6MDQgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDExIFNlcCAyMDE3IDAzOjMzOjA0ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgOUI1NjYxODJGRkMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDAzOjMzOjAzICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi44NzkKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi44NzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nb29nbGVtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFJGcUlrWDhSb2ppayBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMTEgU2VwIDIwMTcgMDM6MzM6MDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC15dzAtZjE3My5nb29nbGUuY29tIChtYWlsLXl3MC1mMTczLmdvb2dsZS5jb20gWzIwOS44NS4xNjEuMTczXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEMyREU5NUZCRTIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDAzOjMzOjAxICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXl3MC1mMTczLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHE4MHNvMTg5ODI5NDB5d2cuMgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDIwOjMzOjAxIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nb29nbGVtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUQrWGNEakFZUXBXZ3Y5WkpmdXhoeFdjbmdtZFd6VEwvTG9FbXE3YlBBd2s9OwogICAgICAgIGI9RXZNWWVyekN5eklXd1JOYWo5bTZyQUUyZG1nb1NUQmZmRlNhbmJ1UnFzUFg2YkRkdk9FdE1oR21Jd0poamtiT2pKCiAgICAgICAgIGRsVFBwMHR5SEpyc3dwb2dNdHB5UWtwalpGTUhDVnlndHpqalF6bmFJbXcrVC90RGlZbVBQc0Yza1MxNUN3a25kaHRTCiAgICAgICAgIGNZdWZjRXZoWTN3ZWU4VDg3UVI1OE45WjdXcmZORS9DOVB2VUdXL0JoZzRpQ3pUODNGdzNMVG9FL1lJZit1aTZ5SVJRCiAgICAgICAgIGNuakw4MjZVZDAyRFJldXJ4eG5oRHlDMHFPTklJQmFMQUN3YklGMm1EbzVpSzhpWXVHRUU3a1hKaG5UUWtVOThERllZCiAgICAgICAgICtIdkJQQjgvUnNPK3lCUXBjQit4Vk01eUNEVGlGVXhTOXVnQ01GMVNMejVsUURwcVVuZ0wwbHBBTlhiTHlSK0VsUkpICiAgICAgICAgIFVsYUE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUQrWGNEakFZUXBXZ3Y5WkpmdXhoeFdjbmdtZFd6VEwvTG9FbXE3YlBBd2s9OwogICAgICAgIGI9Umo5M203WlJRZzFUbVlWOW9sSXk4aGk3Um01OU9XTWUxd1NMOFBINmtyUkhCaWtQZVl0b2hXNnovd3dweXlBZW14CiAgICAgICAgIGJrMHlxYmJabDFhWVpSN3JYVm1YbzVzZjdpdkkzcWs4RXA5V096OGpkcEc2MzAybDAxS2ZaMVNiNmtUSUN2aG5Qb0hrCiAgICAgICAgIGdKbzEwWlRCT2VmcDR2MzlkdDh1OU1KbmkxZDJjcnVELzRqZjRmTFBuM3F3K3QyK2pyTGtLWTE2N1pOckJtbEdQVERJCiAgICAgICAgIDFwS0Qrek00RHlmUXFzV1Y2Q0hna0U2eTFHREFDdzJRQ3J0MEExRjNLTkM5Sll6UmRIYUxnMWxleVZEQnFhT3BOS1g0CiAgICAgICAgIG5tMmwyQXVHcUxoRy9KdmQvWU13aFBxVHY3cWkxdk9HcHJXbUVKV1FGMXkwVU5mbnNLYWJqdFVSR29qSzBTb1pMdGY4CiAgICAgICAgIEpVNlE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWlFMHlLRTUxcFdjcldvZktBVmJoSlVweUdJUWNhdGZSMThoamRrUElGWTFuNEFEU20yCgllMjdDM1gxKzdXZ2h5U2pQRFVHZnBVVVZja2ZSQTZnbApYLUdvb2dsZS1TbXRwLVNvdXJjZTogQURLQ05iNmE5b2daNldQWGt0bnJWQWhURTdMeWNOTHlEWUxBRUtHNEVCL1ZCd3pwdkFHcFlEY0VaRG5EamR6NmZJMlZ4RHZIRUEvM1F1emVJOGVjcmlPcWFsTT0KWC1SZWNlaXZlZDogYnkgMTAuMTI5LjI4LjE1IHdpdGggU01UUCBpZCBjMTVtcjg0NDI5Nzl5d2MuMjI0LjE1MDUxMDA3ODA2MDY7CiBTdW4sIDEwIFNlcCAyMDE3IDIwOjMzOjAwIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xMjkuMTU3LjE5OCB3aXRoIEhUVFA7IFN1biwgMTAgU2VwIDIwMTcgMjA6MzM6MDAgLTA3MDAgKFBEVCkKRnJvbTogVGlib3IgRGlnYW5hIDx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+CkRhdGU6IE1vbiwgMTEgU2VwIDIwMTcgMDU6MzM6MDAgKzAyMDAKTWVzc2FnZS1JRDogPENBS3VWekJUak5PYlFMbXRvOGY5N2ZPMXgrVDFpMV9vVHo3TV9PMDNWa1dhQ2s3Rl8rUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIFN1cmVmaXJlIFBsdWdpbiB2ZXJzaW9uIDIuMjAuMQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0MTRkM2M2MTI1NWEwNTU4ZTE5NWVhIgoKLS0wMDFhMTE0MTRkM2M2MTI1NWEwNTU4ZTE5NWVhCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpIaSwKCldlIHNvbHZlZCAyNCBpc3N1ZXM6Cmh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZWN0SWQ9MTIzMTc5MjcmdmVyc2lvbj0xMjM0MDI5NwoKVGhlcmUgYXJlIDEwMSBpc3N1ZXMgbGVmdCBpbiBKSVJBOgpodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaSNpc3N1ZXMvP2pxbD1wcm9qZWN0KyUzRCtTVVJFRklSRStBTkQrc3RhdHVzKyUzRCtPcGVuK09SREVSK0JZK3ByaW9yaXR5K0RFU0MKClN0YWdpbmcgcmVwbzoKaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2Ni8KaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2Ni9vcmcvYXBhY2hlL21hdmVuL3N1cmVmaXJlL3N1cmVmaXJlLzIuMjAuMS9zdXJlZmlyZS0yLjIwLjEtc291cmNlLXJlbGVhc2UuemlwCgpTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKbWF2ZW4tc3VyZWZpcmUtcGx1Z2luLTIuMjAuMS1zaXRlLXNvdXJjZS56aXAgc2hhMToKNDE4N2E3OTMyMjY4YzdhZDQ2Nzk3MzI1NGQ4NzU4NDA4NWUzMDVjMQoKU3RhZ2luZyBzaXRlOgpodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9zdXJlZmlyZS1hcmNoaXZlcy9zdXJlZmlyZS1MQVRFU1QvCgpHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAoKVm90ZSBvcGVuIGZvciA3MiBob3Vycy4KClsgXSArMQpbIF0gKzAKWyBdIC0xCgotLSAKQ2hlZXJzClRpYm9yCgotLTAwMWExMTQxNGQzYzYxMjU1YTA1NThlMTk1ZWEtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDE4NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gT2N0ICA4IDEwOjIxOjU4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDE4NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBBNURBMzEwMDAxCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgIDggT2N0IDIwMTcgMTA6MjE6NTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3NjY1MyBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IE9jdCAyMDE3IDEwOjIxOjU4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NjU2MyBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IE9jdCAyMDE3IDEwOjIxOjU4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzY1NTIgaW52b2tlZCBieSB1aWQgOTkpOyA4IE9jdCAyMDE3IDEwOjIxOjU4IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDA4IE9jdCAyMDE3IDEwOjIxOjU4ICswMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcXQwLWYxNzUuZ29vZ2xlLmNvbSAobWFpbC1xdDAtZjE3NS5nb29nbGUuY29tIFsyMDkuODUuMjE2LjE3NV0pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCA1QTZFMDFBMDJDRAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgIDggT2N0IDIwMTcgMTA6MjE6NTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtcXQwLWYxNzUuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgaTEzc28zODQ5MjAyMnF0Yy4xMQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDA4IE9jdCAyMDE3IDAzOjIxOjU2IC0wNzAwIChQRFQpClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhV1UwUXRmMm1TeitPTkpPb3h4OUN5QU85c3JWSzhoV0xOYTFGWTBkQTdBS2ttYXAyQjYKCXlETER0YVFQV09zSFJXWHpDWDI0QW8rb2c5Q0tMTWhIczdRdXFOZz0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUFNaEEwNlFxTmxKTHhBVGNMVjZGcDRGdlRlcTFsY1UvV2ZmUm9CU2FkYVo4bTZUQzh3cHFWdG1XMlo5TngwYi9BUGc3aTg5VzM3L2poTldFZ3lPMUE9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjEyOS4xODguNzAgd2l0aCBTTVRQIGlkIGI2bXI1OTMwMTc3eXdsLjQzNi4xNTA3NDU4MTE0OTk1OwogU3VuLCAwOCBPY3QgMjAxNyAwMzoyMTo1NCAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTI5LjE5My42NyB3aXRoIEhUVFA7IFN1biwgOCBPY3QgMjAxNyAwMzoyMTo1NCAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPDMwNjYzMDguUlo3NnNNVDJiY0BnaWdhPgpSZWZlcmVuY2VzOiA8MTA1NDQ2MTUuQjRoTzNQbnZFekBnaWdhPiA8NDFDNDY0N0EtMzgwOC00RTZBLUI0QjItMjJGN0YyNTlFODE1QGhvbnRvbi5vcmc+CiA8Q0FLdVZ6QlQtWnczSGQwQ0xxVDY0a1FYMnBTcUZDK052d0Q5dU1GZXlSNWs4OUY2bjdBQG1haWwuZ21haWwuY29tPiA8MzA2NjMwOC5SWjc2c01UMmJjQGdpZ2E+CkZyb206IFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4KRGF0ZTogU3VuLCA4IE9jdCAyMDE3IDEyOjIxOjU0ICswMjAwClgtR21haWwtT3JpZ2luYWwtTWVzc2FnZS1JRDogPENBS3VWekJUcHd5Umo3ZGtwTk9HYkRmRG9TeS1iOXh3TUpIaDY0cVJlMXhHYXI5b2REUUBtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JRDogPENBS3VWekJUcHd5Umo3ZGtwTk9HYkRmRG9TeS1iOXh3TUpIaDY0cVJlMXhHYXI5b2REUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IEplbmtpbnMgYW5kIE1hdmVuIDMuMC41IG9yIEpESyA3ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjA4OWUwODI1NjA2ODc1NTE0YjA1NWIwNjcxYzciCgotLTA4OWUwODI1NjA2ODc1NTE0YjA1NWIwNjcxYzcKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKV291bGQgd2UgbmVlZCB0byBoYXZlIHRoZSBVUkxzIGxpa2UgdGhlc2U/CmdpdGh1Yi9hcGFjaGUvKioqL3JlcG8KaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS8qbWF2ZW4tcGx1Z2lucyovbWF2ZW4tY2xlYW4tcGx1Z2luLwpodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlLyptYXZlbi1zaGFyZWQqL21hdmVuLXNoYXJlZC11dGlscy8KCgoKT24gU3VuLCBPY3QgOCwgMjAxNyBhdCA0OjU1IEFNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gPQp3cm90ZToKCj4gVExEUjsgPTNECj4gUGVyaGFwcyB3ZSBjYW4gc3RhcnQgd2l0aCAyIHByb29mcyBvZiBjb25jZXB0Ogo+IDEuIGZ1bGwgZ2l0IGNsb25lICsgSmVua2lucyBqb2JzIGZvciB0aGUgNyBleGlzdGluZyBnaXQgcmVwb3MgKHdpdGggNgo+IGFkZGl0aW9uYWwgb25lcyBpbiAyIGRheXMpCj4gMi4gZ2l0IHNwbGl0IG9mIG9uZSBvZiB0aGUgYWdncmVnYXRvciBzdm4gdHJ1bms6IHNraW5zIG9yIGRveGlhLXRvb2xzIGNhbgo+IGJlCj4gZWFzeSBjaG9pY2VzIHNpbmNlIHRoZXkgYXJlIGxpZ2h0LCB3aGVyZSBwbHVnaW5zIG9yIHNoYXJlZCBhcmUgcGVyaGFwcyB0bz0Kbwo+IGhlYXZ5LiBUaGUgb25lIHdvcmtpbmcgb24gdGhpcyBQb0Mgd2lsbCBtYWtlIGhpcyBjaG9pY2UKPgo+IHRoZW4gbW9yZSBkZXRhaWxlZCBhbnN3ZXIgaW5saW5lIHRoYXQgbGVhZCB0byB0aGlzIFBvQ3MgcHJvcG9zYWwKPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUMzPUE5Cj4KPiBMZSBkaW1hbmNoZSA4IG9jdG9icmUgMjAxNywgMDA6MDI6MTAgQ0VTVCBUaWJvciBEaWdhbmEgYSA9QzM9QTljcml0IDoKPiA+IEkgZG9uJ3QgdGhpbmsgdGhlIGRldnMgd291bGQgd29yayBvbiBhbGwgYXJ0aWZhY3RzKHByb2plY3RzKSBhIHRpbWUuCj4gc3VyZSwgSSB0aGluayBJJ20gb25lIG9mIHRoZSBmZXcgcGVvcGxlIHdvcmtpbmcgb24gbmVhciBldmVyeXRoaW5nICh3aXRoCj4gcmFyZQo+IGV4Y2VwdGlvbnMgbGlrZSBTdXJlZmlyZSwgYXMgeW91IG5vdGljZWQgOikgKQo+IGJ1dCBmb3IgdXN1YWwgY29udHJpYnV0b3IsIHRoZXJlIGlzIG5vIGlzc3VlCj4KPiBJJ20gbm90IGEgZ2l0IGV4cGVydCwgdGhlbiBJIGRvbid0IGtub3cgaWYgZWFzeSAiZnVsbCBNYXZlbiBjbG9uZSIgaXMKPiBiZXR0ZXIKPiBkb25lIHdpdGggYSBzaGVsbCBzY3JpcHQgb3Igc29tZSBnaXQgbW9kdWxlcwo+Cj4gPiBJZiB0aGUgbmFtaW5nIGNvbnZlbnRpb24gb2YgcmVwbyBmb3IgYSBwbHVnaW4gd291bGQgYmUgYXJ0aWZhY3RJZCwgbGlrZQo+ID4gL21hdmVuLWNsZWFuLXBsdWdpbiwgdGhlbiBldmVuIGVhc3kgdG8gZmlndXJlIG91dCB3aGljaCBvbmUgdG8gY2xvbmUuCj4gPiBUaGUgbW9zdCBsaWtlbHkgdGhlIGRldiB3b3VsZCBqdXN0IGNsb25lIG9uZSByZXBvIHNoZS9oZSBpcyBpbnRlcmVzdGVkID0KaW4KPiA+IGF0IHRoZSBtb21lbnQsIGkuZS4gcmVwb3NpdG9yeSAvbWF2ZW4tY2xlYW4tcGx1Z2luLCBsZXQncyBzYXkuCj4gPiBJdCdzIGdvb2QgdG8gYXZvaWQgYW55IHNoYXJlZCBmaWxlcyBhY3Jvc3MgdGhlbSwgZXZlbiBJIGRvbid0IHRoaW5rIGRldj0Kcwo+ID4gc2hhcmUgc29tZSBpbiBzdm4gdG9kYXkuIFRoZSByZWxlYXNlIHByb2Nlc3Mgd291bGQgYmUgcXVpdGUgdXN1YWwsIGkuZS4KPiBvbmUKPiA+IHJlcG8gPTNEIG9uZSBwcm9qZWN0LCBhbmQgbmV3IGRldnMgYWxyZWFkeSBoYXZlIHRoZXNlIGV4cGVyaWVuY2VzIHdoaWNoCj4gd2lsbAo+ID4gYmUgc2ltcGxlIGZvciB0aGVtIHRvIGFkYXB0IGZhc3Rlci4KPiArMQo+IHRoZSBvbmx5IGRyYXdiYWNrIEkgc2VlIGN1cnJlbnRseSBpcyB0aGF0IHRoZXJlIGlzIG5vIG5hdHVyYWwgZ3JvdXBpbmcsCj4gdGhlbgo+IHdlIGhhdmUgYSBmbGF0IGxpdCBvZiBuZWFyIDEwMCBnaXQgcmVwb3Mgd2l0aG91dCB0aGUgY3VycmVudCBzdHJ1Y3R1cmUKPiAocGx1Z2lucywgc2hhcmVkIGNvbXBvbmVudHMsIHNraW5zLCAuLi4pOiBJIHRoaW5rIGNvbXBvbmVudHMgc3RydWN0dXJlIGlzCj4gdXNlZnVsIGZvciBtYWludGVuYWJpbGl0eQo+IGJ1dCBub3QgcmVhbGx5IGEgY29tcGxldGUgc2hvd3N0b3BwZXIKPiBhbmQgcGVyaGFwcyB0aGUgIk1hdmVuIGZ1bGwgY2xvbmUiIHRvb2xpbmcgY2FuIHJlLWNyZWF0ZSBzb21lIGdyb3VwaW5nIHRvCj4ga2VlcAo+IHZpc2libGUgc3RydWN0dXJlCj4KPiBOb3csIHNvbWVvbmUgaGFzIHRvIGtub3cgaG93IHRvIGNyZWF0ZSBwZXItY29tcG9uZW50IGdpdCByZXBvIHdpdGggdGFncwo+IChlaXRoZXIgYnkgcmV3b3JraW5nIGV4aXRpbmcgZ2l0IG1pcnJvcnMsIGVpdGhlciBieSByZXN0YXJ0aW5nIGZyb20gc3ZuKSwKPiBhbmQKPiB0aGF0J3Mgbm90IG1lIDopCj4KPiBnaXZlbiB0aGUgdm9sdW1lIChhZGRpbmcgNzAgZ2l0IHJlcG9zIGZvciBNYXZlbiksIHdlJ2xsIGhhdmUgdG8gdGVsbCBpbmZyPQphCj4gYWJvdXQgaXQuCj4KPiBUaGVuIHRoZXJlIGlzIHRoZSBKZW5raW5zIGpvYnMgY29uZmlndXJhdGlvbjoKPiAtIHdlIG5lZWQgZWFzeSBKZW5raW5zZmlsZSBpbiBlYWNoIHJlcG8KPiAtIHdlIG5lZWQgZWFzeSA4MCBqb2JzIGNyZWF0aW9uIChubywgSSB3b24ndCBtYW51YWxseSBjcmVhdGUgODAgam9icwo+IHBlcnNvbmFsbHkpCj4gQW5kIG9uY2UgYWdhaW4sIGluZnJhIHdpbGwgaGF2ZSB0byBiZSBpbiB0aGUgbG9vcCAoYXQgSmVua2lucyBzaWRlIHRoaXMKPiB0aW1lKSwKPiBzaW5jZSBJIGZlYXIgdGhlIGxvYWQgb24gSmVua2lucyBtYXN0ZXIgbm9kZSB3b24ndCBiZSBsaWdodDogcGVyaGFwcyB0aGF0PQoncwo+IHdoZXJlIEplbmtpbnMgZm9sZGVycyB3aWxsIGJlIHVzZWZ1bCwgYnV0IEknbSBub3QgYSBKZW5raW5zIGV4cGVydCBlaXRoZXI9Ci4KPgo+Cj4gSWYgZXZlcnl0aGluZyBzZWVtcyBmZWFzaWJsZSB0byBzcGxpdCBvdXIgc3ZuIGNvZGUgaW50byAxIGdpdCByZXBvIHBlci0KPiBjb21wb25lbnQsIHdoaWNoIHdpbGwgYnJpbmcgdXMgdG8gImZ1bGwgTWF2ZW4gY29kZSIgYmVpbmcgbmVhciAxMDAgcmVwb3MsCj4gSSdtCj4gb2sgd2l0aCBpdC4KPiBXZSdsbCBuZWVkIHRoZSBoZWxwIG9mIG1pc2MgZXhwZXJ0cyBvbiBKZW5raW5zIGFuZCBnaXQgdG8gcHJlcGFyZSB0aGluZ3MgPQphdAo+IHRoaXMgc2NhbGUuCj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+CgotLTA4OWUwODI1NjA2ODc1NTE0YjA1NWIwNjcxYzctLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDAxOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgU2VwIDE0IDA1OjU5OjIyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDAxOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBENDI1MjFBMTE5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMTQgU2VwIDIwMTcgMDU6NTk6MjIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5OTYyMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNCBTZXAgMjAxNyAwNTo1OToyMiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTk1MzEgaW52b2tlZCBieSB1aWQgNTAwKTsgMTQgU2VwIDIwMTcgMDU6NTk6MjIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5OTUxNyBpbnZva2VkIGJ5IHVpZCA5OSk7IDE0IFNlcCAyMDE3IDA1OjU5OjIxIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAxNCBTZXAgMjAxNyAwNTo1OToyMSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDIzQTY1MThDRjhDCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAxNCBTZXAgMjAxNyAwNTo1OToyMSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuODc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuODc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z29vZ2xlbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCAwRGRIWjNyM2JpQ1MgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsIDE0IFNlcCAyMDE3IDA1OjU5OjIwICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwteXcwLWYxNzguZ29vZ2xlLmNvbSAobWFpbC15dzAtZjE3OC5nb29nbGUuY29tIFsyMDkuODUuMTYxLjE3OF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAzNzczMDVGQUYzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAxNCBTZXAgMjAxNyAwNTo1OToxOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC15dzAtZjE3OC5nb29nbGUuY29tIHdpdGggU01UUCBpZCB2NzJzbzUwODgxOTZ5d2EuMwogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3IDIyOjU5OjE5IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nb29nbGVtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9b3M0MERGMjNGQzlCTkV1OHRIeVJGZHBMcVE4ZEQzbFJWVnNaeWYwY3BKQT07CiAgICAgICAgYj1JV3dIMkhraG13WTZQaGRIR2FvQ2tybmVyT3VFQVJkR1pHSDFrN3AxU0ppV2RzRW1uS05lRTBSYTdUZTk4eDBuMmcKICAgICAgICAgZ3gxZnRaSytEL1FVdElTeDNPZGlRdmFaV2tDMnliZlJZbzg5cWpZOFVKaXN1R21UU0RYYVh3Z0hsMWdmeGVCNmszWFUKICAgICAgICAgNG1vRkJBZ1VVWkQ5enZrblBTYmtmNkEvakFXVHhXUFBpSk5pei9aOW5Vbnh5em5ZbzNrOEFETzJSWUljbnNzdW5VaEcKICAgICAgICAgRUl0UW1SeUpJbnN1amdETytIZWYvcVkya2plTmZQeWNCclFPdkQwendIVHJnTVRFT0QwUlJQYXlha2l5ZHNMc3hqaGcKICAgICAgICAgblFzbFppaU9YeTY0cjJXaVRKaHpVYjRLblhOWkV5YWhZMU44R2pUQkljMklBeUVSUmhhQnpkcWRkSlJKM3FiNUhyL0sKICAgICAgICAgb1hhZz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9b3M0MERGMjNGQzlCTkV1OHRIeVJGZHBMcVE4ZEQzbFJWVnNaeWYwY3BKQT07CiAgICAgICAgYj1yaVZEcUV0N2VEWHdzVS9VQVBBR05ROU1lckViMVkwb05FMXYwREVsQ25hd3YxbW1MN2xCMm5VN1diL1ZpaFlxUlIKICAgICAgICAgQkdZcytwOWxoVjIyVUNCYVU0SFZOSEFVNzB1Z2l4d3k1b1RwTkd5OEdEMHkyNG1KSFB1dklMT3RqQUVMS3hqclZDYTYKICAgICAgICAgaWxNbXRvSWdwYlhobVVFYTg5azVzdENUdVNOdWJPY3pabUdMdHFFeDZsbDlvTjk5a0tVQlhPcGltY0J5b2RKc1dSMWIKICAgICAgICAgYXFSaC8xcnJaQjRkMTB1eE5heGhpL0FzeDZKdjhobnQ5WDBnbG82WVJIbW5FK3NjOWZ4U3ZiTENHREhKb0ROZ2N3RUcKICAgICAgICAgR0dtdjVQQkpua0Y2NCtkSjdPNzRnc0hZKytSVTRBcUhic1hFSSsrSzVhMXJXd2c2bFNDYTZ1RXg1ajVlQnZQNnRKbmsKICAgICAgICAgdVR1QT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVaWRZNUhGM3Q5N0d0TmU2Z0lrVlNScG13b1NrNTBzdzQ4aTRBbURGTGErellkYUdyaUIKCWZYODMxNElJcSsxeVlVQ0MwcEhZWEh3NE56aGxvRTdjZTdkYm05RT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUI5d2JUQyswK0s5alR2S0diejY4eWhCSXkveTdyeEpQalFpU1I3MS8yUnV1TzlucmF3NmJMYW05WU5DTEp5dzFNSFc0aFEvZnhTMmtQOE5lV25aaDQ9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjM3LjEwNy44MSB3aXRoIFNNVFAgaWQgbzE3bXIxNTUxODUzNnlibS41MS4xNTA1MzY4NzU3Nzk0OwogV2VkLCAxMyBTZXAgMjAxNyAyMjo1OToxNyAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTI5LjE1Ny4xOTggd2l0aCBIVFRQOyBXZWQsIDEzIFNlcCAyMDE3IDIyOjU5OjE3IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0FLdVZ6QlRqTk9iUUxtdG84Zjk3Zk8xeCtUMWkxX29UejdNX08wM1ZrV2FDazdGXytRQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0FLdVZ6QlRqTk9iUUxtdG84Zjk3Zk8xeCtUMWkxX29UejdNX08wM1ZrV2FDazdGXytRQG1haWwuZ21haWwuY29tPgpGcm9tOiBUaWJvciBEaWdhbmEgPHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbT4KRGF0ZTogVGh1LCAxNCBTZXAgMjAxNyAwNzo1OToxNyArMDIwMApNZXNzYWdlLUlEOiA8Q0FLdVZ6QlRxZlIxWjExLWYyQ05VM0wxX0djWXorZDU5eCtXMkw4VlpDM3FMZXpkMVh3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIFN1cmVmaXJlIFBsdWdpbiB2ZXJzaW9uIDIuMjAuMQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwODllMDgyNjRlNmMxMDdjOTIwNTU5MWZmYTMyIgoKLS0wODllMDgyNjRlNmMxMDdjOTIwNTU5MWZmYTMyCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpQbHMgcGFydGljaXBhdGUgaW4gdGhlIHZvdGUgYW5kIHRlc3QuCgpPbiBNb24sIFNlcCAxMSwgMjAxNyBhdCA1OjMzIEFNLCBUaWJvciBEaWdhbmEgPHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbT4Kd3JvdGU6Cgo+IEhpLAo+Cj4gV2Ugc29sdmVkIDI0IGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4gcHJvamVjdElkPTEyMzE3OTI3JnZlcnNpb249MTIzNDAyOTcKPgo+IFRoZXJlIGFyZSAxMDEgaXNzdWVzIGxlZnQgaW4gSklSQToKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaSNpc3N1ZXMvP2pxbD1wcm9qZWN0KyUKPiAzRCtTVVJFRklSRStBTkQrc3RhdHVzKyUzRCtPcGVuK09SREVSK0JZK3ByaW9yaXR5K0RFU0MKPgo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY2Lwo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+IDEzNjYvb3JnL2FwYWNoZS9tYXZlbi9zdXJlZmlyZS9zdXJlZmlyZS8yLjIwLjEvc3VyZWZpcmUtMi4yMC4xLXNvdXJjZS0KPiByZWxlYXNlLnppcAo+Cj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gbWF2ZW4tc3VyZWZpcmUtcGx1Z2luLTIuMjAuMS1zaXRlLXNvdXJjZS56aXAgc2hhMToKPiA0MTg3YTc5MzIyNjhjN2FkNDY3OTczMjU0ZDg3NTg0MDg1ZTMwNWMxCj4KPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvc3VyZWZpcmUtYXJjaGl2ZXMvc3VyZWZpcmUtTEFURVNULwo+Cj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+Cj4gVm90ZSBvcGVuIGZvciA3MiBob3Vycy4KPgo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQo+Cj4gLS0KPiBDaGVlcnMKPiBUaWJvcgo+CgoKCi0tIApDaGVlcnMKVGlib3IKCi0tMDg5ZTA4MjY0ZTZjMTA3YzkyMDU1OTFmZmEzMi0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MDQyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBTZXAgMTUgMTU6MTU6MjAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDQyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDgyNDBBMUE2NTkKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAxNSBTZXAgMjAxNyAxNToxNToyMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDY5MjEyIGludm9rZWQgYnkgdWlkIDUwMCk7IDE1IFNlcCAyMDE3IDE1OjE1OjE3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2OTA3NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNSBTZXAgMjAxNyAxNToxNToxNyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY5MDM4IGludm9rZWQgYnkgdWlkIDk5KTsgMTUgU2VwIDIwMTcgMTU6MTU6MTcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMTUgU2VwIDIwMTcgMTU6MTU6MTcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC15dzAtZjE2OS5nb29nbGUuY29tIChtYWlsLXl3MC1mMTY5Lmdvb2dsZS5jb20gWzIwOS44NS4xNjEuMTY5XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEFDQkVGMUEwMTJCOwoJRnJpLCAxNSBTZXAgMjAxNyAxNToxNToxNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC15dzAtZjE2OS5nb29nbGUuY29tIHdpdGggU01UUCBpZCBpNnNvMTYyNDg5MXl3Yy45OwogICAgICAgIEZyaSwgMTUgU2VwIDIwMTcgMDg6MTU6MTYgLTA3MDAgKFBEVCkKWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVpalRJUGtXQzBYVzVuOEE1NWJpSmxsSThFZkJsQlk5UFZWcG1yeFVLUmRzaThCc0lIVwoJb2RXY2ZKUkhTZmx0MTlHTTlQYVgyTS92TTk0UXAzcjVLYjhzVFl3PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQURLQ05iNm1ybkFibXBPWitoM0JBd2YxdWd1endNQXYxSmZIbmxMbTRaMXVDSDhQaGtGRGxXTGFRQUIwdVZMOEw0V1QzNGtvY25OUndjNEh5UmhnU3RNdkI5az0KWC1SZWNlaXZlZDogYnkgMTAuMTMuMjQ3LjUgd2l0aCBTTVRQIGlkIGg1bXIyMzc4MTk3N3l3Zi4xMzQuMTUwNTQ4ODUxNTMwNzsKIEZyaSwgMTUgU2VwIDIwMTcgMDg6MTU6MTUgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjEyOS4xNTcuMTk4IHdpdGggSFRUUDsgRnJpLCAxNSBTZXAgMjAxNyAwODoxNToxNCAtMDcwMCAoUERUKQpGcm9tOiBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+CkRhdGU6IEZyaSwgMTUgU2VwIDIwMTcgMTc6MTU6MTQgKzAyMDAKWC1HbWFpbC1PcmlnaW5hbC1NZXNzYWdlLUlEOiA8Q0FLdVZ6QlR0NmdQV2tqRFM3QWNMQktqN0MxaTlDN0NnalJhM3MwbVEwUy1QPTNDaWlRQG1haWwuZ21haWwuY29tPgpNZXNzYWdlLUlEOiA8Q0FLdVZ6QlR0NmdQV2tqRFM3QWNMQktqN0MxaTlDN0NnalJhM3MwbVEwUy1QPTNDaWlRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBbQU5OXSBBcGFjaGUgTWF2ZW4gU3VyZWZpcmUgUGx1Z2luIDIuMjAuMSBSZWxlYXNlZApUbzogYW5ub3VuY2VAbWF2ZW4uYXBhY2hlLm9yZywgdXNlcnNAbWF2ZW4uYXBhY2hlLm9yZwpDYzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSI5NGViMmMwN2YwZTQyYjFkYTEwNTU5M2JkY2QyIgoKLS05NGViMmMwN2YwZTQyYjFkYTEwNTU5M2JkY2QyCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpUaGUgQXBhY2hlIE1hdmVuIHRlYW0gaXMgcGxlYXNlZCB0byBhbm5vdW5jZSB0aGUgcmVsZWFzZSBvZiB0aGUgQXBhY2hlCk1hdmVuIFN1cmVmaXJlIFBsdWdpbiwgdmVyc2lvbiAyLjIwLjEKClRoZSByZWxlYXNlIGNvbnRhaW5zIDI0IGJ1ZyBmaXhlcy4KQWdhaW4gd2UgcmVjZWl2ZWQgY29udHJpYnV0aW9ucyBmcm9tIHRoZSBjb21tdW5pdHkgaW4gZm9ybSBvZiBidWcgcmVwb3J0cwphbmQgYnVnIGZpeGVzLgpUaGFuayB5b3UgYW5kIGtlZXAgdGhlbSBjb21pbmchCgpodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zL21hdmVuLXN1cmVmaXJlLXBsdWdpbi8KCllvdSBzaG91bGQgc3BlY2lmeSB0aGUgdmVyc2lvbiBpbiB5b3VyIHByb2plY3QncyBwbHVnaW4gY29uZmlndXJhdGlvbjoKCjxwbHVnaW4+CiAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgogIDxhcnRpZmFjdElkPm1hdmVuLXN1cmVmaXJlLXBsdWdpbjwvYXJ0aWZhY3RJZD4KICA8dmVyc2lvbj4yLjIwLjE8L3ZlcnNpb24+CjwvcGx1Z2luPgoKb3IgZm9yIGZhaWxzYWZlOgoKPHBsdWdpbj4KICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CiAgPGFydGlmYWN0SWQ+bWF2ZW4tZmFpbHNhZmUtcGx1Z2luPC9hcnRpZmFjdElkPgogIDx2ZXJzaW9uPjIuMjAuMTwvdmVyc2lvbj4KPC9wbHVnaW4+CgpvciBmb3Igc3VyZWZpcmUtcmVwb3J0OgoKPHBsdWdpbj4KICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CiAgPGFydGlmYWN0SWQ+bWF2ZW4tc3VyZWZpcmUtcmVwb3J0LXBsdWdpbjwvYXJ0aWZhY3RJZD4KICA8dmVyc2lvbj4yLjIwLjE8L3ZlcnNpb24+CjwvcGx1Z2luPgoKCiAgICAgICAgUmVsZWFzZSBOb3RlcyAtIE1hdmVuIFN1cmVmaXJlIC0gVmVyc2lvbiAyLjIwLjEKCjxoMj4gICAgICAgIEJ1Zwo8L2gyPgo8dWw+CjxsaT5bPGEgaHJlZj0naHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9TVVJFRklSRS0xMjY0Jz5TVVJFRklSRS0xMjY0PC9hPl0KLSAgICAgICAgIFNvbWUgdGVzdHMgY2FuIGJlIGxvc3Qgd2hlbiBydW5uaW5nIGluIHBhcmFsbGVsIHdpdGgKcGFyYW1ldGVyaXplZCB0ZXN0cwo8L2xpPgo8bGk+WzxhIGhyZWY9J2h0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvU1VSRUZJUkUtMTI2NSc+U1VSRUZJUkUtMTI2NTwvYT5dCi0gICAgICAgICByZXVzZUZvcmtzPWZhbHNlIGZhaWxzIG9uIGpkay05LWVhIGJ1aWxkcwo8L2xpPgo8bGk+WzxhIGhyZWY9J2h0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvU1VSRUZJUkUtMTMwMic+U1VSRUZJUkUtMTMwMjwvYT5dCi0gICAgICAgICBTdXJlZmlyZSBkb2VzIG5vdCB3YWl0IGxvbmcgZW5vdWdoIGZvciB0aGUgZm9ya2VkIFZNIGFuZCBhc3N1bWVzCml0IHRvIGJlIGRlYWQKPC9saT4KPGxpPls8YSBocmVmPSdodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL1NVUkVGSVJFLTEzNjQnPlNVUkVGSVJFLTEzNjQ8L2E+XQotICAgICAgICAgUmVwb3J0IFhNTCBzaG91bGQgY29udGFpbiBzeXN0ZW0gcHJvcGVydGllcyBvZiBmb3JrZWQgSlZNCjwvbGk+CjxsaT5bPGEgaHJlZj0naHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9TVVJFRklSRS0xMzY3Jz5TVVJFRklSRS0xMzY3PC9hPl0KLSAgICAgICAgIFN5c3RlbSBPdXRwdXQgYW5kIEVycm9yIHNob3VsZCBiZSByZXBvcnRlZCBpbiBwYXJhbGxlbCBKVW5pdAp0ZXN0cyBpZiBBc3N1bXB0aW9uIGZhaWxzLgo8L2xpPgo8bGk+WzxhIGhyZWY9J2h0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvU1VSRUZJUkUtMTM3Nic+U1VSRUZJUkUtMTM3NjwvYT5dCi0gICAgICAgICAmcXVvdDtUaGUgZm9ya2VkIFZNIHRlcm1pbmF0ZWQgd2l0aG91dCBwcm9wZXJseSBzYXlpbmcKZ29vZGJ5ZSZxdW90OyB3aGVuIHJ1bm5pbmcgU3VyZWZpcmUgaW4gYSB2ZXJ5IGRlZXAgcHJvamVjdCBzdHJ1Y3R1cmUgb24KV2luZG93cwo8L2xpPgo8bGk+WzxhIGhyZWY9J2h0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvU1VSRUZJUkUtMTM4Mic+U1VSRUZJUkUtMTM4MjwvYT5dCi0gICAgICAgICBPdXRPZk1lbW9yeUVycm9yIG9jY3VycyB3aGVuIEpVbml0IDUgdGVzdCBmYWlscwo8L2xpPgo8bGk+WzxhIGhyZWY9J2h0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvU1VSRUZJUkUtMTM5MSc+U1VSRUZJUkUtMTM5MTwvYT5dCi0gICAgICAgICBTeXN0ZW0gUHJvcGVydHkgdmFyaWFibGVzIHByb2Nlc3NlZCB0d2ljZSBpbiBjYWxjdWxhdGlvbiBvZgplZmZlY3RpdmUgcHJvcGVydGllcwo8L2xpPgo8bGk+WzxhIGhyZWY9J2h0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvU1VSRUZJUkUtMTM5Nic+U1VSRUZJUkUtMTM5NjwvYT5dCi0gICAgICAgICBQcm92aWRlciBjbGFzcyBwYXRoIGlzIGluY29ycmVjdCBmb3IgY3VzdG9tIHByb3ZpZGVyIGluIEZhaWxzYWZlCjwvbGk+CjxsaT5bPGEgaHJlZj0naHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9TVVJFRklSRS0xNDAwJz5TVVJFRklSRS0xNDAwPC9hPl0KLSAgICAgICAgIFdpbmRvd3Mgc3VyZWZpcmUgYm9vdCBkaXJlY3Rvcnkgc2hvdWxkIGFwcGVhciBpbiBzeXN0ZW0gZGVmYXVsdAp0ZW1wb3JhcnktZGlyZWN0b3J5CjwvbGk+CjxsaT5bPGEgaHJlZj0naHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9TVVJFRklSRS0xNDAzJz5TVVJFRklSRS0xNDAzPC9hPl0KLSAgICAgICAgIFtKaWdzYXddIFtKYXZhIDldIGFkZCAmcXVvdDstLWFkZC1tb2R1bGVzIGphdmEuc2UuZWUmcXVvdDsgdG8KZm9ya2VkIENMSSBhcmd1bWVudAo8L2xpPgo8bGk+WzxhIGhyZWY9J2h0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvU1VSRUZJUkUtMTQwNCc+U1VSRUZJUkUtMTQwNDwvYT5dCi0gICAgICAgICBQYWNrYWdlIG9mIFNlcnZpY2VMb2FkZXIgd2FzIGNoYW5nZWQgaW4gdmVyc2lvbiAyLjIwIGFuZApkb2N1bWVudGF0aW9uIHVzZXMgcGFja2FnZSBwcm92aWRlcmFwaQo8L2xpPgo8bGk+WzxhIGhyZWY9J2h0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvU1VSRUZJUkUtMTQxMic+U1VSRUZJUkUtMTQxMjwvYT5dCi0gICAgICAgICBGaW5kYnVncyBwbHVnaW4gZmFpbHMgLSBVcGRhdGUgbWF2ZW4tcGFyZW50IHRvIFZlcnNpb24gMzAgYW5kCmRvd25ncmFkZSBtYXZlbi1zaXRlLXBsdWdpbgo8L2xpPgo8bGk+WzxhIGhyZWY9J2h0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvU1VSRUZJUkUtMTQxMyc+U1VSRUZJUkUtMTQxMzwvYT5dCi0gICAgICAgICBKYXZhZG9jIC0gdW5rbm93biBUQUcgQG5vaW5zcGVjdGlvbgo8L2xpPgo8L3VsPgoKPGgyPiAgICAgICAgSW1wcm92ZW1lbnQKPC9oMj4KPHVsPgo8bGk+WzxhIGhyZWY9J2h0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvU1VSRUZJUkUtMTM2MSc+U1VSRUZJUkUtMTM2MTwvYT5dCi0gICAgICAgICBCdWZmZXJpbmcgaW4gU3RhdGVsZXNzWG1sUmVwb3J0ZXIKPC9saT4KPGxpPls8YSBocmVmPSdodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL1NVUkVGSVJFLTEzNjInPlNVUkVGSVJFLTEzNjI8L2E+XQotICAgICAgICAgQnVmZmVyaW5nIGluIENvbnNvbGVPdXRwdXRGaWxlUmVwb3J0ZXIKPC9saT4KPGxpPls8YSBocmVmPSdodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL1NVUkVGSVJFLTEzNjMnPlNVUkVGSVJFLTEzNjM8L2E+XQotICAgICAgICAgSmF2YSAxLjYgZmVhdHVyZXMgQE92ZXJyaWRlIGFuZCBDaGFyc2V0CjwvbGk+CjxsaT5bPGEgaHJlZj0naHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9TVVJFRklSRS0xNDA5Jz5TVVJFRklSRS0xNDA5PC9hPl0KLSAgICAgICAgIFBhcmFsbGVsIHJ1bm5lciBzaG91bGQgbm90IGRyb3AgYXdheSBydW5uZXJzIHRoYXQgaGF2ZSB6ZXJvCmNoaWxkcmVuLgo8L2xpPgo8bGk+WzxhIGhyZWY9J2h0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvU1VSRUZJUkUtMTQxMCc+U1VSRUZJUkUtMTQxMDwvYT5dCi0gICAgICAgICBBZGQgRkFRIGFuZCBpbXByb3ZlIFdhcm5pbmcgbWVzc2FnZSB3aGVuIG5hdGl2ZSBzdHJlYW0gaW4gZm9ya2VkCkpWTSBpcyBjb3JydXB0ZWQKPC9saT4KPGxpPls8YSBocmVmPSdodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL1NVUkVGSVJFLTE0MTEnPlNVUkVGSVJFLTE0MTE8L2E+XQotICAgICAgICAgSW1wcm92ZSBjYWxscyBTdHJpbmcubGVuZ3RoID09IDAgdG8gSmF2YSAxLjYgY2FsbCBTdHJpbmcuaXNFbXB0eQo8L2xpPgo8L3VsPgoKPGgyPiAgICAgICAgVGFzawo8L2gyPgo8dWw+CjxsaT5bPGEgaHJlZj0naHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9TVVJFRklSRS0xMzY2Jz5TVVJFRklSRS0xMzY2PC9hPl0KLSAgICAgICAgIG12biBqYXZhZG9jOmphdmFkb2MgZmFpbHMgb24gSmF2YWRvYyBzeW50YXggd2l0aCBKREsgMS44CjwvbGk+CjxsaT5bPGEgaHJlZj0naHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9TVVJFRklSRS0xMzc1Jz5TVVJFRklSRS0xMzc1PC9hPl0KLSAgICAgICAgIEZpeGluZyBidWlsZCBvbiBXaW5kb3dzIGNtZC5leGUKPC9saT4KPGxpPls8YSBocmVmPSdodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL1NVUkVGSVJFLTEzODAnPlNVUkVGSVJFLTEzODA8L2E+XQotICAgICAgICAgQWJzdHJhY3RDb21tYW5kU3RyZWFtIHNob3VsZCBmbHVzaCBkYXRhIGlmIGFub3RoZXIgVGhyZWFkIG1hcmtzCnRoZSBzdHJlYW0gY2xvc2VkLCBlbXB0eSBzaGFyZWQgYnVmZmVyLgo8L2xpPgo8bGk+WzxhIGhyZWY9J2h0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvU1VSRUZJUkUtMTM4MSc+U1VSRUZJUkUtMTM4MTwvYT5dCi0gICAgICAgICBSZWZhY3RvcmluZyBpbiBBYnN0cmFjdENvbW1hbmRTdHJlYW0gYW5kIE1hc3RlclByb2Nlc3NDb21tYW5kCjwvbGk+CjwvdWw+CgoKRW5qb3ksCgotVGhlIEFwYWNoZSBNYXZlbiB0ZWFtCgotLTk0ZWIyYzA3ZjBlNDJiMWRhMTA1NTkzYmRjZDItLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDMyMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgT2N0IDI0IDAwOjA2OjE5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDMyMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4MzJBNDEwNjk1Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMjQgT2N0IDIwMTcgMDA6MDY6MTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5OTA0MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNCBPY3QgMjAxNyAwMDowNjoxOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTg5NDQgaW52b2tlZCBieSB1aWQgNTAwKTsgMjQgT2N0IDIwMTcgMDA6MDY6MTkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5ODkzMiBpbnZva2VkIGJ5IHVpZCA5OSk7IDI0IE9jdCAyMDE3IDAwOjA2OjE5IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDI0IE9jdCAyMDE3IDAwOjA2OjE5ICswMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtdmswLWY0My5nb29nbGUuY29tIChtYWlsLXZrMC1mNDMuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxMy40M10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCBFMDAxOTFBMDEyRgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjQgT2N0IDIwMTcgMDA6MDY6MTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdmswLWY0My5nb29nbGUuY29tIHdpdGggU01UUCBpZCBxMTNzbzEyMjc4NTkydmtiLjIKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAyMyBPY3QgMjAxNyAxNzowNjoxNiAtMDcwMCAoUERUKQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVVGWmwwdHdlekZzTjBFQk5sMjlRNTA3cEpqT3dLa3U0Y0pXb3k5ZVFOTTRzOFpVUnFoCglSRThwMHNvVXRNb2p3OEJsaFpFRWlKR09meDFtT2UwV000akpoYjg9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtSQXh3TnpteXY3MjUrL3B3b1FOYlJnUW5TWlE0aktnYzN3UTlma240ckhkQVRvSkY0OUl1VmRML1BXSmJ4ZWVaVlRyVG1HWTBlK3NETFBZZXZtNnN3PQpYLVJlY2VpdmVkOiBieSAxMC4zMS42NS4xMzUgd2l0aCBTTVRQIGlkIG8xMjltcjEwOTQ2NjU3dmthLjE4NS4xNTA4ODAzNTc1Njg2OwogTW9uLCAyMyBPY3QgMjAxNyAxNzowNjoxNSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApGcm9tOiBDaHJpc3RvcGhlciA8Y3R1YmJzaWlAYXBhY2hlLm9yZz4KRGF0ZTogVHVlLCAyNCBPY3QgMjAxNyAwMDowNjowNCArMDAwMApYLUdtYWlsLU9yaWdpbmFsLU1lc3NhZ2UtSUQ6IDxDQUw1enE5YUQ3TlY3Y2ZHKzVIMj1nR3Q2UzB6RmdmSC1QZDJFekQ5bWJFSi1zRD1LaHdAbWFpbC5nbWFpbC5jb20+Ck1lc3NhZ2UtSUQ6IDxDQUw1enE5YUQ3TlY3Y2ZHKzVIMj1nR3Q2UzB6RmdmSC1QZDJFekQ5bWJFSi1zRD1LaHdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IE1hdmVuIHBsdWdpbiBkZXZlbG9wZXIgZG91bWVudGF0aW9uClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTRkYmZjODJhMmY4YjA1NWMzZmI1NmIiCgotLTAwMWExMTRkYmZjODJhMmY4YjA1NWMzZmI1NmIKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCkhpLAoKSSBkZXZlbG9wIHNvbWUgTWF2ZW4gcGx1Z2lucywgYW5kIGFtIHN0cnVnZ2xpbmcgdHJ5aW5nIHRvIGZpbmQKZG9jdW1lbnRhdGlvbiBvbiB3aGljaCBkZXBlbmRlbmNpZXMgYXJlIHByb3ZpZGVkIGJ5IGEgcGFydGljdWxhciB2ZXJzaW9uIG9mCk1hdmVuLCBhbmQgd2hlbiBJIHNob3VsZCB1c2UgYSBuZXdlciBjb21wYXRpYmxlIHZlcnNpb24gYXMgdGhlIGRlcGVuZGVuY3kKaW4gbXkgcGx1Z2luLgoKRm9yIGV4YW1wbGUsIEkgaGF2ZSBhIHBsdWdpbiB3aGljaCBkZWNsYXJlcyAzLjIuNSBhcyBhIHByZXJlcXVpc2l0ZSBhbmQgaGFzCnRoZSBmb2xsb3dpbmcgZGVwZW5kZW5jaWVzOgogIG1hdmVuLWNvcmUgKDMuMi41LCBwcm92aWRlZCkKICBtYXZlbi1wbHVnaW4tYXBpICgzLjIuNSwgcHJvdmlkZWQpCiAgbWF2ZW4tcGx1Z2luLWFubm90YXRpb25zICgzLjUsIHByb3ZpZGVkKQogIHBsZXh1cy11dGlscyAoMy4wLjI0LCBwcm92aWRlZCkKCkhvd2V2ZXIsIEkgZG9uJ3QgYWN0dWFsbHkga25vdyB3aGljaCB2ZXJzaW9ucyBvZiB0aGVzZSBwbHVnaW5zIGFyZSBwcm92aWRlZApieSB3aGljaCBNYXZlbiB2ZXJzaW9ucywgYW5kIHdoZXRoZXIgb3Igbm90IEkgY291bGQgdXNlIHRoaXMgcGx1Z2luIHdpdGggYW4KZWFybGllciB2ZXJzaW9uIG9mIE1hdmVuLiBQZXJoYXBzIEkgY291bGQgc2V0IHRoZSBwcmVyZXF1aXNpdGUgdG8gMy4wLjUgYW5kCml0IHdvdWxkIHdvcmsgZmluZT8KCklkZWFsbHksIGV2ZXJ5IHZlcnNpb24gb2YgTWF2ZW4gd291bGQgcmVsZWFzZSB3aXRoIGEgZ3VpZGUgZm9yIHBsdWdpbgpkZXZlbG9wZXJzLCB0byBsZXQgZGV2ZWxvcGVycyBrbm93IHdoaWNoIHZlcnNpb25zIG9mIHRoZSBkZXBlbmRlbmNpZXMgdGhleQpzaG91bGQgdXNlLCBidXQgSSBjYW4ndCBmaW5kIGFueXRoaW5nIGxpa2UgdGhhdC4gSXMgdGhlcmUgYSB1c2VmdWwgZ3VpZGUKc29tZXdoZXJlPwoKQSByZWxhdGVkIHByb2JsZW0gdGhhdCBjb3VsZCBiZSBjb3ZlcmVkIGJ5IGEgZGV2ZWxvcGVyIGd1aWRlOiB3aGljaCBtYXZlbgpsaWJyYXJ5IGNvZGUgaXMgZXhlY3V0ZWQgZHVyaW5nIHBsdWdpbiBleGVjdXRpb24sIGFuZCB3aGljaCBhcmUgZXhlY3V0ZWQKZHVyaW5nIHBsdWdpbiBjb21waWxhdGlvbj8gKEluIG90aGVyIHdvcmRzLCB3aGVuIGlzIGl0IHNhZmUgdG8gdXNlciBhIG5ld2VyCnZlcnNpb24gb2YgYSBwYXJ0aWN1bGFyIGRlcGVuZGVuY3ksIHdpdGhvdXQgYnJlYWtpbmcgdGhhdCBwbHVnaW4ncwpjb21wYXRpYmlsaXR5IHdpdGggYSBwYXJ0aWN1bGFyIHZlcnNpb24gb2YgTWF2ZW4/KSBQZXJoYXBzIHRoaXMgcmVhbGx5CmJvaWxzIGRvd24gdG86ICJIb3cgc3RhYmxlIGFyZSB0aGUgQVBJcyBmb3IgdGhlc2UgTWF2ZW4gbGlicmFyaWVzIHVzZWQgZm9yCk1hdmVuIHBsdWdpbnM/IgoKSG9wZWZ1bGx5LCB0aGVyZSdzIGFscmVhZHkgYSB1c2VmdWwgZ3VpZGUgb3V0IHRoZXJlLCBvciBtYXliZSBqdXN0IGEgZmV3CnNpbXBsZSBndWlkZWxpbmVzIHdoaWNoIGNhbiBiZSBzaGFyZWQgd2l0aCBtZS4gT3RoZXJ3aXNlLCBJIGZlYXIgdGhpcyBtaWdodApiZSBhbm90aGVyICJkZXBlbmRlbmN5IGhlbGwiIGlzc3VlLgoKClRoYW5rcyBmb3IgYW55IGd1aWRhbmNlIHlvdSBjYW4gcHJvdmlkZSBmb3IgbWFuYWdpbmcgcGx1Z2luIGRlcGVuZGVuY2llcywKCkNocmlzdG9waGVyCgotLTAwMWExMTRkYmZjODJhMmY4YjA1NWMzZmI1NmItLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDI5OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgT2N0IDIxIDEzOjAyOjQ2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI5OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAzQUVBODEwRjBFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMjEgT2N0IDIwMTcgMTM6MDI6NDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4MTk2IGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIE9jdCAyMDE3IDEzOjAyOjQ1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MTE5IGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIE9jdCAyMDE3IDEzOjAyOjQ1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODEwNiBpbnZva2VkIGJ5IHVpZCA5OSk7IDIxIE9jdCAyMDE3IDEzOjAyOjQ1IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAyMSBPY3QgMjAxNyAxMzowMjo0NSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDkzMzU5QzIxNTEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDIxIE9jdCAyMDE3IDEzOjAyOjQ0ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi40OApYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjQ4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgSFRNTF9NRVNTQUdFPTIsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KQoJaGVhZGVyLmQ9Y2FybG9zc2FuY2hlei1ldS4yMDE1MDYyMy5nYXBwc3NtdHAuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBJcXpYc09SZ25IRnUgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsIDIxIE9jdCAyMDE3IDEzOjAyOjQyICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd20wLWY0MS5nb29nbGUuY29tIChtYWlsLXdtMC1mNDEuZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjQxXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIENFQjQ0NUY0N0QKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDIxIE9jdCAyMDE3IDEzOjAyOjQxICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNDEuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgdTEzOHNvMjE3MTIzOXdtdS41CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMjEgT2N0IDIwMTcgMDY6MDI6NDEgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWNhcmxvc3NhbmNoZXotZXUuMjAxNTA2MjMuZ2FwcHNzbXRwLmNvbTsgcz0yMDE1MDYyMzsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9K2FNRExnZnlJbGlteFduVHJJZzdxR1UyeU5Qb2cvYVhYK0ZvQUgzdFJUUT07CiAgICAgICAgYj1VM3EvL084Qlg2bUErRkltTUVFR3lsWHNNV05TSmdycnpQbk53RTBSK1JXZ0wxRm9BQ2NvUjdxZ2dwSmo2Y2lLS1AKICAgICAgICAgQ0ozSFo2enhVTFZraHB0TFozajJIbW16eVFXYVZWUTlFcHJlMlkxOG03YUFsQ1ppWEVzSm5iSkl4cjJvNEp1cUlERUQKICAgICAgICAgWEVKY25wdklWR1ZUM1huMlVtYUVoaS85eW1mbUUzcDltYU5vWGRmZXM3a2h4LzJCdk1xbHBtQkRHK2xCVklXc0tHUjAKICAgICAgICAgeHhkS1ZIdU1SaENPSHdyREFiRm1JbFNISUo4VW1aTGJOdXZMTE5ENUovUDZlT0YxbmZLcmNsZ3NkTFJkMnRkYkMvNkIKICAgICAgICAgWGdDd0JFa09xdUJ5RFdkdllQVVZVMlJmQ0kvUTE3YkxJNE1sL3hsK1JWVk8wN0xnWlNCQkZwODBEYUM4dXA3Zit4eDAKICAgICAgICAgSjZyZz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9K2FNRExnZnlJbGlteFduVHJJZzdxR1UyeU5Qb2cvYVhYK0ZvQUgzdFJUUT07CiAgICAgICAgYj1TT2hRZFNYbUNzMHdWYXNMSjBma1Q5RkRqL0tkVVVBa1BHQkUzaldMdTNwOG9nbHkrVzRUbTY5bFA1QjdUMEd3bjgKICAgICAgICAgK0NzTUpXTUdZeUtMUUsvRVFWR0pkbnk4TllBaTRQVU9VUmRuZ2NTelc0R0ZHS3F3U3k3S0hlNkpDMUdyYU1MbHpSbTkKICAgICAgICAgeno5WUV4YWJyeTFBL1JIYzg4aTJ5VWU5ckFWdTV1amlhSXcraW40UHBtVFlTZm93QW04UlNsbXlUdUk5akZ2cFZaaFcKICAgICAgICAgSjh2cXAxbDA3b1NEQ1l0Q2RocjVocC94ckFKQ0VrOHo5T1Q3QXFJT1RVRnU1TWtvc2QzdHBZUXB5Rk5vT3AzWFMzL1AKICAgICAgICAgeFB0K0VqSnFhQ0dQaUhCZXpOZmxtYXdvekR5amtzejFGMGRvbmxlalgrYWE5TitQTjhuYzlpTWxabEJjZmxRVzZlM3oKICAgICAgICAgZ2Fidz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVmIreTBOYW9XcmxTS2J3SzNBWGdYcUF0Ukk0c3JNblZBSjh4MG1CQjNMaHNPZEJUZFAKCTlnbmpuWjhWTzFiRVljUllLdzlwWStBcEJPRDZOUT09ClgtUmVjZWl2ZWQ6IGJ5IDEwLjgwLjE3Ny4xOTMgd2l0aCBTTVRQIGlkIG4xbXIxMDM1MDY3M2VkZC4zMC4xNTA4NTkwOTYwMzk3OwogICAgICAgIFNhdCwgMjEgT2N0IDIwMTcgMDY6MDI6NDAgLTA3MDAgKFBEVCkKUmVjZWl2ZWQ6IGZyb20gbWFpbC13cjAtZjE3NS5nb29nbGUuY29tIChtYWlsLXdyMC1mMTc1Lmdvb2dsZS5jb20uIFsyMDkuODUuMTI4LjE3NV0pCiAgICAgICAgYnkgc210cC5nbWFpbC5jb20gd2l0aCBFU01UUFNBIGlkIGkxN3NtMzEzMjc4N2VkZS42NC4yMDE3LjEwLjIxLjA2LjAyLjM5CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KICAgICAgICAodmVyc2lvbj1UTFMxXzIgY2lwaGVyPUVDREhFLVJTQS1BRVMxMjgtR0NNLVNIQTI1NiBiaXRzPTEyOC8xMjgpOwogICAgICAgIFNhdCwgMjEgT2N0IDIwMTcgMDY6MDI6MzkgLTA3MDAgKFBEVCkKUmVjZWl2ZWQ6IGJ5IG1haWwtd3IwLWYxNzUuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgazYyc28xMzM5NTU2NndyYy45CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMjEgT2N0IDIwMTcgMDY6MDI6MzkgLTA3MDAgKFBEVCkKWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFCaFFwK1M2Q2U3eEJJZzUrZWVRS3FHMUd1b0RUZUtRVkdwUnBRTmVtZjZ2NDZ5cUNSdTl6dnNKSlN0eVcxQmxxUVlmenpoN2l3UWJidVErcXZJN1NEa2RXVFU9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIyMy4xODQuMzYgd2l0aCBTTVRQIGlkIGgzM21yNzIzOTU5MHdyZi4zOC4xNTA4NTkwOTU4OTkzOwogU2F0LCAyMSBPY3QgMjAxNyAwNjowMjozOCAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMjIzLjEyOC4xOTYgd2l0aCBIVFRQOyBTYXQsIDIxIE9jdCAyMDE3IDA2OjAyOjM4IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8MzI3NjExNC44a0FiOFZvRmk2QGdpZ2E+ClJlZmVyZW5jZXM6IDxDQUpSdkZkby0zM1pmeGlGc0p3amlHUUpNWVQ1bXUzMWZxRDFmX3UzRlVRVG9Kdj1UdWdAbWFpbC5nbWFpbC5jb20+CiA8b3AueThnZms0eXVrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDxDQUxIRm42UGVLdjBRay16Y2RBaWZ0RnlCSllxUWJjamZGYWVLckd4WktERFdpaG5ycEFAbWFpbC5nbWFpbC5jb20+CiA8MzI3NjExNC44a0FiOFZvRmk2QGdpZ2E+CkZyb206IENhcmxvcyBTYW5jaGV6IDxjYXJsb3NAY2FybG9zc2FuY2hlei5ldT4KRGF0ZTogU2F0LCAyMSBPY3QgMjAxNyAxNjowMjozOCArMDMwMApYLUdtYWlsLU9yaWdpbmFsLU1lc3NhZ2UtSUQ6IDxDQUxIRm42TlZwK05QUmFuUzNUYU9veXlRdno0VjQrRkQ3N1pCbnprZHFKWE1tV0prUXdAbWFpbC5nbWFpbC5jb20+Ck1lc3NhZ2UtSUQ6IDxDQUxIRm42TlZwK05QUmFuUzNUYU9veXlRdno0VjQrRkQ3N1pCbnprZHFKWE1tV0prUXdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiBEb2NrZXIgSW1hZ2VzClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9ImY0MDMwNDVmNGUxODM4ZThmNTA1NWMwZTM0MGIiCgotLWY0MDMwNDVmNGUxODM4ZThmNTA1NWMwZTM0MGIKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gU2F0LCBPY3QgMjEsIDIwMTcgYXQgMzo1NiBQTSwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cndyb3RlOgoKPiBub3RpY2UgdGhhdCB3ZSB2b3RlIG9uIHNvdXJjZSB0YXJiYWxscywgbm90IHJlYWxseSBvbiBiaW5hcnkgYXJ0aWZhY3RzCj4KPiBJIHNlZSB0aGUgZ2l0IHNvdXJjZSBjaGFuZ2VzLCBib3RoIGluIERvY2tlcmZpbGVzIGFuZCBpbiBvZmZpY2lhbC1pbWFnZXMKPiBsaWJyYXJ5Lwo+IG1hdmVuLgo+IEJ1dCBJIGRvbid0IHNlZSB3aGVuL2hvdyBpbWFnZXMgYXJlIGJ1aWx0Cj4KPiBjYW4geW91IGV4cGxhaW4sIHBsZWFzZT8KPgoKRG9ja2VyIGluYy4gdHJpZ2dlcnMgdGhlIGJ1aWxkcyBhZnRlciBnaXQgY2hhbmdlcyBpbgpodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyLWxpYnJhcnkvb2ZmaWNpYWwtaW1hZ2VzIGJ1dCBjb3VsZCBhbHNvIHJlYnVpbGQKd2hlbmV2ZXIgdGhleSB3YW50CgoKPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUMzPUE5Cj4KPiBMZSBzYW1lZGkgMjEgb2N0b2JyZSAyMDE3LCAxMDo1OTo0NSBDRVNUIENhcmxvcyBTYW5jaGV6IGEgPUMzPUE5Y3JpdCA6Cj4gPiBCVFcgdGhlcmUgYXJlIHBvc3NpYmx5IG1vcmUgdGhhbiBvbmUgaW1hZ2UgYnVpbGQgZm9yIGVhY2ggbWF2ZW4gdmVyc2lvbj0KLgo+ID4gRm9yIGEgdmFyaWV0eSBvZiByZWFzb25zLCBsaWtlIHNlY3VyaXR5IGlzc3VlcyBpbiBPUyBvciB0byB1cGdyYWRlIEpESyA9Cm9yCj4gPiBiZWNhdXNlIGRvY2tlciByZWJ1aWxkcyBpdCwgc28gaXQgaXMgbm90IGZlYXNpYmxlIHRvIHZvdGUgZWFjaCBvZiB0aGVtLgo+ID4KPiA+IE9uIFNhdCwgT2N0IDIxLCAyMDE3LCAxMjozMyBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+IHdyb3RlPQo6Cj4gPiA+IE9uIFNhdCwgMjEgT2N0IDIwMTcgMTI6MTk6NDYgKzAyMDAsIEhlcnY9QzM9QTkgQk9VVEVNWSA8Cj4gaGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID4gPgo+ID4gPiB3cm90ZToKPiA+ID4gPiBMZSBzYW1lZGkgMjEgb2N0b2JyZSAyMDE3LCAwODoxNjozNSBDRVNUIFN0ZXBoZW4gQ29ubm9sbHkgYSA9QzM9QTljPQpyaXQgOgo+ID4gPiA+PiBPbiBTYXQgMjEgT2N0IDIwMTcgYXQgMDg6NDUsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmU9CmUuZnI+Cj4gPiA+ID4+Cj4gPiA+ID4+IHdyb3RlOgo+ID4gPiA+PiA+IG9rLCBsZXQncyBzd2l0Y2ggZGlyZWN0bHkgdG8gdGhlIERvY2tlciBjYXNlCj4gPiA+ID4+ID4KPiA+ID4gPj4gPiBJJ20gbm90IGEgRG9ja2VyIGV4cGVydCwgdGhlbiBJJ20gZGlzY292ZXJpbmcgdGhpbmdzIHRoYXQgbXkgYmUKPiA+ID4gPj4KPiA+ID4gPj4gb2J2aW91cyB0bwo+ID4gPiA+Pgo+ID4gPiA+PiA+IG90aGVycwo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gSUlVQyBEb2NrZXIgaGFzIGFuICJvZmZpY2llbCBpbWFnZXMiIHByb2plY3QgWzFdIHdoZXJlIENhcmxvcwo+ID4gPiA+Pgo+ID4gPiA+PiBwcm92aWRlZCBhCj4gPiA+ID4+Cj4gPiA+ID4+ID4gTWF2ZW4KPiA+ID4gPj4gPiBpbWFnZSBbMl06IHRoZW4gdGhpcyBpbWFnZSBpcyBrbm93biBhcyAidGhlIG9mZmljaWFsIE1hdmVuIERvY2tlPQpyCj4gPiA+ID4+Cj4gPiA+ID4+IGltYWdlIgo+ID4gPiA+Pgo+ID4gPiA+PiA+IENhcmxvcyBpcyBhbiBpbmRpdmlkdWFsLCBoZSdzIGFsc28gYSBQTUMgbWVtYmVyIG9mIE1hdmVuCj4gPiA+ID4+ID4KPiA+ID4gPj4gPiB3aGF0IGRvIHdlIHdhbnQgdG8gc2F5OiB0aGUgUE1DIG1lbWJlciBoYXMgcHJvdmlkZWQgYW4gb2ZmaWNpYWwKPiA+ID4gPj4gPiBEb2NrZXIKPiA+ID4gPj4gPiBpbWFnZSBvcgo+ID4gPiA+PiA+IGFuIGluZGl2aWR1YWwgaGFzIHByb3ZpZGVkIGFuIG9mZmljaWFsIERvY2tlciBpbWFnZT8KPiA+ID4gPj4gPgo+ID4gPiA+PiA+IGRlcGVuZGluZyBvbiB0aGUgYW5zd2VyLCBzb21lIHdheSBvZiBkb2luZyBoYXMgdG8gYmUgY2hhbmdlZCAoR2k9CnQKPiA+ID4gPj4KPiA+ID4gPj4gbG9jYXRpb24KPiA+ID4gPj4KPiA+ID4gPj4gPiBvcgo+ID4gPiA+PiA+IG5hbWluZyBvZiB0aGUgb2ZmaWNpYWwgaW1hZ2UpCj4gPiA+ID4+Cj4gPiA+ID4+IEk9RTI9ODA9OTltIGluIGZhdm91ciBvZiBjcmVhdGluZyBhIHJlcG8gZm9yIHRoZSBkb2NrZXJmaWxlLCBsaWNlbj0Kc2UudHh0LAo+IHJlYWQKPiA+ID4gPj4gbWUsCj4gPiA+ID4+IG5vdGljZXMsIGV0Ywo+ID4gPiA+Cj4gPiA+ID4gb2ssIGhlcmUgSSBmb2xsb3cKPiA+ID4gPgo+ID4gPiA+PiBhbmQgZm9sbG93IHRoZSBzdGFuZGFyZCByZWxlYXNlIHZvdGUgbGlmZWN5Y2xlIGZvciB0aGF0Cj4gPiA+ID4+IGRvY2tlcmZpbGUuCj4gPiA+ID4KPiA+ID4gPiBoZXJlLCBJJ20gbm90IHN1cmUgdGhpcyByZWFsbHkgaGFzIGEgbWVhbmluZyBpbiB0aGVzZSBvZmZpY2lhbCBEb2NrPQplcgo+ID4gPiA+IGltYWdlcwo+ID4gPiA+IGNhc2VzOiBJSVVDLCBvbiBhIG5ldyBNYXZlbiBjb3JlIHJlbGVhc2UgdGhhdCB3ZSB3YW50IHRvIHByb21vdGUsCj4gdGhlcmUKPiA+ID4gPiBhcmUgMgo+ID4gPiA+IGFjdGlvbnMgdGhhdCBhcmUgcmVxdWlyZWQ6Cj4gPiA+ID4gMS4gbW9kaWZ5IHRoZSBNQVZFTl9WRVJTSU9OIGFuZCBTSEEgdmFsdWVzIGluICovRG9ja2VyZmlsZSBpbiB0aGUgZz0KaXQKPiA+ID4gPiByZXBvIFsxXQo+ID4gPiA+IDIuIGhhdmUgYSBQUiBtZXJnZWQgdG8gRG9ja2VyIG9mZmljaWFsLWltYWdlcyB0byB1cGRhdGUgdGhlIHNoYTEgaW4KPiA+ID4gPiBvZmZpY2lhbC0KPiA+ID4gPiBpbWFnZXMvbGlicmFyeS9tYXZlbiBbMl0KPiA+ID4gPgo+ID4gPiA+IEJldHdlZW4gdGhlIDIgc3RlcHMsIHdlIGNhbiBjaG9vc2UgdG8gdm90ZSwgb3Igbm90IHRvIHZvdGUsIEkgZG9uJ3QKPiBrbm93Cj4gPiA+ID4gd2hhdCdzIHRoZSBiZXN0OiB3ZSBhbHJlYWR5IHZvdGVkIGZvciB0aGUgTWF2ZW4gcmVsZWFzZSB0aGF0IGdldHMgdD0KaGUKPiA+ID4gPiBuZXcKPiA+ID4gPiByZWNvbW1lbmRlZCB2ZXJzaW9uLgo+ID4gPiA+IFdoYXQgaXMgaW1wb3J0YW50IHRvIG1lIGlzIHRoYXQgYW55Ym9keSBmcm9tIHRoZSBQTUMgY2FuIGRvIHRoZSBQUiA9CnRvCj4gPiA+ID4gRG9ja2VyCj4gPiA+ID4gb2ZmaWNpYWwtaW1hZ2VzIChpZiB3ZSBkZWNpZGUgdGhhdCB3ZSBtYWludGFpbiB0aGUgb2ZmaWNpYWwgaW1hZ2UsCj4gbm90Cj4gPiA+ID4gb25seQo+ID4gPiA+IENhcmxvcyk6IHRoZXJlIGlzIG5vdCBzcGVjaWZpYyBjcmVkZW50aWFscwo+ID4gPiA+Cj4gPiA+ID4gT25lIHRoaW5nIEkgc2VlIGlzIHRoYXQgd2UgY2FuIGF1dG9tYXRlIGEgY2hlY2sgdGhhdCB0aGUgY3VycmVudAo+ID4gPiA+IG9mZmljaWFsLWltYWdlCj4gPiA+ID4gaXMgb3VyIGN1cnJlbnRseSByZWNvbW1lbmRlZCBNYXZlbiB2ZXJzaW9uOiBpdCdzIGp1c3QgYWJvdXQgYWRkaW5nID0KYQo+IG5ldwo+ID4gPiA+IGNoZWNrCj4gPiA+ID4gdG8gZGlzdC10b29sLXBsdWdpbiB0aGF0IHdpbGwgYmUgY2hlY2tlZCBldmVyeSBkYXkgYnkgSmVua2lucyBqb2IgWz0KM10KPiA+ID4KPiA+ID4gV2l0aG91dCB0YWxraW5nIGluIHNvbHV0aW9ucywgd2UgaGF2ZSB0aGlzIGdlbmVyYWwgcXVlc3Rpb246IEFyZSB3ZQo+ID4gPiBpbmZvcm1pbmcgb3RoZXJzIGJ5IHRoZWlyIGZvcm1hdCBvciBhcmUgd2Ugb2ZmZXJpbmcgc29tZSBnZW5lcmljCj4gbWVzc2FnZQo+ID4gPiBmb3Igb3RoZXJzIHRvIG1ha2UgdGhlbSBhd2FyZSB0aGVyZSdzIGEgbmV3IHZlcnNpb24uCj4gPiA+Cj4gPiA+IFRoaXMgZGlzdHRvb2wgc29sdXRpb24gc291bmRzIGxpa2UgdGhlIGZpcnN0IG9uZSAod2UgdHJpZ2dlciBDYXJsb3MgaT0Kbgo+ID4gPiBzb21lIHdheSBzbyBoZSBjYW4gbWFrZSBhIG5ldyBpbWFnZSksIHdoaWNoIGlzIGV4YWN0bHkgd2hhdCBTREtNYW4KPiBhc2tlZAo+ID4gPiB1cyB0byBkby4KPiA+ID4KPiA+ID4gSU1ITyB3aGF0ZXZlciB3ZSBkbyBmb3IgRG9ja2VyLCB3ZSBzaG91bGQgZG8gdGhlIHNhbWUgZm9yIFNES01hbiBhbmQKPiBvZmZlcgo+ID4gPiB0aGF0IHNvbHV0aW9uIGZvciBvdGhlciBpbnRlcmVzdGVkIHBhcnRpZXMuCj4gPiA+Cj4gPiA+IFJvYmVydAo+ID4gPgo+ID4gPiA+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vY2FybG9zc2cvZG9ja2VyLW1hdmVuCj4gPiA+ID4KPiA+ID4gPiBbMl0KPiA+ID4KPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci1saWJyYXJ5L29mZmljaWFsLWltYWdlcy9ibG9iLwo+IG1hc3Rlci9saWJyYXJ5L21hdmUKPiA+ID4gbgo+ID4gPgo+ID4gPiA+IFszXQo+ID4gPiA+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvZGlzdC0KPiB0b29sLXBsdWdpbi9zaXRlLwo+ID4gPiA+Cj4gPiA+ID4+IElmIHdlIHdhbnQgdGhhdCBkb2NrZXJmaWxlIGluIE1hdmVuLWNvcmUgcmVwbywgaT1FMj04MD05OW0gRmluZSB3aT0KdGggdGhhdAo+IHRvbwo+ID4gPiA+Cj4gPiA+ID4gZ2l2ZW4gdGhlIGNvbnRlbnQsIGEgc2VwYXJhdGUgcmVwbyBtb3JlIHJlYXNvbmFibGUKPiA+ID4gPgo+ID4gPiA+PiBOb3cgdGhlIG90aGVyIHF1ZXN0aW9uIGlzIGhvdyB0byBnZXQgdGhlIGltYWdlIGZyb20gdGhhdCBkb2NrZXJmaWw9CmUKPiA+ID4gPj4gaW50bwo+ID4gPiA+PiBkb2NrZXIuLi4KPiA+ID4gPgo+ID4gPiA+IElJVUMsIHRoYXQncyB0aGUgc2Vjb25kIHBvaW50IEkgd3JvdGU6IHdlIGRvbid0IHJlYWxseSBwdXQgdGhlIGltYWc9CmUKPiBidXQKPiA+ID4gPiB1cGRhdGUgYSBjb21taXQgcmVmZXJlbmNlIHRvIG91ciBEb2NrZXJmaWxlcwo+ID4gPiA+Cj4gPiA+ID4+IEk9RTI9ODA9OTltIGhhcHB5IGZvciBDYXJsb3MgdG8gY29udGludWUgZG9pbmcgaW4gYSBwZXJzb25hbCBjYXBhYz0KaXR5Li4uCj4gPiA+ID4KPiA+ID4gPiArMQo+ID4gPiA+IEknZCBiZSBoYXBweSB0byBqdXN0IGhhdmUgdGhpcyBhcyBhbiBvZmZpY2lhbCBQTUMgYXNzZXQsIHdpdGggQ2FybG89CnMKPiBhcwo+ID4gPiA+IG91cgo+ID4gPiA+IGV4cGVydCB3aG8gd3JvdGUgdGhlIHN1YnRsZSBidW5jaCBvZiBpbWFnZXMsIHNpbmNlIElJVUMsIGl0J3Mgbm90Cj4gcmVhbGx5Cj4gPiA+ID4gb25lCj4gPiA+ID4gaW1hZ2UgYnV0IGEgY29sbGVjdGlvbiB0aGF0IG9uZSBjYW4gY2hvb3NlIGZyb20KPiA+ID4gPgo+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4KPiA+ID4gPiBIZXJ2PUMzPUE5Cj4gPiA+ID4KPiA+ID4gPj4gU28gaT1FMj04MD05OWQgYmUKPiA+ID4gPj4KPiA+ID4gPj4gPUUyPTgwPTlDVGhlIGRvY2tlcmZpbGUgaGFzIGJlZW4gcmVsZWFzZWQgYnkgdGhlIE1hdmVuIHByb2plY3QgYW5kPQogYSBtZW1iZXIKPiBvZgo+ID4gPiA+PiB0aGUKPiA+ID4gPj4gUE1DIGhhcyB1cGxvYWRlZCB0aGUgaW1hZ2U9RTI9ODA9OUQKPiA+ID4gPj4KPiA+ID4gPj4gPiBSZWdhcmRzLAo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gSGVydj1DMz1BOQo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9kb2NrZXItbGlicmFyeS9vZmZpY2lhbC1pbWFnZXMKPiA+ID4gPj4gPgo+ID4gPiA+PiA+IFsyXQo+ID4gPgo+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyLWxpYnJhcnkvb2ZmaWNpYWwtaW1hZ2VzL2Jsb2IvCj4gbWFzdGVyL2xpYnJhcnkvbWF2ZQo+ID4gPgo+ID4gPiA+PiA+IG4KPiA+ID4gPj4gPgo+ID4gPiA+PiA+IExlIHNhbWVkaSAyMSBvY3RvYnJlIDIwMTcsIDA2OjU4OjUwIENFU1QgTWFuZnJlZCBNb3NlciBhID1DMz1BOWM9CnJpdCA6Cj4gPiA+ID4+ID4gPiBGcm9tIG15IHBlcnNwZWN0aXZlIGl0IGlzIGp1c3QgbGlrZSBzZGttYW4gaW5jbHVkaW5nIHRoZQo+ID4gPiA+Pgo+ID4gPiA+PiBjb25jbHVzaW9uLiBXZQo+ID4gPiA+Pgo+ID4gPiA+PiA+IGhhdmUKPiA+ID4gPj4gPgo+ID4gPiA+PiA+ID4gb3RoZXIgdGFza3MgYXQgb3VyIGhhbmRzLCBtYWludGFpbmluZyBhIGRvY2tlciBpbWFnZXMgaXMgbm90Cj4gPiA+ID4+Cj4gPiA+ID4+IHNvbWV0aGluZwo+ID4gPiA+Pgo+ID4gPiA+PiA+ID4gd2UKPiA+ID4gPj4gPiA+IHNob3VsZCBib3RoZXIgd2l0aC4gSG93ZXZlciBuZWVkcyBvbmUgY2FuIGVhc2lseSBjcmVhdGUgb25lIGFuPQpkCj4gPiA+ID4+Cj4gPiA+ID4+IHRoZXJlCj4gPiA+ID4+Cj4gPiA+ID4+ID4gd2lsbAo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gPiBiZSB0aG91c2FuZHMgb2YgdmFyaWF0aW9ucyBkaWZmZXJlbnQgdXNlcnMgd2FudC4KPiA+ID4gPj4gPiA+Cj4gPiA+ID4+ID4gPiBMZXQgdGhlbSBjcmVhdGUgaXQgb24gdGhlaXIgb3duLgo+ID4gPiA+PiA+ID4KPiA+ID4gPj4gPiA+IE1hbmZyZWQKPiA+ID4gPj4gPiA+Cj4gPiA+ID4+ID4gPiBIZXJ2PUMzPUE5IEJPVVRFTVkgd3JvdGUgb24gMjAxNy0xMC0yMCAxODo0NjoKPiA+ID4gPj4gPiA+ID4gdHJ1ZSwgZnJvbSBhIGdlbmVyYWwgcGVyc3BlY3RpdmUsIGl0J3MgbGlrZSBzZGttYW4KPiA+ID4gPj4gPiA+ID4KPiA+ID4gPj4gPiA+ID4gd2UgbmVlZCB0byBkaXNjdXNzIHRoZW4gZGVjaWRlIGlmIHdlIHdhbnQgdG8gbWFpbnRhaW4gTWF2ZW4KPiA+ID4gPj4gPiA+ID4gRG9ja2VyCj4gPiA+ID4+ID4gPiA+IGludGVncmF0aW9uIChjb250cmFyeSB0byBvdXIgY3VycmVudCBkZWNpc2lvbiB0byBub3QgbWFpbnRhaT0Kbgo+ID4gPiA+Pgo+ID4gPiA+PiBNYXZlbgo+ID4gPiA+Pgo+ID4gPiA+PiA+ID4gPiBzZGttYW4gaW50ZWdyYXRpb24gYnV0IGxldCBzZGttYW4gY29tbXVuaXR5IGRvIGl0KQo+ID4gPiA+PiA+ID4gPgo+ID4gPiA+PiA+ID4gPiBjYW4gd2UgdGhpbmsgYWJvdXQgYSBnZW5lcmFsIHNvbHV0aW9uPyBwZXJoYXBzIG5vdCByZWFsbHkgYQo+ID4gPiA+Pgo+ID4gPiA+PiBzb2x1dGlvbiwKPiA+ID4gPj4KPiA+ID4gPj4gPiBidXQKPiA+ID4gPj4gPgo+ID4gPiA+PiA+ID4gPiBhCj4gPiA+ID4+ID4gPiA+IGRlY2lzaW9uIHByb2Nlc3MsIHllcwo+ID4gPiA+PiA+ID4gPgo+ID4gPiA+PiA+ID4gPiB0byBtZSwgb24gZWFjaCB0b29sIGludGVncmF0aW9uLCB0aGVyZSBhcmUga2V5IGRlY2lzaW9uCj4gZHJpdmVyczoKPiA+ID4gPj4gPiA+ID4gLSBpbXBvcnRhbmNlIG9mIHRoZSB0b29sIG9uIHRoZSBtYXJrZXQKPiA+ID4gPj4gPiA+ID4gLSBpbnRlcmVzdCBvZiBNYXZlbiBkZXZzIHRvIGFjdHVhbGx5IGRvIGludGVncmF0aW9uCj4gbWFpbnRlbmFuY2UKPiA+ID4gPj4gPiA+ID4gLSBjb21wbGV4aXR5IG9mIGludGVncmF0aW9uLCB0ZWNobmljYWwgcHJlcmVxdWlzaXRlcyAod2l0aAo+IElERXMsCj4gPiA+ID4+Cj4gPiA+ID4+IGZvcgo+ID4gPiA+Pgo+ID4gPiA+PiA+ID4gPiBleGFtcGxlLCBhIGRlZGljYXRlZCBpbmRlcGVuZGFudCBwcm9qZWN0IGxpa2UgbTJlIGlzCj4gbmVjZXNzYXJ5KQo+ID4gPiA+PiA+ID4gPiAtIHRpbWUgZmFjdG9yOiB0aGluZ3MgZXZvbHZlIG92ZXIgdGltZSAoZS5nLiAyIHllYXJzIGFnbywKPiBEb2NrZXIKPiA+ID4gPj4KPiA+ID4gPj4gd2FzCj4gPiA+ID4+Cj4gPiA+ID4+ID4gbm90Cj4gPiA+ID4+ID4KPiA+ID4gPj4gPiA+ID4gd2hhdCBpdCBpcyBub3dhZGF5cykKPiA+ID4gPj4gPiA+ID4KPiA+ID4gPj4gPiA+ID4gYW55IG90aGVyIGtleSBkcml2ZXIgdG8gZG9jdW1lbnQ/Cj4gPiA+ID4+ID4gPiA+Cj4gPiA+ID4+ID4gPiA+IG9uY2UgZG9uZSwgd2UnbGwgZGlzY3VzcyBtb3JlIHByZWNpc2VseSBhYm91dCB0aGUgRG9ja2VyCj4gPiA+ID4+Cj4gPiA+ID4+IGludGVncmF0aW9uCj4gPiA+ID4+Cj4gPiA+ID4+ID4gY2FzZQo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gPiA+IGFuZCBwcm9iYWJseSBmaW5pc2ggd2l0aCBhIHZvdGUgOikKPiA+ID4gPj4gPiA+ID4KPiA+ID4gPj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPj4gPiA+ID4KPiA+ID4gPj4gPiA+ID4gSGVydj1DMz1BOQo+ID4gPiA+PiA+ID4gPgo+ID4gPiA+PiA+ID4gPiBMZSB2ZW5kcmVkaSAyMCBvY3RvYnJlIDIwMTcsIDExOjMwOjQ5IENFU1QgUm9iZXJ0IFNjaG9sdGUgYQo+ID1DMz1BOWNyaXQKPiA+ID4gPj4gPiA+ID4KPiA+ID4gPj4gPiA+ID4+IElzbid0IHRoaXMgYWN0dWFsbHkgdGhlIHNhbWUgY2FzZSBhcyBzZGttYW5bMV0/Cj4gPiA+ID4+ID4gPiA+PiBKdXN0IHdvbmRlcmluZyBpZiB3ZSBuZWVkIHRvIHRoaW5rIGFib3V0IGEgZ2VuZXJhbCBzb2x1dGlvbgo+ID4gPiA+Pgo+ID4gPiA+PiBpbnN0ZWFkCj4gPiA+ID4+Cj4gPiA+ID4+ID4gPiA+PiBvZgo+ID4gPiA+PiA+ID4gPj4gcHVsbGluZyBldmVyeXRoaW5nIGludG8gb3VyIHByb2plY3Qgd2hlbiBwb3NzaWJsZS4KPiA+ID4gPj4gPiA+ID4+Cj4gPiA+ID4+ID4gPiA+PiB0aGFua3MsCj4gPiA+ID4+ID4gPiA+PiBSb2JlcnQKPiA+ID4gPj4gPiA+ID4+Cj4gPiA+ID4+ID4gPiA+PiBbMV0gaHR0cDovL21hcmttYWlsLm9yZy9tZXNzYWdlL29vZnZzem1mNTZ0YnI3ZXQKPiA+ID4gPj4gPiA+ID4+Cj4gPiA+ID4+ID4gPiA+PiBPbiBUaHUsIDE5IE9jdCAyMDE3IDE5OjMwOjU3ICswMjAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gaGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gPiA+PiB3cm90ZToKPiA+ID4gPj4gPiA+ID4+ID4gZ3JlYXQgaWRlYQo+ID4gPiA+PiA+ID4gPj4gPgo+ID4gPiA+PiA+ID4gPj4gPiBvaywgd2UgbmVlZCBhIGdpdCByZXBvIGF0IEFTRgo+ID4gPiA+PiA+ID4gPj4gPgo+ID4gPiA+PiA+ID4gPj4gPiB3aGF0IGVsc2U/Cj4gPiA+ID4+ID4gPiA+PiA+IElzIHRoZXJlIHNvbWUgc29ydCBvZiByZWxlYXNlIHByb2Nlc3M/IHNvbWUgc29ydCBvZiBzb3VyYz0KZQo+IHRvCj4gPiA+ID4+ID4KPiA+ID4gPj4gPiByZWxlYXNlPwo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gPiA+PiA+IFJlZ2FyZHMsCj4gPiA+ID4+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gPiA+PiA+IEhlcnY9QzM9QTkKPiA+ID4gPj4gPiA+ID4+ID4KPiA+ID4gPj4gPiA+ID4+ID4gTGUgamV1ZGkgMTkgb2N0b2JyZSAyMDE3LCAxMzo0Nzo0NSBDRVNUIE1pa2UgRHJvYiBhID1DMz0KPUE5Y3JpdCA6Cj4gPiA+ID4+ID4gPiA+PiA+PiBUaGFua3MgZm9yIHRoZSBwb2ludGVyLCBDYXJsb3MhIEkgaGFkIHNlYXJjaGVkIHRoZQo+IGFyY2hpdmVzLAo+ID4gPiA+Pgo+ID4gPiA+PiBidXQKPiA+ID4gPj4KPiA+ID4gPj4gPiBtYXliZQo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gPiA+PiA+PiBJCj4gPiA+ID4+ID4gPiA+PiA+PiBkaWRuJ3QgZ28gYmFjayBmYXIgZW5vdWdoLgo+ID4gPiA+PiA+ID4gPj4gPj4KPiA+ID4gPj4gPiA+ID4+ID4+IEkgdGhpbmsgbW92aW5nIHRoZXNlIERvY2tlcmZpbGVzIGludG8gYW4gQVNGIHJlcG8gd291bGQgPQpiZQo+ID4gPiA+Pgo+ID4gPiA+PiBncmVhdAo+ID4gPiA+Pgo+ID4gPiA+PiA+IGZvcgo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gPiA+PiA+PiB0aGVpcgo+ID4gPiA+PiA+ID4gPj4gPj4gbWFpbnRhaW5hYmlsaXR5Lgo+ID4gPiA+PiA+ID4gPj4gPj4KPiA+ID4gPj4gPiA+ID4+ID4+IFRoYW5rcywKPiA+ID4gPj4gPiA+ID4+ID4+Cj4gPiA+ID4+ID4gPiA+PiA+PiBNaWtlCj4gPiA+ID4+ID4gPiA+PiA+Pgo+ID4gPiA+PiA+ID4gPj4gPj4gT24gMjAxNy0xMC0xOSAwMzo1MCwgQ2FybG9zIFNhbmNoZXogPGMuLi5AYXBhY2hlLm9yZz4KPiB3cm90ZToKPiA+ID4gPj4gPiA+ID4+ID4+ID4gQXJuYXVkIGlzIGNvcnJlY3QsIEkgc2VudCBhbiBlbWFpbCB0byB1c2Vyc0AgYmFjayBvbgo+IEZyaSwKPiA+ID4gPj4KPiA+ID4gPj4gTm92IDcsCj4gPiA+ID4+Cj4gPiA+ID4+ID4gPiA+PiA+PiAyMDE0LD4KPiA+ID4gPj4gPiA+ID4+ID4+Cj4gPiA+ID4+ID4gPiA+PiA+PiA+IDAwOjIzIHdoZW4gSSBjcmVhdGVkIHRoZSBpbWFnZT4KPiA+ID4gPj4gPiA+ID4+ID4+ID4KPiA+ID4gPj4gPiA+ID4+ID4+ID4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gT24gVGh1LCBPY3QgMTksIDIwMTcsIDExOjEyIEFybmF1ZCBIPUVGPUJGPUJEcml0aWVyCj4gPiA+ID4+Cj4gPiA+ID4+IDxhaC4uLkBnbWFpbC5jb20+Cj4gPiA+ID4+Cj4gPiA+ID4+ID4gPiA+PiA+PiA+IHdyb3RlOj4KPiA+ID4gPj4gPiA+ID4+ID4+ID4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPiBUaGVzZSBpbWFnZXMgYXJlIGtpbmRseSBtYW5hZ2VkIGJ5IGEgUE1DIG1lbWJlciBvZiBvPQp1cgo+ID4gPiA+Pgo+ID4gPiA+PiBwcm9qZWN0Cj4gPiA+ID4+Cj4gPiA+ID4+ID4gPiA+PiA+PiAoQ2FybG9zKQo+ID4gPiA+PiA+ID4gPj4gPj4KPiA+ID4gPj4gPiA+ID4+ID4+IGJ1dD4KPiA+ID4gPj4gPiA+ID4+ID4+Cj4gPiA+ID4+ID4gPiA+PiA+PiA+ID4geWVzIHRoZXkgYXJlbid0IG1hbmFnZWQgZGlyZWN0bHkgYnkgdGhlIHByb2plY3Q+Cj4gPiA+ID4+ID4gPiA+PiA+PiA+ID4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPiBXZSBjYW4gZWFzaWx5IHNlZSB3aXRoIGhpbSB0byBpbXByb3ZlIHRoaXMgSU1PLj4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPgo+ID4gPiA+PiA+ID4gPj4gPj4gPiA+IFdoZW4gaGUgc3RhcnRlZCB0aGF0IChzZXZlcmFsIHllYXJzIGFnbykgRG9ja2VyIHdhc249Cid0Cj4gPiA+ID4+Cj4gPiA+ID4+IHdoYXQgaXQKPiA+ID4gPj4KPiA+ID4gPj4gPiBpcwo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gPiA+PiA+PiBub3dhZGF5cy4+Cj4gPiA+ID4+ID4gPiA+PiA+Pgo+ID4gPiA+PiA+ID4gPj4gPj4gPiA+IFdpdGggZG9ja2VyIGJlaW5nIG1haW5zdHJlYW0gSSBhZ3JlZSB0aGF0IHdlIGNhbgo+ID4gPiA+Pgo+ID4gPiA+PiByZWNvbnNpZGVyCj4gPiA+ID4+Cj4gPiA+ID4+ID4gdGhpcy4+Cj4gPiA+ID4+ID4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPiBUaGUgZG9ja2VyIGltYWdlIGJ1aWxkL2Rpc3RyaWJ1dGlvbiBjb3VsZCBwZXJoYXBzIGJlCj4gcGFydAo+ID4gPiA+Pgo+ID4gPiA+PiBvZgo+ID4gPiA+Pgo+ID4gPiA+PiA+IG91cgo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gPiA+PiA+PiByZWxlYXNlPgo+ID4gPiA+PiA+ID4gPj4gPj4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPiBwcm9jZXNzLj4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPgo+ID4gPiA+PiA+ID4gPj4gPj4gPiA+IFdEWVQgQ2FybG9zID8+Cj4gPiA+ID4+ID4gPiA+PiA+PiA+ID4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPiBPbiBUaHUsIE9jdCAxOSwgMjAxNyBhdCA0OjE2IEFNLCBNaWtlIERyb2IKPiA+ID4gPj4KPiA+ID4gPj4gPG1kLi4uQGFwYWNoZS5vcmc+Cj4gPiA+ID4+Cj4gPiA+ID4+ID4gPiA+PiA+PiB3cm90ZTo+Cj4gPiA+ID4+ID4gPiA+PiA+Pgo+ID4gPiA+PiA+ID4gPj4gPj4gPiA+ID4gSSBndWVzcyB0aGUgbmF0dXJhbCBmb2xsb3ctb24gcXVlc3Rpb24gaXMgd2hldGhlcgo+IHRoZQo+ID4gPiA+Pgo+ID4gPiA+PiBNYXZlbgo+ID4gPiA+Pgo+ID4gPiA+PiA+ID4gPj4gPj4gY29tbXVuaXR5Pgo+ID4gPiA+PiA+ID4gPj4gPj4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPiA+IHdvdWxkIGNvbnNpZGVyIHB1Ymxpc2hpbmcgYW4gb2ZmaWNpYWwgc2V0IG9mCj4gaW1hZ2VzPyBPcgo+ID4gPiA+PiA+ID4gPj4gPj4KPiA+ID4gPj4gPiA+ID4+ID4+IGFsdGVybmF0aXZlbHk+Cj4gPiA+ID4+ID4gPiA+PiA+Pgo+ID4gPiA+PiA+ID4gPj4gPj4gPiA+ID4gd2hldGhlciB0aGV5IHNob3VsZCBzZW5kIGEgdGFrZWRvd24gbm90aWNlIHRvCj4gcHJvdGVjdAo+ID4gPiA+Pgo+ID4gPiA+PiB0aGVpcgo+ID4gPiA+Pgo+ID4gPiA+PiA+ID4gPj4gPj4gPiA+ID4gYnJhbmQKPiA+ID4gPj4gPiA+ID4+ID4+Cj4gPiA+ID4+ID4gPiA+PiA+PiBhbmQ+Cj4gPiA+ID4+ID4gPiA+PiA+Pgo+ID4gPiA+PiA+ID4gPj4gPj4gPiA+ID4gdHJhZGVtYXJrcy4uLj4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPiA+Cj4gPiA+ID4+ID4gPiA+PiA+PiA+ID4gPiBPbiAyMDE3LTEwLTE4IDE4OjM2LCAiTWFuZnJlZCBNb3NlciIKPiA+ID4gPj4KPiA+ID4gPj4gPG1hLi4uQHNpbXBsaWdpbGl0eS5jb20KPiA+ID4gPj4KPiA+ID4gPj4gPiA+ID4+ID4+IHdyb3RlOj4KPiA+ID4gPj4gPiA+ID4+ID4+Cj4gPiA+ID4+ID4gPiA+PiA+PiA+ID4gPiA+IE5vLiBBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBnaXRodWIgVVJMIHRoaXMgaXMKPiBOT1QgYW4KPiA+ID4gPj4gPgo+ID4gPiA+PiA+IGFwYWNoZQo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gPiA+PiA+PiBVUkwuPgo+ID4gPiA+PiA+ID4gPj4gPj4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2Nhcmxvc3NnL2RvY2tlci1tYXZlbj4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPiA+ID4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPiA+ID4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gTWlrZSBEcm9iIHdyb3RlIG9uIDIwMTctMTAtMTggMTY6MzI6Pgo+ID4gPiA+PiA+ID4gPj4gPj4gPiA+ID4gPgo+ID4gPiA+PiA+ID4gPj4gPj4gPiA+ID4gPiA+IEhlbGxvLD4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gPgo+ID4gPiA+PiA+ID4gPj4gPj4gPiA+ID4gPiA+IEFyZSB0aGUgaW1hZ2VzIGF0IGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9fLwo+IG1hdmVuLwo+ID4gPiA+PiA+ID4gPj4gPj4KPiA+ID4gPj4gPiA+ID4+ID4+IGNvbnNpZGVyZWQgdG8KPiA+ID4gPj4gPiA+ID4+ID4+Cj4gPiA+ID4+ID4gPiA+PiA+PiBiZT4KPiA+ID4gPj4gPiA+ID4+ID4+Cj4gPiA+ID4+ID4gPiA+PiA+PiA+ID4gPiBvZmZpY2lhbD4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPiA+Cj4gPiA+ID4+ID4gPiA+PiA+PiA+ID4gPiA+ID4gbWF2ZW4gZG9ja2VyIGltYWdlcyBhbmQgYmxlc3NlZC9wdWJsaXNoZWQgYnkgdD0KaGUKPiA+ID4gPj4KPiA+ID4gPj4gUE1DPz4KPiA+ID4gPj4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gPiBUaGFua3MsPgo+ID4gPiA+PiA+ID4gPj4gPj4gPiA+ID4gPiA+IE1pa2U+Cj4gPiA+ID4+ID4KPiA+ID4gPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtLS0tLS0tLS0KPiA+ID4gPj4gPiA+Cj4gPiA+ID4+ID4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOgo+ID4gPiA+PiA+IHVzZXJzLXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Cj4gPiA+ID4+ID4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOgo+ID4gPiA+PiA+ID4gPj4gPj4gPiA+ID4gPiA+IHVzZXJzLWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KPiA+ID4gPj4gPgo+ID4gPiA+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0tLS0tLS0tLQo+ID4gPiA+PiA+ID4KPiA+ID4gPj4gPgo+ID4gPiA+PiA+ID4gPj4gPj4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOgo+ID4gPiA+PiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4+Cj4gPiA+ID4+ID4gPiA+PiA+PiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6Cj4gPiA+ID4+ID4gdXNlcnMtaGVscEBtYXZlbi5hcGFjaGUub3JnPgo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4KPiA+ID4gPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtLS0tLS0tLS0KPiA+ID4gPj4gPiA+Cj4gPiA+ID4+ID4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6Cj4gPiA+ID4+IHVzZXJzLXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Cj4gPiA+ID4+Cj4gPiA+ID4+ID4gPiA+PiA+PiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOgo+ID4gPiA+PiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPj4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPiAtLT4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPiAtLS0tLT4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPiBBcm5hdWQgSD1FRj1CRj1CRHJpdGllcj4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPiBodHRwOi8vYWhlcml0aWVyLm5ldD4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbT4KPiA+ID4gPj4gPiA+ID4+ID4+ID4gPiBUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyPgo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tCj4gPiA+ID4+ID4KPiA+ID4gPj4gPiA+ID4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPj4gPiA+ID4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yPQpnCj4gPiA+ID4+Cj4gPiA+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0tLS0tLS0tLQo+ID4gPiA+Pgo+ID4gPiA+PiA+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPj4gPiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPj4KPiA+ID4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tCj4gPiA+ID4+Cj4gPiA+ID4+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPj4KPiA+ID4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tCj4gPiA+ID4+Cj4gPiA+ID4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+PiA+Cj4gPiA+ID4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tCj4gPiA+ID4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4+ID4KPiA+ID4gPj4gPiAtLQo+ID4gPiA+Pgo+ID4gPiA+PiBTZW50IGZyb20gbXkgcGhvbmUKPiA+ID4gPgo+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0tLS0tLS0tLQo+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPgo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCi0tZjQwMzA0NWY0ZTE4MzhlOGY1MDU1YzBlMzQwYi0tCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDI3Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgT2N0IDIwIDA3OjE5OjAxIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI3Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4NDc3M0NFRjUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAyMCBPY3QgMjAxNyAwNzoxOTowMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDcyMDk1IGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIE9jdCAyMDE3IDA3OjE4OjU5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MTgxNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBPY3QgMjAxNyAwNzoxODo1OSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDcxNzk4IGludm9rZWQgYnkgdWlkIDk5KTsgMjAgT2N0IDIwMTcgMDc6MTg6NTkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMjAgT2N0IDIwMTcgMDc6MTg6NTkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC13cjAtZjE4Mi5nb29nbGUuY29tIChtYWlsLXdyMC1mMTgyLmdvb2dsZS5jb20gWzIwOS44NS4xMjguMTgyXSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEVDQ0I0MUEwMTJGOwoJRnJpLCAyMCBPY3QgMjAxNyAwNzoxODo1NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13cjAtZjE4Mi5nb29nbGUuY29tIHdpdGggU01UUCBpZCB6OTlzbzgwMzk3MDZ3cmMuMTI7CiAgICAgICAgRnJpLCAyMCBPY3QgMjAxNyAwMDoxODo1NiAtMDcwMCAoUERUKQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVUzUFQ1amx4YUZ0SVhpVGxxcTFjOVNvYVdETXh6QWI2V3ZyNGk0bGpUaXhBOXpNZDRmCgk1elJsR0k3UEswbGpEbzlQb2xWbUw5dUxEb1k3eWROSHpIUEJVdk09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtTTENNRTluSFVjODdqY1N4dGRSMmtwMllydU9BZFc1RDRQdTJUS05uamlZY3hZaVh2UWsvZlNzM3lJOEtSZ05CZjRBMm5vSkFGQ3JETDduc0UwdDJnPQpYLVJlY2VpdmVkOiBieSAxMC4yMjMuMTU0LjcwIHdpdGggU01UUCBpZCB6NjRtcjExMDI2NDR3cmIuMjIwLjE1MDg0ODM5MzQ0ODE7CiBGcmksIDIwIE9jdCAyMDE3IDAwOjE4OjU0IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDxDQUpSdkZkby0zM1pmeGlGc0p3amlHUUpNWVQ1bXUzMWZxRDFmX3UzRlVRVG9Kdj1UdWdAbWFpbC5nbWFpbC5jb20+CiA8Q0ErRzM1TzNtWUhYTHVNRDl3UDFaWG5nNjQtOGc1d3c9eGQ3RGs0RTcxWVpZZE5HQmRBQG1haWwuZ21haWwuY29tPgogPENBSm1iczhpVU9oLXc9YVlCWUNmOUJPX1NKX3d1UTRfcllQeU9YbVpGa3BpcFoxWjUyUUBtYWlsLmdtYWlsLmNvbT4KIDwxNTU4MjA3Lk9aUzNJQmxlaG9AZ2lnYT4gPENBSm1iczhodFU2YzI1N0gwZ2I9bWhSMHBTWk9NSjVrTVdTdXNIdTRMSkQ1VjU3cHFHZ0BtYWlsLmdtYWlsLmNvbT4KSW4tUmVwbHktVG86IDxDQUptYnM4aHRVNmMyNTdIMGdiPW1oUjBwU1pPTUo1a01XU3VzSHU0TEpENVY1N3BxR2dAbWFpbC5nbWFpbC5jb20+CkZyb206IENhcmxvcyBTYW5jaGV6IDxjYXJsb3NAYXBhY2hlLm9yZz4KRGF0ZTogRnJpLCAyMCBPY3QgMjAxNyAwNzoxODo0MyArMDAwMApYLUdtYWlsLU9yaWdpbmFsLU1lc3NhZ2UtSUQ6IDxDQUxIRm42UFJxcFF3SGQ0dWF6WFVDVDMxUTFwZENHcWJMPWpIQVE2TEg3cDJmZ2FmRGdAbWFpbC5nbWFpbC5jb20+Ck1lc3NhZ2UtSUQ6IDxDQUxIRm42UFJxcFF3SGQ0dWF6WFVDVDMxUTFwZENHcWJMPWpIQVE2TEg3cDJmZ2FmRGdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiBEb2NrZXIgSW1hZ2VzClRvOiBNYXZlbiBVc2VycyBMaXN0IDx1c2Vyc0BtYXZlbi5hcGFjaGUub3JnPgpDYzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSJmNDAzMDQ1ZjU3ZjAxMDc1OTcwNTViZjU0OWVmIgoKLS1mNDAzMDQ1ZjU3ZjAxMDc1OTcwNTViZjU0OWVmCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCk9mZmljaWFsIGRvY2tlciBpbWFnZXMgYXJlIG5vdCBwdXNoZWQgdG8gZG9ja2VyaHViLiBEb2NrZXIgYnVpbGRzIHRoZW0gZnJvbQpzb3VyY2VzIGF0IEdpdEh1YgpodHRwczovL2dpdGh1Yi5jb20vZG9ja2VyLWxpYnJhcnkvb2ZmaWNpYWwtaW1hZ2VzL2Jsb2IvbWFzdGVyL2xpYnJhcnkvbWF2ZW4KCk9uIEZyaSwgT2N0IDIwLCAyMDE3LCAwODoyMCBNYXhpbSBTb2xvZG92bmlrIDxzb2xvbWF4NjY2QGdtYWlsLmNvbT4gd3JvdGU6Cgo+IEkgd291bGQgc3RhcnQgd2l0aCBmaWxpbmcgSU5GUkEgdGlja2V0IDopCj4KPiBPbiBGcmksIE9jdCAyMCwgMjAxNyBhdCAxMjo0MCBQTSwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuPQpmcj4KPiB3cm90ZToKPgo+ID4gYXdlc29tZTogdGhlcmUgaXMgc29tZSBjb21tb24gcHJhY3RpY2Ugd2Ugc2hvdWxkIGdldCBpbnRvCj4gPgo+ID4gZG8geW91IGtub3cgaWYgdGhlcmUgc29tZSBkb2NzIHNvbWV3aGVyZT8KPiA+IEkgc3VwcG9zZSB0aGVyZSBhcmUgc29tZSBjcmVkZW50aWFscyBhc3NvY2lhdGVkIHRvIHB1Ymxpc2hpbmcgdG8KPiBEb2NrZXJodWIKPiA+Cj4gPiBSZWdhcmRzLAo+ID4KPiA+IEhlcnY9QzM9QTkKPiA+Cj4gPiBMZSB2ZW5kcmVkaSAyMCBvY3RvYnJlIDIwMTcsIDExOjM5OjIyIENFU1QgTWF4aW0gU29sb2Rvdm5payBhID1DMz1BOWNyaT0KdCA6Cj4gPiA+IEluIHRoaXMgY2FzZSBkb2NrZXJodWIgaXMgcHJlZmVyYWJsZSA6KQo+ID4gPgo+ID4gPiBPbiBGcmksIE9jdCAyMCwgMjAxNyBhdCAxMTowNyBBTSwgQmluZHVsIEJob3dtaWsgPAo+ID4gYmluZHVsYmhvd21pa0BnbWFpbC5jb20+Cj4gPiA+Cj4gPiA+IHdyb3RlOgo+ID4gPiA+IE1heGltLAo+ID4gPiA+Cj4gPiA+ID4gT24gVGh1LCBPY3QgMTksIDIwMTcgYXQgNzo1NCBQTSwgTWF4aW0gU29sb2Rvdm5payA8Cj4gPiBzb2xvbWF4NjY2QGdtYWlsLmNvbT4KPiA+ID4gPgo+ID4gPiA+IHdyb3RlOgo+ID4gPiA+ID4gSGVsbG8sCj4gPiA+ID4gPgo+ID4gPiA+ID4gaGVyZSBpcyB0aGUgcGxhY2UgZm9yIEFwYWNoZSBkb2NrZXIgaW1hZ2VzIG1hbmFnZWQgYnkgaW5mcmEgYW5kCj4gPiBBcGFjaGUKPiA+ID4gPiA+IHByb2plY3RzIGh0dHBzOi8vYmludHJheS5jb20vYXBhY2hlLyA6KQo+ID4gPiA+Cj4gPiA+ID4gRnJvbSB3aGF0IEkgaGF2ZSBzZWVuLCB3aGlsZSB0aGVyZSBhcmUgNCBwcm9qZWN0cyB3aXRoIGRvY2tlcgo+ID4gPiA+IHJlcG9zaXRvcmllcyBvbiBiaW50cmF5LCB0aGVyZSBzZWVtIHRvIGJlIGEgbG90IG1vcmUgYXQgZG9ja2VyaHViCj4gWzFdLgo+ID4gPiA+IEkgZGlkIGEgcXVpY2sgc2VhcmNoIG9uIElORlJBIEpJUkEgYW5kIGZvdW5kIHRoYXQgaW5mcmEgaGFzIHNldCBhIGY9CmV3Cj4gPiA+ID4gcHJvamVjdHMgdXAgb24gZG9ja2VyaHViIHJlY2VudGx5IFsyXSwgZm9yIGV4YW1wbGUgSU5GUkEtMTQ3NTYgWzNdCj4gZm9yCj4gPiA+ID4gYm9va2tlZXBlci4KPiA+ID4gPgo+ID4gPiA+IEJpbmR1bAo+ID4gPiA+Cj4gPiA+ID4gWzFdIGh0dHBzOi8vaHViLmRvY2tlci5jb20vci9hcGFjaGUvCj4gPiA+ID4gWzJdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRGNvbXBvbmVudCUyMCUKPiA+ID4gPiAzRCUyMERvY2tlciUyMEFORCUyMHByb2plY3QlMjAlM0QlMjBJTkZSQQo+ID4gPiA+IFszXSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0lORlJBLTE0NzU2Cj4gPiA+ID4KPiA+ID4gPiA+IE9uIEZyaSwgT2N0IDIwLCAyMDE3IGF0IDEyOjMwIEFNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+ID4gaGVydmUuYm91dGVteUBmcmVlLmZyPgo+ID4gPiA+ID4KPiA+ID4gPiA+IHdyb3RlOgo+ID4gPiA+ID4gPiBncmVhdCBpZGVhCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IG9rLCB3ZSBuZWVkIGEgZ2l0IHJlcG8gYXQgQVNGCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IHdoYXQgZWxzZT8KPiA+ID4gPiA+ID4gSXMgdGhlcmUgc29tZSBzb3J0IG9mIHJlbGVhc2UgcHJvY2Vzcz8gc29tZSBzb3J0IG9mIHNvdXJjZSB0bwo+ID4gcmVsZWFzZT8KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gSGVydj1DMz1BOQo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBMZSBqZXVkaSAxOSBvY3RvYnJlIDIwMTcsIDEzOjQ3OjQ1IENFU1QgTWlrZSBEcm9iIGEgPUMzPUE5Y3JpdCA9CjoKPiA+ID4gPiA+ID4gPiBUaGFua3MgZm9yIHRoZSBwb2ludGVyLCBDYXJsb3MhIEkgaGFkIHNlYXJjaGVkIHRoZSBhcmNoaXZlcywKPiBidXQKPiA+ID4gPgo+ID4gPiA+IG1heWJlIEkKPiA+ID4gPgo+ID4gPiA+ID4gPiA+IGRpZG4ndCBnbyBiYWNrIGZhciBlbm91Z2guCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBJIHRoaW5rIG1vdmluZyB0aGVzZSBEb2NrZXJmaWxlcyBpbnRvIGFuIEFTRiByZXBvIHdvdWxkIGJlCj4gZ3JlYXQKPiA+IGZvcgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiB0aGVpcgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IG1haW50YWluYWJpbGl0eS4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IFRoYW5rcywKPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IE1pa2UKPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IE9uIDIwMTctMTAtMTkgMDM6NTAsIENhcmxvcyBTYW5jaGV6IDxjLi4uQGFwYWNoZS5vcmc+IHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gQXJuYXVkIGlzIGNvcnJlY3QsIEkgc2VudCBhbiBlbWFpbCB0byB1c2Vyc0AgYmFjayBvbiBGcmksCj4gTm92Cj4gPiA3LAo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiAyMDE0LD4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IDAwOjIzIHdoZW4gSSBjcmVhdGVkIHRoZSBpbWFnZT4KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gT24gVGh1LCBPY3QgMTksIDIwMTcsIDExOjEyIEFybmF1ZCBIPUVGPUJGPUJEcml0aWVyIDxhaC4uLkA9CmdtYWlsLmNvbQo+ID4KPiA+ID4gPgo+ID4gPiA+IHdyb3RlOj4KPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiBUaGVzZSBpbWFnZXMgYXJlIGtpbmRseSBtYW5hZ2VkIGJ5IGEgUE1DIG1lbWJlciBvZiBvdXIKPiA+IHByb2plY3QKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gKENhcmxvcykKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBidXQ+Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4geWVzIHRoZXkgYXJlbid0IG1hbmFnZWQgZGlyZWN0bHkgYnkgdGhlIHByb2plY3Q+Cj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IFdlIGNhbiBlYXNpbHkgc2VlIHdpdGggaGltIHRvIGltcHJvdmUgdGhpcyBJTU8uPgo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiBXaGVuIGhlIHN0YXJ0ZWQgdGhhdCAoc2V2ZXJhbCB5ZWFycyBhZ28pIERvY2tlciB3YXNuJ3Qgd2g9CmF0Cj4gPiBpdAo+ID4gPiA+ID4gPiA+ID4gPiBpcwo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gbm93YWRheXMuPgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IFdpdGggZG9ja2VyIGJlaW5nIG1haW5zdHJlYW0gSSBhZ3JlZSB0aGF0IHdlIGNhbiByZWNvbnNpZD0KZXIKPiA+ID4gPgo+ID4gPiA+IHRoaXMuPgo+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IFRoZSBkb2NrZXIgaW1hZ2UgYnVpbGQvZGlzdHJpYnV0aW9uIGNvdWxkIHBlcmhhcHMgYmUgcGFydAo+IG9mCj4gPiBvdXIKPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IHJlbGVhc2U+Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gcHJvY2Vzcy4+Cj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IFdEWVQgQ2FybG9zID8+Cj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IE9uIFRodSwgT2N0IDE5LCAyMDE3IGF0IDQ6MTYgQU0sIE1pa2UgRHJvYiA8Cj4gbWQuLi5AYXBhY2hlLm9yZwo+ID4gPgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiB3cm90ZTo+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gSSBndWVzcyB0aGUgbmF0dXJhbCBmb2xsb3ctb24gcXVlc3Rpb24gaXMgd2hldGhlciB0aGUKPiBNYXZlbgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gY29tbXVuaXR5Pgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gd291bGQgY29uc2lkZXIgcHVibGlzaGluZyBhbiBvZmZpY2lhbCBzZXQgb2YgaW1hZ2VzPyBPcgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gYWx0ZXJuYXRpdmVseT4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+IHdoZXRoZXIgdGhleSBzaG91bGQgc2VuZCBhIHRha2Vkb3duIG5vdGljZSB0byBwcm90ZWN0Cj4gdGhlaXIKPiA+ID4gPgo+ID4gPiA+IGJyYW5kCj4gPiA+ID4KPiA+ID4gPiA+ID4gPiBhbmQ+Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiB0cmFkZW1hcmtzLi4uPgo+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gT24gMjAxNy0xMC0xOCAxODozNiwgIk1hbmZyZWQgTW9zZXIiIDwKPiA+IG1hLi4uQHNpbXBsaWdpbGl0eS5jb20+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IHdyb3RlOj4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE5vLiBBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBnaXRodWIgVVJMIHRoaXMgaXMgTk9UIGFuCj4gPiBhcGFjaGUKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gVVJMLj4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9jYXJsb3NzZy9kb2NrZXItbWF2ZW4+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE1pa2UgRHJvYiB3cm90ZSBvbiAyMDE3LTEwLTE4IDE2OjMyOj4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEhlbGxvLD4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gQXJlIHRoZSBpbWFnZXMgYXQgaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL18vbWF2ZW4vCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IGNvbnNpZGVyZWQgdG8KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBiZT4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+IG9mZmljaWFsPgo+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IG1hdmVuIGRvY2tlciBpbWFnZXMgYW5kIGJsZXNzZWQvcHVibGlzaGVkIGJ5IHRoZQo+IFBNQz8+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFRoYW5rcyw+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE1pa2U+Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gPgo+ID4gPiA+IC0tLS0tLS0tLT4KPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi4KPiA+IGFwYWNoZS5vcmcKPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOgo+ID4gPiA+IHVzZXJzLWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KPiA+ID4gPgo+ID4gPiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiA+Cj4gPiA+ID4gLS0tLS0tLS0tPgo+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi4KPiA+IGFwYWNoZS5vcmc+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOgo+ID4gdXNlcnMtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gPgo+ID4gPiA+IC0tLS0tLS0tLT4KPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6Cj4gdXNlcnMtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6Cj4gPiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Cj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IC0tPgo+ID4gPiA+ID4gPiA+ID4gPiAtLS0tLT4KPiA+ID4gPiA+ID4gPiA+ID4gQXJuYXVkIEg9RUY9QkY9QkRyaXRpZXI+Cj4gPiA+ID4gPiA+ID4gPiA+IGh0dHA6Ly9haGVyaXRpZXIubmV0Pgo+ID4gPiA+ID4gPiA+ID4gPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbT4KPiA+ID4gPiA+ID4gPiA+ID4gVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcj4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiAtLS0tLS0tLS0KPiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogdXNlcnMtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+Cj4gPiA+ID4gPiAtLQo+ID4gPiA+ID4gV0JSCj4gPiA+ID4gPiBNYXhpbSBha2Egc29sb21heAo+ID4gPiA+Cj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLS0KPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Cj4gPgo+ID4KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogdXNlcnMtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogdXNlcnMtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPgo+ID4KPgo+Cj4gLS0KPiBXQlIKPiBNYXhpbSBha2Egc29sb21heAo+CgotLWY0MDMwNDVmNTdmMDEwNzU5NzA1NWJmNTQ5ZWYtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDI5NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgT2N0IDIxIDExOjAwOjA0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI5NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA5RDk1RTEwQ0VECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMjEgT2N0IDIwMTcgMTE6MDA6MDQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1NTcyIGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIE9jdCAyMDE3IDExOjAwOjA0IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NDgzIGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIE9jdCAyMDE3IDExOjAwOjA0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTQ3MSBpbnZva2VkIGJ5IHVpZCA5OSk7IDIxIE9jdCAyMDE3IDExOjAwOjAzIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAyMSBPY3QgMjAxNyAxMTowMDowMyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEQ5OEFBQzEzMTMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDIxIE9jdCAyMDE3IDExOjAwOjAyICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi40OApYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjQ4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgSFRNTF9NRVNTQUdFPTIsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KQoJaGVhZGVyLmQ9Y2FybG9zc2FuY2hlei1ldS4yMDE1MDYyMy5nYXBwc3NtdHAuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBiMGtYMVRBSXJVQmogZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsIDIxIE9jdCAyMDE3IDEwOjU5OjU5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtd20wLWY0Ny5nb29nbGUuY29tIChtYWlsLXdtMC1mNDcuZ29vZ2xlLmNvbSBbNzQuMTI1LjgyLjQ3XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEM5QTQyNUY0N0QKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDIxIE9jdCAyMDE3IDEwOjU5OjU4ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNDcuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgbTcyc28xODgzMTgzd21jLjEKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAyMSBPY3QgMjAxNyAwMzo1OTo1OCAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Y2FybG9zc2FuY2hlei1ldS4yMDE1MDYyMy5nYXBwc3NtdHAuY29tOyBzPTIwMTUwNjIzOwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1lWklmeEhXZXR3YjJQY2x0WUVFcG8wN0hnSGFlaURrUmFhV1FWU0VNSmZBPTsKICAgICAgICBiPXV1VFNxU3VWdnFlaCtZaDRNenY0ZllrY2FjT2t3dHlvTThubS92MUVjVkx6cU84V1BlQ0JsbWNrM0c2d2NKME1adQogICAgICAgICA5MlZjL3B4RUhjcEVoTVFqUGQ5RWZJVmsrZkZWYzJvb29uWkNGZnBKNVRTWllGbGlsLytHQjdkY3FOYWNhaElRS3p5UAogICAgICAgICBWd0xoWWx0RVpnYkRCNURnUlRNMGRoanBRMlA3cG1FN0lBOTBzUjgrZDFCR1FOQ1QrNk9KRXUrSEJXcDRCUXJJYUJRTAogICAgICAgICBGMWNidU5YN05mZUtqbUlkM3pPVlRiNGJ6Mkh6MUo3MDVKWlhxdkZ6ZG44eCtGb1JKVlp2WXBJSUVGVDRYOElFUERqMwogICAgICAgICBESjFNTDJkVEtqQWRBQTlsNWlrMVlycXEweWl6Y2huOEYzRFdlQ2NkeDZpNGRxSHRnM0VKZGM1VFQ3MHpPVHZHSWJ5cwogICAgICAgICBZUGtRPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1lWklmeEhXZXR3YjJQY2x0WUVFcG8wN0hnSGFlaURrUmFhV1FWU0VNSmZBPTsKICAgICAgICBiPW91STltRDd6d0RzK1lRcEdMQkdYTlluUEZvZ2kxZy9VT2JIQ1JTVTRzTC9CL0dVQmpZMzFxR0NYRGEwVkNRNlg4TAogICAgICAgICAzSStoQVVSSHBOL05pc0xMRHFWR1FqTGRpb1V1NjlaY0dlWnVhODFXZTdxSXZlWUVXY1JBUHVPZzcwL0tTcE9QYmNYWQogICAgICAgICBBR0NLTlA3S2tBZVRzdnJ4NHFWMlpwR2c0NjNzV1NqVjlLdnFycVEwS1E3cUxIb3RpWnhiMzhicHNlNGFjblM0UnNDZQogICAgICAgICBjUzFnTmR5TjhGVzhsWE8rbCtjSVRHNFlnOWtkSVd0UldkM1hOeURWMzArWDY1YUdIUjVaZ29hRVVEVXcwTUxjWGJSOQogICAgICAgICBkZGFpTURDZzA0TUpXSzhRMjR5SDhHL2tJNEw2OWRPMjhPSHc5TXN5NHJtR2ZacXBEZHdyVlVZZ2pkNE1hWXVzaGt0bgogICAgICAgICA1MVpRPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FWSXVsekk5dTE2UTZ2OXgrRjZtanFSYW9EUXlTKzY2L1dKZ3N6Wml2dzdoMnQvb0dqLwoJdGVMb0c2WUtHK3hiaDJ6SU4rSU9UMmk2dnE4THpnPT0KWC1SZWNlaXZlZDogYnkgMTAuODAuMTM1LjIxOSB3aXRoIFNNVFAgaWQgMjdtcjk1Nzc3NThlZHouMjAzLjE1MDg1ODM1OTc0MDU7CiAgICAgICAgU2F0LCAyMSBPY3QgMjAxNyAwMzo1OTo1NyAtMDcwMCAoUERUKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdtMC1mNDguZ29vZ2xlLmNvbSAobWFpbC13bTAtZjQ4Lmdvb2dsZS5jb20uIFs3NC4xMjUuODIuNDhdKQogICAgICAgIGJ5IHNtdHAuZ21haWwuY29tIHdpdGggRVNNVFBTQSBpZCBmMjdzbTI2MjgwODJlZGouODIuMjAxNy4xMC4yMS4wMy41OS41NgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CiAgICAgICAgKHZlcnNpb249VExTMV8yIGNpcGhlcj1FQ0RIRS1SU0EtQUVTMTI4LUdDTS1TSEEyNTYgYml0cz0xMjgvMTI4KTsKICAgICAgICBTYXQsIDIxIE9jdCAyMDE3IDAzOjU5OjU2IC0wNzAwIChQRFQpClJlY2VpdmVkOiBieSBtYWlsLXdtMC1mNDguZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgMTk2c28zMTQ3NzAzd21hLjEKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAyMSBPY3QgMjAxNyAwMzo1OTo1NiAtMDcwMCAoUERUKQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArUTdzY3luVFU2bk5IZEV6cVE4SXpDL3BVYmJKNlBMSlllT0t1ajBjVnRQeWd6MTF5aUVWREpGaVRKOHE4OHUyZkNNUjB6UE10UUNnT241TTlNaFhtcz0KWC1SZWNlaXZlZDogYnkgMTAuMjguMTkuNzMgd2l0aCBTTVRQIGlkIDcwbXIxMTkzMDU3d210Ljg3LjE1MDg1ODM1OTYxNzY7IFNhdCwKIDIxIE9jdCAyMDE3IDAzOjU5OjU2IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDxDQUpSdkZkby0zM1pmeGlGc0p3amlHUUpNWVQ1bXUzMWZxRDFmX3UzRlVRVG9Kdj1UdWdAbWFpbC5nbWFpbC5jb20+CiA8MTcwODI4NS54YlFST0lqOTlaQGdpZ2E+IDxDQStuUG5NeEN1dXBQOTV2UGpYbUV3X0d6ZHpVcnIyQ19TZkZIRFRrb2V6QUdCPXMxZlFAbWFpbC5nbWFpbC5jb20+CiA8MjQ3MzQ1MjMuYTZKc0U4c2ZzaEBnaWdhPiA8b3AueThnZms0eXVrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkluLVJlcGx5LVRvOiA8b3AueThnZms0eXVrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkZyb206IENhcmxvcyBTYW5jaGV6IDxjYXJsb3NAY2FybG9zc2FuY2hlei5ldT4KRGF0ZTogU2F0LCAyMSBPY3QgMjAxNyAxMDo1OTo0NSArMDAwMApYLUdtYWlsLU9yaWdpbmFsLU1lc3NhZ2UtSUQ6IDxDQUxIRm42UGVLdjBRay16Y2RBaWZ0RnlCSllxUWJjamZGYWVLckd4WktERFdpaG5ycEFAbWFpbC5nbWFpbC5jb20+Ck1lc3NhZ2UtSUQ6IDxDQUxIRm42UGVLdjBRay16Y2RBaWZ0RnlCSllxUWJjamZGYWVLckd4WktERFdpaG5ycEFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiBEb2NrZXIgSW1hZ2VzClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQ1YWE3NDVkM2JiNDA1NWMwYzdkNTMiCgotLTAwMWExMTQ1YWE3NDVkM2JiNDA1NWMwYzdkNTMKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKQlRXIHRoZXJlIGFyZSBwb3NzaWJseSBtb3JlIHRoYW4gb25lIGltYWdlIGJ1aWxkIGZvciBlYWNoIG1hdmVuIHZlcnNpb24uCkZvciBhIHZhcmlldHkgb2YgcmVhc29ucywgbGlrZSBzZWN1cml0eSBpc3N1ZXMgaW4gT1Mgb3IgdG8gdXBncmFkZSBKREsgb3IKYmVjYXVzZSBkb2NrZXIgcmVidWlsZHMgaXQsIHNvIGl0IGlzIG5vdCBmZWFzaWJsZSB0byB2b3RlIGVhY2ggb2YgdGhlbS4KCk9uIFNhdCwgT2N0IDIxLCAyMDE3LCAxMjozMyBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+IHdyb3RlOgoKPiBPbiBTYXQsIDIxIE9jdCAyMDE3IDEyOjE5OjQ2ICswMjAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlPQplLmZyPgo+IHdyb3RlOgo+Cj4gPiBMZSBzYW1lZGkgMjEgb2N0b2JyZSAyMDE3LCAwODoxNjozNSBDRVNUIFN0ZXBoZW4gQ29ubm9sbHkgYSA9QzM9QTljcml0ID0KOgo+ID4+IE9uIFNhdCAyMSBPY3QgMjAxNyBhdCAwODo0NSwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI9Cj4KPiA+PiB3cm90ZToKPiA+PiA+IG9rLCBsZXQncyBzd2l0Y2ggZGlyZWN0bHkgdG8gdGhlIERvY2tlciBjYXNlCj4gPj4gPgo+ID4+ID4gSSdtIG5vdCBhIERvY2tlciBleHBlcnQsIHRoZW4gSSdtIGRpc2NvdmVyaW5nIHRoaW5ncyB0aGF0IG15IGJlCj4gPj4gb2J2aW91cyB0bwo+ID4+ID4gb3RoZXJzCj4gPj4gPgo+ID4+ID4gSUlVQyBEb2NrZXIgaGFzIGFuICJvZmZpY2llbCBpbWFnZXMiIHByb2plY3QgWzFdIHdoZXJlIENhcmxvcwo+ID4+IHByb3ZpZGVkIGEKPiA+PiA+IE1hdmVuCj4gPj4gPiBpbWFnZSBbMl06IHRoZW4gdGhpcyBpbWFnZSBpcyBrbm93biBhcyAidGhlIG9mZmljaWFsIE1hdmVuIERvY2tlcgo+ID4+IGltYWdlIgo+ID4+ID4gQ2FybG9zIGlzIGFuIGluZGl2aWR1YWwsIGhlJ3MgYWxzbyBhIFBNQyBtZW1iZXIgb2YgTWF2ZW4KPiA+PiA+Cj4gPj4gPiB3aGF0IGRvIHdlIHdhbnQgdG8gc2F5OiB0aGUgUE1DIG1lbWJlciBoYXMgcHJvdmlkZWQgYW4gb2ZmaWNpYWwgRG9jaz0KZXIKPiA+PiA+IGltYWdlIG9yCj4gPj4gPiBhbiBpbmRpdmlkdWFsIGhhcyBwcm92aWRlZCBhbiBvZmZpY2lhbCBEb2NrZXIgaW1hZ2U/Cj4gPj4gPgo+ID4+ID4gZGVwZW5kaW5nIG9uIHRoZSBhbnN3ZXIsIHNvbWUgd2F5IG9mIGRvaW5nIGhhcyB0byBiZSBjaGFuZ2VkIChHaXQKPiA+PiBsb2NhdGlvbgo+ID4+ID4gb3IKPiA+PiA+IG5hbWluZyBvZiB0aGUgb2ZmaWNpYWwgaW1hZ2UpCj4gPj4KPiA+PiBJPUUyPTgwPTk5bSBpbiBmYXZvdXIgb2YgY3JlYXRpbmcgYSByZXBvIGZvciB0aGUgZG9ja2VyZmlsZSwgbGljZW5zZS50PQp4dCwgcmVhZAo+ID4+IG1lLAo+ID4+IG5vdGljZXMsIGV0Ywo+ID4gb2ssIGhlcmUgSSBmb2xsb3cKPiA+Cj4gPj4gYW5kIGZvbGxvdyB0aGUgc3RhbmRhcmQgcmVsZWFzZSB2b3RlIGxpZmVjeWNsZSBmb3IgdGhhdAo+ID4+IGRvY2tlcmZpbGUuCj4gPiBoZXJlLCBJJ20gbm90IHN1cmUgdGhpcyByZWFsbHkgaGFzIGEgbWVhbmluZyBpbiB0aGVzZSBvZmZpY2lhbCBEb2NrZXIKPiA+IGltYWdlcwo+ID4gY2FzZXM6IElJVUMsIG9uIGEgbmV3IE1hdmVuIGNvcmUgcmVsZWFzZSB0aGF0IHdlIHdhbnQgdG8gcHJvbW90ZSwgdGhlcmUKPiA+IGFyZSAyCj4gPiBhY3Rpb25zIHRoYXQgYXJlIHJlcXVpcmVkOgo+ID4gMS4gbW9kaWZ5IHRoZSBNQVZFTl9WRVJTSU9OIGFuZCBTSEEgdmFsdWVzIGluICovRG9ja2VyZmlsZSBpbiB0aGUgZ2l0Cj4gPiByZXBvIFsxXQo+ID4gMi4gaGF2ZSBhIFBSIG1lcmdlZCB0byBEb2NrZXIgb2ZmaWNpYWwtaW1hZ2VzIHRvIHVwZGF0ZSB0aGUgc2hhMSBpbgo+ID4gb2ZmaWNpYWwtCj4gPiBpbWFnZXMvbGlicmFyeS9tYXZlbiBbMl0KPiA+Cj4gPiBCZXR3ZWVuIHRoZSAyIHN0ZXBzLCB3ZSBjYW4gY2hvb3NlIHRvIHZvdGUsIG9yIG5vdCB0byB2b3RlLCBJIGRvbid0IGtubz0Kdwo+ID4gd2hhdCdzIHRoZSBiZXN0OiB3ZSBhbHJlYWR5IHZvdGVkIGZvciB0aGUgTWF2ZW4gcmVsZWFzZSB0aGF0IGdldHMgdGhlIG49CmV3Cj4gPiByZWNvbW1lbmRlZCB2ZXJzaW9uLgo+ID4gV2hhdCBpcyBpbXBvcnRhbnQgdG8gbWUgaXMgdGhhdCBhbnlib2R5IGZyb20gdGhlIFBNQyBjYW4gZG8gdGhlIFBSIHRvCj4gPiBEb2NrZXIKPiA+IG9mZmljaWFsLWltYWdlcyAoaWYgd2UgZGVjaWRlIHRoYXQgd2UgbWFpbnRhaW4gdGhlIG9mZmljaWFsIGltYWdlLCBub3QKPiA+IG9ubHkKPiA+IENhcmxvcyk6IHRoZXJlIGlzIG5vdCBzcGVjaWZpYyBjcmVkZW50aWFscwo+ID4KPiA+IE9uZSB0aGluZyBJIHNlZSBpcyB0aGF0IHdlIGNhbiBhdXRvbWF0ZSBhIGNoZWNrIHRoYXQgdGhlIGN1cnJlbnQKPiA+IG9mZmljaWFsLWltYWdlCj4gPiBpcyBvdXIgY3VycmVudGx5IHJlY29tbWVuZGVkIE1hdmVuIHZlcnNpb246IGl0J3MganVzdCBhYm91dCBhZGRpbmcgYSBuZT0Kdwo+ID4gY2hlY2sKPiA+IHRvIGRpc3QtdG9vbC1wbHVnaW4gdGhhdCB3aWxsIGJlIGNoZWNrZWQgZXZlcnkgZGF5IGJ5IEplbmtpbnMgam9iIFszXQo+Cj4gV2l0aG91dCB0YWxraW5nIGluIHNvbHV0aW9ucywgd2UgaGF2ZSB0aGlzIGdlbmVyYWwgcXVlc3Rpb246IEFyZSB3ZQo+IGluZm9ybWluZyBvdGhlcnMgYnkgdGhlaXIgZm9ybWF0IG9yIGFyZSB3ZSBvZmZlcmluZyBzb21lIGdlbmVyaWMgbWVzc2FnZQo+IGZvciBvdGhlcnMgdG8gbWFrZSB0aGVtIGF3YXJlIHRoZXJlJ3MgYSBuZXcgdmVyc2lvbi4KPgo+IFRoaXMgZGlzdHRvb2wgc29sdXRpb24gc291bmRzIGxpa2UgdGhlIGZpcnN0IG9uZSAod2UgdHJpZ2dlciBDYXJsb3MgaW4KPiBzb21lIHdheSBzbyBoZSBjYW4gbWFrZSBhIG5ldyBpbWFnZSksIHdoaWNoIGlzIGV4YWN0bHkgd2hhdCBTREtNYW4gYXNrZWQKPiB1cyB0byBkby4KPgo+IElNSE8gd2hhdGV2ZXIgd2UgZG8gZm9yIERvY2tlciwgd2Ugc2hvdWxkIGRvIHRoZSBzYW1lIGZvciBTREtNYW4gYW5kIG9mZmU9CnIKPiB0aGF0IHNvbHV0aW9uIGZvciBvdGhlciBpbnRlcmVzdGVkIHBhcnRpZXMuCj4KPiBSb2JlcnQKPgo+ID4KPiA+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vY2FybG9zc2cvZG9ja2VyLW1hdmVuCj4gPgo+ID4gWzJdCj4gPgo+IGh0dHBzOi8vZ2l0aHViLmNvbS9kb2NrZXItbGlicmFyeS9vZmZpY2lhbC1pbWFnZXMvYmxvYi9tYXN0ZXIvbGlicmFyeS9tYXY9CmVuCj4gPgo+ID4gWzNdCj4gPiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL2Rpc3QtdG9vbC1wbHVnaW4vc2l0ZT0KLwo+ID4KPiA+Pgo+ID4+IElmIHdlIHdhbnQgdGhhdCBkb2NrZXJmaWxlIGluIE1hdmVuLWNvcmUgcmVwbywgaT1FMj04MD05OW0gRmluZSB3aXRoIHQ9CmhhdCB0b28KPiA+IGdpdmVuIHRoZSBjb250ZW50LCBhIHNlcGFyYXRlIHJlcG8gbW9yZSByZWFzb25hYmxlCj4gPgo+ID4+Cj4gPj4gTm93IHRoZSBvdGhlciBxdWVzdGlvbiBpcyBob3cgdG8gZ2V0IHRoZSBpbWFnZSBmcm9tIHRoYXQgZG9ja2VyZmlsZSBpbj0KdG8KPiA+PiBkb2NrZXIuLi4KPiA+IElJVUMsIHRoYXQncyB0aGUgc2Vjb25kIHBvaW50IEkgd3JvdGU6IHdlIGRvbid0IHJlYWxseSBwdXQgdGhlIGltYWdlIGJ1PQp0Cj4gPiB1cGRhdGUgYSBjb21taXQgcmVmZXJlbmNlIHRvIG91ciBEb2NrZXJmaWxlcwo+ID4KPiA+Pgo+ID4+IEk9RTI9ODA9OTltIGhhcHB5IGZvciBDYXJsb3MgdG8gY29udGludWUgZG9pbmcgaW4gYSBwZXJzb25hbCBjYXBhY2l0eS49Ci4uCj4gPiArMQo+ID4gSSdkIGJlIGhhcHB5IHRvIGp1c3QgaGF2ZSB0aGlzIGFzIGFuIG9mZmljaWFsIFBNQyBhc3NldCwgd2l0aCBDYXJsb3MgYXMKPiA+IG91cgo+ID4gZXhwZXJ0IHdobyB3cm90ZSB0aGUgc3VidGxlIGJ1bmNoIG9mIGltYWdlcywgc2luY2UgSUlVQywgaXQncyBub3QgcmVhbGw9CnkKPiA+IG9uZQo+ID4gaW1hZ2UgYnV0IGEgY29sbGVjdGlvbiB0aGF0IG9uZSBjYW4gY2hvb3NlIGZyb20KPiA+Cj4gPiBSZWdhcmRzLAo+ID4KPiA+IEhlcnY9QzM9QTkKPiA+Cj4gPj4KPiA+PiBTbyBpPUUyPTgwPTk5ZCBiZQo+ID4+Cj4gPj4gPUUyPTgwPTlDVGhlIGRvY2tlcmZpbGUgaGFzIGJlZW4gcmVsZWFzZWQgYnkgdGhlIE1hdmVuIHByb2plY3QgYW5kIGEgbT0KZW1iZXIgb2YKPiA+PiB0aGUKPiA+PiBQTUMgaGFzIHVwbG9hZGVkIHRoZSBpbWFnZT1FMj04MD05RAo+ID4+Cj4gPj4gPiBSZWdhcmRzLAo+ID4+ID4KPiA+PiA+IEhlcnY9QzM9QTkKPiA+PiA+Cj4gPj4gPiBbMV0gaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci1saWJyYXJ5L29mZmljaWFsLWltYWdlcwo+ID4+ID4KPiA+PiA+IFsyXQo+ID4+ID4KPiA+Pgo+IGh0dHBzOi8vZ2l0aHViLmNvbS9kb2NrZXItbGlicmFyeS9vZmZpY2lhbC1pbWFnZXMvYmxvYi9tYXN0ZXIvbGlicmFyeS9tYXY9CmUKPiA+PiA+IG4KPiA+PiA+Cj4gPj4gPiBMZSBzYW1lZGkgMjEgb2N0b2JyZSAyMDE3LCAwNjo1ODo1MCBDRVNUIE1hbmZyZWQgTW9zZXIgYSA9QzM9QTljcml0ID0KOgo+ID4+ID4gPiBGcm9tIG15IHBlcnNwZWN0aXZlIGl0IGlzIGp1c3QgbGlrZSBzZGttYW4gaW5jbHVkaW5nIHRoZQo+ID4+IGNvbmNsdXNpb24uIFdlCj4gPj4gPgo+ID4+ID4gaGF2ZQo+ID4+ID4KPiA+PiA+ID4gb3RoZXIgdGFza3MgYXQgb3VyIGhhbmRzLCBtYWludGFpbmluZyBhIGRvY2tlciBpbWFnZXMgaXMgbm90Cj4gPj4gc29tZXRoaW5nCj4gPj4gPiA+IHdlCj4gPj4gPiA+IHNob3VsZCBib3RoZXIgd2l0aC4gSG93ZXZlciBuZWVkcyBvbmUgY2FuIGVhc2lseSBjcmVhdGUgb25lIGFuZAo+ID4+IHRoZXJlCj4gPj4gPgo+ID4+ID4gd2lsbAo+ID4+ID4KPiA+PiA+ID4gYmUgdGhvdXNhbmRzIG9mIHZhcmlhdGlvbnMgZGlmZmVyZW50IHVzZXJzIHdhbnQuCj4gPj4gPiA+Cj4gPj4gPiA+IExldCB0aGVtIGNyZWF0ZSBpdCBvbiB0aGVpciBvd24uCj4gPj4gPiA+Cj4gPj4gPiA+IE1hbmZyZWQKPiA+PiA+ID4KPiA+PiA+ID4gSGVydj1DMz1BOSBCT1VURU1ZIHdyb3RlIG9uIDIwMTctMTAtMjAgMTg6NDY6Cj4gPj4gPiA+ID4gdHJ1ZSwgZnJvbSBhIGdlbmVyYWwgcGVyc3BlY3RpdmUsIGl0J3MgbGlrZSBzZGttYW4KPiA+PiA+ID4gPgo+ID4+ID4gPiA+IHdlIG5lZWQgdG8gZGlzY3VzcyB0aGVuIGRlY2lkZSBpZiB3ZSB3YW50IHRvIG1haW50YWluIE1hdmVuIERvY2s9CmVyCj4gPj4gPiA+ID4gaW50ZWdyYXRpb24gKGNvbnRyYXJ5IHRvIG91ciBjdXJyZW50IGRlY2lzaW9uIHRvIG5vdCBtYWludGFpbgo+ID4+IE1hdmVuCj4gPj4gPiA+ID4gc2RrbWFuIGludGVncmF0aW9uIGJ1dCBsZXQgc2RrbWFuIGNvbW11bml0eSBkbyBpdCkKPiA+PiA+ID4gPgo+ID4+ID4gPiA+IGNhbiB3ZSB0aGluayBhYm91dCBhIGdlbmVyYWwgc29sdXRpb24/IHBlcmhhcHMgbm90IHJlYWxseSBhCj4gPj4gc29sdXRpb24sCj4gPj4gPgo+ID4+ID4gYnV0Cj4gPj4gPgo+ID4+ID4gPiA+IGEKPiA+PiA+ID4gPiBkZWNpc2lvbiBwcm9jZXNzLCB5ZXMKPiA+PiA+ID4gPgo+ID4+ID4gPiA+IHRvIG1lLCBvbiBlYWNoIHRvb2wgaW50ZWdyYXRpb24sIHRoZXJlIGFyZSBrZXkgZGVjaXNpb24gZHJpdmVyczoKPiA+PiA+ID4gPiAtIGltcG9ydGFuY2Ugb2YgdGhlIHRvb2wgb24gdGhlIG1hcmtldAo+ID4+ID4gPiA+IC0gaW50ZXJlc3Qgb2YgTWF2ZW4gZGV2cyB0byBhY3R1YWxseSBkbyBpbnRlZ3JhdGlvbiBtYWludGVuYW5jZQo+ID4+ID4gPiA+IC0gY29tcGxleGl0eSBvZiBpbnRlZ3JhdGlvbiwgdGVjaG5pY2FsIHByZXJlcXVpc2l0ZXMgKHdpdGggSURFcywKPiA+PiBmb3IKPiA+PiA+ID4gPiBleGFtcGxlLCBhIGRlZGljYXRlZCBpbmRlcGVuZGFudCBwcm9qZWN0IGxpa2UgbTJlIGlzIG5lY2Vzc2FyeSkKPiA+PiA+ID4gPiAtIHRpbWUgZmFjdG9yOiB0aGluZ3MgZXZvbHZlIG92ZXIgdGltZSAoZS5nLiAyIHllYXJzIGFnbywgRG9ja2VyCj4gPj4gd2FzCj4gPj4gPgo+ID4+ID4gbm90Cj4gPj4gPgo+ID4+ID4gPiA+IHdoYXQgaXQgaXMgbm93YWRheXMpCj4gPj4gPiA+ID4KPiA+PiA+ID4gPiBhbnkgb3RoZXIga2V5IGRyaXZlciB0byBkb2N1bWVudD8KPiA+PiA+ID4gPgo+ID4+ID4gPiA+IG9uY2UgZG9uZSwgd2UnbGwgZGlzY3VzcyBtb3JlIHByZWNpc2VseSBhYm91dCB0aGUgRG9ja2VyCj4gPj4gaW50ZWdyYXRpb24KPiA+PiA+Cj4gPj4gPiBjYXNlCj4gPj4gPgo+ID4+ID4gPiA+IGFuZCBwcm9iYWJseSBmaW5pc2ggd2l0aCBhIHZvdGUgOikKPiA+PiA+ID4gPgo+ID4+ID4gPiA+IFJlZ2FyZHMsCj4gPj4gPiA+ID4KPiA+PiA+ID4gPiBIZXJ2PUMzPUE5Cj4gPj4gPiA+ID4KPiA+PiA+ID4gPiBMZSB2ZW5kcmVkaSAyMCBvY3RvYnJlIDIwMTcsIDExOjMwOjQ5IENFU1QgUm9iZXJ0IFNjaG9sdGUgYSA9QzM9Cj1BOWNyaXQKPiA+PiA6Cj4gPj4gPiA+ID4+IElzbid0IHRoaXMgYWN0dWFsbHkgdGhlIHNhbWUgY2FzZSBhcyBzZGttYW5bMV0/Cj4gPj4gPiA+ID4+IEp1c3Qgd29uZGVyaW5nIGlmIHdlIG5lZWQgdG8gdGhpbmsgYWJvdXQgYSBnZW5lcmFsIHNvbHV0aW9uCj4gPj4gaW5zdGVhZAo+ID4+ID4gPiA+PiBvZgo+ID4+ID4gPiA+PiBwdWxsaW5nIGV2ZXJ5dGhpbmcgaW50byBvdXIgcHJvamVjdCB3aGVuIHBvc3NpYmxlLgo+ID4+ID4gPiA+Pgo+ID4+ID4gPiA+PiB0aGFua3MsCj4gPj4gPiA+ID4+IFJvYmVydAo+ID4+ID4gPiA+Pgo+ID4+ID4gPiA+PiBbMV0gaHR0cDovL21hcmttYWlsLm9yZy9tZXNzYWdlL29vZnZzem1mNTZ0YnI3ZXQKPiA+PiA+ID4gPj4KPiA+PiA+ID4gPj4gT24gVGh1LCAxOSBPY3QgMjAxNyAxOTozMDo1NyArMDIwMCwgSGVydj1DMz1BOSBCT1VURU1ZIDwKPiA+PiA+Cj4gPj4gPiBoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPj4gPgo+ID4+ID4gPiA+PiB3cm90ZToKPiA+PiA+ID4gPj4gPiBncmVhdCBpZGVhCj4gPj4gPiA+ID4+ID4KPiA+PiA+ID4gPj4gPiBvaywgd2UgbmVlZCBhIGdpdCByZXBvIGF0IEFTRgo+ID4+ID4gPiA+PiA+Cj4gPj4gPiA+ID4+ID4gd2hhdCBlbHNlPwo+ID4+ID4gPiA+PiA+IElzIHRoZXJlIHNvbWUgc29ydCBvZiByZWxlYXNlIHByb2Nlc3M/IHNvbWUgc29ydCBvZiBzb3VyY2UgdG8KPiA+PiA+Cj4gPj4gPiByZWxlYXNlPwo+ID4+ID4KPiA+PiA+ID4gPj4gPiBSZWdhcmRzLAo+ID4+ID4gPiA+PiA+Cj4gPj4gPiA+ID4+ID4gSGVydj1DMz1BOQo+ID4+ID4gPiA+PiA+Cj4gPj4gPiA+ID4+ID4gTGUgamV1ZGkgMTkgb2N0b2JyZSAyMDE3LCAxMzo0Nzo0NSBDRVNUIE1pa2UgRHJvYiBhID1DMz1BOWNyaT0KdCA6Cj4gPj4gPiA+ID4+ID4+IFRoYW5rcyBmb3IgdGhlIHBvaW50ZXIsIENhcmxvcyEgSSBoYWQgc2VhcmNoZWQgdGhlIGFyY2hpdmVzLAo+ID4+IGJ1dAo+ID4+ID4KPiA+PiA+IG1heWJlCj4gPj4gPgo+ID4+ID4gPiA+PiA+PiBJCj4gPj4gPiA+ID4+ID4+IGRpZG4ndCBnbyBiYWNrIGZhciBlbm91Z2guCj4gPj4gPiA+ID4+ID4+Cj4gPj4gPiA+ID4+ID4+IEkgdGhpbmsgbW92aW5nIHRoZXNlIERvY2tlcmZpbGVzIGludG8gYW4gQVNGIHJlcG8gd291bGQgYmUKPiA+PiBncmVhdAo+ID4+ID4KPiA+PiA+IGZvcgo+ID4+ID4KPiA+PiA+ID4gPj4gPj4gdGhlaXIKPiA+PiA+ID4gPj4gPj4gbWFpbnRhaW5hYmlsaXR5Lgo+ID4+ID4gPiA+PiA+Pgo+ID4+ID4gPiA+PiA+PiBUaGFua3MsCj4gPj4gPiA+ID4+ID4+Cj4gPj4gPiA+ID4+ID4+IE1pa2UKPiA+PiA+ID4gPj4gPj4KPiA+PiA+ID4gPj4gPj4gT24gMjAxNy0xMC0xOSAwMzo1MCwgQ2FybG9zIFNhbmNoZXogPGMuLi5AYXBhY2hlLm9yZz4gd3JvdGU6Cj4gPj4gPiA+ID4+ID4+ID4gQXJuYXVkIGlzIGNvcnJlY3QsIEkgc2VudCBhbiBlbWFpbCB0byB1c2Vyc0AgYmFjayBvbiBGcmksCj4gPj4gTm92IDcsCj4gPj4gPiA+ID4+ID4+Cj4gPj4gPiA+ID4+ID4+IDIwMTQsPgo+ID4+ID4gPiA+PiA+Pgo+ID4+ID4gPiA+PiA+PiA+IDAwOjIzIHdoZW4gSSBjcmVhdGVkIHRoZSBpbWFnZT4KPiA+PiA+ID4gPj4gPj4gPgo+ID4+ID4gPiA+PiA+PiA+Cj4gPj4gPiA+ID4+ID4+ID4gT24gVGh1LCBPY3QgMTksIDIwMTcsIDExOjEyIEFybmF1ZCBIPUVGPUJGPUJEcml0aWVyCj4gPj4gPGFoLi4uQGdtYWlsLmNvbT4KPiA+PiA+ID4gPj4gPj4gPiB3cm90ZTo+Cj4gPj4gPiA+ID4+ID4+ID4KPiA+PiA+ID4gPj4gPj4gPiA+IFRoZXNlIGltYWdlcyBhcmUga2luZGx5IG1hbmFnZWQgYnkgYSBQTUMgbWVtYmVyIG9mIG91cgo+ID4+IHByb2plY3QKPiA+PiA+ID4gPj4gPj4KPiA+PiA+ID4gPj4gPj4gKENhcmxvcykKPiA+PiA+ID4gPj4gPj4KPiA+PiA+ID4gPj4gPj4gYnV0Pgo+ID4+ID4gPiA+PiA+Pgo+ID4+ID4gPiA+PiA+PiA+ID4geWVzIHRoZXkgYXJlbid0IG1hbmFnZWQgZGlyZWN0bHkgYnkgdGhlIHByb2plY3Q+Cj4gPj4gPiA+ID4+ID4+ID4gPgo+ID4+ID4gPiA+PiA+PiA+ID4gV2UgY2FuIGVhc2lseSBzZWUgd2l0aCBoaW0gdG8gaW1wcm92ZSB0aGlzIElNTy4+Cj4gPj4gPiA+ID4+ID4+ID4gPgo+ID4+ID4gPiA+PiA+PiA+ID4gV2hlbiBoZSBzdGFydGVkIHRoYXQgKHNldmVyYWwgeWVhcnMgYWdvKSBEb2NrZXIgd2Fzbid0Cj4gPj4gd2hhdCBpdAo+ID4+ID4KPiA+PiA+IGlzCj4gPj4gPgo+ID4+ID4gPiA+PiA+PiBub3dhZGF5cy4+Cj4gPj4gPiA+ID4+ID4+Cj4gPj4gPiA+ID4+ID4+ID4gPiBXaXRoIGRvY2tlciBiZWluZyBtYWluc3RyZWFtIEkgYWdyZWUgdGhhdCB3ZSBjYW4KPiA+PiByZWNvbnNpZGVyCj4gPj4gPgo+ID4+ID4gdGhpcy4+Cj4gPj4gPgo+ID4+ID4gPiA+PiA+PiA+ID4gVGhlIGRvY2tlciBpbWFnZSBidWlsZC9kaXN0cmlidXRpb24gY291bGQgcGVyaGFwcyBiZSBwYXI9CnQKPiA+PiBvZgo+ID4+ID4KPiA+PiA+IG91cgo+ID4+ID4KPiA+PiA+ID4gPj4gPj4gcmVsZWFzZT4KPiA+PiA+ID4gPj4gPj4KPiA+PiA+ID4gPj4gPj4gPiA+IHByb2Nlc3MuPgo+ID4+ID4gPiA+PiA+PiA+ID4KPiA+PiA+ID4gPj4gPj4gPiA+IFdEWVQgQ2FybG9zID8+Cj4gPj4gPiA+ID4+ID4+ID4gPgo+ID4+ID4gPiA+PiA+PiA+ID4gT24gVGh1LCBPY3QgMTksIDIwMTcgYXQgNDoxNiBBTSwgTWlrZSBEcm9iCj4gPj4gPG1kLi4uQGFwYWNoZS5vcmc+Cj4gPj4gPiA+ID4+ID4+Cj4gPj4gPiA+ID4+ID4+IHdyb3RlOj4KPiA+PiA+ID4gPj4gPj4KPiA+PiA+ID4gPj4gPj4gPiA+ID4gSSBndWVzcyB0aGUgbmF0dXJhbCBmb2xsb3ctb24gcXVlc3Rpb24gaXMgd2hldGhlciB0aGUKPiA+PiBNYXZlbgo+ID4+ID4gPiA+PiA+Pgo+ID4+ID4gPiA+PiA+PiBjb21tdW5pdHk+Cj4gPj4gPiA+ID4+ID4+Cj4gPj4gPiA+ID4+ID4+ID4gPiA+IHdvdWxkIGNvbnNpZGVyIHB1Ymxpc2hpbmcgYW4gb2ZmaWNpYWwgc2V0IG9mIGltYWdlcz8gTz0Kcgo+ID4+ID4gPiA+PiA+Pgo+ID4+ID4gPiA+PiA+PiBhbHRlcm5hdGl2ZWx5Pgo+ID4+ID4gPiA+PiA+Pgo+ID4+ID4gPiA+PiA+PiA+ID4gPiB3aGV0aGVyIHRoZXkgc2hvdWxkIHNlbmQgYSB0YWtlZG93biBub3RpY2UgdG8gcHJvdGVjdAo+ID4+IHRoZWlyCj4gPj4gPiA+ID4+ID4+ID4gPiA+IGJyYW5kCj4gPj4gPiA+ID4+ID4+Cj4gPj4gPiA+ID4+ID4+IGFuZD4KPiA+PiA+ID4gPj4gPj4KPiA+PiA+ID4gPj4gPj4gPiA+ID4gdHJhZGVtYXJrcy4uLj4KPiA+PiA+ID4gPj4gPj4gPiA+ID4KPiA+PiA+ID4gPj4gPj4gPiA+ID4gT24gMjAxNy0xMC0xOCAxODozNiwgIk1hbmZyZWQgTW9zZXIiCj4gPj4gPG1hLi4uQHNpbXBsaWdpbGl0eS5jb20KPiA+PiA+ID4gPj4gPj4KPiA+PiA+ID4gPj4gPj4gd3JvdGU6Pgo+ID4+ID4gPiA+PiA+Pgo+ID4+ID4gPiA+PiA+PiA+ID4gPiA+IE5vLiBBcyB5b3UgY2FuIHNlZSBmcm9tIHRoZSBnaXRodWIgVVJMIHRoaXMgaXMgTk9UIGE9Cm4KPiA+PiA+Cj4gPj4gPiBhcGFjaGUKPiA+PiA+Cj4gPj4gPiA+ID4+ID4+IFVSTC4+Cj4gPj4gPiA+ID4+ID4+Cj4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2Nhcmxvc3NnL2RvY2tlci1tYXZlbj4KPiA+PiA+ID4gPj4gPj4gPiA+ID4gPgo+ID4+ID4gPiA+PiA+PiA+ID4gPiA+Cj4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gTWlrZSBEcm9iIHdyb3RlIG9uIDIwMTctMTAtMTggMTY6MzI6Pgo+ID4+ID4gPiA+PiA+PiA+ID4gPiA+Cj4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gPiBIZWxsbyw+Cj4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gPgo+ID4+ID4gPiA+PiA+PiA+ID4gPiA+ID4gQXJlIHRoZSBpbWFnZXMgYXQgaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL18vbWF2ZW49Ci8KPiA+PiA+ID4gPj4gPj4KPiA+PiA+ID4gPj4gPj4gY29uc2lkZXJlZCB0bwo+ID4+ID4gPiA+PiA+Pgo+ID4+ID4gPiA+PiA+PiBiZT4KPiA+PiA+ID4gPj4gPj4KPiA+PiA+ID4gPj4gPj4gPiA+ID4gb2ZmaWNpYWw+Cj4gPj4gPiA+ID4+ID4+ID4gPiA+Cj4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gPiBtYXZlbiBkb2NrZXIgaW1hZ2VzIGFuZCBibGVzc2VkL3B1Ymxpc2hlZCBieSB0aGUKPiA+PiBQTUM/Pgo+ID4+ID4gPiA+PiA+PiA+ID4gPiA+ID4KPiA+PiA+ID4gPj4gPj4gPiA+ID4gPiA+IFRoYW5rcyw+Cj4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gPiBNaWtlPgo+ID4+ID4KPiA+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotPgo+ID4+ID4KPiA+PiA+ID4gPj4gPj4gPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6Cj4gPj4gPiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgo+ID4+ID4KPiA+PiA+ID4gPj4gPj4gPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6Cj4gPj4gPiA+ID4+ID4+ID4gPiA+ID4gPiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Cj4gPj4gPgo+ID4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0+Cj4gPj4gPgo+ID4+ID4gPiA+PiA+PiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6Cj4gPj4gdXNlcnMtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4KPiA+PiA+ID4gPj4gPj4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOgo+ID4+ID4gdXNlcnMtaGVscEBtYXZlbi5hcGFjaGUub3JnPgo+ID4+ID4KPiA+PiA+Cj4gPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLT4KPiA+PiA+Cj4gPj4gPiA+ID4+ID4+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6Cj4gPj4gdXNlcnMtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KPiA+PiA+ID4gPj4gPj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDoKPiA+PiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+ID4gPj4gPj4gPiA+Cj4gPj4gPiA+ID4+ID4+ID4gPiAtLT4KPiA+PiA+ID4gPj4gPj4gPiA+IC0tLS0tPgo+ID4+ID4gPiA+PiA+PiA+ID4gQXJuYXVkIEg9RUY9QkY9QkRyaXRpZXI+Cj4gPj4gPiA+ID4+ID4+ID4gPiBodHRwOi8vYWhlcml0aWVyLm5ldD4KPiA+PiA+ID4gPj4gPj4gPiA+IE1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tPgo+ID4+ID4gPiA+PiA+PiA+ID4gVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcj4KPiA+PiA+Cj4gPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLQo+ID4+ID4KPiA+PiA+ID4gPj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4gPiA+PiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+ID4gPj4KPiA+PiA+ID4gPj4KPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiA+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+ID4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4gPiA+Cj4gPj4gPiA+ID4KPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+ID4KPiA+PiA+ID4KPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+PiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4KPiA+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotCj4gPj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+ID4KPiA+PiA+IC0tCj4gPj4KPiA+PiBTZW50IGZyb20gbXkgcGhvbmUKPiA+Cj4gPgo+ID4KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCi0tMDAxYTExNDVhYTc0NWQzYmI0MDU1YzBjN2Q1My0tCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDEyNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gT2N0ICAxIDE2OjU1OjIzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDEyNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAzQTBBQ0Y2QTgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAgMSBPY3QgMjAxNyAxNjo1NToyMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDcwODEgaW52b2tlZCBieSB1aWQgNTAwKTsgMSBPY3QgMjAxNyAxNjo1NToyMiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjk4NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxIE9jdCAyMDE3IDE2OjU1OjIyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjk3MyBpbnZva2VkIGJ5IHVpZCA5OSk7IDEgT2N0IDIwMTcgMTY6NTU6MjIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMDEgT2N0IDIwMTcgMTY6NTU6MjIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1vaTAtZjUxLmdvb2dsZS5jb20gKG1haWwtb2kwLWY1MS5nb29nbGUuY29tIFsyMDkuODUuMjE4LjUxXSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDQ3MzkzMUEwMDQ0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAgMSBPY3QgMjAxNyAxNjo1NToyMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1vaTAtZjUxLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIDEyNXNvNTk2MTU4Mm9pZS41CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMDEgT2N0IDIwMTcgMDk6NTU6MjEgLTA3MDAgKFBEVCkKWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FVY0tEaVlIL24xMFhDd2dqNWZEQ1FjYXljZ1VrVHFscWFwY3FGalpXQXN5MER6VUtMbAoJbnVmSjNxakpGazRmOTh2S3I1TS83aFk2OWNkejQ1b2pxL0hGQ25jPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQW9UUmpKRld2K01Va2R2UG9PTm5BTXA3OFNDRHNyMmVwZi8xRHBZTllYWTdMc3lyVFZjN3pYR0RQQVFORjdmUnRDNGpSR0ZaOHV1bmFhdndMMmNTdz0KWC1SZWNlaXZlZDogYnkgMTAuMTU3LjguMTggd2l0aCBTTVRQIGlkIDE4bXI2NjYyMTU2b3R5LjQ5OC4xNTA2ODc2OTIxMjc3OyBTdW4sCiAwMSBPY3QgMjAxNyAwOTo1NToyMSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuNzQuMTM3LjIxNSB3aXRoIEhUVFA7IFN1biwgMSBPY3QgMjAxNyAwOTo1NToyMCAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPENBTWtfQmVneWFDRTB1YUhCdDg4d0NBaytZKytNYXUrZEpYZFEzdlJEWm9FR0haalhWQUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPDQ5NTk1MjJBLTIwOTAtNDIzOS04MjMzLUUzMjAwMERFOUE1QkBhcGFjaGUub3JnPgogPENBTWtfQmVodi0wQ2o0a1kxbjYyQTFwVkZlOFBkejc0RW1hOGpDRHh2V2NOSEFkZkxVUUBtYWlsLmdtYWlsLmNvbT4KIDxCQzQ1NEJEQS1DMTE2LTREQTYtODEzNS1DMjBENUEzNkI4NTBAYXBhY2hlLm9yZz4gPENBTWtfQmVqendZODdLeUpKckNyTHZWeVRZV2hpVG49cmQtN0JPTXVCWnI2bzFzaFFBUUBtYWlsLmdtYWlsLmNvbT4KIDw4Njk3NTI0OC01QTc4LTQyMUMtQjBCOS0wQjhDNkU2QkVEREZAYXBhY2hlLm9yZz4gPENBTWtfQmVneWFDRTB1YUhCdDg4d0NBaytZKytNYXUrZEpYZFEzdlJEWm9FR0haalhWQUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogIkFsZXggTydSZWUiIDxhbGV4b3JlZUBhcGFjaGUub3JnPgpEYXRlOiBTdW4sIDEgT2N0IDIwMTcgMTI6NTU6MjAgLTA0MDAKWC1HbWFpbC1PcmlnaW5hbC1NZXNzYWdlLUlEOiA8Q0FMTFQ4a2dKNmd1NHROajA9SnhmOWp5dDRSWTFRWjZRWWZicXorR1NXPWUzOTMzT1RRQG1haWwuZ21haWwuY29tPgpNZXNzYWdlLUlEOiA8Q0FMTFQ4a2dKNmd1NHROajA9SnhmOWp5dDRSWTFRWjZRWWZicXorR1NXPWUzOTMzT1RRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogZGVwZW5kZW5jeTpnby1vZmZsaW5lIGJyb2tlbj8KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKClRoaXMgaXMgd2hhdCBJIHVzZSB0byBnZXQgYXJ0aWZhY3RzIGJlZm9yZSBkcm9wcGluZyBvZmZsaW5lIChpdCBtYXkgb3IKbWF5IG5vdCBoZWxwIHlvdXIgc2NlbmFyaW8pCgptdm4gZGVwZW5kZW5jeTpyZXNvbHZlIC1EY2xhc3NpZmllcj0zRGphdmFkb2MgZGVwZW5kZW5jeTpzb3VyY2VzCmRlcGVuZGVuY3k6cmVzb2x2ZS1wbHVnaW5zIC1mbgoKVGhpcyBnZXRzIHNvdXJjZXMsIGphdmFkb2NzIGFuZCBwbHVnaW5zLiBUaGlzIHdvcmtzIGluIG1vc3QgY2FzZXMsCmhvd2V2ZXIgaWYgeW91J3JlIHVzaW5nIGFudCB0byBkb3dubG9hZCBzdHVmZiBvciBhbnkgb3RoZXIgY2FzZXMKd2hlcmUncyB0aGVyZSdzIGRlY2xhcmVkIGRlcGVuZGVuY2llcyB0aGF0IGFyZSBvbmx5IHJlc29sdmVkIGJ5CnJ1bm5pbmcgYSBzcGVjaWZpYyBwaGFzZSBvciBwbHVnaW4sIHRoZW4geW91J2xsIGhhdmUgdG8gZmlndXJlIHRob3NlCm91dCwgdGhlbiBwdXQgdGhlbSBpbiBkZXBlbmRlbmN5IG1hbmFnZW1lbnQgYW5kIHRoZSBhYm92ZSBzaG91bGQgd29yawoKCk9uIFdlZCwgU2VwIDI3LCAyMDE3IGF0IDU6NTkgUE0sIEJyaWFuIEZveCA8YnJpYW5mQGluZmluaXR5Lm51PiB3cm90ZToKPiBObywgSSBkb24ndCB0aGluayBpdCB3aWxsIHdvcmsuIFdoYXQgeW91IHJlYWxseSBuZWVkIGlzIGEgcmVwb3NpdG9yeQo+IG1hbmFnZXIgdG8gY2FjaGUgdGhpbmdzIGxvY2FsbHkgZm9yIHlvdS4gVGhhdCdzIHRoZSByZWNvbW1lbmRlZCBzb2x1dGlvbgo+IGFueSB0aW1lIHlvdSBmZWVsIGxpa2UgeW91J3JlIGdvaW5nIHRvIGJlIGRvd25sb2FkaW5nIGNvbXBvbmVudHMgbW9yZSB0aGE9Cm4KPiBvbmNlLi4ud2hpY2ggaXMgcmVhbGx5IGluIGV2ZXJ5IGluc3RhbmNlLgo+Cj4gT24gV2VkLCBTZXAgMjcsIDIwMTcgYXQgNzo1MyBBTSwgQmVuZWRpa3QgUml0dGVyIDxicml0dGVyQGFwYWNoZS5vcmc+IHdybz0KdGU6Cj4KPj4gSGVsbG8gQnJhaW4sCj4+Cj4+ID4gQW0gMjYuMDkuMjAxNyB1bSAyMzoxMCBzY2hyaWViIEJyaWFuIEZveCA8YnJpYW5mQGluZmluaXR5Lm51PjoKPj4gPgo+PiA+IE9uIE1vbiwgU2VwIDI1LCAyMDE3IGF0IDI6MTAgUE0sIEJlbmVkaWt0IFJpdHRlciA8YnJpdHRlckBhcGFjaGUub3JnPgo+PiB3cm90ZToKPj4gPgo+PiA+PiBIZWxsbyBCcmlhbiwKPj4gPj4KPj4gPj4+IEFtIDIwLjA5LjIwMTcgdW0gMjM6MTYgc2NocmllYiBCcmlhbiBGb3ggPGJyaWFuZkBpbmZpbml0eS5udT46Cj4+ID4+Pgo+PiA+Pj4gSXQncyBiZWVuIGEgcmVhbGx5IGxvbmcgdGltZSwgYnV0IEkgcmVjYWxsIHRoYXQgdGhlcmUgd2VyZSBpc3N1ZXMKPj4gZ2V0dGluZwo+PiA+Pj4gdGhlIGRlcGVuZGVuY2llcyBvZiBwbHVnaW5zIGJvdW5kIHRvIHRoZSBsaWZlY3ljbGUuIFRoaXMgbG9va3MgdG8gYmUKPj4gdGhlCj4+ID4+PiBzYW1lIHByb2JsZW0uIEkgdGhpbmsgdGhlIGRvY3VtZW50YXRpb24gdGFsa2VkIGFib3V0IGEgd2F5IHRvIGRvIHRoaT0Kcwo+PiA+Pj4gZWZmZWN0aXZlbHkuCj4+ID4+Cj4+ID4+IEk9RTI9ODA9OTl2ZSBsb29rZWQgdGhyb3VnaCB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgZGVwZW5kZW5jeSBwbHVnaT0KbiwgYnV0IEkKPj4gY2FuCj4+ID4+IG5vdCBmaW5kIGFueXRoaW5nIGFib3V0IHRoaXMuIERvIHlvdSByZWNhbGwgd2hlcmUgeW91IGZvdW5kIHRoYXQKPj4gPj4gZG9jdW1lbnRhdGlvbj8KPj4gPj4KPj4gPj4KPj4gPiBIYSBubywgc2luY2UgSSB3cm90ZSB0aGF0IGdvYWwgMTAgeWVhcnMgYWdvIEknbSBzY3JhdGNoaW5nIHRoZSBkZXB0aCBvPQpmCj4+IG15Cj4+ID4gbWVtb3J5LiBNYXliZSBJIGp1c3QgaW50ZW5kZWQgdG8gZGVzY3JpYmUgaXQgOy0pCj4+Cj4+IFRoYW5rIHlvdSBmb3IgeW91ciByZXNwb25zZS4gTWF5YmUgST1FMj04MD05OWxsIGp1c3QgZ2l2ZSBhIGxpdHRsZSBtb3JlID0KY29udGV4dAo+PiBhYm91dCB3aGF0IEk9RTI9ODA9OTltIHRyeWluZyB0byBhY2hpZXZlLiBNYXliZSBJPUUyPTgwPTk5bSBqdXN0IGRvaW5nIHQ9CmhlIHdyb25nIHRoaW5nOgo+Pgo+PiBJIGhhdmUgYSBDSSBCdWlsZCBpbiBHaXRMYWIsIHdoZXJlIEkgd2FudCB0byBkZWZpbmUgYSBqb2IgdGhhdCBkb3dubG9hZHMKPj4gYWxsIHRoZSBhcnRpZmFjdHMgd2hpY2ggYXJlIG5lZWRlZCBmb3IgdGhlIGRpZmZlcmVudCBsaWZlY3ljbGUgcGhhc2VzIGFuPQpkCj4+IHBsdWdpbiBleGVjdXRpb25zIGFzIHdlbGwgYXMgYWxsIHByb2plY3QgZGVwZW5kZW5jaWVzLiBJIG9ubHkgd2FudCB0bwo+PiBkb3dubG9hZCBhbGwgdGhlIHN0dWZmIG9uY2UgYW5kIHRoZW4gY29weSB0aGUgYXJ0aWZhY3RzIGJldHdlZW4gdGhlIGJ1aWw9CmQKPj4gc3RhZ2VzLiBJIHRob3VnaHQgdGhpcyB3b3VsZCBiZSBwb3NzaWJsZSB3aXRoIGRlcGVuZGVuY3k6Z28tb2ZmbGluZSBzbyB0PQpoYXQKPj4gbGF0ZXIgc3RlcHMgY2FuIGJlIHJ1biB3aXRoIG12biAtby4KPj4gQW0gSSBtaXNzaW5nIHNvbWV0aGluZyBvciBpcyB0aGlzIHNpbXBseSBub3QgcG9zc2libGUgYXQgdGhlIG1vbWVudD8KPj4KPj4gUmVnYXJkcywKPj4gQmVuZWRpa3QKPj4KPj4gPgo+PiA+Cj4+ID4+IFJlZ2FyZHMsCj4+ID4+IEJlbmVkaWt0Cj4+ID4+Cj4+ID4+Pgo+PiA+Pj4gT24gV2VkLCBTZXAgMjAsIDIwMTcgYXQgNDo0OCBQTSwgQmVuZWRpa3QgUml0dGVyIDxicml0dGVyQGFwYWNoZS5vcmc9Cj4KPj4gPj4gd3JvdGU6Cj4+ID4+Pgo+PiA+Pj4+IEhpLAo+PiA+Pj4+Cj4+ID4+Pj4gYXMgZmFyIGFzIEkgdW5kZXJzdGFuZCBpdCBzaG91bGQgYmUgcG9zc2libGUgdG8gY2FsbCBtdm4KPj4gPj4+PiBkZXBlbmRlbmN5OmdvLW9mZmxpbmUgYW5kIGZyb20gdGhlcmUgb24gd29yayBpbiBvZmZsaW5lIG1vZGUgKG12biAtPQpvKS4KPj4gPj4+PiBJPUUyPTgwPTk5dmUgcHV0IGEgbWluaW1hbCBleGFtcGxlIHRvZ2V0aGVyIFsxXSB0aGF0IGRlbW9uc3RyYXRlcyB0PQpoYXQgdGhpcwo+PiA+Pj4+IGN1cnJlbnRseSBkb2VzIG5vdCB3b3JrLiBBbSBJIG1pc3NpbmcgYW55dGhpbmc/Cj4+ID4+Pj4KPj4gPj4+PiBUaGFuayB5b3UhCj4+ID4+Pj4gQmVuZWRpa3QKPj4gPj4+Pgo+PiA+Pj4+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vYnJpdHRlci9kZXBlbmRlbmN5LXBsdWdpbi1idWcKPj4gPj4+Pgo+PiA+Pj4+Cj4+ID4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLS0KPj4gPj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4gPj4+Pgo+PiA+Pj4+Cj4+ID4+Cj4+ID4+Cj4+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4+Cj4+ID4+Cj4+Cj4+Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Cj4+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQyODYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE9jdCAyMSAwMjozNTo1NCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyODYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMTkyNDMxMDQ1MAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDIxIE9jdCAyMDE3IDAyOjM1OjU0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzUzNTYgaW52b2tlZCBieSB1aWQgNTAwKTsgMjEgT2N0IDIwMTcgMDI6MzU6NTMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc1Mjk1IGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIE9jdCAyMDE3IDAyOjM1OjUzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzUyODMgaW52b2tlZCBieSB1aWQgOTkpOyAyMSBPY3QgMjAxNyAwMjozNTo1MyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMjEgT2N0IDIwMTcgMDI6MzU6NTMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAzQzI2NDE4MDdEQwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMjEgT2N0IDIwMTcgMDI6MzU6NTIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAzLjIzClgtU3BhbS1MZXZlbDogKioqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0zLjIzIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgSFRNTF9NRVNTQUdFPTIsCglLQU1fTE9UU09GSEFTSD0wLjI1LCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD10YWxpb3MtY29tLjIwMTUwNjIzLmdhcHBzc210cC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBqekh1akpDWkhOTmogZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsIDIxIE9jdCAyMDE3IDAyOjM1OjUwICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtcWswLWYxODAuZ29vZ2xlLmNvbSAobWFpbC1xazAtZjE4MC5nb29nbGUuY29tIFsyMDkuODUuMjIwLjE4MF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBFMTE5QzVGNTY2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAyMSBPY3QgMjAxNyAwMjozNTo0OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1xazAtZjE4MC5nb29nbGUuY29tIHdpdGggU01UUCBpZCB4ODJzbzE2NDc0MzYwcWtiLjEyCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjAgT2N0IDIwMTcgMTk6MzU6NDkgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPXRhbGlvcy1jb20uMjAxNTA2MjMuZ2FwcHNzbXRwLmNvbTsgcz0yMDE1MDYyMzsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9UzJnWHBUdlhWMkFHbnR1RVZwNG95K25KbXVGSm5wQkxZZkxIL0d6dlNRTT07CiAgICAgICAgYj1ZYTU5Ujc3MWpTNHpFbW5aWVFScW1QTWprTkQzajVoMzl4MFdzSS94elNTdy90Y2pWWlNtWVpFVHoxbGhUbmpRaW0KICAgICAgICAgRHVnNUJGS3RJL1ZNZlZUVmt0cDhKcTNZQ1hHKzJSbUJLWnN4ZDBZVCtibHhqUm13LzBka1U5b0ZiQ3NEZzZmdWoybW8KICAgICAgICAgMFprNzdQeEYrUm05Q3VEbU15N28wcDRVMDdtTVJjMmVCQXUvSkxWNHZldmRqQ212NExHVlVPVjJ1ajhTV1NkVGxlejYKICAgICAgICAgcTRGZTlLRFBUOUtXZGJTbzBkZGlZNThsTXlhRk1TVEJvZDBTVlJsWEtMaFpCS2NXNnplN1ZUbEJ3UnlmV01TVzgrRjEKICAgICAgICAgVG9Gd3JBc01pc256Z2xpQTMram9pc21Xd1RWLzVGVDBCSWh1UFJMMHlnL25ZWk80T0dqMnY5dUxKUEtldXpWNlFvcDYKICAgICAgICAgRFhNdz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9UzJnWHBUdlhWMkFHbnR1RVZwNG95K25KbXVGSm5wQkxZZkxIL0d6dlNRTT07CiAgICAgICAgYj1DVEw2SnhjRjRjRW50R3hlNHlDdGY2YnVFY2ZBTzhHYUdEWHUvellIV3hacHhYODJyZTZRbDBCaGF1bjdJdnpkWW8KICAgICAgICAgeTgxcTFxenJobXNIeStRV240RnJZU0lRczRLbWFYQURFMFpsTjdHbnRHMUZlOEJNTDFqQU92RWh6dmtlci90ajMwN28KICAgICAgICAgZDN5ZjErMFdIZmJhWEJ5UWE5LzVENzVaQVFERm45ODcvN09OT1k1ZGkxdXZpNkQ5L3h0YXRtSG9tK0JJS0xVb0UvQ1oKICAgICAgICAgWGcrYldyY0Q4U2R1N3FsU3g2VytHLzBIWEI3c2xISzFGd2lZTERlbmJrMFpOTUNiZlY4OGpXdGQ1OXJzMWF2OWcyYUEKICAgICAgICAgWFF0NTBSRTdQTG8zUGFaM2VtUm5ralQ3TFcvdTZ1V3lZUVI2eElXRUlQcjRncHZadzJkaHlWY01md2RmT0VSOXhOaG8KICAgICAgICAgTmxVZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhWDlwL1ZrRzY4blpHT0JBYnJoNVlEa2JIa3RubWVNNVJJMDNibzZuaXRHa0ZxSnF6UUYKCTByVndKM0YxUi9rRDZQZFlDQjNoYjRZbGVqSVFVOHdnK09pTiszZTJtQXNyClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtUMDJCMTlWbVRGWGFsVHprWTZHb2F6U0xnemxlMDAvRDNEMnUvVURXY2JPaGhPcTAwT2hpUnF0enB1cGxBL2F3RWxVQVdJU0pjbGUyWi9nbStNQkprPQpYLVJlY2VpdmVkOiBieSAxMC41NS4yMy4xMzEgd2l0aCBTTVRQIGlkIDNtcjEwMjI0Mjg1cWt4LjIzNy4xNTA4NTUzMzQ5MjA5OwogRnJpLCAyMCBPY3QgMjAxNyAxOTozNTo0OSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMjAwLjU3LjEzMiB3aXRoIEhUVFA7IEZyaSwgMjAgT2N0IDIwMTcgMTk6MzU6MjggLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxDQStuUG5Nd3RqblpFLTUzQU41M3hGPU1mNkhZLUZiR1l3WkFVdzNFVUtIQTRlS0I1MlFAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQStuUG5Nd3RqblpFLTUzQU41M3hGPU1mNkhZLUZiR1l3WkFVdzNFVUtIQTRlS0I1MlFAbWFpbC5nbWFpbC5jb20+CkZyb206IE1hcmsgRGVycmljdXR0IDxtYXJrQHRhbGlvcy5jb20+CkRhdGU6IFNhdCwgMjEgT2N0IDIwMTcgMTU6MzU6MjggKzEzMDAKTWVzc2FnZS1JRDogPENBTFlHbTF3PVVQd3YwckUtSGpaSnZuK201SDkxRSs0YTh1LTVTWTBjdjhzdVVLMGhnUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0N2FlMTg4MTM1ZGEwNTVjMDU3MmY3IgoKLS0wMDFhMTE0N2FlMTg4MTM1ZGEwNTVjMDU3MmY3CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCisxIGxvb2tpbmcgZ29vZCBmcm9tIGhlcmUgb24gbXkgcHJvamVjdHMvcmVsZWFzZXMuCgotLT0yMAoiR3JlYXQgYXJ0aXN0cyBhcmUgZXh0cmVtZWx5IHNlbGZpc2ggYW5kIGFycm9nYW50IHRoaW5ncyIgPUUyPTgwPTk0IFN0ZXZlbiA9CldpbHNvbiwKUG9yY3VwaW5lIFRyZWUKCk9uIFdlZCwgT2N0IDE4LCAyMDE3IGF0IDExOjUwIFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cgo+IEhpLAo+Cj4gV2Ugc29sdmVkIDI2IGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4gdmVyc2lvbj0zRDEyMzM4OTY0JnN0eWxlTmFtZT0zRFRleHQmcHJvamVjdElkPTNEMTIzMTY5MjIKPgo+IFRoZXJlIGFyZSAzNTcgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9M0Rwcm9qZWN0JTIwJQo+IDNEJTIwTU5HJTIwQU5EJTIwcmVzb2x1dGlvbiUyMCUzRCUyMFVucmVzb2x2ZWQlMjBPUkRFUiUKPiAyMEJZJTIwZHVlJTIwQVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwY3JlYXRlZCUyMEFTQwo+Cj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzMvCj4KPiBUaGUgZGlzdHJpYnV0YWJsZSBiaW5hcmllcyBhbmQgc291cmNlcyBjYW4gYmUgZm91bmQgaGVyZToKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiAxMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yLwo+Cj4gU3BlY2lmaWNhbGx5IHRoZSB6aXAsIHRhcmJhbGwgYW5kIHNvdXJjZSBhcmNoaXZlcyBjYW4gYmUgZm91bmQgaGVyZToKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiAxMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yL2FwYWNoZS1tYXZlbi0zLjUuMi1iaW4uemlwCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gMTM3My9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItYmluLnRhci5nego+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+IDEzNzMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvYXBhY2hlLW1hdmVuLTMuNS4yLXNyYy56aXAKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiAxMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yL2FwYWNoZS1tYXZlbi0zLjUuMi1zcmMudGFyLmd6Cj4KPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBhcGFjaGUtbWF2ZW4tMy41LjItc3JjLnRhci5neiBzaGExOiA5N2Q2ZDdiMTg0ODViNzkwNmRkN2YzMTNjZGQ0MTEKPiA5MWQxNmRkZTQ2Cj4gYXBhY2hlLW1hdmVuLTMuNS4yLXNyYy56aXA6IHNoYTE6IGRjOGNhYTVjZGFjYjQwMDk0M2QyNDkxYTAyMGY3NDJhNTE4ZThmMD0KOAo+Cj4gR2l0IHRhZzoKPiBodHRwczovL2dpdC13aXAtdXMuYXBhY2hlLm9yZy9yZXBvcy9hc2Y/cD0zRG1hdmVuLmdpdDthPTNEY29tbWl0O2g9M0QKPiAxMzhlZGQ2MWZkMTAwZWM2NThiZmEyZDMwN2M0M2I3Njk0MGE1ZDdkCj4KPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2NvbXBvbmVudHMvcmVmLzMtTEFURVNULwo+Cj4gVm90ZSBvcGVuIGZvciA3MiBob3Vycy4KPgo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQo+Cj4gVGhhbmtzLAo+Cj4gU3RlcGhlbi4KPgoKLS0wMDFhMTE0N2FlMTg4MTM1ZGEwNTVjMDU3MmY3LS0KCkZyb20gZGV2LXJldHVybi0xMjQwNDAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIFNlcCAxNSAxMjozMzowNiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwNDAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOEIwRTcxQUVGRQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDE1IFNlcCAyMDE3IDEyOjMzOjA2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTEwNTUgaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgU2VwIDIwMTcgMTI6MzM6MDYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkwOTc4IGludm9rZWQgYnkgdWlkIDUwMCk7IDE1IFNlcCAyMDE3IDEyOjMzOjA0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTA5NjYgaW52b2tlZCBieSB1aWQgOTkpOyAxNSBTZXAgMjAxNyAxMjozMzowNCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMTUgU2VwIDIwMTcgMTI6MzM6MDQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBEN0VBNTE4NEQ4QQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTUgU2VwIDIwMTcgMTI6MzM6MDMgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjk4MQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjk4MSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIEhUTUxfTUVTU0FHRT0yLAoJS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFVSSUJMX0JMT0NLRUQ9MC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9dGFsaW9zLWNvbS4yMDE1MDYyMy5nYXBwc3NtdHAuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgM3pKOGJXTmhEdGJ1IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJRnJpLCAxNSBTZXAgMjAxNyAxMjozMzowMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXF0MC1mMTcxLmdvb2dsZS5jb20gKG1haWwtcXQwLWYxNzEuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNi4xNzFdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMEQxMEU1RkJERgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTUgU2VwIDIwMTcgMTI6MzM6MDAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtcXQwLWYxNzEuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgaTUwc28xOTc1NjkzcXRmLjAKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAxNSBTZXAgMjAxNyAwNTozMjo1OSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9dGFsaW9zLWNvbS4yMDE1MDYyMy5nYXBwc3NtdHAuY29tOyBzPTIwMTUwNjIzOwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1zUUlPeGM0MU5TcTE2blpIRjRWUkVWWDlvYWJ1a09uR3hlMDlqdU5TZTRZPTsKICAgICAgICBiPW9vUUs5NDZqNnhyNCtncTFwdGEwclErN0JnUndCN1hJNUh0T3NJdDc1dy9JbGlqcUJDdnVoTWFHUGlucEppRGZpTgogICAgICAgICBSK0RveVI0aG9sTjVNUm1rSlhnSW44dC9vSTBaRzM4dnRxSTZLQU9GR2cxYnVNZkkwTUNJNWM2MDhJek1vUUZ3TVJsMAogICAgICAgICB3bktLRlhYNGNCdFBTSGMyb3ZPeUNqenpEemM3dXFBOGtoQmo3OFlRK1AzYVc5R204dDFtSk5DcnVaVWxOd3BzNmxvNQogICAgICAgICBUSFB4R3VLdklaeFl6Y2h3c1RpTnVNRHVxd0YzRm91b1F0ZGR5NHErVzA5aGt6MFUxcXhFL002cmF1Qk40QWllNG1wRAogICAgICAgICBQN25EcHBXaW42bStFQ2UrQkZWT1E5aENoSUtNMnpMclFHVnRraXlMcjNrZzkyRHpkS0xOblJHdXp5My9jNk1HYXM4RgogICAgICAgICA1amRRPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1zUUlPeGM0MU5TcTE2blpIRjRWUkVWWDlvYWJ1a09uR3hlMDlqdU5TZTRZPTsKICAgICAgICBiPXM4eCtsQlJFb0o2Z05Kc3FsZW9vMjZYdlE2R3l4QTdhdXRUVWtadXF1S043VHNIaXJNbk9IQnc3WE5yazdIUzlOVAogICAgICAgICBDZGM1ZnJaTXcrQXExK1NRdU5RUzNmUWNvaUsveE4rTDMvdy9ocE5LMDNSMFlKSWZmbThsSVY0MXVpcnc2QXlLMkdwVgogICAgICAgICBDMk5mSXlPaUpjTzl4bFFqN2RpYUhkaE9HVSsvZkdvODdVdWd1eU9nMzNSMFNtckVpUmpMNEZlRnNSZ1h0dGtEYThwNwogICAgICAgICBsRjRIV0Zkc01vLzdZc1NBS1NHY01TRFY3NWlrbG5CNDVpNVJwaWJtZ1dEUnphNkYyWUhVN0l3YlpBSVJUWDZSUnBqNgogICAgICAgICBJN3kyM0JQcFZwc2FnNXFRbVp1Y001cGVXWXR5dGVpS0hZaDJqSmlVeE5HTEJMREozcElXZW9vdFNMV0JwWG1xT0dKTwogICAgICAgICB3TEp3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVpTzZRMGNPMDBpbG9YRHozc2Y3Kyt5T2VRbDcxdDI3ei83ZFJqMjNBNW5IS1pkdFhMUAoJY3hrV1JLSkk4QTlwMjh3Tkk1R3F3a0xkdy9XYW8rck9SRS9VMzRJU25EQlcKWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UURCTlZ4V2tnTnNEMnlVQVowUlV0MEtnVzBlV2NLam5QZnE4ZS9WMC93RkY3QVVCbHhWNUhVVHBEWVhJRnY1MlJMN3VTbm1aQW52dzZtRFczbXcyVVE9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIwMC41Ny4yOSB3aXRoIFNNVFAgaWQgczI5bXIzNzIxMzEzMnF0Yi4zMDkuMTUwNTQ3ODc3MjM3OTsKIEZyaSwgMTUgU2VwIDIwMTcgMDU6MzI6NTIgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjIwMC40Ny4xNDMgd2l0aCBIVFRQOyBGcmksIDE1IFNlcCAyMDE3IDA1OjMyOjMxIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0FLRFVOMXZOa1NST2duU0xkYl8wanVodEJfZWhza0JrczZCdDlFLWlLQmNQOXJqeWpnQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgogPHBvbnktNTZhM2FkZWFmNjBjNDA1OTZmYjI4NGIyNDUyNDE0OGY2MDVlOGQyMy01MmQ0MWNkNDBmMjM0M2M4OTUyODgwZThmODRkYTNlODBkMzM1NTA5QGRldi5tYXZlbi5hcGFjaGUub3JnPgogPENBK25Qbk15UzJxMXVmYVcrUzZzbWhaWjFKY3hoZjloWTUtM25CSi1pQ1dlalBVQURWQUBtYWlsLmdtYWlsLmNvbT4KIDwyMDU3OTQ4LmsxR3lmanVHWGRAZ2lnYT4gPENBK25Qbk13Y29IRlp2VXFXaVVzeUhCaGFNbW9TY2N5ZFRCc3pTWGdzR3RGPXdOR0RLd0BtYWlsLmdtYWlsLmNvbT4KIDxDQUtEVU4xdjVUc0ZuK28tdnY4SGgzUHV2R1hXZStmUW5NK2p3RFp0Kz16dHhzcGNnZ3dAbWFpbC5nbWFpbC5jb20+CiA8Q0FLRFVOMXNtMEtLck5va3B4aCtOQk9Ya1VGODRHQkx4aFFWMmZkd0VLLUZ4Ky14blZ3QG1haWwuZ21haWwuY29tPgogPENBS0RVTjF0ZEQ9UHg1bjlMNjBLY2EyRnVuQ1ZOMndyb1BkOVVyUU5LeF94YnptdE02d0BtYWlsLmdtYWlsLmNvbT4KIDwxNTA1NDc3NTQ1LjIzOTI3Ny4xMTA3MTU3MDk2LjYzODQ2NkFDQHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4gPENBS0RVTjF2TmtTUk9nblNMZGJfMGp1aHRCX2Voc2tCa3M2QnQ5RS1pS0JjUDlyanlqZ0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogTWFyayBEZXJyaWN1dHQgPG1hcmtAdGFsaW9zLmNvbT4KRGF0ZTogU2F0LCAxNiBTZXAgMjAxNyAwMDozMjozMSArMTIwMApNZXNzYWdlLUlEOiA8Q0FMWUdtMXdyLTdZd1Z3c3JPU2VWcHRuamd5NkJHalowaC05eDJyTVVaaHhvWDF5a1JRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQxOGM0ZTcyMDkyMjA1NTkzOTk3MmQiCgotLTAwMWExMTQxOGM0ZTcyMDkyMjA1NTkzOTk3MmQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKV291bGQgaXQgYmUgcG9zc2libGUgdG8gaGFuZGxlIHRoaXMgaW4gYSBzb21ld2hhdCBzaW1pbGFyIHdheSB0byB0aHJlYWRTYWZlCm1vam9zIC0gc29tZSBmb3JtIG9mIHBsdWdpbiBmbGFnIHRoYXQgc2F5cyAiZXh0ZW5zaW9uU2FmZSIgWzFdLCB0aGF0IGlmIHRoZQpwbHVnaW4gaGFzIDxleHRlbnNpb25zPnRydWU8L2V4dGVuc2lvbnM+IGRlY2xhcmVkIGFuZCBkb2Vzbid0IGRlY2xhcmUKaXRzZWxmIGFzIGJlaW5nIGV4dGVuc2lvblNhZmUvZXh0ZW5zaW9uQXdhcmUgdGhlbiB3ZSBsb2cgYSBidWlsZCB3YXJuaW5nIC0KaXQgd291bGRuJ3Qgc29sdmUgYW55dGhpbmcsIG90aGVyIHRoYW4gZ2l2aW5nIHNvbWUgZmVlZGJhY2sgdG8gdXNlcnMgc29tZQppbmRpY2F0aW9uIG9mIFdIWSB0aGVpciBidWlsZCBmYWlscyB1bmRlciAzLjUuMSAtIGFuZCB0byBlaXRoZXIgcmVtb3ZlCjxleHRlbnNpb25zPiBvciBmaXgvdXBkYXRlIHRoZWlyIHBsdWdpbnMuCgpbMV0gT3IgZXZlbiBqdXN0IGluZmVyIHRoZSBhcHBsaWNhYmlsaXR5IG9mIGV4dGVuc2lvbnMgYnkgdGhlIHByZXNlbmNlIG9mCmN1c3RvbSBsaWZlY3ljbGVzLCBvciBNb2pvcyBpbXBsZW1lbnRpbmcgdGhlIGV4dGVuc2lvbiBpbnRlcmZhY2VzICggaXQncwptaWRuaWdodCwgYW5kIGEgaGF6eSB0aXJlZCB0aG91Z2h0ICkuCgotLT0yMAoiR3JlYXQgYXJ0aXN0cyBhcmUgZXh0cmVtZWx5IHNlbGZpc2ggYW5kIGFycm9nYW50IHRoaW5ncyIgPUUyPTgwPTk0IFN0ZXZlbiA9CldpbHNvbiwKUG9yY3VwaW5lIFRyZWUKCk9uIFNhdCwgU2VwIDE2LCAyMDE3IGF0IDEyOjIyIEFNLCBBbmRlcnMgSGFtbWFyIDxhbmRlcnNAaGFtbWFyLm5ldD4gd3JvdGU6Cgo+IEJhc2VkIG9uIElnb3IncyBmZWVkYmFjayBJJ20gY2hhbmdpbmcgbXkgdm90ZSB0byArMS4KPgo+IEhhdmluZyB0aGlzIGNsYXNzIGxvYWRlciBjaGFuZ2UgaW4gYSBidWcgZml4IHJlbGVhc2UgaXMgcHJvYmFibHkgbm90Cj4gKHNlbXZlcikgaWRlYWwgdGhvdWdoLgo+Cj4gL0FuZGVycwo+Cj4gT24gRnJpLCBTZXAgMTUsIDIwMTcgYXQgMjoxMiBQTSwgSWdvciBGZWRvcmVua28gPGlnb3JAaWZlZG9yZW5rby5jb20+Cj4gd3JvdGU6Cj4KPiA+IEkgYW5zd2VyZWQgaW4gbW9yZSBkZXRhaWxzIG9uIG0yZS1kZXYsIGJ1dCBJIGJlbGlldmUgd2UgY2FuIGNvbXBlbnNhdGUKPiA+IGZvciB0aGUgY2hhbmdlIGZyb20gbTJlIGVuZC4gSW4gdGhlIHdvcnN0IGNhc2Ugd2UnbGwgYnVuZGxlIGhhY2tlZAo+ID4gdmVyc2lvbiBvZiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXIgd2l0aCBtMmUsIG5vdCBpZGVhbCwgYnV0IG5vdCB0aGUgZW49CmQKPiA+IG9mIHRoZSB3b3JsZCBlaXRoZXIuCj4gPgo+ID4gLS0KPiA+IFJlZ2FyZHMsCj4gPiBJZ29yCj4gPgo+ID4gT24gRnJpLCBTZXAgMTUsIDIwMTcsIGF0IDA3OjIxIEFNLCBBbmRlcnMgSGFtbWFyIHdyb3RlOgo+ID4gPiBPbiBGcmksIFNlcCAxNSwgMjAxNyBhdCA4OjI5IEFNLCBBbmRlcnMgSGFtbWFyIDxhbmRlcnNAaGFtbWFyLm5ldD4KPiA+IHdyb3RlOgo+ID4gPgo+ID4gPiA+IFJlcG9ydGluZyBiYWNrIGZyb20gdGVzdHMgb2YgbTJlIHdpdGggZW1iZWRkZWQgTWF2ZW4gMy41LjEsIHdlIHNlZQo+ID4gcHJvYmxlbQo+ID4gPiA+IHdpdGggdGhlIGpheHdzLW1hdmVuLXBsdWdpbiBtb2pvLiBXZSdyZSB0d28gcGVvcGxlIHNlZWluZyB0aGUgaXNzdWUKPiA+ID4gPiBpbmRlcGVuZGVudGx5LCBidXQgdW5mb3J0dW5hdGVseSBGcmVkIEJyaWNvbiBoYXNuJ3QgYmVlbiBhYmxlIHRvCj4gPiByZXByb2R1Y2UuCj4gPiA+ID4KPiA+ID4KPiA+ID4gVG8gZm9sbG93IHVwIG9uIHRoaXMsIG15IHRlc3RzIGluZGljYXRlIHRoYXQgTWF2ZW4gMy41LjEgY2F1c2VzIGNoYW5nPQplZAo+ID4gPiBjbGFzcyBsb2FkaW5nIHRoYXQgY291bGQgY2F1c2UgaXNzdWVzIGZvciBwbHVnaW5zIGluIG0yZS4gSSd2ZSBhc2tlZAo+IGZvcgo+ID4gPiBpbnB1dCBmcm9tIHRoZSBtMmUgZGV2cyBpZiBpdCBpcyBwb3NzaWJsZSB0byBoYW5kbGUgaW4gbTJlIGJ1dCB0aGV5Cj4gPiA+IGhhdmVuJ3QKPiA+ID4gcmVzcG9uZGVkIHlldC4KPiA+ID4KPiA+ID4gL0FuZGVycwo+ID4gPgo+ID4gPgo+ID4gPiA+Cj4gPiA+ID4gU28gY3VycmVudGx5IEknbSAwIG9uIHRoZSB2b3RpbmcgYnV0IEknbGwgaW52ZXN0aWdhdGUgc29tZSBtb3JlLgo+ID4gPiA+Cj4gPiA+ID4gL0FuZGVycwo+ID4gPiA+Cj4gPiA+ID4gT24gV2VkLCBTZXAgMTMsIDIwMTcgYXQgOToyNiBBTSwgQW5kZXJzIEhhbW1hciA8YW5kZXJzQGhhbW1hci5uZXQ+Cj4gPiB3cm90ZToKPiA+ID4gPgo+ID4gPiA+Pgo+ID4gPiA+Pgo+ID4gPiA+PiBPbiBUdWUsIFNlcCAxMiwgMjAxNyBhdCA4OjU0IFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+ID4gPj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+ID4+Cj4gPiA+ID4+PiBIYXZlIHdlIGdvdCBhbnkgZmVlZGJhY2sgZnJvbSB0aGUgZW1iZWRkZXIgaW50ZWdyYXRpb25zIHlldD8KPiA+ID4gPj4+Cj4gPiA+ID4+Cj4gPiA+ID4+IEkgaGF2ZW4ndCBoZWFyZCBhbnl0aGluZyBmcm9tIHRoZSBtMmUgcGVvcGxlLiBNYXliZSB3ZSBuZWVkIHRvIHBpbj0KZwo+ID4gdGhlbQo+ID4gPiA+PiBkaXJlY3RseS4gSSBjYW4gY29udGFjdCBGcmVkIEJyaWNvbi4KPiA+ID4gPj4KPiA+ID4gPj4gL0FuZGVycwo+ID4gPiA+Pgo+ID4gPiA+Pgo+ID4gPiA+Pj4KPiA+ID4gPj4+IE9uIE1vbiAxMSBTZXAgMjAxNyBhdCAyMjo1NywgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyPQplZS5mcj4KPiA+ID4gPj4+IHdyb3RlOgo+ID4gPiA+Pj4KPiA+ID4gPj4+ID4ganVzdCBmb3IgdGhlIHJlY29yZHM6IGl0IGlzIFdpbmRvd3MgKyBHaXQgQmFzaCAoTUlOR1c2NCkgb25seQo+ID4gPiA+Pj4gPgo+ID4gPiA+Pj4gPiBhbmQgdGhlcmUgaXMgYSBjaGFuY2UgdGhhdCBhZGRpbmcgLURqYW5zaS5mb3JjZT0zRHRydWUgY2FuIGZvcmM9CmUKPiA+IEpBbnNpCj4gPiA+ID4+PiA+IGFjdGl2YXRpb24gKGV2ZW4gaWYgSkFuc2kgZmFpbHMgdG8gZGV0ZWN0IHRoYXQgaXQgc2hvdWxkCj4gPiBhdXRvLWFjdGl2YXRlKQo+ID4gPiA+Pj4gPgo+ID4gPiA+Pj4gPiBkZXRhaWxzIG9uIGlzc3VlIGluIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvCj4gamlyYS9icm93c2UvTU5HLTYyODIKPiA+ICwKPiA+ID4gPj4+IGFuZCBhCj4gPiA+ID4+PiA+IGZ1dHVyZSBKQW5zaSBpc3N1ZS4uLgo+ID4gPiA+Pj4gPgo+ID4gPiA+Pj4gPiBSZWdhcmRzLAo+ID4gPiA+Pj4gPgo+ID4gPiA+Pj4gPiBIZXJ2PUMzPUE5Cj4gPiA+ID4+PiA+Cj4gPiA+ID4+PiA+IExlIGx1bmRpIDExIHNlcHRlbWJyZSAyMDE3LCAxMjo1Mzo0NiBDRVNUIFN0ZXBoZW4gQ29ubm9sbHkgYQo+ID1DMz1BOWNyaXQKPiA+IDoKPiA+ID4gPj4+ID4gPiBTbyB0aGF0IGlzIHdpbmRvd3Mgb25seSwgb3Igd2VyZSB0aGV5IGxvc3Qgb24gb3RoZXIgT1NlcyBmb3IKPiB5b3UuCj4gPiA+ID4+PiA+ID4KPiA+ID4gPj4+ID4gPiBJIGhhdmUgY29sb3VycyBvbiBsaW51eCAodmlhIGRvY2tlcikgYW5kIG9zLXgKPiA+ID4gPj4+ID4gPgo+ID4gPiA+Pj4gPiA+IE9uIDExIFNlcHRlbWJlciAyMDE3IGF0IDEyOjM1LCBkZWphbjI2MDlAZ21haWwuY29tIDwKPiA+ID4gPj4+IGRlamFuMjYwOUBnbWFpbC5jb20+Cj4gPiA+ID4+PiA+ID4KPiA+ID4gPj4+ID4gPiB3cm90ZToKPiA+ID4gPj4+ID4gPiA+ICsxIChjb25kaXRpb25hbGx5KS4KPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4+PiA+ID4gPiBUZXN0ZWQgdmlhIHByb2plY3QgdGhhdCBpbmNsdWRlcyBkb3plbiBvZiBwbHVnaW5zOiAxc3QgdGllcj0KLAo+ID4gPiA+Pj4gTW9qb0hhdXMKPiA+ID4gPj4+ID4gYW5kCj4gPiA+ID4+PiA+ID4gPiBmZXcgM3JkIHBhcnR5IHBsdWdpbnMgKHNvIHRvIHNheSkuCj4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+Pj4gPiA+ID4gRXZlcnl0aGluZyBsb29rcyBnb29kIHdpdGggb25lIG5vdGFibGUgcmVncmVzc2lvbjoKPiA+ID4gPj4+ID4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyODIgQ29uc29sZQo+IG91dHB1dAo+ID4gaGFzCj4gPiA+ID4+PiBubwo+ID4gPiA+Pj4gPiA+ID4gY29sb3JzIChyZWdyZXNzaW9uIGluIE1hdmVuIDMuNS4xKQo+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPj4+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4+PiA+ID4gPiBEZWphbgo+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPj4+ID4gPiA+IE9uIDIwMTctMDktMTAgMTc6MzksIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4gPiA+Pj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbQo+ID4gPiA+Pj4gPiA+Cj4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+Pj4gPiA+ID4gd3JvdGU6Cj4gPiA+ID4+PiA+ID4gPiA+IEhpLAo+ID4gPiA+Pj4gPiA+ID4gPgo+ID4gPiA+Pj4gPiA+ID4gPiBXZSBzb2x2ZWQgMjUgaXNzdWVzOgo+ID4gPiA+Pj4gPiA+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+Pj4gPiA+ID4gdmVyc2lvbj0zRDEyMzM4OTY0JnN0eWxlTmFtZT0zRFRleHQmcHJvamVjdElkPTNEMTIzMTY5MjIKPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4+PiA+ID4gPiA+IFRoZXJlIGFyZSAzNTAgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUKPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4+PiA+ID4gPiAzRCUyME1ORyUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlCj4gPiA+ID4+PiA+ID4gPiAyMEJZJTIwZHVlJTIwQVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwY3JlYXRlZCUyMEFTQwo+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPj4+ID4gPiA+ID4gU3RhZ2luZyByZXBvOgo+ID4gPiA+Pj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiA+IDEzNjQvCj4gPiA+ID4+PiA+ID4gPiA+Cj4gPiA+ID4+PiA+ID4gPiA+IFRoZSBkaXN0cmlidXRhYmxlIGJpbmFyaWVzIGFuZCBzb3VyY2VzIGNhbiBiZSBmb3VuZCBoZXJlOgo+ID4gPiA+Pj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi09Cj4KPiA+Cj4gPiA+ID4+PiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xLwo+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPj4+ID4gPiA+ID4gU3BlY2lmaWNhbGx5IHRoZSB6aXAsIHRhcmJhbGwgYW5kIHNvdXJjZSBhcmNoaXZlcyBjYW4gYmUKPiA+IGZvdW5kCj4gPiA+ID4+PiBoZXJlOgo+ID4gPiA+Pj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi09Cj4KPiA+Cj4gPiA+ID4+PiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMT0KLQo+ID4gPiA+Pj4gYmluLnppcAo+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPj4+ID4gPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tPQo+Cj4gPgo+ID4gPiA+Pj4gPiA+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjE9Ci0KPiA+ID4gPj4+IGJpbi50YXIuZ3oKPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLT0KPgo+ID4KPiA+ID4gPj4+ID4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xPQotCj4gPiA+ID4+PiBzcmMuemlwCj4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+Pj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi09Cj4KPiA+Cj4gPiA+ID4+PiA+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMT0KLQo+ID4gPiA+Pj4gc3JjLnRhci5nego+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPj4+ID4gPiA+ID4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gPiA+ID4+PiA+ID4gPiA+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMudGFyLmd6IHNoYTE6Cj4gPiA+ID4+PiA5ZWI4MjFmMTUzYzc2NjcxOTRhYTExY2NkMDk5YjcKPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4+PiA+ID4gPiBiZDIwNTk1NjBkCj4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+Pj4gPiA+ID4gPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcDogc2hhMToKPiA+IDEyMWQ1NGIwNDUzODBhOGE0ODk1ZWIxMzc5NzBhYgo+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPj4+ID4gPiA+IDY5ZTY5OGViMGUKPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4+PiA+ID4gPiA+IEdpdCB0YWc6Cj4gPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vZ2l0LXdpcC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPTNEbWF2ZW4uZ2l0O2E9Cj0zRAo+ID4gY29tbWl0O2g9M0QKPiA+ID4gPj4+ID4gPiA+Cj4gPiA+ID4+PiA+ID4gPiAwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzCj4gPiA+ID4+PiA+ID4gPgo+ID4gPiA+Pj4gPiA+ID4gPiBTdGFnaW5nIHNpdGU6Cj4gPiA+ID4+PiA+ID4gPiA+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9jb21wb25lbnRzL3JlZi8zLUxBVEVTVC8KPiA+ID4gPj4+ID4gPiA+ID4KPiA+ID4gPj4+ID4gPiA+ID4gVm90ZSBvcGVuIGZvciA3MiBob3Vycy4KPiA+ID4gPj4+ID4gPiA+ID4KPiA+ID4gPj4+ID4gPiA+ID4gWyBdICsxCj4gPiA+ID4+PiA+ID4gPiA+IFsgXSArMAo+ID4gPiA+Pj4gPiA+ID4gPiBbIF0gLTEKPiA+ID4gPj4+ID4gPiA+ID4KPiA+ID4gPj4+ID4gPiA+ID4gVGhhbmtzLAo+ID4gPiA+Pj4gPiA+ID4gPgo+ID4gPiA+Pj4gPiA+ID4gPiBTdGVwaGVuLgo+ID4gPiA+Pj4gPiA+ID4KPiA+ID4gPj4+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotCj4gPiA+ID4+PiAtLS0tLS0tLS0KPiA+ID4gPj4+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4+PiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4+PiA+Cj4gPiA+ID4+PiA+Cj4gPiA+ID4+PiA+Cj4gPiA+ID4+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gLS0tLS0tLS0tCj4gPiA+ID4+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4+PiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPj4+ID4KPiA+ID4gPj4+ID4gLS0KPiA+ID4gPj4+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4gPiA+Pj4KPiA+ID4gPj4KPiA+ID4gPj4KPiA+ID4gPgo+ID4KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Cj4gPgo+CgotLTAwMWExMTQxOGM0ZTcyMDkyMjA1NTkzOTk3MmQtLQoKRnJvbSBkZXYtcmV0dXJuLTEyMzg2MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gU2VwICAzIDEwOjU3OjM3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzg2MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAxMDA5OTFBRDJECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgIDMgU2VwIDIwMTcgMTA6NTc6MzcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzOTc4MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAzIFNlcCAyMDE3IDEwOjU3OjM2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzOTY0MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAzIFNlcCAyMDE3IDEwOjU3OjM2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzk2MjUgaW52b2tlZCBieSB1aWQgOTkpOyAzIFNlcCAyMDE3IDEwOjU3OjM2IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kNC11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAwMyBTZXAgMjAxNyAxMDo1NzozNiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kNC11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDQtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEJFMEM3QzI0MUMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sICAzIFNlcCAyMDE3IDEwOjU3OjM1ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kNC11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogNi4xNzEKWC1TcGFtLUxldmVsOiAqKioqKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTYuMTcxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgSFRNTF9NRVNTQUdFPTIsCglIVE1MX09CRlVTQ0FURV8yMF8zMD0yLjQ0MSwgS0FNX0lORk9VU01FQklaPTAuNzUsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41XSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQ0LXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPXRhbGlvcy1jb20uMjAxNTA2MjMuZ2FwcHNzbXRwLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kNC11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTFdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGhUMDhObTZOdTRGYSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgIDMgU2VwIDIwMTcgMTA6NTc6MjggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC1xazAtZjE5NC5nb29nbGUuY29tIChtYWlsLXFrMC1mMTk0Lmdvb2dsZS5jb20gWzIwOS44NS4yMjAuMTk0XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEE0M0E5NjEyNjAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sICAzIFNlcCAyMDE3IDEwOjU3OjEyICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXFrMC1mMTk0Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGM2c28yMDI5MDkxcWtoLjQKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAwMyBTZXAgMjAxNyAwMzo1NzoxMiAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9dGFsaW9zLWNvbS4yMDE1MDYyMy5nYXBwc3NtdHAuY29tOyBzPTIwMTUwNjIzOwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bwogICAgICAgICA6Y2M7CiAgICAgICAgYmg9aVYyY0htME9XYlNGdFVvVTVRVForYThXMEE5Y2lCL1BrNkRQRjRVTUJvST07CiAgICAgICAgYj1IZzdyNzBRdVZmcmUydDMyWWV3WEFJZUJRdWNxRmNuTVZZWUhMczFQaUNibEw0cjJabGs0VVRYemdwZGViWUNndnMKICAgICAgICAgVmFpa3RWcnBBSkYrL0xTRXpMTzZ1S2NIY1ZOU0ZVUnpOY0RXeDErVHV2ZTRyRlM1Tk51R0ZXaVFkUVc1REFsRDRYMW4KICAgICAgICAgYzRKbVRuU2pYOHdTL3BYbWN4bThuMzhTaTh4QVY0YUFTOTVqZXRhM3NhY1VDRnRoRmRtK1kzMlRUanUwR2svQXFLaGMKICAgICAgICAgSzlxSUdUVk5UWUVYYWVZek4rRUFPRVhibUllRGtsN3h5SGVkem5zdThTVGZrMjBqc1JoYmxwSW9KdjNzY3pvem81WVEKICAgICAgICAgRFZVb0s5M3F2MVZsY3pnRlV4TnVaZmNEMzRkRkZMWitSazVrSEhWeW9kL2VQZGRhMUZCWG1saFJmakZOZ1hOVnQwVGkKICAgICAgICAgZkZwZz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG86Y2M7CiAgICAgICAgYmg9aVYyY0htME9XYlNGdFVvVTVRVForYThXMEE5Y2lCL1BrNkRQRjRVTUJvST07CiAgICAgICAgYj1hVkp3c1FxNVJmazc5bUVYU25PZE85a2lnMFA0VmROYUJkRGt2dXFwRnh6M3dvcHU3Y2NlRGY3U216YVFtMTI3MHcKICAgICAgICAgdFFyZjgzaU5FNzBuSmxmSjNLVFhmK1RVZzY3VHVHL0dZOUljUzYxaVRzc055UHpCTnIyRU5pdzZnNGtmUGl0RGxVUmcKICAgICAgICAgMW9iSjlSenZsanRvbDA1L2sxTVdlclp3OTgrbWtmREM0NUNHMUNBY0lqekhaNlB2dTFuNWw3VU9CSnE2VkZOa3d1MlcKICAgICAgICAgUEJwdlVWTEpaSnlTak9naFZ6dU1FT1VxOUhpa0Erb1V4NFl3ZzgxSEVlU3RSaWZWZmU1eTQ2U054ZmJDVlYyZU1sVFcKICAgICAgICAgdE9Vc2RMK2Frd0ZBMVFVVGZyRURKMWZudUhWcHBINndPQlJQaGFoZDZKUTFnaU0yeUhwdkdINExBMzZtYXZKdzFmNXIKICAgICAgICAgM3JXZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVZ2oxT3pFZ3ZKT21lMS9DdkJjSEt5c3dCYWJvdUlMeFc4NWdxakh6R1g4TGNFTUs0NlEKCVBNYnFjczBhYm1OS0lJRG8yL0NOQW11OU9vVWt2WFJBSGRzPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQURLQ05iN0gzVEc5TlhRbWpFNDgwTm9kV2FnSXFRMVJsaGx3L3Z6NWdCMGRHajNiS29WS2NvR2ZQWEMxV0w4TmprRG82L2kxTnc1THVWd0RVQ3VHc2pXdDA2Yz0KWC1SZWNlaXZlZDogYnkgMTAuNTUuNzQuMTk0IHdpdGggU01UUCBpZCB4MTg1bXI5NTQ0NjU1cWthLjIzNy4xNTA0NDM2MjI2ODk4OwogU3VuLCAwMyBTZXAgMjAxNyAwMzo1NzowNiAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMjM3LjU4LjEzMCB3aXRoIEhUVFA7IFN1biwgMyBTZXAgMjAxNyAwMzo1Njo0NiAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPG9wLnk1eHJraWM4a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpSZWZlcmVuY2VzOiA8b3AueTV2M2Q2cTJrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CiA8NjA4ZDMzZDMtNjY1Yi0zODRkLWJlYzItYjZlYTM4YmNlY2Q4QGdteC5kZT4gPG9wLnk1eHJraWM4a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpGcm9tOiBNYXJrIERlcnJpY3V0dCA8bWFya0B0YWxpb3MuY29tPgpEYXRlOiBTdW4sIDMgU2VwIDIwMTcgMjI6NTY6NDYgKzEyMDAKTWVzc2FnZS1JRDogPENBTFlHbTF4S3Qwd2greUxmMHhlRm9HRmtlOEJnZ2dxRDhNM0ZOVFpHY0ZqbVRuRTZDUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBDb21waWxlciBQbHVnaW4gdmVyc2lvbiAzLjcuMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ2M6IEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTRhN2Q5YWU0NmVmZTA1NTg0NmRhZTciCgotLTAwMWExMTRhN2Q5YWU0NmVmZTA1NTg0NmRhZTcKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKVGhlIHByb2JsZW1zIHdpdGggZXJyb3Jwcm9uZSBoYXZlIGJlZW4gZml4ZWQgaW4gdGhlIHJlY2VudCAyLjEuMSByZWxlYXNlIHNvCnlvdSBjb3VsZCB1cGRhdGUgdGhlIHRlc3RzIHdpdGggdGhhdCBtYXliZT8KCi0tPTIwCiJHcmVhdCBhcnRpc3RzIGFyZSBleHRyZW1lbHkgc2VsZmlzaCBhbmQgYXJyb2dhbnQgdGhpbmdzIiA9RTI9ODA9OTQgU3RldmVuID0KV2lsc29uLApQb3JjdXBpbmUgVHJlZQoKT24gU2F0LCBTZXAgMiwgMjAxNyBhdCAxMTozMCBQTSwgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgp3cm90ZToKCj4gSGkgS2FybCBIZWlueiwKPgo+IHRoaXMgaXMgYSBwcm9ibGVtIHdpdGggdGhlIGVycm9yLXByb25lLWNvbXBpbGVyWzFdLCBhIHNwZWNpZmljCj4gaW1wbGVtZW50YXRpb24gb2YgdGhlIGNvbXBpbGVyLWFwaSBhbmQgYWxzbyB3aGVyZSB0aGlzIG11c3QgYmUgZml4ZWQuCj4gWW91IG1pZ2h0IHdvbmRlciBpZiBpdCBzaG91bGQgYmUgdGVzdGVkIGhlcmUsIGJ1dCBub3cgd2UgYXJlIGF0IGxlYXN0Cj4gYXdhcmUgdGhhdCBjdXJyZW50IGVycm9yLXByb25lLWNvbXBpbGVyIGlzIG5vdCBKYXZhOSBjb21wYXRpYmxlLiBJdCBzaG91bD0KZAo+IG5vdCBiZSBhIGJsb2NrZXIgZm9yIHRoZSBtYXZlbi1jb21waWxlci1wbHVnaW4gaXRzZWxmLgo+Cj4gdGhhbmssCj4gUm9iZXJ0Cj4KPiBbMV0gaHR0cHM6Ly9naXRodWIuY29tL2NvZGVoYXVzLXBsZXh1cy9wbGV4dXMtY29tcGlsZXIvdHJlZS9tYXN0Cj4gZXIvcGxleHVzLWNvbXBpbGVycy9wbGV4dXMtY29tcGlsZXItamF2YWMtZXJyb3Jwcm9uZQo+Cj4KPgo+IE9uIFNhdCwgMDIgU2VwIDIwMTcgMTM6MjM6NTAgKzAyMDAsIEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmQ9CmU+Cj4gd3JvdGU6Cj4KPiBIaSwKPj4KPj4gSSBoYXZlIHRlc3RlZCB0aGUgZm9sbG93aW5nIGNvbWJpbmF0aW9uczoKPj4KPj4gamRrMS43LjBfNzkuamRrCj4+ICAgIGFwYWNoZS1tYXZlbi0zLjAuNQo+PiAgICBhcGFjaGUtbWF2ZW4tMy4xLjEKPj4gICAgYXBhY2hlLW1hdmVuLTMuMi41Cj4+ICAgIGFwYWNoZS1tYXZlbi0zLjMuMQo+PiAgICBhcGFjaGUtbWF2ZW4tMy4zLjkKPj4gICAgYXBhY2hlLW1hdmVuLTMuNS4wCj4+IGpkazEuOC4wXzEzMS5qZGsKPj4gICAgYXBhY2hlLW1hdmVuLTMuMC41Cj4+ICAgIGFwYWNoZS1tYXZlbi0zLjEuMQo+PiAgICBhcGFjaGUtbWF2ZW4tMy4yLjUKPj4gICAgYXBhY2hlLW1hdmVuLTMuMy4xCj4+ICAgIGFwYWNoZS1tYXZlbi0zLjMuOQo+PiAgICBhcGFjaGUtbWF2ZW4tMy41LjAKPj4gamRrMS44LjBfMTQ0Lmpkawo+PiAgICBhcGFjaGUtbWF2ZW4tMy4wLjUKPj4gICAgYXBhY2hlLW1hdmVuLTMuMS4xCj4+ICAgIGFwYWNoZS1tYXZlbi0zLjIuNQo+PiAgICBhcGFjaGUtbWF2ZW4tMy4zLjEKPj4gICAgYXBhY2hlLW1hdmVuLTMuMy45Cj4+ICAgIGFwYWNoZS1tYXZlbi0zLjUuMAo+PiBqZGsxLjkuMF9lYSsxODEuamRrCj4+ICAgIGFwYWNoZS1tYXZlbi0zLjAuNSBGQUlMRUQhIQo+PiAgICBhcGFjaGUtbWF2ZW4tMy4xLjEgRkFJTEVEISEKPj4gICAgYXBhY2hlLW1hdmVuLTMuMi41IEZBSUxFRCEhCj4+ICAgIGFwYWNoZS1tYXZlbi0zLjMuMSBGQUlMRUQhIQo+PiAgICBhcGFjaGUtbWF2ZW4tMy4zLjkgRkFJTEVEISEKPj4gICAgYXBhY2hlLW1hdmVuLTMuNS4wIEZBSUxFRCEhCj4+Cj4+Cj4+IEJ1dCB0aGUgSkRLMS45LjBfZWErMTgxIGhhdmUgc2hvdyB0aGUgZm9sbG93aW5nIHJlc3VsdCAoZm9yIGFsbCBNYXZlbgo+PiB2ZXJzaW9ucyk6Cj4+Cj4+ICAgICAgICAgW0VSUk9SXSBGYWlsZWQgdG8gZXhlY3V0ZSBnb2FsIG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczptYXZlbi1jbz0KbXBpbGVyLXBsdWdpbjozLjcuMDpjb21waWxlCj4+IChkZWZhdWx0LWNvbXBpbGUpIG9uIHByb2plY3QgZXJyb3ItcHJvbmUtY29tcGlsZXI6IEZhdGFsIGVycm9yIGNvbXBpbGluZz0KOgo+PiBDb21waWxlckV4Y2VwdGlvbjogSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbjogamF2YS5uaW8uZmlsZS5Ob3REaXJlY3Rvcnk9CkV4Y2VwdGlvbjoKPj4gL0xpYnJhcnkvSmF2YS9KYXZhVmlydHVhbE1hY2hpbmVzL2pkazEuOS4wX2VhKzE4MS5qZGsvQ29udGVudHMvSG9tZS9saWIvPQptb2R1bGVzCj4+IC0+IFtIZWxwIDFdCj4+ICAgICAgICAgb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuTGlmZWN5Y2xlRXhlY3V0aW9uRXhjZXB0aW9uOiBGYWlsZWQKPj4gdG8gZXhlY3V0ZSBnb2FsIG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczptYXZlbi1jb21waWxlci1wbHVnaW46My43LjA6Y29tPQpwaWxlCj4+IChkZWZhdWx0LWNvbXBpbGUpIG9uIHByb2plY3QgZXJyb3ItcHJvbmUtY29tcGlsZXI6IEZhdGFsIGVycm9yIGNvbXBpbGluZwo+PiAgICAgICAgICAgICAgICAgYXQgb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuaW50Cj4+IGVybmFsLk1vam9FeGVjdXRvci5leGVjdXRlKE1vam9FeGVjdXRvci5qYXZhOjIxNykKPj4gICAgICAgICAgICAgICAgIGF0IG9yZy5hcGFjaGUubWF2ZW4ubGlmZWN5Y2xlLmludAo+PiBlcm5hbC5Nb2pvRXhlY3V0b3IuZXhlY3V0ZShNb2pvRXhlY3V0b3IuamF2YToxNTMpCj4+ICAgICAgICAgICAgICAgICBhdCBvcmcuYXBhY2hlLm1hdmVuLmxpZmVjeWNsZS5pbnQKPj4gZXJuYWwuTW9qb0V4ZWN1dG9yLmV4ZWN1dGUoTW9qb0V4ZWN1dG9yLmphdmE6MTQ1KQo+PiAgICAgICAgICAgICAgICAgYXQgb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuaW50Cj4+IGVybmFsLkxpZmVjeWNsZU1vZHVsZUJ1aWxkZXIuYnVpbGRQcm9qZWN0KExpZmVjeWNsZU1vZHVsZUJ1aWxkZXIuamF2YTo4ND0KKQo+PiAgICAgICAgICAgICAgICAgYXQgb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuaW50Cj4+IGVybmFsLkxpZmVjeWNsZU1vZHVsZUJ1aWxkZXIuYnVpbGRQcm9qZWN0KExpZmVjeWNsZU1vZHVsZUJ1aWxkZXIuamF2YTo1OT0KKQo+PiAgICAgICAgICAgICAgICAgYXQgb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuaW50Cj4+IGVybmFsLkxpZmVjeWNsZVN0YXJ0ZXIuc2luZ2xlVGhyZWFkZWRCdWlsZChMaWZlY3ljbGVTdGFydGVyLmphdmE6MTgzKQo+PiAgICAgICAgICAgICAgICAgYXQgb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuaW50Cj4+IGVybmFsLkxpZmVjeWNsZVN0YXJ0ZXIuZXhlY3V0ZShMaWZlY3ljbGVTdGFydGVyLmphdmE6MTYxKQo+PiAgICAgICAgICAgICAgICAgYXQgb3JnLmFwYWNoZS5tYXZlbi5EZWZhdWx0TWF2ZW4uCj4+IGRvRXhlY3V0ZShEZWZhdWx0TWF2ZW4uamF2YTozMjApCj4+ICAgICAgICAgICAgICAgICBhdCBvcmcuYXBhY2hlLm1hdmVuLkRlZmF1bHRNYXZlbi4KPj4gZXhlY3V0ZShEZWZhdWx0TWF2ZW4uamF2YToxNTYpCj4+ICAgICAgICAgICAgICAgICBhdCBvcmcuYXBhY2hlLm1hdmVuLmNsaS5NYXZlbkNsaS4KPj4gZXhlY3V0ZShNYXZlbkNsaS5qYXZhOjUzNykKPj4gICAgICAgICAgICAgICAgIGF0IG9yZy5hcGFjaGUubWF2ZW4uY2xpLk1hdmVuQ2xpLgo+PiBkb01haW4oTWF2ZW5DbGkuamF2YToxOTYpCj4+ICAgICAgICAgICAgICAgICBhdCBvcmcuYXBhY2hlLm1hdmVuLmNsaS5NYXZlbkNsaS5tYWluKE1hdmVuQ2xpLmphdmE6MTQxKQo+PiAgICAgICAgICAgICAgICAgYXQgamF2YS5iYXNlL2pkay5pbnRlcm5hbC5yZWZsZWN0Cj4+IC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlMChOYXRpdmUgTWV0aG9kKQo+PiAgICAgICAgICAgICAgICAgYXQgamF2YS5iYXNlL2pkay5pbnRlcm5hbC5yZWZsZWN0Cj4+IC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlKE5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5qYXZhOjYyKQo+PiAgICAgICAgICAgICAgICAgYXQgamF2YS5iYXNlL2pkay5pbnRlcm5hbC5yZWZsZWN0Cj4+IC5EZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShEZWxlZ2F0aW5nTWV0aG9kQWNjZXNzbwo+PiBySW1wbC5qYXZhOjQzKQo+PiAgICAgICAgICAgICAgICAgYXQgamF2YS5iYXNlL2phdmEubGFuZy5yZWZsZWN0Lk1lCj4+IHRob2QuaW52b2tlKE1ldGhvZC5qYXZhOjU2NCkKPj4gICAgICAgICAgICAgICAgIGF0IG9yZy5jb2RlaGF1cy5wbGV4dXMuY2xhc3N3b3JsZAo+PiBzLmxhdW5jaGVyLkxhdW5jaGVyLmxhdW5jaEVuaGFuY2VkKExhdW5jaGVyLmphdmE6MjkwKQo+PiAgICAgICAgICAgICAgICAgYXQgb3JnLmNvZGVoYXVzLnBsZXh1cy5jbGFzc3dvcmxkCj4+IHMubGF1bmNoZXIuTGF1bmNoZXIubGF1bmNoKExhdW5jaGVyLmphdmE6MjMwKQo+PiAgICAgICAgICAgICAgICAgYXQgb3JnLmNvZGVoYXVzLnBsZXh1cy5jbGFzc3dvcmxkCj4+IHMubGF1bmNoZXIuTGF1bmNoZXIubWFpbldpdGhFeGl0Q29kZShMYXVuY2hlci5qYXZhOjQwOSkKPj4gICAgICAgICAgICAgICAgIGF0IG9yZy5jb2RlaGF1cy5wbGV4dXMuY2xhc3N3b3JsZAo+PiBzLmxhdW5jaGVyLkxhdW5jaGVyLm1haW4oTGF1bmNoZXIuamF2YTozNTIpCj4+ICAgICAgICAgQ2F1c2VkIGJ5OiBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbi5Nb2pvRXhlY3V0aW9uRXhjZXB0aW9uOiBGYXRhbAo+PiBlcnJvciBjb21waWxpbmcKPj4gICAgICAgICAgICAgICAgIGF0IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLmNvbXBpbAo+PiBlci5BYnN0cmFjdENvbXBpbGVyTW9qby5leGVjdXRlKEFic3RyYWN0Q29tcGlsZXJNb2pvLmphdmE6MTA4NikKPj4gICAgICAgICAgICAgICAgIGF0IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLmNvbXBpbAo+PiBlci5Db21waWxlck1vam8uZXhlY3V0ZShDb21waWxlck1vam8uamF2YToxNjgpCj4+ICAgICAgICAgICAgICAgICBhdCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbi5EZWZhdWwKPj4gdEJ1aWxkUGx1Z2luTWFuYWdlci5leGVjdXRlTW9qbyhEZWZhdWx0QnVpbGRQbHVnaW5NYW5hZ2VyLmphdmE6MTAxKQo+PiAgICAgICAgICAgICAgICAgYXQgb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuaW50Cj4+IGVybmFsLk1vam9FeGVjdXRvci5leGVjdXRlKE1vam9FeGVjdXRvci5qYXZhOjIwOSkKPj4gICAgICAgICAgICAgICAgIC4uLiAxOSBtb3JlCj4+ICAgICAgICAgQ2F1c2VkIGJ5OiBvcmcuY29kZWhhdXMucGxleHVzLmNvbXBpbGVyLkNvbXBpbGVyRXhjZXB0aW9uCj4+ICAgICAgICAgICAgICAgICBhdCBvcmcuY29kZWhhdXMucGxleHVzLmNvbXBpbGVyLmoKPj4gYXZhYy5lcnJvcnByb25lLkphdmFjQ29tcGlsZXJXaXRoRXJyb3JQcm9uZS5wZXJmb3JtQ29tcGlsZShKCj4+IGF2YWNDb21waWxlcldpdGhFcnJvclByb25lLmphdmE6OTUpCj4+ICAgICAgICAgICAgICAgICBhdCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbi5jb21waWwKPj4gZXIuQWJzdHJhY3RDb21waWxlck1vam8uZXhlY3V0ZShBYnN0cmFjdENvbXBpbGVyTW9qby5qYXZhOjEwNzUpCj4+ICAgICAgICAgICAgICAgICAuLi4gMjIgbW9yZQo+PiAgICAgICAgIENhdXNlZCBieTogamF2YS5sYW5nLnJlZmxlY3QuSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbgo+PiAgICAgICAgICAgICAgICAgYXQgamF2YS5iYXNlL2pkay5pbnRlcm5hbC5yZWZsZWN0Cj4+IC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlMChOYXRpdmUgTWV0aG9kKQo+PiAgICAgICAgICAgICAgICAgYXQgamF2YS5iYXNlL2pkay5pbnRlcm5hbC5yZWZsZWN0Cj4+IC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlKE5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5qYXZhOjYyKQo+PiAgICAgICAgICAgICAgICAgYXQgamF2YS5iYXNlL2pkay5pbnRlcm5hbC5yZWZsZWN0Cj4+IC5EZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShEZWxlZ2F0aW5nTWV0aG9kQWNjZXNzbwo+PiBySW1wbC5qYXZhOjQzKQo+PiAgICAgICAgICAgICAgICAgYXQgamF2YS5iYXNlL2phdmEubGFuZy5yZWZsZWN0Lk1lCj4+IHRob2QuaW52b2tlKE1ldGhvZC5qYXZhOjU2NCkKPj4gICAgICAgICAgICAgICAgIGF0IG9yZy5jb2RlaGF1cy5wbGV4dXMuY29tcGlsZXIuago+PiBhdmFjLmVycm9ycHJvbmUuSmF2YWNDb21waWxlcldpdGhFcnJvclByb25lLnBlcmZvcm1Db21waWxlKEoKPj4gYXZhY0NvbXBpbGVyV2l0aEVycm9yUHJvbmUuamF2YTo5MSkKPj4gICAgICAgICAgICAgICAgIC4uLiAyMyBtb3JlCj4+ICAgICAgICAgQ2F1c2VkIGJ5OiBqYXZhLmlvLlVuY2hlY2tlZElPRXhjZXB0aW9uOgo+PiBqYXZhLm5pby5maWxlLk5vdERpcmVjdG9yeUV4Y2VwdGlvbjogL0xpYnJhcnkvSmF2YS9KYXZhVmlydHVhbE1hY2hpCj4+IG5lcy9qZGsxLjkuMF9lYSsxODEuamRrL0NvbnRlbnRzL0hvbWUvbGliL21vZHVsZXMKPj4gICAgICAgICAgICAgICAgIGF0IGNvbS5zdW4udG9vbHMuamF2YWMuZmlsZS5Mb2NhdAo+PiBpb25zJEJvb3RDbGFzc1BhdGhMb2NhdGlvbkhhbmRsZXIubGF6eShMb2NhdGlvbnMuamF2YTo3MjUpCj4+ICAgICAgICAgICAgICAgICBhdCBjb20uc3VuLnRvb2xzLmphdmFjLmZpbGUuTG9jYXQKPj4gaW9ucyRCb290Q2xhc3NQYXRoTG9jYXRpb25IYW5kbGVyLmlzRGVmYXVsdChMb2NhdGlvbnMuamF2YTo1NTkpCj4+ICAgICAgICAgICAgICAgICBhdCBjb20uc3VuLnRvb2xzLmphdmFjLmZpbGUuTG9jYXQKPj4gaW9ucy5pc0RlZmF1bHRCb290Q2xhc3NQYXRoKExvY2F0aW9ucy5qYXZhOjEyOSkKPj4gICAgICAgICAgICAgICAgIGF0IGNvbS5zdW4udG9vbHMuamF2YWMuZmlsZS5CYXNlRgo+PiBpbGVNYW5hZ2VyLmlzRGVmYXVsdEJvb3RDbGFzc1BhdGgoQmFzZUZpbGVNYW5hZ2VyLmphdmE6MTQ5KQo+PiAgICAgICAgICAgICAgICAgYXQgY29tLnN1bi50b29scy5qYXZhYy5tYWluLkFyZ3VtCj4+IGVudHMudmFsaWRhdGUoQXJndW1lbnRzLmphdmE6NDExKQo+PiAgICAgICAgICAgICAgICAgYXQgY29tLnN1bi50b29scy5qYXZhYy5tYWluLk1haW4uY29tcGlsZShNYWluLmphdmE6MjE4KQo+PiAgICAgICAgICAgICAgICAgYXQgY29tLmdvb2dsZS5lcnJvcnByb25lLkJhc2VFcnJvCj4+IHJQcm9uZUNvbXBpbGVyLnJ1bihCYXNlRXJyb3JQcm9uZUNvbXBpbGVyLmphdmE6MTg3KQo+PiAgICAgICAgICAgICAgICAgYXQgY29tLmdvb2dsZS5lcnJvcnByb25lLkJhc2VFcnJvCj4+IHJQcm9uZUNvbXBpbGVyLnJ1bihCYXNlRXJyb3JQcm9uZUNvbXBpbGVyLmphdmE6OTgpCj4+ICAgICAgICAgICAgICAgICBhdCBjb20uZ29vZ2xlLmVycm9ycHJvbmUuRXJyb3JQcm8KPj4gbmVDb21waWxlci5ydW4oRXJyb3JQcm9uZUNvbXBpbGVyLmphdmE6MTI4KQo+PiAgICAgICAgICAgICAgICAgYXQgb3JnLmNvZGVoYXVzLnBsZXh1cy5jb21waWxlci5qCj4+IGF2YWMuZXJyb3Jwcm9uZS5KYXZhY0NvbXBpbGVyV2l0aEVycm9yUHJvbmUkQ29tcGlsZXJJbnZva2VyLgo+PiBjb21waWxlKEphdmFjQ29tcGlsZXJXaXRoRXJyb3JQcm9uZS5qYXZhOjIyMikKPj4gICAgICAgICAgICAgICAgIC4uLiAyOCBtb3JlCj4+ICAgICAgICAgQ2F1c2VkIGJ5OiBqYXZhLm5pby5maWxlLk5vdERpcmVjdG9yeUV4Y2VwdGlvbjoKPj4gL0xpYnJhcnkvSmF2YS9KYXZhVmlydHVhbE1hY2hpbmVzL2pkazEuOS4wX2VhKzE4MS5qZGsvCj4+IENvbnRlbnRzL0hvbWUvbGliL21vZHVsZXMKPj4gICAgICAgICAgICAgICAgIGF0IGphdmEuYmFzZS9zdW4ubmlvLmZzLlVuaXhGaWxlUwo+PiB5c3RlbVByb3ZpZGVyLm5ld0RpcmVjdG9yeVN0cmVhbShVbml4RmlsZVN5c3RlbVByb3ZpZGVyLmphdmE6NDA3KQo+PiAgICAgICAgICAgICAgICAgYXQgamF2YS5iYXNlL2phdmEubmlvLmZpbGUuRmlsZXMuCj4+IG5ld0RpcmVjdG9yeVN0cmVhbShGaWxlcy5qYXZhOjQ2NSkKPj4gICAgICAgICAgICAgICAgIGF0IGphdmEuYmFzZS9qYXZhLm5pby5maWxlLkZpbGVzLmxpc3QoRmlsZXMuamF2YTozNTI0KQo+PiAgICAgICAgICAgICAgICAgYXQgY29tLnN1bi50b29scy5qYXZhYy5maWxlLkxvY2F0Cj4+IGlvbnMkQm9vdENsYXNzUGF0aExvY2F0aW9uSGFuZGxlci5zeXN0ZW1DbGFzc2VzKExvY2F0aW9ucy5qYXZhOjY3OCkKPj4gICAgICAgICAgICAgICAgIGF0IGNvbS5zdW4udG9vbHMuamF2YWMuZmlsZS5Mb2NhdAo+PiBpb25zJEJvb3RDbGFzc1BhdGhMb2NhdGlvbkhhbmRsZXIuY29tcHV0ZVBhdGgoTG9jYXRpb25zLmphdmE6NjM0KQo+PiAgICAgICAgICAgICAgICAgYXQgY29tLnN1bi50b29scy5qYXZhYy5maWxlLkxvY2F0Cj4+IGlvbnMkQm9vdENsYXNzUGF0aExvY2F0aW9uSGFuZGxlci5sYXp5KExvY2F0aW9ucy5qYXZhOjcyMikKPj4gICAgICAgICAgICAgICAgIC4uLiAzNyBtb3JlCj4+ICAgICAgICAgW0VSUk9SXQo+PiAgICAgICAgIFtFUlJPUl0KPj4gICAgICAgICBbRVJST1JdIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlcnJvcnMgYW5kIHBvc3NpYmxlCj4+IHNvbHV0aW9ucywgcGxlYXNlIHJlYWQgdGhlIGZvbGxvd2luZyBhcnRpY2xlczoKPj4gICAgICAgICBbRVJST1JdIFtIZWxwIDFdIGh0dHA6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdQo+PiBlbmNlL2Rpc3BsYXkvTUFWRU4vTW9qb0V4ZWN1dGlvbkV4Y2VwdGlvbgo+PiAgICAgICAgIFJ1bm5pbmcgcG9zdC1idWlsZCBzY3JpcHQ6IC9Vc2Vycy9rYW1hL21hdmVuLXJlbGVhc2UtY2hlYwo+PiBrZXIvcmVsZWFzZS10ZXN0L2pkazEuOS4wX2VhKzE4MS5qZGsvYXBhY2hlLW1hdmVuLTMuMC41L21hdgo+PiBlbi1jb21waWxlci1wbHVnaW4tMy43LjAvdGFyZ2V0L2l0L2Vycm9yLXByb25lLWNvbXBpbGVyL3ZlcmlmeS5ncm9vdnkKPj4KPj4KPj4gQmFzZWQgb24gd2hhdCBJIGNhbiBzZWUgaGVyZSBvbiBNYWNPUzogVGhlIG1vZHVsZXMgaW4gSkRLIDkgaXMgYSBmaWxlIGFuPQpkCj4+IG5vdCBkaXJlY3RvcnkuLi5UaGUgcXVlc3Rpb24gaXMgdGhpcyBhbiBNYWNPUyBvbmx5IHBoZW5vbWVub24gPyBPciBpcyB0aD0KaXMKPj4gYSBnZW5lcmFsIHNpdHVhdGlvbj8KPj4KPj4gS2luZCByZWdhcmRzCj4+IEthcmwgSGVpbnogTWFyYmFpc2UKPj4KPj4KPj4gT24gMDEvMDkvMTcgMTU6NTAsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+Pgo+Pj4gSGksCj4+PiAgV2Ugc29sdmVkIDYgaXNzdWVzOgo+Pj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plCj4+PiBjdElkPTNEMTIzMTcyMjUmdmVyc2lvbj0zRDEyMzQxMjY2JnN0eWxlTmFtZT0zRFRleHQgICBUaGVyZSBhcmUgc3RpbGwgYQo+Pj4gY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9M0Rwcm9qZWN0JTIwJTNEJQo+Pj4gMjAxMjMxNzIyNSUyMEFORCUyMHN0YXR1cyUyMCUzRCUyME9wZW4lMjBPUkRFUiUyMEJZJTIwa2V5JQo+Pj4gMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDICAgU3RhZ2luZyByZXBvOgo+Pj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM1OS8KPj4+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NlcnZpY2UvbG9jYWwvcmVwb3NpdG9yaWVzL21hdgo+Pj4gZW4tMTM1OS9jb250ZW50L29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi1jb21waWxlci1wbHVnCj4+PiBpbi8zLjcuMC9tYXZlbi1jb21waWxlci1wbHVnaW4tMy43LjAtc291cmNlLXJlbGVhc2UuemlwICAgU291cmNlCj4+PiByZWxlYXNlIGNoZWNrc3VtKHMpOgo+Pj4gbWF2ZW4tY29tcGlsZXItcGx1Z2luLTMuNy4wLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOgo+Pj4gMTE0OGQ4YTFmODllNjkwMGFmYjBjYTFkYmY3NGY2NDkzMjQwMmNmZAo+Pj4gIFN0YWdpbmcgc2l0ZToKPj4+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWNvbXBpbGVyLXBsdWdpbi1MQVRFU1QvCj4+PiAgR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4+PiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+Pj4gIFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4+PiAgWyBdICsxCj4+PiBbIF0gKzAKPj4+IFsgXSAtMQo+Pj4KPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCi0tMDAxYTExNGE3ZDlhZTQ2ZWZlMDU1ODQ2ZGFlNy0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NDE3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgIDQgMjA6NDM6MDQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDE3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDdCNDVDMTBBQkUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAyMDo0MzowNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI3NjAxIGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMjA6NDM6MDQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI3NTMyIGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMjA6NDM6MDQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNzIwNSBpbnZva2VkIGJ5IHVpZCA5OSk7IDQgTm92IDIwMTcgMjA6NDM6MDMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA0IE5vdiAyMDE3IDIwOjQzOjAzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQzY3OTVFOTM2MAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMjA6NDM6MDIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjc4ClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MS43OCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIEhUTUxfTUVTU0FHRT0yLAoJS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPXRhbGlvcy1jb20uMjAxNTA2MjMuZ2FwcHNzbXRwLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgQ2JlOTJ6V1RRbWttIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAgNCBOb3YgMjAxNyAyMDo0MzowMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXF0MC1mMTc4Lmdvb2dsZS5jb20gKG1haWwtcXQwLWYxNzguZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNi4xNzhdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNjZENjE1RkQ1QwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMjA6NDM6MDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtcXQwLWYxNzguZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgOHNvNjk3NjAwN3F0di4xCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMDQgTm92IDIwMTcgMTM6NDM6MDEgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPXRhbGlvcy1jb20uMjAxNTA2MjMuZ2FwcHNzbXRwLmNvbTsgcz0yMDE1MDYyMzsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9N0lKY0taYjNKQVVjTHpMQ3pDS3k4UVU4cGw1bjBXdk9BcFhWZ2lpbVdtMD07CiAgICAgICAgYj1TWVZkOTZTdVpiWE5TZXV2NEJJN1pzSEVsWVBUajJBWklSYVZyei9wbnR6UUxmdG8wNkppSmh2emVYelhPNWFXYUIKICAgICAgICAgUXg2WjVKNTNXMjhVTDZZa3U3a0drZlFnV0RYa2pnNngxSXcvY3owMk1jUUZZZ0gzYnZtdGdFK0haekNTUzBCZmRHRnMKICAgICAgICAgNGl2bVN3cFU0eEJBd3p6UUZ2Rml0c2tlY25LZkUwU2dTWlZROGhiNzVsNlJqa1hSaitpN1hROXZYM3NmWWtLMjhrWDQKICAgICAgICAgZExqdHdWMVdrMGhjZGVuWkU1Z080c2dPSUJta1FibWtMU3pwK08xb3NCS0VoNFJBc2FRK2dNQldHNzR6alpJUGlVY1IKICAgICAgICAgQlBtMUZ0VTNVRzdVbnpXeldIYzlVV1dDeHdqcU8zQzBEL3ZoWUJMd2IxMklQQXdMTXhZR1gvYWMva1R4UGdkV3Q1YUsKICAgICAgICAgYmh6dz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9N0lKY0taYjNKQVVjTHpMQ3pDS3k4UVU4cGw1bjBXdk9BcFhWZ2lpbVdtMD07CiAgICAgICAgYj1ONERCRnlVY2F6Qm1YZUNXTG9CT2QyT2dieVVVenZ6VXMyTWdUL05zcTN2dUxqOG82MTN6SzVXOTlBdHlOaG4xNUYKICAgICAgICAgWnY2a3R0RERDMVpvT2puZEdUTDVjTTRkcndRSHV4bFNnUUhoWUpNelN4eGJEZXIwYW5Gc3JhdVBXV01SbTExQnVZVXcKICAgICAgICAgeEZ5MVVLdEw0VkE1eDh0SmF6TVNkdC9VYVpmeHc0TjBpcGRwS3dybjNKNE02bzN1N1dLNmR5aHhXSm5yc09QOGVqcjAKICAgICAgICAgK1pmRHpaYzRsS2hPd0VrbTdOMkU2R0pteVZvdkkyQThvWGI1ejB4bGZhSTdaM3dOWVNNeHkrVzdlV3RRaXZGVnZnYkQKICAgICAgICAgVUd5ZlJNQmJXbzNTRGNJbi80SWFiTUN4cFNLVTZXWWlMblN6Mk1JVjVuYnVsYkdyYUVWOTBHUW9vKzZJVTN0aHBUYngKICAgICAgICAgMlgrZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVzFIZzh6TUZjdy9CTFljK1hyR1RhcXk1V1pRMXBnZEhISng5SGkvK0xBY1VIN2ZXVy8KCXNHbk5IeHhsN2xidFB0VUN3UGljNGtPbEEzek5zaVVMWm00RGNXRXp1N0dDClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtSWDczODUwV2xpTjQvMngrcjNoZDZWN2NwcExKZUprYkorYXpaN0k3OUMxNVFFdThGemNLU2JwYmxlWGQzQzJBamozY2lJb05NaUJpa05mSXZqcjZRPQpYLVJlY2VpdmVkOiBieSAxMC4yMDAuMjQuNDkgd2l0aCBTTVRQIGlkIHE0Nm1yMTUyNjMwNjVxdGouMTM5LjE1MDk4MjgxNzQ4OTA7CiBTYXQsIDA0IE5vdiAyMDE3IDEzOjQyOjU0IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yMDAuNTcuMTMyIHdpdGggSFRUUDsgU2F0LCA0IE5vdiAyMDE3IDEzOjQyOjM0IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0ErblBuTXdFSDlaMm15cDcxdWFTcmRjeUxKUkZyRS1WcnQyMDE5MXJkMDFoK1VmaGp3QG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXdFSDlaMm15cDcxdWFTcmRjeUxKUkZyRS1WcnQyMDE5MXJkMDFoK1VmaGp3QG1haWwuZ21haWwuY29tPgpGcm9tOiBNYXJrIERlcnJpY3V0dCA8bWFya0B0YWxpb3MuY29tPgpEYXRlOiBTdW4sIDUgTm92IDIwMTcgMDk6NDI6MzQgKzEzMDAKTWVzc2FnZS1JRDogPENBTFlHbTF4YjFNT0hwc1grN0VHOHg0YmQtekhaK085NWUyWTVZMkR1ZFppRUU2ZU5DQUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IE1hdmVuIDQuMC4wClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9ImY0MDMwNDVkNmJhMjA5NmVhYzA1NWQyZTQ0OWQiCgotLWY0MDMwNDVkNmJhMjA5NmVhYzA1NWQyZTQ0OWQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKV291bGQgYWRkaW5nIHN1cHBvcnQgZm9yIDIgbmV3IHNjb3BlcyBiZSB2aWFibGUgd2l0aG91dCBjaGFuZ2luZyB0aGUgcG9tCm1vZGVsICggdGhlIERURC9YU0QgZG9lc24ndCBhY3R1YWxseSBkZWZpbmUgdGhlIHZhbHVlcyBzbyB0aGF0IHNob3VsZCBiZQpvaykuCgpTcGVjaWZpY2FsbHkgSSdtIHRoaW5raW5nICdhbm5vdGF0aW9uJyAoIGhhdmluZyBhbm5vdGF0aW9uUGF0aHMgb24gbS1jLXAKd2FzIGEgd29ya2Fyb3VuZCwgYnV0IGtpbmRhIGhvcnJpYmxlIGluIHByYWN0aWNlICksIGFuZCBtYXliZSAibW9kdWxlIiBmb3IKdGhlIG5ldyBtb2R1bGUgcGF0aD8KCk9uIHRoZSB0b3BpYyBvZiBzY29wZXMsIEknZCBsb3ZlIHRvIHNlZSBhbiBfYWN0dWFsXyBjb21waWxlLXRpbWUtb25seQpzY29wZSwgdGhhdHMgb25seSBhdCBjb21waWxhdGlvbi4gIEkgd29uZGVyLCBzaW5jZSB0aGUgc2NvcGUgdmFsdWVzIGFyZSBub3QKYWN0dWFsbHkgc2V0IGluIHRoZSBEVEQvWFNEcywgY291bGQgdGhlIGludGVybmFscyBiZSBhbHRlcmVkIHRvIHNheSBhIENTVgpvZiBzY29wZXMsIHdpdGggdGhlIGRlZmF1bHQgYmVpbmcgImNvbXBpbGUsdGVzdCIgd2hpY2ggd291bGQgY292ZXIgY3VycmVudApiZWhhdmlvdXIgLSBidXQgaWYgeW91IHNwZWNpZmljYWxseSBzYXkgInRoaXMgaXMgYSBjb21waWxlIG9ubHkgZGVwZW5kZW5jeSIKdGhlbiBpdCBsaXRlcmFsbHkgaXMuCgpNYXJrCgotLT0yMAoiR3JlYXQgYXJ0aXN0cyBhcmUgZXh0cmVtZWx5IHNlbGZpc2ggYW5kIGFycm9nYW50IHRoaW5ncyIgPUUyPTgwPTk0IFN0ZXZlbiA9CldpbHNvbiwKUG9yY3VwaW5lIFRyZWUKCk9uIFN1biwgTm92IDUsIDIwMTcgYXQgMToyMCBBTSwgU3RlcGhlbiBDb25ub2xseSA8CnN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgoKPiBUaGUgcGFzdCB0d28gZGF5cywgSGVydj1DMz1BOSwgUm9iZXJ0IGFuZCBJIGhhdmUgYmVlbiBkaXNjdXNzaW5nIG91ciBuZXh0PQogc3RlcHMuCj4KPiBJIHRoaW5rIHdlIGhhdmUgYSBzZW1pLWNvbnNlbnN1cyB3aGljaCBJIHdhbnQgdG8gYnJpbmcgYmFjayB0byB0aGUgbGlzdDoKPgo+IFdlIGtlZXAgMy41LnggYXMgYSBzdGFibGUgYnJhbmNoIHdpdGggY3JpdGljYWwgYnVnIGZpeGVzIG9ubHkKPgo+IFdlIHN3aXRjaCBtYXN0ZXIgdG8gNC4wLjAgYW5kIHN0YXJ0IHRvIGJ1cm4gZG93biBhIHJlbGVhc2Ugc2NvcGUuCj4KPiA0LjAuMCB3aWxsIG5vdCBjaGFuZ2UgdGhlIHBvbSBtb2RlbFZlcnNpb24KPgo+IFRoZSA0LjAuMCBzY29wZSBzaG91bGQgcHJvYmFibHkgYmU6Cj4KPiBSZXF1aXJlZDoKPiAqIGRyb3AgSmF2YSA3LCBzd2l0Y2ggY29kZWJhc2UgdG8gSmF2YSA4IGlkaW9tcyAod2hpbGUgbWFpbnRhaW5pbmcgYmluYXJ5Cj4gYXBpIGNvbXBhdGliaWxpdHkgZm9yIHBsdWdpbnMpCj4gKiBzcGVjaWZ5IHRoZSBjbGFzc2xvYWRlciBiZWhhdmlvdXIgYW5kIGZpeCBpbXBsIHRvIGFsaWduIHdpdGggc3BlYyAobWF5Cj4gbmVlZCBhIHBsdWdpbiBmbGFnIHRvIGFsbG93IHBsdWdpbnMgdG8gb3B0IGluIHRvIHNwZWMgYmVoYXZpb3VyKQo+ICogc3BlY2lmeSB0aGUgZXh0ZW5zaW9uIHNwZWMKPiAqIGFsbG93IGxpbWl0ZWQgbXV0YXRpb24gb2YgdGhlIHJ1bnRpbWUgbW9kZWwgKHJlZHVjaW5nIHRyYW5zaXRpdmUKPiBkZXBlbmRlbmNpZXMgZm9yIGNvbnN1bWVycyB3aXRoaW4gdGhlIHJlYWN0b3IsIG9ubHkgZm9yIHBsdWdpbiBnb2FscyB0aGF0Cj4gZGVjbGFyZSBpbnRlbnQpIHVzZSBjYXNlOiBzaGFkZSBwbHVnaW4KPiAqIGJldHRlciBDSSBpbnRlZ3JhdGlvbiBob29rcwo+ICogbmljZSBlcnJvciBtZXNzYWdlIGZvciBuZXdlciBwb20gbW9kZWxWZXJzaW9uCj4KPiBPcHRpb25hbDoKPiAqIChkYW1uIEkgZm9yZ290LCBtYXliZSBSb2JlcnQgcmVtZW1iZXJzKQo+IC0tCj4gU2VudCBmcm9tIG15IHBob25lCj4KCi0tZjQwMzA0NWQ2YmEyMDk2ZWFjMDU1ZDJlNDQ5ZC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MDIzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBTZXAgMTQgMTE6NDM6NDIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDIzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEI4NzgzMUFCMTgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAxNCBTZXAgMjAxNyAxMTo0Mzo0MiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDc1MzEgaW52b2tlZCBieSB1aWQgNTAwKTsgMTQgU2VwIDIwMTcgMTE6NDM6MzcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc0MzEgaW52b2tlZCBieSB1aWQgNTAwKTsgMTQgU2VwIDIwMTcgMTE6NDM6MzcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NDE3IGludm9rZWQgYnkgdWlkIDk5KTsgMTQgU2VwIDIwMTcgMTE6NDM6MzcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDE0IFNlcCAyMDE3IDExOjQzOjM3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQTYzNURENUJFMgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMTQgU2VwIDIwMTcgMTE6NDM6MzYgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjI4ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuMjggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBIVE1MX01FU1NBR0U9MiwKCUtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD10YWxpb3MtY29tLjIwMTUwNjIzLmdhcHBzc210cC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIENOdGI4REN5VmJNeSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVRodSwgMTQgU2VwIDIwMTcgMTE6NDM6MzQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC1xdDAtZjE4Mi5nb29nbGUuY29tIChtYWlsLXF0MC1mMTgyLmdvb2dsZS5jb20gWzIwOS44NS4yMTYuMTgyXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEQ1N0I4NUZBRjcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDE0IFNlcCAyMDE3IDExOjQzOjMzICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXF0MC1mMTgyLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHE4c282NTQxNDc5cXRiLjUKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAxNCBTZXAgMjAxNyAwNDo0MzozMyAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9dGFsaW9zLWNvbS4yMDE1MDYyMy5nYXBwc3NtdHAuY29tOyBzPTIwMTUwNjIzOwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1YdnJVVnI1S2doak1hNjVrU21QU29WVWlmR1ZVTDE0L3Rvc25YSnZ3TU5JPTsKICAgICAgICBiPXhPWEJXYmVmc0IvcXhET2EyNjBvYU12MHhXaEViRmNWQU5uY0YvT0owZ2tLZkI0Rjc3Qis0S1pHdlFqM0VTcklZYwogICAgICAgICBITnAzZ1dvbnMxNHNIaE9YNXRmOXdhdnIrQWc3TitJbGZTdUNwWjVreW83VkZnTW5tODZZSXUwbjdBODZLWERKL1BnRAogICAgICAgICBrM3F5UkZneVZyaC9hNUFCd3hxVEZhNEsxVjViY25FSzVORmZTQ1VTYUI3OXdGSnpmcTBUNW5uaW80V2xieFhKdGk0dQogICAgICAgICBDYThKaWZVVlFRblhLMFhLTWxJT0pHZTRqUEZ2czlUTTdKVkFKVFJ2dTVNSHMvY0VKVFU4Zm1SS2hBVFRsWWVwcjNhNAogICAgICAgICB3djhzNlRyYjZBZ3hrR3I2VXVwd24vYTY3Ky8rL2pzSDFYQ3c3S2d4cjBhV2FCdXlXZGN2RkNRRUJUWUlqODQzTXJETQogICAgICAgICBiS2NBPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1YdnJVVnI1S2doak1hNjVrU21QU29WVWlmR1ZVTDE0L3Rvc25YSnZ3TU5JPTsKICAgICAgICBiPUp6djgwcnlYVkFzQXlJeUx4dTYybGJUZnM0U3FwVWFicWxyMjdxMENKNjFhelp1Y0JpKy9pYlhZbGJIeWlQRFQrRAogICAgICAgICBGOUcvRU5mNTNuQ2MrZFh2MUlHSnFjdHdjdDlSSk9DeDRkZzdrMzdCbGEzTVNvNml4dzExQ1F2NWJHOUkxTGVScnNGWQogICAgICAgICBOUkZLSG9jU3diaitieGYyNjVua241d3d0Yld5bks4MGhyRzE5Mm1KSUhBWXFLa0ZPVDd0ZktyekIxUXNvNHlwQU9iSwogICAgICAgICA2Vjh4Q2RLYnFoNG9sM0RVQkQvaVlvbE9adStDR25vdmFKc1RQc2poL2dOYUZEUFFwSHNpcHFFS1EyNkpsdFFOVUZlYgogICAgICAgICBKZlorZ0JWcFhJQ2VvVXlRTHc5Y1U5NldhbVk3dkc5VGJaZXQ3TjhUdTB0M2JFR1RTaXFCTUNJS0cwWHhtNlBUeXBaTwogICAgICAgICBCVFRRPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVpdUV0ZXFmKzIvOGQvUlIrRlZkVHV3TG8vOUltbEZTZGJpYSt6enIzQ1R0b3VVd05tQQoJb2RnNzhpVUpuTWMwTzJjOGd5cTFuSk1makxnQ0xHV2w3L0d5aEduOFQzUFZiTE09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FDTk1NMmt4UU5mekRJK1VwTTBmMWFMeXZFV0dNdVVRS3ZIQ003elh2L1Vad1BnQTZYKytZUFMzZDQrcUhGVHBZSEtRUDBRc3lXby9BMHhjbTB4eFVnPQpYLVJlY2VpdmVkOiBieSAxMC4yMDAuNTYuMTg0IHdpdGggU01UUCBpZCBmNTNtcjI4NzAyOTA2cXRjLjEzOS4xNTA1Mzg5NDEyMzczOwogVGh1LCAxNCBTZXAgMjAxNyAwNDo0MzozMiAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMjAwLjQ3LjE0MyB3aXRoIEhUVFA7IFRodSwgMTQgU2VwIDIwMTcgMDQ6NDM6MTEgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxGQUFEREUxNC1DMzc4LTREM0QtOEFFRS05QUM4Q0NGOTE3ODNAdGFsaW9zLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk14eUcyTmVQWHBWcWF3ZTlqUj1pdEhFVDZVdWRuTjlDakhodj1vby1LQ3J4d0BtYWlsLmdtYWlsLmNvbT4KIDxDQUZOQ1UtLTJ2cmQ1QmVUdmt4S0N5WDJaUWVQcWl4N1g9d21Wc1dkTTVkNDlYZU5nT3dAbWFpbC5nbWFpbC5jb20+CiA8RjcwNTdFMUItNDMxMy00RDdCLThFRjEtOTkzNDFERDFFMUQwQHRhbGlvcy5jb20+IDxDQStuUG5Nd1VxbUJ1cmF0RDFDcGs9TDl0QUN3Xytxb3Ryc1VwQ3FkcVJaWG1XWGdpVEFAbWFpbC5nbWFpbC5jb20+CiA8QjE0OEM5NjctMTY5NS00NUMyLUExNUYtMUZGRjkwM0JDQjUwQHRhbGlvcy5jb20+IDw3NEMxMjdCMC1GNzA3LTRCQkEtQTJDMS1ENTdFNjBDOUMwRkNAdGFsaW9zLmNvbT4KIDxGQUFEREUxNC1DMzc4LTREM0QtOEFFRS05QUM4Q0NGOTE3ODNAdGFsaW9zLmNvbT4KRnJvbTogTWFyayBEZXJyaWN1dHQgPG1hcmtAdGFsaW9zLmNvbT4KRGF0ZTogVGh1LCAxNCBTZXAgMjAxNyAyMzo0MzoxMSArMTIwMApNZXNzYWdlLUlEOiA8Q0FMWUdtMXk5VE14QUFpaG5pN2tibz0ycmh1bjJ4dDRGOHgwTXlrTkxrQnR0djdHaUh3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQzNjhiNjJjNmJjZDA1NTkyNGM5NWMiCgotLTAwMWExMTQzNjhiNjJjNmJjZDA1NTkyNGM5NWMKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKPiArMiBub24tYmluZGluZyBmcm9tIE1hcmshCgpJIHdhcyBkaXNjdXNzaW5nIHRoaXMgd2l0aCBhIGNvd29ya2VyIGFuZCBoZSBtYWRlIHRoZSBjb21tZW50IHRoYXQgaWYgdGhpcwpjaGFuZ2UgY291bGQgYnJlYWsgTW9qb3MsIG1heWJlIGl0IHNob3VsZG4ndCBiZSBpbiBhIHBvaW50IHJlbGVhc2UgLSB3aGF0cwp0aGUgcG9saWN5IG9uIGNoYW5nZXMgdGhhdCBtYXkgcG90ZW50aWFsbHkgYnJlYWsgZXhpc3RpbmcgcGx1Z2lucz8KCi0tPTIwCiJHcmVhdCBhcnRpc3RzIGFyZSBleHRyZW1lbHkgc2VsZmlzaCBhbmQgYXJyb2dhbnQgdGhpbmdzIiA9RTI9ODA9OTQgU3RldmVuID0KV2lsc29uLApQb3JjdXBpbmUgVHJlZQoKT24gVGh1LCBTZXAgMTQsIDIwMTcgYXQgMTA6MjkgQU0sIE1hcmsgRGVycmljdXR0IDxtYXJrQHRhbGlvcy5jb20+IHdyb3RlOgoKPiBPbiAxNCBTZXAgMjAxNywgYXQgMTA6MjYsIE1hcmsgRGVycmljdXR0IHdyb3RlOgo+Cj4gQ2FsbGluZyAtMiBmb3Igdm90ZSBpZiBub3QgdG9vIGxhdGUuCj4KPiBBY3R1YWxseSAtIGxvb2tpbmcgYXQgdGhlIGNvbW1pdCBkaWZmLCBJIHNlZSBpbiBvdXIgY29kZSB3ZSBkaWQgaGF2ZQo+IDxleHRlbnNpb25zPnRydWU8L2V4dGVuc2lvbnM+IGZvciB0aGUgamFzbWluZS1tYXZlbi1wbHVnaW4gd2hpY2ggd2UgZG9uJ3QKPiBhY3R1YWxseSBuZWVkLiBSZW1vdmluZyB0aGF0IGZyb20gdGhlIG1vam8gZGVmaW5pdGlvbiBhbmQgcnVubmluZyBteSBidWlsPQpkCj4gd2l0aCB0aGUgc3RhZ2VkIDMuNS4xIHJlbGVhc2UgYW5kIGV2ZXJ5dGhpbmcgYnVpbGRzIGZpbmUuCj4KPiArMiBub24tYmluZGluZyBmcm9tIE1hcmshCj4KPiBNYXJrCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4KPiAiVGhlIGVhc2Ugd2l0aCB3aGljaCBhIGNoYW5nZSBjYW4gYmUgaW1wbGVtZW50ZWQgaGFzIG5vIHJlbGV2YW5jZSBhdCBhbGwKPiB0byB3aGV0aGVyIGl0IGlzIHRoZSByaWdodCBjaGFuZ2UgZm9yIHRoZSAoSmF2YSkgUGxhdGZvcm0gZm9yIGFsbCB0aW1lLiIgPQo9RTI9ODA9OTQKPiBNYXJrIFJlaW5ob2xkLgo+Cj4gTWFyayBEZXJyaWN1dHQKPiBodHRwOi8vd3d3LnRoZW9yeWlucHJhY3RpY2UubmV0Cj4gaHR0cDovL3d3dy5jaGFsaWNlb2ZibG9vZC5uZXQKPiBodHRwOi8vcGx1cy5nb29nbGUuY29tLytNYXJrRGVycmljdXR0Cj4gaHR0cDovL3R3aXR0ZXIuY29tL3RhbGlvcwo+IGh0dHA6Ly9mYWNlYm9vay5jb20vbWRlcnJpY3V0dAo+CgotLTAwMWExMTQzNjhiNjJjNmJjZDA1NTkyNGM5NWMtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDg0Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgRGVjIDI3IDA3OjM5OjMyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg0Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDNDc5RTE3RjBBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMjcgRGVjIDIwMTcgMDc6Mzk6MzIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzMDQ3MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBEZWMgMjAxNyAwNzozOTozMiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzAzODQgaW52b2tlZCBieSB1aWQgNTAwKTsgMjcgRGVjIDIwMTcgMDc6Mzk6MzIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMDM2MyBpbnZva2VkIGJ5IHVpZCA5OSk7IDI3IERlYyAyMDE3IDA3OjM5OjMxIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAyNyBEZWMgMjAxNyAwNzozOTozMSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDUwMUFCMUEwQTgxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyNyBEZWMgMjAxNyAwNzozOTozMSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDAuMzc5ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTAuMzc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB3NndYNVJLVnlGVEMgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsIDI3IERlYyAyMDE3IDA3OjM5OjI5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtbGYwLWY1My5nb29nbGUuY29tIChtYWlsLWxmMC1mNTMuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNS41M10pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA1MzJBQjVGM0ExCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyNyBEZWMgMjAxNyAwNzozOToyNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1sZjAtZjUzLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGMxOXNvMjE2Mjc1MjBsZmcuMwogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDI2IERlYyAyMDE3IDIzOjM5OjI2IC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWhSU1p6M3QxTVpqREZ4K1JkQ0tMeHVzcVpvdkx3dzBYZUhTeDRITkNuSWM9OwogICAgICAgIGI9Z21NR1lwRjFvYWV4cnVyTmdXa0xLWk42QVRweTRNdWtjbXc2WEhLUFZ4eFRZSnZHNCtubnVxUHV5MUFvQkxmblFTCiAgICAgICAgIFd0SVlQa3lsODBpa0czdUVUT2l6ZVJFUklWWHNvaFdKcUtNd1A3NitwRUs2SllTYW5PaE1RTW1Lb0VXUEYyKzE2VGhHCiAgICAgICAgIEpEbE1rTTZDOEpjMGxWU3k5NlpZeXZqb2xWbXd4NFQ1cDVaZ3F4Wm5ybTJHblpNT0hyZy9EUWg5Z2VTRVhUdTFZZFNBCiAgICAgICAgIGFGajBqN1RTaHNqUVlSbnB5cElWT1hJV0d4clMrMWxxM29SUXdMZ1pQaERCemQ3NkEzbTNMWDJScktWaGxYZTZNam54CiAgICAgICAgIGVRY2FvTDBHQ3ZRenlKUS9CS3V5bW5JWS9oYmVvVE1kOEM2aVlkc1JnNUJMSGVWSU56UlRyQlVRL0VhQ1o3cWlUWXprCiAgICAgICAgIHljc0E9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWhSU1p6M3QxTVpqREZ4K1JkQ0tMeHVzcVpvdkx3dzBYZUhTeDRITkNuSWM9OwogICAgICAgIGI9Z3B2Zk9CTVNLR0ViNUNVVG5ZbnJLZXBHUDh0NzB1SGpqOURWTHU5c0VrQTE0L2p2VlMwNUFadHVJWjN5THlCUnA1CiAgICAgICAgIG9NTjc1K1FnSUhsWCtlTDBiT0JWOUh6a0xOeGpBbjAvNUs3OG9scnR5Y016U2ZRRUxSZW5UYTBndG85REdvV295Tys5CiAgICAgICAgIGJaVUlJQk5NM1YyNWJKUjkydkhhNzhkTXlyOEpZVzBrMjBSNDZNNFFCbCtrUSt5WXhOOU5nZm9ibmdvOWdYZjZRWUpaCiAgICAgICAgIEJvdTZ4blB1cXU2clRuMzAwaGdGV1pZWVJwd3ZwNGZqaW1sZFIzeWttNXR0eVJhV00xcWdiOU1JREMycE9pYmpTdEpzCiAgICAgICAgIEQzM2UyMWdPVStxZWRQa2ZybGdJb1ZhOEIydEh1T2FyN2RmbXRMcnRTWFZEeCtxdWJqclc2aEVNNzJjaEFteHBpcDBKCiAgICAgICAgIGFCbVE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFLR0IzbUtHdWRiQ2hwcm5rTDF6NHcrTC9jeHd0MmQ1Uy9nWkw4R2lOa2haakZaYzdMUmtZS1I0CglFcFlMMkM1c25DYzJvSWtZd0NFeEUxM0VEbVJCL2ppczF6VGRUcWhPR1E9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUNKZkJvdXZMMTljb2pvWm1ic1hmUzczUTdkdGF2SG4rZXdVMy9zOEJxcnJLZ1hURkFIamlDSXo1TmQzNUwyb3pFeGRMM0pkNkFIZUhwYmNzVEdqL2dQRmVOcz0KWC1SZWNlaXZlZDogYnkgMTAuNDYuMjIuMSB3aXRoIFNNVFAgaWQgdzFtcjEwMjYyODQ3bGpkLjY5LjE1MTQzNjAzNTkzNDc7IFR1ZSwKIDI2IERlYyAyMDE3IDIzOjM5OjE5IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yNS4yMjEuMTM3IHdpdGggSFRUUDsgVHVlLCAyNiBEZWMgMjAxNyAyMzozOToxOCAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPDk1MGRlMjgwLTU5MjgtNGZlMy1hY2E4LTA5MjM0MTUyNGM2NkBnbXguZGU+ClJlZmVyZW5jZXM6IDw5NTBkZTI4MC01OTI4LTRmZTMtYWNhOC0wOTIzNDE1MjRjNjZAZ214LmRlPgpGcm9tOiBQbGFtZW4gVG90ZXYgPHBsYW1lbi5pdi50b3RldkBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMjcgRGVjIDIwMTcgMDk6Mzk6MTggKzAyMDAKTWVzc2FnZS1JRDogPENBTGFUZUNvMC0tX3A2ZHVORjNjMDNjVkZPNFh2VHZvM1luZHdDal9INzRYUnZvd1pBZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IG1hdmVuLWFyY2hpdmVyIGJ1aWxkIG9uIEplbmtpbnMgLSBUZXN0IEZhaWx1cmVzClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwgaW5mb0Bzb2ViZXMuZGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCkhpLAoKT24gVHVlLCBEZWMgMjYsIDIwMTcgYXQgOTowMSBQTSwgS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+IHdyb3RlOgoKPiBJcyBzb21lb25lIG91dCB0aGVyZSB3aG8gY2FuIGNoZWNrIHRoZSBjdXJyZW50IHN0YXRlIG9mIG1hdmVuLWFyY2hpdmVyIGdpdAo+IHJlcG8gb24gV2luZG93cyBhbmQgY2FuIHJlcHJvZHVjZSB0aGUgaXNzdWUgPwoKSSByYW4gdGhlIGJ1aWxkIGEgY291cGxlIG9mIHRpbWVzKGp1c3QgaW4gY2FzZSkgb24gV2luZG93cyAxMCwgTWF2ZW4KMy41LjIsIEpESyA5LjAuMSBhbmQgZXZlcnl0aGluZyBpcyBvay4gQW5kIGl0IGxvb2tzIGxpa2UgdGhlIGJ1aWxkIGlzCmZhaWxpbmcgb24gTGludXggSkRLIDkgYW5kIFdpbmRvd3MgSkRLIDggYXMgd2VsbCwgc28gaWYgdGhlcmUgaXMgYSBidWcKKGFuZCBub3QgYSBwcm9ibGVtIHdpdGggdGhlIGJ1aWxkKSB0aGVuIGl0IGlzIHByb2JhYmx5IG5vdCBhIFdpbmRvd3MKb3IgSkRLIDkgcmVsYXRlZC4KClJlZ2FyZHMsClBsYW1lbiBUb3RldgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODA1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBEZWMgMjAgMjA6MDg6NTggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODA1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDA1N0E3MTcxQzcKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyMCBEZWMgMjAxNyAyMDowODo1OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk5OTcxIGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIERlYyAyMDE3IDIwOjA4OjU3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5OTkxNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBEZWMgMjAxNyAyMDowODo1NyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk4NzU4IGludm9rZWQgYnkgdWlkIDk5KTsgMjAgRGVjIDIwMTcgMjA6MDg6NTYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDIwIERlYyAyMDE3IDIwOjA4OjU2ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgM0E5Q0VDNjMyNwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjAgRGVjIDIwMTcgMjA6MDg6NTYgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjY4ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTAuNjggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglLQU1fQVNDSUlfRElWSURFUlM9MC44LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxLAoJVVJJQkxfQkxPQ0tFRD0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFZyN0Rub0hDU1d6MSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgMjAgRGVjIDIwMTcgMjA6MDg6NTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC1sZjAtZjQ3Lmdvb2dsZS5jb20gKG1haWwtbGYwLWY0Ny5nb29nbGUuY29tIFsyMDkuODUuMjE1LjQ3XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDcyRTg5NUYxRDUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDIwIERlYyAyMDE3IDIwOjA4OjU0ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLWxmMC1mNDcuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgbTIwc28xMjI5MzY2MmxmaS42CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjAgRGVjIDIwMTcgMTI6MDg6NTQgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG8KICAgICAgICAgOmNvbnRlbnQtdHJhbnNmZXItZW5jb2Rpbmc7CiAgICAgICAgYmg9cEFaVk9INWlhenpTZ0x1RlVMa1JuTGM2WTYvekJBRXlKYUhjdGRMRTJQaz07CiAgICAgICAgYj1SWTVPR3FoOElCMWZsSm95aHBlL2NpOTZyRnRWNjVpY1VkbkFrSm5GdC90RkZ6aDdvbzlLVUY1OUpLb3lUbkNZdVMKICAgICAgICAgSms1a1hCeDY2cDhwVWpBNll0ZXBZbTZ3NWkyNm1UT0RXeG8wYzVFandEdkJvWFVjWG52WndoOGhZVTdBNjhjMnVrQkcKICAgICAgICAgMklEbzdtQ2JIUkF6ZGV5S1N4UmNxL3NGempCT2trOTFKaVVRb0lycWUxZURCa2FnSkkxVGJLTUZya2FCWlpNMWY3MmsKICAgICAgICAgaVVscHVkc014S3NtcXhoQU8rd1BmcUVQSTZnZU9kbjd6T05hL29RN0huU2hCUjhwdTdObzFRRFJVbEpyS1hVZ0xQdE0KICAgICAgICAgSU93QURwQjNYK3BWU0dUT1JiUmZzRFF0Yk5oK3hJQTByU0hnaHF5TVFJdnVoanduQ3dyMFl0NVZtTEc2N2M0K3pZcmsKICAgICAgICAgQkRnZz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG86Y29udGVudC10cmFuc2Zlci1lbmNvZGluZzsKICAgICAgICBiaD1wQVpWT0g1aWF6elNnTHVGVUxrUm5MYzZZNi96QkFFeUphSGN0ZExFMlBrPTsKICAgICAgICBiPUQyWDdOWTU2UDZZRUtyWkVzb0huMlgzbFIrQnlQRUdjQzB5MXZQdUxUakk0T0FXRTZmdjllU2RrTklNd25RbTIxRAogICAgICAgICA3Q2NqT2Z0MFU1TGk1clNPQVlLM0VSbTk0VEtoUzRNOS9wT3BCQlVZMEw2RU44NjIwdm14cWprVFh1aUh6SW00dU52MAogICAgICAgICBJRW56ZEpPQ1hkNDdNd1lsaDRPTjZFcEpOdWZUWDJGZ3dUdExtRUpKcmRORjZ5U1ROTyttelhnT3VqZ01VREU1OUJubgogICAgICAgICA1VlZGenptTjRxMXdtcUs2NzJzbDdyRGtRU2tyUWJHdnUray9lR1pZRml5UFNRSmp1THQ4bHhMNmVSUWlTWFpkYUQ4UQogICAgICAgICBVcEVZMHRNZFMvelZHbmNqNXE4UkZMRkkxamtFS3A5WjJtTzhFdFdGVmhnbWZHcTZDenJ2a3Q1ZWZzclMzUERqWTN6MwogICAgICAgICB3RDBnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBS0dCM21JU1RaOVQ0QUR0eCs5THlDeFp3SjBjbnVNeFJ5cEg1SzcvTHRDakZkNjRlcWczVWlqNAoJTmpvck5UaENDaTlrcXJKWU1RRjUrclpLOENtM296MisvYjZUSmt2V2R2ZnpLYjg9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQ0pmQm91TmppZ0gyWGlYc1pNcFdvSmZ1UkpGUHBSWU9aWm9IcXU2Kzh5NXRtSnRYWGFMNkFzc1kxUGpPL1YrY3FoYTk5QkxJRnRJM25IZmROZWRsdUxtYU9NPQpYLVJlY2VpdmVkOiBieSAxMC4yNS4yMjIuMTggd2l0aCBTTVRQIGlkIHYxOG1yNTI0NjkzNmxmZy4xNDMuMTUxMzgwMDUzMzQwNjsKIFdlZCwgMjAgRGVjIDIwMTcgMTI6MDg6NTMgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjI1LjIyMS4xMzcgd2l0aCBIVFRQOyBXZWQsIDIwIERlYyAyMDE3IDEyOjA4OjUyIC0wODAwIChQU1QpCkluLVJlcGx5LVRvOiA8b3AuemJqOWl5eHJrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+ClJlZmVyZW5jZXM6IDxDQUxhVGVDb25VLSstLStqY2lHMkVvM1hOOEJBYzRzd2FBUkdxS1Q5bWhwWGo0QVJXaWdAbWFpbC5nbWFpbC5jb20+CiA8b3AuemJqOWl5eHJrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkZyb206IFBsYW1lbiBUb3RldiA8cGxhbWVuLml2LnRvdGV2QGdtYWlsLmNvbT4KRGF0ZTogV2VkLCAyMCBEZWMgMjAxNyAyMjowODo1MiArMDIwMApNZXNzYWdlLUlEOiA8Q0FMYVRlQ29idmtlUUVUWEpRZGdTOVFYSDhkTz1Rc0d3TmJidm1zS3VYUnB6UDI4Uyt3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogbWFpbi1jbGFzcyArIG1vZHVsZS12ZXJzaW9uClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpIaSwKCkFjdHVhbGx5IHRoYXQgbWlnaHQganVzdCB3b3JrLiBHb29kIGlkZWEuIEknbGwgdGFrZSBhIGxvb2sgYXQgaXQuCgpUaGFua3MsClBsYW1lbiBUb3RldgoKT24gV2VkLCBEZWMgMjAsIDIwMTcgYXQgOTo1MyBQTSwgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPiB3cm90PQplOgo+IE9uIFdlZCwgMjAgRGVjIDIwMTcgMDc6NDA6MjQgKzAxMDAsIFBsYW1lbiBUb3RldiA8cGxhbWVuLml2LnRvdGV2QGdtYWlsLmM9Cm9tPgo+IHdyb3RlOgo+Cj4+IEhpLAo+Pgo+PiBJJ3ZlIHN0YXJ0ZWQgd29ya2luZyBvbiBpbXBsZW1lbnRpbmcgc3VwcG9ydCBmb3IgbW9kdWxhciBKQVJzIGluCj4+IFBsZXh1cyBBcmNoaXZlciBidXQgYXMgSSByZXNlYXJjaCB0aGUgbWF0dGVyIEkgZm91bmQgdGhhdCB0aGV5IGFyZQo+PiBtb3JlIGNvbXBsZXggdGhhbiBJIGV4cGVjdGVkLiBJJ3ZlIHVwZGF0ZWQgdGhlIEdpdEh1YiBpc3N1ZVsxXSB3aXRoCj4+IHRoZSBkZXRhaWxzIGJ1dCBJJ2xsIHBvc3QgdGhlIGZpbmRpbmdzIGhlcmUgYXMgd2VsbC4gVGhlIG1vZHVsYXIgSkFSCj4+IGZpbGVzIGNvbnRhaW4gbm90IG9ubHkgdmVyc2lvbiBhbmQgbWFpbiBjbGFzcyBidXQgYWxzbzoKPj4KPj4gKiBMaXN0IG9mIHRoZSBwYWNrYWdlcyBjb250YWluZWQgLSB1c3VhbGx5IHBvcHVsYXRlZCBieSB0aGUgY29tcGlsZXIsCj4+IGJ1dCB0aGVyZSBhcmUgc29tZSBjYXZlYXRzIGhlcmUuIFRoZSBtb3N0IG9idmlvdXMgb25lIGlzIHRoYXQgZm9yIGphcnMKPj4gY3JlYXRlZCBieSB0aGUgU2hhZGUgUGx1Z2luIHRoaXMgYXR0cmlidXRlIHdpbGwgYWxtb3N0IGNlcnRhaW5seSBiZQo+PiBpbmNvcnJlY3QgLSB0aGUgcGx1Z2luIHdpbGwgbW9zdCBsaWtlbHkgaW50cm9kdWNlIGFkZGl0aW9uYWwgcGFja2FnZXMKPj4gYW5kIHRoZSBsaXN0IHByb2R1Y2VkIGJ5IHRoZSBjb21waWxlciB3aWxsIGJlIG91dCBvZiBkYXRlLiBUaGUgb3RoZXIKPj4gY2F2ZWF0IGFyZSB0aGUgcmVzb3VyY2VzIC0gdGhleSBjb3VsZCBiZSBsb2NhdGVkIGluIHBhY2thZ2VzIGFuZAo+PiBlbmNhcHN1bGF0ZWQgdGhlIHNhbWUgd2F5IGFzIHRoZSBjbGFzc2VzLiBUaGUgamFyIHRvb2xzIHJlY29yZHMgbm90Cj4+IG9ubHkgdGhlIGNsYXNzIHBhY2thZ2VzIGJ1dCB0aGUgcmVzb3VyY2Ugb25lcyB0b28uIFBhY2thZ2luZyByZXNvdXJjZXMKPj4gdG9nZXRoZXIgd2l0aCB0aGUgY2xhc3NlcyBtYXkgcmVzdWx0IGluIGluY29ycmVjdCBtb2R1bGUgZGVzY3JpcHRvciBpZgo+PiB0aGlzIGF0dHJpYnV0ZSBpcyBub3QgdXBkYXRlZC4KPj4KPj4gKiBUaGUgbW9kdWxlIG1haW4gY2xhc3MgLSBwYXNzZWQgYXMgYXJndW1lbnQgdG8gdGhlIGphciB0b29sIGFuZCBpdAo+PiBzZWVtcyB0aGF0IGl0IGNhbm5vdCBiZSBzZXQgdXNpbmcgdGhlIGNvbXBpbGVyLgo+Pgo+PiAqIFRoZSBtb2R1bGUgdmVyc2lvbiAtIHBhc3NlZCBhcyBhcmd1bWVudCB0byB0aGUgamFyIHRvb2wuIENvdWxkIGJlCj4+IHNldCB1c2luZyB0aGUgY29tcGlsZXIoYWdhaW4gcGFzc2VkIGFzIGFyZ3VtZW50KSBhcyB3ZWxsLgo+Pgo+PiAqIEhhc2hlcyAtIGNhbGN1bGF0ZXMgdGhlIGhhc2hlcyBvZiBnaXZlbiBleHRlcm5hbCBtb2R1bGVzIHRoYXQgZGVwZW5kCj4+IG9uIHRoaXMgb25lLiBEdXJpbmcgcnVudGltZSBqYXZhIGNoZWNrcyB0aGUgcmVjb3JkZWQgaGFzaGVzIGFnYWluc3QKPj4gdGhlIHJlc29sdmVkIG1vZHVsZSBhbmQgYW5kIGlmIGRvbid0IG1hdGNoIGl0IHdpbGwgZmFpbC4gVGhlIHByaW1hcnkKPj4gdXNlIGNhc2UgaXMgYSBtb2R1bGUgQSB0aGF0IGV4cG9ydHMgcGFja2FnZXMgdG8gQiBhbmQgQy4gQW4gZWFzeSB3YXkKPj4gdG8gYnJlYWsgdGhlIGVuY2Fwc3VsYXRpb24gb2YgQSBpcyB0byBjcmVhdGUgbW9kdWxlIG5hbWVkIEIuIFRvCj4+IHByZXZlbnQgdGhhdCB5b3UgY2FuIHJlY29yZCB0aGUgaGFzaCBvZiBCIGFuZCBDIGluc2lkZSBBLiBUaGVuIEEgd2lsbAo+PiBleHBvcnQgdGhlIHBhY2thZ2VzIG9ubHkgdG8gdGhlIGludGVuZGVkIG1vZHVsZXMuIEl0IGlzIHVzZWQgYnkgdGhlCj4+IE9wZW5KREsgYnV0IGNvdWxkIGJlIHVzZWZ1bCBmb3IgcGxhdGZvcm1zIGFuZCBmcmFtZXdvcmtzIGFzIHdlbGwuCj4+Cj4+ICogTW9kdWxlIHJlc29sdXRpb24gLSBtYXJrcyB0aGUgbW9kdWxlIHRvIG5vdCBiZSByZXNvbHZlZCBieSBkZWZhdWx0IG9yCj4+IG1hcmtzIGl0IGFzIGRlcHJlY2F0ZWQgb3IgaW5jdWJhdGluZyBzbyBhdCBydW4gdGltZSBhIHdhcm5pbmcgaXMKPj4gZGlzcGxheWVkIGlmIGl0IGlzIHJlc29sdmVkLiBJIGRvbid0IHRoaW5rIHlvdSBjYW4gc2V0IGl0IHVzaW5nIHRoZQo+PiBKREsgOSBqYXIgdG9vbCBidXQgaXQncyBwcmVzZW50IGluIHRoZSBjb2RlLiBNYXliZSBpdCB3aWxsIGJlCj4+IGltcGxlbWVudGVkIGluIGZ1dHVyZSB2ZXJzaW9uIG9mIHRoZSBqYXIgdG9vbC4KPj4KPj4gVG8gbWUgaXQgbG9va3MgbGlrZSB0aGUgcGFja2FnaW5nIG9mIG1vZHVsYXIgSkFSIGZpbGUgaXMgbW9yZSBjb21wbGV4Cj4+IHRoYW4ganVzdCBwYWNraW5nIG1vZHVsZS1pbmZvLmNsYXNzIGZpbGUgYW5kIHRoZSBqYXIgdG9vbCBpcyBubyBsb25nZXIKPj4ganVzdCBhIFpJUCBwcm9ncmFtLiBTb21ldGhpbmcgc2ltaWxhciBpcyBzdGF0ZWQgaW4gdGhlIHRvb2wKPj4gZG9jdW1lbnRhdGlvblsyXToKPj4KPj4+IFRoZSBqYXIgY29tbWFuZCBpcyBhIGdlbmVyYWwtcHVycG9zZSBhcmNoaXZpbmcgYW5kIGNvbXByZXNzaW9uIHRvb2wsCj4+PiBiYXNlZCBvbiB0aGUgWklQIGFuZCBaTElCIGNvbXByZXNzaW9uIGZvcm1hdHMuCj4+PiBJbml0aWFsbHksIHRoZSBqYXIgY29tbWFuZCB3YXMgZGVzaWduZWQgdG8gcGFja2FnZSBKYXZhIGFwcGxldHMKPj4+IG9yIGFwcGxpY2F0aW9uczsgaG93ZXZlciwgYmVnaW5uaW5nIHdpdGggSkRLIDksIHVzZXJzIGNhbiB1c2UgdGhlCj4+PiBqYXIgY29tbWFuZCB0byBjcmVhdGUgbW9kdWxhciBKQVJzLgo+Pj4gRm9yIHRyYW5zcG9ydGF0aW9uIGFuZCBkZXBsb3ltZW50LCBpdD1FMj04MD05OXMgdXN1YWxseSBtb3JlIGNvbnZlbmllbnQ9CiB0bwo+Pj4gcGFja2FnZSBtb2R1bGVzIGFzIG1vZHVsYXIgSkFScy4KPj4KPj4KPj4gV2hpbGUgbm90IGF0IGFsbCB0aGF0IGNvbXBsZXggZnJvbSB0ZWNobmljYWwgcG9pbnQgb2YgdmlldywgSSBkb24ndAo+PiB0aGluayBpdCBpcyB3b3J0aCBpbXBsZW1lbnRpbmcsIGFuZCB3aGF0cyBtb3JlIG1haW50YWluaW5nLCBhbGwgdGhpcwo+PiBmdW5jdGlvbmFsaXR5LiBQcm9iYWJseSBpdCB3b3VsZCBiZSBiZXR0ZXIgaWYgdGhlIHBsdWdpbnMgdGhhdCBwcm9kdWNlCj4+IEpBUiBmaWxlcyB1c2UgdGhlIGphciB0b29sLCB0aGUgc2FtZSB3YXkgdGhlIGNvbXBpbGVyIHBsdWdpbiBkb2VzIG5vdAo+PiBjb21waWxlIGJ5IGl0c2VsZiBidXQgdXNlcyB0aGUgSmF2YSBjb21waWxlci4KPj4KPj4gV2hhdCBkbyB5b3UgdGhpbms/Cj4KPgo+IEJhc2VkIG9uIHRoaXMgbWVzc2FnZSBpdCBzZWVtcyB3b3J0aCBpbXBsZW1lbnRpbmcgYSBKYXJUb29sQXJjaGl2ZXIsIHVzaW49CmcKPiB0aGUgamFyIHRvb2wgdmlhIHRoZSBUb29sUHJvdmlkZXJbMV0KPiBJIGhvcGUgaXQgY2FuIHN0aWxsIGJlIGEgb3JnLmNvZGVoYXVzLnBsZXh1cy5hcmNoaXZlci5BcmNoaXZlciwgb3RoZXJ3aXNlCj4gSSdsbCBjb250YWN0IHRoZSBvcGVuamRrIHRlYW0gYWJvdXQgdGhlIGRldGFpbHMgb2YgdGhlIHNwZWNpZmljYXRpb25zLiBJCj4gZG9uJ3QgdGhpbmsgd2UgbmVlZCB0aGVtIGFsbCwgZ29vZCB0byBrbm93IHRoZSByZWFzb24gZm9yIHRoZSBleHRyYSBmaWxlcz0KLgo+Cj4gdGhhbmtzIHNvIGZhciwKPiBSb2JlcnQKPgo+Cj4gWzFdCj4gaHR0cHM6Ly9kb2NzLm9yYWNsZS5jb20vamF2YXNlLzkvZG9jcy9hcGkvamRrLmphcnRvb2wtc3VtbWFyeS5odG1sI21vZHVsZT0KLmRlc2NyaXB0aW9uCj4KPj4KPj4KPj4gWzFdCj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9jb2RlaGF1cy1wbGV4dXMvcGxleHVzLWFyY2hpdmVyL2lzc3Vlcy82OSNpc3N1ZWNvbW1lbj0KdC0zNDkwOTUxMDEKPj4gWzJdIGh0dHBzOi8vZG9jcy5vcmFjbGUuY29tL2phdmFzZS85L3Rvb2xzL2phci5odG0KPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDc5OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgRGVjIDIwIDA2OjQwOjM0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDc5OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAxQzA4RjEwMEYyCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMjAgRGVjIDIwMTcgMDY6NDA6MzQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3MDEyNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBEZWMgMjAxNyAwNjo0MDoyOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjk2NzYgaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgRGVjIDIwMTcgMDY6NDA6MjggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2OTY2NCBpbnZva2VkIGJ5IHVpZCA5OSk7IDIwIERlYyAyMDE3IDA2OjQwOjI4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAyMCBEZWMgMjAxNyAwNjo0MDoyOCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEMwMDE1MUEwQTFCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyMCBEZWMgMjAxNyAwNjo0MDoyNyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDAuMzgKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC4zOCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDEsCglVUklCTF9CTE9DS0VEPTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgTHNGLVcwb3dGajc5IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJV2VkLCAyMCBEZWMgMjAxNyAwNjo0MDoyNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLWxmMC1mNDcuZ29vZ2xlLmNvbSAobWFpbC1sZjAtZjQ3Lmdvb2dsZS5jb20gWzIwOS44NS4yMTUuNDddKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQzgwOTI1RjI5NwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjAgRGVjIDIwMTcgMDY6NDA6MjUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtbGYwLWY0Ny5nb29nbGUuY29tIHdpdGggU01UUCBpZCB1ODRzbzI4MTE4MjdsZmYuNwogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDE5IERlYyAyMDE3IDIyOjQwOjI1IC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bwogICAgICAgICA6Y29udGVudC10cmFuc2Zlci1lbmNvZGluZzsKICAgICAgICBiaD1UckhNTUtJZ2R6SjZCNWVMTkJ1eFl2MnpKNy9IYmhhOHBlZGlvUUlMdllZPTsKICAgICAgICBiPXBnVHhoUnRXSXpPR2kzOEo4Tm00bWNaTE55b0hpVldwRFRvN01NMnAvMGZMejZLSFRyaTUxcVU4MTVQQjFpU3ByVAogICAgICAgICBWbmFpb2tSbFEwRVMxRkdpZHpyQUdlTlpiWW9zSEZhcVQvQTl3bEFnc3U2SXAxK1h3K2ZzVTg4VmdjQlpRZStmRjJReAogICAgICAgICBsS2crMEFBcWZ0MXl1Y211WUR5aVZUdDlVQWhXTGZZL0lhb0NhY2VwRUdwWHJnRzRVNVBLR3ZwNWZLNk9JUWhyQlUxKwogICAgICAgICBrVlNxd2xTS3J5QXdKdUN2amg2cmZqUWhXU1M3T0k3RkVKUDIrOFhXK2xTN3grejZuVTNtOWxVRWRlOVc0a0ErMmU0cgogICAgICAgICBxMkx4NjY2L1BzTlh6cjN6bVQ4WldLZ0w3M0RVS2QwMGpKUnVnTDY1aXZ4cmdxTWhhYUJJU2dYUVJRdUtSdUpEMFJIUAogICAgICAgICBob2ZBPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bwogICAgICAgICA6Y29udGVudC10cmFuc2Zlci1lbmNvZGluZzsKICAgICAgICBiaD1UckhNTUtJZ2R6SjZCNWVMTkJ1eFl2MnpKNy9IYmhhOHBlZGlvUUlMdllZPTsKICAgICAgICBiPUxaa0hHdDRhUVg1T3JLWlJRdzhtWVRkelpkRlRwMmM3VEtMYXhkOG44eCt1V0twQU41bUtReVVEcDhYcGdjRGFsNgogICAgICAgICBML2FBeXcwVDhmMFJIRWdLdjBadjdqYXVlRlhQRkw4VGxDZFhDNUVxZHkxekxMZE05WjY2QWptSUhUSGZza0JXM2RHUQogICAgICAgICB3cEZnVmM1aEVubkhxRDJGOXhtNjZuekZ6Z0QyT21saDV0M0tyWk9UNGxJUXJTZVBxMWpRbW1xcEVLOS9zSlNWcFh2awogICAgICAgICBoeHl4QWFpWGRscm9CYVlMRDhvdmJsK0Y3UFJpY1N4cXZMalVyM2JGVXJaYmRsYVZXT3RoLytKYnM1MUpPTndaMHpBSwogICAgICAgICB0eUUydmN4YU13cUtiUUJZRTRqSk1EMEcvenJEcnVOS09OS1ZqUFhVNGlRS3IyUUlPRDlzS0NHTWNMMkQ4RjhFdjVHdwogICAgICAgICA1TGhBPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBS0dCM21MNW5UWGdtVjdLUjU3U081RVQzeTBTQlZiZDJiZXMyR3Y2emtUV1pvdjBlU2htMlVxYQoJc00yMUV6V3J0eDVoQ0hsMHJWUWEzRzhXejFWNnIvMmh6NHI3K1RiVlEzZDlCdVU9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQ0pmQm90ejZmSHVadS9XWHgrZFJPYnJNdjZEV1R5cEFRZjFHMittK2xQSGJRODRrM010NDZJZHprZkN6cHowZHVIRUlyVTVTUEpzU0R0TjRqc0xtU2FSVHQ0PQpYLVJlY2VpdmVkOiBieSAxMC4yNS4zMy43MyB3aXRoIFNNVFAgaWQgaDcwbXIzODc2MDUxbGZoLjYwLjE1MTM3NTIwMjQ5OTc7IFR1ZSwKIDE5IERlYyAyMDE3IDIyOjQwOjI0IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yNS4yMjEuMTM3IHdpdGggSFRUUDsgVHVlLCAxOSBEZWMgMjAxNyAyMjo0MDoyNCAtMDgwMCAoUFNUKQpGcm9tOiBQbGFtZW4gVG90ZXYgPHBsYW1lbi5pdi50b3RldkBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMjAgRGVjIDIwMTcgMDg6NDA6MjQgKzAyMDAKTWVzc2FnZS1JRDogPENBTGFUZUNvblUtKy0tK2pjaUcyRW8zWE44QkFjNHN3YUFSR3FLVDltaHBYajRBUldpZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IG1haW4tY2xhc3MgKyBtb2R1bGUtdmVyc2lvbgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSGksCgpJJ3ZlIHN0YXJ0ZWQgd29ya2luZyBvbiBpbXBsZW1lbnRpbmcgc3VwcG9ydCBmb3IgbW9kdWxhciBKQVJzIGluClBsZXh1cyBBcmNoaXZlciBidXQgYXMgSSByZXNlYXJjaCB0aGUgbWF0dGVyIEkgZm91bmQgdGhhdCB0aGV5IGFyZQptb3JlIGNvbXBsZXggdGhhbiBJIGV4cGVjdGVkLiBJJ3ZlIHVwZGF0ZWQgdGhlIEdpdEh1YiBpc3N1ZVsxXSB3aXRoCnRoZSBkZXRhaWxzIGJ1dCBJJ2xsIHBvc3QgdGhlIGZpbmRpbmdzIGhlcmUgYXMgd2VsbC4gVGhlIG1vZHVsYXIgSkFSCmZpbGVzIGNvbnRhaW4gbm90IG9ubHkgdmVyc2lvbiBhbmQgbWFpbiBjbGFzcyBidXQgYWxzbzoKCiogTGlzdCBvZiB0aGUgcGFja2FnZXMgY29udGFpbmVkIC0gdXN1YWxseSBwb3B1bGF0ZWQgYnkgdGhlIGNvbXBpbGVyLApidXQgdGhlcmUgYXJlIHNvbWUgY2F2ZWF0cyBoZXJlLiBUaGUgbW9zdCBvYnZpb3VzIG9uZSBpcyB0aGF0IGZvciBqYXJzCmNyZWF0ZWQgYnkgdGhlIFNoYWRlIFBsdWdpbiB0aGlzIGF0dHJpYnV0ZSB3aWxsIGFsbW9zdCBjZXJ0YWlubHkgYmUKaW5jb3JyZWN0IC0gdGhlIHBsdWdpbiB3aWxsIG1vc3QgbGlrZWx5IGludHJvZHVjZSBhZGRpdGlvbmFsIHBhY2thZ2VzCmFuZCB0aGUgbGlzdCBwcm9kdWNlZCBieSB0aGUgY29tcGlsZXIgd2lsbCBiZSBvdXQgb2YgZGF0ZS4gVGhlIG90aGVyCmNhdmVhdCBhcmUgdGhlIHJlc291cmNlcyAtIHRoZXkgY291bGQgYmUgbG9jYXRlZCBpbiBwYWNrYWdlcyBhbmQKZW5jYXBzdWxhdGVkIHRoZSBzYW1lIHdheSBhcyB0aGUgY2xhc3Nlcy4gVGhlIGphciB0b29scyByZWNvcmRzIG5vdApvbmx5IHRoZSBjbGFzcyBwYWNrYWdlcyBidXQgdGhlIHJlc291cmNlIG9uZXMgdG9vLiBQYWNrYWdpbmcgcmVzb3VyY2VzCnRvZ2V0aGVyIHdpdGggdGhlIGNsYXNzZXMgbWF5IHJlc3VsdCBpbiBpbmNvcnJlY3QgbW9kdWxlIGRlc2NyaXB0b3IgaWYKdGhpcyBhdHRyaWJ1dGUgaXMgbm90IHVwZGF0ZWQuCgoqIFRoZSBtb2R1bGUgbWFpbiBjbGFzcyAtIHBhc3NlZCBhcyBhcmd1bWVudCB0byB0aGUgamFyIHRvb2wgYW5kIGl0CnNlZW1zIHRoYXQgaXQgY2Fubm90IGJlIHNldCB1c2luZyB0aGUgY29tcGlsZXIuCgoqIFRoZSBtb2R1bGUgdmVyc2lvbiAtIHBhc3NlZCBhcyBhcmd1bWVudCB0byB0aGUgamFyIHRvb2wuIENvdWxkIGJlCnNldCB1c2luZyB0aGUgY29tcGlsZXIoYWdhaW4gcGFzc2VkIGFzIGFyZ3VtZW50KSBhcyB3ZWxsLgoKKiBIYXNoZXMgLSBjYWxjdWxhdGVzIHRoZSBoYXNoZXMgb2YgZ2l2ZW4gZXh0ZXJuYWwgbW9kdWxlcyB0aGF0IGRlcGVuZApvbiB0aGlzIG9uZS4gRHVyaW5nIHJ1bnRpbWUgamF2YSBjaGVja3MgdGhlIHJlY29yZGVkIGhhc2hlcyBhZ2FpbnN0CnRoZSByZXNvbHZlZCBtb2R1bGUgYW5kIGFuZCBpZiBkb24ndCBtYXRjaCBpdCB3aWxsIGZhaWwuIFRoZSBwcmltYXJ5CnVzZSBjYXNlIGlzIGEgbW9kdWxlIEEgdGhhdCBleHBvcnRzIHBhY2thZ2VzIHRvIEIgYW5kIEMuIEFuIGVhc3kgd2F5CnRvIGJyZWFrIHRoZSBlbmNhcHN1bGF0aW9uIG9mIEEgaXMgdG8gY3JlYXRlIG1vZHVsZSBuYW1lZCBCLiBUbwpwcmV2ZW50IHRoYXQgeW91IGNhbiByZWNvcmQgdGhlIGhhc2ggb2YgQiBhbmQgQyBpbnNpZGUgQS4gVGhlbiBBIHdpbGwKZXhwb3J0IHRoZSBwYWNrYWdlcyBvbmx5IHRvIHRoZSBpbnRlbmRlZCBtb2R1bGVzLiBJdCBpcyB1c2VkIGJ5IHRoZQpPcGVuSkRLIGJ1dCBjb3VsZCBiZSB1c2VmdWwgZm9yIHBsYXRmb3JtcyBhbmQgZnJhbWV3b3JrcyBhcyB3ZWxsLgoKKiBNb2R1bGUgcmVzb2x1dGlvbiAtIG1hcmtzIHRoZSBtb2R1bGUgdG8gbm90IGJlIHJlc29sdmVkIGJ5IGRlZmF1bHQgb3IKbWFya3MgaXQgYXMgZGVwcmVjYXRlZCBvciBpbmN1YmF0aW5nIHNvIGF0IHJ1biB0aW1lIGEgd2FybmluZyBpcwpkaXNwbGF5ZWQgaWYgaXQgaXMgcmVzb2x2ZWQuIEkgZG9uJ3QgdGhpbmsgeW91IGNhbiBzZXQgaXQgdXNpbmcgdGhlCkpESyA5IGphciB0b29sIGJ1dCBpdCdzIHByZXNlbnQgaW4gdGhlIGNvZGUuIE1heWJlIGl0IHdpbGwgYmUKaW1wbGVtZW50ZWQgaW4gZnV0dXJlIHZlcnNpb24gb2YgdGhlIGphciB0b29sLgoKVG8gbWUgaXQgbG9va3MgbGlrZSB0aGUgcGFja2FnaW5nIG9mIG1vZHVsYXIgSkFSIGZpbGUgaXMgbW9yZSBjb21wbGV4CnRoYW4ganVzdCBwYWNraW5nIG1vZHVsZS1pbmZvLmNsYXNzIGZpbGUgYW5kIHRoZSBqYXIgdG9vbCBpcyBubyBsb25nZXIKanVzdCBhIFpJUCBwcm9ncmFtLiBTb21ldGhpbmcgc2ltaWxhciBpcyBzdGF0ZWQgaW4gdGhlIHRvb2wKZG9jdW1lbnRhdGlvblsyXToKCj4gVGhlIGphciBjb21tYW5kIGlzIGEgZ2VuZXJhbC1wdXJwb3NlIGFyY2hpdmluZyBhbmQgY29tcHJlc3Npb24gdG9vbCwKPiBiYXNlZCBvbiB0aGUgWklQIGFuZCBaTElCIGNvbXByZXNzaW9uIGZvcm1hdHMuCj4gSW5pdGlhbGx5LCB0aGUgamFyIGNvbW1hbmQgd2FzIGRlc2lnbmVkIHRvIHBhY2thZ2UgSmF2YSBhcHBsZXRzCj4gb3IgYXBwbGljYXRpb25zOyBob3dldmVyLCBiZWdpbm5pbmcgd2l0aCBKREsgOSwgdXNlcnMgY2FuIHVzZSB0aGUKPiBqYXIgY29tbWFuZCB0byBjcmVhdGUgbW9kdWxhciBKQVJzLgo+IEZvciB0cmFuc3BvcnRhdGlvbiBhbmQgZGVwbG95bWVudCwgaXQ9RTI9ODA9OTlzIHVzdWFsbHkgbW9yZSBjb252ZW5pZW50IHQ9Cm8KPiBwYWNrYWdlIG1vZHVsZXMgYXMgbW9kdWxhciBKQVJzLgoKV2hpbGUgbm90IGF0IGFsbCB0aGF0IGNvbXBsZXggZnJvbSB0ZWNobmljYWwgcG9pbnQgb2YgdmlldywgSSBkb24ndAp0aGluayBpdCBpcyB3b3J0aCBpbXBsZW1lbnRpbmcsIGFuZCB3aGF0cyBtb3JlIG1haW50YWluaW5nLCBhbGwgdGhpcwpmdW5jdGlvbmFsaXR5LiBQcm9iYWJseSBpdCB3b3VsZCBiZSBiZXR0ZXIgaWYgdGhlIHBsdWdpbnMgdGhhdCBwcm9kdWNlCkpBUiBmaWxlcyB1c2UgdGhlIGphciB0b29sLCB0aGUgc2FtZSB3YXkgdGhlIGNvbXBpbGVyIHBsdWdpbiBkb2VzIG5vdApjb21waWxlIGJ5IGl0c2VsZiBidXQgdXNlcyB0aGUgSmF2YSBjb21waWxlci4KCldoYXQgZG8geW91IHRoaW5rPwoKClsxXSBodHRwczovL2dpdGh1Yi5jb20vY29kZWhhdXMtcGxleHVzL3BsZXh1cy1hcmNoaXZlci9pc3N1ZXMvNjkjaXNzdWVjb21tZT0KbnQtMzQ5MDk1MTAxClsyXSBodHRwczovL2RvY3Mub3JhY2xlLmNvbS9qYXZhc2UvOS90b29scy9qYXIuaHRtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4MzMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIERlYyAyNSAwOTowMTozOCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4MzMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQjRCMzIxMEM4NwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDI1IERlYyAyMDE3IDA5OjAxOjM4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODk0OTYgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgRGVjIDIwMTcgMDk6MDE6MzggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg5NDM0IGludm9rZWQgYnkgdWlkIDUwMCk7IDI1IERlYyAyMDE3IDA5OjAxOjM4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODk0MjIgaW52b2tlZCBieSB1aWQgOTkpOyAyNSBEZWMgMjAxNyAwOTowMTozOCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMjUgRGVjIDIwMTcgMDk6MDE6MzcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA4OTU3RDE4MDYzMwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMjUgRGVjIDIwMTcgMDk6MDE6MzcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjE3OQpYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuMTc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgZUI5bV9rTkZtZEpoIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAyNSBEZWMgMjAxNyAwOTowMTozNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLWxmMC1mNDIuZ29vZ2xlLmNvbSAobWFpbC1sZjAtZjQyLmdvb2dsZS5jb20gWzIwOS44NS4yMTUuNDJdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNkIzMUY1RkIyOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMjUgRGVjIDIwMTcgMDk6MDE6MzMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtbGYwLWY0Mi5nb29nbGUuY29tIHdpdGggU01UUCBpZCBnNjNzbzE1MTg3NTA0bGZsLjExCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMjUgRGVjIDIwMTcgMDE6MDE6MzIgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG8KICAgICAgICAgOmNvbnRlbnQtdHJhbnNmZXItZW5jb2Rpbmc7CiAgICAgICAgYmg9NDFZcDFoWUdxcmhIbEZ3bUVwRmx2NXdxQm5YSnU2Z1JPQk9qTXVpdnhxMD07CiAgICAgICAgYj1HckpwR3J3dGF1OG1Ha1pSSHI0dUdXdnRCdHpPajgwWGQ5MjBpSnJzcitNd1ZnWmVMYkt4MndQb05pMW1RZ2RVOVUKICAgICAgICAgOU5XNkJ6bkJJamNWUXcyMVlGN0FBZ05mb0V1OXBHb3p5V2VmR25GTDhabXJBNXIxVU9yUjlwdXZpM1p4aExJMy9zRmUKICAgICAgICAgeVBmZnBBcVRlZkxldzh4dnpXaUNXSkFKMUxNME9SbVI3aDNXVC9GK1VBSEhKUldQaXU2VWFQN3BkTDA0NktpWDJDdXYKICAgICAgICAgQVNoWEhUWWxnejlBY3NoamhhbUoxdktxcnhDb1V6YzArRTFIdGdRbUtFeDE2bVEzUkNRTWdzdml6K29lSFgxd003MkMKICAgICAgICAgdno5WndyV3dNaFFCZGVXbmRZbktsSUorWHI3UDlUL1YydS9zWVVjbEs0UW9uQ2daY2dSMEM2eVBUQWMvMkxYcGdQYWMKICAgICAgICAgQmZydz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG86Y29udGVudC10cmFuc2Zlci1lbmNvZGluZzsKICAgICAgICBiaD00MVlwMWhZR3FyaEhsRndtRXBGbHY1d3FCblhKdTZnUk9CT2pNdWl2eHEwPTsKICAgICAgICBiPXBzWFBXNTVDSzlINktBL1JhL1E3SnJNNVRkNGR5ek9Fb2JNb1RnRloxTGFUSE9CN1ZYdzhqZ3RZb1BZNk9QN0E5dgogICAgICAgICBnU3daTjJ6UHltNE9PRWdVVWM5dnZ2cFRYNjZqOVYvZHIzL3ZmWHY3dmdvSWNCR0hDQzF3S0hub041azA1MFIySnlncwogICAgICAgICBYZ0FoRUJHRFJ4OE52d1B6SUUvVi8zd2tscXpBSjNmU2t4alROcjlIcHNvWEUvZDNtR3J2dVk5TGJwb1FuMUU2NGxDUAogICAgICAgICA2dlkvb2V4UTB2czRQTzgwZmg4UnRnWGJjaDkvUnJmU3VqaHJDbFU1NDBOTTNpOVhhT1FWYzZEQisxTDFFWUswdnZwVwogICAgICAgICBpL0kyNXVrbjhQZnlHSW1pc0FqLzNucDJrcTBENGdKWWJwYmhxOVJFMFo0ODFjVEtoNE5xVnlDaThlajFoWHZjOXB0UwogICAgICAgICBTVTZ3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBS0dCM21JcTErVVR6aGRHSVVLcU9GayttTktYUWUycUNpTGhQVi81dUlKUVNSU0hmbU9YeXJ5NQoJMFQ1OFhFNVpaZXdXejNPWXlQS04zalNGMnZLSHRmRlNTa2ZkUHNuV01EK2IKWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFDSmZCb3VHdHo5emt0V2V4Sm1uU09zeFhvREl3ZGVFMzBHTEJQSnY2Wml6Z3ROSjNVbFNkaWFya3kvcGNiQTBYK1UweVpBcXd6bUdLa2lzTmZVb25OaitTaGc9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjQ2LjEuMjMxIHdpdGggU01UUCBpZCBmMTAwbXIxMzEyMTYzMWxqaS4xMzIuMTUxNDE5MjQ4NTU4MTsKIE1vbiwgMjUgRGVjIDIwMTcgMDE6MDE6MjUgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjI1LjIyMS4xMzcgd2l0aCBIVFRQOyBNb24sIDI1IERlYyAyMDE3IDAxOjAxOjI0IC0wODAwIChQU1QpCkluLVJlcGx5LVRvOiA8Q0FMYVRlQ3BNPUVCWjdzVkN3NUd0UE1pelFzTXpXbnRLV2ZCNVI5ckY3Y25oQjRka3ZnQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8NzM4Yzk5ZDMtNDQ0MS03NDFlLTE2ZGYtNzQ3YzVmNGY1YjFjQGdteC5kZT4gPDIwMDk3NjU1OTIuMjI5NzIyMTcuMTUxNDEwOTI1NjYzMi5KYXZhTWFpbC5yb290QHNwb29sZXI0LWcyNz4KIDxDQUxhVGVDcE09RUJaN3NWQ3c1R3RQTWl6UXNNeldudEtXZkI1UjlyRjdjbmhCNGRrdmdAbWFpbC5nbWFpbC5jb20+CkZyb206IFBsYW1lbiBUb3RldiA8cGxhbWVuLml2LnRvdGV2QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAyNSBEZWMgMjAxNyAxMTowMToyNCArMDIwMApNZXNzYWdlLUlEOiA8Q0FMYVRlQ3BMZEY0S1NLZ0E2N3pPVjU1U0tVbU94dHJGSmhhejdIZ2pZYis5V2lNSDJ3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW0lNUE9SVEFOVF0gUmU6IEdpdCBtaWdyYXRpb24gbmV4dCBzdGVwcwpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKcC5zLiBJIGp1c3Qgc2F3IGEgbWlzdGFrZSBpbiBteSBwcmV2aW91cyBtZXNzYWdlLiBXaGF0IEkgd3JvdGUgaXM6CgpTbyBmb3IgbWF2ZW4td2FyLXBsdWdpbnMgeW91IGhhdmUgdHdvIGNvbW1pdHMgaW4gdGhlIG1hdmVuLXBsdWdpbnMgR2l0CnJlcG9zaXRvcnkgLSBvbmUgZm9yCmh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2NvbXBvbmVudHMvdHJ1bmsvbWF2ZW4tcGx1Z2lucy9tYXZlbj0KLXdhci1wbHVnaW4KYW5kIG9uZSBmb3IgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2YvbWF2ZW4vY29tcG9uZW50cy90cnVuay8Kbm8gbWF0dGVyIHRoYXQgYWN0dWFsbHkgdGhvc2UgY29tbWl0cyBhcmUgdGhlIHNhbWUgLSBzYW1lIGRhdGUsCmF1dGhvciwgbWVzc2FnZSwgZmlsZXMsIGV0Yy4KCmJ1dCB3aGF0IEkgbWVhbnQgaXM6CgpTbyBmb3IgbWF2ZW4td2FyLXBsdWdpbnMgeW91IGhhdmUgdHdvIGNvbW1pdHMgaW4gdGhlIG1hdmVuLXBsdWdpbnMgR2l0CnJlcG9zaXRvcnkgLSBvbmUgZm9yCmh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2NvbXBvbmVudHMvdHJ1bmsvbWF2ZW4tcGx1Z2lucy9tYXZlbj0KLXdhci1wbHVnaW4KYW5kIG9uZSBmb3IgaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2YvbWF2ZW4vY29tcG9uZW50cy90cnVuay9tYXZlbi1wPQpsdWdpbnMvCm5vIG1hdHRlciB0aGF0IGFjdHVhbGx5IHRob3NlIGNvbW1pdHMgYXJlIHRoZSBzYW1lIC0gc2FtZSBkYXRlLAphdXRob3IsIG1lc3NhZ2UsIGZpbGVzLCBldGMuCgpJJ3ZlIGp1c3QgbWlzc2VkIG1hdmVuLXBsdWdpbnMvIGZyb20gdGhlIGxhc3QgVVJMCgpPbiBNb24sIERlYyAyNSwgMjAxNyBhdCAxMDo1OCBBTSwgUGxhbWVuIFRvdGV2CjxwbGFtZW4uaXYudG90ZXZAZ21haWwuY29tPiB3cm90ZToKPiBIaSwKPgo+IFdoYXQgSSBjYW4gc2VlIGlzIHRoYXQgdGhlIHRhZ3MgYWN0dWFsbHkgaW50cm9kdWNlIG5ldyBicmFuY2hlcyB0aGF0Cj4gY29udGFpbiBjb21taXRzIHdpdGggdGhlIHNhbWUgY29udGVudCBhcyB0aGUgb25lIGluIHRoZSBtYXN0ZXIgKHRydW5rKQo+IGJyYW5jaC4gQnV0IHRoaXMgaXMgbm90IGNhdXNlZCBieSB0aGUgc2NyaXB0IHRoYXQgc3BsaXRzIG9mIHRoZQo+IHJlcG9zaXRvcnkgLSB0aGUgcHJvYmxlbSBleGlzdHMgaW4gdGhlIG1hdmVuLXBsdWdpbnMgR2l0IHJlcG9zaXRvcnkgYXMKPiB3ZWxsLiBNYXliZSBpdCdzIG5vdCBxdWl0ZSB2aXNpYmxlIGJlY2F1c2UgdGhlcmUgYXJlIGEgbG90IG9mIGNvbW1pdHMsCj4gYnV0IGl0J3MgdGhlcmUuCj4KPiBIb3cgY2FuIGl0IGJlIGZpeGVkPyBJIHRoaW5rIGl0IHdvdWxkIGJlIGVhc2llciB0byBmaXggdGhlIGluZGl2aWR1YWwKPiBwbHVnaW4gcmVwb3NpdG9yaWVzIChhZnRlciB0aGUgc3BsaXQpIGFzIHRoZXkgYXJlIHNtYWxsZXIgYW5kIGVhc2llcgo+IHRvIHdvcmsgd2l0aC4gVGhlIHBsYW4gaXMgc2ltcGxlIC0gYXMgdGhlIGJyYW5jaGVzIGNyZWF0ZWQgYnkgdGhlIHRhZ3MKPiBkb2VzIG5vdCBjb250YWluIG5ldyBjb21taXRzKHdpdGggYSBzaW5nbGUgZXhjZXB0aW9uIGJ1dCBJJ2xsIGV4cGxhaW4KPiB0aGF0IGluIGEgbWludXRlKSBhbmQgYWxsIG9mIHRoZW0gYXJlIHByZXNlbnQgaW4gdGhlIG1hc3RlciBicmFuY2ggIHdlCj4gY291bGQganVzdCBjaGFuZ2UgdGhlIHRhZyB0byBwb2ludCB0byB0aGUgc2FtZSBjb21taXRzIGJ1dCBpbiB0aGUKPiBtYXN0ZXIgYnJhbmNoLiBUaGF0IHdpbGwgY2F1c2UgYWxsIGV4dHJhIGNvbW1pdHMgYW5kIGJyYW5jaGVzIHRvIGJlCj4gZ2FyYmFnZSBjb2xsZWN0ZWQgYXMgdGhleSBhcmUgYWNjZXNzaWJsZSBvbmx5IGZyb20gdGhlIHRhZ3MuIEZvciBvdXIKPiBwdXJwb3NlcyBjb21taXRzIGFyZSBlcXVhbCBpZiB0aGV5IHBvaW50IHRvIHRoZSBzYW1lIHJvb3QgdHJlZSAodGhlCj4gc2FtZSBmaWxlcyB3aXRoIHRoZSBzYW1lIGNvbnRlbnQpLiBCdXQgdW5mb3J0dW5hdGVseSB0aGVyZSBpcyBhIGNhdGNoLgo+IFdoYXQgSSBzYWlkIGFib3V0IHRoZSBicmFuY2hlcyBjcmVhdGVkIGJ5IHRoZSB0YWdzIGlzIG5vdCBzdHJpY3RseQo+IHRydWUgLSB0aGV5IGRvIGhhdmUgc29tZSBleHRyYSBjb21taXRzLiBXaGVuIHlvdSByZWxlYXNlIGluIFNWTiB5b3UKPiBoYXZlIHRoZSBmb2xsb3dpbmcgc2VxdWVuY2Ugb2YgY29tbWl0czoKPgo+ICogW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBjb3B5IGZvciB0YWcgbWF2ZW4td2FyLXBsdWdpbi0zLjIuMCAodGhpcyBpcwo+IHRoZSB0YWdnZWQgY29tbWl0KQo+ICogW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIHJlbGVhc2UgbWF2ZW4td2FyLXBsdWdpbi0zLjIuMAo+Cj4gQWZ0ZXIgdGhlIG1pZ3JhdGlvbiB0byBHaXQgdGhlIG1hc3RlciAodHJ1bmspIGJyYW5jaCBjb250YWluIG9ubHkgdGhlCj4gJ3ByZXBhcmUgcmVsZWFzZScgY29tbWl0IGJ1dCBub3QgdGhlICdjb3B5IGZvciB0YWcnIGNvbW1pdC4gU28gaWYgd2UKPiBhcHBseSBteSBwbGFuIHRoZW4gdGhlICdjb3B5IGZvciB0YWcnIGNvbW1pdCB3aWxsIGJlIGxvc3QuIEl0J3MganVzdCBhCj4gY29weSAobm8gY2hhbmdlcywgaXQgY29udGFpbnMgdGhlIHNhbWUgZmlsZXMgYXMgdGhlIHByZXZpb3VzIGNvbW1pdCkKPiBzbyBJIGRvbid0IHRoaW5rIGl0J3MgYSBwcm9ibGVtIGJ1dCB3b3VsZCBiZSBuaWNlIGlmIHNvbWVib2R5Cj4gY29uZmlybXMuCj4KPiBTbyB0aGUgcHJvcG9zZWQgcGxhbiBoYXZlIHRoZSBmb2xsb3dpbmcgY2F2ZWF0czoKPgo+ICogdGhlICdjb3B5IGZvciB0YWcnIGNvbW1pdHMgd2lsbCBiZSBsb3N0LiBObyBjaGFuZ2VzIHdpbGwgYmUgbG9zdCBhcwo+IHRob3NlIGFyZSBvbmx5IGNvcHkgY29tbWl0cwo+ICogdGhlIHRhZ3Mgd2lsbCBwb2ludCB0byB0aGUgcHJldmlvdXMgJ3ByZXBhcmUgcmVsZWFzZScgY29tbWl0cwo+ICogdGhlIHRhZ3MgU0hBIHdpbGwgYmUgY2hhbmdlZCBiZWNhdXNlIHRoZXkgcG9pbnQgdG8gYSBkaWZmZXJlbnQgY29tbWl0Cj4KPiBJZiB0aGF0IGlzIE9LIEkgY2FuIHdyaXRlIGEgc2NyaXB0IHRoYXQgd2lsbCBhcHBseSB0aG9zZSBjaGFuZ2VzLgo+Cj4gV2hhdCBjYXVzZXMgdGhlIGJyYW5jaGVzIGFuZCBhbGwgdGhvc2UgZHVwbGljYXRpbmcgY29tbWl0cz8gV2VsbCB0aGUKPiBtYXN0ZXIgYnJhbmNoIHRyYWNrcwo+IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2NvbXBvbmVudHMvdHJ1bmsvbWF2ZW4tcGx1Z2lucwo+IGJ1dCB0aGUgdGFncyBmb3IgdGhlIHBsdWdpbnMgYXJlIGFjdHVhbGx5IHRyYWNraW5nIHRoZSBwbHVnaW4KPiBkaXJlY3RvcnkgKGZvciBleGFtcGxlOgo+IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2NvbXBvbmVudHMvdHJ1bmsvbWF2ZW4tcGx1Z2lucy9tYXY9CmVuLXdhci1wbHVnaW4pLgo+IFNvIGZvciBtYXZlbi13YXItcGx1Z2lucyB5b3UgaGF2ZSB0d28gY29tbWl0cyBpbiB0aGUgbWF2ZW4tcGx1Z2lucyBHaXQKPiByZXBvc2l0b3J5IC0gb25lIGZvcgo+IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2NvbXBvbmVudHMvdHJ1bmsvbWF2ZW4tcGx1Z2lucy9tYXY9CmVuLXdhci1wbHVnaW4KPiBhbmQgb25lIGZvciBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9jb21wb25lbnRzL3RydW5rLwo+IG5vIG1hdHRlciB0aGF0IGFjdHVhbGx5IHRob3NlIGNvbW1pdHMgYXJlIHRoZSBzYW1lIC0gc2FtZSBkYXRlLAo+IGF1dGhvciwgbWVzc2FnZSwgZmlsZXMsIGV0Yy4KPgo+IFJlZ2FyZHMsCj4gUGxhbWVuIFRvdGV2Cj4KPiBPbiBTdW4sIERlYyAyNCwgMjAxNyBhdCAxMTo1NCBBTSwgIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdyb3RlOgo+PiBJJ2Qgc3VnZ2VzdCB0byB0cnkgdGhlIHByb2Nlc3MgdG8gYSBwZXJzb25hbCBwZXJzb25hbCByZXBvIG9uIEdpdEh1YiB0byA9CnNlZSBpZiB5b3UncmUgYWJsZSB0byBnZXQgYSBiZXR0ZXIgcmVzdWx0IGJlZm9yZSBpbnZvbHZpbmcgbWFudWFsIHdvcmsgZnJvbT0KIElORlJBIChvbiBtb3JlIHRoYW4gNjAgcmVwb3MuLi4pCj4+Cj4+IChpdCdzIHNhZCB0byBzZWUgbm9ib2R5IHRyeSB0byBleHBsYWluIHdoYXQncyBoYXBwZW5uaW5nIG9yIGltcHJvdmUgdGhlID0KZG9jdW1lbnRlZCBjb21tYW5kcywganVzdCBnZXQgdG8gYSBjb25jbHVzaW9uOiByZS1kbyBldmVyeXRoaW5nIGFuZCBwcmF5KQo+Pgo+PiBSZWdhcmRzLAo+Pgo+PiBIZXJ2PUMzPUE5Cj4+Cj4+IC0tLS0tIE1haWwgb3JpZ2luYWwgLS0tLS0KPj4gRGU6ICJLYXJsIEhlaW56IE1hcmJhaXNlIiA8a2htYXJiYWlzZUBnbXguZGU+Cj4+ID1DMz04MDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwgIlJvYmVydCBTY2hvbHRlIj0KIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KPj4gRW52b3k9QzM9QTk6IERpbWFuY2hlIDI0IEQ9QzM9QTljZW1icmUgMjAxNyAxMDo0Nzo0Mwo+PiBPYmpldDogUmU6IFtJTVBPUlRBTlRdIFJlOiBHaXQgbWlncmF0aW9uIG5leHQgc3RlcHMKPj4KPj4gSGksCj4+Cj4+IE9uIDI0LzEyLzE3IDEwOjQwLCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPj4+IEhvdyBhYm91dCBhIGhhcmQgcmVzZXQgb3IgZHJvcHBpbmcgdGhlIHJlcG8gYW5kIGRvaW5nIGl0IGFsbCBvdmVyIGFnYWluPQo/Cj4+Cj4+IElmIEkgY29ycmVjdGx5IHNlZW4gdGhhdCAuLnRoZXJlIGhhZCBubyBjb21taXQgeWV0IG9uIHRoZSBuZXcgZ2l0IHJlcG9zLj0KLgo+Pgo+PiBTbyBJIHRoaW5rIGl0IHdvdWxkIGJlIHRoZSBlYXNpZXN0IHdheSB0byBkbyBhcyBSb2JlcnQgc3VnZ2VzdCAuLi50bwo+PiByZWRvIG1pZ3JhdGlvbiBmb3IgdGhvc2UgcmVwb3MuLgo+Pgo+PiBLaW5kIHJlZ2FyZHMKPj4gS2FybCBIZWluego+Pj4KPj4+IE9uIFdlZCwgMjAgRGVjIDIwMTcgMTA6NDI6MzYgKzAxMDAsIEhlcnY9QzM9QTkgQk9VVEVNWQo+Pj4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3JvdGU6Cj4+Pgo+Pj4+IElORlJBLTE1Njc5IGZpeGVkIGJ5IGluZnJhIHRlYW0KPj4+PiB0aGVuIEkgcmUtcnVuIG1pZ3JhdGUtcGx1Z2lucy5zaCBzY3JpcHQgdG8gc3BsaXQgdGhlIHN2bjJnaXQgbWlycm9yIHRvCj4+Pj4gcGVyLQo+Pj4+IHBsdWdpbiBnaXQgcmVwbwo+Pj4+IGFuZCBJIHB1c2hlZCAibWFzdGVyMiIgYnJhbmNoZXMgZm9yIG0tamF2YWRvYy1wLCBtLXNpdGUtcCBhbmQgbS1wZGYtcCwKPj4+PiB3aGljaAo+Pj4+IHdlcmUgdGhlIDMgcGx1Z2lucyB3aGljaCBzdWZmZXJlZCBmcm9tIG1pc3NpbmcgY29tbWl0cwo+Pj4+Cj4+Pj4gb24gbS1zaXRlLXAgYW5kIG0tcGRmLXAsIEknbGwgY2hlcnJ5IHBpY2sgdGhlIHVuaXF1ZSBjb21taXQgdGhhdCB3YXMKPj4+PiBtaXNzZWQ6Cj4+Pj4gbm90IGEgYmlnIGRlYWwKPj4+Pgo+Pj4+IG9uIG0tamF2YWRvYy1wLCB0aGUgc2l0dWF0aW9uIGlzIG1vcmUgY29wbGV4LCBzaW5jZSB0aGVyZSB3YXMgYSByZWxlYXM9CmUKPj4+Pgo+Pj4+IEkgYWxzbyBub3RpY2VkIHRoYXQgSSBmb3Jnb3QgdG8gcHVzaCB0YWdzIHdoZW4gaW1wb3J0aW5nOiBJIHN0YXJ0ZWQgdG8KPj4+PiBkbyAiZ2l0Cj4+Pj4gcHVzaCAtLXRhZ3MiLCBidXQgdGhlIHJlc3VsdCBkb2VzIG5vdCBsb29rIGFzIEkgZXhwZWN0ZWQ6IGl0IGNyZWF0ZXMgYQo+Pj4+IGxvdCBvZgo+Pj4+IHBhcmFsbGVsIGJyYW5jaGVzCj4+Pj4KPj4+PiBJJ2xsIG5lZWQgaGVscCBmcm9tIGdpdCBleHBlcnRzOiB3aGF0IGlzIGhhcHBlbmluZz8KPj4+Pgo+Pj4+IEkgc3RvcHBlZCB0aGUgdGFncyBwdXNoIGhhbGYgdGhlIHdheSwgd2UnbGwgbmVlZCB0byBkZWNpZGUgd2hhdCB0byBkby49Ci4uCj4+Pj4gKEkga25ldyBJIHdhcyBub3QgYSBnaXQgZXhwZXJ0IGFuZCB0aGVyZSB3YXMgYSByaXNrIGZvciBzb21ldGhpbmcKPj4+PiB3ZWlyZCBsaWtlCj4+Pj4gd2hhdCdzIGN1cnJlbnRseSBoYXBwZW5pbmcuLi4pCj4+Pj4KPj4+PiBBbnkgaGludD8KPj4+Pgo+Pj4+IFJlZ2FyZHMsCj4+Pj4KPj4+PiBIZXJ2PUMzPUE5Cj4+Pj4KPj4+PiBMZSBzYW1lZGkgMTYgZD1DMz1BOWNlbWJyZSAyMDE3LCAxNjoyODo0OCBDRVQgSGVydj1DMz1BOSBCT1VURU1ZIGEgPUMzPQo9QTljcml0IDoKPj4+Pj4gb2ssIEkgd2FzIGNvbmZ1c2VkIGJ5IHRoZSBkaWZmZXJlbnQgdGFrZXMgYXQgbS1qYXZhZG9jLXAgMy4wLjAKPj4+Pj4KPj4+Pj4geWVzLCBzdm4yZ2l0IG1pcnJvciBpcyBzdHVjayBbMV0gYXQgcjE4MTU2NzUKPj4+Pj4KPj4+Pj4gSSBqdXN0IG9wZW5lZCBhbiBJTkZSQSBKaXJhIGlzc3VlCj4+Pj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvSU5GUkEtMTU2NzkKPj4+Pj4KPj4+Pj4gb25jZSB0aGUgc3ZuMmdpdCBtaXJyb3Igd2lsbCBiZSB1cGRhdGVkLCB3ZSdsbCBoYXZlIHRvIHJlLXJ1biB0aGUgc3BsPQppdAo+Pj4+PiBzY3JpcHRzIGFuZCBjaGVycnkgcGljayB0aGUgbWlzc2luZyBjb21taXRzCj4+Pj4+Cj4+Pj4+IFJlZ2FyZHMsCj4+Pj4+Cj4+Pj4+IEhlcnY9QzM9QTkKPj4+Pj4KPj4+Pj4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9jb21taXRzL3RydW5rCj4+Pj4+Cj4+Pj4+IExlIHNhbWVkaSAxNiBkPUMzPUE5Y2VtYnJlIDIwMTcsIDEzOjAxOjA1IENFVCBSb2JlcnQgU2Nob2x0ZSBhID1DMz1BOT0KY3JpdCA6Cj4+Pj4+ID4gSSB3YXMgdHJpZ2dlcmVkIGJ5IHNvbWUgZmFpbGluZyB1bml0IHRlc3RzLCB3aGljaCBzaG91bGQgaGF2ZSBiZWVuCj4+Pj4+IHNvbHZlZAo+Pj4+PiA+IGluIG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wCj4+Pj4+ID4KPj4+Pj4gPiBNeSBsYXN0IGNvbW1pdCBhY2NvcmRpbmcgdG8gR0lUIHdhcyBub3ZlbWJlciAxOHRoCj4+Pj4+ID4gTXkgbGFzdCBjb21taXQgYWNjb3JkaW5nIHRvIFNWTiB3YXMgZGVjZW1iZXIgM3JkCj4+Pj4+ID4KPj4+Pj4gPiBjb21wYXJpbmcgc3ZubG9nIHdpdGggZ2l0bG9nIG1vc3Qgb2YgdGhlc2UgY29tbWl0cyBhcmUgbG9zdDoKPj4+Pj4gPgo+Pj4+PiA+IG1vdmVkIHRvIGdpdAo+Pj4+PiA+IC0tLS0KPj4+Pj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgZm9yIG5leHQgZGV2ZWxvcG1lbnQgaXRlcmF0aW9uCj4+Pj4+ID4gLS0tLQo+Pj4+PiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSByZWxlYXNlIG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wCj4+Pj4+ID4gLS0tLQo+Pj4+PiA+IFtNSkFWQURPQy00OThdICJtb2R1bGUgbm90IGZvdW5kIiB3aGVuIEphdmEgOSBtb2R1bGUtaW5mbyBwcmVzZW50Cj4+Pj4+ID4gU3VwcG9ydCBhZ2dyYXRlZCBqYXZhZG9jCj4+Pj4+ID4gLS0tLQo+Pj4+PiA+IFNraXAgc2V2ZXJhbCB1bml0dGVzdHMgZm9yIEphdmE5Cj4+Pj4+ID4gLS0tLQo+Pj4+PiA+IEpESy04MDMyMjA1IHdhcyBjbG9zZWQgYXMgbm90IGFuIGlzc3VlLCBzbyBub3Qgc29sdmVkIGluIEphdmE5Lgo+Pj4+PiA+IE5lZWQgdG8gcmV2aWV3IHRoZSBjb25jbHVzaW9uCj4+Pj4+ID4gLS0tLQo+Pj4+PiA+IFVwZ3JhZGUgbW9ja2l0byB0byByZW1vdmUgd2FybmluZyBhYm91dCBpbGxlZ2FsIHJlZmxlY3RpdmUgYWNjZXNzCj4+Pj4+ID4gLS0tLQo+Pj4+PiA+IEltcHJvdmUgVGVzdEphdmFkb2NSZXBvcnRUZXN0I3Rlc3RUZXN0SmF2YWRvYwo+Pj4+PiA+IEo4IHdhcm5zIGFuZCBjb250aW51ZXMgd2l0aCBtaXNzaW5nIGRlcGVuZGVuY3ksIEo5IGZhaWxzLgo+Pj4+PiA+IEluIGZhY3QgdGVzdCB3YXMgd3Jvbmc6IGRlcGVuZGVuY3kgc2hvdWxkIGhhdmUgYmVlbiBvbiBjbGFzc3BhdGgKPj4+Pj4gPiAtLS0tCj4+Pj4+ID4gdW5pdHRlc3Qgc2hvdWxkIHByZWZlciBKQVZBX0hPTUUgd2hlbiBleGVjdXRpbmcgZnJvbSBjbWRsaW5lCj4+Pj4+ID4gV2hlbiBydW5uaW5nIHdpdGggSmF2YTkrIG5vIG5lZWQgdG8gc3dpdGNoIGZyb20ganJlIHRvIGpkayBkaXJlY3Rvcj0KeQo+Pj4+PiA+IChqZXAyMjApCj4+Pj4+ID4gLS0tLQo+Pj4+PiA+IE1KQVZBRE9DLTUwMiBVcGRhdGUgREVGQVVMVF9KQVZBX0FQSV9MSU5LUwo+Pj4+PiA+IC0tLS0KPj4+Pj4gPiBzZXNzaW9uIGlzIHJlcXVpcmVkIHBhcmFtZXRlciwgc28gY2Fubm90IGJlIG51bGwuIEZpeCByZWxhdGVkCj4+Pj4+IHVuaXR0ZXN0cwo+Pj4+PiA+IC0tLS0KPj4+Pj4gPiBBZGQgcHJvamVjdC9hcnRpZmFjdCBrZXkgdG8gc2V0IG9mIHNvdXJjZVBhdGhzIHRvIHJlY29nbml6ZSByZWFjdG9yCj4+Pj4+ID4gcHJvamVjdHMgdmVyc3VzIGRlcGVuZGVuY2llcwo+Pj4+PiA+IC0tLS0KPj4+Pj4gPiBHcm91cCBzZXRzIG9mIHNvdXJjZXBhdGhzIHBlciBwcm9qZWN0LCBpbiBwcmVwYXJlIG9mIHVzYWdlIG9mCj4+Pj4+ID4gbW9kdWxlLXNvdXJjZS1wYXRoLgo+Pj4+PiA+IC0tLS0KPj4+Pj4gPiBTd2l0Y2ggZnJvbSBMaXN0IHRvIENvbGxlY3Rpb24gdG8gbWFrZSBpdCBlYXNpZXIgdG8gdXNlIFNldHMgd2hlbgo+Pj4+PiA+IHByZWZlcnJlZAo+Pj4+PiA+IC0tLS0KPj4+Pj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgZm9yIG5leHQgZGV2ZWxvcG1lbnQgaXRlcmF0aW9uCj4+Pj4+ID4gLS0tLQo+Pj4+PiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSByZWxlYXNlIG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wCj4+Pj4+ID4gLS0tLQo+Pj4+PiA+Cj4+Pj4+ID4KPj4+Pj4gPgo+Pj4+PiA+Cj4+Pj4+ID4gT24gU2F0LCAxNiBEZWMgMjAxNyAxMjo1MzoyMyArMDEwMCwgSGVydj1DMz1BOSBCT1VURU1ZCj4+Pj4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4+Pj4+ID4KPj4+Pj4gPiB3cm90ZToKPj4+Pj4gPiA+IGxvb2tpbmcgYXQgY29tbWl0c0AgY29udGVudCBodHRwczovL2xpc3RzLmFwYWNoZS5vcmcvbGlzdC5odG1sPwo+Pj4+PiA+ID4gY29tbWl0c0BtYXZlbi5hcGFjaGUub3JnIHdpdGggc3ViamVjdCBjb250YWluaW5nCj4+Pj4+ICJtYXZlbi9wbHVnaW5zL3RydW5rIgo+Pj4+PiA+ID4KPj4+Pj4gPiA+IGFuZCBwbHVnaW5zIHN2bjJnaXQgbWlycm9yCj4+Pj4+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvY29tbWl0cy8KPj4+Pj4gPiA+IHRydW5rCj4+Pj4+ID4gPgo+Pj4+PiA+ID4gb25seSAxIGNvbW1pdCBpcyBtaXNzaW5nOiBteSBsYXRlc3QgY29tbWl0IG9uIG1hdmVuLXNpdGUtcGx1Z2luCj4+Pj4+ID4gPiAodGhlIGxhc3QgY29tbWl0IGZvciBHaXQgbWlncmF0aW9uIGlzIG5vdCB1c2VmdWwpCj4+Pj4+ID4gPgo+Pj4+PiA+ID4KPj4+Pj4gPiA+IFNhbWUgb24gc2hhcmVkIHNob3dlZCBubyBtaXNzaW5nIGNvbW1pdC4KPj4+Pj4gPiA+Cj4+Pj4+ID4gPgo+Pj4+PiA+ID4gd2hhdCBsYXRlc3QgY29tbWl0IG9mIG1hdmVuLWphdmFkb2MtcGx1Z2luIGFyZSB5b3UgbG9va2luZyBmb3I/Cj4+Pj4+ID4gPgo+Pj4+PiA+ID4gUmVnYXJkcywKPj4+Pj4gPiA+Cj4+Pj4+ID4gPiBIZXJ2PUMzPUE5Cj4+Pj4+ID4gPgo+Pj4+PiA+ID4gTGUgc2FtZWRpIDE2IGQ9QzM9QTljZW1icmUgMjAxNywgMTE6NTY6MzEgQ0VUIFJvYmVydCBTY2hvbHRlIGEgPQo9QzM9QTljcml0IDoKPj4+Pj4gPiA+PiBGb3IgZXZlcnlib2R5IGp1c3QgYSB3YXJuaW5nIEkgZmFjZWQgdG9kYXk6Cj4+Pj4+ID4gPj4gSWYgeW91IHN3aXRjaCB0byB0aGUgZ2l0IHJlcG9zLCBwbGVhc2UgbWFrZSBzdXJlIGFsbCBjb21taXRzIGFyZQo+Pj4+PiA+ID4+IG1pZ3JhdGVkLgo+Pj4+PiA+ID4+IEkgbm90aWNlZCB0aGUgbGF0ZXN0IGNvbW1pdHMgb2YgdGhlIG1hdmVuLWphdmFkb2MtcGx1Z2luIGdvdCBsb3M9CnQuCj4+Pj4+ID4gPj4KPj4+Pj4gPiA+PiB0aGFua3MsCj4+Pj4+ID4gPj4gUm9iZXJ0Cj4+Pj4+ID4gPj4KPj4+Pj4gPiA+PiBPbiBTYXQsIDA5IERlYyAyMDE3IDE3OjA2OjA5ICswMTAwLCBTdGVwaGVuIENvbm5vbGx5Cj4+Pj4+ID4gPj4KPj4+Pj4gPiA+PiA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4+Pj4+ID4gPj4gPiBJIHNlZSB3ZSBoYXZlIGEgbGFyZ2UgbnVtYmVyIG9mIHJlcG9zIG5vdyBvbiBnaXRib3ggOy0pCj4+Pj4+ID4gPj4gPgo+Pj4+PiA+ID4+ID4gT24gVGh1IDcgRGVjIDIwMTcgYXQgMDc6MDAsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUA9CmZyZWUuZnI+Cj4+Pj4+ID4gPj4KPj4+Pj4gPiA+PiB3cm90ZToKPj4+Pj4gPiA+PiA+PiBvaywgSSBkaWRuJ3QgdXBkYXRlIG15IHJlcG8gY2xvbmU6IG5vdyB0aGUgcnVuLWl0cyBwcm9maWxlIGlzCj4+Pj4+ID4gPj4KPj4+Pj4gPiA+PiBhY3RpdmF0ZWQKPj4+Pj4gPiA+Pgo+Pj4+PiA+ID4+ID4+IHRoZW4gdGhlIHBsYW4gc2hvdWxkIGp1c3QgY29uZmlybSAiaXQgd29ya3MhIiA6KQo+Pj4+PiA+ID4+ID4+Cj4+Pj4+ID4gPj4gPj4gYW5kIGZpbmQgd2hpY2ggam9icyBhcmUgc3BlY2lhbCwgbGlrZSBtYXZlbi1kaXN0LXRvb2wgKHdoaWNoCj4+Pj4+IGhhcyB0bwo+Pj4+PiA+ID4+Cj4+Pj4+ID4gPj4gYmUKPj4+Pj4gPiA+Pgo+Pj4+PiA+ID4+ID4+IHNjaGVkdWxlZCBkYWlseSBpbnN0ZWFkIG9mIGNvZGUgY2hhbmdlLCBhbmQgb25lIHBsYXRmb3JtIG9ubHk9CikKPj4+Pj4gPiA+PiA+Pgo+Pj4+PiA+ID4+ID4+IFJlZ2FyZHMsCj4+Pj4+ID4gPj4gPj4KPj4+Pj4gPiA+PiA+PiBIZXJ2PUMzPUE5Cj4+Pj4+ID4gPj4gPj4KPj4+Pj4gPiA+PiA+PiBMZSBtZXJjcmVkaSA2IGQ9QzM9QTljZW1icmUgMjAxNywgMjM6NTg6NDUgQ0VUIFN0ZXBoZW4gQ29ubm9sPQpseSBhCj4+Pj4+ID1DMz1BOWNyaXQgOgo+Pj4+PiA+ID4+ID4+ID4gT24gV2VkIDYgRGVjIDIwMTcgYXQgMjI6MzgsIEhlcnY9QzM9QTkgQk9VVEVNWQo+Pj4+PiA8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+Pj4+PiA+ID4+ID4+Cj4+Pj4+ID4gPj4gPj4gd3JvdGU6Cj4+Pj4+ID4gPj4gPj4gPiA+IE5vdyB0aGF0IHdlIGhhdmUgMiBBU0YgT3JnYW5pemF0aW9uIEplbmtpbnMgam9icyAob25lIGZvcgo+Pj4+PiBnaXRib3gKPj4+Pj4gPiA+Pgo+Pj4+PiA+ID4+IFsxXQo+Pj4+PiA+ID4+Cj4+Pj4+ID4gPj4gPj4gYW5kCj4+Pj4+ID4gPj4gPj4KPj4+Pj4gPiA+PiA+PiA+ID4gb25lCj4+Pj4+ID4gPj4gPj4gPiA+IGZvciBnaXQtd2lwOiB0aGFuayB5b3UgU3RlcGhlbikgYW5kIHRoYXQgaXQgbG9va3MgcXVpdGUKPj4+Pj4gPiA+Pgo+Pj4+PiA+ID4+IHN1Y2Nlc3NmdWwsCj4+Pj4+ID4gPj4KPj4+Pj4gPiA+PiA+PiBsZXQncwo+Pj4+PiA+ID4+ID4+Cj4+Pj4+ID4gPj4gPj4gPiA+IHBsYW4KPj4+Pj4gPiA+PiA+PiA+ID4gdGhlIG5leHQgc3RlcHMuCj4+Pj4+ID4gPj4gPj4gPiA+Cj4+Pj4+ID4gPj4gPj4gPiA+IEhlcmUgaXMgd2hhdCBJIHNlZToKPj4+Pj4gPiA+PiA+PiA+ID4gMS4gcmVtb3ZhbCBvZiBoYW5kLWRlZmluZWQgSmVua2lucyBqb2JzIHRoYXQgYXJlIG5vdwo+Pj4+PiBkdXBsaWNhdGVzCj4+Pj4+ID4gPj4gPj4gPiA+Cj4+Pj4+ID4gPj4gPj4gPiA+IDIuIHByZXBhcmF0aW9uIG9mIHRoZSA2MCBuZXcgZW1wdHkgZ2l0IHJlcG9zIGZvciBzaGFyZWQgJgo+Pj4+PiA+ID4+ID4+ID4gPiBwbHVnaW5zCj4+Pj4+ID4gPj4gPj4gPiA+Cj4+Pj4+ID4gPj4gPj4gPiA+IDMuIG1pZ3JhdGlvbiBvZiB0aGUgMSBzaGFyZWQgY29tcG9uZW50IGFuZCAxIHBsdWdpbiB1c2luZwo+Pj4+PiA+ID4+ID4+Cj4+Pj4+ID4gPj4gPj4gbWlncmF0ZS0qLnNoCj4+Pj4+ID4gPj4gPj4KPj4+Pj4gPiA+PiA+PiA+ID4gc2NyaXB0cwo+Pj4+PiA+ID4+ID4+ID4gPiBbM10gdG8gdGVzdCBhbmQgZXZlbnR1YWxseSByZXdvcmsgdGhlIEplbmtpbnNmaWxlIChJCj4+Pj4+IHN1cHBvc2UgaXQKPj4+Pj4gPiA+Pgo+Pj4+PiA+ID4+IHdpbGwKPj4+Pj4gPiA+Pgo+Pj4+PiA+ID4+ID4+ID4gPiByZXF1aXJlCj4+Pj4+ID4gPj4gPj4gPiA+IHNvbWUgbGl0dGxlIGNoYW5nZSwgdG8gcnVuIGFkZCAicnVuLWl0cyIgcHJvZmlsZSkKPj4+Pj4gPiA+PiA+PiA+Cj4+Pj4+ID4gPj4gPj4gPiBBcyBmYXIgYXMgSSByZWNhbGwsIEkgYWRkZWQgLVArcnVuLWl0cyBhbHJlYWR5Cj4+Pj4+ID4gPj4gPj4gPgo+Pj4+PiA+ID4+ID4+ID4gRm9yIHRoZSBwbHVnaW4sIEknZCBsaWtlIHRvIGRvIHRoZSBqb2IgZm9yIG1hdmVuLXNpdGUtcGx1Z2k9Cm4sCj4+Pj4+ID4gPj4KPj4+Pj4gPiA+PiBzaW5jZSB3ZQo+Pj4+PiA+ID4+Cj4+Pj4+ID4gPj4gPj4gPiA+IGV4cGVjdAo+Pj4+PiA+ID4+ID4+ID4gPiB0byByZWxlYXNlIGl0IHNvb24uCj4+Pj4+ID4gPj4gPj4gPiA+IEZvciB0aGUgc2hhcmVkIGNvbXBvbmVudCwgSSBkb24ndCBrbm93IGlmIHRoZXJlIGlzIGEgYmVzdAo+Pj4+PiA+ID4+Cj4+Pj4+ID4gPj4gY2FuZGlkYXRlCj4+Pj4+ID4gPj4KPj4+Pj4gPiA+PiA+PiA+ID4gNC4gb25jZSBwcmV2aW91cyBzdGVwIGlzIG9rLCBkbyB0aGUgZnVsbCBtaWdyYXRpb246IGlmCj4+Pj4+IHRoZXJlIGFyZQo+Pj4+PiA+ID4+ID4+ID4gPiB2b2x1bnRlZXJzCj4+Pj4+ID4gPj4gPj4gPiA+IGZvciBoZWxwaW5nLCB0aGF0IHdvdWxkIGJlIGdyZWF0LCBzaW5jZSBwb3B1bGF0aW5nIDYwIGdpdAo+Pj4+PiByZXBvcwo+Pj4+PiA+ID4+ID4+Cj4+Pj4+ID4gPj4gPj4gd29uJ3QKPj4+Pj4gPiA+PiA+PiBiZQo+Pj4+PiA+ID4+ID4+Cj4+Pj4+ID4gPj4gPj4gPiA+IHJlYWxseSBmdW4uLi4KPj4+Pj4gPiA+PiA+PiA+ID4KPj4+Pj4gPiA+PiA+PiA+ID4gQW5kIGFzIHBhcnQgb2YgNjAgZW1wdHkgZ2l0IHJlcG9zIGNyZWF0aW9uLCBJIHByb3Bvc2UgdG8KPj4+Pj4gbWlncmF0ZQo+Pj4+PiA+ID4+Cj4+Pj4+ID4gPj4gdGhlCj4+Pj4+ID4gPj4KPj4+Pj4gPiA+PiA+PiA+ID4gIkdvb2dsZQo+Pj4+PiA+ID4+ID4+ID4gPiByZXBvIG1hbmlmZXN0IiBtYXZlbi1hZ2dyZWdhdG9yIFs0XSB0byBBU0Y6IG15IHBlcnNvbmFsCj4+Pj4+IHVzZSBoYXMKPj4+Pj4gPiA+Pgo+Pj4+PiA+ID4+IGJlZW4KPj4+Pj4gPiA+Pgo+Pj4+PiA+ID4+ID4+IHF1aXRlCj4+Pj4+ID4gPj4gPj4KPj4+Pj4gPiA+PiA+PiA+ID4gc3VjY2Vzc2Z1bCwgSSBob3BlIGl0J3MgdGhlIHNhbWUgZm9yIG90aGVycy4gUGVyaGFwcwo+Pj4+PiB0aGVyZSBhcmUKPj4+Pj4gPiA+PiA+Pgo+Pj4+PiA+ID4+ID4+IGJldHRlcgo+Pj4+PiA+ID4+ID4+Cj4+Pj4+ID4gPj4gPj4gPiA+IGlkZWFzCj4+Pj4+ID4gPj4gPj4gPiA+IGZvciBpdHMgbmFtZTogbWF2ZW4tYWdncmVnYXRvcgo+Pj4+PiA+ID4+ID4+ID4gPgo+Pj4+PiA+ID4+ID4+ID4gPiBBbnkgb3RoZXIgaWRlYT8gYW55IG9iamVjdGlvbj8KPj4+Pj4gPiA+PiA+PiA+ID4KPj4+Pj4gPiA+PiA+PiA+ID4gUmVnYXJkcywKPj4+Pj4gPiA+PiA+PiA+ID4KPj4+Pj4gPiA+PiA+PiA+ID4gSGVydj1DMz1BOQo+Pj4+PiA+ID4+ID4+ID4gPgo+Pj4+PiA+ID4+ID4+ID4gPiBbMV0KPj4+Pj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvCj4+Pj4+ID4gPj4gPj4gPiA+Cj4+Pj4+ID4gPj4gPj4gPiA+IFsyXQo+Pj4+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLXdpcC8KPj4+Pj4gPiA+PiA+PiA+ID4KPj4+Pj4gPiA+PiA+PiA+ID4gWzNdCj4+Pj4+ID4gPj4KPj4+Pj4gPiA+PiBodHRwczovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy9tYXZlbi9zYW5kYm94L3RydW5rL3NjcmlwdHMvZ2l0Lwo+Pj4+PiA+ID4+Cj4+Pj4+ID4gPj4gPj4gPiA+IFs0XSBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tYWdncmVnYXRvcgo+Pj4+PiA+ID4+ID4+Cj4+Pj4+ID4gPj4gPj4KPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDgzMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gRGVjIDI1IDA4OjU4OjQ4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDgzMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA2Nzg3NTEwQzdBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMjUgRGVjIDIwMTcgMDg6NTg6NDggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4Nzc5OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNSBEZWMgMjAxNyAwODo1ODo0NyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODc3MDIgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgRGVjIDIwMTcgMDg6NTg6NDcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NzY5MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI1IERlYyAyMDE3IDA4OjU4OjQ3IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAyNSBEZWMgMjAxNyAwODo1ODo0NyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDFDQTdFQzNENDgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDI1IERlYyAyMDE3IDA4OjU4OjQ3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC42NzkKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC42NzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglLQU1fQVNDSUlfRElWSURFUlM9MC44LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDhScklldlQ3ZEpkUSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMjUgRGVjIDIwMTcgMDg6NTg6NDUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC1sZjAtZjY2Lmdvb2dsZS5jb20gKG1haWwtbGYwLWY2Ni5nb29nbGUuY29tIFsyMDkuODUuMjE1LjY2XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDAxODQ3NUY0NzQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDI1IERlYyAyMDE3IDA4OjU4OjQ1ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLWxmMC1mNjYuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgZzYzc28xNTE4Mjg0OGxmbC4xMQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDI1IERlYyAyMDE3IDAwOjU4OjQ0IC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvCiAgICAgICAgIDpjb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOwogICAgICAgIGJoPUE3aHRsMm0rdHJYblNzZm0zV3hINmlLRWhielVLOUJjVGt5Uy83cE1CVG89OwogICAgICAgIGI9RmM4RFdGL01BMlJxMGI2alhFSmdhMm5jMkJlblNpWksxYmV5cGgxaU5XNWkxVFdZTmZUQUlhamFlZGVMZWFROXpYCiAgICAgICAgIFhxamJ1amc4Nit1NkMzZGgvNkh6SGF1aEVGYnNUV2lKWGdXbnJrc3c0THlsMmc3OUNMMlhvMVViVlR0eGpwUHRJR3plCiAgICAgICAgIDN1bG1OT0RhQVFPT2d0YmxJUkZha0ZLTGwyaEkvN2x5VDVkb2t3c0gzRndnYmhDaVJCZzJyNW9BSWtMVUNtTi9hdTE5CiAgICAgICAgIGRyMytBY0xjeHdKTFRPeWFuLy85K092VGgyNWVaUnVPb3V6VXZwY0pxMmRLdlBrcmpGRHBlMVpGWllCcmR1dmJ3ZElrCiAgICAgICAgIG1haVhVNnJhSG9XQ3V6OU9NeDdWSGlSU0srQUl3QnhXY2JZSmpybm1qeUt5TkJMdDhWZVpmaFpoak4yUjlNM0RjV1J5CiAgICAgICAgIG5pb1E9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOmNvbnRlbnQtdHJhbnNmZXItZW5jb2Rpbmc7CiAgICAgICAgYmg9QTdodGwybSt0clhuU3NmbTNXeEg2aUtFaGJ6VUs5QmNUa3lTLzdwTUJUbz07CiAgICAgICAgYj11RnlzRnEvbllyYTBXU0JnT2RNUlVEVWZLOG9ST1pXMk9tSmE5NXVHUUw3R042cEtFSGd4aytMcGpuV1lGeStQU28KICAgICAgICAgQXc2Z3JxTkdpT1FDT2p6S0piMU4yTDNYalh2WU5GdzhLVkFPL0phVmVLaWRBeWl0MkdIbk9rN2lxYzZuOEo0TkpaVXQKICAgICAgICAgTkxaUVlzSEFvWWVsdTRNdU1HWnNzdFZRc1F2TkV4cFZoNm1GbnRuRndoT1dSN1huS0YrZG1mVWN6WUg2d1RTb1dxUGcKICAgICAgICAgSHVLb1J3Z1A5aUlCdzZVbmZxKzIwNFBadXM3bndnMUg2Sy9TYU5RSEZ0MExKV0VoQlJTdFdWbDhZelNyR01xY1ltM0kKICAgICAgICAgb28rVXA4TVk0am84R1MwZ09WbDh1RFl4UUR0RlpaVUh6R0NiRDNOTzdyVXFYUG5hSjRtaHNpVklDVXRtK1N4Z2EzRHAKICAgICAgICAgMWtkdz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUtHQjNtS2FBVXNmL28rNE13M2VvRjd1MjYvdmdsMUNVVjB4TlJkZTQrcWJ2aWRqdmxDRHowMW0KCUhLTTJEQzIvbVRJQThkVHhDUU4xZUdtZE9hSlh5dlp4SDFqTWl1d0dBQ29pClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQ0pmQm9zcDZneXBLNjZvd2dxLytYSjhlaGs2aDRLUjVOWHlyVmc2cmZhRDRHK0xWdHIvV1lndEtRUTZ1REZvUjBITXlpM0MwUzBNWW5aNG44OFdSZ3FkbGRNPQpYLVJlY2VpdmVkOiBieSAxMC40Ni4yMi4xIHdpdGggU01UUCBpZCB3MW1yNzE0ODc1M2xqZC42OS4xNTE0MTkyMzE3ODIzOyBNb24sCiAyNSBEZWMgMjAxNyAwMDo1ODozNyAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMjUuMjIxLjEzNyB3aXRoIEhUVFA7IE1vbiwgMjUgRGVjIDIwMTcgMDA6NTg6MzYgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDwyMDA5NzY1NTkyLjIyOTcyMjE3LjE1MTQxMDkyNTY2MzIuSmF2YU1haWwucm9vdEBzcG9vbGVyNC1nMjc+ClJlZmVyZW5jZXM6IDw3MzhjOTlkMy00NDQxLTc0MWUtMTZkZi03NDdjNWY0ZjViMWNAZ214LmRlPiA8MjAwOTc2NTU5Mi4yMjk3MjIxNy4xNTE0MTA5MjU2NjMyLkphdmFNYWlsLnJvb3RAc3Bvb2xlcjQtZzI3PgpGcm9tOiBQbGFtZW4gVG90ZXYgPHBsYW1lbi5pdi50b3RldkBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMjUgRGVjIDIwMTcgMTA6NTg6MzYgKzAyMDAKTWVzc2FnZS1JRDogPENBTGFUZUNwTT1FQlo3c1ZDdzVHdFBNaXpRc016V250S1dmQjVSOXJGN2NuaEI0ZGt2Z0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtJTVBPUlRBTlRdIFJlOiBHaXQgbWlncmF0aW9uIG5leHQgc3RlcHMKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkhpLAoKV2hhdCBJIGNhbiBzZWUgaXMgdGhhdCB0aGUgdGFncyBhY3R1YWxseSBpbnRyb2R1Y2UgbmV3IGJyYW5jaGVzIHRoYXQKY29udGFpbiBjb21taXRzIHdpdGggdGhlIHNhbWUgY29udGVudCBhcyB0aGUgb25lIGluIHRoZSBtYXN0ZXIgKHRydW5rKQpicmFuY2guIEJ1dCB0aGlzIGlzIG5vdCBjYXVzZWQgYnkgdGhlIHNjcmlwdCB0aGF0IHNwbGl0cyBvZiB0aGUKcmVwb3NpdG9yeSAtIHRoZSBwcm9ibGVtIGV4aXN0cyBpbiB0aGUgbWF2ZW4tcGx1Z2lucyBHaXQgcmVwb3NpdG9yeSBhcwp3ZWxsLiBNYXliZSBpdCdzIG5vdCBxdWl0ZSB2aXNpYmxlIGJlY2F1c2UgdGhlcmUgYXJlIGEgbG90IG9mIGNvbW1pdHMsCmJ1dCBpdCdzIHRoZXJlLgoKSG93IGNhbiBpdCBiZSBmaXhlZD8gSSB0aGluayBpdCB3b3VsZCBiZSBlYXNpZXIgdG8gZml4IHRoZSBpbmRpdmlkdWFsCnBsdWdpbiByZXBvc2l0b3JpZXMgKGFmdGVyIHRoZSBzcGxpdCkgYXMgdGhleSBhcmUgc21hbGxlciBhbmQgZWFzaWVyCnRvIHdvcmsgd2l0aC4gVGhlIHBsYW4gaXMgc2ltcGxlIC0gYXMgdGhlIGJyYW5jaGVzIGNyZWF0ZWQgYnkgdGhlIHRhZ3MKZG9lcyBub3QgY29udGFpbiBuZXcgY29tbWl0cyh3aXRoIGEgc2luZ2xlIGV4Y2VwdGlvbiBidXQgSSdsbCBleHBsYWluCnRoYXQgaW4gYSBtaW51dGUpIGFuZCBhbGwgb2YgdGhlbSBhcmUgcHJlc2VudCBpbiB0aGUgbWFzdGVyIGJyYW5jaCAgd2UKY291bGQganVzdCBjaGFuZ2UgdGhlIHRhZyB0byBwb2ludCB0byB0aGUgc2FtZSBjb21taXRzIGJ1dCBpbiB0aGUKbWFzdGVyIGJyYW5jaC4gVGhhdCB3aWxsIGNhdXNlIGFsbCBleHRyYSBjb21taXRzIGFuZCBicmFuY2hlcyB0byBiZQpnYXJiYWdlIGNvbGxlY3RlZCBhcyB0aGV5IGFyZSBhY2Nlc3NpYmxlIG9ubHkgZnJvbSB0aGUgdGFncy4gRm9yIG91cgpwdXJwb3NlcyBjb21taXRzIGFyZSBlcXVhbCBpZiB0aGV5IHBvaW50IHRvIHRoZSBzYW1lIHJvb3QgdHJlZSAodGhlCnNhbWUgZmlsZXMgd2l0aCB0aGUgc2FtZSBjb250ZW50KS4gQnV0IHVuZm9ydHVuYXRlbHkgdGhlcmUgaXMgYSBjYXRjaC4KV2hhdCBJIHNhaWQgYWJvdXQgdGhlIGJyYW5jaGVzIGNyZWF0ZWQgYnkgdGhlIHRhZ3MgaXMgbm90IHN0cmljdGx5CnRydWUgLSB0aGV5IGRvIGhhdmUgc29tZSBleHRyYSBjb21taXRzLiBXaGVuIHlvdSByZWxlYXNlIGluIFNWTiB5b3UKaGF2ZSB0aGUgZm9sbG93aW5nIHNlcXVlbmNlIG9mIGNvbW1pdHM6CgoqIFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gY29weSBmb3IgdGFnIG1hdmVuLXdhci1wbHVnaW4tMy4yLjAgKHRoaXMgaXMKdGhlIHRhZ2dlZCBjb21taXQpCiogW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIHJlbGVhc2UgbWF2ZW4td2FyLXBsdWdpbi0zLjIuMAoKQWZ0ZXIgdGhlIG1pZ3JhdGlvbiB0byBHaXQgdGhlIG1hc3RlciAodHJ1bmspIGJyYW5jaCBjb250YWluIG9ubHkgdGhlCidwcmVwYXJlIHJlbGVhc2UnIGNvbW1pdCBidXQgbm90IHRoZSAnY29weSBmb3IgdGFnJyBjb21taXQuIFNvIGlmIHdlCmFwcGx5IG15IHBsYW4gdGhlbiB0aGUgJ2NvcHkgZm9yIHRhZycgY29tbWl0IHdpbGwgYmUgbG9zdC4gSXQncyBqdXN0IGEKY29weSAobm8gY2hhbmdlcywgaXQgY29udGFpbnMgdGhlIHNhbWUgZmlsZXMgYXMgdGhlIHByZXZpb3VzIGNvbW1pdCkKc28gSSBkb24ndCB0aGluayBpdCdzIGEgcHJvYmxlbSBidXQgd291bGQgYmUgbmljZSBpZiBzb21lYm9keQpjb25maXJtcy4KClNvIHRoZSBwcm9wb3NlZCBwbGFuIGhhdmUgdGhlIGZvbGxvd2luZyBjYXZlYXRzOgoKKiB0aGUgJ2NvcHkgZm9yIHRhZycgY29tbWl0cyB3aWxsIGJlIGxvc3QuIE5vIGNoYW5nZXMgd2lsbCBiZSBsb3N0IGFzCnRob3NlIGFyZSBvbmx5IGNvcHkgY29tbWl0cwoqIHRoZSB0YWdzIHdpbGwgcG9pbnQgdG8gdGhlIHByZXZpb3VzICdwcmVwYXJlIHJlbGVhc2UnIGNvbW1pdHMKKiB0aGUgdGFncyBTSEEgd2lsbCBiZSBjaGFuZ2VkIGJlY2F1c2UgdGhleSBwb2ludCB0byBhIGRpZmZlcmVudCBjb21taXQKCklmIHRoYXQgaXMgT0sgSSBjYW4gd3JpdGUgYSBzY3JpcHQgdGhhdCB3aWxsIGFwcGx5IHRob3NlIGNoYW5nZXMuCgpXaGF0IGNhdXNlcyB0aGUgYnJhbmNoZXMgYW5kIGFsbCB0aG9zZSBkdXBsaWNhdGluZyBjb21taXRzPyBXZWxsIHRoZQptYXN0ZXIgYnJhbmNoIHRyYWNrcwpodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9jb21wb25lbnRzL3RydW5rL21hdmVuLXBsdWdpbnMKYnV0IHRoZSB0YWdzIGZvciB0aGUgcGx1Z2lucyBhcmUgYWN0dWFsbHkgdHJhY2tpbmcgdGhlIHBsdWdpbgpkaXJlY3RvcnkgKGZvciBleGFtcGxlOgpodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9jb21wb25lbnRzL3RydW5rL21hdmVuLXBsdWdpbnMvbWF2ZW49Ci13YXItcGx1Z2luKS4KU28gZm9yIG1hdmVuLXdhci1wbHVnaW5zIHlvdSBoYXZlIHR3byBjb21taXRzIGluIHRoZSBtYXZlbi1wbHVnaW5zIEdpdApyZXBvc2l0b3J5IC0gb25lIGZvcgpodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9jb21wb25lbnRzL3RydW5rL21hdmVuLXBsdWdpbnMvbWF2ZW49Ci13YXItcGx1Z2luCmFuZCBvbmUgZm9yIGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2NvbXBvbmVudHMvdHJ1bmsvCm5vIG1hdHRlciB0aGF0IGFjdHVhbGx5IHRob3NlIGNvbW1pdHMgYXJlIHRoZSBzYW1lIC0gc2FtZSBkYXRlLAphdXRob3IsIG1lc3NhZ2UsIGZpbGVzLCBldGMuCgpSZWdhcmRzLApQbGFtZW4gVG90ZXYKCk9uIFN1biwgRGVjIDI0LCAyMDE3IGF0IDExOjU0IEFNLCAgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3JvdGU6Cj4gSSdkIHN1Z2dlc3QgdG8gdHJ5IHRoZSBwcm9jZXNzIHRvIGEgcGVyc29uYWwgcGVyc29uYWwgcmVwbyBvbiBHaXRIdWIgdG8gcz0KZWUgaWYgeW91J3JlIGFibGUgdG8gZ2V0IGEgYmV0dGVyIHJlc3VsdCBiZWZvcmUgaW52b2x2aW5nIG1hbnVhbCB3b3JrIGZyb20gPQpJTkZSQSAob24gbW9yZSB0aGFuIDYwIHJlcG9zLi4uKQo+Cj4gKGl0J3Mgc2FkIHRvIHNlZSBub2JvZHkgdHJ5IHRvIGV4cGxhaW4gd2hhdCdzIGhhcHBlbm5pbmcgb3IgaW1wcm92ZSB0aGUgZD0Kb2N1bWVudGVkIGNvbW1hbmRzLCBqdXN0IGdldCB0byBhIGNvbmNsdXNpb246IHJlLWRvIGV2ZXJ5dGhpbmcgYW5kIHByYXkpCj4KPiBSZWdhcmRzLAo+Cj4gSGVydj1DMz1BOQo+Cj4gLS0tLS0gTWFpbCBvcmlnaW5hbCAtLS0tLQo+IERlOiAiS2FybCBIZWlueiBNYXJiYWlzZSIgPGtobWFyYmFpc2VAZ214LmRlPgo+ID1DMz04MDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwgIlJvYmVydCBTY2hvbHRlIiA9CjxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KPiBFbnZveT1DMz1BOTogRGltYW5jaGUgMjQgRD1DMz1BOWNlbWJyZSAyMDE3IDEwOjQ3OjQzCj4gT2JqZXQ6IFJlOiBbSU1QT1JUQU5UXSBSZTogR2l0IG1pZ3JhdGlvbiBuZXh0IHN0ZXBzCj4KPiBIaSwKPgo+IE9uIDI0LzEyLzE3IDEwOjQwLCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPj4gSG93IGFib3V0IGEgaGFyZCByZXNldCBvciBkcm9wcGluZyB0aGUgcmVwbyBhbmQgZG9pbmcgaXQgYWxsIG92ZXIgYWdhaW4/Cj4KPiBJZiBJIGNvcnJlY3RseSBzZWVuIHRoYXQgLi50aGVyZSBoYWQgbm8gY29tbWl0IHlldCBvbiB0aGUgbmV3IGdpdCByZXBvcy4uCj4KPiBTbyBJIHRoaW5rIGl0IHdvdWxkIGJlIHRoZSBlYXNpZXN0IHdheSB0byBkbyBhcyBSb2JlcnQgc3VnZ2VzdCAuLi50bwo+IHJlZG8gbWlncmF0aW9uIGZvciB0aG9zZSByZXBvcy4uCj4KPiBLaW5kIHJlZ2FyZHMKPiBLYXJsIEhlaW56Cj4+Cj4+IE9uIFdlZCwgMjAgRGVjIDIwMTcgMTA6NDI6MzYgKzAxMDAsIEhlcnY9QzM9QTkgQk9VVEVNWQo+PiA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cm90ZToKPj4KPj4+IElORlJBLTE1Njc5IGZpeGVkIGJ5IGluZnJhIHRlYW0KPj4+IHRoZW4gSSByZS1ydW4gbWlncmF0ZS1wbHVnaW5zLnNoIHNjcmlwdCB0byBzcGxpdCB0aGUgc3ZuMmdpdCBtaXJyb3IgdG8KPj4+IHBlci0KPj4+IHBsdWdpbiBnaXQgcmVwbwo+Pj4gYW5kIEkgcHVzaGVkICJtYXN0ZXIyIiBicmFuY2hlcyBmb3IgbS1qYXZhZG9jLXAsIG0tc2l0ZS1wIGFuZCBtLXBkZi1wLAo+Pj4gd2hpY2gKPj4+IHdlcmUgdGhlIDMgcGx1Z2lucyB3aGljaCBzdWZmZXJlZCBmcm9tIG1pc3NpbmcgY29tbWl0cwo+Pj4KPj4+IG9uIG0tc2l0ZS1wIGFuZCBtLXBkZi1wLCBJJ2xsIGNoZXJyeSBwaWNrIHRoZSB1bmlxdWUgY29tbWl0IHRoYXQgd2FzCj4+PiBtaXNzZWQ6Cj4+PiBub3QgYSBiaWcgZGVhbAo+Pj4KPj4+IG9uIG0tamF2YWRvYy1wLCB0aGUgc2l0dWF0aW9uIGlzIG1vcmUgY29wbGV4LCBzaW5jZSB0aGVyZSB3YXMgYSByZWxlYXNlCj4+Pgo+Pj4gSSBhbHNvIG5vdGljZWQgdGhhdCBJIGZvcmdvdCB0byBwdXNoIHRhZ3Mgd2hlbiBpbXBvcnRpbmc6IEkgc3RhcnRlZCB0bwo+Pj4gZG8gImdpdAo+Pj4gcHVzaCAtLXRhZ3MiLCBidXQgdGhlIHJlc3VsdCBkb2VzIG5vdCBsb29rIGFzIEkgZXhwZWN0ZWQ6IGl0IGNyZWF0ZXMgYQo+Pj4gbG90IG9mCj4+PiBwYXJhbGxlbCBicmFuY2hlcwo+Pj4KPj4+IEknbGwgbmVlZCBoZWxwIGZyb20gZ2l0IGV4cGVydHM6IHdoYXQgaXMgaGFwcGVuaW5nPwo+Pj4KPj4+IEkgc3RvcHBlZCB0aGUgdGFncyBwdXNoIGhhbGYgdGhlIHdheSwgd2UnbGwgbmVlZCB0byBkZWNpZGUgd2hhdCB0byBkby4uPQouCj4+PiAoSSBrbmV3IEkgd2FzIG5vdCBhIGdpdCBleHBlcnQgYW5kIHRoZXJlIHdhcyBhIHJpc2sgZm9yIHNvbWV0aGluZwo+Pj4gd2VpcmQgbGlrZQo+Pj4gd2hhdCdzIGN1cnJlbnRseSBoYXBwZW5pbmcuLi4pCj4+Pgo+Pj4gQW55IGhpbnQ/Cj4+Pgo+Pj4gUmVnYXJkcywKPj4+Cj4+PiBIZXJ2PUMzPUE5Cj4+Pgo+Pj4gTGUgc2FtZWRpIDE2IGQ9QzM9QTljZW1icmUgMjAxNywgMTY6Mjg6NDggQ0VUIEhlcnY9QzM9QTkgQk9VVEVNWSBhID1DMz0KPUE5Y3JpdCA6Cj4+Pj4gb2ssIEkgd2FzIGNvbmZ1c2VkIGJ5IHRoZSBkaWZmZXJlbnQgdGFrZXMgYXQgbS1qYXZhZG9jLXAgMy4wLjAKPj4+Pgo+Pj4+IHllcywgc3ZuMmdpdCBtaXJyb3IgaXMgc3R1Y2sgWzFdIGF0IHIxODE1Njc1Cj4+Pj4KPj4+PiBJIGp1c3Qgb3BlbmVkIGFuIElORlJBIEppcmEgaXNzdWUKPj4+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0lORlJBLTE1Njc5Cj4+Pj4KPj4+PiBvbmNlIHRoZSBzdm4yZ2l0IG1pcnJvciB3aWxsIGJlIHVwZGF0ZWQsIHdlJ2xsIGhhdmUgdG8gcmUtcnVuIHRoZSBzcGxpPQp0Cj4+Pj4gc2NyaXB0cyBhbmQgY2hlcnJ5IHBpY2sgdGhlIG1pc3NpbmcgY29tbWl0cwo+Pj4+Cj4+Pj4gUmVnYXJkcywKPj4+Pgo+Pj4+IEhlcnY9QzM9QTkKPj4+Pgo+Pj4+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvY29tbWl0cy90cnVuawo+Pj4+Cj4+Pj4gTGUgc2FtZWRpIDE2IGQ9QzM9QTljZW1icmUgMjAxNywgMTM6MDE6MDUgQ0VUIFJvYmVydCBTY2hvbHRlIGEgPUMzPUE5Yz0Kcml0IDoKPj4+PiA+IEkgd2FzIHRyaWdnZXJlZCBieSBzb21lIGZhaWxpbmcgdW5pdCB0ZXN0cywgd2hpY2ggc2hvdWxkIGhhdmUgYmVlbgo+Pj4+IHNvbHZlZAo+Pj4+ID4gaW4gbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAKPj4+PiA+Cj4+Pj4gPiBNeSBsYXN0IGNvbW1pdCBhY2NvcmRpbmcgdG8gR0lUIHdhcyBub3ZlbWJlciAxOHRoCj4+Pj4gPiBNeSBsYXN0IGNvbW1pdCBhY2NvcmRpbmcgdG8gU1ZOIHdhcyBkZWNlbWJlciAzcmQKPj4+PiA+Cj4+Pj4gPiBjb21wYXJpbmcgc3ZubG9nIHdpdGggZ2l0bG9nIG1vc3Qgb2YgdGhlc2UgY29tbWl0cyBhcmUgbG9zdDoKPj4+PiA+Cj4+Pj4gPiBtb3ZlZCB0byBnaXQKPj4+PiA+IC0tLS0KPj4+PiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSBmb3IgbmV4dCBkZXZlbG9wbWVudCBpdGVyYXRpb24KPj4+PiA+IC0tLS0KPj4+PiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSByZWxlYXNlIG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wCj4+Pj4gPiAtLS0tCj4+Pj4gPiBbTUpBVkFET0MtNDk4XSAibW9kdWxlIG5vdCBmb3VuZCIgd2hlbiBKYXZhIDkgbW9kdWxlLWluZm8gcHJlc2VudAo+Pj4+ID4gU3VwcG9ydCBhZ2dyYXRlZCBqYXZhZG9jCj4+Pj4gPiAtLS0tCj4+Pj4gPiBTa2lwIHNldmVyYWwgdW5pdHRlc3RzIGZvciBKYXZhOQo+Pj4+ID4gLS0tLQo+Pj4+ID4gSkRLLTgwMzIyMDUgd2FzIGNsb3NlZCBhcyBub3QgYW4gaXNzdWUsIHNvIG5vdCBzb2x2ZWQgaW4gSmF2YTkuCj4+Pj4gPiBOZWVkIHRvIHJldmlldyB0aGUgY29uY2x1c2lvbgo+Pj4+ID4gLS0tLQo+Pj4+ID4gVXBncmFkZSBtb2NraXRvIHRvIHJlbW92ZSB3YXJuaW5nIGFib3V0IGlsbGVnYWwgcmVmbGVjdGl2ZSBhY2Nlc3MKPj4+PiA+IC0tLS0KPj4+PiA+IEltcHJvdmUgVGVzdEphdmFkb2NSZXBvcnRUZXN0I3Rlc3RUZXN0SmF2YWRvYwo+Pj4+ID4gSjggd2FybnMgYW5kIGNvbnRpbnVlcyB3aXRoIG1pc3NpbmcgZGVwZW5kZW5jeSwgSjkgZmFpbHMuCj4+Pj4gPiBJbiBmYWN0IHRlc3Qgd2FzIHdyb25nOiBkZXBlbmRlbmN5IHNob3VsZCBoYXZlIGJlZW4gb24gY2xhc3NwYXRoCj4+Pj4gPiAtLS0tCj4+Pj4gPiB1bml0dGVzdCBzaG91bGQgcHJlZmVyIEpBVkFfSE9NRSB3aGVuIGV4ZWN1dGluZyBmcm9tIGNtZGxpbmUKPj4+PiA+IFdoZW4gcnVubmluZyB3aXRoIEphdmE5KyBubyBuZWVkIHRvIHN3aXRjaCBmcm9tIGpyZSB0byBqZGsgZGlyZWN0b3J5Cj4+Pj4gPiAoamVwMjIwKQo+Pj4+ID4gLS0tLQo+Pj4+ID4gTUpBVkFET0MtNTAyIFVwZGF0ZSBERUZBVUxUX0pBVkFfQVBJX0xJTktTCj4+Pj4gPiAtLS0tCj4+Pj4gPiBzZXNzaW9uIGlzIHJlcXVpcmVkIHBhcmFtZXRlciwgc28gY2Fubm90IGJlIG51bGwuIEZpeCByZWxhdGVkCj4+Pj4gdW5pdHRlc3RzCj4+Pj4gPiAtLS0tCj4+Pj4gPiBBZGQgcHJvamVjdC9hcnRpZmFjdCBrZXkgdG8gc2V0IG9mIHNvdXJjZVBhdGhzIHRvIHJlY29nbml6ZSByZWFjdG9yCj4+Pj4gPiBwcm9qZWN0cyB2ZXJzdXMgZGVwZW5kZW5jaWVzCj4+Pj4gPiAtLS0tCj4+Pj4gPiBHcm91cCBzZXRzIG9mIHNvdXJjZXBhdGhzIHBlciBwcm9qZWN0LCBpbiBwcmVwYXJlIG9mIHVzYWdlIG9mCj4+Pj4gPiBtb2R1bGUtc291cmNlLXBhdGguCj4+Pj4gPiAtLS0tCj4+Pj4gPiBTd2l0Y2ggZnJvbSBMaXN0IHRvIENvbGxlY3Rpb24gdG8gbWFrZSBpdCBlYXNpZXIgdG8gdXNlIFNldHMgd2hlbgo+Pj4+ID4gcHJlZmVycmVkCj4+Pj4gPiAtLS0tCj4+Pj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgZm9yIG5leHQgZGV2ZWxvcG1lbnQgaXRlcmF0aW9uCj4+Pj4gPiAtLS0tCj4+Pj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgcmVsZWFzZSBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+Pj4+ID4gLS0tLQo+Pj4+ID4KPj4+PiA+Cj4+Pj4gPgo+Pj4+ID4KPj4+PiA+IE9uIFNhdCwgMTYgRGVjIDIwMTcgMTI6NTM6MjMgKzAxMDAsIEhlcnY9QzM9QTkgQk9VVEVNWQo+Pj4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4+Pj4gPgo+Pj4+ID4gd3JvdGU6Cj4+Pj4gPiA+IGxvb2tpbmcgYXQgY29tbWl0c0AgY29udGVudCBodHRwczovL2xpc3RzLmFwYWNoZS5vcmcvbGlzdC5odG1sPwo+Pj4+ID4gPiBjb21taXRzQG1hdmVuLmFwYWNoZS5vcmcgd2l0aCBzdWJqZWN0IGNvbnRhaW5pbmcKPj4+PiAibWF2ZW4vcGx1Z2lucy90cnVuayIKPj4+PiA+ID4KPj4+PiA+ID4gYW5kIHBsdWdpbnMgc3ZuMmdpdCBtaXJyb3IKPj4+PiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL2NvbW1pdHMvCj4+Pj4gPiA+IHRydW5rCj4+Pj4gPiA+Cj4+Pj4gPiA+IG9ubHkgMSBjb21taXQgaXMgbWlzc2luZzogbXkgbGF0ZXN0IGNvbW1pdCBvbiBtYXZlbi1zaXRlLXBsdWdpbgo+Pj4+ID4gPiAodGhlIGxhc3QgY29tbWl0IGZvciBHaXQgbWlncmF0aW9uIGlzIG5vdCB1c2VmdWwpCj4+Pj4gPiA+Cj4+Pj4gPiA+Cj4+Pj4gPiA+IFNhbWUgb24gc2hhcmVkIHNob3dlZCBubyBtaXNzaW5nIGNvbW1pdC4KPj4+PiA+ID4KPj4+PiA+ID4KPj4+PiA+ID4gd2hhdCBsYXRlc3QgY29tbWl0IG9mIG1hdmVuLWphdmFkb2MtcGx1Z2luIGFyZSB5b3UgbG9va2luZyBmb3I/Cj4+Pj4gPiA+Cj4+Pj4gPiA+IFJlZ2FyZHMsCj4+Pj4gPiA+Cj4+Pj4gPiA+IEhlcnY9QzM9QTkKPj4+PiA+ID4KPj4+PiA+ID4gTGUgc2FtZWRpIDE2IGQ9QzM9QTljZW1icmUgMjAxNywgMTE6NTY6MzEgQ0VUIFJvYmVydCBTY2hvbHRlIGEgPUMzPQo9QTljcml0IDoKPj4+PiA+ID4+IEZvciBldmVyeWJvZHkganVzdCBhIHdhcm5pbmcgSSBmYWNlZCB0b2RheToKPj4+PiA+ID4+IElmIHlvdSBzd2l0Y2ggdG8gdGhlIGdpdCByZXBvcywgcGxlYXNlIG1ha2Ugc3VyZSBhbGwgY29tbWl0cyBhcmUKPj4+PiA+ID4+IG1pZ3JhdGVkLgo+Pj4+ID4gPj4gSSBub3RpY2VkIHRoZSBsYXRlc3QgY29tbWl0cyBvZiB0aGUgbWF2ZW4tamF2YWRvYy1wbHVnaW4gZ290IGxvc3Q9Ci4KPj4+PiA+ID4+Cj4+Pj4gPiA+PiB0aGFua3MsCj4+Pj4gPiA+PiBSb2JlcnQKPj4+PiA+ID4+Cj4+Pj4gPiA+PiBPbiBTYXQsIDA5IERlYyAyMDE3IDE3OjA2OjA5ICswMTAwLCBTdGVwaGVuIENvbm5vbGx5Cj4+Pj4gPiA+Pgo+Pj4+ID4gPj4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Pj4+ID4gPj4gPiBJIHNlZSB3ZSBoYXZlIGEgbGFyZ2UgbnVtYmVyIG9mIHJlcG9zIG5vdyBvbiBnaXRib3ggOy0pCj4+Pj4gPiA+PiA+Cj4+Pj4gPiA+PiA+IE9uIFRodSA3IERlYyAyMDE3IGF0IDA3OjAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZj0KcmVlLmZyPgo+Pj4+ID4gPj4KPj4+PiA+ID4+IHdyb3RlOgo+Pj4+ID4gPj4gPj4gb2ssIEkgZGlkbid0IHVwZGF0ZSBteSByZXBvIGNsb25lOiBub3cgdGhlIHJ1bi1pdHMgcHJvZmlsZSBpcwo+Pj4+ID4gPj4KPj4+PiA+ID4+IGFjdGl2YXRlZAo+Pj4+ID4gPj4KPj4+PiA+ID4+ID4+IHRoZW4gdGhlIHBsYW4gc2hvdWxkIGp1c3QgY29uZmlybSAiaXQgd29ya3MhIiA6KQo+Pj4+ID4gPj4gPj4KPj4+PiA+ID4+ID4+IGFuZCBmaW5kIHdoaWNoIGpvYnMgYXJlIHNwZWNpYWwsIGxpa2UgbWF2ZW4tZGlzdC10b29sICh3aGljaAo+Pj4+IGhhcyB0bwo+Pj4+ID4gPj4KPj4+PiA+ID4+IGJlCj4+Pj4gPiA+Pgo+Pj4+ID4gPj4gPj4gc2NoZWR1bGVkIGRhaWx5IGluc3RlYWQgb2YgY29kZSBjaGFuZ2UsIGFuZCBvbmUgcGxhdGZvcm0gb25seSkKPj4+PiA+ID4+ID4+Cj4+Pj4gPiA+PiA+PiBSZWdhcmRzLAo+Pj4+ID4gPj4gPj4KPj4+PiA+ID4+ID4+IEhlcnY9QzM9QTkKPj4+PiA+ID4+ID4+Cj4+Pj4gPiA+PiA+PiBMZSBtZXJjcmVkaSA2IGQ9QzM9QTljZW1icmUgMjAxNywgMjM6NTg6NDUgQ0VUIFN0ZXBoZW4gQ29ubm9sbD0KeSBhCj4+Pj4gPUMzPUE5Y3JpdCA6Cj4+Pj4gPiA+PiA+PiA+IE9uIFdlZCA2IERlYyAyMDE3IGF0IDIyOjM4LCBIZXJ2PUMzPUE5IEJPVVRFTVkKPj4+PiA8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+Pj4+ID4gPj4gPj4KPj4+PiA+ID4+ID4+IHdyb3RlOgo+Pj4+ID4gPj4gPj4gPiA+IE5vdyB0aGF0IHdlIGhhdmUgMiBBU0YgT3JnYW5pemF0aW9uIEplbmtpbnMgam9icyAob25lIGZvcgo+Pj4+IGdpdGJveAo+Pj4+ID4gPj4KPj4+PiA+ID4+IFsxXQo+Pj4+ID4gPj4KPj4+PiA+ID4+ID4+IGFuZAo+Pj4+ID4gPj4gPj4KPj4+PiA+ID4+ID4+ID4gPiBvbmUKPj4+PiA+ID4+ID4+ID4gPiBmb3IgZ2l0LXdpcDogdGhhbmsgeW91IFN0ZXBoZW4pIGFuZCB0aGF0IGl0IGxvb2tzIHF1aXRlCj4+Pj4gPiA+Pgo+Pj4+ID4gPj4gc3VjY2Vzc2Z1bCwKPj4+PiA+ID4+Cj4+Pj4gPiA+PiA+PiBsZXQncwo+Pj4+ID4gPj4gPj4KPj4+PiA+ID4+ID4+ID4gPiBwbGFuCj4+Pj4gPiA+PiA+PiA+ID4gdGhlIG5leHQgc3RlcHMuCj4+Pj4gPiA+PiA+PiA+ID4KPj4+PiA+ID4+ID4+ID4gPiBIZXJlIGlzIHdoYXQgSSBzZWU6Cj4+Pj4gPiA+PiA+PiA+ID4gMS4gcmVtb3ZhbCBvZiBoYW5kLWRlZmluZWQgSmVua2lucyBqb2JzIHRoYXQgYXJlIG5vdwo+Pj4+IGR1cGxpY2F0ZXMKPj4+PiA+ID4+ID4+ID4gPgo+Pj4+ID4gPj4gPj4gPiA+IDIuIHByZXBhcmF0aW9uIG9mIHRoZSA2MCBuZXcgZW1wdHkgZ2l0IHJlcG9zIGZvciBzaGFyZWQgJgo+Pj4+ID4gPj4gPj4gPiA+IHBsdWdpbnMKPj4+PiA+ID4+ID4+ID4gPgo+Pj4+ID4gPj4gPj4gPiA+IDMuIG1pZ3JhdGlvbiBvZiB0aGUgMSBzaGFyZWQgY29tcG9uZW50IGFuZCAxIHBsdWdpbiB1c2luZwo+Pj4+ID4gPj4gPj4KPj4+PiA+ID4+ID4+IG1pZ3JhdGUtKi5zaAo+Pj4+ID4gPj4gPj4KPj4+PiA+ID4+ID4+ID4gPiBzY3JpcHRzCj4+Pj4gPiA+PiA+PiA+ID4gWzNdIHRvIHRlc3QgYW5kIGV2ZW50dWFsbHkgcmV3b3JrIHRoZSBKZW5raW5zZmlsZSAoSQo+Pj4+IHN1cHBvc2UgaXQKPj4+PiA+ID4+Cj4+Pj4gPiA+PiB3aWxsCj4+Pj4gPiA+Pgo+Pj4+ID4gPj4gPj4gPiA+IHJlcXVpcmUKPj4+PiA+ID4+ID4+ID4gPiBzb21lIGxpdHRsZSBjaGFuZ2UsIHRvIHJ1biBhZGQgInJ1bi1pdHMiIHByb2ZpbGUpCj4+Pj4gPiA+PiA+PiA+Cj4+Pj4gPiA+PiA+PiA+IEFzIGZhciBhcyBJIHJlY2FsbCwgSSBhZGRlZCAtUCtydW4taXRzIGFscmVhZHkKPj4+PiA+ID4+ID4+ID4KPj4+PiA+ID4+ID4+ID4gRm9yIHRoZSBwbHVnaW4sIEknZCBsaWtlIHRvIGRvIHRoZSBqb2IgZm9yIG1hdmVuLXNpdGUtcGx1Z2luPQosCj4+Pj4gPiA+Pgo+Pj4+ID4gPj4gc2luY2Ugd2UKPj4+PiA+ID4+Cj4+Pj4gPiA+PiA+PiA+ID4gZXhwZWN0Cj4+Pj4gPiA+PiA+PiA+ID4gdG8gcmVsZWFzZSBpdCBzb29uLgo+Pj4+ID4gPj4gPj4gPiA+IEZvciB0aGUgc2hhcmVkIGNvbXBvbmVudCwgSSBkb24ndCBrbm93IGlmIHRoZXJlIGlzIGEgYmVzdAo+Pj4+ID4gPj4KPj4+PiA+ID4+IGNhbmRpZGF0ZQo+Pj4+ID4gPj4KPj4+PiA+ID4+ID4+ID4gPiA0LiBvbmNlIHByZXZpb3VzIHN0ZXAgaXMgb2ssIGRvIHRoZSBmdWxsIG1pZ3JhdGlvbjogaWYKPj4+PiB0aGVyZSBhcmUKPj4+PiA+ID4+ID4+ID4gPiB2b2x1bnRlZXJzCj4+Pj4gPiA+PiA+PiA+ID4gZm9yIGhlbHBpbmcsIHRoYXQgd291bGQgYmUgZ3JlYXQsIHNpbmNlIHBvcHVsYXRpbmcgNjAgZ2l0Cj4+Pj4gcmVwb3MKPj4+PiA+ID4+ID4+Cj4+Pj4gPiA+PiA+PiB3b24ndAo+Pj4+ID4gPj4gPj4gYmUKPj4+PiA+ID4+ID4+Cj4+Pj4gPiA+PiA+PiA+ID4gcmVhbGx5IGZ1bi4uLgo+Pj4+ID4gPj4gPj4gPiA+Cj4+Pj4gPiA+PiA+PiA+ID4gQW5kIGFzIHBhcnQgb2YgNjAgZW1wdHkgZ2l0IHJlcG9zIGNyZWF0aW9uLCBJIHByb3Bvc2UgdG8KPj4+PiBtaWdyYXRlCj4+Pj4gPiA+Pgo+Pj4+ID4gPj4gdGhlCj4+Pj4gPiA+Pgo+Pj4+ID4gPj4gPj4gPiA+ICJHb29nbGUKPj4+PiA+ID4+ID4+ID4gPiByZXBvIG1hbmlmZXN0IiBtYXZlbi1hZ2dyZWdhdG9yIFs0XSB0byBBU0Y6IG15IHBlcnNvbmFsCj4+Pj4gdXNlIGhhcwo+Pj4+ID4gPj4KPj4+PiA+ID4+IGJlZW4KPj4+PiA+ID4+Cj4+Pj4gPiA+PiA+PiBxdWl0ZQo+Pj4+ID4gPj4gPj4KPj4+PiA+ID4+ID4+ID4gPiBzdWNjZXNzZnVsLCBJIGhvcGUgaXQncyB0aGUgc2FtZSBmb3Igb3RoZXJzLiBQZXJoYXBzCj4+Pj4gdGhlcmUgYXJlCj4+Pj4gPiA+PiA+Pgo+Pj4+ID4gPj4gPj4gYmV0dGVyCj4+Pj4gPiA+PiA+Pgo+Pj4+ID4gPj4gPj4gPiA+IGlkZWFzCj4+Pj4gPiA+PiA+PiA+ID4gZm9yIGl0cyBuYW1lOiBtYXZlbi1hZ2dyZWdhdG9yCj4+Pj4gPiA+PiA+PiA+ID4KPj4+PiA+ID4+ID4+ID4gPiBBbnkgb3RoZXIgaWRlYT8gYW55IG9iamVjdGlvbj8KPj4+PiA+ID4+ID4+ID4gPgo+Pj4+ID4gPj4gPj4gPiA+IFJlZ2FyZHMsCj4+Pj4gPiA+PiA+PiA+ID4KPj4+PiA+ID4+ID4+ID4gPiBIZXJ2PUMzPUE5Cj4+Pj4gPiA+PiA+PiA+ID4KPj4+PiA+ID4+ID4+ID4gPiBbMV0KPj4+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC8KPj4+PiA+ID4+ID4+ID4gPgo+Pj4+ID4gPj4gPj4gPiA+IFsyXQo+Pj4+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4td2lwLwo+Pj4+ID4gPj4gPj4gPiA+Cj4+Pj4gPiA+PiA+PiA+ID4gWzNdCj4+Pj4gPiA+Pgo+Pj4+ID4gPj4gaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy92aWV3dmMvbWF2ZW4vc2FuZGJveC90cnVuay9zY3JpcHRzL2dpdC8KPj4+PiA+ID4+Cj4+Pj4gPiA+PiA+PiA+ID4gWzRdIGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1hZ2dyZWdhdG9yCj4+Pj4gPiA+PiA+Pgo+Pj4+ID4gPj4gPj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODQzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBEZWMgMjcgMDc6NDk6MjMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODQzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDhBOTc1MTdGNDkKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyNyBEZWMgMjAxNyAwNzo0OToyMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ3Njk2IGludm9rZWQgYnkgdWlkIDUwMCk7IDI3IERlYyAyMDE3IDA3OjQ5OjIzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0NzU3MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBEZWMgMjAxNyAwNzo0OToyMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ3NTYxIGludm9rZWQgYnkgdWlkIDk5KTsgMjcgRGVjIDIwMTcgMDc6NDk6MjIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDI3IERlYyAyMDE3IDA3OjQ5OjIyICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMDcwN0UxQTBBOTIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDI3IERlYyAyMDE3IDA3OjQ5OjIyICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC4zNzkKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC4zNzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGdXQlFwekM1SjZuaiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgMjcgRGVjIDIwMTcgMDc6NDk6MjEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC1sZjAtZjQ1Lmdvb2dsZS5jb20gKG1haWwtbGYwLWY0NS5nb29nbGUuY29tIFsyMDkuODUuMjE1LjQ1XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEU3ODUwNUYzRDAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDI3IERlYyAyMDE3IDA3OjQ5OjIwICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLWxmMC1mNDUuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgajEyNHNvNDE1MjQ3MzdsZmcuMgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDI2IERlYyAyMDE3IDIzOjQ5OjIwIC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWltOHMySW9nZDF2QjdZNWZUZjYxNjduYWZiL3dPQjFzMnFRNDRYeWdLRjg9OwogICAgICAgIGI9bHdRL0lac3pJM0VlUlB2aG1EYjlvRFB3WUdNR0wxOUhNWnVGdGxudlE3U25paDhhYzhjbEtURXBwNjdkTDBUTmxRCiAgICAgICAgIDVMaWVGL1ozQTZRdlRLcW5wT3NjV1huSW41QWV3elR1QW9PNnlkWnZsVXE3UXM5VzNWZkU2RzZmSkpXSTJTTllTYkNzCiAgICAgICAgIHpkcjRaUW1Zanp6QmlkU2lhSitmZkVacVljREs2RytBVENQZ21zNnpYbkJLUmNsbHdoRWZDcUJBS3hwVjgyR25FeUFSCiAgICAgICAgIEs3UUdBVElzSzF6ald2U0E5UTBjNWxneUlySTU1NEtxQ21EQ3ZXTkNiT1dLdm9JTUE3ZmMySWNlQVNQTjZXdXYwN1VWCiAgICAgICAgIEVJSFdldDBqMlZPMzREQUkxbjhkQUJyRUR2d1ppTFh6SWZEYk1DODBhdytIajl4YklmUWxWTWhXYXRscWJtSDdUMVNOCiAgICAgICAgIE9XUEE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWltOHMySW9nZDF2QjdZNWZUZjYxNjduYWZiL3dPQjFzMnFRNDRYeWdLRjg9OwogICAgICAgIGI9QyszbktIY0t3cEFLcTRxcjNUL09PVkFQUmlEbzl3bkdzQ0E5QktzZERXTXl5U3doeWF1RTRuVThvWVY1ZXE3bGVCCiAgICAgICAgIFA5b3IzOTdteUU5aEtIejR1Sjd0OHpTM1RTZ0hkUUxKd0FLRXVmN01jYXc0Skg3dWV5bHNwUXMvcCtWd3FiS1RIZ04vCiAgICAgICAgIHd1NHA1ZTE0SUQ4UzlMeE5tbnhocXJuMHM5cFlNMHhoZU9WVWQ1VWVqQkFQeXJiNlZ0cmh0N0FDeWo5dnMra0swZ2t6CiAgICAgICAgIC9PTFRDU3UzbkY0ZTAzQjVLU1pUdS9pc3dTR2ZmQmhuOWxpYllIOE40TENvSE9YYUNDTEYzNGtUNExuMS9JRUFiVGNXCiAgICAgICAgIGt4SDQzRUZyOENCNTZwY3JvSnpNaXFQaUM1Q1JRdStpOThJNVIvVzRwWlRHbGJ0cDVxVXcyYmwrenRSdHZyU2VuSEJSCiAgICAgICAgIGxGV3c9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFLR0IzbUs2RFNkaEJqZVdJMnZOK1Z4TjRMQ3BOMTByWTlxMjhrTWpXQnhTZGxLMFdMTTJHSGEyCglJMnNKeXFRVjYzQXZydkNQUmxvazZ0bWxQWFdkbnk4bW9pSE5TZ0l2NDlnZQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUNKZkJvdnpnVGNzN3hPY0taUHZNK1NnSGhrTnoxM3NyVFFQcjY0cUFZSUppNFRLSW9XRUZlNXd1dTh6QkM4YTdrVk1iWWFVNHpQR3NGaFp2eFAveGI3RngyQT0KWC1SZWNlaXZlZDogYnkgMTAuNDYuMjcuMjQgd2l0aCBTTVRQIGlkIGIyNG1yOTYxNjk3MWxqYi41NC4xNTE0MzYwOTUzNDk5OyBUdWUsCiAyNiBEZWMgMjAxNyAyMzo0OToxMyAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMjUuMjIxLjEzNyB3aXRoIEhUVFA7IFR1ZSwgMjYgRGVjIDIwMTcgMjM6NDk6MTIgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDxDQUxhVGVDbzAtLV9wNmR1TkYzYzAzY1ZGTzRYdlR2bzNZbmR3Q2pfSDc0WFJ2b3daQWdAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDw5NTBkZTI4MC01OTI4LTRmZTMtYWNhOC0wOTIzNDE1MjRjNjZAZ214LmRlPiA8Q0FMYVRlQ28wLS1fcDZkdU5GM2MwM2NWRk80WHZUdm8zWW5kd0NqX0g3NFhSdm93WkFnQG1haWwuZ21haWwuY29tPgpGcm9tOiBQbGFtZW4gVG90ZXYgPHBsYW1lbi5pdi50b3RldkBnbWFpbC5jb20+CkRhdGU6IFdlZCwgMjcgRGVjIDIwMTcgMDk6NDk6MTIgKzAyMDAKTWVzc2FnZS1JRDogPENBTGFUZUNwYlo5YUMrcWRTa1QxUk0yaEJxRT1NY19iTHZiZkFDSGgtc2dVeW5INDhQd0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IG1hdmVuLWFyY2hpdmVyIGJ1aWxkIG9uIEplbmtpbnMgLSBUZXN0IEZhaWx1cmVzClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwgaW5mb0Bzb2ViZXMuZGUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCkFuZCBpZiB0aGlzIGNvdWxkIGhlbHAgKEkga25vdyBpdCdzIG9idmlvdXMgYnV0IG1heSBzYWZlIHRpbWUpIGl0Cmxvb2tzIHRoZSByZWFzb24gZm9yIHRoZSBmYWlsaW5nIHRlc3RzIGlzIHRoZSBzYW1lLiBUaGUgZm9sbG93aW5nIGNvZGUKZmFpbHMgd2l0aCBhc3NlcnRpb24gZXJyb3I6CgogICAgICAgIGZpbmFsIE1hbmlmZXN0IG1hbmlmZXN0ID0gZ2V0SmFyRmlsZU1hbmlmZXN0KCBqYXJGaWxlICk7CiAgICAgICAgU3RyaW5nIGNsYXNzUGF0aCA9IG1hbmlmZXN0LmdldE1haW5BdHRyaWJ1dGVzKCkuZ2V0VmFsdWUoCkF0dHJpYnV0ZXMuTmFtZS5DTEFTU19QQVRIICk7CiAgICAgICAgYXNzZXJ0Tm90TnVsbCggY2xhc3NQYXRoICk7CgpUaGUgTnVsbFBvaW50ZXJFeGNlcHRpb25zIGZyb20gdGhlIHJlc3Qgb2YgdGhlIHRlc3RzIGFyZSBjb21pbmcgZnJvbQp0aGUgc2FtZSBleHByZXNzaW9uIChgbWFuaWZlc3QuZ2V0TWFpbkF0dHJpYnV0ZXMoKS5nZXRWYWx1ZSgKIkNsYXNzLVBhdGgiICkuZ2V0Qnl0ZXMoKWApLgoKT24gV2VkLCBEZWMgMjcsIDIwMTcgYXQgOTozOSBBTSwgUGxhbWVuIFRvdGV2IDxwbGFtZW4uaXYudG90ZXZAZ21haWwuY29tPiB3cm90ZToKPiBIaSwKPgo+IE9uIFR1ZSwgRGVjIDI2LCAyMDE3IGF0IDk6MDEgUE0sIEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPiB3cm90ZToKPgo+PiBJcyBzb21lb25lIG91dCB0aGVyZSB3aG8gY2FuIGNoZWNrIHRoZSBjdXJyZW50IHN0YXRlIG9mIG1hdmVuLWFyY2hpdmVyIGdpdAo+PiByZXBvIG9uIFdpbmRvd3MgYW5kIGNhbiByZXByb2R1Y2UgdGhlIGlzc3VlID8KPgo+IEkgcmFuIHRoZSBidWlsZCBhIGNvdXBsZSBvZiB0aW1lcyhqdXN0IGluIGNhc2UpIG9uIFdpbmRvd3MgMTAsIE1hdmVuCj4gMy41LjIsIEpESyA5LjAuMSBhbmQgZXZlcnl0aGluZyBpcyBvay4gQW5kIGl0IGxvb2tzIGxpa2UgdGhlIGJ1aWxkIGlzCj4gZmFpbGluZyBvbiBMaW51eCBKREsgOSBhbmQgV2luZG93cyBKREsgOCBhcyB3ZWxsLCBzbyBpZiB0aGVyZSBpcyBhIGJ1Zwo+IChhbmQgbm90IGEgcHJvYmxlbSB3aXRoIHRoZSBidWlsZCkgdGhlbiBpdCBpcyBwcm9iYWJseSBub3QgYSBXaW5kb3dzCj4gb3IgSkRLIDkgcmVsYXRlZC4KPgo+IFJlZ2FyZHMsCj4gUGxhbWVuIFRvdGV2CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4NzUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIERlYyAyOSAwOToyNjoyNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4NzUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMzMyQjExNzFEMgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDI5IERlYyAyMDE3IDA5OjI2OjI0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTAyNzggaW52b2tlZCBieSB1aWQgNTAwKTsgMjkgRGVjIDIwMTcgMDk6MjY6MjMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkwMTc4IGludm9rZWQgYnkgdWlkIDUwMCk7IDI5IERlYyAyMDE3IDA5OjI2OjIzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTAxNjYgaW52b2tlZCBieSB1aWQgOTkpOyAyOSBEZWMgMjAxNyAwOToyNjoyMyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMjkgRGVjIDIwMTcgMDk6MjY6MjMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBFRjk2NjE4MDE2NAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjkgRGVjIDIwMTcgMDk6MjY6MjIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjE3OQpYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuMTc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJS0FNX0FTQ0lJX0RJVklERVJTPTAuOCwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgbnhQN3VLNUZJWUtOIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJRnJpLCAyOSBEZWMgMjAxNyAwOToyNjoyMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLWxmMC1mNDIuZ29vZ2xlLmNvbSAobWFpbC1sZjAtZjQyLmdvb2dsZS5jb20gWzIwOS44NS4yMTUuNDJdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMEI0Qjg1RkIyOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjkgRGVjIDIwMTcgMDk6MjY6MjAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtbGYwLWY0Mi5nb29nbGUuY29tIHdpdGggU01UUCBpZCBnNjNzbzI1NTE4MjM2bGZsLjExCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjkgRGVjIDIwMTcgMDE6MjY6MTkgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG8KICAgICAgICAgOmNvbnRlbnQtdHJhbnNmZXItZW5jb2Rpbmc7CiAgICAgICAgYmg9Tk1kWVM0SUMzTXNzZnY3Y2czTFBzUnB1dlZUVHJwWGtrYzBiQ3pEdG9ibz07CiAgICAgICAgYj1jdVV3TVkrL1hGeGg4OFdQMDFlZFdYTExUR3NsQU1JaFdYa1dSM05Xdmc0bkFEVEgxQnpNMFVoQThCak42ZEVQTlUKICAgICAgICAgNUhzQWVjeFJOM2FuQ1I1RUF5MlV2YzdlOEhVaHdHOTJRK3M3TWFsNk9KTEhKOTkzclQwelNRN2kxTGhyQ1lpOTBrT3EKICAgICAgICAgcDZxd1k1ZGNkTlZFOEdsNXZvc0p3NE1YZ2dYaW5tT3Ixek1pS1AxYzFMSjRuS2dSeGw2SXZ0WmlNMmtqV084RkN1MDcKICAgICAgICAgYzRDaCtxcHVLeUl4bk5TUk9EcXNYRDcrNnJQdCtLK0NnU3NBU2RBQW9XUEpkbjJvZTBSVDE0dUxIZ3d5R0FDQTF5Q00KICAgICAgICAgcTY2YWtxVTgrZGpVQ3pHQ1JLYmxMUnFjd1RlSzhiVUlzV1JGUmpYOWNVQ21jenE0L3FwS2lFZ1ZiSlVVRTNoOGtCTmYKICAgICAgICAgVFVxUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG86Y29udGVudC10cmFuc2Zlci1lbmNvZGluZzsKICAgICAgICBiaD1OTWRZUzRJQzNNc3NmdjdjZzNMUHNScHV2VlRUcnBYa2tjMGJDekR0b2JvPTsKICAgICAgICBiPUxpLzB0VVpSNloyeUtwQjJxTHNnSFlNQVRCblo2NWlKNzNVaVZJWnFyVHI3YUM3R3JvNFRvelYrMjNZM1UvOGsxbwogICAgICAgICAzbFYwcFhxRVByS1FNY3dUWThMTE1OMmRUNlRKZFpwWjVZYjN6aFZPeTYrSzF1RE9kS2NEdWt5SVBsKy9vRkNlZ3g4QQogICAgICAgICBjY3JMTlpTNExKWEgvNjJnQXB5R3B4YTlaNTZsbkVLR1ptYWtpS0lmODQ5ZHVGTyt4NnQ0cEpGV20welM5SWdqQmFqbgogICAgICAgICAzZi9TOUZXekFxOU5qOTVmRnZyTmppQ0xGNzVnQytOQkpEZGl5QnFGUmF6ZnliQm0rQ3FtYUE3aGthWmxRTmlmTjlRLwogICAgICAgICBsMkUvb1FSd0pZSHhlekZHOUdCdFB2bUpmSFMyY0F3VVkyaUhjUEFKbDI2cEE4cEIyT0R4V3AzTzVRdVN1Y1kwMG1UNQogICAgICAgICBKbUNBPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBS0dCM21MdW9VVklxY1g2RU9sejVlZmFjUW4vaXVEZjBrTG5qVDQ1bmFSVnVDeE9TRU9YU29aNAoJMFlWMlRDS0VubVpNWXorZWlVd1VaMkN2RXg1WStub1lxNyt0MzJRdkFBU04KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFDSmZCb3VCWURSK3orTU9wWTQ0eTVkeVRUclZkakhhUXJyajlCY3AyZkRiYnExZ2FJU0VrTHFtLzMxUVlLTEU5TzlwdkJMalFCRmhYOU9rWWsxOUpOYjhiK0U9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjI1LjE4MS4yMjEgd2l0aCBTTVRQIGlkIGc5MG1yMTU3OTk4ODFsZmsuOTguMTUxNDUzOTU3ODIzNzsKIEZyaSwgMjkgRGVjIDIwMTcgMDE6MjY6MTggLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjI1LjIyMS4xMzcgd2l0aCBIVFRQOyBGcmksIDI5IERlYyAyMDE3IDAxOjI2OjE3IC0wODAwIChQU1QpCkluLVJlcGx5LVRvOiA8MjU2NTg1NC44MEo4THgydkx1QGdpZ2E+ClJlZmVyZW5jZXM6IDw3MzhjOTlkMy00NDQxLTc0MWUtMTZkZi03NDdjNWY0ZjViMWNAZ214LmRlPiA8MjAwOTc2NTU5Mi4yMjk3MjIxNy4xNTE0MTA5MjU2NjMyLkphdmFNYWlsLnJvb3RAc3Bvb2xlcjQtZzI3PgogPENBTGFUZUNwTT1FQlo3c1ZDdzVHdFBNaXpRc016V250S1dmQjVSOXJGN2NuaEI0ZGt2Z0BtYWlsLmdtYWlsLmNvbT4gPDI1NjU4NTQuODBKOEx4MnZMdUBnaWdhPgpGcm9tOiBQbGFtZW4gVG90ZXYgPHBsYW1lbi5pdi50b3RldkBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMjkgRGVjIDIwMTcgMTE6MjY6MTcgKzAyMDAKTWVzc2FnZS1JRDogPENBTGFUZUNyTytPN01UZFF4VVVjVDlIbzdIQVVfTmFPOWFCMEpNRThFcU5xd19lYl80QUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtJTVBPUlRBTlRdIFJlOiBHaXQgbWlncmF0aW9uIG5leHQgc3RlcHMKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkhpLAoKSSd2ZSBjcmVhdGVkIHRoZSBzY3JpcHQuIE5vdCBzdXJlIGhvdyB0byBzaGFyZSBpdCB3aXRoIHRoZSBsaXN0IHNvCkkndmUgY3JlYXRlZCBhIGdpc3QgLQpodHRwczovL2dpc3QuZ2l0aHViLmNvbS9wbGFtZW50b3Rldi9iODM1ZGQ2MmM3NGEzYTViZWNkNGMzMTdiOTc0MDNhNAoKSXQgd2lsbCBtaWdyYXRlIHRoZSB0YWdzIGZvciBhbGwgcmVwb3NpdG9yaWVzIGluIHBsdWdpbnMvbWF2ZW4tKiBBbHNvCml0IGNoZWNrcyBmb3IgdGhlICdnaXQtc3ZuJyBzdHJpbmcgaW4gdGhlIGNvbW1pdCBtZXNzYWdlIHNvIGl0IHdpbGwKbm90IG1pZ3JhdGUgdGFncyBjcmVhdGVkIGFmdGVyIHRoZSBnaXQgbWlncmF0aW9uLgpBbmQgSSBoYXZlIGNvbW1lbnRlZCB0aGUgYGdpdCB0YWdgIGNvbW1hbmQgc28gYnkgZGVmYXVsdCBpdCB3aWxsIGJlCnJ1biBpbiAiZHJ5IG1vZGUiIHRoYXQgd2lsbCBwcmludCBhbGwgZXJyb3JzIGZvdW5kIHdpdGhvdXQgY2hhbmdpbmcKdGhlIHJlcG9zaXRvcmllcy4KClNwZWFraW5nIG9mIGVycm9ycyAtIHRoZXJlIGFyZSBhYm91dCAzMCB0YWdzIHRoYXQgY291bGQgbm90IGJlCmF1dG9tYXRpY2FsbHkgbWlncmF0ZWQuIFRoZXkgYXJlIGFjdHVhbGx5IHR3byBncm91cCBvZiBlcnJvcnM6CgoqIHRoZSAicHJlcGFyZSByZWxlYXNlIiBjb21taXQgZG9lcyBub3QgaGF2ZSB0aGUgc2FtZSBmaWxlcyBhcyB0aGUgdGFnCi0gbWVhbmluZyB0aGF0IG1vc3QgbGlrZWx5IHRoZSB0YWcgaW4gU1ZOIGlzIG5vdCBqdXN0IGEgY29weSBvZiB0aGUKInByZXBhcmUgcmVsZWFzZSIgY29tbWl0IGFuZCBjb250YWlucyBzb21lIGNoYW5nZXMgbWFkZSBhZnRlciB0aGF0CiogdGhlcmUgaXMgbm8gInByZXBhcmUgcmVsZWFzZSIgY29tbWl0IHJlYWNoYWJsZSBmcm9tIG1hc3Rlci4gVGhhdApjb3VsZCBtZWFuIHRoYXQgdGhlIHRhZyBpcyBub3QgY3JlYXRlZCBieSB0aGUgcmVsZWFzZSBwbHVnaW4gYW5kCnNvbWV0aW1lcyB0aGF0IGlzIHRoZSBjYXNlLCBidXQgaXQgbG9va3MgbGlrZSB0aGUgbWFqb3JpdHkgb2YgdGhlCmNhc2VzIGFyZSBiZWNhdXNlIHRoZSByZWxlYXNlIGlzIGNyZWF0ZWQgZnJvbSBicmFuY2ggYW5kIG5vdCBmcm9tCnRydW5rLiBBbmQgd2hpbGUgd2UncmUgb24gdGhlIHRvcGljIC0gbG9va3MgbGlrZSB0aGUgYnJhbmNoZXMgYXJlIG5vdAptaWdyYXRlZCBpbnRvIHRoZSBtYXZlbi1wbHVnaW5zIHJlcG9zaXRvcnkuCgpBbHNvIGFzIHRoZSBzY3JpcHQgbW9kaWZpZXMgdGhlIHRhZyBJIGZlbGwgb2JsaWdhdGVkIHRvIG1lbnRpb24gdGhlCnVzdWFsIHdhcm5pbmcgd2hlbiBjaGFuZ2luZyB0YWdzIC0KaHR0cHM6Ly9naXQtc2NtLmNvbS9kb2NzL2dpdC10YWcjX29uX2JhY2tkYXRpbmdfdGFncwoKUmVnYXJkcywKUGxhbWVuIFRvdGV2CgpPbiBUaHUsIERlYyAyOCwgMjAxNyBhdCAxMDo0MyBBTSwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI9Cj4gd3JvdGU6Cj4gSGkgUGxhbWVuLAo+Cj4gVGhhbmsgeW91IGZvciB5b3VyIGhlbHAKPgo+IFllcywgSSBsb29rZWQgbW9yZSBpbiBkZXB0aCB0byBtYXZlbi1wbHVnaW5zIHN2bjJnaXQgbWlycm9yIGFuZCB0aGUgc3BsaXQKPiByZXN1bHQgKGdvdCBmcm9tIHRoZSBzcGxpdCBzY3JpcHQpOiB0aGUgaXNzdWUgd2l0aCB0YWdzIGlzIGFscmVhZHkgdGhlcmUKPgo+IEkgbGlrZSB0aGUgaWRlYSBvZiByZWNyZWF0aW5nIHRhZ3MgZnJvbSAiW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlCj4gcmVsZWFzZSA8bmFtZSBvZiB0aGUgdGFnPiIgY29tbWl0LCBpZ25vcmluZyB0aGUgIlttYXZlbi1yZWxlYXNlLXBsdWdpbl0gYz0Kb3B5Cj4gZm9yIHRhZyA8bmFtZSBvZiB0aGUgdGFnPiIgY29tbWl0IHRoYXQgZG9uJ3QgY2hhbmdlIGFueXRoaW5nIGluIGNvZGUKPgo+IElmIHlvdSBjYW4gcHJlcGFyZSBhIHNjcmlwdCB0byBjcmVhdGUgdGhlIHRhZ3Mgd2l0aCB0aGlzIGNvbnZlbnRpb24sIGl0IHc9Cm91bGQKPiByZWFsbHkgYmUgdXNlZnVsIChkb24ndCBmb3JnZXQgdGhhdCBzb21ldGltZXMgdGhlcmUgYXJlIG11bHRpcGxlIHRyaWVzIGF0PQogb25lCj4gcmVsZWFzZSwgdGhlbiB0aGUgdXNlZnVsIHRhZyBpcyB0aGUgbGFzdCBvbmUgaW4gdGltZSkKPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUMzPUE5Cj4KPiBMZSBsdW5kaSAyNSBkPUMzPUE5Y2VtYnJlIDIwMTcsIDA5OjU4OjM2IENFVCBQbGFtZW4gVG90ZXYgYSA9QzM9QTljcml0IDoKPj4gSGksCj4+Cj4+IFdoYXQgSSBjYW4gc2VlIGlzIHRoYXQgdGhlIHRhZ3MgYWN0dWFsbHkgaW50cm9kdWNlIG5ldyBicmFuY2hlcyB0aGF0Cj4+IGNvbnRhaW4gY29tbWl0cyB3aXRoIHRoZSBzYW1lIGNvbnRlbnQgYXMgdGhlIG9uZSBpbiB0aGUgbWFzdGVyICh0cnVuaykKPj4gYnJhbmNoLiBCdXQgdGhpcyBpcyBub3QgY2F1c2VkIGJ5IHRoZSBzY3JpcHQgdGhhdCBzcGxpdHMgb2YgdGhlCj4+IHJlcG9zaXRvcnkgLSB0aGUgcHJvYmxlbSBleGlzdHMgaW4gdGhlIG1hdmVuLXBsdWdpbnMgR2l0IHJlcG9zaXRvcnkgYXMKPj4gd2VsbC4gTWF5YmUgaXQncyBub3QgcXVpdGUgdmlzaWJsZSBiZWNhdXNlIHRoZXJlIGFyZSBhIGxvdCBvZiBjb21taXRzLAo+PiBidXQgaXQncyB0aGVyZS4KPj4KPj4gSG93IGNhbiBpdCBiZSBmaXhlZD8gSSB0aGluayBpdCB3b3VsZCBiZSBlYXNpZXIgdG8gZml4IHRoZSBpbmRpdmlkdWFsCj4+IHBsdWdpbiByZXBvc2l0b3JpZXMgKGFmdGVyIHRoZSBzcGxpdCkgYXMgdGhleSBhcmUgc21hbGxlciBhbmQgZWFzaWVyCj4+IHRvIHdvcmsgd2l0aC4gVGhlIHBsYW4gaXMgc2ltcGxlIC0gYXMgdGhlIGJyYW5jaGVzIGNyZWF0ZWQgYnkgdGhlIHRhZ3MKPj4gZG9lcyBub3QgY29udGFpbiBuZXcgY29tbWl0cyh3aXRoIGEgc2luZ2xlIGV4Y2VwdGlvbiBidXQgSSdsbCBleHBsYWluCj4+IHRoYXQgaW4gYSBtaW51dGUpIGFuZCBhbGwgb2YgdGhlbSBhcmUgcHJlc2VudCBpbiB0aGUgbWFzdGVyIGJyYW5jaCAgd2UKPj4gY291bGQganVzdCBjaGFuZ2UgdGhlIHRhZyB0byBwb2ludCB0byB0aGUgc2FtZSBjb21taXRzIGJ1dCBpbiB0aGUKPj4gbWFzdGVyIGJyYW5jaC4gVGhhdCB3aWxsIGNhdXNlIGFsbCBleHRyYSBjb21taXRzIGFuZCBicmFuY2hlcyB0byBiZQo+PiBnYXJiYWdlIGNvbGxlY3RlZCBhcyB0aGV5IGFyZSBhY2Nlc3NpYmxlIG9ubHkgZnJvbSB0aGUgdGFncy4gRm9yIG91cgo+PiBwdXJwb3NlcyBjb21taXRzIGFyZSBlcXVhbCBpZiB0aGV5IHBvaW50IHRvIHRoZSBzYW1lIHJvb3QgdHJlZSAodGhlCj4+IHNhbWUgZmlsZXMgd2l0aCB0aGUgc2FtZSBjb250ZW50KS4gQnV0IHVuZm9ydHVuYXRlbHkgdGhlcmUgaXMgYSBjYXRjaC4KPj4gV2hhdCBJIHNhaWQgYWJvdXQgdGhlIGJyYW5jaGVzIGNyZWF0ZWQgYnkgdGhlIHRhZ3MgaXMgbm90IHN0cmljdGx5Cj4+IHRydWUgLSB0aGV5IGRvIGhhdmUgc29tZSBleHRyYSBjb21taXRzLiBXaGVuIHlvdSByZWxlYXNlIGluIFNWTiB5b3UKPj4gaGF2ZSB0aGUgZm9sbG93aW5nIHNlcXVlbmNlIG9mIGNvbW1pdHM6Cj4+Cj4+ICogW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBjb3B5IGZvciB0YWcgbWF2ZW4td2FyLXBsdWdpbi0zLjIuMCAodGhpcyBpcwo+PiB0aGUgdGFnZ2VkIGNvbW1pdCkKPj4gKiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgcmVsZWFzZSBtYXZlbi13YXItcGx1Z2luLTMuMi4wCj4+Cj4+IEFmdGVyIHRoZSBtaWdyYXRpb24gdG8gR2l0IHRoZSBtYXN0ZXIgKHRydW5rKSBicmFuY2ggY29udGFpbiBvbmx5IHRoZQo+PiAncHJlcGFyZSByZWxlYXNlJyBjb21taXQgYnV0IG5vdCB0aGUgJ2NvcHkgZm9yIHRhZycgY29tbWl0LiBTbyBpZiB3ZQo+PiBhcHBseSBteSBwbGFuIHRoZW4gdGhlICdjb3B5IGZvciB0YWcnIGNvbW1pdCB3aWxsIGJlIGxvc3QuIEl0J3MganVzdCBhCj4+IGNvcHkgKG5vIGNoYW5nZXMsIGl0IGNvbnRhaW5zIHRoZSBzYW1lIGZpbGVzIGFzIHRoZSBwcmV2aW91cyBjb21taXQpCj4+IHNvIEkgZG9uJ3QgdGhpbmsgaXQncyBhIHByb2JsZW0gYnV0IHdvdWxkIGJlIG5pY2UgaWYgc29tZWJvZHkKPj4gY29uZmlybXMuCj4+Cj4+IFNvIHRoZSBwcm9wb3NlZCBwbGFuIGhhdmUgdGhlIGZvbGxvd2luZyBjYXZlYXRzOgo+Pgo+PiAqIHRoZSAnY29weSBmb3IgdGFnJyBjb21taXRzIHdpbGwgYmUgbG9zdC4gTm8gY2hhbmdlcyB3aWxsIGJlIGxvc3QgYXMKPj4gdGhvc2UgYXJlIG9ubHkgY29weSBjb21taXRzCj4+ICogdGhlIHRhZ3Mgd2lsbCBwb2ludCB0byB0aGUgcHJldmlvdXMgJ3ByZXBhcmUgcmVsZWFzZScgY29tbWl0cwo+PiAqIHRoZSB0YWdzIFNIQSB3aWxsIGJlIGNoYW5nZWQgYmVjYXVzZSB0aGV5IHBvaW50IHRvIGEgZGlmZmVyZW50IGNvbW1pdAo+Pgo+PiBJZiB0aGF0IGlzIE9LIEkgY2FuIHdyaXRlIGEgc2NyaXB0IHRoYXQgd2lsbCBhcHBseSB0aG9zZSBjaGFuZ2VzLgo+Pgo+PiBXaGF0IGNhdXNlcyB0aGUgYnJhbmNoZXMgYW5kIGFsbCB0aG9zZSBkdXBsaWNhdGluZyBjb21taXRzPyBXZWxsIHRoZQo+PiBtYXN0ZXIgYnJhbmNoIHRyYWNrcwo+PiBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9jb21wb25lbnRzL3RydW5rL21hdmVuLXBsdWdpbnMKPj4gYnV0IHRoZSB0YWdzIGZvciB0aGUgcGx1Z2lucyBhcmUgYWN0dWFsbHkgdHJhY2tpbmcgdGhlIHBsdWdpbgo+PiBkaXJlY3RvcnkgKGZvciBleGFtcGxlOgo+PiBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9jb21wb25lbnRzL3RydW5rL21hdmVuLXBsdWdpbnMvbWE9CnZlbi0+IHdhci1wbHVnaW4pLiBTbyBmb3IgbWF2ZW4td2FyLXBsdWdpbnMgeW91IGhhdmUgdHdvIGNvbW1pdHMgaW4gdGhlCj4+IG1hdmVuLXBsdWdpbnMgR2l0IHJlcG9zaXRvcnkgLSBvbmUgZm9yCj4+IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2NvbXBvbmVudHMvdHJ1bmsvbWF2ZW4tcGx1Z2lucy9tYT0KdmVuLT4gd2FyLXBsdWdpbiBhbmQgb25lIGZvcgo+PiBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9jb21wb25lbnRzL3RydW5rLyBubyBtYXR0ZXIgdGhhdAo+PiBhY3R1YWxseSB0aG9zZSBjb21taXRzIGFyZSB0aGUgc2FtZSAtIHNhbWUgZGF0ZSwKPj4gYXV0aG9yLCBtZXNzYWdlLCBmaWxlcywgZXRjLgo+Pgo+PiBSZWdhcmRzLAo+PiBQbGFtZW4gVG90ZXYKPj4KPj4gT24gU3VuLCBEZWMgMjQsIDIwMTcgYXQgMTE6NTQgQU0sICA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cm90ZToKPj4gPiBJJ2Qgc3VnZ2VzdCB0byB0cnkgdGhlIHByb2Nlc3MgdG8gYSBwZXJzb25hbCBwZXJzb25hbCByZXBvIG9uIEdpdEh1YiB0PQpvCj4+ID4gc2VlIGlmIHlvdSdyZSBhYmxlIHRvIGdldCBhIGJldHRlciByZXN1bHQgYmVmb3JlIGludm9sdmluZyBtYW51YWwgd29yawo+PiA+IGZyb20gSU5GUkEgKG9uIG1vcmUgdGhhbiA2MCByZXBvcy4uLikKPj4gPgo+PiA+IChpdCdzIHNhZCB0byBzZWUgbm9ib2R5IHRyeSB0byBleHBsYWluIHdoYXQncyBoYXBwZW5uaW5nIG9yIGltcHJvdmUgdGg9CmUKPj4gPiBkb2N1bWVudGVkIGNvbW1hbmRzLCBqdXN0IGdldCB0byBhIGNvbmNsdXNpb246IHJlLWRvIGV2ZXJ5dGhpbmcgYW5kIHByPQpheSkKPj4gPgo+PiA+IFJlZ2FyZHMsCj4+ID4KPj4gPiBIZXJ2PUMzPUE5Cj4+ID4KPj4gPiAtLS0tLSBNYWlsIG9yaWdpbmFsIC0tLS0tCj4+ID4gRGU6ICJLYXJsIEhlaW56IE1hcmJhaXNlIiA8a2htYXJiYWlzZUBnbXguZGU+Cj4+ID4gPUMzPTgwOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LCAiUm9iZXJ0IFNjaG9sdD0KZSIKPj4gPiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+IEVudm95PUMzPUE5OiBEaW1hbmNoZSAyNCBEPUMzPUE5Y2VtYnJlIDIwMTcgMTA6PQo0Nzo0Mwo+PiA+IE9iamV0OiBSZTogW0lNUE9SVEFOVF0gUmU6IEdpdCBtaWdyYXRpb24gbmV4dCBzdGVwcwo+PiA+Cj4+ID4gSGksCj4+ID4KPj4gPiBPbiAyNC8xMi8xNyAxMDo0MCwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4+ID4+IEhvdyBhYm91dCBhIGhhcmQgcmVzZXQgb3IgZHJvcHBpbmcgdGhlIHJlcG8gYW5kIGRvaW5nIGl0IGFsbCBvdmVyIGFnYT0KaW4/Cj4+ID4KPj4gPiBJZiBJIGNvcnJlY3RseSBzZWVuIHRoYXQgLi50aGVyZSBoYWQgbm8gY29tbWl0IHlldCBvbiB0aGUgbmV3IGdpdCByZXBvPQpzLi4KPj4gPgo+PiA+IFNvIEkgdGhpbmsgaXQgd291bGQgYmUgdGhlIGVhc2llc3Qgd2F5IHRvIGRvIGFzIFJvYmVydCBzdWdnZXN0IC4uLnRvCj4+ID4gcmVkbyBtaWdyYXRpb24gZm9yIHRob3NlIHJlcG9zLi4KPj4gPgo+PiA+IEtpbmQgcmVnYXJkcwo+PiA+IEthcmwgSGVpbnoKPj4gPgo+PiA+PiBPbiBXZWQsIDIwIERlYyAyMDE3IDEwOjQyOjM2ICswMTAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkKPj4gPj4KPj4gPj4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3JvdGU6Cj4+ID4+PiBJTkZSQS0xNTY3OSBmaXhlZCBieSBpbmZyYSB0ZWFtCj4+ID4+PiB0aGVuIEkgcmUtcnVuIG1pZ3JhdGUtcGx1Z2lucy5zaCBzY3JpcHQgdG8gc3BsaXQgdGhlIHN2bjJnaXQgbWlycm9yID0KdG8KPj4gPj4+IHBlci0KPj4gPj4+IHBsdWdpbiBnaXQgcmVwbwo+PiA+Pj4gYW5kIEkgcHVzaGVkICJtYXN0ZXIyIiBicmFuY2hlcyBmb3IgbS1qYXZhZG9jLXAsIG0tc2l0ZS1wIGFuZCBtLXBkZi09CnAsCj4+ID4+PiB3aGljaAo+PiA+Pj4gd2VyZSB0aGUgMyBwbHVnaW5zIHdoaWNoIHN1ZmZlcmVkIGZyb20gbWlzc2luZyBjb21taXRzCj4+ID4+Pgo+PiA+Pj4gb24gbS1zaXRlLXAgYW5kIG0tcGRmLXAsIEknbGwgY2hlcnJ5IHBpY2sgdGhlIHVuaXF1ZSBjb21taXQgdGhhdCB3YXMKPj4gPj4+IG1pc3NlZDoKPj4gPj4+IG5vdCBhIGJpZyBkZWFsCj4+ID4+Pgo+PiA+Pj4gb24gbS1qYXZhZG9jLXAsIHRoZSBzaXR1YXRpb24gaXMgbW9yZSBjb3BsZXgsIHNpbmNlIHRoZXJlIHdhcyBhIHJlbGU9CmFzZQo+PiA+Pj4KPj4gPj4+IEkgYWxzbyBub3RpY2VkIHRoYXQgSSBmb3Jnb3QgdG8gcHVzaCB0YWdzIHdoZW4gaW1wb3J0aW5nOiBJIHN0YXJ0ZWQgPQp0bwo+PiA+Pj4gZG8gImdpdAo+PiA+Pj4gcHVzaCAtLXRhZ3MiLCBidXQgdGhlIHJlc3VsdCBkb2VzIG5vdCBsb29rIGFzIEkgZXhwZWN0ZWQ6IGl0IGNyZWF0ZXM9CiBhCj4+ID4+PiBsb3Qgb2YKPj4gPj4+IHBhcmFsbGVsIGJyYW5jaGVzCj4+ID4+Pgo+PiA+Pj4gSSdsbCBuZWVkIGhlbHAgZnJvbSBnaXQgZXhwZXJ0czogd2hhdCBpcyBoYXBwZW5pbmc/Cj4+ID4+Pgo+PiA+Pj4gSSBzdG9wcGVkIHRoZSB0YWdzIHB1c2ggaGFsZiB0aGUgd2F5LCB3ZSdsbCBuZWVkIHRvIGRlY2lkZSB3aGF0IHRvIGQ9Cm8uLi4KPj4gPj4+IChJIGtuZXcgSSB3YXMgbm90IGEgZ2l0IGV4cGVydCBhbmQgdGhlcmUgd2FzIGEgcmlzayBmb3Igc29tZXRoaW5nCj4+ID4+PiB3ZWlyZCBsaWtlCj4+ID4+PiB3aGF0J3MgY3VycmVudGx5IGhhcHBlbmluZy4uLikKPj4gPj4+Cj4+ID4+PiBBbnkgaGludD8KPj4gPj4+Cj4+ID4+PiBSZWdhcmRzLAo+PiA+Pj4KPj4gPj4+IEhlcnY9QzM9QTkKPj4gPj4+Cj4+ID4+PiBMZSBzYW1lZGkgMTYgZD1DMz1BOWNlbWJyZSAyMDE3LCAxNjoyODo0OCBDRVQgSGVydj1DMz1BOSBCT1VURU1ZIGEgPQo9QzM9QTljcml0IDoKPj4gPj4+PiBvaywgSSB3YXMgY29uZnVzZWQgYnkgdGhlIGRpZmZlcmVudCB0YWtlcyBhdCBtLWphdmFkb2MtcCAzLjAuMAo+PiA+Pj4+Cj4+ID4+Pj4geWVzLCBzdm4yZ2l0IG1pcnJvciBpcyBzdHVjayBbMV0gYXQgcjE4MTU2NzUKPj4gPj4+Pgo+PiA+Pj4+IEkganVzdCBvcGVuZWQgYW4gSU5GUkEgSmlyYSBpc3N1ZQo+PiA+Pj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvSU5GUkEtMTU2NzkKPj4gPj4+Pgo+PiA+Pj4+IG9uY2UgdGhlIHN2bjJnaXQgbWlycm9yIHdpbGwgYmUgdXBkYXRlZCwgd2UnbGwgaGF2ZSB0byByZS1ydW4gdGhlIHM9CnBsaXQKPj4gPj4+PiBzY3JpcHRzIGFuZCBjaGVycnkgcGljayB0aGUgbWlzc2luZyBjb21taXRzCj4+ID4+Pj4KPj4gPj4+PiBSZWdhcmRzLAo+PiA+Pj4+Cj4+ID4+Pj4gSGVydj1DMz1BOQo+PiA+Pj4+Cj4+ID4+Pj4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9jb21taXRzL3RydW5rCj4+ID4+Pj4KPj4gPj4+PiBMZSBzYW1lZGkgMTYgZD1DMz1BOWNlbWJyZSAyMDE3LCAxMzowMTowNSBDRVQgUm9iZXJ0IFNjaG9sdGUgYSA9QzM9Cj1BOWNyaXQgOgo+PiA+Pj4+ID4gSSB3YXMgdHJpZ2dlcmVkIGJ5IHNvbWUgZmFpbGluZyB1bml0IHRlc3RzLCB3aGljaCBzaG91bGQgaGF2ZSBiZWU9Cm4KPj4gPj4+Pgo+PiA+Pj4+IHNvbHZlZAo+PiA+Pj4+Cj4+ID4+Pj4gPiBpbiBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+PiA+Pj4+ID4KPj4gPj4+PiA+IE15IGxhc3QgY29tbWl0IGFjY29yZGluZyB0byBHSVQgd2FzIG5vdmVtYmVyIDE4dGgKPj4gPj4+PiA+IE15IGxhc3QgY29tbWl0IGFjY29yZGluZyB0byBTVk4gd2FzIGRlY2VtYmVyIDNyZAo+PiA+Pj4+ID4KPj4gPj4+PiA+IGNvbXBhcmluZyBzdm5sb2cgd2l0aCBnaXRsb2cgbW9zdCBvZiB0aGVzZSBjb21taXRzIGFyZSBsb3N0Ogo+PiA+Pj4+ID4KPj4gPj4+PiA+IG1vdmVkIHRvIGdpdAo+PiA+Pj4+ID4gLS0tLQo+PiA+Pj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIGZvciBuZXh0IGRldmVsb3BtZW50IGl0ZXJhdGlvbgo+PiA+Pj4+ID4gLS0tLQo+PiA+Pj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIHJlbGVhc2UgbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAKPj4gPj4+PiA+IC0tLS0KPj4gPj4+PiA+IFtNSkFWQURPQy00OThdICJtb2R1bGUgbm90IGZvdW5kIiB3aGVuIEphdmEgOSBtb2R1bGUtaW5mbyBwcmVzZW50Cj4+ID4+Pj4gPiBTdXBwb3J0IGFnZ3JhdGVkIGphdmFkb2MKPj4gPj4+PiA+IC0tLS0KPj4gPj4+PiA+IFNraXAgc2V2ZXJhbCB1bml0dGVzdHMgZm9yIEphdmE5Cj4+ID4+Pj4gPiAtLS0tCj4+ID4+Pj4gPiBKREstODAzMjIwNSB3YXMgY2xvc2VkIGFzIG5vdCBhbiBpc3N1ZSwgc28gbm90IHNvbHZlZCBpbiBKYXZhOS4KPj4gPj4+PiA+IE5lZWQgdG8gcmV2aWV3IHRoZSBjb25jbHVzaW9uCj4+ID4+Pj4gPiAtLS0tCj4+ID4+Pj4gPiBVcGdyYWRlIG1vY2tpdG8gdG8gcmVtb3ZlIHdhcm5pbmcgYWJvdXQgaWxsZWdhbCByZWZsZWN0aXZlIGFjY2Vzcwo+PiA+Pj4+ID4gLS0tLQo+PiA+Pj4+ID4gSW1wcm92ZSBUZXN0SmF2YWRvY1JlcG9ydFRlc3QjdGVzdFRlc3RKYXZhZG9jCj4+ID4+Pj4gPiBKOCB3YXJucyBhbmQgY29udGludWVzIHdpdGggbWlzc2luZyBkZXBlbmRlbmN5LCBKOSBmYWlscy4KPj4gPj4+PiA+IEluIGZhY3QgdGVzdCB3YXMgd3Jvbmc6IGRlcGVuZGVuY3kgc2hvdWxkIGhhdmUgYmVlbiBvbiBjbGFzc3BhdGgKPj4gPj4+PiA+IC0tLS0KPj4gPj4+PiA+IHVuaXR0ZXN0IHNob3VsZCBwcmVmZXIgSkFWQV9IT01FIHdoZW4gZXhlY3V0aW5nIGZyb20gY21kbGluZQo+PiA+Pj4+ID4gV2hlbiBydW5uaW5nIHdpdGggSmF2YTkrIG5vIG5lZWQgdG8gc3dpdGNoIGZyb20ganJlIHRvIGpkayBkaXJlY3Q9Cm9yeQo+PiA+Pj4+ID4gKGplcDIyMCkKPj4gPj4+PiA+IC0tLS0KPj4gPj4+PiA+IE1KQVZBRE9DLTUwMiBVcGRhdGUgREVGQVVMVF9KQVZBX0FQSV9MSU5LUwo+PiA+Pj4+ID4gLS0tLQo+PiA+Pj4+ID4gc2Vzc2lvbiBpcyByZXF1aXJlZCBwYXJhbWV0ZXIsIHNvIGNhbm5vdCBiZSBudWxsLiBGaXggcmVsYXRlZAo+PiA+Pj4+Cj4+ID4+Pj4gdW5pdHRlc3RzCj4+ID4+Pj4KPj4gPj4+PiA+IC0tLS0KPj4gPj4+PiA+IEFkZCBwcm9qZWN0L2FydGlmYWN0IGtleSB0byBzZXQgb2Ygc291cmNlUGF0aHMgdG8gcmVjb2duaXplIHJlYWN0PQpvcgo+PiA+Pj4+ID4gcHJvamVjdHMgdmVyc3VzIGRlcGVuZGVuY2llcwo+PiA+Pj4+ID4gLS0tLQo+PiA+Pj4+ID4gR3JvdXAgc2V0cyBvZiBzb3VyY2VwYXRocyBwZXIgcHJvamVjdCwgaW4gcHJlcGFyZSBvZiB1c2FnZSBvZgo+PiA+Pj4+ID4gbW9kdWxlLXNvdXJjZS1wYXRoLgo+PiA+Pj4+ID4gLS0tLQo+PiA+Pj4+ID4gU3dpdGNoIGZyb20gTGlzdCB0byBDb2xsZWN0aW9uIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHVzZSBTZXRzIHdoZW4KPj4gPj4+PiA+IHByZWZlcnJlZAo+PiA+Pj4+ID4gLS0tLQo+PiA+Pj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIGZvciBuZXh0IGRldmVsb3BtZW50IGl0ZXJhdGlvbgo+PiA+Pj4+ID4gLS0tLQo+PiA+Pj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIHJlbGVhc2UgbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAKPj4gPj4+PiA+IC0tLS0KPj4gPj4+PiA+Cj4+ID4+Pj4gPgo+PiA+Pj4+ID4KPj4gPj4+PiA+Cj4+ID4+Pj4gPiBPbiBTYXQsIDE2IERlYyAyMDE3IDEyOjUzOjIzICswMTAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkKPj4gPj4+Pgo+PiA+Pj4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4+ID4+Pj4KPj4gPj4+PiA+IHdyb3RlOgo+PiA+Pj4+ID4gPiBsb29raW5nIGF0IGNvbW1pdHNAIGNvbnRlbnQgaHR0cHM6Ly9saXN0cy5hcGFjaGUub3JnL2xpc3QuaHRtbD8KPj4gPj4+PiA+ID4gY29tbWl0c0BtYXZlbi5hcGFjaGUub3JnIHdpdGggc3ViamVjdCBjb250YWluaW5nCj4+ID4+Pj4KPj4gPj4+PiAibWF2ZW4vcGx1Z2lucy90cnVuayIKPj4gPj4+Pgo+PiA+Pj4+ID4gPiBhbmQgcGx1Z2lucyBzdm4yZ2l0IG1pcnJvcgo+PiA+Pj4+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvY29tbWl0cy8KPj4gPj4+PiA+ID4gdHJ1bmsKPj4gPj4+PiA+ID4KPj4gPj4+PiA+ID4gb25seSAxIGNvbW1pdCBpcyBtaXNzaW5nOiBteSBsYXRlc3QgY29tbWl0IG9uIG1hdmVuLXNpdGUtcGx1Z2luCj4+ID4+Pj4gPiA+ICh0aGUgbGFzdCBjb21taXQgZm9yIEdpdCBtaWdyYXRpb24gaXMgbm90IHVzZWZ1bCkKPj4gPj4+PiA+ID4KPj4gPj4+PiA+ID4KPj4gPj4+PiA+ID4gU2FtZSBvbiBzaGFyZWQgc2hvd2VkIG5vIG1pc3NpbmcgY29tbWl0Lgo+PiA+Pj4+ID4gPgo+PiA+Pj4+ID4gPgo+PiA+Pj4+ID4gPiB3aGF0IGxhdGVzdCBjb21taXQgb2YgbWF2ZW4tamF2YWRvYy1wbHVnaW4gYXJlIHlvdSBsb29raW5nIGZvcj8KPj4gPj4+PiA+ID4KPj4gPj4+PiA+ID4gUmVnYXJkcywKPj4gPj4+PiA+ID4KPj4gPj4+PiA+ID4gSGVydj1DMz1BOQo+PiA+Pj4+ID4gPgo+PiA+Pj4+ID4gPiBMZSBzYW1lZGkgMTYgZD1DMz1BOWNlbWJyZSAyMDE3LCAxMTo1NjozMSBDRVQgUm9iZXJ0IFNjaG9sdGUgYSA9Cj1DMz1BOWNyaXQgOgo+PiA+Pj4+ID4gPj4gRm9yIGV2ZXJ5Ym9keSBqdXN0IGEgd2FybmluZyBJIGZhY2VkIHRvZGF5Ogo+PiA+Pj4+ID4gPj4gSWYgeW91IHN3aXRjaCB0byB0aGUgZ2l0IHJlcG9zLCBwbGVhc2UgbWFrZSBzdXJlIGFsbCBjb21taXRzIGE9CnJlCj4+ID4+Pj4gPiA+PiBtaWdyYXRlZC4KPj4gPj4+PiA+ID4+IEkgbm90aWNlZCB0aGUgbGF0ZXN0IGNvbW1pdHMgb2YgdGhlIG1hdmVuLWphdmFkb2MtcGx1Z2luIGdvdCBsPQpvc3QuCj4+ID4+Pj4gPiA+Pgo+PiA+Pj4+ID4gPj4gdGhhbmtzLAo+PiA+Pj4+ID4gPj4gUm9iZXJ0Cj4+ID4+Pj4gPiA+Pgo+PiA+Pj4+ID4gPj4gT24gU2F0LCAwOSBEZWMgMjAxNyAxNzowNjowOSArMDEwMCwgU3RlcGhlbiBDb25ub2xseQo+PiA+Pj4+ID4gPj4KPj4gPj4+PiA+ID4+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4gPj4+PiA+ID4+ID4gSSBzZWUgd2UgaGF2ZSBhIGxhcmdlIG51bWJlciBvZiByZXBvcyBub3cgb24gZ2l0Ym94IDstKQo+PiA+Pj4+ID4gPj4gPgo+PiA+Pj4+ID4gPj4gPiBPbiBUaHUgNyBEZWMgMjAxNyBhdCAwNzowMCwgSGVydj1DMz1BOSBCT1VURU1ZCj4+ID4+Pj4gPiA+PiA+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4+ID4+Pj4gPiA+Pgo+PiA+Pj4+ID4gPj4gd3JvdGU6Cj4+ID4+Pj4gPiA+PiA+PiBvaywgSSBkaWRuJ3QgdXBkYXRlIG15IHJlcG8gY2xvbmU6IG5vdyB0aGUgcnVuLWl0cyBwcm9maWxlID0KaXMKPj4gPj4+PiA+ID4+Cj4+ID4+Pj4gPiA+PiBhY3RpdmF0ZWQKPj4gPj4+PiA+ID4+Cj4+ID4+Pj4gPiA+PiA+PiB0aGVuIHRoZSBwbGFuIHNob3VsZCBqdXN0IGNvbmZpcm0gIml0IHdvcmtzISIgOikKPj4gPj4+PiA+ID4+ID4+Cj4+ID4+Pj4gPiA+PiA+PiBhbmQgZmluZCB3aGljaCBqb2JzIGFyZSBzcGVjaWFsLCBsaWtlIG1hdmVuLWRpc3QtdG9vbCAod2hpYz0KaAo+PiA+Pj4+Cj4+ID4+Pj4gaGFzIHRvCj4+ID4+Pj4KPj4gPj4+PiA+ID4+IGJlCj4+ID4+Pj4gPiA+Pgo+PiA+Pj4+ID4gPj4gPj4gc2NoZWR1bGVkIGRhaWx5IGluc3RlYWQgb2YgY29kZSBjaGFuZ2UsIGFuZCBvbmUgcGxhdGZvcm0gb249Cmx5KQo+PiA+Pj4+ID4gPj4gPj4KPj4gPj4+PiA+ID4+ID4+IFJlZ2FyZHMsCj4+ID4+Pj4gPiA+PiA+Pgo+PiA+Pj4+ID4gPj4gPj4gSGVydj1DMz1BOQo+PiA+Pj4+ID4gPj4gPj4KPj4gPj4+PiA+ID4+ID4+IExlIG1lcmNyZWRpIDYgZD1DMz1BOWNlbWJyZSAyMDE3LCAyMzo1ODo0NSBDRVQgU3RlcGhlbiBDb25uPQpvbGx5IGEKPj4gPj4+Pgo+PiA+Pj4+ID1DMz1BOWNyaXQgOgo+PiA+Pj4+ID4gPj4gPj4gPiBPbiBXZWQgNiBEZWMgMjAxNyBhdCAyMjozOCwgSGVydj1DMz1BOSBCT1VURU1ZCj4+ID4+Pj4KPj4gPj4+PiA8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+PiA+Pj4+Cj4+ID4+Pj4gPiA+PiA+PiB3cm90ZToKPj4gPj4+PiA+ID4+ID4+ID4gPiBOb3cgdGhhdCB3ZSBoYXZlIDIgQVNGIE9yZ2FuaXphdGlvbiBKZW5raW5zIGpvYnMgKG9uZSBmPQpvcgo+PiA+Pj4+Cj4+ID4+Pj4gZ2l0Ym94Cj4+ID4+Pj4KPj4gPj4+PiA+ID4+IFsxXQo+PiA+Pj4+ID4gPj4KPj4gPj4+PiA+ID4+ID4+IGFuZAo+PiA+Pj4+ID4gPj4gPj4KPj4gPj4+PiA+ID4+ID4+ID4gPiBvbmUKPj4gPj4+PiA+ID4+ID4+ID4gPiBmb3IgZ2l0LXdpcDogdGhhbmsgeW91IFN0ZXBoZW4pIGFuZCB0aGF0IGl0IGxvb2tzIHF1aXRlCj4+ID4+Pj4gPiA+Pgo+PiA+Pj4+ID4gPj4gc3VjY2Vzc2Z1bCwKPj4gPj4+PiA+ID4+Cj4+ID4+Pj4gPiA+PiA+PiBsZXQncwo+PiA+Pj4+ID4gPj4gPj4KPj4gPj4+PiA+ID4+ID4+ID4gPiBwbGFuCj4+ID4+Pj4gPiA+PiA+PiA+ID4gdGhlIG5leHQgc3RlcHMuCj4+ID4+Pj4gPiA+PiA+PiA+ID4KPj4gPj4+PiA+ID4+ID4+ID4gPiBIZXJlIGlzIHdoYXQgSSBzZWU6Cj4+ID4+Pj4gPiA+PiA+PiA+ID4gMS4gcmVtb3ZhbCBvZiBoYW5kLWRlZmluZWQgSmVua2lucyBqb2JzIHRoYXQgYXJlIG5vdwo+PiA+Pj4+Cj4+ID4+Pj4gZHVwbGljYXRlcwo+PiA+Pj4+Cj4+ID4+Pj4gPiA+PiA+PiA+ID4gMi4gcHJlcGFyYXRpb24gb2YgdGhlIDYwIG5ldyBlbXB0eSBnaXQgcmVwb3MgZm9yIHNoYXJlZD0KICYKPj4gPj4+PiA+ID4+ID4+ID4gPiBwbHVnaW5zCj4+ID4+Pj4gPiA+PiA+PiA+ID4KPj4gPj4+PiA+ID4+ID4+ID4gPiAzLiBtaWdyYXRpb24gb2YgdGhlIDEgc2hhcmVkIGNvbXBvbmVudCBhbmQgMSBwbHVnaW4gdXNpPQpuZwo+PiA+Pj4+ID4gPj4gPj4KPj4gPj4+PiA+ID4+ID4+IG1pZ3JhdGUtKi5zaAo+PiA+Pj4+ID4gPj4gPj4KPj4gPj4+PiA+ID4+ID4+ID4gPiBzY3JpcHRzCj4+ID4+Pj4gPiA+PiA+PiA+ID4gWzNdIHRvIHRlc3QgYW5kIGV2ZW50dWFsbHkgcmV3b3JrIHRoZSBKZW5raW5zZmlsZSAoSQo+PiA+Pj4+Cj4+ID4+Pj4gc3VwcG9zZSBpdAo+PiA+Pj4+Cj4+ID4+Pj4gPiA+PiB3aWxsCj4+ID4+Pj4gPiA+Pgo+PiA+Pj4+ID4gPj4gPj4gPiA+IHJlcXVpcmUKPj4gPj4+PiA+ID4+ID4+ID4gPiBzb21lIGxpdHRsZSBjaGFuZ2UsIHRvIHJ1biBhZGQgInJ1bi1pdHMiIHByb2ZpbGUpCj4+ID4+Pj4gPiA+PiA+PiA+Cj4+ID4+Pj4gPiA+PiA+PiA+IEFzIGZhciBhcyBJIHJlY2FsbCwgSSBhZGRlZCAtUCtydW4taXRzIGFscmVhZHkKPj4gPj4+PiA+ID4+ID4+ID4KPj4gPj4+PiA+ID4+ID4+ID4gRm9yIHRoZSBwbHVnaW4sIEknZCBsaWtlIHRvIGRvIHRoZSBqb2IgZm9yIG1hdmVuLXNpdGUtcGx1PQpnaW4sCj4+ID4+Pj4gPiA+Pgo+PiA+Pj4+ID4gPj4gc2luY2Ugd2UKPj4gPj4+PiA+ID4+Cj4+ID4+Pj4gPiA+PiA+PiA+ID4gZXhwZWN0Cj4+ID4+Pj4gPiA+PiA+PiA+ID4gdG8gcmVsZWFzZSBpdCBzb29uLgo+PiA+Pj4+ID4gPj4gPj4gPiA+IEZvciB0aGUgc2hhcmVkIGNvbXBvbmVudCwgSSBkb24ndCBrbm93IGlmIHRoZXJlIGlzIGEgYmU9CnN0Cj4+ID4+Pj4gPiA+Pgo+PiA+Pj4+ID4gPj4gY2FuZGlkYXRlCj4+ID4+Pj4gPiA+Pgo+PiA+Pj4+ID4gPj4gPj4gPiA+IDQuIG9uY2UgcHJldmlvdXMgc3RlcCBpcyBvaywgZG8gdGhlIGZ1bGwgbWlncmF0aW9uOiBpZgo+PiA+Pj4+Cj4+ID4+Pj4gdGhlcmUgYXJlCj4+ID4+Pj4KPj4gPj4+PiA+ID4+ID4+ID4gPiB2b2x1bnRlZXJzCj4+ID4+Pj4gPiA+PiA+PiA+ID4gZm9yIGhlbHBpbmcsIHRoYXQgd291bGQgYmUgZ3JlYXQsIHNpbmNlIHBvcHVsYXRpbmcgNjAgZz0KaXQKPj4gPj4+Pgo+PiA+Pj4+IHJlcG9zCj4+ID4+Pj4KPj4gPj4+PiA+ID4+ID4+IHdvbid0Cj4+ID4+Pj4gPiA+PiA+PiBiZQo+PiA+Pj4+ID4gPj4gPj4KPj4gPj4+PiA+ID4+ID4+ID4gPiByZWFsbHkgZnVuLi4uCj4+ID4+Pj4gPiA+PiA+PiA+ID4KPj4gPj4+PiA+ID4+ID4+ID4gPiBBbmQgYXMgcGFydCBvZiA2MCBlbXB0eSBnaXQgcmVwb3MgY3JlYXRpb24sIEkgcHJvcG9zZSB0PQpvCj4+ID4+Pj4KPj4gPj4+PiBtaWdyYXRlCj4+ID4+Pj4KPj4gPj4+PiA+ID4+IHRoZQo+PiA+Pj4+ID4gPj4KPj4gPj4+PiA+ID4+ID4+ID4gPiAiR29vZ2xlCj4+ID4+Pj4gPiA+PiA+PiA+ID4gcmVwbyBtYW5pZmVzdCIgbWF2ZW4tYWdncmVnYXRvciBbNF0gdG8gQVNGOiBteSBwZXJzb25hbAo+PiA+Pj4+Cj4+ID4+Pj4gdXNlIGhhcwo+PiA+Pj4+Cj4+ID4+Pj4gPiA+PiBiZWVuCj4+ID4+Pj4gPiA+Pgo+PiA+Pj4+ID4gPj4gPj4gcXVpdGUKPj4gPj4+PiA+ID4+ID4+Cj4+ID4+Pj4gPiA+PiA+PiA+ID4gc3VjY2Vzc2Z1bCwgSSBob3BlIGl0J3MgdGhlIHNhbWUgZm9yIG90aGVycy4gUGVyaGFwcwo+PiA+Pj4+Cj4+ID4+Pj4gdGhlcmUgYXJlCj4+ID4+Pj4KPj4gPj4+PiA+ID4+ID4+IGJldHRlcgo+PiA+Pj4+ID4gPj4gPj4KPj4gPj4+PiA+ID4+ID4+ID4gPiBpZGVhcwo+PiA+Pj4+ID4gPj4gPj4gPiA+IGZvciBpdHMgbmFtZTogbWF2ZW4tYWdncmVnYXRvcgo+PiA+Pj4+ID4gPj4gPj4gPiA+Cj4+ID4+Pj4gPiA+PiA+PiA+ID4gQW55IG90aGVyIGlkZWE/IGFueSBvYmplY3Rpb24/Cj4+ID4+Pj4gPiA+PiA+PiA+ID4KPj4gPj4+PiA+ID4+ID4+ID4gPiBSZWdhcmRzLAo+PiA+Pj4+ID4gPj4gPj4gPiA+Cj4+ID4+Pj4gPiA+PiA+PiA+ID4gSGVydj1DMz1BOQo+PiA+Pj4+ID4gPj4gPj4gPiA+Cj4+ID4+Pj4gPiA+PiA+PiA+ID4gWzFdCj4+ID4+Pj4KPj4gPj4+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC8KPj4gPj4+Pgo+PiA+Pj4+ID4gPj4gPj4gPiA+IFsyXQo+PiA+Pj4+Cj4+ID4+Pj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi13aXAvCj4+ID4+Pj4KPj4gPj4+PiA+ID4+ID4+ID4gPiBbM10KPj4gPj4+PiA+ID4+Cj4+ID4+Pj4gPiA+PiBodHRwczovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy9tYXZlbi9zYW5kYm94L3RydW5rL3NjcmlwdHMvZ2l0Lwo+PiA+Pj4+ID4gPj4KPj4gPj4+PiA+ID4+ID4+ID4gPiBbNF0gaHR0cHM6Ly9naXRodWIuY29tL2hib3V0ZW15L21hdmVuLWFnZ3JlZ2F0b3IKPj4gPgo+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+Cj4+ID4KPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzODc3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBTZXAgIDYgMTk6MDM6NDYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzODc3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDk4QTVFMUE5NEUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAgNiBTZXAgMjAxNyAxOTowMzo0NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDYyOTUgaW52b2tlZCBieSB1aWQgNTAwKTsgNiBTZXAgMjAxNyAxOTowMzo0NiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjIwMCBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IFNlcCAyMDE3IDE5OjAzOjQ2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjE4MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDYgU2VwIDIwMTcgMTk6MDM6NDUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDA2IFNlcCAyMDE3IDE5OjAzOjQ1ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNUZBNTUxODEyMDgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsICA2IFNlcCAyMDE3IDE5OjAzOjQ1ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTIuNDAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0yLjQwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHFPbmRZMXQtVUpadSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgIDYgU2VwIDIwMTcgMTk6MDM6MzggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC1pbzAtZjE3MC5nb29nbGUuY29tIChtYWlsLWlvMC1mMTcwLmdvb2dsZS5jb20gWzIwOS44NS4yMjMuMTcwXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDZBNzQ2NUZDOTkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsICA2IFNlcCAyMDE3IDE5OjAzOjM4ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLWlvMC1mMTcwLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGkxNHNvNjcwNDY2N2lvZS4yCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMDYgU2VwIDIwMTcgMTI6MDM6MzggLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9QmxzbFluZjRueWszelJ5RG1HbS9GMDVpd2ZidXdQV1lRLzdFZnVCK3Z4RT07CiAgICAgICAgYj1LY3BKZ0FqQmhORVZXUkdDUjFid0JkbDFNOWx5WHpnWFdzK2pjMlZUbURGeGZyMWxjdVZuRWxzSSs4ako2bnlKSHgKICAgICAgICAgYi9keTVWcnM1SFY3YUpSMUcyMDJqR2NpUkhLUkxGT2gvZG04cmtqb1BwQ3ExSExrZUhjM1ZRSEVHZnllRVRLVGxEV20KICAgICAgICAgN2Y2Q3BLL1pIS05hTlVJVGVzNDJEalQ0UlBpdng0TFFCK250V25KNS9BMWIzd2JEcURGWU5OVmJHOWJTY3kvbnk2TU8KICAgICAgICAgN2NlcCtpN3V4djR2dFhJZzhLekJKMlpaS25UcXI2NnlqV2hPZmorZG5vTjlYcVhYcXdSK2k4WjdGeVZKalJyanAwY3oKICAgICAgICAgSzdtSzU2VGczL3RVQk12blJuQXFwcFVqbXppeW01MVQ3eTVQLzhrMEtFdm53eFFEeHBYc1Q4eGsyRnIrS2t3SnM3dUUKICAgICAgICAgQWw1QT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9QmxzbFluZjRueWszelJ5RG1HbS9GMDVpd2ZidXdQV1lRLzdFZnVCK3Z4RT07CiAgICAgICAgYj1QNE4xTEdPb0pXVFBsSzZPYzZYM2hVTms2SkxTTTBvTHVGbGZDWlp5VG03RUprWHBwVTJtWEFpZjFhbHdOODE4L1UKICAgICAgICAgSEtVZ256Snd4RE9ZT1o4cWpMbldnSjBoZkhIL3pQUEJublhSUEpDZXZaVVV3NEE1Wk53Wk96bUl0cWlCSkNjRDdETlMKICAgICAgICAgZXdvcXRkcEJBZmhSU1JQNk5kL2JqTXh4VGprdmUyUENvZ29maytGbWZzSk1TWnJSVHFrN2xmVEY3OFBRZzlOWUpmb2oKICAgICAgICAgcHhDRHYzSFRYLzFkOTFqQkhJSENhejdQMTJvbWdPSDBndkFLTEhMRW9wUW16cUpTNnVUN29oYm4vVXkvNjlUbkd0ZkQKICAgICAgICAgSDNUOSttZGs4SEltVDlVMUVCMUtaVWhmNSswbDlYaytkRVB1akl2QjVHejZSK3lUV0RHSmplemp0RUNXbW1RazVqMW0KICAgICAgICAgRlRPUT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVaHRwSmIwdDJncWtXV1hlMWFGbm5NNEp5Zy8vcDRodGhqQ2FnNmluTThwMFBpQVpwS28KCURYU3VHWENOZ2l3RlFZU1RXZ0x0TGJtbW0rNVR1TXM5K0pBPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQXNxRmhOWmp4SWhtZUQySGhRUlZ1ZWo1d0pITk00UldKWEN4NVcwVnJxL2Vmd3BDMGxFd0ZKTFdFTU1TVFBoMm5hbk5ubjRrZ0tkbVR5V2JRRHpNdz0KWC1SZWNlaXZlZDogYnkgMTAuMTA3LjY5Ljggd2l0aCBTTVRQIGlkIHM4bXIyMTIwMzhpb2EuODAuMTUwNDcyNDYxNzU4NTsgV2VkLAogMDYgU2VwIDIwMTcgMTI6MDM6MzcgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjEwNy4xMzcuMjI2IHdpdGggSFRUUDsgV2VkLCA2IFNlcCAyMDE3IDEyOjAzOjM3IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0FMYVRlQ3J6WFdjU29hQjZmK1BUNTNwWUpBN1BEZzZRaTlYU3BkKz1nQjlYNndQU3p3QG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8b3AueTVkdWFxYWRrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CiA8b3AueTVqYWx4enRrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDxDQUxhVGVDcnEwcjNFUHpiZGo0UEprc1lqczltRkRXZURtQkRKZjgyK2VCMCt2azV4eUFAbWFpbC5nbWFpbC5jb20+CiA8b3AueTVvZWJ6Z25rZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDxDQUxhVGVDcXV1VjFKY0F1VmtzZXdOSjdrYktKLXBpa2NwPVRxdDNyYXZ0Yk82M0JldWdAbWFpbC5nbWFpbC5jb20+CiA8b3AueTVwNjMyemprZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDxDQUxhVGVDcnpYV2NTb2FCNmYrUFQ1M3BZSkE3UERnNlFpOVhTcGQrPWdCOVg2d1BTendAbWFpbC5nbWFpbC5jb20+CkZyb206IFBsYW1lbiBUb3RldiA8cGxhbWVuLml2LnRvdGV2QGdtYWlsLmNvbT4KRGF0ZTogV2VkLCA2IFNlcCAyMDE3IDIyOjAzOjM3ICswMzAwCk1lc3NhZ2UtSUQ6IDxDQUxhVGVDclNhMTdLQmNKMW5FNndfTC01MXZpZ3dYNFBPdUR4ZWd2T2ROY1MyZ3ZLQ3dAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBtYWluLWNsYXNzICsgbW9kdWxlLXZlcnNpb24KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpIaSwKCkkndmUgc3RhcnRlZCB3b3JraW5nIG9uIHRoaXMgb25lLiBVbmZvcnR1bmF0ZWx5IEkgZG9uJ3QgaGF2ZSBhcyBtdWNoCmZyZWUgdGltZSBhcyBJIGV4cGVjdGVkIHNvIHRoZSBwcm9ncmVzcyBpcyBhIGJpdCBzbG93LiBXaXRoIHRoZQpyZWxlYXNlIGRhdGUgb2YgSmF2YSA5IGFwcHJvYWNoaW5nIEkgaG9wZSB0aGlzIGRvZXMgbm90IGJsb2NrIGFueQpvdGhlciByZWxlYXNlLgoKSSd2ZSBqdXN0IHB1c2hlZCBteSBpbXBsZW1lbnRhdGlvbiBbMV0uIEl0J3Mgbm90IGZ1bGx5IHJlYWR5IHlldCBhcwp0aGVyZSBhcmUgbm8gdGVzdHMgYW5kIEphdmEgRG9jcy4gVGhlIGNvbW1pdCBtZXNzYWdlcyBzaG91bGQgYmUgbW9yZQpkZXRhaWxlZCBhcyB3ZWxsLiBCdXQgYWxsIGNoYW5nZXMgdG8gdGhlIEFQSSBhbmQgdGhlIHdvcmsgb24KaW1wbGVtZW50aW5nIHRoZSBmdW5jdGlvbmFsaXR5IGFyZSBkb25lIHNvIGlmIHlvdSB3YW50IHlvdSBjYW4gdGFrZSBhCmxvb2suIEFueSBjb21tZW50cyBhbmQgc3VnZ2VzdGlvbnMgYXJlIHdlbGNvbWUuIEknbGwgY29udGludWUgd2l0aCB0aGUKdGVzdHMgbmV4dCB3ZWVrLgoKUmVnYXJkcywKUGxhbWVuIFRvdGV2CgoKWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9jb2RlaGF1cy1wbGV4dXMvcGxleHVzLWFyY2hpdmVyL2NvbXBhcmUvbWFzdGVyLi4ucGxhbWVudG90ZXY6bW9kdWxlLXZlcnNpb24tYW5kLW1haW4tY2xhc3MKCk9uIFdlZCwgQXVnIDMwLCAyMDE3IGF0IDg6MzIgQU0sIFBsYW1lbiBUb3RldiA8cGxhbWVuLml2LnRvdGV2QGdtYWlsLmNvbT4gd3JvdGU6Cj4gSGkgUm9iZXJ0LAo+Cj4+Cj4+IEkndmUgc3RhcnRlZCBhIGJpdCB3aXRoIGl0LCBidXQgbm8gc3VjY2VzcyB5ZXQ6Cj4+IGh0dHBzOi8vbWFpbC5vdzIub3JnL3d3cy9hcmMvYXNtLzIwMTctMDgvbXNnMDAwMDQuaHRtbAo+Pgo+PiBFdmVuIGFmdGVyIHRoZSBzdWdnZXN0aW9ucyBmcm9tIFJlbWkgbm8gc3VjY2VzcyB5ZXQuCj4+IEkgd2FzIGhvcGluZyBmb3IgYSBmYXN0IGZpeCwgYnV0IGl0J2xsIHRha2UgbW9yZSB0aW1lIGFuZCBvdGhlciB0aGluZ3MgYXJlCj4+IHdhaXRpbmcgYXMgd2VsbC4KPj4gV291bGQgYmUgZ3JlYXQgaWYgeW91IGNhbiBwaWNrIGl0IHVwIGZyb20gaGVyZS4KPgo+IFllcywgSSB3aWxsLiBUaGFua3MgZm9yIHRoZSBzdGFydGluZyBwb2ludC4gSSB0b29rIGEgbG9vayBhdCB0aGUgYXNtCj4gQVBJLCB0aGUgY2xhc3MgZmlsZSBmb3JtYXQgYW5kIHRoZSBqYXIgdG9vbCBpbXBsZW1lbnRhdGlvbiBzbyBJIHNob3VsZAo+IGJlIGFibGUgdG8gY29udGludWUgZnJvbSBoZXJlLgo+Cj4gUmVnYXJkcywKPiBQbGFtZW4gVG90ZXYKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDM1MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgT2N0IDI2IDIxOjIyOjU2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDM1MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAwQzJDRDEwNEMwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjYgT2N0IDIwMTcgMjE6MjI6NTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2MjgwMCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBPY3QgMjAxNyAyMToyMjo1MCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjI2NzcgaW52b2tlZCBieSB1aWQgNTAwKTsgMjYgT2N0IDIwMTcgMjE6MjI6NTAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MjY2NSBpbnZva2VkIGJ5IHVpZCA5OSk7IDI2IE9jdCAyMDE3IDIxOjIyOjUwIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyNiBPY3QgMjAxNyAyMToyMjo1MCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDk0RURCMTgwOEE1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyNiBPY3QgMjAxNyAyMToyMjo0OSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0yLjM5OQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMi4zOTkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglLQU1fU0hPUlQ9MC4wMDEsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxLCBVUklCTF9CTE9DS0VEPTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBUbkcxS1IwZXVNUEUgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsIDI2IE9jdCAyMDE3IDIxOjIyOjQ2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtaW8wLWYxODAuZ29vZ2xlLmNvbSAobWFpbC1pbzAtZjE4MC5nb29nbGUuY29tIFsyMDkuODUuMjIzLjE4MF0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBCMDc3RjVGQ0RCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyNiBPY3QgMjAxNyAyMToyMjo0NSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1pbzAtZjE4MC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBqMTdzbzg0NTIxMDVpb2QuNQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDI2IE9jdCAyMDE3IDE0OjIyOjQ1IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUZ1a0JXdEdYbVZVcGN6YktrYld2eCtMVXVCWE1rQmlqVXJUUi9Tc2VMVTg9OwogICAgICAgIGI9bjdwcWFCeit2QWwzc1MwSVh1M1BRY2NId3dRQ3FXMVFhR0ZWR2ptUThmWlFvVGVjdW9KdHI2cjEzcWYvenJLQ3h1CiAgICAgICAgIDFpdjRwTXJTY2JkYkxoTVRaWTJ1WCtvTzFXWjNFK2k1ZUZwMXI2YU5yZ0EwQ2ZjNnZlU245Qnphc285a24xeFBveThyCiAgICAgICAgICttcXZIak5laHVLZEorRnBtRkl1bWJ3cC9Mcnc3OFM0UFBwUzhaNFA5YU1WTktVVW40NXhENVFWN0dqUG5SamJhNktSCiAgICAgICAgIGlvSXhOdjBDUGNFTjV4S2p6cEpWaCtBQTdrcWJHZnpzYkRSVDRHbFVoZklnMDdNWmJVU2J0TW0yT0NVd200K1MrRE9xCiAgICAgICAgIDM4Um1DLzFlZThYL29HMHl0eVE3dDBzMTFpM25pcFhpczc0OVJ4d09XT3NiOWFyWjlmcFVrZ2tod3lnK2ZTM1o1bUFMCiAgICAgICAgIHVnSEE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUZ1a0JXdEdYbVZVcGN6YktrYld2eCtMVXVCWE1rQmlqVXJUUi9Tc2VMVTg9OwogICAgICAgIGI9SHRlSm9mOWFxZXJmVU5NdFEydGJTbmRZRXp3dWMwVW5zMFVrbXdlTWZ2aTNLUTk0QzJlc0Rza1ZPWUlEN05SbTVwCiAgICAgICAgIEU3aWpQczVqcklYUWFaMlhzZ0dhR3FWMmhzcHBWRlpUbVp4bkg3RHhOYTRnSldmVUlRRGJvYlcyRG9MRmFIWWUzYW93CiAgICAgICAgIGtLbERuU0xQcm4zV0h3ZWRvQkRRUGphQVkweTlLZlEyWHgrSlNqcUJBeVZSME94QlFGQ3B5MGJ3YTJudTNJZkY0QzZkCiAgICAgICAgIEY1NWNXZkF4LzFYWmdHTU4za2NLUlgxRTBxSmlNbmp3Yno2b0VuSm5nUXFGdDJPcFhJRUwvckdyWDE2YUFYbVcxUjdZCiAgICAgICAgIEp4bW1WQXdJdmxXWWJERTM4OHBqNGlmTU9hc0h6cUxtakVMZjVaVTdvYmNkZXFnODk4SitwbFAzUzZRVG4ycEUzY2R2CiAgICAgICAgIEoraWc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVdrWUNKT0V0b2tFY1QvRzBwMSttWnNMdTd1Y2pmY3UxcE9mQWtJQmk5NEl5RytIdzVpCglEVkMvcVBRZk01dXVBenQ2M283OFNiMVYxcXZwWEg2cHAvY0lob3hyU1gyNQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArVEF5Rzc3YStrL2QwR1htNVNJOWgwbG1NM1VTUktENUFWNmphWWFRWE0wV1FDaXJDZjliQTNVU2JvbW15NjZmT2VNc3k4NjhCRmsveE9IRTBJRW44Yz0KWC1SZWNlaXZlZDogYnkgMTAuMzYuMjI0Ljc4IHdpdGggU01UUCBpZCBjNzVtcjQzOTUzOWl0aC43MS4xNTA5MDUyOTY0MTcyOyBUaHUsCiAyNiBPY3QgMjAxNyAxNDoyMjo0NCAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTA3LjE4MS4yMSB3aXRoIEhUVFA7IFRodSwgMjYgT2N0IDIwMTcgMTQ6MjI6NDMgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxDQUxhVGVDclNhMTdLQmNKMW5FNndfTC01MXZpZ3dYNFBPdUR4ZWd2T2ROY1MyZ3ZLQ3dAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxvcC55NWR1YXFhZGtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KIDxvcC55NWphbHh6dGtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4gPENBTGFUZUNycTByM0VQemJkajRQSmtzWWpzOW1GRFdlRG1CREpmODIrZUIwK3ZrNXh5QUBtYWlsLmdtYWlsLmNvbT4KIDxvcC55NW9lYnpnbmtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4gPENBTGFUZUNxdXVWMUpjQXVWa3Nld05KN2tiS0otcGlrY3A9VHF0M3JhdnRiTzYzQmV1Z0BtYWlsLmdtYWlsLmNvbT4KIDxvcC55NXA2MzJ6amtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4gPENBTGFUZUNyelhXY1NvYUI2ZitQVDUzcFlKQTdQRGc2UWk5WFNwZCs9Z0I5WDZ3UFN6d0BtYWlsLmdtYWlsLmNvbT4KIDxDQUxhVGVDclNhMTdLQmNKMW5FNndfTC01MXZpZ3dYNFBPdUR4ZWd2T2ROY1MyZ3ZLQ3dAbWFpbC5nbWFpbC5jb20+CkZyb206IFBsYW1lbiBUb3RldiA8cGxhbWVuLml2LnRvdGV2QGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAyNyBPY3QgMjAxNyAwMDoyMjo0MyArMDMwMApNZXNzYWdlLUlEOiA8Q0FMYVRlQ3JkWWtyZGJ3M09tRz03SzNLZ2U4elorYitqR2g3QTJ3UjlGdjZFdEJNdmt3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogbWFpbi1jbGFzcyArIG1vZHVsZS12ZXJzaW9uClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKSGksCgpJJ3ZlIGp1c3QgaW1wbGVtZW50ZWQgc3VwcG9ydCBmb3IgYWRkaW5nIG1vZHVsZSB2ZXJzaW9uIGFuZCBtYWluCmNsYXNzLiBUaGVyZSBpcyBwdWxsIHJlcXVlc3RbMV0gYW5kIGNvbW1lbnRzIGFuZCBzdWdnZXN0aW9ucyBhcmUgbW9yZQp0aGFuIHdlbGNvbWUuIFRoZSBmb2xsb3dpbmcgZXhjZXJwdCBmcm9tIHRoZSB0ZXN0IHNob3djYXNlIGhvdyB5b3UgY2FuCmFkZCBtb2R1bGUgdmVyc2lvbiBhbmQgbWFpbiBjbGFzcyB0byBhIG1vZHVsYXIgSkFSIGZpZToKCiAgICBKYXJBcmNoaXZlciBhcmNoaXZlciA9IG5ldyBKYXJBcmNoaXZlcigpOwogICAgYXJjaGl2ZXIuc2V0RGVzdEZpbGUoIGphckZpbGUgKTsKICAgIGFyY2hpdmVyLmFkZERpcmVjdG9yeSggbmV3IEZpbGUoICJzcmMvdGVzdC9yZXNvdXJjZXMvamF2YS1tb2R1bGUiICkgKTsKCiAgICBNb2R1bGVDb25maWd1cmF0aW9uIG1vZHVsZUNvbmZpZ3VyYXRpb24gPSBuZXcgTW9kdWxlQ29uZmlndXJhdGlvbigpOwogICAgbW9kdWxlQ29uZmlndXJhdGlvbi5zZXRWZXJzaW9uKCAiMS4wLjAiICk7CiAgICBtb2R1bGVDb25maWd1cmF0aW9uLnNldE1haW5DbGFzcyggImNvbS5leGFtcGxlLmFwcC5NYWluIiApOwogICAgYXJjaGl2ZXIuc2V0TW9kdWxlQ29uZmlndXJhdGlvbiggbW9kdWxlQ29uZmlndXJhdGlvbiApOwoKICAgIGFyY2hpdmVyLmNyZWF0ZUFyY2hpdmUoKTsKClJlZ2FyZHMsClBsYW1lbiBUb3RldgoKWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9jb2RlaGF1cy1wbGV4dXMvcGxleHVzLWFyY2hpdmVyL3B1bGwvNzUKCk9uIFdlZCwgU2VwIDYsIDIwMTcgYXQgMTA6MDMgUE0sIFBsYW1lbiBUb3RldiA8cGxhbWVuLml2LnRvdGV2QGdtYWlsLmNvbT4gd3JvdGU6Cj4gSGksCj4KPiBJJ3ZlIHN0YXJ0ZWQgd29ya2luZyBvbiB0aGlzIG9uZS4gVW5mb3J0dW5hdGVseSBJIGRvbid0IGhhdmUgYXMgbXVjaAo+IGZyZWUgdGltZSBhcyBJIGV4cGVjdGVkIHNvIHRoZSBwcm9ncmVzcyBpcyBhIGJpdCBzbG93LiBXaXRoIHRoZQo+IHJlbGVhc2UgZGF0ZSBvZiBKYXZhIDkgYXBwcm9hY2hpbmcgSSBob3BlIHRoaXMgZG9lcyBub3QgYmxvY2sgYW55Cj4gb3RoZXIgcmVsZWFzZS4KPgo+IEkndmUganVzdCBwdXNoZWQgbXkgaW1wbGVtZW50YXRpb24gWzFdLiBJdCdzIG5vdCBmdWxseSByZWFkeSB5ZXQgYXMKPiB0aGVyZSBhcmUgbm8gdGVzdHMgYW5kIEphdmEgRG9jcy4gVGhlIGNvbW1pdCBtZXNzYWdlcyBzaG91bGQgYmUgbW9yZQo+IGRldGFpbGVkIGFzIHdlbGwuIEJ1dCBhbGwgY2hhbmdlcyB0byB0aGUgQVBJIGFuZCB0aGUgd29yayBvbgo+IGltcGxlbWVudGluZyB0aGUgZnVuY3Rpb25hbGl0eSBhcmUgZG9uZSBzbyBpZiB5b3Ugd2FudCB5b3UgY2FuIHRha2UgYQo+IGxvb2suIEFueSBjb21tZW50cyBhbmQgc3VnZ2VzdGlvbnMgYXJlIHdlbGNvbWUuIEknbGwgY29udGludWUgd2l0aCB0aGUKPiB0ZXN0cyBuZXh0IHdlZWsuCj4KPiBSZWdhcmRzLAo+IFBsYW1lbiBUb3Rldgo+Cj4KPiBbMV0gaHR0cHM6Ly9naXRodWIuY29tL2NvZGVoYXVzLXBsZXh1cy9wbGV4dXMtYXJjaGl2ZXIvY29tcGFyZS9tYXN0ZXIuLi5wbGFtZW50b3Rldjptb2R1bGUtdmVyc2lvbi1hbmQtbWFpbi1jbGFzcwo+Cj4gT24gV2VkLCBBdWcgMzAsIDIwMTcgYXQgODozMiBBTSwgUGxhbWVuIFRvdGV2IDxwbGFtZW4uaXYudG90ZXZAZ21haWwuY29tPiB3cm90ZToKPj4gSGkgUm9iZXJ0LAo+Pgo+Pj4KPj4+IEkndmUgc3RhcnRlZCBhIGJpdCB3aXRoIGl0LCBidXQgbm8gc3VjY2VzcyB5ZXQ6Cj4+PiBodHRwczovL21haWwub3cyLm9yZy93d3MvYXJjL2FzbS8yMDE3LTA4L21zZzAwMDA0Lmh0bWwKPj4+Cj4+PiBFdmVuIGFmdGVyIHRoZSBzdWdnZXN0aW9ucyBmcm9tIFJlbWkgbm8gc3VjY2VzcyB5ZXQuCj4+PiBJIHdhcyBob3BpbmcgZm9yIGEgZmFzdCBmaXgsIGJ1dCBpdCdsbCB0YWtlIG1vcmUgdGltZSBhbmQgb3RoZXIgdGhpbmdzIGFyZQo+Pj4gd2FpdGluZyBhcyB3ZWxsLgo+Pj4gV291bGQgYmUgZ3JlYXQgaWYgeW91IGNhbiBwaWNrIGl0IHVwIGZyb20gaGVyZS4KPj4KPj4gWWVzLCBJIHdpbGwuIFRoYW5rcyBmb3IgdGhlIHN0YXJ0aW5nIHBvaW50LiBJIHRvb2sgYSBsb29rIGF0IHRoZSBhc20KPj4gQVBJLCB0aGUgY2xhc3MgZmlsZSBmb3JtYXQgYW5kIHRoZSBqYXIgdG9vbCBpbXBsZW1lbnRhdGlvbiBzbyBJIHNob3VsZAo+PiBiZSBhYmxlIHRvIGNvbnRpbnVlIGZyb20gaGVyZS4KPj4KPj4gUmVnYXJkcywKPj4gUGxhbWVuIFRvdGV2CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQyNTctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE9jdCAxNyAxODoyODowMyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyNTctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNUQ4RUIxMDhBMgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDE3IE9jdCAyMDE3IDE4OjI4OjAzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzg1MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNyBPY3QgMjAxNyAxODoyODowMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzc4MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNyBPY3QgMjAxNyAxODoyODowMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc3NTkgaW52b2tlZCBieSB1aWQgOTkpOyAxNyBPY3QgMjAxNyAxODoyODowMiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMTcgT2N0IDIwMTcgMTg6Mjg6MDIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBCNEQzNzE4MDgzOAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTcgT2N0IDIwMTcgMTg6Mjg6MDEgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjE3OQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjE3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCByMWhPWkIzc0I3RjAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUdWUsIDE3IE9jdCAyMDE3IDE4OjI3OjU5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtcXQwLWYxODIuZ29vZ2xlLmNvbSAobWFpbC1xdDAtZjE4Mi5nb29nbGUuY29tIFsyMDkuODUuMjE2LjE4Ml0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA3MkVGNzYxMTkxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxNyBPY3QgMjAxNyAxODoyNzo1NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1xdDAtZjE4Mi5nb29nbGUuY29tIHdpdGggU01UUCBpZCB6MjhzbzU1ODI4OThxdHouMTMKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxNyBPY3QgMjAxNyAxMToyNzo1NCAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1LMXZWYWMrOUsyTytMT1FnbDZXSUNCNEJTT2hwQnpxS0xQZEN3YlRPRE9rPTsKICAgICAgICBiPWl0OEl1aTB2NzhxSlNReGp3bmxLODZPMkRoQUVBMDc1c0RvbnJEN1RxWkt3NFhwdDRVd0hRazV2MnRVWHhMVHpiegogICAgICAgICB2MjRpU2hqNEVRdjliODJaNzZJRURKRElUdERoR0hNQ20xY0Vub0hVMmRUNkx3MldQckxkaVRLZjVKcDBDL0cxS1M1MwogICAgICAgICBhR0k4MmQwVjhTU1pNbTRmM0pBczNXRk9ndWVHc3lJN1JqTGxEczFJeDg1ZmVyeC9WT1JXSyt6OEplZUdxR3UrOEs5UAogICAgICAgICBaQzFlK1FOZDVpVDBuS1MxUWF3WDJyTnZYTG1zN01LNjhjUXl6R2pHMWZ5QzhNY1lxZEFQYlYrZjBLMWU5S29iempVTAogICAgICAgICB0ajIwNllHaUNZNGM2RThoY2JLY2NKWmgzUjRLcmhCTkpCeUl3UHZBNHVYbk1OeUdNUENiMDdLV2ZtQzRtQmtrZFFPRAogICAgICAgICBVNWp3PT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1LMXZWYWMrOUsyTytMT1FnbDZXSUNCNEJTT2hwQnpxS0xQZEN3YlRPRE9rPTsKICAgICAgICBiPWRQbFFRUnFZMGZNVjZKOHZOWEEyM2lDMldVa1Y0UXR5RGdaMVB0blVrQ1krKzVvdGs2a1MyM2lFd0hGa2dtejlmawogICAgICAgICBXRVpYa052LzRnWFVCa3VlYXEvVExxTmRqRVlUSkk5TGRoRmxRU1R0M0QzVUZJNXFJKzNXdXl5aDRHVkJpbklrNFQ0KwogICAgICAgICBTSGFYa092UUdIU1MwcWE1aWxLWDRQUld5dTl5SXZUTmM3azRBck83eHFxdnhvTHpuLy9JN0RtNFR3OE5JcXM5dUhsMgogICAgICAgICB2ZlY0Rm5jYUlsYnJvbTdWeTRpOVlVMlZ2QVczdlJwTEE4elBkOVRPdHl4UGlpZTBiZk1sQm9xQVc5Mjh5MTFia3lkZQogICAgICAgICBLczlEV2RPc0wzOFFFVGVyWm1ubHZWOXJidGl2ZVVWb2tpanMvUUY3ejZWWTBSVDJMNUx5aEZ0dTlwYkdGbjBYTWRFOAogICAgICAgICBQcVRnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FWQmNobWZpT1AvVTZTb1B1SVkvNm1aNUozZjY0RjdLQkh4UVB5dlJ2ZWQzaXVJMGJ3cAoJQTgzSUtuZmtWaTNQNm1GR0hTL1REQWZWWTRSUlVlK2Y1eURndE5wcW9DZmcKWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFCaFFwK1NZczZhUVRkbGNWSzFlMUVOcDl5anBPRVZ0UGhYNU5XOUw4ODVXZTBsM2pNNHdBbDl4SEJORXFpb0RCbzZtdXcwREd2WldzL05vNUVRM0JiczArUjQ9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjM3LjEzNi4xMyB3aXRoIFNNVFAgaWQgYzEzbXIzMTQwMjU5eWJsLjQ2NS4xNTA4MjY0ODcyNjY0OwogVHVlLCAxNyBPY3QgMjAxNyAxMToyNzo1MiAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMzcuMTM5LjEzNyB3aXRoIEhUVFA7IFR1ZSwgMTcgT2N0IDIwMTcgMTE6Mjc6MjIgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxDQStuUG5NejRTLUZKSzI1dkdBNmFjanEtV3RWNDA1OU9mNGVMMzUyRGFMOHZQTnlNWEFAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQStuUG5NejRTLUZKSzI1dkdBNmFjanEtV3RWNDA1OU9mNGVMMzUyRGFMOHZQTnlNWEFAbWFpbC5nbWFpbC5jb20+CkZyb206IERhd2lkIFdlaXNzIDxkYXdpZC53ZWlzc0BnbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTcgT2N0IDIwMTcgMjA6Mjc6MjIgKzAyMDAKTWVzc2FnZS1JRDogPENBTTIxUnQtZjV1QXF6eml6VVYwS25QYkFlZndSRmhLRXRaZzhwPXIwVVV4YnZXeDlQd0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtDQU5DRUxMRURdIFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCkl0J3MgYSBwaXR5IHRoZXNlIHR3byBkaWRuJ3QgbWFrZSBpdCBpbjoKCmh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyNjEKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjI2MgoKVGhlc2UgYXJlIHRydWUgc2hvd3N0b3BwZXJzIGZvciBXaW5kb3dzIHVzZXJzIChsaWtlIHVzKS4KCkRhd2lkCgoKT24gVHVlLCBPY3QgMTcsIDIwMTcgYXQgODoxNSBQTSwgU3RlcGhlbiBDb25ub2xseQo8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gVGhpcyB2b3RlLCBkZXNwaXRlIGJlaW5nIHN1Y2Nlc3NmdWwsIGlzIGJlaW5nIGNhbmNlbGxlZC4KPgo+IEFzIHJlbGVhc2UgbWFuYWdlciBmb3IgdGhpcyB2b3RlIEkgaGF2ZSBtYWRlIHRoZSBkZWNpc2lvbiBpcyB0aGF0IHJlbGVhc2luZwo+IHdpdGggdGhlIHR3byBpc3N1ZXM6Cj4KPiBNTkctNjI3NQo+IE1ORy02MjA5Cj4KPiBXb3VsZCBwcmVzZW50IGFuIHVubmVjZXNzYXJ5IHJpc2sgdG8gdXNlcnMuCj4KPiBXZSdyZSBnb2luZyB0byByZXZlcnQgdGhvc2UgdG8gYWxsb3cgZm9yIGxlc3Mgcmlza3kgZml4ZXMgdG8gYmUgZGV2ZWxvcGVkLgo+Cj4gSSdsbCBjYWxsIGEgdm90ZSBvbiAzLjUuMiBvbmNlIEkgZ2V0IGl0IHNwdW4uCj4KPiAtU3RlcGhlbgo+Cj4gT24gMTAgU2VwdGVtYmVyIDIwMTcgYXQgMTY6MzksIFN0ZXBoZW4gQ29ubm9sbHkgPAo+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Cj4+IEhpLAo+Pgo+PiBXZSBzb2x2ZWQgMjUgaXNzdWVzOgo+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4+IHZlcnNpb249MTIzMzg5NjQmc3R5bGVOYW1lPVRleHQmcHJvamVjdElkPTEyMzE2OTIyCj4+Cj4+IFRoZXJlIGFyZSAzNTAgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKPj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPXByb2plY3QlMjAlCj4+IDNEJTIwTU5HJTIwQU5EJTIwcmVzb2x1dGlvbiUyMCUzRCUyMFVucmVzb2x2ZWQlMjBPUkRFUiUKPj4gMjBCWSUyMGR1ZSUyMEFTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMGNyZWF0ZWQlMjBBU0MKPj4KPj4gU3RhZ2luZyByZXBvOgo+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY0Lwo+Pgo+PiBUaGUgZGlzdHJpYnV0YWJsZSBiaW5hcmllcyBhbmQgc291cmNlcyBjYW4gYmUgZm91bmQgaGVyZToKPj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvCj4+Cj4+IFNwZWNpZmljYWxseSB0aGUgemlwLCB0YXJiYWxsIGFuZCBzb3VyY2UgYXJjaGl2ZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+PiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1iaW4uemlwCj4+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+PiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1iaW4udGFyLmd6Cj4+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+PiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwCj4+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+PiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1zcmMudGFyLmd6Cj4+Cj4+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+PiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5neiBzaGExOiA5ZWI4MjFmMTUzYzc2NjcxOTRhYTExY2NkMDk5YjcKPj4gYmQyMDU5NTYwZAo+PiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcDogc2hhMTogMTIxZDU0YjA0NTM4MGE4YTQ4OTVlYjEzNzk3MGFiNjllNjk4ZWIwZQo+Pgo+PiBHaXQgdGFnOgo+PiBodHRwczovL2dpdC13aXAtdXMuYXBhY2hlLm9yZy9yZXBvcy9hc2Y/cD1tYXZlbi5naXQ7YT1jb21taXQ7aD0KPj4gMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMwo+Pgo+PiBTdGFnaW5nIHNpdGU6Cj4+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9jb21wb25lbnRzL3JlZi8zLUxBVEVTVC8KPj4KPj4gVm90ZSBvcGVuIGZvciA3MiBob3Vycy4KPj4KPj4gWyBdICsxCj4+IFsgXSArMAo+PiBbIF0gLTEKPj4KPj4gVGhhbmtzLAo+Pgo+PiBTdGVwaGVuLgo+PgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NTMxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgMTggMTY6NDY6MDggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTMxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEFFNTM5MTc1MTIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAxOCBOb3YgMjAxNyAxNjo0NjowOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDIwODY2IGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IE5vdiAyMDE3IDE2OjQ2OjA4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMDc3OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBOb3YgMjAxNyAxNjo0NjowOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIwNzYyIGludm9rZWQgYnkgdWlkIDk5KTsgMTggTm92IDIwMTcgMTY6NDY6MDggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDE4IE5vdiAyMDE3IDE2OjQ2OjA4ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMzkyNzMxQTBDRUUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDE4IE5vdiAyMDE3IDE2OjQ2OjA3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi4zOApYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjM4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEhUTUxfT0JGVVNDQVRFXzA1XzEwPTAuMDAxLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBmaGFFZjljU25xTk0gZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsIDE4IE5vdiAyMDE3IDE2OjQ2OjA2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtaXQwLWY0Mi5nb29nbGUuY29tIChtYWlsLWl0MC1mNDIuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNC40Ml0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBBODQ1MjVGMkMzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAxOCBOb3YgMjAxNyAxNjo0NjowNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1pdDAtZjQyLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHkxNXNvNzQ3NTYxM2l0YS40CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTggTm92IDIwMTcgMDg6NDY6MDUgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9QUszK2R0SmJoNFNyT0s3Mkx6dUJibnQrSlpRMm1nRkoxMVJXSGw5V3JORT07CiAgICAgICAgYj1kSzlTbnhQMWJGbGVBRUExUy9US2pkTEZYcVVIdFdsZXZwZjF3QTJaY0ZWcVpvOXR6S3RMaWtRSkg1a0NFMHY1c2oKICAgICAgICAgRUpCRDMxQWRqenl1aGVhZVFDWUZRNmNxWE91TjFlYll6b3l6UEpLQTJFUFo5Nko3dVB4VThYV2F1ZitHcFpuQ0F2TXYKICAgICAgICAgeEgrVUtxT3NYYVZqcmRmNHVEUTJLTURzWUZuSThZZXM0RmtvL25NaVQxdUVZUi80NEZyRG11K2pib0lhNFRGNUpqYUYKICAgICAgICAgOTVZTVZUR3FuclJWZGw1R2ZjdW1BZUtWL1JQVWJDOE54bmtMS0JRbDhvdllpdnVEV21KV0RLVzZxNE4reG5TUTZ2emQKICAgICAgICAgZWI2V3hOcTVHYjQ0dUxQaXdMdG1RRXBCRThOdDVCSGdYamRUTW1RUXhTeThyczdPVFR0OWRwNWxMN2hyMVRxYnF1R28KICAgICAgICAgeXM2Zz09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9QUszK2R0SmJoNFNyT0s3Mkx6dUJibnQrSlpRMm1nRkoxMVJXSGw5V3JORT07CiAgICAgICAgYj1vUk1qWGcrUWk1QXBucnlzSlgrQXBqZ1pobEc0Rm5zK2MraHpkUWVBRXdaY21rZWExRlZIaStnRkEwc2ZuMHNPK1IKICAgICAgICAgYnk5ZUZkQjFMeVVSL0dlSzVuaHF0LzVUUVZ5dXBDQUJvNmJSK3ZTVnE3Nk9RU1lrbGZ4dURkK2IwV2JZSzhlWHhsenYKICAgICAgICAgaXR1U1I2dUE3SzFIM0h6UEVyRHBhdGhDU3g4V1hOeE1hUmVrMWFHZFJUS3JKUkVKZEFnMERnNlcvNFhwUHV4LzNCMlMKICAgICAgICAgTVEzc1lVajd3UXFHNndzZ3JSRzI5T1loa3J2K2ZOOEw3YkxPaFF6aHJ3ZHpIb0pqK2dHaHNUQzZDa2JzV3p6YkJ3QnYKICAgICAgICAgZzViVXhXa1VGb2FwMGlZWlRwL1gyNWQrM2NFWnJObXBtWVhyUWZ5aGQ0ZSs4OWhvMHlRNHpXMm9tMjBYMGFuZlI4c1AKICAgICAgICAgbjNMZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYNDNObVUyVThUYitZcVk2RlpQTzIvKzV5a2Q3MkF0U2gzaklaMGxMRG96Wlo2M2ViNzUKCXBrQjVHNlZOYXJvRjdQQXFpR2pGZ0twdnA3dXMxMzhFNHNBZEdEbz0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TWJpbkU0cVZhc2tKcklzNU91TXUzZWl0eHFDZWpqdk9SYXY2eFM5NGdJb3FRdFFBRkJvUUlPREZ0RHdJZHZqSGIwOWF1OTFISVNVNVpSc3JyQ09yMGM9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjM2LjEwOC42NyB3aXRoIFNNVFAgaWQgdzY0bXIxMTM2NDA0OGl0Yi4xMjYuMTUxMTAyMzU1OTQ4NjsKIFNhdCwgMTggTm92IDIwMTcgMDg6NDU6NTkgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjIuMTc2LjEyOSB3aXRoIEhUVFA7IFNhdCwgMTggTm92IDIwMTcgMDg6NDU6MzkgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDxvcC55OXduMjZvYWtka2hyckBkZXNrdG9wLTJraHNrNDQ+ClJlZmVyZW5jZXM6IDxvcC55OXduMjZvYWtka2hyckBkZXNrdG9wLTJraHNrNDQ+CkZyb206IEFudG9uIFRhbmFzZW5rbyA8YXRnLnNsZWVwbGVzc0BnbWFpbC5jb20+CkRhdGU6IFNhdCwgMTggTm92IDIwMTcgMTg6NDU6MzkgKzAyMDAKTWVzc2FnZS1JRDogPENBTVlkbWFzcS1qZkFYUVVqUmh1T2FFZkxuQ2ErWC09dmptPWFjNHRFWWZkaWY2dDNFUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFNlY29uZCBNTkctNjI5NjogTmV3IG9wdGlvbiAtRHN0eWxlLmNvbG9yIGlzIG5vdCB3b3JraW5nClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQ0OWFmYTgyYjU1MDA1NWU0NDk2NzEiCgotLTAwMWExMTQ0OWFmYTgyYjU1MDA1NWU0NDk2NzEKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCkkgd2FzIGFjdHVhbGx5IGdvaW5nIHRvIGFzayBvbiB0aGUgbGlzdCBldmVudHVhbGx5LiBUcmllZCB1c2luZyBpdCB3aXRoIC1CCnRvIG5vIHN1Y2Nlc3MgYSBmZXcgZGF5cyBhZ28uCgpJJ3ZlIGFsc28gaGFkIG5vIGx1Y2sgZmluZGluZyB3aGVyZSB0aGlzIG9wdGlvbiBpcyBkb2N1bWVudGVkIG9uIHRoZSBtYXZlbgpzaXRlLgpUaGUgb25seSBwbGFjZSB0byBsb29rIHdhcyBpbiB0aGUgSmlyYSBhbmQgUFIsIGJ1dCB0aG9zZSBtb3N0bHkgaGF2ZSB0aGUKc3ludGF4IHRoYXQncyBub3QgYWN0dWFsbHkgd2hhdCB3YXMgaW1wbGVtZW50ZWQuCgoyMDE3LTExLTE4IDE3OjMxIEdNVCswMjowMCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+OgoKPiBIaSwKPgo+IE1ORy02MjIwWzFdIHdhcyBpbmNvbXBsZXRlLCB3aGljaCB3aWxsIGJlIGZpeGVkIHdpdGggTU5HLTYyOTZbMl0uCj4KPiBDb21taXQ6IGh0dHBzOi8vZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9bWF2ZW4uZ2l0O2E9Y29tbQo+IGl0O2g9YjJhZmFmZTUKPiBDSTogICAgIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tMy4KPiB4LWplbmtpbnNmaWxlL2pvYi9NTkctNjI5Ni8KPgo+IFdobyB3YW50cyB0byBzZWNvbmQgdGhpcz8KPgo+IHRoYW5rcywKPiBSb2JlcnQKPgo+IFsxXSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MjIwCj4gWzJdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyOTYKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCgotLSAKUmVnYXJkcywKQW50b24uCgotLTAwMWExMTQ0OWFmYTgyYjU1MDA1NWU0NDk2NzEtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDY5Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgRGVjICAxIDE4OjE5OjQyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDY5Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyQjNCMDE3QjA5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgIDEgRGVjIDIwMTcgMTg6MTk6NDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzMzY0MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxIERlYyAyMDE3IDE4OjE5OjQxIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMzU2NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxIERlYyAyMDE3IDE4OjE5OjQxIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzM1NTMgaW52b2tlZCBieSB1aWQgOTkpOyAxIERlYyAyMDE3IDE4OjE5OjQxIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAwMSBEZWMgMjAxNyAxODoxOTo0MSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEFEMEI0MTgwN0IwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAgMSBEZWMgMjAxNyAxODoxOTo0MCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuOTgKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi45OCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIEhUTUxfTUVTU0FHRT0yLAoJS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjVdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9aW5maW5pdHktbnUuMjAxNTA2MjMuZ2FwcHNzbXRwLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFpXN2JPUzdwQ1hFeiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCUZyaSwgIDEgRGVjIDIwMTcgMTg6MTk6MzcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC11YTAtZjE4Mi5nb29nbGUuY29tIChtYWlsLXVhMC1mMTgyLmdvb2dsZS5jb20gWzIwOS44NS4yMTcuMTgyXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDU4NTI0NUYyNEMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksICAxIERlYyAyMDE3IDE4OjE5OjM2ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXVhMC1mMTgyLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGoxNHNvODU3MjQxN3VhZy4xMQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDAxIERlYyAyMDE3IDEwOjE5OjM2IC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1pbmZpbml0eS1udS4yMDE1MDYyMy5nYXBwc3NtdHAuY29tOyBzPTIwMTUwNjIzOwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1xdG84WG9xeElzb2ZoNllvVUpXWWxkamY2VGlMblNKK0dybmZodGxudm1JPTsKICAgICAgICBiPVcxZnlmQWtPd05SbTdDT3ZrMVloUDRMRlNnaDNZL3piQkNTVEVHR2JYQWtjZkNwUWt5R01udkpmbXhXUzN5TGRndwogICAgICAgICA1VWc3bFVFOFBIYjlFeXNId3M4RUJOMjYxSWpsbUxYN3hUMEVxc2p5b2F1dG9mTVJaRTZnTU1TN291OHArUzg2VElPeQogICAgICAgICBLcUpLMXk2VkxuQTlvWlorOEpZTTd1RVorMUt2aDNPVmN4aU1acDlHOHUwcUZsRS9adEV0aXlhazVDM3FvRWduamhVSQogICAgICAgICArZFlobDdwZnRuKzJFUTlvRVFzR1ZuTWRzL3pXODMxbzJaQzhhVXpvZ1pQWUp6amxza2VybCtOeHl4bWk2QWVIeHh2WgogICAgICAgICBKZWpwcU8vL084QkVtZC9DRE1xY3JIbS9zQVhoNGRkaXFmajZYZGVGVVl3RnB4Z1dhUEtsbG9oT0kwMjFMTlN1Y0ZMKwogICAgICAgICB6WXp3PT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1xdG84WG9xeElzb2ZoNllvVUpXWWxkamY2VGlMblNKK0dybmZodGxudm1JPTsKICAgICAgICBiPWpWeGNkeGV6ekJQSjNiTlZnM0xnYVNEK3ZYRHBoMkpSd3o0NUQwSU1Uc2RyTXgyRHZPajNiS2xVWUxBckhDc1cvcwogICAgICAgICB3cFluc3RZM3lsK2R1YmF3aWVZeHlueHh2b2diN1ZwWlI5TW80QW1kNFV5cEJxNm9GR2ZPWHJrakt2SFJqWUgzcEhZVgogICAgICAgICBjYmRlQlZVWjdESHQ1clA0c2RpUWQ3R0I3RUQrYTFtN3c0M2FDMmRCM010MTRVTmJ6eW55c3ZMbXBTcDIvQ2R3LzVrOAogICAgICAgICBudm5taVhnY29kMnpZUGtHQndOTzdMamxrY2pBSTlQNG1kemJ6L21hNVNhaVQ1RU1JVDNnenZBVlE1SHlUL0xiQjIrLwogICAgICAgICBMV1d4bjFkM2xGcUNnVDNXQko3VitaYXJLdGJ2NU90MVlMSS9tUm1vU0tLbUpGQW5DcENEcUxUNVVmLy85b0J2R1hiTQogICAgICAgICAxSUZnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg1Yjk3NTc5cXJFVGdKTlFwU3BxODBRMjQrdWJ5eGZ6MzF2VTZBeS9TeWxrOTNnRGFRYgoJYmpCdVlqay9uZ0VUMTR2ZXl6dWxiZ2E2RVl6c25YQi9LaDN5elFJMHBIek4KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TWJ3MEJTK0lSVmNVTDcxT1JzbVh0bVk3TVBqOVUrQ0RlcTZJbU5EY29BRXRxRnNnaklIN0wwbGlRUXRFOU5XZXd0eHJCVG10YW56cmJ0YURaMDdZYnc9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjE3Ni4xLjIwNiB3aXRoIFNNVFAgaWQgNzJtcjU0Nzk1Mzl1YWwuMjQuMTUxMjE1MjM3NDYzMDsgRnJpLAogMDEgRGVjIDIwMTcgMTA6MTk6MzQgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjE3Ni4xNi4yMTQgd2l0aCBIVFRQOyBGcmksIDEgRGVjIDIwMTcgMTA6MTk6MTQgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDw4MWI0OWJhYS04ZDQzLWMwNGQtOGYwNy0wNWEwZDA0ODFjYmFAc3QuaW5mb3JtYXRpay50dS1kYXJtc3RhZHQuZGU+ClJlZmVyZW5jZXM6IDxDQVBMcFJRTDY9M3FrekFlPUZnUnJlaGVHeGZraXlkVXFCZHIteURDVm9HZVpUenJxYkFAbWFpbC5nbWFpbC5jb20+CiA8Q0FQb3lCcVRvLWFucGhMK0x5SFY2YmtHTlVNZDF3MjdGS2syWlBuX2ZkMXY3ZnQ5UXR3QG1haWwuZ21haWwuY29tPgogPENBTWtfQmVnQ0dTa3JLWmF0RHNkX0Zhcll3ZmQtbVpYOEFxcURHUi1NekoxNUdrZCtxd0BtYWlsLmdtYWlsLmNvbT4KIDxDQVBveUJxUTd3V0RSUlY1OWNpbnV2VWljblVMbXRqcTVyQ2lUektZV2dYWUhHVz1HaVFAbWFpbC5nbWFpbC5jb20+IDw4MWI0OWJhYS04ZDQzLWMwNGQtOGYwNy0wNWEwZDA0ODFjYmFAc3QuaW5mb3JtYXRpay50dS1kYXJtc3RhZHQuZGU+CkZyb206IEJyaWFuIEZveCA8YnJpYW5mQGluZmluaXR5Lm51PgpEYXRlOiBGcmksIDEgRGVjIDIwMTcgMTM6MTk6MTQgLTA1MDAKTWVzc2FnZS1JRDogPENBTWtfQmVnPWpkRk1TblNNamoraU1Ta2t1YjFiOVlkT0FHcFNkWHdwREI3OVRxQWo1UUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIE1hdmVuIEluZGV4ZXIgNi4wLjAKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExM2RjNTFlMjJmMTgyMDU1ZjRiNjk4MCIKCi0tMDAxYTExM2RjNTFlMjJmMTgyMDU1ZjRiNjk4MApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKT24gRnJpLCBEZWMgMSwgMjAxNyBhdCAzOjE5IEFNLCBBbmRyZWFzIFNld2UgPApzZXdlQHN0LmluZm9ybWF0aWsudHUtZGFybXN0YWR0LmRlPiB3cm90ZToKCj4gT2xpdmllciBMYW15IHdyb3RlOgo+ID4gcHJvYmFibHkgbm8gaXNzdWVzIGZvciBzdXJlLgo+ID4gSSBqdXN0IGRvbid0IGtub3cgaWYgd2Ugd2lsbCBiZSBhYmxlIHRvIHN0aWxsIGRvd25sb2FkIHRoZSBpbmRleCBmcm9tCj4gPiBjZW50cmFsIGFuZCB1c2UgaXQgd2l0aCB0aGlzIG5ldyB2ZXJzaW9uCj4gPiBUQkggSSBoYXZlbid0IGRvbmUgYW55IHRlc3RpbmcgZXRjLi4uLiBzbyBpdCdzIGp1c3QgcXVlc3Rpb25zIDotKQo+Cj4gRllJLCBteSB0ZXN0aW5nIGluY2x1ZGVkIGRvd25sb2FkaW5nIHRoZSBpbmRleCBmcm9tIENlbnRyYWwgKHRvIGJlCj4gcHJlY2lzZTogaXRzIHVrLm1hdmVuLm9yZyBtaXJyb3IpCgoKZndpdyB0aGlzIGFsbCBqdXN0IHBvaW50cyB0byB0aGUgZmFzdGx5IGNkbiB0aGVzZSBkYXlzLCBzbyBpdCdzIHRoZSBzYW1lCnRoaW5nIHlvdSdsbCBnZXQgdXNpbmcgcmVwbzEubWF2ZW4ub3JnLiAodGhpcyB1cmwgZ29lcyBiYWNrIHRvIHByZSBjZG4gd2hlbgp3ZSBkaWQgYWN0dWFsbHkgaGF2ZSBzZXBhcmF0ZSBwaHlzaWNhbCBzeXN0ZW1zLgoKCgo+IHdpdGggdGhlIHN0YWdlZCBJbmRleGVyIDYuMC4wLiBTbywgdGhlCj4gY3VycmVudCBjb2RlIGl0cyBhYmxlIHRvIGNvbnN1bWUgdGhlIGluZGV4IGN1cnJlbnRseSBwcm9kdWNlZCBmb3IKPiBDZW50cmFsLCBwcmVzdW1hYmx5IGJ5IEluZGV4ZXIgNS54Lgo+Cj4gSG9wZSB0aGF0IGhlbHBzLgo+Cj4gQmVzdCB3aXNoZXMsCj4KPiBBbmRyZWFzCj4KPgoKLS0wMDFhMTEzZGM1MWUyMmYxODIwNTVmNGI2OTgwLS0KCkZyb20gZGV2LXJldHVybi0xMjQ2ODgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE5vdiAzMCAyMjowMjozOCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ2ODgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMDczQzExMERFNAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDMwIE5vdiAyMDE3IDIyOjAyOjM4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTg3MjMgaW52b2tlZCBieSB1aWQgNTAwKTsgMzAgTm92IDIwMTcgMjI6MDI6MzcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk4NjM5IGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIE5vdiAyMDE3IDIyOjAyOjM3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTg2MjYgaW52b2tlZCBieSB1aWQgOTkpOyAzMCBOb3YgMjAxNyAyMjowMjozNyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMzAgTm92IDIwMTcgMjI6MDI6MzcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBEMkY5OUM1QzkxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAzMCBOb3YgMjAxNyAyMjowMjozNiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuNjgKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi42OCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIEhUTUxfTUVTU0FHRT0yLAoJS0FNX05VTVNVQkpFQ1Q9MC41LCBLQl9XQU1fRlJPTV9OQU1FX1NJTkdMRVdPUkQ9MC4yLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9aW5maW5pdHktbnUuMjAxNTA2MjMuZ2FwcHNzbXRwLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgYm5KVUwzM0R2RFJEIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVGh1LCAzMCBOb3YgMjAxNyAyMjowMjozNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXZrMC1mNTMuZ29vZ2xlLmNvbSAobWFpbC12azAtZjUzLmdvb2dsZS5jb20gWzIwOS44NS4yMTMuNTNdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQzBCQzU1RjU4OQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMzAgTm92IDIwMTcgMjI6MDI6MzMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdmswLWY1My5nb29nbGUuY29tIHdpdGggU01UUCBpZCBqMTI2c280NDEyNzU5dmtlLjEKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAzMCBOb3YgMjAxNyAxNDowMjozMyAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9aW5maW5pdHktbnUuMjAxNTA2MjMuZ2FwcHNzbXRwLmNvbTsgcz0yMDE1MDYyMzsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Sng2WHpMMGYxVWZreWZqeXpTNFpybWdCWjd2dmdjYjQ4cEs5aitLVUJDUT07CiAgICAgICAgYj1FSUlVNi9WUUhQbFY0cmp0WXNCdU02d0xZanpFTVJVSUJVcWhlMDNhVm9wb1hwY0ZiVHUvblZJSStzN3Q5Zk1mSE8KICAgICAgICAgd1JjUlhHYWN4Yko5eW1aM3VnSjVlSzVBRTdCRGlvUUlwZmVYdUkvelJXcUx2VG9zOGFTamRFUzM3Y09XV0hFZ2hGTW8KICAgICAgICAgbHB4SjNDeW1XWXErR0YrUDhXd3FVTDNrSHVVd3hKSU91T1ZaOG51V2ZqRVdidWxJbmZvWm1KMjVjUC9JdUJ0MHR3UVMKICAgICAgICAgZUltZWlCL3Y0NFdibUZSMVdoWWRIazBZK2M3YkI4Tmp2cjkybUp1eTlVU3RzbnlQaEdkOGFhRTdlMSt4Sks3NG1XSHoKICAgICAgICAgY0J6Wmo2RDl3UDhUZGJmc1psZ3R5WlJ0TmlQYkxKUG9TUXZ4L05iVGM5Qmk0bjhCem9KUHVjczEwUnpNTGN2YlpUMmkKICAgICAgICAgdHhZQT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Sng2WHpMMGYxVWZreWZqeXpTNFpybWdCWjd2dmdjYjQ4cEs5aitLVUJDUT07CiAgICAgICAgYj1zN0Y5cEhzYzZ6Smwyb0k1cWxiM2hhbU4zbVYyVFc4N1J4cXZEdUtjY0JOUnB3U2g1ajFCdmZIMFZ3QmZzYmkxOE0KICAgICAgICAgSHZKTWQyaHZucnlrVUFMbkN3SjRxOEpzeEVVbUVURGZQTlk0SE9yZmRnOTY3ZXJmSllkY0k3V2xmRk1pNjFEMFBQVkoKICAgICAgICAgRXNBWFVEajNJdng0cGlJL0E3WWVGdlFDY1R2eXZBVEloSWplb3o2M1Y4a2I1S1JMQ080VkhvcEFSdDBVQVNxWE9jeUUKICAgICAgICAga0FWUmxNTHZ2dUl1dTl0MkNXdzRYRGJOOEZUR3JNOXkxRVM2dXdkd1l3clhPOXM1WkdnYzJzUkpGWjBjU1lsOFRQM1IKICAgICAgICAgcFZkRXRvWThFZTBCQ2NmNzhKL244Rm9pQ1MvTWplZ1RqRkZXVWk5dUp6WndnblhvcHNlWkRXWnd5cENKNW9YbEsycUMKICAgICAgICAgaUxJQT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUtHQjNtSmcrUWo3a09UNm11Mnc5L3U0d2wydFBRUnlnNCthUG9ieW9rRjlZZW9kdjhZK3lZb3EKCUFQb0NqQUNpazJrSDVDZ0RyZk1JRnQ5WENkQjN5dkVGZ1NWdUNsWm1JaUtIClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1iK1d5L05paG8ybDBDOWYyYXNLcWxSTFJxY0hRc3hXaHRSZnowYzJ6TjgxUXVsUmFpZU1jTVJiQ3JGU0g5dlVQU1hYbDlkSDEwRkFMRGpMQzIzWlZNPQpYLVJlY2VpdmVkOiBieSAxMC4zMS4zLjE0NyB3aXRoIFNNVFAgaWQgZjE5bXIzMDMxNzM1dmtpLjg0LjE1MTIwNzkzNDY1MTI7IFRodSwKIDMwIE5vdiAyMDE3IDE0OjAyOjI2IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzYuMTYuMjE0IHdpdGggSFRUUDsgVGh1LCAzMCBOb3YgMjAxNyAxNDowMjowNSAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPENBUG95QnFUby1hbnBoTCtMeUhWNmJrR05VTWQxdzI3RktrMlpQbl9mZDF2N2Z0OVF0d0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBUExwUlFMNj0zcWt6QWU9RmdScmVoZUd4ZmtpeWRVcUJkci15RENWb0dlWlR6cnFiQUBtYWlsLmdtYWlsLmNvbT4KIDxDQVBveUJxVG8tYW5waEwrTHlIVjZia0dOVU1kMXcyN0ZLazJaUG5fZmQxdjdmdDlRdHdAbWFpbC5nbWFpbC5jb20+CkZyb206IEJyaWFuIEZveCA8YnJpYW5mQGluZmluaXR5Lm51PgpEYXRlOiBUaHUsIDMwIE5vdiAyMDE3IDE3OjAyOjA1IC0wNTAwCk1lc3NhZ2UtSUQ6IDxDQU1rX0JlZ0NHU2tyS1phdERzZF9GYXJZd2ZkLW1aWDhBcXFER1ItTXpKMTVHa2QrcXdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBNYXZlbiBJbmRleGVyIDYuMC4wClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQyNzk3ODUyNDhiMjA1NWYzYTY4MmIiCgotLTAwMWExMTQyNzk3ODUyNDhiMjA1NWYzYTY4MmIKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKRXllYmFsbGluZyB0aGUgbGlzdCwgbW9zdCBvZiB0aGUgY2hhbmdlcyBzZWVtIGlycmVsZXZhbnQgdG8gdGhlIGNlbnRyYWwgdXNlCmNhc2UuIElzIHRoZXJlIGFueXRoaW5nIGluIGhlcmUgdGhhdCBtYXR0ZXJzIGZvciBDZW50cmFsIChhbmQgaWYgc28sIHdoYXQKYXJlIHRoZSBiYWNrd2FyZHMgY29tcGF0IGltcGxpY2F0aW9ucz8pCgpPbiBUaHUsIE5vdiAzMCwgMjAxNyBhdCAyOjA3IEFNLCBPbGl2aWVyIExhbXkgPG9sYW15QGFwYWNoZS5vcmc+IHdyb3RlOgoKPiArMQo+Cj4gSSdtIG5vdCBjbGVhciBpZiB0aGlzIG5ldyB2ZXJzaW9uIHdpbGwgYmUgdXNlZCBmb3IgQ2VudHJhbD8KPgo+IE9uIDI4IE5vdmVtYmVyIDIwMTcgYXQgMjE6MjAsIFRhbT1DMz1BMXMgQ3NlcnZlbj1DMz1BMWsgPHRhbWFzQGNzZXJ2ZW5hay49Cm5ldD4gd3JvdGU6Cj4KPiA+IFtWT1RFXSBSZWxlYXNlIE1hdmVuIEluZGV4ZXIgNi4wLjAKPiA+Cj4gPiBIaSwKPiA+Cj4gPiBXZSBzb2x2ZWQgMjUgaXNzdWVzOgo+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhPwo+ID4gcHJvamVjdElkPTNEMTIzMTc1MjMmdmVyc2lvbj0zRDEyMzMwODAyCj4gPgo+ID4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvcHJvamVjdHMvTUlOREVYRVIvaXNzdWVzLwo+ID4gTUlOREVYRVItODE/ZmlsdGVyPTNEYWxsb3Blbmlzc3Vlcwo+ID4KPiA+IFN0YWdpbmcgcmVwbzoKPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzkKPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NlcnZpY2UvbG9jYWwvcmVwb3NpdG9yaWVzLwo+ID4gbWF2ZW4tMTM3OS9jb250ZW50L29yZy9hcGFjaGUvbWF2ZW4vaW5kZXhlci9tYXZlbi1pbmRleGVyLzYuCj4gPiAwLjAvbWF2ZW4taW5kZXhlci02LjAuMC1zb3VyY2UtcmVsZWFzZS56aXAKPiA+Cj4gPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiA+IG1hdmVuLWluZGV4ZXItNi4wLjAtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6Cj4gPiAyNzk5MzlmOGRlZmYwZjU1MTgzNjRjMDZkYTg0N2IzMmFiNjEwOGVkCj4gPgo+ID4gU3RhZ2luZyBzaXRlOgo+ID4gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvbWF2ZW4taW5kZXhlci1hcmNoaXZlcy9tYXZlbi1pbmRleGVyLUxBVEVTVC8KPiA+Cj4gPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiA+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCj4gPgo+ID4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPiA+Cj4gPiBbIF0gKzEKPiA+IFsgXSArMAo+ID4gWyBdIC0xCj4gPgo+ID4gLS0KPiA+IFRoYW5rcywKPiA+IH50fgo+ID4KPgo+Cj4KPiAtLQo+IE9saXZpZXIgTGFteQo+IGh0dHA6Ly90d2l0dGVyLmNvbS9vbGFteSB8IGh0dHA6Ly9saW5rZWRpbi5jb20vaW4vb2xhbXkKPgoKLS0wMDFhMTE0Mjc5Nzg1MjQ4YjIwNTVmM2E2ODJiLS0KCkZyb20gZGV2LXJldHVybi0xMjQzODMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIE5vdiAgMSAxNzoyNjoyNyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzODMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRDNBNDcxNzlGNAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsICAxIE5vdiAyMDE3IDE3OjI2OjI3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDg0OTAgaW52b2tlZCBieSB1aWQgNTAwKTsgMSBOb3YgMjAxNyAxNzoyNjoyNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDg0MDcgaW52b2tlZCBieSB1aWQgNTAwKTsgMSBOb3YgMjAxNyAxNzoyNjoyNyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ4Mzc5IGludm9rZWQgYnkgdWlkIDk5KTsgMSBOb3YgMjAxNyAxNzoyNjoyNyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMDEgTm92IDIwMTcgMTc6MjY6MjcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA0MUVBNzFBNDE5QwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgIDEgTm92IDIwMTcgMTc6MjY6MjYgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4zClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjMgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBIVE1MX01FU1NBR0U9MiwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1pbmZpbml0eS1udS4yMDE1MDYyMy5nYXBwc3NtdHAuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCA4d3hkOV90R1BMZEkgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsICAxIE5vdiAyMDE3IDE3OjI2OjIzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtdmswLWY0My5nb29nbGUuY29tIChtYWlsLXZrMC1mNDMuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxMy40M10pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBCNzhEMzVGREJGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAgMSBOb3YgMjAxNyAxNzoyNjoyMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC12azAtZjQzLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGsxMjNzbzE4NzkwMDF2a2IuMwogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDAxIE5vdiAyMDE3IDEwOjI2OjIyIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1pbmZpbml0eS1udS4yMDE1MDYyMy5nYXBwc3NtdHAuY29tOyBzPTIwMTUwNjIzOwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1FSVI0OXgvYlhzNEFHVXJ1dDFWanFkZ09UbW8yYTFFd2NHQjVJNkU1d0pVPTsKICAgICAgICBiPXNhVHErby9qZldQTC9IM1hlY2VzNWUxREdjeGtjc1FKeGFRQldadGtld2QvdHQ3Ry92L0F4bzBmUFIwaUdwd3VrSwogICAgICAgICBzQWFoZDJ4YjhyUml4QzRSU0krYm1QdnJVd2dNNWJXWmVLVlB2elBrMHFma29yK0tGK1Y3S0crSFIwUXVPTC9uZEljVwogICAgICAgICBqbW1TdjN0RFJwQ0JCZ2pWRGpTank2ZnFvS3AwSys1N2xidC9maU03NjhPTzU1VkN4NFJDYkpzRnBDV3R6bkcxWmhySQogICAgICAgICB4c1hibmxCTE4wSW9CNXl2TzQ0am54b2J6Q0FPUVVHOGZnNmNXYXVGcUR6YVVWOVh0RlRYNTdaZ0loaUJZMzczeWJQVgogICAgICAgICBFZXhqbW1sYndhczFoMHE0Lzh6dWZEWkhMODVzV2cwWU5JclBmZENVWmIzRmhBQ3FGYmkzMy9LKzRGY3lQVldubUxTNwogICAgICAgICBWN0J3PT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1FSVI0OXgvYlhzNEFHVXJ1dDFWanFkZ09UbW8yYTFFd2NHQjVJNkU1d0pVPTsKICAgICAgICBiPVhLOEZacld1bUh6RW8rbmppOFhwam5BWDlsSmt5ZjJ1bXBLbHpBYUxNbGpSUDBTU2UraU1heVM2SVVBWXQxdytLQgogICAgICAgICAzOXNtSHJSWXVPdlc1RDhhRjZWeUpaTkJ6Y1dwNi9IdzFXb2ZKdXFNRzd0OGo2b1NlVEJPTEFBN2tRdnFGcm1tRUEwSgogICAgICAgICBmemxSSTlCczlXZUdZSE83VVM0NHl6QUZhU2V1UlFFcnpYaG5vWW05RkVoa1V5OXJkN2F5NndMQWZ6dmRrT0I1cUs4QwogICAgICAgICBob0dNNC9QcFJOMGs2Y3pDN3ZFSU1XY21iNlIvb2Q4SjJUV012VGlxQjdqcGdpY0ZUc2lkSGtZL1hjU05uNFc4bzVYRQogICAgICAgICBidXNhMXhJYlVYb2poRm42dm5wemthN3NvU01vZWhsYXc5Nk1XaEw2WElaY2ZBUENVNEk3blNpK0VQWjM3Z0FmdDdDSQogICAgICAgICB1cDFnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FXY1NTVEFIempVUlBjTjJnb0YvWTROMlo4MjBsWEtCSk9IY0FBNFhoaVlpK28vNEZBQgoJME1uQUFrdERSeHNJTkZIclMyY0J5eVVPdisyWWQ1eHc0d2ZLQmxPNVRYUG4KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFCaFFwK1RjSmVWYVdmTDg4Skd4L3lsOGlVQTZnbVJSaEh4L3pCbDVUN05kM1dKM0hZWlpYejEybW5sOUdWQnRLNm1EZUNka3drSW9XZzRlWU9aMGhlWkVjemM9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjMxLjE0MC4xMzggd2l0aCBTTVRQIGlkIG8xMzJtcjQ4MDU0MHZrZC4xODIuMTUwOTU1NzE4MTMzNTsKIFdlZCwgMDEgTm92IDIwMTcgMTA6MjY6MjEgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjE3Ni4xOS4yMDEgd2l0aCBIVFRQOyBXZWQsIDEgTm92IDIwMTcgMTA6MjY6MDAgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxvcC55OHRuYTZ1ZGtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KUmVmZXJlbmNlczogPG9wLnk4dG5hNnVka2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpGcm9tOiBCcmlhbiBGb3ggPGJyaWFuZkBpbmZpbml0eS5udT4KRGF0ZTogV2VkLCAxIE5vdiAyMDE3IDEzOjI2OjAwIC0wNDAwCk1lc3NhZ2UtSUQ6IDxDQU1rX0JlZ0dhRkgrM0RPMVB1aXVOSkcteXcyU1NUR3hrYjRaTnRuSllOWHp2QWdmPXdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiBKRGVwclNjYW4gUGx1Z2luClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQyNTZkNDhmZTBmNDA1NWNlZjJiMGEiCgotLTAwMWExMTQyNTZkNDhmZTBmNDA1NWNlZjJiMGEKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCkFsbCBzZXQuCgpPbiBTYXQsIE9jdCAyOCwgMjAxNyBhdCA5OjQ4IEFNLCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Cndyb3RlOgoKPiBIaSwKPgo+IEknZCBsaWtlIHRvIHByZXBhcmUgYW4gYWxwaGEgcmVsZWFzZSBvZiB0aGUgTWF2ZW4gSkRlcHJTY2FuIFBsdWdpbgo+IEl0IGlzIGEgd3JhcHBlciBhcm91bmQgdGhlIGpkZXByc2NhbiB0b29sWzFdLCBhdmFpbGFibGUgc2luY2UgSmF2YSA5Lgo+Cj4gICBZb3UgdXNlIHRoZSBqZGVwcnNjYW4gdG9vbCBhcyBhIHN0YXRpYyBhbmFseXNpcyB0b29sIHRoYXQgc2NhbnMgYSBqYXIKPiBmaWxlIChvciBzb21lIG90aGVyIGFnZ3JlZ2F0aW9uIG9mIGNsYXNzIGZpbGVzKSBmb3IgdXNlcyBvZiBkZXByZWNhdGVkIEFQSQo+IGVsZW1lbnRzLgo+Cj4gSXQgd291bGQgYmUgbmljZSBpZiBzb21lIGNvdWxkIGEgcmV2aWV3IHVwZnJvbnQuIEFueSBmZWVkYmFjayBpdAo+IGFwcHJlY2lhdGVkLgo+Cj4gQEJyaWFuLCBjYW4geW91IGNyZWF0ZSBhIG5ldyBKaXJhIHByb2plY3Q6IE1KREVQUlNDQU4gPwo+Cj4gdGhhbmtzLAo+IFJvYmVydAo+Cj4gWzFdIGh0dHBzOi8vZG9jcy5vcmFjbGUuY29tL2phdmFzZS85L3Rvb2xzL2pkZXByc2Nhbi5odG0KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCi0tMDAxYTExNDI1NmQ0OGZlMGY0MDU1Y2VmMmIwYS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MTA5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBTZXAgMjcgMjI6MDA6MDUgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTA5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEEwOTBCMTBFNDEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyNyBTZXAgMjAxNyAyMjowMDowNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ1NzQyIGludm9rZWQgYnkgdWlkIDUwMCk7IDI3IFNlcCAyMDE3IDIyOjAwOjA1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0NTY2OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBTZXAgMjAxNyAyMjowMDowNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ1NjU2IGludm9rZWQgYnkgdWlkIDk5KTsgMjcgU2VwIDIwMTcgMjI6MDA6MDQgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDI3IFNlcCAyMDE3IDIyOjAwOjA0ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNzNFMzBEMDJFQgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjcgU2VwIDIwMTcgMjI6MDA6MDQgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjQ4ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuNDggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBIVE1MX01FU1NBR0U9MiwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41XSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWluZmluaXR5LW51LjIwMTUwNjIzLmdhcHBzc210cC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHNkWGNQOTZXamhXViBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgMjcgU2VwIDIwMTcgMjI6MDA6MDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC11YTAtZjE2OS5nb29nbGUuY29tIChtYWlsLXVhMC1mMTY5Lmdvb2dsZS5jb20gWzIwOS44NS4yMTcuMTY5XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEQ5N0NCNUZENDgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDI3IFNlcCAyMDE3IDIyOjAwOjAxICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXVhMC1mMTY5Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHYxMnNvMzQxNjk5dWFmLjUKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyNyBTZXAgMjAxNyAxNTowMDowMSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9aW5maW5pdHktbnUuMjAxNTA2MjMuZ2FwcHNzbXRwLmNvbTsgcz0yMDE1MDYyMzsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9MzB1YUR4bFdES0ZEMVkwSnB6VEZmMEErK3NVK3ZrM1I3VXQ5N09GUzZuYz07CiAgICAgICAgYj1Tc3lFQ25iaHZrZ3JDSktsSmxGbGkzaExzYWxuYmxKM0l2UkF1M1l4NmFKdElsQ1pkNWh3OEhaVXg4Vk4wN09zbGcKICAgICAgICAgWHVTa05xV09PKythbzVSZjV4dTZ1MkU5N0hPUmFPdkx3anVWa1J6Zm9wOXdrend2OEVZNEk3SG9Ka3Zvei9INzNYU08KICAgICAgICAgdkFvYVVDdXhLS3VXSUNFWDdWYzZkZ3FZR3RPeVlJRjFnOWdWN2JzQWZkaHF5alk0Y0ZOSjBiS293Sk4xVkRNRnZTTEQKICAgICAgICAgckFQSXpUUjZIVkxiQ1BlYkEwdHAvZlhWSUNTNXZ0blhKZkNQSEJNRktSZGhYTzFTVWlncEYrQVdjMHlLMFB2TG5iT2EKICAgICAgICAgaURuR3NNRnVOSTNOTERSY1dxcDU1eHZqWlRJaXYvRkdrbFdyNmV3V1Nsa1kvUWZJV21WOFN5c1BCMHlxWEdlWUFHQWIKICAgICAgICAgSk5PUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9MzB1YUR4bFdES0ZEMVkwSnB6VEZmMEErK3NVK3ZrM1I3VXQ5N09GUzZuYz07CiAgICAgICAgYj1hS1FwL213dVZ1eHkzQUx2YmRsUUxLNk4zdmZOUnN1a1NvNVBxcXd6K3Y4SUpHc0lkM0xnQXB2cUdQRXRWc0NGL08KICAgICAgICAgaDF1QmRFR2tVaVorYmxRcHpHTmpGbGJyckJkajFPR29Hc2Ura2Iwb3MvYWErVU85Q0p4SVNZcEhKeDFmUmhjdnc5T00KICAgICAgICAgQWoxUm80TE5sN2F4WmpNbnZIYVp5VVpHVGZRcDBkWE1zY2tWWGxSbjZKUGN4djJRU2FRamY1ZE9BUlprdkRFZGJudHEKICAgICAgICAgZ3NyZkNZRGM5OEhmSkdlSElrUmRJMWgyK1dJb0ladFpLQ2R3VWRmQWZlVS9HLzNBM1Z4V3d2STl5QmljaUsrdEVrWmUKICAgICAgICAgZmxhVzNIdjlhUjBkRm1rTDJua2o0ZjRKMFNrd0tSWElGUldZTUF5TnZEQUtJV0tvWDJqL0VhZUlGeldVMXFWS2hqTHoKICAgICAgICAgekRhQT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVam1KRnRUMDM3N08rQXIwdW5qUnZXMnB3SkZCc1NOOWZqNzE4alJ4SHorNlBWTVdlYXMKCWZhdXNrSHQvOFJZQzRiNWQrdTcyZkNZWnY5TkdkKzI0eUxtZkw3RVh4YzFDClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FBejF6dVdkUGIreFlQVmh6MGtLZjlMNGxFM3BrWi90c0Fha1h1QjBBREpGNlR2WjNWeEVMM05wcFYvZEY0Q0dUVWN4QWJsSjk5Rk9GMzhwcjU0Z3dRPQpYLVJlY2VpdmVkOiBieSAxMC4xNzYuMjAuMjExIHdpdGggU01UUCBpZCBmMTltcjE3NDA4Nzd1YWUuMTM2LjE1MDY1NDk2MDA3MzQ7CiBXZWQsIDI3IFNlcCAyMDE3IDE1OjAwOjAwIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzYuMTcuMTA0IHdpdGggSFRUUDsgV2VkLCAyNyBTZXAgMjAxNyAxNDo1OTozOSAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPDg2OTc1MjQ4LTVBNzgtNDIxQy1CMEI5LTBCOEM2RTZCRURERkBhcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8NDk1OTUyMkEtMjA5MC00MjM5LTgyMzMtRTMyMDAwREU5QTVCQGFwYWNoZS5vcmc+CiA8Q0FNa19CZWh2LTBDajRrWTFuNjJBMXBWRmU4UGR6NzRFbWE4akNEeHZXY05IQWRmTFVRQG1haWwuZ21haWwuY29tPgogPEJDNDU0QkRBLUMxMTYtNERBNi04MTM1LUMyMEQ1QTM2Qjg1MEBhcGFjaGUub3JnPiA8Q0FNa19CZWp6d1k4N0t5SkpyQ3JMdlZ5VFlXaGlUbj1yZC03Qk9NdUJacjZvMXNoUUFRQG1haWwuZ21haWwuY29tPgogPDg2OTc1MjQ4LTVBNzgtNDIxQy1CMEI5LTBCOEM2RTZCRURERkBhcGFjaGUub3JnPgpGcm9tOiBCcmlhbiBGb3ggPGJyaWFuZkBpbmZpbml0eS5udT4KRGF0ZTogV2VkLCAyNyBTZXAgMjAxNyAxNzo1OTozOSAtMDQwMApNZXNzYWdlLUlEOiA8Q0FNa19CZWd5YUNFMHVhSEJ0ODh3Q0FrK1krK01hdStkSlhkUTN2UkRab0VHSFpqWFZBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogZGVwZW5kZW5jeTpnby1vZmZsaW5lIGJyb2tlbj8KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDU1MjE0YzllNWJhMDU1YTMyZTlhMiIKCi0tMDAxYTExNDU1MjE0YzllNWJhMDU1YTMyZTlhMgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpObywgSSBkb24ndCB0aGluayBpdCB3aWxsIHdvcmsuIFdoYXQgeW91IHJlYWxseSBuZWVkIGlzIGEgcmVwb3NpdG9yeQptYW5hZ2VyIHRvIGNhY2hlIHRoaW5ncyBsb2NhbGx5IGZvciB5b3UuIFRoYXQncyB0aGUgcmVjb21tZW5kZWQgc29sdXRpb24KYW55IHRpbWUgeW91IGZlZWwgbGlrZSB5b3UncmUgZ29pbmcgdG8gYmUgZG93bmxvYWRpbmcgY29tcG9uZW50cyBtb3JlIHRoYW4Kb25jZS4uLndoaWNoIGlzIHJlYWxseSBpbiBldmVyeSBpbnN0YW5jZS4KCk9uIFdlZCwgU2VwIDI3LCAyMDE3IGF0IDc6NTMgQU0sIEJlbmVkaWt0IFJpdHRlciA8YnJpdHRlckBhcGFjaGUub3JnPiB3cm90ZT0KOgoKPiBIZWxsbyBCcmFpbiwKPgo+ID4gQW0gMjYuMDkuMjAxNyB1bSAyMzoxMCBzY2hyaWViIEJyaWFuIEZveCA8YnJpYW5mQGluZmluaXR5Lm51PjoKPiA+Cj4gPiBPbiBNb24sIFNlcCAyNSwgMjAxNyBhdCAyOjEwIFBNLCBCZW5lZGlrdCBSaXR0ZXIgPGJyaXR0ZXJAYXBhY2hlLm9yZz4KPiB3cm90ZToKPiA+Cj4gPj4gSGVsbG8gQnJpYW4sCj4gPj4KPiA+Pj4gQW0gMjAuMDkuMjAxNyB1bSAyMzoxNiBzY2hyaWViIEJyaWFuIEZveCA8YnJpYW5mQGluZmluaXR5Lm51PjoKPiA+Pj4KPiA+Pj4gSXQncyBiZWVuIGEgcmVhbGx5IGxvbmcgdGltZSwgYnV0IEkgcmVjYWxsIHRoYXQgdGhlcmUgd2VyZSBpc3N1ZXMKPiBnZXR0aW5nCj4gPj4+IHRoZSBkZXBlbmRlbmNpZXMgb2YgcGx1Z2lucyBib3VuZCB0byB0aGUgbGlmZWN5Y2xlLiBUaGlzIGxvb2tzIHRvIGJlCj4gdGhlCj4gPj4+IHNhbWUgcHJvYmxlbS4gSSB0aGluayB0aGUgZG9jdW1lbnRhdGlvbiB0YWxrZWQgYWJvdXQgYSB3YXkgdG8gZG8gdGhpcwo+ID4+PiBlZmZlY3RpdmVseS4KPiA+Pgo+ID4+IEk9RTI9ODA9OTl2ZSBsb29rZWQgdGhyb3VnaCB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgZGVwZW5kZW5jeSBwbHVnaW49CiwgYnV0IEkKPiBjYW4KPiA+PiBub3QgZmluZCBhbnl0aGluZyBhYm91dCB0aGlzLiBEbyB5b3UgcmVjYWxsIHdoZXJlIHlvdSBmb3VuZCB0aGF0Cj4gPj4gZG9jdW1lbnRhdGlvbj8KPiA+Pgo+ID4+Cj4gPiBIYSBubywgc2luY2UgSSB3cm90ZSB0aGF0IGdvYWwgMTAgeWVhcnMgYWdvIEknbSBzY3JhdGNoaW5nIHRoZSBkZXB0aCBvZgo+IG15Cj4gPiBtZW1vcnkuIE1heWJlIEkganVzdCBpbnRlbmRlZCB0byBkZXNjcmliZSBpdCA7LSkKPgo+IFRoYW5rIHlvdSBmb3IgeW91ciByZXNwb25zZS4gTWF5YmUgST1FMj04MD05OWxsIGp1c3QgZ2l2ZSBhIGxpdHRsZSBtb3JlIGM9Cm9udGV4dAo+IGFib3V0IHdoYXQgST1FMj04MD05OW0gdHJ5aW5nIHRvIGFjaGlldmUuIE1heWJlIEk9RTI9ODA9OTltIGp1c3QgZG9pbmcgdGg9CmUgd3JvbmcgdGhpbmc6Cj4KPiBJIGhhdmUgYSBDSSBCdWlsZCBpbiBHaXRMYWIsIHdoZXJlIEkgd2FudCB0byBkZWZpbmUgYSBqb2IgdGhhdCBkb3dubG9hZHMKPiBhbGwgdGhlIGFydGlmYWN0cyB3aGljaCBhcmUgbmVlZGVkIGZvciB0aGUgZGlmZmVyZW50IGxpZmVjeWNsZSBwaGFzZXMgYW5kCj4gcGx1Z2luIGV4ZWN1dGlvbnMgYXMgd2VsbCBhcyBhbGwgcHJvamVjdCBkZXBlbmRlbmNpZXMuIEkgb25seSB3YW50IHRvCj4gZG93bmxvYWQgYWxsIHRoZSBzdHVmZiBvbmNlIGFuZCB0aGVuIGNvcHkgdGhlIGFydGlmYWN0cyBiZXR3ZWVuIHRoZSBidWlsZAo+IHN0YWdlcy4gSSB0aG91Z2h0IHRoaXMgd291bGQgYmUgcG9zc2libGUgd2l0aCBkZXBlbmRlbmN5OmdvLW9mZmxpbmUgc28gdGg9CmF0Cj4gbGF0ZXIgc3RlcHMgY2FuIGJlIHJ1biB3aXRoIG12biAtby4KPiBBbSBJIG1pc3Npbmcgc29tZXRoaW5nIG9yIGlzIHRoaXMgc2ltcGx5IG5vdCBwb3NzaWJsZSBhdCB0aGUgbW9tZW50Pwo+Cj4gUmVnYXJkcywKPiBCZW5lZGlrdAo+Cj4gPgo+ID4KPiA+PiBSZWdhcmRzLAo+ID4+IEJlbmVkaWt0Cj4gPj4KPiA+Pj4KPiA+Pj4gT24gV2VkLCBTZXAgMjAsIDIwMTcgYXQgNDo0OCBQTSwgQmVuZWRpa3QgUml0dGVyIDxicml0dGVyQGFwYWNoZS5vcmc+Cj4gPj4gd3JvdGU6Cj4gPj4+Cj4gPj4+PiBIaSwKPiA+Pj4+Cj4gPj4+PiBhcyBmYXIgYXMgSSB1bmRlcnN0YW5kIGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBjYWxsIG12bgo+ID4+Pj4gZGVwZW5kZW5jeTpnby1vZmZsaW5lIGFuZCBmcm9tIHRoZXJlIG9uIHdvcmsgaW4gb2ZmbGluZSBtb2RlIChtdm4gLW89CikuCj4gPj4+PiBJPUUyPTgwPTk5dmUgcHV0IGEgbWluaW1hbCBleGFtcGxlIHRvZ2V0aGVyIFsxXSB0aGF0IGRlbW9uc3RyYXRlcyB0aD0KYXQgdGhpcwo+ID4+Pj4gY3VycmVudGx5IGRvZXMgbm90IHdvcmsuIEFtIEkgbWlzc2luZyBhbnl0aGluZz8KPiA+Pj4+Cj4gPj4+PiBUaGFuayB5b3UhCj4gPj4+PiBCZW5lZGlrdAo+ID4+Pj4KPiA+Pj4+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vYnJpdHRlci9kZXBlbmRlbmN5LXBsdWdpbi1idWcKPiA+Pj4+Cj4gPj4+Pgo+ID4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0KPiA+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4+Pgo+ID4+Pj4KPiA+Pgo+ID4+Cj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4KPiA+Pgo+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+CgotLTAwMWExMTQ1NTIxNGM5ZTViYTA1NWEzMmU5YTItLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDA4NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgU2VwIDIwIDIxOjE3OjEzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDA4NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA5OTVERDEwMDUxCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMjAgU2VwIDIwMTcgMjE6MTc6MTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5NjI2OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBTZXAgMjAxNyAyMToxNzoxMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTYxODUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgU2VwIDIwMTcgMjE6MTc6MTMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NjE0OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDIwIFNlcCAyMDE3IDIxOjE3OjEyIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAyMCBTZXAgMjAxNyAyMToxNzoxMiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDY4QzUzQzkwMTQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDIwIFNlcCAyMDE3IDIxOjE3OjEyICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS45OApYLVNwYW0tTGV2ZWw6ICoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTEuOTggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBIVE1MX01FU1NBR0U9MiwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWluZmluaXR5LW51LjIwMTUwNjIzLmdhcHBzc210cC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDVLM1cyVzBUa2N4VCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgMjAgU2VwIDIwMTcgMjE6MTc6MTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC12azAtZjQ5Lmdvb2dsZS5jb20gKG1haWwtdmswLWY0OS5nb29nbGUuY29tIFsyMDkuODUuMjEzLjQ5XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDBEMjYwNUYyOTcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDIwIFNlcCAyMDE3IDIxOjE3OjA5ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXZrMC1mNDkuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgaDE5MXNvMjE0Mjk3OHZrZS42CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjAgU2VwIDIwMTcgMTQ6MTc6MDkgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWluZmluaXR5LW51LjIwMTUwNjIzLmdhcHBzc210cC5jb207IHM9MjAxNTA2MjM7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPURQNEl3OVRKZUo2RS9Vb0Z6NG1jZ2plU3FEY3RFZlNEVTU0bFZRMGRzTEk9OwogICAgICAgIGI9RXFRRUtOSk9IVVZsU2t2cFd1Y3FEamZpeW5nRG5BanU0ZWN2U2pLMnFMZFA0WklhUU5KaVFUbTZQbGZpVXpla2VmCiAgICAgICAgIDdlQUplakcyZHJ3QmdCNDFoc0FWUmE1TDFFTW8xTkVJeENVVGxsN0J0Z1k2VUJnTCtNOHY1VzJ1Ly8wdXVyRmkrRFNwCiAgICAgICAgIGtVUHlRcFE3bjQyd0hZUWQ2UHBITFdySy9YMm1IdFZZV1pLWnVxd2huUVVUdW00NEdxRGdHcHZoRU9WeWhqcFArUWpBCiAgICAgICAgIHhJUytTc1prWkdrdFNYWmQxdkEvN3lOZ2tnWEFqWStCQ2F6WHM2TU5RNVZCT3BCL1FneTFQVnI3bzV3Q3Zqd1JwRWdvCiAgICAgICAgIEx5TVdMOGtuOHgyazZSa2NEYit0dzdPckFYck1RbU9IZ0dlSnZScVNNcTBCWXg2OWxqUXdBai9YczkvWkZxd3RxaWR6CiAgICAgICAgIDVCN0E9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPURQNEl3OVRKZUo2RS9Vb0Z6NG1jZ2plU3FEY3RFZlNEVTU0bFZRMGRzTEk9OwogICAgICAgIGI9RmZVZklhQzdTNVpJQU9XTk4ybmRITVlTbUZzeTFQQStJTXM3Zzl6UjkydDhNd1hFVkg5bEdoYm1FcGdMYjVEUTRECiAgICAgICAgIERzVEdJcjBYV1h4YzBWbStOQWZvL2xIRUpZRzJIeDhTOUdSWml6STJxQVExRk9ZUTdVWGxHdTZhOVF3WHFPbDFtTHZmCiAgICAgICAgIFZZemFnT09HS1M5UTV4N1NEMmU1YnYwbjlucHdkWlRUWS9ZTVFlaFVsMHlVTExhbXZpam1SeEZNcVd6S2NNaStxcmJGCiAgICAgICAgIDRucEJ4VUcwVk83cmlSMkw5U2FxR3hheVBqNEoyK05qeGZkeTl0eDBQSnc5SG9zaVNHLzlhblJkZ0l6aGU0c1hsOW1nCiAgICAgICAgIEMwdzNSeS81VnJhZlAwcHFYUVZUV0FlelN4amFEdlVIU0VLNGkveTRWOEdxOUtCNkxjZjc0NElPaXhYS0FDTFBsRnR0CiAgICAgICAgIGZKRXc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWlJVWJ6dFFBZGcvcHZYNnRSNCsrRTFJRW9PQ3BYc2VoL21jb1ZMazNXUVVsbTl1bTYvCglSMThZNXhnVENDenIvNnQ0TERaYXRoSmVESVk0UitzK1BKUlFxSWM3RGl4WQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRRC92aENLeWI1dkdvYTY0eG9uYStKTXpsWTBuZnE0bmlETGtLWmMyaUdLV0VNNGVoYjRJTlAxZzNSZE1VRk5EVFoxU2htM1I5QWFLeGxKZmFCcVE4ND0KWC1SZWNlaXZlZDogYnkgMTAuMzEuMTQwLjYgd2l0aCBTTVRQIGlkIG82bXI1NzE5NHZrZC4xODIuMTUwNTk0MjIyMjY5NjsgV2VkLAogMjAgU2VwIDIwMTcgMTQ6MTc6MDIgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjE3Ni4xNy4xMDQgd2l0aCBIVFRQOyBXZWQsIDIwIFNlcCAyMDE3IDE0OjE2OjQyIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8NDk1OTUyMkEtMjA5MC00MjM5LTgyMzMtRTMyMDAwREU5QTVCQGFwYWNoZS5vcmc+ClJlZmVyZW5jZXM6IDw0OTU5NTIyQS0yMDkwLTQyMzktODIzMy1FMzIwMDBERTlBNUJAYXBhY2hlLm9yZz4KRnJvbTogQnJpYW4gRm94IDxicmlhbmZAaW5maW5pdHkubnU+CkRhdGU6IFdlZCwgMjAgU2VwIDIwMTcgMTc6MTY6NDIgLTA0MDAKTWVzc2FnZS1JRDogPENBTWtfQmVodi0wQ2o0a1kxbjYyQTFwVkZlOFBkejc0RW1hOGpDRHh2V2NOSEFkZkxVUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IGRlcGVuZGVuY3k6Z28tb2ZmbGluZSBicm9rZW4/ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQyNThjYTNjODUwNzA1NTlhNTdmYmQiCgotLTAwMWExMTQyNThjYTNjODUwNzA1NTlhNTdmYmQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKSXQncyBiZWVuIGEgcmVhbGx5IGxvbmcgdGltZSwgYnV0IEkgcmVjYWxsIHRoYXQgdGhlcmUgd2VyZSBpc3N1ZXMgZ2V0dGluZwp0aGUgZGVwZW5kZW5jaWVzIG9mIHBsdWdpbnMgYm91bmQgdG8gdGhlIGxpZmVjeWNsZS4gVGhpcyBsb29rcyB0byBiZSB0aGUKc2FtZSBwcm9ibGVtLiBJIHRoaW5rIHRoZSBkb2N1bWVudGF0aW9uIHRhbGtlZCBhYm91dCBhIHdheSB0byBkbyB0aGlzCmVmZmVjdGl2ZWx5LgoKT24gV2VkLCBTZXAgMjAsIDIwMTcgYXQgNDo0OCBQTSwgQmVuZWRpa3QgUml0dGVyIDxicml0dGVyQGFwYWNoZS5vcmc+IHdyb3RlPQo6Cgo+IEhpLAo+Cj4gYXMgZmFyIGFzIEkgdW5kZXJzdGFuZCBpdCBzaG91bGQgYmUgcG9zc2libGUgdG8gY2FsbCBtdm4KPiBkZXBlbmRlbmN5OmdvLW9mZmxpbmUgYW5kIGZyb20gdGhlcmUgb24gd29yayBpbiBvZmZsaW5lIG1vZGUgKG12biAtbykuCj4gST1FMj04MD05OXZlIHB1dCBhIG1pbmltYWwgZXhhbXBsZSB0b2dldGhlciBbMV0gdGhhdCBkZW1vbnN0cmF0ZXMgdGhhdCB0aD0KaXMKPiBjdXJyZW50bHkgZG9lcyBub3Qgd29yay4gQW0gSSBtaXNzaW5nIGFueXRoaW5nPwo+Cj4gVGhhbmsgeW91IQo+IEJlbmVkaWt0Cj4KPiBbMV0gaHR0cHM6Ly9naXRodWIuY29tL2JyaXR0ZXIvZGVwZW5kZW5jeS1wbHVnaW4tYnVnCj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCi0tMDAxYTExNDI1OGNhM2M4NTA3MDU1OWE1N2ZiZC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MTAzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBTZXAgMjYgMjE6MTE6MDggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTAzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDk2MkMzMTBEQkEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAyNiBTZXAgMjAxNyAyMToxMTowOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE0NzE0IGludm9rZWQgYnkgdWlkIDUwMCk7IDI2IFNlcCAyMDE3IDIxOjExOjA4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNDYzOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBTZXAgMjAxNyAyMToxMTowOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE0NTgxIGludm9rZWQgYnkgdWlkIDk5KTsgMjYgU2VwIDIwMTcgMjE6MTE6MDcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDI2IFNlcCAyMDE3IDIxOjExOjA3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNUNDOTdDMUFFNAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjYgU2VwIDIwMTcgMjE6MTE6MDcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAxLjk4ClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MS45OCB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIEhUTUxfTUVTU0FHRT0yLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9aW5maW5pdHktbnUuMjAxNTA2MjMuZ2FwcHNzbXRwLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgcS1UalZ5eER5ck5KIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVHVlLCAyNiBTZXAgMjAxNyAyMToxMTowNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXZrMC1mNTEuZ29vZ2xlLmNvbSAobWFpbC12azAtZjUxLmdvb2dsZS5jb20gWzIwOS44NS4yMTMuNTFdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgMkJGQTE2MENFQgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjYgU2VwIDIwMTcgMjE6MTE6MDQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtdmswLWY1MS5nb29nbGUuY29tIHdpdGggU01UUCBpZCBpMXNvNjA4MTg4NXZrZS4xMgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDI2IFNlcCAyMDE3IDE0OjExOjA0IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1pbmZpbml0eS1udS4yMDE1MDYyMy5nYXBwc3NtdHAuY29tOyBzPTIwMTUwNjIzOwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1hNy9DbkV6NEw4U284R05kVGhMUlNyZENuY2s0Sjl5UjJoWFdvS3RyL1VBPTsKICAgICAgICBiPVI0SDdwcjJINmlwY2FDME5yTGt2VWNjVjc1L3IvcGJyYzAxRC9QL3RKRHpiS1A3Vi9BUjJ5MmFIQXM4ME5KR3REbAogICAgICAgICBQekpPbE15Q2IrRjloSGYwVUN2Q05VZzU2NXh5ME5aVVRLaXpTZXVTSzRxd2M4WWREYkpQQ0krRHk1Y2hlN05IRldwdQogICAgICAgICAvMy9QVHFTdWFMYmJrRzRsRCtrakluVythWkdER0x3N3lWL1I5K2pSOVVzYytzZjlycFRCbzB6NGJJRzNFRThtS0J4WgogICAgICAgICBRSHVaY2oxQXNsZXB0RVR3eUFQVVcwQkRnK1AzaW5vQU9PSVlCOUZ4akxKdlFqUkpsWE1GWFg2eit2RWRoeTdOTE44NgogICAgICAgICBYeklneGkwS0JBeWNJMklEd0dDQ2pkbHA5ekdudlpTVXEyZW5DUXhVVlZLbzEvc2FnSlJmUHEzUjdwNjR6R2dnek13bQogICAgICAgICBwYUx3PT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1hNy9DbkV6NEw4U284R05kVGhMUlNyZENuY2s0Sjl5UjJoWFdvS3RyL1VBPTsKICAgICAgICBiPXJLNkhvbHlDaXRFM1NNNGJYdTJkNnpqdjJtSTNRSCtLaE95MjRMWEV2ZGNTZUFwckI5anhWWTNwMTBDczNES2VUYQogICAgICAgICBTak9nTjhJcVhVZ2dFdzVFdDNucCtLM1FieTZxOHVOK1lIeiszZVhVWGFLcnFtMUx2eCt2aWZzTUxmNDY3SzBlV3JxMAogICAgICAgICB2Nk1UYVkwNHhUdWFKMElVMm9pWW5GMy9rK1dkMWNHZmUwb1hxZnlDbTZ0M2JBSk5wRlVDMTlsZzk5cWxtOFUrMlFuMwogICAgICAgICBGbmNweVZ0dk9OVFdPSDc5Z0U5eUU3WWovNlBsRE43REF1bWgwcTVrSjdnOVZaeEZjcktCelhMS0pYTlFCbW9PeWxDOQogICAgICAgICAvUnBHSDhVaWE3T2lTdncyQjRUeCtZeVJIMDNTODJ0aDRKVlgxQW40MzZvZVJrRUJCbE9iTTJTUG90cnNLVmUzK2ZVdQogICAgICAgICAvM3V3PT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVqY0NORENFMnlGS2UyelFSOWt2RG5ESDZUdmZyR1VNbFBBSFVPcWkxRnp0elV1MFE4WQoJQkJJSlRLR1NvaS8zMjJReHVmZ240UmZpMkRNd0VuR0w2dTY0SCtXZkN0UFcKWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUNlVGpmWVY5ODRoSmVMczdKTkxhNUMxdUhzREJaWWRaL3BhZnQ5V2dxazlaVU8yVXBDYzRENm00Tll2R0JyV3c4WlF2SlFGOUNYVHFTS2J5cWl6bVk9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjMxLjYxLjEzNyB3aXRoIFNNVFAgaWQgazEzMW1yMTAwNzQ3MjV2a2EuNzguMTUwNjQ2MDI1NjQ3NzsKIFR1ZSwgMjYgU2VwIDIwMTcgMTQ6MTA6NTYgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjE3Ni4xNy4xMDQgd2l0aCBIVFRQOyBUdWUsIDI2IFNlcCAyMDE3IDE0OjEwOjM1IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8QkM0NTRCREEtQzExNi00REE2LTgxMzUtQzIwRDVBMzZCODUwQGFwYWNoZS5vcmc+ClJlZmVyZW5jZXM6IDw0OTU5NTIyQS0yMDkwLTQyMzktODIzMy1FMzIwMDBERTlBNUJAYXBhY2hlLm9yZz4KIDxDQU1rX0JlaHYtMENqNGtZMW42MkExcFZGZThQZHo3NEVtYThqQ0R4dldjTkhBZGZMVVFAbWFpbC5nbWFpbC5jb20+IDxCQzQ1NEJEQS1DMTE2LTREQTYtODEzNS1DMjBENUEzNkI4NTBAYXBhY2hlLm9yZz4KRnJvbTogQnJpYW4gRm94IDxicmlhbmZAaW5maW5pdHkubnU+CkRhdGU6IFR1ZSwgMjYgU2VwIDIwMTcgMTc6MTA6MzUgLTA0MDAKTWVzc2FnZS1JRDogPENBTWtfQmVqendZODdLeUpKckNyTHZWeVRZV2hpVG49cmQtN0JPTXVCWnI2bzFzaFFBUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IGRlcGVuZGVuY3k6Z28tb2ZmbGluZSBicm9rZW4/ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzBkMWJhNjc0YjYyOTA1NWExZTFjNTIiCgotLTk0ZWIyYzBkMWJhNjc0YjYyOTA1NWExZTFjNTIKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gTW9uLCBTZXAgMjUsIDIwMTcgYXQgMjoxMCBQTSwgQmVuZWRpa3QgUml0dGVyIDxicml0dGVyQGFwYWNoZS5vcmc+IHdyb3RlPQo6Cgo+IEhlbGxvIEJyaWFuLAo+Cj4gPiBBbSAyMC4wOS4yMDE3IHVtIDIzOjE2IHNjaHJpZWIgQnJpYW4gRm94IDxicmlhbmZAaW5maW5pdHkubnU+Ogo+ID4KPiA+IEl0J3MgYmVlbiBhIHJlYWxseSBsb25nIHRpbWUsIGJ1dCBJIHJlY2FsbCB0aGF0IHRoZXJlIHdlcmUgaXNzdWVzIGdldHRpPQpuZwo+ID4gdGhlIGRlcGVuZGVuY2llcyBvZiBwbHVnaW5zIGJvdW5kIHRvIHRoZSBsaWZlY3ljbGUuIFRoaXMgbG9va3MgdG8gYmUgdGg9CmUKPiA+IHNhbWUgcHJvYmxlbS4gSSB0aGluayB0aGUgZG9jdW1lbnRhdGlvbiB0YWxrZWQgYWJvdXQgYSB3YXkgdG8gZG8gdGhpcwo+ID4gZWZmZWN0aXZlbHkuCj4KPiBJPUUyPTgwPTk5dmUgbG9va2VkIHRocm91Z2ggdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGRlcGVuZGVuY3kgcGx1Z2luLCBiPQp1dCBJIGNhbgo+IG5vdCBmaW5kIGFueXRoaW5nIGFib3V0IHRoaXMuIERvIHlvdSByZWNhbGwgd2hlcmUgeW91IGZvdW5kIHRoYXQKPiBkb2N1bWVudGF0aW9uPwo+Cj4KSGEgbm8sIHNpbmNlIEkgd3JvdGUgdGhhdCBnb2FsIDEwIHllYXJzIGFnbyBJJ20gc2NyYXRjaGluZyB0aGUgZGVwdGggb2YgbXkKbWVtb3J5LiBNYXliZSBJIGp1c3QgaW50ZW5kZWQgdG8gZGVzY3JpYmUgaXQgOy0pCgoKPiBSZWdhcmRzLAo+IEJlbmVkaWt0Cj4KPiA+Cj4gPiBPbiBXZWQsIFNlcCAyMCwgMjAxNyBhdCA0OjQ4IFBNLCBCZW5lZGlrdCBSaXR0ZXIgPGJyaXR0ZXJAYXBhY2hlLm9yZz4KPiB3cm90ZToKPiA+Cj4gPj4gSGksCj4gPj4KPiA+PiBhcyBmYXIgYXMgSSB1bmRlcnN0YW5kIGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBjYWxsIG12bgo+ID4+IGRlcGVuZGVuY3k6Z28tb2ZmbGluZSBhbmQgZnJvbSB0aGVyZSBvbiB3b3JrIGluIG9mZmxpbmUgbW9kZSAobXZuIC1vKS4KPiA+PiBJPUUyPTgwPTk5dmUgcHV0IGEgbWluaW1hbCBleGFtcGxlIHRvZ2V0aGVyIFsxXSB0aGF0IGRlbW9uc3RyYXRlcyB0aGF0PQogdGhpcwo+ID4+IGN1cnJlbnRseSBkb2VzIG5vdCB3b3JrLiBBbSBJIG1pc3NpbmcgYW55dGhpbmc/Cj4gPj4KPiA+PiBUaGFuayB5b3UhCj4gPj4gQmVuZWRpa3QKPiA+Pgo+ID4+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vYnJpdHRlci9kZXBlbmRlbmN5LXBsdWdpbi1idWcKPiA+Pgo+ID4+Cj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4KPiA+Pgo+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+CgotLTk0ZWIyYzBkMWJhNjc0YjYyOTA1NWExZTFjNTItLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDE0MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgT2N0ICAzIDIwOjM2OjU1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDE0MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBENjc2QjEwQTcwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgIDMgT2N0IDIwMTcgMjA6MzY6NTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2MTY2NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAzIE9jdCAyMDE3IDIwOjM2OjUwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MTU5NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAzIE9jdCAyMDE3IDIwOjM2OjUwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjE1ODEgaW52b2tlZCBieSB1aWQgOTkpOyAzIE9jdCAyMDE3IDIwOjM2OjUwIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAwMyBPY3QgMjAxNyAyMDozNjo1MCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDcxMEM0MTg0RDg0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAgMyBPY3QgMjAxNyAyMDozNjo0OSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuOTgxClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuOTgxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwKCUhFQURFUl9GUk9NX0RJRkZFUkVOVF9ET01BSU5TPTAuMDAxLCBIVE1MX01FU1NBR0U9MiwKCUtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDEsIFVSSUJMX0JMT0NLRUQ9MC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDFNanQwOEpTMjhFSCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVR1ZSwgIDMgT2N0IDIwMTcgMjA6MzY6NDggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC1vaTAtZjQyLmdvb2dsZS5jb20gKG1haWwtb2kwLWY0Mi5nb29nbGUuY29tIFsyMDkuODUuMjE4LjQyXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDc0ODhFNUZEQjUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsICAzIE9jdCAyMDE3IDIwOjM2OjQ3ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLW9pMC1mNDIuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgdzE5N3NvMTE3ODM5MjlvaWYuNgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDAzIE9jdCAyMDE3IDEzOjM2OjQ3IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246c2VuZGVyOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQKICAgICAgICAgOnN1YmplY3Q6dG87CiAgICAgICAgYmg9aEJOOHEwaUs3OTBEalN6bHpmcmI4dnNhOTV3VzJ4WkxodGs3VkRmMFgvND07CiAgICAgICAgYj1yc3FHWWhnWjIyZXRJYWpyTDBwajN2Njl4R0F4eWVjTW5DK3ZKQ1dNZ3hZelMxaXlnVUtraG45a2JDSytTMmVxcksKICAgICAgICAgZWZvTzBuemxyYTd0OXc1dmxHZHVTWHNVWjlKbEdqWEFzdFdZNXNhcXdMMTB5ZkRwQ0l4M0crbC9xSFdvVERXSFBFSHMKICAgICAgICAgMDdYaDBwbTNjMzFzakx2TWdOUHdxQnBkM3J6Nko3NFlMUFoxclpiOGQzSEt2aUZEaTBWanMwdDVtNW1uZjNaeE5lRUgKICAgICAgICAgWTZMSnRSN0haQmc1Tk5YcldLdG4yTmZIcDliSkRuZmQ3VFhianNWMEpRRHozbnB2NzdyaXhVTGh1azRRbGFKVm04Z2IKICAgICAgICAgU1RxSXBxTmZ4UG9sYWlvTmxQNnJ4dmJGMCttdlZFdk93a2VwcWpYQ1hxZEQ1TzlxbzkwdExOMkdjNEF0WEx4NUZXSFEKICAgICAgICAgWTYwQT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnNlbmRlcjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb20KICAgICAgICAgOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWhCTjhxMGlLNzkwRGpTemx6ZnJiOHZzYTk1d1cyeFpMaHRrN1ZEZjBYLzQ9OwogICAgICAgIGI9YTJnTVlhU3dFVkRZREhJeENuOFZJTGkxV3JrOURoa25pbDl6cm9KRXJYRysvZm8zK05PUEJKYnZCNGRzRy9IZjVDCiAgICAgICAgIFNHUEc5eUlzaHQydTRIQVJTQmdLV3FUS3RYcmJBRjFuVWNZakVtVWJjeElSalJteC9lbUVnMnBkVHhNODdLN2hGZER5CiAgICAgICAgIEt6b1A5RGFqQ3J6NU1HWWozbExoTWZmeTZnbHhYQ29taXRRcFF6MWk3ZnJWQTVtMFVoRVNJUHNaTGtXTVJFZ2haK0swCiAgICAgICAgIHN3WmdZcWQ5Vm9Ub0tZYTREcUtreE9rcXF0NkVkdUp4ekxscXVUSnFEd0FGZS8xV0VzVW04T3orRytDOVNWRzVKOWgrCiAgICAgICAgIE90ZW4xaVRuUEpsNFRGazQ2c2dVNFlER04xbVZ1TWU1Q1BmVkYzNUc2OXJLRzdRdGZBOXZkS1pQZlpsRHRSaTIxVmlRCiAgICAgICAgIFM2cGc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVdDY2k3dGwzU05ldWVzbUVkU0xBdWRXamxJNDRDcFBXQnhEdEVNRGxoNVFDMHc0RjNpCglCSnZBUWxVeTJRYnNkQ1hsaStYQ0tmVnRYWGdmYVdPTmdVMS9ZNHhNc3JucwpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQk9TS0F5NGQxNXkzMTBUUUNWeEgzeURhOTdwRkN1ZmJpWW1DajZBQytSMVFaOWRQbklxMlNpWVB6TmpkU1ZvQmxEMDVNTytpMUUvaDBIN0E4bFRqRT0KWC1SZWNlaXZlZDogYnkgMTAuMTU3LjU2LjE3MSB3aXRoIFNNVFAgaWQgcDQwbXI5Njc4OTczb3RjLjQwOS4xNTA3MDYzMDA1OTA2OwogVHVlLCAwMyBPY3QgMjAxNyAxMzozNjo0NSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApTZW5kZXI6IGJtYXRodXNAZ21haWwuY29tClJlY2VpdmVkOiBieSAxMC41OC4yNS43IHdpdGggSFRUUDsgVHVlLCAzIE9jdCAyMDE3IDEzOjM2OjI1IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8cG9ueS01NmEzYWRlYWY2MGM0MDU5NmZiMjg0YjI0NTI0MTQ4ZjYwNWU4ZDIzLTg1YTcwYmU3NTQ3NTY0ZGM4ZjljZTZmNzRmY2FhMDM3ZDUzOWFmNzRAZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlZmVyZW5jZXM6IDxkMzBlYTQ3Ni0wNzk0LWYwOTYtY2U2MS01ZmI0MWIwM2I5NmFAZ214LmRlPiA8cG9ueS01NmEzYWRlYWY2MGM0MDU5NmZiMjg0YjI0NTI0MTQ4ZjYwNWU4ZDIzLTg1YTcwYmU3NTQ3NTY0ZGM4ZjljZTZmNzRmY2FhMDM3ZDUzOWFmNzRAZGV2Lm1hdmVuLmFwYWNoZS5vcmc+CkZyb206IEJhcHRpc3RlIE1hdGh1cyA8bWxAYmF0bWF0Lm5ldD4KRGF0ZTogVHVlLCAzIE9jdCAyMDE3IDIyOjM2OjI1ICswMjAwClgtR29vZ2xlLVNlbmRlci1BdXRoOiBPd2FJOFdMekNVMmh5V1lXMkI1R1lGR3UtS1EKTWVzc2FnZS1JRDogPENBTldnSlM0dmMwenp2SCtVNDBFcU5rZXJNNGlxZFhraDR1U0srZmlhRXFUdDJzWHk1QUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBXQVIgUGx1Z2luIHZlcnNpb24gMy4yLjAKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExYzA0NTNhMWYwZTI0MDU1YWFhNzMyMSIKCi0tMDAxYTExYzA0NTNhMWYwZTI0MDU1YWFhNzMyMQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgorMS4KClRlc3RlZCBvbiBKZW5raW5zLCBlc3BlY2lhbGx5IGFmdGVyCmh0dHBzOi8vZ2l0aHViLmNvbS9qZW5raW5zY2kvamVua2lucy9wdWxsLzMwNTIKClRoYW5rcyBhIGxvdCEKCjIwMTctMTAtMDIgMTU6MjEgR01UKzAyOjAwIERlamFuIFN0b2phZGlub3ZpPUM0PTg3IDxkZWphbjI2MDlAZ21haWwuY29tPjoKCj4gKzEgKG5vbi1iaW5kaW5nKS4KPgo+IFRlc3RlZCBhcyB1c3VhbCAoYmlnIHByb2plY3Qgd2l0aCBkb3plbiBvZiBwbHVnaW5zKS4KPgo+IFJlZ2FyZHMsCj4gRGVqYW4KPgo+IE9uIDIwMTctMDktMzAgMTc6NTUsIEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPiB3cm90ZToKPiA+IEhpLAo+ID4KPiA+IFdlIHNvbHZlZCAzIGlzc3VlczoKPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiBwcm9qZWN0SWQ9M0QxMjMxODEyMSZ2ZXJzaW9uPTNEMTIzNDEzNzIKPiA+Cj4gPiBUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlCj4gM0QlMjBNV0FSJTIwQU5EJTIwcmVzb2x1dGlvbiUyMCUzRCUyMFVucmVzb2x2ZWQlMjBPUkRFUiUKPiAyMEJZJTIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMHVwZGF0ZWQlMjBERVNDCj4gPgo+ID4gU3RhZ2luZyByZXBvOgo+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3MQo+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gMTM3MS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4td2FyLXBsdWdpbi8zLjIuMC9tYXZlbi0KPiB3YXItcGx1Z2luLTMuMi4wLXNvdXJjZS1yZWxlYXNlLnppcAo+ID4KPiA+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+ID4gbWF2ZW4td2FyLXBsdWdpbi0zLjIuMC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMToKPiA+IDVjNjYxZjQ1NTQ2MTYxNDc0OTEwMzZkZmFjNjg5YmE5ZGI5MGNlYzIKPiA+Cj4gPgo+ID4gU3RhZ2luZyBzaXRlOgo+ID4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4td2FyLXBsdWdpbi1MQVRFU1QvCj4gPgo+ID4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+ID4KPiA+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4gPgo+ID4gWyBdICsxCj4gPiBbIF0gKzAKPiA+IFsgXSAtMQo+ID4KPiA+Cj4gPiBLaW5kIHJlZ2FyZHMKPiA+IEthcmwgSGVpbnogTWFyYmFpc2UKPiA+Cj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPgo+ID4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCi0tMDAxYTExYzA0NTNhMWYwZTI0MDU1YWFhNzMyMS0tCgpGcm9tIGRldi1yZXR1cm4tMTIzOTQzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBTZXAgMTAgMjE6Mjk6NTEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTQzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDk2QjBCMUEwNTIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAyMToyOTo1MSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDc5ODM2IGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIFNlcCAyMDE3IDIxOjI5OjUxIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3OTc2NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBTZXAgMjAxNyAyMToyOTo1MSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc5NzUzIGludm9rZWQgYnkgdWlkIDk5KTsgMTAgU2VwIDIwMTcgMjE6Mjk6NTAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDEwIFNlcCAyMDE3IDIxOjI5OjUwICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNjkyRkQxODJDRTkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDIxOjI5OjUwICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi40OApYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjQ4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwKCUhFQURFUl9GUk9NX0RJRkZFUkVOVF9ET01BSU5TPTAuMDAxLCBIVE1MX01FU1NBR0U9MiwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEZ0Qmd3bzNtR2Z4SSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgMTAgU2VwIDIwMTcgMjE6Mjk6NDggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC1pdDAtZjQ0Lmdvb2dsZS5jb20gKG1haWwtaXQwLWY0NC5nb29nbGUuY29tIFsyMDkuODUuMjE0LjQ0XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEE0M0Y4NUYyNTQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDIxOjI5OjQ3ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLWl0MC1mNDQuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgYzE5NXNvMTMzODIxOTZpdGIuMQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDE0OjI5OjQ3IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246c2VuZGVyOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQKICAgICAgICAgOnN1YmplY3Q6dG87CiAgICAgICAgYmg9cGZvczUvT1I2N2Jja1cvQ0dOczMyRXN0d3M0VEtodVJhS012bXFhaHlWZz07CiAgICAgICAgYj1ELzkrYmtWaG1XWGZCMkJ4ay80R1pFRkhDdk11azB6clVUYlVaWmVCYnZwV3o0N1dqRlhHT3hia29OTUFxODJPVFgKICAgICAgICAgR1h6Wm9NWFpwYjVOT211NEpvQnhERmVuWlFSTlhyNFVZeG5kWThBVWNhWEdkRk9mNUtvTzVDTnNtZm5Ramt4NWhsdUwKICAgICAgICAgS1FucWh4VHp4bXd3UGJzeGw4TDV1Z2Z2dHhQN3VlNDZadkNtNHNOdENsUXRpQWhWV1lSN0RoSEJTa2xVbVhRMGZOUnMKICAgICAgICAgd3pLOU1sSGpyVi93cVF2M1lKR2xZKzZGNGxqZVNCVElnY0V2WTVRZ21FZHM3UTZGSXZGaFRJNkFxVG12T3pVY2JPMTEKICAgICAgICAgeWE0a09OcHdrY243ZkI0dWRFaFdKZE5MWnRXWm1sOHp6K0Iybm5yS0JSajVOWjdiNjQ3Mkx3NkdpaWc1aVk0eHQ0T0QKICAgICAgICAgYlhsQT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnNlbmRlcjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb20KICAgICAgICAgOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPXBmb3M1L09SNjdiY2tXL0NHTnMzMkVzdHdzNFRLaHVSYUtNdm1xYWh5Vmc9OwogICAgICAgIGI9a250SjNaVlZDQkhVM2VyVytQb1lDNlNoL1o2Nmk5M2ZhYThZVzdSalUxdjdUbHBuWHJDdU9SaTh4Q1dNMUp4RjJHCiAgICAgICAgIEpWTVBScmc5TDVXSEtpM2Z6SUZreEhQYkFjUDh3MFpLYW01MlhhcWw5eHhGY1RPQnd5SXdqMHZpYUg4UlM2UVhWVW9PCiAgICAgICAgIGdQYzd0WkVnYll1T0VzMnBmS2NkQ3dEMmlzVHdhS0hGZi9icUdMUkxkUEpBYjg3RlllQmZwMWFsOFhmUHFsaUMzNVhjCiAgICAgICAgIGNtQysxRnk5M29UOXNOc1d3WklIWHV2WHlBYzZuZm02NU1vRmd4SjExYlBqeGk3VUV0YWZ5VjlMbzVkelh1dkdEZmowCiAgICAgICAgIDVxRWNwK0JZM3lpYXRUdExISDZOeWxPYVllYk1kN3k5TEVlTnNGVTR3UVBudzdXQVRVY204MWVvWlRkdGNreWw3T0ZnCiAgICAgICAgIDIxTFE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWpCWUVqWVFHcHJ3RTJLWElYTXBtUTlDYlVoTmlkekhOK2FYK2tNekVGZzVhUkVkaG5aCgk5SGpsVXIvdS9kVG5SejlUSE5QazVuaEZHNUhEcGV3ejFpRHRKRXRWNFE9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQWZ2bWpQNUpvRFQvTk5PaEJKZXUwOWtjcW9rVjFOTzcybERFQWREWFJtNm5Wd2ExbkxZTlpyTWwxUzhEMDRWYVVPdEVER3VNQUZlazhjZFVobi9hST0KWC1SZWNlaXZlZDogYnkgMTAuMzYuMjMzLjE5NiB3aXRoIFNNVFAgaWQgZjE4N21yMTA2MTY0ODFpdGguMjAuMTUwNTA3ODk4NTc4ODsKIFN1biwgMTAgU2VwIDIwMTcgMTQ6Mjk6NDUgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKU2VuZGVyOiBibWF0aHVzQGdtYWlsLmNvbQpSZWNlaXZlZDogYnkgMTAuNzkuMTYyLjEzNCB3aXRoIEhUVFA7IFN1biwgMTAgU2VwIDIwMTcgMTQ6Mjk6MjUgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxvcC55NmM1Z3BzZGtka2hyckBkZXNrdG9wLTJraHNrNDQ+ClJlZmVyZW5jZXM6IDxDQStuUG5NenoydTY9Y2RVNStoMUhzdldoUzRDVDV6a1l6cldDRW93LUc4Q3p2K21ZMmdAbWFpbC5nbWFpbC5jb20+CiA8Q0ErblBuTXordkhra21zMTNFQ2h3NWtHQm5YRGs5M19IcjVGNzYrRGV0Ym5wcWZpR1h3QG1haWwuZ21haWwuY29tPgogPG9wLnk2Y3l4amdja2RraHJyQGRlc2t0b3AtMmtoc2s0ND4gPENBS3VWekJTTl9SZERNaUJyZGZKVVl5R29QREQ0Yk5hb3FXOGpBOE0wTj1tNmFVaXRud0BtYWlsLmdtYWlsLmNvbT4KIDxDQStuUG5Nd1dLVm00eGh6VFZyRjZkeHNpeXJVTnlPenJUTUNuUWFqWitBNmlYWTZCSHdAbWFpbC5nbWFpbC5jb20+IDxvcC55NmM1Z3BzZGtka2hyckBkZXNrdG9wLTJraHNrNDQ+CkZyb206IEJhcHRpc3RlIE1hdGh1cyA8bWxAYmF0bWF0Lm5ldD4KRGF0ZTogU3VuLCAxMCBTZXAgMjAxNyAyMzoyOToyNSArMDIwMApYLUdvb2dsZS1TZW5kZXItQXV0aDogYmFfTVM5UzJkajc2bzdqdm84NWxlSjVZV3U4Ck1lc3NhZ2UtSUQ6IDxDQU5XZ0pTNzBWWjlWSGRGN3c9UzJqRU9MLTgxYnlHek5MdFdXeHVVdFBfUEI3WTY9WkFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbUkVTVUxUXSBSZTogUGxlYXNlIHJldHdlZXQgYW5kIHZvdGUKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iOTRlYjJjMTE3MTkwNGU5Mjk1MDU1OGRjODI5OCIKCi0tOTRlYjJjMTE3MTkwNGU5Mjk1MDU1OGRjODI5OApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKSGVsbG8sCgpPbmx5IGx1cmtpbmcgdGhvc2UgZGF5cywgYnV0IGNoaW1pbmcgaW4gcXVpY2tseSBoZXJlIDotKS4KCjIwMTctMDktMTAgMjA6NTQgR01UKzAyOjAwIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz46Cgo+IE9uIFN1biwgMTAgU2VwIDIwMTcgMjA6MjE6MTEgKzAyMDAsIFN0ZXBoZW4gQ29ubm9sbHkgPAo+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Cj4gT24gU3VuIDEwIFNlcCAyMDE3IGF0IDE5OjA0LCBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+IHdyb3RlOgo+Pgo+PiBIaSBBbGwsCj4+Pgo+Pj4gQXJlIHdlIGZhY2luZyBuZXcgQVBJIHJlZ2FyZGluZyBuZXR3b3JraW5nIGFuZCBzZWN1cml0eSB1c2VmdWwgaW4gSmF2YSA4Pwo+Pj4KPj4+IFdoZW4gSSBmaXJzdCBzYXcgdGhlc2Ugb3B0aW9ucyBJIGFza2VkIG15c2VsZiB3aGF0IGJlbmVmaXQgd291bGQgaGF2ZSB0aGUKPj4+IFVzZXIgYW5kIEplbmtpbnMgZnJvbSBKYXZhIDguCj4+PiBBbmQgc2Vjb25kIHF1ZXN0aW9uIHdhcyB3aGV0aGVyIHdlIHdvdWxkIGJlIHNvIGZsZXhpYmxlIHRvIHJld3JpdGUgdGhlCj4+PiBjb2RlCj4+PiBhbmQgdXNlIExhbWJkYSBmdWxseSBhbnl3aGVyZSBpbiB0aGUgY29kZS4KPj4+Cj4+Cj4+Cj4+IFRoZXJlIGlzIHRoZSBzb2NpYWwgYXNwZWN0LiBJZiB5b3UgYXJlIGEgcG90ZW50aWFsIG5ldyBjb250cmlidXRvciB0bwo+PiBNYXZlbgo+PiBhbmQgeW91IGxvb2sgYXQgb3VyIGhlYXZ5IEphdmEgMS4zIGNvbnZlbnRpb24gY29kZWJhc2UgKG9rLCBJJ20gYmVpbmcgYQo+PiBkZW1hZ29ndWUsIGl0J3MgaGFkIGEgYml0IHVwZGF0ZWQgdG8gNS4wKSBhcmUgeW91IGdvaW5nIHRvIGJlIGVuY291cmFnZWQKPj4gdG8KPj4gc3RlcCBmb3J3YXJkPwo+Pgo+PiBIb3cgY2FuIHlvdSBtYWtlIHNtYWxsIGltcHJvdmVtZW50cyBhbmQgZGVtb25zdHJhdGUgeW91IGFyZSBhIHNhZmUgcGFpciBvZgo+PiBoYW5kcyB0byBnYWluIHRoZSBjb21taXQgYml0Pwo+Pgo+PiBOb3cgaWYgd2UgaGF2ZSB0aGUgb3BlcnR1bml0eSB0byBtYWtlIGxvdHMgb2YgdGlkeSB1cCBhbmQgeW91IGNhbiBzaG93IHlvdQo+PiBhcmUgYSBzYWZlIHBhaXIgb2YgaGFuZHMsIHJldGFpbmluZyBiaW5hcnkgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyCj4+IHBsdWdpbnMsIG1ha2luZyB0aGUgY29kZSBtb3JlIHJlYWRhYmxlLCBmaW5kaW5nIGZpbGUgaGFuZGxlIGxlYWtzLCBldGMuLi4KPj4gd2VsbCBub3cgeW91IGhhdmUgYSB3ZWxjb21lIHBhdGggdG8gZGVtb25zdHJhdGUgeW91ciBza2lsbHMuLi4uIHdoaWxlCj4+IGdhaW5pbmcgZmFtaWxpYXJpdHkgd2l0aCB0aGUgY29kZWJhc2Ugc28gdGhhdCB3aGVuIHdlIHR1cm4gYXJvdW5kIHRvIHN0YXJ0Cj4+IG9uIE1hdmVuIDUuMC54IHlvdSBjYW4gam9pbiBpbiB0aGUgZnVuLgo+Pgo+PiBOb3cgdGhhdCBpcyBub3QgYSB0ZWNobmljYWwgYXJndW1lbnQsIGJ1dCB3ZSBhcmUgYSBjb21tdW5pdHkgZmlyc3QuLi4gc28KPj4gbWF5YmUgdGhlIHRlY2huaWNhbCBhcmd1bWVudHMgYXJlIG5vdCBzbyByaWdodCB0byBwdXNoIQo+Pgo+Pgo+IGJxLiBidXQgd2UgYXJlIGEgY29tbXVuaXR5IGZpcnN0Cj4KPiBXaGF0J3MgdGhlIGRlZmluaXRpb24gb2YgY29tbXVuaXR5OiB0aGUgbGFyZ2UgdXNlciBncm91cCBvciB0aGUgZmV3IHdlJ3JlCj4gaG9waW5nIHRvIGZpbmQgd2hvIGNhbiBoZWxwIHdvcmtpbmcgb24gTWF2ZW4/Cj4gQW5kIGlmIHdlJ3JlIGZvY3VzaW5nIG9uIHRoZSBsYXR0ZXIsIHNob3VsZG4ndCB0aGUgdHdpdHRlciBxdWVzdGlvbiBiZToKPgo+IEkgd2FudCB0byBiZWNvbWUgYSBNYXZlbiBkZXZlbG9wZXIKPiBbXSByaWdodCBub3chCj4gW10gb25seSBpZiBNYXZlbiByZXF1aXJlcyBKYXZhIDggKCBzbyBJIGNhbiB1c2UgbGFtYmRhJ3MsIGV0Yy4pCj4KClRoaXMgaXMgZGVmaW5pdGVseSBvbmUgdGhlIHRoaW5ncyB3ZSBwdXQgZm9yd2FyZCBmb3IgbW92aW5nIEplbmtpbnMgdG8gSmF2YQo4IHJlY2VudGx5IFsxXSwga2VlcGluZyBjb250cmlidXRpb24gYXBwZWFsaW5nLgpCZWNhdXNlLCB3ZWxsLCB0aGF0J3MgZ3JlYXQgdGhlIE1hdmVuIGNvbW11bml0eSB3b3VsZCB0cnkgdG8gaGVscCBsYXJnZQpjb21wYW5pZXMgbm90IGJlIGJvdGhlcmVkIGJ5IGFueSBraW5kIG9mIHVwZ3JhZGUsIGxpa2UgRnJlZSBFbnRlcnByaXNlCnNvZnR3YXJlIHN1cHBvcnQgOi0pLgpCdXQgSSB0aGluayB0aGlzIGlzIGEgZGVhZC1lbmQsIHRob3NlIGtpbmQgb2YgdGVhbXMvY29tcGFuaWVzIHdvbid0IHVwZ3JhZGUKKmFueXdheSouCgpMb29raW5nIGF0IHRoZSBzdGF0cywgSSB3b3VsZCB0aGluayB0aGVyZSdzIGFjdHVhbGx5IG5vdCBtdWNoIGRlYmF0ZToKcGVvcGxlIG5vdCB3YW50aW5nIHRvIHVwZ3JhZGUsIHdlbGwsIHdvbid0IHVwZ3JhZGUuLi4gQW5kIHByb3BvcnRpb24gaXMgbm90CnRoYXQgaGlnaC4KV2hhdCBpcyB0aGUgYWN0dWFsIGlzc3VlIGFueXdheT8gVGhleSB3aWxsIGtlZXAgdXNpbmcgMy41LnggZm9yIDMgeWVhcnM/IFNvCndoYXQsIEkgYmV0IHRoZXkgYWxyZWFkeSBkby4gTm8sIHdhaXQsIHRoZXkncmUgbm90LCB0aGV5J3JlIHVzaW5nIDIuMi4xLgpJIGp1c3QgY2hlY2tlZCwgdGhlIGNvbXBhbnkgSSBsZWZ0IDEgeWVhciBhZ28gaXMgc3RpbGwgcnVubmluZyAzLjIuMSwgYW5kIEkKZG9uJ3QgZXhwZWN0IHRoZW0gdG8gdXBncmFkZSBhbnl0aW1lIHNvb24uLi4KCk1hdmVuIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgaXMgZ3JlYXQsIHNvIElNTyBkb24ndCBib3RoZXIgc3BlbmRpbmcgdGltZQp3aXRoIEpESzcuClRoZSBNYXZlbiBkZXYgdGVhbSBzaG91bGQgSU1PIGNvbmNlbnRyYXRlIG9mIG1ha2luZyBNYXZlbiBncmVhdCwgbm90CnN1cHBvcnRpbmcgYSBiaWcgdmFyaWV0eSBvZiB2ZXJzaW9ucy9mbGF2b3VycyBkZXZlbG9wZXJzIHdpbGwgaGF0ZSB0aGUKY29kZWJhc2UgZWFjaCB0aW1lIHRoZXkgcmVtZW1iZXIgInVyZ2gsIEkgY2FuJ3QgdXNlIHRoaXMhIi4KVGhlIGxlc3MgY29tYmluYXRvcmlhbHMsIHRoZSBiZXR0ZXIgZm9yIGFueW9uZSB3b3JraW5nIG9uIGhlci9oaXMgZnJlZSB0aW1lCjotXC4KCk15IDIgY2VudHMKCi0tIEJhcHRpc3RlClsxXSBodHRwczovL2plbmtpbnMuaW8vYmxvZy8yMDE3LzAxLzE3L0plbmtpbnMtaXMtdXBncmFkaW5nLXRvLUphdmEtOC8KCi0tOTRlYjJjMTE3MTkwNGU5Mjk1MDU1OGRjODI5OC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NTA0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBOb3YgMTcgMTA6MDE6MzIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTA0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDgzQjBBMTdDNjcKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAxNyBOb3YgMjAxNyAxMDowMTozMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDczNzU5IGludm9rZWQgYnkgdWlkIDUwMCk7IDE3IE5vdiAyMDE3IDEwOjAxOjMyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MzcwMCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNyBOb3YgMjAxNyAxMDowMTozMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDczNjgzIGludm9rZWQgYnkgdWlkIDk5KTsgMTcgTm92IDIwMTcgMTA6MDE6MzEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDE3IE5vdiAyMDE3IDEwOjAxOjMxICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMDU3NkNDNjZDMAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTcgTm92IDIwMTcgMTA6MDE6MzEgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMi45MDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTIuOTAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCA2ekRvc1lLMWZlUVUgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglGcmksIDE3IE5vdiAyMDE3IDEwOjAxOjMwICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtcGYwLWYxODAuZ29vZ2xlLmNvbSAobWFpbC1wZjAtZjE4MC5nb29nbGUuY29tIFsyMDkuODUuMTkyLjE4MF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBFM0YyNTVGMjk5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAxNyBOb3YgMjAxNyAxMDowMToyOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1wZjAtZjE4MC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBuODlzbzE1OTUyMjdwZmsuMTEKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAxNyBOb3YgMjAxNyAwMjowMToyOSAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1uMTV4eGducW5OQUNxU2FEbi9GYUs2QTNCOHl5VE1ROEhYTmVLVGRrWXVrPTsKICAgICAgICBiPUNTK2dyNXhVNnd5SkgrMFBwZlVoSHVaWmpYK0M1NkpBUWFtdFhvWTg2YWk2aWMzditPTXc5VnVzRGtpUVRJOXhDRwogICAgICAgICBBVFgwdHhmU2JrUXdEM3llczZ2WGZzeDI0MDYwTWdORVZkamxOMC8xNSs4WXJqMXhMUUF6LzJCdTlGRlh4OSs2Vit0TwogICAgICAgICBVMFZOekpTdldJYUtpN2ZMcXAvVHNpWSszdDVyZ3RLRGMwbTAxM0JXcy93MGEyWHpyQmlYYkI4NE9BcHF4dTNrdExiSwogICAgICAgICBOMGl0QlFlMWZvWW1xL0lFTkt2SnQ1aTM5b1JRa2tUMnRyZEpFV3k3WnRGMnVoQnA1cTM4VG82RFE5TFlzM2JyejNSdQogICAgICAgICBETXNaOFFZbFk2dkVrcTlEMnlvaEluajZSNWtaSEhRT0VaSG95V0d3Wll2ajNYcm1OS2g2VUtKTkw2eGdqSFpoVWo4bQogICAgICAgICArRU1BPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1uMTV4eGducW5OQUNxU2FEbi9GYUs2QTNCOHl5VE1ROEhYTmVLVGRrWXVrPTsKICAgICAgICBiPXBpVmtnSHIrQWhUUGF6NHp0T3ZCSm1IRFVtUTlRMjhOM28yVTJMRUhjQ0NPTC9sZUYvTDlBUWJwZitHZFk1UFhCNAogICAgICAgICBiYk5wQjVMVzdVMzlwcEZMN3REZEtjc0M2WElVeml5dkRUeTJobFpVYmFWVi9MTlVkYkRmeHBKM2FGUVhHQTVuUW03NAogICAgICAgICBFQ3dwMGtxWmFjK1JwVEZtWUdSTFBvbFFJOEdDTGZMTmF3bCtsVGplK29vNUh4WEJaYWFqd1Y4SVhoM1M1RUo4cDJ2WAogICAgICAgICBhL3diZ2pac1BBa2M2NytUK0luanJjRGEzeDFDZXBuQUlMMlBIa3NGWnN2ekhNeFd1UHEwdGRXMGoxVjBiWU9id2w1UQogICAgICAgICBuYkZERXcwSUZxbjJFOHVkaW9VM2ZuNDhwVEV0NWZoRlhaWjU4TG55V1o4S0haMTBjSy9xWTR3cDBJb1ZNMS9QdUgyMAogICAgICAgICBLZktnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg0MkFrQmcvTGVuZFFrVXZaSlNBeTJsZS9EVUM4Z1JZMHVEbTRsUkJQa0pVVjVDYk5BWQoJaW5IUkRBY1RNejkzZ09KL045aDgzazJIY2JyQ080RDJPc3ZPUURoTmR3PT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TVluSHliUGZONHBINkhJeGtuWitobmhmbzA4dm9QYWo2dDRKZUtycmMrUDhtMlkvVjQ4aUcybnFKSWFlcXBQQjd2Y2ZHbURPWllCd3FUY2Q1ZGpzSnc9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjk4LjE5MC42IHdpdGggU01UUCBpZCBsNm1yMTQ5MDk0M3BmZi41My4xNTEwOTEyODgyODg1OyBGcmksCiAxNyBOb3YgMjAxNyAwMjowMToyMiAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTAwLjE3MC4xMzUgd2l0aCBIVFRQOyBGcmksIDE3IE5vdiAyMDE3IDAyOjAxOjIyIC0wODAwIChQU1QpCkluLVJlcGx5LVRvOiA8b3AueTl1Y2tvbTZrZGtocnJAZGVza3RvcC0ya2hzazQ0PgpSZWZlcmVuY2VzOiA8b3AueTl1Y2tvbTZrZGtocnJAZGVza3RvcC0ya2hzazQ0PgpGcm9tOiBzZWJiIDxzZWJiYXpAZ21haWwuY29tPgpEYXRlOiBGcmksIDE3IE5vdiAyMDE3IDEwOjAxOjIyICswMDAwCk1lc3NhZ2UtSUQ6IDxDQU9HbzBWWWFwbTNLOHNwZzRZZG95aTNwR3lVZmVMNDVDc09heDFfY2h0dF9YMEtDendAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbQU5OXSBBcGFjaGUgTWF2ZW4gSkRlcHJTY2FuIFBsdWdpbiAzLjAuMC1hbHBoYS0xIFJlbGVhc2VkClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKT24gMTcgTm92ZW1iZXIgMjAxNyBhdCAwOToyNywgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPiB3cm90ZToKPiBUaGUgQXBhY2hlIE1hdmVuIHRlYW0gaXMgcGxlYXNlZCB0byBhbm5vdW5jZSB0aGUgZmlyc3QgcmVsZWFzZSBvZiB0aGUgQXBhY2hlCj4gTWF2ZW4gSkRlcHJTY2FuIFBsdWdpbiwgdmVyc2lvbiAzLjAuMC1hbHBoYS0xCj4KPiBUaGUgTWF2ZW4gSkRlcHJTY2FuIHBsdWdpbiBpcyB1c2VkIHRvIHNjYW4gY2xhc3MgZmlsZXMgZm9yIHVzZXMgb2YKPiBkZXByZWNhdGVkIEFQSSBlbGVtZW50cy4gSXQgdXNlcyB0aGUgamRlcHJzY2FuIHRvb2wgYXMgcHJvdmlkZWQgd2l0aCBKYXZhIDkuCj4KPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy9tYXZlbi1qZGVwcnNjYW4tcGx1Z2luLwo+Cj4gWW91IHNob3VsZCBzcGVjaWZ5IHRoZSB2ZXJzaW9uIGluIHlvdXIgcHJvamVjdCdzIHBsdWdpbiBjb25maWd1cmF0aW9uOgo+Cj4gPHBsdWdpbj4KPiAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KPiAgIDxhcnRpZmFjdElkPm1hdmVuLWpkZXByc2Nhbi1wbHVnaW48L2FydGlmYWN0SWQ+Cj4gICA8dmVyc2lvbj4zLjAuMC1hbHBoYS0xPC92ZXJzaW9uPgo+IDwvcGx1Z2luPgo+Cj4gWW91IGNhbiBkb3dubG9hZCB0aGUgYXBwcm9wcmlhdGUgc291cmNlcyBldGMuIGZyb20gdGhlIGRvd25sb2FkIHBhZ2U6Cj4KPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy9tYXZlbi1qZGVwcnNjYW4tcGx1Z2luL2Rvd25sb2FkLmNnaQoKVGhlIGRvd25sb2FkIGxpbmsgcG9pbnRzIHRvIHRoZSB0b3AtbGV2ZWwgb2YgdGhlIEFTRiBtaXJyb3Igc3lzdGVtLgoKVGhpcyBtYWtlcyBpdCB2ZXJ5IGhhcmQgdG8gdXNlLgoKPiBFbmpveSwKCkxvb2tpbmcgZm9yIHRoZSBuZWVkbGUgaW4gdGhlIGhheXN0YWNrPwoKPiAtVGhlIEFwYWNoZSBNYXZlbiB0ZWFtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1MDktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE5vdiAxNyAxMzoxMjo0NyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1MDktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOTJGQzgxMDFBMgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDE3IE5vdiAyMDE3IDEzOjEyOjQ3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTgwNzAgaW52b2tlZCBieSB1aWQgNTAwKTsgMTcgTm92IDIwMTcgMTM6MTI6NDcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk3OTc2IGludm9rZWQgYnkgdWlkIDUwMCk7IDE3IE5vdiAyMDE3IDEzOjEyOjQ3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTc5NjMgaW52b2tlZCBieSB1aWQgOTkpOyAxNyBOb3YgMjAxNyAxMzoxMjo0NiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMTcgTm92IDIwMTcgMTM6MTI6NDYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAwQkI0MTE4MDg3MQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTcgTm92IDIwMTcgMTM6MTI6NDYgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4xMjEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMTIxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBaWEFlLWMxcmVUY2cgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglGcmksIDE3IE5vdiAyMDE3IDEzOjEyOjQ0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtcGcwLWY1My5nb29nbGUuY29tIChtYWlsLXBnMC1mNTMuZ29vZ2xlLmNvbSBbNzQuMTI1LjgzLjUzXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDM1Q0U0NUYzOUQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDE3IE5vdiAyMDE3IDEzOjEyOjQzICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXBnMC1mNTMuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgbDE5c28xOTU1MTU1cGdvLjIKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAxNyBOb3YgMjAxNyAwNToxMjo0MyAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bwogICAgICAgICA6Y2M7CiAgICAgICAgYmg9OHFPN25LN0hoMnRKUm40OTJnNjdxdVc3UzJQL2o0bHRubVNKSTd5cjhQTT07CiAgICAgICAgYj1ZeGRxOW5FbisrdTV3NmVwb21CSnhZSUt6RmgyMnVNdXI2THVJbkQ1ckgyZ0FwS3BjWUhWVGNWOW9ILzZ1eUduNzYKICAgICAgICAgMi9lRlMxdWdKaE93b3dhN0xZWUluVUVPU3I5QzFLT2prVUhqWWUvcmwyVG5TRWdtQVFOMUI1ajVEZDJGVW50ckJXYUQKICAgICAgICAgM1Z1aFVvSzh2dDl0L0Y4NkRIZExQWjRLL05BNjBxNnNVcXNLQ1JxR2gzbmwzS3gwUnpscTJTa2tVVmZFUkdlWkNLRW0KICAgICAgICAgQ2NQbDBWZml6S3ZRVXNiVHU3WmlKVWpjTFpEeHFNWTgzbFdPMWUzYm0yS3lPWHVnSkcxZ2lnOHEyV2g3K2JCcWdualIKICAgICAgICAgdnNKcjZ1NDkwY21KV1EvQlRPMmhuelZscnRuUVV1cG5zWVRlem1TMEFEdURTdFlrTU1HSUZZUVladHdqNVRCZVVyVEYKICAgICAgICAgNzl3QT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG86Y2M7CiAgICAgICAgYmg9OHFPN25LN0hoMnRKUm40OTJnNjdxdVc3UzJQL2o0bHRubVNKSTd5cjhQTT07CiAgICAgICAgYj1UNGhOa0tFQVQ4ZGR1UW1WckxKeW1Gc3lSalNiblhUOVpvZ1RJN3NHZTNLOHlDczRkN1h5aXBXaEdLSmczMFZ3MHYKICAgICAgICAgcHpSejg2bGliV0VWV015enZPYk5JNzhnU0FwYnNSNyszNEs4SS9zTXJPSndsWDJWSS9hWnBJOU9RYU1ad2lsV3FqOEQKICAgICAgICAgSjVJRi81VFBPRXJzSFlZbGU0djNtenBmVlAzU08ydnFLTDRrRnJ1TGFnUzBadUM4ckw5bDlPV01PcFJONG9GZmNMaGsKICAgICAgICAgWi9WdFVnSFA1ZzVkbjl5TWZTY3FZTHhGMm9xRVVQa3dZL0Z0a01wdmh4bnI5c2JkYi8rcDArc2plMzBaOHNzK0VWRk4KICAgICAgICAgUDJqM0FPY01HYjFJYnB4QkgrRDVWTGRVVU42WVpQQ2NoT2hLMXQweXRrUTdYZFl3N2hCOUN5QXZpakk4Wm9hWU1vTUoKICAgICAgICAgdVIrZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYNlBHbjZMaVFVWHgwOHd4QjJoRGFGMnFQRTBpRyt3VVMyNmQ1ZzQ1aDZnMEN4cWlxNzEKCTFMYlduWEFkOE1pMExUK3lwUlpKQ2d6REFoN2RRZ09wcEs4SHhUbz0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TWJFaG9taktra3dzMit2dmYxeTY5MFA1NVdOLzl0MFpJVkdaMjJvSzdxMzhMWXM0emdGRXRzWCtBRUQ0NnJ1a25YaDBpc0J3TGplbkpwYlB5bmlSK1E9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjEwMS43Ni43MSB3aXRoIFNNVFAgaWQgbDdtcjUxMzQxMzhwZ3IuMjQyLjE1MTA5MjQzNTU2NDk7CiBGcmksIDE3IE5vdiAyMDE3IDA1OjEyOjM1IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xMDAuMTcwLjEzNSB3aXRoIEhUVFA7IEZyaSwgMTcgTm92IDIwMTcgMDU6MTI6MzQgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDxvcC55OXVoNG55d2tka2hyckBkZXNrdG9wLTJraHNrNDQ+ClJlZmVyZW5jZXM6IDxvcC55OXVoNG55d2tka2hyckBkZXNrdG9wLTJraHNrNDQ+CkZyb206IHNlYmIgPHNlYmJhekBnbWFpbC5jb20+CkRhdGU6IEZyaSwgMTcgTm92IDIwMTcgMTM6MTI6MzQgKzAwMDAKTWVzc2FnZS1JRDogPENBT0dvMFZaaFVxQ2Y5RXAzZEV4YmNiVmdNNW89NVBXWHVrcFlWQm1kWWJVMnB3akFOZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IERvd25sb2FkIGxpbmtzClRvOiBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+CkNjOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKT24gMTcgTm92ZW1iZXIgMjAxNyBhdCAxMToyNywgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPiB3cm90ZToKPiBUaGlzIHRvcGljIGRlc2VydmVzIGEgc2VwYXJhdGUgbWFpbHRocmVhZC4KPgo+IFF1b3RpbmcgU2ViYiBvbiBhIGRpZmZlcmVudCB0aHJlYWQ6Cj4gIlRoZSBkb3dubG9hZCBsaW5rIHBvaW50cyB0byB0aGUgdG9wLWxldmVsIG9mIHRoZSBBU0YgbWlycm9yIHN5c3RlbS4KPgo+IFRoaXMgbWFrZXMgaXQgdmVyeSBoYXJkIHRvIHVzZS4iCj4KPiBBRkFJSyB0aGUgQVNGIHNheXMgdGhlcmUgc2hvdWxkIGJlIGEgZG93bmxvYWQgYnV0dG9uIGZvciBldmVyeSByZWxlYXNlZAo+IHByb2R1Y3QuCgpZZXMuCgo+IEluIGNhc2Ugb2YgTWF2ZW4gd2UncmUgdGFsa2luZyBhYm91dCBhIGxvdCBvZiBwcm9qZWN0cywgYW5kIGRvd25sb2FkcyBzaG91bGQKPiBiZSByZWRpcmVjdGVkIHZpYSBhIG1pcnJvci4KPgo+IEkgZG9uJ3QgdGhpbmsgaXQgaXMgcG9zc2libGUgdG8gZG8gYSBkZWVwbGluayB0byBhIHNwZWNpZmljIGZvbGRlci4KClllcyBpdCBpcyBwb3NzaWJsZS4KClNlZQpodHRwOi8vd3d3LmFwYWNoZS5vcmcvZGV2L3JlbGVhc2UtZG93bmxvYWQtcGFnZXMuaHRtbCNjbG9zZXIKZXQgc2VxLgoKSW4gdGhpcyBjYXNlLCB5b3UgY291bGQgdXNlOgoKaHR0cDovL3d3dy5hcGFjaGUub3JnL2R5bi9jbG9zZXIuY2dpL21hdmVuL3BsdWdpbnMvCgp0byBhdCBsZWFzdCBzaG93IHRoZSBjb3JyZWN0IGRpcmVjdG9yeS4KCmFuZAoKaHR0cDovL3d3dy5hcGFjaGUub3JnL2R5bi9jbG9zZXIuY2dpL21hdmVuL3BsdWdpbnMvbWF2ZW4tamRlcHJzY2FuLXBsdWdpbi0zLjAuMC1hbHBoYS0xLXNvdXJjZS1yZWxlYXNlLnppcAoKdG8gbGluayB0byB0aGUgZmlsZS4KClRoZXJlIGFyZSB2YXJpb3VzIG90aGVyIG9wdGlvbnM7IHNlZSB0aGUgcGFnZSBxdW90ZWQgYWJvdmUuCgoKPiBBbHNvLCBpbiBjYXNlIG9mIE1hdmVuIHBsdWdpbnMgYW5kIG90aGVyIGRlcGVuZGVuY2llcyAoYWxsIGV4Y2x1ZGluZyB0aGUKPiBNYXZlbiBkaXN0cmlidXRpb24gaXRzZWxmKSBpdCBpcyBraW5kIG9mIHN0cmFuZ2UgdG8gcHJvdmlkZSBhIGRvd25sb2FkIGxpbmsKPiB3aGVuIHdlIGNvdWxkIGFzc3VtZSB0aGF0IHRoZXkgb25seSB3YW50IHRvIGhhdmUgdGhlIHBsdWdpbi9kZXBlbmRlbmN5IFhNTAo+IGZyYWdtZW50Lgo+Cj4gSSBhZ3JlZSB0aGF0IHRoZSBsaW5rIGlzIGtpbmQgb2YgdXNlbGVzcyByaWdodCBub3csIGJ1dCBhbHNvIHRoZSBiZXN0IHdlIGNhbgo+IGRvIHdoZW4gcHJvdmlkaW5nIGEgZGlyZWN0IGRvd25sb2FkIGxpbmsuCj4gSWYgdGhlcmUncyBubyB3YXkgdG8gZG8gYSBkZWVwbGluaywgSSdkIHByZWZlciB0byByZW1vdmUgaXQgZnJvbSB0aGUgcGFnZXMKPiBhbmQgYW5ub3VuY2VtZW50cy4KClRoZSBBU0YgbWlzc2lvbiBpcyB0byBwcm9kdWNlIG9wZW4gU09VUkNFIHNvZnR3YXJlIGFuZCBsaW5rcyB0byB0aGUKc291cmNlIGFydGlmYWN0cyBhcmUgcmVxdWlyZWQuCgo+IHRoYW5rcywKPiBSb2JlcnQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyMzk3Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gU2VwIDExIDEyOjE0OjMyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzk3Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4MTQxRDE5OEE4Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMTI6MTQ6MzIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxMzQyIGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDEyOjE0OjMyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMjQ0IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDEyOjE0OjMxIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTIzMiBpbnZva2VkIGJ5IHVpZCA5OSk7IDExIFNlcCAyMDE3IDEyOjE0OjMxIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAxMSBTZXAgMjAxNyAxMjoxNDozMSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEMzNkQxMUEyNUY4Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAxMjoxNDozMCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuNDI5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuNDI5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9MT1RTT0ZIQVNIPTAuMjUsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTE9XPS0wLjcsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBMdktzWFJSQmthSVIgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sIDExIFNlcCAyMDE3IDEyOjE0OjI1ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtcXQwLWYxODIuZ29vZ2xlLmNvbSAobWFpbC1xdDAtZjE4Mi5nb29nbGUuY29tIFsyMDkuODUuMjE2LjE4Ml0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAzM0U3ODYwRjA1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAxMjoxNDoyNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1xdDAtZjE4Mi5nb29nbGUuY29tIHdpdGggU01UUCBpZCBzMThzbzE2NjE0MDEwcXRhLjMKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAwNToxNDoyNSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD11NWVBVTAvTlV4R2RTblMrTFR6ZUxOaExCVWtabzd6NndXN2Q1R09XNStrPTsKICAgICAgICBiPWR1dlArY2JYeWZndkJYRTdGa3BSRFhhdGhpNnJPSU1CR1o5T2VIV0k5QmZZYWpvdExuQytYRG9hTGVLSkZYVFhhMwogICAgICAgICBCbTJ6MDM2QTk0ZHJBSEdnL3NmMXhkYmczK2lrMzFONFVnK2NnRXR3ZlpyUjQzeWtJM3gwV3JWenJCYkd4UE02a2tCNwogICAgICAgICBsTWg3em03bUpuTm9UVDJJc2VzOStnaWU1K1BlUGd3dTEvdHVvN1VEMmVVVmtVR1REanpOcEZSSkQ1bmxZUVhKOHN2aQogICAgICAgICA1eU9wK2M0MDVGODFlYWxiM3FBcWpoOEtPWjBkQ1NwdktnUE9ZMmhFdXdPSHlGUzI3aEJaZDVtK0YvVlRFMXRJd0FlRgogICAgICAgICArQU1tNWFDWWloQy9RWHVsSDRHU0Z0MnVtZW53QW9mL0lMcTQ1SUJNUHNPU2c2bHRRUHNIdVNoMUlKQWZlWFpHMEhMawogICAgICAgICBRQmx3PT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD11NWVBVTAvTlV4R2RTblMrTFR6ZUxOaExCVWtabzd6NndXN2Q1R09XNStrPTsKICAgICAgICBiPUc5MnJraHdPR3JKRkgzVTRwTWRoc04yMFFpK0ptR1JlRjUxSEN5dTh1ZmcvYTFXZ1J3czA2MVlmL2J0N2wwRGQzQgogICAgICAgICBOdzlTQ3BLNzBXais4Q2VGVUhxMEVkYkFFQW8xclRQRmwzRGMxTVlBajYxeU1tV1pHTTNhYlpaM29EOE5BTERpNWt0dwogICAgICAgICBRc1oyNU9EeUV6Y1hEN2syRlFmOEw3NVRjWU04MFB0VU9hYzhCcE1CTVBQYkxJOENMSlBjbm5mVi9aZnMwK1RJczNFOAogICAgICAgICBNU016K05EWlk0ZWFpbkdtM1Z5Z0Z4WEg2WmlvbDlVNXQxY1V3N21Udm4xYTcwVk4xOU5GWEZ2OGNaT2pMZlVIZ3ZBOAogICAgICAgICBHaHA1cXN1WFJFWjlGKzUwL2tuNCtabS9rSytDbGZ5d3h6eTE5a0NxVVA4NTdvTG83T1B5RDBFQmJRUDRaNDlpNXBkUQogICAgICAgICBDd1NnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVobkZobTBDMC9VcG4vQTR0NTZFRFcvWXBYdmhVZ3hEY0FNV2I3SExBTUZqUHNVTy8yaQoJcEdkYnZDcCtxTnNUUG1MYXZDZW5Vdnc2c3FaY2JJSlAKWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUR0VVZiN3o0MnFNSVIrdDF3d0MvNUlGUVB6a2RQVk8zMTRMaTFrSS9uM1RwM2NyWktGZG9PSzVKZkxkY0VBWXV4alR1OXFPa050OHJ0bXh0aUFqenM9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjIwMC4yNi4yNDkgd2l0aCBTTVRQIGlkIGg1NG1yMTM1OTcxMzVxdGsuNDEuMTUwNTEzMjA2Mzc1MTsKIE1vbiwgMTEgU2VwIDIwMTcgMDU6MTQ6MjMgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjIwMC4yNC4yMTUgd2l0aCBIVFRQOyBNb24sIDExIFNlcCAyMDE3IDA1OjE0OjIzIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgpGcm9tOiBTdGVwaGFuZSBOaWNvbGwgPHN0ZXBoYW5lLm5pY29sbEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTEgU2VwIDIwMTcgMTQ6MTQ6MjMgKzAyMDAKTWVzc2FnZS1JRDogPENBT29ub2hjaTBlaVZDZVU0OWU4QjZYN0FEbWptWU5YTzZYT1pUPUpFVDRQZjNLbzhad0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0ZTM4MDQwMDAyMjEwNTU4ZThkZTg5IgoKLS0wMDFhMTE0ZTM4MDQwMDAyMjEwNTU4ZThkZTg5CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgorMQoKUy4KCk9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDU6MzkgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgPApzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKCj4gSGksCj4KPiBXZSBzb2x2ZWQgMjUgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiB2ZXJzaW9uPTEyMzM4OTY0JnN0eWxlTmFtZT1UZXh0JnByb2plY3RJZD0xMjMxNjkyMgo+Cj4gVGhlcmUgYXJlIDM1MCBpc3N1ZXMgbGVmdCBpbiBKSVJBIGZvciBNYXZlbiBjb3JlOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJQo+IDNEJTIwTU5HJTIwQU5EJTIwcmVzb2x1dGlvbiUyMCUzRCUyMFVucmVzb2x2ZWQlMjBPUkRFUiUKPiAyMEJZJTIwZHVlJTIwQVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwY3JlYXRlZCUyMEFTQwo+Cj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjQvCj4KPiBUaGUgZGlzdHJpYnV0YWJsZSBiaW5hcmllcyBhbmQgc291cmNlcyBjYW4gYmUgZm91bmQgaGVyZToKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xLwo+Cj4gU3BlY2lmaWNhbGx5IHRoZSB6aXAsIHRhcmJhbGwgYW5kIHNvdXJjZSBhcmNoaXZlcyBjYW4gYmUgZm91bmQgaGVyZToKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1iaW4uemlwCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtYmluLnRhci5nego+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy56aXAKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1zcmMudGFyLmd6Cj4KPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5neiBzaGExOiA5ZWI4MjFmMTUzYzc2NjcxOTRhYTExY2NkMDk5YjcKPiBiZDIwNTk1NjBkCj4gYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy56aXA6IHNoYTE6IDEyMWQ1NGIwNDUzODBhOGE0ODk1ZWIxMzc5NzBhYjY5ZTY5OGViMGUKPgo+IEdpdCB0YWc6Cj4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9bWF2ZW4uZ2l0O2E9Y29tbWl0O2g9Cj4gMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMwo+Cj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9jb21wb25lbnRzL3JlZi8zLUxBVEVTVC8KPgo+IFZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCj4KPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPgo+IFRoYW5rcywKPgo+IFN0ZXBoZW4uCj4KCi0tMDAxYTExNGUzODA0MDAwMjIxMDU1OGU4ZGU4OS0tCgpGcm9tIGRldi1yZXR1cm4tMTIzOTI1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBTZXAgMTAgMTc6NDU6NDIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTI1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEU3RTg3MUFDRjMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAxNzo0NTo0MSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDYzMjgwIGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIFNlcCAyMDE3IDE3OjQ1OjQxIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MzIwNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBTZXAgMjAxNyAxNzo0NTo0MSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYzMTkzIGludm9rZWQgYnkgdWlkIDk5KTsgMTAgU2VwIDIwMTcgMTc6NDU6NDEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDEwIFNlcCAyMDE3IDE3OjQ1OjQxICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQjZFRkJDQTQwNgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMTc6NDU6NDAgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAzLjU0MQpYLVNwYW0tTGV2ZWw6ICoqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9My41NDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgSFRNTF9PQkZVU0NBVEVfMTBfMjA9MS4xNjIsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB3d0NVdnM5VlZXR1ogZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sIDEwIFNlcCAyMDE3IDE3OjQ1OjM5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtcXQwLWYxNzQuZ29vZ2xlLmNvbSAobWFpbC1xdDAtZjE3NC5nb29nbGUuY29tIFsyMDkuODUuMjE2LjE3NF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA1MkE2QjVGQzY5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAxNzo0NTozOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1xdDAtZjE3NC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBiMXNvNTYyNDY0NXF0Yy40CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMTA6NDU6MzkgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Qnhqd2Y4TnkvWnpqcGczeFJHU3NGZmJmZXJWRTA5TnNSeEk2TEx0VWx1cz07CiAgICAgICAgYj1yT25DU1YveHpmQkQwcnFvZVN3b05GdDZGVkgvdmtrZ2pFQTAzWXIreFUzckFrT1ZmOHp4R2RiVzBmU2x3NzE0MzIKICAgICAgICAgQ3NuSDd2QWhhaGsyNTNsZUFEK2FiYnVVUHNsaUVhcy9xUTdrS25RRUxqbUFwUjB1MGMxaGdQZ1ZMZUd4MFI2aDllYzcKICAgICAgICAgVEdySVcwTDh6ZTB6MHdzQmVHbG4yOW9HTHJURmplMXZlcnh1Wk5wNDdINGp3T0J5Nk4xeXhTei9OU2pSbjRJMUs2NHkKICAgICAgICAgK2hhd1MzKzNsQmNha3N5U0Y1R05ZZUcrRktXcXliQXZLc3F0NFdiMG9WUm1kMCt2SDkyM3h6MUpKZ21KUzZWWDJLcjAKICAgICAgICAgSG9hRG1Udktub0ZFbU4wZmJiWWx1ZVBvS1YvOVhsa2tkZWZjNWgzK1REcDBIRUdtTnJIYkgrZ3h0QVA0MXI4L3lhVnMKICAgICAgICAgbWVkUT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9Qnhqd2Y4TnkvWnpqcGczeFJHU3NGZmJmZXJWRTA5TnNSeEk2TEx0VWx1cz07CiAgICAgICAgYj1pdlA3KzdRbVNRYVp5aFVyeGQ0bXhHZ2lpczlwRWswUFZUUUN4cGpzZFJ1OElWQWwrMVZaTG5GM2Q1S2I0ZDNvSUIKICAgICAgICAgTmkzK3dyVlBxR0oxcXBwZytnU3pWRFJiSEtsZFB0aFRaZE9aVzNLbUhXTmc0a0lhUmJDS0t3VkFkd1I3cExmdUEyakwKICAgICAgICAgNTZOaEZMSndXeEhsemwzWm0rV2xWNjlCV0htZDNlV0xodXBDUVcxcXdQNEE1a1l0U2ZOY2lpN1RRZTVkZmt0NVM3YjcKICAgICAgICAgRGhkY3lyK0Nlak1qZ1FYNVJ2emJtL3VtYUwxaldUWmdhb2xXb0Vsajg3Y1ZZL0g2QmlZLzYxa3ZPMGQ0QVpsVVJJVysKICAgICAgICAgUXV1alhKRnNpeVVvOHNpVGNIcXgrMUZLMzV5VGN1L0oveW9Jc0NkUmNtc0QrR0pybXgzMmRGelZCYURmYXBWYnRZNGwKICAgICAgICAgRGFCQT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVZ2lpa2lMT2JUQ01UcCsrazFTY2FuYTVLWTZ5N29QejZjUVJYZDZORUx4SzVRc0M2aEQKCW00bE93aWx4Y0pwN1ROWUhFTGR4Nldya2NySSt6RkdhClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FCRnN4bHN6djJWZ2hTdURNeE5KSzVLOVRWSGRpd0NLa3BxSE5Oc3Nzc1hOZG5icWp5MlBlL3ZOZUhrZXZzN3BTejRhc1pCWm9rK3lpQ0VJTlE0VDFrPQpYLVJlY2VpdmVkOiBieSAxMC4yMDAuMjcuNiB3aXRoIFNNVFAgaWQgeTZtcjEzNTE0MDI4cXRqLjI0Ny4xNTA1MDY1NTMyNTQ0OwogU3VuLCAxMCBTZXAgMjAxNyAxMDo0NTozMiAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMjAwLjI0LjIxNSB3aXRoIEhUVFA7IFN1biwgMTAgU2VwIDIwMTcgMTA6NDU6MzEgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDw3OGE1YWY5Mi1lNDcxLWY5ZjktN2RlMC1mMDJkMDlmYTQwMzVAZ214LmRlPgpSZWZlcmVuY2VzOiA8NzhhNWFmOTItZTQ3MS1mOWY5LTdkZTAtZjAyZDA5ZmE0MDM1QGdteC5kZT4KRnJvbTogU3RlcGhhbmUgTmljb2xsIDxzdGVwaGFuZS5uaWNvbGxAZ21haWwuY29tPgpEYXRlOiBTdW4sIDEwIFNlcCAyMDE3IDE5OjQ1OjMxICswMjAwCk1lc3NhZ2UtSUQ6IDxDQU9vbm9oZEVqbUdNZ2NqenEtZT0yZlE1QTBYOF96VE4xMmo4VkVPK09RZkRRYjZOY0FAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gRGVwZW5kZW5jeSBQbHVnaW4gdmVyc2lvbiAzLjAuMgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sIGluZm9Ac29lYmVzLmRlCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iOTRlYjJjMDQxZWU4NmU1OTQ1MDU1OGQ5NjAwMyIKCi0tOTRlYjJjMDQxZWU4NmU1OTQ1MDU1OGQ5NjAwMwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKKzEKClRoYW5rcyEKCk9uIFNhdCwgU2VwIDksIDIwMTcgYXQgMjozNCBQTSwgS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+Cndyb3RlOgoKPiBIaSwKPgo+IFdlIHNvbHZlZCA3IGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamUKPiBjdElkPTEyMzE3MjI3JnZlcnNpb249MTIzNDEyNTQKPgo+IFRoZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJTNEJQo+IDIwTURFUCUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlMjBCWSUKPiAyMGtleSUyMERFU0MlMkMlMjBwcmlvcml0eSUyMERFU0MlMkMlMjB1cGRhdGVkJTIwREVTQwo+Cj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjAKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzYKPiAwL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi1kZXBlbmRlbmN5LXBsdWdpbi8zLjAuMi9tYXYKPiBlbi1kZXBlbmRlbmN5LXBsdWdpbi0zLjAuMi1zb3VyY2UtcmVsZWFzZS56aXAKPgo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IG1hdmVuLWRlcGVuZGVuY3ktcGx1Z2luLTMuMC4yLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOgo+IDNjNGFhNzE2ZTI4YjI0MTgzNGQ0N2QyMmUxZmY1ZjZlNjJmMTZiOWIKPgo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1kZXBlbmRlbmN5LXBsdWdpbi1MQVRFU1QvCj4KPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+Cj4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPgo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQo+Cj4gS2luZCByZWdhcmRzCj4gS2FybCBIZWlueiBNYXJiYWlzZQo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKLS05NGViMmMwNDFlZTg2ZTU5NDUwNTU4ZDk2MDAzLS0KCkZyb20gZGV2LXJldHVybi0xMjQzNzEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIE9jdCAzMCAxMToxNjo1MyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzNzEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRDM2RjMxNzcwNAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDMwIE9jdCAyMDE3IDExOjE2OjUzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjgwODEgaW52b2tlZCBieSB1aWQgNTAwKTsgMzAgT2N0IDIwMTcgMTE6MTY6NTMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI4MDE5IGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIE9jdCAyMDE3IDExOjE2OjUzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjgwMDcgaW52b2tlZCBieSB1aWQgOTkpOyAzMCBPY3QgMjAxNyAxMToxNjo1MyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMzAgT2N0IDIwMTcgMTE6MTY6NTMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA0NjEyRkM1NzhBCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAzMCBPY3QgMjAxNyAxMToxNjo1MiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjQwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC40MDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsIFJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBrUWk5UHVOVHYybDkgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sIDMwIE9jdCAyMDE3IDExOjE2OjQ5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtaW8wLWYxNzMuZ29vZ2xlLmNvbSAobWFpbC1pbzAtZjE3My5nb29nbGUuY29tIFsyMDkuODUuMjIzLjE3M10pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAyOUY0RDVGNUIzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAzMCBPY3QgMjAxNyAxMToxNjo0OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1pbzAtZjE3My5nb29nbGUuY29tIHdpdGggU01UUCBpZCBqMTdzbzI2MjU3NDczaW9kLjUKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAzMCBPY3QgMjAxNyAwNDoxNjo0OSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bwogICAgICAgICA6Y2M7CiAgICAgICAgYmg9RHhER3NyVUxVMk1HaWZ5dDVoM21xSUdaSm5haGlMbEgyek5zc1dGWFM4UT07CiAgICAgICAgYj1oeVA0VHpmaTNidDdVRzE3NVdqYmpSRkhmcXhFalhpcUdDaFRDNE90ajFpbnRsN3gwdGNjTW5UZ3dJLyt4N0cwR0cKICAgICAgICAgbmVUbldCWmZsZW5uSWxOYXVBTXd2TGszSUh1ZlBnaDFxY3ZvamRVbmp0UjRORGtqQlJBZ1ArRjR6YmFscjdNbzh4bW0KICAgICAgICAgZWJZazFKdmdmQ2FrZlNGdkRJQnZZaGw4ZWpxR2dNSW1Ca3IxWjdrRkRHL3RuTHVVcnUwWng1QW9BUFptYXIxY3dwUmgKICAgICAgICAgT01NeDRrdnFOVFoxc25JQ0NOZ3NuNEdZY0RMUTFud3U2RWJPMWcwdFFmM1JxVlprcC81bURad2hLQUY0OG9TUjZwYVIKICAgICAgICAgb3ZWRUhERUFUU2ZhM2o5WDJsdjE5Q3htT1RPMDFhSTVTVEdzenN6Q2M0c1ZxT0ZSZm1ObUxGRzVyRVVyOUVPMG5HV0oKICAgICAgICAgTlh0QT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG86Y2M7CiAgICAgICAgYmg9RHhER3NyVUxVMk1HaWZ5dDVoM21xSUdaSm5haGlMbEgyek5zc1dGWFM4UT07CiAgICAgICAgYj1kaEFKUmVBYmhsUGdOcE5mU2R6WU1vdzE0alEzNnNDVkpyY1hzMUFiOXJ0ODRGcjdYRDFlRFlpNTBVTWNoUkRuZTAKICAgICAgICAgS3dmdDhMcHJONmg4Nm45QzlBa2l6OEZyL0tseDh5UTFJcTRFSEQ5Ly9KY2FubEl3MmFkcDJYMXVTeVVGT0JzM0dicTgKICAgICAgICAgQjA0K2ttb3NYL0JGYnhBV3RPb2FOVndsdE1zeGhXa04vZktST29sZVlZZ1liTWtwUXdLN1gxOXVpWE5MUThmdnNVUVAKICAgICAgICAgWG5jeENhZjkwK3R4b3JqOFAzUHpvc2NQTUFVckRsWUpoQUR4NDF6cno0V3RvUElhUXoyNktkMFBmYVVxOEpCWi9QT2kKICAgICAgICAgWnNOY093SkQwZkxVY1ZuM2hVQldwVTRXazEyeW55aWhZOFlhdXRHRzl1Tnk5bWI2eEt0OEdtM1F5bGJRTGxRVDlIQWQKICAgICAgICAgMlVFQT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhV1dwS0dFUU9yajU1VDA0UTEyaWVlSkFiNm5STU5rRDFBMmlybXo4cHd1S1ZyK3Y0bEUKCVlra1BQZ0tGRmlRdE4wbEpkaWFkUWdjZ1JNSGViUUpYWFNsLzNudz0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFCaFFwK1N2aXZSdWoyUjVrZHJud25GZnlSVXhudjhyOEg3VVUveDgyT0VSdlpWK1pyM3lDUkpOVFg0YUJrbDNVUWJJemtkUVNKSlgxYjc2elpWdlZQZ0R6VUU9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjEwNy4xNTAuMjAgd2l0aCBTTVRQIGlkIHkyMG1yMTA1NTM2NThpb2QuMjEyLjE1MDkzNjIyMDE0MDI7CiBNb24sIDMwIE9jdCAyMDE3IDA0OjE2OjQxIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yLjM2LjcwIHdpdGggSFRUUDsgTW9uLCAzMCBPY3QgMjAxNyAwNDoxNjoyNSAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPG9wLnk4dGtnYWk1NWkxOHVnQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpSZWZlcmVuY2VzOiA8b3AueTh0a2dhaTU1aTE4dWdAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkZyb206IE1hcnRpam4gVmVyYnVyZyA8bWFydGlqbnZlcmJ1cmdAZ21haWwuY29tPgpEYXRlOiBNb24sIDMwIE9jdCAyMDE3IDExOjE2OjI1ICswMDAwCk1lc3NhZ2UtSUQ6IDxDQVA3WXVBUTY0MjI0MHM2TVd5a2tDb1dUNVJPd2ZwNGNXWkJoclJfSERDbmM5bkFKZ1FAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiBKRGVwclNjYW4gUGx1Z2luClRvOiBSb2JlcnQgU2Nob2x0ZSA8cm9iZXJ0LnNjaG9sdGVAc291cmNlZ3JvdW5kcy5ubD4KQ2M6IEFwYWNoZSBNYXZlbiBEZXYgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwgQnJpYW4gRm94IDxicmlhbmZAaW5maW5pdHkubnU+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDAzMjYyZGEyMGRkMDU1Y2MxYzUzOSIKCi0tMDAxYTExNDAzMjYyZGEyMGRkMDU1Y2MxYzUzOQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKSSBjYW4gY29uZmlybSBpdCB3b3JrcyB3ZWxsIGluIG15IHRlc3RpbmcuCgpDaGVlcnMsCk1hcnRpam4KCk9uIDI4IE9jdG9iZXIgMjAxNyBhdCAxMzo0NiwgUm9iZXJ0IFNjaG9sdGUgPHJvYmVydC5zY2hvbHRlQHNvdXJjZWdyb3VuZHMubmwKPiB3cm90ZToKCj4gSGksCj4KPiBJJ2QgbGlrZSB0byBwcmVwYXJlIGFuIGFscGhhIHJlbGVhc2Ugb2YgdGhlIE1hdmVuIEpEZXByU2NhbiBQbHVnaW4KPiBJdCBpcyBhIHdyYXBwZXIgYXJvdW5kIHRoZSBqZGVwcnNjYW4gdG9vbFsxXSwgYXZhaWxhYmxlIHNpbmNlIEphdmEgOS4KPgo+ICAgWW91IHVzZSB0aGUgamRlcHJzY2FuIHRvb2wgYXMgYSBzdGF0aWMgYW5hbHlzaXMgdG9vbCB0aGF0IHNjYW5zIGEgamFyCj4gZmlsZSAob3Igc29tZSBvdGhlciBhZ2dyZWdhdGlvbiBvZiBjbGFzcyBmaWxlcykgZm9yIHVzZXMgb2YgZGVwcmVjYXRlZCBBUEkKPiBlbGVtZW50cy4KPgo+IEl0IHdvdWxkIGJlIG5pY2UgaWYgc29tZSBjb3VsZCBhIHJldmlldyB1cGZyb250LiBBbnkgZmVlZGJhY2sgaXQKPiBhcHByZWNpYXRlZC4KPgo+IEBCcmlhbiwgY2FuIHlvdSBjcmVhdGUgYSBuZXcgSmlyYSBwcm9qZWN0OiBNSkRFUFJTQ0FOID8KPgo+IHRoYW5rcywKPiBSb2JlcnQKPgo+IFsxXSBodHRwczovL2RvY3Mub3JhY2xlLmNvbS9qYXZhc2UvOS90b29scy9qZGVwcnNjYW4uaHRtCj4KCi0tMDAxYTExNDAzMjYyZGEyMGRkMDU1Y2MxYzUzOS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NDc0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBOb3YgMTMgMDk6MTk6MjAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDc0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEYyNDMyMTA3MjIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxMyBOb3YgMjAxNyAwOToxOToyMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg1NzI5IGludm9rZWQgYnkgdWlkIDUwMCk7IDEzIE5vdiAyMDE3IDA5OjE5OjE1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NTY0OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMyBOb3YgMjAxNyAwOToxOToxNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg1NjM0IGludm9rZWQgYnkgdWlkIDk5KTsgMTMgTm92IDIwMTcgMDk6MTk6MTUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDEzIE5vdiAyMDE3IDA5OjE5OjE1ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgODk4NkYxQTA1NDMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDEzIE5vdiAyMDE3IDA5OjE5OjE0ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMy4zNDEKWC1TcGFtLUxldmVsOiAqKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTMuMzQxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEhUTUxfT0JGVVNDQVRFXzEwXzIwPTEuMTYyLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgVHRzb01Jal9uNWN0IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAxMyBOb3YgMjAxNyAwOToxOToxMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLWl0MC1mNTMuZ29vZ2xlLmNvbSAobWFpbC1pdDAtZjUzLmdvb2dsZS5jb20gWzIwOS44NS4yMTQuNTNdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQ0VBRDk1RkU1QwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTMgTm92IDIwMTcgMDk6MTk6MTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtaXQwLWY1My5nb29nbGUuY29tIHdpdGggU01UUCBpZCB5MTVzbzg1OTA4NjlpdGEuNAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDEzIE5vdiAyMDE3IDAxOjE5OjEwIC0wODAwIChQU1QpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPTliSE1iS1NROUFHKzFPL0hkNm5zTTZOWlNEOUxPU3pCc0xYSFBDY3hTZDQ9OwogICAgICAgIGI9TDdVUTFiV2FCek1rVnNMcXgrbEVjcndBQ0ZmRGlNaDgwWkdqZy9MY0hYQUlZUUh5TVBjajlEOVJCZ1JMbnY5S0ZYCiAgICAgICAgIEdtazNuUWxDTDkxWmFiUFY2ZzRhUkZVVFgreTNndzlQU01HNWdJM3BOK3BwVkUrVzhsWitZWUwxK1h5dEVuaURjbmptCiAgICAgICAgIHA0d2pvRWFuQ3NHMWRFT1ljSjUyZUxabkZEdllRV0cyS0N5MHpuTHJpWjdXUFZJVUFOY3RCVnFtVXNwZGpzeXFvcndLCiAgICAgICAgIEdQQlAyVnZ0V2IwdTdjMjB4Q2dEa2puVDg2U0xxM1lPVTlrcVJRTFdiSFZsSWZaODhHc2JCc3ViVmtuM0VCM2NWRUpwCiAgICAgICAgIE5HeTlpdjR0MXlzdnl1NlF0QUEyaVlmZk16L2dHQklLNUk1bGZjT0dqWnhJQnZvVjFuUUNXOHRXaHFoMHRTdXM1b0NhCiAgICAgICAgIDk1L1E9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPTliSE1iS1NROUFHKzFPL0hkNm5zTTZOWlNEOUxPU3pCc0xYSFBDY3hTZDQ9OwogICAgICAgIGI9SFlYeFVSK0YrZDJBZUFsanpUNlJOeTZwT1ZMa0RRYWR4Uyt0RjMrbCtBV2JlQVNpTUZzQUlROXgxTEdRd3UxaVJoCiAgICAgICAgIHdCcS80OEpRZHJvWHpZVjd2QXBGdkp1VnhHWEhkcEZDTkwwb0lWL0NaSjJodW9DT2JhWjVWYUk5d2VzNS81SHlxSzFFCiAgICAgICAgIEk1WHZGSXhaSXNYR1N0dU5zWndaU21XbFJRcDBqTll6eDE0QjZCaE9naUlNa2lLWk5YVE1OWUhTNGlqU2MxOW5lVVBSCiAgICAgICAgIEo2QUZKNnd5TDRJc0h2ZDVnOHliem4yNDMzZkFwNzVwZzJqK0xRK0VYUXYweHRlNUF6Q01kc2J1R3BoOG5NSFdtNjB3CiAgICAgICAgIE5PUTRsNlUwL0dCdnc2clF6U2o2Ti9va28ydzRvYnVUcUx2Ri9xMVkvKzVWTjRqdll2aWc1V2MvSUxUZmN6ZkhUZERECiAgICAgICAgIGljRmc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDZCODJ1NTV3THUzNkN6TjBrOWpMRmxzUVVkS251YjY0RjVybEl0Wm14U3lwamwwRzVOCglZd3o4Y1JaL0ZIdmo5b2VPTzc0ay9lU2hwTHRsNEV2aGtIZ3l2MkE9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1aUmFweHpPKy9PNjhKL2MraXRLWWR3a3JiNEdhT3ZjOGJlbU5HZW9yb1dWT2tvZjYySStjWUZmWXp5RkQ3clRHenNHNVRNZHh6Q2JvNVFNVWJZbEFVPQpYLVJlY2VpdmVkOiBieSAxMC4zNi4xMDEuNjggd2l0aCBTTVRQIGlkIHU2NW1yOTA3NTc1N2l0Yi40LjE1MTA1NjQ3NDkyMjk7IE1vbiwKIDEzIE5vdiAyMDE3IDAxOjE5OjA5IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4yLjM2LjcwIHdpdGggSFRUUDsgTW9uLCAxMyBOb3YgMjAxNyAwMToxODo1MyAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPG9wLnk5bGpiaHp3a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpSZWZlcmVuY2VzOiA8b3AueTlsamJoendrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkZyb206IE1hcnRpam4gVmVyYnVyZyA8bWFydGlqbnZlcmJ1cmdAZ21haWwuY29tPgpEYXRlOiBNb24sIDEzIE5vdiAyMDE3IDA5OjE4OjUzICswMDAwCk1lc3NhZ2UtSUQ6IDxDQVA3WXVBU1ZxOGJuUFlXK1lhNWp1NWRxZkg3VXhxVFhWYT1pcjVlWVpoK252SnNxb0FAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gSkRlcHJTY2FuIFBsdWdpbiB2ZXJzaW9uIDMuMC4wLWFscGhhLTEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDQ1MzMwNDljNDBjMDU1ZGQ5YzNjMCIKCi0tMDAxYTExNDQ1MzMwNDljNDBjMDU1ZGQ5YzNjMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKTm9uIGJpbmRpbmcgYnV0IGl0IHdvcmtzIHdlbGwgZm9yIG1lIG9uIExhdGVzdCAzLjUuMiBhbmQgSmF2YSA5LjAuMQoKQ2hlZXJzLApNYXJ0aWpuCgpPbiAxMiBOb3ZlbWJlciAyMDE3IGF0IDE1OjE1LCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+IHdyb3RlOgoKPiBIaSwKPgo+IFRoaXMgaXMgdGhlIGluaXRpYWwgcmVsZWFzZSBvZiB0aGUgTWF2ZW4gSkRlcHJTY2FuIFBsdWdpbi4KPgo+IEl0IGlzIGEgd3JhcHBlciBhcm91bmQgdGhlIGpkZXByc2NhbiB0b29sLCBhdmFpbGFibGUgc2luY2UgSmF2YSA5Ogo+IGh0dHBzOi8vZG9jcy5vcmFjbGUuY29tL2phdmFzZS85L3Rvb2xzL2pkZXByc2Nhbi5odG0KPgo+IFRoZXJlIGFyZSB6ZXJvIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPXByb2plY3QlMjAlM0QlCj4gMjBNSkRFUFJTQ0FOJTIwQU5EJTIwc3RhdHVzJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklCj4gMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDCj4KPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3NC8KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zZXJ2aWNlL2xvY2FsL3JlcG9zaXRvcmllcy9tYXYKPiBlbi0xMzc0L2NvbnRlbnQvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL21hdmVuLWpkZXByc2Nhbi1wbHUKPiBnaW4vMy4wLjAtYWxwaGEtMS9tYXZlbi1qZGVwcnNjYW4tcGx1Z2luLTMuMC4wLWFscGhhLTEtc291cmNlLXJlbGVhc2UuemlwCj4KPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBtYXZlbi1qZGVwcnNjYW4tcGx1Z2luLTMuMC4wLWFscGhhLTEtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6Cj4gY2NiZWQzM2VhM2JhYTUyN2I5YTBjZjkwZGJiNGY5Y2E4YmI4OGVmNAo+Cj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWpkZXByc2Nhbi1wbHVnaW4tTEFURVNULwo+Cj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPgo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4KPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCi0tMDAxYTExNDQ1MzMwNDljNDBjMDU1ZGQ5YzNjMC0tCgpGcm9tIGRldi1yZXR1cm4tMTIzOTU2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBTZXAgMTEgMDc6MjA6MzQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTU2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDgxRUFBMUFDQUEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAwNzoyMDozNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDU5MjA4IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDA3OjIwOjM0IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1ODk1MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAwNzoyMDozMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU4NzE5IGludm9rZWQgYnkgdWlkIDk5KTsgMTEgU2VwIDIwMTcgMDc6MjA6MzMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDExIFNlcCAyMDE3IDA3OjIwOjMzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgODg4RjcxQTM0RDUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDA3OjIwOjMyICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi44NzkKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi44NzkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMjA0OC1iaXQga2V5KSBoZWFkZXIuZD1nbWFpbC5jb20KUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHZWcFNkamFJY2dQQyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMTEgU2VwIDIwMTcgMDc6MjA6MzEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC1pdDAtZjUyLmdvb2dsZS5jb20gKG1haWwtaXQwLWY1Mi5nb29nbGUuY29tIFsyMDkuODUuMjE0LjUyXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEVGMUJCNUZENDgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDA3OjIwOjMwICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLWl0MC1mNTIuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgZzE0MnNvMTA0NTY5MDNpdGEuMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDAwOjIwOjMwIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWk0b2VIZVVlZ24zNDJtaDlrbU1reEJCOHVzSitvMmJlZUxnZjdDaWNqTnc9OwogICAgICAgIGI9TnBlU29VVFY2NnBkSWhaZmRHWnFIRWpRVnIya0VzOFBRaVM3L0h3a0Y2MzZ6M0FzNTNKYkxYWmxFQk9SUUZJeEJ0CiAgICAgICAgIGJ3WUNKZ0R0Y2RaeHE3b3UvdWxEMENGaVg0T1hSbzhhYlpCRFc1eW9uRGFxM2JWUzg0NmkyTUU1TU4xTDZOWXpNQ0dWCiAgICAgICAgIEhDUGdIUFJpczNLOTJXRUJpRHRsQzkvekQ3NVkwU3g2Smd2UHpwYk11MzNDZHRsVWJMYWhiN0xoUU4rL2RiMFIzZEFwCiAgICAgICAgIEV5RlNPNHdTalVKSGM4NElyUmlxc3lmSDhvemlkZElTc0ZVQUxsKzdSVjllOEt4K2NSdi8wTmxhbHJUckE3aGc4dzVnCiAgICAgICAgIEpPNnJMRWl4Qm0yT0UvSGx4SGJuNVpLdG9LdWt5UUF2dlNKL3RNUUdvTUI3NWJXWDBBdU5ydzVvTmdWOE51bkQ4ZVBlCiAgICAgICAgIG5LclE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWk0b2VIZVVlZ24zNDJtaDlrbU1reEJCOHVzSitvMmJlZUxnZjdDaWNqTnc9OwogICAgICAgIGI9UENRbmFidDFzTFJxLzBmZHc0SHRvaVR5Q1luUFZWLzI5WG9icVRpbk5NWC9CbmhZbU1HYSs0WHBDRmtZZHJnWi9zCiAgICAgICAgIGg5YkRyZCtiTTN0d2VYN3F5eUYxWUNqR1VSRnRrVHpwUmU2c3BFSGN1VEE1bm9aM2N5cjB4QU9nSTFEWG4vK2Uya1IxCiAgICAgICAgIG93MXdJOGNaZmdWV3pRL3JFY210VE1sOWRPcU9scmh3eVVnMVJmYjFUN3NEVnhGOGZBbmdlLy8ycENpcUFoSFV2ajZsCiAgICAgICAgIFo1WWtUTThhU09NbnNqYU1ndjd1NEdkY3BZd2NZRDlsVDNWdlNWbTFqT2FlSHVtaE1lOGR2SGhudENqWkhOOHFOdldNCiAgICAgICAgIFhJcERQVml3U0lvZlJLU0hmY1ljR0JGM0JNMnpTRDJsYlVEd3UzUjFib1RUdVUvZWhFRFEreTBtZWUxdEhXY3p4ZVlCCiAgICAgICAgIFMrVVE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWdWSUpBZU5OQ1duKzFDZUx4ekplUlZRUEdXeC8zd2hvcTgyVU9UajhTRDI2YVROZ3d1CglETnU3Z0wyNTZsSktSZDcyMzRTODRtTkxOR2NlU3c9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRQ2laa3ZlVGYyVGRpdDNpOFcwVjBMTllROS9lekdrK0s3VWJPUm1xaFNraEovMVpNdWs2aG02WVppOFMyeDlrSUNDUnBnUEoxWVl3c2Q3dnF4T2Z6az0KWC1SZWNlaXZlZDogYnkgMTAuMzYuMTczLjMwIHdpdGggU01UUCBpZCBjMzBtcjE3MTAzMDhpdGYuNDUuMTUwNTExNDQzMDEwMTsKIE1vbiwgMTEgU2VwIDIwMTcgMDA6MjA6MzAgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjM2LjY1LjE3MCB3aXRoIEhUVFA7IE1vbiwgMTEgU2VwIDIwMTcgMDA6MjA6MjkgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxDQUt1VnpCUjVFRGtUK2ptYjNwZUJma3JrYXZ5dml5ZUZSQ21tWW9nTzdYN2lIPUstYVFAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQStuUG5NeHlHMk5lUFhwVnFhd2U5alI9aXRIRVQ2VXVkbk45Q2pIaHY9b28tS0NyeHdAbWFpbC5nbWFpbC5jb20+CiA8Q0FLdVZ6QlI1RURrVCtqbWIzcGVCZmtya2F2eXZpeWVGUkNtbVlvZ083WDdpSD1LLWFRQG1haWwuZ21haWwuY29tPgpGcm9tOiBEYW4gVHJhbiA8ZGFudHJhbkBnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTEgU2VwIDIwMTcgMDA6MjA6MjkgLTA3MDAKTWVzc2FnZS1JRDogPENBUENqam5FVEZaVExtKzhyZ0tXMHI0c3lYWVJwb0Jaal9hSmoxeDJkdmljek9ZSGtkZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSI5NGViMmMxZmM4ZThmM2RlY2YwNTU4ZTRjMjNjIgoKLS05NGViMmMxZmM4ZThmM2RlY2YwNTU4ZTRjMjNjCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCgpGYWxzZSBhbGFybSwgSSBtaXNzZWQgY29uZmlndXJlIGdsb2JhbCBzZXR0aW5ncy54bWwsIGl0IGlzIG1pc3NpbmcgdGhlCmRlZmF1bHQgcmVwb3NpdG9yeSBzZXR1cAoKLUQKCk9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDExOjQ3IFBNLCBUaWJvciBEaWdhbmEgPHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbT4Kd3JvdGU6Cgo+ICsxOgo+IDMuNS4xIHdvcmtzIGluIG15IHByb2plY3QgbGlrZSBhIGNoYXJtIDstKQo+Cj4gT24gU3VuLCBTZXAgMTAsIDIwMTcgYXQgNTozOSBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiA+IEhpLAo+ID4KPiA+IFdlIHNvbHZlZCAyNSBpc3N1ZXM6Cj4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4gPiB2ZXJzaW9uPTEyMzM4OTY0JnN0eWxlTmFtZT1UZXh0JnByb2plY3RJZD0xMjMxNjkyMgo+ID4KPiA+IFRoZXJlIGFyZSAzNTAgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJQo+ID4gM0QlMjBNTkclMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJQo+ID4gMjBCWSUyMGR1ZSUyMEFTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMGNyZWF0ZWQlMjBBU0MKPiA+Cj4gPiBTdGFnaW5nIHJlcG86Cj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY0Lwo+ID4KPiA+IFRoZSBkaXN0cmlidXRhYmxlIGJpbmFyaWVzIGFuZCBzb3VyY2VzIGNhbiBiZSBmb3VuZCBoZXJlOgo+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xLwo+ID4KPiA+IFNwZWNpZmljYWxseSB0aGUgemlwLCB0YXJiYWxsIGFuZCBzb3VyY2UgYXJjaGl2ZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLWJpbi56aXAKPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtYmluLnRhci5nego+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwCj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy50YXIuZ3oKPiA+Cj4gPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiA+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMudGFyLmd6IHNoYTE6IDllYjgyMWYxNTNjNzY2NzE5NGFhMTFjY2QwOTliNwo+ID4gYmQyMDU5NTYwZAo+ID4gYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy56aXA6IHNoYTE6IDEyMWQ1NGIwNDUzODBhOGE0ODk1ZWIxMzc5NzBhYgo+IDY5ZTY5OGViMGUKPiA+Cj4gPiBHaXQgdGFnOgo+ID4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9bWF2ZW4uZ2l0O2E9Y29tbWl0O2g9Cj4gPiAwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzCj4gPgo+ID4gU3RhZ2luZyBzaXRlOgo+ID4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2NvbXBvbmVudHMvcmVmLzMtTEFURVNULwo+ID4KPiA+IFZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCj4gPgo+ID4gWyBdICsxCj4gPiBbIF0gKzAKPiA+IFsgXSAtMQo+ID4KPiA+IFRoYW5rcywKPiA+Cj4gPiBTdGVwaGVuLgo+ID4KPgo+Cj4KPiAtLQo+IENoZWVycwo+IFRpYm9yCj4KCi0tOTRlYjJjMWZjOGU4ZjNkZWNmMDU1OGU0YzIzYy0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MzAwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBPY3QgMjEgMTc6MTA6MzMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzAwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEFGNTQwMTA1QzUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAyMSBPY3QgMjAxNyAxNzoxMDozMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDY5MDg0IGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIE9jdCAyMDE3IDE3OjEwOjMzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2OTAxOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBPY3QgMjAxNyAxNzoxMDozMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY5MDA1IGludm9rZWQgYnkgdWlkIDk5KTsgMjEgT2N0IDIwMTcgMTc6MTA6MzMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDIxIE9jdCAyMDE3IDE3OjEwOjMzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgM0ZGOTVDMDZBNAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMjEgT2N0IDIwMTcgMTc6MTA6MzIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjM3OQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjM3OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgTk42dW1ieUxpZmphIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAyMSBPY3QgMjAxNyAxNzoxMDozMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdtMC1mNTAuZ29vZ2xlLmNvbSAobWFpbC13bTAtZjUwLmdvb2dsZS5jb20gWzc0LjEyNS44Mi41MF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBERjlGMTVGRDhFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAyMSBPY3QgMjAxNyAxNzoxMDozMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13bTAtZjUwLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHExMzJzbzI5NzI3NzV3bWQuMgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDIxIE9jdCAyMDE3IDEwOjEwOjMwIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPU94N0FUOG14NTFpazltRDUwU0xVcU1iSldFVnZnYWZYTklqMWhaZmx3b1U9OwogICAgICAgIGI9QUliZFFWcERXTEI2aGZoVU9iTGc3L3VOSlUzU1Rhb0RkcmxCOGEwOVdCSHhrNUlLdWd3WmU2VE5Ed0ExT3BwODB3CiAgICAgICAgIGJXSFZaY1NNOVpyek5HOEpPTWJ6cEJBN1UxbWxTeTJ6SnlwclVFMFJPaytvN1pHY2JvblhRZDNndmVSUWRjN2V1cGkxCiAgICAgICAgIGhDS3VDa1N4Zzdpek5hcDVYWFl2MU03bFB2ZW0vSExGSGNJTnFKemNLSmI4UFRCcUNlTmM3T25FVm42NGJmSjNReldvCiAgICAgICAgIFNpWVZITmFHQ3dnUXVzMUpwU0NwUmpMQnhCUUl2aXVSMThFQTJVQkRzcEdhY3pOekx2UFBOY3JSRlI2ZUdPdGlWMFErCiAgICAgICAgIFBmZEVrRzZReEFkWHlYWUZKUkhhdGhhV3M5Z3RHd0ZSb2FPUHdDaCtyc1FhWTA1ZnhTZjBXK044NzBRZmdoRkFjT3F0CiAgICAgICAgIHNkVEE9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPU94N0FUOG14NTFpazltRDUwU0xVcU1iSldFVnZnYWZYTklqMWhaZmx3b1U9OwogICAgICAgIGI9RlhZY0JTWFRFNFF5Slh6QzVTc01nTkN1YUc4YVhVNS96bVVqdEhSU3JHUTl2L1BqMThCOFY0MisrTnJHUXNFa1dtCiAgICAgICAgIDQwcS9JRTh5d1RLcy9GVm84QlRXa0R2bW5VdWo2blFnaDN3Q1Y0ZWs3VFdPaFBFMWpIRllvM2xuOG1GRitGZ0xXcmdVCiAgICAgICAgIC9sKzBiQ3YwNVFpRlRZMlZzOC9uejQzYTVGUHhUa3JZNHh1Y2FyK1ZwN0Z2TDVkczNGZUl0bk1ZeDNTUjlPWHZaZTRVCiAgICAgICAgIHVud3hxYlRRQW9ZWk5aQWphdkNmbVk0VElsMGhNOGVUdEVqeFl1dnNsRDhiU1VJK3VGRXRBdlN0ZzJlMldHRmVRREE5CiAgICAgICAgIDJNSzhWdXhVbitQTkluMWs4UkNwdGRpTFFPVGRlb2h3cUtlZG1nbU42WFhKcjhROE1DRWZBRU05SlhVbTF3eGM3VFZ1CiAgICAgICAgIEFEc0E9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVdYaXY5VlJIZXZNWTg4Rm9NSno2YnVpcDBUeXRPT2VFemU2Z0dJRDVyRGErblk3dXFWCgl6MzZoakJyZGJ1UnROYWZkVTBEcmJTOThpczVGVnVhOTMwZjNYVXdDMGc9PQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArUTkyZmdzQ1VjR3dkTXQ4R0tsNTdUVGRXa0VkY1pkdHZYS0NSd1dib3F0QmNvb2FnQkZaajFoejAvR3VHM3hpUlNETjc0a3Nra3g3ZEtjajFLdUxCWT0KWC1SZWNlaXZlZDogYnkgMTAuODAuMTU4LjE5NCB3aXRoIFNNVFAgaWQgYTYwbXI3MDMwNjQ2ZWRmLjE4Mi4xNTA4NjA1ODIzOTA0OwogU2F0LCAyMSBPY3QgMjAxNyAxMDoxMDoyMyAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuODAuMTg3LjExMCB3aXRoIEhUVFA7IFNhdCwgMjEgT2N0IDIwMTcgMTA6MTA6MjMgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxDQUxZR20xdz1VUHd2MHJFLUhqWkp2bittNUg5MUUrNGE4dS01U1kwY3Y4c3VVSzBoZ1FAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQStuUG5Nd3RqblpFLTUzQU41M3hGPU1mNkhZLUZiR1l3WkFVdzNFVUtIQTRlS0I1MlFAbWFpbC5nbWFpbC5jb20+CiA8Q0FMWUdtMXc9VVB3djByRS1IalpKdm4rbTVIOTFFKzRhOHUtNVNZMGN2OHN1VUswaGdRQG1haWwuZ21haWwuY29tPgpGcm9tOiBEYW4gVHJhbiA8ZGFudHJhbkBnbWFpbC5jb20+CkRhdGU6IFNhdCwgMjEgT2N0IDIwMTcgMTA6MTA6MjMgLTA3MDAKTWVzc2FnZS1JRDogPENBUENqam5FZXNHeERUS1lpTEdWR1QzaThBSGFGVkVFR2Q4aWhnampVMGZGc3QwM3N0UUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSI5NGViMmMxYTA3MWUzZDcxNjcwNTVjMTFhYTA4IgoKLS05NGViMmMxYTA3MWUzZDcxNjcwNTVjMTFhYTA4CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkkgYW0gbm90IGFibGUgZ2V0dGluZyBtdm4gMy41LjIgdG8gZG93bmxvYWQgYW4gaW50ZXJuYWwgc25hcHNob3QgZGVwZW5kZW5jeQpmcm9tIGNvbXAncyBjZW50cmFsIGFydGlmYWN0b3J5CgpoZXJlIGlzIHRoZSBlcnJvcgoKQ2F1c2VkIGJ5OiBvcmcuZWNsaXBzZS5hZXRoZXIucmVzb2x1dGlvbi5EZXBlbmRlbmN5UmVzb2x1dGlvbkV4Y2VwdGlvbjoKQ291bGQgbm90IGZpbmQgYXJ0aWZhY3QgY29tLm9yYWNsZS5saW51eC54ODZfNjQ6anJlOnJwbToxLjguMF8xNTEtU05BUFNIT1QKICAgIGF0Cm9yZy5lY2xpcHNlLmFldGhlci5pbnRlcm5hbC5pbXBsLkRlZmF1bHRSZXBvc2l0b3J5U3lzdGVtLnJlc29sdmVEZXBlbmRlbmNpZT0KcwooRGVmYXVsdFJlcG9zaXRvcnlTeXN0ZW0uamF2YTozNTUpCiAgICBhdCBvcmcuYXBhY2hlLm1hdmVuLnByb2plY3QuRGVmYXVsdFByb2plY3REZXBlbmRlbmNpZXNSZXNvbHZlci5yZXNvbHZlCihEZWZhdWx0UHJvamVjdERlcGVuZGVuY2llc1Jlc29sdmVyLmphdmE6MjAyKQoKTm8gaXNzdWUgd2l0aCAzLjUuMCBhbmQgMy41LjEKCldvbmRlciBpZiBhbnlvbmUgZWxzZSBlbmNvdW50ZXJzIHRoZSBzYW1lIGlzc3VlPz8KClRoYW5rcwoKLURhbgoKT24gRnJpLCBPY3QgMjAsIDIwMTcgYXQgNzozNSBQTSwgTWFyayBEZXJyaWN1dHQgPG1hcmtAdGFsaW9zLmNvbT4gd3JvdGU6Cgo+ICsxIGxvb2tpbmcgZ29vZCBmcm9tIGhlcmUgb24gbXkgcHJvamVjdHMvcmVsZWFzZXMuCj4KPiAtLQo+ICJHcmVhdCBhcnRpc3RzIGFyZSBleHRyZW1lbHkgc2VsZmlzaCBhbmQgYXJyb2dhbnQgdGhpbmdzIiA9RTI9ODA9OTQgU3RldmU9Cm4gV2lsc29uLAo+IFBvcmN1cGluZSBUcmVlCj4KPiBPbiBXZWQsIE9jdCAxOCwgMjAxNyBhdCAxMTo1MCBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4KPiA+IEhpLAo+ID4KPiA+IFdlIHNvbHZlZCAyNiBpc3N1ZXM6Cj4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4gPiB2ZXJzaW9uPTNEMTIzMzg5NjQmc3R5bGVOYW1lPTNEVGV4dCZwcm9qZWN0SWQ9M0QxMjMxNjkyMgo+ID4KPiA+IFRoZXJlIGFyZSAzNTcgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlCj4gPiAzRCUyME1ORyUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlCj4gPiAyMEJZJTIwZHVlJTIwQVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwY3JlYXRlZCUyMEFTQwo+ID4KPiA+IFN0YWdpbmcgcmVwbzoKPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzMvCj4gPgo+ID4gVGhlIGRpc3RyaWJ1dGFibGUgYmluYXJpZXMgYW5kIHNvdXJjZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiA+IDEzNzMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvCj4gPgo+ID4gU3BlY2lmaWNhbGx5IHRoZSB6aXAsIHRhcmJhbGwgYW5kIHNvdXJjZSBhcmNoaXZlcyBjYW4gYmUgZm91bmQgaGVyZToKPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+ID4gMTM3My9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItYmluLnppcAo+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gPiAxMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yL2FwYWNoZS1tYXZlbi0zLjUuMi1iaW4udGFyLmd6Cj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiA+IDEzNzMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvYXBhY2hlLW1hdmVuLTMuNS4yLXNyYy56aXAKPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+ID4gMTM3My9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItc3JjLnRhci5nego+ID4KPiA+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+ID4gYXBhY2hlLW1hdmVuLTMuNS4yLXNyYy50YXIuZ3ogc2hhMTogOTdkNmQ3YjE4NDg1Yjc5MDZkZDdmMzEzY2RkNDExCj4gPiA5MWQxNmRkZTQ2Cj4gPiBhcGFjaGUtbWF2ZW4tMy41LjItc3JjLnppcDogc2hhMTogZGM4Y2FhNWNkYWNiNDAwOTQzZDI0OTFhMDIwZjc0Cj4gMmE1MThlOGYwOAo+ID4KPiA+IEdpdCB0YWc6Cj4gPiBodHRwczovL2dpdC13aXAtdXMuYXBhY2hlLm9yZy9yZXBvcy9hc2Y/cD0zRG1hdmVuLmdpdDthPTNEY29tbWl0O2g9M0QKPiA+IDEzOGVkZDYxZmQxMDBlYzY1OGJmYTJkMzA3YzQzYjc2OTQwYTVkN2QKPiA+Cj4gPiBTdGFnaW5nIHNpdGU6Cj4gPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvY29tcG9uZW50cy9yZWYvMy1MQVRFU1QvCj4gPgo+ID4gVm90ZSBvcGVuIGZvciA3MiBob3Vycy4KPiA+Cj4gPiBbIF0gKzEKPiA+IFsgXSArMAo+ID4gWyBdIC0xCj4gPgo+ID4gVGhhbmtzLAo+ID4KPiA+IFN0ZXBoZW4uCj4gPgo+CgotLTk0ZWIyYzFhMDcxZTNkNzE2NzA1NWMxMWFhMDgtLQoKRnJvbSBkZXYtcmV0dXJuLTEyMzk1NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gU2VwIDExIDA2OjMyOjQyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzk1NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAxOEJFRjFBQjQ5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMDY6MzI6NDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzOTQ4NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAwNjozMjo0MSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzk0MjEgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgU2VwIDIwMTcgMDY6MzI6NDEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzOTQwNiBpbnZva2VkIGJ5IHVpZCA5OSk7IDExIFNlcCAyMDE3IDA2OjMyOjQxIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAxMSBTZXAgMjAxNyAwNjozMjo0MSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEU4RDRDMTkxREUzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAwNjozMjo0MCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuODc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuODc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgQ25DUWd2RWJ3R2dJIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAxMSBTZXAgMjAxNyAwNjozMjozOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLWl0MC1mNDguZ29vZ2xlLmNvbSAobWFpbC1pdDAtZjQ4Lmdvb2dsZS5jb20gWzIwOS44NS4yMTQuNDhdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQTVBMzE1RjZCRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMDY6MzI6MzcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtaXQwLWY0OC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBjMTk1c28xNTQxNzA4M2l0Yi4xCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMjM6MzI6MzcgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9T3NvT240bStYb0ZlQWV2blZzZ3ZEcGVQVkt3V1ZQR2daUlpndFBkSVZzbz07CiAgICAgICAgYj1tUjltUW9WNUtQRE9mc2FLNGFBZmJSaG1IWGI0dDdkcjFoRXhRR3d5TnFGZlZORFoyUzdGVkwwVWJuWEMwaTFLUGgKICAgICAgICAgMnBZOTdwU2Z4QTh6RU5sbkNLc090Z2poT0xqK2w4TGpydzRFYTFuaW56NHFKeHRsNUYrOXh5bDRuRjljVVQ1S2xlUXkKICAgICAgICAgSngwNTNjbGFhd3hEa0N2Q2U5UnRzVE1hSEFaYVRNMHZMczRmK21DRkE4bDNpNlhLbDlqNWYzUGN6b3BOQUVEckwzMTcKICAgICAgICAgVERtam9NSGVYZ09QOHg5bE9IaGZsZVRrSmk0eEJ4ZnREWCsrSGNhYmVMNWgxRW45SXpEZGpSa21IWkVNMEJ2YTFabnEKICAgICAgICAganRQRTgxRFZZYW0rc1NNQzE3Z1lXdnlxM2pqYlNzTlgrakx0ZWx3U1RqRkFhZkJvckxXalZZRFBNWW16NzZuWjRLMSsKICAgICAgICAgaVQ0UT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9T3NvT240bStYb0ZlQWV2blZzZ3ZEcGVQVkt3V1ZQR2daUlpndFBkSVZzbz07CiAgICAgICAgYj1QSDBJMXdkLytydWc2Rk1GZlVhYUVtOTJUOTlmVXFHdk83MVIybmdDUGYxek5oanBsbmRrbm5IeE5oRHAvNXdESk8KICAgICAgICAgMTE5UmtrOGhReVdUcnJoOEFUdUQzZ0tmelB5WnZxeXZ6M25ZK1lDT0xwdnZENU4vdW1NcXl1cFB0c1BVMGhTWkxXSEMKICAgICAgICAgVW9qbnJidnQ1MzN1cVMxeExscEd4Tm1EVlZCSEhwUmZPRnhsdDlrMXE5U2pWZGM5d0VVOGR0aDdpdGxFRDM1MmxvN0cKICAgICAgICAgM2dsUzVCTnRvbWtMYVlSLzhHV255LzVVMVFmdFFuOG5CaXcvcGlja3JLajduSURDTkEwVnI4cXJXbkJSMTBXdmFUa1YKICAgICAgICAgTERYN1lRbEpmRlBjd2tmeUhkc0NkazVzblUvQytmRWM0aE1FL1ZmWS90Qkt3c1dHRzRFdVhYUlorNVI3VkZ1dDdmS1YKICAgICAgICAgWTJjUT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVZ3BMMmh5NmY4UE9IZWhGMjg0VGViQmFOVEl6NjRxU2ZsNjY4dTFocTRsd2FRNkl1eWkKCUJnZWF4R0JxWDVSUG91UVBSSTAzMEM5YTFwZjgxRXlTClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FBNmVDNWtacG9VQTNWYUxJZUxiRkttN0tTTkd6MnhrZVk3MGpGcmNOU3pwREVqOWtyQjkvb3Y3Znluc0tLdzY0YVo4MHRwWTZjNDZ5UlR5aGkvQjJZPQpYLVJlY2VpdmVkOiBieSAxMC4zNi4xMjQuNzcgd2l0aCBTTVRQIGlkIGE3NG1yMTEyMzkyMjFpdGQuNTMuMTUwNTExMTU1Njg5OTsKIFN1biwgMTAgU2VwIDIwMTcgMjM6MzI6MzYgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjM2LjY1LjE3MCB3aXRoIEhUVFA7IFN1biwgMTAgU2VwIDIwMTcgMjM6MzI6MzYgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxDQStuUG5Nd1VxbUJ1cmF0RDFDcGs9TDl0QUN3Xytxb3Ryc1VwQ3FkcVJaWG1XWGdpVEFAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQStuUG5NeHlHMk5lUFhwVnFhd2U5alI9aXRIRVQ2VXVkbk45Q2pIaHY9b28tS0NyeHdAbWFpbC5nbWFpbC5jb20+CiA8Q0FGTkNVLS0ydnJkNUJlVHZreEtDeVgyWlFlUHFpeDdYPXdtVnNXZE01ZDQ5WGVOZ093QG1haWwuZ21haWwuY29tPgogPEY3MDU3RTFCLTQzMTMtNEQ3Qi04RUYxLTk5MzQxREQxRTFEMEB0YWxpb3MuY29tPiA8Q0ErblBuTXdVcW1CdXJhdEQxQ3BrPUw5dEFDd18rcW90cnNVcENxZHFSWlhtV1hnaVRBQG1haWwuZ21haWwuY29tPgpGcm9tOiBEYW4gVHJhbiA8ZGFudHJhbkBnbWFpbC5jb20+CkRhdGU6IFN1biwgMTAgU2VwIDIwMTcgMjM6MzI6MzYgLTA3MDAKTWVzc2FnZS1JRDogPENBUENqam5GcHoyYlVLcGtvRTJaUndYV0NLVnBmQldTS09vakJ4aWVlZWpWRzItSk5vd0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSIwMDFhMTE0YWI4NWViMjRhMjYwNTU4ZTQxNzU5IgoKLS0wMDFhMTE0YWI4NWViMjRhMjYwNTU4ZTQxNzU5CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkkgaGF2ZSBubyBpc3N1ZSBidWlsZCBtYXZlbiAzLjUuMi1TTkFQU0hPVCB3aXRoIGNsZWFuIHZlcmlmeSBhdCB0b3AgbGV2ZWwsCiBidXQgIHRoZSBmb2xsb3dpbmcgYnVpbGQgZmFpbHMKCm12biBjbGVhbiB2ZXJpZnkgLWYgYXBhY2hlLW1hdmVuCgpDOlx2aWV3c1xkZXZcbWF2ZW5cbWF2ZW4+bXZuIGNsZWFuIHZlcmlmeSAtZiBhcGFjaGUtbWF2ZW4KW0lORk9dIFNjYW5uaW5nIGZvciBwcm9qZWN0cy4uLgpbSU5GT10KW0lORk9dCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpbSU5GT10gQnVpbGRpbmcgQXBhY2hlIE1hdmVuIERpc3RyaWJ1dGlvbiAzLjUuMi1TTkFQU0hPVApbSU5GT10KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCltXQVJOSU5HXSBUaGUgUE9NIGZvciBvcmcuYXBhY2hlLm1hdmVuOm1hdmVuLWVtYmVkZGVyOmphcjozLjUuMi1TTkFQU0hPVCBpcwptaXNzaW5nLCBubyBkZXBlbmRlbmN5IGluZm9ybWF0aW9uIGF2YWlsYWJsZQpbV0FSTklOR10gVGhlIFBPTSBmb3Igb3JnLmFwYWNoZS5tYXZlbjptYXZlbi1jb3JlOmphcjozLjUuMi1TTkFQU0hPVCBpcwptaXNzaW5nLCBubyBkZXBlbmRlbmN5IGluZm9ybWF0aW9uIGF2YWlsYWJsZQpbV0FSTklOR10gVGhlIFBPTSBmb3Igb3JnLmFwYWNoZS5tYXZlbjptYXZlbi1jb21wYXQ6amFyOjMuNS4yLVNOQVBTSE9UIGlzCm1pc3NpbmcsIG5vIGRlcGVuZGVuY3kgaW5mb3JtYXRpb24gYXZhaWxhYmxlCltXQVJOSU5HXSBUaGUgUE9NIGZvcgpvcmcuYXBhY2hlLm1hdmVuOm1hdmVuLXNsZjRqLXByb3ZpZGVyOmphcjozLjUuMi1TTkFQU0hPVCBpcyBtaXNzaW5nLCBubwpkZXBlbmRlbmN5IGluZm9ybWF0aW9uIGF2YWlsYWJsZQpbSU5GT10KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCltJTkZPXSBCVUlMRCBGQUlMVVJFCltJTkZPXQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KW0lORk9dIFRvdGFsIHRpbWU6IDAuNzg4IHMKW0lORk9dIEZpbmlzaGVkIGF0OiAyMDE3LTA5LTEwVDIzOjI5OjIyLTA3OjAwCltJTkZPXSBGaW5hbCBNZW1vcnk6IDEwTS8yNDNNCltJTkZPXQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KW0VSUk9SXSBGYWlsZWQgdG8gZXhlY3V0ZSBnb2FsIG9uIHByb2plY3QgYXBhY2hlLW1hdmVuOiBDb3VsZCBub3QgcmVzb2x2ZQpkZXBlbmRlbmNpZXMgZm9yIHByb2plY3Qgb3JnLmFwYWNoZS5tYXZlbjphcGFjaGUtbWF2ZW46cG9tOjMuNS4yLVNOQVBTSE9UOgpUaGUgZm9sbG93aW5nIGFydGlmYWN0cyBjb3VsZCBub3QgYmUgcmVzb2x2ZWQ6Cm9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tZW1iZWRkZXI6amFyOjMuNS4yLVNOQVBTSE9ULApvcmcuYXBhY2hlLm1hdmVuOm1hdmVuLWNvcmU6amFyOjMuNS4yLVNOQVBTSE9ULApvcmcuYXBhY2hlLm1hdmVuOm1hdmVuLWNvbXBhdDpqYXI6My41LjItU05BUFNIT1QsCm9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tc2xmNGotcHJvdmlkZXI6amFyOjMuNS4yLVNOQVBTSE9UOiBDb3VsZCBub3QgZmluZAphcnRpZmFjdCBvcmcuYXBhY2hlLm1hdmVuOm1hdmVuLWVtYmVkZGVyOmphcjozLjUuMi1TTkFQU0hPVCAtPiBbSGVscCAxXQpbRVJST1JdCltFUlJPUl0gVG8gc2VlIHRoZSBmdWxsIHN0YWNrIHRyYWNlIG9mIHRoZSBlcnJvcnMsIHJlLXJ1biBNYXZlbiB3aXRoIHRoZSAtZQpzd2l0Y2guCltFUlJPUl0gUmUtcnVuIE1hdmVuIHVzaW5nIHRoZSAtWCBzd2l0Y2ggdG8gZW5hYmxlIGZ1bGwgZGVidWcgbG9nZ2luZy4KW0VSUk9SXQpbRVJST1JdIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlcnJvcnMgYW5kIHBvc3NpYmxlIHNvbHV0aW9ucywKcGxlYXNlIHJlYWQgdGhlIGZvbGxvd2luZyBhcnRpY2xlczoKW0VSUk9SXSBbSGVscCAxXQpodHRwOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvTUFWRU4vRGVwZW5kZW5jeVJlc29sdXRpb25FeGNlcHQ9CmlvbgoKCm5vIGlzc3VlIHdpdGggbXZuIDMuNS4wCgotRGFuCgpPbiBTdW4sIFNlcCAxMCwgMjAxNyBhdCAxMToxMCBQTSwgU3RlcGhlbiBDb25ub2xseSA8CnN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgoKPiBJIHdvbmRlciBpZiBtbmctNjI3NSBpcyBhZmZlY3RpbmcgdGhhdCBwbHVnaW4KPgo+IE9uIE1vbiAxMSBTZXAgMjAxNyBhdCAwMTowMCwgTWFyayBEZXJyaWN1dHQgPG1hcmtAdGFsaW9zLmNvbT4gd3JvdGU6Cj4KPiA+ICswIG5vbi1jb21taXRhbCAtCj4gPgo+ID4gVGVzdGVkIG9uIG91ciB0aWxlcy9vc2dpIGJhc2VkIHByb2plY3RzIGFuZCBhbGwgc2VlbXMgdG8gd29yaywgYnV0IGZvcgo+ID4gc29tZSByZWFzb24gLSBvbmUgcHJvamVjdCB0aGF0IHVzZXMgdGhlCj4gPiBvcmcub3BlbnFhLnNlbGVuaXVtLnBoYW50b21qcy5QaGFudG9tSlNEcml2ZXJTZXJ2aWNlIHNlZW1zIHRvIGJsb3dpbmcgdT0KcAo+ID4gd2hlbiB1c2luZyAzLjUuMSAtIG5lZWQgdG8gZG8gc29tZSBtb3JlIGRpZ2dpbmcgYW5kIHNlZSBpZiBJIGNhbiBzcG90Cj4gd2hhdHMKPiA+IGdvaW5nIG9uLgo+ID4KPiA+IFdpbGwgdHJ5IGFuZCBkaWcgaW50byB0aGlzIGFmdGVyIHdvcmsgdG9uaWdodC4KPiA+Cj4gPiBNYXJrCj4gPgo+ID4gT24gMTEgU2VwIDIwMTcsIGF0IDg6MDEsIEFybmF1ZCBIPUMzPUE5cml0aWVyIHdyb3RlOgo+ID4KPiA+IFRlc3RlZCBvbiBzZXZlcmFsIHByb2plY3RzCj4gPgo+ID4gKzEKPiA+Cj4gPiBPbiBTdW4sIFNlcCAxMCwgMjAxNyBhdCA1OjM5IFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiA+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4KPiA+IEhpLAo+ID4KPiA+IFdlIHNvbHZlZCAyNSBpc3N1ZXM6Cj4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4gPiB2ZXJzaW9uPTNEMTIzMzg5NjQmc3R5bGVOYW1lPTNEVGV4dCZwcm9qZWN0SWQ9M0QxMjMxNjkyMgo+ID4KPiA+IFRoZXJlIGFyZSAzNTAgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlCj4gPiAzRCUyME1ORyUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlCj4gPiAyMEJZJTIwZHVlJTIwQVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwY3JlYXRlZCUyMEFTQwo+ID4KPiA+IFN0YWdpbmcgcmVwbzoKPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjQvCj4gPgo+ID4gVGhlIGRpc3RyaWJ1dGFibGUgYmluYXJpZXMgYW5kIHNvdXJjZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvCj4gPgo+ID4gU3BlY2lmaWNhbGx5IHRoZSB6aXAsIHRhcmJhbGwgYW5kIHNvdXJjZSBhcmNoaXZlcyBjYW4gYmUgZm91bmQgaGVyZToKPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtYmluLnppcAo+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1iaW4udGFyLmd6Cj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy56aXAKPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5nego+ID4KPiA+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+ID4gYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy50YXIuZ3ogc2hhMTogOWViODIxZjE1M2M3NjY3MTk0YWExMWNjZDA5OWI3Cj4gPiBiZDIwNTk1NjBkCj4gPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcDogc2hhMTogMTIxZDU0YjA0NTM4MGE4YTQ4OTVlYjEzNzk3MGFiCj4gNjllNjk4ZWIwZQo+ID4KPiA+IEdpdCB0YWc6Cj4gPiBodHRwczovL2dpdC13aXAtdXMuYXBhY2hlLm9yZy9yZXBvcy9hc2Y/cD0zRG1hdmVuLmdpdDthPTNEY29tbWl0O2g9M0QKPiA+IDA5NGU0ZTMxYTVhZjU1YmIxN2JlODc2NzVkYTQxZDlhZWNhMDYyZjMKPiA+Cj4gPiBTdGFnaW5nIHNpdGU6Cj4gPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvY29tcG9uZW50cy9yZWYvMy1MQVRFU1QvCj4gPgo+ID4gVm90ZSBvcGVuIGZvciA3MiBob3Vycy4KPiA+Cj4gPiBbIF0gKzEKPiA+IFsgXSArMAo+ID4gWyBdIC0xCj4gPgo+ID4gVGhhbmtzLAo+ID4KPiA+IFN0ZXBoZW4uCj4gPgo+ID4gLS0KPiA+IC0tLS0tCj4gPiBBcm5hdWQgSD1DMz1BOXJpdGllcgo+ID4gaHR0cDovL2FoZXJpdGllci5uZXQKPiA+IE1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tCj4gPiBUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyCj4gPgo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPgo+ID4gIlRoZSBlYXNlIHdpdGggd2hpY2ggYSBjaGFuZ2UgY2FuIGJlIGltcGxlbWVudGVkIGhhcyBubyByZWxldmFuY2UgYXQgYWw9CmwKPiA+IHRvIHdoZXRoZXIgaXQgaXMgdGhlIHJpZ2h0IGNoYW5nZSBmb3IgdGhlIChKYXZhKSBQbGF0Zm9ybSBmb3IgYWxsIHRpbWUuPQoiCj4gPUUyPTgwPTk0Cj4gPiBNYXJrIFJlaW5ob2xkLgo+ID4KPiA+IE1hcmsgRGVycmljdXR0Cj4gPiBodHRwOi8vd3d3LnRoZW9yeWlucHJhY3RpY2UubmV0Cj4gPiBodHRwOi8vd3d3LmNoYWxpY2VvZmJsb29kLm5ldAo+ID4gaHR0cDovL3BsdXMuZ29vZ2xlLmNvbS8rTWFya0RlcnJpY3V0dAo+ID4gaHR0cDovL3R3aXR0ZXIuY29tL3RhbGlvcwo+ID4gaHR0cDovL2ZhY2Vib29rLmNvbS9tZGVycmljdXR0Cj4gPgo+IC0tCj4gU2VudCBmcm9tIG15IHBob25lCj4KCi0tMDAxYTExNGFiODVlYjI0YTI2MDU1OGU0MTc1OS0tCgpGcm9tIGRldi1yZXR1cm4tMTIzOTg5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBTZXAgMTIgMDM6MDE6NDcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTg5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDJGMzBDMTlFN0IKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAxMiBTZXAgMjAxNyAwMzowMTo0NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQxNTIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTIgU2VwIDIwMTcgMDM6MDE6NDYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQwNDkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTIgU2VwIDIwMTcgMDM6MDE6NDYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0MDM2IGludm9rZWQgYnkgdWlkIDk5KTsgMTIgU2VwIDIwMTcgMDM6MDE6NDYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDEyIFNlcCAyMDE3IDAzOjAxOjQ2ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMzAyMUYxQTFDMzMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDEyIFNlcCAyMDE3IDAzOjAxOjQ1ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMC4wOTkKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MC4wOTkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsIFJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB0cWJkVHN5cGd6dHggZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUdWUsIDEyIFNlcCAyMDE3IDAzOjAxOjQyICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtaW8wLWYxNjkuZ29vZ2xlLmNvbSAobWFpbC1pbzAtZjE2OS5nb29nbGUuY29tIFsyMDkuODUuMjIzLjE2OV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBFRTIwQTYwRjA1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxMiBTZXAgMjAxNyAwMzowMTo0MSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1pbzAtZjE2OS5nb29nbGUuY29tIHdpdGggU01UUCBpZCBkMTZzbzM4NjAyNTYzaW9qLjMKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAyMDowMTo0MSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Z21haWwuY29tOyBzPTIwMTYxMDI1OwogICAgICAgIGg9bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD01bTc3MDkvTHVqVjZXVERaTE8wR1d4Y00yNGVzRFIxUDdScGJsWmlsVUFnPTsKICAgICAgICBiPUdUSmkwdXU1akNHRHN3WUxJYlVxSHUvOEtRL1l4eEZxM0d0WnNndW9EM1NNbGtkR1Q1eSs1YVBEQmFURmxId213YQogICAgICAgICBJczVudzJ4VmtjOFk5cVZIMzZmNnlhVXZ1S0tYZktRWG96TitTbmViWHYyWUxmSVZOOEpRemQ1MjdJUVhiNVYrWVhWUwogICAgICAgICBzUzg3KzdDdXJReUhoYVZONk5UVXVQa3ZodnRGaW9lc09LUnhEK0pRUGk1UmdvZDN5NElpM3daTC9OVzM3VEovZGwzRQogICAgICAgICBtSW9GcGp1REVFa0lISkxaeFY2NTgvckZ0b1B0ZnFlZGxHcXJyNm1hZXVEQWtIWnByZFNBRXlCZmhZby95aDNDMkpNNgogICAgICAgICAzK1NVSGFxR08rcWlEaWIyOWUzSHhXbUd3U2xtYzZtTk1xMUlDQzZXK0lHVWtYVThDalRxYnQ0OGxzQ2RnbG5PUjQzaAogICAgICAgICBPSXhRPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGUKICAgICAgICAgOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD01bTc3MDkvTHVqVjZXVERaTE8wR1d4Y00yNGVzRFIxUDdScGJsWmlsVUFnPTsKICAgICAgICBiPVgvYzlIbTRBTDBLYWh6eEhOTEdTQWxCMUxtaDBIRFc3Y25FNE9TTEEvaGJwVS9VM1dsV3RxZ2JEMHJkQ2dib2tvRgogICAgICAgICBlNWdrNlE5cStlT3FoS3NqS1pPY1A4dWU5R1dZR3BFMTlWQWF6aC9VejZpNFV5engxQlo3bVpadXp6ZjNUR3IvbVU1NgogICAgICAgICBNdzllanI5UG9YdmVLU0tLNmxTdUdPSmxpYXVSNGZXOEc2Q0VuT2FsRW5WRFRHc0V5RjMxR0tOZzdtd3F2a2N2K2wzbgogICAgICAgICBLaEdJdVhjcmpTNHVEczVsQngzSzlFM24xeExkSDg0anZianZlaUpwUzBXR2hEOVdtRnZOOGcyMm9CSFVLUHE0NHFLSgogICAgICAgICBUU2N4MlcrTkNBV2k3d0NKbjV1UEQ4dDlSSFdnbS9pRDUzZE5tZlQwT29HblcvZ0diRGE3dG1xeWVjdG4vOS9TQ3J1OQogICAgICAgICBzN1FnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVqdnRURGVOVllBYkRZNHRaVXpyRml6ZDFtVzlyanhzS1NVNFdDZnFTK2FOTjg3Z1R1bQoJNUM2b2VaM1p2c0l4K0tRRU8rVWZTb3dodkRDc053PT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFES0NOYjVvdmZzN2dRN2tvRTR4bjFCRWtZTFNiZjBJTHpKOVZwVDkraUtOYVZQZlU4YXhMaUN3SkJMS2psUUpFSzZ1R0U1SlovV1RHNWV0c2tJNzhTZXhFRjQ9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjEwNy4xNDUuMTAgd2l0aCBTTVRQIGlkIHQxMG1yMTE0NjI5Nzlpb2QuMTkwLjE1MDUxODUzMDA3MTE7CiBNb24sIDExIFNlcCAyMDE3IDIwOjAxOjQwIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4zNi42NS4xNzAgd2l0aCBIVFRQOyBNb24sIDExIFNlcCAyMDE3IDIwOjAxOjQwIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0FDY2VmZ2ZqS1Q3PVNEZ09HM1pVamVOZi15cFVLdW9fbmk2QUcwS2hvRVY3UnktUXJBQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0FLdVZ6QlRqTk9iUUxtdG84Zjk3Zk8xeCtUMWkxX29UejdNX08wM1ZrV2FDazdGXytRQG1haWwuZ21haWwuY29tPgogPENBQ2NlZmdmaktUNz1TRGdPRzNaVWplTmYteXBVS3VvX25pNkFHMEtob0VWN1J5LVFyQUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogRGFuIFRyYW4gPGRhbnRyYW5AZ21haWwuY29tPgpEYXRlOiBNb24sIDExIFNlcCAyMDE3IDIwOjAxOjQwIC0wNzAwCk1lc3NhZ2UtSUQ6IDxDQVBDampuR0RpcWUrRWJmVlJLQzl5V1FiK2pWRG5ZSzA4NF9lNzRtTkJZdmJVdVZRbXdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gU3VyZWZpcmUgUGx1Z2luIHZlcnNpb24gMi4yMC4xClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzA1NWVhNDJiOGY0MTA1NThmNTQzNDAiCgotLTk0ZWIyYzA1NWVhNDJiOGY0MTA1NThmNTQzNDAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCklzIHRoZXJlIGEgc25hcHNob3QgaSBjYW4gdGVzdCB3aXRoIG15IHByb2R1Y3Rpb24/IG9ubHkgc2VlIDIuMjEtU05BUFNIT1QKClRoYW5rcwoKLURhbgoKT24gTW9uLCBTZXAgMTEsIDIwMTcgYXQgNTowNSBBTSwgRW5yaWNvIE9saXZlbGxpIDxlb2xpdmVsbGlAZ21haWwuY29tPgp3cm90ZToKCj4gKzEgKG5vbiBiaW5kaW5nKQo+Cj4gcnVuIHVuaXQgdGVzdHMgb24gc3VyZWZpcmUgcHJvamVjdCBpdHNlbGYKPgo+IG9uICBKREsgOSsxODEgcnVuIHVuaXQgdGVzdHMgb2Ygb3RoZXIgSmF2YTggcHJvamVjdHMgd2hpY2ggcmVxdWlyZWQKPiBqYXZhLnNlLmVlIG1vZHVsZSB0byBiZSBwcmVzZW50Cj4KPiBUaGFuayB5b3UgIQo+Cj4gRW5yaWNvCj4KPgo+IDIwMTctMDktMTEgNTozMyBHTVQrMDI6MDAgVGlib3IgRGlnYW5hIDx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+Ogo+Cj4gPiBIaSwKPiA+Cj4gPiBXZSBzb2x2ZWQgMjQgaXNzdWVzOgo+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhPwo+ID4gcHJvamVjdElkPTEyMzE3OTI3JnZlcnNpb249MTIzNDAyOTcKPiA+Cj4gPiBUaGVyZSBhcmUgMTAxIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaSNpc3N1ZXMvP2pxbD1wcm9qZWN0KyUKPiA+IDNEK1NVUkVGSVJFK0FORCtzdGF0dXMrJTNEK09wZW4rT1JERVIrQlkrcHJpb3JpdHkrREVTQwo+ID4KPiA+IFN0YWdpbmcgcmVwbzoKPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjYvCj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiA+IDEzNjYvb3JnL2FwYWNoZS9tYXZlbi9zdXJlZmlyZS9zdXJlZmlyZS8yLjIwLjEvc3VyZWZpcmUtMi4yMC4xLXNvdXJjZS0KPiA+IHJlbGVhc2UuemlwCj4gPgo+ID4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gPiBtYXZlbi1zdXJlZmlyZS1wbHVnaW4tMi4yMC4xLXNpdGUtc291cmNlLnppcCBzaGExOgo+ID4gNDE4N2E3OTMyMjY4YzdhZDQ2Nzk3MzI1NGQ4NzU4NDA4NWUzMDVjMQo+ID4KPiA+IFN0YWdpbmcgc2l0ZToKPiA+IGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3N1cmVmaXJlLWFyY2hpdmVzL3N1cmVmaXJlLUxBVEVTVC8KPiA+Cj4gPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiA+IGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPiA+Cj4gPiBWb3RlIG9wZW4gZm9yIDcyIGhvdXJzLgo+ID4KPiA+IFsgXSArMQo+ID4gWyBdICswCj4gPiBbIF0gLTEKPiA+Cj4gPiAtLQo+ID4gQ2hlZXJzCj4gPiBUaWJvcgo+ID4KPgoKLS05NGViMmMwNTVlYTQyYjhmNDEwNTU4ZjU0MzQwLS0KCkZyb20gZGV2LXJldHVybi0xMjQwMDYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIFNlcCAxMyAwODo0Nzo0NiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwMDYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQzQ1MDYxQUQxQQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3IDA4OjQ3OjQ2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTI2MzEgaW52b2tlZCBieSB1aWQgNTAwKTsgMTMgU2VwIDIwMTcgMDg6NDc6NDYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkyNTQxIGludm9rZWQgYnkgdWlkIDUwMCk7IDEzIFNlcCAyMDE3IDA4OjQ3OjQ2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTI1MjkgaW52b2tlZCBieSB1aWQgOTkpOyAxMyBTZXAgMjAxNyAwODo0Nzo0NSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMTMgU2VwIDIwMTcgMDg6NDc6NDUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA2RTdCQzE4NTc5OQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTMgU2VwIDIwMTcgMDg6NDc6NDUgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAzLjg4ClgtU3BhbS1MZXZlbDogKioqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0zLjg4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJRlJFRU1BSUxfUkVQTFk9MSwgSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDEsCglVUklCTF9CTE9DS0VEPTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPWdtYWlsLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIE1pNkpSalBMMnpMUSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVdlZCwgMTMgU2VwIDIwMTcgMDg6NDc6NDMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC1pdDAtZjQyLmdvb2dsZS5jb20gKG1haWwtaXQwLWY0Mi5nb29nbGUuY29tIFsyMDkuODUuMjE0LjQyXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEIxRTQxNUZCQjAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3IDA4OjQ3OjQyICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLWl0MC1mNDIuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgZzE0MnNvMzIxOTA5NGl0YS4wCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTMgU2VwIDIwMTcgMDE6NDc6NDIgLTA3MDAgKFBEVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWdtYWlsLmNvbTsgcz0yMDE2MTAyNTsKICAgICAgICBoPW1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9dkUvcTcvSk9nakVwRDE5VWVPNDA0ZlZhbVBYUFFPSFlTUEk2Y0hoSTdSOD07CiAgICAgICAgYj1aOE85SWhZZmc2dW9meCtZSU1RRXF5R1hzUXhpaTU5UzM1SGJEckZXVjZtazdma2VEZGVDMncxSWRBbVlscUQxQkQKICAgICAgICAgUkRkTlFLNWVXdTV5ZlFYWGtQQ2JJNFFLT0VRQ0RaNlNrQUJXcWU4dzRodjIvQUdaVGdwdzYyZkY3dUMzSEwvekgzL24KICAgICAgICAgVVJqQnNEdUV3YmdLanRkMG5TRVdzQWFCSGdFQzY3S2FiVDF1d21LZk1UWnA2ZytCUWd0QzdoalBveGovbVpqaEoxQTUKICAgICAgICAgaDFqbDBBSFBpa2FFYmxMczVhekF6MGxoYWxNSjJ6UUtGOWMzOTdNS3ZWMzlrVzA2clZ4RnFQZ21aS1ZrMTlEb1BXQUcKICAgICAgICAgSllUSzQyQ084QzZIcjhZbmpMem9aQ09GSGlGanREN1RxMmpHb3ZsVHVYQ2wzZ3FXdDhwVEorWTJnMVJ1NG5IdFFueHUKICAgICAgICAgR2hlQT09ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOmluLXJlcGx5LXRvOnJlZmVyZW5jZXM6ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9dkUvcTcvSk9nakVwRDE5VWVPNDA0ZlZhbVBYUFFPSFlTUEk2Y0hoSTdSOD07CiAgICAgICAgYj1heURrWFRGejl2WnpKMXBnV0hZeHJVbm5Dcmd5YmM0MlU1MFJBOE1Zc0lqQjBCOW1qc1RVbzBsM3ZhTmdWRitTbGMKICAgICAgICAgdUI0UzJxY0ZPM0xqNnZPOXlZN0t6Q2dNd0QvamJGTlNnZ0NxQUhOczFkSyt5bUlVMnl2ODNXaVFsUEgxM3JPUnMwNHUKICAgICAgICAgZmNTcjl2V20ybExQSndEWGg1QlphNEVWQkZvZktoSndudWR3VktMWG11amlxZ0tYemppZ1BuVkRYUFk3SlUzSm1rNisKICAgICAgICAgMzY4bDgvaUcwUDNRUHlPV1RkWExtcGpINUFyMlk3cjI1L2NJTFVITjIySENsSkF2THdqaE9tS3J2SSs1bEFyUXNFbEUKICAgICAgICAga2dBZC91NmZnUEx6bEJyVm9mTHhkRzBTNmtaemcyeW9lQmNYVTdMcUVXZmhPclpML3huTEFlRXRhaTF4QURPWFdyMWMKICAgICAgICAgMFRzUT09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVajN2TmhkaHpwZzlWVWdnYVoyVGxnYUlOYjl4QlVMYjNjU2Z0QXZqUmRwUFhDY3puMFUKCXNuZFJjclBuYTJCZ0RkcWJQTkRseEU5dGs5R2JMSnFyN2w1TWo1TT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFPd2k3UUJWRjUvSWp4UlNyZ25NbHdVMEpMdzluUlFJOWdjZDVVazFQSWFzbVhqOTRMbC96VlMwaytqRmNzdDRsOXdyNHo0c0hCdEhySHpIa1FOeXJUempiUGc9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjM2LjczLjIxNiB3aXRoIFNNVFAgaWQgZTg1bXIzNTgxMjk0aXRkLjExNi4xNTA1MjkyNDYxMjQyOwogV2VkLCAxMyBTZXAgMjAxNyAwMTo0Nzo0MSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMzYuNjUuMTcwIHdpdGggSFRUUDsgV2VkLCAxMyBTZXAgMjAxNyAwMTo0Nzo0MCAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPENBRHp5N2pBZ2hmTjR5YWZnQlNVMjV5dnF1UGN3cWtaZktTN2Y2ZFBGelpSeTJ1dVl5d0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBS3VWekJUak5PYlFMbXRvOGY5N2ZPMXgrVDFpMV9vVHo3TV9PMDNWa1dhQ2s3Rl8rUUBtYWlsLmdtYWlsLmNvbT4KIDxDQUNjZWZnZmpLVDc9U0RnT0czWlVqZU5mLXlwVUt1b19uaTZBRzBLaG9FVjdSeS1RckFAbWFpbC5nbWFpbC5jb20+CiA8Q0FQQ2pqbkdEaXFlK0ViZlZSS0M5eVdRYitqVkRuWUswODRfZTc0bU5CWXZiVXVWUW13QG1haWwuZ21haWwuY29tPgogPENBS3VWekJTdEdDb2t4dStfdE5RLXE1K255dXdudWFWNDMyWHo5aE9uZjFWTU5LNHEyUUBtYWlsLmdtYWlsLmNvbT4gPENBRHp5N2pBZ2hmTjR5YWZnQlNVMjV5dnF1UGN3cWtaZktTN2Y2ZFBGelpSeTJ1dVl5d0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogRGFuIFRyYW4gPGRhbnRyYW5AZ21haWwuY29tPgpEYXRlOiBXZWQsIDEzIFNlcCAyMDE3IDAxOjQ3OjQwIC0wNzAwCk1lc3NhZ2UtSUQ6IDxDQVBDampuR3ExejlQaG9yREYzYmJuVzIzPVQ2eExrTTE1SmdBMi10dnI5UkFkRHNLX0FAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gU3VyZWZpcmUgUGx1Z2luIHZlcnNpb24gMi4yMC4xClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMWMxNTYxMDZmN2U2MTA1NTkwZTM2NTkiCgotLTAwMWExMWMxNTYxMDZmN2U2MTA1NTkwZTM2NTkKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCisxIG5vbiBiaW5kaW5nLCB3b3JrcyB3aXRoIG15IHByb2R1Y3Rpb24gYnVpbGQgYW5kIEkgY2FuIG9ubHkgIHRlc3Qgd2l0aApzbmFwc2hvdAoKT24gVHVlLCBTZXAgMTIsIDIwMTcgYXQgMTE6NTMgUE0sIFRob21hcyBDb2xsaWdub24gPHRvbWlwaG9uZTNnQGdtYWlsLmNvbT4Kd3JvdGU6Cgo+IEhlbGxvCj4KPiArMSBmb3IgbWUKPgo+IDIwMTctMDktMTIgMTA6MjkgR01UKzAyOjAwIFRpYm9yIERpZ2FuYSA8dGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tPjoKPgo+ID4gSGkgRGFuLAo+ID4gWWVzIHlvdSBjYW4gdXNlIHN1Y2ggdmVyc2lvbi4gVGhlIFVSTCBmb3Igc25hcHNob3RzIGlzCj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9zbmFwc2hvdHMKPiA+Cj4gPiBPbiBUdWUsIFNlcCAxMiwgMjAxNyBhdCA1OjAxIEFNLCBEYW4gVHJhbiA8ZGFudHJhbkBnbWFpbC5jb20+IHdyb3RlOgo+ID4KPiA+ID4gSXMgdGhlcmUgYSBzbmFwc2hvdCBpIGNhbiB0ZXN0IHdpdGggbXkgcHJvZHVjdGlvbj8gb25seSBzZWUKPiAyLjIxLVNOQVBTSE9UCj4gPiA+Cj4gPiA+IFRoYW5rcwo+ID4gPgo+ID4gPiAtRGFuCj4gPiA+Cj4gPiA+IE9uIE1vbiwgU2VwIDExLCAyMDE3IGF0IDU6MDUgQU0sIEVucmljbyBPbGl2ZWxsaSA8ZW9saXZlbGxpQGdtYWlsLmNvbT4KPiA+ID4gd3JvdGU6Cj4gPiA+Cj4gPiA+ID4gKzEgKG5vbiBiaW5kaW5nKQo+ID4gPiA+Cj4gPiA+ID4gcnVuIHVuaXQgdGVzdHMgb24gc3VyZWZpcmUgcHJvamVjdCBpdHNlbGYKPiA+ID4gPgo+ID4gPiA+IG9uICBKREsgOSsxODEgcnVuIHVuaXQgdGVzdHMgb2Ygb3RoZXIgSmF2YTggcHJvamVjdHMgd2hpY2ggcmVxdWlyZWQKPiA+ID4gPiBqYXZhLnNlLmVlIG1vZHVsZSB0byBiZSBwcmVzZW50Cj4gPiA+ID4KPiA+ID4gPiBUaGFuayB5b3UgIQo+ID4gPiA+Cj4gPiA+ID4gRW5yaWNvCj4gPiA+ID4KPiA+ID4gPgo+ID4gPiA+IDIwMTctMDktMTEgNTozMyBHTVQrMDI6MDAgVGlib3IgRGlnYW5hIDx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20KPiA+Ogo+ID4gPiA+Cj4gPiA+ID4gPiBIaSwKPiA+ID4gPiA+Cj4gPiA+ID4gPiBXZSBzb2x2ZWQgMjQgaXNzdWVzOgo+ID4gPiA+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhPwo+ID4gPiA+ID4gcHJvamVjdElkPTEyMzE3OTI3JnZlcnNpb249MTIzNDAyOTcKPiA+ID4gPiA+Cj4gPiA+ID4gPiBUaGVyZSBhcmUgMTAxIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gPiA+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaSNpc3N1ZXMvP2pxbD1wcm9qZWN0KyUKPiA+ID4gPiA+IDNEK1NVUkVGSVJFK0FORCtzdGF0dXMrJTNEK09wZW4rT1JERVIrQlkrcHJpb3JpdHkrREVTQwo+ID4gPiA+ID4KPiA+ID4gPiA+IFN0YWdpbmcgcmVwbzoKPiA+ID4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjYvCj4gPiA+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiA+ID4gPiA+IDEzNjYvb3JnL2FwYWNoZS9tYXZlbi9zdXJlZmlyZS9zdXJlZmlyZS8yLjIwLjEvCj4gPiBzdXJlZmlyZS0yLjIwLjEtc291cmNlLQo+ID4gPiA+ID4gcmVsZWFzZS56aXAKPiA+ID4gPiA+Cj4gPiA+ID4gPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiA+ID4gPiA+IG1hdmVuLXN1cmVmaXJlLXBsdWdpbi0yLjIwLjEtc2l0ZS1zb3VyY2UuemlwIHNoYTE6Cj4gPiA+ID4gPiA0MTg3YTc5MzIyNjhjN2FkNDY3OTczMjU0ZDg3NTg0MDg1ZTMwNWMxCj4gPiA+ID4gPgo+ID4gPiA+ID4gU3RhZ2luZyBzaXRlOgo+ID4gPiA+ID4gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvc3VyZWZpcmUtYXJjaGl2ZXMvc3VyZWZpcmUtTEFURVNULwo+ID4gPiA+ID4KPiA+ID4gPiA+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+ID4gPiA+ID4gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLQo+ID4gdGVzdGluZy1yZWxlYXNlcy5odG1sCj4gPiA+ID4gPgo+ID4gPiA+ID4gVm90ZSBvcGVuIGZvciA3MiBob3Vycy4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBbIF0gKzEKPiA+ID4gPiA+IFsgXSArMAo+ID4gPiA+ID4gWyBdIC0xCj4gPiA+ID4gPgo+ID4gPiA+ID4gLS0KPiA+ID4gPiA+IENoZWVycwo+ID4gPiA+ID4gVGlib3IKPiA+ID4gPiA+Cj4gPiA+ID4KPiA+ID4KPiA+Cj4gPgo+ID4KPiA+IC0tCj4gPiBDaGVlcnMKPiA+IFRpYm9yCj4gPgo+CgotLTAwMWExMWMxNTYxMDZmN2U2MTA1NTkwZTM2NTktLQoKRnJvbSBkZXYtcmV0dXJuLTEyMzk0NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gU2VwIDEwIDIxOjUwOjIxIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzk0NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBBRjdEQjFBMDkwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMjE6NTA6MjEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5MDk0MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBTZXAgMjAxNyAyMTo1MDoyMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTA4NTYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgU2VwIDIwMTcgMjE6NTA6MjAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MDg0MyBpbnZva2VkIGJ5IHVpZCA5OSk7IDEwIFNlcCAyMDE3IDIxOjUwOjIwIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxMCBTZXAgMjAxNyAyMTo1MDoyMCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEFCMENEMUEwM0YzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAyMTo1MDoxOSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuODc5ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuODc5IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsCglSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBoTVNfNjRjRFNZMGggZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sIDEwIFNlcCAyMDE3IDIxOjUwOjE4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtaXQwLWY0OS5nb29nbGUuY29tIChtYWlsLWl0MC1mNDkuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNC40OV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAzMzFCQTVGNjEzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAyMTo1MDoxNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1pdDAtZjQ5Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHYxOXNvMTAyOTA0NjNpdGUuMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDE0OjUwOjE3IC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWhVb2VWT3l2SVc4bHgrS3BodVg4N2ZEVDR3QU5WSFVIckpoaDJEOTRLajQ9OwogICAgICAgIGI9bThKZElSRVRtalozemZ4RXVLSVlpY3ZYRVJ3K1Y5dFRBTlg3eG1adkpxa0NGVjkwZDBLR3RRblNvNkdQSmMyZ09jCiAgICAgICAgIDJtUERMa3U1c2s1UUpBbHhBK0RsUjVxRE12TjNXdDlsMW9CanY3amw5cUN1b2tpRFNjNG1PTWtVRjF0MDFtVjVKWS9BCiAgICAgICAgIGhPUjBzZzgwa0tpYi9UWHVwYU80QzdnUDQrbjhzRTlIZURBL0ZUZzBHSW9UT2NIelBnVFQvbVFzd1Z4ZFhPc1NwTWFHCiAgICAgICAgIC9zZUVucVN3dktPb2hyS2Z4TThjd1ZXRWVXQVp4ajVpbDIrays0WmdUWldia05jd25zZUhTL281YWJCTXMwaVpmaGk0CiAgICAgICAgIEZxL2liY2dXQmZXRFpmSE5LbFpRQ05kbTlKV3dPcnB6WmQ3OUhPK3hFWFdMcGE0Q0p6azlQZVdhMVB1U0F3NGF1TEUwCiAgICAgICAgIFprZ0E9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWhVb2VWT3l2SVc4bHgrS3BodVg4N2ZEVDR3QU5WSFVIckpoaDJEOTRLajQ9OwogICAgICAgIGI9WUJ4T1lkdXY0dE9vayt2dTBYY2lCRTkyQzJLVFM1M2FsRFgyL0RiK0hINTRFQXJSRkxoekROVDdZcWg3S2JXeFlUCiAgICAgICAgIFQ1YlFkeG9yZXNHejNUN3VCUVU3TWFCVUVUSnBhYkJyR2M2VUxNLy9ZbHo5QkUyTy9jbVM2WFQ4cXBBbTNyNUVpYmxDCiAgICAgICAgIFd6ajVkM3ZkU1VCeDNac1pqbVY3QTRPaXh1VXlSMDFrdXRLd3IzZWh4RGQ4aUhEK1RZU1RkSFFZZWpvK2FqUHFtUXRQCiAgICAgICAgIDNFU1dFNTlwamtmQkRMb2NtTk41Wm1QZVVIWlZzVitxU1BGdTRTUUZ3OE5ROEJDUmpVZmYzcDFiSkVpQWhud1dSeUVNCiAgICAgICAgIG9BZDZNaG5rRmhDQlFuRnNFa3c1TzRGaFgwVEpkL0RjNzRhbXduSXdWemJwL25OYUYyZ1dLM2FNR254UnUwbVl0OE9uCiAgICAgICAgIFIvTHc9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWhCeXhWdWxMREZtQWVCdU9xVUZzMjc4NzNwUmZaSC9zMUFWcVZYbFRaS0ZTV1BnZHM0Cgk5TU9XTWdNeWtDVUhzTExHcG8xTnVyYW9NUkg4bXc1NQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQU93aTdRRHRtRlpFL2hnS1RnYTlCeExJL2xxdzNud2NGbERnTTNyV1ZxcUcxN3I0Zmx1WHZrblp5bkdVTkcvbVlXcjl1M3hvamhzZWFGV2IwWDcyTjQrOVdaST0KWC1SZWNlaXZlZDogYnkgMTAuMzYuMTI0Ljc3IHdpdGggU01UUCBpZCBhNzRtcjEwMTMwMjkyaXRkLjUzLjE1MDUwODAyMDk3Nzk7CiBTdW4sIDEwIFNlcCAyMDE3IDE0OjUwOjA5IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4zNi42NS4xNzAgd2l0aCBIVFRQOyBTdW4sIDEwIFNlcCAyMDE3IDE0OjUwOjA5IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0FGTkNVLS0ydnJkNUJlVHZreEtDeVgyWlFlUHFpeDdYPXdtVnNXZE01ZDQ5WGVOZ093QG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgogPENBRk5DVS0tMnZyZDVCZVR2a3hLQ3lYMlpRZVBxaXg3WD13bVZzV2RNNWQ0OVhlTmdPd0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogRGFuIFRyYW4gPGRhbnRyYW5AZ21haWwuY29tPgpEYXRlOiBTdW4sIDEwIFNlcCAyMDE3IDE0OjUwOjA5IC0wNzAwCk1lc3NhZ2UtSUQ6IDxDQVBDampuSGtQZUZCb0JtTEc3cGM5Nl9vOWpqUVpSK05nZEM4cTVuVko9QXIyQlAwbVFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNGFiODVlNDMzNGY4MDU1OGRjY2IzOCIKCi0tMDAxYTExNGFiODVlNDMzNGY4MDU1OGRjY2IzOApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpMb29rcyBsaWtlIDMuNS4xIG5vdCBhYmxlIHRvIHJlc29sdmUgc25hcHNob3QgZGVwZW5kZW5jaWVzCgppIGp1c3QgY2xvbmUgb3V0IGFwYWNoZS1tYXZlbiBhbmQsIGNoYW5nZSBkaXJlY3RvcnkgdG8gYXBhY2hlLW1hdmVuIGFuZApidWlsZCBmcm9tIHRoZXJlCgpoZXJlIGlzIGVycm9yCgpbRVJST1JdIEZhaWxlZCB0byBleGVjdXRlIGdvYWwgb24gcHJvamVjdCBhcGFjaGUtbWF2ZW46IENvdWxkIG5vdCByZXNvbHZlCmRlcGVuZGVuY2llcyBmb3IgcHJvamVjdCBvcmcuYXBhY2hlLm1hdmVuOmFwYWNoZS1tYXZlbjpwb206My41LjItU05BUFNIT1Q6ClRoZSBmb2xsb3dpbmcgYXJ0aWZhY3RzIGNvdWxkIG5vdCBiZSByZXNvbHZlZDoKb3JnLmFwYWNoZS5tYXZlbjptYXZlbi1lbWJlZGRlcjpqYXI6My41LjItU05BUFNIT1QsCm9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tY29yZTpqYXI6My41LjItU05BUFNIT1QsCm9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tY29tcGF0OmphcjozLjUuMi1TTkFQU0hPVCwKb3JnLmFwYWNoZS5tYXZlbjptYXZlbi1zbGY0ai1wcm92aWRlcjpqYXI6My41LjItU05BUFNIT1Q6IENvdWxkIG5vdCBmaW5kCmFydGlmYWN0IG9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tZW1iZWRkZXI6amFyOjMuNS4yLVNOQVBTSE9UIC0+IFtIZWxwIDFdCgpteSBidWlsZCBpcyBiZWhpbmQgYXJ0aWZhY3RvcnkKClNhbWUgaXNzdWUgYWxzbyBmb3VuZCBhdCBteSAgaW50ZXJuYWwgcHJvamVjdAoKCi1EYW4KCk9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDE6MDEgUE0sIEFybmF1ZCBIPUMzPUE5cml0aWVyIDxhaGVyaXRpZXJAZ21haWwuY29tPgp3cm90ZToKCj4gVGVzdGVkIG9uIHNldmVyYWwgcHJvamVjdHMKPgo+ICsxCj4KPiBPbiBTdW4sIFNlcCAxMCwgMjAxNyBhdCA1OjM5IFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPgo+ID4gSGksCj4gPgo+ID4gV2Ugc29sdmVkIDI1IGlzc3VlczoKPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiA+IHZlcnNpb249M0QxMjMzODk2NCZzdHlsZU5hbWU9M0RUZXh0JnByb2plY3RJZD0zRDEyMzE2OTIyCj4gPgo+ID4gVGhlcmUgYXJlIDM1MCBpc3N1ZXMgbGVmdCBpbiBKSVJBIGZvciBNYXZlbiBjb3JlOgo+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUKPiA+IDNEJTIwTU5HJTIwQU5EJTIwcmVzb2x1dGlvbiUyMCUzRCUyMFVucmVzb2x2ZWQlMjBPUkRFUiUKPiA+IDIwQlklMjBkdWUlMjBBU0MlMkMlMjBwcmlvcml0eSUyMERFU0MlMkMlMjBjcmVhdGVkJTIwQVNDCj4gPgo+ID4gU3RhZ2luZyByZXBvOgo+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2NC8KPiA+Cj4gPiBUaGUgZGlzdHJpYnV0YWJsZSBiaW5hcmllcyBhbmQgc291cmNlcyBjYW4gYmUgZm91bmQgaGVyZToKPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS8KPiA+Cj4gPiBTcGVjaWZpY2FsbHkgdGhlIHppcCwgdGFyYmFsbCBhbmQgc291cmNlIGFyY2hpdmVzIGNhbiBiZSBmb3VuZCBoZXJlOgo+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1iaW4uemlwCj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLWJpbi50YXIuZ3oKPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+ID4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcAo+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1zcmMudGFyLmd6Cj4gPgo+ID4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5neiBzaGExOiA5ZWI4MjFmMTUzYzc2NjcxOTRhYTExY2NkMDk5YjcKPiA+IGJkMjA1OTU2MGQKPiA+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwOiBzaGExOiAxMjFkNTRiMDQ1MzgwYThhNDg5NWViMTM3OTcwYWIKPiA2OWU2OThlYjBlCj4gPgo+ID4gR2l0IHRhZzoKPiA+IGh0dHBzOi8vZ2l0LXdpcC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPTNEbWF2ZW4uZ2l0O2E9M0Rjb21taXQ7aD0zRAo+ID4gMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMwo+ID4KPiA+IFN0YWdpbmcgc2l0ZToKPiA+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9jb21wb25lbnRzL3JlZi8zLUxBVEVTVC8KPiA+Cj4gPiBWb3RlIG9wZW4gZm9yIDcyIGhvdXJzLgo+ID4KPiA+IFsgXSArMQo+ID4gWyBdICswCj4gPiBbIF0gLTEKPiA+Cj4gPiBUaGFua3MsCj4gPgo+ID4gU3RlcGhlbi4KPiA+Cj4KPgo+Cj4gLS0KPiAtLS0tLQo+IEFybmF1ZCBIPUMzPUE5cml0aWVyCj4gaHR0cDovL2FoZXJpdGllci5uZXQKPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKPgoKLS0wMDFhMTE0YWI4NWU0MzM0ZjgwNTU4ZGNjYjM4LS0KCkZyb20gZGV2LXJldHVybi0xMjQzMDEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE9jdCAyMSAxNzo1MzoyNiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzMDEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRENENkIxMDZCNQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDIxIE9jdCAyMDE3IDE3OjUzOjI1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTY2NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBPY3QgMjAxNyAxNzo1MzoyNSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTU4OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBPY3QgMjAxNyAxNzo1MzoyNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk1NzYgaW52b2tlZCBieSB1aWQgOTkpOyAyMSBPY3QgMjAxNyAxNzo1MzoyNSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMjEgT2N0IDIwMTcgMTc6NTM6MjUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA2OEMzRjE4MDgwQQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMjEgT2N0IDIwMTcgMTc6NTM6MjQgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjM4ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuMzggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglIVE1MX01FU1NBR0U9MiwgSFRNTF9PQkZVU0NBVEVfMDVfMTA9MC4wMDEsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9Z21haWwuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgUE5CYVF6T29lUlFEIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAyMSBPY3QgMjAxNyAxNzo1MzoyMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXdtMC1mNDkuZ29vZ2xlLmNvbSAobWFpbC13bTAtZjQ5Lmdvb2dsZS5jb20gWzc0LjEyNS44Mi40OV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBGMTRGQTVGQUM5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAyMSBPY3QgMjAxNyAxNzo1MzoyMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC13bTAtZjQ5Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHExMjRzbzI5MzgxNjl3bWIuMAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDIxIE9jdCAyMDE3IDEwOjUzOjIxIC0wNzAwIChQRFQpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD1nbWFpbC5jb207IHM9MjAxNjEwMjU7CiAgICAgICAgaD1taW1lLXZlcnNpb246aW4tcmVwbHktdG86cmVmZXJlbmNlczpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUJ6WmJZK2djQis3bFRZOUFSWjFDNnN6dGcySkNFdmNFVjlGQ0hQSWtUM3M9OwogICAgICAgIGI9TFhFVG1nMFU4c3dqbW9oV0VRLzB6MlZ4UHB1K2piL2RNME4ySWtpc1kxcTNQdkdyZGp2WW5GQmVMVnRGYU5nTlBNCiAgICAgICAgIHJSV2ZpbUFHUlFFTDZjb0NuaE9WcTh0WjZRNEpQaElndmtkWEI5Sk1ON2dtWlpOL3FmWXdkbHltSjZjanF1Lzc3YjJGCiAgICAgICAgIFh0M3NBS1lzZXR2cWxTVWlaSE9BcGNVZmFydzBzZ09QRFJXdnk0MEV0cEF5czc2cGR5cDBSZG94WTA3UVA2QVFEQkhPCiAgICAgICAgIG5qQlBsU05jT1AzZ09seXhEaEtqQm9UOTNMRzdNUVhyTjZhTEorUVNjdjQ3SHg2M1ZIVlE5VFNYc2ljL2pmMFpyVjVJCiAgICAgICAgIHRtOVlQeCtHQWJTcmZIWXpldW1UTjUzLy94TGlqT1UwQ1VqZUVkcFhGb0NCak1sVEZCaDB4aDZySHc4QktNV2JvMllFCiAgICAgICAgIDVaTHc9PQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjppbi1yZXBseS10bzpyZWZlcmVuY2VzOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPUJ6WmJZK2djQis3bFRZOUFSWjFDNnN6dGcySkNFdmNFVjlGQ0hQSWtUM3M9OwogICAgICAgIGI9ZG9rY0gzMUtITDdXNHd3MkNEMUJENnFrRGFEcm9ybk01QjdGWm9NYUY1cW5xZnRralYvUzU4VjJCKzJMKzBaaUplCiAgICAgICAgIG51WndlazhaMmc4NzBQR0VXZ29ZNTRGTnNuQkt0aEtMNHlFYjNGRWN6Vk55MVVlWGdYa0xRK21CR2Q1akhvZSt4RG1NCiAgICAgICAgIExjRCs3VnpPSTUxakRqNnc5NnRmSkxEWHNwUVJpQXhoT1gyRUZGRHZibVhyUDBkNEdxZTZQSEhZZ3hjRHJFa09nY2VaCiAgICAgICAgIGpqS2FUOWd3TW94UE1aS2Z6SWZtZVJuQzU0OXlYQTJZQXFKVTJDTkZkdG1nUjNHbHlPZDQ4SisxbjQzUlJod2QySkgrCiAgICAgICAgIGZzSG5VaVFsQVRlZEwwTGhyNkJUUFo1K1RGN0tXb1BremEyMWt6b1hHN0lkVlF1NVJUMGNONndOeWxQK2duc3Z0cTU2CiAgICAgICAgIG1LK3c9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVgxZFgxWm03VDZ0NWxwaGQxdytkRXREeDZmRUY2YTB6d2o2Qm5keFoxTnZTSlN4Y01oCglLeTVNZXZlRkdWSGlWeDdCeTRyRlNXdXkzVFBKYU8wMEhkODgvTUE9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtRd2JWNXBEZWZwR1lWY0dLdUNtMDlYUWJJQnZSa2tpdCtQUVVxSHJRUEIxdlB0TWtGOWZRNWx6d29FSU1hNkJRSWIzVEVrUlFmMWw3RlhXVW5neHVvPQpYLVJlY2VpdmVkOiBieSAxMC44MC4xNDUuMjQ1IHdpdGggU01UUCBpZCBoNTBtcjYzNTI2MTZlZGEuMTM5LjE1MDg2MDg0MDEyODY7CiBTYXQsIDIxIE9jdCAyMDE3IDEwOjUzOjIxIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC44MC4xODcuMTEwIHdpdGggSFRUUDsgU2F0LCAyMSBPY3QgMjAxNyAxMDo1MzoyMCAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPENBUENqam5FZXNHeERUS1lpTEdWR1QzaThBSGFGVkVFR2Q4aWhnampVMGZGc3QwM3N0UUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk13dGpuWkUtNTNBTjUzeEY9TWY2SFktRmJHWXdaQVV3M0VVS0hBNGVLQjUyUUBtYWlsLmdtYWlsLmNvbT4KIDxDQUxZR20xdz1VUHd2MHJFLUhqWkp2bittNUg5MUUrNGE4dS01U1kwY3Y4c3VVSzBoZ1FAbWFpbC5nbWFpbC5jb20+IDxDQVBDampuRWVzR3hEVEtZaUxHVkdUM2k4QUhhRlZFRUdkOGloZ2pqVTBmRnN0MDNzdFFAbWFpbC5nbWFpbC5jb20+CkZyb206IERhbiBUcmFuIDxkYW50cmFuQGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAyMSBPY3QgMjAxNyAxMDo1MzoyMCAtMDcwMApNZXNzYWdlLUlEOiA8Q0FQQ2pqbkhvbkRhYmlHV3dKWXFucTJqVTZZZTVOX0M3ZW44UXNSUzhubjRETjZoUGR3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4yClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzBkZTdkOGRkMmM4YzA1NWMxMjQzYTgiCgotLTk0ZWIyYzBkZTdkOGRkMmM4YzA1NWMxMjQzYTgKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKb3VjaCBmYWxzZSBhbGFybSwgIEkgZm9yZ290IHRvIGNvbmZpZ3VyZSB0aGUgYXJ0aWZhY3RvcnkgbWlycm9yCgpTb3JyeSBhYm91dCB0aGUgbm9pc2UKCi1ECgpPbiBTYXQsIE9jdCAyMSwgMjAxNyBhdCAxMDoxMCBBTSwgRGFuIFRyYW4gPGRhbnRyYW5AZ21haWwuY29tPiB3cm90ZToKCj4gSSBhbSBub3QgYWJsZSBnZXR0aW5nIG12biAzLjUuMiB0byBkb3dubG9hZCBhbiBpbnRlcm5hbCBzbmFwc2hvdAo+IGRlcGVuZGVuY3kgZnJvbSBjb21wJ3MgY2VudHJhbCBhcnRpZmFjdG9yeQo+Cj4gaGVyZSBpcyB0aGUgZXJyb3IKPgo+IENhdXNlZCBieTogb3JnLmVjbGlwc2UuYWV0aGVyLnJlc29sdXRpb24uRGVwZW5kZW5jeVJlc29sdXRpb25FeGNlcHRpb246Cj4gQ291bGQgbm90IGZpbmQgYXJ0aWZhY3QgY29tLm9yYWNsZS5saW51eC54ODZfNjQ6anJlOnJwbToxLjguMF8xNTEtU05BUFNITz0KVAo+ICAgICBhdCBvcmcuZWNsaXBzZS5hZXRoZXIuaW50ZXJuYWwuaW1wbC5EZWZhdWx0UmVwb3NpdG9yeVN5c3RlbS5yZXNvbHZlRGU9CnBlbmRlbmNpZXMKPiAoRGVmYXVsdFJlcG9zaXRvcnlTeXN0ZW0uamF2YTozNTUpCj4gICAgIGF0IG9yZy5hcGFjaGUubWF2ZW4ucHJvamVjdC5EZWZhdWx0UHJvamVjdERlcGVuZGVuY2llc1Jlc29sdmVyLnJlc29sdj0KZQo+IChEZWZhdWx0UHJvamVjdERlcGVuZGVuY2llc1Jlc29sdmVyLmphdmE6MjAyKQo+Cj4gTm8gaXNzdWUgd2l0aCAzLjUuMCBhbmQgMy41LjEKPgo+IFdvbmRlciBpZiBhbnlvbmUgZWxzZSBlbmNvdW50ZXJzIHRoZSBzYW1lIGlzc3VlPz8KPgo+IFRoYW5rcwo+Cj4gLURhbgo+Cj4gT24gRnJpLCBPY3QgMjAsIDIwMTcgYXQgNzozNSBQTSwgTWFyayBEZXJyaWN1dHQgPG1hcmtAdGFsaW9zLmNvbT4gd3JvdGU6Cj4KPj4gKzEgbG9va2luZyBnb29kIGZyb20gaGVyZSBvbiBteSBwcm9qZWN0cy9yZWxlYXNlcy4KPj4KPj4gLS0KPj4gIkdyZWF0IGFydGlzdHMgYXJlIGV4dHJlbWVseSBzZWxmaXNoIGFuZCBhcnJvZ2FudCB0aGluZ3MiID1FMj04MD05NCBTdGV2PQplbiBXaWxzb24sCj4+IFBvcmN1cGluZSBUcmVlCj4+Cj4+IE9uIFdlZCwgT2N0IDE4LCAyMDE3IGF0IDExOjUwIFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4+Cj4+ID4gSGksCj4+ID4KPj4gPiBXZSBzb2x2ZWQgMjYgaXNzdWVzOgo+PiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPj4gPiB2ZXJzaW9uPTNEMTIzMzg5NjQmc3R5bGVOYW1lPTNEVGV4dCZwcm9qZWN0SWQ9M0QxMjMxNjkyMgo+PiA+Cj4+ID4gVGhlcmUgYXJlIDM1NyBpc3N1ZXMgbGVmdCBpbiBKSVJBIGZvciBNYXZlbiBjb3JlOgo+PiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlCj4+ID4gM0QlMjBNTkclMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJQo+PiA+IDIwQlklMjBkdWUlMjBBU0MlMkMlMjBwcmlvcml0eSUyMERFU0MlMkMlMjBjcmVhdGVkJTIwQVNDCj4+ID4KPj4gPiBTdGFnaW5nIHJlcG86Cj4+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3My8KPj4gPgo+PiA+IFRoZSBkaXN0cmlidXRhYmxlIGJpbmFyaWVzIGFuZCBzb3VyY2VzIGNhbiBiZSBmb3VuZCBoZXJlOgo+PiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+PiA+IDEzNzMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvCj4+ID4KPj4gPiBTcGVjaWZpY2FsbHkgdGhlIHppcCwgdGFyYmFsbCBhbmQgc291cmNlIGFyY2hpdmVzIGNhbiBiZSBmb3VuZCBoZXJlOgo+PiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+PiA+IDEzNzMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvYXBhY2hlLW1hdmVuLTMuNS4yLWJpbi56aXAKPj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPj4gPiAxMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yL2FwYWNoZS1tYXZlbi0zLjUuMi1iaW4udGFyLmd6Cj4+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4+ID4gMTM3My9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItc3JjLnppcAo+PiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+PiA+IDEzNzMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvYXBhY2hlLW1hdmVuLTMuNS4yLXNyYy50YXIuZ3oKPj4gPgo+PiA+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+PiA+IGFwYWNoZS1tYXZlbi0zLjUuMi1zcmMudGFyLmd6IHNoYTE6IDk3ZDZkN2IxODQ4NWI3OTA2ZGQ3ZjMxM2NkZDQxMQo+PiA+IDkxZDE2ZGRlNDYKPj4gPiBhcGFjaGUtbWF2ZW4tMy41LjItc3JjLnppcDogc2hhMTogZGM4Y2FhNWNkYWNiNDAwOTQzZDI0OTFhMDIwZjc0Cj4+IDJhNTE4ZThmMDgKPj4gPgo+PiA+IEdpdCB0YWc6Cj4+ID4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9M0RtYXZlbi5naXQ7YT0zRGNvbW1pdDtoPTNECj4+ID4gMTM4ZWRkNjFmZDEwMGVjNjU4YmZhMmQzMDdjNDNiNzY5NDBhNWQ3ZAo+PiA+Cj4+ID4gU3RhZ2luZyBzaXRlOgo+PiA+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9jb21wb25lbnRzL3JlZi8zLUxBVEVTVC8KPj4gPgo+PiA+IFZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCj4+ID4KPj4gPiBbIF0gKzEKPj4gPiBbIF0gKzAKPj4gPiBbIF0gLTEKPj4gPgo+PiA+IFRoYW5rcywKPj4gPgo+PiA+IFN0ZXBoZW4uCj4+ID4KPj4KPgo+CgotLTk0ZWIyYzBkZTdkOGRkMmM4YzA1NWMxMjQzYTgtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDY5Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgRGVjICAxIDA5OjExOjE4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDY5Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4NjUxOTEwNDM5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgIDEgRGVjIDIwMTcgMDk6MTE6MTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3NzcxNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxIERlYyAyMDE3IDA5OjExOjEzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NzYxMyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxIERlYyAyMDE3IDA5OjExOjEzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzc1NzcgaW52b2tlZCBieSB1aWQgOTkpOyAxIERlYyAyMDE3IDA5OjExOjEyIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAwMSBEZWMgMjAxNyAwOToxMToxMiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDA4RUFGMTgwNjc1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAgMSBEZWMgMjAxNyAwOToxMToxMiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDMuMDkKWC1TcGFtLUxldmVsOiAqKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTMuMDkgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgSFRNTF9NRVNTQUdFPTIsIEtBTV9OVU1TVUJKRUNUPTAuNSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBUX0RLSU1fSU5WQUxJRD0wLjAxXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsgZGtpbT1uZXV0cmFsCglyZWFzb249ImludmFsaWQgKHB1YmxpYyBrZXk6IE9wZW5TU0wgZXJyb3I6IGJhZCBiYXNlNjQgZGVjb2RlKSIKCWhlYWRlci5kPWNzZXJ2ZW5hay5uZXQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBpa0t6T0R5dG5XM1cgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglGcmksICAxIERlYyAyMDE3IDA5OjExOjA4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwteWIwLWYxNzkuZ29vZ2xlLmNvbSAobWFpbC15YjAtZjE3OS5nb29nbGUuY29tIFsyMDkuODUuMjEzLjE3OV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA1RENFMjVGNTIzCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAgMSBEZWMgMjAxNyAwOToxMTowNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC15YjAtZjE3OS5nb29nbGUuY29tIHdpdGggU01UUCBpZCBiMTg4c28zNzUyMjc1eWJnLjExCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMDEgRGVjIDIwMTcgMDE6MTE6MDcgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWNzZXJ2ZW5hay5uZXQ7IHM9Z29vZ2xlOwogICAgICAgIGg9bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD0rMHMwOXlhazMwcGtJMmg1ZzVWSHpmOERiaTlwQ2tZNmdYNUVuMUxKZXB3PTsKICAgICAgICBiPVp4M0p0QTdkWDVWNDdrRXZ2TTd5cG4wRGlhVkRjcm1qTUJ6eXVHSXRncWdHSjRNS201MDFWSVNJeWdOV1gzdjIyMwogICAgICAgICBma1NSM0w2dW1NM0oxMTBsNHRCeE5MVE9yRk5FYXZGWXhXZmhEaU93WUJKdHRvb25zV2l4Vk9VdnRnK1R3UFlrclc3SwogICAgICAgICBCNzFVSitTNkNRVlJWRGUzSmJyWHlaSVYvbkVwNlNpZWI1NlpvPQpYLUdvb2dsZS1ES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9MWUxMDAubmV0OyBzPTIwMTYxMDI1OwogICAgICAgIGg9eC1nbS1tZXNzYWdlLXN0YXRlOm1pbWUtdmVyc2lvbjpyZWZlcmVuY2VzOmluLXJlcGx5LXRvOmZyb206ZGF0ZQogICAgICAgICA6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPSswczA5eWFrMzBwa0kyaDVnNVZIemY4RGJpOXBDa1k2Z1g1RW4xTEplcHc9OwogICAgICAgIGI9UFprMWJ6SEtvN2NscERKSWsvaWJPM2c3SENUQm40WWFiQTl2YUU0azZIRG4waUtkdHE4R2o1a1FpZU1qV083TVorCiAgICAgICAgIEJCYy9XN2N4TkpVNzFUWDljdVJaeUlKbnFLSmZjNWxxZmxrbGhROHJkdXIzM1IvVWxaSzJ4Ykdoc3RpcmJCTlpRUHlaCiAgICAgICAgIGo4SHEwTzVEOGdUSHFYSjBiTTArWWhPdlR5YXZoNWdIdFRoRDhEMXM0T1RjVkxSYnk0NnpPb2NaYlRxT0s2aXZKUTFrCiAgICAgICAgIFpxckE2TWNXbGFRaHNsUW93MHhxNVVhZHNkK0k0Ui9hMGwrbDRSVmQ1bDNvV1VsYndzS0VSbTFyYWMwbDNqSFl3T2dhCiAgICAgICAgIFJEbmhRWkhMR3RBd05ZWC9OYTRiTVo1YlhrQUdhc3NWa04zeGg5WExuU3pOR3p4Mm1PczdlcVRMYlpINGMzWVFCUG1BCiAgICAgICAgIGpZcVE9PQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDZyUGJQaEs4WTJUQlJnSkdwNUhZMVNDWm1OTGFKNE9VL3BmeThFdjZmdzBLbis3T0JrCgltRVRZWXB6YTRhcVhNZUkvS1RsMnZ0MWFMWFREM0JNPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUdzNHpNWU55WnFtaW1CZ2x5WTIxaGs1Y0dCbW9haTRqL3NDV3dFT0dHVENwUzFzZ05uNE5pVWtkYjBvZ3E1L0VmUUdHT291Y2dhYXhRPT0KWC1SZWNlaXZlZDogYnkgMTAuMzcuODIuMjEyIHdpdGggU01UUCBpZCBnMjAzbXIzMTcxNTg4eWJiLjM0Ni4xNTEyMTE5NDU5NjM1OwogICAgICAgIEZyaSwgMDEgRGVjIDIwMTcgMDE6MTA6NTkgLTA4MDAgKFBTVCkKUmVjZWl2ZWQ6IGZyb20gbWFpbC15dzAtZjE3Ni5nb29nbGUuY29tIChtYWlsLXl3MC1mMTc2Lmdvb2dsZS5jb20uIFsyMDkuODUuMTYxLjE3Nl0pCiAgICAgICAgYnkgc210cC5nbWFpbC5jb20gd2l0aCBFU01UUFNBIGlkIGIxMjNzbTI3OTI4NDh5d2YuOTEuMjAxNy4xMi4wMS4wMS4xMC41OQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CiAgICAgICAgKHZlcnNpb249VExTMV8yIGNpcGhlcj1FQ0RIRS1SU0EtQUVTMTI4LUdDTS1TSEEyNTYgYml0cz0xMjgvMTI4KTsKICAgICAgICBGcmksIDAxIERlYyAyMDE3IDAxOjEwOjU5IC0wODAwIChQU1QpClJlY2VpdmVkOiBieSBtYWlsLXl3MC1mMTc2Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHgxOTlzbzM3ODAyMzR5d2cuNQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDAxIERlYyAyMDE3IDAxOjEwOjU5IC0wODAwIChQU1QpClgtUmVjZWl2ZWQ6IGJ5IDEwLjEzLjIzNi4zIHdpdGggU01UUCBpZCB2M21yNDI4NDIxeXdlLjE2MS4xNTEyMTE5NDU4NzYyOyBGcmksCiAwMSBEZWMgMjAxNyAwMToxMDo1OCAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8Q0FQTHBSUUw2PTNxa3pBZT1GZ1JyZWhlR3hma2l5ZFVxQmRyLXlEQ1ZvR2VaVHpycWJBQG1haWwuZ21haWwuY29tPgogPENBUG95QnFUby1hbnBoTCtMeUhWNmJrR05VTWQxdzI3RktrMlpQbl9mZDF2N2Z0OVF0d0BtYWlsLmdtYWlsLmNvbT4KIDxDQU1rX0JlZ0NHU2tyS1phdERzZF9GYXJZd2ZkLW1aWDhBcXFER1ItTXpKMTVHa2QrcXdAbWFpbC5nbWFpbC5jb20+CiA8Q0FQb3lCcVE3d1dEUlJWNTljaW51dlVpY25VTG10anE1ckNpVHpLWVdnWFlIR1c9R2lRQG1haWwuZ21haWwuY29tPiA8ODFiNDliYWEtOGQ0My1jMDRkLThmMDctMDVhMGQwNDgxY2JhQHN0LmluZm9ybWF0aWsudHUtZGFybXN0YWR0LmRlPgpJbi1SZXBseS1UbzogPDgxYjQ5YmFhLThkNDMtYzA0ZC04ZjA3LTA1YTBkMDQ4MWNiYUBzdC5pbmZvcm1hdGlrLnR1LWRhcm1zdGFkdC5kZT4KRnJvbTogPT9VVEYtOD9CP1ZHRnR3NkZ6SUVOelpYSjJaVzdEb1dzPT89IDx0YW1hc0Bjc2VydmVuYWsubmV0PgpEYXRlOiBGcmksIDAxIERlYyAyMDE3IDA5OjEwOjQ4ICswMDAwClgtR21haWwtT3JpZ2luYWwtTWVzc2FnZS1JRDogPENBUExwUlErTmk1Mkd5Tm1HaXJjaURVXzdYZU4zRy04YlpzMXo0K0VSN1dRYzhreXF5UUBtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JRDogPENBUExwUlErTmk1Mkd5Tm1HaXJjaURVXzdYZU4zRy04YlpzMXo0K0VSN1dRYzhreXF5UUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIE1hdmVuIEluZGV4ZXIgNi4wLjAKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iOTRlYjJjMDg3ODE2MzI5ODQ0MDU1ZjQzYmYyNSIKCi0tOTRlYjJjMDg3ODE2MzI5ODQ0MDU1ZjQzYmYyNQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKQEJyaWFuIEBPbGl2aWVyClJlbGVhc2UgNi4wLjAgaXMgcGVyZmVjdGx5IGNvbXBhdGlibGUgYmFja3dhcmRzLCBzbyBubyBuZWVkIHRvIHB1Ymxpc2ggd2l0aAo2LjAuMCB0byBjb25zdW1lIGl0IHdpdGggNi4wLjAuIFRoZSBjaGFuZ2VkIGNyZWF0b3JzIChsaWtlIE9TR2kpIHdlcmUKYW55d2F5IHVudXNlZCBvbiBjZW50cmFsIEFGQUlLLCBjZW50cmFsIHB1Ymxpc2hlcyB3aXRoICJtaW4iIHNldCBvZgpwdWJsaXNoZXJzLgoKQEFuZHJlYXMKdGhhbmtzIQoKVm90ZSBwYXNzZWQgd2l0aCArMSdzIGZyb206IE9saXZpZXIsIEhlcnZlLCBSb2JlcnQsIE1hbmZyZWQsIEVyaWMgYW5kCkFuZHJlYXMKCgpUaGFua3MsClRhbWFzCgoKT24gRnJpLCBEZWMgMSwgMjAxNyBhdCA5OjIyIEFNIEFuZHJlYXMgU2V3ZSA8CnNld2VAc3QuaW5mb3JtYXRpay50dS1kYXJtc3RhZHQuZGU+IHdyb3RlOgoKPiBPbGl2aWVyIExhbXkgd3JvdGU6Cj4gPiBwcm9iYWJseSBubyBpc3N1ZXMgZm9yIHN1cmUuCj4gPiBJIGp1c3QgZG9uJ3Qga25vdyBpZiB3ZSB3aWxsIGJlIGFibGUgdG8gc3RpbGwgZG93bmxvYWQgdGhlIGluZGV4IGZyb20KPiA+IGNlbnRyYWwgYW5kIHVzZSBpdCB3aXRoIHRoaXMgbmV3IHZlcnNpb24KPiA+IFRCSCBJIGhhdmVuJ3QgZG9uZSBhbnkgdGVzdGluZyBldGMuLi4uIHNvIGl0J3MganVzdCBxdWVzdGlvbnMgOi0pCj4KPiBGWUksIG15IHRlc3RpbmcgaW5jbHVkZWQgZG93bmxvYWRpbmcgdGhlIGluZGV4IGZyb20gQ2VudHJhbCAodG8gYmUKPiBwcmVjaXNlOiBpdHMgdWsubWF2ZW4ub3JnIG1pcnJvcikgd2l0aCB0aGUgc3RhZ2VkIEluZGV4ZXIgNi4wLjAuIFNvLCB0aGUKPiBjdXJyZW50IGNvZGUgaXRzIGFibGUgdG8gY29uc3VtZSB0aGUgaW5kZXggY3VycmVudGx5IHByb2R1Y2VkIGZvcgo+IENlbnRyYWwsIHByZXN1bWFibHkgYnkgSW5kZXhlciA1LnguCj4KPiBIb3BlIHRoYXQgaGVscHMuCj4KPiBCZXN0IHdpc2hlcywKPgo+IEFuZHJlYXMKPgo+IC0tClRoYW5rcywKfnR+CgotLTk0ZWIyYzA4NzgxNjMyOTg0NDA1NWY0M2JmMjUtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDcyMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gRGVjICAzIDE0OjM5OjI5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDcyMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAzMUMzRDE3RTgxCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgIDMgRGVjIDIwMTcgMTQ6Mzk6MjkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5MzM5OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAzIERlYyAyMDE3IDE0OjM5OjI4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MzMyMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAzIERlYyAyMDE3IDE0OjM5OjI4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTMzMDIgaW52b2tlZCBieSB1aWQgOTkpOyAzIERlYyAyMDE3IDE0OjM5OjI4IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDAzIERlYyAyMDE3IDE0OjM5OjI4ICswMDAwClJlY2VpdmVkOiBmcm9tIG1haWwteWIwLWYxNzEuZ29vZ2xlLmNvbSAobWFpbC15YjAtZjE3MS5nb29nbGUuY29tIFsyMDkuODUuMjEzLjE3MV0pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCAzMDQyQzFBMDA0NDsKCVN1biwgIDMgRGVjIDIwMTcgMTQ6Mzk6MjcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwteWIwLWYxNzEuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgcDEyOHNvNTY4Nzk0NHliYS43OwogICAgICAgIFN1biwgMDMgRGVjIDIwMTcgMDY6Mzk6MjcgLTA4MDAgKFBTVCkKWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg0aVcycUJadXRieE9Pc2c5NDd2K3Z0Lzh6dThSOTI5R2tEYnhmTHVDdHpCaExVcFAvagoJQlFDZzloZ05NWWRWNGtvM1p5SSthUk9rQWY4WXVLZ2RXV3NzV2hJPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUdzNHpNWUdXektHcmlNcDN0RE5JTnZQK2JicGhlYUJhU1kzTkVxS0lZbnN0c1UwODMyYmxGOEhOTWdUU3ZielRuRG9hbkovT3NhcmJnNkhUL0hxUW9IS0c4WT0KWC1SZWNlaXZlZDogYnkgMTAuMzcuMjAzLjExIHdpdGggU01UUCBpZCBiMTFtcjc2NTM3OTF5YmcuMzE2LjE1MTIzMTE5NjYyOTk7CiBTdW4sIDAzIERlYyAyMDE3IDA2OjM5OjI2IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wCkZyb206ID0/VVRGLTg/Qj9WR0Z0dzZGeklFTnpaWEoyWlc3RG9Xcz0/PSA8Y3N0YW1hc0BhcGFjaGUub3JnPgpEYXRlOiBTdW4sIDAzIERlYyAyMDE3IDE0OjM5OjE1ICswMDAwClgtR21haWwtT3JpZ2luYWwtTWVzc2FnZS1JRDogPENBUExwUlFKek5LY2VfX29XMVJyNGlzcEZEMlNyRm9GRlVXVFoyblV3NEYtNFN4akc1Z0BtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JRDogPENBUExwUlFKek5LY2VfX29XMVJyNGlzcEZEMlNyRm9GRlVXVFoyblV3NEYtNFN4akc1Z0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogW1JFU1VMVF0gW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIEluZGV4ZXIgdmVyc2lvbiA2LjAuMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ2M6IE1hdmVuIFByb2plY3QgTWFuYWdlbWVudCBDb21taXR0ZWUgTGlzdCA8cHJpdmF0ZUBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzA1NTgyMDhhN2ZkZDA1NWY3MDkxZmUiCgotLTk0ZWIyYzA1NTgyMDhhN2ZkZDA1NWY3MDkxZmUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCkhpLAoKVGhlIHZvdGUgaGFzIHBhc3NlZCB3aXRoIHRoZSBmb2xsb3dpbmcgcmVzdWx0OgoKKzEgOiBPbGl2aWVyLCBIZXJ2ZSwgUm9iZXJ0LCBNYW5mcmVkLCBFcmljIGFuZCBBbmRyZWFzCgpQTUMgcXVvcnVtOiBPbGl2aWVyLCBIZXJ2ZSwgUm9iZXJ0CgpJIHdpbGwgcHJvbW90ZSB0aGUgYXJ0aWZhY3RzIHRvIHRoZSBjZW50cmFsIHJlcG8uCgpUaGFua3MsClQKLS0gClRoYW5rcywKfnR+CgotLTk0ZWIyYzA1NTgyMDhhN2ZkZDA1NWY3MDkxZmUtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDY0MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgTm92IDI4IDEwOjIwOjQ3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDY0MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBBQ0QxRjE3NzRCCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMjggTm92IDIwMTcgMTA6MjA6NDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1MjQ4MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBOb3YgMjAxNyAxMDoyMDo0NyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTIzNzcgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggTm92IDIwMTcgMTA6MjA6NDcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MjM2NCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IE5vdiAyMDE3IDEwOjIwOjQ2IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAyOCBOb3YgMjAxNyAxMDoyMDo0NiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDJGQkZBQzMyQTQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDEwOjIwOjQ2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMy44OTIKWC1TcGFtLUxldmVsOiAqKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTMuODkyIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIEhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsCglLQl9XQU1fRlJPTV9OQU1FX1NJTkdMRVdPUkQ9MC4yLCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgVFJBQ0tFUl9JRD0xLjEwMiwKCVRfREtJTV9JTlZBTElEPTAuMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7IGRraW09bmV1dHJhbAoJcmVhc29uPSJpbnZhbGlkIChwdWJsaWMga2V5OiBPcGVuU1NMIGVycm9yOiBiYWQgYmFzZTY0IGRlY29kZSkiCgloZWFkZXIuZD1jc2VydmVuYWsubmV0ClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBZTC1GWjh0NUxZYnogZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUdWUsIDI4IE5vdiAyMDE3IDEwOjIwOjQ1ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwteWIwLWYxODEuZ29vZ2xlLmNvbSAobWFpbC15YjAtZjE4MS5nb29nbGUuY29tIFsyMDkuODUuMjEzLjE4MV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA3Q0E1NTVGMjdCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAxMDoyMDo0NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC15YjAtZjE4MS5nb29nbGUuY29tIHdpdGggU01UUCBpZCBuMTg1c28xMTUyNzcyOXliYS42CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjggTm92IDIwMTcgMDI6MjA6NDQgLTA4MDAgKFBTVCkKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPWNzZXJ2ZW5hay5uZXQ7IHM9Z29vZ2xlOwogICAgICAgIGg9bWltZS12ZXJzaW9uOmZyb206ZGF0ZTptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9VHJkM1B2SG4vME5ieHV6dVpwcHRYQXN4bWRkVWJkWk9kdHRxbnVWYjZhST07CiAgICAgICAgYj1ZeFl5VWRQMXZ3V2g4RnpiZlcyNEV3amZQSHByVnovRjFXMC9TSCtPYUIvTStaKzhmL2hHSkFyekhmbE1qdis4eTcKICAgICAgICAgY0hkemdDVUNSejdlSWVpQ2dKbWtXTVl3QU1kODNGdThBbTh2UzdwdEN5YzVYbWVYaDdGVkJjcGJVTFNrOFQ2VXl4djgKICAgICAgICAgdVoyK0FFUDVnaVZxWGZHQ1A3SVhya2VpWnJqbk14di9jS1p5OD0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTptaW1lLXZlcnNpb246ZnJvbTpkYXRlOm1lc3NhZ2UtaWQ6c3ViamVjdDp0bzsKICAgICAgICBiaD1UcmQzUHZIbi8wTmJ4dXp1WnBwdFhBc3htZGRVYmRaT2R0dHFudVZiNmFJPTsKICAgICAgICBiPWRTN04xZUphOUFVM2RIT3JlUWtVbU1hOGtZVjB0YkJ1aTFyaUd5TFhBVnQ2bmMza2FMWFBHcWZPaHdVbkswclA5OAogICAgICAgICBiTTVENk9HSnE5TWNTSUFsZXJHaW43eUhTamtYRGVFSWJkVGhWQkpLYk1TOVNhWGFMT0I3cmJObkg4aGMrOFZDNFY2bAogICAgICAgICBySmNJdjlYMVdXYTg4RUNWVlhOMFZyaU9sZkRCSjI3WVptVitYUUswY0IvbDBaUFFxRHJsM2kvTHdsazkwMDVKblZmUQogICAgICAgICBBeDM3bDBUMVFvRGdQOENnaDNCRWFOOUJsZDRzVEZSMkRlSENralhtUTJCNXZ6L2xHYUZ0ZTQwUzcvZ2ZJVlErbXd6YQogICAgICAgICBIOWJOMmZxRUMyYTdxYTVEdjIxRlFrLzVNTCt3RDEzaFl4Yy9YaGhYNDZvQ1VUd3hwa0R6THJIbUowck9iNGlIQ0JBaAogICAgICAgICA1RUdBPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg2VUtpZ3V2TjQramFXSTdVVlB2NUVKT3JZMVd3enRpbVNoaThzbHVCck1CRmpDOW5HMgoJeWR4UUtRMnpVMm1tVG1rVkNnSHFTSG1SaUtJTXd6VT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TVozaW0yZTF5TmsvRDN5bDZTZTBmUWtYZTJlQmxUck1vMzdMN1pBakYwZFhKVXlVaFhYdkp1N00yRVhGaTNDRVFMVnRGb3BMQT09ClgtUmVjZWl2ZWQ6IGJ5IDEwLjM3LjE5Mi43OCB3aXRoIFNNVFAgaWQgYzc1bXIyNTc4ODE0OXliZi4zMjQuMTUxMTg2NDQ0MzMxNDsKICAgICAgICBUdWUsIDI4IE5vdiAyMDE3IDAyOjIwOjQzIC0wODAwIChQU1QpClJlY2VpdmVkOiBmcm9tIG1haWwteXcwLWYxNzQuZ29vZ2xlLmNvbSAobWFpbC15dzAtZjE3NC5nb29nbGUuY29tLiBbMjA5Ljg1LjE2MS4xNzRdKQogICAgICAgIGJ5IHNtdHAuZ21haWwuY29tIHdpdGggRVNNVFBTQSBpZCBjMTBzbTEzMjc5NzEyeXdhLjY1LjIwMTcuMTEuMjguMDIuMjAuNDIKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPgogICAgICAgICh2ZXJzaW9uPVRMUzFfMiBjaXBoZXI9RUNESEUtUlNBLUFFUzEyOC1HQ00tU0hBMjU2IGJpdHM9MTI4LzEyOCk7CiAgICAgICAgVHVlLCAyOCBOb3YgMjAxNyAwMjoyMDo0MiAtMDgwMCAoUFNUKQpSZWNlaXZlZDogYnkgbWFpbC15dzAtZjE3NC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBrMTkxc28xMzA2MzIyOHl3ZS4xCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjggTm92IDIwMTcgMDI6MjA6NDIgLTA4MDAgKFBTVCkKWC1SZWNlaXZlZDogYnkgMTAuMTI5Ljg3LjIxMCB3aXRoIFNNVFAgaWQgbDIwMW1yMjc2MDg1Mzl5d2IuMi4xNTExODY0NDQxOTI4OwogVHVlLCAyOCBOb3YgMjAxNyAwMjoyMDo0MSAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApGcm9tOiA9P1VURi04P0I/VkdGdHc2RnpJRU56WlhKMlpXN0RvV3M9Pz0gPHRhbWFzQGNzZXJ2ZW5hay5uZXQ+CkRhdGU6IFR1ZSwgMjggTm92IDIwMTcgMTA6MjA6MzEgKzAwMDAKWC1HbWFpbC1PcmlnaW5hbC1NZXNzYWdlLUlEOiA8Q0FQTHBSUUw2PTNxa3pBZT1GZ1JyZWhlR3hma2l5ZFVxQmRyLXlEQ1ZvR2VaVHpycWJBQG1haWwuZ21haWwuY29tPgpNZXNzYWdlLUlEOiA8Q0FQTHBSUUw2PTNxa3pBZT1GZ1JyZWhlR3hma2l5ZFVxQmRyLXlEQ1ZvR2VaVHpycWJBQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBbVk9URV0gUmVsZWFzZSBNYXZlbiBJbmRleGVyIDYuMC4wClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQ1NzU3NjAyODRlODA1NWYwODVmMTciCgotLTAwMWExMTQ1NzU3NjAyODRlODA1NWYwODVmMTcKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCltWT1RFXSBSZWxlYXNlIE1hdmVuIEluZGV4ZXIgNi4wLjAKCkhpLAoKV2Ugc29sdmVkIDI1IGlzc3VlczoKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMxNzUyMyZ2ZXJzaW9uPTEyMzMwODAyCgpUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3Byb2plY3RzL01JTkRFWEVSL2lzc3Vlcy9NSU5ERVhFUi04MT9maWx0ZXI9YWxsb3Blbmlzc3VlcwoKU3RhZ2luZyByZXBvOgpodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzc5Cmh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NlcnZpY2UvbG9jYWwvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzkvY29udGVudC9vcmcvYXBhY2hlL21hdmVuL2luZGV4ZXIvbWF2ZW4taW5kZXhlci82LjAuMC9tYXZlbi1pbmRleGVyLTYuMC4wLXNvdXJjZS1yZWxlYXNlLnppcAoKU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cm1hdmVuLWluZGV4ZXItNi4wLjAtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6CjI3OTkzOWY4ZGVmZjBmNTUxODM2NGMwNmRhODQ3YjMyYWI2MTA4ZWQKClN0YWdpbmcgc2l0ZToKaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvbWF2ZW4taW5kZXhlci1hcmNoaXZlcy9tYXZlbi1pbmRleGVyLUxBVEVTVC8KCkd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgpodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAoKVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KClsgXSArMQpbIF0gKzAKWyBdIC0xCgotLSAKVGhhbmtzLAp+dH4KCi0tMDAxYTExNDU3NTc2MDI4NGU4MDU1ZjA4NWYxNy0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NzIyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBEZWMgIDMgMTQ6NDA6MDAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzIyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDZEQjk1MTdFODYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAgMyBEZWMgMjAxNyAxNDo0MDowMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk0MzQ0IGludm9rZWQgYnkgdWlkIDUwMCk7IDMgRGVjIDIwMTcgMTQ6NDA6MDAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk0MjY3IGludm9rZWQgYnkgdWlkIDUwMCk7IDMgRGVjIDIwMTcgMTQ6NDA6MDAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NDI0MyBpbnZva2VkIGJ5IHVpZCA5OSk7IDMgRGVjIDIwMTcgMTQ6Mzk6NTkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMDMgRGVjIDIwMTcgMTQ6Mzk6NTkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC15YjAtZjE3OC5nb29nbGUuY29tIChtYWlsLXliMC1mMTc4Lmdvb2dsZS5jb20gWzIwOS44NS4yMTMuMTc4XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDc5MkRDMUEwMDQ0OwoJU3VuLCAgMyBEZWMgMjAxNyAxNDozOTo1OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC15YjAtZjE3OC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBpMTVzbzU2OTM5OTl5YmsuMDsKICAgICAgICBTdW4sIDAzIERlYyAyMDE3IDA2OjM5OjU5IC0wODAwIChQU1QpClgtR20tTWVzc2FnZS1TdGF0ZTogQUtHQjNtTFBpWmgyOE5ISExWbFllS055Vyt5VUl4cGVIci9nblU3ZEp3cmdiL2tJQmU0ditZTGcKCTlBQVNKZ3grVU1YRjFIRTM0dXVpRkJrRDBqa2tJYlBXVWYzeXg1cz0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TVlqdjRlaTk5NEFBd1RLTjVXTEthUXo2WVFOQjlucjhIZFpDSVREN1I2K0M4RUo4MEkvNHRnWWpNaXByOGFpZVBkRTFQSjI0N0Z0LzZNOFVpUTFoc289ClgtUmVjZWl2ZWQ6IGJ5IDEwLjM3LjEwMi43NyB3aXRoIFNNVFAgaWQgejEzbXIxMjc1NDE4eWJtLjE3Mi4xNTEyMzExOTk4NjIzOwogU3VuLCAwMyBEZWMgMjAxNyAwNjozOTo1OCAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApGcm9tOiA9P1VURi04P0I/VkdGdHc2RnpJRU56WlhKMlpXN0RvV3M9Pz0gPGNzdGFtYXNAYXBhY2hlLm9yZz4KRGF0ZTogU3VuLCAwMyBEZWMgMjAxNyAxNDozOTo0OCArMDAwMApYLUdtYWlsLU9yaWdpbmFsLU1lc3NhZ2UtSUQ6IDxDQVBMcFJRTEJxVzFZOHVhNT10RWl0ZTJ5QU5lclR4ZHVFbVZUTlBadWNvZDlGc2Q3ckFAbWFpbC5nbWFpbC5jb20+Ck1lc3NhZ2UtSUQ6IDxDQVBMcFJRTEJxVzFZOHVhNT10RWl0ZTJ5QU5lclR4ZHVFbVZUTlBadWNvZDlGc2Q3ckFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFtBTk5dIEFwYWNoZSBNYXZlbiBJbmRleGVyIDYuMC4wIFJlbGVhc2VkClRvOiBhbm5vdW5jZUBtYXZlbi5hcGFjaGUub3JnLCB1c2Vyc0BtYXZlbi5hcGFjaGUub3JnCkNjOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjA4OWUwODI4YTlkODc3Yjc4YTA1NWY3MDkzYmUiCgotLTA4OWUwODI4YTlkODc3Yjc4YTA1NWY3MDkzYmUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKClRoZSBBcGFjaGUgTWF2ZW4gdGVhbSBpcyBwbGVhc2VkIHRvIGFubm91bmNlIHRoZSByZWxlYXNlIG9mIHRoZSBBcGFjaGUKTWF2ZW4gSW5kZXhlciwgdmVyc2lvbiA2LjAuMAoKQXBhY2hlIE1hdmVuIEluZGV4ZXIgKGZvcm1lciBTb25hdHlwZSBOZXh1cyBJbmRleGVyKSBpcyB0aGUgZGVmYWN0bwpzdGFuZGFyZCBmb3IgcHJvZHVjaW5nIGluZGV4ZXMgb2YgTWF2ZW4gcmVwb3NpdG9yaWVzLiBUaGUgSW5kZXhlcyBhcmUKcHJvZHVjZWQgYW5kIGNvbnN1bWVkIGJ5IGFsbCBtYWpvciB0b29scyBpbiB0aGUgZWNvc3lzdGVtLgoKaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL21hdmVuLWluZGV4ZXIvCgpZb3Ugc2hvdWxkIHNwZWNpZnkgdGhlIHZlcnNpb24gaW4geW91ciBwcm9qZWN0J3MgZGVwZW5kZW5jeSBjb25maWd1cmF0aW9uOgoKPHBsdWdpbj4KICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLmluZGV4ZXI8L2dyb3VwSWQ+CiAgPGFydGlmYWN0SWQ+aW5kZXhlci1jb3JlPC9hcnRpZmFjdElkPgogIDx2ZXJzaW9uPjYuMC4wPC92ZXJzaW9uPgo8L3BsdWdpbj4KClJlbGVhc2UgTm90ZXMgLSBNYXZlbiBJbmRleGVyIC0gVmVyc2lvbiA2LjAuMAoKKiogU3ViLXRhc2sKICAgICogW01JTkRFWEVSLTM5XSAtIHN0dWR5IGhvdyB0byBoYXZlIG1hdmVuLWluZGV4ZXIgbm9uIHBsZXh1cy9zaXN1CmRlcGVuZGFudAogICAgKiBbTUlOREVYRVItOTBdIC0gY3JlYXRlIENMSSBvcHRpb25zIHJlZmVyZW5jZQoKKiogQnVnCiAgICAqIFtNSU5ERVhFUi04NF0gLSBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb246IGRvY0lEIG11c3QgYmUgPj0gMCBhbmQgPAptYXhEb2M9Njk1NCAoZ290IGRvY0lEPTY5NTQpCiAgICAqIFtNSU5ERVhFUi04NV0gLSBQT00gbW9kZWwgcmVhZGluZyBmYWlscyB0b28gb2Z0ZW4KICAgICogW01JTkRFWEVSLTg2XSAtIFJlbW92ZSAibGVnYWN5IiB0cmFuc3BvcnQgZm9ybWF0CiAgICAqIFtNSU5ERVhFUi0xMDVdIC0gUkVBRE1FLm1kIHBvaW50cyB0byB3cm9uZyBpc3N1ZSB0cmFja2VyIChDb2RlaGF1cykKICAgICogW01JTkRFWEVSLTEwNl0gLSBDbGFzc05vdEZvdW5kRXhjZXB0aW9uCihvcmcuc29uYXR5cGUuYWV0aGVyLnZlcnNpb24uSW52YWxpZFZlcnNpb25TcGVjaWZpY2F0aW9uRXhjZXB0aW9uKSB1bmRlcgpyZWNlbnQgTWF2ZW4gdmVyc2lvbnMKCioqIEltcHJvdmVtZW50CiAgICAqIFtNSU5ERVhFUi0yNF0gLSBQdWJsaXNoIGluZGV4ZXIgc2l0ZQogICAgKiBbTUlOREVYRVItMzJdIC0gRW5jYXBzdWxhdGUgQXJ0aWZhY3RJbmZvIGZpZWxkcwogICAgKiBbTUlOREVYRVItNDFdIC0gQWxsb3cgdG8gaW5kZXggc2V2ZXJhbCBhcnRpZmFjdHMgd2l0aCBubyBjbGFzc2lmaWVyCiAgICAqIFtNSU5ERVhFUi03N10gLSBVcGdyYWRlIHRvIGxhdGVzdCBMdWNlbmUKICAgICogW01JTkRFWEVSLTc5XSAtIE1ha2UgcHJvamVjdCBKYXZhNysKICAgICogW01JTkRFWEVSLTgwXSAtIERyb3AgUGxleHVzIGFzIERJLCB1c2UgSlNSMzMwCiAgICAqIFtNSU5ERVhFUi05OV0gLSBpbXByb3ZlIHBlcmZvcm1hbmNlIGxvc3MgaW50cm9kdWNlZCBpbiBNSU5ERVhFUi03NwogICAgKiBbTUlOREVYRVItMTAzXSAtIEFkZCBhIHNoYWRlZCBqYXIgd2l0aCByZXBhY2thZ2VkIGx1Y2VuZSBwYWNrYWdlcwogICAgKiBbTUlOREVYRVItMTA4XSAtIExpZnQgcmVzdHJpY3Rpb24gb24gbGVhZGluZyB3aWxkY2FyZCBxdWVyaWVzCgoqKiBUYXNrCiAgICAqIFtNSU5ERVhFUi03NV0gLSBTcXVhc2ggaW5kZXhlci1hcnRpZmFjdCBhbmQgaW5kZXhlci1jb3JlCiAgICAqIFtNSU5ERVhFUi04Ml0gLSBDcmVhdGUgYSBtb2R1bGUgd2l0aCBleGFtcGxlcwogICAgKiBbTUlOREVYRVItODNdIC0gUmVmYWN0b3IgdGhlIEluZGV4ZXIuYWRkQXJ0aWZhY3RzVG9JbmRleCguLi4pIG1ldGhvZAoocG9zc2libHkgaW50cm9kdWNlIG5ldyBvbmVzKSBzbyB0aGF0IGl0IGlzIHBvc3NpYmxlIHRvIGFkZCBhcnRpZmFjdCBmaWxlcwpvbmUgYnkgb25lCiAgICAqIFtNSU5ERVhFUi04OF0gLSBDbGVhbiB1cCB0aGUgcGx1Z2luIHZlcnNpb25zIGFuZCBwb3NzaWJseSB1cGdyYWRlIHRoZQpwbHVnaW5zIHRvIHRoZWlyIGxhdGVzdCB2ZXJzaW9ucwogICAgKiBbTUlOREVYRVItODldIC0gVXNlIGEgbW9yZSB1bmNvbW1vbiBwb3J0IGZvciBKZXR0eSBpbiB0aGUKRGVmYXVsdEluZGV4VXBkYXRlckVtYmVkZGluZ0lUIHRvIGF2b2lkICJBZGRyZXNzIGFscmVhZHkgaW4gdXNlIgogICAgKiBbTUlOREVYRVItMTAwXSAtIEZvcndhcmQgcG9ydCBjaGFuZ2VzIGluIDUuMS4yLVNOQVBTSE9UCihtYXZlbi1pbmRleGVyLTUueCkgdG8gNi4wLjAtU05BUFNIT1QgKG1hc3RlcikKICAgICogW01JTkRFWEVSLTEwMV0gLSBGb3J3YXJkIHBvcnQgT1NHSSBpbXByb3ZlbWVudHMgKE1JTkRFWEVSLTk3KSB0bwptYXN0ZXIKICAgICogW01JTkRFWEVSLTEwMl0gLSBGb3J3YXJkIHBvcnQgT1NHSSByZWxhdGVkIGluZGV4LXJlYWRlciBjaGFuZ2VzIHRvCm1hc3RlciAoQ2hhbmdlcyByZWxhdGl2ZSB0byBNSU5ERVhFUi0xMDAgYnJhbmNoKQoKKiogVGVzdAogICAgKiBbTUlOREVYRVItOTFdIC0gQWRkIGEgU3ByaW5nIGJhc2VkIGV4YW1wbGUKCgpFbmpveSwKCi1UaGUgQXBhY2hlIE1hdmVuIHRlYW0KLS0gClRoYW5rcywKfnR+CgotLTA4OWUwODI4YTlkODc3Yjc4YTA1NWY3MDkzYmUtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDY0OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgTm92IDI4IDE5OjMyOjA5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDY0OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3Qjg1NjE3RUNECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMjggTm92IDIwMTcgMTk6MzI6MDkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyMDA3NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBOb3YgMjAxNyAxOTozMjowOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjAwMTMgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggTm92IDIwMTcgMTk6MzI6MDkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxOTk5OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IE5vdiAyMDE3IDE5OjMyOjA4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAyOCBOb3YgMjAxNyAxOTozMjowOCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEU3Mjc2MUExM0ZBCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAxOTozMjowNyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDQuNTkyClgtU3BhbS1MZXZlbDogKioqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9NC41OTIgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgSFRNTF9NRVNTQUdFPTIsIEtBTV9CQURJUEhUVFA9MiwKCUtBTV9TSE9SVD0wLjAwMSwgTk9STUFMX0hUVFBfVE9fSVA9MC4wMDEsIFJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgVF9ES0lNX0lOVkFMSUQ9MC4wMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsgZGtpbT1uZXV0cmFsCglyZWFzb249ImludmFsaWQgKHB1YmxpYyBrZXk6IE9wZW5TU0wgZXJyb3I6IGJhZCBiYXNlNjQgZGVjb2RlKSIKCWhlYWRlci5kPWNzZXJ2ZW5hay5uZXQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIEhESnEzcU5ESjNoSyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVR1ZSwgMjggTm92IDIwMTcgMTk6MzI6MDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbWFpbC15YjAtZjE3OS5nb29nbGUuY29tIChtYWlsLXliMC1mMTc5Lmdvb2dsZS5jb20gWzIwOS44NS4yMTMuMTc5XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDc0NUIyNUYxOUQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDE5OjMyOjA1ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXliMC1mMTc5Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGM2OXNvNDE5NzEweWJmLjMKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAxMTozMjowNSAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9Y3NlcnZlbmFrLm5ldDsgcz1nb29nbGU7CiAgICAgICAgaD1taW1lLXZlcnNpb246cmVmZXJlbmNlczppbi1yZXBseS10bzpmcm9tOmRhdGU6bWVzc2FnZS1pZDpzdWJqZWN0OnRvOwogICAgICAgIGJoPWhhNllGbURlWXl4U3BldCtmalVXVHV4UG9zVmxFTjdqQTNqV2NEay8yZVE9OwogICAgICAgIGI9VWRwU25uR3FScDdtQWNvakFOS1JlaWZlYWpyRWx6OWo5UEQvOWR6aHkza3pUd3JDRDZtZzVKYmFOWTV3b1JuNWF2CiAgICAgICAgIHJ3Q1RFS05sTXpzam5UOElvZlR6K09RQ2FTME9CR1Q3czN4YnJ3NGYwUGNJR2doMDcyaGVRQlFkRW1qanJkRkVaTW1kCiAgICAgICAgIHZpd2NCRGMvb1hLVTMwbW5lbUthV3Nzd24vL3R0T2tMbkRPa2s9ClgtR29vZ2xlLURLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7CiAgICAgICAgZD0xZTEwMC5uZXQ7IHM9MjAxNjEwMjU7CiAgICAgICAgaD14LWdtLW1lc3NhZ2Utc3RhdGU6bWltZS12ZXJzaW9uOnJlZmVyZW5jZXM6aW4tcmVwbHktdG86ZnJvbTpkYXRlCiAgICAgICAgIDptZXNzYWdlLWlkOnN1YmplY3Q6dG87CiAgICAgICAgYmg9aGE2WUZtRGVZeXhTcGV0K2ZqVVdUdXhQb3NWbEVON2pBM2pXY0RrLzJlUT07CiAgICAgICAgYj1sY05aYmRMeEtneE9paUJYeHVMSCs4anFGZ3l0bmdBQ1ZWWmRoS09qcU5FYnNId1dWOVVaQmU5N1YwVkR2bDJuU2cKICAgICAgICAgenlrTGR4MVJjblFHWHcyK3hyOWpPaHVTYVJ3bnRubit6SWh1bSt5S0ZsaHdhMm1UZFJ1aVVJYlloQzd6cTh2bTZIdy8KICAgICAgICAgNGNyOVFxUkJNd3BEeDduVXRpTkVHVTZ6QkdnK3NUMXhwRS9GZTZGRUhvcFRqYVZwNWZmUjJSR0NyMmwzY2Q4S2JteUEKICAgICAgICAgTXFNSjg4SHdiSzJxeWExZWRxYVBzTHdsdkxZcGxERm9YaENGZW9hYXFET2tkTU90UkhEUk12UFhNVW1SeHFFaXdObnEKICAgICAgICAgY3lIZlFaR25EelVhZVAyMzBHTmNsalBPaStnV21Md2x2MW5IazJnTHdnVkIvWDFIVnI4c0R6M0FaNE9heCs1ajNvd2kKICAgICAgICAgU3NXZz09ClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYNlpOZXVsY3JTNG5hNUg4WEUrRUVOUldqT0dmT1lxZ3BlMlZHZGgwK0FrOTZMUExOVzAKCWxQY3FWMmo3NzBVTGhJbEtmSEw4WUZ6WjNrOXhyZjQ9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1aOTJXRCt6Z1hoRTJVeEhVNzlWWGVrTEt0OVMxdGJPaDFPN0JXbGJRaXovSGx5OUs3T0J1eW1aQ1Y0d0dFTUVaTHRPQWt2MlE9PQpYLVJlY2VpdmVkOiBieSAxMC4zNy4xODguMSB3aXRoIFNNVFAgaWQgaTFtcjE1Njc3N3liaC4xNDcuMTUxMTg5NzUxODM4OTsKICAgICAgICBUdWUsIDI4IE5vdiAyMDE3IDExOjMxOjU4IC0wODAwIChQU1QpClJlY2VpdmVkOiBmcm9tIG1haWwteWIwLWYxNzIuZ29vZ2xlLmNvbSAobWFpbC15YjAtZjE3Mi5nb29nbGUuY29tLiBbMjA5Ljg1LjIxMy4xNzJdKQogICAgICAgIGJ5IHNtdHAuZ21haWwuY29tIHdpdGggRVNNVFBTQSBpZCBpNzdzbTEzMjcxMTE3eXdjLjQ4LjIwMTcuMTEuMjguMTEuMzEuNTcKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPgogICAgICAgICh2ZXJzaW9uPVRMUzFfMiBjaXBoZXI9RUNESEUtUlNBLUFFUzEyOC1HQ00tU0hBMjU2IGJpdHM9MTI4LzEyOCk7CiAgICAgICAgVHVlLCAyOCBOb3YgMjAxNyAxMTozMTo1NyAtMDgwMCAoUFNUKQpSZWNlaXZlZDogYnkgbWFpbC15YjAtZjE3Mi5nb29nbGUuY29tIHdpdGggU01UUCBpZCBnMTg3c280MDI1MzJ5YmEuMTMKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAxMTozMTo1NyAtMDgwMCAoUFNUKQpYLVJlY2VpdmVkOiBieSAxMC4zNy4xMDIuODEgd2l0aCBTTVRQIGlkIHoxN21yMTkzODE3eWJtLjE3Mi4xNTExODk3NTE3MDUxOwogVHVlLCAyOCBOb3YgMjAxNyAxMTozMTo1NyAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWZlcmVuY2VzOiA8Q0FLdVZ6QlRjbnFLaDhkNEtOU0tjaHZwNGRHTGNadzJlRHdNaW5LWjFVS0J6ODEyOVhBQG1haWwuZ21haWwuY29tPgogPENBQTlTNmk3PUpTVjRuNTlOa2U1K2EyaFctNEgrY19BUXY0eDN2RzVtTGdnaXpkdkJRQUBtYWlsLmdtYWlsLmNvbT4gPENBS3VWekJUTEFBeCs2PTVtK1FZN2NPVU8rU195elY3TEJEM2NkYjdxRldQXzc9aHNqZ0BtYWlsLmdtYWlsLmNvbT4KSW4tUmVwbHktVG86IDxDQUt1VnpCVExBQXgrNj01bStRWTdjT1VPK1NfeXpWN0xCRDNjZGI3cUZXUF83PWhzamdAbWFpbC5nbWFpbC5jb20+CkZyb206ID0/VVRGLTg/Qj9WR0Z0dzZGeklFTnpaWEoyWlc3RG9Xcz0/PSA8dGFtYXNAY3NlcnZlbmFrLm5ldD4KRGF0ZTogVHVlLCAyOCBOb3YgMjAxNyAxOTozMTo0NiArMDAwMApYLUdtYWlsLU9yaWdpbmFsLU1lc3NhZ2UtSUQ6IDxDQVBMcFJRTFEyZUxBc3RPdEFHUlJmVTRORUpWMEZmQk44andhclhMZGVVUytGTnMtK0FAbWFpbC5nbWFpbC5jb20+Ck1lc3NhZ2UtSUQ6IDxDQVBMcFJRTFEyZUxBc3RPdEFHUlJmVTRORUpWMEZmQk44andhclhMZGVVUytGTnMtK0FAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBQcm9ibGVtIHRvIGRvd25sb2FkIGRlcGVuZGVuY3kgb24gVWJ1bnR1ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjA4OWUwODI4ZTBmNDcwZDg5MDA1NWYxMDEyNmUiCgotLTA4OWUwODI4ZTBmNDcwZDg5MDA1NWYxMDEyNmUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCk15IDVjOgo+RnJvbSAiRmFpbGVkIHRvIGNyZWF0ZSBwYXJlbnQgZGlyZWN0b3JpZXMiLi4uCgpMb2NhbCByZXBvIGRpcmVjdG9yeSBvd25lcnNoaXAvcGVybWlzc2lvbnM/CgpIVEgsClQKCk9uIFR1ZSwgTm92IDI4LCAyMDE3IGF0IDc6MjEgUE0gVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPiB3cm90ZToKCj4gVGhlIHNldHRpbmdzLnhtbDoKPgo+IDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cj4gPHNldHRpbmdzIHhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9TRVRUSU5HUy8xLjAuMCIKPiAgICAgICAgICAgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIKPiAgICAgICAgICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9TRVRUSU5HUy8xLjAuMAo+IGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9zZXR0aW5ncy0xLjAuMC54c2QiPgo+Cj4gICAgIDxsb2NhbFJlcG9zaXRvcnk+L2hvbWUveG1zNDAvLm0yL3JlcG9zaXRvcnk8L2xvY2FsUmVwb3NpdG9yeT4KPgo+ICAgICA8bWlycm9ycz4KPiAgICAgICAgIDxtaXJyb3I+Cj4gICAgICAgICAgICAgPGlkPm5leHVzPC9pZD4KPiAgICAgICAgICAgICA8bWlycm9yT2Y+KjwvbWlycm9yT2Y+Cj4gICAgICAgICAgICAgPG5hbWU+U29uYXR5cGUgTmV4dXM8L25hbWU+Cj4gICAgICAgICAgICAgPHVybD5odHRwOi8vbWF2ZW5yZXBvLmFkcy5sb2NhbC9uZXh1cy9jb250ZW50L2dyb3Vwcy9wdWJsaWMKPiA8L3VybD4KPiAgICAgICAgIDwvbWlycm9yPgo+ICAgICA8L21pcnJvcnM+Cj4gICAgPHNlcnZlcnM+Cj4gICAgICAgPHNlcnZlcj4KPiAgICAgICAgICA8aWQ+bmV4dXM8L2lkPgo+ICAgICAgICAgIDx1c2VybmFtZT4qKio8L3VzZXJuYW1lPgo+ICAgICAgICAgIDxwYXNzd29yZD4qKio8L3Bhc3N3b3JkPgo+ICAgICAgIDwvc2VydmVyPgo+ICAgIDwvc2VydmVycz4KPgo+Cj4gPC9zZXR0aW5ncz4KPgo+Cj4gT24gTW9uLCBOb3YgMjcsIDIwMTcgYXQgMTA6NDYgUE0sIE5pY2sgU3RvbHdpamsgPG5pY2suc3RvbHdpamtAZ21haWwuY29tPgo+IHdyb3RlOgo+Cj4gPiBEaWQgeW91IGFsc28gY29uZmlndXJlIHlvdXIgcHJveHkgaW4gdGhlIHNldHRpbmdzLnhtbD8gWzFdCj4gPgo+ID4gSHRoLAo+ID4KPiA+IE5pY2sKPiA+Cj4gPiBbMV0gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9taW5pL2d1aWRlLXByb3hpZXMuaHRtbAo+ID4KPiA+IE5pY2sgU3RvbHdpamsKPiA+Cj4gPiB+fn4gVHJ5IHRvIGxlYXZlIHRoaXMgd29ybGQgYSBsaXR0bGUgYmV0dGVyIHRoYW4geW91IGZvdW5kIGl0IGFuZCwgd2hlbgo+ID4geW91ciB0dXJuIGNvbWVzIHRvIGRpZSwgeW91IGNhbiBkaWUgaGFwcHkgaW4gZmVlbGluZyB0aGF0IGF0IGFueSByYXRlIHlvdQo+ID4gaGF2ZSBub3Qgd2FzdGVkIHlvdXIgdGltZSBidXQgaGF2ZSBkb25lIHlvdXIgYmVzdCB+fn4KPiA+Cj4gPiBMb3JkIEJhZGVuLVBvd2VsbAo+ID4KPiA+IE9uIE1vbiwgTm92IDI3LCAyMDE3IGF0IDEwOjIyIFBNLCBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+Cj4gPiB3cm90ZToKPiA+Cj4gPiA+IE15IGNvbW1hbmQgKm12biBjbGVhbiogaXMgbm90IGFibGUgdG8gZG93bmxvYWQgYSBuZXcgYXJ0aWZhY3QKPiA+ID4gKm9yZy5hcnF1aWxsaWFuLnVuaXZlcnNlOmFycXVpbGxpYW4tanVuaXQ6cG9tKgo+ID4gPiBob3dldmVyIGl0IGV4aXN0cyBvbiBNYXZlbiBDZW50cmFsLgo+ID4gPgo+ID4gPiBJIHJ1biB0aGUgY29tbWFuZCBvbiBVYnVudHUgS29uc29sZSwgYW5kIG5vdGhpbmcgaXMgZG93bmxvYWRlZC4KPiA+ID4gV2hlbiBJIHJ1biB3Z2V0IFsxXSBmcm9tIHRoZSBzYW1lIEtvbnNvbGUsIHRoZSBQT00gaXMgZG93bmxvYWRlZC4KPiA+ID4KPiA+ID4gVGhlIHNldHRpbmdzLnhtbCBpcyBub3QgYSBwcm9ibGVtLCBJIGNoZWNrZWQuIFRoZXJlIGlzIGEgbWlycm9yIG9mCj4gPiBjZW50cmFsCj4gPiA+IGFuZCBVUkwgb2YgTmV4dXMgaW4gY29tcGFueS4KPiA+ID4KPiA+ID4gSXMgdGhlcmUgYW55IG5hdGl2ZSBkaWZmZXJlbmNlIGJldHdlZW4gd2dldCBhbmQgbXZuL0phdmEgb24gVWJ1bnR1IHNvCj4gPiB0aGF0Cj4gPiA+IHRoZSByZW1vdGUgbWF2ZW5yZXBvIG1heSBub3QgYmUgcmVhY2hlZD8KPiA+ID4gSSBkaWQgc2V0dXAgb2YgL2V0Yy9lbnZpcm9ubWVudCwgL2V0Yy9uZXR3b3JrL2ludGVyZmFjZSwgfi8ucHJvZmlsZSBkdWUKPiA+IHRvCj4gPiA+IHByb3h5LCBETlMsIGh0dHBfbm9fcHJveHksIGV0Yy4gYnV0IG5vdGhpbmcgaGVscHMuCj4gPiA+Cj4gPiA+IEFueSBoaW50IHdvdWxkIGJlIGhlbHBmdWwgaGVyZS4KPiA+ID4gTUFWRU4gYW5kIEpBVkFfT1BUUyBpcyBub3Qgc2V0Lgo+ID4gPgo+ID4gPiBbMV06IHdnZXQKPiA+ID4gaHR0cDovL21hdmVucmVwby5hZHMubG9jYWwvbmV4dXMvY29udGVudC9ncm91cHMvcHVibGljLwo+ID4gPiBvcmcvYXJxdWlsbGlhbi9hcnF1aWxsaWFuLXVuaXZlcnNlLzEuMS4xMy43L2FycXVpbGxpYW4tCj4gPiA+IHVuaXZlcnNlLTEuMS4xMy43LnBvbQo+ID4gPgo+ID4gPiBUaHgKPiA+ID4gVGlib3IKPiA+ID4KPiA+Cj4KLS0gClRoYW5rcywKfnR+CgotLTA4OWUwODI4ZTBmNDcwZDg5MDA1NWYxMDEyNmUtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDg4OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgRGVjIDMwIDIzOjA1OjI2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg4OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBEREU0NTE3RDI3Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMzAgRGVjIDIwMTcgMjM6MDU6MjYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3MjAxNiBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMCBEZWMgMjAxNyAyMzowNToyNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzE5NDAgaW52b2tlZCBieSB1aWQgNTAwKTsgMzAgRGVjIDIwMTcgMjM6MDU6MjYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MTkyOSBpbnZva2VkIGJ5IHVpZCA5OSk7IDMwIERlYyAyMDE3IDIzOjA1OjI2IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDMwIERlYyAyMDE3IDIzOjA1OjI2ICswMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtbGYwLWY0My5nb29nbGUuY29tIChtYWlsLWxmMC1mNDMuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNS40M10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCBBMTZGNDFBMDBBNQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMzAgRGVjIDIwMTcgMjM6MDU6MjQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtbGYwLWY0My5nb29nbGUuY29tIHdpdGggU01UUCBpZCB5NzFzbzQ2OTA3bGZkLjEyCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMzAgRGVjIDIwMTcgMTU6MDU6MjMgLTA4MDAgKFBTVCkKWC1HbS1NZXNzYWdlLVN0YXRlOiBBS0dCM21JQ0JOUDNnUFFkcXh6bDBKUENzZUNSRDBXS3RHdVUxMk1QUzA5cTdHcjVPaWZuM0ZJQQoJdGdTQ1BrKzVaSFhBSzJJUDhmM1BqcmlURUtXWkhueDJIZ2RUUnJNPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUNKZkJvdHlVenUyRGdGY3I3TS81bHVOSzZqNjhhNmhtSGIrVjdCWEtwcE5kekJBeXpVdjhjVkJSbzhFQ3o1OVc1eVkrYmJVM29IQXNJL1cxb0VwelkvZUY1WT0KWC1SZWNlaXZlZDogYnkgMTAuNDYuMTE3LjIzIHdpdGggU01UUCBpZCBxMjNtcjIzMjc4MjI5bGpjLjg1LjE1MTQ2NzUxMTk5MDU7CiBTYXQsIDMwIERlYyAyMDE3IDE1OjA1OjE5IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzkuNi4xNTMgd2l0aCBIVFRQOyBTYXQsIDMwIERlYyAyMDE3IDE1OjA0OjU5IC0wODAwIChQU1QpCkluLVJlcGx5LVRvOiA8MTkxNzY3MTEuT3M3eHhLYjgzZkBnaWdhPgpSZWZlcmVuY2VzOiA8MjAwOTc2NTU5Mi4yMjk3MjIxNy4xNTE0MTA5MjU2NjMyLkphdmFNYWlsLnJvb3RAc3Bvb2xlcjQtZzI3PgogPG9wLnpicTJpaTFta2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PiA8MjU2NTg1NC5aZU00UERUWDRjQGdpZ2E+IDwxOTE3NjcxMS5Pczd4eEtiODNmQGdpZ2E+CkZyb206IE9saXZpZXIgTGFteSA8b2xhbXlAYXBhY2hlLm9yZz4KRGF0ZTogU3VuLCAzMSBEZWMgMjAxNyAxMDowNDo1OSArMTEwMApYLUdtYWlsLU9yaWdpbmFsLU1lc3NhZ2UtSUQ6IDxDQVBveUJxUTF2TVNUYWJ3K0JMby1iNzdWUXBGaHJBa002R2VRc2RDcHVKMjV3WlZYPXdAbWFpbC5nbWFpbC5jb20+Ck1lc3NhZ2UtSUQ6IDxDQVBveUJxUTF2TVNUYWJ3K0JMby1iNzdWUXBGaHJBa002R2VRc2RDcHVKMjV3WlZYPXdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbSU1QT1JUQU5UXSBSZTogR2l0IG1pZ3JhdGlvbiBuZXh0IHN0ZXBzClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjA4OWUwODJiNjI1Yzc4ZTE0MTA1NjE5NmM4ZTAiCgotLTA4OWUwODJiNjI1Yzc4ZTE0MTA1NjE5NmM4ZTAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKd29ya3MgZmluZSAob24gbXkgbWFjaGluZSA6LSkgKQpPU1ggKyBqYXZhIDEuOC4wXzEyMQoKV2VsbCBUQkggSSdtIGEgYml0IGxvc3Qgd2l0aCBKZW5raW5zIHJlc3VsdCBkaXNwbGF5Li4uLgpodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC9qb2IvbWF2ZW4tamF2YWQ9Cm9jLXBsdWdpbi9qb2IvbWFzdGVyLwoKd2hhdCBhcmUgYWxsIHRoZSBvcGVuIHRhc2tzIGxpbmtzPwoKSSdtIGV2ZW4gbW9yZSBsb3N0IElmIEkgbG9vayBhdCBhIGJ1aWxkIHJlc3VsdApodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC9qb2IvbWF2ZW4tamF2YWQ9Cm9jLXBsdWdpbi9qb2IvbWFzdGVyLzMvCmNoYW5nZXMgYXJlIGR1cGxpY2F0ZWQKanVuaXQgcmVzdWx0IHNheXMgZmFpbHVyZQpodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC9qb2IvbWF2ZW4tamF2YWQ9Cm9jLXBsdWdpbi9qb2IvbWFzdGVyLzMvdGVzdFJlcG9ydC8KYnV0IGxvb2tpbmcgYXQgZmFpbGVkIHRlc3QgcmVzdWx0IHNheXMgcGFzc2VkCmh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tYm94L2pvYi9tYXZlbi1qYXZhZD0Kb2MtcGx1Z2luL2pvYi9tYXN0ZXIvMy90ZXN0UmVwb3J0L29yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy5qYXZhZG9jL0phdmFkb2NSPQplcG9ydFRlc3QvdGVzdEphdmFkb2NSZXNvdXJjZXMvCgpBcyBJIGNhbiB1bmRlcnN0YW5kIGFsbCBidWlsZCBsb2dzIChsaW51eC93aW5kb3dzIHdpdGggZGlmZmVyZW50IGpka3MpIGFyZQp0b3RhbGx5IG1peGVkIHVwIGFsbCB0b2dldGhlcgpodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLWJveC9qb2IvbWF2ZW4tamF2YWQ9Cm9jLXBsdWdpbi9qb2IvbWFzdGVyLzMvY29uc29sZUZ1bGwKVEJIIGl0IGEgcmVhbGx5IGJpZyBwYWluIHRvIHJlYWQhISBJIGRvbid0IHdhbnQgdG8gc3BlbmQgaG91cnMgb24gdGhhdC4uLi4uClNvIGFmdGVyIHdhc3RpbmcgYSBiaXQgb2YgdGltZSBpdCBsb29rcyB0aGUgYnVpbGQgaXMgZmFpbGluZyBvbiB3aW5kb3dzIG9ubD0KeQoKW3dpbmRvd3MtamRrOF0gW1dBUk5JTkddIFRoZSBmb2xsb3dpbmcgYnVpbGRzIGZhaWxlZDpbd2luZG93cy1qZGs4XQpbV0FSTklOR10gKiAgZGV0ZWN0TGlua3NccG9tLnhtbAoKClt3aW5kb3dzLWpkazddIFtXQVJOSU5HXSBUaGUgZm9sbG93aW5nIGJ1aWxkcyBmYWlsZWQ6Cgpbd2luZG93cy1qZGs3XSBbV0FSTklOR10gKiAgZGV0ZWN0TGlua3NccG9tLnhtbAoKCkhvbmVzdGx5IHRoZSBjdXJyZW50IGplbmtpbnMgcmVzdWx0IGlzIGNvbXBsaWNhdGVkIHRvIHVzZS4uLi4KQW5kIGFzIGZhciBJIGNhbiBzZWUgU05BUFNIT1QgYXJlIG5vdCBhbnltb3JlIGRlcGxveWVkIHdoZXJlYXMgdGhleSB3ZXJlCmRlcGxveWVkIHByZXZpb3VzbHkuCklNSE8gaXQncyB2ZXJ5IGNvbnZlbmllbnQgYXMgc29tZSB1c2VycyB0ZXN0IG91ciBmaXhlcy4uLi4KCkBoZXJ2ZSBkbyB5b3UgaGF2ZSBhbnkgbG9ncyByZWdhcmRpbmcgdGhlIGJ1aWxkIGZhaWxpbmcgZm9yIHlvdS4KCk9uIDMwIERlY2VtYmVyIDIwMTcgYXQgMjA6NTEsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cj0Kb3RlOgoKPiBtZXJnZSBkb25lOiBjYW4geW91IGNoZWNrIGl0J3MgYXMgeW91IGV4cGVjdGVkPwo+Cj4gbm90aWNlIHRoYXQgaWYgeW91IGhhdmUgZmFpbGluZyBJVCBvbiBNSkFWQURPQy01MDggbGlrZSBJIGhhdmUgbG9jYWxseSwKPiBpdCdzCj4gbm90IHRoZSBtZXJnZSBidXQgaXQgd2FzIGFscmVhZHkgcHJlc2VudCBiZWZvcmUKPgo+IEBPbGl2aWVyOiBJIGRvbid0IGtub3cgaW4gd2hpY2ggY29uZGl0aW9ucyB5b3UgdGVzdGVkIE1KQVZBRE9DLTUwOCwgYnV0IGk9CnQKPiBpcwo+IGZhaWxpbmcgZm9yIG1lOiBMaW51eCtKYXZhIDcKPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUMzPUE5Cj4KPiBMZSBqZXVkaSAyOCBkPUMzPUE5Y2VtYnJlIDIwMTcsIDA5OjQ4OjMxIENFVCBIZXJ2PUMzPUE5IEJPVVRFTVkgYSA9QzM9QTljPQpyaXQgOgo+ID4gb24gbWF2ZW4tamF2YWRvYy1wbHVnaW46IHdoYXQgYWJvdXQgbWVyZ2luZyBtYXN0ZXIyIGJyYW5jaCBpbnRvIG1hc3RlciwKPiBsaWtlCj4gPiBpZiBpdCB3YXMgYSBQUj8KPiA+IEluIGdlbmVyYWwsIEkgZG9uJ3QgbGlrZSB0aGlzIHdheSBvZiBkb2luZyBQUiBtZXJnZXMgKEkgcHJlZmVyIHJlYmFzaW5nCj4gb3IKPiA+IGNoZXJyeSBwaWNraW5nLCB0byBhdm9pZCB0aGUgbWVyZ2UgY29tbWl0IGFuZCB0aGUgcGFyYWxsZWwgYnJhbmNoZXMKPiBzdGF5aW5nCj4gPiBmb3IgZXZlciBpbiB0aGUgcmVwbyksIGJ1dCBzaW5jZSB0aGlzIHdheSBvZiBtZXJnaW5nIFBScyBpcyBvZnRlbiB1c2VkID0KYnkKPiA+IHRoZSB0ZWFtLCBsZXQncyB1c2UgdGhpcyB0ZWNobmlxdWUgb24gdGhlIGN1cnJlbnQgY2FzZSB3aGVyZSBpdCBtYWtlcyBvPQp1cgo+ID4gbGlmZSBlYXNpZXIKPiA+Cj4gPiBSZWdhcmRzLAo+ID4KPiA+IEhlcnY9QzM9QTkKPiA+Cj4gPiBMZSBkaW1hbmNoZSAyNCBkPUMzPUE5Y2VtYnJlIDIwMTcsIDEzOjA0OjU2IENFVCBSb2JlcnQgU2Nob2x0ZSBhID1DMz1BOT0KY3JpdCA6Cj4gPiA+IEkgZGlkIHRoZSBhc3N1bXB0aW9uIHRoYXQgeW91IGNhbiBpc29sYXRlIGFsbCBtYXZlbi1qYXZhZG9jLXBsdWdpbgo+ID4gPiBjb21taXRzLgo+ID4gPiBJZiBpdCBpcyBmb3IgYWxsIG1hdmVuLXBsdWdpbnMgb3Igbm90aGluZywgdGhlbiBpdCBpcyBhIGRpZmZlcmVudAo+IHN0b3J5Lgo+ID4gPgo+ID4gPiBPbiBTdW4sIDI0IERlYyAyMDE3IDEwOjU0OjE2ICswMTAwLCA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cm90ZToKPiA+ID4gPiBJJ2Qgc3VnZ2VzdCB0byB0cnkgdGhlIHByb2Nlc3MgdG8gYSBwZXJzb25hbCBwZXJzb25hbCByZXBvIG9uIEdpdEh1PQpiCj4gdG8KPiA+ID4gPiBzZWUgaWYgeW91J3JlIGFibGUgdG8gZ2V0IGEgYmV0dGVyIHJlc3VsdCBiZWZvcmUgaW52b2x2aW5nIG1hbnVhbAo+IHdvcmsKPiA+ID4gPiBmcm9tIElORlJBIChvbiBtb3JlIHRoYW4gNjAgcmVwb3MuLi4pCj4gPiA+ID4KPiA+ID4gPiAoaXQncyBzYWQgdG8gc2VlIG5vYm9keSB0cnkgdG8gZXhwbGFpbiB3aGF0J3MgaGFwcGVubmluZyBvciBpbXByb3ZlCj4gdGhlCj4gPiA+ID4gZG9jdW1lbnRlZCBjb21tYW5kcywganVzdCBnZXQgdG8gYSBjb25jbHVzaW9uOiByZS1kbyBldmVyeXRoaW5nIGFuZAo+ID4gPiA+IHByYXkpCj4gPiA+ID4KPiA+ID4gPiBSZWdhcmRzLAo+ID4gPiA+Cj4gPiA+ID4gSGVydj1DMz1BOQo+ID4gPiA+Cj4gPiA+ID4gLS0tLS0gTWFpbCBvcmlnaW5hbCAtLS0tLQo+ID4gPiA+IERlOiAiS2FybCBIZWlueiBNYXJiYWlzZSIgPGtobWFyYmFpc2VAZ214LmRlPgo+ID4gPiA+ID1DMz04MDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwgIlJvYmVydCBTY2g9Cm9sdGUiCj4gPiA+ID4gPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgo+ID4gPiA+IEVudm95PUMzPUE5OiBEaW1hbmNoZSAyNCBEPUMzPUE5Y2VtYnJlIDIwMTcgMTA6NDc6NDMKPiA+ID4gPiBPYmpldDogUmU6IFtJTVBPUlRBTlRdIFJlOiBHaXQgbWlncmF0aW9uIG5leHQgc3RlcHMKPiA+ID4gPgo+ID4gPiA+IEhpLAo+ID4gPiA+Cj4gPiA+ID4gT24gMjQvMTIvMTcgMTA6NDAsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+ID4gPiA+PiBIb3cgYWJvdXQgYSBoYXJkIHJlc2V0IG9yIGRyb3BwaW5nIHRoZSByZXBvIGFuZCBkb2luZyBpdCBhbGwgb3Zlcgo+ID4gPiA+PiBhZ2Fpbj8KPiA+ID4gPgo+ID4gPiA+IElmIEkgY29ycmVjdGx5IHNlZW4gdGhhdCAuLnRoZXJlIGhhZCBubyBjb21taXQgeWV0IG9uIHRoZSBuZXcgZ2l0Cj4gPiA+ID4gcmVwb3MuLgo+ID4gPiA+Cj4gPiA+ID4gU28gSSB0aGluayBpdCB3b3VsZCBiZSB0aGUgZWFzaWVzdCB3YXkgdG8gZG8gYXMgUm9iZXJ0IHN1Z2dlc3QgLi4udD0Kbwo+ID4gPiA+IHJlZG8gbWlncmF0aW9uIGZvciB0aG9zZSByZXBvcy4uCj4gPiA+ID4KPiA+ID4gPiBLaW5kIHJlZ2FyZHMKPiA+ID4gPiBLYXJsIEhlaW56Cj4gPiA+ID4KPiA+ID4gPj4gT24gV2VkLCAyMCBEZWMgMjAxNyAxMDo0MjozNiArMDEwMCwgSGVydj1DMz1BOSBCT1VURU1ZCj4gPiA+ID4+Cj4gPiA+ID4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdyb3RlOgo+ID4gPiA+Pj4gSU5GUkEtMTU2NzkgZml4ZWQgYnkgaW5mcmEgdGVhbQo+ID4gPiA+Pj4gdGhlbiBJIHJlLXJ1biBtaWdyYXRlLXBsdWdpbnMuc2ggc2NyaXB0IHRvIHNwbGl0IHRoZSBzdm4yZ2l0Cj4gbWlycm9yIHRvCj4gPiA+ID4+PiBwZXItCj4gPiA+ID4+PiBwbHVnaW4gZ2l0IHJlcG8KPiA+ID4gPj4+IGFuZCBJIHB1c2hlZCAibWFzdGVyMiIgYnJhbmNoZXMgZm9yIG0tamF2YWRvYy1wLCBtLXNpdGUtcCBhbmQKPiBtLXBkZi1wLAo+ID4gPiA+Pj4gd2hpY2gKPiA+ID4gPj4+IHdlcmUgdGhlIDMgcGx1Z2lucyB3aGljaCBzdWZmZXJlZCBmcm9tIG1pc3NpbmcgY29tbWl0cwo+ID4gPiA+Pj4KPiA+ID4gPj4+IG9uIG0tc2l0ZS1wIGFuZCBtLXBkZi1wLCBJJ2xsIGNoZXJyeSBwaWNrIHRoZSB1bmlxdWUgY29tbWl0IHRoYXQKPiB3YXMKPiA+ID4gPj4+IG1pc3NlZDoKPiA+ID4gPj4+IG5vdCBhIGJpZyBkZWFsCj4gPiA+ID4+Pgo+ID4gPiA+Pj4gb24gbS1qYXZhZG9jLXAsIHRoZSBzaXR1YXRpb24gaXMgbW9yZSBjb3BsZXgsIHNpbmNlIHRoZXJlIHdhcyBhCj4gPiA+ID4+PiByZWxlYXNlCj4gPiA+ID4+Pgo+ID4gPiA+Pj4gSSBhbHNvIG5vdGljZWQgdGhhdCBJIGZvcmdvdCB0byBwdXNoIHRhZ3Mgd2hlbiBpbXBvcnRpbmc6IEkKPiBzdGFydGVkIHRvCj4gPiA+ID4+PiBkbyAiZ2l0Cj4gPiA+ID4+PiBwdXNoIC0tdGFncyIsIGJ1dCB0aGUgcmVzdWx0IGRvZXMgbm90IGxvb2sgYXMgSSBleHBlY3RlZDogaXQKPiBjcmVhdGVzIGEKPiA+ID4gPj4+IGxvdCBvZgo+ID4gPiA+Pj4gcGFyYWxsZWwgYnJhbmNoZXMKPiA+ID4gPj4+Cj4gPiA+ID4+PiBJJ2xsIG5lZWQgaGVscCBmcm9tIGdpdCBleHBlcnRzOiB3aGF0IGlzIGhhcHBlbmluZz8KPiA+ID4gPj4+Cj4gPiA+ID4+PiBJIHN0b3BwZWQgdGhlIHRhZ3MgcHVzaCBoYWxmIHRoZSB3YXksIHdlJ2xsIG5lZWQgdG8gZGVjaWRlIHdoYXQgdD0Kbwo+ID4gPiA+Pj4gZG8uLi4KPiA+ID4gPj4+IChJIGtuZXcgSSB3YXMgbm90IGEgZ2l0IGV4cGVydCBhbmQgdGhlcmUgd2FzIGEgcmlzayBmb3Igc29tZXRoaW5nCj4gPiA+ID4+PiB3ZWlyZCBsaWtlCj4gPiA+ID4+PiB3aGF0J3MgY3VycmVudGx5IGhhcHBlbmluZy4uLikKPiA+ID4gPj4+Cj4gPiA+ID4+PiBBbnkgaGludD8KPiA+ID4gPj4+Cj4gPiA+ID4+PiBSZWdhcmRzLAo+ID4gPiA+Pj4KPiA+ID4gPj4+IEhlcnY9QzM9QTkKPiA+ID4gPj4+Cj4gPiA+ID4+PiBMZSBzYW1lZGkgMTYgZD1DMz1BOWNlbWJyZSAyMDE3LCAxNjoyODo0OCBDRVQgSGVydj1DMz1BOSBCT1VURU1ZID0KYSA9QzM9QTljcml0IDoKPiA+ID4gPj4+PiBvaywgSSB3YXMgY29uZnVzZWQgYnkgdGhlIGRpZmZlcmVudCB0YWtlcyBhdCBtLWphdmFkb2MtcCAzLjAuMAo+ID4gPiA+Pj4+Cj4gPiA+ID4+Pj4geWVzLCBzdm4yZ2l0IG1pcnJvciBpcyBzdHVjayBbMV0gYXQgcjE4MTU2NzUKPiA+ID4gPj4+Pgo+ID4gPiA+Pj4+IEkganVzdCBvcGVuZWQgYW4gSU5GUkEgSmlyYSBpc3N1ZQo+ID4gPiA+Pj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvSU5GUkEtMTU2NzkKPiA+ID4gPj4+Pgo+ID4gPiA+Pj4+IG9uY2UgdGhlIHN2bjJnaXQgbWlycm9yIHdpbGwgYmUgdXBkYXRlZCwgd2UnbGwgaGF2ZSB0byByZS1ydW4gdGg9CmUKPiA+ID4gPj4+PiBzcGxpdAo+ID4gPiA+Pj4+IHNjcmlwdHMgYW5kIGNoZXJyeSBwaWNrIHRoZSBtaXNzaW5nIGNvbW1pdHMKPiA+ID4gPj4+Pgo+ID4gPiA+Pj4+IFJlZ2FyZHMsCj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiBIZXJ2PUMzPUE5Cj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiBbMV0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL2NvbW1pdHMvdHJ1bmsKPiA+ID4gPj4+Pgo+ID4gPiA+Pj4+IExlIHNhbWVkaSAxNiBkPUMzPUE5Y2VtYnJlIDIwMTcsIDEzOjAxOjA1IENFVCBSb2JlcnQgU2Nob2x0ZSBhID0KPUMzPUE5Y3JpdCA6Cj4gPiA+ID4+Pj4gPiBJIHdhcyB0cmlnZ2VyZWQgYnkgc29tZSBmYWlsaW5nIHVuaXQgdGVzdHMsIHdoaWNoIHNob3VsZCBoYXZlCj4gYmVlbgo+ID4gPiA+Pj4+Cj4gPiA+ID4+Pj4gc29sdmVkCj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiA+IGluIG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wCj4gPiA+ID4+Pj4gPgo+ID4gPiA+Pj4+ID4gTXkgbGFzdCBjb21taXQgYWNjb3JkaW5nIHRvIEdJVCB3YXMgbm92ZW1iZXIgMTh0aAo+ID4gPiA+Pj4+ID4gTXkgbGFzdCBjb21taXQgYWNjb3JkaW5nIHRvIFNWTiB3YXMgZGVjZW1iZXIgM3JkCj4gPiA+ID4+Pj4gPgo+ID4gPiA+Pj4+ID4gY29tcGFyaW5nIHN2bmxvZyB3aXRoIGdpdGxvZyBtb3N0IG9mIHRoZXNlIGNvbW1pdHMgYXJlIGxvc3Q6Cj4gPiA+ID4+Pj4gPgo+ID4gPiA+Pj4+ID4gbW92ZWQgdG8gZ2l0Cj4gPiA+ID4+Pj4gPiAtLS0tCj4gPiA+ID4+Pj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgZm9yIG5leHQgZGV2ZWxvcG1lbnQgaXRlcmF0aW9uCj4gPiA+ID4+Pj4gPiAtLS0tCj4gPiA+ID4+Pj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgcmVsZWFzZQo+IG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wCj4gPiA+ID4+Pj4gPiAtLS0tCj4gPiA+ID4+Pj4gPiBbTUpBVkFET0MtNDk4XSAibW9kdWxlIG5vdCBmb3VuZCIgd2hlbiBKYXZhIDkgbW9kdWxlLWluZm8KPiBwcmVzZW50Cj4gPiA+ID4+Pj4gPiBTdXBwb3J0IGFnZ3JhdGVkIGphdmFkb2MKPiA+ID4gPj4+PiA+IC0tLS0KPiA+ID4gPj4+PiA+IFNraXAgc2V2ZXJhbCB1bml0dGVzdHMgZm9yIEphdmE5Cj4gPiA+ID4+Pj4gPiAtLS0tCj4gPiA+ID4+Pj4gPiBKREstODAzMjIwNSB3YXMgY2xvc2VkIGFzIG5vdCBhbiBpc3N1ZSwgc28gbm90IHNvbHZlZCBpbiBKYXZhOT0KLgo+ID4gPiA+Pj4+ID4gTmVlZCB0byByZXZpZXcgdGhlIGNvbmNsdXNpb24KPiA+ID4gPj4+PiA+IC0tLS0KPiA+ID4gPj4+PiA+IFVwZ3JhZGUgbW9ja2l0byB0byByZW1vdmUgd2FybmluZyBhYm91dCBpbGxlZ2FsIHJlZmxlY3RpdmUKPiBhY2Nlc3MKPiA+ID4gPj4+PiA+IC0tLS0KPiA+ID4gPj4+PiA+IEltcHJvdmUgVGVzdEphdmFkb2NSZXBvcnRUZXN0I3Rlc3RUZXN0SmF2YWRvYwo+ID4gPiA+Pj4+ID4gSjggd2FybnMgYW5kIGNvbnRpbnVlcyB3aXRoIG1pc3NpbmcgZGVwZW5kZW5jeSwgSjkgZmFpbHMuCj4gPiA+ID4+Pj4gPiBJbiBmYWN0IHRlc3Qgd2FzIHdyb25nOiBkZXBlbmRlbmN5IHNob3VsZCBoYXZlIGJlZW4gb24gY2xhc3NwYT0KdGgKPiA+ID4gPj4+PiA+IC0tLS0KPiA+ID4gPj4+PiA+IHVuaXR0ZXN0IHNob3VsZCBwcmVmZXIgSkFWQV9IT01FIHdoZW4gZXhlY3V0aW5nIGZyb20gY21kbGluZQo+ID4gPiA+Pj4+ID4gV2hlbiBydW5uaW5nIHdpdGggSmF2YTkrIG5vIG5lZWQgdG8gc3dpdGNoIGZyb20ganJlIHRvIGpkawo+ID4gPiA+Pj4+ID4gZGlyZWN0b3J5Cj4gPiA+ID4+Pj4gPiAoamVwMjIwKQo+ID4gPiA+Pj4+ID4gLS0tLQo+ID4gPiA+Pj4+ID4gTUpBVkFET0MtNTAyIFVwZGF0ZSBERUZBVUxUX0pBVkFfQVBJX0xJTktTCj4gPiA+ID4+Pj4gPiAtLS0tCj4gPiA+ID4+Pj4gPiBzZXNzaW9uIGlzIHJlcXVpcmVkIHBhcmFtZXRlciwgc28gY2Fubm90IGJlIG51bGwuIEZpeCByZWxhdGVkCj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiB1bml0dGVzdHMKPiA+ID4gPj4+Pgo+ID4gPiA+Pj4+ID4gLS0tLQo+ID4gPiA+Pj4+ID4gQWRkIHByb2plY3QvYXJ0aWZhY3Qga2V5IHRvIHNldCBvZiBzb3VyY2VQYXRocyB0byByZWNvZ25pemUKPiByZWFjdG9yCj4gPiA+ID4+Pj4gPiBwcm9qZWN0cyB2ZXJzdXMgZGVwZW5kZW5jaWVzCj4gPiA+ID4+Pj4gPiAtLS0tCj4gPiA+ID4+Pj4gPiBHcm91cCBzZXRzIG9mIHNvdXJjZXBhdGhzIHBlciBwcm9qZWN0LCBpbiBwcmVwYXJlIG9mIHVzYWdlIG9mCj4gPiA+ID4+Pj4gPiBtb2R1bGUtc291cmNlLXBhdGguCj4gPiA+ID4+Pj4gPiAtLS0tCj4gPiA+ID4+Pj4gPiBTd2l0Y2ggZnJvbSBMaXN0IHRvIENvbGxlY3Rpb24gdG8gbWFrZSBpdCBlYXNpZXIgdG8gdXNlIFNldHMKPiB3aGVuCj4gPiA+ID4+Pj4gPiBwcmVmZXJyZWQKPiA+ID4gPj4+PiA+IC0tLS0KPiA+ID4gPj4+PiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSBmb3IgbmV4dCBkZXZlbG9wbWVudCBpdGVyYXRpb24KPiA+ID4gPj4+PiA+IC0tLS0KPiA+ID4gPj4+PiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSByZWxlYXNlCj4gbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAKPiA+ID4gPj4+PiA+IC0tLS0KPiA+ID4gPj4+PiA+Cj4gPiA+ID4+Pj4gPgo+ID4gPiA+Pj4+ID4KPiA+ID4gPj4+PiA+Cj4gPiA+ID4+Pj4gPiBPbiBTYXQsIDE2IERlYyAyMDE3IDEyOjUzOjIzICswMTAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkKPiA+ID4gPj4+Pgo+ID4gPiA+Pj4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiA+IHdyb3RlOgo+ID4gPiA+Pj4+ID4gPiBsb29raW5nIGF0IGNvbW1pdHNAIGNvbnRlbnQgaHR0cHM6Ly9saXN0cy5hcGFjaGUub3JnL2xpc3QuCj4gaHRtbD8KPiA+ID4gPj4+PiA+ID4gY29tbWl0c0BtYXZlbi5hcGFjaGUub3JnIHdpdGggc3ViamVjdCBjb250YWluaW5nCj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiAibWF2ZW4vcGx1Z2lucy90cnVuayIKPiA+ID4gPj4+Pgo+ID4gPiA+Pj4+ID4gPiBhbmQgcGx1Z2lucyBzdm4yZ2l0IG1pcnJvcgo+ID4gPiA+Pj4+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvY29tbWl0cy8KPiA+ID4gPj4+PiA+ID4gdHJ1bmsKPiA+ID4gPj4+PiA+ID4KPiA+ID4gPj4+PiA+ID4gb25seSAxIGNvbW1pdCBpcyBtaXNzaW5nOiBteSBsYXRlc3QgY29tbWl0IG9uCj4gbWF2ZW4tc2l0ZS1wbHVnaW4KPiA+ID4gPj4+PiA+ID4gKHRoZSBsYXN0IGNvbW1pdCBmb3IgR2l0IG1pZ3JhdGlvbiBpcyBub3QgdXNlZnVsKQo+ID4gPiA+Pj4+ID4gPgo+ID4gPiA+Pj4+ID4gPgo+ID4gPiA+Pj4+ID4gPiBTYW1lIG9uIHNoYXJlZCBzaG93ZWQgbm8gbWlzc2luZyBjb21taXQuCj4gPiA+ID4+Pj4gPiA+Cj4gPiA+ID4+Pj4gPiA+Cj4gPiA+ID4+Pj4gPiA+IHdoYXQgbGF0ZXN0IGNvbW1pdCBvZiBtYXZlbi1qYXZhZG9jLXBsdWdpbiBhcmUgeW91IGxvb2tpbmcKPiBmb3I/Cj4gPiA+ID4+Pj4gPiA+Cj4gPiA+ID4+Pj4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4+Pj4gPiA+Cj4gPiA+ID4+Pj4gPiA+IEhlcnY9QzM9QTkKPiA+ID4gPj4+PiA+ID4KPiA+ID4gPj4+PiA+ID4gTGUgc2FtZWRpIDE2IGQ9QzM9QTljZW1icmUgMjAxNywgMTE6NTY6MzEgQ0VUIFJvYmVydCBTY2hvbHRlPQogYQo+ID1DMz1BOWNyaXQgOgo+ID4gPiA+Pj4+ID4gPj4gRm9yIGV2ZXJ5Ym9keSBqdXN0IGEgd2FybmluZyBJIGZhY2VkIHRvZGF5Ogo+ID4gPiA+Pj4+ID4gPj4gSWYgeW91IHN3aXRjaCB0byB0aGUgZ2l0IHJlcG9zLCBwbGVhc2UgbWFrZSBzdXJlIGFsbCBjb21taXQ9CnMKPiBhcmUKPiA+ID4gPj4+PiA+ID4+IG1pZ3JhdGVkLgo+ID4gPiA+Pj4+ID4gPj4gSSBub3RpY2VkIHRoZSBsYXRlc3QgY29tbWl0cyBvZiB0aGUgbWF2ZW4tamF2YWRvYy1wbHVnaW4gZ289CnQKPiA+ID4gPj4+Pgo+ID4gPiA+Pj4+IGxvc3QuCj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiA+ID4+IHRoYW5rcywKPiA+ID4gPj4+PiA+ID4+IFJvYmVydAo+ID4gPiA+Pj4+ID4gPj4KPiA+ID4gPj4+PiA+ID4+IE9uIFNhdCwgMDkgRGVjIDIwMTcgMTc6MDY6MDkgKzAxMDAsIFN0ZXBoZW4gQ29ubm9sbHkKPiA+ID4gPj4+PiA+ID4+Cj4gPiA+ID4+Pj4gPiA+PiA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiA+ID4+Pj4gPiA+PiA+IEkgc2VlIHdlIGhhdmUgYSBsYXJnZSBudW1iZXIgb2YgcmVwb3Mgbm93IG9uIGdpdGJveCA7LSkKPiA+ID4gPj4+PiA+ID4+ID4KPiA+ID4gPj4+PiA+ID4+ID4gT24gVGh1IDcgRGVjIDIwMTcgYXQgMDc6MDAsIEhlcnY9QzM9QTkgQk9VVEVNWQo+ID4gPiA+Pj4+Cj4gPiA+ID4+Pj4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPiA+ID4gPj4+Pgo+ID4gPiA+Pj4+ID4gPj4gd3JvdGU6Cj4gPiA+ID4+Pj4gPiA+PiA+PiBvaywgSSBkaWRuJ3QgdXBkYXRlIG15IHJlcG8gY2xvbmU6IG5vdyB0aGUgcnVuLWl0cwo+IHByb2ZpbGUgaXMKPiA+ID4gPj4+PiA+ID4+Cj4gPiA+ID4+Pj4gPiA+PiBhY3RpdmF0ZWQKPiA+ID4gPj4+PiA+ID4+Cj4gPiA+ID4+Pj4gPiA+PiA+PiB0aGVuIHRoZSBwbGFuIHNob3VsZCBqdXN0IGNvbmZpcm0gIml0IHdvcmtzISIgOikKPiA+ID4gPj4+PiA+ID4+ID4+Cj4gPiA+ID4+Pj4gPiA+PiA+PiBhbmQgZmluZCB3aGljaCBqb2JzIGFyZSBzcGVjaWFsLCBsaWtlIG1hdmVuLWRpc3QtdG9vbAo+ICh3aGljaAo+ID4gPiA+Pj4+Cj4gPiA+ID4+Pj4gaGFzIHRvCj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiA+ID4+IGJlCj4gPiA+ID4+Pj4gPiA+Pgo+ID4gPiA+Pj4+ID4gPj4gPj4gc2NoZWR1bGVkIGRhaWx5IGluc3RlYWQgb2YgY29kZSBjaGFuZ2UsIGFuZCBvbmUgcGxhdGZvcm0KPiA+ID4gPj4+PiA+ID4+ID4+IG9ubHkpCj4gPiA+ID4+Pj4gPiA+PiA+Pgo+ID4gPiA+Pj4+ID4gPj4gPj4gUmVnYXJkcywKPiA+ID4gPj4+PiA+ID4+ID4+Cj4gPiA+ID4+Pj4gPiA+PiA+PiBIZXJ2PUMzPUE5Cj4gPiA+ID4+Pj4gPiA+PiA+Pgo+ID4gPiA+Pj4+ID4gPj4gPj4gTGUgbWVyY3JlZGkgNiBkPUMzPUE5Y2VtYnJlIDIwMTcsIDIzOjU4OjQ1IENFVCBTdGVwaGVuCj4gQ29ubm9sbHkgYQo+ID4gPiA+Pj4+Cj4gPiA+ID4+Pj4gPUMzPUE5Y3JpdCA6Cj4gPiA+ID4+Pj4gPiA+PiA+PiA+IE9uIFdlZCA2IERlYyAyMDE3IGF0IDIyOjM4LCBIZXJ2PUMzPUE5IEJPVVRFTVkKPiA+ID4gPj4+Pgo+ID4gPiA+Pj4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiA+ID4+ID4+IHdyb3RlOgo+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IE5vdyB0aGF0IHdlIGhhdmUgMiBBU0YgT3JnYW5pemF0aW9uIEplbmtpbnMgam9icyAob249CmUKPiBmb3IKPiA+ID4gPj4+Pgo+ID4gPiA+Pj4+IGdpdGJveAo+ID4gPiA+Pj4+Cj4gPiA+ID4+Pj4gPiA+PiBbMV0KPiA+ID4gPj4+PiA+ID4+Cj4gPiA+ID4+Pj4gPiA+PiA+PiBhbmQKPiA+ID4gPj4+PiA+ID4+ID4+Cj4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gb25lCj4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gZm9yIGdpdC13aXA6IHRoYW5rIHlvdSBTdGVwaGVuKSBhbmQgdGhhdCBpdCBsb29rcwo+IHF1aXRlCj4gPiA+ID4+Pj4gPiA+Pgo+ID4gPiA+Pj4+ID4gPj4gc3VjY2Vzc2Z1bCwKPiA+ID4gPj4+PiA+ID4+Cj4gPiA+ID4+Pj4gPiA+PiA+PiBsZXQncwo+ID4gPiA+Pj4+ID4gPj4gPj4KPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBwbGFuCj4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gdGhlIG5leHQgc3RlcHMuCj4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4KPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBIZXJlIGlzIHdoYXQgSSBzZWU6Cj4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gMS4gcmVtb3ZhbCBvZiBoYW5kLWRlZmluZWQgSmVua2lucyBqb2JzIHRoYXQgYXJlIG5vdwo+ID4gPiA+Pj4+Cj4gPiA+ID4+Pj4gZHVwbGljYXRlcwo+ID4gPiA+Pj4+Cj4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gMi4gcHJlcGFyYXRpb24gb2YgdGhlIDYwIG5ldyBlbXB0eSBnaXQgcmVwb3MgZm9yCj4gc2hhcmVkICYKPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBwbHVnaW5zCj4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4KPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiAzLiBtaWdyYXRpb24gb2YgdGhlIDEgc2hhcmVkIGNvbXBvbmVudCBhbmQgMSBwbHVnaW4KPiB1c2luZwo+ID4gPiA+Pj4+ID4gPj4gPj4KPiA+ID4gPj4+PiA+ID4+ID4+IG1pZ3JhdGUtKi5zaAo+ID4gPiA+Pj4+ID4gPj4gPj4KPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBzY3JpcHRzCj4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gWzNdIHRvIHRlc3QgYW5kIGV2ZW50dWFsbHkgcmV3b3JrIHRoZSBKZW5raW5zZmlsZSAoSQo+ID4gPiA+Pj4+Cj4gPiA+ID4+Pj4gc3VwcG9zZSBpdAo+ID4gPiA+Pj4+Cj4gPiA+ID4+Pj4gPiA+PiB3aWxsCj4gPiA+ID4+Pj4gPiA+Pgo+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IHJlcXVpcmUKPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBzb21lIGxpdHRsZSBjaGFuZ2UsIHRvIHJ1biBhZGQgInJ1bi1pdHMiIHByb2ZpbGUpCj4gPiA+ID4+Pj4gPiA+PiA+PiA+Cj4gPiA+ID4+Pj4gPiA+PiA+PiA+IEFzIGZhciBhcyBJIHJlY2FsbCwgSSBhZGRlZCAtUCtydW4taXRzIGFscmVhZHkKPiA+ID4gPj4+PiA+ID4+ID4+ID4KPiA+ID4gPj4+PiA+ID4+ID4+ID4gRm9yIHRoZSBwbHVnaW4sIEknZCBsaWtlIHRvIGRvIHRoZSBqb2IgZm9yCj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiBtYXZlbi1zaXRlLXBsdWdpbiwKPiA+ID4gPj4+Pgo+ID4gPiA+Pj4+ID4gPj4gc2luY2Ugd2UKPiA+ID4gPj4+PiA+ID4+Cj4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gZXhwZWN0Cj4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gdG8gcmVsZWFzZSBpdCBzb29uLgo+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IEZvciB0aGUgc2hhcmVkIGNvbXBvbmVudCwgSSBkb24ndCBrbm93IGlmIHRoZXJlIGlzIGEKPiBiZXN0Cj4gPiA+ID4+Pj4gPiA+Pgo+ID4gPiA+Pj4+ID4gPj4gY2FuZGlkYXRlCj4gPiA+ID4+Pj4gPiA+Pgo+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IDQuIG9uY2UgcHJldmlvdXMgc3RlcCBpcyBvaywgZG8gdGhlIGZ1bGwgbWlncmF0aW9uOiA9CmlmCj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiB0aGVyZSBhcmUKPiA+ID4gPj4+Pgo+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IHZvbHVudGVlcnMKPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBmb3IgaGVscGluZywgdGhhdCB3b3VsZCBiZSBncmVhdCwgc2luY2UgcG9wdWxhdGluZyA2PQowCj4gZ2l0Cj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiByZXBvcwo+ID4gPiA+Pj4+Cj4gPiA+ID4+Pj4gPiA+PiA+PiB3b24ndAo+ID4gPiA+Pj4+ID4gPj4gPj4gYmUKPiA+ID4gPj4+PiA+ID4+ID4+Cj4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gcmVhbGx5IGZ1bi4uLgo+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+Cj4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gQW5kIGFzIHBhcnQgb2YgNjAgZW1wdHkgZ2l0IHJlcG9zIGNyZWF0aW9uLCBJIHByb3Bvcz0KZQo+IHRvCj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiBtaWdyYXRlCj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiA+ID4+IHRoZQo+ID4gPiA+Pj4+ID4gPj4KPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiAiR29vZ2xlCj4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gcmVwbyBtYW5pZmVzdCIgbWF2ZW4tYWdncmVnYXRvciBbNF0gdG8gQVNGOiBteQo+IHBlcnNvbmFsCj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiB1c2UgaGFzCj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiA+ID4+IGJlZW4KPiA+ID4gPj4+PiA+ID4+Cj4gPiA+ID4+Pj4gPiA+PiA+PiBxdWl0ZQo+ID4gPiA+Pj4+ID4gPj4gPj4KPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBzdWNjZXNzZnVsLCBJIGhvcGUgaXQncyB0aGUgc2FtZSBmb3Igb3RoZXJzLiBQZXJoYXBzCj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiB0aGVyZSBhcmUKPiA+ID4gPj4+Pgo+ID4gPiA+Pj4+ID4gPj4gPj4gYmV0dGVyCj4gPiA+ID4+Pj4gPiA+PiA+Pgo+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IGlkZWFzCj4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gZm9yIGl0cyBuYW1lOiBtYXZlbi1hZ2dyZWdhdG9yCj4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4KPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBBbnkgb3RoZXIgaWRlYT8gYW55IG9iamVjdGlvbj8KPiA+ID4gPj4+PiA+ID4+ID4+ID4gPgo+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4KPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBIZXJ2PUMzPUE5Cj4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4KPiA+ID4gPj4+PiA+ID4+ID4+ID4gPiBbMV0KPiA+ID4gPj4+Pgo+ID4gPiA+Pj4+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tYm94Lwo+ID4gPiA+Pj4+Cj4gPiA+ID4+Pj4gPiA+PiA+PiA+ID4gWzJdCj4gPiA+ID4+Pj4KPiA+ID4gPj4+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLXdpcC8KPiA+ID4gPj4+Pgo+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IFszXQo+ID4gPiA+Pj4+ID4gPj4KPiA+ID4gPj4+PiA+ID4+IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL21hdmVuL3NhbmRib3gvdHJ1bmsvc2NyaXB0cy8KPiBnaXQvCj4gPiA+ID4+Pj4gPiA+Pgo+ID4gPiA+Pj4+ID4gPj4gPj4gPiA+IFs0XSBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tYWdncmVnYXRvcgo+ID4gPiA+Cj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tCj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4KPiA+ID4gPgo+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0tLS0tLS0tLQo+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPgo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+CgoKLS09MjAKT2xpdmllciBMYW15Cmh0dHA6Ly90d2l0dGVyLmNvbS9vbGFteSB8IGh0dHA6Ly9saW5rZWRpbi5jb20vaW4vb2xhbXkKCi0tMDg5ZTA4MmI2MjVjNzhlMTQxMDU2MTk2YzhlMC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NjkwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBOb3YgMzAgMjM6MDk6NTYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjkwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDVDMEMxMTcyRkQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAzMCBOb3YgMjAxNyAyMzowOTo1NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ0MTg1IGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIE5vdiAyMDE3IDIzOjA5OjU2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0NDA5NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMCBOb3YgMjAxNyAyMzowOTo1NiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ0MDg1IGludm9rZWQgYnkgdWlkIDk5KTsgMzAgTm92IDIwMTcgMjM6MDk6NTUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMzAgTm92IDIwMTcgMjM6MDk6NTUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1sZjAtZjQyLmdvb2dsZS5jb20gKG1haWwtbGYwLWY0Mi5nb29nbGUuY29tIFsyMDkuODUuMjE1LjQyXSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDIwQzA2MUEwMDE5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAzMCBOb3YgMjAxNyAyMzowOTo1NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1sZjAtZjQyLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGw4MXNvOTc0MDk2OWxmbC42CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMzAgTm92IDIwMTcgMTU6MDk6NTQgLTA4MDAgKFBTVCkKWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg2cTJDOXRxeWQ3eFZNZS9vM1JFdHRIeHE2M0sxcmRESVNLa3lhelBtWFMwV0xqdmZORAoJRVR3ZU11SlNOQllNRUlXb3Nkck5leTRMTzRES0ZXa3huenBqS2RFPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUdzNHpNWXpvYVgrTWkzTlZBY3kvOEZQVHNzME5zRDRHMVAxZ284cWJUUm1kY081WnBXY2IvNTdFNzE1Ri83RTNCTHQ4YlJQRnhlbE5waWowQURkei9DYTlZST0KWC1SZWNlaXZlZDogYnkgMTAuNDYuNDMuMTM5IHdpdGggU01UUCBpZCByMTFtcjM4NDg2NDZsanIuMTU5LjE1MTIwODMzOTI4MzQ7CiBUaHUsIDMwIE5vdiAyMDE3IDE1OjA5OjUyIC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzkuNi4xNTMgd2l0aCBIVFRQOyBUaHUsIDMwIE5vdiAyMDE3IDE1OjA5OjMyIC0wODAwIChQU1QpCkluLVJlcGx5LVRvOiA8Q0FNa19CZWdDR1NrcktaYXREc2RfRmFyWXdmZC1tWlg4QXFxREdSLU16SjE1R2tkK3F3QG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0FQTHBSUUw2PTNxa3pBZT1GZ1JyZWhlR3hma2l5ZFVxQmRyLXlEQ1ZvR2VaVHpycWJBQG1haWwuZ21haWwuY29tPgogPENBUG95QnFUby1hbnBoTCtMeUhWNmJrR05VTWQxdzI3RktrMlpQbl9mZDF2N2Z0OVF0d0BtYWlsLmdtYWlsLmNvbT4gPENBTWtfQmVnQ0dTa3JLWmF0RHNkX0Zhcll3ZmQtbVpYOEFxcURHUi1NekoxNUdrZCtxd0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogT2xpdmllciBMYW15IDxvbGFteUBhcGFjaGUub3JnPgpEYXRlOiBGcmksIDEgRGVjIDIwMTcgMTA6MDk6MzIgKzExMDAKWC1HbWFpbC1PcmlnaW5hbC1NZXNzYWdlLUlEOiA8Q0FQb3lCcVE3d1dEUlJWNTljaW51dlVpY25VTG10anE1ckNpVHpLWVdnWFlIR1c9R2lRQG1haWwuZ21haWwuY29tPgpNZXNzYWdlLUlEOiA8Q0FQb3lCcVE3d1dEUlJWNTljaW51dlVpY25VTG10anE1ckNpVHpLWVdnWFlIR1c9R2lRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgTWF2ZW4gSW5kZXhlciA2LjAuMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSI5NGViMmMxYzA3MjY4MDM3NTUwNTVmM2I1OTBlIgoKLS05NGViMmMxYzA3MjY4MDM3NTUwNTVmM2I1OTBlCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCnByb2JhYmx5IG5vIGlzc3VlcyBmb3Igc3VyZS4KSSBqdXN0IGRvbid0IGtub3cgaWYgd2Ugd2lsbCBiZSBhYmxlIHRvIHN0aWxsIGRvd25sb2FkIHRoZSBpbmRleCBmcm9tCmNlbnRyYWwgYW5kIHVzZSBpdCB3aXRoIHRoaXMgbmV3IHZlcnNpb24KVEJIIEkgaGF2ZW4ndCBkb25lIGFueSB0ZXN0aW5nIGV0Yy4uLi4gc28gaXQncyBqdXN0IHF1ZXN0aW9ucyA6LSkKCk9uIDEgRGVjZW1iZXIgMjAxNyBhdCAwOTowMiwgQnJpYW4gRm94IDxicmlhbmZAaW5maW5pdHkubnU+IHdyb3RlOgoKPiBFeWViYWxsaW5nIHRoZSBsaXN0LCBtb3N0IG9mIHRoZSBjaGFuZ2VzIHNlZW0gaXJyZWxldmFudCB0byB0aGUgY2VudHJhbCB1PQpzZQo+IGNhc2UuIElzIHRoZXJlIGFueXRoaW5nIGluIGhlcmUgdGhhdCBtYXR0ZXJzIGZvciBDZW50cmFsIChhbmQgaWYgc28sIHdoYXQKPiBhcmUgdGhlIGJhY2t3YXJkcyBjb21wYXQgaW1wbGljYXRpb25zPykKPgo+IE9uIFRodSwgTm92IDMwLCAyMDE3IGF0IDI6MDcgQU0sIE9saXZpZXIgTGFteSA8b2xhbXlAYXBhY2hlLm9yZz4gd3JvdGU6Cj4KPiA+ICsxCj4gPgo+ID4gSSdtIG5vdCBjbGVhciBpZiB0aGlzIG5ldyB2ZXJzaW9uIHdpbGwgYmUgdXNlZCBmb3IgQ2VudHJhbD8KPiA+Cj4gPiBPbiAyOCBOb3ZlbWJlciAyMDE3IGF0IDIxOjIwLCBUYW09QzM9QTFzIENzZXJ2ZW49QzM9QTFrIDx0YW1hc0Bjc2VydmVuYT0Kay5uZXQ+Cj4gd3JvdGU6Cj4gPgo+ID4gPiBbVk9URV0gUmVsZWFzZSBNYXZlbiBJbmRleGVyIDYuMC4wCj4gPiA+Cj4gPiA+IEhpLAo+ID4gPgo+ID4gPiBXZSBzb2x2ZWQgMjUgaXNzdWVzOgo+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4gPiA+IHByb2plY3RJZD0zRDEyMzE3NTIzJnZlcnNpb249M0QxMjMzMDgwMgo+ID4gPgo+ID4gPiBUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKPiA+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3Byb2plY3RzL01JTkRFWEVSL2lzc3Vlcy8KPiA+ID4gTUlOREVYRVItODE/ZmlsdGVyPTNEYWxsb3Blbmlzc3Vlcwo+ID4gPgo+ID4gPiBTdGFnaW5nIHJlcG86Cj4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzkKPiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc2VydmljZS9sb2NhbC9yZXBvc2l0b3JpZXMvCj4gPiA+IG1hdmVuLTEzNzkvY29udGVudC9vcmcvYXBhY2hlL21hdmVuL2luZGV4ZXIvbWF2ZW4taW5kZXhlci82Lgo+ID4gPiAwLjAvbWF2ZW4taW5kZXhlci02LjAuMC1zb3VyY2UtcmVsZWFzZS56aXAKPiA+ID4KPiA+ID4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gPiA+IG1hdmVuLWluZGV4ZXItNi4wLjAtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6Cj4gPiA+IDI3OTkzOWY4ZGVmZjBmNTUxODM2NGMwNmRhODQ3YjMyYWI2MTA4ZWQKPiA+ID4KPiA+ID4gU3RhZ2luZyBzaXRlOgo+ID4gPiBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9tYXZlbi1pbmRleGVyLWFyY2hpdmVzL21hdmVuLWluZGV4ZXItTEFURVNULwo+ID4gPgo+ID4gPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiA+ID4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS0KPiB0ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPiA+ID4KPiA+ID4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPiA+ID4KPiA+ID4gWyBdICsxCj4gPiA+IFsgXSArMAo+ID4gPiBbIF0gLTEKPiA+ID4KPiA+ID4gLS0KPiA+ID4gVGhhbmtzLAo+ID4gPiB+dH4KPiA+ID4KPiA+Cj4gPgo+ID4KPiA+IC0tCj4gPiBPbGl2aWVyIExhbXkKPiA+IGh0dHA6Ly90d2l0dGVyLmNvbS9vbGFteSB8IGh0dHA6Ly9saW5rZWRpbi5jb20vaW4vb2xhbXkKPiA+Cj4KCgoKLS09MjAKT2xpdmllciBMYW15Cmh0dHA6Ly90d2l0dGVyLmNvbS9vbGFteSB8IGh0dHA6Ly9saW5rZWRpbi5jb20vaW4vb2xhbXkKCi0tOTRlYjJjMWMwNzI2ODAzNzU1MDU1ZjNiNTkwZS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NDkwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBOb3YgMTUgMjA6MDU6NTAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDkwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEM3NjJEMTdEMzIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAxNSBOb3YgMjAxNyAyMDowNTo1MCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDEyNzU0IGludm9rZWQgYnkgdWlkIDUwMCk7IDE1IE5vdiAyMDE3IDIwOjA1OjUwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMjY4NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNSBOb3YgMjAxNyAyMDowNTo1MCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDEyNjc0IGludm9rZWQgYnkgdWlkIDk5KTsgMTUgTm92IDIwMTcgMjA6MDU6NTAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMTUgTm92IDIwMTcgMjA6MDU6NTAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1sZjAtZjQ4Lmdvb2dsZS5jb20gKG1haWwtbGYwLWY0OC5nb29nbGUuY29tIFsyMDkuODUuMjE1LjQ4XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEU1RTg4MUEwMDZECglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxNSBOb3YgMjAxNyAyMDowNTo0OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1sZjAtZjQ4Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIG0xc28xMTYzMzQ3MWxmai45CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTUgTm92IDIwMTcgMTI6MDU6NDkgLTA4MDAgKFBTVCkKWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg0STdzeTZhQm9hbk5UOStSUHVqZEdBSmZxS0hUTjg0dG9DcHR3SW45VHF5dVA3b2EwRAoJMjh2YTVRZDlvQ2ZncW5xNlljTENvMzExdlRlelNIWHl0Y1VOR0NBPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUdzNHpNWXIyS2ZoWUo5R3VnZE1TamNzaUFvUmJVRHJJMXkrSWluWnRCb0JYWmJlaGV5TVZkSE0xbUNyVFdTL1kxeTkxMXpJY2t2TnRNUzQyaHJWdkNmdFR5Zz0KWC1SZWNlaXZlZDogYnkgMTAuNDYuNzEuMTQzIHdpdGggU01UUCBpZCB1MTM3bXIxNzI0ODEzbGphLjc5LjE1MTA3NzYzNDc0NDc7CiBXZWQsIDE1IE5vdiAyMDE3IDEyOjA1OjQ3IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlZmVyZW5jZXM6IDxvcC55OWxqYmh6d2tka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KIDxvcC55OXJnaGVnYmtka2hyckBkZXNrdG9wLTJraHNrNDQ+IDxDQUZOQ1UtOU50U2M9a0xZM2VaRHpmYkZHY09OZmVwZT1HSnVqaXNWdnB4MnU4ZFE4VWdAbWFpbC5nbWFpbC5jb20+CkluLVJlcGx5LVRvOiA8Q0FGTkNVLTlOdFNjPWtMWTNlWkR6ZmJGR2NPTmZlcGU9R0p1amlzVnZweDJ1OGRROFVnQG1haWwuZ21haWwuY29tPgpGcm9tOiBPbGl2aWVyIExhbXkgPG9sYW15QGFwYWNoZS5vcmc+CkRhdGU6IFdlZCwgMTUgTm92IDIwMTcgMjA6MDU6MzYgKzAwMDAKWC1HbWFpbC1PcmlnaW5hbC1NZXNzYWdlLUlEOiA8Q0FQb3lCcVFRN2lHS3QtM29kMEhuYmk9VnR3NjRyZWsxNXRWRlJBNmpaaV9rLXdVMFBRQG1haWwuZ21haWwuY29tPgpNZXNzYWdlLUlEOiA8Q0FQb3lCcVFRN2lHS3QtM29kMEhuYmk9VnR3NjRyZWsxNXRWRlJBNmpaaV9rLXdVMFBRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIEpEZXByU2NhbiBQbHVnaW4gdmVyc2lvbiAzLjAuMC1hbHBoYS0xClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTQwMzM2Njg2NTZlOTA1NWUwYjA3NzkiCgotLTAwMWExMTQwMzM2Njg2NTZlOTA1NWUwYjA3NzkKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKKzEKCk9uIFRodSwgMTYgTm92IDIwMTcgYXQgNzowNCBhbSwgQXJuYXVkIEg9QzM9QTlyaXRpZXIgPGFoZXJpdGllckBnbWFpbC5jb20+ID0Kd3JvdGU6Cgo+ICsxCj4KPiBPbiBXZWQsIE5vdiAxNSwgMjAxNyBhdCAxOjU5IFBNLCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Cj4gd3JvdGU6Cj4KPiA+IFN0aWxsIHdhdGluZyBmb3Igb25lIE1hdmVuIFBNQyB2b3RlLgo+ID4KPiA+IHRoYW5rcywKPiA+IFJvYmVydAo+ID4KPiA+IE9uIFN1biwgMTIgTm92IDIwMTcgMTY6MTU6MDcgKzAxMDAsIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yPQpnCj4gPgo+ID4gd3JvdGU6Cj4gPgo+ID4gSGksCj4gPj4KPiA+PiBUaGlzIGlzIHRoZSBpbml0aWFsIHJlbGVhc2Ugb2YgdGhlIE1hdmVuIEpEZXByU2NhbiBQbHVnaW4uCj4gPj4KPiA+PiBJdCBpcyBhIHdyYXBwZXIgYXJvdW5kIHRoZSBqZGVwcnNjYW4gdG9vbCwgYXZhaWxhYmxlIHNpbmNlIEphdmEgOToKPiA+PiBodHRwczovL2RvY3Mub3JhY2xlLmNvbS9qYXZhc2UvOS90b29scy9qZGVwcnNjYW4uaHRtCj4gPj4KPiA+PiBUaGVyZSBhcmUgemVybyBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+ID4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlM0QlCj4gPj4gMjBNSkRFUFJTQ0FOJTIwQU5EJTIwc3RhdHVzJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklCj4gPj4gMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDCj4gPj4KPiA+PiBTdGFnaW5nIHJlcG86Cj4gPj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3NC8KPiA+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zZXJ2aWNlL2xvY2FsL3JlcG9zaXRvcmllcy9tYXYKPiA+PiBlbi0xMzc0L2NvbnRlbnQvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL21hdmVuLWpkZXByc2Nhbi1wbHUKPiA+Pgo+IGdpbi8zLjAuMC1hbHBoYS0xL21hdmVuLWpkZXByc2Nhbi1wbHVnaW4tMy4wLjAtYWxwaGEtMS1zb3VyY2UtcmVsZWFzZS56aXAKPiA+Pgo+ID4+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+ID4+IG1hdmVuLWpkZXByc2Nhbi1wbHVnaW4tMy4wLjAtYWxwaGEtMS1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMToKPiA+PiBjY2JlZDMzZWEzYmFhNTI3YjlhMGNmOTBkYmI0ZjljYThiYjg4ZWY0Cj4gPj4KPiA+PiBTdGFnaW5nIHNpdGU6Cj4gPj4KPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1qZGVwcnNjYW4tcGx1Z2luLUxBVEVTVC8KPiA+Pgo+ID4+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+ID4+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG09CmwKPiA+Pgo+ID4+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4gPj4KPiA+PiBbIF0gKzEKPiA+PiBbIF0gKzAKPiA+PiBbIF0gLTEKPiA+Pgo+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+Cj4gPgo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+ID4KPiA+Cj4KPgo+IC0tCj4gLS0tLS0KPiBBcm5hdWQgSD1DMz1BOXJpdGllcgo+IGh0dHA6Ly9haGVyaXRpZXIubmV0Cj4gTWFpbC9HVGFsazogYWhlcml0aWVyIEFUIGdtYWlsIERPVCBjb20KPiBUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyCj4KLS09MjAKT2xpdmllciBMYW15Cmh0dHA6Ly90d2l0dGVyLmNvbS9vbGFteSB8IGh0dHA6Ly9saW5rZWRpbi5jb20vaW4vb2xhbXkKCi0tMDAxYTExNDAzMzY2ODY1NmU5MDU1ZTBiMDc3OS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NzMxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBEZWMgIDQgMDA6MTA6MzAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzMxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEE0MkM3MTA3REQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAgNCBEZWMgMjAxNyAwMDoxMDozMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk4OTY2IGludm9rZWQgYnkgdWlkIDUwMCk7IDQgRGVjIDIwMTcgMDA6MTA6MzAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk4ODkyIGludm9rZWQgYnkgdWlkIDUwMCk7IDQgRGVjIDIwMTcgMDA6MTA6MzAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5ODg4MSBpbnZva2VkIGJ5IHVpZCA5OSk7IDQgRGVjIDIwMTcgMDA6MTA6MzAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMDQgRGVjIDIwMTcgMDA6MTA6MzAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1sZjAtZjQ5Lmdvb2dsZS5jb20gKG1haWwtbGYwLWY0OS5nb29nbGUuY29tIFsyMDkuODUuMjE1LjQ5XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEIxMjVGMUEwMDlCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAgNCBEZWMgMjAxNyAwMDoxMDoyOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1sZjAtZjQ5Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIHgyMDRzbzE3MTg5ODg1bGZhLjExCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMDMgRGVjIDIwMTcgMTY6MTA6MjcgLTA4MDAgKFBTVCkKWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg0Y3NQT2pFL2ZnS3ZObUJLaU1FM3lSai9oWHlpS2d3bXRMMmNBNkdmSWJvMHI5MzN2SQoJMk1EUHJxVjgrTlVhREFxUDBNNzNzWWozTVNoVXpJSkhjZkljTG5jPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUdzNHpNWVNILzU5Q0x2NmpTajFkZFp0T2V0OS9kSnBxbC9PTDZKNDRvRGkzME82TTltd1ZSMmluZkNVcCtJMnRDN2FZQ2ZmMlRmL3JNMjNuOURvSWJlcDdyST0KWC1SZWNlaXZlZDogYnkgMTAuNDYuMi4xOTcgd2l0aCBTTVRQIGlkIHk2Nm1yODA1ODQzMGxqZS4xMTMuMTUxMjM0NjIyNTYxMDsKIFN1biwgMDMgRGVjIDIwMTcgMTY6MTA6MjUgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjE3OS42LjE1MyB3aXRoIEhUVFA7IFN1biwgMyBEZWMgMjAxNyAxNjoxMDowNCAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPENBK25Qbk15eVQycmRxMUpoelo4Vl9kYnNZX3phPUYxUDJwQWVXZytDczhmdkJzPVNGQUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPDIwMjc1NzY2ODkuODc2LjE1MTE5NDgyNjU3MDAuSmF2YU1haWwuamVua2luc0BqZW5raW5zLW1hc3Rlci5hcGFjaGUub3JnPgogPDE0MDg3NDA5NS4xMjU1LjE1MTIyMTIyNzQ4NzAuSmF2YU1haWwuamVua2luc0BqZW5raW5zLW1hc3Rlci5hcGFjaGUub3JnPgogPENBK25Qbk13MSs1dG5BbWZHNCswZTlraHQ2NVlocHhKTW1Cc2NoTnIrR1hrYzJ2RU52UUBtYWlsLmdtYWlsLmNvbT4KIDxDQVBveUJxVHI9PTdmNDNtNFpnNzVQYXRrc3MrYk5iWm9pTnJLdnJlR1QxeVE3aW5ETFFAbWFpbC5nbWFpbC5jb20+IDxDQStuUG5NeXlUMnJkcTFKaHpaOFZfZGJzWV96YT1GMVAycEFlV2crQ3M4ZnZCcz1TRkFAbWFpbC5nbWFpbC5jb20+CkZyb206IE9saXZpZXIgTGFteSA8b2xhbXlAYXBhY2hlLm9yZz4KRGF0ZTogTW9uLCA0IERlYyAyMDE3IDExOjEwOjA0ICsxMTAwClgtR21haWwtT3JpZ2luYWwtTWVzc2FnZS1JRDogPENBUG95QnFSOGdKVVNEQmZFMTRzM1g9YW42NkY4Vy1GVWQ1VXRBWnl2dWFYb0ZXU3VPQUBtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JRDogPENBUG95QnFSOGdKVVNEQmZFMTRzM1g9YW42NkY4Vy1GVWQ1VXRBWnl2dWFYb0ZXU3VPQUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogPT9VVEYtOD9RP1JlPTNBX0J1aWxkX2ZhaWxlZF9pbl9KZW5raW5zPTNBX01hdmVuX1RMUF89QzI9QkJfbWF2ZW49MkRyZWxlPz0KCT0/VVRGLTg/UT9hc2VfPUMyPUJCX21hc3Rlcl89MjMzPz0KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iOTRlYjJjMWNkZGVhOGUxN2U3MDU1Zjc4OGI3ZSIKCi0tOTRlYjJjMWNkZGVhOGUxN2U3MDU1Zjc4OGI3ZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPbiA0IERlY2VtYmVyIDIwMTcgYXQgMTE6MDgsIFN0ZXBoZW4gQ29ubm9sbHkgPApzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKCj4gT24gMyBEZWNlbWJlciAyMDE3IGF0IDIzOjI1LCBPbGl2aWVyIExhbXkgPG9sYW15QGFwYWNoZS5vcmc+IHdyb3RlOgo+Cj4gPiBpcyB0aGVyZSBhbnkgd2F5IHRvIHRyaWdnZXIgYSBidWlsZCB3aGVuIHNuYXBzaG90IGRlcGVuZGVuY2llcyBhcmUgYnVpbD0KZD8KPiA+IChpcyBpdCB1c2luZyB0aGUgd2l0aE1hdmVuPykKPiA+Cj4KPiBpdCdzIHVzaW5nIHdpdGhNYXZlbgo+Cj4KPiA+IGluIHRoaXMgY2FzZSBpdCdzIG9ubHkgYSBtYXR0ZXIgb2YgaGF2aW5nIG1hdmVuLXNjbSBidWlsZCBhbmQgZGVwbG95ZWQuCj4gPgo+Cj4gSG1tbSBJIGRvbid0IGxpa2UgY2kgYXV0by1kZXBsb3lpbmcuLi4KPgoKTE9MIHBlcnNvIEkgZG9uJ3QgbGlrZSB0byBoYXZlIHRvIGZvcmNlIGJ1aWxkcyBtYW51YWxseSA6LSkKCgo+Cj4KPiA+Cj4gPiBPbiAyIERlY2VtYmVyIDIwMTcgYXQgMjI6MjUsIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPgo+ID4gPiBIZXJlPUUyPTgwPTk5cyB0aGUgZmFpbHVyZS4gSWYgdHJhY2luZyB0aGUgcm9vdCBjYXVzZSB1c3VhbGx5IGJlc3QgdG89CiBsb29rIGF0Cj4gPiA+IHRoZSBwaXBlbGluZSBzdGVwcyB2aWV3IG9mIGEgYnVpbGQgYXMgdGhhdCBsZXRzIHlvdSBzZWUgdGhlIGluZGl2aWR1YT0KbAo+ID4gPiBzdGVwPUUyPTgwPTk5cyBsb2cKPiA+ID4KPiA+ID4KPiA+ID4gW0VSUk9SXSBGYWlsZWQgdG8gZXhlY3V0ZSBnb2FsCj4gPiA+IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczptYXZlbi1jb21waWxlci1wbHVnaW46My4yOmNvbXBpbGUKPiA+ID4gKGRlZmF1bHQtY29tcGlsZSkgb24gcHJvamVjdCBtYXZlbi1yZWxlYXNlLW1hbmFnZXI6IENvbXBpbGF0aW9uCj4gPiA+IGZhaWx1cmVbRVJST1JdIC9ob21lL2plbmtpbnMvamVua2lucy1zbGF2ZS93b3Jrc3BhY2UvZW4tYm94X21hdmVuLQo+ID4gPiByZWxlYXNlX21hc3Rlci1PQ0tHVUxRQkNaNjdWQktKN0hGNkU3S1pVQ0tYN1pDNkZYNjRHSDY2T0hQN0E0VkFRQklRL209Ci8KPiA+ID4gbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi8KPiA+IHNoYXJlZC9yZWxlYXNlL3BoYXNlLwo+ID4gPiBDaGVja291dFByb2plY3RGcm9tU2NtLmphdmE6WzIxOCw0N10KPiA+ID4gbm8gc3VpdGFibGUgbWV0aG9kIGZvdW5kIGZvcgo+ID4gPiBjaGVja091dChvcmcuYXBhY2hlLm1hdmVuLnNjbS5yZXBvc2l0b3J5LlNjbVJlcG9zaXRvcnksb3JnLgo+ID4gPiBhcGFjaGUubWF2ZW4uc2NtLlNjbUZpbGVTZXQsb3JnLmFwYWNoZS5tYXZlbi5zY20uU2NtVGFnLAo+ID4gPiBvcmcuYXBhY2hlLm1hdmVuLnNjbS5Db21tYW5kUGFyYW1ldGVycylbRVJST1JdCj4gPiA+ICAgICBtZXRob2Qgb3JnLmFwYWNoZS5tYXZlbi5zY20ucHJvdmlkZXIuU2NtUHJvdmlkZXIuY2hlY2tPdXQob3JnLgo+ID4gPiBhcGFjaGUubWF2ZW4uc2NtLnJlcG9zaXRvcnkuU2NtUmVwb3NpdG9yeSxvcmcuYXBhY2hlLgo+ID4gPiBtYXZlbi5zY20uU2NtRmlsZVNldCxvcmcuYXBhY2hlLm1hdmVuLnNjbS5TY21WZXJzaW9uLGJvb2xlYW4pCj4gPiA+IGlzIG5vdCBhcHBsaWNhYmxlW0VSUk9SXSAgICAgICAoYWN0dWFsIGFyZ3VtZW50Cj4gPiA+IG9yZy5hcGFjaGUubWF2ZW4uc2NtLkNvbW1hbmRQYXJhbWV0ZXJzIGNhbm5vdCBiZSBjb252ZXJ0ZWQgdG8gYm9vbGVhbgo+ID4gPiBieSBtZXRob2QgaW52b2NhdGlvbiBjb252ZXJzaW9uKVtFUlJPUl0gICAgIG1ldGhvZAo+ID4gPiBvcmcuYXBhY2hlLm1hdmVuLnNjbS5wcm92aWRlci5TY21Qcm92aWRlci5jaGVja091dChvcmcuCj4gPiA+IGFwYWNoZS5tYXZlbi5zY20ucmVwb3NpdG9yeS5TY21SZXBvc2l0b3J5LG9yZy5hcGFjaGUuCj4gPiA+IG1hdmVuLnNjbS5TY21GaWxlU2V0LGJvb2xlYW4pCj4gPiA+IGlzIG5vdCBhcHBsaWNhYmxlW0VSUk9SXSAgICAgICAoYWN0dWFsIGFuZCBmb3JtYWwgYXJndW1lbnQgbGlzdHMKPiA+ID4gZGlmZmVyIGluIGxlbmd0aClbRVJST1JdICAgICBtZXRob2QKPiA+ID4gb3JnLmFwYWNoZS5tYXZlbi5zY20ucHJvdmlkZXIuU2NtUHJvdmlkZXIuY2hlY2tPdXQob3JnLgo+ID4gPiBhcGFjaGUubWF2ZW4uc2NtLnJlcG9zaXRvcnkuU2NtUmVwb3NpdG9yeSxvcmcuYXBhY2hlLgo+ID4gPiBtYXZlbi5zY20uU2NtRmlsZVNldCxqYXZhLmxhbmcuU3RyaW5nLGJvb2xlYW4pCj4gPiA+IGlzIG5vdCBhcHBsaWNhYmxlW0VSUk9SXSAgICAgICAoYWN0dWFsIGFyZ3VtZW50Cj4gPiA+IG9yZy5hcGFjaGUubWF2ZW4uc2NtLlNjbVRhZyBjYW5ub3QgYmUgY29udmVydGVkIHRvIGphdmEubGFuZy5TdHJpbmcgYj0KeQo+ID4gPiBtZXRob2QgaW52b2NhdGlvbiBjb252ZXJzaW9uKVtFUlJPUl0gICAgIG1ldGhvZAo+ID4gPiBvcmcuYXBhY2hlLm1hdmVuLnNjbS5wcm92aWRlci5TY21Qcm92aWRlci5jaGVja091dChvcmcuCj4gPiA+IGFwYWNoZS5tYXZlbi5zY20ucmVwb3NpdG9yeS5TY21SZXBvc2l0b3J5LG9yZy5hcGFjaGUuCj4gPiA+IG1hdmVuLnNjbS5TY21GaWxlU2V0LG9yZy5hcGFjaGUubWF2ZW4uc2NtLlNjbVZlcnNpb24pCj4gPiA+IGlzIG5vdCBhcHBsaWNhYmxlW0VSUk9SXSAgICAgICAoYWN0dWFsIGFuZCBmb3JtYWwgYXJndW1lbnQgbGlzdHMKPiA+ID4gZGlmZmVyIGluIGxlbmd0aClbRVJST1JdICAgICBtZXRob2QKPiA+ID4gb3JnLmFwYWNoZS5tYXZlbi5zY20ucHJvdmlkZXIuU2NtUHJvdmlkZXIuY2hlY2tPdXQob3JnLgo+ID4gPiBhcGFjaGUubWF2ZW4uc2NtLnJlcG9zaXRvcnkuU2NtUmVwb3NpdG9yeSxvcmcuYXBhY2hlLgo+ID4gbWF2ZW4uc2NtLlNjbUZpbGVTZXQpCj4gPiA+IGlzIG5vdCBhcHBsaWNhYmxlW0VSUk9SXSAgICAgICAoYWN0dWFsIGFuZCBmb3JtYWwgYXJndW1lbnQgbGlzdHMKPiA+ID4gZGlmZmVyIGluIGxlbmd0aClbRVJST1JdICAgICBtZXRob2QKPiA+ID4gb3JnLmFwYWNoZS5tYXZlbi5zY20ucHJvdmlkZXIuU2NtUHJvdmlkZXIuY2hlY2tPdXQob3JnLgo+ID4gPiBhcGFjaGUubWF2ZW4uc2NtLnJlcG9zaXRvcnkuU2NtUmVwb3NpdG9yeSxvcmcuYXBhY2hlLgo+ID4gPiBtYXZlbi5zY20uU2NtRmlsZVNldCxqYXZhLmxhbmcuU3RyaW5nKQo+ID4gPiBpcyBub3QgYXBwbGljYWJsZVtFUlJPUl0gICAgICAgKGFjdHVhbCBhbmQgZm9ybWFsIGFyZ3VtZW50IGxpc3RzCj4gPiA+IGRpZmZlciBpbiBsZW5ndGgpW0VSUk9SXSAtPiBbSGVscCAxXVtFUlJPUl0gW0VSUk9SXSBUbyBzZWUgdGhlIGZ1bGwKPiA+ID4gc3RhY2sgdHJhY2Ugb2YgdGhlIGVycm9ycywgcmUtcnVuIE1hdmVuIHdpdGggdGhlIC1lIHN3aXRjaC5bRVJST1JdCj4gPiA+IFJlLXJ1biBNYXZlbiB1c2luZyB0aGUgLVggc3dpdGNoIHRvIGVuYWJsZSBmdWxsIGRlYnVnIGxvZ2dpbmcuW0VSUk9SXQo+ID4gPiBbRVJST1JdIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBlcnJvcnMgYW5kIHBvc3NpYmxlIHNvbHV0aW9ucywKPiA+ID4gcGxlYXNlIHJlYWQgdGhlIGZvbGxvd2luZyBhcnRpY2xlczoKPiA+ID4KPiA+ID4KPiA+ID4KPiA+ID4gT24gU2F0IDIgRGVjIDIwMTcgYXQgMTA6NTgsIEFwYWNoZSBKZW5raW5zIFNlcnZlciA8Cj4gPiA+IGplbmtpbnNAYnVpbGRzLmFwYWNoZS5vcmc+Cj4gPiA+IHdyb3RlOgo+ID4gPgo+ID4gPiA+IFNlZQo+ID4gPiA+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvam9iL21hdmVuLWJveC9qb2IvbWF2ZW4tcmVsZWFzZS8KPiA+IGpvYi9tYXN0ZXIvMy8KPiA+ID4gPgo+ID4gPiA+IENoYW5nZXM6Cj4gPiA+ID4KPiA+ID4gPiAqIHRlc3RpbmcgZW1haWxleHQgdGVtcGxhdGVzCj4gPiA+ID4gKiB0ZXN0aW5nIGVtYWlsZXh0IHRlbXBsYXRlcwo+ID4gPiA+ICogdHdlYWtzCj4gPiA+ID4gKiBkZWJ1Z2dpbmcKPiA+ID4gPiAqIGZvcm1hdHRpbmcKPiA+ID4gPiAqIEZvcm1hdHRpbmcKPiA+ID4gPiAqIHRyeWluZyB0byBkZWJ1ZyBmYWlsaW5nIGJ1aWxkIGlzc3VlCj4gPiA+ID4gKiBtb3JlIHNhZmV0eQo+ID4gPiA+ICogQWRkIGxpY2Vuc2UgaGVhZGVycwo+ID4gPiA+ICogW0pFTktJTlMtMzQzNzZdIFdvcmthcm91bmQgSmVua2lucyBpc3N1ZSB0byBkZXRlY3QgYWJvcnRlZCBidWlsZHMKPiA+ID4gYmV0dGVyCj4gPiA+ID4gKiBNb3JlIHR3ZWFraW5nLi4uIGZmcyBwaXBlbGluZSB5b3UgZG9uJ3QgbWFrZSBpdCBlYXN5IHRvIGdldCB0aGUKPiA+IGFjdHVhbAo+ID4gPiA+ICogQWxsb3cgZmFpbGluZyB0ZXN0cyB0byBiZSByZWNvcmRlZCBhcyB1bnN0YWJsZSBidWlsZAo+ID4gPiA+ICogRW5zdXJlIHRoZSBlbWFpbCBvbiBmYWlsdXJlIGlzIGFsd2F5cyBzZW50IGlmIHdlIHN0YXJ0IHRoZSBidWlsZAo+ID4gPiA+ICogTm8gbmVlZCB0byBjb2xsZWN0IGZpbmRidWdzIGV0YyBvbiBhbnl0aGluZyBvdGhlciB0aGFuIHRoZSBmaXJzdAo+ID4gPiA+ICogc3ludGF4Cj4gPiA+ID4gKiBzeW50YXggYWdhaW4KPiA+ID4gPiAqIEFsbG93ICdqZGsnIG9yICdqZGtzJwo+ID4gPiA+ICogQmV0dGVyIHJlcG9ydCBjb2xsZWN0aW9uIG9wdGltaXphdGlvbgo+ID4gPiA+ICogc3ludGF4IGZ0dwo+ID4gPiA+ICogc3ludGF4IHRha2UgNQo+ID4gPiA+ICogYnVpbGQgdGhlIGNvbW1hbmQgbGluZSBpbiBtb3JlIGV4dGVuc2libGUgd2F5Cj4gPiA+ID4gKiBBaGFcISBmaXJzdCB3YXMgYmVpbmcgZXZhbHVhdGVkIGFmdGVyIGFkZGluZyB0aGUgdGFzawo+ID4gPiA+ICogY2FwdHVyZSBhbm90aGVyCj4gPiA+ID4gKiBbTVJFTEVBU0UtOTkzXSBVc2Ugc2hhbGxvdyBjaGVja291dCBwZXIgZGVmYXVsdCAoZ2l0IHNjbSkKPiA+ID4gPiAqIFtNUkVMRUFTRS05OTNdIFVzZSBzaGFsbG93IGNoZWNrb3V0IHBlciBkZWZhdWx0IChnaXQgc2NtKQo+ID4gPiA+ICogW01SRUxFQVNFLTk5M10gVXNlIHNoYWxsb3cgY2hlY2tvdXQgcGVyIGRlZmF1bHQgKGdpdCBzY20pCj4gPiA+ID4gKiBbTVJFTEVBU0UtOTkzXSBVc2Ugc2hhbGxvdyBjaGVja291dCBwZXIgZGVmYXVsdCAoZ2l0IHNjbSkKPiA+ID4gPiAqIFtNUkVMRUFTRS05OTNdIFVzZSBzaGFsbG93IGNoZWNrb3V0IHBlciBkZWZhdWx0IChnaXQgc2NtKQo+ID4gPiA+ICogW01SRUxFQVNFLTk5M10gVXNlIHNoYWxsb3cgY2hlY2tvdXQgcGVyIGRlZmF1bHQgKGdpdCBzY20pCj4gPiA+ID4KPiA+ID4gPiBObyB0ZXN0cyByYW4uCj4gPiA+ID4KPiA+ID4gPiBCdWlsZCBsb2c6Cj4gPiA+ID4gWy4uLnRydW5jYXRlZCAxLjc2IE1CLi4uXQo+ID4gPiA+IFtsaW51eC1qZGs5XSBbSU5GT10gQ2hhbmdlcyBkZXRlY3RlZCAtIHJlY29tcGlsaW5nIHRoZSBtb2R1bGUhCj4gPiA+ID4gW2xpbnV4LWpkazldIFtJTkZPXSBDb21waWxpbmcgMTAzIHNvdXJjZSBmaWxlcyB0bwo+ID4gPiA+IC9ob21lL2plbmtpbnMvamVua2lucy1zbGF2ZS93b3Jrc3BhY2UvZW4tYm94X21hdmVuLXJlbGVhc2VfbWFzdGVyLQo+ID4gPiBPQ0tHVUxRQkNaNjdWQktKN0hGNkU3S1pVQ0tYN1pDNkZYNjRHSDY2T0hQN0E0VkFRQklRL20vCj4gPiA+IG1hdmVuLXJlbGVhc2UtbWFuYWdlci90YXJnZXQvY2xhc3Nlcwo+ID4gPiA+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItY3ZzZXhlLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS0KPiA+ID4gcHJvdmlkZXItY3ZzZXhlLTEuOS42LTIwMTcxMjAxLjIzMjY0Ni0xMi5qYXIKPiA+ID4gPiAoMzEga0IgYXQgNjMga0IvcykKPiA+ID4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1jdnNqYXZhLzEuOS42LVNOQVBTSE9UL21hdmVuLQo+ID4gPiBzY20tcHJvdmlkZXItY3ZzamF2YS0xLjkuNi0yMDE3MTIwMS4yMzI2NTEtMTIuamFyCj4gPiA+ID4gW3dpbmRvd3MtamRrOQo+ID4gPiA+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWN2c2phdmEvMS45LjYtU05BUFNIT1QvbWF2ZW4tCj4gPiA+IHNjbS1wcm92aWRlci1jdnNqYXZhLTEuOS42LTIwMTcxMjAxLjIzMjY1MS0xMi5qYXIlNUJ3aW5kb3dzLWpkazk+XQo+ID4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItYmF6YWFyLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS0KPiA+ID4gcHJvdmlkZXItYmF6YWFyLTEuOS42LTIwMTcxMjAxLjIzMjYyOS0xMi5qYXIKPiA+ID4gPiAoNTcga0IgYXQgMTA3IGtCL3MpCj4gPiA+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItZ2l0ZXhlLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS0KPiA+ID4gcHJvdmlkZXItZ2l0ZXhlLTEuOS42LTIwMTcxMjAxLjIzMjcwOS0xMi5qYXIKPiA+ID4gPiBbd2luZG93cy1qZGs5Cj4gPiA+ID4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItZ2l0ZXhlLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS0KPiA+ID4gcHJvdmlkZXItZ2l0ZXhlLTEuOS42LTIwMTcxMjAxLjIzMjcwOS0xMi5qYXIlNUJ3aW5kb3dzLWpkazk+XQo+ID4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItYWNjdXJldi8xLjkuNi1TTkFQU0hPVC9tYXZlbi0KPiA+ID4gc2NtLXByb3ZpZGVyLWFjY3VyZXYtMS45LjYtMjAxNzEyMDEuMjMyNjIzLTEyLmphcgo+ID4gPiA+ICg5NyBrQiBhdCAxNTgga0IvcykKPiA+ID4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWN2cy1jb21tb25zLzEuOS42LVNOQVBTSE9UL21hdmVuLQo+ID4gPiBzY20tcHJvdmlkZXItY3ZzLWNvbW1vbnMtMS45LjYtMjAxNzEyMDEuMjMyNjQwLTEyLmphcgo+ID4gPiA+ICg3OCBrQiBhdCAxMjgga0IvcykKPiA+ID4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1naXQtY29tbW9ucy8xLjkuNi1TTkFQU0hPVC9tYXZlbi0KPiA+ID4gc2NtLXByb3ZpZGVyLWdpdC1jb21tb25zLTEuOS42LTIwMTcxMjAxLjIzMjcwMy0xMi5qYXIKPiA+ID4gPiBbd2luZG93cy1qZGs5Cj4gPiA+ID4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItZ2l0LWNvbW1vbnMvMS45LjYtU05BUFNIT1QvbWF2ZW4tCj4gPiA+IHNjbS1wcm92aWRlci1naXQtY29tbW9ucy0xLjkuNi0yMDE3MTIwMS4yMzI3MDMtMTIuamFyJTVCd2luZG93cy1qZGs5Pj0KXQo+ID4gPiA+IFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWpnaXQvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+ID4gPiBwcm92aWRlci1qZ2l0LTEuOS42LTIwMTcxMjAxLjIzMjczOS0xMi5qYXIKPiA+ID4gPiBbd2luZG93cy1qZGs5Cj4gPiA+ID4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItamdpdC8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gPiA+IHByb3ZpZGVyLWpnaXQtMS45LjYtMjAxNzEyMDEuMjMyNzM5LTEyLmphciU1QndpbmRvd3MtamRrOT5dCj4gPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1jbGVhcmNhc2UvMS45LjYtU05BUFNIT1QvCj4gPiA+IG1hdmVuLXNjbS1wcm92aWRlci1jbGVhcmNhc2UtMS45LjYtMjAxNzEyMDEuMjMyNjM0LTEyLmphcgo+ID4gPiA+ICg3MCBrQiBhdCAxMTQga0IvcykKPiA+ID4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1oZy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXItCj4gPiA+IGhnLTEuOS42LTIwMTcxMjAxLjIzMjcyMS0xMi5qYXIKPiA+ID4gPiBbd2luZG93cy1qZGs5Cj4gPiA+ID4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItaGcvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLXByb3ZpZGVyLQo+ID4gPiBoZy0xLjkuNi0yMDE3MTIwMS4yMzI3MjEtMTIuamFyJTVCd2luZG93cy1qZGs5Pl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWN2c2phdmEvMS45LjYtU05BUFNIT1QvbWF2ZW4tCj4gPiA+IHNjbS1wcm92aWRlci1jdnNqYXZhLTEuOS42LTIwMTcxMjAxLjIzMjY1MS0xMi5qYXIKPiA+ID4gPiAoNDUga0IgYXQgNDQga0IvcykKPiA+ID4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1wZXJmb3JjZS8xLjkuNi1TTkFQU0hPVC9tYXZlbi0KPiA+ID4gc2NtLXByb3ZpZGVyLXBlcmZvcmNlLTEuOS42LTIwMTcxMjAxLjIzMjgwMC0xMi5qYXIKPiA+ID4gPiBbd2luZG93cy1qZGs5Cj4gPiA+ID4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItcGVyZm9yY2UvMS45LjYtU05BUFNIT1QvbWF2ZW4tCj4gPiA+IHNjbS1wcm92aWRlci1wZXJmb3JjZS0xLjkuNi0yMDE3MTIwMS4yMzI4MDAtMTIuamFyJTVCd2luZG93cy1qZGs5Pl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWdpdC1jb21tb25zLzEuOS42LVNOQVBTSE9UL21hdmVuLQo+ID4gPiBzY20tcHJvdmlkZXItZ2l0LWNvbW1vbnMtMS45LjYtMjAxNzEyMDEuMjMyNzAzLTEyLmphcgo+ID4gPiA+ICgzNSBrQiBhdCAzMyBrQi9zKQo+ID4gPiA+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXN0YXJ0ZWFtLzEuOS42LVNOQVBTSE9UL21hdmVuLQo+ID4gPiBzY20tcHJvdmlkZXItc3RhcnRlYW0tMS45LjYtMjAxNzEyMDEuMjMyODA2LTEyLmphcgo+ID4gPiA+IFt3aW5kb3dzLWpkazkKPiA+ID4gPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1zdGFydGVhbS8xLjkuNi1TTkFQU0hPVC9tYXZlbi0KPiA+ID4gc2NtLXByb3ZpZGVyLXN0YXJ0ZWFtLTEuOS42LTIwMTcxMjAxLjIzMjgwNi0xMi5qYXIlNUJ3aW5kb3dzLWpkazk+XQo+ID4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItZ2l0ZXhlLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS0KPiA+ID4gcHJvdmlkZXItZ2l0ZXhlLTEuOS42LTIwMTcxMjAxLjIzMjcwOS0xMi5qYXIKPiA+ID4gPiAoNjkga0IgYXQgNjQga0IvcykKPiA+ID4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1zdm5leGUvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+ID4gPiBwcm92aWRlci1zdm5leGUtMS45LjYtMjAxNzEyMDEuMjMyODE3LTEyLmphcgo+ID4gPiA+IFt3aW5kb3dzLWpkazkKPiA+ID4gPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1zdm5leGUvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+ID4gPiBwcm92aWRlci1zdm5leGUtMS45LjYtMjAxNzEyMDEuMjMyODE3LTEyLmphciU1QndpbmRvd3MtamRrOT5dCj4gPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1oZy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXItCj4gPiA+IGhnLTEuOS42LTIwMTcxMjAxLjIzMjcyMS0xMi5qYXIKPiA+ID4gPiAoNjkga0IgYXQgNjAga0IvcykKPiA+ID4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1zeW5lcmd5LzEuOS42LVNOQVBTSE9UL21hdmVuLQo+ID4gPiBzY20tcHJvdmlkZXItc3luZXJneS0xLjkuNi0yMDE3MTIwMS4yMzI4MjktMTIuamFyCj4gPiA+ID4gW3dpbmRvd3MtamRrOQo+ID4gPiA+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXN5bmVyZ3kvMS45LjYtU05BUFNIT1QvbWF2ZW4tCj4gPiA+IHNjbS1wcm92aWRlci1zeW5lcmd5LTEuOS42LTIwMTcxMjAxLjIzMjgyOS0xMi5qYXIlNUJ3aW5kb3dzLWpkazk+XQo+ID4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItamdpdC8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gPiA+IHByb3ZpZGVyLWpnaXQtMS45LjYtMjAxNzEyMDEuMjMyNzM5LTEyLmphcgo+ID4gPiA+ICg1MyBrQiBhdCA0NiBrQi9zKQo+ID4gPiA+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXZzcy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gPiA+IHByb3ZpZGVyLXZzcy0xLjkuNi0yMDE3MTIwMS4yMzI4NDEtMTIuamFyCj4gPiA+ID4gW2xpbnV4LWpkazcKPiA+ID4gPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci12c3MvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+ID4gPiBwcm92aWRlci12c3MtMS45LjYtMjAxNzEyMDEuMjMyODQxLTEyLmphciU1QmxpbnV4LWpkazc+XQo+ID4gPiA+IEZhaWxlZCBpbiBicmFuY2ggbGludXgtamRrNwo+ID4gPiA+IFtsaW51eC1qZGs4XSBbSU5GT10KPiA+ID4gPiBbbGludXgtamRrOF0gW0lORk9dIC0tLSBtYXZlbi1yZXNvdXJjZXMtcGx1Z2luOjIuNzpyZXNvdXJjZXMKPiA+ID4gPiAoZGVmYXVsdC1yZXNvdXJjZXMpIEAgbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyIC0tLQo+ID4gPiA+IFtsaW51eC1qZGs4XSBbSU5GT10gVXNpbmcgJ1VURi04JyBlbmNvZGluZyB0byBjb3B5IGZpbHRlcmVkCj4gcmVzb3VyY2VzLgo+ID4gPiA+IFtsaW51eC1qZGs4XSBbSU5GT10gQ29weWluZyAzIHJlc291cmNlcwo+ID4gPiA+IFtsaW51eC1qZGs4XSBbSU5GT10gQ29weWluZyAzIHJlc291cmNlcwo+ID4gPiA+IFtsaW51eC1qZGs4XSBbSU5GT10KPiA+ID4gPiBbbGludXgtamRrOF0gW0lORk9dIC0tLSBtYXZlbi1jb21waWxlci1wbHVnaW46My4yOmNvbXBpbGUKPiA+ID4gPiAoZGVmYXVsdC1jb21waWxlKSBAIG1hdmVuLXJlbGVhc2UtbWFuYWdlciAtLS0KPiA+ID4gPiBbbGludXgtamRrOF0gW0lORk9dIENoYW5nZXMgZGV0ZWN0ZWQgLSByZWNvbXBpbGluZyB0aGUgbW9kdWxlIQo+ID4gPiA+IFtsaW51eC1qZGs4XSBbSU5GT10gQ29tcGlsaW5nIDEwMyBzb3VyY2UgZmlsZXMgdG8KPiA+ID4gPiAvaG9tZS9qZW5raW5zL2plbmtpbnMtc2xhdmUvd29ya3NwYWNlL2VuLWJveF9tYXZlbi1yZWxlYXNlX21hc3Rlci0KPiA+ID4gT0NLR1VMUUJDWjY3VkJLSjdIRjZFN0taVUNLWDdaQzZGWDY0R0g2Nk9IUDdBNFZBUUJJUS9tLwo+ID4gPiBtYXZlbi1yZWxlYXNlLW1hbmFnZXIvdGFyZ2V0L2NsYXNzZXMKPiA+ID4gPiBbbGludXgtamRrOV0gU2VuZGluZyBpbnRlcnJ1cHQgc2lnbmFsIHRvIHByb2Nlc3MKPiA+ID4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXBlcmZvcmNlLzEuOS42LVNOQVBTSE9UL21hdmVuLQo+ID4gPiBzY20tcHJvdmlkZXItcGVyZm9yY2UtMS45LjYtMjAxNzEyMDEuMjMyODAwLTEyLmphcgo+ID4gPiA+ICg4NiBrQiBhdCA1NSBrQi9zKQo+ID4gPiA+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXRmcy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gPiA+IHByb3ZpZGVyLXRmcy0xLjkuNi0yMDE3MTIwMS4yMzI4MzUtMTIuamFyCj4gPiA+ID4gW3dpbmRvd3MtamRrOQo+ID4gPiA+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXRmcy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gPiA+IHByb3ZpZGVyLXRmcy0xLjkuNi0yMDE3MTIwMS4yMzI4MzUtMTIuamFyJTVCd2luZG93cy1qZGs5Pl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXN0YXJ0ZWFtLzEuOS42LVNOQVBTSE9UL21hdmVuLQo+ID4gPiBzY20tcHJvdmlkZXItc3RhcnRlYW0tMS45LjYtMjAxNzEyMDEuMjMyODA2LTEyLmphcgo+ID4gPiA+ICg3MyBrQiBhdCA0NSBrQi9zKQo+ID4gPiA+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWludGVncml0eS8xLjkuNi1TTkFQU0hPVC8KPiA+ID4gbWF2ZW4tc2NtLXByb3ZpZGVyLWludGVncml0eS0xLjkuNi0yMDE3MTIwMS4yMzI3MjctMTIuamFyCj4gPiA+ID4gW3dpbmRvd3MtamRrOQo+ID4gPiA+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWludGVncml0eS8xLjkuNi1TTkFQU0hPVC8KPiA+ID4gbWF2ZW4tc2NtLXByb3ZpZGVyLWludGVncml0eS0xLjkuNi0yMDE3MTIwMS4yMzI3MjctMTIuamFyJQo+ID4gNUJ3aW5kb3dzLWpkazk+XQo+ID4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItc3ZuZXhlLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS0KPiA+ID4gcHJvdmlkZXItc3ZuZXhlLTEuOS42LTIwMTcxMjAxLjIzMjgxNy0xMi5qYXIKPiA+ID4gPiAoODEga0IgYXQgNTAga0IvcykKPiA+ID4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1qYXp6LzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS0KPiA+ID4gcHJvdmlkZXItamF6ei0xLjkuNi0yMDE3MTIwMS4yMzI3MzMtMTIuamFyCj4gPiA+ID4gW3dpbmRvd3MtamRrOQo+ID4gPiA+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWphenovMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+ID4gPiBwcm92aWRlci1qYXp6LTEuOS42LTIwMTcxMjAxLjIzMjczMy0xMi5qYXIlNUJ3aW5kb3dzLWpkazk+XQo+ID4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItc3luZXJneS8xLjkuNi1TTkFQU0hPVC9tYXZlbi0KPiA+ID4gc2NtLXByb3ZpZGVyLXN5bmVyZ3ktMS45LjYtMjAxNzEyMDEuMjMyODI5LTEyLmphcgo+ID4gPiA+ICg2MCBrQiBhdCAzNSBrQi9zKQo+ID4gPiA+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLWFwaS8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tYXBpLTEuOS42LQo+ID4gPiAyMDE3MTIwMS4yMzI1NTYtMTIuamFyCj4gPiA+ID4gW3dpbmRvd3MtamRrOQo+ID4gPiA+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLWFwaS8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tYXBpLTEuOS42LQo+ID4gPiAyMDE3MTIwMS4yMzI1NTYtMTIuamFyJTVCd2luZG93cy1qZGs5Pl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXZzcy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gPiA+IHByb3ZpZGVyLXZzcy0xLjkuNi0yMDE3MTIwMS4yMzI4NDEtMTIuamFyCj4gPiA+ID4gKDcyIGtCIGF0IDQyIGtCL3MpCj4gPiA+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItc3ZuLWNvbW1vbnMvMS45LjYtU05BUFNIT1QvbWF2ZW4tCj4gPiA+IHNjbS1wcm92aWRlci1zdm4tY29tbW9ucy0xLjkuNi0yMDE3MTIwMS4yMzI4MTItMTIuamFyCj4gPiA+ID4gW3dpbmRvd3MtamRrOQo+ID4gPiA+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXN2bi1jb21tb25zLzEuOS42LVNOQVBTSE9UL21hdmVuLQo+ID4gPiBzY20tcHJvdmlkZXItc3ZuLWNvbW1vbnMtMS45LjYtMjAxNzEyMDEuMjMyODEyLTEyLmphciU1QndpbmRvd3MtamRrOT49Cl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXRmcy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gPiA+IHByb3ZpZGVyLXRmcy0xLjkuNi0yMDE3MTIwMS4yMzI4MzUtMTIuamFyCj4gPiA+ID4gKDQ1IGtCIGF0IDIxIGtCL3MpCj4gPiA+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IHNjbS9tYXZlbi1zY20tdGVzdC8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tdGVzdC0xLjkuNi0KPiA+ID4gMjAxNzEyMDEuMjMyOTE4LTEyLmphcgo+ID4gPiA+IFt3aW5kb3dzLWpkazkKPiA+ID4gPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gc2NtL21hdmVuLXNjbS10ZXN0LzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS10ZXN0LTEuOS42LQo+ID4gPiAyMDE3MTIwMS4yMzI5MTgtMTIuamFyJTVCd2luZG93cy1qZGs5Pl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWludGVncml0eS8xLjkuNi1TTkFQU0hPVC8KPiA+ID4gbWF2ZW4tc2NtLXByb3ZpZGVyLWludGVncml0eS0xLjkuNi0yMDE3MTIwMS4yMzI3MjctMTIuamFyCj4gPiA+ID4gKDgyIGtCIGF0IDM4IGtCL3MpCj4gPiA+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1zdm4tY29tbW9ucy8xLjkuNi1TTkFQU0hPVC9tYXZlbi0KPiA+ID4gc2NtLXByb3ZpZGVyLXN2bi1jb21tb25zLTEuOS42LTIwMTcxMjAxLjIzMjgxMi0xMi5qYXIKPiA+ID4gPiAoMzgga0IgYXQgMTgga0IvcykKPiA+ID4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWphenovMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+ID4gPiBwcm92aWRlci1qYXp6LTEuOS42LTIwMTcxMjAxLjIzMjczMy0xMi5qYXIKPiA+ID4gPiAoNjkga0IgYXQgMzIga0IvcykKPiA+ID4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLWFwaS8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tYXBpLTEuOS42LQo+ID4gPiAyMDE3MTIwMS4yMzI1NTYtMTIuamFyCj4gPiA+ID4gKDEwOSBrQiBhdCA0NyBrQi9zKQo+ID4gPiA+IFt3aW5kb3dzLWpkazddIFNlbmRpbmcgaW50ZXJydXB0IHNpZ25hbCB0byBwcm9jZXNzCj4gPiA+ID4gW3dpbmRvd3MtamRrN10gW0lORk9dIFJhdCBjaGVjazogU3VtbWFyeSBvZiBmaWxlcy4gVW5hcHByb3ZlZDogMAo+ID4gdW5rbm93bjoKPiA+ID4gPiAwIGdlbmVyYXRlZDogMCBhcHByb3ZlZDogMTA3NyBsaWNlbmNlLgo+ID4gPiA+IFt3aW5kb3dzLWpkazddIFtJTkZPXQo+ID4gPiA+IFt3aW5kb3dzLWpkazddIFtJTkZPXSAtLS0gbW9kZWxsby1tYXZlbi1wbHVnaW46MS43OnhwcDMtcmVhZGVyCj4gPiA+IChkZWZhdWx0KSBACj4gPiA+ID4gbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyIC0tLQo+ID4gPiA+IFt3aW5kb3dzLWpkazddIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiA+ID4gcGx1Z2luLWFwaS8yLjAuNy9tYXZlbi1wbHVnaW4tYXBpLTIuMC43LnBvbQo+ID4gPiA+IFt3aW5kb3dzLWpkazcKPiA+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IG1hdmVuLXBsdWdpbi1hcGkvMi4wLjcvbWF2ZW4tcGx1Z2luLWFwaS0yLjAuNy5wb20lNUJ3aW5kb3dzLWpkazc+XQo+ID4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gPiBwbHVnaW4tYXBpLzIuMC43L21hdmVuLXBsdWdpbi1hcGktMi4wLjcucG9tCj4gPiA+ID4gKDEuNSBrQiBhdCAxMjEga0IvcykKPiA+ID4gPiBbd2luZG93cy1qZGs3XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4vCj4gPiA+IDIuMC43L21hdmVuLTIuMC43LnBvbQo+ID4gPiA+IFt3aW5kb3dzLWpkazcKPiA+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IG1hdmVuLzIuMC43L21hdmVuLTIuMC43LnBvbSU1QndpbmRvd3MtamRrNz5dCj4gPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4vCj4gPiA+IDIuMC43L21hdmVuLTIuMC43LnBvbQo+ID4gPiA+ICgxMSBrQiBhdCAxLjIgTUIvcykKPiA+ID4gPiBbd2luZG93cy1qZGs3XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gPiBtb2RlbGxvLWNvcmUvMS43L21vZGVsbG8tY29yZS0xLjcucG9tCj4gPiA+ID4gW3dpbmRvd3MtamRrNwo+ID4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+ID4gPiBtb2RlbGxvL21vZGVsbG8tY29yZS8xLjcvbW9kZWxsby1jb3JlLTEuNy5wb20lNUJ3aW5kb3dzLWpkazc+XQo+ID4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+ID4gbW9kZWxsby1jb3JlLzEuNy9tb2RlbGxvLWNvcmUtMS43LnBvbQo+ID4gPiA+ICgxLjUga0IgYXQgMTM2IGtCL3MpCj4gPiA+ID4gW3dpbmRvd3MtamRrN10gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvc29uYXR5cGUvcGxleHVzLwo+ID4gPiBwbGV4dXMtYnVpbGQtYXBpLzAuMC43L3BsZXh1cy1idWlsZC1hcGktMC4wLjcucG9tCj4gPiA+ID4gW3dpbmRvd3MtamRrOQo+ID4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL3NvbmF0eXBlLwo+ID4gPiBwbGV4dXMvcGxleHVzLWJ1aWxkLWFwaS8wLjAuNy9wbGV4dXMtYnVpbGQtYXBpLTAuMC43LnBvbSUKPiA+IDVCd2luZG93cy1qZGs5Pl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXRlc3QvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLXRlc3QtMS45LjYtCj4gPiA+IDIwMTcxMjAxLjIzMjkxOC0xMi5qYXIKPiA+ID4gPiAoNTEga0IgYXQgMTkga0IvcykKPiA+ID4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10KPiA+ID4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gLS0tIG1hdmVuLWNsZWFuLXBsdWdpbjoyLjU6Y2xlYW4KPiAoZGVmYXVsdC1jbGVhbikKPiA+IEAKPiA+ID4gPiBtYXZlbi1yZWxlYXNlLW1hbmFnZXIgLS0tCj4gPiA+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dCj4gPiA+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dIC0tLSBtYXZlbi1lbmZvcmNlci1wbHVnaW46MS4zLjE6ZW5mb3JjZQo+ID4gPiA+IChlbmZvcmNlLWJ5dGVjb2RlLXZlcnNpb24pIEAgbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyIC0tLQo+ID4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBSYXQgY2hlY2s6IFN1bW1hcnkgb2YgZmlsZXMuIFVuYXBwcm92ZWQ6IDAKPiA+IHVua25vd246Cj4gPiA+ID4gMCBnZW5lcmF0ZWQ6IDAgYXBwcm92ZWQ6IDEwNzcgbGljZW5jZS4KPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10KPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gLS0tIG1vZGVsbG8tbWF2ZW4tcGx1Z2luOjEuNzp4cHAzLXJlYWRlcgo+ID4gPiAoZGVmYXVsdCkgQAo+ID4gPiA+IG1hdmVuLXJlbGVhc2UtbWFuYWdlciAtLS0KPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiA+IHBsdWdpbi1hcGkvMi4wLjcvbWF2ZW4tcGx1Z2luLWFwaS0yLjAuNy5wb20KPiA+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBtYXZlbi1wbHVnaW4tYXBpLzIuMC43L21hdmVuLXBsdWdpbi1hcGktMi4wLjcucG9tJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiA+ID4gcGx1Z2luLWFwaS8yLjAuNy9tYXZlbi1wbHVnaW4tYXBpLTIuMC43LnBvbQo+ID4gPiA+ICgxLjUga0IgYXQgMTMyIGtCL3MpCj4gPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLwo+ID4gPiAyLjAuNy9tYXZlbi0yLjAuNy5wb20KPiA+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBtYXZlbi8yLjAuNy9tYXZlbi0yLjAuNy5wb20lNUJ3aW5kb3dzLWpkazg+XQo+ID4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLwo+ID4gPiAyLjAuNy9tYXZlbi0yLjAuNy5wb20KPiA+ID4gPiAoMTEga0IgYXQgMS4zIE1CL3MpCj4gPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+ID4gbW9kZWxsby1jb3JlLzEuNy9tb2RlbGxvLWNvcmUtMS43LnBvbQo+ID4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy8KPiA+ID4gbW9kZWxsby9tb2RlbGxvLWNvcmUvMS43L21vZGVsbG8tY29yZS0xLjcucG9tJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiA+IG1vZGVsbG8tY29yZS8xLjcvbW9kZWxsby1jb3JlLTEuNy5wb20KPiA+ID4gPiAoMS41IGtCIGF0IDE2NyBrQi9zKQo+ID4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL3NvbmF0eXBlL3BsZXh1cy8KPiA+ID4gcGxleHVzLWJ1aWxkLWFwaS8wLjAuNy9wbGV4dXMtYnVpbGQtYXBpLTAuMC43LnBvbQo+ID4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9zb25hdHlwZS8KPiA+ID4gcGxleHVzL3BsZXh1cy1idWlsZC1hcGkvMC4wLjcvcGxleHVzLWJ1aWxkLWFwaS0wLjAuNy5wb20lCj4gPiA1QndpbmRvd3MtamRrOD5dCj4gPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9zb25hdHlwZS9wbGV4dXMvCj4gPiA+IHBsZXh1cy1idWlsZC1hcGkvMC4wLjcvcGxleHVzLWJ1aWxkLWFwaS0wLjAuNy5wb20KPiA+ID4gPiAoMy4yIGtCIGF0IDMyMCBrQi9zKQo+ID4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL3NvbmF0eXBlL3NwaWNlLwo+ID4gPiBzcGljZS1wYXJlbnQvMTUvc3BpY2UtcGFyZW50LTE1LnBvbQo+ID4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9zb25hdHlwZS9zcGljZS8KPiA+ID4gc3BpY2UtcGFyZW50LzE1L3NwaWNlLXBhcmVudC0xNS5wb20lNUJ3aW5kb3dzLWpkazg+XQo+ID4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvc29uYXR5cGUvc3BpY2UvCj4gPiA+IHNwaWNlLXBhcmVudC8xNS9zcGljZS1wYXJlbnQtMTUucG9tCj4gPiA+ID4gKDguNCBrQiBhdCA2OTYga0IvcykKPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9wbGV4dXMvCj4gPiA+IHBsZXh1cy11dGlscy8zLjAuOS9wbGV4dXMtdXRpbHMtMy4wLjkucG9tCj4gPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+ID4gPiBwbGV4dXMvcGxleHVzLXV0aWxzLzMuMC45L3BsZXh1cy11dGlscy0zLjAuOS5wb20lNUJ3aW5kb3dzLWpkazg+XQo+ID4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvcGxleHVzLwo+ID4gPiBwbGV4dXMtdXRpbHMvMy4wLjkvcGxleHVzLXV0aWxzLTMuMC45LnBvbQo+ID4gPiA+ICgzLjEga0IgYXQgMjg2IGtCL3MpCj4gPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gPiBwcm9qZWN0LzIuMC43L21hdmVuLXByb2plY3QtMi4wLjcucG9tCj4gPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gbWF2ZW4tcHJvamVjdC8yLjAuNy9tYXZlbi1wcm9qZWN0LTIuMC43LnBvbSU1QndpbmRvd3MtamRrOD5dCj4gPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiA+IHByb2plY3QvMi4wLjcvbWF2ZW4tcHJvamVjdC0yLjAuNy5wb20KPiA+ID4gPiAoMi42IGtCIGF0IDI0MCBrQi9zKQo+ID4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiA+ID4gc2V0dGluZ3MvMi4wLjcvbWF2ZW4tc2V0dGluZ3MtMi4wLjcucG9tCj4gPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gbWF2ZW4tc2V0dGluZ3MvMi4wLjcvbWF2ZW4tc2V0dGluZ3MtMi4wLjcucG9tJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiA+ID4gc2V0dGluZ3MvMi4wLjcvbWF2ZW4tc2V0dGluZ3MtMi4wLjcucG9tCj4gPiA+ID4gKDIuMCBrQiBhdCAyNTAga0IvcykKPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiA+IG1vZGVsLzIuMC43L21hdmVuLW1vZGVsLTIuMC43LnBvbQo+ID4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IG1hdmVuLW1vZGVsLzIuMC43L21hdmVuLW1vZGVsLTIuMC43LnBvbSU1QndpbmRvd3MtamRrOD5dCj4gPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiA+IG1vZGVsLzIuMC43L21hdmVuLW1vZGVsLTIuMC43LnBvbQo+ID4gPiA+ICgzLjAga0IgYXQgMzgxIGtCL3MpCj4gPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gPiBwcm9maWxlLzIuMC43L21hdmVuLXByb2ZpbGUtMi4wLjcucG9tCj4gPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gbWF2ZW4tcHJvZmlsZS8yLjAuNy9tYXZlbi1wcm9maWxlLTIuMC43LnBvbSU1QndpbmRvd3MtamRrOD5dCj4gPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiA+IHByb2ZpbGUvMi4wLjcvbWF2ZW4tcHJvZmlsZS0yLjAuNy5wb20KPiA+ID4gPiAoMi4wIGtCIGF0IDI0OCBrQi9zKQo+ID4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiA+ID4gYXJ0aWZhY3QtbWFuYWdlci8yLjAuNy9tYXZlbi1hcnRpZmFjdC1tYW5hZ2VyLTIuMC43LnBvbQo+ID4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IG1hdmVuLWFydGlmYWN0LW1hbmFnZXIvMi4wLjcvbWF2ZW4tYXJ0aWZhY3QtbWFuYWdlci0yLjAuNy4KPiA+ID4gcG9tJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiA+ID4gYXJ0aWZhY3QtbWFuYWdlci8yLjAuNy9tYXZlbi1hcnRpZmFjdC1tYW5hZ2VyLTIuMC43LnBvbQo+ID4gPiA+ICgyLjYga0IgYXQgMjkxIGtCL3MpCj4gPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gPiByZXBvc2l0b3J5LW1ldGFkYXRhLzIuMC43L21hdmVuLXJlcG9zaXRvcnktbWV0YWRhdGEtMi4wLjcucG9tCj4gPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gbWF2ZW4tcmVwb3NpdG9yeS1tZXRhZGF0YS8yLjAuNy9tYXZlbi1yZXBvc2l0b3J5LW1ldGFkYXRhLTIuCj4gPiA+IDAuNy5wb20lNUJ3aW5kb3dzLWpkazg+XQo+ID4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gPiByZXBvc2l0b3J5LW1ldGFkYXRhLzIuMC43L21hdmVuLXJlcG9zaXRvcnktbWV0YWRhdGEtMi4wLjcucG9tCj4gPiA+ID4gKDEuOSBrQiBhdCAxNjgga0IvcykKPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiA+IGFydGlmYWN0LzIuMC43L21hdmVuLWFydGlmYWN0LTIuMC43LnBvbQo+ID4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IG1hdmVuLWFydGlmYWN0LzIuMC43L21hdmVuLWFydGlmYWN0LTIuMC43LnBvbSU1QndpbmRvd3MtamRrOD5dCj4gPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiA+IGFydGlmYWN0LzIuMC43L21hdmVuLWFydGlmYWN0LTIuMC43LnBvbQo+ID4gPiA+ICgxLjYga0IgYXQgMjI1IGtCL3MpCj4gPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gPiBwbHVnaW4tcmVnaXN0cnkvMi4wLjcvbWF2ZW4tcGx1Z2luLXJlZ2lzdHJ5LTIuMC43LnBvbQo+ID4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IG1hdmVuLXBsdWdpbi1yZWdpc3RyeS8yLjAuNy9tYXZlbi1wbHVnaW4tcmVnaXN0cnktMi4wLjcuCj4gPiBwb20lNUJ3aW5kb3dzLWpkazgKPiA+ID4gPl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiA+ID4gcGx1Z2luLXJlZ2lzdHJ5LzIuMC43L21hdmVuLXBsdWdpbi1yZWdpc3RyeS0yLjAuNy5wb20KPiA+ID4gPiAoMS45IGtCIGF0IDI3OCBrQi9zKQo+ID4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiA+IG1vZGVsbG8tcGx1Z2luLWNvbnZlcnRlcnMvMS43L21vZGVsbG8tcGx1Z2luLWNvbnZlcnRlcnMtMS43LnBvbQo+ID4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy8KPiA+ID4gbW9kZWxsby9tb2RlbGxvLXBsdWdpbi1jb252ZXJ0ZXJzLzEuNy9tb2RlbGxvLXBsdWdpbi0KPiA+ID4gY29udmVydGVycy0xLjcucG9tJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiA+IG1vZGVsbG8tcGx1Z2luLWNvbnZlcnRlcnMvMS43L21vZGVsbG8tcGx1Z2luLWNvbnZlcnRlcnMtMS43LnBvbQo+ID4gPiA+ICgxLjYga0IgYXQgMjAwIGtCL3MpCj4gPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+ID4gbW9kZWxsby1wbHVnaW5zLzEuNy9tb2RlbGxvLXBsdWdpbnMtMS43LnBvbQo+ID4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy8KPiA+ID4gbW9kZWxsby9tb2RlbGxvLXBsdWdpbnMvMS43L21vZGVsbG8tcGx1Z2lucy0xLjcucG9tJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiA+IG1vZGVsbG8tcGx1Z2lucy8xLjcvbW9kZWxsby1wbHVnaW5zLTEuNy5wb20KPiA+ID4gPiAoMi4zIGtCIGF0IDI1OCBrQi9zKQo+ID4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiA+IG1vZGVsbG8tcGx1Z2luLWphdmEvMS43L21vZGVsbG8tcGx1Z2luLWphdmEtMS43LnBvbQo+ID4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy8KPiA+ID4gbW9kZWxsby9tb2RlbGxvLXBsdWdpbi1qYXZhLzEuNy9tb2RlbGxvLXBsdWdpbi1qYXZhLTEuNy5wb20lCj4gPiA1QndpbmRvd3MtamRrOAo+ID4gPiA+XQo+ID4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+ID4gbW9kZWxsby1wbHVnaW4tamF2YS8xLjcvbW9kZWxsby1wbHVnaW4tamF2YS0xLjcucG9tCj4gPiA+ID4gKDIuNiBrQiBhdCAzMjMga0IvcykKPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gPiBtb2RlbGxvLXBsdWdpbi1kb200ai8xLjcvbW9kZWxsby1wbHVnaW4tZG9tNGotMS43LnBvbQo+ID4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy8KPiA+ID4gbW9kZWxsby9tb2RlbGxvLXBsdWdpbi1kb200ai8xLjcvbW9kZWxsby1wbHVnaW4tZG9tNGotMS43Lgo+ID4gPiBwb20lNUJ3aW5kb3dzLWpkazg+XQo+ID4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+ID4gbW9kZWxsby1wbHVnaW4tZG9tNGovMS43L21vZGVsbG8tcGx1Z2luLWRvbTRqLTEuNy5wb20KPiA+ID4gPiAoMS42IGtCIGF0IDE5NyBrQi9zKQo+ID4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiA+IG1vZGVsbG8tcGx1Z2luLXhtbC8xLjcvbW9kZWxsby1wbHVnaW4teG1sLTEuNy5wb20KPiA+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gPiA+IG1vZGVsbG8vbW9kZWxsby1wbHVnaW4teG1sLzEuNy9tb2RlbGxvLXBsdWdpbi14bWwtMS43LnBvbSUKPiA+IDVCd2luZG93cy1qZGs4Pl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiA+IG1vZGVsbG8tcGx1Z2luLXhtbC8xLjcvbW9kZWxsby1wbHVnaW4teG1sLTEuNy5wb20KPiA+ID4gPiAoMS4wIGtCIGF0IDE0OSBrQi9zKQo+ID4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiA+IG1vZGVsbG8tcGx1Z2luLWpkb20vMS43L21vZGVsbG8tcGx1Z2luLWpkb20tMS43LnBvbQo+ID4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy8KPiA+ID4gbW9kZWxsby9tb2RlbGxvLXBsdWdpbi1qZG9tLzEuNy9tb2RlbGxvLXBsdWdpbi1qZG9tLTEuNy5wb20lCj4gPiA1QndpbmRvd3MtamRrOAo+ID4gPiA+XQo+ID4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+ID4gbW9kZWxsby1wbHVnaW4tamRvbS8xLjcvbW9kZWxsby1wbHVnaW4tamRvbS0xLjcucG9tCj4gPiA+ID4gKDEuOSBrQiBhdCAyNjgga0IvcykKPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gPiBtb2RlbGxvLXBsdWdpbi1zdGF4LzEuNy9tb2RlbGxvLXBsdWdpbi1zdGF4LTEuNy5wb20KPiA+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gPiA+IG1vZGVsbG8vbW9kZWxsby1wbHVnaW4tc3RheC8xLjcvbW9kZWxsby1wbHVnaW4tc3RheC0xLjcucG9tJQo+ID4gNUJ3aW5kb3dzLWpkazgKPiA+ID4gPl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiA+IG1vZGVsbG8tcGx1Z2luLXN0YXgvMS43L21vZGVsbG8tcGx1Z2luLXN0YXgtMS43LnBvbQo+ID4gPiA+ICgyLjMga0IgYXQgMjkwIGtCL3MpCj4gPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+ID4gbW9kZWxsby1wbHVnaW4teGRvYy8xLjcvbW9kZWxsby1wbHVnaW4teGRvYy0xLjcucG9tCj4gPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+ID4gPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2luLXhkb2MvMS43L21vZGVsbG8tcGx1Z2luLXhkb2MtMS43LnBvbSUKPiA+IDVCd2luZG93cy1qZGs4Cj4gPiA+ID5dCj4gPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gPiBtb2RlbGxvLXBsdWdpbi14ZG9jLzEuNy9tb2RlbGxvLXBsdWdpbi14ZG9jLTEuNy5wb20KPiA+ID4gPiAoMS4yIGtCIGF0IDIwNiBrQi9zKQo+ID4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiA+IG1vZGVsbG8tcGx1Z2luLXhzZC8xLjcvbW9kZWxsby1wbHVnaW4teHNkLTEuNy5wb20KPiA+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gPiA+IG1vZGVsbG8vbW9kZWxsby1wbHVnaW4teHNkLzEuNy9tb2RlbGxvLXBsdWdpbi14c2QtMS43LnBvbSUKPiA+IDVCd2luZG93cy1qZGs4Pl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiA+IG1vZGVsbG8tcGx1Z2luLXhzZC8xLjcvbW9kZWxsby1wbHVnaW4teHNkLTEuNy5wb20KPiA+ID4gPiAoMS4zIGtCIGF0IDE5MSBrQi9zKQo+ID4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiA+IG1vZGVsbG8tcGx1Z2luLXhwcDMvMS43L21vZGVsbG8tcGx1Z2luLXhwcDMtMS43LnBvbQo+ID4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy8KPiA+ID4gbW9kZWxsby9tb2RlbGxvLXBsdWdpbi14cHAzLzEuNy9tb2RlbGxvLXBsdWdpbi14cHAzLTEuNy5wb20lCj4gPiA1QndpbmRvd3MtamRrOAo+ID4gPiA+XQo+ID4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+ID4gbW9kZWxsby1wbHVnaW4teHBwMy8xLjcvbW9kZWxsby1wbHVnaW4teHBwMy0xLjcucG9tCj4gPiA+ID4gKDEuNCBrQiBhdCAxNzkga0IvcykKPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiA+IHBsdWdpbi1hcGkvMi4wLjcvbWF2ZW4tcGx1Z2luLWFwaS0yLjAuNy5qYXIKPiA+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBtYXZlbi1wbHVnaW4tYXBpLzIuMC43L21hdmVuLXBsdWdpbi1hcGktMi4wLjcuamFyJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gPiBtb2RlbGxvLWNvcmUvMS43L21vZGVsbG8tY29yZS0xLjcuamFyCj4gPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+ID4gPiBtb2RlbGxvL21vZGVsbG8tY29yZS8xLjcvbW9kZWxsby1jb3JlLTEuNy5qYXIlNUJ3aW5kb3dzLWpkazg+XQo+ID4gPiA+IFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiA+ID4gc2V0dGluZ3MvMi4wLjcvbWF2ZW4tc2V0dGluZ3MtMi4wLjcuamFyCj4gPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gbWF2ZW4tc2V0dGluZ3MvMi4wLjcvbWF2ZW4tc2V0dGluZ3MtMi4wLjcuamFyJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiA+IHByb2ZpbGUvMi4wLjcvbWF2ZW4tcHJvZmlsZS0yLjAuNy5qYXIKPiA+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBtYXZlbi1wcm9maWxlLzIuMC43L21hdmVuLXByb2ZpbGUtMi4wLjcuamFyJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiA+IHByb2plY3QvMi4wLjcvbWF2ZW4tcHJvamVjdC0yLjAuNy5qYXIKPiA+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBtYXZlbi1wcm9qZWN0LzIuMC43L21hdmVuLXByb2plY3QtMi4wLjcuamFyJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiA+IG1vZGVsbG8tY29yZS8xLjcvbW9kZWxsby1jb3JlLTEuNy5qYXIKPiA+ID4gPiAoNTgga0IgYXQgMy42IE1CL3MpCj4gPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gPiBhcnRpZmFjdC1tYW5hZ2VyLzIuMC43L21hdmVuLWFydGlmYWN0LW1hbmFnZXItMi4wLjcuamFyCj4gPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gbWF2ZW4tYXJ0aWZhY3QtbWFuYWdlci8yLjAuNy9tYXZlbi1hcnRpZmFjdC1tYW5hZ2VyLTIuMC43Lgo+ID4gPiBqYXIlNUJ3aW5kb3dzLWpkazg+XQo+ID4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gPiBwcm9maWxlLzIuMC43L21hdmVuLXByb2ZpbGUtMi4wLjcuamFyCj4gPiA+ID4gKDM1IGtCIGF0IDIuMSBNQi9zKQo+ID4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiA+ID4gcmVwb3NpdG9yeS1tZXRhZGF0YS8yLjAuNy9tYXZlbi1yZXBvc2l0b3J5LW1ldGFkYXRhLTIuMC43Lmphcgo+ID4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IG1hdmVuLXJlcG9zaXRvcnktbWV0YWRhdGEvMi4wLjcvbWF2ZW4tcmVwb3NpdG9yeS1tZXRhZGF0YS0yLgo+ID4gPiAwLjcuamFyJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiA+ID4gc2V0dGluZ3MvMi4wLjcvbWF2ZW4tc2V0dGluZ3MtMi4wLjcuamFyCj4gPiA+ID4gKDQ5IGtCIGF0IDIuNyBNQi9zKQo+ID4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiA+ID4gcGx1Z2luLXJlZ2lzdHJ5LzIuMC43L21hdmVuLXBsdWdpbi1yZWdpc3RyeS0yLjAuNy5qYXIKPiA+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBtYXZlbi1wbHVnaW4tcmVnaXN0cnkvMi4wLjcvbWF2ZW4tcGx1Z2luLXJlZ2lzdHJ5LTIuMC43Lgo+ID4gamFyJTVCd2luZG93cy1qZGs4Cj4gPiA+ID5dCj4gPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiA+IHBsdWdpbi1hcGkvMi4wLjcvbWF2ZW4tcGx1Z2luLWFwaS0yLjAuNy5qYXIKPiA+ID4gPiAoMTMga0IgYXQgNTU5IGtCL3MpCj4gPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gPiBhcnRpZmFjdC8yLjAuNy9tYXZlbi1hcnRpZmFjdC0yLjAuNy5qYXIKPiA+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBtYXZlbi1hcnRpZmFjdC8yLjAuNy9tYXZlbi1hcnRpZmFjdC0yLjAuNy5qYXIlNUJ3aW5kb3dzLWpkazg+XQo+ID4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+ID4gPiBwcm9qZWN0LzIuMC43L21hdmVuLXByb2plY3QtMi4wLjcuamFyCj4gPiA+ID4gKDExNyBrQiBhdCA0LjkgTUIvcykKPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiA+IG1vZGVsLzIuMC43L21hdmVuLW1vZGVsLTIuMC43Lmphcgo+ID4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IG1hdmVuLW1vZGVsLzIuMC43L21hdmVuLW1vZGVsLTIuMC43LmphciU1QndpbmRvd3MtamRrOD5dCj4gPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiA+IHJlcG9zaXRvcnktbWV0YWRhdGEvMi4wLjcvbWF2ZW4tcmVwb3NpdG9yeS1tZXRhZGF0YS0yLjAuNy5qYXIKPiA+ID4gPiAoMjQga0IgYXQgODc0IGtCL3MpCj4gPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvcGxleHVzLwo+ID4gPiBwbGV4dXMtdXRpbHMvMy4wLjkvcGxleHVzLXV0aWxzLTMuMC45Lmphcgo+ID4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy8KPiA+ID4gcGxleHVzL3BsZXh1cy11dGlscy8zLjAuOS9wbGV4dXMtdXRpbHMtMy4wLjkuamFyJTVCd2luZG93cy1qZGs4Pl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiA+ID4gYXJ0aWZhY3QtbWFuYWdlci8yLjAuNy9tYXZlbi1hcnRpZmFjdC1tYW5hZ2VyLTIuMC43Lmphcgo+ID4gPiA+ICg1NyBrQiBhdCAxLjkgTUIvcykKPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gPiBtb2RlbGxvLXBsdWdpbi1jb252ZXJ0ZXJzLzEuNy9tb2RlbGxvLXBsdWdpbi1jb252ZXJ0ZXJzLTEuNy5qYXIKPiA+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gPiA+IG1vZGVsbG8vbW9kZWxsby1wbHVnaW4tY29udmVydGVycy8xLjcvbW9kZWxsby1wbHVnaW4tCj4gPiA+IGNvbnZlcnRlcnMtMS43LmphciU1QndpbmRvd3MtamRrOD5dCj4gPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiA+IHBsdWdpbi1yZWdpc3RyeS8yLjAuNy9tYXZlbi1wbHVnaW4tcmVnaXN0cnktMi4wLjcuamFyCj4gPiA+ID4gKDI5IGtCIGF0IDg3NyBrQi9zKQo+ID4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiA+IG1vZGVsbG8tcGx1Z2luLWRvbTRqLzEuNy9tb2RlbGxvLXBsdWdpbi1kb200ai0xLjcuamFyCj4gPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+ID4gPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2luLWRvbTRqLzEuNy9tb2RlbGxvLXBsdWdpbi1kb200ai0xLjcuCj4gPiA+IGphciU1QndpbmRvd3MtamRrOD5dCj4gPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiA+IGFydGlmYWN0LzIuMC43L21hdmVuLWFydGlmYWN0LTIuMC43Lmphcgo+ID4gPiA+ICg4OCBrQiBhdCAyLjQgTUIvcykKPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gPiBtb2RlbGxvLXBsdWdpbi14bWwvMS43L21vZGVsbG8tcGx1Z2luLXhtbC0xLjcuamFyCj4gPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+ID4gPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2luLXhtbC8xLjcvbW9kZWxsby1wbHVnaW4teG1sLTEuNy5qYXIlCj4gPiA1QndpbmRvd3MtamRrOD5dCj4gPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gPiA+IG1vZGVsLzIuMC43L21hdmVuLW1vZGVsLTIuMC43Lmphcgo+ID4gPiA+ICg4NiBrQiBhdCAyLjIgTUIvcykKPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gPiBtb2RlbGxvLXBsdWdpbi1qYXZhLzEuNy9tb2RlbGxvLXBsdWdpbi1qYXZhLTEuNy5qYXIKPiA+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gPiA+IG1vZGVsbG8vbW9kZWxsby1wbHVnaW4tamF2YS8xLjcvbW9kZWxsby1wbHVnaW4tamF2YS0xLjcuamFyJQo+ID4gNUJ3aW5kb3dzLWpkazgKPiA+ID4gPl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiA+IG1vZGVsbG8tcGx1Z2luLWNvbnZlcnRlcnMvMS43L21vZGVsbG8tcGx1Z2luLWNvbnZlcnRlcnMtMS43Lmphcgo+ID4gPiA+ICg5LjQga0IgYXQgMjI0IGtCL3MpCj4gPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+ID4gbW9kZWxsby1wbHVnaW4tamRvbS8xLjcvbW9kZWxsby1wbHVnaW4tamRvbS0xLjcuamFyCj4gPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+ID4gPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2luLWpkb20vMS43L21vZGVsbG8tcGx1Z2luLWpkb20tMS43LmphciUKPiA+IDVCd2luZG93cy1qZGs4Cj4gPiA+ID5dCj4gPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gPiBtb2RlbGxvLXBsdWdpbi1kb200ai8xLjcvbW9kZWxsby1wbHVnaW4tZG9tNGotMS43Lmphcgo+ID4gPiA+ICgxOCBrQiBhdCA0Mjcga0IvcykKPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gPiBtb2RlbGxvLXBsdWdpbi1zdGF4LzEuNy9tb2RlbGxvLXBsdWdpbi1zdGF4LTEuNy5qYXIKPiA+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gPiA+IG1vZGVsbG8vbW9kZWxsby1wbHVnaW4tc3RheC8xLjcvbW9kZWxsby1wbHVnaW4tc3RheC0xLjcuamFyJQo+ID4gNUJ3aW5kb3dzLWpkazgKPiA+ID4gPl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiA+IG1vZGVsbG8tcGx1Z2luLXhtbC8xLjcvbW9kZWxsby1wbHVnaW4teG1sLTEuNy5qYXIKPiA+ID4gPiAoMTUga0IgYXQgMzA3IGtCL3MpCj4gPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiA+ID4gbW9kZWxsby1wbHVnaW4teGRvYy8xLjcvbW9kZWxsby1wbHVnaW4teGRvYy0xLjcuamFyCj4gPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+ID4gPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2luLXhkb2MvMS43L21vZGVsbG8tcGx1Z2luLXhkb2MtMS43LmphciUKPiA+IDVCd2luZG93cy1qZGs4Cj4gPiA+ID5dCj4gPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9wbGV4dXMvCj4gPiA+IHBsZXh1cy11dGlscy8zLjAuOS9wbGV4dXMtdXRpbHMtMy4wLjkuamFyCj4gPiA+ID4gKDIzMiBrQiBhdCA0LjYgTUIvcykKPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gPiBtb2RlbGxvLXBsdWdpbi14cHAzLzEuNy9tb2RlbGxvLXBsdWdpbi14cHAzLTEuNy5qYXIKPiA+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gPiA+IG1vZGVsbG8vbW9kZWxsby1wbHVnaW4teHBwMy8xLjcvbW9kZWxsby1wbHVnaW4teHBwMy0xLjcuamFyJQo+ID4gNUJ3aW5kb3dzLWpkazgKPiA+ID4gPl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiA+IG1vZGVsbG8tcGx1Z2luLWpkb20vMS43L21vZGVsbG8tcGx1Z2luLWpkb20tMS43Lmphcgo+ID4gPiA+ICgxNCBrQiBhdCAyNjkga0IvcykKPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gPiBtb2RlbGxvLXBsdWdpbi14c2QvMS43L21vZGVsbG8tcGx1Z2luLXhzZC0xLjcuamFyCj4gPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+ID4gPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2luLXhzZC8xLjcvbW9kZWxsby1wbHVnaW4teHNkLTEuNy5qYXIlCj4gPiA1QndpbmRvd3MtamRrOD5dCj4gPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+ID4gPiBtb2RlbGxvLXBsdWdpbi1zdGF4LzEuNy9tb2RlbGxvLXBsdWdpbi1zdGF4LTEuNy5qYXIKPiA+ID4gPiAoMzcga0IgYXQgNjY2IGtCL3MpCj4gPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvc29uYXR5cGUvcGxleHVzLwo+ID4gPiBwbGV4dXMtYnVpbGQtYXBpLzAuMC43L3BsZXh1cy1idWlsZC1hcGktMC4wLjcuamFyCj4gPiA+ID4gW3dpbmRvd3MtamRrOAo+ID4gPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL3NvbmF0eXBlLwo+ID4gPiBwbGV4dXMvcGxleHVzLWJ1aWxkLWFwaS8wLjAuNy9wbGV4dXMtYnVpbGQtYXBpLTAuMC43LmphciUKPiA+IDVCd2luZG93cy1qZGs4Pl0KPiA+ID4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiA+IG1vZGVsbG8tcGx1Z2luLWphdmEvMS43L21vZGVsbG8tcGx1Z2luLWphdmEtMS43Lmphcgo+ID4gPiA+ICg4NCBrQiBhdCAxLjQgTUIvcykKPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiA+IG1vZGVsbG8tcGx1Z2luLXhwcDMvMS43L21vZGVsbG8tcGx1Z2luLXhwcDMtMS43Lmphcgo+ID4gPiA+ICgyOSBrQiBhdCA0NzEga0IvcykKPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiA+IG1vZGVsbG8tcGx1Z2luLXhkb2MvMS43L21vZGVsbG8tcGx1Z2luLXhkb2MtMS43Lmphcgo+ID4gPiA+ICgxNCBrQiBhdCAyMjMga0IvcykKPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gPiA+IG1vZGVsbG8tcGx1Z2luLXhzZC8xLjcvbW9kZWxsby1wbHVnaW4teHNkLTEuNy5qYXIKPiA+ID4gPiAoMTQga0IgYXQgMjE3IGtCL3MpCj4gPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9zb25hdHlwZS9wbGV4dXMvCj4gPiA+IHBsZXh1cy1idWlsZC1hcGkvMC4wLjcvcGxleHVzLWJ1aWxkLWFwaS0wLjAuNy5qYXIKPiA+ID4gPiAoOC41IGtCIGF0IDEyNyBrQi9zKQo+ID4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBvdXRwdXREaXJlY3Rvcnk6Cj4gPiA+ID4gRjpcamVua2luc1xqZW5raW5zLXNsYXZlXHdvcmtzcGFjZVxlbi1ib3hfbWF2ZW4tcmVsZWFzZV9tYXN0ZXItCj4gPiA+IE9DS0dVTFFCQ1o2N1ZCS0o3SEY2RTdLWlVDS1g3WkM2Rlg2NEdINjZPSFA3QTRWQVFCSVFcbVwKPiA+ID4gbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyXHRhcmdldFxnZW5lcmF0ZWQtc291cmNlc1xtb2RlbGxvCj4gPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIFdvcmtpbmcgb24gbW9kZWw6IHNyYy9tYWluL21kby9yZWxlYXNlLQo+ID4gPiBkZXNjcmlwdG9yLm1kbwo+ID4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBHZW5lcmF0aW5nIGN1cnJlbnQgdmVyc2lvbjogMy4wLjAKPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10KPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gLS0tIG1vZGVsbG8tbWF2ZW4tcGx1Z2luOjEuNzpqYXZhIChkZWZhdWx0KSBACj4gPiA+ID4gbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyIC0tLQo+ID4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBvdXRwdXREaXJlY3Rvcnk6Cj4gPiA+ID4gRjpcamVua2luc1xqZW5raW5zLXNsYXZlXHdvcmtzcGFjZVxlbi1ib3hfbWF2ZW4tcmVsZWFzZV9tYXN0ZXItCj4gPiA+IE9DS0dVTFFCQ1o2N1ZCS0o3SEY2RTdLWlVDS1g3WkM2Rlg2NEdINjZPSFA3QTRWQVFCSVFcbVwKPiA+ID4gbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyXHRhcmdldFxnZW5lcmF0ZWQtc291cmNlc1xtb2RlbGxvCj4gPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIFdvcmtpbmcgb24gbW9kZWw6IHNyYy9tYWluL21kby9yZWxlYXNlLQo+ID4gPiBkZXNjcmlwdG9yLm1kbwo+ID4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBHZW5lcmF0aW5nIGN1cnJlbnQgdmVyc2lvbjogMy4wLjAKPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10KPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gLS0tIG1vZGVsbG8tbWF2ZW4tcGx1Z2luOjEuNzp4cHAzLXdyaXRlcgo+ID4gPiAoZGVmYXVsdCkgQAo+ID4gPiA+IG1hdmVuLXJlbGVhc2UtbWFuYWdlciAtLS0KPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gb3V0cHV0RGlyZWN0b3J5Ogo+ID4gPiA+IEY6XGplbmtpbnNcamVua2lucy1zbGF2ZVx3b3Jrc3BhY2VcZW4tYm94X21hdmVuLXJlbGVhc2VfbWFzdGVyLQo+ID4gPiBPQ0tHVUxRQkNaNjdWQktKN0hGNkU3S1pVQ0tYN1pDNkZYNjRHSDY2T0hQN0E0VkFRQklRXG1cCj4gPiA+IG1hdmVuLXJlbGVhc2UtbWFuYWdlclx0YXJnZXRcZ2VuZXJhdGVkLXNvdXJjZXNcbW9kZWxsbwo+ID4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBXb3JraW5nIG9uIG1vZGVsOiBzcmMvbWFpbi9tZG8vcmVsZWFzZS0KPiA+ID4gZGVzY3JpcHRvci5tZG8KPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gR2VuZXJhdGluZyBjdXJyZW50IHZlcnNpb246IDMuMC4wCj4gPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dCj4gPiA+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIC0tLSBtYXZlbi1yZW1vdGUtcmVzb3VyY2VzLXBsdWdpbjoxLjU6cHJvY2Vzcwo+ID4gPiA+IChkZWZhdWx0KSBAIG1hdmVuLXJlbGVhc2UtbWFuYWdlciAtLS0KPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlcnMvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLXByb3ZpZGVycy0KPiA+ID4gMS45LjYtMjAxNzEyMDEuMjMyODQ2LTEyLnBvbQo+ID4gPiA+IFt3aW5kb3dzLWpkazcKPiA+ID4gPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gc2NtL21hdmVuLXNjbS1wcm92aWRlcnMvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLXByb3ZpZGVycy0KPiA+ID4gMS45LjYtMjAxNzEyMDEuMjMyODQ2LTEyLnBvbSU1QndpbmRvd3MtamRrNz5dCj4gPiA+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiA+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9zb25hdHlwZS9wbGV4dXMvCj4gPiA+IHBsZXh1cy1idWlsZC1hcGkvMC4wLjcvcGxleHVzLWJ1aWxkLWFwaS0wLjAuNy5wb20KPiA+ID4gPiAoMy4yIGtCIGF0IDQwMCBrQi9zKQo+ID4gPiA+IFt3aW5kb3dzLWpkazddIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL3NvbmF0eXBlL3NwaWNlLwo+ID4gPiBzcGljZS1wYXJlbnQvMTUvc3BpY2UtcGFyZW50LTE1LnBvbQo+ID4gPiA+IFt3aW5kb3dzLWpkazcKPiA+ID4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9zb25hdHlwZS9zcGljZS8KPiA+ID4gc3BpY2UtcGFyZW50LzE1L3NwaWNlLXBhcmVudC0xNS5wb20lNUJ3aW5kb3dzLWpkazc+XQo+ID4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvc29uYXR5cGUvc3BpY2UvCj4gPiA+IHNwaWNlLXBhcmVudC8xNS9zcGljZS1wYXJlbnQtMTUucG9tCj4gPiA+ID4gKDguNCBrQiBhdCAxLjAgTUIvcykKPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVycy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXJzLQo+ID4gPiAxLjkuNi0yMDE3MTIwMS4yMzI4NDYtMTIucG9tCj4gPiA+ID4gKDAgQiBhdCAwIEIvcykKPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiA+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gc2NtL21hdmVuLXNjbS8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tMS45LjYtMjAxNzEyMDEuMjMyNTQ5LTEyLnBvbQo+ID4gPiA+IFt3aW5kb3dzLWpkazgKPiA+ID4gPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiA+ID4gc2NtL21hdmVuLXNjbS8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tMS45LjYtMjAxNzEyMDEuCj4gPiA+IDIzMjU0OS0xMi5wb20lNUJ3aW5kb3dzLWpkazg+XQo+ID4gPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IHNjbS9tYXZlbi1zY20vMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLTEuOS42LTIwMTcxMjAxLjIzMjU0OS0xMi5wb20KPiA+ID4gPiAoMCBCIGF0IDAgQi9zKQo+ID4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVycy1jdnMvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+ID4gPiBwcm92aWRlcnMtY3ZzLTEuOS42LTIwMTcxMjAxLjIzMjg1My0xMi5wb20KPiA+ID4gPiBbd2luZG93cy1qZGs4Cj4gPiA+ID4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXJzLWN2cy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gPiA+IHByb3ZpZGVycy1jdnMtMS45LjYtMjAxNzEyMDEuMjMyODUzLTEyLnBvbSU1QndpbmRvd3MtamRrOD5dCj4gPiA+ID4gU2VuZGluZyBpbnRlcnJ1cHQgc2lnbmFsIHRvIHByb2Nlc3MKPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRlZDoKPiA+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVycy1jdnMvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+ID4gPiBwcm92aWRlcnMtY3ZzLTEuOS42LTIwMTcxMjAxLjIzMjg1My0xMi5wb20KPiA+ID4gPiAoMCBCIGF0IDAgQi9zKQo+ID4gPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+ID4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+ID4gPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVycy1naXQvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+ID4gPiBwcm92aWRlcnMtZ2l0LTEuOS42LTIwMTcxMjAxLjIzMjkwMC0xMi5wb20KPiA+ID4gPiBbd2luZG93cy1qZGs5Cj4gPiA+ID4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gPiA+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXJzLWdpdC8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gPiA+IHByb3ZpZGVycy1naXQtMS45LjYtMjAxNzEyMDEuMjMyOTAwLTEyLnBvbSU1QndpbmRvd3MtamRrOT5dCj4gPiA+ID4gU2VuZGluZyBpbnRlcnJ1cHQgc2lnbmFsIHRvIHByb2Nlc3MKPiA+ID4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazhdIH0KPiA+ID4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazddIH0KPiA+ID4gPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs4XSB9Cj4gPiA+ID4gW1BpcGVsaW5lXSBbbGludXgtamRrOV0gfQo+ID4gPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOF0gLy8gZGlyCj4gPiA+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs3XSAvLyBkaXIKPiA+ID4gPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs4XSAvLyBkaXIKPiA+ID4gPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs5XSAvLyBkaXIKPiA+ID4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazhdIH0KPiA+ID4gPiBbd2luZG93cy1qZGs4XSBbd2l0aE1hdmVuXSBPbmUgb3IgbXVsdGlwbGUgTWF2ZW4gZXhlY3V0aW9ucyBoYXZlIGJlPQplbgo+ID4gPiA+IGlnbm9yZWQgYnkgdGhlIEplbmtpbnMgUGlwZWxpbmUgTWF2ZW4gUGx1Z2luIGJlY2F1c2UgdGhleSBoYXZlIGJlZW4KPiA+ID4gPiBpbnRlcnJ1cHRlZCBiZWZvcmUgY29tcGxldGlvbiAoMSkuIFNlZSBQaXBlbGluZSBNYXZlbiBQbHVnaW4gRkFRIGZvPQpyCj4gPiBtb3JlCj4gPiA+ID4gZGV0YWlscy4KPiA+ID4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazddIH0KPiA+ID4gPiBbd2luZG93cy1qZGs3XSBbd2l0aE1hdmVuXSBPbmUgb3IgbXVsdGlwbGUgTWF2ZW4gZXhlY3V0aW9ucyBoYXZlIGJlPQplbgo+ID4gPiA+IGlnbm9yZWQgYnkgdGhlIEplbmtpbnMgUGlwZWxpbmUgTWF2ZW4gUGx1Z2luIGJlY2F1c2UgdGhleSBoYXZlIGJlZW4KPiA+ID4gPiBpbnRlcnJ1cHRlZCBiZWZvcmUgY29tcGxldGlvbiAoMSkuIFNlZSBQaXBlbGluZSBNYXZlbiBQbHVnaW4gRkFRIGZvPQpyCj4gPiBtb3JlCj4gPiA+ID4gZGV0YWlscy4KPiA+ID4gPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs4XSB9Cj4gPiA+ID4gW2xpbnV4LWpkazhdIFt3aXRoTWF2ZW5dIE9uZSBvciBtdWx0aXBsZSBNYXZlbiBleGVjdXRpb25zIGhhdmUgYmVlbgo+ID4gPiA+IGlnbm9yZWQgYnkgdGhlIEplbmtpbnMgUGlwZWxpbmUgTWF2ZW4gUGx1Z2luIGJlY2F1c2UgdGhleSBoYXZlIGJlZW4KPiA+ID4gPiBpbnRlcnJ1cHRlZCBiZWZvcmUgY29tcGxldGlvbiAoMSkuIFNlZSBQaXBlbGluZSBNYXZlbiBQbHVnaW4gRkFRIGZvPQpyCj4gPiBtb3JlCj4gPiA+ID4gZGV0YWlscy4KPiA+ID4gPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs5XSB9Cj4gPiA+ID4gW2xpbnV4LWpkazldIFt3aXRoTWF2ZW5dIE9uZSBvciBtdWx0aXBsZSBNYXZlbiBleGVjdXRpb25zIGhhdmUgYmVlbgo+ID4gPiA+IGlnbm9yZWQgYnkgdGhlIEplbmtpbnMgUGlwZWxpbmUgTWF2ZW4gUGx1Z2luIGJlY2F1c2UgdGhleSBoYXZlIGJlZW4KPiA+ID4gPiBpbnRlcnJ1cHRlZCBiZWZvcmUgY29tcGxldGlvbiAoMSkuIFNlZSBQaXBlbGluZSBNYXZlbiBQbHVnaW4gRkFRIGZvPQpyCj4gPiBtb3JlCj4gPiA+ID4gZGV0YWlscy4KPiA+ID4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazhdIC8vIHdpdGhNYXZlbgo+ID4gPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrN10gLy8gd2l0aE1hdmVuCj4gPiA+ID4gW1BpcGVsaW5lXSBbbGludXgtamRrOF0gLy8gd2l0aE1hdmVuCj4gPiA+ID4gW1BpcGVsaW5lXSBbbGludXgtamRrOV0gLy8gd2l0aE1hdmVuCj4gPiA+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs4XSB9Cj4gPiA+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs3XSB9Cj4gPiA+ID4gW1BpcGVsaW5lXSBbbGludXgtamRrOF0gfQo+ID4gPiA+IFtQaXBlbGluZV0gW2xpbnV4LWpkazldIH0KPiA+ID4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazldIH0KPiA+ID4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazhdIC8vIHN0YWdlCj4gPiA+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs3XSAvLyBzdGFnZQo+ID4gPiA+IFtQaXBlbGluZV0gW2xpbnV4LWpkazhdIC8vIHN0YWdlCj4gPiA+ID4gW1BpcGVsaW5lXSBbbGludXgtamRrOV0gLy8gc3RhZ2UKPiA+ID4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazldIC8vIGRpcgo+ID4gPiA+IFtQaXBlbGluZV0gW2xpbnV4LWpkazhdIH0KPiA+ID4gPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs5XSB9Cj4gPiA+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs3XSB9Cj4gPiA+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs4XSB9Cj4gPiA+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs5XSB9Cj4gPiA+ID4gW3dpbmRvd3MtamRrOV0gW3dpdGhNYXZlbl0gT25lIG9yIG11bHRpcGxlIE1hdmVuIGV4ZWN1dGlvbnMgaGF2ZSBiZT0KZW4KPiA+ID4gPiBpZ25vcmVkIGJ5IHRoZSBKZW5raW5zIFBpcGVsaW5lIE1hdmVuIFBsdWdpbiBiZWNhdXNlIHRoZXkgaGF2ZSBiZWVuCj4gPiA+ID4gaW50ZXJydXB0ZWQgYmVmb3JlIGNvbXBsZXRpb24gKDEpLiBTZWUgUGlwZWxpbmUgTWF2ZW4gUGx1Z2luIEZBUSBmbz0Kcgo+ID4gbW9yZQo+ID4gPiA+IGRldGFpbHMuCj4gPiA+ID4gW1BpcGVsaW5lXSBbbGludXgtamRrOF0gLy8gbm9kZQo+ID4gPiA+IFtQaXBlbGluZV0gW2xpbnV4LWpkazldIC8vIG5vZGUKPiA+ID4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazddIC8vIG5vZGUKPiA+ID4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazhdIC8vIG5vZGUKPiA+ID4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazldIC8vIHdpdGhNYXZlbgo+ID4gPiA+IFtQaXBlbGluZV0gW2xpbnV4LWpkazhdIH0KPiA+ID4gPiBbbGludXgtamRrOF0gRmFpbGVkIGluIGJyYW5jaCBsaW51eC1qZGs4Cj4gPiA+ID4gW1BpcGVsaW5lXSBbbGludXgtamRrOV0gfQo+ID4gPiA+IFtsaW51eC1qZGs5XSBGYWlsZWQgaW4gYnJhbmNoIGxpbnV4LWpkazkKPiA+ID4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazddIH0KPiA+ID4gPiBbd2luZG93cy1qZGs3XSBGYWlsZWQgaW4gYnJhbmNoIHdpbmRvd3MtamRrNwo+ID4gPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOF0gfQo+ID4gPiA+IFt3aW5kb3dzLWpkazhdIEZhaWxlZCBpbiBicmFuY2ggd2luZG93cy1qZGs4Cj4gPiA+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs5XSB9Cj4gPiA+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs5XSAvLyBzdGFnZQo+ID4gPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOV0gfQo+ID4gPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOV0gLy8gbm9kZQo+ID4gPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOV0gfQo+ID4gPiA+IFt3aW5kb3dzLWpkazldIEZhaWxlZCBpbiBicmFuY2ggd2luZG93cy1qZGs5Cj4gPiA+ID4gW1BpcGVsaW5lXSAvLyBwYXJhbGxlbAo+ID4gPiA+IFtQaXBlbGluZV0gc3RhZ2UKPiA+ID4gPiBbUGlwZWxpbmVdIHsgKE5vdGlmaWNhdGlvbnMpCj4gPiA+ID4gW1BpcGVsaW5lXSBlY2hvCj4gPiA+ID4gQnVpbGQgcmVzdWx0OiBGQUlMVVJFCj4gPiA+ID4gW1BpcGVsaW5lXSBqaXJhSXNzdWVTZWxlY3Rvcgo+ID4gPiA+IFtQaXBlbGluZV0gamlyYUNvbW1lbnQKPiA+ID4gPiBbUGlwZWxpbmVdIGppcmFDb21tZW50Cj4gPiA+ID4gW1BpcGVsaW5lXSBlbWFpbGV4dAo+ID4gPgo+ID4gPiAtLQo+ID4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+ID4KPiA+Cj4gPgo+ID4KPiA+IC0tCj4gPiBPbGl2aWVyIExhbXkKPiA+IGh0dHA6Ly90d2l0dGVyLmNvbS9vbGFteSB8IGh0dHA6Ly9saW5rZWRpbi5jb20vaW4vb2xhbXkKPiA+Cj4KCgoKLS09MjAKT2xpdmllciBMYW15Cmh0dHA6Ly90d2l0dGVyLmNvbS9vbGFteSB8IGh0dHA6Ly9saW5rZWRpbi5jb20vaW4vb2xhbXkKCi0tOTRlYjJjMWNkZGVhOGUxN2U3MDU1Zjc4OGI3ZS0tCgpGcm9tIGRldi1yZXR1cm4tMTIzODQ5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBTZXAgIDEgMTE6MTE6MDggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzODQ5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDE0NzBFMUEwQTkKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAgMSBTZXAgMjAxNyAxMToxMTowOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDU2MjQ2IGludm9rZWQgYnkgdWlkIDUwMCk7IDEgU2VwIDIwMTcgMTE6MTE6MDcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU2MDQ4IGludm9rZWQgYnkgdWlkIDUwMCk7IDEgU2VwIDIwMTcgMTE6MTE6MDYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NjAxMSBpbnZva2VkIGJ5IHVpZCA5OSk7IDEgU2VwIDIwMTcgMTE6MTE6MDYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMDEgU2VwIDIwMTcgMTE6MTE6MDYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1sZjAtZjUzLmdvb2dsZS5jb20gKG1haWwtbGYwLWY1My5nb29nbGUuY29tIFsyMDkuODUuMjE1LjUzXSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDA1QTUxMUEwMkNGOwoJRnJpLCAgMSBTZXAgMjAxNyAxMToxMTowNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1sZjAtZjUzLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGcxOHNvODA0NjA0OWxmbC4yOwogICAgICAgIEZyaSwgMDEgU2VwIDIwMTcgMDQ6MTE6MDUgLTA3MDAgKFBEVCkKWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVqWGhMVDdVZkR6aGN4Ty8zSlljanNTenI2ZFZ5NU9HVEdORFFzWUkzRWI2M0pUcHlrRAoJVlkwYk0wL3JwejJUSWt4ZEVGajl6VmRoY0Vqbml3PT0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFES0NOYjVjMUNweEd1Tlo5dXdLMEZubnZkQjV4UUJMRjFGT21NbVRSMERvV240czNPMXhnTGROYllHM216Z21udGxsMFV5ZUduYzQvZWlUSGRBa1g5bGkyYWc9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjI1LjIzMy4yMTcgd2l0aCBTTVRQIGlkIGo4Nm1yNzQxMDYzbGZrLjMzLjE1MDQyNjQyNjQ1NzQ7CiBGcmksIDAxIFNlcCAyMDE3IDA0OjExOjA0IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzkuNzEuMTM0IHdpdGggSFRUUDsgRnJpLCAxIFNlcCAyMDE3IDA0OjEwOjQzIC0wNzAwIChQRFQpCkZyb206IE9saXZpZXIgTGFteSA8b2xhbXlAYXBhY2hlLm9yZz4KRGF0ZTogRnJpLCAxIFNlcCAyMDE3IDIxOjEwOjQzICsxMDAwClgtR21haWwtT3JpZ2luYWwtTWVzc2FnZS1JRDogPENBUG95QnFSWkFqVmVpZ1VNUEZKWDBWOUF4TE5lNGo4TV9VcE9hc0diWUZFM3RjRGloUUBtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JRDogPENBUG95QnFSWkFqVmVpZ1VNUEZKWDBWOUF4TE5lNGo4TV9VcE9hc0diWUZFM3RjRGloUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogTWF2ZW4gY2xhc3Nsb2FkZXIgY2hhbmdlIC8gTWF2ZW4gaW50ZWdyYXRvciBjb250YWN0cz8KVG86IE1hdmVuIFVzZXJzIExpc3QgPHVzZXJzQG1hdmVuLmFwYWNoZS5vcmc+LCBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDYzogTWF2ZW4gUHJvamVjdCBNYW5hZ2VtZW50IENvbW1pdHRlZSBMaXN0IDxwcml2YXRlQG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExM2NiMjQ2MjM2ZWNjMDU1ODFlZDE2OCIKCi0tMDAxYTExM2NiMjQ2MjM2ZWNjMDU1ODFlZDE2OApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKSGksClRoZSBBcGFjaGUgTWF2ZW4gdGVhbSBpcyB3b3JraW5nIG9uIGEgY2xhc3Nsb2FkZXIgc28gd2UnZCBsaWtlIHRvIGhhdmUgc29tZQp0ZXN0aW5nIGJ5IHBlb3BsZSB3aG8gYXJlIGVtYmVkZGluZyBNYXZlbiBhbmQgY291bGQgaGF2ZSBpc3N1ZXMgd2l0aCB0aGlzCmNoYW5nZS4KRnVydGhlcm1vcmUgd2UnZCBsaWtlIHRvIGhhdmUgY29udGFjdHMgZnJvbSB0aG9zZSBwcm9qZWN0cy4gKHNpbXBseSByZXBseQp0byBwcml2YXRlQG1hdmVuLmFwYWNoZS5vcmcgKQoKVGhlIGNoYW5nZSBpczogaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjI3NQoKV2UgaGF2ZSBsaXN0cyB3aGljaCBjb3VsZCBiZSBlbmhhbmNlZCAob3IgY2xlYW5lZCBhcyB3ZWxsIDotKSApCgpMZXQgdXMga25vdyBhbmQgaGF2ZSBhIGdyZWF0IHdlZWtlbmQhIQoKCiBbSURFXSAoaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2lkZS5odG1sKQogRWNsaXBzZQogSW50ZWxsaWoKIE5ldGJlYW5zIChtYXliZSBhcGFjaGUgZGV2IG1haWxpbmcgbGlzdD8pCgogW0NJXSAoaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2NvbnRpbnVvdXMtaW50ZWdyYXRpb24uaHRtbCkKIEJhbWJvbyAoQXRsYXNzaWFuKQogQnVpbGRIaXZlIChDbG91ZEJlZXMpCiBDT0RFU0hJUD8KIENydWlzZSBDb250cm9sPwogSHVkc29uCiBKZW5raW5zCgogW1FBXQogU29uYXIgUXViZQoKLS0gCk9saXZpZXIgTGFteQpodHRwOi8vdHdpdHRlci5jb20vb2xhbXkgfCBodHRwOi8vbGlua2VkaW4uY29tL2luL29sYW15CgotLTAwMWExMTNjYjI0NjIzNmVjYzA1NTgxZWQxNjgtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDc0Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgRGVjICA2IDEwOjIzOjM3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDc0Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA0ODE2QTEwODFGCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgIDYgRGVjIDIwMTcgMTA6MjM6MzcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0NDE2NCBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IERlYyAyMDE3IDEwOjIzOjM2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0NDA4MyBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IERlYyAyMDE3IDEwOjIzOjM2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDQwNzIgaW52b2tlZCBieSB1aWQgOTkpOyA2IERlYyAyMDE3IDEwOjIzOjM2IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDA2IERlYyAyMDE3IDEwOjIzOjM2ICswMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtbGYwLWY0MS5nb29nbGUuY29tIChtYWlsLWxmMC1mNDEuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNS40MV0pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCAxMTA3OTFBMDAzRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgIDYgRGVjIDIwMTcgMTA6MjM6MzUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtbGYwLWY0MS5nb29nbGUuY29tIHdpdGggU01UUCBpZCBqMTI0c28zNjYxMDQ4bGZnLjIKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAwNiBEZWMgMjAxNyAwMjoyMzozNCAtMDgwMCAoUFNUKQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDZkL0IwV2ROemVIVlBEQlhTbmRmbGNTZEF0b01PK2ZHSjQ2WldZYUNCNkJ5dVNsei9WCglJSnhwUVQ0UW1RSmNEcEVoMnpVWGF3VjBwcjZNSjlKWmQ0M0JNQUU9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR3M0ek1hZlU5ZFVPM0VjRjcyWmZsRjRyK0ZiZ2hCMm9PM3R1anBFZXRPU1ltditLRFF5cDlPRVU5VHB3MmdYOFpIMWZPYW5sNXVDZFFiWlJPMnBvL2RJUUdZPQpYLVJlY2VpdmVkOiBieSAxMC4yNS44MS4xOTQgd2l0aCBTTVRQIGlkIGc2M21yMTE1NDQzODlsZmwuNTguMTUxMjU1NTgxMzM4NjsKIFdlZCwgMDYgRGVjIDIwMTcgMDI6MjM6MzMgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjE3OS42LjE1MyB3aXRoIEhUVFA7IFdlZCwgNiBEZWMgMjAxNyAwMjoyMzoxMiAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPG9wLnphb3htc281a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgpSZWZlcmVuY2VzOiA8b3AuemFveG1zbzVrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkZyb206IE9saXZpZXIgTGFteSA8b2xhbXlAYXBhY2hlLm9yZz4KRGF0ZTogV2VkLCA2IERlYyAyMDE3IDIxOjIzOjEyICsxMTAwClgtR21haWwtT3JpZ2luYWwtTWVzc2FnZS1JRDogPENBUG95QnFScFpSZ1U3aU1ZRz1ldnRFTG0yRlM9VHIwbnRxQ1F3TD1kV0hlZmdGbTdTQUBtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JRDogPENBUG95QnFScFpSZ1U3aU1ZRz1ldnRFTG0yRlM9VHIwbnRxQ1F3TD1kV0hlZmdGbTdTQUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBKYXZhZG9jIFBsdWdpbiB2ZXJzaW9uIDMuMC4wICh0YWtlIDMpClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzFjZTAyY2Y1YmZlMTA1NWZhOTU3ZjkiCgotLTk0ZWIyYzFjZTAyY2Y1YmZlMTA1NWZhOTU3ZjkKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCisxCgpPbiA0IERlY2VtYmVyIDIwMTcgYXQgMDg6NTAsIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4gd3JvdGU6Cgo+IEhpLAo+Cj4gV2Ugc29sdmVkIDI3IGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamUKPiBjdElkPTEyMzE3NTI5JnZlcnNpb249MTIzMzA4NzUmc3R5bGVOYW1lPVRleHQKPgo+IFRoZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJTNEJQo+IDIwMTIzMTc1MjklMjBBTkQlMjBzdGF0dXMlMjAlM0QlMjBPcGVuJTIwT1JERVIlMjBCWSUyMGtleSUKPiAyMERFU0MlMkMlMjBwcmlvcml0eSUyMERFU0MKPgo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzgwLwo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NlcnZpY2UvbG9jYWwvcmVwb3NpdG9yaWVzL21hdgo+IGVuLTEzODAvY29udGVudC9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4tamF2YWRvYy1wbHVnaQo+IG4vMy4wLjAvbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAtc291cmNlLXJlbGVhc2UuemlwCj4KPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMToKPiBlOTdlYTc0NGUwZjBmN2MwMjVlMjk0ZTU4YjE0OGExNzhiM2QyNGRhCj4KPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tamF2YWRvYy1wbHVnaW4tTEFURVNULwo+Cj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPgo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4KPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCgotLSAKT2xpdmllciBMYW15Cmh0dHA6Ly90d2l0dGVyLmNvbS9vbGFteSB8IGh0dHA6Ly9saW5rZWRpbi5jb20vaW4vb2xhbXkKCi0tOTRlYjJjMWNlMDJjZjViZmUxMDU1ZmE5NTdmOS0tCgpGcm9tIGRldi1yZXR1cm4tMTIzOTQ2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBTZXAgMTAgMjM6NTQ6NDUgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTQ2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDFDQTBCMUEyNzEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAyMzo1NDo0NSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDgxNjQzIGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIFNlcCAyMDE3IDIzOjU0OjQ0IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MTU4MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBTZXAgMjAxNyAyMzo1NDo0MyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgxNTY5IGludm9rZWQgYnkgdWlkIDk5KTsgMTAgU2VwIDIwMTcgMjM6NTQ6NDMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTAgU2VwIDIwMTcgMjM6NTQ6NDMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1sZjAtZjUyLmdvb2dsZS5jb20gKG1haWwtbGYwLWY1Mi5nb29nbGUuY29tIFsyMDkuODUuMjE1LjUyXSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDhCNTAwMUEwMDI5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAyMzo1NDo0MSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1sZjAtZjUyLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGQxN3NvMTQ3MDcyODhsZmUuMgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDE2OjU0OjQwIC0wNzAwIChQRFQpClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVaEdRVXFCZUFVc3lwNjVIOS81TDRvWTlJYUY1encxRzVGRklIZ0lIa2lBYVQraGhVSEEKCWNaODg2blBYTVNsNmxRTGV1NXJOTWpGczIwSkxsUT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FBc2trMXE3MDNrSktiNVdkOFF3ZW9uczd1L09nU2NtWGVtUDdPbU9hSTEvQVNRUFpFbVJtZVlZWDJQVFZLRkU5d0V1ekxDNWRTRFNjcGswb3lWcDF3PQpYLVJlY2VpdmVkOiBieSAxMC4yNS40Mi4xNDQgd2l0aCBTTVRQIGlkIHExNm1yMzQxNTE3N2xmcS4xMzQuMTUwNTA4NzY3ODgyODsKIFN1biwgMTAgU2VwIDIwMTcgMTY6NTQ6MzggLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjE3OS43MS4yMTEgd2l0aCBIVFRQOyBTdW4sIDEwIFNlcCAyMDE3IDE2OjU0OjE4IC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0FPb25vaGRFam1HTWdjanpxLWU9MmZRNUEwWDhfelROMTJqOFZFTytPUWZEUWI2TmNBQG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8NzhhNWFmOTItZTQ3MS1mOWY5LTdkZTAtZjAyZDA5ZmE0MDM1QGdteC5kZT4gPENBT29ub2hkRWptR01nY2p6cS1lPTJmUTVBMFg4X3pUTjEyajhWRU8rT1FmRFFiNk5jQUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogT2xpdmllciBMYW15IDxvbGFteUBhcGFjaGUub3JnPgpEYXRlOiBNb24sIDExIFNlcCAyMDE3IDA5OjU0OjE4ICsxMDAwClgtR21haWwtT3JpZ2luYWwtTWVzc2FnZS1JRDogPENBUG95QnFSdC1fVjNxc2Y3ejJ0ci1oZEhfV0MxZj1SZ21BYXRrcnVRSjNRV3ZBb1hFZ0BtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JRDogPENBUG95QnFSdC1fVjNxc2Y3ejJ0ci1oZEhfV0MxZj1SZ21BYXRrcnVRSjNRV3ZBb1hFZ0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBEZXBlbmRlbmN5IFBsdWdpbiB2ZXJzaW9uIDMuMC4yClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzE0YTk2MjczZDZiNTA1NThkZTg4ZWMiCgotLTk0ZWIyYzE0YTk2MjczZDZiNTA1NThkZTg4ZWMKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKCisxCgpPbiAxMSBTZXB0ZW1iZXIgMjAxNyBhdCAwMzo0NSwgU3RlcGhhbmUgTmljb2xsIDxzdGVwaGFuZS5uaWNvbGxAZ21haWwuY29tPgp3cm90ZToKCj4gKzEKPgo+IFRoYW5rcyEKPgo+IE9uIFNhdCwgU2VwIDksIDIwMTcgYXQgMjozNCBQTSwgS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+Cj4gd3JvdGU6Cj4KPiA+IEhpLAo+ID4KPiA+IFdlIHNvbHZlZCA3IGlzc3VlczoKPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZQo+ID4gY3RJZD0xMjMxNzIyNyZ2ZXJzaW9uPTEyMzQxMjU0Cj4gPgo+ID4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9cHJvamVjdCUyMCUzRCUKPiA+IDIwTURFUCUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlMjBCWSUKPiA+IDIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMHVwZGF0ZWQlMjBERVNDCj4gPgo+ID4gU3RhZ2luZyByZXBvOgo+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2MAo+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2Cj4gPiAwL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi1kZXBlbmRlbmN5LXBsdWdpbi8zLjAuMi9tYXYKPiA+IGVuLWRlcGVuZGVuY3ktcGx1Z2luLTMuMC4yLXNvdXJjZS1yZWxlYXNlLnppcAo+ID4KPiA+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+ID4gbWF2ZW4tZGVwZW5kZW5jeS1wbHVnaW4tMy4wLjItc291cmNlLXJlbGVhc2UuemlwIHNoYTE6Cj4gPiAzYzRhYTcxNmUyOGIyNDE4MzRkNDdkMjJlMWZmNWY2ZTYyZjE2YjliCj4gPgo+ID4gU3RhZ2luZyBzaXRlOgo+ID4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tCj4gZGVwZW5kZW5jeS1wbHVnaW4tTEFURVNULwo+ID4KPiA+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+ID4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPiA+Cj4gPiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+ID4KPiA+IFsgXSArMQo+ID4gWyBdICswCj4gPiBbIF0gLTEKPiA+Cj4gPiBLaW5kIHJlZ2FyZHMKPiA+IEthcmwgSGVpbnogTWFyYmFpc2UKPiA+Cj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPgo+ID4KPgoKCgotLSAKT2xpdmllciBMYW15Cmh0dHA6Ly90d2l0dGVyLmNvbS9vbGFteSB8IGh0dHA6Ly9saW5rZWRpbi5jb20vaW4vb2xhbXkKCi0tOTRlYjJjMTRhOTYyNzNkNmI1MDU1OGRlODhlYy0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MzIzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBPY3QgMjQgMDI6MDU6MDAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzIzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDM5NzI2MTBBMzQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAyNCBPY3QgMjAxNyAwMjowNTowMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDc3MTM2IGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IE9jdCAyMDE3IDAyOjA0OjU5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NzA2MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNCBPY3QgMjAxNyAwMjowNDo1OSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc3MDQ4IGludm9rZWQgYnkgdWlkIDk5KTsgMjQgT2N0IDIwMTcgMDI6MDQ6NTkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMjQgT2N0IDIwMTcgMDI6MDQ6NTkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1sZjAtZjUxLmdvb2dsZS5jb20gKG1haWwtbGYwLWY1MS5nb29nbGUuY29tIFsyMDkuODUuMjE1LjUxXSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDIwNTNBMUEwMTJGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAyNCBPY3QgMjAxNyAwMjowNDo1NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1sZjAtZjUxLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGEyc28xMDgyNDFsZmguMTEKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAyMyBPY3QgMjAxNyAxOTowNDo1NyAtMDcwMCAoUERUKQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFNQ3pzYVdEcDZYL1dEbkUrNWJIdzJIM3F1SmVtcXdvZmxtQVNmM0laZHh4bngway9lV0hZdXhQCglvUnh1SDNWekh1RHZRUGlFVkNpOVNGTlZRQ0VlTUxtZGhETDRaTDQ9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtTVjRjYnhqaU9ZSTVpSzNjM1FFakhUb0tuUmE1RUpIdndIV3hlY1FWdGVyOFhFb2VaODI1TmFibDR5T2dJMmc5U1F4Ky9YRFlka2dMamJnQmc1K3lVPQpYLVJlY2VpdmVkOiBieSAxMC4yNS44My43OCB3aXRoIFNNVFAgaWQgaDc1bXI1MDg0ODk2bGZiLjEzNC4xNTA4ODEwNjkzODEyOwogTW9uLCAyMyBPY3QgMjAxNyAxOTowNDo1MyAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTc5Ljc1LjEzMCB3aXRoIEhUVFA7IE1vbiwgMjMgT2N0IDIwMTcgMTk6MDQ6MzMgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxDQStuUG5Nd2hhR0cxTVV3cnVFb01xanlKc21VVDZSREprcjE9ZnI4VzVUMU5IUURrSkFAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQStuUG5Nd3RqblpFLTUzQU41M3hGPU1mNkhZLUZiR1l3WkFVdzNFVUtIQTRlS0I1MlFAbWFpbC5nbWFpbC5jb20+CiA8Q0FMWUdtMXc9VVB3djByRS1IalpKdm4rbTVIOTFFKzRhOHUtNVNZMGN2OHN1VUswaGdRQG1haWwuZ21haWwuY29tPgogPENBUENqam5FZXNHeERUS1lpTEdWR1QzaThBSGFGVkVFR2Q4aWhnampVMGZGc3QwM3N0UUBtYWlsLmdtYWlsLmNvbT4KIDxDQVBDampuSG9uRGFiaUdXd0pZcW5xMmpVNlllNU5fQzdlbjhRc1JTOG5uNERONmhQZHdAbWFpbC5nbWFpbC5jb20+CiA8Q0ErblBuTXcxODVvMUFwN3p2M2lSU18zMWZaK3l5aHc2NHh5SkhRS1h3WFdoK1dpYXJ3QG1haWwuZ21haWwuY29tPgogPENBUG95QnFTdk5OSktjdT1pT1hZTGYzYmtpMjN4WjFZdzQ3MnlmTlBScmIwZHdkQUhWUUBtYWlsLmdtYWlsLmNvbT4gPENBK25Qbk13aGFHRzFNVXdydUVvTXFqeUpzbVVUNlJESmtyMT1mcjhXNVQxTkhRRGtKQUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogT2xpdmllciBMYW15IDxvbGFteUBhcGFjaGUub3JnPgpEYXRlOiBUdWUsIDI0IE9jdCAyMDE3IDEzOjA0OjMzICsxMTAwClgtR21haWwtT3JpZ2luYWwtTWVzc2FnZS1JRDogPENBUG95QnFSeno1Ml9TbWg2eXM9cGJTRFhQYWY2MjVCdXRwTVVZN1F5UDdQYTlqMzZyd0BtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JRDogPENBUG95QnFSeno1Ml9TbWg2eXM9cGJTRFhQYWY2MjVCdXRwTVVZN1F5UDdQYTlqMzZyd0BtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSI5NGViMmMxY2RmYTI3MDI4OGUwNTVjNDE1ZDEwIgoKLS05NGViMmMxY2RmYTI3MDI4OGUwNTVjNDE1ZDEwCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCiJwYXJkb24gbXkgZnJlbmNoIiA6LSkKCk9uIDI0IE9jdG9iZXIgMjAxNyBhdCAxMTozOSwgU3RlcGhlbiBDb25ub2xseSA8CnN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgoKPiBPbGl2aWVyIHlvdSBzZWVtIHRvIGhhdmUgbWFkZSBhIHR5cG8uLi4gSSBiZWxpZXZlIHlvdSBpbnRlbmRlZCB0byB3cml0ZQo+ID1FMj04MD05Q2V2aWw9RTI9ODA9OUQgYnV0IHR5cGVkIGluID1FMj04MD05Q2F3ZXNvbWU9RTI9ODA9OUQgYnkgbWlzdGFrZSA9CjotUAo+Cj4gT24gVHVlIDI0IE9jdCAyMDE3IGF0IDAwOjMyLCBPbGl2aWVyIExhbXkgPG9sYW15QGFwYWNoZS5vcmc+IHdyb3RlOgo+Cj4gPiBMR1RNCj4gPiArMSB0ZXN0ZWQgb24gc29tZSBidWlsZHMgKFRCSCBJIGhhdmVuJ3QgdGVzdGVkIHdpdGggdGhlIGF3ZXNvbWUgSmVua2lucwo+ID4gTWF2ZW4gcGx1Z2luIDpQICkKPiA+Cj4gPiBPbiAyMyBPY3RvYmVyIDIwMTcgYXQgMjI6MzIsIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4gPgo+ID4gPiBBbnkgbW9yZSB2b3Rlcz8KPiA+ID4KPiA+ID4gT24gMjEgT2N0b2JlciAyMDE3IGF0IDEwOjUzLCBEYW4gVHJhbiA8ZGFudHJhbkBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPgo+ID4gPiA+IG91Y2ggZmFsc2UgYWxhcm0sICBJIGZvcmdvdCB0byBjb25maWd1cmUgdGhlIGFydGlmYWN0b3J5IG1pcnJvcgo+ID4gPiA+Cj4gPiA+ID4gU29ycnkgYWJvdXQgdGhlIG5vaXNlCj4gPiA+ID4KPiA+ID4gPiAtRAo+ID4gPiA+Cj4gPiA+ID4gT24gU2F0LCBPY3QgMjEsIDIwMTcgYXQgMTA6MTAgQU0sIERhbiBUcmFuIDxkYW50cmFuQGdtYWlsLmNvbT4KPiB3cm90ZToKPiA+ID4gPgo+ID4gPiA+ID4gSSBhbSBub3QgYWJsZSBnZXR0aW5nIG12biAzLjUuMiB0byBkb3dubG9hZCBhbiBpbnRlcm5hbCBzbmFwc2hvdAo+ID4gPiA+ID4gZGVwZW5kZW5jeSBmcm9tIGNvbXAncyBjZW50cmFsIGFydGlmYWN0b3J5Cj4gPiA+ID4gPgo+ID4gPiA+ID4gaGVyZSBpcyB0aGUgZXJyb3IKPiA+ID4gPiA+Cj4gPiA+ID4gPiBDYXVzZWQgYnk6IG9yZy5lY2xpcHNlLmFldGhlci5yZXNvbHV0aW9uLgo+ID4gPiBEZXBlbmRlbmN5UmVzb2x1dGlvbkV4Y2VwdGlvbjoKPiA+ID4gPiA+IENvdWxkIG5vdCBmaW5kIGFydGlmYWN0IGNvbS5vcmFjbGUubGludXgueDg2XzY0OmpyZToKPiA+ID4gPiBycG06MS44LjBfMTUxLVNOQVBTSE9UCj4gPiA+ID4gPiAgICAgYXQgb3JnLmVjbGlwc2UuYWV0aGVyLmludGVybmFsLmltcGwuRGVmYXVsdFJlcG9zaXRvcnlTeXN0ZW0uCj4gPiA+ID4gcmVzb2x2ZURlcGVuZGVuY2llcwo+ID4gPiA+ID4gKERlZmF1bHRSZXBvc2l0b3J5U3lzdGVtLmphdmE6MzU1KQo+ID4gPiA+ID4gICAgIGF0IG9yZy5hcGFjaGUubWF2ZW4ucHJvamVjdC5EZWZhdWx0UHJvamVjdERlcGVuZGVuY2llc1Jlc28KPiA+ID4gPiBsdmVyLnJlc29sdmUKPiA+ID4gPiA+IChEZWZhdWx0UHJvamVjdERlcGVuZGVuY2llc1Jlc29sdmVyLmphdmE6MjAyKQo+ID4gPiA+ID4KPiA+ID4gPiA+IE5vIGlzc3VlIHdpdGggMy41LjAgYW5kIDMuNS4xCj4gPiA+ID4gPgo+ID4gPiA+ID4gV29uZGVyIGlmIGFueW9uZSBlbHNlIGVuY291bnRlcnMgdGhlIHNhbWUgaXNzdWU/Pwo+ID4gPiA+ID4KPiA+ID4gPiA+IFRoYW5rcwo+ID4gPiA+ID4KPiA+ID4gPiA+IC1EYW4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBPbiBGcmksIE9jdCAyMCwgMjAxNyBhdCA3OjM1IFBNLCBNYXJrIERlcnJpY3V0dCA8bWFya0B0YWxpb3MuY29tPgo+ID4gPiB3cm90ZToKPiA+ID4gPiA+Cj4gPiA+ID4gPj4gKzEgbG9va2luZyBnb29kIGZyb20gaGVyZSBvbiBteSBwcm9qZWN0cy9yZWxlYXNlcy4KPiA+ID4gPiA+Pgo+ID4gPiA+ID4+IC0tCj4gPiA+ID4gPj4gIkdyZWF0IGFydGlzdHMgYXJlIGV4dHJlbWVseSBzZWxmaXNoIGFuZCBhcnJvZ2FudCB0aGluZ3MiID1FMj04MD0KPTk0IFN0ZXZlbgo+ID4gPiA+IFdpbHNvbiwKPiA+ID4gPiA+PiBQb3JjdXBpbmUgVHJlZQo+ID4gPiA+ID4+Cj4gPiA+ID4gPj4gT24gV2VkLCBPY3QgMTgsIDIwMTcgYXQgMTE6NTAgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4gPiA+ID4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiA+ID4+Cj4gPiA+ID4gPj4gPiBIaSwKPiA+ID4gPiA+PiA+Cj4gPiA+ID4gPj4gPiBXZSBzb2x2ZWQgMjYgaXNzdWVzOgo+ID4gPiA+ID4+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhPwo+ID4gPiA+ID4+ID4gdmVyc2lvbj0zRDEyMzM4OTY0JnN0eWxlTmFtZT0zRFRleHQmcHJvamVjdElkPTNEMTIzMTY5MjIKPiA+ID4gPiA+PiA+Cj4gPiA+ID4gPj4gPiBUaGVyZSBhcmUgMzU3IGlzc3VlcyBsZWZ0IGluIEpJUkEgZm9yIE1hdmVuIGNvcmU6Cj4gPiA+ID4gPj4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9M0Rwcm9qZWN0JTIwJQo+ID4gPiA+ID4+ID4gM0QlMjBNTkclMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJQo+ID4gPiA+ID4+ID4gMjBCWSUyMGR1ZSUyMEFTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMGNyZWF0ZWQlMjBBU0MKPiA+ID4gPiA+PiA+Cj4gPiA+ID4gPj4gPiBTdGFnaW5nIHJlcG86Cj4gPiA+ID4gPj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzczLwo+ID4gPiA+ID4+ID4KPiA+ID4gPiA+PiA+IFRoZSBkaXN0cmlidXRhYmxlIGJpbmFyaWVzIGFuZCBzb3VyY2VzIGNhbiBiZSBmb3VuZCBoZXJlOgo+ID4gPiA+ID4+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gPiA+ID4gPj4gPiAxMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yLwo+ID4gPiA+ID4+ID4KPiA+ID4gPiA+PiA+IFNwZWNpZmljYWxseSB0aGUgemlwLCB0YXJiYWxsIGFuZCBzb3VyY2UgYXJjaGl2ZXMgY2FuIGJlIGZvdW5kCj4gPiBoZXJlOgo+ID4gPiA+ID4+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gPiA+ID4gPj4gPgo+ID4gMTM3My9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItYmluLnppcAo+ID4gPiA+ID4+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gPiA+ID4gPj4gPiAxMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yL2FwYWNoZS1tYXZlbi0zLjUuCj4gPiA+ID4gMi1iaW4udGFyLmd6Cj4gPiA+ID4gPj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiA+ID4gPiA+PiA+Cj4gPiAxMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yL2FwYWNoZS1tYXZlbi0zLjUuMi1zcmMuemlwCj4gPiA+ID4gPj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiA+ID4gPiA+PiA+IDEzNzMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvYXBhY2hlLW1hdmVuLTMuNS4KPiA+ID4gPiAyLXNyYy50YXIuZ3oKPiA+ID4gPiA+PiA+Cj4gPiA+ID4gPj4gPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiA+ID4gPiA+PiA+IGFwYWNoZS1tYXZlbi0zLjUuMi1zcmMudGFyLmd6IHNoYTE6Cj4gOTdkNmQ3YjE4NDg1Yjc5MDZkZDdmMzEzY2RkNDExCj4gPiA+ID4gPj4gPiA5MWQxNmRkZTQ2Cj4gPiA+ID4gPj4gPiBhcGFjaGUtbWF2ZW4tMy41LjItc3JjLnppcDogc2hhMTogZGM4Y2FhNWNkYWNiNDAwOTQzZDI0OTFhMDIwZj0KNzQKPiA+ID4gPiA+PiAyYTUxOGU4ZjA4Cj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4+ID4gR2l0IHRhZzoKPiA+ID4gPiA+PiA+IGh0dHBzOi8vZ2l0LXdpcC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPTNEbWF2ZW4uZ2l0O2E9M0Rjb21tPQppdDtoPTNECj4gPiA+ID4gPj4gPiAxMzhlZGQ2MWZkMTAwZWM2NThiZmEyZDMwN2M0M2I3Njk0MGE1ZDdkCj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4+ID4gU3RhZ2luZyBzaXRlOgo+ID4gPiA+ID4+ID4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2NvbXBvbmVudHMvcmVmLzMtTEFURVNULwo+ID4gPiA+ID4+ID4KPiA+ID4gPiA+PiA+IFZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4+ID4gWyBdICsxCj4gPiA+ID4gPj4gPiBbIF0gKzAKPiA+ID4gPiA+PiA+IFsgXSAtMQo+ID4gPiA+ID4+ID4KPiA+ID4gPiA+PiA+IFRoYW5rcywKPiA+ID4gPiA+PiA+Cj4gPiA+ID4gPj4gPiBTdGVwaGVuLgo+ID4gPiA+ID4+ID4KPiA+ID4gPiA+Pgo+ID4gPiA+ID4KPiA+ID4gPiA+Cj4gPiA+ID4KPiA+ID4KPiA+Cj4gPgo+ID4KPiA+IC0tCj4gPiBPbGl2aWVyIExhbXkKPiA+IGh0dHA6Ly90d2l0dGVyLmNvbS9vbGFteSB8IGh0dHA6Ly9saW5rZWRpbi5jb20vaW4vb2xhbXkKPiA+Cj4gLS0KPiBTZW50IGZyb20gbXkgcGhvbmUKPgoKCgotLT0yMApPbGl2aWVyIExhbXkKaHR0cDovL3R3aXR0ZXIuY29tL29sYW15IHwgaHR0cDovL2xpbmtlZGluLmNvbS9pbi9vbGFteQoKLS05NGViMmMxY2RmYTI3MDI4OGUwNTVjNDE1ZDEwLS0KCkZyb20gZGV2LXJldHVybi0xMjQzMTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE9jdCAyMiAyMToyNzowMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzMTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgODNBNDQxMDI4QwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDIyIE9jdCAyMDE3IDIxOjI3OjAxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODQ5MDAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjIgT2N0IDIwMTcgMjE6Mjc6MDAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg0ODI0IGludm9rZWQgYnkgdWlkIDUwMCk7IDIyIE9jdCAyMDE3IDIxOjI3OjAwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODQ4MTMgaW52b2tlZCBieSB1aWQgOTkpOyAyMiBPY3QgMjAxNyAyMToyNzowMCAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAyMiBPY3QgMjAxNyAyMToyNzowMCArMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLWxmMC1mNDMuZ29vZ2xlLmNvbSAobWFpbC1sZjAtZjQzLmdvb2dsZS5jb20gWzIwOS44NS4yMTUuNDNdKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgNzM2OTIxQTAzMjEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDIyIE9jdCAyMDE3IDIxOjI2OjU4ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLWxmMC1mNDMuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgdzIxc28xODA4MzExN2xmYy42CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjIgT2N0IDIwMTcgMTQ6MjY6NTcgLTA3MDAgKFBEVCkKWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FXR2dmSTBlYVByUXBsLzF0VEF5K2QyRFg1OEU4QXBxcnJ2cVlxY3U3dkR0aXROb3lzSwoJOFpIWTBXcG1PUnJhbUdwb1Z0VEh1L25BMGgvNVhSWVNSbmxmdGpnPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArVEZQdUVLckFHWURPWTU3d1Q2YjBKa2lFM0U1N1IyNkxwMUVUakdML0dvQnVjSk9BRGYwSUdqVExKOUw3NnhVa2hRcHlsTG96WG1rd0Fxa1oyaUVPOD0KWC1SZWNlaXZlZDogYnkgMTAuMjUuODMuNzggd2l0aCBTTVRQIGlkIGg3NW1yMzc0OTk3OGxmYi4xMzQuMTUwODcwNzYxNjIyOTsKIFN1biwgMjIgT2N0IDIwMTcgMTQ6MjY6NTYgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVmZXJlbmNlczogPDMwMDY0NzEuR3JTRmpTSmpHWEBnaWdhPiA8MTYwMDkxMC5HdGR2eE0xSzkxQGdpZ2E+CiA8NTg2OTc5Ni43dmkxUFR6MG1KQGdpZ2E+IDwyOTIwMzYwLlFHR0VlT3hjYUNAZ2lnYT4gPG9wLnk4aDhyb3dja2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgogPENBRk5DVS05R05kditpdU53ZVRDQXZkR0c4NWpVNWpkSitYblhNcFp1bkU9dXdxeXdqd0BtYWlsLmdtYWlsLmNvbT4KSW4tUmVwbHktVG86IDxDQUZOQ1UtOUdOZHYraXVOd2VUQ0F2ZEdHODVqVTVqZEorWG5YTXBadW5FPXV3cXl3andAbWFpbC5nbWFpbC5jb20+CkZyb206IE9saXZpZXIgTGFteSA8b2xhbXlAYXBhY2hlLm9yZz4KRGF0ZTogU3VuLCAyMiBPY3QgMjAxNyAyMToyNjo0NCArMDAwMApYLUdtYWlsLU9yaWdpbmFsLU1lc3NhZ2UtSUQ6IDxDQVBveUJxU0tNc2YrYUZVa3pPUWFZPW1wUyswWVBkb3NHQVp6eHY9cm5yaW5MQm5aOWdAbWFpbC5nbWFpbC5jb20+Ck1lc3NhZ2UtSUQ6IDxDQVBveUJxU0tNc2YrYUZVa3pPUWFZPW1wUyswWVBkb3NHQVp6eHY9cm5yaW5MQm5aOWdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBtaWdyYXRpbmcgc29tZSBjb2RlIHRvIEdpdApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSI5NGViMmMxY2RmYTI4OTEwMjQwNTVjMjk1ZGMzIgoKLS05NGViMmMxY2RmYTI4OTEwMjQwNTVjMjk1ZGMzCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkdyZWF0IQpUaGFua3MgdG8gdGFrZSBjYXJlIG9mIHRoaXMhCgpPbiBNb24sIDIzIE9jdCAyMDE3IGF0IDc6MDAgYW0sIEFybmF1ZCBIPUMzPUE5cml0aWVyIDxhaGVyaXRpZXJAZ21haWwuY29tPiA9Cndyb3RlOgoKPiBBd2Vzb21lICEKPgo+IE9uIFN1biwgT2N0IDIyLCAyMDE3IGF0IDEyOjAwIFBNLCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Cj4gd3JvdGU6Cj4KPiA+IEdyZWF0IGpvYiwgdGhhbmsgeW91IGFsbCEKPiA+Cj4gPiBSb2JlcnQKPiA+Cj4gPgo+ID4gT24gU3VuLCAyMiBPY3QgMjAxNyAxMTo0NTowMiArMDIwMCwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGY9CnJlZS5mcgo+ID4KPiA+IHdyb3RlOgo+ID4KPiA+IG1pZ3JhdGlvbiBkb25lOiBvbmx5IHJlbWFpbmluZyB0YXNrIGlzIHRvIHJlbmFtZSAidHJ1bmsiIEhFQUQgYnJhbmNoCj4gPj4gaW5oZXJpdGVkCj4gPj4gZnJvbSBzdm4gaGlzdG9yeSB0byAibWFzdGVyIiAoYW5kIGV2ZW50dWFsbHkgYWRkIGEgTU9WRURfVE9fR0lUIGZpbGUgaT0Kbgo+ID4+IG9yaWdpbgo+ID4+IHN2bikKPiA+Pgo+ID4+IFRoZSBBcGFjaGUgZ2l0IGhvc3RpbmcgcHJvdmlkZWQgaXMgR2l0Qm94LCB1bmxpa2UgcHJldmlvdXMgY29tcG9uZW50Cj4gdGhhdAo+ID4+IHVzZQo+ID4+IEdpdC1XaXA6IHdpdGggR2l0Qm94LCB0aGUgY29udGVudCBpcyBtb2RpZmlhYmxlIGJvdGggYXQgQVNGIGdpdCByZXBvIGE9Cm5kCj4gPj4gR2l0SHViCj4gPj4gbWlycm9yCj4gPj4gWW91J2xsIG5lZWQgc29tZSBjb25maWcgb24geW91ciBzaWRlIGlmIHlvdSB3YW50IHRvIGJlIGFibGUgdG8gcHVzaAo+ID4+IGRpcmVjdGx5IHRvCj4gPj4gR2l0SHViOiBzZWUgaHR0cHM6Ly9naXRib3guYXBhY2hlLm9yZy9zZXR1cC8KPiA+Pgo+ID4+IFRoYW5rcyB0byBpbmZyYSBDaHJpcyBMYW1iZXJ0dXMgZm9yIGRvaW5nIHRoZSBqb2IgZm9yIHVzCj4gPj4KPiA+PiBSZWdhcmRzLAo+ID4+Cj4gPj4gSGVydj1DMz1BOQo+ID4+Cj4gPj4gTGUgbWFyZGkgMTAgb2N0b2JyZSAyMDE3LCAxODo0MjoyNiBDRVNUIEhlcnY9QzM9QTkgQk9VVEVNWSBhID1DMz1BOWNyaT0KdCA6Cj4gPj4KPiA+Pj4gamlyYSBpc3N1ZSBjcmVhdGVkOgo+ID4+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0lORlJBLTE1MjUzCj4gPj4+Cj4gPj4+IFJlZ2FyZHMsCj4gPj4+Cj4gPj4+IEhlcnY9QzM9QTkKPiA+Pj4KPiA+Pj4gTGUgc2FtZWRpIDcgb2N0b2JyZSAyMDE3LCAxMjozMjowMCBDRVNUIEhlcnY9QzM9QTkgQk9VVEVNWSBhID1DMz1BOWNyPQppdCA6Cj4gPj4+ID4gSSB3cm90ZSBhIGxpdHRsZSBzaGVsbCBzY3JpcHQgdG8gY2hlY2sgZGlmZmVyZW5jZXMgYmV0d2VlbiB0YWdzIGluCj4gc3ZuCj4gPj4+IGFuZAo+ID4+PiA+IGdpdCBjaGVja291dAo+ID4+PiA+IHRoZSBvbmx5IGRpZmZlcmVuY2VzIEkgZm91bmQgZm9yIHRoZSA2IGdpdCByZXBvcyBhcmU6Cj4gPj4+ID4gMS4gZW1wdHkgZGlycyAod2hpY2ggZXhpc3QgaW4gc3ZuIGJ1dCBhcmUgcHJ1bmVkIGluIGdpdCkKPiA+Pj4gPiAyLiBvbmUgc3RyYWdlIGNhc2UgaW4gZW5mb3JjZXItMS4yIHdoZXJlIGEgZmV3IGZpbGVzIHNlZW0gdG8gaGF2ZQo+ID4+PiBuZXdsaW5lcwo+ID4+PiA+IGlzc3Vlcwo+ID4+PiA+Cj4gPj4+ID4gdG8gbWUsIHRoaXMgY2FuIGJlIHNhZmVseSBpZ25vcmVkCj4gPj4+ID4KPiA+Pj4gPiBpZiBub2JvZHkgb2JqZWN0cywgaW4gNzJoLCBJJ2xsIGNyZWF0ZSBJTkZSQSBqaXJhIGlzc3VlIHRvIHN3aXRjaAo+ID4+PiA+IGZvbGxvd2luZwo+ID4+PiA+IDYgY29tcG9uZW50cyBmcm9tIHN2biB0byB0aGUgY3VycmVudCBnaXQgbWlycm9yOgo+ID4+PiA+IC0gRG94aWEgY29yZQo+ID4+PiA+IC0gRG94aWEgU2l0ZXRvb2xzCj4gPj4+ID4gLSBFbmZvcmNlcgo+ID4+PiA+IC0gSnhyCj4gPj4+ID4gLSBQbHVnaW4gVG9vbHMKPiA+Pj4gPiAtIFJlbGVhc2UKPiA+Pj4gPgo+ID4+PiA+Cj4gPj4+ID4gUmVnYXJkcywKPiA+Pj4gPgo+ID4+PiA+IEhlcnY9QzM9QTkKPiA+Pj4gPgo+ID4+PiA+IExlIHNhbWVkaSA3IG9jdG9icmUgMjAxNywgMDQ6NDc6MzIgQ0VTVCBIZXJ2PUMzPUE5IEJPVVRFTVkgYSA9QzM9QTk9CmNyaXQgOgo+ID4+PiA+ID4gcmUtcmVhZGluZyBvdXIgbWlncmF0aW9uIHByb2Nlc3MgZG9jdW1lbnRhdGlvbiBbMV0sIEkgc2VlICJjaGVjawo+ID4+PiA+ID4gZXNwZWNpYWxseQo+ID4+PiA+ID4gYmVoYXZpb3VyIG9uIGNoZWNraW5nIG91dCB0YWciCj4gPj4+ID4gPgo+ID4+PiA+ID4gSSBzdXBwb3NlIHRoYXQgd2UgY291bGQgY29tcGFyZSBjb250ZW50IGJldHdlZW4gZ2l0IGNoZWNrb3V0IGFuZAo+IHN2bgo+ID4+PiA+ID4gY2hlY2tvdXQgZm9yIEhFQUQgYW5kIGV2ZXJ5IHBhc3QgcmVsZWFzZQo+ID4+PiA+ID4KPiA+Pj4gPiA+IGRpZCBzb21lYm9keSBwcmVwYXJlIGEgc2hlbGwgc2NyaXB0IGZvciB0aGF0Pwo+ID4+PiA+ID4KPiA+Pj4gPiA+IFJlZ2FyZHMsCj4gPj4+ID4gPgo+ID4+PiA+ID4gSGVydj1DMz1BOQo+ID4+PiA+ID4KPiA+Pj4gPiA+IFsxXSBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL0dpdAo+ID4+PiA+ID4gK01pZ3JhdGlvbiNHaXRNaWdyYXRpb24tTWlncmF0aW9ucHJvY2Vzc2Rlc2NyaXB0aW9uCj4gPj4+ID4gPgo+ID4+PiA+ID4gTGUgdmVuZHJlZGkgNiBvY3RvYnJlIDIwMTcsIDAwOjM0OjExIENFU1QgSGVydj1DMz1BOSBCT1VURU1ZIGEgPQo9QzM9QTljcml0IDoKPiA+Pj4gPiA+ID4gZ3JlYXQsIHRoYW5rIHlvdSBmb3IgeW91ciBoZWxwCj4gPj4+ID4gPiA+Cj4gPj4+ID4gPiA+IGluIGZhY3QsIEFGQUlLLCBBcGFjaGUgaGFzIGFscmVhZHkgYXV0b21hdGljIHN2bjJnaXQgZXhwb3J0cyBbMT0KXQo+ID4+PiB0aGF0Cj4gPj4+ID4gPiA+IGFyZQo+ID4+PiA+ID4gPiB0aGVuIG1pcnJvcmVkIHRvIGdpdGh1Yi4KPiA+Pj4gPiA+ID4gVGhlbiB3ZSBhbHJlYWR5IGhhdmU6Cj4gPj4+ID4gPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1kb3hpYS8KPiA+Pj4gPiA+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRveGlhLXNpdGV0b29scy8KPiA+Pj4gPiA+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWVuZm9yY2VyLwo+ID4+PiA+ID4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tanhyLwo+ID4+PiA+ID4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2luLXRvb2xzLwo+ID4+PiA+ID4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcmVsZWFzZS8KPiA+Pj4gPiA+ID4KPiA+Pj4gPiA+ID4gSSBzdXBwb3NlIHRoZXNlIGNvdWxkIGJlIHRoZSBuYXR1cmFsIHRhcmdldHMuCj4gPj4+ID4gPiA+IEJ1dCBJIGRvbid0IHJlYWxseSBzZWUgd2hhdCBjaGVja3MgdG8gZG8gb24gdGhlc2UuCj4gPj4+ID4gPiA+Cj4gPj4+ID4gPiA+IEkgc3VwcG9zZSB0aGF0IG9uY2Ugd2UgYXJlIGNvbnZpbmNlZCB0aGlzIGNvbnRlbnQgaXMgb2ssIHdlIGNhbgo+IGFzawo+ID4+PiA+ID4gPiBpbmZyYQo+ID4+PiA+ID4gPiB0byBzd2l0Y2ggdGhlc2UgdG8gdGhlIGNhbm9uaWNhbCBzb3VyY2UgKGFuZCBkaXNhYmxlIHRoZSBzdm4yZ2k9CnQKPiA+Pj4gPiA+ID4gZXhwb3J0cykKPiA+Pj4gPiA+ID4KPiA+Pj4gPiA+ID4gRG8geW91IHNlZSBhbnkgaXNzdWUgaW4gdGhlc2UgcmVwb3M/Cj4gPj4+ID4gPiA+Cj4gPj4+ID4gPiA+IFJlZ2FyZHMsCj4gPj4+ID4gPiA+Cj4gPj4+ID4gPiA+IEhlcnY9QzM9QTkKPiA+Pj4gPiA+ID4KPiA+Pj4gPiA+ID4gWzFdIGh0dHA6Ly9naXQuYXBhY2hlLm9yZy8KPiA+Pj4gPiA+ID4KPiA+Pj4gPiA+ID4gTGUgamV1ZGkgNSBvY3RvYnJlIDIwMTcsIDExOjQ1OjIzIENFU1QgRGVqYW4gU3RvamFkaW5vdmljIGEKPiA9QzM9QTljcml0IDoKPiA+Pj4gPiA+ID4gPiBDb3VudCBtZSBpbiAoZm9yIGJvdGggYWN0dWFsIG1pZ3JhdGlvbiBhbmQgcmVsYXRlZCB0YXNrcykuCj4gPj4+ID4gPiA+ID4KPiA+Pj4gPiA+ID4gPiBNeSB3ZWFwb24gb2YgY2hvaWNlIGZvciBTVk4gLS0+PkdJVCB3b3VsZCBiZToKPiA+Pj4gPiA+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vbmlydmRydW0vc3ZuMmdpdCAoSSBtYW5hZ2VkIHRvIG1vdmUgZG96ZW4KPiBvZgo+ID4+PiA+ID4gPiA+IHJlcG9zCj4gPj4+ID4gPiA+ID4gZmV3Cj4gPj4+ID4gPiA+ID4geWVhcnMgYWdvKS4KPiA+Pj4gPiA+ID4gPgo+ID4+PiA+ID4gPiA+IFJlZ2FyZHMsCj4gPj4+ID4gPiA+ID4gRGVqYW4KPiA+Pj4gPiA+ID4gPgo+ID4+PiA+ID4gPiA+IE9uIDIwMTctMTAtMDQgMDE6NDgsIEhlcnY9QzM9ODM9QzI9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUA9CmZyZWUuZnI+Cj4gPj4+IHdyb3RlOgo+ID4+PiA+ID4gPiA+ID4gSSdkIGxpa2UgdG8gd29yayBvbiBQbHVnaW4gVG9vbHMgd2l0aCBnaXQKPiA+Pj4gPiA+ID4gPiA+Cj4gPj4+ID4gPiA+ID4gPiBXaGlsZSBhdCBpdCwgbG9va2luZyBhdCBvdXIgcGxhbiBbMV0sIEkgc2VlIHdlIGhhdmUgYSBmZXcKPiBvdGhlcgo+ID4+PiA+ID4gPiA+ID4gY29tcG9uZW50cwo+ID4+PiA+ID4gPiA+ID4gdGhhdCBhcmUgcmVhZHkgdG8gbWlncmF0ZToKPiA+Pj4gPiA+ID4gPiA+IC0gRG94aWEgY29yZQo+ID4+PiA+ID4gPiA+ID4gLSBEb3hpYSBTaXRldG9vbHMKPiA+Pj4gPiA+ID4gPiA+IC0gRW5mb3JjZXIKPiA+Pj4gPiA+ID4gPiA+IC0gSnhyCj4gPj4+ID4gPiA+ID4gPiAtIFBsdWdpbiBUb29scwo+ID4+PiA+ID4gPiA+ID4gLSBSZWxlYXNlCj4gPj4+ID4gPiA+ID4gPgo+ID4+PiA+ID4gPiA+ID4gV2hhdCBjaGVja3MgYXJlIHJlcXVpcmVkIGJlZm9yZSBzd2l0Y2hpbmcgdGhlc2UgNiBjb21wb25lbnQ9CnM/Cj4gPj4+ID4gPiA+ID4gPiBBbnkgdm9sdW50ZWVyPwo+ID4+PiA+ID4gPiA+ID4KPiA+Pj4gPiA+ID4gPiA+IFJlZ2FyZHMsCj4gPj4+ID4gPiA+ID4gPgo+ID4+PiA+ID4gPiA+ID4gSGVydj1DMz04Mz1DMj1BOQo+ID4+PiA+ID4gPiA+ID4KPiA+Pj4gPiA+ID4gPiA+IFsxXQo+ID4+PiA+ID4gPiA+ID4gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9HaXQrTWlncmE9CnQKPiA+Pj4gaW9uCj4gPj4+ID4gPiA+ID4gPgo+ID4+PiA+ID4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0KPiA+Pj4gLS0tLS0tCj4gPj4+ID4gPiA+ID4gPiAtLQo+ID4+PiA+ID4gPiA+ID4gLQo+ID4+PiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4gPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4gPiA+ID4gPgo+ID4+PiA+ID4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+PiAtLS0tLS0tLQo+ID4+PiA+ID4gPiA+IC0KPiA+Pj4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+PiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4gPiA+ID4KPiA+Pj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+IC0tLS0tLS0tLQo+ID4+PiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+PiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4+ID4gPgo+ID4+PiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4+IC0tLS0tLS0tLQo+ID4+PiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4gPgo+ID4+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0tCj4gPj4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+Pj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4+Cj4gPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4+Cj4gPj4KPiA+Pgo+ID4+Cj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPj4KPiA+Cj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPgo+ID4KPgo+Cj4gLS0KPiAtLS0tLQo+IEFybmF1ZCBIPUMzPUE5cml0aWVyCj4gaHR0cDovL2FoZXJpdGllci5uZXQKPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKPgotLT0yMApPbGl2aWVyIExhbXkKaHR0cDovL3R3aXR0ZXIuY29tL29sYW15IHwgaHR0cDovL2xpbmtlZGluLmNvbS9pbi9vbGFteQoKLS05NGViMmMxY2RmYTI4OTEwMjQwNTVjMjk1ZGMzLS0KCkZyb20gZGV2LXJldHVybi0xMjQyOTUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE9jdCAyMSAxMToxMTo0NSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyOTUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQkNENjcxMEQzMwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDIxIE9jdCAyMDE3IDExOjExOjQ1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTg1NjIgaW52b2tlZCBieSB1aWQgNTAwKTsgMjEgT2N0IDIwMTcgMTE6MTE6NDUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE4NDY0IGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIE9jdCAyMDE3IDExOjExOjQ1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTg0NDMgaW52b2tlZCBieSB1aWQgOTkpOyAyMSBPY3QgMjAxNyAxMToxMTo0NSAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAyMSBPY3QgMjAxNyAxMToxMTo0NSArMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLWxmMC1mNDguZ29vZ2xlLmNvbSAobWFpbC1sZjAtZjQ4Lmdvb2dsZS5jb20gWzIwOS44NS4yMTUuNDhdKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgNDQwMEYxQTAzMUUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDIxIE9jdCAyMDE3IDExOjExOjQzICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLWxmMC1mNDguZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgYjE5MHNvMTU1NTA0NjVsZmcuOQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDIxIE9jdCAyMDE3IDA0OjExOjQyIC0wNzAwIChQRFQpClgtR20tTWVzc2FnZS1TdGF0ZTogQU1DenNhVnN6RHRHd2swb29QTjhhN2w2NUhKUGpYTnEvdHBVYWFnaG85VkhuV05iczVPV2pRNlEKCXVtTjE3Q3cvWlpPK0FVR200Y0xncHRtUGpFVlpCMDRLT3huWlBJaz0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFCaFFwK1JxQnhtaXEyZXQwYkZXSkVsa014UzcrZ2dLeEVZRjhkbGJyRkt6Y3V3M0ZFNnBTdXB1VzJJNGZHRERoYVZrVjQ4ZStvUEhuN2p1MlB6OXo0T2ZaWU09ClgtUmVjZWl2ZWQ6IGJ5IDEwLjQ2LjQzLjY5IHdpdGggU01UUCBpZCBxNjZtcjMwNTEzNzdsamUuMTA0LjE1MDg1ODQyOTk4NjU7CiBTYXQsIDIxIE9jdCAyMDE3IDA0OjExOjM5IC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzkuNzUuMTMwIHdpdGggSFRUUDsgU2F0LCAyMSBPY3QgMjAxNyAwNDoxMToxOSAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPG9wLnk4Z2U1aTA2a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpSZWZlcmVuY2VzOiA8MTUyMjg5OS5JV0VRb1RpR2ZFQGdpZ2E+IDxvcC55OGdlNWkwNmtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KRnJvbTogT2xpdmllciBMYW15IDxvbGFteUBhcGFjaGUub3JnPgpEYXRlOiBTYXQsIDIxIE9jdCAyMDE3IDIyOjExOjE5ICsxMTAwClgtR21haWwtT3JpZ2luYWwtTWVzc2FnZS1JRDogPENBUG95QnFTVjFUMENSQVgwR0gyRFY2Z2tyTEFhTk1kLXplRmFzWXVWTG15SG9EazFqUUBtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JRDogPENBUG95QnFTVjFUMENSQVgwR0gyRFY2Z2tyTEFhTk1kLXplRmFzWXVWTG15SG9EazFqUUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IG1vdmluZyBHaXRIdWIgaXNzdWUgbm90aWZpY2F0aW9ucyB0byBpc3N1ZXNAbWF2ZW4uYS5vClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9IjAwMWExMTRiOGEwNjRlYWUzZTA1NWMwY2E3NDUiCgotLTAwMWExMTRiOGEwNjRlYWUzZTA1NWMwY2E3NDUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKKzEKCk9uIDIxIE9jdG9iZXIgMjAxNyBhdCAyMToyMywgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPiB3cm90ZToKCj4gKzEKPgo+Cj4gT24gU2F0LCAyMSBPY3QgMjAxNyAxMjoyMjo0NyArMDIwMCwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZT0KZS5mcj4KPiB3cm90ZToKPgo+IEN1cnJlbnRseSwgY29tbWVudHMgYXJlIHNlbnQgdG8gZGV2QG1hdmVuLmEubwo+Pgo+PiBGb3Igb3VyIGNsYXNzaWNhbCBvZmZpY2lhbCBKaXJhIGlzc3VlIHRyYWNrZXIsIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgdG8KPj4gaXNzdWVzQG1hdmVuLmEubwo+Pgo+PiBJZiBub2JvZHkgb2JqZWN0cyAoNzJoIGFzIHVzdWFsKSwgSSdsbCBhc2sgaW5mcmEgdG8gc3dpdGNoIEdpdEh1YiBpc3N1ZQo+PiBub3RpZmljYXRpb25zIHRvIGlzc2V1c0BtYXZlbi5hLm8KPj4KPj4gUmVnYXJkcywKPj4KPj4gSGVydj1DMz1BOQo+Pgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKCi0tPTIwCk9saXZpZXIgTGFteQpodHRwOi8vdHdpdHRlci5jb20vb2xhbXkgfCBodHRwOi8vbGlua2VkaW4uY29tL2luL29sYW15CgotLTAwMWExMTRiOGEwNjRlYWUzZTA1NWMwY2E3NDUtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDc5My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgRGVjIDE5IDA2OjA4OjA5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDc5My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDODdFQTEwMEZCCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMTkgRGVjIDIwMTcgMDY6MDg6MDkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2OTU1MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOSBEZWMgMjAxNyAwNjowODowOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjk0NzMgaW52b2tlZCBieSB1aWQgNTAwKTsgMTkgRGVjIDIwMTcgMDY6MDg6MDkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2OTQ1OSBpbnZva2VkIGJ5IHVpZCA5OSk7IDE5IERlYyAyMDE3IDA2OjA4OjA5IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDE5IERlYyAyMDE3IDA2OjA4OjA5ICswMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtd3IwLWYxODAuZ29vZ2xlLmNvbSAobWFpbC13cjAtZjE4MC5nb29nbGUuY29tIFsyMDkuODUuMTI4LjE4MF0pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCA5MEUzQjFBMDAyRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTkgRGVjIDIwMTcgMDY6MDg6MDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtd3IwLWYxODAuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgZjhzbzYzNDk3MjN3cmUuNAogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE4IERlYyAyMDE3IDIyOjA4OjA1IC0wODAwIChQU1QpClgtR20tTWVzc2FnZS1TdGF0ZTogQUtHQjNtSUFzdmloSEhURzdwRVdoNmpsZzl5aTNVR1dKbis2VHl2YjZXMjlZWGt5dXlFTXBoWUgKCURDMmlEaysyZzBrNGtiWjJ4MXBNbGEwbHRWMEpLWEV0UFZKZnd0OD0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFDSmZCb3VNazRzdFZRSkNYMENqQ3BUSE5yRFVUMGQ5UUNXT2o2REZtMkhBMjA2MW9VZVk1MVgyYTBaeDRkTXhsUFpZeTdNMTJOdnRnc0FxKzJJYXo1b0Q5VUk9ClgtUmVjZWl2ZWQ6IGJ5IDEwLjQ2LjQuMjA3IHdpdGggU01UUCBpZCBhNzZtcjEzNzY1ODFsamYuNi4xNTEzNjYzNjg0Mjc2OyBNb24sCiAxOCBEZWMgMjAxNyAyMjowODowNCAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTc5LjYuMTUzIHdpdGggSFRUUDsgTW9uLCAxOCBEZWMgMjAxNyAyMjowNzo0MyAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPDI2OTg2MTYuaHhaa2tqeTlkcEBnaWdhPgpSZWZlcmVuY2VzOiA8MTkwMDU1OC5HRng5UWxmYUUyQGdpZ2E+IDwzMjcyMTQxLlRzSEhxVVpEa3BAZ2lnYT4KIDxvcC56YmI4ejN6emtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4gPDI2OTg2MTYuaHhaa2tqeTlkcEBnaWdhPgpGcm9tOiBPbGl2aWVyIExhbXkgPG9sYW15QGFwYWNoZS5vcmc+CkRhdGU6IFR1ZSwgMTkgRGVjIDIwMTcgMTc6MDc6NDMgKzExMDAKWC1HbWFpbC1PcmlnaW5hbC1NZXNzYWdlLUlEOiA8Q0FQb3lCcVNwaVF1VThSMV90d1g3aXBSc0pEb0RieEFWNE5aaEd1c3ppK0RLUTFKcHR3QG1haWwuZ21haWwuY29tPgpNZXNzYWdlLUlEOiA8Q0FQb3lCcVNwaVF1VThSMV90d1g3aXBSc0pEb0RieEFWNE5aaEd1c3ppK0RLUTFKcHR3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW0lNUE9SVEFOVF0gUmU6IEdpdCBtaWdyYXRpb24gbmV4dCBzdGVwcwpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSI5NGViMmMxYTVmMjIzNWY3NmUwNTYwYWI0YWFhIgoKLS05NGViMmMxYTVmMjIzNWY3NmUwNTYwYWI0YWFhCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCmFueSBwbGFuIHRvIHVwZGF0ZSB0aGUgbWF2ZW4tYWdncmVnYXRvciBmaWxlPyA6LSkKCgpPbiAxNyBEZWNlbWJlciAyMDE3IGF0IDAyOjI4LCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3I9Cm90ZToKCj4gb2ssIEkgd2FzIGNvbmZ1c2VkIGJ5IHRoZSBkaWZmZXJlbnQgdGFrZXMgYXQgbS1qYXZhZG9jLXAgMy4wLjAKPgo+IHllcywgc3ZuMmdpdCBtaXJyb3IgaXMgc3R1Y2sgWzFdIGF0IHIxODE1Njc1Cj4KPiBJIGp1c3Qgb3BlbmVkIGFuIElORlJBIEppcmEgaXNzdWUKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0lORlJBLTE1Njc5Cj4KPiBvbmNlIHRoZSBzdm4yZ2l0IG1pcnJvciB3aWxsIGJlIHVwZGF0ZWQsIHdlJ2xsIGhhdmUgdG8gcmUtcnVuIHRoZSBzcGxpdAo+IHNjcmlwdHMgYW5kIGNoZXJyeSBwaWNrIHRoZSBtaXNzaW5nIGNvbW1pdHMKPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUMzPUE5Cj4KPiBbMV0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL2NvbW1pdHMvdHJ1bmsKPgo+IExlIHNhbWVkaSAxNiBkPUMzPUE5Y2VtYnJlIDIwMTcsIDEzOjAxOjA1IENFVCBSb2JlcnQgU2Nob2x0ZSBhID1DMz1BOWNyaXQ9CiA6Cj4gPiBJIHdhcyB0cmlnZ2VyZWQgYnkgc29tZSBmYWlsaW5nIHVuaXQgdGVzdHMsIHdoaWNoIHNob3VsZCBoYXZlIGJlZW4gc29sdj0KZWQKPiA+IGluIG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wCj4gPgo+ID4gTXkgbGFzdCBjb21taXQgYWNjb3JkaW5nIHRvIEdJVCB3YXMgbm92ZW1iZXIgMTh0aAo+ID4gTXkgbGFzdCBjb21taXQgYWNjb3JkaW5nIHRvIFNWTiB3YXMgZGVjZW1iZXIgM3JkCj4gPgo+ID4gY29tcGFyaW5nIHN2bmxvZyB3aXRoIGdpdGxvZyBtb3N0IG9mIHRoZXNlIGNvbW1pdHMgYXJlIGxvc3Q6Cj4gPgo+ID4gbW92ZWQgdG8gZ2l0Cj4gPiAtLS0tCj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgZm9yIG5leHQgZGV2ZWxvcG1lbnQgaXRlcmF0aW9uCj4gPiAtLS0tCj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgcmVsZWFzZSBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+ID4gLS0tLQo+ID4gW01KQVZBRE9DLTQ5OF0gIm1vZHVsZSBub3QgZm91bmQiIHdoZW4gSmF2YSA5IG1vZHVsZS1pbmZvIHByZXNlbnQKPiA+IFN1cHBvcnQgYWdncmF0ZWQgamF2YWRvYwo+ID4gLS0tLQo+ID4gU2tpcCBzZXZlcmFsIHVuaXR0ZXN0cyBmb3IgSmF2YTkKPiA+IC0tLS0KPiA+IEpESy04MDMyMjA1IHdhcyBjbG9zZWQgYXMgbm90IGFuIGlzc3VlLCBzbyBub3Qgc29sdmVkIGluIEphdmE5Lgo+ID4gTmVlZCB0byByZXZpZXcgdGhlIGNvbmNsdXNpb24KPiA+IC0tLS0KPiA+IFVwZ3JhZGUgbW9ja2l0byB0byByZW1vdmUgd2FybmluZyBhYm91dCBpbGxlZ2FsIHJlZmxlY3RpdmUgYWNjZXNzCj4gPiAtLS0tCj4gPiBJbXByb3ZlIFRlc3RKYXZhZG9jUmVwb3J0VGVzdCN0ZXN0VGVzdEphdmFkb2MKPiA+IEo4IHdhcm5zIGFuZCBjb250aW51ZXMgd2l0aCBtaXNzaW5nIGRlcGVuZGVuY3ksIEo5IGZhaWxzLgo+ID4gSW4gZmFjdCB0ZXN0IHdhcyB3cm9uZzogZGVwZW5kZW5jeSBzaG91bGQgaGF2ZSBiZWVuIG9uIGNsYXNzcGF0aAo+ID4gLS0tLQo+ID4gdW5pdHRlc3Qgc2hvdWxkIHByZWZlciBKQVZBX0hPTUUgd2hlbiBleGVjdXRpbmcgZnJvbSBjbWRsaW5lCj4gPiBXaGVuIHJ1bm5pbmcgd2l0aCBKYXZhOSsgbm8gbmVlZCB0byBzd2l0Y2ggZnJvbSBqcmUgdG8gamRrIGRpcmVjdG9yeQo+ID4gKGplcDIyMCkKPiA+IC0tLS0KPiA+IE1KQVZBRE9DLTUwMiBVcGRhdGUgREVGQVVMVF9KQVZBX0FQSV9MSU5LUwo+ID4gLS0tLQo+ID4gc2Vzc2lvbiBpcyByZXF1aXJlZCBwYXJhbWV0ZXIsIHNvIGNhbm5vdCBiZSBudWxsLiBGaXggcmVsYXRlZCB1bml0dGVzdHMKPiA+IC0tLS0KPiA+IEFkZCBwcm9qZWN0L2FydGlmYWN0IGtleSB0byBzZXQgb2Ygc291cmNlUGF0aHMgdG8gcmVjb2duaXplIHJlYWN0b3IKPiA+IHByb2plY3RzIHZlcnN1cyBkZXBlbmRlbmNpZXMKPiA+IC0tLS0KPiA+IEdyb3VwIHNldHMgb2Ygc291cmNlcGF0aHMgcGVyIHByb2plY3QsIGluIHByZXBhcmUgb2YgdXNhZ2Ugb2YKPiA+IG1vZHVsZS1zb3VyY2UtcGF0aC4KPiA+IC0tLS0KPiA+IFN3aXRjaCBmcm9tIExpc3QgdG8gQ29sbGVjdGlvbiB0byBtYWtlIGl0IGVhc2llciB0byB1c2UgU2V0cyB3aGVuCj4gcHJlZmVycmVkCj4gPiAtLS0tCj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgZm9yIG5leHQgZGV2ZWxvcG1lbnQgaXRlcmF0aW9uCj4gPiAtLS0tCj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgcmVsZWFzZSBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+ID4gLS0tLQo+ID4KPiA+Cj4gPgo+ID4KPiA+IE9uIFNhdCwgMTYgRGVjIDIwMTcgMTI6NTM6MjMgKzAxMDAsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmPQpyZWUuZnIKPiA+Cj4gPgo+ID4gd3JvdGU6Cj4gPiA+IGxvb2tpbmcgYXQgY29tbWl0c0AgY29udGVudCBodHRwczovL2xpc3RzLmFwYWNoZS5vcmcvbGlzdC5odG1sPwo+ID4gPiBjb21taXRzQG1hdmVuLmFwYWNoZS5vcmcgd2l0aCBzdWJqZWN0IGNvbnRhaW5pbmcgIm1hdmVuL3BsdWdpbnMvdHJ1bms9CiIKPiA+ID4KPiA+ID4gYW5kIHBsdWdpbnMgc3ZuMmdpdCBtaXJyb3IKPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL2NvbW1pdHMvCj4gPiA+IHRydW5rCj4gPiA+Cj4gPiA+IG9ubHkgMSBjb21taXQgaXMgbWlzc2luZzogbXkgbGF0ZXN0IGNvbW1pdCBvbiBtYXZlbi1zaXRlLXBsdWdpbgo+ID4gPiAodGhlIGxhc3QgY29tbWl0IGZvciBHaXQgbWlncmF0aW9uIGlzIG5vdCB1c2VmdWwpCj4gPiA+Cj4gPiA+Cj4gPiA+IFNhbWUgb24gc2hhcmVkIHNob3dlZCBubyBtaXNzaW5nIGNvbW1pdC4KPiA+ID4KPiA+ID4KPiA+ID4gd2hhdCBsYXRlc3QgY29tbWl0IG9mIG1hdmVuLWphdmFkb2MtcGx1Z2luIGFyZSB5b3UgbG9va2luZyBmb3I/Cj4gPiA+Cj4gPiA+IFJlZ2FyZHMsCj4gPiA+Cj4gPiA+IEhlcnY9QzM9QTkKPiA+ID4KPiA+ID4gTGUgc2FtZWRpIDE2IGQ9QzM9QTljZW1icmUgMjAxNywgMTE6NTY6MzEgQ0VUIFJvYmVydCBTY2hvbHRlIGEgPUMzPUE5PQpjcml0IDoKPiA+ID4+IEZvciBldmVyeWJvZHkganVzdCBhIHdhcm5pbmcgSSBmYWNlZCB0b2RheToKPiA+ID4+IElmIHlvdSBzd2l0Y2ggdG8gdGhlIGdpdCByZXBvcywgcGxlYXNlIG1ha2Ugc3VyZSBhbGwgY29tbWl0cyBhcmUKPiA+ID4+IG1pZ3JhdGVkLgo+ID4gPj4gSSBub3RpY2VkIHRoZSBsYXRlc3QgY29tbWl0cyBvZiB0aGUgbWF2ZW4tamF2YWRvYy1wbHVnaW4gZ290IGxvc3QuCj4gPiA+Pgo+ID4gPj4gdGhhbmtzLAo+ID4gPj4gUm9iZXJ0Cj4gPiA+Pgo+ID4gPj4gT24gU2F0LCAwOSBEZWMgMjAxNyAxNzowNjowOSArMDEwMCwgU3RlcGhlbiBDb25ub2xseQo+ID4gPj4KPiA+ID4+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+ID4+ID4gSSBzZWUgd2UgaGF2ZSBhIGxhcmdlIG51bWJlciBvZiByZXBvcyBub3cgb24gZ2l0Ym94IDstKQo+ID4gPj4gPgo+ID4gPj4gPiBPbiBUaHUgNyBEZWMgMjAxNyBhdCAwNzowMCwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWU9Ci5mcj4KPiA+ID4+Cj4gPiA+PiB3cm90ZToKPiA+ID4+ID4+IG9rLCBJIGRpZG4ndCB1cGRhdGUgbXkgcmVwbyBjbG9uZTogbm93IHRoZSBydW4taXRzIHByb2ZpbGUgaXMKPiA+ID4+Cj4gPiA+PiBhY3RpdmF0ZWQKPiA+ID4+Cj4gPiA+PiA+PiB0aGVuIHRoZSBwbGFuIHNob3VsZCBqdXN0IGNvbmZpcm0gIml0IHdvcmtzISIgOikKPiA+ID4+ID4+Cj4gPiA+PiA+PiBhbmQgZmluZCB3aGljaCBqb2JzIGFyZSBzcGVjaWFsLCBsaWtlIG1hdmVuLWRpc3QtdG9vbCAod2hpY2ggaGFzID0KdG8KPiA+ID4+Cj4gPiA+PiBiZQo+ID4gPj4KPiA+ID4+ID4+IHNjaGVkdWxlZCBkYWlseSBpbnN0ZWFkIG9mIGNvZGUgY2hhbmdlLCBhbmQgb25lIHBsYXRmb3JtIG9ubHkpCj4gPiA+PiA+Pgo+ID4gPj4gPj4gUmVnYXJkcywKPiA+ID4+ID4+Cj4gPiA+PiA+PiBIZXJ2PUMzPUE5Cj4gPiA+PiA+Pgo+ID4gPj4gPj4gTGUgbWVyY3JlZGkgNiBkPUMzPUE5Y2VtYnJlIDIwMTcsIDIzOjU4OjQ1IENFVCBTdGVwaGVuIENvbm5vbGx5IGE9CiA9QzM9QTljcml0Cj4gOgo+ID4gPj4gPj4gPiBPbiBXZWQgNiBEZWMgMjAxNyBhdCAyMjozOCwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGY9CnJlZS5mcgo+ID4KPiA+ID4+ID4+Cj4gPiA+PiA+PiB3cm90ZToKPiA+ID4+ID4+ID4gPiBOb3cgdGhhdCB3ZSBoYXZlIDIgQVNGIE9yZ2FuaXphdGlvbiBKZW5raW5zIGpvYnMgKG9uZSBmb3IKPiBnaXRib3gKPiA+ID4+Cj4gPiA+PiBbMV0KPiA+ID4+Cj4gPiA+PiA+PiBhbmQKPiA+ID4+ID4+Cj4gPiA+PiA+PiA+ID4gb25lCj4gPiA+PiA+PiA+ID4gZm9yIGdpdC13aXA6IHRoYW5rIHlvdSBTdGVwaGVuKSBhbmQgdGhhdCBpdCBsb29rcyBxdWl0ZQo+ID4gPj4KPiA+ID4+IHN1Y2Nlc3NmdWwsCj4gPiA+Pgo+ID4gPj4gPj4gbGV0J3MKPiA+ID4+ID4+Cj4gPiA+PiA+PiA+ID4gcGxhbgo+ID4gPj4gPj4gPiA+IHRoZSBuZXh0IHN0ZXBzLgo+ID4gPj4gPj4gPiA+Cj4gPiA+PiA+PiA+ID4gSGVyZSBpcyB3aGF0IEkgc2VlOgo+ID4gPj4gPj4gPiA+IDEuIHJlbW92YWwgb2YgaGFuZC1kZWZpbmVkIEplbmtpbnMgam9icyB0aGF0IGFyZSBub3cgZHVwbGljYXQ9CmVzCj4gPiA+PiA+PiA+ID4KPiA+ID4+ID4+ID4gPiAyLiBwcmVwYXJhdGlvbiBvZiB0aGUgNjAgbmV3IGVtcHR5IGdpdCByZXBvcyBmb3Igc2hhcmVkICYKPiBwbHVnaW5zCj4gPiA+PiA+PiA+ID4KPiA+ID4+ID4+ID4gPiAzLiBtaWdyYXRpb24gb2YgdGhlIDEgc2hhcmVkIGNvbXBvbmVudCBhbmQgMSBwbHVnaW4gdXNpbmcKPiA+ID4+ID4+Cj4gPiA+PiA+PiBtaWdyYXRlLSouc2gKPiA+ID4+ID4+Cj4gPiA+PiA+PiA+ID4gc2NyaXB0cwo+ID4gPj4gPj4gPiA+IFszXSB0byB0ZXN0IGFuZCBldmVudHVhbGx5IHJld29yayB0aGUgSmVua2luc2ZpbGUgKEkgc3VwcG9zZSA9Cml0Cj4gPiA+Pgo+ID4gPj4gd2lsbAo+ID4gPj4KPiA+ID4+ID4+ID4gPiByZXF1aXJlCj4gPiA+PiA+PiA+ID4gc29tZSBsaXR0bGUgY2hhbmdlLCB0byBydW4gYWRkICJydW4taXRzIiBwcm9maWxlKQo+ID4gPj4gPj4gPgo+ID4gPj4gPj4gPiBBcyBmYXIgYXMgSSByZWNhbGwsIEkgYWRkZWQgLVArcnVuLWl0cyBhbHJlYWR5Cj4gPiA+PiA+PiA+Cj4gPiA+PiA+PiA+IEZvciB0aGUgcGx1Z2luLCBJJ2QgbGlrZSB0byBkbyB0aGUgam9iIGZvciBtYXZlbi1zaXRlLXBsdWdpbiwKPiA+ID4+Cj4gPiA+PiBzaW5jZSB3ZQo+ID4gPj4KPiA+ID4+ID4+ID4gPiBleHBlY3QKPiA+ID4+ID4+ID4gPiB0byByZWxlYXNlIGl0IHNvb24uCj4gPiA+PiA+PiA+ID4gRm9yIHRoZSBzaGFyZWQgY29tcG9uZW50LCBJIGRvbid0IGtub3cgaWYgdGhlcmUgaXMgYSBiZXN0Cj4gPiA+Pgo+ID4gPj4gY2FuZGlkYXRlCj4gPiA+Pgo+ID4gPj4gPj4gPiA+IDQuIG9uY2UgcHJldmlvdXMgc3RlcCBpcyBvaywgZG8gdGhlIGZ1bGwgbWlncmF0aW9uOiBpZiB0aGVyZQo+IGFyZQo+ID4gPj4gPj4gPiA+IHZvbHVudGVlcnMKPiA+ID4+ID4+ID4gPiBmb3IgaGVscGluZywgdGhhdCB3b3VsZCBiZSBncmVhdCwgc2luY2UgcG9wdWxhdGluZyA2MCBnaXQgcmVwPQpvcwo+ID4gPj4gPj4KPiA+ID4+ID4+IHdvbid0Cj4gPiA+PiA+PiBiZQo+ID4gPj4gPj4KPiA+ID4+ID4+ID4gPiByZWFsbHkgZnVuLi4uCj4gPiA+PiA+PiA+ID4KPiA+ID4+ID4+ID4gPiBBbmQgYXMgcGFydCBvZiA2MCBlbXB0eSBnaXQgcmVwb3MgY3JlYXRpb24sIEkgcHJvcG9zZSB0bwo+IG1pZ3JhdGUKPiA+ID4+Cj4gPiA+PiB0aGUKPiA+ID4+Cj4gPiA+PiA+PiA+ID4gIkdvb2dsZQo+ID4gPj4gPj4gPiA+IHJlcG8gbWFuaWZlc3QiIG1hdmVuLWFnZ3JlZ2F0b3IgWzRdIHRvIEFTRjogbXkgcGVyc29uYWwgdXNlIGg9CmFzCj4gPiA+Pgo+ID4gPj4gYmVlbgo+ID4gPj4KPiA+ID4+ID4+IHF1aXRlCj4gPiA+PiA+Pgo+ID4gPj4gPj4gPiA+IHN1Y2Nlc3NmdWwsIEkgaG9wZSBpdCdzIHRoZSBzYW1lIGZvciBvdGhlcnMuIFBlcmhhcHMgdGhlcmUgYXI9CmUKPiA+ID4+ID4+Cj4gPiA+PiA+PiBiZXR0ZXIKPiA+ID4+ID4+Cj4gPiA+PiA+PiA+ID4gaWRlYXMKPiA+ID4+ID4+ID4gPiBmb3IgaXRzIG5hbWU6IG1hdmVuLWFnZ3JlZ2F0b3IKPiA+ID4+ID4+ID4gPgo+ID4gPj4gPj4gPiA+IEFueSBvdGhlciBpZGVhPyBhbnkgb2JqZWN0aW9uPwo+ID4gPj4gPj4gPiA+Cj4gPiA+PiA+PiA+ID4gUmVnYXJkcywKPiA+ID4+ID4+ID4gPgo+ID4gPj4gPj4gPiA+IEhlcnY9QzM9QTkKPiA+ID4+ID4+ID4gPgo+ID4gPj4gPj4gPiA+IFsxXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLQo+IGJveC8KPiA+ID4+ID4+ID4gPgo+ID4gPj4gPj4gPiA+IFsyXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLQo+IHdpcC8KPiA+ID4+ID4+ID4gPgo+ID4gPj4gPj4gPiA+IFszXQo+ID4gPj4KPiA+ID4+IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL21hdmVuL3NhbmRib3gvdHJ1bmsvc2NyaXB0cy9naXQvCj4gPiA+Pgo+ID4gPj4gPj4gPiA+IFs0XSBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tYWdncmVnYXRvcgo+ID4gPj4gPj4KPiA+ID4+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0tLS0tLS0tLQo+ID4gPj4gPj4KPiA+ID4+ID4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPj4gPj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+ID4+ID4gPgo+ID4gPj4gPj4gPiA+IC0tCj4gPiA+PiA+PiA+Cj4gPiA+PiA+PiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+ID4gPj4gPj4KPiA+ID4+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IC0tLS0tLS0tLQo+ID4gPj4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+ID4+Cj4gPiA+PiA+PiAtLQo+ID4gPj4gPgo+ID4gPj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+ID4+Cj4gPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLQo+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+Cj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgoKCi0tPTIwCk9saXZpZXIgTGFteQpodHRwOi8vdHdpdHRlci5jb20vb2xhbXkgfCBodHRwOi8vbGlua2VkaW4uY29tL2luL29sYW15CgotLTk0ZWIyYzFhNWYyMjM1Zjc2ZTA1NjBhYjRhYWEtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDMyMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gT2N0IDIzIDIzOjMyOjE2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDMyMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFMDE5QTEwNTE5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMjMgT2N0IDIwMTcgMjM6MzI6MTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0MTU1OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMyBPY3QgMjAxNyAyMzozMjoxNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDE0ODggaW52b2tlZCBieSB1aWQgNTAwKTsgMjMgT2N0IDIwMTcgMjM6MzI6MTYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0MTQ3NyBpbnZva2VkIGJ5IHVpZCA5OSk7IDIzIE9jdCAyMDE3IDIzOjMyOjE2IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDIzIE9jdCAyMDE3IDIzOjMyOjE2ICswMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtbGYwLWY0My5nb29nbGUuY29tIChtYWlsLWxmMC1mNDMuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNS40M10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCBDRkFBQzFBMDJEQwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMjMgT2N0IDIwMTcgMjM6MzI6MTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtbGYwLWY0My5nb29nbGUuY29tIHdpdGggU01UUCBpZCBsMjNzbzIxOTUyMDY2bGZrLjEwCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMjMgT2N0IDIwMTcgMTY6MzI6MTUgLTA3MDAgKFBEVCkKWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FXRGNmYU9MWlo4cW0xWFlaMWkzUWNoWUpIQllScXZHQ0pqSXo0dXpZMEl6QjhYZTU4bgoJMURBZEFya0kvd1EwcjFZYlp2SVZ2S0FQVlNGUEdvRVJ0VnA2Z09VPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUJoUXArU0Q2aEc5Rk93cTdvMUI2Y2ZqR2xEQi9jKzJidFU4TUxxdVpySGV3Sml2ZVhNeFBwZkFKRFVMd0I2MVZqU1liZUUwTEtnMVBFV0pLREYxVTdrZlIvND0KWC1SZWNlaXZlZDogYnkgMTAuMjUuODMuNzggd2l0aCBTTVRQIGlkIGg3NW1yNDk4OTk5N2xmYi4xMzQuMTUwODgwMTUzNDQwNTsKIE1vbiwgMjMgT2N0IDIwMTcgMTY6MzI6MTQgLTA3MDAgKFBEVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjE3OS43NS4xMzAgd2l0aCBIVFRQOyBNb24sIDIzIE9jdCAyMDE3IDE2OjMxOjUzIC0wNzAwIChQRFQpCkluLVJlcGx5LVRvOiA8Q0ErblBuTXcxODVvMUFwN3p2M2lSU18zMWZaK3l5aHc2NHh5SkhRS1h3WFdoK1dpYXJ3QG1haWwuZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXd0am5aRS01M0FONTN4Rj1NZjZIWS1GYkdZd1pBVXczRVVLSEE0ZUtCNTJRQG1haWwuZ21haWwuY29tPgogPENBTFlHbTF3PVVQd3YwckUtSGpaSnZuK201SDkxRSs0YTh1LTVTWTBjdjhzdVVLMGhnUUBtYWlsLmdtYWlsLmNvbT4KIDxDQVBDampuRWVzR3hEVEtZaUxHVkdUM2k4QUhhRlZFRUdkOGloZ2pqVTBmRnN0MDNzdFFAbWFpbC5nbWFpbC5jb20+CiA8Q0FQQ2pqbkhvbkRhYmlHV3dKWXFucTJqVTZZZTVOX0M3ZW44UXNSUzhubjRETjZoUGR3QG1haWwuZ21haWwuY29tPiA8Q0ErblBuTXcxODVvMUFwN3p2M2lSU18zMWZaK3l5aHc2NHh5SkhRS1h3WFdoK1dpYXJ3QG1haWwuZ21haWwuY29tPgpGcm9tOiBPbGl2aWVyIExhbXkgPG9sYW15QGFwYWNoZS5vcmc+CkRhdGU6IFR1ZSwgMjQgT2N0IDIwMTcgMTA6MzE6NTMgKzExMDAKWC1HbWFpbC1PcmlnaW5hbC1NZXNzYWdlLUlEOiA8Q0FQb3lCcVN2Tk5KS2N1PWlPWFlMZjNia2kyM3haMVl3NDcyeWZOUFJyYjBkd2RBSFZRQG1haWwuZ21haWwuY29tPgpNZXNzYWdlLUlEOiA8Q0FQb3lCcVN2Tk5KS2N1PWlPWFlMZjNia2kyM3haMVl3NDcyeWZOUFJyYjBkd2RBSFZRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4yClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzFjZGZhMjdlYjRhNTA1NWMzZjNiNmEiCgotLTk0ZWIyYzFjZGZhMjdlYjRhNTA1NWMzZjNiNmEKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKTEdUTQorMSB0ZXN0ZWQgb24gc29tZSBidWlsZHMgKFRCSCBJIGhhdmVuJ3QgdGVzdGVkIHdpdGggdGhlIGF3ZXNvbWUgSmVua2lucwpNYXZlbiBwbHVnaW4gOlAgKQoKT24gMjMgT2N0b2JlciAyMDE3IGF0IDIyOjMyLCBTdGVwaGVuIENvbm5vbGx5IDwKc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cgo+IEFueSBtb3JlIHZvdGVzPwo+Cj4gT24gMjEgT2N0b2JlciAyMDE3IGF0IDEwOjUzLCBEYW4gVHJhbiA8ZGFudHJhbkBnbWFpbC5jb20+IHdyb3RlOgo+Cj4gPiBvdWNoIGZhbHNlIGFsYXJtLCAgSSBmb3Jnb3QgdG8gY29uZmlndXJlIHRoZSBhcnRpZmFjdG9yeSBtaXJyb3IKPiA+Cj4gPiBTb3JyeSBhYm91dCB0aGUgbm9pc2UKPiA+Cj4gPiAtRAo+ID4KPiA+IE9uIFNhdCwgT2N0IDIxLCAyMDE3IGF0IDEwOjEwIEFNLCBEYW4gVHJhbiA8ZGFudHJhbkBnbWFpbC5jb20+IHdyb3RlOgo+ID4KPiA+ID4gSSBhbSBub3QgYWJsZSBnZXR0aW5nIG12biAzLjUuMiB0byBkb3dubG9hZCBhbiBpbnRlcm5hbCBzbmFwc2hvdAo+ID4gPiBkZXBlbmRlbmN5IGZyb20gY29tcCdzIGNlbnRyYWwgYXJ0aWZhY3RvcnkKPiA+ID4KPiA+ID4gaGVyZSBpcyB0aGUgZXJyb3IKPiA+ID4KPiA+ID4gQ2F1c2VkIGJ5OiBvcmcuZWNsaXBzZS5hZXRoZXIucmVzb2x1dGlvbi4KPiBEZXBlbmRlbmN5UmVzb2x1dGlvbkV4Y2VwdGlvbjoKPiA+ID4gQ291bGQgbm90IGZpbmQgYXJ0aWZhY3QgY29tLm9yYWNsZS5saW51eC54ODZfNjQ6anJlOgo+ID4gcnBtOjEuOC4wXzE1MS1TTkFQU0hPVAo+ID4gPiAgICAgYXQgb3JnLmVjbGlwc2UuYWV0aGVyLmludGVybmFsLmltcGwuRGVmYXVsdFJlcG9zaXRvcnlTeXN0ZW0uCj4gPiByZXNvbHZlRGVwZW5kZW5jaWVzCj4gPiA+IChEZWZhdWx0UmVwb3NpdG9yeVN5c3RlbS5qYXZhOjM1NSkKPiA+ID4gICAgIGF0IG9yZy5hcGFjaGUubWF2ZW4ucHJvamVjdC5EZWZhdWx0UHJvamVjdERlcGVuZGVuY2llc1Jlc28KPiA+IGx2ZXIucmVzb2x2ZQo+ID4gPiAoRGVmYXVsdFByb2plY3REZXBlbmRlbmNpZXNSZXNvbHZlci5qYXZhOjIwMikKPiA+ID4KPiA+ID4gTm8gaXNzdWUgd2l0aCAzLjUuMCBhbmQgMy41LjEKPiA+ID4KPiA+ID4gV29uZGVyIGlmIGFueW9uZSBlbHNlIGVuY291bnRlcnMgdGhlIHNhbWUgaXNzdWU/Pwo+ID4gPgo+ID4gPiBUaGFua3MKPiA+ID4KPiA+ID4gLURhbgo+ID4gPgo+ID4gPiBPbiBGcmksIE9jdCAyMCwgMjAxNyBhdCA3OjM1IFBNLCBNYXJrIERlcnJpY3V0dCA8bWFya0B0YWxpb3MuY29tPgo+IHdyb3RlOgo+ID4gPgo+ID4gPj4gKzEgbG9va2luZyBnb29kIGZyb20gaGVyZSBvbiBteSBwcm9qZWN0cy9yZWxlYXNlcy4KPiA+ID4+Cj4gPiA+PiAtLQo+ID4gPj4gIkdyZWF0IGFydGlzdHMgYXJlIGV4dHJlbWVseSBzZWxmaXNoIGFuZCBhcnJvZ2FudCB0aGluZ3MiID1FMj04MD05NCA9ClN0ZXZlbgo+ID4gV2lsc29uLAo+ID4gPj4gUG9yY3VwaW5lIFRyZWUKPiA+ID4+Cj4gPiA+PiBPbiBXZWQsIE9jdCAxOCwgMjAxNyBhdCAxMTo1MCBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPiA+PiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+ID4+Cj4gPiA+PiA+IEhpLAo+ID4gPj4gPgo+ID4gPj4gPiBXZSBzb2x2ZWQgMjYgaXNzdWVzOgo+ID4gPj4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4gPiA+PiA+IHZlcnNpb249M0QxMjMzODk2NCZzdHlsZU5hbWU9M0RUZXh0JnByb2plY3RJZD0zRDEyMzE2OTIyCj4gPiA+PiA+Cj4gPiA+PiA+IFRoZXJlIGFyZSAzNTcgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKPiA+ID4+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUKPiA+ID4+ID4gM0QlMjBNTkclMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJQo+ID4gPj4gPiAyMEJZJTIwZHVlJTIwQVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwY3JlYXRlZCUyMEFTQwo+ID4gPj4gPgo+ID4gPj4gPiBTdGFnaW5nIHJlcG86Cj4gPiA+PiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzMvCj4gPiA+PiA+Cj4gPiA+PiA+IFRoZSBkaXN0cmlidXRhYmxlIGJpbmFyaWVzIGFuZCBzb3VyY2VzIGNhbiBiZSBmb3VuZCBoZXJlOgo+ID4gPj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiA+ID4+ID4gMTM3My9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi8KPiA+ID4+ID4KPiA+ID4+ID4gU3BlY2lmaWNhbGx5IHRoZSB6aXAsIHRhcmJhbGwgYW5kIHNvdXJjZSBhcmNoaXZlcyBjYW4gYmUgZm91bmQgaGVyPQplOgo+ID4gPj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiA+ID4+ID4gMTM3My9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItYmluLnppPQpwCj4gPiA+PiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+ID4gPj4gPiAxMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yL2FwYWNoZS1tYXZlbi0zLjUuCj4gPiAyLWJpbi50YXIuZ3oKPiA+ID4+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4gPiA+PiA+IDEzNzMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvYXBhY2hlLW1hdmVuLTMuNS4yLXNyYy56aT0KcAo+ID4gPj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPiA+ID4+ID4gMTM3My9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41Lgo+ID4gMi1zcmMudGFyLmd6Cj4gPiA+PiA+Cj4gPiA+PiA+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+ID4gPj4gPiBhcGFjaGUtbWF2ZW4tMy41LjItc3JjLnRhci5neiBzaGExOiA5N2Q2ZDdiMTg0ODViNzkwNmRkN2YzMTNjZGQ0MTEKPiA+ID4+ID4gOTFkMTZkZGU0Ngo+ID4gPj4gPiBhcGFjaGUtbWF2ZW4tMy41LjItc3JjLnppcDogc2hhMTogZGM4Y2FhNWNkYWNiNDAwOTQzZDI0OTFhMDIwZjc0Cj4gPiA+PiAyYTUxOGU4ZjA4Cj4gPiA+PiA+Cj4gPiA+PiA+IEdpdCB0YWc6Cj4gPiA+PiA+IGh0dHBzOi8vZ2l0LXdpcC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPTNEbWF2ZW4uZ2l0O2E9M0Rjb21taXQ7aD0KPTNECj4gPiA+PiA+IDEzOGVkZDYxZmQxMDBlYzY1OGJmYTJkMzA3YzQzYjc2OTQwYTVkN2QKPiA+ID4+ID4KPiA+ID4+ID4gU3RhZ2luZyBzaXRlOgo+ID4gPj4gPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvY29tcG9uZW50cy9yZWYvMy1MQVRFU1QvCj4gPiA+PiA+Cj4gPiA+PiA+IFZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCj4gPiA+PiA+Cj4gPiA+PiA+IFsgXSArMQo+ID4gPj4gPiBbIF0gKzAKPiA+ID4+ID4gWyBdIC0xCj4gPiA+PiA+Cj4gPiA+PiA+IFRoYW5rcywKPiA+ID4+ID4KPiA+ID4+ID4gU3RlcGhlbi4KPiA+ID4+ID4KPiA+ID4+Cj4gPiA+Cj4gPiA+Cj4gPgo+CgoKCi0tPTIwCk9saXZpZXIgTGFteQpodHRwOi8vdHdpdHRlci5jb20vb2xhbXkgfCBodHRwOi8vbGlua2VkaW4uY29tL2luL29sYW15CgotLTk0ZWIyYzFjZGZhMjdlYjRhNTA1NWMzZjNiNmEtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDM4NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgTm92ICAyIDAzOjUzOjQyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDM4NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBBMzMwODE3NTdCCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgIDIgTm92IDIwMTcgMDM6NTM6NDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3OTc5MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIE5vdiAyMDE3IDAzOjUzOjQyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3OTY3OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIE5vdiAyMDE3IDAzOjUzOjQyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzk2NjYgaW52b2tlZCBieSB1aWQgOTkpOyAyIE5vdiAyMDE3IDAzOjUzOjQxIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDAyIE5vdiAyMDE3IDAzOjUzOjQxICswMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtbGYwLWY0MS5nb29nbGUuY29tIChtYWlsLWxmMC1mNDEuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNS40MV0pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCAxNjE1MzFBMDI1MAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgIDIgTm92IDIwMTcgMDM6NTM6NDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtbGYwLWY0MS5nb29nbGUuY29tIHdpdGggU01UUCBpZCBiMTkwc280ODAwNDI3bGZnLjkKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAwMSBOb3YgMjAxNyAyMDo1Mzo0MSAtMDcwMCAoUERUKQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFKYVRoWDVBRGMrNm5JUTYvenVyalJWMFl4OXFGTkdCeGZiY1U5WXFPSDV5dFlJV2VEM0dnelBNCglnR1VVZWxQeUg2MDJ5SVZwTmNDVkxjck1pWTlxdjE4UG90VFFlQ3M9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQmhRcCtUUzJtSTVvWnFtZzE3QitDL3VJanJmZ1lyWTRObnV5SEY2QmRhMU1NSU9QWnB4Z29MNWpFVno4bk5ObUdSWXF2ZEhoYTVlZ25ha1FLbzAyTGt4a3JrPQpYLVJlY2VpdmVkOiBieSAxMC4yNS4xNDUuODggd2l0aCBTTVRQIGlkIHkyNG1yNjMzNjI1bGZqLjEzNS4xNTA5NTk0ODE5NTg4OwogV2VkLCAwMSBOb3YgMjAxNyAyMDo1MzozOSAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTc5Ljc1LjEzMCB3aXRoIEhUVFA7IFdlZCwgMSBOb3YgMjAxNyAyMDo1MzoxOCAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPDQ2NTU1OTMuakRJR2kydVVaOEBnaWdhPgpSZWZlcmVuY2VzOiA8NTg3ODExMC5UTUVvdDZWRXV1QGdpZ2E+IDwyMDI4ODgwLjFIZ0ZtUkpTMHBAZ2lnYT4KIDwzNjMwNzk2LnBDeDJGUFBnRmdAZ2lnYT4gPDQ2NTU1OTMuakRJR2kydVVaOEBnaWdhPgpGcm9tOiBPbGl2aWVyIExhbXkgPG9sYW15QGFwYWNoZS5vcmc+CkRhdGU6IFRodSwgMiBOb3YgMjAxNyAxNDo1MzoxOCArMTEwMApYLUdtYWlsLU9yaWdpbmFsLU1lc3NhZ2UtSUQ6IDxDQVBveUJxVDE0N2ZydWlIZHZIV2dqMnZzY0g0RzhRMHQxczk9d09Md1BjM0dSd3dydlFAbWFpbC5nbWFpbC5jb20+Ck1lc3NhZ2UtSUQ6IDxDQVBveUJxVDE0N2ZydWlIZHZIV2dqMnZzY0g0RzhRMHQxczk9d09Md1BjM0dSd3dydlFAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBtaWdyYXRpbmcgc29tZSBjb2RlIHRvIEdpdApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSI5NGViMmMxY2RiM2NmOWY4ZjcwNTVjZjdlZWIyIgoKLS05NGViMmMxY2RiM2NmOWY4ZjcwNTVjZjdlZWIyCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCmltcHJlc3NpdmUhIQp0aGFua3MgdG8gc2V0dXAgdGhpcyEKCkNoZWVycwpPbGl2aWVyCgpPbiAyIE5vdmVtYmVyIDIwMTcgYXQgMDM6NDgsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cm89CnRlOgoKPiBhbmQgaGVyZSBpcyB0aGUgR29vZ2xlIHJlcG8gZGVtbywgd2l0aCBldmVyeSBnaXQgcmVwbyBjb25maWd1cmVkIChldmVuIHRoPQplCj4gNgo+IHRlc3RzKToKPiBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tYWdncmVnYXRvcgo+Cj4gbG9va3MgcHJvbWlzaW5nOiBpZiB5b3UgdXNlIHRoZSBib290c3RyYXBwaW5nIGNvbW1hbmRzIGZyb20gdGhlIHJlYWRtZSwgeT0Kb3UKPiBzaG91bGQgYmUgYWJsZSB0byB1c2UgdGhlIHJlcG9zaXRvcmllcyBpbiBhIG5hdHVyYWwgd2F5IHdpdGggYmFzaWMgZ2l0Cj4gY29tbWFuZHMKPiBJZiB5b3UgZG9uJ3QgcGxheSB3aXRoIGJyYW5jaGVzLCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gcnVuICJyZXBvIHN5bmMiIGF0Cj4gYW55Cj4gdGltZQo+Cj4gUGxlYXNlIHRlc3QgYW5kIHJlcG9ydCBpZiB5b3UncmUgY29udmluY2VkIG9yIG5vdAo+Cj4gSWYgaXQgd29ya3Mgd2VsbCwgSSdsbCBwdXQgdGhpcyBtYXZlbi1hZ2dyZWdhdG9yIGdpdCByZXBvIGluIEdpdEJveCBhcyBhbgo+IG9mZmljaWFsIHdheSB0byBnZXQgZnVsbCBNYXZlbiBzb3VyY2UgKGxvb2tzIGFzIGdvb2QgYXMgdHJ1bmtzIGZyb20gc3ZuKQo+Cj4gUmVnYXJkcywKPgo+IEhlcnY9QzM9QTkKPgo+IExlIG1lcmNyZWRpIDEgbm92ZW1icmUgMjAxNywgMTI6MDk6NTggQ0VUIEhlcnY9QzM9QTkgQk9VVEVNWSBhID1DMz1BOWNyaXQ9CiA6Cj4gPiBhZGRpbmcgMiBtb3JlIHJlcG9zIHRvIHRoZSBsaXN0Ogo+ID4gaHR0cHM6Ly9naXRodWIuY29tL2hib3V0ZW15L21hdmVuLWRveGlhLWNvbnZlcnRlcgo+ID4gaHR0cHM6Ly9naXRodWIuY29tL2hib3V0ZW15L21hdmVuLWRveGlhLWxpbmtjaGVjawo+ID4KPiA+IExlIG1lcmNyZWRpIDEgbm92ZW1icmUgMjAxNywgMDc6Mjg6MDIgQ0VUIEhlcnY9QzM9QTkgQk9VVEVNWSBhID1DMz1BOWNyPQppdCA6Cj4gPiA+IGZvciBsYXp5IHBlb3BsZSwgSSB0b29rIHRpbWUgdG8gY3JlYXRlIHRoZSA0IHJlcG8gb24gcGVyc29uYWwgR2l0SHViCj4gPiA+IHNwYWNlOgo+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tYXBhY2hlLXBhcmVudAo+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tcGFyZW50Cj4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1kZWZhdWx0LXNraW4KPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2hib3V0ZW15L21hdmVuLWZsdWlkby1za2luCj4gPiA+Cj4gPiA+IEkgd29uJ3QgZG8gdGhlIHNhbWUgaW4gdGhlIGZ1dHVyZSBmb3IgdGhlIDI2IHNoYXJlZCBhbmQgNDUgcGx1Z2lucywKPiBzaW5jZQo+ID4gPiBtYW51YWwgcmVwbyBjcmVhdGlvbiBpcyBub3QgZnVuLi4uCj4gPiA+Cj4gPiA+IFJlZ2FyZHMsCj4gPiA+Cj4gPiA+IEhlcnY9QzM9QTkKPiA+ID4KPiA+ID4gTGUgbWFyZGkgMzEgb2N0b2JyZSAyMDE3LCAxNjowODowMSBDRVQgSGVydj1DMz1BOSBCT1VURU1ZIGEgPUMzPUE5Y3JpPQp0IDoKPiA+ID4gPiBBcyB5b3UgcHJvYmFibHkgbm90aWNlZCwgSSBtaWdyYXRlZCBtYXZlbi1kaXN0LXRvb2wgWzFdIHRvIGdpdCwgdXNpPQpuZwo+ID4gPiA+IHNlbGYtCj4gPiA+ID4gc2VydmljZSBHaXRib3ggZm9yIHRoZSBlbXB0eSByZXBvIGNyZWF0aW9uIGFuZCBhIG1pZ3JhdGUtc2FuZGJveC5zaAo+ID4gPiA+IHNoZWxsCj4gPiA+ID4gc2NyaXB0IFsyXSB0byBwb3B1bGF0ZSB0aGVtIChhZnRlciBTbGluZyBleGFtcGxlKQo+ID4gPiA+Cj4gPiA+ID4gSXQgd29ya2VkIGxpa2UgYSBjaGFybSEKPiA+ID4gPgo+ID4gPiA+IElmIG5vYm9keSBvYmplY3RzLCBpbiA3MmgsIEknbGwgdXNlIG1pZ3JhdGUtcG9tLnNoIGFuZAo+IG1pZ3JhdGUtc2tpbnMuc2gKPiA+ID4gPiB0bwo+ID4gPiA+IGNyZWF0ZSA0IG5ldyByZXBvczogbWF2ZW4tYXBhY2hlLXBhcmVudCwgbWF2ZW4tcGFyZW50LAo+ID4gPiA+IG1hdmVuLWRlZmF1bHQtc2tpbgo+ID4gPiA+IGFuZCBtYXZlbi1mbHVpZG8tc2tpbgo+ID4gPiA+IFBsZWFzZSB0YWtlIHRpbWUgdG8gZXhlY3V0ZSB0aGUgc2NyaXB0cyBmb3IgeW91cnNlbGYgYW5kIGNoZWNrIHRoYXQKPiB0aGUKPiA+ID4gPiByZXN1bHQgaXMgb2sgZm9yIHlvdS4KPiA+ID4gPgo+ID4gPiA+IEkgYWxyZWFkeSBwcmVwYXJlZCBtaWdyYXRlLXBsdWdpbnMuc2ggYW5kIG1pZ3JhdGUtc2hhcmVkLnNoIHNjcmlwdHM9CjoKPiBJJ20KPiA+ID4gPiB3YWl0aW5nIGZvciBKZW5raW5zIGludGVncmF0aW9uIHJlc3VsdHMgYmVmb3JlIHRyeWluZyB0byBtaWdyYXRlIHRoPQppcwo+ID4gPiA+IHBhcnQsCj4gPiA+ID4gYnV0IHlvdSBjYW4gYWxzbyB0YWtlIHRpbWUgdG8gY2hlY2sgdGhhdCB0aGUgcmVzdWx0aW5nIGdpdCByZXBvcyBmcj0Kb20KPiA+ID4gPiB0aGUKPiA+ID4gPiBzY3JpcHRzIGFyZSBnb29kLgo+ID4gPiA+Cj4gPiA+ID4gUmVnYXJkcywKPiA+ID4gPgo+ID4gPiA+IEhlcnY9QzM9QTkKPiA+ID4gPgo+ID4gPiA+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRpc3QtdG9vbC8KPiA+ID4gPgo+ID4gPiA+IFsyXSBodHRwczovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy9tYXZlbi9zYW5kYm94L3RydW5rL3NjcmlwdHMvZ2l0Lwo+ID4gPiA+Cj4gPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gLS0tLS0tLS0tCj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+Cj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPgo+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCgotLT0yMApPbGl2aWVyIExhbXkKaHR0cDovL3R3aXR0ZXIuY29tL29sYW15IHwgaHR0cDovL2xpbmtlZGluLmNvbS9pbi9vbGFteQoKLS05NGViMmMxY2RiM2NmOWY4ZjcwNTVjZjdlZWIyLS0KCkZyb20gZGV2LXJldHVybi0xMjQwNjMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIFNlcCAxOSAwMToxNTowMiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwNjMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRDlCOEZGOEI2Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMTkgU2VwIDIwMTcgMDE6MTU6MDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4MzU0IGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IFNlcCAyMDE3IDAxOjE1OjAyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4Mjc4IGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IFNlcCAyMDE3IDAxOjE1OjAyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODI2NyBpbnZva2VkIGJ5IHVpZCA5OSk7IDE5IFNlcCAyMDE3IDAxOjE1OjAyIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDE5IFNlcCAyMDE3IDAxOjE1OjAyICswMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtbGYwLWY1My5nb29nbGUuY29tIChtYWlsLWxmMC1mNTMuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNS41M10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCAyNjY2NTFBMDE4NQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTkgU2VwIDIwMTcgMDE6MTU6MDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtbGYwLWY1My5nb29nbGUuY29tIHdpdGggU01UUCBpZCB5MTg3c28yMjExMzExbGZjLjgKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxOCBTZXAgMjAxNyAxODoxNTowMSAtMDcwMCAoUERUKQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFIUGpqVWlVdzh0bGN1L1JGWHBsdFFFd3FpcktRcmNPQUN0NzhNRnVBakxTNWpuMllYL2xlYmt2CglxaFRxeC9TRzd2b2pHVS9LVnBDcHNDVTUzMmVPVnI5L0FEQVh6RkU9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FBdmp5MXd2SUtpWG5reFdmWVd5SFV4WCtLNWpHUkE4K3F1eTZ5VEJtTUdNaUN6dVljYmlNZnhBb1NQQlRtbk9mZG9NZ29XUU41YUJ4KzRvSjVGazg0PQpYLVJlY2VpdmVkOiBieSAxMC40Ni44OC42OCB3aXRoIFNNVFAgaWQgeDRtcjExOTU1ODA2bGpkLjEzOC4xNTA1NzgzNzAwMTg1OwogTW9uLCAxOCBTZXAgMjAxNyAxODoxNTowMCAtMDcwMCAoUERUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTc5LjcxLjIxMSB3aXRoIEhUVFA7IE1vbiwgMTggU2VwIDIwMTcgMTg6MTQ6MzkgLTA3MDAgKFBEVCkKSW4tUmVwbHktVG86IDxDQUZOQ1UtOHZDcG1rNS1EY1l3PVF0QTdjWThPbWdVOWRqMWpLMXE1cnJHV0hSYjRwX2dAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQStuUG5NeHlHMk5lUFhwVnFhd2U5alI9aXRIRVQ2VXVkbk45Q2pIaHY9b28tS0NyeHdAbWFpbC5nbWFpbC5jb20+CiA8cG9ueS01NmEzYWRlYWY2MGM0MDU5NmZiMjg0YjI0NTI0MTQ4ZjYwNWU4ZDIzLTUyZDQxY2Q0MGYyMzQzYzg5NTI4ODBlOGY4NGRhM2U4MGQzMzU1MDlAZGV2Lm1hdmVuLmFwYWNoZS5vcmc+CiA8Q0ErblBuTXlTMnExdWZhVytTNnNtaFpaMUpjeGhmOWhZNS0zbkJKLWlDV2VqUFVBRFZBQG1haWwuZ21haWwuY29tPgogPDIwNTc5NDguazFHeWZqdUdYZEBnaWdhPiA8Q0ErblBuTXdjb0hGWnZVcVdpVXN5SEJoYU1tb1NjY3lkVEJzelNYZ3NHdEY9d05HREt3QG1haWwuZ21haWwuY29tPgogPENBS0RVTjF2NVRzRm4rby12djhIaDNQdXZHWFdlK2ZRbk0randEWnQrPXp0eHNwY2dnd0BtYWlsLmdtYWlsLmNvbT4KIDxDQStuUG5NeWNUWmRYdEF1UmMyKy0wcURLRVBMTEpIb0dKNkg4ZFo9WnlrT2FYdVczWFFAbWFpbC5nbWFpbC5jb20+CiA8Q0ErblBuTXlMWjJESG1qaWR5UjRyTEdfa2t2eWYyekpNNl9GK2dmYkJmekJ2Tm40cUJRQG1haWwuZ21haWwuY29tPiA8Q0FGTkNVLTh2Q3BtazUtRGNZdz1RdEE3Y1k4T21nVTlkajFqSzFxNXJyR1dIUmI0cF9nQG1haWwuZ21haWwuY29tPgpGcm9tOiBPbGl2aWVyIExhbXkgPG9sYW15QGFwYWNoZS5vcmc+CkRhdGU6IFR1ZSwgMTkgU2VwIDIwMTcgMTE6MTQ6MzkgKzEwMDAKWC1HbWFpbC1PcmlnaW5hbC1NZXNzYWdlLUlEOiA8Q0FQb3lCcVQ4WThyTmJMRE9wT1N1R3U9MlduZG52Tm5GZi1fbjl5VlEyRjR6eHhibWJ3QG1haWwuZ21haWwuY29tPgpNZXNzYWdlLUlEOiA8Q0FQb3lCcVQ4WThyTmJMRE9wT1N1R3U9MlduZG52Tm5GZi1fbjl5VlEyRjR6eHhibWJ3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDYzogU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4sIE9sZWcgTmVuYXNoZXYgPG8udi5uZW5hc2hldkBnbWFpbC5jb20+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iZjQwMzA0MzhlOTg4OGVlNzE5MDU1OTgwOTYxNiIKCi0tZjQwMzA0MzhlOTg4OGVlNzE5MDU1OTgwOTYxNgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpIaQpTb3JyeSBhIGJpdCBvdXQgb2YgdGltZSBBVE0gZm9yIHRlc3RpbmcgdGhpcy4KV2VsbCBJIHRydXN0IEFybmF1ZCB0ZXN0aW5nIHRoYXQgZXNwZWNpYWxseSBpZiB0aGlzIGltcHJvdmUgdGhlIHBlcmZvcm1hbmNlCm9mIHRoaXMgdmVyeSBncmVhdC9hd2Vzb21lL3VzZXJzIG9yaWVudGVkIHBsdWdpbiA6UAoKT24gMTMgU2VwdGVtYmVyIDIwMTcgYXQgMjI6MTksIEFybmF1ZCBIPUMzPUE5cml0aWVyIDxhaGVyaXRpZXJAYXBhY2hlLm9yZz4gPQp3cm90ZToKCj4gRGFtbmVkLCBjYW4ndCB3ZSBiZSBhbm9ueW1vdXMgb24gR2l0aHViID8KPiBJIG1haW50YWluIGl0IGlzIGEgYmlnIHdvcmQsIEknbSB0cnlpbmcgdG8gZml4IG1vcmUgYnVncyB0aGFuIEkgYWRkIG5ldwo+IG9uZXMKPiBJIGFkZGVkIE9sZWcgaW4gdGhlIGxvb3AgYXMgaGUgY29udHJpYnV0ZWQgYSBsb3Qgb24gaXQgdG9vCj4gSSBkaWQgYSBxdWljayB0ZXN0IHRvIGJ1aWxkIG9uIEplbmtpbnMgMi42MC4zIG91ciBtYXZlbiBjb3JlIHdpdGggdGhlIEV2aT0KbAo+IE1hdmVuIHBsdWdpbiAyLjE3IG9uIGEgbG9jYWwgU1NIIGFnZW50IGFuZCBpdCBpcyBvawo+IEJ1dCBpdCBpcyByZWFsbHkgYSBxdWljayB0ZXN0IC4uLgo+Cj4gQ2hlZXJzCj4KPgo+Cj4gT24gV2VkLCBTZXAgMTMsIDIwMTcgYXQgMTA6MDcgQU0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Cj4gPiBPbiAxMyBTZXB0ZW1iZXIgMjAxNyBhdCAwMTowNSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+Cj4gPj4gT24gMTMgU2VwdGVtYmVyIDIwMTcgYXQgMDA6MjYsIEFuZGVycyBIYW1tYXIgPGFuZGVyc0BoYW1tYXIubmV0PiB3cm90ZT0KOgo+ID4+Cj4gPj4+IE9uIFR1ZSwgU2VwIDEyLCAyMDE3IGF0IDg6NTQgUE0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+ID4+PiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPiA+Pj4KPiA+Pj4gPiBIYXZlIHdlIGdvdCBhbnkgZmVlZGJhY2sgZnJvbSB0aGUgZW1iZWRkZXIgaW50ZWdyYXRpb25zIHlldD8KPiA+Pj4gPgo+ID4+Pgo+ID4+PiBJIGhhdmVuJ3QgaGVhcmQgYW55dGhpbmcgZnJvbSB0aGUgbTJlIHBlb3BsZS4gTWF5YmUgd2UgbmVlZCB0byBwaW5nCj4gdGhlbQo+ID4+PiBkaXJlY3RseS4gSSBjYW4gY29udGFjdCBGcmVkIEJyaWNvbi4KPiA+Pj4KPiA+Pj4gL0FuZGVycwo+ID4+Pgo+ID4+Pgo+ID4+IFBsZWFzZSBkbywgYWxzbyBpZiBhbnlvbmUgaGFzIGEgY29udGFjdCBpbiBuZXRiZWFucyBvciBpbnRlbGxpaiBhbmQKPiBjb3VsZAo+ID4+IGxldCB0aGVtIGtub3cgd2UnZCBsaWtlIGVpdGhlciBmZWVkYmFjayBvciAid2UncmUgb2sgaWYgTU5HLTYyNzUgbWFrZXMKPiA+PiB0cm91YmxlIGZvciB1cywgZ28gYWhlYWQgYW5kIHJlbGVhc2UiLiBJJ2QgbGlrZSB0byBjbG9zZSB0aGUgdm90ZSBvbgo+IEZyaWRheQo+ID4+IDEzOjAwIFVUQy4KPiA+Pgo+ID4+Cj4gPgo+ID4gT2xpdmllciAvIEFybmF1ZCwgaGF2ZSBlaXRoZXIgb2YgeW91IGhhZCBhIGNoYW5jZSB0byB0ZXN0IHRoaXMgd2l0aCB0aGUKPiA+IGV2aWwgcHJvamVjdCB0eXBlWzFdIGFzIHlvdSB0d28gc2VlbSB0byBiZSB0aGUgYWN0aXZlIG1haW50YWluZXJzWzJdCj4gPgo+ID4gWzFdOiBodHRwczovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuaWUvMjAxMy8xMS9qZW5raW5zLQo+ID4gbWF2ZW4tam9iLXR5cGUtY29uc2lkZXJlZC1ldmlsLmh0bWwKPiA+IFsyXTogaHR0cHM6Ly9naXRodWIuY29tL2plbmtpbnNjaS9tYXZlbi1wbHVnaW4vY29tbWl0cy9tYXN0ZXIKPiA+Cj4KPgo+Cj4gLS0KPgo+IEFybmF1ZAo+CgoKCi0tPTIwCk9saXZpZXIgTGFteQpodHRwOi8vdHdpdHRlci5jb20vb2xhbXkgfCBodHRwOi8vbGlua2VkaW4uY29tL2luL29sYW15CgotLWY0MDMwNDM4ZTk4ODhlZTcxOTA1NTk4MDk2MTYtLQoKRnJvbSBkZXYtcmV0dXJuLTEyNDg5MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gRGVjIDMxIDA1OjIwOjIwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg5MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA2MEVCNjE3NDUzCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMzEgRGVjIDIwMTcgMDU6MjA6MjAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4NzI3MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMSBEZWMgMjAxNyAwNToyMDoyMCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODcxNjkgaW52b2tlZCBieSB1aWQgNTAwKTsgMzEgRGVjIDIwMTcgMDU6MjA6MTkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NzE0NiBpbnZva2VkIGJ5IHVpZCA5OSk7IDMxIERlYyAyMDE3IDA1OjIwOjE5IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDMxIERlYyAyMDE3IDA1OjIwOjE5ICswMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtbGYwLWY1NC5nb29nbGUuY29tIChtYWlsLWxmMC1mNTQuZ29vZ2xlLmNvbSBbMjA5Ljg1LjIxNS41NF0pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCBCMDFGNDFBMDBDQQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMzEgRGVjIDIwMTcgMDU6MjA6MTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtbGYwLWY1NC5nb29nbGUuY29tIHdpdGggU01UUCBpZCBtMjBzbzM4MzA1NDcybGZpLjYKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAzMCBEZWMgMjAxNyAyMToyMDoxNyAtMDgwMCAoUFNUKQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFLR0IzbUlpb3JGWXcxMzFUTjhqS0N2V0ovcEVMNzNMbVZwRlE4eEl0QWF4MGhtV25pQ0tEWEljCglKWHV6SXhMQlhTSlpWZW4yZzE2RXN0aSsyU3h5aWVZM3RYRkRNdEU9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQ0pmQm9zMlNpazltMzJtaUdnTmwyVnNIalRQUzY2V3NEQVhad2pKNUZtUGxOazNLS29TaCtST3k4Nm9Fc000UTlmVk1tNGlpczQrWFJiQVY4S0RhMk42S1UwPQpYLVJlY2VpdmVkOiBieSAxMC4yNS4xNDMuNzEgd2l0aCBTTVRQIGlkIHI2OG1yMjA0MjgzODBsZmQuODUuMTUxNDY5NzYxNjA3MDsKIFNhdCwgMzAgRGVjIDIwMTcgMjE6MjA6MTYgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjE3OS42LjE1MyB3aXRoIEhUVFA7IFNhdCwgMzAgRGVjIDIwMTcgMjE6MTk6NTUgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDwyNTE0OTA0LnlycWZOQ1ExMjRAZ2lnYT4KUmVmZXJlbmNlczogPDI1MTQ5MDQueXJxZk5DUTEyNEBnaWdhPgpGcm9tOiBPbGl2aWVyIExhbXkgPG9sYW15QGFwYWNoZS5vcmc+CkRhdGU6IFN1biwgMzEgRGVjIDIwMTcgMTY6MTk6NTUgKzExMDAKWC1HbWFpbC1PcmlnaW5hbC1NZXNzYWdlLUlEOiA8Q0FQb3lCcVRKZTIwOUNQV0FMZE5lRD0zdFhleDRENTR6MnB3VjZLZ2pZKzU0ODdoSGl3QG1haWwuZ21haWwuY29tPgpNZXNzYWdlLUlEOiA8Q0FQb3lCcVRKZTIwOUNQV0FMZE5lRD0zdFhleDRENTR6MnB3VjZLZ2pZKzU0ODdoSGl3QG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIFNpdGUgUGx1Z2luIHZlcnNpb24gMy43ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzFiZmU0ODU5MjAzZjA1NjE5YzA1YzgiCgotLTk0ZWIyYzFiZmU0ODU5MjAzZjA1NjE5YzA1YzgKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKKzEKCk9uIDI5IERlY2VtYmVyIDIwMTcgYXQgMDM6MjAsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPiB3cj0Kb3RlOgoKPiBIaSwKPgo+IFdlIHNvbHZlZCA4IGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4gcHJvamVjdElkPTNEMTIzMTc5MjMmdmVyc2lvbj0zRDEyMzM4NzI2JnN0eWxlTmFtZT0zRFRleHQKPgo+IFRoZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlM0QlMjBNU0lURSUyMEFORAo+ICUyMHN0YXR1cyUyMCUzRCUyME9wZW4lMjBPUkRFUiUyMEJZJTIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQwo+IDxodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9M0Rwcm9qZWN0JTIwJTNEJTIwTVNJVEUlMjBBTkQ9CiUyMHN0YXR1cyUyMCUzRCUyME9wZW4lMjBPUkRFUiUyMEJZJTIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQz4KPgo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzg2Lwo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzODYvb3JnL2FwYWNoZS8KPiBtYXZlbi9wbHVnaW5zL21hdmVuLXNpdGUtcGx1Z2luLzMuNy9tYXZlbi1zaXRlLXBsdWdpbi0zLjctCj4gc291cmNlLXJlbGVhc2UuemlwCj4gPGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzODYvb3JnL2FwYWNoZT0KL21hdmVuL3BsdWdpbnMvbWF2ZW4tc2l0ZS1wbHVnaW4vMy43L21hdmVuLXNpdGUtcGx1Z2luLTMuNy1zb3VyY2UtcmVsZWFzZS56PQppcD4KPgo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IG1hdmVuLXNpdGUtcGx1Z2luLTMuNy1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMToKPiA5ZmE0YjI4MDUzZjRjYjc5YTA4ODYzNTY4YTY2YzFlODdkOGJiYzkzCj4KPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tc2l0ZS1wbHVnaW4tTEFURVNULwo+Cj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPgo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4KPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCgotLT0yMApPbGl2aWVyIExhbXkKaHR0cDovL3R3aXR0ZXIuY29tL29sYW15IHwgaHR0cDovL2xpbmtlZGluLmNvbS9pbi9vbGFteQoKLS05NGViMmMxYmZlNDg1OTIwM2YwNTYxOWMwNWM4LS0KCkZyb20gZGV2LXJldHVybi0xMjM5NDctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIFNlcCAxMCAyMzo1NDo1NiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5NDctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgODc3RUUxQTI3NwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDIzOjU0OjU2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODI2MTcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgU2VwIDIwMTcgMjM6NTQ6NTYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgyNDU2IGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIFNlcCAyMDE3IDIzOjU0OjU2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODI0NDUgaW52b2tlZCBieSB1aWQgOTkpOyAxMCBTZXAgMjAxNyAyMzo1NDo1NSAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxMCBTZXAgMjAxNyAyMzo1NDo1NSArMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLWxmMC1mNDQuZ29vZ2xlLmNvbSAobWFpbC1sZjAtZjQ0Lmdvb2dsZS5jb20gWzIwOS44NS4yMTUuNDRdKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgNzA3RDYxQTAwMjkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDIzOjU0OjU1ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLWxmMC1mNDQuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgbTE5OXNvMTQ2ODg3NTZsZmUuMwogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDE2OjU0OjU1IC0wNzAwIChQRFQpClgtR20tTWVzc2FnZS1TdGF0ZTogQUhQampVZ1hEa0lCdmVOR2V6VzVWR1RTVnc5RnRSQVZrcU11U2luRWQyUHQzUUtaOTB1bWJ4Wm8KCWhsZE1aVG0vR2Nnakc1ZSsyTmhsa0szOEpKdEs3dz09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBT3dpN1FBc2pMWGNLMDNzVWdFK2tpVnFLVGx4K1dIUkhVckhxOHlEZ09OcHE2Q0hJN1llNytSSlhGUkppYVc5WWRWS1hrdGZ5OUlRMDFIZ2tibHovQ1JSM0s4PQpYLVJlY2VpdmVkOiBieSAxMC40Ni43MS43MCB3aXRoIFNNVFAgaWQgdTY3bXIzNTMxMjAxbGphLjc5LjE1MDUwODc2OTMyOTE7IFN1biwKIDEwIFNlcCAyMDE3IDE2OjU0OjUzIC0wNzAwIChQRFQpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzkuNzEuMjExIHdpdGggSFRUUDsgU3VuLCAxMCBTZXAgMjAxNyAxNjo1NDozMiAtMDcwMCAoUERUKQpJbi1SZXBseS1UbzogPDdmNjI3NzYxLTI2MmYtZWQwZC0xNDMyLWUyZjMwNWFhYmM3YUBnbXguZGU+ClJlZmVyZW5jZXM6IDw3ZjYyNzc2MS0yNjJmLWVkMGQtMTQzMi1lMmYzMDVhYWJjN2FAZ214LmRlPgpGcm9tOiBPbGl2aWVyIExhbXkgPG9sYW15QGFwYWNoZS5vcmc+CkRhdGU6IE1vbiwgMTEgU2VwIDIwMTcgMDk6NTQ6MzIgKzEwMDAKWC1HbWFpbC1PcmlnaW5hbC1NZXNzYWdlLUlEOiA8Q0FQb3lCcVRVSDh6UXpOQkZiWDYtQkJXWmI0UW9teGg3SDE9NTI5OGJiUVFQU3N5OU1BQG1haWwuZ21haWwuY29tPgpNZXNzYWdlLUlEOiA8Q0FQb3lCcVRVSDh6UXpOQkZiWDYtQkJXWmI0UW9teGg3SDE9NTI5OGJiUVFQU3N5OU1BQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIEpNb2QgUGx1Z2luIHZlcnNpb24gMy4wLjAtYWxwaGEtMQogKEZpcnN0IFB1YmxpYyBSZWxlYXNlKQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sIGluZm9Ac29lYmVzLmRlCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDAyMTM2NTA4N2FjMDU1OGRlODkwMSIKCi0tMDAxYTExNDAyMTM2NTA4N2FjMDU1OGRlODkwMQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgoKKzEKCk9uIDkgU2VwdGVtYmVyIDIwMTcgYXQgMjM6NTIsIEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPiB3cm90ZToKCj4gSGksCj4KPiB0aGlzIGlzIHRoZSBWT1RFIGZvciB0aGUgZmlyc3QgcHVibGljIHJlbGVhc2UgZm9yIE1hdmVuIEpNb2QgUGx1Z2luLi4uCj4KPiBXZSBzb2x2ZWQgMSBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plCj4gY3RJZD0xMjMyMTQzMyZ2ZXJzaW9uPTEyMzQxMzYzCj4KPiBUaGVyZSBhcmUgY3VycmVudGx5IG5vIGlzc3VlcyBsZWZ0IGluIEpJUkEuCj4KPiBJZiB5b3UgaGF2ZSBhbnkgaXNzdWUgdG8gcmVwb3J0IHBsZWFzZSBvcGVuIGFuIGlzc3VlIGluIEpJUkEKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvcHJvamVjdHMvTUpNT0QKPgo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzYxLwo+Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2Cj4gMS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4tam1vZC1wbHVnaW4vMy4wLjAtYWxwaGEtMS8KPiBtYXZlbi1qbW9kLXBsdWdpbi0zLjAuMC1hbHBoYS0xLXNvdXJjZS1yZWxlYXNlLnppcAo+Cj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gW05BTUUtT0ZdLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOiA4MDAyNzY3ZjZjZmZjN2JiYmNmNzZhOGU3ZjBjMTcKPiA5OWE0MmNhZjkzCj4KPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tam1vZC1wbHVnaW4tTEFURVNULwo+Cj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPgo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4KPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPgo+IEtpbmQgcmVnYXJkcwo+IEthcmwgSGVpbnogTWFyYmFpc2UKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KCgotLSAKT2xpdmllciBMYW15Cmh0dHA6Ly90d2l0dGVyLmNvbS9vbGFteSB8IGh0dHA6Ly9saW5rZWRpbi5jb20vaW4vb2xhbXkKCi0tMDAxYTExNDAyMTM2NTA4N2FjMDU1OGRlODkwMS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0Nzk3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBEZWMgMjAgMDU6MzY6NTcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0Nzk3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEQ5Q0Y2MTdGMUUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyMCBEZWMgMjAxNyAwNTozNjo1NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg3NjU0IGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIERlYyAyMDE3IDA1OjM2OjU3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NzQyMyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBEZWMgMjAxNyAwNTozNjo1NyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg3NDEyIGludm9rZWQgYnkgdWlkIDk5KTsgMjAgRGVjIDIwMTcgMDU6MzY6NTcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMjAgRGVjIDIwMTcgMDU6MzY6NTcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1sZjAtZjUwLmdvb2dsZS5jb20gKG1haWwtbGYwLWY1MC5nb29nbGUuY29tIFsyMDkuODUuMjE1LjUwXSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEM4MDA2MUEwMTEyCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyMCBEZWMgMjAxNyAwNTozNjo1NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1sZjAtZjUwLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGoxMjRzbzIyNjUxNTA3bGZnLjIKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxOSBEZWMgMjAxNyAyMTozNjo1MyAtMDgwMCAoUFNUKQpYLUdtLU1lc3NhZ2UtU3RhdGU6IEFLR0IzbUlGaER3amF5UHY4cVY2ZXoxbXVGT2VZeFpvbWhNa1BLYmdyVlczMGxrRHdUUGFUcVh4Cgk2NkxJeDBrZWZRMFRaakQ2OE9HMDBJc3JuSFVyZUUwa1VvRWloNTg9ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBQ0pmQm91bFo2M0R0QXQ0MTdYdUxibUFRMkZPUUdwcnlGNVRiZDF2MEVpSXI4MGdubk9QOE9rNVdjOU5rUWN5SDByMExaeUFmSmNLSkNmeEJSL3dVd01Vb29JPQpYLVJlY2VpdmVkOiBieSAxMC4yNS4yMTYuMTIgd2l0aCBTTVRQIGlkIHAxMm1yMjUwNTM4MGxmZy4yMS4xNTEzNzQ4MjExMTAxOwogVHVlLCAxOSBEZWMgMjAxNyAyMTozNjo1MSAtMDgwMCAoUFNUKQpNSU1FLVZlcnNpb246IDEuMApSZWNlaXZlZDogYnkgMTAuMTc5LjYuMTUzIHdpdGggSFRUUDsgVHVlLCAxOSBEZWMgMjAxNyAyMTozNjozMCAtMDgwMCAoUFNUKQpJbi1SZXBseS1UbzogPDE1OTA2NjMuVmxXR29JbVNhekBnaWdhPgpSZWZlcmVuY2VzOiA8MTkwMDU1OC5HRng5UWxmYUUyQGdpZ2E+IDwyNjk4NjE2Lmh4Wmtrank5ZHBAZ2lnYT4KIDxDQVBveUJxU3BpUXVVOFIxX3R3WDdpcFJzSkRvRGJ4QVY0TlpoR3VzemkrREtRMUpwdHdAbWFpbC5nbWFpbC5jb20+IDwxNTkwNjYzLlZsV0dvSW1TYXpAZ2lnYT4KRnJvbTogT2xpdmllciBMYW15IDxvbGFteUBhcGFjaGUub3JnPgpEYXRlOiBXZWQsIDIwIERlYyAyMDE3IDE2OjM2OjMwICsxMTAwClgtR21haWwtT3JpZ2luYWwtTWVzc2FnZS1JRDogPENBUG95QnFUWVk9MFlHdFErUE5vVVMzQkduRFpuR1d1OEQ9cGNPQjJmMTdvaDVQbk10QUBtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JRDogPENBUG95QnFUWVk9MFlHdFErUE5vVVMzQkduRFpuR1d1OEQ9cGNPQjJmMTdvaDVQbk10QUBtYWlsLmdtYWlsLmNvbT4KU3ViamVjdDogUmU6IFtJTVBPUlRBTlRdIFJlOiBHaXQgbWlncmF0aW9uIG5leHQgc3RlcHMKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iMDAxYTExNDEzMmJhNjZmNmJiMDU2MGJlZjhlNCIKCi0tMDAxYTExNDEzMmJhNjZmNmJiMDU2MGJlZjhlNApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04IgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgpPbiAxOSBEZWNlbWJlciAyMDE3IGF0IDIxOjU0LCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3I9Cm90ZToKCj4gb2gsIEkgZm9yZ290IHRvIHB1c2ggKHdhcyB3b3JraW5nIHBlcmZlY3RseSBmb3IgbWUgbG9jYWxseS4uLik6IGRvbmUKPgpUaGFua3MgaXQgd29ya3MgZmluZSEKCgo+IHNob3VsZCBJIG1pZ3JhdGUgdGhpcyByZXBvIHRvIEFTRj8KPiBzYW1lIG5hbWUgIm1hdmVuLWFnZ3JlZ2F0b3IuZ2l0Ij8gb3IgYW55IGJldHRlciBpZGVhPwo+ICJtYXZlbi1zb3VyY2VzLmdpdCI/ICJtYXZlbi1zcmMuZ2l0Ij8KPgoKc291bmRzIGdvb2QuIG5vdCByZWFsIHByZWZlcmVuY2Ugb24gdGhlIG5hbWUuCgoKPgo+IGFuZCB3aGF0IGFib3V0IGFkZGluZyBwbGV4dXMgcmVwb3MgKGluY2x1ZGluZyBtb2RlbGxvKSB0byB0aGUgbGlzdD8KPgoKeXVwIHNvdW5kcyBnb29kIGFzIHdlbGwKCgo+Cj4gUmVnYXJkcywKPgo+IEhlcnY9QzM9QTkKPgo+IExlIG1hcmRpIDE5IGQ9QzM9QTljZW1icmUgMjAxNywgMDc6MDc6NDMgQ0VUIE9saXZpZXIgTGFteSBhID1DMz1BOWNyaXQgOgo+ID4gYW55IHBsYW4gdG8gdXBkYXRlIHRoZSBtYXZlbi1hZ2dyZWdhdG9yIGZpbGU/IDotKQo+ID4KPiA+IE9uIDE3IERlY2VtYmVyIDIwMTcgYXQgMDI6MjgsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPQo+Cj4gd3JvdGU6Cj4gPiA+IG9rLCBJIHdhcyBjb25mdXNlZCBieSB0aGUgZGlmZmVyZW50IHRha2VzIGF0IG0tamF2YWRvYy1wIDMuMC4wCj4gPiA+Cj4gPiA+IHllcywgc3ZuMmdpdCBtaXJyb3IgaXMgc3R1Y2sgWzFdIGF0IHIxODE1Njc1Cj4gPiA+Cj4gPiA+IEkganVzdCBvcGVuZWQgYW4gSU5GUkEgSmlyYSBpc3N1ZQo+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0lORlJBLTE1Njc5Cj4gPiA+Cj4gPiA+IG9uY2UgdGhlIHN2bjJnaXQgbWlycm9yIHdpbGwgYmUgdXBkYXRlZCwgd2UnbGwgaGF2ZSB0byByZS1ydW4gdGhlIHNwbD0KaXQKPiA+ID4gc2NyaXB0cyBhbmQgY2hlcnJ5IHBpY2sgdGhlIG1pc3NpbmcgY29tbWl0cwo+ID4gPgo+ID4gPiBSZWdhcmRzLAo+ID4gPgo+ID4gPiBIZXJ2PUMzPUE5Cj4gPiA+Cj4gPiA+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvY29tbWl0cy90cnVuawo+ID4gPgo+ID4gPiBMZSBzYW1lZGkgMTYgZD1DMz1BOWNlbWJyZSAyMDE3LCAxMzowMTowNSBDRVQgUm9iZXJ0IFNjaG9sdGUgYSA9QzM9QTk9CmNyaXQgOgo+ID4gPiA+IEkgd2FzIHRyaWdnZXJlZCBieSBzb21lIGZhaWxpbmcgdW5pdCB0ZXN0cywgd2hpY2ggc2hvdWxkIGhhdmUgYmVlbgo+ID4gPiA+IHNvbHZlZAo+ID4gPiA+IGluIG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wCj4gPiA+ID4KPiA+ID4gPiBNeSBsYXN0IGNvbW1pdCBhY2NvcmRpbmcgdG8gR0lUIHdhcyBub3ZlbWJlciAxOHRoCj4gPiA+ID4gTXkgbGFzdCBjb21taXQgYWNjb3JkaW5nIHRvIFNWTiB3YXMgZGVjZW1iZXIgM3JkCj4gPiA+ID4KPiA+ID4gPiBjb21wYXJpbmcgc3ZubG9nIHdpdGggZ2l0bG9nIG1vc3Qgb2YgdGhlc2UgY29tbWl0cyBhcmUgbG9zdDoKPiA+ID4gPgo+ID4gPiA+IG1vdmVkIHRvIGdpdAo+ID4gPiA+IC0tLS0KPiA+ID4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgZm9yIG5leHQgZGV2ZWxvcG1lbnQgaXRlcmF0aW9uCj4gPiA+ID4gLS0tLQo+ID4gPiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSByZWxlYXNlIG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wCj4gPiA+ID4gLS0tLQo+ID4gPiA+IFtNSkFWQURPQy00OThdICJtb2R1bGUgbm90IGZvdW5kIiB3aGVuIEphdmEgOSBtb2R1bGUtaW5mbyBwcmVzZW50Cj4gPiA+ID4gU3VwcG9ydCBhZ2dyYXRlZCBqYXZhZG9jCj4gPiA+ID4gLS0tLQo+ID4gPiA+IFNraXAgc2V2ZXJhbCB1bml0dGVzdHMgZm9yIEphdmE5Cj4gPiA+ID4gLS0tLQo+ID4gPiA+IEpESy04MDMyMjA1IHdhcyBjbG9zZWQgYXMgbm90IGFuIGlzc3VlLCBzbyBub3Qgc29sdmVkIGluIEphdmE5Lgo+ID4gPiA+IE5lZWQgdG8gcmV2aWV3IHRoZSBjb25jbHVzaW9uCj4gPiA+ID4gLS0tLQo+ID4gPiA+IFVwZ3JhZGUgbW9ja2l0byB0byByZW1vdmUgd2FybmluZyBhYm91dCBpbGxlZ2FsIHJlZmxlY3RpdmUgYWNjZXNzCj4gPiA+ID4gLS0tLQo+ID4gPiA+IEltcHJvdmUgVGVzdEphdmFkb2NSZXBvcnRUZXN0I3Rlc3RUZXN0SmF2YWRvYwo+ID4gPiA+IEo4IHdhcm5zIGFuZCBjb250aW51ZXMgd2l0aCBtaXNzaW5nIGRlcGVuZGVuY3ksIEo5IGZhaWxzLgo+ID4gPiA+IEluIGZhY3QgdGVzdCB3YXMgd3Jvbmc6IGRlcGVuZGVuY3kgc2hvdWxkIGhhdmUgYmVlbiBvbiBjbGFzc3BhdGgKPiA+ID4gPiAtLS0tCj4gPiA+ID4gdW5pdHRlc3Qgc2hvdWxkIHByZWZlciBKQVZBX0hPTUUgd2hlbiBleGVjdXRpbmcgZnJvbSBjbWRsaW5lCj4gPiA+ID4gV2hlbiBydW5uaW5nIHdpdGggSmF2YTkrIG5vIG5lZWQgdG8gc3dpdGNoIGZyb20ganJlIHRvIGpkayBkaXJlY3Rvcj0KeQo+ID4gPiA+IChqZXAyMjApCj4gPiA+ID4gLS0tLQo+ID4gPiA+IE1KQVZBRE9DLTUwMiBVcGRhdGUgREVGQVVMVF9KQVZBX0FQSV9MSU5LUwo+ID4gPiA+IC0tLS0KPiA+ID4gPiBzZXNzaW9uIGlzIHJlcXVpcmVkIHBhcmFtZXRlciwgc28gY2Fubm90IGJlIG51bGwuIEZpeCByZWxhdGVkCj4gdW5pdHRlc3RzCj4gPiA+ID4gLS0tLQo+ID4gPiA+IEFkZCBwcm9qZWN0L2FydGlmYWN0IGtleSB0byBzZXQgb2Ygc291cmNlUGF0aHMgdG8gcmVjb2duaXplIHJlYWN0b3IKPiA+ID4gPiBwcm9qZWN0cyB2ZXJzdXMgZGVwZW5kZW5jaWVzCj4gPiA+ID4gLS0tLQo+ID4gPiA+IEdyb3VwIHNldHMgb2Ygc291cmNlcGF0aHMgcGVyIHByb2plY3QsIGluIHByZXBhcmUgb2YgdXNhZ2Ugb2YKPiA+ID4gPiBtb2R1bGUtc291cmNlLXBhdGguCj4gPiA+ID4gLS0tLQo+ID4gPiA+IFN3aXRjaCBmcm9tIExpc3QgdG8gQ29sbGVjdGlvbiB0byBtYWtlIGl0IGVhc2llciB0byB1c2UgU2V0cyB3aGVuCj4gPiA+Cj4gPiA+IHByZWZlcnJlZAo+ID4gPgo+ID4gPiA+IC0tLS0KPiA+ID4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgZm9yIG5leHQgZGV2ZWxvcG1lbnQgaXRlcmF0aW9uCj4gPiA+ID4gLS0tLQo+ID4gPiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSByZWxlYXNlIG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wCj4gPiA+ID4gLS0tLQo+ID4gPiA+Cj4gPiA+ID4KPiA+ID4gPgo+ID4gPiA+Cj4gPiA+ID4gT24gU2F0LCAxNiBEZWMgMjAxNyAxMjo1MzoyMyArMDEwMCwgSGVydj1DMz1BOSBCT1VURU1ZIDwKPiBoZXJ2ZS5ib3V0ZW15QGZyZWUuZnIKPiA+ID4gPgo+ID4gPiA+IHdyb3RlOgo+ID4gPiA+ID4gbG9va2luZyBhdCBjb21taXRzQCBjb250ZW50IGh0dHBzOi8vbGlzdHMuYXBhY2hlLm9yZy9saXN0Lmh0bWw/Cj4gPiA+ID4gPiBjb21taXRzQG1hdmVuLmFwYWNoZS5vcmcgd2l0aCBzdWJqZWN0IGNvbnRhaW5pbmcKPiAibWF2ZW4vcGx1Z2lucy90cnVuayIKPiA+ID4gPiA+Cj4gPiA+ID4gPiBhbmQgcGx1Z2lucyBzdm4yZ2l0IG1pcnJvcgo+ID4gPiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL2NvbW1pdHMvCj4gPiA+ID4gPiB0cnVuawo+ID4gPiA+ID4KPiA+ID4gPiA+IG9ubHkgMSBjb21taXQgaXMgbWlzc2luZzogbXkgbGF0ZXN0IGNvbW1pdCBvbiBtYXZlbi1zaXRlLXBsdWdpbgo+ID4gPiA+ID4gKHRoZSBsYXN0IGNvbW1pdCBmb3IgR2l0IG1pZ3JhdGlvbiBpcyBub3QgdXNlZnVsKQo+ID4gPiA+ID4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBTYW1lIG9uIHNoYXJlZCBzaG93ZWQgbm8gbWlzc2luZyBjb21taXQuCj4gPiA+ID4gPgo+ID4gPiA+ID4KPiA+ID4gPiA+IHdoYXQgbGF0ZXN0IGNvbW1pdCBvZiBtYXZlbi1qYXZhZG9jLXBsdWdpbiBhcmUgeW91IGxvb2tpbmcgZm9yPwo+ID4gPiA+ID4KPiA+ID4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4gPgo+ID4gPiA+ID4gSGVydj1DMz1BOQo+ID4gPiA+ID4KPiA+ID4gPiA+IExlIHNhbWVkaSAxNiBkPUMzPUE5Y2VtYnJlIDIwMTcsIDExOjU2OjMxIENFVCBSb2JlcnQgU2Nob2x0ZSBhID0KPUMzPUE5Y3JpdCA6Cj4gPiA+ID4gPj4gRm9yIGV2ZXJ5Ym9keSBqdXN0IGEgd2FybmluZyBJIGZhY2VkIHRvZGF5Ogo+ID4gPiA+ID4+IElmIHlvdSBzd2l0Y2ggdG8gdGhlIGdpdCByZXBvcywgcGxlYXNlIG1ha2Ugc3VyZSBhbGwgY29tbWl0cyBhcmUKPiA+ID4gPiA+PiBtaWdyYXRlZC4KPiA+ID4gPiA+PiBJIG5vdGljZWQgdGhlIGxhdGVzdCBjb21taXRzIG9mIHRoZSBtYXZlbi1qYXZhZG9jLXBsdWdpbiBnb3QgbG9zPQp0Lgo+ID4gPiA+ID4+Cj4gPiA+ID4gPj4gdGhhbmtzLAo+ID4gPiA+ID4+IFJvYmVydAo+ID4gPiA+ID4+Cj4gPiA+ID4gPj4gT24gU2F0LCAwOSBEZWMgMjAxNyAxNzowNjowOSArMDEwMCwgU3RlcGhlbiBDb25ub2xseQo+ID4gPiA+ID4+Cj4gPiA+ID4gPj4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+ID4gPiA+ID4+ID4gSSBzZWUgd2UgaGF2ZSBhIGxhcmdlIG51bWJlciBvZiByZXBvcyBub3cgb24gZ2l0Ym94IDstKQo+ID4gPiA+ID4+ID4KPiA+ID4gPiA+PiA+IE9uIFRodSA3IERlYyAyMDE3IGF0IDA3OjAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPiA+ID4gPiA+Pgo+ID4gPiA+ID4+IHdyb3RlOgo+ID4gPiA+ID4+ID4+IG9rLCBJIGRpZG4ndCB1cGRhdGUgbXkgcmVwbyBjbG9uZTogbm93IHRoZSBydW4taXRzIHByb2ZpbGUgaXMKPiA+ID4gPiA+Pgo+ID4gPiA+ID4+IGFjdGl2YXRlZAo+ID4gPiA+ID4+Cj4gPiA+ID4gPj4gPj4gdGhlbiB0aGUgcGxhbiBzaG91bGQganVzdCBjb25maXJtICJpdCB3b3JrcyEiIDopCj4gPiA+ID4gPj4gPj4KPiA+ID4gPiA+PiA+PiBhbmQgZmluZCB3aGljaCBqb2JzIGFyZSBzcGVjaWFsLCBsaWtlIG1hdmVuLWRpc3QtdG9vbCAod2hpY2gKPiBoYXMKPiA+ID4gPiA+PiA+PiB0bwo+ID4gPiA+ID4+Cj4gPiA+ID4gPj4gYmUKPiA+ID4gPiA+Pgo+ID4gPiA+ID4+ID4+IHNjaGVkdWxlZCBkYWlseSBpbnN0ZWFkIG9mIGNvZGUgY2hhbmdlLCBhbmQgb25lIHBsYXRmb3JtIG9ubHk9CikKPiA+ID4gPiA+PiA+Pgo+ID4gPiA+ID4+ID4+IFJlZ2FyZHMsCj4gPiA+ID4gPj4gPj4KPiA+ID4gPiA+PiA+PiBIZXJ2PUMzPUE5Cj4gPiA+ID4gPj4gPj4KPiA+ID4gPiA+PiA+PiBMZSBtZXJjcmVkaSA2IGQ9QzM9QTljZW1icmUgMjAxNywgMjM6NTg6NDUgQ0VUIFN0ZXBoZW4gQ29ubm9sPQpseSBhCj4gPUMzPUE5Y3JpdAo+ID4gPiA+ID4+ID4+Cj4gPiA+ID4gPj4gPj4gPiBPbiBXZWQgNiBEZWMgMjAxNyBhdCAyMjozOCwgSGVydj1DMz1BOSBCT1VURU1ZIDwKPiBoZXJ2ZS5ib3V0ZW15QGZyZWUuZnIKPiA+ID4gPiA+PiA+Pgo+ID4gPiA+ID4+ID4+IHdyb3RlOgo+ID4gPiA+ID4+ID4+ID4gPiBOb3cgdGhhdCB3ZSBoYXZlIDIgQVNGIE9yZ2FuaXphdGlvbiBKZW5raW5zIGpvYnMgKG9uZSBmb3IKPiA+ID4KPiA+ID4gZ2l0Ym94Cj4gPiA+Cj4gPiA+ID4gPj4gWzFdCj4gPiA+ID4gPj4KPiA+ID4gPiA+PiA+PiBhbmQKPiA+ID4gPiA+PiA+Pgo+ID4gPiA+ID4+ID4+ID4gPiBvbmUKPiA+ID4gPiA+PiA+PiA+ID4gZm9yIGdpdC13aXA6IHRoYW5rIHlvdSBTdGVwaGVuKSBhbmQgdGhhdCBpdCBsb29rcyBxdWl0ZQo+ID4gPiA+ID4+Cj4gPiA+ID4gPj4gc3VjY2Vzc2Z1bCwKPiA+ID4gPiA+Pgo+ID4gPiA+ID4+ID4+IGxldCdzCj4gPiA+ID4gPj4gPj4KPiA+ID4gPiA+PiA+PiA+ID4gcGxhbgo+ID4gPiA+ID4+ID4+ID4gPiB0aGUgbmV4dCBzdGVwcy4KPiA+ID4gPiA+PiA+PiA+ID4KPiA+ID4gPiA+PiA+PiA+ID4gSGVyZSBpcyB3aGF0IEkgc2VlOgo+ID4gPiA+ID4+ID4+ID4gPiAxLiByZW1vdmFsIG9mIGhhbmQtZGVmaW5lZCBKZW5raW5zIGpvYnMgdGhhdCBhcmUgbm93Cj4gPiA+ID4gPj4gPj4gPiA+IGR1cGxpY2F0ZXMKPiA+ID4gPiA+PiA+PiA+ID4KPiA+ID4gPiA+PiA+PiA+ID4gMi4gcHJlcGFyYXRpb24gb2YgdGhlIDYwIG5ldyBlbXB0eSBnaXQgcmVwb3MgZm9yIHNoYXJlZCAmCj4gPiA+Cj4gPiA+IHBsdWdpbnMKPiA+ID4KPiA+ID4gPiA+PiA+PiA+ID4gMy4gbWlncmF0aW9uIG9mIHRoZSAxIHNoYXJlZCBjb21wb25lbnQgYW5kIDEgcGx1Z2luIHVzaW5nCj4gPiA+ID4gPj4gPj4KPiA+ID4gPiA+PiA+PiBtaWdyYXRlLSouc2gKPiA+ID4gPiA+PiA+Pgo+ID4gPiA+ID4+ID4+ID4gPiBzY3JpcHRzCj4gPiA+ID4gPj4gPj4gPiA+IFszXSB0byB0ZXN0IGFuZCBldmVudHVhbGx5IHJld29yayB0aGUgSmVua2luc2ZpbGUgKEkKPiBzdXBwb3NlCj4gPiA+ID4gPj4gPj4gPiA+IGl0Cj4gPiA+ID4gPj4KPiA+ID4gPiA+PiB3aWxsCj4gPiA+ID4gPj4KPiA+ID4gPiA+PiA+PiA+ID4gcmVxdWlyZQo+ID4gPiA+ID4+ID4+ID4gPiBzb21lIGxpdHRsZSBjaGFuZ2UsIHRvIHJ1biBhZGQgInJ1bi1pdHMiIHByb2ZpbGUpCj4gPiA+ID4gPj4gPj4gPgo+ID4gPiA+ID4+ID4+ID4gQXMgZmFyIGFzIEkgcmVjYWxsLCBJIGFkZGVkIC1QK3J1bi1pdHMgYWxyZWFkeQo+ID4gPiA+ID4+ID4+ID4KPiA+ID4gPiA+PiA+PiA+IEZvciB0aGUgcGx1Z2luLCBJJ2QgbGlrZSB0byBkbyB0aGUgam9iIGZvciBtYXZlbi1zaXRlLXBsdWdpPQpuLAo+ID4gPiA+ID4+Cj4gPiA+ID4gPj4gc2luY2Ugd2UKPiA+ID4gPiA+Pgo+ID4gPiA+ID4+ID4+ID4gPiBleHBlY3QKPiA+ID4gPiA+PiA+PiA+ID4gdG8gcmVsZWFzZSBpdCBzb29uLgo+ID4gPiA+ID4+ID4+ID4gPiBGb3IgdGhlIHNoYXJlZCBjb21wb25lbnQsIEkgZG9uJ3Qga25vdyBpZiB0aGVyZSBpcyBhIGJlc3QKPiA+ID4gPiA+Pgo+ID4gPiA+ID4+IGNhbmRpZGF0ZQo+ID4gPiA+ID4+Cj4gPiA+ID4gPj4gPj4gPiA+IDQuIG9uY2UgcHJldmlvdXMgc3RlcCBpcyBvaywgZG8gdGhlIGZ1bGwgbWlncmF0aW9uOiBpZgo+IHRoZXJlCj4gPiA+Cj4gPiA+IGFyZQo+ID4gPgo+ID4gPiA+ID4+ID4+ID4gPiB2b2x1bnRlZXJzCj4gPiA+ID4gPj4gPj4gPiA+IGZvciBoZWxwaW5nLCB0aGF0IHdvdWxkIGJlIGdyZWF0LCBzaW5jZSBwb3B1bGF0aW5nIDYwIGdpdAo+ID4gPiA+ID4+ID4+ID4gPiByZXBvcwo+ID4gPiA+ID4+ID4+Cj4gPiA+ID4gPj4gPj4gd29uJ3QKPiA+ID4gPiA+PiA+PiBiZQo+ID4gPiA+ID4+ID4+Cj4gPiA+ID4gPj4gPj4gPiA+IHJlYWxseSBmdW4uLi4KPiA+ID4gPiA+PiA+PiA+ID4KPiA+ID4gPiA+PiA+PiA+ID4gQW5kIGFzIHBhcnQgb2YgNjAgZW1wdHkgZ2l0IHJlcG9zIGNyZWF0aW9uLCBJIHByb3Bvc2UgdG8KPiA+ID4KPiA+ID4gbWlncmF0ZQo+ID4gPgo+ID4gPiA+ID4+IHRoZQo+ID4gPiA+ID4+Cj4gPiA+ID4gPj4gPj4gPiA+ICJHb29nbGUKPiA+ID4gPiA+PiA+PiA+ID4gcmVwbyBtYW5pZmVzdCIgbWF2ZW4tYWdncmVnYXRvciBbNF0gdG8gQVNGOiBteSBwZXJzb25hbCB1PQpzZQo+ID4gPiA+ID4+ID4+ID4gPiBoYXMKPiA+ID4gPiA+Pgo+ID4gPiA+ID4+IGJlZW4KPiA+ID4gPiA+Pgo+ID4gPiA+ID4+ID4+IHF1aXRlCj4gPiA+ID4gPj4gPj4KPiA+ID4gPiA+PiA+PiA+ID4gc3VjY2Vzc2Z1bCwgSSBob3BlIGl0J3MgdGhlIHNhbWUgZm9yIG90aGVycy4gUGVyaGFwcyB0aGVyPQplCj4gYXJlCj4gPiA+ID4gPj4gPj4KPiA+ID4gPiA+PiA+PiBiZXR0ZXIKPiA+ID4gPiA+PiA+Pgo+ID4gPiA+ID4+ID4+ID4gPiBpZGVhcwo+ID4gPiA+ID4+ID4+ID4gPiBmb3IgaXRzIG5hbWU6IG1hdmVuLWFnZ3JlZ2F0b3IKPiA+ID4gPiA+PiA+PiA+ID4KPiA+ID4gPiA+PiA+PiA+ID4gQW55IG90aGVyIGlkZWE/IGFueSBvYmplY3Rpb24/Cj4gPiA+ID4gPj4gPj4gPiA+Cj4gPiA+ID4gPj4gPj4gPiA+IFJlZ2FyZHMsCj4gPiA+ID4gPj4gPj4gPiA+Cj4gPiA+ID4gPj4gPj4gPiA+IEhlcnY9QzM9QTkKPiA+ID4gPiA+PiA+PiA+ID4KPiA+ID4gPiA+PiA+PiA+ID4gWzFdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvCj4gdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tPiA+Cj4gPiA+IGJveC8KPiA+ID4KPiA+ID4gPiA+PiA+PiA+ID4gWzJdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvCj4gdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tPiA+Cj4gPiA+IHdpcC8KPiA+ID4KPiA+ID4gPiA+PiA+PiA+ID4gWzNdCj4gPiA+ID4gPj4KPiA+ID4gPiA+PiBodHRwczovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy9tYXZlbi9zYW5kYm94L3RydW5rL3NjcmlwdHMvZ2l0Lwo+ID4gPiA+ID4+Cj4gPiA+ID4gPj4gPj4gPiA+IFs0XSBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tYWdncmVnYXRvcgo+ID4gPiA+ID4+ID4+Cj4gPiA+ID4gPj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+Cj4gPiA+IC0tLS0tLS0tLQo+ID4gPgo+ID4gPiA+ID4+ID4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4+ID4+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3I9CmcKPiA+ID4gPiA+PiA+PiA+ID4KPiA+ID4gPiA+PiA+PiA+ID4gLS0KPiA+ID4gPiA+PiA+PiA+Cj4gPiA+ID4gPj4gPj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPiA+ID4gPiA+PiA+Pgo+ID4gPiA+ID4+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gPgo+ID4gPiAtLS0tLS0tLS0KPiA+ID4KPiA+ID4gPiA+PiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+PiA+Pgo+ID4gPiA+ID4+ID4+IC0tCj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4+ID4gU2VudCBmcm9tIG15IHBob25lCj4gPiA+ID4gPj4KPiA+ID4gPiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtLS0tLS0tLS0KPiA+ID4gPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4gPiA+Cj4gPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtLS0tLS0tLS0KPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gPiA+ID4KPiA+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtLS0tLS0tLS0KPiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiA+ID4KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+CgoKLS09MjAKT2xpdmllciBMYW15Cmh0dHA6Ly90d2l0dGVyLmNvbS9vbGFteSB8IGh0dHA6Ly9saW5rZWRpbi5jb20vaW4vb2xhbXkKCi0tMDAxYTExNDEzMmJhNjZmNmJiMDU2MGJlZjhlNC0tCgpGcm9tIGRldi1yZXR1cm4tMTI0Njc2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBOb3YgMzAgMDc6MDg6MjQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0Njc2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDE3NkUxMTAwNkIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAzMCBOb3YgMjAxNyAwNzowODoyNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk5MTU3IGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIE5vdiAyMDE3IDA3OjA4OjIzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5OTAzNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMCBOb3YgMjAxNyAwNzowODoyMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk5MDI2IGludm9rZWQgYnkgdWlkIDk5KTsgMzAgTm92IDIwMTcgMDc6MDg6MjMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMzAgTm92IDIwMTcgMDc6MDg6MjMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1sZjAtZjUwLmdvb2dsZS5jb20gKG1haWwtbGYwLWY1MC5nb29nbGUuY29tIFsyMDkuODUuMjE1LjUwXSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDdFMEUzMUEwMDQ0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAzMCBOb3YgMjAxNyAwNzowODoyMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1sZjAtZjUwLmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGYxOHNvNjcwNjQ2OWxmZy44CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjkgTm92IDIwMTcgMjM6MDg6MjEgLTA4MDAgKFBTVCkKWC1HbS1NZXNzYWdlLVN0YXRlOiBBSmFUaFg1eHFnMlB3UUdGYkRobGhtcG5PV211RWFVSEYzTXcxSkVOalNBT2lsdlp1ZHYrSUxTQgoJMUdVM1dFWS9PVnltVURKSlNiYXhDSHMrbklSSXdWR1NRUUh2MHhJPQpYLUdvb2dsZS1TbXRwLVNvdXJjZTogQUdzNHpNYkJXY0RRNVZKUzd4N0pyUzhtejlnQlkyUno2NEd2WWRMVDhiOTRiYVlrM0djMy9RdlNHTkNBQmJHUzNhWUJKbUVCdHpVOXI2a25maVgyUGdIbDBBUT0KWC1SZWNlaXZlZDogYnkgMTAuMjUuODEuMTk0IHdpdGggU01UUCBpZCBnNjNtcjI0MTE5NTFsZmwuNTguMTUxMjAyNTY5OTc3ODsKIFdlZCwgMjkgTm92IDIwMTcgMjM6MDg6MTkgLTA4MDAgKFBTVCkKTUlNRS1WZXJzaW9uOiAxLjAKUmVjZWl2ZWQ6IGJ5IDEwLjE3OS42LjE1MyB3aXRoIEhUVFA7IFdlZCwgMjkgTm92IDIwMTcgMjM6MDc6NTkgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDxDQVBMcFJRTDY9M3FrekFlPUZnUnJlaGVHeGZraXlkVXFCZHIteURDVm9HZVpUenJxYkFAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQVBMcFJRTDY9M3FrekFlPUZnUnJlaGVHeGZraXlkVXFCZHIteURDVm9HZVpUenJxYkFAbWFpbC5nbWFpbC5jb20+CkZyb206IE9saXZpZXIgTGFteSA8b2xhbXlAYXBhY2hlLm9yZz4KRGF0ZTogVGh1LCAzMCBOb3YgMjAxNyAxODowNzo1OSArMTEwMApYLUdtYWlsLU9yaWdpbmFsLU1lc3NhZ2UtSUQ6IDxDQVBveUJxVG8tYW5waEwrTHlIVjZia0dOVU1kMXcyN0ZLazJaUG5fZmQxdjdmdDlRdHdAbWFpbC5nbWFpbC5jb20+Ck1lc3NhZ2UtSUQ6IDxDQVBveUJxVG8tYW5waEwrTHlIVjZia0dOVU1kMXcyN0ZLazJaUG5fZmQxdjdmdDlRdHdAbWFpbC5nbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBNYXZlbiBJbmRleGVyIDYuMC4wClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ijk0ZWIyYzFjZTAyY2JhMDZmYzA1NWYyZGVhNTgiCgotLTk0ZWIyYzFjZTAyY2JhMDZmYzA1NWYyZGVhNTgKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKKzEKCkknbSBub3QgY2xlYXIgaWYgdGhpcyBuZXcgdmVyc2lvbiB3aWxsIGJlIHVzZWQgZm9yIENlbnRyYWw/CgpPbiAyOCBOb3ZlbWJlciAyMDE3IGF0IDIxOjIwLCBUYW09QzM9QTFzIENzZXJ2ZW49QzM9QTFrIDx0YW1hc0Bjc2VydmVuYWsubmU9CnQ+IHdyb3RlOgoKPiBbVk9URV0gUmVsZWFzZSBNYXZlbiBJbmRleGVyIDYuMC4wCj4KPiBIaSwKPgo+IFdlIHNvbHZlZCAyNSBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhPwo+IHByb2plY3RJZD0zRDEyMzE3NTIzJnZlcnNpb249M0QxMjMzMDgwMgo+Cj4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3Byb2plY3RzL01JTkRFWEVSL2lzc3Vlcy8KPiBNSU5ERVhFUi04MT9maWx0ZXI9M0RhbGxvcGVuaXNzdWVzCj4KPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3OQo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NlcnZpY2UvbG9jYWwvcmVwb3NpdG9yaWVzLwo+IG1hdmVuLTEzNzkvY29udGVudC9vcmcvYXBhY2hlL21hdmVuL2luZGV4ZXIvbWF2ZW4taW5kZXhlci82Lgo+IDAuMC9tYXZlbi1pbmRleGVyLTYuMC4wLXNvdXJjZS1yZWxlYXNlLnppcAo+Cj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gbWF2ZW4taW5kZXhlci02LjAuMC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMToKPiAyNzk5MzlmOGRlZmYwZjU1MTgzNjRjMDZkYTg0N2IzMmFiNjEwOGVkCj4KPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvbWF2ZW4taW5kZXhlci1hcmNoaXZlcy9tYXZlbi1pbmRleGVyLUxBVEVTVC8KPgo+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCj4KPiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+Cj4gWyBdICsxCj4gWyBdICswCj4gWyBdIC0xCj4KPiAtLQo+IFRoYW5rcywKPiB+dH4KPgoKCgotLT0yMApPbGl2aWVyIExhbXkKaHR0cDovL3R3aXR0ZXIuY29tL29sYW15IHwgaHR0cDovL2xpbmtlZGluLmNvbS9pbi9vbGFteQoKLS05NGViMmMxY2UwMmNiYTA2ZmMwNTVmMmRlYTU4LS0KCkZyb20gZGV2LXJldHVybi0xMjQ3MjktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIERlYyAgMyAyMzoyNjoyMiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3MjktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMEQxMzQxMDc0NgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sICAzIERlYyAyMDE3IDIzOjI2OjIyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzMyMDcgaW52b2tlZCBieSB1aWQgNTAwKTsgMyBEZWMgMjAxNyAyMzoyNjoyMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzMxMjUgaW52b2tlZCBieSB1aWQgNTAwKTsgMyBEZWMgMjAxNyAyMzoyNjoyMSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDczMTE0IGludm9rZWQgYnkgdWlkIDk5KTsgMyBEZWMgMjAxNyAyMzoyNjoyMSAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAwMyBEZWMgMjAxNyAyMzoyNjoyMSArMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLWxmMC1mNDcuZ29vZ2xlLmNvbSAobWFpbC1sZjAtZjQ3Lmdvb2dsZS5jb20gWzIwOS44NS4yMTUuNDddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgMkQzMTQxQTAwNDQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sICAzIERlYyAyMDE3IDIzOjI2OjE5ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLWxmMC1mNDcuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgajEyNHNvMTcxNjg5NDNsZmcuMgogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDAzIERlYyAyMDE3IDE1OjI2OjE5IC0wODAwIChQU1QpClgtR20tTWVzc2FnZS1TdGF0ZTogQUphVGhYNVkraURVckxScU8vbkE1OHJiRmtiMFV3YmVpb2xsWFJCMlpMMXVIVDZCSi96OGVsMzIKCThQZUpPNUxuZitNdURySmprcXVHNlYvRFJnT3FXVTI3UGg5N1F0Yz0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHczR6TWFtOE5vY0hMWC9USmVzdytJNTRVYXUrM0pSMU1uY1hRRkRxUkpXUjI5T1JnSkVBN3VmWHd0cERtbDBpSXV3NnlscFdtdDlQRUQrN0V1NkVYZ0FLNG89ClgtUmVjZWl2ZWQ6IGJ5IDEwLjI1LjgxLjE5NCB3aXRoIFNNVFAgaWQgZzYzbXI3MzUxNjM1bGZsLjU4LjE1MTIzNDM1NzY2MjE7CiBTdW4sIDAzIERlYyAyMDE3IDE1OjI2OjE2IC0wODAwIChQU1QpCk1JTUUtVmVyc2lvbjogMS4wClJlY2VpdmVkOiBieSAxMC4xNzkuNi4xNTMgd2l0aCBIVFRQOyBTdW4sIDMgRGVjIDIwMTcgMTU6MjU6NTUgLTA4MDAgKFBTVCkKSW4tUmVwbHktVG86IDxDQStuUG5NdzErNXRuQW1mRzQrMGU5a2h0NjVZaHB4Sk1tQnNjaE5yK0dYa2MydkVOdlFAbWFpbC5nbWFpbC5jb20+ClJlZmVyZW5jZXM6IDwyMDI3NTc2Njg5Ljg3Ni4xNTExOTQ4MjY1NzAwLkphdmFNYWlsLmplbmtpbnNAamVua2lucy1tYXN0ZXIuYXBhY2hlLm9yZz4KIDwxNDA4NzQwOTUuMTI1NS4xNTEyMjEyMjc0ODcwLkphdmFNYWlsLmplbmtpbnNAamVua2lucy1tYXN0ZXIuYXBhY2hlLm9yZz4gPENBK25Qbk13MSs1dG5BbWZHNCswZTlraHQ2NVlocHhKTW1Cc2NoTnIrR1hrYzJ2RU52UUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogT2xpdmllciBMYW15IDxvbGFteUBhcGFjaGUub3JnPgpEYXRlOiBNb24sIDQgRGVjIDIwMTcgMTA6MjU6NTUgKzExMDAKWC1HbWFpbC1PcmlnaW5hbC1NZXNzYWdlLUlEOiA8Q0FQb3lCcVRyPT03ZjQzbTRaZzc1UGF0a3NzK2JOYlpvaU5yS3ZyZUdUMXlRN2luRExRQG1haWwuZ21haWwuY29tPgpNZXNzYWdlLUlEOiA8Q0FQb3lCcVRyPT03ZjQzbTRaZzc1UGF0a3NzK2JOYlpvaU5yS3ZyZUdUMXlRN2luRExRQG1haWwuZ21haWwuY29tPgpTdWJqZWN0OiA9P1VURi04P1E/UmU9M0FfQnVpbGRfZmFpbGVkX2luX0plbmtpbnM9M0FfTWF2ZW5fVExQXz1DMj1CQl9tYXZlbj0yRHJlbGU/PQoJPT9VVEYtOD9RP2FzZV89QzI9QkJfbWFzdGVyXz0yMzM/PQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSI5NGViMmMxY2UwMmNhOWJhZTUwNTVmNzdlZGIyIgoKLS05NGViMmMxY2UwMmNhOWJhZTUwNTVmNzdlZGIyCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCmlzIHRoZXJlIGFueSB3YXkgdG8gdHJpZ2dlciBhIGJ1aWxkIHdoZW4gc25hcHNob3QgZGVwZW5kZW5jaWVzIGFyZSBidWlsZD8KKGlzIGl0IHVzaW5nIHRoZSB3aXRoTWF2ZW4/KQppbiB0aGlzIGNhc2UgaXQncyBvbmx5IGEgbWF0dGVyIG9mIGhhdmluZyBtYXZlbi1zY20gYnVpbGQgYW5kIGRlcGxveWVkLgoKT24gMiBEZWNlbWJlciAyMDE3IGF0IDIyOjI1LCBTdGVwaGVuIENvbm5vbGx5IDwKc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cgo+IEhlcmU9RTI9ODA9OTlzIHRoZSBmYWlsdXJlLiBJZiB0cmFjaW5nIHRoZSByb290IGNhdXNlIHVzdWFsbHkgYmVzdCB0byBsb289CmsgYXQKPiB0aGUgcGlwZWxpbmUgc3RlcHMgdmlldyBvZiBhIGJ1aWxkIGFzIHRoYXQgbGV0cyB5b3Ugc2VlIHRoZSBpbmRpdmlkdWFsCj4gc3RlcD1FMj04MD05OXMgbG9nCj4KPgo+IFtFUlJPUl0gRmFpbGVkIHRvIGV4ZWN1dGUgZ29hbAo+IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczptYXZlbi1jb21waWxlci1wbHVnaW46My4yOmNvbXBpbGUKPiAoZGVmYXVsdC1jb21waWxlKSBvbiBwcm9qZWN0IG1hdmVuLXJlbGVhc2UtbWFuYWdlcjogQ29tcGlsYXRpb24KPiBmYWlsdXJlW0VSUk9SXSAvaG9tZS9qZW5raW5zL2plbmtpbnMtc2xhdmUvd29ya3NwYWNlL2VuLWJveF9tYXZlbi0KPiByZWxlYXNlX21hc3Rlci1PQ0tHVUxRQkNaNjdWQktKN0hGNkU3S1pVQ0tYN1pDNkZYNjRHSDY2T0hQN0E0VkFRQklRL20vCj4gbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9tYXZlbi9zaGFyZWQvcmVsZWFzZS9waGFzZT0KLwo+IENoZWNrb3V0UHJvamVjdEZyb21TY20uamF2YTpbMjE4LDQ3XQo+IG5vIHN1aXRhYmxlIG1ldGhvZCBmb3VuZCBmb3IKPiBjaGVja091dChvcmcuYXBhY2hlLm1hdmVuLnNjbS5yZXBvc2l0b3J5LlNjbVJlcG9zaXRvcnksb3JnLgo+IGFwYWNoZS5tYXZlbi5zY20uU2NtRmlsZVNldCxvcmcuYXBhY2hlLm1hdmVuLnNjbS5TY21UYWcsCj4gb3JnLmFwYWNoZS5tYXZlbi5zY20uQ29tbWFuZFBhcmFtZXRlcnMpW0VSUk9SXQo+ICAgICBtZXRob2Qgb3JnLmFwYWNoZS5tYXZlbi5zY20ucHJvdmlkZXIuU2NtUHJvdmlkZXIuY2hlY2tPdXQob3JnLgo+IGFwYWNoZS5tYXZlbi5zY20ucmVwb3NpdG9yeS5TY21SZXBvc2l0b3J5LG9yZy5hcGFjaGUuCj4gbWF2ZW4uc2NtLlNjbUZpbGVTZXQsb3JnLmFwYWNoZS5tYXZlbi5zY20uU2NtVmVyc2lvbixib29sZWFuKQo+IGlzIG5vdCBhcHBsaWNhYmxlW0VSUk9SXSAgICAgICAoYWN0dWFsIGFyZ3VtZW50Cj4gb3JnLmFwYWNoZS5tYXZlbi5zY20uQ29tbWFuZFBhcmFtZXRlcnMgY2Fubm90IGJlIGNvbnZlcnRlZCB0byBib29sZWFuCj4gYnkgbWV0aG9kIGludm9jYXRpb24gY29udmVyc2lvbilbRVJST1JdICAgICBtZXRob2QKPiBvcmcuYXBhY2hlLm1hdmVuLnNjbS5wcm92aWRlci5TY21Qcm92aWRlci5jaGVja091dChvcmcuCj4gYXBhY2hlLm1hdmVuLnNjbS5yZXBvc2l0b3J5LlNjbVJlcG9zaXRvcnksb3JnLmFwYWNoZS4KPiBtYXZlbi5zY20uU2NtRmlsZVNldCxib29sZWFuKQo+IGlzIG5vdCBhcHBsaWNhYmxlW0VSUk9SXSAgICAgICAoYWN0dWFsIGFuZCBmb3JtYWwgYXJndW1lbnQgbGlzdHMKPiBkaWZmZXIgaW4gbGVuZ3RoKVtFUlJPUl0gICAgIG1ldGhvZAo+IG9yZy5hcGFjaGUubWF2ZW4uc2NtLnByb3ZpZGVyLlNjbVByb3ZpZGVyLmNoZWNrT3V0KG9yZy4KPiBhcGFjaGUubWF2ZW4uc2NtLnJlcG9zaXRvcnkuU2NtUmVwb3NpdG9yeSxvcmcuYXBhY2hlLgo+IG1hdmVuLnNjbS5TY21GaWxlU2V0LGphdmEubGFuZy5TdHJpbmcsYm9vbGVhbikKPiBpcyBub3QgYXBwbGljYWJsZVtFUlJPUl0gICAgICAgKGFjdHVhbCBhcmd1bWVudAo+IG9yZy5hcGFjaGUubWF2ZW4uc2NtLlNjbVRhZyBjYW5ub3QgYmUgY29udmVydGVkIHRvIGphdmEubGFuZy5TdHJpbmcgYnkKPiBtZXRob2QgaW52b2NhdGlvbiBjb252ZXJzaW9uKVtFUlJPUl0gICAgIG1ldGhvZAo+IG9yZy5hcGFjaGUubWF2ZW4uc2NtLnByb3ZpZGVyLlNjbVByb3ZpZGVyLmNoZWNrT3V0KG9yZy4KPiBhcGFjaGUubWF2ZW4uc2NtLnJlcG9zaXRvcnkuU2NtUmVwb3NpdG9yeSxvcmcuYXBhY2hlLgo+IG1hdmVuLnNjbS5TY21GaWxlU2V0LG9yZy5hcGFjaGUubWF2ZW4uc2NtLlNjbVZlcnNpb24pCj4gaXMgbm90IGFwcGxpY2FibGVbRVJST1JdICAgICAgIChhY3R1YWwgYW5kIGZvcm1hbCBhcmd1bWVudCBsaXN0cwo+IGRpZmZlciBpbiBsZW5ndGgpW0VSUk9SXSAgICAgbWV0aG9kCj4gb3JnLmFwYWNoZS5tYXZlbi5zY20ucHJvdmlkZXIuU2NtUHJvdmlkZXIuY2hlY2tPdXQob3JnLgo+IGFwYWNoZS5tYXZlbi5zY20ucmVwb3NpdG9yeS5TY21SZXBvc2l0b3J5LG9yZy5hcGFjaGUubWF2ZW4uc2NtLlNjbUZpbGVTZXQ9CikKPiBpcyBub3QgYXBwbGljYWJsZVtFUlJPUl0gICAgICAgKGFjdHVhbCBhbmQgZm9ybWFsIGFyZ3VtZW50IGxpc3RzCj4gZGlmZmVyIGluIGxlbmd0aClbRVJST1JdICAgICBtZXRob2QKPiBvcmcuYXBhY2hlLm1hdmVuLnNjbS5wcm92aWRlci5TY21Qcm92aWRlci5jaGVja091dChvcmcuCj4gYXBhY2hlLm1hdmVuLnNjbS5yZXBvc2l0b3J5LlNjbVJlcG9zaXRvcnksb3JnLmFwYWNoZS4KPiBtYXZlbi5zY20uU2NtRmlsZVNldCxqYXZhLmxhbmcuU3RyaW5nKQo+IGlzIG5vdCBhcHBsaWNhYmxlW0VSUk9SXSAgICAgICAoYWN0dWFsIGFuZCBmb3JtYWwgYXJndW1lbnQgbGlzdHMKPiBkaWZmZXIgaW4gbGVuZ3RoKVtFUlJPUl0gLT4gW0hlbHAgMV1bRVJST1JdIFtFUlJPUl0gVG8gc2VlIHRoZSBmdWxsCj4gc3RhY2sgdHJhY2Ugb2YgdGhlIGVycm9ycywgcmUtcnVuIE1hdmVuIHdpdGggdGhlIC1lIHN3aXRjaC5bRVJST1JdCj4gUmUtcnVuIE1hdmVuIHVzaW5nIHRoZSAtWCBzd2l0Y2ggdG8gZW5hYmxlIGZ1bGwgZGVidWcgbG9nZ2luZy5bRVJST1JdCj4gW0VSUk9SXSBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXJyb3JzIGFuZCBwb3NzaWJsZSBzb2x1dGlvbnMsCj4gcGxlYXNlIHJlYWQgdGhlIGZvbGxvd2luZyBhcnRpY2xlczoKPgo+Cj4KPiBPbiBTYXQgMiBEZWMgMjAxNyBhdCAxMDo1OCwgQXBhY2hlIEplbmtpbnMgU2VydmVyIDwKPiBqZW5raW5zQGJ1aWxkcy5hcGFjaGUub3JnPgo+IHdyb3RlOgo+Cj4gPiBTZWUKPiA+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvam9iL21hdmVuLWJveC9qb2IvbWF2ZW4tcmVsZWFzZS9qb2IvbWFzdGVyLzMvCj4gPgo+ID4gQ2hhbmdlczoKPiA+Cj4gPiAqIHRlc3RpbmcgZW1haWxleHQgdGVtcGxhdGVzCj4gPiAqIHRlc3RpbmcgZW1haWxleHQgdGVtcGxhdGVzCj4gPiAqIHR3ZWFrcwo+ID4gKiBkZWJ1Z2dpbmcKPiA+ICogZm9ybWF0dGluZwo+ID4gKiBGb3JtYXR0aW5nCj4gPiAqIHRyeWluZyB0byBkZWJ1ZyBmYWlsaW5nIGJ1aWxkIGlzc3VlCj4gPiAqIG1vcmUgc2FmZXR5Cj4gPiAqIEFkZCBsaWNlbnNlIGhlYWRlcnMKPiA+ICogW0pFTktJTlMtMzQzNzZdIFdvcmthcm91bmQgSmVua2lucyBpc3N1ZSB0byBkZXRlY3QgYWJvcnRlZCBidWlsZHMKPiBiZXR0ZXIKPiA+ICogTW9yZSB0d2Vha2luZy4uLiBmZnMgcGlwZWxpbmUgeW91IGRvbid0IG1ha2UgaXQgZWFzeSB0byBnZXQgdGhlIGFjdHVhPQpsCj4gPiAqIEFsbG93IGZhaWxpbmcgdGVzdHMgdG8gYmUgcmVjb3JkZWQgYXMgdW5zdGFibGUgYnVpbGQKPiA+ICogRW5zdXJlIHRoZSBlbWFpbCBvbiBmYWlsdXJlIGlzIGFsd2F5cyBzZW50IGlmIHdlIHN0YXJ0IHRoZSBidWlsZAo+ID4gKiBObyBuZWVkIHRvIGNvbGxlY3QgZmluZGJ1Z3MgZXRjIG9uIGFueXRoaW5nIG90aGVyIHRoYW4gdGhlIGZpcnN0Cj4gPiAqIHN5bnRheAo+ID4gKiBzeW50YXggYWdhaW4KPiA+ICogQWxsb3cgJ2pkaycgb3IgJ2pka3MnCj4gPiAqIEJldHRlciByZXBvcnQgY29sbGVjdGlvbiBvcHRpbWl6YXRpb24KPiA+ICogc3ludGF4IGZ0dwo+ID4gKiBzeW50YXggdGFrZSA1Cj4gPiAqIGJ1aWxkIHRoZSBjb21tYW5kIGxpbmUgaW4gbW9yZSBleHRlbnNpYmxlIHdheQo+ID4gKiBBaGFcISBmaXJzdCB3YXMgYmVpbmcgZXZhbHVhdGVkIGFmdGVyIGFkZGluZyB0aGUgdGFzawo+ID4gKiBjYXB0dXJlIGFub3RoZXIKPiA+ICogW01SRUxFQVNFLTk5M10gVXNlIHNoYWxsb3cgY2hlY2tvdXQgcGVyIGRlZmF1bHQgKGdpdCBzY20pCj4gPiAqIFtNUkVMRUFTRS05OTNdIFVzZSBzaGFsbG93IGNoZWNrb3V0IHBlciBkZWZhdWx0IChnaXQgc2NtKQo+ID4gKiBbTVJFTEVBU0UtOTkzXSBVc2Ugc2hhbGxvdyBjaGVja291dCBwZXIgZGVmYXVsdCAoZ2l0IHNjbSkKPiA+ICogW01SRUxFQVNFLTk5M10gVXNlIHNoYWxsb3cgY2hlY2tvdXQgcGVyIGRlZmF1bHQgKGdpdCBzY20pCj4gPiAqIFtNUkVMRUFTRS05OTNdIFVzZSBzaGFsbG93IGNoZWNrb3V0IHBlciBkZWZhdWx0IChnaXQgc2NtKQo+ID4gKiBbTVJFTEVBU0UtOTkzXSBVc2Ugc2hhbGxvdyBjaGVja291dCBwZXIgZGVmYXVsdCAoZ2l0IHNjbSkKPiA+Cj4gPiBObyB0ZXN0cyByYW4uCj4gPgo+ID4gQnVpbGQgbG9nOgo+ID4gWy4uLnRydW5jYXRlZCAxLjc2IE1CLi4uXQo+ID4gW2xpbnV4LWpkazldIFtJTkZPXSBDaGFuZ2VzIGRldGVjdGVkIC0gcmVjb21waWxpbmcgdGhlIG1vZHVsZSEKPiA+IFtsaW51eC1qZGs5XSBbSU5GT10gQ29tcGlsaW5nIDEwMyBzb3VyY2UgZmlsZXMgdG8KPiA+IC9ob21lL2plbmtpbnMvamVua2lucy1zbGF2ZS93b3Jrc3BhY2UvZW4tYm94X21hdmVuLXJlbGVhc2VfbWFzdGVyLQo+IE9DS0dVTFFCQ1o2N1ZCS0o3SEY2RTdLWlVDS1g3WkM2Rlg2NEdINjZPSFA3QTRWQVFCSVEvbS8KPiBtYXZlbi1yZWxlYXNlLW1hbmFnZXIvdGFyZ2V0L2NsYXNzZXMKPiA+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWN2c2V4ZS8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gcHJvdmlkZXItY3ZzZXhlLTEuOS42LTIwMTcxMjAxLjIzMjY0Ni0xMi5qYXIKPiA+ICgzMSBrQiBhdCA2MyBrQi9zKQo+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWN2c2phdmEvMS45LjYtU05BUFNIT1QvbWF2ZW4tCj4gc2NtLXByb3ZpZGVyLWN2c2phdmEtMS45LjYtMjAxNzEyMDEuMjMyNjUxLTEyLmphcgo+ID4gW3dpbmRvd3MtamRrOQo+ID4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1jdnNqYXZhLzEuOS42LVNOQVBTSE9UL21hdmVuLQo+IHNjbS1wcm92aWRlci1jdnNqYXZhLTEuOS42LTIwMTcxMjAxLjIzMjY1MS0xMi5qYXIlNUJ3aW5kb3dzLWpkazk+XQo+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItYmF6YWFyLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS0KPiBwcm92aWRlci1iYXphYXItMS45LjYtMjAxNzEyMDEuMjMyNjI5LTEyLmphcgo+ID4gKDU3IGtCIGF0IDEwNyBrQi9zKQo+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWdpdGV4ZS8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gcHJvdmlkZXItZ2l0ZXhlLTEuOS42LTIwMTcxMjAxLjIzMjcwOS0xMi5qYXIKPiA+IFt3aW5kb3dzLWpkazkKPiA+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItZ2l0ZXhlLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS0KPiBwcm92aWRlci1naXRleGUtMS45LjYtMjAxNzEyMDEuMjMyNzA5LTEyLmphciU1QndpbmRvd3MtamRrOT5dCj4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1hY2N1cmV2LzEuOS42LVNOQVBTSE9UL21hdmVuLQo+IHNjbS1wcm92aWRlci1hY2N1cmV2LTEuOS42LTIwMTcxMjAxLjIzMjYyMy0xMi5qYXIKPiA+ICg5NyBrQiBhdCAxNTgga0IvcykKPiA+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWN2cy1jb21tb25zLzEuOS42LVNOQVBTSE9UL21hdmVuLQo+IHNjbS1wcm92aWRlci1jdnMtY29tbW9ucy0xLjkuNi0yMDE3MTIwMS4yMzI2NDAtMTIuamFyCj4gPiAoNzgga0IgYXQgMTI4IGtCL3MpCj4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItZ2l0LWNvbW1vbnMvMS45LjYtU05BUFNIT1QvbWF2ZW4tCj4gc2NtLXByb3ZpZGVyLWdpdC1jb21tb25zLTEuOS42LTIwMTcxMjAxLjIzMjcwMy0xMi5qYXIKPiA+IFt3aW5kb3dzLWpkazkKPiA+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItZ2l0LWNvbW1vbnMvMS45LjYtU05BUFNIT1QvbWF2ZW4tCj4gc2NtLXByb3ZpZGVyLWdpdC1jb21tb25zLTEuOS42LTIwMTcxMjAxLjIzMjcwMy0xMi5qYXIlNUJ3aW5kb3dzLWpkazk+XQo+ID4gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWpnaXQvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+IHByb3ZpZGVyLWpnaXQtMS45LjYtMjAxNzEyMDEuMjMyNzM5LTEyLmphcgo+ID4gW3dpbmRvd3MtamRrOQo+ID4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1qZ2l0LzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS0KPiBwcm92aWRlci1qZ2l0LTEuOS42LTIwMTcxMjAxLjIzMjczOS0xMi5qYXIlNUJ3aW5kb3dzLWpkazk+XQo+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItY2xlYXJjYXNlLzEuOS42LVNOQVBTSE9ULwo+IG1hdmVuLXNjbS1wcm92aWRlci1jbGVhcmNhc2UtMS45LjYtMjAxNzEyMDEuMjMyNjM0LTEyLmphcgo+ID4gKDcwIGtCIGF0IDExNCBrQi9zKQo+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWhnLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlci0KPiBoZy0xLjkuNi0yMDE3MTIwMS4yMzI3MjEtMTIuamFyCj4gPiBbd2luZG93cy1qZGs5Cj4gPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWhnLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlci0KPiBoZy0xLjkuNi0yMDE3MTIwMS4yMzI3MjEtMTIuamFyJTVCd2luZG93cy1qZGs5Pl0KPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWN2c2phdmEvMS45LjYtU05BUFNIT1QvbWF2ZW4tCj4gc2NtLXByb3ZpZGVyLWN2c2phdmEtMS45LjYtMjAxNzEyMDEuMjMyNjUxLTEyLmphcgo+ID4gKDQ1IGtCIGF0IDQ0IGtCL3MpCj4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItcGVyZm9yY2UvMS45LjYtU05BUFNIT1QvbWF2ZW4tCj4gc2NtLXByb3ZpZGVyLXBlcmZvcmNlLTEuOS42LTIwMTcxMjAxLjIzMjgwMC0xMi5qYXIKPiA+IFt3aW5kb3dzLWpkazkKPiA+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItcGVyZm9yY2UvMS45LjYtU05BUFNIT1QvbWF2ZW4tCj4gc2NtLXByb3ZpZGVyLXBlcmZvcmNlLTEuOS42LTIwMTcxMjAxLjIzMjgwMC0xMi5qYXIlNUJ3aW5kb3dzLWpkazk+XQo+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItZ2l0LWNvbW1vbnMvMS45LjYtU05BUFNIT1QvbWF2ZW4tCj4gc2NtLXByb3ZpZGVyLWdpdC1jb21tb25zLTEuOS42LTIwMTcxMjAxLjIzMjcwMy0xMi5qYXIKPiA+ICgzNSBrQiBhdCAzMyBrQi9zKQo+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXN0YXJ0ZWFtLzEuOS42LVNOQVBTSE9UL21hdmVuLQo+IHNjbS1wcm92aWRlci1zdGFydGVhbS0xLjkuNi0yMDE3MTIwMS4yMzI4MDYtMTIuamFyCj4gPiBbd2luZG93cy1qZGs5Cj4gPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXN0YXJ0ZWFtLzEuOS42LVNOQVBTSE9UL21hdmVuLQo+IHNjbS1wcm92aWRlci1zdGFydGVhbS0xLjkuNi0yMDE3MTIwMS4yMzI4MDYtMTIuamFyJTVCd2luZG93cy1qZGs5Pl0KPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWdpdGV4ZS8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gcHJvdmlkZXItZ2l0ZXhlLTEuOS42LTIwMTcxMjAxLjIzMjcwOS0xMi5qYXIKPiA+ICg2OSBrQiBhdCA2NCBrQi9zKQo+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXN2bmV4ZS8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gcHJvdmlkZXItc3ZuZXhlLTEuOS42LTIwMTcxMjAxLjIzMjgxNy0xMi5qYXIKPiA+IFt3aW5kb3dzLWpkazkKPiA+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItc3ZuZXhlLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS0KPiBwcm92aWRlci1zdm5leGUtMS45LjYtMjAxNzEyMDEuMjMyODE3LTEyLmphciU1QndpbmRvd3MtamRrOT5dCj4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1oZy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXItCj4gaGctMS45LjYtMjAxNzEyMDEuMjMyNzIxLTEyLmphcgo+ID4gKDY5IGtCIGF0IDYwIGtCL3MpCj4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItc3luZXJneS8xLjkuNi1TTkFQU0hPVC9tYXZlbi0KPiBzY20tcHJvdmlkZXItc3luZXJneS0xLjkuNi0yMDE3MTIwMS4yMzI4MjktMTIuamFyCj4gPiBbd2luZG93cy1qZGs5Cj4gPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXN5bmVyZ3kvMS45LjYtU05BUFNIT1QvbWF2ZW4tCj4gc2NtLXByb3ZpZGVyLXN5bmVyZ3ktMS45LjYtMjAxNzEyMDEuMjMyODI5LTEyLmphciU1QndpbmRvd3MtamRrOT5dCj4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1qZ2l0LzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS0KPiBwcm92aWRlci1qZ2l0LTEuOS42LTIwMTcxMjAxLjIzMjczOS0xMi5qYXIKPiA+ICg1MyBrQiBhdCA0NiBrQi9zKQo+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXZzcy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gcHJvdmlkZXItdnNzLTEuOS42LTIwMTcxMjAxLjIzMjg0MS0xMi5qYXIKPiA+IFtsaW51eC1qZGs3Cj4gPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXZzcy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gcHJvdmlkZXItdnNzLTEuOS42LTIwMTcxMjAxLjIzMjg0MS0xMi5qYXIlNUJsaW51eC1qZGs3Pl0KPiA+IEZhaWxlZCBpbiBicmFuY2ggbGludXgtamRrNwo+ID4gW2xpbnV4LWpkazhdIFtJTkZPXQo+ID4gW2xpbnV4LWpkazhdIFtJTkZPXSAtLS0gbWF2ZW4tcmVzb3VyY2VzLXBsdWdpbjoyLjc6cmVzb3VyY2VzCj4gPiAoZGVmYXVsdC1yZXNvdXJjZXMpIEAgbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyIC0tLQo+ID4gW2xpbnV4LWpkazhdIFtJTkZPXSBVc2luZyAnVVRGLTgnIGVuY29kaW5nIHRvIGNvcHkgZmlsdGVyZWQgcmVzb3VyY2VzLgo+ID4gW2xpbnV4LWpkazhdIFtJTkZPXSBDb3B5aW5nIDMgcmVzb3VyY2VzCj4gPiBbbGludXgtamRrOF0gW0lORk9dIENvcHlpbmcgMyByZXNvdXJjZXMKPiA+IFtsaW51eC1qZGs4XSBbSU5GT10KPiA+IFtsaW51eC1qZGs4XSBbSU5GT10gLS0tIG1hdmVuLWNvbXBpbGVyLXBsdWdpbjozLjI6Y29tcGlsZQo+ID4gKGRlZmF1bHQtY29tcGlsZSkgQCBtYXZlbi1yZWxlYXNlLW1hbmFnZXIgLS0tCj4gPiBbbGludXgtamRrOF0gW0lORk9dIENoYW5nZXMgZGV0ZWN0ZWQgLSByZWNvbXBpbGluZyB0aGUgbW9kdWxlIQo+ID4gW2xpbnV4LWpkazhdIFtJTkZPXSBDb21waWxpbmcgMTAzIHNvdXJjZSBmaWxlcyB0bwo+ID4gL2hvbWUvamVua2lucy9qZW5raW5zLXNsYXZlL3dvcmtzcGFjZS9lbi1ib3hfbWF2ZW4tcmVsZWFzZV9tYXN0ZXItCj4gT0NLR1VMUUJDWjY3VkJLSjdIRjZFN0taVUNLWDdaQzZGWDY0R0g2Nk9IUDdBNFZBUUJJUS9tLwo+IG1hdmVuLXJlbGVhc2UtbWFuYWdlci90YXJnZXQvY2xhc3Nlcwo+ID4gW2xpbnV4LWpkazldIFNlbmRpbmcgaW50ZXJydXB0IHNpZ25hbCB0byBwcm9jZXNzCj4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRlZDoKPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1wZXJmb3JjZS8xLjkuNi1TTkFQU0hPVC9tYXZlbi0KPiBzY20tcHJvdmlkZXItcGVyZm9yY2UtMS45LjYtMjAxNzEyMDEuMjMyODAwLTEyLmphcgo+ID4gKDg2IGtCIGF0IDU1IGtCL3MpCj4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItdGZzLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS0KPiBwcm92aWRlci10ZnMtMS45LjYtMjAxNzEyMDEuMjMyODM1LTEyLmphcgo+ID4gW3dpbmRvd3MtamRrOQo+ID4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gc2NtL21hdmVuLXNjbS1wcm92aWRlci10ZnMvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+IHByb3ZpZGVyLXRmcy0xLjkuNi0yMDE3MTIwMS4yMzI4MzUtMTIuamFyJTVCd2luZG93cy1qZGs5Pl0KPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXN0YXJ0ZWFtLzEuOS42LVNOQVBTSE9UL21hdmVuLQo+IHNjbS1wcm92aWRlci1zdGFydGVhbS0xLjkuNi0yMDE3MTIwMS4yMzI4MDYtMTIuamFyCj4gPiAoNzMga0IgYXQgNDUga0IvcykKPiA+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1pbnRlZ3JpdHkvMS45LjYtU05BUFNIT1QvCj4gbWF2ZW4tc2NtLXByb3ZpZGVyLWludGVncml0eS0xLjkuNi0yMDE3MTIwMS4yMzI3MjctMTIuamFyCj4gPiBbd2luZG93cy1qZGs5Cj4gPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLWludGVncml0eS8xLjkuNi1TTkFQU0hPVC8KPiBtYXZlbi1zY20tcHJvdmlkZXItaW50ZWdyaXR5LTEuOS42LTIwMTcxMjAxLjIzMjcyNy0xMi5qYXIlNUJ3aW5kb3dzLWpkazk+PQpdCj4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1zdm5leGUvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+IHByb3ZpZGVyLXN2bmV4ZS0xLjkuNi0yMDE3MTIwMS4yMzI4MTctMTIuamFyCj4gPiAoODEga0IgYXQgNTAga0IvcykKPiA+IFt3aW5kb3dzLWpkazldIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1qYXp6LzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS0KPiBwcm92aWRlci1qYXp6LTEuOS42LTIwMTcxMjAxLjIzMjczMy0xMi5qYXIKPiA+IFt3aW5kb3dzLWpkazkKPiA+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItamF6ei8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gcHJvdmlkZXItamF6ei0xLjkuNi0yMDE3MTIwMS4yMzI3MzMtMTIuamFyJTVCd2luZG93cy1qZGs5Pl0KPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXN5bmVyZ3kvMS45LjYtU05BUFNIT1QvbWF2ZW4tCj4gc2NtLXByb3ZpZGVyLXN5bmVyZ3ktMS45LjYtMjAxNzEyMDEuMjMyODI5LTEyLmphcgo+ID4gKDYwIGtCIGF0IDM1IGtCL3MpCj4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+IHNjbS9tYXZlbi1zY20tYXBpLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1hcGktMS45LjYtCj4gMjAxNzEyMDEuMjMyNTU2LTEyLmphcgo+ID4gW3dpbmRvd3MtamRrOQo+ID4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gc2NtL21hdmVuLXNjbS1hcGkvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLWFwaS0xLjkuNi0KPiAyMDE3MTIwMS4yMzI1NTYtMTIuamFyJTVCd2luZG93cy1qZGs5Pl0KPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXZzcy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gcHJvdmlkZXItdnNzLTEuOS42LTIwMTcxMjAxLjIzMjg0MS0xMi5qYXIKPiA+ICg3MiBrQiBhdCA0MiBrQi9zKQo+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXN2bi1jb21tb25zLzEuOS42LVNOQVBTSE9UL21hdmVuLQo+IHNjbS1wcm92aWRlci1zdm4tY29tbW9ucy0xLjkuNi0yMDE3MTIwMS4yMzI4MTItMTIuamFyCj4gPiBbd2luZG93cy1qZGs5Cj4gPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXN2bi1jb21tb25zLzEuOS42LVNOQVBTSE9UL21hdmVuLQo+IHNjbS1wcm92aWRlci1zdm4tY29tbW9ucy0xLjkuNi0yMDE3MTIwMS4yMzI4MTItMTIuamFyJTVCd2luZG93cy1qZGs5Pl0KPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVyLXRmcy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gcHJvdmlkZXItdGZzLTEuOS42LTIwMTcxMjAxLjIzMjgzNS0xMi5qYXIKPiA+ICg0NSBrQiBhdCAyMSBrQi9zKQo+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXRlc3QvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLXRlc3QtMS45LjYtCj4gMjAxNzEyMDEuMjMyOTE4LTEyLmphcgo+ID4gW3dpbmRvd3MtamRrOQo+ID4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gc2NtL21hdmVuLXNjbS10ZXN0LzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS10ZXN0LTEuOS42LQo+IDIwMTcxMjAxLjIzMjkxOC0xMi5qYXIlNUJ3aW5kb3dzLWpkazk+XQo+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXItaW50ZWdyaXR5LzEuOS42LVNOQVBTSE9ULwo+IG1hdmVuLXNjbS1wcm92aWRlci1pbnRlZ3JpdHktMS45LjYtMjAxNzEyMDEuMjMyNzI3LTEyLmphcgo+ID4gKDgyIGtCIGF0IDM4IGtCL3MpCj4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRlZDoKPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1zdm4tY29tbW9ucy8xLjkuNi1TTkFQU0hPVC9tYXZlbi0KPiBzY20tcHJvdmlkZXItc3ZuLWNvbW1vbnMtMS45LjYtMjAxNzEyMDEuMjMyODEyLTEyLmphcgo+ID4gKDM4IGtCIGF0IDE4IGtCL3MpCj4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gRG93bmxvYWRlZDoKPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gc2NtL21hdmVuLXNjbS1wcm92aWRlci1qYXp6LzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS0KPiBwcm92aWRlci1qYXp6LTEuOS42LTIwMTcxMjAxLjIzMjczMy0xMi5qYXIKPiA+ICg2OSBrQiBhdCAzMiBrQi9zKQo+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+IHNjbS9tYXZlbi1zY20tYXBpLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1hcGktMS45LjYtCj4gMjAxNzEyMDEuMjMyNTU2LTEyLmphcgo+ID4gKDEwOSBrQiBhdCA0NyBrQi9zKQo+ID4gW3dpbmRvd3MtamRrN10gU2VuZGluZyBpbnRlcnJ1cHQgc2lnbmFsIHRvIHByb2Nlc3MKPiA+IFt3aW5kb3dzLWpkazddIFtJTkZPXSBSYXQgY2hlY2s6IFN1bW1hcnkgb2YgZmlsZXMuIFVuYXBwcm92ZWQ6IDAgdW5rbm93PQpuOgo+ID4gMCBnZW5lcmF0ZWQ6IDAgYXBwcm92ZWQ6IDEwNzcgbGljZW5jZS4KPiA+IFt3aW5kb3dzLWpkazddIFtJTkZPXQo+ID4gW3dpbmRvd3MtamRrN10gW0lORk9dIC0tLSBtb2RlbGxvLW1hdmVuLXBsdWdpbjoxLjc6eHBwMy1yZWFkZXIKPiAoZGVmYXVsdCkgQAo+ID4gbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyIC0tLQo+ID4gW3dpbmRvd3MtamRrN10gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gcGx1Z2luLWFwaS8yLjAuNy9tYXZlbi1wbHVnaW4tYXBpLTIuMC43LnBvbQo+ID4gW3dpbmRvd3MtamRrNwo+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+IG1hdmVuLXBsdWdpbi1hcGkvMi4wLjcvbWF2ZW4tcGx1Z2luLWFwaS0yLjAuNy5wb20lNUJ3aW5kb3dzLWpkazc+XQo+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiBwbHVnaW4tYXBpLzIuMC43L21hdmVuLXBsdWdpbi1hcGktMi4wLjcucG9tCj4gPiAoMS41IGtCIGF0IDEyMSBrQi9zKQo+ID4gW3dpbmRvd3MtamRrN10gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4vCj4gMi4wLjcvbWF2ZW4tMi4wLjcucG9tCj4gPiBbd2luZG93cy1qZGs3Cj4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vCj4gbWF2ZW4vMi4wLjcvbWF2ZW4tMi4wLjcucG9tJTVCd2luZG93cy1qZGs3Pl0KPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4vCj4gMi4wLjcvbWF2ZW4tMi4wLjcucG9tCj4gPiAoMTEga0IgYXQgMS4yIE1CL3MpCj4gPiBbd2luZG93cy1qZGs3XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gbW9kZWxsby1jb3JlLzEuNy9tb2RlbGxvLWNvcmUtMS43LnBvbQo+ID4gW3dpbmRvd3MtamRrNwo+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gbW9kZWxsby9tb2RlbGxvLWNvcmUvMS43L21vZGVsbG8tY29yZS0xLjcucG9tJTVCd2luZG93cy1qZGs3Pl0KPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+IG1vZGVsbG8tY29yZS8xLjcvbW9kZWxsby1jb3JlLTEuNy5wb20KPiA+ICgxLjUga0IgYXQgMTM2IGtCL3MpCj4gPiBbd2luZG93cy1qZGs3XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL3NvbmF0eXBlL3BsZXh1cy8KPiBwbGV4dXMtYnVpbGQtYXBpLzAuMC43L3BsZXh1cy1idWlsZC1hcGktMC4wLjcucG9tCj4gPiBbd2luZG93cy1qZGs5Cj4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9zb25hdHlwZS8KPiBwbGV4dXMvcGxleHVzLWJ1aWxkLWFwaS8wLjAuNy9wbGV4dXMtYnVpbGQtYXBpLTAuMC43LnBvbSU1QndpbmRvd3MtamRrOT5dCj4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+IGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gc2NtL21hdmVuLXNjbS10ZXN0LzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS10ZXN0LTEuOS42LQo+IDIwMTcxMjAxLjIzMjkxOC0xMi5qYXIKPiA+ICg1MSBrQiBhdCAxOSBrQi9zKQo+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dCj4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gLS0tIG1hdmVuLWNsZWFuLXBsdWdpbjoyLjU6Y2xlYW4gKGRlZmF1bHQtY2xlYW4pID0KQAo+ID4gbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyIC0tLQo+ID4gW3dpbmRvd3MtamRrOV0gW0lORk9dCj4gPiBbd2luZG93cy1qZGs5XSBbSU5GT10gLS0tIG1hdmVuLWVuZm9yY2VyLXBsdWdpbjoxLjMuMTplbmZvcmNlCj4gPiAoZW5mb3JjZS1ieXRlY29kZS12ZXJzaW9uKSBAIG1hdmVuLXJlbGVhc2UtbWFuYWdlciAtLS0KPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBSYXQgY2hlY2s6IFN1bW1hcnkgb2YgZmlsZXMuIFVuYXBwcm92ZWQ6IDAgdW5rbm93PQpuOgo+ID4gMCBnZW5lcmF0ZWQ6IDAgYXBwcm92ZWQ6IDEwNzcgbGljZW5jZS4KPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXQo+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIC0tLSBtb2RlbGxvLW1hdmVuLXBsdWdpbjoxLjc6eHBwMy1yZWFkZXIKPiAoZGVmYXVsdCkgQAo+ID4gbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyIC0tLQo+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gcGx1Z2luLWFwaS8yLjAuNy9tYXZlbi1wbHVnaW4tYXBpLTIuMC43LnBvbQo+ID4gW3dpbmRvd3MtamRrOAo+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+IG1hdmVuLXBsdWdpbi1hcGkvMi4wLjcvbWF2ZW4tcGx1Z2luLWFwaS0yLjAuNy5wb20lNUJ3aW5kb3dzLWpkazg+XQo+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiBwbHVnaW4tYXBpLzIuMC43L21hdmVuLXBsdWdpbi1hcGktMi4wLjcucG9tCj4gPiAoMS41IGtCIGF0IDEzMiBrQi9zKQo+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4vCj4gMi4wLjcvbWF2ZW4tMi4wLjcucG9tCj4gPiBbd2luZG93cy1qZGs4Cj4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vCj4gbWF2ZW4vMi4wLjcvbWF2ZW4tMi4wLjcucG9tJTVCd2luZG93cy1qZGs4Pl0KPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4vCj4gMi4wLjcvbWF2ZW4tMi4wLjcucG9tCj4gPiAoMTEga0IgYXQgMS4zIE1CL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gbW9kZWxsby1jb3JlLzEuNy9tb2RlbGxvLWNvcmUtMS43LnBvbQo+ID4gW3dpbmRvd3MtamRrOAo+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gbW9kZWxsby9tb2RlbGxvLWNvcmUvMS43L21vZGVsbG8tY29yZS0xLjcucG9tJTVCd2luZG93cy1qZGs4Pl0KPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+IG1vZGVsbG8tY29yZS8xLjcvbW9kZWxsby1jb3JlLTEuNy5wb20KPiA+ICgxLjUga0IgYXQgMTY3IGtCL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL3NvbmF0eXBlL3BsZXh1cy8KPiBwbGV4dXMtYnVpbGQtYXBpLzAuMC43L3BsZXh1cy1idWlsZC1hcGktMC4wLjcucG9tCj4gPiBbd2luZG93cy1qZGs4Cj4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9zb25hdHlwZS8KPiBwbGV4dXMvcGxleHVzLWJ1aWxkLWFwaS8wLjAuNy9wbGV4dXMtYnVpbGQtYXBpLTAuMC43LnBvbSU1QndpbmRvd3MtamRrOD5dCj4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvc29uYXR5cGUvcGxleHVzLwo+IHBsZXh1cy1idWlsZC1hcGkvMC4wLjcvcGxleHVzLWJ1aWxkLWFwaS0wLjAuNy5wb20KPiA+ICgzLjIga0IgYXQgMzIwIGtCL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL3NvbmF0eXBlL3NwaWNlLwo+IHNwaWNlLXBhcmVudC8xNS9zcGljZS1wYXJlbnQtMTUucG9tCj4gPiBbd2luZG93cy1qZGs4Cj4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9zb25hdHlwZS9zcGljZS8KPiBzcGljZS1wYXJlbnQvMTUvc3BpY2UtcGFyZW50LTE1LnBvbSU1QndpbmRvd3MtamRrOD5dCj4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvc29uYXR5cGUvc3BpY2UvCj4gc3BpY2UtcGFyZW50LzE1L3NwaWNlLXBhcmVudC0xNS5wb20KPiA+ICg4LjQga0IgYXQgNjk2IGtCL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL3BsZXh1cy8KPiBwbGV4dXMtdXRpbHMvMy4wLjkvcGxleHVzLXV0aWxzLTMuMC45LnBvbQo+ID4gW3dpbmRvd3MtamRrOAo+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gcGxleHVzL3BsZXh1cy11dGlscy8zLjAuOS9wbGV4dXMtdXRpbHMtMy4wLjkucG9tJTVCd2luZG93cy1qZGs4Pl0KPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9wbGV4dXMvCj4gcGxleHVzLXV0aWxzLzMuMC45L3BsZXh1cy11dGlscy0zLjAuOS5wb20KPiA+ICgzLjEga0IgYXQgMjg2IGtCL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiBwcm9qZWN0LzIuMC43L21hdmVuLXByb2plY3QtMi4wLjcucG9tCj4gPiBbd2luZG93cy1qZGs4Cj4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vCj4gbWF2ZW4tcHJvamVjdC8yLjAuNy9tYXZlbi1wcm9qZWN0LTIuMC43LnBvbSU1QndpbmRvd3MtamRrOD5dCj4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+IHByb2plY3QvMi4wLjcvbWF2ZW4tcHJvamVjdC0yLjAuNy5wb20KPiA+ICgyLjYga0IgYXQgMjQwIGtCL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiBzZXR0aW5ncy8yLjAuNy9tYXZlbi1zZXR0aW5ncy0yLjAuNy5wb20KPiA+IFt3aW5kb3dzLWpkazgKPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi8KPiBtYXZlbi1zZXR0aW5ncy8yLjAuNy9tYXZlbi1zZXR0aW5ncy0yLjAuNy5wb20lNUJ3aW5kb3dzLWpkazg+XQo+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiBzZXR0aW5ncy8yLjAuNy9tYXZlbi1zZXR0aW5ncy0yLjAuNy5wb20KPiA+ICgyLjAga0IgYXQgMjUwIGtCL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiBtb2RlbC8yLjAuNy9tYXZlbi1tb2RlbC0yLjAuNy5wb20KPiA+IFt3aW5kb3dzLWpkazgKPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi8KPiBtYXZlbi1tb2RlbC8yLjAuNy9tYXZlbi1tb2RlbC0yLjAuNy5wb20lNUJ3aW5kb3dzLWpkazg+XQo+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiBtb2RlbC8yLjAuNy9tYXZlbi1tb2RlbC0yLjAuNy5wb20KPiA+ICgzLjAga0IgYXQgMzgxIGtCL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiBwcm9maWxlLzIuMC43L21hdmVuLXByb2ZpbGUtMi4wLjcucG9tCj4gPiBbd2luZG93cy1qZGs4Cj4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vCj4gbWF2ZW4tcHJvZmlsZS8yLjAuNy9tYXZlbi1wcm9maWxlLTIuMC43LnBvbSU1QndpbmRvd3MtamRrOD5dCj4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+IHByb2ZpbGUvMi4wLjcvbWF2ZW4tcHJvZmlsZS0yLjAuNy5wb20KPiA+ICgyLjAga0IgYXQgMjQ4IGtCL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiBhcnRpZmFjdC1tYW5hZ2VyLzIuMC43L21hdmVuLWFydGlmYWN0LW1hbmFnZXItMi4wLjcucG9tCj4gPiBbd2luZG93cy1qZGs4Cj4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vCj4gbWF2ZW4tYXJ0aWZhY3QtbWFuYWdlci8yLjAuNy9tYXZlbi1hcnRpZmFjdC1tYW5hZ2VyLTIuMC43Lgo+IHBvbSU1QndpbmRvd3MtamRrOD5dCj4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+IGFydGlmYWN0LW1hbmFnZXIvMi4wLjcvbWF2ZW4tYXJ0aWZhY3QtbWFuYWdlci0yLjAuNy5wb20KPiA+ICgyLjYga0IgYXQgMjkxIGtCL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiByZXBvc2l0b3J5LW1ldGFkYXRhLzIuMC43L21hdmVuLXJlcG9zaXRvcnktbWV0YWRhdGEtMi4wLjcucG9tCj4gPiBbd2luZG93cy1qZGs4Cj4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vCj4gbWF2ZW4tcmVwb3NpdG9yeS1tZXRhZGF0YS8yLjAuNy9tYXZlbi1yZXBvc2l0b3J5LW1ldGFkYXRhLTIuCj4gMC43LnBvbSU1QndpbmRvd3MtamRrOD5dCj4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+IHJlcG9zaXRvcnktbWV0YWRhdGEvMi4wLjcvbWF2ZW4tcmVwb3NpdG9yeS1tZXRhZGF0YS0yLjAuNy5wb20KPiA+ICgxLjkga0IgYXQgMTY4IGtCL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiBhcnRpZmFjdC8yLjAuNy9tYXZlbi1hcnRpZmFjdC0yLjAuNy5wb20KPiA+IFt3aW5kb3dzLWpkazgKPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi8KPiBtYXZlbi1hcnRpZmFjdC8yLjAuNy9tYXZlbi1hcnRpZmFjdC0yLjAuNy5wb20lNUJ3aW5kb3dzLWpkazg+XQo+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiBhcnRpZmFjdC8yLjAuNy9tYXZlbi1hcnRpZmFjdC0yLjAuNy5wb20KPiA+ICgxLjYga0IgYXQgMjI1IGtCL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiBwbHVnaW4tcmVnaXN0cnkvMi4wLjcvbWF2ZW4tcGx1Z2luLXJlZ2lzdHJ5LTIuMC43LnBvbQo+ID4gW3dpbmRvd3MtamRrOAo+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+IG1hdmVuLXBsdWdpbi1yZWdpc3RyeS8yLjAuNy9tYXZlbi1wbHVnaW4tcmVnaXN0cnktMi4wLjcucG9tJTVCd2luZG93cy1qZGs9CjgKPiA+XQo+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiBwbHVnaW4tcmVnaXN0cnkvMi4wLjcvbWF2ZW4tcGx1Z2luLXJlZ2lzdHJ5LTIuMC43LnBvbQo+ID4gKDEuOSBrQiBhdCAyNzgga0IvcykKPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiBtb2RlbGxvLXBsdWdpbi1jb252ZXJ0ZXJzLzEuNy9tb2RlbGxvLXBsdWdpbi1jb252ZXJ0ZXJzLTEuNy5wb20KPiA+IFt3aW5kb3dzLWpkazgKPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+IG1vZGVsbG8vbW9kZWxsby1wbHVnaW4tY29udmVydGVycy8xLjcvbW9kZWxsby1wbHVnaW4tCj4gY29udmVydGVycy0xLjcucG9tJTVCd2luZG93cy1qZGs4Pl0KPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+IG1vZGVsbG8tcGx1Z2luLWNvbnZlcnRlcnMvMS43L21vZGVsbG8tcGx1Z2luLWNvbnZlcnRlcnMtMS43LnBvbQo+ID4gKDEuNiBrQiBhdCAyMDAga0IvcykKPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiBtb2RlbGxvLXBsdWdpbnMvMS43L21vZGVsbG8tcGx1Z2lucy0xLjcucG9tCj4gPiBbd2luZG93cy1qZGs4Cj4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy8KPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2lucy8xLjcvbW9kZWxsby1wbHVnaW5zLTEuNy5wb20lNUJ3aW5kb3dzLWpkazg+XQo+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gbW9kZWxsby1wbHVnaW5zLzEuNy9tb2RlbGxvLXBsdWdpbnMtMS43LnBvbQo+ID4gKDIuMyBrQiBhdCAyNTgga0IvcykKPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiBtb2RlbGxvLXBsdWdpbi1qYXZhLzEuNy9tb2RlbGxvLXBsdWdpbi1qYXZhLTEuNy5wb20KPiA+IFt3aW5kb3dzLWpkazgKPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+IG1vZGVsbG8vbW9kZWxsby1wbHVnaW4tamF2YS8xLjcvbW9kZWxsby1wbHVnaW4tamF2YS0xLjcucG9tJTVCd2luZG93cy1qZGs9CjgKPiA+XQo+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gbW9kZWxsby1wbHVnaW4tamF2YS8xLjcvbW9kZWxsby1wbHVnaW4tamF2YS0xLjcucG9tCj4gPiAoMi42IGtCIGF0IDMyMyBrQi9zKQo+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+IG1vZGVsbG8tcGx1Z2luLWRvbTRqLzEuNy9tb2RlbGxvLXBsdWdpbi1kb200ai0xLjcucG9tCj4gPiBbd2luZG93cy1qZGs4Cj4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy8KPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2luLWRvbTRqLzEuNy9tb2RlbGxvLXBsdWdpbi1kb200ai0xLjcuCj4gcG9tJTVCd2luZG93cy1qZGs4Pl0KPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+IG1vZGVsbG8tcGx1Z2luLWRvbTRqLzEuNy9tb2RlbGxvLXBsdWdpbi1kb200ai0xLjcucG9tCj4gPiAoMS42IGtCIGF0IDE5NyBrQi9zKQo+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+IG1vZGVsbG8tcGx1Z2luLXhtbC8xLjcvbW9kZWxsby1wbHVnaW4teG1sLTEuNy5wb20KPiA+IFt3aW5kb3dzLWpkazgKPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+IG1vZGVsbG8vbW9kZWxsby1wbHVnaW4teG1sLzEuNy9tb2RlbGxvLXBsdWdpbi14bWwtMS43LnBvbSU1QndpbmRvd3MtamRrOD49Cl0KPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+IG1vZGVsbG8tcGx1Z2luLXhtbC8xLjcvbW9kZWxsby1wbHVnaW4teG1sLTEuNy5wb20KPiA+ICgxLjAga0IgYXQgMTQ5IGtCL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gbW9kZWxsby1wbHVnaW4tamRvbS8xLjcvbW9kZWxsby1wbHVnaW4tamRvbS0xLjcucG9tCj4gPiBbd2luZG93cy1qZGs4Cj4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy8KPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2luLWpkb20vMS43L21vZGVsbG8tcGx1Z2luLWpkb20tMS43LnBvbSU1QndpbmRvd3MtamRrPQo4Cj4gPl0KPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+IG1vZGVsbG8tcGx1Z2luLWpkb20vMS43L21vZGVsbG8tcGx1Z2luLWpkb20tMS43LnBvbQo+ID4gKDEuOSBrQiBhdCAyNjgga0IvcykKPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiBtb2RlbGxvLXBsdWdpbi1zdGF4LzEuNy9tb2RlbGxvLXBsdWdpbi1zdGF4LTEuNy5wb20KPiA+IFt3aW5kb3dzLWpkazgKPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+IG1vZGVsbG8vbW9kZWxsby1wbHVnaW4tc3RheC8xLjcvbW9kZWxsby1wbHVnaW4tc3RheC0xLjcucG9tJTVCd2luZG93cy1qZGs9CjgKPiA+XQo+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gbW9kZWxsby1wbHVnaW4tc3RheC8xLjcvbW9kZWxsby1wbHVnaW4tc3RheC0xLjcucG9tCj4gPiAoMi4zIGtCIGF0IDI5MCBrQi9zKQo+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+IG1vZGVsbG8tcGx1Z2luLXhkb2MvMS43L21vZGVsbG8tcGx1Z2luLXhkb2MtMS43LnBvbQo+ID4gW3dpbmRvd3MtamRrOAo+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gbW9kZWxsby9tb2RlbGxvLXBsdWdpbi14ZG9jLzEuNy9tb2RlbGxvLXBsdWdpbi14ZG9jLTEuNy5wb20lNUJ3aW5kb3dzLWpkaz0KOAo+ID5dCj4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiBtb2RlbGxvLXBsdWdpbi14ZG9jLzEuNy9tb2RlbGxvLXBsdWdpbi14ZG9jLTEuNy5wb20KPiA+ICgxLjIga0IgYXQgMjA2IGtCL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gbW9kZWxsby1wbHVnaW4teHNkLzEuNy9tb2RlbGxvLXBsdWdpbi14c2QtMS43LnBvbQo+ID4gW3dpbmRvd3MtamRrOAo+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gbW9kZWxsby9tb2RlbGxvLXBsdWdpbi14c2QvMS43L21vZGVsbG8tcGx1Z2luLXhzZC0xLjcucG9tJTVCd2luZG93cy1qZGs4Pj0KXQo+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gbW9kZWxsby1wbHVnaW4teHNkLzEuNy9tb2RlbGxvLXBsdWdpbi14c2QtMS43LnBvbQo+ID4gKDEuMyBrQiBhdCAxOTEga0IvcykKPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiBtb2RlbGxvLXBsdWdpbi14cHAzLzEuNy9tb2RlbGxvLXBsdWdpbi14cHAzLTEuNy5wb20KPiA+IFt3aW5kb3dzLWpkazgKPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+IG1vZGVsbG8vbW9kZWxsby1wbHVnaW4teHBwMy8xLjcvbW9kZWxsby1wbHVnaW4teHBwMy0xLjcucG9tJTVCd2luZG93cy1qZGs9CjgKPiA+XQo+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gbW9kZWxsby1wbHVnaW4teHBwMy8xLjcvbW9kZWxsby1wbHVnaW4teHBwMy0xLjcucG9tCj4gPiAoMS40IGtCIGF0IDE3OSBrQi9zKQo+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gcGx1Z2luLWFwaS8yLjAuNy9tYXZlbi1wbHVnaW4tYXBpLTIuMC43Lmphcgo+ID4gW3dpbmRvd3MtamRrOAo+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+IG1hdmVuLXBsdWdpbi1hcGkvMi4wLjcvbWF2ZW4tcGx1Z2luLWFwaS0yLjAuNy5qYXIlNUJ3aW5kb3dzLWpkazg+XQo+ID4gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+IG1vZGVsbG8tY29yZS8xLjcvbW9kZWxsby1jb3JlLTEuNy5qYXIKPiA+IFt3aW5kb3dzLWpkazgKPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+IG1vZGVsbG8vbW9kZWxsby1jb3JlLzEuNy9tb2RlbGxvLWNvcmUtMS43LmphciU1QndpbmRvd3MtamRrOD5dCj4gPiBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiBzZXR0aW5ncy8yLjAuNy9tYXZlbi1zZXR0aW5ncy0yLjAuNy5qYXIKPiA+IFt3aW5kb3dzLWpkazgKPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi8KPiBtYXZlbi1zZXR0aW5ncy8yLjAuNy9tYXZlbi1zZXR0aW5ncy0yLjAuNy5qYXIlNUJ3aW5kb3dzLWpkazg+XQo+ID4gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gcHJvZmlsZS8yLjAuNy9tYXZlbi1wcm9maWxlLTIuMC43Lmphcgo+ID4gW3dpbmRvd3MtamRrOAo+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+IG1hdmVuLXByb2ZpbGUvMi4wLjcvbWF2ZW4tcHJvZmlsZS0yLjAuNy5qYXIlNUJ3aW5kb3dzLWpkazg+XQo+ID4gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gcHJvamVjdC8yLjAuNy9tYXZlbi1wcm9qZWN0LTIuMC43Lmphcgo+ID4gW3dpbmRvd3MtamRrOAo+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+IG1hdmVuLXByb2plY3QvMi4wLjcvbWF2ZW4tcHJvamVjdC0yLjAuNy5qYXIlNUJ3aW5kb3dzLWpkazg+XQo+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gbW9kZWxsby1jb3JlLzEuNy9tb2RlbGxvLWNvcmUtMS43Lmphcgo+ID4gKDU4IGtCIGF0IDMuNiBNQi9zKQo+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gYXJ0aWZhY3QtbWFuYWdlci8yLjAuNy9tYXZlbi1hcnRpZmFjdC1tYW5hZ2VyLTIuMC43Lmphcgo+ID4gW3dpbmRvd3MtamRrOAo+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+IG1hdmVuLWFydGlmYWN0LW1hbmFnZXIvMi4wLjcvbWF2ZW4tYXJ0aWZhY3QtbWFuYWdlci0yLjAuNy4KPiBqYXIlNUJ3aW5kb3dzLWpkazg+XQo+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiBwcm9maWxlLzIuMC43L21hdmVuLXByb2ZpbGUtMi4wLjcuamFyCj4gPiAoMzUga0IgYXQgMi4xIE1CL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiByZXBvc2l0b3J5LW1ldGFkYXRhLzIuMC43L21hdmVuLXJlcG9zaXRvcnktbWV0YWRhdGEtMi4wLjcuamFyCj4gPiBbd2luZG93cy1qZGs4Cj4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vCj4gbWF2ZW4tcmVwb3NpdG9yeS1tZXRhZGF0YS8yLjAuNy9tYXZlbi1yZXBvc2l0b3J5LW1ldGFkYXRhLTIuCj4gMC43LmphciU1QndpbmRvd3MtamRrOD5dCj4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+IHNldHRpbmdzLzIuMC43L21hdmVuLXNldHRpbmdzLTIuMC43Lmphcgo+ID4gKDQ5IGtCIGF0IDIuNyBNQi9zKQo+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gcGx1Z2luLXJlZ2lzdHJ5LzIuMC43L21hdmVuLXBsdWdpbi1yZWdpc3RyeS0yLjAuNy5qYXIKPiA+IFt3aW5kb3dzLWpkazgKPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi8KPiBtYXZlbi1wbHVnaW4tcmVnaXN0cnkvMi4wLjcvbWF2ZW4tcGx1Z2luLXJlZ2lzdHJ5LTIuMC43LmphciU1QndpbmRvd3MtamRrPQo4Cj4gPl0KPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gcGx1Z2luLWFwaS8yLjAuNy9tYXZlbi1wbHVnaW4tYXBpLTIuMC43Lmphcgo+ID4gKDEzIGtCIGF0IDU1OSBrQi9zKQo+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gYXJ0aWZhY3QvMi4wLjcvbWF2ZW4tYXJ0aWZhY3QtMi4wLjcuamFyCj4gPiBbd2luZG93cy1qZGs4Cj4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vCj4gbWF2ZW4tYXJ0aWZhY3QvMi4wLjcvbWF2ZW4tYXJ0aWZhY3QtMi4wLjcuamFyJTVCd2luZG93cy1qZGs4Pl0KPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9hcGFjaGUvbWF2ZW4vbWF2ZW4tCj4gcHJvamVjdC8yLjAuNy9tYXZlbi1wcm9qZWN0LTIuMC43Lmphcgo+ID4gKDExNyBrQiBhdCA0LjkgTUIvcykKPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+IG1vZGVsLzIuMC43L21hdmVuLW1vZGVsLTIuMC43Lmphcgo+ID4gW3dpbmRvd3MtamRrOAo+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuLwo+IG1hdmVuLW1vZGVsLzIuMC43L21hdmVuLW1vZGVsLTIuMC43LmphciU1QndpbmRvd3MtamRrOD5dCj4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+IHJlcG9zaXRvcnktbWV0YWRhdGEvMi4wLjcvbWF2ZW4tcmVwb3NpdG9yeS1tZXRhZGF0YS0yLjAuNy5qYXIKPiA+ICgyNCBrQiBhdCA4NzQga0IvcykKPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvcGxleHVzLwo+IHBsZXh1cy11dGlscy8zLjAuOS9wbGV4dXMtdXRpbHMtMy4wLjkuamFyCj4gPiBbd2luZG93cy1qZGs4Cj4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy8KPiBwbGV4dXMvcGxleHVzLXV0aWxzLzMuMC45L3BsZXh1cy11dGlscy0zLjAuOS5qYXIlNUJ3aW5kb3dzLWpkazg+XQo+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiBhcnRpZmFjdC1tYW5hZ2VyLzIuMC43L21hdmVuLWFydGlmYWN0LW1hbmFnZXItMi4wLjcuamFyCj4gPiAoNTcga0IgYXQgMS45IE1CL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gbW9kZWxsby1wbHVnaW4tY29udmVydGVycy8xLjcvbW9kZWxsby1wbHVnaW4tY29udmVydGVycy0xLjcuamFyCj4gPiBbd2luZG93cy1qZGs4Cj4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy8KPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2luLWNvbnZlcnRlcnMvMS43L21vZGVsbG8tcGx1Z2luLQo+IGNvbnZlcnRlcnMtMS43LmphciU1QndpbmRvd3MtamRrOD5dCj4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+IHBsdWdpbi1yZWdpc3RyeS8yLjAuNy9tYXZlbi1wbHVnaW4tcmVnaXN0cnktMi4wLjcuamFyCj4gPiAoMjkga0IgYXQgODc3IGtCL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gbW9kZWxsby1wbHVnaW4tZG9tNGovMS43L21vZGVsbG8tcGx1Z2luLWRvbTRqLTEuNy5qYXIKPiA+IFt3aW5kb3dzLWpkazgKPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+IG1vZGVsbG8vbW9kZWxsby1wbHVnaW4tZG9tNGovMS43L21vZGVsbG8tcGx1Z2luLWRvbTRqLTEuNy4KPiBqYXIlNUJ3aW5kb3dzLWpkazg+XQo+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2FwYWNoZS9tYXZlbi9tYXZlbi0KPiBhcnRpZmFjdC8yLjAuNy9tYXZlbi1hcnRpZmFjdC0yLjAuNy5qYXIKPiA+ICg4OCBrQiBhdCAyLjQgTUIvcykKPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiBtb2RlbGxvLXBsdWdpbi14bWwvMS43L21vZGVsbG8tcGx1Z2luLXhtbC0xLjcuamFyCj4gPiBbd2luZG93cy1qZGs4Cj4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy8KPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2luLXhtbC8xLjcvbW9kZWxsby1wbHVnaW4teG1sLTEuNy5qYXIlNUJ3aW5kb3dzLWpkazg+PQpdCj4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvYXBhY2hlL21hdmVuL21hdmVuLQo+IG1vZGVsLzIuMC43L21hdmVuLW1vZGVsLTIuMC43Lmphcgo+ID4gKDg2IGtCIGF0IDIuMiBNQi9zKQo+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+IG1vZGVsbG8tcGx1Z2luLWphdmEvMS43L21vZGVsbG8tcGx1Z2luLWphdmEtMS43Lmphcgo+ID4gW3dpbmRvd3MtamRrOAo+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gbW9kZWxsby9tb2RlbGxvLXBsdWdpbi1qYXZhLzEuNy9tb2RlbGxvLXBsdWdpbi1qYXZhLTEuNy5qYXIlNUJ3aW5kb3dzLWpkaz0KOAo+ID5dCj4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiBtb2RlbGxvLXBsdWdpbi1jb252ZXJ0ZXJzLzEuNy9tb2RlbGxvLXBsdWdpbi1jb252ZXJ0ZXJzLTEuNy5qYXIKPiA+ICg5LjQga0IgYXQgMjI0IGtCL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gbW9kZWxsby1wbHVnaW4tamRvbS8xLjcvbW9kZWxsby1wbHVnaW4tamRvbS0xLjcuamFyCj4gPiBbd2luZG93cy1qZGs4Cj4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy8KPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2luLWpkb20vMS43L21vZGVsbG8tcGx1Z2luLWpkb20tMS43LmphciU1QndpbmRvd3MtamRrPQo4Cj4gPl0KPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+IG1vZGVsbG8tcGx1Z2luLWRvbTRqLzEuNy9tb2RlbGxvLXBsdWdpbi1kb200ai0xLjcuamFyCj4gPiAoMTgga0IgYXQgNDI3IGtCL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gbW9kZWxsby1wbHVnaW4tc3RheC8xLjcvbW9kZWxsby1wbHVnaW4tc3RheC0xLjcuamFyCj4gPiBbd2luZG93cy1qZGs4Cj4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy8KPiBtb2RlbGxvL21vZGVsbG8tcGx1Z2luLXN0YXgvMS43L21vZGVsbG8tcGx1Z2luLXN0YXgtMS43LmphciU1QndpbmRvd3MtamRrPQo4Cj4gPl0KPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+IG1vZGVsbG8tcGx1Z2luLXhtbC8xLjcvbW9kZWxsby1wbHVnaW4teG1sLTEuNy5qYXIKPiA+ICgxNSBrQiBhdCAzMDcga0IvcykKPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiBtb2RlbGxvLXBsdWdpbi14ZG9jLzEuNy9tb2RlbGxvLXBsdWdpbi14ZG9jLTEuNy5qYXIKPiA+IFt3aW5kb3dzLWpkazgKPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+IG1vZGVsbG8vbW9kZWxsby1wbHVnaW4teGRvYy8xLjcvbW9kZWxsby1wbHVnaW4teGRvYy0xLjcuamFyJTVCd2luZG93cy1qZGs9CjgKPiA+XQo+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL3BsZXh1cy8KPiBwbGV4dXMtdXRpbHMvMy4wLjkvcGxleHVzLXV0aWxzLTMuMC45Lmphcgo+ID4gKDIzMiBrQiBhdCA0LjYgTUIvcykKPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiBtb2RlbGxvLXBsdWdpbi14cHAzLzEuNy9tb2RlbGxvLXBsdWdpbi14cHAzLTEuNy5qYXIKPiA+IFt3aW5kb3dzLWpkazgKPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzLwo+IG1vZGVsbG8vbW9kZWxsby1wbHVnaW4teHBwMy8xLjcvbW9kZWxsby1wbHVnaW4teHBwMy0xLjcuamFyJTVCd2luZG93cy1qZGs9CjgKPiA+XQo+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gbW9kZWxsby1wbHVnaW4tamRvbS8xLjcvbW9kZWxsby1wbHVnaW4tamRvbS0xLjcuamFyCj4gPiAoMTQga0IgYXQgMjY5IGtCL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gbW9kZWxsby1wbHVnaW4teHNkLzEuNy9tb2RlbGxvLXBsdWdpbi14c2QtMS43Lmphcgo+ID4gW3dpbmRvd3MtamRrOAo+ID4gPGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvCj4gbW9kZWxsby9tb2RlbGxvLXBsdWdpbi14c2QvMS43L21vZGVsbG8tcGx1Z2luLXhzZC0xLjcuamFyJTVCd2luZG93cy1qZGs4Pj0KXQo+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gbW9kZWxsby1wbHVnaW4tc3RheC8xLjcvbW9kZWxsby1wbHVnaW4tc3RheC0xLjcuamFyCj4gPiAoMzcga0IgYXQgNjY2IGtCL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL3NvbmF0eXBlL3BsZXh1cy8KPiBwbGV4dXMtYnVpbGQtYXBpLzAuMC43L3BsZXh1cy1idWlsZC1hcGktMC4wLjcuamFyCj4gPiBbd2luZG93cy1qZGs4Cj4gPiA8aHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9zb25hdHlwZS8KPiBwbGV4dXMvcGxleHVzLWJ1aWxkLWFwaS8wLjAuNy9wbGV4dXMtYnVpbGQtYXBpLTAuMC43LmphciU1QndpbmRvd3MtamRrOD5dCj4gPiBbSU5GT10gRG93bmxvYWRlZDoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiBtb2RlbGxvLXBsdWdpbi1qYXZhLzEuNy9tb2RlbGxvLXBsdWdpbi1qYXZhLTEuNy5qYXIKPiA+ICg4NCBrQiBhdCAxLjQgTUIvcykKPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9jb2RlaGF1cy9tb2RlbGxvLwo+IG1vZGVsbG8tcGx1Z2luLXhwcDMvMS43L21vZGVsbG8tcGx1Z2luLXhwcDMtMS43Lmphcgo+ID4gKDI5IGtCIGF0IDQ3MSBrQi9zKQo+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL2NvZGVoYXVzL21vZGVsbG8vCj4gbW9kZWxsby1wbHVnaW4teGRvYy8xLjcvbW9kZWxsby1wbHVnaW4teGRvYy0xLjcuamFyCj4gPiAoMTQga0IgYXQgMjIzIGtCL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRlZDoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvY29kZWhhdXMvbW9kZWxsby8KPiBtb2RlbGxvLXBsdWdpbi14c2QvMS43L21vZGVsbG8tcGx1Z2luLXhzZC0xLjcuamFyCj4gPiAoMTQga0IgYXQgMjE3IGtCL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRlZDoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvc29uYXR5cGUvcGxleHVzLwo+IHBsZXh1cy1idWlsZC1hcGkvMC4wLjcvcGxleHVzLWJ1aWxkLWFwaS0wLjAuNy5qYXIKPiA+ICg4LjUga0IgYXQgMTI3IGtCL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gb3V0cHV0RGlyZWN0b3J5Ogo+ID4gRjpcamVua2luc1xqZW5raW5zLXNsYXZlXHdvcmtzcGFjZVxlbi1ib3hfbWF2ZW4tcmVsZWFzZV9tYXN0ZXItCj4gT0NLR1VMUUJDWjY3VkJLSjdIRjZFN0taVUNLWDdaQzZGWDY0R0g2Nk9IUDdBNFZBUUJJUVxtXAo+IG1hdmVuLXJlbGVhc2UtbWFuYWdlclx0YXJnZXRcZ2VuZXJhdGVkLXNvdXJjZXNcbW9kZWxsbwo+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIFdvcmtpbmcgb24gbW9kZWw6IHNyYy9tYWluL21kby9yZWxlYXNlLQo+IGRlc2NyaXB0b3IubWRvCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gR2VuZXJhdGluZyBjdXJyZW50IHZlcnNpb246IDMuMC4wCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10KPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSAtLS0gbW9kZWxsby1tYXZlbi1wbHVnaW46MS43OmphdmEgKGRlZmF1bHQpIEAKPiA+IG1hdmVuLXJlbGVhc2UtbWFuYWdlciAtLS0KPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBvdXRwdXREaXJlY3Rvcnk6Cj4gPiBGOlxqZW5raW5zXGplbmtpbnMtc2xhdmVcd29ya3NwYWNlXGVuLWJveF9tYXZlbi1yZWxlYXNlX21hc3Rlci0KPiBPQ0tHVUxRQkNaNjdWQktKN0hGNkU3S1pVQ0tYN1pDNkZYNjRHSDY2T0hQN0E0VkFRQklRXG1cCj4gbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyXHRhcmdldFxnZW5lcmF0ZWQtc291cmNlc1xtb2RlbGxvCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gV29ya2luZyBvbiBtb2RlbDogc3JjL21haW4vbWRvL3JlbGVhc2UtCj4gZGVzY3JpcHRvci5tZG8KPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBHZW5lcmF0aW5nIGN1cnJlbnQgdmVyc2lvbjogMy4wLjAKPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXQo+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIC0tLSBtb2RlbGxvLW1hdmVuLXBsdWdpbjoxLjc6eHBwMy13cml0ZXIKPiAoZGVmYXVsdCkgQAo+ID4gbWF2ZW4tcmVsZWFzZS1tYW5hZ2VyIC0tLQo+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIG91dHB1dERpcmVjdG9yeToKPiA+IEY6XGplbmtpbnNcamVua2lucy1zbGF2ZVx3b3Jrc3BhY2VcZW4tYm94X21hdmVuLXJlbGVhc2VfbWFzdGVyLQo+IE9DS0dVTFFCQ1o2N1ZCS0o3SEY2RTdLWlVDS1g3WkM2Rlg2NEdINjZPSFA3QTRWQVFCSVFcbVwKPiBtYXZlbi1yZWxlYXNlLW1hbmFnZXJcdGFyZ2V0XGdlbmVyYXRlZC1zb3VyY2VzXG1vZGVsbG8KPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBXb3JraW5nIG9uIG1vZGVsOiBzcmMvbWFpbi9tZG8vcmVsZWFzZS0KPiBkZXNjcmlwdG9yLm1kbwo+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIEdlbmVyYXRpbmcgY3VycmVudCB2ZXJzaW9uOiAzLjAuMAo+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gLS0tIG1hdmVuLXJlbW90ZS1yZXNvdXJjZXMtcGx1Z2luOjEuNTpwcm9jZXNzCj4gPiAoZGVmYXVsdCkgQCBtYXZlbi1yZWxlYXNlLW1hbmFnZXIgLS0tCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXJzLzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS1wcm92aWRlcnMtCj4gMS45LjYtMjAxNzEyMDEuMjMyODQ2LTEyLnBvbQo+ID4gW3dpbmRvd3MtamRrNwo+ID4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gc2NtL21hdmVuLXNjbS1wcm92aWRlcnMvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLXByb3ZpZGVycy0KPiAxLjkuNi0yMDE3MTIwMS4yMzI4NDYtMTIucG9tJTVCd2luZG93cy1qZGs3Pl0KPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9zb25hdHlwZS9wbGV4dXMvCj4gcGxleHVzLWJ1aWxkLWFwaS8wLjAuNy9wbGV4dXMtYnVpbGQtYXBpLTAuMC43LnBvbQo+ID4gKDMuMiBrQiBhdCA0MDAga0IvcykKPiA+IFt3aW5kb3dzLWpkazddIFtJTkZPXSBEb3dubG9hZGluZzoKPiA+IGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMi9vcmcvc29uYXR5cGUvc3BpY2UvCj4gc3BpY2UtcGFyZW50LzE1L3NwaWNlLXBhcmVudC0xNS5wb20KPiA+IFt3aW5kb3dzLWpkazcKPiA+IDxodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIvb3JnL3NvbmF0eXBlL3NwaWNlLwo+IHNwaWNlLXBhcmVudC8xNS9zcGljZS1wYXJlbnQtMTUucG9tJTVCd2luZG93cy1qZGs3Pl0KPiA+IFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yL29yZy9zb25hdHlwZS9zcGljZS8KPiBzcGljZS1wYXJlbnQvMTUvc3BpY2UtcGFyZW50LTE1LnBvbQo+ID4gKDguNCBrQiBhdCAxLjAgTUIvcykKPiA+IFt3aW5kb3dzLWpkazhdIFtJTkZPXSBEb3dubG9hZGVkOgo+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVycy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tcHJvdmlkZXJzLQo+IDEuOS42LTIwMTcxMjAxLjIzMjg0Ni0xMi5wb20KPiA+ICgwIEIgYXQgMCBCL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+IHNjbS9tYXZlbi1zY20vMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLTEuOS42LTIwMTcxMjAxLjIzMjU0OS0xMi5wb20KPiA+IFt3aW5kb3dzLWpkazgKPiA+IDxodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+IHNjbS9tYXZlbi1zY20vMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLTEuOS42LTIwMTcxMjAxLgo+IDIzMjU0OS0xMi5wb20lNUJ3aW5kb3dzLWpkazg+XQo+ID4gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+IHNjbS9tYXZlbi1zY20vMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLTEuOS42LTIwMTcxMjAxLjIzMjU0OS0xMi5wb20KPiA+ICgwIEIgYXQgMCBCL3MpCj4gPiBbd2luZG93cy1qZGs4XSBbSU5GT10gRG93bmxvYWRpbmc6Cj4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXJzLWN2cy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gcHJvdmlkZXJzLWN2cy0xLjkuNi0yMDE3MTIwMS4yMzI4NTMtMTIucG9tCj4gPiBbd2luZG93cy1qZGs4Cj4gPiA8aHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVycy1jdnMvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+IHByb3ZpZGVycy1jdnMtMS45LjYtMjAxNzEyMDEuMjMyODUzLTEyLnBvbSU1QndpbmRvd3MtamRrOD5dCj4gPiBTZW5kaW5nIGludGVycnVwdCBzaWduYWwgdG8gcHJvY2Vzcwo+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkZWQ6Cj4gPiBodHRwOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NuYXBzaG90cy9vcmcvYXBhY2hlL21hdmVuLwo+IHNjbS9tYXZlbi1zY20tcHJvdmlkZXJzLWN2cy8xLjkuNi1TTkFQU0hPVC9tYXZlbi1zY20tCj4gcHJvdmlkZXJzLWN2cy0xLjkuNi0yMDE3MTIwMS4yMzI4NTMtMTIucG9tCj4gPiAoMCBCIGF0IDAgQi9zKQo+ID4gW3dpbmRvd3MtamRrOF0gW0lORk9dIERvd25sb2FkaW5nOgo+ID4gaHR0cDovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zbmFwc2hvdHMvb3JnL2FwYWNoZS9tYXZlbi8KPiBzY20vbWF2ZW4tc2NtLXByb3ZpZGVycy1naXQvMS45LjYtU05BUFNIT1QvbWF2ZW4tc2NtLQo+IHByb3ZpZGVycy1naXQtMS45LjYtMjAxNzEyMDEuMjMyOTAwLTEyLnBvbQo+ID4gW3dpbmRvd3MtamRrOQo+ID4gPGh0dHA6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc25hcHNob3RzL29yZy9hcGFjaGUvbWF2ZW4vCj4gc2NtL21hdmVuLXNjbS1wcm92aWRlcnMtZ2l0LzEuOS42LVNOQVBTSE9UL21hdmVuLXNjbS0KPiBwcm92aWRlcnMtZ2l0LTEuOS42LTIwMTcxMjAxLjIzMjkwMC0xMi5wb20lNUJ3aW5kb3dzLWpkazk+XQo+ID4gU2VuZGluZyBpbnRlcnJ1cHQgc2lnbmFsIHRvIHByb2Nlc3MKPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOF0gfQo+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs3XSB9Cj4gPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs4XSB9Cj4gPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs5XSB9Cj4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazhdIC8vIGRpcgo+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs3XSAvLyBkaXIKPiA+IFtQaXBlbGluZV0gW2xpbnV4LWpkazhdIC8vIGRpcgo+ID4gW1BpcGVsaW5lXSBbbGludXgtamRrOV0gLy8gZGlyCj4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazhdIH0KPiA+IFt3aW5kb3dzLWpkazhdIFt3aXRoTWF2ZW5dIE9uZSBvciBtdWx0aXBsZSBNYXZlbiBleGVjdXRpb25zIGhhdmUgYmVlbgo+ID4gaWdub3JlZCBieSB0aGUgSmVua2lucyBQaXBlbGluZSBNYXZlbiBQbHVnaW4gYmVjYXVzZSB0aGV5IGhhdmUgYmVlbgo+ID4gaW50ZXJydXB0ZWQgYmVmb3JlIGNvbXBsZXRpb24gKDEpLiBTZWUgUGlwZWxpbmUgTWF2ZW4gUGx1Z2luIEZBUSBmb3IgbW89CnJlCj4gPiBkZXRhaWxzLgo+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs3XSB9Cj4gPiBbd2luZG93cy1qZGs3XSBbd2l0aE1hdmVuXSBPbmUgb3IgbXVsdGlwbGUgTWF2ZW4gZXhlY3V0aW9ucyBoYXZlIGJlZW4KPiA+IGlnbm9yZWQgYnkgdGhlIEplbmtpbnMgUGlwZWxpbmUgTWF2ZW4gUGx1Z2luIGJlY2F1c2UgdGhleSBoYXZlIGJlZW4KPiA+IGludGVycnVwdGVkIGJlZm9yZSBjb21wbGV0aW9uICgxKS4gU2VlIFBpcGVsaW5lIE1hdmVuIFBsdWdpbiBGQVEgZm9yIG1vPQpyZQo+ID4gZGV0YWlscy4KPiA+IFtQaXBlbGluZV0gW2xpbnV4LWpkazhdIH0KPiA+IFtsaW51eC1qZGs4XSBbd2l0aE1hdmVuXSBPbmUgb3IgbXVsdGlwbGUgTWF2ZW4gZXhlY3V0aW9ucyBoYXZlIGJlZW4KPiA+IGlnbm9yZWQgYnkgdGhlIEplbmtpbnMgUGlwZWxpbmUgTWF2ZW4gUGx1Z2luIGJlY2F1c2UgdGhleSBoYXZlIGJlZW4KPiA+IGludGVycnVwdGVkIGJlZm9yZSBjb21wbGV0aW9uICgxKS4gU2VlIFBpcGVsaW5lIE1hdmVuIFBsdWdpbiBGQVEgZm9yIG1vPQpyZQo+ID4gZGV0YWlscy4KPiA+IFtQaXBlbGluZV0gW2xpbnV4LWpkazldIH0KPiA+IFtsaW51eC1qZGs5XSBbd2l0aE1hdmVuXSBPbmUgb3IgbXVsdGlwbGUgTWF2ZW4gZXhlY3V0aW9ucyBoYXZlIGJlZW4KPiA+IGlnbm9yZWQgYnkgdGhlIEplbmtpbnMgUGlwZWxpbmUgTWF2ZW4gUGx1Z2luIGJlY2F1c2UgdGhleSBoYXZlIGJlZW4KPiA+IGludGVycnVwdGVkIGJlZm9yZSBjb21wbGV0aW9uICgxKS4gU2VlIFBpcGVsaW5lIE1hdmVuIFBsdWdpbiBGQVEgZm9yIG1vPQpyZQo+ID4gZGV0YWlscy4KPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOF0gLy8gd2l0aE1hdmVuCj4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazddIC8vIHdpdGhNYXZlbgo+ID4gW1BpcGVsaW5lXSBbbGludXgtamRrOF0gLy8gd2l0aE1hdmVuCj4gPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs5XSAvLyB3aXRoTWF2ZW4KPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOF0gfQo+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs3XSB9Cj4gPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs4XSB9Cj4gPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs5XSB9Cj4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazldIH0KPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOF0gLy8gc3RhZ2UKPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrN10gLy8gc3RhZ2UKPiA+IFtQaXBlbGluZV0gW2xpbnV4LWpkazhdIC8vIHN0YWdlCj4gPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs5XSAvLyBzdGFnZQo+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs5XSAvLyBkaXIKPiA+IFtQaXBlbGluZV0gW2xpbnV4LWpkazhdIH0KPiA+IFtQaXBlbGluZV0gW2xpbnV4LWpkazldIH0KPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrN10gfQo+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs4XSB9Cj4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazldIH0KPiA+IFt3aW5kb3dzLWpkazldIFt3aXRoTWF2ZW5dIE9uZSBvciBtdWx0aXBsZSBNYXZlbiBleGVjdXRpb25zIGhhdmUgYmVlbgo+ID4gaWdub3JlZCBieSB0aGUgSmVua2lucyBQaXBlbGluZSBNYXZlbiBQbHVnaW4gYmVjYXVzZSB0aGV5IGhhdmUgYmVlbgo+ID4gaW50ZXJydXB0ZWQgYmVmb3JlIGNvbXBsZXRpb24gKDEpLiBTZWUgUGlwZWxpbmUgTWF2ZW4gUGx1Z2luIEZBUSBmb3IgbW89CnJlCj4gPiBkZXRhaWxzLgo+ID4gW1BpcGVsaW5lXSBbbGludXgtamRrOF0gLy8gbm9kZQo+ID4gW1BpcGVsaW5lXSBbbGludXgtamRrOV0gLy8gbm9kZQo+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs3XSAvLyBub2RlCj4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazhdIC8vIG5vZGUKPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOV0gLy8gd2l0aE1hdmVuCj4gPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs4XSB9Cj4gPiBbbGludXgtamRrOF0gRmFpbGVkIGluIGJyYW5jaCBsaW51eC1qZGs4Cj4gPiBbUGlwZWxpbmVdIFtsaW51eC1qZGs5XSB9Cj4gPiBbbGludXgtamRrOV0gRmFpbGVkIGluIGJyYW5jaCBsaW51eC1qZGs5Cj4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazddIH0KPiA+IFt3aW5kb3dzLWpkazddIEZhaWxlZCBpbiBicmFuY2ggd2luZG93cy1qZGs3Cj4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazhdIH0KPiA+IFt3aW5kb3dzLWpkazhdIEZhaWxlZCBpbiBicmFuY2ggd2luZG93cy1qZGs4Cj4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazldIH0KPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOV0gLy8gc3RhZ2UKPiA+IFtQaXBlbGluZV0gW3dpbmRvd3MtamRrOV0gfQo+ID4gW1BpcGVsaW5lXSBbd2luZG93cy1qZGs5XSAvLyBub2RlCj4gPiBbUGlwZWxpbmVdIFt3aW5kb3dzLWpkazldIH0KPiA+IFt3aW5kb3dzLWpkazldIEZhaWxlZCBpbiBicmFuY2ggd2luZG93cy1qZGs5Cj4gPiBbUGlwZWxpbmVdIC8vIHBhcmFsbGVsCj4gPiBbUGlwZWxpbmVdIHN0YWdlCj4gPiBbUGlwZWxpbmVdIHsgKE5vdGlmaWNhdGlvbnMpCj4gPiBbUGlwZWxpbmVdIGVjaG8KPiA+IEJ1aWxkIHJlc3VsdDogRkFJTFVSRQo+ID4gW1BpcGVsaW5lXSBqaXJhSXNzdWVTZWxlY3Rvcgo+ID4gW1BpcGVsaW5lXSBqaXJhQ29tbWVudAo+ID4gW1BpcGVsaW5lXSBqaXJhQ29tbWVudAo+ID4gW1BpcGVsaW5lXSBlbWFpbGV4dAo+Cj4gLS0KPiBTZW50IGZyb20gbXkgcGhvbmUKPgoKCgotLT0yMApPbGl2aWVyIExhbXkKaHR0cDovL3R3aXR0ZXIuY29tL29sYW15IHwgaHR0cDovL2xpbmtlZGluLmNvbS9pbi9vbGFteQoKLS05NGViMmMxY2UwMmNhOWJhZTUwNTVmNzdlZGIyLS0KCkZyb20gZGV2LXJldHVybi0xMjQxODktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE9jdCAgOCAxMzozODowMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxODktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNjFCQUYxMDQ0NAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sICA4IE9jdCAyMDE3IDEzOjM4OjAwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzk5MDggaW52b2tlZCBieSB1aWQgNTAwKTsgOCBPY3QgMjAxNyAxMzozODowMCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzk4MzEgaW52b2tlZCBieSB1aWQgNTAwKTsgOCBPY3QgMjAxNyAxMzozODowMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM5ODIwIGludm9rZWQgYnkgdWlkIDk5KTsgOCBPY3QgMjAxNyAxMzozNzo1OSAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAwOCBPY3QgMjAxNyAxMzozNzo1OSArMDAwMApSZWNlaXZlZDogZnJvbSBiZW5lZGlrdHMtbWJwLmxvY2FsIChkc2xiLTA4OC0wNzgtMjE1LTA3Ny4wODguMDc4LnBvb2xzLnZvZGFmb25lLWlwLmRlIFs4OC43OC4yMTUuNzddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgNjgxQ0ExQTAwNTUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sICA4IE9jdCAyMDE3IDEzOjM3OjU3ICswMDAwIChVVEMpCkZyb206IEJlbmVkaWt0IFJpdHRlciA8YnJpdHRlckBhcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47CgljaGFyc2V0PXV0Zi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKTWltZS1WZXJzaW9uOiAxLjAgKE1hYyBPUyBYIE1haWwgMTEuMCBcKDM0NDUuMS42XCkpClN1YmplY3Q6IFJlOiBkZXBlbmRlbmN5OmdvLW9mZmxpbmUgYnJva2VuPwpEYXRlOiBTdW4sIDggT2N0IDIwMTcgMTU6Mzc6NTQgKzAyMDAKUmVmZXJlbmNlczogPDQ5NTk1MjJBLTIwOTAtNDIzOS04MjMzLUUzMjAwMERFOUE1QkBhcGFjaGUub3JnPgogPDM5ODA3NzMuTWVqR0FhQjFxb0BnaWdhPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDwzOTgwNzczLk1lakdBYUIxcW9AZ2lnYT4KTWVzc2FnZS1JZDogPEQyRkYwRjY2LUY3OEQtNDMyOC05QjI5LTUzNEI5RTFGQzIwM0BhcGFjaGUub3JnPgpYLU1haWxlcjogQXBwbGUgTWFpbCAoMi4zNDQ1LjEuNikKCkhlbGxvIEhlcnY9QzM9QTkKCj4gQW0gMDQuMTAuMjAxNyB1bSAwMTowMSBzY2hyaWViIEhlcnY9QzM9QTkgQk9VVEVNWSA9CjxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Ogo+PTIwCj4gdHJ5aW5nIG15IGNoYW5jZSwgYmVjYXVzZSB5b3UgcHJlcGFyZWQgYSBwZXJmZWN0IGRlbW8gdGhlbiB3ZSBzaG91bGQgPQpiZSBhYmxlPTIwCj4gdG8gZmluZCB3aGVyZSB0aGUgaXNzdWUgaXMuLi4KPj0yMAo+IEhlcmUgYXJlIG15IGZpbmRpbmdzOgo+IG12biBkZXBlbmNlbmR5OmdvLW9mZmxpbmUgb3V0cHV0IGZvciBtYXZlbi1yZXNvdXJjZXMtcGx1Z2luOgo+PTIwCj4gW0lORk9dIFBsdWdpbiBSZXNvbHZlZDogbWF2ZW4tcmVzb3VyY2VzLXBsdWdpbi0yLjYuamFyCj4gW0lORk9dICAgICBQbHVnaW4gRGVwZW5kZW5jeSBSZXNvbHZlZDogbWF2ZW4tcGx1Z2luLWFwaS0yLjAuNi5qYXIKPiBbSU5GT10gICAgIFBsdWdpbiBEZXBlbmRlbmN5IFJlc29sdmVkOiBtYXZlbi1wcm9qZWN0LTIuMC42Lmphcgo+IFtJTkZPXSAgICAgUGx1Z2luIERlcGVuZGVuY3kgUmVzb2x2ZWQ6IG1hdmVuLWNvcmUtMi4wLjYuamFyCj4gW0lORk9dICAgICBQbHVnaW4gRGVwZW5kZW5jeSBSZXNvbHZlZDogbWF2ZW4tYXJ0aWZhY3QtMi4wLjYuamFyCj4gW0lORk9dICAgICBQbHVnaW4gRGVwZW5kZW5jeSBSZXNvbHZlZDogbWF2ZW4tc2V0dGluZ3MtMi4wLjYuamFyCj4gW0lORk9dICAgICBQbHVnaW4gRGVwZW5kZW5jeSBSZXNvbHZlZDogbWF2ZW4tbW9kZWwtMi4wLjYuamFyCj4gW0lORk9dICAgICBQbHVnaW4gRGVwZW5kZW5jeSBSZXNvbHZlZDogbWF2ZW4tbW9uaXRvci0yLjAuNi5qYXIKPiBbSU5GT10gICAgIFBsdWdpbiBEZXBlbmRlbmN5IFJlc29sdmVkOiA9CnBsZXh1cy1jb250YWluZXItZGVmYXVsdC0xLjAtYWxwaGEtOS0KPiBzdGFibGUtMS5qYXIKPiBbSU5GT10gICAgIFBsdWdpbiBEZXBlbmRlbmN5IFJlc29sdmVkOiBwbGV4dXMtdXRpbHMtMi4wLjUuamFyCj4gW0lORk9dICAgICBQbHVnaW4gRGVwZW5kZW5jeSBSZXNvbHZlZDogbWF2ZW4tZmlsdGVyaW5nLTEuMS5qYXIKPiBbSU5GT10gICAgIFBsdWdpbiBEZXBlbmRlbmN5IFJlc29sdmVkOiBwbGV4dXMtaW50ZXJwb2xhdGlvbi0xLjEzLmphcgo+PTIwCj49MjAKPiB0aGVuIG9uIHRoZSBmYWlsdXJlOiBtdm4gLVggLW8gY29tcGlsZQo+PTIwCj4gW0lORk9dIC0tLSBtYXZlbi1yZXNvdXJjZXMtcGx1Z2luOjIuNjpyZXNvdXJjZXMgKGRlZmF1bHQtcmVzb3VyY2VzKSBAPTIwPQoKPiBkZXBlbmRlbmN5LXBsdWdpbi1idWcgLS0tCj4gW0RFQlVHXSBVc2luZyBtaXJyb3IgY2VudHJhbCA9CihodHRwOi8vbG9jYWxob3N0OjgwODEvbmV4dXMvY29udGVudC9ncm91cHMvCj4gcHVibGljKSBmb3IgY2VudHJhbCAoaHR0cDovL3JlcG8xLm1hdmVuLm9yZy9tYXZlbjIpLgo+IFtXQVJOSU5HXSBUaGUgUE9NIGZvciBvcmcuYXBhY2hlLm1hdmVuOm1hdmVuLWNvcmU6amFyOjIuMC42IGlzID0KbWlzc2luZywgbm89MjAKPiBkZXBlbmRlbmN5IGluZm9ybWF0aW9uIGF2YWlsYWJsZQo+IFtXQVJOSU5HXSBUaGUgUE9NIGZvciBvcmcuYXBhY2hlLm1hdmVuOm1hdmVuLW1vbml0b3I6amFyOjIuMC42IGlzID0KbWlzc2luZywgbm89MjAKPiBkZXBlbmRlbmN5IGluZm9ybWF0aW9uIGF2YWlsYWJsZQo+IFtXQVJOSU5HXSBUaGUgUE9NIGZvciBvcmcuY29kZWhhdXMucGxleHVzOnBsZXh1cy11dGlsczpqYXI6Mi4wLjUgaXMgPQptaXNzaW5nLD0yMAo+IG5vIGRlcGVuZGVuY3kgaW5mb3JtYXRpb24gYXZhaWxhYmxlCj4gW1dBUk5JTkddIFRoZSBQT00gZm9yIG9yZy5hcGFjaGUubWF2ZW4uc2hhcmVkOm1hdmVuLWZpbHRlcmluZzpqYXI6MS4xID0KaXM9MjAKPiBtaXNzaW5nLCBubyBkZXBlbmRlbmN5IGluZm9ybWF0aW9uIGF2YWlsYWJsZQo+IFtXQVJOSU5HXSBUaGUgUE9NIGZvciA9Cm9yZy5jb2RlaGF1cy5wbGV4dXM6cGxleHVzLWludGVycG9sYXRpb246amFyOjEuMTMgaXM9MjAKPiBtaXNzaW5nLCBubyBkZXBlbmRlbmN5IGluZm9ybWF0aW9uIGF2YWlsYWJsZQo+IFtERUJVR10gRGVwZW5kZW5jeSBjb2xsZWN0aW9uIHN0YXRzOiB7Q29uZmxpY3RNYXJrZXIuYW5hbHl6ZVRpbWU9M0QwLD0yMD0KCj4gQ29uZmxpY3RNYXJrZXIubWFya1RpbWU9M0QwLCBDb25mbGljdE1hcmtlci5ub2RlQ291bnQ9M0Q0MSw9MjAKPiBDb25mbGljdElkU29ydGVyLmdyYXBoVGltZT0zRDAsIENvbmZsaWN0SWRTb3J0ZXIudG9wc29ydFRpbWU9M0QwLD0yMAo+IENvbmZsaWN0SWRTb3J0ZXIuY29uZmxpY3RJZENvdW50PTNEMTgsID0KQ29uZmxpY3RJZFNvcnRlci5jb25mbGljdElkQ3ljbGVDb3VudD0zRDAsPTIwCj4gQ29uZmxpY3RSZXNvbHZlci50b3RhbFRpbWU9M0QxLCBDb25mbGljdFJlc29sdmVyLmNvbmZsaWN0SXRlbUNvdW50PTNEMzgsPQo9MjAKPiBEZWZhdWx0RGVwZW5kZW5jeUNvbGxlY3Rvci5jb2xsZWN0VGltZT0zRDU4LD0yMAo+IERlZmF1bHREZXBlbmRlbmN5Q29sbGVjdG9yLnRyYW5zZm9ybVRpbWU9M0QxfQo+IFtERUJVR10gb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zOm1hdmVuLXJlc291cmNlcy1wbHVnaW46amFyOjIuNjoKPiBbREVCVUddICAgIG9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tcGx1Z2luLWFwaTpqYXI6Mi4wLjY6Y29tcGlsZQo+IFtERUJVR10gICAgb3JnLmFwYWNoZS5tYXZlbjptYXZlbi1wcm9qZWN0OmphcjoyLjAuNjpjb21waWxlCj4gW0RFQlVHXSAgICAgICBvcmcuYXBhY2hlLm1hdmVuOm1hdmVuLXByb2ZpbGU6amFyOjIuMC42OmNvbXBpbGUKPiBbREVCVUddICAgICAgID0Kb3JnLmFwYWNoZS5tYXZlbjptYXZlbi1hcnRpZmFjdC1tYW5hZ2VyOmphcjoyLjAuNjpjb21waWxlCj4gW0RFQlVHXSAgICAgICAgICA9Cm9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tcmVwb3NpdG9yeS1tZXRhZGF0YTpqYXI6Mi4wLjY6Y29tcGlsZQo+IFtERUJVR10gICAgICAgb3JnLmFwYWNoZS5tYXZlbjptYXZlbi1wbHVnaW4tcmVnaXN0cnk6amFyOjIuMC42OmNvbXBpbGUKPiBbREVCVUddICAgIG9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tY29yZTpqYXI6Mi4wLjY6Y29tcGlsZQo+IFtERUJVR10gICAgb3JnLmFwYWNoZS5tYXZlbjptYXZlbi1hcnRpZmFjdDpqYXI6Mi4wLjY6Y29tcGlsZQo+IFtERUJVR10gICAgb3JnLmFwYWNoZS5tYXZlbjptYXZlbi1zZXR0aW5nczpqYXI6Mi4wLjY6Y29tcGlsZQo+IFtERUJVR10gICAgb3JnLmFwYWNoZS5tYXZlbjptYXZlbi1tb2RlbDpqYXI6Mi4wLjY6Y29tcGlsZQo+IFtERUJVR10gICAgb3JnLmFwYWNoZS5tYXZlbjptYXZlbi1tb25pdG9yOmphcjoyLjAuNjpjb21waWxlCj4gW0RFQlVHXSAgICA9Cm9yZy5jb2RlaGF1cy5wbGV4dXM6cGxleHVzLWNvbnRhaW5lci1kZWZhdWx0OmphcjoxLjAtYWxwaGEtOS0KPiBzdGFibGUtMTpjb21waWxlCj4gW0RFQlVHXSAgICAgICBqdW5pdDpqdW5pdDpqYXI6My44LjE6Y29tcGlsZQo+IFtERUJVR10gICAgICAgY2xhc3N3b3JsZHM6Y2xhc3N3b3JsZHM6amFyOjEuMS1hbHBoYS0yOmNvbXBpbGUKPiBbREVCVUddICAgIG9yZy5jb2RlaGF1cy5wbGV4dXM6cGxleHVzLXV0aWxzOmphcjoyLjAuNTpjb21waWxlCj4gW0RFQlVHXSAgICBvcmcuYXBhY2hlLm1hdmVuLnNoYXJlZDptYXZlbi1maWx0ZXJpbmc6amFyOjEuMTpjb21waWxlCj4gW0RFQlVHXSAgICBvcmcuY29kZWhhdXMucGxleHVzOnBsZXh1cy1pbnRlcnBvbGF0aW9uOmphcjoxLjEzOmNvbXBpbGUKPj0yMAo+PTIwCj4gQXMgeW91IGNhbiBzZWUsIHRoZSBtaXNzaW5nIGZpbGVzIG1hdmVuLXByb2ZpbGUtMi4wLjYuamFyLCA9Cm1hdmVuLWFydGlmYWN0LQo+IG1hbmFnZXItMi4wLjYuamFyLCBtYXZlbi1yZXBvc2l0b3J5LW1ldGFkYXRhLTIuMC42LmphciwgbWF2ZW4tcGx1Z2luLQo+IHJlZ2lzdHJ5LTIuMC42LmphciBhbmQgY2xhc3N3b3JsZHMtMS4xLWFscGhhLTIuamFyIGFyZSBpbiB0aGUgPQptYXZlbi1yZXNvdXJjZXMtCj4gcGx1Z2luIGVmZmVjdGl2ZSBkZXBlbmRlbmNpZXMgYnV0IG5vdCBkZXRlY3RlZCBieSBkZXBlbmRlbmN5IHBsdWdpbgo+PTIwCj49MjAKPiBUaGVuIHlvdSdyZSByaWdodCwgaXQncyBhIGRlcGVuZGVuY3kgcGx1Z2luIGJ1Zy4KPj0yMAo+IEkgcmVtYXJrZWQgdGhhdCB0aGUgcGx1Z2luIHZlcnNpb24gdXNlZCB3YXMgMi44IGJ1dCBub3QgdGhlIGxhdGVzdCA9CjMuMC4yCj49MjAKPiBUaGVuIEkgYWRkZWQgYSBwbHVnaW5NYW5hZ2VtZW50IHNlY3Rpb24gdG8gc2VsZWN0IHZlcnNpb24gMy4wLjIgYW5kID0KcmUtcmFuIHRoZT0yMAo+IHRlc3Q6IHlvdSdsbCBzZWUgdGhlIG91dHB1dCBpcyBjb21wbGV0ZWx5IGRpZmZlcmVudC4KPj0yMAo+IEFuZCB0aGVyZSBpcyBubyBpc3N1ZSBhbnkgbW9yZQoKVGhhbmsgeW91IHNvIG11Y2gsIHlvdSB0b29rIHRoZSB0aW1lIHRvIGludmVzdGlnYXRlIHRoaXMgaXNzdWUhIFJlYWxseSA9Cm11Y2ggYXBwcmVjaWF0ZWQuIE5vdyBJIHdvbmRlciwgd2h5IE1hdmVuIHVzZXMgYW4gb3V0ZGF0ZWQgdmVyc2lvbiBvZiA9CnRoZSBkZXBlbmRlbmN5IHBsdWdpbi4gSXMgdGhpcyBhIHByb2JsZW0gd2l0aCB0aGUgc3VwZXIgcG9tPwoKRnVydGhlcm1vcmUgST1FMj04MD05OXZlIG5vdGljZWQsIHRoYXQgbXZuIC1vIHRlc3Qgc3RpbGwgZG9lcyBub3Qgd29yaywgPQpiZWNhdXNlIHNvbWUgc3VyZWZpcmUgZGVwZW5kZW5jaWVzIGFyZSBtaXNzaW5nOgoKW0VSUk9SXSBGYWlsZWQgdG8gZXhlY3V0ZSBnb2FsID0Kb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zOm1hdmVuLXN1cmVmaXJlLXBsdWdpbjoyLjEyLjQ6dGVzdCA9CihkZWZhdWx0LXRlc3QpIG9uIHByb2plY3QgZGVwZW5kZW5jeS1wbHVnaW4tYnVnOiBVbmFibGUgdG8gZ2VuZXJhdGUgPQpjbGFzc3BhdGg6ID0Kb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5yZXNvbHZlci5NdWx0aXBsZUFydGlmYWN0c05vdEZvdW5kRXhjZXB0aW9uOiA9Ck1pc3Npbmc6CltFUlJPUl0gLS0tLS0tLS0tLQpbRVJST1JdIDEpIG9yZy5hcGFjaGUubWF2ZW4uc3VyZWZpcmU6c3VyZWZpcmUtanVuaXQzOmphcjoyLjEyLjQKW0VSUk9SXQpbRVJST1JdIFRyeSBkb3dubG9hZGluZyB0aGUgZmlsZSBtYW51YWxseSBmcm9tIHRoZSBwcm9qZWN0IHdlYnNpdGUuCltFUlJPUl0KW0VSUk9SXSBUaGVuLCBpbnN0YWxsIGl0IHVzaW5nIHRoZSBjb21tYW5kOgpbRVJST1JdIG12biBpbnN0YWxsOmluc3RhbGwtZmlsZSAtRGdyb3VwSWQ9M0RvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlID0KLURhcnRpZmFjdElkPTNEc3VyZWZpcmUtanVuaXQzIC1EdmVyc2lvbj0zRDIuMTIuNCAtRHBhY2thZ2luZz0zRGphciA9Ci1EZmlsZT0zRC9wYXRoL3RvL2ZpbGUKW0VSUk9SXQpbRVJST1JdIEFsdGVybmF0aXZlbHksIGlmIHlvdSBob3N0IHlvdXIgb3duIHJlcG9zaXRvcnkgeW91IGNhbiBkZXBsb3kgPQp0aGUgZmlsZSB0aGVyZToKW0VSUk9SXSBtdm4gZGVwbG95OmRlcGxveS1maWxlIC1EZ3JvdXBJZD0zRG9yZy5hcGFjaGUubWF2ZW4uc3VyZWZpcmUgPQotRGFydGlmYWN0SWQ9M0RzdXJlZmlyZS1qdW5pdDMgLUR2ZXJzaW9uPTNEMi4xMi40IC1EcGFja2FnaW5nPTNEamFyID0KLURmaWxlPTNEL3BhdGgvdG8vZmlsZSAtRHVybD0zRFt1cmxdIC1EcmVwb3NpdG9yeUlkPTNEW2lkXQpbRVJST1JdCltFUlJPUl0gUGF0aCB0byBkZXBlbmRlbmN5OgpbRVJST1JdIDEpIGR1bW15OmR1bW15OmphcjoxLjAKW0VSUk9SXSAyKSBvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlOnN1cmVmaXJlLWp1bml0MzpqYXI6Mi4xMi40CltFUlJPUl0KW0VSUk9SXSAtLS0tLS0tLS0tCltFUlJPUl0gMSByZXF1aXJlZCBhcnRpZmFjdCBpcyBtaXNzaW5nLgpbRVJST1JdCltFUlJPUl0gZm9yIGFydGlmYWN0OgpbRVJST1JdIGR1bW15OmR1bW15OmphcjoxLjAKW0VSUk9SXQpbRVJST1JdIGZyb20gdGhlIHNwZWNpZmllZCByZW1vdGUgcmVwb3NpdG9yaWVzOgpbRVJST1JdIGNlbnRyYWwgKGh0dHBzOi8vcmVwby5tYXZlbi5hcGFjaGUub3JnL21hdmVuMiwgcmVsZWFzZXM9M0R0cnVlLCA9CnNuYXBzaG90cz0zRGZhbHNlKQpbRVJST1JdIC0+IFtIZWxwIDFdCltFUlJPUl0KW0VSUk9SXSBUbyBzZWUgdGhlIGZ1bGwgc3RhY2sgdHJhY2Ugb2YgdGhlIGVycm9ycywgcmUtcnVuIE1hdmVuIHdpdGggdGhlID0KLWUgc3dpdGNoLgpbRVJST1JdIFJlLXJ1biBNYXZlbiB1c2luZyB0aGUgLVggc3dpdGNoIHRvIGVuYWJsZSBmdWxsIGRlYnVnIGxvZ2dpbmcuCltFUlJPUl0KW0VSUk9SXSBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXJyb3JzIGFuZCBwb3NzaWJsZSBzb2x1dGlvbnMsID0KcGxlYXNlIHJlYWQgdGhlIGZvbGxvd2luZyBhcnRpY2xlczoKW0VSUk9SXSBbSGVscCAxXSA9Cmh0dHA6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9Nb2pvRXhlY3V0aW9uRXhjZXB0aW9uCgpTaW5jZSB0aGVyZSBhcmUgb25seSBhIGZldyBkZXBlbmRlbmNpZXMgbWlzc2luZywgSSB3aWxsIHJ1biB0ZXN0IG5vdCBpbiA9Cm9mZmxpbmUgbW9kdXMgb24gbXkgQ0kgc2VydmVyLiBCdXQgSSB3b25kZXIgd2hldGhlciB0aGlzIGlzIGEgYnVnLgoKUmVnYXJkcywKQmVuZWRpa3QKCj49MjAKPiBSZWdhcmRzLAo+PTIwCj4gSGVydj1DMz1BOQo+PTIwCj4gTGUgbWVyY3JlZGkgMjAgc2VwdGVtYnJlIDIwMTcsIDIyOjQ4OjE1IENFU1QgQmVuZWRpa3QgUml0dGVyIGEgPUMzPUE5Y3JpPQp0IDoKPj4gSGksCj4+PTIwCj4+IGFzIGZhciBhcyBJIHVuZGVyc3RhbmQgaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGNhbGwgbXZuCj4+IGRlcGVuZGVuY3k6Z28tb2ZmbGluZSBhbmQgZnJvbSB0aGVyZSBvbiB3b3JrIGluIG9mZmxpbmUgbW9kZSAobXZuID0KLW8pLj0yMAo+PiBJPUUyPTgwPTk5dmUgcHV0IGEgbWluaW1hbCBleGFtcGxlIHRvZ2V0aGVyIFsxXSB0aGF0IGRlbW9uc3RyYXRlcyA9CnRoYXQgdGhpcwo+PiBjdXJyZW50bHkgZG9lcyBub3Qgd29yay4gQW0gSSBtaXNzaW5nIGFueXRoaW5nPwo+Pj0yMAo+PiBUaGFuayB5b3UhCj4+IEJlbmVkaWt0Cj4+PTIwCj4+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vYnJpdHRlci9kZXBlbmRlbmN5LXBsdWdpbi1idWcKPj49MjAKPj49MjAKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj0yMAo+PTIwCj49MjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj0yMAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDIzOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgT2N0IDE0IDEyOjEyOjQxIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDIzOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA2MTRFMDEwQjhFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMTQgT2N0IDIwMTcgMTI6MTI6NDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0NDA4OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNCBPY3QgMjAxNyAxMjoxMjo0MSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDM5OTAgaW52b2tlZCBieSB1aWQgNTAwKTsgMTQgT2N0IDIwMTcgMTI6MTI6NDAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0Mzk3OSBpbnZva2VkIGJ5IHVpZCA5OSk7IDE0IE9jdCAyMDE3IDEyOjEyOjQwIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDE0IE9jdCAyMDE3IDEyOjEyOjQwICswMDAwClJlY2VpdmVkOiBmcm9tIGJlbmVkaWt0cy1tYnAubG9jYWwgKGRzbGItMDg4LTA2OS0yNDctMDA5LjA4OC4wNjkucG9vbHMudm9kYWZvbmUtaXAuZGUgWzg4LjY5LjI0Ny45XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDIzRTUzMUEwMDJCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAxNCBPY3QgMjAxNyAxMjoxMjozOCArMDAwMCAoVVRDKQpGcm9tOiBCZW5lZGlrdCBSaXR0ZXIgPGJyaXR0ZXJAYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOwoJY2hhcnNldD11dGYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCk1pbWUtVmVyc2lvbjogMS4wIChNYWMgT1MgWCBNYWlsIDExLjAgXCgzNDQ1LjEuN1wpKQpTdWJqZWN0OiBSZTogZGVwZW5kZW5jeTpnby1vZmZsaW5lIGJyb2tlbj8KRGF0ZTogU2F0LCAxNCBPY3QgMjAxNyAxNDoxMjozNCArMDIwMApSZWZlcmVuY2VzOiA8NDk1OTUyMkEtMjA5MC00MjM5LTgyMzMtRTMyMDAwREU5QTVCQGFwYWNoZS5vcmc+CiA8Mzk4MDc3My5NZWpHQWFCMXFvQGdpZ2E+IDxEMkZGMEY2Ni1GNzhELTQzMjgtOUIyOS01MzRCOUUxRkMyMDNAYXBhY2hlLm9yZz4KIDwxODg3ODI2LlY0R1d2bWcwM25AZ2lnYT4gPEI1MzlBODY2LTMxOUUtNEJGNy05NjExLTI4N0E4NkVBMzYzRUBhcGFjaGUub3JnPgogPENBS3VWekJTS1BhZS1SZzYzYVZIPThNUE16UnNmMlZCdys5T09UT2J3WStPb1Mremg1QUBtYWlsLmdtYWlsLmNvbT4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Q0FLdVZ6QlNLUGFlLVJnNjNhVkg9OE1QTXpSc2YyVkJ3KzlPT1RPYndZK09vUyt6aDVBQG1haWwuZ21haWwuY29tPgpNZXNzYWdlLUlkOiA8RTBBQkNDREEtRjZGQi00RkI0LUFGM0EtMDQ5MTgzOUI0NkIyQGFwYWNoZS5vcmc+ClgtTWFpbGVyOiBBcHBsZSBNYWlsICgyLjM0NDUuMS43KQoKSGVsbG8sCgo+IEFtIDEzLjEwLjIwMTcgdW0gMjE6MzIgc2NocmllYiBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+Ogo+PTIwCj4gVGhpcyBleGNlcHRpb24gaXMgZXhwZWN0ZWQuCj4gVXNlIHBsdWdpbkdyb3VwIGluIHNldHRpbmdzLnhtbCBvciB0cnkgdGhpczoKPiBvcmcuY29kZWhhdXMubW9qbzp0aWR5OjEuMC4wOmNoZWNrCj4gb3IKPiBvcmcuY29kZWhhdXMubW9qbzp0aWR5LW1hdmVuLXBsdWdpbjoxLjAuMDpjaGVjawo+PTIwCj4gSSBkb24ndCBrbm93IHdoYXQgZHVtbXkuamFyIGhhcyB0byBkbyB3aXRoIHRpZHkgcGx1Z2luLCBpdCdzIGludGVybmFsID0KY29kZQo+IGluIHN1cmVmaXJlIGR1ZSB0byBNMiBBUEkgYW5kIHRpZHkgc2hvdWxkIG5vdCBiZSBpbmZsdWVuY2VkIGJ5LgoKVGhlcmUgYXJlIHRvIGRpc3RpbmN0IGlzc3VlczoKCjEpIHN1cmVmaXJlIGRvZXMgc29tZSB0cmlja2VyeSB3aGljaCBjYW4gbm90IGJlIHJlc29sdmVkIGJ5IHRoZSA9CmRlcGVuZGVuY3kgcGx1Z2luLgoyKSB0aGUgdGlkeSBwbHVnaW4gZG9lcyBub3Qgd29yayBpbiBvZmZsaW5lIG1vZGUsIGV2ZW4gaWYgZGVwZW5kZW5jaWVzID0KaGF2ZSBiZWVuIGRvd25sb2FkZWQgYmVmb3JlLiBXaHkgZG8gSSBoYXZlIHRvIGRlZmluZSB0aGUgcGx1Z2luID0KZXhwbGljaXRseSB0byB3b3JrIGluIG9mZmxpbmUgbW9kZT8gSXQgZG9lcyB3b3JrIGluIG9ubGluZSBtb2RlLgoKUmVnYXJkcywKQmVuZWRpa3QKCj49MjAKPiBDaGVlcnMKPiBUaWJvcgo+PTIwCj4gT24gRnJpLCBPY3QgMTMsIDIwMTcgYXQgNjozNiBQTSwgQmVuZWRpa3QgUml0dGVyIDxicml0dGVyQGFwYWNoZS5vcmc+ID0Kd3JvdGU6Cj49MjAKPj4gSGVsbG8sCj4+PTIwCj4+PiBBbSAwOC4xMC4yMDE3IHVtIDE1OjU0IHNjaHJpZWIgSGVydj1DMz1BOSBCT1VURU1ZID0KPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj46Cj4+Pj0yMAo+Pj4gTGUgZGltYW5jaGUgOCBvY3RvYnJlIDIwMTcsIDE1OjM3OjU0IENFU1QgQmVuZWRpa3QgUml0dGVyIGEgPUMzPUE5Y3JpdD0KIDoKPj4+PiBIZWxsbyBIZXJ2PUMzPUE5Cj4+Pj49MjAKPj4+Pj4gVGhlbiBJIGFkZGVkIGEgcGx1Z2luTWFuYWdlbWVudCBzZWN0aW9uIHRvIHNlbGVjdCB2ZXJzaW9uIDMuMC4yID0KYW5kCj4+IHJlLXJhbgo+Pj4+PiB0aGUgdGVzdDogeW91J2xsIHNlZSB0aGUgb3V0cHV0IGlzIGNvbXBsZXRlbHkgZGlmZmVyZW50Lgo+Pj4+Pj0yMAo+Pj4+PiBBbmQgdGhlcmUgaXMgbm8gaXNzdWUgYW55IG1vcmUKPj4+Pj0yMAo+Pj4+IFRoYW5rIHlvdSBzbyBtdWNoLCB5b3UgdG9vayB0aGUgdGltZSB0byBpbnZlc3RpZ2F0ZSB0aGlzIGlzc3VlISA9ClJlYWxseQo+PiBtdWNoCj4+Pj4gYXBwcmVjaWF0ZWQuIE5vdyBJIHdvbmRlciwgd2h5IE1hdmVuIHVzZXMgYW4gb3V0ZGF0ZWQgdmVyc2lvbiBvZiA9CnRoZQo+Pj4+IGRlcGVuZGVuY3kgcGx1Z2luLiBJcyB0aGlzIGEgcHJvYmxlbSB3aXRoIHRoZSBzdXBlciBwb20/Cj4+PiB0aGlzIGlzIGEgY2hvaWNlIHRvIGtlZXAgc3RhYmlsaXR5Ogo+Pj4gaWYgb25lIGRvd25sb2FkcyBkZXBlbmRlbmNpZXMgdXNpbmcgTWF2ZW4gMy4wLjUgdGhlbiBhIGZldyBkYXlzID0KbGF0ZXIKPj4gYnVpbGRzCj4+PiBvZmZsaW5lIHdpdGggTWF2ZW4gMy41LCBoZSBkb2VzIG5vdCBoYXZlIGFueSBpc3N1ZSAoYW5kIGJsYW1lCj4+IGRlcGVuZGVuY3ktcGx1Z2luKQo+Pj49MjAKPj4+IHJlbWVtYmVyIHRoZSBnb29kIHByYWN0aWNlOiBkZWZpbmUgeW91ciBwbHVnaW4gdmVyc2lvbnMsIGVpdGhlciBpbiA9CnlvdXIKPj4gcG9tIG9yCj4+PiBieSB1c2luZyBhIHBhcmVudCB0aGF0IGRvZXMgdGhlIGpvYgo+Pj49MjAKPj4+Pj0yMAo+Pj4+IEZ1cnRoZXJtb3JlIEk9RTI9ODA9OTl2ZSBub3RpY2VkLCB0aGF0IG12biAtbyB0ZXN0IHN0aWxsIGRvZXMgbm90ID0Kd29yaywgYmVjYXVzZQo+PiBzb21lCj4+Pj4gc3VyZWZpcmUgZGVwZW5kZW5jaWVzIGFyZSBtaXNzaW5nOgo+Pj4+PTIwCj4+Pj4gW0VSUk9SXSBGYWlsZWQgdG8gZXhlY3V0ZSBnb2FsCj4+Pj4gb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zOm1hdmVuLXN1cmVmaXJlLXBsdWdpbjoyLjEyLjQ6dGVzdAo+PiAoZGVmYXVsdC10ZXN0KQo+Pj4+IG9uIHByb2plY3QgZGVwZW5kZW5jeS1wbHVnaW4tYnVnOiBVbmFibGUgdG8gZ2VuZXJhdGUgY2xhc3NwYXRoOgo+Pj4+ID0Kb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5yZXNvbHZlci5NdWx0aXBsZUFydGlmYWN0c05vdEZvdW5kRXhjZXB0aW9uOgo+Pj4+IE1pc3Npbmc6IFtFUlJPUl0gLS0tLS0tLS0tLQo+Pj4+IFtFUlJPUl0gMSkgb3JnLmFwYWNoZS5tYXZlbi5zdXJlZmlyZTpzdXJlZmlyZS1qdW5pdDM6amFyOjIuMTIuNAo+Pj4+IFtFUlJPUl0KPj4+PiBbRVJST1JdIFRyeSBkb3dubG9hZGluZyB0aGUgZmlsZSBtYW51YWxseSBmcm9tIHRoZSBwcm9qZWN0IHdlYnNpdGUuCj4+Pj4gW0VSUk9SXQo+Pj4+IFtFUlJPUl0gVGhlbiwgaW5zdGFsbCBpdCB1c2luZyB0aGUgY29tbWFuZDoKPj4+PiBbRVJST1JdIG12biBpbnN0YWxsOmluc3RhbGwtZmlsZSA9Ci1EZ3JvdXBJZD0zRG9yZy5hcGFjaGUubWF2ZW4uc3VyZWZpcmUKPj4+PiAtRGFydGlmYWN0SWQ9M0RzdXJlZmlyZS1qdW5pdDMgLUR2ZXJzaW9uPTNEMi4xMi40IC1EcGFja2FnaW5nPTNEamFyCj4+Pj4gLURmaWxlPTNEL3BhdGgvdG8vZmlsZSBbRVJST1JdCj4+Pj4gW0VSUk9SXSBBbHRlcm5hdGl2ZWx5LCBpZiB5b3UgaG9zdCB5b3VyIG93biByZXBvc2l0b3J5IHlvdSBjYW4gPQpkZXBsb3kKPj4gdGhlCj4+Pj4gZmlsZSB0aGVyZTogW0VSUk9SXSBtdm4gZGVwbG95OmRlcGxveS1maWxlCj4+Pj4gLURncm91cElkPTNEb3JnLmFwYWNoZS5tYXZlbi5zdXJlZmlyZSAtRGFydGlmYWN0SWQ9M0RzdXJlZmlyZS1qdW5pdDMKPj4+PiAtRHZlcnNpb249M0QyLjEyLjQgLURwYWNrYWdpbmc9M0RqYXIgLURmaWxlPTNEL3BhdGgvdG8vZmlsZSA9Ci1EdXJsPTNEW3VybF0KPj4+PiAtRHJlcG9zaXRvcnlJZD0zRFtpZF0gW0VSUk9SXQo+Pj4+IFtFUlJPUl0gUGF0aCB0byBkZXBlbmRlbmN5Ogo+Pj4+IFtFUlJPUl0gMSkgZHVtbXk6ZHVtbXk6amFyOjEuMAo+Pj4+IFtFUlJPUl0gMikgb3JnLmFwYWNoZS5tYXZlbi5zdXJlZmlyZTpzdXJlZmlyZS1qdW5pdDM6amFyOjIuMTIuNAo+Pj4+IFtFUlJPUl0KPj4+PiBbRVJST1JdIC0tLS0tLS0tLS0KPj4+PiBbRVJST1JdIDEgcmVxdWlyZWQgYXJ0aWZhY3QgaXMgbWlzc2luZy4KPj4+PiBbRVJST1JdCj4+Pj4gW0VSUk9SXSBmb3IgYXJ0aWZhY3Q6Cj4+Pj4gW0VSUk9SXSBkdW1teTpkdW1teTpqYXI6MS4wCj4+Pj4gW0VSUk9SXQo+Pj4+IFtFUlJPUl0gZnJvbSB0aGUgc3BlY2lmaWVkIHJlbW90ZSByZXBvc2l0b3JpZXM6Cj4+Pj4gW0VSUk9SXSBjZW50cmFsIChodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIsID0KcmVsZWFzZXM9M0R0cnVlLAo+Pj4+IHNuYXBzaG90cz0zRGZhbHNlKSBbRVJST1JdIC0+IFtIZWxwIDFdCj4+Pj4gW0VSUk9SXQo+Pj4+IFtFUlJPUl0gVG8gc2VlIHRoZSBmdWxsIHN0YWNrIHRyYWNlIG9mIHRoZSBlcnJvcnMsIHJlLXJ1biBNYXZlbiA9CndpdGgKPj4gdGhlIC1lCj4+Pj4gc3dpdGNoLiBbRVJST1JdIFJlLXJ1biBNYXZlbiB1c2luZyB0aGUgLVggc3dpdGNoIHRvIGVuYWJsZSBmdWxsID0KZGVidWcKPj4+PiBsb2dnaW5nLiBbRVJST1JdCj4+Pj4gW0VSUk9SXSBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXJyb3JzIGFuZCBwb3NzaWJsZSA9CnNvbHV0aW9ucywKPj4gcGxlYXNlCj4+Pj4gcmVhZCB0aGUgZm9sbG93aW5nIGFydGljbGVzOiBbRVJST1JdIFtIZWxwIDFdCj4+Pj4gPQpodHRwOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvTUFWRU4vTW9qb0V4ZWN1dGlvbkV4Y2VwdGlvbgo+Pj4+PTIwCj4+Pj4gU2luY2UgdGhlcmUgYXJlIG9ubHkgYSBmZXcgZGVwZW5kZW5jaWVzIG1pc3NpbmcsIEkgd2lsbCBydW4gdGVzdCA9Cm5vdCBpbgo+Pj4+IG9mZmxpbmUgbW9kdXMgb24gbXkgQ0kgc2VydmVyLiBCdXQgSSB3b25kZXIgd2hldGhlciB0aGlzIGlzIGEgYnVnLgo+Pj4gSSdsbCBoYXZlIGEgbG9vayBhdCB0aGlzIG9uZSBhbmQgcmVwb3J0Cj4+PTIwCj4+IEkgbWFkZSBhbm90aGVyIGludGVyZXN0aW5nIG9ic2VydmF0aW9uOgo+Pj0yMAo+PiBtdm4gdGlkeTpjaGVjayB3b3Jrcywgd2hpbGUgbXZuIC1vIHRpZHk6Y2hlY2sgZG9lcyBub3Qgd29yay4gSXQgZmFpbHMgPQp3aXRoOgo+Pj0yMAo+PiBbSU5GT10gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IC0tLS0tLS0tLS0tLQo+PiBbSU5GT10gQlVJTEQgRkFJTFVSRQo+PiBbSU5GT10gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IC0tLS0tLS0tLS0tLQo+PiBbSU5GT10gVG90YWwgdGltZTogMC42NDAgcwo+PiBbSU5GT10gRmluaXNoZWQgYXQ6IDIwMTctMTAtMTNUMTg6MzQ6MzIrMDI6MDAKPj4gW0lORk9dIEZpbmFsIE1lbW9yeTogMTNNLzMwOU0KPj4gW0lORk9dIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiAtLS0tLS0tLS0tLS0KPj4gW0VSUk9SXSBObyBwbHVnaW4gZm91bmQgZm9yIHByZWZpeCAndGlkeScgaW4gdGhlIGN1cnJlbnQgcHJvamVjdCBhbmQgPQppbgo+PiB0aGUgcGx1Z2luIGdyb3VwcyBbb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zLCBvcmcuY29kZWhhdXMubW9qb10gPQphdmFpbGFibGUKPj4gZnJvbSB0aGUgcmVwb3NpdG9yaWVzIFtsb2NhbCA9CigvVXNlcnMvYmVuZS93b3Jrc3BhY2UvZ2l0aHViL2RlcGVuZGVuY3ktcGx1Z2luLWJ1Zy8ubTIpLAo+PiBjZW50cmFsIChodHRwczovL3JlcG8ubWF2ZW4uYXBhY2hlLm9yZy9tYXZlbjIpXSAtPiBbSGVscCAxXQo+PiBbRVJST1JdCj4+IFtFUlJPUl0gVG8gc2VlIHRoZSBmdWxsIHN0YWNrIHRyYWNlIG9mIHRoZSBlcnJvcnMsIHJlLXJ1biBNYXZlbiB3aXRoID0KdGhlCj4+IC1lIHN3aXRjaC4KPj4gW0VSUk9SXSBSZS1ydW4gTWF2ZW4gdXNpbmcgdGhlIC1YIHN3aXRjaCB0byBlbmFibGUgZnVsbCBkZWJ1ZyA9CmxvZ2dpbmcuCj4+IFtFUlJPUl0KPj4gW0VSUk9SXSBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXJyb3JzIGFuZCBwb3NzaWJsZSBzb2x1dGlvbnMsCj4+IHBsZWFzZSByZWFkIHRoZSBmb2xsb3dpbmcgYXJ0aWNsZXM6Cj4+IFtFUlJPUl0gW0hlbHAgMV0gaHR0cDovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOLwo+PiBOb1BsdWdpbkZvdW5kRm9yUHJlZml4RXhjZXB0aW9uCj4+PTIwCj4+IENoZWVycywKPj4gQmVuZWRpa3QKPj49MjAKPj4+PTIwCj4+PiBSZWdhcmRzLAo+Pj49MjAKPj4+IEhlcnY9QzM9QTkKPj4+PTIwCj4+Pj49MjAKPj4+PiBSZWdhcmRzLAo+Pj4+IEJlbmVkaWt0Cj4+Pj49MjAKPj4+Pj4gUmVnYXJkcywKPj4+Pj49MjAKPj4+Pj4gSGVydj1DMz1BOQo+Pj4+Pj0yMAo+Pj4+PiBMZSBtZXJjcmVkaSAyMCBzZXB0ZW1icmUgMjAxNywgMjI6NDg6MTUgQ0VTVCBCZW5lZGlrdCBSaXR0ZXIgYSA9Cj1DMz1BOWNyaXQgOgo+Pj4+Pj4gSGksCj4+Pj4+Pj0yMAo+Pj4+Pj4gYXMgZmFyIGFzIEkgdW5kZXJzdGFuZCBpdCBzaG91bGQgYmUgcG9zc2libGUgdG8gY2FsbCBtdm4KPj4+Pj4+IGRlcGVuZGVuY3k6Z28tb2ZmbGluZSBhbmQgZnJvbSB0aGVyZSBvbiB3b3JrIGluIG9mZmxpbmUgbW9kZSAobXZuID0KLW8pLgo+Pj4+Pj4gST1FMj04MD05OXZlIHB1dCBhIG1pbmltYWwgZXhhbXBsZSB0b2dldGhlciBbMV0gdGhhdCBkZW1vbnN0cmF0ZXMgPQp0aGF0IHRoaXMKPj4+Pj4+IGN1cnJlbnRseSBkb2VzIG5vdCB3b3JrLiBBbSBJIG1pc3NpbmcgYW55dGhpbmc/Cj4+Pj4+Pj0yMAo+Pj4+Pj4gVGhhbmsgeW91IQo+Pj4+Pj4gQmVuZWRpa3QKPj4+Pj4+PTIwCj4+Pj4+PiBbMV0gaHR0cHM6Ly9naXRodWIuY29tL2JyaXR0ZXIvZGVwZW5kZW5jeS1wbHVnaW4tYnVnCj4+Pj4+Pj0yMAo+Pj4+Pj49MjAKPj4+Pj4+ID0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Pj0yMAo+Pj4+PiA9Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Pj49MjAKPj4+PiA9Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj49MjAKPj4+PTIwCj4+Pj0yMAo+Pj4gPQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+PTIwCj4+PTIwCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+PTIwCj4+PTIwCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MTc2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBPY3QgIDcgMjA6Mjc6MTggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTc2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDNCMDA2MTA2N0QKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgNyBPY3QgMjAxNyAyMDoyNzoxOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDMwODI2IGludm9rZWQgYnkgdWlkIDUwMCk7IDcgT2N0IDIwMTcgMjA6Mjc6MTcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMwNzQ5IGludm9rZWQgYnkgdWlkIDUwMCk7IDcgT2N0IDIwMTcgMjA6Mjc6MTcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMDczNyBpbnZva2VkIGJ5IHVpZCA5OSk7IDcgT2N0IDIwMTcgMjA6Mjc6MTcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA3IE9jdCAyMDE3IDIwOjI3OjE3ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgOEZBMjNDQTQyMwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgIDcgT2N0IDIwMTcgMjA6Mjc6MTYgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiA2LjE3MQpYLVNwYW0tTGV2ZWw6ICoqKioqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Ni4xNzEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBES0lNX1ZBTElEX0FVPS0wLjEsCglLQU1fQVNDSUlfRElWSURFUlM9MC44LCBLQU1fTlVNU1VCSkVDVD0wLjUsIFNQRl9IRUxPX1BBU1M9LTAuMDAxLAoJU1BGX1NPRlRGQUlMPTAuOTcyLCBVUklCTF9CTEFDSz00XSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgxMDI0LWJpdCBrZXkpIGhlYWRlci5kPWhvbnRvbi5vcmcKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGJ0V0pTTFpCRU90MSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVNhdCwgIDcgT2N0IDIwMTcgMjA6Mjc6MTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gYml6NDYuaW5tb3Rpb25ob3N0aW5nLmNvbSAoYml6NDYuaW5tb3Rpb25ob3N0aW5nLmNvbSBbMjA1LjEzNC4yNTAuMTYwXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEEzRjBDNUZEQ0UKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDIwOjI3OjEzICswMDAwIChVVEMpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgcT1kbnMvdHh0OyBjPXJlbGF4ZWQvcmVsYXhlZDsgZD1ob250b24ub3JnOwoJIHM9ZGVmYXVsdDsgaD1UbzpJbi1SZXBseS1UbzpSZWZlcmVuY2VzOk1lc3NhZ2UtSWQ6U3ViamVjdDpEYXRlOk1pbWUtVmVyc2lvbjoKCUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6Q29udGVudC1UeXBlOkZyb206U2VuZGVyOlJlcGx5LVRvOkNjOkNvbnRlbnQtSUQ6CglDb250ZW50LURlc2NyaXB0aW9uOlJlc2VudC1EYXRlOlJlc2VudC1Gcm9tOlJlc2VudC1TZW5kZXI6UmVzZW50LVRvOlJlc2VudC1DYwoJOlJlc2VudC1NZXNzYWdlLUlEOkxpc3QtSWQ6TGlzdC1IZWxwOkxpc3QtVW5zdWJzY3JpYmU6TGlzdC1TdWJzY3JpYmU6CglMaXN0LVBvc3Q6TGlzdC1Pd25lcjpMaXN0LUFyY2hpdmU7CgliaD1YQlVhU1RTWHUzbGFBTmJLNlN0N1RYQThlRk1nVEo1eXpYRkxiYnp3bGZvPTsgYj1JY0hLczZuSjVGL3BVS0hjak5Hd3k2NVR0dgoJZGtBek9sUnc0NXlJS21RYm1VZFFJOFpPeFkwOFdvWEYvN2lJdS9yZkpuN1d2RXM4bkEwK3pYbjlxVm92STBvOHZGWGxOT0pYTGtZc1YKCTRmbzBPUUxoZEpTOWZIcnVuaDhYSkpzUWVEbVp4WndRdzN2ZHZkQ09sNHE4c2lpQjZNMVhOQUlmaEMwOW9WMkRPalhZPTsKUmVjZWl2ZWQ6IGZyb20gWzEwNy43Ny4xNjQuMjldIChwb3J0PTYwMjgyIGhlbG89WzEwLjk3LjUwLjE3Nl0pCglieSBiaXo0Ni5pbm1vdGlvbmhvc3RpbmcuY29tIHdpdGggZXNtdHBzYSAoVExTdjEuMjpFQ0RIRS1SU0EtQUVTMjU2LUdDTS1TSEEzODQ6MjU2KQoJKEV4aW0gNC44OSkKCShlbnZlbG9wZS1mcm9tIDxjaGFzQGhvbnRvbi5vcmc+KQoJaWQgMWUwdmcxLTAwMDJLYy00VgoJZm9yIGRldkBtYXZlbi5hcGFjaGUub3JnOyBTYXQsIDA3IE9jdCAyMDE3IDEzOjI3OjA3IC0wNzAwCkZyb206IENoYXMgSG9udG9uIDxjaGFzQGhvbnRvbi5vcmc+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsKCWNoYXJzZXQ9dXRmLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpNaW1lLVZlcnNpb246IDEuMCAoMS4wKQpEYXRlOiBTYXQsIDcgT2N0IDIwMTcgMTM6MjY6MjAgLTA3MDAKU3ViamVjdDogUmU6IEplbmtpbnMgYW5kIE1hdmVuIDMuMC41IG9yIEpESyA3Ck1lc3NhZ2UtSWQ6IDxFMkQyRkQwMy02MjE0LTQyMTAtOTQ1OS05N0FGMjNGMDBCNEVAaG9udG9uLm9yZz4KUmVmZXJlbmNlczogPDEwNTQ0NjE1LkI0aE8zUG52RXpAZ2lnYT4gPENBS3VWekJSMncrZms1UzN1bkJRUjdCNTRlVTgwQ1FRYUM2NHV5WTVYTkVDSG9TSDZHZ0BtYWlsLmdtYWlsLmNvbT4gPENBS3VWekJRU2dSWFdWRWc4Q2dyWmRzTkd3ZFRmTnRjNHFXdDRHbnlKRG9vaXlhcjJOQUBtYWlsLmdtYWlsLmNvbT4gPDE5MzQ5ODMueFJNOEt5SWltaUBnaWdhPiA8Q0FGTkNVLV81Q2ZhUE1MMmZ3Wis3dEZFQVpKVCt3WkJEeDZiPS03RTRKUktBbT0tWWdnQG1haWwuZ21haWwuY29tPgpJbi1SZXBseS1UbzogPENBRk5DVS1fNUNmYVBNTDJmd1orN3RGRUFaSlQrd1pCRHg2Yj0tN0U0SlJLQW09LVlnZ0BtYWlsLmdtYWlsLmNvbT4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClgtTWFpbGVyOiBpUGhvbmUgTWFpbCAoMTVBNDAyKQpYLU91dEdvaW5nLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMgpYLUFudGlBYnVzZTogVGhpcyBoZWFkZXIgd2FzIGFkZGVkIHRvIHRyYWNrIGFidXNlLCBwbGVhc2UgaW5jbHVkZSBpdCB3aXRoIGFueSBhYnVzZSByZXBvcnQKWC1BbnRpQWJ1c2U6IFByaW1hcnkgSG9zdG5hbWUgLSBiaXo0Ni5pbm1vdGlvbmhvc3RpbmcuY29tClgtQW50aUFidXNlOiBPcmlnaW5hbCBEb21haW4gLSBtYXZlbi5hcGFjaGUub3JnClgtQW50aUFidXNlOiBPcmlnaW5hdG9yL0NhbGxlciBVSUQvR0lEIC0gWzQ3IDEyXSAvIFs0NyAxMl0KWC1BbnRpQWJ1c2U6IFNlbmRlciBBZGRyZXNzIERvbWFpbiAtIGhvbnRvbi5vcmcKWC1HZXQtTWVzc2FnZS1TZW5kZXItVmlhOiBiaXo0Ni5pbm1vdGlvbmhvc3RpbmcuY29tOiBhdXRoZW50aWNhdGVkX2lkOiBjaGFzK2hvbnRvbi5vcmcvb25seSB1c2VyIGNvbmZpcm1lZC92aXJ0dWFsIGFjY291bnQgbm90IGNvbmZpcm1lZApYLUF1dGhlbnRpY2F0ZWQtU2VuZGVyOiBiaXo0Ni5pbm1vdGlvbmhvc3RpbmcuY29tOiBjaGFzQGhvbnRvbi5vcmcKWC1Tb3VyY2U6IApYLVNvdXJjZS1BcmdzOiAKWC1Tb3VyY2UtRGlyOiAKCldoYXQgYXJlIHRoZSBjb25jZXJucyB3aXRoIHNlcGFyYXRlIGdpdCByZXBvc2l0b3J5IHBlciBhcnRpZmFjdD8gIElzIGl0IHRoZSBtPQpvbm9saXRoaWMgYnVpbGQ/CgpDaGFzCgo+IE9uIE9jdCA3LCAyMDE3LCBhdCAxOjIwIFBNLCBBcm5hdWQgSD1DMz1BOXJpdGllciA8YWhlcml0aWVyQGdtYWlsLmNvbT4gd3JvPQp0ZToKPj0yMAo+ICsxCj49MjAKPj4gT24gU2F0LCBPY3QgNywgMjAxNyBhdCA3OjExIFBNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj0KPiB3cm90ZToKPj49MjAKPj4gd2UgY2FuIHN0YXJ0IHdpdGggbmFtaW5nIHRoZSBmdXR1cmUgZ2l0IHJlcG9zOiBJIHN1cHBvc2UgYWRkaW5nIGEgdGFibGUgYT0KdAo+PiB0aGUKPj4gZW5kIG9mIHRoZSBHaXQgbWlncmF0aW9uIFdpa2kgcGFnZSBjYW4gZ2l2ZSBhIGdvb2QgdmlldyBvZiB0aGUgcmVzdWx0Cj4+ICh3aXRoIDc4Cj4+IG5ldyByZXBvcyArIGV4aXN0aW5nIDcgcmVwb3MgKyB0aGUgNiBpbiBtaWdyYXRpb24gaWYgbm9ib2R5IG9iamVjdHMgPTNEIDk9CjEKPj4gcmVwb3MpCj4+PTIwCj4+IG9uY2Ugd2UncmUgYWxsIGNvbnZpbmNlZCBvZiB0aGUgdGFyZ2V0LCB3ZSdsbCBzZWUgaG93IHRvIHdvcmsgd2l0aCBpbmZyYQo+PiBhbmQgSSBzdXBwb3NlIHRoZXkgYWxyZWFkeSBoYXZlIHRoZSByaWdodCBhdXRob3JzIGxpc3QsIGdpdmVuIHRoZSBjdXJyZW50PQoKPj4gbWlycm9ycyBhbHJlYWR5IHB1Ymxpc2hlZAo+Pj0yMAo+PiBSZWdhcmRzLAo+Pj0yMAo+PiBIZXJ2PUMzPUE5Cj4+PTIwCj4+IExlIHNhbWVkaSA3IG9jdG9icmUgMjAxNywgMTY6MDU6NDUgQ0VTVCBUaWJvciBEaWdhbmEgYSA9QzM9QTljcml0IDoKPj4+IEhlcnZlLAo+Pj49MjAKPj4+IEkgdGhpbmssIGZpcnN0IG9mIGFsbCwgd2Ugc2hvdWxkIHdyaXRlIGEgbGlzdCB3aXRoIGV4YWN0IG5hbWVzIG9mIGdpdAo+Pj4gcmVwb3NpdG9yaWVzIGZvciB3aGljaCBJTkZSQSB3aWxsIGNyYXRlIHRoZW0gaW4KPj4+IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnL3JlcG9zL2FzZgo+Pj4gYW5kIG1pcnJvciBpbiBnaXRodWIuY29tL2FwYWNoZQo+Pj49MjAKPj4+IEFuZCB0aGVuIHRoZSBhdXRob3JzLnR4dC4KPj4+PTIwCj4+PiBJbiBteSBjYXNlIEkgZGlkIG5vdCBtaWdyYXRlIHRhZ3MgYW5kIGJyYW5jaGVzIHdoaWNoIGlzIG15IHByb2JsZW0gZ2l2ZW49Cgo+PiBpbgo+Pj4gbXkgZXhhbXBsZSB3aXRoIHByZXZpb3VzIGUtbWFpbC4KPj4+PTIwCj4+PiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDM6NDggUE0sIFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4KPj4gd3JvdGU6Cj4+Pj4gSGVydmUsCj4+Pj4gSSB0aGluayBtYWtpbmcgdGhlIHRhZyBhcyBJIHdhbnRlZCB3b3VsZCBub3QgYmUgcG9zc2libGUgaW4gZ2l0Lgo+Pj4+PTIwCj4+Pj4gTGV0J3MgbWFrZSBpdCB3aXRoIGFsbCA3OCBwcm9qZWN0cy4KPj4+PiBJbiAyMDE2IEkgbWlncmF0ZWQgbXkgc3ZuIHByb2plY3QgImF1ZGl0IiBsb2NhdGVkIGluIHN1Yi1mb2xkZXIgYmVoaW5kCj4+Pj4gdHJ1bmsgKHRydW5rL2xpYnMvYXVkaXQpIHRvIGdpdCB3aGljaCBpcyBleGFjdGx5IHdoYXQgd2UgbmVlZCB0byBkbyBpbgo+Pj4+IEFTRi4KPj4+Pj0yMAo+Pj4+IEluIG91ciBjYXNlIHRoZSBjb21tYW5kcyB3b3VsZCBiZSA5OSUgdGhlIHNhbWUuIFRoZSAxJSBpcyB0aGUgc291cmNlCj4+IFNWTgo+Pj4+IFVSTCBhbmQgdGFyZ2V0IEdpdEh1YiBVUkwuIFRoYXQncyBhbGwuIFRoZW4gaWYgd2UgcHJvdmlkZSBJTkZSQSB3aXRoCj4+IGJ1bmNoCj4+Pj4gb2YgY29tbWFuZHMgbGlrZSB0aGVzZSB0aGVuIHRoZXkgd2lsbCBvbmx5IGV4ZWN1dGUgdGhlbSB3aXRoIHRoZWlyCj4+Pj4gcGVybWlzc2lvbnMuCj4+Pj4gSSBkbyBub3QgdGhpbmsgdGhleSB3aWxsIGdpdmUgbWUgYWRtaW4gcGVybWlzc2lvbnMgdG8gbWFrZSBpdC4KPj4+Pj0yMAo+Pj4+IGdpdCBzdm4gY2xvbmUgLS1uby1tZXRhZGF0YSAtLWF1dGhvcnMtZmlsZT0zREU6XCphdXRob3JzLnR4dCogaHR0cDovLwo+Pj4+ICoqKi9zdm4vKioqLyp0cnVuay9saWJzL2F1ZGl0IGF1ZGl0Kgo+Pj4+IGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5uYW1lICIqKiogKioqIgo+Pj4+IGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5lbWFpbCAiKioqQCoqKi4qKioiCj4+Pj4gZ2l0IHJlbW90ZSBhZGQgb3JpZ2luIGh0dHBzOi8vKioqQGdpdGh1Yi5jb20vYXBhY2hlLwo+PiAqbWF2ZW4tY2xlYW4tcGx1Z2luKgo+Pj4+IC5naXQKPj4+PiBnaXQgcHVzaCAtdSBvcmlnaW4gLS1hbGwKPj4+Pj0yMAo+Pj4+IEkgb2JzZXJ2ZWQgdGhlICphdXRob3JzLnR4dCogZnJvbSBjb21tYW5kCj4+Pj4gKnN2biBsb2cgLXEqCj4+Pj4gRWFjaCBwZXJzb24gZnJvbSBiZXR3ZWVuIGZpcnN0IHR3byBwaXBlcywgZS5nLjoKPj4+PiByMTIzNDU2NyB8IHRpYm9yZGlnYW5hIHwgMjAxNS0xMC0xOSAwMjoyMDowMAo+Pj4+PTIwCj4+Pj4gRXZlcnkgZGV2ZWxvcGVyIGFkZGVkIGUtbWFpbCBhbmQgZnVsbCBuYW1lLCBpLmUuOgo+Pj4+IHRpYm9yZGlnYW5hID0zRCBUaWJvciBEaWdhbmEgPHRpYm9yZGlnYW5hQGFwYWNoZS5vcmc+Cj4+Pj4gZXRjLgo+Pj4+PTIwCj4+Pj4gVGhpcyBsaXN0IG9mIHVzZXJzIHdoaWNoIHNob3VsZCBiZSBjcmVhdGVkIGluIHByaW9yIHRvIGNvbnRhY3QgSU5GUkEuCj4+Pj4gTm90IGFsbCB1c2VycyBhcmUgYWN0aXZlIGFmdGVyIHllYXJzIGJ1dCBpdCB3b3VsZCBiZSBuaWNlIHRvIGluY2x1ZGUKPj4gdGhlbQo+Pj4+IHRvby4KPj4+PiBUaGlzIGxpc3Qgb2YgdXNlcnMgaXMgb25lIHRoaW5nIHdoaWNoIGNhbm5vdCBiZSBhdXRvbWF0ZWQhCj4+Pj49MjAKPj4+Pj0yMAo+Pj4+PTIwCj4+Pj49MjAKPj4+PiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDI6NDggUE0sIFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz4KPj4+Pj0yMAo+Pj4+IHdyb3RlOgo+Pj4+PiBJbiBteSBjb21wYW55IEkgaGF2ZSBzdWNoIHNpdHVhdGlvbiBpbiBTVk4uIE1ha2luZyBhIHRhZyBmcm9tCj4+IHN1YmZvbGRlci4KPj4+Pj4gR2l0IGFsd2F5cyBtYWtlcyB0aGUgdGFnIGZyb20gdGhlIHJvb3QsIHJpZ2h0Pwo+Pj4+PiBMZXQncyBnb29nbGUgc29tZXRoaW5nLi4uCj4+Pj4+PTIwCj4+Pj4+IE9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgMjo0NyBQTSwgVGlib3IgRGlnYW5hIDwKPj4gdGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tCj4+Pj4+PTIwCj4+Pj4+PiB3cm90ZToKPj4+Pj4+IEluIG15IGNvbXBhbnkgSSBoYXZlIHN1Y2ggc2l0dWF0aW9uLgo+Pj4+Pj4gTWFraW5nIGEgdGFnIGZyb20gc3ViZm9sZGVyLgo+Pj4+Pj4gR2l0IGFsd2F5cyBtYWtlcyB0aGUgdGFnIGZyb20gdGhlIHJvb3QsIHJpZ2h0Pwo+Pj4+Pj4gTGV0J3MgZ29vZ2xlIHNvbWV0aGluZy4uLgo+Pj4+Pj49MjAKPj4+Pj4+IE9uIFNhdCwgT2N0IDcsIDIwMTcgYXQgMjowNSBQTSwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZT0KZS5mcgo+Pj49MjAKPj4+Pj4+PTIwCj4+Pj4+PiB3cm90ZToKPj4+Pj4+PiB0aGFua3MgZm9yIHlvdXIgaW50ZXJlc3QgYW5kIGZlZWRiYWNrCj4+Pj4+Pj49MjAKPj4+Pj4+PiBMZSBzYW1lZGkgNyBvY3RvYnJlIDIwMTcsIDEyOjAwOjMyIENFU1QgVGlib3IgRGlnYW5hIGEgPUMzPUE5Y3JpdCA6Cj4+Pj4+Pj4+IDc4IGlzIHRvbyBtdWNoLgo+Pj4+Pj4+PTIwCj4+Pj4+Pj4gbm90aWNlIHRoYXQgdGhlcmUgd291bGQgYWxzbyBiZSBhIHF1ZXN0aW9uIG9uIHRoZSBnaXQgcmVwb3MgbmFtaW5nCj4+Pj4+Pj4gY29udmVudGlvbiwKPj4+Pj4+PiB0byBhdm9pZCBmbGF0IDc4IG5hbWVzIGJ1dCBrZWVwIGF0IGxlYXN0IDMgbWVhbmluZ2Z1bCBncm91cHMKPj4gKHBsdWdpbnMsCj4+Pj4+Pj4gc2hhcmVkLAo+Pj4+Pj4+IHJlc291cmNlczogSSB0aGluayB0aGlzIGlzIG5vdCBhYnNvbHV0ZWx5IG5lY2Vzc2FyeSBmb3IgZG94aWEtdG9vbHMpPQoKPj4+Pj4+Pj0yMAo+Pj4+Pj4+PiBUaGVyZSBpcyBubyBwcm9ibGVtIHRvIHRyaWdnZXIgcmVsZWFzZSBvdmVyIHN1Yi1mb2xkZXJzIGFuZCB0YWcgaXQKPj4+Pj4+Pj0yMAo+Pj4+Pj4+IHdpdGgKPj4+Pj4+Pj0yMAo+Pj4+Pj4+PiBwcmVmaXggd2hpY2ggaXMgYWxyZWFkeSBkb25lIGluIFNWTi4KPj4+Pj4+Pj0yMAo+Pj4+Pj4+IGlzIGl0IHN1cHBvcnRlZCBieSBtYXZlbi1yZWxlYXNlIHBsdWdpbiB3aXRoIGdpdD8KPj4+Pj4+Pj0yMAo+Pj4+Pj4+IG5vdGljZSBJIGRpZCBub3Qga25vdyB0aGF0IGdpdCB3YXMgYWJsZSB0byB0YWcgb25seSBhIHN1YnRyZWU6IGJ1dCBJPQoKPj4+Pj4+PiBrbmV3IEkKPj4+Pj4+PiBkb24ndCB5ZXQgdW5kZXJzdGFuZCBldmVyeSBhc3BlY3Qgb2YgZ2l0IG1hZ2ljLi4uIDopCj4+Pj4+Pj49MjAKPj4+Pj4+Pj4gVGhlIENJIGJ1aWxkIGNhbiBhbHdheXMgdHJpZ2dlciB0aGUgcm9vdCBhbmQgSmVua2luc2ZpbGUgd291bGQKPj4gaGF2ZQo+Pj4+Pj4+PiA0MQo+Pj4+Pj4+PiBzdGFnZXMgZm9yIHBsdWdpbnMsIDI2IHN0YWdlcyBmb3IgU2hhcmVkLCBldGMuCj4+Pj4+Pj4+IEl0IGNhbiBiZSBkb25lIGluIEplbmtpbnNmaWxlIGFuZCBzbyB0aGUgc2hlbGwgd291bGQgbm90IHRocm93Cj4+Pj4+Pj49MjAKPj4+Pj4+PiBleGNlcHRpb24KPj4+Pj4+Pj0yMAo+Pj4+Pj4+PiBidXQgc3RhdHVzIHdvdWxkIGJlIHNldCBpbnN0ZWFkIGFuZCBnb2VzIHRvIHRoZSBuZXh0IHN0YWdlLgo+Pj4+Pj4+PiBJIGRvIG5vdCBrbm93IGhvdyB0byBkZXRlY3QgaW4gR2l0U0NNIHdoaWNoIHN1Yi1mb2xkZXIocykgcmVjZWl2ZWQKPj4+Pj4+Pj0yMAo+Pj4+Pj4+IGJ1dCBJCj4+Pj4+Pj49MjAKPj4+Pj4+Pj4gZ3Vlc3MgdGhpcyBjYW4gYmUgaW52ZXN0aWdhdGVkLgo+Pj4+Pj4+PTIwCj4+Pj4+Pj4gKzEKPj4+Pj4+PiBidXQgSSBkb24ndCBrbm93IHdoZXJlIHRvIGxvb2sgZm9yIG15c2VsZjogb24gdGhhdCBwb2ludCwgSSBob3BlIHRvCj4+Pj4+Pj4gaGF2ZSBzb21lCj4+Pj4+Pj4gaGVscCBmcm9tIEplbmtpbnNmaWxlIGV4cGVydHMKPj4+Pj4+PiBhbmQgZXZlbnR1YWxseSBzdGFydCB3aXRoIHN2biwgdG8gaGF2ZSBzb21ldGhpbmcgYmVmb3JlIHRoZSBnaXQKPj4+Pj4+PiBtaWdyYXRpb24KPj4+Pj4+Pj0yMAo+Pj4+Pj4+PiBUaGVuIGl0IGNhbiBiZSBhIGtpbmQgb2Ygc3dpdGNoLWNhc2Ugb3ZlciBjb21taXR0ZWQgZm9sZGVycyBpbgo+Pj4+Pj4+PTIwCj4+Pj4+Pj4gSmVua2luc2ZpbGUuCj4+Pj4+Pj49MjAKPj4+Pj4+Pj4gVGhpcyBtZWFucyB0aGF0IGV2ZXJ5IHRpbWUgYW5vdGhlciBzdGFnZS9zdWItZm9sZGVyIGlzIHNob3duIGluCj4+Pj4+Pj49MjAKPj4+Pj4+PiBQaXBlbGluZQo+Pj4+Pj4+PTIwCj4+Pj4+Pj4+IHdoaWNoIHdpbGwgYmUgbWVzc3kgaW4gdGhlIFVJLiA6KAo+Pj4+Pj4+PTIwCj4+Pj4+Pj4gbm90aWNlIHRoYXQgd2UgY2FuIHBlcmhhcHMgc3BsaXQgdGhlIHJlcG9zIGluIGxlc3MgcGFydHMgdGhhbiB3ZQo+PiBoYXZlCj4+Pj4+Pj4gY29tcG9uZW50czogb24gcGx1Z2lucywgZm9yIGV4YW1wbGUsIHdlIGFscmVhZHkgaGF2ZSA0IGNhdGVnb3JpZXMKPj4gWzFdCj4+Pj4+Pj4gd2hpY2gKPj4+Pj4+PiB3b3VsZCBhdm9pZCAxIHJlcG8gd2l0aCA0MSBwbHVnaW5zLCBidXQgbW9yZSBzb21ldGhpbmcgbGlrZQo+PiA2KzEwKzEwKzE1Cj4+Pj4+Pj4gSSBzdXBwb3NlIHdlIGNvdWxkIGRvIHRoZSBzYW1lIGZvciBzaGFyZWQgKHJlcG9ydGluZyBmb2xkZXIgY29tZXMKPj4gdG8gbXkKPj4+Pj4+PiBtaW5kKQo+Pj4+Pj4+PTIwCj4+Pj4+Pj4gVGhlIGtleSBmZWFzaWJpbGl0eSBpc3N1ZSBpcyB0aGUgY2FwYWNpdHkgdG8gcmVsZWFzZSBhIHN1Yi1jb21wb25lbnQ9Cgo+Pj4+Pj4+IGZyb20gZ2l0Cj4+Pj4+Pj4gd2l0aCBtYXZlbi1yZWxlYXNlLXBsdWdpbiwgSU1ITwo+Pj4+Pj4+ICh0YWtpbmcgYXBhcnQgdGhlIGdpdCBwdXJpc3RzIGlkZWEgb2YgMSBsaWZlY3ljbGUgPTNEIDEgZ2l0IHJlcG8pCj4+Pj4+Pj49MjAKPj4+Pj4+PiBSZWdhcmRzLAo+Pj4+Pj4+PTIwCj4+Pj4+Pj4gSGVydj1DMz1BOQo+Pj4+Pj4+PTIwCj4+Pj4+Pj49MjAKPj4+Pj4+PiBbMV0gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy8KPj4+Pj4+Pj0yMAo+Pj4+Pj4+PiBPbiBTYXQsIE9jdCA3LCAyMDE3IGF0IDQ6MTcgQU0sIEhlcnY9QzM9QTkgQk9VVEVNWSA8Cj4+IGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4+Pj4+Pj0yMAo+Pj4+Pj4+IHdyb3RlOgo+Pj4+Pj4+Pj4gVGhlcmUgYXJlIDYgc3ZuIGxvY2F0aW9ucyB3aXRob3V0IGFueSBzcGVjaWFsIGNvbXBsZXhpdHkgdGhhdAo+PiBhcmUKPj4+Pj4+Pj0yMAo+Pj4+Pj4+IHdhaXRpbmcKPj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gZm9yCj4+Pj4+Pj4+PiBhIHZvbHVudGVlciBmb3IgZ2l0IG1pZ3JhdGlvbiBmb3IgYSBmZXcgeWVhcnMgYnV0IG5vYm9keSBkb2VzCj4+Pj4+Pj49MjAKPj4+Pj4+PiBhbnl0aGluZwo+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBhYm91dDoKPj4+Pj4+Pj4+IEkgc3RhcnRlZCAzIGRheXMgYWdvIHRvIGFzayBmb3IgaGVscCBhYm91dCBpdCBhbmQgZ290IHByZXR0eSBubwo+Pj4+Pj4+PTIwCj4+Pj4+Pj4gZmVlZGJhY2sKPj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gWzFdCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gdGhlbiB0aGVyZSBhcmUgdGhlIDQgY29tcGxleCBzdm4gbG9jYXRpb25zIChwbHVnaW5zLCBzaGFyZWQsCj4+Pj4+Pj49MjAKPj4+Pj4+PiByZXNvdXJjZXMsCj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IGRveGlhLQo+Pj4+Pj4+Pj4gdG9vbHMpIHRoYXQgcmVxdWlyZSBtdWNoIG1vcmUgd29yazogSSBzdXBwb3NlIHdlIGNhbid0IHRlbGwgZ2l0Cj4+Pj4+Pj49MjAKPj4+Pj4+PiBtaWdyYXRpb24KPj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gaXMKPj4+Pj4+Pj4+IGFiYW5kb25lZCwgYnV0IGl0IHdpbGwgcmVxdWlyZSBzb21lb25lIHRvIHdvcmsgb24gaXQgc2VyaW91c2x5Cj4+Pj4+Pj4+PiBSZW1lbWJlciB0aGF0IHRoZSBrZXkgcXVlc3Rpb24gWzJdIGlzOiBkbyB3ZSB0cmFuc2Zvcm0gdGhlc2UgNAo+PiBzdm4KPj4+Pj4+Pj4+IGxvY2F0aW9ucwo+Pj4+Pj4+Pj4gaW50byA0MSArMjYgKyA2ICsgNSA9M0QgNzggaW5kZXBlbmRlbnQgZ2l0IHJlcG9zPwo+Pj4+Pj4+Pj4gWWVzLCBJIHRvbGQgdGhhdCBKZW5raW5zIGNvbmZpZ3VyYXRpb24gaXMgb25lIGtleSBhc3BlY3Qgd2UKPj4gbmVlZCBhCj4+Pj4+Pj4+PiBzdHJhdGVneQo+Pj4+Pj4+Pj4gYWJvdXQsIGluIHBhcmFsbGVsIHdpdGggZ2l0IHN0cmF0ZWd5Lgo+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiB0aGVuIHRoZXJlIHdpbGwgYmUgdGhlIHJlbWFpbmluZyBjYXNlcyB3aGVyZSB3ZSBuZWVkIHRvIGRlY2lkZToKPj4+Pj4+PiBsb3dlcgo+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBpbXBhY3QsCj4+Pj4+Pj4+PiBsb3dlciBwcmlvcml0eS4KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gU3VtbWFyeTogbm90aGluZyBpcyBhYmFuZG9uZWQsIGJ1dDoKPj4+Pj4+Pj4+IC0gc2ltcGxlIGNhc2VzOiBubyB2b2x1bnRlZXIgdG8gZG8gdGhlIGpvYgo+Pj4+Pj4+Pj4gLSBoYXJkIGNhc2VzOiBpcyB0aGVyZSBhIHZvbHVudGVlciBlaXRoZXIgdG8gZGVmaW5lIGEgc3RyYXRlZ3kKPj4gb3IKPj4+Pj4+Pj0yMAo+Pj4+Pj4+IGRvIHNvbWUKPj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gd29yawo+Pj4+Pj4+Pj4gb24gaXQ/Cj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IFJlZ2FyZHMsCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gSGVydj1DMz1BOQo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IFsxXSBodHRwczovL2xpc3RzLmFwYWNoZS5vcmcvdGhyZWFkLmh0bWwvCj4+Pj4+Pj4+PiBlZGYzNjQyYTdiZGQ1MTVmMGNhZDQyMWMyNTU4OTc0MTgxOTQ0NjQ2MzYxNGJmMDUxNWU1NmRiZUAKPj4+Pj4+Pj4+ICUzQ2Rldi5tYXZlbi5hcGFjaGUub3JnJTNFCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gWzJdIGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvTUFWRU4vR2l0Cj4+Pj4+Pj4+PiArTWlncmF0aW9uI0dpdE1pZ3JhdGlvbi1NaWdyYXRpbmdhbmFnZ3JlZ2F0b3J0cmVlaW50b2Fjb2xsZWMKPj4+Pj4+Pj0yMAo+Pj4+Pj4+IHRpb25vZmdpdHJlcG9zCj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IExlIHZlbmRyZWRpIDYgb2N0b2JyZSAyMDE3LCAyMDozNTo0NSBDRVNUIEFybmF1ZCBIPUMzPUE5cml0aWVyIGEKPj4gPUMzPUE5Y3JpdCA6Cj4+Pj4+Pj4+Pj4gQnV0IGRpZCB3ZSBjb21wbGV0ZWx5IGFiYW5kb25lZCB0aGUgaWRlYSBvZiBtb3ZpbmcgZXZlcnl0aGluZwo+PiB0bwo+Pj4+Pj4+PTIwCj4+Pj4+Pj4gZ2l0ID8KPj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+IFRoZSBDSSBzZXR1cCB3YXMgdGhlIG1haW4gc3RvcCBmb3IgaXQgPwo+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4gT24gRnJpLCBPY3QgNiwgMjAxNyBhdCA4OjA1IFBNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+Pj4+Pj4+PTIwCj4+Pj4+Pj4gaGVydmUuYm91dGVteUBmcmVlLmZyPgo+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiB3cm90ZToKPj4+Pj4+Pj4+Pj4gSSB3YXMgZXhwZWN0aW5nIHRoZSB1c3VhbCBsaXRhbnkKPj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gd2hhdCBJJ20gbm90IGNvbmZpZGVudCBjdXJyZW50bHkgd2l0aCBwaXBlbGluZSBvbiBNYXZlbgo+PiBjb3JlIGlzCj4+Pj4+Pj49MjAKPj4+Pj4+PiB0aGF0Cj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gd2UKPj4+Pj4+Pj4+Pj4gaGF2ZQo+Pj4+Pj4+Pj4+PiBmb3IgZXhhbXBsZSB0aGUgIm1hdmVuLTMueC1qZW5raW5zZmlsZS9NTkctNjI0MiAtIGJ1aWxkICMxCj4+IC0KPj4+Pj4+Pj0yMAo+Pj4+Pj4+IG51bGwiCj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gbWVzc2FnZSwKPj4+Pj4+Pj4+Pj4gd2l0aCB0aGlzICJudWxsIiBwYXJ0IHRoYXQgbWFrZXMgbWUgd29uZGVyIGlmIHdlIGFyZSB1c2luZwo+PiBpdAo+Pj4+Pj4+Pj4+PiBhcwo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IGV4cGVjdGVkLgo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gQW5kIGZvciBsYXJnZSBtdWx0aS1tb2R1bGUgc3ZuIHRydW5rcyAodGhlIG9uZXMgd2UgZG9uJ3QKPj4+Pj4+Pj0yMAo+Pj4+Pj4+IG1pZ3JhdGUgdG8KPj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gZ2l0Ogo+Pj4+Pj4+Pj4+PiBtYWlubHkgcGx1Z2lucyBhbmQgc2hhcmVkKSwgaXMgdGhlcmUgYSBzb2x1dGlvbiB0byByZWJ1aWxkCj4+IGp1c3QKPj4+Pj4+Pj4+Pj4gY2hhbmdlZAo+Pj4+Pj4+Pj4+PiBtb2R1bGVzPwo+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+PiBpZGVhbGx5LCB0aGUgcmVidWlsZCB3aGVuIGEgU05BUFNIT1QgZGVwZW5kZW5jeSBpcyBwdWJsaXNoZWQKPj4+Pj4+Pj0yMAo+Pj4+Pj4+IHdvdWxkCj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gaGF2ZQo+Pj4+Pj4+Pj4+PiBiZWVuIGEKPj4+Pj4+Pj4+Pj4gcGx1cywgYnV0IHRoaXMgaXMgc3VmZmljaWVudGx5IGEgcmFyZSB1c2UgdGhhdCBJIHdvbid0IGJlCj4+Pj4+Pj49MjAKPj4+Pj4+PiBleHRyZW1pc3QKPj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+PiBUaGVuIElJVUMsIHRoaXMgbWlncmF0aW9uIGpvYiBpcyBvbmUgYWRkaXRpb25hbCBUT0RPIGZvcgo+PiBtZS4uLgo+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+PiBSZWdhcmRzLAo+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+PiBIZXJ2PUMzPUE5Cj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IExlIHZlbmRyZWRpIDYgb2N0b2JyZSAyMDE3LCAxNzo0Njo1MyBDRVNUIEFybmF1ZCBIPUMzPUE5cml0aWVyIGE9Cgo+Pj4+Pj4+PTIwCj4+Pj4+Pj4gPUMzPUE5Y3JpdCA6Cj4+Pj4+Pj4+Pj4+PiBJIGFncmVlIHRoYXQgd2Ugc2hvdWxkIHVzZSBwaXBlbGluZSBub3dkYXlzCj4+Pj4+Pj4+Pj4+PiBwZXJoYXBzIGEgc2hhcmVkIGxpYiBpZiB3ZSB3YW50IHRvIHN0YW5kYXJkaXplIHNvbWUgc3R1ZmZzCj4+Pj4+Pj49MjAKPj4+Pj4+PiBhbmQgYSBzZXQKPj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gb2YKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+PiBtdWx0aS1icmFuY2hlcyBqb2JzIChvciBvcmcgZm9sZGVyIGJ1dCBpdCByZXF1aXJlcyBHaXRIdWIKPj4gOigKPj4+Pj4+Pj4+Pj4+ICkKPj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+PiBPbiBGcmksIE9jdCA2LCAyMDE3IGF0IDk6MTYgQU0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Pj4+Pj4+Pj4+Pj4+IE9uIEZyaSA2IE9jdCAyMDE3IGF0IDA2OjMyLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+Pj4+Pj4+PTIwCj4+Pj4+Pj4gaGVydmUuYm91dGVteUBmcmVlLmZyPgo+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IHdyb3RlOgo+Pj4+Pj4+Pj4+Pj4+PiBJIGp1c3QgZml4ZWQgYSBmZXcgZmFpbGluZyBqb2JzIFsxXSB0byBoYXZlIGFnYWluIGEKPj4+Pj4+Pj4+Pj4+Pj4gdXNhYmxlCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4gSmVua2lucy4KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+IE5vdyBJJ20gZmFjaW5nIHNvbWUgaXNzdWVzLCBJIHN1cHBvc2UgY2F1c2VkIGJ5IG5ld2VyCj4+Pj4+Pj49MjAKPj4+Pj4+PiBKZW5raW5zCj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gdmVyc2lvbnM6Cj4+Pj4+Pj4+Pj4+Pj4+IC0gTWF2ZW4gMy4wLjUgY2F1c2VzIE5vU3VjaE1ldGhvZEVycm9yOgo+Pj4+Pj4+Pj4+Pj4+PiBvLmMucGxleHVzLnV0aWwueG1sLnB1bGwuCj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+PiBNWFBhcnNlcgo+Pj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+IFsyXQo+Pj4+Pj4+Pj4+Pj4+PiAtIEkgaGFkIHRvIHN3aXRjaCB0byBKREsgOCBmb3IgbWF2ZW4tcGx1Z2luLXRvb2xzIGpvYiwKPj4+Pj4+Pj0yMAo+Pj4+Pj4+IHNpbmNlIEpESwo+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IGNhdXNlcwo+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+PiBmYWlsdXJlcyAobG9va3MgbGlrZSBKZW5raW5zIHVzZXMgYSBoYWNrIHRvIGluamVjdAo+PiBKREsgNwo+Pj4+Pj4+PTIwCj4+Pj4+Pj4gYXMgYQo+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiB0b29sCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+PiB3aGlsZQo+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+PiB0aGUKPj4+Pj4+Pj4+Pj4+Pj4gYnVpbGQgSlZNIGlzIEphdmEgOCkKPj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4gU2hvdWxkIHdlIGRyb3AgTWF2ZW4gMy4wLjUgYnVpbGRzIGFuZCBKREsgNz8KPj4+Pj4+Pj4+Pj4+Pj4gTm90aWNlIEkgZGlkbid0IGNoZWNrIHdoaWNoIGlzIHRoZSBtaW5pbXVtIE1hdmVuCj4+IHZlcnNpb24KPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiByZXF1aXJlZC4uLgo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4gT3IgcGVyaGFwcyBzaW1wbHkgZG9uJ3QgdXNlIHRoZSBKZW5raW5zIE1hdmVuIHBsdWdpbgo+PiB3aXRoCj4+Pj4+Pj49MjAKPj4+Pj4+PiB0aGlzCj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IE1hdmVuCj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+IDMuMC41Cj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4gb3IKPj4+Pj4+Pj4+Pj4+Pj4gSkRLIDcgY29uZmlndXJhdGlvbjogZGVmYXVsdCBidWlsZCBhcyBKZW5raW5zIE1hdmVuCj4+Pj4+Pj49MjAKPj4+Pj4+PiBwbHVnaW4gd2l0aAo+Pj4+Pj4+PTIwCj4+Pj4+Pj4+PiBKREsKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IDggKwo+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+PiBsYXRlc3QKPj4+Pj4+Pj4+Pj4+Pj4gTWF2ZW4sIGFuZCBvdGhlciBjb25maWd1cmF0aW9ucyBhcyBzY3JpcHRlZCBqb2JzPwo+Pj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4gaHR0cDovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuCj4+IGllLzIwMTMvMTEvamVua2lucy1tYXZlbi1qb2ItPiA+Pj4+ID4gPiA+ID4gPiA+ID4KPj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gdHlwZS1jb25zaWRlcmVkLWV2aWwuaHRtbAo+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+IDxodHRwOi8vamF2YWFkdmVudHVyZS5ibG9nc3BvdC5pZS8yMDEzLzExL2plbmtpbnMtPiA+Cj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+IG1hdmVuLWpvYi10eXBlLWNvbnNpZGVyZWQtZXZpbC5odG1sP209M0QxPgo+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+IFdlIHNob3VsZCBzdG9wIHVzaW5nIHRoZSBldmlsIGpvYiB0eXBlIGFzIGl0PUUyPTgwPTk5cyBtaW5pbXVtPQoKPj4gSmF2YQo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IHZlcnNpb24gaXMKPj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4gZGljdGF0ZWQgYnkgSmVua2lucz1FMj04MD05OSBKYXZhIG1pbmltdW0uCj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4gV2UgbmVlZCB0byBkZWZpbmUgb3VyIGNvbW1vbiBzdHJhdGVneSBhbmQgaGF2ZSBhCj4+Pj4+Pj49MjAKPj4+Pj4+PiBjb25zaXN0ZW50Cj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+Pj4gY29uZmlndXJhdGlvbgo+Pj4+Pj4+Pj4+Pj4+PiBmb3IKPj4+Pj4+Pj4+Pj4+Pj4gZXZlcnkgam9iIHVuZGVyc3Rvb2QgYnkgZXZlcnlib2R5Cj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+PiBJIHJlY29tbWVuZCBKZW5raW5zZmlsZSBhbmQgdGhlIGB3aXRoTWF2ZW5gIHdyYXBwZXIKPj4+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+PiBSZWdhcmRzLAo+Pj4+Pj4+Pj4+Pj4+Pj0yMAo+Pj4+Pj4+Pj4+Pj4+PiBIZXJ2PUMzPUE5Cj4+Pj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+IFsxXSBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vCj4+Pj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+IFsyXQo+Pj4+Pj4+Pj4+Pj4+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnLwo+PiB2aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi0+Cj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+PiBwbHVnaW4tdG9vbHMtamRrLTEuNy8xNjIvY29uc29sZQo+Pj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+Pj4+PTIwCj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gLS0tLS0tLS0tCj4+Pj4+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUuCj4+IG9yZwo+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6Cj4+Pj4+Pj4gZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Pj4+PTIwCj4+Pj4+Pj4+Pj4+Pj4+IC0tCj4+Pj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4+PiBTZW50IGZyb20gbXkgcGhvbmUKPj4+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+Pj4+PTIwCj4+Pj4+Pj4gLS0tLS0tLS0tCj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+Pj4+Pj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+Pj4+PTIwCj4+Pj4+Pj4gLS0tLS0tLS0tCj4+Pj4+Pj49MjAKPj4+Pj4+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+Pj4+Pj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Pj4+Pj49MjAKPj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gLS0tLS0tLS0tCj4+Pj4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+Pj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Pj4+Pj0yMAo+Pj4+Pj4gLS0KPj4+Pj4+IENoZWVycwo+Pj4+Pj4gVGlib3IKPj49MjAKPj49MjAKPj49MjAKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj49MjAKPj49MjAKPj0yMAo+PTIwCj4gLS09MjAKPiAtLS0tLQo+IEFybmF1ZCBIPUMzPUE5cml0aWVyCj4gaHR0cDovL2FoZXJpdGllci5uZXQKPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0MjUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE5vdiAgNSAyMToyMDozOCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0MjUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNjkzN0YxMDQzOQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sICA1IE5vdiAyMDE3IDIxOjIwOjM4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzYwMzEgaW52b2tlZCBieSB1aWQgNTAwKTsgNSBOb3YgMjAxNyAyMToyMDozOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzU5NTQgaW52b2tlZCBieSB1aWQgNTAwKTsgNSBOb3YgMjAxNyAyMToyMDozOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc1OTM2IGludm9rZWQgYnkgdWlkIDk5KTsgNSBOb3YgMjAxNyAyMToyMDozNyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMDUgTm92IDIwMTcgMjE6MjA6MzcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBFMERCNzEwQjQyMwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgIDUgTm92IDIwMTcgMjE6MjA6MzYgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjQ4ClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuNDggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBIVE1MX01FU1NBR0U9MiwKCUtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9OT05FPS0wLjAwMDEsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9dGFsaW9zLWNvbS4yMDE1MDYyMy5nYXBwc3NtdHAuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBrZzZzUjJoOGs2Z24gZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sICA1IE5vdiAyMDE3IDIxOjIwOjM1ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtcGcwLWY1MS5nb29nbGUuY29tIChtYWlsLXBnMC1mNTEuZ29vZ2xlLmNvbSBbNzQuMTI1LjgzLjUxXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDQ3NUEyNjBEMjgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sICA1IE5vdiAyMDE3IDIxOjIwOjM1ICswMDAwIChVVEMpClJlY2VpdmVkOiBieSBtYWlsLXBnMC1mNTEuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgczc1c282Njc0NDc3cGdzLjAKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAwNSBOb3YgMjAxNyAxMzoyMDozNSAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9dGFsaW9zLWNvbS4yMDE1MDYyMy5nYXBwc3NtdHAuY29tOyBzPTIwMTUwNjIzOwogICAgICAgIGg9ZnJvbTp0bzpzdWJqZWN0OmRhdGU6bWVzc2FnZS1pZDppbi1yZXBseS10bzpyZWZlcmVuY2VzOm1pbWUtdmVyc2lvbjsKICAgICAgICBiaD1lZEZOL1U4U1RSeFg1NCt0YXhKTVc3U2dOMWZ5azZnRHNHalk0eTludjJ3PTsKICAgICAgICBiPVFzK2NuU0hpMlp1bGh2dVBRd241TTRJOVl5a0JnNWpHeDZPTmNXTWNKZHptYktBMzR2aGp4N3RXZy9tT3dwQnhlQgogICAgICAgICBqVWRQd21qbkRGYVNJMUFaTnloWHVVRnRxbEovbWJzZTVKVFFqWm8reE9uaHR3eDRVWVp1ckFCcHYzQ1E0RVg0QjNiMgogICAgICAgICBCRzNzUWJ5TktTa1BaeFhUN25LVWF2L2p1NzFLTjhkVzJNcTBKbldIaHhoWlU2L1NZSVJoS1podHVNY2xMNHM5S1EwVAogICAgICAgICBpMWtOOVM4dGhtZGlMeXRuK3c2bW1wcnBBdGcxaEJKTTJVNHhMU3RrMUFhdWdDY3htcXp3T3lSdHFzcXhCVm5nV3FpaQogICAgICAgICBaSlluWnBDNEJMbi8yOVhSUThmaTRyME1TSTFtc0VnazRwcytWV1prSTdNWWxaSUNxcFNSZDdOWTJob25OUFZzOUlBdgogICAgICAgICBKaS9BPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTpmcm9tOnRvOnN1YmplY3Q6ZGF0ZTptZXNzYWdlLWlkOmluLXJlcGx5LXRvCiAgICAgICAgIDpyZWZlcmVuY2VzOm1pbWUtdmVyc2lvbjsKICAgICAgICBiaD1lZEZOL1U4U1RSeFg1NCt0YXhKTVc3U2dOMWZ5azZnRHNHalk0eTludjJ3PTsKICAgICAgICBiPWt1NGVmNkx0YnR6Wm8xWVV6b1ZVM0krczBjLzlRQVErazd2NVNGRlgrTjlWdTFyRXNkRFg2akJsUStCdGRzN1lZZAogICAgICAgICA3UkhvK0IvblBvVCtoU3h4L3A0UnRkNWp4aFdRckJoQ2dwV0EzUXArSWNRSGRhSU5PZExxN0NSR2c2K1QweHVHbkt1SAogICAgICAgICB1OHp5dUhMbXRzSXYwb0NDKzVvZ056NURJbTY2R3NwbVk1Mis4eWNmMkNkYXl2MGVGRnkyS1VlK3h5bUgyZGF0UDNsdgogICAgICAgICBoMm1lYXdtNm02eXl0RTg5L3M5RVhkY3hKK0h1VG1yNS9KRTBNWUxQRzd1QU45VVlJelQ5dHlEN1M2SjA0Wk5uWklBTwogICAgICAgICBCNTdDemhwVkFkQ3pGRmp1THhGUXBTUy9MOS9GVTNENHJwdHJFSHVibEJZZS9IeUdVaG9pelpnYWtVMC9BWS9xMVlaQQogICAgICAgICBzZHhRPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FWdlRQV3ZMRHY5SmQ3bG1SeHRCSnZZVW1PNlZpNUhmby9vRHh0VUxKNk4vOE1wMEVubgoJYlhvTCtxdTNZblc3OWgrRXlteEZQdnoxTmovTEZWYz0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFCaFFwK1RtSVNzNzFlUXdoak1rbVVkbDE4ZVUxQ3hHTy9GMmVkekptMU8veC9LYnVaY09wMHFSYk9TU0lubWhUWVlpbFRLMkZZV3BIZz09ClgtUmVjZWl2ZWQ6IGJ5IDEwLjg0LjE5OS4xNzAgd2l0aCBTTVRQIGlkIHIzOW1yMTI2MzgyNTFwbGQuMzU2LjE1MDk5MTY4Mjc4OTI7CiAgICAgICAgU3VuLCAwNSBOb3YgMjAxNyAxMzoyMDoyNyAtMDgwMCAoUFNUKQpSZWNlaXZlZDogZnJvbSBbMTAuMC4wLjEzMV0gKFsxMTMuMTk3LjY1LjIyXSkKICAgICAgICBieSBzbXRwLmdtYWlsLmNvbSB3aXRoIEVTTVRQU0EgaWQgeTg0c20yMDgwMDk3NXBmZi4xNTguMjAxNy4xMS4wNS4xMy4yMC4yNQogICAgICAgIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CiAgICAgICAgKHZlcnNpb249VExTMV8yIGNpcGhlcj1FQ0RIRS1SU0EtQUVTMTI4LUdDTS1TSEEyNTYgYml0cz0xMjgvMTI4KTsKICAgICAgICBTdW4sIDA1IE5vdiAyMDE3IDEzOjIwOjI2IC0wODAwIChQU1QpCkZyb206ICJNYXJrIERlcnJpY3V0dCIgPG1hcmtAdGFsaW9zLmNvbT4KVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IE1hdmVuIDQuMC4wCkRhdGU6IE1vbiwgMDYgTm92IDIwMTcgMTA6MjA6MjMgKzEzMDAKTWVzc2FnZS1JRDogPEU5OUEwNEY2LUI3OEUtNEI0Ri04MkU5LUM4OUE4RkI3NDRERUB0YWxpb3MuY29tPgpJbi1SZXBseS1UbzogPG9wLnk4Njd3eGg0a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXdFSDlaMm15cDcxdWFTcmRjeUxKUkZyRS1WcnQyMDE5MXJkMDFoK1VmaGp3QG1haWwuZ21haWwuY29tPgogPENBTFlHbTF4YjFNT0hwc1grN0VHOHg0YmQtekhaK085NWUyWTVZMkR1ZFppRUU2ZU5DQUBtYWlsLmdtYWlsLmNvbT4KIDxvcC55ODY3d3hoNGtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvc2lnbmVkOwogYm91bmRhcnk9Ij1fTWFpbE1hdGVfNTg2QjRDMDYtQkY1My00QTJELTlEQkUtRDhBREVGQkIyQzc1Xz0iOwogbWljYWxnPXBncC1zaGExOyBwcm90b2NvbD0iYXBwbGljYXRpb24vcGdwLXNpZ25hdHVyZSIKWC1NYWlsZXI6IE1haWxNYXRlICgyLjBCRVRBcjYwOTMpCgotLT1fTWFpbE1hdGVfNTg2QjRDMDYtQkY1My00QTJELTlEQkUtRDhBREVGQkIyQzc1Xz0KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7CiBib3VuZGFyeT0iPV9NYWlsTWF0ZV84ODU5RTI3Qy05QzU3LTQ1RDctQjI3Ny0xRUQ5N0UxQkMzMTVfPSIKCgotLT1fTWFpbE1hdGVfODg1OUUyN0MtOUM1Ny00NUQ3LUIyNzctMUVEOTdFMUJDMzE1Xz0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKT24gNSBOb3YgMjAxNywgYXQgMTA6NDIsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgoKPiBJIHdvdWxkIGxpa2UgdG8gZHJvcCBzdHJpY3Qgc2NvcGVzIGluIGdlbmVyYWwgYW5kIGdpdmUgcGx1Z2lucyB0aGUgb3Bwbz0KcnR1bml0eSB0byBkZXBlbmQgb24KPiBzcGVjaWZpYyBzY29wZWQgZGVwZW5kZW5jaWVzLgoKSG93IHdvdWxkIHRoaXMgaGVscCB3aXRoIGFubm90YXRpb25zIHRobz8gVGhlIG1haW4gaXNzdWUgSSdtIGZhY2luZyBpcyBoYT0KdmluZyBhIHN0YW5kYXJkIG0tYy1wIHBsdWdpbiBkZWZpbml0aW9uIGluIGEgcGFyZW50ICggb3IgdGlsZSApIGJ1dCBuZWVkaT0KbmcgZGlmZmVyZW50IGFubm90YXRpb24gcHJvY2Vzc29ycyB1c2VkIHBlciBwcm9qZWN0LiBXaXRoIHRoZSBjdXJyZW50IHBsdT0KZ2luLCB0aGlzIG1lYW5zIGVpdGhlciBsaXN0aW5nIHRoZW0gYXMgc3RhbmRhcmQgZGVwZW5kZW5jaWVzIGFuZCBoYXZlIHRoZT0KbSBhdXRvLXNjYW5uZWQsIGFuZCBwb2xsdXRlIHRoZSBjb21waWxhdGlvbiBjbGFzc3BhdGgsIG9yIGxpc3QgZXZlcnkgcG9zcz0KaWJsZSBhbm5vdGF0aW9uIHByb2Nlc3NvciBkZXBlbmRlbmN5IHdlIG1heSB1c2UgaW4gb3VyIHByb2plY3RzIGluIHRoZSBwYT0KcmVudCwgd2hpY2ggaXMgbGVzcyB0aGFuIGlkZWFsLgoKPiBJIGhvcGUgeW91IGFyZSBhd2FyZSB0aGF0IG1vZHVsZXMgYWxyZWFkeSBlbmQgdXAgb24gdGhlIG1vZHVsZXBhdGggYmFzZT0KZCBvbiB0aGUgbW9kdWxlZGVzY3JpcHRvcihzKS4gU28gSSBkb24ndCBzZWUgdGhlIG5lZWQgZm9yIHRoaXMgc2NvcGUuICh1bj0KbGVzcyB5b3UgaGF2ZSB0aGlzIHdpc2ggdGhhdCBpbiB0aGUgZW5kIE1hdmVuIHdpbGwgY3JlYXRlIHRoZSBtb2R1bGUgZGVzYz0KcmlwdG9yIGJhc2VkIG9uIHRoaXMsIGJ1dCBJIHN0aWxsIHRoaW5rIHdlIHNob3VsZG4ndCBkbyB0aGF0KQoKSSByZW1lbWJlcmVkIHJlYWRpbmcgc29tZXRoaW5nIGFib3V0IHRoaXMsIGFuZCBhc3N1bWVkIGl0IHdhcyB0aGUgY2FzZSBpZj0KIHRoZXJlIHdhcyBhIG1vZHVsZS1pbmZvLmNsYXNzLCBidXQgd2hhdCBpZiBpdHMgYSBzdGFuZGFyZCBqYXIgd2l0aCBhbiBBdT0KdG9tYXRpYy1Nb2R1bGUtTmFtZSBoZWFkZXI/IERvZXMgdGhhdCBmYWxsIGludG8gdGhlIG1vZHVsZSBwYXRoIG9yIGNsYXNzcD0KYXRoPyBIYXZpbmcgY29udHJvbCBmb3IgdGhpcyBjYXNlIG1heSBiZSB1c2VmdWwuCgoKPiBJIHJlY29nbml6ZSB0aGlzIHdpc2guIFRoZSBiZXN0IHNvbHV0aW9uIGlzIHRvIG1ha2UgdGhlIGRlcGVuZGVuY3kgb3B0aT0Kb25hbC4KClRoZSBwcm9ibGVtIHdpdGggdGhpcyBpcyB0aGF0IHRoZSBkZXBlbmRlbmN5IGlzIHN0aWxsIG9uIHRoZSBjbGFzc3BhdGggZm89CnIgc2F5IHN1cmVmaXJlLCB3aGljaCBjYW4gaW5mbHVlbmNlIGJlaGF2aW91ci4KCk1hcmsKCgoKLS0tCiJUaGUgZWFzZSB3aXRoIHdoaWNoIGEgY2hhbmdlIGNhbiBiZSBpbXBsZW1lbnRlZCBoYXMgbm8gcmVsZXZhbmNlIGF0IGFsbCA9CnRvIHdoZXRoZXIgaXQgaXMgdGhlIHJpZ2h0IGNoYW5nZSBmb3IgdGhlIChKYXZhKSBQbGF0Zm9ybSBmb3IgYWxsIHRpbWUuIiA9CiZtZGFzaDsgTWFyayBSZWluaG9sZC4KCk1hcmsgRGVycmljdXR0Cmh0dHA6Ly93d3cudGhlb3J5aW5wcmFjdGljZS5uZXQKaHR0cDovL3d3dy5jaGFsaWNlb2ZibG9vZC5uZXQKaHR0cDovL3BsdXMuZ29vZ2xlLmNvbS8rTWFya0RlcnJpY3V0dApodHRwOi8vdHdpdHRlci5jb20vdGFsaW9zCmh0dHA6Ly9mYWNlYm9vay5jb20vbWRlcnJpY3V0dAoKLS09X01haWxNYXRlXzg4NTlFMjdDLTlDNTctNDVENy1CMjc3LTFFRDk3RTFCQzMxNV89CkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPgo8aHRtbD4KPGhlYWQ+CjxtZXRhIGh0dHAtZXF1aXY9M0QiQ29udGVudC1UeXBlIiBjb250ZW50PTNEInRleHQveGh0bWw7IGNoYXJzZXQ9M0R1dGYtOCI9Cj4KPC9oZWFkPgo8Ym9keT4KPGRpdiBzdHlsZT0zRCJmb250LWZhbWlseTpzYW5zLXNlcmlmIj48ZGl2IHN0eWxlPTNEIndoaXRlLXNwYWNlOm5vcm1hbCI+CjxwIGRpcj0zRCJhdXRvIj5PbiA1IE5vdiAyMDE3LCBhdCAxMDo0MiwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6PC9wPgoKPC9kaXY+CjxkaXYgc3R5bGU9M0Qid2hpdGUtc3BhY2U6bm9ybWFsIj48YmxvY2txdW90ZSBzdHlsZT0zRCJib3JkZXItbGVmdDoycHggc289CmxpZCAjNTg1NUQ1OyBjb2xvcjojNTg1NUQ1OyBtYXJnaW46MCAwIDVweDsgcGFkZGluZy1sZWZ0OjVweCI+PHAgZGlyPTNEImE9CnV0byI+SSB3b3VsZCBsaWtlIHRvIGRyb3Agc3RyaWN0IHNjb3BlcyBpbiBnZW5lcmFsIGFuZCBnaXZlIHBsdWdpbnMgdGhlIG89CnBwb3J0dW5pdHkgdG8gZGVwZW5kIG9uPGJyPgpzcGVjaWZpYyBzY29wZWQgZGVwZW5kZW5jaWVzLjwvcD4KPC9ibG9ja3F1b3RlPjwvZGl2Pgo8ZGl2IHN0eWxlPTNEIndoaXRlLXNwYWNlOm5vcm1hbCI+Cgo8cCBkaXI9M0QiYXV0byI+SG93IHdvdWxkIHRoaXMgaGVscCB3aXRoIGFubm90YXRpb25zIHRobz8gVGhlIG1haW4gaXNzdWUgPQpJJ20gZmFjaW5nIGlzIGhhdmluZyBhIHN0YW5kYXJkIG0tYy1wIHBsdWdpbiBkZWZpbml0aW9uIGluIGEgcGFyZW50ICggb3IgPQp0aWxlICkgYnV0IG5lZWRpbmcgZGlmZmVyZW50IGFubm90YXRpb24gcHJvY2Vzc29ycyB1c2VkIHBlciBwcm9qZWN0LiBXaXRoPQogdGhlIGN1cnJlbnQgcGx1Z2luLCB0aGlzIG1lYW5zIGVpdGhlciBsaXN0aW5nIHRoZW0gYXMgc3RhbmRhcmQgZGVwZW5kZW5jPQppZXMgYW5kIGhhdmUgdGhlbSBhdXRvLXNjYW5uZWQsIGFuZCBwb2xsdXRlIHRoZSBjb21waWxhdGlvbiBjbGFzc3BhdGgsIG9yPQogbGlzdCBldmVyeSBwb3NzaWJsZSBhbm5vdGF0aW9uIHByb2Nlc3NvciBkZXBlbmRlbmN5IHdlIG1heSB1c2UgaW4gb3VyIHByPQpvamVjdHMgaW4gdGhlIHBhcmVudCwgd2hpY2ggaXMgbGVzcyB0aGFuIGlkZWFsLjwvcD4KCjwvZGl2Pgo8ZGl2IHN0eWxlPTNEIndoaXRlLXNwYWNlOm5vcm1hbCI+PGJsb2NrcXVvdGUgc3R5bGU9M0QiYm9yZGVyLWxlZnQ6MnB4IHNvPQpsaWQgIzU4NTVENTsgY29sb3I6IzU4NTVENTsgbWFyZ2luOjAgMCA1cHg7IHBhZGRpbmctbGVmdDo1cHgiPjxwIGRpcj0zRCJhPQp1dG8iPkkgaG9wZSB5b3UgYXJlIGF3YXJlIHRoYXQgbW9kdWxlcyBhbHJlYWR5IGVuZCB1cCBvbiB0aGUgbW9kdWxlcGF0aCBiPQphc2VkIG9uIHRoZSBtb2R1bGVkZXNjcmlwdG9yKHMpLiBTbyBJIGRvbid0IHNlZSB0aGUgbmVlZCBmb3IgdGhpcyBzY29wZS4gPQoodW5sZXNzIHlvdSBoYXZlIHRoaXMgd2lzaCB0aGF0IGluIHRoZSBlbmQgTWF2ZW4gd2lsbCBjcmVhdGUgdGhlIG1vZHVsZSBkPQplc2NyaXB0b3IgYmFzZWQgb24gdGhpcywgYnV0IEkgc3RpbGwgdGhpbmsgd2Ugc2hvdWxkbid0IGRvIHRoYXQpPC9wPgo8L2Jsb2NrcXVvdGU+PC9kaXY+CjxkaXYgc3R5bGU9M0Qid2hpdGUtc3BhY2U6bm9ybWFsIj4KCjxwIGRpcj0zRCJhdXRvIj5JIHJlbWVtYmVyZWQgcmVhZGluZyBzb21ldGhpbmcgYWJvdXQgdGhpcywgYW5kIGFzc3VtZWQgaXQ9CiB3YXMgdGhlIGNhc2UgaWYgdGhlcmUgd2FzIGEgbW9kdWxlLWluZm8uY2xhc3MsIGJ1dCB3aGF0IGlmIGl0cyBhIHN0YW5kYXI9CmQgamFyIHdpdGggYW4gQXV0b21hdGljLU1vZHVsZS1OYW1lIGhlYWRlcj8gRG9lcyB0aGF0IGZhbGwgaW50byB0aGUgbW9kdWw9CmUgcGF0aCBvciBjbGFzc3BhdGg/IEhhdmluZyBjb250cm9sIGZvciB0aGlzIGNhc2UgbWF5IGJlIHVzZWZ1bC48L3A+Cgo8L2Rpdj4KPGRpdiBzdHlsZT0zRCJ3aGl0ZS1zcGFjZTpub3JtYWwiPjxibG9ja3F1b3RlIHN0eWxlPTNEImJvcmRlci1sZWZ0OjJweCBzbz0KbGlkICM1ODU1RDU7IGNvbG9yOiM1ODU1RDU7IG1hcmdpbjowIDAgNXB4OyBwYWRkaW5nLWxlZnQ6NXB4Ij48cCBkaXI9M0QiYT0KdXRvIj5JIHJlY29nbml6ZSB0aGlzIHdpc2guIFRoZSBiZXN0IHNvbHV0aW9uIGlzIHRvIG1ha2UgdGhlIGRlcGVuZGVuY3kgbz0KcHRpb25hbC48L3A+CjwvYmxvY2txdW90ZT48L2Rpdj4KPGRpdiBzdHlsZT0zRCJ3aGl0ZS1zcGFjZTpub3JtYWwiPgoKPHAgZGlyPTNEImF1dG8iPlRoZSBwcm9ibGVtIHdpdGggdGhpcyBpcyB0aGF0IHRoZSBkZXBlbmRlbmN5IGlzIHN0aWxsIG9uID0KdGhlIGNsYXNzcGF0aCBmb3Igc2F5IHN1cmVmaXJlLCB3aGljaCBjYW4gaW5mbHVlbmNlIGJlaGF2aW91ci48L3A+Cgo8cCBkaXI9M0QiYXV0byI+TWFyazwvcD4KCjxocj4KCjxwIGRpcj0zRCJhdXRvIj4iVGhlIGVhc2Ugd2l0aCB3aGljaCBhIGNoYW5nZSBjYW4gYmUgaW1wbGVtZW50ZWQgaGFzIG5vIHI9CmVsZXZhbmNlIGF0IGFsbCB0byB3aGV0aGVyIGl0IGlzIHRoZSByaWdodCBjaGFuZ2UgZm9yIHRoZSAoSmF2YSkgUGxhdGZvcm09CiBmb3IgYWxsIHRpbWUuIiA9RTI9ODA9OTQgTWFyayBSZWluaG9sZC48L3A+Cgo8cCBkaXI9M0QiYXV0byI+TWFyayBEZXJyaWN1dHQ8YnI+CjxhIGhyZWY9M0QiaHR0cDovL3d3dy50aGVvcnlpbnByYWN0aWNlLm5ldCI+aHR0cDovL3d3dy50aGVvcnlpbnByYWN0aWNlLm49CmV0PC9hPjxicj4KPGEgaHJlZj0zRCJodHRwOi8vd3d3LmNoYWxpY2VvZmJsb29kLm5ldCI+aHR0cDovL3d3dy5jaGFsaWNlb2ZibG9vZC5uZXQ8Lz0KYT48YnI+CjxhIGhyZWY9M0QiaHR0cDovL3BsdXMuZ29vZ2xlLmNvbS8rTWFya0RlcnJpY3V0dCI+aHR0cDovL3BsdXMuZ29vZ2xlLmNvbS89CitNYXJrRGVycmljdXR0PC9hPjxicj4KPGEgaHJlZj0zRCJodHRwOi8vdHdpdHRlci5jb20vdGFsaW9zIj5odHRwOi8vdHdpdHRlci5jb20vdGFsaW9zPC9hPjxicj4KPGEgaHJlZj0zRCJodHRwOi8vZmFjZWJvb2suY29tL21kZXJyaWN1dHQiPmh0dHA6Ly9mYWNlYm9vay5jb20vbWRlcnJpY3V0dD0KPC9hPjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4KCi0tPV9NYWlsTWF0ZV84ODU5RTI3Qy05QzU3LTQ1RDctQjI3Ny0xRUQ5N0UxQkMzMTVfPS0tCgotLT1fTWFpbE1hdGVfNTg2QjRDMDYtQkY1My00QTJELTlEQkUtRDhBREVGQkIyQzc1Xz0KQ29udGVudC1EZXNjcmlwdGlvbjogT3BlblBHUCBkaWdpdGFsIHNpZ25hdHVyZQpDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1zaWduYXR1cmUuYXNjCkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vcGdwLXNpZ25hdHVyZTsgbmFtZT1zaWduYXR1cmUuYXNjCgotLS0tLUJFR0lOIFBHUCBTSUdOQVRVUkUtLS0tLQpWZXJzaW9uOiBHbnVQRy9NYWNHUEcyIHYyCgppUUZFQkFFQkFnQXVGaUVFTGRTS0dNVDJ0Q0ZsaEx4azZOcURaSE5PMGtVRkFsbi9nSmNRSEcxaGNtdEFkR0ZzCmFXOXpMbU52YlFBS0NSRG8yb05rYzA3U1JmQ3lCLzl3bG8wSVhJcS9GdURvY2lGY0syMks2MVMrUmpxWWoyRm4KaGR4M000TzhvUFdQVjdwa05PRHNsb0tsY1htUzNITWhIM0YyRElnZ24vQUtVRzErcDNMU2d0WmpzUHE4VlV5TgpsbXBtRzhabi9nOVhPWFJjRVVXMkhvN3puSXl0UEdsM3pIaitBNHVlUWVrSVozUzNwRVBxMzh6cGhOaHBtRElZCmhFbVU5YmxjMTNvd0pOaW1IRFMxOCtZcXNXT01HdjFnVTRPSUFVSXFiaXlFRnhPaGFsblVQT0tEQ1dTeFoyMUUKcTFHeGpYOHJ4R2dvNzdqemdEUW5SU0dYTkQ1bFdFNjZsL3ltRjhCSm1CQXB2b0I4NDdEb04zZXFWbTVyYWJzRApGNklKWkp3OFZOMTQ2S3dwSUlRSnlUN2dHZXlKMmRObFJIWDhjb0llcE1LR1FaajhYSlNHCj1qdmo4Ci0tLS0tRU5EIFBHUCBTSUdOQVRVUkUtLS0tLQoKLS09X01haWxNYXRlXzU4NkI0QzA2LUJGNTMtNEEyRC05REJFLUQ4QURFRkJCMkM3NV89LS0KCkZyb20gZGV2LXJldHVybi0xMjQ0MjMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE5vdiAgNSAyMTowNjozMyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0MjMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNUU4NDExMDQwMgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sICA1IE5vdiAyMDE3IDIxOjA2OjMzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTMwNDAgaW52b2tlZCBieSB1aWQgNTAwKTsgNSBOb3YgMjAxNyAyMTowNjozMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTI5NTQgaW52b2tlZCBieSB1aWQgNTAwKTsgNSBOb3YgMjAxNyAyMTowNjozMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUyOTQyIGludm9rZWQgYnkgdWlkIDk5KTsgNSBOb3YgMjAxNyAyMTowNjozMiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMDUgTm92IDIwMTcgMjE6MDY6MzIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBFNjA3QjFCMjUxRgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgIDUgTm92IDIwMTcgMjE6MDY6MzEgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC44ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjggdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fU0lHTkVEPTAuMSwgREtJTV9WQUxJRD0tMC4xLCBIVE1MX01FU1NBR0U9MiwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44XSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgyMDQ4LWJpdCBrZXkpIGhlYWRlci5kPXRhbGlvcy1jb20uMjAxNTA2MjMuZ2FwcHNzbXRwLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgOGU3elVDVVhFSnBrIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAgNSBOb3YgMjAxNyAyMTowNjozMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXBnMC1mNDguZ29vZ2xlLmNvbSAobWFpbC1wZzAtZjQ4Lmdvb2dsZS5jb20gWzc0LjEyNS44My40OF0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBFQUIzNzVGNUI4Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAgNSBOb3YgMjAxNyAyMTowNjoyOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1wZzAtZjQ4Lmdvb2dsZS5jb20gd2l0aCBTTVRQIGlkIGozc282NjU3MzA2cGdhLjEKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAwNSBOb3YgMjAxNyAxMzowNjoyOSAtMDgwMCAoUFNUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9dGFsaW9zLWNvbS4yMDE1MDYyMy5nYXBwc3NtdHAuY29tOyBzPTIwMTUwNjIzOwogICAgICAgIGg9ZnJvbTp0bzpzdWJqZWN0OmRhdGU6bWVzc2FnZS1pZDppbi1yZXBseS10bzpyZWZlcmVuY2VzOm1pbWUtdmVyc2lvbjsKICAgICAgICBiaD1adEZidGhJdmtpdDI2NEtmTDdwTVRKaWtQSjdadUIzYTlJSXE2YVVCRWhrPTsKICAgICAgICBiPVRnVGhQK0lIZXdvd1NRSVZTYVdHNGVGUzVDbWJsRUJZM2NraEJrUUlNbWMyUFkrdzBHK2ZuYm1zdnl3ZjlIYTdKSQogICAgICAgICBZVDd2L1REYmF4TzR2Q0NaQ0dISlRaZ3VRdWtESUdwREp6Qy91aDdQTUhyK1cvVEZQS0lRL0xNdkpjWkZtbTZFRTZvTwogICAgICAgICBxTGhnYVp6MXppT3FjckZjUXZ3V3FSTE1GSWNkYjdsZWFGVkltUWNQdS94djRvSEJPQTNOU3pZSmhMbGhReW5zak15cgogICAgICAgICBjU2Z5SWE4b0NqUmJBMVJNdEFteHMySXFueHFaczV4L3l3UVgwN20vREs3dGN5VTBvNFkwWjRJZSsyUkVoRFJhUWZHegogICAgICAgICArSlZTeG03aWNvOGxYb1dWeVJtMXFUM3BLaDVwT1BzaUk1TWNPeXIyaW9Oc1M5bkF6cW9Rd1U4WW9jYVU3R0hvWFg0SgogICAgICAgICBKbzdnPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTpmcm9tOnRvOnN1YmplY3Q6ZGF0ZTptZXNzYWdlLWlkOmluLXJlcGx5LXRvCiAgICAgICAgIDpyZWZlcmVuY2VzOm1pbWUtdmVyc2lvbjsKICAgICAgICBiaD1adEZidGhJdmtpdDI2NEtmTDdwTVRKaWtQSjdadUIzYTlJSXE2YVVCRWhrPTsKICAgICAgICBiPURndjliTnMzZlJWRzJRK2VIbzFLQmVSUUp4YUtBd1VZMUR2Q1c2QW1VOWhsclJlZ2laelhyZUtlQnNndHRxMjJ1VAogICAgICAgICBWYUI4WWFKVkkwQm5pcHM4b2R3Mi9ZeHcxUVFZcHA0TEVjb3pZWjNxeFR3elJJSlI2cXR3YVFqZDdXUm5QVWtmWGo4NgogICAgICAgICBCVVYrYkhqZFhUcFk1UmQrM2k5dFRYRElLQnl4U29ma1NoLysvNHNmQkpPU3FHUjF4RHU2eTljNXJadUlhWFZQZ0hDRQogICAgICAgICB4M2ZhV1BqTnhtWjQrNkkvODhKaDVTQllCWWZ4blpjSStkZDYreGFSeFc4L01xVDd3V0ZXckxIcGtlV25BekU2SWtOUgogICAgICAgICBqRlBZYlpESk5BZXNidmxuVE9IWGNWWDcvK0Jkc2MveEJqZlJiV0tjUEx4KzlOdkdvUStaWEplRlNEZ1IyQnJ4RDU4WAogICAgICAgICBsNnlRPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBTUN6c2FVMXh3bE9jbHpFYTZBS0kweHNIbUZkTzB3d2hWdDFNQU4yUXZrVEhLNHdZUXlielV4cAoJejBiOUdITGJRb2U3bUtjVzg5SVRuZ1FNL2JQNHpTZz0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFCaFFwK1NuU0w1OUNxdXVENGJFVVpQc1BQS2xKd0lWZmRuTkZYelVOZUtvVE9aMThGVm5jMlhTRlJha1AxTWNhdDhXKy91TmtlYWpPdz09ClgtUmVjZWl2ZWQ6IGJ5IDEwLjEwMS42OS43NiB3aXRoIFNNVFAgaWQgeDEybXIxMzU1MjY2MHBnci4yODQuMTUwOTkxNTk4Nzk4NjsKICAgICAgICBTdW4sIDA1IE5vdiAyMDE3IDEzOjA2OjI3IC0wODAwIChQU1QpClJlY2VpdmVkOiBmcm9tIFsxMC4wLjAuMTMxXSAoWzExMy4xOTcuNjUuMjJdKQogICAgICAgIGJ5IHNtdHAuZ21haWwuY29tIHdpdGggRVNNVFBTQSBpZCBmMXNtMTkxNzUxNTJwZmUuMTUwLjIwMTcuMTEuMDUuMTMuMDYuMjUKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPgogICAgICAgICh2ZXJzaW9uPVRMUzFfMiBjaXBoZXI9RUNESEUtUlNBLUFFUzEyOC1HQ00tU0hBMjU2IGJpdHM9MTI4LzEyOCk7CiAgICAgICAgU3VuLCAwNSBOb3YgMjAxNyAxMzowNjoyNyAtMDgwMCAoUFNUKQpGcm9tOiAiTWFyayBEZXJyaWN1dHQiIDxtYXJrQHRhbGlvcy5jb20+ClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBKREsgMTAgYjI5IEVhcmx5IEFjY2VzcyBpcyBhdmFpbGFibGUgb24gamRrLmphdmEubmV0CkRhdGU6IE1vbiwgMDYgTm92IDIwMTcgMTA6MDY6MTIgKzEzMDAKTWVzc2FnZS1JRDogPEVCQ0YxNzIwLTQ1NUItNDE0Qi1CNDRFLTIyODNBMDBDQzNDQkB0YWxpb3MuY29tPgpJbi1SZXBseS1UbzogPDhhZDliNDc2LWM5MzktNGY1NC04MjcxLWExNmFhZDMxNDAyY0BvcmFjbGUuY29tPgpSZWZlcmVuY2VzOiA8OGFkOWI0NzYtYzkzOS00ZjU0LTgyNzEtYTE2YWFkMzE0MDJjQG9yYWNsZS5jb20+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L3NpZ25lZDsKIGJvdW5kYXJ5PSI9X01haWxNYXRlXzk4OEEwOEMwLTA5QjQtNDBFMy04MTk2LUYyMTkzOUEzQTVGNl89IjsKIG1pY2FsZz1wZ3Atc2hhMTsgcHJvdG9jb2w9ImFwcGxpY2F0aW9uL3BncC1zaWduYXR1cmUiClgtTWFpbGVyOiBNYWlsTWF0ZSAoMi4wQkVUQXI2MDkzKQoKLS09X01haWxNYXRlXzk4OEEwOEMwLTA5QjQtNDBFMy04MTk2LUYyMTkzOUEzQTVGNl89CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOwogYm91bmRhcnk9Ij1fTWFpbE1hdGVfMjMzQzdGREMtMjM1Ny00OENELTlCRjUtM0YyNDc4OTE4QzQ5Xz0iCgoKLS09X01haWxNYXRlXzIzM0M3RkRDLTIzNTctNDhDRC05QkY1LTNGMjQ3ODkxOEM0OV89CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtODsgbWFya3VwPW1hcmtkb3duCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCk9uIDMgTm92IDIwMTcsIGF0IDIyOjQ4LCBSb3J5IE8nRG9ubmVsbCB3cm90ZToKCj4gSkRLIDEwIEVhcmx5IEFjY2Vzcz1DMj1BMCBidWlsZCAyOSBpcyBhdmFpbGFibGUgYXQgOiAtIGpkay5qYXZhLm5ldC8xMC89CgoKTG9va3MgbGlrZSBTdXJlZmlyZSBpcyB0aGUgZmlyc3QgY2FzdWFsdHk6CgpDYXVzZWQgYnk6IGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbgogICAgYXQgb3JnLmFwYWNoZS5tYXZlbi5zdXJlZmlyZS5zaGFkZS5vcmcuYXBhY2hlLmNvbW1vbnMubGFuZzMuU3lzdGVtVXRpPQpscy5pc0phdmFWZXJzaW9uQXRMZWFzdCAoU3lzdGVtVXRpbHMuamF2YToxNjI2KQogICAgYXQgb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW4uc3VyZWZpcmUuQWJzdHJhY3RTdXJlZmlyZU1vam8uZ2V0RWZmZWN0aXZlPQpKdm0gKEFic3RyYWN0U3VyZWZpcmVNb2pvLmphdmE6MjEwNykKICAgIGF0IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLnN1cmVmaXJlLkFic3RyYWN0U3VyZWZpcmVNb2pvLmdldEZvcmtDb25maT0KZ3VyYXRpb24gKEFic3RyYWN0U3VyZWZpcmVNb2pvLmphdmE6MTk3NikKICAgIGF0IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLnN1cmVmaXJlLkFic3RyYWN0U3VyZWZpcmVNb2pvLmV4ZWN1dGVQcm92aT0KZGVyIChBYnN0cmFjdFN1cmVmaXJlTW9qby5qYXZhOjExMTEpCiAgICBhdCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbi5zdXJlZmlyZS5BYnN0cmFjdFN1cmVmaXJlTW9qby5leGVjdXRlQWZ0ZXI9ClByZWNvbmRpdGlvbnNDaGVja2VkIChBYnN0cmFjdFN1cmVmaXJlTW9qby5qYXZhOjk1NCkKICAgIGF0IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLnN1cmVmaXJlLkFic3RyYWN0U3VyZWZpcmVNb2pvLmV4ZWN1dGUgKEFicz0KdHJhY3RTdXJlZmlyZU1vam8uamF2YTo4MzIpCiAgICBhdCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbi5EZWZhdWx0QnVpbGRQbHVnaW5NYW5hZ2VyLmV4ZWN1dGVNb2pvIChEZWY9CmF1bHRCdWlsZFBsdWdpbk1hbmFnZXIuamF2YToxMzQpCgpJIGd1ZXNzIHRoYXQgbmV3LW5ldyB2ZXJzaW9uIHN0cmluZyBjaGFuZ2UgaXMgZ29ubmEgYml0ZSBldmVyeW9uZS4uLi4KCgoKLS0tCiJUaGUgZWFzZSB3aXRoIHdoaWNoIGEgY2hhbmdlIGNhbiBiZSBpbXBsZW1lbnRlZCBoYXMgbm8gcmVsZXZhbmNlIGF0IGFsbCA9CnRvIHdoZXRoZXIgaXQgaXMgdGhlIHJpZ2h0IGNoYW5nZSBmb3IgdGhlIChKYXZhKSBQbGF0Zm9ybSBmb3IgYWxsIHRpbWUuIiA9CiZtZGFzaDsgTWFyayBSZWluaG9sZC4KCk1hcmsgRGVycmljdXR0Cmh0dHA6Ly93d3cudGhlb3J5aW5wcmFjdGljZS5uZXQKaHR0cDovL3d3dy5jaGFsaWNlb2ZibG9vZC5uZXQKaHR0cDovL3BsdXMuZ29vZ2xlLmNvbS8rTWFya0RlcnJpY3V0dApodHRwOi8vdHdpdHRlci5jb20vdGFsaW9zCmh0dHA6Ly9mYWNlYm9vay5jb20vbWRlcnJpY3V0dAoKLS09X01haWxNYXRlXzIzM0M3RkRDLTIzNTctNDhDRC05QkY1LTNGMjQ3ODkxOEM0OV89CkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPgo8aHRtbD4KPGhlYWQ+CjxtZXRhIGh0dHAtZXF1aXY9M0QiQ29udGVudC1UeXBlIiBjb250ZW50PTNEInRleHQveGh0bWw7IGNoYXJzZXQ9M0R1dGYtOCI9Cj4KPC9oZWFkPgo8Ym9keT4KPGRpdiBzdHlsZT0zRCJmb250LWZhbWlseTpzYW5zLXNlcmlmIj48ZGl2IHN0eWxlPTNEIndoaXRlLXNwYWNlOm5vcm1hbCI+CjxwIGRpcj0zRCJhdXRvIj5PbiAzIE5vdiAyMDE3LCBhdCAyMjo0OCwgUm9yeSBPJ0Rvbm5lbGwgd3JvdGU6PC9wPgoKPGJsb2NrcXVvdGUgc3R5bGU9M0QiYm9yZGVyLWxlZnQ6MnB4IHNvbGlkICM1ODU1RDU7IGNvbG9yOiM1ODU1RDU7IG1hcmdpbj0KOjAgMCA1cHg7IHBhZGRpbmctbGVmdDo1cHgiPgo8cCBkaXI9M0QiYXV0byI+SkRLIDEwIEVhcmx5IEFjY2Vzcz1DMj1BMCBidWlsZCAyOSBpcyBhdmFpbGFibGUgYXQgOiAtIGpkPQprLmphdmEubmV0LzEwLzwvcD4KPC9ibG9ja3F1b3RlPgoKPHAgZGlyPTNEImF1dG8iPkxvb2tzIGxpa2UgU3VyZWZpcmUgaXMgdGhlIGZpcnN0IGNhc3VhbHR5OjwvcD4KCjxwIGRpcj0zRCJhdXRvIj5DYXVzZWQgYnk6IGphdmEubGFuZy5OdWxsUG9pbnRlckV4Y2VwdGlvbjxicj4KICAgIGF0IG9yZy5hcGFjaGUubWF2ZW4uc3VyZWZpcmUuc2hhZGUub3JnLmFwYWNoZS5jb21tb25zLmxhbmczLlN5c3RlbVV0aT0KbHMuaXNKYXZhVmVyc2lvbkF0TGVhc3QgKFN5c3RlbVV0aWxzLmphdmE6MTYyNik8YnI+CiAgICBhdCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbi5zdXJlZmlyZS5BYnN0cmFjdFN1cmVmaXJlTW9qby5nZXRFZmZlY3RpdmU9Ckp2bSAoQWJzdHJhY3RTdXJlZmlyZU1vam8uamF2YToyMTA3KTxicj4KICAgIGF0IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLnN1cmVmaXJlLkFic3RyYWN0U3VyZWZpcmVNb2pvLmdldEZvcmtDb25maT0KZ3VyYXRpb24gKEFic3RyYWN0U3VyZWZpcmVNb2pvLmphdmE6MTk3Nik8YnI+CiAgICBhdCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbi5zdXJlZmlyZS5BYnN0cmFjdFN1cmVmaXJlTW9qby5leGVjdXRlUHJvdmk9CmRlciAoQWJzdHJhY3RTdXJlZmlyZU1vam8uamF2YToxMTExKTxicj4KICAgIGF0IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLnN1cmVmaXJlLkFic3RyYWN0U3VyZWZpcmVNb2pvLmV4ZWN1dGVBZnRlcj0KUHJlY29uZGl0aW9uc0NoZWNrZWQgKEFic3RyYWN0U3VyZWZpcmVNb2pvLmphdmE6OTU0KTxicj4KICAgIGF0IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLnN1cmVmaXJlLkFic3RyYWN0U3VyZWZpcmVNb2pvLmV4ZWN1dGUgKEFicz0KdHJhY3RTdXJlZmlyZU1vam8uamF2YTo4MzIpPGJyPgogICAgYXQgb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW4uRGVmYXVsdEJ1aWxkUGx1Z2luTWFuYWdlci5leGVjdXRlTW9qbyAoRGVmPQphdWx0QnVpbGRQbHVnaW5NYW5hZ2VyLmphdmE6MTM0KTwvcD4KCjxwIGRpcj0zRCJhdXRvIj5JIGd1ZXNzIHRoYXQgbmV3LW5ldyB2ZXJzaW9uIHN0cmluZyBjaGFuZ2UgaXMgZ29ubmEgYml0ZSA9CmV2ZXJ5b25lLi4uLjwvcD4KCjxocj4KCjxwIGRpcj0zRCJhdXRvIj4iVGhlIGVhc2Ugd2l0aCB3aGljaCBhIGNoYW5nZSBjYW4gYmUgaW1wbGVtZW50ZWQgaGFzIG5vIHI9CmVsZXZhbmNlIGF0IGFsbCB0byB3aGV0aGVyIGl0IGlzIHRoZSByaWdodCBjaGFuZ2UgZm9yIHRoZSAoSmF2YSkgUGxhdGZvcm09CiBmb3IgYWxsIHRpbWUuIiA9RTI9ODA9OTQgTWFyayBSZWluaG9sZC48L3A+Cgo8cCBkaXI9M0QiYXV0byI+TWFyayBEZXJyaWN1dHQ8YnI+CjxhIGhyZWY9M0QiaHR0cDovL3d3dy50aGVvcnlpbnByYWN0aWNlLm5ldCI+aHR0cDovL3d3dy50aGVvcnlpbnByYWN0aWNlLm49CmV0PC9hPjxicj4KPGEgaHJlZj0zRCJodHRwOi8vd3d3LmNoYWxpY2VvZmJsb29kLm5ldCI+aHR0cDovL3d3dy5jaGFsaWNlb2ZibG9vZC5uZXQ8Lz0KYT48YnI+CjxhIGhyZWY9M0QiaHR0cDovL3BsdXMuZ29vZ2xlLmNvbS8rTWFya0RlcnJpY3V0dCI+aHR0cDovL3BsdXMuZ29vZ2xlLmNvbS89CitNYXJrRGVycmljdXR0PC9hPjxicj4KPGEgaHJlZj0zRCJodHRwOi8vdHdpdHRlci5jb20vdGFsaW9zIj5odHRwOi8vdHdpdHRlci5jb20vdGFsaW9zPC9hPjxicj4KPGEgaHJlZj0zRCJodHRwOi8vZmFjZWJvb2suY29tL21kZXJyaWN1dHQiPmh0dHA6Ly9mYWNlYm9vay5jb20vbWRlcnJpY3V0dD0KPC9hPjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4KCi0tPV9NYWlsTWF0ZV8yMzNDN0ZEQy0yMzU3LTQ4Q0QtOUJGNS0zRjI0Nzg5MThDNDlfPS0tCgotLT1fTWFpbE1hdGVfOTg4QTA4QzAtMDlCNC00MEUzLTgxOTYtRjIxOTM5QTNBNUY2Xz0KQ29udGVudC1EZXNjcmlwdGlvbjogT3BlblBHUCBkaWdpdGFsIHNpZ25hdHVyZQpDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1zaWduYXR1cmUuYXNjCkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vcGdwLXNpZ25hdHVyZTsgbmFtZT1zaWduYXR1cmUuYXNjCgotLS0tLUJFR0lOIFBHUCBTSUdOQVRVUkUtLS0tLQpWZXJzaW9uOiBHbnVQRy9NYWNHUEcyIHYyCgppUUZFQkFFQkFnQXVGaUVFTGRTS0dNVDJ0Q0ZsaEx4azZOcURaSE5PMGtVRkFsbi9mVVFRSEcxaGNtdEFkR0ZzCmFXOXpMbU52YlFBS0NSRG8yb05rYzA3U1JSNnFCLzlJU0psaU1EeHVxNGFSZmg2YkN0SDI3WlRZQjFmYUhvcEEKdXpWYlBCZXplUi92UXpwQkRHRUNmc0ltR0pHOTlYK0RMNm5aUWc4VHZxNTIwVmRwVnFQVGtSeVp6TXlSdnpnVwpaY05YWXFzU1F5RlpUWGYybHdxZW5pMyt3dElhdUFmbUw0Mk9CcHl5blZMYkErQ2g3TnlDZDZPeGhkWG1Hc3hGCi8vNldvemgxMTE1akZDc3RGbmpIS0F6QnVNTjI3U09XU1cyL2didjNKeFpwUVF2RzFwbGVNc1dDbnVYOGhHVHAKQWJpYmRIQ2llZFQxVEdjdFNka2MwNDF0MUVRTVg3UTl5Rnh3ZTgySGNNT3FNejFvZmJkQUlPV2VoeEsyRjZ0Mgpwb2k0TmEvZkJ0U0FvWFEzYnlaZWhQUGVBYTJEZjl6cm1NeTZpTDFEWGNZMlZZVnNGLzNvCj02RG1iCi0tLS0tRU5EIFBHUCBTSUdOQVRVUkUtLS0tLQoKLS09X01haWxNYXRlXzk4OEEwOEMwLTA5QjQtNDBFMy04MTk2LUYyMTkzOUEzQTVGNl89LS0KCkZyb20gZGV2LXJldHVybi0xMjQwNTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIFNlcCAxOCAxNTo0Mjo0MSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwNTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQjRGRjZGOUQ1Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMTggU2VwIDIwMTcgMTU6NDI6NDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxMDI3NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBTZXAgMjAxNyAxNTo0MjozNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTAxNzQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggU2VwIDIwMTcgMTU6NDI6MzYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMDE2MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDE4IFNlcCAyMDE3IDE1OjQyOjM2IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAxOCBTZXAgMjAxNyAxNTo0MjozNiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDhDMzg5Qzc5NkIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE4IFNlcCAyMDE3IDE1OjQyOjM1ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMS42NzEKWC1TcGFtLUxldmVsOiAqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0xLjY3MSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUtBTV9BU0NJSV9ESVZJREVSUz0wLjgsIFNQRl9IRUxPX1BBU1M9LTAuMDAxLCBTUEZfU09GVEZBSUw9MC45NzJdCglhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgxMDI0LWJpdCBrZXkpIGhlYWRlci5kPWhvbnRvbi5vcmcKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGdteVpDdTJHQTRHTiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMTggU2VwIDIwMTcgMTU6NDI6MzMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gYml6NDYuaW5tb3Rpb25ob3N0aW5nLmNvbSAoYml6NDYuaW5tb3Rpb25ob3N0aW5nLmNvbSBbMjA1LjEzNC4yNTAuMTYwXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDYwMEM5NUYyOTgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE4IFNlcCAyMDE3IDE1OjQyOjMzICswMDAwIChVVEMpCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgcT1kbnMvdHh0OyBjPXJlbGF4ZWQvcmVsYXhlZDsgZD1ob250b24ub3JnOwoJIHM9ZGVmYXVsdDsgaD1NZXNzYWdlLUlkOkluLVJlcGx5LVRvOlRvOlJlZmVyZW5jZXM6RGF0ZTpTdWJqZWN0Ok1pbWUtVmVyc2lvbjoKCUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6Q29udGVudC1UeXBlOkZyb206U2VuZGVyOlJlcGx5LVRvOkNjOkNvbnRlbnQtSUQ6CglDb250ZW50LURlc2NyaXB0aW9uOlJlc2VudC1EYXRlOlJlc2VudC1Gcm9tOlJlc2VudC1TZW5kZXI6UmVzZW50LVRvOlJlc2VudC1DYwoJOlJlc2VudC1NZXNzYWdlLUlEOkxpc3QtSWQ6TGlzdC1IZWxwOkxpc3QtVW5zdWJzY3JpYmU6TGlzdC1TdWJzY3JpYmU6CglMaXN0LVBvc3Q6TGlzdC1Pd25lcjpMaXN0LUFyY2hpdmU7CgliaD1EVHg4bGpnNlhucjhZUDlGaUJXbFI0UWJZdGFVT1doREZrTmFjNEpyTDlRPTsgYj1XTVFoUWRnQ2dJcDZyVUJZN05UdkJiTWVWSwoJaEFaeVJnQnJmeEhqa0tjT1dwdTZpTWwyNFphT2JNOGRzaWxPZ1AzQTNYRU9PSHRheXc0c2hpMVJvS2l6QWVIb0d3M0pvRG9OTE1ETUoKCUVMMTJlcG44by95UkRPSWlLQlFIZ2dKL0E2QlZRRGtDd1QvMURSNVFpK2RHWXZTQ3RrSG1TOU5jc2xzT0QrS3B2RFhjPTsKUmVjZWl2ZWQ6IGZyb20gMTczLTIyOC04OC0xMTQuZHNsLmR5bmFtaWMuZnVzaW9uYnJvYWRiYW5kLmNvbSAoWzE3My4yMjguODguMTE0XTo1NzExMCBoZWxvPVsxOTIuMTY4LjEuMjhdKQoJYnkgYml6NDYuaW5tb3Rpb25ob3N0aW5nLmNvbSB3aXRoIGVzbXRwc2EgKFRMU3YxLjI6RUNESEUtUlNBLUFFUzI1Ni1HQ00tU0hBMzg0OjI1NikKCShFeGltIDQuODcpCgkoZW52ZWxvcGUtZnJvbSA8Y2hhc0Bob250b24ub3JnPikKCWlkIDFkdHlCWi0wMDA0QU8tQzkKCWZvciBkZXZAbWF2ZW4uYXBhY2hlLm9yZzsgTW9uLCAxOCBTZXAgMjAxNyAwODo0MjoyNSAtMDcwMApGcm9tOiBDaGFybGVzIEhvbnRvbiA8Y2hhc0Bob250b24ub3JnPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXMtYXNjaWkKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpNaW1lLVZlcnNpb246IDEuMCAoTWFjIE9TIFggTWFpbCAxMC4zIFwoMzI3M1wpKQpTdWJqZWN0OiBSZTogVW5kZXJzdGFuZGluZyBNTkctNjIwOSAod2FzOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEpCkRhdGU6IE1vbiwgMTggU2VwIDIwMTcgMDg6NDI6MjYgLTA3MDAKUmVmZXJlbmNlczogPENBK25Qbk13TUNxT19FdGNCVzVfM3JNNzEtdENyaXRwNFVrc3lmUG1ER0FZcjZ4ej1vUUBtYWlsLmdtYWlsLmNvbT4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Q0ErblBuTXdNQ3FPX0V0Y0JXNV8zck03MS10Q3JpdHA0VWtzeWZQbURHQVlyNnh6PW9RQG1haWwuZ21haWwuY29tPgpNZXNzYWdlLUlkOiA8RjFGOEIzQ0YtRERBQy00NEJBLUFFQjctNDEyMkM4ODdDNEFCQGhvbnRvbi5vcmc+ClgtTWFpbGVyOiBBcHBsZSBNYWlsICgyLjMyNzMpClgtT3V0R29pbmctU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC4yClgtQW50aUFidXNlOiBUaGlzIGhlYWRlciB3YXMgYWRkZWQgdG8gdHJhY2sgYWJ1c2UsIHBsZWFzZSBpbmNsdWRlIGl0IHdpdGggYW55IGFidXNlIHJlcG9ydApYLUFudGlBYnVzZTogUHJpbWFyeSBIb3N0bmFtZSAtIGJpejQ2LmlubW90aW9uaG9zdGluZy5jb20KWC1BbnRpQWJ1c2U6IE9yaWdpbmFsIERvbWFpbiAtIG1hdmVuLmFwYWNoZS5vcmcKWC1BbnRpQWJ1c2U6IE9yaWdpbmF0b3IvQ2FsbGVyIFVJRC9HSUQgLSBbNDcgMTJdIC8gWzQ3IDEyXQpYLUFudGlBYnVzZTogU2VuZGVyIEFkZHJlc3MgRG9tYWluIC0gaG9udG9uLm9yZwpYLUdldC1NZXNzYWdlLVNlbmRlci1WaWE6IGJpejQ2LmlubW90aW9uaG9zdGluZy5jb206IGF1dGhlbnRpY2F0ZWRfaWQ6IGNoYXMraG9udG9uLm9yZy9vbmx5IHVzZXIgY29uZmlybWVkL3ZpcnR1YWwgYWNjb3VudCBub3QgY29uZmlybWVkClgtQXV0aGVudGljYXRlZC1TZW5kZXI6IGJpejQ2LmlubW90aW9uaG9zdGluZy5jb206IGNoYXNAaG9udG9uLm9yZwpYLVNvdXJjZTogClgtU291cmNlLUFyZ3M6IApYLVNvdXJjZS1EaXI6IAoKPTQ2cm9tIGEgc2VjdXJpdHkgcGVyc3BlY3RpdmUsIEkgd291bGQgZXhwZWN0IHRoYXQgY29yZSBjbGFzc2VzIGNhbiBub3QgPQpiZSBvdmVycmlkZGVuIGJ5IGV4dGVuc2lvbnMgb3IgcGx1Z2lucy4gIExpa2V3aXNlLCBleHRlbnNpb24gY2xhc3NlcyBjYW4gPQpub3QgYmUgb3ZlcnJpZGRlbiBieSBwbHVnaW5zLgoKR2l2ZW4gdGhlIHVzZSBjYXNlIG9mIGRlZmF1bHRpbmcgcmVzb3VyY2VzLCBJIHdvdWxkIGV4cGVjdCB0aGF0IHRoZSA9CnBsdWdpbiByZXNvdXJjZXMgYXJlIGZpcnN0LCBmb2xsb3dlZCBieSBwbHVnaW4gc3BlY2lmaWMgZXh0ZW5zaW9ucywgPQpmb2xsb3dlZCBieSBnbG9iYWwgZXh0ZW5zaW9ucywgZmluYWxseSBjb3JlIG1hdmVuLiAgKFRoaXMgYWxsb3dzID0KcmVzb3VyY2VzIHRvIGJlIHNwZWNpYWxpemVkLikKCnJlZ2FyZHMsCmNoYXMKCj4gT24gU2VwIDE4LCAyMDE3LCBhdCAzOjIwIEFNLCBTdGVwaGVuIENvbm5vbGx5ID0KPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+PTIwCj4gSG1tbSwgc28gSSBkaWQgc29tZSBleHBlcmltZW50czoKPj0yMAo+IElmIHlvdSB3YW50IHRvIHJpZGUgYWxvbmcsIHRoZSBleHBlcmltZW50cyBhcmUgYXQ6Cj49MjAKPiBodHRwczovL2dpdGh1Yi5jb20vc3RlcGhlbmMvbW5nLTYyMDkKPj0yMAo+IFNvIGJhc2ljYWxseSBJIGhhdmUgYSBwbHVnaW4gdGhhdCBkb2VzIHRocmVlIGRpZmZlcmVudCB0ZXN0czoKPj0yMAo+ICAgICAgICBnZXRMb2coKS5pbmZvKCJJbmplY3RlZCBieSBAQ29tcG9uZW50OiIpOwo+ICAgICAgICBmb3IgKExpZmVjeWNsZSBsIDogbGlmZWN5Y2xlcykgewo+ICAgICAgICAgICAgaWYgKGwuZ2V0SWQoKS5zdGFydHNXaXRoKCJtbmctNjIwOS0iKSkgewo+ICAgICAgICAgICAgICAgIGdldExvZygpLmluZm8oIiAgIiArIGwuZ2V0SWQoKS5zdWJzdHJpbmcoOSkpOwo+ICAgICAgICAgICAgfQo+ICAgICAgICB9Cj4gICAgICAgIGdldExvZygpLmluZm8oIiIpOwo+ICAgICAgICBnZXRMb2coKS5pbmZvKCJPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOiIpOwo+ICAgICAgICB0cnkgewo+ICAgICAgICAgICAgQ2xhc3NMb2FkZXIgdGNjbCA9M0QgTGlzdE1vam8uY2xhc3MuZ2V0Q2xhc3NMb2FkZXIoKTsKPiAgICAgICAgICAgIGZvciAoVVJMIHVybCA6Cj4gQ29sbGVjdGlvbnMubGlzdCh0Y2NsLmdldFJlc291cmNlcygiTUVUQS1JTkYvcHJvYmUudHh0IikpKSB7Cj4gICAgICAgICAgICAgICAgSW5wdXRTdHJlYW0gaXMgPTNEIHVybC5vcGVuU3RyZWFtKCk7Cj4gICAgICAgICAgICAgICAgdHJ5IHsKPiAgICAgICAgICAgICAgICAgICAgZ2V0TG9nKCkuaW5mbygiICAiICsgSU9VdGlsLnRvU3RyaW5nKGlzKS50cmltKCkpOwo+ICAgICAgICAgICAgICAgIH0gZmluYWxseSB7Cj4gICAgICAgICAgICAgICAgICAgIGlzLmNsb3NlKCk7Cj4gICAgICAgICAgICAgICAgfQo+ICAgICAgICAgICAgfQo+ICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7Cj4gICAgICAgICAgICB0aHJvdyBuZXcgTW9qb0V4ZWN1dGlvbkV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSwgZSk7Cj4gICAgICAgIH0KPiAgICAgICAgZ2V0TG9nKCkuaW5mbygiIik7Cj4gICAgICAgIGdldExvZygpLmluZm8oIk9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoiKTsKPiAgICAgICAgdHJ5IHsKPiAgICAgICAgICAgIENsYXNzTG9hZGVyIHRjY2wgPTNECj4gVGhyZWFkLmN1cnJlbnRUaHJlYWQoKS5nZXRDb250ZXh0Q2xhc3NMb2FkZXIoKTsKPiAgICAgICAgICAgIGZvciAoVVJMIHVybCA6Cj4gQ29sbGVjdGlvbnMubGlzdCh0Y2NsLmdldFJlc291cmNlcygiTUVUQS1JTkYvcHJvYmUudHh0IikpKSB7Cj4gICAgICAgICAgICAgICAgSW5wdXRTdHJlYW0gaXMgPTNEIHVybC5vcGVuU3RyZWFtKCk7Cj4gICAgICAgICAgICAgICAgdHJ5IHsKPiAgICAgICAgICAgICAgICAgICAgZ2V0TG9nKCkuaW5mbygiICAiICsgSU9VdGlsLnRvU3RyaW5nKGlzKS50cmltKCkpOwo+ICAgICAgICAgICAgICAgIH0gZmluYWxseSB7Cj4gICAgICAgICAgICAgICAgICAgIGlzLmNsb3NlKCk7Cj4gICAgICAgICAgICAgICAgfQo+ICAgICAgICAgICAgfQo+ICAgICAgICB9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7Cj4gICAgICAgICAgICB0aHJvdyBuZXcgTW9qb0V4ZWN1dGlvbkV4Y2VwdGlvbihlLmdldE1lc3NhZ2UoKSwgZSk7Cj4gICAgICAgIH0KPj0yMAo+PTIwCj4gRmlyc3Qgb2ZmLCBJIGhpamFjayB0aGUgQENvbXBvbmVudCBpbmplY3Rpb24gd2l0aCBzb21lIGZha2UgPQoibGlmZWN5Y2xlcyIgdG8KPiBzZWUgd2hhdCAicGxleHVzIiBleHBvc2VzIHRvIHRoZSBwbHVnaW5zLgo+PTIwCj4gU2Vjb25kLCBJIGxvb2sgYXQgdGhlIHJlc291cmNlcyB2aXNpYmxlIGZyb20gdGhlIHBsdWdpbidzIGNsYXNzbG9hZGVyLgo+PTIwCj4gRmluYWxseSwgSSBsb29rIGF0IHRoZSByZXNvdXJjZXMgdmlzaWJsZSBmcm9tIHRoZSBUQ0NMLgo+PTIwCj4gSGVyZSdzIHdoYXQgMy41LjAgb3V0cHV0czoKPj0yMAo+IFtJTkZPXQo+ID0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gW0lORk9dIEJ1aWxkaW5nIEJvdGggZXh0ZW5zaW9ucy4gT3JkZXI6IHBsdWdpbjEsIHBsdWdpbjIgMS4wLVNOQVBTSE9UCj4gW0lORk9dCj4gPQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBbSU5GT10KPiBbSU5GT10gLS0tIHBsdWdpbjE6MS4wLVNOQVBTSE9UOmxpc3QgKGRlZmF1bHQpIEAgcHJvYmUxIC0tLQo+IFtJTkZPXSBJbmplY3RlZCBieSBAQ29tcG9uZW50Ogo+IFtJTkZPXSAgIHBsdWdpbjEKPiBbSU5GT10KPiBbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKPiBbSU5GT10gICBwbHVnaW4xCj4gW0lORk9dCj4gW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKPiBbSU5GT10gICBwbHVnaW4xCj4gW0lORk9dCj4gW0lORk9dIC0tLSBwbHVnaW4yOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlMSAtLS0KPiBbSU5GT10gSW5qZWN0ZWQgYnkgQENvbXBvbmVudDoKPiBbSU5GT10gICBwbHVnaW4yCj4gW0lORk9dCj4gW0lORk9dIE9uIFBsdWdpbiBDbGFzcyBMb2FkZXI6Cj4gW0lORk9dICAgcGx1Z2luMgo+IFtJTkZPXQo+IFtJTkZPXSBPbiBUaHJlYWQgQ29udGV4dCBDbGFzcyBMb2FkZXI6Cj4gW0lORk9dICAgcGx1Z2luMgo+IFtJTkZPXQo+IFtJTkZPXQo+ID0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gW0lORk9dIEJ1aWxkaW5nIE9ubHkgcGx1Z2luMSBleHRlbnNpb25zLiBPcmRlcjogcGx1Z2luMSwgcGx1Z2luMgo+IDEuMC1TTkFQU0hPVAo+IFtJTkZPXQo+ID0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gW0lORk9dCj4gW0lORk9dIC0tLSBwbHVnaW4xOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlMiAtLS0KPiBbSU5GT10gSW5qZWN0ZWQgYnkgQENvbXBvbmVudDoKPiBbSU5GT10gICBwbHVnaW4xCj4gW0lORk9dCj4gW0lORk9dIE9uIFBsdWdpbiBDbGFzcyBMb2FkZXI6Cj4gW0lORk9dICAgcGx1Z2luMQo+IFtJTkZPXQo+IFtJTkZPXSBPbiBUaHJlYWQgQ29udGV4dCBDbGFzcyBMb2FkZXI6Cj4gW0lORk9dICAgcGx1Z2luMQo+IFtJTkZPXQo+IFtJTkZPXSAtLS0gcGx1Z2luMjoxLjAtU05BUFNIT1Q6bGlzdCAoZGVmYXVsdCkgQCBwcm9iZTIgLS0tCj4gW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6Cj4gW0lORk9dICAgcGx1Z2luMgo+IFtJTkZPXSAgIHBsdWdpbjEKPiBbSU5GT10gICBleHRqYXIyCj4gW0lORk9dICAgZXh0amFyMQo+IFtJTkZPXQo+IFtJTkZPXSBPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOgo+IFtJTkZPXSAgIHBsdWdpbjIKPiBbSU5GT10gICBleHRqYXIyCj4gW0lORk9dICAgZXh0amFyMQo+IFtJTkZPXQo+IFtJTkZPXSBPbiBUaHJlYWQgQ29udGV4dCBDbGFzcyBMb2FkZXI6Cj4gW0lORk9dICAgcGx1Z2luMgo+IFtJTkZPXSAgIGV4dGphcjIKPiBbSU5GT10gICBleHRqYXIxCj4gW0lORk9dCj4gW0lORk9dCj4gPQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBbSU5GT10gQnVpbGRpbmcgQm90aCBleHRlbnNpb25zLiBPcmRlcjogcGx1Z2luMiwgcGx1Z2luMSAxLjAtU05BUFNIT1QKPiBbSU5GT10KPiA9Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFtJTkZPXQo+IFtJTkZPXSAtLS0gcGx1Z2luMjoxLjAtU05BUFNIT1Q6bGlzdCAoZGVmYXVsdCkgQCBwcm9iZTMgLS0tCj4gW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6Cj4gW0lORk9dICAgcGx1Z2luMgo+IFtJTkZPXQo+IFtJTkZPXSBPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOgo+IFtJTkZPXSAgIHBsdWdpbjIKPiBbSU5GT10KPiBbSU5GT10gT24gVGhyZWFkIENvbnRleHQgQ2xhc3MgTG9hZGVyOgo+IFtJTkZPXSAgIHBsdWdpbjIKPiBbSU5GT10KPiBbSU5GT10gLS0tIHBsdWdpbjE6MS4wLVNOQVBTSE9UOmxpc3QgKGRlZmF1bHQpIEAgcHJvYmUzIC0tLQo+IFtJTkZPXSBJbmplY3RlZCBieSBAQ29tcG9uZW50Ogo+IFtJTkZPXSAgIHBsdWdpbjEKPiBbSU5GT10KPiBbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKPiBbSU5GT10gICBwbHVnaW4xCj4gW0lORk9dCj4gW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKPiBbSU5GT10gICBwbHVnaW4xCj4gW0lORk9dCj4gW0lORk9dCj4gPQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBbSU5GT10gQnVpbGRpbmcgQm90aCBleHRlbnNpb25zLiBPcmRlcjogcGx1Z2luMSwgcGx1Z2luMi4gRXh0cmEgPQpkZXBlbmRlbmN5Cj4gaW4gcGx1Z2luMSAxLjAtU05BUFNIT1QKPiBbSU5GT10KPiA9Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFtJTkZPXQo+IFtJTkZPXSAtLS0gcGx1Z2luMToxLjAtU05BUFNIT1Q6bGlzdCAoZGVmYXVsdCkgQCBwcm9iZTQgLS0tCj4gW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6Cj4gW0lORk9dICAgZXh0amFyMgo+IFtJTkZPXSAgIHBsdWdpbjEKPiBbSU5GT10KPiBbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKPiBbSU5GT10gICBwbHVnaW4xCj4gW0lORk9dICAgZXh0amFyMgo+IFtJTkZPXQo+IFtJTkZPXSBPbiBUaHJlYWQgQ29udGV4dCBDbGFzcyBMb2FkZXI6Cj4gW0lORk9dICAgcGx1Z2luMQo+IFtJTkZPXSAgIGV4dGphcjIKPiBbSU5GT10KPiBbSU5GT10gLS0tIHBsdWdpbjI6MS4wLVNOQVBTSE9UOmxpc3QgKGRlZmF1bHQpIEAgcHJvYmU0IC0tLQo+IFtJTkZPXSBJbmplY3RlZCBieSBAQ29tcG9uZW50Ogo+IFtJTkZPXSAgIHBsdWdpbjIKPiBbSU5GT10KPiBbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKPiBbSU5GT10gICBwbHVnaW4yCj4gW0lORk9dCj4gW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKPiBbSU5GT10gICBwbHVnaW4yCj4gW0lORk9dCj4gPQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj0yMAo+IE5vdyBpZiB3ZSBydW4gd2l0aCAzLjUuMSAod2hpY2ggY29udGFpbnMgdGhlIGZpeCBmb3IgTU5HLTYyMDkpCj49MjAKPiBbSU5GT10KPiA9Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFtJTkZPXSBCdWlsZGluZyBCb3RoIGV4dGVuc2lvbnMuIE9yZGVyOiBwbHVnaW4xLCBwbHVnaW4yIDEuMC1TTkFQU0hPVAo+IFtJTkZPXQo+ID0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gW0lORk9dCj4gW0lORk9dIC0tLSBwbHVnaW4xOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlMSAtLS0KPiBbSU5GT10gSW5qZWN0ZWQgYnkgQENvbXBvbmVudDoKPiBbSU5GT10gICBwbHVnaW4yCj4gW0lORk9dICAgcGx1Z2luMQo+IFtJTkZPXSAgIGV4dGphcjIKPiBbSU5GT10gICBleHRqYXIxCj49MjAKPiBJIHdvdWxkIGhhdmUgZXhwZWN0ZWQgdGhlIHNlcXVlbmNlIHRvIGJlOiAvYnVpbGQvZXh0ZW5zaW9ucyBpbiBwb20gPQpvcmRlcgo+IGZvbGxvd2VkIGJ5IC9idWlsZC9wbHVnaW5zL3BsdWdpbltleHRlbnNpb25zPTNEdHJ1ZV0gaW4gcG9tIG9yZGVyLiA9ClRoaXMgc2VlbXMKPiB0byBiZSB0aGUgcmV2ZXJzZSBvcmRlci4gSXMgdGhpcyBhIGJ1Zz8KPj0yMAo+IFtJTkZPXQo+IFtJTkZPXSBPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOgo+IFtJTkZPXSAgIHBsdWdpbjEKPj0yMAo+IFdlIGhhdmVuJ3QgY2hhbmdlZCBob3cgdGhlIHBsdWdpbiBjbGFzc2xvYWRlciBnZXRzIGluc3RhbnRpYXRlZCBpbgo+IE1ORy02MjA5LiBJdCBzZWVtcyBzdHJhbmdlIHRvIG1lIHRoYXQgdGhpcyBleGNsdWRlcyB0aGUKPiAvYnVpbGQvZXh0ZW5zaW9ucy4uLiBvbiB0aGUgb3RoZXIgaGFuZCB0aGlzIGNvdWxkIGJlIGEgc2lkZS1lZmZlY3Qgb2YgPQpob3cKPiB0aGUgY2xhc3Nsb2FkZXIgZ2V0cyBpbnN0YW50aWF0ZWQgKHdoaWNoIHdvdWxkIG1lYW4gdXNpbmcgdGhlIHBsdWdpbidzCj4gY2xhc3Nsb2FkZXIgaXMgcHJvYmFibHkgYSBiYWQgaWRlYSwgcGVyaGFwcyB3ZSBuZWVkIHRvIHByb3ZpZGUgdGhlID0KYWJpbGl0eQo+IHRvIGluamVjdCB0aGUgY2xhc3Nsb2FkZXIgYXMgYSBAQ29tcG9uZW50IG9yIHNvbWV0aGluZykKPj0yMAo+IFtJTkZPXQo+IFtJTkZPXSBPbiBUaHJlYWQgQ29udGV4dCBDbGFzcyBMb2FkZXI6Cj4gW0lORk9dICAgZXh0amFyMQo+IFtJTkZPXSAgIGV4dGphcjIKPj0yMAo+IE9LLCB3ZSBzZWUgdGhlIGNoYW5nZSB2cyAzLjUuMCBhcyB0aGlzIGlzIG5vdyB0aGUgcHJvamVjdCByZWFsbS4uLiA9CnRob3VnaCBJCj4gd291bGQgaGF2ZSBleHBlY3RlZCB0aGUgcHJvamVjdCByZWFsbSB0byBhbHNvIGluY2x1ZGUgdGhlIHBsdWdpbnMgdGhhdCA9CndlcmUKPiBtYXJrZWQgYXMgZXh0ZW5zaW9ucy4uLgo+PTIwCj4gW0lORk9dCj4gW0lORk9dIC0tLSBwbHVnaW4yOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlMSAtLS0KPiBbSU5GT10gSW5qZWN0ZWQgYnkgQENvbXBvbmVudDoKPiBbSU5GT10gICBwbHVnaW4yCj4gW0lORk9dICAgcGx1Z2luMQo+IFtJTkZPXSAgIGV4dGphcjIKPiBbSU5GT10gICBleHRqYXIxCj4gW0lORk9dCj4gW0lORk9dIE9uIFBsdWdpbiBDbGFzcyBMb2FkZXI6Cj4gW0lORk9dICAgcGx1Z2luMgo+IFtJTkZPXQo+IFtJTkZPXSBPbiBUaHJlYWQgQ29udGV4dCBDbGFzcyBMb2FkZXI6Cj4gW0lORk9dICAgZXh0amFyMQo+IFtJTkZPXSAgIGV4dGphcjIKPiBbSU5GT10KPiBbSU5GT10KPiA9Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFtJTkZPXSBCdWlsZGluZyBPbmx5IHBsdWdpbjEgZXh0ZW5zaW9ucy4gT3JkZXI6IHBsdWdpbjEsIHBsdWdpbjIKPiAxLjAtU05BUFNIT1QKPiBbSU5GT10KPiA9Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFtJTkZPXQo+IFtJTkZPXSAtLS0gcGx1Z2luMToxLjAtU05BUFNIT1Q6bGlzdCAoZGVmYXVsdCkgQCBwcm9iZTIgLS0tCj4gW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6Cj4gW0lORk9dICAgcGx1Z2luMQo+IFtJTkZPXSAgIGV4dGphcjIKPiBbSU5GT10gICBleHRqYXIxCj49MjAKPiBBcyBleHBlY3RlZCwgZ2l2ZW4gdGhhdCBwbHVnaW4yIGlzIG5vdCBhbiBleHRlbnNpb24gaGVyZSAoYXBhcnQgZnJvbSA9CnRoZQo+IG9yZGVyIGJlaW5nIHJldmVyc2Ugb2Ygd2hhdCBJIGV4cGVjdCkKPj0yMAo+IFtJTkZPXQo+IFtJTkZPXSBPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOgo+IFtJTkZPXSAgIHBsdWdpbjEKPiBbSU5GT10KPiBbSU5GT10gT24gVGhyZWFkIENvbnRleHQgQ2xhc3MgTG9hZGVyOgo+IFtJTkZPXSAgIGV4dGphcjIKPiBbSU5GT10gICBleHRqYXIxCj4gW0lORk9dCj4gW0lORk9dIC0tLSBwbHVnaW4yOjEuMC1TTkFQU0hPVDpsaXN0IChkZWZhdWx0KSBAIHByb2JlMiAtLS0KPiBbSU5GT10gSW5qZWN0ZWQgYnkgQENvbXBvbmVudDoKPiBbSU5GT10gICBwbHVnaW4yCj4gW0lORk9dICAgcGx1Z2luMQo+IFtJTkZPXSAgIGV4dGphcjIKPiBbSU5GT10gICBleHRqYXIxCj49MjAKPiBBcyBleHBlY3RlZCAobW9kdWxvIG9yZGVyKSBiZWNhdXNlIGEgcGx1Z2luIHNob3VsZCBzZWUgYW55ID0Kc2VsZi1kZWZpbmVkCj4gZXh0ZW5zaW9ucy4gSSB3b3VsZCBleHBlY3QgdGhlIG9yZGVyIHRvIGJlIHBsdWdpbjIsIGV4dGphcjEsIGV4dGphcjIsCj4gcGx1Z2luMSAoYmVjYXVzZSB0aGUgcGx1Z2luIGlzIG5vdCBhbiBleHRlbnNpb24sIGl0IHNob3VsZCBoYXZlIGl0cwo+IGV4dGVuc2lvbnMgYXMgcHJpb3JpdHkgb3ZlciB0aGUgcHJvamVjdCByZWFsbXMncykKPj0yMAo+IFtJTkZPXQo+IFtJTkZPXSBPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOgo+IFtJTkZPXSAgIHBsdWdpbjIKPiBbSU5GT10gICBleHRqYXIyCj4gW0lORk9dICAgZXh0amFyMQo+PTIwCj4gV0FUISBvaywgdGhpcyBJIGRvIG5vdCB1bmRlcnN0YW5kLiBTb21ldGhpbmcgaXMgd3Jvbmcgc29tZXdoZXJlLCA9CmVpdGhlcgo+IHBsdWdpbjEncyBjbGFzc2xvYWRlciBzaG91bGQgYWxzbyBpbmNsdWRlIGV4dGphcjIgYW5kIGV4dGphcjEgb3IgdGhpcyA9Cm9uZQo+IHNob3VsZG4ndC4gQW5kIHNpbmNlIHdlIGhhdmUgZXh0amFyMSBhbmQgZXh0amFyMiB3aGVyZSBpcyBwbHVnaW4xPyAoaWYgPQp0aGUKPiBpbmNsdXNpb24gaXMgY29ycmVjdCBoZXJlIEkgZXhwZWN0IHBsdWdpbjIsIGV4dGphcjEsIGV4dGphcjIsIHBsdWdpbjEgPQphcyBhCj4gcGx1Z2luIHRoYXQgaXMgbm90IGFuIGV4dGVuc2lvbiBwbHVnaW4gc2hvdWxkIGhhdmUgaXRzIG93biA9CmltcGxlbWVudGF0aW9uCj4gZmlyc3QgZm9sbG93ZWQgdGhlbiBieSAvYnVpbGQvZXh0ZW5zaW9ucyBpbiBwb20gb3JkZXIgYW5kIHRoZW4KPiAvYnVpbGQvcGx1Z2lucy9wbHVnaW5bZXh0ZW5zaW9uPTNEPTNEdHJ1ZV0KPj0yMAo+IFRoaXMgaXMgbWFraW5nIG5vIHNlbnNlIGF0IGFsbCEKPj0yMAo+IFtJTkZPXQo+IFtJTkZPXSBPbiBUaHJlYWQgQ29udGV4dCBDbGFzcyBMb2FkZXI6Cj4gW0lORk9dICAgcGx1Z2luMgo+IFtJTkZPXSAgIGV4dGphcjIKPiBbSU5GT10gICBleHRqYXIxCj49MjAKPiBTbyBUQ0NMIGlzIHRoZSBwbHVnaW4gY2xhc3Nsb2FkZXIgaGVyZSBhcyBleHBlY3RlZAo+PTIwCj4gW0lORk9dCj4gW0lORk9dCj4gPQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBbSU5GT10gQnVpbGRpbmcgQm90aCBleHRlbnNpb25zLiBPcmRlcjogcGx1Z2luMiwgcGx1Z2luMSAxLjAtU05BUFNIT1QKPiBbSU5GT10KPiA9Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFtJTkZPXQo+IFtJTkZPXSAtLS0gcGx1Z2luMjoxLjAtU05BUFNIT1Q6bGlzdCAoZGVmYXVsdCkgQCBwcm9iZTMgLS0tCj4gW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6Cj4gW0lORk9dICAgcGx1Z2luMgo+IFtJTkZPXSAgIHBsdWdpbjEKPiBbSU5GT10gICBleHRqYXIyCj4gW0lORk9dICAgZXh0amFyMQo+PTIwCj4gSSBub3RlIHRoYXQgdGhlIGNoYW5nZSBpbiBwb20gb3JkZXIgaGFzIGhhZCBubyBlZmZlY3Qgb24gdGhlIGNvbXBvbmVudAo+IHNlcXVlbmNlLiBUaGlzIGxlYWRzIG1lIHRvIHN1c3BlY3QgdGhhdCBwbGV4dXMgaGFzIHNvbWUgcnVsZSB0aGF0IGlzCj4gZGVmaW5pbmcgdGhlIHNlcXVlbmNpbmcuLi4gaXQgd291bGQgYmUgZ29vZCBpZiB3ZSBjb3VsZCBkb2N1bWVudCB0aGF0Cj4gc29tZXdoZXJlLi4uCj49MjAKPiBbSU5GT10KPiBbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKPiBbSU5GT10gICBwbHVnaW4yCj4gW0lORk9dCj4gW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKPiBbSU5GT10gICBleHRqYXIyCj4gW0lORk9dICAgZXh0amFyMQo+IFtJTkZPXQo+IFtJTkZPXSAtLS0gcGx1Z2luMToxLjAtU05BUFNIT1Q6bGlzdCAoZGVmYXVsdCkgQCBwcm9iZTMgLS0tCj4gW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6Cj4gW0lORk9dICAgcGx1Z2luMgo+IFtJTkZPXSAgIHBsdWdpbjEKPiBbSU5GT10gICBleHRqYXIyCj4gW0lORk9dICAgZXh0amFyMQo+IFtJTkZPXQo+IFtJTkZPXSBPbiBQbHVnaW4gQ2xhc3MgTG9hZGVyOgo+IFtJTkZPXSAgIHBsdWdpbjEKPiBbSU5GT10KPiBbSU5GT10gT24gVGhyZWFkIENvbnRleHQgQ2xhc3MgTG9hZGVyOgo+IFtJTkZPXSAgIGV4dGphcjIKPiBbSU5GT10gICBleHRqYXIxCj4gW0lORk9dCj4gW0lORk9dCj4gPQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBbSU5GT10gQnVpbGRpbmcgQm90aCBleHRlbnNpb25zLiBPcmRlcjogcGx1Z2luMSwgcGx1Z2luMi4gRXh0cmEgPQpkZXBlbmRlbmN5Cj4gaW4gcGx1Z2luMSAxLjAtU05BUFNIT1QKPiBbSU5GT10KPiA9Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFtJTkZPXQo+IFtJTkZPXSAtLS0gcGx1Z2luMToxLjAtU05BUFNIT1Q6bGlzdCAoZGVmYXVsdCkgQCBwcm9iZTQgLS0tCj4gW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6Cj4gW0lORk9dICAgcGx1Z2luMQo+IFtJTkZPXSAgIGV4dGphcjIKPiBbSU5GT10gICBwbHVnaW4yCj4gW0lORk9dICAgZXh0amFyMgo+IFtJTkZPXSAgIGV4dGphcjEKPj0yMAo+IFdBVCEgc2VlbXMgdGhhdCBAQ29tcG9uZW50IGlzIHNvbWV3aGF0IGluIHJhbmRvbSBvcmRlciwgaW4gdGhpcyBjYXNlID0Kd2UKPiBoYXZlIG1vZGlmaWVkIHRoZSBkZXBlbmRlbmNpZXMgaWYgcGx1Z2luMSB0byBhbHNvIGluY2x1ZGUgZXh0amFyMiwgdGhlCj4gb3JkZXIgSSB3b3VsZCBleHBlY3QgaXM6Cj49MjAKPiBleHRqYXIxLCBleHRqYXIyLCBwbHVnaW4xLCBleHRqYXIyLCBwbHVnaW4yCj49MjAKPiBHaXZlbiB0aGUgcHJldmlvdXMgZXhlY3V0aW9ucyBhbmQgdGhlIGZhY3QgdGhhdCBjaGFuZ2luZyB0aGUgc2VxdWVuY2UgPQpvZgo+IHBsdWdpbjEgYW5kIHBsdWdpbjIgaW4gdGhlIHBvbSBkaWQgbm90IGFmZmVjdCB0aGUgcHJldmlvdXMgZXhlY3V0aW9ucywgPQppZgo+IHBsZXh1cyBoYWQgYSBkZXRlcm1pbmlzdGljIG9yZGVyaW5nIHRoZW4gSSB3b3VsZCBoYXZlIGJlZW4gc29tZXdoYXQgT0sgPQp3aXRoOgo+PTIwCj4gcGx1Z2luMiwgcGx1Z2luMSwgZXh0amFyMiwgZXh0amFyMiwgZXh0amFyMQo+PTIwCj4gQnV0IHRoaXMgc2VlbXMgdG8gc3VnZ2VzdCB0aGF0IHdlIGhhdmUgYSBjb21wbGV0ZWx5IG5vbi1kZXRlcm1pbmlzdGljCj4gb3JkZXJpbmcuLi4gdGhhdCBpcyBub3QgZ29vZCBmb3IgcmVwcm9kdWNpYmxlIGJ1aWxkcy4uLgo+PTIwCj4gW0lORk9dCj4gW0lORk9dIE9uIFBsdWdpbiBDbGFzcyBMb2FkZXI6Cj4gW0lORk9dICAgcGx1Z2luMQo+IFtJTkZPXSAgIGV4dGphcjIKPj0yMAo+IE5vdyB3ZSBzZWUgZXh0amFyMiBidXQgb25seSBiZWNhdXNlIGl0IGhhcyBiZWVuIGV4cGxpY2l0bHkgYWRkZWQgdG8gPQp0aGUKPiBwbHVnaW5zIGRlcGVuZGVuY2llcywgSU1ITyBpdCBzaG91bGQgYmUgaGVyZSB0d2ljZSwgZS5nLgo+PTIwCj4gZXh0amFyMSwgZXh0amFyMiwgcGx1Z2luMSwgZXh0amFyMiwgcGx1Z2luMgo+PTIwCj4gQnV0IGl0IHNlZW1zIGFjY2VwdGFibGUgaWYgdGhpcyBpcyBpbnN0ZWFkIHBsdWdpbjEsIGV4dGphcjIgKHRob3VnaCBpdAo+IG1ha2VzIHRoZSBwbHVnaW4gY2xhc3Nsb2FkZXIgdXNlbGVzcyBmb3IgZGlzY292ZXJ5KQo+PTIwCj4gW0lORk9dCj4gW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKPiBbSU5GT10gICBleHRqYXIxCj4gW0lORk9dICAgZXh0amFyMgo+IFtJTkZPXQo+IFtJTkZPXSAtLS0gcGx1Z2luMjoxLjAtU05BUFNIT1Q6bGlzdCAoZGVmYXVsdCkgQCBwcm9iZTQgLS0tCj4gW0lORk9dIEluamVjdGVkIGJ5IEBDb21wb25lbnQ6Cj4gW0lORk9dICAgcGx1Z2luMQo+IFtJTkZPXSAgIGV4dGphcjIKPiBbSU5GT10gICBwbHVnaW4yCj4gW0lORk9dICAgZXh0amFyMgo+IFtJTkZPXSAgIGV4dGphcjEKPiBbSU5GT10KPiBbSU5GT10gT24gUGx1Z2luIENsYXNzIExvYWRlcjoKPiBbSU5GT10gICBwbHVnaW4yCj4gW0lORk9dCj4gW0lORk9dIE9uIFRocmVhZCBDb250ZXh0IENsYXNzIExvYWRlcjoKPiBbSU5GT10gICBleHRqYXIxCj4gW0lORk9dICAgZXh0amFyMgo+IFtJTkZPXQo+ID0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj49MjAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQyNTktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIE9jdCAxOCAwNzoxMzo1OSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyNTktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMzhEM0QxMDc0NwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDE4IE9jdCAyMDE3IDA3OjEzOjU5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTIwMDMgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggT2N0IDIwMTcgMDc6MTM6NTggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkxODc2IGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IE9jdCAyMDE3IDA3OjEzOjU4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTE4NjUgaW52b2tlZCBieSB1aWQgOTkpOyAxOCBPY3QgMjAxNyAwNzoxMzo1OCAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAxOCBPY3QgMjAxNyAwNzoxMzo1OCArMDAwMApSZWNlaXZlZDogZnJvbSBbMTAuMTAuNTMuMjM4XSAoaXAxZjEwOGYxZi5keW5hbWljLmthYmVsLWRldXRzY2hsYW5kLmRlIFszMS4xNi4xNDMuMzFdKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgMTg0NzUxQTAxMkYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDE4IE9jdCAyMDE3IDA3OjEzOjU2ICswMDAwIChVVEMpCkZyb206IEJlbmVkaWt0IFJpdHRlciA8YnJpdHRlckBhcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47CgljaGFyc2V0PXV0Zi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKTWltZS1WZXJzaW9uOiAxLjAgKE1hYyBPUyBYIE1haWwgMTEuMCBcKDM0NDUuMS43XCkpClN1YmplY3Q6IFJlOiBNYXZlbiBTdXJlZmlyZSBhbmQgSlVuaXQgNQpEYXRlOiBXZWQsIDE4IE9jdCAyMDE3IDA5OjEzOjUyICswMjAwClJlZmVyZW5jZXM6IDxGRTEwN0I0RC1EN0I0LTQ3MUItODcwOS1CMTk3MTcxOEQxNDBAYXBhY2hlLm9yZz4KIDxDQUt1VnpCUm1oUGk5VUJOR3FFX3BRMThtcERNNUtfX3FUcWZUQ0JpZV9xM19KMF9YSHdAbWFpbC5nbWFpbC5jb20+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpJbi1SZXBseS1UbzogPENBS3VWekJSbWhQaTlVQk5HcUVfcFExOG1wRE01S19fcVRxZlRDQmllX3EzX0owX1hId0BtYWlsLmdtYWlsLmNvbT4KTWVzc2FnZS1JZDogPEYyNzU4NzYyLUJDMzAtNEVEQi04NTQ3LUM0MTcxRkEzNDU0OEBhcGFjaGUub3JnPgpYLU1haWxlcjogQXBwbGUgTWFpbCAoMi4zNDQ1LjEuNykKCkhlbGxvIFRpYm9yLAoKU29ycnkgZm9yIHRoZSBkYWlseSBJIHNvbWVob3cgbWlzc2VkIHRoaXMgbWFpbC4KCj4gQW0gMTUuMTAuMjAxNyB1bSAxMzowNyBzY2hyaWViIFRpYm9yIERpZ2FuYSA8dGlib3JkaWdhbmFAYXBhY2hlLm9yZz46Cj49MjAKPiBIaSBCZW5lZGlrdCwKPj0yMAo+IEkgYW0gZmluZSBub3cgYWZ0ZXIgbXkgaWxsbmVzcywgdGh4Lgo+IEkgYW0gZmluaXNoaW5nIGJyYW5jaCBTVVJFRklSRS0xMjYyXzIuIEp1c3QgdG8gYWRkIGZldyBtb3JlIHRlc3RzIGFuZCA9CnRoZW4KPiBJIHdpbGwgY3V0IGEgcmVsZWFzZS4gSSB3YW50IHRvIGFkZCBhIGZpeCBmb3IgU1VSRUZJUkUtMTM3NCB3aGljaCA9CndvdWxkIGJlCj4gZmFzdCB0byBkby4KPiBUaGVuIEkgYW0gcmVhZHkgZm9yIHlvdSBhbmQgSlVuaXQ1Lgo+PTIwCj4gSSBoYXZlIHF1ZXN0aW9ucyByZWdhcmRpbmcgb3VyIEpVbml0IDUgU3VyZWZpcmUgUHJvdmlkZXIgaW1wbGVtZW50ZWQgPQppbgo+IFN1cmVmaXJlLgo+PTIwCj4gSXMgaXQgaW1wbGVtZW50ZWQgZXhhY3RseSBpbiB0aGUgc2FtZSBsaWtlIHRoZSBvcmlnaW4gYnkganVuaXQ1IHRlYW0/Cj4gSSBhbSBhc2tpbmcgYmVjYXVzZSBJIHNhdyB0aGUgaW1wbGVtZW50YXRpb24gbWFkZSBieSBqdW5pdDUgdGVhbSBhbmQgPQppdCBpcwo+IG5vdCBsaWtlIG91ciAqSlVuaXRDb3JlUHJvdmlkZXIqLiBUaGlzIG1lYW5zIHRoYXQgdGhleSBkbyBub3QgbWFwID0KbWV0aG9kCj4gPC0+IFRocmVhZCBpbiAqUnVuTGlzdGVuZXIgKmFuZCB0aHVzIHRoZSBwcm92aWRlciB3b3VsZCBub3QgYXNzb2NpYXRlID0KdGVzdAo+IHJlcG9ydCBsb2dzIGFuZCBUaHJlYWQgcHJvcGVybHkgYW5kIGxvZ3Mgd2lsbCBiZSBtaXhlZC4KCldlIGltcG9ydGVkIHRoZSBjb2RlIGZyb20gdGhlIEpVbml0IHByb2plY3Qgc29tZSB3aGlsZSBhZ28uIFRoZXkgaGF2ZSBpbiA9CnRoZSBtZWFuIHRpbWUgdXBkYXRlZCB0aGVpciBwcm92aWRlciBjb2RlLiBUaGV5IGFyZSBwbGFubmluZyB0byBicmluZyA9CnRob3NlIGNoYW5nZXMgYmFjayB0byBzdXJlZmlyZSwgb25jZSB3ZSBnZXQgb2YgdGhlIGdyb3VuZCB3aXRoIHRoZSA9CmltcGxlbWVudGF0aW9uIGluIHN1cmVmaXJlLiBTbyBpZiB5b3U9RTI9ODA9OTlyZSBzZWVpbmcgZGlmZmVyZW5jZSBpbiA9CnRoZSBpbXBsZW1lbnRhdGlvbiBpbiBzdXJlZmlyZSBhbmQgaW4gdGhlIGltcGxlbWVudGF0aW9uIGluIEpVbml0LCB0aGF0ID0KbXVzdCBoYXZlIGJlZW4gaW50cm9kdWNlZCBhZnRlciB3ZSBpbXBvcnRlZCB0aGUgY29kZS4KCj49MjAKPiBOZXh0IHF1ZXN0aW9uIGlzIHJlZ2FyZGluZyB0aGUgZmVhdHVyZSByZS1ydW4uIEl0IGFsc28gZXhpc3RzIGluCj4gKkpVbml0Q29yZVByb3ZpZGVyCj4gKmFuZCAqSlVuaXQ0UHJvdmlkZXIqLiBEb2VzIGl0IGV4aXN0IGluIG91ciBwcm92aWRlciB0b28uCgpJIGRvbj1FMj04MD05OXQga25vdywgbmVlZCB0byBjaGVjayB0aGUgY29kZS4KCj4gQWxzbyB3ZSBuZWVkIHRvIGhhdmUgYSBmZWF0dXJlIHdoZXJlIEpVbml0IGV4ZWN1dGlvbiBpcyBzdG9wcGVkIHdoaWNoID0KY2FuCj4gYmUgY29uZmlndXJlZCBieSAqc2tpcEFmdGVyRmFpbHVyZUNvdW50ICppbiBQT00uIFdlIGhhdmUgPQppbXBsZW1lbnRhdGlvbiBpbgo+IFN1cmVmaXJlIHByb3ZpZGVyOgo+PTIwCj4gbm90aWZpZXIuYXNGYWlsRmFzdCggaXNGYWlsRmFzdCgpICk7CgpXZSBoYXZlIHRvIGZpZ3VyZSBvdXQsIGhvdyB0aGlzIGlzIHN1cHBvcnRlZCBieSBKVW5pdCA1LgoKPj0yMAo+IFJlZ2FyZGluZyBsb2dnZXIgaW4gZm9ya2VkIHByb3ZpZGVyLCB3aGljaCBoYXMgdG8gZG8gd2l0aCBwYXJhbGxlbCA9CmV4ZWMsIEkKPiB0aGluayB0aGUgbG9ncyBnbyB0byB0aGUgZHVtcCBmaWxlIGluc3RlYWQgb2YgcmVwb3J0cyBmaWxlLCBiZWNhdXNlID0KU1RET1VUCj4gaXMgbm90IHdyYXBwZWQgaW4gSlVuaXQ1J3MgaW1wbGVtZW50YXRpb24gYW5kIHRoaXMgc2hvdWxkIGJlIGNhbGxlZDoKPj0yMAo+IHN0YXJ0Q2FwdHVyZSggbGlzdGVuZXIgKQo+PTIwCj49MjAKPiBTZWUgbXkgcXVlc3Rpb25zIGluIGh0dHBzOi8vZ2l0aHViLmNvbS94d2lraS94d2lraS1wbGF0Zm9ybS9jb21taXQvCj4gNTI1OGEyMjMwMTk3N2E3ZDFlZTcyNzZjZGQ4MWFmNzY0MWY0ZjVhYwo+PTIwCj4gRG8gd2UgaGF2ZSBpbnRlZ3JhdGlvbiB0ZXN0cyBmb3IgdGhlc2UgZmVhdHVyZXM/CgpXZSBvbmx5IGhhdmUgdmVyeSBsaW1pdGVkIGludGVncmF0aW9uIHRlc3RzIHlldC4gST1FMj04MD05OW0gcGxhbm5pbmcgdG8gPQp3cml0ZSBtb3JlIGludGVncmF0aW9uIHRlc3RzIGFuZCB3b3JrIG9uIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlID0KaW50ZWdyYXRpb24gdGVzdCBwcm9qZWN0LCBvbmNlIHRoZSBidWlsZCBkb2VzIHdvcmsgYWdhaW4uIEN1cnJlbnRseSA9Ckk9RTI9ODA9OTltIHVuYWJsZSB0byBleGVjIGFuIGludGVncmF0aW9uIHRlc3Qgb24gdGhlIGp1bml0NSBicmFuY2guID0KT25jZSB0aGlzIGlzIHBvc3NpYmxlIGFnYWluLCB3ZSBjYW4gd3JpdGUgdGhlIG1pc3NpbmcgdGVzdHMuCgpUaGFuayB5b3UhCkJlbmVkaWt0Cgo+PTIwCj49MjAKPiBDaGVlcnMKPiBUaWJvcgo+PTIwCj49MjAKPj0yMAo+IE9uIFNhdCwgU2VwIDMwLCAyMDE3IGF0IDEwOjM0IEFNLCBCZW5lZGlrdCBSaXR0ZXIgPGJyaXR0ZXJAYXBhY2hlLm9yZz4KPiB3cm90ZToKPj0yMAo+PiBIZWxsbywKPj49MjAKPj4gZm9yIG92ZXIgYSB5ZWFyIG5vdyBJPUUyPTgwPTk5bSB0cnlpbmcgdG8gaGVscCBnZXR0aW5nIEpVbml0IDUgPQpzdXBwb3J0IGludG8gTWF2ZW4KPj4gU3VyZWZpcmUuIFRoaXMgaGFzIGJlZW4gaGFyZCBzaW5jZSBUaWJvciBzZWVtcyB0byBiZSB0aGUgb25seSBvbmUKPj4gbWFpbnRhaW5pbmcgTWF2ZW4gU3VyZWZpcmUgYW5kIGhlIGhhZCB0byBjb21lIHdpdGggb3RoZXIgdGhpbmdzLgo+Pj0yMAo+PiBGb3IgdGhpcyByZWFzb24gST1FMj04MD05OWQgbGlrZSB0byBhc2sgb3RoZXIgTWF2ZW4gbWFpbnRhaW5lcnMgdG8gPQpoZWxwIHdpdGggdGhlCj4+IEpVbml0IDUgc3VwcG9ydC4gST1FMj04MD05OW0gaGFwcHkgdG8gZG8gdGhlIHdvcmssIGJ1dCBJPUUyPTgwPTk5bSA9CmNvbnN0YW50bHkgYmxvY2tlZCBieQo+PiBvYnNjdXJlIGJ1aWxkIGZhaWx1cmVzIHdoaWNoIEk9RTI9ODA9OTltIHVuYWJsZSB0byByZXNvbHZlIG15c2VsZiBvciA9CmJ5IGxhY2sgb2YKPj4gY29kZSByZXZpZXcgdW5kIG1lcmdlIG9mIGNoYW5nZXMuCj4+PTIwCj4+IC0gV29yayBvbiBKVW5pdDUgc3VwcG9ydCBpcyBjdXJyZW50bHkgZG9uZSBpbiB0aGUganVuaXQ1IGJyYW5jaC4KPj4gLSBJIGhhdmUgZHJhZnRlZCBhIFByb3ZpZGVyIExvb2t1cCBpbXBsZW1lbnRhdGlvbiBpbiB0aGUganVuaXQ1ID0KYnJhbmNoLAo+PiBidXQgSSBkb249RTI9ODA9OTl0IGtub3cgd2hldGhlciBpdCB3b3JrcyBiZWNhdXNlIEkgY2FuPUUyPTgwPTk5dCBnZXQgPQp0aGUgaW50ZWdyYXRpb24gdGVzdHMKPj4gcnVubmluZwo+PiAtIFRoZXJlIGlzIGFuIG9wZW4gUFIgdG8gbWVyZ2UgdGhlIG1hc3RlciBicmFuY2ggYmFjayBpbnRvIGp1bml0NSA9CmJyYW5jaCwKPj4gYnV0IGl0IGhhcyBidWlsZCBmYWlsdXJlcyBJIGRvbj1FMj04MD05OXQgdW5kZXJzdGFuZCBbMV0KPj49MjAKPj4gUGxlYXNlIGhlbHAhCj4+IENoZWVycywKPj4gQmVuZWRpa3QKPj49MjAKPj4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNjUKPj49MjAKPj49MjAKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj49MjAKPj49MjAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM5NDgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIFNlcCAxMSAwMDowMDoxMyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5NDgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQjZGQjgxQTI4RQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDAwOjAwOjEzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODY3NjYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgU2VwIDIwMTcgMDA6MDA6MTMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg2NjU3IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDAwOjAwOjEyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODY2NDQgaW52b2tlZCBieSB1aWQgOTkpOyAxMSBTZXAgMjAxNyAwMDowMDoxMSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMTEgU2VwIDIwMTcgMDA6MDA6MTEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAyMEVFNzFBMkVFRAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMDA6MDA6MTEgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4wNQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC4wNSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIEhUTUxfTUVTU0FHRT0yLAoJS0FNX0xPVFNPRkhBU0g9MC4yNSwgS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjhdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9dGFsaW9zLWNvbS4yMDE1MDYyMy5nYXBwc3NtdHAuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB5Z2t6NGF1b09JSHYgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sIDExIFNlcCAyMDE3IDAwOjAwOjA5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWwtcGYwLWYxNzIuZ29vZ2xlLmNvbSAobWFpbC1wZjAtZjE3Mi5nb29nbGUuY29tIFsyMDkuODUuMTkyLjE3Ml0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA4RTQ4QTVGREQ4Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAwMDowMDowOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogYnkgbWFpbC1wZjAtZjE3Mi5nb29nbGUuY29tIHdpdGggU01UUCBpZCBnMTNzbzExNjAxMjI2cGZtLjIKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAxNzowMDowOCAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9dGFsaW9zLWNvbS4yMDE1MDYyMy5nYXBwc3NtdHAuY29tOyBzPTIwMTUwNjIzOwogICAgICAgIGg9ZnJvbTp0bzpzdWJqZWN0OmRhdGU6bWVzc2FnZS1pZDppbi1yZXBseS10bzpyZWZlcmVuY2VzOm1pbWUtdmVyc2lvbjsKICAgICAgICBiaD1jbDdVN1J1bFgzcHJYS2FjOTVVcndxVThGb2EybjlialJHQmRVTWdqdXJnPTsKICAgICAgICBiPVdyeG9VZDNCZ1ZEdVJ2ZzNLb211UVE3Ry8wVXFRb2srcTNaR2tUc3AxTU5aS3YzWnRKcVFZZE1kME83cFJzcnVNaAogICAgICAgICBYYWhKdWZrcENVWkRwbVhGb3hnUGlScG1FMVBmbjJBQ3pkU1RQdHUySUpZQjBuakRmcWhoeHI2a2UyQUJyNmd0YXdySQogICAgICAgICBZMFVQVWF5czNxNklvOEtyM3pZRTdxZ3pYcFJ1VTdsWVREQ3pEcXY4WmNFalRNdDVBN2Q3a3IycmZha0xrOVVEUVJSTAogICAgICAgICBnV0VFMmd6dXdGZjVXb1o4QUZKc0N5amIyZlkzVzN0NVAzZ2JaY3NURFJkNnpENzl6QTVKRzBJaVNlV2VFZDhuWEg1OAogICAgICAgICBjMFh0QXMvdStkMllyZ1U0Q3dWNWRCSlJPd3IzOWJQS0g1dTZqejUvTEpZR2kyOStKWG4wUnhCNnNGZUQ1NExqaDdHMgogICAgICAgICBJYnpBPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTpmcm9tOnRvOnN1YmplY3Q6ZGF0ZTptZXNzYWdlLWlkOmluLXJlcGx5LXRvCiAgICAgICAgIDpyZWZlcmVuY2VzOm1pbWUtdmVyc2lvbjsKICAgICAgICBiaD1jbDdVN1J1bFgzcHJYS2FjOTVVcndxVThGb2EybjlialJHQmRVTWdqdXJnPTsKICAgICAgICBiPVViYUJjblIxNGlTbWdkZjZoYUhvcGZiYWlLeGpCeWZxUFNOZ0d5LzFDbWlodzJNUGE3SmhUZm1obHpSZEVpMjBIZQogICAgICAgICBNNFJmeWNVR05ac3ZHTlBHejdqcUJHaTRyUDRaZTQ0d1RncnRtTVVjc2wvTEtqVng0bFdjSmtnQy9CVlhUT3pYL0o4OAogICAgICAgICBLUll6MHFHa2JrcWJrZnA2OFZCcG5yMnZqNUJKSThhT3RoVmFLaDYvd0J3YS9BRFlHNURDR3RCYzVxb3B0dkVzcUtWcwogICAgICAgICB4RTd0SFV0Zy9BTCt2V3FLTnQrVnFDc1VvTWR2dHFJOGwrQ1lVS3pnZGQyRG02YzEzcnlyQktIdWN3OXg1ZUpZUDE5UwogICAgICAgICBxQTFWemFTMEtweCtGT2F4MWlHSk5zc2R0OUZxUGNOMEM4WHJXbkJHbHl5bG5uK3ZBMUxLWGtFZlp4SW1qYnpHUTNIdQogICAgICAgICA2VHJnPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVqaFVUYkxacjJQMi9RRW9na3gwNFJlSzNVbXBjUG5vMHFiaTFsYXZkNUN0TnJFVWhFWQoJM2NFTmR3WjRGZmpRM1p3ZnJyKzM2QT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBREtDTmI3SlBldFF3dkExZ2RHRytmU0ZHdVlWOFpCMFZ5RU05azQ1SjVwbGFzb3FONEdSWFFHczdnSzhmbGEwSDY4S2RTMkJnUDFaM2c9PQpYLVJlY2VpdmVkOiBieSAxMC45OS42Ny4xOTMgd2l0aCBTTVRQIGlkIHExODRtcjIzODUyNTRwZ2EuMjEwLjE1MDUwODgwMDA2ODg7CiAgICAgICAgU3VuLCAxMCBTZXAgMjAxNyAxNzowMDowMCAtMDcwMCAoUERUKQpSZWNlaXZlZDogZnJvbSBbMTAuMC4wLjEzMV0gKGFrbC5zbXguY28ubnouIFsyMDMuODQuMTM1LjEyMF0pCiAgICAgICAgYnkgc210cC5nbWFpbC5jb20gd2l0aCBFU01UUFNBIGlkIGY2c20xMDIzMzQxNnBnby43NC4yMDE3LjA5LjEwLjE2LjU5LjU4CiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KICAgICAgICAodmVyc2lvbj1UTFMxXzIgY2lwaGVyPUVDREhFLVJTQS1BRVMxMjgtR0NNLVNIQTI1NiBiaXRzPTEyOC8xMjgpOwogICAgICAgIFN1biwgMTAgU2VwIDIwMTcgMTY6NTk6NTkgLTA3MDAgKFBEVCkKRnJvbTogIk1hcmsgRGVycmljdXR0IiA8bWFya0B0YWxpb3MuY29tPgpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xCkRhdGU6IE1vbiwgMTEgU2VwIDIwMTcgMTE6NTk6NDIgKzEyMDAKTWVzc2FnZS1JRDogPEY3MDU3RTFCLTQzMTMtNEQ3Qi04RUYxLTk5MzQxREQxRTFEMEB0YWxpb3MuY29tPgpJbi1SZXBseS1UbzogPENBRk5DVS0tMnZyZDVCZVR2a3hLQ3lYMlpRZVBxaXg3WD13bVZzV2RNNWQ0OVhlTmdPd0BtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBK25Qbk14eUcyTmVQWHBWcWF3ZTlqUj1pdEhFVDZVdWRuTjlDakhodj1vby1LQ3J4d0BtYWlsLmdtYWlsLmNvbT4KIDxDQUZOQ1UtLTJ2cmQ1QmVUdmt4S0N5WDJaUWVQcWl4N1g9d21Wc1dkTTVkNDlYZU5nT3dAbWFpbC5nbWFpbC5jb20+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L3NpZ25lZDsKIGJvdW5kYXJ5PSI9X01haWxNYXRlXzU1NUI3ODk1LUQ4Q0ItNDIyOC05Q0FELTRBRjhBQTFDRkYxMl89IjsKIG1pY2FsZz1wZ3Atc2hhMTsgcHJvdG9jb2w9ImFwcGxpY2F0aW9uL3BncC1zaWduYXR1cmUiClgtTWFpbGVyOiBNYWlsTWF0ZSAoMi4wQkVUQXI2MDkwKQoKLS09X01haWxNYXRlXzU1NUI3ODk1LUQ4Q0ItNDIyOC05Q0FELTRBRjhBQTFDRkYxMl89CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOwogYm91bmRhcnk9Ij1fTWFpbE1hdGVfQUVGOEM5QjEtQkE4Ni00M0VCLTlBNjQtNkUyRkUwOEYxMzNEXz0iCgoKLS09X01haWxNYXRlX0FFRjhDOUIxLUJBODYtNDNFQi05QTY0LTZFMkZFMDhGMTMzRF89CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgorMCBub24tY29tbWl0YWwgLQoKVGVzdGVkIG9uIG91ciB0aWxlcy9vc2dpIGJhc2VkIHByb2plY3RzIGFuZCBhbGwgc2VlbXMgdG8gd29yaywgYnV0IGZvciBzbz0KbWUgcmVhc29uIC0gb25lIHByb2plY3QgdGhhdCB1c2VzIHRoZSBvcmcub3BlbnFhLnNlbGVuaXVtLnBoYW50b21qcy5QaGFudD0Kb21KU0RyaXZlclNlcnZpY2Ugc2VlbXMgdG8gYmxvd2luZyB1cCB3aGVuIHVzaW5nIDMuNS4xIC0gbmVlZCB0byBkbyBzb21lID0KbW9yZSBkaWdnaW5nIGFuZCBzZWUgaWYgSSBjYW4gc3BvdCB3aGF0cyBnb2luZyBvbi4KCldpbGwgdHJ5IGFuZCBkaWcgaW50byB0aGlzIGFmdGVyIHdvcmsgdG9uaWdodC4KCk1hcmsKCgpPbiAxMSBTZXAgMjAxNywgYXQgODowMSwgQXJuYXVkIEg9QzM9QTlyaXRpZXIgd3JvdGU6Cgo+IFRlc3RlZCBvbiBzZXZlcmFsIHByb2plY3RzCj4KPiArMQo+Cj4gT24gU3VuLCBTZXAgMTAsIDIwMTcgYXQgNTozOSBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4KPj4gSGksCj4+Cj4+IFdlIHNvbHZlZCAyNSBpc3N1ZXM6Cj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPj4gdmVyc2lvbj0zRDEyMzM4OTY0JnN0eWxlTmFtZT0zRFRleHQmcHJvamVjdElkPTNEMTIzMTY5MjIKPj4KPj4gVGhlcmUgYXJlIDM1MCBpc3N1ZXMgbGVmdCBpbiBKSVJBIGZvciBNYXZlbiBjb3JlOgo+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9M0Rwcm9qZWN0JTIwJQo+PiAzRCUyME1ORyUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlCj4+IDIwQlklMjBkdWUlMjBBU0MlMkMlMjBwcmlvcml0eSUyMERFU0MlMkMlMjBjcmVhdGVkJTIwQVNDCj4+Cj4+IFN0YWdpbmcgcmVwbzoKPj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2NC8KPj4KPj4gVGhlIGRpc3RyaWJ1dGFibGUgYmluYXJpZXMgYW5kIHNvdXJjZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+PiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xLwo+Pgo+PiBTcGVjaWZpY2FsbHkgdGhlIHppcCwgdGFyYmFsbCBhbmQgc291cmNlIGFyY2hpdmVzIGNhbiBiZSBmb3VuZCBoZXJlOgo+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPj4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtYmluLnppcAo+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPj4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtYmluLnRhci5nej0KCj4+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+PiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwCj4+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+PiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1zcmMudGFyLmd6PQoKPj4KPj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMudGFyLmd6IHNoYTE6IDllYjgyMWYxNTNjNzY2NzE5NGFhMTFjY2QwOTliNwo+PiBiZDIwNTk1NjBkCj4+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwOiBzaGExOiAxMjFkNTRiMDQ1MzgwYThhNDg5NWViMTM3OTcwYWI2OWU2OTg9CmViMGUKPj4KPj4gR2l0IHRhZzoKPj4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9M0RtYXZlbi5naXQ7YT0zRGNvbW1pdDtoPTNECj4+IDA5NGU0ZTMxYTVhZjU1YmIxN2JlODc2NzVkYTQxZDlhZWNhMDYyZjMKPj4KPj4gU3RhZ2luZyBzaXRlOgo+PiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvY29tcG9uZW50cy9yZWYvMy1MQVRFU1QvCj4+Cj4+IFZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCj4+Cj4+IFsgXSArMQo+PiBbIF0gKzAKPj4gWyBdIC0xCj4+Cj4+IFRoYW5rcywKPj4KPj4gU3RlcGhlbi4KPj4KPgo+Cj4KPiAtLSA9Cgo+IC0tLS0tCj4gQXJuYXVkIEg9QzM9QTlyaXRpZXIKPiBodHRwOi8vYWhlcml0aWVyLm5ldAo+IE1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tCj4gVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcgoKCi0tLQoiVGhlIGVhc2Ugd2l0aCB3aGljaCBhIGNoYW5nZSBjYW4gYmUgaW1wbGVtZW50ZWQgaGFzIG5vIHJlbGV2YW5jZSBhdCBhbGwgPQp0byB3aGV0aGVyIGl0IGlzIHRoZSByaWdodCBjaGFuZ2UgZm9yIHRoZSAoSmF2YSkgUGxhdGZvcm0gZm9yIGFsbCB0aW1lLiIgPQombWRhc2g7IE1hcmsgUmVpbmhvbGQuCgpNYXJrIERlcnJpY3V0dApodHRwOi8vd3d3LnRoZW9yeWlucHJhY3RpY2UubmV0Cmh0dHA6Ly93d3cuY2hhbGljZW9mYmxvb2QubmV0Cmh0dHA6Ly9wbHVzLmdvb2dsZS5jb20vK01hcmtEZXJyaWN1dHQKaHR0cDovL3R3aXR0ZXIuY29tL3RhbGlvcwpodHRwOi8vZmFjZWJvb2suY29tL21kZXJyaWN1dHQKCi0tPV9NYWlsTWF0ZV9BRUY4QzlCMS1CQTg2LTQzRUItOUE2NC02RTJGRTA4RjEzM0RfPQpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD11dGYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlCgo8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIj4KPGh0bWw+CjxoZWFkPgo8bWV0YSBodHRwLWVxdWl2PTNEIkNvbnRlbnQtVHlwZSIgY29udGVudD0zRCJ0ZXh0L3hodG1sOyBjaGFyc2V0PTNEdXRmLTgiPQo+CjwvaGVhZD4KPGJvZHk+CjxkaXYgc3R5bGU9M0QiZm9udC1mYW1pbHk6c2Fucy1zZXJpZiI+PGRpdiBzdHlsZT0zRCJ3aGl0ZS1zcGFjZTpub3JtYWwiPgo8cCBkaXI9M0QiYXV0byI+KzAgbm9uLWNvbW1pdGFsIC0gPC9wPgoKPHAgZGlyPTNEImF1dG8iPlRlc3RlZCBvbiBvdXIgdGlsZXMvb3NnaSBiYXNlZCBwcm9qZWN0cyBhbmQgYWxsIHNlZW1zIHRvID0Kd29yaywgYnV0IGZvciBzb21lIHJlYXNvbiAtIG9uZSBwcm9qZWN0IHRoYXQgdXNlcyB0aGUgb3JnLm9wZW5xYS5zZWxlbml1bT0KPTJFcGhhbnRvbWpzLlBoYW50b21KU0RyaXZlclNlcnZpY2Ugc2VlbXMgdG8gYmxvd2luZyB1cCB3aGVuIHVzaW5nIDMuNS4xID0KLSBuZWVkIHRvIGRvIHNvbWUgbW9yZSBkaWdnaW5nIGFuZCBzZWUgaWYgSSBjYW4gc3BvdCB3aGF0cyBnb2luZyBvbi48L3A+Cgo8cCBkaXI9M0QiYXV0byI+V2lsbCB0cnkgYW5kIGRpZyBpbnRvIHRoaXMgYWZ0ZXIgd29yayB0b25pZ2h0LjwvcD4KCjxwIGRpcj0zRCJhdXRvIj5NYXJrPC9wPgoKPHAgZGlyPTNEImF1dG8iPk9uIDExIFNlcCAyMDE3LCBhdCA4OjAxLCBBcm5hdWQgSD1DMz1BOXJpdGllciB3cm90ZTo8L3A+Cgo8L2Rpdj4KPGRpdiBzdHlsZT0zRCJ3aGl0ZS1zcGFjZTpub3JtYWwiPjxibG9ja3F1b3RlIHN0eWxlPTNEImJvcmRlci1sZWZ0OjJweCBzbz0KbGlkICM1ODU1RDU7IGNvbG9yOiM1ODU1RDU7IG1hcmdpbjowIDAgNXB4OyBwYWRkaW5nLWxlZnQ6NXB4Ij48cCBkaXI9M0QiYT0KdXRvIj5UZXN0ZWQgb24gc2V2ZXJhbCBwcm9qZWN0czxicj4KPGJyPgorMTxicj4KPGJyPgpPbiBTdW4sIFNlcCAxMCwgMjAxNyBhdCA1OjM5IFBNLCBTdGVwaGVuIENvbm5vbGx5ICZsdDs8YnI+CnN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20mZ3Q7IHdyb3RlOjxicj4KPC9wPgo8YmxvY2txdW90ZSBzdHlsZT0zRCJib3JkZXItbGVmdDoycHggc29saWQgIzU4NTVENTsgY29sb3I6IzAwQUZDQzsgbWFyZ2luPQo6MCAwIDVweDsgcGFkZGluZy1sZWZ0OjVweDsgYm9yZGVyLWxlZnQtY29sb3I6IzAwQUZDQyI+PHAgZGlyPTNEImF1dG8iPkhpPQosPGJyPgo8YnI+CldlIHNvbHZlZCAyNSBpc3N1ZXM6PGJyPgo8YSBocmVmPTNEImh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYSI+aHR0cHM6PQovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE8L2E+Pzxicj4KdmVyc2lvbj0zRDEyMzM4OTY0JmFtcDtzdHlsZU5hbWU9M0RUZXh0JmFtcDtwcm9qZWN0SWQ9M0QxMjMxNjkyMjxicj4KPGJyPgpUaGVyZSBhcmUgMzUwIGlzc3VlcyBsZWZ0IGluIEpJUkEgZm9yIE1hdmVuIGNvcmU6PGJyPgo8YSBocmVmPTNEImh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlIj5odHRwPQpzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlPC9hPjxicj4KM0QlMjBNTkclMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJTxicj4KMjBCWSUyMGR1ZSUyMEFTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMGNyZWF0ZWQlMjBBU0M8YnI+Cjxicj4KU3RhZ2luZyByZXBvOjxicj4KPGEgaHJlZj0zRCJodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY0Lz0KIj5odHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY0LzwvYT48YnI+Cjxicj4KVGhlIGRpc3RyaWJ1dGFibGUgYmluYXJpZXMgYW5kIHNvdXJjZXMgY2FuIGJlIGZvdW5kIGhlcmU6PGJyPgo8YSBocmVmPTNEImh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuIj5odHRwPQpzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuPC9hPi08YnI+CjEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvPGJyPgo8YnI+ClNwZWNpZmljYWxseSB0aGUgemlwLCB0YXJiYWxsIGFuZCBzb3VyY2UgYXJjaGl2ZXMgY2FuIGJlIGZvdW5kIGhlcmU6PGJyPgo8YSBocmVmPTNEImh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuIj5odHRwPQpzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuPC9hPi08YnI+CjEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLWJpbi56aXA8YnI+CjxhIGhyZWY9M0QiaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4iPmh0dHA9CnM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW48L2E+LTxicj4KMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtYmluLnRhci5nejxicj0KPgo8YSBocmVmPTNEImh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuIj5odHRwPQpzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuPC9hPi08YnI+CjEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy56aXA8YnI+CjxhIGhyZWY9M0QiaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4iPmh0dHA9CnM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW48L2E+LTxicj4KMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5nejxicj0KPgo8YnI+ClNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOjxicj4KYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy50YXIuZ3ogc2hhMTogOWViODIxZjE1M2M3NjY3MTk0YWExMWNjZDA5OWI3PGJyPgpiZDIwNTk1NjBkPGJyPgphcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcDogc2hhMTogMTIxZDU0YjA0NTM4MGE4YTQ4OTVlYjEzNzk3MGFiNjllNjk4ZWIwPQplPGJyPgo8YnI+CkdpdCB0YWc6PGJyPgo8YSBocmVmPTNEImh0dHBzOi8vZ2l0LXdpcC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPTNEbWF2ZW4uZ2l0O2E9M0Rjb21tPQppdDtoPTNEIj5odHRwczovL2dpdC13aXAtdXMuYXBhY2hlLm9yZy9yZXBvcy9hc2Y/cD0zRG1hdmVuLmdpdDthPTNEY29tbWl0PQo7aD0zRDwvYT48YnI+CjA5NGU0ZTMxYTVhZjU1YmIxN2JlODc2NzVkYTQxZDlhZWNhMDYyZjM8YnI+Cjxicj4KU3RhZ2luZyBzaXRlOjxicj4KPGEgaHJlZj0zRCJodHRwczovL21hdmVuLmFwYWNoZS5vcmcvY29tcG9uZW50cy9yZWYvMy1MQVRFU1QvIj5odHRwczovL21hdj0KZW4uYXBhY2hlLm9yZy9jb21wb25lbnRzL3JlZi8zLUxBVEVTVC88L2E+PGJyPgo8YnI+ClZvdGUgb3BlbiBmb3IgNzIgaG91cnMuPGJyPgo8YnI+ClsgXSArMTxicj4KWyBdICswPGJyPgpbIF0gLTE8YnI+Cjxicj4KVGhhbmtzLDxicj4KPGJyPgpTdGVwaGVuLjxicj4KPC9wPgo8L2Jsb2NrcXVvdGU+PHAgZGlyPTNEImF1dG8iPi0tIDxicj4KLS0tLS08YnI+CkFybmF1ZCBIPUMzPUE5cml0aWVyPGJyPgo8YSBocmVmPTNEImh0dHA6Ly9haGVyaXRpZXIubmV0Ij5odHRwOi8vYWhlcml0aWVyLm5ldDwvYT48YnI+Ck1haWwvR1RhbGs6IGFoZXJpdGllciBBVCBnbWFpbCBET1QgY29tPGJyPgpUd2l0dGVyL1NreXBlIDogYWhlcml0aWVyPC9wPgo8L2Jsb2NrcXVvdGU+PC9kaXY+CjxkaXYgc3R5bGU9M0Qid2hpdGUtc3BhY2U6bm9ybWFsIj4KCjxocj4KCjxwIGRpcj0zRCJhdXRvIj4iVGhlIGVhc2Ugd2l0aCB3aGljaCBhIGNoYW5nZSBjYW4gYmUgaW1wbGVtZW50ZWQgaGFzIG5vIHI9CmVsZXZhbmNlIGF0IGFsbCB0byB3aGV0aGVyIGl0IGlzIHRoZSByaWdodCBjaGFuZ2UgZm9yIHRoZSAoSmF2YSkgUGxhdGZvcm09CiBmb3IgYWxsIHRpbWUuIiA9RTI9ODA9OTQgTWFyayBSZWluaG9sZC48L3A+Cgo8cCBkaXI9M0QiYXV0byI+TWFyayBEZXJyaWN1dHQ8YnI+CjxhIGhyZWY9M0QiaHR0cDovL3d3dy50aGVvcnlpbnByYWN0aWNlLm5ldCI+aHR0cDovL3d3dy50aGVvcnlpbnByYWN0aWNlLm49CmV0PC9hPjxicj4KPGEgaHJlZj0zRCJodHRwOi8vd3d3LmNoYWxpY2VvZmJsb29kLm5ldCI+aHR0cDovL3d3dy5jaGFsaWNlb2ZibG9vZC5uZXQ8Lz0KYT48YnI+CjxhIGhyZWY9M0QiaHR0cDovL3BsdXMuZ29vZ2xlLmNvbS8rTWFya0RlcnJpY3V0dCI+aHR0cDovL3BsdXMuZ29vZ2xlLmNvbS89CitNYXJrRGVycmljdXR0PC9hPjxicj4KPGEgaHJlZj0zRCJodHRwOi8vdHdpdHRlci5jb20vdGFsaW9zIj5odHRwOi8vdHdpdHRlci5jb20vdGFsaW9zPC9hPjxicj4KPGEgaHJlZj0zRCJodHRwOi8vZmFjZWJvb2suY29tL21kZXJyaWN1dHQiPmh0dHA6Ly9mYWNlYm9vay5jb20vbWRlcnJpY3V0dD0KPC9hPjwvcD4KPC9kaXY+CjwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4KCi0tPV9NYWlsTWF0ZV9BRUY4QzlCMS1CQTg2LTQzRUItOUE2NC02RTJGRTA4RjEzM0RfPS0tCgotLT1fTWFpbE1hdGVfNTU1Qjc4OTUtRDhDQi00MjI4LTlDQUQtNEFGOEFBMUNGRjEyXz0KQ29udGVudC1EZXNjcmlwdGlvbjogT3BlblBHUCBkaWdpdGFsIHNpZ25hdHVyZQpDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1zaWduYXR1cmUuYXNjCkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vcGdwLXNpZ25hdHVyZTsgbmFtZT1zaWduYXR1cmUuYXNjCgotLS0tLUJFR0lOIFBHUCBTSUdOQVRVUkUtLS0tLQpWZXJzaW9uOiBHbnVQRy9NYWNHUEcyIHYyLjAKCmlRRWNCQUVCQWdBR0JRSlp0ZEh1QUFvSkVPamFnMlJ6VHRKRmlZWUgvM0pvRUxSMThjMXdDUmkzMC9aRU51MzcKUnVwaVhKdHJ4TUxRcmJLaW1BOGZJVFVPMUtFelBQODBXbTI2UGI0dFlackJjK0wvUGw2WG81dmVZTHFMRHh2UwpCUVBONWYwc25aUTgxNUNkaXBnZHhqSzl2OVI5NlpyZEtlZXl3Qi9nbmxIekFHZU54TlhWVmpxRlk1SG9lNVpkCldjcy9EWHFySVRGUER4ZUlHSU9kWFo4a2xSYnk4bmRVcHFQL05GRkI5TUhsakR5bkxEY1BFbGZkVURXM1I4R2cKY1FGY0lpUDRsN1ZYVXRXUXhiN0E2QkI3MFg2UW50N0ZYVVZtUy91Rkd3T0o3K2owSytydmJJbkZocEVyVjZERQo2U3BiUS8wV1ZQUVFvYURDSUNIbGFqM0V2bFhlall4R3NXSm93dUlPaTdQUnR0L0g4cHNrdFBTSEJlVU41aDQ9Cj1SMnV2Ci0tLS0tRU5EIFBHUCBTSUdOQVRVUkUtLS0tLQoKLS09X01haWxNYXRlXzU1NUI3ODk1LUQ4Q0ItNDIyOC05Q0FELTRBRjhBQTFDRkYxMl89LS0KCkZyb20gZGV2LXJldHVybi0xMjQ1MDgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE5vdiAxNyAxMjozMzo0MSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1MDgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgODJBNzExMDBCQQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDE3IE5vdiAyMDE3IDEyOjMzOjQxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTIzODMgaW52b2tlZCBieSB1aWQgNTAwKTsgMTcgTm92IDIwMTcgMTI6MzM6NDEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUyMzAyIGludm9rZWQgYnkgdWlkIDUwMCk7IDE3IE5vdiAyMDE3IDEyOjMzOjQxIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTIyOTEgaW52b2tlZCBieSB1aWQgOTkpOyAxNyBOb3YgMjAxNyAxMjozMzo0MCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMTcgTm92IDIwMTcgMTI6MzM6NDAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAxQkFFRjE4MDhFRgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTcgTm92IDIwMTcgMTI6MzM6NDAgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMy4xMDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTMuMTAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtIVE1MX01FU1NBR0U9MiwgUkNWRF9JTl9ETlNXTF9NRUQ9LTIuMywgUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwKCVJQX01BVENIRVNfUkNWRD0tMC4wMDEsIFNQRl9QQVNTPS0wLjAwMSwgVU5QQVJTRUFCTEVfUkVMQVk9MC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBaTklLQVNPOTFXVnkgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglGcmksIDE3IE5vdiAyMDE3IDEyOjMzOjM4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHVzZXJwMTA0MC5vcmFjbGUuY29tICh1c2VycDEwNDAub3JhY2xlLmNvbSBbMTU2LjE1MS4zMS44MV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBFMjdERTVGMkFECglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAxNyBOb3YgMjAxNyAxMjozMzozNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSB1c2VydjAwMjIub3JhY2xlLmNvbSAodXNlcnYwMDIyLm9yYWNsZS5jb20gWzE1Ni4xNTEuMzEuNzRdKQoJYnkgdXNlcnAxMDQwLm9yYWNsZS5jb20gKFNlbnRyaW9uLU1UQS00LjMuMi9TZW50cmlvbi1NVEEtNC4zLjIpIHdpdGggRVNNVFAgaWQgdkFIQ1haRTMwMjk1ODQKCSh2ZXJzaW9uPVRMU3YxLjIgY2lwaGVyPUVDREhFLVJTQS1BRVMyNTYtR0NNLVNIQTM4NCBiaXRzPTI1NiB2ZXJpZnk9T0spCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAxNyBOb3YgMjAxNyAxMjozMzozNiBHTVQKUmVjZWl2ZWQ6IGZyb20gdXNlcnYwMTIxLm9yYWNsZS5jb20gKHVzZXJ2MDEyMS5vcmFjbGUuY29tIFsxNTYuMTUxLjMxLjcyXSkKCWJ5IHVzZXJ2MDAyMi5vcmFjbGUuY29tICg4LjE0LjQvOC4xNC40KSB3aXRoIEVTTVRQIGlkIHZBSENYWkpBMDIxMzkwCgkodmVyc2lvbj1UTFN2MS9TU0x2MyBjaXBoZXI9REhFLVJTQS1BRVMyNTYtR0NNLVNIQTM4NCBiaXRzPTI1NiB2ZXJpZnk9T0spCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAxNyBOb3YgMjAxNyAxMjozMzozNSBHTVQKUmVjZWl2ZWQ6IGZyb20gYWJobXAwMDEyLm9yYWNsZS5jb20gKGFiaG1wMDAxMi5vcmFjbGUuY29tIFsxNDEuMTQ2LjExNi4xOF0pCglieSB1c2VydjAxMjEub3JhY2xlLmNvbSAoOC4xNC40LzguMTMuOCkgd2l0aCBFU01UUCBpZCB2QUhDWFo0bzAxMjE3NAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTcgTm92IDIwMTcgMTI6MzM6MzUgR01UClJlY2VpdmVkOiBmcm9tIGR1cmVuZGFsLmhvbWUgKC8xMDguMTYuOTUuMjA3KQoJYnkgZGVmYXVsdCAoT3JhY2xlIEJlZWhpdmUgR2F0ZXdheSB2NC4wKQoJd2l0aCBFU01UUCA7IEZyaSwgMTcgTm92IDIwMTcgMDQ6MzM6MzUgLTA4MDAKRnJvbTogUnVzc2VsbCBHb2xkIDxydXNzZWxsLmdvbGRAb3JhY2xlLmNvbT4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7CiBib3VuZGFyeT0iQXBwbGUtTWFpbD1fODhCMEM4MzktOEE3NS00QzA1LTlCRjMtMUU0ODk3NDE5NEUzIgpNaW1lLVZlcnNpb246IDEuMCAoTWFjIE9TIFggTWFpbCAxMC4zIFwoMzI3M1wpKQpTdWJqZWN0OiBSZTogW0FOTl0gQXBhY2hlIE1hdmVuIEpEZXByU2NhbiBQbHVnaW4gMy4wLjAtYWxwaGEtMSBSZWxlYXNlZApEYXRlOiBGcmksIDE3IE5vdiAyMDE3IDA3OjMzOjM0IC0wNTAwClJlZmVyZW5jZXM6IDxvcC55OXVja29tNmtka2hyckBkZXNrdG9wLTJraHNrNDQ+CiA8Q0FPR28wVllhcG0zSzhzcGc0WWRveWkzcEd5VWZlTDQ1Q3NPYXgxX2NodHRfWDBLQ3p3QG1haWwuZ21haWwuY29tPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KSW4tUmVwbHktVG86IDxDQU9HbzBWWWFwbTNLOHNwZzRZZG95aTNwR3lVZmVMNDVDc09heDFfY2h0dF9YMEtDendAbWFpbC5nbWFpbC5jb20+Ck1lc3NhZ2UtSWQ6IDxGN0YxQTEwNS1DMDE5LTQ5RjEtOEQzNi0xRkNFOERBQUE2NkRAb3JhY2xlLmNvbT4KWC1NYWlsZXI6IEFwcGxlIE1haWwgKDIuMzI3MykKWC1Tb3VyY2UtSVA6IHVzZXJ2MDAyMi5vcmFjbGUuY29tIFsxNTYuMTUxLjMxLjc0XQoKLS1BcHBsZS1NYWlsPV84OEIwQzgzOS04QTc1LTRDMDUtOUJGMy0xRTQ4OTc0MTk0RTMKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47CgljaGFyc2V0PXVzLWFzY2lpCgpJZiB5b3UgZ28gdG8gdGhlIHByb2plY3QgcGFnZSA9Cmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zL21hdmVuLWpkZXByc2Nhbi1wbHVnaW4vLCB5b3Ugd2lsbCBzZWUgPQptb3JlIGluZm9ybWF0aW9uLCBpbmNsdWRpbmcgaG93IHRvIGNoZWNrIG91dCB0aGUgc291cmNlczoKCnN2biBjaGVja291dCA9Cmh0dHA6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2YvbWF2ZW4vcGx1Z2lucy90YWdzL21hdmVuLWpkZXByc2Nhbi1wbHVnaW4tPQozLjAuMC1hbHBoYS0xIG1hdmVuLWpkZXByc2Nhbi1wbHVnaW4KCmFuZCBob3cgdG8gcmVmZXJlbmNlIGl0IGluIHlvdXIgcHJvamVjdAoKPGRlcGVuZGVuY3k+CiAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zPC9ncm91cElkPgogIDxhcnRpZmFjdElkPm1hdmVuLWpkZXByc2Nhbi1wbHVnaW48L2FydGlmYWN0SWQ+CiAgPHZlcnNpb24+My4wLjAtYWxwaGEtMTwvdmVyc2lvbj4KICA8dHlwZT5tYXZlbi1wbHVnaW48L3R5cGU+CjwvZGVwZW5kZW5jeT4KCi0gUnVzcwoKPiBPbiBOb3YgMTcsIDIwMTcsIGF0IDU6MDEgQU0sIHNlYmIgPHNlYmJhekBnbWFpbC5jb20+IHdyb3RlOgo+PTIwCj4gT24gMTcgTm92ZW1iZXIgMjAxNyBhdCAwOToyNywgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPiA9Cndyb3RlOgo+PiBUaGUgQXBhY2hlIE1hdmVuIHRlYW0gaXMgcGxlYXNlZCB0byBhbm5vdW5jZSB0aGUgZmlyc3QgcmVsZWFzZSBvZiB0aGUgPQpBcGFjaGUKPj4gTWF2ZW4gSkRlcHJTY2FuIFBsdWdpbiwgdmVyc2lvbiAzLjAuMC1hbHBoYS0xCj4+PTIwCj4+IFRoZSBNYXZlbiBKRGVwclNjYW4gcGx1Z2luIGlzIHVzZWQgdG8gc2NhbiBjbGFzcyBmaWxlcyBmb3IgdXNlcyBvZgo+PiBkZXByZWNhdGVkIEFQSSBlbGVtZW50cy4gSXQgdXNlcyB0aGUgamRlcHJzY2FuIHRvb2wgYXMgcHJvdmlkZWQgd2l0aCA9CkphdmEgOS4KPj49MjAKPj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMvbWF2ZW4tamRlcHJzY2FuLXBsdWdpbi8KPj49MjAKPj4gWW91IHNob3VsZCBzcGVjaWZ5IHRoZSB2ZXJzaW9uIGluIHlvdXIgcHJvamVjdCdzIHBsdWdpbiA9CmNvbmZpZ3VyYXRpb246Cj4+PTIwCj4+IDxwbHVnaW4+Cj4+ICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+Cj4+ICA8YXJ0aWZhY3RJZD5tYXZlbi1qZGVwcnNjYW4tcGx1Z2luPC9hcnRpZmFjdElkPgo+PiAgPHZlcnNpb24+My4wLjAtYWxwaGEtMTwvdmVyc2lvbj4KPj4gPC9wbHVnaW4+Cj4+PTIwCj4+IFlvdSBjYW4gZG93bmxvYWQgdGhlIGFwcHJvcHJpYXRlIHNvdXJjZXMgZXRjLiBmcm9tIHRoZSBkb3dubG9hZCBwYWdlOgo+Pj0yMAo+PiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy9tYXZlbi1qZGVwcnNjYW4tcGx1Z2luL2Rvd25sb2FkLmNnaQo+PTIwCj4gVGhlIGRvd25sb2FkIGxpbmsgcG9pbnRzIHRvIHRoZSB0b3AtbGV2ZWwgb2YgdGhlIEFTRiBtaXJyb3Igc3lzdGVtLgo+PTIwCj4gVGhpcyBtYWtlcyBpdCB2ZXJ5IGhhcmQgdG8gdXNlLgo+PTIwCj4+IEVuam95LAo+PTIwCj4gTG9va2luZyBmb3IgdGhlIG5lZWRsZSBpbiB0aGUgaGF5c3RhY2s/Cj49MjAKPj4gLVRoZSBBcGFjaGUgTWF2ZW4gdGVhbQo+PTIwCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj49MjAKCgotLUFwcGxlLU1haWw9Xzg4QjBDODM5LThBNzUtNEMwNS05QkYzLTFFNDg5NzQxOTRFMy0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MDE3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBTZXAgMTMgMjI6MzA6MDYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDE3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEJEREVEMTkwOUIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAxMyBTZXAgMjAxNyAyMjozMDowNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDU0NjUzIGludm9rZWQgYnkgdWlkIDUwMCk7IDEzIFNlcCAyMDE3IDIyOjMwOjA2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MzY4MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMyBTZXAgMjAxNyAyMjozMDowMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUzNjU0IGludm9rZWQgYnkgdWlkIDk5KTsgMTMgU2VwIDIwMTcgMjI6MzA6MDEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDEzIFNlcCAyMDE3IDIyOjMwOjAxICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgN0FEREExODU0MjQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3IDIyOjMwOjAxICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuMjk5ClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjI5OSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIEhUTUxfTUVTU0FHRT0yLAoJS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsIFVSSUJMX0JMT0NLRUQ9MC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9dGFsaW9zLWNvbS4yMDE1MDYyMy5nYXBwc3NtdHAuY29tClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgMlEtcVhNZkJXV0VqIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJV2VkLCAxMyBTZXAgMjAxNyAyMjozMDowMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlsLXBmMC1mMTcxLmdvb2dsZS5jb20gKG1haWwtcGYwLWYxNzEuZ29vZ2xlLmNvbSBbMjA5Ljg1LjE5Mi4xNzFdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgQjA3Njk1RjIzRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTMgU2VwIDIwMTcgMjI6Mjk6NTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGJ5IG1haWwtcGYwLWYxNzEuZ29vZ2xlLmNvbSB3aXRoIFNNVFAgaWQgeTI5c28yMzE2ODcxcGZmLjAKICAgICAgICBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMyBTZXAgMjAxNyAxNToyOTo1OSAtMDcwMCAoUERUKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9cmVsYXhlZC9yZWxheGVkOwogICAgICAgIGQ9dGFsaW9zLWNvbS4yMDE1MDYyMy5nYXBwc3NtdHAuY29tOyBzPTIwMTUwNjIzOwogICAgICAgIGg9ZnJvbTp0bzpzdWJqZWN0OmRhdGU6bWVzc2FnZS1pZDppbi1yZXBseS10bzpyZWZlcmVuY2VzOm1pbWUtdmVyc2lvbjsKICAgICAgICBiaD1KYys0Mk1NQldtWVRPZExrODFIOTBUQVF0MWZZRGM1bDY2OWxEeUZhd0NrPTsKICAgICAgICBiPUlCRjVLTU9pRWZVMVVzanJjQkZLQTdjSTJsei9Gc0tYMSttdXZvakQrMXJRcy84VWxvcUdnRGV4dWYreWVCdkNxcwogICAgICAgICBjcnloaGx1UjUzQm5Md0RpRm0wcHRzb2lKQnRTd2pNWG5sUzh2bHMwOGYwaklWVytQVWI2TG5BaEJGRnQwT2JBSTMxbAogICAgICAgICBBd0FJeVlzR3lUR1k2emkrazRiRGMrbmF4MlhabTFmY2NzK29jdTU3dm9XS24zMkExK0IyOS9pZ2NySm8ydkpNQUdjSAogICAgICAgICBoZDZCVkFSUk4zSm5vZ3NkNE1lOUEyaStRQjd1SVFoeUczcWgvYUhxYkJja2N2ZXA5VU1KMlBSUVNGOSs4THU2U0tqZwogICAgICAgICBIUHNvU2NXcy8vZ1RmWmN4NmEzTGQ1cjg3ZnhWaHFNTkZnNWdSZEg1dHVTOTFkMVRhQ3VGNFNxUFAwMXBGVndCSzZIVwogICAgICAgICBaRytRPT0KWC1Hb29nbGUtREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsKICAgICAgICBkPTFlMTAwLm5ldDsgcz0yMDE2MTAyNTsKICAgICAgICBoPXgtZ20tbWVzc2FnZS1zdGF0ZTpmcm9tOnRvOnN1YmplY3Q6ZGF0ZTptZXNzYWdlLWlkOmluLXJlcGx5LXRvCiAgICAgICAgIDpyZWZlcmVuY2VzOm1pbWUtdmVyc2lvbjsKICAgICAgICBiaD1KYys0Mk1NQldtWVRPZExrODFIOTBUQVF0MWZZRGM1bDY2OWxEeUZhd0NrPTsKICAgICAgICBiPXQrRVNHdmNLNVRQUUhRT3JGM0RGNE4xOWJaMzB4UEx6YmdLdnNGNWxLQW9pdzBJVzZzZFdBR0ZnUmxWNm9LVnZQbwogICAgICAgICBWcWVvRkhSMU5JWExLclNYOE5sVUFmK3RKcnJCQk5NU2ZmVm82NFdOQ2dqYVN6dkFPbENTY2NZTVA5ZDZIZEtYQTFvagogICAgICAgICBZVitPcGVLWTk1UzJLdHFTRFE2cExmNWk2VEw0VDNKYVNhemgwRUhtL2pVUTMvMEs2czBqT0VDd21iVDlsMFdIbzB4bgogICAgICAgICBKem9HN01qamJhNnExWU4vT0VycjFxbzgrOXIzSDlWSXVmbkV3emgxeTNOb2ltSVhxRGZyTW9MSVlJRFMrZ1M1a1lQSwogICAgICAgICB5YjRGU3VJRFE0UlQ3UE8wZ1BwQmppQk5oeElLMlh5dC9YbzNkMGhMUDJVSkFUUWQ2UEtrMHljYlZUb2FtM0Jza3FRYQogICAgICAgICBMWFVRPT0KWC1HbS1NZXNzYWdlLVN0YXRlOiBBSFBqalVpc2JYOTNzaXRIWEtjbGI4NXpxbVdlRUNJWkZ6UXRUUnlldGxBWnN6NkJXQVlCaDFOSAoJQWZoNlNyQTJ4R1RqeGtKQ2F1b0UrQT09ClgtR29vZ2xlLVNtdHAtU291cmNlOiBBREtDTmI3a3IwYXE2eFVtclJUalo5OUwzNkJraUdBWXRpTkZmNnJSZGVBblk5eEExOEhydjJBcUNydm5UVUErQ1VrUStZaE5jNy9pUXc9PQpYLVJlY2VpdmVkOiBieSAxMC44NC4xOTcuNjkgd2l0aCBTTVRQIGlkIG02M21yMjE4MzYzMzNwbGQuMjI2LjE1MDUzNDE3OTU3ODc7CiAgICAgICAgV2VkLCAxMyBTZXAgMjAxNyAxNToyOTo1NSAtMDcwMCAoUERUKQpSZWNlaXZlZDogZnJvbSBbMTAuMC4wLjEzMV0gKGFrbC5zbXguY28ubnouIFsyMDMuODQuMTM1LjEyMF0pCiAgICAgICAgYnkgc210cC5nbWFpbC5jb20gd2l0aCBFU01UUFNBIGlkIDY0c20yODQwNzg3NXBnZS40NC4yMDE3LjA5LjEzLjE1LjI5LjUzCiAgICAgICAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KICAgICAgICAodmVyc2lvbj1UTFMxXzIgY2lwaGVyPUVDREhFLVJTQS1BRVMxMjgtR0NNLVNIQTI1NiBiaXRzPTEyOC8xMjgpOwogICAgICAgIFdlZCwgMTMgU2VwIDIwMTcgMTU6Mjk6NTQgLTA3MDAgKFBEVCkKRnJvbTogIk1hcmsgRGVycmljdXR0IiA8bWFya0B0YWxpb3MuY29tPgpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xCkRhdGU6IFRodSwgMTQgU2VwIDIwMTcgMTA6Mjk6NTEgKzEyMDAKTWVzc2FnZS1JRDogPEZBQURERTE0LUMzNzgtNEQzRC04QUVFLTlBQzhDQ0Y5MTc4M0B0YWxpb3MuY29tPgpJbi1SZXBseS1UbzogPDc0QzEyN0IwLUY3MDctNEJCQS1BMkMxLUQ1N0U2MEM5QzBGQ0B0YWxpb3MuY29tPgpSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgogPENBRk5DVS0tMnZyZDVCZVR2a3hLQ3lYMlpRZVBxaXg3WD13bVZzV2RNNWQ0OVhlTmdPd0BtYWlsLmdtYWlsLmNvbT4KIDxGNzA1N0UxQi00MzEzLTREN0ItOEVGMS05OTM0MUREMUUxRDBAdGFsaW9zLmNvbT4KIDxDQStuUG5Nd1VxbUJ1cmF0RDFDcGs9TDl0QUN3Xytxb3Ryc1VwQ3FkcVJaWG1XWGdpVEFAbWFpbC5nbWFpbC5jb20+CiA8QjE0OEM5NjctMTY5NS00NUMyLUExNUYtMUZGRjkwM0JDQjUwQHRhbGlvcy5jb20+CiA8NzRDMTI3QjAtRjcwNy00QkJBLUEyQzEtRDU3RTYwQzlDMEZDQHRhbGlvcy5jb20+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L3NpZ25lZDsKIGJvdW5kYXJ5PSI9X01haWxNYXRlXzFGREI0RDY1LUU1Q0EtNDBFRC05QjE3LUQzQzhGM0IxNzM5NV89IjsKIG1pY2FsZz1wZ3Atc2hhMTsgcHJvdG9jb2w9ImFwcGxpY2F0aW9uL3BncC1zaWduYXR1cmUiClgtTWFpbGVyOiBNYWlsTWF0ZSAoMi4wQkVUQXI2MDkwKQoKLS09X01haWxNYXRlXzFGREI0RDY1LUU1Q0EtNDBFRC05QjE3LUQzQzhGM0IxNzM5NV89CkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOwogYm91bmRhcnk9Ij1fTWFpbE1hdGVfOTUwOEU0ODctOUU0Ri00MENFLUE4REMtRDJDOUE4QUE0RkE4Xz0iCgoKLS09X01haWxNYXRlXzk1MDhFNDg3LTlFNEYtNDBDRS1BOERDLUQyQzlBOEFBNEZBOF89CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgbWFya3VwPW1hcmtkb3duCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCk9uIDE0IFNlcCAyMDE3LCBhdCAxMDoyNiwgTWFyayBEZXJyaWN1dHQgd3JvdGU6Cgo+IENhbGxpbmcgLTIgZm9yIHZvdGUgaWYgbm90IHRvbyBsYXRlLgoKQWN0dWFsbHkgLSBsb29raW5nIGF0IHRoZSBjb21taXQgZGlmZiwgSSBzZWUgaW4gb3VyIGNvZGUgd2UgZGlkIGhhdmUgYDxleD0KdGVuc2lvbnM+dHJ1ZTwvZXh0ZW5zaW9ucz5gIGZvciB0aGUgYGphc21pbmUtbWF2ZW4tcGx1Z2luYCB3aGljaCB3ZSBkb24ndD0KIGFjdHVhbGx5IG5lZWQuIFJlbW92aW5nIHRoYXQgZnJvbSB0aGUgbW9qbyBkZWZpbml0aW9uIGFuZCBydW5uaW5nIG15IGJ1aT0KbGQgd2l0aCB0aGUgc3RhZ2VkIDMuNS4xIHJlbGVhc2UgYW5kIGV2ZXJ5dGhpbmcgYnVpbGRzIGZpbmUuCgorMiBub24tYmluZGluZyBmcm9tIE1hcmshCgpNYXJrCgoKLS0tCiJUaGUgZWFzZSB3aXRoIHdoaWNoIGEgY2hhbmdlIGNhbiBiZSBpbXBsZW1lbnRlZCBoYXMgbm8gcmVsZXZhbmNlIGF0IGFsbCA9CnRvIHdoZXRoZXIgaXQgaXMgdGhlIHJpZ2h0IGNoYW5nZSBmb3IgdGhlIChKYXZhKSBQbGF0Zm9ybSBmb3IgYWxsIHRpbWUuIiA9CiZtZGFzaDsgTWFyayBSZWluaG9sZC4KCk1hcmsgRGVycmljdXR0Cmh0dHA6Ly93d3cudGhlb3J5aW5wcmFjdGljZS5uZXQKaHR0cDovL3d3dy5jaGFsaWNlb2ZibG9vZC5uZXQKaHR0cDovL3BsdXMuZ29vZ2xlLmNvbS8rTWFya0RlcnJpY3V0dApodHRwOi8vdHdpdHRlci5jb20vdGFsaW9zCmh0dHA6Ly9mYWNlYm9vay5jb20vbWRlcnJpY3V0dAoKLS09X01haWxNYXRlXzk1MDhFNDg3LTlFNEYtNDBDRS1BOERDLUQyQzlBOEFBNEZBOF89CkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCjwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPgo8aHRtbD4KPGhlYWQ+CjxtZXRhIGh0dHAtZXF1aXY9M0QiQ29udGVudC1UeXBlIiBjb250ZW50PTNEInRleHQveGh0bWw7IGNoYXJzZXQ9M0R1dGYtOCI9Cj4KPC9oZWFkPgo8Ym9keT4KPGRpdiBzdHlsZT0zRCJmb250LWZhbWlseTpzYW5zLXNlcmlmIj48ZGl2IHN0eWxlPTNEIndoaXRlLXNwYWNlOm5vcm1hbCI+CjxwIGRpcj0zRCJhdXRvIj5PbiAxNCBTZXAgMjAxNywgYXQgMTA6MjYsIE1hcmsgRGVycmljdXR0IHdyb3RlOjwvcD4KCjxibG9ja3F1b3RlIHN0eWxlPTNEImJvcmRlci1sZWZ0OjJweCBzb2xpZCAjNTg1NUQ1OyBjb2xvcjojNTg1NUQ1OyBtYXJnaW49CjowIDAgNXB4OyBwYWRkaW5nLWxlZnQ6NXB4Ij4KPHAgZGlyPTNEImF1dG8iPkNhbGxpbmcgLTIgZm9yIHZvdGUgaWYgbm90IHRvbyBsYXRlLjwvcD4KPC9ibG9ja3F1b3RlPgoKPHAgZGlyPTNEImF1dG8iPkFjdHVhbGx5IC0gbG9va2luZyBhdCB0aGUgY29tbWl0IGRpZmYsIEkgc2VlIGluIG91ciBjb2RlID0Kd2UgZGlkIGhhdmUgPGNvZGU+Jmx0O2V4dGVuc2lvbnMmZ3Q7dHJ1ZSZsdDsvZXh0ZW5zaW9ucyZndDs8L2NvZGU+IGZvciB0aD0KZSA8Y29kZT5qYXNtaW5lLW1hdmVuLXBsdWdpbjwvY29kZT4gd2hpY2ggd2UgZG9uJ3QgYWN0dWFsbHkgbmVlZC4gUmVtb3Zpbj0KZyB0aGF0IGZyb20gdGhlIG1vam8gZGVmaW5pdGlvbiBhbmQgcnVubmluZyBteSBidWlsZCB3aXRoIHRoZSBzdGFnZWQgMy41Lj0KMSByZWxlYXNlIGFuZCBldmVyeXRoaW5nIGJ1aWxkcyBmaW5lLjwvcD4KCjxwIGRpcj0zRCJhdXRvIj4rMiBub24tYmluZGluZyBmcm9tIE1hcmshPC9wPgoKPHAgZGlyPTNEImF1dG8iPk1hcms8L3A+Cgo8aHI+Cgo8cCBkaXI9M0QiYXV0byI+IlRoZSBlYXNlIHdpdGggd2hpY2ggYSBjaGFuZ2UgY2FuIGJlIGltcGxlbWVudGVkIGhhcyBubyByPQplbGV2YW5jZSBhdCBhbGwgdG8gd2hldGhlciBpdCBpcyB0aGUgcmlnaHQgY2hhbmdlIGZvciB0aGUgKEphdmEpIFBsYXRmb3JtPQogZm9yIGFsbCB0aW1lLiIgPUUyPTgwPTk0IE1hcmsgUmVpbmhvbGQuPC9wPgoKPHAgZGlyPTNEImF1dG8iPk1hcmsgRGVycmljdXR0PGJyPgo8YSBocmVmPTNEImh0dHA6Ly93d3cudGhlb3J5aW5wcmFjdGljZS5uZXQiPmh0dHA6Ly93d3cudGhlb3J5aW5wcmFjdGljZS5uPQpldDwvYT48YnI+CjxhIGhyZWY9M0QiaHR0cDovL3d3dy5jaGFsaWNlb2ZibG9vZC5uZXQiPmh0dHA6Ly93d3cuY2hhbGljZW9mYmxvb2QubmV0PC89CmE+PGJyPgo8YSBocmVmPTNEImh0dHA6Ly9wbHVzLmdvb2dsZS5jb20vK01hcmtEZXJyaWN1dHQiPmh0dHA6Ly9wbHVzLmdvb2dsZS5jb20vPQorTWFya0RlcnJpY3V0dDwvYT48YnI+CjxhIGhyZWY9M0QiaHR0cDovL3R3aXR0ZXIuY29tL3RhbGlvcyI+aHR0cDovL3R3aXR0ZXIuY29tL3RhbGlvczwvYT48YnI+CjxhIGhyZWY9M0QiaHR0cDovL2ZhY2Vib29rLmNvbS9tZGVycmljdXR0Ij5odHRwOi8vZmFjZWJvb2suY29tL21kZXJyaWN1dHQ9CjwvYT48L3A+CjwvZGl2Pgo8L2Rpdj4KPC9ib2R5Pgo8L2h0bWw+CgotLT1fTWFpbE1hdGVfOTUwOEU0ODctOUU0Ri00MENFLUE4REMtRDJDOUE4QUE0RkE4Xz0tLQoKLS09X01haWxNYXRlXzFGREI0RDY1LUU1Q0EtNDBFRC05QjE3LUQzQzhGM0IxNzM5NV89CkNvbnRlbnQtRGVzY3JpcHRpb246IE9wZW5QR1AgZGlnaXRhbCBzaWduYXR1cmUKQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9c2lnbmF0dXJlLmFzYwpDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3BncC1zaWduYXR1cmU7IG5hbWU9c2lnbmF0dXJlLmFzYwoKLS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0KVmVyc2lvbjogR251UEcvTWFjR1BHMiB2Mi4wCgppUUVjQkFFQkFnQUdCUUpadWJGZkFBb0pFT2phZzJSelR0SkZ0cGdJQUpLRFYvNU53cHh1NUthRFY3VHVtYUV1CjVJc2F6TTlPRjJvTnVqOTczMjdVZUdpM05vL2MzZnRBUXR3RnhDMFprdDE5WFE2NnNVM1kyR3VJOG9Vc1BXcWUKNEJLMHhqUmhRUTVNNHRiSXNXckV6dEF0Q0ptS0cxYmJ3R2lrRkVSMWg3VU9sQjRhc0l5OVg5RXhNa0RVUExDSwpzdTZQNlVlcEg4M3NQUmhBdFBsY1BYVHNJWDdTdzdoaFJaTWFyeUhSMjM4Rk5TVkpJUmgwZUFwYUNCdmdrZlVnCkZQSUxIaFAwMDN6Z1NDSk84ZUtSOXVqQTJDcS9ZTEFjQnJSMTZjNzArYTBuREJXYU9QSjBwNXV0blhiamFONHQKU1lyaWc4UHVSRUNkL0paejN5ZEJWT0I2czFsNmt6K3pZMXpoMitrRm1UQkp4SUVDQzRtdkIzclE3SnZ4a3RVPQo9RHdLcgotLS0tLUVORCBQR1AgU0lHTkFUVVJFLS0tLS0KCi0tPV9NYWlsTWF0ZV8xRkRCNEQ2NS1FNUNBLTQwRUQtOUIxNy1EM0M4RjNCMTczOTVfPS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0NDQyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBOb3YgIDcgMDE6MzI6MDYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDQyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDY1MUJCMTBBRDgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAgNyBOb3YgMjAxNyAwMTozMjowNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDIwNjIzIGludm9rZWQgYnkgdWlkIDUwMCk7IDcgTm92IDIwMTcgMDE6MzI6MDYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIwNTYwIGludm9rZWQgYnkgdWlkIDUwMCk7IDcgTm92IDIwMTcgMDE6MzI6MDYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMDU0NiBpbnZva2VkIGJ5IHVpZCA5OSk7IDcgTm92IDIwMTcgMDE6MzI6MDUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDA3IE5vdiAyMDE3IDAxOjMyOjA1ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQ0UxOUNDQTY5QQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgIDcgTm92IDIwMTcgMDE6MzI6MDQgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjg3MQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjg3MSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBTUEZfSEVMT19QQVNTPS0wLjAwMSwgU1BGX1NPRlRGQUlMPTAuOTcyXQoJYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMTAyNC1iaXQga2V5KSBoZWFkZXIuZD1ob250b24ub3JnClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCB3cHBEN0liajBscUEgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUdWUsICA3IE5vdiAyMDE3IDAxOjMyOjAyICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGJpejQ2LmlubW90aW9uaG9zdGluZy5jb20gKGJpejQ2LmlubW90aW9uaG9zdGluZy5jb20gWzIwNS4xMzQuMjUwLjE2MF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBBRTRFMTVGM0NGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAgNyBOb3YgMjAxNyAwMTozMjowMiArMDAwMCAoVVRDKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IHE9ZG5zL3R4dDsgYz1yZWxheGVkL3JlbGF4ZWQ7IGQ9aG9udG9uLm9yZzsKCSBzPWRlZmF1bHQ7IGg9TWVzc2FnZS1JZDpJbi1SZXBseS1UbzpUbzpSZWZlcmVuY2VzOkRhdGU6U3ViamVjdDpNaW1lLVZlcnNpb246CglDb250ZW50LVR5cGU6RnJvbTpTZW5kZXI6UmVwbHktVG86Q2M6Q29udGVudC1UcmFuc2Zlci1FbmNvZGluZzpDb250ZW50LUlEOgoJQ29udGVudC1EZXNjcmlwdGlvbjpSZXNlbnQtRGF0ZTpSZXNlbnQtRnJvbTpSZXNlbnQtU2VuZGVyOlJlc2VudC1UbzpSZXNlbnQtQ2MKCTpSZXNlbnQtTWVzc2FnZS1JRDpMaXN0LUlkOkxpc3QtSGVscDpMaXN0LVVuc3Vic2NyaWJlOkxpc3QtU3Vic2NyaWJlOgoJTGlzdC1Qb3N0Okxpc3QtT3duZXI6TGlzdC1BcmNoaXZlOwoJYmg9a3JYVHo4ajRoSS9HOUU0bWZDNkpYSHMrbDVYaVFBdkdUemdKNFNLTTJVbz07IGI9SU8rMGZvTWYrRWlFd09rL2E0d2dkdWYraG8KCUVFaWo3QXgxbkJxcjY5ZnZzYmJZT1ovN3hndmFkeHJBS3Y3d0R6czgzTTNlUHI4QVBaMmhwSWJLUnlkc25lTnFJSm5rdWpITmhSdklPCgl0bXNoenhER2Z5ak9XSlYybUhaQWE1TlUreE0zdFpMUXNkUmR3Mzd6em5kcFVNREJDQ0JHZTc5TFFwa1NQT2p5MFBwND07ClJlY2VpdmVkOiBmcm9tIFsxNzMuMjI4Ljg4LjExNF0gKHBvcnQ9NjA4MDkgaGVsbz1bMTkyLjE2OC4xLjI4XSkKCWJ5IGJpejQ2LmlubW90aW9uaG9zdGluZy5jb20gd2l0aCBlc210cHNhIChUTFN2MS4yOkVDREhFLVJTQS1BRVMyNTYtR0NNLVNIQTM4NDoyNTYpCgkoRXhpbSA0Ljg5KQoJKGVudmVsb3BlLWZyb20gPGNoYXNAaG9udG9uLm9yZz4pCglpZCAxZUJzazItMDAwODN6LVIwCglmb3IgZGV2QG1hdmVuLmFwYWNoZS5vcmc7IE1vbiwgMDYgTm92IDIwMTcgMTc6MzE6NTYgLTA4MDAKRnJvbTogQ2hhcmxlcyBIb250b24gPGNoYXNAaG9udG9uLm9yZz4KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7CiBib3VuZGFyeT0iQXBwbGUtTWFpbD1fMjVBQUNDNTItREVGQy00MzNBLTgwMEUtRjk1MERBODU5MzQ5IgpNaW1lLVZlcnNpb246IDEuMCAoTWFjIE9TIFggTWFpbCAxMC4zIFwoMzI3M1wpKQpTdWJqZWN0OiBSZTogUmVhY3RvciBzYWZlL3JhbGx5IHBvaW50cwpEYXRlOiBNb24sIDYgTm92IDIwMTcgMTc6MzE6NTAgLTA4MDAKUmVmZXJlbmNlczogPDg2MTQxRUIzLTEzM0YtNDU0Ri05RjJGLTNGRTIyMTMwMTFFNEBob250b24ub3JnPgogPENBK25Qbk16czg5Rl9xQ19ac2ZQamF5UGhxPTVGanl3OG1oVE1udFhQYTgyX29oLU1Sd0BtYWlsLmdtYWlsLmNvbT4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8Q0ErblBuTXpzODlGX3FDX1pzZlBqYXlQaHE9NUZqeXc4bWhUTW50WFBhODJfb2gtTVJ3QG1haWwuZ21haWwuY29tPgpNZXNzYWdlLUlkOiA8RkM4ODVBQzQtRTRCRi00N0RFLTg4OTYtNzJEMUU2Q0UzRTEwQGhvbnRvbi5vcmc+ClgtTWFpbGVyOiBBcHBsZSBNYWlsICgyLjMyNzMpClgtT3V0R29pbmctU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMS4wClgtQW50aUFidXNlOiBUaGlzIGhlYWRlciB3YXMgYWRkZWQgdG8gdHJhY2sgYWJ1c2UsIHBsZWFzZSBpbmNsdWRlIGl0IHdpdGggYW55IGFidXNlIHJlcG9ydApYLUFudGlBYnVzZTogUHJpbWFyeSBIb3N0bmFtZSAtIGJpejQ2LmlubW90aW9uaG9zdGluZy5jb20KWC1BbnRpQWJ1c2U6IE9yaWdpbmFsIERvbWFpbiAtIG1hdmVuLmFwYWNoZS5vcmcKWC1BbnRpQWJ1c2U6IE9yaWdpbmF0b3IvQ2FsbGVyIFVJRC9HSUQgLSBbNDcgMTJdIC8gWzQ3IDEyXQpYLUFudGlBYnVzZTogU2VuZGVyIEFkZHJlc3MgRG9tYWluIC0gaG9udG9uLm9yZwpYLUdldC1NZXNzYWdlLVNlbmRlci1WaWE6IGJpejQ2LmlubW90aW9uaG9zdGluZy5jb206IGF1dGhlbnRpY2F0ZWRfaWQ6IGNoYXMraG9udG9uLm9yZy9vbmx5IHVzZXIgY29uZmlybWVkL3ZpcnR1YWwgYWNjb3VudCBub3QgY29uZmlybWVkClgtQXV0aGVudGljYXRlZC1TZW5kZXI6IGJpejQ2LmlubW90aW9uaG9zdGluZy5jb206IGNoYXNAaG9udG9uLm9yZwpYLVNvdXJjZTogClgtU291cmNlLUFyZ3M6IApYLVNvdXJjZS1EaXI6IAoKLS1BcHBsZS1NYWlsPV8yNUFBQ0M1Mi1ERUZDLTQzM0EtODAwRS1GOTUwREE4NTkzNDkKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47CgljaGFyc2V0PXV0Zi04CgpBcmUgdGhlc2UgaW50ZWdyYXRpb24gdGVzdCBmb3IgdGhlIHBsdWdpbiBvciBkbyB0aGUgaW50ZWdyYXRpb24gdGVzdHMgPQp1c2UgdGhlIHBsdWdpbj8gIElmIHRoZSBmb3JtZXIsIHRoZW4gdGhlIGludm9rZXIgcGx1Z2luIGlzIGFwcHJvcHJpYXRlLiAgPQpJZiB0aGUgbGF0dGVyLCB0aGVuIGEgbm9uLWNvZGUsIG5vbi10cmFuc2l0aXZlIGRlcGVuZGVuY3kgc2NvcGUgaXMgYSA9CnBvc3NpYmlsaXR5LiAgQWdhaW4sIHRoaXMgbmV3IHNjb3BlIGhhcyB0aGUgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgPQpwcm9ibGVtLi4KCj4gT24gTm92IDUsIDIwMTcsIGF0IDExOjMwIFBNLCBTdGVwaGVuIENvbm5vbGx5ID0KPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+PTIwCj4gWWVzIGl0IHdvdWxkLCBidXQgc29jaWFsbHkgcGVvcGxlIGRvbj1FMj04MD05OXQgZG8gdGhhdC4uLiBhbmQgYW55d2F5LCA9CnRoZXJlIGFyZQo+IGxlZ2l0aW1hdGUgdXNlIGNhc2VzLCBlZyB0b21lZSBoYXMgKG9yIGhhZCBpZiB0aGV5IGdhdmUgdXAgZmlnaHRpbmcgPQphbmQKPiBtb3ZlZCBpdCBvdXQgb2YgcmVhY3RvcikgYSBwbHVnaW4gdGhhdCB3YXMgdGllZCB0byB0aGUgY29udGFpbmVyID0KdmVyc2lvbi4KPiBUbyBhbGxvdyBpbnRlZ3JhdGlvbiB0ZXN0cyBpbiB0aGUgc2FtZSByZWFjdG9yIGFzIHRoZSBtYWluIGNvZGViYXNlLCA9Cml0IGlzCj4gcmVhc29uYWJsZSB0byB3YW50IHRoZSBwbHVnaW4gYnVpbHQgYXQgdGhlIHNhbWUgdGltZS4KCgotLUFwcGxlLU1haWw9XzI1QUFDQzUyLURFRkMtNDMzQS04MDBFLUY5NTBEQTg1OTM0OS0tCgpGcm9tIGRldi1yZXR1cm4tMTI0MTE2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBTZXAgMzAgMDg6MzQ6MjggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTE2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEVGQzZCMTA2OUYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAzMCBTZXAgMjAxNyAwODozNDoyOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDMyNjAyIGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIFNlcCAyMDE3IDA4OjM0OjI4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMjUxNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMCBTZXAgMjAxNyAwODozNDoyOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMyNTAzIGludm9rZWQgYnkgdWlkIDk5KTsgMzAgU2VwIDIwMTcgMDg6MzQ6MjggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMzAgU2VwIDIwMTcgMDg6MzQ6MjggKzAwMDAKUmVjZWl2ZWQ6IGZyb20gYmVuZWRpa3RzLW1icC5sb2NhbCAoZHNsYi0wODgtMDc4LTIxNS0wNzcuMDg4LjA3OC5wb29scy52b2RhZm9uZS1pcC5kZSBbODguNzguMjE1Ljc3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDdERTkxMUEwMkQyCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAzMCBTZXAgMjAxNyAwODozNDoyNyArMDAwMCAoVVRDKQpGcm9tOiBCZW5lZGlrdCBSaXR0ZXIgPGJyaXR0ZXJAYXBhY2hlLm9yZz4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKTWltZS1WZXJzaW9uOiAxLjAgKE1hYyBPUyBYIE1haWwgMTAuMyBcKDMyNzNcKSkKU3ViamVjdDogTWF2ZW4gU3VyZWZpcmUgYW5kIEpVbml0IDUKTWVzc2FnZS1JZDogPEZFMTA3QjRELUQ3QjQtNDcxQi04NzA5LUIxOTcxNzE4RDE0MEBhcGFjaGUub3JnPgpEYXRlOiBTYXQsIDMwIFNlcCAyMDE3IDEwOjM0OjIwICswMjAwClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpYLU1haWxlcjogQXBwbGUgTWFpbCAoMi4zMjczKQoKSGVsbG8sCgpmb3Igb3ZlciBhIHllYXIgbm93IEk9RTI9ODA9OTltIHRyeWluZyB0byBoZWxwIGdldHRpbmcgSlVuaXQgNSBzdXBwb3J0ID0KaW50byBNYXZlbiBTdXJlZmlyZS4gVGhpcyBoYXMgYmVlbiBoYXJkIHNpbmNlIFRpYm9yIHNlZW1zIHRvIGJlIHRoZSBvbmx5ID0Kb25lIG1haW50YWluaW5nIE1hdmVuIFN1cmVmaXJlIGFuZCBoZSBoYWQgdG8gY29tZSB3aXRoIG90aGVyIHRoaW5ncy4KCkZvciB0aGlzIHJlYXNvbiBJPUUyPTgwPTk5ZCBsaWtlIHRvIGFzayBvdGhlciBNYXZlbiBtYWludGFpbmVycyB0byBoZWxwID0Kd2l0aCB0aGUgSlVuaXQgNSBzdXBwb3J0LiBJPUUyPTgwPTk5bSBoYXBweSB0byBkbyB0aGUgd29yaywgYnV0IEk9RTI9ODA9OTk9Cm0gY29uc3RhbnRseSBibG9ja2VkIGJ5IG9ic2N1cmUgYnVpbGQgZmFpbHVyZXMgd2hpY2ggST1FMj04MD05OW0gdW5hYmxlID0KdG8gcmVzb2x2ZSBteXNlbGYgb3IgYnkgbGFjayBvZiBjb2RlIHJldmlldyB1bmQgbWVyZ2Ugb2YgY2hhbmdlcy4KCi0gV29yayBvbiBKVW5pdDUgc3VwcG9ydCBpcyBjdXJyZW50bHkgZG9uZSBpbiB0aGUganVuaXQ1IGJyYW5jaC4KLSBJIGhhdmUgZHJhZnRlZCBhIFByb3ZpZGVyIExvb2t1cCBpbXBsZW1lbnRhdGlvbiBpbiB0aGUganVuaXQ1IGJyYW5jaCwgPQpidXQgSSBkb249RTI9ODA9OTl0IGtub3cgd2hldGhlciBpdCB3b3JrcyBiZWNhdXNlIEkgY2FuPUUyPTgwPTk5dCBnZXQgPQp0aGUgaW50ZWdyYXRpb24gdGVzdHMgcnVubmluZwotIFRoZXJlIGlzIGFuIG9wZW4gUFIgdG8gbWVyZ2UgdGhlIG1hc3RlciBicmFuY2ggYmFjayBpbnRvIGp1bml0NSA9CmJyYW5jaCwgYnV0IGl0IGhhcyBidWlsZCBmYWlsdXJlcyBJIGRvbj1FMj04MD05OXQgdW5kZXJzdGFuZCBbMV0KClBsZWFzZSBoZWxwIQpDaGVlcnMsCkJlbmVkaWt0CgpbMV0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2NQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDg2OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgRGVjIDI4IDE4OjMxOjQ1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg2OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3NDFCNjEwQzQ5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjggRGVjIDIwMTcgMTg6MzE6NDUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5NzcyOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBEZWMgMjAxNyAxODozMTo0NSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTc2NTMgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggRGVjIDIwMTcgMTg6MzE6NDUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NzYzOCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IERlYyAyMDE3IDE4OjMxOjQ0IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyOCBEZWMgMjAxNyAxODozMTo0NCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDMwNjU4MTgwNzNBOwoJVGh1LCAyOCBEZWMgMjAxNyAxODozMTo0NCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjcwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC43MDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W1JDVkRfSU5fRE5TV0xfTE9XPS0wLjcsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgU2JKeXVOUzVXN2RqOyBUaHUsIDI4IERlYyAyMDE3IDE4OjMxOjQzICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1vdXQuZ214Lm5ldCAobW91dC5nbXgubmV0IFsyMTIuMjI3LjE1LjE4XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDY5M0ZCNUYxOUM7CglUaHUsIDI4IERlYyAyMDE3IDE4OjMxOjQyICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIEthcmwtSGVpbnpzLU1hY0Jvb2stUHJvLmxvY2FsIChbOTIuMjA0LjQ2LjQ3XSkgYnkgbWFpbC5nbXguY29tCiAobXJnbXgwMDEgWzIxMi4yMjcuMTcuMTkwXSkgd2l0aCBFU01UUFNBIChOZW1lc2lzKSBpZAogMExsRGI0LTFmM1ExMzJRSEctMDBiNXNuOyBUaHUsIDI4IERlYyAyMDE3IDE5OjMxOjM1ICswMTAwClJlcGx5LVRvOiBpbmZvQHNvZWJlcy5kZQpTdWJqZWN0OiBSZTogc2Vjb25kIGZpeCBmb3IgTU5HLTYzMzAgW3JlZ3Jlc3Npb25dIFBhcmVudHMgcmVsYXRpdmVQYXRoIG5vdAogdmVyaWZpZWQgYW55bW9yZQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sCiBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+ClJlZmVyZW5jZXM6IDxvcC56Ynl1cnpuYmtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KIDw3MTI5NDU4Ni04NDMyLTA3NmEtMTNmNC1lZWNjMTA5YTYxM2RAZ214LmRlPgogPG9wLnpieXgzOHRta2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgpGcm9tOiBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4KTWVzc2FnZS1JRDogPGEwNmZmZTVhLWI1ODYtYTcxZS0zZDBiLTY5ODNhMTZkNTRjMkBnbXguZGU+CkRhdGU6IFRodSwgMjggRGVjIDIwMTcgMTk6MzE6MzUgKzAxMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi41LjAKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDxvcC56Ynl4Mzh0bWtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLUdCCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6RGEwMVpMSk5pMHdRbi9wRDlxUjFmN1I2dU5Bdmp4VmNDRXJ0ZmRKczFrMHdmZ2F1TEFPCiBTWTlGN2RRSlAzZXkxWmhnVHFjeGZmUGI5SEI2dnFuTTBNWmNlNDluSExsUE1ZSjF4Vk9LR1VkZEczUmlQQk5KMFdnMU5kZwogTmoxU1R6TmVIUmVyamcwRUoxVjh0RDcwNUdveTRFL1lza0ZFd1ZyWGw0dnk0QUdDdXRQem4yL09jM09yTW5Bc1Y1T0IzOHgKIFNCK3A4RzFJdm5hVVd6REZXQVdWQT09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6UmN1cTROSldlbms9OnRNMGllZVFSYjBsbHVoSnRtbHQ2aHgKIDRVaWdHVEtycXU1RUkvUmU3T3JJU3VSYWFuZExGS25YQ1V4R01rUmdsQng0OU1LZmV6NHZVWnFHZC9PYyt4ZytZbG9FMDNpUkgKIGZZRENLZ3JPNGdOYXdEV0Z0N1NLdnNmVVVhUnkrKzE4Z3hDUThLa2lnQzJMZjRWYzBra2UwZnVyOHdNL21YYWhMRkdkUXg4TlMKIEZoT0tFVEtIQUJBKzZBZWdXSWRsZ3llYmJSQkNMQ0NmdFR2RFZkYkhYTE5MSitzWHd5TnpnT09zMVZ5czJ4Wi82NEd0SU5QWmcKIHpIV0NTZVU4L1hyYXF2RVE5aGhUK3NmRVY0N2Y5N0orME5ZYTF1aVBPMlVtNk5ueXJncVhZRmlZTHFnNnB5cHRjVXZkczJ0YjAKIGN1bndOdnJ3d0dCenhwUThTZzdnTGVOUXVoOFQrMnhBNWloSndxWGVFTCs5amdaYzZkUnVoNzY0VkVjdmJtaEFVZkd3U3FFR3QKIGNPN3E5MGRoV0NBMk84c2JUem9wcUIvMDVzRTRwMG52RFBIcUh3NDM2ZzJzL2JkVnFhc0ViY2h0NzVObnI1ck9BS0kzeWJ0cVcKIFVwUlZMYWlodXU5YjFoMGt6WjEvV3JpY2VVK2Fxeng1VTVWeGpzdGhic2t4SDZIR1lBRGtlNVNPZTBCQVkzNVhybzNxNWkvWEkKIFFxTDB1RllkcktieFFNbTRialBLdUlRakRSaExINndvWXd1bkpDcWVXenB5bDFacHpkODNXT3NJQjV2a1VpNVFqcUplT3dQVnUKIEFTeUxuZE9MNmdIaUtCU3JaNHhOK3BXRzFBdjhGd1BVcnZWOGl3T0ZxK0JXaUFGdEkzbWY4MHNaWlZtMHRHRnR4aHE2eHJSeEQKIEgrQWFqVS9wQjlVU0hLOXpiU1dVdUNRQnNyeWNmN0hGWUFaelpsTFg5eGtMWFZFMVdVRDd3ejN4WGEvZ3poK0kvbFZncXMrU3YKIFBnQXhHc3R4Q1VLaGE0bEJzNDNDbjlVNHowNGZobUFERzJyR1F0S2Z0Y1RCUzM0SlJQaS90OTREbWphV2NvWENrTkVVU2hheUQKIGcvd3JIK1dTblZvR1dWSjkyMUlIeWRiSzErNjUveHFERlJrdTFkWEFFL3dTZWlGMG12ZURYNVZDbXloeGFGeXg0a2Z1ZVczCgpIaSBSb2JlcnQsCgpPbiAyOC8xMi8xNyAxOToxMCwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4gSGkgS2FybCBIZWlueiwKPiAKPiBqdXN0IGxvb2tpbmcgZm9yIGEgKzEgZnJvbSBhbm90aGVyIGNvbW1pdHRlciBiZWZvcmUgSSBtZXJnZSBpdCBiYWNrIHRvIAo+IHRoZSBtYXN0ZXIuCgpBaCBvay4uLlNvIHRoZSBmaXJzdCBxdWVzdGlvbiBpcyB3aHkgaXMgdGhlIG1hc3RlciBhdCB0aGUgbW9tZW50IHllbGxvdyAKd2l0aCB0d28gZmFpbGVkIHRlc3RzID8gRG8geW91IGhhdmUgYW55IGNsdWUgYWJvdXQgdGhhdCA/CgoKS2luZCByZWdhcmRzCkthcmwgSGVpbnoKCgoKCgo+IAo+IHRoYW5rcywKPiBSb2JlcnQKPiAKPiBPbiBUaHUsIDI4IERlYyAyMDE3IDE4OjU1OjE1ICswMTAwLCBLYXJsIEhlaW56IE1hcmJhaXNlIAo+IDxraG1hcmJhaXNlQGdteC5kZT4gd3JvdGU6Cj4gCj4+IEhpIFJvYmVydCwKPj4KPj4KPj4gT24gMjgvMTIvMTcgMTc6NTgsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+Pj4gSGksCj4+PiDCoExvb2tpbmcgZm9yIHNvbWVvbmUgdG8gY29uZmlybSBhbmQgc2Vjb25kIE1ORy02MzMwWzFdCj4+Cj4+IGhvdyBjYW4gSSBoZWxwIGhlcmU/Cj4+Cj4+IEthcmwgSGVpbnogTWFyYmFpc2UKPj4KPj4+IFdoaWxlIHdvcmtpbmcgb24gdGhlIG1hdmVuLXJlbGVhc2UtcGx1Z2luIEkgZGlzY292ZXJlZCByZWdyZXNzaW9uIAo+Pj4gaW50cm9kdWNlZCBpbiBNYXZlbiAzLjUuMCBieSBhIGNoYW5nZSB0byB0aGUgUmVhY3Rvck1vZGVsQ2FjaGVbMl0KPj4+IFRoaXMgb25seSBvY2N1cnMgd2hlbiBhIHBhcmVudCB3YXMgY2FjaGVkIGFuZCBhbm90aGVyIG1vZHVsZSBwb2ludHMgCj4+PiB0byB0aGlzIHBhcmVudCwgZXZlbiB0aG91Z2ggdGhlIHJlbGF0aXZlUGF0aCBmb3IgdGhpcyBwYXJlbnQgcmVzdWx0cyAKPj4+IGluIGEgbm9uLWV4aXN0aW5nIHBvbSBmaWxlLgo+Pj4gQ2hhbmdlIGlzIGEgc2ltcGxlIG51bGwtY2hlY2tbM10KPj4+IFJlZ3Jlc3Npb24gY292ZXJlZCBieSBpbnRlZ3JhdGlvbiB0ZXN0WzRdCj4+PiBKZW5raW5zIGlzIGhhcHB5WzVdCj4+PiDCoHRoYW5rcywKPj4+IFJvYmVydAo+Pj4gwqBbMV0gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjMzMAo+Pj4gWzJdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYwMzAKPj4+IFszXSAKPj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vY29tbWl0LzRlYjU3NDdlODIyOWQwMjAxYjcwNzA1MmNlN2Y4YWUyZmUyNGVlYzIgCj4+PiDCoFs0XSAKPj4+IGh0dHBzOi8vZ2l0LXdpcC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPW1hdmVuLWludGVncmF0aW9uLXRlc3RpbmcuZ2l0O2E9Y29tbWl0O2g9Y2ZkMGNjNjI5YzJkZDQ5NjU1NGM1OWMxNjgwZmIxZDkwYjEzMTFiMyAKPj4+IMKgWzVdIAo+Pj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy9qb2IvbWF2ZW4td2lwL2pvYi9tYXZlbi9qb2IvTU5HLTYzMzBfUmVsYXRpdmVQYXRoLyAKPj4+IMKgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDg0OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgRGVjIDI3IDEzOjIyOjM1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg0OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFQjFGNjE3OEE1Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMjcgRGVjIDIwMTcgMTM6MjI6MzUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5OTg4IGludm9rZWQgYnkgdWlkIDUwMCk7IDI3IERlYyAyMDE3IDEzOjIyOjM1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5OTI1IGludm9rZWQgYnkgdWlkIDUwMCk7IDI3IERlYyAyMDE3IDEzOjIyOjM1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTkxNCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI3IERlYyAyMDE3IDEzOjIyOjM1IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAyNyBEZWMgMjAxNyAxMzoyMjozNSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEMzQ0U2MTgwNUM3Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyNyBEZWMgMjAxNyAxMzoyMjozNCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjIwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC4yMDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgaDFPc09hQ3ptLXAxIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJV2VkLCAyNyBEZWMgMjAxNyAxMzoyMjozMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNS4xOF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAxQTkyRjVGMUYwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyNyBEZWMgMjAxNyAxMzoyMjozMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBLYXJsLUhlaW56cy1NYWNCb29rLVByby5sb2NhbCAoWzkyLjIwNC4zMC4xOV0pIGJ5IG1haWwuZ214LmNvbQogKG1yZ214MDAyIFsyMTIuMjI3LjE3LjE5MF0pIHdpdGggRVNNVFBTQSAoTmVtZXNpcykgaWQKIDBMbWJWVC0xZjJROVMxakp6LTAwYUdvUjsgV2VkLCAyNyBEZWMgMjAxNyAxNDoyMjoyNSArMDEwMApSZXBseS1UbzogaW5mb0Bzb2ViZXMuZGUKU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBQREYgUGx1Z2luIHZlcnNpb24gMS40ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwKID0/VVRGLTg/UT9IZXJ2PWMzPWE5X0JPVVRFTVk/PSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpSZWZlcmVuY2VzOiA8MzExMTAzMi5FdEZlVTFBbFBwQGdpZ2E+CkZyb206IEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPgpNZXNzYWdlLUlEOiA8YTM4OGMwYWMtZWZkZC1mZDc5LTMwNjYtNjIxNjgxMjliZjE5QGdteC5kZT4KRGF0ZTogV2VkLCAyNyBEZWMgMjAxNyAxNDoyMjoyNSArMDEwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMTsgcnY6NTIuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzUyLjUuMApNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPDMxMTEwMzIuRXRGZVUxQWxQcEBnaWdhPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDp3c0ZVVXdxQ0pzZis5SXBqaGtoNHR2KzVrZ0dLVklHTXZwQmh3YkZRWC8xRXlOT3ExbDQKIDVOYU56Z09NRk1XbDkyR3M3allXR2MyUElXUWlnQms5TjZ4OEorVFNrQUQwM1BiNHhNekVZMXZ0eENQQXlPYXNTaXByaDkyCiBKRmMvYUc4YVZOSDNhUE5YVFRaUEI0YW81dktHWUQvc01DOXk1aFhoT2FKVDk2bzNsMXZZSGZnTG9HSkV1cHhINTBicnlCdAogTkhZbk4wamltSTlnOXNIK1FZdmZnPT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDpuY1B1RnllMHZSQT06d09xazJNc0lWeWszQlkwZWVJWnlKQwogVEtkWHRTdG5OWkZxSGhvbStvZ3E2MVk5dWFtcXUrWlo4YmV0SVBZenFLdjJqazllRnJIQ1N2MTBwT0liYU1Bbnl5aVk4UVFTTAogYm1NbGYvdERGQnMrcy85cWlTK0gxbkM2OVkyOXdzMktNWVZZa05PeTZVT01VRHhKUnRQUzMrSmVTNS9uc1NySDhUMFJPdGtFQgogR3ZqWm5zRXRFb0JPdkFLVTZpKytiVU8xQjRNbWpvUDA0ZkRZRHczaFAvM0lHMFdZZmhSb1YzQ1lpM0lMbUkxNHluaWZlcWJiUAogUzA3YktjM0pYaSswQzFFN1Q0MkNKeDFxRUNLeWJBckFjZGxxeG8rRTl5QTBoSm43OEJ0WndHcUU1NjVRcGQwL3JybG1NTHZKWgogZ2x4QTErYzc5b2NjTnhKME8ySUpnYkdLdlMrVHlCdno5N2hPTzJ3eTZ1QXZXWVA5MllmMEorTndsZXJ3aVlXb0o1czBoZklGbgogell3dEtoQnYyL044TDFrUW1BbUpxWUYvQml0SmZ6Vm1SRk1jM08wakxXYzJIcCtqR3JrbWcxS2N5V09MelJxNmErR2JlL1hHZAogbE1jbUxZZnBTLzlZY2ZBcDErZkFVRnhCemdOajVLZEZSTzhWN09MdFZ3YmpwVFpaMkJHQzZTVXViOEFrM0Q0ZmtpVm55bTg4bwogcGFRWGVWYkV1dHJyNEpVVnpFYlhvRi8wNTkvSlIvejRLbnRFellnY3VDU21tbDBITHJreWlMQ3Q4dlhBNnM5Wmoxa3RkV0FhRwogbkZXR0hvOGNIL1EzdlcyK0NkR204YU1VTTJXQzFKbGp2QVBoNTNPTHNaUlUrVG10ZXR0a0h6UGRiMkdDSldLYktGamJwWVdHdwogMFhlQ3hUdkZDa3d4VmM5MEpRVXkyNFRyQ1Zra1B6Y1Bnc21JbEd4TVp1eFRJdDhLcVIyTUZzYnR4eTZZaXpSTUJtN2RNYW5GbwogRGNlRGZISDk0anBkSjEycXZDbC9JUWJkdmhPUFlWdzFlekJ6QmRFaVZVSEhTN085Z0dkRnB1Y3lwQ0dUZnNKck1vdStMc0VPQQogZkVjNUJ4MkU5T1hKVVVKT1p6c1YwdHArRjBTQzI4eUpINzl6WENxeHJjcWtmMVg0eW89CgpIaSwKCnRlc3RlZCBsaWtlIHRoaXM6CgpqZGsxLjcuMF83OS5qZGsKICAgYXBhY2hlLW1hdmVuLTMuMC41Li5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgogICBhcGFjaGUtbWF2ZW4tMy4xLjEuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCiAgIGFwYWNoZS1tYXZlbi0zLjIuNS4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KICAgYXBhY2hlLW1hdmVuLTMuMy4xLi5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgogICBhcGFjaGUtbWF2ZW4tMy4zLjkuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCiAgIGFwYWNoZS1tYXZlbi0zLjUuMC4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KICAgYXBhY2hlLW1hdmVuLTMuNS4yLi5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgpqZGsxLjguMF8xMzEuamRrCiAgIGFwYWNoZS1tYXZlbi0zLjAuNS4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KICAgYXBhY2hlLW1hdmVuLTMuMS4xLi5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgogICBhcGFjaGUtbWF2ZW4tMy4yLjUuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCiAgIGFwYWNoZS1tYXZlbi0zLjMuMS4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KICAgYXBhY2hlLW1hdmVuLTMuMy45Li5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgogICBhcGFjaGUtbWF2ZW4tMy41LjAuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCiAgIGFwYWNoZS1tYXZlbi0zLjUuMi4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KamRrMS44LjBfMTQ0LmpkawogICBhcGFjaGUtbWF2ZW4tMy4wLjUuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCiAgIGFwYWNoZS1tYXZlbi0zLjEuMS4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KICAgYXBhY2hlLW1hdmVuLTMuMi41Li5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgogICBhcGFjaGUtbWF2ZW4tMy4zLjEuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCiAgIGFwYWNoZS1tYXZlbi0zLjMuOS4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KICAgYXBhY2hlLW1hdmVuLTMuNS4wLi5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgogICBhcGFjaGUtbWF2ZW4tMy41LjIuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCmpkay05LjAuMS5qZGsKICAgYXBhY2hlLW1hdmVuLTMuMC41Li5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgogICBhcGFjaGUtbWF2ZW4tMy4xLjEuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCiAgIGFwYWNoZS1tYXZlbi0zLjIuNS4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KICAgYXBhY2hlLW1hdmVuLTMuMy4xLi5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgogICBhcGFjaGUtbWF2ZW4tMy4zLjkuLlVucGFja2luZyBkb25lLkJ1aWxkaW5nIGZpbmUuCiAgIGFwYWNoZS1tYXZlbi0zLjUuMC4uVW5wYWNraW5nIGRvbmUuQnVpbGRpbmcgZmluZS4KICAgYXBhY2hlLW1hdmVuLTMuNS4yLi5VbnBhY2tpbmcgZG9uZS5CdWlsZGluZyBmaW5lLgoKTm8gaXNzdWVzIGZvdW5kLi4KClNvICsxIGZyb20gbWUuCgpLaW5kIHJlZ2FyZHMKS2FybCBIZWlueiBNYXJiYWlzZQpPbiAyMi8xMi8xNyAxMDoxMSwgSGVydsOpIEJPVVRFTVkgd3JvdGU6Cj4gSGksCj4gICAgICAKPiBXZSBzb2x2ZWQgMTIgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiBwcm9qZWN0SWQ9MTIzMTc2MjAmdmVyc2lvbj0xMjMzMzMzOCZzdHlsZU5hbWU9VGV4dAo+ICAgICAgCj4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPXByb2plY3QlMjAlM0QlMjBNUERGJTIwQU5EJTIwc3RhdHVzCj4gJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDCj4gICAgICAKPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM4NS8KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzg1L29yZy9hcGFjaGUvCj4gbWF2ZW4vcGx1Z2lucy9tYXZlbi1wZGYtcGx1Z2luLzEuNC9tYXZlbi1wZGYtcGx1Z2luLTEuNC1zb3VyY2UtcmVsZWFzZS56aXAKPiAgICAgIAo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IG1hdmVuLXBkZi1wbHVnaW4tMS40LXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOgo+IDg4ZDJkMjU0ZTY3NDkzOGIxOTdkZjZiMzdiNTRjNzVlYzgxN2ZjZjQKPiAgICAgIAo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1wZGYtcGx1Z2luLUxBVEVTVC8KPiAgICAgIAo+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCj4gICAgICAKPiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+ICAgICAgCj4gWyBdICsxCj4gWyBdICswCj4gWyBdIC0xCj4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQwMTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIFNlcCAxMyAxNzo0MjozNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwMTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMDRFNjUxQTQyMQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3IDE3OjQyOjM1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTcxMzQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTMgU2VwIDIwMTcgMTc6NDI6MzQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU2OTYzIGludm9rZWQgYnkgdWlkIDUwMCk7IDEzIFNlcCAyMDE3IDE3OjQyOjM0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTY5NDIgaW52b2tlZCBieSB1aWQgOTkpOyAxMyBTZXAgMjAxNyAxNzo0MjozNCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMTMgU2VwIDIwMTcgMTc6NDI6MzQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBENTgyMzE4NUY5NDsKCVdlZCwgMTMgU2VwIDIwMTcgMTc6NDI6MzMgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4yMjEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMjIxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTE9XPS0wLjcsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIGZQMTVRQXcyV25BQTsgV2VkLCAxMyBTZXAgMjAxNyAxNzo0MjozMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNy4yMF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBGMTJFMjVGRDdEOwoJV2VkLCAxMyBTZXAgMjAxNyAxNzo0MjozMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBLYXJsLUhlaW56cy1NYWNCb29rLVByby5mcml0ei5ib3ggKFsxNzguMTIuODguMTczXSkgYnkKIG1haWwuZ214LmNvbSAobXJnbXgxMDIgWzIxMi4yMjcuMTcuMTY4XSkgd2l0aCBFU01UUFNBIChOZW1lc2lzKSBpZAogME1ZdElkLTFkd205MzFhZXgtMDBWZmpmOyBXZWQsIDEzIFNlcCAyMDE3IDE5OjQyOjI2ICswMjAwClJlcGx5LVRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBbUkVTVUxUXSBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gRGVwZW5kZW5jeSBQbHVnaW4gdmVyc2lvbiAzLjAuMgpGcm9tOiBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LAogIk1hdmVuIFByb2plY3QgTWFuYWdlbWVudCBDb21taXR0ZWUgTGlzdFwiIiA8cHJpdmF0ZUBtYXZlbi5hcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8NzhhNWFmOTItZTQ3MS1mOWY5LTdkZTAtZjAyZDA5ZmE0MDM1QGdteC5kZT4KTWVzc2FnZS1JRDogPGEzZmU4YWVjLTQ5MTQtNmM0Mi1lYmRhLWYwOWJlMzIwYzA0NkBnbXguZGU+CkRhdGU6IFdlZCwgMTMgU2VwIDIwMTcgMTk6NDI6MjUgKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi4yLjEKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDw3OGE1YWY5Mi1lNDcxLWY5ZjktN2RlMC1mMDJkMDlmYTQwMzVAZ214LmRlPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDpBUTN6YTZrcGZWRFZQMTEwaVZ2cEJnWHdlSVBRMTF1S1RzbHNVc3NZYWxoWC8ybE5ZdEEKIDlwcStpK0x1SlV6YVZjL0RZZExCNnBqQ0wxZUhiVitQZUpEdXJ4aHp3NVBDQXp6OFFvWGp3enR1VkFsRTE1cnRqc3NQUGVoCiA5bTNHb3cyaFVxVFcwc0pUeXBCdk11cTJRZWxEVWdEa2NEZTJkRE5qcWFmRkRpclRJWjc0QWl3bE4wYXo0WVhNVEVuMmU0TgogaHZQQmlvS05qK1Ivdlp6MnUzdGh3PT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDpTVnpTbncwY25Fdz06R2laOGgvY3YrTUR4UEorZktLTHkvTAogYkNkTVlvMUNobzJwL0M4RnVzUmdMeUx0U25ReFE1a1pQZW1MSUZSd1hId3U0dzQrczh2c0RnTHJLdVRxd3RocTNzNnVndUkxbAogNjFiRU5Qa3NLOFJSS0xOME9TOHdCYWVUajZSMWFWdWJIOHprSlNmNktCeXVvUVphNlpOcng5T3Vhd3MyZURwZXczTER1Z0c5UQogVjRjaTVLU3dqQVN1YkdPWngrcTdSK2s3bEpYM1BjcW56NWlVbjBNa3pVclJpUmp2RjRrNjBGTUdpQ3JqNjdIdkRNTm5VeHpBSAogbkR0UGp3SWVPbnRSblYyQ1pGS1k1aERvT1NxcVBCYjBOM3BMeHFrTGpodFhZK2FPOG5rVFRtR3R1eDA3YjhHN1pkZHVJa3MvWQogUTFUT2xrLy9pdjU2a3o2YlV5eEp6Q2pTRmczRElJRWRncUdxemlUem93NnQxS25Lb1c3RDFtS2FPeGFaSlVTNkRjLzFIYmFvOAogQ25rMWNJZVZiTXh4R3NuQmF3K1RBTXZHakgwcm1raU1NMzdVTHpsQ0JQTHF5S3NJRGpEWlRXc3NEZkwrQWF4VGwzcFpPbWxkbgogNGMrc1lxZkwzQ2N0TmU1SVRpTmt2by8zRGNWV0E3Q1phbjlKTG81T3hzNkQxZ0dERUdYcDc3VFZLbHZrVExmaEJIRzVnL2p2bAogZnBOdHQ4THBPRnNnZkV3VXlPUGgxYkhlMHBsS2ZsSm5QdGYxcHpVRlF0VlI1QnNzcWJnZUx0WFIrNjl6OE9NS1Q1L0lCcW1WSAogVmU0Z3pBZXdqbndoUU16UkI0cXZSYWphL1J1NGVIVzljQm5FcVBVN3JTZ1M1dFh6YmZZSVpZMUpKSW55NXQwMmpSYXhPaXVrVwogWE5LeUo2WHRvMUt5Q3hXSnRnSkpLNktBMUZ0RitnUlhtczYxS0tGQmZ4VnBBTkp4YWhkQjBJc2dmbncyWkZQblVsZE1zQ0VIVAogQmYwWjI1RzRjdjhpeVMxd0ZPeit4ZVNwYWRtQVhjTDg5OGVUMDZndXJMbzI0cEtvZmdDdUQ1QXV2NEs5K3JOelliTmRFMXRPRQogVFpQK1NodVZ2YXpJL1k0Y0JBM25JenBmUXlSYWtDT2ZENVA1MW9DbkNRYlBBODdoZWs9CgpIaSwKClRoZSB2b3RlIGhhcyBwYXNzZWQgd2l0aCB0aGUgZm9sbG93aW5nIHJlc3VsdDoKCisxIDogU3RlcGhhbmUgTmljb2xsLCBPbGl2ZXIgTGFteSwgSGFydsOpIEJvdXRlbXksCiAgICAgIEFuZGVycyBIYW1tYXIsIFRpYm9yIERpZ2FuYSwgS2FybCBIZWlueiBNYXJiYWlzZQoKUE1DIHF1b3J1bTogcmVhY2hlZC4KCkkgd2lsbCBwcm9tb3RlIHRoZSBhcnRpZmFjdHMgdG8gdGhlIGNlbnRyYWwgcmVwby4KCktpbmQgcmVnYXJkcwpLYXJsIEhlaW56IE1hcmJhaXNlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ2NDEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE5vdiAyOCAxNTowODo1MCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ2NDEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOUJBMzYxNzI2QwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDI4IE5vdiAyMDE3IDE1OjA4OjUwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjMxNDYgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggTm92IDIwMTcgMTU6MDg6NTAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYzMDUzIGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE5vdiAyMDE3IDE1OjA4OjUwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjMwMzcgaW52b2tlZCBieSB1aWQgOTkpOyAyOCBOb3YgMjAxNyAxNTowODo0OSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMjggTm92IDIwMTcgMTU6MDg6NDkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAyODFGNzFBMDhFNTsKCVR1ZSwgMjggTm92IDIwMTcgMTU6MDg6NDkgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMS42MDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTEuNjAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtIVE1MX01FU1NBR0U9MiwgS0FNX01YVVJJPTEuNSwgUkNWRF9JTl9ETlNXTF9NRUQ9LTIuMywKCVJDVkRfSU5fTVNQSUtFX0gyPS0yLjgsIFJQX01BVENIRVNfUkNWRD0tMC4wMDEsIFNQRl9QQVNTPS0wLjAwMSwKCVVOUEFSU0VBQkxFX1JFTEFZPTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHhkdHUwYVF4QW1CcjsgVHVlLCAyOCBOb3YgMjAxNyAxNTowODo0NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSB1c2VycDEwNDAub3JhY2xlLmNvbSAodXNlcnAxMDQwLm9yYWNsZS5jb20gWzE1Ni4xNTEuMzEuODFdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRUI0QjU1RjI3QjsKCVR1ZSwgMjggTm92IDIwMTcgMTU6MDg6NDUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gYXNlcnYwMDIyLm9yYWNsZS5jb20gKGFzZXJ2MDAyMi5vcmFjbGUuY29tIFsxNDEuMTQ2LjEyNi4yMzRdKQoJYnkgdXNlcnAxMDQwLm9yYWNsZS5jb20gKFNlbnRyaW9uLU1UQS00LjMuMi9TZW50cmlvbi1NVEEtNC4zLjIpIHdpdGggRVNNVFAgaWQgdkFTRjhoeFowMDkxMzUKCSh2ZXJzaW9uPVRMU3YxLjIgY2lwaGVyPUVDREhFLVJTQS1BRVMyNTYtR0NNLVNIQTM4NCBiaXRzPTI1NiB2ZXJpZnk9T0spOwoJVHVlLCAyOCBOb3YgMjAxNyAxNTowODo0MyBHTVQKUmVjZWl2ZWQ6IGZyb20gdXNlcnYwMTIyLm9yYWNsZS5jb20gKHVzZXJ2MDEyMi5vcmFjbGUuY29tIFsxNTYuMTUxLjMxLjc1XSkKCWJ5IGFzZXJ2MDAyMi5vcmFjbGUuY29tICg4LjE0LjQvOC4xNC40KSB3aXRoIEVTTVRQIGlkIHZBU0Y4Z2NPMDA0NDQ0CgkodmVyc2lvbj1UTFN2MS9TU0x2MyBjaXBoZXI9REhFLVJTQS1BRVMyNTYtR0NNLVNIQTM4NCBiaXRzPTI1NiB2ZXJpZnk9T0spOwoJVHVlLCAyOCBOb3YgMjAxNyAxNTowODo0MyBHTVQKUmVjZWl2ZWQ6IGZyb20gYWJobXAwMDExLm9yYWNsZS5jb20gKGFiaG1wMDAxMS5vcmFjbGUuY29tIFsxNDEuMTQ2LjExNi4xN10pCglieSB1c2VydjAxMjIub3JhY2xlLmNvbSAoOC4xNC40LzguMTQuNCkgd2l0aCBFU01UUCBpZCB2QVNGOGdyUTAyNjU4ODsKCVR1ZSwgMjggTm92IDIwMTcgMTU6MDg6NDIgR01UClJlY2VpdmVkOiBmcm9tIGRoY3AtdWtjMS10d3Zwbi0xLXZwbnBvb2wtMTAtMTc1LTE2OS04Ny52cG4ub3JhY2xlLmNvbSAoLzEwLjE3NS4xNjkuODcpCglieSBkZWZhdWx0IChPcmFjbGUgQmVlaGl2ZSBHYXRld2F5IHY0LjApCgl3aXRoIEVTTVRQIDsgVHVlLCAyOCBOb3YgMjAxNyAwNzowODo0MiAtMDgwMApGcm9tOiAiUm9yeSBPJ0Rvbm5lbGwiIDxyb3J5Lm9kb25uZWxsQG9yYWNsZS5jb20+ClN1YmplY3Q6IEpESyAxMCBFYXJseSBBY2Nlc3MgYjMzIGFuZCBKREsgOHUxNjIgRWFybHkgQWNjZXNzIGIwMyBhcmUgYXZhaWxhYmxlCiBvbiBqZGsuamF2YS5uZXQKQ2M6IHJvcnkub2Rvbm5lbGxAb3JhY2xlLmNvbSwgRGFsaWJvciBUb3BpYyA8ZGFsaWJvci50b3BpY0BvcmFjbGUuY29tPiwKICAgICAgICBCYWxjaGFuZHJhIFZhaWR5YSA8YmFsY2hhbmRyYS52YWlkeWFAb3JhY2xlLmNvbT4sCiAgICAgICAgTXVuZWVyIEtvbGFya3VubnUgPGFiZHVsLmtvbGFya3VubnVAb3JhY2xlLmNvbT4sCiAgICAgICAgTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KVG86IHJmc2Nob2x0ZUBhcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDxhNTM1OGNkNi0yMjFlLWUyMDYtMzBiOS01MzliNmM5MWM1NjZAb3JhY2xlLmNvbT4KRGF0ZTogVHVlLCAyOCBOb3YgMjAxNyAxNTowODoyOSArMDAwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMzsgcnY6NTIuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzUyLjUuMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsKIGJvdW5kYXJ5PSItLS0tLS0tLS0tLS1CQzUwQjM0NzQyQzVFMkI5QTNBNjdCQTkiCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLVVTClgtU291cmNlLUlQOiBhc2VydjAwMjIub3JhY2xlLmNvbSBbMTQxLjE0Ni4xMjYuMjM0XQoKLS0tLS0tLS0tLS0tLS1CQzUwQjM0NzQyQzVFMkI5QTNBNjdCQTkKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCkhpIFJvYmVydCAsCgoqSkRLIDEwIEVhcmx5IEFjY2Vzc8KgIGJ1aWxkIDMzIGlzIGF2YWlsYWJsZSBhdCA6IC0gKipqZGsuamF2YS5uZXQvMTAvKgoKCk5vdGFibGUgY2hhbmdlcyBzaW5jZSBwcmV2aW91cyBlbWFpbC4KCjxodHRwOi8vYnVncy5vcGVuamRrLmphdmEubmV0L2Jyb3dzZS9KREstODE3NTA5ND5KREstODE4MDAxOSAKPGh0dHA6Ly9idWdzLm9wZW5qZGsuamF2YS5uZXQvYnJvd3NlL0pESy04MTgwMDE5PiAtICpqYXZhZG9jIHRyZWF0cyAKZmFpbHVyZSB0byBhY2Nlc3MgYSBVUkwgYXMgYW4gZXJyb3IgLCBub3QgYSB3YXJuaW5nLioKSWYgamF2YWRvYyBjYW5ub3QgYWNjZXNzIHRoZSBjb250ZW50cyBvZiBhIFVSTCBwcm92aWRlZCB3aXRoIHRoZSAtbGluayAKb3IgLWxpbmtvZmZsaW5lIG9wdGlvbnMsdGhlIHRvb2wgd2lsbCBub3cgcmVwb3J0IGFuIGVycm9yLgpQcmV2aW91c2x5LCB0aGUgdG9vbCBjb250aW51ZWQgd2l0aCBhIHdhcm5pbmcsIHByb2R1Y2luZyBpbmNvcnJlY3QgCmRvY3VtZW50YXRpb24gb3V0cHV0LgoKSkRLLTgxNzUwOTQgPGh0dHA6Ly9idWdzLm9wZW5qZGsuamF2YS5uZXQvYnJvd3NlL0pESy04MTc1MDk0PiotICoqVGhlIApqYXZhLnNlY3VyaXR5LmFjbCBBUElzIGFyZSBkZXByZWNhdGVkLCBmb3IgcmVtb3ZhbCoqKioKKsKgVGhlIGRlcHJlY2F0ZWQgamF2YS5zZWN1cml0eS5hY2wgQVBJcyBhcmUgbm93IG1hcmtlZCB3aXRoIApmb3JSZW1vdmFsPXRydWUgYW5kIGFyZSBzdWJqZWN0IHRvIHJlbW92YWwgaW4gYSBmdXR1cmUgdmVyc2lvbiBvZiBKYXZhIFNFLgoKSkRLLTgxNzUwOTEgPGh0dHA6Ly9idWdzLm9wZW5qZGsuamF2YS5uZXQvYnJvd3NlL0pESy04MTc1MDkxPiAqLSBUaGUgCmphdmEuc2VjdXJpdHkue0NlcnRpZmljYXRlLElkZW50aXR5LElkZW50aXR5U2NvcGUsU2lnbmVyfSBBUElzIGFyZSAKZGVwcmVjYXRlZCwgZm9yIHJlbW92YWwqClRoZSBkZXByZWNhdGVkIGphdmEuc2VjdXJpdHkue0NlcnRpZmljYXRlLCBJZGVudGl0eSwgSWRlbnRpdHlTY29wZSwgClNpZ25lcn0gY2xhc3NlcyBhcmUgbm93IG1hcmtlZCB3aXRoIGZvclJlbW92YWw9dHJ1ZSBhbmQgYXJlIHN1YmplY3QgdG8gCnJlbW92YWwgaW4gYSBmdXR1cmUgdmVyc2lvbiBvZiBKYXZhIFNFLgoKSkRLIDEwIFNjaGVkdWxlLCBTdGF0dXMgJiBGZWF0dXJlcyBhcmUgYXZhaWxhYmxlIFsxXQoKCiAgICAgIE5vdGVzCgogICogT3BlbkpESyBFQSBiaW5hcmllcyB3aWxsIGJlIGF2YWlsYWJsZSBhdCBhIGxhdGVyIGRhdGUuCiAgKiBPcmFjbGUgaGFzIHByb3Bvc2VkOiBOZXdlciB2ZXJzaW9uLXN0cmluZyBzY2hlbWUgZm9yIHRoZSBKYXZhIFNFCiAgICBQbGF0Zm9ybSBhbmQgdGhlIEpESwogICAgICBvIFBsZWFzZSBzZWUgTWFyayBSZWluaG9sZCdzIHByb3Bvc2FsIFsyXQoKKkpESyA4dTE2MiBFYXJseSBBY2Nlc3MgYnVpbGQgMDMgaXMgYXZhaWxhYmxlIGF0IDotIGh0dHA6Ly9qZGsuamF2YS5uZXQvOC8qCgo8aHR0cDovL29wZW5qZGsuamF2YS5uZXQvcHJvamVjdHMvamRrOHUvcmVsZWFzZXMvOHUxNjIuaHRtbD4KCipGZWVkYmFjayogLSBJZiB5b3UgaGF2ZSBzdWdnZXN0aW9ucyBvciBlbmNvdW50ZXIgYnVncywgcGxlYXNlIHN1Ym1pdCAKdGhlbSB1c2luZyB0aGUgdXN1YWwgSmF2YSBTRSBidWctcmVwb3J0aW5nIGNoYW5uZWwuCkJlIHN1cmUgdG8gaW5jbHVkZSBjb21wbGV0ZSB2ZXJzaW9uIGluZm9ybWF0aW9uIGZyb20gdGhlIG91dHB1dCBvZiB0aGUgCnxqYXZhIC0tdmVyc2lvbnwgY29tbWFuZC4KClJlZ2FyZHMsClJvcnkKClsxXSBodHRwOi8vb3Blbmpkay5qYXZhLm5ldC9wcm9qZWN0cy9qZGsvMTAvClsyXSBodHRwOi8vbWFpbC5vcGVuamRrLmphdmEubmV0L3BpcGVybWFpbC9qZGstZGV2LzIwMTctTm92ZW1iZXIvMDAwMDg5Lmh0bWwKCi0tIApSZ2RzLFJvcnkgTydEb25uZWxsClF1YWxpdHkgRW5naW5lZXJpbmcgTWFuYWdlcgpPcmFjbGUgRU1FQSAsIER1YmxpbiwgSXJlbGFuZAoKCi0tLS0tLS0tLS0tLS0tQkM1MEIzNDc0MkM1RTJCOUEzQTY3QkE5LS0KCkZyb20gZGV2LXJldHVybi0xMjQyNDktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIE9jdCAxNiAwOTozMDoyOSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyNDktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNkU5RkYxMDBBNAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDE2IE9jdCAyMDE3IDA5OjMwOjI5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzE2NTkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTYgT2N0IDIwMTcgMDk6MzA6MjkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDcxNTk0IGludm9rZWQgYnkgdWlkIDUwMCk7IDE2IE9jdCAyMDE3IDA5OjMwOjI5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzE1ODMgaW52b2tlZCBieSB1aWQgOTkpOyAxNiBPY3QgMjAxNyAwOTozMDoyOCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMTYgT2N0IDIwMTcgMDk6MzA6MjggKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAxM0RENENCMzNGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxNiBPY3QgMjAxNyAwOTozMDoyOCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC01LjAyMwpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tNS4wMjMgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W1JDVkRfSU5fRE5TV0xfSEk9LTUsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFJQX01BVENIRVNfUkNWRD0tMC4wMDEsIFNQRl9IRUxPX1BBU1M9LTAuMDAxLAoJU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIERDYjVqLTQ5eEI0NSBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCU1vbiwgMTYgT2N0IDIwMTcgMDk6MzA6MjYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbXgxLnJlZGhhdC5jb20gKG14MS5yZWRoYXQuY29tIFsyMDkuMTMyLjE4My4yOF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA3MzIxRTVGNkNECglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxNiBPY3QgMjAxNyAwOTozMDoyNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLmNvcnAucmVkaGF0LmNvbSAoaW50LW14MDEuaW50bWFpbC5wcm9kLmludC5waHgyLnJlZGhhdC5jb20gWzEwLjUuMTEuMTFdKQoJKHVzaW5nIFRMU3YxLjIgd2l0aCBjaXBoZXIgQUVDREgtQUVTMjU2LVNIQSAoMjU2LzI1NiBiaXRzKSkKCShObyBjbGllbnQgY2VydGlmaWNhdGUgcmVxdWVzdGVkKQoJYnkgbXgxLnJlZGhhdC5jb20gKFBvc3RmaXgpIHdpdGggRVNNVFBTIGlkIEM2RDAzNEFDQTUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE2IE9jdCAyMDE3IDA5OjMwOjI1ICswMDAwIChVVEMpCkRNQVJDLUZpbHRlcjogT3BlbkRNQVJDIEZpbHRlciB2MS4zLjIgbXgxLnJlZGhhdC5jb20gQzZEMDM0QUNBNQpBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBleHQtbXgwOS5leHRtYWlsLnByb2QuZXh0LnBoeDIucmVkaGF0LmNvbTsgZG1hcmM9bm9uZSAocD1ub25lIGRpcz1ub25lKSBoZWFkZXIuZnJvbT1yZWRoYXQuY29tCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IGV4dC1teDA5LmV4dG1haWwucHJvZC5leHQucGh4Mi5yZWRoYXQuY29tOyBzcGY9ZmFpbCBzbXRwLm1haWxmcm9tPW1pemRlYnNrQHJlZGhhdC5jb20KUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0LmxvY2FsZG9tYWluIChvdnBuLTExNy0yMTYuYW1zMi5yZWRoYXQuY29tIFsxMC4zNi4xMTcuMjE2XSkKCWJ5IHNtdHAuY29ycC5yZWRoYXQuY29tIChQb3N0Zml4KSB3aXRoIEVTTVRQUyBpZCA0MjkxQzYwMEM2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxNiBPY3QgMjAxNyAwOTozMDoyNSArMDAwMCAoVVRDKQpTdWJqZWN0OiBSZTogTWF2ZW4gUGx1Z2luIHRoYXQgcHJvdmlkZXMgYWx0ZXJuYXRpdmUgcmVwb3NpdG9yeQpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVmZXJlbmNlczogPENBRXlNenltc0hIdk9CRi1idHFUdmo4a3YwckZMZ0JkPUpHSHJ1UFpqRXlZWm89QS0wZ0BtYWlsLmdtYWlsLmNvbT4KIDw0MTA5N2IwZC04MWZhLTViZDAtYjhkZS1lMTJjNDM0OGM4Y2RAZ214LmRlPgogPENBRXlNenlrdGRlTENSR1pQX2JWbzR2QitTNHFnM2doUmpRM2dCUW5BbmZHOVZxeFFLZ0BtYWlsLmdtYWlsLmNvbT4KRnJvbTogTWlrb2xhaiBJemRlYnNraSA8bWl6ZGVic2tAcmVkaGF0LmNvbT4KTWVzc2FnZS1JRDogPGE1Y2RiN2JjLWFiMzgtNTFhZi02ZWQxLTE0YjUyMTEzYmYzOEByZWRoYXQuY29tPgpEYXRlOiBNb24sIDE2IE9jdCAyMDE3IDExOjMwOjIyICswMjAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NDsgcnY6NTIuMCkgR2Vja28vMjAxMDAxMDEKIFRodW5kZXJiaXJkLzUyLjMuMApNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPENBRXlNenlrdGRlTENSR1pQX2JWbzR2QitTNHFnM2doUmpRM2dCUW5BbmZHOVZxeFFLZ0BtYWlsLmdtYWlsLmNvbT4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04CkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLU1XCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKWC1TY2FubmVkLUJ5OiBNSU1FRGVmYW5nIDIuNzkgb24gMTAuNS4xMS4xMQpYLUdyZXlsaXN0OiBTZW5kZXIgSVAgd2hpdGVsaXN0ZWQsIG5vdCBkZWxheWVkIGJ5IG1pbHRlci1ncmV5bGlzdC00LjUuMTYgKG14MS5yZWRoYXQuY29tIFsxMC41LjExMC4zOF0pOyBNb24sIDE2IE9jdCAyMDE3IDA5OjMwOjI1ICswMDAwIChVVEMpCgpPbiAxMC8xNi8yMDE3IDA2OjQyIEFNLCBDaHJpc3RvcGggTGFldWJyaWNoIHdyb3RlOgo+IEhpLAo+IAo+IHRoYW5rcyBmb3IgeW91ciByZXBseS4gSSdkIGxpa2UgdG8gbWFrZSBhcnRpZmFjdHMgYXZhaWFibGUgdG8gbWF2ZW4KPiB2aWEgPGRlcGVuZGVuY3k+IHRoYXQgYXJlIGxvY2F0ZWQgaW4gYSByZXBvc2l0b3J5IHdpdGggYSBmb3JtYXQgdGhhdAo+IG1hdmVuIGRvZXMgbm90IHVuZGVyc3RhbmQuCj4gRXZlbiB0aG91Z2ggaWYgSSB3b3VsZCBoYXZlIHRoZSBncm91cCthcnRpZmFjdGlkK3ZlcnNpb24gSSBjYW4gbG9jYXRlCj4gdGhhdCBhcnRpZmFjdCB0aGVyZS4KPiBTbyB0aGUgaWRlYSBpcyB0byBhZGQgYSBwbHVnaW4gdG8gdGhlIGJ1aWxkIHRoYXQgZ2V0cyBhc2tlZCB3aGVuZXZlcgo+IG1hdmVuIGRvZXMgbm90IGZpbmQgYW4gYXJ0aWZhY3QgaW4gYW55IG9mIGl0cyBkZWZhdWx0IHNvdXJjZXMgc28gSSBjYW4KPiBnaXZlIGl0IGEgdHJ5IHRvIGZpbmQgaXQgaW4gbXkgc3BlY2lhbCByZXByby4KClRoaXMgc2hvdWxkIGJlIHBvc3NpYmxlIGJ5IHByb3ZpZGluZyBXb3Jrc3BhY2VSZWFkZXIgaW1wbGVtZW50YXRpb24gLQpAQ29tcG9uZW50KCByb2xlID0gV29ya3NwYWNlUmVhZGVyLmNsYXNzLCBoaW50ID0gImlkZSIgKQoKTm90ZSB0aGF0IE1hdmVuIHRyaWVzIHJlc29sdXRpb24gZnJvbSB3b3Jrc3BhY2UgKmJlZm9yZSogcmVwb3NpdG9yaWVzIC0Kd29ya3NwYWNlIHJlYWRlciBoYXMgcHJpb3JpdHkgbG93ZXIgdGhhbiByZWFjdG9yLCBidXQgaGlnaGVyIHRoYW4gcmVtb3RlCnJlcG9zIGtub3duIHRvIE1hdmVuLgoKLS0gCk1pa29sYWogSXpkZWJza2kKU29mdHdhcmUgRW5naW5lZXIsIFJlZCBIYXQKSVJDOiBtaXpkZWJzawoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MTYwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBPY3QgIDcgMTA6NTU6MzIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTYwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDkzNzdFMTBCQzEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgNyBPY3QgMjAxNyAxMDo1NTozMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDc0NzgxIGludm9rZWQgYnkgdWlkIDUwMCk7IDcgT2N0IDIwMTcgMTA6NTU6MzIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc0Njk1IGludm9rZWQgYnkgdWlkIDUwMCk7IDcgT2N0IDIwMTcgMTA6NTU6MzIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NDY4NCBpbnZva2VkIGJ5IHVpZCA5OSk7IDcgT2N0IDIwMTcgMTA6NTU6MzEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA3IE9jdCAyMDE3IDEwOjU1OjMxICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMEY3RkMxODAxMUEKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDEwOjU1OjMxICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuMjAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjIwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBoZTg3Y3hIVTh3S1YgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTYXQsICA3IE9jdCAyMDE3IDEwOjU1OjMwICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1vdXQuZ214Lm5ldCAobW91dC5nbXgubmV0IFsyMTIuMjI3LjE1LjE1XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDc0OUY1NUY0REMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA3IE9jdCAyMDE3IDEwOjU1OjI5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIEthcmwtSGVpbnpzLU1hY0Jvb2stUHJvLmxvY2FsIChbOTIuMjA0LjEyMy4zMl0pIGJ5IG1haWwuZ214LmNvbQogKG1yZ214MDAxIFsyMTIuMjI3LjE3LjE5MF0pIHdpdGggRVNNVFBTQSAoTmVtZXNpcykgaWQKIDBMYmRsNS0xZFlxYjUzNkY5LTAwbEdZeiBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAwNyBPY3QgMjAxNwogMTI6NTU6MjggKzAyMDAKUmVwbHktVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gV0FSIFBsdWdpbiB2ZXJzaW9uIDMuMi4wCkZyb206IEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KUmVmZXJlbmNlczogPGQzMGVhNDc2LTA3OTQtZjA5Ni1jZTYxLTVmYjQxYjAzYjk2YUBnbXguZGU+Ck1lc3NhZ2UtSUQ6IDxhNmM4ZTZiZC0zMjZmLWExNjktY2Q4MS05OTUyZmYxZTAzOGVAZ214LmRlPgpEYXRlOiBTYXQsIDcgT2N0IDIwMTcgMTI6NTU6MjggKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi4zLjAKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDxkMzBlYTQ3Ni0wNzk0LWYwOTYtY2U2MS01ZmI0MWIwM2I5NmFAZ214LmRlPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDpUNlJjR3ZaYXhhVFVyclZsU3V6MWlibkRFdDRwMGRjWWdQRFRCWUF4aXd3STdwV2l4dGEKIERrKzZoUTNKY3BmWTd5UlkrQ0xBaGJvZmdKSEdBWVR6bTZYTURyekI1dE4zU002ZU9uazF3UzNHOXNtWGhzbmNxVHNlMUJ0CiBXbmxYTHBydHZDb0x6TXFjMVFDb1c2YlVhTURRbFk1MGRZcW5ieitKSnRLMUhxUHB1WjdnNEU2RnAxVng1MnRrQktKRXpLdQogQjZ3dWFWL0pESlNHL0s4aWN1MUlBPT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDozVWZTK2VIdXJEST06azlGTDVJVVpETm4zalYva1RhVVhFMQogdThxYUpoMTNRUnRvK0pGOWJjTTROYjBFTXQrdWMyRnRCZmNUQnBVVnE2VDdxckkrSjJKSHp6VFVhZmdWQjJSbWRpMXhmNHdZNQogSElmMHN1dVVTdjY1ODhPQW5pN3dxSTFJUHlBbzh6YmVTS0s1bUdqcXpjOG5tYks1MHA1d2JKT29CK1ZCUjFSYVNHcUNIVUdITgogUjhPSkNldzRmUkZPOWQwWHBPOHFkOUxSMys1VVZSTzR1TStzY1pSRk5NVGR1QTYvRXVWOGc0VWh3TWNlN21EcXRsbzFBUk1hYQogT2NkMXNmTmduOWQ0SFQwc2l6eXJ5Z0ovTERoMkZNL1BXVFBYODRCMldmNm40WHZPN1VxUnhIT2pnMTkvdEgwbG1CMzl6c2lVdAogWjhhV01lWjBMSC9tVGI1VE9NVWUzMHNlOHpXQWpSWStLRHRFL1dwWXhVQjY4clk0WUJSVjRXa00wTXZ1OHB0RnRFSURLN2pldQogZFlGZXFSOUE5dnBtRWErWEFsLzdNZnFoMnlFNkRrZDRUa054enNGMlNVMmorbjBLQTNuaWFOd3ptaWJkUzdmUld3OSthMU5GVAogL1UyQUxpbmQ0L0RXeWM4L2V6dmQrcTZJWGlFVWRvTGdlZml1cXdzaG9ZT2dsTysvcGduTFNQRkRnYWJYRnFrNndQbWIwMGJtVAogTWxmL3o1clN0Mmp3bUNxRlJidmZZV3g1WW90T0hIdHdqQk5wZ3ZkVDVxS0MxczBVNVZraFNyVjFvUU9MNDhJYnp3RnFlR1BidwogbnlGbExOMFZYTXlSSmRyK0pXSzNMUXRNclJXWVJXdGNCOUVGbkdxSUsrdzdiRFNxcmdPeUZ6bTJVQVlYYzJZRmxjbWN4d1I4aQogcFhYQm1ibittQ3Bsb2RWUjcyUkxPVW1MLyt3U1Jpc3Z2anBNOWY4Z0lGRkJKNVBlMEw2bitxbm1LVklDdWYyNHlVb1lOMkhLUgogMEFzaWJscDJoL3lRVG44NFdpV0hoOGppMENSYnp6bzJLTHV1U3VQWFcvaUxMSGxMTkxoRU5uVmZ5RWhvN0ltamlFVDJVdngzVwogSTEwNHZsNjNWR3dDWnpYbE40RlBuaHBCbkdIM1dwbU5HeXQwQjM4YmJnbFJFQWE1R0U9CgpIaSwKCisxIGZyb20gbWUuCgpLaW5kIHJlZ2FyZHMKS2FybCBIZWlueiBNYXJiYWlzZQpPbiAzMC8wOS8xNyAxNzo1NSwgS2FybCBIZWlueiBNYXJiYWlzZSB3cm90ZToKPiBIaSwKPiAKPiBXZSBzb2x2ZWQgMyBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMxODEyMSZ2ZXJzaW9uPTEyMzQxMzcyIAo+IAo+IAo+IFRoZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJTNEJTIwTVdBUiUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlMjBCWSUyMGtleSUyMERFU0MlMkMlMjBwcmlvcml0eSUyMERFU0MlMkMlMjB1cGRhdGVkJTIwREVTQyAKPiAKPiAKPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3MQo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL21hdmVuLXdhci1wbHVnaW4vMy4yLjAvbWF2ZW4td2FyLXBsdWdpbi0zLjIuMC1zb3VyY2UtcmVsZWFzZS56aXAgCj4gCj4gCj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gbWF2ZW4td2FyLXBsdWdpbi0zLjIuMC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogCj4gNWM2NjFmNDU1NDYxNjE0NzQ5MTAzNmRmYWM2ODliYTlkYjkwY2VjMgo+IAo+IAo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi13YXItcGx1Z2luLUxBVEVTVC8KPiAKPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+IAo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4gCj4gWyBdICsxCj4gWyBdICswCj4gWyBdIC0xCj4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQwODEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIFNlcCAyMCAxNjoyNzozNyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwODEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOEE3RkExMEY4QQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDIwIFNlcCAyMDE3IDE2OjI3OjM3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjAxMCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBTZXAgMjAxNyAxNjoyNzozNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTkwMyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBTZXAgMjAxNyAxNjoyNzozNyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE4ODMgaW52b2tlZCBieSB1aWQgOTkpOyAyMCBTZXAgMjAxNyAxNjoyNzozNiAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMjAgU2VwIDIwMTcgMTY6Mjc6MzYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA3ODczRjE4NEUxMzsKCVdlZCwgMjAgU2VwIDIwMTcgMTY6Mjc6MzYgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4yMjEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMjIxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTE9XPS0wLjcsCglSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwgUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFluVldXTTI4X0xDVzsgV2VkLCAyMCBTZXAgMjAxNyAxNjoyNzozNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNy4yMV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAxMDg0RTVGMjk3OwoJV2VkLCAyMCBTZXAgMjAxNyAxNjoyNzozNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBbMTcyLjE2LjEzNy4yNF0gKFs0Ni4xODMuMTAzLjhdKSBieSBtYWlsLmdteC5jb20gKG1yZ214MTAyCiBbMjEyLjIyNy4xNy4xNjhdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkIDBNNXI4OS0xZEFodG4wVXRGLTAweG9LODsgV2VkLCAyMAogU2VwIDIwMTcgMTg6Mjc6MzQgKzAyMDAKUmVwbHktVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6ID0/VVRGLTg/UT9bUkVTVUxUXT1jMj1hMFtWT1RFXV9SZWxlYXNlX0FwYWNoZV9NYXZlbl9KTW9kX1BsdWdpbl92ZXI/PQogPT9VVEYtOD9RP3Npb25fMy4wLjAtYWxwaGEtMV89MjhGaXJzdF9QdWJsaWNfUmVsZWFzZT0yOV9UYWtlXzM/PQpGcm9tOiBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClJlZmVyZW5jZXM6IDw3MGMwYjFhOC1mZWQ2LWY0YmYtMWVkMy02ODYyNDkzMzY5M2JAZ214LmRlPgpDYzogTWF2ZW4gUHJvamVjdCBNYW5hZ2VtZW50IENvbW1pdHRlZSBMaXN0IDxwcml2YXRlQG1hdmVuLmFwYWNoZS5vcmc+Ck1lc3NhZ2UtSUQ6IDxhN2QzOGRkMi02M2I0LTU4YjctZmU5ZS1hNmIwOGUxNTIwYjFAZ214LmRlPgpEYXRlOiBXZWQsIDIwIFNlcCAyMDE3IDE4OjI3OjM0ICswMjAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwLjExOyBydjo1Mi4wKQogR2Vja28vMjAxMDAxMDEgVGh1bmRlcmJpcmQvNTIuMy4wCk1JTUUtVmVyc2lvbjogMS4wCkluLVJlcGx5LVRvOiA8NzBjMGIxYTgtZmVkNi1mNGJmLTFlZDMtNjg2MjQ5MzM2OTNiQGdteC5kZT4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLUdCCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6a3Zwa3dub21UTHV1aVVWNXJ5WHhnc1BmTFV3c24vNWdMajR0bmxQazhDSnlWMk4wRGgrCiBNRE9nN3diODJJRURHckp6SlAwU2tGMk9FbkNmK0h2dHBSWjBFUEVQNEQ3eGdTcWV2MWQrVXZzYUVjbG5XK2JaUlBDYmtHWQogeHBlZmhTdXRIVjY3bE44YXhRQ0dnaWFLYnB2dk9LaWVpYm1nUnFvSVpIQnlSQnVqOXVrZlpxekt4TWRKWm4vd3BJSE05OG0KIDZCU2lGN1hTSkkzTlc1bEs4UUo2dz09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6OExxazFaYngrNTA9Ok8zYk9DNEFpSUlhMy80dVdqMUYvSkgKIC8wQVZtWC9JYUhXREJDc2RPQ0lpcFpVOTRJM0RkREN2WHFQeFpNTjY5bkpidTR0SmxaR25Ieko3SmZrbEVCb1BvNytkcUYyWFoKIEpaK0JFaFZyOEVROVY2aTFoMVNvRnRwZUxpSjd5ZEtKQ2h3UVZERFdaOEc5TEpZdDJRdElULy9EYVZudWVKV3p3UG42OXNST1YKIENoNWUzNEpxR2tlQ09yd0tVUEdyUDF1aWRKT0NlclZGWjBnMlphNlZQYXE4ZExaR0dDNTJiTlhRLzRYc3Y0aEpJdFQzMVI5bTIKIFByV1k2Rm9Mb3JtZjZKU3dUV0xRcDdZMDZ4dWNiRHNsUlo4Y3Zia1NzeGo0OHNTQlVjVzRZWkh0S1Z0b1ZhMlczYUdDN2xRUEMKIGRuY2RpUlQzNWo0OUtqMlhSUTVYT050b0FiK1RMdFdLSlR5TjhpekVZVG4ybkZxTVZzQk42aVdlWWppbHlHVUVnSExKTld5OW8KIGRHdWF4cXdLdXRiVjF5Q2RhdzNXSjdib1ZIVEZDUFYrTnFsa0w0WnErcndzS09pZlBFTGFWbEJic3NUVVUyZllUV2RVeEM3UmYKIGVDZXVrbHZCSXhTQjR3Vm54eUd4dVlCZStwR3NORU5oRFpZQ2VNWlNXU3hONGgzelk2M3hvMHpkTEV1MVlsRmZmTlpuQktoekEKIEpmSW1FOWh4Z0dvbWhZVEtRTFFybFNkTTBJaUhPZUc4NDI4a0JWQXl5dnJvWHpNYmNtOUVSclVTaEd2NWpWM21pcFp0K3gwNUkKIDdFOGFZUVBaTjQwUDhNL3ZHNlRNUzFCaGdRam9SbnliZDRXSElPbzJFWEFwYnJrNTVja0hGdnRWc3lHYlBHWkhqditmU2xIQ3kKIE1vaFczclZkenlyN01yODJ4YTZUdjRuSHUzdno5Q0VyNWdHSks5TC9ZVm55WERuRy81RkcveHh3Z2xGSmJIanpjSTV0QWsvRloKIG1Ea2FDcVkzUVR4ZjFOUU5HQ3hhVzJVOE9EU2ZWUGh3aEZSdERoWjJmaTFJZEl4bjlzU3kxbS9pRTRvV1ZBVnJwTFYyd0hLMFYKIGNFeDg3VDFuVWNuN0VRZ0xxQzRHRjB5RE1vWGNSR1JEeU1YeVZ3cVU5eklhYzk1dHVvTEVPWU5zY0p6blY4MUMvc1Q5OGNMCgpIaSwKClRoZSB2b3RlIGhhcyBwYXNzZWQgd2l0aCB0aGUgZm9sbG93aW5nIHJlc3VsdDoKCisxIDogUm9iZXJ0IFNjaG9sdGUsIEhlcnbDqSBCb3V0ZW15LCBLYXJsIEhlaW56IE1hcmJhaXNlCgpQTUMgcXVvcnVtOiByZWFjaGVkLgoKSSB3aWxsIHByb21vdGUgdGhlIGFydGlmYWN0cyB0byB0aGUgY2VudHJhbCByZXBvLgoKS2luZCByZWdhcmRzCkthcmwgSGVpbnogTWFyYmFpc2UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDExMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgU2VwIDI4IDE4OjU0OjU1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDExMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4NkE3RjEwMzRGCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjggU2VwIDIwMTcgMTg6NTQ6NTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyODI5MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBTZXAgMjAxNyAxODo1NDo1NSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjgxODkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggU2VwIDIwMTcgMTg6NTQ6NTUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyODE3NCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IFNlcCAyMDE3IDE4OjU0OjU1IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDI4IFNlcCAyMDE3IDE4OjU0OjU1ICswMDAwClJlY2VpdmVkOiBmcm9tIFsxOTIuMTY4LjEuMTNdIChwM0U5RDI3RjMuZGlwMC50LWlwY29ubmVjdC5kZSBbNjIuMTU3LjM5LjI0M10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCBGMzI1RTFBMDA0MDsKCVRodSwgMjggU2VwIDIwMTcgMTg6NTQ6NTMgKzAwMDAgKFVUQykKU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBEb3hpYSBTaXRldG9vbHMgdmVyc2lvbiAxLjcuNQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sCiBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+ClJlZmVyZW5jZXM6IDxvcC55NjZyemxsemtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KRnJvbTogTWljaGFlbCBPc2lwb3YgPG1pY2hhZWxvQGFwYWNoZS5vcmc+Ck1lc3NhZ2UtSUQ6IDxhOWRhMWU4Ny1mMTk4LTdjMTktZmJkNS1iODIzOWM1ZDg2OTRAYXBhY2hlLm9yZz4KRGF0ZTogVGh1LCAyOCBTZXAgMjAxNyAyMDo1NDo0OCArMDIwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXT1c2NDsgcnY6NTIuMCkgR2Vja28vMjAxMDAxMDEKIFRodW5kZXJiaXJkLzUyLjMuMApNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPG9wLnk2NnJ6bGx6a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tVVMKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdAoKQW0gMjAxNy0wOS0yNiB1bSAyMDo1MSBzY2hyaWViIFJvYmVydCBTY2hvbHRlOgo+IEhpLAo+IAo+IFdlIHNvbHZlZCA1IGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamVjdElkPTEyMzE3MzIwJnZlcnNpb249MTIzMzg5ODImc3R5bGVOYW1lPVRleHQgCj4gCj4gCj4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPXByb2plY3QlMjAlM0QlMjAxMjMxNzMyMCUyMEFORCUyMHN0YXR1cyUyMCUzRCUyME9wZW4lMjBPUkRFUiUyMEJZJTIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQyAKPiAKPiAKPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3MC8KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzcwL29yZy9hcGFjaGUvbWF2ZW4vZG94aWEvZG94aWEtc2l0ZXRvb2xzLzEuNy41L2RveGlhLXNpdGV0b29scy0xLjcuNS1zb3VyY2UtcmVsZWFzZS56aXAgCj4gCj4gCj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gZG94aWEtc2l0ZXRvb2xzLTEuNy41LXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOiAKPiA5YWI4NzQxMjBiZDYwZjUzMmMxNjdhNDMwZDhlMDc3YzI5MTQwMTZkCj4gCj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9kb3hpYS9kb3hpYS1zaXRldG9vbHMtYXJjaGl2ZXMvZG94aWEtc2l0ZXRvb2xzLUxBVEVTVC8gCj4gCj4gCj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPiAKPiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+CgorMQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODc2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBEZWMgMjkgMTA6MTA6NDUgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODc2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDYwRTRGMTczMzgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAyOSBEZWMgMjAxNyAxMDoxMDo0NSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ2NDE5IGludm9rZWQgYnkgdWlkIDUwMCk7IDI5IERlYyAyMDE3IDEwOjEwOjQwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0NjM1MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOSBEZWMgMjAxNyAxMDoxMDo0MCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ2MzM5IGludm9rZWQgYnkgdWlkIDk5KTsgMjkgRGVjIDIwMTcgMTA6MTA6MzkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDI5IERlYyAyMDE3IDEwOjEwOjM5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNkU0RUMxQTAwNDQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDI5IERlYyAyMDE3IDEwOjEwOjM5ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuMjAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjIwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIG5KUkVBcnMxY1lNUyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCUZyaSwgMjkgRGVjIDIwMTcgMTA6MTA6MzggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbW91dC5nbXgubmV0IChtb3V0LmdteC5uZXQgWzIxMi4yMjcuMTcuMjJdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNUE1QUI1RkJDQgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjkgRGVjIDIwMTcgMTA6MTA6MzYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gS2FybC1IZWluenMtTWFjQm9vay1Qcm8ubG9jYWwgKFs5Mi4yMDQuOTMuMjI1XSkgYnkgbWFpbC5nbXguY29tCiAobXJnbXgxMDMgWzIxMi4yMjcuMTcuMTY4XSkgd2l0aCBFU01UUFNBIChOZW1lc2lzKSBpZAogME1TTXI5LTFlTzZYeDBOZlgtMDBUVzc2IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDI5IERlYyAyMDE3CiAxMToxMDozNCArMDEwMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86IGluZm9Ac29lYmVzLmRlCkZyb206IEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPgpTdWJqZWN0OiBNYXZlbiAzLjUuMzogTU5HLTYzMDUKTWVzc2FnZS1JRDogPGFkY2M5N2E2LTJmYzItMDg1Yi02Y2E3LTZkNGFjMDg5NTJjZkBnbXguZGU+CkRhdGU6IEZyaSwgMjkgRGVjIDIwMTcgMTE6MTA6MzYgKzAxMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi41LjAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLUdCCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6ckw3eTFteTg2Vy9SYnQvb2NMc3h4cVErVWpGN2Z5NERRZm5iQTRrSWpKK0pPRlgrcnQrCiB3dFo3OEtmNTRHTEdwSU8xb2piZUxrQ2piWlp5bUl6U0EwWW1OMDFtbVAwUDVPUWJGRzlQQXVsNitvd0pEWDdESTdyUjRXYwogSytQb01EK2pyYkNSMmJlR0tYN0ZYMXc3clBrQ0V1K0NtTTdLdjlyS3BJQ3BMa1kveTBlYlpydEpQQTVYalRwUW1BOFJJQUwKIGFvaFg5dTRldHJrKzJjMGx5cG1idz09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6bG5TanIrVmN6ZlE9OlNzYmlhK0tHT040Z3ZpYzNwVHVGYlYKIDNHQ1V1WHh3ckhPRmd0SW9GaE83TE9FYU10cW9ybThISGhobk1kRWJVdnBqUWoweUNXWFJsb3VWWHBNWVdONzZRRlRPMkozYzMKIG5OVmN6bjVaaVI1VWJKQXprb20rZFRmYXFuZ0IveHYraVMvKzJTVmtqUUh5b1FySXI1Vm9pdys3RENKcUpEVEJ2cytCQnNDaU8KIEhEY2NNbE14UEdnUkpaMndJQ3F5RmdZdENjTnRYNlo4UG81UGlPVDZteTc2Yis0THcvOTJPWm5qKzk5L0VPRWZtNSt0L0ZjVG4KIEZ4N2Nib2V6eFI5MG9EbzU4eVZEK0V5cU9IZUhHUkNIOEVuRmFBejdWRmpOVVkvclg0ZVEySkJZNGNWTnMzT0w4aitDWmw2WmwKIE5RODd0cXBMdDVXVU9ncVgwSVNIR204RkFpNER1R29jTUtTTzIyMjhqd0dwMWFuMFZKQnBhVnpiNGN3R3UxL3V2M3VzcTZ6cVAKIE1ld0VtR2lBS2ducUVFM3Z3ZE10eWwwZ1ZvelY0TGNoZU1pUWdqNDlMb0JrNWFnQVdOK21XdFNMeHZtaDZhejlIOXk3U0ZCbHQKIGNNdDE1RHlvRTlCSTdZbHlCYUFXQk96ZjMyZktrak9QVG52OXorVklwSytiRmhndURqMUJIZ29HSDBaQnVud0xjTzA0RTVHd08KIGRnV2huSzc5aGJQeVdPa1FkQ3ZUSC9kSE53OHl0SXhLRlZna3R0UmxBYzF0Q0t3RjBuLzBRNUVVNzk3cXRJd1F3MGdWNUlFNDAKIFYvYzRSNDZyN3VSQkZvTUNPU0JpQVVHek1saVl0Q2RVLzVDUUJwUkxHZ2ovR3JVcFdrVDBGeTRvVVZnb2tZdFp6UUl5U2w0bDcKIFl4SjRSUDRkL2NJNmsyVHpCM3RLa1Q3ak1FaUdLd0hYQUV6T1g3OUkxaFhOVml3cXpiN2NSWnRnK2lMekNDakI1K1crUC9YZWkKIFcrZXlkQVY3REQ1NkFsSG10RlZlbWo0cHlKTktnYklXdmt2NVJRRzB6djFzR1ZXektFNDdyK1NrcFlnRUtMS2FvMVUyK1dZUXMKIG5DbnBhL2daUFl2bjNrUW1FZzBCS00vWnlhcHJHdXlYMWFnb3RCVjgyc2J0dTAwNlZzPQoKSGksCgpJIHdvdWxkIGxpa2UgdG8ga25vdyBpZiB0aGVyZSBhcmUgYW55IG9iamVjdGlvbnMgdG8gbWVyZ2UgTU5HLTYzMDUgaW50byAKbWFzdGVyIChKZW5raW5zIGlzIGZpbmUgWzFdKS4KCktpbmQgcmVnYXJkcwpLYXJsIEhlaW56IE1hcmJhaXNlCgpbMV06IApodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL2pvYi9tYXZlbi13aXAvam9iL21hdmVuL2pvYi9NTkctNjMwNS12YWxpZGF0aW9uLW9mLWNpLWZyaWVuZGx5LwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MTI2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBPY3QgIDIgMDg6MzM6MTcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTI2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDk5NEVBMTA5M0QKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAgMiBPY3QgMjAxNyAwODozMzoxNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDY4MTk4IGludm9rZWQgYnkgdWlkIDUwMCk7IDIgT2N0IDIwMTcgMDg6MzM6MTcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY4MTExIGludm9rZWQgYnkgdWlkIDUwMCk7IDIgT2N0IDIwMTcgMDg6MzM6MTcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2ODEwMCBpbnZva2VkIGJ5IHVpZCA5OSk7IDIgT2N0IDIwMTcgMDg6MzM6MTYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDAyIE9jdCAyMDE3IDA4OjMzOjE2ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMjg1Q0YxODA5QTUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICAyIE9jdCAyMDE3IDA4OjMzOjE2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuMjAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjIwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBwczFsZ200bFAwdWIgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sICAyIE9jdCAyMDE3IDA4OjMzOjE1ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1vdXQuZ214Lm5ldCAobW91dC5nbXgubmV0IFsyMTIuMjI3LjE1LjE4XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIEMyM0FFNUYxRUUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICAyIE9jdCAyMDE3IDA4OjMzOjE0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIEthcmwtSGVpbnpzLU1hY0Jvb2stUHJvLmxvY2FsIChbOTIuMjA0LjI5LjE4XSkgYnkgbWFpbC5nbXguY29tCiAobXJnbXgwMDMgWzIxMi4yMjcuMTcuMTkwXSkgd2l0aCBFU01UUFNBIChOZW1lc2lzKSBpZAogME1HamZsLTFlMzBkdTF0TTktMDBEVzFCOyBNb24sIDAyIE9jdCAyMDE3IDEwOjMzOjA3ICswMjAwClJlcGx5LVRvOiBpbmZvQHNvZWJlcy5kZQpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIFdBUiBQbHVnaW4gdmVyc2lvbiAzLjIuMApUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sCiBHYWJyaWVsIEJlbGluZ3VlcmVzIDxiZWxpbmd1ZXJlc0BnbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxkMzBlYTQ3Ni0wNzk0LWYwOTYtY2U2MS01ZmI0MWIwM2I5NmFAZ214LmRlPgogPDU3MDk2N2Y5LTgxNTAtZjA2YS01MjEzLWFlNWM2ODY2ZjJkMEBnbXguZGU+CiA8Q0FLWTNReVZKZVJyM2tRazdkZ18tQmYyTzlreU40RXZEZ1l6V3I4aUtEVmdaQk52SFZBQG1haWwuZ21haWwuY29tPgpGcm9tOiBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4KTWVzc2FnZS1JRDogPGIwMzlmZDA5LTliNTItMDdkMS03MjI5LTdjM2ZhNGY5MzFhMkBnbXguZGU+CkRhdGU6IE1vbiwgMiBPY3QgMjAxNyAxMDozMzowNyArMDIwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMTsgcnY6NTIuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzUyLjMuMApNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPENBS1kzUXlWSmVScjNrUWs3ZGdfLUJmMk85a3lONEV2RGdZeldyOGlLRFZnWkJOdkhWQUBtYWlsLmdtYWlsLmNvbT4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLUdCCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6SDhVZ1pHNWxLSXN1TlJxWkY4L0pqYnY4Myt3eS95K0hsVndRbjdTcFRJeTl2T1djWmVMCiBUQUZpeExrMnloeUdod1l4aEtEQ1REb25JMy9QQ3RwQjVtdHVWby84dldVUldaS3BIdVJoVXg0TGk1OCtnUHJUZ3MyNzd6OAogMjJYVGVhQ1BDeXlzK1Bha3dCbGVmVFVXNlYraEVWVXUrSStIVTlXcHlRNmxUdHpFRkdWcUZSeHR0dXJOeEtXOURpRHYwdW4KIGZWYzNwQ3NUTytBS0xQaURqNzdUUT09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6Qm5pRktIWGJicFU9Ok10eU1tQ0RLUGJVMUQ3L3JyTHFPS3AKIFNhc2hoYlFydEhIS1BvaS9zL0ZBZGEzQlAvd2doM2ZTY2FXaC9NSUhOVUlEc0VlblRMMG9aUDd2V3QrN21zUkJkbkhRbmYwbksKIGV6d0xKTS9Jc3Buc0NBdzE3L0sxME5PZnZEQkRmaDBuakU1SUZhd0VIbzJhU09hYU9PMDZhdHBKdVJCUm1sbm5mWVBaMytlSDcKIFFWVGpObWVXODNrOEFkL1hQTUNmTWFQSEZnVXZ4azNtWEtEVm1vcld1M2JJZE5GTFNCZTVoeHVhUnRGMVZoY0RxZnZ2b1NnczUKIHh5MWRIQ29hc0lNemtjU05VanQvaWQxSlZDNmdZK3BpNExsRVJDWDV0U09WVHUvRDd6Vm0wUTZZZFdrT2lvaVJDQzhsWllBV2kKIDdwNHI5RUFCeVJ0WFJHTHFnVTNzZVB6NTRBeVE2V1RNVjAvWFN1WTdPOVBOSlZxUUFabUtqQzBnckQ5VU52eFV2R2JIcEJEVzcKIDM3OUtaQm0wRitoaWZja2J4NzNZb0psekVUM0M1azd2bTdMcmk1a1NXR2s1YnFwSXRuQzV1YVNWYmtEZjVjdzhNeXVYSnVsQmMKIGVmeFJwejVSd2gxUjNYajlBdElSQWtLdHhFN3lqalBDUldJOXRySXVtMEVNeWM1QjJVSG0reVRwTklRYlJqWm1sbWVjL01MSG4KIGtLdThyRms1b3liaTdWSU5ZbUk4VVBrOTQ4d0dCQzdFLzI1c2dhRTdwdTdiSTY5QlFEUXkvSHYvTFRiSXA5ZFVvc2xpUGJncGUKIDBLdkk5c2lNdVFJcW9JWXdaaTFLVUF1alcyRUgzNnVFN1ZMbjVrL296ZXNEL0cwamU1aUh5YmlsaWw0dXBrU2E3cHZSTnJLcW8KIGt2NEhlZjJwVmdPNW9iMVYzYkk4SGRXbUU3ZzJYZWRoMHJhYSt1YWdSWGpUcjV0RmduYitCUnVITVZqQ3lubFNzOEZPejl4UFEKIGRtKzB1MTNmeXUwUEhZbEluOXpOYkl1RlRFalF2Ukc0bUQyZ3FRR1EwL01wOE5JNldKN0RuRC9Cais5bEZSSm5tVVV4YitBS2YKIHVHdXR5V0hmbkEySUI4NmovTHM3RzJ5RG9QcnNCdzk5djltYkRZQld4NDVjb3h5ZHdRPQoKSGksCgoKT24gMDIvMTAvMTcgMDQ6NTUsIEdhYnJpZWwgQmVsaW5ndWVyZXMgd3JvdGU6Cj4gV291bGQgaXQgYmUgcG9zc2libGUgdG8gY3V0IGEgcmVsZWFzZSBvZiBwbGV4dXMtaW50ZXJwb2xhdGlvbiBhbmQgdXBncmFkZQo+IHRoaXMgZGVwZW5kZW5jeSB0byBzb2x2ZSBNV0FSLTMwMz8KClRoZSBwbGV4dXMtaW50ZXJwb2xhdGlvbiB2ZXJzaW9uIDEuMjQgaXMgaW5jbHVkZWQgd2hpY2ggY29udGFpbnMgdGhlIApQUiM4IC4uLnNvIGZyb20gbXkgcG9pbnQgb2YgdmlldyB0aGlzIGlzIGFscmVhZHkgZG9uZSAoTmVlZCB0byBjbG9zZSAKTVdBUi0zMDMpID8gQ2FuIHlvdSBjaGVjayB0aGF0IHdpdGggdGhhdCByZWxlYXNlPwoKS2luZCByZWdhcmRzCkthcmwgSGVpbnogTWFyYmFpc2UKCj4gCj4gMjAxNy0wOS0zMCAxMzoxNiBHTVQtMDM6MDAgTWlrYWlsIE9zaXBvdiA8bW9zaXBvdkBnbXguZGU+Ogo+IAo+PiBBbSAyMDE3LTA5LTMwIHVtIDE3OjU1IHNjaHJpZWIgS2FybCBIZWlueiBNYXJiYWlzZToKPj4KPj4+IEhpLAo+Pj4KPj4+IFdlIHNvbHZlZCAzIGlzc3VlczoKPj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZQo+Pj4gY3RJZD0xMjMxODEyMSZ2ZXJzaW9uPTEyMzQxMzcyCj4+Pgo+Pj4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9cHJvamVjdCUyMCUzRCUKPj4+IDIwTVdBUiUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlMjBCWSUKPj4+IDIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMHVwZGF0ZWQlMjBERVNDCj4+Pgo+Pj4gU3RhZ2luZyByZXBvOgo+Pj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3MQo+Pj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3Cj4+PiAxL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi13YXItcGx1Z2luLzMuMi4wL21hdmVuLXdhci0KPj4+IHBsdWdpbi0zLjIuMC1zb3VyY2UtcmVsZWFzZS56aXAKPj4+Cj4+PiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPj4+IG1hdmVuLXdhci1wbHVnaW4tMy4yLjAtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6Cj4+PiA1YzY2MWY0NTU0NjE2MTQ3NDkxMDM2ZGZhYzY4OWJhOWRiOTBjZWMyCj4+Pgo+Pj4KPj4+IFN0YWdpbmcgc2l0ZToKPj4+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLXdhci1wbHVnaW4tTEFURVNULwo+Pj4KPj4+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+Pj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPj4+Cj4+PiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+Pj4KPj4KPj4gKzEKPj4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDAxMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgU2VwIDEzIDE3OjQyOjA4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDAxMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBEMzkzNzFBNDFBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMTMgU2VwIDIwMTcgMTc6NDI6MDggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1NTk5NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMyBTZXAgMjAxNyAxNzo0MjowOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTU4ODQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTMgU2VwIDIwMTcgMTc6NDI6MDcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NTg3MSBpbnZva2VkIGJ5IHVpZCA5OSk7IDEzIFNlcCAyMDE3IDE3OjQyOjA3IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAxMyBTZXAgMjAxNyAxNzo0MjowNyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDE4NUU5MUE1M0Y1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMyBTZXAgMjAxNyAxNzo0MjowNyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IC0wLjIyMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC4yMjEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0tBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywKCVJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy1ldS5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBpWC1LczlnM09NX0ggZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsIDEzIFNlcCAyMDE3IDE3OjQyOjA1ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1vdXQuZ214Lm5ldCAobW91dC5nbXgubmV0IFsyMTIuMjI3LjE3LjIwXSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIERCNzI3NUZFNjQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3IDE3OjQyOjA0ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIEthcmwtSGVpbnpzLU1hY0Jvb2stUHJvLmZyaXR6LmJveCAoWzE3OC4xMi44OC4xNzNdKSBieQogbWFpbC5nbXguY29tIChtcmdteDEwMiBbMjEyLjIyNy4xNy4xNjhdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTTBibzItMWRhNXpPMGhmcS0wMHVvQlIgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTMgU2VwIDIwMTcKIDE5OjQyOjA0ICswMjAwClJlcGx5LVRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIERlcGVuZGVuY3kgUGx1Z2luIHZlcnNpb24gMy4wLjIKRnJvbTogS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8NzhhNWFmOTItZTQ3MS1mOWY5LTdkZTAtZjAyZDA5ZmE0MDM1QGdteC5kZT4KTWVzc2FnZS1JRDogPGIxMjViZDYyLTIwYTktN2U5MS04YjNmLWYyOWExZmIzNTMzN0BnbXguZGU+CkRhdGU6IFdlZCwgMTMgU2VwIDIwMTcgMTk6NDI6MDMgKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi4yLjEKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDw3OGE1YWY5Mi1lNDcxLWY5ZjktN2RlMC1mMDJkMDlmYTQwMzVAZ214LmRlPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDo3Z2N1VjhRYzkwNlgrRGsxZ29sc2VicnVhZnE5RzBueUwxczhZMzlBUHhuWklLdHQ2eDkKIG4zeUFpYjRFVlR6Zms4UUNITGRrbk0ySzczSE1tTi8wWnVjdWNkNzh4SUtsT29nLzBUSEFzM3pyeU56bW9QeFRUVzIxMmkrCiBta09wOGRqK3RLdU9ab05xSTU0bS9xbFlCTkVMcjlaZ0RXQ014bEV3ZmlsK1dyajdQOVRvZWZucUlvOVp6MlBxVGoyMDJNbwogbitrSzg3OE9ET2w3djVVcU0zSjd3PT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDpETHF0dm1UdEJvVT06QW1EcXlXYzI1TkpSdXZkd3QxZjJ1bQogcEl4NzlKZDhKcC9tR2luMjBlaTBBL0VJU1hoVzZ1bUIrQ2tSTG56NUdnSm01OFFvUDVKaEFWU1RybmlnaDdMNjJzUFBscmV0egogRWM5Uks3NXBvcXlPMXQ4cjk2eUFUdFQvWnBiYW1jTkV0dHpDRkZOU1Q3NUswdklKRGxnMnk2RzIrYWNpVmFUNTlaL1FKTHNHdgogaS9hU3puS201bVN6d3ppU0Zob1R4T2t5czhZQnVWdW1kQTlyNVFaZG9Fd0FYZmUrQjA0eEhtRWduNW5tYm8zOHB5MmZYRFB4RwogWUdlNWhrZFhCdXBmS21VdllSenZ5RFUrYzAreGE3cjdXcThGMW4xcmIvSDRuNmN3RnFld1B2WFp0cGw5My8wMFZEMjNZMmtKTQogbDZ2aU9EbzV0N3lqTGxiZGJDaDlFdU91cUxhUGw2NkxuYUhKN3ZlbWpLL09xYlI0VHhHL2tFZVZaQXIzSjg3NjJ2SFRuNlU2SQogMThWTGtIV3BkK2MrVm9pT0dpS1k4aTR1V0Y1SUoxeVYyNDlUOERtT3pHaXFQY05IR2VzamRFMWhlNW16UWsvWllrcHJYL0szWAogS3EwUVdwTFpOWEpjY1lQeDJTTjJFcG5zWnZMTjBHYk5aUlpDOUYvV3FBTTBOMHVLNjE3a2FUMEdxRDA0MkVNcldwQWQyd3ZIbgogUUNxSkNzcVhGMFpZNnVyRGVDRG12bW9sNEI5Y1BXa1FZMUhOT1hRcUVJRkpUY2k1TGdMcTZSTVYvUGxFZkNaVTI0QnIvaUE5TAogUG03WXpaeE4yUjQyblhFUGZmSWphelRoeEhrT04xTWNHbkM5TXJ1YWRPZVRhdXZIMENPUGhaYjF3RnNiY0hLYkRocEJtclgzbgogV1o5L0IrRUtaNXlPUm40eHAvZi9ONE9acGZmL2VJRE95T0J1bTNzMUpYcjlFWlZJMTJYRkRJc2szdGlrODhKSVArR2xheUc3Vgogd1pGVVJIcWViY29McVZpdjB2b3pDS1c4anVMM2lTdEIxaGRQRklvYndObEp5K2EvTm9HR2RnNFpweFB4VTJNOVcwaDNtc0U5ZAogdzYrRllPTkVNMWZHMlJ2bDR4aTNhdElEZU5BYmVQWmhvbG1iYzBzdHVKb0c2WHByT0k9CgpIaSwKCmhlcmUgaXMgbXkgKzEuCgpLaW5kIHJlZ2FyZHMKS2FybCBIZWlueiBNYXJiYWlzZQpPbiAwOS8wOS8xNyAxNDozNCwgS2FybCBIZWlueiBNYXJiYWlzZSB3cm90ZToKPiBIaSwKPiAKPiBXZSBzb2x2ZWQgNyBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMxNzIyNyZ2ZXJzaW9uPTEyMzQxMjU0IAo+IAo+IAo+IFRoZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJTNEJTIwTURFUCUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlMjBCWSUyMGtleSUyMERFU0MlMkMlMjBwcmlvcml0eSUyMERFU0MlMkMlMjB1cGRhdGVkJTIwREVTQyAKPiAKPiAKPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2MAo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjAvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL21hdmVuLWRlcGVuZGVuY3ktcGx1Z2luLzMuMC4yL21hdmVuLWRlcGVuZGVuY3ktcGx1Z2luLTMuMC4yLXNvdXJjZS1yZWxlYXNlLnppcCAKPiAKPiAKPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBtYXZlbi1kZXBlbmRlbmN5LXBsdWdpbi0zLjAuMi1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogCj4gM2M0YWE3MTZlMjhiMjQxODM0ZDQ3ZDIyZTFmZjVmNmU2MmYxNmI5Ygo+IAo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1kZXBlbmRlbmN5LXBsdWdpbi1MQVRFU1QvCj4gCj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPiAKPiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+IAo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MjU0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBPY3QgMTcgMDc6MDA6MTkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjU0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDdBQ0ZBMTA2QUMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAxNyBPY3QgMjAxNyAwNzowMDoxOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ4ODMyIGludm9rZWQgYnkgdWlkIDUwMCk7IDE3IE9jdCAyMDE3IDA3OjAwOjE5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0ODUyNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNyBPY3QgMjAxNyAwNzowMDoxOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ4NTE2IGludm9rZWQgYnkgdWlkIDk5KTsgMTcgT2N0IDIwMTcgMDc6MDA6MTggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDE3IE9jdCAyMDE3IDA3OjAwOjE4ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQkZENUMxODA3MTkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDE3IE9jdCAyMDE3IDA3OjAwOjE3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTUuMDIzClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS01LjAyMyB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bUkNWRF9JTl9ETlNXTF9IST0tNSwgUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgUlBfTUFUQ0hFU19SQ1ZEPS0wLjAwMSwgU1BGX0hFTE9fUEFTUz0tMC4wMDEsCglTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHJzWlFiVDlsZGhHUyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVR1ZSwgMTcgT2N0IDIwMTcgMDc6MDA6MTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbXgxLnJlZGhhdC5jb20gKG14MS5yZWRoYXQuY29tIFsyMDkuMTMyLjE4My4yOF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAyMUY5OTVGQkU5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxNyBPY3QgMjAxNyAwNzowMDoxNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBzbXRwLmNvcnAucmVkaGF0LmNvbSAoaW50LW14MDMuaW50bWFpbC5wcm9kLmludC5waHgyLnJlZGhhdC5jb20gWzEwLjUuMTEuMTNdKQoJKHVzaW5nIFRMU3YxLjIgd2l0aCBjaXBoZXIgQUVDREgtQUVTMjU2LVNIQSAoMjU2LzI1NiBiaXRzKSkKCShObyBjbGllbnQgY2VydGlmaWNhdGUgcmVxdWVzdGVkKQoJYnkgbXgxLnJlZGhhdC5jb20gKFBvc3RmaXgpIHdpdGggRVNNVFBTIGlkIDcyNUY4QzA1ODdDNgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTcgT2N0IDIwMTcgMDc6MDA6MTQgKzAwMDAgKFVUQykKRE1BUkMtRmlsdGVyOiBPcGVuRE1BUkMgRmlsdGVyIHYxLjMuMiBteDEucmVkaGF0LmNvbSA3MjVGOEMwNTg3QzYKQXV0aGVudGljYXRpb24tUmVzdWx0czogZXh0LW14MDguZXh0bWFpbC5wcm9kLmV4dC5waHgyLnJlZGhhdC5jb207IGRtYXJjPW5vbmUgKHA9bm9uZSBkaXM9bm9uZSkgaGVhZGVyLmZyb209cmVkaGF0LmNvbQpBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBleHQtbXgwOC5leHRtYWlsLnByb2QuZXh0LnBoeDIucmVkaGF0LmNvbTsgc3BmPWZhaWwgc210cC5tYWlsZnJvbT1taXpkZWJza0ByZWRoYXQuY29tClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdC5sb2NhbGRvbWFpbiAob3Zwbi0xMTYtMjIwLmFtczIucmVkaGF0LmNvbSBbMTAuMzYuMTE2LjIyMF0pCglieSBzbXRwLmNvcnAucmVkaGF0LmNvbSAoUG9zdGZpeCkgd2l0aCBFU01UUFMgaWQgQzVDOTY2MEJFMgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTcgT2N0IDIwMTcgMDc6MDA6MTMgKzAwMDAgKFVUQykKU3ViamVjdDogUmU6IE1hdmVuIFBsdWdpbiB0aGF0IHByb3ZpZGVzIGFsdGVybmF0aXZlIHJlcG9zaXRvcnkKVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlZmVyZW5jZXM6IDxDQUV5TXp5bXNISHZPQkYtYnRxVHZqOGt2MHJGTGdCZD1KR0hydVBaakV5WVpvPUEtMGdAbWFpbC5nbWFpbC5jb20+CiA8NDEwOTdiMGQtODFmYS01YmQwLWI4ZGUtZTEyYzQzNDhjOGNkQGdteC5kZT4KIDxDQUV5TXp5a3RkZUxDUkdaUF9iVm80dkIrUzRxZzNnaFJqUTNnQlFuQW5mRzlWcXhRS2dAbWFpbC5nbWFpbC5jb20+CiA8YTVjZGI3YmMtYWIzOC01MWFmLTZlZDEtMTRiNTIxMTNiZjM4QHJlZGhhdC5jb20+CiA8Q0ErMjk4VWhlNWthcHdGM0JjdHg5UFZadU5FdVF4VzJUWUU5MTZxM01xN19QTm10ajJ3QG1haWwuZ21haWwuY29tPgpGcm9tOiBNaWtvbGFqIEl6ZGVic2tpIDxtaXpkZWJza0ByZWRoYXQuY29tPgpNZXNzYWdlLUlEOiA8YjIxZTNkZDYtZjNjZC03MGFmLTdjYjYtZTIxN2IyNzkxOTJmQHJlZGhhdC5jb20+CkRhdGU6IFR1ZSwgMTcgT2N0IDIwMTcgMDk6MDA6MTEgKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKFgxMTsgTGludXggeDg2XzY0OyBydjo1Mi4wKSBHZWNrby8yMDEwMDEwMQogVGh1bmRlcmJpcmQvNTIuMy4wCk1JTUUtVmVyc2lvbjogMS4wCkluLVJlcGx5LVRvOiA8Q0ErMjk4VWhlNWthcHdGM0JjdHg5UFZadU5FdVF4VzJUWUU5MTZxM01xN19QTm10ajJ3QG1haWwuZ21haWwuY29tPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTgKQ29udGVudC1MYW5ndWFnZTogZW4tTVcKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApYLVNjYW5uZWQtQnk6IE1JTUVEZWZhbmcgMi43OSBvbiAxMC41LjExLjEzClgtR3JleWxpc3Q6IFNlbmRlciBJUCB3aGl0ZWxpc3RlZCwgbm90IGRlbGF5ZWQgYnkgbWlsdGVyLWdyZXlsaXN0LTQuNS4xNiAobXgxLnJlZGhhdC5jb20gWzEwLjUuMTEwLjMyXSk7IFR1ZSwgMTcgT2N0IDIwMTcgMDc6MDA6MTQgKzAwMDAgKFVUQykKCk9uIDEwLzE2LzIwMTcgMTI6MzkgUE0sIFBhdWwgSGFtbWFudCB3cm90ZToKPj4KPj4gVGhpcyBzaG91bGQgYmUgcG9zc2libGUgYnkgcHJvdmlkaW5nIFdvcmtzcGFjZVJlYWRlciBpbXBsZW1lbnRhdGlvbiAtCj4+IEBDb21wb25lbnQoIHJvbGUgPSBXb3Jrc3BhY2VSZWFkZXIuY2xhc3MsIGhpbnQgPSAiaWRlIiApCj4+Cj4+IE5vdGUgdGhhdCBNYXZlbiB0cmllcyByZXNvbHV0aW9uIGZyb20gd29ya3NwYWNlICpiZWZvcmUqIHJlcG9zaXRvcmllcyAtCj4+IHdvcmtzcGFjZSByZWFkZXIgaGFzIHByaW9yaXR5IGxvd2VyIHRoYW4gcmVhY3RvciwgYnV0IGhpZ2hlciB0aGFuIHJlbW90ZQo+PiByZXBvcyBrbm93biB0byBNYXZlbi4KPiAKPiBXb3Jrc3BhY2VSZWFkZXIgZnVuY3Rpb25hbGl0eSBpcyBvciBpcyBub3QgYSB0aGluZyB0aGF0IGNhbiBiZSBzZXQgaW4KPiBwb20ueG1sIGZpbGVzPwoKV2hlbiBQT00gaXMgcGFyc2VkLCB3b3Jrc3BhY2UgcmVhZGVyIGlzIGFscmVhZHkgbG9hZGVkLCBzbyBpdCB3b3VsZCBiZQp0b28gbGF0ZS4gU28gaXQgbmVlZHMgdG8gYmUgbG9hZGVkIGJ5IGFuIGV4dGVuc2lvbi4KCj4gQXJlIHRoZXJlIGFueSBleGFtcGxlcyBpbiBwdWJsaWMgdGhhdCB1c2UgV29ya3NwYWNlUmVhZGVyIGluIHVzZSB0bwo+IHNvdXJjZSBhIGRlcCBmcm9tIG91dHNpZGUgb2YgbWF2ZW4gY2VudHJhbCAob3IgdGhlIHByb2plY3RzIHNpYmxpbmcKPiBtb2R1bGVzKT8KCkVjbGlwc2UgTTJFIGlzIG9uZSBleGFtcGxlLiBBbm90aGVyIG9uZSBpcyBYTXZuLCB3aGljaCB1c2VzIHdvcmtzcGFjZQpyZWFkZXIgdG8gcmVzb2x2ZSBkZXBlbmRlbmNpZXMgZnJvbSBzeXN0ZW0gcmVwb3NpdG9yeSAobm90IGluIE1hdmVuIGZvcm1hdCk6CgpodHRwczovL2dpdGh1Yi5jb20vZmVkb3JhLWphdmEveG12bi9ibG9iL21hc3Rlci94bXZuLWNvbm5lY3Rvci1hZXRoZXIvc3JjL21haW4vamF2YS9vcmcvZmVkb3JhcHJvamVjdC94bXZuL2Nvbm5lY3Rvci9hZXRoZXIvWE12bldvcmtzcGFjZVJlYWRlci5qYXZhCgo+IAo+IC0gUGF1bAo+IAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+IAoKLS0gCk1pa29sYWogSXpkZWJza2kKU29mdHdhcmUgRW5naW5lZXIsIFJlZCBIYXQKSVJDOiBtaXpkZWJzawoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NjI4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBOb3YgMjcgMjA6Mjg6MDkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjI4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDYwNTc5MTc4NkEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAyNyBOb3YgMjAxNyAyMDoyODowOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQxMTYxIGludm9rZWQgYnkgdWlkIDUwMCk7IDI3IE5vdiAyMDE3IDIwOjI4OjA5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0MTA3OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBOb3YgMjAxNyAyMDoyODowOSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQxMDY3IGludm9rZWQgYnkgdWlkIDk5KTsgMjcgTm92IDIwMTcgMjA6Mjg6MDggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMjcgTm92IDIwMTcgMjA6Mjg6MDggKzAwMDAKUmVjZWl2ZWQ6IGZyb20gWzE5Mi4xNjguMS4xM10gKHA1NDhGOUM0RS5kaXAwLnQtaXBjb25uZWN0LmRlIFs4NC4xNDMuMTU2Ljc4XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEM0QUQ4MUEwMDU0OwoJTW9uLCAyNyBOb3YgMjAxNyAyMDoyODowNyArMDAwMCAoVVRDKQpTdWJqZWN0OiBSZTogYmVhbSBsZWF2aW5nIG1hdmVuLCBhbnl0aGluZyBkb2FibGU/ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwKIFJvbWFpbiBNYW5uaS1CdWNhdSA8cm1hbm5pYnVjYXVAZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8Q0FDTEU9N05reWlnWXhtaEp5VEM5dTdSM3RaWGhFb1BPQXBkOGpPakd1VUQyMVlxX3hnQG1haWwuZ21haWwuY29tPgogPDljZWI0Y2E0LWY5ODQtYmJhMy0yNWFlLTlhZTBjZTQ1NGViNUBhcGFjaGUub3JnPgogPENBQ0xFPTdQNHhfM2VHUlJ3U3owOG9BOXlBZTVUdXpCamVPXzNOWnZ6LXFvMHBtV2FKQUBtYWlsLmdtYWlsLmNvbT4KRnJvbTogTWljaGFlbCBPc2lwb3YgPG1pY2hhZWxvQGFwYWNoZS5vcmc+Ck1lc3NhZ2UtSUQ6IDxiMzQzNThiNi03NjVkLWE4NzgtZWRhMS1iMGRhNjliZmNhZjJAYXBhY2hlLm9yZz4KRGF0ZTogTW9uLCAyNyBOb3YgMjAxNyAyMToyODowNCArMDEwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXT1c2NDsgcnY6NTIuMCkgR2Vja28vMjAxMDAxMDEKIFRodW5kZXJiaXJkLzUyLjQuMApNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPENBQ0xFPTdQNHhfM2VHUlJ3U3owOG9BOXlBZTVUdXpCamVPXzNOWnZ6LXFvMHBtV2FKQUBtYWlsLmdtYWlsLmNvbT4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLVVTCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKCkkgcmVhbGx5IHdvdWxkIGxpa2UgdG8gc2VlIHRoZSBzYW1lIG51bWJlcnMgd2l0aCBUYWthcmkgU21hcnQgQnVpbGRlciAKYW5kIHRocmVhZC1zYWZlIGxvY2FsIHJlcG8gbW9kdWxlLgoKQW0gMjAxNy0xMS0yNyB1bSAyMDo1MiBzY2hyaWViIFJvbWFpbiBNYW5uaS1CdWNhdToKPiBFdmVuIGRvaW5nIGl0IHRoZSBkaWZmZXJlbmNlIGlzIHNpZ25pZmljYXRpdmUuIFRoZSBwYXJhbGxlbGlzbSBhbmQKPiBncmFwaCBjb21wdXRhdGlvbiAobGlua2VkIHRvIHRoZSBsb2NhbCByZXBvIHRocmVhZCBzYWZldHkpIGlzIHRoZSBtYWluCj4gZHJhd2JhY2sgb2YgbWF2ZW4gaXQgc2VlbXMuCj4gCj4gUm9tYWluIE1hbm5pLUJ1Y2F1Cj4gQHJtYW5uaWJ1Y2F1IHwgIEJsb2cgfCBPbGQgQmxvZyB8IEdpdGh1YiB8IExpbmtlZEluCj4gCj4gCj4gMjAxNy0xMS0yNyAyMDo0NyBHTVQrMDE6MDAgTWljaGFlbCBPc2lwb3YgPG1pY2hhZWxvQGFwYWNoZS5vcmc+Ogo+PiBBbSAyMDE3LTExLTI3IHVtIDIwOjI0IHNjaHJpZWIgUm9tYWluIE1hbm5pLUJ1Y2F1Ogo+Pj4KPj4+IEhpIGd1eXMsCj4+Pgo+Pj4gYW55dGhpbmcgZG9hYmxlIG9uIG1hdmVuIHNpZGUgKGVpdGhlciB0dW5pbmcgb3IgY29kZSBjaGFuZ2VzKSB0byBiZSBhcwo+Pj4gZ29vZCBhcyBncmFkbGUgb24gYmVhbSBwcm9qZWN0LiBUaGUgcHJvamVjdCBpcyBnb2luZCB0byBsZWF2ZSBtYXZlbiBhcwo+Pj4gYnVpbGQgdG9vbCAoWzFdKSBhbmQgSSB0aGluayBpdCBpcyB2ZXJ5IGJhZCBmb3IgMS4gdGhlIGNvbW11bml0eSBhbmQKPj4+IDIuIEFTRiBhcyBhbiBlY29zeXN0ZW0uCj4+Pgo+Pj4gWzFdCj4+PiBodHRwczovL2xpc3RzLmFwYWNoZS5vcmcvdGhyZWFkLmh0bWwvNmQ2ZjdmZmM2NjYyMmRiMWRkNDU5ZTE3MDRjM2E1ZDhhNGJjMjljMmQ5YzBiNjAzNTRmZDNiNmFAJTNDZGV2LmJlYW0uYXBhY2hlLm9yZyUzRQo+Pgo+Pgo+PiBEaWQgdGhleSBkaXNhYmxlIHRoZSBidWlsZCBkYWVtb24/IElmIG5vdCwgaXQgaXMgbm90IGEgZmFpciBjb21wYXJzaW9uLgo+Pgo+PiBNaWNoYWVsCj4gCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gCj4gCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzODUyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBTZXAgIDIgMDk6NTc6MTAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzODUyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDA5MkEwMUE4QzAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgMiBTZXAgMjAxNyAwOTo1NzoxMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDIzNDE1IGludm9rZWQgYnkgdWlkIDUwMCk7IDIgU2VwIDIwMTcgMDk6NTc6MDQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIzMjk4IGludm9rZWQgYnkgdWlkIDUwMCk7IDIgU2VwIDIwMTcgMDk6NTc6MDMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMzI4MyBpbnZva2VkIGJ5IHVpZCA5OSk7IDIgU2VwIDIwMTcgMDk6NTc6MDMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDAyIFNlcCAyMDE3IDA5OjU3OjAzICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNjIwRDFEMUQ1MjsKCVNhdCwgIDIgU2VwIDIwMTcgMDk6NTc6MDIgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMy4wMDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTMuMDAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTE9XPS0wLjcsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgNVZGS2NnaEpxZFdqOyBTYXQsICAyIFNlcCAyMDE3IDA5OjU2OjU3ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1vdXQuZ214Lm5ldCAobW91dC5nbXgubmV0IFsyMTIuMjI3LjE1LjE4XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDlDNjMwNjBGMDU7CglTYXQsICAyIFNlcCAyMDE3IDA5OjU2OjU2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIEthcmwtSGVpbnpzLU1hY0Jvb2stUHJvLmxvY2FsIChbMjE3LjI0Ny4xNi4yMDhdKSBieQogbWFpbC5nbXguY29tIChtcmdteDAwMSBbMjEyLjIyNy4xNy4xOTBdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTHcyU2otMWRSRnZPMUx1WC0wMTdvRHA7IFNhdCwgMDIgU2VwIDIwMTcgMTE6NTY6NTUgKzAyMDAKUmVwbHktVG86IGluZm9Ac29lYmVzLmRlClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gSkRlcHMgUGx1Z2luIHZlcnNpb24gMy4xLjAKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LAogUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8b3AueTVyNXI5bThrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkZyb206IEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPgpNZXNzYWdlLUlEOiA8YjRhYzQzZTItYTgyNC04NDY2LWIzYTYtODlkNjAyNTNmNzNkQGdteC5kZT4KRGF0ZTogU2F0LCAyIFNlcCAyMDE3IDExOjU2OjU4ICswMjAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwLjExOyBydjo1Mi4wKQogR2Vja28vMjAxMDAxMDEgVGh1bmRlcmJpcmQvNTIuMi4xCk1JTUUtVmVyc2lvbjogMS4wCkluLVJlcGx5LVRvOiA8b3AueTVyNXI5bThrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtODsgZm9ybWF0PWZsb3dlZApDb250ZW50LUxhbmd1YWdlOiBlbi1HQgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0ClgtUHJvdmFncy1JRDogVjAzOkswOmRjRnlTbW5DelhsRStoUEw2dmF0US9FMU1pQW5DQWFHUUJ3bE5nMWFjTHA4WmNwSEZCUQogdnNabFBQYjhDNEVaRngzY3B5N1pwRHZBaTFIR2lDOEV2QlppSHNUT2RudFlzckxZSFRYeUNmMTEvL2MrcnVUU3V5NENZcmcKIEVycHlDc21rNGtnOVVTZGl3by9Rd0c4UERITnFyMXorZEtic2FGbEZ1Nkh2U3BoOHJDb0FrOFdFQ2lpaUxRRGUyZGFNbGxPCiByaHZCc1l1cVFxNG5VdWF2MFIzT2c9PQpYLVVJLU91dC1GaWx0ZXJyZXN1bHRzOiBub3RqdW5rOjE7VjAxOkswOjVYdGYrcklmQUhJPTo0cDN4clZrSVduUExLUG1yaUhOVFlVCiBLQXlycFZxK2Y2T3RxNkNtZGE2UDFhaDBLN2w0elJyT1ZqNTM5NXMwbGZSVHJCN3dkR0o5bUlIQkdONzNzcFNVNEtYSzVvek5KCiBoVVRNb3VIMy9nd1MvYzRqK0pYTnpTNkh5VXZ1cGkvK2RGRlQyYW91OHFzcS9zdjhjT0dzeEg4SGxuNjdhOVV6TDlyZHpzMGdECiBHOXJoOVU1WTlKSld6b1MvYXJVaUt0WFJ2UEZGWTVJekRhOCtBRmpqcHZxem96ZG94bjBoV1hnOWFYSjYyalErMC9UZk5XTm9JCiBiUm4rRmxQK3luS3J6ZmVaQ24yLzAxV29KVXlBd24yRFdnK2ttK05udGwyWndjTkNqNFEwTUpLWFJiVUtSWVV3QnBzT2o3ZlNECiBldkZUOXg0VXdWRWZWa3NpanUrQnZKTE1QRzZRUU0zbk1lYklnSjl3aDdpSjhiejBjK3VjanE3REp1ZytUdGpoSEo0MkJUZXFvCiBnUU5PbEd4dzdhQmdWVGh5a3dtYWRHWm9XN1hkUERVSFlxMjBPNE9QNmFyS2UyRDkyd1hzQ1JuWERWVDhpS0pHSjJqRnduUnd5CiAzWCttZk00NXR3bWljZnp3WWhNUTREMHFMOFNSa1pKb05IOGJOQk1LLzdMYVdZU0VQcFpuNFNMS1J3R2R5QWhTNjJrb0RXeW92CiBScjBSUDh5bnBWaEJKc0F1TWM4TVBqbmF3elUzVncwTTZCQjFuR0xLN2kwYXBOVVhZaVJLSEJTKzYyM3ByT0t1SXoxQ2FUWTk5CiBCRTlzblY3RDZnOHZiR3NjTUFEMFJEZDFPekp0OUVtL2x5d0M3K1MzaWtvenpPVFA0dUdrejhTQ3JNWGhaTXpFREpEbmxLSU5jCiBKMW50ak9yVlM1SUdHVGllNlNFOFE4WmRyaHdmcU5Edld5cGh1d2dldW1ud1NySTdaRm1taW9EdWhyb1RySzV5M01XbTBnS0RuCiBOcmZZOFNZdUUwb3BhWjNFcENsRUMzTTFPRjlBdnoveVVNNlM1dkRnQlpzN2Uxd0NlY1RjK0NjWFAra1d0VkpMRGtKMU5UUVNTCiBLODRzdnIwa2lkN0x6SzA5eERycnhBL1J0ZHpNWmlQSzZBSkg4cDlCa0RpVXMrN3ZwND0KCkhpLAoKSSBoYXZlIHRlc3RlZCB0aGUgZm9sbG93aW5nIGNvbWJpbmF0aW9ucyB2aWEgIm12biAtUHJ1bi1pdHMgY2xlYW4gdmVyaWZ5IjoKCmpkazEuNy4wXzc5LmpkawogICBhcGFjaGUtbWF2ZW4tMy4wLjUKICAgYXBhY2hlLW1hdmVuLTMuMS4xCiAgIGFwYWNoZS1tYXZlbi0zLjIuNQogICBhcGFjaGUtbWF2ZW4tMy4zLjEKICAgYXBhY2hlLW1hdmVuLTMuMy45CiAgIGFwYWNoZS1tYXZlbi0zLjUuMApqZGsxLjguMF8xMzEuamRrCiAgIGFwYWNoZS1tYXZlbi0zLjAuNQogICBhcGFjaGUtbWF2ZW4tMy4xLjEKICAgYXBhY2hlLW1hdmVuLTMuMi41CiAgIGFwYWNoZS1tYXZlbi0zLjMuMQogICBhcGFjaGUtbWF2ZW4tMy4zLjkKICAgYXBhY2hlLW1hdmVuLTMuNS4wCmpkazEuOC4wXzE0NC5qZGsKICAgYXBhY2hlLW1hdmVuLTMuMC41CiAgIGFwYWNoZS1tYXZlbi0zLjEuMQogICBhcGFjaGUtbWF2ZW4tMy4yLjUKICAgYXBhY2hlLW1hdmVuLTMuMy4xCiAgIGFwYWNoZS1tYXZlbi0zLjMuOQogICBhcGFjaGUtbWF2ZW4tMy41LjAKamRrMS45LjBfZWErMTgxLmpkawogICBhcGFjaGUtbWF2ZW4tMy4wLjUKICAgYXBhY2hlLW1hdmVuLTMuMS4xCiAgIGFwYWNoZS1tYXZlbi0zLjIuNQogICBhcGFjaGUtbWF2ZW4tMy4zLjEKICAgYXBhY2hlLW1hdmVuLTMuMy45CiAgIGFwYWNoZS1tYXZlbi0zLjUuMAoKZXhjZXB0IHRoaXMgaW4gSkRLIDkgKHdoaWNoIGlzIGFzIGV4cGVjdGVkKToKCltJTkZPXSAtLS0gbWF2ZW4taW52b2tlci1wbHVnaW46Mi4wLjA6aW50ZWdyYXRpb24tdGVzdCAKKGludGVncmF0aW9uLXRlc3QpIEAgbWF2ZW4tamRlcHMtcGx1Z2luIC0tLQpbSU5GT10gQnVpbGRpbmc6IGJhc2ljL3BvbS54bWwKW0lORk9dIC4uU1VDQ0VTUyAoNC43IHMpCltJTkZPXSBCdWlsZGluZzogZGVwZW5kZW5jaWVzVG9BbmFseXplL3BvbS54bWwKW0lORk9dIHJ1biBzY3JpcHQgdmVyaWZ5Lmdyb292eQpXQVJOSU5HOiBBbiBpbGxlZ2FsIHJlZmxlY3RpdmUgYWNjZXNzIG9wZXJhdGlvbiBoYXMgb2NjdXJyZWQKV0FSTklORzogSWxsZWdhbCByZWZsZWN0aXZlIGFjY2VzcyBieSAKb3JnLmNvZGVoYXVzLmdyb292eS5yZWZsZWN0aW9uLkNhY2hlZENsYXNzJDMkMSAKKGZpbGU6L1VzZXJzL2thbWEvLm0yL3JlcG9zaXRvcnkvb3JnL2NvZGVoYXVzL2dyb292eS9ncm9vdnkvMi4wLjEvZ3Jvb3Z5LTIuMC4xLmphcikgCnRvIG1ldGhvZCBqYXZhLmxhbmcuT2JqZWN0LmZpbmFsaXplKCkKV0FSTklORzogUGxlYXNlIGNvbnNpZGVyIHJlcG9ydGluZyB0aGlzIHRvIHRoZSBtYWludGFpbmVycyBvZiAKb3JnLmNvZGVoYXVzLmdyb292eS5yZWZsZWN0aW9uLkNhY2hlZENsYXNzJDMkMQpXQVJOSU5HOiBVc2UgLS1pbGxlZ2FsLWFjY2Vzcz13YXJuIHRvIGVuYWJsZSB3YXJuaW5ncyBvZiBmdXJ0aGVyIGlsbGVnYWwgCnJlZmxlY3RpdmUgYWNjZXNzIG9wZXJhdGlvbnMKV0FSTklORzogQWxsIGlsbGVnYWwgYWNjZXNzIG9wZXJhdGlvbnMgd2lsbCBiZSBkZW5pZWQgaW4gYSBmdXR1cmUgcmVsZWFzZQpbSU5GT10gLi5TVUNDRVNTICg0LjUgcykKW0lORk9dIEJ1aWxkaW5nOiB1bnN1cHBvcnRlZC1hcGlfbWFpbi9wb20ueG1sCltJTkZPXSAuLlNLSVBQRUQgZHVlIHRvIEpSRSB2ZXJzaW9uCltJTkZPXSBCdWlsZGluZzogdW5zdXBwb3J0ZWQtYXBpX3Rlc3QvcG9tLnhtbApbSU5GT10gLi5TS0lQUEVEIGR1ZSB0byBKUkUgdmVyc2lvbgpbSU5GT10KCnNvICsxIGZyb20gbWUuLi4KCgpLaW5kIHJlZ2FyZHMKS2FybCBIZWlueiBNYXJiYWlzZQoKT24gMzAvMDgvMTcgMTI6NTEsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+IEhpLAo+IAo+IFdlIHNvbHZlZCA0IGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamVjdElkPTEyMzE5MjIzJnZlcnNpb249MTIzNDE0MTUmc3R5bGVOYW1lPVRleHQgCj4gCj4gCj4gVGhlcmUgaXMgc3RpbGwgb25lIGlzc3VlIGxlZnQgaW4gSklSQToKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9cHJvamVjdCUyMCUzRCUyMDEyMzE5MjIzJTIwQU5EJTIwc3RhdHVzJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDIAo+IAo+IAo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzU4Lwo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NlcnZpY2UvbG9jYWwvcmVwb3NpdG9yaWVzL21hdmVuLTEzNTgvY29udGVudC9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4tamRlcHMtcGx1Z2luLzMuMS4wL21hdmVuLWpkZXBzLXBsdWdpbi0zLjEuMC1zb3VyY2UtcmVsZWFzZS56aXAgCj4gCj4gCj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gbWF2ZW4tamRlcHMtcGx1Z2luLTMuMS4wLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOiAKPiAyNWE1Njg2MTJiNjNkMjVhNzZlNTU0ZTYyMjYyNGJmZmMxZjJlZWNlCj4gCj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWpkZXBzLXBsdWdpbi1MQVRFU1QvCj4gCj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPiAKPiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+IAo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MTIyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBPY3QgIDEgMTQ6MTg6MDEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTIyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEYxQjlERjM2NwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sICAxIE9jdCAyMDE3IDE0OjE4OjAxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDk1MTYgaW52b2tlZCBieSB1aWQgNTAwKTsgMSBPY3QgMjAxNyAxNDoxODowMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDk0MzEgaW52b2tlZCBieSB1aWQgNTAwKTsgMSBPY3QgMjAxNyAxNDoxODowMSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ5NDIwIGludm9rZWQgYnkgdWlkIDk5KTsgMSBPY3QgMjAxNyAxNDoxODowMSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMDEgT2N0IDIwMTcgMTQ6MTg6MDEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBDMjhFMDE4MDdGRAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgIDEgT2N0IDIwMTcgMTQ6MTg6MDAgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4yMDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMjAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTE9XPS0wLjcsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuMTBdKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIHc4TFNMdWtsZUJ2cyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVN1biwgIDEgT2N0IDIwMTcgMTQ6MTc6NTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbW91dC5nbXgubmV0IChtb3V0LmdteC5uZXQgWzIxMi4yMjcuMTUuMThdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNUQyMkM2MTI1QwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgIDEgT2N0IDIwMTcgMTQ6MTc6NTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gS2FybC1IZWluenMtTWFjQm9vay1Qcm8ubG9jYWwgKFs5Mi4yMDQuNC4yNDFdKSBieSBtYWlsLmdteC5jb20KIChtcmdteDAwMyBbMjEyLjIyNy4xNy4xOTBdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTVhJY1gtMWRtaWl2MnJKTi0wMFdIZHE7IFN1biwgMDEgT2N0IDIwMTcgMTY6MTc6NTYgKzAyMDAKUmVwbHktVG86IGluZm9Ac29lYmVzLmRlClN1YmplY3Q6IFJlOiBNYXZlbiBTdXJlZmlyZSBhbmQgSlVuaXQgNQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sCiBFbnJpY28gT2xpdmVsbGkgPGVvbGl2ZWxsaUBnbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxGRTEwN0I0RC1EN0I0LTQ3MUItODcwOS1CMTk3MTcxOEQxNDBAYXBhY2hlLm9yZz4KIDxDQUNjZWZnZmZkWkdvN01EM21lenowckctTERiVkJHcVpmWWlPMU43bXB0TGVyckRxZlFAbWFpbC5nbWFpbC5jb20+CkZyb206IEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPgpNZXNzYWdlLUlEOiA8YjhjYTc2MWUtMzE1Yi0wMjI2LTM4NTctZjBkMzkyYTc5ZGIwQGdteC5kZT4KRGF0ZTogU3VuLCAxIE9jdCAyMDE3IDE2OjE3OjU2ICswMjAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwLjExOyBydjo1Mi4wKQogR2Vja28vMjAxMDAxMDEgVGh1bmRlcmJpcmQvNTIuMy4wCk1JTUUtVmVyc2lvbjogMS4wCkluLVJlcGx5LVRvOiA8Q0FDY2VmZ2ZmZFpHbzdNRDNtZXp6MHJHLUxEYlZCR3FaZllpTzFON21wdExlcnJEcWZRQG1haWwuZ21haWwuY29tPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDppQlZQSnFNdGY0Y3J3MHBJZUlmNVp5dSsvSU5HazBPMzZGL05oWmI1djlsZUhkQUs5UisKIDVPalo1WHM5NWlxOUs2ZWdjRTYzbk8vMW9yenVkU202cW5mcW01VFl0azhHY1ZMOEdoK25EMmxHYXpJVXhzRHp0QWtrd3VECiBibXJVckh1SUV3ODBudTJySEIxZ1dWRkF0Y2NwNXVwVmVSd001T0N3R2VaTHlrT3NBSDhZbm9oUzhQVmZMRTBnTlhMb0g3cQogd2oyOFkxMkh5R0FMNDZQMklERURBPT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDpwYjB3OEEvS3h0ST06cUc0OUN6V0FkVjdRK0VWVXJvQ3lKQQogK2FNaUkrbHBkNnh5K0M1c1JRNDR4eXNnWi9UNEw2YTQzdXdzcmM3aW1rOVd6M2FlZllHTExHR0kvNytkYVU0Q3JYTXkreWNFLwogY1dFNEJlYk05dlpCUW5ybUpxelFPajJ0eU5kaE9ORkxxU0FaOTFXQVViRjM4b1hCQUJjTGtrN2E5R2xzckVKUEFjMEJwRDdFRgogK3dRL3dDUG5xRXRhcWRJdkpoOStUdFlHcjlFakpLQlMweENya2lMcEhFdXlMRUM5dG9wMDlETzREeVdqYUhqS0dtSmc1TEdtVgogQTRNQi96bCsvZDNWc0VBVGp3TTdJem94bjRPb3RmMUg5SitiOHNRSGtoTDRINjRPamhReVkvY2RJSXVjTGZERmFTNkVMLzhZegogWFB6QlAzUkVmTVkzSkVOc0lpVU92VFdiaDdNUnNkTVBadDc5a0UwbXBkQ2JQMnV0Y05BRjVyaU1ycmxHNFhVMkpjY3E2Q29PaQogWkZzdDZmM1pGcXoxOTUzT0ErTXJGVHZFSEV4R0o4aW44SXBsVkdPd3loMEp0NStQZUFQSEk0YUV6R1ZsK1UwdnYwRllBYTE3VwogeGFlTFdER09IK1RBVlk1NFFGbkJkSUVGVE9RbUVvVk9OY0J2QmRCQVhJd3ZFUWRTeVVsVjZHQm9sc24vYmg3NGhQOW5BbzlsRgogcThrQTZJNXFBdmtwWnFzeVRGSW8wU3lCSVN2TC9KWkRMOWwyQm82YXZsSzRLYVBwL0xhM0dXU1I3MWQ0OFVHa2k0ZWh4K2VsQQogbkFwQldLOXYwNFYxdnZqKytLL3I1eVpYYk5GVi9vbmNvSDJvcXZRT0xMSUZVUHRVVW4xVUNSa1ZONmNPbmRkQmdpakV4bEdMSgogV2hzc0NFSEJwdTRaSExoeGRpNlFWZlRLV2RzNXFMcVUweENHWlFwOHF5TXVCUjZUN3R0aE9JSHhkNXVJNDFicVpYUHhIcXJ0Swoga2dPRXFSV1ZPWWt4S3BDYUJpYldyVXIweWU3Yy8vbnlWY1FLbElxeDd2ZGlNQTMxdkIxTG80Snk4RHFTd0doZEhBdmJ0bmlMZwogdXpLM0MvUXRPZXIrR3o5bHlyT0lOVzBWMWdvTXViMzFsWHQrZEUvdWtLSFU0ZkFtSHM9CgpIaSBFbnJpY28sCgpPbiAwMS8xMC8xNyAxNjowMCwgRW5yaWNvIE9saXZlbGxpIHdyb3RlOgo+IEJlbmVkaWt0LAo+IGRpZCB5b3UgdHJ5IHRvIHVwZGF0ZSBhbGwgb2YgeW91ciBtYXZlbiBwbHVnaW5zIHRvIGxhdGVzdCB2ZXJzaW9uPwo+IENhbiB5b3Ugc2hhcmUgc29tZSBzdGFja3RyYWNlPyBUaGlzIHdpbGwgZ2l2ZSBhIGZpcnN0IGhpbnQgd2l0aG91dCBoYXZpbmcKPiB0byBidWlsZCBqVURESQoKVGhpcyBpcyB0aGUgd3JvbmcgbWFpbGluZyBsaXN0Li4uVXNlcnMgbGlzdCB3YXMgdGhlIHN1YmplY3QgYWJvdXQgalVEREkgCjstKS4uCgpOb3QgcmVsYXRlZCB0byBTdXJlZmlyZSBhbmQgSlVuaXQgNSAuLi4KCktpbmQgcmVnYXJkcwpLYXJsIEhlaW56IE1hcmJhaXNlCj4gQ2hlZXJzCj4gCj4gRW5yaWNvCj4gCj4gSWwgc2FiIDMwIHNldCAyMDE3LCAxMDozNCBCZW5lZGlrdCBSaXR0ZXIgPGJyaXR0ZXJAYXBhY2hlLm9yZz4gaGEgc2NyaXR0bzoKPiAKPj4gSGVsbG8sCj4+Cj4+IGZvciBvdmVyIGEgeWVhciBub3cgSeKAmW0gdHJ5aW5nIHRvIGhlbHAgZ2V0dGluZyBKVW5pdCA1IHN1cHBvcnQgaW50byBNYXZlbgo+PiBTdXJlZmlyZS4gVGhpcyBoYXMgYmVlbiBoYXJkIHNpbmNlIFRpYm9yIHNlZW1zIHRvIGJlIHRoZSBvbmx5IG9uZQo+PiBtYWludGFpbmluZyBNYXZlbiBTdXJlZmlyZSBhbmQgaGUgaGFkIHRvIGNvbWUgd2l0aCBvdGhlciB0aGluZ3MuCj4+Cj4+IEZvciB0aGlzIHJlYXNvbiBJ4oCZZCBsaWtlIHRvIGFzayBvdGhlciBNYXZlbiBtYWludGFpbmVycyB0byBoZWxwIHdpdGggdGhlCj4+IEpVbml0IDUgc3VwcG9ydC4gSeKAmW0gaGFwcHkgdG8gZG8gdGhlIHdvcmssIGJ1dCBJ4oCZbSBjb25zdGFudGx5IGJsb2NrZWQgYnkKPj4gb2JzY3VyZSBidWlsZCBmYWlsdXJlcyB3aGljaCBJ4oCZbSB1bmFibGUgdG8gcmVzb2x2ZSBteXNlbGYgb3IgYnkgbGFjayBvZgo+PiBjb2RlIHJldmlldyB1bmQgbWVyZ2Ugb2YgY2hhbmdlcy4KPj4KPj4gLSBXb3JrIG9uIEpVbml0NSBzdXBwb3J0IGlzIGN1cnJlbnRseSBkb25lIGluIHRoZSBqdW5pdDUgYnJhbmNoLgo+PiAtIEkgaGF2ZSBkcmFmdGVkIGEgUHJvdmlkZXIgTG9va3VwIGltcGxlbWVudGF0aW9uIGluIHRoZSBqdW5pdDUgYnJhbmNoLAo+PiBidXQgSSBkb27igJl0IGtub3cgd2hldGhlciBpdCB3b3JrcyBiZWNhdXNlIEkgY2Fu4oCZdCBnZXQgdGhlIGludGVncmF0aW9uIHRlc3RzCj4+IHJ1bm5pbmcKPj4gLSBUaGVyZSBpcyBhbiBvcGVuIFBSIHRvIG1lcmdlIHRoZSBtYXN0ZXIgYnJhbmNoIGJhY2sgaW50byBqdW5pdDUgYnJhbmNoLAo+PiBidXQgaXQgaGFzIGJ1aWxkIGZhaWx1cmVzIEkgZG9u4oCZdCB1bmRlcnN0YW5kIFsxXQo+Pgo+PiBQbGVhc2UgaGVscCEKPj4gQ2hlZXJzLAo+PiBCZW5lZGlrdAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MDUxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBTZXAgMTcgMTA6NTU6MDMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDUxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDAzQTIzMTk3OUEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxNyBTZXAgMjAxNyAxMDo1NTowMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDIwNDc0IGludm9rZWQgYnkgdWlkIDUwMCk7IDE3IFNlcCAyMDE3IDEwOjU1OjAyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMDM5NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNyBTZXAgMjAxNyAxMDo1NTowMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIwMzg1IGludm9rZWQgYnkgdWlkIDk5KTsgMTcgU2VwIDIwMTcgMTA6NTU6MDIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDE3IFNlcCAyMDE3IDEwOjU1OjAyICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQkY5MDYxQTBEQTcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDE3IFNlcCAyMDE3IDEwOjU1OjAxICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTIuNTAxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0yLjUwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LAoJUkNWRF9JTl9NU1BJS0VfSDI9LTIuOCwgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBteWcxamdvN2JhaDAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglTdW4sIDE3IFNlcCAyMDE3IDEwOjU1OjAxICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1vdXQuZ214Lm5ldCAobW91dC5nbXgubmV0IFsyMTIuMjI3LjE3LjIyXSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDdGN0E5NUYxQjMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDE3IFNlcCAyMDE3IDEwOjU1OjAwICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIEthcmwtSGVpbnpzLU1hY0Jvb2stUHJvLmxvY2FsIChbMjE3LjI0Ny40MC4xNTBdKSBieQogbWFpbC5nbXguY29tIChtcmdteDEwMyBbMjEyLjIyNy4xNy4xNjhdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTURSMjEtMWRkS2tvMUxPWC0wMEdxdHAgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTcgU2VwIDIwMTcKIDEyOjU0OjU5ICswMjAwClJlcGx5LVRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBbQ0FOQ0VMRURdIFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBKTW9kIFBsdWdpbiB2ZXJzaW9uCiAzLjAuMC1hbHBoYS0xIChGaXJzdCBQdWJsaWMgUmVsZWFzZSkgVGFrZSAyCkZyb206IEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPgpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KUmVmZXJlbmNlczogPDdmNjI3NzYxLTI2MmYtZWQwZC0xNDMyLWUyZjMwNWFhYmM3YUBnbXguZGU+CiA8MzM2NDkyMmEtYjRmZi04MTQyLTBmNzktMDZlZTM4ZDQyZTdlQGdteC5kZT4KTWVzc2FnZS1JRDogPGMyMWZkNGU5LTUwYzgtMjVlNi1iOTE4LWM3NGZlZTM1MWE5MUBnbXguZGU+CkRhdGU6IFN1biwgMTcgU2VwIDIwMTcgMTI6NTQ6NTggKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi4yLjEKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDwzMzY0OTIyYS1iNGZmLTgxNDItMGY3OS0wNmVlMzhkNDJlN2VAZ214LmRlPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDpYTlVOYjN1M1NCSHBwMUhtQ3dnVURhTHdTL2RQR3UvS2U3VUxsY3RDQXk5dHRDNU1pdHYKIHJ2b2k5QVZ5TTJyTW1tUVdibHVEVEowaG1qcGx4T0NJL2E3dFYvNDBzVmJvV25LNjVMM2lpMklycGc1cUIyaG1Tcll4SXhpCiBUemh4NWVnZlVTOE0xN2ZoUGVYQS8rUGdXTkREL1Zwb3FkcG5KSXRBUUxTcURicFNta0J3NldIWHRFMEYrNTNuTFRVWno5bAogK3pRcXJmYjBySWRac2loamw1Qi9RPT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDoxRlhKdnUzTHdqQT06eDZsbUtkVEQvaUIrL1AzZWNsRTBINQogb2VtUzZ0Y1pQSG45ZmFibjdWZi9vbzU5Wmx0ZzBtOXEzTTllMzBXMUZIOU5pNXdNcllaUVBMZFZMTGhRL2Jsb3RkdWFkRThQMAogQVc0WEZyUmlJTnJrSGFjeVpKd3l3bmlJcmNlYTNlZzRuTkR1aUpEMllZNkFiK21xNHZvcFE0QUljNlNrZXl4UmFxSGVUSmRGaQogdm1peVVGVGFNcDFodUMvNEQxOXkxS3ZPaHplUVFwa0x2VExuVGp1cGtKQTlZR01PZ25NTXFEYkw3TmFTRlRYdVMwTHhLekVxQwogQk80T2paTVRibDFxeUFwNUxiRCtYUWhSWnRsYjg4TDZ4TTJNWXpGSVdwTFljRytPQVpkNDd0cGJVVEJ2QTFXN0p1emkvTGxUVwogMk5zTmV0dTBGZ0F4R1Y2VllJc0FINTloaVE2Q05JbkJBTzV4a0tpakFocVFLQXFmNng4RUtBT29nRTVpckUxWGJPN05halZrSwogUUZjQkFFVDBlMlU1ZHg4NW9YV05RKzgzN3ZtYlB3cTBqYnlsRTN0Z1F1ZFJvZ2d4a1BGdFZlZlhzd2MxaGNsdEhqamJSdjU0SgogMS91dm1FQW5uODIxREJDbzQ4Y0NWV081K0hSOGhvMlpUQ0s3SEc0OHdERmpQdzhaWi90TElPUkEwckFreWdtN0pUdlpDdzBqVAogNlRkOXJPTE0zWFE5UXVKNE5YZW1kMFRTeFh6eHlYdmMybVhYYzY3aE81WlM2bzNYNjhhekNDQUVFUUhlMWUyNk9xWmh1ZHpHNQogUFVCbGRXd2xNeUlqQktyeHlsTnVQZ1c1TS8zbUNrbXhiMWw5am55UmZ4V3ZHUmQ3aVhseHhWZDdlUTVJS0JjczBGZk52Q3RZUQogOTFNQmVXOGZqb0d3UGV1OGVpd2R3KzlVQkZDTEcvU1VFNGg1WFZUdkh5TnBlUFlyNmFWcEJMeWxBUHZlSmVBYmN5aE4xVTJmTwogRGRBRWlQRGRIRXBkOFozeGRZYktIeVd4V21odUl1dzd1L0hKRHJSeCtoUEtScWFMaTlhYnNURDlRRno5OGhJc21SZVZRMHZrdAogaHVJZEh6UXF4YXR4a2dqU1ZWTDlNTjl5VW5WR2FPVGVGVW1lcXIveE9lSENHTTZGSlU9CgpJIGNhbmNlbCB0aGUgVk9URSBiYXNlZCBvbiB0aGUgaXNzdWVzIGZvdW5kLgoKS2luZCByZWdhcmRzCkthcmwgSGVpbnogTWFyYmFpc2UKT24gMTYvMDkvMTcgMjE6MTIsIEthcmwgSGVpbnogTWFyYmFpc2Ugd3JvdGU6Cj4gSGksCj4gCj4gdGhpcyBpcyB0aGUgVk9URSBmb3IgdGhlIGZpcnN0IHB1YmxpYyByZWxlYXNlIGZvciBNYXZlbiBKTW9kIFBsdWdpbi4uLgo+IAo+IFdlIHNvbHZlZCAzIGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamVjdElkPTEyMzIxNDMzJnZlcnNpb249MTIzNDEzNjMgCj4gCj4gCj4gVGhlcmUgYXJlIGN1cnJlbnRseSBubyBpc3N1ZXMgbGVmdCBpbiBKSVJBLgo+IAo+IElmIHlvdSBoYXZlIGFueSBpc3N1ZSB0byByZXBvcnQgcGxlYXNlIG9wZW4gYW4gaXNzdWUgaW4gSklSQQo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9wcm9qZWN0cy9NSk1PRAo+IAo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY4Lwo+IAo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjgvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL21hdmVuLWptb2QtcGx1Z2luLzMuMC4wLWFscGhhLTEvbWF2ZW4tam1vZC1wbHVnaW4tMy4wLjAtYWxwaGEtMS1zb3VyY2UtcmVsZWFzZS56aXAgCj4gCj4gCj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gbWF2ZW4tam1vZC1wbHVnaW4tMy4wLjAtYWxwaGEtMS1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogCj4gM2JhNDdjYjMwYWY3NjViNmU2N2ZiZjE2Y2NlZTUwZGJkYWMyOTE0Mgo+IAo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1qbW9kLXBsdWdpbi1MQVRFU1QvCj4gCj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPiAKPiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+IAo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MDcwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBTZXAgMTkgMjE6MDY6MzggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDcwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDRBRTZBQ0NFMwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDE5IFNlcCAyMDE3IDIxOjA2OjM4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjk1NTEgaW52b2tlZCBieSB1aWQgNTAwKTsgMTkgU2VwIDIwMTcgMjE6MDY6MzcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI5NDczIGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IFNlcCAyMDE3IDIxOjA2OjM3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjk0NTMgaW52b2tlZCBieSB1aWQgOTkpOyAxOSBTZXAgMjAxNyAyMTowNjozNyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMTkgU2VwIDIwMTcgMjE6MDY6MzcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAxRjQyMTE4NDU1MjsKCVR1ZSwgMTkgU2VwIDIwMTcgMjE6MDY6MzcgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtNS4xMDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTUuMTAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtSQ1ZEX0lOX0ROU1dMX01FRD0tMi4zLCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJUlBfTUFUQ0hFU19SQ1ZEPS0wLjAwMSwgU1BGX1BBU1M9LTAuMDAxLCBVUklCTF9CTE9DS0VEPTAuMDAxXQoJYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgM0R3RmRqVlN2cWZxOyBUdWUsIDE5IFNlcCAyMDE3IDIxOjA2OjM2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIHVzZXJwMTA0MC5vcmFjbGUuY29tICh1c2VycDEwNDAub3JhY2xlLmNvbSBbMTU2LjE1MS4zMS44MV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBDODMxNDVGQ0Y0OwoJVHVlLCAxOSBTZXAgMjAxNyAyMTowNjozNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBhc2VydjAwMjEub3JhY2xlLmNvbSAoYXNlcnYwMDIxLm9yYWNsZS5jb20gWzE0MS4xNDYuMTI2LjIzM10pCglieSB1c2VycDEwNDAub3JhY2xlLmNvbSAoU2VudHJpb24tTVRBLTQuMy4yL1NlbnRyaW9uLU1UQS00LjMuMikgd2l0aCBFU01UUCBpZCB2OEpMNlh3bDAyODMwMAoJKHZlcnNpb249VExTdjEuMiBjaXBoZXI9RUNESEUtUlNBLUFFUzI1Ni1HQ00tU0hBMzg0IGJpdHM9MjU2IHZlcmlmeT1PSyk7CglUdWUsIDE5IFNlcCAyMDE3IDIxOjA2OjM0IEdNVApSZWNlaXZlZDogZnJvbSB1c2VydjAxMjEub3JhY2xlLmNvbSAodXNlcnYwMTIxLm9yYWNsZS5jb20gWzE1Ni4xNTEuMzEuNzJdKQoJYnkgYXNlcnYwMDIxLm9yYWNsZS5jb20gKDguMTQuNC84LjE0LjQpIHdpdGggRVNNVFAgaWQgdjhKTDZYRW0wMzA4MTMKCSh2ZXJzaW9uPVRMU3YxL1NTTHYzIGNpcGhlcj1ESEUtUlNBLUFFUzI1Ni1HQ00tU0hBMzg0IGJpdHM9MjU2IHZlcmlmeT1PSyk7CglUdWUsIDE5IFNlcCAyMDE3IDIxOjA2OjMzIEdNVApSZWNlaXZlZDogZnJvbSBhYmhtcDAwMTcub3JhY2xlLmNvbSAoYWJobXAwMDE3Lm9yYWNsZS5jb20gWzE0MS4xNDYuMTE2LjIzXSkKCWJ5IHVzZXJ2MDEyMS5vcmFjbGUuY29tICg4LjE0LjQvOC4xMy44KSB3aXRoIEVTTVRQIGlkIHY4Skw2WGlYMDI5MzY3OwoJVHVlLCAxOSBTZXAgMjAxNyAyMTowNjozMyBHTVQKTUlNRS1WZXJzaW9uOiAxLjAKTWVzc2FnZS1JRDogPGNmNmY1MzQxLWU4NDQtNDA2OS1iNjIzLWIxZjY3MWNkNTBiNEBkZWZhdWx0PgpEYXRlOiBUdWUsIDE5IFNlcCAyMDE3IDE0OjA2OjI3IC0wNzAwIChQRFQpCkZyb206IFJvYmVydCBQYXRyaWNrIDxyb2JlcnQucGF0cmlja0BvcmFjbGUuY29tPgpTZW5kZXI6IFJvYmVydCBQYXRyaWNrIDxyb2JlcnQucGF0cmlja0BvcmFjbGUuY29tPgpUbzogTWF2ZW4gVXNlcnMgTGlzdCA8dXNlcnNAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUkU6IFZlcnNpb24gSW5mb3JtYXRpb24gbmVlZGVkLgpSZWZlcmVuY2VzOiA8Q0FOZUhIUkRLN25DNjQrMDZ2eS1FQ3k1Y2tFQ1A3PXBpMjQyTFlicmNTaHVFQTByM0NRQG1haWwuZ21haWwuY29tPgpJbi1SZXBseS1UbzogPENBTmVISFJESzduQzY0KzA2dnktRUN5NWNrRUNQNz1waTI0MkxZYnJjU2h1RUEwcjNDUUBtYWlsLmdtYWlsLmNvbT4KWC1Qcmlvcml0eTogMwpYLU1haWxlcjogT3JhY2xlIEJlZWhpdmUgRXh0ZW5zaW9ucyBmb3IgT3V0bG9vayAyLjAuMS45LjEgICgxMDAzMjEwKSBbT0wKIDE2LjAuNDU4OC4wICh4ODYpXQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQpYLVNvdXJjZS1JUDogYXNlcnYwMDIxLm9yYWNsZS5jb20gWzE0MS4xNDYuMTI2LjIzM10KCltSZW1vdmluZyBNYXZlbiBkZXYgbGlzdCBmcm9tIHRoZSBlbWFpbCB0aHJlYWQgdmlhIEJDQ10KClRoaXMgcGx1Z2luIGlzIG5vdCBwYXJ0IG9mIHRoZSBNYXZlbiBjb3JlIHNvIHlvdSBjYW4gbGlrZWx5IHVzZSBhbnkgbW9kZXJuID0KdmVyc2lvbiBvZiB0aGUgcGx1Z2luIHdpdGggTWF2ZW4gMy4yLjUuICBBcyBmb3IgaG93IHRvIHVzZSBpdCwgcHJvYmFibHkgYmVzPQp0IHRvIHN0YXJ0IHdpdGggaHR0cDovL3d3dy5tb2pvaGF1cy5vcmcvY29iZXJ0dXJhLW1hdmVuLXBsdWdpbi8gYW5kIHRoZW4gYXM9CmsgbW9yZSBzcGVjaWZpYyBxdWVzdGlvbnMgaWYgc29tZXRoaW5nIGRvZXNuPUUyPTgwPTk5dCB3b3JrIHVzaW5nIHRoZSBwbHVnaT0KbiBwcm9qZWN0J3MgbWFpbGluZyBsaXN0ICh3aGljaCB5b3UgY2FuIGZpbmQgYXQgaHR0cDovL3d3dy5tb2pvaGF1cy5vcmcvY29iPQplcnR1cmEtbWF2ZW4tcGx1Z2luL21haWwtbGlzdHMuaHRtbCkuLi4KCgotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQpGcm9tOiBqYXlhbnQgc2FibGUgW21haWx0bzpqYXlhbnRzMjMyQGdtYWlsLmNvbV09MjAKU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDE5LCAyMDE3IDc6MDYgQU0KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnOyB1c2Vyc0BtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFZlcnNpb24gSW5mb3JtYXRpb24gbmVlZGVkLgoKSGV5IGZvbGtzLAoKSSdtIHVzaW5nIG1hdmVuIDMuMi41IGFuZCB3aXRoIHRoYXQgSSdtIHVzaW5nIGNvYmVydHVyYS1tYXZlbi1wbHVnaW4gdG8gZ2VuPQplcmF0ZSBjb2RlIGNvdmVyYWdlIHJlcG9ydC4KCkkgd2FudCB0byBrbm93IHdoaWNoIHZlcnNpb24gb2YgY29iZXJ0dXJhLW1hdmVuLXBsdWdpbiBpcyB1c2VkIGluIG1hdmVuIDMuMj0KLjU/PwpIb3cgY2FuIEkgZG8gdGhhdC4KClRoYW5rcy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyMzkzOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gU2VwIDEwIDIxOjE3OjMyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzkzOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyREQ1RTFBRkY0Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMjE6MTc6MzIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2NTYxOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBTZXAgMjAxNyAyMToxNzozMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjU1NTMgaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgU2VwIDIwMTcgMjE6MTc6MzEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2NTU0MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDEwIFNlcCAyMDE3IDIxOjE3OjMxIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDEwIFNlcCAyMDE3IDIxOjE3OjMxICswMDAwClJlY2VpdmVkOiBmcm9tIFsxOTIuMTY4LjEuMTNdIChwM0U5RDI3RjMuZGlwMC50LWlwY29ubmVjdC5kZSBbNjIuMTU3LjM5LjI0M10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCBDNkEyQzFBMDBBNQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMjE6MTc6MzAgKzAwMDAgKFVUQykKU3ViamVjdDogUmU6IFRlc3RzIGZvciBNTkctNjI3NSBmYWlsIG9uIEphdmEgMS43LjBfMTUxLWIwMQpUbzogTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KUmVmZXJlbmNlczogPGVmYjk3OTYwLWUxYjctNDIyNy01OTk4LWRlMmMyNDAxNWJiMEBhcGFjaGUub3JnPgogPENBK25Qbk13N29nNWdycUpaTnlZYzNKeU1KY0g9cmNoUy1HWVlEX2FNQXZlQWljSm9Vd0BtYWlsLmdtYWlsLmNvbT4KIDw3OGFmOTY1NS03NmJjLWY1NmMtMmViNS0xYWYyYzEyMGY0M2ZAYXBhY2hlLm9yZz4KIDxDQUt1VnpCUXE0WjBhTVhnNmRXOXZ4ZTN4QmYrZEhGMFMyTmZkSHZNUERGbmU4SHJZdXdAbWFpbC5nbWFpbC5jb20+CiA8MjRjYzM4ZTgtNWMzYS02NDAyLWNmZmYtODc2YjMyNGFhODcxQGdteC5kZT4KIDxDQUt1VnpCUndmdit6OUFDd2FzRGZfRm5xQjJvNXc1UjBzZkNHaU5Kd0RnUUs9QU9Ld0FAbWFpbC5nbWFpbC5jb20+CkZyb206IE1pY2hhZWwgT3NpcG92IDxtaWNoYWVsb0BhcGFjaGUub3JnPgpNZXNzYWdlLUlEOiA8Y2Y4ODFlNTktNjdjMC04NWU3LTFjNDQtODM3ZTUyMWVmNzc5QGFwYWNoZS5vcmc+CkRhdGU6IFN1biwgMTAgU2VwIDIwMTcgMjM6MTc6MjYgKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV09XNjQ7IHJ2OjUyLjApIEdlY2tvLzIwMTAwMTAxCiBUaHVuZGVyYmlyZC81Mi4zLjAKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDxDQUt1VnpCUndmdit6OUFDd2FzRGZfRm5xQjJvNXc1UjBzZkNHaU5Kd0RnUUs9QU9Ld0FAbWFpbC5nbWFpbC5jb20+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtODsgZm9ybWF0PWZsb3dlZApDb250ZW50LUxhbmd1YWdlOiBlbi1VUwpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CgpBbSAyMDE3LTA5LTEwIHVtIDIzOjE1IHNjaHJpZWIgVGlib3IgRGlnYW5hOgo+IFRoaXMgb25lIDEuNy4wXzgwIHdoaWNoIGlzIDd1ODA6Cj4gaHR0cDovL3d3dy5vcmFjbGUuY29tL3RlY2huZXR3b3JrL2phdmEvamF2YXNlL2Rvd25sb2Fkcy9qYXZhLWFyY2hpdmUtZG93bmxvYWRzLWphdmFzZTctNTIxMjYxLmh0bWwKCk5vIG9uZSB3aWxsIHNlcmlvdXNseSBydW4gdGhpcyBvbmUuIFNvIGlmIHdlIHNheSB0aGF0IG91ciBzdHVmZiBydW5zIG9mZiAKNyB0aGVuIHdlIGhhdmUgdG8gdGVzdCBPcGVuSkRLIGFuZCBadWx1IHRvby4KCk1pY2hhZWwKCj4gT24gU3VuLCBTZXAgMTAsIDIwMTcgYXQgMTE6MTIgUE0sIE1pY2hhZWwgT3NpcG92IDxtb3NpcG92QGdteC5kZT4gd3JvdGU6Cj4gCj4+IEFtIDIwMTctMDktMTAgdW0gMjM6MDcgc2NocmllYiBUaWJvciBEaWdhbmE6Cj4+Cj4+PiBNaWNoYWVsLCBub3cgdHJ5IHdpdGggT3JhY2xlIEphdmEgNy4KPj4+Cj4+Cj4+IExhc3QgcHVibGljIHZlcnNpb24gb3IgdXAtdG8tZGF0ZSBwYWlkIHZlcnNpb24/Cj4+Cj4+IE9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDExOjAyIFBNLCBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz4KPj4+IHdyb3RlOgo+Pj4KPj4+IEFtIDIwMTctMDktMTAgdW0gMjI6Mjcgc2NocmllYiBTdGVwaGVuIENvbm5vbGx5Ogo+Pj4+Cj4+Pj4gV2VsbCBJIHJhbiB0aGUgcmVsZWFzZSB3aXRoIDEuNy4wXzgwIHdoaWNoIGlpcmMgaXMgdGhlIGxhc3QgcHVibGljCj4+Pj4+IHJlbGVhc2UKPj4+Pj4gb2YgT3JhY2xlIEphdmEgNy4uLgo+Pj4+Pgo+Pj4+Pgo+Pj4+IEZhaWxzIGFsc28gb24gV2luZG93cyB3aXRoIFp1bHUgNzoKPj4+PiAkIG12biAtdgo+Pj4+IEFwYWNoZSBNYXZlbiAzLjUuMCAoZmY4ZjVlNzQ0NDA0NTYzOWFmNjVmNjA5NWM2MjIxMGI1NzEzZjQyNjsKPj4+PiAyMDE3LTA0LTAzVDIxOjM5OjA2KzAyOjAwKQo+Pj4+IE1hdmVuIGhvbWU6IEQ6XEVudHdpY2tsdW5nXFByb2dyYW1tZVxhcGFjaGUtbWF2ZW4tMy41LjAKPj4+PiBKYXZhIHZlcnNpb246IDEuNy4wXzE1NCwgdmVuZG9yOiBBenVsIFN5c3RlbXMsIEluYy4KPj4+PiBKYXZhIGhvbWU6IEM6XFByb2dyYW0gRmlsZXNcWnVsdVx6dWx1LTdcanJlCj4+Pj4gRGVmYXVsdCBsb2NhbGU6IGRlX0RFLCBwbGF0Zm9ybSBlbmNvZGluZzogQ3AxMjUyCj4+Pj4gT1MgbmFtZTogIndpbmRvd3MgMTAiLCB2ZXJzaW9uOiAiMTAuMCIsIGFyY2g6ICJhbWQ2NCIsIGZhbWlseTogIndpbmRvd3MiCj4+Pj4KPj4+Pgo+Pj4+Cj4+Pj4gT24gU3VuIDEwIFNlcCAyMDE3IGF0IDIxOjA4LCBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz4gd3JvdGU6Cj4+Pj4KPj4+Pj4KPj4+Pj4gRm9sa3MsCj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gdHJpZWQgcnVubmluZyBtYXN0ZXIgb24KPj4+Pj4+IE1hdmVuIGhvbWU6IC91c3IvbG9jYWwvc2hhcmUvamF2YS9tYXZlbgo+Pj4+Pj4gSmF2YSB2ZXJzaW9uOiAxLjcuMF8xNTEsIHZlbmRvcjogT3JhY2xlIENvcnBvcmF0aW9uCj4+Pj4+PiBKYXZhIGhvbWU6IC91c3IvbG9jYWwvb3BlbmpkazcvanJlCj4+Pj4+PiBEZWZhdWx0IGxvY2FsZTogZGVfREUsIHBsYXRmb3JtIGVuY29kaW5nOiBVVEYtOAo+Pj4+Pj4gT1MgbmFtZTogImZyZWVic2QiLCB2ZXJzaW9uOiAiMTEuMS1yZWxlYXNlLXAxIiwgYXJjaDogImkzODYiLCBmYW1pbHk6Cj4+Pj4+PiAidW5peCIKPj4+Pj4+Cj4+Pj4+PiBhbmQgSSBnZXQgdGhpczoKPj4+Pj4+IEZhaWxlZCB0ZXN0czoKPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXN0TU5HNjI3NV9jb3JlUmVhbG1EZWZhdWx0UGFyCj4+Pj4+PiBlbnRDbGFzc0xvYWRlcjo5OQo+Pj4+Pj4gbnVsbAo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X2V4dGVuc2lvblJlYWxtRGVmYXUKPj4+Pj4+IGx0UGFyZW50Q2xhc3NMb2FkZXI6NzMKPj4+Pj4+IG51bGwKPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXN0TU5HNjI3NV9tYXZlbkFwaVJlYWxtRGVmYXVsCj4+Pj4+PiB0UGFyZW50Q2xhc3NMb2FkZXI6OTEKPj4+Pj4+IG51bGwKPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4gRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXN0TU5HNjI3NV9wbHVnaW5SZWFsbURlZmF1bHRQCj4+Pj4+PiBhcmVudENsYXNzTG9hZGVyOjYyCj4+Pj4+PiBudWxsCj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+IERlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfcHJvamVjdFJlYWxtRGVmYXVsdAo+Pj4+Pj4gUGFyZW50Q2xhc3NMb2FkZXI6ODMKPj4+Pj4+IG51bGwKPj4+Pj4+Cj4+Pj4+PiBBbGwgdGVzdHMgZmFpbCB3aXRoICJqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0aW9uRmFpbGVkRXJyb3I6IG51bGwiLgo+Pj4+Pj4KPj4+Pj4+IFJ1bm5pbmcgd2l0aAo+Pj4+Pj4gTWF2ZW4gaG9tZTogL3Vzci9sb2NhbC9zaGFyZS9qYXZhL21hdmVuCj4+Pj4+PiBKYXZhIHZlcnNpb246IDEuOC4wXzE0NCwgdmVuZG9yOiBPcmFjbGUgQ29ycG9yYXRpb24KPj4+Pj4+IEphdmEgaG9tZTogL3Vzci9sb2NhbC9vcGVuamRrOC9qcmUKPj4+Pj4+IERlZmF1bHQgbG9jYWxlOiBkZV9ERSwgcGxhdGZvcm0gZW5jb2Rpbmc6IFVURi04Cj4+Pj4+PiBPUyBuYW1lOiAiZnJlZWJzZCIsIHZlcnNpb246ICIxMS4xLXJlbGVhc2UtcDEiLCBhcmNoOiAiaTM4NiIsIGZhbWlseToKPj4+Pj4+ICJ1bml4Igo+Pj4+Pj4KPj4+Pj4+IHdvcmtzIGZsYXdsZXNzbHkuCj4+Pj4+Pgo+Pj4+Pj4gQW55IGlkZWFzPwo+Pj4+Pj4KPj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+Pj4+Cj4+Pj4+PiAtLQo+Pj4+Pj4KPj4+Pj4+IFNlbnQgZnJvbSBteSBwaG9uZQo+Pj4+Pgo+Pj4+Pgo+Pj4+Pgo+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Cj4+Pj4KPj4+Pgo+Pj4KPj4+Cj4+Cj4gCj4gCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MTE5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBTZXAgMzAgMTU6NTU6MDkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTE5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEVEM0Q3MTBGQkEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAzMCBTZXAgMjAxNyAxNTo1NTowOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDY4NjE1IGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIFNlcCAyMDE3IDE1OjU1OjA5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2ODUxMyBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMCBTZXAgMjAxNyAxNTo1NTowOSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY4NTAyIGludm9rZWQgYnkgdWlkIDk5KTsgMzAgU2VwIDIwMTcgMTU6NTU6MDkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDMwIFNlcCAyMDE3IDE1OjU1OjA5ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgREI4RUNDQzRFRQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMzAgU2VwIDIwMTcgMTU6NTU6MDggKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMy4wMDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTMuMDAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTE9XPS0wLjcsCglSQ1ZEX0lOX01TUElLRV9IMj0tMi44LCBTUEZfUEFTUz0tMC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgYmtEUjBJT2d3RE5mIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU2F0LCAzMCBTZXAgMjAxNyAxNTo1NTowOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNS4xNV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA2MzM5MTVGQjRFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAzMCBTZXAgMjAxNyAxNTo1NTowNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBLYXJsLUhlaW56cy1NYWNCb29rLVByby5sb2NhbCAoWzkyLjIwNC42OS41M10pIGJ5IG1haWwuZ214LmNvbQogKG1yZ214MDAyIFsyMTIuMjI3LjE3LjE5MF0pIHdpdGggRVNNVFBTQSAoTmVtZXNpcykgaWQKIDBNWFp3Ni0xZHNIZ0owaFdBLTAwV1UySCBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAzMCBTZXAgMjAxNwogMTc6NTU6MDEgKzAyMDAKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiBpbmZvQHNvZWJlcy5kZQpGcm9tOiBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4KU3ViamVjdDogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIFdBUiBQbHVnaW4gdmVyc2lvbiAzLjIuMApNZXNzYWdlLUlEOiA8ZDMwZWE0NzYtMDc5NC1mMDk2LWNlNjEtNWZiNDFiMDNiOTZhQGdteC5kZT4KRGF0ZTogU2F0LCAzMCBTZXAgMjAxNyAxNzo1NTowMCArMDIwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMTsgcnY6NTIuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzUyLjMuMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDpMVjl0WXpSUTU1Vms1NWZwcEJITGZJbjdrMjk0Z3llZmc2cnhTekJndm5VNU9zS1JUaWEKIFJiQk01cVVseVE4cmtFSGZLbDhPK3hBNnM2SU5xMyt4WXZWTTgvbFluc1oxSUkvcXJvMDVzdmxvUlA5QTNxdXo2Vm5KYTZjCiBBTlZ0K3o3eDdVemR6TmtMSUlWSll0MjM0cDByRzVEckkrendCS0ZSUE1IMHp0bEFDdC8vWVBndWhubXluL3l1S25xbDZZQwogNkdQaUdGRTNLQjlEZ3ptc1ovdkhBPT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDpLRVlEZ0NpUVJnRT06TEV5MWtYTWZ5Y1JldDlBR2I2U1JvTwogUUhmSWJwUUM0UVVmWHk4TlNiYTZVS1dBU2pvSEhudXJxVGNmVnVuRmloeWVLMCtLSXRBOC9lMm40SjlSR21oZDgzTGhvUEI5cwogdkx2K29MSlhzaXFQR2RHY0RaNVpmNFhrZy9LR3JoNFpnS3k5R284bktPNmo5elFQNFRUZWpZbjR3NU1lUmlMZEtRS1M3cWF0bwogbXYxSDRNYXlLWEsrTDBBZk5kajhOaXY5RzRDRHJZbGF2aUI3NTRvU3JIaC9UVnR0QnUrT05idG5GcFdMUGZjYWtjOFcweUVSdwogaVBBUjhTbFVDcDRiSWpZSDhJWHRkMmVNcE5veEw4bTQvcWZVVTZ6cFBrL2l0NktGQXg2U0JDeFowa3JVNUlrN0N3aUVMU01ucAogQ0Y2NjdpaGQybDZFYitkbWdjUGg2WEgvdXhiRW1GMGpoY2VxODNqc3F0eEl2T25lNHhlZkYrU0k3QjVQejhkS05PUkhNT0kwTAogdVJiU04zVXVReWVUYVlMaHJnMk9uVnExWnJ3aG80MXp4N2Fya09mY2I1YXNqd2crRFU4eXgwalgyL3NFaDNNK3ZGNytGaTNoRAogd3R6T1NBVllGS2IrMW9LRmhKNDJxcWVvNk94dXhTeERvL2RRVFh3NG5ZSC9McTRIQ1dFQ2l0NGZDSEZpZWQxek5HYmovL1hsawogc2lZT1NhaytBOWI5TXl0cVNSTmRrZTBXVHBvQVJKUVlSS09pZTBGWlpXN1U5T1RRc04xN0pFNTlhS2lRYUROTXpwdWJ1WjF6UQogdXEvTlprNEIwSGZ0UWNHeEFPNXJwYVpjbTFiQVVkUkpIWWRHaVhSMmJDRUU4OVFFTXp4Y1lLNDlKZ3pGd2haT0hneW5hQm5rMwogR1QwWXBma0p5c2xFQmZCTFMyeGJSNFEvcmtZcHdJZFBXaGdCSzJCVE9rL1ZJSitMU1drenVTZzFPZnhLdUx0eHlXMWU0N1hVTQogT2hhOW1BOXpob1FRWGFTUjM2TVAyT2g2aHBaYkFTcURFMUdacmFONzliTjZHajZ4OWRMd2ZuM0RqdWJuR0prdHp6RG9Kc04rawogaW9lYnYxb0Ryb2hWb1hiUXMxRHE2K3ZEVnBUZkRmTnVFT0UzNW1RWU9TK3dNZHJsMzdqWjdyb2RnVDJ3VEJDcXhWbWpsSmgKCkhpLAoKV2Ugc29sdmVkIDMgaXNzdWVzOgpodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamVjdElkPTEyMzE4MTIxJnZlcnNpb249MTIzNDEzNzIKClRoZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBpc3N1ZXMgbGVmdCBpbiBKSVJBOgpodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9cHJvamVjdCUyMCUzRCUyME1XQVIlMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwdXBkYXRlZCUyMERFU0MKClN0YWdpbmcgcmVwbzoKaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3MQpodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzcxL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi13YXItcGx1Z2luLzMuMi4wL21hdmVuLXdhci1wbHVnaW4tMy4yLjAtc291cmNlLXJlbGVhc2UuemlwCgpTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKbWF2ZW4td2FyLXBsdWdpbi0zLjIuMC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogCjVjNjYxZjQ1NTQ2MTYxNDc0OTEwMzZkZmFjNjg5YmE5ZGI5MGNlYzIKCgpTdGFnaW5nIHNpdGU6Cmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLXdhci1wbHVnaW4tTEFURVNULwoKR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCgpWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgoKWyBdICsxClsgXSArMApbIF0gLTEKCgpLaW5kIHJlZ2FyZHMKS2FybCBIZWlueiBNYXJiYWlzZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzODgxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBTZXAgIDYgMjA6MzU6MDIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzODgxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDRFRjBCMUFEM0MKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAgNiBTZXAgMjAxNyAyMDozNTowMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDIyMjE1IGludm9rZWQgYnkgdWlkIDUwMCk7IDYgU2VwIDIwMTcgMjA6MzU6MDIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIyMTAwIGludm9rZWQgYnkgdWlkIDUwMCk7IDYgU2VwIDIwMTcgMjA6MzU6MDAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMjA4NSBpbnZva2VkIGJ5IHVpZCA5OSk7IDYgU2VwIDIwMTcgMjA6MzU6MDAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDA2IFNlcCAyMDE3IDIwOjM1OjAwICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgMDcyQTBDRDI5RjsKCVdlZCwgIDYgU2VwIDIwMTcgMjA6MzU6MDAgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMy4wMDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTMuMDAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LCBSQ1ZEX0lOX01TUElLRV9IMj0tMi44LAoJUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwgU1BGX1BBU1M9LTAuMDAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIFhlUUJ5WTJBUmEzRjsgV2VkLCAgNiBTZXAgMjAxNyAyMDozNDo1OSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNS4xOV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBDNjg5OTVGQjRFOwoJV2VkLCAgNiBTZXAgMjAxNyAyMDozNDo1OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBLYXJsLUhlaW56cy1NQlAuZnJpdHouYm94IChbMTg4Ljk3LjIxNS4yXSkgYnkgbWFpbC5nbXguY29tCiAobXJnbXgwMDIgWzIxMi4yMjcuMTcuMTkwXSkgd2l0aCBFU01UUFNBIChOZW1lc2lzKSBpZAogMExxekVCLTFkRDJNeDBaNEYtMDBlZGt6OyBXZWQsIDA2IFNlcCAyMDE3IDIyOjM0OjUyICswMjAwClJlcGx5LVRvOiBpbmZvQHNvZWJlcy5kZQpTdWJqZWN0OiBSZTogbWF2ZW4tZGVwZW5kZW5jeS1wbHVnaW4KVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LAogUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8ZjFmYzUxNDMtNmRjZC04MjA4LTJjYTctNGQ4YWUxYzA4ZDJhQGdteC5kZT4KIDxvcC55NTV1OGNlM2tka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KRnJvbTogS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+Ck1lc3NhZ2UtSUQ6IDxkMzYzOTQ5NC05M2Q2LWVhODQtNjNlZC0wNTIwNWE1YjAwMzJAZ214LmRlPgpEYXRlOiBXZWQsIDYgU2VwIDIwMTcgMjI6MzQ6NTEgKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi4yLjEKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDxvcC55NTV1OGNlM2tka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLUdCCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6dE80ay8zazgvWG9qakMrVnMxak9YbkZwbGNYRjVuRWxTd2ZuY1VLYkNNbFpCc1ZtbUlkCiB0c1dwamZXeFFhM3BnNWQramdWbzdKMzIwZ3dvVW44anh3Nm52aXFCaEtWSWM0MHRST0w1cys2K3R3bVlLeWhpS1ZKRE12QwogdzZEbjBtVnplNDN1V0RJbUx6eWpBTFg3a0hvSEhNUkdBdkFuc1JKNkNMT0JabHZ5SXpRcXdyRmcwdGZWQkIwa0YrL2tTbjEKIEtWT2JFNTlWVWtpeUdjelhTSXNudz09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6eEJtYlpPTDV5akU9Omk0aVpZR1huT3FBdWYrSGNZNmVBVlYKIE8zbTd3L1B4ZjJwZGFGNzJOcGxpVzhUcGdMVG9rcFpPaGdGZ2xNOTFmaWxZYVprNmVzbnM4WXVJdE9qTDh4ZlZTS3JmL0xuNHUKIDdPcDJtQUFRdTFaeUY4Z3dWKzVBQjlqa2x2dUxHcUg3WnFTQkdJZ2xjSmF1TUR1aHkybUFWVlhuQkYxV3hKRHZyUTRoaU1nME4KIGZGclgyY0E5UFFzRnlnQWxiT1g0WEVxeldmRUtTUlBzVWxKaFRZTWk0L2UwbzYyUktsT0hnbzBlZkw3S0x1ZlBCWVl1TjVuWk4KIDdWOUxMT0VycDZOQys1N1V6eHU1Z3prZXlCekpBYTEyQktzVlN1NWV1cTBuTGFsbGlQUnd0anZFUzZUcDV0OHFmQ3hUSWpoTkEKIHJBaVhMdlF5WDJ2UTVkUkhqLzMvOHZ1MlFZOXVsejFUTlBQamxTcFEyMitOMWZSMTZtaFV6bVBielVCdENNMmhIbHRFTG55N1gKIGoxU01oZ0ZiSFZTV3pwUWNJTTBRNzlmNDE0YjhpRTRNbGYxV3VXTWtITzF6eVU2RVNzK29KMlQybHRFMWRidnQvTC9LTlBlU28KIEQrdUx0dmZ6aUVJd0cxTFFGc1R2K2M4UWZYcW0xclpVczRNSHpoZjJaUEJacktDK041NWpyMldpTFoyVldsbWpkc2pBVnlMcXgKIE44SkY0QllIdjRtM2xTeHBSbFprYmxnazh4ejYrVzNTM3pPa3R5eTBBTHlKcU5NS05hUkNZQktnYkFKa0k0YU5QWWJBVUpGcWIKIFJXQXlzTE1XNDNtbFkvbXJROXYwQ2NjQUlNRkptdEdYempLM2J5c3pZSXNmSlpBL1ZodkpIY1Z2UXM2Y1Z0RFh4QU90dFNNZnAKIEpWZEFmVjVyekRtaFVuRnJjRFlaYm9CRW1pNC92UmkvK29xNmMwMEJDNHZQbWtvWHEvVHBWUFV2TWtkckd2NGxSYS8xM3pzMFMKIFVreWNjdnJZdHJzQ3VhaFdLWldoOUxUK3Iza2FxZ1RpbWliaWlKeTdMdVh2VmVCME1JUkdmYzV1WkJMaFB4cmJIQnJEckZldnQKIG96OWE0cVdidWZ0R2I1TWxOUU1JQW9BYVJodXNmamFZbHNwWVdWUTV6V05pWk1ORlVJPQoKSGkgUm9iZXJ0LAoKT24gMDYvMDkvMTcgMjI6MzAsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+ICsxLCB5b3UgYmVhdCBtZSA6KQoKWWVzIFllYWggZ290IGl0IDstKS4uCgpLaW5kIHJlZ2FyZHMKS2FybCBIZWlueiBNYXJiYWlzZQo+IAo+IE9uIFdlZCwgMDYgU2VwIDIwMTcgMjI6Mjg6MzIgKzAyMDAsIEthcmwgSGVpbnogTWFyYmFpc2UgCj4gPGtobWFyYmFpc2VAZ214LmRlPiB3cm90ZToKPiAKPj4gSGksCj4+Cj4+IEkgd291bGQgbGlrZSB0byBtYWtlIGEgbmV3IHJlbGVhc2Ugb2YgdGhlIGN1cnJlbnQgc3RhdGUgb2YgCj4+IG1hdmVuLWRlcGVuZGVuY3ktcGx1Z2luIC4uCj4+Cj4+IEFyZSB0aGVyZSBhbnkgb2JqZWN0aW9ucyBhYm91dCB0aGlzPyBvciBhcmUgaXNzdWVzIG1pc3NlZD8KPj4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDA2NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgU2VwIDE5IDE3OjA4OjM5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDA2NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAzNzVGQUMwMzEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAxOSBTZXAgMjAxNyAxNzowODozOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDc2MjE0IGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IFNlcCAyMDE3IDE3OjA4OjM4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NjExMyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOSBTZXAgMjAxNyAxNzowODozOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc2MTAyIGludm9rZWQgYnkgdWlkIDk5KTsgMTkgU2VwIDIwMTcgMTc6MDg6MzggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDE5IFNlcCAyMDE3IDE3OjA4OjM4ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRTg4MUQxQTU4NUYKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDE5IFNlcCAyMDE3IDE3OjA4OjM3ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuMjIxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjIyMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LAoJUkNWRF9JTl9NU1BJS0VfSDM9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjldKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIE1aaEVGM2s5TXlkbyBmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsKCVR1ZSwgMTkgU2VwIDIwMTcgMTc6MDg6MzcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbW91dC5nbXgubmV0IChtb3V0LmdteC5uZXQgWzIxMi4yMjcuMTUuMTVdKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgRDMyNUU1RkRFNwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTkgU2VwIDIwMTcgMTc6MDg6MzYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gS2FybC1IZWluenMtTUJQLmZyaXR6LmJveCAoWzk0LjIxOS4zNC4yMDZdKSBieSBtYWlsLmdteC5jb20KIChtcmdteDAwMiBbMjEyLjIyNy4xNy4xOTBdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTVJvNmItMWRuUjVKMTZZVC0wMFN3Q1YgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTkgU2VwIDIwMTcKIDE5OjA4OjM2ICswMjAwClJlcGx5LVRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIEpNb2QgUGx1Z2luIHZlcnNpb24gMy4wLjAtYWxwaGEtMQogKEZpcnN0IFB1YmxpYyBSZWxlYXNlKSBUYWtlIDMKRnJvbTogS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpSZWZlcmVuY2VzOiA8NzBjMGIxYTgtZmVkNi1mNGJmLTFlZDMtNjg2MjQ5MzM2OTNiQGdteC5kZT4KTWVzc2FnZS1JRDogPGRjYzMxNDdkLWQwZTAtZDlhMy04YTA4LTg5ZDBmMjBiNGRiNUBnbXguZGU+CkRhdGU6IFR1ZSwgMTkgU2VwIDIwMTcgMTk6MDg6MzcgKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi4yLjEKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDw3MGMwYjFhOC1mZWQ2LWY0YmYtMWVkMy02ODYyNDkzMzY5M2JAZ214LmRlPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDpKRVpqVWVVQ2JES2IreUpZbE80U2JEazlNZ2crYzdFYUJVU0ZTVEdZOWowaTF2b0pBVjEKIFhOMFpqTzg5TDFpMkhuRlFrYkpZZ1RCdGtGUDk2bHh4ZFk1TGxCd1pjcXptV09QWmhvdjRJK0pzWCs0WnN3WlR0S3dwVmNGCiArLzFCU2lidnIrbSs0NGRTUXU3MndXc2c4OWNCbTRlcmZHRGduZEw2VU1YRDNybkFsZWlYYXJicnF0R3MzelNCeFJZNTQ3Sgogdjdja2g0Wk93aUVib2c0YytMelJBPT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDpMZFV0SGpjR08rRT06MEI1b1YzUmtIYTc1U2RQbmRNZ3RGWAogOXVrL3pCY0lIYW14TkFYZ3Z5K056SkZ0Y0YzNU5mWXhKRVZYbmpxcndFZGRCdURGK0E1d0ZFNVd6VGlUK0hVQzduV0NaVFVvdAogUHBRalNQR3J0NXJrNmt1NzJ1WVRUUkROUlM3ZU5SdkFPYkthbFpURWg2bzJ1V3hEYzl5cHVMTUZHOGlRRTA0YXV6aUpPZFNVRwogczhXL0dMeXR6eElBV2t1S0hvOXNrV3hjQS9qTHdTeU9VUTJuUlErQ1VuTUJpYzB2MGdzSTFlRCtzUXhJZ0ttdkErcnBEZXgwegogYjdZcFovdG90dnVaRTc4cGJDRmdVV3hHNTJ2bndpbmpyamQxVHFYaDhVTUFuYkpZS3FUU1MwYUYvSldDSkt0UlZYUFlXVG5pOAogQzFYVWljQnd3bnpMaituK1VDOUNtUS9EZm0zS2xubzdkK1M0RnlPSWcxL3orZGM5UVpEYklwOFRGZTV4eUdwRVYzS0NWMzRlcAogTnJBYTBNUUU0TmNIK3NtS1BzbVlxWklJa3gydzdVT0c0dGlkY0VhdFhDekpoLzJNc2E4VU83anF6SU4vYXpJcGJFcEplb2VNTQogaWl0N1phTFhFTVJ3Z2NodXhmUE9MazNTVFVIOUw5SXZNemF1UEhjTEpUaEd5ZExLUUphNUNzQnRsK1NXd3hKWFhNNGlVU2VDMwogbGV0cVFBSjA2WWw4V0dsUVhPaThqWWpVeEMreTNQbXcyRHRFWHU0RzdhT1hXM1kzZ2JpQnQyQk05TzVGenpuaHBIUkZsOGgrYwogRGtqSWdnTEFlSXA0WlVMNjhtSE1tM0VpeHNjZ2hFRVhERUY0aEVxRWUxd2p3dkhhZUlHaHlMaFQ3d09pcGJ1MVh1V004d2RvRgogNTMyOXJkbjI5Zkk1RUxvcWxuQW8rODhUZGRVTUlUYTdUclRNb1BydE16bXNiSlkyN2U5aFpIb09rWTVLK0pXb2VLaVl4QllQcgogVzY0SW1qdkJOS09yNm9ab3FZOElTOFRZczRPMzNMbmIzZ3F5YzN5VEZSVjBTY0RmbjM4WndCMUN5U3JObEsydmxKVHRFVGhNZQogOGx2R0lxaEdpVlNPSnRiZU9nVkkzRUUwWk9qUVVueVV2WmJiZVplbjZsMUhUWUZjODA9CgpIaSwKCmhlcmUgbXkgKzEuLi4KCktpbmQgcmVnYXJkcwpLYXJsIEhlaW56IE1hcmJhaXNlCgpPbiAxNy8wOS8xNyAxMzo0MCwgS2FybCBIZWlueiBNYXJiYWlzZSB3cm90ZToKPiBIaSwKPiAKPiB0aGlzIGlzIHRoZSBWT1RFIGZvciB0aGUgZmlyc3QgcHVibGljIHJlbGVhc2UgZm9yIE1hdmVuIEpNb2QgUGx1Z2luLi4uCj4gCj4gV2Ugc29sdmVkIDQgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZWN0SWQ9MTIzMjE0MzMmdmVyc2lvbj0xMjM0MTM2MyAKPiAKPiAKPiBUaGVyZSBhcmUgY3VycmVudGx5IG5vIGlzc3VlcyBsZWZ0IGluIEpJUkEuCj4gCj4gSWYgeW91IGhhdmUgYW55IGlzc3VlIHRvIHJlcG9ydCBwbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBKSVJBCj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3Byb2plY3RzL01KTU9ECj4gCj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjkvCj4gCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2OS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4tam1vZC1wbHVnaW4vMy4wLjAtYWxwaGEtMS9tYXZlbi1qbW9kLXBsdWdpbi0zLjAuMC1hbHBoYS0xLXNvdXJjZS1yZWxlYXNlLnppcCAKPiAKPiAKPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBtYXZlbi1qbW9kLXBsdWdpbi0zLjAuMC1hbHBoYS0xLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOiAKPiBhYTAwYjk4YzUzNGYyNGU4MTQxZWUwYmVhY2UyYWZmM2JlODk5Njg4Cj4gCj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWptb2QtcGx1Z2luLUxBVEVTVC8KPiAKPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+IAo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4gCj4gWyBdICsxCj4gWyBdICswCj4gWyBdIC0xCj4gCj4gS2luZCByZWdhcmRzCj4gS2FybCBIZWlueiBNYXJiYWlzZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODQ3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBEZWMgMjcgMTI6MTE6MjQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODQ3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEExNDRFMTc2RjMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyNyBEZWMgMjAxNyAxMjoxMToyNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI4Mzc1IGludm9rZWQgYnkgdWlkIDUwMCk7IDI3IERlYyAyMDE3IDEyOjExOjI0IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyODI4NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBEZWMgMjAxNyAxMjoxMToyNCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI4MjczIGludm9rZWQgYnkgdWlkIDk5KTsgMjcgRGVjIDIwMTcgMTI6MTE6MjQgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMjcgRGVjIDIwMTcgMTI6MTE6MjQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gWzE5Mi4xNjguMS4xM10gKHA1NDhGOUY3My5kaXAwLnQtaXBjb25uZWN0LmRlIFs4NC4xNDMuMTU5LjExNV0pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCBEQUE4NzFBMDBDQTsKCVdlZCwgMjcgRGVjIDIwMTcgMTI6MTE6MjIgKzAwMDAgKFVUQykKU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBEb3hpYSBTaXRldG9vbHMgdmVyc2lvbiAxLjgKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LAogPT9VVEYtOD9RP0hlcnY9YzM9YTlfQk9VVEVNWT89IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClJlZmVyZW5jZXM6IDwyMTkzMTA3LmNpQTNOT2RUT05AZ2lnYT4KRnJvbTogTWljaGFlbCBPc2lwb3YgPG1pY2hhZWxvQGFwYWNoZS5vcmc+Ck1lc3NhZ2UtSUQ6IDxlNDg5ZjBjMS00MmY2LTBmZmQtNTk2My1lZWM3NWIyMjg4ZmJAYXBhY2hlLm9yZz4KRGF0ZTogV2VkLCAyNyBEZWMgMjAxNyAxMzoxMToxMSArMDEwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXT1c2NDsgcnY6NTIuMCkgR2Vja28vMjAxMDAxMDEKIFRodW5kZXJiaXJkLzUyLjUuMgpNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPDIxOTMxMDcuY2lBM05PZFRPTkBnaWdhPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tVVMKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogcXVvdGVkLXByaW50YWJsZQoKQW0gMjAxNy0xMi0yMSB1bSAyMzozMSBzY2hyaWViIEhlcnY9QzM9QTkgQk9VVEVNWToKPiBIaSwKPiAgICAgPTIwCj4gV2Ugc29sdmVkIDcgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiBwcm9qZWN0SWQ9M0QxMjMxNzMyMCZ2ZXJzaW9uPTNEMTIzMzk2MTMmc3R5bGVOYW1lPTNEVGV4dAo+ICAgICA9MjAKPiBUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9M0Rwcm9qZWN0JTIwJTNEJTIwRE9YSUFTSVRFVD0KT09MUwo+ICUyMEFORCUyMHN0YXR1cyUyMCUzRCUyME9wZW4lMjBPUkRFUiUyMEJZJTIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwPQpERVNDCj4gICAgID0yMAo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzg0Lwo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzODQvb3JnL2FwYWNoPQplLwo+IG1hdmVuL2RveGlhL2RveGlhLXNpdGV0b29scy8xLjgvZG94aWEtc2l0ZXRvb2xzLTEuOC1zb3VyY2UtcmVsZWFzZS56aXAKPiAgICAgPTIwCj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gZG94aWEtc2l0ZXRvb2xzLTEuOC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMToKPiAwMDUxYWYzZGEyYmE2MzJhOWUwZjc1M2IwZmZiYzE1MzU4OTg2Y2NkCj4gICAgID0yMAo+IFN0YWdpbmcgc2l0ZToKPiBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9kb3hpYS9kb3hpYS1zaXRldG9vbHMtYXJjaGl2ZXMvZG94aWEtc2l0ZXRvb2xzLT0KTEFURVNULwo+ICAgICA9MjAKPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbD0KCj4gICAgID0yMAo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCgorMQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDAyMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgU2VwIDE0IDExOjIzOjEwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDAyMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDN0U3QjFBQTZECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMTQgU2VwIDIwMTcgMTE6MjM6MTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3MTIzOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNCBTZXAgMjAxNyAxMToyMzoxMCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzExNDIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTQgU2VwIDIwMTcgMTE6MjM6MDkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MTEyOSBpbnZva2VkIGJ5IHVpZCA5OSk7IDE0IFNlcCAyMDE3IDExOjIzOjA5IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDE0IFNlcCAyMDE3IDExOjIzOjA5ICswMDAwClJlY2VpdmVkOiBmcm9tIFsxOTIuMTY4LjEuMTNdIChwM0U5RDI3RjMuZGlwMC50LWlwY29ubmVjdC5kZSBbNjIuMTU3LjM5LjI0M10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCA5NkY0RTFBMDAxOTsKCVRodSwgMTQgU2VwIDIwMTcgMTE6MjM6MDggKzAwMDAgKFVUQykKU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBTdXJlZmlyZSBQbHVnaW4gdmVyc2lvbiAyLjIwLjEKVG86IE1hdmVuIERldmVsb3BlcnMgTGlzdCA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LAogVGlib3IgRGlnYW5hIDx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+ClJlZmVyZW5jZXM6IDxDQUt1VnpCVGpOT2JRTG10bzhmOTdmTzF4K1QxaTFfb1R6N01fTzAzVmtXYUNrN0ZfK1FAbWFpbC5nbWFpbC5jb20+CkZyb206IE1pY2hhZWwgT3NpcG92IDxtaWNoYWVsb0BhcGFjaGUub3JnPgpNZXNzYWdlLUlEOiA8ZTUzNTgzMTMtN2E5YS03YzlhLTM3NDMtMGQzYWVhMWU0MDA0QGFwYWNoZS5vcmc+CkRhdGU6IFRodSwgMTQgU2VwIDIwMTcgMTM6MjM6MDQgKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV09XNjQ7IHJ2OjUyLjApIEdlY2tvLzIwMTAwMTAxCiBUaHVuZGVyYmlyZC81Mi4zLjAKTUlNRS1WZXJzaW9uOiAxLjAKSW4tUmVwbHktVG86IDxDQUt1VnpCVGpOT2JRTG10bzhmOTdmTzF4K1QxaTFfb1R6N01fTzAzVmtXYUNrN0ZfK1FAbWFpbC5nbWFpbC5jb20+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtODsgZm9ybWF0PWZsb3dlZApDb250ZW50LUxhbmd1YWdlOiBlbi1VUwpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CgpBbSAyMDE3LTA5LTExIHVtIDA1OjMzIHNjaHJpZWIgVGlib3IgRGlnYW5hOgo+IEhpLAo+IAo+IFdlIHNvbHZlZCAyNCBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMxNzkyNyZ2ZXJzaW9uPTEyMzQwMjk3Cj4gCj4gVGhlcmUgYXJlIDEwMSBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pI2lzc3Vlcy8/anFsPXByb2plY3QrJTNEK1NVUkVGSVJFK0FORCtzdGF0dXMrJTNEK09wZW4rT1JERVIrQlkrcHJpb3JpdHkrREVTQwo+IAo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY2Lwo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjYvb3JnL2FwYWNoZS9tYXZlbi9zdXJlZmlyZS9zdXJlZmlyZS8yLjIwLjEvc3VyZWZpcmUtMi4yMC4xLXNvdXJjZS1yZWxlYXNlLnppcAo+IAo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IG1hdmVuLXN1cmVmaXJlLXBsdWdpbi0yLjIwLjEtc2l0ZS1zb3VyY2UuemlwIHNoYTE6Cj4gNDE4N2E3OTMyMjY4YzdhZDQ2Nzk3MzI1NGQ4NzU4NDA4NWUzMDVjMQpeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KClRoaXMgc2VlbXMgdG8gYmUgdGhlIHdyb25nIFpJUCBmaWxlLiBJdCBzaG91bGQgYmUKPiAkIHNoYTEgc3VyZWZpcmUtMi4yMC4xLXNvdXJjZS1yZWxlYXNlLnppcAo+IFNIQTEgKHN1cmVmaXJlLTIuMjAuMS1zb3VyY2UtcmVsZWFzZS56aXApID0gNDI1YzA1ZTliMGU4MWQzNmFiNDBhMGEzOWRkMzZlMjE0ZTFmMGVmMAoKVGhvdWdoLCBhbGwgdGVzdHMgcGFzcyBmcm9tIHRoZSBzb3VyY2UgWklQIGZpbGUuCgorMQoKTWljaGFlbAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0OTA2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBEZWMgMzEgMTM6MDY6MjYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0OTA2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDgxQ0U1MTdBODkKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAzMSBEZWMgMjAxNyAxMzowNjoyNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDM4NDY0IGludm9rZWQgYnkgdWlkIDUwMCk7IDMxIERlYyAyMDE3IDEzOjA2OjI2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzODM2MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMSBEZWMgMjAxNyAxMzowNjoyNiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM4MzUwIGludm9rZWQgYnkgdWlkIDk5KTsgMzEgRGVjIDIwMTcgMTM6MDY6MjUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDMxIERlYyAyMDE3IDEzOjA2OjI1ICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNjUwMEVDMkU3RQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMzEgRGVjIDIwMTcgMTM6MDY6MjUgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4yMDEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMjAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtLQU1fTlVNU1VCSkVDVD0wLjUsIFJDVkRfSU5fRE5TV0xfTE9XPS0wLjcsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgdlEzVUhCaUdjc05ZIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAzMSBEZWMgMjAxNyAxMzowNjoyNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNy4yMV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAwRTlCRTVGQUM0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAzMSBEZWMgMjAxNyAxMzowNjoyNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBLYXJsLUhlaW56cy1NYWNCb29rLVByby5sb2NhbCAoWzkyLjIwNC44OS4yMDJdKSBieSBtYWlsLmdteC5jb20KIChtcmdteDEwMiBbMjEyLjIyNy4xNy4xNjhdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTUZSMk8tMWVqdjRkMVNCWS0wMEVQSzMgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMzEgRGVjIDIwMTcKIDE0OjA2OjIzICswMTAwClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogaW5mb0Bzb2ViZXMuZGUKRnJvbTogS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+ClN1YmplY3Q6IE1hdmVuIDMuNS4zIC0gTU5HLTYzMzEvNjMzMgpNZXNzYWdlLUlEOiA8ZTc5ZDIwNzctMmU1NC1mYzIxLThjOGItMWNmZWQ1MzNlOGRhQGdteC5kZT4KRGF0ZTogU3VuLCAzMSBEZWMgMjAxNyAxNDowNjoyMyArMDEwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMTsgcnY6NTIuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzUyLjUuMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDpZbm1lelBFOERycWtoWnRldU12ai90WitMLzBwM0xweVJsMXJqVGxtQnE2YkViTXpleVkKIEFXVWVqOCs1NFZFRVF2TEl1alVYMkZ2cmdvelljaDJ2TllsODNSSk1lUWFDbDN6ZzdNaXFWUEJRajRUcjhlYkZmelNPdTZaCiBRdTNINFMxSnRWMS9XTDk5NG1SVm9wdjluWDd1cEhhd3hseDUzZWdqUG0rZllXUEdPbUYyVC8yeU9rSU1KSkp5OVpOcGpiMAogZmtFQ0RnSU52RDlBVXFaSmtGOUhRPT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDpqWER5WHNKbVRpdz06M2NwYytLVkNLSmR4T0FyQ0wrdEx6SAogRms0bGpISUVoM3NDS0xWSE1FUzl6dmZSNFlHZVZLV01HQi91K1o5Q0pldjc3Q2U0WTgvSVBHUEhLVFd3Tjcxd1JhNWhxODlLWAogS3hKWEFmeCs3NDZ5ZnpTaXFrRWkwcWVSQm55OXp3bm1kYkNFRjd6b0NLYkx4Sm83elU1L2h1bDJhYUYyMFlncGxZTVFrNDgxTAogTVljZjBxVHFGdXIxSXYyV0E2N2xlT0FkOU5jRzZpbjVKQ2U3S09KaVdHZWFMN0xnZXVxYWRSeklrZk9HYW9TTzRVaWt4K0VlQQogYWpTekpKck05YmhGb3kreE50bkpQdk90Uzg1K2tIdjdTOVZxcDMrYnJaaW9Wd2VkU0VCVnQwbkZDbER3YmpFd3dFYjcrcEhVdQogZUpsSGhkTVpmRm1vblR3bEdPUjhwTjRnMFlkVVM0YjRBYm9DUmNnbVoyMnVVZUxySWRoT2IvY05zWDQ3MEZYeURvOVJJTnRzMwogOG1MaEpTb21uMWtnRVFnb21jbVZobzJNcEdxMzNvU0Z3OTNwQVdjaHpkbXZRVXRsUmlTRnRkMHZaRzFEY2FLSGpTMHlId0lwdQogT3llUis2aXVvam5xai91VUFiM24rb0J1Q1BVREt5R3V6WlI2WW5uTkRmWHl2bzF3WjRVUFNCaHcvQmE3S2E0Z0NzaFNNMDExTwogNmhSZWlsUkM5TlFmbGhSSlJSN2p2ZGRJL0hqd0dVVXZqQWhiWkNZUENHcTdEcHJHdHFFeWFuMXlBOUNMMTdMUzN5WFBsQWlwbgogTzRjMW0rbXhDWVZDUXNka1BvTFd6U2Zwb1p2T01kdkJpR3prWmFzQjR0Y1ZRbVhOZjlTeGx0UFRTOC9oYzlTMzZGbS93QnZRUwogS1N5TnB1SXF4MjJJR3dyZHBoL1p3dFlLZ04rMFA0T2tVUXhCRHJLNUVWUG9laVo5MTg5SEdXR000MHpXN2VtLy9Bdk1tSExJaAogUEdlNUZaMTNyTXBOc3EwVWlYTFdkUWpscWdZM0xPY3RMUkJKTC9hNlFBUHYyL1RnT0dZVmJLUDlSV1NMNGU3MHNqSUhYbE54cAogaVBmQ3BtOC9lRExZOFU4RkVtWjRiVHl3eTY2OEdUWEdrNkJseVFCTDdjUlc0R08vb289CgpIaSwKCkkgd291bGQgbGlrZSB0byBpbnRlZ3JhdGUgdGhlIGZvbGxvd2luZyBpc3N1ZXMgaW50byBNYXZlbiAzLjUuMyAobWFzdGVyKToKCiAgbyBNTkctNjMzMlsxXVsyXVszXQogIG8gTU5HLTYzMzFbNF1bNV1bNl0KCmFueSBvYmplY3Rpb25zPwoKS2luZCByZWdhcmRzCkthcmwgSGVpbnogTWFyYmFpc2UKCgpbMV06IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYzMzIKWzJdOiAKaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9bWF2ZW4uZ2l0O2E9Y29tbWl0ZGlmZjtoPWQ1NDJkNjE0ZmE2NTAxY2E0NTQ5NzdjM2Q0MTNkY2RhZjI3YWVjODMKWzNdOiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL2pvYi9tYXZlbi13aXAvam9iL21hdmVuL2pvYi9NTkctNjMzMi8KCls0XTogaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjMzMQpbNV06IApodHRwczovL2dpdC13aXAtdXMuYXBhY2hlLm9yZy9yZXBvcy9hc2Y/cD1tYXZlbi5naXQ7YT1jb21taXRkaWZmO2g9OTY5Njc2M2I1NTQxZjcwMjQ4NGE1MmFmMjI0NzdmNDcxYmEwNDcyOQpbNl06IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvam9iL21hdmVuLXdpcC9qb2IvbWF2ZW4vam9iL01ORy02MzMxLwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0Nzg5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBEZWMgMTggMDk6NTU6MjEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0Nzg5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDFEREM0MTdFNUMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxOCBEZWMgMjAxNyAwOTo1NToyMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDUzNjkxIGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IERlYyAyMDE3IDA5OjU1OjIwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MzYyMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBEZWMgMjAxNyAwOTo1NToyMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUzNjA1IGludm9rZWQgYnkgdWlkIDk5KTsgMTggRGVjIDIwMTcgMDk6NTU6MjAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDE4IERlYyAyMDE3IDA5OjU1OjIwICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRThDQzVDMjMzRTsKCU1vbiwgMTggRGVjIDIwMTcgMDk6NTU6MTkgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAzLjM4ClgtU3BhbS1MZXZlbDogKioqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0zLjM4IHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX1NJR05FRD0wLjEsIERLSU1fVkFMSUQ9LTAuMSwgREtJTV9WQUxJRF9BVT0tMC4xLAoJSFRNTF9NRVNTQUdFPTIsIEtBTV9NWFVSST0xLjUsIFJDVkRfSU5fTVNQSUtFX0gzPS0wLjAxLAoJUkNWRF9JTl9NU1BJS0VfV0w9LTAuMDEsIFNQRl9QQVNTPS0wLjAwMSwKCVRfS0FNX0hUTUxfRk9OVF9JTlZBTElEPTAuMDEsIFRfUlBfTUFUQ0hFU19SQ1ZEPS0wLjAxLAoJVU5QQVJTRUFCTEVfUkVMQVk9MC4wMDFdIGF1dG9sZWFybj1kaXNhYmxlZApBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIChhbWF2aXNkLW5ldyk7Cglka2ltPXBhc3MgKDIwNDgtYml0IGtleSkgaGVhZGVyLmQ9b3JhY2xlLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgd3daM1BzM2JpUndWOyBNb24sIDE4IERlYyAyMDE3IDA5OjU1OjE4ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGFzZXJwMjEyMC5vcmFjbGUuY29tIChhc2VycDIxMjAub3JhY2xlLmNvbSBbMTQxLjE0Ni4xMjYuNzhdKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUFMgaWQgNEZEMzQ1RjVDNjsKCU1vbiwgMTggRGVjIDIwMTcgMDk6NTU6MTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gcHBzLmZpbHRlcmQgKGFzZXJwMjEyMC5vcmFjbGUuY29tIFsxMjcuMC4wLjFdKQoJYnkgYXNlcnAyMTIwLm9yYWNsZS5jb20gKDguMTYuMC4yMS84LjE2LjAuMjEpIHdpdGggU01UUCBpZCB2Qkk5cUoxSDEwMzA0MTsKCU1vbiwgMTggRGVjIDIwMTcgMDk6NTU6MTcgR01UCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7IGQ9b3JhY2xlLmNvbTsgaD1mcm9tIDogc3ViamVjdCA6IGNjIDoKIHRvIDogbWVzc2FnZS1pZCA6IGRhdGUgOiBtaW1lLXZlcnNpb24gOiBjb250ZW50LXR5cGU7IHM9Y29ycC0yMDE3LTEwLTI2OwogYmg9RDRxYTd1c1dFRDRZN2xqUkJ2bGI2MmtBWncyaVRmOE94M1dBMklJSklmVT07CiBiPU5mbTVCV3JWdklmclJiZDZwb2NJNWZ4NlM5eUd0c2QvQXNjS3lTRitudkEyUXBncGZ3emwxMThvVmtrbGg1ZWNkczg1CiB4ZFFnVWFIQVBYY3BsWXpEN0ZqUkRaOFZkQVVnWkdIaG1wRDA3QVk2Sk5hdzA0WW8vc3dRaFgrU1JoMHllcEwxdFEzdQogU1J5QkgxWC9KMmxML3ZWVTl2K3BVUmxDNWw3S2hnc0ZVOVJudTVjNW1uMkhzMEhNOXUrVGtJN29tQzhOTUIzT2xUSi8KICszZlNYNWVwTUpkbXBFdEU0WFBlNFBUNkJQMDdoN2F5TWtvZDJiZEZaUFFteExhVU9WYXp0alhoQ0p2ZjlUT2FGQ0trCiBRQ2FPaGo1eXhnTWxWc2R6d3JqdzlSMnJYYzUzODB1UFQ2M2dlcEV4aEpFQmZtbnZrMXl6VmtiUUg2OURxaE9DVHpjeiAzUT09IApSZWNlaXZlZDogZnJvbSB1c2VydjAwMjIub3JhY2xlLmNvbSAodXNlcnYwMDIyLm9yYWNsZS5jb20gWzE1Ni4xNTEuMzEuNzRdKQoJYnkgYXNlcnAyMTIwLm9yYWNsZS5jb20gd2l0aCBFU01UUCBpZCAyZXhheHQwODZ1LTEKCSh2ZXJzaW9uPVRMU3YxLjIgY2lwaGVyPUVDREhFLVJTQS1BRVMyNTYtR0NNLVNIQTM4NCBiaXRzPTI1NiB2ZXJpZnk9T0spOwoJTW9uLCAxOCBEZWMgMjAxNyAwOTo1NToxNiArMDAwMApSZWNlaXZlZDogZnJvbSB1c2VydjAxMjEub3JhY2xlLmNvbSAodXNlcnYwMTIxLm9yYWNsZS5jb20gWzE1Ni4xNTEuMzEuNzJdKQoJYnkgdXNlcnYwMDIyLm9yYWNsZS5jb20gKDguMTQuNC84LjE0LjQpIHdpdGggRVNNVFAgaWQgdkJJOXRHVTcwMDYwOTQKCSh2ZXJzaW9uPVRMU3YxL1NTTHYzIGNpcGhlcj1ESEUtUlNBLUFFUzI1Ni1HQ00tU0hBMzg0IGJpdHM9MjU2IHZlcmlmeT1GQUlMKTsKCU1vbiwgMTggRGVjIDIwMTcgMDk6NTU6MTYgR01UClJlY2VpdmVkOiBmcm9tIGFiaG1wMDAxMS5vcmFjbGUuY29tIChhYmhtcDAwMTEub3JhY2xlLmNvbSBbMTQxLjE0Ni4xMTYuMTddKQoJYnkgdXNlcnYwMTIxLm9yYWNsZS5jb20gKDguMTQuNC84LjEzLjgpIHdpdGggRVNNVFAgaWQgdkJJOXRGZDgwMjEwODE7CglNb24sIDE4IERlYyAyMDE3IDA5OjU1OjE1IEdNVApSZWNlaXZlZDogZnJvbSBkaGNwLTEwLTE3NS0xNzYtMTgwLnZwbi5vcmFjbGUuY29tICgvMTAuMTc1LjE3Ni4xODApCglieSBkZWZhdWx0IChPcmFjbGUgQmVlaGl2ZSBHYXRld2F5IHY0LjApCgl3aXRoIEVTTVRQIDsgTW9uLCAxOCBEZWMgMjAxNyAwMTo1NToxNSAtMDgwMApGcm9tOiAiUm9yeSBPJ0Rvbm5lbGwiIDxyb3J5Lm9kb25uZWxsQG9yYWNsZS5jb20+ClN1YmplY3Q6IEpESyAxMCBlbnRlcmVkIFJhbXBkb3duIFBoYXNlIE9uZSBvbiAxNHRoIG9mIERlY2VtYmVyCkNjOiByb3J5Lm9kb25uZWxsQG9yYWNsZS5jb20sIERhbGlib3IgVG9waWMgPGRhbGlib3IudG9waWNAb3JhY2xlLmNvbT4sCiAgICAgICAgQmFsY2hhbmRyYSBWYWlkeWEgPGJhbGNoYW5kcmEudmFpZHlhQG9yYWNsZS5jb20+LAogICAgICAgIE11bmVlciBLb2xhcmt1bm51IDxhYmR1bC5rb2xhcmt1bm51QG9yYWNsZS5jb20+LCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpUbzogcmZzY2hvbHRlQGFwYWNoZS5vcmcKTWVzc2FnZS1JRDogPGViMWRhMGQ3LTMyYzItNjI2ZS04NTJiLTMzN2RhYjk1ODc2N0BvcmFjbGUuY29tPgpEYXRlOiBNb24sIDE4IERlYyAyMDE3IDA5OjU1OjEyICswMDAwClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwLjEzOyBydjo1Mi4wKQogR2Vja28vMjAxMDAxMDEgVGh1bmRlcmJpcmQvNTIuNS4wCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOwogYm91bmRhcnk9Ii0tLS0tLS0tLS0tLTdBNDU1OTY1QzU0NjRDMUNDNEFFOTlBRCIKQ29udGVudC1MYW5ndWFnZTogZW4tVVMKWC1Qcm9vZnBvaW50LVZpcnVzLVZlcnNpb246IHZlbmRvcj1uYWkgZW5naW5lPTU5MDAgZGVmaW5pdGlvbnM9ODc0OCBzaWduYXR1cmVzPTY2ODY0OQpYLVByb29mcG9pbnQtU3BhbS1EZXRhaWxzOiBydWxlPW5vdHNwYW0gcG9saWN5PWRlZmF1bHQgc2NvcmU9MCBzdXNwZWN0c2NvcmU9NiBtYWx3YXJlc2NvcmU9MAogcGhpc2hzY29yZT0wIGJ1bGtzY29yZT0wIHNwYW1zY29yZT0wIG1seHNjb3JlPTAgbWx4bG9nc2NvcmU9ODY0CiBhZHVsdHNjb3JlPTAgY2xhc3NpZmllcj1zcGFtIGFkanVzdD0wIHJlYXNvbj1tbHggc2NhbmNvdW50PTEKIGVuZ2luZT04LjAuMS0xNzExMjIwMDAwIGRlZmluaXRpb25zPW1haW4tMTcxMjE4MDEzMAoKLS0tLS0tLS0tLS0tLS03QTQ1NTk2NUM1NDY0QzFDQzRBRTk5QUQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCiDCoEhpIFJvYmVydCAsCgoqSkRLIDEwIGVudGVyZWQgUmFtcGRvd24gUGhhc2UgT25lIG9uIFRodXJzZGF5LCAxNCBEZWNlbWJlciBbMV0gKgoKICAqIFRoZSBSYW1wZG93biBQaGFzZSBPbmUgcHJvY2VzcyB3aWxsIGJlIHNpbWlsYXIgdG8gdGhhdCBvZiBKREsgOSBbMl0uCgoqSkRLIDEwIEVhcmx5IEFjY2Vzc8KgIGJ1aWxkIDM2IGlzIGF2YWlsYWJsZSBhdCA6IC0gamRrLmphdmEubmV0LzEwLyoKCk5vdGFibGUgY2hhbmdlcyBzaW5jZSBwcmV2aW91cyBlbWFpbC4KCipKRVBTIGluY2x1ZGVkICoqdGhlIGxhc3QgMyBidWlsZHM6KgpKREstODE5MjgzMyA8aHR0cHM6Ly9idWdzLm9wZW5qZGsuamF2YS5uZXQvYnJvd3NlL0pESy04MTkyODMzPiA6VGhpcyBpcyAKdGhlIHByaW1hcnkgaW1wbGVtZW50YXRpb24gc3VidGFzayBvZiBKRVAgMzIyIC0gKlRpbWUtQmFzZWQgUmVsZWFzZSAKVmVyc2lvbmluZyoKSkRLLTgxODk5NDEgPGh0dHBzOi8vYnVncy5vcGVuamRrLmphdmEubmV0L2Jyb3dzZS9KREstODE4OTk0MT4gOiAKSW1wbGVtZW50YXRpb24gSkVQIDMxMjogVGhyZWFkLWxvY2FsIGhhbmRzaGFrZQpKREstODE4NjU3MSA8aHR0cHM6Ly9idWdzLm9wZW5qZGsuamF2YS5uZXQvYnJvd3NlL0pESy04MTg2NTcxPiA6IApJbXBsZW1lbnRhdGlvbjogSkVQIDMwNzogUGFyYWxsZWwgRnVsbCBHQyBmb3IgRzEKSkRLLTgxOTAzMDggPGh0dHBzOi8vYnVncy5vcGVuamRrLmphdmEubmV0L2Jyb3dzZS9KREstODE5MDMwOD4gOiAKSW1wbGVtZW50YXRpb246IEpFUCAzMTY6IEhlYXAgQWxsb2NhdGlvbiBvbiBBbHRlcm5hdGl2ZSBNZW1vcnkgRGV2aWNlcwoKKmJ1aWxkIDM2CipKREstODE0ODQyMSA8aHR0cHM6Ly9idWdzLm9wZW5qZGsuamF2YS5uZXQvYnJvd3NlL0pESy04MTQ4NDIxPiA6IApUcmFuc3BvcnQgTGF5ZXIgU2VjdXJpdHkgKFRMUykgU2Vzc2lvbiBIYXNoIGFuZCBFeHRlbmRlZCBNYXN0ZXIgU2VjcmV0IApFeHRlbnNpb24KSkRLLTUwMTY1MTcgPGh0dHBzOi8vYnVncy5vcGVuamRrLmphdmEubmV0L2Jyb3dzZS9KREstNTAxNjUxNz4gOiBSZXBsYWNlIApwbGFpbnRleHQgcGFzc3dvcmRzIGJ5IGhhc2hlZCBwYXNzd29yZHMgZm9yIG91dC1vZi10aGUtYm94IEpNWCBBZ2VudAoKKioKCipidWlsZCAzNSAqCkpESy04MTg4ODcwIDxodHRwczovL2J1Z3Mub3Blbmpkay5qYXZhLm5ldC9icm93c2UvSkRLLTgxODg4NzA+IC0gQnVtcCAKY2xhc3NmaWxlIHZlcnNpb24gbnVtYmVyIHRvIDU0CkpESy04MTg1OTg1IDxodHRwOi8vYnVncy5vcGVuamRrLmphdmEubmV0L2Jyb3dzZS9KREstODE4NTk4NT4gLSBIVE1MIApmaWxlcyBpbiBkb2MtZmlsZXMgc3ViZGlyZWN0b3JpZXMgYXJlIHdyYXBwZWQgd2l0aCBzdGFuZGFyZCBqYXZhZG9jIApkZWNvcmF0aW9ucwpKREstODE4NjUzNSA8aHR0cDovL2J1Z3Mub3Blbmpkay5qYXZhLm5ldC9icm93c2UvSkRLLTgxODY1MzU+Ki0gKlJlbW92ZSAKZGVwcmVjYXRlZCBwcmUtMS4yIFNlY3VyaXR5TWFuYWdlciBtZXRob2RzIGFuZCBmaWVsZHMKCipidWlsZCAzNCogLSBKREstODAyNDM1MiAKPGh0dHA6Ly9idWdzLm9wZW5qZGsuamF2YS5uZXQvYnJvd3NlL0pESy04MDI0MzUyPiAtIE1CZWFuT3BlcmF0aW9uSW5mbyAKYWNjZXB0cyBhbnkgaW50IHZhbHVlIGFzICJpbXBhY3QiCgoqQnVnIGZpeGVzIHJlcG9ydGVkIGJ5IE9wZW4gU291cmNlIFByb2plY3RzwqAgCjoqPGh0dHBzOi8vYnVncy5vcGVuamRrLmphdmEubmV0L2Jyb3dzZS9KREstODE5MTgzND4KSkRLLTgxOTEwNzggPGh0dHBzOi8vYnVncy5vcGVuamRrLmphdmEubmV0L2Jyb3dzZS9KREstODE5MTA3OD4gOiBXcm9uZyAKIlBhY2thZ2Ugbm90IGZvdW5kIiB3YXJuaW5nCkpESy04MTkxNjM2IDxodHRwczovL2J1Z3Mub3Blbmpkay5qYXZhLm5ldC9icm93c2UvSkRLLTgxOTE2MzY+IDogCltXaW5kb3dzXSBqc2hlbGwgdG9vbDogV3JvbmcgY2hhcmFjdGVyIGluIC9lbnYgY2xhc3MtcGF0aCBjb21tYW5kIApjcmFzaGVzIGpzaGVsbApKREstODE5MTgzNCA8aHR0cHM6Ly9idWdzLm9wZW5qZGsuamF2YS5uZXQvYnJvd3NlL0pESy04MTkxODM0PiA6IApBc3NpZ25pbmcgYSB2b2lkIGV4cHJlc3Npb24gdG8gYSAidmFyIiBjcmFzaGVzIHRoZSAKY29tcGlsZXI8aHR0cHM6Ly9idWdzLm9wZW5qZGsuamF2YS5uZXQvYnJvd3NlL0pESy04MTgyNjM4PgpKREstODE4MjYzOCA8aHR0cHM6Ly9idWdzLm9wZW5qZGsuamF2YS5uZXQvYnJvd3NlL0pESy04MTgyNjM4PiA6IApbbWFjb3N4XSBBY3RpdmUgbW9kYWwgZGlhbG9nIGlzIGhpZGRlbiBieSBhbm90aGVyIG5vbi1hY3RpdmUgb25lCkpESy04MDQzMzE1IDxodHRwczovL2J1Z3Mub3Blbmpkay5qYXZhLm5ldC9icm93c2UvSkRLLTgwNDMzMTU+IDogTmltYnVzOiAKU2V0dGluZyBOaW1idXMuT3ZlcnJpZGVzIHByb3BlcnR5IGFmZmVjdHMgY3VzdG9tIGtleW1hcCBpbnN0YWxsYXRpb24KSkRLLTgxNzIyNDQgPGh0dHBzOi8vYnVncy5vcGVuamRrLmphdmEubmV0L2Jyb3dzZS9KREstODE3MjI0ND4gOiBBSU9PQkUgCmluIEtleVN0b3JlLmdldENlcnRpZmljYXRlQWxpYXMgb24gV2luZG93cwpKREstODE4MDE0MSA8aHR0cHM6Ly9idWdzLm9wZW5qZGsuamF2YS5uZXQvYnJvd3NlL0pESy04MTgwMTQxPiA6IE1pc3NpbmcgCmVudHJ5IGluIExpbmVOdW1iZXJUYWJsZSBmb3IgYnJlYWsgc3RhdGVtZW50IHRoYXQganVtcHMgb3V0IG9mIHRyeS1maW5hbGwKCkpESyAxMCBTY2hlZHVsZSwgU3RhdHVzICYgRmVhdHVyZXMgYXJlIGF2YWlsYWJsZSBbM10KCipGZWVkYmFjayogLSBJZiB5b3UgaGF2ZSBzdWdnZXN0aW9ucyBvciBlbmNvdW50ZXIgYnVncywgcGxlYXNlIHN1Ym1pdCAKdGhlbSB1c2luZyB0aGUgdXN1YWwgSmF2YSBTRSBidWctcmVwb3J0aW5nIGNoYW5uZWwuCkJlIHN1cmUgdG8gaW5jbHVkZSBjb21wbGV0ZSB2ZXJzaW9uIGluZm9ybWF0aW9uIGZyb20gdGhlIG91dHB1dCBvZiB0aGUgCnxqYXZhIC0tdmVyc2lvbnwgY29tbWFuZC4KClJlZ2FyZHMsClJvcnkKClsxXSBodHRwOi8vbWFpbC5vcGVuamRrLmphdmEubmV0L3BpcGVybWFpbC9qZGstZGV2LzIwMTctRGVjZW1iZXIvMDAwMzU3Lmh0bWwKWzJdIGh0dHA6Ly9vcGVuamRrLmphdmEubmV0L3Byb2plY3RzL2pkazkvcmRwLTEKWzNdIGh0dHA6Ly9vcGVuamRrLmphdmEubmV0L3Byb2plY3RzL2pkay8xMC8KCi0tIApSZ2RzLFJvcnkgTydEb25uZWxsClF1YWxpdHkgRW5naW5lZXJpbmcgTWFuYWdlcgpPcmFjbGUgRU1FQSAsIER1YmxpbiwgSXJlbGFuZAoKCi0tLS0tLS0tLS0tLS0tN0E0NTU5NjVDNTQ2NEMxQ0M0QUU5OUFELS0KCkZyb20gZGV2LXJldHVybi0xMjM5MzMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIFNlcCAxMCAyMDowOTowNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5MzMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMzI2MkYxQUVDNwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDIwOjA5OjA0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTEzMDAgaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgU2VwIDIwMTcgMjA6MDg6NTkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkxMjI1IGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIFNlcCAyMDE3IDIwOjA4OjU4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTEyMTQgaW52b2tlZCBieSB1aWQgOTkpOyAxMCBTZXAgMjAxNyAyMDowODo1OCAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxMCBTZXAgMjAxNyAyMDowODo1OCArMDAwMApSZWNlaXZlZDogZnJvbSBbMTkyLjE2OC4xLjEzXSAocDNFOUQyN0YzLmRpcDAudC1pcGNvbm5lY3QuZGUgWzYyLjE1Ny4zOS4yNDNdKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgQTQ2NjIxQTAwQTUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDIwOjA4OjU3ICswMDAwIChVVEMpClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpGcm9tOiBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz4KU3ViamVjdDogVGVzdHMgZm9yIE1ORy02Mjc1IGZhaWwgb24gSmF2YSAxLjcuMF8xNTEtYjAxCk1lc3NhZ2UtSUQ6IDxlZmI5Nzk2MC1lMWI3LTQyMjctNTk5OC1kZTJjMjQwMTViYjBAYXBhY2hlLm9yZz4KRGF0ZTogU3VuLCAxMCBTZXAgMjAxNyAyMjowODo1MyArMDIwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXT1c2NDsgcnY6NTIuMCkgR2Vja28vMjAxMDAxMDEKIFRodW5kZXJiaXJkLzUyLjMuMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tVVMKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdAoKRm9sa3MsCgp0cmllZCBydW5uaW5nIG1hc3RlciBvbgpNYXZlbiBob21lOiAvdXNyL2xvY2FsL3NoYXJlL2phdmEvbWF2ZW4KSmF2YSB2ZXJzaW9uOiAxLjcuMF8xNTEsIHZlbmRvcjogT3JhY2xlIENvcnBvcmF0aW9uCkphdmEgaG9tZTogL3Vzci9sb2NhbC9vcGVuamRrNy9qcmUKRGVmYXVsdCBsb2NhbGU6IGRlX0RFLCBwbGF0Zm9ybSBlbmNvZGluZzogVVRGLTgKT1MgbmFtZTogImZyZWVic2QiLCB2ZXJzaW9uOiAiMTEuMS1yZWxlYXNlLXAxIiwgYXJjaDogImkzODYiLCBmYW1pbHk6ICJ1bml4IgoKYW5kIEkgZ2V0IHRoaXM6CkZhaWxlZCB0ZXN0czoKIApEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X2NvcmVSZWFsbURlZmF1bHRQYXJlbnRDbGFzc0xvYWRlcjo5OSAKbnVsbAogCkRlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzdE1ORzYyNzVfZXh0ZW5zaW9uUmVhbG1EZWZhdWx0UGFyZW50Q2xhc3NMb2FkZXI6NzMgCm51bGwKIApEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X21hdmVuQXBpUmVhbG1EZWZhdWx0UGFyZW50Q2xhc3NMb2FkZXI6OTEgCm51bGwKIApEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlc3RNTkc2Mjc1X3BsdWdpblJlYWxtRGVmYXVsdFBhcmVudENsYXNzTG9hZGVyOjYyIApudWxsCiAKRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXN0TU5HNjI3NV9wcm9qZWN0UmVhbG1EZWZhdWx0UGFyZW50Q2xhc3NMb2FkZXI6ODMgCm51bGwKCkFsbCB0ZXN0cyBmYWlsIHdpdGggImp1bml0LmZyYW1ld29yay5Bc3NlcnRpb25GYWlsZWRFcnJvcjogbnVsbCIuCgpSdW5uaW5nIHdpdGgKTWF2ZW4gaG9tZTogL3Vzci9sb2NhbC9zaGFyZS9qYXZhL21hdmVuCkphdmEgdmVyc2lvbjogMS44LjBfMTQ0LCB2ZW5kb3I6IE9yYWNsZSBDb3Jwb3JhdGlvbgpKYXZhIGhvbWU6IC91c3IvbG9jYWwvb3BlbmpkazgvanJlCkRlZmF1bHQgbG9jYWxlOiBkZV9ERSwgcGxhdGZvcm0gZW5jb2Rpbmc6IFVURi04Ck9TIG5hbWU6ICJmcmVlYnNkIiwgdmVyc2lvbjogIjExLjEtcmVsZWFzZS1wMSIsIGFyY2g6ICJpMzg2IiwgZmFtaWx5OiAidW5peCIKCndvcmtzIGZsYXdsZXNzbHkuCgpBbnkgaWRlYXM/CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM4NzgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIFNlcCAgNiAyMDoyODo0MSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM4NzgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQUY3NUMxQUNGMQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsICA2IFNlcCAyMDE3IDIwOjI4OjQxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzQwOCBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IFNlcCAyMDE3IDIwOjI4OjQxIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MjkyIGludm9rZWQgYnkgdWlkIDUwMCk7IDYgU2VwIDIwMTcgMjA6Mjg6NDEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3Mjc5IGludm9rZWQgYnkgdWlkIDk5KTsgNiBTZXAgMjAxNyAyMDoyODo0MCAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMDYgU2VwIDIwMTcgMjA6Mjg6NDAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA2QTAzMzE4QjUyRgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgIDYgU2VwIDIwMTcgMjA6Mjg6NDAgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4yMjEKWC1TcGFtLUxldmVsOgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9LTAuMjIxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LCBSQ1ZEX0lOX01TUElLRV9IMz0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBSQ1ZEX0lOX1NPUkJTX1NQQU09MC41LCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBnb0R0RlVsc1FOT0ogZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglXZWQsICA2IFNlcCAyMDE3IDIwOjI4OjM5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1vdXQuZ214Lm5ldCAobW91dC5nbXgubmV0IFsyMTIuMjI3LjE1LjE1XSkKCWJ5IG14MS1sdy1ldS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LWV1LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTIGlkIDJERjM2NUZBQzkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsICA2IFNlcCAyMDE3IDIwOjI4OjM5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIEthcmwtSGVpbnpzLU1CUC5mcml0ei5ib3ggKFsxODguOTcuMjE1LjJdKSBieSBtYWlsLmdteC5jb20KIChtcmdteDAwMiBbMjEyLjIyNy4xNy4xOTBdKSB3aXRoIEVTTVRQU0EgKE5lbWVzaXMpIGlkCiAwTHlXQVEtMWRNZERhMms1Ty0wMTVvbUkgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMDYgU2VwIDIwMTcKIDIyOjI4OjMyICswMjAwClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogaW5mb0Bzb2ViZXMuZGUKRnJvbTogS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBnbXguZGU+ClN1YmplY3Q6IG1hdmVuLWRlcGVuZGVuY3ktcGx1Z2luCk1lc3NhZ2UtSUQ6IDxmMWZjNTE0My02ZGNkLTgyMDgtMmNhNy00ZDhhZTFjMDhkMmFAZ214LmRlPgpEYXRlOiBXZWQsIDYgU2VwIDIwMTcgMjI6Mjg6MzIgKzAyMDAKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTE7IHJ2OjUyLjApCiBHZWNrby8yMDEwMDEwMSBUaHVuZGVyYmlyZC81Mi4yLjEKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkCkNvbnRlbnQtTGFuZ3VhZ2U6IGVuLUdCCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKWC1Qcm92YWdzLUlEOiBWMDM6SzA6Y0dmdHAzYW5LLzUyQ0tKeFFLRG9HZ1E3RHdzTFU4aGwwcUdaWnI3ZHdFcmNCN1d6Tmp3CiBwbE5aS3VrM0lZVkVWcWRTM3d4SVIxTXVIaHZWbHZib25jVFVZek1yZE1mYlBtRXdQMHNGdUtQQVVma2VNalJkZ2g5ODJ3aQogMHduVEdJS00vUGNHVFFDaS9BZzQ1UHd3emh2MWRCRWZFVU15TlhWWTVkWmp5VkNWRzJaNFIwaXJncmhRa3dxMnhTQUpCMlYKIGNCTi9vNmRQTkNpNGdxZ3Y1dXlvZz09ClgtVUktT3V0LUZpbHRlcnJlc3VsdHM6IG5vdGp1bms6MTtWMDE6SzA6L1RYZmZsMDRldHM9OkJsZ28wOXU0cFpzRENMdy9xWDhYSTMKIEo5NVRnY1FCNDNnenZvRm9jSkFwaGJnQURnWFNZVXlhNml4dGpRNlAwa2N0VzNmMTI0QnNjclZ0MUpSUTdnMVB5dTlmOTR5alcKIFBjdkhrdUkxMFY0UkN0UlI4QjhhVjJKRk00ZXUxbjlzQUwrK0xCVTJFK3VocWlobmpIRXM4emJhMGxJanpTTHp1Rlk2cmJhQVIKIFNaL0JCbkUrZ2xyNk9MNHJtNmROL2h1cmhnSVptOEpWVXJQWVdFNGl4Z2xPbXptT0doUlIrRDFIMDNVTGlZL0FDdmN0TnArMzcKIHdUOFdQeGQyb1h6VWpPdTBrbnRJWHQvUktGRTMxYlVKcXF3RTRkVHdMdEZ1bzZkZGpyTGxHaE41Nm5hWlE3bEZmSldmenEyYm8KIElWazZ1OUlQQVpqbDJQR3VLVGZTUDdzK0JSMjRPOEZWRXoxSlVhZ3BBRlhZVUJncEJTMW1xOGYyNFVBdjJWUE1jdG9IdlpCNlAKIGRwNzRtK3JxeVJTajlYRnpmOFdTaitkRVlZSG91MW9oR1ArWlRWTWQxN1hteVdyN2JDZlArcHNzaU9ZdjliZlBqRTl3MDNFY1kKIDZpVSswTXlZMVBvWG5FckJjTVlNL1lvL28rczNqL0ZoY1dZMkJTWXVDNUdzcTZCQ1AvTm9NaittYmFTd014dkZ5MmtSRlVRWEMKIHMzanB6N1MrOFduMjY2dzVIMTlraDZleCtCekdyK2NacnVBSFdkbEpPYWViZDREZytIVEFXVXY5YXZWem1DWFA0VUVDS3hLYTUKIGRxeUdrZ3VhcWoxVTZRbXRLT3g1c1V6Qi81UUw5eWwzUzhNN0pqdndXVjZJZThSNkxRY2FJbE90OXpaMU1VRkZtT3NTSzFoQ2cKIGtOSHZBd0dvYTJNcm1DNUtqZXo3NVBMUTNSL2JPUitHWUF3SWtIZ2xuYlBSdmh2cXBJcjVIcGdJdE1FQVFCSUdJOTVOVmRHQWYKIDNnTnYyV3NHNnpvUVdFWFQySThNeGlOREZubGNuODVrSkI0cXJIbGZQaGNHVjFSVzhyVEdDZUxuWERqRERYOURrZVZtc0h1emsKIDM1TnpvdXJ2OUZCMGJhNzFWVUpBZWk1TllkOXlseUp2MVcwTXhyK0dOdjdJVndmSTUwPQoKSGksCgpJIHdvdWxkIGxpa2UgdG8gbWFrZSBhIG5ldyByZWxlYXNlIG9mIHRoZSBjdXJyZW50IHN0YXRlIG9mIAptYXZlbi1kZXBlbmRlbmN5LXBsdWdpbiAuLgoKQXJlIHRoZXJlIGFueSBvYmplY3Rpb25zIGFib3V0IHRoaXM/IG9yIGFyZSBpc3N1ZXMgbWlzc2VkPwoKS2luZCByZWdhcmRzCkthcmwgSGVpbnogTWFyYmFpc2UKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDg3OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgRGVjIDMwIDE0OjE1OjQ3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg3OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4ODYxQzE3Mjc3Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMzAgRGVjIDIwMTcgMTQ6MTU6NDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxMjA5NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMCBEZWMgMjAxNyAxNDoxNTo0NyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTIwMDggaW52b2tlZCBieSB1aWQgNTAwKTsgMzAgRGVjIDIwMTcgMTQ6MTU6NDcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMTk5MyBpbnZva2VkIGJ5IHVpZCA5OSk7IDMwIERlYyAyMDE3IDE0OjE1OjQ2IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAzMCBEZWMgMjAxNyAxNDoxNTo0NiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDY4QTUzQzA2MTE7CglTYXQsIDMwIERlYyAyMDE3IDE0OjE1OjQ2ICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogLTAuMjIxClgtU3BhbS1MZXZlbDoKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPS0wLjIyMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bS0FNX05VTVNVQkpFQ1Q9MC41LCBSQ1ZEX0lOX0ROU1dMX0xPVz0tMC43LAoJUkNWRF9JTl9NU1BJS0VfSDQ9LTAuMDEsIFJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxLCBTUEZfUEFTUz0tMC4wMDFdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjddKSAoYW1hdmlzZC1uZXcsIHBvcnQgMTAwMjQpCgl3aXRoIEVTTVRQIGlkIDFxcWlSanpWWjczMzsgU2F0LCAzMCBEZWMgMjAxNyAxNDoxNTo0NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNS4xNV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBEOTk1OTVGMjRDOwoJU2F0LCAzMCBEZWMgMjAxNyAxNDoxNTo0MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBLYXJsLUhlaW56cy1NYWNCb29rLVByby5sb2NhbCAoWzkyLjIwNC4xMjEuMjQwXSkgYnkKIG1haWwuZ214LmNvbSAobXJnbXgwMDIgWzIxMi4yMjcuMTcuMTkwXSkgd2l0aCBFU01UUFNBIChOZW1lc2lzKSBpZAogMExqcUx4LTFmNkdNaTB2ZHAtMDBidlp6OyBTYXQsIDMwIERlYyAyMDE3IDE1OjE1OjM3ICswMTAwClJlcGx5LVRvOiBpbmZvQHNvZWJlcy5kZQpTdWJqZWN0OiBSZTogTWF2ZW4gMy41LjM6IE1ORy02MzA1ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwKIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KUmVmZXJlbmNlczogPGFkY2M5N2E2LTJmYzItMDg1Yi02Y2E3LTZkNGFjMDg5NTJjZkBnbXguZGU+CiA8b3AuemJ6Nnc0czVrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkZyb206IEthcmwgSGVpbnogTWFyYmFpc2UgPGtobWFyYmFpc2VAZ214LmRlPgpNZXNzYWdlLUlEOiA8ZjMyMzYwZDctNjRkMi05NzU5LTk3MWUtODY1NmM0MmRkMDIxQGdteC5kZT4KRGF0ZTogU2F0LCAzMCBEZWMgMjAxNyAxNToxNTo0MSArMDEwMApVc2VyLUFnZW50OiBNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAxMC4xMTsgcnY6NTIuMCkKIEdlY2tvLzIwMTAwMTAxIFRodW5kZXJiaXJkLzUyLjUuMApNSU1FLVZlcnNpb246IDEuMApJbi1SZXBseS1UbzogPG9wLnpiejZ3NHM1a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQKQ29udGVudC1MYW5ndWFnZTogZW4tR0IKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApYLVByb3ZhZ3MtSUQ6IFYwMzpLMDprTlZ0RnZpeTBGMFQvSjVSTUl6TXpTK0ZOVGhTMFh6WjRYQSs5R2ZvaGlXa1pqbmYrYzIKIGFDMi9XMkhZUExkYXUrWWNBQlBhSzlKdklSSytXUjQxRStvMlpjVGVuUW9BVFhrNkp6aS8rUzcxY3NxaFJNZFcrMEdrcUhNCiBINVRDR0laempkVmFvWVl1NlBQeUFZY3hZTHdZV3dLbEFQSGFERTBYcGlPL3NYTEQ5MzhrODIyVTJGRUNVMUNiS1VuRXVUUAogWGl1NndGUWh4WVZpdzJJWFo4TWZBPT0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDp6WlV5RmlMSXU0Yz06R0pCckFSSjlMTmJJWllnUURtRUxmLwogcVg4di8zY2hFUDU0Y1ZMcnFQanlhaml1WVVJcmNJaDhLbGdSL1ZZemlmTjZLNTZ6R0YvdWxVSHh4SElTdWpZZzl3TDBlemkxTQogOFJqUUVXR3V2MjVLNVlNRXo2QnhaRjRnNUVQTEl0Z25rbVkvZnZtNlVod2tjM0N2eUdDNnA2cm53R29aRlBOQkVDS0hoVnU2bgogYlR0RUVvTUJSaDhWc09lVkw1UG43ZnZYVEFUT1k5TWhBeWt2cEFpMmxiUDk3c2Y1dVZkSC95dnB6ZzdGcDk4eTVoS0pyczJWSAogaW1LaGpnQzU5WXRaT2paVWQvYlVqd29yMGxRdGNTd20raUlwVFR4ejJtMVpBSyt0NUVPcWo1aFhneGlsYVVMcVFNb2xQcCtSdwogd0ZQS2Y4YXFiN25BbnVLT2tKVW9WNG1ya2llWThXTEdKaC8wUHFUM3ZrcE5kL3JGdUx5TlZHbGRNc1VHZXZIT2hoQ3dmSTU2RwogRFNQdWZlWkJTWnVTNnpaaUpQNnovWHAwN1lHbnRYU1o0SHdDSDZ1V29oZldQWjg3aDBmcmg2Z1RIa3grQitRNWk4c2lUNTZKWQogeFBlODJWZmJId3Nxa0RSSHRTeTUzWU8ycjBCd1RSKzBjQlV4bER0dXU2YjVUV0pDWHk4TWtLTzVNY01RcWlnMHZVWXJwZWVYawogRkY1VUNUSzFhdGE0SHFDSTJSajU0bzdRRTNsVE9vaDBFY2o3OEtnTGh6ano5U3ZmT2kyUmMwS3E2UkxiQkdha3pWaERiYjRmNQogSTRVbXVGRTdhbjZRUnQ4YU4xakkvUzk3eWxiU0RVbHZObTU0ejRrQXBsR1pCTmJrM0xCdlg1VFRra1Y3aTJzdk5EKzh5N3l5dQogaVMxNUVaREZmbTN4YTJMUlZVL25RZmc1dHpqZUVTRC9PdVI3Zm1FZElqQjY4ZWZvZEpLR3dlNmRsYllpMjc5QlpJajdjbTRqdAogSXdqbExPNThNR01jVTJMQ2dhOUhlY09Kb0t2anZlckZ5WnVkSVpqNzU4d0hvNmpOWHI4dzFXczBQbTRrc1NpM0pONVZmZUNZSAogc1ptQ1hrZUNBYTBtLzdvSWNybVR4ZkpZMXZTODlWWWVYQ2k0SUw2em1pZW5kZkRocWs9CgpIaSBSb2JlcnQsCgpPbiAyOS8xMi8xNyAxMToxOCwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4gSGkgS2FybCBIZWlueiwKPiAKPiBJIHRoaW5rIHRoZSBSRWdFeHAgdXNhZ2UgY2FuIGJlIGltcHJvdmVkLgo+IE5vdyBpdCB1c2VkIGZvciBidWlsZGluZyB1cCBhIG5ldyBTdHJpbmcgZm9sbG93ZWQgYnkgc2VhcmNoaW5nLCBJIHdvdWxkIAo+IGV4cGVjdCB0aGF0IHNlYXJjaGluZyBmb3IgJHsoLispfSBncm91cHMgdG8gYmUgbW9yZSBlZmZpY2llbnQuCgpEbyB5b3UgaGF2ZSBzb21lIHN1Z2dlc3Rpb25zIHdoYXQgeW91IGV4YWN0bHkgaGF2ZSBpbiBtaW5kPwoKS2luZCByZWdhcmRzCkthcmwgSGVpbnogTWFyYmFpc2UKPiAKPiB0aGFua3MsCj4gUm9iZXJ0Cj4gCj4gCj4gT24gRnJpLCAyOSBEZWMgMjAxNyAxMToxMDozNiArMDEwMCwgS2FybCBIZWlueiBNYXJiYWlzZSAKPiA8a2htYXJiYWlzZUBnbXguZGU+IHdyb3RlOgo+IAo+PiBIaSwKPj4KPj4gSSB3b3VsZCBsaWtlIHRvIGtub3cgaWYgdGhlcmUgYXJlIGFueSBvYmplY3Rpb25zIHRvIG1lcmdlIE1ORy02MzA1IAo+PiBpbnRvIG1hc3RlciAoSmVua2lucyBpcyBmaW5lIFsxXSkuCj4+Cj4+IEtpbmQgcmVnYXJkcwo+PiBLYXJsIEhlaW56IE1hcmJhaXNlCj4+Cj4+IFsxXTogCj4+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvam9iL21hdmVuLXdpcC9qb2IvbWF2ZW4vam9iL01ORy02MzA1LXZhbGlkYXRpb24tb2YtY2ktZnJpZW5kbHkvIAo+PgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzODc2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBTZXAgIDYgMTU6MzE6NDcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzODc2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDBFRDQ2MTlDODAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAgNiBTZXAgMjAxNyAxNTozMTo0NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDU1NDQ3IGludm9rZWQgYnkgdWlkIDUwMCk7IDYgU2VwIDIwMTcgMTU6MzE6NDYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU1MzMxIGludm9rZWQgYnkgdWlkIDUwMCk7IDYgU2VwIDIwMTcgMTU6MzE6NDUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NTMyMCBpbnZva2VkIGJ5IHVpZCA5OSk7IDYgU2VwIDIwMTcgMTU6MzE6NDQgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDA2IFNlcCAyMDE3IDE1OjMxOjQ0ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIENGMTkwRjMyODA7IFdlZCwgIDYgU2VwIDIwMTcgMTU6MzE6NDQgKzAwMDAgKFVUQykKRnJvbTogbWF0dG5lbHNvbiA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDxnaXQtcHItMTI4LW1hdmVuLXBsdWdpbnNAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXBsdWdpbnMgcHVsbCByZXF1ZXN0ICMxMjg6IE1KREVQUy05IEludHJvZHVjZSBuYW1lZCBwcm9wZXJ0eSBmb3IgZmFpbE8uLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IFdlZCwgIDYgU2VwIDIwMTcgMTU6MzE6NDQgKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIG1hdHRuZWxzb24gb3BlbmVkIGEgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9wdWxsLzEyOAoKICAgIE1KREVQUy05IEludHJvZHVjZSBuYW1lZCBwcm9wZXJ0eSBmb3IgZmFpbE9uV2FybmluZwoKICAgIEludHJvZHVjZSBgamRlcHMuZmFpbE9uV2FybmluZ2AgbmFtZWQgcHJvcGVydHkgdG8gc3VwcG9ydCBjb21tYW5kIGxpbmUgYW5kIGA8cHJvcGVydGllcz5gIGRlY2xhcmF0aW9ucy4KICAgIAogICAgaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NSkRFUFMtOQoKWW91IGNhbiBtZXJnZSB0aGlzIHB1bGwgcmVxdWVzdCBpbnRvIGEgR2l0IHJlcG9zaXRvcnkgYnkgcnVubmluZzoKCiAgICAkIGdpdCBwdWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXR0bmVsc29uL21hdmVuLXBsdWdpbnMgbWpkZXBzLTkKCkFsdGVybmF0aXZlbHkgeW91IGNhbiByZXZpZXcgYW5kIGFwcGx5IHRoZXNlIGNoYW5nZXMgYXMgdGhlIHBhdGNoIGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9wdWxsLzEyOC5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMTI4CiAgICAKLS0tLQpjb21taXQgMTQxZWQzZWY0ODBkMWU5NjFhYmM1YWZkZWViZTJhNTlkNGViYmQ0ZApBdXRob3I6IE1hdHQgTmVsc29uIDxtYXR0Lm5lbHNvbkBjZXJuZXIuY29tPgpEYXRlOiAgIDIwMTctMDktMDZUMTU6MzA6MTBaCgogICAgTUpERVBTLTkgSW50cm9kdWNlIG5hbWVkIHByb3BlcnR5IGZvciBmYWlsT25XYXJuaW5nCgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM5MDktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IFNlcCAgOSAwMjoxNjoyOSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5MDktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNjY4OTExQTZCOAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICA5IFNlcCAyMDE3IDAyOjE2OjI5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzc2MTEgaW52b2tlZCBieSB1aWQgNTAwKTsgOSBTZXAgMjAxNyAwMjoxNjoyMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzc0OTIgaW52b2tlZCBieSB1aWQgNTAwKTsgOSBTZXAgMjAxNyAwMjoxNjoyMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc3NDgxIGludm9rZWQgYnkgdWlkIDk5KTsgOSBTZXAgMjAxNyAwMjoxNjoyMiAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDkgU2VwIDIwMTcgMDI6MTY6MjIgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgQ0U0NzhGNTUzRDsgU2F0LCAgOSBTZXAgMjAxNyAwMjoxNjoyMiArMDAwMCAoVVRDKQpGcm9tOiBzcHlodW50ZXI5OSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDxnaXQtcHItMTI5LW1hdmVuLXBsdWdpbnNAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXBsdWdpbnMgcHVsbCByZXF1ZXN0ICMxMjk6IE1QREYtODEgbWVyZ2luZyBpbiB0aGUgbmVlZGVkIGRveGlhIG1vZHVsZXMuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IFNhdCwgIDkgU2VwIDIwMTcgMDI6MTY6MjIgKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIHNweWh1bnRlcjk5IG9wZW5lZCBhIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvcHVsbC8xMjkKCiAgICBNUERGLTgxIG1lcmdpbmcgaW4gdGhlIG5lZWRlZCBkb3hpYSBtb2R1bGVzIHJlcXVpcmVkIGZvciBjb3B5cmlnaHQgb3bigKYKCiAgICDigKZlcnJpZGVzLCBBZGQgcHJvcGVydHkgYmFzZWQgb3ZlcnJpZGVzIGZvciB0aGUgY29weXJpZ2h0IGhlYWRlcnMuIE1vc3Qgb2YgdGhlIHJlYWwgY2hhbmdlcyB3ZXJlIGluIEZvQWdncmVnYXRlZFNpbmsKCllvdSBjYW4gbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3QgaW50byBhIEdpdCByZXBvc2l0b3J5IGJ5IHJ1bm5pbmc6CgogICAgJCBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vc3B5aHVudGVyOTkvbWF2ZW4tcGx1Z2lucyBmZWF0dXJlL01QREYtODEKCkFsdGVybmF0aXZlbHkgeW91IGNhbiByZXZpZXcgYW5kIGFwcGx5IHRoZXNlIGNoYW5nZXMgYXMgdGhlIHBhdGNoIGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9wdWxsLzEyOS5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMTI5CiAgICAKLS0tLQpjb21taXQgMjdjMjIxZThjZWNlN2E1Yjg1NzRhMGFlYjU5M2VmYmQwMjU0N2NjZgpBdXRob3I6IEFsZXggTydSZWUgPGFsZXhvcmVlQGFwYWNoZS5vcmc+CkRhdGU6ICAgMjAxNy0wOS0wOVQwMjoxNDoxNFoKCiAgICBNUERGLTgxIG1lcmdpbmcgaW4gdGhlIG5lZWRlZCBkb3hpYSBtb2R1bGVzIHJlcXVpcmVkIGZvciBjb3B5cmlnaHQgb3ZlcnJpZGVzLCBBZGQgcHJvcGVydHkgYmFzZWQgb3ZlcnJpZGVzIGZvciB0aGUgY29weXJpZ2h0IGhlYWRlcnMuIE1vc3Qgb2YgdGhlIHJlYWwgY2hhbmdlcyB3ZXJlIGluIEZvQWdncmVnYXRlZFNpbmsKCi0tLS0KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyMzk3OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gU2VwIDExIDE3OjMzOjMyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzk3OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBCNzNFMjFBNjk0Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMTc6MzM6MzIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2MzgwNiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAxNzozMzozMiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjM3MTcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgU2VwIDIwMTcgMTc6MzM6MzEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MzcwNiBpbnZva2VkIGJ5IHVpZCA5OSk7IDExIFNlcCAyMDE3IDE3OjMzOjMxIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAxMSBTZXAgMjAxNyAxNzozMzozMSArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCAxMjkwN0Y1NzZDOyBNb24sIDExIFNlcCAyMDE3IDE3OjMzOjMxICswMDAwIChVVEMpCkZyb206IGRlamFuMjYwOSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDxnaXQtcHItMTI5LW1hdmVuQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbiBwdWxsIHJlcXVlc3QgIzEyOTogW01ORy02MjgyXSBqYW5zaSBkb3duZ3JhZGVkIGZyb20gMS4xNiB0byAxLjE1IGluIG9yLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpEYXRlOiBNb24sIDExIFNlcCAyMDE3IDE3OjMzOjMxICswMDAwIChVVEMpCgpHaXRIdWIgdXNlciBkZWphbjI2MDkgb3BlbmVkIGEgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vcHVsbC8xMjkKCiAgICBbTU5HLTYyODJdIGphbnNpIGRvd25ncmFkZWQgZnJvbSAxLjE2IHRvIDEuMTUgaW4gb3JkZXIgdG8gc29sdmUgaXNzdWVzIHMgb24gV2luZG93cy9HaXRCYXNoCgogICAgSklSQSB0aWNrZXQ6IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyODIKICAgIAoKCllvdSBjYW4gbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3QgaW50byBhIEdpdCByZXBvc2l0b3J5IGJ5IHJ1bm5pbmc6CgogICAgJCBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vZGVqYW4yNjA5L21hdmVuIE1ORy02MjgyLWphbnNpLWRvd25ncmFkZQoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHJldmlldyBhbmQgYXBwbHkgdGhlc2UgY2hhbmdlcyBhcyB0aGUgcGF0Y2ggYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9wdWxsLzEyOS5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMTI5CiAgICAKLS0tLQpjb21taXQgZTFmMTQwZmJmYzVhYTJiNDQzYjU2YmNkODg3NTlhNzgyMjFjZTMzNQpBdXRob3I6IGRlamFuMjYwOSA8ZGVqYW4yNjA5QGdtYWlsLmNvbT4KRGF0ZTogICAyMDE3LTA5LTExVDE3OjI1OjU1WgoKICAgIFtNTkctNjI4Ml0gamFuc2kgZG93bmdyYWRlZCBmcm9tIDEuMTYgdG8gMS4xNSBpbiBvcmRlciB0byBzb2x2ZSBpc3N1ZXMgb24gV2luZG93cy9HaXRCYXNoCiAgICAKICAgIG5vdGU6IHJlbGF0ZWQgdG8gTU5HLTYyMDUgYW5kIE1ORy02MjE4CgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQwODYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIFNlcCAyMiAxMjozNDo0MSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwODYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMDhDNTMxMEVGRgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDIyIFNlcCAyMDE3IDEyOjM0OjQxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjAzMjggaW52b2tlZCBieSB1aWQgNTAwKTsgMjIgU2VwIDIwMTcgMTI6MzQ6NDAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIwMjQ0IGludm9rZWQgYnkgdWlkIDUwMCk7IDIyIFNlcCAyMDE3IDEyOjM0OjQwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjAyMzMgaW52b2tlZCBieSB1aWQgOTkpOyAyMiBTZXAgMjAxNyAxMjozNDo0MCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMjIgU2VwIDIwMTcgMTI6MzQ6NDAgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgMzAxREZGMzMxRDsgRnJpLCAyMiBTZXAgMjAxNyAxMjozNDo0MCArMDAwMCAoVVRDKQpGcm9tOiBrbGFyZW4gPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8Z2l0LXByLTEzMC1tYXZlbi1wbHVnaW5zQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1wbHVnaW5zIHB1bGwgcmVxdWVzdCAjMTMwOiBbTUpBVkFET0MtNDk3XSBqYXZhZG9jOmFnZ3JlZ2F0ZSBpZ25vcmVzIGV4Li4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpEYXRlOiBGcmksIDIyIFNlcCAyMDE3IDEyOjM0OjQwICswMDAwIChVVEMpCgpHaXRIdWIgdXNlciBrbGFyZW4gb3BlbmVkIGEgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9wdWxsLzEzMAoKICAgIFtNSkFWQURPQy00OTddIGphdmFkb2M6YWdncmVnYXRlIGlnbm9yZXMgZXhjbHVkZVBhY2thZ2VOYW1lcwoKICAgIFBhdGNoIHRvIGZpeCBpc3N1ZTogaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NSkFWQURPQy00OTcKCllvdSBjYW4gbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3QgaW50byBhIEdpdCByZXBvc2l0b3J5IGJ5IHJ1bm5pbmc6CgogICAgJCBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20va2xhcmVuL21hdmVuLXBsdWdpbnMgTUpBVkFET0MtNDk3CgpBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gcmV2aWV3IGFuZCBhcHBseSB0aGVzZSBjaGFuZ2VzIGFzIHRoZSBwYXRjaCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvcHVsbC8xMzAucGF0Y2gKClRvIGNsb3NlIHRoaXMgcHVsbCByZXF1ZXN0LCBtYWtlIGEgY29tbWl0IHRvIHlvdXIgbWFzdGVyL3RydW5rIGJyYW5jaAp3aXRoIChhdCBsZWFzdCkgdGhlIGZvbGxvd2luZyBpbiB0aGUgY29tbWl0IG1lc3NhZ2U6CgogICAgVGhpcyBjbG9zZXMgIzEzMAogICAgCi0tLS0KY29tbWl0IDg4MzE0Mzc4MWU3OTk5MmE0NDQzMzAwZmRmZDFjMjdiNmIwYzc5ZDgKQXV0aG9yOiBBbnRvbiBLbGFyZW4gPGFudG9uLmtsYXJlbkBuZW90ZWNobm9sb2d5LmNvbT4KRGF0ZTogICAyMDE3LTA5LTIyVDEyOjMyOjM4WgoKICAgIE1KQVZBRE9DLTQ5NyBtb3ZlIGV4Y2x1ZGVkIHBhY2thZ2VzIHRvIGFmdGVyIHNvdXJjZXBhdGggcmVjYWxjdWxhdGlvbnMKCi0tLS0KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDA4Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgU2VwIDIzIDE1OjM3OjAwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDA4Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA1OUREQjEwMkQ0Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMjMgU2VwIDIwMTcgMTU6Mzc6MDAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxMDAxIGludm9rZWQgYnkgdWlkIDUwMCk7IDIzIFNlcCAyMDE3IDE1OjM3OjAwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MjYgaW52b2tlZCBieSB1aWQgNTAwKTsgMjMgU2VwIDIwMTcgMTU6MzY6NTkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MTUgaW52b2tlZCBieSB1aWQgOTkpOyAyMyBTZXAgMjAxNyAxNTozNjo1OSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMjMgU2VwIDIwMTcgMTU6MzY6NTkgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgOEYxQkFGNTc0ODsgU2F0LCAyMyBTZXAgMjAxNyAxNTozNjo1OSArMDAwMCAoVVRDKQpGcm9tOiBNaWNoYWVsV2FybmVja2UgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8Z2l0LXByLTEzMC1tYXZlbkBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4gcHVsbCByZXF1ZXN0ICMxMzA6IFtNTkctNjIzMV0gVmFsaWRhdGUgc2NvcGUgaW4gZGVwZW5kZW5jeU1hbmFnZW1lbnQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IFNhdCwgMjMgU2VwIDIwMTcgMTU6MzY6NTkgKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIE1pY2hhZWxXYXJuZWNrZSBvcGVuZWQgYSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9wdWxsLzEzMAoKICAgIFtNTkctNjIzMV0gVmFsaWRhdGUgc2NvcGUgaW4gZGVwZW5kZW5jeU1hbmFnZW1lbnQKCiAgICAKCllvdSBjYW4gbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3QgaW50byBhIEdpdCByZXBvc2l0b3J5IGJ5IHJ1bm5pbmc6CgogICAgJCBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vTWljaGFlbFdhcm5lY2tlL21hdmVuIE1ORy02MjEzCgpBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gcmV2aWV3IGFuZCBhcHBseSB0aGVzZSBjaGFuZ2VzIGFzIHRoZSBwYXRjaCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL3B1bGwvMTMwLnBhdGNoCgpUbyBjbG9zZSB0aGlzIHB1bGwgcmVxdWVzdCwgbWFrZSBhIGNvbW1pdCB0byB5b3VyIG1hc3Rlci90cnVuayBicmFuY2gKd2l0aCAoYXQgbGVhc3QpIHRoZSBmb2xsb3dpbmcgaW4gdGhlIGNvbW1pdCBtZXNzYWdlOgoKICAgIFRoaXMgY2xvc2VzICMxMzAKICAgIAotLS0tCmNvbW1pdCA0NTg4ZDkyYmNkZTA4ZjkwZTYyNDZjOTRhMWE3NmJhODBkODJkMTRhCkF1dGhvcjogTWljaGFlbCBXYXJuZWNrZSA8MTMzNjFAbm9yZGFrYWRlbWllLmRlPgpEYXRlOiAgIDIwMTctMDktMjNUMTU6MzQ6MTRaCgogICAgW01ORy02MjMxXSBWYWxpZGF0ZSBzY29wZSBpbiBkZXBlbmRlbmN5TWFuYWdlbWVudAoKLS0tLQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MTQ0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBPY3QgIDQgMTY6MDk6NTQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTQ0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDlBRDRGMTA5NjAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAgNCBPY3QgMjAxNyAxNjowOTo1NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ4MjU0IGludm9rZWQgYnkgdWlkIDUwMCk7IDQgT2N0IDIwMTcgMTY6MDk6NTQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ4MTc5IGludm9rZWQgYnkgdWlkIDUwMCk7IDQgT2N0IDIwMTcgMTY6MDk6NTQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0ODE2OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDQgT2N0IDIwMTcgMTY6MDk6NTMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDA0IE9jdCAyMDE3IDE2OjA5OjUzICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIEQ4RTNFRjU2QTU7IFdlZCwgIDQgT2N0IDIwMTcgMTY6MDk6NTMgKzAwMDAgKFVUQykKRnJvbTogc2dhcmVsbGUgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8Z2l0LXByLTEzMS1tYXZlbi1wbHVnaW5zQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1wbHVnaW5zIHB1bGwgcmVxdWVzdCAjMTMxOiBNUERGLTQ4IE1ha2UgUERGIHBsdWdpbiBydW4gcmVwb3J0cyB3aGVuIHVzLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpEYXRlOiBXZWQsICA0IE9jdCAyMDE3IDE2OjA5OjUzICswMDAwIChVVEMpCgpHaXRIdWIgdXNlciBzZ2FyZWxsZSBvcGVuZWQgYSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL3B1bGwvMTMxCgogICAgTVBERi00OCBNYWtlIFBERiBwbHVnaW4gcnVuIHJlcG9ydHMgd2hlbiB1c2VkIHdpdGggTWF2ZW4gMwoKICAgIAoKWW91IGNhbiBtZXJnZSB0aGlzIHB1bGwgcmVxdWVzdCBpbnRvIGEgR2l0IHJlcG9zaXRvcnkgYnkgcnVubmluZzoKCiAgICAkIGdpdCBwdWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9zZ2FyZWxsZS9tYXZlbi1wbHVnaW5zIE1QREYtNDgKCkFsdGVybmF0aXZlbHkgeW91IGNhbiByZXZpZXcgYW5kIGFwcGx5IHRoZXNlIGNoYW5nZXMgYXMgdGhlIHBhdGNoIGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9wdWxsLzEzMS5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMTMxCiAgICAKLS0tLQpjb21taXQgNWMxZmY5M2IyZjc4ZDk5MGQyNmVlMTBlN2YyM2U2MDhhMWU5ZjA5MgpBdXRob3I6IFNlYmFzdGllbiBHYXJlbGxlIDxzZWJhc3RpZW4uZ2FyZWxsZUBnZS5jb20+CkRhdGU6ICAgMjAxNy0xMC0wNFQxNjowNTo1OFoKCiAgICBNUERGLTQ4IE1ha2UgUERGIHBsdWdpbiBydW4gcmVwb3J0cyB3aGVuIHVzZWQgd2l0aCBNYXZlbiAzCgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQwODktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IFNlcCAyMyAxNjozODoyMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwODktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRTlEQjMxMDQ5OQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDIzIFNlcCAyMDE3IDE2OjM4OjE5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzYwMjEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjMgU2VwIDIwMTcgMTY6Mzg6MTkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc1OTM3IGludm9rZWQgYnkgdWlkIDUwMCk7IDIzIFNlcCAyMDE3IDE2OjM4OjE5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzU5MjYgaW52b2tlZCBieSB1aWQgOTkpOyAyMyBTZXAgMjAxNyAxNjozODoxOSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMjMgU2VwIDIwMTcgMTY6Mzg6MTkgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgMjA1QzJGNTgxOTsgU2F0LCAyMyBTZXAgMjAxNyAxNjozODoxNyArMDAwMCAoVVRDKQpGcm9tOiBNaWNoYWVsV2FybmVja2UgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8Z2l0LXByLTEzMS1tYXZlbkBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4gcHVsbCByZXF1ZXN0ICMxMzE6IFtNTkctNjIxM10gVmFsaWRhdGUgc2NvcGUgaW4gZGVwZW5kZW5jeU1hbmFnZW1lbnQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IFNhdCwgMjMgU2VwIDIwMTcgMTY6Mzg6MTcgKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIE1pY2hhZWxXYXJuZWNrZSBvcGVuZWQgYSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9wdWxsLzEzMQoKICAgIFtNTkctNjIxM10gVmFsaWRhdGUgc2NvcGUgaW4gZGVwZW5kZW5jeU1hbmFnZW1lbnQKCiAgICBUaGlzIGlzIGEgcGF0Y2ggZm9yIE1ORy02MjEzOiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MjEzCgpZb3UgY2FuIG1lcmdlIHRoaXMgcHVsbCByZXF1ZXN0IGludG8gYSBHaXQgcmVwb3NpdG9yeSBieSBydW5uaW5nOgoKICAgICQgZ2l0IHB1bGwgaHR0cHM6Ly9naXRodWIuY29tL01pY2hhZWxXYXJuZWNrZS9tYXZlbiBNTkctNjIxMwoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHJldmlldyBhbmQgYXBwbHkgdGhlc2UgY2hhbmdlcyBhcyB0aGUgcGF0Y2ggYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9wdWxsLzEzMS5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMTMxCiAgICAKLS0tLQpjb21taXQgY2NlNjcyY2YyNzhjYTUwYmUyOTNmY2I4ZDcyZGE0MjM4Yjg1Y2MzYwpBdXRob3I6IE1pY2hhZWwgV2FybmVja2UgPDEzMzYxQG5vcmRha2FkZW1pZS5kZT4KRGF0ZTogICAyMDE3LTA5LTIzVDE2OjM3OjA5WgoKICAgIFtNTkctNjIxM10gVmFsaWRhdGUgc2NvcGUgaW4gZGVwZW5kZW5jeU1hbmFnZW1lbnQKCi0tLS0KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDE1MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgT2N0ICA2IDE1OjAwOjU4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDE1MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDQ0RDNzEwODFCCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgIDYgT2N0IDIwMTcgMTU6MDA6NTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzMzg5MyBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IE9jdCAyMDE3IDE1OjAwOjU4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMzgxNyBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IE9jdCAyMDE3IDE1OjAwOjU4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzM4MDYgaW52b2tlZCBieSB1aWQgOTkpOyA2IE9jdCAyMDE3IDE1OjAwOjU4IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAwNiBPY3QgMjAxNyAxNTowMDo1OCArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCAwNzUyMUY1NzYwOyBGcmksICA2IE9jdCAyMDE3IDE1OjAwOjU4ICswMDAwIChVVEMpCkZyb206IHNnYXJlbGxlIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JRDogPGdpdC1wci0xMzItbWF2ZW4tcGx1Z2luc0BnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tcGx1Z2lucyBwdWxsIHJlcXVlc3QgIzEzMjogTVBERi00ODogVXBkYXRlIHNpdGUgZG9jdW1lbnRhdGlvbiAmIG5vbiBzdS4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KRGF0ZTogRnJpLCAgNiBPY3QgMjAxNyAxNTowMDo1OCArMDAwMCAoVVRDKQoKR2l0SHViIHVzZXIgc2dhcmVsbGUgb3BlbmVkIGEgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9wdWxsLzEzMgoKICAgIE1QREYtNDg6IFVwZGF0ZSBzaXRlIGRvY3VtZW50YXRpb24gJiAgbm9uIHN1cHBvcnRlZCByZXBvcnQgcGx1Z2lucy4KCiAgICBSZWFkeSBmb3IgMS40IHJlbGVhc2UuCgpZb3UgY2FuIG1lcmdlIHRoaXMgcHVsbCByZXF1ZXN0IGludG8gYSBHaXQgcmVwb3NpdG9yeSBieSBydW5uaW5nOgoKICAgICQgZ2l0IHB1bGwgaHR0cHM6Ly9naXRodWIuY29tL3NnYXJlbGxlL21hdmVuLXBsdWdpbnMgTVBERi00OAoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHJldmlldyBhbmQgYXBwbHkgdGhlc2UgY2hhbmdlcyBhcyB0aGUgcGF0Y2ggYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL3B1bGwvMTMyLnBhdGNoCgpUbyBjbG9zZSB0aGlzIHB1bGwgcmVxdWVzdCwgbWFrZSBhIGNvbW1pdCB0byB5b3VyIG1hc3Rlci90cnVuayBicmFuY2gKd2l0aCAoYXQgbGVhc3QpIHRoZSBmb2xsb3dpbmcgaW4gdGhlIGNvbW1pdCBtZXNzYWdlOgoKICAgIFRoaXMgY2xvc2VzICMxMzIKICAgIAotLS0tCmNvbW1pdCAwZDQ3MWEyZTI3OTNlMGRhZGNhMTQwNDM5YWViM2RhZDhlOGI5YWQ5CkF1dGhvcjogU2ViYXN0aWVuIEdhcmVsbGUgPHNlYmFzdGllbi5nYXJlbGxlQGdlLmNvbT4KRGF0ZTogICAyMDE3LTEwLTA2VDE0OjUwOjE5WgoKICAgIE1QREYtNDg6IFVwZGF0ZSBzaXRlIGRvY3VtZW50YXRpb24gJiAgbm9uIHN1cHBvcnRlZCByZXBvcnQgcGx1Z2lucy4KCi0tLS0KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDEwNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgU2VwIDI3IDE1OjEyOjMzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDEwNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3OTg3NjEwNUMzCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMjcgU2VwIDIwMTcgMTU6MTI6MzMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyODk4OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBTZXAgMjAxNyAxNToxMjozMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjg4ODMgaW52b2tlZCBieSB1aWQgNTAwKTsgMjcgU2VwIDIwMTcgMTU6MTI6MzMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyODg2MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDI3IFNlcCAyMDE3IDE1OjEyOjMyIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAyNyBTZXAgMjAxNyAxNToxMjozMiArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCA4QjEzMkY1NjE1OyBXZWQsIDI3IFNlcCAyMDE3IDE1OjEyOjMxICswMDAwIChVVEMpCkZyb206IGFua29uIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JRDogPGdpdC1wci0xMzItbWF2ZW5AZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuIHB1bGwgcmVxdWVzdCAjMTMyOiBGaXggdGhlIEphdmFkb2MgdG8gdXNlIGEgcHJvcGVyIEBsaW5rIHRhZyB3aGVuIHBvaW4uLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IFdlZCwgMjcgU2VwIDIwMTcgMTU6MTI6MzEgKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIGFua29uIG9wZW5lZCBhIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL3B1bGwvMTMyCgogICAgRml4IHRoZSBKYXZhZG9jIHRvIHVzZSBhIHByb3BlciBAbGluayB0YWcgd2hlbiBwb2ludGluZyB0byBQcm9qZWN0QnVpbGRlcgoKICAgIAoKWW91IGNhbiBtZXJnZSB0aGlzIHB1bGwgcmVxdWVzdCBpbnRvIGEgR2l0IHJlcG9zaXRvcnkgYnkgcnVubmluZzoKCiAgICAkIGdpdCBwdWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmtvbi9tYXZlbiBwci9kb2MtbWF2ZW5wcm9qZWN0LXByb2plY3RidWlsZGVyLXJlZgoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHJldmlldyBhbmQgYXBwbHkgdGhlc2UgY2hhbmdlcyBhcyB0aGUgcGF0Y2ggYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9wdWxsLzEzMi5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMTMyCiAgICAKLS0tLQpjb21taXQgYzBkYWI0NTc4ZDM0ZTE5ZGQ3NjhiYmNiMjBkM2ZkNDVjZDljZjA0NgpBdXRob3I6IEFuZHJlYXMgS29obiA8YW5kcmVhcy5rb2huQGdtYWlsLmNvbT4KRGF0ZTogICAyMDE3LTA5LTI3VDE1OjExOjQwWgoKICAgIEZpeCB0aGUgSmF2YWRvYyB0byB1c2UgYSBwcm9wZXIgQGxpbmsgdGFnIHdoZW4gcG9pbnRpbmcgdG8gUHJvamVjdEJ1aWxkZXIKCi0tLS0KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDIyNi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgT2N0IDEyIDEzOjI2OjQ2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDIyNi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3RjJDNzEwNjc0Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMTIgT2N0IDIwMTcgMTM6MjY6NDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1OTQxMiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMiBPY3QgMjAxNyAxMzoyNjo0NiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTkzMzEgaW52b2tlZCBieSB1aWQgNTAwKTsgMTIgT2N0IDIwMTcgMTM6MjY6NDYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1OTMxNSBpbnZva2VkIGJ5IHVpZCA5OSk7IDEyIE9jdCAyMDE3IDEzOjI2OjQ1IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAxMiBPY3QgMjAxNyAxMzoyNjo0NSArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBCNEQ0NURGQTA5OyBUaHUsIDEyIE9jdCAyMDE3IDEzOjI2OjQ1ICswMDAwIChVVEMpCkZyb206IGFwZXRyZWxsaSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDxnaXQtcHItMTMzLW1hdmVuLXBsdWdpbnNAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXBsdWdpbnMgcHVsbCByZXF1ZXN0ICMxMzM6IE1KTElOSy00IE5QRSBvbiBleGVjdXRpb24KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IFRodSwgMTIgT2N0IDIwMTcgMTM6MjY6NDUgKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIGFwZXRyZWxsaSBvcGVuZWQgYSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL3B1bGwvMTMzCgogICAgTUpMSU5LLTQgTlBFIG9uIGV4ZWN1dGlvbgoKICAgIFVzaW5nIEFldGhlciB0byByZXNvbHZlIGFydGlmYWN0cy4gVXBncmFkZWQgdG8gTWF2ZW4gMy4xLjEuCgpZb3UgY2FuIG1lcmdlIHRoaXMgcHVsbCByZXF1ZXN0IGludG8gYSBHaXQgcmVwb3NpdG9yeSBieSBydW5uaW5nOgoKICAgICQgZ2l0IHB1bGwgaHR0cHM6Ly9naXRodWIuY29tL2FwZXRyZWxsaS9tYXZlbi1wbHVnaW5zIHRydW5rCgpBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gcmV2aWV3IGFuZCBhcHBseSB0aGVzZSBjaGFuZ2VzIGFzIHRoZSBwYXRjaCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvcHVsbC8xMzMucGF0Y2gKClRvIGNsb3NlIHRoaXMgcHVsbCByZXF1ZXN0LCBtYWtlIGEgY29tbWl0IHRvIHlvdXIgbWFzdGVyL3RydW5rIGJyYW5jaAp3aXRoIChhdCBsZWFzdCkgdGhlIGZvbGxvd2luZyBpbiB0aGUgY29tbWl0IG1lc3NhZ2U6CgogICAgVGhpcyBjbG9zZXMgIzEzMwogICAgCi0tLS0KY29tbWl0IDBiMjhiZDY3YWRhZTg5YTFjNmFkMWQ5ODZlM2JlNzE1NmE5OWI4NDgKQXV0aG9yOiBhbnBldHJlbCA8YW5wZXRyZWxAYW5wZXRyZWwtaHAtcHJvYm9vay00NTAtZzQ+CkRhdGU6ICAgMjAxNy0xMC0xMlQxMzoyNDo0NVoKCiAgICBNSkxJTkstNCBOUEUgb24gZXhlY3V0aW9uCiAgICAKICAgIFVzaW5nIEFldGhlciB0byByZXNvbHZlIGFydGlmYWN0cy4gVXBncmFkZWQgdG8gTWF2ZW4gMy4xLjEuCgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQxMjctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIE9jdCAgMiAxMToyOTo0NSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxMjctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRUExNzgxMEVCQgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sICAyIE9jdCAyMDE3IDExOjI5OjQ0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTc3MTYgaW52b2tlZCBieSB1aWQgNTAwKTsgMiBPY3QgMjAxNyAxMToyOTo0NCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTc2NTQgaW52b2tlZCBieSB1aWQgNTAwKTsgMiBPY3QgMjAxNyAxMToyOTo0NCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE3NjQyIGludm9rZWQgYnkgdWlkIDk5KTsgMiBPY3QgMjAxNyAxMToyOTo0NCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMDIgT2N0IDIwMTcgMTE6Mjk6NDQgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNDA0ODlGNTU2MTsgTW9uLCAgMiBPY3QgMjAxNyAxMToyOTo0MiArMDAwMCAoVVRDKQpGcm9tOiBqdG5vcmQgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8Z2l0LXByLTEzMy1tYXZlbkBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4gcHVsbCByZXF1ZXN0ICMxMzM6IFtNTkctNTYwMF0gRGVwZW5kZW5jeSBtYW5hZ2VtZW50IGltcG9ydCBzaG91bGQgc3VwcC4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KRGF0ZTogTW9uLCAgMiBPY3QgMjAxNyAxMToyOTo0MiArMDAwMCAoVVRDKQoKR2l0SHViIHVzZXIganRub3JkIG9wZW5lZCBhIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL3B1bGwvMTMzCgogICAgW01ORy01NjAwXSBEZXBlbmRlbmN5IG1hbmFnZW1lbnQgaW1wb3J0IHNob3VsZCBzdXBwb3J0IGV4Y2x1c2lvbnMuCgogICAgaHR0cHM6Ly9naXRodWIuY29tL0NocmlzdGlhblNjaHVsdGUvbWF2ZW4vY29tbWl0LzY3OWEzNGI4NmUzZDY5YjdhODMyNDgxYzdmMjFlNWVhYjM2N2NkMTEgY2hlcnJ5IHBpY2tlZCBpbnRvIG1hc3RlcgoKWW91IGNhbiBtZXJnZSB0aGlzIHB1bGwgcmVxdWVzdCBpbnRvIGEgR2l0IHJlcG9zaXRvcnkgYnkgcnVubmluZzoKCiAgICAkIGdpdCBwdWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9qdG5vcmQvbWF2ZW4gTU5HLTU2MDAKCkFsdGVybmF0aXZlbHkgeW91IGNhbiByZXZpZXcgYW5kIGFwcGx5IHRoZXNlIGNoYW5nZXMgYXMgdGhlIHBhdGNoIGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vcHVsbC8xMzMucGF0Y2gKClRvIGNsb3NlIHRoaXMgcHVsbCByZXF1ZXN0LCBtYWtlIGEgY29tbWl0IHRvIHlvdXIgbWFzdGVyL3RydW5rIGJyYW5jaAp3aXRoIChhdCBsZWFzdCkgdGhlIGZvbGxvd2luZyBpbiB0aGUgY29tbWl0IG1lc3NhZ2U6CgogICAgVGhpcyBjbG9zZXMgIzEzMwogICAgCi0tLS0KY29tbWl0IDQxMzA5NzdlMzQ5YzZhYmVkOTI5ZTQ2MzQ3M2NiZDcwM2YxM2YwNDcKQXV0aG9yOiBDaHJpc3RpYW4gU2NodWx0ZSA8c2NodWx0ZUBhcGFjaGUub3JnPgpEYXRlOiAgIDIwMTYtMDYtMTlUMTQ6MzI6MjVaCgogICAgW01ORy01NjAwXSBEZXBlbmRlbmN5IG1hbmFnZW1lbnQgaW1wb3J0IHNob3VsZCBzdXBwb3J0IGV4Y2x1c2lvbnMuCgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0NTktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE5vdiAgOSAxNjoxMjo1NCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0NTktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQkJGNUYxN0IwOQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsICA5IE5vdiAyMDE3IDE2OjEyOjU0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzE0MjMgaW52b2tlZCBieSB1aWQgNTAwKTsgOSBOb3YgMjAxNyAxNjoxMjo1NCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzEzMTYgaW52b2tlZCBieSB1aWQgNTAwKTsgOSBOb3YgMjAxNyAxNjoxMjo1NCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMxMzA0IGludm9rZWQgYnkgdWlkIDk5KTsgOSBOb3YgMjAxNyAxNjoxMjo1NCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMDkgTm92IDIwMTcgMTY6MTI6NTQgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNDMzQUJERkJDQTsgVGh1LCAgOSBOb3YgMjAxNyAxNjoxMjo1MiArMDAwMCAoVVRDKQpGcm9tOiBiZW50YXRoYW0gPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8Z2l0LXByLTEzNC1tYXZlbi1wbHVnaW5zQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1wbHVnaW5zIHB1bGwgcmVxdWVzdCAjMTM0OiBNUEgtMTI0OiBhZGQgYWxpYXMgdG8gZGVzY3JpYmUgZGV0YWlsCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpEYXRlOiBUaHUsICA5IE5vdiAyMDE3IDE2OjEyOjUyICswMDAwIChVVEMpCgpHaXRIdWIgdXNlciBiZW50YXRoYW0gb3BlbmVkIGEgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9wdWxsLzEzNAoKICAgIE1QSC0xMjQ6IGFkZCBhbGlhcyB0byBkZXNjcmliZSBkZXRhaWwKCiAgICBTaW1wbHkgYWRkIHRoZSBhbGlhcyB0byB0aGUgZGV0YWlsIG91dHB1dCwgaWYgaXQgZXhpc3RzLgogICAgCiAgICBTYW1wbGUgb3V0cHV0IGZyb20gb25lIG9mIG91ciBjdXN0b20gcGx1Z2luczoKICAgIGBgYAogICAgW0lORk9dICdoZWxpb3MtZGV2OmRlcGxveS1hcG9sbG8nIGlzIGEgcGx1Z2luIGdvYWwgKGFrYSBtb2pvKS4KICAgIE1vam86ICdoZWxpb3MtZGV2OmRlcGxveS1hcG9sbG8nCiAgICBoZWxpb3MtZGV2OmRlcGxveS1hcG9sbG8KICAgICAgRGVzY3JpcHRpb246IChubyBkZXNjcmlwdGlvbiBhdmFpbGFibGUpCiAgICAgIEltcGxlbWVudGF0aW9uOiBjYS5uYW5vbWV0cmljcy5tYXZlbi5oZWxpb3MuZGV2ZWxvcG1lbnQuRGVwbG95QXBvbGxvTW9qbwogICAgICBMYW5ndWFnZTogamF2YQogICAgCiAgICAgIEF2YWlsYWJsZSBwYXJhbWV0ZXJzOgogICAgCiAgICAgICAgbV9iYm92ZXJsYXkgKERlZmF1bHQ6CiAgICAgICAgJHtwcm9qZWN0LmJ1aWxkLmRpcmVjdG9yeX0vYmJvdmVybGF5LXRtcC8ke3Byb2plY3QuYXJ0aWZhY3RJZH0pCiAgICAgICAgICBBbGlhczogYmJvdmVybGF5CiAgICAgICAgICBSZXF1aXJlZDogdHJ1ZQogICAgICAgICAgVXNlciBwcm9wZXJ0eTogYmJvdmVybGF5LXRtcAogICAgICAgICAgKG5vIGRlc2NyaXB0aW9uIGF2YWlsYWJsZSkKICAgIAogICAgICAgIG1faG9zdAogICAgICAgICAgQWxpYXM6IGhvc3QKICAgICAgICAgIFJlcXVpcmVkOiB0cnVlCiAgICAgICAgICBVc2VyIHByb3BlcnR5OiBzc2hob3N0CiAgICAgICAgICAobm8gZGVzY3JpcHRpb24gYXZhaWxhYmxlKQogICAgCiAgICAgICAgbV9rZXlGaWxlIChEZWZhdWx0OiAke3VzZXIuaG9tZX0vLnNzaC9pZF9yc2EuaGVsaW9zKQogICAgICAgICAgQWxpYXM6IGtleWZpbGUKICAgICAgICAgIFVzZXIgcHJvcGVydHk6IGtleWZpbGUKICAgICAgICAgIChubyBkZXNjcmlwdGlvbiBhdmFpbGFibGUpCiAgICBgYGAKCllvdSBjYW4gbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3QgaW50byBhIEdpdCByZXBvc2l0b3J5IGJ5IHJ1bm5pbmc6CgogICAgJCBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vYmVudGF0aGFtL21hdmVuLXBsdWdpbnMgZmVhdHVyZS9NUEgtMTI0LWFkZC1hbGlhcwoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHJldmlldyBhbmQgYXBwbHkgdGhlc2UgY2hhbmdlcyBhcyB0aGUgcGF0Y2ggYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL3B1bGwvMTM0LnBhdGNoCgpUbyBjbG9zZSB0aGlzIHB1bGwgcmVxdWVzdCwgbWFrZSBhIGNvbW1pdCB0byB5b3VyIG1hc3Rlci90cnVuayBicmFuY2gKd2l0aCAoYXQgbGVhc3QpIHRoZSBmb2xsb3dpbmcgaW4gdGhlIGNvbW1pdCBtZXNzYWdlOgoKICAgIFRoaXMgY2xvc2VzICMxMzQKICAgIAotLS0tCmNvbW1pdCAyMmFhYzRjYjE5MzRkYzU5OTllNjE0ZmU4NjNmZTE1ZmZiNzIyZjUyCkF1dGhvcjogQmVuIFRhdGhhbSA8YmVudGF0aGFtQG5hbm9tZXRyaWNzLmNhPgpEYXRlOiAgIDIwMTctMTEtMDlUMTY6MTA6MjBaCgogICAgTVBILTEyNDogYWRkIGFsaWFzIHRvIGRlc2NyaWJlIGRldGFpbAoKLS0tLQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MzI2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBPY3QgMjQgMTk6MTA6NDIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzI2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDUwOUQyMTc3RDEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAyNCBPY3QgMjAxNyAxOToxMDo0MiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDc5NjAyIGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IE9jdCAyMDE3IDE5OjEwOjQyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3OTUxMyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNCBPY3QgMjAxNyAxOToxMDo0MSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc5NDk3IGludm9rZWQgYnkgdWlkIDk5KTsgMjQgT2N0IDIwMTcgMTk6MTA6NDEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDI0IE9jdCAyMDE3IDE5OjEwOjQxICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDhCNUEzREZDMkU7IFR1ZSwgMjQgT2N0IDIwMTcgMTk6MTA6NDEgKzAwMDAgKFVUQykKRnJvbTogbXNpbWFjZWsgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8Z2l0LXByLTEzNC1tYXZlbkBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4gcHVsbCByZXF1ZXN0ICMxMzQ6IFtNTkctNjI5NF0gQ29udmVydCBNYXZlblBsdWdpblZhbGlkYXRvciBpbnRvIGEgcGxleC4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KRGF0ZTogVHVlLCAyNCBPY3QgMjAxNyAxOToxMDo0MSArMDAwMCAoVVRDKQoKR2l0SHViIHVzZXIgbXNpbWFjZWsgb3BlbmVkIGEgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vcHVsbC8xMzQKCiAgICBbTU5HLTYyOTRdIENvbnZlcnQgTWF2ZW5QbHVnaW5WYWxpZGF0b3IgaW50byBhIHBsZXh1cyBjb21wb25lbnQKCiAgICBQYXRjaCBmb3IgaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjI5NAoKWW91IGNhbiBtZXJnZSB0aGlzIHB1bGwgcmVxdWVzdCBpbnRvIGEgR2l0IHJlcG9zaXRvcnkgYnkgcnVubmluZzoKCiAgICAkIGdpdCBwdWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9tc2ltYWNlay9tYXZlbiBtYXN0ZXIKCkFsdGVybmF0aXZlbHkgeW91IGNhbiByZXZpZXcgYW5kIGFwcGx5IHRoZXNlIGNoYW5nZXMgYXMgdGhlIHBhdGNoIGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vcHVsbC8xMzQucGF0Y2gKClRvIGNsb3NlIHRoaXMgcHVsbCByZXF1ZXN0LCBtYWtlIGEgY29tbWl0IHRvIHlvdXIgbWFzdGVyL3RydW5rIGJyYW5jaAp3aXRoIChhdCBsZWFzdCkgdGhlIGZvbGxvd2luZyBpbiB0aGUgY29tbWl0IG1lc3NhZ2U6CgogICAgVGhpcyBjbG9zZXMgIzEzNAogICAgCi0tLS0KCi0tLS0KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQ4NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgTm92IDE1IDE1OjMxOjM2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQ4NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyNTEyQzEwRDkxCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMTUgTm92IDIwMTcgMTU6MzE6MzYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3NjM3MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNSBOb3YgMjAxNyAxNTozMTozNSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzYyOTMgaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgTm92IDIwMTcgMTU6MzE6MzUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NjI4MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDE1IE5vdiAyMDE3IDE1OjMxOjM1IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAxNSBOb3YgMjAxNyAxNTozMTozNSArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCA2NjcyQ0RGRjU4OyBXZWQsIDE1IE5vdiAyMDE3IDE1OjMxOjM1ICswMDAwIChVVEMpCkZyb206IGlvN20gPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8Z2l0LXByLTEzNS1tYXZlbi1wbHVnaW5zQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1wbHVnaW5zIHB1bGwgcmVxdWVzdCAjMTM1OiBbTURFUC01ODRdIFVwZGF0ZSBwbGV4dXMtdXRpbHMgdG8gMy4xLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IFdlZCwgMTUgTm92IDIwMTcgMTU6MzE6MzUgKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIGlvN20gb3BlbmVkIGEgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9wdWxsLzEzNQoKICAgIFtNREVQLTU4NF0gVXBkYXRlIHBsZXh1cy11dGlscyB0byAzLjEuMAoKICAgIFRoaXMgdXBkYXRlcyB0aGUgcGxleHVzLXV0aWxzIGRlcGVuZGVuY3kgdG8gMy4xLjAuIEl0IGNvcnJlY3RzIGZvdXIKICAgIHVuaXQgdGVzdHMgdGhhdCB3ZXJlIGZhaWxpbmcgZHVlIHRvIG5ldyBiZWhhdmlvdXIgaW4gMy4xLjA6IEl0IGFwcGVhcnMKICAgIHRoYXQgdGhlIG5ldyBwbGV4dXMtdXRpbHMgY29waWVzIHRoZSBsYXN0TW9kaWZpZWQgYXR0cmlidXRlcyBvZiBmaWxlcywKICAgIGFuZCB0aGUgb2xkIHRlc3RzIHdlcmUgaW1wbGljaXRseSBkZXBlbmRpbmcgb24gdGhlIGF0dHJpYnV0ZXMgbm90CiAgICBiZWluZyBjb3BpZWQuCiAgICAKICAgIEZpeGVzOiBNREVQLTU4NAoKWW91IGNhbiBtZXJnZSB0aGlzIHB1bGwgcmVxdWVzdCBpbnRvIGEgR2l0IHJlcG9zaXRvcnkgYnkgcnVubmluZzoKCiAgICAkIGdpdCBwdWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9pbzdtL21hdmVuLXBsdWdpbnMgdHJ1bmsKCkFsdGVybmF0aXZlbHkgeW91IGNhbiByZXZpZXcgYW5kIGFwcGx5IHRoZXNlIGNoYW5nZXMgYXMgdGhlIHBhdGNoIGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9wdWxsLzEzNS5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMTM1CiAgICAKLS0tLQpjb21taXQgNTljMGY4OWRiNmU2OWU4YzQyODdjOWRlZTA3YjgzMWIyNmZjYmNhMwpBdXRob3I6IE1hcmsgUmF5bnNmb3JkIDxjb2RlQGlvN20uY29tPgpEYXRlOiAgIDIwMTctMTEtMTVUMTU6Mjg6MjdaCgogICAgW01ERVAtNTg0XSBVcGRhdGUgcGxleHVzLXV0aWxzIHRvIDMuMS4wCiAgICAKICAgIFRoaXMgdXBkYXRlcyB0aGUgcGxleHVzLXV0aWxzIGRlcGVuZGVuY3kgdG8gMy4xLjAuIEl0IGNvcnJlY3RzIGZvdXIKICAgIHVuaXQgdGVzdHMgdGhhdCB3ZXJlIGZhaWxpbmcgZHVlIHRvIG5ldyBiZWhhdmlvdXIgaW4gMy4xLjA6IEl0IGFwcGVhcnMKICAgIHRoYXQgdGhlIG5ldyBwbGV4dXMtdXRpbHMgY29waWVzIHRoZSBsYXN0TW9kaWZpZWQgYXR0cmlidXRlcyBvZiBmaWxlcywKICAgIGFuZCB0aGUgb2xkIHRlc3RzIHdlcmUgaW1wbGljaXRseSBkZXBlbmRpbmcgb24gdGhlIGF0dHJpYnV0ZXMgbm90CiAgICBiZWluZyBjb3BpZWQuCiAgICAKICAgIEZpeGVzOiBNREVQLTU4NAoKLS0tLQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MzQ0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBPY3QgMjYgMDc6NTc6MTEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzQ0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDM0MkE0MTdFRjYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAyNiBPY3QgMjAxNyAwNzo1NzoxMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ4ODM4IGludm9rZWQgYnkgdWlkIDUwMCk7IDI2IE9jdCAyMDE3IDA3OjU3OjEwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0ODcxNiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBPY3QgMjAxNyAwNzo1NzoxMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ4Njk5IGludm9rZWQgYnkgdWlkIDk5KTsgMjYgT2N0IDIwMTcgMDc6NTc6MTAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDI2IE9jdCAyMDE3IDA3OjU3OjEwICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDU2NUYzREZDM0U7IFRodSwgMjYgT2N0IDIwMTcgMDc6NTc6MTAgKzAwMDAgKFVUQykKRnJvbTogY29kZXItaHVnbyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDxnaXQtcHItMTM1LW1hdmVuQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbiBwdWxsIHJlcXVlc3QgIzEzNTogW01ORy02Mjk2XSBQYXJzZSBwcm9wZXJ0aWVzIGJlZm9yZSBjb25maWd1cmluZyB0aGUgLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpEYXRlOiBUaHUsIDI2IE9jdCAyMDE3IDA3OjU3OjEwICswMDAwIChVVEMpCgpHaXRIdWIgdXNlciBjb2Rlci1odWdvIG9wZW5lZCBhIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL3B1bGwvMTM1CgogICAgW01ORy02Mjk2XSBQYXJzZSBwcm9wZXJ0aWVzIGJlZm9yZSBjb25maWd1cmluZyB0aGUgbG9nZ2luZyBzZXR0aW5ncwoKICAgIAoKWW91IGNhbiBtZXJnZSB0aGlzIHB1bGwgcmVxdWVzdCBpbnRvIGEgR2l0IHJlcG9zaXRvcnkgYnkgcnVubmluZzoKCiAgICAkIGdpdCBwdWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9jb2Rlci1odWdvL21hdmVuIGNvbG9yZWQtb3V0cHV0LWZpeAoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHJldmlldyBhbmQgYXBwbHkgdGhlc2UgY2hhbmdlcyBhcyB0aGUgcGF0Y2ggYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9wdWxsLzEzNS5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMTM1CiAgICAKLS0tLQpjb21taXQgNTViNjJmY2FjOTBkYjEwNDI5OTBlNWQzY2I5NTRmOGNmNjM5YzIxOQpBdXRob3I6IFJvYmluIE3DvGxsZXIgPGNvZGVyLWh1Z29AdXNlcnMubm9yZXBseS5naXRodWIuY29tPgpEYXRlOiAgIDIwMTctMTAtMjZUMDc6NDE6MjBaCgogICAgW01ORy02Mjk2XSBQYXJzZSBwcm9wZXJ0aWVzIGJlZm9yZSBjb25maWd1cmluZyB0aGUgbG9nZ2luZyBzZXR0aW5ncwoKLS0tLQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NTE3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgMTggMTE6NDQ6MzIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTE3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDk5RTYxMTBDMTkKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAxOCBOb3YgMjAxNyAxMTo0NDozMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDkyODY2IGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IE5vdiAyMDE3IDExOjQ0OjMyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5Mjc3NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBOb3YgMjAxNyAxMTo0NDozMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkyNzY2IGludm9rZWQgYnkgdWlkIDk5KTsgMTggTm92IDIwMTcgMTE6NDQ6MzEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDE4IE5vdiAyMDE3IDExOjQ0OjMxICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDJERDI3REZFMUU7IFNhdCwgMTggTm92IDIwMTcgMTE6NDQ6MzAgKzAwMDAgKFVUQykKRnJvbTogaW83bSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDxnaXQtcHItMTM2LW1hdmVuLXBsdWdpbnNAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXBsdWdpbnMgcHVsbCByZXF1ZXN0ICMxMzY6IFtNREVQLTU4NF0gVXBkYXRlIHBsZXh1cy11dGlscyB0byAzLjEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KRGF0ZTogU2F0LCAxOCBOb3YgMjAxNyAxMTo0NDozMCArMDAwMCAoVVRDKQoKR2l0SHViIHVzZXIgaW83bSBvcGVuZWQgYSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL3B1bGwvMTM2CgogICAgW01ERVAtNTg0XSBVcGRhdGUgcGxleHVzLXV0aWxzIHRvIDMuMS4wCgogICAgVGhpcyB1cGRhdGVzIHRoZSBwbGV4dXMtdXRpbHMgZGVwZW5kZW5jeSB0byAzLjEuMC4gSXQgY29ycmVjdHMgZm91cgogICAgdW5pdCB0ZXN0cyB0aGF0IHdlcmUgZmFpbGluZyBkdWUgdG8gbmV3IGJlaGF2aW91ciBpbiAzLjEuMDogSXQgYXBwZWFycwogICAgdGhhdCB0aGUgbmV3IHBsZXh1cy11dGlscyBjb3BpZXMgdGhlIGxhc3RNb2RpZmllZCBhdHRyaWJ1dGVzIG9mIGZpbGVzLAogICAgYW5kIHRoZSBvbGQgdGVzdHMgd2VyZSBpbXBsaWNpdGx5IGRlcGVuZGluZyBvbiB0aGUgYXR0cmlidXRlcyBub3QKICAgIGJlaW5nIGNvcGllZC4KICAgIAogICAgRml4ZXM6IE1ERVAtNTg0CgpZb3UgY2FuIG1lcmdlIHRoaXMgcHVsbCByZXF1ZXN0IGludG8gYSBHaXQgcmVwb3NpdG9yeSBieSBydW5uaW5nOgoKICAgICQgZ2l0IHB1bGwgaHR0cHM6Ly9naXRodWIuY29tL2lvN20vbWF2ZW4tcGx1Z2lucyBNREVQLTU4NAoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHJldmlldyBhbmQgYXBwbHkgdGhlc2UgY2hhbmdlcyBhcyB0aGUgcGF0Y2ggYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL3B1bGwvMTM2LnBhdGNoCgpUbyBjbG9zZSB0aGlzIHB1bGwgcmVxdWVzdCwgbWFrZSBhIGNvbW1pdCB0byB5b3VyIG1hc3Rlci90cnVuayBicmFuY2gKd2l0aCAoYXQgbGVhc3QpIHRoZSBmb2xsb3dpbmcgaW4gdGhlIGNvbW1pdCBtZXNzYWdlOgoKICAgIFRoaXMgY2xvc2VzICMxMzYKICAgIAotLS0tCmNvbW1pdCAxNzhmMzBmZjkwZWZkNzMyNzZlZjYzNjExNDM3N2Q3NGQwNDdhZjExCkF1dGhvcjogTWFyayBSYXluc2ZvcmQgPGNvZGVAaW83bS5jb20+CkRhdGU6ICAgMjAxNy0xMS0xOFQxMTozODo0MFoKCiAgICBbTURFUC01ODRdIFVwZGF0ZSBwbGV4dXMtdXRpbHMgdG8gMy4xLjAKICAgIAogICAgVGhpcyB1cGRhdGVzIHRoZSBwbGV4dXMtdXRpbHMgZGVwZW5kZW5jeSB0byAzLjEuMC4gSXQgY29ycmVjdHMgZm91cgogICAgdW5pdCB0ZXN0cyB0aGF0IHdlcmUgZmFpbGluZyBkdWUgdG8gbmV3IGJlaGF2aW91ciBpbiAzLjEuMDogSXQgYXBwZWFycwogICAgdGhhdCB0aGUgbmV3IHBsZXh1cy11dGlscyBjb3BpZXMgdGhlIGxhc3RNb2RpZmllZCBhdHRyaWJ1dGVzIG9mIGZpbGVzLAogICAgYW5kIHRoZSBvbGQgdGVzdHMgd2VyZSBpbXBsaWNpdGx5IGRlcGVuZGluZyBvbiB0aGUgYXR0cmlidXRlcyBub3QKICAgIGJlaW5nIGNvcGllZC4KICAgIAogICAgRml4ZXM6IE1ERVAtNTg0CgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0NTUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE5vdiAgOSAwODozMTozMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0NTUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNjgxRUUxMDRFNwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsICA5IE5vdiAyMDE3IDA4OjMxOjMwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTM4NzggaW52b2tlZCBieSB1aWQgNTAwKTsgOSBOb3YgMjAxNyAwODozMTozMCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTM4MDAgaW52b2tlZCBieSB1aWQgNTAwKTsgOSBOb3YgMjAxNyAwODozMTozMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkzNzgwIGludm9rZWQgYnkgdWlkIDk5KTsgOSBOb3YgMjAxNyAwODozMToyOSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMDkgTm92IDIwMTcgMDg6MzE6MjkgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgOTZENjBERkI3NzsgVGh1LCAgOSBOb3YgMjAxNyAwODozMToyOSArMDAwMCAoVVRDKQpGcm9tOiBybWFubmlidWNhdSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDxnaXQtcHItMTM2LW1hdmVuQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbiBwdWxsIHJlcXVlc3QgIzEzNjogW01ORy02MzAyXSBsb2dnaW5nIHRoZSBtb2R1bGUgY291bnQKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IFRodSwgIDkgTm92IDIwMTcgMDg6MzE6MjkgKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIHJtYW5uaWJ1Y2F1IG9wZW5lZCBhIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL3B1bGwvMTM2CgogICAgW01ORy02MzAyXSBsb2dnaW5nIHRoZSBtb2R1bGUgY291bnQKCiAgICBJZGVhIGlzIHRvIGxldCB0aGUgdXNlciBpZGVudGlmeSBob3cgbWFueSBtb2R1bGVzIGFyZSBzdGlsbCB0byBiZSBleGVjdXRlZC9wcm9jZXNzZWQKCllvdSBjYW4gbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3QgaW50byBhIEdpdCByZXBvc2l0b3J5IGJ5IHJ1bm5pbmc6CgogICAgJCBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vcm1hbm5pYnVjYXUvbWF2ZW4gZmIvTU5HLTYzMDJfbW9kdWxlLXByb2dyZXNzCgpBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gcmV2aWV3IGFuZCBhcHBseSB0aGVzZSBjaGFuZ2VzIGFzIHRoZSBwYXRjaCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL3B1bGwvMTM2LnBhdGNoCgpUbyBjbG9zZSB0aGlzIHB1bGwgcmVxdWVzdCwgbWFrZSBhIGNvbW1pdCB0byB5b3VyIG1hc3Rlci90cnVuayBicmFuY2gKd2l0aCAoYXQgbGVhc3QpIHRoZSBmb2xsb3dpbmcgaW4gdGhlIGNvbW1pdCBtZXNzYWdlOgoKICAgIFRoaXMgY2xvc2VzICMxMzYKICAgIAotLS0tCmNvbW1pdCA0ZDQ5ZDNiMDViMmUzZDNhNDUzMGJiMjdlOGNjMTYyYWI1MGJhYTdjCkF1dGhvcjogUm9tYWluIE1hbm5pLUJ1Y2F1IDxybWFubmlidWNhdUBnbWFpbC5jb20+CkRhdGU6ICAgMjAxNy0xMS0wOVQwODozMDo0N1oKCiAgICBsb2dnaW5nIHRoZSBtb2R1bGUgY291bnQgdG8gbGV0IHRoZSB1c2VyIGlkZW50aWZ5IGhvdyBtYW55IG1vZHVsZSBhcmUgc3RpbGwgdG8gYmUgZXhlY3V0ZWQvcHJvY2Vzc2VkCgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1MTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAxOCAxMTo0NToxMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1MTgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQ0VFQTMxMEMyMwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDE4IE5vdiAyMDE3IDExOjQ1OjEwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTQwMzcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggTm92IDIwMTcgMTE6NDU6MTAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkzOTYxIGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IE5vdiAyMDE3IDExOjQ1OjEwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTM5NTAgaW52b2tlZCBieSB1aWQgOTkpOyAxOCBOb3YgMjAxNyAxMTo0NToxMCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMTggTm92IDIwMTcgMTE6NDU6MTAgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgMjQ0NjhERkUxRTsgU2F0LCAxOCBOb3YgMjAxNyAxMTo0NToxMCArMDAwMCAoVVRDKQpGcm9tOiBpbzdtIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JRDogPGdpdC1wci0xMzctbWF2ZW4tcGx1Z2luc0BnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tcGx1Z2lucyBwdWxsIHJlcXVlc3QgIzEzNzogW01KQVZBRE9DLTQ4OV0gRmluZCB0aGUgbWFpbiBtb2R1bGUgZGVzY3JpcC4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KRGF0ZTogU2F0LCAxOCBOb3YgMjAxNyAxMTo0NToxMCArMDAwMCAoVVRDKQoKR2l0SHViIHVzZXIgaW83bSBvcGVuZWQgYSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL3B1bGwvMTM3CgogICAgW01KQVZBRE9DLTQ4OV0gRmluZCB0aGUgbWFpbiBtb2R1bGUgZGVzY3JpcHRvcgoKICAgIFRoZSBleGlzdGluZyBjb2RlIHdhcyBjaGVja2luZyBmb3IgdGhlIGV4aXN0ZW5jZSBvZiBhIGZpbGUKICAgICJzcmMvbWFpbi9tb2R1bGUtaW5mby5qYXZhIiByZWxhdGl2ZSB0byB0aGUgY3VycmVudCBkaXJlY3RvcnkuIFRoZQogICAgcHJvYmxlbSBpcyB0aGF0IGluIGEgbXVsdGktbW9kdWxlIGJ1aWxkLCB0aGUgY3VycmVudCBkaXJlY3RvcnkgaXMKICAgIHRoZSBwcm9qZWN0IHJvb3QsIG5vdCB0aGUgcm9vdCBvZiB0aGUgY3VycmVudCBtb2R1bGUuIEFzIGEgcmVzdWx0LAogICAgdGhlIG1vZHVsZSBkZXNjcmlwdG9yIHdhcyBub3QgYmVpbmcgZm91bmQgYW5kIGFsbCBkZXBlbmRlbmNpZXMgd2VyZQogICAgZW5kaW5nIHVwIG9uIHRoZSBjbGFzc3BhdGggaW5zdGVhZC4KICAgIAogICAgRml4ZXM6IE1KQVZBRE9DLTQ4OQoKWW91IGNhbiBtZXJnZSB0aGlzIHB1bGwgcmVxdWVzdCBpbnRvIGEgR2l0IHJlcG9zaXRvcnkgYnkgcnVubmluZzoKCiAgICAkIGdpdCBwdWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9pbzdtL21hdmVuLXBsdWdpbnMgTUpBVkFET0MtNDg5CgpBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gcmV2aWV3IGFuZCBhcHBseSB0aGVzZSBjaGFuZ2VzIGFzIHRoZSBwYXRjaCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvcHVsbC8xMzcucGF0Y2gKClRvIGNsb3NlIHRoaXMgcHVsbCByZXF1ZXN0LCBtYWtlIGEgY29tbWl0IHRvIHlvdXIgbWFzdGVyL3RydW5rIGJyYW5jaAp3aXRoIChhdCBsZWFzdCkgdGhlIGZvbGxvd2luZyBpbiB0aGUgY29tbWl0IG1lc3NhZ2U6CgogICAgVGhpcyBjbG9zZXMgIzEzNwogICAgCi0tLS0KY29tbWl0IDcyMDQ2ZmY0MWI5MGE3NjY3YjA3Mzk2NjIzNDg3ZjEyODU0MjkyMmYKQXV0aG9yOiBNYXJrIFJheW5zZm9yZCA8Y29kZUBpbzdtLmNvbT4KRGF0ZTogICAyMDE3LTExLTE4VDExOjQzOjQ1WgoKICAgIFtNSkFWQURPQy00ODldIEZpbmQgdGhlIG1haW4gbW9kdWxlIGRlc2NyaXB0b3IKICAgIAogICAgVGhlIGV4aXN0aW5nIGNvZGUgd2FzIGNoZWNraW5nIGZvciB0aGUgZXhpc3RlbmNlIG9mIGEgZmlsZQogICAgInNyYy9tYWluL21vZHVsZS1pbmZvLmphdmEiIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4gVGhlCiAgICBwcm9ibGVtIGlzIHRoYXQgaW4gYSBtdWx0aS1tb2R1bGUgYnVpbGQsIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBpcwogICAgdGhlIHByb2plY3Qgcm9vdCwgbm90IHRoZSByb290IG9mIHRoZSBjdXJyZW50IG1vZHVsZS4gQXMgYSByZXN1bHQsCiAgICB0aGUgbW9kdWxlIGRlc2NyaXB0b3Igd2FzIG5vdCBiZWluZyBmb3VuZCBhbmQgYWxsIGRlcGVuZGVuY2llcyB3ZXJlCiAgICBlbmRpbmcgdXAgb24gdGhlIGNsYXNzcGF0aCBpbnN0ZWFkLgogICAgCiAgICBGaXhlczogTUpBVkFET0MtNDg5CgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1ODUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE5vdiAyNCAwMjoyNzoxMiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1ODUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQjRBMzAxN0Q3RQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDI0IE5vdiAyMDE3IDAyOjI3OjEyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzc4NzIgaW52b2tlZCBieSB1aWQgNTAwKTsgMjQgTm92IDIwMTcgMDI6Mjc6MTIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc3NTg4IGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IE5vdiAyMDE3IDAyOjI3OjEyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzc1NzcgaW52b2tlZCBieSB1aWQgOTkpOyAyNCBOb3YgMjAxNyAwMjoyNzoxMiAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMjQgTm92IDIwMTcgMDI6Mjc6MTIgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNDUwOTNFMDc3OTsgRnJpLCAyNCBOb3YgMjAxNyAwMjoyNzoxMCArMDAwMCAoVVRDKQpGcm9tOiBzbGFjaGlld2ljeiA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDxnaXQtcHItMTM3LW1hdmVuQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbiBwdWxsIHJlcXVlc3QgIzEzNzogW01ORy02MDY5XSBNaWdyYXRlIHRvIG5vbiBkZXByZWNhdGVkIHBhcnRzIG9mIENvbW1vLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpEYXRlOiBGcmksIDI0IE5vdiAyMDE3IDAyOjI3OjEwICswMDAwIChVVEMpCgpHaXRIdWIgdXNlciBzbGFjaGlld2ljeiBvcGVuZWQgYSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9wdWxsLzEzNwoKICAgIFtNTkctNjA2OV0gTWlncmF0ZSB0byBub24gZGVwcmVjYXRlZCBwYXJ0cyBvZiBDb21tb25zIENMSQoKICAgIAoKWW91IGNhbiBtZXJnZSB0aGlzIHB1bGwgcmVxdWVzdCBpbnRvIGEgR2l0IHJlcG9zaXRvcnkgYnkgcnVubmluZzoKCiAgICAkIGdpdCBwdWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9zbGFjaGlld2ljei9tYXZlbiBtYXN0ZXIKCkFsdGVybmF0aXZlbHkgeW91IGNhbiByZXZpZXcgYW5kIGFwcGx5IHRoZXNlIGNoYW5nZXMgYXMgdGhlIHBhdGNoIGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vcHVsbC8xMzcucGF0Y2gKClRvIGNsb3NlIHRoaXMgcHVsbCByZXF1ZXN0LCBtYWtlIGEgY29tbWl0IHRvIHlvdXIgbWFzdGVyL3RydW5rIGJyYW5jaAp3aXRoIChhdCBsZWFzdCkgdGhlIGZvbGxvd2luZyBpbiB0aGUgY29tbWl0IG1lc3NhZ2U6CgogICAgVGhpcyBjbG9zZXMgIzEzNwogICAgCi0tLS0KY29tbWl0IDhhZGI3NjQ0NmJhZDZiMDYwZDEyNzUzMjkwMGNlMTk3NTBmNWRmNzYKQXV0aG9yOiBSb2JpbiBNw7xsbGVyIDxjb2Rlci1odWdvQHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZTogICAyMDE3LTEwLTI2VDA3OjQxOjIwWgoKICAgIFtNTkctNjI5Nl0gUGFyc2UgcHJvcGVydGllcyBiZWZvcmUgY29uZmlndXJpbmcgdGhlIGxvZ2dpbmcgc2V0dGluZ3MKCmNvbW1pdCA3ODUwYWQ5ZmY2N2VhNjgxOTg0OTMyYTUxYmM0MTFhODcxZDQ0YTY1CkF1dGhvcjogS2FybCBIZWlueiBNYXJiYWlzZSA8a2htYXJiYWlzZUBhcGFjaGUub3JnPgpEYXRlOiAgIDIwMTctMDMtMThUMTc6MTg6MjdaCgogICAgW01ORy02MDY5XSBNaWdyYXRlIHRvIG5vbiBkZXByZWNhdGVkIHBhcnRzIG9mIENvbW1vbnMgQ0xJCgpjb21taXQgN2VhMzk4OTg1NDI3ZGY5ZjhlMjEyZmRlMjA2NDlmNDdmY2IyODY2YwpBdXRob3I6IFN5bHdlc3RlciBMYWNoaWV3aWN6IDxzbGFjaGlld2ljekBnbWFpbC5jb20+CkRhdGU6ICAgMjAxNy0xMS0yNFQwMjoyMTowOVoKCiAgICBGaXggb3B0aW9uUHJvcGVydGllcyBwYXJzaW5nCgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1NTEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE5vdiAxOSAyMzoxNjo1OSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1NTEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRUY4NDExMEU0NQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDE5IE5vdiAyMDE3IDIzOjE2OjU5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTYyMjYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTkgTm92IDIwMTcgMjM6MTY6NTkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU2MTM0IGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IE5vdiAyMDE3IDIzOjE2OjU5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTYxMjMgaW52b2tlZCBieSB1aWQgOTkpOyAxOSBOb3YgMjAxNyAyMzoxNjo1OSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTkgTm92IDIwMTcgMjM6MTY6NTkgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgODY4MDFERkNGQzsgU3VuLCAxOSBOb3YgMjAxNyAyMzoxNjo1NyArMDAwMCAoVVRDKQpGcm9tOiBjaG9udG9uIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JRDogPGdpdC1wci0xMzgtbWF2ZW4tcGx1Z2luc0BnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tcGx1Z2lucyBwdWxsIHJlcXVlc3QgIzEzODogTURFUExPWS0yMjY6IERlcGxveUF0RW5kIGZhaWxzIHdoZW4gbW9kdWxlIC4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KRGF0ZTogU3VuLCAxOSBOb3YgMjAxNyAyMzoxNjo1NyArMDAwMCAoVVRDKQoKR2l0SHViIHVzZXIgY2hvbnRvbiBvcGVuZWQgYSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL3B1bGwvMTM4CgogICAgTURFUExPWS0yMjY6IERlcGxveUF0RW5kIGZhaWxzIHdoZW4gbW9kdWxlIGhhcyBleHRlbnNpb24KCiAgICBNREVQTE9ZLTIyNTogRGVwbG95QXRFbmQgZmFpbHMgd2hlbiBvdmVycmlkaW5nIHNraXAKICAgIE1ERVBMT1ktMjI0OiBPdmVycmlkaW5nIGRlcGxveUF0RW5kIGZhaWxzCgpZb3UgY2FuIG1lcmdlIHRoaXMgcHVsbCByZXF1ZXN0IGludG8gYSBHaXQgcmVwb3NpdG9yeSBieSBydW5uaW5nOgoKICAgICQgZ2l0IHB1bGwgaHR0cHM6Ly9naXRodWIuY29tL2Nob250b24vbWF2ZW4tcGx1Z2lucyB0cnVuawoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHJldmlldyBhbmQgYXBwbHkgdGhlc2UgY2hhbmdlcyBhcyB0aGUgcGF0Y2ggYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL3B1bGwvMTM4LnBhdGNoCgpUbyBjbG9zZSB0aGlzIHB1bGwgcmVxdWVzdCwgbWFrZSBhIGNvbW1pdCB0byB5b3VyIG1hc3Rlci90cnVuayBicmFuY2gKd2l0aCAoYXQgbGVhc3QpIHRoZSBmb2xsb3dpbmcgaW4gdGhlIGNvbW1pdCBtZXNzYWdlOgoKICAgIFRoaXMgY2xvc2VzICMxMzgKICAgIAotLS0tCmNvbW1pdCBlNDAxYzJiYmRjOGNiZGYwNjI4N2JlZjg1OWZiZWM4NWU4MjI4YmY5CkF1dGhvcjogQ2hhcyBIb250b24gPGNoYXNAYXBhY2hlLm9yZz4KRGF0ZTogICAyMDE3LTExLTE5VDIzOjA1OjQxWgoKICAgIE1ERVBMT1ktMjI2OiBEZXBsb3lBdEVuZCBmYWlscyB3aGVuIG1vZHVsZSBoYXMgZXh0ZW5zaW9uCiAgICBNREVQTE9ZLTIyNTogRGVwbG95QXRFbmQgZmFpbHMgd2hlbiBvdmVycmlkaW5nIHNraXAKICAgIE1ERVBMT1ktMjI0OiBPdmVycmlkaW5nIGRlcGxveUF0RW5kIGZhaWxzCgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1OTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE5vdiAyNCAxOTo1NzoxNiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1OTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMDYyM0MxMDczOQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDI0IE5vdiAyMDE3IDE5OjU3OjE2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDg4MDUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjQgTm92IDIwMTcgMTk6NTc6MTAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ4NzI5IGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IE5vdiAyMDE3IDE5OjU3OjEwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDg3MTggaW52b2tlZCBieSB1aWQgOTkpOyAyNCBOb3YgMjAxNyAxOTo1NzoxMCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMjQgTm92IDIwMTcgMTk6NTc6MTAgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNEE4RURERkYwRjsgRnJpLCAyNCBOb3YgMjAxNyAxOTo1NzoxMCArMDAwMCAoVVRDKQpGcm9tOiBzbGFjaGlld2ljeiA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDxnaXQtcHItMTM4LW1hdmVuQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbiBwdWxsIHJlcXVlc3QgIzEzODogTU5HLTYzMDYgcmVtb3ZlIEd1YXZhIHVzYWdlIGZyb20gbWF2ZW4tcmVzb2x2ZXItcHJvLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpEYXRlOiBGcmksIDI0IE5vdiAyMDE3IDE5OjU3OjEwICswMDAwIChVVEMpCgpHaXRIdWIgdXNlciBzbGFjaGlld2ljeiBvcGVuZWQgYSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9wdWxsLzEzOAoKICAgIE1ORy02MzA2IHJlbW92ZSBHdWF2YSB1c2FnZSBmcm9tIG1hdmVuLXJlc29sdmVyLXByb3ZpZGVyCgogICAgCgpZb3UgY2FuIG1lcmdlIHRoaXMgcHVsbCByZXF1ZXN0IGludG8gYSBHaXQgcmVwb3NpdG9yeSBieSBydW5uaW5nOgoKICAgICQgZ2l0IHB1bGwgaHR0cHM6Ly9naXRodWIuY29tL3NsYWNoaWV3aWN6L21hdmVuIGZlYXR1cmUvTU5HLTYzMDYKCkFsdGVybmF0aXZlbHkgeW91IGNhbiByZXZpZXcgYW5kIGFwcGx5IHRoZXNlIGNoYW5nZXMgYXMgdGhlIHBhdGNoIGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vcHVsbC8xMzgucGF0Y2gKClRvIGNsb3NlIHRoaXMgcHVsbCByZXF1ZXN0LCBtYWtlIGEgY29tbWl0IHRvIHlvdXIgbWFzdGVyL3RydW5rIGJyYW5jaAp3aXRoIChhdCBsZWFzdCkgdGhlIGZvbGxvd2luZyBpbiB0aGUgY29tbWl0IG1lc3NhZ2U6CgogICAgVGhpcyBjbG9zZXMgIzEzOAogICAgCi0tLS0KY29tbWl0IGQyYzdhMzRhZjdiZTViMWZmNWM5ZDBiODI0YmQyYjFhNDQzNWFlYTAKQXV0aG9yOiBTeWx3ZXN0ZXIgTGFjaGlld2ljeiA8c2xhY2hpZXdpY3pAZ21haWwuY29tPgpEYXRlOiAgIDIwMTctMTEtMjRUMTk6Mzg6MTBaCgogICAgTU5HLTYzMDYgcmVtb3ZlIEd1YXZhIHVzYWdlIGZyb20gbWF2ZW4tcmVzb2x2ZXItcHJvdmlkZXIKCi0tLS0KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDU4Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgTm92IDIzIDIyOjE2OjEwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDU4Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3QzMxMjE3QUUzCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjMgTm92IDIwMTcgMjI6MTY6MTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5ODM5NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMyBOb3YgMjAxNyAyMjoxNjowNSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTgzMTggaW52b2tlZCBieSB1aWQgNTAwKTsgMjMgTm92IDIwMTcgMjI6MTY6MDUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5ODMwNyBpbnZva2VkIGJ5IHVpZCA5OSk7IDIzIE5vdiAyMDE3IDIyOjE2OjA0IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyMyBOb3YgMjAxNyAyMjoxNjowNCArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBDQ0MwRERGREUyOyBUaHUsIDIzIE5vdiAyMDE3IDIyOjE2OjA0ICswMDAwIChVVEMpCkZyb206IHNvcm11cmFzIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JRDogPGdpdC1wci0xMzktbWF2ZW4tcGx1Z2luc0BnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tcGx1Z2lucyBwdWxsIHJlcXVlc3QgIzEzOTogU3VwcG9ydCB3aGl0ZS1ib3ggbW9kdWxhciB0ZXN0IGNvbXBpbGF0aW9uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpEYXRlOiBUaHUsIDIzIE5vdiAyMDE3IDIyOjE2OjA0ICswMDAwIChVVEMpCgpHaXRIdWIgdXNlciBzb3JtdXJhcyBvcGVuZWQgYSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL3B1bGwvMTM5CgogICAgU3VwcG9ydCB3aGl0ZS1ib3ggbW9kdWxhciB0ZXN0IGNvbXBpbGF0aW9uCgogICAgVGhpcyBpcyBhIHByb29mLW9mLWNvbmNlcHQgUFIgdGhhdCBpbnRyb2R1Y2VzIHN1cHBvcnQgZm9yIHRlc3Qgc291cmNlcyBvcmdhbml6ZWQgd2l0aCBtb2R1bGUgZGVzY3JpcHRvcnMuCiAgICAKICAgIFNlZSBtb3RpdmF0aW9uOiBodHRwczovL3R3aXR0ZXIuY29tL3Jmc2Nob2x0ZS9zdGF0dXMvOTI3MTMyMzE5Mzc0MzMxOTA0CgpZb3UgY2FuIG1lcmdlIHRoaXMgcHVsbCByZXF1ZXN0IGludG8gYSBHaXQgcmVwb3NpdG9yeSBieSBydW5uaW5nOgoKICAgICQgZ2l0IHB1bGwgaHR0cHM6Ly9naXRodWIuY29tL3Nvcm11cmFzL21hdmVuLXBsdWdpbnMgdHJ1bmsKCkFsdGVybmF0aXZlbHkgeW91IGNhbiByZXZpZXcgYW5kIGFwcGx5IHRoZXNlIGNoYW5nZXMgYXMgdGhlIHBhdGNoIGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9wdWxsLzEzOS5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMTM5CiAgICAKLS0tLQpjb21taXQgYjQ1ZWE1YmMyMDRmN2I2ZDBhNGU0ODhhOTllZjYwOTExYTExZTVkOQpBdXRob3I6IENocmlzdGlhbiBTdGVpbiA8c29ybXVyYXNAZ21haWwuY29tPgpEYXRlOiAgIDIwMTctMTEtMjJUMTk6MjY6MzJaCgogICAgSW5pdGlhbCB3b3JrIGZvciB3aGl0ZS1ib3ggdGVzdGluZyBtb2R1bGVzCgpjb21taXQgMjMzNzY5NWJkZjUxYzMwYmZjZGViYmE1YjkxYWJhOWZiZDJmMjlkZApBdXRob3I6IENocmlzdGlhbiBTdGVpbiA8c29ybXVyYXNAZ21haWwuY29tPgpEYXRlOiAgIDIwMTctMTEtMjNUMjE6NTU6MDRaCgogICAgQ2xlYW51cAoKLS0tLQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NjI0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBOb3YgMjcgMTg6Mjg6MTAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjI0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDVBRDU3MTdGOUMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAyNyBOb3YgMjAxNyAxODoyODoxMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg3MDY2IGludm9rZWQgYnkgdWlkIDUwMCk7IDI3IE5vdiAyMDE3IDE4OjI4OjEwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NzAwNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBOb3YgMjAxNyAxODoyODoxMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg2OTkzIGludm9rZWQgYnkgdWlkIDk5KTsgMjcgTm92IDIwMTcgMTg6Mjg6MDkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDI3IE5vdiAyMDE3IDE4OjI4OjA5ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIERBOUUwREZFMkU7IE1vbiwgMjcgTm92IDIwMTcgMTg6Mjg6MDggKzAwMDAgKFVUQykKRnJvbTogYmVuZ3Rzb2QgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8Z2l0LXByLTEzOS1tYXZlbkBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4gcHVsbCByZXF1ZXN0ICMxMzk6IFtNTkctNjI5OF0gMy41LjI6IENsYXNzTm90Rm91bmRFeGNlcHRpb24KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IE1vbiwgMjcgTm92IDIwMTcgMTg6Mjg6MDggKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIGJlbmd0c29kIG9wZW5lZCBhIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL3B1bGwvMTM5CgogICAgW01ORy02Mjk4XSAzLjUuMjogQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbgoKICAgIEFkZGluZyBleHBvcnRlZFBhY2thZ2UgdG8gZmluZCBjbGFzczoKICAgIGphdmF4LmFubm90YXRpb24uc2VjdXJpdHkuUm9sZXNBbGxvd2VkCiAgICAKICAgIEZpcnN0IG1hdmVuIGNvbW1pdCA6KSBXb3JrcyBidXQgbWlnaHQgYmUgZGVlcGVyIGlzc3VlCgpZb3UgY2FuIG1lcmdlIHRoaXMgcHVsbCByZXF1ZXN0IGludG8gYSBHaXQgcmVwb3NpdG9yeSBieSBydW5uaW5nOgoKICAgICQgZ2l0IHB1bGwgaHR0cHM6Ly9naXRodWIuY29tL2Jlbmd0c29kL21hdmVuIG1hc3RlcgoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHJldmlldyBhbmQgYXBwbHkgdGhlc2UgY2hhbmdlcyBhcyB0aGUgcGF0Y2ggYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9wdWxsLzEzOS5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMTM5CiAgICAKLS0tLQpjb21taXQgNDViNzVhZDI5MDc0ODIzODUwYzNlZGEzMDE3Y2Y3M2ZlMTliMWU4YwpBdXRob3I6IEJlbmd0IFPDtmRlcmJlcmcgPGJlbmd0LnNvZGVyYmVyZ0BwdXJwbGVzY291dC5zZT4KRGF0ZTogICAyMDE3LTExLTI3VDE4OjE5OjQ4WgoKICAgIFtNTkctNjI5OF0gMy41LjI6IENsYXNzTm90Rm91bmRFeGNlcHRpb24KICAgIAogICAgQWRkaW5nIGV4cG9ydGVkUGFja2FnZSB0byBmaW5kIGNsYXNzOgogICAgamF2YXguYW5ub3RhdGlvbi5zZWN1cml0eS5Sb2xlc0FsbG93ZWQKICAgIAogICAgRmlyc3QgbWF2ZW4gY29tbWl0IDopIFdvcmtzIGJ1dCBtaWdodCBiZSBkZWVwZXIgaXNzdWUKCi0tLS0KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDczMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gRGVjICA0IDE4OjUzOjA3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDczMy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3NEQ1ODE3QzRFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgIDQgRGVjIDIwMTcgMTg6NTM6MDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2MjE2MyBpbnZva2VkIGJ5IHVpZCA1MDApOyA0IERlYyAyMDE3IDE4OjUzOjA3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MjA4MSBpbnZva2VkIGJ5IHVpZCA1MDApOyA0IERlYyAyMDE3IDE4OjUzOjA3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjIwNzAgaW52b2tlZCBieSB1aWQgOTkpOyA0IERlYyAyMDE3IDE4OjUzOjA2IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAwNCBEZWMgMjAxNyAxODo1MzowNiArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCA4MDQ0MEUwMjE5OyBNb24sICA0IERlYyAyMDE3IDE4OjUzOjA1ICswMDAwIChVVEMpCkZyb206IGRjb25uZWVseSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDxnaXQtcHItMTQwLW1hdmVuQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbiBwdWxsIHJlcXVlc3QgIzE0MDogQWRkIG9yZy5zbGY0ai5ldmVudCB0byBleHBvcnRlZCBwYWNrYWdlcwpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KRGF0ZTogTW9uLCAgNCBEZWMgMjAxNyAxODo1MzowNSArMDAwMCAoVVRDKQoKR2l0SHViIHVzZXIgZGNvbm5lZWx5IG9wZW5lZCBhIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL3B1bGwvMTQwCgogICAgQWRkIG9yZy5zbGY0ai5ldmVudCB0byBleHBvcnRlZCBwYWNrYWdlcwoKICAgIG1hdmVuLWNvcmUgc2hvdWxkIGV4cG9ydCBvcmcuc2xmNGouZXZlbnQuKiBmcm9tIHNsZjRqLWFwaSAxLjcuMTUgb3IgbGF0ZXIuCiAgICBGb3IgZXhhbXBsZSwgdGhpcyBwYWNrYWdlIGlzIHdoZXJlIHRoZSBgTGV2ZWxgIGNsYXNzIGlzIGxvY2F0ZWQuCiAgICAKICAgIE90aGVyd2lzZSwgaXNzdWVzIHNpbWlsYXIgdG8gTU5HLTU4NDIgYW5kIE1ORy01ODQ1IHdpbGwgYXJpc2Ugd2l0aCBwbHVnaW5zIHRoYXQgdXNlIFNsZjRqIHRoZW1zZWx2ZXMgKG9yIG1vcmUgbGlrZWx5IHBsdWdpbnMgdGhhdCB1c2UgbGlicmFyaWVzIHRoYXQgdXNlIFNsZjRqKS4KICAgIAogICAgRGlzY292ZXJlZCB3aGlsZSB3b3JraW5nIG9uIGluLWhvdXNlIE1hdmVuIHBsdWdpbiB0aGF0IGZhaWxlZCB3aXRoIGBqYXZhLmxhbmcuTm9DbGFzc0RlZkZvdW5kRXJyb3I6IG9yZy9zbGY0ai9ldmVudC9MZXZlbGAuCgpZb3UgY2FuIG1lcmdlIHRoaXMgcHVsbCByZXF1ZXN0IGludG8gYSBHaXQgcmVwb3NpdG9yeSBieSBydW5uaW5nOgoKICAgICQgZ2l0IHB1bGwgaHR0cHM6Ly9naXRodWIuY29tL2Rjb25uZWVseS9tYXZlbiBwYXRjaC0xCgpBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gcmV2aWV3IGFuZCBhcHBseSB0aGVzZSBjaGFuZ2VzIGFzIHRoZSBwYXRjaCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL3B1bGwvMTQwLnBhdGNoCgpUbyBjbG9zZSB0aGlzIHB1bGwgcmVxdWVzdCwgbWFrZSBhIGNvbW1pdCB0byB5b3VyIG1hc3Rlci90cnVuayBicmFuY2gKd2l0aCAoYXQgbGVhc3QpIHRoZSBmb2xsb3dpbmcgaW4gdGhlIGNvbW1pdCBtZXNzYWdlOgoKICAgIFRoaXMgY2xvc2VzICMxNDAKICAgIAotLS0tCmNvbW1pdCAzNGJiMTE0YjdkYmQ4MDM4MGUzZDEwYzZkY2ZmY2YwOGUxZmZhZjUwCkF1dGhvcjogRGF2aWQgQ29ubmVlbHkgPGRjb25uZWVseUB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20+CkRhdGU6ICAgMjAxNy0xMi0wNFQxODo0MjoxOFoKCiAgICBBZGQgb3JnLnNsZjRqLmV2ZW50IHRvIGV4cG9ydGVkIHBhY2thZ2VzCiAgICAKICAgIG1hdmVuLWNvcmUgc2hvdWxkIGV4cG9ydCBvcmcuc2xmNGouZXZlbnQuKiBmcm9tIHNsZjRqLWFwaSAxLjcuMTUgb3IgbGF0ZXIuCiAgICBGb3IgZXhhbXBsZSwgdGhpcyBwYWNrYWdlIGlzIHdoZXJlIHRoZSBgTGV2ZWxgIGNsYXNzIGlzIGxvY2F0ZWQuCgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4MjctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIERlYyAyNSAwNjo0MzoyMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4MjctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRUY4OTYxMEE1RAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDI1IERlYyAyMDE3IDA2OjQzOjIwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODYxNzQgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgRGVjIDIwMTcgMDY6NDM6MjAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg1OTU2IGludm9rZWQgYnkgdWlkIDUwMCk7IDI1IERlYyAyMDE3IDA2OjQzOjIwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODU5NDUgaW52b2tlZCBieSB1aWQgOTkpOyAyNSBEZWMgMjAxNyAwNjo0MzoxOSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMjUgRGVjIDIwMTcgMDY6NDM6MTkgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgRDMyMDdERkNGQTsgTW9uLCAyNSBEZWMgMjAxNyAwNjo0MzoxNiArMDAwMCAoVVRDKQpGcm9tOiBDaHJpc3RpYW5TY2h1bHRlIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JRDogPGdpdC1wci0xNDEtbWF2ZW5AZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuIHB1bGwgcmVxdWVzdCAjMTQxOiBbTU5HLTYxNjRdIENvbGxlY3Rpb25zIGluY29uc2lzdGVudGx5IGltbXV0YWJsZS4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IE1vbiwgMjUgRGVjIDIwMTcgMDY6NDM6MTYgKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIENocmlzdGlhblNjaHVsdGUgb3BlbmVkIGEgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vcHVsbC8xNDEKCiAgICBbTU5HLTYxNjRdIENvbGxlY3Rpb25zIGluY29uc2lzdGVudGx5IGltbXV0YWJsZS4KCiAgICAKCllvdSBjYW4gbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3QgaW50byBhIEdpdCByZXBvc2l0b3J5IGJ5IHJ1bm5pbmc6CgogICAgJCBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vQ2hyaXN0aWFuU2NodWx0ZS9tYXZlbiBNTkctNjE2NAoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHJldmlldyBhbmQgYXBwbHkgdGhlc2UgY2hhbmdlcyBhcyB0aGUgcGF0Y2ggYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9wdWxsLzE0MS5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMTQxCiAgICAKLS0tLQpjb21taXQgZDA4Y2IyOGQ1MzUzYjFkYzcxZmZkMzE0YjIzYzA4YTdmZWZlYzQ4NApBdXRob3I6IENocmlzdGlhbiBTY2h1bHRlIDxzY2h1bHRlQC4uLj4KRGF0ZTogICAyMDE1LTEyLTE0VDAzOjU3OjQ3WgoKICAgIFtNTkctNjE2NF0gQ29sbGVjdGlvbnMgaW5jb25zaXN0ZW50bHkgaW1tdXRhYmxlLgoKLS0tLQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODI4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBEZWMgMjUgMDY6NDQ6MzYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODI4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDAzNEY3MTBBNjgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAyNSBEZWMgMjAxNyAwNjo0NDozNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg3NjYwIGludm9rZWQgYnkgdWlkIDUwMCk7IDI1IERlYyAyMDE3IDA2OjQ0OjM1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NzU3MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNSBEZWMgMjAxNyAwNjo0NDozNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg3NTYwIGludm9rZWQgYnkgdWlkIDk5KTsgMjUgRGVjIDIwMTcgMDY6NDQ6MzUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDI1IERlYyAyMDE3IDA2OjQ0OjM1ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDE4RUNDREZDRkE7IE1vbiwgMjUgRGVjIDIwMTcgMDY6NDQ6MzUgKzAwMDAgKFVUQykKRnJvbTogQ2hyaXN0aWFuU2NodWx0ZSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDxnaXQtcHItMTQyLW1hdmVuQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbiBwdWxsIHJlcXVlc3QgIzE0MjogW01ORy02MTE0XSBQcm9maWxlcyBmcm9tIHRoZSBnbG9iYWwgc2V0dGluZ3Mgc2hvdWxkLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpEYXRlOiBNb24sIDI1IERlYyAyMDE3IDA2OjQ0OjM1ICswMDAwIChVVEMpCgpHaXRIdWIgdXNlciBDaHJpc3RpYW5TY2h1bHRlIG9wZW5lZCBhIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL3B1bGwvMTQyCgogICAgW01ORy02MTE0XSBQcm9maWxlcyBmcm9tIHRoZSBnbG9iYWwgc2V0dGluZ3Mgc2hvdWxkIGJlIG9yZGVyZWQgYmVmb3Jl4oCmCgogICAg4oCmIHByb2ZpbGVzIGZyb20gdGhlIHVzZXIgc2V0dGluZ3MuCgpZb3UgY2FuIG1lcmdlIHRoaXMgcHVsbCByZXF1ZXN0IGludG8gYSBHaXQgcmVwb3NpdG9yeSBieSBydW5uaW5nOgoKICAgICQgZ2l0IHB1bGwgaHR0cHM6Ly9naXRodWIuY29tL0NocmlzdGlhblNjaHVsdGUvbWF2ZW4gTU5HLTYxMTQKCkFsdGVybmF0aXZlbHkgeW91IGNhbiByZXZpZXcgYW5kIGFwcGx5IHRoZXNlIGNoYW5nZXMgYXMgdGhlIHBhdGNoIGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vcHVsbC8xNDIucGF0Y2gKClRvIGNsb3NlIHRoaXMgcHVsbCByZXF1ZXN0LCBtYWtlIGEgY29tbWl0IHRvIHlvdXIgbWFzdGVyL3RydW5rIGJyYW5jaAp3aXRoIChhdCBsZWFzdCkgdGhlIGZvbGxvd2luZyBpbiB0aGUgY29tbWl0IG1lc3NhZ2U6CgogICAgVGhpcyBjbG9zZXMgIzE0MgogICAgCi0tLS0KY29tbWl0IDYzM2FmOGUxZDdhODQxZjM4MjkxMjFmZmRhNjllMzVmODk3NzViM2UKQXV0aG9yOiBDaHJpc3RpYW4gU2NodWx0ZSA8c2NodWx0ZUAuLi4+CkRhdGU6ICAgMjAxNi0xMS0xMlQyMDowNjoxOVoKCiAgICBbTU5HLTYxMTRdIFByb2ZpbGVzIGZyb20gdGhlIGdsb2JhbCBzZXR0aW5ncyBzaG91bGQgYmUgb3JkZXJlZCBiZWZvcmUgcHJvZmlsZXMgZnJvbSB0aGUgdXNlciBzZXR0aW5ncy4KCi0tLS0KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDgyOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gRGVjIDI1IDA2OjQ2OjE0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDgyOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4QzBEMTEwQTcxCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMjUgRGVjIDIwMTcgMDY6NDY6MTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4ODkxOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNSBEZWMgMjAxNyAwNjo0NjoxNCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODg4MTcgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgRGVjIDIwMTcgMDY6NDY6MTQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4ODgwNSBpbnZva2VkIGJ5IHVpZCA5OSk7IDI1IERlYyAyMDE3IDA2OjQ2OjEzIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAyNSBEZWMgMjAxNyAwNjo0NjoxMyArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBBNTU0MkRGQ0ZBOyBNb24sIDI1IERlYyAyMDE3IDA2OjQ2OjEzICswMDAwIChVVEMpCkZyb206IENocmlzdGlhblNjaHVsdGUgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8Z2l0LXByLTE0My1tYXZlbkBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4gcHVsbCByZXF1ZXN0ICMxNDM6IFtNTkctNTM1OV0gRGVjbGFyZWQgZXhlY3V0aW9uIGluIFBsdWdpbk1nbXQgZ2V0cyBiby4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KRGF0ZTogTW9uLCAyNSBEZWMgMjAxNyAwNjo0NjoxMyArMDAwMCAoVVRDKQoKR2l0SHViIHVzZXIgQ2hyaXN0aWFuU2NodWx0ZSBvcGVuZWQgYSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9wdWxsLzE0MwoKICAgIFtNTkctNTM1OV0gRGVjbGFyZWQgZXhlY3V0aW9uIGluIFBsdWdpbk1nbXQgZ2V0cyBib3VuZCB0byBsaWZlY3ljbGUgKOKApgoKICAgIOKApnJlZ3Jlc3Npb24pCgpZb3UgY2FuIG1lcmdlIHRoaXMgcHVsbCByZXF1ZXN0IGludG8gYSBHaXQgcmVwb3NpdG9yeSBieSBydW5uaW5nOgoKICAgICQgZ2l0IHB1bGwgaHR0cHM6Ly9naXRodWIuY29tL0NocmlzdGlhblNjaHVsdGUvbWF2ZW4gTU5HLTUzNTkKCkFsdGVybmF0aXZlbHkgeW91IGNhbiByZXZpZXcgYW5kIGFwcGx5IHRoZXNlIGNoYW5nZXMgYXMgdGhlIHBhdGNoIGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vcHVsbC8xNDMucGF0Y2gKClRvIGNsb3NlIHRoaXMgcHVsbCByZXF1ZXN0LCBtYWtlIGEgY29tbWl0IHRvIHlvdXIgbWFzdGVyL3RydW5rIGJyYW5jaAp3aXRoIChhdCBsZWFzdCkgdGhlIGZvbGxvd2luZyBpbiB0aGUgY29tbWl0IG1lc3NhZ2U6CgogICAgVGhpcyBjbG9zZXMgIzE0MwogICAgCi0tLS0KY29tbWl0IDA2ZDhkNDUzM2IzODEwY2Y3Njc2MTVlODNmNTFhYzQzZTRmNDc0YzAKQXV0aG9yOiBDaHJpc3RpYW4gU2NodWx0ZSA8Y3NALi4uPgpEYXRlOiAgIDIwMTctMTAtMjJUMDQ6MjI6MTBaCgogICAgW01ORy01MzU5XSBEZWNsYXJlZCBleGVjdXRpb24gaW4gUGx1Z2luTWdtdCBnZXRzIGJvdW5kIHRvIGxpZmVjeWNsZSAocmVncmVzc2lvbikKCi0tLS0KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDgzMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gRGVjIDI1IDA2OjQ3OjM3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDgzMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDMDgyQjEwQTdGCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMjUgRGVjIDIwMTcgMDY6NDc6MzcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5MTE1NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNSBEZWMgMjAxNyAwNjo0NzozNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTEwNjUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgRGVjIDIwMTcgMDY6NDc6MzcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MTA1NCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI1IERlYyAyMDE3IDA2OjQ3OjM2IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAyNSBEZWMgMjAxNyAwNjo0NzozNiArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBDREFGNURGQ0ZBOyBNb24sIDI1IERlYyAyMDE3IDA2OjQ3OjM2ICswMDAwIChVVEMpCkZyb206IENocmlzdGlhblNjaHVsdGUgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8Z2l0LXByLTE0NC1tYXZlbkBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4gcHVsbCByZXF1ZXN0ICMxNDQ6IFtNTkctMjg5M10gVXBkYXRlIHRoZSBEZWZhdWx0UGx1Z2luTWFuYWdlciB0byBub3QgdS4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KRGF0ZTogTW9uLCAyNSBEZWMgMjAxNyAwNjo0NzozNiArMDAwMCAoVVRDKQoKR2l0SHViIHVzZXIgQ2hyaXN0aWFuU2NodWx0ZSBvcGVuZWQgYSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9wdWxsLzE0NAoKICAgIFtNTkctMjg5M10gVXBkYXRlIHRoZSBEZWZhdWx0UGx1Z2luTWFuYWdlciB0byBub3QgdXNlIGEgcHJvamVjdCBkZXBNYeKApgoKICAgIOKApm4gZm9yIGNvbnRyb2xsaW5nIGl0J3MgdHJhbnNpdGl2ZSBkZXBlbmRlbmNpZXMKCllvdSBjYW4gbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3QgaW50byBhIEdpdCByZXBvc2l0b3J5IGJ5IHJ1bm5pbmc6CgogICAgJCBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vQ2hyaXN0aWFuU2NodWx0ZS9tYXZlbiBNTkctMjg5MwoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHJldmlldyBhbmQgYXBwbHkgdGhlc2UgY2hhbmdlcyBhcyB0aGUgcGF0Y2ggYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9wdWxsLzE0NC5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMTQ0CiAgICAKLS0tLQpjb21taXQgMWRlMWNlMWZkYzUwYTg1NzRhNmIwZTMyY2U0YWRjODM4OWZjZjczYQpBdXRob3I6IENocmlzdGlhbiBTY2h1bHRlIDxjc0AuLi4+CkRhdGU6ICAgMjAxNy0wMy0yNVQyMjowMTowM1oKCiAgICBbTU5HLTI4OTNdIFVwZGF0ZSB0aGUgRGVmYXVsdFBsdWdpbk1hbmFnZXIgdG8gbm90IHVzZSBhIHByb2plY3QgZGVwTWFuIGZvciBjb250cm9sbGluZyBpdCdzIHRyYW5zaXRpdmUgZGVwZW5kZW5jaWVzCgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4MzEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIERlYyAyNSAwNjo0OToyMiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4MzEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNjM4MzYxMEE4QQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDI1IERlYyAyMDE3IDA2OjQ5OjIyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTI2MTYgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgRGVjIDIwMTcgMDY6NDk6MjIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkyNTAzIGludm9rZWQgYnkgdWlkIDUwMCk7IDI1IERlYyAyMDE3IDA2OjQ5OjIxIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTI0OTIgaW52b2tlZCBieSB1aWQgOTkpOyAyNSBEZWMgMjAxNyAwNjo0OToyMSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMjUgRGVjIDIwMTcgMDY6NDk6MjEgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNzk1MkNERkNGQTsgTW9uLCAyNSBEZWMgMjAxNyAwNjo0OToyMSArMDAwMCAoVVRDKQpGcm9tOiBDaHJpc3RpYW5TY2h1bHRlIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JRDogPGdpdC1wci0xNDUtbWF2ZW5AZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuIHB1bGwgcmVxdWVzdCAjMTQ1OiBbTU5HLTYxMTJdIENlbnRyYWwgcmVwb3NpdG9yeSBpbiB0aGUgNC4wLjAgc3VwZXIgUE8uLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IE1vbiwgMjUgRGVjIDIwMTcgMDY6NDk6MjEgKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIENocmlzdGlhblNjaHVsdGUgb3BlbmVkIGEgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vcHVsbC8xNDUKCiAgICBbTU5HLTYxMTJdIENlbnRyYWwgcmVwb3NpdG9yeSBpbiB0aGUgNC4wLjAgc3VwZXIgUE9NIHNob3VsZCBkZWNsYXJlIHXigKYKCiAgICDigKZwZGF0ZSBwb2xpY3kgJ25ldmVyJy4KCllvdSBjYW4gbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3QgaW50byBhIEdpdCByZXBvc2l0b3J5IGJ5IHJ1bm5pbmc6CgogICAgJCBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vQ2hyaXN0aWFuU2NodWx0ZS9tYXZlbiBNTkctNjExMgoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHJldmlldyBhbmQgYXBwbHkgdGhlc2UgY2hhbmdlcyBhcyB0aGUgcGF0Y2ggYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9wdWxsLzE0NS5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMTQ1CiAgICAKLS0tLQpjb21taXQgYTcwNDA2YmIyY2ZlNmVjMTRmNzE3YzUzY2ViZThmMjM5MTlhYTBmYwpBdXRob3I6IENocmlzdGlhbiBTY2h1bHRlIDxjc0AuLi4+CkRhdGU6ICAgMjAxNy0wMy0yNVQyMzoxODoyNFoKCiAgICBbTU5HLTYxMTJdIENlbnRyYWwgcmVwb3NpdG9yeSBpbiB0aGUgNC4wLjAgc3VwZXIgUE9NIHNob3VsZCBkZWNsYXJlIHVwZGF0ZSBwb2xpY3kgJ25ldmVyJy4KCi0tLS0KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDg5Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gRGVjIDMxIDA2OjI1OjM1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg5Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAxRTNCMTE3NTMxCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMzEgRGVjIDIwMTcgMDY6MjU6MzUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyMDYxNiBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMSBEZWMgMjAxNyAwNjoyNTozNCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjAzODYgaW52b2tlZCBieSB1aWQgNTAwKTsgMzEgRGVjIDIwMTcgMDY6MjU6MzQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMDM3NSBpbnZva2VkIGJ5IHVpZCA5OSk7IDMxIERlYyAyMDE3IDA2OjI1OjM0IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAzMSBEZWMgMjAxNyAwNjoyNTozNCArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBFQjEyOURGQjdEOyBTdW4sIDMxIERlYyAyMDE3IDA2OjI1OjMyICswMDAwIChVVEMpCkZyb206IENocmlzdGlhblNjaHVsdGUgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8Z2l0LXByLTE0Ni1tYXZlbkBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4gcHVsbCByZXF1ZXN0ICMxNDY6IFtNTkctNDQ2M10gRGVwZW5kZW5jeSBtYW5hZ2VtZW50IGltcG9ydCBzaG91bGQgc3VwcC4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KRGF0ZTogU3VuLCAzMSBEZWMgMjAxNyAwNjoyNTozMiArMDAwMCAoVVRDKQoKR2l0SHViIHVzZXIgQ2hyaXN0aWFuU2NodWx0ZSBvcGVuZWQgYSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9wdWxsLzE0NgoKICAgIFtNTkctNDQ2M10gRGVwZW5kZW5jeSBtYW5hZ2VtZW50IGltcG9ydCBzaG91bGQgc3VwcG9ydCB2ZXJzaW9uIHJhbmdlcy4KCiAgICBDbG9zZXMgIzY0IHdpdGhvdXQgbWVyZ2luZy4gSVRzIGFyZSBwZW5kaW5nIHRvIGJlIGNvbW1pdHRlZC4KCllvdSBjYW4gbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3QgaW50byBhIEdpdCByZXBvc2l0b3J5IGJ5IHJ1bm5pbmc6CgogICAgJCBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vQ2hyaXN0aWFuU2NodWx0ZS9tYXZlbiBNTkctNDQ2MwoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHJldmlldyBhbmQgYXBwbHkgdGhlc2UgY2hhbmdlcyBhcyB0aGUgcGF0Y2ggYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9wdWxsLzE0Ni5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMTQ2CiAgICAKLS0tLQpjb21taXQgOWYyMzZmZGI4MzA1ZmZiY2U5ZTFiNzZjOGNiNGVjZjAxMmVmYzZkYQpBdXRob3I6IENocmlzdGlhbiBTY2h1bHRlIDxzY2h1bHRlQC4uLj4KRGF0ZTogICAyMDE2LTAxLTMwVDE4OjE3OjM0WgoKICAgIFtNTkctNDQ2M10gRGVwZW5kZW5jeSBtYW5hZ2VtZW50IGltcG9ydCBzaG91bGQgc3VwcG9ydCB2ZXJzaW9uIHJhbmdlcy4KICAgIAogICAgQ2xvc2VzICM2NCB3aXRob3V0IG1lcmdpbmcuIElUcyBhcmUgcGVuZGluZyB0byBiZSBjb21taXR0ZWQuCgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4OTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIERlYyAzMSAwNjozMjo0MSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4OTQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgREU3QzYxNzU2RAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDMxIERlYyAyMDE3IDA2OjMyOjQwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjY0NzUgaW52b2tlZCBieSB1aWQgNTAwKTsgMzEgRGVjIDIwMTcgMDY6MzI6NDAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI2Mzk3IGludm9rZWQgYnkgdWlkIDUwMCk7IDMxIERlYyAyMDE3IDA2OjMyOjQwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjYzODMgaW52b2tlZCBieSB1aWQgOTkpOyAzMSBEZWMgMjAxNyAwNjozMjo0MCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMzEgRGVjIDIwMTcgMDY6MzI6NDAgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgMzJFNThERkYwQjsgU3VuLCAzMSBEZWMgMjAxNyAwNjozMjozNyArMDAwMCAoVVRDKQpGcm9tOiBDaHJpc3RpYW5TY2h1bHRlIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JRDogPGdpdC1wci0xNDctbWF2ZW5AZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuIHB1bGwgcmVxdWVzdCAjMTQ3OiBbTU5HLTU1MjddIERlcGVuZGVuY3kgbWFuYWdlbWVudCBpbXBvcnQgc2hvdWxkIHN1cHAuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IFN1biwgMzEgRGVjIDIwMTcgMDY6MzI6MzcgKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIENocmlzdGlhblNjaHVsdGUgb3BlbmVkIGEgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vcHVsbC8xNDcKCiAgICBbTU5HLTU1MjddIERlcGVuZGVuY3kgbWFuYWdlbWVudCBpbXBvcnQgc2hvdWxkIHN1cHBvcnQgcmVsb2NhdGlvbnMuCgogICAgCgpZb3UgY2FuIG1lcmdlIHRoaXMgcHVsbCByZXF1ZXN0IGludG8gYSBHaXQgcmVwb3NpdG9yeSBieSBydW5uaW5nOgoKICAgICQgZ2l0IHB1bGwgaHR0cHM6Ly9naXRodWIuY29tL0NocmlzdGlhblNjaHVsdGUvbWF2ZW4gTU5HLTU1MjcKCkFsdGVybmF0aXZlbHkgeW91IGNhbiByZXZpZXcgYW5kIGFwcGx5IHRoZXNlIGNoYW5nZXMgYXMgdGhlIHBhdGNoIGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vcHVsbC8xNDcucGF0Y2gKClRvIGNsb3NlIHRoaXMgcHVsbCByZXF1ZXN0LCBtYWtlIGEgY29tbWl0IHRvIHlvdXIgbWFzdGVyL3RydW5rIGJyYW5jaAp3aXRoIChhdCBsZWFzdCkgdGhlIGZvbGxvd2luZyBpbiB0aGUgY29tbWl0IG1lc3NhZ2U6CgogICAgVGhpcyBjbG9zZXMgIzE0NwogICAgCi0tLS0KY29tbWl0IDRjMTc4NzRiZDlhMDUxYjFhZWUyZmE0OGQ4ODZmYjJlOWMyZTRlMzgKQXV0aG9yOiBDaHJpc3RpYW4gU2NodWx0ZSA8c2NodWx0ZUAuLi4+CkRhdGU6ICAgMjAxNi0wNi0yMVQxOTozNTo0MFoKCiAgICBbTU5HLTU1MjddIERlcGVuZGVuY3kgbWFuYWdlbWVudCBpbXBvcnQgc2hvdWxkIHN1cHBvcnQgcmVsb2NhdGlvbnMuCgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4OTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIERlYyAzMSAwNjozNzo0NCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4OTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMDI4MzgxNzU5OAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDMxIERlYyAyMDE3IDA2OjM3OjQzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzE4ODcgaW52b2tlZCBieSB1aWQgNTAwKTsgMzEgRGVjIDIwMTcgMDY6Mzc6NDMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMxNzYzIGludm9rZWQgYnkgdWlkIDUwMCk7IDMxIERlYyAyMDE3IDA2OjM3OjQzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzE3NTEgaW52b2tlZCBieSB1aWQgOTkpOyAzMSBEZWMgMjAxNyAwNjozNzo0MiAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMzEgRGVjIDIwMTcgMDY6Mzc6NDIgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgOEEzMEVERkYwQjsgU3VuLCAzMSBEZWMgMjAxNyAwNjozNzozOSArMDAwMCAoVVRDKQpGcm9tOiBDaHJpc3RpYW5TY2h1bHRlIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JRDogPGdpdC1wci0xNDgtbWF2ZW5AZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuIHB1bGwgcmVxdWVzdCAjMTQ4OiBbTU5HLTU2MDBdIERlcGVuZGVuY3kgbWFuYWdlbWVudCBpbXBvcnQgc2hvdWxkIHN1cHAuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IFN1biwgMzEgRGVjIDIwMTcgMDY6Mzc6MzkgKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIENocmlzdGlhblNjaHVsdGUgb3BlbmVkIGEgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vcHVsbC8xNDgKCiAgICBbTU5HLTU2MDBdIERlcGVuZGVuY3kgbWFuYWdlbWVudCBpbXBvcnQgc2hvdWxkIHN1cHBvcnQgZXhjbHVzaW9ucy4KCiAgICAKCllvdSBjYW4gbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3QgaW50byBhIEdpdCByZXBvc2l0b3J5IGJ5IHJ1bm5pbmc6CgogICAgJCBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vQ2hyaXN0aWFuU2NodWx0ZS9tYXZlbiBNTkctNTYwMAoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHJldmlldyBhbmQgYXBwbHkgdGhlc2UgY2hhbmdlcyBhcyB0aGUgcGF0Y2ggYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi9wdWxsLzE0OC5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMTQ4CiAgICAKLS0tLQpjb21taXQgNDdlMzBjNDQ2YTc1M2U2ZDhiYWQwNGM5OWI5NDU2OTU3ZjUzOTRkZgpBdXRob3I6IENocmlzdGlhbiBTY2h1bHRlIDxzY2h1bHRlQC4uLj4KRGF0ZTogICAyMDE2LTA2LTE5VDE0OjMyOjI1WgoKICAgIFtNTkctNTYwMF0gRGVwZW5kZW5jeSBtYW5hZ2VtZW50IGltcG9ydCBzaG91bGQgc3VwcG9ydCBleGNsdXNpb25zLgoKLS0tLQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MTAxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBTZXAgMjUgMTk6MDc6MTEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTAxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEVEQ0M0MTA1MEUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAyNSBTZXAgMjAxNyAxOTowNzoxMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk0OTEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgU2VwIDIwMTcgMTk6MDc6MTEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk0MDIgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgU2VwIDIwMTcgMTk6MDc6MTEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MzkxIGludm9rZWQgYnkgdWlkIDk5KTsgMjUgU2VwIDIwMTcgMTk6MDc6MTEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDI1IFNlcCAyMDE3IDE5OjA3OjExICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDMxMzEzRjU3MTI7IE1vbiwgMjUgU2VwIDIwMTcgMTk6MDc6MTEgKzAwMDAgKFVUQykKRnJvbTogYnJpdHRlciA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDxnaXQtcHItMTY1LW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBwdWxsIHJlcXVlc3QgIzE2NTogTWVyZ2UgbWFzdGVyIHRvIGp1bml0NQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KRGF0ZTogTW9uLCAyNSBTZXAgMjAxNyAxOTowNzoxMSArMDAwMCAoVVRDKQoKR2l0SHViIHVzZXIgYnJpdHRlciBvcGVuZWQgYSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2NQoKICAgIE1lcmdlIG1hc3RlciB0byBqdW5pdDUKCiAgICBCcmluZyB0aGUganVuaXQ1IGJyYW5jaCB1cCB0byBkYXRlIHdpdGggbWFzdGVyLCBzbyB3ZSBjYW4gY29udGludWUgd29yay4KICAgIAogICAgSSdtIHN0aWxsIGdldHRpbmcgYnVpbGQgZmFpbHVyZXMgd2hlbiBydW5uaW5nIG12biBjbGVhbiB2ZXJpZnk6CiAgICAKICAgIGBgYAogICAgW0lORk9dIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgW0lORk9dIFJlYWN0b3IgU3VtbWFyeToKICAgIFtJTkZPXQogICAgW0lORk9dIEFwYWNoZSBNYXZlbiBTdXJlZmlyZSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gU1VDQ0VTUyBbICAzLjQ1NiBzXQogICAgW0lORk9dIFN1cmVGaXJlIExvZ2dlciBBUEkgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gU1VDQ0VTUyBbICAyLjE3MCBzXQogICAgW0lORk9dIFNoYWRlRmlyZSBKVW5pdDMgUHJvdmlkZXIgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gU1VDQ0VTUyBbICAzLjE4MyBzXQogICAgW0lORk9dIFN1cmVGaXJlIEFQSSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gU1VDQ0VTUyBbICA2LjUwNiBzXQogICAgW0lORk9dIFN1cmVGaXJlIEJvb3RlciAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gU1VDQ0VTUyBbICA3LjExMSBzXQogICAgW0lORk9dIE1hdmVuIFN1cmVmaXJlIFRlc3QtR3JvdXBpbmcgU3VwcG9ydCAuLi4uLi4uLi4uLi4uLi4gU1VDQ0VTUyBbICAyLjU5NyBzXQogICAgW0lORk9dIFN1cmVGaXJlIFByb3ZpZGVycyAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gU1VDQ0VTUyBbICAwLjY0OCBzXQogICAgW0lORk9dIFNoYXJlZCBKVW5pdDMgUHJvdmlkZXIgQ29kZSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gU1VDQ0VTUyBbICAyLjMxNyBzXQogICAgW0lORk9dIFNoYXJlZCBKYXZhIDUgUHJvdmlkZXIgQmFzZSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gU1VDQ0VTUyBbICAyLjY2NSBzXQogICAgW0lORk9dIFNoYXJlZCBKVW5pdDQgUHJvdmlkZXIgQ29kZSAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gU1VDQ0VTUyBbICAyLjcxNyBzXQogICAgW0lORk9dIFNoYXJlZCBKVW5pdDQ4IFByb3ZpZGVyIENvZGUgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gU1VDQ0VTUyBbICAzLjQ4MSBzXQogICAgW0lORk9dIFN1cmVGaXJlIEpVbml0IFJ1bm5lciAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gU1VDQ0VTUyBbICAyLjUwMiBzXQogICAgW0lORk9dIFN1cmVGaXJlIEpVbml0NCBSdW5uZXIgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gU1VDQ0VTUyBbICAzLjI2MSBzXQogICAgW0lORk9dIE1hdmVuIFN1cmVmaXJlIENvbW1vbiAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gU1VDQ0VTUyBbICA5LjQ5MCBzXQogICAgW0lORk9dIFN1cmVGaXJlIEpVbml0Q29yZSBSdW5uZXIgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gU1VDQ0VTUyBbIDU3LjYyNCBzXQogICAgW0lORk9dIFN1cmVGaXJlIEpVbml0IFBsYXRmb3JtIFJ1bm5lciAuLi4uLi4uLi4uLi4uLi4uLi4uLi4gU1VDQ0VTUyBbICA0LjA0MSBzXQogICAgW0lORk9dIFN1cmVGaXJlIFRlc3RORyBVdGlscyAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gU1VDQ0VTUyBbICAxLjU3NyBzXQogICAgW0lORk9dIFN1cmVGaXJlIFRlc3RORyBSdW5uZXIgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gU1VDQ0VTUyBbICAyLjk3MiBzXQogICAgW0lORk9dIFN1cmVmaXJlIFJlcG9ydCBQYXJzZXIgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gU1VDQ0VTUyBbICAzLjIzOSBzXQogICAgW0lORk9dIE1hdmVuIFN1cmVmaXJlIFBsdWdpbiAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gRkFJTFVSRSBbICAzLjMwMSBzXQogICAgW0lORk9dIE1hdmVuIEZhaWxzYWZlIFBsdWdpbiAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gU0tJUFBFRAogICAgW0lORk9dIE1hdmVuIFN1cmVmaXJlIFJlcG9ydCBQbHVnaW4gLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4gU0tJUFBFRAogICAgW0lORk9dIE1hdmVuIFN1cmVmaXJlIEludGVncmF0aW9uIFRlc3QgU2V0dXAgLi4uLi4uLi4uLi4uLi4gU0tJUFBFRAogICAgW0lORk9dIE1hdmVuIFN1cmVmaXJlIEludGVncmF0aW9uIFRlc3RzIC4uLi4uLi4uLi4uLi4uLi4uLi4gU0tJUFBFRAogICAgW0lORk9dIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgW0lORk9dIEJVSUxEIEZBSUxVUkUKICAgIFtJTkZPXSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFtJTkZPXSBUb3RhbCB0aW1lOiAwMjowNiBtaW4KICAgIFtJTkZPXSBGaW5pc2hlZCBhdDogMjAxNy0wOS0yNVQyMTowNDoyNiswMjowMAogICAgW0lORk9dIEZpbmFsIE1lbW9yeTogNTdNLzQ0Nk0KICAgIFtJTkZPXSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIFtFUlJPUl0gRmFpbGVkIHRvIGV4ZWN1dGUgZ29hbCBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM6bWF2ZW4tcGx1Z2luLXBsdWdpbjozLjM6ZGVzY3JpcHRvciAoZGVmYXVsdC1kZXNjcmlwdG9yKSBvbiBwcm9qZWN0IG1hdmVuLXN1cmVmaXJlLXBsdWdpbjogRXJyb3IgZXh0cmFjdGluZyBwbHVnaW4gZGVzY3JpcHRvcjogJ0dvYWw6IGhlbHAgYWxyZWFkeSBleGlzdHMgaW4gdGhlIHBsdWdpbiBkZXNjcmlwdG9yIGZvciBwcmVmaXg6IHN1cmVmaXJlCiAgICBbRVJST1JdIEV4aXN0aW5nIGltcGxlbWVudGF0aW9uIGlzOiBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbi5zdXJlZmlyZS5IZWxwTW9qbwogICAgW0VSUk9SXSBDb25mbGljdGluZyBpbXBsZW1lbnRhdGlvbiBpczogSGVscE1vam8nCiAgICBbRVJST1JdIC0+IFtIZWxwIDFdCiAgICBbRVJST1JdCiAgICBbRVJST1JdIFRvIHNlZSB0aGUgZnVsbCBzdGFjayB0cmFjZSBvZiB0aGUgZXJyb3JzLCByZS1ydW4gTWF2ZW4gd2l0aCB0aGUgLWUgc3dpdGNoLgogICAgW0VSUk9SXSBSZS1ydW4gTWF2ZW4gdXNpbmcgdGhlIC1YIHN3aXRjaCB0byBlbmFibGUgZnVsbCBkZWJ1ZyBsb2dnaW5nLgogICAgW0VSUk9SXQogICAgW0VSUk9SXSBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXJyb3JzIGFuZCBwb3NzaWJsZSBzb2x1dGlvbnMsIHBsZWFzZSByZWFkIHRoZSBmb2xsb3dpbmcgYXJ0aWNsZXM6CiAgICBbRVJST1JdIFtIZWxwIDFdIGh0dHA6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9Nb2pvRXhlY3V0aW9uRXhjZXB0aW9uCiAgICBbRVJST1JdCiAgICBbRVJST1JdIEFmdGVyIGNvcnJlY3RpbmcgdGhlIHByb2JsZW1zLCB5b3UgY2FuIHJlc3VtZSB0aGUgYnVpbGQgd2l0aCB0aGUgY29tbWFuZAogICAgW0VSUk9SXSAgIG12biA8Z29hbHM+IC1yZiA6bWF2ZW4tc3VyZWZpcmUtcGx1Z2luCiAgICBgYGAKICAgIAogICAgQFRpYm9yMTcgY2FuIHlvdSBoZWxwPyBNYXliZSB3ZSBtZXJnZSB0aGlzIGFuZCB0aGVuIGZpeCB0aGUgYnVpbGQgZmFpbHVyZXM/CgpZb3UgY2FuIG1lcmdlIHRoaXMgcHVsbCByZXF1ZXN0IGludG8gYSBHaXQgcmVwb3NpdG9yeSBieSBydW5uaW5nOgoKICAgICQgZ2l0IHB1bGwgaHR0cHM6Ly9naXRodWIuY29tL2JyaXR0ZXIvbWF2ZW4tc3VyZWZpcmUgbWVyZ2UtbWFzdGVyLXRvLWp1bml0NQoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHJldmlldyBhbmQgYXBwbHkgdGhlc2UgY2hhbmdlcyBhcyB0aGUgcGF0Y2ggYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2NS5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMTY1CiAgICAKLS0tLQpjb21taXQgODlkYzlmOTdjODUxYmVkMWQ4YWYwYWU3NTE0M2ViNjkyZWZiNzVkZApBdXRob3I6IFRpYm9yMTcgPHRpYm9yMTdAbHljb3MuY29tPgpEYXRlOiAgIDIwMTYtMTAtMjlUMjE6MDY6MTJaCgogICAgW1NVUkVGSVJFLTEyOTZdIFRoZSBwcm9qZWN0IGJ1aWxkIGRpcmVjdG9yeSBzaG91bGQgbm90IGJlIGRldGVybWluZWQgYXMgKGRpcmVjdG9yeSBvZiBzdXJlZmlyZS1yZXBvcnRzKS5nZXRQYXJlbnRGaWxlKCkuIEl0IGlzIGEgcHJvYmxlbSBpZiByZXBvcnQgZGlyZWN0b3J5IGlzIGN1c3RvbWl6ZWQuCgpjb21taXQgZmI5YjY5OWUyN2RhZTkwNTM5M2E1YmM0ZDVjNmFlMzk2MDZjMzE3MgpBdXRob3I6IFRpYm9yMTcgPHRpYm9yMTdAbHljb3MuY29tPgpEYXRlOiAgIDIwMTYtMTAtMzBUMDk6NTE6MjZaCgogICAgW1NVUkVGSVJFLTEyOTddIFNwZWNpZnkgc3VyZWZpcmUgdGVtcCBkaXJlY3RvcnkgZm9yIHJ1biBpbiBtdWx0aXBsZSBwcm9jZXNzZXMKCmNvbW1pdCAwNTliZDAyOWNjZmM1NmEwZDkzNzBmOTg2MmQ0ZmVlZDVmYzA3NDQ4CkF1dGhvcjogUmljaGFyZCBSYXVtYmVyZ2VyIDxyaWNoYXJkLnJhdW1iZXJnZXJAZ21haWwuY29tPgpEYXRlOiAgIDIwMTYtMTEtMTJUMjE6MDY6MjNaCgogICAgW1NVUkVGSVJFLTEzMDFdIGFkZCBub3RlIGZvciBjaGFuZ2luZyBiYXNlRGlyIHByb3BlcnR5Cgpjb21taXQgMzY0YjBjOWU4YWU1NjkxNmYwYjlhZWFkMmEyNmYwN2VkNTdiZWZjYQpBdXRob3I6IFRpYm9yMTcgPHRpYm9yMTdAbHljb3MuY29tPgpEYXRlOiAgIDIwMTYtMTEtMjhUMjI6MTY6MjBaCgogICAgW1NVUkVGSVJFLTEyOTVdIEF0dHJpYnV0ZSBKVk0gY3Jhc2hlcyB0byB0ZXN0cwoKY29tbWl0IGRiMjUxYjM5MTVkMDE1Mzk5MDNiNjg0ZjEyZDZkNjllMjliOTc4YmIKQXV0aG9yOiBUaWJvcjE3IDx0aWJvcjE3QGx5Y29zLmNvbT4KRGF0ZTogICAyMDE2LTExLTMwVDE5OjA4OjM2WgoKICAgIFtTVVJFRklSRV0gcmVmYWN0b3JpbmcgLSByZW1vdmVkIHVubmVjZXNzYXJ5IEphdmEgY2xhc3MtZmllbGQKCmNvbW1pdCBhMWVjZmMwMjJkZTIyYWM4OTFjZmFhOTViNzUyODY5NTU0NTQ0MTIyCkF1dGhvcjogVGlib3IxNyA8dGlib3IxN0BseWNvcy5jb20+CkRhdGU6ICAgMjAxNi0xMS0zMFQxOToxMTo0OFoKCiAgICBbU1VSRUZJUkUtMTMxMF0gRm9ya0NsaWVudCBzaG91bGQgaGFuZGxlIG9ubHkgb25lIGNoYW5uZWwtaWQKCmNvbW1pdCA5MjcyODgxZTZlODIyODUwNGIzYTNiYzM1YTJkM2YwYzlmMTcxYzM1CkF1dGhvcjogVGlib3IxNyA8dGlib3IxN0BseWNvcy5jb20+CkRhdGU6ICAgMjAxNi0xMS0zMFQxOTo0Mjo0M1oKCiAgICBNZXJnZSBicmFuY2ggJ21hc3Rlcicgb2YgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZSBpbnRvIFNVUkVGSVJFLTEyOTUKICAgIAogICAgQ29uZmxpY3RzOgogICAgCW1hdmVuLXN1cmVmaXJlLWNvbW1vbi9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2luL3N1cmVmaXJlL2Jvb3RlcmNsaWVudC9vdXRwdXQvRm9ya0NsaWVudC5qYXZhCgpjb21taXQgNjQ4Yzk2NzE3MWJiOTRjMjYyYzE1ZmM1MzkzYmE4MTNjMzEzY2RmYgpBdXRob3I6IFRpYm9yMTcgPHRpYm9yMTdAbHljb3MuY29tPgpEYXRlOiAgIDIwMTYtMTEtMzBUMjI6MTM6MDdaCgogICAgTWVyZ2UgYnJhbmNoICdtYXN0ZXInIG9mIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUgaW50byBTVVJFRklSRS0xMjk1CiAgICAKICAgIENvbmZsaWN0czoKICAgIAltYXZlbi1zdXJlZmlyZS1jb21tb24vc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbi9zdXJlZmlyZS9ib290ZXJjbGllbnQvb3V0cHV0L0ZvcmtDbGllbnQuamF2YQoKY29tbWl0IDM5MmY4YjJmNWQ0ZDk2NmQ0ODY4Y2NjYTRlNDAxOTVhNTE1NGFjNTgKQXV0aG9yOiBCZW5lZGlrdCBSaXR0ZXIgPGJyaXR0ZXJAYXBhY2hlLm9yZz4KRGF0ZTogICAyMDE2LTExLTIyVDIxOjE5OjM1WgoKICAgIFtTVVJFRklSRS0xMzA4XSBNb3ZlIFN1cmVmaXJlMTE3OUlUIHRvIGppcmFzIHBhY2thZ2UKCmNvbW1pdCAxNWI5NTMwMDBhZmMyNmNhMzg0NGFmN2QxOGZkN2IzYzlhZDI2Y2Q1CkF1dGhvcjogQmVuZWRpa3QgUml0dGVyIDxicml0dGVyQGFwYWNoZS5vcmc+CkRhdGU6ICAgMjAxNi0xMS0yMlQyMDowNToxM1oKCiAgICBTVVJFRklSRS0xMzA2OiBKVW5pdDRSZXJ1bkZhaWxpbmdUZXN0c0lUIGRvZXMgbm90IGV4ZWN1dGUgd2l0aCB0aGUgSlVuaXQKICAgIHZlcnNpb24gY29uZmlndXJlZCBpbiB0aGUgdGVzdAogICAgCiAgICBEcm9wIHRoZSBqdW5pdFZlcnNpb24gcHJvcGVydHkgZnJvbSBwb20ueG1sIGFuZCBsZXQgdGhlIHRlc3QgZXhlY3V0ZQogICAgd2l0aCB0aGUgbGF0ZXN0IEpVbml0IDQuMTIgY3VycmVudGx5IGF2YWlsYWJsZS4KCmNvbW1pdCAxOTVlNDgzM2NhN2FiYjAyNzhkMzRiZmY5NGNkNzY2OWQ1MzMxZTQ1CkF1dGhvcjogVGlib3IxNyA8dGlib3IxN0BseWNvcy5jb20+CkRhdGU6ICAgMjAxNi0xMS0zMFQyMzozNTowMVoKCiAgICBbU1VSRUZJUkUtMTMwNl0gSlVuaXQ0UmVydW5GYWlsaW5nVGVzdHNJVCBkb2VzIG5vdCBleGVjdXRlIHdpdGggdGhlIEpVbml0IHZlcnNpb24gY29uZmlndXJlZCBpbiB0aGUgdGVzdAoKY29tbWl0IGMyYTdkNGI3ZjI4YjBmYjU0NTZiOTg3MWZkODdjYmFjNWM3MGNiZDMKQXV0aG9yOiBUaWJvcjE3IDx0aWJvcjE3QGx5Y29zLmNvbT4KRGF0ZTogICAyMDE2LTEyLTAyVDAxOjUxOjA3WgoKICAgIFtTVVJFRklSRS0xMzA1XSBzdXJlZmlyZSBmYWlscyBvbiBwYXJhbGxlbCB0ZXN0cyB3aGVuIG5ld2xpbmUgY2hhcmFjdGVyIGlzIGluIHRlc3QgZGVzY3JpcHRpb24KCmNvbW1pdCBkOWI1NzdjZGM5OTFkMDkxMTYyODJkODljYTY5YjVkMjc2OGFjYjBlCkF1dGhvcjogVGlib3IxNyA8dGlib3IxN0BseWNvcy5jb20+CkRhdGU6ICAgMjAxNi0xMi0wMlQwMzozNjoxM1oKCiAgICBbU1VSRUZJUkUtMTMxMV0gSlVuaXQ0NyBwcm92aWRlciBzaG91bGQgbm90IGludGVybmFsbHkgcGFyc2UgSlVuaXQgRGVzY3JpcHRpb24KCmNvbW1pdCA1NjllNzU0NTJiMTE4MDI1MTE5MGMzNDcxMzcxNGJiNGFjNTE1ZDBlCkF1dGhvcjogVGlib3IxNyA8dGlib3IxN0BseWNvcy5jb20+CkRhdGU6ICAgMjAxNi0xMi0wM1QxOTo1NzoyMVoKCiAgICBbU1VSRUZJUkVdIG1vdmVkIFVybFV0aWxzIHRvIGludGVybmFsIHBhY2thZ2UKCmNvbW1pdCBkN2JmNmNlNDkwNDNhMzMwMTQ5NGZkZDI2YzUzOGFmYWQ0ZTE5MzhkCkF1dGhvcjogVGlib3IxNyA8dGlib3IxN0BseWNvcy5jb20+CkRhdGU6ICAgMjAxNi0xMi0wM1QyMToyNjo0MloKCiAgICBbU1VSRUZJUkUtMTMwNV0gc3VyZWZpcmUgZmFpbHMgb24gcGFyYWxsZWwgdGVzdHMgd2hlbiBuZXdsaW5lIGNoYXJhY3RlciBpcyBpbiB0ZXN0IGRlc2NyaXB0aW9uCgpjb21taXQgNjgyNDZlMmY5M2RhZWVlMGNiY2JhZjM0MmZhNGE0YTQ4NWM3Mjg5OQpBdXRob3I6IFRpYm9yMTcgPHRpYm9yMTdAbHljb3MuY29tPgpEYXRlOiAgIDIwMTYtMTItMTFUMDg6NTE6NDFaCgogICAgW1NVUkVGSVJFXSByZWZhY3RvcmluZwoKY29tbWl0IGZkMjkzZDg5NzFjMGM4NjlmY2E2ZWU5Y2Q5ZDE3MTQ1YjlhNzZiZDEKQXV0aG9yOiBUaWJvcjE3IDx0aWJvcjE3QGx5Y29zLmNvbT4KRGF0ZTogICAyMDE2LTEyLTExVDEyOjI4OjM3WgoKICAgIFtTVVJFRklSRV0gcmVmYWN0b3JpbmcKCmNvbW1pdCA5NDc4OTkwZTFlNmY1Y2NiMWMyNWNkM2JhOTJlOTdhOGI1N2M4MjI4CkF1dGhvcjogVGlib3IxNyA8dGlib3IxN0BseWNvcy5jb20+CkRhdGU6ICAgMjAxNi0xMi0xMVQxMjozMjoyN1oKCiAgICBbU1VSRUZJUkUtMTMxMl0gQ2xhc3NwYXRoIGNvbnRhaW5pbmcgdXJsIHNwZWNpYWwgY2hhcmFjdGVycyB3aXRoIFJlZmxlY3Rpb25zIG5vdCB3b3JraW5nCgpjb21taXQgZjg0MWExNmU0Zjg1ZmZjMjhhMzliYWEzZjAxNDU0YzA4MDkyZjc5ZApBdXRob3I6IFRpYm9yMTcgPHRpYm9yMTdAbHljb3MuY29tPgpEYXRlOiAgIDIwMTYtMTItMTFUMTI6Mzg6NDJaCgogICAgW1NVUkVGSVJFLTEzMTNdIFVuaWZ5IGNvbnNvbGUgcmVwb3J0IHJlc3VsdCBpbiBTdXJlZmlyZVBsdWdpbiBhbmQgVmVyaWZ5TW9qbwoKY29tbWl0IDMwNGY0NTRlZDIwYjQ5MmQ4ZDdmNzM5YTI2OGEwOWQ4YjNjODE3NjMKQXV0aG9yOiBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz4KRGF0ZTogICAyMDE2LTEyLTIyVDIyOjAyOjI3WgoKICAgIEZpeCB0eXBvcyBpbiBKYXZhZG9jcwoKY29tbWl0IGRjZDNiNjRhY2YxMjllNjMwYzZhYWVjOWIyZTFmNDg0NzY4NTViYWQKQXV0aG9yOiBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz4KRGF0ZTogICAyMDE2LTEyLTIyVDIzOjExOjI1WgoKICAgIFtTVVJFRklSRS0xMzE1XSBGaXggc3R5bGlzdGljIGVycm9ycyBpbiBEZWZhdWx0UmVwb3J0ZXJGYWN0b3J5CiAgICAKICAgICogVXBkYXRlIGxhYmVscyBmb3IgcHJvcGVyIEVuZ2xpc2ggc3R5bGUKICAgICogVXNlIHByb3BlciB0aXRsZSBjYXNlCgpjb21taXQgMTM3MDI5NTMxZjIyZTY1Y2I5YmI4NDFhYTYyY2E4NTk0NDFiMGIxNApBdXRob3I6IFRpYm9yMTcgPHRpYm9yMTdAbHljb3MuY29tPgpEYXRlOiAgIDIwMTYtMTItMjZUMTQ6MTg6MDhaCgogICAgW1NVUkVGSVJFLTEzMTZdIE1WTiAzLjEuMCBtaW5pbXVtIGluIGJ1aWxkIHRpbWUKCmNvbW1pdCAwZDkwZDk3NTVjMzMwOGFhYTMyOGE5NDhjZTdlMTQwMTFmNDI2NDUzCkF1dGhvcjogVGlib3IxNyA8dGlib3IxN0BseWNvcy5jb20+CkRhdGU6ICAgMjAxNi0xMi0yNlQxNDoyNzoyN1oKCiAgICBbU1VSRUZJUkUtMTMxN10gUmVmYWN0b3JpbmcKCmNvbW1pdCA3Mzg5NzZjNGQ3NTQ2ZDkxYjYyNDQzNWY4MDZkNjgyMGU0MDI1ZjBiCkF1dGhvcjogVGlib3IxNyA8dGlib3IxN0BseWNvcy5jb20+CkRhdGU6ICAgMjAxNi0xMi0yNlQxNDozMjo1MVoKCiAgICBbU1VSRUZJUkUtMTMxOF0gVXBncmFkZSBKYUNvQ28gVmVyc2lvbiB0byAwLjcuOAoKY29tbWl0IDYxNGYxMmM2MmM4MDNkODVmNGNjNDhhZDg1MGQ5MDU1NTQ3ZDEyZmEKQXV0aG9yOiBUaWJvcjE3IDx0aWJvcjE3QGx5Y29zLmNvbT4KRGF0ZTogICAyMDE2LTEyLTI2VDE0OjM2OjQwWgoKICAgIFtTVVJFRklSRS0xMzE5XSBVcGdyYWRlIFJBVCBQbHVnaW4gVmVyc2lvbiB0byAwLjEyCgpjb21taXQgMzdkOTlhZjFjMTlmMmJkZDU2ZjEwZjczMTU1YzQ5NDdhMDliODc2NApBdXRob3I6IFRpYm9yMTcgPHRpYm9yMTdAbHljb3MuY29tPgpEYXRlOiAgIDIwMTYtMTItMjZUMTQ6Mzk6MThaCgogICAgW1NVUkVGSVJFLTEzMjBdIFVwZ3JhZGUgU25pZmZlciBQbHVnaW4gVmVyc2lvbiB0byAxLjE1Cgpjb21taXQgOTk5NzhhZjQzYmU3MGUyOWYyZjc0YzM5Yjg4OGMyZWY5Yjk4Y2QyMApBdXRob3I6IFRpYm9yMTcgPHRpYm9yMTdAbHljb3MuY29tPgpEYXRlOiAgIDIwMTYtMTItMjZUMTQ6NDM6NThaCgogICAgW1NVUkVGSVJFLTEzMjFdIEludGVncmF0aW9uIHRlc3RzIHNob3VsZCBiZSBjbGVhbmVkIHVwIGJlZm9yZSBydW5uaW5nLiBBZGQgZ29hbD1jbGVhbiBpbiBtYXZlbi1pbnZva2VyLXBsdWdpbi4KCmNvbW1pdCA5OTY0MTE5ZjNhMjM4MjIzZTUwYjBiZDZlODEzZWE4ZGMwM2Y5MTBkCkF1dGhvcjogVGlib3IxNyA8dGlib3IxN0BseWNvcy5jb20+CkRhdGU6ICAgMjAxNi0xMi0yNlQxNToxNjozMFoKCiAgICBbU1VSRUZJUkUtMTMyM10gSmF2YSAxLjYgZm9yIGltcHJvdmVkIFhNTCBwYXJzZXIgbmVlZGVkIGluIFNVUkVGSVJFLTEzMjIKCmNvbW1pdCAzMDNjYzhhY2RhZjY3N2JlZTk3NTFkYTk0ZGUxNmUwNzA4M2ZlYmI3CkF1dGhvcjogVGlib3IxNyA8dGlib3IxN0BseWNvcy5jb20+CkRhdGU6ICAgMjAxNi0xMi0yNlQxNToyNjoxOFoKCiAgICBbU1VSRUZJUkUtMTMyMl0gU3VyZWZpcmUgYW5kIEZhaWxzYWZlIHNob3VsZCBkdW1wIGNyaXRpY2FsIGVycm9ycyBpbiBkdW1wIGZpbGUgYW5kIGNvbnNvbGUKCmNvbW1pdCBiZDc1YmFjMzIwMzAxZGIzZmM0ZDhhZWM1YjQzMWY0ZDEwMTcxZWI5CkF1dGhvcjogTWljaGFlbCBPc2lwb3YgPG1pY2hhZWxvQGFwYWNoZS5vcmc+CkRhdGU6ICAgMjAxNi0xMi0yNlQxNjo1MToyM1oKCiAgICBbU1VSRUZJUkUtMTMxNV0gRml4IHN0eWxpc3RpYyBlcnJvcnMgaW4gRGVmYXVsdFJlcG9ydGVyRmFjdG9yeQogICAgCiAgICBMYWJlbCByZWZpbmVtZW50cyBiYXNlZCBvbiBkaXNjdXNzaW9uIG9uIG1hdmVuLWRldi4KCi0tLS0KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDIwMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gT2N0ICA5IDA0OjA2OjEzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDIwMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBENzRDRjEwODA3Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgIDkgT2N0IDIwMTcgMDQ6MDY6MTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyNDY2NyBpbnZva2VkIGJ5IHVpZCA1MDApOyA5IE9jdCAyMDE3IDA0OjA2OjEzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNDM5MiBpbnZva2VkIGJ5IHVpZCA1MDApOyA5IE9jdCAyMDE3IDA0OjA2OjEzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjQzODEgaW52b2tlZCBieSB1aWQgOTkpOyA5IE9jdCAyMDE3IDA0OjA2OjEyIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAwOSBPY3QgMjAxNyAwNDowNjoxMiArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBCRTYyRUU3REEyOyBNb24sICA5IE9jdCAyMDE3IDA0OjA2OjEyICswMDAwIChVVEMpCkZyb206IGtybWFoYWRldmFuIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JRDogPGdpdC1wci0xNjYtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIHB1bGwgcmVxdWVzdCAjMTY2OiBTdXBwb3J0IGZpbHRlcmluZyBvZiB0ZXN0cyBmcm9tIEJhc2UgQ2xhc3MuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IE1vbiwgIDkgT2N0IDIwMTcgMDQ6MDY6MTIgKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIGtybWFoYWRldmFuIG9wZW5lZCBhIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY2CgogICAgU3VwcG9ydCBmaWx0ZXJpbmcgb2YgdGVzdHMgZnJvbSBCYXNlIENsYXNzIChUZXN0TkcpCgogICAgVXNlciBoYXMgdHdvIHRlc3QgY2xhc3NlcwogICAgMS4gQW4gYWJzdHJhY3QgYmFzZSBjbGFzcyBjYWxsZWQg4oCcQmFzZVRlc3TigJ0gd2hpY2gKICAgIGNvbnRhaW5zIGFuIEBUZXN0IG1ldGhvZCBjYWxsZWQg4oCcdGVzdE1ldGhvZEZyb21CYXNl4oCdCiAgICAyLiBBIGNoaWxkIGNsYXNzIGNhbGxlZCDigJxDaGlsZFRlc3TigJ0gd2hpY2ggZXh0ZW5kcwogICAg4oCcQmFzZVRlc3TigJ0uCiAgICAKICAgIFVzZXIgYXR0ZW1wdHMgYXQgcnVubmluZyB0aGUgVGVzdE5HIHRlc3QgdmlhCiAgICAtRHRlc3Q9Q2hpbGRUZXN0I3Rlc3RNZXRob2RGcm9tQmFzZeKAnS4KICAgIAogICAgU3VyZWZpcmUgcGx1Z2luIGVycm9ycyBvdXQuCiAgICAKICAgIEZpeGVkIHRoaXMgYW5vbWFseSBmb3IgVGVzdE5HIHByb3ZpZGVyLgoKWW91IGNhbiBtZXJnZSB0aGlzIHB1bGwgcmVxdWVzdCBpbnRvIGEgR2l0IHJlcG9zaXRvcnkgYnkgcnVubmluZzoKCiAgICAkIGdpdCBwdWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9rcm1haGFkZXZhbi9tYXZlbi1zdXJlZmlyZSBrcm1haGFkZXZhbi1zdXBwb3J0QmFzZUNsYXNzVGVzdEZpbHRlcmluZ1VzaW5nVGVzdE5HCgpBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gcmV2aWV3IGFuZCBhcHBseSB0aGVzZSBjaGFuZ2VzIGFzIHRoZSBwYXRjaCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY2LnBhdGNoCgpUbyBjbG9zZSB0aGlzIHB1bGwgcmVxdWVzdCwgbWFrZSBhIGNvbW1pdCB0byB5b3VyIG1hc3Rlci90cnVuayBicmFuY2gKd2l0aCAoYXQgbGVhc3QpIHRoZSBmb2xsb3dpbmcgaW4gdGhlIGNvbW1pdCBtZXNzYWdlOgoKICAgIFRoaXMgY2xvc2VzICMxNjYKICAgIAotLS0tCmNvbW1pdCA5ZWQxZTc1NzAwYmQ1NjQ5NjhlYWFlNDQ0MjY5ZjliZDI4MDY0OWEwCkF1dGhvcjogS3Jpc2huYW4gTWFoYWRldmFuIDxrcmlzaG5hbi5tYWhhZGV2YW4xOTc4QGdtYWlsLmNvbT4KRGF0ZTogICAyMDE3LTEwLTA5VDA0OjA1OjExWgoKICAgIFN1cHBvcnQgZmlsdGVyaW5nIG9mIHRlc3RzIGZyb20gQmFzZSBDbGFzcyAoVGVzdE5HKQogICAgCiAgICBVc2VyIGhhcyB0d28gdGVzdCBjbGFzc2VzCiAgICAxLiBBbiBhYnN0cmFjdCBiYXNlIGNsYXNzIGNhbGxlZCDigJxCYXNlVGVzdOKAnSB3aGljaAogICAgY29udGFpbnMgYW4gQFRlc3QgbWV0aG9kIGNhbGxlZCDigJx0ZXN0TWV0aG9kRnJvbUJhc2XigJ0KICAgIDIuIEEgY2hpbGQgY2xhc3MgY2FsbGVkIOKAnENoaWxkVGVzdOKAnSB3aGljaCBleHRlbmRzCiAgICDigJxCYXNlVGVzdOKAnS4KICAgIAogICAgVXNlciBhdHRlbXB0cyBhdCBydW5uaW5nIHRoZSBUZXN0TkcgdGVzdCB2aWEKICAgIC1EdGVzdD1DaGlsZFRlc3QjdGVzdE1ldGhvZEZyb21CYXNl4oCdLgogICAgCiAgICBTdXJlZmlyZSBwbHVnaW4gZXJyb3JzIG91dC4KICAgIAogICAgRml4ZWQgdGhpcyBhbm9tYWx5IGZvciBUZXN0TkcgcHJvdmlkZXIuCgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQyMTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIE9jdCAxMSAxNTo1MjozOCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyMTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQ0ZEMjQxMEZGRAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDExIE9jdCAyMDE3IDE1OjUyOjM4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzc3NDQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgT2N0IDIwMTcgMTU6NTI6MzggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM3NjU2IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIE9jdCAyMDE3IDE1OjUyOjM4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzc2NDQgaW52b2tlZCBieSB1aWQgOTkpOyAxMSBPY3QgMjAxNyAxNTo1MjozOCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMTEgT2N0IDIwMTcgMTU6NTI6MzggKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgMTE5QTlERkE3MTsgV2VkLCAxMSBPY3QgMjAxNyAxNTo1MjozNyArMDAwMCAoVVRDKQpGcm9tOiBEYUdlUmUgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8Z2l0LXByLTE2Ny1tYXZlbi1zdXJlZmlyZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc3VyZWZpcmUgcHVsbCByZXF1ZXN0ICMxNjc6IFNwZWVkdXAgU3RhbmRhcmQgT3V0cHV0IGlmIFRlc3RzCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpEYXRlOiBXZWQsIDExIE9jdCAyMDE3IDE1OjUyOjM3ICswMDAwIChVVEMpCgpHaXRIdWIgdXNlciBEYUdlUmUgb3BlbmVkIGEgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNjcKCiAgICBTcGVlZHVwIFN0YW5kYXJkIE91dHB1dCBpZiBUZXN0cwoKICAgIEN1cnJlbnRseSwgc3VyZWZpcmUgY3JlYXRlcyBhIG5ldyBieXRlIGFycmF5IHdpdGggc2l6ZSBvZiB0aGUgaW5wdXQgKjMgZm9yIHNhdmluZyB0aGUgdW5lc2NhcGVkIGlucHV0LiBUaGlzIG1hZGUgc3VyZWZpcmUgd2F5IHNsb3dlciB0aGFuIHJ1bm5pbmcgYSB0ZXN0IGRpcmVjdGx5IGluIGVjbGlwc2Ugb3Igd2l0aCBncmFkbGUsIGlmIGl0IHVzZWQgc3RhbmRhcmRvdXQgb3IgZXJyb3IgaGVhdmlseS4KICAgIEJ5IHVzaW5nIGEgbGlzdCBmb3Igc2F2aW5nIHRoZSBlbGVtZW50cyBhbmQgY29udmVydGluZyB0aGVtIHRvIGFuIGFycmF5IGFmdGVyd2FyZHMsIHRoaXMgcHJvYmxlbSBpcyBzb2x2ZWQsIGFuZCBzdGRvdXQtaGVhdnkgc3VyZWZpcmUgdGVzdHMgZ2V0IGZhc3Rlci4KCllvdSBjYW4gbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3QgaW50byBhIEdpdCByZXBvc2l0b3J5IGJ5IHJ1bm5pbmc6CgogICAgJCBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vRGFHZVJlL21hdmVuLXN1cmVmaXJlIG1hc3RlcgoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHJldmlldyBhbmQgYXBwbHkgdGhlc2UgY2hhbmdlcyBhcyB0aGUgcGF0Y2ggYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2Ny5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMTY3CiAgICAKLS0tLQoKLS0tLQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MzQ4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBPY3QgMjYgMTE6NDQ6NTAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzQ4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIERBQTAwMTA2QTgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAyNiBPY3QgMjAxNyAxMTo0NDo1MCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ2ODY2IGludm9rZWQgYnkgdWlkIDUwMCk7IDI2IE9jdCAyMDE3IDExOjQ0OjUwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0Njc3NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBPY3QgMjAxNyAxMTo0NDo1MCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ2NzY0IGludm9rZWQgYnkgdWlkIDk5KTsgMjYgT2N0IDIwMTcgMTE6NDQ6NTAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDI2IE9jdCAyMDE3IDExOjQ0OjUwICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIEM2MjREREZCMEU7IFRodSwgMjYgT2N0IDIwMTcgMTE6NDQ6NDcgKzAwMDAgKFVUQykKRnJvbTogZW9saXZlbGxpIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JRDogPGdpdC1wci0xNjgtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIHB1bGwgcmVxdWVzdCAjMTY4OiBTVVJFRklSRS0xNDI0IGphdmF4LnRyYW5zYWN0aW9uLlRyYW5zYWN0aW8uLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IFRodSwgMjYgT2N0IDIwMTcgMTE6NDQ6NDcgKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIGVvbGl2ZWxsaSBvcGVuZWQgYSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zdXJlZmlyZS9wdWxsLzE2OAoKICAgIFNVUkVGSVJFLTE0MjQgamF2YXgudHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25NYW5hZ2VyIG5vdCB2aXNpYmxlIHdpdGggSmF2YTkKCiAgICBDb250ZW50cyBvZiB0aGUgcGF0Y2g6CiAgICAtIGRyb3AgLS1hZGQtbW9kdWxlcz1qYXZhLmVlLnNlCiAgICAtIGFkZCBhIHRlc3RjYXNlIG9uIGphdmF4LnRyYW5zYWN0aW9uLlRyYW5zYWN0aW9uTWFuYWdlcgoKCllvdSBjYW4gbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3QgaW50byBhIEdpdCByZXBvc2l0b3J5IGJ5IHJ1bm5pbmc6CgogICAgJCBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vZW9saXZlbGxpL21hdmVuLXN1cmVmaXJlIFNVUkVGSVJFLTE0MjQtbm9hZGRtb2R1bGVzCgpBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gcmV2aWV3IGFuZCBhcHBseSB0aGVzZSBjaGFuZ2VzIGFzIHRoZSBwYXRjaCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY4LnBhdGNoCgpUbyBjbG9zZSB0aGlzIHB1bGwgcmVxdWVzdCwgbWFrZSBhIGNvbW1pdCB0byB5b3VyIG1hc3Rlci90cnVuayBicmFuY2gKd2l0aCAoYXQgbGVhc3QpIHRoZSBmb2xsb3dpbmcgaW4gdGhlIGNvbW1pdCBtZXNzYWdlOgoKICAgIFRoaXMgY2xvc2VzICMxNjgKICAgIAotLS0tCmNvbW1pdCA0MmE4YjE2MWViZGQzODgzN2JhNjZiZTM1ODg1MTRkZjJiOGMyYjA1CkF1dGhvcjogRW5yaWNvIE9saXZlbGxpIDxlb2xpdmVsbGlAYXBhY2hlLm9yZz4KRGF0ZTogICAyMDE3LTEwLTI2VDExOjQ0OjI5WgoKICAgIFNVUkVGSVJFLTE0MjQgamF2YXgudHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25NYW5hZ2VyIG5vdCB2aXNpYmxlIHdpdGggSmF2YTkKCi0tLS0KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQ0OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgTm92ICA3IDE1OjM5OjA1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQ0OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDN0M0RjE3N0FECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgIDcgTm92IDIwMTcgMTU6Mzk6MDUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1NzQ2MyBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE5vdiAyMDE3IDE1OjM5OjA1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NzM5MSBpbnZva2VkIGJ5IHVpZCA1MDApOyA3IE5vdiAyMDE3IDE1OjM5OjA1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTcwMjAgaW52b2tlZCBieSB1aWQgOTkpOyA3IE5vdiAyMDE3IDE1OjM5OjA1IC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAwNyBOb3YgMjAxNyAxNTozOTowNSArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBEMzY5OERGQUIwOyBUdWUsICA3IE5vdiAyMDE3IDE1OjM5OjA0ICswMDAwIChVVEMpCkZyb206IGRpcGFrLXBhd2FyIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JRDogPGdpdC1wci0xNjktbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIHB1bGwgcmVxdWVzdCAjMTY5OiBbU1VSRUZJUkUtMTQwNV0gQWxsb3dzIHVzZXIgdG8gZXh0ZW5kIFJ1bk8uLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IFR1ZSwgIDcgTm92IDIwMTcgMTU6Mzk6MDQgKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIGRpcGFrLXBhd2FyIG9wZW5lZCBhIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTY5CgogICAgW1NVUkVGSVJFLTE0MDVdIEFsbG93cyB1c2VyIHRvIGV4dGVuZCBSdW5PcmRlciAmIFJ1bk9yZGVyQ2FsY3VsYXRvcgoKICAgICogQWxsIHN1cHBvcnRlZCBydW5PcmRlciBvcHRpb25zIGFyZSBoYXJkQ29kZWQgaW4gUnVuT3JkZXIgLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL2Jsb2IvbWFzdGVyL3N1cmVmaXJlLWFwaS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vc3VyZWZpcmUvdXRpbC9SdW5PcmRlci5qYXZhI0wxMDkKICAgICogV2l0aCB0aGlzIGltcGxlbWVudGF0aW9uIHVzZXIgY2FuIGltcGxlbWVudCBoaXMgb3duIHJ1bk9yZGVyICYgaXQncyByZXNwZWN0aXZlIFJ1bk9yZGVyQ2FsY3VsYXRvci4KICAgIAogICAgRml4ZXM6IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvU1VSRUZJUkUtMTQwNQogICAgCiAgICAqKkltcGxlbWVudGF0aW9uIERldGFpbHMqKgogICAgCiAgICAqKkhvdyB0byBjcmVhdGUgbmV3IFJ1bk9yZGVyPyoqCiAgICBUbyBjcmVhdGUgbmV3IGBydW5PcmRlcmAgdXNlciBoYXMgdG8gaW1wbGVtZW50IGBSdW5PcmRlcmAgaW50ZXJmYWNlLgogICAgIAogICAgYGBgamF2YQogICAgcHVibGljIGNsYXNzIFlvdXJSdW5PcmRlciBpbXBsZW1lbnRzIFJ1bk9yZGVyCiAgICB7CiAgICAKICAgICAgICBAT3ZlcnJpZGUKICAgICAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICJydW5PcmRlck5hbWUiOwogICAgICAgIH0KICAgIAogICAgICAgIEBPdmVycmlkZQogICAgICAgIHB1YmxpYyBMaXN0PENsYXNzPD8+PiBvcmRlclRlc3RDbGFzc2VzKCBDb2xsZWN0aW9uPENsYXNzPD8+PiBzY2FubmVkQ2xhc3NlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUnVuT3JkZXJQYXJhbWV0ZXJzIHJ1bk9yZGVyUGFyYW1ldGVycywgaW50IHRocmVhZENvdW50ICkKICAgICAgICB7CiAgICAgICAgICAgLy8gQWRkIGxvZ2ljIHRvIG9yZGVyIHRlc3QgY2xhc3NlcyBmb3IgdGhpcyBydW5PcmRlci4KICAgICAgICAgICAgcmV0dXJuIHRlc3RDbGFzc2VzOwogICAgICAgIH0KICAgIH0KICAgIGBgYAogICAgCiAgICAqKkhvdyB0byBkZWZpbmUgY3VzdG9tIFJ1bk9yZGVyQ2FsY3VsYXRvcj8qKgogICAgSW1wbGVtZW50IGBSdW5PcmRlckNhbGN1bGF0b3JgIGludGVyZmFjZSB3aXRoIGxvZ2ljIHlvdSB3YW50IHRvIG9yZGVyIHRlc3QgY2xhc3Nlcy4KICAgIGUuZy4gCiAgICBgYGBqYXZhCiAgICBwdWJsaWMgY2xhc3MgWW91clJ1bk9yZGVyQ2FsY3VsYXRvciBpbXBsZW1lbnRzIFJ1bk9yZGVyQ2FsY3VsYXRvciB7CiAgICAKICAgICAgICBwcml2YXRlIGZpbmFsIFJ1bk9yZGVyUGFyYW1ldGVycyBydW5PcmRlclBhcmFtZXRlcnM7CiAgICAgICAgcHJpdmF0ZSBmaW5hbCBpbnQgdGhyZWFkQ291bnQ7CiAgICAKICAgICAgICBwcml2YXRlIGZpbmFsIFJ1bk9yZGVyW10gcnVuT3JkZXI7CiAgICAKICAgICAgICBwdWJsaWMgWW91clJ1bk9yZGVyQ2FsY3VsYXRvcihSdW5PcmRlclBhcmFtZXRlcnMgcnVuT3JkZXJQYXJhbWV0ZXJzLCBpbnQgdGhyZWFkQ291bnQpIHsKICAgICAgICAgICAgdGhpcy5ydW5PcmRlciA9IHJ1bk9yZGVyUGFyYW1ldGVycy5nZXRSdW5PcmRlcnMoKTsKICAgICAgICAgICAgdGhpcy5ydW5PcmRlclBhcmFtZXRlcnMgPSBydW5PcmRlclBhcmFtZXRlcnM7CiAgICAgICAgICAgIHRoaXMudGhyZWFkQ291bnQgPSB0aHJlYWRDb3VudDsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gQWRkIHlvdXIgbG9naWMgdG8gb3JkZXIgdGVzdCBjbGFzc2VzLgogICAgICAgIEBPdmVycmlkZSAKICAgICAgICBwdWJsaWMgVGVzdHNUb1J1biBvcmRlclRlc3RDbGFzc2VzKFRlc3RzVG9SdW4gc2Nhbm5lZENsYXNzZXMpIHsKICAgICAgICAgIAogICAgICAgICAgICBMaXN0PENsYXNzPD8+PiB0ZXN0Q2xhc3NlcyA9IG5ldyBBcnJheUxpc3Q8Q2xhc3M8Pz4+KCA1MTIgKTsKICAgIAogICAgICAgICAgICBmb3IgKCBDbGFzczw/PiBzY2FubmVkQ2xhc3MgOiBzY2FubmVkQ2xhc3NlcyApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHRlc3RDbGFzc2VzLmFkZCggc2Nhbm5lZENsYXNzICk7CiAgICAgICAgICAgIH0KICAgIAogICAgICAgICAgIGZpbmFsIENvbGxlY3Rpb248Q2xhc3M8Pz4+IGNsYXNzZXMgPSBydW5PcmRlclswXS5vcmRlclRlc3RDbGFzc2VzKHRlc3RDbGFzc2VzLCBydW5PcmRlclBhcmFtZXRlcnMsIHRocmVhZENvdW50KTsKICAgIAogICAgICAgICAgICByZXR1cm4gbmV3IFRlc3RzVG9SdW4obmV3IExpbmtlZEhhc2hTZXQ8PihjbGFzc2VzKSk7CiAgICAgICAgfQogICAgfQogICAgYGBgCiAgICAKICAgICoqSG93IHRvIHRlbGwgc3VyZWZpcmUgdG8gdXNlIGN1c3RvbSBgUnVuT3JkZXJgICYgYFJ1bk9yZGVyQ2FsY3VsYXRvcmA/KioKICAgIAogICAgV2UgaGF2ZSAgYFJ1bk9yZGVyUHJvdmlkZXJgIHNwaSB0byBvdmVyd3JpdGUgIGRlZmF1bHQgcnVuT3JkZXJzICYgYFJ1bk9yZGVyQ2FsY3VsYXRvcmAgcHJvdmlkZWQgYnkgc3VyZWZpcmUuCiAgICAKICAgIFlvdSBuZWVkIHRvIHJlZ2lzdHJhciBpbXBsIG9mIFJ1bk9yZGVyUHJvdmlkZXIgaW4gdGhlIGZpbGUgbmFtZWQgCiAgICBgTUVUQS1JTkYvc2VydmljZXMvb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW4uc3VyZWZpcmUucnVub3JkZXIuc3BpLlJ1bk9yZGVyUHJvdmlkZXJgIGluIG1haW4gcmVzb3VyY2VzLgogICAgCiAgICBGaWxlIHNob3VsZCBjb250YWluIGZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIFJ1bk9yZGVyUHJvdmlkZXIgaW1wbC4KICAgIGUuZy4KICAgIGBjb20uc3VyZWZpcmUuWW91clJ1bk9yZGVyUHJvdmlkZXJJbXBsYAogICAgCiAgICBJbXBsZW1lbnRhdGlvbiBvZiBZb3VyUnVuT3JkZXJQcm92aWRlckltcGwgaXMgYXMgZm9sbG93czoKICAgIGBgYGphdmEKICAgIHB1YmxpYyBjbGFzcyBZb3VyUnVuT3JkZXJQcm92aWRlckltcGwgaW1wbGVtZW50cyBSdW5PcmRlclByb3ZpZGVyCiAgICB7CiAgICAKICAgICAgICBAT3ZlcnJpZGUKICAgICAgICBwdWJsaWMgQ29sbGVjdGlvbjxSdW5PcmRlcj4gZ2V0UnVuT3JkZXJzKCkKICAgICAgICB7CiAgICAgICAvLyBoZXJlIHlvdSBjYW4gZ2l2ZSBhbGwgZGVmYXVsdCBydW5vcmRlcnMgcHJvdmlkZWQgYnkgc3VyZWZpcmUgYWxvbmcgd2l0aCBjdXN0b20gcnVub3JkZXIgY3JlYXRlZCBhYm92ZS4KICAgICAgICAgICAgcmV0dXJuIEFycmF5cy5hc0xpc3QoIEFMUEhBQkVUSUNBTCwgRklMRVNZU1RFTSwgSE9VUkxZLAogICAgICAgICAgICAgICAgUkFORE9NLCBSRVZFUlNFX0FMUEhBQkVUSUNBTCwgQkFMQU5DRUQsIEZBSUxFREZJUlNULCBuZXcgWW91clJ1bk9yZGVyKCkgKTsKICAgICAgICB9CiAgICAKICAgICAgICBAT3ZlcnJpZGUKICAgICAgICBwdWJsaWMgSW50ZWdlciBwcmlvcml0eSgpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICB9CiAgICAKICAgICAgICBAT3ZlcnJpZGUKICAgICAgICBwdWJsaWMgUnVuT3JkZXJDYWxjdWxhdG9yIGNyZWF0ZVJ1bk9yZGVyQ2FsY3VsYXRvciggUnVuT3JkZXJQYXJhbWV0ZXJzIHJ1bk9yZGVyUGFyYW1ldGVycywgaW50IHRocmVhZENvdW50ICkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiBuZXcgWW91clJ1bk9yZGVyQ2FsY3VsYXRvciggcnVuT3JkZXJQYXJhbWV0ZXJzLCB0aHJlYWRDb3VudCApOwogICAgICAgIH0KICAgIAogICAgICAgIEBPdmVycmlkZQogICAgICAgIHB1YmxpYyBDb2xsZWN0aW9uPFJ1bk9yZGVyPiBkZWZhdWx0UnVuT3JkZXIoKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuIENvbGxlY3Rpb25zLnNpbmdsZXRvbkxpc3QoIEZJTEVTWVNURU0gKTsKICAgICAgICB9CiAgICB9CiAgICBgYGAKCllvdSBjYW4gbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3QgaW50byBhIEdpdCByZXBvc2l0b3J5IGJ5IHJ1bm5pbmc6CgogICAgJCBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vZGlwYWstcGF3YXIvbWF2ZW4tc3VyZWZpcmUgc3VyZWZpcmVfaW1wcm92ZW1lbnQKCkFsdGVybmF0aXZlbHkgeW91IGNhbiByZXZpZXcgYW5kIGFwcGx5IHRoZXNlIGNoYW5nZXMgYXMgdGhlIHBhdGNoIGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNjkucGF0Y2gKClRvIGNsb3NlIHRoaXMgcHVsbCByZXF1ZXN0LCBtYWtlIGEgY29tbWl0IHRvIHlvdXIgbWFzdGVyL3RydW5rIGJyYW5jaAp3aXRoIChhdCBsZWFzdCkgdGhlIGZvbGxvd2luZyBpbiB0aGUgY29tbWl0IG1lc3NhZ2U6CgogICAgVGhpcyBjbG9zZXMgIzE2OQogICAgCi0tLS0KY29tbWl0IDY3MzViMWVmNzUwYzNiY2Q2MTNkNTk5OGEzMTNlNTAwN2RjMzczNDkKQXV0aG9yOiBEaXBhayBQYXdhciA8ZHBhd2FyQHJlZGhhdC5jb20+CkRhdGU6ICAgMjAxNy0wOC0yM1QxNTozMzowOFoKCiAgICBbU1VSRUZJUkUtMTQwNV0gQWxsb3dzIHVzZXIgdG8gZXh0ZW5kIFJ1bk9yZGVyICYgUnVuT3JkZXJDYWxjdWxhdG9yCgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0NTItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE5vdiAgOSAwNDowODo0OSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0NTItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRTAwOTYxN0QzMgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsICA5IE5vdiAyMDE3IDA0OjA4OjQ4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODIwNzEgaW52b2tlZCBieSB1aWQgNTAwKTsgOSBOb3YgMjAxNyAwNDowODo0OCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODE5ODMgaW52b2tlZCBieSB1aWQgNTAwKTsgOSBOb3YgMjAxNyAwNDowODo0OCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgxOTcwIGludm9rZWQgYnkgdWlkIDk5KTsgOSBOb3YgMjAxNyAwNDowODo0NyAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMDkgTm92IDIwMTcgMDQ6MDg6NDcgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgRDNFQUZERkMyNTsgVGh1LCAgOSBOb3YgMjAxNyAwNDowODo0NyArMDAwMCAoVVRDKQpGcm9tOiBjbGF5Y2VwaGFzIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JRDogPGdpdC1wci0xNzAtbWF2ZW4tc3VyZWZpcmVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXN1cmVmaXJlIHB1bGwgcmVxdWVzdCAjMTcwOiBDbGFyaWZpZWQgc3BlY2lmeWluZyBtdWx0aXBsZSBjYXRlZ29yaWVzCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpEYXRlOiBUaHUsICA5IE5vdiAyMDE3IDA0OjA4OjQ3ICswMDAwIChVVEMpCgpHaXRIdWIgdXNlciBjbGF5Y2VwaGFzIG9wZW5lZCBhIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXN1cmVmaXJlL3B1bGwvMTcwCgogICAgQ2xhcmlmaWVkIHNwZWNpZnlpbmcgbXVsdGlwbGUgY2F0ZWdvcmllcwoKICAgIAoKWW91IGNhbiBtZXJnZSB0aGlzIHB1bGwgcmVxdWVzdCBpbnRvIGEgR2l0IHJlcG9zaXRvcnkgYnkgcnVubmluZzoKCiAgICAkIGdpdCBwdWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9jbGF5Y2VwaGFzL21hdmVuLXN1cmVmaXJlIGp1bml0LW11bHRpLWNhdGVnb3JpZXMKCkFsdGVybmF0aXZlbHkgeW91IGNhbiByZXZpZXcgYW5kIGFwcGx5IHRoZXNlIGNoYW5nZXMgYXMgdGhlIHBhdGNoIGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNzAucGF0Y2gKClRvIGNsb3NlIHRoaXMgcHVsbCByZXF1ZXN0LCBtYWtlIGEgY29tbWl0IHRvIHlvdXIgbWFzdGVyL3RydW5rIGJyYW5jaAp3aXRoIChhdCBsZWFzdCkgdGhlIGZvbGxvd2luZyBpbiB0aGUgY29tbWl0IG1lc3NhZ2U6CgogICAgVGhpcyBjbG9zZXMgIzE3MAogICAgCi0tLS0KY29tbWl0IDAyNDNhNzgxYTM3ZmNmNDQyMjFkODAxZDE4NjBlZTdjMDk4MzRkOGIKQXV0aG9yOiBDbGF5IEFuZGVyc29uIDxjbGF5Y2VwaGFzQHVzZXJzLm5vcmVwbHkuZ2l0aHViLmNvbT4KRGF0ZTogICAyMDE3LTExLTA5VDA0OjA3OjQ3WgoKICAgIENsYXJpZmllZCBzcGVjaWZ5aW5nIG11bHRpcGxlIGNhdGVnb3JpZXMKCi0tLS0KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDYyMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gTm92IDI3IDEzOjU3OjU0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDYyMC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4NDlDMTE3NDI0Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMjcgTm92IDIwMTcgMTM6NTc6NTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3MzE2MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBOb3YgMjAxNyAxMzo1Nzo1NCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzMwOTAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjcgTm92IDIwMTcgMTM6NTc6NTQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MzA3OSBpbnZva2VkIGJ5IHVpZCA5OSk7IDI3IE5vdiAyMDE3IDEzOjU3OjUzIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAyNyBOb3YgMjAxNyAxMzo1Nzo1MyArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBDMDg1MURGRENDOyBNb24sIDI3IE5vdiAyMDE3IDEzOjU3OjUzICswMDAwIChVVEMpCkZyb206IGFjb2dvbHVlZ25lcyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDxnaXQtcHItMTcxLW1hdmVuLXN1cmVmaXJlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zdXJlZmlyZSBwdWxsIHJlcXVlc3QgIzE3MTogW1NVUkVGSVJFLTE0NDVdIEV4cGxpY2l0bHkgZGVmaW5lIFN1cmVmaXJlLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpEYXRlOiBNb24sIDI3IE5vdiAyMDE3IDEzOjU3OjUzICswMDAwIChVVEMpCgpHaXRIdWIgdXNlciBhY29nb2x1ZWduZXMgb3BlbmVkIGEgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNzEKCiAgICBbU1VSRUZJUkUtMTQ0NV0gRXhwbGljaXRseSBkZWZpbmUgU3VyZWZpcmVQcm9wZXJ0aWVzI3B1dEFsbAoKICAgIFRoaXMgZW5zdXJlcyB0aGUgb3ZlcnJpZGVuIHB1dCBtZXRob2QgaXMgY2FsbGVkIGFuZCB0aGUgaXRlbXMgcHJvcGVydHkgaXMgdXBkYXRlZC4KCllvdSBjYW4gbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3QgaW50byBhIEdpdCByZXBvc2l0b3J5IGJ5IHJ1bm5pbmc6CgogICAgJCBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vYWNvZ29sdWVnbmVzL21hdmVuLXN1cmVmaXJlIFNVUkVGSVJFLTE0NDUKCkFsdGVybmF0aXZlbHkgeW91IGNhbiByZXZpZXcgYW5kIGFwcGx5IHRoZXNlIGNoYW5nZXMgYXMgdGhlIHBhdGNoIGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc3VyZWZpcmUvcHVsbC8xNzEucGF0Y2gKClRvIGNsb3NlIHRoaXMgcHVsbCByZXF1ZXN0LCBtYWtlIGEgY29tbWl0IHRvIHlvdXIgbWFzdGVyL3RydW5rIGJyYW5jaAp3aXRoIChhdCBsZWFzdCkgdGhlIGZvbGxvd2luZyBpbiB0aGUgY29tbWl0IG1lc3NhZ2U6CgogICAgVGhpcyBjbG9zZXMgIzE3MQogICAgCi0tLS0KY29tbWl0IDE2MzA3N2YzYjk4NDRiOTRmOTMxZWU4Y2ZlNTczYmU5N2I4NDM3YmMKQXV0aG9yOiBBcm5hdWQgQ29nb2x1w6hnbmVzIDxhY29nb2x1ZWduZXNAZ21haWwuY29tPgpEYXRlOiAgIDIwMTctMTEtMjdUMTM6NTQ6MzBaCgogICAgW1NVUkVGSVJFLTE0NDVdIEV4cGxpY2l0bHkgZGVmaW5lIFN1cmVmaXJlUHJvcGVydGllcyNwdXRBbGwKICAgIAogICAgVGhpcyBlbnN1cmVzIHRoZSBvdmVycmlkZW4gcHV0IG1ldGhvZCBpcyBjYWxsZWQgYW5kIHRoZSBpdGVtcwogICAgcHJvcGVydHkgaXMgdXBkYXRlZC4KCi0tLS0KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDU2NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgTm92IDIyIDA5OjQ0OjMzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDU2NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA4MDRFQzEwOTQxCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMjIgTm92IDIwMTcgMDk6NDQ6MzMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3OTE2NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMiBOb3YgMjAxNyAwOTo0NDozMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzkwNzMgaW52b2tlZCBieSB1aWQgNTAwKTsgMjIgTm92IDIwMTcgMDk6NDQ6MzMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3OTA2MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDIyIE5vdiAyMDE3IDA5OjQ0OjMyIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAyMiBOb3YgMjAxNyAwOTo0NDozMiArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBGMzhGRUUwNEFBOyBXZWQsIDIyIE5vdiAyMDE3IDA5OjQ0OjMxICswMDAwIChVVEMpCkZyb206IGx1YW5rZXZpbmZlcnJlaXJhIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JRDogPGdpdC1wci0xOC1tYXZlbi1hcmNoZXR5cGVAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLWFyY2hldHlwZSBwdWxsIHJlcXVlc3QgIzE4OiBVcGRhdGUgSlVuaXQgZGVwZW5kZW5jeSB2ZXJzaW9uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KRGF0ZTogV2VkLCAyMiBOb3YgMjAxNyAwOTo0NDozMSArMDAwMCAoVVRDKQoKR2l0SHViIHVzZXIgbHVhbmtldmluZmVycmVpcmEgb3BlbmVkIGEgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tYXJjaGV0eXBlL3B1bGwvMTgKCiAgICBVcGRhdGUgSlVuaXQgZGVwZW5kZW5jeSB2ZXJzaW9uLgoKICAgIAoKWW91IGNhbiBtZXJnZSB0aGlzIHB1bGwgcmVxdWVzdCBpbnRvIGEgR2l0IHJlcG9zaXRvcnkgYnkgcnVubmluZzoKCiAgICAkIGdpdCBwdWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9sdWFua2V2aW5mZXJyZWlyYS9tYXZlbi1hcmNoZXR5cGUgcGF0Y2gtMQoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHJldmlldyBhbmQgYXBwbHkgdGhlc2UgY2hhbmdlcyBhcyB0aGUgcGF0Y2ggYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1hcmNoZXR5cGUvcHVsbC8xOC5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMTgKICAgIAotLS0tCmNvbW1pdCAzODM1ZTM5NWM3Y2E4NTc1ZjRhNjcxZjllNWM5ZWM2NjExNTZmYjU3CkF1dGhvcjogTHVhbiBLZXZpbiBGZXJyZWlyYSA8bHVhbmtldmluZmVycmVpcmFAZ21haWwuY29tPgpEYXRlOiAgIDIwMTctMTEtMjJUMDk6NDQ6MTZaCgogICAgVXBkYXRlIEpVbml0IGRlcGVuZGVuY3kgdmVyc2lvbi4KCi0tLS0KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDY3Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgTm92IDMwIDEwOjI3OjQzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDY3Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3NDQ3QjEwQTIwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMzAgTm92IDIwMTcgMTA6Mjc6NDMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1MTI0MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMCBOb3YgMjAxNyAxMDoyNzo0MyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTExMzIgaW52b2tlZCBieSB1aWQgNTAwKTsgMzAgTm92IDIwMTcgMTA6Mjc6NDIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MTEyMSBpbnZva2VkIGJ5IHVpZCA5OSk7IDMwIE5vdiAyMDE3IDEwOjI3OjQyIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAzMCBOb3YgMjAxNyAxMDoyNzo0MiArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCA4MERFMUUzNkQ0OyBUaHUsIDMwIE5vdiAyMDE3IDEwOjI3OjQyICswMDAwIChVVEMpCkZyb206IHN0ZWZhbnNlaWZlcnQgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8Z2l0LXByLTE5LW1hdmVuLWFyY2hldHlwZUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tYXJjaGV0eXBlIHB1bGwgcmVxdWVzdCAjMTk6IEFSQ0hFVFlQRS01MzYgVXBkYXRlIEdyb292eSBEZXBlbmRlbmN5IGFuZC4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KRGF0ZTogVGh1LCAzMCBOb3YgMjAxNyAxMDoyNzo0MiArMDAwMCAoVVRDKQoKR2l0SHViIHVzZXIgc3RlZmFuc2VpZmVydCBvcGVuZWQgYSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1hcmNoZXR5cGUvcHVsbC8xOQoKICAgIEFSQ0hFVFlQRS01MzYgVXBkYXRlIEdyb292eSBEZXBlbmRlbmN5IGFuZCBJbmNsdWRlIEl2eSBEZXBlbmRlbmN5CgogICAgc2VlIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvQVJDSEVUWVBFLTUzNgoKWW91IGNhbiBtZXJnZSB0aGlzIHB1bGwgcmVxdWVzdCBpbnRvIGEgR2l0IHJlcG9zaXRvcnkgYnkgcnVubmluZzoKCiAgICAkIGdpdCBwdWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9zdGVmYW5zZWlmZXJ0L21hdmVuLWFyY2hldHlwZSBmZWF0dXJlL0FSQ0hFVFlQRS01MzYtZ3Jvb3Z5LWRlcHMKCkFsdGVybmF0aXZlbHkgeW91IGNhbiByZXZpZXcgYW5kIGFwcGx5IHRoZXNlIGNoYW5nZXMgYXMgdGhlIHBhdGNoIGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tYXJjaGV0eXBlL3B1bGwvMTkucGF0Y2gKClRvIGNsb3NlIHRoaXMgcHVsbCByZXF1ZXN0LCBtYWtlIGEgY29tbWl0IHRvIHlvdXIgbWFzdGVyL3RydW5rIGJyYW5jaAp3aXRoIChhdCBsZWFzdCkgdGhlIGZvbGxvd2luZyBpbiB0aGUgY29tbWl0IG1lc3NhZ2U6CgogICAgVGhpcyBjbG9zZXMgIzE5CiAgICAKLS0tLQpjb21taXQgNjcwM2RlYzRiNDdmYTM3MGQ0OWI2OWY3YjA3OGI3OGM0NmUzNWU1NgpBdXRob3I6IEhlcnZlIEJvdXRlbXkgPGhib3V0ZW15QGFwYWNoZS5vcmc+CkRhdGU6ICAgMjAxMS0wOC0yMVQxMjo0MzowMVoKCiAgICBbQVJDSEVUWVBFLTI4OV0gYWRkZWQgZW1wdHkgZGlyZWN0b3J5IHN1cHBvcnQgZm9yIElUIGNvbXBhcmlzb24gYWdhaW5zdCByZWZlcmVuY2UKICAgIAogICAgZ2l0LXN2bi1pZDogaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2YvbWF2ZW4vYXJjaGV0eXBlL3RydW5rQDExNTk5NzUgMTNmNzk1MzUtNDdiYi0wMzEwLTk5NTYtZmZhNDUwZWRlZjY4Cgpjb21taXQgNmZhMGY3ZDExODEwMjc3MmY3OWVjYzE0MzNhNDNmY2MxYzlmNmEyYQpBdXRob3I6IEhlcnZlIEJvdXRlbXkgPGhib3V0ZW15QGFwYWNoZS5vcmc+CkRhdGU6ICAgMjAxMS0wOC0yMVQxNDo0MToxM1oKCiAgICBpbXByb3ZlZCBkb2N1bWVudGF0aW9uCiAgICAKICAgIGdpdC1zdm4taWQ6IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2FyY2hldHlwZS90cnVua0AxMTU5OTkwIDEzZjc5NTM1LTQ3YmItMDMxMC05OTU2LWZmYTQ1MGVkZWY2OAoKY29tbWl0IDllNzFlYmViZjE1MTU2NWQ0NTRhMjQ5YzkwZmQ0YWZhNWMwNGY4NmQKQXV0aG9yOiBIZXJ2ZSBCb3V0ZW15IDxoYm91dGVteUBhcGFjaGUub3JnPgpEYXRlOiAgIDIwMTEtMDgtMjFUMTQ6NTE6NDhaCgogICAgYWRkZWQgZ29hbHMgYm91bmQgdG8gbWF2ZW4tYXJjaGV0eXBlIHBhY2thZ2luZyBsaWZlY3lsY2xlIHRvIHRoZSBpbmRleCBvZiBnb2FscyBkb2N1bWVudGF0aW9uCiAgICAKICAgIGdpdC1zdm4taWQ6IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2FyY2hldHlwZS90cnVua0AxMTU5OTkyIDEzZjc5NTM1LTQ3YmItMDMxMC05OTU2LWZmYTQ1MGVkZWY2OAoKY29tbWl0IDNkMDg5M2FmZWE3NDU2ZTFjOTY2YmU3MzEyYjY5ZDRmNDA3ODkzOGUKQXV0aG9yOiBIZXJ2ZSBCb3V0ZW15IDxoYm91dGVteUBhcGFjaGUub3JnPgpEYXRlOiAgIDIwMTEtMDgtMjFUMTU6NDc6MzdaCgogICAgaW1wcm92ZWQgZG9jdW1lbnRhdGlvbgogICAgCiAgICBnaXQtc3ZuLWlkOiBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9hcmNoZXR5cGUvdHJ1bmtAMTE2MDAwNCAxM2Y3OTUzNS00N2JiLTAzMTAtOTk1Ni1mZmE0NTBlZGVmNjgKCmNvbW1pdCA3MzJjMmQzNjI2M2RhYWQ3OTFlYmU0OWM4YjRhMWE2NGUwZjU0N2M2CkF1dGhvcjogSGVydmUgQm91dGVteSA8aGJvdXRlbXlAYXBhY2hlLm9yZz4KRGF0ZTogICAyMDExLTA4LTIxVDE1OjU3OjM3WgoKICAgIHVwZGF0ZWQgd2Fnb24gdG8gMS4wCiAgICAKICAgIGdpdC1zdm4taWQ6IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2FyY2hldHlwZS90cnVua0AxMTYwMDA1IDEzZjc5NTM1LTQ3YmItMDMxMC05OTU2LWZmYTQ1MGVkZWY2OAoKY29tbWl0IGFkNzVjZjNlZTQ5YmFkOWYwYjM4ZGQxOTRlY2I4YzQxMTNlYzRjMGQKQXV0aG9yOiBIZXJ2ZSBCb3V0ZW15IDxoYm91dGVteUBhcGFjaGUub3JnPgpEYXRlOiAgIDIwMTEtMDgtMjFUMjA6MDU6MzhaCgogICAgYWRkZWQgbG9nIGZvciBwb3N0LWFyY2hldHlwZS1nZW5lcmF0aW9uIGdvYWxzIGludm9jYXRpb24KICAgIAogICAgZ2l0LXN2bi1pZDogaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2YvbWF2ZW4vYXJjaGV0eXBlL3RydW5rQDExNjAwNDcgMTNmNzk1MzUtNDdiYi0wMzEwLTk5NTYtZmZhNDUwZWRlZjY4Cgpjb21taXQgMzE2Y2VmMGE0MWM4ZTY3N2NmZGM1YmY2MjQyYjRkZGQwYzc0MjdlZApBdXRob3I6IEhlcnZlIEJvdXRlbXkgPGhib3V0ZW15QGFwYWNoZS5vcmc+CkRhdGU6ICAgMjAxMS0wOC0yMVQyMDoxODoyMFoKCiAgICByZXRocm93IHJvb3QgY2F1c2Ugb24gaW52b2NhdGlvbiBlcnJvcgogICAgCiAgICBnaXQtc3ZuLWlkOiBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9hcmNoZXR5cGUvdHJ1bmtAMTE2MDA1MiAxM2Y3OTUzNS00N2JiLTAzMTAtOTk1Ni1mZmE0NTBlZGVmNjgKCmNvbW1pdCA0NDUyYWNkZmY1MzExYjU4ODA0NWIwYTFlZDUzN2I4NjBlMmZmNGZlCkF1dGhvcjogSGVydmUgQm91dGVteSA8aGJvdXRlbXlAYXBhY2hlLm9yZz4KRGF0ZTogICAyMDExLTA4LTIxVDIwOjQ4OjU1WgoKICAgIFtBUkNIRVRZUEUtMzM0XSBSdW4gYSBidWlsZCBvbiBnZW5lcmF0ZWQgcHJvamVjdCBkdXJpbmcgaW50ZWdyYXRpb24gdGVzdCBhcyBzcGVjaWZpZWQgaW4gZ29hbC50eHQKICAgIAogICAgZ2l0LXN2bi1pZDogaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2YvbWF2ZW4vYXJjaGV0eXBlL3RydW5rQDExNjAwNTggMTNmNzk1MzUtNDdiYi0wMzEwLTk5NTYtZmZhNDUwZWRlZjY4Cgpjb21taXQgNDY3MWM2MDI3NjM4ZmM3NWM5N2YzOTQ2MmUxMWQ2Yjg3MDY1MzllNQpBdXRob3I6IEhlcnZlIEJvdXRlbXkgPGhib3V0ZW15QGFwYWNoZS5vcmc+CkRhdGU6ICAgMjAxMS0wOC0yMlQyMDo0OTowNloKCiAgICBhZGRlZCBhIGxpbmsgdG8gbWF2ZW4tYXJjaGV0eXBlIGRvY3VtZW50YXRpb24KICAgIAogICAgZ2l0LXN2bi1pZDogaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2YvbWF2ZW4vYXJjaGV0eXBlL3RydW5rQDExNjA0MjUgMTNmNzk1MzUtNDdiYi0wMzEwLTk5NTYtZmZhNDUwZWRlZjY4Cgpjb21taXQgODIwZGNiMDM5MTJjMTUxYzBjNzQxMGQ1Y2RmNjUzNTYyYTNhMDFjZQpBdXRob3I6IEhlcnZlIEJvdXRlbXkgPGhib3V0ZW15QGFwYWNoZS5vcmc+CkRhdGU6ICAgMjAxMS0wOC0yMlQyMDo1NzoxM1oKCiAgICBhZGRlZCBSZWZlcmVuY2UgbWVudQogICAgCiAgICBnaXQtc3ZuLWlkOiBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9hcmNoZXR5cGUvdHJ1bmtAMTE2MDQzMSAxM2Y3OTUzNS00N2JiLTAzMTAtOTk1Ni1mZmE0NTBlZGVmNjgKCmNvbW1pdCAxN2ExYTYxM2IzNGVhYWE1MDI5YzMxMzc4ZGQwZDY3NzVhNjY4YWQ0CkF1dGhvcjogSGVydmUgQm91dGVteSA8aGJvdXRlbXlAYXBhY2hlLm9yZz4KRGF0ZTogICAyMDExLTA4LTIyVDIxOjEyOjA5WgoKICAgIGZpeGVkIGxpbmtzIHRvIGRlc2NyaXB0b3JzIHJlZmVyZW5jZQogICAgCiAgICBnaXQtc3ZuLWlkOiBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9hcmNoZXR5cGUvdHJ1bmtAMTE2MDQzOSAxM2Y3OTUzNS00N2JiLTAzMTAtOTk1Ni1mZmE0NTBlZGVmNjgKCmNvbW1pdCA1N2M1ZDUxYzdmOWQ1M2NiMTdjZDhhNjBmZjBjYjVlNzZjNTVkMmJkCkF1dGhvcjogSGVydmUgQm91dGVteSA8aGJvdXRlbXlAYXBhY2hlLm9yZz4KRGF0ZTogICAyMDExLTA4LTIyVDIxOjM5OjQzWgoKICAgIGFkZGVkIHBhY2thZ2VkPSJ0cnVlIiBzYW1wbGUgd2l0aCBmaWx0ZXJlZD0iZmFsc2UiCiAgICAKICAgIGdpdC1zdm4taWQ6IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2FyY2hldHlwZS90cnVua0AxMTYwNDU0IDEzZjc5NTM1LTQ3YmItMDMxMC05OTU2LWZmYTQ1MGVkZWY2OAoKY29tbWl0IGRiMjlmY2U0MWQwNjlhZGMzNWRmZjA1M2I4OTY5OWE1NGVhMDJlYWEKQXV0aG9yOiBIZXJ2ZSBCb3V0ZW15IDxoYm91dGVteUBhcGFjaGUub3JnPgpEYXRlOiAgIDIwMTEtMDgtMjJUMjE6NTY6MTNaCgogICAgaW1wcm92ZWQgZGVzY3JpcHRvciBkb2N1bWVudGF0aW9uCiAgICAKICAgIGdpdC1zdm4taWQ6IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2FyY2hldHlwZS90cnVua0AxMTYwNDYwIDEzZjc5NTM1LTQ3YmItMDMxMC05OTU2LWZmYTQ1MGVkZWY2OAoKY29tbWl0IDBiZDdhZGFmNGFhOTU4NmFmMDAxNWYzODRiZmIwZDQ5OTgwNzY5Y2UKQXV0aG9yOiBPbGl2aWVyIExhbXkgPG9sYW15QGFwYWNoZS5vcmc+CkRhdGU6ICAgMjAxMS0wOC0yNFQwNzo1Nzo0M1oKCiAgICBbQVJDSEVUWVBFLTIyMF0gVW5hYmxlIHRvIGFjY2VzcyByZW1vdGUgY2F0YWxvZ3Mgb24gSFRUUFMgcHJvdG9jb2wsIGV2ZW4gd2l0aCByZWRpcmVjdGlvbgogICAgCiAgICBnaXQtc3ZuLWlkOiBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9hcmNoZXR5cGUvdHJ1bmtAMTE2MDk5OSAxM2Y3OTUzNS00N2JiLTAzMTAtOTk1Ni1mZmE0NTBlZGVmNjgKCmNvbW1pdCA3MTY0Mzg2MTliODVhMjJlMjhhMzJkOTM1MDZhZWEzNDU4Y2MwODFiCkF1dGhvcjogSGVydmUgQm91dGVteSA8aGJvdXRlbXlAYXBhY2hlLm9yZz4KRGF0ZTogICAyMDExLTA4LTI1VDIwOjUwOjQ4WgoKICAgIG8gY29kZSBmb3JtYXR0aW5nCiAgICBvIGFkZGVkIGdlbmVyaWNzCiAgICAKICAgIGdpdC1zdm4taWQ6IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2FyY2hldHlwZS90cnVua0AxMTYxNzU0IDEzZjc5NTM1LTQ3YmItMDMxMC05OTU2LWZmYTQ1MGVkZWY2OAoKY29tbWl0IDhkYTA3MzRhZjMzMTY0NjU2YWRiZGZiYTdmMGQyOTkwZmRlYzNhMGIKQXV0aG9yOiBIZXJ2ZSBCb3V0ZW15IDxoYm91dGVteUBhcGFjaGUub3JnPgpEYXRlOiAgIDIwMTEtMDgtMjVUMjE6MzI6MzBaCgogICAgbyBhZGRlZCBBcmNoZXR5cGVFeGNlcHRpb24KICAgIG8gc2ltcGxpZmllZCBhcmNoZXR5cGUgZXhjZXB0aW9ucyBjYXRjaAogICAgCiAgICBnaXQtc3ZuLWlkOiBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9hcmNoZXR5cGUvdHJ1bmtAMTE2MTc2MiAxM2Y3OTUzNS00N2JiLTAzMTAtOTk1Ni1mZmE0NTBlZGVmNjgKCmNvbW1pdCBjYTg2Y2JlYmRiYzU5YmQyOTI4MTA2OGQwMzFkZTM0NGQ4NTRjMTRhCkF1dGhvcjogSGVydmUgQm91dGVteSA8aGJvdXRlbXlAYXBhY2hlLm9yZz4KRGF0ZTogICAyMDExLTA4LTI1VDIyOjAxOjU4WgoKICAgIFtBUkNIRVRZUEUtMzU5XSBpbXByb3ZlZCBlcnJvciBtZXNzYWdlIHdoZW4gSVQgZmFpbHMgZHVlIHRvIG1pc3NpbmcgcHJvcGVydHkgaW4gYXJjaGV0eXBlLnByb3BlcnRpZXMKICAgIAogICAgZ2l0LXN2bi1pZDogaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2YvbWF2ZW4vYXJjaGV0eXBlL3RydW5rQDExNjE3NzQgMTNmNzk1MzUtNDdiYi0wMzEwLTk5NTYtZmZhNDUwZWRlZjY4Cgpjb21taXQgZDRlMmUyZDMwZjUwNTgzMjFkOGVkMWQxZjg2YTI3YTE4NTQ0NjAwZgpBdXRob3I6IEhlcnZlIEJvdXRlbXkgPGhib3V0ZW15QGFwYWNoZS5vcmc+CkRhdGU6ICAgMjAxMS0wOC0yNlQyMjo0MDozMVoKCiAgICByZW1vdmVkIGxvZyBtZXNzYWdlIHdpdGggc3RhY2t0cmFjZSB0aGF0IGlzIGNhdXNpbmcgY29uZnVzaW9uCiAgICAKICAgIGdpdC1zdm4taWQ6IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2FyY2hldHlwZS90cnVua0AxMTYyMjc4IDEzZjc5NTM1LTQ3YmItMDMxMC05OTU2LWZmYTQ1MGVkZWY2OAoKY29tbWl0IDAzMWEzMzZjZWQ0YzBjYjAyODVkYTBlM2Q4OGE0Yjk5NjQzNmU1ZTYKQXV0aG9yOiBIZXJ2ZSBCb3V0ZW15IDxoYm91dGVteUBhcGFjaGUub3JnPgpEYXRlOiAgIDIwMTEtMDgtMjhUMTM6MjA6NDVaCgogICAgYWRkZWQgYW4gb3ZlcnZpZXcgaW1hZ2UgdG8gZXhwbGFpbiB0aGUgd2hvbGUgYXJjaGV0eXBlIGxpZmVjeWNsZQogICAgCiAgICBnaXQtc3ZuLWlkOiBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9hcmNoZXR5cGUvdHJ1bmtAMTE2MjUxNyAxM2Y3OTUzNS00N2JiLTAzMTAtOTk1Ni1mZmE0NTBlZGVmNjgKCmNvbW1pdCBlZTdjZDAwMTgwMDM5YmUxZmY1ZTY4MmQ3OTQwZDZiYTkwODcyZjM3CkF1dGhvcjogSGVydmUgQm91dGVteSA8aGJvdXRlbXlAYXBhY2hlLm9yZz4KRGF0ZTogICAyMDExLTA4LTI4VDE0OjQ4OjMwWgoKICAgIEltcHJvdmVkIGRvY3VtZW50YXRpb24KICAgIAogICAgZ2l0LXN2bi1pZDogaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2YvbWF2ZW4vYXJjaGV0eXBlL3RydW5rQDExNjI1MzQgMTNmNzk1MzUtNDdiYi0wMzEwLTk5NTYtZmZhNDUwZWRlZjY4Cgpjb21taXQgOTM0ODc5ZmRlYWY1NDJiM2UwYzE1NzkxZDBhZDFmMjBhZGZmM2JhNwpBdXRob3I6IEhlcnZlIEJvdXRlbXkgPGhib3V0ZW15QGFwYWNoZS5vcmc+CkRhdGU6ICAgMjAxMS0wOC0yOFQxNDo0OToxOFoKCiAgICBhZGRlZCBpbmZvcm1hdGlvbiBhYm91dCBiYXNpYyBJVCBnZW5lcmF0ZWQgYWxvbmcgYXJjaGV0eXBlIHByb2plY3QKICAgIAogICAgZ2l0LXN2bi1pZDogaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2YvbWF2ZW4vYXJjaGV0eXBlL3RydW5rQDExNjI1MzUgMTNmNzk1MzUtNDdiYi0wMzEwLTk5NTYtZmZhNDUwZWRlZjY4Cgpjb21taXQgODM2OWYwY2NmYTZkNzk4OTRlMWNlOTZhMDRjZWI4Y2UyMDJlYmI4YwpBdXRob3I6IEhlcnZlIEJvdXRlbXkgPGhib3V0ZW15QGFwYWNoZS5vcmc+CkRhdGU6ICAgMjAxMS0wOC0yOFQxNDo1Njo1MVoKCiAgICBpbXByb3ZlZCBnb2FsIGRvY3VtZW50YXRpb24KICAgIAogICAgZ2l0LXN2bi1pZDogaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2YvbWF2ZW4vYXJjaGV0eXBlL3RydW5rQDExNjI1MzYgMTNmNzk1MzUtNDdiYi0wMzEwLTk5NTYtZmZhNDUwZWRlZjY4Cgpjb21taXQgZTUwMmUwZjFlZDcxNGE5NmFiMTdjYTA0ZTIxZTkxZDhhMDhlMThiMApBdXRob3I6IEhlcnZlIEJvdXRlbXkgPGhib3V0ZW15QGFwYWNoZS5vcmc+CkRhdGU6ICAgMjAxMS0wOC0yOFQxNTo0ODowOFoKCiAgICBmaXhlZCBlcnJvcnMgcmVwb3J0ZWQgYnkgQ2hlY2tzdHlsZQogICAgCiAgICBnaXQtc3ZuLWlkOiBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9hcmNoZXR5cGUvdHJ1bmtAMTE2MjU0MSAxM2Y3OTUzNS00N2JiLTAzMTAtOTk1Ni1mZmE0NTBlZGVmNjgKCmNvbW1pdCBlZjcyM2Q4ZTc0MmY2Y2IyZmE0Njk2YTVhMWRmOWE2OWY5NjEwMGU3CkF1dGhvcjogSGVydmUgQm91dGVteSA8aGJvdXRlbXlAYXBhY2hlLm9yZz4KRGF0ZTogICAyMDExLTA4LTI5VDE5OjU1OjAyWgoKICAgIGJldHRlciBkb2MgcmVuZGVyaW5nCiAgICAKICAgIGdpdC1zdm4taWQ6IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2FyY2hldHlwZS90cnVua0AxMTYyOTY1IDEzZjc5NTM1LTQ3YmItMDMxMC05OTU2LWZmYTQ1MGVkZWY2OAoKY29tbWl0IDFkZTQ0NmFhM2RmYjMzMjBiN2JkM2E0MDI1MTdlMDQwZTdhNWVjOTQKQXV0aG9yOiBIZXJ2ZSBCb3V0ZW15IDxoYm91dGVteUBhcGFjaGUub3JnPgpEYXRlOiAgIDIwMTEtMDgtMjlUMTk6NTg6MjRaCgogICAgY29uZmlndXJlZCBzaXRlIHN0YWdpbmcgVVJMCiAgICAKICAgIGdpdC1zdm4taWQ6IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2FyY2hldHlwZS90cnVua0AxMTYyOTY3IDEzZjc5NTM1LTQ3YmItMDMxMC05OTU2LWZmYTQ1MGVkZWY2OAoKY29tbWl0IGM0NmEyMDljNzVhNWI3ZGQwODY3NDJjNWIzMGY1MmM5NzczZWZiNmQKQXV0aG9yOiBIZXJ2ZSBCb3V0ZW15IDxoYm91dGVteUBhcGFjaGUub3JnPgpEYXRlOiAgIDIwMTEtMDgtMjlUMjA6MDc6NDNaCgogICAgZml4ZWQgdHlwbwogICAgCiAgICBnaXQtc3ZuLWlkOiBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9hcmNoZXR5cGUvdHJ1bmtAMTE2Mjk3MCAxM2Y3OTUzNS00N2JiLTAzMTAtOTk1Ni1mZmE0NTBlZGVmNjgKCmNvbW1pdCBmYWRmZDI4YzYxMmQ1ZGYwM2U1ZDVjYjZlYjA3MmNjYjYyOTJmNjY0CkF1dGhvcjogSGVydmUgQm91dGVteSA8aGJvdXRlbXlAYXBhY2hlLm9yZz4KRGF0ZTogICAyMDExLTA4LTI5VDIwOjEzOjI4WgoKICAgIGFkZGVkIGEgbGluayB0byBNYXZlbiBBcmNoZXR5cGUgUGx1Z2luCiAgICAKICAgIGdpdC1zdm4taWQ6IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2FyY2hldHlwZS90cnVua0AxMTYyOTczIDEzZjc5NTM1LTQ3YmItMDMxMC05OTU2LWZmYTQ1MGVkZWY2OAoKY29tbWl0IDU4ZmM1YWMzYWM5N2Q4NTNkZjlkYmYzMDU1MDhlNjI2Yzg1Y2U4NDIKQXV0aG9yOiBIZXJ2ZSBCb3V0ZW15IDxoYm91dGVteUBhcGFjaGUub3JnPgpEYXRlOiAgIDIwMTEtMDgtMjlUMjA6Mjg6MDFaCgogICAgc2VwYXJhdGVkIGdvYWxzIGludG8gMiBncm91cHM6IGRpcmVjdCB1c2UgYW5kIGJvdW5kIHRvIGRlZmF1bHQgbGlmZWN5Y2xlCiAgICAKICAgIGdpdC1zdm4taWQ6IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2FyY2hldHlwZS90cnVua0AxMTYyOTg2IDEzZjc5NTM1LTQ3YmItMDMxMC05OTU2LWZmYTQ1MGVkZWY2OAoKY29tbWl0IGY4NjA2ZjNmOTkwZGI4M2Q3NWQ1MzcyNGI1OTE0NzVjNGUyNTA3NWMKQXV0aG9yOiBIZXJ2ZSBCb3V0ZW15IDxoYm91dGVteUBhcGFjaGUub3JnPgpEYXRlOiAgIDIwMTEtMDgtMjlUMjA6NDk6NTlaCgogICAgdXBkYXRlZCBvdmVydmlldyBzY2hlbWEKICAgIAogICAgZ2l0LXN2bi1pZDogaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9hc2YvbWF2ZW4vYXJjaGV0eXBlL3RydW5rQDExNjI5OTYgMTNmNzk1MzUtNDdiYi0wMzEwLTk5NTYtZmZhNDUwZWRlZjY4Cgpjb21taXQgZTViNTUwYWFkZjc3MDk1MGU1NDJmMTA1YjE2NjM1NzI4MDI1NDdkMgpBdXRob3I6IEhlcnZlIEJvdXRlbXkgPGhib3V0ZW15QGFwYWNoZS5vcmc+CkRhdGU6ICAgMjAxMS0wOC0zMFQxNjoyMDo1NloKCiAgICBbQVJDSEVUWVBFLTM0OV0gY29kZSBzaW1wbGlmaWNhdGlvbgogICAgCiAgICBnaXQtc3ZuLWlkOiBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9hcmNoZXR5cGUvdHJ1bmtAMTE2MzI3NCAxM2Y3OTUzNS00N2JiLTAzMTAtOTk1Ni1mZmE0NTBlZGVmNjgKCi0tLS0KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDEzNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgT2N0ICAzIDEyOjEzOjE0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDEzNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA0RkM2NTEwRjhGCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgIDMgT2N0IDIwMTcgMTI6MTM6MTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0OTA4MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAzIE9jdCAyMDE3IDEyOjEzOjE0IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0OTAxMCBpbnZva2VkIGJ5IHVpZCA1MDApOyAzIE9jdCAyMDE3IDEyOjEzOjEzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDg5OTkgaW52b2tlZCBieSB1aWQgOTkpOyAzIE9jdCAyMDE3IDEyOjEzOjEzIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAwMyBPY3QgMjAxNyAxMjoxMzoxMyArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCBGMzgwRUY1NEREOyBUdWUsICAzIE9jdCAyMDE3IDEyOjEzOjEyICswMDAwIChVVEMpCkZyb206IHNjZWxhIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JRDogPGdpdC1wci0xOS1tYXZlbi1pbmRleGVyQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1pbmRleGVyIHB1bGwgcmVxdWVzdCAjMTk6IE1pZ3JhdGUgdG8gTHVjZW5lIDcKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IFR1ZSwgIDMgT2N0IDIwMTcgMTI6MTM6MTIgKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIHNjZWxhIG9wZW5lZCBhIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWluZGV4ZXIvcHVsbC8xOQoKICAgIE1pZ3JhdGUgdG8gTHVjZW5lIDcKCiAgICBOb3cgdGhhdCBMdWNlbmUgNyBpcyByZWxlYXNlZCBJIGFiYW5kb25lZCB0aGUgNi4xIG1pZ3JhdGlvbiBQUiBhbmQgY3JlYXRlZCB0aGlzIG5ldyBvbmUgd2hpY2ggdGFrZXMgaXQgc3RyYWlnaHQgdG8gNy4KICAgIAogICAgT25lIHRoaW5nIHRvIG5vdGUgaXMgdGhhdCB0aGlzIG1pZ2h0IG5lZWQgdGhlIGVuZm9yY2VkIEpESyB0byBiZSBidW1wZWQgdG8gOC4KCllvdSBjYW4gbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3QgaW50byBhIEdpdCByZXBvc2l0b3J5IGJ5IHJ1bm5pbmc6CgogICAgJCBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vc2NlbGEvbWF2ZW4taW5kZXhlciBtYXN0ZXIKCkFsdGVybmF0aXZlbHkgeW91IGNhbiByZXZpZXcgYW5kIGFwcGx5IHRoZXNlIGNoYW5nZXMgYXMgdGhlIHBhdGNoIGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4taW5kZXhlci9wdWxsLzE5LnBhdGNoCgpUbyBjbG9zZSB0aGlzIHB1bGwgcmVxdWVzdCwgbWFrZSBhIGNvbW1pdCB0byB5b3VyIG1hc3Rlci90cnVuayBicmFuY2gKd2l0aCAoYXQgbGVhc3QpIHRoZSBmb2xsb3dpbmcgaW4gdGhlIGNvbW1pdCBtZXNzYWdlOgoKICAgIFRoaXMgY2xvc2VzICMxOQogICAgCi0tLS0KY29tbWl0IGIwNTJhNmZlMGJmMGI3NmE5ZWQwYzE2OGMzMWViZjAyZWNlMDgxMjYKQXV0aG9yOiBTb3BvdCBDZWxhIDxzY2VsYUByZWRoYXQuY29tPgpEYXRlOiAgIDIwMTctMTAtMDNUMTI6MDk6MDRaCgogICAgTWlncmF0ZSB0byBMdWNlbmUgNwoKLS0tLQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NjgwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBOb3YgMzAgMTA6Mjg6NDMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjgwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDRDMjJBMTBBNDEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAzMCBOb3YgMjAxNyAxMDoyODo0MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDU1NjE0IGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIE5vdiAyMDE3IDEwOjI4OjQzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NTQ4NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMCBOb3YgMjAxNyAxMDoyODo0MiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU1NDcxIGludm9rZWQgYnkgdWlkIDk5KTsgMzAgTm92IDIwMTcgMTA6Mjg6NDIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDMwIE5vdiAyMDE3IDEwOjI4OjQyICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDg3Njc3RTM2RDQ7IFRodSwgMzAgTm92IDIwMTcgMTA6Mjg6NDIgKzAwMDAgKFVUQykKRnJvbTogc3RlZmFuc2VpZmVydCA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDxnaXQtcHItMjAtbWF2ZW4tYXJjaGV0eXBlQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1hcmNoZXR5cGUgcHVsbCByZXF1ZXN0ICMyMDogQVJDSEVUWVBFLTUzNiBVcGRhdGUgR3Jvb3Z5IERlcGVuZGVuY3kgYW5kLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpEYXRlOiBUaHUsIDMwIE5vdiAyMDE3IDEwOjI4OjQyICswMDAwIChVVEMpCgpHaXRIdWIgdXNlciBzdGVmYW5zZWlmZXJ0IG9wZW5lZCBhIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWFyY2hldHlwZS9wdWxsLzIwCgogICAgQVJDSEVUWVBFLTUzNiBVcGRhdGUgR3Jvb3Z5IERlcGVuZGVuY3kgYW5kIEluY2x1ZGUgSXZ5IERlcGVuZGVuY3kKCiAgICBzZWUgaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9BUkNIRVRZUEUtNTM2CgpZb3UgY2FuIG1lcmdlIHRoaXMgcHVsbCByZXF1ZXN0IGludG8gYSBHaXQgcmVwb3NpdG9yeSBieSBydW5uaW5nOgoKICAgICQgZ2l0IHB1bGwgaHR0cHM6Ly9naXRodWIuY29tL3N0ZWZhbnNlaWZlcnQvbWF2ZW4tYXJjaGV0eXBlIGZlYXR1cmUvQVJDSEVUWVBFLTUzNi1ncm9vdnktZGVwcwoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHJldmlldyBhbmQgYXBwbHkgdGhlc2UgY2hhbmdlcyBhcyB0aGUgcGF0Y2ggYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1hcmNoZXR5cGUvcHVsbC8yMC5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMjAKICAgIAotLS0tCmNvbW1pdCA0YjZkN2EyM2Y2YjU4MmJlNWM2NzA3MzA0NThlMDEyY2RkNTdkZTk0CkF1dGhvcjogc3NlaWZlcnQgPHNzZWlmZXJ0QHByby12aXNpb24uZGU+CkRhdGU6ICAgMjAxNy0xMS0zMFQxMDoyNjo1MFoKCiAgICBBUkNIRVRZUEUtNTM2IFVwZGF0ZSBHcm9vdnkgRGVwZW5kZW5jeSBhbmQgSW5jbHVkZSBJdnkgRGVwZW5kZW5jeQoKLS0tLQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MjYyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBPY3QgMTggMTI6NDU6NDIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjYyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDk3MDRGQzVFOQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDE4IE9jdCAyMDE3IDEyOjQ1OjQyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTg0MzQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggT2N0IDIwMTcgMTI6NDU6NDIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU4MzYwIGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IE9jdCAyMDE3IDEyOjQ1OjQyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTgzNDkgaW52b2tlZCBieSB1aWQgOTkpOyAxOCBPY3QgMjAxNyAxMjo0NTo0MSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMTggT2N0IDIwMTcgMTI6NDU6NDEgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgRDIwMkFERjlGRDsgV2VkLCAxOCBPY3QgMjAxNyAxMjo0NTo0MCArMDAwMCAoVVRDKQpGcm9tOiBzZXdlIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JRDogPGdpdC1wci0yMC1tYXZlbi1pbmRleGVyQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1pbmRleGVyIHB1bGwgcmVxdWVzdCAjMjA6IEZpeCBpc3N1ZSB0cmFja2VyIFVSSSBpbiBSRUFETUUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IFdlZCwgMTggT2N0IDIwMTcgMTI6NDU6NDAgKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIHNld2Ugb3BlbmVkIGEgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4taW5kZXhlci9wdWxsLzIwCgogICAgRml4IGlzc3VlIHRyYWNrZXIgVVJJIGluIFJFQURNRQoKICAgIENvZGVoYXVzIGlzIG5vdCBsb25nZXIgYXZhaWxhYmxlLgoKWW91IGNhbiBtZXJnZSB0aGlzIHB1bGwgcmVxdWVzdCBpbnRvIGEgR2l0IHJlcG9zaXRvcnkgYnkgcnVubmluZzoKCiAgICAkIGdpdCBwdWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9zZXdlL21hdmVuLWluZGV4ZXIgbWFzdGVyCgpBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gcmV2aWV3IGFuZCBhcHBseSB0aGVzZSBjaGFuZ2VzIGFzIHRoZSBwYXRjaCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWluZGV4ZXIvcHVsbC8yMC5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMjAKICAgIAotLS0tCmNvbW1pdCBhMGI4ZGY4MmJkMmRkOWZiNGY4MTgwMDZiMmQ0ZGQxNDk3NzcxYjRlCkF1dGhvcjogQW5kcmVhcyBTZXdlIDxhbmRyZWFzLnNld2VAY29kZXRyYWlscy5jb20+CkRhdGU6ICAgMjAxNy0xMC0xOFQxMjo0MzozMloKCiAgICBGaXggaXNzdWUgdHJhY2tlciBVUkkgaW4gUkVBRE1FCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IEFuZHJlYXMgU2V3ZSA8YW5kcmVhcy5zZXdlQGNvZGV0cmFpbHMuY29tPgoKLS0tLQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NTc0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBOb3YgMjMgMTE6Mjg6MjkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTc0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDA0ODI2MTA2RTMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAyMyBOb3YgMjAxNyAxMToyODoyOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDcyMDkxIGludm9rZWQgYnkgdWlkIDUwMCk7IDIzIE5vdiAyMDE3IDExOjI4OjI4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MjAwOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMyBOb3YgMjAxNyAxMToyODoyOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDcxOTkyIGludm9rZWQgYnkgdWlkIDk5KTsgMjMgTm92IDIwMTcgMTE6Mjg6MjggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDIzIE5vdiAyMDE3IDExOjI4OjI4ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDQwMjU2RTk2REE7IFRodSwgMjMgTm92IDIwMTcgMTE6Mjg6MjggKzAwMDAgKFVUQykKRnJvbTogY3N0YW1hcyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDxnaXQtcHItMjEtbWF2ZW4taW5kZXhlckBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4taW5kZXhlciBwdWxsIHJlcXVlc3QgIzIxOiBQcmVwYXJlIGZvciBuZXh0IG1ham9yIHJlbGVhc2UgKDYueCkKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IFRodSwgMjMgTm92IDIwMTcgMTE6Mjg6MjggKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIGNzdGFtYXMgb3BlbmVkIGEgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4taW5kZXhlci9wdWxsLzIxCgogICAgUHJlcGFyZSBmb3IgbmV4dCBtYWpvciByZWxlYXNlICg2LngpCgogICAgQ2hhbmdlczoKICAgIC0gdXBkYXRlIHBhcmVudCBwb20KICAgIC0gdXBkYXRlIGRlcGVuZGVuY2llcyAoYnV0IHJlbWFpbiBKYXZhNyEpCiAgICAtIHVwZGF0ZSBzaXN1IChkcm9wIHNvbmF0eXBlIGd1aWNlLCB1c2UgdmFuaWxsYSBndWljZSkKICAgIC0gdXBkYXRlIHRvIG1hdmVuLXJlc29sdmVyIChmcm9tIGFldGhlcikKICAgIC0gcG9tIGNsZWFudXAKICAgIAogICAgTm8gc291cmNlIGNoYW5nZXMgaGFwcGVuZWQuCgpZb3UgY2FuIG1lcmdlIHRoaXMgcHVsbCByZXF1ZXN0IGludG8gYSBHaXQgcmVwb3NpdG9yeSBieSBydW5uaW5nOgoKICAgICQgZ2l0IHB1bGwgaHR0cHM6Ly9naXRodWIuY29tL2NzdGFtYXMvbWF2ZW4taW5kZXhlciBwcmVwYXJlLTYKCkFsdGVybmF0aXZlbHkgeW91IGNhbiByZXZpZXcgYW5kIGFwcGx5IHRoZXNlIGNoYW5nZXMgYXMgdGhlIHBhdGNoIGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4taW5kZXhlci9wdWxsLzIxLnBhdGNoCgpUbyBjbG9zZSB0aGlzIHB1bGwgcmVxdWVzdCwgbWFrZSBhIGNvbW1pdCB0byB5b3VyIG1hc3Rlci90cnVuayBicmFuY2gKd2l0aCAoYXQgbGVhc3QpIHRoZSBmb2xsb3dpbmcgaW4gdGhlIGNvbW1pdCBtZXNzYWdlOgoKICAgIFRoaXMgY2xvc2VzICMyMQogICAgCi0tLS0KY29tbWl0IGFkMDc0MDVjMDZiNDIyY2I1MjlkM2JhZGFhMWI2YjM3NjY5OWM5YzEKQXV0aG9yOiBUYW1hcyBDc2VydmVuYWsgPHRhbWFzQGNzZXJ2ZW5hay5uZXQ+CkRhdGU6ICAgMjAxNy0xMS0yM1QxMTowMTo1NloKCiAgICBQcmVwYXJlIGZvciBuZXh0IG1ham9yIHJlbGVhc2UgKDYueCkKICAgIAogICAgQ2hhbmdlczoKICAgIC0gdXBkYXRlIHBhcmVudCBwb20KICAgIC0gdXBkYXRlIGRlcGVuZGVuY2llcyAoYnV0IHJlbWFpbiBKYXZhNyEpCiAgICAtIHVwZGF0ZSBzaXN1IChkcm9wIHNvbmF0eXBlIGd1aWNlLCB1c2UgdmFuaWxsYSBndWljZSkKICAgIC0gdXBkYXRlIHRvIG1hdmVuLXJlc29sdmVyIChmcm9tIGFldGhlcikKICAgIAogICAgTm8gc291cmNlIGNoYW5nZXMgaGFwcGVuZWQuCgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1ODgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE5vdiAyNCAwOTozNDo0NCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1ODgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOTc1QUMxMDVDOAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDI0IE5vdiAyMDE3IDA5OjM0OjQ0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjEyNDIgaW52b2tlZCBieSB1aWQgNTAwKTsgMjQgTm92IDIwMTcgMDk6MzQ6NDQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIxMTYwIGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IE5vdiAyMDE3IDA5OjM0OjQ0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjExNDkgaW52b2tlZCBieSB1aWQgOTkpOyAyNCBOb3YgMjAxNyAwOTozNDo0MyAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMjQgTm92IDIwMTcgMDk6MzQ6NDMgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgRDhCNUNERkQ3ODsgRnJpLCAyNCBOb3YgMjAxNyAwOTozNDo0MyArMDAwMCAoVVRDKQpGcm9tOiBjc3RhbWFzIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JRDogPGdpdC1wci0yMi1tYXZlbi1pbmRleGVyQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1pbmRleGVyIHB1bGwgcmVxdWVzdCAjMjI6IE1JTkRFWEVSLTEwODogTGlmdCB0aGUgd2lsZGNhcmQgcHJlZml4IHJlc3RyLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpEYXRlOiBGcmksIDI0IE5vdiAyMDE3IDA5OjM0OjQzICswMDAwIChVVEMpCgpHaXRIdWIgdXNlciBjc3RhbWFzIG9wZW5lZCBhIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWluZGV4ZXIvcHVsbC8yMgoKICAgIE1JTkRFWEVSLTEwODogTGlmdCB0aGUgd2lsZGNhcmQgcHJlZml4IHJlc3RyaWN0aW9uCgogICAgTUlOREVYRVItMTA4OiBsaWZ0IHRoZSBwcmVmaXggcmVzdHJpY3Rpb24KICAgIEhpc3RvcmljYWxseSBMdWNlbmUgbmVlZGVkIHRoaXMsIGJ1dCBsYXRlc3QgdmVyc2lvbnMKICAgIGNhbiBjb3BlIHdpdGggaXQuIFRoaXMgaXMgc3RpbGwgT09NIHByb25lLCBzbyB1c2Ugd2l0aCBjYXJlLAogICAgYnV0IHRoZSBwb3NzaWJpbGl0eSBpcyBoZXJlLgogICAgCiAgICBOb3RlOiBQUiBidWlsZCBvbiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWluZGV4ZXIvcHVsbC8yMSAoaGVuY2UsIGtlZXAgaW4gbWluZCB3aGlsZSByZXZpZXcpLgoKWW91IGNhbiBtZXJnZSB0aGlzIHB1bGwgcmVxdWVzdCBpbnRvIGEgR2l0IHJlcG9zaXRvcnkgYnkgcnVubmluZzoKCiAgICAkIGdpdCBwdWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9jc3RhbWFzL21hdmVuLWluZGV4ZXIgbWluZGV4ZXItMTA4CgpBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gcmV2aWV3IGFuZCBhcHBseSB0aGVzZSBjaGFuZ2VzIGFzIHRoZSBwYXRjaCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWluZGV4ZXIvcHVsbC8yMi5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMjIKICAgIAotLS0tCmNvbW1pdCBhZDA3NDA1YzA2YjQyMmNiNTI5ZDNiYWRhYTFiNmIzNzY2OTljOWMxCkF1dGhvcjogVGFtYXMgQ3NlcnZlbmFrIDx0YW1hc0Bjc2VydmVuYWsubmV0PgpEYXRlOiAgIDIwMTctMTEtMjNUMTE6MDE6NTZaCgogICAgUHJlcGFyZSBmb3IgbmV4dCBtYWpvciByZWxlYXNlICg2LngpCiAgICAKICAgIENoYW5nZXM6CiAgICAtIHVwZGF0ZSBwYXJlbnQgcG9tCiAgICAtIHVwZGF0ZSBkZXBlbmRlbmNpZXMgKGJ1dCByZW1haW4gSmF2YTchKQogICAgLSB1cGRhdGUgc2lzdSAoZHJvcCBzb25hdHlwZSBndWljZSwgdXNlIHZhbmlsbGEgZ3VpY2UpCiAgICAtIHVwZGF0ZSB0byBtYXZlbi1yZXNvbHZlciAoZnJvbSBhZXRoZXIpCiAgICAKICAgIE5vIHNvdXJjZSBjaGFuZ2VzIGhhcHBlbmVkLgoKY29tbWl0IGZjODAxNjc4ZTJlNDY1MTNlNGRkYTg5NzNiY2IwNmVmNGYxMDViNjkKQXV0aG9yOiBUYW1hcyBDc2VydmVuYWsgPHRhbWFzQGNzZXJ2ZW5hay5uZXQ+CkRhdGU6ICAgMjAxNy0xMS0yM1QxNTowNTo1MVoKCiAgICBzd2l0Y2ggdG8gYXJjaGV0eXBlLWNhdGFsb2cgZGVwCiAgICAKICAgIEFzIHdlIHJlYWxseSBqdXN0IHByb3ZpZGUgaGVscGVyIGNsYXNzIHRvIGltcGxlbWVudAogICAgb3JnLmFwYWNoZS5tYXZlbi5hcmNoZXR5cGUuc291cmNlLkFyY2hldHlwZURhdGFTb3VyY2UKCmNvbW1pdCAwZDhiNDgwYTlhMDQzNGIzODZhMGM0OTRkNDRmYjU5ZTBjMjM2MThmCkF1dGhvcjogVGFtYXMgQ3NlcnZlbmFrIDx0YW1hc0Bjc2VydmVuYWsubmV0PgpEYXRlOiAgIDIwMTctMTEtMjRUMDk6MzA6MjBaCgogICAgTUlOREVYRVItMTA4OiBsaWZ0IHRoZSBwcmVmaXggcmVzdHJpY3Rpb24KICAgIAogICAgSGlzdG9yaWNhbGx5IEx1Y2VuZSBuZWVkZWQgdGhpcywgYnV0IGxhdGVzdCB2ZXJzaW9ucwogICAgY2FuIGNvcGUgd2l0aCBpdC4gVGhpcyBpcyBzdGlsbCBPT00gcHJvbmUsIHNvIHVzZSB3aXRoIGNhcmUsCiAgICBidXQgdGhlIHBvc3NpYmlsaXR5IGlzIGhlcmUuCgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1OTItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE5vdiAyNCAxNDo0NTozOCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1OTItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMUZDMkYxMEYyMQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDI0IE5vdiAyMDE3IDE0OjQ1OjM4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDk1NDQgaW52b2tlZCBieSB1aWQgNTAwKTsgMjQgTm92IDIwMTcgMTQ6NDU6MzcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ5NDYxIGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IE5vdiAyMDE3IDE0OjQ1OjM3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDk0NTAgaW52b2tlZCBieSB1aWQgOTkpOyAyNCBOb3YgMjAxNyAxNDo0NTozNyAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMjQgTm92IDIwMTcgMTQ6NDU6MzcgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNEY4RDRERkI4NjsgRnJpLCAyNCBOb3YgMjAxNyAxNDo0NTozNyArMDAwMCAoVVRDKQpGcm9tOiBjc3RhbWFzIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JRDogPGdpdC1wci0yMy1tYXZlbi1pbmRleGVyQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1pbmRleGVyIHB1bGwgcmVxdWVzdCAjMjM6IEZ1bGwgY29kZWJhc2UgcmVmb3JtYXQsIG1pbm9yIGNsZWFudXAsIG5vIGNvLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpEYXRlOiBGcmksIDI0IE5vdiAyMDE3IDE0OjQ1OjM3ICswMDAwIChVVEMpCgpHaXRIdWIgdXNlciBjc3RhbWFzIG9wZW5lZCBhIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWluZGV4ZXIvcHVsbC8yMwoKICAgIEZ1bGwgY29kZWJhc2UgcmVmb3JtYXQsIG1pbm9yIGNsZWFudXAsIG5vIGNvZGUvbG9naWMgY2hhbmdlCgogICAgUmVmb3JtYXR0ZWQgZnVsbCBjb2RlYmFzZSwgYXMgdGhlcmUgd2FzIG1peGVkIGZvcm1hdHRpbmcsIGFuZAogICAgY2hlY2tzdHlsZSBkaWQgcmVwb3J0IGEgaHVnZSBhbW91bnQgb2YgZXJyb3JzLiBOb3csIG1vc3RseSB0aGUKICAgIGphdmFkb2Mgb25lcyA6KSByZW1haW4sIGFuZCBmZXcgbWlub3IgaXNzdWVzLiBBcyBwYXJ0IG9mIGNsZWFudXAsCiAgICBhcHBsaWVkIHNvbWUgY2hhbmdlcyBwcm9wb3NlZCBieSBjaGVja3N0eWxlLCBsaWtlIHJlbW92aW5nIHB1YmxpYwogICAgbW9kaWZpZXJzIGZyb20gaW5uZXIgZW51bXMgZXRjLgogICAgCiAgICBObyBjb2RlL2xvZ2ljIGNoYW5nZSBoYXBwZW5lZC4KCllvdSBjYW4gbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3QgaW50byBhIEdpdCByZXBvc2l0b3J5IGJ5IHJ1bm5pbmc6CgogICAgJCBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vY3N0YW1hcy9tYXZlbi1pbmRleGVyIHJlZm9ybWF0CgpBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gcmV2aWV3IGFuZCBhcHBseSB0aGVzZSBjaGFuZ2VzIGFzIHRoZSBwYXRjaCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWluZGV4ZXIvcHVsbC8yMy5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMjMKICAgIAotLS0tCmNvbW1pdCBkMDFhMzU0YWViNTMxMjY5NjhlODAyMGVjNDIzYjE3MzI2ZjM1YzE0CkF1dGhvcjogVGFtYXMgQ3NlcnZlbmFrIDx0YW1hc0Bjc2VydmVuYWsubmV0PgpEYXRlOiAgIDIwMTctMTEtMjRUMTQ6NDI6NTZaCgogICAgRnVsbCBjb2RlYmFzZSByZWZvcm1hdCwgbWlub3IgY2xlYW51cCwgbm8gY29kZS9sb2dpYyBjaGFuZ2UKICAgIAogICAgUmVmb3JtYXR0ZWQgZnVsbCBjb2RlYmFzZSwgYXMgdGhlcmUgd2FzIG1peGVkIGZvcm1hdHRpbmcuIEFsc28sCiAgICBjaGVja3N0eWxlIGRpZCByZXBvcnQgYSBodWdlIGFtb3VudCBvZiBlcnJvcnMuIE5vdywgbW9zdGx5IHRoZQogICAgamF2YWRvYyBvbmVzIDopIHJlbWFpbiwgYW5kIGZldyBtaW5vciBpc3N1ZXMuIEFzIHBhcnQgb2YgY2xlYW51cCwKICAgIGFwcGxpZWQgc29tZSBjaGFuZ2VzIHByb3Bvc2VkIGJ5IGNoZWNrc3R5bGUsIGxpa2UgcmVtb3ZpbmcgcHVibGljCiAgICBtb2RpZmllcnMgZnJvbSBpbm5lciBlbnVtcyBldGMuCiAgICAKICAgIE5vIGNvZGUvbG9naWMgY2hhbmdlIGhhcHBlbmVkLgoKLS0tLQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NjYwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBOb3YgMjggMjM6NDM6MzAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjYwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDAxNDBGMTdCN0MKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAyOCBOb3YgMjAxNyAyMzo0MzozMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQ4MjE1IGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE5vdiAyMDE3IDIzOjQzOjI5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0ODEyMyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBOb3YgMjAxNyAyMzo0MzoyOSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ4MTEyIGludm9rZWQgYnkgdWlkIDk5KTsgMjggTm92IDIwMTcgMjM6NDM6MjkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDI4IE5vdiAyMDE3IDIzOjQzOjI5ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDA4NzI5RTEwQzU7IFR1ZSwgMjggTm92IDIwMTcgMjM6NDM6MjcgKzAwMDAgKFVUQykKRnJvbTogamdsaWNrIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JRDogPGdpdC1wci0yNS1tYXZlbi1pbnRlZ3JhdGlvbi10ZXN0aW5nQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1pbnRlZ3JhdGlvbi10ZXN0aW5nIHB1bGwgcmVxdWVzdCAjMjU6IEltcG9ydGluZyBhIEJPTSB3b3JrcyBldmVuIHdoZW4gLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpEYXRlOiBUdWUsIDI4IE5vdiAyMDE3IDIzOjQzOjI3ICswMDAwIChVVEMpCgpHaXRIdWIgdXNlciBqZ2xpY2sgb3BlbmVkIGEgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4taW50ZWdyYXRpb24tdGVzdGluZy9wdWxsLzI1CgogICAgSW1wb3J0aW5nIGEgQk9NIHdvcmtzIGV2ZW4gd2hlbiBpdCBoYXMgdGhlIHNhbWUgY29tcG9uZW50cyBpbiBkZXAgbWdtdAoKICAgIERvZXMgbm90IGNvcnJlc3BvbmQgdG8gYW55IGtub3duIGJ1ZywgYnV0IGl0IHNlZW1zIGxpa2UgYSBwb3RlbnRpYWxseSB1bnVzdWFsIHByYWN0aWNlIGRlc2VydmluZyBvZiB0ZXN0IGNvdmVyYWdlLgogICAgCiAgICBAcmV2aWV3YnliZWVzIGVzcC4gQHN0ZXBoZW5jIHdobyB3b25kZXJlZCB3aGV0aGVyIHRoaXMgYWN0dWFsbHkgd29ya3MKCllvdSBjYW4gbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3QgaW50byBhIEdpdCByZXBvc2l0b3J5IGJ5IHJ1bm5pbmc6CgogICAgJCBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vamdsaWNrL21hdmVuLWludGVncmF0aW9uLXRlc3RpbmcgY3ljbGljLWltcG9ydC1zY29wZQoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHJldmlldyBhbmQgYXBwbHkgdGhlc2UgY2hhbmdlcyBhcyB0aGUgcGF0Y2ggYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1pbnRlZ3JhdGlvbi10ZXN0aW5nL3B1bGwvMjUucGF0Y2gKClRvIGNsb3NlIHRoaXMgcHVsbCByZXF1ZXN0LCBtYWtlIGEgY29tbWl0IHRvIHlvdXIgbWFzdGVyL3RydW5rIGJyYW5jaAp3aXRoIChhdCBsZWFzdCkgdGhlIGZvbGxvd2luZyBpbiB0aGUgY29tbWl0IG1lc3NhZ2U6CgogICAgVGhpcyBjbG9zZXMgIzI1CiAgICAKLS0tLQpjb21taXQgOGIwYmE3NGJmNWMzNTU3MTNjYTM3MjdmYzc5MmUwYjZkODZjMmE0MApBdXRob3I6IEplc3NlIEdsaWNrIDxqZ2xpY2tAY2xvdWRiZWVzLmNvbT4KRGF0ZTogICAyMDE3LTExLTI4VDIzOjM5OjE2WgoKICAgIERlbW9uc3RyYXRpbmcgdGhhdCBpbXBvcnRpbmcgYSBCT00gd29ya3MgZXZlbiB3aGVuIGl0IGRlY2xhcmVzIHRob3NlIHNhbWUgY29tcG9uZW50cyBpbiBkZXBlbmRlbmN5IG1hbmFnZW1lbnQuCgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzNTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE9jdCAyNyAyMDo0MDoyNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzNTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNzIzQTUxMEEzMwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDI3IE9jdCAyMDE3IDIwOjQwOjI1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTg1MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBPY3QgMjAxNyAyMDo0MDoyNSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTc4MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBPY3QgMjAxNyAyMDo0MDoyNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk3NzEgaW52b2tlZCBieSB1aWQgOTkpOyAyNyBPY3QgMjAxNyAyMDo0MDoyNCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMjcgT2N0IDIwMTcgMjA6NDA6MjQgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgQUQ5ODhERkI3NzsgRnJpLCAyNyBPY3QgMjAxNyAyMDo0MDoyNCArMDAwMCAoVVRDKQpGcm9tOiBiZW50YXRoYW0gPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8Z2l0LXByLTI1LW1hdmVuLXNoYXJlZEBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc2hhcmVkIHB1bGwgcmVxdWVzdCAjMjU6IE1TSEFSRUQtNjY0OiBhZGQgaWNvIHRvIG5vbi1maWx0ZXJlZCBleHRlbnNpby4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KRGF0ZTogRnJpLCAyNyBPY3QgMjAxNyAyMDo0MDoyNCArMDAwMCAoVVRDKQoKR2l0SHViIHVzZXIgYmVudGF0aGFtIG9wZW5lZCBhIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXNoYXJlZC9wdWxsLzI1CgogICAgTVNIQVJFRC02NjQ6IGFkZCBpY28gdG8gbm9uLWZpbHRlcmVkIGV4dGVuc2lvbnMgbGlzdAoKICAgIEFkZCBpY28gdG8gdGhlIGRlZmF1bHQgbGlzdCBvZiBub24gZmlsdGVyZWQgZXh0ZW5zaW9ucy4KCllvdSBjYW4gbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3QgaW50byBhIEdpdCByZXBvc2l0b3J5IGJ5IHJ1bm5pbmc6CgogICAgJCBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vYmVudGF0aGFtL21hdmVuLXNoYXJlZCBmZWF0dXJlL01TSEFSRUQtNjY0LWljby1maWxlcy1ub25maWx0ZXJlZAoKQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHJldmlldyBhbmQgYXBwbHkgdGhlc2UgY2hhbmdlcyBhcyB0aGUgcGF0Y2ggYXQ6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zaGFyZWQvcHVsbC8yNS5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMjUKICAgIAotLS0tCmNvbW1pdCAzYjRkOTVkNjNkZjEwYTViMDlhOTMxZWI1NGZmYjg1NTU3ZTM5OGRlCkF1dGhvcjogQmVuIFRhdGhhbSA8YmVudGF0aGFtQG5hbm9tZXRyaWNzLmNhPgpEYXRlOiAgIDIwMTctMTAtMjdUMjA6MzY6MzdaCgogICAgTVNIQVJFRC02NjQ6IGFkZCBpY28gdG8gbm9uLWZpbHRlcmVkIGV4dGVuc2lvbnMgbGlzdAoKLS0tLQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NzM0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBEZWMgIDQgMTk6MzI6MzkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzM0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEYxQjhBMTdFMTIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAgNCBEZWMgMjAxNyAxOTozMjozOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDgwNDggaW52b2tlZCBieSB1aWQgNTAwKTsgNCBEZWMgMjAxNyAxOTozMjozOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzk2OSBpbnZva2VkIGJ5IHVpZCA1MDApOyA0IERlYyAyMDE3IDE5OjMyOjM4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzk1OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDQgRGVjIDIwMTcgMTk6MzI6MzggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDA0IERlYyAyMDE3IDE5OjMyOjM4ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDNBMDVGREZCRUU7IE1vbiwgIDQgRGVjIDIwMTcgMTk6MzI6MzggKzAwMDAgKFVUQykKRnJvbTogYmVuZ3Rzb2QgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8Z2l0LXByLTI2LW1hdmVuLWludGVncmF0aW9uLXRlc3RpbmdAZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLWludGVncmF0aW9uLXRlc3RpbmcgcHVsbCByZXF1ZXN0ICMyNjogW01ORy02Mjk4XSAzLjUuMjogQ2xhc3NOb3RGb3VuZEUuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IE1vbiwgIDQgRGVjIDIwMTcgMTk6MzI6MzggKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIGJlbmd0c29kIG9wZW5lZCBhIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWludGVncmF0aW9uLXRlc3RpbmcvcHVsbC8yNgoKICAgIFtNTkctNjI5OF0gMy41LjI6IENsYXNzTm90Rm91bmRFeGNlcHRpb24KCiAgICBUZXN0IGZvciBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL3B1bGwvMTM5CgpZb3UgY2FuIG1lcmdlIHRoaXMgcHVsbCByZXF1ZXN0IGludG8gYSBHaXQgcmVwb3NpdG9yeSBieSBydW5uaW5nOgoKICAgICQgZ2l0IHB1bGwgaHR0cHM6Ly9naXRodWIuY29tL2Jlbmd0c29kL21hdmVuLWludGVncmF0aW9uLXRlc3RpbmcgbWFzdGVyCgpBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gcmV2aWV3IGFuZCBhcHBseSB0aGVzZSBjaGFuZ2VzIGFzIHRoZSBwYXRjaCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWludGVncmF0aW9uLXRlc3RpbmcvcHVsbC8yNi5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMjYKICAgIAotLS0tCmNvbW1pdCAwMWJlNjZmMTY2YjJmZTYxY2Y5OTM1Y2MxZTViMWZjNjVlNWU3MjllCkF1dGhvcjogQmVuZ3QgU8O2ZGVyYmVyZyA8YmVuZ3Quc29kZXJiZXJnQHB1cnBsZXNjb3V0LnNlPgpEYXRlOiAgIDIwMTctMTItMDRUMTg6NDk6MTdaCgogICAgW01ORy02Mjk4XSAzLjUuMjogQ2xhc3NOb3RGb3VuZEV4Y2VwdGlvbgogICAgCiAgICBUZXN0IGZvciBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL3B1bGwvMTM5CgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM5NzMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIFNlcCAxMSAxMzoyNjoyMyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5NzMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNkIzMkUxOUIxNQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDEzOjI2OjIzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTUzNjQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgU2VwIDIwMTcgMTM6MjY6MjMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU1Mjc1IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDEzOjI2OjIyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTUyNjQgaW52b2tlZCBieSB1aWQgOTkpOyAxMSBTZXAgMjAxNyAxMzoyNjoyMiAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMTEgU2VwIDIwMTcgMTM6MjY6MjIgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgNzU5QzJGMzJBOTsgTW9uLCAxMSBTZXAgMjAxNyAxMzoyNjoyMCArMDAwMCAoVVRDKQpGcm9tOiBqdG5vcmQgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8Z2l0LXByLTI4LW1hdmVuLWVuZm9yY2VyQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1lbmZvcmNlciBwdWxsIHJlcXVlc3QgIzI4OiBbTUVORk9SQ0VSLTI4MV0gYWRkZWQgSVQgdG8gc2hvdyB0aGUgaXNzdWUuCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpEYXRlOiBNb24sIDExIFNlcCAyMDE3IDEzOjI2OjIwICswMDAwIChVVEMpCgpHaXRIdWIgdXNlciBqdG5vcmQgb3BlbmVkIGEgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZW5mb3JjZXIvcHVsbC8yOAoKICAgIFtNRU5GT1JDRVItMjgxXSBhZGRlZCBJVCB0byBzaG93IHRoZSBpc3N1ZS4KCiAgICBBZGRlZCBhbiBJVCB0byBkZW1vbnN0cmF0ZSBbTUVORk9SQ0VSLTI4MV0oaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NRU5GT1JDRVItMjgxKQogICAgCiAgICBGYWlscyB3aXRoIHRoZSBmb2xsb3dpbmcgd2hpY2ggaXMgc2xpZ2h0bHkgZGlmZmVyZW50IHRvIHdoYXQgaXMgb2JzZXJ2ZWQgaW4gdGhlIHJlYWwgcHJvamVjdCwgYnV0IGlzIGF0IGxlYXN0IGEgc3RhcnRlciBmb3IgMTAKICAgIAogICAgYGBgCiAgICBbRVJST1JdIC9vcmcvYXBhY2hlL21hdmVuL2l0cy9lbmZvcmNlci9tZW5mb3JjZXIyODEtcGFyZW50LyQlN0JyZXZpc2lvbiU3RC9tZW5mb3JjZXIyODEtcGFyZW50LSQlN0JyZXZpc2lvbiU3RC5wb20KICAgIGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb246IElsbGVnYWwgY2hhcmFjdGVyIGluIHBhdGggYXQgaW5kZXggMTEwOiBodHRwczovL1hYWFhYL29yZy9hcGFjaGUvbWF2ZW4vaXRzL2VuZm9yY2VyL20KICAgIGVuZm9yY2VyMjgxLXBhcmVudC8ke3JldmlzaW9ufS9tYXZlbi1tZXRhZGF0YS54bWwKICAgICAgICAgICAgYXQgamF2YS5uZXQuVVJJLmNyZWF0ZShVUkkuamF2YTo4NTIpCiAgICAgICAgICAgIGF0IG9yZy5hcGFjaGUubWF2ZW4ud2Fnb24ucHJvdmlkZXJzLmh0dHAuaHR0cGNsaWVudC5jbGllbnQubWV0aG9kcy5IdHRwR2V0Ljxpbml0PihIdHRwR2V0LmphdmE6NjkpCiAgICAgICAgICAgIGF0IG9yZy5hcGFjaGUubWF2ZW4ud2Fnb24ucHJvdmlkZXJzLmh0dHAuQWJzdHJhY3RIdHRwQ2xpZW50V2Fnb24uZmlsbElucHV0RGF0YShBYnN0cmFjdEh0dHBDbGllbnRXYWdvbi5qYXZhOjk3MikKICAgICAgICAgICAgYXQgb3JnLmFwYWNoZS5tYXZlbi53YWdvbi5wcm92aWRlcnMuaHR0cC5BYnN0cmFjdEh0dHBDbGllbnRXYWdvbi5maWxsSW5wdXREYXRhKEFic3RyYWN0SHR0cENsaWVudFdhZ29uLmphdmE6OTYyKQogICAgICAgICAgICBhdCBvcmcuYXBhY2hlLm1hdmVuLndhZ29uLlN0cmVhbVdhZ29uLmdldElucHV0U3RyZWFtKFN0cmVhbVdhZ29uLmphdmE6MTI2KQogICAgICAgICAgICBhdCBvcmcuYXBhY2hlLm1hdmVuLndhZ29uLlN0cmVhbVdhZ29uLmdldElmTmV3ZXIoU3RyZWFtV2Fnb24uamF2YTo4OCkKICAgICAgICAgICAgYXQgb3JnLmFwYWNoZS5tYXZlbi53YWdvbi5TdHJlYW1XYWdvbi5nZXQoU3RyZWFtV2Fnb24uamF2YTo2MSkKICAgICAgICAgICAgYXQgb3JnLmFwYWNoZS5tYXZlbi5yZXBvc2l0b3J5LmxlZ2FjeS5EZWZhdWx0V2Fnb25NYW5hZ2VyLmdldFJlbW90ZUZpbGUoRGVmYXVsdFdhZ29uTWFuYWdlci5qYXZhOjQxMykKICAgICAgICAgICAgYXQgb3JnLmFwYWNoZS5tYXZlbi5yZXBvc2l0b3J5LmxlZ2FjeS5EZWZhdWx0V2Fnb25NYW5hZ2VyLmdldEFydGlmYWN0TWV0YWRhdGEoRGVmYXVsdFdhZ29uTWFuYWdlci5qYXZhOjIzMykKICAgICAgICAgICAgYXQgb3JnLmFwYWNoZS5tYXZlbi5hcnRpZmFjdC5yZXBvc2l0b3J5Lm1ldGFkYXRhLkRlZmF1bHRSZXBvc2l0b3J5TWV0YWRhdGFNYW5hZ2VyLnJlc29sdmUoRGVmYXVsdFJlcG9zaXRvcnlNZXRhZGF0YU1hbmFnZXIuamF2YToxMzIpCiAgICAgICAgICAgIGF0IG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QucmVwb3NpdG9yeS5tZXRhZGF0YS5EZWZhdWx0UmVwb3NpdG9yeU1ldGFkYXRhTWFuYWdlci5yZXNvbHZlKERlZmF1bHRSZXBvc2l0b3J5TWV0YWRhdGFNYW5hZ2VyLmphdmE6NzEpCiAgICAgICAgICAgIGF0IG9yZy5jb2RlaGF1cy5tb2pvLm1ybS5tYXZlbi5Qcm94eUFydGlmYWN0U3RvcmUuZ2V0TWV0YWRhdGEoUHJveHlBcnRpZmFjdFN0b3JlLmphdmE6NDgwKQogICAgICAgICAgICBhdCBvcmcuY29kZWhhdXMubW9qby5tcm0ubWF2ZW4uUHJveHlBcnRpZmFjdFN0b3JlLmdldE1ldGFkYXRhTGFzdE1vZGlmaWVkKFByb3h5QXJ0aWZhY3RTdG9yZS5qYXZhOjUzNikKICAgICAgICAgICAgYXQgb3JnLmNvZGVoYXVzLm1vam8ubXJtLmltcGwubWF2ZW4uQ29tcG9zaXRlQXJ0aWZhY3RTdG9yZS5nZXRNZXRhZGF0YUxhc3RNb2RpZmllZChDb21wb3NpdGVBcnRpZmFjdFN0b3JlLmphdmE6MzM5KQogICAgICAgICAgICBhdCBvcmcuY29kZWhhdXMubW9qby5tcm0uaW1wbC5tYXZlbi5BcnRpZmFjdFN0b3JlRmlsZVN5c3RlbS5saXN0RW50cmllcyhBcnRpZmFjdFN0b3JlRmlsZVN5c3RlbS5qYXZhOjE0NykKICAgICAgICAgICAgYXQgb3JnLmNvZGVoYXVzLm1vam8ubXJtLmltcGwuZGlnZXN0LkF1dG9EaWdlc3RGaWxlU3lzdGVtLmxpc3RFbnRyaWVzKEF1dG9EaWdlc3RGaWxlU3lzdGVtLmphdmE6MTAwKQogICAgICAgICAgICBhdCBvcmcuY29kZWhhdXMubW9qby5tcm0uYXBpLkJhc2VGaWxlU3lzdGVtLmdldChCYXNlRmlsZVN5c3RlbS5qYXZhOjg5KQogICAgICAgICAgICBhdCBvcmcuY29kZWhhdXMubW9qby5tcm0uaW1wbC5kaWdlc3QuQXV0b0RpZ2VzdEZpbGVTeXN0ZW0uZ2V0KEF1dG9EaWdlc3RGaWxlU3lzdGVtLmphdmE6MTg1KQogICAgICAgICAgICBhdCBvcmcuY29kZWhhdXMubW9qby5tcm0uc2VydmxldC5GaWxlU3lzdGVtU2VydmxldC5kb0dldChGaWxlU3lzdGVtU2VydmxldC5qYXZhOjE1NykKICAgICAgICAgICAgYXQgamF2YXguc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0LnNlcnZpY2UoSHR0cFNlcnZsZXQuamF2YTo3MDcpCiAgICAgICAgICAgIGF0IGphdmF4LnNlcnZsZXQuaHR0cC5IdHRwU2VydmxldC5zZXJ2aWNlKEh0dHBTZXJ2bGV0LmphdmE6ODIwKQogICAgICAgICAgICBhdCBvcmcubW9ydGJheS5qZXR0eS5zZXJ2bGV0LlNlcnZsZXRIb2xkZXIuaGFuZGxlKFNlcnZsZXRIb2xkZXIuamF2YTo0ODcpCiAgICAgICAgICAgIGF0IG9yZy5tb3J0YmF5LmpldHR5LnNlcnZsZXQuU2VydmxldEhhbmRsZXIuaGFuZGxlKFNlcnZsZXRIYW5kbGVyLmphdmE6MzYyKQogICAgICAgICAgICBhdCBvcmcubW9ydGJheS5qZXR0eS5zZXJ2bGV0LlNlc3Npb25IYW5kbGVyLmhhbmRsZShTZXNzaW9uSGFuZGxlci5qYXZhOjE4MSkKICAgICAgICAgICAgYXQgb3JnLm1vcnRiYXkuamV0dHkuaGFuZGxlci5Db250ZXh0SGFuZGxlci5oYW5kbGUoQ29udGV4dEhhbmRsZXIuamF2YTo3MTIpCiAgICAgICAgICAgIGF0IG9yZy5tb3J0YmF5LmpldHR5LmhhbmRsZXIuSGFuZGxlcldyYXBwZXIuaGFuZGxlKEhhbmRsZXJXcmFwcGVyLmphdmE6MTM5KQogICAgICAgICAgICBhdCBvcmcubW9ydGJheS5qZXR0eS5TZXJ2ZXIuaGFuZGxlKFNlcnZlci5qYXZhOjMxMykKICAgICAgICAgICAgYXQgb3JnLm1vcnRiYXkuamV0dHkuSHR0cENvbm5lY3Rpb24uaGFuZGxlUmVxdWVzdChIdHRwQ29ubmVjdGlvbi5qYXZhOjUwNikKICAgICAgICAgICAgYXQgb3JnLm1vcnRiYXkuamV0dHkuSHR0cENvbm5lY3Rpb24kUmVxdWVzdEhhbmRsZXIuaGVhZGVyQ29tcGxldGUoSHR0cENvbm5lY3Rpb24uamF2YTo4MzApCiAgICAgICAgICAgIGF0IG9yZy5tb3J0YmF5LmpldHR5Lkh0dHBQYXJzZXIucGFyc2VOZXh0KEh0dHBQYXJzZXIuamF2YTo1MTQpCiAgICAgICAgICAgIGF0IG9yZy5tb3J0YmF5LmpldHR5Lkh0dHBQYXJzZXIucGFyc2VBdmFpbGFibGUoSHR0cFBhcnNlci5qYXZhOjIxMSkKICAgICAgICAgICAgYXQgb3JnLm1vcnRiYXkuamV0dHkuSHR0cENvbm5lY3Rpb24uaGFuZGxlKEh0dHBDb25uZWN0aW9uLmphdmE6MzgxKQogICAgICAgICAgICBhdCBvcmcubW9ydGJheS5qZXR0eS5iaW8uU29ja2V0Q29ubmVjdG9yJENvbm5lY3Rpb24ucnVuKFNvY2tldENvbm5lY3Rvci5qYXZhOjIyNykKICAgICAgICAgICAgYXQgb3JnLm1vcnRiYXkudGhyZWFkLkJvdW5kZWRUaHJlYWRQb29sJFBvb2xUaHJlYWQucnVuKEJvdW5kZWRUaHJlYWRQb29sLmphdmE6NDQyKQogICAgQ2F1c2VkIGJ5OiBqYXZhLm5ldC5VUklTeW50YXhFeGNlcHRpb246IElsbGVnYWwgY2hhcmFjdGVyIGluIHBhdGggYXQgaW5kZXggMTEwOiBodHRwczovL1hYWFhYWC9vcmcvYXBhY2hlL21hdmVuL2l0cy9lbmZvcmMKICAgIGVyL21lbmZvcmNlcjI4MS1wYXJlbnQvJHtyZXZpc2lvbn0vbWF2ZW4tbWV0YWRhdGEueG1sCiAgICAgICAgICAgIGF0IGphdmEubmV0LlVSSSRQYXJzZXIuZmFpbChVUkkuamF2YToyODQ4KQogICAgICAgICAgICBhdCBqYXZhLm5ldC5VUkkkUGFyc2VyLmNoZWNrQ2hhcnMoVVJJLmphdmE6MzAyMSkKICAgICAgICAgICAgYXQgamF2YS5uZXQuVVJJJFBhcnNlci5wYXJzZUhpZXJhcmNoaWNhbChVUkkuamF2YTozMTA1KQogICAgICAgICAgICBhdCBqYXZhLm5ldC5VUkkkUGFyc2VyLnBhcnNlKFVSSS5qYXZhOjMwNTMpCiAgICAgICAgICAgIGF0IGphdmEubmV0LlVSSS48aW5pdD4oVVJJLmphdmE6NTg4KQogICAgICAgICAgICBhdCBqYXZhLm5ldC5VUkkuY3JlYXRlKFVSSS5qYXZhOjg1MCkKICAgICAgICAgICAgLi4uIDMzIG1vcmUKICAgIFtJTkZPXSAuLkZBSUxFRCAoNS43IHMpCiAgICBgYGAKCllvdSBjYW4gbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3QgaW50byBhIEdpdCByZXBvc2l0b3J5IGJ5IHJ1bm5pbmc6CgogICAgJCBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vanRub3JkL21hdmVuLWVuZm9yY2VyIE1FTkZPUkNFUi0yODEKCkFsdGVybmF0aXZlbHkgeW91IGNhbiByZXZpZXcgYW5kIGFwcGx5IHRoZXNlIGNoYW5nZXMgYXMgdGhlIHBhdGNoIGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZW5mb3JjZXIvcHVsbC8yOC5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMjgKICAgIAotLS0tCmNvbW1pdCBmNjhmNzQxMjI3OGUzYTI3NDA0NDU3MzIzMjNkYjMxZWY0YzNjZWFhCkF1dGhvcjogSmFtZXMgTm9yZCA8am5vcmQrZ2l0aHViQGNsb3VkYmVlcy5jb20+CkRhdGU6ICAgMjAxNy0wOS0xMVQxMzoyMDoxOFoKCiAgICBbTUVORk9SQ0VSLTI4MV0gYWRkZWQgSVQgdG8gc2hvdyB0aGUgaXNzdWUuCgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQyMzItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE9jdCAxMyAxMTo1MjowNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyMzItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOUJFMUYxMEQ1NwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDEzIE9jdCAyMDE3IDExOjUyOjA1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjg5NDYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTMgT2N0IDIwMTcgMTE6NTI6MDUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI4ODUxIGludm9rZWQgYnkgdWlkIDUwMCk7IDEzIE9jdCAyMDE3IDExOjUyOjA1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjg4MzUgaW52b2tlZCBieSB1aWQgOTkpOyAxMyBPY3QgMjAxNyAxMTo1MjowNCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMTMgT2N0IDIwMTcgMTE6NTI6MDQgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgQ0YxNTFERkFERTsgRnJpLCAxMyBPY3QgMjAxNyAxMTo1MjowNCArMDAwMCAoVVRDKQpGcm9tOiBpbGVsZXIgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8Z2l0LXByLTM1LW1hdmVuLXdhZ29uQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi13YWdvbiBwdWxsIHJlcXVlc3QgIzM1OiBuZXcgZmVhdHVyZTogc3VwcG9ydCBzdHJlYW0gcmVhZCBpbnRlcmZhY2UKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IEZyaSwgMTMgT2N0IDIwMTcgMTE6NTI6MDQgKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIGlsZWxlciBvcGVuZWQgYSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi13YWdvbi9wdWxsLzM1CgogICAgbmV3IGZlYXR1cmU6IHN1cHBvcnQgc3RyZWFtIHJlYWQgaW50ZXJmYWNlCgogICAgCgpZb3UgY2FuIG1lcmdlIHRoaXMgcHVsbCByZXF1ZXN0IGludG8gYSBHaXQgcmVwb3NpdG9yeSBieSBydW5uaW5nOgoKICAgICQgZ2l0IHB1bGwgaHR0cHM6Ly9naXRodWIuY29tL2lsZWxlci9tYXZlbi13YWdvbiBtYXN0ZXIKCkFsdGVybmF0aXZlbHkgeW91IGNhbiByZXZpZXcgYW5kIGFwcGx5IHRoZXNlIGNoYW5nZXMgYXMgdGhlIHBhdGNoIGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4td2Fnb24vcHVsbC8zNS5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjMzUKICAgIAotLS0tCmNvbW1pdCAwYzk5MTQwOWJhZDJlODRmNDdlMjM3MDcxNjgxYTZjMjA1MDQxNDRiCkF1dGhvcjogaWxlbGVyIDxpbGVsZXJAcXEuY29tPgpEYXRlOiAgIDIwMTctMTAtMTNUMTE6Mzc6MDFaCgogICAgbmV3IGZlYXR1cmU6IHN1cHBvcnQgc3RyZWFtIHJlYWQgaW50ZXJmYWNlCgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0NDgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE5vdiAgNyAxMjozODozNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0NDgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOTM2NUMxN0Q5OAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsICA3IE5vdiAyMDE3IDEyOjM4OjM1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTQ3MzYgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBOb3YgMjAxNyAxMjozODozNSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTQ2NTkgaW52b2tlZCBieSB1aWQgNTAwKTsgNyBOb3YgMjAxNyAxMjozODozNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE0NjQ4IGludm9rZWQgYnkgdWlkIDk5KTsgNyBOb3YgMjAxNyAxMjozODozNCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMDcgTm92IDIwMTcgMTI6Mzg6MzQgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgQ0Q0MURERkMyRjsgVHVlLCAgNyBOb3YgMjAxNyAxMjozODozNCArMDAwMCAoVVRDKQpGcm9tOiBEb25ueURlcHAgPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8Z2l0LXByLTM2LW1hdmVuLXdhZ29uQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi13YWdvbiBwdWxsIHJlcXVlc3QgIzM2OiBbV0FHT04tNDUyXSBSZWxheGVkVHJ1c3RTdHJhdGVneSBoYW5kbGUgbXVsdGlwLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpEYXRlOiBUdWUsICA3IE5vdiAyMDE3IDEyOjM4OjM0ICswMDAwIChVVEMpCgpHaXRIdWIgdXNlciBEb25ueURlcHAgb3BlbmVkIGEgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4td2Fnb24vcHVsbC8zNgoKICAgIFtXQUdPTi00NTJdIFJlbGF4ZWRUcnVzdFN0cmF0ZWd5IGhhbmRsZSBtdWx0aXBsZSBjZXJ0aWZpY2F0ZXMKCiAgICBJZ25vcmluZyBzc2wgdmFsaWRpdHkgb2YgZGF0ZXMgaXMgd29ya2luZywgYnV0IGluIG15IGNhc2UgdGhlIHNlcnZlcgogICAgcmV0dXJucyAzIChleHBpcmVkKSBjZXJ0aWZpY2F0ZXMuCiAgICBXaXRoIHRoYXQgUmVsYXhlZFRydXN0U3RyYXRlZ3kgYWx3YXlzIHJldHVybmVkIGZhbHNlLgoKWW91IGNhbiBtZXJnZSB0aGlzIHB1bGwgcmVxdWVzdCBpbnRvIGEgR2l0IHJlcG9zaXRvcnkgYnkgcnVubmluZzoKCiAgICAkIGdpdCBwdWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9Eb25ueURlcHAvbWF2ZW4td2Fnb24gbWFzdGVyCgpBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gcmV2aWV3IGFuZCBhcHBseSB0aGVzZSBjaGFuZ2VzIGFzIHRoZSBwYXRjaCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXdhZ29uL3B1bGwvMzYucGF0Y2gKClRvIGNsb3NlIHRoaXMgcHVsbCByZXF1ZXN0LCBtYWtlIGEgY29tbWl0IHRvIHlvdXIgbWFzdGVyL3RydW5rIGJyYW5jaAp3aXRoIChhdCBsZWFzdCkgdGhlIGZvbGxvd2luZyBpbiB0aGUgY29tbWl0IG1lc3NhZ2U6CgogICAgVGhpcyBjbG9zZXMgIzM2CiAgICAKLS0tLQpjb21taXQgZjgyNWE4NTVjNTg1NzU4MDhkMjE1YTM3MzU3YmE5MGQzOGZmMThhYwpBdXRob3I6IEFuZHJlIERvZWJsaXR6IDxhZG9lYmxpdHpAZ29vZ2xlbWFpbC5jb20+CkRhdGU6ICAgMjAxNy0xMS0wN1QxMjozNzo0M1oKCiAgICBbV0FHT04tNDUyXSBSZWxheGVkVHJ1c3RTdHJhdGVneSBoYW5kbGUgbXVsdGlwbGUgY2VydGlmaWNhdGVzCiAgICAKICAgIElnbm9yaW5nIHNzbCB2YWxpZGl0eSBvZiBkYXRlcyBpcyB3b3JraW5nLCBidXQgaW4gbXkgY2FzZSB0aGUgc2VydmVyCiAgICByZXR1cm5zIDMgKGV4cGlyZWQpIGNlcnRpZmljYXRlcy4KICAgIFdpdGggdGhhdCBSZWxheGVkVHJ1c3RTdHJhdGVneSBhbHdheXMgcmV0dXJuZWQgZmFsc2UuCgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3MzYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIERlYyAgNSAxMToxMDo1OSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3MzYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMDgzOTMxNzQ5RAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsICA1IERlYyAyMDE3IDExOjEwOjU5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjAzODEgaW52b2tlZCBieSB1aWQgNTAwKTsgNSBEZWMgMjAxNyAxMToxMDo1OCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjAyOTQgaW52b2tlZCBieSB1aWQgNTAwKTsgNSBEZWMgMjAxNyAxMToxMDo1OCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYwMjgzIGludm9rZWQgYnkgdWlkIDk5KTsgNSBEZWMgMjAxNyAxMToxMDo1OCAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMDUgRGVjIDIwMTcgMTE6MTA6NTggKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgM0QyRDVGMTdEQjsgVHVlLCAgNSBEZWMgMjAxNyAxMToxMDo1OCArMDAwMCAoVVRDKQpGcm9tOiBybWFubmlidWNhdSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDxnaXQtcHItMzctbWF2ZW4td2Fnb25AZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXdhZ29uIHB1bGwgcmVxdWVzdCAjMzc6IG1ha2luZyB0aGUgcmV0cnkgaGFuZGxlIG9mIGh0dHAgY2xpZW50IGNvbmZpZ3UuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IFR1ZSwgIDUgRGVjIDIwMTcgMTE6MTA6NTggKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIHJtYW5uaWJ1Y2F1IG9wZW5lZCBhIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXdhZ29uL3B1bGwvMzcKCiAgICBtYWtpbmcgdGhlIHJldHJ5IGhhbmRsZSBvZiBodHRwIGNsaWVudCBjb25maWd1cmFibGUKCiAgICAKCllvdSBjYW4gbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3QgaW50byBhIEdpdCByZXBvc2l0b3J5IGJ5IHJ1bm5pbmc6CgogICAgJCBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vcm1hbm5pYnVjYXUvbWF2ZW4td2Fnb24gZmIvY29uZmlndXJhYmxlLWh0dHAtcmV0cnktcG9saWN5CgpBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gcmV2aWV3IGFuZCBhcHBseSB0aGVzZSBjaGFuZ2VzIGFzIHRoZSBwYXRjaCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXdhZ29uL3B1bGwvMzcucGF0Y2gKClRvIGNsb3NlIHRoaXMgcHVsbCByZXF1ZXN0LCBtYWtlIGEgY29tbWl0IHRvIHlvdXIgbWFzdGVyL3RydW5rIGJyYW5jaAp3aXRoIChhdCBsZWFzdCkgdGhlIGZvbGxvd2luZyBpbiB0aGUgY29tbWl0IG1lc3NhZ2U6CgogICAgVGhpcyBjbG9zZXMgIzM3CiAgICAKLS0tLQpjb21taXQgYzgzOTk3ZDcxMmQzMWEyMTQ4ZTIzYWFhZTNlNTYwNGY0NDUyZjg4OQpBdXRob3I6IFJvbWFpbiBNYW5uaS1CdWNhdSA8cm1hbm5pYnVjYXVAZ21haWwuY29tPgpEYXRlOiAgIDIwMTctMTItMDVUMTE6MTA6MzRaCgogICAgbWFraW5nIHRoZSByZXRyeSBoYW5kbGUgb2YgaHR0cCBjbGllbnQgY29uZmlndXJhYmxlCgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQyMzYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE9jdCAxNCAwMTo0NzozOCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyMzYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOEMzOUExMDBBNgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDE0IE9jdCAyMDE3IDAxOjQ3OjM4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTYwOTAgaW52b2tlZCBieSB1aWQgNTAwKTsgMTQgT2N0IDIwMTcgMDE6NDc6MzggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk1OTgyIGludm9rZWQgYnkgdWlkIDUwMCk7IDE0IE9jdCAyMDE3IDAxOjQ3OjM3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTU5NzEgaW52b2tlZCBieSB1aWQgOTkpOyAxNCBPY3QgMjAxNyAwMTo0NzozNyAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMTQgT2N0IDIwMTcgMDE6NDc6MzcgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgQzhERjZERkIzMTsgU2F0LCAxNCBPY3QgMjAxNyAwMTo0NzozNiArMDAwMCAoVVRDKQpGcm9tOiBzcHlodW50ZXI5OSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDxnaXQtcHItNC1tYXZlbi1kb3hpYUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tZG94aWEgcHVsbCByZXF1ZXN0ICM0OiBET1hJQS01NjIgaW5pdGlhbCBjb21taXQgZm9yIHRvYyBzdXBwb3J0LCB0aXRsZS4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KRGF0ZTogU2F0LCAxNCBPY3QgMjAxNyAwMTo0NzozNiArMDAwMCAoVVRDKQoKR2l0SHViIHVzZXIgc3B5aHVudGVyOTkgb3BlbmVkIGEgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tZG94aWEvcHVsbC80CgogICAgRE9YSUEtNTYyIGluaXRpYWwgY29tbWl0IGZvciB0b2Mgc3VwcG9ydCwgdGl0bGUgcGFnZSB1cGRhdGVzCgogICAgCgpZb3UgY2FuIG1lcmdlIHRoaXMgcHVsbCByZXF1ZXN0IGludG8gYSBHaXQgcmVwb3NpdG9yeSBieSBydW5uaW5nOgoKICAgICQgZ2l0IHB1bGwgaHR0cHM6Ly9naXRodWIuY29tL3NweWh1bnRlcjk5L21hdmVuLWRveGlhIHRydW5rCgpBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gcmV2aWV3IGFuZCBhcHBseSB0aGVzZSBjaGFuZ2VzIGFzIHRoZSBwYXRjaCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRveGlhL3B1bGwvNC5wYXRjaAoKVG8gY2xvc2UgdGhpcyBwdWxsIHJlcXVlc3QsIG1ha2UgYSBjb21taXQgdG8geW91ciBtYXN0ZXIvdHJ1bmsgYnJhbmNoCndpdGggKGF0IGxlYXN0KSB0aGUgZm9sbG93aW5nIGluIHRoZSBjb21taXQgbWVzc2FnZToKCiAgICBUaGlzIGNsb3NlcyAjNAogICAgCi0tLS0KY29tbWl0IDZiZjI5NzVhZGYyMjkxNWIxMjQ5M2U3MmNlNjU4ZmYwNzAxNDY4MzgKQXV0aG9yOiBBbGV4IE8nUmVlIDxhbGV4b3JlZUBhcGFjaGUub3JnPgpEYXRlOiAgIDIwMTctMTAtMTRUMDE6NDc6MThaCgogICAgRE9YSUEtNTYyIGluaXRpYWwgY29tbWl0IGZvciB0b2Mgc3VwcG9ydCwgdGl0bGUgcGFnZSB1cGRhdGVzCgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzMDctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE9jdCAyMiAxMTowMDoyMiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzMDctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOEY1RTIxMDZGNwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDIyIE9jdCAyMDE3IDExOjAwOjIyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTA0MzYgaW52b2tlZCBieSB1aWQgNTAwKTsgMjIgT2N0IDIwMTcgMTE6MDA6MjIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkwMzYwIGludm9rZWQgYnkgdWlkIDUwMCk7IDIyIE9jdCAyMDE3IDExOjAwOjIyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTAzNDkgaW52b2tlZCBieSB1aWQgOTkpOyAyMiBPY3QgMjAxNyAxMTowMDoyMSAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMjIgT2N0IDIwMTcgMTE6MDA6MjEgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgQ0ZFNUNERkM4QjsgU3VuLCAyMiBPY3QgMjAxNyAxMTowMDoyMSArMDAwMCAoVVRDKQpGcm9tOiB2YWRlZyA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDxnaXQtcHItNC1tYXZlbi1wbHVnaW4tdGVzdGluZ0BnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tcGx1Z2luLXRlc3RpbmcgcHVsbCByZXF1ZXN0ICM0OiBBZGRlZCBzdXBwb3J0IGZvciBwbHVnaW5zIHdpdGhvdXQgY29uZi4uLgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW4KRGF0ZTogU3VuLCAyMiBPY3QgMjAxNyAxMTowMDoyMSArMDAwMCAoVVRDKQoKR2l0SHViIHVzZXIgdmFkZWcgb3BlbmVkIGEgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2luLXRlc3RpbmcvcHVsbC80CgogICAgQWRkZWQgc3VwcG9ydCBmb3IgcGx1Z2lucyB3aXRob3V0IGNvbmZpZ3VyYXRpb24uCgogICAgUGx1Z2luIGNvbmZpZ3VyYXRpb24gbWF5IGhhdmUgbm8gYDxjb25maWd1cmF0aW9uPmAgdGFnLiBUaGlzIFBSIGFkZHMgc3VwcG9ydCBmb3Igc3VjaCBraW5kIG9mIGNvbmZpZ3VyYXRpb25zIGFzIHdlbGwuCgpZb3UgY2FuIG1lcmdlIHRoaXMgcHVsbCByZXF1ZXN0IGludG8gYSBHaXQgcmVwb3NpdG9yeSBieSBydW5uaW5nOgoKICAgICQgZ2l0IHB1bGwgaHR0cHM6Ly9naXRodWIuY29tL3ZhZGVnL21hdmVuLXBsdWdpbi10ZXN0aW5nIGZlYXR1cmUvb3B0aW9uYWwtY29uZmlndXJhdGlvbi10YWcKCkFsdGVybmF0aXZlbHkgeW91IGNhbiByZXZpZXcgYW5kIGFwcGx5IHRoZXNlIGNoYW5nZXMgYXMgdGhlIHBhdGNoIGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2luLXRlc3RpbmcvcHVsbC80LnBhdGNoCgpUbyBjbG9zZSB0aGlzIHB1bGwgcmVxdWVzdCwgbWFrZSBhIGNvbW1pdCB0byB5b3VyIG1hc3Rlci90cnVuayBicmFuY2gKd2l0aCAoYXQgbGVhc3QpIHRoZSBmb2xsb3dpbmcgaW4gdGhlIGNvbW1pdCBtZXNzYWdlOgoKICAgIFRoaXMgY2xvc2VzICM0CiAgICAKLS0tLQpjb21taXQgODQ5Y2NmMWJjZGZiNzlkNGVmZDRkMWUyYTI4ZDQ0ZGRlOTUyOTM4NgpBdXRob3I6IFZhZGVnIDwweHZhZGVnQGdtYWlsLmNvbT4KRGF0ZTogICAyMDE3LTEwLTIyVDEwOjU4OjQxWgoKICAgIEFkZGVkIHN1cHBvcnQgZm9yIHBsdWdpbnMgd2l0aG91dCBjb25maWd1cmF0aW9uLgoKLS0tLQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MjYzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBPY3QgMTkgMDA6MDg6MDQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjYzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEM2Qjk1MTAxREQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAxOSBPY3QgMjAxNyAwMDowODowNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDY4NzIyIGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IE9jdCAyMDE3IDAwOjA4OjA0IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2ODU5NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOSBPY3QgMjAxNyAwMDowODowNCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY4NTgyIGludm9rZWQgYnkgdWlkIDk5KTsgMTkgT2N0IDIwMTcgMDA6MDg6MDQgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDE5IE9jdCAyMDE3IDAwOjA4OjA0ICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDJBMDY3REZBMEM7IFRodSwgMTkgT2N0IDIwMTcgMDA6MDg6MDIgKzAwMDAgKFVUQykKRnJvbTogaGF6ZW5kYXogPGdpdEBnaXQuYXBhY2hlLm9yZz4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClJlcGx5LVRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNZXNzYWdlLUlEOiA8Z2l0LXByLTU0LW1hdmVuLXNjbUBnaXQuYXBhY2hlLm9yZz4KU3ViamVjdDogW0dpdEh1Yl0gbWF2ZW4tc2NtIHB1bGwgcmVxdWVzdCAjNTQ6IFtqZ2l0XSBSYWlzZSB0byBsYXN0IHZlcnNpb24gb2YgamF2YSA3IHJlbGVhc2UKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IFRodSwgMTkgT2N0IDIwMTcgMDA6MDg6MDIgKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIGhhemVuZGF6IG9wZW5lZCBhIHB1bGwgcmVxdWVzdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXNjbS9wdWxsLzU0CgogICAgW2pnaXRdIFJhaXNlIHRvIGxhc3QgdmVyc2lvbiBvZiBqYXZhIDcgcmVsZWFzZQoKICAgIFRoaXMgcmVxdWlyZWQgdXBkYXRpbmcgdmFyaW91cyBwb3J0aW9ucyB0byBqYXZhIDcgc28gSSBzdXNwZWN0IGl0IHdvdWxkIG1ha2UgbW9yZSBzZW5zZSB0byBqdXN0IHVwZ3JhZGUgZW50aXJlbHkgdG8gamF2YSA3LgoKWW91IGNhbiBtZXJnZSB0aGlzIHB1bGwgcmVxdWVzdCBpbnRvIGEgR2l0IHJlcG9zaXRvcnkgYnkgcnVubmluZzoKCiAgICAkIGdpdCBwdWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXplbmRhei9tYXZlbi1zY20gbWFzdGVyCgpBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gcmV2aWV3IGFuZCBhcHBseSB0aGVzZSBjaGFuZ2VzIGFzIHRoZSBwYXRjaCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXNjbS9wdWxsLzU0LnBhdGNoCgpUbyBjbG9zZSB0aGlzIHB1bGwgcmVxdWVzdCwgbWFrZSBhIGNvbW1pdCB0byB5b3VyIG1hc3Rlci90cnVuayBicmFuY2gKd2l0aCAoYXQgbGVhc3QpIHRoZSBmb2xsb3dpbmcgaW4gdGhlIGNvbW1pdCBtZXNzYWdlOgoKICAgIFRoaXMgY2xvc2VzICM1NAogICAgCi0tLS0KY29tbWl0IGE4MWIwYzgyNDU3ODQ5MjUzOGYwNTkyMTcyMmQzMjVmNTg2ZDEzYzQKQXV0aG9yOiBKZXJlbXkgTGFuZGlzIDxqZXJlbXlsYW5kaXNAaG90bWFpbC5jb20+CkRhdGU6ICAgMjAxNy0xMC0xN1QyMjoxNTo0NFoKCiAgICBbamdpdF0gUmFpc2UgdG8gbGFzdCB2ZXJzaW9uIG9mIGphdmEgNyByZWxlYXNlCgotLS0tCgoKLS0tCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzMjktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIE9jdCAyNSAxMDowMDo0NyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzMjktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMzhCNDQxNzZBMAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDI1IE9jdCAyMDE3IDEwOjAwOjQ3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTQ0NzUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjUgT2N0IDIwMTcgMTA6MDA6NDYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE0NDA4IGludm9rZWQgYnkgdWlkIDUwMCk7IDI1IE9jdCAyMDE3IDEwOjAwOjQ2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTQzOTcgaW52b2tlZCBieSB1aWQgOTkpOyAyNSBPY3QgMjAxNyAxMDowMDo0NiAtMDAwMApSZWNlaXZlZDogZnJvbSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoSEVMTyBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMjMpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMjUgT2N0IDIwMTcgMTA6MDA6NDYgKzAwMDAKUmVjZWl2ZWQ6IGJ5IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcsIGZyb20gdXNlcmlkIDMzKQoJaWQgMTZBRUFERkJDNjsgV2VkLCAyNSBPY3QgMjAxNyAxMDowMDo0NCArMDAwMCAoVVRDKQpGcm9tOiB0aGVpdCA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDxnaXQtcHItNTUtbWF2ZW4tc2NtQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zY20gcHVsbCByZXF1ZXN0ICM1NTogRml4IGZvciBTQ00tODA1CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpEYXRlOiBXZWQsIDI1IE9jdCAyMDE3IDEwOjAwOjQ0ICswMDAwIChVVEMpCgpHaXRIdWIgdXNlciB0aGVpdCBvcGVuZWQgYSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zY20vcHVsbC81NQoKICAgIEZpeCBmb3IgU0NNLTgwNQoKICAgIFRoaXMgcHVsbCByZXF1ZXN0IGFkZHMgc3VwcG9ydCBmb3IgdGhlIFNWTiAtLXBpbi1leHRlcm5hbHMgb3B0aW9uIGluIGNvcHkgY29tbWFuZHM7IHNlZSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL1NDTS04MDUKCllvdSBjYW4gbWVyZ2UgdGhpcyBwdWxsIHJlcXVlc3QgaW50byBhIEdpdCByZXBvc2l0b3J5IGJ5IHJ1bm5pbmc6CgogICAgJCBnaXQgcHVsbCBodHRwczovL2dpdGh1Yi5jb20vdGhlaXQvbWF2ZW4tc2NtIFNDTS04MDUKCkFsdGVybmF0aXZlbHkgeW91IGNhbiByZXZpZXcgYW5kIGFwcGx5IHRoZXNlIGNoYW5nZXMgYXMgdGhlIHBhdGNoIGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc2NtL3B1bGwvNTUucGF0Y2gKClRvIGNsb3NlIHRoaXMgcHVsbCByZXF1ZXN0LCBtYWtlIGEgY29tbWl0IHRvIHlvdXIgbWFzdGVyL3RydW5rIGJyYW5jaAp3aXRoIChhdCBsZWFzdCkgdGhlIGZvbGxvd2luZyBpbiB0aGUgY29tbWl0IG1lc3NhZ2U6CgogICAgVGhpcyBjbG9zZXMgIzU1CiAgICAKLS0tLQpjb21taXQgYjJjYmE3MTc2NmNlZjY2MDZhYWJhNzhkM2Q4MzdiMDY4MWFkMGQ4ZgpBdXRob3I6IFRob3JzdGVuIEhlaXQgPHRoZWl0QGdteC5kZT4KRGF0ZTogICAyMDE3LTEwLTI1VDA4OjExOjI2WgoKICAgIEZpeCBmb3IgU0NNLTgwNToKICAgIEFkZCBTVk4gLS1waW4tZXh0ZXJuYWxzIG9wdGlvbiB0byBjb3B5IGNvbW1hbmQgaW4gVGFnIG9wZXJhdGlvbnMKCi0tLS0KCgotLS0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDU2Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgTm92IDIyIDE1OjU0OjI0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDU2Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA0RTMzRDE3QTEzCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMjIgTm92IDIwMTcgMTU6NTQ6MjQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1NDY0NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMiBOb3YgMjAxNyAxNTo1NDoyNCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTQ1NTQgaW52b2tlZCBieSB1aWQgNTAwKTsgMjIgTm92IDIwMTcgMTU6NTQ6MjMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NDU0MyBpbnZva2VkIGJ5IHVpZCA5OSk7IDIyIE5vdiAyMDE3IDE1OjU0OjIzIC0wMDAwClJlY2VpdmVkOiBmcm9tIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnIChIRUxPIGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4yMykKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAyMiBOb3YgMjAxNyAxNTo1NDoyMyArMDAwMApSZWNlaXZlZDogYnkgZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZywgZnJvbSB1c2VyaWQgMzMpCglpZCA5MjQ3OUU5NDU4OyBXZWQsIDIyIE5vdiAyMDE3IDE1OjU0OjIyICswMDAwIChVVEMpCkZyb206IGFydGVhbSA8Z2l0QGdpdC5hcGFjaGUub3JnPgpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVwbHktVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCk1lc3NhZ2UtSUQ6IDxnaXQtcHItNTYtbWF2ZW4tc2NtQGdpdC5hcGFjaGUub3JnPgpTdWJqZWN0OiBbR2l0SHViXSBtYXZlbi1zY20gcHVsbCByZXF1ZXN0ICM1NjogW1NDTS03MzldIFVzZSBzaGFsbG93IGNsb25lcyB3aGVuIGNsb25pbmcgYSBnaXQgLi4uCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgpEYXRlOiBXZWQsIDIyIE5vdiAyMDE3IDE1OjU0OjIyICswMDAwIChVVEMpCgpHaXRIdWIgdXNlciBhcnRlYW0gb3BlbmVkIGEgcHVsbCByZXF1ZXN0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc2NtL3B1bGwvNTYKCiAgICBbU0NNLTczOV0gVXNlIHNoYWxsb3cgY2xvbmVzIHdoZW4gY2xvbmluZyBhIGdpdCByZXBvCgogICAgRm9yIGBtYXZlbi1yZWxlYXNlLXBsdWdpbmAgd2UgZG9uJ3QgbmVlZCB0aGUgd2hvbGUgaGlzdG9yeSwgYnV0IG9ubHkgdGhlIHRvcCBjb21taXQuIFVzaW5nIGAtLWRlcHRoIDFgIGFsbG93cyB0byBwZXJmb3JtIHJlbGVhc2VzIG11Y2ggZmFzdGVyIG9uIHJlcG9zaXRvcmllcyB3aXRoIGEgbG9uZyBoaXN0b3J5LgoKWW91IGNhbiBtZXJnZSB0aGlzIHB1bGwgcmVxdWVzdCBpbnRvIGEgR2l0IHJlcG9zaXRvcnkgYnkgcnVubmluZzoKCiAgICAkIGdpdCBwdWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9hcnRlYW0vbWF2ZW4tc2NtIGdpdC1jbG9uZS1zaGFsbG93CgpBbHRlcm5hdGl2ZWx5IHlvdSBjYW4gcmV2aWV3IGFuZCBhcHBseSB0aGVzZSBjaGFuZ2VzIGFzIHRoZSBwYXRjaCBhdDoKCiAgICBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXNjbS9wdWxsLzU2LnBhdGNoCgpUbyBjbG9zZSB0aGlzIHB1bGwgcmVxdWVzdCwgbWFrZSBhIGNvbW1pdCB0byB5b3VyIG1hc3Rlci90cnVuayBicmFuY2gKd2l0aCAoYXQgbGVhc3QpIHRoZSBmb2xsb3dpbmcgaW4gdGhlIGNvbW1pdCBtZXNzYWdlOgoKICAgIFRoaXMgY2xvc2VzICM1NgogICAgCi0tLS0KY29tbWl0IGMwNDE4NjhiZjhjNTQzY2VjYjM0YzhmMDAyZjAyNDM4ZTZmODFiNTIKQXV0aG9yOiBBcnRlbSBQcmlnb2RhIDxhcnRlYW1vbkBnbWFpbC5jb20+CkRhdGU6ICAgMjAxNy0xMS0yMlQxNTo1MjowMFoKCiAgICBbU0NNLTczOV0gVXNlIHNoYWxsb3cgY2xvbmVzIHdoZW4gY2xvbmluZyBhIGdpdCByZXBvCiAgICAKICAgIEZvciBgbWF2ZW4tcmVsZWFzZS1wbHVnaW5gIHdlIGRvbid0IG5lZWQgdGhlIHdob2xlIGhpc3RvcnksIGJ1dAogICAgb25seSB0aGUgdG9wIGNvbW1pdC4gVXNpbmcgYC0tZGVwdGggMWAgYWxsb3dzIHRvIHBlcmZvcm0gcmVsZWFzZXMKICAgIG11Y2ggZmFzdGVyIG9uIHJlcG9zaXRvcmllcyB3aXRoIGEgbG9uZyBoaXN0b3J5LgoKLS0tLQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NjIzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBOb3YgMjcgMTY6NDk6MDMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NjIzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDY5NTg5MTdBOEIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAyNyBOb3YgMjAxNyAxNjo0OTowMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI1MzM5IGludm9rZWQgYnkgdWlkIDUwMCk7IDI3IE5vdiAyMDE3IDE2OjQ5OjAzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNTI0MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBOb3YgMjAxNyAxNjo0OTowMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI1MTc5IGludm9rZWQgYnkgdWlkIDk5KTsgMjcgTm92IDIwMTcgMTY6NDk6MDIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcgKEhFTE8gZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjIzKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDI3IE5vdiAyMDE3IDE2OjQ5OjAyICswMDAwClJlY2VpdmVkOiBieSBnaXQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IGdpdDEtdXMtd2VzdC5hcGFjaGUub3JnLCBmcm9tIHVzZXJpZCAzMykKCWlkIDlEMjAxREZBQjY7IE1vbiwgMjcgTm92IDIwMTcgMTY6NDk6MDIgKzAwMDAgKFVUQykKRnJvbTogWWVya29QaW5vIDxnaXRAZ2l0LmFwYWNoZS5vcmc+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZXBseS1UbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKTWVzc2FnZS1JRDogPGdpdC1wci01Ny1tYXZlbi1zY21AZ2l0LmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtHaXRIdWJdIG1hdmVuLXNjbSBwdWxsIHJlcXVlc3QgIzU3OiBbU0NNLTg1M10gQm9vdHN0cmFwLWNoYW5nZXMtZm9yLWNoZWNrb3V0LWFuZC11cGQuLi4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluCkRhdGU6IE1vbiwgMjcgTm92IDIwMTcgMTY6NDk6MDIgKzAwMDAgKFVUQykKCkdpdEh1YiB1c2VyIFllcmtvUGlubyBvcGVuZWQgYSBwdWxsIHJlcXVlc3Q6CgogICAgaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1zY20vcHVsbC81NwoKICAgIFtTQ00tODUzXSBCb290c3RyYXAtY2hhbmdlcy1mb3ItY2hlY2tvdXQtYW5kLXVwZGF0ZQoKICAgIFRoZSBjaGFuZ2VzIGluIHRoZSBib290c3RyYXAgZnVuY3Rpb25hbGl0eSBpbmNsdWRlczogZXhlY3V0ZSB0aGUgZ29hbHMgd2l0aCBhbiB1cGRhdGUgaWYgY2hlY2tvdXQgZGlyZWN0b3J5IGV4aXN0cyBvciBqdXN0IGV4ZWN1dGUgdGhlIGdvYWxzIHdpdGhvdXQgY2hlY2tvdXQgb3IgdXBkYXRlLgoKWW91IGNhbiBtZXJnZSB0aGlzIHB1bGwgcmVxdWVzdCBpbnRvIGEgR2l0IHJlcG9zaXRvcnkgYnkgcnVubmluZzoKCiAgICAkIGdpdCBwdWxsIGh0dHBzOi8vZ2l0aHViLmNvbS9ZZXJrb1Bpbm8vU0NNLTg1My1Cb290c3RyYXAtY2hhbmdlcy1mb3ItY2hlY2tvdXQtYW5kLXVwZGF0ZSBtYXN0ZXIKCkFsdGVybmF0aXZlbHkgeW91IGNhbiByZXZpZXcgYW5kIGFwcGx5IHRoZXNlIGNoYW5nZXMgYXMgdGhlIHBhdGNoIGF0OgoKICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tc2NtL3B1bGwvNTcucGF0Y2gKClRvIGNsb3NlIHRoaXMgcHVsbCByZXF1ZXN0LCBtYWtlIGEgY29tbWl0IHRvIHlvdXIgbWFzdGVyL3RydW5rIGJyYW5jaAp3aXRoIChhdCBsZWFzdCkgdGhlIGZvbGxvd2luZyBpbiB0aGUgY29tbWl0IG1lc3NhZ2U6CgogICAgVGhpcyBjbG9zZXMgIzU3CiAgICAKLS0tLQpjb21taXQgNTJhNjBlM2VjZjc1NGI3NzE0YTNhZTNiMTVmZDA4MTI3ZjY4ZGExZgpBdXRob3I6IFllcmtvIFBpbm8gR2FyYXkgPHllcmtvLnBpbm9Ac3ltYmlvc2UuY2w+CkRhdGU6ICAgMjAxNy0xMS0yN1QxNDoyMDozMloKCiAgICBDSEc6IENvcnJlY2Npb25lcyBtZW5vcmVzLgogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBZZXJrbyBQaW5vIEdhcmF5IDx5ZXJrby5waW5vQHN5bWJpb3NlLmNsPgoKY29tbWl0IDFmMTBmZDliYjAxOWE2MWQwZDVkNjAzZTBhOGY1YjZiNGMwMDJlMTQKQXV0aG9yOiBZZXJrbyBQaW5vIEdhcmF5IDx5ZXJrby5waW5vQHN5bWJpb3NlLmNsPgpEYXRlOiAgIDIwMTctMTEtMjdUMTQ6MjI6MDJaCgogICAgQ0hHOiBTZSBjYW1iaWEgbGEgZWplY3VjaW9uIGRlIGdvYWxzIHBhcmEgcmVhbGl6YXJsb3Mgc2luIGNoZWNrb3V0LgogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBZZXJrbyBQaW5vIEdhcmF5IDx5ZXJrby5waW5vQHN5bWJpb3NlLmNsPgoKY29tbWl0IDMwODJhZWQ0ZmEwZDkwMmVmNjk3MjkwYzJhMzg0MjVhOTQyMGRhYmUKQXV0aG9yOiBZZXJrbyBQaW5vIEdhcmF5IDx5ZXJrby5waW5vQHN5bWJpb3NlLmNsPgpEYXRlOiAgIDIwMTctMTEtMjdUMTQ6NDU6NDhaCgogICAgQUREOiBJbmNsdWRlIHVwZGF0ZSBmdW5jdGlvbiBpbiBib290c3RyYXAuCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFllcmtvIFBpbm8gR2FyYXkgPHllcmtvLnBpbm9Ac3ltYmlvc2UuY2w+Cgpjb21taXQgYTlhMzUwYjE5MGQ5ZWVlYzcwODk2MGY1ZGVhMjk1ZDkyYzc3NGI3OQpBdXRob3I6IFllcmtvIFBpbm8gR2FyYXkgPHllcmtvLnBpbm9Ac3ltYmlvc2UuY2w+CkRhdGU6ICAgMjAxNy0xMS0yN1QxNTowNDozMFoKCiAgICBBREQ6IE5ldyBza2lwVXBkYXRlSWZFeGlzdHMgcGFyYW1ldGVyLgogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBZZXJrbyBQaW5vIEdhcmF5IDx5ZXJrby5waW5vQHN5bWJpb3NlLmNsPgoKY29tbWl0IDIyNzRiYzI5ODE3YTliZWJkNGQzZWY2OGFmZjU0ZjY5Zjc0OGYwNzAKQXV0aG9yOiBZZXJrbyBQaW5vIEdhcmF5IDx5ZXJrby5waW5vQHN5bWJpb3NlLmNsPgpEYXRlOiAgIDIwMTctMTEtMjdUMTU6MDk6MDVaCgogICAgW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIHJlbGVhc2UgbWF2ZW4tc2NtLTEuOS42Cgpjb21taXQgYmM0YzFlNDA0YzY2NDkyNDg4ZDgyMGQxNmZkMjUwZjU0MzZjZWI3ZApBdXRob3I6IFllcmtvIFBpbm8gR2FyYXkgPHllcmtvLnBpbm9Ac3ltYmlvc2UuY2w+CkRhdGU6ICAgMjAxNy0xMS0yN1QxNTo0MjozNVoKCiAgICBDSEc6IENvcnJlY2Npb25lcyBtZW5vcmVzIGVuIHBvbS4KICAgIAogICAgU2lnbmVkLW9mZi1ieTogWWVya28gUGlubyBHYXJheSA8eWVya28ucGlub0BzeW1iaW9zZS5jbD4KCmNvbW1pdCA5NjI0MDkyZWEwOGRmYTY4NmEyZjkxYzZkOTRiNjY5ZjNmNDRjODdmCkF1dGhvcjogWWVya28gUGlubyBHYXJheSA8eWVya28ucGlub0BzeW1iaW9zZS5jbD4KRGF0ZTogICAyMDE3LTExLTI3VDE2OjA3OjI3WgoKICAgIEFERDogQ29uZGl0aW9uIGZvciBjaGVja291dCBhbmQgdXBkYXRlLgogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBZZXJrbyBQaW5vIEdhcmF5IDx5ZXJrby5waW5vQHN5bWJpb3NlLmNsPgoKLS0tLQoKCi0tLQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzODY1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBTZXAgIDQgMTk6MTA6NTQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzODY1LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDU4MEQzMUE4NDcKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAgNCBTZXAgMjAxNyAxOToxMDo1NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDU4MjQ0IGludm9rZWQgYnkgdWlkIDUwMCk7IDQgU2VwIDIwMTcgMTk6MTA6NTQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU4MTU1IGludm9rZWQgYnkgdWlkIDUwMCk7IDQgU2VwIDIwMTcgMTk6MTA6NTIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1ODE0NCBpbnZva2VkIGJ5IHVpZCA5OSk7IDQgU2VwIDIwMTcgMTk6MTA6NTIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMDQgU2VwIDIwMTcgMTk6MTA6NTIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmwgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCBEMzQ0ODFBMDA0NAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgIDQgU2VwIDIwMTcgMTk6MTA6NTEgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBDb21waWxlciBQbHVnaW4gdmVyc2lvbiAzLjcuMApSZWZlcmVuY2VzOiA8b3AueTV2M2Q2cTJrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkRhdGU6IE1vbiwgMDQgU2VwIDIwMTcgMjE6MTA6NTIgKzAyMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTUxMThlbmJrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkluLVJlcGx5LVRvOiA8b3AueTV2M2Q2cTJrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKKzEKCk9uIEZyaSwgMDEgU2VwIDIwMTcgMTU6NTA6MjAgKzAyMDAsIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4gIAp3cm90ZToKCj4gSGksCj4KPiBXZSBzb2x2ZWQgNiBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMxNzIyNSZ2ZXJzaW9uPTEyMzQxMjY2JnN0eWxlTmFtZT1UZXh0Cj4KPiBUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9cHJvamVjdCUyMCUzRCUyMDEyMzE3MjI1JTIwQU5EJTIwc3RhdHVzJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDCj4KPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM1OS8KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zZXJ2aWNlL2xvY2FsL3JlcG9zaXRvcmllcy9tYXZlbi0xMzU5L2NvbnRlbnQvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL21hdmVuLWNvbXBpbGVyLXBsdWdpbi8zLjcuMC9tYXZlbi1jb21waWxlci1wbHVnaW4tMy43LjAtc291cmNlLXJlbGVhc2UuemlwCj4KPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBtYXZlbi1jb21waWxlci1wbHVnaW4tMy43LjAtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6ICAKPiAxMTQ4ZDhhMWY4OWU2OTAwYWZiMGNhMWRiZjc0ZjY0OTMyNDAyY2ZkCj4KPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tY29tcGlsZXItcGx1Z2luLUxBVEVTVC8KPgo+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCj4KPiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+Cj4gWyBdICsxCj4gWyBdICswCj4gWyBdIC0xCj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyMzg2Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gU2VwICA0IDE5OjEzOjMzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzg2Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAzNDdFNTFBODUzCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgIDQgU2VwIDIwMTcgMTk6MTM6MzMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2NTgyMiBpbnZva2VkIGJ5IHVpZCA1MDApOyA0IFNlcCAyMDE3IDE5OjEzOjMyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2NTczNiBpbnZva2VkIGJ5IHVpZCA1MDApOyA0IFNlcCAyMDE3IDE5OjEzOjMyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjU3MjEgaW52b2tlZCBieSB1aWQgOTkpOyA0IFNlcCAyMDE3IDE5OjEzOjMyIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDA0IFNlcCAyMDE3IDE5OjEzOjMyICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgNEJBRUQxQTAwNDQ7CglNb24sICA0IFNlcCAyMDE3IDE5OjEzOjMwICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBbUkVTVUxUXSBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gQ29tcGlsZXIgUGx1Z2luIHZlcnNpb24gMy43LjAKUmVmZXJlbmNlczogPG9wLnk1djNkNnEya2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpEYXRlOiBNb24sIDA0IFNlcCAyMDE3IDIxOjEzOjMxICswMjAwCkNjOiAiQXBhY2hlIE1hdmVuIFByaXZhdGUiIDxwcml2YXRlQG1hdmVuLmFwYWNoZS5vcmc+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IFF1b3RlZC1QcmludGFibGUKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk1MTJjdG5ra2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpJbi1SZXBseS1UbzogPG9wLnk1djNkNnEya2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCkhpLAoKVGhlIHZvdGUgaGFzIHBhc3NlZCB3aXRoIHRoZSBmb2xsb3dpbmcgcmVzdWx0OgoKKzEgOiBBcm5hdWQgSD1FOXJpdGllciwgS2FybCBIZWlueiBNYXJiYWlzZSwgQW5kZXJzIEhhbW1hciwgSGVydj1FOSBCT1VUPQpFTVksICA9CgpSb2JlcnQgU2Nob2x0ZQoKUE1DIHF1b3J1bTogcmVhY2hlZAoKSSB3aWxsIHByb21vdGUgdGhlIGFydGlmYWN0cyB0byB0aGUgY2VudHJhbCByZXBvLgoKCk9uIEZyaSwgMDEgU2VwIDIwMTcgMTU6NTA6MjAgKzAyMDAsIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz0KPiAgPQoKd3JvdGU6Cgo+IEhpLAo+Cj4gV2Ugc29sdmVkIDYgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZWN0SWQ9M0QxMjM9CjE3MjI1JnZlcnNpb249M0QxMjM0MTI2NiZzdHlsZU5hbWU9M0RUZXh0Cj4KPiBUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9M0Rwcm9qZWN0JTIwJTNEJTIwMTIzMTcyMjUlPQoyMEFORCUyMHN0YXR1cyUyMCUzRCUyME9wZW4lMjBPUkRFUiUyMEJZJTIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREU9ClNDCj4KPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM1OS8KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zZXJ2aWNlL2xvY2FsL3JlcG9zaXRvcmllcy9tYXZlbi0xMzU5L2NvPQpudGVudC9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4tY29tcGlsZXItcGx1Z2luLzMuNy4wL21hdmVuLWNvbXBpbGU9CnItcGx1Z2luLTMuNy4wLXNvdXJjZS1yZWxlYXNlLnppcAo+Cj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gbWF2ZW4tY29tcGlsZXItcGx1Z2luLTMuNy4wLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOiAgPQoKPiAxMTQ4ZDhhMWY4OWU2OTAwYWZiMGNhMWRiZjc0ZjY0OTMyNDAyY2ZkCj4KPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tY29tcGlsZXItcGx1Z2luLUxBVEVTVD0KLwo+Cj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bT0KbAo+Cj4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPgo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM4NjgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIFNlcCAgNCAyMDo0MjoxMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM4NjgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQ0U5N0ExQUE0RQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sICA0IFNlcCAyMDE3IDIwOjQyOjEwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTY1MTAgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBTZXAgMjAxNyAyMDo0MjowNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTU0NzEgaW52b2tlZCBieSB1aWQgNTAwKTsgNCBTZXAgMjAxNyAyMDo0MjowNiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk1NDQxIGludm9rZWQgYnkgdWlkIDk5KTsgNCBTZXAgMjAxNyAyMDo0MjowNiAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAwNCBTZXAgMjAxNyAyMDo0MjowNiArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDc0MzA4MUEwMDQ0OwoJTW9uLCAgNCBTZXAgMjAxNyAyMDo0MjowMyArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpEYXRlOiBNb24sIDA0IFNlcCAyMDE3IDIyOjQyOjAxICswMjAwClN1YmplY3Q6IFtBTk5dIEFwYWNoZSBNYXZlbiBDb21waWxlciBQbHVnaW4gMy43LjAgUmVsZWFzZWQKVG86IGFubm91bmNlQG1hdmVuLmFwYWNoZS5vcmcsIHVzZXJzQG1hdmVuLmFwYWNoZS5vcmcKQ2M6IGRldkBtYXZlbi5hcGFjaGUub3JnCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk1MTZnYnZqa2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKClRoZSBBcGFjaGUgTWF2ZW4gdGVhbSBpcyBwbGVhc2VkIHRvIGFubm91bmNlIHRoZSByZWxlYXNlIG9mIHRoZSBBcGFjaGUgIApNYXZlbiBDb21waWxlciBQbHVnaW4sIHZlcnNpb24gMy43LjAKClRoZSBDb21waWxlciBQbHVnaW4gaXMgdXNlZCB0byBjb21waWxlIHRoZSBzb3VyY2VzIG9mIHlvdXIgcHJvamVjdC4KCmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zL21hdmVuLWNvbXBpbGVyLXBsdWdpbi8KCllvdSBzaG91bGQgc3BlY2lmeSB0aGUgdmVyc2lvbiBpbiB5b3VyIHByb2plY3QncyBwbHVnaW4gY29uZmlndXJhdGlvbjoKCjxwbHVnaW4+CiAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KICAgPGFydGlmYWN0SWQ+bWF2ZW4tY29tcGlsZXItcGx1Z2luPC9hcnRpZmFjdElkPgogICA8dmVyc2lvbj4zLjcuMDwvdmVyc2lvbj4KPC9wbHVnaW4+CgpZb3UgY2FuIGRvd25sb2FkIHRoZSBhcHByb3ByaWF0ZSBzb3VyY2VzIGV0Yy4gZnJvbSB0aGUgZG93bmxvYWQgcGFnZToKCmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zL21hdmVuLWNvbXBpbGVyLXBsdWdpbi9kb3dubG9hZC5jZ2kKCgpSZWxlYXNlIE5vdGVzIC0gTWF2ZW4gQ29tcGlsZXIgUGx1Z2luIC0gVmVyc2lvbiAzLjcuMAoKKiogQnVnCiAgICAgKiBbTUNPTVBJTEVSLTI4OV0gLSBDb21tZW50cyBpbiBtb2R1bGUtaW5mby5qYXZhIGJyZWFrIHRlc3QgY29tcGlsZSAgCmR1ZSB0byBwYXJzZXIgaXNzdWUKICAgICAqIFtNQ09NUElMRVItMzAzXSAtIEZhaWx1cmUgb2YgYSBidWlsZCB3aXRoIEpESyA5CgoqKiBJbXByb3ZlbWVudAogICAgICogW01DT01QSUxFUi0yOTZdIC0gQWRkIGpwbXMuYXJncyB0byB0aGUgTUVUQS1JTkYgZm9sZGVyCiAgICAgKiBbTUNPTVBJTEVSLTMwNF0gLSBJbnRyb2R1Y2UgcGxleHVzLWxhbmd1YWdlIGNvbXBvbmVudAogICAgICogW01DT01QSUxFUi0zMDVdIC0gUmVxdWlyZSBKYXZhIDEuNwoKKiogTmV3IEZlYXR1cmUKICAgICAqIFtNQ09NUElMRVItMjk1XSAtIFVwZ3JhZGUgQVNNIHRvIDYuMF9CRVRBCgpFbmpveSwKCi1UaGUgQXBhY2hlIE1hdmVuIHRlYW0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyMzg3OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgU2VwICA2IDIwOjMwOjA3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzg3OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBCMDY3RDFBRDAwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgIDYgU2VwIDIwMTcgMjA6MzA6MDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxMDM0MCBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IFNlcCAyMDE3IDIwOjMwOjA3IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMDIyNyBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IFNlcCAyMDE3IDIwOjMwOjA3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTAyMTUgaW52b2tlZCBieSB1aWQgOTkpOyA2IFNlcCAyMDE3IDIwOjMwOjA3IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDA2IFNlcCAyMDE3IDIwOjMwOjA3ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgMzNENzcxQTAwQTUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsICA2IFNlcCAyMDE3IDIwOjMwOjA1ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBtYXZlbi1kZXBlbmRlbmN5LXBsdWdpbgpSZWZlcmVuY2VzOiA8ZjFmYzUxNDMtNmRjZC04MjA4LTJjYTctNGQ4YWUxYzA4ZDJhQGdteC5kZT4KRGF0ZTogV2VkLCAwNiBTZXAgMjAxNyAyMjozMDowMiArMDIwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55NTV1OGNlM2tka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KSW4tUmVwbHktVG86IDxmMWZjNTE0My02ZGNkLTgyMDgtMmNhNy00ZDhhZTFjMDhkMmFAZ214LmRlPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCisxLCB5b3UgYmVhdCBtZSA6KQoKT24gV2VkLCAwNiBTZXAgMjAxNyAyMjoyODozMiArMDIwMCwgS2FybCBIZWlueiBNYXJiYWlzZSAgCjxraG1hcmJhaXNlQGdteC5kZT4gd3JvdGU6Cgo+IEhpLAo+Cj4gSSB3b3VsZCBsaWtlIHRvIG1ha2UgYSBuZXcgcmVsZWFzZSBvZiB0aGUgY3VycmVudCBzdGF0ZSBvZiAgCj4gbWF2ZW4tZGVwZW5kZW5jeS1wbHVnaW4gLi4KPgo+IEFyZSB0aGVyZSBhbnkgb2JqZWN0aW9ucyBhYm91dCB0aGlzPyBvciBhcmUgaXNzdWVzIG1pc3NlZD8KPgo+IEtpbmQgcmVnYXJkcwo+IEthcmwgSGVpbnogTWFyYmFpc2UKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzODk4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBTZXAgIDggMTY6MjA6NDEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzODk4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEYyNUQ4MTlEQ0MKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAgOCBTZXAgMjAxNyAxNjoyMDo0MSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI3NjE5IGludm9rZWQgYnkgdWlkIDUwMCk7IDggU2VwIDIwMTcgMTY6MjA6NDEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI3NTQ2IGludm9rZWQgYnkgdWlkIDUwMCk7IDggU2VwIDIwMTcgMTY6MjA6NDAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNzUzMiBpbnZva2VkIGJ5IHVpZCA5OSk7IDggU2VwIDIwMTcgMTY6MjA6NDAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMDggU2VwIDIwMTcgMTY6MjA6NDAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmwgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCAwMDYxNDFBMDBDNTsKCUZyaSwgIDggU2VwIDIwMTcgMTY6MjA6MzggKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PS0tLS0tLS0tLS1iUGNJeWhDOFJjb2pwNHdBZ21UMmlFClRvOiAiVGlib3IgRGlnYW5hIiA8dGlib3IuZGlnYW5hQGdvb2dsZW1haWwuY29tPgpDYzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwgIkFuZGVycyBIYW1tYXIiCiA8YW5kZXJzQGhhbW1hci5uZXQ+ClN1YmplY3Q6IFJlOiBVc2VycyBjYW4gYXNzaWduIEZpeCBWZXJzaW9uL3MgaW4gSmlyYQpSZWZlcmVuY2VzOiA8Q0FLdVZ6QlMtVVJQY21pODFSMi14b0xSSmJQUWZCODg3Yi11K01OUGhCVGY3aFQ2RnlnQG1haWwuZ21haWwuY29tPiA8MmYxM2FlNGYtNzU0YS00NWIxLTU4ODgtMmYzMjUzZTQ4NGZhQGFwYWNoZS5vcmc+IDxDQUtEVU4xdHRpWjdSUmpoZkV5Nm1fV3llVHByMXZxQ1l4OEQ4M0N2YV9CaDNYeEM3eFFAbWFpbC5nbWFpbC5jb20+IDxvcC55NThsM2N2bWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4gPENBS3VWekJSVV9kU1g1VXp6WG8rcHV3Slp0YWo9a1pBUGJvS0VNUVVScFM4VzZHX3cyUUBtYWlsLmdtYWlsLmNvbT4KRGF0ZTogRnJpLCAwOCBTZXAgMjAxNyAxODoyMDozNyArMDIwMApNSU1FLVZlcnNpb246IDEuMApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTU4ODBubWNrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkluLVJlcGx5LVRvOiA8Q0FLdVZ6QlJVX2RTWDVVenpYbytwdXdKWnRhaj1rWkFQYm9LRU1RVVJwUzhXNkdfdzJRQG1haWwuZ21haWwuY29tPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCi0tLS0tLS0tLS0tLWJQY0l5aEM4UmNvanA0d0FnbVQyaUUKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdAoKQUZBSUsgdGhlIHNjaGVtZSBzdGlsbCBoYXMgdG8gYmUgY3JlYXRlZCBhbmQgdmVyaWZpZWQsIHRoaXMgaXMganVzdCAgCmFub3RoZXIgcGFydCBvZiB0aGF0LgpJIGRvbid0IHRoaW5rIGl0J3Mgd29ydGggdm90aW5nIGZvciBldmVyeSAobGl0dGxlKSBjaGFuZ2UsIGVzcGVjaWFsbHkgbm90ICAKbm93IHRoZXJlJ3Mgbm8gZmluYWwgc2NoZW1lIHlldC4KClJvYmVydAoKT24gRnJpLCAwOCBTZXAgMjAxNyAxNzo0NjoxMyArMDIwMCwgVGlib3IgRGlnYW5hICAKPHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbT4gd3JvdGU6Cgo+IERvZXMgaXQgbWVhbiB0aGF0IHdlIGhhdmUgdG8gcG9zdCBuZXcgVm90ZSBvbiBzZXBhcmF0ZSBNYXZlbiBTY2hlbWU/Cj4KPiBPbiBGcmksIFNlcCA4LCAyMDE3IGF0IDEwOjA1IEFNLCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+ICAKPiB3cm90ZToKPj4gVGhpcyBpcyBwYXJ0IG9mIHRoZSBzY2hlbWUgaW4gSmlyYS4KPj4gU2luY2UgdGhlcmUncyBhIHByb3Bvc2FsIHRvIG1ha2UgYSBzZXBhcmF0ZSBNYXZlbiBTY2hlbWUsIHRoaXMgcmVxdWVzdCAgCj4+IHNob3VsZCBiZSBhZGRlZCBhcyB3ZWxsLgo+Pgo+PiBSb2JlcnQKPj4KPj4KPj4KPj4gT24gRnJpLCAwOCBTZXAgMjAxNyAwODo1MzozMSArMDIwMCwgQW5kZXJzIEhhbW1hciA8YW5kZXJzQGhhbW1hci5uZXQ+ICAKPj4gd3JvdGU6Cj4+Cj4+PiBJIGFncmVlLCBpdCdzIGZvciB1cyBhcyBjb21taXR0ZXJzIHRvIGRlY2lkZS4KPj4+Cj4+PiAvQW5kZXJzCj4+Pgo+Pj4gT24gRnJpLCBTZXAgOCwgMjAxNyBhdCA4OjUxIEFNLCBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz4gIAo+Pj4gd3JvdGU6Cj4+Pgo+Pj4+IEFtIDIwMTctMDktMDggdW0gMDA6NDIgc2NocmllYiBUaWJvciBEaWdhbmE6Cj4+Pj4KPj4+Pj4gSSBmb3VuZCBvdXQgdGhhdCB1c2VycyBjcmVhdGUgYW4gaXNzdWUgaW4gSmlyYSBhbmQgKmFzc2lnbiB2ZXJzaW9uKiAgCj4+Pj4+IFsxXS4KPj4+Pj4gSSByZW1lbWJlciB0aGlzIGRpZCBub3QgaGFwcGVuIGluIG9sZCBKaXJhLgo+Pj4+PiBTbyBJIGRlY2lkZSB0byByZXBvcnQgYSB0aWNrZXQgaW4gSU5GUkEuCj4+Pj4+Cj4+Pj4+IERvIHlvdSBoYXZlIHRoZSBzYW1lIGV4cGVyaWVuY2VzPwo+Pj4+PiBXaGF0J3MgeW91ciBvcGluaW9uIGFib3V0IGl0Pwo+Pj4+Pgo+Pj4+PiBbMV06IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvSU5GUkEtMTUwNDcKPj4+Pj4KPj4+Pgo+Pj4+IFRoaXMgaXMgYW4gYW5ub3lpbmcgYnVnLiBJIGNvbnN0YW50bHkgcmVtb3ZlIHVzZXItYXNzaWduZWQgdmVyc2lvbiAgCj4+Pj4gd2hlbiBJCj4+Pj4gc2VlIGl0LCBiZWNhdXNlIHRoaXMgZGVjaXNpb24gc2hvdWxkIG9ubHkgYmUgdXB0byB1cywgbm90IHRoZW0uCj4+Pj4KPj4+PiBNaWNoYWVsCj4+Pj4KPj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+Pgo+Cj4KPgo+IC0tQ2hlZXJzCj4gVGlib3IKLS0tLS0tLS0tLS0tYlBjSXloQzhSY29qcDR3QWdtVDJpRQpDb250ZW50LVR5cGU6IG11bHRpcGFydC9yZWxhdGVkOyBib3VuZGFyeT0tLS0tLS0tLS0tYlBjSXloQzhSY29qcDR2dW13OHJNcwoKLS0tLS0tLS0tLS0tYlBjSXloQzhSY29qcDR2dW13OHJNcwpDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xNQpDb250ZW50LUlEOiA8b3AuMTUwNDg4NzYzNzQyNS5kMTNiNzU2NTVkNmFlYzY0QDE5Mi4xNjguMTc4LjE3PgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBRdW90ZWQtUHJpbnRhYmxlCgo8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD4KPHN0eWxlIHR5cGU9M0QidGV4dC9jc3MiPmJvZHkgeyBmb250LWZhbWlseTonVGltZXMgTmV3IFJvbWFuJzsgZm9udC1zaXplPQo6MTNweH08L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PjxkaXY+QUZBSUsgdGhlIHNjaGVtZSBzdGlsbCBoYXMgdG8gYmUgY3JlYXRlZCBhbmQgdmVyaWZpZWQsIHRoaXMgaT0KcyBqdXN0IGFub3RoZXIgcGFydCBvZiB0aGF0LjwvZGl2PjxkaXY+SSBkb24ndCB0aGluayBpdCdzIHdvcnRoIHZvdGluZyBmPQpvciBldmVyeSAobGl0dGxlKSBjaGFuZ2UsIGVzcGVjaWFsbHkgbm90IG5vdyB0aGVyZSdzIG5vIGZpbmFsIHNjaGVtZSB5ZXQ9Ci48L2Rpdj48ZGl2Pjxicj48L2Rpdj48ZGl2PlJvYmVydDwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+T24gRnJpLCAwOCBTZT0KcCAyMDE3IDE3OjQ2OjEzICswMjAwLCBUaWJvciBEaWdhbmEgJmx0O3RpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbSZndDsgPQp3cm90ZTo8YnI+PC9kaXY+PGJyPjxibG9ja3F1b3RlIHN0eWxlPTNEIm1hcmdpbjogMCAwIDAuODBleDsgYm9yZGVyLWxlZnQ9CjogIzAwMDBGRiAycHggc29saWQ7IHBhZGRpbmctbGVmdDogMWV4Ij48ZGl2IGRpcj0zRCJsdHIiPkRvZXMgaXQgbWVhbiB0aD0KYXQgd2UgaGF2ZSB0byBwb3N0IG5ldyBWb3RlIG9uIHNlcGFyYXRlIE1hdmVuIFNjaGVtZT88L2Rpdj48ZGl2IGNsYXNzPTNEPQoiZ21haWxfZXh0cmEiPjxicj48ZGl2IGNsYXNzPTNEImdtYWlsX3F1b3RlIj5PbiBGcmksIFNlcCA4LCAyMDE3IGF0IDEwOjA9CjUgQU0sIFJvYmVydCBTY2hvbHRlIDxzcGFuIGRpcj0zRCJsdHIiPiZsdDs8YSBocmVmPTNEIm1haWx0bzpyZnNjaG9sdGVAYT0KcGFjaGUub3JnIiB0YXJnZXQ9M0QiX2JsYW5rIj5yZnNjaG9sdGVAYXBhY2hlLm9yZzwvYT4mZ3Q7PC9zcGFuPiB3cm90ZTo8PQpicj48YmxvY2txdW90ZSBjbGFzcz0zRCJnbWFpbF9xdW90ZSIgc3R5bGU9M0QibWFyZ2luOjAgMCAwIC44ZXg7Ym9yZGVyLWw9CmVmdDoxcHggI2NjYyBzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4Ij5UaGlzIGlzIHBhcnQgb2YgdGhlIHNjaGVtZSBpbiBKaXJhLj0KPGJyPgpTaW5jZSB0aGVyZSdzIGEgcHJvcG9zYWwgdG8gbWFrZSBhIHNlcGFyYXRlIE1hdmVuIFNjaGVtZSwgdGhpcyByZXF1ZXN0IHM9CmhvdWxkIGJlIGFkZGVkIGFzIHdlbGwuPHNwYW4gY2xhc3M9M0QiSE9FblpiIj48Zm9udCBjb2xvcj0zRCIjODg4ODg4Ij48Yj0Kcj4KPGJyPgpSb2JlcnQ8L2ZvbnQ+PC9zcGFuPjxkaXYgY2xhc3M9M0QiSE9FblpiIj48ZGl2IGNsYXNzPTNEImg1Ij48YnI+Cjxicj4KPGJyPgpPbiBGcmksIDA4IFNlcCAyMDE3IDA4OjUzOjMxICswMjAwLCBBbmRlcnMgSGFtbWFyICZsdDs8YSBocmVmPTNEIm1haWx0bzo9CmFuZGVyc0BoYW1tYXIubmV0IiB0YXJnZXQ9M0QiX2JsYW5rIj5hbmRlcnNAaGFtbWFyLm5ldDwvYT4mZ3Q7IHdyb3RlOjxicj0KPgo8YnI+CjxibG9ja3F1b3RlIGNsYXNzPTNEImdtYWlsX3F1b3RlIiBzdHlsZT0zRCJtYXJnaW46MCAwIDAgLjhleDtib3JkZXItbGVmdD0KOjFweCAjY2NjIHNvbGlkO3BhZGRpbmctbGVmdDoxZXgiPgpJIGFncmVlLCBpdCdzIGZvciB1cyBhcyBjb21taXR0ZXJzIHRvIGRlY2lkZS48YnI+Cjxicj4KL0FuZGVyczxicj4KPGJyPgpPbiBGcmksIFNlcCA4LCAyMDE3IGF0IDg6NTEgQU0sIE1pY2hhZWwgT3NpcG92ICZsdDs8YSBocmVmPTNEIm1haWx0bzptaWM9CmhhZWxvQGFwYWNoZS5vcmciIHRhcmdldD0zRCJfYmxhbmsiPm1pY2hhZWxvQGFwYWNoZS5vcmc8L2E+Jmd0OyB3cm90ZTo8Yj0Kcj4KPGJyPgo8YmxvY2txdW90ZSBjbGFzcz0zRCJnbWFpbF9xdW90ZSIgc3R5bGU9M0QibWFyZ2luOjAgMCAwIC44ZXg7Ym9yZGVyLWxlZnQ9CjoxcHggI2NjYyBzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4Ij4KQW0gMjAxNy0wOS0wOCB1bSAwMDo0MiBzY2hyaWViIFRpYm9yIERpZ2FuYTo8YnI+Cjxicj4KPGJsb2NrcXVvdGUgY2xhc3M9M0QiZ21haWxfcXVvdGUiIHN0eWxlPTNEIm1hcmdpbjowIDAgMCAuOGV4O2JvcmRlci1sZWZ0PQo6MXB4ICNjY2Mgc29saWQ7cGFkZGluZy1sZWZ0OjFleCI+CkkgZm91bmQgb3V0IHRoYXQgdXNlcnMgY3JlYXRlIGFuIGlzc3VlIGluIEppcmEgYW5kICphc3NpZ24gdmVyc2lvbiogWzFdLj0KPGJyPgpJIHJlbWVtYmVyIHRoaXMgZGlkIG5vdCBoYXBwZW4gaW4gb2xkIEppcmEuPGJyPgpTbyBJIGRlY2lkZSB0byByZXBvcnQgYSB0aWNrZXQgaW4gSU5GUkEuPGJyPgo8YnI+CkRvIHlvdSBoYXZlIHRoZSBzYW1lIGV4cGVyaWVuY2VzPzxicj4KV2hhdCdzIHlvdXIgb3BpbmlvbiBhYm91dCBpdD88YnI+Cjxicj4KWzFdOiA8YSBocmVmPTNEImh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvSU5GUkEtMTUwNDciIHJlbD0zRD0KIm5vcmVmZXJyZXIiIHRhcmdldD0zRCJfYmxhbmsiPmh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvSU5GPQpSQS0xNTA0NzwvYT48YnI+Cjxicj4KPC9ibG9ja3F1b3RlPgo8YnI+ClRoaXMgaXMgYW4gYW5ub3lpbmcgYnVnLiBJIGNvbnN0YW50bHkgcmVtb3ZlIHVzZXItYXNzaWduZWQgdmVyc2lvbiB3aGVuID0KSTxicj4Kc2VlIGl0LCBiZWNhdXNlIHRoaXMgZGVjaXNpb24gc2hvdWxkIG9ubHkgYmUgdXB0byB1cywgbm90IHRoZW0uPGJyPgo8YnI+Ck1pY2hhZWw8YnI+Cjxicj4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPGJyPQo+ClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IDxhIGhyZWY9M0QibWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUubz0KcmciIHRhcmdldD0zRCJfYmxhbmsiPmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPC9hPjxicj4KRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogPGEgaHJlZj0zRCJtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlPQoub3JnIiB0YXJnZXQ9M0QiX2JsYW5rIj5kZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPC9hPjxicj4KPGJyPgo8L2Jsb2NrcXVvdGU+PC9ibG9ja3F1b3RlPgo8L2Rpdj48L2Rpdj48L2Jsb2NrcXVvdGU+PC9kaXY+PGJyPjxiciBjbGVhcj0zRCJhbGwiPjxicj4tLSA8YnI+PGRpdiBjbGE9CnNzPTNEImdtYWlsX3NpZ25hdHVyZSIgZGF0YS1zbWFydG1haWw9M0QiZ21haWxfc2lnbmF0dXJlIj48ZGl2IGRpcj0zRCJsdD0KciI+PGRpdj5DaGVlcnM8YnI+PC9kaXY+VGlib3I8YnI+PC9kaXY+PC9kaXY+CjwvZGl2Pgo8L2Jsb2NrcXVvdGU+PGJyPjxicj48YnI+PC9ib2R5PjwvaHRtbD4KLS0tLS0tLS0tLS0tYlBjSXloQzhSY29qcDR2dW13OHJNcy0tCgotLS0tLS0tLS0tLS1iUGNJeWhDOFJjb2pwNHdBZ21UMmlFLS0KCgpGcm9tIGRldi1yZXR1cm4tMTIzODk0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBTZXAgIDggMDg6MDU6NDAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzODk0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEYyN0M5MUE4QUIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAgOCBTZXAgMjAxNyAwODowNTozOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDMyMDE3IGludm9rZWQgYnkgdWlkIDUwMCk7IDggU2VwIDIwMTcgMDg6MDU6MzAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMxMTk2IGludm9rZWQgYnkgdWlkIDUwMCk7IDggU2VwIDIwMTcgMDg6MDU6MjkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMDY3MyBpbnZva2VkIGJ5IHVpZCA5OSk7IDggU2VwIDIwMTcgMDg6MDU6MjkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMDggU2VwIDIwMTcgMDg6MDU6MjkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmwgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCA2RkFCMDFBMDBFODsKCUZyaSwgIDggU2VwIDIwMTcgMDg6MDU6MjcgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sICJBbmRlcnMgSGFtbWFyIgogPGFuZGVyc0BoYW1tYXIubmV0PgpDYzogIlRpYm9yIERpZ2FuYSIgPHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbT4KU3ViamVjdDogUmU6IFVzZXJzIGNhbiBhc3NpZ24gRml4IFZlcnNpb24vcyBpbiBKaXJhClJlZmVyZW5jZXM6IDxDQUt1VnpCUy1VUlBjbWk4MVIyLXhvTFJKYlBRZkI4ODdiLXUrTU5QaEJUZjdoVDZGeWdAbWFpbC5nbWFpbC5jb20+IDwyZjEzYWU0Zi03NTRhLTQ1YjEtNTg4OC0yZjMyNTNlNDg0ZmFAYXBhY2hlLm9yZz4gPENBS0RVTjF0dGlaN1JSamhmRXk2bV9XeWVUcHIxdnFDWXg4RDgzQ3ZhX0JoM1h4Qzd4UUBtYWlsLmdtYWlsLmNvbT4KRGF0ZTogRnJpLCAwOCBTZXAgMjAxNyAxMDowNToyNiArMDIwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55NThsM2N2bWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KSW4tUmVwbHktVG86IDxDQUtEVU4xdHRpWjdSUmpoZkV5Nm1fV3llVHByMXZxQ1l4OEQ4M0N2YV9CaDNYeEM3eFFAbWFpbC5nbWFpbC5jb20+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKVGhpcyBpcyBwYXJ0IG9mIHRoZSBzY2hlbWUgaW4gSmlyYS4KU2luY2UgdGhlcmUncyBhIHByb3Bvc2FsIHRvIG1ha2UgYSBzZXBhcmF0ZSBNYXZlbiBTY2hlbWUsIHRoaXMgcmVxdWVzdCAgCnNob3VsZCBiZSBhZGRlZCBhcyB3ZWxsLgoKUm9iZXJ0CgoKT24gRnJpLCAwOCBTZXAgMjAxNyAwODo1MzozMSArMDIwMCwgQW5kZXJzIEhhbW1hciA8YW5kZXJzQGhhbW1hci5uZXQ+ICAKd3JvdGU6Cgo+IEkgYWdyZWUsIGl0J3MgZm9yIHVzIGFzIGNvbW1pdHRlcnMgdG8gZGVjaWRlLgo+Cj4gL0FuZGVycwo+Cj4gT24gRnJpLCBTZXAgOCwgMjAxNyBhdCA4OjUxIEFNLCBNaWNoYWVsIE9zaXBvdiA8bWljaGFlbG9AYXBhY2hlLm9yZz4gIAo+IHdyb3RlOgo+Cj4+IEFtIDIwMTctMDktMDggdW0gMDA6NDIgc2NocmllYiBUaWJvciBEaWdhbmE6Cj4+Cj4+PiBJIGZvdW5kIG91dCB0aGF0IHVzZXJzIGNyZWF0ZSBhbiBpc3N1ZSBpbiBKaXJhIGFuZCAqYXNzaWduIHZlcnNpb24qICAKPj4+IFsxXS4KPj4+IEkgcmVtZW1iZXIgdGhpcyBkaWQgbm90IGhhcHBlbiBpbiBvbGQgSmlyYS4KPj4+IFNvIEkgZGVjaWRlIHRvIHJlcG9ydCBhIHRpY2tldCBpbiBJTkZSQS4KPj4+Cj4+PiBEbyB5b3UgaGF2ZSB0aGUgc2FtZSBleHBlcmllbmNlcz8KPj4+IFdoYXQncyB5b3VyIG9waW5pb24gYWJvdXQgaXQ/Cj4+Pgo+Pj4gWzFdOiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0lORlJBLTE1MDQ3Cj4+Pgo+Pgo+PiBUaGlzIGlzIGFuIGFubm95aW5nIGJ1Zy4gSSBjb25zdGFudGx5IHJlbW92ZSB1c2VyLWFzc2lnbmVkIHZlcnNpb24gd2hlbiAgCj4+IEkKPj4gc2VlIGl0LCBiZWNhdXNlIHRoaXMgZGVjaXNpb24gc2hvdWxkIG9ubHkgYmUgdXB0byB1cywgbm90IHRoZW0uCj4+Cj4+IE1pY2hhZWwKPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyMzg5NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgU2VwICA4IDA4OjA5OjExIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzg5NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3QTM3MjFBOEJFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgIDggU2VwIDIwMTcgMDg6MDk6MTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0NDA4MiBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IFNlcCAyMDE3IDA4OjA5OjExIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0NDAwMyBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IFNlcCAyMDE3IDA4OjA5OjExIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDM5OTEgaW52b2tlZCBieSB1aWQgOTkpOyA4IFNlcCAyMDE3IDA4OjA5OjExIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDA4IFNlcCAyMDE3IDA4OjA5OjExICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgOTZFNzQxQTAwQzU7CglGcmksICA4IFNlcCAyMDE3IDA4OjA5OjA4ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LCAiVGlib3IgRGlnYW5hIgogPHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbT4KU3ViamVjdDogUmU6IFdhbnQgdG8gY3V0IHJlbGVhc2UgVmVyc2lvbiAyLjIwLjEgaW4gU3VyZWZpcmUgcHJvamVjdApSZWZlcmVuY2VzOiA8Q0FLdVZ6QlJLNUtoRVNUUEx0Z2U1Y3lDOUd1OCtjVzdOODROTzMrSHlvN3RqUDcrNlZBQG1haWwuZ21haWwuY29tPgpEYXRlOiBGcmksIDA4IFNlcCAyMDE3IDEwOjA5OjA3ICswMjAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk1OGw5aHg0a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpJbi1SZXBseS1UbzogPENBS3VWekJSSzVLaEVTVFBMdGdlNWN5QzlHdTgrY1c3Tjg0Tk8zK0h5bzd0alA3KzZWQUBtYWlsLmdtYWlsLmNvbT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpPbiB0b3Agb2YgdGhhdCBJJ2QgbGlrZSB0byBkbyBhIDIuMjAuMS1qcG1zIChvciAyLjIwLjEtamlnc2F3KSByZWxlYXNlLgpUaGlzIGhhcyB0aGUgc2FtZSBmaXhlcyBhcyAyLjIwLjEsIGJ1dCBhZGRzIHRvIHN1cHBvcnQgdG8gcnVuIG1vZHVsYXIgIApwcm9qZWN0cyB3aXRoIHRoZSBtb2R1bGUgcGF0aC4KSXQgY2FuJ3QgYmUgcGFydCBvZiB0aGUgc2FtZSByZWxlYXNlLCBiZWNhdXNlIEkgaGFkIHRvIHB1c2ggdGhlIEphdmEgIAp2ZXJzaW9uIGZvciBzb3VyY2UvdGFyZ2V0IHRvIDEuNwpGb3Igc3VyZWZpcmUgSSB0aGluayBpdCBpcyBiZXR0ZXIgdG8gZG8gdGhhdCBpbiBhIDMuMC4wIHJlbGVhc2UgdG9nZXRoZXIgIAp3aXRoIGFuIHVwZ3JhZGUgb2YgdGhlIE1hdmVuIGRlcGVuZGVuY2llcyB0byAzLjAKClJvYmVydAoKCk9uIFRodSwgMDcgU2VwIDIwMTcgMjM6MzQ6MTcgKzAyMDAsIFRpYm9yIERpZ2FuYSAgCjx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+IHdyb3RlOgoKPiBIaSBBbGwsCj4KPiBJIHdvdWxkIGxpa2UgdG8gc3RvcCBkZXZlbG9wbWVudCBpbiBTdXJlZmlyZSBtYXN0ZXIgdGlsbCBWZXJzaW9uIDIuMjAuMSAgCj4gWzFdCj4gaXMgcmVsZWFzZWQuIFRoZSByZWFzb24gaXMgdGhhdCBhbiBpbXBvcnRhbnQgaXNzdWUgd2l0aCBPdXQgT2YgTWVtb3J5ICAKPiBFcnJvcgo+IGlzIGZpeGVkLgo+Cj4gSSBoYXZlIHBsYW5uZWQgb25seSA1IHNpbXBsZSBmaXhlcywgdGhlIG1vc3Qgb2YgdGhlbSBvZmZlcmVkIGJ5IG91cgo+IGNvbnRyaWJ1dG9ycywgaW4gVmVyc2lvbiAyLjIwLjIsIGFuZCBvbmUgaW1wb3J0YW50IGlzc3VlIGluIDIuMjAuMy4KPgo+IFsxXToKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9cHJvamVjdCUyMCUzRCUyMFNVUkVGSVJFJTIwQU5EJTIwZml4VmVyc2lvbiUyMCUzRCUyMDIuMjAuMQo+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM4OTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIFNlcCAgOCAxMjozNDoxMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM4OTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOTlEODExOTIxQQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksICA4IFNlcCAyMDE3IDEyOjM0OjExICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzYxMTYgaW52b2tlZCBieSB1aWQgNTAwKTsgOCBTZXAgMjAxNyAxMjozNDoxMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzYwMzMgaW52b2tlZCBieSB1aWQgNTAwKTsgOCBTZXAgMjAxNyAxMjozNDoxMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM2MDE1IGludm9rZWQgYnkgdWlkIDk5KTsgOCBTZXAgMjAxNyAxMjozNDoxMCAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAwOCBTZXAgMjAxNyAxMjozNDoxMCArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDVFRTk3MUEwMEM1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAgOCBTZXAgMjAxNyAxMjozNDowOCArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKRGF0ZTogRnJpLCAwOCBTZXAgMjAxNyAxNDozNDowNyArMDIwMApTdWJqZWN0OiBXZWJzaXRlIHJlZGVzaWduCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk1OHlpNXlha2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCkhpLAoKIGZyb20gdGhlIG9wZW5zb3VyY2VkZXNpZ24gd2UndmUgcmVjZWl2ZWQgYSBjb3VwbGUgb2YgbWVzc2FnZXMgZnJvbSAgCmRlc2lnbmVycyB3YW50aW5nIHRvIGhlbHAgdXMgb24gdGhpcyB0b3BpYy4KV2UndmUgZGVjaWRlZCB0byBjcmVhdGUgYSBzZXBhcmF0ZSBpc3N1ZSBmb3IgaXQgb24gdGhlIGdpdGh1YiBwcm9qZWN0IG9mICAKb3BlbnNvdXJjZWRlc2lnblsxXS4KVGhpcyB3aWxsIG1ha2UgaXQgZWFzaWVyIHRvIGNvbW11bmljYXRlIHdpdGggZWFjaCBvdGhlci4KV2UndmUgY2hvc2VuIGZvciB0aGVpciBpc3N1ZSB0cmFja2luZyBzeXN0ZW0gaW5zdGVhZCBvZiBhIE1OR1NJVEUtaXNzdWUgdG8gIAptYWtlIGl0IGVhc2llciBmb3IgdGhlIGRlc2lnbmVycyB0byBkbyB0aGVpciB3b3JrLgpGb3IgdGhvc2UgaW50ZXJlc3RlZCBpbiBjb250cmlidXRpbmcgYW5kIHRvIGhlbHAgdGhpcyBmb3J3YXJkIGFyZSBmcmVlIHRvICAKam9pbi4KT25jZSB0aGVyZSBhcmUgcmVzdWx0cyB3b3J0aCBzaGFyaW5nIGhlcmUgd2UnbGwgZG8gc28uCgp0aGFua3MsClJvYmVydAoKWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuc291cmNlZGVzaWduL2pvYnMvaXNzdWVzLzI0NgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzOTAxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBTZXAgIDggMjA6MzM6NTQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTAxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDk2QzZBMUE5QUIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAgOCBTZXAgMjAxNyAyMDozMzo1NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI2MzM5IGludm9rZWQgYnkgdWlkIDUwMCk7IDggU2VwIDIwMTcgMjA6MzM6NTQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI2MjYyIGludm9rZWQgYnkgdWlkIDUwMCk7IDggU2VwIDIwMTcgMjA6MzM6NTQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNjI1MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDggU2VwIDIwMTcgMjA6MzM6NTQgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMDggU2VwIDIwMTcgMjA6MzM6NTQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmwgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCA4ODhCNjFBMDBGQjsKCUZyaSwgIDggU2VwIDIwMTcgMjA6MzM6NTEgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJUaWJvciBEaWdhbmEiIDx0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+LCAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IgogPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogV2FudCB0byBjdXQgcmVsZWFzZSBWZXJzaW9uIDIuMjAuMSBpbiBTdXJlZmlyZSBwcm9qZWN0ClJlZmVyZW5jZXM6IDxDQUt1VnpCUks1S2hFU1RQTHRnZTVjeUM5R3U4K2NXN044NE5PMytIeW83dGpQNys2VkFAbWFpbC5nbWFpbC5jb20+IDxvcC55NThsOWh4NGtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4gPENBS3VWekJULUNIRnJMQXM0cl9RNitod252aXJUcW0zTTA4RDZibUFhc2UzWF9YZWJKQUBtYWlsLmdtYWlsLmNvbT4KRGF0ZTogRnJpLCAwOCBTZXAgMjAxNyAyMjozMzo0OSArMDIwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55NTlrcW51Mmtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KSW4tUmVwbHktVG86IDxDQUt1VnpCVC1DSEZyTEFzNHJfUTYraHdudmlyVHFtM00wOEQ2Ym1BYXNlM1hfWGViSkFAbWFpbC5nbWFpbC5jb20+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKT24gRnJpLCAwOCBTZXAgMjAxNyAyMjozMTo1NSArMDIwMCwgVGlib3IgRGlnYW5hICAKPHRpYm9yLmRpZ2FuYUBnb29nbGVtYWlsLmNvbT4gd3JvdGU6Cgo+IFJlbGVhc2luZyAzLjAgaXMgbm90IHBvc3NpYmxlIHdpdGhpbiBvbmUgbW9udGguCj4gSXQgY2FuIGJlIG9ubHkgMy4wLU0xLiBJdCdzIG5vdCBhYm91dCBuZXcgQVBJIG9ubHkgaG93ZXZlciBvbGQgMy4wIGJyYW5jaAo+IGV4aXN0cywgd2UgcGxhbiB0byBpbnRyb2R1Y2UgRXh0ZW5zaW9ucywgYnJlYWsgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgIAo+IHdpdGgKPiBNYXZlbi9TeXN0ZW0gUHJvcGVydGllcyBhbmQgaW50cm9kdWNlIEpVbml0NS4KPgo+IEkgdGhpbmsgd2UgY2FuIHRoaW5rIG9mIHZlcnNpb24gMi4wIGZvciBKaWdzYXcuCj4gUm9iZXJ0LCBJIGRpZCBub3QgaGF2ZSB0aW1lIHRvIGFuYWx5c2UgeW91ciBicmFuY2ggeWV0IGJlY2F1c2UgSSB3YXMgYnVzeQo+IHRoaXMgd2Vlay4KPiBRdWVzdGlvbjogV2h5IHlvdSBuZWVkIEphdmEgNz8KClBsZXh1cy1KYXZhIHJlcXVpcmVzIEphdmEgNy4KCj4KPiBPbiBGcmksIFNlcCA4LCAyMDE3IGF0IDEwOjA5IEFNLCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Cj4gd3JvdGU6Cj4KPj4gT24gdG9wIG9mIHRoYXQgSSdkIGxpa2UgdG8gZG8gYSAyLjIwLjEtanBtcyAob3IgMi4yMC4xLWppZ3NhdykgcmVsZWFzZS4KPj4gVGhpcyBoYXMgdGhlIHNhbWUgZml4ZXMgYXMgMi4yMC4xLCBidXQgYWRkcyB0byBzdXBwb3J0IHRvIHJ1biBtb2R1bGFyCj4+IHByb2plY3RzIHdpdGggdGhlIG1vZHVsZSBwYXRoLgo+PiBJdCBjYW4ndCBiZSBwYXJ0IG9mIHRoZSBzYW1lIHJlbGVhc2UsIGJlY2F1c2UgSSBoYWQgdG8gcHVzaCB0aGUgSmF2YQo+PiB2ZXJzaW9uIGZvciBzb3VyY2UvdGFyZ2V0IHRvIDEuNwo+PiBGb3Igc3VyZWZpcmUgSSB0aGluayBpdCBpcyBiZXR0ZXIgdG8gZG8gdGhhdCBpbiBhIDMuMC4wIHJlbGVhc2UgdG9nZXRoZXIKPj4gd2l0aCBhbiB1cGdyYWRlIG9mIHRoZSBNYXZlbiBkZXBlbmRlbmNpZXMgdG8gMy4wCj4+Cj4+IFJvYmVydAo+Pgo+Pgo+Pgo+PiBPbiBUaHUsIDA3IFNlcCAyMDE3IDIzOjM0OjE3ICswMjAwLCBUaWJvciBEaWdhbmEgPAo+PiB0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+IHdyb3RlOgo+Pgo+PiBIaSBBbGwsCj4+Pgo+Pj4gSSB3b3VsZCBsaWtlIHRvIHN0b3AgZGV2ZWxvcG1lbnQgaW4gU3VyZWZpcmUgbWFzdGVyIHRpbGwgVmVyc2lvbiAyLjIwLjEKPj4+IFsxXQo+Pj4gaXMgcmVsZWFzZWQuIFRoZSByZWFzb24gaXMgdGhhdCBhbiBpbXBvcnRhbnQgaXNzdWUgd2l0aCBPdXQgT2YgTWVtb3J5Cj4+PiBFcnJvcgo+Pj4gaXMgZml4ZWQuCj4+Pgo+Pj4gSSBoYXZlIHBsYW5uZWQgb25seSA1IHNpbXBsZSBmaXhlcywgdGhlIG1vc3Qgb2YgdGhlbSBvZmZlcmVkIGJ5IG91cgo+Pj4gY29udHJpYnV0b3JzLCBpbiBWZXJzaW9uIDIuMjAuMiwgYW5kIG9uZSBpbXBvcnRhbnQgaXNzdWUgaW4gMi4yMC4zLgo+Pj4KPj4+IFsxXToKPj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJTNEJQo+Pj4gMjBTVVJFRklSRSUyMEFORCUyMGZpeFZlcnNpb24lMjAlM0QlMjAyLjIwLjEKPj4+Cj4+Pgo+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM4NTAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIFNlcCAgMSAxMzo1MDoyMyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM4NTAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRjE2NzAxQTVEOQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksICAxIFNlcCAyMDE3IDEzOjUwOjIzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjc3MzcgaW52b2tlZCBieSB1aWQgNTAwKTsgMSBTZXAgMjAxNyAxMzo1MDoyMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjc2MDAgaW52b2tlZCBieSB1aWQgNTAwKTsgMSBTZXAgMjAxNyAxMzo1MDoyMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI3NTg5IGludm9rZWQgYnkgdWlkIDk5KTsgMSBTZXAgMjAxNyAxMzo1MDoyMiAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAwMSBTZXAgMjAxNyAxMzo1MDoyMiArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDI1QzBDMUEwMEM3Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAgMSBTZXAgMjAxNyAxMzo1MDoyMCArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKRGF0ZTogRnJpLCAwMSBTZXAgMjAxNyAxNTo1MDoyMCArMDIwMApTdWJqZWN0OiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gQ29tcGlsZXIgUGx1Z2luIHZlcnNpb24gMy43LjAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTV2M2Q2cTJrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKSGksCgpXZSBzb2x2ZWQgNiBpc3N1ZXM6Cmh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZWN0SWQ9MTIzMTcyMjUmdmVyc2lvbj0xMjM0MTI2NiZzdHlsZU5hbWU9VGV4dAoKVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cmh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJTNEJTIwMTIzMTcyMjUlMjBBTkQlMjBzdGF0dXMlMjAlM0QlMjBPcGVuJTIwT1JERVIlMjBCWSUyMGtleSUyMERFU0MlMkMlMjBwcmlvcml0eSUyMERFU0MKClN0YWdpbmcgcmVwbzoKaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM1OS8KaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc2VydmljZS9sb2NhbC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM1OS9jb250ZW50L29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi1jb21waWxlci1wbHVnaW4vMy43LjAvbWF2ZW4tY29tcGlsZXItcGx1Z2luLTMuNy4wLXNvdXJjZS1yZWxlYXNlLnppcAoKU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cm1hdmVuLWNvbXBpbGVyLXBsdWdpbi0zLjcuMC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogIAoxMTQ4ZDhhMWY4OWU2OTAwYWZiMGNhMWRiZjc0ZjY0OTMyNDAyY2ZkCgpTdGFnaW5nIHNpdGU6Cmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWNvbXBpbGVyLXBsdWdpbi1MQVRFU1QvCgpHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKClZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCgpbIF0gKzEKWyBdICswClsgXSAtMQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzODQ4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBTZXAgIDEgMTA6MjE6MjkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzODQ4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEIxNjA4MTlGNDgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAgMSBTZXAgMjAxNyAxMDoyMToyOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg0OTA5IGludm9rZWQgYnkgdWlkIDUwMCk7IDEgU2VwIDIwMTcgMTA6MjE6MjkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg0ODMyIGludm9rZWQgYnkgdWlkIDUwMCk7IDEgU2VwIDIwMTcgMTA6MjE6MjkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NDgyMCBpbnZva2VkIGJ5IHVpZCA5OSk7IDEgU2VwIDIwMTcgMTA6MjE6MjkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMDEgU2VwIDIwMTcgMTA6MjE6MjkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmwgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCA1QTlCOTFBMDJDRgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgIDEgU2VwIDIwMTcgMTA6MjE6MjggKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBKRGVwcyBQbHVnaW4gdmVyc2lvbiAzLjEuMApSZWZlcmVuY2VzOiA8b3AueTVyNXI5bThrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkRhdGU6IEZyaSwgMDEgU2VwIDIwMTcgMTI6MjE6MjggKzAyMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTV2dHAyd2FrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkluLVJlcGx5LVRvOiA8b3AueTVyNXI5bThrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKKzEKCk9uIFdlZCwgMzAgQXVnIDIwMTcgMTI6NTE6MzUgKzAyMDAsIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4gIAp3cm90ZToKCj4gSGksCj4KPiBXZSBzb2x2ZWQgNCBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMxOTIyMyZ2ZXJzaW9uPTEyMzQxNDE1JnN0eWxlTmFtZT1UZXh0Cj4KPiBUaGVyZSBpcyBzdGlsbCBvbmUgaXNzdWUgbGVmdCBpbiBKSVJBOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJTNEJTIwMTIzMTkyMjMlMjBBTkQlMjBzdGF0dXMlMjAlM0QlMjBPcGVuJTIwT1JERVIlMjBCWSUyMGtleSUyMERFU0MlMkMlMjBwcmlvcml0eSUyMERFU0MKPgo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzU4Lwo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NlcnZpY2UvbG9jYWwvcmVwb3NpdG9yaWVzL21hdmVuLTEzNTgvY29udGVudC9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4tamRlcHMtcGx1Z2luLzMuMS4wL21hdmVuLWpkZXBzLXBsdWdpbi0zLjEuMC1zb3VyY2UtcmVsZWFzZS56aXAKPgo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IG1hdmVuLWpkZXBzLXBsdWdpbi0zLjEuMC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogIAo+IDI1YTU2ODYxMmI2M2QyNWE3NmU1NTRlNjIyNjI0YmZmYzFmMmVlY2UKPgo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1qZGVwcy1wbHVnaW4tTEFURVNULwo+Cj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPgo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4KPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzODU0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBTZXAgIDIgMTE6MTE6MzAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzODU0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEQ4RUM5MUE5OTQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgMiBTZXAgMjAxNyAxMToxMTozMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDc5NzY0IGludm9rZWQgYnkgdWlkIDUwMCk7IDIgU2VwIDIwMTcgMTE6MTE6MzAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc5NjI2IGludm9rZWQgYnkgdWlkIDUwMCk7IDIgU2VwIDIwMTcgMTE6MTE6MzAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3OTU5OSBpbnZva2VkIGJ5IHVpZCA5OSk7IDIgU2VwIDIwMTcgMTE6MTE6MjkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDIgU2VwIDIwMTcgMTE6MTE6MjkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmwgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCBCNjczNTFBMDJENTsKCVNhdCwgIDIgU2VwIDIwMTcgMTE6MTE6MjggKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtSRVNVTFRdIFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBKRGVwcyBQbHVnaW4gdmVyc2lvbiAzLjEuMApSZWZlcmVuY2VzOiA8b3AueTVyNXI5bThrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkRhdGU6IFNhdCwgMDIgU2VwIDIwMTcgMTM6MTE6MjYgKzAyMDAKQ2M6ICJBcGFjaGUgTWF2ZW4gUHJpdmF0ZSIgPHByaXZhdGVAbWF2ZW4uYXBhY2hlLm9yZz4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogUXVvdGVkLVByaW50YWJsZQpGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTV4cXBjaXdrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkluLVJlcGx5LVRvOiA8b3AueTVyNXI5bThrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKSGksCgpUaGUgdm90ZSBoYXMgcGFzc2VkIHdpdGggdGhlIGZvbGxvd2luZyByZXN1bHQ6CgorMSA6IE1hcmsgRGVycmljdXR0LCBSb2JlcnQgU2Nob2x0ZSwgS2FybCBIZWlueiBNYXJiYWlzZSwgSGVydj1FOSBCT1VURU09ClkKClBNQyBxdW9ydW06IHJlYWNoZWQKCkkgd2lsbCBwcm9tb3RlIHRoZSBhcnRpZmFjdHMgdG8gdGhlIGNlbnRyYWwgcmVwby4KCk9uIFdlZCwgMzAgQXVnIDIwMTcgMTI6NTE6MzUgKzAyMDAsIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz0KPiAgPQoKd3JvdGU6Cgo+IEhpLAo+Cj4gV2Ugc29sdmVkIDQgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZWN0SWQ9M0QxMjM9CjE5MjIzJnZlcnNpb249M0QxMjM0MTQxNSZzdHlsZU5hbWU9M0RUZXh0Cj4KPiBUaGVyZSBpcyBzdGlsbCBvbmUgaXNzdWUgbGVmdCBpbiBKSVJBOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlM0QlMjAxMjMxOTIyMyU9CjIwQU5EJTIwc3RhdHVzJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERT0KU0MKPgo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzU4Lwo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NlcnZpY2UvbG9jYWwvcmVwb3NpdG9yaWVzL21hdmVuLTEzNTgvY289Cm50ZW50L29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi1qZGVwcy1wbHVnaW4vMy4xLjAvbWF2ZW4tamRlcHMtcGx1Zz0KaW4tMy4xLjAtc291cmNlLXJlbGVhc2UuemlwCj4KPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBtYXZlbi1qZGVwcy1wbHVnaW4tMy4xLjAtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6ICA9Cgo+IDI1YTU2ODYxMmI2M2QyNWE3NmU1NTRlNjIyNjI0YmZmYzFmMmVlY2UKPgo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1qZGVwcy1wbHVnaW4tTEFURVNULwo+Cj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bT0KbAo+Cj4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPgo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM4NTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IFNlcCAgMiAxMTozMDoxNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM4NTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMkQwNzAxQTlEQQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsICAyIFNlcCAyMDE3IDExOjMwOjE0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTY1ODYgaW52b2tlZCBieSB1aWQgNTAwKTsgMiBTZXAgMjAxNyAxMTozMDoxMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTY1MTIgaW52b2tlZCBieSB1aWQgNTAwKTsgMiBTZXAgMjAxNyAxMTozMDoxMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk2NDk4IGludm9rZWQgYnkgdWlkIDk5KTsgMiBTZXAgMjAxNyAxMTozMDoxMiAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAwMiBTZXAgMjAxNyAxMTozMDoxMiArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDJGQUE5MUEwMkQ1OwoJU2F0LCAgMiBTZXAgMjAxNyAxMTozMDoxMCArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwgIkthcmwgSGVpbnogTWFyYmFpc2UiCiA8a2htYXJiYWlzZUBnbXguZGU+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gQ29tcGlsZXIgUGx1Z2luIHZlcnNpb24gMy43LjAKUmVmZXJlbmNlczogPG9wLnk1djNkNnEya2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgogPDYwOGQzM2QzLTY2NWItMzg0ZC1iZWMyLWI2ZWEzOGJjZWNkOEBnbXguZGU+CkRhdGU6IFNhdCwgMDIgU2VwIDIwMTcgMTM6MzA6MDggKzAyMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTV4cmtpYzhrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkluLVJlcGx5LVRvOiA8NjA4ZDMzZDMtNjY1Yi0zODRkLWJlYzItYjZlYTM4YmNlY2Q4QGdteC5kZT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpIaSBLYXJsIEhlaW56LAoKdGhpcyBpcyBhIHByb2JsZW0gd2l0aCB0aGUgZXJyb3ItcHJvbmUtY29tcGlsZXJbMV0sIGEgc3BlY2lmaWMgIAppbXBsZW1lbnRhdGlvbiBvZiB0aGUgY29tcGlsZXItYXBpIGFuZCBhbHNvIHdoZXJlIHRoaXMgbXVzdCBiZSBmaXhlZC4KWW91IG1pZ2h0IHdvbmRlciBpZiBpdCBzaG91bGQgYmUgdGVzdGVkIGhlcmUsIGJ1dCBub3cgd2UgYXJlIGF0IGxlYXN0ICAKYXdhcmUgdGhhdCBjdXJyZW50IGVycm9yLXByb25lLWNvbXBpbGVyIGlzIG5vdCBKYXZhOSBjb21wYXRpYmxlLiBJdCBzaG91bGQgIApub3QgYmUgYSBibG9ja2VyIGZvciB0aGUgbWF2ZW4tY29tcGlsZXItcGx1Z2luIGl0c2VsZi4KCnRoYW5rLApSb2JlcnQKClsxXSAgCmh0dHBzOi8vZ2l0aHViLmNvbS9jb2RlaGF1cy1wbGV4dXMvcGxleHVzLWNvbXBpbGVyL3RyZWUvbWFzdGVyL3BsZXh1cy1jb21waWxlcnMvcGxleHVzLWNvbXBpbGVyLWphdmFjLWVycm9ycHJvbmUKCgpPbiBTYXQsIDAyIFNlcCAyMDE3IDEzOjIzOjUwICswMjAwLCBLYXJsIEhlaW56IE1hcmJhaXNlICAKPGtobWFyYmFpc2VAZ214LmRlPiB3cm90ZToKCj4gSGksCj4KPiBJIGhhdmUgdGVzdGVkIHRoZSBmb2xsb3dpbmcgY29tYmluYXRpb25zOgo+Cj4gamRrMS43LjBfNzkuamRrCj4gICAgYXBhY2hlLW1hdmVuLTMuMC41Cj4gICAgYXBhY2hlLW1hdmVuLTMuMS4xCj4gICAgYXBhY2hlLW1hdmVuLTMuMi41Cj4gICAgYXBhY2hlLW1hdmVuLTMuMy4xCj4gICAgYXBhY2hlLW1hdmVuLTMuMy45Cj4gICAgYXBhY2hlLW1hdmVuLTMuNS4wCj4gamRrMS44LjBfMTMxLmpkawo+ICAgIGFwYWNoZS1tYXZlbi0zLjAuNQo+ICAgIGFwYWNoZS1tYXZlbi0zLjEuMQo+ICAgIGFwYWNoZS1tYXZlbi0zLjIuNQo+ICAgIGFwYWNoZS1tYXZlbi0zLjMuMQo+ICAgIGFwYWNoZS1tYXZlbi0zLjMuOQo+ICAgIGFwYWNoZS1tYXZlbi0zLjUuMAo+IGpkazEuOC4wXzE0NC5qZGsKPiAgICBhcGFjaGUtbWF2ZW4tMy4wLjUKPiAgICBhcGFjaGUtbWF2ZW4tMy4xLjEKPiAgICBhcGFjaGUtbWF2ZW4tMy4yLjUKPiAgICBhcGFjaGUtbWF2ZW4tMy4zLjEKPiAgICBhcGFjaGUtbWF2ZW4tMy4zLjkKPiAgICBhcGFjaGUtbWF2ZW4tMy41LjAKPiBqZGsxLjkuMF9lYSsxODEuamRrCj4gICAgYXBhY2hlLW1hdmVuLTMuMC41IEZBSUxFRCEhCj4gICAgYXBhY2hlLW1hdmVuLTMuMS4xIEZBSUxFRCEhCj4gICAgYXBhY2hlLW1hdmVuLTMuMi41IEZBSUxFRCEhCj4gICAgYXBhY2hlLW1hdmVuLTMuMy4xIEZBSUxFRCEhCj4gICAgYXBhY2hlLW1hdmVuLTMuMy45IEZBSUxFRCEhCj4gICAgYXBhY2hlLW1hdmVuLTMuNS4wIEZBSUxFRCEhCj4KPgo+IEJ1dCB0aGUgSkRLMS45LjBfZWErMTgxIGhhdmUgc2hvdyB0aGUgZm9sbG93aW5nIHJlc3VsdCAoZm9yIGFsbCBNYXZlbiAgCj4gdmVyc2lvbnMpOgo+Cj4gICAgICAgICBbRVJST1JdIEZhaWxlZCB0byBleGVjdXRlIGdvYWwgIAo+IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczptYXZlbi1jb21waWxlci1wbHVnaW46My43LjA6Y29tcGlsZSAgCj4gKGRlZmF1bHQtY29tcGlsZSkgb24gcHJvamVjdCBlcnJvci1wcm9uZS1jb21waWxlcjogRmF0YWwgZXJyb3IgIAo+IGNvbXBpbGluZzogQ29tcGlsZXJFeGNlcHRpb246IEludm9jYXRpb25UYXJnZXRFeGNlcHRpb246ICAKPiBqYXZhLm5pby5maWxlLk5vdERpcmVjdG9yeUV4Y2VwdGlvbjogIAo+IC9MaWJyYXJ5L0phdmEvSmF2YVZpcnR1YWxNYWNoaW5lcy9qZGsxLjkuMF9lYSsxODEuamRrL0NvbnRlbnRzL0hvbWUvbGliL21vZHVsZXMgIAo+IC0+IFtIZWxwIDFdCj4gICAgICAgICBvcmcuYXBhY2hlLm1hdmVuLmxpZmVjeWNsZS5MaWZlY3ljbGVFeGVjdXRpb25FeGNlcHRpb246IEZhaWxlZCAgCj4gdG8gZXhlY3V0ZSBnb2FsICAKPiBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM6bWF2ZW4tY29tcGlsZXItcGx1Z2luOjMuNy4wOmNvbXBpbGUgIAo+IChkZWZhdWx0LWNvbXBpbGUpIG9uIHByb2plY3QgZXJyb3ItcHJvbmUtY29tcGlsZXI6IEZhdGFsIGVycm9yIGNvbXBpbGluZwo+ICAgICAgICAgCWF0ICAKPiBvcmcuYXBhY2hlLm1hdmVuLmxpZmVjeWNsZS5pbnRlcm5hbC5Nb2pvRXhlY3V0b3IuZXhlY3V0ZShNb2pvRXhlY3V0b3IuamF2YToyMTcpCj4gICAgICAgICAJYXQgIAo+IG9yZy5hcGFjaGUubWF2ZW4ubGlmZWN5Y2xlLmludGVybmFsLk1vam9FeGVjdXRvci5leGVjdXRlKE1vam9FeGVjdXRvci5qYXZhOjE1MykKPiAgICAgICAgIAlhdCAgCj4gb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuaW50ZXJuYWwuTW9qb0V4ZWN1dG9yLmV4ZWN1dGUoTW9qb0V4ZWN1dG9yLmphdmE6MTQ1KQo+ICAgICAgICAgCWF0ICAKPiBvcmcuYXBhY2hlLm1hdmVuLmxpZmVjeWNsZS5pbnRlcm5hbC5MaWZlY3ljbGVNb2R1bGVCdWlsZGVyLmJ1aWxkUHJvamVjdChMaWZlY3ljbGVNb2R1bGVCdWlsZGVyLmphdmE6ODQpCj4gICAgICAgICAJYXQgIAo+IG9yZy5hcGFjaGUubWF2ZW4ubGlmZWN5Y2xlLmludGVybmFsLkxpZmVjeWNsZU1vZHVsZUJ1aWxkZXIuYnVpbGRQcm9qZWN0KExpZmVjeWNsZU1vZHVsZUJ1aWxkZXIuamF2YTo1OSkKPiAgICAgICAgIAlhdCAgCj4gb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuaW50ZXJuYWwuTGlmZWN5Y2xlU3RhcnRlci5zaW5nbGVUaHJlYWRlZEJ1aWxkKExpZmVjeWNsZVN0YXJ0ZXIuamF2YToxODMpCj4gICAgICAgICAJYXQgIAo+IG9yZy5hcGFjaGUubWF2ZW4ubGlmZWN5Y2xlLmludGVybmFsLkxpZmVjeWNsZVN0YXJ0ZXIuZXhlY3V0ZShMaWZlY3ljbGVTdGFydGVyLmphdmE6MTYxKQo+ICAgICAgICAgCWF0ICAKPiBvcmcuYXBhY2hlLm1hdmVuLkRlZmF1bHRNYXZlbi5kb0V4ZWN1dGUoRGVmYXVsdE1hdmVuLmphdmE6MzIwKQo+ICAgICAgICAgCWF0IG9yZy5hcGFjaGUubWF2ZW4uRGVmYXVsdE1hdmVuLmV4ZWN1dGUoRGVmYXVsdE1hdmVuLmphdmE6MTU2KQo+ICAgICAgICAgCWF0IG9yZy5hcGFjaGUubWF2ZW4uY2xpLk1hdmVuQ2xpLmV4ZWN1dGUoTWF2ZW5DbGkuamF2YTo1MzcpCj4gICAgICAgICAJYXQgb3JnLmFwYWNoZS5tYXZlbi5jbGkuTWF2ZW5DbGkuZG9NYWluKE1hdmVuQ2xpLmphdmE6MTk2KQo+ICAgICAgICAgCWF0IG9yZy5hcGFjaGUubWF2ZW4uY2xpLk1hdmVuQ2xpLm1haW4oTWF2ZW5DbGkuamF2YToxNDEpCj4gICAgICAgICAJYXQgIAo+IGphdmEuYmFzZS9qZGsuaW50ZXJuYWwucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlMChOYXRpdmUgIAo+IE1ldGhvZCkKPiAgICAgICAgIAlhdCAgCj4gamF2YS5iYXNlL2pkay5pbnRlcm5hbC5yZWZsZWN0Lk5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmphdmE6NjIpCj4gICAgICAgICAJYXQgIAo+IGphdmEuYmFzZS9qZGsuaW50ZXJuYWwucmVmbGVjdC5EZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShEZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmphdmE6NDMpCj4gICAgICAgICAJYXQgamF2YS5iYXNlL2phdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZva2UoTWV0aG9kLmphdmE6NTY0KQo+ICAgICAgICAgCWF0ICAKPiBvcmcuY29kZWhhdXMucGxleHVzLmNsYXNzd29ybGRzLmxhdW5jaGVyLkxhdW5jaGVyLmxhdW5jaEVuaGFuY2VkKExhdW5jaGVyLmphdmE6MjkwKQo+ICAgICAgICAgCWF0ICAKPiBvcmcuY29kZWhhdXMucGxleHVzLmNsYXNzd29ybGRzLmxhdW5jaGVyLkxhdW5jaGVyLmxhdW5jaChMYXVuY2hlci5qYXZhOjIzMCkKPiAgICAgICAgIAlhdCAgCj4gb3JnLmNvZGVoYXVzLnBsZXh1cy5jbGFzc3dvcmxkcy5sYXVuY2hlci5MYXVuY2hlci5tYWluV2l0aEV4aXRDb2RlKExhdW5jaGVyLmphdmE6NDA5KQo+ICAgICAgICAgCWF0ICAKPiBvcmcuY29kZWhhdXMucGxleHVzLmNsYXNzd29ybGRzLmxhdW5jaGVyLkxhdW5jaGVyLm1haW4oTGF1bmNoZXIuamF2YTozNTIpCj4gICAgICAgICBDYXVzZWQgYnk6IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLk1vam9FeGVjdXRpb25FeGNlcHRpb246IEZhdGFsICAKPiBlcnJvciBjb21waWxpbmcKPiAgICAgICAgIAlhdCAgCj4gb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW4uY29tcGlsZXIuQWJzdHJhY3RDb21waWxlck1vam8uZXhlY3V0ZShBYnN0cmFjdENvbXBpbGVyTW9qby5qYXZhOjEwODYpCj4gICAgICAgICAJYXQgIAo+IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLmNvbXBpbGVyLkNvbXBpbGVyTW9qby5leGVjdXRlKENvbXBpbGVyTW9qby5qYXZhOjE2OCkKPiAgICAgICAgIAlhdCAgCj4gb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW4uRGVmYXVsdEJ1aWxkUGx1Z2luTWFuYWdlci5leGVjdXRlTW9qbyhEZWZhdWx0QnVpbGRQbHVnaW5NYW5hZ2VyLmphdmE6MTAxKQo+ICAgICAgICAgCWF0ICAKPiBvcmcuYXBhY2hlLm1hdmVuLmxpZmVjeWNsZS5pbnRlcm5hbC5Nb2pvRXhlY3V0b3IuZXhlY3V0ZShNb2pvRXhlY3V0b3IuamF2YToyMDkpCj4gICAgICAgICAJLi4uIDE5IG1vcmUKPiAgICAgICAgIENhdXNlZCBieTogb3JnLmNvZGVoYXVzLnBsZXh1cy5jb21waWxlci5Db21waWxlckV4Y2VwdGlvbgo+ICAgICAgICAgCWF0ICAKPiBvcmcuY29kZWhhdXMucGxleHVzLmNvbXBpbGVyLmphdmFjLmVycm9ycHJvbmUuSmF2YWNDb21waWxlcldpdGhFcnJvclByb25lLnBlcmZvcm1Db21waWxlKEphdmFjQ29tcGlsZXJXaXRoRXJyb3JQcm9uZS5qYXZhOjk1KQo+ICAgICAgICAgCWF0ICAKPiBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbi5jb21waWxlci5BYnN0cmFjdENvbXBpbGVyTW9qby5leGVjdXRlKEFic3RyYWN0Q29tcGlsZXJNb2pvLmphdmE6MTA3NSkKPiAgICAgICAgIAkuLi4gMjIgbW9yZQo+ICAgICAgICAgQ2F1c2VkIGJ5OiBqYXZhLmxhbmcucmVmbGVjdC5JbnZvY2F0aW9uVGFyZ2V0RXhjZXB0aW9uCj4gICAgICAgICAJYXQgIAo+IGphdmEuYmFzZS9qZGsuaW50ZXJuYWwucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlMChOYXRpdmUgIAo+IE1ldGhvZCkKPiAgICAgICAgIAlhdCAgCj4gamF2YS5iYXNlL2pkay5pbnRlcm5hbC5yZWZsZWN0Lk5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmphdmE6NjIpCj4gICAgICAgICAJYXQgIAo+IGphdmEuYmFzZS9qZGsuaW50ZXJuYWwucmVmbGVjdC5EZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShEZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmphdmE6NDMpCj4gICAgICAgICAJYXQgamF2YS5iYXNlL2phdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZva2UoTWV0aG9kLmphdmE6NTY0KQo+ICAgICAgICAgCWF0ICAKPiBvcmcuY29kZWhhdXMucGxleHVzLmNvbXBpbGVyLmphdmFjLmVycm9ycHJvbmUuSmF2YWNDb21waWxlcldpdGhFcnJvclByb25lLnBlcmZvcm1Db21waWxlKEphdmFjQ29tcGlsZXJXaXRoRXJyb3JQcm9uZS5qYXZhOjkxKQo+ICAgICAgICAgCS4uLiAyMyBtb3JlCj4gICAgICAgICBDYXVzZWQgYnk6IGphdmEuaW8uVW5jaGVja2VkSU9FeGNlcHRpb246ICAKPiBqYXZhLm5pby5maWxlLk5vdERpcmVjdG9yeUV4Y2VwdGlvbjogIAo+IC9MaWJyYXJ5L0phdmEvSmF2YVZpcnR1YWxNYWNoaW5lcy9qZGsxLjkuMF9lYSsxODEuamRrL0NvbnRlbnRzL0hvbWUvbGliL21vZHVsZXMKPiAgICAgICAgIAlhdCAgCj4gY29tLnN1bi50b29scy5qYXZhYy5maWxlLkxvY2F0aW9ucyRCb290Q2xhc3NQYXRoTG9jYXRpb25IYW5kbGVyLmxhenkoTG9jYXRpb25zLmphdmE6NzI1KQo+ICAgICAgICAgCWF0ICAKPiBjb20uc3VuLnRvb2xzLmphdmFjLmZpbGUuTG9jYXRpb25zJEJvb3RDbGFzc1BhdGhMb2NhdGlvbkhhbmRsZXIuaXNEZWZhdWx0KExvY2F0aW9ucy5qYXZhOjU1OSkKPiAgICAgICAgIAlhdCAgCj4gY29tLnN1bi50b29scy5qYXZhYy5maWxlLkxvY2F0aW9ucy5pc0RlZmF1bHRCb290Q2xhc3NQYXRoKExvY2F0aW9ucy5qYXZhOjEyOSkKPiAgICAgICAgIAlhdCAgCj4gY29tLnN1bi50b29scy5qYXZhYy5maWxlLkJhc2VGaWxlTWFuYWdlci5pc0RlZmF1bHRCb290Q2xhc3NQYXRoKEJhc2VGaWxlTWFuYWdlci5qYXZhOjE0OSkKPiAgICAgICAgIAlhdCAgCj4gY29tLnN1bi50b29scy5qYXZhYy5tYWluLkFyZ3VtZW50cy52YWxpZGF0ZShBcmd1bWVudHMuamF2YTo0MTEpCj4gICAgICAgICAJYXQgY29tLnN1bi50b29scy5qYXZhYy5tYWluLk1haW4uY29tcGlsZShNYWluLmphdmE6MjE4KQo+ICAgICAgICAgCWF0ICAKPiBjb20uZ29vZ2xlLmVycm9ycHJvbmUuQmFzZUVycm9yUHJvbmVDb21waWxlci5ydW4oQmFzZUVycm9yUHJvbmVDb21waWxlci5qYXZhOjE4NykKPiAgICAgICAgIAlhdCAgCj4gY29tLmdvb2dsZS5lcnJvcnByb25lLkJhc2VFcnJvclByb25lQ29tcGlsZXIucnVuKEJhc2VFcnJvclByb25lQ29tcGlsZXIuamF2YTo5OCkKPiAgICAgICAgIAlhdCAgCj4gY29tLmdvb2dsZS5lcnJvcnByb25lLkVycm9yUHJvbmVDb21waWxlci5ydW4oRXJyb3JQcm9uZUNvbXBpbGVyLmphdmE6MTI4KQo+ICAgICAgICAgCWF0ICAKPiBvcmcuY29kZWhhdXMucGxleHVzLmNvbXBpbGVyLmphdmFjLmVycm9ycHJvbmUuSmF2YWNDb21waWxlcldpdGhFcnJvclByb25lJENvbXBpbGVySW52b2tlci5jb21waWxlKEphdmFjQ29tcGlsZXJXaXRoRXJyb3JQcm9uZS5qYXZhOjIyMikKPiAgICAgICAgIAkuLi4gMjggbW9yZQo+ICAgICAgICAgQ2F1c2VkIGJ5OiBqYXZhLm5pby5maWxlLk5vdERpcmVjdG9yeUV4Y2VwdGlvbjogIAo+IC9MaWJyYXJ5L0phdmEvSmF2YVZpcnR1YWxNYWNoaW5lcy9qZGsxLjkuMF9lYSsxODEuamRrL0NvbnRlbnRzL0hvbWUvbGliL21vZHVsZXMKPiAgICAgICAgIAlhdCAgCj4gamF2YS5iYXNlL3N1bi5uaW8uZnMuVW5peEZpbGVTeXN0ZW1Qcm92aWRlci5uZXdEaXJlY3RvcnlTdHJlYW0oVW5peEZpbGVTeXN0ZW1Qcm92aWRlci5qYXZhOjQwNykKPiAgICAgICAgIAlhdCAgCj4gamF2YS5iYXNlL2phdmEubmlvLmZpbGUuRmlsZXMubmV3RGlyZWN0b3J5U3RyZWFtKEZpbGVzLmphdmE6NDY1KQo+ICAgICAgICAgCWF0IGphdmEuYmFzZS9qYXZhLm5pby5maWxlLkZpbGVzLmxpc3QoRmlsZXMuamF2YTozNTI0KQo+ICAgICAgICAgCWF0ICAKPiBjb20uc3VuLnRvb2xzLmphdmFjLmZpbGUuTG9jYXRpb25zJEJvb3RDbGFzc1BhdGhMb2NhdGlvbkhhbmRsZXIuc3lzdGVtQ2xhc3NlcyhMb2NhdGlvbnMuamF2YTo2NzgpCj4gICAgICAgICAJYXQgIAo+IGNvbS5zdW4udG9vbHMuamF2YWMuZmlsZS5Mb2NhdGlvbnMkQm9vdENsYXNzUGF0aExvY2F0aW9uSGFuZGxlci5jb21wdXRlUGF0aChMb2NhdGlvbnMuamF2YTo2MzQpCj4gICAgICAgICAJYXQgIAo+IGNvbS5zdW4udG9vbHMuamF2YWMuZmlsZS5Mb2NhdGlvbnMkQm9vdENsYXNzUGF0aExvY2F0aW9uSGFuZGxlci5sYXp5KExvY2F0aW9ucy5qYXZhOjcyMikKPiAgICAgICAgIAkuLi4gMzcgbW9yZQo+ICAgICAgICAgW0VSUk9SXQo+ICAgICAgICAgW0VSUk9SXQo+ICAgICAgICAgW0VSUk9SXSBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXJyb3JzIGFuZCBwb3NzaWJsZSAgCj4gc29sdXRpb25zLCBwbGVhc2UgcmVhZCB0aGUgZm9sbG93aW5nIGFydGljbGVzOgo+ICAgICAgICAgW0VSUk9SXSBbSGVscCAxXSAgCj4gaHR0cDovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kaXNwbGF5L01BVkVOL01vam9FeGVjdXRpb25FeGNlcHRpb24KPiAgICAgICAgIFJ1bm5pbmcgcG9zdC1idWlsZCBzY3JpcHQ6ICAKPiAvVXNlcnMva2FtYS9tYXZlbi1yZWxlYXNlLWNoZWNrZXIvcmVsZWFzZS10ZXN0L2pkazEuOS4wX2VhKzE4MS5qZGsvYXBhY2hlLW1hdmVuLTMuMC41L21hdmVuLWNvbXBpbGVyLXBsdWdpbi0zLjcuMC90YXJnZXQvaXQvZXJyb3ItcHJvbmUtY29tcGlsZXIvdmVyaWZ5Lmdyb292eQo+Cj4KPiBCYXNlZCBvbiB3aGF0IEkgY2FuIHNlZSBoZXJlIG9uIE1hY09TOiBUaGUgbW9kdWxlcyBpbiBKREsgOSBpcyBhIGZpbGUgIAo+IGFuZCBub3QgZGlyZWN0b3J5Li4uVGhlIHF1ZXN0aW9uIGlzIHRoaXMgYW4gTWFjT1Mgb25seSBwaGVub21lbm9uID8gT3IgIAo+IGlzIHRoaXMgYSBnZW5lcmFsIHNpdHVhdGlvbj8KPgo+IEtpbmQgcmVnYXJkcwo+IEthcmwgSGVpbnogTWFyYmFpc2UKPgo+Cj4gT24gMDEvMDkvMTcgMTU6NTAsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+PiBIaSwKPj4gIFdlIHNvbHZlZCA2IGlzc3VlczoKPj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMxNzIyNSZ2ZXJzaW9uPTEyMzQxMjY2JnN0eWxlTmFtZT1UZXh0ICAKPj4gICBUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKPj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPXByb2plY3QlMjAlM0QlMjAxMjMxNzIyNSUyMEFORCUyMHN0YXR1cyUyMCUzRCUyME9wZW4lMjBPUkRFUiUyMEJZJTIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQyAgCj4+ICAgU3RhZ2luZyByZXBvOgo+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzU5Lwo+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zZXJ2aWNlL2xvY2FsL3JlcG9zaXRvcmllcy9tYXZlbi0xMzU5L2NvbnRlbnQvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL21hdmVuLWNvbXBpbGVyLXBsdWdpbi8zLjcuMC9tYXZlbi1jb21waWxlci1wbHVnaW4tMy43LjAtc291cmNlLXJlbGVhc2UuemlwICAKPj4gICBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPj4gbWF2ZW4tY29tcGlsZXItcGx1Z2luLTMuNy4wLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOiAgCj4+IDExNDhkOGExZjg5ZTY5MDBhZmIwY2ExZGJmNzRmNjQ5MzI0MDJjZmQKPj4gIFN0YWdpbmcgc2l0ZToKPj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tY29tcGlsZXItcGx1Z2luLUxBVEVTVC8KPj4gIEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+PiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+PiAgVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPj4gIFsgXSArMQo+PiBbIF0gKzAKPj4gWyBdIC0xCj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyMzg1OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgU2VwICAyIDEyOjE2OjI2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzg1OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA1OUU2NzFBQTVGCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDIgU2VwIDIwMTcgMTI6MTY6MjYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzMzI5OCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIFNlcCAyMDE3IDEyOjE2OjI1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMzIyMCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIFNlcCAyMDE3IDEyOjE2OjI1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzMyMDYgaW52b2tlZCBieSB1aWQgOTkpOyAyIFNlcCAyMDE3IDEyOjE2OjI1IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDAyIFNlcCAyMDE3IDEyOjE2OjI1ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgODNGQjUxQTAyQzA7CglTYXQsICAyIFNlcCAyMDE3IDEyOjE2OjIzICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LCAiS2FybCBIZWlueiBNYXJiYWlzZSIKIDxraG1hcmJhaXNlQGdteC5kZT4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBDb21waWxlciBQbHVnaW4gdmVyc2lvbiAzLjcuMApSZWZlcmVuY2VzOiA8b3AueTV2M2Q2cTJrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CiA8NjA4ZDMzZDMtNjY1Yi0zODRkLWJlYzItYjZlYTM4YmNlY2Q4QGdteC5kZT4KIDxvcC55NXhya2ljOGtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KIDwwNjE4MmUwNi1mMmE3LTFhY2UtOTliMy01YWZlMDNhYjNmZjNAZ214LmRlPgpEYXRlOiBTYXQsIDAyIFNlcCAyMDE3IDE0OjE2OjIyICswMjAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk1eHRwa3U4a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpJbi1SZXBseS1UbzogPDA2MTgyZTA2LWYyYTctMWFjZS05OWIzLTVhZmUwM2FiM2ZmM0BnbXguZGU+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKT24gU2F0LCAwMiBTZXAgMjAxNyAxNDowNjoyMCArMDIwMCwgS2FybCBIZWlueiBNYXJiYWlzZSAgCjxraG1hcmJhaXNlQGdteC5kZT4gd3JvdGU6Cgo+IEhpIFJvYmVydCwKPgo+IE9uIDAyLzA5LzE3IDEzOjMwLCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPj4gSGkgS2FybCBIZWlueiwKPj4gIHRoaXMgaXMgYSBwcm9ibGVtIHdpdGggdGhlIGVycm9yLXByb25lLWNvbXBpbGVyWzFdLCBhIHNwZWNpZmljICAKPj4gaW1wbGVtZW50YXRpb24gb2YgdGhlIGNvbXBpbGVyLWFwaSBhbmQgYWxzbyB3aGVyZSB0aGlzIG11c3QgYmUgZml4ZWQuCj4+IFlvdSBtaWdodCB3b25kZXIgaWYgaXQgc2hvdWxkIGJlIHRlc3RlZCBoZXJlLCBidXQgbm93IHdlIGFyZSBhdCBsZWFzdCAgCj4+IGF3YXJlIHRoYXQgY3VycmVudCBlcnJvci1wcm9uZS1jb21waWxlciBpcyBub3QgSmF2YTkgY29tcGF0aWJsZS4gSXQgIAo+PiBzaG91bGQgbm90IGJlIGEgYmxvY2tlciBmb3IgdGhlIG1hdmVuLWNvbXBpbGVyLXBsdWdpbiBpdHNlbGYuCj4KPiBPayB0aGUgcXVlc3Rpb24gaXMgd2hhdCBpcyBleGFjdGx5IHRoZSBwdXJwb3NlIGZvciB0aGlzICAKPiBlcnJvci1wcm9uZS1jb21waWxlciBwYXJ0IGluIE1hdmVuLUNvbXBpbGVyLVBsdWdpbiAocGxleHVzIGNvbXBpbGVyKSBhbmQgIAo+IHdoYXQga2luZCBvZiBwdXJwb3NlIGRvZXMgaXQgZnVsZmlsbD8KCk15IGd1ZXNzOiB0aGUgbWF2ZW4tY29tcGlsZXItcGx1Z2luIGlzIGJ1aWx0L3JlbGVhc2VkIG1vcmUgb2Z0ZW4sIHNvIHdpdGggIAp0aGlzIGNvbnN0cnVjdGlvbiBpdCBpcyBtdWNoIGVhc2llciB0byBkZXRlY3QgaWYgdGhlcmUgYXJlIGlzc3VlcyB3aXRoICAKc3BlY2lmaWMgY29tcGlsZXIgaW1wbGVtZW50YXRpb25zLgpTbyB5ZXMsIHRoZSB0aGlzIHBsdWdpbiBpcyBraW5kIG9mIGJlaW5nIGFidXNlZCBmb3IgY29tcGF0aWJpbGl0eSBjaGVja3MuICAKSWYgcGxleHVzLWNvbXBpbGVyIGhhcyBhIGNvbXBsZXRlIENJIHNldHVwLCB3ZSBjb3VsZCByZW1vdmUgaXQgaGVyZSAob3IgIApqdXN0IHRyeSB0byBmaXggaXQgd2hlbiBwb3NzaWJsZSkuCgpSb2JlcnQKCj4KPiBBcGFydCBmcm9tIHRoYXQ6ICsxIGZyb20gbWUgZm9yIHJlbGVhc2luZyBtYXZlbi1jb21waWxlci1wbHVnaW4uLi5pdCAgCj4gZml4ZXMgb3RoZXIgaXNzdWVzLi4uCj4KPiBLaW5kIHJlZ2FyZHMKPiBLYXJsIEhlaW56IE1hcmJhaXNlCj4KPj4gIHRoYW5rLAo+PiBSb2JlcnQKPj4gIFsxXSAgCj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9jb2RlaGF1cy1wbGV4dXMvcGxleHVzLWNvbXBpbGVyL3RyZWUvbWFzdGVyL3BsZXh1cy1jb21waWxlcnMvcGxleHVzLWNvbXBpbGVyLWphdmFjLWVycm9ycHJvbmUgIAo+PiAgICBPbiBTYXQsIDAyIFNlcCAyMDE3IDEzOjIzOjUwICswMjAwLCBLYXJsIEhlaW56IE1hcmJhaXNlICAKPj4gPGtobWFyYmFpc2VAZ214LmRlPiB3cm90ZToKPj4KPj4+IEhpLAo+Pj4KPj4+IEkgaGF2ZSB0ZXN0ZWQgdGhlIGZvbGxvd2luZyBjb21iaW5hdGlvbnM6Cj4+Pgo+Pj4gamRrMS43LjBfNzkuamRrCj4+PiAgICBhcGFjaGUtbWF2ZW4tMy4wLjUKPj4+ICAgIGFwYWNoZS1tYXZlbi0zLjEuMQo+Pj4gICAgYXBhY2hlLW1hdmVuLTMuMi41Cj4+PiAgICBhcGFjaGUtbWF2ZW4tMy4zLjEKPj4+ICAgIGFwYWNoZS1tYXZlbi0zLjMuOQo+Pj4gICAgYXBhY2hlLW1hdmVuLTMuNS4wCj4+PiBqZGsxLjguMF8xMzEuamRrCj4+PiAgICBhcGFjaGUtbWF2ZW4tMy4wLjUKPj4+ICAgIGFwYWNoZS1tYXZlbi0zLjEuMQo+Pj4gICAgYXBhY2hlLW1hdmVuLTMuMi41Cj4+PiAgICBhcGFjaGUtbWF2ZW4tMy4zLjEKPj4+ICAgIGFwYWNoZS1tYXZlbi0zLjMuOQo+Pj4gICAgYXBhY2hlLW1hdmVuLTMuNS4wCj4+PiBqZGsxLjguMF8xNDQuamRrCj4+PiAgICBhcGFjaGUtbWF2ZW4tMy4wLjUKPj4+ICAgIGFwYWNoZS1tYXZlbi0zLjEuMQo+Pj4gICAgYXBhY2hlLW1hdmVuLTMuMi41Cj4+PiAgICBhcGFjaGUtbWF2ZW4tMy4zLjEKPj4+ICAgIGFwYWNoZS1tYXZlbi0zLjMuOQo+Pj4gICAgYXBhY2hlLW1hdmVuLTMuNS4wCj4+PiBqZGsxLjkuMF9lYSsxODEuamRrCj4+PiAgICBhcGFjaGUtbWF2ZW4tMy4wLjUgRkFJTEVEISEKPj4+ICAgIGFwYWNoZS1tYXZlbi0zLjEuMSBGQUlMRUQhIQo+Pj4gICAgYXBhY2hlLW1hdmVuLTMuMi41IEZBSUxFRCEhCj4+PiAgICBhcGFjaGUtbWF2ZW4tMy4zLjEgRkFJTEVEISEKPj4+ICAgIGFwYWNoZS1tYXZlbi0zLjMuOSBGQUlMRUQhIQo+Pj4gICAgYXBhY2hlLW1hdmVuLTMuNS4wIEZBSUxFRCEhCj4+Pgo+Pj4KPj4+IEJ1dCB0aGUgSkRLMS45LjBfZWErMTgxIGhhdmUgc2hvdyB0aGUgZm9sbG93aW5nIHJlc3VsdCAoZm9yIGFsbCBNYXZlbiAgCj4+PiB2ZXJzaW9ucyk6Cj4+Pgo+Pj4gICAgICAgICBbRVJST1JdIEZhaWxlZCB0byBleGVjdXRlIGdvYWwgIAo+Pj4gb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zOm1hdmVuLWNvbXBpbGVyLXBsdWdpbjozLjcuMDpjb21waWxlICAKPj4+IChkZWZhdWx0LWNvbXBpbGUpIG9uIHByb2plY3QgZXJyb3ItcHJvbmUtY29tcGlsZXI6IEZhdGFsIGVycm9yICAKPj4+IGNvbXBpbGluZzogQ29tcGlsZXJFeGNlcHRpb246IEludm9jYXRpb25UYXJnZXRFeGNlcHRpb246ICAKPj4+IGphdmEubmlvLmZpbGUuTm90RGlyZWN0b3J5RXhjZXB0aW9uOiAgCj4+PiAvTGlicmFyeS9KYXZhL0phdmFWaXJ0dWFsTWFjaGluZXMvamRrMS45LjBfZWErMTgxLmpkay9Db250ZW50cy9Ib21lL2xpYi9tb2R1bGVzICAKPj4+IC0+IFtIZWxwIDFdCj4+PiAgICAgICAgIG9yZy5hcGFjaGUubWF2ZW4ubGlmZWN5Y2xlLkxpZmVjeWNsZUV4ZWN1dGlvbkV4Y2VwdGlvbjogRmFpbGVkICAKPj4+IHRvIGV4ZWN1dGUgZ29hbCAgCj4+PiBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM6bWF2ZW4tY29tcGlsZXItcGx1Z2luOjMuNy4wOmNvbXBpbGUgIAo+Pj4gKGRlZmF1bHQtY29tcGlsZSkgb24gcHJvamVjdCBlcnJvci1wcm9uZS1jb21waWxlcjogRmF0YWwgZXJyb3IgIAo+Pj4gY29tcGlsaW5nCj4+PiAgICAgICAgICAgICBhdCAgCj4+PiBvcmcuYXBhY2hlLm1hdmVuLmxpZmVjeWNsZS5pbnRlcm5hbC5Nb2pvRXhlY3V0b3IuZXhlY3V0ZShNb2pvRXhlY3V0b3IuamF2YToyMTcpICAKPj4+ICAgICAgICAgICAgIGF0ICAKPj4+IG9yZy5hcGFjaGUubWF2ZW4ubGlmZWN5Y2xlLmludGVybmFsLk1vam9FeGVjdXRvci5leGVjdXRlKE1vam9FeGVjdXRvci5qYXZhOjE1MykgIAo+Pj4gICAgICAgICAgICAgYXQgIAo+Pj4gb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuaW50ZXJuYWwuTW9qb0V4ZWN1dG9yLmV4ZWN1dGUoTW9qb0V4ZWN1dG9yLmphdmE6MTQ1KSAgCj4+PiAgICAgICAgICAgICBhdCAgCj4+PiBvcmcuYXBhY2hlLm1hdmVuLmxpZmVjeWNsZS5pbnRlcm5hbC5MaWZlY3ljbGVNb2R1bGVCdWlsZGVyLmJ1aWxkUHJvamVjdChMaWZlY3ljbGVNb2R1bGVCdWlsZGVyLmphdmE6ODQpICAKPj4+ICAgICAgICAgICAgIGF0ICAKPj4+IG9yZy5hcGFjaGUubWF2ZW4ubGlmZWN5Y2xlLmludGVybmFsLkxpZmVjeWNsZU1vZHVsZUJ1aWxkZXIuYnVpbGRQcm9qZWN0KExpZmVjeWNsZU1vZHVsZUJ1aWxkZXIuamF2YTo1OSkgIAo+Pj4gICAgICAgICAgICAgYXQgIAo+Pj4gb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuaW50ZXJuYWwuTGlmZWN5Y2xlU3RhcnRlci5zaW5nbGVUaHJlYWRlZEJ1aWxkKExpZmVjeWNsZVN0YXJ0ZXIuamF2YToxODMpICAKPj4+ICAgICAgICAgICAgIGF0ICAKPj4+IG9yZy5hcGFjaGUubWF2ZW4ubGlmZWN5Y2xlLmludGVybmFsLkxpZmVjeWNsZVN0YXJ0ZXIuZXhlY3V0ZShMaWZlY3ljbGVTdGFydGVyLmphdmE6MTYxKSAgCj4+PiAgICAgICAgICAgICBhdCAgCj4+PiBvcmcuYXBhY2hlLm1hdmVuLkRlZmF1bHRNYXZlbi5kb0V4ZWN1dGUoRGVmYXVsdE1hdmVuLmphdmE6MzIwKQo+Pj4gICAgICAgICAgICAgYXQgIAo+Pj4gb3JnLmFwYWNoZS5tYXZlbi5EZWZhdWx0TWF2ZW4uZXhlY3V0ZShEZWZhdWx0TWF2ZW4uamF2YToxNTYpCj4+PiAgICAgICAgICAgICBhdCBvcmcuYXBhY2hlLm1hdmVuLmNsaS5NYXZlbkNsaS5leGVjdXRlKE1hdmVuQ2xpLmphdmE6NTM3KQo+Pj4gICAgICAgICAgICAgYXQgb3JnLmFwYWNoZS5tYXZlbi5jbGkuTWF2ZW5DbGkuZG9NYWluKE1hdmVuQ2xpLmphdmE6MTk2KQo+Pj4gICAgICAgICAgICAgYXQgb3JnLmFwYWNoZS5tYXZlbi5jbGkuTWF2ZW5DbGkubWFpbihNYXZlbkNsaS5qYXZhOjE0MSkKPj4+ICAgICAgICAgICAgIGF0ICAKPj4+IGphdmEuYmFzZS9qZGsuaW50ZXJuYWwucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlMChOYXRpdmUgIAo+Pj4gTWV0aG9kKQo+Pj4gICAgICAgICAgICAgYXQgIAo+Pj4gamF2YS5iYXNlL2pkay5pbnRlcm5hbC5yZWZsZWN0Lk5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmphdmE6NjIpICAKPj4+ICAgICAgICAgICAgIGF0ICAKPj4+IGphdmEuYmFzZS9qZGsuaW50ZXJuYWwucmVmbGVjdC5EZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShEZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmphdmE6NDMpICAKPj4+ICAgICAgICAgICAgIGF0ICAKPj4+IGphdmEuYmFzZS9qYXZhLmxhbmcucmVmbGVjdC5NZXRob2QuaW52b2tlKE1ldGhvZC5qYXZhOjU2NCkKPj4+ICAgICAgICAgICAgIGF0ICAKPj4+IG9yZy5jb2RlaGF1cy5wbGV4dXMuY2xhc3N3b3JsZHMubGF1bmNoZXIuTGF1bmNoZXIubGF1bmNoRW5oYW5jZWQoTGF1bmNoZXIuamF2YToyOTApICAKPj4+ICAgICAgICAgICAgIGF0ICAKPj4+IG9yZy5jb2RlaGF1cy5wbGV4dXMuY2xhc3N3b3JsZHMubGF1bmNoZXIuTGF1bmNoZXIubGF1bmNoKExhdW5jaGVyLmphdmE6MjMwKSAgCj4+PiAgICAgICAgICAgICBhdCAgCj4+PiBvcmcuY29kZWhhdXMucGxleHVzLmNsYXNzd29ybGRzLmxhdW5jaGVyLkxhdW5jaGVyLm1haW5XaXRoRXhpdENvZGUoTGF1bmNoZXIuamF2YTo0MDkpICAKPj4+ICAgICAgICAgICAgIGF0ICAKPj4+IG9yZy5jb2RlaGF1cy5wbGV4dXMuY2xhc3N3b3JsZHMubGF1bmNoZXIuTGF1bmNoZXIubWFpbihMYXVuY2hlci5qYXZhOjM1MikKPj4+ICAgICAgICAgQ2F1c2VkIGJ5OiBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbi5Nb2pvRXhlY3V0aW9uRXhjZXB0aW9uOiAgCj4+PiBGYXRhbCBlcnJvciBjb21waWxpbmcKPj4+ICAgICAgICAgICAgIGF0ICAKPj4+IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLmNvbXBpbGVyLkFic3RyYWN0Q29tcGlsZXJNb2pvLmV4ZWN1dGUoQWJzdHJhY3RDb21waWxlck1vam8uamF2YToxMDg2KSAgCj4+PiAgICAgICAgICAgICBhdCAgCj4+PiBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbi5jb21waWxlci5Db21waWxlck1vam8uZXhlY3V0ZShDb21waWxlck1vam8uamF2YToxNjgpICAKPj4+ICAgICAgICAgICAgIGF0ICAKPj4+IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLkRlZmF1bHRCdWlsZFBsdWdpbk1hbmFnZXIuZXhlY3V0ZU1vam8oRGVmYXVsdEJ1aWxkUGx1Z2luTWFuYWdlci5qYXZhOjEwMSkgIAo+Pj4gICAgICAgICAgICAgYXQgIAo+Pj4gb3JnLmFwYWNoZS5tYXZlbi5saWZlY3ljbGUuaW50ZXJuYWwuTW9qb0V4ZWN1dG9yLmV4ZWN1dGUoTW9qb0V4ZWN1dG9yLmphdmE6MjA5KSAgCj4+PiAgICAgICAgICAgICAuLi4gMTkgbW9yZQo+Pj4gICAgICAgICBDYXVzZWQgYnk6IG9yZy5jb2RlaGF1cy5wbGV4dXMuY29tcGlsZXIuQ29tcGlsZXJFeGNlcHRpb24KPj4+ICAgICAgICAgICAgIGF0ICAKPj4+IG9yZy5jb2RlaGF1cy5wbGV4dXMuY29tcGlsZXIuamF2YWMuZXJyb3Jwcm9uZS5KYXZhY0NvbXBpbGVyV2l0aEVycm9yUHJvbmUucGVyZm9ybUNvbXBpbGUoSmF2YWNDb21waWxlcldpdGhFcnJvclByb25lLmphdmE6OTUpICAKPj4+ICAgICAgICAgICAgIGF0ICAKPj4+IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luLmNvbXBpbGVyLkFic3RyYWN0Q29tcGlsZXJNb2pvLmV4ZWN1dGUoQWJzdHJhY3RDb21waWxlck1vam8uamF2YToxMDc1KSAgCj4+PiAgICAgICAgICAgICAuLi4gMjIgbW9yZQo+Pj4gICAgICAgICBDYXVzZWQgYnk6IGphdmEubGFuZy5yZWZsZWN0Lkludm9jYXRpb25UYXJnZXRFeGNlcHRpb24KPj4+ICAgICAgICAgICAgIGF0ICAKPj4+IGphdmEuYmFzZS9qZGsuaW50ZXJuYWwucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlMChOYXRpdmUgIAo+Pj4gTWV0aG9kKQo+Pj4gICAgICAgICAgICAgYXQgIAo+Pj4gamF2YS5iYXNlL2pkay5pbnRlcm5hbC5yZWZsZWN0Lk5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmphdmE6NjIpICAKPj4+ICAgICAgICAgICAgIGF0ICAKPj4+IGphdmEuYmFzZS9qZGsuaW50ZXJuYWwucmVmbGVjdC5EZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShEZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmphdmE6NDMpICAKPj4+ICAgICAgICAgICAgIGF0ICAKPj4+IGphdmEuYmFzZS9qYXZhLmxhbmcucmVmbGVjdC5NZXRob2QuaW52b2tlKE1ldGhvZC5qYXZhOjU2NCkKPj4+ICAgICAgICAgICAgIGF0ICAKPj4+IG9yZy5jb2RlaGF1cy5wbGV4dXMuY29tcGlsZXIuamF2YWMuZXJyb3Jwcm9uZS5KYXZhY0NvbXBpbGVyV2l0aEVycm9yUHJvbmUucGVyZm9ybUNvbXBpbGUoSmF2YWNDb21waWxlcldpdGhFcnJvclByb25lLmphdmE6OTEpICAKPj4+ICAgICAgICAgICAgIC4uLiAyMyBtb3JlCj4+PiAgICAgICAgIENhdXNlZCBieTogamF2YS5pby5VbmNoZWNrZWRJT0V4Y2VwdGlvbjogIAo+Pj4gamF2YS5uaW8uZmlsZS5Ob3REaXJlY3RvcnlFeGNlcHRpb246ICAKPj4+IC9MaWJyYXJ5L0phdmEvSmF2YVZpcnR1YWxNYWNoaW5lcy9qZGsxLjkuMF9lYSsxODEuamRrL0NvbnRlbnRzL0hvbWUvbGliL21vZHVsZXMgIAo+Pj4gICAgICAgICAgICAgYXQgIAo+Pj4gY29tLnN1bi50b29scy5qYXZhYy5maWxlLkxvY2F0aW9ucyRCb290Q2xhc3NQYXRoTG9jYXRpb25IYW5kbGVyLmxhenkoTG9jYXRpb25zLmphdmE6NzI1KSAgCj4+PiAgICAgICAgICAgICBhdCAgCj4+PiBjb20uc3VuLnRvb2xzLmphdmFjLmZpbGUuTG9jYXRpb25zJEJvb3RDbGFzc1BhdGhMb2NhdGlvbkhhbmRsZXIuaXNEZWZhdWx0KExvY2F0aW9ucy5qYXZhOjU1OSkgIAo+Pj4gICAgICAgICAgICAgYXQgIAo+Pj4gY29tLnN1bi50b29scy5qYXZhYy5maWxlLkxvY2F0aW9ucy5pc0RlZmF1bHRCb290Q2xhc3NQYXRoKExvY2F0aW9ucy5qYXZhOjEyOSkgIAo+Pj4gICAgICAgICAgICAgYXQgIAo+Pj4gY29tLnN1bi50b29scy5qYXZhYy5maWxlLkJhc2VGaWxlTWFuYWdlci5pc0RlZmF1bHRCb290Q2xhc3NQYXRoKEJhc2VGaWxlTWFuYWdlci5qYXZhOjE0OSkgIAo+Pj4gICAgICAgICAgICAgYXQgIAo+Pj4gY29tLnN1bi50b29scy5qYXZhYy5tYWluLkFyZ3VtZW50cy52YWxpZGF0ZShBcmd1bWVudHMuamF2YTo0MTEpCj4+PiAgICAgICAgICAgICBhdCBjb20uc3VuLnRvb2xzLmphdmFjLm1haW4uTWFpbi5jb21waWxlKE1haW4uamF2YToyMTgpCj4+PiAgICAgICAgICAgICBhdCAgCj4+PiBjb20uZ29vZ2xlLmVycm9ycHJvbmUuQmFzZUVycm9yUHJvbmVDb21waWxlci5ydW4oQmFzZUVycm9yUHJvbmVDb21waWxlci5qYXZhOjE4NykgIAo+Pj4gICAgICAgICAgICAgYXQgIAo+Pj4gY29tLmdvb2dsZS5lcnJvcnByb25lLkJhc2VFcnJvclByb25lQ29tcGlsZXIucnVuKEJhc2VFcnJvclByb25lQ29tcGlsZXIuamF2YTo5OCkgIAo+Pj4gICAgICAgICAgICAgYXQgIAo+Pj4gY29tLmdvb2dsZS5lcnJvcnByb25lLkVycm9yUHJvbmVDb21waWxlci5ydW4oRXJyb3JQcm9uZUNvbXBpbGVyLmphdmE6MTI4KQo+Pj4gICAgICAgICAgICAgYXQgIAo+Pj4gb3JnLmNvZGVoYXVzLnBsZXh1cy5jb21waWxlci5qYXZhYy5lcnJvcnByb25lLkphdmFjQ29tcGlsZXJXaXRoRXJyb3JQcm9uZSRDb21waWxlckludm9rZXIuY29tcGlsZShKYXZhY0NvbXBpbGVyV2l0aEVycm9yUHJvbmUuamF2YToyMjIpICAKPj4+ICAgICAgICAgICAgIC4uLiAyOCBtb3JlCj4+PiAgICAgICAgIENhdXNlZCBieTogamF2YS5uaW8uZmlsZS5Ob3REaXJlY3RvcnlFeGNlcHRpb246ICAKPj4+IC9MaWJyYXJ5L0phdmEvSmF2YVZpcnR1YWxNYWNoaW5lcy9qZGsxLjkuMF9lYSsxODEuamRrL0NvbnRlbnRzL0hvbWUvbGliL21vZHVsZXMgIAo+Pj4gICAgICAgICAgICAgYXQgIAo+Pj4gamF2YS5iYXNlL3N1bi5uaW8uZnMuVW5peEZpbGVTeXN0ZW1Qcm92aWRlci5uZXdEaXJlY3RvcnlTdHJlYW0oVW5peEZpbGVTeXN0ZW1Qcm92aWRlci5qYXZhOjQwNykgIAo+Pj4gICAgICAgICAgICAgYXQgIAo+Pj4gamF2YS5iYXNlL2phdmEubmlvLmZpbGUuRmlsZXMubmV3RGlyZWN0b3J5U3RyZWFtKEZpbGVzLmphdmE6NDY1KQo+Pj4gICAgICAgICAgICAgYXQgamF2YS5iYXNlL2phdmEubmlvLmZpbGUuRmlsZXMubGlzdChGaWxlcy5qYXZhOjM1MjQpCj4+PiAgICAgICAgICAgICBhdCAgCj4+PiBjb20uc3VuLnRvb2xzLmphdmFjLmZpbGUuTG9jYXRpb25zJEJvb3RDbGFzc1BhdGhMb2NhdGlvbkhhbmRsZXIuc3lzdGVtQ2xhc3NlcyhMb2NhdGlvbnMuamF2YTo2NzgpICAKPj4+ICAgICAgICAgICAgIGF0ICAKPj4+IGNvbS5zdW4udG9vbHMuamF2YWMuZmlsZS5Mb2NhdGlvbnMkQm9vdENsYXNzUGF0aExvY2F0aW9uSGFuZGxlci5jb21wdXRlUGF0aChMb2NhdGlvbnMuamF2YTo2MzQpICAKPj4+ICAgICAgICAgICAgIGF0ICAKPj4+IGNvbS5zdW4udG9vbHMuamF2YWMuZmlsZS5Mb2NhdGlvbnMkQm9vdENsYXNzUGF0aExvY2F0aW9uSGFuZGxlci5sYXp5KExvY2F0aW9ucy5qYXZhOjcyMikgIAo+Pj4gICAgICAgICAgICAgLi4uIDM3IG1vcmUKPj4+ICAgICAgICAgW0VSUk9SXQo+Pj4gICAgICAgICBbRVJST1JdCj4+PiAgICAgICAgIFtFUlJPUl0gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGVycm9ycyBhbmQgcG9zc2libGUgIAo+Pj4gc29sdXRpb25zLCBwbGVhc2UgcmVhZCB0aGUgZm9sbG93aW5nIGFydGljbGVzOgo+Pj4gICAgICAgICBbRVJST1JdIFtIZWxwIDFdICAKPj4+IGh0dHA6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9Nb2pvRXhlY3V0aW9uRXhjZXB0aW9uCj4+PiAgICAgICAgIFJ1bm5pbmcgcG9zdC1idWlsZCBzY3JpcHQ6ICAKPj4+IC9Vc2Vycy9rYW1hL21hdmVuLXJlbGVhc2UtY2hlY2tlci9yZWxlYXNlLXRlc3QvamRrMS45LjBfZWErMTgxLmpkay9hcGFjaGUtbWF2ZW4tMy4wLjUvbWF2ZW4tY29tcGlsZXItcGx1Z2luLTMuNy4wL3RhcmdldC9pdC9lcnJvci1wcm9uZS1jb21waWxlci92ZXJpZnkuZ3Jvb3Z5ICAKPj4+Cj4+PiBCYXNlZCBvbiB3aGF0IEkgY2FuIHNlZSBoZXJlIG9uIE1hY09TOiBUaGUgbW9kdWxlcyBpbiBKREsgOSBpcyBhIGZpbGUgIAo+Pj4gYW5kIG5vdCBkaXJlY3RvcnkuLi5UaGUgcXVlc3Rpb24gaXMgdGhpcyBhbiBNYWNPUyBvbmx5IHBoZW5vbWVub24gPyBPciAgCj4+PiBpcyB0aGlzIGEgZ2VuZXJhbCBzaXR1YXRpb24/Cj4+Pgo+Pj4gS2luZCByZWdhcmRzCj4+PiBLYXJsIEhlaW56IE1hcmJhaXNlCj4+Pgo+Pj4KPj4+IE9uIDAxLzA5LzE3IDE1OjUwLCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPj4+PiBIaSwKPj4+PiAgV2Ugc29sdmVkIDYgaXNzdWVzOgo+Pj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZWN0SWQ9MTIzMTcyMjUmdmVyc2lvbj0xMjM0MTI2NiZzdHlsZU5hbWU9VGV4dCAgCj4+Pj4gICBUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKPj4+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9cHJvamVjdCUyMCUzRCUyMDEyMzE3MjI1JTIwQU5EJTIwc3RhdHVzJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDICAKPj4+PiAgIFN0YWdpbmcgcmVwbzoKPj4+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzU5Lwo+Pj4+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NlcnZpY2UvbG9jYWwvcmVwb3NpdG9yaWVzL21hdmVuLTEzNTkvY29udGVudC9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4tY29tcGlsZXItcGx1Z2luLzMuNy4wL21hdmVuLWNvbXBpbGVyLXBsdWdpbi0zLjcuMC1zb3VyY2UtcmVsZWFzZS56aXAgIAo+Pj4+ICAgU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4+Pj4gbWF2ZW4tY29tcGlsZXItcGx1Z2luLTMuNy4wLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOiAgCj4+Pj4gMTE0OGQ4YTFmODllNjkwMGFmYjBjYTFkYmY3NGY2NDkzMjQwMmNmZAo+Pj4+ICBTdGFnaW5nIHNpdGU6Cj4+Pj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tY29tcGlsZXItcGx1Z2luLUxBVEVTVC8KPj4+PiAgR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4+Pj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPj4+PiAgVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPj4+PiAgWyBdICsxCj4+Pj4gWyBdICswCj4+Pj4gWyBdIC0xCj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyMzg1OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgU2VwICAyIDEyOjQ5OjEyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzg1OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA5QzM3MDFBQUJDCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDIgU2VwIDIwMTcgMTI6NDk6MTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2OTk3MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIFNlcCAyMDE3IDEyOjQ5OjEyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2OTg5MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyIFNlcCAyMDE3IDEyOjQ5OjEyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjk4NjkgaW52b2tlZCBieSB1aWQgOTkpOyAyIFNlcCAyMDE3IDEyOjQ5OjEyIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDAyIFNlcCAyMDE3IDEyOjQ5OjEyICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgQTgxMTgxQTAyQzA7CglTYXQsICAyIFNlcCAyMDE3IDEyOjQ5OjEwICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiBhbm5vdW5jZUBtYXZlbi5hcGFjaGUub3JnLCB1c2Vyc0BtYXZlbi5hcGFjaGUub3JnCkRhdGU6IFNhdCwgMDIgU2VwIDIwMTcgMTQ6NDk6MDggKzAyMDAKQ2M6IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtBTk5dIEFwYWNoZSBNYXZlbiBKRGVwcyBQbHVnaW4gMy4xLjAgUmVsZWFzZWQKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTV4dTc2Ym1rZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKVGhlIEFwYWNoZSBNYXZlbiB0ZWFtIGlzIHBsZWFzZWQgdG8gYW5ub3VuY2UgdGhlIHJlbGVhc2Ugb2YgdGhlIEFwYWNoZSAgCk1hdmVuIEpEZXBzIFBsdWdpbiwgdmVyc2lvbiAzLjEuMAoKVGhlIEpEZXBzIFBsdWdpbiB1c2VzIHRoZSBqZGVwcyB0b29sIHRvIGFuYWx5emUgY2xhc3NlcyBmb3IgaW50ZXJuYWwgQVBJICAKY2FsbHMuCgpodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy9tYXZlbi1qZGVwcy1wbHVnaW4vCgpZb3Ugc2hvdWxkIHNwZWNpZnkgdGhlIHZlcnNpb24gaW4geW91ciBwcm9qZWN0J3MgcGx1Z2luIGNvbmZpZ3VyYXRpb246Cgo8cGx1Z2luPgogICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CiAgIDxhcnRpZmFjdElkPm1hdmVuLWpkZXBzLXBsdWdpbjwvYXJ0aWZhY3RJZD4KICAgPHZlcnNpb24+My4xLjA8L3ZlcnNpb24+CjwvcGx1Z2luPgoKWW91IGNhbiBkb3dubG9hZCB0aGUgYXBwcm9wcmlhdGUgc291cmNlcyBldGMuIGZyb20gdGhlIGRvd25sb2FkIHBhZ2U6CgpodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy9tYXZlbi1qZGVwcy1wbHVnaW4vZG93bmxvYWQuY2dpCgpSZWxlYXNlIE5vdGVzIC0gTUpERVBTIC0gVmVyc2lvbiAzLjEuMAoKKiogSW1wcm92ZW1lbnQKICAgICAqIFtNSkRFUFMtNF0gLSBVcGdyYWRlIGNvbW1vbnMtbGFuZyB0byBiZSBhYmxlIHRvIHJ1biB3aXRoIEpESzkKICAgICAqIFtNSkRFUFMtNV0gLSBSZXF1aXJlIEphdmEgNwogICAgICogW01KREVQUy02XSAtIC1jcCBzaG91bGQgbm90IGR1cGxpY2F0ZWQgY2xhc3Nlcy9maWxlcyB0byBhbmFseXplCgoqKiBOZXcgRmVhdHVyZQogICAgICogW01KREVQUy0xXSAtIE1ha2UgdGhlIHBsdWdpbiB0aHJlYWQgc2FmZQoKCkVuam95LAoKLVRoZSBBcGFjaGUgTWF2ZW4gdGVhbQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MDkxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBTZXAgMjQgMTY6NDQ6MjEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDkxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDE2NUEyQ0ZDOQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDI0IFNlcCAyMDE3IDE2OjQ0OjIxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzg2MjggaW52b2tlZCBieSB1aWQgNTAwKTsgMjQgU2VwIDIwMTcgMTY6NDQ6MjAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc4NTU1IGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IFNlcCAyMDE3IDE2OjQ0OjIwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzg1NDMgaW52b2tlZCBieSB1aWQgOTkpOyAyNCBTZXAgMjAxNyAxNjo0NDoyMCAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAyNCBTZXAgMjAxNyAxNjo0NDoyMCArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDkzNEJDMUEwMDE5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAyNCBTZXAgMjAxNyAxNjo0NDoxOSArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogVW5kZXJzdGFuZGluZyBNTkctNjIwOSAod2FzOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEpClJlZmVyZW5jZXM6IDxDQStuUG5Nd01DcU9fRXRjQlc1XzNyTTcxLXRDcml0cDRVa3N5ZlBtREdBWXI2eHo9b1FAbWFpbC5nbWFpbC5jb20+IDxGMUY4QjNDRi1EREFDLTQ0QkEtQUVCNy00MTIyQzg4N0M0QUJAaG9udG9uLm9yZz4gPENBK25Qbk13Zl9CZnRZdXMtcm5Rck83bzUrZHVHRnowVkVhN05pb2hHMV9fWVV6cmM1d0BtYWlsLmdtYWlsLmNvbT4gPDE1MDU3OTY5MDguMjUxNjgwOC4xMTEwNjczMTI4LjYzNUFDMzVGQHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4gPG9wLnk2dHRtcmVia2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPiA8Q0ErblBuTXhGRkVUUW1xdGUwLTUwdTNFRlN3Ymc2eWlwdzVWU0JkTFB3VHpQaGRWazV3QG1haWwuZ21haWwuY29tPiA8b3AueTZ0djVrZjNrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDwxNTA1ODUzNTQwLjM0NDM0NjUuMTExMTYyMDY0MC4zMzFCRTU4QUB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+IDxDQStuUG5NemtOdkJGX0ZjdC1FPTdxZkdRZnBIVUJLVDE5Y1dDMzhTQ3F0cTZrdmllOWdAbWFpbC5nbWFpbC5jb20+IDwxNTA1ODY3Mzc0LjM0OTM4NDIuMTExMTc5NjUyMC41MTI0QUNBNkB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+IDxDQStuUG5NeHFIYTN5QlJGV3IraU9Fc09taGtYOExjZ2MwTTRkRzlzeXVjTHNQYUxSNUFAbWFpbC5nbWFpbC5jb20+IDxvcC55NnVzZXV3eWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4gPDE1MDU5MDc4OTIuMjI3MjQ4LjExMTIyODIzMTIuMDkzREE4QzVAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPiA8Q0ErblBuTXp1K1l2S1FYM3ZUPUFCa0szcGNHUC1NaHh0c2lva1QwQ3NrekFiak05eDdBQG1haWwuZ21haWwuY29tPgpEYXRlOiBTdW4sIDI0IFNlcCAyMDE3IDE4OjQ0OjE2ICswMjAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk2MndyMm1oa2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpJbi1SZXBseS1UbzogPENBK25Qbk16dStZdktRWDN2VD1BQmtLM3BjR1AtTWh4dHNpb2tUMENza3pBYmpNOXg3QUBtYWlsLmdtYWlsLmNvbT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpBcmUgdGhlc2UgcXVlc3Rpb25zIHdlIGNhbi9zaG91bGQgYW5zd2VyIHdpdGhpbiBhIGNvdXBsZSBvZiBkYXlzPwpJJ20gbm90IGF3YXJlIG9mIHNvbWVib2R5IGhpdHRpbmcgdGhlIHJlZ3Jlc3Npb24gYXMgY2F1c2VkIGJ5IE1ORy01NzQyICAKb3RoZXIgdGhhbiBJZ29yLgpIb3dldmVyLCB3ZSd2ZSBzZWVuIGEgY291cGxlIG9mIGNoYW5nZWQgYmVoYXZpb3IgY2xlYXJseSBjYXVzZWQgYnkgIApNTkctNjIwOSAobm90IGFuc3dlcmluZyBpZiB0aGlzIGludGVuZGVkIG9yIG5vdCkKCldlIGNvdWxkIGFsc28gbWFrZSB0aGUgZGVjaXNpb24gdG8gbGVhdmUgTU5HLTYyMDkgb3V0LCBkbyBhIG5ldyByZWxlYXNlICAKYW5kIGNvbXBsZXRlIG91ciBpbnZlc3RpZ2F0aW9uIGRpcmVjdGx5IGFmdGVyd2FyZHMuClRoaXMgY2hhbmdlIGlzIHdheSB0b28gdHJpY2t5IHRvIGRvIGFkZGl0aW9uYWwgY2hhbmdlcyB1bmRlciBwcmVzc3VyZS4KCnRoYW5rcywKUm9iZXJ0CgoKT24gU3VuLCAyNCBTZXAgMjAxNyAxODowNzozOSArMDIwMCwgU3RlcGhlbiBDb25ub2xseSAgCjxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKCj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9taW5pL2d1aWRlLW1hdmVuLWNsYXNzbG9hZGluZy5odG1sIHNheXM6Cj4KPj4gV2hlbiBhIGJ1aWxkIHBsdWdpbiBpcyBleGVjdXRlZCwgdGhlIHRocmVhZCdzIGNvbnRleHQgY2xhc3Nsb2FkZXIgaXMgc2V0Cj4gdG8gdGhlIHBsdWdpbiBjbGFzc2xvYWRlci4KPgo+IFNvIHdlJ2xsIG5lZWQgdG8gZml4IHNvbWV0aGluZyBzb21ld2hlcmUuLi4KPgo+IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9tYXZlbi9jb250ZW50L3JlZmVyZW5jZS9tYXZlbi1jbGFzc2xvYWRpbmcuaHRtbAo+IGlzIHVuYWNjZXNzaWJsZSBmcm9tIHRoZSB3ZWJzaXRlIGR1ZSB0byBhIHJld3JpdGUgcnVsZS4uLgo+Cj4gVGhpbmdzIHRoYXQgc2VlbSB0byBiZSBtaXNzaW5nOgo+Cj4gKiBXaGF0IGlzIHRoZSBkZXNpcmVkIGNsYXNzbG9hZGluZyBmb3IgYSBwbHVnaW4gdGhhdCBpcyBtYXJrZWQgYXMgYW4KPiBleHRlbnNpb24/IENhbiBhIHBsdWdpbiBoYXZlIGEgTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCB0byBhbGxvdwo+IGV4cG9ydGluZyBjbGFzc2VzIGFuZCBhcnRpZmFjdHMgd2hlbiB1c2VkIGFzIGFuIGV4dGVuc2lvbj8gSG93IHNob3VsZCB0aGUKPiBjbGFzc2xvYWRpbmcgbG9vayBmb3Igc3VjaCBhIHN0cmFuZ2UgYmVhc3QuCj4KPiAqIEhvdyBkb2VzIG9uZSBhY2Nlc3MgdGhlIHBsdWdpbiBjbGFzc2xvYWRlciBpZiB3ZSB3YW50IFRDQ0wgdG8gYmUgb3RoZXIKPiB0aGFuIHRoYXQsIGlzIGl0IGEgRGVwZW5kZW5jeSBJbmplY3Rpb24gb3Igc29tZXRoaW5nIGVsc2U/Cj4KPiAqIFdoYXQgZGlmZmVyZW50aWF0ZXMgYSBDb3JlIGV4dGVuc2lvbiBmcm9tIGEgQnVpbGQgZXh0ZW5zaW9uIChpcyBpdCAgCj4gdGhhdCBhCj4gYnVpbGQgZXh0ZW5zaW9uIGxhY2tzIGEgTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCBhbmQgd2FzIG9ubHkgIAo+IGRlY2xhcmVkCj4gaW4gdGhlIHBvbS54bWwsIHdoaWxlIGEgY29yZSBleHRlbnNpb24gZWl0aGVyIGhhcyBhCj4gTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCAtIGlmIGRlY2xhcmVkIGluIHRoZSBwb20gLSBvciBpcyBhbiAgCj4gZXh0ZW5zaW9uCj4gZGVjbGFyZWQgaW4gLm12bi9leHRlbnNpb25zLnhtbCkKPgo+IEF0IHRoaXMgcG9pbnQgaW4gdGltZSBJIHRoaW5rIHdlIGFyZSBuZWFyaW5nIHRoZSBwb2ludCB3aGVyZSBJIG1heSBoYXZlICAKPiB0bwo+IGRlY2xhcmUgMy41LjEgYWJhbmRvbmVkIGFzIEkgdGhpbmsgdGhlIGNsYXNzbG9hZGluZyBpbiB0aGF0IGlzIGEgc3ltcHRvbSAgCj4gb2YKPiB0b28gbWFueSBjb29rcyBhbGwgY2hhbmdpbmcgdGhpbmdzIGluIGRpZmZlcmVudCBkaXJlY3Rpb25zLiBXZSBuZWVkIGEKPiBjb25zaXN0ZW50IHZpc2lvbiBvZiB3aGVyZSB3ZSB3YW50IHRoaW5ncyB0byBnbyBhbmQgLSB3aGlsZSB3ZSBuZWVkIG5vdCAgCj4gZ2V0Cj4gdGhlcmUgaW4gb25lIGdvIC0gdGhlIHBhdGggcHJlc2VudGVkIGZvciBvdGhlcnMgdG8gc2VlLgo+Cj4gVGhpbmdzIEkgdGhpbmsgd2Ugc2hvdWxkIGNvbnNpZGVyOgo+Cj4gMS4gRG8gd2Ugd2FudCB0byBmb3JtYWxseSBkZXByZWNhdGUgQnVpbGQgRXh0ZW5zaW9ucyBhbmQgdGhlCj4gL3Byb2plY3QvYnVpbGQvZXh0ZW5zaW9ucyBlbGVtZW50IChzdGFydCBsb2dnaW5nIHdhcm5pbmdzLCBldGMpPwo+IDIuIERvIHdlIHdhbnQgdG8gZm9ybWFsbHkgZGVwcmVjYXRlIHBsdWdpbnMgYXMgZXh0ZW5zaW9ucyBhbmQgc3RhcnQgIAo+IGxvZ2dpbmcKPiB3YXJuaW5ncyBmb3IKPiAvcHJvamVjdC9idWlsZC8ocGx1Z2luTWFuYWdlbWVudHwuKS9wbHVnaW5zL3BsdWdpbi9leHRlbnNpb25zW3RleHQoKT09dHJ1ZV0KPiAzLiBXaGF0IGlzIHRoZSBkaWZmZXJlbmNlIGluIGNsYXNzbG9hZGluZyBmb3IgYSAvcHJvamVjdC9idWlsZC9leHRlbnNpb25zCj4gd2hpY2ggaGFzIGEgTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCBhbmQgb25lIHRoYXQgZG9lc24ndD8KPgo+IEknbSBrZWVwaW5nIHRoZSAzLjUuMSByZWxlYXNlIGluIHN0YWdpbmcgdW50aWwgd2UgZ2V0IGEgY2xlYXIgdmlzaW9uIGZvcgo+IGhvdyB3ZSB3YW50IHRvIGhhdmUgY2xhc3Nsb2FkaW5nIHNvIHRoYXQgSSBjYW4gYXNzZXNzIHdoZXRoZXIgdGhlIDMuNS4xCj4gYWN0dWFsaXR5IGlzIG9ubHkgbW92aW5nIG5lYXJlciB0byB0aGUgdmlzaW9uIChvayB0byByZWxlYXNlKSBvciBoYXMgIAo+IG1vdmVkCj4gbmVhcmVyIGluIHNvbWUgd2F5cyBidXQgZnVydGhlciBpbiBvdGhlcnMgKG5vdCBvayB0byByZWxlYXNlKQo+Cj4gT24gMjAgU2VwdGVtYmVyIDIwMTcgYXQgMTI6NDQsIElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY29tPiAgCj4gd3JvdGU6Cj4KPj4gUmVhbC13b3JsZCBzY20gb3Igd2Fnb24gPGV4dGVuc2lvbnM+IHdvbid0IHRyaWdnZXIgbWF2ZW4yLWNvbXBhdCBjb2RlCj4+IHBhdGggWzFdLiBUbyBhdm9pZCB0aGF0IG9ic2N1cmUgY29kZSBwYXRoIHdlIGNhbiBlaXRoZXIgbWFrZSB0aGUgdGVzdAo+PiBtb3JlIGVsYWJvcmF0ZSAoaS5lLiBhZGQgZGVwZW5kZW5jaWVzIHRvIGV4dGphcjEvZXh0amFyMikgb3Igd2UgY2FuIHVzZQo+PiBleHRlbnNpb25zIDxwbHVnaW4+LiBFaXRoZXIgd2F5IEkgZG9uJ3QgdGhpbmsgd2Ugc2hvdWxkIHNwZW5kIHRpbWUgb24KPj4gdGhlIGNvZGUgcGF0aCB1bmxpa2VseSB0byBiZSB1c2VkIGluIHJlYWwgbGlmZS4KPj4KPj4gWzFdCj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vYmxvYi9tYXZlbi0zLjUuMS9tYXZlbi0KPj4gY29yZS9zcmMvbWFpbi9qYXZhL29yZy9hcGFjaGUvbWF2ZW4vcHJvamVjdC9EZWZhdWx0UHJvamVjdEJ1aWxkaW5nSGVscGVyLgo+PiBqYXZhI0wyMTAtTDIxOQo+Pgo+PiAtLQo+PiBSZWdhcmRzLAo+PiBJZ29yCj4+Cj4+IE9uIFdlZCwgU2VwIDIwLCAyMDE3LCBhdCAwMzoyOSBBTSwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4+ID4gT24gV2VkLCAyMCBTZXAgMjAxNyAwOToxMjo0NyArMDIwMCwgU3RlcGhlbiBDb25ub2xseQo+PiA+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4gPgo+PiA+ID4gT24gV2VkIDIwIFNlcCAyMDE3IGF0IDAxOjI5LCBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvbT4KPj4gd3JvdGU6Cj4+ID4gPgo+PiA+ID4+IEluIHRoYXQgY2FzZSwgY2FuIEkgc3VnZ2VzdCBjb3VwbGUgb2YgY2hhbmdlcyB0byB0aGUgdGVzdCBwcm9qZWN0Cj4+ID4gPj4KPj4gPiA+PiAqIEkgdGhpbmtzIGl0IG1ha2VzIG1vcmUgc2Vuc2UgdG8gY29uZmlndXJlIGV4dGphcjEgYW5kIGV4dGphcjIgYXMKPj4gPiA+PiBleHRlbnNpb25zIDxwbHVnaW4+IGVsZW1lbnRzIGluIHByb2JsZU4gcG9tLnhtbCBmaWxlcy4gRmlyc3QsICAKPj4gdGhlcmUgaXMKPj4gPiA+PiBubyBtZWFuaW5nZnVsIG9yZGVyIGJldHdlZW4gPGV4dGVuc2lvbnM+IGFuZCA8cGx1Z2lucz4gZWxlbWVudHMuICAKPj4gTW9yZQo+PiA+ID4+IGltcG9ydGFudGx5LCB0aG91Z2gsIHNpbXBsZSA8ZXh0ZW5zaW9ucz4gYXJlIHRyZWF0ZWQgaW4gc3BlY2lhbAo+PiA+ID4+IG1hdmVuMi1jb21wYXQgbW9kZSBhbmQgYXJlIG5vdCByZXByZXNlbnRhdGl2ZSBvZiBsaWtlbHkgcmVhbC13b3JsZAo+PiA+ID4+IGV4dGVuc2lvbnMuCj4+ID4gPgo+PiA+Cj4+ID4gTm90IHN1cmUgSSBhZ3JlZSB3aXRoIHRoaXMuIEkgdGhpbmsgdGhlcmUgYXJlIGphcnMgd29ydGggc2hhcmluZyAgCj4+IGFjcm9zcwo+PiA+IG11bHRpcGxlIHBsdWdpbnMsIGJ1dCB3aGVyZSBtYWtpbmcgdGhlIHBsdWdpbiBhbiBleHRlbnNpb24gaXMgYSBiaXQKPj4gPiB3ZWlyZC4KPj4gPiBJJ20gdGhpbmtpbmcgb2Ygc2NtIGFuZCB3YWdvbiBpbiB0aGlzIGNhc2UuCj4+ID4KPj4gPiA+Cj4+ID4gPiBUaGF0IHNvdW5kcyBsaWtlIHdlIG5lZWQgZG9jdW1lbnRhdGlvbiB1cGRhdGVkIHRoZW4uIE5vbmUgb2YgdGhhdCBpcwo+PiA+ID4gb2J2aW91cyB0byBtZS4KPj4gPiA+Cj4+ID4gPgo+PiA+ID4+Cj4+ID4gPj4gKiBJIHRoaW5rIHdlIHNob3VsZCBpbnRyb2R1Y2UgTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCB0byB0aGUgIAo+PiB0ZXN0Cj4+ID4gPj4gZXh0ZW5zaW9ucy4gVGhpcyBtZXRhZGF0YSB3aGF0IGludHJvZHVjZWQgdG8gY29uZmlndXJlIGNsYXNzcGF0aAo+PiA+ID4+IHZpc2liaWxpdHksIHNvIGxldHMgdXNlIGl0Lgo+PiA+ID4KPj4gPiA+Cj4+ID4gPiBBZ2Fpbiwgbm90IG9idmlvdXMgdG8gbWUsIGlmIHRoYXQgZmlsZSBhbGxvd3MgY29udHJvbCBvZiBjbGFzc3BhdGgKPj4gPiA+IHZpc2liaWxpdHkgdGhlbiBpdCBtYXkgYmUgdGhhdCB0aGUgb25seSBpc3N1ZSAqd2l0aCogMy41LjEgaXMgdGhlICAKPj4gbGFjawo+PiBvZgo+PiA+ID4gZG9jdW1lbnRhdGlvbi4uLiBub3cgcHJldmlvdXMgdmVyc2lvbnMgd291bGQgaGF2ZSBiZWVuIGFkZGluZyAgCj4+IGJyZWFraW5nCj4+ID4gPiBjaGFuZ2VzIGZyb20gbXkgUG9WIGJ1dCB0aGF0IGlzIHRoZSBwYXN0IGFuZCBzaG91bGQgbm90IGFmZmVjdCB0aGUKPj4gMy41LjEKPj4gPiA+IHJlbGVhc2UuCj4+ID4gPgo+PiA+ID4gUFJzIGZvciB0aGUgcHJvYmUgcHJvamVjdCB3ZWxjb21lLiBJIGFtIGhhcHB5IHRvIHRyeSBhbmQgd3JpdGUgZG9jcwo+PiBvbmNlCj4+ID4gPiBJCj4+ID4gPiBoYXZlIGFuIHVuZGVyc3RhbmRpbmcgb2Ygd2hhdCB0aGUgZXhwZWN0ZWQgYmVoYXZpb3VycyBhcmUKPj4gPiA+Cj4+ID4gPgo+PiA+ID4+Cj4+ID4gPj4gLS0KPj4gPiA+PiBSZWdhcmRzLAo+PiA+ID4+IElnb3IKPj4gPiA+Pgo+PiA+ID4+IE9uIFR1ZSwgU2VwIDE5LCAyMDE3LCBhdCAwNToxMiBQTSwgU3RlcGhlbiBDb25ub2xseSB3cm90ZToKPj4gPiA+PiA+IFllcywgdGhlIGV4cGVjdGF0aW9ucyBhcmUga2V5LiBEZXBlbmRpbmcgb24gd2hhdCB0aGV5IGFyZSB3ZSBtYXkKPj4gPiA+PiBlaXRoZXIKPj4gPiA+PiA+IGRyb3AgMy41LjEgb3IgZ28gYWhlYWQgYXMgaXQgZGVwZW5kcyBvbiB3aGV0aGVyIHRoaXMgaXMgbW9yZSAgCj4+IGNvcnJlY3QKPj4gPiA+PiB0aGFuCj4+ID4gPj4gPiAzLjUuMCBvciBzd2FwcGluZyBvbmUgZml4IGZvciBhIGJ1Zwo+PiA+ID4+ID4KPj4gPiA+PiA+IE9uIFR1ZSAxOSBTZXAgMjAxNyBhdCAyMTozOSwgSWdvciBGZWRvcmVua28gPGlnb3JAaWZlZG9yZW5rby5jb20+Cj4+ID4gPj4gd3JvdGU6Cj4+ID4gPj4gPgo+PiA+ID4+ID4gPiBKdXN0IHRvIGNvbmZpcm0gSSB1bmRlcnN0YW5kIHdoYXQgd2UgYXJlIHRyeWluZyB0byBlc3RhYmxpc2ggIAo+PiBoZXJlLgo+PiA+ID4+IFdlCj4+ID4gPj4gPiA+IHdhbnQgdG8gZGVjaWRlIHRoZSBleHBlY3RlZC9kZXNpcmVkIGNvbXBvbmVudCBpbmplY3Rpb24gIAo+PiBiZWhhdmlvdXIKPj4gPiA+PiBhbmQKPj4gPiA+PiA+ID4gY2xhc3NwYXRoIHZpc2liaWxpdHkgaW4gdGhlIGFic2VuY2Ugb2YgcGFja2FnZSBhbmQgYXJ0aWZhY3QgIAo+PiBleHBvcnQKPj4gPiA+PiA+ID4gY29uZmlndXJhdGlvbiAoaS5lLiBNRVRBLUlORi9tYXZlbi9leHRlbnNpb24ueG1sIGZpbGUpLiBEaWQgSSAgCj4+IGdldAo+PiA+ID4+IHRoaXMKPj4gPiA+PiA+ID4gcmlnaHQ/Cj4+ID4gPj4gPiA+Cj4+ID4gPj4gPiA+IC0tCj4+ID4gPj4gPiA+IFJlZ2FyZHMsCj4+ID4gPj4gPiA+IElnb3IKPj4gPiA+PiA+ID4KPj4gPiA+PiA+ID4gT24gVHVlLCBTZXAgMTksIDIwMTcsIGF0IDAzOjUyIFBNLCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPj4gPiA+PiA+ID4gPiBMZXQncyBkbyBpdCBsaWtlIHRoaXM6Cj4+ID4gPj4gPiA+ID4KPj4gPiA+PiA+ID4KPj4gPiA+PiBodHRwczovL2N3aWtpLmFwYWNoZS5vcmcvY29uZmx1ZW5jZS9kb3dubG9hZC9hdHRhY2htZW50cy8yMzI5ODQxLwo+PiBjbGFzc3JlYWxtcy5wZGY/YXBpPXYyCj4+ID4gPj4gPiA+ID4KPj4gPiA+PiA+ID4gPiBSb2JlcnQKPj4gPiA+PiA+ID4gPgo+PiA+ID4+ID4gPiA+IE9uIFR1ZSwgMTkgU2VwIDIwMTcgMjE6MDg6MzkgKzAyMDAsIFN0ZXBoZW4gQ29ubm9sbHkKPj4gPiA+PiA+ID4gPiA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4+ID4gPj4gPiA+ID4KPj4gPiA+PiA+ID4gPiA+IEkgdGhpbmsgeW91IHdpbGwgbmVlZCBhIGxpbmsgdG8gdGhlIFBERiBhcyBhdHRhY2htZW50cyBhcmUKPj4gPiA+PiBzdHJpcHBlZAo+PiA+ID4+ID4gPiBmcm9tCj4+ID4gPj4gPiA+ID4gPiB0aGUgTUwKPj4gPiA+PiA+ID4gPiA+Cj4+ID4gPj4gPiA+ID4gPiBPbiBUdWUgMTkgU2VwIDIwMTcgYXQgMTk6NTcsIFJvYmVydCBTY2hvbHRlCj4+ID4gPj4gPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgo+PiA+ID4+ID4gPiB3cm90ZToKPj4gPiA+PiA+ID4gPiA+Cj4+ID4gPj4gPiA+ID4gPj4gQXR0YWNoZWQgYSBzaW5nbGUgcGFnZSBvdmVydmlldy4KPj4gPiA+PiA+ID4gPiA+Pgo+PiA+ID4+ID4gPiA+ID4+IFBlciBibG9jayB5b3UnbGwgc2VlIGluIHRoZSB1cHBlciBsZWZ0IGNvcm5lciB0aGUgZXhlY3V0ZWQKPj4gPiA+PiBwbHVnaW4KPj4gPiA+PiA+ID4gPiA+PiBUaGUgbGVmdCBjb2x1bW4gY29udGFpbnMgdGhlIGV4dGVuc2lvbnMgYW5kIHBsdWdpbiBpbiAgCj4+IG9yZGVyYXMKPj4gPiA+PiA+ID4gc3BlY2lmaWVkCj4+ID4gPj4gPiA+ID4gPj4gaW4KPj4gPiA+PiA+ID4gPiA+PiB0aGUgcG9tLnhtbAo+PiA+ID4+ID4gPiA+ID4+IEluIGV2ZXJ5IGNsYXNzbG9hZGVyY29sdW1uIHlvdSdsbCBzZWUgbnVtYmVycyB3aGljaCAgCj4+IHJlcHJlc2VudAo+PiA+ID4+IHRoZQo+PiA+ID4+ID4gPiBvcmRlci4KPj4gPiA+PiA+ID4gPiA+Pgo+PiA+ID4+ID4gPiA+ID4+IEkgaG9wZSBJIGRpZG4ndCBtYWtlIGFueSBtaXN0YWtlcy4KPj4gPiA+PiA+ID4gPiA+PiBUb21vcnJvdyBJIGhhdmUgZW5vdWdoIHRpbWUgdG8gc2VlIGlmIEkgdW5kZXJzdGFuZCB3aGF0J3MKPj4gPiA+PiBoYXBwZW5pbmcKPj4gPiA+PiA+ID4gPiA+PiBoZXJlLgo+PiA+ID4+ID4gPiA+ID4+Cj4+ID4gPj4gPiA+ID4gPj4gSSB3aWxsIGNvbWUgYmFjayB3aXRoIG15IGNvbmNsdXNpb25zLgo+PiA+ID4+ID4gPiA+ID4+Cj4+ID4gPj4gPiA+ID4gPj4gUm9iZXJ0Cj4+ID4gPj4gPiA+ID4gPj4KPj4gPiA+PiA+ID4gPiA+PiBPbiBUdWUsIDE5IFNlcCAyMDE3IDA2OjU1OjA4ICswMjAwLCBJZ29yIEZlZG9yZW5rbyA8Cj4+ID4gPj4gPiA+IGlnb3JAaWZlZG9yZW5rby5jb20+Cj4+ID4gPj4gPiA+ID4gPj4gd3JvdGU6Cj4+ID4gPj4gPiA+ID4gPj4KPj4gPiA+PiA+ID4gPiA+PiA+IFRMO0RSIHlvdXIgdGVzdCBwcm9qZWN0IGV4cG9zZWQgdHdvIGV4aXN0aW5nIGJ1Z3MsIG9uZQo+PiA+ID4+IGNoYW5nZSBpbgo+PiA+ID4+ID4gPiA+ID4+ID4gYmVoYXZpb3VyIGFuZCBvbmUgcXVpcmsgSSBjYW4ndCBleHBsYWluCj4+ID4gPj4gPiA+ID4gPj4gPgo+PiA+ID4+ID4gPiA+ID4+ID4gKiBCdWlsZCBgPGV4dGVuc2lvbnM+YCBhcmUgbG9hZGVkIGJ5IHR3byBjbGFzc2xvYWRlcnMsCj4+IHdoaWNoCj4+ID4gPj4gaXMKPj4gPiA+PiBhCj4+ID4gPj4gPiA+IGJ1Zwo+PiA+ID4+ID4gPiA+ID4+IGluCj4+ID4gPj4gPiA+ID4gPj4gPiBEZWZhdWx0UHJvamVjdEJ1aWxkaW5nSGVscGVyI2NyZWF0ZVByb2plY3RSZWFsbSBhbmQKPj4gZXhwbGFpbnMKPj4gPiA+PiB3aHkgeW91Cj4+ID4gPj4gPiA+ID4gPj4gc2VlCj4+ID4gPj4gPiA+ID4gPj4gPiBleHRqYXIxL2V4dGphcjIgaW4gdGhlIG91dHB1dAo+PiA+ID4+ID4gPiA+ID4+ID4gKiBDbGFzc1JlYWxtIGRvZXMgbm90IGFsbG93IHNhbWUgZm9yZWlnbi1pbXBvcnQgZnJvbQo+PiBtdWx0aXBsZQo+PiA+ID4+ID4gPiA+ID4+ID4gY2xhc3Nsb2FkZXJzLCB3aGljaCBpcyBhIGJ1ZyBhbmQgZXhwbGFpbnMgd2h5IGl0IGlzIG5vdAo+PiA+ID4+IHBvc3NpYmxlIHRvCj4+ID4gPj4gPiA+ID4gPj4gbG9hZAo+PiA+ID4+ID4gPiA+ID4+ID4gc2FtZSByZXNvdXJjZSBmcm9tIG11bHRpcGxlIHBsdWdpbnMvZXh0ZW5zaW9ucwo+PiA+ID4+ID4gPiA+ID4+ID4gKiBUQ0NMIGRvZXMgbm90IGhhdmUgYWNjZXNzIHRvIHByaXZhdGUgKGkuZS4gbm90ICAKPj4gZXhwb3J0ZWQpCj4+ID4gPj4gcmVzb3VyY2VzCj4+ID4gPj4gPiA+ID4gPj4gb2YKPj4gPiA+PiA+ID4gPiA+PiA+IHRoaXMgZXh0ZW5zaW9ucyBwbHVnaW4sIHdoaWNoIGlzIGEgY2hhbmdlIG9mIGJlaGF2aW91cgo+PiA+ID4+IGludHJvZHVjZWQgYnkKPj4gPiA+PiA+ID4gPiA+PiA+IG1uZy02MjA5IGZpeAo+PiA+ID4+ID4gPiA+ID4+ID4gKiBBbHNvLCBjb21wb25lbnQgaW5qZWN0aW9uIG9yZGVyIGFwcGVhcnMgdG8gYmUgIAo+PiBiYWNrd2FyZHMsCj4+ID4gPj4gYnV0Cj4+ID4gPj4gbWF5YmUKPj4gPiA+PiA+ID4gPiA+PiA+IFN0dWFydCBjYW4gZXhwbGFpbiB3aHkuCj4+ID4gPj4gPiA+ID4gPj4gPgo+PiA+ID4+ID4gPiA+ID4+ID4KPj4gPiA+PiA+ID4gPiA+PiA+IEJlbG93IGlzIG1vcmUgZGV0YWlsZWQgZXhwbGFuYXRpb24gb2YgZXhwZWN0ZWQgYW5kICAKPj4gb2JzZXJ2ZWQKPj4gPiA+PiA+ID4gYmVoYXZpb3VyCj4+ID4gPj4gPiA+ID4gPj4gPgo+PiA+ID4+ID4gPiA+ID4+ID4KPj4gPiA+PiA+ID4gPiA+PiA+ICMjIENvbXBvbmVudCBpbmplY3Rpb24gZGVwZW5kcyBvbiB0aGUgY3VycmVudGx5IHJ1bm5pbmcKPj4gPiA+PiBwbHVnaW4KPj4gPiA+PiBhbmQKPj4gPiA+PiA+ID4gdGhlCj4+ID4gPj4gPiA+ID4gPj4gPiBpbmplY3Rpb24gc2l0ZQo+PiA+ID4+ID4gPiA+ID4+ID4KPj4gPiA+PiA+ID4gPiA+PiA+IEN1cnJlbnRseSBydW5uaW5nIHBsdWdpbnMgaGF2ZSBhY2Nlc3MgdG8gdGhlIGZvbGxvd2luZwo+PiA+ID4+IGNvbXBvbmVudAo+PiA+ID4+ID4gPiA+ID4+ID4gaW1wbGVtZW50YXRpb25zOgo+PiA+ID4+ID4gPiA+ID4+ID4KPj4gPiA+PiA+ID4gPiA+PiA+ICogUmVndWxhciBwbHVnaW4gaGFzIGFjY2VzcyB0byBjb21wb25lbnRzIGltcGxlbWVudGVkIGJ5Cj4+IHRoZQo+PiA+ID4+IHBsdWdpbiwKPj4gPiA+PiA+ID4gPiA+PiA+IHByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucywgaWYgYW55ICh2aWEgcHJvamVjdCBjbGFzcyAgCj4+IHJlYWxtCj4+ID4gPj4gZm9yZWlnbgo+PiA+ID4+ID4gPiA+ID4+ID4gaW1wb3J0KSBhbmQgTWF2ZW4gQ29yZS4KPj4gPiA+PiA+ID4gPiA+PiA+ICogRXh0ZW5zaW9uIHBsdWdpbiBoYXMgYWNjZXNzIHRvIGNvbXBvbmVudHMgaW1wbGVtZW50ZWQgIAo+PiBieQo+PiA+ID4+IHRoZQo+PiA+ID4+ID4gPiBwcm9qZWN0Cj4+ID4gPj4gPiA+ID4gPj4gPiBidWlsZCBleHRlbnNpb25zIGFuZCBNYXZlbiBDb3JlLgo+PiA+ID4+ID4gPiA+ID4+ID4gKiBXaXRob3V0IGEgcnVubmluZyBwbHVnaW4gKGUuZy4sIGR1cmluZyBwcm9qZWN0ICAKPj4gZGVwZW5kZW5jeQo+PiA+ID4+ID4gPiA+ID4+IHJlc29sdXRpb24pLAo+PiA+ID4+ID4gPiA+ID4+ID4gY29tcG9uZW50cyBpbXBsZW1lbnRlZCBieSB0aGUgcHJvamVjdCBidWlsZCBleHRlbnNpb25zICAKPj4gYW5kCj4+ID4gPj4gTWF2ZW4KPj4gPiA+PiA+ID4gQ29yZQo+PiA+ID4+ID4gPiA+ID4+ID4gYXJlIGFjY2Vzc2libGUuCj4+ID4gPj4gPiA+ID4gPj4gPgo+PiA+ID4+ID4gPiA+ID4+ID4gRGlmZmVyZW50IGluamVjdGlvbiBzaXRlcyBoYXZlIGFjY2VzcyB0byB0aGUgZm9sbG93aW5nCj4+ID4gPj4gY29tcG9uZW50Cj4+ID4gPj4gPiA+ID4gPj4gPiBpbnRlcmZhY2VzOgo+PiA+ID4+ID4gPiA+ID4+ID4KPj4gPiA+PiA+ID4gPiA+PiA+ICogTWF2ZW4gQ29yZSBoYXMgYWNjZXNzIHRvIGNvbXBvbmVudCBpbnRlcmZhY2VzIGRlZmluZWQgIAo+PiBieQo+PiA+ID4+IHRoZQo+PiA+ID4+IGNvcmUKPj4gPiA+PiA+ID4gPiA+PiA+IGl0c2VsZiAob2J2aW91c2x5KQo+PiA+ID4+ID4gPiA+ID4+ID4gKiBQcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMgaGF2ZSBhY2Nlc3MgdG8gKipwdWJsaWMqKgo+PiA+ID4+IGNvbXBvbmVudAo+PiA+ID4+ID4gPiA+ID4+ID4gaW50ZXJmYWNlcyBkZWZpbmVkIGJ5IE1hdmVuIENvcmUgYW5kIGNvbXBvbmVudCAgCj4+IGludGVyZmFjZXMKPj4gPiA+PiBkZWZpbmVkIGJ5Cj4+ID4gPj4gPiA+ID4gPj4gdGhlCj4+ID4gPj4gPiA+ID4gPj4gPiBidWlsZCBleHRlbnNpb24gaXRzZWxmICh0aGVyZSBpcyBubyB3YXkgdG8gYWNjZXNzICAKPj4gY29tcG9uZW50Cj4+ID4gPj4gPiA+IGludGVyZmFjZXMKPj4gPiA+PiA+ID4gPiA+PiA+IGRlZmluZWQgaW4gb3RoZXIgZXh0ZW5zaW9ucykKPj4gPiA+PiA+ID4gPiA+PiA+ICogUmVndWxhciBwbHVnaW5zIGhhdmUgYWNjZXNzIHRvICoqcHVibGljKiogY29tcG9uZW50Cj4+ID4gPj4gaW50ZXJmYWNlcwo+PiA+ID4+ID4gPiA+ID4+IGRlZmluZWQKPj4gPiA+PiA+ID4gPiA+PiA+IGJ5IE1hdmVuIENvcmUsIGNvbXBvbmVudCBpbnRlcmZhY2VzICoqZXhwb3J0ZWQqKiBieSAgCj4+IGJ1aWxkCj4+ID4gPj4gZXh0ZW5zaW9ucwo+PiA+ID4+ID4gPiA+ID4+IGFuZAo+PiA+ID4+ID4gPiA+ID4+ID4gY29tcG9uZW50IGludGVyZmFjZXMgZGVmaW5lZCBpbiB0aGUgcGx1Z2luIGl0c2VsZgo+PiA+ID4+ID4gPiA+ID4+ID4KPj4gPiA+PiA+ID4gPiA+PiA+IEZvciBpbmplY3Rpb24gdG8gd29yaywgaW5qZWN0aW9uIHNpdGUgaGFzIHRvIGhhdmUgIAo+PiBhY2Nlc3MgdG8KPj4gPiA+PiB0aGUKPj4gPiA+PiA+ID4gPiA+PiA+IGNvbXBvbmVudCBpbnRlcmZhY2UgYW5kIHRoZSBjb21wb25lbnQgaW1wbGVtZW50YXRpb24gIAo+PiBtdXN0Cj4+IGJlCj4+ID4gPj4gPiA+ID4gPj4gYWNjZXNzaWJsZQo+PiA+ID4+ID4gPiA+ID4+ID4gdGhyb3VnaCB0aGUgY3VycmVudCBjb250ZXh0Lgo+PiA+ID4+ID4gPiA+ID4+ID4KPj4gPiA+PiA+ID4gPiA+PiA+IEZyb20gd2hhdCBJIGNhbiB0ZWxsLCBpbiB5b3VyIGV4YW1wbGUgYWxsIHBsdWdpbnMgaGF2ZQo+PiBhY2Nlc3MKPj4gPiA+PiB0byB0aGUKPj4gPiA+PiA+ID4gPiA+PiA+IHJpZ2h0IGNvbXBvbmVudHMgd2hlbiB1c2luZyBjdXJyZW50IDMuNS4yLVNOQVBTSE9ULiBUaGUKPj4gPiA+PiBpbmplY3Rpb24KPj4gPiA+PiA+ID4gPiA+PiBvcmRlcgo+PiA+ID4+ID4gPiA+ID4+ID4gZG9lcyBhcHBlYXIgdG8gYmUgYmFja3dhcmRzIGZyb20gd2hhdCBJIGV4cGVjdGVkLCAgCj4+IGhvd2V2ZXIuCj4+ID4gPj4gPiA+ID4gPj4gPgo+PiA+ID4+ID4gPiA+ID4+ID4KPj4gPiA+PiA+ID4gPiA+PiA+ICMjIFJlc291cmNlcyBsb29rdXAgZnVsbHkgZGVwZW5kcyBvbiBjbGFzc3BhdGggIAo+PiB2aXNpYmlsaXR5LAo+PiA+ID4+ID4gPiA+ID4+IHNwZWNpZmljYWxseQo+PiA+ID4+ID4gPiA+ID4+ID4KPj4gPiA+PiA+ID4gPiA+PiA+ICogUmVndWxhciBwbHVnaW4gY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byByZXNvdXJjZXMgIAo+PiBmcm9tCj4+IHRoZQo+PiA+ID4+IHBsdWdpbgo+PiA+ID4+ID4gPiA+ID4+ID4gaXRzZWxmLCBmcm9tICoqZXhwb3J0ZWQqKiBwYWNrYWdlcyBvZiB0aGUgcHJvamVjdCBidWlsZAo+PiA+ID4+IGV4dGVuc2lvbnMKPj4gPiA+PiA+ID4gYW5kCj4+ID4gPj4gPiA+ID4gPj4gPiAqKnB1YmxpYyoqIE1hdmVuIENvcmUgcGFja2FnZXMKPj4gPiA+PiA+ID4gPiA+PiA+ICogRXh0ZW5zaW9ucyBwbHVnaW4gY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byB0aGUgIAo+PiByZXNvdXJjZXMKPj4gPiA+PiBmcm9tIHRoZQo+PiA+ID4+ID4gPiA+ID4+ID4gZXh0ZW5zaW9ucyBwbHVnaW4gaXRzZWxmIGFuZCBmcm9tICoqcHVibGljKiogTWF2ZW4gQ29yZQo+PiA+ID4+IHBhY2thZ2VzCj4+ID4gPj4gPiA+ID4gPj4gPiAqIFByb2plY3QgY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byBjbGFzc2VzIGFuZCAgCj4+IHJlc291cmNlcwo+PiA+ID4+ID4gPiAqKmV4cG9ydGVkKioKPj4gPiA+PiA+ID4gPiA+PiA+IGJ5IHByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucyBhbmQgKipwdWJsaWMqKiBNYXZlbiBDb3JlCj4+ID4gPj4gcGFja2FnZXMKPj4gPiA+PiA+ID4gPiA+PiA+Cj4+ID4gPj4gPiA+ID4gPj4gPiBJIHNlZSB0aHJlZSBwcm9ibGVtcyBoZXJlCj4+ID4gPj4gPiA+ID4gPj4gPgo+PiA+ID4+ID4gPiA+ID4+ID4gKiBNYXZlbiBhZGRzIGJ1aWxkIHNpbmdsZS1qYXIgYDxleHRlbnNpb25zPmAgZWxlbWVudHMKPj4gPiA+PiBkaXJlY3RseQo+PiA+ID4+IHRvCj4+ID4gPj4gPiA+ID4gPj4gPiBwcm9qZWN0IGNsYXNzIHJlYWxtICoqYW5kKiogY3JlYXRlcyBzZXBhcmF0ZSBleHRlbnNpb25zCj4+IGNsYXNzCj4+ID4gPj4gcmVhbG1zCj4+ID4gPj4gPiA+ID4gPj4gZm9yCj4+ID4gPj4gPiA+ID4gPj4gPiB0aGVtLiBXaGljaCByZXN1bHRzIGluIGR1cGxpY2F0ZSBjbGFzc2VzL3Jlc291cmNlcyAgCj4+IGxvYWRlZAo+PiBieQo+PiA+ID4+IHR3bwo+PiA+ID4+ID4gPiA+ID4+ID4gY2xhc3Nsb2FkZXJzIGFuZCBleHBsYWlucyB3aHkgeW91IHNlZSBleHRqYXIxL2V4dGphcjIKPj4gb3V0cHV0Cj4+ID4gPj4gKHdoaWNoCj4+ID4gPj4gPiA+ID4gPj4geW91Cj4+ID4gPj4gPiA+ID4gPj4gPiBzaG91bGRuJ3QgYWNjb3JkaW5nIHRvIHRoZSBleHBsYW5hdGlvbiBhYm92ZSkKPj4gPiA+PiA+ID4gPiA+PiA+ICogQ2xhc3NSZWFsbSBkb2VzIG5vdCBhbGxvdyBmb3JlaWduLWltcG9ydCBvZiB0aGUgc2FtZQo+PiA+ID4+IHBhY2thZ2UKPj4gPiA+PiBmcm9tCj4+ID4gPj4gPiA+ID4gPj4gPiBtdWx0aXBsZSBjbGFzc2xvYWRlcnMuIFRoaXMgbWFrZXMgaXQgaW1wb3NzaWJsZSB0byBsb2FkICAKPj4gdGhlCj4+ID4gPj4gc2FtZQo+PiA+ID4+ID4gPiA+ID4+ID4gcmVzb3VyY2UgZnJvbSBtdWx0aXBsZSBwbHVnaW5zL2V4dGVuc2lvbnMuCj4+ID4gPj4gPiA+ID4gPj4gPiAqIEV4dGVuc2lvbnMgcGx1Z2lucyBjYW5ub3QgYWNjZXNzIHRoZWlyIG93biBwcml2YXRlICAKPj4gKGkuZS4KPj4gPiA+PiBub3QKPj4gPiA+PiA+ID4gPiA+PiBleHBvcnRlZCkKPj4gPiA+PiA+ID4gPiA+PiA+IHJlc291cmNlcyB2aWEgVENDTCwgdGhpcyBpcyBjaGFuZ2UgaW4gYmVoYXZpb3VyICAKPj4gaW50cm9kdWNlZAo+PiBieQo+PiA+ID4+ID4gPiBtbmctNjIwOQo+PiA+ID4+ID4gPiA+ID4+ID4gZml4Cj4+ID4gPj4gPiA+ID4gPj4gPgo+PiA+ID4+ID4gPiA+ID4+ID4gSG9wZSB0aGlzIGhlbHBzCj4+ID4gPj4gPiA+ID4gPj4KPj4gPiA+PiA+ID4gPiA+Pgo+PiA+ID4+ICAKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ID4gPj4gPiA+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+PiA+ID4gPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPj4gPiA+ID4KPj4gPiA+PiA+ID4gPgo+PiA+ID4+ICAKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ID4gPj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+PiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPj4gPiA+ID4KPj4gPiA+PiA+ID4KPj4gPiA+PiA+ID4KPj4gPiA+PiAgCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiA+ID4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPj4gPiA+Cj4+ID4gPj4gPiA+IC0tCj4+ID4gPj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPj4gPiA+Pgo+PiA+ID4+ICAKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPj4KPj4gPiA+PiAtLQo+PiA+ID4gU2VudCBmcm9tIG15IHBob25lCj4+ID4KPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4gPgo+Pgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MDkzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBTZXAgMjQgMTc6NDg6MzYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDkzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEFBQjIxRjEwQwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDI0IFNlcCAyMDE3IDE3OjQ4OjM2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzYwNjkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjQgU2VwIDIwMTcgMTc6NDg6MzYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM1OTcyIGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IFNlcCAyMDE3IDE3OjQ4OjM2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzU5NjAgaW52b2tlZCBieSB1aWQgOTkpOyAyNCBTZXAgMjAxNyAxNzo0ODozNiAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAyNCBTZXAgMjAxNyAxNzo0ODozNiArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIERCQTM2MUEwMjM2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAyNCBTZXAgMjAxNyAxNzo0ODozNCArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogVW5kZXJzdGFuZGluZyBNTkctNjIwOSAod2FzOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEpClJlZmVyZW5jZXM6IDxDQStuUG5Nd01DcU9fRXRjQlc1XzNyTTcxLXRDcml0cDRVa3N5ZlBtREdBWXI2eHo9b1FAbWFpbC5nbWFpbC5jb20+IDxGMUY4QjNDRi1EREFDLTQ0QkEtQUVCNy00MTIyQzg4N0M0QUJAaG9udG9uLm9yZz4gPENBK25Qbk13Zl9CZnRZdXMtcm5Rck83bzUrZHVHRnowVkVhN05pb2hHMV9fWVV6cmM1d0BtYWlsLmdtYWlsLmNvbT4gPDE1MDU3OTY5MDguMjUxNjgwOC4xMTEwNjczMTI4LjYzNUFDMzVGQHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4gPG9wLnk2dHRtcmVia2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPiA8Q0ErblBuTXhGRkVUUW1xdGUwLTUwdTNFRlN3Ymc2eWlwdzVWU0JkTFB3VHpQaGRWazV3QG1haWwuZ21haWwuY29tPiA8b3AueTZ0djVrZjNrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDwxNTA1ODUzNTQwLjM0NDM0NjUuMTExMTYyMDY0MC4zMzFCRTU4QUB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+IDxDQStuUG5NemtOdkJGX0ZjdC1FPTdxZkdRZnBIVUJLVDE5Y1dDMzhTQ3F0cTZrdmllOWdAbWFpbC5nbWFpbC5jb20+IDwxNTA1ODY3Mzc0LjM0OTM4NDIuMTExMTc5NjUyMC41MTI0QUNBNkB3ZWJtYWlsLm1lc3NhZ2luZ2VuZ2luZS5jb20+IDxDQStuUG5NeHFIYTN5QlJGV3IraU9Fc09taGtYOExjZ2MwTTRkRzlzeXVjTHNQYUxSNUFAbWFpbC5nbWFpbC5jb20+IDxvcC55NnVzZXV3eWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4gPDE1MDU5MDc4OTIuMjI3MjQ4LjExMTIyODIzMTIuMDkzREE4QzVAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPiA8Q0ErblBuTXp1K1l2S1FYM3ZUPUFCa0szcGNHUC1NaHh0c2lva1QwQ3NrekFiak05eDdBQG1haWwuZ21haWwuY29tPiA8b3AueTYyd3IybWhrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CiA8Q0ErblBuTXh0PWdCMDNUN0czUHFpMjdVK2ZTaV95MytmOW12UlVWb1p3PUFyZWFuaTF3QG1haWwuZ21haWwuY29tPgpEYXRlOiBTdW4sIDI0IFNlcCAyMDE3IDE5OjQ4OjMxICswMjAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IFF1b3RlZC1QcmludGFibGUKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk2MnpxNWkza2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpJbi1SZXBseS1UbzogPENBK25Qbk14dD1nQjAzVDdHM1BxaTI3VStmU2lfeTMrZjltdlJVVm9adz1BcmVhbmkxd0BtYWlsLmdtYWlsLmNvbT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpPbiBTdW4sIDI0IFNlcCAyMDE3IDE5OjM2OjE1ICswMjAwLCBTdGVwaGVuIENvbm5vbGx5ICA9Cgo8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cgo+IE9uIFN1biAyNCBTZXAgMjAxNyBhdCAxNzo0NCwgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPiB3cm89CnRlOgo+Cj4+IEFyZSB0aGVzZSBxdWVzdGlvbnMgd2UgY2FuL3Nob3VsZCBhbnN3ZXIgd2l0aGluIGEgY291cGxlIG9mIGRheXM/Cj4+IEknbSBub3QgYXdhcmUgb2Ygc29tZWJvZHkgaGl0dGluZyB0aGUgcmVncmVzc2lvbiBhcyBjYXVzZWQgYnkgTU5HLTU3ND0KMgo+PiBvdGhlciB0aGFuIElnb3IuCj4+IEhvd2V2ZXIsIHdlJ3ZlIHNlZW4gYSBjb3VwbGUgb2YgY2hhbmdlZCBiZWhhdmlvciBjbGVhcmx5IGNhdXNlZCBieQo+PiBNTkctNjIwOSAobm90IGFuc3dlcmluZyBpZiB0aGlzIGludGVuZGVkIG9yIG5vdCkKPj4KPj4gV2UgY291bGQgYWxzbyBtYWtlIHRoZSBkZWNpc2lvbiB0byBsZWF2ZSBNTkctNjIwOSBvdXQsIGRvIGEgbmV3IHJlbGVhPQpzZQo+PiBhbmQgY29tcGxldGUgb3VyIGludmVzdGlnYXRpb24gZGlyZWN0bHkgYWZ0ZXJ3YXJkcy4KPj4gVGhpcyBjaGFuZ2UgaXMgd2F5IHRvbyB0cmlja3kgdG8gZG8gYWRkaXRpb25hbCBjaGFuZ2VzIHVuZGVyIHByZXNzdXJlPQouCj4KPgo+IElmIHdlIGRyb3AgMy41LjEgaT1FMj04MD05OWQgYmUgaW4gZmF2b3VyIG9mIHJldmVydGluZyBib3RoIE1ORy02MjA5IGE9Cm5kIE1ORy02Mjc1Cj4gKHRoZSBUQ0NMIG9uZSkgYXMgSSBoYXZlIGZvdW5kIGRvY3VtZW50YXRpb24gc3RhdGluZyB0aGF0IFRDQ0wgaXMgdGhlCj4gcGx1Z2luIGNsYXNzbG9hZGVyLCB3aGljaCBtYWtlcyBtZSB3YXJ5IG9mIGNoYW5naW5nIHRoYXQgaW4gYSBwYXRjaCAgPQoKPiByZWxlYXNlCj4gKGJ1dCBJIGNhbiBiZSBjb252aW5jZWQgb3RoZXJ3aXNlKQo+CgpTdXJlLCBJIGNhbiBsaXZlIHdpdGggdGhhdC4KCj4KPj4KPj4gdGhhbmtzLAo+PiBSb2JlcnQKPj4KPj4KPj4gT24gU3VuLCAyNCBTZXAgMjAxNyAxODowNzozOSArMDIwMCwgU3RlcGhlbiBDb25ub2xseQo+PiA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4+Cj4+ID4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9taW5pL2d1aWRlLW1hdmVuLWNsYXNzbG9hZGluZy5odG1sID0KID0KCj4+IHNheXM6Cj4+ID4KPj4gPj4gV2hlbiBhIGJ1aWxkIHBsdWdpbiBpcyBleGVjdXRlZCwgdGhlIHRocmVhZCdzIGNvbnRleHQgY2xhc3Nsb2FkZXIgPQppcyAgPQoKPj4gc2V0Cj4+ID4gdG8gdGhlIHBsdWdpbiBjbGFzc2xvYWRlci4KPj4gPgo+PiA+IFNvIHdlJ2xsIG5lZWQgdG8gZml4IHNvbWV0aGluZyBzb21ld2hlcmUuLi4KPj4gPgo+PiA+Cj4+IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvcmVwb3MvaW5mcmEvd2Vic2l0ZXMvcHJvZHVjdGlvbi9tYXZlbi9jb250ZW50Lz0KcmVmZXJlbmNlL21hdmVuLWNsYXNzbG9hZGluZy5odG1sCj4+ID4gaXMgdW5hY2Nlc3NpYmxlIGZyb20gdGhlIHdlYnNpdGUgZHVlIHRvIGEgcmV3cml0ZSBydWxlLi4uCj4+ID4KPj4gPiBUaGluZ3MgdGhhdCBzZWVtIHRvIGJlIG1pc3Npbmc6Cj4+ID4KPj4gPiAqIFdoYXQgaXMgdGhlIGRlc2lyZWQgY2xhc3Nsb2FkaW5nIGZvciBhIHBsdWdpbiB0aGF0IGlzIG1hcmtlZCBhcyBhPQpuCj4+ID4gZXh0ZW5zaW9uPyBDYW4gYSBwbHVnaW4gaGF2ZSBhIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgdG8gYWxsbz0Kdwo+PiA+IGV4cG9ydGluZyBjbGFzc2VzIGFuZCBhcnRpZmFjdHMgd2hlbiB1c2VkIGFzIGFuIGV4dGVuc2lvbj8gSG93IHNob3U9CmxkICA9Cgo+PiB0aGUKPj4gPiBjbGFzc2xvYWRpbmcgbG9vayBmb3Igc3VjaCBhIHN0cmFuZ2UgYmVhc3QuCj4+ID4KPj4gPiAqIEhvdyBkb2VzIG9uZSBhY2Nlc3MgdGhlIHBsdWdpbiBjbGFzc2xvYWRlciBpZiB3ZSB3YW50IFRDQ0wgdG8gYmUgPQogPQoKPj4gb3RoZXIKPj4gPiB0aGFuIHRoYXQsIGlzIGl0IGEgRGVwZW5kZW5jeSBJbmplY3Rpb24gb3Igc29tZXRoaW5nIGVsc2U/Cj4+ID4KPj4gPiAqIFdoYXQgZGlmZmVyZW50aWF0ZXMgYSBDb3JlIGV4dGVuc2lvbiBmcm9tIGEgQnVpbGQgZXh0ZW5zaW9uIChpcyBpPQp0Cj4+ID4gdGhhdCBhCj4+ID4gYnVpbGQgZXh0ZW5zaW9uIGxhY2tzIGEgTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCBhbmQgd2FzIG9ubHkKPj4gPiBkZWNsYXJlZAo+PiA+IGluIHRoZSBwb20ueG1sLCB3aGlsZSBhIGNvcmUgZXh0ZW5zaW9uIGVpdGhlciBoYXMgYQo+PiA+IE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgLSBpZiBkZWNsYXJlZCBpbiB0aGUgcG9tIC0gb3IgaXMgYW4KPj4gPiBleHRlbnNpb24KPj4gPiBkZWNsYXJlZCBpbiAubXZuL2V4dGVuc2lvbnMueG1sKQo+PiA+Cj4+ID4gQXQgdGhpcyBwb2ludCBpbiB0aW1lIEkgdGhpbmsgd2UgYXJlIG5lYXJpbmcgdGhlIHBvaW50IHdoZXJlIEkgbWF5ID0KID0KCj4+IGhhdmUKPj4gPiB0bwo+PiA+IGRlY2xhcmUgMy41LjEgYWJhbmRvbmVkIGFzIEkgdGhpbmsgdGhlIGNsYXNzbG9hZGluZyBpbiB0aGF0IGlzIGEgID0KCj4+IHN5bXB0b20KPj4gPiBvZgo+PiA+IHRvbyBtYW55IGNvb2tzIGFsbCBjaGFuZ2luZyB0aGluZ3MgaW4gZGlmZmVyZW50IGRpcmVjdGlvbnMuIFdlIG5lZWQ9CiBhCj4+ID4gY29uc2lzdGVudCB2aXNpb24gb2Ygd2hlcmUgd2Ugd2FudCB0aGluZ3MgdG8gZ28gYW5kIC0gd2hpbGUgd2UgbmVlZD0KICA9Cgo+PiBub3QKPj4gPiBnZXQKPj4gPiB0aGVyZSBpbiBvbmUgZ28gLSB0aGUgcGF0aCBwcmVzZW50ZWQgZm9yIG90aGVycyB0byBzZWUuCj4+ID4KPj4gPiBUaGluZ3MgSSB0aGluayB3ZSBzaG91bGQgY29uc2lkZXI6Cj4+ID4KPj4gPiAxLiBEbyB3ZSB3YW50IHRvIGZvcm1hbGx5IGRlcHJlY2F0ZSBCdWlsZCBFeHRlbnNpb25zIGFuZCB0aGUKPj4gPiAvcHJvamVjdC9idWlsZC9leHRlbnNpb25zIGVsZW1lbnQgKHN0YXJ0IGxvZ2dpbmcgd2FybmluZ3MsIGV0Yyk/Cj4+ID4gMi4gRG8gd2Ugd2FudCB0byBmb3JtYWxseSBkZXByZWNhdGUgcGx1Z2lucyBhcyBleHRlbnNpb25zIGFuZCBzdGFydD0KCj4+ID4gbG9nZ2luZwo+PiA+IHdhcm5pbmdzIGZvcgo+PiA+Cj4+IC9wcm9qZWN0L2J1aWxkLyhwbHVnaW5NYW5hZ2VtZW50fC4pL3BsdWdpbnMvcGx1Z2luL2V4dGVuc2lvbnNbdGV4dCgpPTNEPQo9M0R0cnVlXQo+PiA+IDMuIFdoYXQgaXMgdGhlIGRpZmZlcmVuY2UgaW4gY2xhc3Nsb2FkaW5nIGZvciBhICA9Cgo+PiAvcHJvamVjdC9idWlsZC9leHRlbnNpb25zCj4+ID4gd2hpY2ggaGFzIGEgTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCBhbmQgb25lIHRoYXQgZG9lc24ndD8KPj4gPgo+PiA+IEknbSBrZWVwaW5nIHRoZSAzLjUuMSByZWxlYXNlIGluIHN0YWdpbmcgdW50aWwgd2UgZ2V0IGEgY2xlYXIgdmlzaW89Cm4gID0KCj4+IGZvcgo+PiA+IGhvdyB3ZSB3YW50IHRvIGhhdmUgY2xhc3Nsb2FkaW5nIHNvIHRoYXQgSSBjYW4gYXNzZXNzIHdoZXRoZXIgdGhlICA9Cgo+PiAzLjUuMQo+PiA+IGFjdHVhbGl0eSBpcyBvbmx5IG1vdmluZyBuZWFyZXIgdG8gdGhlIHZpc2lvbiAob2sgdG8gcmVsZWFzZSkgb3IgaGE9CnMKPj4gPiBtb3ZlZAo+PiA+IG5lYXJlciBpbiBzb21lIHdheXMgYnV0IGZ1cnRoZXIgaW4gb3RoZXJzIChub3Qgb2sgdG8gcmVsZWFzZSkKPj4gPgo+PiA+IE9uIDIwIFNlcHRlbWJlciAyMDE3IGF0IDEyOjQ0LCBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvbT49Cgo+PiA+IHdyb3RlOgo+PiA+Cj4+ID4+IFJlYWwtd29ybGQgc2NtIG9yIHdhZ29uIDxleHRlbnNpb25zPiB3b24ndCB0cmlnZ2VyIG1hdmVuMi1jb21wYXQgYz0Kb2RlCj4+ID4+IHBhdGggWzFdLiBUbyBhdm9pZCB0aGF0IG9ic2N1cmUgY29kZSBwYXRoIHdlIGNhbiBlaXRoZXIgbWFrZSB0aGUgdD0KZXN0Cj4+ID4+IG1vcmUgZWxhYm9yYXRlIChpLmUuIGFkZCBkZXBlbmRlbmNpZXMgdG8gZXh0amFyMS9leHRqYXIyKSBvciB3ZSBjYT0KbiAgPQoKPj4gdXNlCj4+ID4+IGV4dGVuc2lvbnMgPHBsdWdpbj4uIEVpdGhlciB3YXkgSSBkb24ndCB0aGluayB3ZSBzaG91bGQgc3BlbmQgdGltZT0KIG9uCj4+ID4+IHRoZSBjb2RlIHBhdGggdW5saWtlbHkgdG8gYmUgdXNlZCBpbiByZWFsIGxpZmUuCj4+ID4+Cj4+ID4+IFsxXQo+PiA+PiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL2Jsb2IvbWF2ZW4tMy41LjEvbWF2ZW4tCj4+ID4+Cj4+IGNvcmUvc3JjL21haW4vamF2YS9vcmcvYXBhY2hlL21hdmVuL3Byb2plY3QvRGVmYXVsdFByb2plY3RCdWlsZGluZ0hlbD0KcGVyLgo+PiA+PiBqYXZhI0wyMTAtTDIxOQo+PiA+Pgo+PiA+PiAtLQo+PiA+PiBSZWdhcmRzLAo+PiA+PiBJZ29yCj4+ID4+Cj4+ID4+IE9uIFdlZCwgU2VwIDIwLCAyMDE3LCBhdCAwMzoyOSBBTSwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4+ID4+ID4gT24gV2VkLCAyMCBTZXAgMjAxNyAwOToxMjo0NyArMDIwMCwgU3RlcGhlbiBDb25ub2xseQo+PiA+PiA+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4gPj4gPgo+PiA+PiA+ID4gT24gV2VkIDIwIFNlcCAyMDE3IGF0IDAxOjI5LCBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmM9Cm9tPgo+PiA+PiB3cm90ZToKPj4gPj4gPiA+Cj4+ID4+ID4gPj4gSW4gdGhhdCBjYXNlLCBjYW4gSSBzdWdnZXN0IGNvdXBsZSBvZiBjaGFuZ2VzIHRvIHRoZSB0ZXN0ICA9Cgo+PiBwcm9qZWN0Cj4+ID4+ID4gPj4KPj4gPj4gPiA+PiAqIEkgdGhpbmtzIGl0IG1ha2VzIG1vcmUgc2Vuc2UgdG8gY29uZmlndXJlIGV4dGphcjEgYW5kIGV4dGphPQpyMiAgPQoKPj4gYXMKPj4gPj4gPiA+PiBleHRlbnNpb25zIDxwbHVnaW4+IGVsZW1lbnRzIGluIHByb2JsZU4gcG9tLnhtbCBmaWxlcy4gRmlyc3QsPQoKPj4gPj4gdGhlcmUgaXMKPj4gPj4gPiA+PiBubyBtZWFuaW5nZnVsIG9yZGVyIGJldHdlZW4gPGV4dGVuc2lvbnM+IGFuZCA8cGx1Z2lucz4gZWxlbWVuPQp0cy4KPj4gPj4gTW9yZQo+PiA+PiA+ID4+IGltcG9ydGFudGx5LCB0aG91Z2gsIHNpbXBsZSA8ZXh0ZW5zaW9ucz4gYXJlIHRyZWF0ZWQgaW4gc3BlY2k9CmFsCj4+ID4+ID4gPj4gbWF2ZW4yLWNvbXBhdCBtb2RlIGFuZCBhcmUgbm90IHJlcHJlc2VudGF0aXZlIG9mIGxpa2VseSAgPQoKPj4gcmVhbC13b3JsZAo+PiA+PiA+ID4+IGV4dGVuc2lvbnMuCj4+ID4+ID4gPgo+PiA+PiA+Cj4+ID4+ID4gTm90IHN1cmUgSSBhZ3JlZSB3aXRoIHRoaXMuIEkgdGhpbmsgdGhlcmUgYXJlIGphcnMgd29ydGggc2hhcmluZz0KCj4+ID4+IGFjcm9zcwo+PiA+PiA+IG11bHRpcGxlIHBsdWdpbnMsIGJ1dCB3aGVyZSBtYWtpbmcgdGhlIHBsdWdpbiBhbiBleHRlbnNpb24gaXMgYSA9CmJpdAo+PiA+PiA+IHdlaXJkLgo+PiA+PiA+IEknbSB0aGlua2luZyBvZiBzY20gYW5kIHdhZ29uIGluIHRoaXMgY2FzZS4KPj4gPj4gPgo+PiA+PiA+ID4KPj4gPj4gPiA+IFRoYXQgc291bmRzIGxpa2Ugd2UgbmVlZCBkb2N1bWVudGF0aW9uIHVwZGF0ZWQgdGhlbi4gTm9uZSBvZiAgPQoKPj4gdGhhdCBpcwo+PiA+PiA+ID4gb2J2aW91cyB0byBtZS4KPj4gPj4gPiA+Cj4+ID4+ID4gPgo+PiA+PiA+ID4+Cj4+ID4+ID4gPj4gKiBJIHRoaW5rIHdlIHNob3VsZCBpbnRyb2R1Y2UgTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCB0bz0KICA9Cgo+PiB0aGUKPj4gPj4gdGVzdAo+PiA+PiA+ID4+IGV4dGVuc2lvbnMuIFRoaXMgbWV0YWRhdGEgd2hhdCBpbnRyb2R1Y2VkIHRvIGNvbmZpZ3VyZSBjbGFzc3A9CmF0aAo+PiA+PiA+ID4+IHZpc2liaWxpdHksIHNvIGxldHMgdXNlIGl0Lgo+PiA+PiA+ID4KPj4gPj4gPiA+Cj4+ID4+ID4gPiBBZ2Fpbiwgbm90IG9idmlvdXMgdG8gbWUsIGlmIHRoYXQgZmlsZSBhbGxvd3MgY29udHJvbCBvZiAgPQoKPj4gY2xhc3NwYXRoCj4+ID4+ID4gPiB2aXNpYmlsaXR5IHRoZW4gaXQgbWF5IGJlIHRoYXQgdGhlIG9ubHkgaXNzdWUgKndpdGgqIDMuNS4xIGlzID0KdGhlCj4+ID4+IGxhY2sKPj4gPj4gb2YKPj4gPj4gPiA+IGRvY3VtZW50YXRpb24uLi4gbm93IHByZXZpb3VzIHZlcnNpb25zIHdvdWxkIGhhdmUgYmVlbiBhZGRpbmcKPj4gPj4gYnJlYWtpbmcKPj4gPj4gPiA+IGNoYW5nZXMgZnJvbSBteSBQb1YgYnV0IHRoYXQgaXMgdGhlIHBhc3QgYW5kIHNob3VsZCBub3QgYWZmZWN0PQogID0KCj4+IHRoZQo+PiA+PiAzLjUuMQo+PiA+PiA+ID4gcmVsZWFzZS4KPj4gPj4gPiA+Cj4+ID4+ID4gPiBQUnMgZm9yIHRoZSBwcm9iZSBwcm9qZWN0IHdlbGNvbWUuIEkgYW0gaGFwcHkgdG8gdHJ5IGFuZCB3cml0ZT0KICA9Cgo+PiBkb2NzCj4+ID4+IG9uY2UKPj4gPj4gPiA+IEkKPj4gPj4gPiA+IGhhdmUgYW4gdW5kZXJzdGFuZGluZyBvZiB3aGF0IHRoZSBleHBlY3RlZCBiZWhhdmlvdXJzIGFyZQo+PiA+PiA+ID4KPj4gPj4gPiA+Cj4+ID4+ID4gPj4KPj4gPj4gPiA+PiAtLQo+PiA+PiA+ID4+IFJlZ2FyZHMsCj4+ID4+ID4gPj4gSWdvcgo+PiA+PiA+ID4+Cj4+ID4+ID4gPj4gT24gVHVlLCBTZXAgMTksIDIwMTcsIGF0IDA1OjEyIFBNLCBTdGVwaGVuIENvbm5vbGx5IHdyb3RlOgo+PiA+PiA+ID4+ID4gWWVzLCB0aGUgZXhwZWN0YXRpb25zIGFyZSBrZXkuIERlcGVuZGluZyBvbiB3aGF0IHRoZXkgYXJlIHc9CmUgID0KCj4+IG1heQo+PiA+PiA+ID4+IGVpdGhlcgo+PiA+PiA+ID4+ID4gZHJvcCAzLjUuMSBvciBnbyBhaGVhZCBhcyBpdCBkZXBlbmRzIG9uIHdoZXRoZXIgdGhpcyBpcyBtb3I9CmUKPj4gPj4gY29ycmVjdAo+PiA+PiA+ID4+IHRoYW4KPj4gPj4gPiA+PiA+IDMuNS4wIG9yIHN3YXBwaW5nIG9uZSBmaXggZm9yIGEgYnVnCj4+ID4+ID4gPj4gPgo+PiA+PiA+ID4+ID4gT24gVHVlIDE5IFNlcCAyMDE3IGF0IDIxOjM5LCBJZ29yIEZlZG9yZW5rbyAgPQoKPj4gPGlnb3JAaWZlZG9yZW5rby5jb20KPj4gPgo+PiA+PiA+ID4+IHdyb3RlOgo+PiA+PiA+ID4+ID4KPj4gPj4gPiA+PiA+ID4gSnVzdCB0byBjb25maXJtIEkgdW5kZXJzdGFuZCB3aGF0IHdlIGFyZSB0cnlpbmcgdG8gZXN0YWJsPQppc2gKPj4gPj4gaGVyZS4KPj4gPj4gPiA+PiBXZQo+PiA+PiA+ID4+ID4gPiB3YW50IHRvIGRlY2lkZSB0aGUgZXhwZWN0ZWQvZGVzaXJlZCBjb21wb25lbnQgaW5qZWN0aW9uCj4+ID4+IGJlaGF2aW91cgo+PiA+PiA+ID4+IGFuZAo+PiA+PiA+ID4+ID4gPiBjbGFzc3BhdGggdmlzaWJpbGl0eSBpbiB0aGUgYWJzZW5jZSBvZiBwYWNrYWdlIGFuZCBhcnRpZmE9CmN0Cj4+ID4+IGV4cG9ydAo+PiA+PiA+ID4+ID4gPiBjb25maWd1cmF0aW9uIChpLmUuIE1FVEEtSU5GL21hdmVuL2V4dGVuc2lvbi54bWwgZmlsZSkuIEQ9CmlkICA9Cgo+PiBJCj4+ID4+IGdldAo+PiA+PiA+ID4+IHRoaXMKPj4gPj4gPiA+PiA+ID4gcmlnaHQ/Cj4+ID4+ID4gPj4gPiA+Cj4+ID4+ID4gPj4gPiA+IC0tCj4+ID4+ID4gPj4gPiA+IFJlZ2FyZHMsCj4+ID4+ID4gPj4gPiA+IElnb3IKPj4gPj4gPiA+PiA+ID4KPj4gPj4gPiA+PiA+ID4gT24gVHVlLCBTZXAgMTksIDIwMTcsIGF0IDAzOjUyIFBNLCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPj4gPj4gPiA+PiA+ID4gPiBMZXQncyBkbyBpdCBsaWtlIHRoaXM6Cj4+ID4+ID4gPj4gPiA+ID4KPj4gPj4gPiA+PiA+ID4KPj4gPj4gPiA+PiAgPQoKPj4gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZG93bmxvYWQvYXR0YWNobWVudHMvMjMyOTg0MS8KPj4gPj4gY2xhc3NyZWFsbXMucGRmP2FwaT0zRHYyCj4+ID4+ID4gPj4gPiA+ID4KPj4gPj4gPiA+PiA+ID4gPiBSb2JlcnQKPj4gPj4gPiA+PiA+ID4gPgo+PiA+PiA+ID4+ID4gPiA+IE9uIFR1ZSwgMTkgU2VwIDIwMTcgMjE6MDg6MzkgKzAyMDAsIFN0ZXBoZW4gQ29ubm9sbHkKPj4gPj4gPiA+PiA+ID4gPiA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4+ID4+ID4gPj4gPiA+ID4KPj4gPj4gPiA+PiA+ID4gPiA+IEkgdGhpbmsgeW91IHdpbGwgbmVlZCBhIGxpbmsgdG8gdGhlIFBERiBhcyBhdHRhY2htZW50PQpzICA9Cgo+PiBhcmUKPj4gPj4gPiA+PiBzdHJpcHBlZAo+PiA+PiA+ID4+ID4gPiBmcm9tCj4+ID4+ID4gPj4gPiA+ID4gPiB0aGUgTUwKPj4gPj4gPiA+PiA+ID4gPiA+Cj4+ID4+ID4gPj4gPiA+ID4gPiBPbiBUdWUgMTkgU2VwIDIwMTcgYXQgMTk6NTcsIFJvYmVydCBTY2hvbHRlCj4+ID4+ID4gPj4gPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgo+PiA+PiA+ID4+ID4gPiB3cm90ZToKPj4gPj4gPiA+PiA+ID4gPiA+Cj4+ID4+ID4gPj4gPiA+ID4gPj4gQXR0YWNoZWQgYSBzaW5nbGUgcGFnZSBvdmVydmlldy4KPj4gPj4gPiA+PiA+ID4gPiA+Pgo+PiA+PiA+ID4+ID4gPiA+ID4+IFBlciBibG9jayB5b3UnbGwgc2VlIGluIHRoZSB1cHBlciBsZWZ0IGNvcm5lciB0aGUgID0KCj4+IGV4ZWN1dGVkCj4+ID4+ID4gPj4gcGx1Z2luCj4+ID4+ID4gPj4gPiA+ID4gPj4gVGhlIGxlZnQgY29sdW1uIGNvbnRhaW5zIHRoZSBleHRlbnNpb25zIGFuZCBwbHVnaW4gaT0Kbgo+PiA+PiBvcmRlcmFzCj4+ID4+ID4gPj4gPiA+IHNwZWNpZmllZAo+PiA+PiA+ID4+ID4gPiA+ID4+IGluCj4+ID4+ID4gPj4gPiA+ID4gPj4gdGhlIHBvbS54bWwKPj4gPj4gPiA+PiA+ID4gPiA+PiBJbiBldmVyeSBjbGFzc2xvYWRlcmNvbHVtbiB5b3UnbGwgc2VlIG51bWJlcnMgd2hpY2gKPj4gPj4gcmVwcmVzZW50Cj4+ID4+ID4gPj4gdGhlCj4+ID4+ID4gPj4gPiA+IG9yZGVyLgo+PiA+PiA+ID4+ID4gPiA+ID4+Cj4+ID4+ID4gPj4gPiA+ID4gPj4gSSBob3BlIEkgZGlkbid0IG1ha2UgYW55IG1pc3Rha2VzLgo+PiA+PiA+ID4+ID4gPiA+ID4+IFRvbW9ycm93IEkgaGF2ZSBlbm91Z2ggdGltZSB0byBzZWUgaWYgSSB1bmRlcnN0YW5kICA9Cgo+PiB3aGF0J3MKPj4gPj4gPiA+PiBoYXBwZW5pbmcKPj4gPj4gPiA+PiA+ID4gPiA+PiBoZXJlLgo+PiA+PiA+ID4+ID4gPiA+ID4+Cj4+ID4+ID4gPj4gPiA+ID4gPj4gSSB3aWxsIGNvbWUgYmFjayB3aXRoIG15IGNvbmNsdXNpb25zLgo+PiA+PiA+ID4+ID4gPiA+ID4+Cj4+ID4+ID4gPj4gPiA+ID4gPj4gUm9iZXJ0Cj4+ID4+ID4gPj4gPiA+ID4gPj4KPj4gPj4gPiA+PiA+ID4gPiA+PiBPbiBUdWUsIDE5IFNlcCAyMDE3IDA2OjU1OjA4ICswMjAwLCBJZ29yIEZlZG9yZW5rbyA8PQoKPj4gPj4gPiA+PiA+ID4gaWdvckBpZmVkb3JlbmtvLmNvbT4KPj4gPj4gPiA+PiA+ID4gPiA+PiB3cm90ZToKPj4gPj4gPiA+PiA+ID4gPiA+Pgo+PiA+PiA+ID4+ID4gPiA+ID4+ID4gVEw7RFIgeW91ciB0ZXN0IHByb2plY3QgZXhwb3NlZCB0d28gZXhpc3RpbmcgYnVncyw9CiAgPQoKPj4gb25lCj4+ID4+ID4gPj4gY2hhbmdlIGluCj4+ID4+ID4gPj4gPiA+ID4gPj4gPiBiZWhhdmlvdXIgYW5kIG9uZSBxdWlyayBJIGNhbid0IGV4cGxhaW4KPj4gPj4gPiA+PiA+ID4gPiA+PiA+Cj4+ID4+ID4gPj4gPiA+ID4gPj4gPiAqIEJ1aWxkIGA8ZXh0ZW5zaW9ucz5gIGFyZSBsb2FkZWQgYnkgdHdvICA9Cgo+PiBjbGFzc2xvYWRlcnMsCj4+ID4+IHdoaWNoCj4+ID4+ID4gPj4gaXMKPj4gPj4gPiA+PiBhCj4+ID4+ID4gPj4gPiA+IGJ1Zwo+PiA+PiA+ID4+ID4gPiA+ID4+IGluCj4+ID4+ID4gPj4gPiA+ID4gPj4gPiBEZWZhdWx0UHJvamVjdEJ1aWxkaW5nSGVscGVyI2NyZWF0ZVByb2plY3RSZWFsbSBhbj0KZAo+PiA+PiBleHBsYWlucwo+PiA+PiA+ID4+IHdoeSB5b3UKPj4gPj4gPiA+PiA+ID4gPiA+PiBzZWUKPj4gPj4gPiA+PiA+ID4gPiA+PiA+IGV4dGphcjEvZXh0amFyMiBpbiB0aGUgb3V0cHV0Cj4+ID4+ID4gPj4gPiA+ID4gPj4gPiAqIENsYXNzUmVhbG0gZG9lcyBub3QgYWxsb3cgc2FtZSBmb3JlaWduLWltcG9ydCBmcj0Kb20KPj4gPj4gbXVsdGlwbGUKPj4gPj4gPiA+PiA+ID4gPiA+PiA+IGNsYXNzbG9hZGVycywgd2hpY2ggaXMgYSBidWcgYW5kIGV4cGxhaW5zIHdoeSBpdCBpPQpzICA9Cgo+PiBub3QKPj4gPj4gPiA+PiBwb3NzaWJsZSB0bwo+PiA+PiA+ID4+ID4gPiA+ID4+IGxvYWQKPj4gPj4gPiA+PiA+ID4gPiA+PiA+IHNhbWUgcmVzb3VyY2UgZnJvbSBtdWx0aXBsZSBwbHVnaW5zL2V4dGVuc2lvbnMKPj4gPj4gPiA+PiA+ID4gPiA+PiA+ICogVENDTCBkb2VzIG5vdCBoYXZlIGFjY2VzcyB0byBwcml2YXRlIChpLmUuIG5vdAo+PiA+PiBleHBvcnRlZCkKPj4gPj4gPiA+PiByZXNvdXJjZXMKPj4gPj4gPiA+PiA+ID4gPiA+PiBvZgo+PiA+PiA+ID4+ID4gPiA+ID4+ID4gdGhpcyBleHRlbnNpb25zIHBsdWdpbiwgd2hpY2ggaXMgYSBjaGFuZ2Ugb2YgID0KCj4+IGJlaGF2aW91cgo+PiA+PiA+ID4+IGludHJvZHVjZWQgYnkKPj4gPj4gPiA+PiA+ID4gPiA+PiA+IG1uZy02MjA5IGZpeAo+PiA+PiA+ID4+ID4gPiA+ID4+ID4gKiBBbHNvLCBjb21wb25lbnQgaW5qZWN0aW9uIG9yZGVyIGFwcGVhcnMgdG8gYmUKPj4gPj4gYmFja3dhcmRzLAo+PiA+PiA+ID4+IGJ1dAo+PiA+PiA+ID4+IG1heWJlCj4+ID4+ID4gPj4gPiA+ID4gPj4gPiBTdHVhcnQgY2FuIGV4cGxhaW4gd2h5Lgo+PiA+PiA+ID4+ID4gPiA+ID4+ID4KPj4gPj4gPiA+PiA+ID4gPiA+PiA+Cj4+ID4+ID4gPj4gPiA+ID4gPj4gPiBCZWxvdyBpcyBtb3JlIGRldGFpbGVkIGV4cGxhbmF0aW9uIG9mIGV4cGVjdGVkIGFuZD0KCj4+ID4+IG9ic2VydmVkCj4+ID4+ID4gPj4gPiA+IGJlaGF2aW91cgo+PiA+PiA+ID4+ID4gPiA+ID4+ID4KPj4gPj4gPiA+PiA+ID4gPiA+PiA+Cj4+ID4+ID4gPj4gPiA+ID4gPj4gPiAjIyBDb21wb25lbnQgaW5qZWN0aW9uIGRlcGVuZHMgb24gdGhlIGN1cnJlbnRseSAgPQoKPj4gcnVubmluZwo+PiA+PiA+ID4+IHBsdWdpbgo+PiA+PiA+ID4+IGFuZAo+PiA+PiA+ID4+ID4gPiB0aGUKPj4gPj4gPiA+PiA+ID4gPiA+PiA+IGluamVjdGlvbiBzaXRlCj4+ID4+ID4gPj4gPiA+ID4gPj4gPgo+PiA+PiA+ID4+ID4gPiA+ID4+ID4gQ3VycmVudGx5IHJ1bm5pbmcgcGx1Z2lucyBoYXZlIGFjY2VzcyB0byB0aGUgID0KCj4+IGZvbGxvd2luZwo+PiA+PiA+ID4+IGNvbXBvbmVudAo+PiA+PiA+ID4+ID4gPiA+ID4+ID4gaW1wbGVtZW50YXRpb25zOgo+PiA+PiA+ID4+ID4gPiA+ID4+ID4KPj4gPj4gPiA+PiA+ID4gPiA+PiA+ICogUmVndWxhciBwbHVnaW4gaGFzIGFjY2VzcyB0byBjb21wb25lbnRzICA9Cgo+PiBpbXBsZW1lbnRlZCBieQo+PiA+PiB0aGUKPj4gPj4gPiA+PiBwbHVnaW4sCj4+ID4+ID4gPj4gPiA+ID4gPj4gPiBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMsIGlmIGFueSAodmlhIHByb2plY3QgY2xhcz0Kcwo+PiA+PiByZWFsbQo+PiA+PiA+ID4+IGZvcmVpZ24KPj4gPj4gPiA+PiA+ID4gPiA+PiA+IGltcG9ydCkgYW5kIE1hdmVuIENvcmUuCj4+ID4+ID4gPj4gPiA+ID4gPj4gPiAqIEV4dGVuc2lvbiBwbHVnaW4gaGFzIGFjY2VzcyB0byBjb21wb25lbnRzICA9Cgo+PiBpbXBsZW1lbnRlZAo+PiA+PiBieQo+PiA+PiA+ID4+IHRoZQo+PiA+PiA+ID4+ID4gPiBwcm9qZWN0Cj4+ID4+ID4gPj4gPiA+ID4gPj4gPiBidWlsZCBleHRlbnNpb25zIGFuZCBNYXZlbiBDb3JlLgo+PiA+PiA+ID4+ID4gPiA+ID4+ID4gKiBXaXRob3V0IGEgcnVubmluZyBwbHVnaW4gKGUuZy4sIGR1cmluZyBwcm9qZWN0Cj4+ID4+IGRlcGVuZGVuY3kKPj4gPj4gPiA+PiA+ID4gPiA+PiByZXNvbHV0aW9uKSwKPj4gPj4gPiA+PiA+ID4gPiA+PiA+IGNvbXBvbmVudHMgaW1wbGVtZW50ZWQgYnkgdGhlIHByb2plY3QgYnVpbGQgID0KCj4+IGV4dGVuc2lvbnMKPj4gPj4gYW5kCj4+ID4+ID4gPj4gTWF2ZW4KPj4gPj4gPiA+PiA+ID4gQ29yZQo+PiA+PiA+ID4+ID4gPiA+ID4+ID4gYXJlIGFjY2Vzc2libGUuCj4+ID4+ID4gPj4gPiA+ID4gPj4gPgo+PiA+PiA+ID4+ID4gPiA+ID4+ID4gRGlmZmVyZW50IGluamVjdGlvbiBzaXRlcyBoYXZlIGFjY2VzcyB0byB0aGUgID0KCj4+IGZvbGxvd2luZwo+PiA+PiA+ID4+IGNvbXBvbmVudAo+PiA+PiA+ID4+ID4gPiA+ID4+ID4gaW50ZXJmYWNlczoKPj4gPj4gPiA+PiA+ID4gPiA+PiA+Cj4+ID4+ID4gPj4gPiA+ID4gPj4gPiAqIE1hdmVuIENvcmUgaGFzIGFjY2VzcyB0byBjb21wb25lbnQgaW50ZXJmYWNlcyAgPQoKPj4gZGVmaW5lZAo+PiA+PiBieQo+PiA+PiA+ID4+IHRoZQo+PiA+PiA+ID4+IGNvcmUKPj4gPj4gPiA+PiA+ID4gPiA+PiA+IGl0c2VsZiAob2J2aW91c2x5KQo+PiA+PiA+ID4+ID4gPiA+ID4+ID4gKiBQcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMgaGF2ZSBhY2Nlc3MgdG8gKipwdWJsaWM9CioqCj4+ID4+ID4gPj4gY29tcG9uZW50Cj4+ID4+ID4gPj4gPiA+ID4gPj4gPiBpbnRlcmZhY2VzIGRlZmluZWQgYnkgTWF2ZW4gQ29yZSBhbmQgY29tcG9uZW50Cj4+ID4+IGludGVyZmFjZXMKPj4gPj4gPiA+PiBkZWZpbmVkIGJ5Cj4+ID4+ID4gPj4gPiA+ID4gPj4gdGhlCj4+ID4+ID4gPj4gPiA+ID4gPj4gPiBidWlsZCBleHRlbnNpb24gaXRzZWxmICh0aGVyZSBpcyBubyB3YXkgdG8gYWNjZXNzCj4+ID4+IGNvbXBvbmVudAo+PiA+PiA+ID4+ID4gPiBpbnRlcmZhY2VzCj4+ID4+ID4gPj4gPiA+ID4gPj4gPiBkZWZpbmVkIGluIG90aGVyIGV4dGVuc2lvbnMpCj4+ID4+ID4gPj4gPiA+ID4gPj4gPiAqIFJlZ3VsYXIgcGx1Z2lucyBoYXZlIGFjY2VzcyB0byAqKnB1YmxpYyoqIGNvbXBvbj0KZW50Cj4+ID4+ID4gPj4gaW50ZXJmYWNlcwo+PiA+PiA+ID4+ID4gPiA+ID4+IGRlZmluZWQKPj4gPj4gPiA+PiA+ID4gPiA+PiA+IGJ5IE1hdmVuIENvcmUsIGNvbXBvbmVudCBpbnRlcmZhY2VzICoqZXhwb3J0ZWQqKiBiPQp5Cj4+ID4+IGJ1aWxkCj4+ID4+ID4gPj4gZXh0ZW5zaW9ucwo+PiA+PiA+ID4+ID4gPiA+ID4+IGFuZAo+PiA+PiA+ID4+ID4gPiA+ID4+ID4gY29tcG9uZW50IGludGVyZmFjZXMgZGVmaW5lZCBpbiB0aGUgcGx1Z2luIGl0c2VsZgo+PiA+PiA+ID4+ID4gPiA+ID4+ID4KPj4gPj4gPiA+PiA+ID4gPiA+PiA+IEZvciBpbmplY3Rpb24gdG8gd29yaywgaW5qZWN0aW9uIHNpdGUgaGFzIHRvIGhhdmUKPj4gPj4gYWNjZXNzIHRvCj4+ID4+ID4gPj4gdGhlCj4+ID4+ID4gPj4gPiA+ID4gPj4gPiBjb21wb25lbnQgaW50ZXJmYWNlIGFuZCB0aGUgY29tcG9uZW50IGltcGxlbWVudGF0aT0Kb24KPj4gPj4gbXVzdAo+PiA+PiBiZQo+PiA+PiA+ID4+ID4gPiA+ID4+IGFjY2Vzc2libGUKPj4gPj4gPiA+PiA+ID4gPiA+PiA+IHRocm91Z2ggdGhlIGN1cnJlbnQgY29udGV4dC4KPj4gPj4gPiA+PiA+ID4gPiA+PiA+Cj4+ID4+ID4gPj4gPiA+ID4gPj4gPiBGcm9tIHdoYXQgSSBjYW4gdGVsbCwgaW4geW91ciBleGFtcGxlIGFsbCBwbHVnaW5zID0KID0KCj4+IGhhdmUKPj4gPj4gYWNjZXNzCj4+ID4+ID4gPj4gdG8gdGhlCj4+ID4+ID4gPj4gPiA+ID4gPj4gPiByaWdodCBjb21wb25lbnRzIHdoZW4gdXNpbmcgY3VycmVudCAzLjUuMi1TTkFQU0hPVD0KLiAgPQoKPj4gVGhlCj4+ID4+ID4gPj4gaW5qZWN0aW9uCj4+ID4+ID4gPj4gPiA+ID4gPj4gb3JkZXIKPj4gPj4gPiA+PiA+ID4gPiA+PiA+IGRvZXMgYXBwZWFyIHRvIGJlIGJhY2t3YXJkcyBmcm9tIHdoYXQgSSBleHBlY3RlZCwKPj4gPj4gaG93ZXZlci4KPj4gPj4gPiA+PiA+ID4gPiA+PiA+Cj4+ID4+ID4gPj4gPiA+ID4gPj4gPgo+PiA+PiA+ID4+ID4gPiA+ID4+ID4gIyMgUmVzb3VyY2VzIGxvb2t1cCBmdWxseSBkZXBlbmRzIG9uIGNsYXNzcGF0aAo+PiA+PiB2aXNpYmlsaXR5LAo+PiA+PiA+ID4+ID4gPiA+ID4+IHNwZWNpZmljYWxseQo+PiA+PiA+ID4+ID4gPiA+ID4+ID4KPj4gPj4gPiA+PiA+ID4gPiA+PiA+ICogUmVndWxhciBwbHVnaW4gY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byByZXNvdXJjPQplcwo+PiA+PiBmcm9tCj4+ID4+IHRoZQo+PiA+PiA+ID4+IHBsdWdpbgo+PiA+PiA+ID4+ID4gPiA+ID4+ID4gaXRzZWxmLCBmcm9tICoqZXhwb3J0ZWQqKiBwYWNrYWdlcyBvZiB0aGUgcHJvamVjdCA9CiA9Cgo+PiBidWlsZAo+PiA+PiA+ID4+IGV4dGVuc2lvbnMKPj4gPj4gPiA+PiA+ID4gYW5kCj4+ID4+ID4gPj4gPiA+ID4gPj4gPiAqKnB1YmxpYyoqIE1hdmVuIENvcmUgcGFja2FnZXMKPj4gPj4gPiA+PiA+ID4gPiA+PiA+ICogRXh0ZW5zaW9ucyBwbHVnaW4gY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byB0aGUKPj4gPj4gcmVzb3VyY2VzCj4+ID4+ID4gPj4gZnJvbSB0aGUKPj4gPj4gPiA+PiA+ID4gPiA+PiA+IGV4dGVuc2lvbnMgcGx1Z2luIGl0c2VsZiBhbmQgZnJvbSAqKnB1YmxpYyoqIE1hdmVuPQogID0KCj4+IENvcmUKPj4gPj4gPiA+PiBwYWNrYWdlcwo+PiA+PiA+ID4+ID4gPiA+ID4+ID4gKiBQcm9qZWN0IGNsYXNzIHJlYWxtIGhhcyBhY2Nlc3MgdG8gY2xhc3NlcyBhbmQKPj4gPj4gcmVzb3VyY2VzCj4+ID4+ID4gPj4gPiA+ICoqZXhwb3J0ZWQqKgo+PiA+PiA+ID4+ID4gPiA+ID4+ID4gYnkgcHJvamVjdCBidWlsZCBleHRlbnNpb25zIGFuZCAqKnB1YmxpYyoqIE1hdmVuIEM9Cm9yZQo+PiA+PiA+ID4+IHBhY2thZ2VzCj4+ID4+ID4gPj4gPiA+ID4gPj4gPgo+PiA+PiA+ID4+ID4gPiA+ID4+ID4gSSBzZWUgdGhyZWUgcHJvYmxlbXMgaGVyZQo+PiA+PiA+ID4+ID4gPiA+ID4+ID4KPj4gPj4gPiA+PiA+ID4gPiA+PiA+ICogTWF2ZW4gYWRkcyBidWlsZCBzaW5nbGUtamFyIGA8ZXh0ZW5zaW9ucz5gIGVsZW1lPQpudHMKPj4gPj4gPiA+PiBkaXJlY3RseQo+PiA+PiA+ID4+IHRvCj4+ID4+ID4gPj4gPiA+ID4gPj4gPiBwcm9qZWN0IGNsYXNzIHJlYWxtICoqYW5kKiogY3JlYXRlcyBzZXBhcmF0ZSAgPQoKPj4gZXh0ZW5zaW9ucwo+PiA+PiBjbGFzcwo+PiA+PiA+ID4+IHJlYWxtcwo+PiA+PiA+ID4+ID4gPiA+ID4+IGZvcgo+PiA+PiA+ID4+ID4gPiA+ID4+ID4gdGhlbS4gV2hpY2ggcmVzdWx0cyBpbiBkdXBsaWNhdGUgY2xhc3Nlcy9yZXNvdXJjZXM9Cgo+PiA+PiBsb2FkZWQKPj4gPj4gYnkKPj4gPj4gPiA+PiB0d28KPj4gPj4gPiA+PiA+ID4gPiA+PiA+IGNsYXNzbG9hZGVycyBhbmQgZXhwbGFpbnMgd2h5IHlvdSBzZWUgZXh0amFyMS9leHRqPQphcjIKPj4gPj4gb3V0cHV0Cj4+ID4+ID4gPj4gKHdoaWNoCj4+ID4+ID4gPj4gPiA+ID4gPj4geW91Cj4+ID4+ID4gPj4gPiA+ID4gPj4gPiBzaG91bGRuJ3QgYWNjb3JkaW5nIHRvIHRoZSBleHBsYW5hdGlvbiBhYm92ZSkKPj4gPj4gPiA+PiA+ID4gPiA+PiA+ICogQ2xhc3NSZWFsbSBkb2VzIG5vdCBhbGxvdyBmb3JlaWduLWltcG9ydCBvZiB0aGUgPQogPQoKPj4gc2FtZQo+PiA+PiA+ID4+IHBhY2thZ2UKPj4gPj4gPiA+PiBmcm9tCj4+ID4+ID4gPj4gPiA+ID4gPj4gPiBtdWx0aXBsZSBjbGFzc2xvYWRlcnMuIFRoaXMgbWFrZXMgaXQgaW1wb3NzaWJsZSB0bz0KICA9Cgo+PiBsb2FkCj4+ID4+IHRoZQo+PiA+PiA+ID4+IHNhbWUKPj4gPj4gPiA+PiA+ID4gPiA+PiA+IHJlc291cmNlIGZyb20gbXVsdGlwbGUgcGx1Z2lucy9leHRlbnNpb25zLgo+PiA+PiA+ID4+ID4gPiA+ID4+ID4gKiBFeHRlbnNpb25zIHBsdWdpbnMgY2Fubm90IGFjY2VzcyB0aGVpciBvd24gcHJpdmE9CnRlCj4+ID4+IChpLmUuCj4+ID4+ID4gPj4gbm90Cj4+ID4+ID4gPj4gPiA+ID4gPj4gZXhwb3J0ZWQpCj4+ID4+ID4gPj4gPiA+ID4gPj4gPiByZXNvdXJjZXMgdmlhIFRDQ0wsIHRoaXMgaXMgY2hhbmdlIGluIGJlaGF2aW91cgo+PiA+PiBpbnRyb2R1Y2VkCj4+ID4+IGJ5Cj4+ID4+ID4gPj4gPiA+IG1uZy02MjA5Cj4+ID4+ID4gPj4gPiA+ID4gPj4gPiBmaXgKPj4gPj4gPiA+PiA+ID4gPiA+PiA+Cj4+ID4+ID4gPj4gPiA+ID4gPj4gPiBIb3BlIHRoaXMgaGVscHMKPj4gPj4gPiA+PiA+ID4gPiA+Pgo+PiA+PiA+ID4+ID4gPiA+ID4+Cj4+ID4+ID4gPj4KPj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotLS0KPj4gPj4gPiA+PiA+ID4gPiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiAgPQoKPj4gZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPj4gPiA+PiA+ID4gPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOgo+PiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4+ID4gPj4gPiA+ID4KPj4gPj4gPiA+PiA+ID4gPgo+PiA+PiA+ID4+Cj4+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLS0tCj4+ID4+ID4gPj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcj0KZwo+PiA+PiA+ID4+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS49Cm9yZwo+PiA+PiA+ID4+ID4gPiA+Cj4+ID4+ID4gPj4gPiA+Cj4+ID4+ID4gPj4gPiA+Cj4+ID4+ID4gPj4KPj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotLS0KPj4gPj4gPiA+PiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPj4gPiA+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yPQpnCj4+ID4+ID4gPj4gPiA+Cj4+ID4+ID4gPj4gPiA+IC0tCj4+ID4+ID4gPj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPj4gPj4gPiA+Pgo+PiA+PiA+ID4+Cj4+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLS0tCj4+ID4+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPj4gPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4+ID4gPj4KPj4gPj4gPiA+PiAtLQo+PiA+PiA+ID4gU2VudCBmcm9tIG15IHBob25lCj4+ID4+ID4KPj4gPj4gPiAgPQoKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQoKPj4gPj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+PiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4gPj4gPgo+PiA+Pgo+PiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0tLQo+PiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4+Cj4+Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KPj4gLS0KPiBTZW50IGZyb20gbXkgcGhvbmUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDEwMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgU2VwIDI2IDE4OjUxOjE1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDEwMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA0NzI5MzEwNUM5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMjYgU2VwIDIwMTcgMTg6NTE6MTUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5MzYzMiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBTZXAgMjAxNyAxODo1MToxNCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTM1MzAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjYgU2VwIDIwMTcgMTg6NTE6MTQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MzUxNiBpbnZva2VkIGJ5IHVpZCA5OSk7IDI2IFNlcCAyMDE3IDE4OjUxOjE0IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDI2IFNlcCAyMDE3IDE4OjUxOjE0ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgNjNENzAxQTAwNDAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDI2IFNlcCAyMDE3IDE4OjUxOjEyICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiQXBhY2hlIE1hdmVuIERldiIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEYXRlOiBUdWUsIDI2IFNlcCAyMDE3IDIwOjUxOjExICswMjAwClN1YmplY3Q6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBEb3hpYSBTaXRldG9vbHMgdmVyc2lvbiAxLjcuNQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55NjZyemxsemtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpIaSwKCldlIHNvbHZlZCA1IGlzc3VlczoKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMxNzMyMCZ2ZXJzaW9uPTEyMzM4OTgyJnN0eWxlTmFtZT1UZXh0CgpUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPXByb2plY3QlMjAlM0QlMjAxMjMxNzMyMCUyMEFORCUyMHN0YXR1cyUyMCUzRCUyME9wZW4lMjBPUkRFUiUyMEJZJTIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQwoKU3RhZ2luZyByZXBvOgpodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzcwLwpodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzcwL29yZy9hcGFjaGUvbWF2ZW4vZG94aWEvZG94aWEtc2l0ZXRvb2xzLzEuNy41L2RveGlhLXNpdGV0b29scy0xLjcuNS1zb3VyY2UtcmVsZWFzZS56aXAKClNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgpkb3hpYS1zaXRldG9vbHMtMS43LjUtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6ICAKOWFiODc0MTIwYmQ2MGY1MzJjMTY3YTQzMGQ4ZTA3N2MyOTE0MDE2ZAoKU3RhZ2luZyBzaXRlOgpodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZG94aWEvZG94aWEtc2l0ZXRvb2xzLWFyY2hpdmVzL2RveGlhLXNpdGV0b29scy1MQVRFU1QvCgpHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKClZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCgpbIF0gKzEKWyBdICswClsgXSAtMQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzOTMwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBTZXAgMTAgMTg6NTQ6MTUgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTMwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIENBOENGMUFEREMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAxODo1NDoxNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI5NzExIGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIFNlcCAyMDE3IDE4OjU0OjE1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyOTYyOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBTZXAgMjAxNyAxODo1NDoxNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI5NjE3IGludm9rZWQgYnkgdWlkIDk5KTsgMTAgU2VwIDIwMTcgMTg6NTQ6MTUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTAgU2VwIDIwMTcgMTg6NTQ6MTUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgN0YwRkYxQTAwMjkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDEwIFNlcCAyMDE3IDE4OjU0OjE0ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbUkVTVUxUXSBSZTogUGxlYXNlIHJldHdlZXQgYW5kIHZvdGUKUmVmZXJlbmNlczogPENBK25Qbk16ejJ1Nj1jZFU1K2gxSHN2V2hTNENUNXprWXpyV0NFb3ctRzhDenYrbVkyZ0BtYWlsLmdtYWlsLmNvbT4gPENBK25Qbk16K3ZIa2ttczEzRUNodzVrR0JuWERrOTNfSHI1Rjc2K0RldGJucHFmaUdYd0BtYWlsLmdtYWlsLmNvbT4gPG9wLnk2Y3l4amdja2RraHJyQGRlc2t0b3AtMmtoc2s0ND4gPENBS3VWekJTTl9SZERNaUJyZGZKVVl5R29QREQ0Yk5hb3FXOGpBOE0wTj1tNmFVaXRud0BtYWlsLmdtYWlsLmNvbT4gPENBK25Qbk13V0tWbTR4aHpUVnJGNmR4c2l5clVOeU96clRNQ25RYWpaK0E2aVhZNkJId0BtYWlsLmdtYWlsLmNvbT4KRGF0ZTogU3VuLCAxMCBTZXAgMjAxNyAyMDo1NDoxNSArMDIwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55NmM1Z3BzZGtka2hyckBkZXNrdG9wLTJraHNrNDQ+CkluLVJlcGx5LVRvOiA8Q0ErblBuTXdXS1ZtNHhoelRWckY2ZHhzaXlyVU55T3pyVE1DblFhalorQTZpWFk2Qkh3QG1haWwuZ21haWwuY29tPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCk9uIFN1biwgMTAgU2VwIDIwMTcgMjA6MjE6MTEgKzAyMDAsIFN0ZXBoZW4gQ29ubm9sbHkgIAo8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cgo+IE9uIFN1biAxMCBTZXAgMjAxNyBhdCAxOTowNCwgVGlib3IgRGlnYW5hIDx0aWJvcmRpZ2FuYUBhcGFjaGUub3JnPiB3cm90ZToKPgo+PiBIaSBBbGwsCj4+Cj4+IEFyZSB3ZSBmYWNpbmcgbmV3IEFQSSByZWdhcmRpbmcgbmV0d29ya2luZyBhbmQgc2VjdXJpdHkgdXNlZnVsIGluIEphdmEgIAo+PiA4Pwo+Pgo+PiBXaGVuIEkgZmlyc3Qgc2F3IHRoZXNlIG9wdGlvbnMgSSBhc2tlZCBteXNlbGYgd2hhdCBiZW5lZml0IHdvdWxkIGhhdmUgIAo+PiB0aGUKPj4gVXNlciBhbmQgSmVua2lucyBmcm9tIEphdmEgOC4KPj4gQW5kIHNlY29uZCBxdWVzdGlvbiB3YXMgd2hldGhlciB3ZSB3b3VsZCBiZSBzbyBmbGV4aWJsZSB0byByZXdyaXRlIHRoZSAgCj4+IGNvZGUKPj4gYW5kIHVzZSBMYW1iZGEgZnVsbHkgYW55d2hlcmUgaW4gdGhlIGNvZGUuCj4KPgo+IFRoZXJlIGlzIHRoZSBzb2NpYWwgYXNwZWN0LiBJZiB5b3UgYXJlIGEgcG90ZW50aWFsIG5ldyBjb250cmlidXRvciB0byAgCj4gTWF2ZW4KPiBhbmQgeW91IGxvb2sgYXQgb3VyIGhlYXZ5IEphdmEgMS4zIGNvbnZlbnRpb24gY29kZWJhc2UgKG9rLCBJJ20gYmVpbmcgYQo+IGRlbWFnb2d1ZSwgaXQncyBoYWQgYSBiaXQgdXBkYXRlZCB0byA1LjApIGFyZSB5b3UgZ29pbmcgdG8gYmUgZW5jb3VyYWdlZCAgCj4gdG8KPiBzdGVwIGZvcndhcmQ/Cj4KPiBIb3cgY2FuIHlvdSBtYWtlIHNtYWxsIGltcHJvdmVtZW50cyBhbmQgZGVtb25zdHJhdGUgeW91IGFyZSBhIHNhZmUgcGFpciAgCj4gb2YKPiBoYW5kcyB0byBnYWluIHRoZSBjb21taXQgYml0Pwo+Cj4gTm93IGlmIHdlIGhhdmUgdGhlIG9wZXJ0dW5pdHkgdG8gbWFrZSBsb3RzIG9mIHRpZHkgdXAgYW5kIHlvdSBjYW4gc2hvdyAgCj4geW91Cj4gYXJlIGEgc2FmZSBwYWlyIG9mIGhhbmRzLCByZXRhaW5pbmcgYmluYXJ5IGNvbXBhdGliaWxpdHkgd2l0aCBvbGRlcgo+IHBsdWdpbnMsIG1ha2luZyB0aGUgY29kZSBtb3JlIHJlYWRhYmxlLCBmaW5kaW5nIGZpbGUgaGFuZGxlIGxlYWtzLCBldGMuLi4KPiB3ZWxsIG5vdyB5b3UgaGF2ZSBhIHdlbGNvbWUgcGF0aCB0byBkZW1vbnN0cmF0ZSB5b3VyIHNraWxscy4uLi4gd2hpbGUKPiBnYWluaW5nIGZhbWlsaWFyaXR5IHdpdGggdGhlIGNvZGViYXNlIHNvIHRoYXQgd2hlbiB3ZSB0dXJuIGFyb3VuZCB0byAgCj4gc3RhcnQKPiBvbiBNYXZlbiA1LjAueCB5b3UgY2FuIGpvaW4gaW4gdGhlIGZ1bi4KPgo+IE5vdyB0aGF0IGlzIG5vdCBhIHRlY2huaWNhbCBhcmd1bWVudCwgYnV0IHdlIGFyZSBhIGNvbW11bml0eSBmaXJzdC4uLiBzbwo+IG1heWJlIHRoZSB0ZWNobmljYWwgYXJndW1lbnRzIGFyZSBub3Qgc28gcmlnaHQgdG8gcHVzaCEKPgoKYnEuIGJ1dCB3ZSBhcmUgYSBjb21tdW5pdHkgZmlyc3QKCldoYXQncyB0aGUgZGVmaW5pdGlvbiBvZiBjb21tdW5pdHk6IHRoZSBsYXJnZSB1c2VyIGdyb3VwIG9yIHRoZSBmZXcgd2UncmUgIApob3BpbmcgdG8gZmluZCB3aG8gY2FuIGhlbHAgd29ya2luZyBvbiBNYXZlbj8KQW5kIGlmIHdlJ3JlIGZvY3VzaW5nIG9uIHRoZSBsYXR0ZXIsIHNob3VsZG4ndCB0aGUgdHdpdHRlciBxdWVzdGlvbiBiZToKCkkgd2FudCB0byBiZWNvbWUgYSBNYXZlbiBkZXZlbG9wZXIKW10gcmlnaHQgbm93IQpbXSBvbmx5IGlmIE1hdmVuIHJlcXVpcmVzIEphdmEgOCAoIHNvIEkgY2FuIHVzZSBsYW1iZGEncywgZXRjLikKW10gbmV2ZXIsIGxldCBvdGhlcnMgZG8gdGhlIGpvYgpbXSBvdGhlci4uLgoKPj4KPj4gU28gSSBrZXB0IEphdmEgNyBmb3IgTWF2ZW4gMy42IHdoaWNoIGRvZXMgbm90IG1lYW4gdGhhdCBNYXZlbiA0IG9yIDUgIAo+PiB3b3VsZAo+PiBub3QgY2hhbmdlIHRoaXMuCj4+IFJlZ2FyZGluZyBzZWN1cml0eSBldmVyeWJvZHkgY2FuIHVzZSBKREsgOCB3aXRoIG9sZCBNYXZlbiBidXQgZGlmZmVyZW50Cj4+IHN0b3J5IHdvdWxkIGJlIGVuaGFuY2VtZW50cyBpbiBOZXR3b3JraW5nIEFQSS4KPgo+Cj4gWWVzLCBidXQgc2hvdWxkbid0IHdlIHN0b3AgdGhlbSB1c2luZyB0aGUga25vd24gYmFkIEphdmEgNyBpZiB0aGV5IHdhbnQgIAo+IHRoZQo+IGxhdGVzdCBtYXZlbj8gSWYgdGhleSBkb24ndCBjYXJlIGFib3V0IHNlY3VyaXR5LCB0aGVuIHRoZXknbGwgbGlrZWx5IG5vdAo+IHVwZ3JhZGUgTWF2ZW4gZWl0aGVyLi4uIHNvIHdoeSB3b3JyeSBhYm91dCBrZWVwaW5nIEphdmEgNyBmb3IgdGhlbS4uLiAgCj4gd2hlbgo+IHRoZXkgZG8gZ2V0IGFyb3VuZCB0byB1cGdyYWRpbmcgdGhleSdsbCBkbyBpdCBhbGwgaW4gYnVsayBhbnl3YXkuLi4gc28KPiBhc2tpbmcgdGhlbSB0byBnbyBKYXZhIDggYXQgdGhhdCB0aW1lIHdpbGwgbm90IGJlIGFuIGlzc3VlLi4uIHBsdXMgd2UgZG8KPiB0aGVtIGEgZmF2b3VyIGJ5IGJlaW5nIGFub3RoZXIgcmVhc29uIHRvIHVwZ3JhZGUgOy0pCj4KPgo+Pgo+Pgo+PiBPbiBTdW4sIFNlcCAxMCwgMjAxNyBhdCA2OjMzIFBNLCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Cj4+IHdyb3RlOgo+Pgo+PiA+IFNvIHdoYXQgd291bGQgYmUgdGhlIGNvbmNsdXNpb24/Cj4+ID4KPj4gPiAzNSUgd2FudCB0byBrZWVwIEphdmE3IGFzIEpSRSBmb3IgTWF2ZW4gZm9yIGEgc2hvcnRlciBvciBsb25nZXIgIAo+PiBwZXJpb2Q/Cj4+ID4KPj4gPiBJTUhPIHRoYXQncyBhIGxvdAo+PiA+Cj4+ID4gUm9iZXJ0Cj4+ID4KPj4gPiBPbiBTdW4sIDEwIFNlcCAyMDE3IDExOjU1OjIwICswMjAwLCBTdGVwaGVuIENvbm5vbGx5IDwKPj4gPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4gPgo+PiA+IFNvIHBvbGwgcmVzdWx0czoKPj4gPj4KPj4gPj4gNDkzIHZvdGVzIGNhc3QKPj4gPj4KPj4gPj4gMjUlIHdhbnQgSmF2YSA3LDgmOSBmb3IgTWF2ZW4gMy42LngKPj4gPj4gNjUlIHdhbnQgSmF2YSA4JjkgZm9yIE1hdmVuIDMuNi54Cj4+ID4+IDEwJSB3YW50IEphdmEgOCY5IGZvciBNYXZlbiAzLjYueCBhbmQgNiBtb250aHMgb2YgYmFja3BvcnRpbmcgdG8gIAo+PiAzLjUueAo+PiA+Pgo+PiA+PiBPbiBTYXQgOSBTZXAgMjAxNyBhdCAxMTo1MCwgU3RlcGhlbiBDb25ub2xseSA8Cj4+ID4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+PiA+Pgo+PiA+PiBodHRwczovL3R3aXR0ZXIuY29tL2FzZm1hdmVucHJvamVjdC9zdGF0dXMvOTA2NDUxMDU5OTY2NjkzMzc2Cj4+ID4+PiAtLQo+PiA+Pj4gU2VudCBmcm9tIG15IHBob25lCj4+ID4+Pgo+PiA+Pgo+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+Cj4+ID4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyMzkyMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gU2VwIDEwIDE2OjMzOjExIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzkyMS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFOEEzMzFBQkFECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMTAgU2VwIDIwMTcgMTY6MzM6MTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4MDk3OSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBTZXAgMjAxNyAxNjozMzoxMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODA4NjcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgU2VwIDIwMTcgMTY6MzM6MTAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MDg1NiBpbnZva2VkIGJ5IHVpZCA5OSk7IDEwIFNlcCAyMDE3IDE2OjMzOjEwIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDEwIFNlcCAyMDE3IDE2OjMzOjEwICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDlGMDEyMUEwMEU4Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBTZXAgMjAxNyAxNjozMzowOCArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1JFU1VMVF0gUmU6IFBsZWFzZSByZXR3ZWV0IGFuZCB2b3RlClJlZmVyZW5jZXM6IDxDQStuUG5NenoydTY9Y2RVNStoMUhzdldoUzRDVDV6a1l6cldDRW93LUc4Q3p2K21ZMmdAbWFpbC5nbWFpbC5jb20+IDxDQStuUG5Neit2SGtrbXMxM0VDaHc1a0dCblhEazkzX0hyNUY3NitEZXRibnBxZmlHWHdAbWFpbC5nbWFpbC5jb20+CkRhdGU6IFN1biwgMTAgU2VwIDIwMTcgMTg6MzM6MDkgKzAyMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTZjeXhqZ2NrZGtocnJAZGVza3RvcC0ya2hzazQ0PgpJbi1SZXBseS1UbzogPENBK25Qbk16K3ZIa2ttczEzRUNodzVrR0JuWERrOTNfSHI1Rjc2K0RldGJucHFmaUdYd0BtYWlsLmdtYWlsLmNvbT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpTbyB3aGF0IHdvdWxkIGJlIHRoZSBjb25jbHVzaW9uPwoKMzUlIHdhbnQgdG8ga2VlcCBKYXZhNyBhcyBKUkUgZm9yIE1hdmVuIGZvciBhIHNob3J0ZXIgb3IgbG9uZ2VyIHBlcmlvZD8KCklNSE8gdGhhdCdzIGEgbG90CgpSb2JlcnQKCk9uIFN1biwgMTAgU2VwIDIwMTcgMTE6NTU6MjAgKzAyMDAsIFN0ZXBoZW4gQ29ubm9sbHkgIAo8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cgo+IFNvIHBvbGwgcmVzdWx0czoKPgo+IDQ5MyB2b3RlcyBjYXN0Cj4KPiAyNSUgd2FudCBKYXZhIDcsOCY5IGZvciBNYXZlbiAzLjYueAo+IDY1JSB3YW50IEphdmEgOCY5IGZvciBNYXZlbiAzLjYueAo+IDEwJSB3YW50IEphdmEgOCY5IGZvciBNYXZlbiAzLjYueCBhbmQgNiBtb250aHMgb2YgYmFja3BvcnRpbmcgdG8gMy41LngKPgo+IE9uIFNhdCA5IFNlcCAyMDE3IGF0IDExOjUwLCBTdGVwaGVuIENvbm5vbGx5IDwKPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPgo+PiBodHRwczovL3R3aXR0ZXIuY29tL2FzZm1hdmVucHJvamVjdC9zdGF0dXMvOTA2NDUxMDU5OTY2NjkzMzc2Cj4+IC0tCj4+IFNlbnQgZnJvbSBteSBwaG9uZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzOTc5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBTZXAgMTEgMTk6MTE6MDkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTc5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDEzREUzMUFBQUUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAxOToxMTowOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDY0MDY2IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDE5OjExOjA4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2Mzk3MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAxOToxMTowOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDYzOTUyIGludm9rZWQgYnkgdWlkIDk5KTsgMTEgU2VwIDIwMTcgMTk6MTE6MDggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMTEgU2VwIDIwMTcgMTk6MTE6MDggKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgRTZGNkExQTAwNDQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDE5OjExOjA3ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gSk1vZCBQbHVnaW4gdmVyc2lvbiAzLjAuMC1hbHBoYS0xCiAoRmlyc3QgUHVibGljIFJlbGVhc2UpClJlZmVyZW5jZXM6IDw3ZjYyNzc2MS0yNjJmLWVkMGQtMTQzMi1lMmYzMDVhYWJjN2FAZ214LmRlPgpEYXRlOiBNb24sIDExIFNlcCAyMDE3IDIxOjExOjA1ICswMjAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk2ZTB3cnRsa2RraHJyQGRlc2t0b3AtMmtoc2s0ND4KSW4tUmVwbHktVG86IDw3ZjYyNzc2MS0yNjJmLWVkMGQtMTQzMi1lMmYzMDVhYWJjN2FAZ214LmRlPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCkhpLAoKaXNuJ3QgaXQgd2VpcmQgdGhhdCBqbW9kOmNyZWF0ZSBoYXMgcGFyYW1ldGVycyBmb3IgY2xhc3NwYXRoIGFuZCAgCm1vZHVsZXBhdGg/CndoeSBub3Qgc3RhcnQgdXNpbmcgdGhlIGRlcGVuZGVuY2llcyBhcyBzcGVjaWZpZWQgaW4gdGhlIHBvbT8KCmFuZCB0aGUgcGx1Z2luIHNob3VsZG4ndCB1c2UgYXJ0aWZhY3RJZCBhcyBkZWZhdWx0IGZvciB0aGUgbW9kdWxlbmFtZS4KQ3VycmVudCBiZXN0IHByYWN0aWNlIGlzIHRvIGluY2x1ZGUgdGhlIHBhY2thZ2VuYW1lIGFzIG5hbWVzcGFjZS4KQW5kIGlmIHRoZSBtb2R1bGUtaW5mby5jbGFzcyBpcyB0aGVyZSwgaXQgaXMgYWxzbyBwb3NzaWJsZSB0byBleHRyYWN0IHRoaXMgIAp2YWx1ZSB3aXRoIHBsZXh1cy1qYXZhCgpJJ20gc29ycnksIGJ1dCBJIGhhdmUgdG8gZ2l2ZSB0aGlzIGEgLTEuCkkgY2FuIGhlbHAgZml4IHRoZXNlIHRoaW5ncy4KClJvYmVydAoKCk9uIFNhdCwgMDkgU2VwIDIwMTcgMTU6NTI6MjQgKzAyMDAsIEthcmwgSGVpbnogTWFyYmFpc2UgIAo8a2htYXJiYWlzZUBnbXguZGU+IHdyb3RlOgoKPiBIaSwKPgo+IHRoaXMgaXMgdGhlIFZPVEUgZm9yIHRoZSBmaXJzdCBwdWJsaWMgcmVsZWFzZSBmb3IgTWF2ZW4gSk1vZCBQbHVnaW4uLi4KPgo+IFdlIHNvbHZlZCAxIGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamVjdElkPTEyMzIxNDMzJnZlcnNpb249MTIzNDEzNjMKPgo+IFRoZXJlIGFyZSBjdXJyZW50bHkgbm8gaXNzdWVzIGxlZnQgaW4gSklSQS4KPgo+IElmIHlvdSBoYXZlIGFueSBpc3N1ZSB0byByZXBvcnQgcGxlYXNlIG9wZW4gYW4gaXNzdWUgaW4gSklSQQo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9wcm9qZWN0cy9NSk1PRAo+Cj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjEvCj4KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzYxL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi1qbW9kLXBsdWdpbi8zLjAuMC1hbHBoYS0xL21hdmVuLWptb2QtcGx1Z2luLTMuMC4wLWFscGhhLTEtc291cmNlLXJlbGVhc2UuemlwCj4KPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBbTkFNRS1PRl0tc291cmNlLXJlbGVhc2UuemlwIHNoYTE6ICAKPiA4MDAyNzY3ZjZjZmZjN2JiYmNmNzZhOGU3ZjBjMTc5OWE0MmNhZjkzCj4KPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tam1vZC1wbHVnaW4tTEFURVNULwo+Cj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPgo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4KPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPgo+IEtpbmQgcmVnYXJkcwo+IEthcmwgSGVpbnogTWFyYmFpc2UKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTIzOTgwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBTZXAgMTEgMTk6MTI6NDAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTIzOTgwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDY0RUE3MUFBQkEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAxOToxMjo0MCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDczNjI0IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDE5OjEyOjQwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MzU0MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAxOToxMjozOSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDczNTMwIGludm9rZWQgYnkgdWlkIDk5KTsgMTEgU2VwIDIwMTcgMTk6MTI6MzggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMTEgU2VwIDIwMTcgMTk6MTI6MzggKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgNDA3MjcxQTAwNDQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDE5OjEyOjM4ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gSkxpbmsgUGx1Z2luIHZlcnNpb24gMy4wLjAtYWxwaGEtMQogKEZpcnN0IFB1YmxpYyBSZWxlYXNlKQpSZWZlcmVuY2VzOiA8NzZmODM0MzEtZThjNy1mNmM1LTA4ZjYtY2QyNWQ0ZTVhNGMyQGdteC5kZT4KRGF0ZTogTW9uLCAxMSBTZXAgMjAxNyAyMToxMjozNSArMDIwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55NmUweTkwaGtka2hyckBkZXNrdG9wLTJraHNrNDQ+CkluLVJlcGx5LVRvOiA8NzZmODM0MzEtZThjNy1mNmM1LTA4ZjYtY2QyNWQ0ZTVhNGMyQGdteC5kZT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgorMSBmb3IgYW4gYWxwaGEKCndvdWxkIGJlIG5pY2UgaWYgdGhlcmUgd2VyZSBJVHMgc28gc2VlIHdoYXQgd291bGQgYmUgdGhlIHJlc3VsdC4KCnRoYW5rcywKUm9iZXJ0CgpPbiBTYXQsIDA5IFNlcCAyMDE3IDE2OjE5OjUyICswMjAwLCBLYXJsIEhlaW56IE1hcmJhaXNlICAKPGtobWFyYmFpc2VAZ214LmRlPiB3cm90ZToKCj4gSGksCj4KPiB0aGlzIGlzIHRoZSBWT1RFIGZvciB0aGUgZmlyc3QgcHVibGljIHJlbGVhc2UgZm9yIE1hdmVuIEpMaW5rIFBsdWdpbi4uLgo+Cj4gV2Ugc29sdmVkIDEgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZWN0SWQ9MTIzMjE0MzImdmVyc2lvbj0xMjM0MTM2MQo+Cj4gVGhlcmUgYXJlIGN1cnJlbnRseSBubyBpc3N1ZXMgbGVmdCBpbiBKSVJBLgo+Cj4gSWYgeW91IGhhdmUgYW55IGlzc3VlIHRvIHJlcG9ydCBwbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBKSVJBCj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3Byb2plY3RzL01KTElOSwo+Cj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjIvCj4KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzYyL29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi1qbGluay1wbHVnaW4vMy4wLjAtYWxwaGEtMS9tYXZlbi1qbGluay1wbHVnaW4tMy4wLjAtYWxwaGEtMS1zb3VyY2UtcmVsZWFzZS56aXAKPgo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IG1hdmVuLWpsaW5rLXBsdWdpbi0zLjAuMC1hbHBoYS0xLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOiAgCj4gYzIxZWU4MDg1YTBlZDI5YWRlZTBlODBkNDdkZTBjODUxZjk2Y2Q1NAo+Cj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWpsaW5rLXBsdWdpbi1MQVRFU1QvCj4KPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+Cj4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPgo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQo+Cj4gS2luZCByZWdhcmRzCj4gS2FybCBIZWlueiBNYXJiYWlzZQo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM5ODMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIFNlcCAxMSAyMDowNTozMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5ODMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNTdFMjIxQUNFRAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDIwOjA1OjMwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTYwMDggaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgU2VwIDIwMTcgMjA6MDU6MzAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE1OTM1IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDIwOjA1OjI5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTU5MjQgaW52b2tlZCBieSB1aWQgOTkpOyAxMSBTZXAgMjAxNyAyMDowNToyOSAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAxMSBTZXAgMjAxNyAyMDowNToyOSArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCBEMEFGNDFBMDAxOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMjA6MDU6MjggKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMQpSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPgpEYXRlOiBNb24sIDExIFNlcCAyMDE3IDIyOjA1OjI2ICswMjAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk2ZTNmY2t0a2RraHJyQGRlc2t0b3AtMmtoc2s0ND4KSW4tUmVwbHktVG86IDxDQStuUG5NeHlHMk5lUFhwVnFhd2U5alI9aXRIRVQ2VXVkbk45Q2pIaHY9b28tS0NyeHdAbWFpbC5nbWFpbC5jb20+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKKzEKCk9uIFN1biwgMTAgU2VwIDIwMTcgMTc6Mzk6MTIgKzAyMDAsIFN0ZXBoZW4gQ29ubm9sbHkgIAo8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cgo+IEhpLAo+Cj4gV2Ugc29sdmVkIDI1IGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/dmVyc2lvbj0xMjMzODk2NCZzdHlsZU5hbWU9VGV4dCZwcm9qZWN0SWQ9MTIzMTY5MjIKPgo+IFRoZXJlIGFyZSAzNTAgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9cHJvamVjdCUyMCUzRCUyME1ORyUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlMjBCWSUyMGR1ZSUyMEFTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMGNyZWF0ZWQlMjBBU0MKPgo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY0Lwo+Cj4gVGhlIGRpc3RyaWJ1dGFibGUgYmluYXJpZXMgYW5kIHNvdXJjZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS8KPgo+IFNwZWNpZmljYWxseSB0aGUgemlwLCB0YXJiYWxsIGFuZCBzb3VyY2UgYXJjaGl2ZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtYmluLnppcAo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLWJpbi50YXIuZ3oKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5nego+Cj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy50YXIuZ3ogc2hhMTogIAo+IDllYjgyMWYxNTNjNzY2NzE5NGFhMTFjY2QwOTliN2JkMjA1OTU2MGQKPiBhcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcDogc2hhMTogIAo+IDEyMWQ1NGIwNDUzODBhOGE0ODk1ZWIxMzc5NzBhYjY5ZTY5OGViMGUKPgo+IEdpdCB0YWc6Cj4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9bWF2ZW4uZ2l0O2E9Y29tbWl0O2g9MDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMwo+Cj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9jb21wb25lbnRzL3JlZi8zLUxBVEVTVC8KPgo+IFZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCj4KPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPgo+IFRoYW5rcywKPgo+IFN0ZXBoZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjM5NzQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIFNlcCAxMSAxNjo0NTo1MiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjM5NzQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOTY4MjMxQTRCMAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDE2OjQ1OjUyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTExNDIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgU2VwIDIwMTcgMTY6NDU6NTIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUxMDgwIGludm9rZWQgYnkgdWlkIDUwMCk7IDExIFNlcCAyMDE3IDE2OjQ1OjUyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTEwNjggaW52b2tlZCBieSB1aWQgOTkpOyAxMSBTZXAgMjAxNyAxNjo0NTo1MiAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAxMSBTZXAgMjAxNyAxNjo0NTo1MiArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCAyOEM5MDFBMDAxOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMTY6NDU6NTAgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMQpSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPiA8Q0FLdVZ6QlI1RURrVCtqbWIzcGVCZmtya2F2eXZpeWVGUkNtbVlvZ083WDdpSD1LLWFRQG1haWwuZ21haWwuY29tPiA8Q0FQQ2pqbkVURlpUTG0rOHJnS1cwcjRzeVhZUnBvQlpqX2FKajF4MmR2aWN6T1lIa2RnQG1haWwuZ21haWwuY29tPiA8Q0ErblBuTXgwPWYrK0RRaTMzNmcwcUhnMGF0QllRTU40NkN5X3V6QyttelZORHBtQUxBQG1haWwuZ21haWwuY29tPiA8Q0ErblBuTXhtc1pZT2UyYy0wLVM0QTRzOVY4SjhOcmZWby02NUMtNzdOLUNQZ3JKQWZBQG1haWwuZ21haWwuY29tPiA8Q0ErblBuTXdVWD1oRWtMS3E1NUY2SnNOQTJYUCs1QllzOG9NR0JRaistTGZuYU1UNFBBQG1haWwuZ21haWwuY29tPiA8Q0ErblBuTXpDRVl1cTQtVD1FOXItWDVoaTRDMjl2RWNVTHZiRmNDRE8tYWhCeE1ZQWt3QG1haWwuZ21haWwuY29tPgpEYXRlOiBNb24sIDExIFNlcCAyMDE3IDE4OjQ1OjUyICswMjAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk2ZXQ2cWh5a2RraHJyQGRlc2t0b3AtMmtoc2s0ND4KSW4tUmVwbHktVG86IDxDQStuUG5NekNFWXVxNC1UPUU5ci1YNWhpNEMyOXZFY1VMdmJGY0NETy1haEJ4TVlBa3dAbWFpbC5nbWFpbC5jb20+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKTmljZSBmaXgKCk9uIE1vbiwgMTEgU2VwIDIwMTcgMTE6MzE6MzQgKzAyMDAsIFN0ZXBoZW4gQ29ubm9sbHkgIAo8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cgo+IGh0dHA6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuL2RpZmYvNTQyYTdhODkgdG8gZGVmYW5nIHRoZQo+IHRlc3QgZ29pbmcgZm9yd2FyZCwgd2l0aCB0aGF0IGNoYW5nZSBvbiBBenVsJ3MgWnVsdSBKREsgNyBJIGdldDoKPgo+IExpbnV4IGRkZjAzMThiNjk4YiA0LjkuNDYtbW9ieSAjMSBTTVAgVGh1IFNlcCA3IDAyOjUzOjQyIFVUQyAyMDE3IHg4Nl82NAo+IHg4Nl82NCB4ODZfNjQgR05VL0xpbnV4Cj4gQXBhY2hlIE1hdmVuIDMuNS4xICgwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzOwo+IDIwMTctMDktMTBUMTI6NDI6NTRaKQo+IE1hdmVuIGhvbWU6IC93b3JrL2Jpbgo+IEphdmEgdmVyc2lvbjogMS43LjBfMTU0LCB2ZW5kb3I6IEF6dWwgU3lzdGVtcywgSW5jLgo+IEphdmEgaG9tZTogL3Vzci9saWIvanZtL3p1bHUtNy1hbWQ2NC9qcmUKPiBEZWZhdWx0IGxvY2FsZTogZW5fVVMsIHBsYXRmb3JtIGVuY29kaW5nOiBVVEYtOAo+IE9TIG5hbWU6ICJsaW51eCIsIHZlcnNpb246ICI0LjkuNDYtbW9ieSIsIGFyY2g6ICJhbWQ2NCIsIGZhbWlseTogInVuaXgiCj4KPiBtdm4gdmVyaWZ5ID0+IFNVQ0NFU1MKPgo+Cj4gT24gMTEgU2VwdGVtYmVyIDIwMTcgYXQgMDI6MDAsIFN0ZXBoZW4gQ29ubm9sbHkgPAo+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Cj4+IFNvIEF6dWwncyBadWx1IDcgZG9lcyBub3QgaGF2ZQo+Pgo+PiBjb20uc3VuLnNjcmlwdC5qYXZhc2NyaXB0LlJoaW5vU2NyaXB0RW5naW5lRmFjdG9yeSBvciBhbnkKPj4gU2NyaXB0RW5naW5lRmFjdG9yeSBpbiB0aGUgYmFzZSBjbGFzc2xvYWRlci4uLgo+Pgo+PiBadWx1IDggaGFzIGpkay5uYXNob3JuLmFwaS5zY3JpcHRpbmcuTmFzaG9yblNjcmlwdEVuZ2luZUZhY3RvcnkKPj4KPj4gU28gYXQgdGhpcyBwb2ludCBpbiB0aW1lLCBteSBhbmFseXNpcyBpcyB0aGF0IHRoZQo+PiBEZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0IGlzIG5vdCBhIHZhbGlkIHRlc3Qgd2hlbiB0aGUgZGVmYXVsdAo+PiBjbGFzc2xvYWRlciBkb2VzIG5vdCBoYXZlIGFueSBTY3JpcHRFbmdpbmVGYWN0b3J5Li4uIEknbSBnb2luZyB0byBjb21taXQKPj4gYSBmaXgsIGJ1dCB0aGlzIHNob3VsZCBub3QgaW52YWxpZGF0ZSB0aGUgMy41LjEgcmVsZWFzZQo+Pgo+PiBPbiAxMSBTZXB0ZW1iZXIgMjAxNyBhdCAwMTo1MywgU3RlcGhlbiBDb25ub2xseSA8Cj4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Pgo+Pj4gV2l0aCBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWludGVncmF0aW9uLXRlc3RpbmcvCj4+PiBjb21taXQvYTA4ZDY1YmZiNWZlZGVjOWY2ODRjMTNiZjVhMGRjY2I5NmY1Y2M1NiBJIHdhcyBhYmxlIHRvIGdldAo+Pj4gTWljaGFlbCdzIHRlc3QgZmFpbHVyZXM6Cj4+Pgo+Pj4gQXBhY2hlIE1hdmVuIDMuNS4xICgwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzOwo+Pj4gMjAxNy0wOS0xMFQxMjo0Mjo1NFopCj4+PiBNYXZlbiBob21lOiAvd29yay9iaW4KPj4+IEphdmEgdmVyc2lvbjogMS43LjBfMTU0LCB2ZW5kb3I6IEF6dWwgU3lzdGVtcywgSW5jLgo+Pj4gSmF2YSBob21lOiAvdXNyL2xpYi9qdm0venVsdS03LWFtZDY0L2pyZQo+Pj4gRGVmYXVsdCBsb2NhbGU6IGVuX1VTLCBwbGF0Zm9ybSBlbmNvZGluZzogVVRGLTgKPj4+IE9TIG5hbWU6ICJsaW51eCIsIHZlcnNpb246ICI0LjkuNDYtbW9ieSIsIGFyY2g6ICJhbWQ2NCIsIGZhbWlseTogInVuaXgiCj4+Pgo+Pj4KPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4gVGVzdCBzZXQ6IG9yZy5hcGFjaGUubWF2ZW4uY2xhc3NyZWFsbS5EZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0Cj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+IFRlc3RzIHJ1bjogNSwgRmFpbHVyZXM6IDUsIEVycm9yczogMCwgU2tpcHBlZDogMCwgVGltZSBlbGFwc2VkOiAyLjEyOCAgCj4+PiBzZWMKPj4+IDw8PCBGQUlMVVJFISAtIGluIG9yZy5hcGFjaGUubWF2ZW4uY2xhc3NyZWFsbS5EZQo+Pj4gZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QKPj4+IHRlc3RNTkc2Mjc1X21hdmVuQXBpUmVhbG1EZWZhdWx0UGFyZW50Q2xhc3NMb2FkZXIob3JnLgo+Pj4gYXBhY2hlLm1hdmVuLmNsYXNzcmVhbG0uRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdCkgIFRpbWUgZWxhcHNlZDoKPj4+IDEuMTIgc2VjICA8PDwgRkFJTFVSRSEKPj4+IGp1bml0LmZyYW1ld29yay5Bc3NlcnRpb25GYWlsZWRFcnJvcjogbnVsbAo+Pj4gYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5mYWlsKEFzc2VydC5qYXZhOjU1KQo+Pj4gYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5hc3NlcnRUcnVlKEFzc2VydC5qYXZhOjIyKQo+Pj4gYXQganVuaXQuZnJhbWV3b3JrLkFzc2VydC5hc3NlcnRUcnVlKEFzc2VydC5qYXZhOjMxKQo+Pj4gYXQganVuaXQuZnJhbWV3b3JrLlRlc3RDYXNlLmFzc2VydFRydWUoVGVzdENhc2UuamF2YToyMDEpCj4+PiBhdCBvcmcuYXBhY2hlLm1hdmVuLmNsYXNzcmVhbG0uRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdC50ZXMKPj4+IHRNTkc2Mjc1X21hdmVuQXBpUmVhbG1EZWZhdWx0UGFyZW50Q2xhc3NMb2FkZXIoRGVmYXVsdENsYXNzUgo+Pj4gZWFsbU1hbmFnZXJUZXN0LmphdmE6OTEpCj4+Pgo+Pj4gdGVzdE1ORzYyNzVfY29yZVJlYWxtRGVmYXVsdFBhcmVudENsYXNzTG9hZGVyKG9yZy5hcGFjaGUuCj4+PiBtYXZlbi5jbGFzc3JlYWxtLkRlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QpICBUaW1lIGVsYXBzZWQ6IDAuMjcxIHNlYwo+Pj4gIDw8PCBGQUlMVVJFIQo+Pj4ganVuaXQuZnJhbWV3b3JrLkFzc2VydGlvbkZhaWxlZEVycm9yOiBudWxsCj4+PiBhdCBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0LmZhaWwoQXNzZXJ0LmphdmE6NTUpCj4+PiBhdCBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0LmFzc2VydFRydWUoQXNzZXJ0LmphdmE6MjIpCj4+PiBhdCBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0LmFzc2VydFRydWUoQXNzZXJ0LmphdmE6MzEpCj4+PiBhdCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2UuYXNzZXJ0VHJ1ZShUZXN0Q2FzZS5qYXZhOjIwMSkKPj4+IGF0IG9yZy5hcGFjaGUubWF2ZW4uY2xhc3NyZWFsbS5EZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlcwo+Pj4gdE1ORzYyNzVfY29yZVJlYWxtRGVmYXVsdFBhcmVudENsYXNzTG9hZGVyKERlZmF1bHRDbGFzc1JlYWxtCj4+PiBNYW5hZ2VyVGVzdC5qYXZhOjk5KQo+Pj4KPj4+IHRlc3RNTkc2Mjc1X2V4dGVuc2lvblJlYWxtRGVmYXVsdFBhcmVudENsYXNzTG9hZGVyKG9yZy4KPj4+IGFwYWNoZS5tYXZlbi5jbGFzc3JlYWxtLkRlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QpICBUaW1lIGVsYXBzZWQ6Cj4+PiAwLjI1MSBzZWMgIDw8PCBGQUlMVVJFIQo+Pj4ganVuaXQuZnJhbWV3b3JrLkFzc2VydGlvbkZhaWxlZEVycm9yOiBudWxsCj4+PiBhdCBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0LmZhaWwoQXNzZXJ0LmphdmE6NTUpCj4+PiBhdCBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0LmFzc2VydFRydWUoQXNzZXJ0LmphdmE6MjIpCj4+PiBhdCBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0LmFzc2VydFRydWUoQXNzZXJ0LmphdmE6MzEpCj4+PiBhdCBqdW5pdC5mcmFtZXdvcmsuVGVzdENhc2UuYXNzZXJ0VHJ1ZShUZXN0Q2FzZS5qYXZhOjIwMSkKPj4+IGF0IG9yZy5hcGFjaGUubWF2ZW4uY2xhc3NyZWFsbS5EZWZhdWx0Q2xhc3NSZWFsbU1hbmFnZXJUZXN0LnRlcwo+Pj4gdE1ORzYyNzVfZXh0ZW5zaW9uUmVhbG1EZWZhdWx0UGFyZW50Q2xhc3NMb2FkZXIoRGVmYXVsdENsYXNzCj4+PiBSZWFsbU1hbmFnZXJUZXN0LmphdmE6NzMpCj4+Pgo+Pj4gdGVzdE1ORzYyNzVfcGx1Z2luUmVhbG1EZWZhdWx0UGFyZW50Q2xhc3NMb2FkZXIob3JnLmFwYWNoZS4KPj4+IG1hdmVuLmNsYXNzcmVhbG0uRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdCkgIFRpbWUgZWxhcHNlZDogMC4yNDQgc2VjCj4+PiAgPDw8IEZBSUxVUkUhCj4+PiBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0aW9uRmFpbGVkRXJyb3I6IG51bGwKPj4+IGF0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQuZmFpbChBc3NlcnQuamF2YTo1NSkKPj4+IGF0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQuYXNzZXJ0VHJ1ZShBc3NlcnQuamF2YToyMikKPj4+IGF0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQuYXNzZXJ0VHJ1ZShBc3NlcnQuamF2YTozMSkKPj4+IGF0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZS5hc3NlcnRUcnVlKFRlc3RDYXNlLmphdmE6MjAxKQo+Pj4gYXQgb3JnLmFwYWNoZS5tYXZlbi5jbGFzc3JlYWxtLkRlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzCj4+PiB0TU5HNjI3NV9wbHVnaW5SZWFsbURlZmF1bHRQYXJlbnRDbGFzc0xvYWRlcihEZWZhdWx0Q2xhc3NSZWEKPj4+IGxtTWFuYWdlclRlc3QuamF2YTo2MikKPj4+Cj4+PiB0ZXN0TU5HNjI3NV9wcm9qZWN0UmVhbG1EZWZhdWx0UGFyZW50Q2xhc3NMb2FkZXIob3JnLmFwYWNoZS4KPj4+IG1hdmVuLmNsYXNzcmVhbG0uRGVmYXVsdENsYXNzUmVhbG1NYW5hZ2VyVGVzdCkgIFRpbWUgZWxhcHNlZDogMC4yNDIgc2VjCj4+PiAgPDw8IEZBSUxVUkUhCj4+PiBqdW5pdC5mcmFtZXdvcmsuQXNzZXJ0aW9uRmFpbGVkRXJyb3I6IG51bGwKPj4+IGF0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQuZmFpbChBc3NlcnQuamF2YTo1NSkKPj4+IGF0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQuYXNzZXJ0VHJ1ZShBc3NlcnQuamF2YToyMikKPj4+IGF0IGp1bml0LmZyYW1ld29yay5Bc3NlcnQuYXNzZXJ0VHJ1ZShBc3NlcnQuamF2YTozMSkKPj4+IGF0IGp1bml0LmZyYW1ld29yay5UZXN0Q2FzZS5hc3NlcnRUcnVlKFRlc3RDYXNlLmphdmE6MjAxKQo+Pj4gYXQgb3JnLmFwYWNoZS5tYXZlbi5jbGFzc3JlYWxtLkRlZmF1bHRDbGFzc1JlYWxtTWFuYWdlclRlc3QudGVzCj4+PiB0TU5HNjI3NV9wcm9qZWN0UmVhbG1EZWZhdWx0UGFyZW50Q2xhc3NMb2FkZXIoRGVmYXVsdENsYXNzUmUKPj4+IGFsbU1hbmFnZXJUZXN0LmphdmE6ODMpCj4+Pgo+Pj4gaW52ZXN0aWdhdGluZy4uLgo+Pj4KPj4+IE9uIDExIFNlcHRlbWJlciAyMDE3IGF0IDAxOjQ0LCBTdGVwaGVuIENvbm5vbGx5IDwKPj4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+Pj4KPj4+PiBCdWlsZGluZyB0aGUgc291cmNlIGJ1bmRsZXMgd2l0aCB0aGUgYmluYXJ5IGJ1bmRsZXMgaW4gdGhlIHN0YWdpbmcgIAo+Pj4+IHJlcG8KPj4+PiB1c2luZyB0aGUgRG9ja2VyZmlsZSBlbnZpcm9ubWVudHMgaW4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlCj4+Pj4gbi1pbnRlZ3JhdGlvbi10ZXN0aW5nL3RyZWUvbWFzdGVyL2Vudmlyb25tZW50cwo+Pj4+Cj4+Pj4gRGViaWFuIEpESyA3Cj4+Pj4gPT09PT09PT09PT0KPj4+Pgo+Pj4+IExpbnV4IDY1ZmI4MzJkZmU0MyA0LjkuNDYtbW9ieSAjMSBTTVAgVGh1IFNlcCA3IDAyOjUzOjQyIFVUQyAyMDE3ICAKPj4+PiB4ODZfNjQKPj4+PiBHTlUvTGludXgKPj4+PiBBcGFjaGUgTWF2ZW4gMy41LjEgKDA5NGU0ZTMxYTVhZjU1YmIxN2JlODc2NzVkYTQxZDlhZWNhMDYyZjM7Cj4+Pj4gMjAxNy0wOS0xMFQxMjo0Mjo1NFopCj4+Pj4gTWF2ZW4gaG9tZTogL3dvcmsvYmluCj4+Pj4gSmF2YSB2ZXJzaW9uOiAxLjcuMF8xNTEsIHZlbmRvcjogT3JhY2xlIENvcnBvcmF0aW9uCj4+Pj4gSmF2YSBob21lOiAvdXNyL2xpYi9qdm0vamF2YS03LW9wZW5qZGstYW1kNjQvanJlCj4+Pj4gRGVmYXVsdCBsb2NhbGU6IGVuLCBwbGF0Zm9ybSBlbmNvZGluZzogVVRGLTgKPj4+PiBPUyBuYW1lOiAibGludXgiLCB2ZXJzaW9uOiAiNC45LjQ2LW1vYnkiLCBhcmNoOiAiYW1kNjQiLCBmYW1pbHk6ICAKPj4+PiAidW5peCIKPj4+Pgo+Pj4+IG12biB2ZXJpZnkgPT4gU1VDQ0VTUwo+Pj4+Cj4+Pj4gRGViaWFuIEpESyA4Cj4+Pj4gPT09PT09PT09PT0KPj4+Pgo+Pj4+IExpbnV4IDExZWYxYzExNGI2YiA0LjkuNDYtbW9ieSAjMSBTTVAgVGh1IFNlcCA3IDAyOjUzOjQyIFVUQyAyMDE3ICAKPj4+PiB4ODZfNjQKPj4+PiBHTlUvTGludXgKPj4+PiBBcGFjaGUgTWF2ZW4gMy41LjEgKDA5NGU0ZTMxYTVhZjU1YmIxN2JlODc2NzVkYTQxZDlhZWNhMDYyZjM7Cj4+Pj4gMjAxNy0wOS0xMFQxMjo0Mjo1NFopCj4+Pj4gTWF2ZW4gaG9tZTogL3dvcmsvYmluCj4+Pj4gSmF2YSB2ZXJzaW9uOiAxLjguMF8xNDEsIHZlbmRvcjogT3JhY2xlIENvcnBvcmF0aW9uCj4+Pj4gSmF2YSBob21lOiAvdXNyL2xpYi9qdm0vamF2YS04LW9wZW5qZGstYW1kNjQvanJlCj4+Pj4gRGVmYXVsdCBsb2NhbGU6IGVuLCBwbGF0Zm9ybSBlbmNvZGluZzogVVRGLTgKPj4+PiBPUyBuYW1lOiAibGludXgiLCB2ZXJzaW9uOiAiNC45LjQ2LW1vYnkiLCBhcmNoOiAiYW1kNjQiLCBmYW1pbHk6ICAKPj4+PiAidW5peCIKPj4+Pgo+Pj4+IG12biB2ZXJpZnkgPT4gU1VDQ0VTUwo+Pj4+Cj4+Pj4gRmVkb3JhIEpESyA4Cj4+Pj4gPT09PT09PT09PT0KPj4+Pgo+Pj4+IExpbnV4IDU0MjExYTBlNjk0ZSA0LjkuNDYtbW9ieSAjMSBTTVAgVGh1IFNlcCA3IDAyOjUzOjQyIFVUQyAyMDE3ICAKPj4+PiB4ODZfNjQKPj4+PiB4ODZfNjQgeDg2XzY0IEdOVS9MaW51eAo+Pj4+IEFwYWNoZSBNYXZlbiAzLjUuMSAoMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMzsKPj4+PiAyMDE3LTA5LTEwVDEyOjQyOjU0WikKPj4+PiBNYXZlbiBob21lOiAvd29yay9iaW4KPj4+PiBKYXZhIHZlcnNpb246IDEuOC4wXzE0NCwgdmVuZG9yOiBPcmFjbGUgQ29ycG9yYXRpb24KPj4+PiBKYXZhIGhvbWU6ICAKPj4+PiAvdXNyL2xpYi9qdm0vamF2YS0xLjguMC1vcGVuamRrLTEuOC4wLjE0NC01LmIwMS5mYzI2Lng4Nl82NC8KPj4+PiBqcmUKPj4+PiBEZWZhdWx0IGxvY2FsZTogZW5fVVMsIHBsYXRmb3JtIGVuY29kaW5nOiBBTlNJX1gzLjQtMTk2OAo+Pj4+IE9TIG5hbWU6ICJsaW51eCIsIHZlcnNpb246ICI0LjkuNDYtbW9ieSIsIGFyY2g6ICJhbWQ2NCIsIGZhbWlseTogIAo+Pj4+ICJ1bml4Igo+Pj4+Cj4+Pj4gbXZuIHZlcmlmeSA9PiBTVUNDRVNTCj4+Pj4KPj4+PiBJQk0gSkRLIDgKPj4+PiA9PT09PT09PQo+Pj4+Cj4+Pj4gTGludXggMTk5NjMxZWRjZWVkIDQuOS40Ni1tb2J5ICMxIFNNUCBUaHUgU2VwIDcgMDI6NTM6NDIgVVRDIDIwMTcgIAo+Pj4+IHg4Nl82NAo+Pj4+IHg4Nl82NCB4ODZfNjQgR05VL0xpbnV4Cj4+Pj4gQXBhY2hlIE1hdmVuIDMuNS4xICgwOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzOwo+Pj4+IDIwMTctMDktMTBUMTI6NDI6NTRaKQo+Pj4+IE1hdmVuIGhvbWU6IC93b3JrL2Jpbgo+Pj4+IEphdmEgdmVyc2lvbjogMS44LjAsIHZlbmRvcjogSUJNIENvcnBvcmF0aW9uCj4+Pj4gSmF2YSBob21lOiAvb3B0L2libS9qYXZhL2pyZQo+Pj4+IERlZmF1bHQgbG9jYWxlOiBlbl9VUywgcGxhdGZvcm0gZW5jb2Rpbmc6IEFOU0lfWDMuNC0xOTY4Cj4+Pj4gT1MgbmFtZTogImxpbnV4IiwgdmVyc2lvbjogIjQuOS40Ni1tb2J5IiwgYXJjaDogImFtZDY0IiwgZmFtaWx5OiAgCj4+Pj4gInVuaXgiCj4+Pj4KPj4+PiBtdm4gdmVyaWZ5ID0+IFNVQ0NFU1MKPj4+Pgo+Pj4+IEFzdWwgWnVsdSBKREsgOAo+Pj4+ID09PT09PT09PT09PT0KPj4+Pgo+Pj4+IExpbnV4IDEwZThmNGU0NjEzOCA0LjkuNDYtbW9ieSAjMSBTTVAgVGh1IFNlcCA3IDAyOjUzOjQyIFVUQyAyMDE3ICAKPj4+PiB4ODZfNjQKPj4+PiB4ODZfNjQgeDg2XzY0IEdOVS9MaW51eAo+Pj4+IEFwYWNoZSBNYXZlbiAzLjUuMSAoMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMzsKPj4+PiAyMDE3LTA5LTEwVDEyOjQyOjU0WikKPj4+PiBNYXZlbiBob21lOiAvd29yay9iaW4KPj4+PiBKYXZhIHZlcnNpb246IDEuOC4wXzE0NCwgdmVuZG9yOiBBenVsIFN5c3RlbXMsIEluYy4KPj4+PiBKYXZhIGhvbWU6IC91c3IvbGliL2p2bS96dWx1LTgtYW1kNjQvanJlCj4+Pj4gRGVmYXVsdCBsb2NhbGU6IGVuX1VTLCBwbGF0Zm9ybSBlbmNvZGluZzogVVRGLTgKPj4+PiBPUyBuYW1lOiAibGludXgiLCB2ZXJzaW9uOiAiNC45LjQ2LW1vYnkiLCBhcmNoOiAiYW1kNjQiLCBmYW1pbHk6ICAKPj4+PiAidW5peCIKPj4+Pgo+Pj4+IG12biB2ZXJpZnkgPT4gU1VDQ0VTUwo+Pj4+Cj4+Pj4gSWYgSSBnZXQgdGltZSBsYXRlciBJJ2xsIHJ1biB0aGUgaW50ZWdyYXRpb24gdGVzdHMuCj4+Pj4KPj4+PiBPbiAxMSBTZXB0ZW1iZXIgMjAxNyBhdCAwMDoyMCwgRGFuIFRyYW4gPGRhbnRyYW5AZ21haWwuY29tPiB3cm90ZToKPj4+Pgo+Pj4+PiBGYWxzZSBhbGFybSwgSSBtaXNzZWQgY29uZmlndXJlIGdsb2JhbCBzZXR0aW5ncy54bWwsIGl0IGlzIG1pc3NpbmcgIAo+Pj4+PiB0aGUKPj4+Pj4gZGVmYXVsdCByZXBvc2l0b3J5IHNldHVwCj4+Pj4+Cj4+Pj4+IC1ECj4+Pj4+Cj4+Pj4+IE9uIFN1biwgU2VwIDEwLCAyMDE3IGF0IDExOjQ3IFBNLCBUaWJvciBEaWdhbmEgPAo+Pj4+PiB0aWJvci5kaWdhbmFAZ29vZ2xlbWFpbC5jb20+Cj4+Pj4+IHdyb3RlOgo+Pj4+Pgo+Pj4+PiA+ICsxOgo+Pj4+PiA+IDMuNS4xIHdvcmtzIGluIG15IHByb2plY3QgbGlrZSBhIGNoYXJtIDstKQo+Pj4+PiA+Cj4+Pj4+ID4gT24gU3VuLCBTZXAgMTAsIDIwMTcgYXQgNTozOSBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4+Pj4+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4+Pj4+ID4KPj4+Pj4gPiA+IEhpLAo+Pj4+PiA+ID4KPj4+Pj4gPiA+IFdlIHNvbHZlZCAyNSBpc3N1ZXM6Cj4+Pj4+ID4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4+Pj4+ID4gPiB2ZXJzaW9uPTEyMzM4OTY0JnN0eWxlTmFtZT1UZXh0JnByb2plY3RJZD0xMjMxNjkyMgo+Pj4+PiA+ID4KPj4+Pj4gPiA+IFRoZXJlIGFyZSAzNTAgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKPj4+Pj4gPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJQo+Pj4+PiA+ID4gM0QlMjBNTkclMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJQo+Pj4+PiA+ID4gMjBCWSUyMGR1ZSUyMEFTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMGNyZWF0ZWQlMjBBU0MKPj4+Pj4gPiA+Cj4+Pj4+ID4gPiBTdGFnaW5nIHJlcG86Cj4+Pj4+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY0Lwo+Pj4+PiA+ID4KPj4+Pj4gPiA+IFRoZSBkaXN0cmlidXRhYmxlIGJpbmFyaWVzIGFuZCBzb3VyY2VzIGNhbiBiZSBmb3VuZCBoZXJlOgo+Pj4+PiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4+Pj4+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xLwo+Pj4+PiA+ID4KPj4+Pj4gPiA+IFNwZWNpZmljYWxseSB0aGUgemlwLCB0YXJiYWxsIGFuZCBzb3VyY2UgYXJjaGl2ZXMgY2FuIGJlIGZvdW5kICAKPj4+Pj4gaGVyZToKPj4+Pj4gPiA+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLQo+Pj4+PiA+ID4gIAo+Pj4+PiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1iaW4uemlwCj4+Pj4+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPj4+Pj4gPiA+IDEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLQo+Pj4+PiBiaW4udGFyLmd6Cj4+Pj4+ID4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0KPj4+Pj4gPiA+ICAKPj4+Pj4gMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcAo+Pj4+PiA+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tCj4+Pj4+ID4gPiAxMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS0KPj4+Pj4gc3JjLnRhci5nego+Pj4+PiA+ID4KPj4+Pj4gPiA+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+Pj4+PiA+ID4gYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy50YXIuZ3ogc2hhMTogIAo+Pj4+PiA5ZWI4MjFmMTUzYzc2NjcxOTRhYTExY2NkMDk5YjcKPj4+Pj4gPiA+IGJkMjA1OTU2MGQKPj4+Pj4gPiA+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwOiBzaGExOiAxMjFkNTRiMDQ1MzgwYThhNDg5NWViMTM3OTcwYWIKPj4+Pj4gPiA2OWU2OThlYjBlCj4+Pj4+ID4gPgo+Pj4+PiA+ID4gR2l0IHRhZzoKPj4+Pj4gPiA+IGh0dHBzOi8vZ2l0LXdpcC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPW1hdmVuLmdpdDthPWNvbW1pdDtoPQo+Pj4+PiA+ID4gMDk0ZTRlMzFhNWFmNTViYjE3YmU4NzY3NWRhNDFkOWFlY2EwNjJmMwo+Pj4+PiA+ID4KPj4+Pj4gPiA+IFN0YWdpbmcgc2l0ZToKPj4+Pj4gPiA+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9jb21wb25lbnRzL3JlZi8zLUxBVEVTVC8KPj4+Pj4gPiA+Cj4+Pj4+ID4gPiBWb3RlIG9wZW4gZm9yIDcyIGhvdXJzLgo+Pj4+PiA+ID4KPj4+Pj4gPiA+IFsgXSArMQo+Pj4+PiA+ID4gWyBdICswCj4+Pj4+ID4gPiBbIF0gLTEKPj4+Pj4gPiA+Cj4+Pj4+ID4gPiBUaGFua3MsCj4+Pj4+ID4gPgo+Pj4+PiA+ID4gU3RlcGhlbi4KPj4+Pj4gPiA+Cj4+Pj4+ID4KPj4+Pj4gPgo+Pj4+PiA+Cj4+Pj4+ID4gLS0KPj4+Pj4gPiBDaGVlcnMKPj4+Pj4gPiBUaWJvcgo+Pj4+PiA+Cj4+Pj4+Cj4+Pj4KPj4+Pgo+Pj4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyMzk3NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gU2VwIDExIDE3OjAyOjExIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzk3NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA0REI0OTFBNTQwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMTc6MDI6MTEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4MTg4MCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAxNzowMjoxMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODE3OTEgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgU2VwIDIwMTcgMTc6MDI6MTAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MTc4MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDExIFNlcCAyMDE3IDE3OjAyOjEwIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDExIFNlcCAyMDE3IDE3OjAyOjEwICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDkyRjIyMUEwMDQ4Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMSBTZXAgMjAxNyAxNzowMjowOSArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKRGF0ZTogTW9uLCAxMSBTZXAgMjAxNyAxOTowMjoxMiArMDIwMApTdWJqZWN0OiBBcGFjaGUgTWF2ZW4gQk9GCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk2ZXV4eWRoa2RraHJyQGRlc2t0b3AtMmtoc2s0ND4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpIaSwKCkkndmUgc3RhcnRlZCB0aGUgcHJlcGFyYXRpb25zIGZvciB0aGUgQk9GIHNlc3Npb24gYXQgSmF2YU9uZSB0aGlzIHllYXIuCgpUaW1lIGFuZCBsb2NhdGlvbiBoYXZlIGJlZW4gc2V0OgpUdWVzZGF5LCBPY3QgMDMsIDc6NDUgcC5tLiAtIDg6MzAgcC5tLiB8IE1vc2NvbmUgV2VzdCAtIFJvb20gMjAwN1sxXQoKSSdsbCBiZSB0aGVyZSB0b2dldGhlciB3aXRoIEJyaWFuIGFuZCBNYW5mcmVkLgoKSSd2ZSBhbHNvIHJlY2VpdmVkIHRoZSBjb25maXJtYXRpb24gdGhlIGRvIHRoZSBzYW1lIHNlc3Npb24gYXQgRGV2b3h4WzJdCkFueW9uZSB3aG8gd2FudHMgdG8gam9pbiBjYW4gY29udGFjdCBtZS4KCnRoYW5rcywKUm9iZXJ0CgpbMV0gaHR0cHM6Ly9ldmVudHMucmFpbmZvY3VzLmNvbS9jYXRhbG9nL29yYWNsZS9vb3cxNy9jYXRhbG9namF2YW9uZTE3ClsyXSBodHRwczovL2NmcC5kZXZveHguYmUvMjAxNy90YWxrL0tBRS0zNTkyL0FwYWNoZV9NYXZlbl9CT0YKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDA0OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gU2VwIDE3IDA4OjU1OjAwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDA0OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBGMzMzRjE5NUZGCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMTcgU2VwIDIwMTcgMDg6NTQ6NTkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0OTA1NyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNyBTZXAgMjAxNyAwODo1NDo1OSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDg5NzkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTcgU2VwIDIwMTcgMDg6NTQ6NTkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0ODk2OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDE3IFNlcCAyMDE3IDA4OjU0OjU5IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDE3IFNlcCAyMDE3IDA4OjU0OjU5ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgMUM5MkUxQTAwQ0EKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDE3IFNlcCAyMDE3IDA4OjU0OjU3ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gSk1vZCBQbHVnaW4gdmVyc2lvbiAzLjAuMC1hbHBoYS0xCiAoRmlyc3QgUHVibGljIFJlbGVhc2UpIFRha2UgMgpSZWZlcmVuY2VzOiA8N2Y2Mjc3NjEtMjYyZi1lZDBkLTE0MzItZTJmMzA1YWFiYzdhQGdteC5kZT4KIDwzMzY0OTIyYS1iNGZmLTgxNDItMGY3OS0wNmVlMzhkNDJlN2VAZ214LmRlPgpEYXRlOiBTdW4sIDE3IFNlcCAyMDE3IDEwOjU0OjU2ICswMjAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk2cGNkdWE4a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpJbi1SZXBseS1UbzogPDMzNjQ5MjJhLWI0ZmYtODE0Mi0wZjc5LTA2ZWUzOGQ0MmU3ZUBnbXguZGU+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKLTEKCmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWptb2QtcGx1Z2luLUxBVEVTVC9saXN0LW1vam8uaHRtbApodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1qbW9kLXBsdWdpbi1MQVRFU1QvZGVzY3JpYmUtbW9qby5odG1sClNvIGhlcmUncyB3aGVyZSB0aGUgbW9kdWxlTmFtZSBpcyB1c2VkOgpCZXR0ZXIgbm90IHRvIGhhdmUgYSBkZWZhdWx0IHZhbHVlIGhlcmUsIGl0IGlzIFZFUlkgdW5saWtlbHkgdGhhdCBpdCBpcyAgCnRoZSBhcnRpZmFjdElkLCBpbiBmYWN0LCBpdCBzaG91bGRuJ3QgKGl0J3MgbGlrZSBtYWtpbmcgdGhlIGdyb3VwSWQgdGhlICAKc2FtZSBhcyB0aGUgYXJ0aWZhY3RJZCkuCk9ubHkgaWYgdGhlcmUncyBhIG1vZHVsZSBkZXNjcmlwdG9yIHlvdSBjYW4gdXNlIHRoYXQgbmFtZS4KCmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWptb2QtcGx1Z2luLUxBVEVTVC9jcmVhdGUtbW9qby5odG1sClN0aWxsIHNob3cgdGhlIGNsYXNzcGF0aCwgc2hvdWxkbid0IGJlIGEgcGFyYW1ldGVyLgoKTGF0ZXN0IGNvbW1pdHMgYWxyZWFkeSBpbXByb3ZlZCB0aGUgcGx1Z2luIGEgbG90LCB3ZSdyZSBhbG1vc3QgdGhlcmUuCgp0aGFua3MsClJvYmVydAoKT24gU2F0LCAxNiBTZXAgMjAxNyAyMToxMjoxNiArMDIwMCwgS2FybCBIZWlueiBNYXJiYWlzZSAgCjxraG1hcmJhaXNlQGdteC5kZT4gd3JvdGU6Cgo+IEhpLAo+Cj4gdGhpcyBpcyB0aGUgVk9URSBmb3IgdGhlIGZpcnN0IHB1YmxpYyByZWxlYXNlIGZvciBNYXZlbiBKTW9kIFBsdWdpbi4uLgo+Cj4gV2Ugc29sdmVkIDMgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZWN0SWQ9MTIzMjE0MzMmdmVyc2lvbj0xMjM0MTM2Mwo+Cj4gVGhlcmUgYXJlIGN1cnJlbnRseSBubyBpc3N1ZXMgbGVmdCBpbiBKSVJBLgo+Cj4gSWYgeW91IGhhdmUgYW55IGlzc3VlIHRvIHJlcG9ydCBwbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBKSVJBCj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3Byb2plY3RzL01KTU9ECj4KPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2OC8KPgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjgvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL21hdmVuLWptb2QtcGx1Z2luLzMuMC4wLWFscGhhLTEvbWF2ZW4tam1vZC1wbHVnaW4tMy4wLjAtYWxwaGEtMS1zb3VyY2UtcmVsZWFzZS56aXAKPgo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IG1hdmVuLWptb2QtcGx1Z2luLTMuMC4wLWFscGhhLTEtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6ICAKPiAzYmE0N2NiMzBhZjc2NWI2ZTY3ZmJmMTZjY2VlNTBkYmRhYzI5MTQyCj4KPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tam1vZC1wbHVnaW4tTEFURVNULwo+Cj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPgo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4KPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPgo+IEtpbmQgcmVnYXJkcwo+IEthcmwgSGVpbnogTWFyYmFpc2UKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MDUwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBTZXAgMTcgMDk6NTE6MjEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDUwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDYzMDk1MTk2RTEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxNyBTZXAgMjAxNyAwOTo1MToyMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg5MTI2IGludm9rZWQgYnkgdWlkIDUwMCk7IDE3IFNlcCAyMDE3IDA5OjUxOjIxIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4OTA0MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNyBTZXAgMjAxNyAwOTo1MToyMSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg5MDI3IGludm9rZWQgYnkgdWlkIDk5KTsgMTcgU2VwIDIwMTcgMDk6NTE6MjEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTcgU2VwIDIwMTcgMDk6NTE6MjEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmwgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCAzQzE3QzFBMDBDNzsKCVN1biwgMTcgU2VwIDIwMTcgMDk6NTE6MTggKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sICJLYXJsIEhlaW56IE1hcmJhaXNlIgogPGtobWFyYmFpc2VAZ214LmRlPiwgaW5mb0Bzb2ViZXMuZGUKU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBKTW9kIFBsdWdpbiB2ZXJzaW9uIDMuMC4wLWFscGhhLTEKIChGaXJzdCBQdWJsaWMgUmVsZWFzZSkgVGFrZSAyClJlZmVyZW5jZXM6IDw3ZjYyNzc2MS0yNjJmLWVkMGQtMTQzMi1lMmYzMDVhYWJjN2FAZ214LmRlPgogPDMzNjQ5MjJhLWI0ZmYtODE0Mi0wZjc5LTA2ZWUzOGQ0MmU3ZUBnbXguZGU+CiA8b3AueTZwY2R1YThrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CiA8NTJhNDY0MjctYmRhMi05NjIxLTNlNGYtMDRkM2U1ZGRjYmQzQGdteC5kZT4KRGF0ZTogU3VuLCAxNyBTZXAgMjAxNyAxMTo1MToxNyArMDIwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55NnBlenJrZWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KSW4tUmVwbHktVG86IDw1MmE0NjQyNy1iZGEyLTk2MjEtM2U0Zi0wNGQzZTVkZGNiZDNAZ214LmRlPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCk9uIFN1biwgMTcgU2VwIDIwMTcgMTE6MzA6MDUgKzAyMDAsIEthcmwgSGVpbnogTWFyYmFpc2UgIAo8a2htYXJiYWlzZUBnbXguZGU+IHdyb3RlOgoKPiBIaSBSb2JlcnQsCj4KPiBPbiAxNy8wOS8xNyAxMDo1NCwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4+IC0xCj4+ICAgCj4+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWptb2QtcGx1Z2luLUxBVEVTVC9saXN0LW1vam8uaHRtbCAgCj4+ICAgCj4+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWptb2QtcGx1Z2luLUxBVEVTVC9kZXNjcmliZS1tb2pvLmh0bWwgIAo+PiAgU28gaGVyZSdzIHdoZXJlIHRoZSBtb2R1bGVOYW1lIGlzIHVzZWQ6Cj4+IEJldHRlciBub3QgdG8gaGF2ZSBhIGRlZmF1bHQgdmFsdWUgaGVyZSwgaXQgaXMgVkVSWSB1bmxpa2VseSB0aGF0IGl0IGlzICAKPj4gdGhlIGFydGlmYWN0SWQsIGluIGZhY3QsIGl0IHNob3VsZG4ndCAoaXQncyBsaWtlIG1ha2luZyB0aGUgZ3JvdXBJZCB0aGUgIAo+PiBzYW1lIGFzIHRoZSBhcnRpZmFjdElkKS4KPj4gT25seSBpZiB0aGVyZSdzIGEgbW9kdWxlIGRlc2NyaXB0b3IgeW91IGNhbiB1c2UgdGhhdCBuYW1lLgo+Cj4gQWggc3VyZS4uLgo+Cj4gU28gSWYgSSBjb3JyZWN0bHkgZ2V0IHRoaXMuLmluIGNhc2UgZm9yIGptb2QgbGlzdC9kZXNjcmliZSBvbmx5IHRoZSBuYW1lICAKPiBvZiB0aGUgam1vZCBmaWxlIGlzIG5lZWRlZCA/Cj4KPiBGaXJzdCB3b3VsZCBiZSB0byBwcmV2ZW50IGNvbmZ1c2lvbnMgYW5kIHRvIG5hbWUgdGhlIHBhcmFtZXRlciAgCj4gImptb2RGaWxlTmFtZSIgPwoKSSdtIG5vdCBzdXJlIGhvdyB0aGVzZSBnb2FscyBhcmUgZ29pbmcgdG8gYmUgdXNlZC4gV2lsbCBpdCBiZSB1c2VkIG9uICAKInRoaXMiIHByb2plY3Qgb3IgYW55IGptb2QgYXJ0aWZhY3Q/IE9yIGJvdGg/IEZvciB0aGUgZmlyc3QgSSB3b3VsZCB1c2UgIAp0aGUgcHJvamVjdC5idWlsZC5maW5hbE5hbWUgKyAiLmptb2QiLCBmb3IgdGhlIGxhdHRlciB0aGUgR0FWPwoKPgo+IEFuZCB0YWtlIHRoZSBkZWZhdWx0IGFydGlmYWN0SWQgY2F1c2UgdXN1YWxseSB0aGV5IHdpbGwgYmUgbmFtZWQgbGlrZSAgCj4gdGhpcy4uLmFuZCBpZiB0aGUgbmFtZSBpcyBkaWZmZXJlbnQgeW91IGhhdmUgdG8gZXhwbGljaXRseSBzZXQgaXQuLi4KPgo+IEZ1cnRoZXJtb3JlIHRoZSBxdWVzdGlvbiBpczogU2hvdWxkIEkgYXNzdW1lIGhhdmluZyBhIGptb2QgZmlsZSBhcmUgIAo+IGJlaW5nIGxvY2F0ZWQgaW4gInRhcmdldC9qbW9kcy8iIGRpcmVjdG9yeSBhcyBkZWZhdWx0ID8KPgoKSSBndWVzcyB0aGlzIGRlcGVuZHMgb24gd2hhdCdzIGNvbmZpZ3VyZWQgZm9yIHRoZSBjcmVhdGUtZ29hbCwgYnV0IElJUkMgIAovdGFyZ2V0IGlzIG5vdCBhbGxvd2VkIGJlY2F1c2UgaXQgaXMgbm90IGFuIGVtcHR5IGRpcmVjdG9yeSwgc28gIAp0YXJnZXQvam1vZHMgbWFrZXMgc2Vuc2UgdG8gbWUuCgo+Cj4+ICAgCj4+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWptb2QtcGx1Z2luLUxBVEVTVC9jcmVhdGUtbW9qby5odG1sICAKPj4gIFN0aWxsIHNob3cgdGhlIGNsYXNzcGF0aCwgc2hvdWxkbid0IGJlIGEgcGFyYW1ldGVyLgo+Cj4gVGhlIC0tY2xhc3MtcGF0aCBvcHRpb24gc2hvdWxkIGJlIHNldCB0byB0aGUgY2xhc3NwYXRoRWxlbWVudHMgd2hpY2ggaGFzICAKPiBiZWVuIGNhbGNsdWxhdGVkIGJ5IHByZXBhcmVQYXRocygpIG1ldGhvZCBpZiBJIGNvcnJlY3RseSB1bmRlcnN0YW5kID8KPgo+IFNvIHRoZSBwYXJhbWV0ZXIgY2FuIGJlIGNvbXBsZXRlbGV5IHJlbW92ZWQgPwoKVGhhdCdzIHdoYXQgSSB3b3VsZCBleHBlY3QuIFlvdSBmZWVkIGFsbCB0aGUgcHJvamVjdCBkZXBlbmRlbmN5IGFydGlmYWN0cyAgCiggPSBqYXJzICkgdG8gdGhlIExvY2F0aW9uTWFuYWdlciwgd2hpY2ggd2lsbCBkZWNpZGUgd2hlcmUgdGhleSBiZWxvbmcgdG8uCgo+Cj4KPj4gIExhdGVzdCBjb21taXRzIGFscmVhZHkgaW1wcm92ZWQgdGhlIHBsdWdpbiBhIGxvdCwgd2UncmUgYWxtb3N0IHRoZXJlLgo+PiAgdGhhbmtzLAo+PiBSb2JlcnQKPj4gIE9uIFNhdCwgMTYgU2VwIDIwMTcgMjE6MTI6MTYgKzAyMDAsIEthcmwgSGVpbnogTWFyYmFpc2UgIAo+PiA8a2htYXJiYWlzZUBnbXguZGU+IHdyb3RlOgo+Pgo+Pj4gSGksCj4+Pgo+Pj4gdGhpcyBpcyB0aGUgVk9URSBmb3IgdGhlIGZpcnN0IHB1YmxpYyByZWxlYXNlIGZvciBNYXZlbiBKTW9kIFBsdWdpbi4uLgo+Pj4KPj4+IFdlIHNvbHZlZCAzIGlzc3VlczoKPj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZWN0SWQ9MTIzMjE0MzMmdmVyc2lvbj0xMjM0MTM2MyAgCj4+PiBUaGVyZSBhcmUgY3VycmVudGx5IG5vIGlzc3VlcyBsZWZ0IGluIEpJUkEuCj4+Pgo+Pj4gSWYgeW91IGhhdmUgYW55IGlzc3VlIHRvIHJlcG9ydCBwbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBKSVJBCj4+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvcHJvamVjdHMvTUpNT0QKPj4+Cj4+PiBTdGFnaW5nIHJlcG86Cj4+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY4Lwo+Pj4KPj4+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjgvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL21hdmVuLWptb2QtcGx1Z2luLzMuMC4wLWFscGhhLTEvbWF2ZW4tam1vZC1wbHVnaW4tMy4wLjAtYWxwaGEtMS1zb3VyY2UtcmVsZWFzZS56aXAgIAo+Pj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4+PiBtYXZlbi1qbW9kLXBsdWdpbi0zLjAuMC1hbHBoYS0xLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOiAgCj4+PiAzYmE0N2NiMzBhZjc2NWI2ZTY3ZmJmMTZjY2VlNTBkYmRhYzI5MTQyCj4+Pgo+Pj4gU3RhZ2luZyBzaXRlOgo+Pj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tam1vZC1wbHVnaW4tTEFURVNULwo+Pj4KPj4+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+Pj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPj4+Cj4+PiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+Pj4KPj4+IFsgXSArMQo+Pj4gWyBdICswCj4+PiBbIF0gLTEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDA1My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gU2VwIDE3IDE1OjM3OjI5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDA1My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFQTE2QzE5REJFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMTcgU2VwIDIwMTcgMTU6Mzc6MjggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5NzgyMiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNyBTZXAgMjAxNyAxNTozNzoyOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTc3NDYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTcgU2VwIDIwMTcgMTU6Mzc6MjggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NzczNSBpbnZva2VkIGJ5IHVpZCA5OSk7IDE3IFNlcCAyMDE3IDE1OjM3OjI4IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDE3IFNlcCAyMDE3IDE1OjM3OjI4ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgQjIyOTkxQTAwQzcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDE3IFNlcCAyMDE3IDE1OjM3OjI3ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gSk1vZCBQbHVnaW4gdmVyc2lvbiAzLjAuMC1hbHBoYS0xCiAoRmlyc3QgUHVibGljIFJlbGVhc2UpIFRha2UgMwpSZWZlcmVuY2VzOiA8NzBjMGIxYTgtZmVkNi1mNGJmLTFlZDMtNjg2MjQ5MzM2OTNiQGdteC5kZT4KRGF0ZTogU3VuLCAxNyBTZXAgMjAxNyAxNzozNzoyNiArMDIwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55NnB1MG9yM2tka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KSW4tUmVwbHktVG86IDw3MGMwYjFhOC1mZWQ2LWY0YmYtMWVkMy02ODYyNDkzMzY5M2JAZ214LmRlPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCisxCgpPbiBTdW4sIDE3IFNlcCAyMDE3IDEzOjQwOjUwICswMjAwLCBLYXJsIEhlaW56IE1hcmJhaXNlICAKPGtobWFyYmFpc2VAZ214LmRlPiB3cm90ZToKCj4gSGksCj4KPiB0aGlzIGlzIHRoZSBWT1RFIGZvciB0aGUgZmlyc3QgcHVibGljIHJlbGVhc2UgZm9yIE1hdmVuIEpNb2QgUGx1Z2luLi4uCj4KPiBXZSBzb2x2ZWQgNCBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMyMTQzMyZ2ZXJzaW9uPTEyMzQxMzYzCj4KPiBUaGVyZSBhcmUgY3VycmVudGx5IG5vIGlzc3VlcyBsZWZ0IGluIEpJUkEuCj4KPiBJZiB5b3UgaGF2ZSBhbnkgaXNzdWUgdG8gcmVwb3J0IHBsZWFzZSBvcGVuIGFuIGlzc3VlIGluIEpJUkEKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvcHJvamVjdHMvTUpNT0QKPgo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY5Lwo+Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2OS9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4tam1vZC1wbHVnaW4vMy4wLjAtYWxwaGEtMS9tYXZlbi1qbW9kLXBsdWdpbi0zLjAuMC1hbHBoYS0xLXNvdXJjZS1yZWxlYXNlLnppcAo+Cj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gbWF2ZW4tam1vZC1wbHVnaW4tMy4wLjAtYWxwaGEtMS1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogIAo+IGFhMDBiOThjNTM0ZjI0ZTgxNDFlZTBiZWFjZTJhZmYzYmU4OTk2ODgKPgo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1qbW9kLXBsdWdpbi1MQVRFU1QvCj4KPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+Cj4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPgo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQo+Cj4gS2luZCByZWdhcmRzCj4gS2FybCBIZWlueiBNYXJiYWlzZQo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQwNTktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgTW9uIFNlcCAxOCAxNzo0NDo1MyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwNTktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNzc0OThDM0Q3Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMTggU2VwIDIwMTcgMTc6NDQ6NTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyMjAxIGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IFNlcCAyMDE3IDE3OjQ0OjUzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMDkzIGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IFNlcCAyMDE3IDE3OjQ0OjUzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjA4MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDE4IFNlcCAyMDE3IDE3OjQ0OjUzIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDE4IFNlcCAyMDE3IDE3OjQ0OjUzICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgNUI5OEExQTAwQzcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDE4IFNlcCAyMDE3IDE3OjQ0OjUyICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBTdGFydGluZyBhIHB1cmUgSmF2YSA5IG1vZHVsYXIgcHJvamVjdApSZWZlcmVuY2VzOiA8MjAxNzA5MTgxNTExMzkuNTAwNTIzOGJAY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvPgpEYXRlOiBNb24sIDE4IFNlcCAyMDE3IDE5OjQ0OjU0ICswMjAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk2cnZrNHJua2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpJbi1SZXBseS1UbzogPDIwMTcwOTE4MTUxMTM5LjUwMDUyMzhiQGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbz4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpGb3IgZXZlcnkgZGVsaXZlcmFibGUgeW91IHdpbGwgaGF2ZSBvbmUgTWF2ZW4gcHJvamVjdCAoYW5kIDEgcG9tLnhtbCkuClNvIGZvciBhIE1hdmVuIHBvaW50IG9mIHZpZXcgaXQgZG9lc24ndCBtYWtlIHNlbnNlIHRvIHN1cHBvcnQgdGhlIGppZ3NhdyAgCm11bHRpIG1vZHVsZSBvcHRpb24uCgpIZXJlIGFyZSB0aGUgdGhpbmdzIHlvdSAqRE9OJ1QqIGhhdmUgdG8gY2hhbmdlOgotIGZvbGRlciBzdHJ1Y3R1cmUKLSBkZXBlbmRlbmNpZXMgb2YgeW91ciBwb20ueG1sICh5b3UgZG9uJ3Qgc3BlY2lmeSB3aGljaCBqYXJzIGFyZSBtb2R1bGVzICAKYW5kIHdoaWNoIGFyZW4ndCwgTWF2ZW4gd2lsbCByZXNvbHZlIHRoYXQgZm9yIHlvdS4KCllvdSBvbmx5IGhhdmUgdG8gYWRkIHRoZSBtb2R1bGUtaW5mby5qYXZhIHRvIHRoZSBzb3VyY2Ugcm9vdCBhbmQgdXNlIGF0ICAKbGVhc3QgbWF2ZW4tY29tcGlsZXItcGx1Z2luIDMuNy4wCgp0aGFua3MsClJvYmVydAoKT24gTW9uLCAxOCBTZXAgMjAxNyAxNzoxMTozOSArMDIwMCwgTWFyayBSYXluc2ZvcmQgIAo8b3JnLmFwYWNoZS5tYXZlbi51c2VyQGlvN20uY29tPiB3cm90ZToKCj4gSGVsbG8uCj4KPiBXaXRoIEphdmEgOSBkdWUgb3V0IGluIGEgZmV3IGRheXMgdGltZSwgSSdtIGxvb2tpbmcgYXQgbW92aW5nIGFsbCBvZiBteQo+IDYwKyBwcm9qZWN0cyB0byBKYXZhIDkuIEkgaGF2ZSBubyBpbnRlbnRpb24gb2Yga2VlcGluZyBzdXBwb3J0IGZvciBhbnkKPiB2ZXJzaW9uIG9mIEphdmEgbGVzcyB0aGFuIDksIHNvIHRoZSBwcm9qZWN0cyB3aWxsIGJlY29tZSBwdXJlIEphdmEgOQo+IChtb2R1bGFyaXplZCkgcHJvamVjdHMuCj4KPiBJJ20gY3VyaW91cyBhcyB3aGV0aGVyIEphdmEgOSBjaGFuZ2VzIGFueSBvZiB0aGUgY29udmVudGlvbnMgdGhhdCBJJ3ZlCj4gYmVlbiB1c2VkIHRvIGluIE1hdmVuIGZvciB0aGUgcGFzdCBmaXZlIG9yIHNvIHllYXJzLiBGb3IgZXhhbXBsZSwgb25lCj4gdGhpbmcgSSBzZWUgZnJlcXVlbnRseSBpbiBKYXZhIDkgdHV0b3JpYWxzIGlzIHRoYXQgdGhleSB1c2UgYQo+IGRpcmVjdG9yeSBsYXlvdXQgdGhhdCBkaWZmZXJzIGZyb20gdGhlIE1hdmVuIHN0YW5kYXJkLiBGb3IgZXhhbXBsZSwKPiBjb25zaWRlciB0aGlzIHR1dG9yaWFsOgo+Cj4gICBodHRwczovL2R6b25lLmNvbS9hcnRpY2xlcy9qYXZhLTktdHV0b3JpYWwtc3RlcC1ieS1zdGVwLWZyb20temVyby10by1tb2R1bGVzCj4KPiBUaGUgZGlyZWN0b3J5IGxheW91dCBpcyAic3JjL2NvbS5tZS5teW1vZHVsZS9tb2R1bGUtaW5mby5qYXZhIi4gVGhpcwo+IG9idmlvdXNseSBkb2Vzbid0IG1hdGNoIHRoZSAic3JjL21haW4vamF2YSIgY29udmVudGlvbiB0aGF0IE1hdmVuIHVzZXMuCj4KPiBJcyB0aGUgaW50ZW50aW9uIHRvIG1hcCBNYXZlbiBtb2R1bGVzIDE6MSB3aXRoIEppZ3NhdyBtb2R1bGVzPyBPciBpZgo+IG5vdCAxOjEsIHRoZW4gcGVyaGFwcyAibm8gbW9yZSB0aGFuIG9uZSBKaWdzYXcgbW9kdWxlIHBlciBNYXZlbiBtb2R1bGUiLgo+Cj4gSXMgdGhlcmUgZG9jdW1lbnRhdGlvbiBhdmFpbGFibGUgYW55d2hlcmUgdGhhdCBkZXNjcmliZXMgaG93IG5ldyBwdXJlCj4gSmF2YSA5IChtdWx0aS1tb2R1bGUhKSBwcm9qZWN0cyBzaG91bGQgYmUgc2V0IHVwPwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MDYyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBTZXAgMTggMTk6MDg6MTMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MDYyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDEwMTczQzgyOQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBNb24sIDE4IFNlcCAyMDE3IDE5OjA4OjEzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDk3MTEgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggU2VwIDIwMTcgMTk6MDg6MTIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ5NjA1IGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IFNlcCAyMDE3IDE5OjA4OjEyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDk1OTMgaW52b2tlZCBieSB1aWQgOTkpOyAxOCBTZXAgMjAxNyAxOTowODoxMiAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAxOCBTZXAgMjAxNyAxOTowODoxMiArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEE4NjFEMUEwMEM3OwoJTW9uLCAxOCBTZXAgMjAxNyAxOTowODowOSArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcsICJNYXJrIFJheW5zZm9yZCIgPG9yZy5hcGFjaGUubWF2ZW4udXNlckBpbzdtLmNvbT4KU3ViamVjdDogUmU6IFN0YXJ0aW5nIGEgcHVyZSBKYXZhIDkgbW9kdWxhciBwcm9qZWN0ClJlZmVyZW5jZXM6IDwyMDE3MDkxODE1MTEzOS41MDA1MjM4YkBjb3BwZXJoZWFkLmludC5hcmM3LmluZm8+CiA8b3AueTZydms0cm5rZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CiA8MjAxNzA5MTgxNzU3MzMuMjUxN2Y2YzFAY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvPgpEYXRlOiBNb24sIDE4IFNlcCAyMDE3IDIxOjA4OjEwICswMjAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk2cnpmd2Qwa2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpJbi1SZXBseS1UbzogPDIwMTcwOTE4MTc1NzMzLjI1MTdmNmMxQGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbz4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpPbiBNb24sIDE4IFNlcCAyMDE3IDE5OjU3OjMzICswMjAwLCBNYXJrIFJheW5zZm9yZCAgCjxvcmcuYXBhY2hlLm1hdmVuLnVzZXJAaW83bS5jb20+IHdyb3RlOgoKPiBPbiAyMDE3LTA5LTE4VDE5OjQ0OjU0ICswMjAwCj4gIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+IHdyb3RlOgo+Cj4+IEZvciBldmVyeSBkZWxpdmVyYWJsZSB5b3Ugd2lsbCBoYXZlIG9uZSBNYXZlbiBwcm9qZWN0IChhbmQgMSBwb20ueG1sKS4KPj4gU28gZm9yIGEgTWF2ZW4gcG9pbnQgb2YgdmlldyBpdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgdG8gc3VwcG9ydCB0aGUgamlnc2F3Cj4+IG11bHRpIG1vZHVsZSBvcHRpb24uCj4KPiBHb29kISBUaGF0J3Mgd2hhdCBJJ2Qgc3VzcGVjdGVkIChhbmQgaG9wZWQhKQo+Cj4+IEhlcmUgYXJlIHRoZSB0aGluZ3MgeW91ICpET04nVCogaGF2ZSB0byBjaGFuZ2U6Cj4+IC0gZm9sZGVyIHN0cnVjdHVyZQo+PiAtIGRlcGVuZGVuY2llcyBvZiB5b3VyIHBvbS54bWwgKHlvdSBkb24ndCBzcGVjaWZ5IHdoaWNoIGphcnMgYXJlIG1vZHVsZXMKPj4gYW5kIHdoaWNoIGFyZW4ndCwgTWF2ZW4gd2lsbCByZXNvbHZlIHRoYXQgZm9yIHlvdS4KPj4KPj4gWW91IG9ubHkgaGF2ZSB0byBhZGQgdGhlIG1vZHVsZS1pbmZvLmphdmEgdG8gdGhlIHNvdXJjZSByb290IGFuZCB1c2UgYXQKPj4gbGVhc3QgbWF2ZW4tY29tcGlsZXItcGx1Z2luIDMuNy4wCj4KPiBHb3QgaXQuCj4KPiBQcmVzdW1hYmx5IEkgYWxzbyBuZWVkIHRvIHRlbGwgdGhlIGNvbXBpbGVyIHRoYXQgSSB3YW50IHRvIHByb2R1Y2UgY29kZQo+IGZvciByZWxlYXNlIDkgdmlhIHRoZSBwbHVnaW4gZXF1aXZhbGVudCBvZiB0aGUgbmV3IC0tcmVsZWFzZSBmbGFnPwo+IEFzc3VtaW5nIHRoZXJlIGlzIG9uZSwgdGhhdCBpcy4gSSB1bmRlcnN0YW5kIHRoZSBieXRlY29kZSB2ZXJzaW9uIGhhcwo+IGJlZW4gaW5jcmVtZW50ZWQgYWdhaW4sIHNvIEknZCB3YW50IHRvIGJlIHByb2R1Y2luZyA5IGJ5dGVjb2RlLgo+CgpFeGFjdGx5LCBwcmVmZXJyZWQgb3B0aW9uIHdvdWxkIGJlIHRvIHVzZSByZWxlYXNlIGluc3RlYWQgb2YgIAp0YXJnZXQrc291cmNlLCBpLmUuCgo8cmVsZWFzZT45PC9yZWxlYXNlPgoKb3IgdGhlIHByb3BlcnR5Cm1hdmVuLmNvbXBpbGVyLnJlbGVhc2UKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQwNjYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIFNlcCAxOSAxODo1Nzo1MiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwNjYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgN0VCNjlDNUQwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMTkgU2VwIDIwMTcgMTg6NTc6NTIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5NzcyMiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOSBTZXAgMjAxNyAxODo1Nzo1MiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTc2NTUgaW52b2tlZCBieSB1aWQgNTAwKTsgMTkgU2VwIDIwMTcgMTg6NTc6NTIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NzY0MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDE5IFNlcCAyMDE3IDE4OjU3OjUyIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDE5IFNlcCAyMDE3IDE4OjU3OjUyICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgQzFEMkExQTAwMjkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDE5IFNlcCAyMDE3IDE4OjU3OjUwICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L21peGVkOyBib3VuZGFyeT0tLS0tLS0tLS0taVBxcXlLMk1sa1pPR0dxQ21LNDN1YQpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogVW5kZXJzdGFuZGluZyBNTkctNjIwOSAod2FzOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEpClJlZmVyZW5jZXM6IDxDQStuUG5Nd01DcU9fRXRjQlc1XzNyTTcxLXRDcml0cDRVa3N5ZlBtREdBWXI2eHo9b1FAbWFpbC5nbWFpbC5jb20+IDxGMUY4QjNDRi1EREFDLTQ0QkEtQUVCNy00MTIyQzg4N0M0QUJAaG9udG9uLm9yZz4gPENBK25Qbk13Zl9CZnRZdXMtcm5Rck83bzUrZHVHRnowVkVhN05pb2hHMV9fWVV6cmM1d0BtYWlsLmdtYWlsLmNvbT4gPDE1MDU3OTY5MDguMjUxNjgwOC4xMTEwNjczMTI4LjYzNUFDMzVGQHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4KRGF0ZTogVHVlLCAxOSBTZXAgMjAxNyAyMDo1Nzo1MyArMDIwMApNSU1FLVZlcnNpb246IDEuMApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTZ0dG1yZWJrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkluLVJlcGx5LVRvOiA8MTUwNTc5NjkwOC4yNTE2ODA4LjExMTA2NzMxMjguNjM1QUMzNUZAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCi0tLS0tLS0tLS0tLWlQcXF5SzJNbGtaT0dHcUNtSzQzdWEKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdAoKQXR0YWNoZWQgYSBzaW5nbGUgcGFnZSBvdmVydmlldy4KClBlciBibG9jayB5b3UnbGwgc2VlIGluIHRoZSB1cHBlciBsZWZ0IGNvcm5lciB0aGUgZXhlY3V0ZWQgcGx1Z2luClRoZSBsZWZ0IGNvbHVtbiBjb250YWlucyB0aGUgZXh0ZW5zaW9ucyBhbmQgcGx1Z2luIGluIG9yZGVyYXMgc3BlY2lmaWVkIGluICAKdGhlIHBvbS54bWwKSW4gZXZlcnkgY2xhc3Nsb2FkZXJjb2x1bW4geW91J2xsIHNlZSBudW1iZXJzIHdoaWNoIHJlcHJlc2VudCB0aGUgb3JkZXIuCgpJIGhvcGUgSSBkaWRuJ3QgbWFrZSBhbnkgbWlzdGFrZXMuClRvbW9ycm93IEkgaGF2ZSBlbm91Z2ggdGltZSB0byBzZWUgaWYgSSB1bmRlcnN0YW5kIHdoYXQncyBoYXBwZW5pbmcgaGVyZS4KCkkgd2lsbCBjb21lIGJhY2sgd2l0aCBteSBjb25jbHVzaW9ucy4KClJvYmVydAoKT24gVHVlLCAxOSBTZXAgMjAxNyAwNjo1NTowOCArMDIwMCwgSWdvciBGZWRvcmVua28gPGlnb3JAaWZlZG9yZW5rby5jb20+ICAKd3JvdGU6Cgo+IFRMO0RSIHlvdXIgdGVzdCBwcm9qZWN0IGV4cG9zZWQgdHdvIGV4aXN0aW5nIGJ1Z3MsIG9uZSBjaGFuZ2UgaW4KPiBiZWhhdmlvdXIgYW5kIG9uZSBxdWlyayBJIGNhbid0IGV4cGxhaW4KPgo+ICogQnVpbGQgYDxleHRlbnNpb25zPmAgYXJlIGxvYWRlZCBieSB0d28gY2xhc3Nsb2FkZXJzLCB3aGljaCBpcyBhIGJ1ZyBpbgo+IERlZmF1bHRQcm9qZWN0QnVpbGRpbmdIZWxwZXIjY3JlYXRlUHJvamVjdFJlYWxtIGFuZCBleHBsYWlucyB3aHkgeW91IHNlZQo+IGV4dGphcjEvZXh0amFyMiBpbiB0aGUgb3V0cHV0Cj4gKiBDbGFzc1JlYWxtIGRvZXMgbm90IGFsbG93IHNhbWUgZm9yZWlnbi1pbXBvcnQgZnJvbSBtdWx0aXBsZQo+IGNsYXNzbG9hZGVycywgd2hpY2ggaXMgYSBidWcgYW5kIGV4cGxhaW5zIHdoeSBpdCBpcyBub3QgcG9zc2libGUgdG8gbG9hZAo+IHNhbWUgcmVzb3VyY2UgZnJvbSBtdWx0aXBsZSBwbHVnaW5zL2V4dGVuc2lvbnMKPiAqIFRDQ0wgZG9lcyBub3QgaGF2ZSBhY2Nlc3MgdG8gcHJpdmF0ZSAoaS5lLiBub3QgZXhwb3J0ZWQpIHJlc291cmNlcyBvZgo+IHRoaXMgZXh0ZW5zaW9ucyBwbHVnaW4sIHdoaWNoIGlzIGEgY2hhbmdlIG9mIGJlaGF2aW91ciBpbnRyb2R1Y2VkIGJ5Cj4gbW5nLTYyMDkgZml4Cj4gKiBBbHNvLCBjb21wb25lbnQgaW5qZWN0aW9uIG9yZGVyIGFwcGVhcnMgdG8gYmUgYmFja3dhcmRzLCBidXQgbWF5YmUKPiBTdHVhcnQgY2FuIGV4cGxhaW4gd2h5Lgo+Cj4KPiBCZWxvdyBpcyBtb3JlIGRldGFpbGVkIGV4cGxhbmF0aW9uIG9mIGV4cGVjdGVkIGFuZCBvYnNlcnZlZCBiZWhhdmlvdXIKPgo+Cj4gIyMgQ29tcG9uZW50IGluamVjdGlvbiBkZXBlbmRzIG9uIHRoZSBjdXJyZW50bHkgcnVubmluZyBwbHVnaW4gYW5kIHRoZQo+IGluamVjdGlvbiBzaXRlCj4KPiBDdXJyZW50bHkgcnVubmluZyBwbHVnaW5zIGhhdmUgYWNjZXNzIHRvIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50Cj4gaW1wbGVtZW50YXRpb25zOgo+Cj4gKiBSZWd1bGFyIHBsdWdpbiBoYXMgYWNjZXNzIHRvIGNvbXBvbmVudHMgaW1wbGVtZW50ZWQgYnkgdGhlIHBsdWdpbiwKPiBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMsIGlmIGFueSAodmlhIHByb2plY3QgY2xhc3MgcmVhbG0gZm9yZWlnbgo+IGltcG9ydCkgYW5kIE1hdmVuIENvcmUuCj4gKiBFeHRlbnNpb24gcGx1Z2luIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50cyBpbXBsZW1lbnRlZCBieSB0aGUgcHJvamVjdAo+IGJ1aWxkIGV4dGVuc2lvbnMgYW5kIE1hdmVuIENvcmUuCj4gKiBXaXRob3V0IGEgcnVubmluZyBwbHVnaW4gKGUuZy4sIGR1cmluZyBwcm9qZWN0IGRlcGVuZGVuY3kgcmVzb2x1dGlvbiksCj4gY29tcG9uZW50cyBpbXBsZW1lbnRlZCBieSB0aGUgcHJvamVjdCBidWlsZCBleHRlbnNpb25zIGFuZCBNYXZlbiBDb3JlCj4gYXJlIGFjY2Vzc2libGUuCj4KPiBEaWZmZXJlbnQgaW5qZWN0aW9uIHNpdGVzIGhhdmUgYWNjZXNzIHRvIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50Cj4gaW50ZXJmYWNlczoKPgo+ICogTWF2ZW4gQ29yZSBoYXMgYWNjZXNzIHRvIGNvbXBvbmVudCBpbnRlcmZhY2VzIGRlZmluZWQgYnkgdGhlIGNvcmUKPiBpdHNlbGYgKG9idmlvdXNseSkKPiAqIFByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucyBoYXZlIGFjY2VzcyB0byAqKnB1YmxpYyoqIGNvbXBvbmVudAo+IGludGVyZmFjZXMgZGVmaW5lZCBieSBNYXZlbiBDb3JlIGFuZCBjb21wb25lbnQgaW50ZXJmYWNlcyBkZWZpbmVkIGJ5IHRoZQo+IGJ1aWxkIGV4dGVuc2lvbiBpdHNlbGYgKHRoZXJlIGlzIG5vIHdheSB0byBhY2Nlc3MgY29tcG9uZW50IGludGVyZmFjZXMKPiBkZWZpbmVkIGluIG90aGVyIGV4dGVuc2lvbnMpCj4gKiBSZWd1bGFyIHBsdWdpbnMgaGF2ZSBhY2Nlc3MgdG8gKipwdWJsaWMqKiBjb21wb25lbnQgaW50ZXJmYWNlcyBkZWZpbmVkCj4gYnkgTWF2ZW4gQ29yZSwgY29tcG9uZW50IGludGVyZmFjZXMgKipleHBvcnRlZCoqIGJ5IGJ1aWxkIGV4dGVuc2lvbnMgYW5kCj4gY29tcG9uZW50IGludGVyZmFjZXMgZGVmaW5lZCBpbiB0aGUgcGx1Z2luIGl0c2VsZgo+Cj4gRm9yIGluamVjdGlvbiB0byB3b3JrLCBpbmplY3Rpb24gc2l0ZSBoYXMgdG8gaGF2ZSBhY2Nlc3MgdG8gdGhlCj4gY29tcG9uZW50IGludGVyZmFjZSBhbmQgdGhlIGNvbXBvbmVudCBpbXBsZW1lbnRhdGlvbiBtdXN0IGJlIGFjY2Vzc2libGUKPiB0aHJvdWdoIHRoZSBjdXJyZW50IGNvbnRleHQuCj4KPiBGcm9tIHdoYXQgSSBjYW4gdGVsbCwgaW4geW91ciBleGFtcGxlIGFsbCBwbHVnaW5zIGhhdmUgYWNjZXNzIHRvIHRoZQo+IHJpZ2h0IGNvbXBvbmVudHMgd2hlbiB1c2luZyBjdXJyZW50IDMuNS4yLVNOQVBTSE9ULiBUaGUgaW5qZWN0aW9uIG9yZGVyCj4gZG9lcyBhcHBlYXIgdG8gYmUgYmFja3dhcmRzIGZyb20gd2hhdCBJIGV4cGVjdGVkLCBob3dldmVyLgo+Cj4KPiAjIyBSZXNvdXJjZXMgbG9va3VwIGZ1bGx5IGRlcGVuZHMgb24gY2xhc3NwYXRoIHZpc2liaWxpdHksIHNwZWNpZmljYWxseQo+Cj4gKiBSZWd1bGFyIHBsdWdpbiBjbGFzcyByZWFsbSBoYXMgYWNjZXNzIHRvIHJlc291cmNlcyBmcm9tIHRoZSBwbHVnaW4KPiBpdHNlbGYsIGZyb20gKipleHBvcnRlZCoqIHBhY2thZ2VzIG9mIHRoZSBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMgYW5kCj4gKipwdWJsaWMqKiBNYXZlbiBDb3JlIHBhY2thZ2VzCj4gKiBFeHRlbnNpb25zIHBsdWdpbiBjbGFzcyByZWFsbSBoYXMgYWNjZXNzIHRvIHRoZSByZXNvdXJjZXMgZnJvbSB0aGUKPiBleHRlbnNpb25zIHBsdWdpbiBpdHNlbGYgYW5kIGZyb20gKipwdWJsaWMqKiBNYXZlbiBDb3JlIHBhY2thZ2VzCj4gKiBQcm9qZWN0IGNsYXNzIHJlYWxtIGhhcyBhY2Nlc3MgdG8gY2xhc3NlcyBhbmQgcmVzb3VyY2VzICoqZXhwb3J0ZWQqKgo+IGJ5IHByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucyBhbmQgKipwdWJsaWMqKiBNYXZlbiBDb3JlIHBhY2thZ2VzCj4KPiBJIHNlZSB0aHJlZSBwcm9ibGVtcyBoZXJlCj4KPiAqIE1hdmVuIGFkZHMgYnVpbGQgc2luZ2xlLWphciBgPGV4dGVuc2lvbnM+YCBlbGVtZW50cyBkaXJlY3RseSB0bwo+IHByb2plY3QgY2xhc3MgcmVhbG0gKiphbmQqKiBjcmVhdGVzIHNlcGFyYXRlIGV4dGVuc2lvbnMgY2xhc3MgcmVhbG1zIGZvcgo+IHRoZW0uIFdoaWNoIHJlc3VsdHMgaW4gZHVwbGljYXRlIGNsYXNzZXMvcmVzb3VyY2VzIGxvYWRlZCBieSB0d28KPiBjbGFzc2xvYWRlcnMgYW5kIGV4cGxhaW5zIHdoeSB5b3Ugc2VlIGV4dGphcjEvZXh0amFyMiBvdXRwdXQgKHdoaWNoIHlvdQo+IHNob3VsZG4ndCBhY2NvcmRpbmcgdG8gdGhlIGV4cGxhbmF0aW9uIGFib3ZlKQo+ICogQ2xhc3NSZWFsbSBkb2VzIG5vdCBhbGxvdyBmb3JlaWduLWltcG9ydCBvZiB0aGUgc2FtZSBwYWNrYWdlIGZyb20KPiBtdWx0aXBsZSBjbGFzc2xvYWRlcnMuIFRoaXMgbWFrZXMgaXQgaW1wb3NzaWJsZSB0byBsb2FkIHRoZSBzYW1lCj4gcmVzb3VyY2UgZnJvbSBtdWx0aXBsZSBwbHVnaW5zL2V4dGVuc2lvbnMuCj4gKiBFeHRlbnNpb25zIHBsdWdpbnMgY2Fubm90IGFjY2VzcyB0aGVpciBvd24gcHJpdmF0ZSAoaS5lLiBub3QgZXhwb3J0ZWQpCj4gcmVzb3VyY2VzIHZpYSBUQ0NMLCB0aGlzIGlzIGNoYW5nZSBpbiBiZWhhdmlvdXIgaW50cm9kdWNlZCBieSBtbmctNjIwOQo+IGZpeAo+Cj4gSG9wZSB0aGlzIGhlbHBzCgotLS0tLS0tLS0tLS1pUHFxeUsyTWxrWk9HR3FDbUs0M3VhCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11cy1hc2NpaQoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCi0tLS0tLS0tLS0tLWlQcXF5SzJNbGtaT0dHcUNtSzQzdWEtLQoKCkZyb20gZGV2LXJldHVybi0xMjQwNjgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIFNlcCAxOSAxOTo1MjoyMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwNjgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNTJGREZDODUzCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMTkgU2VwIDIwMTcgMTk6NTI6MjEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2NTI0MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOSBTZXAgMjAxNyAxOTo1MjoyMCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjUxNzUgaW52b2tlZCBieSB1aWQgNTAwKTsgMTkgU2VwIDIwMTcgMTk6NTI6MjAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2NTE2NCBpbnZva2VkIGJ5IHVpZCA5OSk7IDE5IFNlcCAyMDE3IDE5OjUyOjIwIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDE5IFNlcCAyMDE3IDE5OjUyOjIwICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgMkYzQzMxQTAxODUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDE5IFNlcCAyMDE3IDE5OjUyOjIwICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBVbmRlcnN0YW5kaW5nIE1ORy02MjA5ICh3YXM6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMSkKUmVmZXJlbmNlczogPENBK25Qbk13TUNxT19FdGNCVzVfM3JNNzEtdENyaXRwNFVrc3lmUG1ER0FZcjZ4ej1vUUBtYWlsLmdtYWlsLmNvbT4gPEYxRjhCM0NGLUREQUMtNDRCQS1BRUI3LTQxMjJDODg3QzRBQkBob250b24ub3JnPiA8Q0ErblBuTXdmX0JmdFl1cy1yblFyTzdvNStkdUdGejBWRWE3TmlvaEcxX19ZVXpyYzV3QG1haWwuZ21haWwuY29tPiA8MTUwNTc5NjkwOC4yNTE2ODA4LjExMTA2NzMxMjguNjM1QUMzNUZAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPiA8b3AueTZ0dG1yZWJrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDxDQStuUG5NeEZGRVRRbXF0ZTAtNTB1M0VGU3diZzZ5aXB3NVZTQmRMUHdUelBoZFZrNXdAbWFpbC5nbWFpbC5jb20+CkRhdGU6IFR1ZSwgMTkgU2VwIDIwMTcgMjE6NTI6MjIgKzAyMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTZ0djVrZjNrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkluLVJlcGx5LVRvOiA8Q0ErblBuTXhGRkVUUW1xdGUwLTUwdTNFRlN3Ymc2eWlwdzVWU0JkTFB3VHpQaGRWazV3QG1haWwuZ21haWwuY29tPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCkxldCdzIGRvIGl0IGxpa2UgdGhpczoKaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZG93bmxvYWQvYXR0YWNobWVudHMvMjMyOTg0MS9jbGFzc3JlYWxtcy5wZGY/YXBpPXYyCgpSb2JlcnQKCk9uIFR1ZSwgMTkgU2VwIDIwMTcgMjE6MDg6MzkgKzAyMDAsIFN0ZXBoZW4gQ29ubm9sbHkgIAo8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cgo+IEkgdGhpbmsgeW91IHdpbGwgbmVlZCBhIGxpbmsgdG8gdGhlIFBERiBhcyBhdHRhY2htZW50cyBhcmUgc3RyaXBwZWQgZnJvbQo+IHRoZSBNTAo+Cj4gT24gVHVlIDE5IFNlcCAyMDE3IGF0IDE5OjU3LCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+IHdyb3RlOgo+Cj4+IEF0dGFjaGVkIGEgc2luZ2xlIHBhZ2Ugb3ZlcnZpZXcuCj4+Cj4+IFBlciBibG9jayB5b3UnbGwgc2VlIGluIHRoZSB1cHBlciBsZWZ0IGNvcm5lciB0aGUgZXhlY3V0ZWQgcGx1Z2luCj4+IFRoZSBsZWZ0IGNvbHVtbiBjb250YWlucyB0aGUgZXh0ZW5zaW9ucyBhbmQgcGx1Z2luIGluIG9yZGVyYXMgc3BlY2lmaWVkICAKPj4gaW4KPj4gdGhlIHBvbS54bWwKPj4gSW4gZXZlcnkgY2xhc3Nsb2FkZXJjb2x1bW4geW91J2xsIHNlZSBudW1iZXJzIHdoaWNoIHJlcHJlc2VudCB0aGUgb3JkZXIuCj4+Cj4+IEkgaG9wZSBJIGRpZG4ndCBtYWtlIGFueSBtaXN0YWtlcy4KPj4gVG9tb3Jyb3cgSSBoYXZlIGVub3VnaCB0aW1lIHRvIHNlZSBpZiBJIHVuZGVyc3RhbmQgd2hhdCdzIGhhcHBlbmluZyAgCj4+IGhlcmUuCj4+Cj4+IEkgd2lsbCBjb21lIGJhY2sgd2l0aCBteSBjb25jbHVzaW9ucy4KPj4KPj4gUm9iZXJ0Cj4+Cj4+IE9uIFR1ZSwgMTkgU2VwIDIwMTcgMDY6NTU6MDggKzAyMDAsIElnb3IgRmVkb3JlbmtvIDxpZ29yQGlmZWRvcmVua28uY29tPgo+PiB3cm90ZToKPj4KPj4gPiBUTDtEUiB5b3VyIHRlc3QgcHJvamVjdCBleHBvc2VkIHR3byBleGlzdGluZyBidWdzLCBvbmUgY2hhbmdlIGluCj4+ID4gYmVoYXZpb3VyIGFuZCBvbmUgcXVpcmsgSSBjYW4ndCBleHBsYWluCj4+ID4KPj4gPiAqIEJ1aWxkIGA8ZXh0ZW5zaW9ucz5gIGFyZSBsb2FkZWQgYnkgdHdvIGNsYXNzbG9hZGVycywgd2hpY2ggaXMgYSBidWcgIAo+PiBpbgo+PiA+IERlZmF1bHRQcm9qZWN0QnVpbGRpbmdIZWxwZXIjY3JlYXRlUHJvamVjdFJlYWxtIGFuZCBleHBsYWlucyB3aHkgeW91ICAKPj4gc2VlCj4+ID4gZXh0amFyMS9leHRqYXIyIGluIHRoZSBvdXRwdXQKPj4gPiAqIENsYXNzUmVhbG0gZG9lcyBub3QgYWxsb3cgc2FtZSBmb3JlaWduLWltcG9ydCBmcm9tIG11bHRpcGxlCj4+ID4gY2xhc3Nsb2FkZXJzLCB3aGljaCBpcyBhIGJ1ZyBhbmQgZXhwbGFpbnMgd2h5IGl0IGlzIG5vdCBwb3NzaWJsZSB0byAgCj4+IGxvYWQKPj4gPiBzYW1lIHJlc291cmNlIGZyb20gbXVsdGlwbGUgcGx1Z2lucy9leHRlbnNpb25zCj4+ID4gKiBUQ0NMIGRvZXMgbm90IGhhdmUgYWNjZXNzIHRvIHByaXZhdGUgKGkuZS4gbm90IGV4cG9ydGVkKSByZXNvdXJjZXMgIAo+PiBvZgo+PiA+IHRoaXMgZXh0ZW5zaW9ucyBwbHVnaW4sIHdoaWNoIGlzIGEgY2hhbmdlIG9mIGJlaGF2aW91ciBpbnRyb2R1Y2VkIGJ5Cj4+ID4gbW5nLTYyMDkgZml4Cj4+ID4gKiBBbHNvLCBjb21wb25lbnQgaW5qZWN0aW9uIG9yZGVyIGFwcGVhcnMgdG8gYmUgYmFja3dhcmRzLCBidXQgbWF5YmUKPj4gPiBTdHVhcnQgY2FuIGV4cGxhaW4gd2h5Lgo+PiA+Cj4+ID4KPj4gPiBCZWxvdyBpcyBtb3JlIGRldGFpbGVkIGV4cGxhbmF0aW9uIG9mIGV4cGVjdGVkIGFuZCBvYnNlcnZlZCBiZWhhdmlvdXIKPj4gPgo+PiA+Cj4+ID4gIyMgQ29tcG9uZW50IGluamVjdGlvbiBkZXBlbmRzIG9uIHRoZSBjdXJyZW50bHkgcnVubmluZyBwbHVnaW4gYW5kIHRoZQo+PiA+IGluamVjdGlvbiBzaXRlCj4+ID4KPj4gPiBDdXJyZW50bHkgcnVubmluZyBwbHVnaW5zIGhhdmUgYWNjZXNzIHRvIHRoZSBmb2xsb3dpbmcgY29tcG9uZW50Cj4+ID4gaW1wbGVtZW50YXRpb25zOgo+PiA+Cj4+ID4gKiBSZWd1bGFyIHBsdWdpbiBoYXMgYWNjZXNzIHRvIGNvbXBvbmVudHMgaW1wbGVtZW50ZWQgYnkgdGhlIHBsdWdpbiwKPj4gPiBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMsIGlmIGFueSAodmlhIHByb2plY3QgY2xhc3MgcmVhbG0gZm9yZWlnbgo+PiA+IGltcG9ydCkgYW5kIE1hdmVuIENvcmUuCj4+ID4gKiBFeHRlbnNpb24gcGx1Z2luIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50cyBpbXBsZW1lbnRlZCBieSB0aGUgcHJvamVjdAo+PiA+IGJ1aWxkIGV4dGVuc2lvbnMgYW5kIE1hdmVuIENvcmUuCj4+ID4gKiBXaXRob3V0IGEgcnVubmluZyBwbHVnaW4gKGUuZy4sIGR1cmluZyBwcm9qZWN0IGRlcGVuZGVuY3kgIAo+PiByZXNvbHV0aW9uKSwKPj4gPiBjb21wb25lbnRzIGltcGxlbWVudGVkIGJ5IHRoZSBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMgYW5kIE1hdmVuIENvcmUKPj4gPiBhcmUgYWNjZXNzaWJsZS4KPj4gPgo+PiA+IERpZmZlcmVudCBpbmplY3Rpb24gc2l0ZXMgaGF2ZSBhY2Nlc3MgdG8gdGhlIGZvbGxvd2luZyBjb21wb25lbnQKPj4gPiBpbnRlcmZhY2VzOgo+PiA+Cj4+ID4gKiBNYXZlbiBDb3JlIGhhcyBhY2Nlc3MgdG8gY29tcG9uZW50IGludGVyZmFjZXMgZGVmaW5lZCBieSB0aGUgY29yZQo+PiA+IGl0c2VsZiAob2J2aW91c2x5KQo+PiA+ICogUHJvamVjdCBidWlsZCBleHRlbnNpb25zIGhhdmUgYWNjZXNzIHRvICoqcHVibGljKiogY29tcG9uZW50Cj4+ID4gaW50ZXJmYWNlcyBkZWZpbmVkIGJ5IE1hdmVuIENvcmUgYW5kIGNvbXBvbmVudCBpbnRlcmZhY2VzIGRlZmluZWQgYnkgIAo+PiB0aGUKPj4gPiBidWlsZCBleHRlbnNpb24gaXRzZWxmICh0aGVyZSBpcyBubyB3YXkgdG8gYWNjZXNzIGNvbXBvbmVudCBpbnRlcmZhY2VzCj4+ID4gZGVmaW5lZCBpbiBvdGhlciBleHRlbnNpb25zKQo+PiA+ICogUmVndWxhciBwbHVnaW5zIGhhdmUgYWNjZXNzIHRvICoqcHVibGljKiogY29tcG9uZW50IGludGVyZmFjZXMgIAo+PiBkZWZpbmVkCj4+ID4gYnkgTWF2ZW4gQ29yZSwgY29tcG9uZW50IGludGVyZmFjZXMgKipleHBvcnRlZCoqIGJ5IGJ1aWxkIGV4dGVuc2lvbnMgIAo+PiBhbmQKPj4gPiBjb21wb25lbnQgaW50ZXJmYWNlcyBkZWZpbmVkIGluIHRoZSBwbHVnaW4gaXRzZWxmCj4+ID4KPj4gPiBGb3IgaW5qZWN0aW9uIHRvIHdvcmssIGluamVjdGlvbiBzaXRlIGhhcyB0byBoYXZlIGFjY2VzcyB0byB0aGUKPj4gPiBjb21wb25lbnQgaW50ZXJmYWNlIGFuZCB0aGUgY29tcG9uZW50IGltcGxlbWVudGF0aW9uIG11c3QgYmUgIAo+PiBhY2Nlc3NpYmxlCj4+ID4gdGhyb3VnaCB0aGUgY3VycmVudCBjb250ZXh0Lgo+PiA+Cj4+ID4gRnJvbSB3aGF0IEkgY2FuIHRlbGwsIGluIHlvdXIgZXhhbXBsZSBhbGwgcGx1Z2lucyBoYXZlIGFjY2VzcyB0byB0aGUKPj4gPiByaWdodCBjb21wb25lbnRzIHdoZW4gdXNpbmcgY3VycmVudCAzLjUuMi1TTkFQU0hPVC4gVGhlIGluamVjdGlvbiAgCj4+IG9yZGVyCj4+ID4gZG9lcyBhcHBlYXIgdG8gYmUgYmFja3dhcmRzIGZyb20gd2hhdCBJIGV4cGVjdGVkLCBob3dldmVyLgo+PiA+Cj4+ID4KPj4gPiAjIyBSZXNvdXJjZXMgbG9va3VwIGZ1bGx5IGRlcGVuZHMgb24gY2xhc3NwYXRoIHZpc2liaWxpdHksICAKPj4gc3BlY2lmaWNhbGx5Cj4+ID4KPj4gPiAqIFJlZ3VsYXIgcGx1Z2luIGNsYXNzIHJlYWxtIGhhcyBhY2Nlc3MgdG8gcmVzb3VyY2VzIGZyb20gdGhlIHBsdWdpbgo+PiA+IGl0c2VsZiwgZnJvbSAqKmV4cG9ydGVkKiogcGFja2FnZXMgb2YgdGhlIHByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucyBhbmQKPj4gPiAqKnB1YmxpYyoqIE1hdmVuIENvcmUgcGFja2FnZXMKPj4gPiAqIEV4dGVuc2lvbnMgcGx1Z2luIGNsYXNzIHJlYWxtIGhhcyBhY2Nlc3MgdG8gdGhlIHJlc291cmNlcyBmcm9tIHRoZQo+PiA+IGV4dGVuc2lvbnMgcGx1Z2luIGl0c2VsZiBhbmQgZnJvbSAqKnB1YmxpYyoqIE1hdmVuIENvcmUgcGFja2FnZXMKPj4gPiAqIFByb2plY3QgY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byBjbGFzc2VzIGFuZCByZXNvdXJjZXMgKipleHBvcnRlZCoqCj4+ID4gYnkgcHJvamVjdCBidWlsZCBleHRlbnNpb25zIGFuZCAqKnB1YmxpYyoqIE1hdmVuIENvcmUgcGFja2FnZXMKPj4gPgo+PiA+IEkgc2VlIHRocmVlIHByb2JsZW1zIGhlcmUKPj4gPgo+PiA+ICogTWF2ZW4gYWRkcyBidWlsZCBzaW5nbGUtamFyIGA8ZXh0ZW5zaW9ucz5gIGVsZW1lbnRzIGRpcmVjdGx5IHRvCj4+ID4gcHJvamVjdCBjbGFzcyByZWFsbSAqKmFuZCoqIGNyZWF0ZXMgc2VwYXJhdGUgZXh0ZW5zaW9ucyBjbGFzcyByZWFsbXMgIAo+PiBmb3IKPj4gPiB0aGVtLiBXaGljaCByZXN1bHRzIGluIGR1cGxpY2F0ZSBjbGFzc2VzL3Jlc291cmNlcyBsb2FkZWQgYnkgdHdvCj4+ID4gY2xhc3Nsb2FkZXJzIGFuZCBleHBsYWlucyB3aHkgeW91IHNlZSBleHRqYXIxL2V4dGphcjIgb3V0cHV0ICh3aGljaCAgCj4+IHlvdQo+PiA+IHNob3VsZG4ndCBhY2NvcmRpbmcgdG8gdGhlIGV4cGxhbmF0aW9uIGFib3ZlKQo+PiA+ICogQ2xhc3NSZWFsbSBkb2VzIG5vdCBhbGxvdyBmb3JlaWduLWltcG9ydCBvZiB0aGUgc2FtZSBwYWNrYWdlIGZyb20KPj4gPiBtdWx0aXBsZSBjbGFzc2xvYWRlcnMuIFRoaXMgbWFrZXMgaXQgaW1wb3NzaWJsZSB0byBsb2FkIHRoZSBzYW1lCj4+ID4gcmVzb3VyY2UgZnJvbSBtdWx0aXBsZSBwbHVnaW5zL2V4dGVuc2lvbnMuCj4+ID4gKiBFeHRlbnNpb25zIHBsdWdpbnMgY2Fubm90IGFjY2VzcyB0aGVpciBvd24gcHJpdmF0ZSAoaS5lLiBub3QgIAo+PiBleHBvcnRlZCkKPj4gPiByZXNvdXJjZXMgdmlhIFRDQ0wsIHRoaXMgaXMgY2hhbmdlIGluIGJlaGF2aW91ciBpbnRyb2R1Y2VkIGJ5IG1uZy02MjA5Cj4+ID4gZml4Cj4+ID4KPj4gPiBIb3BlIHRoaXMgaGVscHMKPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDA3Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgU2VwIDIwIDA3OjI5OjA2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDA3Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBGMTU0MkMyQTcKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyMCBTZXAgMjAxNyAwNzoyOTowNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDUyMDExIGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIFNlcCAyMDE3IDA3OjI5OjA1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MTkzNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBTZXAgMjAxNyAwNzoyOTowNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUxOTI1IGludm9rZWQgYnkgdWlkIDk5KTsgMjAgU2VwIDIwMTcgMDc6Mjk6MDUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMjAgU2VwIDIwMTcgMDc6Mjk6MDUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmwgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCA3NzUyMDFBMDEyRjsKCVdlZCwgMjAgU2VwIDIwMTcgMDc6Mjk6MDQgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sICJTdGVwaGVuIENvbm5vbGx5IgogPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+ClN1YmplY3Q6IFJlOiBVbmRlcnN0YW5kaW5nIE1ORy02MjA5ICh3YXM6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMSkKUmVmZXJlbmNlczogPENBK25Qbk13TUNxT19FdGNCVzVfM3JNNzEtdENyaXRwNFVrc3lmUG1ER0FZcjZ4ej1vUUBtYWlsLmdtYWlsLmNvbT4gPEYxRjhCM0NGLUREQUMtNDRCQS1BRUI3LTQxMjJDODg3QzRBQkBob250b24ub3JnPiA8Q0ErblBuTXdmX0JmdFl1cy1yblFyTzdvNStkdUdGejBWRWE3TmlvaEcxX19ZVXpyYzV3QG1haWwuZ21haWwuY29tPiA8MTUwNTc5NjkwOC4yNTE2ODA4LjExMTA2NzMxMjguNjM1QUMzNUZAd2VibWFpbC5tZXNzYWdpbmdlbmdpbmUuY29tPiA8b3AueTZ0dG1yZWJrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDxDQStuUG5NeEZGRVRRbXF0ZTAtNTB1M0VGU3diZzZ5aXB3NVZTQmRMUHdUelBoZFZrNXdAbWFpbC5nbWFpbC5jb20+IDxvcC55NnR2NWtmM2tka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4gPDE1MDU4NTM1NDAuMzQ0MzQ2NS4xMTExNjIwNjQwLjMzMUJFNThBQHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4gPENBK25Qbk16a052QkZfRmN0LUU9N3FmR1FmcEhVQktUMTljV0MzOFNDcXRxNmt2aWU5Z0BtYWlsLmdtYWlsLmNvbT4gPDE1MDU4NjczNzQuMzQ5Mzg0Mi4xMTExNzk2NTIwLjUxMjRBQ0E2QHdlYm1haWwubWVzc2FnaW5nZW5naW5lLmNvbT4gPENBK25Qbk14cUhhM3lCUkZXcitpT0VzT21oa1g4TGNnYzBNNGRHOXN5dWNMc1BhTFI1QUBtYWlsLmdtYWlsLmNvbT4KRGF0ZTogV2VkLCAyMCBTZXAgMjAxNyAwOToyOTowOCArMDIwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55NnVzZXV3eWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KSW4tUmVwbHktVG86IDxDQStuUG5NeHFIYTN5QlJGV3IraU9Fc09taGtYOExjZ2MwTTRkRzlzeXVjTHNQYUxSNUFAbWFpbC5nbWFpbC5jb20+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKT24gV2VkLCAyMCBTZXAgMjAxNyAwOToxMjo0NyArMDIwMCwgU3RlcGhlbiBDb25ub2xseSAgCjxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKCj4gT24gV2VkIDIwIFNlcCAyMDE3IGF0IDAxOjI5LCBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvbT4gd3JvdGU6Cj4KPj4gSW4gdGhhdCBjYXNlLCBjYW4gSSBzdWdnZXN0IGNvdXBsZSBvZiBjaGFuZ2VzIHRvIHRoZSB0ZXN0IHByb2plY3QKPj4KPj4gKiBJIHRoaW5rcyBpdCBtYWtlcyBtb3JlIHNlbnNlIHRvIGNvbmZpZ3VyZSBleHRqYXIxIGFuZCBleHRqYXIyIGFzCj4+IGV4dGVuc2lvbnMgPHBsdWdpbj4gZWxlbWVudHMgaW4gcHJvYmxlTiBwb20ueG1sIGZpbGVzLiBGaXJzdCwgdGhlcmUgaXMKPj4gbm8gbWVhbmluZ2Z1bCBvcmRlciBiZXR3ZWVuIDxleHRlbnNpb25zPiBhbmQgPHBsdWdpbnM+IGVsZW1lbnRzLiBNb3JlCj4+IGltcG9ydGFudGx5LCB0aG91Z2gsIHNpbXBsZSA8ZXh0ZW5zaW9ucz4gYXJlIHRyZWF0ZWQgaW4gc3BlY2lhbAo+PiBtYXZlbjItY29tcGF0IG1vZGUgYW5kIGFyZSBub3QgcmVwcmVzZW50YXRpdmUgb2YgbGlrZWx5IHJlYWwtd29ybGQKPj4gZXh0ZW5zaW9ucy4KPgoKTm90IHN1cmUgSSBhZ3JlZSB3aXRoIHRoaXMuIEkgdGhpbmsgdGhlcmUgYXJlIGphcnMgd29ydGggc2hhcmluZyBhY3Jvc3MgIAptdWx0aXBsZSBwbHVnaW5zLCBidXQgd2hlcmUgbWFraW5nIHRoZSBwbHVnaW4gYW4gZXh0ZW5zaW9uIGlzIGEgYml0IHdlaXJkLgpJJ20gdGhpbmtpbmcgb2Ygc2NtIGFuZCB3YWdvbiBpbiB0aGlzIGNhc2UuCgo+Cj4gVGhhdCBzb3VuZHMgbGlrZSB3ZSBuZWVkIGRvY3VtZW50YXRpb24gdXBkYXRlZCB0aGVuLiBOb25lIG9mIHRoYXQgaXMKPiBvYnZpb3VzIHRvIG1lLgo+Cj4KPj4KPj4gKiBJIHRoaW5rIHdlIHNob3VsZCBpbnRyb2R1Y2UgTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCB0byB0aGUgdGVzdAo+PiBleHRlbnNpb25zLiBUaGlzIG1ldGFkYXRhIHdoYXQgaW50cm9kdWNlZCB0byBjb25maWd1cmUgY2xhc3NwYXRoCj4+IHZpc2liaWxpdHksIHNvIGxldHMgdXNlIGl0Lgo+Cj4KPiBBZ2Fpbiwgbm90IG9idmlvdXMgdG8gbWUsIGlmIHRoYXQgZmlsZSBhbGxvd3MgY29udHJvbCBvZiBjbGFzc3BhdGgKPiB2aXNpYmlsaXR5IHRoZW4gaXQgbWF5IGJlIHRoYXQgdGhlIG9ubHkgaXNzdWUgKndpdGgqIDMuNS4xIGlzIHRoZSBsYWNrIG9mCj4gZG9jdW1lbnRhdGlvbi4uLiBub3cgcHJldmlvdXMgdmVyc2lvbnMgd291bGQgaGF2ZSBiZWVuIGFkZGluZyBicmVha2luZwo+IGNoYW5nZXMgZnJvbSBteSBQb1YgYnV0IHRoYXQgaXMgdGhlIHBhc3QgYW5kIHNob3VsZCBub3QgYWZmZWN0IHRoZSAzLjUuMQo+IHJlbGVhc2UuCj4KPiBQUnMgZm9yIHRoZSBwcm9iZSBwcm9qZWN0IHdlbGNvbWUuIEkgYW0gaGFwcHkgdG8gdHJ5IGFuZCB3cml0ZSBkb2NzIG9uY2UgIAo+IEkKPiBoYXZlIGFuIHVuZGVyc3RhbmRpbmcgb2Ygd2hhdCB0aGUgZXhwZWN0ZWQgYmVoYXZpb3VycyBhcmUKPgo+Cj4+Cj4+IC0tCj4+IFJlZ2FyZHMsCj4+IElnb3IKPj4KPj4gT24gVHVlLCBTZXAgMTksIDIwMTcsIGF0IDA1OjEyIFBNLCBTdGVwaGVuIENvbm5vbGx5IHdyb3RlOgo+PiA+IFllcywgdGhlIGV4cGVjdGF0aW9ucyBhcmUga2V5LiBEZXBlbmRpbmcgb24gd2hhdCB0aGV5IGFyZSB3ZSBtYXkgIAo+PiBlaXRoZXIKPj4gPiBkcm9wIDMuNS4xIG9yIGdvIGFoZWFkIGFzIGl0IGRlcGVuZHMgb24gd2hldGhlciB0aGlzIGlzIG1vcmUgY29ycmVjdCAgCj4+IHRoYW4KPj4gPiAzLjUuMCBvciBzd2FwcGluZyBvbmUgZml4IGZvciBhIGJ1Zwo+PiA+Cj4+ID4gT24gVHVlIDE5IFNlcCAyMDE3IGF0IDIxOjM5LCBJZ29yIEZlZG9yZW5rbyA8aWdvckBpZmVkb3JlbmtvLmNvbT4gIAo+PiB3cm90ZToKPj4gPgo+PiA+ID4gSnVzdCB0byBjb25maXJtIEkgdW5kZXJzdGFuZCB3aGF0IHdlIGFyZSB0cnlpbmcgdG8gZXN0YWJsaXNoIGhlcmUuICAKPj4gV2UKPj4gPiA+IHdhbnQgdG8gZGVjaWRlIHRoZSBleHBlY3RlZC9kZXNpcmVkIGNvbXBvbmVudCBpbmplY3Rpb24gYmVoYXZpb3VyICAKPj4gYW5kCj4+ID4gPiBjbGFzc3BhdGggdmlzaWJpbGl0eSBpbiB0aGUgYWJzZW5jZSBvZiBwYWNrYWdlIGFuZCBhcnRpZmFjdCBleHBvcnQKPj4gPiA+IGNvbmZpZ3VyYXRpb24gKGkuZS4gTUVUQS1JTkYvbWF2ZW4vZXh0ZW5zaW9uLnhtbCBmaWxlKS4gRGlkIEkgZ2V0ICAKPj4gdGhpcwo+PiA+ID4gcmlnaHQ/Cj4+ID4gPgo+PiA+ID4gLS0KPj4gPiA+IFJlZ2FyZHMsCj4+ID4gPiBJZ29yCj4+ID4gPgo+PiA+ID4gT24gVHVlLCBTZXAgMTksIDIwMTcsIGF0IDAzOjUyIFBNLCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPj4gPiA+ID4gTGV0J3MgZG8gaXQgbGlrZSB0aGlzOgo+PiA+ID4gPgo+PiA+ID4KPj4gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZG93bmxvYWQvYXR0YWNobWVudHMvMjMyOTg0MS9jbGFzc3JlYWxtcy5wZGY/YXBpPXYyCj4+ID4gPiA+Cj4+ID4gPiA+IFJvYmVydAo+PiA+ID4gPgo+PiA+ID4gPiBPbiBUdWUsIDE5IFNlcCAyMDE3IDIxOjA4OjM5ICswMjAwLCBTdGVwaGVuIENvbm5vbGx5Cj4+ID4gPiA+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4gPiA+ID4KPj4gPiA+ID4gPiBJIHRoaW5rIHlvdSB3aWxsIG5lZWQgYSBsaW5rIHRvIHRoZSBQREYgYXMgYXR0YWNobWVudHMgYXJlICAKPj4gc3RyaXBwZWQKPj4gPiA+IGZyb20KPj4gPiA+ID4gPiB0aGUgTUwKPj4gPiA+ID4gPgo+PiA+ID4gPiA+IE9uIFR1ZSAxOSBTZXAgMjAxNyBhdCAxOTo1NywgUm9iZXJ0IFNjaG9sdGUgIAo+PiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Cj4+ID4gPiB3cm90ZToKPj4gPiA+ID4gPgo+PiA+ID4gPiA+PiBBdHRhY2hlZCBhIHNpbmdsZSBwYWdlIG92ZXJ2aWV3Lgo+PiA+ID4gPiA+Pgo+PiA+ID4gPiA+PiBQZXIgYmxvY2sgeW91J2xsIHNlZSBpbiB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgdGhlIGV4ZWN1dGVkICAKPj4gcGx1Z2luCj4+ID4gPiA+ID4+IFRoZSBsZWZ0IGNvbHVtbiBjb250YWlucyB0aGUgZXh0ZW5zaW9ucyBhbmQgcGx1Z2luIGluIG9yZGVyYXMKPj4gPiA+IHNwZWNpZmllZAo+PiA+ID4gPiA+PiBpbgo+PiA+ID4gPiA+PiB0aGUgcG9tLnhtbAo+PiA+ID4gPiA+PiBJbiBldmVyeSBjbGFzc2xvYWRlcmNvbHVtbiB5b3UnbGwgc2VlIG51bWJlcnMgd2hpY2ggcmVwcmVzZW50ICAKPj4gdGhlCj4+ID4gPiBvcmRlci4KPj4gPiA+ID4gPj4KPj4gPiA+ID4gPj4gSSBob3BlIEkgZGlkbid0IG1ha2UgYW55IG1pc3Rha2VzLgo+PiA+ID4gPiA+PiBUb21vcnJvdyBJIGhhdmUgZW5vdWdoIHRpbWUgdG8gc2VlIGlmIEkgdW5kZXJzdGFuZCB3aGF0J3MKPj4gaGFwcGVuaW5nCj4+ID4gPiA+ID4+IGhlcmUuCj4+ID4gPiA+ID4+Cj4+ID4gPiA+ID4+IEkgd2lsbCBjb21lIGJhY2sgd2l0aCBteSBjb25jbHVzaW9ucy4KPj4gPiA+ID4gPj4KPj4gPiA+ID4gPj4gUm9iZXJ0Cj4+ID4gPiA+ID4+Cj4+ID4gPiA+ID4+IE9uIFR1ZSwgMTkgU2VwIDIwMTcgMDY6NTU6MDggKzAyMDAsIElnb3IgRmVkb3JlbmtvIDwKPj4gPiA+IGlnb3JAaWZlZG9yZW5rby5jb20+Cj4+ID4gPiA+ID4+IHdyb3RlOgo+PiA+ID4gPiA+Pgo+PiA+ID4gPiA+PiA+IFRMO0RSIHlvdXIgdGVzdCBwcm9qZWN0IGV4cG9zZWQgdHdvIGV4aXN0aW5nIGJ1Z3MsIG9uZSAgCj4+IGNoYW5nZSBpbgo+PiA+ID4gPiA+PiA+IGJlaGF2aW91ciBhbmQgb25lIHF1aXJrIEkgY2FuJ3QgZXhwbGFpbgo+PiA+ID4gPiA+PiA+Cj4+ID4gPiA+ID4+ID4gKiBCdWlsZCBgPGV4dGVuc2lvbnM+YCBhcmUgbG9hZGVkIGJ5IHR3byBjbGFzc2xvYWRlcnMsIHdoaWNoICAKPj4gaXMKPj4gYQo+PiA+ID4gYnVnCj4+ID4gPiA+ID4+IGluCj4+ID4gPiA+ID4+ID4gRGVmYXVsdFByb2plY3RCdWlsZGluZ0hlbHBlciNjcmVhdGVQcm9qZWN0UmVhbG0gYW5kIGV4cGxhaW5zCj4+IHdoeSB5b3UKPj4gPiA+ID4gPj4gc2VlCj4+ID4gPiA+ID4+ID4gZXh0amFyMS9leHRqYXIyIGluIHRoZSBvdXRwdXQKPj4gPiA+ID4gPj4gPiAqIENsYXNzUmVhbG0gZG9lcyBub3QgYWxsb3cgc2FtZSBmb3JlaWduLWltcG9ydCBmcm9tIG11bHRpcGxlCj4+ID4gPiA+ID4+ID4gY2xhc3Nsb2FkZXJzLCB3aGljaCBpcyBhIGJ1ZyBhbmQgZXhwbGFpbnMgd2h5IGl0IGlzIG5vdAo+PiBwb3NzaWJsZSB0bwo+PiA+ID4gPiA+PiBsb2FkCj4+ID4gPiA+ID4+ID4gc2FtZSByZXNvdXJjZSBmcm9tIG11bHRpcGxlIHBsdWdpbnMvZXh0ZW5zaW9ucwo+PiA+ID4gPiA+PiA+ICogVENDTCBkb2VzIG5vdCBoYXZlIGFjY2VzcyB0byBwcml2YXRlIChpLmUuIG5vdCBleHBvcnRlZCkKPj4gcmVzb3VyY2VzCj4+ID4gPiA+ID4+IG9mCj4+ID4gPiA+ID4+ID4gdGhpcyBleHRlbnNpb25zIHBsdWdpbiwgd2hpY2ggaXMgYSBjaGFuZ2Ugb2YgYmVoYXZpb3VyCj4+IGludHJvZHVjZWQgYnkKPj4gPiA+ID4gPj4gPiBtbmctNjIwOSBmaXgKPj4gPiA+ID4gPj4gPiAqIEFsc28sIGNvbXBvbmVudCBpbmplY3Rpb24gb3JkZXIgYXBwZWFycyB0byBiZSBiYWNrd2FyZHMsICAKPj4gYnV0Cj4+IG1heWJlCj4+ID4gPiA+ID4+ID4gU3R1YXJ0IGNhbiBleHBsYWluIHdoeS4KPj4gPiA+ID4gPj4gPgo+PiA+ID4gPiA+PiA+Cj4+ID4gPiA+ID4+ID4gQmVsb3cgaXMgbW9yZSBkZXRhaWxlZCBleHBsYW5hdGlvbiBvZiBleHBlY3RlZCBhbmQgb2JzZXJ2ZWQKPj4gPiA+IGJlaGF2aW91cgo+PiA+ID4gPiA+PiA+Cj4+ID4gPiA+ID4+ID4KPj4gPiA+ID4gPj4gPiAjIyBDb21wb25lbnQgaW5qZWN0aW9uIGRlcGVuZHMgb24gdGhlIGN1cnJlbnRseSBydW5uaW5nICAKPj4gcGx1Z2luCj4+IGFuZAo+PiA+ID4gdGhlCj4+ID4gPiA+ID4+ID4gaW5qZWN0aW9uIHNpdGUKPj4gPiA+ID4gPj4gPgo+PiA+ID4gPiA+PiA+IEN1cnJlbnRseSBydW5uaW5nIHBsdWdpbnMgaGF2ZSBhY2Nlc3MgdG8gdGhlIGZvbGxvd2luZyAgCj4+IGNvbXBvbmVudAo+PiA+ID4gPiA+PiA+IGltcGxlbWVudGF0aW9uczoKPj4gPiA+ID4gPj4gPgo+PiA+ID4gPiA+PiA+ICogUmVndWxhciBwbHVnaW4gaGFzIGFjY2VzcyB0byBjb21wb25lbnRzIGltcGxlbWVudGVkIGJ5IHRoZQo+PiBwbHVnaW4sCj4+ID4gPiA+ID4+ID4gcHJvamVjdCBidWlsZCBleHRlbnNpb25zLCBpZiBhbnkgKHZpYSBwcm9qZWN0IGNsYXNzIHJlYWxtCj4+IGZvcmVpZ24KPj4gPiA+ID4gPj4gPiBpbXBvcnQpIGFuZCBNYXZlbiBDb3JlLgo+PiA+ID4gPiA+PiA+ICogRXh0ZW5zaW9uIHBsdWdpbiBoYXMgYWNjZXNzIHRvIGNvbXBvbmVudHMgaW1wbGVtZW50ZWQgYnkgIAo+PiB0aGUKPj4gPiA+IHByb2plY3QKPj4gPiA+ID4gPj4gPiBidWlsZCBleHRlbnNpb25zIGFuZCBNYXZlbiBDb3JlLgo+PiA+ID4gPiA+PiA+ICogV2l0aG91dCBhIHJ1bm5pbmcgcGx1Z2luIChlLmcuLCBkdXJpbmcgcHJvamVjdCBkZXBlbmRlbmN5Cj4+ID4gPiA+ID4+IHJlc29sdXRpb24pLAo+PiA+ID4gPiA+PiA+IGNvbXBvbmVudHMgaW1wbGVtZW50ZWQgYnkgdGhlIHByb2plY3QgYnVpbGQgZXh0ZW5zaW9ucyBhbmQgIAo+PiBNYXZlbgo+PiA+ID4gQ29yZQo+PiA+ID4gPiA+PiA+IGFyZSBhY2Nlc3NpYmxlLgo+PiA+ID4gPiA+PiA+Cj4+ID4gPiA+ID4+ID4gRGlmZmVyZW50IGluamVjdGlvbiBzaXRlcyBoYXZlIGFjY2VzcyB0byB0aGUgZm9sbG93aW5nICAKPj4gY29tcG9uZW50Cj4+ID4gPiA+ID4+ID4gaW50ZXJmYWNlczoKPj4gPiA+ID4gPj4gPgo+PiA+ID4gPiA+PiA+ICogTWF2ZW4gQ29yZSBoYXMgYWNjZXNzIHRvIGNvbXBvbmVudCBpbnRlcmZhY2VzIGRlZmluZWQgYnkgIAo+PiB0aGUKPj4gY29yZQo+PiA+ID4gPiA+PiA+IGl0c2VsZiAob2J2aW91c2x5KQo+PiA+ID4gPiA+PiA+ICogUHJvamVjdCBidWlsZCBleHRlbnNpb25zIGhhdmUgYWNjZXNzIHRvICoqcHVibGljKiogIAo+PiBjb21wb25lbnQKPj4gPiA+ID4gPj4gPiBpbnRlcmZhY2VzIGRlZmluZWQgYnkgTWF2ZW4gQ29yZSBhbmQgY29tcG9uZW50IGludGVyZmFjZXMKPj4gZGVmaW5lZCBieQo+PiA+ID4gPiA+PiB0aGUKPj4gPiA+ID4gPj4gPiBidWlsZCBleHRlbnNpb24gaXRzZWxmICh0aGVyZSBpcyBubyB3YXkgdG8gYWNjZXNzIGNvbXBvbmVudAo+PiA+ID4gaW50ZXJmYWNlcwo+PiA+ID4gPiA+PiA+IGRlZmluZWQgaW4gb3RoZXIgZXh0ZW5zaW9ucykKPj4gPiA+ID4gPj4gPiAqIFJlZ3VsYXIgcGx1Z2lucyBoYXZlIGFjY2VzcyB0byAqKnB1YmxpYyoqIGNvbXBvbmVudCAgCj4+IGludGVyZmFjZXMKPj4gPiA+ID4gPj4gZGVmaW5lZAo+PiA+ID4gPiA+PiA+IGJ5IE1hdmVuIENvcmUsIGNvbXBvbmVudCBpbnRlcmZhY2VzICoqZXhwb3J0ZWQqKiBieSBidWlsZAo+PiBleHRlbnNpb25zCj4+ID4gPiA+ID4+IGFuZAo+PiA+ID4gPiA+PiA+IGNvbXBvbmVudCBpbnRlcmZhY2VzIGRlZmluZWQgaW4gdGhlIHBsdWdpbiBpdHNlbGYKPj4gPiA+ID4gPj4gPgo+PiA+ID4gPiA+PiA+IEZvciBpbmplY3Rpb24gdG8gd29yaywgaW5qZWN0aW9uIHNpdGUgaGFzIHRvIGhhdmUgYWNjZXNzIHRvICAKPj4gdGhlCj4+ID4gPiA+ID4+ID4gY29tcG9uZW50IGludGVyZmFjZSBhbmQgdGhlIGNvbXBvbmVudCBpbXBsZW1lbnRhdGlvbiBtdXN0IGJlCj4+ID4gPiA+ID4+IGFjY2Vzc2libGUKPj4gPiA+ID4gPj4gPiB0aHJvdWdoIHRoZSBjdXJyZW50IGNvbnRleHQuCj4+ID4gPiA+ID4+ID4KPj4gPiA+ID4gPj4gPiBGcm9tIHdoYXQgSSBjYW4gdGVsbCwgaW4geW91ciBleGFtcGxlIGFsbCBwbHVnaW5zIGhhdmUgYWNjZXNzCj4+IHRvIHRoZQo+PiA+ID4gPiA+PiA+IHJpZ2h0IGNvbXBvbmVudHMgd2hlbiB1c2luZyBjdXJyZW50IDMuNS4yLVNOQVBTSE9ULiBUaGUKPj4gaW5qZWN0aW9uCj4+ID4gPiA+ID4+IG9yZGVyCj4+ID4gPiA+ID4+ID4gZG9lcyBhcHBlYXIgdG8gYmUgYmFja3dhcmRzIGZyb20gd2hhdCBJIGV4cGVjdGVkLCBob3dldmVyLgo+PiA+ID4gPiA+PiA+Cj4+ID4gPiA+ID4+ID4KPj4gPiA+ID4gPj4gPiAjIyBSZXNvdXJjZXMgbG9va3VwIGZ1bGx5IGRlcGVuZHMgb24gY2xhc3NwYXRoIHZpc2liaWxpdHksCj4+ID4gPiA+ID4+IHNwZWNpZmljYWxseQo+PiA+ID4gPiA+PiA+Cj4+ID4gPiA+ID4+ID4gKiBSZWd1bGFyIHBsdWdpbiBjbGFzcyByZWFsbSBoYXMgYWNjZXNzIHRvIHJlc291cmNlcyBmcm9tIHRoZQo+PiBwbHVnaW4KPj4gPiA+ID4gPj4gPiBpdHNlbGYsIGZyb20gKipleHBvcnRlZCoqIHBhY2thZ2VzIG9mIHRoZSBwcm9qZWN0IGJ1aWxkCj4+IGV4dGVuc2lvbnMKPj4gPiA+IGFuZAo+PiA+ID4gPiA+PiA+ICoqcHVibGljKiogTWF2ZW4gQ29yZSBwYWNrYWdlcwo+PiA+ID4gPiA+PiA+ICogRXh0ZW5zaW9ucyBwbHVnaW4gY2xhc3MgcmVhbG0gaGFzIGFjY2VzcyB0byB0aGUgcmVzb3VyY2VzCj4+IGZyb20gdGhlCj4+ID4gPiA+ID4+ID4gZXh0ZW5zaW9ucyBwbHVnaW4gaXRzZWxmIGFuZCBmcm9tICoqcHVibGljKiogTWF2ZW4gQ29yZSAgCj4+IHBhY2thZ2VzCj4+ID4gPiA+ID4+ID4gKiBQcm9qZWN0IGNsYXNzIHJlYWxtIGhhcyBhY2Nlc3MgdG8gY2xhc3NlcyBhbmQgcmVzb3VyY2VzCj4+ID4gPiAqKmV4cG9ydGVkKioKPj4gPiA+ID4gPj4gPiBieSBwcm9qZWN0IGJ1aWxkIGV4dGVuc2lvbnMgYW5kICoqcHVibGljKiogTWF2ZW4gQ29yZSAgCj4+IHBhY2thZ2VzCj4+ID4gPiA+ID4+ID4KPj4gPiA+ID4gPj4gPiBJIHNlZSB0aHJlZSBwcm9ibGVtcyBoZXJlCj4+ID4gPiA+ID4+ID4KPj4gPiA+ID4gPj4gPiAqIE1hdmVuIGFkZHMgYnVpbGQgc2luZ2xlLWphciBgPGV4dGVuc2lvbnM+YCBlbGVtZW50cyAgCj4+IGRpcmVjdGx5Cj4+IHRvCj4+ID4gPiA+ID4+ID4gcHJvamVjdCBjbGFzcyByZWFsbSAqKmFuZCoqIGNyZWF0ZXMgc2VwYXJhdGUgZXh0ZW5zaW9ucyBjbGFzcwo+PiByZWFsbXMKPj4gPiA+ID4gPj4gZm9yCj4+ID4gPiA+ID4+ID4gdGhlbS4gV2hpY2ggcmVzdWx0cyBpbiBkdXBsaWNhdGUgY2xhc3Nlcy9yZXNvdXJjZXMgbG9hZGVkIGJ5ICAKPj4gdHdvCj4+ID4gPiA+ID4+ID4gY2xhc3Nsb2FkZXJzIGFuZCBleHBsYWlucyB3aHkgeW91IHNlZSBleHRqYXIxL2V4dGphcjIgb3V0cHV0Cj4+ICh3aGljaAo+PiA+ID4gPiA+PiB5b3UKPj4gPiA+ID4gPj4gPiBzaG91bGRuJ3QgYWNjb3JkaW5nIHRvIHRoZSBleHBsYW5hdGlvbiBhYm92ZSkKPj4gPiA+ID4gPj4gPiAqIENsYXNzUmVhbG0gZG9lcyBub3QgYWxsb3cgZm9yZWlnbi1pbXBvcnQgb2YgdGhlIHNhbWUgIAo+PiBwYWNrYWdlCj4+IGZyb20KPj4gPiA+ID4gPj4gPiBtdWx0aXBsZSBjbGFzc2xvYWRlcnMuIFRoaXMgbWFrZXMgaXQgaW1wb3NzaWJsZSB0byBsb2FkIHRoZSAgCj4+IHNhbWUKPj4gPiA+ID4gPj4gPiByZXNvdXJjZSBmcm9tIG11bHRpcGxlIHBsdWdpbnMvZXh0ZW5zaW9ucy4KPj4gPiA+ID4gPj4gPiAqIEV4dGVuc2lvbnMgcGx1Z2lucyBjYW5ub3QgYWNjZXNzIHRoZWlyIG93biBwcml2YXRlIChpLmUuICAKPj4gbm90Cj4+ID4gPiA+ID4+IGV4cG9ydGVkKQo+PiA+ID4gPiA+PiA+IHJlc291cmNlcyB2aWEgVENDTCwgdGhpcyBpcyBjaGFuZ2UgaW4gYmVoYXZpb3VyIGludHJvZHVjZWQgYnkKPj4gPiA+IG1uZy02MjA5Cj4+ID4gPiA+ID4+ID4gZml4Cj4+ID4gPiA+ID4+ID4KPj4gPiA+ID4gPj4gPiBIb3BlIHRoaXMgaGVscHMKPj4gPiA+ID4gPj4KPj4gPiA+ID4gPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ID4gPiA+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+ID4KPj4gPiA+ID4gIAo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4gPgo+PiA+ID4KPj4gPiA+ICAKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4KPj4gPiA+IC0tCj4+ID4gU2VudCBmcm9tIG15IHBob25lCj4+Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Cj4+IC0tCj4gU2VudCBmcm9tIG15IHBob25lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQyMzQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE9jdCAxMyAxODozMzowNSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyMzQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgREE1NDIxMDEwMgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDEzIE9jdCAyMDE3IDE4OjMzOjA1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODEzNDQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTMgT2N0IDIwMTcgMTg6MzM6MDUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgxMjcxIGludm9rZWQgYnkgdWlkIDUwMCk7IDEzIE9jdCAyMDE3IDE4OjMzOjA1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODEyNTUgaW52b2tlZCBieSB1aWQgOTkpOyAxMyBPY3QgMjAxNyAxODozMzowNSAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAxMyBPY3QgMjAxNyAxODozMzowNSArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDdFN0Q2MUEwNjg1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAxMyBPY3QgMjAxNyAxODozMzowMyArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogZGVwZW5kZW5jeTpnby1vZmZsaW5lIGJyb2tlbj8KUmVmZXJlbmNlczogPDQ5NTk1MjJBLTIwOTAtNDIzOS04MjMzLUUzMjAwMERFOUE1QkBhcGFjaGUub3JnPgogPDM5ODA3NzMuTWVqR0FhQjFxb0BnaWdhPiA8RDJGRjBGNjYtRjc4RC00MzI4LTlCMjktNTM0QjlFMUZDMjAzQGFwYWNoZS5vcmc+CkRhdGU6IEZyaSwgMTMgT2N0IDIwMTcgMjA6MzM6MDEgKzAyMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogUXVvdGVkLVByaW50YWJsZQpGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTcxOGhibDFrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkluLVJlcGx5LVRvOiA8RDJGRjBGNjYtRjc4RC00MzI4LTlCMjktNTM0QjlFMUZDMjAzQGFwYWNoZS5vcmc+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKT24gU3VuLCAwOCBPY3QgMjAxNyAxNTozNzo1NCArMDIwMCwgQmVuZWRpa3QgUml0dGVyIDxicml0dGVyQGFwYWNoZS5vcmc+PQogID0KCndyb3RlOgoKPiBIZWxsbyBIZXJ2PUMzPUE5Cj4KPj4gQW0gMDQuMTAuMjAxNyB1bSAwMTowMSBzY2hyaWViIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlPQouZnI+Ogo+Pgo+PiB0cnlpbmcgbXkgY2hhbmNlLCBiZWNhdXNlIHlvdSBwcmVwYXJlZCBhIHBlcmZlY3QgZGVtbyB0aGVuIHdlIHNob3VsZCA9CmJlICA9Cgo+PiBhYmxlCj4+IHRvIGZpbmQgd2hlcmUgdGhlIGlzc3VlIGlzLi4uCj4+Cj4+IEhlcmUgYXJlIG15IGZpbmRpbmdzOgo+PiBtdm4gZGVwZW5jZW5keTpnby1vZmZsaW5lIG91dHB1dCBmb3IgbWF2ZW4tcmVzb3VyY2VzLXBsdWdpbjoKPj4KPj4gW0lORk9dIFBsdWdpbiBSZXNvbHZlZDogbWF2ZW4tcmVzb3VyY2VzLXBsdWdpbi0yLjYuamFyCj4+IFtJTkZPXSAgICAgUGx1Z2luIERlcGVuZGVuY3kgUmVzb2x2ZWQ6IG1hdmVuLXBsdWdpbi1hcGktMi4wLjYuamFyCj4+IFtJTkZPXSAgICAgUGx1Z2luIERlcGVuZGVuY3kgUmVzb2x2ZWQ6IG1hdmVuLXByb2plY3QtMi4wLjYuamFyCj4+IFtJTkZPXSAgICAgUGx1Z2luIERlcGVuZGVuY3kgUmVzb2x2ZWQ6IG1hdmVuLWNvcmUtMi4wLjYuamFyCj4+IFtJTkZPXSAgICAgUGx1Z2luIERlcGVuZGVuY3kgUmVzb2x2ZWQ6IG1hdmVuLWFydGlmYWN0LTIuMC42Lmphcgo+PiBbSU5GT10gICAgIFBsdWdpbiBEZXBlbmRlbmN5IFJlc29sdmVkOiBtYXZlbi1zZXR0aW5ncy0yLjAuNi5qYXIKPj4gW0lORk9dICAgICBQbHVnaW4gRGVwZW5kZW5jeSBSZXNvbHZlZDogbWF2ZW4tbW9kZWwtMi4wLjYuamFyCj4+IFtJTkZPXSAgICAgUGx1Z2luIERlcGVuZGVuY3kgUmVzb2x2ZWQ6IG1hdmVuLW1vbml0b3ItMi4wLjYuamFyCj4+IFtJTkZPXSAgICAgUGx1Z2luIERlcGVuZGVuY3kgUmVzb2x2ZWQ6ICA9Cgo+PiBwbGV4dXMtY29udGFpbmVyLWRlZmF1bHQtMS4wLWFscGhhLTktCj4+IHN0YWJsZS0xLmphcgo+PiBbSU5GT10gICAgIFBsdWdpbiBEZXBlbmRlbmN5IFJlc29sdmVkOiBwbGV4dXMtdXRpbHMtMi4wLjUuamFyCj4+IFtJTkZPXSAgICAgUGx1Z2luIERlcGVuZGVuY3kgUmVzb2x2ZWQ6IG1hdmVuLWZpbHRlcmluZy0xLjEuamFyCj4+IFtJTkZPXSAgICAgUGx1Z2luIERlcGVuZGVuY3kgUmVzb2x2ZWQ6IHBsZXh1cy1pbnRlcnBvbGF0aW9uLTEuMTMuamFyCj4+Cj4+Cj4+IHRoZW4gb24gdGhlIGZhaWx1cmU6IG12biAtWCAtbyBjb21waWxlCj4+Cj4+IFtJTkZPXSAtLS0gbWF2ZW4tcmVzb3VyY2VzLXBsdWdpbjoyLjY6cmVzb3VyY2VzIChkZWZhdWx0LXJlc291cmNlcykgQD0KCj4+IGRlcGVuZGVuY3ktcGx1Z2luLWJ1ZyAtLS0KPj4gW0RFQlVHXSBVc2luZyBtaXJyb3IgY2VudHJhbCAgPQoKPj4gKGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MS9uZXh1cy9jb250ZW50L2dyb3Vwcy8KPj4gcHVibGljKSBmb3IgY2VudHJhbCAoaHR0cDovL3JlcG8xLm1hdmVuLm9yZy9tYXZlbjIpLgo+PiBbV0FSTklOR10gVGhlIFBPTSBmb3Igb3JnLmFwYWNoZS5tYXZlbjptYXZlbi1jb3JlOmphcjoyLjAuNiBpcyBtaXNzaW49CmcsICA9Cgo+PiBubwo+PiBkZXBlbmRlbmN5IGluZm9ybWF0aW9uIGF2YWlsYWJsZQo+PiBbV0FSTklOR10gVGhlIFBPTSBmb3Igb3JnLmFwYWNoZS5tYXZlbjptYXZlbi1tb25pdG9yOmphcjoyLjAuNiBpcyAgPQoKPj4gbWlzc2luZywgbm8KPj4gZGVwZW5kZW5jeSBpbmZvcm1hdGlvbiBhdmFpbGFibGUKPj4gW1dBUk5JTkddIFRoZSBQT00gZm9yIG9yZy5jb2RlaGF1cy5wbGV4dXM6cGxleHVzLXV0aWxzOmphcjoyLjAuNSBpcyAgPQoKPj4gbWlzc2luZywKPj4gbm8gZGVwZW5kZW5jeSBpbmZvcm1hdGlvbiBhdmFpbGFibGUKPj4gW1dBUk5JTkddIFRoZSBQT00gZm9yIG9yZy5hcGFjaGUubWF2ZW4uc2hhcmVkOm1hdmVuLWZpbHRlcmluZzpqYXI6MS4xPQogaXMKPj4gbWlzc2luZywgbm8gZGVwZW5kZW5jeSBpbmZvcm1hdGlvbiBhdmFpbGFibGUKPj4gW1dBUk5JTkddIFRoZSBQT00gZm9yIG9yZy5jb2RlaGF1cy5wbGV4dXM6cGxleHVzLWludGVycG9sYXRpb246amFyOjEuPQoxMyAgPQoKPj4gaXMKPj4gbWlzc2luZywgbm8gZGVwZW5kZW5jeSBpbmZvcm1hdGlvbiBhdmFpbGFibGUKPj4gW0RFQlVHXSBEZXBlbmRlbmN5IGNvbGxlY3Rpb24gc3RhdHM6IHtDb25mbGljdE1hcmtlci5hbmFseXplVGltZT0zRDAsPQoKPj4gQ29uZmxpY3RNYXJrZXIubWFya1RpbWU9M0QwLCBDb25mbGljdE1hcmtlci5ub2RlQ291bnQ9M0Q0MSwKPj4gQ29uZmxpY3RJZFNvcnRlci5ncmFwaFRpbWU9M0QwLCBDb25mbGljdElkU29ydGVyLnRvcHNvcnRUaW1lPTNEMCwKPj4gQ29uZmxpY3RJZFNvcnRlci5jb25mbGljdElkQ291bnQ9M0QxOCwgID0KCj4+IENvbmZsaWN0SWRTb3J0ZXIuY29uZmxpY3RJZEN5Y2xlQ291bnQ9M0QwLAo+PiBDb25mbGljdFJlc29sdmVyLnRvdGFsVGltZT0zRDEsIENvbmZsaWN0UmVzb2x2ZXIuY29uZmxpY3RJdGVtQ291bnQ9M0Q9CjM4LAo+PiBEZWZhdWx0RGVwZW5kZW5jeUNvbGxlY3Rvci5jb2xsZWN0VGltZT0zRDU4LAo+PiBEZWZhdWx0RGVwZW5kZW5jeUNvbGxlY3Rvci50cmFuc2Zvcm1UaW1lPTNEMX0KPj4gW0RFQlVHXSBvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM6bWF2ZW4tcmVzb3VyY2VzLXBsdWdpbjpqYXI6Mi42Ogo+PiBbREVCVUddICAgIG9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tcGx1Z2luLWFwaTpqYXI6Mi4wLjY6Y29tcGlsZQo+PiBbREVCVUddICAgIG9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tcHJvamVjdDpqYXI6Mi4wLjY6Y29tcGlsZQo+PiBbREVCVUddICAgICAgIG9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tcHJvZmlsZTpqYXI6Mi4wLjY6Y29tcGlsZQo+PiBbREVCVUddICAgICAgIG9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tYXJ0aWZhY3QtbWFuYWdlcjpqYXI6Mi4wLjY6Y29tcGk9CmxlCj4+IFtERUJVR10gICAgICAgICAgID0KCj4+IG9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tcmVwb3NpdG9yeS1tZXRhZGF0YTpqYXI6Mi4wLjY6Y29tcGlsZQo+PiBbREVCVUddICAgICAgIG9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tcGx1Z2luLXJlZ2lzdHJ5OmphcjoyLjAuNjpjb21waWw9CmUKPj4gW0RFQlVHXSAgICBvcmcuYXBhY2hlLm1hdmVuOm1hdmVuLWNvcmU6amFyOjIuMC42OmNvbXBpbGUKPj4gW0RFQlVHXSAgICBvcmcuYXBhY2hlLm1hdmVuOm1hdmVuLWFydGlmYWN0OmphcjoyLjAuNjpjb21waWxlCj4+IFtERUJVR10gICAgb3JnLmFwYWNoZS5tYXZlbjptYXZlbi1zZXR0aW5nczpqYXI6Mi4wLjY6Y29tcGlsZQo+PiBbREVCVUddICAgIG9yZy5hcGFjaGUubWF2ZW46bWF2ZW4tbW9kZWw6amFyOjIuMC42OmNvbXBpbGUKPj4gW0RFQlVHXSAgICBvcmcuYXBhY2hlLm1hdmVuOm1hdmVuLW1vbml0b3I6amFyOjIuMC42OmNvbXBpbGUKPj4gW0RFQlVHXSAgICBvcmcuY29kZWhhdXMucGxleHVzOnBsZXh1cy1jb250YWluZXItZGVmYXVsdDpqYXI6MS4wLWFscGhhPQotOS0KPj4gc3RhYmxlLTE6Y29tcGlsZQo+PiBbREVCVUddICAgICAgIGp1bml0Omp1bml0OmphcjozLjguMTpjb21waWxlCj4+IFtERUJVR10gICAgICAgY2xhc3N3b3JsZHM6Y2xhc3N3b3JsZHM6amFyOjEuMS1hbHBoYS0yOmNvbXBpbGUKPj4gW0RFQlVHXSAgICBvcmcuY29kZWhhdXMucGxleHVzOnBsZXh1cy11dGlsczpqYXI6Mi4wLjU6Y29tcGlsZQo+PiBbREVCVUddICAgIG9yZy5hcGFjaGUubWF2ZW4uc2hhcmVkOm1hdmVuLWZpbHRlcmluZzpqYXI6MS4xOmNvbXBpbGUKPj4gW0RFQlVHXSAgICBvcmcuY29kZWhhdXMucGxleHVzOnBsZXh1cy1pbnRlcnBvbGF0aW9uOmphcjoxLjEzOmNvbXBpbGUKPj4KPj4KPj4gQXMgeW91IGNhbiBzZWUsIHRoZSBtaXNzaW5nIGZpbGVzIG1hdmVuLXByb2ZpbGUtMi4wLjYuamFyLCAgPQoKPj4gbWF2ZW4tYXJ0aWZhY3QtCj4+IG1hbmFnZXItMi4wLjYuamFyLCBtYXZlbi1yZXBvc2l0b3J5LW1ldGFkYXRhLTIuMC42LmphciwgbWF2ZW4tcGx1Z2luLT0KCj4+IHJlZ2lzdHJ5LTIuMC42LmphciBhbmQgY2xhc3N3b3JsZHMtMS4xLWFscGhhLTIuamFyIGFyZSBpbiB0aGUgID0KCj4+IG1hdmVuLXJlc291cmNlcy0KPj4gcGx1Z2luIGVmZmVjdGl2ZSBkZXBlbmRlbmNpZXMgYnV0IG5vdCBkZXRlY3RlZCBieSBkZXBlbmRlbmN5IHBsdWdpbgo+Pgo+Pgo+PiBUaGVuIHlvdSdyZSByaWdodCwgaXQncyBhIGRlcGVuZGVuY3kgcGx1Z2luIGJ1Zy4KPj4KPj4gSSByZW1hcmtlZCB0aGF0IHRoZSBwbHVnaW4gdmVyc2lvbiB1c2VkIHdhcyAyLjggYnV0IG5vdCB0aGUgbGF0ZXN0IDMuPQowLjIKPj4KPj4gVGhlbiBJIGFkZGVkIGEgcGx1Z2luTWFuYWdlbWVudCBzZWN0aW9uIHRvIHNlbGVjdCB2ZXJzaW9uIDMuMC4yIGFuZCAgPQoKPj4gcmUtcmFuIHRoZQo+PiB0ZXN0OiB5b3UnbGwgc2VlIHRoZSBvdXRwdXQgaXMgY29tcGxldGVseSBkaWZmZXJlbnQuCj4+Cj4+IEFuZCB0aGVyZSBpcyBubyBpc3N1ZSBhbnkgbW9yZQo+Cj4gVGhhbmsgeW91IHNvIG11Y2gsIHlvdSB0b29rIHRoZSB0aW1lIHRvIGludmVzdGlnYXRlIHRoaXMgaXNzdWUhIFJlYWxseT0KICA9Cgo+IG11Y2ggYXBwcmVjaWF0ZWQuIE5vdyBJIHdvbmRlciwgd2h5IE1hdmVuIHVzZXMgYW4gb3V0ZGF0ZWQgdmVyc2lvbiBvZiA9CiA9Cgo+IHRoZSBkZXBlbmRlbmN5IHBsdWdpbi4gSXMgdGhpcyBhIHByb2JsZW0gd2l0aCB0aGUgc3VwZXIgcG9tPwo+Cj4gRnVydGhlcm1vcmUgST1FMj04MD05OXZlIG5vdGljZWQsIHRoYXQgbXZuIC1vIHRlc3Qgc3RpbGwgZG9lcyBub3Qgd29yaz0KLCBiZWNhdXNlICA9Cgo+IHNvbWUgc3VyZWZpcmUgZGVwZW5kZW5jaWVzIGFyZSBtaXNzaW5nOgo+Cj4gW0VSUk9SXSBGYWlsZWQgdG8gZXhlY3V0ZSBnb2FsICA9Cgo+IG9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczptYXZlbi1zdXJlZmlyZS1wbHVnaW46Mi4xMi40OnRlc3QgID0KCj4gKGRlZmF1bHQtdGVzdCkgb24gcHJvamVjdCBkZXBlbmRlbmN5LXBsdWdpbi1idWc6IFVuYWJsZSB0byBnZW5lcmF0ZSAgPQoKPiBjbGFzc3BhdGg6ICA9Cgo+IG9yZy5hcGFjaGUubWF2ZW4uYXJ0aWZhY3QucmVzb2x2ZXIuTXVsdGlwbGVBcnRpZmFjdHNOb3RGb3VuZEV4Y2VwdGlvbjo9CiAgPQoKPiBNaXNzaW5nOgo+IFtFUlJPUl0gLS0tLS0tLS0tLQo+IFtFUlJPUl0gMSkgb3JnLmFwYWNoZS5tYXZlbi5zdXJlZmlyZTpzdXJlZmlyZS1qdW5pdDM6amFyOjIuMTIuNAo+IFtFUlJPUl0KPiBbRVJST1JdIFRyeSBkb3dubG9hZGluZyB0aGUgZmlsZSBtYW51YWxseSBmcm9tIHRoZSBwcm9qZWN0IHdlYnNpdGUuCj4gW0VSUk9SXQo+IFtFUlJPUl0gVGhlbiwgaW5zdGFsbCBpdCB1c2luZyB0aGUgY29tbWFuZDoKPiBbRVJST1JdIG12biBpbnN0YWxsOmluc3RhbGwtZmlsZSAtRGdyb3VwSWQ9M0RvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlPQogID0KCj4gLURhcnRpZmFjdElkPTNEc3VyZWZpcmUtanVuaXQzIC1EdmVyc2lvbj0zRDIuMTIuNCAtRHBhY2thZ2luZz0zRGphciAgPQoKPiAtRGZpbGU9M0QvcGF0aC90by9maWxlCj4gW0VSUk9SXQo+IFtFUlJPUl0gQWx0ZXJuYXRpdmVseSwgaWYgeW91IGhvc3QgeW91ciBvd24gcmVwb3NpdG9yeSB5b3UgY2FuIGRlcGxveSA9CiA9Cgo+IHRoZSBmaWxlIHRoZXJlOgo+IFtFUlJPUl0gbXZuIGRlcGxveTpkZXBsb3ktZmlsZSAtRGdyb3VwSWQ9M0RvcmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlICA9Cgo+IC1EYXJ0aWZhY3RJZD0zRHN1cmVmaXJlLWp1bml0MyAtRHZlcnNpb249M0QyLjEyLjQgLURwYWNrYWdpbmc9M0RqYXIgID0KCj4gLURmaWxlPTNEL3BhdGgvdG8vZmlsZSAtRHVybD0zRFt1cmxdIC1EcmVwb3NpdG9yeUlkPTNEW2lkXQo+IFtFUlJPUl0KPiBbRVJST1JdIFBhdGggdG8gZGVwZW5kZW5jeToKPiBbRVJST1JdIDEpIGR1bW15OmR1bW15OmphcjoxLjAKPiBbRVJST1JdIDIpIG9yZy5hcGFjaGUubWF2ZW4uc3VyZWZpcmU6c3VyZWZpcmUtanVuaXQzOmphcjoyLjEyLjQKPiBbRVJST1JdCj4gW0VSUk9SXSAtLS0tLS0tLS0tCj4gW0VSUk9SXSAxIHJlcXVpcmVkIGFydGlmYWN0IGlzIG1pc3NpbmcuCj4gW0VSUk9SXQo+IFtFUlJPUl0gZm9yIGFydGlmYWN0Ogo+IFtFUlJPUl0gZHVtbXk6ZHVtbXk6amFyOjEuMAo+IFtFUlJPUl0KPiBbRVJST1JdIGZyb20gdGhlIHNwZWNpZmllZCByZW1vdGUgcmVwb3NpdG9yaWVzOgo+IFtFUlJPUl0gY2VudHJhbCAoaHR0cHM6Ly9yZXBvLm1hdmVuLmFwYWNoZS5vcmcvbWF2ZW4yLCByZWxlYXNlcz0zRHRydWU9CiwgID0KCj4gc25hcHNob3RzPTNEZmFsc2UpCj4gW0VSUk9SXSAtPiBbSGVscCAxXQo+IFtFUlJPUl0KPiBbRVJST1JdIFRvIHNlZSB0aGUgZnVsbCBzdGFjayB0cmFjZSBvZiB0aGUgZXJyb3JzLCByZS1ydW4gTWF2ZW4gd2l0aCB0PQpoZSAgPQoKPiAtZSBzd2l0Y2guCj4gW0VSUk9SXSBSZS1ydW4gTWF2ZW4gdXNpbmcgdGhlIC1YIHN3aXRjaCB0byBlbmFibGUgZnVsbCBkZWJ1ZyBsb2dnaW5nLj0KCj4gW0VSUk9SXQo+IFtFUlJPUl0gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGVycm9ycyBhbmQgcG9zc2libGUgc29sdXRpb25zLCA9CiA9Cgo+IHBsZWFzZSByZWFkIHRoZSBmb2xsb3dpbmcgYXJ0aWNsZXM6Cj4gW0VSUk9SXSBbSGVscCAxXSAgPQoKPiBodHRwOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvTUFWRU4vTW9qb0V4ZWN1dGlvbkV4Y2VwdGlvPQpuCj4KPiBTaW5jZSB0aGVyZSBhcmUgb25seSBhIGZldyBkZXBlbmRlbmNpZXMgbWlzc2luZywgSSB3aWxsIHJ1biB0ZXN0IG5vdCBpPQpuICA9Cgo+IG9mZmxpbmUgbW9kdXMgb24gbXkgQ0kgc2VydmVyLiBCdXQgSSB3b25kZXIgd2hldGhlciB0aGlzIGlzIGEgYnVnLgo+Cj4gUmVnYXJkcywKPiBCZW5lZGlrdAo+CgpJJ3ZlIHNlZW4gc29tZSBkaXJ0eSB0cmlja3MgaW5zaWRlIHN1cmVmaXJlIGNvZGUgdG8gZm9yY2UgZG93bmxvYWRzIGJ5ICA9CgpnZW5lcmF0aW5nIGEgZHVtbXkgamFyLiBPbmNlIHdlIG1vdmUgdG8gc3VyZWZpcmUtMy4wIChhbmQgZHJvcCBNMiAgPQoKc3VwcG9ydCksIHdlIHNob3VsZCBiZSBhYmxlIHRvIHJlbW92ZSB0aGF0IG9sZCBjb2RlIGFuZCBkbyBpdCBwcm9wZXJseS4KClJvYmVydAoKPj4KPj4gUmVnYXJkcywKPj4KPj4gSGVydj1DMz1BOQo+Pgo+PiBMZSBtZXJjcmVkaSAyMCBzZXB0ZW1icmUgMjAxNywgMjI6NDg6MTUgQ0VTVCBCZW5lZGlrdCBSaXR0ZXIgYSA9QzM9QTk9CmNyaXQgOgo+Pj4gSGksCj4+Pgo+Pj4gYXMgZmFyIGFzIEkgdW5kZXJzdGFuZCBpdCBzaG91bGQgYmUgcG9zc2libGUgdG8gY2FsbCBtdm4KPj4+IGRlcGVuZGVuY3k6Z28tb2ZmbGluZSBhbmQgZnJvbSB0aGVyZSBvbiB3b3JrIGluIG9mZmxpbmUgbW9kZSAobXZuIC1vPQopLgo+Pj4gST1FMj04MD05OXZlIHB1dCBhIG1pbmltYWwgZXhhbXBsZSB0b2dldGhlciBbMV0gdGhhdCBkZW1vbnN0cmF0ZXMgdGg9CmF0IHRoaXMKPj4+IGN1cnJlbnRseSBkb2VzIG5vdCB3b3JrLiBBbSBJIG1pc3NpbmcgYW55dGhpbmc/Cj4+Pgo+Pj4gVGhhbmsgeW91IQo+Pj4gQmVuZWRpa3QKPj4+Cj4+PiBbMV0gaHR0cHM6Ly9naXRodWIuY29tL2JyaXR0ZXIvZGVwZW5kZW5jeS1wbHVnaW4tYnVnCj4+Pgo+Pj4KPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotCj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pgo+Pgo+Pgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cgo+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MjQ2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBPY3QgMTUgMTU6NTQ6MjggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjQ2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEIzRTgzQ0EyNQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDE1IE9jdCAyMDE3IDE1OjU0OjI4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTMzNzggaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgT2N0IDIwMTcgMTU6NTQ6MjMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDEzMzAzIGludm9rZWQgYnkgdWlkIDUwMCk7IDE1IE9jdCAyMDE3IDE1OjU0OjIzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTMyOTIgaW52b2tlZCBieSB1aWQgOTkpOyAxNSBPY3QgMjAxNyAxNTo1NDoyMyAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxNSBPY3QgMjAxNyAxNTo1NDoyMyArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEQ2MDg1MUEwMDE1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxNSBPY3QgMjAxNyAxNTo1NDoyMSArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIFJlcG9ydGluZyBFeGVjIHZlcnNpb24gMS40ClJlZmVyZW5jZXM6IDwzOTgzNjk3LjBIREdQWWNBZkFAZ2lnYT4KRGF0ZTogU3VuLCAxNSBPY3QgMjAxNyAxNzo1NDoxNyArMDIwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBRdW90ZWQtUHJpbnRhYmxlCkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55NzVxZ3JmY2tka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KSW4tUmVwbHktVG86IDwzOTgzNjk3LjBIREdQWWNBZkFAZ2lnYT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgorMQoKT24gRnJpLCAxMyBPY3QgMjAxNyAwMjowOTo1OCArMDIwMCwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuPQpmcj4gID0KCndyb3RlOgoKPiBIaSwKPgo+IFdlIHNvbHZlZCAzIGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4gcHJvamVjdElkPTNEMTIzMTc5MjImdmVyc2lvbj0zRDEyMzM4NjIxCj4KPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3Mgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzIvb3JnL2FwYWM9CmhlLwo+IG1hdmVuL3JlcG9ydGluZy9tYXZlbi1yZXBvcnRpbmctZXhlYy8xLjQvbWF2ZW4tcmVwb3J0aW5nLWV4ZWMtMS40LXNvdXI9CmNlLQo+IHJlbGVhc2UuemlwCj4KPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBtYXZlbi1yZXBvcnRpbmctZXhlYy0xLjQtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6Cj4gYzFmM2MxMmEyNGVjNDUxM2Y1YWRiYjQxNTJlYzZhMzE0ZjBjNGEyYgo+Cj4gU3RhZ2luZyBzaXRlOgo+IGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3NoYXJlZC1hcmNoaXZlcy9tYXZlbi1yZXBvcnRpbmctZXhlYy1MQVRFU1QvCj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bT0KbAo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4gICAgWyBdICsxCj4gICAgIFsgXSArMAo+ICAgICBbIF0gLTEKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MTEwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBTZXAgMjggMTg6NTM6MTMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTEwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDkwOTc5MTAzMkEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAyOCBTZXAgMjAxNyAxODo1MzoxMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE5NTI0IGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IFNlcCAyMDE3IDE4OjUzOjEzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxOTQzNiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBTZXAgMjAxNyAxODo1MzoxMyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE5NDI1IGludm9rZWQgYnkgdWlkIDk5KTsgMjggU2VwIDIwMTcgMTg6NTM6MTMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMjggU2VwIDIwMTcgMTg6NTM6MTMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmwgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCA2NUQ3OTFBMDA0MAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgMjggU2VwIDIwMTcgMTg6NTM6MTIgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBEb3hpYSBTaXRldG9vbHMgdmVyc2lvbiAxLjcuNQpSZWZlcmVuY2VzOiA8b3AueTY2cnpsbHprZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkRhdGU6IFRodSwgMjggU2VwIDIwMTcgMjA6NTM6MTEgKzAyMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTdhaGV4ZHJrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkluLVJlcGx5LVRvOiA8b3AueTY2cnpsbHprZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKKzEKCk9uIFR1ZSwgMjYgU2VwIDIwMTcgMjA6NTE6MTEgKzAyMDAsIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4gIAp3cm90ZToKCj4gSGksCj4KPiBXZSBzb2x2ZWQgNSBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMxNzMyMCZ2ZXJzaW9uPTEyMzM4OTgyJnN0eWxlTmFtZT1UZXh0Cj4KPiBUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9cHJvamVjdCUyMCUzRCUyMDEyMzE3MzIwJTIwQU5EJTIwc3RhdHVzJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDCj4KPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3MC8KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzcwL29yZy9hcGFjaGUvbWF2ZW4vZG94aWEvZG94aWEtc2l0ZXRvb2xzLzEuNy41L2RveGlhLXNpdGV0b29scy0xLjcuNS1zb3VyY2UtcmVsZWFzZS56aXAKPgo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IGRveGlhLXNpdGV0b29scy0xLjcuNS1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogIAo+IDlhYjg3NDEyMGJkNjBmNTMyYzE2N2E0MzBkOGUwNzdjMjkxNDAxNmQKPgo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZG94aWEvZG94aWEtc2l0ZXRvb2xzLWFyY2hpdmVzL2RveGlhLXNpdGV0b29scy1MQVRFU1QvCj4KPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+Cj4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPgo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQxMTItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIFNlcCAyOSAwNzozNToyMyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxMTItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRUJGRkZDODA3Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMjkgU2VwIDIwMTcgMDc6MzU6MjMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzOTM4NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOSBTZXAgMjAxNyAwNzozNToyMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzkyNDUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjkgU2VwIDIwMTcgMDc6MzU6MjMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzOTIyOSBpbnZva2VkIGJ5IHVpZCA5OSk7IDI5IFNlcCAyMDE3IDA3OjM1OjIzIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDI5IFNlcCAyMDE3IDA3OjM1OjIzICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgRjNFRkQxQTAwNDQ7CglGcmksIDI5IFNlcCAyMDE3IDA3OjM1OjIxICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiVGlib3IgRGlnYW5hIChKSVJBKSIgPGppcmFAYXBhY2hlLm9yZz4sIGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFJlOiBbamlyYV0gKFNVUkVGSVJFLTE0MjQpIGphdmF4LnRyYW5zYWN0aW9uLlRyYW5zYWN0aW9uTWFuYWdlciBub3QKIHZpc2libGUgd2l0aCBKYXZhOQpSZWZlcmVuY2VzOiA8SklSQS4xMzEwNTAxNi4xNTA2NDEzNzY4MDAwQEF0bGFzc2lhbi5KSVJBPgogPEpJUkEuMTMxMDUwMTYuMTUwNjQxMzc2ODA0NUBqaXJhLWx3LXVzLmFwYWNoZS5vcmc+CiA8SklSQS4xMzEwNTAxNi4xNTA2NDEzNzY4MDAwLjIzMDQwNi4xNTA2NjMzNjYwMzE5QEF0bGFzc2lhbi5KSVJBPgpEYXRlOiBGcmksIDI5IFNlcCAyMDE3IDA5OjM1OjIxICswMjAwCkNjOiAiU3RlcGhhbmUgTmljb2xsIiA8c3RlcGhhbmUubmljb2xsQGdtYWlsLmNvbT4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogUXVvdGVkLVByaW50YWJsZQpGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTdiZ283bXlrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkluLVJlcGx5LVRvOiA8SklSQS4xMzEwNTAxNi4xNTA2NDEzNzY4MDAwLjIzMDQwNi4xNTA2NjMzNjYwMzE5QEF0bGFzc2lhbi5KSVJBPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCkhpIFRpYm9yLAoKbW92aW5nIHRoaXMgdG8gdGhlIGRldi1saXN0LCBJIGRvbid0IHRoaW5rIEpJUkEgaXMgdGhlIHJpZ2h0IHBsYWNlIGZvciAgPQoKdGhpcyBraW5kIG9mIGRpc2N1c3Npb25zLgoKYnEuIFRoaXMgaXMgbm90IGEgcmVncmVzc2lvbiBhbmQgbm90IGEgYnVnIGluIFN1cmVmaXJlLgoKU29ycnksIEkgZG9uJ3QgYWdyZWUgd2l0aCB5b3UuIFRoZSBKYXZhOCBwcm9qZWN0IHByb3ZpZGVkIGJ5IFN0PUU5cGhhbmUgPQogPQoKd29ya3Mgd2l0aCAyLjIwLjAsIGJ1dCBub3Qgd2l0aCAyLjIwLjEsIHNvIGZvciBtZSB0aGlzIGlzIGNsZWFybHkgYSAgPQoKcmVncmVzc2lvbiBpbiBzdXJlZmlyZS4KCldlIGFyZSBhbGwgYXdhcmUgdGhhdCB0aGUgbW9kdWxhcml6YXRpb24gaW4gSmF2YSA5IGNhbiBicmVhayB0aGluZ3MsIGFuZD0KICA9Cgp5ZXMgc29tZXRpbWVzIHRoYXQgY2FuIGJlIHF1aXRlIGZydXN0cmF0aW5nLiBJIHRoaW5rIGl0IGlzIHRoZSB0YXNrIG9mICA9CgpNYXZlbiB0byBzb2x2ZSB0aGVzZSBraW5kIG9mIGlzc3VlcyB3aGVyZSBwb3NzaWJsZS4gTWF2ZW4gc2hvdWxkIHNvbHZlIHQ9CmhlICA9CgpoYXJkIHBhcnRzIGZvciB1c2luZyBKYXZhIHRvIGxldCB1c2VycyBleHBlcmllbmNlIGEgZ3JlYXQgd2F5IHRvIGRldmVsb3A9CiAgPQoKd2l0aCBKYXZhLgoKSSBkb24ndCBtaW5kIHBpY2tpbmcgdGhpcyBpc3N1ZSB1cCBhbmQgdHJ5IHRvIGdldCByaWQgb2YgdGhlICA9CgoiLS1hZGQtbW9kdWxlcyBqYXZhLnNlLmVlIiAodGhpcyBpc3N1ZSBqdXN0IGNvbmZpcm1zIHRvIG1lIGl0IGlzIGluZGVlZCA9CmEgID0KCmhhY2spLiBBbGFuIHBvaW50ZWQgbWUgdG8gc29tZSBkZXBlbmRlbmNpZXMgd2Ugc2hvdWxkIGFkZCwgd2hpY2ggc2hvdWxkID0KID0KCnNvbHZlIHRoaXMgaXNzdWUuCgpSb2JlcnQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDE5Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gT2N0ICA4IDE0OjE2OjM0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDE5Mi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFN0U2NDEwNTk4Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgIDggT2N0IDIwMTcgMTQ6MTY6MzMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3NzkzMSBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IE9jdCAyMDE3IDE0OjE2OjMzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NzgzOCBpbnZva2VkIGJ5IHVpZCA1MDApOyA4IE9jdCAyMDE3IDE0OjE2OjMzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzc4MTggaW52b2tlZCBieSB1aWQgOTkpOyA4IE9jdCAyMDE3IDE0OjE2OjMzIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDA4IE9jdCAyMDE3IDE0OjE2OjMzICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgMDA5QzkxQTAyQ0Q7CglTdW4sICA4IE9jdCAyMDE3IDE0OjE2OjMxICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiQXBhY2hlIE1hdmVuIERldiIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBbUkVTVUxUXSBbVk9URV0gUmVsZWFzZSBBcGFjaGUgRG94aWEgU2l0ZXRvb2xzIHZlcnNpb24gMS43LjUKUmVmZXJlbmNlczogPG9wLnk2NnJ6bGx6a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpEYXRlOiBTdW4sIDA4IE9jdCAyMDE3IDE2OjE2OjI2ICswMjAwCkNjOiAiTWF2ZW4gUHJvamVjdCBNYW5hZ2VtZW50IENvbW1pdHRlZSBMaXN0IiA8cHJpdmF0ZUBtYXZlbi5hcGFjaGUub3JnPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBRdW90ZWQtUHJpbnRhYmxlCkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55N3NtOW9ramtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KSW4tUmVwbHktVG86IDxvcC55NjZyemxsemtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpIaSwKClRoZSB2b3RlIGhhcyBwYXNzZWQgd2l0aCB0aGUgZm9sbG93aW5nIHJlc3VsdDoKCisxIDogUm9iZXJ0IFNjaG9sdGUsIE1pY2hhZWwgT3NpcG92LCBLYXJsIEhlaW56IE1hcmJhaXNlLCBIZXJ2PUU5IEJPVVRFTT0KWQoKUE1DIHF1b3J1bTogcmVhY2hlZAoKSSB3aWxsIHByb21vdGUgdGhlIGFydGlmYWN0cyB0byB0aGUgY2VudHJhbCByZXBvLgoKT24gVHVlLCAyNiBTZXAgMjAxNyAyMDo1MToxMSArMDIwMCwgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPQo+ICA9Cgp3cm90ZToKCj4gSGksCj4KPiBXZSBzb2x2ZWQgNSBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0zRDEyMz0KMTczMjAmdmVyc2lvbj0zRDEyMzM4OTgyJnN0eWxlTmFtZT0zRFRleHQKPgo+IFRoZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlM0QlMjAxMjMxNzMyMCU9CjIwQU5EJTIwc3RhdHVzJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERT0KU0MKPgo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzcwLwo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzAvb3JnL2FwYWM9CmhlL21hdmVuL2RveGlhL2RveGlhLXNpdGV0b29scy8xLjcuNS9kb3hpYS1zaXRldG9vbHMtMS43LjUtc291cmNlLXJlbGVhcz0KZS56aXAKPgo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IGRveGlhLXNpdGV0b29scy0xLjcuNS1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogID0KCj4gOWFiODc0MTIwYmQ2MGY1MzJjMTY3YTQzMGQ4ZTA3N2MyOTE0MDE2ZAo+Cj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9kb3hpYS9kb3hpYS1zaXRldG9vbHMtYXJjaGl2ZXMvZG94aWEtc2l0ZXRvb2w9CnMtTEFURVNULwo+Cj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bT0KbAo+Cj4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPgo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MTkzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBPY3QgIDggMTU6NTQ6MTggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTkzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDI3NjJBMTA4NzUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAgOCBPY3QgMjAxNyAxNTo1NDoxOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg0ODQ4IGludm9rZWQgYnkgdWlkIDUwMCk7IDggT2N0IDIwMTcgMTU6NTQ6MTUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg0NTE3IGludm9rZWQgYnkgdWlkIDUwMCk7IDggT2N0IDIwMTcgMTU6NTQ6MTUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NDQ4NiBpbnZva2VkIGJ5IHVpZCA5OSk7IDggT2N0IDIwMTcgMTU6NTQ6MTUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMDggT2N0IDIwMTcgMTU6NTQ6MTUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmwgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCA1M0IxRTFBMDA1NTsKCVN1biwgIDggT2N0IDIwMTcgMTU6NTQ6MTMgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKRGF0ZTogU3VuLCAwOCBPY3QgMjAxNyAxNzo1NDoxMCArMDIwMApTdWJqZWN0OiBbQU5OXSBBcGFjaGUgTWF2ZW4gRG94aWEgU2l0ZXRvb2xzIDEuNy41IFJlbGVhc2VkClRvOiBhbm5vdW5jZUBtYXZlbi5hcGFjaGUub3JnLCB1c2Vyc0BtYXZlbi5hcGFjaGUub3JnCkNjOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55N3Nyc2tnZmtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpUaGUgQXBhY2hlIE1hdmVuIHRlYW0gaXMgcGxlYXNlZCB0byBhbm5vdW5jZSB0aGUgcmVsZWFzZSBvZiB0aGUgQXBhY2hlICAKTWF2ZW4gRG94aWEgU2l0ZXRvb2xzLCB2ZXJzaW9uIDEuNy41CgpEb3hpYSBTaXRldG9vbHMgaXMgYW4gZXh0ZW5zaW9uIG9mIGJhc2UgRG94aWEgY29tcG9uZW50IHRoYXQgZ2VuZXJhdGVzICAKZWl0aGVyIEhUTUwgc2l0ZXMsIGNvbnNpc3Rpbmcgb2YgZGVjb3JhdGlvbiBhbmQgY29udGVudCB0aGF0IHdhcyBnZW5lcmF0ZWQgIApieSBEb3hpYSwgb3IgZG9jdW1lbnRzIGxpa2UgUlRGIG9yIFBERi4KCkluIGFkZGl0aW9uLCBEb3hpYSBTaXRldG9vbHMgcHJvY2Vzc2VzIGZpbGVzIHdpdGggZXh0cmEgLnZtIGV4dGVuc2lvbiB3aXRoICAKVmVsb2NpdHkuCgpodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZG94aWEvZG94aWEtc2l0ZXRvb2xzL2luZGV4Lmh0bWwKCllvdSBjYW4gZG93bmxvYWQgdGhlIGFwcHJvcHJpYXRlIHNvdXJjZXMgZXRjLiBmcm9tIHRoZSBkb3dubG9hZCBwYWdlOgoKaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2RveGlhL2RveGlhLXNpdGV0b29scy9kb3dubG9hZC5jZ2kKCgpSZWxlYXNlIE5vdGVzIC0gTWF2ZW4gRG94aWEgU2l0ZXRvb2xzIC0gVmVyc2lvbiAxLjcuNQoKKiogQnVnCiAgICAgKiBbRE9YSUFTSVRFVE9PTFMtMTcyXSAtIFdpZHRoLCBoZWlnaHQgYW5kIGJvcmRlciB2YWx1ZXMgbm90IHVzZWQgZm9yICAKYmFubmVyIGRpc3BsYXkKICAgICAqIFtET1hJQVNJVEVUT09MUy0xNzNdIC0gRGVmYXVsdCBza2luIENTUyBtYXZlbi1iYXNlLmNzcyBzZXRzICAKYm9yZGVyOm5vbmUgb24gYWxsIGltYWdlcyB3aXRoIHRhZyBpbWcKICAgICAqIFtET1hJQVNJVEVUT09MUy0xNzVdIC0gY2hhbmdlIFZlbG9jaXR5IGVuZ2luZSBsaW5rcwogICAgICogW0RPWElBU0lURVRPT0xTLTE3N10gLSBVc2Ugb2YgY29tbW9ucy1sYW5nIDIgY2F1c2VzIGZhaWx1cmUgd2l0aCBKREsgIAo5IGIxNzUrCgoqKiBJbXByb3ZlbWVudAogICAgICogW0RPWElBU0lURVRPT0xTLTE3OF0gLSBVcGdyYWRlIHRvIENvbW1vbnMgTGFuZyAzCgoKCkVuam95LAoKLVRoZSBBcGFjaGUgTWF2ZW4gdGVhbQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MTk4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBPY3QgIDggMTg6MzI6MzQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTk4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEI0NjcxMTBDQUIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAgOCBPY3QgMjAxNyAxODozMjozNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg5ODU1IGludm9rZWQgYnkgdWlkIDUwMCk7IDggT2N0IDIwMTcgMTg6MzI6MzQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg5NzgzIGludm9rZWQgYnkgdWlkIDUwMCk7IDggT2N0IDIwMTcgMTg6MzI6MzQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4OTc3MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDggT2N0IDIwMTcgMTg6MzI6MzQgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMDggT2N0IDIwMTcgMTg6MzI6MzQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmwgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCBFOEZFOTFBMDQ4RgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgIDggT2N0IDIwMTcgMTg6MzI6MzIgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IEplbmtpbnMgYW5kIE1hdmVuIDMuMC41IG9yIEpESyA3ClJlZmVyZW5jZXM6IDwxMDU0NDYxNS5CNGhPM1BudkV6QGdpZ2E+IDwzMDY2MzA4LlJaNzZzTVQyYmNAZ2lnYT4KIDxDQStuUG5NeHlRNHRlN3JvNHhNPVhBcmlQdTdoUCtVVTdVWG9TVk12ZkR2UUo5RGk9R3dAbWFpbC5nbWFpbC5jb20+CiA8MTA0NzQ0NzYubDlGSnFGTVBKMkBnaWdhPgogPENBK25Qbk14PTJTSGEraWJUcVRURVNrZVRvbXJETStBYnhrQVVaKytoNVdMWS1IVzd1UUBtYWlsLmdtYWlsLmNvbT4KRGF0ZTogU3VuLCAwOCBPY3QgMjAxNyAyMDozMjoyOSArMDIwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBRdW90ZWQtUHJpbnRhYmxlCkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55N3N5NGZleGtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KSW4tUmVwbHktVG86IDxDQStuUG5NeD0yU0hhK2liVHFUVEVTa2VUb21yRE0rQWJ4a0FVWisraDVXTFktSFc3dVFAbWFpbC5nbWFpbC5jb20+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKT24gU3VuLCAwOCBPY3QgMjAxNyAyMDoyNzoxNyArMDIwMCwgU3RlcGhlbiBDb25ub2xseSAgPQoKPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgoKPiBPbiBTdW4gOCBPY3QgMjAxNyBhdCAxODoyOCwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+PQogd3JvdGU6Cj4KPj4gSSBkb24ndCBnZXQgdGhlIHRlY2huaWNhbCBkZXRhaWxzCj4+IGJ1dCBJSVVDLCB5b3UncmUgYWJsZSB0byBkbyBhIFBvQyB3aXRoIG91ciBhdmFpbGFibGUgZ2l0IHJlcG9zaXRvcmllcz0KIG9mCj4+IEplbmtpbnMgam9iIG1haW50ZW5hbmNlIChlYXN5IGpvYiBjcmVhdGlvbiArIGVhc3kgSmVua2luc2ZpbGUgID0KCj4+IG1haW50ZW5hbmNlKSwKPgo+Cj4gSm9iIGNyZWF0ZWQgYXV0b21hdGljYWxseSBvbmNlIHRoZXJlIGlzIGEgZ2l0IHJlcG8gIHdpdGggYSBicmFuY2ggd2l0aD0KIGEKPiBKZW5raW5zZmlsZSAuIE5vIGh1bWFuIGludGVyYWN0aW9uIHJlcXVpcmVkIGFmdGVyIGBlY2hvCj4gPUUyPTgwPTlDbWF2ZW5Qcm9qZWN0U3RkQnVpbGQoKTs9RTI9ODA9OUQgPiBKZW5raW5zZmlsZSAmJiBnaXQgYWRkIEplbj0Ka2luc2ZpbGUgJiYgZ2l0Cj4gY29tbWl0ID1FMj04MD05Q2FkZCBKZW5raW5zZmlsZT1FMj04MD05RCAgJiYgZ2l0IHB1c2hgCj4KPiBKZW5raW5zZmlsZSBiZWluZyBqdXN0IG9uZSBsaW5lIGBtYXZlblByb2plY3RTdGRCdWlsZGAgb3Igc29tZXRoaW5nIGxpPQprZQo+IHRoYXQuCj4KPiBJcyB0aGF0IGVhc3kgZW5vdWdoPwoKSUlSQyB0aGVyZSBpcyB0aGlzIHByb3Bvc2FsIHRvIGxldCBwb20gbW9kdWxlcyBzdXBwb3J0IGRpcmVjdG9yaWVzLCBwb20gPQogPQoKbG9jYXRpb25zICh0aGVzZSBhcmUgYWxyZWFkeSBzdXBwb3J0ZWQpIGFuZCBTQ00gcmVmZXJlbmNlcy4gTWlnaHQgYmUgID0KCmludGVyZXN0aW5nIGZvciBhbiBhZ2dyZWdhdG9yIHBvbS4KClJvYmVydAoKPgo+IGFuZAo+PiB5b3UncmUgY29uZmlkZW50IHRoYXQgaXQgY2FuIHNjYWxlIHRvIHRoZSBzaXplIHdlJ3JlIGV4cGVjdGluZyB3aGVuICA9Cgo+PiB3ZSdyZQo+PiBzcGxpdHRpbmcgdGhlIGN1cnJlbnQgYWdncmVnYXRvciBzdm4gdG8gbWFueSBzbWFsbCBnaXQgcmVwb3MKPj4KPj4gdGhhdCdzIGl0Pwo+Pgo+PiBSZWdhcmRzLAo+Pgo+PiBIZXJ2PUMzPUE5Cj4+Cj4+IExlIGRpbWFuY2hlIDggb2N0b2JyZSAyMDE3LCAxNjoyMToxMCBDRVNUIFN0ZXBoZW4gQ29ubm9sbHkgYSA9QzM9QTljcj0KaXQgOgo+PiA+IE9uIFN1biA4IE9jdCAyMDE3IGF0IDAzOjU1LCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS49CmZyPiAgPQoKPj4gd3JvdGU6Cj4+ID4gPiBUTERSOyA9M0QKPj4gPiA+IFBlcmhhcHMgd2UgY2FuIHN0YXJ0IHdpdGggMiBwcm9vZnMgb2YgY29uY2VwdDoKPj4gPiA+IDEuIGZ1bGwgZ2l0IGNsb25lICsgSmVua2lucyBqb2JzIGZvciB0aGUgNyBleGlzdGluZyBnaXQgcmVwb3MgKHdpPQp0aCAgPQoKPj4gNgo+PiA+ID4gYWRkaXRpb25hbCBvbmVzIGluIDIgZGF5cykKPj4gPiA+IDIuIGdpdCBzcGxpdCBvZiBvbmUgb2YgdGhlIGFnZ3JlZ2F0b3Igc3ZuIHRydW5rOiBza2lucyBvciAgPQoKPj4gZG94aWEtdG9vbHMKPj4gY2FuCj4+ID4gPiBiZQo+PiA+ID4gZWFzeSBjaG9pY2VzIHNpbmNlIHRoZXkgYXJlIGxpZ2h0LCB3aGVyZSBwbHVnaW5zIG9yIHNoYXJlZCBhcmUgID0KCj4+IHBlcmhhcHMKPj4gdG9vCj4+ID4gPiBoZWF2eS4gVGhlIG9uZSB3b3JraW5nIG9uIHRoaXMgUG9DIHdpbGwgbWFrZSBoaXMgY2hvaWNlCj4+ID4gPgo+PiA+ID4gdGhlbiBtb3JlIGRldGFpbGVkIGFuc3dlciBpbmxpbmUgdGhhdCBsZWFkIHRvIHRoaXMgUG9DcyBwcm9wb3NhbAo+PiA+ID4KPj4gPiA+IFJlZ2FyZHMsCj4+ID4gPgo+PiA+ID4gSGVydj1DMz1BOQo+PiA+ID4KPj4gPiA+IExlIGRpbWFuY2hlIDggb2N0b2JyZSAyMDE3LCAwMDowMjoxMCBDRVNUIFRpYm9yIERpZ2FuYSBhID1DMz1BOWNyPQppdCA6Cj4+ID4gPiA+IEkgZG9uJ3QgdGhpbmsgdGhlIGRldnMgd291bGQgd29yayBvbiBhbGwgYXJ0aWZhY3RzKHByb2plY3RzKSBhID0KID0KCj4+IHRpbWUuCj4+ID4gPgo+PiA+ID4gc3VyZSwgSSB0aGluayBJJ20gb25lIG9mIHRoZSBmZXcgcGVvcGxlIHdvcmtpbmcgb24gbmVhciBldmVyeXRoaW49CmcKPj4gKHdpdGgKPj4gPiA+IHJhcmUKPj4gPiA+IGV4Y2VwdGlvbnMgbGlrZSBTdXJlZmlyZSwgYXMgeW91IG5vdGljZWQgOikgKQo+PiA+ID4gYnV0IGZvciB1c3VhbCBjb250cmlidXRvciwgdGhlcmUgaXMgbm8gaXNzdWUKPj4gPiA+Cj4+ID4gPiBJJ20gbm90IGEgZ2l0IGV4cGVydCwgdGhlbiBJIGRvbid0IGtub3cgaWYgZWFzeSAiZnVsbCBNYXZlbiBjbG9uZT0KIiAgPQoKPj4gaXMKPj4gPiA+IGJldHRlcgo+PiA+ID4gZG9uZSB3aXRoIGEgc2hlbGwgc2NyaXB0IG9yIHNvbWUgZ2l0IG1vZHVsZXMKPj4gPiA+Cj4+ID4gPiA+IElmIHRoZSBuYW1pbmcgY29udmVudGlvbiBvZiByZXBvIGZvciBhIHBsdWdpbiB3b3VsZCBiZSBhcnRpZmFjdD0KSWQsCj4+IGxpa2UKPj4gPiA+ID4gL21hdmVuLWNsZWFuLXBsdWdpbiwgdGhlbiBldmVuIGVhc3kgdG8gZmlndXJlIG91dCB3aGljaCBvbmUgdG8gPQogPQoKPj4gY2xvbmUuCj4+ID4gPiA+IFRoZSBtb3N0IGxpa2VseSB0aGUgZGV2IHdvdWxkIGp1c3QgY2xvbmUgb25lIHJlcG8gc2hlL2hlIGlzCj4+IGludGVyZXN0ZWQKPj4gPiA+ID4gaW4KPj4gPiA+ID4gYXQgdGhlIG1vbWVudCwgaS5lLiByZXBvc2l0b3J5IC9tYXZlbi1jbGVhbi1wbHVnaW4sIGxldCdzIHNheS4KPj4gPiA+ID4gSXQncyBnb29kIHRvIGF2b2lkIGFueSBzaGFyZWQgZmlsZXMgYWNyb3NzIHRoZW0sIGV2ZW4gSSBkb24ndCAgPQoKPj4gdGhpbmsKPj4gZGV2cwo+PiA+ID4gPiBzaGFyZSBzb21lIGluIHN2biB0b2RheS4gVGhlIHJlbGVhc2UgcHJvY2VzcyB3b3VsZCBiZSBxdWl0ZSB1c3U9CmFsLAo+PiBpLmUuCj4+ID4gPgo+PiA+ID4gb25lCj4+ID4gPgo+PiA+ID4gPiByZXBvID0zRCBvbmUgcHJvamVjdCwgYW5kIG5ldyBkZXZzIGFscmVhZHkgaGF2ZSB0aGVzZSBleHBlcmllbmM9CmVzICA9Cgo+PiB3aGljaAo+PiA+ID4KPj4gPiA+IHdpbGwKPj4gPiA+Cj4+ID4gPiA+IGJlIHNpbXBsZSBmb3IgdGhlbSB0byBhZGFwdCBmYXN0ZXIuCj4+ID4gPgo+PiA+ID4gKzEKPj4gPiA+IHRoZSBvbmx5IGRyYXdiYWNrIEkgc2VlIGN1cnJlbnRseSBpcyB0aGF0IHRoZXJlIGlzIG5vIG5hdHVyYWwgID0KCj4+IGdyb3VwaW5nLAo+PiA+ID4gdGhlbgo+PiA+ID4gd2UgaGF2ZSBhIGZsYXQgbGl0IG9mIG5lYXIgMTAwIGdpdCByZXBvcyB3aXRob3V0IHRoZSBjdXJyZW50ICA9Cgo+PiBzdHJ1Y3R1cmUKPj4gPiA+IChwbHVnaW5zLCBzaGFyZWQgY29tcG9uZW50cywgc2tpbnMsIC4uLik6IEkgdGhpbmsgY29tcG9uZW50cyAgPQoKPj4gc3RydWN0dXJlCj4+IGlzCj4+ID4gPiB1c2VmdWwgZm9yIG1haW50ZW5hYmlsaXR5Cj4+ID4gPiBidXQgbm90IHJlYWxseSBhIGNvbXBsZXRlIHNob3dzdG9wcGVyCj4+ID4gPiBhbmQgcGVyaGFwcyB0aGUgIk1hdmVuIGZ1bGwgY2xvbmUiIHRvb2xpbmcgY2FuIHJlLWNyZWF0ZSBzb21lICA9Cgo+PiBncm91cGluZwo+PiB0bwo+PiA+ID4ga2VlcAo+PiA+ID4gdmlzaWJsZSBzdHJ1Y3R1cmUKPj4gPiA+Cj4+ID4gPiBOb3csIHNvbWVvbmUgaGFzIHRvIGtub3cgaG93IHRvIGNyZWF0ZSBwZXItY29tcG9uZW50IGdpdCByZXBvIHdpdD0KaCAgPQoKPj4gdGFncwo+PiA+ID4gKGVpdGhlciBieSByZXdvcmtpbmcgZXhpdGluZyBnaXQgbWlycm9ycywgZWl0aGVyIGJ5IHJlc3RhcnRpbmcgZnI9Cm9tCj4+IHN2biksCj4+ID4gPiBhbmQKPj4gPiA+IHRoYXQncyBub3QgbWUgOikKPj4gPiA+Cj4+ID4gPiBnaXZlbiB0aGUgdm9sdW1lIChhZGRpbmcgNzAgZ2l0IHJlcG9zIGZvciBNYXZlbiksIHdlJ2xsIGhhdmUgdG8gdD0KZWxsCj4+IGluZnJhCj4+ID4gPiBhYm91dCBpdC4KPj4gPiA+Cj4+ID4gPiBUaGVuIHRoZXJlIGlzIHRoZSBKZW5raW5zIGpvYnMgY29uZmlndXJhdGlvbjoKPj4gPiA+IC0gd2UgbmVlZCBlYXN5IEplbmtpbnNmaWxlIGluIGVhY2ggcmVwbwo+PiA+Cj4+ID4gc28gd2UgY3JlYXRlIGEgc2hhcmVkIEdyb292eSBsaWJyYXJ5IGxpa2UgdGhlIEplbmtpbnMgcHJvamVjdCBkb2VzID0KYW5kCj4+IHRoZQo+PiA+IEplbmtpbnNmaWxlIGJlY29tZXMgYGJ1aWxkUGx1Z2luYCBmb3IgYWxsIGV4Y2VwdCBjb3JlCj4+ID4KPj4gPiA+IC0gd2UgbmVlZCBlYXN5IDgwIGpvYnMgY3JlYXRpb24gKG5vLCBJIHdvbid0IG1hbnVhbGx5IGNyZWF0ZSA4MCBqPQpvYnMKPj4gPiA+IHBlcnNvbmFsbHkpCj4+ID4KPj4gPiBTbyBJIHdpbGwgYWRkIFNDTU5hdmlnYXRvciBmdW5jdGlvbmFsaXR5IHRvIHRoZSBBU0YgZ2l0LUplbmtpbnMgcGx1PQpnaW4KPj4gYW5kCj4+ID4gd2UganVzdCBkZWZpbmUgYW4gb3JnLWZvbGRlciBmb3IgTWF2ZW4gYW5kIGFsbCBnaXQgcmVwb3Mgd2l0aCBhCj4+IEplbmtpbnNmaWxlCj4+ID4gd2lsbCBiZSBhdXRvLW1haW50YWluZWQuCj4+ID4KPj4gPiA+IEFuZCBvbmNlIGFnYWluLCBpbmZyYSB3aWxsIGhhdmUgdG8gYmUgaW4gdGhlIGxvb3AgKGF0IEplbmtpbnMgc2lkPQplICA9Cgo+PiB0aGlzCj4+ID4gPiB0aW1lKSwKPj4gPiA+IHNpbmNlIEkgZmVhciB0aGUgbG9hZCBvbiBKZW5raW5zIG1hc3RlciBub2RlIHdvbid0IGJlIGxpZ2h0OiBwZXJoPQphcHMKPj4gPiA+IHRoYXQncwo+PiA+ID4gd2hlcmUgSmVua2lucyBmb2xkZXJzIHdpbGwgYmUgdXNlZnVsLCBidXQgSSdtIG5vdCBhIEplbmtpbnMgZXhwZXI9CnQKPj4gZWl0aGVyLgo+PiA+Cj4+ID4gSWYgd2UgdXNlIGFuIG9yZyBmb2xkZXIgaW50ZWdyYXRlZCB3aXRoIEdpdFB1YlN1YiBJIGRvIG5vdCB0aGluayB0aD0KZXkKPj4gd2lsbAo+PiA+IGJlIG92ZXJseSBjb25jZXJuZWQKPj4gPgo+PiA+ID4gSWYgZXZlcnl0aGluZyBzZWVtcyBmZWFzaWJsZSB0byBzcGxpdCBvdXIgc3ZuIGNvZGUgaW50byAxIGdpdCByZXA9Cm8gID0KCj4+IHBlci0KPj4gPiA+IGNvbXBvbmVudCwgd2hpY2ggd2lsbCBicmluZyB1cyB0byAiZnVsbCBNYXZlbiBjb2RlIiBiZWluZyBuZWFyIDEwPQowCj4+IHJlcG9zLAo+PiA+ID4gSSdtCj4+ID4gPiBvayB3aXRoIGl0Lgo+PiA+ID4gV2UnbGwgbmVlZCB0aGUgaGVscCBvZiBtaXNjIGV4cGVydHMgb24gSmVua2lucyBhbmQgZ2l0IHRvIHByZXBhcmU9Cgo+PiB0aGluZ3MKPj4gPiA+IGF0Cj4+ID4gPiB0aGlzIHNjYWxlLgo+PiA+Cj4+ID4gSSB0aGluayBvbmUgcmVwbyBwZXIgcmVsZWFzZSByb290IGlzIHRoZSB3YXkgdG8gZ28uCj4+ID4KPj4gPiBXZSBzaG91bGQgc3RhcnQgYnkgZHJhd2luZyB1cCBhIGxpc3QgYW5kIGFtYWxnYW1hdGlvbiB3aGVyZSAgPQoKPj4gYXBwcm9wcmlhdGU6Cj4+ID4KPj4gPiBFZwo+PiA+Cj4+ID4gKiBkb2VzIGl0IG1ha2Ugc2Vuc2UgdG8gcmVsZWFzZSBtYXZlbi1kZXBsb3ktcGx1Z2luIGFuZAo+PiA+IG1hdmVuLWluc3RhbGwtcGx1Z2luIGluZGVwZW5kZW50bHk/IFNlZW1zIHdlIG1vc3Qgb2Z0ZW4gbWFrZSBtaXJyb3I9CmluZwo+PiA+IGNoYW5nZXMgdG8gYm90aCwgYW5kIHBlcmhhcHMgaXQgd291bGQgYmUgYmV0dGVyIGlmIHdlIGZvcmNlZCB0aGF0ICA9Cgo+PiBtb2RlbD8KPj4gPiAoRG9uPUUyPTgwPTk5dCBhbnN3ZXIgaW4gdGhpcyB0aHJlYWQsIGp1c3QgcG9pbnRpbmcgb3V0IGFuIGV4YW1wbGUpPQoKPj4gPgo+PiA+ID4gID0KCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KCj4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4KPj4gPiA+IC0tCj4+ID4KPj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPj4KPj4KPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQoKPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pgo+PiAtLQo+IFNlbnQgZnJvbSBteSBwaG9uZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MjA0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBPY3QgIDkgMTg6NDk6MTcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjA0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEJCODc5MTBENEUKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAgOSBPY3QgMjAxNyAxODo0OToxNyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDcwNjM3IGludm9rZWQgYnkgdWlkIDUwMCk7IDkgT2N0IDIwMTcgMTg6NDk6MTcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDcwNTcwIGludm9rZWQgYnkgdWlkIDUwMCk7IDkgT2N0IDIwMTcgMTg6NDk6MTcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3MDU1OSBpbnZva2VkIGJ5IHVpZCA5OSk7IDkgT2N0IDIwMTcgMTg6NDk6MTcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMDkgT2N0IDIwMTcgMTg6NDk6MTcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmwgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCBBODhENjFBMDJDRAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgIDkgT2N0IDIwMTcgMTg6NDk6MTYgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IEplbmtpbnMgYW5kIE1hdmVuIDMuMC41IG9yIEpESyA3ClJlZmVyZW5jZXM6IDwxMDU0NDYxNS5CNGhPM1BudkV6QGdpZ2E+CiA8Q0ErblBuTXg9MlNIYStpYlRxVFRFU2tlVG9tckRNK0FieGtBVVorK2g1V0xZLUhXN3VRQG1haWwuZ21haWwuY29tPgogPG9wLnk3c3k0ZmV4a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPiA8OTczMTY0Ny41amdrajM2YWl0QGdpZ2E+CkRhdGU6IE1vbiwgMDkgT2N0IDIwMTcgMjA6NDk6MTQgKzAyMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogUXVvdGVkLVByaW50YWJsZQpGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTd1dWtjbm1rZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkluLVJlcGx5LVRvOiA8OTczMTY0Ny41amdrajM2YWl0QGdpZ2E+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKQW4gZXhhbXBsZToKCjxwcm9qZWN0PgogICA8bW9kdWxlcz4KICAgICA8bW9kdWxlPnN1YjE8L21vZHVsZT4gPCEtLSBkaXJlY3RvcnkgLS0+CiAgICAgPG1vZHVsZT5zdWIyL2N1c3RvbS1wb20ueG1sPC9tb2R1bGU+ICA8IS0tIGZvbGRlciAtLT4KCiAgICAgPCEtLSBwcm9wb3NhbCAtLT4KICAgICA8bW9kdWxlPnNjbTpnaXQ6aHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmL21hdmVuLWNsZWFuPQotcGx1Z2luLmdpdDwvbW9kdWxlPiAgPQoKPCEtLSBzY20gYmFzZWQgLS0+CiAgIDxtb2R1bGVzPgo8L3Byb2plY3Q+CgoKT24gTW9uLCAwOSBPY3QgMjAxNyAwMDowMToyOSArMDIwMCwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyPQplZS5mcj4gID0KCndyb3RlOgoKPiBJIGRvbid0IHJlYWxseSB1bmRlcnN0YW5kIHRoZXNlIGFuc3dlcnM6IGEgZGVtbywgcGxlYXNlCj4KPiBSZWdhcmRzLAo+Cj4gSGVydj1DMz1BOQo+Cj4gTGUgZGltYW5jaGUgOCBvY3RvYnJlIDIwMTcsIDIwOjMyOjI5IENFU1QgUm9iZXJ0IFNjaG9sdGUgYSA9QzM9QTljcml0ID0KOgo+PiBPbiBTdW4sIDA4IE9jdCAyMDE3IDIwOjI3OjE3ICswMjAwLCBTdGVwaGVuIENvbm5vbGx5Cj4+Cj4+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4gPiBPbiBTdW4gOCBPY3QgMjAxNyBhdCAxODoyOCwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuPQpmcj4gID0KCj4+IHdyb3RlOgo+PiA+PiBJIGRvbid0IGdldCB0aGUgdGVjaG5pY2FsIGRldGFpbHMKPj4gPj4gYnV0IElJVUMsIHlvdSdyZSBhYmxlIHRvIGRvIGEgUG9DIHdpdGggb3VyIGF2YWlsYWJsZSBnaXQgID0KCj4+IHJlcG9zaXRvcmllcyBvZgo+PiA+PiBKZW5raW5zIGpvYiBtYWludGVuYW5jZSAoZWFzeSBqb2IgY3JlYXRpb24gKyBlYXN5IEplbmtpbnNmaWxlCj4+ID4+IG1haW50ZW5hbmNlKSwKPj4gPgo+PiA+IEpvYiBjcmVhdGVkIGF1dG9tYXRpY2FsbHkgb25jZSB0aGVyZSBpcyBhIGdpdCByZXBvICB3aXRoIGEgYnJhbmNoICA9Cgo+PiB3aXRoIGEKPj4gPiBKZW5raW5zZmlsZSAuIE5vIGh1bWFuIGludGVyYWN0aW9uIHJlcXVpcmVkIGFmdGVyIGBlY2hvCj4+ID4gPUUyPTgwPTlDbWF2ZW5Qcm9qZWN0U3RkQnVpbGQoKTs9RTI9ODA9OUQgPiBKZW5raW5zZmlsZSAmJiBnaXQgYWRkID0KSmVua2luc2ZpbGUgJiYgZ2l0Cj4+ID4gY29tbWl0ID1FMj04MD05Q2FkZCBKZW5raW5zZmlsZT1FMj04MD05RCAgJiYgZ2l0IHB1c2hgCj4+ID4KPj4gPiBKZW5raW5zZmlsZSBiZWluZyBqdXN0IG9uZSBsaW5lIGBtYXZlblByb2plY3RTdGRCdWlsZGAgb3Igc29tZXRoaW5nPQogID0KCj4+IGxpa2UKPj4gPiB0aGF0Lgo+PiA+Cj4+ID4gSXMgdGhhdCBlYXN5IGVub3VnaD8KPj4KPj4gSUlSQyB0aGVyZSBpcyB0aGlzIHByb3Bvc2FsIHRvIGxldCBwb20gbW9kdWxlcyBzdXBwb3J0IGRpcmVjdG9yaWVzLCBwPQpvbQo+PiBsb2NhdGlvbnMgKHRoZXNlIGFyZSBhbHJlYWR5IHN1cHBvcnRlZCkgYW5kIFNDTSByZWZlcmVuY2VzLiBNaWdodCBiZQo+PiBpbnRlcmVzdGluZyBmb3IgYW4gYWdncmVnYXRvciBwb20uCj4+Cj4+IFJvYmVydAo+Pgo+PiA+IGFuZAo+PiA+Cj4+ID4+IHlvdSdyZSBjb25maWRlbnQgdGhhdCBpdCBjYW4gc2NhbGUgdG8gdGhlIHNpemUgd2UncmUgZXhwZWN0aW5nIHdoZT0Kbgo+PiA+PiB3ZSdyZQo+PiA+PiBzcGxpdHRpbmcgdGhlIGN1cnJlbnQgYWdncmVnYXRvciBzdm4gdG8gbWFueSBzbWFsbCBnaXQgcmVwb3MKPj4gPj4KPj4gPj4gdGhhdCdzIGl0Pwo+PiA+Pgo+PiA+PiBSZWdhcmRzLAo+PiA+Pgo+PiA+PiBIZXJ2PUMzPUE5Cj4+ID4+Cj4+ID4+IExlIGRpbWFuY2hlIDggb2N0b2JyZSAyMDE3LCAxNjoyMToxMCBDRVNUIFN0ZXBoZW4gQ29ubm9sbHkgYSA9QzM9QTk9CmNyaXQgOgo+PiA+PiA+IE9uIFN1biA4IE9jdCAyMDE3IGF0IDAzOjU1LCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnI9CmVlLmZyPgo+PiA+Pgo+PiA+PiB3cm90ZToKPj4gPj4gPiA+IFRMRFI7ID0zRAo+PiA+PiA+ID4gUGVyaGFwcyB3ZSBjYW4gc3RhcnQgd2l0aCAyIHByb29mcyBvZiBjb25jZXB0Ogo+PiA+PiA+ID4gMS4gZnVsbCBnaXQgY2xvbmUgKyBKZW5raW5zIGpvYnMgZm9yIHRoZSA3IGV4aXN0aW5nIGdpdCByZXBvcyA9CiA9Cgo+PiAod2l0aAo+PiA+Pgo+PiA+PiA2Cj4+ID4+Cj4+ID4+ID4gPiBhZGRpdGlvbmFsIG9uZXMgaW4gMiBkYXlzKQo+PiA+PiA+ID4gMi4gZ2l0IHNwbGl0IG9mIG9uZSBvZiB0aGUgYWdncmVnYXRvciBzdm4gdHJ1bms6IHNraW5zIG9yCj4+ID4+Cj4+ID4+IGRveGlhLXRvb2xzCj4+ID4+IGNhbgo+PiA+Pgo+PiA+PiA+ID4gYmUKPj4gPj4gPiA+IGVhc3kgY2hvaWNlcyBzaW5jZSB0aGV5IGFyZSBsaWdodCwgd2hlcmUgcGx1Z2lucyBvciBzaGFyZWQgYXJlPQoKPj4gPj4KPj4gPj4gcGVyaGFwcwo+PiA+PiB0b28KPj4gPj4KPj4gPj4gPiA+IGhlYXZ5LiBUaGUgb25lIHdvcmtpbmcgb24gdGhpcyBQb0Mgd2lsbCBtYWtlIGhpcyBjaG9pY2UKPj4gPj4gPiA+Cj4+ID4+ID4gPiB0aGVuIG1vcmUgZGV0YWlsZWQgYW5zd2VyIGlubGluZSB0aGF0IGxlYWQgdG8gdGhpcyBQb0NzIHByb3Bvcz0KYWwKPj4gPj4gPiA+Cj4+ID4+ID4gPiBSZWdhcmRzLAo+PiA+PiA+ID4KPj4gPj4gPiA+IEhlcnY9QzM9QTkKPj4gPj4gPiA+Cj4+ID4+ID4gPiBMZSBkaW1hbmNoZSA4IG9jdG9icmUgMjAxNywgMDA6MDI6MTAgQ0VTVCBUaWJvciBEaWdhbmEgYSA9QzM9QTk9CmNyaXQgOgo+PiA+PiA+ID4gPiBJIGRvbid0IHRoaW5rIHRoZSBkZXZzIHdvdWxkIHdvcmsgb24gYWxsIGFydGlmYWN0cyhwcm9qZWN0cyk9CiBhCj4+ID4+Cj4+ID4+IHRpbWUuCj4+ID4+Cj4+ID4+ID4gPiBzdXJlLCBJIHRoaW5rIEknbSBvbmUgb2YgdGhlIGZldyBwZW9wbGUgd29ya2luZyBvbiBuZWFyICA9Cgo+PiBldmVyeXRoaW5nCj4+ID4+Cj4+ID4+ICh3aXRoCj4+ID4+Cj4+ID4+ID4gPiByYXJlCj4+ID4+ID4gPiBleGNlcHRpb25zIGxpa2UgU3VyZWZpcmUsIGFzIHlvdSBub3RpY2VkIDopICkKPj4gPj4gPiA+IGJ1dCBmb3IgdXN1YWwgY29udHJpYnV0b3IsIHRoZXJlIGlzIG5vIGlzc3VlCj4+ID4+ID4gPgo+PiA+PiA+ID4gSSdtIG5vdCBhIGdpdCBleHBlcnQsIHRoZW4gSSBkb24ndCBrbm93IGlmIGVhc3kgImZ1bGwgTWF2ZW4gID0KCj4+IGNsb25lIgo+PiA+Pgo+PiA+PiBpcwo+PiA+Pgo+PiA+PiA+ID4gYmV0dGVyCj4+ID4+ID4gPiBkb25lIHdpdGggYSBzaGVsbCBzY3JpcHQgb3Igc29tZSBnaXQgbW9kdWxlcwo+PiA+PiA+ID4KPj4gPj4gPiA+ID4gSWYgdGhlIG5hbWluZyBjb252ZW50aW9uIG9mIHJlcG8gZm9yIGEgcGx1Z2luIHdvdWxkIGJlICA9Cgo+PiBhcnRpZmFjdElkLAo+PiA+Pgo+PiA+PiBsaWtlCj4+ID4+Cj4+ID4+ID4gPiA+IC9tYXZlbi1jbGVhbi1wbHVnaW4sIHRoZW4gZXZlbiBlYXN5IHRvIGZpZ3VyZSBvdXQgd2hpY2ggb25lID0KdG8KPj4gPj4KPj4gPj4gY2xvbmUuCj4+ID4+Cj4+ID4+ID4gPiA+IFRoZSBtb3N0IGxpa2VseSB0aGUgZGV2IHdvdWxkIGp1c3QgY2xvbmUgb25lIHJlcG8gc2hlL2hlIGlzCj4+ID4+Cj4+ID4+IGludGVyZXN0ZWQKPj4gPj4KPj4gPj4gPiA+ID4gaW4KPj4gPj4gPiA+ID4gYXQgdGhlIG1vbWVudCwgaS5lLiByZXBvc2l0b3J5IC9tYXZlbi1jbGVhbi1wbHVnaW4sIGxldCdzIHNhPQp5Lgo+PiA+PiA+ID4gPiBJdCdzIGdvb2QgdG8gYXZvaWQgYW55IHNoYXJlZCBmaWxlcyBhY3Jvc3MgdGhlbSwgZXZlbiBJIGRvbic9CnQKPj4gPj4KPj4gPj4gdGhpbmsKPj4gPj4gZGV2cwo+PiA+Pgo+PiA+PiA+ID4gPiBzaGFyZSBzb21lIGluIHN2biB0b2RheS4gVGhlIHJlbGVhc2UgcHJvY2VzcyB3b3VsZCBiZSBxdWl0ZSA9CiA9Cgo+PiB1c3VhbCwKPj4gPj4KPj4gPj4gaS5lLgo+PiA+Pgo+PiA+PiA+ID4gb25lCj4+ID4+ID4gPgo+PiA+PiA+ID4gPiByZXBvID0zRCBvbmUgcHJvamVjdCwgYW5kIG5ldyBkZXZzIGFscmVhZHkgaGF2ZSB0aGVzZSBleHBlcmk9CmVuY2VzCj4+ID4+Cj4+ID4+IHdoaWNoCj4+ID4+Cj4+ID4+ID4gPiB3aWxsCj4+ID4+ID4gPgo+PiA+PiA+ID4gPiBiZSBzaW1wbGUgZm9yIHRoZW0gdG8gYWRhcHQgZmFzdGVyLgo+PiA+PiA+ID4KPj4gPj4gPiA+ICsxCj4+ID4+ID4gPiB0aGUgb25seSBkcmF3YmFjayBJIHNlZSBjdXJyZW50bHkgaXMgdGhhdCB0aGVyZSBpcyBubyBuYXR1cmFsCj4+ID4+Cj4+ID4+IGdyb3VwaW5nLAo+PiA+Pgo+PiA+PiA+ID4gdGhlbgo+PiA+PiA+ID4gd2UgaGF2ZSBhIGZsYXQgbGl0IG9mIG5lYXIgMTAwIGdpdCByZXBvcyB3aXRob3V0IHRoZSBjdXJyZW50Cj4+ID4+Cj4+ID4+IHN0cnVjdHVyZQo+PiA+Pgo+PiA+PiA+ID4gKHBsdWdpbnMsIHNoYXJlZCBjb21wb25lbnRzLCBza2lucywgLi4uKTogSSB0aGluayBjb21wb25lbnRzCj4+ID4+Cj4+ID4+IHN0cnVjdHVyZQo+PiA+PiBpcwo+PiA+Pgo+PiA+PiA+ID4gdXNlZnVsIGZvciBtYWludGVuYWJpbGl0eQo+PiA+PiA+ID4gYnV0IG5vdCByZWFsbHkgYSBjb21wbGV0ZSBzaG93c3RvcHBlcgo+PiA+PiA+ID4gYW5kIHBlcmhhcHMgdGhlICJNYXZlbiBmdWxsIGNsb25lIiB0b29saW5nIGNhbiByZS1jcmVhdGUgc29tZQo+PiA+Pgo+PiA+PiBncm91cGluZwo+PiA+PiB0bwo+PiA+Pgo+PiA+PiA+ID4ga2VlcAo+PiA+PiA+ID4gdmlzaWJsZSBzdHJ1Y3R1cmUKPj4gPj4gPiA+Cj4+ID4+ID4gPiBOb3csIHNvbWVvbmUgaGFzIHRvIGtub3cgaG93IHRvIGNyZWF0ZSBwZXItY29tcG9uZW50IGdpdCByZXBvID0KID0KCj4+IHdpdGgKPj4gPj4KPj4gPj4gdGFncwo+PiA+Pgo+PiA+PiA+ID4gKGVpdGhlciBieSByZXdvcmtpbmcgZXhpdGluZyBnaXQgbWlycm9ycywgZWl0aGVyIGJ5IHJlc3RhcnRpbmc9CiAgPQoKPj4gZnJvbQo+PiA+Pgo+PiA+PiBzdm4pLAo+PiA+Pgo+PiA+PiA+ID4gYW5kCj4+ID4+ID4gPiB0aGF0J3Mgbm90IG1lIDopCj4+ID4+ID4gPgo+PiA+PiA+ID4gZ2l2ZW4gdGhlIHZvbHVtZSAoYWRkaW5nIDcwIGdpdCByZXBvcyBmb3IgTWF2ZW4pLCB3ZSdsbCBoYXZlIHQ9Cm8gID0KCj4+IHRlbGwKPj4gPj4KPj4gPj4gaW5mcmEKPj4gPj4KPj4gPj4gPiA+IGFib3V0IGl0Lgo+PiA+PiA+ID4KPj4gPj4gPiA+IFRoZW4gdGhlcmUgaXMgdGhlIEplbmtpbnMgam9icyBjb25maWd1cmF0aW9uOgo+PiA+PiA+ID4gLSB3ZSBuZWVkIGVhc3kgSmVua2luc2ZpbGUgaW4gZWFjaCByZXBvCj4+ID4+ID4KPj4gPj4gPiBzbyB3ZSBjcmVhdGUgYSBzaGFyZWQgR3Jvb3Z5IGxpYnJhcnkgbGlrZSB0aGUgSmVua2lucyBwcm9qZWN0IGRvPQplcyAgPQoKPj4gYW5kCj4+ID4+Cj4+ID4+IHRoZQo+PiA+Pgo+PiA+PiA+IEplbmtpbnNmaWxlIGJlY29tZXMgYGJ1aWxkUGx1Z2luYCBmb3IgYWxsIGV4Y2VwdCBjb3JlCj4+ID4+ID4KPj4gPj4gPiA+IC0gd2UgbmVlZCBlYXN5IDgwIGpvYnMgY3JlYXRpb24gKG5vLCBJIHdvbid0IG1hbnVhbGx5IGNyZWF0ZSA4PQowICA9Cgo+PiBqb2JzCj4+ID4+ID4gPiBwZXJzb25hbGx5KQo+PiA+PiA+Cj4+ID4+ID4gU28gSSB3aWxsIGFkZCBTQ01OYXZpZ2F0b3IgZnVuY3Rpb25hbGl0eSB0byB0aGUgQVNGIGdpdC1KZW5raW5zID0KID0KCj4+IHBsdWdpbgo+PiA+Pgo+PiA+PiBhbmQKPj4gPj4KPj4gPj4gPiB3ZSBqdXN0IGRlZmluZSBhbiBvcmctZm9sZGVyIGZvciBNYXZlbiBhbmQgYWxsIGdpdCByZXBvcyB3aXRoIGEKPj4gPj4KPj4gPj4gSmVua2luc2ZpbGUKPj4gPj4KPj4gPj4gPiB3aWxsIGJlIGF1dG8tbWFpbnRhaW5lZC4KPj4gPj4gPgo+PiA+PiA+ID4gQW5kIG9uY2UgYWdhaW4sIGluZnJhIHdpbGwgaGF2ZSB0byBiZSBpbiB0aGUgbG9vcCAoYXQgSmVua2lucyA9CiA9Cgo+PiBzaWRlCj4+ID4+Cj4+ID4+IHRoaXMKPj4gPj4KPj4gPj4gPiA+IHRpbWUpLAo+PiA+PiA+ID4gc2luY2UgSSBmZWFyIHRoZSBsb2FkIG9uIEplbmtpbnMgbWFzdGVyIG5vZGUgd29uJ3QgYmUgbGlnaHQ6ICA9Cgo+PiBwZXJoYXBzCj4+ID4+ID4gPiB0aGF0J3MKPj4gPj4gPiA+IHdoZXJlIEplbmtpbnMgZm9sZGVycyB3aWxsIGJlIHVzZWZ1bCwgYnV0IEknbSBub3QgYSBKZW5raW5zICA9Cgo+PiBleHBlcnQKPj4gPj4KPj4gPj4gZWl0aGVyLgo+PiA+Pgo+PiA+PiA+IElmIHdlIHVzZSBhbiBvcmcgZm9sZGVyIGludGVncmF0ZWQgd2l0aCBHaXRQdWJTdWIgSSBkbyBub3QgdGhpbms9CiAgPQoKPj4gdGhleQo+PiA+Pgo+PiA+PiB3aWxsCj4+ID4+Cj4+ID4+ID4gYmUgb3Zlcmx5IGNvbmNlcm5lZAo+PiA+PiA+Cj4+ID4+ID4gPiBJZiBldmVyeXRoaW5nIHNlZW1zIGZlYXNpYmxlIHRvIHNwbGl0IG91ciBzdm4gY29kZSBpbnRvIDEgZ2l0ID0KID0KCj4+IHJlcG8KPj4gPj4KPj4gPj4gcGVyLQo+PiA+Pgo+PiA+PiA+ID4gY29tcG9uZW50LCB3aGljaCB3aWxsIGJyaW5nIHVzIHRvICJmdWxsIE1hdmVuIGNvZGUiIGJlaW5nIG5lYXI9CiAgPQoKPj4gMTAwCj4+ID4+Cj4+ID4+IHJlcG9zLAo+PiA+Pgo+PiA+PiA+ID4gSSdtCj4+ID4+ID4gPiBvayB3aXRoIGl0Lgo+PiA+PiA+ID4gV2UnbGwgbmVlZCB0aGUgaGVscCBvZiBtaXNjIGV4cGVydHMgb24gSmVua2lucyBhbmQgZ2l0IHRvIHByZXA9CmFyZQo+PiA+Pgo+PiA+PiB0aGluZ3MKPj4gPj4KPj4gPj4gPiA+IGF0Cj4+ID4+ID4gPiB0aGlzIHNjYWxlLgo+PiA+PiA+Cj4+ID4+ID4gSSB0aGluayBvbmUgcmVwbyBwZXIgcmVsZWFzZSByb290IGlzIHRoZSB3YXkgdG8gZ28uCj4+ID4+ID4KPj4gPj4gPiBXZSBzaG91bGQgc3RhcnQgYnkgZHJhd2luZyB1cCBhIGxpc3QgYW5kIGFtYWxnYW1hdGlvbiB3aGVyZQo+PiA+Pgo+PiA+PiBhcHByb3ByaWF0ZToKPj4gPj4gPiBFZwo+PiA+PiA+Cj4+ID4+ID4gKiBkb2VzIGl0IG1ha2Ugc2Vuc2UgdG8gcmVsZWFzZSBtYXZlbi1kZXBsb3ktcGx1Z2luIGFuZAo+PiA+PiA+IG1hdmVuLWluc3RhbGwtcGx1Z2luIGluZGVwZW5kZW50bHk/IFNlZW1zIHdlIG1vc3Qgb2Z0ZW4gbWFrZSAgPQoKPj4gbWlycm9yaW5nCj4+ID4+ID4gY2hhbmdlcyB0byBib3RoLCBhbmQgcGVyaGFwcyBpdCB3b3VsZCBiZSBiZXR0ZXIgaWYgd2UgZm9yY2VkIHRoYT0KdAo+PiA+Pgo+PiA+PiBtb2RlbD8KPj4gPj4KPj4gPj4gPiAoRG9uPUUyPTgwPTk5dCBhbnN3ZXIgaW4gdGhpcyB0aHJlYWQsIGp1c3QgcG9pbnRpbmcgb3V0IGFuIGV4YW1wPQpsZSkKPj4gPj4KPj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotLS0KPj4gPj4KPj4gPj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4+ID4gPgo+PiA+PiA+ID4gLS0KPj4gPj4gPgo+PiA+PiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+PiA+Pgo+PiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0tLQo+PiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4+Cj4+ID4+IC0tCj4+ID4KPj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQoKPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MjA4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBPY3QgMTAgMTg6NDg6MTUgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjA4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEI5QzEyMTAwNTMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAxMCBPY3QgMjAxNyAxODo0ODoxNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDIxOTg2IGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIE9jdCAyMDE3IDE4OjQ4OjE1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMTg3NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBPY3QgMjAxNyAxODo0ODoxNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIxODY0IGludm9rZWQgYnkgdWlkIDk5KTsgMTAgT2N0IDIwMTcgMTg6NDg6MTUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMTAgT2N0IDIwMTcgMTg6NDg6MTUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmwgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCA5MDc5NjFBMDExNwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTAgT2N0IDIwMTcgMTg6NDg6MTQgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiAzLjUuMQpSZWZlcmVuY2VzOiA8Q0ErblBuTXh5RzJOZVBYcFZxYXdlOWpSPWl0SEVUNlV1ZG5OOUNqSGh2PW9vLUtDcnh3QG1haWwuZ21haWwuY29tPiA8cG9ueS01NmEzYWRlYWY2MGM0MDU5NmZiMjg0YjI0NTI0MTQ4ZjYwNWU4ZDIzLTUyZDQxY2Q0MGYyMzQzYzg5NTI4ODBlOGY4NGRhM2U4MGQzMzU1MDlAZGV2Lm1hdmVuLmFwYWNoZS5vcmc+IDxDQStuUG5NeVMycTF1ZmFXK1M2c21oWloxSmN4aGY5aFk1LTNuQkotaUNXZWpQVUFEVkFAbWFpbC5nbWFpbC5jb20+IDwyMDU3OTQ4LmsxR3lmanVHWGRAZ2lnYT4gPENBK25Qbk13Y29IRlp2VXFXaVVzeUhCaGFNbW9TY2N5ZFRCc3pTWGdzR3RGPXdOR0RLd0BtYWlsLmdtYWlsLmNvbT4gPENBS0RVTjF2NVRzRm4rby12djhIaDNQdXZHWFdlK2ZRbk0randEWnQrPXp0eHNwY2dnd0BtYWlsLmdtYWlsLmNvbT4gPENBK25Qbk15Y1RaZFh0QXVSYzIrLTBxREtFUExMSkhvR0o2SDhkWj1aeWtPYVh1VzNYUUBtYWlsLmdtYWlsLmNvbT4gPENBK25Qbk15TFoyREhtamlkeVI0ckxHX2trdnlmMnpKTTZfRitnZmJCZnpCdk5uNHFCUUBtYWlsLmdtYWlsLmNvbT4gPENBRk5DVS04dkNwbWs1LURjWXc9UXRBN2NZOE9tZ1U5ZGoxaksxcTVyckdXSFJiNHBfZ0BtYWlsLmdtYWlsLmNvbT4gPENBUG95QnFUOFk4ck5iTERPcE9TdUd1PTJXbmRudk5uRmYtX245eVZRMkY0enh4Ym1id0BtYWlsLmdtYWlsLmNvbT4gPENBRk5DVS1fdGlkZ2o3d0VRUzNPRThIPVY2Z09WOExiLXNiZGdiOHhfV1RTMk5TVV9Pd0BtYWlsLmdtYWlsLmNvbT4gPENBK25Qbk13TU9naFBtY3VnVj04X19NNDQ1d0RlNDh1WHZYQnVFR0ZOajFCYmNGX3p5d0BtYWlsLmdtYWlsLmNvbT4gPENBRk5DVS0taFhaMTlLV29jMmNpOG0rWEhjdStfRm9CaVFNcGFSWExaZ09HVkItU3JkUUBtYWlsLmdtYWlsLmNvbT4KRGF0ZTogVHVlLCAxMCBPY3QgMjAxNyAyMDo0ODoxMyArMDIwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBRdW90ZWQtUHJpbnRhYmxlCkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55N3dvNm5rNmtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KSW4tUmVwbHktVG86IDxDQUZOQ1UtLWhYWjE5S1dvYzJjaThtK1hIY3UrX0ZvQmlRTXBhUlhMWmdPR1ZCLVNyZFFAbWFpbC5nbWFpbC5jb20+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKRllJLCBNREVQTE9ZLTEyMSBtZW50aW9ucyBhbm90aGVyIHBsdWdpbiBiZWluZyBoaXQgYnkgdGhlIGNsYXNzbG9hZGVyICA9CgpjaGFuZ2VzLgoKUm9iZXJ0CgoKT24gVHVlLCAwMyBPY3QgMjAxNyAyMDoyMjoxOCArMDIwMCwgQXJuYXVkIEg9RTlyaXRpZXIgPGFoZXJpdGllckBnbWFpbC5jPQpvbT4gID0KCndyb3RlOgoKPiBUaGFua3MgU3RlcGhlbgo+Cj4gT24gVHVlLCBPY3QgMywgMjAxNyBhdCA4OjE4IFBNLCBTdGVwaGVuIENvbm5vbGx5IDwKPiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPgo+PiBJIGFtIGhvcGluZyBJIGNhbiBmaW5kIHNvbWUgdGltZSB0byBkbyBhIGZpbmFsIHJvdW5kIG9mIGV4cGVyaW1lbnRzIGE9Cm5kCj4+IHRoZW4gY2xvc2UgdGhlIHZvdGUgd2l0aCBzdWNjZXNzIGFuZCBwdWJsaXNoLgo+Pgo+Pgo+PiBPbiBUdWUgMyBPY3QgMjAxNyBhdCAxMToxMywgQXJuYXVkIEg9RTlyaXRpZXIgPGFoZXJpdGllckBnbWFpbC5jb20+IHc9CnJvdGU6Cj4+Cj4+ID4gQFN0ZXBoZW4gV2hhdCBzaG91bGQgd2UgZG8gbm93ID8KPj4gPgo+PiA+Cj4+ID4gT24gVHVlLCBTZXAgMTksIDIwMTcgYXQgMzoxNCBBTSwgT2xpdmllciBMYW15IDxvbGFteUBhcGFjaGUub3JnPiAgPQoKPj4gd3JvdGU6Cj4+ID4KPj4gPj4gSGkKPj4gPj4gU29ycnkgYSBiaXQgb3V0IG9mIHRpbWUgQVRNIGZvciB0ZXN0aW5nIHRoaXMuCj4+ID4+IFdlbGwgSSB0cnVzdCBBcm5hdWQgdGVzdGluZyB0aGF0IGVzcGVjaWFsbHkgaWYgdGhpcyBpbXByb3ZlIHRoZQo+PiA+PiBwZXJmb3JtYW5jZQo+PiA+PiBvZiB0aGlzIHZlcnkgZ3JlYXQvYXdlc29tZS91c2VycyBvcmllbnRlZCBwbHVnaW4gOlAKPj4gPj4KPj4gPj4gT24gMTMgU2VwdGVtYmVyIDIwMTcgYXQgMjI6MTksIEFybmF1ZCBIPUU5cml0aWVyIDxhaGVyaXRpZXJAYXBhY2hlPQoub3JnPgo+PiA+PiB3cm90ZToKPj4gPj4KPj4gPj4gPiBEYW1uZWQsIGNhbid0IHdlIGJlIGFub255bW91cyBvbiBHaXRodWIgPwo+PiA+PiA+IEkgbWFpbnRhaW4gaXQgaXMgYSBiaWcgd29yZCwgSSdtIHRyeWluZyB0byBmaXggbW9yZSBidWdzIHRoYW4gSSA9CmFkZAo+PiBuZXcKPj4gPj4gPiBvbmVzCj4+ID4+ID4gSSBhZGRlZCBPbGVnIGluIHRoZSBsb29wIGFzIGhlIGNvbnRyaWJ1dGVkIGEgbG90IG9uIGl0IHRvbwo+PiA+PiA+IEkgZGlkIGEgcXVpY2sgdGVzdCB0byBidWlsZCBvbiBKZW5raW5zIDIuNjAuMyBvdXIgbWF2ZW4gY29yZSB3aXQ9CmggID0KCj4+IHRoZQo+PiA+PiBFdmlsCj4+ID4+ID4gTWF2ZW4gcGx1Z2luIDIuMTcgb24gYSBsb2NhbCBTU0ggYWdlbnQgYW5kIGl0IGlzIG9rCj4+ID4+ID4gQnV0IGl0IGlzIHJlYWxseSBhIHF1aWNrIHRlc3QgLi4uCj4+ID4+ID4KPj4gPj4gPiBDaGVlcnMKPj4gPj4gPgo+PiA+PiA+Cj4+ID4+ID4KPj4gPj4gPiBPbiBXZWQsIFNlcCAxMywgMjAxNyBhdCAxMDowNyBBTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4+ID4+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4+ID4+ID4KPj4gPj4gPiA+IE9uIDEzIFNlcHRlbWJlciAyMDE3IGF0IDAxOjA1LCBTdGVwaGVuIENvbm5vbGx5IDwKPj4gPj4gPiA+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+PiA+PiA+ID4KPj4gPj4gPiA+PiBPbiAxMyBTZXB0ZW1iZXIgMjAxNyBhdCAwMDoyNiwgQW5kZXJzIEhhbW1hciA8YW5kZXJzQGhhbW1hci5uPQpldD4KPj4gPj4gd3JvdGU6Cj4+ID4+ID4gPj4KPj4gPj4gPiA+Pj4gT24gVHVlLCBTZXAgMTIsIDIwMTcgYXQgODo1NCBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4+ID4+ID4gPj4+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+PiA+PiA+ID4+Pgo+PiA+PiA+ID4+PiA+IEhhdmUgd2UgZ290IGFueSBmZWVkYmFjayBmcm9tIHRoZSBlbWJlZGRlciBpbnRlZ3JhdGlvbnMgeWU9CnQ/Cj4+ID4+ID4gPj4+ID4KPj4gPj4gPiA+Pj4KPj4gPj4gPiA+Pj4gSSBoYXZlbid0IGhlYXJkIGFueXRoaW5nIGZyb20gdGhlIG0yZSBwZW9wbGUuIE1heWJlIHdlIG5lZWQgPQp0bwo+PiBwaW5nCj4+ID4+ID4gdGhlbQo+PiA+PiA+ID4+PiBkaXJlY3RseS4gSSBjYW4gY29udGFjdCBGcmVkIEJyaWNvbi4KPj4gPj4gPiA+Pj4KPj4gPj4gPiA+Pj4gL0FuZGVycwo+PiA+PiA+ID4+Pgo+PiA+PiA+ID4+Pgo+PiA+PiA+ID4+IFBsZWFzZSBkbywgYWxzbyBpZiBhbnlvbmUgaGFzIGEgY29udGFjdCBpbiBuZXRiZWFucyBvciBpbnRlbGw9CmlqICA9Cgo+PiBhbmQKPj4gPj4gPiBjb3VsZAo+PiA+PiA+ID4+IGxldCB0aGVtIGtub3cgd2UnZCBsaWtlIGVpdGhlciBmZWVkYmFjayBvciAid2UncmUgb2sgaWYgTU5HLTY9CjI3NQo+PiA+PiBtYWtlcwo+PiA+PiA+ID4+IHRyb3VibGUgZm9yIHVzLCBnbyBhaGVhZCBhbmQgcmVsZWFzZSIuIEknZCBsaWtlIHRvIGNsb3NlIHRoZSA9CiA9Cgo+PiB2b3RlCj4+IG9uCj4+ID4+ID4gRnJpZGF5Cj4+ID4+ID4gPj4gMTM6MDAgVVRDLgo+PiA+PiA+ID4+Cj4+ID4+ID4gPj4KPj4gPj4gPiA+Cj4+ID4+ID4gPiBPbGl2aWVyIC8gQXJuYXVkLCBoYXZlIGVpdGhlciBvZiB5b3UgaGFkIGEgY2hhbmNlIHRvIHRlc3QgdGhpcz0KICA9Cgo+PiB3aXRoCj4+ID4+IHRoZQo+PiA+PiA+ID4gZXZpbCBwcm9qZWN0IHR5cGVbMV0gYXMgeW91IHR3byBzZWVtIHRvIGJlIHRoZSBhY3RpdmUgID0KCj4+IG1haW50YWluZXJzWzJdCj4+ID4+ID4gPgo+PiA+PiA+ID4gWzFdOiBodHRwczovL2phdmFhZHZlbnR1cmUuYmxvZ3Nwb3QuaWUvMjAxMy8xMS9qZW5raW5zLQo+PiA+PiA+ID4gbWF2ZW4tam9iLXR5cGUtY29uc2lkZXJlZC1ldmlsLmh0bWwKPj4gPj4gPiA+IFsyXTogaHR0cHM6Ly9naXRodWIuY29tL2plbmtpbnNjaS9tYXZlbi1wbHVnaW4vY29tbWl0cy9tYXN0ZXIKPj4gPj4gPiA+Cj4+ID4+ID4KPj4gPj4gPgo+PiA+PiA+Cj4+ID4+ID4gLS0KPj4gPj4gPgo+PiA+PiA+IEFybmF1ZAo+PiA+PiA+Cj4+ID4+Cj4+ID4+Cj4+ID4+Cj4+ID4+IC0tCj4+ID4+IE9saXZpZXIgTGFteQo+PiA+PiBodHRwOi8vdHdpdHRlci5jb20vb2xhbXkgfCBodHRwOi8vbGlua2VkaW4uY29tL2luL29sYW15Cj4+ID4+Cj4+ID4KPj4gPgo+PiA+Cj4+ID4gLS0KPj4gPiAtLS0tLQo+PiA+IEFybmF1ZCBIPUU5cml0aWVyCj4+ID4gaHR0cDovL2FoZXJpdGllci5uZXQKPj4gPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbQo+PiA+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKPj4gPgo+PiAtLQo+PiBTZW50IGZyb20gbXkgcGhvbmUKPj4KPgo+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQyMjEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIE9jdCAxMSAyMTo0Nzo1OCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyMjEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgODVENDgxMDE2MwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDExIE9jdCAyMDE3IDIxOjQ3OjU4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjk4NzEgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgT2N0IDIwMTcgMjE6NDc6NTggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI5Nzg3IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIE9jdCAyMDE3IDIxOjQ3OjU4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjk3NzYgaW52b2tlZCBieSB1aWQgOTkpOyAxMSBPY3QgMjAxNyAyMTo0Nzo1OCAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAxMSBPY3QgMjAxNyAyMTo0Nzo1OCArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEE0MkNCMUEwMTE3Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMSBPY3QgMjAxNyAyMTo0Nzo1NiArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xClJlZmVyZW5jZXM6IDxDQStuUG5NeHlHMk5lUFhwVnFhd2U5alI9aXRIRVQ2VXVkbk45Q2pIaHY9b28tS0NyeHdAbWFpbC5nbWFpbC5jb20+IDwyMTI2OTQxLkJoZVpNS2ZpanBAZ2lnYT4gPENBS0RVTjFzX2MycVoyUXFvRDJDTC1aT2ZOcW1wZjdLem93N2R1NWp5a0N0cUplNGM1UUBtYWlsLmdtYWlsLmNvbT4gPDczOTMyMDIuNkZrUk5oVmpYOUBnaWdhPiA8Q0ErblBuTXcxdzk2PU5TTHNFa3hkSmtKdTBqWTMyYVE4NzErdHE5WXZqR1JEWUFFSkJ3QG1haWwuZ21haWwuY29tPgpEYXRlOiBXZWQsIDExIE9jdCAyMDE3IDIzOjQ3OjU0ICswMjAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IFF1b3RlZC1QcmludGFibGUKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk3eXI1NHNna2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpJbi1SZXBseS1UbzogPENBK25Qbk13MXc5Nj1OU0xzRWt4ZEprSnUwalkzMmFRODcxK3RxOVl2akdSRFlBRUpCd0BtYWlsLmdtYWlsLmNvbT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpJIHRoaW5rIHRoZSBjb25jbHVzaW9uIGlzOiAzLjUuMSBpcyBub3QgY29ycmVjdAoKaXQgc2hvdWxkIGVpdGhlciBiZToKMy41LjIgd2l0aG91dCB0aGUgMiBjbGFzc2xvYWRlciByZWxhdGVkIGlzc3Vlcy4Kb3IKMy42LjAgaW5jbHVkaW5nIHRoZSBjbGFzc2xvYWRlciByZWxhdGVkIGlzc3VlcywgYnV0IHByb2JhYmx5IGltcHJvdmVkIHdpPQp0aCAgPQoKYSBzeXN0ZW0gcHJvcGVydHkgdG8gc3dpdGNoIGJhY2sgdG8gdGhlIDMuNS4wLWJlaGF2aW9yLiBXZSBhbHNvIG5lZWQgdG8gPQogPQoKaW1wcm92ZSBJVHMgYW5kIGRvY3VtZW50YXRpb24uCgpTaW5jZSB3ZSBuZWVkIHRvIG1ha2UgYSBuZXcgcmVsZWFzZSBhbnl3YXkgSSB3b3VsZCBsaWtlIHRvIHN1Z2dlc3QgdG8gZ289CiAgPQoKZm9yIHRoZSBmaXJzdCBvcHRpb24sIGJlY2F1c2Ugc29tZSBjbGFpbSAzLjUuMCBpcyBjb3JydXB0IGFuZCB0aGUgcmVsYXRlPQpkICA9Cgppc3N1ZSBpcyBhbHJlYWR5IGZpeGVkIGZvciBxdWl0ZSBzb21lIHRpbWUuClRoaXMgc2hvdWxkIGdpdmUgdXMgbW9yZSB0aW1lIGhhdmUgYSBiZXR0ZXIgbG9vayBhdCB0aGVzZSBjbGFzc2xvYWRlciAgPQoKaXNzdWVzLgoKUm9iZXJ0CgpPbiBXZWQsIDExIE9jdCAyMDE3IDA5OjQ2OjI1ICswMjAwLCBTdGVwaGVuIENvbm5vbGx5ICA9Cgo8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cgo+IEk9RTI9ODA9OTlkIHJlYWxseSBsaWtlIGlmIHNvbWVib2R5IGNvdWxkIGRyYWZ0IHRoZSByZWxlYXNlIG5vdGVzIGZvciA9CnRoZSB0d28KPiBkaWZmZXJlbnQgY2xhc3Nsb2FkZXIgY2hhbmdlcy4gSXQgd2lsbCBtYWtlIGl0IGVhc2llciB0byBkZWNpZGUgd2hldGhlPQpyICA9Cgo+IHRvCj4gcm9sbCB3aXRoIHRoaXMgb3IgYnVtcCBtaW5vciB3aXRoIChpZiBJIHJlY2FsbCBjb3JyZWN0bHkpIHRoZSAgPQoKPiBjb3JyZXNwb25kaW5nCj4gZHJvcCBvZiBKYXZhIDcgcGVyIG91ciBwb2xpY3kgb24gSlZNcyB3aXRoIG1pbm9yIHZlcnNpb24gYnVtcAo+Cj4gT24gV2VkIDExIE9jdCAyMDE3IGF0IDA3OjMzLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj0KPiB3cm90ZToKPgo+PiArMQo+PiBldmVudHVhbGx5IGFkZGluZyBhIGZsYWcgb3Igc3lzdGVtIHByb3BlcnR5IHRvIGFjdGl2YXRlIHRoZSBuZXcgID0KCj4+IGJlaGF2aW91cgo+Pgo+PiB0aGlzIHJlbWVtYmVycyBtZSBvZiB0aGUgaWRlYSByZWdhcmRpbmcgZmxhZ3MgdG8gc3VwcG9ydCBuZXcgYmV0YSAgPQoKPj4gZmVhdHVyZXMKPj4KPj4gUmVnYXJkcywKPj4KPj4gSGVydj1DMz1BOQo+Pgo+PiBMZSBtZXJjcmVkaSAxMSBvY3RvYnJlIDIwMTcsIDA4OjEzOjEzIENFU1QgQW5kZXJzIEhhbW1hciBhID1DMz1BOWNyaXQ9CiA6Cj4+ID4gSSdtIGZlZWxpbmcgc3Ryb25nZXIgYW5kIHN0cm9uZ2VyIGFib3V0IG5vdCBoYXZpbmcgdGhpcyBjaGFuZ2UgaW4gYT0KCj4+IGJ1Z2ZpeAo+PiA+IHJlbGVhc2UuIFdoeSBub3QgZ28gZm9yIHYzLjYuMCBpZiB3ZSBkZWNpZGUgdGhhdCB0aGUgY2xhc3MgbG9hZGluZyA9CiA9Cgo+PiBjaGFuZ2UKPj4gPiBpcyB0aGUgd2F5IHRvIGdvPyBBbmQga2VlcCBidWdmaXggcmVsZWFzZXMgZm9yIGp1c3QgYnVnZml4ZXMuCj4+ID4KPj4gPiAvQW5kZXJzCj4+ID4KPj4gPiBPbiBXZWQsIE9jdCAxMSwgMjAxNyBhdCAzOjQzIEFNLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAPQpmcmVlLmZyPgo+PiA+Cj4+ID4gd3JvdGU6Cj4+ID4gPiBwZXJoYXBzIHdlIHNob3VsZCBjcmVhdGUgYSBXaWtpIHBhZ2UgZm9yCj4+IGphdmEubGFuZy5DbGFzc05vdEZvdW5kRXhjZXB0aW9uCj4+ID4gPiBhbmQKPj4gPiA+IGxpc3QgdGhlIHBsdWdpbnMgd2l0aCBrbm93biBpc3N1ZXMgYW5kIG1pbmltdW0gZml4ZWQgdmVyc2lvbgo+PiA+ID4KPj4gPiA+IHRvIGJlIGFkZGVkIGluCj4+ID4gPgo+PiA+ID4KPj4gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9FcnJvcnMrYW5kK1NvbHV0aW9uPQpzCj4+ID4gPgo+PiA+ID4gUmVnYXJkcywKPj4gPiA+Cj4+ID4gPiBIZXJ2PUMzPUE5Cj4+ID4gPgo+PiA+ID4gTGUgbWVyY3JlZGkgMTEgb2N0b2JyZSAyMDE3LCAwMjo1Mjo1MyBDRVNUIEhlcnY9QzM9QTkgQk9VVEVNWSBhID1DMz0KPUE5Y3JpdCA6Cj4+ID4gPiA+IElJVUMsIGl0J3MgTURFUExPWS0yMjEgYWJvdXQgID0KCj4+IG5ldC5mbGV4bW9qb3Mub3NzOmZsZXhtb2pvcy1tYXZlbi1wbHVnaW4KPj4gPiA+ID4KPj4gPiA+ID4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NREVQTE9ZLTIyMQo+PiA+ID4gPgo+PiA+ID4gPiBSZWdhcmRzLAo+PiA+ID4gPgo+PiA+ID4gPiBIZXJ2PUMzPUE5Cj4+ID4gPiA+Cj4+ID4gPiA+IExlIG1hcmRpIDEwIG9jdG9icmUgMjAxNywgMjA6NDg6MTMgQ0VTVCBSb2JlcnQgU2Nob2x0ZSBhID1DMz1BOT0KY3JpdCA6Cj4+ID4gPiA+ID4gRllJLCBNREVQTE9ZLTEyMSBtZW50aW9ucyBhbm90aGVyIHBsdWdpbiBiZWluZyBoaXQgYnkgdGhlCj4+IGNsYXNzbG9hZGVyCj4+ID4gPiA+ID4gY2hhbmdlcy4KPj4gPiA+ID4gPgo+PiA+ID4gPiA+IFJvYmVydAo+PiA+ID4gPiA+Cj4+ID4gPiA+ID4KPj4gPiA+ID4gPiBPbiBUdWUsIDAzIE9jdCAyMDE3IDIwOjIyOjE4ICswMjAwLCBBcm5hdWQgSD1DMz1BOXJpdGllciA8Cj4+ID4gPgo+PiA+ID4gYWhlcml0aWVyQGdtYWlsLmNvbT4KPj4gPiA+Cj4+ID4gPiA+ID4gd3JvdGU6Cj4+ID4gPiA+ID4gPiBUaGFua3MgU3RlcGhlbgo+PiA+ID4gPiA+ID4KPj4gPiA+ID4gPiA+IE9uIFR1ZSwgT2N0IDMsIDIwMTcgYXQgODoxOCBQTSwgU3RlcGhlbiBDb25ub2xseSA8Cj4+ID4gPiA+ID4gPgo+PiA+ID4gPiA+ID4gc3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4+ID4gPiA+ID4gPj4gSSBhbSBob3BpbmcgSSBjYW4gZmluZCBzb21lIHRpbWUgdG8gZG8gYSBmaW5hbCByb3VuZCBvZgo+PiBleHBlcmltZW50cwo+PiA+ID4KPj4gPiA+IGFuZAo+PiA+ID4KPj4gPiA+ID4gPiA+PiB0aGVuIGNsb3NlIHRoZSB2b3RlIHdpdGggc3VjY2VzcyBhbmQgcHVibGlzaC4KPj4gPiA+ID4gPiA+Pgo+PiA+ID4gPiA+ID4+IE9uIFR1ZSAzIE9jdCAyMDE3IGF0IDExOjEzLCBBcm5hdWQgSD1DMz1BOXJpdGllciA8Cj4+IGFoZXJpdGllckBnbWFpbC5jb20+Cj4+ID4gPgo+PiA+ID4gd3JvdGU6Cj4+ID4gPiA+ID4gPj4gPiBAU3RlcGhlbiBXaGF0IHNob3VsZCB3ZSBkbyBub3cgPwo+PiA+ID4gPiA+ID4+ID4KPj4gPiA+ID4gPiA+PiA+Cj4+ID4gPiA+ID4gPj4gPiBPbiBUdWUsIFNlcCAxOSwgMjAxNyBhdCAzOjE0IEFNLCBPbGl2aWVyIExhbXkgPAo+PiBvbGFteUBhcGFjaGUub3JnPgo+PiA+ID4gPiA+ID4+Cj4+ID4gPiA+ID4gPj4gd3JvdGU6Cj4+ID4gPiA+ID4gPj4gPj4gSGkKPj4gPiA+ID4gPiA+PiA+PiBTb3JyeSBhIGJpdCBvdXQgb2YgdGltZSBBVE0gZm9yIHRlc3RpbmcgdGhpcy4KPj4gPiA+ID4gPiA+PiA+PiBXZWxsIEkgdHJ1c3QgQXJuYXVkIHRlc3RpbmcgdGhhdCBlc3BlY2lhbGx5IGlmIHRoaXMgID0KCj4+IGltcHJvdmUKPj4gdGhlCj4+ID4gPiA+ID4gPj4gPj4gcGVyZm9ybWFuY2UKPj4gPiA+ID4gPiA+PiA+PiBvZiB0aGlzIHZlcnkgZ3JlYXQvYXdlc29tZS91c2VycyBvcmllbnRlZCBwbHVnaW4gOlAKPj4gPiA+ID4gPiA+PiA+Pgo+PiA+ID4gPiA+ID4+ID4+IE9uIDEzIFNlcHRlbWJlciAyMDE3IGF0IDIyOjE5LCBBcm5hdWQgSD1DMz1BOXJpdGllcgo+PiA+ID4gPiA+ID4+ID4+IDxhaGVyaXRpZXJAYXBhY2hlLm9yZz4KPj4gPiA+ID4gPiA+PiA+Pgo+PiA+ID4gPiA+ID4+ID4+IHdyb3RlOgo+PiA+ID4gPiA+ID4+ID4+ID4gRGFtbmVkLCBjYW4ndCB3ZSBiZSBhbm9ueW1vdXMgb24gR2l0aHViID8KPj4gPiA+ID4gPiA+PiA+PiA+IEkgbWFpbnRhaW4gaXQgaXMgYSBiaWcgd29yZCwgSSdtIHRyeWluZyB0byBmaXggbW9yZSBiPQp1Z3MKPj4gdGhhbgo+PiA+ID4gPiA+ID4+ID4+ID4gSQo+PiA+ID4gPiA+ID4+ID4+ID4gYWRkCj4+ID4gPiA+ID4gPj4KPj4gPiA+ID4gPiA+PiBuZXcKPj4gPiA+ID4gPiA+Pgo+PiA+ID4gPiA+ID4+ID4+ID4gb25lcwo+PiA+ID4gPiA+ID4+ID4+ID4gSSBhZGRlZCBPbGVnIGluIHRoZSBsb29wIGFzIGhlIGNvbnRyaWJ1dGVkIGEgbG90IG9uIGk9CnQgID0KCj4+IHRvbwo+PiA+ID4gPiA+ID4+ID4+ID4gSSBkaWQgYSBxdWljayB0ZXN0IHRvIGJ1aWxkIG9uIEplbmtpbnMgMi42MC4zIG91ciBtYXY9CmVuCj4+IGNvcmUKPj4gPiA+Cj4+ID4gPiB3aXRoCj4+ID4gPgo+PiA+ID4gPiA+ID4+IHRoZQo+PiA+ID4gPiA+ID4+Cj4+ID4gPiA+ID4gPj4gPj4gRXZpbAo+PiA+ID4gPiA+ID4+ID4+Cj4+ID4gPiA+ID4gPj4gPj4gPiBNYXZlbiBwbHVnaW4gMi4xNyBvbiBhIGxvY2FsIFNTSCBhZ2VudCBhbmQgaXQgaXMgb2sKPj4gPiA+ID4gPiA+PiA+PiA+IEJ1dCBpdCBpcyByZWFsbHkgYSBxdWljayB0ZXN0IC4uLgo+PiA+ID4gPiA+ID4+ID4+ID4KPj4gPiA+ID4gPiA+PiA+PiA+IENoZWVycwo+PiA+ID4gPiA+ID4+ID4+ID4KPj4gPiA+ID4gPiA+PiA+PiA+Cj4+ID4gPiA+ID4gPj4gPj4gPgo+PiA+ID4gPiA+ID4+ID4+ID4gT24gV2VkLCBTZXAgMTMsIDIwMTcgYXQgMTA6MDcgQU0sIFN0ZXBoZW4gQ29ubm9sbHkgPAo+PiA+ID4gPiA+ID4+ID4+ID4KPj4gPiA+ID4gPiA+PiA+PiA+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+PiA+ID4gPiA+ID4+ID4+ID4gPiBPbiAxMyBTZXB0ZW1iZXIgMjAxNyBhdCAwMTowNSwgU3RlcGhlbiBDb25ub2xseSA8Cj4+ID4gPiA+ID4gPj4gPj4gPiA+Cj4+ID4gPiA+ID4gPj4gPj4gPiA+IHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgo+PiA+ID4gPiA+ID4+ID4+ID4gPj4gT24gMTMgU2VwdGVtYmVyIDIwMTcgYXQgMDA6MjYsIEFuZGVycyBIYW1tYXIKPj4gPiA+ID4gPiA+PiA+PiA+ID4+IDxhbmRlcnNAaGFtbWFyLm5ldD4KPj4gPiA+ID4gPiA+PiA+Pgo+PiA+ID4gPiA+ID4+ID4+IHdyb3RlOgo+PiA+ID4gPiA+ID4+ID4+ID4gPj4+IE9uIFR1ZSwgU2VwIDEyLCAyMDE3IGF0IDg6NTQgUE0sIFN0ZXBoZW4gQ29ubm9sbHk9CiA8Cj4+ID4gPiA+ID4gPj4gPj4gPiA+Pj4KPj4gPiA+ID4gPiA+PiA+PiA+ID4+PiBzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4gPiA+ID4gPiA+PiA+PiA+ID4+PiA+IEhhdmUgd2UgZ290IGFueSBmZWVkYmFjayBmcm9tIHRoZSBlbWJlZGRlcgo+PiBpbnRlZ3JhdGlvbnMKPj4gPiA+Cj4+ID4gPiB5ZXQ/Cj4+ID4gPgo+PiA+ID4gPiA+ID4+ID4+ID4gPj4+IEkgaGF2ZW4ndCBoZWFyZCBhbnl0aGluZyBmcm9tIHRoZSBtMmUgcGVvcGxlLiBNYXk9CmJlICA9Cgo+PiB3ZQo+PiA+ID4KPj4gPiA+IG5lZWQgdG8KPj4gPiA+Cj4+ID4gPiA+ID4gPj4gcGluZwo+PiA+ID4gPiA+ID4+Cj4+ID4gPiA+ID4gPj4gPj4gPiB0aGVtCj4+ID4gPiA+ID4gPj4gPj4gPgo+PiA+ID4gPiA+ID4+ID4+ID4gPj4+IGRpcmVjdGx5LiBJIGNhbiBjb250YWN0IEZyZWQgQnJpY29uLgo+PiA+ID4gPiA+ID4+ID4+ID4gPj4+Cj4+ID4gPiA+ID4gPj4gPj4gPiA+Pj4gL0FuZGVycwo+PiA+ID4gPiA+ID4+ID4+ID4gPj4KPj4gPiA+ID4gPiA+PiA+PiA+ID4+IFBsZWFzZSBkbywgYWxzbyBpZiBhbnlvbmUgaGFzIGEgY29udGFjdCBpbiBuZXRiZWFuPQpzICA9Cgo+PiBvcgo+PiA+ID4KPj4gPiA+IGludGVsbGlqCj4+ID4gPgo+PiA+ID4gPiA+ID4+IGFuZAo+PiA+ID4gPiA+ID4+Cj4+ID4gPiA+ID4gPj4gPj4gPiBjb3VsZAo+PiA+ID4gPiA+ID4+ID4+ID4KPj4gPiA+ID4gPiA+PiA+PiA+ID4+IGxldCB0aGVtIGtub3cgd2UnZCBsaWtlIGVpdGhlciBmZWVkYmFjayBvciAid2UncmUgPQpvayAgPQoKPj4gaWYKPj4gPiA+ID4gPiA+PiA+PiA+ID4+IE1ORy02Mjc1Cj4+ID4gPiA+ID4gPj4gPj4KPj4gPiA+ID4gPiA+PiA+PiBtYWtlcwo+PiA+ID4gPiA+ID4+ID4+Cj4+ID4gPiA+ID4gPj4gPj4gPiA+PiB0cm91YmxlIGZvciB1cywgZ28gYWhlYWQgYW5kIHJlbGVhc2UiLiBJJ2QgbGlrZSB0bz0KICA9Cgo+PiBjbG9zZQo+PiA+ID4gPiA+ID4+ID4+ID4gPj4gdGhlCj4+ID4gPiA+ID4gPj4KPj4gPiA+ID4gPiA+PiB2b3RlCj4+ID4gPiA+ID4gPj4gb24KPj4gPiA+ID4gPiA+Pgo+PiA+ID4gPiA+ID4+ID4+ID4gRnJpZGF5Cj4+ID4gPiA+ID4gPj4gPj4gPgo+PiA+ID4gPiA+ID4+ID4+ID4gPj4gMTM6MDAgVVRDLgo+PiA+ID4gPiA+ID4+ID4+ID4gPgo+PiA+ID4gPiA+ID4+ID4+ID4gPiBPbGl2aWVyIC8gQXJuYXVkLCBoYXZlIGVpdGhlciBvZiB5b3UgaGFkIGEgY2hhbmNlIHQ9Cm8gID0KCj4+IHRlc3QKPj4gPiA+Cj4+ID4gPiB0aGlzCj4+ID4gPgo+PiA+ID4gPiA+ID4+IHdpdGgKPj4gPiA+ID4gPiA+Pgo+PiA+ID4gPiA+ID4+ID4+IHRoZQo+PiA+ID4gPiA+ID4+ID4+Cj4+ID4gPiA+ID4gPj4gPj4gPiA+IGV2aWwgcHJvamVjdCB0eXBlWzFdIGFzIHlvdSB0d28gc2VlbSB0byBiZSB0aGUgYWN0aT0KdmUKPj4gPiA+ID4gPiA+Pgo+PiA+ID4gPiA+ID4+IG1haW50YWluZXJzWzJdCj4+ID4gPiA+ID4gPj4KPj4gPiA+ID4gPiA+PiA+PiA+ID4gWzFdOiAgPQoKPj4gaHR0cHM6Ly9qYXZhYWR2ZW50dXJlLmJsb2dzcG90LmllLzIwMTMvMTEvamVua2lucy0+Cj4+ID4+Cj4+ID4gPiA+ID4gPj4gPj4gPiA+Cj4+ID4gPiA+ID4gPj4gPj4gPiA+ID4gbWF2ZW4tam9iLXR5cGUtY29uc2lkZXJlZC1ldmlsLmh0bWwgWzJdOgo+PiA+ID4gPiA+ID4+ID4+ID4gPiAgPQoKPj4gaHR0cHM6Ly9naXRodWIuY29tL2plbmtpbnNjaS9tYXZlbi1wbHVnaW4vY29tbWl0cy9tYXN0ZXIKPj4gPiA+ID4gPiA+PiA+PiA+Cj4+ID4gPiA+ID4gPj4gPj4gPiAtLQo+PiA+ID4gPiA+ID4+ID4+ID4KPj4gPiA+ID4gPiA+PiA+PiA+IEFybmF1ZAo+PiA+ID4gPiA+ID4+ID4+Cj4+ID4gPiA+ID4gPj4gPj4gLS0KPj4gPiA+ID4gPiA+PiA+PiBPbGl2aWVyIExhbXkKPj4gPiA+ID4gPiA+PiA+PiBodHRwOi8vdHdpdHRlci5jb20vb2xhbXkgfCBodHRwOi8vbGlua2VkaW4uY29tL2luL29sYW15PQoKPj4gPiA+ID4gPiA+PiA+Cj4+ID4gPiA+ID4gPj4gPiAtLQo+PiA+ID4gPiA+ID4+ID4gLS0tLS0KPj4gPiA+ID4gPiA+PiA+IEFybmF1ZCBIPUMzPUE5cml0aWVyCj4+ID4gPiA+ID4gPj4gPiBodHRwOi8vYWhlcml0aWVyLm5ldAo+PiA+ID4gPiA+ID4+ID4gTWFpbC9HVGFsazogYWhlcml0aWVyIEFUIGdtYWlsIERPVCBjb20KPj4gPiA+ID4gPiA+PiA+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXIKPj4gPiA+ID4gPiA+Pgo+PiA+ID4gPiA+ID4+IC0tCj4+ID4gPiA+ID4gPj4gU2VudCBmcm9tIG15IHBob25lCj4+ID4gPiA+ID4KPj4gPiA+ID4gPgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cgo+PiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4gPgo+PiA+ID4gPiAgPQoKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQoKPj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4KPj4gPiA+ICA9Cgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cgo+PiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KPj4KPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQoKPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pgo+PiAtLQo+IFNlbnQgZnJvbSBteSBwaG9uZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NDE4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgIDQgMjE6MzU6NDAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDE4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEFFMzEyMTBCQzAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAgNCBOb3YgMjAxNyAyMTozNTo0MCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDc0Njg2IGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMjE6MzU6NDAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc0NjE5IGludm9rZWQgYnkgdWlkIDUwMCk7IDQgTm92IDIwMTcgMjE6MzU6NDAgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NDYwNyBpbnZva2VkIGJ5IHVpZCA5OSk7IDQgTm92IDIwMTcgMjE6MzU6NDAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMDQgTm92IDIwMTcgMjE6MzU6NDAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmwgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCA5NEZGQzFBMDIxNzsKCVNhdCwgIDQgTm92IDIwMTcgMjE6MzU6MzcgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sICJSb21haW4gTWFubmktQnVjYXUiCiA8cm1hbm5pYnVjYXVAZ21haWwuY29tPgpTdWJqZWN0OiBSZTogTWF2ZW4gNC4wLjAKUmVmZXJlbmNlczogPENBK25Qbk13RUg5WjJteXA3MXVhU3JkY3lMSlJGckUtVnJ0MjAxOTFyZDAxaCtVZmhqd0BtYWlsLmdtYWlsLmNvbT4gPENBKzI5OFVqcDZkWkxWMXlOcWJQQmM0ZldCRHpvekV4Y0NtN0Y1NkNuPUUtOUZhRGE4QUBtYWlsLmdtYWlsLmNvbT4gPENBSDl1MTBudG1GQlpjVGg5WXZBYkVLZ0R1Sk45WGQ1eHVlcE80ZmlSNUJLUnF1WkJQZ0BtYWlsLmdtYWlsLmNvbT4gPDE1NDk4NTYuSGUxTVNCeDNVU0BnaWdhPiA8Q0ErblBuTXpZR3AyVkVIVFkwVVhOU3hhVnZmQ1RvWit0bVFEVmNQelFWRzZ6Yk5zb0hnQG1haWwuZ21haWwuY29tPiA8Q0FDTEU9N090VVc5TW1pNWs4UVFrZlAzR2JCZ3VYSk1GTHJZVlhxR3kwMWJ0X0Q0ZFl3QG1haWwuZ21haWwuY29tPiA8Q0ErblBuTXpVUCtBPTJqdUpFWHB2dTJzb0FlRz1zMFF0Y3dXRHMwMGhKNEY1cm1UVGZnQG1haWwuZ21haWwuY29tPiA8Q0FDTEU9N01ZSDVUeXdFWkNEWmhQUT0ySGJ1YW4xWkx4OXpyUXV4eDhQUS1WUTJHelhnQG1haWwuZ21haWwuY29tPgpEYXRlOiBTYXQsIDA0IE5vdiAyMDE3IDIyOjM1OjM1ICswMTAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IFF1b3RlZC1QcmludGFibGUKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk4NjdsbHlha2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpJbi1SZXBseS1UbzogPENBQ0xFPTdNWUg1VHl3RVpDRFpoUFE9MkhidWFuMVpMeDl6clF1eHg4UFEtVlEyR3pYZ0BtYWlsLmdtYWlsLmNvbT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpPbiBTYXQsIDA0IE5vdiAyMDE3IDE4OjM0OjE0ICswMTAwLCBSb21haW4gTWFubmktQnVjYXUgID0KCjxybWFubmlidWNhdUBnbWFpbC5jb20+IHdyb3RlOgoKPiAyMDE3LTExLTA0IDE4OjE3IEdNVCswMTowMCBTdGVwaGVuIENvbm5vbGx5ICA9Cgo+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPjoKPj4gT24gU2F0IDQgTm92IDIwMTcgYXQgMTc6MTEsIFJvbWFpbiBNYW5uaS1CdWNhdSA8cm1hbm5pYnVjYXVAZ21haWwuY29tPQo+Cj4+IHdyb3RlOgo+Pgo+Pj4gTXkgd2lzaGxpc3QgYXMgYSB1c2VyIHdvdWxkIGJlOgo+Pj4KPj4+IC0gaW5jcmVtZW50YWwgYnVpbGQgKGJhc2VkIG9uIHNjbSBpcyBmaW5lKQo+Pj4gLSBzb21lIGJ1aWx0IGluIHNjcmlwdGluZyAoZ3Jvb3Z5IGJhc2VkPykKPj4KPj4KPj4gSSBoYXZlIGEgd29ycnkgZm9yIGdyb292eSB3aXRoIEphdmEgOSsKPgo+IFVuZGVyc3RhbmQsIGhlcmUgaXMgdGhlIGxvbmcgdmVyc2lvbiBvZiB0aGF0IHdpc2g6Cj4KPiAxLiBqYXZhIC0+IGdyb292eSBpcyB2ZXJ5IGRvYWJsZSAoY29tcGFyZWQgdG8gb3RoZXIgbGFuZ3VhZ2UpIHNvIGl0IGlzPQoKPiB0aGUgbmF0dXJhbCBsYW5ndWFnZSBmb3IgbWF2ZW4gSU1ITwo+IDIuIGdyb292eSB3aWxsIGhhdmUgdG8gc3VwcG9ydCBKYXZhIDkgLSB0byBiZSBob25lc3QgSSB3b3JyeSBhcyBtdWNoCj4gZm9yIGEgcGxhaW4gamF2YSBsaWIgdGhhbiBmb3IgZ3Jvb3Z5IHNvIGd1ZXNzIGl0IGlzIDEtMQo+IDMuIEknbSBoYXBweSB0byBoYXZlIGEgamF2YSBzY3JpcHRpbmcgYWx0ZXJuYXRpdmUgKHNyYy9idWlsZC9qYXZhKQo+IHdoaWNoIGlzIG5vdCBhdmFpbGFibGUgb3V0c2lkZSB0aGUgc2NvcGUgb2YgYSBwbHVnaW4gKD0zRCBubyBpbmhlcml0ZWQ9Cgo+IGluIGNvbXBpbGUgb3IgdGVzdCBzY29wZXMpCj4KPj4KPj4gQW5kIHNjcmlwdGluZyBpcyB0aGUgcGF0aCB0byB0aGUgZGFyayBzaWRlIG9mIGltcGVyYXRpdmUgYnVpbGRzLi4uIGJ1PQp0Cj4+IHByb3Bvc2FscyB3ZWxjb21lCj4KPiBUaGlzIGlzIHRydWUgYnV0IHRoaXMgaXMgYWxzbyBtYW5kYXRvcnkgdG9kYXkuIFRoZXJlIGlzIGEgc21hbGwKPiBhbHRlcm5hdGl2ZSB0byB0aGF0IGFuZCBJIHdvdWxkIGJlIGFzIGhhcHB5IGlmIG1hdmVuIGNhbiBkbyBpdDoKPiBzdXBwb3J0IG1vam8gZnJvbSB0aGUgcmVhY3RvciAoaWUgaGF2aW5nIGEgcHJvamVjdCB3aXRoIHRoaXMgbGF5b3V0Ogo+IHBhcmVudC9bbW9kdWxlMSwgbXktbWF2ZW4tcGx1Z2luXSkuIElmIHRoaXMgd29ya3MgdGhlbiBubyBuZWVkIG9mCj4gc2NyaXB0aW5nCj4gYnV0IHRvZGF5IHlvdSBtdXN0IHJlbGVhc2UgdGhlIG1vam8gYmVmb3JlIHVzaW5nIGl0IGluIHlvdXIgYnVpbGQKPiB3aGljaCBpbXBvc2VzIHRvIHVzZSBzY3JpcHRpbmcuCgpzb3VuZHMgbGlrZSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MTE4CnJpZ2h0PwoKPgo+Pgo+Pgo+Pj4gLSBwbHVnaW4gc29ydGluZyBmcm9tIHRoZSBwb20gKGN1cnJlbnQgcnVsZXMgYXJlIGRldGVybWluaXN0aWMgYnV0IHQ9Cm9vICA9Cgo+Pj4gaGFyZAo+Pj4gdG8gdXNlIHNvIGRlZmluaW5nIGEgZGVwZW5kZW5jeSBiZXR3ZWVuIHR3byBleGVjdXRpb25zIGluIHRoZSBzYW1lICA9Cgo+Pj4gcGhhc2UKPj4+IHdvdWxkIGJlIHZlcnkgaGFuZHkgLSBkZXBlbmRzLW9uIHRhZz8pCj4+Pgo+Pj4gQXMgYSBwbHVnaW4gZGV2ZWxvcHBlcjoKPj4+Cj4+PiAtIHByb2dyYW1tYXRpYyBjb21wb25lbnQgbG9va3VwIGFwaSAoaXQgaXMgZGVwcmVjYXRlZCBhdCB0aGUgbW9tZW50KT0KCj4+PiAtIGFiaWxpdHkgdG8gY29udHJpYnV0ZSBkZXBlbmRlbmNpZXMgZm9yIG5leHQgcGx1Z2lucy9waGFzZXMKPj4+IChyZXNvbHZlZEFydGlmYWN0cykKPj4+Cj4+PiBMZSA0IG5vdi4gMjAxNyAxNzowMywgIlN0ZXBoZW4gQ29ubm9sbHkiICA9Cgo+Pj4gPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+Cj4+PiBhID1FOWNyaXQgOgo+Pj4KPj4+ID4gT24gNCBOb3ZlbWJlciAyMDE3IGF0IDA3OjMwLCBIZXJ2PUU5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mPQpyPgo+Pj4gd3JvdGU6Cj4+PiA+Cj4+PiA+ID4gTGUgc2FtZWRpIDQgbm92ZW1icmUgMjAxNywgMTQ6NDM6NDYgQ0VUIEpvaG4gUGF0cmljayBhID1FOWNyaXQgOj0KCj4+PiA+ID4gPiBJJ3ZlIGdvdCAgYSBmZXcgdXBkYXRlcyBJIGZlZWwgd291bGQgYmUgdXNlZnVsIGZvciB0aGUgbmV4dCBtYT0Kam9yCj4+PiA+ID4gdmVyc2lvbjsKPj4+ID4gPiA+Cj4+PiA+ID4gPiAxKSBQYWNrYWdpbmcgdHlwZSBnZW5lcmljICdhcmNoaXZlJywgb3Igc3BlY2lmaWMgemlwIG9yIHRhci5nej0KCj4+PiA+ID4gPiAtIG1heWJlIGEgdXNlciBwcm9wZXJ0eSB0byBlbmFibGUgemlwIGFuZC9vciB0YXIuZ3oKPj4+ID4gPiA+Cj4+PiA+ID4gPiAyKSBQYWNrYWdpbmcgdHlwZSBnZW5lcmljICdhcHBsaWNhdGlvbicsIG9yIHNwZWNpZmljIHJwbSBvciBkZT0KYgo+Pj4gPiA+ID4gLSBpbiBmdXR1cmUgY291bGQgYmUgZXh0ZW5kZWQgZm9yIHdpbmRvd3MgaW5zdGFsbGVycyB0b28KPj4+ID4gPiA+Cj4+PiA+ID4gPiBPdmVyIHRoZSBwYXN0IDYgeWVhcnMgSSd2ZSBtYWlubHkgY3JlYXRlZCBqYXIsIHdhciBvciBlYXIsIGJ1dD0KICA9Cgo+Pj4gZm9yCj4+PiA+ID4gPiBkZXBsb3ltZW50IHRoZSBzdGFuZGFyZCBpcyBidW5kbGUgaXQgdXAgaW50byBhIHRhci5neiBvciB6aXAsID0KID0KCj4+PiBhbG9uZwo+Pj4gPiA+ID4gd2l0aCB0aGUgYW5zaWJsZSBzY3JpcHRzIG9yIGN1c3RvbSBzY3JpcHRzLiBTbyBJIHVzdWFsbHkgdXNlIHA9Cm9tCj4+PiA+ID4gPiBwYWNrYWdpbmcgdGhlbiBhZGRpbmcgYXNzZW1ibHkgcGx1Z2luLCBqdXN0IGZlZWxzIHN0cmFuZ2UgZG9pbj0KZyAgPQoKPj4+IHRoYXQKPj4+ID4gPiA+IGFsbCB0aGUgdGltZSBhbmQgaXQgbWlnaHQgbWFrZSBpdCBtb3JlIHNpbXBsZXIgZm9yIGV2ZXJ5b25lLgo+Pj4gPiA+IGRvIHlvdSBoYXZlIHNvbWUgZGVtb3Mgb2Ygc3VjaCBwYWNrYWdpbmdzPwo+Pj4gPiA+Cj4+PiA+Cj4+PiA+IFRoaXMgZmVlbHMgbGlrZSBwbHVnaW4gbGV2ZWwgZnVuY3Rpb25hbGl0eS4gSSBhbSB1bmNsZWFyIGhvdyB0aGlzID0KID0KCj4+PiBuZWVkcwo+Pj4gPiBjb3JlIGNoYW5nZXMuIENvdWxkIHlvdSBwcm92aWRlIGRldGFpbHMgd2hlcmUgeW91IGZlZWwgd2UgbmVlZCB0byA9CiA9Cgo+Pj4gbW9kaWZ5Cj4+PiA+IGNvcmUgZm9yIHRoaXMgKG9yIGlzIGl0IHlvdSB3YW50IHRvIGJlIGFibGUgdG8gZmV0Y2ggc29tZSBhcnRpZmFjdD0KcyAgPQoKPj4+IGZyb20KPj4+ID4gd2l0aGluIHRoZSB6aXAsIGlvdyBhIHppcCB3aXRoIHRoZSBvdGhlciBhcnRpZmFjdHMgZW1iZWRkZWQgYW5kIHdlPQogID0KCj4+PiAicmVhY2gKPj4+ID4gaW4iPwo+Pj4gPgo+Pj4gPgo+Pj4gPiA+Cj4+PiA+ID4gPgo+Pj4gPiA+ID4gMykgQ2hlY2tzdW0sIHN3aXRjaCB0byBTSEEzLCBkcm9wIG1kNSBhbmQgc2hhMS4gSWYgd2UgY2FyZSBhYm89CnV0Cj4+PiA+ID4gPiBzZWN1cml0eSwgd2Ugc2hvdWxkIGtlZXAgdXAgdG8gZGF0ZSB3aXRoIHdoYXQgaXMgY29uc2lkZXJlZCAgPQoKPj4+IHNlY3VyZQo+Pj4gPiA+ID4gc3RpbGwuCj4+PiA+ID4gLTEKPj4+ID4gPiBjaGVja3N1bXMgYXJlIGNoZWNrc3Vtcywgbm90IHNlY3VyaXR5Cj4+PiA+ID4gaWYgeW91IHdhbnQgc2VjdXJpdHksIGRvbid0IGxvb2sgYXQgY2hlY2tzdW1zIGJ1dCBhdCBzaWduYXR1cmVzCj4+PiA+ID4KPj4+ID4gPiBUaGlzIG1ha2VzIG1lIHRoaW5rIHRoYXQgd2Ugc2hvdWxkIGZpbmQgYSB3YXkgdG8gc2hvdyBzZWN1cml0eSAgPQoKPj4+ICh3aXRoCj4+PiA+IHRoZXNlCj4+PiA+ID4gc2lnbmF0dXJlcyk6IEkgZG9uJ3Qga25vdyBwcmVjaXNlbHkgaG93LCBidXQgdGhhdCB3b3VsZCBkZWZpbml0ZT0KbHkgID0KCj4+PiBiZQo+Pj4gPiA+IHVzZWZ1bAo+Pj4gPiA+Cj4+PiA+ID4gPgo+Pj4gPiA+ID4gMykgRGViaWFuIHN0eWxlIHJlcG8gbWFuYWdlbWVudC4gSW5zdGVhZCBvZiBoYXZpbmcgYSBtYXNzaXZlICA9Cgo+Pj4gYnVja2V0Cj4+PiBvZgo+Pj4gPiA+ID4gYXJ0ZWZhY3RzLCBzdGFydCBoYXZpbmcgcmVwbydzIGVpdGhlciBiYXNlZCB1cG9uIGphdmEgY2xhc3MgID0KCj4+PiB2ZXJzaW9uLAo+Pj4gPiA+ID4gb3IgbWF2ZW4gbWFqb3IgcmVsZWFzZSB2ZXJzaW9uLiBBbHNvIHNwbGl0IG1vcmUgdGhhbiBqdXN0ICA9Cgo+Pj4gcmVsZWFzZSBhbmQKPj4+ID4gPiA+IHNuYXBzaG90LCBtYXliZSBjb3JlLCBwbHVnaW5zLCBnZW5lcmFsLi4uCj4+PiA+ID4gPgo+Pj4gPiA+ID4gTm90IHN1cmUgZXhhY3RseSB0aGUgYmVzdCBzb2x1dGlvbiwgYnV0IGFzIG1hdmVuIGNlbnRyYWwgaGFzICA9Cgo+Pj4gc3R1ZmYKPj4+ID4gPiA+IGdvaW5nIGJhY2sgeWVhcnMgYW5kIHllYXJzLiBIb3cgbXVjaCBvZiB0aGUgb2xkIHN0dWZmIHdpbGwgYmUgPQogPQoKPj4+IHVzZWQKPj4+IGZvcgo+Pj4gPiA+ID4gbmV3IHByb2plY3RzIGdvaW5nIGZvcndhcmQuCj4+PiA+ID4gd2hhdCdzIHRoZSBvYmplY3RpdmU/Cj4+PiA+ID4gd2l0aCBMaW51eCBkaXN0cmlidXRpb25zLCB0aGVyZSBhcmUgY29tcGF0aWJpbGl0eSBpc3N1ZXMgdGhhdCAgPQoKPj4+IHJlcXVpcmUKPj4+ID4gPiBkaWZmZXJlbnQgYXJ0aWZhY3RzLCBhbmQgYW4gb2JqZWN0aXZlIHRvIGtlZXAgZGlzdHJvIG9uIG9uZSBDRC9EPQpWRAo+Pj4gPiA+IEJ1dCBKYXZhIGFuZCBjZW50cmFsIGRvbid0IGhhdmUgc3VjaCBjb25zaWRlcmF0aW9ucwo+Pj4gPiA+Cj4+PiA+ID4gPgo+Pj4gPiA+ID4gQW55d2F5LCB0aG9zZSBhcmUgc29tZSBvZiBteSB0aG91Z2h0cywgaWYgdGhlaXIgaXMgYSBtb3JlIGZvcm09CmFsICA9Cgo+Pj4gd2F5Cj4+PiA+ID4gPiBvZiBzdWdnZXN0aW5nIHRoZW0gbGV0IG1lIGtub3cgYW5kIEknbGwgYmUgaGFwcHkgdG8gcmFpc2UgdGhlbT0KCj4+PiA+ID4gPiBzZXBhcmF0ZWx5IGZvciBjb25zaWRlcmF0aW9uIGFuZCBtYXliZSBhbHNvIGRvIHNvbWUgcHVsbCAgPQoKPj4+IHJlcXVlc3RzIGZvcgo+Pj4gPiA+ID4gdGhlbS4KPj4+ID4gPiBJIHRoaW5rIHRoZSBwYWNrYWdpbmcgaWRlYXMgZGVzZXJ2ZSBzb21lIGRlbW9zIHRvIHNlZSBpZiBzb21ldGhpPQpuZyAgPQoKPj4+IGNhbgo+Pj4gYmUKPj4+ID4gPiBtYWRlCj4+PiA+ID4gZ2VuZXJpYyBlbm91Z2gKPj4+ID4gPgo+Pj4gPiA+IFJlZ2FyZHMsCj4+PiA+ID4KPj4+ID4gPiBIZXJ2PUU5Cj4+PiA+ID4KPj4+ID4gPiA+Cj4+PiA+ID4gPiBKb2huCj4+PiA+ID4gPgo+Pj4gPiA+ID4gT24gNCBOb3ZlbWJlciAyMDE3IGF0IDEzOjE4LCBQYXVsIEhhbW1hbnQgPHBhdWxAaGFtbWFudC5vcmc+ICA9Cgo+Pj4gd3JvdGU6Cj4+PiA+ID4gPiA+PiA+ICozLiBNb3JlIHBsdWdnYWJsZSBkZXBlbmRlbmN5IHJlc29sdmVyOioKPj4+ID4gPiA+ID4+Cj4+PiA+ID4gPiA+PiBJIGFtIHdpbGxpbmcgdG8gbGV0IHRoaXMgYmUgb3B0aW9uYWwgc2NvcGUgZm9yIG5vdy4gTWF5IGJlID0KID0KCj4+PiB5YW5rZWQKPj4+IGlmCj4+PiA+ID4gdG9vCj4+PiA+ID4gPiA+PiByaXNreSBvciBub3QgcmVhZHkgaW4gdGltZQo+Pj4gPiA+ID4gPgo+Pj4gPiA+ID4gPiBJIGRvbid0IHNlZSBob3cgeW91IGNhbiBldmVuIG1ha2UgaXQgb3B0aW9uYWwgd2l0aG91dCBhIHBvbQo+Pj4gc3BlY2lmaWVkCj4+PiA+ID4gd2F5Cj4+PiA+ID4gPiA+IG9mIHNheWluZyAibm90IG1hdmVuIGNlbnRyYWwsIHRoaXMgd2F5L3BsYWNlIGluc3RlYWQiCj4+PiA+ID4gPgo+Pj4gPiA+ID4gID0KCj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLQo+Pj4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+ID4gPgo+Pj4gPiA+Cj4+PiA+ID4KPj4+ID4gPiAgPQoKPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotCj4+PiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+PiA+ID4KPj4+ID4gPgo+Pj4gPgo+Pj4KPj4gLS0KPj4gU2VudCBmcm9tIG15IHBob25lCj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQxOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgTm92ICA0IDIxOjQyOjI4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQxOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDQkE0QzEwQkUzCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgIDQgTm92IDIwMTcgMjE6NDI6MjggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4MTI1MSBpbnZva2VkIGJ5IHVpZCA1MDApOyA0IE5vdiAyMDE3IDIxOjQyOjI4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MTE2NiBpbnZva2VkIGJ5IHVpZCA1MDApOyA0IE5vdiAyMDE3IDIxOjQyOjI4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODExNTQgaW52b2tlZCBieSB1aWQgOTkpOyA0IE5vdiAyMDE3IDIxOjQyOjI4IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDA0IE5vdiAyMDE3IDIxOjQyOjI4ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgREQ4NjgxQTAyMTcKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsICA0IE5vdiAyMDE3IDIxOjQyOjI1ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBNYXZlbiA0LjAuMApSZWZlcmVuY2VzOiA8Q0ErblBuTXdFSDlaMm15cDcxdWFTcmRjeUxKUkZyRS1WcnQyMDE5MXJkMDFoK1VmaGp3QG1haWwuZ21haWwuY29tPiA8Q0FMWUdtMXhiMU1PSHBzWCs3RUc4eDRiZC16SForTzk1ZTJZNVkyRHVkWmlFRTZlTkNBQG1haWwuZ21haWwuY29tPgpEYXRlOiBTYXQsIDA0IE5vdiAyMDE3IDIyOjQyOjIzICswMTAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk4Njd3eGg0a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpJbi1SZXBseS1UbzogPENBTFlHbTF4YjFNT0hwc1grN0VHOHg0YmQtekhaK085NWUyWTVZMkR1ZFppRUU2ZU5DQUBtYWlsLmdtYWlsLmNvbT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpPbiBTYXQsIDA0IE5vdiAyMDE3IDIxOjQyOjM0ICswMTAwLCBNYXJrIERlcnJpY3V0dCA8bWFya0B0YWxpb3MuY29tPiB3cm90ZToKCj4gV291bGQgYWRkaW5nIHN1cHBvcnQgZm9yIDIgbmV3IHNjb3BlcyBiZSB2aWFibGUgd2l0aG91dCBjaGFuZ2luZyB0aGUgcG9tCj4gbW9kZWwgKCB0aGUgRFREL1hTRCBkb2Vzbid0IGFjdHVhbGx5IGRlZmluZSB0aGUgdmFsdWVzIHNvIHRoYXQgc2hvdWxkIGJlCj4gb2spLgo+Cj4gU3BlY2lmaWNhbGx5IEknbSB0aGlua2luZyAnYW5ub3RhdGlvbicgKCBoYXZpbmcgYW5ub3RhdGlvblBhdGhzIG9uIG0tYy1wCj4gd2FzIGEgd29ya2Fyb3VuZCwgYnV0IGtpbmRhIGhvcnJpYmxlIGluIHByYWN0aWNlICksIGFuZCBtYXliZSAibW9kdWxlIiAgCj4gZm9yCj4gdGhlIG5ldyBtb2R1bGUgcGF0aD8KCkkgd291bGQgbGlrZSB0byBkcm9wIHN0cmljdCBzY29wZXMgaW4gZ2VuZXJhbCBhbmQgZ2l2ZSBwbHVnaW5zIHRoZSAgCm9wcG9ydHVuaXR5IHRvIGRlcGVuZCBvbiBzcGVjaWZpYyBzY29wZWQgZGVwZW5kZW5jaWVzLgpJIGhvcGUgeW91IGFyZSBhd2FyZSB0aGF0IG1vZHVsZXMgYWxyZWFkeSBlbmQgdXAgb24gdGhlIG1vZHVsZXBhdGggYmFzZWQgIApvbiB0aGUgbW9kdWxlZGVzY3JpcHRvcihzKS4gU28gSSBkb24ndCBzZWUgdGhlIG5lZWQgZm9yIHRoaXMgc2NvcGUuICAKKHVubGVzcyB5b3UgaGF2ZSB0aGlzIHdpc2ggdGhhdCBpbiB0aGUgZW5kIE1hdmVuIHdpbGwgY3JlYXRlIHRoZSBtb2R1bGUgIApkZXNjcmlwdG9yIGJhc2VkIG9uIHRoaXMsIGJ1dCBJIHN0aWxsIHRoaW5rIHdlIHNob3VsZG4ndCBkbyB0aGF0KQoKPgo+IE9uIHRoZSB0b3BpYyBvZiBzY29wZXMsIEknZCBsb3ZlIHRvIHNlZSBhbiBfYWN0dWFsXyBjb21waWxlLXRpbWUtb25seQo+IHNjb3BlLCB0aGF0cyBvbmx5IGF0IGNvbXBpbGF0aW9uLiAgSSB3b25kZXIsIHNpbmNlIHRoZSBzY29wZSB2YWx1ZXMgYXJlICAKPiBub3QKPiBhY3R1YWxseSBzZXQgaW4gdGhlIERURC9YU0RzLCBjb3VsZCB0aGUgaW50ZXJuYWxzIGJlIGFsdGVyZWQgdG8gc2F5IGEgQ1NWCj4gb2Ygc2NvcGVzLCB3aXRoIHRoZSBkZWZhdWx0IGJlaW5nICJjb21waWxlLHRlc3QiIHdoaWNoIHdvdWxkIGNvdmVyICAKPiBjdXJyZW50Cj4gYmVoYXZpb3VyIC0gYnV0IGlmIHlvdSBzcGVjaWZpY2FsbHkgc2F5ICJ0aGlzIGlzIGEgY29tcGlsZSBvbmx5ICAKPiBkZXBlbmRlbmN5Igo+IHRoZW4gaXQgbGl0ZXJhbGx5IGlzLgoKSSByZWNvZ25pemUgdGhpcyB3aXNoLiBUaGUgYmVzdCBzb2x1dGlvbiBpcyB0byBtYWtlIHRoZSBkZXBlbmRlbmN5ICAKb3B0aW9uYWwuCgo+Cj4gTWFyawoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NDIxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBOb3YgIDUgMTA6NDM6MTggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDIxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDVDRTEwMTc4RTgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAgNSBOb3YgMjAxNyAxMDo0MzoxOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDg1MDc2IGludm9rZWQgYnkgdWlkIDUwMCk7IDUgTm92IDIwMTcgMTA6NDM6MTcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg0OTkzIGludm9rZWQgYnkgdWlkIDUwMCk7IDUgTm92IDIwMTcgMTA6NDM6MTcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NDk4MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDUgTm92IDIwMTcgMTA6NDM6MTcgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMDUgTm92IDIwMTcgMTA6NDM6MTcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmwgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCBBMzU3QzFBMDJEQwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgIDUgTm92IDIwMTcgMTA6NDM6MTYgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IE1hdmVuIDQuMC4wClJlZmVyZW5jZXM6IDxDQStuUG5Nd0VIOVoybXlwNzF1YVNyZGN5TEpSRnJFLVZydDIwMTkxcmQwMWgrVWZoandAbWFpbC5nbWFpbC5jb20+IDxDQUNMRT03TVlINVR5d0VaQ0RaaFBRPTJIYnVhbjFaTHg5enJRdXh4OFBRLVZRMkd6WGdAbWFpbC5nbWFpbC5jb20+IDxvcC55ODY3bGx5YWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4gPDE5MTcyMDAudTBSTGV6RjBHM0BnaWdhPgpEYXRlOiBTdW4sIDA1IE5vdiAyMDE3IDExOjQzOjE2ICswMTAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IFF1b3RlZC1QcmludGFibGUKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk4NzcyZXc3a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpJbi1SZXBseS1UbzogPDE5MTcyMDAudTBSTGV6RjBHM0BnaWdhPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCk9uIFN1biwgMDUgTm92IDIwMTcgMDc6MDQ6NTQgKzAxMDAsIEhlcnY9RTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLj0KZnI+ICA9Cgp3cm90ZToKCj4gTGUgc2FtZWRpIDQgbm92ZW1icmUgMjAxNywgMjI6MzU6MzUgQ0VUIFJvYmVydCBTY2hvbHRlIGEgPUU5Y3JpdCA6Cj4+IE9uIFNhdCwgMDQgTm92IDIwMTcgMTg6MzQ6MTQgKzAxMDAsIFJvbWFpbiBNYW5uaS1CdWNhdQo+Pgo+PiA8cm1hbm5pYnVjYXVAZ21haWwuY29tPiB3cm90ZToKPj4gPiAyMDE3LTExLTA0IDE4OjE3IEdNVCswMTowMCBTdGVwaGVuIENvbm5vbGx5Cj4+ID4KPj4gPiA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT46Cj4+ID4+IE9uIFNhdCA0IE5vdiAyMDE3IGF0IDE3OjExLCBSb21haW4gTWFubmktQnVjYXUgID0KCj4+IDxybWFubmlidWNhdUBnbWFpbC5jb20+Cj4+ID4+Cj4+ID4+IHdyb3RlOgo+PiA+Pj4gTXkgd2lzaGxpc3QgYXMgYSB1c2VyIHdvdWxkIGJlOgo+PiA+Pj4KPj4gPj4+IC0gaW5jcmVtZW50YWwgYnVpbGQgKGJhc2VkIG9uIHNjbSBpcyBmaW5lKQo+PiA+Pj4gLSBzb21lIGJ1aWx0IGluIHNjcmlwdGluZyAoZ3Jvb3Z5IGJhc2VkPykKPj4gPj4KPj4gPj4gSSBoYXZlIGEgd29ycnkgZm9yIGdyb292eSB3aXRoIEphdmEgOSsKPj4gPgo+PiA+IFVuZGVyc3RhbmQsIGhlcmUgaXMgdGhlIGxvbmcgdmVyc2lvbiBvZiB0aGF0IHdpc2g6Cj4+ID4KPj4gPiAxLiBqYXZhIC0+IGdyb292eSBpcyB2ZXJ5IGRvYWJsZSAoY29tcGFyZWQgdG8gb3RoZXIgbGFuZ3VhZ2UpIHNvIGl0PQogaXMKPj4gPiB0aGUgbmF0dXJhbCBsYW5ndWFnZSBmb3IgbWF2ZW4gSU1ITwo+PiA+IDIuIGdyb292eSB3aWxsIGhhdmUgdG8gc3VwcG9ydCBKYXZhIDkgLSB0byBiZSBob25lc3QgSSB3b3JyeSBhcyBtdWM9CmgKPj4gPiBmb3IgYSBwbGFpbiBqYXZhIGxpYiB0aGFuIGZvciBncm9vdnkgc28gZ3Vlc3MgaXQgaXMgMS0xCj4+ID4gMy4gSSdtIGhhcHB5IHRvIGhhdmUgYSBqYXZhIHNjcmlwdGluZyBhbHRlcm5hdGl2ZSAoc3JjL2J1aWxkL2phdmEpCj4+ID4gd2hpY2ggaXMgbm90IGF2YWlsYWJsZSBvdXRzaWRlIHRoZSBzY29wZSBvZiBhIHBsdWdpbiAoPTNEIG5vIGluaGVyaT0KdGVkCj4+ID4gaW4gY29tcGlsZSBvciB0ZXN0IHNjb3BlcykKPj4gPgo+PiA+PiBBbmQgc2NyaXB0aW5nIGlzIHRoZSBwYXRoIHRvIHRoZSBkYXJrIHNpZGUgb2YgaW1wZXJhdGl2ZSBidWlsZHMuLi49CiAgPQoKPj4gYnV0Cj4+ID4+IHByb3Bvc2FscyB3ZWxjb21lCj4+ID4KPj4gPiBUaGlzIGlzIHRydWUgYnV0IHRoaXMgaXMgYWxzbyBtYW5kYXRvcnkgdG9kYXkuIFRoZXJlIGlzIGEgc21hbGwKPj4gPiBhbHRlcm5hdGl2ZSB0byB0aGF0IGFuZCBJIHdvdWxkIGJlIGFzIGhhcHB5IGlmIG1hdmVuIGNhbiBkbyBpdDoKPj4gPiBzdXBwb3J0IG1vam8gZnJvbSB0aGUgcmVhY3RvciAoaWUgaGF2aW5nIGEgcHJvamVjdCB3aXRoIHRoaXMgbGF5b3V0PQo6Cj4+ID4gcGFyZW50L1ttb2R1bGUxLCBteS1tYXZlbi1wbHVnaW5dKS4gSWYgdGhpcyB3b3JrcyB0aGVuIG5vIG5lZWQgb2YKPj4gPiBzY3JpcHRpbmcKPj4gPiBidXQgdG9kYXkgeW91IG11c3QgcmVsZWFzZSB0aGUgbW9qbyBiZWZvcmUgdXNpbmcgaXQgaW4geW91ciBidWlsZAo+PiA+IHdoaWNoIGltcG9zZXMgdG8gdXNlIHNjcmlwdGluZy4KPj4KPj4gc291bmRzIGxpa2UgaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjExOAo+PiByaWdodD8KPgo+IG5vOiBNTkctNjExOCBpcyBhYm91dCByZXN0cmljdGlvbnMgd2hlcmUgYSBwbHVnaW4gbW9qbyBydW5zCj4KPiBoZXJlLCBpdCdzIGFib3V0IHVzaW5nIGEgcGx1Z2luICpmcm9tIHRoZSByZWFjdG9yKjogc3VyZSwgdGhlcmUgaXMgYQo+IHJlc3RyaWN0aW9uIGJlY2F1c2UgdGhlIHBsdWdpbiBtb2R1bGUgaGFzIHRvIGJlIGJ1aWx0IGZpcnN0LCB0byBiZSAgPQoKPiBhdmFpbGFibGUKPiBmb3Igb3RoZXIgbW9kdWxlcyBjb25zdW1wdGlvbiwgYnV0IGl0J3MganVzdCBhIGNvbnNlcXVlbmNlIG9mIHRoZSBuZWVkPQosICA9Cgo+IG5vdAo+IHJlYWxseSBhIGdvYWwgcGVyIHNlICh1bmxpa2UgTU5HLTYxMTgpCgpTbyB0aGlzIGlzc3VlIGlzIGFib3V0IGEgcGx1Z2luIGJlaW5nIHBhcnQgb2YgdGhlIGJ1aWxkcGxhbiBBTkQgYmVpbmcgcGE9CnJ0ICA9CgpvZiB0aGUgcmVhY3Rvci4KSSByZWNvZ25pemUgdGhlIHBybydzIGFuZCBjb25zLCBidXQgdGhhdCBkZXNlcnZlcyBhIHNlcGFyYXRlIG1haWx0aHJlYWQgPQp0byAgPQoKZGlzY3Vzcy4KClJvYmVydAoKPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUU5Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDI4MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgT2N0IDIwIDE4OjM0OjI5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDI4MC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAzMUZGOTEwRjMyCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMjAgT2N0IDIwMTcgMTg6MzQ6MjkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxOTY2MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBPY3QgMjAxNyAxODozNDoyOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTk1NjUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgT2N0IDIwMTcgMTg6MzQ6MjggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxOTU1NCBpbnZva2VkIGJ5IHVpZCA5OSk7IDIwIE9jdCAyMDE3IDE4OjM0OjI4IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDIwIE9jdCAyMDE3IDE4OjM0OjI4ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgMjBEMEMxQTAwMTkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDIwIE9jdCAyMDE3IDE4OjM0OjI3ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjIKUmVmZXJlbmNlczogPENBK25Qbk13dGpuWkUtNTNBTjUzeEY9TWY2SFktRmJHWXdaQVV3M0VVS0hBNGVLQjUyUUBtYWlsLmdtYWlsLmNvbT4KRGF0ZTogRnJpLCAyMCBPY3QgMjAxNyAyMDozNDoyNiArMDIwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55OGU2N29raWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KSW4tUmVwbHktVG86IDxDQStuUG5Nd3RqblpFLTUzQU41M3hGPU1mNkhZLUZiR1l3WkFVdzNFVUtIQTRlS0I1MlFAbWFpbC5nbWFpbC5jb20+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKKzEKCk9uIFdlZCwgMTggT2N0IDIwMTcgMTI6NTA6NDMgKzAyMDAsIFN0ZXBoZW4gQ29ubm9sbHkgIAo8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cgo+IEhpLAo+Cj4gV2Ugc29sdmVkIDI2IGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/dmVyc2lvbj0xMjMzODk2NCZzdHlsZU5hbWU9VGV4dCZwcm9qZWN0SWQ9MTIzMTY5MjIKPgo+IFRoZXJlIGFyZSAzNTcgaXNzdWVzIGxlZnQgaW4gSklSQSBmb3IgTWF2ZW4gY29yZToKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9cHJvamVjdCUyMCUzRCUyME1ORyUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlMjBCWSUyMGR1ZSUyMEFTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMGNyZWF0ZWQlMjBBU0MKPgo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzczLwo+Cj4gVGhlIGRpc3RyaWJ1dGFibGUgYmluYXJpZXMgYW5kIHNvdXJjZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3My9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi8KPgo+IFNwZWNpZmljYWxseSB0aGUgemlwLCB0YXJiYWxsIGFuZCBzb3VyY2UgYXJjaGl2ZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3My9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItYmluLnppcAo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzMvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjIvYXBhY2hlLW1hdmVuLTMuNS4yLWJpbi50YXIuZ3oKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzczL29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4yL2FwYWNoZS1tYXZlbi0zLjUuMi1zcmMuemlwCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3My9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMi9hcGFjaGUtbWF2ZW4tMy41LjItc3JjLnRhci5nego+Cj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gYXBhY2hlLW1hdmVuLTMuNS4yLXNyYy50YXIuZ3ogc2hhMTogIAo+IDk3ZDZkN2IxODQ4NWI3OTA2ZGQ3ZjMxM2NkZDQxMTkxZDE2ZGRlNDYKPiBhcGFjaGUtbWF2ZW4tMy41LjItc3JjLnppcDogc2hhMTogIAo+IGRjOGNhYTVjZGFjYjQwMDk0M2QyNDkxYTAyMGY3NDJhNTE4ZThmMDgKPgo+IEdpdCB0YWc6Cj4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9bWF2ZW4uZ2l0O2E9Y29tbWl0O2g9MTM4ZWRkNjFmZDEwMGVjNjU4YmZhMmQzMDdjNDNiNzY5NDBhNWQ3ZAo+Cj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9jb21wb25lbnRzL3JlZi8zLUxBVEVTVC8KPgo+IFZvdGUgb3BlbiBmb3IgNzIgaG91cnMuCj4KPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPgo+IFRoYW5rcywKPgo+IFN0ZXBoZW4uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQyNzMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE9jdCAyMCAwOTozMDo1NiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyNzMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgM0ZBNkUxMDQxQgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDIwIE9jdCAyMDE3IDA5OjMwOjU2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjc4ODUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgT2N0IDIwMTcgMDk6MzA6NTUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY3Njc3IGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIE9jdCAyMDE3IDA5OjMwOjU1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjc2NjUgaW52b2tlZCBieSB1aWQgOTkpOyAyMCBPY3QgMjAxNyAwOTozMDo1NSAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAyMCBPY3QgMjAxNyAwOTozMDo1NSArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDEyQTM2MUEwMTJGCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAyMCBPY3QgMjAxNyAwOTozMDo1MyArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogTWF2ZW4gRG9ja2VyIEltYWdlcwpSZWZlcmVuY2VzOiA8Q0FKUnZGZG8tMzNaZnhpRnNKd2ppR1FKTVlUNW11MzFmcUQxZl91M0ZVUVRvSnY9VHVnQG1haWwuZ21haWwuY29tPiA8ODYyMzAxMy40cTJCVHJWWTMyQGdpZ2E+CkRhdGU6IEZyaSwgMjAgT2N0IDIwMTcgMTE6MzA6NDkgKzAyMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogUXVvdGVkLVByaW50YWJsZQpGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueThlaDFuZHNrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkluLVJlcGx5LVRvOiA8ODYyMzAxMy40cTJCVHJWWTMyQGdpZ2E+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKSXNuJ3QgdGhpcyBhY3R1YWxseSB0aGUgc2FtZSBjYXNlIGFzIHNka21hblsxXT8KSnVzdCB3b25kZXJpbmcgaWYgd2UgbmVlZCB0byB0aGluayBhYm91dCBhIGdlbmVyYWwgc29sdXRpb24gaW5zdGVhZCBvZiAgPQoKcHVsbGluZyBldmVyeXRoaW5nIGludG8gb3VyIHByb2plY3Qgd2hlbiBwb3NzaWJsZS4KCnRoYW5rcywKUm9iZXJ0CgpbMV0gaHR0cDovL21hcmttYWlsLm9yZy9tZXNzYWdlL29vZnZzem1mNTZ0YnI3ZXQKCk9uIFRodSwgMTkgT2N0IDIwMTcgMTk6MzA6NTcgKzAyMDAsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcj0KZWUuZnI+ICA9Cgp3cm90ZToKCj4gZ3JlYXQgaWRlYQo+Cj4gb2ssIHdlIG5lZWQgYSBnaXQgcmVwbyBhdCBBU0YKPgo+IHdoYXQgZWxzZT8KPiBJcyB0aGVyZSBzb21lIHNvcnQgb2YgcmVsZWFzZSBwcm9jZXNzPyBzb21lIHNvcnQgb2Ygc291cmNlIHRvIHJlbGVhc2U/PQoKPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUMzPUE5Cj4KPiBMZSBqZXVkaSAxOSBvY3RvYnJlIDIwMTcsIDEzOjQ3OjQ1IENFU1QgTWlrZSBEcm9iIGEgPUMzPUE5Y3JpdCA6Cj4+IFRoYW5rcyBmb3IgdGhlIHBvaW50ZXIsIENhcmxvcyEgSSBoYWQgc2VhcmNoZWQgdGhlIGFyY2hpdmVzLCBidXQgbWF5Yj0KZSBJCj4+IGRpZG4ndCBnbyBiYWNrIGZhciBlbm91Z2guCj4+Cj4+IEkgdGhpbmsgbW92aW5nIHRoZXNlIERvY2tlcmZpbGVzIGludG8gYW4gQVNGIHJlcG8gd291bGQgYmUgZ3JlYXQgZm9yID0KID0KCj4+IHRoZWlyCj4+IG1haW50YWluYWJpbGl0eS4KPj4KPj4gVGhhbmtzLAo+Pgo+PiBNaWtlCj4+Cj4+IE9uIDIwMTctMTAtMTkgMDM6NTAsIENhcmxvcyBTYW5jaGV6IDxjLi4uQGFwYWNoZS5vcmc+IHdyb3RlOgo+PiA+IEFybmF1ZCBpcyBjb3JyZWN0LCBJIHNlbnQgYW4gZW1haWwgdG8gdXNlcnNAIGJhY2sgb24gRnJpLCBOb3YgNywgID0KCj4+IDIwMTQsPgo+PiA+IDAwOjIzIHdoZW4gSSBjcmVhdGVkIHRoZSBpbWFnZT4KPj4gPgo+PiA+Cj4+ID4gT24gVGh1LCBPY3QgMTksIDIwMTcsIDExOjEyIEFybmF1ZCBIPUVGPUJGPUJEcml0aWVyIDxhaC4uLkBnbWFpbC5jbz0KbT4gd3JvdGU6Pgo+PiA+Cj4+ID4gPiBUaGVzZSBpbWFnZXMgYXJlIGtpbmRseSBtYW5hZ2VkIGJ5IGEgUE1DIG1lbWJlciBvZiBvdXIgcHJvamVjdCAgPQoKPj4gKENhcmxvcykKPj4KPj4gYnV0Pgo+Pgo+PiA+ID4geWVzIHRoZXkgYXJlbid0IG1hbmFnZWQgZGlyZWN0bHkgYnkgdGhlIHByb2plY3Q+Cj4+ID4gPgo+PiA+ID4gV2UgY2FuIGVhc2lseSBzZWUgd2l0aCBoaW0gdG8gaW1wcm92ZSB0aGlzIElNTy4+Cj4+ID4gPgo+PiA+ID4gV2hlbiBoZSBzdGFydGVkIHRoYXQgKHNldmVyYWwgeWVhcnMgYWdvKSBEb2NrZXIgd2Fzbid0IHdoYXQgaXQgaXM9Cgo+Pgo+PiBub3dhZGF5cy4+Cj4+Cj4+ID4gPiBXaXRoIGRvY2tlciBiZWluZyBtYWluc3RyZWFtIEkgYWdyZWUgdGhhdCB3ZSBjYW4gcmVjb25zaWRlciB0aGlzLj0KPgo+PiA+ID4KPj4gPiA+IFRoZSBkb2NrZXIgaW1hZ2UgYnVpbGQvZGlzdHJpYnV0aW9uIGNvdWxkIHBlcmhhcHMgYmUgcGFydCBvZiBvdXIKPj4KPj4gcmVsZWFzZT4KPj4KPj4gPiA+IHByb2Nlc3MuPgo+PiA+ID4KPj4gPiA+IFdEWVQgQ2FybG9zID8+Cj4+ID4gPgo+PiA+ID4gT24gVGh1LCBPY3QgMTksIDIwMTcgYXQgNDoxNiBBTSwgTWlrZSBEcm9iIDxtZC4uLkBhcGFjaGUub3JnPiAgPQoKPj4gd3JvdGU6Pgo+PiA+ID4KPj4gPiA+ID4gSSBndWVzcyB0aGUgbmF0dXJhbCBmb2xsb3ctb24gcXVlc3Rpb24gaXMgd2hldGhlciB0aGUgTWF2ZW4KPj4KPj4gY29tbXVuaXR5Pgo+Pgo+PiA+ID4gPiB3b3VsZCBjb25zaWRlciBwdWJsaXNoaW5nIGFuIG9mZmljaWFsIHNldCBvZiBpbWFnZXM/IE9yCj4+Cj4+IGFsdGVybmF0aXZlbHk+Cj4+Cj4+ID4gPiA+IHdoZXRoZXIgdGhleSBzaG91bGQgc2VuZCBhIHRha2Vkb3duIG5vdGljZSB0byBwcm90ZWN0IHRoZWlyIGJyYT0KbmQKPj4KPj4gYW5kPgo+Pgo+PiA+ID4gPiB0cmFkZW1hcmtzLi4uPgo+PiA+ID4gPgo+PiA+ID4gPiBPbiAyMDE3LTEwLTE4IDE4OjM2LCAiTWFuZnJlZCBNb3NlciIgPG1hLi4uQHNpbXBsaWdpbGl0eS5jb20+ICA9Cgo+PiB3cm90ZTo+Cj4+ID4gPiA+Cj4+ID4gPiA+ID4gTm8uIEFzIHlvdSBjYW4gc2VlIGZyb20gdGhlIGdpdGh1YiBVUkwgdGhpcyBpcyBOT1QgYW4gYXBhY2hlID0KID0KCj4+IFVSTC4+Cj4+ID4gPiA+ID4KPj4gPiA+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vY2FybG9zc2cvZG9ja2VyLW1hdmVuPgo+PiA+ID4gPiA+Cj4+ID4gPiA+ID4KPj4gPiA+ID4gPiBNaWtlIERyb2Igd3JvdGUgb24gMjAxNy0xMC0xOCAxNjozMjo+Cj4+ID4gPiA+ID4KPj4gPiA+ID4gPiA+IEhlbGxvLD4KPj4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiBBcmUgdGhlIGltYWdlcyBhdCBodHRwczovL2h1Yi5kb2NrZXIuY29tL3IvXy9tYXZlbi8gID0KCj4+IGNvbnNpZGVyZWQgdG8KPj4KPj4gYmU+Cj4+Cj4+ID4gPiA+IG9mZmljaWFsPgo+PiA+ID4gPgo+PiA+ID4gPiA+ID4gbWF2ZW4gZG9ja2VyIGltYWdlcyBhbmQgYmxlc3NlZC9wdWJsaXNoZWQgYnkgdGhlIFBNQz8+Cj4+ID4gPiA+ID4gPgo+PiA+ID4gPiA+ID4gVGhhbmtzLD4KPj4gPiA+ID4gPiA+IE1pa2U+Cj4+Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KPgo+Pgo+PiA+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogdXNlcnMtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz49Cgo+PiA+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogdXNlcnMtaGVscEBtYXZlbi5hcGFjaGUub3I9Cmc+Cj4+Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KPgo+Pgo+PiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IHVzZXJzLXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Cj4+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogdXNlcnMtaGVscEBtYXZlbi5hcGFjaGUub3JnPj0KCj4+Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KPgo+Pgo+PiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgo+PiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiB1c2Vycy1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Cj4+ID4gPgo+PiA+ID4gLS0+Cj4+ID4gPiAtLS0tLT4KPj4gPiA+IEFybmF1ZCBIPUVGPUJGPUJEcml0aWVyPgo+PiA+ID4gaHR0cDovL2FoZXJpdGllci5uZXQ+Cj4+ID4gPiBNYWlsL0dUYWxrOiBhaGVyaXRpZXIgQVQgZ21haWwgRE9UIGNvbT4KPj4gPiA+IFR3aXR0ZXIvU2t5cGUgOiBhaGVyaXRpZXI+Cj4KPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQyNzgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE9jdCAyMCAxMjo0Mzo1NyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyNzgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNjZCQzIxMEEwMQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDIwIE9jdCAyMDE3IDEyOjQzOjU3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTAzNTkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgT2N0IDIwMTcgMTI6NDM6NTcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDEwMjgzIGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIE9jdCAyMDE3IDEyOjQzOjU3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTAyNjkgaW52b2tlZCBieSB1aWQgOTkpOyAyMCBPY3QgMjAxNyAxMjo0Mzo1NiAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAyMCBPY3QgMjAxNyAxMjo0Mzo1NiArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDcwNzQxMUEwMDE5Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAyMCBPY3QgMjAxNyAxMjo0Mzo1NCArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogTWF2ZW4gcGx1Z2lucywgSmF2YSA5LCBhbmQgc3BsaXQgcGFja2FnZXMKUmVmZXJlbmNlczogPDIwMTcxMDIwMTIyNjE4LjY0ZjJhMzUyQGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbz4KRGF0ZTogRnJpLCAyMCBPY3QgMjAxNyAxNDo0Mzo1MiArMDIwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55OGVxemUxZWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KSW4tUmVwbHktVG86IDwyMDE3MTAyMDEyMjYxOC42NGYyYTM1MkBjb3BwZXJoZWFkLmludC5hcmM3LmluZm8+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKPgo+IFRoaXMgbG9va3MgdG8gYmUgYSBjYXNlIG9mIHNwbGl0IHBhY2thZ2VzIGFtb25nc3QgYWxsIG9mIHRoZSB2YXJpb3VzCj4gTWF2ZW4gYXJ0aWZhY3RzLiBJJ20gYWRkaW5nIGRlcGVuZGVuY3kgZXhjbHVzaW9ucyB0byB0cnkgdG8gd29yayBhcm91bmQKPiB0aGUgaXNzdWVzLCBidXQgSSdtIG5vdCBjb25maWRlbnQgdGhhdCdsbCBhY3R1YWxseSB3b3JrLgo+Cj4gQXJlIHRoZXJlIGVmZm9ydHMgdW5kZXJ3YXkgdG8gY2xlYW4gdGhpcyBzdHVmZiB1cD8KCk5vLCBNYXZlbiBoYXMgaXRzIG93biBtb2R1bGFyIHN5c3RlbSBsb25nIGJlZm9yZSB0aGUgSmF2YSBQbGF0Zm9ybSBNb2R1bGFyICAKU3lzdGVtIChKUE1TKS4KRHVlIHRvIHRoZSBldm9sdXRpb24gb2YgTWF2ZW4gb3ZlciB0aGUgbGFzdCBkZWNhZGUgdGhlcmUgYXJlIGluZGVlZCBzcGxpdCAgCnBhY2thZ2VzLCB3aGljaCB3YXMgbmV2ZXIgYW4gaXNzdWUuCkNsZWFuaW5nIHVwIGlzIHNpbXBseSBub3QgcG9zc2libGUgYW5kIG5vdCBuZWNlc3NhcnksIHVubGVzcyB3ZSBtYWtlIGEgIAptb25vbGl0aCBvZiBpdCwgd2hpY2ggaXMgYWN0dWFsbHkgdGhlIG9wcG9zaXRlIG9mIHdhbnQgeW91IHdhbnQgdG8gYWNoaWV2ZSAgCndpdGggbW9kdWxhcml6YXRpb24uCkNsZWFuaW5nIHVwIHdvdWxkIG1lYW4gaW50cm9kdWNpbmcgbmV3IHBhY2thZ2VzLCB3aGljaCB3b3VsZCBlZmZlY3RpdmVseSAgCm1ha2UgYWxsIGN1cnJlbnQgbWF2ZW4tcGx1Z2lucyB1c2VsZXNzLgpGb3IgdGhhdCByZWFzb24gSSBzZWUgbm8gcmVhc29uIHRvIG1ha2UgaXQgSlBNUy1tb2R1bGFyLgoKPgo+IFRoZSByZWFzb24gSSdtIG1vZHVsYXJpemluZyB0aGUgcGx1Z2luIGlzIGR1ZSB0byB0aGlzOgo+Cj4gICAiVG8gYnVpbGQgYW5kIHJ1biBqYXBpY21wIHVuZGVyIEphdmEgMS45LCB5b3UgbXVzdCBhZGQgdGhlIGZvbGxvd2luZyAgCj4gbW9kdWxlOiBqYXZhLnhtbC5iaW5kLiBUaGlzIGNhbiBiZSBkb25lIGZvciB0aGUgbWF2ZW4gcGx1Z2luIGZvciBleGFtcGxlICAKPiBieToKPgo+IGV4cG9ydCBNQVZFTl9PUFRTPSItLWFkZC1tb2R1bGVzIGphdmEueG1sLmJpbmQiCgpJSVVDIHRoaXMgZG9lc24ndCBtZWFuIHlvdSBoYXZlIHRvIGludHJvZHVjZSBhIG1vZHVsZSBkZXNjcmlwdG9yIChpLmUuICAKbW9kdWxlLWluZm8uamF2YSApLgoKVGhlIHJlYXNvbiBpcyB0aGF0IHRoaXMgbW9kdWxlIGlzIG1hcmtlZCBhcyBkZXByZWNhdGVkIGFuZCB3b24ndCBiZSAgCmFjdGl2YXRlZCBieSB0aGUgSkRLL0pSRSBieSBkZWZhdWx0LiBCeSBhZGRpbmcgdGhpcyBhcmd1bWVudCBpdCBpcyBsb2FkZWQgIAphbnl3YXkuCgpXaGF0IHlvdSBzaG91bGQgdHJ5IHRvIGRvIGluc3RlYWQgaXMgYWRkIHRoZSBmb2xsb3dpbmcgZGVwZW5kZW5jeToKPGRlcGVuZGVuY3k+CiAgICAgPGdyb3VwSWQ+amF2YXgueG1sLmJpbmQ8L2dyb3VwSWQ+CiAgICAgPGFydGlmYWN0SWQ+amF4Yi1hcGk8L2FydGlmYWN0SWQ+CiAgICAgPHZlcnNpb24+Mi4zLjA8L3ZlcnNpb24+CjwvZGVwZW5kZW5jeT4KCnRoYW5rcywKUm9iZXJ0Cgo+Cj4gSSdkIHJhdGhlciBub3QgaGF2ZSB0byBkbyB0aGlzIGFzIEknbSBjb21taXR0ZWQgdG8gaGF2aW5nIGFsbCBvZiBteQo+IHByb2plY3QgYnVpbGRzIHJ1biB3aXRob3V0IG5lZWRpbmcgZXh0cmEgTWF2ZW4gZmxhZ3M6ICJtdm4gY2xlYW4gaW5zdGFsbCIKPiAqbXVzdCoganVzdCB3b3JrIG9uIGV2ZXJ5IHN5c3RlbSwgbm8gZXhjZXB0aW9ucy4KPgo+IEFtIEkgdW5kZXJ0YWtpbmcgYSBmb29sJ3MgZXJyYW5kIHRyeWluZyB0byBnZXQgdGhpcyBzdHVmZiB0byB3b3JrICAKPiBjbGVhbmx5Pwo+IElmIG5vdCwgaXMgdGhlcmUgYW55IGRvY3VtZW50YXRpb24gb24gbW9kdWxhcml6aW5nIGV4aXN0aW5nIHBsdWdpbnM/Cj4KPiBbMF0gaHR0cHM6Ly9naXRodWIuY29tL3Npb203OS9qYXBpY21wLwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MjkyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBPY3QgMjEgMTA6MjM6MzkgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjkyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDREQjZGMTBDOTIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAyMSBPY3QgMjAxNyAxMDoyMzozOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk1ODM0IGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIE9jdCAyMDE3IDEwOjIzOjM5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NTc0MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBPY3QgMjAxNyAxMDoyMzozOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk1NzI3IGludm9rZWQgYnkgdWlkIDk5KTsgMjEgT2N0IDIwMTcgMTA6MjM6MzggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMjEgT2N0IDIwMTcgMTA6MjM6MzggKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmwgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCA0QkVGNjFBMDAxOQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMjEgT2N0IDIwMTcgMTA6MjM6MzYgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IG1vdmluZyBHaXRIdWIgaXNzdWUgbm90aWZpY2F0aW9ucyB0byBpc3N1ZXNAbWF2ZW4uYS5vClJlZmVyZW5jZXM6IDwxNTIyODk5LklXRVFvVGlHZkVAZ2lnYT4KRGF0ZTogU2F0LCAyMSBPY3QgMjAxNyAxMjoyMzozMiArMDIwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBRdW90ZWQtUHJpbnRhYmxlCkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55OGdlNWkwNmtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KSW4tUmVwbHktVG86IDwxNTIyODk5LklXRVFvVGlHZkVAZ2lnYT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgorMQoKT24gU2F0LCAyMSBPY3QgMjAxNyAxMjoyMjo0NyArMDIwMCwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuPQpmcj4gID0KCndyb3RlOgoKPiBDdXJyZW50bHksIGNvbW1lbnRzIGFyZSBzZW50IHRvIGRldkBtYXZlbi5hLm8KPgo+IEZvciBvdXIgY2xhc3NpY2FsIG9mZmljaWFsIEppcmEgaXNzdWUgdHJhY2tlciwgbm90aWZpY2F0aW9ucyBhcmUgc2VudCA9CnRvCj4gaXNzdWVzQG1hdmVuLmEubwo+Cj4gSWYgbm9ib2R5IG9iamVjdHMgKDcyaCBhcyB1c3VhbCksIEknbGwgYXNrIGluZnJhIHRvIHN3aXRjaCBHaXRIdWIgaXNzdT0KZQo+IG5vdGlmaWNhdGlvbnMgdG8gaXNzZXVzQG1hdmVuLmEubwo+Cj4gUmVnYXJkcywKPgo+IEhlcnY9RTkKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MjkzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBPY3QgMjEgMTA6MzM6MDMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MjkzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIERFMUFCMTBDQTkKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAyMSBPY3QgMjAxNyAxMDozMzowMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDk3OTgzIGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIE9jdCAyMDE3IDEwOjMzOjAyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5Nzg5NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBPY3QgMjAxNyAxMDozMzowMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk3ODgzIGludm9rZWQgYnkgdWlkIDk5KTsgMjEgT2N0IDIwMTcgMTA6MzM6MDIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMjEgT2N0IDIwMTcgMTA6MzM6MDIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmwgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCA0NzE5OTFBMDQyNAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMjEgT2N0IDIwMTcgMTA6MzI6NTggKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IE1hdmVuIERvY2tlciBJbWFnZXMKUmVmZXJlbmNlczogPENBSlJ2RmRvLTMzWmZ4aUZzSndqaUdRSk1ZVDVtdTMxZnFEMWZfdTNGVVFUb0p2PVR1Z0BtYWlsLmdtYWlsLmNvbT4gPDE3MDgyODUueGJRUk9Jajk5WkBnaWdhPiA8Q0ErblBuTXhDdXVwUDk1dlBqWG1Fd19HemR6VXJyMkNfU2ZGSERUa29lekFHQj1zMWZRQG1haWwuZ21haWwuY29tPiA8MjQ3MzQ1MjMuYTZKc0U4c2ZzaEBnaWdhPgpEYXRlOiBTYXQsIDIxIE9jdCAyMDE3IDEyOjMyOjU0ICswMjAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IFF1b3RlZC1QcmludGFibGUKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk4Z2ZrNHl1a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpJbi1SZXBseS1UbzogPDI0NzM0NTIzLmE2SnNFOHNmc2hAZ2lnYT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpPbiBTYXQsIDIxIE9jdCAyMDE3IDEyOjE5OjQ2ICswMjAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnI9CmVlLmZyPiAgPQoKd3JvdGU6Cgo+IExlIHNhbWVkaSAyMSBvY3RvYnJlIDIwMTcsIDA4OjE2OjM1IENFU1QgU3RlcGhlbiBDb25ub2xseSBhID1DMz1BOWNyaXQ9CiA6Cj4+IE9uIFNhdCAyMSBPY3QgMjAxNyBhdCAwODo0NSwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZj0Kcj4gID0KCj4+IHdyb3RlOgo+PiA+IG9rLCBsZXQncyBzd2l0Y2ggZGlyZWN0bHkgdG8gdGhlIERvY2tlciBjYXNlCj4+ID4KPj4gPiBJJ20gbm90IGEgRG9ja2VyIGV4cGVydCwgdGhlbiBJJ20gZGlzY292ZXJpbmcgdGhpbmdzIHRoYXQgbXkgYmUgID0KCj4+IG9idmlvdXMgdG8KPj4gPiBvdGhlcnMKPj4gPgo+PiA+IElJVUMgRG9ja2VyIGhhcyBhbiAib2ZmaWNpZWwgaW1hZ2VzIiBwcm9qZWN0IFsxXSB3aGVyZSBDYXJsb3MgID0KCj4+IHByb3ZpZGVkIGEKPj4gPiBNYXZlbgo+PiA+IGltYWdlIFsyXTogdGhlbiB0aGlzIGltYWdlIGlzIGtub3duIGFzICJ0aGUgb2ZmaWNpYWwgTWF2ZW4gRG9ja2VyICA9Cgo+PiBpbWFnZSIKPj4gPiBDYXJsb3MgaXMgYW4gaW5kaXZpZHVhbCwgaGUncyBhbHNvIGEgUE1DIG1lbWJlciBvZiBNYXZlbgo+PiA+Cj4+ID4gd2hhdCBkbyB3ZSB3YW50IHRvIHNheTogdGhlIFBNQyBtZW1iZXIgaGFzIHByb3ZpZGVkIGFuIG9mZmljaWFsIERvYz0Ka2VyCj4+ID4gaW1hZ2Ugb3IKPj4gPiBhbiBpbmRpdmlkdWFsIGhhcyBwcm92aWRlZCBhbiBvZmZpY2lhbCBEb2NrZXIgaW1hZ2U/Cj4+ID4KPj4gPiBkZXBlbmRpbmcgb24gdGhlIGFuc3dlciwgc29tZSB3YXkgb2YgZG9pbmcgaGFzIHRvIGJlIGNoYW5nZWQgKEdpdCAgPQoKPj4gbG9jYXRpb24KPj4gPiBvcgo+PiA+IG5hbWluZyBvZiB0aGUgb2ZmaWNpYWwgaW1hZ2UpCj4+Cj4+IEk9RTI9ODA9OTltIGluIGZhdm91ciBvZiBjcmVhdGluZyBhIHJlcG8gZm9yIHRoZSBkb2NrZXJmaWxlLCBsaWNlbnNlLj0KdHh0LCByZWFkICA9Cgo+PiBtZSwKPj4gbm90aWNlcywgZXRjCj4gb2ssIGhlcmUgSSBmb2xsb3cKPgo+PiBhbmQgZm9sbG93IHRoZSBzdGFuZGFyZCByZWxlYXNlIHZvdGUgbGlmZWN5Y2xlIGZvciB0aGF0Cj4+IGRvY2tlcmZpbGUuCj4gaGVyZSwgSSdtIG5vdCBzdXJlIHRoaXMgcmVhbGx5IGhhcyBhIG1lYW5pbmcgaW4gdGhlc2Ugb2ZmaWNpYWwgRG9ja2VyID0KID0KCj4gaW1hZ2VzCj4gY2FzZXM6IElJVUMsIG9uIGEgbmV3IE1hdmVuIGNvcmUgcmVsZWFzZSB0aGF0IHdlIHdhbnQgdG8gcHJvbW90ZSwgdGhlcj0KZSAgPQoKPiBhcmUgMgo+IGFjdGlvbnMgdGhhdCBhcmUgcmVxdWlyZWQ6Cj4gMS4gbW9kaWZ5IHRoZSBNQVZFTl9WRVJTSU9OIGFuZCBTSEEgdmFsdWVzIGluICovRG9ja2VyZmlsZSBpbiB0aGUgZ2l0ID0KID0KCj4gcmVwbyBbMV0KPiAyLiBoYXZlIGEgUFIgbWVyZ2VkIHRvIERvY2tlciBvZmZpY2lhbC1pbWFnZXMgdG8gdXBkYXRlIHRoZSBzaGExIGluICA9Cgo+IG9mZmljaWFsLQo+IGltYWdlcy9saWJyYXJ5L21hdmVuIFsyXQo+Cj4gQmV0d2VlbiB0aGUgMiBzdGVwcywgd2UgY2FuIGNob29zZSB0byB2b3RlLCBvciBub3QgdG8gdm90ZSwgSSBkb24ndCBrbj0Kb3cKPiB3aGF0J3MgdGhlIGJlc3Q6IHdlIGFscmVhZHkgdm90ZWQgZm9yIHRoZSBNYXZlbiByZWxlYXNlIHRoYXQgZ2V0cyB0aGUgPQpuZXcKPiByZWNvbW1lbmRlZCB2ZXJzaW9uLgo+IFdoYXQgaXMgaW1wb3J0YW50IHRvIG1lIGlzIHRoYXQgYW55Ym9keSBmcm9tIHRoZSBQTUMgY2FuIGRvIHRoZSBQUiB0byA9CiA9Cgo+IERvY2tlcgo+IG9mZmljaWFsLWltYWdlcyAoaWYgd2UgZGVjaWRlIHRoYXQgd2UgbWFpbnRhaW4gdGhlIG9mZmljaWFsIGltYWdlLCBub3Q9CiAgPQoKPiBvbmx5Cj4gQ2FybG9zKTogdGhlcmUgaXMgbm90IHNwZWNpZmljIGNyZWRlbnRpYWxzCj4KPiBPbmUgdGhpbmcgSSBzZWUgaXMgdGhhdCB3ZSBjYW4gYXV0b21hdGUgYSBjaGVjayB0aGF0IHRoZSBjdXJyZW50ICA9Cgo+IG9mZmljaWFsLWltYWdlCj4gaXMgb3VyIGN1cnJlbnRseSByZWNvbW1lbmRlZCBNYXZlbiB2ZXJzaW9uOiBpdCdzIGp1c3QgYWJvdXQgYWRkaW5nIGEgbj0KZXcgID0KCj4gY2hlY2sKPiB0byBkaXN0LXRvb2wtcGx1Z2luIHRoYXQgd2lsbCBiZSBjaGVja2VkIGV2ZXJ5IGRheSBieSBKZW5raW5zIGpvYiBbM10KCldpdGhvdXQgdGFsa2luZyBpbiBzb2x1dGlvbnMsIHdlIGhhdmUgdGhpcyBnZW5lcmFsIHF1ZXN0aW9uOiBBcmUgd2UgID0KCmluZm9ybWluZyBvdGhlcnMgYnkgdGhlaXIgZm9ybWF0IG9yIGFyZSB3ZSBvZmZlcmluZyBzb21lIGdlbmVyaWMgbWVzc2FnZT0KICA9Cgpmb3Igb3RoZXJzIHRvIG1ha2UgdGhlbSBhd2FyZSB0aGVyZSdzIGEgbmV3IHZlcnNpb24uCgpUaGlzIGRpc3R0b29sIHNvbHV0aW9uIHNvdW5kcyBsaWtlIHRoZSBmaXJzdCBvbmUgKHdlIHRyaWdnZXIgQ2FybG9zIGluICA9Cgpzb21lIHdheSBzbyBoZSBjYW4gbWFrZSBhIG5ldyBpbWFnZSksIHdoaWNoIGlzIGV4YWN0bHkgd2hhdCBTREtNYW4gYXNrZWQ9CiAgPQoKdXMgdG8gZG8uCgpJTUhPIHdoYXRldmVyIHdlIGRvIGZvciBEb2NrZXIsIHdlIHNob3VsZCBkbyB0aGUgc2FtZSBmb3IgU0RLTWFuIGFuZCBvZmY9CmVyICA9Cgp0aGF0IHNvbHV0aW9uIGZvciBvdGhlciBpbnRlcmVzdGVkIHBhcnRpZXMuCgpSb2JlcnQKCj4KPiBbMV0gaHR0cHM6Ly9naXRodWIuY29tL2Nhcmxvc3NnL2RvY2tlci1tYXZlbgo+Cj4gWzJdICA9Cgo+IGh0dHBzOi8vZ2l0aHViLmNvbS9kb2NrZXItbGlicmFyeS9vZmZpY2lhbC1pbWFnZXMvYmxvYi9tYXN0ZXIvbGlicmFyeS89Cm1hdmVuCj4KPiBbM10gID0KCj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9kaXN0LXRvb2wtcGx1Z2luL3NpdD0KZS8KPgo+Pgo+PiBJZiB3ZSB3YW50IHRoYXQgZG9ja2VyZmlsZSBpbiBNYXZlbi1jb3JlIHJlcG8sIGk9RTI9ODA9OTltIEZpbmUgd2l0aCA9CnRoYXQgdG9vCj4gZ2l2ZW4gdGhlIGNvbnRlbnQsIGEgc2VwYXJhdGUgcmVwbyBtb3JlIHJlYXNvbmFibGUKPgo+Pgo+PiBOb3cgdGhlIG90aGVyIHF1ZXN0aW9uIGlzIGhvdyB0byBnZXQgdGhlIGltYWdlIGZyb20gdGhhdCBkb2NrZXJmaWxlIGk9Cm50bwo+PiBkb2NrZXIuLi4KPiBJSVVDLCB0aGF0J3MgdGhlIHNlY29uZCBwb2ludCBJIHdyb3RlOiB3ZSBkb24ndCByZWFsbHkgcHV0IHRoZSBpbWFnZSBiPQp1dAo+IHVwZGF0ZSBhIGNvbW1pdCByZWZlcmVuY2UgdG8gb3VyIERvY2tlcmZpbGVzCj4KPj4KPj4gST1FMj04MD05OW0gaGFwcHkgZm9yIENhcmxvcyB0byBjb250aW51ZSBkb2luZyBpbiBhIHBlcnNvbmFsIGNhcGFjaXR5PQouLi4KPiArMQo+IEknZCBiZSBoYXBweSB0byBqdXN0IGhhdmUgdGhpcyBhcyBhbiBvZmZpY2lhbCBQTUMgYXNzZXQsIHdpdGggQ2FybG9zIGE9CnMgID0KCj4gb3VyCj4gZXhwZXJ0IHdobyB3cm90ZSB0aGUgc3VidGxlIGJ1bmNoIG9mIGltYWdlcywgc2luY2UgSUlVQywgaXQncyBub3QgcmVhbD0KbHkgID0KCj4gb25lCj4gaW1hZ2UgYnV0IGEgY29sbGVjdGlvbiB0aGF0IG9uZSBjYW4gY2hvb3NlIGZyb20KPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUMzPUE5Cj4KPj4KPj4gU28gaT1FMj04MD05OWQgYmUKPj4KPj4gPUUyPTgwPTlDVGhlIGRvY2tlcmZpbGUgaGFzIGJlZW4gcmVsZWFzZWQgYnkgdGhlIE1hdmVuIHByb2plY3QgYW5kIGEgPQptZW1iZXIgb2YgID0KCj4+IHRoZQo+PiBQTUMgaGFzIHVwbG9hZGVkIHRoZSBpbWFnZT1FMj04MD05RAo+Pgo+PiA+IFJlZ2FyZHMsCj4+ID4KPj4gPiBIZXJ2PUMzPUE5Cj4+ID4KPj4gPiBbMV0gaHR0cHM6Ly9naXRodWIuY29tL2RvY2tlci1saWJyYXJ5L29mZmljaWFsLWltYWdlcwo+PiA+Cj4+ID4gWzJdCj4+ID4gID0KCj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9kb2NrZXItbGlicmFyeS9vZmZpY2lhbC1pbWFnZXMvYmxvYi9tYXN0ZXIvbGlicmFyeT0KL21hdmUKPj4gPiBuCj4+ID4KPj4gPiBMZSBzYW1lZGkgMjEgb2N0b2JyZSAyMDE3LCAwNjo1ODo1MCBDRVNUIE1hbmZyZWQgTW9zZXIgYSA9QzM9QTljcml0PQogOgo+PiA+ID4gRnJvbSBteSBwZXJzcGVjdGl2ZSBpdCBpcyBqdXN0IGxpa2Ugc2RrbWFuIGluY2x1ZGluZyB0aGUgID0KCj4+IGNvbmNsdXNpb24uIFdlCj4+ID4KPj4gPiBoYXZlCj4+ID4KPj4gPiA+IG90aGVyIHRhc2tzIGF0IG91ciBoYW5kcywgbWFpbnRhaW5pbmcgYSBkb2NrZXIgaW1hZ2VzIGlzIG5vdCAgPQoKPj4gc29tZXRoaW5nCj4+ID4gPiB3ZQo+PiA+ID4gc2hvdWxkIGJvdGhlciB3aXRoLiBIb3dldmVyIG5lZWRzIG9uZSBjYW4gZWFzaWx5IGNyZWF0ZSBvbmUgYW5kICA9Cgo+PiB0aGVyZQo+PiA+Cj4+ID4gd2lsbAo+PiA+Cj4+ID4gPiBiZSB0aG91c2FuZHMgb2YgdmFyaWF0aW9ucyBkaWZmZXJlbnQgdXNlcnMgd2FudC4KPj4gPiA+Cj4+ID4gPiBMZXQgdGhlbSBjcmVhdGUgaXQgb24gdGhlaXIgb3duLgo+PiA+ID4KPj4gPiA+IE1hbmZyZWQKPj4gPiA+Cj4+ID4gPiBIZXJ2PUMzPUE5IEJPVVRFTVkgd3JvdGUgb24gMjAxNy0xMC0yMCAxODo0NjoKPj4gPiA+ID4gdHJ1ZSwgZnJvbSBhIGdlbmVyYWwgcGVyc3BlY3RpdmUsIGl0J3MgbGlrZSBzZGttYW4KPj4gPiA+ID4KPj4gPiA+ID4gd2UgbmVlZCB0byBkaXNjdXNzIHRoZW4gZGVjaWRlIGlmIHdlIHdhbnQgdG8gbWFpbnRhaW4gTWF2ZW4gRG9jPQprZXIKPj4gPiA+ID4gaW50ZWdyYXRpb24gKGNvbnRyYXJ5IHRvIG91ciBjdXJyZW50IGRlY2lzaW9uIHRvIG5vdCBtYWludGFpbiAgPQoKPj4gTWF2ZW4KPj4gPiA+ID4gc2RrbWFuIGludGVncmF0aW9uIGJ1dCBsZXQgc2RrbWFuIGNvbW11bml0eSBkbyBpdCkKPj4gPiA+ID4KPj4gPiA+ID4gY2FuIHdlIHRoaW5rIGFib3V0IGEgZ2VuZXJhbCBzb2x1dGlvbj8gcGVyaGFwcyBub3QgcmVhbGx5IGEgID0KCj4+IHNvbHV0aW9uLAo+PiA+Cj4+ID4gYnV0Cj4+ID4KPj4gPiA+ID4gYQo+PiA+ID4gPiBkZWNpc2lvbiBwcm9jZXNzLCB5ZXMKPj4gPiA+ID4KPj4gPiA+ID4gdG8gbWUsIG9uIGVhY2ggdG9vbCBpbnRlZ3JhdGlvbiwgdGhlcmUgYXJlIGtleSBkZWNpc2lvbiBkcml2ZXJzPQo6Cj4+ID4gPiA+IC0gaW1wb3J0YW5jZSBvZiB0aGUgdG9vbCBvbiB0aGUgbWFya2V0Cj4+ID4gPiA+IC0gaW50ZXJlc3Qgb2YgTWF2ZW4gZGV2cyB0byBhY3R1YWxseSBkbyBpbnRlZ3JhdGlvbiBtYWludGVuYW5jZT0KCj4+ID4gPiA+IC0gY29tcGxleGl0eSBvZiBpbnRlZ3JhdGlvbiwgdGVjaG5pY2FsIHByZXJlcXVpc2l0ZXMgKHdpdGggSURFcz0KLCAgPQoKPj4gZm9yCj4+ID4gPiA+IGV4YW1wbGUsIGEgZGVkaWNhdGVkIGluZGVwZW5kYW50IHByb2plY3QgbGlrZSBtMmUgaXMgbmVjZXNzYXJ5KT0KCj4+ID4gPiA+IC0gdGltZSBmYWN0b3I6IHRoaW5ncyBldm9sdmUgb3ZlciB0aW1lIChlLmcuIDIgeWVhcnMgYWdvLCBEb2NrZT0KciAgPQoKPj4gd2FzCj4+ID4KPj4gPiBub3QKPj4gPgo+PiA+ID4gPiB3aGF0IGl0IGlzIG5vd2FkYXlzKQo+PiA+ID4gPgo+PiA+ID4gPiBhbnkgb3RoZXIga2V5IGRyaXZlciB0byBkb2N1bWVudD8KPj4gPiA+ID4KPj4gPiA+ID4gb25jZSBkb25lLCB3ZSdsbCBkaXNjdXNzIG1vcmUgcHJlY2lzZWx5IGFib3V0IHRoZSBEb2NrZXIgID0KCj4+IGludGVncmF0aW9uCj4+ID4KPj4gPiBjYXNlCj4+ID4KPj4gPiA+ID4gYW5kIHByb2JhYmx5IGZpbmlzaCB3aXRoIGEgdm90ZSA6KQo+PiA+ID4gPgo+PiA+ID4gPiBSZWdhcmRzLAo+PiA+ID4gPgo+PiA+ID4gPiBIZXJ2PUMzPUE5Cj4+ID4gPiA+Cj4+ID4gPiA+IExlIHZlbmRyZWRpIDIwIG9jdG9icmUgMjAxNywgMTE6MzA6NDkgQ0VTVCBSb2JlcnQgU2Nob2x0ZSBhID1DMz0KPUE5Y3JpdCAgPQoKPj4gOgo+PiA+ID4gPj4gSXNuJ3QgdGhpcyBhY3R1YWxseSB0aGUgc2FtZSBjYXNlIGFzIHNka21hblsxXT8KPj4gPiA+ID4+IEp1c3Qgd29uZGVyaW5nIGlmIHdlIG5lZWQgdG8gdGhpbmsgYWJvdXQgYSBnZW5lcmFsIHNvbHV0aW9uICA9Cgo+PiBpbnN0ZWFkCj4+ID4gPiA+PiBvZgo+PiA+ID4gPj4gcHVsbGluZyBldmVyeXRoaW5nIGludG8gb3VyIHByb2plY3Qgd2hlbiBwb3NzaWJsZS4KPj4gPiA+ID4+Cj4+ID4gPiA+PiB0aGFua3MsCj4+ID4gPiA+PiBSb2JlcnQKPj4gPiA+ID4+Cj4+ID4gPiA+PiBbMV0gaHR0cDovL21hcmttYWlsLm9yZy9tZXNzYWdlL29vZnZzem1mNTZ0YnI3ZXQKPj4gPiA+ID4+Cj4+ID4gPiA+PiBPbiBUaHUsIDE5IE9jdCAyMDE3IDE5OjMwOjU3ICswMjAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPAo+PiA+Cj4+ID4gaGVydmUuYm91dGVteUBmcmVlLmZyPgo+PiA+Cj4+ID4gPiA+PiB3cm90ZToKPj4gPiA+ID4+ID4gZ3JlYXQgaWRlYQo+PiA+ID4gPj4gPgo+PiA+ID4gPj4gPiBvaywgd2UgbmVlZCBhIGdpdCByZXBvIGF0IEFTRgo+PiA+ID4gPj4gPgo+PiA+ID4gPj4gPiB3aGF0IGVsc2U/Cj4+ID4gPiA+PiA+IElzIHRoZXJlIHNvbWUgc29ydCBvZiByZWxlYXNlIHByb2Nlc3M/IHNvbWUgc29ydCBvZiBzb3VyY2UgdD0Kbwo+PiA+Cj4+ID4gcmVsZWFzZT8KPj4gPgo+PiA+ID4gPj4gPiBSZWdhcmRzLAo+PiA+ID4gPj4gPgo+PiA+ID4gPj4gPiBIZXJ2PUMzPUE5Cj4+ID4gPiA+PiA+Cj4+ID4gPiA+PiA+IExlIGpldWRpIDE5IG9jdG9icmUgMjAxNywgMTM6NDc6NDUgQ0VTVCBNaWtlIERyb2IgYSA9QzM9QTljcj0KaXQgOgo+PiA+ID4gPj4gPj4gVGhhbmtzIGZvciB0aGUgcG9pbnRlciwgQ2FybG9zISBJIGhhZCBzZWFyY2hlZCB0aGUgYXJjaGl2ZXM9CiwgID0KCj4+IGJ1dAo+PiA+Cj4+ID4gbWF5YmUKPj4gPgo+PiA+ID4gPj4gPj4gSQo+PiA+ID4gPj4gPj4gZGlkbid0IGdvIGJhY2sgZmFyIGVub3VnaC4KPj4gPiA+ID4+ID4+Cj4+ID4gPiA+PiA+PiBJIHRoaW5rIG1vdmluZyB0aGVzZSBEb2NrZXJmaWxlcyBpbnRvIGFuIEFTRiByZXBvIHdvdWxkIGJlID0KID0KCj4+IGdyZWF0Cj4+ID4KPj4gPiBmb3IKPj4gPgo+PiA+ID4gPj4gPj4gdGhlaXIKPj4gPiA+ID4+ID4+IG1haW50YWluYWJpbGl0eS4KPj4gPiA+ID4+ID4+Cj4+ID4gPiA+PiA+PiBUaGFua3MsCj4+ID4gPiA+PiA+Pgo+PiA+ID4gPj4gPj4gTWlrZQo+PiA+ID4gPj4gPj4KPj4gPiA+ID4+ID4+IE9uIDIwMTctMTAtMTkgMDM6NTAsIENhcmxvcyBTYW5jaGV6IDxjLi4uQGFwYWNoZS5vcmc+IHdyb3RlPQo6Cj4+ID4gPiA+PiA+PiA+IEFybmF1ZCBpcyBjb3JyZWN0LCBJIHNlbnQgYW4gZW1haWwgdG8gdXNlcnNAIGJhY2sgb24gRnJpLD0KICA9Cgo+PiBOb3YgNywKPj4gPiA+ID4+ID4+Cj4+ID4gPiA+PiA+PiAyMDE0LD4KPj4gPiA+ID4+ID4+Cj4+ID4gPiA+PiA+PiA+IDAwOjIzIHdoZW4gSSBjcmVhdGVkIHRoZSBpbWFnZT4KPj4gPiA+ID4+ID4+ID4KPj4gPiA+ID4+ID4+ID4KPj4gPiA+ID4+ID4+ID4gT24gVGh1LCBPY3QgMTksIDIwMTcsIDExOjEyIEFybmF1ZCBIPUVGPUJGPUJEcml0aWVyICA9Cgo+PiA8YWguLi5AZ21haWwuY29tPgo+PiA+ID4gPj4gPj4gPiB3cm90ZTo+Cj4+ID4gPiA+PiA+PiA+Cj4+ID4gPiA+PiA+PiA+ID4gVGhlc2UgaW1hZ2VzIGFyZSBraW5kbHkgbWFuYWdlZCBieSBhIFBNQyBtZW1iZXIgb2Ygb3VyID0KID0KCj4+IHByb2plY3QKPj4gPiA+ID4+ID4+Cj4+ID4gPiA+PiA+PiAoQ2FybG9zKQo+PiA+ID4gPj4gPj4KPj4gPiA+ID4+ID4+IGJ1dD4KPj4gPiA+ID4+ID4+Cj4+ID4gPiA+PiA+PiA+ID4geWVzIHRoZXkgYXJlbid0IG1hbmFnZWQgZGlyZWN0bHkgYnkgdGhlIHByb2plY3Q+Cj4+ID4gPiA+PiA+PiA+ID4KPj4gPiA+ID4+ID4+ID4gPiBXZSBjYW4gZWFzaWx5IHNlZSB3aXRoIGhpbSB0byBpbXByb3ZlIHRoaXMgSU1PLj4KPj4gPiA+ID4+ID4+ID4gPgo+PiA+ID4gPj4gPj4gPiA+IFdoZW4gaGUgc3RhcnRlZCB0aGF0IChzZXZlcmFsIHllYXJzIGFnbykgRG9ja2VyIHdhc24ndCA9CiA9Cgo+PiB3aGF0IGl0Cj4+ID4KPj4gPiBpcwo+PiA+Cj4+ID4gPiA+PiA+PiBub3dhZGF5cy4+Cj4+ID4gPiA+PiA+Pgo+PiA+ID4gPj4gPj4gPiA+IFdpdGggZG9ja2VyIGJlaW5nIG1haW5zdHJlYW0gSSBhZ3JlZSB0aGF0IHdlIGNhbiAgPQoKPj4gcmVjb25zaWRlcgo+PiA+Cj4+ID4gdGhpcy4+Cj4+ID4KPj4gPiA+ID4+ID4+ID4gPiBUaGUgZG9ja2VyIGltYWdlIGJ1aWxkL2Rpc3RyaWJ1dGlvbiBjb3VsZCBwZXJoYXBzIGJlIHBhPQpydCAgPQoKPj4gb2YKPj4gPgo+PiA+IG91cgo+PiA+Cj4+ID4gPiA+PiA+PiByZWxlYXNlPgo+PiA+ID4gPj4gPj4KPj4gPiA+ID4+ID4+ID4gPiBwcm9jZXNzLj4KPj4gPiA+ID4+ID4+ID4gPgo+PiA+ID4gPj4gPj4gPiA+IFdEWVQgQ2FybG9zID8+Cj4+ID4gPiA+PiA+PiA+ID4KPj4gPiA+ID4+ID4+ID4gPiBPbiBUaHUsIE9jdCAxOSwgMjAxNyBhdCA0OjE2IEFNLCBNaWtlIERyb2IgID0KCj4+IDxtZC4uLkBhcGFjaGUub3JnPgo+PiA+ID4gPj4gPj4KPj4gPiA+ID4+ID4+IHdyb3RlOj4KPj4gPiA+ID4+ID4+Cj4+ID4gPiA+PiA+PiA+ID4gPiBJIGd1ZXNzIHRoZSBuYXR1cmFsIGZvbGxvdy1vbiBxdWVzdGlvbiBpcyB3aGV0aGVyIHRoZT0KICA9Cgo+PiBNYXZlbgo+PiA+ID4gPj4gPj4KPj4gPiA+ID4+ID4+IGNvbW11bml0eT4KPj4gPiA+ID4+ID4+Cj4+ID4gPiA+PiA+PiA+ID4gPiB3b3VsZCBjb25zaWRlciBwdWJsaXNoaW5nIGFuIG9mZmljaWFsIHNldCBvZiBpbWFnZXM/ID0KT3IKPj4gPiA+ID4+ID4+Cj4+ID4gPiA+PiA+PiBhbHRlcm5hdGl2ZWx5Pgo+PiA+ID4gPj4gPj4KPj4gPiA+ID4+ID4+ID4gPiA+IHdoZXRoZXIgdGhleSBzaG91bGQgc2VuZCBhIHRha2Vkb3duIG5vdGljZSB0byBwcm90ZWN0PQogID0KCj4+IHRoZWlyCj4+ID4gPiA+PiA+PiA+ID4gPiBicmFuZAo+PiA+ID4gPj4gPj4KPj4gPiA+ID4+ID4+IGFuZD4KPj4gPiA+ID4+ID4+Cj4+ID4gPiA+PiA+PiA+ID4gPiB0cmFkZW1hcmtzLi4uPgo+PiA+ID4gPj4gPj4gPiA+ID4KPj4gPiA+ID4+ID4+ID4gPiA+IE9uIDIwMTctMTAtMTggMTg6MzYsICJNYW5mcmVkIE1vc2VyIiAgPQoKPj4gPG1hLi4uQHNpbXBsaWdpbGl0eS5jb20KPj4gPiA+ID4+ID4+Cj4+ID4gPiA+PiA+PiB3cm90ZTo+Cj4+ID4gPiA+PiA+Pgo+PiA+ID4gPj4gPj4gPiA+ID4gPiBOby4gQXMgeW91IGNhbiBzZWUgZnJvbSB0aGUgZ2l0aHViIFVSTCB0aGlzIGlzIE5PVCA9CmFuCj4+ID4KPj4gPiBhcGFjaGUKPj4gPgo+PiA+ID4gPj4gPj4gVVJMLj4KPj4gPiA+ID4+ID4+Cj4+ID4gPiA+PiA+PiA+ID4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9jYXJsb3NzZy9kb2NrZXItbWF2ZW4+Cj4+ID4gPiA+PiA+PiA+ID4gPiA+Cj4+ID4gPiA+PiA+PiA+ID4gPiA+Cj4+ID4gPiA+PiA+PiA+ID4gPiA+IE1pa2UgRHJvYiB3cm90ZSBvbiAyMDE3LTEwLTE4IDE2OjMyOj4KPj4gPiA+ID4+ID4+ID4gPiA+ID4KPj4gPiA+ID4+ID4+ID4gPiA+ID4gPiBIZWxsbyw+Cj4+ID4gPiA+PiA+PiA+ID4gPiA+ID4KPj4gPiA+ID4+ID4+ID4gPiA+ID4gPiBBcmUgdGhlIGltYWdlcyBhdCBodHRwczovL2h1Yi5kb2NrZXIuY29tL3IvXy9tYXZlPQpuLwo+PiA+ID4gPj4gPj4KPj4gPiA+ID4+ID4+IGNvbnNpZGVyZWQgdG8KPj4gPiA+ID4+ID4+Cj4+ID4gPiA+PiA+PiBiZT4KPj4gPiA+ID4+ID4+Cj4+ID4gPiA+PiA+PiA+ID4gPiBvZmZpY2lhbD4KPj4gPiA+ID4+ID4+ID4gPiA+Cj4+ID4gPiA+PiA+PiA+ID4gPiA+ID4gbWF2ZW4gZG9ja2VyIGltYWdlcyBhbmQgYmxlc3NlZC9wdWJsaXNoZWQgYnkgdGhlID0KID0KCj4+IFBNQz8+Cj4+ID4gPiA+PiA+PiA+ID4gPiA+ID4KPj4gPiA+ID4+ID4+ID4gPiA+ID4gPiBUaGFua3MsPgo+PiA+ID4gPj4gPj4gPiA+ID4gPiA+IE1pa2U+Cj4+ID4KPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotLT4KPj4gPgo+PiA+ID4gPj4gPj4gPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6Cj4+ID4gdXNlcnMtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KPj4gPgo+PiA+ID4gPj4gPj4gPiA+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6Cj4+ID4gPiA+PiA+PiA+ID4gPiA+ID4gdXNlcnMtaGVscEBtYXZlbi5hcGFjaGUub3JnPgo+PiA+Cj4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLS0+Cj4+ID4KPj4gPiA+ID4+ID4+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogID0KCj4+IHVzZXJzLXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPgo+PiA+ID4gPj4gPj4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOgo+PiA+IHVzZXJzLWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KPj4gPgo+PiA+Cj4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLS0+Cj4+ID4KPj4gPiA+ID4+ID4+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6ICA9Cgo+PiB1c2Vycy11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgo+PiA+ID4gPj4gPj4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogID0KCj4+IHVzZXJzLWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4gPj4gPj4gPiA+Cj4+ID4gPiA+PiA+PiA+ID4gLS0+Cj4+ID4gPiA+PiA+PiA+ID4gLS0tLS0+Cj4+ID4gPiA+PiA+PiA+ID4gQXJuYXVkIEg9RUY9QkY9QkRyaXRpZXI+Cj4+ID4gPiA+PiA+PiA+ID4gaHR0cDovL2FoZXJpdGllci5uZXQ+Cj4+ID4gPiA+PiA+PiA+ID4gTWFpbC9HVGFsazogYWhlcml0aWVyIEFUIGdtYWlsIERPVCBjb20+Cj4+ID4gPiA+PiA+PiA+ID4gVHdpdHRlci9Ta3lwZSA6IGFoZXJpdGllcj4KPj4gPgo+PiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0tCj4+ID4KPj4gPiA+ID4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+ID4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4gPj4KPj4gPiA+ID4+ICA9Cgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cgo+PiA+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+ID4KPj4gPiA+ID4gID0KCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KCj4+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+Cj4+ID4gPiAgPQoKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQoKPj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4KPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotLQo+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+Cj4+ID4gLS0KPj4KPj4gU2VudCBmcm9tIG15IHBob25lCj4KPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzMDYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE9jdCAyMiAxMDowMDo1NiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzMDYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgN0VDRjExMDVBRAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDIyIE9jdCAyMDE3IDEwOjAwOjU2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTA2MzAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjIgT2N0IDIwMTcgMTA6MDA6NTYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUwNTI4IGludm9rZWQgYnkgdWlkIDUwMCk7IDIyIE9jdCAyMDE3IDEwOjAwOjU2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTA1MDkgaW52b2tlZCBieSB1aWQgOTkpOyAyMiBPY3QgMjAxNyAxMDowMDo1NiAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAyMiBPY3QgMjAxNyAxMDowMDo1NiArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDI3RDNGMUEwMzZFOwoJU3VuLCAyMiBPY3QgMjAxNyAxMDowMDo1MyArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwKID0/aXNvLTg4NTktMTU/UT9IZXJ2PUU5X0JPVVRFTVk/PSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpDYzogY21sQGFwYWNoZS5vcmcKU3ViamVjdDogUmU6IG1pZ3JhdGluZyBzb21lIGNvZGUgdG8gR2l0ClJlZmVyZW5jZXM6IDwzMDA2NDcxLkdyU0ZqU0pqR1hAZ2lnYT4gPDE2MDA5MTAuR3RkdnhNMUs5MUBnaWdhPgogPDU4Njk3OTYuN3ZpMVBUejBtSkBnaWdhPiA8MjkyMDM2MC5RR0dFZU94Y2FDQGdpZ2E+CkRhdGU6IFN1biwgMjIgT2N0IDIwMTcgMTI6MDA6NTAgKzAyMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogUXVvdGVkLVByaW50YWJsZQpGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueThoOHJvd2NrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkluLVJlcGx5LVRvOiA8MjkyMDM2MC5RR0dFZU94Y2FDQGdpZ2E+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKR3JlYXQgam9iLCB0aGFuayB5b3UgYWxsIQoKUm9iZXJ0CgpPbiBTdW4sIDIyIE9jdCAyMDE3IDExOjQ1OjAyICswMjAwLCBIZXJ2PUU5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS49CmZyPiAgPQoKd3JvdGU6Cgo+IG1pZ3JhdGlvbiBkb25lOiBvbmx5IHJlbWFpbmluZyB0YXNrIGlzIHRvIHJlbmFtZSAidHJ1bmsiIEhFQUQgYnJhbmNoICA9Cgo+IGluaGVyaXRlZAo+IGZyb20gc3ZuIGhpc3RvcnkgdG8gIm1hc3RlciIgKGFuZCBldmVudHVhbGx5IGFkZCBhIE1PVkVEX1RPX0dJVCBmaWxlIGk9Cm4gID0KCj4gb3JpZ2luCj4gc3ZuKQo+Cj4gVGhlIEFwYWNoZSBnaXQgaG9zdGluZyBwcm92aWRlZCBpcyBHaXRCb3gsIHVubGlrZSBwcmV2aW91cyBjb21wb25lbnQgID0KCj4gdGhhdCB1c2UKPiBHaXQtV2lwOiB3aXRoIEdpdEJveCwgdGhlIGNvbnRlbnQgaXMgbW9kaWZpYWJsZSBib3RoIGF0IEFTRiBnaXQgcmVwbyBhPQpuZCAgPQoKPiBHaXRIdWIKPiBtaXJyb3IKPiBZb3UnbGwgbmVlZCBzb21lIGNvbmZpZyBvbiB5b3VyIHNpZGUgaWYgeW91IHdhbnQgdG8gYmUgYWJsZSB0byBwdXNoICA9Cgo+IGRpcmVjdGx5IHRvCj4gR2l0SHViOiBzZWUgaHR0cHM6Ly9naXRib3guYXBhY2hlLm9yZy9zZXR1cC8KPgo+IFRoYW5rcyB0byBpbmZyYSBDaHJpcyBMYW1iZXJ0dXMgZm9yIGRvaW5nIHRoZSBqb2IgZm9yIHVzCj4KPiBSZWdhcmRzLAo+Cj4gSGVydj1FOQo+Cj4gTGUgbWFyZGkgMTAgb2N0b2JyZSAyMDE3LCAxODo0MjoyNiBDRVNUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOgo+PiBqaXJhIGlzc3VlIGNyZWF0ZWQ6Cj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvSU5GUkEtMTUyNTMKPj4KPj4gUmVnYXJkcywKPj4KPj4gSGVydj1FOQo+Pgo+PiBMZSBzYW1lZGkgNyBvY3RvYnJlIDIwMTcsIDEyOjMyOjAwIENFU1QgSGVydj1FOSBCT1VURU1ZIGEgPUU5Y3JpdCA6Cj4+ID4gSSB3cm90ZSBhIGxpdHRsZSBzaGVsbCBzY3JpcHQgdG8gY2hlY2sgZGlmZmVyZW5jZXMgYmV0d2VlbiB0YWdzIGluID0KID0KCj4+IHN2biBhbmQKPj4gPiBnaXQgY2hlY2tvdXQKPj4gPiB0aGUgb25seSBkaWZmZXJlbmNlcyBJIGZvdW5kIGZvciB0aGUgNiBnaXQgcmVwb3MgYXJlOgo+PiA+IDEuIGVtcHR5IGRpcnMgKHdoaWNoIGV4aXN0IGluIHN2biBidXQgYXJlIHBydW5lZCBpbiBnaXQpCj4+ID4gMi4gb25lIHN0cmFnZSBjYXNlIGluIGVuZm9yY2VyLTEuMiB3aGVyZSBhIGZldyBmaWxlcyBzZWVtIHRvIGhhdmUgID0KCj4+IG5ld2xpbmVzCj4+ID4gaXNzdWVzCj4+ID4KPj4gPiB0byBtZSwgdGhpcyBjYW4gYmUgc2FmZWx5IGlnbm9yZWQKPj4gPgo+PiA+IGlmIG5vYm9keSBvYmplY3RzLCBpbiA3MmgsIEknbGwgY3JlYXRlIElORlJBIGppcmEgaXNzdWUgdG8gc3dpdGNoCj4+ID4gZm9sbG93aW5nCj4+ID4gNiBjb21wb25lbnRzIGZyb20gc3ZuIHRvIHRoZSBjdXJyZW50IGdpdCBtaXJyb3I6Cj4+ID4gLSBEb3hpYSBjb3JlCj4+ID4gLSBEb3hpYSBTaXRldG9vbHMKPj4gPiAtIEVuZm9yY2VyCj4+ID4gLSBKeHIKPj4gPiAtIFBsdWdpbiBUb29scwo+PiA+IC0gUmVsZWFzZQo+PiA+Cj4+ID4KPj4gPiBSZWdhcmRzLAo+PiA+Cj4+ID4gSGVydj1FOQo+PiA+Cj4+ID4gTGUgc2FtZWRpIDcgb2N0b2JyZSAyMDE3LCAwNDo0NzozMiBDRVNUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOj0KCj4+ID4gPiByZS1yZWFkaW5nIG91ciBtaWdyYXRpb24gcHJvY2VzcyBkb2N1bWVudGF0aW9uIFsxXSwgSSBzZWUgImNoZWNrCj4+ID4gPiBlc3BlY2lhbGx5Cj4+ID4gPiBiZWhhdmlvdXIgb24gY2hlY2tpbmcgb3V0IHRhZyIKPj4gPiA+Cj4+ID4gPiBJIHN1cHBvc2UgdGhhdCB3ZSBjb3VsZCBjb21wYXJlIGNvbnRlbnQgYmV0d2VlbiBnaXQgY2hlY2tvdXQgYW5kID0Kc3ZuCj4+ID4gPiBjaGVja291dCBmb3IgSEVBRCBhbmQgZXZlcnkgcGFzdCByZWxlYXNlCj4+ID4gPgo+PiA+ID4gZGlkIHNvbWVib2R5IHByZXBhcmUgYSBzaGVsbCBzY3JpcHQgZm9yIHRoYXQ/Cj4+ID4gPgo+PiA+ID4gUmVnYXJkcywKPj4gPiA+Cj4+ID4gPiBIZXJ2PUU5Cj4+ID4gPgo+PiA+ID4gWzFdIGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvTUFWRU4vR2l0Cj4+ID4gPiArTWlncmF0aW9uI0dpdE1pZ3JhdGlvbi1NaWdyYXRpb25wcm9jZXNzZGVzY3JpcHRpb24KPj4gPiA+Cj4+ID4gPiBMZSB2ZW5kcmVkaSA2IG9jdG9icmUgMjAxNywgMDA6MzQ6MTEgQ0VTVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcj0KaXQgOgo+PiA+ID4gPiBncmVhdCwgdGhhbmsgeW91IGZvciB5b3VyIGhlbHAKPj4gPiA+ID4KPj4gPiA+ID4gaW4gZmFjdCwgQUZBSUssIEFwYWNoZSBoYXMgYWxyZWFkeSBhdXRvbWF0aWMgc3ZuMmdpdCBleHBvcnRzIFsxPQpdICA9Cgo+PiB0aGF0Cj4+ID4gPiA+IGFyZQo+PiA+ID4gPiB0aGVuIG1pcnJvcmVkIHRvIGdpdGh1Yi4KPj4gPiA+ID4gVGhlbiB3ZSBhbHJlYWR5IGhhdmU6Cj4+ID4gPiA+IC0gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1kb3hpYS8KPj4gPiA+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRveGlhLXNpdGV0b29scy8KPj4gPiA+ID4gLSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWVuZm9yY2VyLwo+PiA+ID4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tanhyLwo+PiA+ID4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2luLXRvb2xzLwo+PiA+ID4gPiAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcmVsZWFzZS8KPj4gPiA+ID4KPj4gPiA+ID4gSSBzdXBwb3NlIHRoZXNlIGNvdWxkIGJlIHRoZSBuYXR1cmFsIHRhcmdldHMuCj4+ID4gPiA+IEJ1dCBJIGRvbid0IHJlYWxseSBzZWUgd2hhdCBjaGVja3MgdG8gZG8gb24gdGhlc2UuCj4+ID4gPiA+Cj4+ID4gPiA+IEkgc3VwcG9zZSB0aGF0IG9uY2Ugd2UgYXJlIGNvbnZpbmNlZCB0aGlzIGNvbnRlbnQgaXMgb2ssIHdlIGNhbj0KICA9Cgo+PiBhc2sKPj4gPiA+ID4gaW5mcmEKPj4gPiA+ID4gdG8gc3dpdGNoIHRoZXNlIHRvIHRoZSBjYW5vbmljYWwgc291cmNlIChhbmQgZGlzYWJsZSB0aGUgc3ZuMmdpPQp0Cj4+ID4gPiA+IGV4cG9ydHMpCj4+ID4gPiA+Cj4+ID4gPiA+IERvIHlvdSBzZWUgYW55IGlzc3VlIGluIHRoZXNlIHJlcG9zPwo+PiA+ID4gPgo+PiA+ID4gPiBSZWdhcmRzLAo+PiA+ID4gPgo+PiA+ID4gPiBIZXJ2PUU5Cj4+ID4gPiA+Cj4+ID4gPiA+IFsxXSBodHRwOi8vZ2l0LmFwYWNoZS5vcmcvCj4+ID4gPiA+Cj4+ID4gPiA+IExlIGpldWRpIDUgb2N0b2JyZSAyMDE3LCAxMTo0NToyMyBDRVNUIERlamFuIFN0b2phZGlub3ZpYyBhID1FOT0KY3JpdCAgPQoKPj4gOgo+PiA+ID4gPiA+IENvdW50IG1lIGluIChmb3IgYm90aCBhY3R1YWwgbWlncmF0aW9uIGFuZCByZWxhdGVkIHRhc2tzKS4KPj4gPiA+ID4gPgo+PiA+ID4gPiA+IE15IHdlYXBvbiBvZiBjaG9pY2UgZm9yIFNWTiAtLT4+R0lUIHdvdWxkIGJlOgo+PiA+ID4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9uaXJ2ZHJ1bS9zdm4yZ2l0IChJIG1hbmFnZWQgdG8gbW92ZSBkb3plbiA9Cm9mCj4+ID4gPiA+ID4gcmVwb3MKPj4gPiA+ID4gPiBmZXcKPj4gPiA+ID4gPiB5ZWFycyBhZ28pLgo+PiA+ID4gPiA+Cj4+ID4gPiA+ID4gUmVnYXJkcywKPj4gPiA+ID4gPiBEZWphbgo+PiA+ID4gPiA+Cj4+ID4gPiA+ID4gT24gMjAxNy0xMC0wNCAwMTo0OCwgSGVydj1DMz1BOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZj0Kcj4gID0KCj4+IHdyb3RlOgo+PiA+ID4gPiA+ID4gSSdkIGxpa2UgdG8gd29yayBvbiBQbHVnaW4gVG9vbHMgd2l0aCBnaXQKPj4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiBXaGlsZSBhdCBpdCwgbG9va2luZyBhdCBvdXIgcGxhbiBbMV0sIEkgc2VlIHdlIGhhdmUgYSBmZXcgID0KCj4+IG90aGVyCj4+ID4gPiA+ID4gPiBjb21wb25lbnRzCj4+ID4gPiA+ID4gPiB0aGF0IGFyZSByZWFkeSB0byBtaWdyYXRlOgo+PiA+ID4gPiA+ID4gLSBEb3hpYSBjb3JlCj4+ID4gPiA+ID4gPiAtIERveGlhIFNpdGV0b29scwo+PiA+ID4gPiA+ID4gLSBFbmZvcmNlcgo+PiA+ID4gPiA+ID4gLSBKeHIKPj4gPiA+ID4gPiA+IC0gUGx1Z2luIFRvb2xzCj4+ID4gPiA+ID4gPiAtIFJlbGVhc2UKPj4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiBXaGF0IGNoZWNrcyBhcmUgcmVxdWlyZWQgYmVmb3JlIHN3aXRjaGluZyB0aGVzZSA2IGNvbXBvbmVudD0Kcz8KPj4gPiA+ID4gPiA+IEFueSB2b2x1bnRlZXI/Cj4+ID4gPiA+ID4gPgo+PiA+ID4gPiA+ID4gUmVnYXJkcywKPj4gPiA+ID4gPiA+Cj4+ID4gPiA+ID4gPiBIZXJ2PUMzPUE5Cj4+ID4gPiA+ID4gPgo+PiA+ID4gPiA+ID4gWzFdCj4+ID4gPiA+ID4gPiAgPQoKPj4gaHR0cHM6Ly9jd2lraS5hcGFjaGUub3JnL2NvbmZsdWVuY2UvZGlzcGxheS9NQVZFTi9HaXQrTWlncmF0aW9uCj4+ID4gPiA+ID4gPgo+PiA+ID4gPiA+ID4gID0KCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiA+ID4gPiA+ID4gLS0KPj4gPiA+ID4gPiA+IC0KPj4gPiA+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPiA+ID4KPj4gPiA+ID4gPiAgPQoKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gPiA+ID4gPiAtCj4+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPiA+Cj4+ID4gPiA+ICA9Cgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cgo+PiA+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPgo+PiA+ID4gID0KCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KCj4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+Cj4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLS0KPj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQoKPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MzU4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBPY3QgMjggMDg6MjQ6MjAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzU4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEQ1MEY1MTBDOTEKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAyOCBPY3QgMjAxNyAwODoyNDoyMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDU0NTA3IGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE9jdCAyMDE3IDA4OjI0OjIwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NDQyNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBPY3QgMjAxNyAwODoyNDoyMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU0NDEzIGludm9rZWQgYnkgdWlkIDk5KTsgMjggT2N0IDIwMTcgMDg6MjQ6MjAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMjggT2N0IDIwMTcgMDg6MjQ6MjAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmwgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCBBMTRFNzFBMDRERQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMjggT2N0IDIwMTcgMDg6MjQ6MTcgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFJlOiBzdm4gY29tbWl0OiByMTgxMzU5NCAtCiAvbWF2ZW4vcGx1Z2lucy90cnVuay9tYXZlbi1wbWQtcGx1Z2luL3BvbS54bWwKUmVmZXJlbmNlczogPDIwMTcxMDI4MDgyMjE5LjM1QkFDM0EwMDQ3QHN2bjAxLXVzLXdlc3QuYXBhY2hlLm9yZz4KRGF0ZTogU2F0LCAyOCBPY3QgMjAxNyAxMDoyNDoxOSArMDIwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55OHM4YXRqN2tka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KSW4tUmVwbHktVG86IDwyMDE3MTAyODA4MjIxOS4zNUJBQzNBMDA0N0Bzdm4wMS11cy13ZXN0LmFwYWNoZS5vcmc+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKTmljZSEgQW5vdGhlciBwbHVnaW4gd2hpY2ggZG9lc24ndCBkZXBlbmQgb24gbWF2ZW4tY29tcGF0IGFueW1vcmUKCk9uIFNhdCwgMjggT2N0IDIwMTcgMTA6MjI6MTkgKzAyMDAsIDxhZGFuZ2VsQGFwYWNoZS5vcmc+IHdyb3RlOgoKPiBBdXRob3I6IGFkYW5nZWwKPiBEYXRlOiBTYXQgT2N0IDI4IDA4OjIyOjE5IDIwMTcKPiBOZXcgUmV2aXNpb246IDE4MTM1OTQKPgo+IFVSTDogaHR0cDovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yz9yZXY9MTgxMzU5NCZ2aWV3PXJldgo+IExvZzoKPiBbTVBNRC0yNDBdIE1pZ3JhdGUgcGx1Z2luIHRvIE1hdmVuIDMuMAo+Cj4gbWF2ZW4tY29tcGF0IG5vdyBvbmx5IG5lZWRlZCBmb3IgdGVzdHMKPgo+IE1vZGlmaWVkOgo+ICAgICBtYXZlbi9wbHVnaW5zL3RydW5rL21hdmVuLXBtZC1wbHVnaW4vcG9tLnhtbAo+Cj4gTW9kaWZpZWQ6IG1hdmVuL3BsdWdpbnMvdHJ1bmsvbWF2ZW4tcG1kLXBsdWdpbi9wb20ueG1sCj4gVVJMOiAgCj4gaHR0cDovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy9tYXZlbi9wbHVnaW5zL3RydW5rL21hdmVuLXBtZC1wbHVnaW4vcG9tLnhtbD9yZXY9MTgxMzU5NCZyMT0xODEzNTkzJnIyPTE4MTM1OTQmdmlldz1kaWZmCj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cj4gLS0tIG1hdmVuL3BsdWdpbnMvdHJ1bmsvbWF2ZW4tcG1kLXBsdWdpbi9wb20ueG1sIChvcmlnaW5hbCkKPiArKysgbWF2ZW4vcGx1Z2lucy90cnVuay9tYXZlbi1wbWQtcGx1Z2luL3BvbS54bWwgU2F0IE9jdCAyOCAwODoyMjoxOSAyMDE3Cj4gQEAgLTEwOSwxMSArMTA5LDYgQEAgdW5kZXIgdGhlIExpY2Vuc2UuCj4gICAgICAgIDx2ZXJzaW9uPiR7bWF2ZW5WZXJzaW9ufTwvdmVyc2lvbj4KPiAgICAgIDwvZGVwZW5kZW5jeT4KPiAgICAgIDxkZXBlbmRlbmN5Pgo+IC0gICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuPC9ncm91cElkPgo+IC0gICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1jb21wYXQ8L2FydGlmYWN0SWQ+Cj4gLSAgICAgIDx2ZXJzaW9uPiR7bWF2ZW5WZXJzaW9ufTwvdmVyc2lvbj4KPiAtICAgIDwvZGVwZW5kZW5jeT4KPiAtICAgIDxkZXBlbmRlbmN5Pgo+ICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbi10b29sczwvZ3JvdXBJZD4KPiAgICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tcGx1Z2luLWFubm90YXRpb25zPC9hcnRpZmFjdElkPgo+ICAgICAgICA8c2NvcGU+cHJvdmlkZWQ8L3Njb3BlPgo+IEBAIC0xODksNiArMTg0LDEyIEBAIHVuZGVyIHRoZSBMaWNlbnNlLgo+ICAgICA8IS0tIHRlc3QgLS0+Cj4gICAgICA8ZGVwZW5kZW5jeT4KPiArICAgICAgPGdyb3VwSWQ+b3JnLmFwYWNoZS5tYXZlbjwvZ3JvdXBJZD4KPiArICAgICAgPGFydGlmYWN0SWQ+bWF2ZW4tY29tcGF0PC9hcnRpZmFjdElkPgo+ICsgICAgICA8dmVyc2lvbj4ke21hdmVuVmVyc2lvbn08L3ZlcnNpb24+Cj4gKyAgICAgIDxzY29wZT50ZXN0PC9zY29wZT4KPiArICAgIDwvZGVwZW5kZW5jeT4KPiArICAgIDxkZXBlbmRlbmN5Pgo+ICAgICAgICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbi10ZXN0aW5nPC9ncm91cElkPgo+ICAgICAgICA8YXJ0aWZhY3RJZD5tYXZlbi1wbHVnaW4tdGVzdGluZy1oYXJuZXNzPC9hcnRpZmFjdElkPgo+ICAgICAgICA8dmVyc2lvbj4yLjE8L3ZlcnNpb24+Cj4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDM2MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgT2N0IDI4IDA4OjM1OjAyIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDM2MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDRkZEMzEwQ0IwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMjggT2N0IDIwMTcgMDg6MzU6MDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2NDAzNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBPY3QgMjAxNyAwODozNTowMiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjM5NTEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggT2N0IDIwMTcgMDg6MzU6MDIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2Mzk0MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IE9jdCAyMDE3IDA4OjM1OjAyIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDI4IE9jdCAyMDE3IDA4OjM1OjAyICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgMTQ1RDQxQTA0REUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDI4IE9jdCAyMDE3IDA4OjM1OjAwICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBtLXBtZC1wIC0gVXBncmFkZSB0byBNYXZlbiAzClJlZmVyZW5jZXM6IDwzMGUzYmE4MC01MDQ3LWE3N2UtMTJiOC03ZTFiYWNhMmE0NGNAYXBhY2hlLm9yZz4KRGF0ZTogU2F0LCAyOCBPY3QgMjAxNyAxMDozNTowMSArMDIwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55OHM4c251Zmtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KSW4tUmVwbHktVG86IDwzMGUzYmE4MC01MDQ3LWE3N2UtMTJiOC03ZTFiYWNhMmE0NGNAYXBhY2hlLm9yZz4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpJIHdvdWxkIHNheSBuby4gSnVzdCBrZWVwIGl0IG9uIDMoYnV0IGRvIHN3aXRjaCB0byAzIHNlZ21lbnRzLCBpLmUgMy45LjApLiAgCk1hdmVuLXNpdGUtcGx1Z2luIGFuZCBtYXZlbi1jb21waWxlci1wbHVnaW4gc3VmZmVyZWQgd2l0aCB0aGUgc2FtZSBpc3N1ZSwgIAp0aGV5IHdlcmUgYWxyZWFkeSBvbiAzLnggYmVmb3JlIHRoZXkgd2VyZSBNYXZlbjMtb25seS4KCklJUkMgdGhlcmUncyBhIHNtYWxsIGxpc3Qgd2l0aCBwbHVnaW5zIHdoaWNoIGNvdWxkbid0IGZvbGxvdyB0aGlzIG5ldyAgCmNvbnZlbnRpb24uCgpSb2JlcnQKCk9uIFNhdCwgMjggT2N0IDIwMTcgMTA6MzA6NTEgKzAyMDAsIEFuZHJlYXMgRGFuZ2VsIDxhZGFuZ2VsQGFwYWNoZS5vcmc+ICAKd3JvdGU6Cgo+IEhpLAo+Cj4gSSdtIHdvcmtpbmcgb24gTVBNRC0yNDAgWzFdIGFuZCB0aGUgY3VycmVudCB0cnVuayB2ZXJzaW9uIG9mIHRoZSBwbHVnaW4KPiBpcyAzLjktU05BUFNIT1QuCj4KPiBTaGFsbCBJIG1vdmUgaXRzIHZlcnNpb24gdG8gNC4wLjAtU05BUFNIT1Q/IE90aGVyIHBsdWdpbnMgd2hlcmUgYXQgMi54Cj4gYmVmb3JlIHRoZSBtYXZlbiAzIHVwZ3JhZGUgYW5kIG1vdmVkIHRvIDMuMC4wLVNOQVBTSE9UIGFmdGVyd2FyZHMuCj4KPiBJcyB0aGUgbWF0Y2hpbmcgbWFqb3IgdmVyc2lvbiBvZiB0aGUgcGx1Z2luIGFuZCBtYXZlbiB2ZXJzaW9uIGp1c3QgYQo+IGNvaW5jaWRlbmNlIG9yIGFjdHVhbGx5IHJlcXVpcmVkPyBXb3VsZCBpdCBiZSBhbnkgcHJvYmxlbSwgdGhhdCB0aGUgbmV4dAo+IG0tcG1kLXAgd291bGQgYmUgNC4wLjA/Cj4KPiBBbmQgb25lIG1vcmUgcXVlc3Rpb246IDQuMC4wLVNOQVBTSE9UIG9yIDQuMC1TTkFQU0hPVD8KPgo+Cj4gUmVnYXJkcywKPgo+IEFuZHJlYXMKPgo+Cj4gWzFdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTVBNRC0yNDAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDM2My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgT2N0IDI4IDA4OjU5OjEwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDM2My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAxNjExNzEwRDdFCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMjggT2N0IDIwMTcgMDg6NTk6MTAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4OTg2NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBPY3QgMjAxNyAwODo1OTowOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODk3OTEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggT2N0IDIwMTcgMDg6NTk6MDkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4OTc4MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IE9jdCAyMDE3IDA4OjU5OjA5IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDI4IE9jdCAyMDE3IDA4OjU5OjA5ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgMjMzRTMxQTA0REUKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDI4IE9jdCAyMDE3IDA4OjU5OjA3ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBtLXBtZC1wIC0gVXBncmFkZSB0byBNYXZlbiAzClJlZmVyZW5jZXM6IDwzMGUzYmE4MC01MDQ3LWE3N2UtMTJiOC03ZTFiYWNhMmE0NGNAYXBhY2hlLm9yZz4KIDxvcC55OHM4c251Zmtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KIDw5ODEzNzFhYy1mZWVmLWQ5YjktNzNlNS1lMDA0MzFhNjc4MmRAYXBhY2hlLm9yZz4KRGF0ZTogU2F0LCAyOCBPY3QgMjAxNyAxMDo1OTowOCArMDIwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55OHM5d3V0aWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KSW4tUmVwbHktVG86IDw5ODEzNzFhYy1mZWVmLWQ5YjktNzNlNS1lMDA0MzFhNjc4MmRAYXBhY2hlLm9yZz4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpGaXhlZCBpbiBKaXJhCgpPbiBTYXQsIDI4IE9jdCAyMDE3IDEwOjUxOjMwICswMjAwLCBBbmRyZWFzIERhbmdlbCA8YWRhbmdlbEBhcGFjaGUub3JnPiAgCndyb3RlOgoKPiBUaGFua3MhIFRoZW4gaXQgd2lsbCBiZSAzLjkuMCA6KQo+Cj4KPiBBbSAyOC4xMC4yMDE3IHVtIDEwOjM1IHNjaHJpZWIgUm9iZXJ0IFNjaG9sdGU6Cj4+IEkgd291bGQgc2F5IG5vLiBKdXN0IGtlZXAgaXQgb24gMyhidXQgZG8gc3dpdGNoIHRvIDMgc2VnbWVudHMsIGkuZQo+PiAzLjkuMCkuIE1hdmVuLXNpdGUtcGx1Z2luIGFuZCBtYXZlbi1jb21waWxlci1wbHVnaW4gc3VmZmVyZWQgd2l0aCB0aGUKPj4gc2FtZSBpc3N1ZSwgdGhleSB3ZXJlIGFscmVhZHkgb24gMy54IGJlZm9yZSB0aGV5IHdlcmUgTWF2ZW4zLW9ubHkuCj4+Cj4+IElJUkMgdGhlcmUncyBhIHNtYWxsIGxpc3Qgd2l0aCBwbHVnaW5zIHdoaWNoIGNvdWxkbid0IGZvbGxvdyB0aGlzIG5ldwo+PiBjb252ZW50aW9uLgo+Pgo+PiBSb2JlcnQKPj4KPj4gT24gU2F0LCAyOCBPY3QgMjAxNyAxMDozMDo1MSArMDIwMCwgQW5kcmVhcyBEYW5nZWwKPj4gPGFkYW5nZWxAYXBhY2hlLm9yZz4gd3JvdGU6Cj4+Cj4+PiBIaSwKPj4+Cj4+PiBJJ20gd29ya2luZyBvbiBNUE1ELTI0MCBbMV0gYW5kIHRoZSBjdXJyZW50IHRydW5rIHZlcnNpb24gb2YgdGhlIHBsdWdpbgo+Pj4gaXMgMy45LVNOQVBTSE9ULgo+Pj4KPj4+IFNoYWxsIEkgbW92ZSBpdHMgdmVyc2lvbiB0byA0LjAuMC1TTkFQU0hPVD8gT3RoZXIgcGx1Z2lucyB3aGVyZSBhdCAyLngKPj4+IGJlZm9yZSB0aGUgbWF2ZW4gMyB1cGdyYWRlIGFuZCBtb3ZlZCB0byAzLjAuMC1TTkFQU0hPVCBhZnRlcndhcmRzLgo+Pj4KPj4+IElzIHRoZSBtYXRjaGluZyBtYWpvciB2ZXJzaW9uIG9mIHRoZSBwbHVnaW4gYW5kIG1hdmVuIHZlcnNpb24ganVzdCBhCj4+PiBjb2luY2lkZW5jZSBvciBhY3R1YWxseSByZXF1aXJlZD8gV291bGQgaXQgYmUgYW55IHByb2JsZW0sIHRoYXQgdGhlICAKPj4+IG5leHQKPj4+IG0tcG1kLXAgd291bGQgYmUgNC4wLjA/Cj4+Pgo+Pj4gQW5kIG9uZSBtb3JlIHF1ZXN0aW9uOiA0LjAuMC1TTkFQU0hPVCBvciA0LjAtU05BUFNIT1Q/Cj4+Pgo+Pj4KPj4+IFJlZ2FyZHMsCj4+Pgo+Pj4gQW5kcmVhcwo+Pj4KPj4+Cj4+PiBbMV0gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NUE1ELTI0MAo+Pgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MzY3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBPY3QgMjggMTY6MjI6MjMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MzY3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDM5QzJDMTc4NzkKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAyOCBPY3QgMjAxNyAxNjoyMjoyMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDM1NjkyIGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE9jdCAyMDE3IDE2OjIyOjIyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNTYwNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOCBPY3QgMjAxNyAxNjoyMjoyMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkzNTYzIGludm9rZWQgYnkgdWlkIDk5KTsgMjggT2N0IDIwMTcgMTI6NDY6NTUgLTAwMDAKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAtMC4xMgpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0tMC4xMiB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCVJDVkRfSU5fRE5TV0xfTk9ORT0tMC4wMDAxLCBSQ1ZEX0lOX01TUElLRV9IND0tMC4wMSwKCVJDVkRfSU5fTVNQSUtFX1dMPS0wLjAxXSBhdXRvbGVhcm49ZGlzYWJsZWQKQXV0aGVudGljYXRpb24tUmVzdWx0czogc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoYW1hdmlzZC1uZXcpOwoJZGtpbT1wYXNzICgxMDI0LWJpdCBrZXkpIGhlYWRlci5kPXNvdXJjZWdyb3VuZHMubmwKREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBjPXNpbXBsZS9zaW1wbGU7CglkPXNvdXJjZWdyb3VuZHMubmw7IHM9MjAxNDA5MjQ7CgloPWZyb206c3ViamVjdDpkYXRlOm1lc3NhZ2UtaWQ6dG86Y2M6bWltZS12ZXJzaW9uOmNvbnRlbnQtdHlwZToKCSBjb250ZW50LXRyYW5zZmVyLWVuY29kaW5nOwoJYmg9N0FCTk9QeDhNZlNZRHI0aWxRZlF1ampvTUordzlvK3pyQzF0NzVtUjlkUT07CgliPVpMdkhhZE03ZFVtM2NmT1ZFck5Ec0xlZFBKK3FZNGg1eG1kS2pCWHRHMW1OVis5L3FqRmZHU0pyZkhUTDBrSUJhdmZOcTM2eXF0ZHhLCgkgN2pWTFQrREE5VXpYbjNtMkVQc1RQeHZ6aHl5cS91OUlhekxjajhNUEx1cmdqRmhFTU5MQW51MmlUL214RkVIWitwNDRTL0pmK2l3MktVCgkgbXRkeDNnT2RGWHJGOWlScz0KWC1IYWxPbmUtQ29va2llOiBjMTIwODM2MmFmYjEzYjE4MmJlMGFlODEwNDFiNTQ1ZDVhZjQ3ZDM0ClgtSGFsT25lLUlEOiAwZDI1OGIwYi1iYmRlLTExZTctYTg3ZC1iODJhNzJkMDNiOWIKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKRGF0ZTogU2F0LCAyOCBPY3QgMjAxNyAxNDo0Njo0OCArMDIwMApTdWJqZWN0OiBNYXZlbiBKRGVwclNjYW4gUGx1Z2luClRvOiAiQXBhY2hlIE1hdmVuIERldiIgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwgIkJyaWFuIEZveCIKIDxicmlhbmZAaW5maW5pdHkubnU+CkNjOiAiTWFydGlqbiBWZXJidXJnIiA8bWFydGlqbnZlcmJ1cmdAZ21haWwuY29tPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJvYmVydC5zY2hvbHRlQHNvdXJjZWdyb3VuZHMubmw+Ck9yZ2FuaXphdGlvbjogU291cmNlZ3JvdW5kcwpNZXNzYWdlLUlEOiA8b3AueTh0a2dhaTU1aTE4dWdAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKSGksCgpJJ2QgbGlrZSB0byBwcmVwYXJlIGFuIGFscGhhIHJlbGVhc2Ugb2YgdGhlIE1hdmVuIEpEZXByU2NhbiBQbHVnaW4KSXQgaXMgYSB3cmFwcGVyIGFyb3VuZCB0aGUgamRlcHJzY2FuIHRvb2xbMV0sIGF2YWlsYWJsZSBzaW5jZSBKYXZhIDkuCgogICBZb3UgdXNlIHRoZSBqZGVwcnNjYW4gdG9vbCBhcyBhIHN0YXRpYyBhbmFseXNpcyB0b29sIHRoYXQgc2NhbnMgYSBqYXIgIApmaWxlIChvciBzb21lIG90aGVyIGFnZ3JlZ2F0aW9uIG9mIGNsYXNzIGZpbGVzKSBmb3IgdXNlcyBvZiBkZXByZWNhdGVkIEFQSSAgCmVsZW1lbnRzLgoKSXQgd291bGQgYmUgbmljZSBpZiBzb21lIGNvdWxkIGEgcmV2aWV3IHVwZnJvbnQuIEFueSBmZWVkYmFjayBpdCAgCmFwcHJlY2lhdGVkLgoKQEJyaWFuLCBjYW4geW91IGNyZWF0ZSBhIG5ldyBKaXJhIHByb2plY3Q6IE1KREVQUlNDQU4gPwoKdGhhbmtzLApSb2JlcnQKClsxXSBodHRwczovL2RvY3Mub3JhY2xlLmNvbS9qYXZhc2UvOS90b29scy9qZGVwcnNjYW4uaHRtCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQzNjUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE9jdCAyOCAxMzo0ODozNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQzNjUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQzhCQkQxNzRGOQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDI4IE9jdCAyMDE3IDEzOjQ4OjM0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTg2MTUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggT2N0IDIwMTcgMTM6NDg6MzQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU4NTQxIGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IE9jdCAyMDE3IDEzOjQ4OjM0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTg1MzAgaW52b2tlZCBieSB1aWQgOTkpOyAyOCBPY3QgMjAxNyAxMzo0ODozNCAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAyOCBPY3QgMjAxNyAxMzo0ODozNCArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEQzODk3MUEwMzcyCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAyOCBPY3QgMjAxNyAxMzo0ODozMSArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpEYXRlOiBTYXQsIDI4IE9jdCAyMDE3IDE1OjQ4OjMyICswMjAwClRvOiAiQXBhY2hlIE1hdmVuIERldiIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBNYXZlbiBKRGVwclNjYW4gUGx1Z2luCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk4dG5hNnVka2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCkhpLAoKSSdkIGxpa2UgdG8gcHJlcGFyZSBhbiBhbHBoYSByZWxlYXNlIG9mIHRoZSBNYXZlbiBKRGVwclNjYW4gUGx1Z2luCkl0IGlzIGEgd3JhcHBlciBhcm91bmQgdGhlIGpkZXByc2NhbiB0b29sWzFdLCBhdmFpbGFibGUgc2luY2UgSmF2YSA5LgoKICAgWW91IHVzZSB0aGUgamRlcHJzY2FuIHRvb2wgYXMgYSBzdGF0aWMgYW5hbHlzaXMgdG9vbCB0aGF0IHNjYW5zIGEgamFyICAKZmlsZSAob3Igc29tZSBvdGhlciBhZ2dyZWdhdGlvbiBvZiBjbGFzcyBmaWxlcykgZm9yIHVzZXMgb2YgZGVwcmVjYXRlZCBBUEkgIAplbGVtZW50cy4KCkl0IHdvdWxkIGJlIG5pY2UgaWYgc29tZSBjb3VsZCBhIHJldmlldyB1cGZyb250LiBBbnkgZmVlZGJhY2sgaXQgIAphcHByZWNpYXRlZC4KCkBCcmlhbiwgY2FuIHlvdSBjcmVhdGUgYSBuZXcgSmlyYSBwcm9qZWN0OiBNSkRFUFJTQ0FOID8KCnRoYW5rcywKUm9iZXJ0CgpbMV0gaHR0cHM6Ly9kb2NzLm9yYWNsZS5jb20vamF2YXNlLzkvdG9vbHMvamRlcHJzY2FuLmh0bQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NTU0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBOb3YgMjAgMTk6MzI6NTMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTU0LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDUyNDREMTc1MDYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAyMCBOb3YgMjAxNyAxOTozMjo1MyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE3MTk5IGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIE5vdiAyMDE3IDE5OjMyOjUyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNzEzMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBOb3YgMjAxNyAxOTozMjo1MiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE3MTIwIGludm9rZWQgYnkgdWlkIDk5KTsgMjAgTm92IDIwMTcgMTk6MzI6NTIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IE1vbiwgMjAgTm92IDIwMTcgMTk6MzI6NTIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgNDVEODExQTA4OEQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDIwIE5vdiAyMDE3IDE5OjMyOjUyICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBNYXZlbiByZWxlYXNlIHBsdWdpbgpSZWZlcmVuY2VzOiA8Q0FLbmJlbVg3eURXWFVDcUR3b1g0ekI4QlFDUVZRNjRMR0MzdnQreEhmdzZlUEFxMVVnQG1haWwuZ21haWwuY29tPiA8Q0ErMjk4VWdHeTBUa249RHdiaDVPcFdvZG1XK0wrV1FVMHQ2aGN2VVBCZ3NnYmhKS1F3QG1haWwuZ21haWwuY29tPiA8b3AueTJiMzdkenFrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDxDQUtuYmVtV3gwK3Jqbm1CNnZETURWX3Q5RWhleUxZU1RpZ3M0QlozenRkTVRra3FCa3dAbWFpbC5nbWFpbC5jb20+IDxvcC55MmRzNW5xbWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4gPENBS25iZW1YM2JjRTdBeHBvazZHN0Z2UjJqbUswbzZiVy1WeTY3SzBiMjhQNV8zVVJXd0BtYWlsLmdtYWlsLmNvbT4gPG9wLnkyaWJxd3hqa2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPiA8Q0FLbmJlbVVzTENWRGVvaWhjbUpjQ2h0NjdxY21yTGZjcHVmNGg3Mlh5XzYycXdQVnNBQG1haWwuZ21haWwuY29tPgpEYXRlOiBNb24sIDIwIE5vdiAyMDE3IDIwOjMyOjUxICswMTAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk5MG9rMWdxa2RraHJyQGRlc2t0b3AtMmtoc2s0ND4KSW4tUmVwbHktVG86IDxDQUtuYmVtVXNMQ1ZEZW9paGNtSmNDaHQ2N3FjbXJMZmNwdWY0aDcyWHlfNjJxd1BWc0FAbWFpbC5nbWFpbC5jb20+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKSGkgUGV0YXIsCgp3b3VsZCBiZSBncmVhdCBpZiB5b3UgY291bGQgcGljayB0aGlzIHVwLgpUaGVyZSdzIGVub3VnaCB3b3JrIEkgd2FudCB0byBmaW5pc2ggZmlyc3QsIG1hdmVuLXJlbGVhc2UtcGx1Z2luIGlzIG5vdCAgCm9uZSBvZiB0aGVtIHJpZ2h0IG5vdy4KCnRoYW5rcywKUm9iZXJ0CgpPbiBNb24sIDIwIE5vdiAyMDE3IDE4OjM4OjU2ICswMTAwLCBQZXRhciBUYWhjaGlldiA8cGFyYW5vaWFibGFAZ21haWwuY29tPiAgCndyb3RlOgoKPiBIaSBSb2JlcnQsCj4KPiBhbnkgdXBkYXRlcyBvbiB0aGUgcmVsZWFzZS1hZ2dyZWdhdG9yPyBJcyB0aGVyZSBhbnl0aGluZyBJIGNhbiBkbyB0byAgCj4gaGVscD8KPgo+IDIwMTctMDYtMjcgMjI6NDMgR01UKzAzOjAwIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz46Cj4KPj4gSGkgUGV0YXIsCj4+Cj4+IFRoaXMgaXMgYSBjbGVhciBzaWduIHRoYXQgJHtwcm9qZWN0fSBzaG91bGQgbm90IGJlIHVzZWQgdG8gcmVzb2x2ZSB0aGlzLgo+PiBJbnN0ZWFkIHRoZSBwb20gc2hvdWxkIGJlIGFuYWx5emVkIGFnYWluIGFuZCBpZiB0aGVyZSdzIGEgc3lzdGVtICAKPj4gcHJvcGVydHkKPj4gbWF0Y2hpbmcgdGhlIHBhcmVudCwgaXQgc2hvdWxkIGJlIHJlcGxhY2VkIGJlZm9yZSBsb2FkaW5nIHRoZSBwYXJlbnQuCj4+IFRoYXQnbGwgcmVxdWlyZSBxdWl0ZSBzb21lIG5ldyBsaW5lcyBvZiBjb2RlIDopCj4+IFRoZSBzdWdnZXN0ZWQgcmVsZWFzZS1hZ2dyZWdhdG9yIHdpbGwgcmVxdWlyZSB0aGlzIHNhbWUgZmVhdHVyZSwgc28gIAo+PiBzb29uZXIKPj4gb3IgbGF0ZXIgdGhpcyBtdXN0IGJlIGZpeGVkLgo+Pgo+PiBSb2JlcnQKPj4KPj4KPj4gT24gVHVlLCAyNyBKdW4gMjAxNyAwOTo1MDozNyArMDIwMCwgUGV0YXIgVGFoY2hpZXYgIAo+PiA8cGFyYW5vaWFibGFAZ21haWwuY29tPgo+PiB3cm90ZToKPj4KPj4gSGV5IGd1eXMsCj4+Pgo+Pj4gbXkgcHVsbC1yZXF1ZXN0IHdvcmtlZCBmaW5lIHRvIG5vdCBzaG93IHRoZSBwcm9tcHQgdG8gc3BlY2lmeSBhICAKPj4+IHZlcnNpb24uCj4+PiBIb3dldmVyLCBpdCBmYWlscyB0byB1cGRhdGUgc25hcHNob3QgZGVwZW5kZW5jeSB2ZXJzaW9ucyB3aGVuIHlvdSAgCj4+PiByZXNvbHZlCj4+PiB0aGUgcGFyZW50IHRvIGEgY29uY3JldGUgdmVyc2lvbi4KPj4+IFBhcnRpY3VsYXJseSBpbiBteSBjYXNlOgo+Pj4KPj4+Cj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0JPTV0KPj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgICBcCj4+PiAgICAgICAgICAgICAgW1BMQVRGT1JNXSAgW0RFTU9fU1RPUkVdCj4+PiAgICAgICAgICAgICAgICAtbW9kdWxlMSAgICAgICAgICAgICAtIHBsYXRmb3JtOm1vZHVsZTEKPj4+ICAgICAgICAgICAgICAgIC1tb2R1bGUyICAgICAgICAgICAgIC0gcGxhdGZvcm06bW9kdWxlMgo+Pj4gICAgICAgICAgICAgICAgLi4uLiAgICAgICAgICAgICAgICAgICAgICAuLi4uLgo+Pj4gICAgICAgICAgICAgICAgLSBtb2R1bGVOICAgICAgICAgICAgLSBwbGF0Zm9ybTptb2R1bGVOCj4+Pgo+Pj4gVGhlIFtCT01dIGRlZmluZXMgaW4gZGVwZW5kZW5jeU1hbmFnZW1lbnQgc2VjdGlvbiBhbGwgdGhlIHZlcnNpb25zIG9mICAKPj4+IHRoZQo+Pj4gbW9kdWxlcyBvZiB0aGUgW1BMQVRGT1JNXS4gVGhlbiB0aGUgW0RFTU9fU1RPUkVdIGNhbiByZWZlcmVuY2UgdGhlbQo+Pj4gd2l0aG91dAo+Pj4gc3BlY2lmeWluZyBhIHZlcnNpb24uIER1cmluZyByZWxlYXNlIHdoYXQgSSBkbyBpcyBJIGZpcnN0IHJlbGVhc2UgdGhlCj4+PiBbQk9NXSwgdGhlbiByZWxlYXNlIHRoZSBbUExBVEZPUk1dIGFuZCB1cCB0byBoZXJlIEkgc2VlIG5vIHByb2JsZW1zLiAgCj4+PiBCdXQKPj4+IHRoZW4gSSB0cnkgdG8gcmVsZWFzZSB0aGUgREVNT19TVE9SRV0gYW5kIGV2ZW4gdGhvdWdoIEkgc3BlY2lmeSBvbiB0aGUKPj4+IGNvbW1hbmQgbGluZSB0aGUgdmVyc2lvbiBvZiB0aGUgcGFyZW50IFtCT01dOgo+Pj4KPj4+IC1EZGVwZW5kZW5jeS5jb20ubmVtZXNpczpib20ucmVsZWFzZT0xLjUuMi5SRUxFQVNFCj4+PiAtRGRlcGVuZGVuY3kuY29tLm5lbWVzaXM6Ym9tLmRldmVsb3BtZW50PTEuNS4zLkJVSUxELVNOQVBTSE9UCj4+Pgo+Pj4KPj4+IGl0IHN0aWxsIGFza3MgbWUgZm9yIHZlcnNpb25zIG9mIGRlcGVuZGVuY2llcyB3aGljaCBhcmUgc3BlY2lmaWVkIGluICAKPj4+IHRoZQo+Pj4gcmVsZWFzZWQgW0JPTV0uIEkgdHJpZWQgcGF0Y2hpbmcgdGhlIGNvZGUgYW5kIHNwZWNpZnlpbmcgYSBuZXcgdmVyc2lvbiAgCj4+PiBvZgo+Pj4gdGhlIHBhcmVudAo+Pj4KPj4+IHByb2plY3QuZ2V0UGFyZW50QXJ0aWZhY3QoKS5zZXRWZXJzaW9uKCIxLjUuMi5SRUxFQVNFIikKPj4+Cj4+PiBqdXN0IHRvIHNlZSBpZiBpdCB3b3JrcywgYnV0IHRoZSBwcm9ibGVtIGlzIHRoYXQgdGhlIGRlcGVuZGVuY2llcyBpbiAgCj4+PiB0aGUKPj4+IHByb2plY3QgYXJlIGFscmVhZHkgcmVzb2x2ZWQ6IHdoZW4gSSBjYWxsIHByb2plY3QuZ2V0RGVwZW5kZW5jaWVzKCkgSSAgCj4+PiBnZXQKPj4+IHRoZSBTTkFQU0hPVCB2ZXJzaW9ucy4KPj4+Cj4+PiBJcyB0aGVyZSBhbnkgd2F5IHRvIHJlbG9hZCB0aGUgcHJvamVjdCBtb2RlbCBhZnRlciBJIHNwZWNpZnkgYSBuZXcKPj4+IHBhcmVudFZlcnNpb24oKT8gU28gdGhhdCBJdCB1bmRlcnN0YW5kcyB0aGUgW0JPTV0gaXMgbm8gbG9uZ2VyIGEgIAo+Pj4gc25hcHNob3QKPj4+IHZlcnNpb24uCj4+Pgo+Pj4gVGhhbmtzCj4+Pgo+Pj4gMjAxNy0wNi0yNSAxMjoxMSBHTVQrMDM6MDAgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPjoKPj4+Cj4+PiBNUkVMRUFTRS0zNjJbMV0gaXMgcHJvYmFibHkgdGhlIG1hdGNoaW5nIGlzc3VlLgo+Pj4+IEJlIGF3YXJlIHRoYXQgc29tZSBhcmUgdGFsa2luZyBhYm91dCB0YWdnaW5nIGV2ZXJ5IG1vZHVsZS4gSW4gbW9zdAo+Pj4+IHNpdHVhdGlvbnMgSSBkb24ndCBsaWtlIHRoYXQuIElmIHRoZSBzdHJ1Y3R1cmUgaXMgaGllcmFyY2hpY2FsIGFuZCB0aGUKPj4+PiByb290Cj4+Pj4gaXMgdGFnZ2VkLCB0aGVuIGFsbCB0aGUgbW9kdWxlcyBhcmUgYWxyZWFkeSB0YWdnZWQuIEFsbCB0YWdzIG11c3QgYmUKPj4+PiBjaGVja2VkIG91dCBkdXJpbmcgcmVsZWFzZTpwZXJmb3JtLCBrZWVwIHRoYXQgaW4gbWluZC4KPj4+PiBJIHNlZSBvcHRpb25zIHdpdGggYSBmbGF0IHN0cnVjdHVyZSBhbmQgd2l0aCB0aGUgcmVsZWFzZS1hZ2dyZWdhdG9yLgo+Pj4+Cj4+Pj4gUm9iZXJ0Cj4+Pj4KPj4+PiBbMV0gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NUkVMRUFTRS0zNjIKPj4+Pgo+Pj4+Cj4+Pj4gT24gU2F0LCAyNCBKdW4gMjAxNyAyMjo1OTo0OCArMDIwMCwgUGV0YXIgVGFoY2hpZXYgPAo+Pj4+IHBhcmFub2lhYmxhQGdtYWlsLmNvbT4KPj4+PiB3cm90ZToKPj4+Pgo+Pj4+IEhpIFBhdWwsCj4+Pj4KPj4+Pj4KPj4+Pj4gSSB0aGluayB5b3UgbWlzdW5kZXJzdG9vZC4gVGhlIFtCT01dIGlzIGEgc2VwYXJhdGUgcHJvamVjdCBhbmQgdGhlCj4+Pj4+IFtQTEFURk9STV0gYW5kIFtERU1PX1NUT1JFXSBhcmUgYWxzbyBzZXBhcmF0ZSBwcm9qZWN0cywgYm90aCBvZiB3aGljaAo+Pj4+PiBkZWNsYXJlIGFzIHRoZWlyIHBhcmVudCB0aGUgW0JPTV0uCj4+Pj4+Cj4+Pj4+IEBSb2JlcnQ6IEkgaGF2ZSBhZGRlZCB0aGUgdGVzdC1jYXNlOgo+Pj4+PiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXJlbGVhc2UvcHVsbC8xOC9jb21taXRzLwo+Pj4+PiBSZWxlYXNlLWFnZ3JlZ2F0b3IgaXMgZXhhY3RseSB3aGF0J3MgbWlzc2luZy4gSXMgdGhlcmUgYW4gaXNzdWUgSSBjYW4KPj4+Pj4gc3Vic2NyaWJlIGFuZCB0cmFjaz8KPj4+Pj4KPj4+Pj4KPj4+Pj4gMjAxNy0wNi0yNCAxNDoxNSBHTVQrMDM6MDAgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPjoKPj4+Pj4KPj4+Pj4gV2hhdCB3ZSdyZSBzdGlsbCBtaXNzaW5nIGlzIGEgcmVsZWFzZS1hZ2dyZWdhdG9yLCB3aGljaCBjYW4gcmVsZWFzZQo+Pj4+Pgo+Pj4+Pj4gbXVsdGlwbGUgcmVsZWFzZS1yb290cyBhdCBvbmNlLiBUaGF0IHdvdWxkIHByb2JhYmx5IGJlIHRoZSBwcmVmZXJyZWQKPj4+Pj4+IGZpeCwKPj4+Pj4+IHRoZSBzdWdnZXN0ZWQgcGF0Y2ggaXMganVzdCBhbiBlYXN5IHdvcmstYXJvdW5kLgo+Pj4+Pj4gSXQgaXMgc3RpbGwgb24gbXkgdG9kby1saXN0Lgo+Pj4+Pj4KPj4+Pj4+IFJvYmVydAo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+PiBPbiBTYXQsIDI0IEp1biAyMDE3IDEyOjQyOjIyICswMjAwLCBQYXVsIEhhbW1hbnQgPHBhdWxAaGFtbWFudC5vcmc+Cj4+Pj4+PiB3cm90ZToKPj4+Pj4+Cj4+Pj4+PiBFYXN5IHRvIGZpeC4gIEhhdmUgYSBwcm9maWxlICdwbGF0Zm9ybU9ubHknIGluIHRoZSByb290IG1vZHVsZSAoSSdtICAKPj4+Pj4+IG5vdAo+Pj4+Pj4KPj4+Pj4+IHN1cmUgaWYgJ0JPTScgc2hvdWxkIG1lYW4gYW55dGhpbmcgdG8gbWUpIHRoYXQgaW5jbHVkZXMgb25seSAgCj4+Pj4+PiAncGxhdGZvcm0nCj4+Pj4+Pj4gYXMKPj4+Pj4+PiBhIGNoaWxkIG1vZHVsZS4KPj4+Pj4+Pgo+Pj4+Pj4+ICAgIG12biByZWxlYXNlOnByZXBhcmUgLVBwbGF0Zm9ybU9ubHkgIyBldGMKPj4+Pj4+Pgo+Pj4+Pj4+IExhdGVyIHdoZW4geW91J3JlIHJlYWR5IHRvIGRvIHRoZSBkZW1vIHN0b3JlIHJlbGVhc2UsIHVzZSBhbm90aGVyCj4+Pj4+Pj4gKGZyb20KPj4+Pj4+PiByb290KToKPj4+Pj4+Pgo+Pj4+Pj4+ICAgIG12biByZWxlYXNlOnByZXBhcmUgLVBkZW1vT25seSAjIGV0Ywo+Pj4+Pj4+Cj4+Pj4+Pj4gT2YgY291cnNlLCB5b3UgbWFuIG5vdCBuZWVkIHRvIHN0dWZmIGRlbW8gaW4geW91cgo+Pj4+Pj4+IEFydGlmYWN0b3J5L05leHVzL2V0Ywo+Pj4+Pj4+IGluCj4+Pj4+Pj4gd2hpY2ggY2FzZSBqdXN0IGRvIHlvdXIgZGVwbG95IGZ1IGFmdGVyIGFuICdpbnN0YWxsJyB3L28gdGhlICAKPj4+Pj4+PiByZWxlYXNlCj4+Pj4+Pj4gcGx1Z2luCj4+Pj4+Pj4gaW52b2x2ZWQgb3IgdGhhdCBzZWNvbmQgcHJvZmlsZS4KPj4+Pj4+Pgo+Pj4+Pj4+IC0gUGF1bAo+Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+PiBPbiBTYXQsIEp1biAyNCwgMjAxNyBhdCAyOjU4IEFNLCBQZXRhciBUYWhjaGlldiA8Cj4+Pj4+Pj4gcGFyYW5vaWFibGFAZ21haWwuY29tPgo+Pj4+Pj4+IHdyb3RlOgo+Pj4+Pj4+Cj4+Pj4+Pj4gSGV5IGd1eXMsCj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+PiBJJ20gZmFjaW5nIGEgbnVtYmVyIG9mIGNoYWxsZW5nZXMgd2hlbiBJIHJlbGVhc2UgdGhlIHByb2plY3QgYXQgbXkKPj4+Pj4+Pj4gY29tcGFueS4KPj4+Pj4+Pj4gSGVyZSdzIG15IHNldHVwOgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0JPTV0KPj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICAgIFwKPj4+Pj4+Pj4gICAgICAgICAgICAgIFtQTEFURk9STV0gIFtERU1PX1NUT1JFXQo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBJIGhhdmUgYSBtYXN0ZXIgQk9NIHByb2plY3Qgd2hpY2ggaG9sZHMgYWxsIHRoZSB2ZXJzaW9uIGFzIGRlZmluZWQKPj4+Pj4+Pj4gcHJvcGVydGllcy4gVGhpcyBCT00gaXMgdGhlIHBhcmVudCB0byB0d28gb3RoZXIgcHJvamVjdHMgLSAgCj4+Pj4+Pj4+IFtQTEFURk9STV0KPj4+Pj4+Pj4gYW5kCj4+Pj4+Pj4+IFtERU1PX1NUT1JFXSwgVGhlIFtQTEFURk9STV0gaXMgYSBwcm9qZWN0IHdpdGggbW9yZSB0aGFuIDYwICAKPj4+Pj4+Pj4gbW9kdWxlcwo+Pj4+Pj4+PiBpbnNpZGUsCj4+Pj4+Pj4+IGFuZCB0aGUgW0RFTU9fU1RPUkVdIGlzIGEgcHJvamVjdCB0aGF0IGRlY2xhcmVzIHRob3NlIG1vZHVsZXMgYXMKPj4+Pj4+Pj4gZGVwZW5kZW5jaWVzLgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBOb3cgd2hhdCBJIHdhbnQgaXMgdG8gcmVsZWFzZSBhbGwgdGhyZWUgZnJvbSBKZW5raW5zLiBJIGNhbiAgCj4+Pj4+Pj4+IHJlbGVhc2UKPj4+Pj4+Pj4gdGhlCj4+Pj4+Pj4+IFtCT01dIHdpdGggbm8gcHJvYmxlbXMsIHRoZW4gSSBzdGFydCByZWxlYXNlIG9mIHRoZSBbUExBVEZPUk1dIGFuZAo+Pj4+Pj4+PiBhbGwKPj4+Pj4+Pj4gb2YgYQo+Pj4+Pj4+PiBzdWRkZW4gSmVua2lucyBibG9ja3MgYmVjYXVzZSBNYXZlbiBhc2tzIG1lIG9uIHRoZSBjb21tYW5kIGxpbmUgIAo+Pj4+Pj4+PiBpZiBJCj4+Pj4+Pj4+IHdhbnQKPj4+Pj4+Pj4gdG8gcmVzb2x2ZSB0aGUgU05BUFNIT1QgZGVwZW5kZW5jaWVzIChyZW1lbWJlciB0aGUgcGFyZW50IG9mIHRoZQo+Pj4+Pj4+PiBbUExBVEZPUk1dCj4+Pj4+Pj4+IGlzIHRoZSBbQk9NXSBTTkFQU0hPVCB2ZXJzaW9uKS4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gU28gSSBjcmVhdGVkIHRoaXMgaXNzdWUgaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhCj4+Pj4+Pj4+IC9icm93c2UvTVJFTEVBU0UtOTg1Cj4+Pj4+Pj4+IHRvIGJlIGFibGUgdG8gc3BlY2lmeSB0aGUgW0JPTV0gcGFyZW50IHZlcnNpb24gd2hlbiBJIHN0YXJ0IHRoZQo+Pj4+Pj4+PiByZWxlYXNlCj4+Pj4+Pj4+IG9mCj4+Pj4+Pj4+IFtQTEFURk9STV0uIEkgdGhpbmsgSSBhbHNvIGZpeGVkIGl0IHdpdGggdGhpcyBwdWxsLXJlcXVlc3Q6Cj4+Pj4+Pj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcmVsZWFzZS9wdWxsLzE4Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IENhbiBzb21lb25lIGhhdmUgYSBsb29rIGF0IHRoaXMgcHVsbCByZXF1ZXN0IGFuZCB0ZWxsIG1lIGlmIGl0IGlzICAKPj4+Pj4+Pj4gT0s/Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IC0tCj4+Pj4+Pj4+IFJlZ2FyZHMsIFBldGFyIQo+Pj4+Pj4+PiBLYXJsb3ZvLCBCdWxnYXJpYS4KPj4+Pj4+Pj4gLS0tCj4+Pj4+Pj4+IFB1YmxpYyBQR1AgS2V5IGF0Ogo+Pj4+Pj4+PiBodHRwOi8vcGdwLm1pdC5lZHU6MTEzNzEvcGtzL2xvb2t1cD9vcD1nZXQmc2VhcmNoPTB4MTk2NTg1NTBDMzExMDYxMQo+Pj4+Pj4+PiBLZXkgRmluZ2VycHJpbnQ6IEEzNjkgQTdFRSA2MUJDIDkzQTMgQ0RGRiAgNTVBNSAxOTY1IDg1NTAgQzMxMSAgCj4+Pj4+Pj4+IDA2MTEKPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4+Pj4gLS0tLS0tLS0tCj4+Pj4+Pj4KPj4+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+Pj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+Pgo+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+Pgo+Pj4+Cj4+Pj4KPj4+Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Cj4+Cj4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDU1NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gTm92IDIwIDIwOjUxOjQ2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDU1NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA3NjU2OTE3ODMzCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMjAgTm92IDIwMTcgMjA6NTE6NDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxNDcwIGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIE5vdiAyMDE3IDIwOjUxOjQ2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMzk1IGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIE5vdiAyMDE3IDIwOjUxOjQ2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTM4MyBpbnZva2VkIGJ5IHVpZCA5OSk7IDIwIE5vdiAyMDE3IDIwOjUxOjQ2IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDIwIE5vdiAyMDE3IDIwOjUxOjQ2ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDY4QUQ1MUEwMTQwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAyMCBOb3YgMjAxNyAyMDo1MTo0NSArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogU2Vjb25kIE1ORy02Mjk2OiBOZXcgb3B0aW9uIC1Ec3R5bGUuY29sb3IgaXMgbm90IHdvcmtpbmcKUmVmZXJlbmNlczogPG9wLnk5d24yNm9ha2RraHJyQGRlc2t0b3AtMmtoc2s0ND4KRGF0ZTogTW9uLCAyMCBOb3YgMjAxNyAyMTo1MTo0NCArMDEwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55OTByOGltaGtka2hyckBkZXNrdG9wLTJraHNrNDQ+CkluLVJlcGx5LVRvOiA8b3AueTl3bjI2b2FrZGtocnJAZGVza3RvcC0ya2hzazQ0PgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCnBpbmc/CgpvciBnaXZlIGEgLTEgYW5kIHRlbGwgbWUgd2hhdCBlbHNlIHlvdSBleHBlY3QuCgpPbiBTYXQsIDE4IE5vdiAyMDE3IDE2OjMxOjQ0ICswMTAwLCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+ICAKd3JvdGU6Cgo+IEhpLAo+Cj4gTU5HLTYyMjBbMV0gd2FzIGluY29tcGxldGUsIHdoaWNoIHdpbGwgYmUgZml4ZWQgd2l0aCBNTkctNjI5NlsyXS4KPgo+IENvbW1pdDogIAo+IGh0dHBzOi8vZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9bWF2ZW4uZ2l0O2E9Y29tbWl0O2g9YjJhZmFmZTUKPiBDSTogICAgICAKPiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLTMueC1qZW5raW5zZmlsZS9qb2IvTU5HLTYyOTYvCj4KPiBXaG8gd2FudHMgdG8gc2Vjb25kIHRoaXM/Cj4KPiB0aGFua3MsCj4gUm9iZXJ0Cj4KPiBbMV0gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjIyMAo+IFsyXSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02Mjk2Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDU2MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgTm92IDIxIDE4OjQxOjU2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDU2MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyNkM5MDEwODdCCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMjEgTm92IDIwMTcgMTg6NDE6NTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxMjU0MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBOb3YgMjAxNyAxODo0MTo1NSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTI0NTMgaW52b2tlZCBieSB1aWQgNTAwKTsgMjEgTm92IDIwMTcgMTg6NDE6NTUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMjQ0MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDIxIE5vdiAyMDE3IDE4OjQxOjU1IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDIxIE5vdiAyMDE3IDE4OjQxOjU1ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgMDA4N0IxQTAwNkQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDIxIE5vdiAyMDE3IDE4OjQxOjU0ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBNYXZlbiByZWxlYXNlIHBsdWdpbgpSZWZlcmVuY2VzOiA8Q0FLbmJlbVg3eURXWFVDcUR3b1g0ekI4QlFDUVZRNjRMR0MzdnQreEhmdzZlUEFxMVVnQG1haWwuZ21haWwuY29tPiA8Q0ErMjk4VWdHeTBUa249RHdiaDVPcFdvZG1XK0wrV1FVMHQ2aGN2VVBCZ3NnYmhKS1F3QG1haWwuZ21haWwuY29tPiA8b3AueTJiMzdkenFrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+IDxDQUtuYmVtV3gwK3Jqbm1CNnZETURWX3Q5RWhleUxZU1RpZ3M0QlozenRkTVRra3FCa3dAbWFpbC5nbWFpbC5jb20+IDxvcC55MmRzNW5xbWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4gPENBS25iZW1YM2JjRTdBeHBvazZHN0Z2UjJqbUswbzZiVy1WeTY3SzBiMjhQNV8zVVJXd0BtYWlsLmdtYWlsLmNvbT4gPG9wLnkyaWJxd3hqa2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPiA8Q0FLbmJlbVVzTENWRGVvaWhjbUpjQ2h0NjdxY21yTGZjcHVmNGg3Mlh5XzYycXdQVnNBQG1haWwuZ21haWwuY29tPiA8b3AueTkwb2sxZ3FrZGtocnJAZGVza3RvcC0ya2hzazQ0PiA8Q0FLbmJlbVZMZkJTYjJSTFY3dFNSR3Y3SjRZWk9xdEs3OXlwTjNhVnFpZVFhcXkwTGtBQG1haWwuZ21haWwuY29tPgpEYXRlOiBUdWUsIDIxIE5vdiAyMDE3IDE5OjQxOjU0ICswMTAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk5Mmd2NGg3a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpJbi1SZXBseS1UbzogPENBS25iZW1WTGZCU2IyUkxWN3RTUkd2N0o0WVpPcXRLNzl5cE4zYVZxaWVRYXF5MExrQUBtYWlsLmdtYWlsLmNvbT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpNeSBjdXJyZW50IHByb3Bvc2FsOgoKdGhlIHN0YXJ0IHNpdHVhdGlvbiBpcyBhIGZvbGRlciBjb250YWluaW5nIHNldmVyYWwgY2hlY2tlZCBvdXQgcHJvamVjdHMuCnRoZSBmb2xkZXIgY29udGFpbnMgYW4gYWdncmVnYXRvciBwb20sIHdoaWNoIGlzIE5PVCB1bmRlciB2ZXJzaW9uIGNvbnRyb2wuCgpyZWxlYXNlOnByZXBhcmUgc2hvdWxkIHN0YXJ0IGFzIG5vcm1hbCwgYnV0IGl0IHNob3VsZCBlbmQgd2l0aCBhICAKY29tbWl0K3RhZytjb21taXQgb24gZXZlcnkgY2hlY2tlZCBvdXQgZm9sZGVyLgoKcmVsZWFzZTpwZXJmb3JtIHVzZXMgdGFyZ2V0L2NoZWNrb3V0LCB3aGVyZSB5b3UgY29weSB0aGUgYWdncmVnYXRvci1wb20uCkFuZCB5b3UgYWxzbyBjaGVjayBvdXQgdGhlIHByb2plY3RzIGJ5IHRhZy4gRW5zdXJlIHRoZXkncmUgdXNpbmcgdGhlIHNhbWUgIApkaXJlY3RvcnktbmFtZS4KClRoYXQgc2hvdWxkIGJlIGFib3V0IGl0LiBUaGUgd29yZGluZyBpcyBwcm9iYWJseSBlYXNpZXIgY29tcGFyZWQgdG8gdGhlICAKaW1wbGVtZW50YXRpb24uCgpIYXZlIGEgbG9vayBhdCBwcm9qZWN0LXV0aWxzWzFdLiBJdCBzaG91bGQgaGVscCB3aXRoIGRldGVybWluaW5nIHdoYXQga2luZCAgCm9mIHByb2plY3QgZXZlcnkgcG9tIGlzLgpJdCBoYXNuJ3QgYmVlbiByZWxlYXNlZCB5ZXQsIGJ1dCBpdCB3YXMgd3JpdHRlbiB0byBoZWxwIHRoZSAgCm1hdmVuLXJlbGVhc2UtcGx1Z2luCgpJIGhvcGUgdGhpcyBtYWtlcyBzZW5zZSwKUm9iZXJ0CgpbMV0gaHR0cDovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2FzZi9tYXZlbi9zaGFyZWQvdHJ1bmsvbWF2ZW4tcHJvamVjdC11dGlscy8KCk9uIFR1ZSwgMjEgTm92IDIwMTcgMTA6MzE6MDcgKzAxMDAsIFBldGFyIFRhaGNoaWV2IDxwYXJhbm9pYWJsYUBnbWFpbC5jb20+ICAKd3JvdGU6Cgo+IEhpIFJvYmVydCwKPiBpJ2xsIGdpdmUgaXQgYSB0cnkuIENhbiB5b3UgcGxlYXNlIHN1bW1hcml6ZSB3aGF0IG5lZWRzIHRvIGJlIGRvbmUsIG9yCj4gcGVyaGFwcyBwb2ludCBtZSB0aGUgcmlnaHQgZGlyZWN0aW9uPwo+Cj4gMjAxNy0xMS0yMCAyMTozMiBHTVQrMDI6MDAgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPjoKPgo+PiBIaSBQZXRhciwKPj4KPj4gd291bGQgYmUgZ3JlYXQgaWYgeW91IGNvdWxkIHBpY2sgdGhpcyB1cC4KPj4gVGhlcmUncyBlbm91Z2ggd29yayBJIHdhbnQgdG8gZmluaXNoIGZpcnN0LCBtYXZlbi1yZWxlYXNlLXBsdWdpbiBpcyBub3QKPj4gb25lIG9mIHRoZW0gcmlnaHQgbm93Lgo+Pgo+PiB0aGFua3MsCj4+IFJvYmVydAo+Pgo+Pgo+PiBPbiBNb24sIDIwIE5vdiAyMDE3IDE4OjM4OjU2ICswMTAwLCBQZXRhciBUYWhjaGlldiAgCj4+IDxwYXJhbm9pYWJsYUBnbWFpbC5jb20+Cj4+IHdyb3RlOgo+Pgo+PiBIaSBSb2JlcnQsCj4+Pgo+Pj4gYW55IHVwZGF0ZXMgb24gdGhlIHJlbGVhc2UtYWdncmVnYXRvcj8gSXMgdGhlcmUgYW55dGhpbmcgSSBjYW4gZG8gdG8gIAo+Pj4gaGVscD8KPj4+Cj4+PiAyMDE3LTA2LTI3IDIyOjQzIEdNVCswMzowMCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ogo+Pj4KPj4+IEhpIFBldGFyLAo+Pj4+Cj4+Pj4gVGhpcyBpcyBhIGNsZWFyIHNpZ24gdGhhdCAke3Byb2plY3R9IHNob3VsZCBub3QgYmUgdXNlZCB0byByZXNvbHZlICAKPj4+PiB0aGlzLgo+Pj4+IEluc3RlYWQgdGhlIHBvbSBzaG91bGQgYmUgYW5hbHl6ZWQgYWdhaW4gYW5kIGlmIHRoZXJlJ3MgYSBzeXN0ZW0gIAo+Pj4+IHByb3BlcnR5Cj4+Pj4gbWF0Y2hpbmcgdGhlIHBhcmVudCwgaXQgc2hvdWxkIGJlIHJlcGxhY2VkIGJlZm9yZSBsb2FkaW5nIHRoZSBwYXJlbnQuCj4+Pj4gVGhhdCdsbCByZXF1aXJlIHF1aXRlIHNvbWUgbmV3IGxpbmVzIG9mIGNvZGUgOikKPj4+PiBUaGUgc3VnZ2VzdGVkIHJlbGVhc2UtYWdncmVnYXRvciB3aWxsIHJlcXVpcmUgdGhpcyBzYW1lIGZlYXR1cmUsIHNvCj4+Pj4gc29vbmVyCj4+Pj4gb3IgbGF0ZXIgdGhpcyBtdXN0IGJlIGZpeGVkLgo+Pj4+Cj4+Pj4gUm9iZXJ0Cj4+Pj4KPj4+Pgo+Pj4+IE9uIFR1ZSwgMjcgSnVuIDIwMTcgMDk6NTA6MzcgKzAyMDAsIFBldGFyIFRhaGNoaWV2IDwKPj4+PiBwYXJhbm9pYWJsYUBnbWFpbC5jb20+Cj4+Pj4gd3JvdGU6Cj4+Pj4KPj4+PiBIZXkgZ3V5cywKPj4+Pgo+Pj4+Pgo+Pj4+PiBteSBwdWxsLXJlcXVlc3Qgd29ya2VkIGZpbmUgdG8gbm90IHNob3cgdGhlIHByb21wdCB0byBzcGVjaWZ5IGEgIAo+Pj4+PiB2ZXJzaW9uLgo+Pj4+PiBIb3dldmVyLCBpdCBmYWlscyB0byB1cGRhdGUgc25hcHNob3QgZGVwZW5kZW5jeSB2ZXJzaW9ucyB3aGVuIHlvdQo+Pj4+PiByZXNvbHZlCj4+Pj4+IHRoZSBwYXJlbnQgdG8gYSBjb25jcmV0ZSB2ZXJzaW9uLgo+Pj4+PiBQYXJ0aWN1bGFybHkgaW4gbXkgY2FzZToKPj4+Pj4KPj4+Pj4KPj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCT01dCj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyAgICBcCj4+Pj4+ICAgICAgICAgICAgICBbUExBVEZPUk1dICBbREVNT19TVE9SRV0KPj4+Pj4gICAgICAgICAgICAgICAgLW1vZHVsZTEgICAgICAgICAgICAgLSBwbGF0Zm9ybTptb2R1bGUxCj4+Pj4+ICAgICAgICAgICAgICAgIC1tb2R1bGUyICAgICAgICAgICAgIC0gcGxhdGZvcm06bW9kdWxlMgo+Pj4+PiAgICAgICAgICAgICAgICAuLi4uICAgICAgICAgICAgICAgICAgICAgIC4uLi4uCj4+Pj4+ICAgICAgICAgICAgICAgIC0gbW9kdWxlTiAgICAgICAgICAgIC0gcGxhdGZvcm06bW9kdWxlTgo+Pj4+Pgo+Pj4+PiBUaGUgW0JPTV0gZGVmaW5lcyBpbiBkZXBlbmRlbmN5TWFuYWdlbWVudCBzZWN0aW9uIGFsbCB0aGUgdmVyc2lvbnMgb2YKPj4+Pj4gdGhlCj4+Pj4+IG1vZHVsZXMgb2YgdGhlIFtQTEFURk9STV0uIFRoZW4gdGhlIFtERU1PX1NUT1JFXSBjYW4gcmVmZXJlbmNlIHRoZW0KPj4+Pj4gd2l0aG91dAo+Pj4+PiBzcGVjaWZ5aW5nIGEgdmVyc2lvbi4gRHVyaW5nIHJlbGVhc2Ugd2hhdCBJIGRvIGlzIEkgZmlyc3QgcmVsZWFzZSB0aGUKPj4+Pj4gW0JPTV0sIHRoZW4gcmVsZWFzZSB0aGUgW1BMQVRGT1JNXSBhbmQgdXAgdG8gaGVyZSBJIHNlZSBubyBwcm9ibGVtcy4gIAo+Pj4+PiBCdXQKPj4+Pj4gdGhlbiBJIHRyeSB0byByZWxlYXNlIHRoZSBERU1PX1NUT1JFXSBhbmQgZXZlbiB0aG91Z2ggSSBzcGVjaWZ5IG9uICAKPj4+Pj4gdGhlCj4+Pj4+IGNvbW1hbmQgbGluZSB0aGUgdmVyc2lvbiBvZiB0aGUgcGFyZW50IFtCT01dOgo+Pj4+Pgo+Pj4+PiAtRGRlcGVuZGVuY3kuY29tLm5lbWVzaXM6Ym9tLnJlbGVhc2U9MS41LjIuUkVMRUFTRQo+Pj4+PiAtRGRlcGVuZGVuY3kuY29tLm5lbWVzaXM6Ym9tLmRldmVsb3BtZW50PTEuNS4zLkJVSUxELVNOQVBTSE9UCj4+Pj4+Cj4+Pj4+Cj4+Pj4+IGl0IHN0aWxsIGFza3MgbWUgZm9yIHZlcnNpb25zIG9mIGRlcGVuZGVuY2llcyB3aGljaCBhcmUgc3BlY2lmaWVkIGluICAKPj4+Pj4gdGhlCj4+Pj4+IHJlbGVhc2VkIFtCT01dLiBJIHRyaWVkIHBhdGNoaW5nIHRoZSBjb2RlIGFuZCBzcGVjaWZ5aW5nIGEgbmV3ICAKPj4+Pj4gdmVyc2lvbgo+Pj4+PiBvZgo+Pj4+PiB0aGUgcGFyZW50Cj4+Pj4+Cj4+Pj4+IHByb2plY3QuZ2V0UGFyZW50QXJ0aWZhY3QoKS5zZXRWZXJzaW9uKCIxLjUuMi5SRUxFQVNFIikKPj4+Pj4KPj4+Pj4ganVzdCB0byBzZWUgaWYgaXQgd29ya3MsIGJ1dCB0aGUgcHJvYmxlbSBpcyB0aGF0IHRoZSBkZXBlbmRlbmNpZXMgaW4gIAo+Pj4+PiB0aGUKPj4+Pj4gcHJvamVjdCBhcmUgYWxyZWFkeSByZXNvbHZlZDogd2hlbiBJIGNhbGwgcHJvamVjdC5nZXREZXBlbmRlbmNpZXMoKSBJCj4+Pj4+IGdldAo+Pj4+PiB0aGUgU05BUFNIT1QgdmVyc2lvbnMuCj4+Pj4+Cj4+Pj4+IElzIHRoZXJlIGFueSB3YXkgdG8gcmVsb2FkIHRoZSBwcm9qZWN0IG1vZGVsIGFmdGVyIEkgc3BlY2lmeSBhIG5ldwo+Pj4+PiBwYXJlbnRWZXJzaW9uKCk/IFNvIHRoYXQgSXQgdW5kZXJzdGFuZHMgdGhlIFtCT01dIGlzIG5vIGxvbmdlciBhCj4+Pj4+IHNuYXBzaG90Cj4+Pj4+IHZlcnNpb24uCj4+Pj4+Cj4+Pj4+IFRoYW5rcwo+Pj4+Pgo+Pj4+PiAyMDE3LTA2LTI1IDEyOjExIEdNVCswMzowMCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ogo+Pj4+Pgo+Pj4+PiBNUkVMRUFTRS0zNjJbMV0gaXMgcHJvYmFibHkgdGhlIG1hdGNoaW5nIGlzc3VlLgo+Pj4+Pgo+Pj4+Pj4gQmUgYXdhcmUgdGhhdCBzb21lIGFyZSB0YWxraW5nIGFib3V0IHRhZ2dpbmcgZXZlcnkgbW9kdWxlLiBJbiBtb3N0Cj4+Pj4+PiBzaXR1YXRpb25zIEkgZG9uJ3QgbGlrZSB0aGF0LiBJZiB0aGUgc3RydWN0dXJlIGlzIGhpZXJhcmNoaWNhbCBhbmQgIAo+Pj4+Pj4gdGhlCj4+Pj4+PiByb290Cj4+Pj4+PiBpcyB0YWdnZWQsIHRoZW4gYWxsIHRoZSBtb2R1bGVzIGFyZSBhbHJlYWR5IHRhZ2dlZC4gQWxsIHRhZ3MgbXVzdCBiZQo+Pj4+Pj4gY2hlY2tlZCBvdXQgZHVyaW5nIHJlbGVhc2U6cGVyZm9ybSwga2VlcCB0aGF0IGluIG1pbmQuCj4+Pj4+PiBJIHNlZSBvcHRpb25zIHdpdGggYSBmbGF0IHN0cnVjdHVyZSBhbmQgd2l0aCB0aGUgcmVsZWFzZS1hZ2dyZWdhdG9yLgo+Pj4+Pj4KPj4+Pj4+IFJvYmVydAo+Pj4+Pj4KPj4+Pj4+IFsxXSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01SRUxFQVNFLTM2Mgo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+PiBPbiBTYXQsIDI0IEp1biAyMDE3IDIyOjU5OjQ4ICswMjAwLCBQZXRhciBUYWhjaGlldiA8Cj4+Pj4+PiBwYXJhbm9pYWJsYUBnbWFpbC5jb20+Cj4+Pj4+PiB3cm90ZToKPj4+Pj4+Cj4+Pj4+PiBIaSBQYXVsLAo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+Pj4gSSB0aGluayB5b3UgbWlzdW5kZXJzdG9vZC4gVGhlIFtCT01dIGlzIGEgc2VwYXJhdGUgcHJvamVjdCBhbmQgdGhlCj4+Pj4+Pj4gW1BMQVRGT1JNXSBhbmQgW0RFTU9fU1RPUkVdIGFyZSBhbHNvIHNlcGFyYXRlIHByb2plY3RzLCBib3RoIG9mICAKPj4+Pj4+PiB3aGljaAo+Pj4+Pj4+IGRlY2xhcmUgYXMgdGhlaXIgcGFyZW50IHRoZSBbQk9NXS4KPj4+Pj4+Pgo+Pj4+Pj4+IEBSb2JlcnQ6IEkgaGF2ZSBhZGRlZCB0aGUgdGVzdC1jYXNlOgo+Pj4+Pj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcmVsZWFzZS9wdWxsLzE4L2NvbW1pdHMvCj4+Pj4+Pj4gUmVsZWFzZS1hZ2dyZWdhdG9yIGlzIGV4YWN0bHkgd2hhdCdzIG1pc3NpbmcuIElzIHRoZXJlIGFuIGlzc3VlIEkgIAo+Pj4+Pj4+IGNhbgo+Pj4+Pj4+IHN1YnNjcmliZSBhbmQgdHJhY2s/Cj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+IDIwMTctMDYtMjQgMTQ6MTUgR01UKzAzOjAwIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz46Cj4+Pj4+Pj4KPj4+Pj4+PiBXaGF0IHdlJ3JlIHN0aWxsIG1pc3NpbmcgaXMgYSByZWxlYXNlLWFnZ3JlZ2F0b3IsIHdoaWNoIGNhbiByZWxlYXNlCj4+Pj4+Pj4KPj4+Pj4+PiBtdWx0aXBsZSByZWxlYXNlLXJvb3RzIGF0IG9uY2UuIFRoYXQgd291bGQgcHJvYmFibHkgYmUgdGhlICAKPj4+Pj4+PiBwcmVmZXJyZWQKPj4+Pj4+Pj4gZml4LAo+Pj4+Pj4+PiB0aGUgc3VnZ2VzdGVkIHBhdGNoIGlzIGp1c3QgYW4gZWFzeSB3b3JrLWFyb3VuZC4KPj4+Pj4+Pj4gSXQgaXMgc3RpbGwgb24gbXkgdG9kby1saXN0Lgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBSb2JlcnQKPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gT24gU2F0LCAyNCBKdW4gMjAxNyAxMjo0MjoyMiArMDIwMCwgUGF1bCBIYW1tYW50ICAKPj4+Pj4+Pj4gPHBhdWxAaGFtbWFudC5vcmc+Cj4+Pj4+Pj4+IHdyb3RlOgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBFYXN5IHRvIGZpeC4gIEhhdmUgYSBwcm9maWxlICdwbGF0Zm9ybU9ubHknIGluIHRoZSByb290IG1vZHVsZSAgCj4+Pj4+Pj4+IChJJ20KPj4+Pj4+Pj4gbm90Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IHN1cmUgaWYgJ0JPTScgc2hvdWxkIG1lYW4gYW55dGhpbmcgdG8gbWUpIHRoYXQgaW5jbHVkZXMgb25seQo+Pj4+Pj4+PiAncGxhdGZvcm0nCj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBhcwo+Pj4+Pj4+Pj4gYSBjaGlsZCBtb2R1bGUuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gICAgbXZuIHJlbGVhc2U6cHJlcGFyZSAtUHBsYXRmb3JtT25seSAjIGV0Ywo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IExhdGVyIHdoZW4geW91J3JlIHJlYWR5IHRvIGRvIHRoZSBkZW1vIHN0b3JlIHJlbGVhc2UsIHVzZSBhbm90aGVyCj4+Pj4+Pj4+PiAoZnJvbQo+Pj4+Pj4+Pj4gcm9vdCk6Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gICAgbXZuIHJlbGVhc2U6cHJlcGFyZSAtUGRlbW9Pbmx5ICMgZXRjCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gT2YgY291cnNlLCB5b3UgbWFuIG5vdCBuZWVkIHRvIHN0dWZmIGRlbW8gaW4geW91cgo+Pj4+Pj4+Pj4gQXJ0aWZhY3RvcnkvTmV4dXMvZXRjCj4+Pj4+Pj4+PiBpbgo+Pj4+Pj4+Pj4gd2hpY2ggY2FzZSBqdXN0IGRvIHlvdXIgZGVwbG95IGZ1IGFmdGVyIGFuICdpbnN0YWxsJyB3L28gdGhlICAKPj4+Pj4+Pj4+IHJlbGVhc2UKPj4+Pj4+Pj4+IHBsdWdpbgo+Pj4+Pj4+Pj4gaW52b2x2ZWQgb3IgdGhhdCBzZWNvbmQgcHJvZmlsZS4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiAtIFBhdWwKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gT24gU2F0LCBKdW4gMjQsIDIwMTcgYXQgMjo1OCBBTSwgUGV0YXIgVGFoY2hpZXYgPAo+Pj4+Pj4+Pj4gcGFyYW5vaWFibGFAZ21haWwuY29tPgo+Pj4+Pj4+Pj4gd3JvdGU6Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gSGV5IGd1eXMsCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IEknbSBmYWNpbmcgYSBudW1iZXIgb2YgY2hhbGxlbmdlcyB3aGVuIEkgcmVsZWFzZSB0aGUgcHJvamVjdCBhdCAgCj4+Pj4+Pj4+PiBteQo+Pj4+Pj4+Pj4+IGNvbXBhbnkuCj4+Pj4+Pj4+Pj4gSGVyZSdzIG15IHNldHVwOgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtCT01dCj4+Pj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvICAgIFwKPj4+Pj4+Pj4+PiAgICAgICAgICAgICAgW1BMQVRGT1JNXSAgW0RFTU9fU1RPUkVdCj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBJIGhhdmUgYSBtYXN0ZXIgQk9NIHByb2plY3Qgd2hpY2ggaG9sZHMgYWxsIHRoZSB2ZXJzaW9uIGFzICAKPj4+Pj4+Pj4+PiBkZWZpbmVkCj4+Pj4+Pj4+Pj4gcHJvcGVydGllcy4gVGhpcyBCT00gaXMgdGhlIHBhcmVudCB0byB0d28gb3RoZXIgcHJvamVjdHMgLQo+Pj4+Pj4+Pj4+IFtQTEFURk9STV0KPj4+Pj4+Pj4+PiBhbmQKPj4+Pj4+Pj4+PiBbREVNT19TVE9SRV0sIFRoZSBbUExBVEZPUk1dIGlzIGEgcHJvamVjdCB3aXRoIG1vcmUgdGhhbiA2MCAgCj4+Pj4+Pj4+Pj4gbW9kdWxlcwo+Pj4+Pj4+Pj4+IGluc2lkZSwKPj4+Pj4+Pj4+PiBhbmQgdGhlIFtERU1PX1NUT1JFXSBpcyBhIHByb2plY3QgdGhhdCBkZWNsYXJlcyB0aG9zZSBtb2R1bGVzIGFzCj4+Pj4+Pj4+Pj4gZGVwZW5kZW5jaWVzLgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gTm93IHdoYXQgSSB3YW50IGlzIHRvIHJlbGVhc2UgYWxsIHRocmVlIGZyb20gSmVua2lucy4gSSBjYW4gIAo+Pj4+Pj4+Pj4+IHJlbGVhc2UKPj4+Pj4+Pj4+PiB0aGUKPj4+Pj4+Pj4+PiBbQk9NXSB3aXRoIG5vIHByb2JsZW1zLCB0aGVuIEkgc3RhcnQgcmVsZWFzZSBvZiB0aGUgW1BMQVRGT1JNXSAgCj4+Pj4+Pj4+Pj4gYW5kCj4+Pj4+Pj4+Pj4gYWxsCj4+Pj4+Pj4+Pj4gb2YgYQo+Pj4+Pj4+Pj4+IHN1ZGRlbiBKZW5raW5zIGJsb2NrcyBiZWNhdXNlIE1hdmVuIGFza3MgbWUgb24gdGhlIGNvbW1hbmQgbGluZSAgCj4+Pj4+Pj4+Pj4gaWYKPj4+Pj4+Pj4+PiBJCj4+Pj4+Pj4+Pj4gd2FudAo+Pj4+Pj4+Pj4+IHRvIHJlc29sdmUgdGhlIFNOQVBTSE9UIGRlcGVuZGVuY2llcyAocmVtZW1iZXIgdGhlIHBhcmVudCBvZiB0aGUKPj4+Pj4+Pj4+PiBbUExBVEZPUk1dCj4+Pj4+Pj4+Pj4gaXMgdGhlIFtCT01dIFNOQVBTSE9UIHZlcnNpb24pLgo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4gU28gSSBjcmVhdGVkIHRoaXMgaXNzdWUgaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhCj4+Pj4+Pj4+Pj4gL2Jyb3dzZS9NUkVMRUFTRS05ODUKPj4+Pj4+Pj4+PiB0byBiZSBhYmxlIHRvIHNwZWNpZnkgdGhlIFtCT01dIHBhcmVudCB2ZXJzaW9uIHdoZW4gSSBzdGFydCB0aGUKPj4+Pj4+Pj4+PiByZWxlYXNlCj4+Pj4+Pj4+Pj4gb2YKPj4+Pj4+Pj4+PiBbUExBVEZPUk1dLiBJIHRoaW5rIEkgYWxzbyBmaXhlZCBpdCB3aXRoIHRoaXMgcHVsbC1yZXF1ZXN0Ogo+Pj4+Pj4+Pj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcmVsZWFzZS9wdWxsLzE4Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiBDYW4gc29tZW9uZSBoYXZlIGEgbG9vayBhdCB0aGlzIHB1bGwgcmVxdWVzdCBhbmQgdGVsbCBtZSBpZiBpdCAgCj4+Pj4+Pj4+Pj4gaXMKPj4+Pj4+Pj4+PiBPSz8KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4+IC0tCj4+Pj4+Pj4+Pj4gUmVnYXJkcywgUGV0YXIhCj4+Pj4+Pj4+Pj4gS2FybG92bywgQnVsZ2FyaWEuCj4+Pj4+Pj4+Pj4gLS0tCj4+Pj4+Pj4+Pj4gUHVibGljIFBHUCBLZXkgYXQ6Cj4+Pj4+Pj4+Pj4gaHR0cDovL3BncC5taXQuZWR1OjExMzcxL3Brcy9sb29rdXA/b3A9Z2V0JnNlYXJjaD0weDE5NjU4NTUwCj4+Pj4+Pj4+Pj4gQzMxMTA2MTEKPj4+Pj4+Pj4+PiBLZXkgRmluZ2VycHJpbnQ6IEEzNjkgQTdFRSA2MUJDIDkzQTMgQ0RGRiAgNTVBNSAxOTY1IDg1NTAgQzMxMSAgCj4+Pj4+Pj4+Pj4gMDYxMQo+Pj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gLS0tLS0tLS0tCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+Pj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+Pj4+PiAtLS0tLS0tLS0KPj4+Pj4+Pgo+Pj4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+Pj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+Pj4+Cj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+Pj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4+Cj4+Pj4KPj4+Pgo+Pj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KPj4KPgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NTYzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBOb3YgMjEgMjI6MTM6NDYgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTYzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDNCNDIzMTczQjAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAyMSBOb3YgMjAxNyAyMjoxMzo0NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDUyMjQyIGludm9rZWQgYnkgdWlkIDUwMCk7IDIxIE5vdiAyMDE3IDIyOjEzOjQ1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MjE2MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBOb3YgMjAxNyAyMjoxMzo0NSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUyMTUwIGludm9rZWQgYnkgdWlkIDk5KTsgMjEgTm92IDIwMTcgMjI6MTM6NDUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMjEgTm92IDIwMTcgMjI6MTM6NDUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmwgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCBEMjUwRDFBMDA2RAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjEgTm92IDIwMTcgMjI6MTM6NDQgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogW0NBTkNFTEVEXSBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gSmF2YWRvYyBQbHVnaW4gdmVyc2lvbiAzLjAuMAogKHRha2UgMikKUmVmZXJlbmNlczogPG9wLnk5d20zdzBxa2RraHJyQGRlc2t0b3AtMmtoc2s0ND4KRGF0ZTogVHVlLCAyMSBOb3YgMjAxNyAyMzoxMzo0NSArMDEwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55OTJxbzdvdmtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KSW4tUmVwbHktVG86IDxvcC55OXdtM3cwcWtka2hyckBkZXNrdG9wLTJraHNrNDQ+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKSSdtIGdvaW5nIHRvIGNhbmNlbCB0aGlzIHZvdGUuCgpUaGUgbW9kdWxlcyArIGFnZ3JlZ2F0b3JzIGlzIGEgdmFsaWQgZmluZCBhbmQgaXQgaXMgcXVpdGUgZWFzeSB0byBmaXguCkknZCBwcmVmZXIgdG8gYWRkIGl0IGZvciAzLjAuMCwgb3RoZXJ3aXNlIG90aGVycyB3aWxsIGhpdCBpdCB0b28uCgpSb2JlcnQKCk9uIFNhdCwgMTggTm92IDIwMTcgMTY6MTA6MzQgKzAxMDAsIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4gIAp3cm90ZToKCj4gSGksCj4KPiBXZSBzb2x2ZWQgMjcgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZWN0SWQ9MTIzMTc1MjkmdmVyc2lvbj0xMjMzMDg3NSZzdHlsZU5hbWU9VGV4dAo+Cj4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPXByb2plY3QlMjAlM0QlMjAxMjMxNzUyOSUyMEFORCUyMHN0YXR1cyUyMCUzRCUyME9wZW4lMjBPUkRFUiUyMEJZJTIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQwo+Cj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzcvCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3Ny9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4tamF2YWRvYy1wbHVnaW4vMy4wLjAvbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAtc291cmNlLXJlbGVhc2UuemlwCj4KPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogIAo+IDlmNzBjMzg1YjZiZTc2NjZmMzViNWEyNGVkZTljNWM2MGUyOGRmY2UKPgo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1qYXZhZG9jLXBsdWdpbi1MQVRFU1QvCj4KPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+Cj4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPgo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1ODAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE5vdiAyMyAxOToxNjoxOSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1ODAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQURERjkxNzdGRAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDIzIE5vdiAyMDE3IDE5OjE2OjE5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODYxNDAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjMgTm92IDIwMTcgMTk6MTY6MTkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg2MDczIGludm9rZWQgYnkgdWlkIDUwMCk7IDIzIE5vdiAyMDE3IDE5OjE2OjE5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODYwNjIgaW52b2tlZCBieSB1aWQgOTkpOyAyMyBOb3YgMjAxNyAxOToxNjoxOSAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyMyBOb3YgMjAxNyAxOToxNjoxOSArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDM0QUVCMUEwMEM3Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyMyBOb3YgMjAxNyAxOToxNjoxNyArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogRGVwZW5kZW5jeSBzY29wZXMgYW5kIGNvbmZsaWN0IHJlc29sdXRpb246IFBvc3NpYmxlIGJ1Zz8KUmVmZXJlbmNlczogPDliZDA1ZTcyLTQ3MzktZWY5ZC1hMGE2LTI2NjJiNTg4NWZjMUBzdC5pbmZvcm1hdGlrLnR1LWRhcm1zdGFkdC5kZT4KRGF0ZTogVGh1LCAyMyBOb3YgMjAxNyAyMDoxNjoxNyArMDEwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55OTU3dGZkMWtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KSW4tUmVwbHktVG86IDw5YmQwNWU3Mi00NzM5LWVmOWQtYTBhNi0yNjYyYjU4ODVmYzFAc3QuaW5mb3JtYXRpay50dS1kYXJtc3RhZHQuZGU+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKWW91J3JlIGhpdHRpbmcgTU5HLTU3MzkKCldpdGhpbiBhIGRlcGVuZGVuY3ktdHJlZSBhIGdyb3VwSWQrYXJ0aWZhY3RJZCBpcyB1bmlxdWUgKG5lYXJlc3Qgd2lucykuClN1Y2ggYSBkZXBlbmRlbmN5IGhhcyAxIHZlcnNpb24sIGJ1dCBhbHNvIDEgc2NvcGUuCkJ5IHNldHRpbmcgaXQgZXhwbGljaXQgdG8gdGVzdCwgeW91IHJlZHVjZSB0aGUgc2NvcGUgYW5kIGl0IGlzIG5vdCAgCmF2YWlsYWJsZSBkdXJpbmcgY29tcGlsZSBhbnltb3JlLgoKSXMgdGhpcyBjb3JyZWN0PwpXZWxsLCB0aGlzIGNvbmNlcHQgZW5zdXJlcyB0aGF0IHlvdSB0ZXN0IHdpdGggZXhhY3RseSB0aGUgc2FtZSBzZXQgb2YgIApkZXBlbmRlbmNpZXMgYXMgdGhlIG9uZXMgYXZhaWxhYmxlIGF0IHJ1bnRpbWUuCk9uIHRoZSBvdGhlciBoYW5kLCByZWR1Y2luZyB0aGUgc2NvcGUgaW1wbGllcyB0aGF0IHlvdSdsbCBiZSBtaXNzaW5nIG9uZSAgCm9yIG1vcmUgZGVwZW5kZW5jaWVzIGF0IHJ1bnRpbWUuCgpXZSBjb3VsZCB0aGluayBvZiBtYWtpbmcgZGVwZW5kZW5jaWVzICphbHdheXMqIHNjb3BlLWNvbnRleHQtYXdhcmUuClVzaW5nIHlvdXIgY2FzZSBvbmUgY291bGQgc3VnZ2VzdCB0aGF0IGF0IGNvbXBpbGUtdGltZSBoYW1jcmVzdC1jb3JlOjEuMSAgCmlzIHVzZWQsIGJ1dCBhdCB0ZXN0LXRpbWUgaGFtY3Jlc3QtY29yZToxLjIKClRvIG1lIHRoaXMgbWFrZXMgbW9yZSBzZW5zZSwgYnV0IGF0IHRoZSBzYW1lIHRpbWUgaXQgaXMgaGFyZCB0byBwcmVkaWN0ICAKdGhlIGltcGFjdCBvZiBzdWNoIGEgY2hhbmdlLgoKdGhhbmtzLApSb2JlcnQKClsxXSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy01NzM5CgpPbiBUaHUsIDIzIE5vdiAyMDE3IDA5OjQ5OjUwICswMTAwLCBBbmRyZWFzIFNld2UgIAo8c2V3ZUBzdC5pbmZvcm1hdGlrLnR1LWRhcm1zdGFkdC5kZT4gd3JvdGU6Cgo+IEhpIE1hdmVuIGRldmVsb3BlcnMsCj4KPiBJIGEgdHJ5aW5nIHRvIHdyYXAgbXkgaGVhZCBhcm91bmQgTWF2ZW4ncyBoYW5kbGluZyBvZiBkZXBlbmRlbmN5IHNjb3Blcwo+IGFuZCB3YXMgd29uZGVyaW5nIHRoZSBmb2xsb3dpbmc6IElzIHRoZSB0ZXN0LWNsYXNzcGF0aCBhbHdheXMgYQo+IHN1cGVyLXNlcXVlbmNlIG9mIHRoZSBjb21waWxlLWNsYXNzcGF0aD8KPgo+IEFGQUlDVCwgdGhpcyBpcyB0aGUgY2FzZS4gSG93ZXZlciwgbXkgZXhwZXJpbWVudHMgKHVzaW5nIE1hdmVuIDMuNS4yKQo+IGxlZnQgbWUgd29uZGVyaW5nIHdoZXRoZXIgSSBtYXkgaGF2ZSBzdHVtYmxlZCB1cG9uIGEgYnVnLgo+Cj4gTXkgKHNvbWV3aGF0IGNvbnRyaXZlZCkgc2NlbmFyaW8gaXMgdGhpczoKPgo+PiAgIDxkZXBlbmRlbmNpZXM+Cj4+ICAgICA8ZGVwZW5kZW5jeT4KPj4gICAgICAgPGdyb3VwSWQ+anVuaXQ8L2dyb3VwSWQ+Cj4+ICAgICAgIDxhcnRpZmFjdElkPmp1bml0PC9hcnRpZmFjdElkPgo+PiAgICAgICA8dmVyc2lvbj40Ljk8L3ZlcnNpb24+Cj4+ICAgICAgIDxzY29wZT5jb21waWxlPC9zY29wZT4KPj4gICAgICAgPCEtLSBjb21waWxlLWRlcGVuZHMgb24gb3JnLmhhbWNyZXN0OmhhbWNyZXN0LWNvcmU6MS4xIC0tPgo+PiAgICAgPC9kZXBlbmRlbmN5Pgo+PiAgICAgPGRlcGVuZGVuY3k+Cj4+ICAgICAgIDxncm91cElkPm9yZy5oYW1jcmVzdDwvZ3JvdXBJZD4KPj4gICAgICAgPGFydGlmYWN0SWQ+aGFtY3Jlc3QtY29yZTwvYXJ0aWZhY3RJZD4KPj4gICAgICAgPHZlcnNpb24+MS4yPC92ZXJzaW9uPgo+PiAgICAgICA8c2NvcGU+dGVzdDwvc2NvcGU+Cj4+ICAgICA8L2RlcGVuZGVuY3k+Cj4+ICAgPC9kZXBlbmRlbmNpZXM+Cj4KPiBUaGUgKnRlc3QqIGNsYXNzcGF0aCB0aGF0IGNvbXBpbGVyOnRlc3RDb21waWxlIHNlZXMgaXMganVuaXQ6anVuaXQ6NC45ICsKPiBvcmcuaGFtY3Jlc3Q6aGFtY3Jlc3QtY29yZToxLjIuIFRoaXMgaXMgYXMgZXhwZWN0ZWQsIGFzIHRoZSBkaXJlY3QKPiBoYW1jcmVzdC1jb3JlIGRlcGVuZGVuY3kgYmVhdHMgdGhlIHRyYW5zaXRpdmUgb25lOyBoZW5jZSwgdmVyc2lvbiAxLjIKPiBnZXRzIHBpY2tlZC4KPgo+IE5vdywgdGhlICpjb21waWxlKiBjbGFzc3BhdGggdGhhdCBjb21waWxlOmNvbXBpbGUgc2VlcyBpcyBqdXN0Cj4ganVuaXQ6anVuaXQ6NC45LiBXaGlsZSB0aGlzIGFmZmlybXMgbXkgc3VwZXItc2VxdWVuY2UgaHlwb3RoZXNpcywgaXQKPiBzZWVtcyBsaWtlIGEgYnVnOiBXaXRob3V0IHRoZSBkaXJlY3QsIHRlc3Qtc2NvcGVkCj4gb3JnLmhhbWNyZXN0OmhhbWNyZXN0LWNvcmU6MS4yIGRlcGVuZGVuY3kgdGhlIGNvbXBpbGUgY2xhc3NwYXRoIHdvdWxkCj4gaGF2ZSBiZWVuIGp1bml0Omp1bml0OjQuOSArIG9yZy5oYW1jcmVzdDpoYW1jcmVzdC1jb3JlOjEuMSwgYnV0IHdpdGggaXQKPiBoYW1jcmVzdC1jb3JlIGhhcyB2YW5pc2hlZCBjb21wbGV0ZWx5Lgo+Cj4gRG8geW91IGNvbnNpZGVyIHRoaXMgYSBidWcgYXMgd2VsbD8KPgo+IElmIHNvLCB3aGF0J3MgdGhlIGRlc2lyZWQgYmVoYXZpb3IgaGVyZT8KPgo+IDEuIEEgY29tcGlsZSBjbGFzc3BhdGggb2YganVuaXQ6anVuaXQ6NC45ICsKPiBvcmcuaGFtY3Jlc3Q6aGFtY3Jlc3QtY29yZToxLjEgd291bGQgYmUgY29uZnVzaW5nLCBhcyB0aGUgc3VwZXItc2VxdWVuY2UKPiBhc3N1bXB0aW9uIHNlZW1zIHZlcnkgbmF0dXJhbC4KPgo+IDIuIEJ1dCBhIGNvbXBpbGUgY2xhc3NwYXRoIG9mIGp1bml0Omp1bml0OjQuOSArCj4gb3JnLmhhbWNyZXN0OmhhbWNyZXN0LWNvcmU6MS4yIHNlZW1zIGhhcmRlciB0byBpbXBsZW1lbnQgKHRvIG15IGFzIGEKPiBtYXZlbi1yZXNvbHZlciBsYXltYW4sIGF0IGxlYXN0KSwgYmVjYXVzZSBhIHBydW5lZCBwYXJ0IG9mIHRoZQo+IGRlcGVuZGVuY3kgZ3JhcGggbWF5IG5vdyBzdGlsbCBleGVydCBpbmZsdWVuY2Ugb24gdGhlIHZlcnNpb25zIGluIG90aGVyCj4gcGFydHMgb2YgdGhlIGdyYXBoLgo+Cj4gQmVzdCB3aXNoZXMsCj4KPiBBbmRyZWFzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0NjAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAxMSAxMzo0MDoyMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0NjAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMUE1OTcxMDVENgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDExIE5vdiAyMDE3IDEzOjQwOjIwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTQxMTQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgTm92IDIwMTcgMTM6NDA6MTkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE0MDI5IGludm9rZWQgYnkgdWlkIDUwMCk7IDExIE5vdiAyMDE3IDEzOjQwOjE5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTQwMTggaW52b2tlZCBieSB1aWQgOTkpOyAxMSBOb3YgMjAxNyAxMzo0MDoxOSAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAxMSBOb3YgMjAxNyAxMzo0MDoxOSArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDhDMDYzMUEwMjM2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAxMSBOb3YgMjAxNyAxMzo0MDoxOCArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogQW55IEVUQSBmb3IgbWF2ZW4tamF2YWRvYy1wbHVnaW4gMy4wLjA/ClJlZmVyZW5jZXM6IDwyMDE3MTEwNjE2MjgyMy40NTQzZWE3ZEBjb3BwZXJoZWFkLmludC5hcmM3LmluZm8+CkRhdGU6IFNhdCwgMTEgTm92IDIwMTcgMTQ6NDA6MTYgKzAxMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTlqajllcjdrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkluLVJlcGx5LVRvOiA8MjAxNzExMDYxNjI4MjMuNDU0M2VhN2RAY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCkknZCBob3BlIHRvIGRvIGEgcmVsZWFzZSB0aGlzIG1vbnRoLiBOb3Qgc3VyZSBpZiBpdCdsbCBiZSBhIE0yIG9yIG5vdCwgIApkZXBlbmRzIGlmIGFsbCAzLjAuMCBwcmVyZXF1aXNpdGVzIGFyZSBtZXQuCgpSb2JlcnQKCk9uIE1vbiwgMDYgTm92IDIwMTcgMTc6Mjg6MjMgKzAxMDAsIE1hcmsgUmF5bnNmb3JkICAKPG9yZy5hcGFjaGUubWF2ZW4udXNlckBpbzdtLmNvbT4gd3JvdGU6Cgo+ICdMby4KPgo+IEknbSBpbiB0aGUgcHJvY2VzcyBvZiBjb252ZXJ0aW5nIGEgdG9uIG9mIHByb2plY3RzIHRvIEphdmEgOSBhbmQgYW0KPiBjdXJyZW50bHkgYmxvY2tlZCBvbiBNSkFWQURPQy00OThbMF0uIFRoZSBpc3N1ZSBoYXMgYWN0dWFsbHkgYmVlbgo+IGZpeGVkLCBpdCBqdXN0IGhhc24ndCBtYWRlIGl0IHRvIGEgcmVsZWFzZSB5ZXQuCj4KPiBJZiAzLjAuMCBpc24ndCBkdWUgZm9yIGEgd2hpbGUgeWV0LCBpcyB0aGVyZSBhbnkgY2hhbmNlIG9mIGdldHRpbmcgYQo+IDMuMC4wLU0yPwo+Cj4gWzBdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTUpBVkFET0MtNDk4CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0NjctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE5vdiAxMiAxNDoxNTo1MiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0NjctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNkI1NjcxMEVFMgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDEyIE5vdiAyMDE3IDE0OjE1OjUyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNjcyMjIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTIgTm92IDIwMTcgMTQ6MTU6NTIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY3MTQ1IGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIE5vdiAyMDE3IDE0OjE1OjUyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjcxMzIgaW52b2tlZCBieSB1aWQgOTkpOyAxMiBOb3YgMjAxNyAxNDoxNTo1MiAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxMiBOb3YgMjAxNyAxNDoxNTo1MiArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDEzNkY3MUEwMTk4Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMiBOb3YgMjAxNyAxNDoxNTo1MCArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogUmU6IEFueSBFVEEgZm9yIG1hdmVuLWphdmFkb2MtcGx1Z2luIDMuMC4wPwpSZWZlcmVuY2VzOiA8MjAxNzExMDYxNjI4MjMuNDU0M2VhN2RAY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvPgogPG9wLnk5amo5ZXI3a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgogPDIwMTcxMTEyMTEwNzM1LjQ0YzAxZmQ3QGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbz4KRGF0ZTogU3VuLCAxMiBOb3YgMjAxNyAxNToxNTo0OSArMDEwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55OWxna251amtka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KSW4tUmVwbHktVG86IDwyMDE3MTExMjExMDczNS40NGMwMWZkN0Bjb3BwZXJoZWFkLmludC5hcmM3LmluZm8+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKTUpBVkFET0MtNDc1IGlzIGFib3V0IHJlcGxhY2luZyBhIHBhcmFtZXRlciwgd2hpY2ggbWFrZXMgaXQgYXMgY3JpdGljYWwgYXMgIApNSkFWQURPQy00NTcuCldlIGp1c3QgY29uc2lkZXIgMy4wLjAgdG8gYmUgVEhFIHZlcnNpb24gdG8gYmUgYWJsZSB0byBkbyBhIGNsZWFudXAsIGhlbmNlICAKTUpBVkFET0MtNDc1IG11c3QgYmUgZml4ZWQgYXMgd2VsbC4KClRoZSBnb29kIG5ld3MgaXM6IE1KQVZBRE9DLTQ1NyBhbmQgTUpBVkFET0MtNDc1IGFyZSBmaW5pc2hlZC4gSSBkb24ndCBzZWUgIAphbnkgZGVwcmVjYXRlZCBwYXJhbWV0ZXJzIGFueW1vcmUuCgpNSkFWQURPQy00OTkgaXMgYSB0b28gZGFuZ2Vyb3VzIHByb3Bvc2FsIGZvciBtZS4gU28gSSBkb24ndCBtaW5kIG1vdmluZyAgCnRoYXQgaXNzdWUgZm9yd2FyZCwgaXQgaXMgbm90IGNyaXRpY2FsIGZvciAzLjAuMCwgdGhlcmUgaXMgYSB3b3JrYXJvdW5kICAKKG9yIHByZWZlcnJlZCBzb2x1dGlvbiBkZXBlbmRpbmcgb24gd2hvIHlvdSBhc2spIGZvciB0aGlzIGlzc3VlLgoKV2hpY2ggbWVhbnMgSSBjYW4gcHJlcGFyZSB0aGUgcmVsZWFzZSB0aGlzIHdlZWsuCkp1c3QgbmVlZCB0byBlbnN1cmUgYWxsIENJIHNlcnZlcnMgc3RpbGwgYWNjZXB0IHRoZSBjaGFuZ2VzLgoKdGhhbmtzLApSb2JlcnQKCk9uIFN1biwgMTIgTm92IDIwMTcgMTI6MDc6MzUgKzAxMDAsIE1hcmsgUmF5bnNmb3JkICAKPG9yZy5hcGFjaGUubWF2ZW4udXNlckBpbzdtLmNvbT4gd3JvdGU6Cgo+ICdFbGxvLgo+Cj4gT24gMjAxNy0xMS0xMVQxNDo0MDoxNiArMDEwMAo+ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPiB3cm90ZToKPgo+PiBJJ2QgaG9wZSB0byBkbyBhIHJlbGVhc2UgdGhpcyBtb250aC4gTm90IHN1cmUgaWYgaXQnbGwgYmUgYSBNMiBvciBub3QsCj4+IGRlcGVuZHMgaWYgYWxsIDMuMC4wIHByZXJlcXVpc2l0ZXMgYXJlIG1ldC4KPgo+IFJpZ2h0Lgo+Cj4gRnJvbSB3aGF0IEkgY2FuIHNlZSwgb25seSBNSkFWQURPQy00NzUgaXMgbm90IHJlYWxseSAqY3JpdGljYWwqIHRvIHRoZQo+IHJlbGVhc2UgYXMgaXQncyBqdXN0IGEgbmV3IGZlYXR1cmUuIFRoZSBvdGhlciB0d28gaXNzdWVzLCBNSkFWQURPQy00NTcKPiBhbmQgTUpBVkFET0MtNDk5LCBzZWVtIHRvIGJlIGltcG9ydGFudC4gVGhlIGZvcm1lciBoYXMgYmVlbiBmaXhlZCwgYW5kCj4gdGhlIGxhdHRlciBhcHBlYXJzIHRvIGJlIGxlYW5pbmcgdG93YXJkcyBiZWluZyByZWplY3RlZC4gSSB3b3VsZCByZWFsbHkKPiBhcHByZWNpYXRlIGFuIE0yIHJlbGVhc2UgaWYgTUpBVkFET0MtNDc1IGlzIGdvaW5nIHRvIG90aGVyd2lzZSBkZWxheQo+IDMuMC4wLgo+Cj4gSWYgdGhlcmUncyBhbnl0aGluZyBJIGNhbiBkbyB0byBhc3Npc3QsIEknbSBhdmFpbGFibGUuIFJpZ2h0IG5vdywKPiBNSkFWQURPQy00OTggd291bGQgYXBwZWFyIHRvIHByZXZlbnQgdGhlIGRlcGxveW1lbnQgb2YgYW55IG1vZHVsYXIKPiBwcm9qZWN0IHRvIE1hdmVuIENlbnRyYWw6IElmIG1vZHVsZSBBIGluIHRoZSBwcm9qZWN0IGRlcGVuZHMKPiBvbiBtb2R1bGUgQiwgdGhlbiBKYXZhRG9jIGNhbm5vdCBiZSBnZW5lcmF0ZWQuIFRoaXMgd291bGQgbmVjZXNzaXRhdGUKPiBhZGRpbmcgYSB0ZW1wb3Jhcnkgd29ya2Fyb3VuZCB0aGF0IHN1Ym1pdHMgYW4gZW1wdHkgamF2YWRvYyBqYXIgdG8KPiBDZW50cmFsIChvdGhlcndpc2UgdGhlIENlbnRyYWwgcnVsZXNldCByZWplY3RzIHRoZSBkZXBsb3ltZW50IGR1ZSB0bwo+IG1pc3NpbmcgSmF2YURvYykuIEkgaGF2ZSBzb21lIDMwLTQwIHByb2plY3RzIHRoYXQgYXJlIGl0Y2hpbmcgdG8gYmUKPiBkZXBsb3llZCBidXQgY2FuJ3QgYmUgdW5sZXNzIEkgYWRkIGEgd29ya2Fyb3VuZCBvciBidWlsZCBhbmQgZGVwbG95IGEKPiBjdXN0b20gdmVyc2lvbiBvZiB0aGUgcGx1Z2luIG15c2VsZi4gSSdkIG9idmlvdXNseSBwcmVmZXIgbm90IHRvIGhhdmUKPiB0byBkbyB0aGF0LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NDY4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBOb3YgMTIgMTU6MTU6MTIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDY4LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDUyNDk5RjAyMAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDEyIE5vdiAyMDE3IDE1OjE1OjEyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjI2MDkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTIgTm92IDIwMTcgMTU6MTU6MTIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIyNTI0IGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIE5vdiAyMDE3IDE1OjE1OjExIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjI1MTMgaW52b2tlZCBieSB1aWQgOTkpOyAxMiBOb3YgMjAxNyAxNToxNToxMSAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxMiBOb3YgMjAxNyAxNToxNToxMSArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEI0RkJCMUEwMjNCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMiBOb3YgMjAxNyAxNToxNToxMCArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKRGF0ZTogU3VuLCAxMiBOb3YgMjAxNyAxNjoxNTowNyArMDEwMApTdWJqZWN0OiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gSkRlcHJTY2FuIFBsdWdpbiB2ZXJzaW9uIDMuMC4wLWFscGhhLTEKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTlsamJoendrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKSGksCgpUaGlzIGlzIHRoZSBpbml0aWFsIHJlbGVhc2Ugb2YgdGhlIE1hdmVuIEpEZXByU2NhbiBQbHVnaW4uCgpJdCBpcyBhIHdyYXBwZXIgYXJvdW5kIHRoZSBqZGVwcnNjYW4gdG9vbCwgYXZhaWxhYmxlIHNpbmNlIEphdmEgOToKaHR0cHM6Ly9kb2NzLm9yYWNsZS5jb20vamF2YXNlLzkvdG9vbHMvamRlcHJzY2FuLmh0bQoKVGhlcmUgYXJlIHplcm8gaXNzdWVzIGxlZnQgaW4gSklSQToKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPXByb2plY3QlMjAlM0QlMjBNSkRFUFJTQ0FOJTIwQU5EJTIwc3RhdHVzJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDCgpTdGFnaW5nIHJlcG86Cmh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzQvCmh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL3NlcnZpY2UvbG9jYWwvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzQvY29udGVudC9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4tamRlcHJzY2FuLXBsdWdpbi8zLjAuMC1hbHBoYS0xL21hdmVuLWpkZXByc2Nhbi1wbHVnaW4tMy4wLjAtYWxwaGEtMS1zb3VyY2UtcmVsZWFzZS56aXAKClNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgptYXZlbi1qZGVwcnNjYW4tcGx1Z2luLTMuMC4wLWFscGhhLTEtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6ICAKY2NiZWQzM2VhM2JhYTUyN2I5YTBjZjkwZGJiNGY5Y2E4YmI4OGVmNAoKU3RhZ2luZyBzaXRlOgpodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1qZGVwcnNjYW4tcGx1Z2luLUxBVEVTVC8KCkd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgpodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAoKVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KClsgXSArMQpbIF0gKzAKWyBdIC0xCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0NzktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVHVlIE5vdiAxNCAxODo0NjozMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0NzktYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQTRCOTYxMDJBRgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUdWUsIDE0IE5vdiAyMDE3IDE4OjQ2OjMwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzgxMTQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTQgTm92IDIwMTcgMTg6NDY6MzAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM4MDQzIGludm9rZWQgYnkgdWlkIDUwMCk7IDE0IE5vdiAyMDE3IDE4OjQ2OjMwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzgwMzIgaW52b2tlZCBieSB1aWQgOTkpOyAxNCBOb3YgMjAxNyAxODo0NjozMCAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVHVlLCAxNCBOb3YgMjAxNyAxODo0NjozMCArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCA5NEJDOTFBMDA2RAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTQgTm92IDIwMTcgMTg6NDY6MjkgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBKRGVwclNjYW4gUGx1Z2luIHZlcnNpb24KIDMuMC4wLWFscGhhLTEKUmVmZXJlbmNlczogPG9wLnk5bGpiaHp3a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpEYXRlOiBUdWUsIDE0IE5vdiAyMDE3IDE5OjQ2OjI4ICswMTAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk5cGlmcXRma2RraHJyQGRlc2t0b3AtMmtoc2s0ND4KSW4tUmVwbHktVG86IDxvcC55OWxqYmh6d2tka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgorMQoKT24gU3VuLCAxMiBOb3YgMjAxNyAxNjoxNTowNyArMDEwMCwgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPiAgCndyb3RlOgoKPiBIaSwKPgo+IFRoaXMgaXMgdGhlIGluaXRpYWwgcmVsZWFzZSBvZiB0aGUgTWF2ZW4gSkRlcHJTY2FuIFBsdWdpbi4KPgo+IEl0IGlzIGEgd3JhcHBlciBhcm91bmQgdGhlIGpkZXByc2NhbiB0b29sLCBhdmFpbGFibGUgc2luY2UgSmF2YSA5Ogo+IGh0dHBzOi8vZG9jcy5vcmFjbGUuY29tL2phdmFzZS85L3Rvb2xzL2pkZXByc2Nhbi5odG0KPgo+IFRoZXJlIGFyZSB6ZXJvIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPXByb2plY3QlMjAlM0QlMjBNSkRFUFJTQ0FOJTIwQU5EJTIwc3RhdHVzJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDCj4KPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3NC8KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zZXJ2aWNlL2xvY2FsL3JlcG9zaXRvcmllcy9tYXZlbi0xMzc0L2NvbnRlbnQvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL21hdmVuLWpkZXByc2Nhbi1wbHVnaW4vMy4wLjAtYWxwaGEtMS9tYXZlbi1qZGVwcnNjYW4tcGx1Z2luLTMuMC4wLWFscGhhLTEtc291cmNlLXJlbGVhc2UuemlwCj4KPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBtYXZlbi1qZGVwcnNjYW4tcGx1Z2luLTMuMC4wLWFscGhhLTEtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6ICAKPiBjY2JlZDMzZWEzYmFhNTI3YjlhMGNmOTBkYmI0ZjljYThiYjg4ZWY0Cj4KPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tamRlcHJzY2FuLXBsdWdpbi1MQVRFU1QvCj4KPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+Cj4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPgo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ0ODctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIE5vdiAxNSAxOTo1ODo0NSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ0ODctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNDg3OTAxN0NEMQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDE1IE5vdiAyMDE3IDE5OjU4OjQ1ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTI4OTYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgTm92IDIwMTcgMTk6NTg6NDQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkyODAxIGludm9rZWQgYnkgdWlkIDUwMCk7IDE1IE5vdiAyMDE3IDE5OjU4OjQ0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTI3ODkgaW52b2tlZCBieSB1aWQgOTkpOyAxNSBOb3YgMjAxNyAxOTo1ODo0NCAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAxNSBOb3YgMjAxNyAxOTo1ODo0NCArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCBCNjcxMDFBMDE1QTsKCVdlZCwgMTUgTm92IDIwMTcgMTk6NTg6NDMgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sICJNYXJ0aWpuIFZlcmJ1cmciCiA8bWFydGlqbnZlcmJ1cmdAZ21haWwuY29tPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIEpEZXByU2NhbiBQbHVnaW4gdmVyc2lvbgogMy4wLjAtYWxwaGEtMQpSZWZlcmVuY2VzOiA8b3AueTlsamJoendrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CiA8Q0FQN1l1QVNWcThiblBZVytZYTVqdTVkcWZIN1V4cVRYVmE9aXI1ZVlaaCtudkpzcW9BQG1haWwuZ21haWwuY29tPgpEYXRlOiBXZWQsIDE1IE5vdiAyMDE3IDIwOjU4OjQyICswMTAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk5cmdmNHo0a2RraHJyQGRlc2t0b3AtMmtoc2s0ND4KSW4tUmVwbHktVG86IDxDQVA3WXVBU1ZxOGJuUFlXK1lhNWp1NWRxZkg3VXhxVFhWYT1pcjVlWVpoK252SnNxb0FAbWFpbC5nbWFpbC5jb20+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKSSBhc3N1bWUgSSBjYW4gdHJhbnNsYXRlIHRoaXMgdG8gYSArMS4uLgoKdGhhbmtzLApSb2JlcnQKCk9uIE1vbiwgMTMgTm92IDIwMTcgMTA6MTg6NTMgKzAxMDAsIE1hcnRpam4gVmVyYnVyZyAgCjxtYXJ0aWpudmVyYnVyZ0BnbWFpbC5jb20+IHdyb3RlOgoKPiBOb24gYmluZGluZyBidXQgaXQgd29ya3Mgd2VsbCBmb3IgbWUgb24gTGF0ZXN0IDMuNS4yIGFuZCBKYXZhIDkuMC4xCj4KPiBDaGVlcnMsCj4gTWFydGlqbgo+Cj4gT24gMTIgTm92ZW1iZXIgMjAxNyBhdCAxNToxNSwgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPiAgCj4gd3JvdGU6Cj4KPj4gSGksCj4+Cj4+IFRoaXMgaXMgdGhlIGluaXRpYWwgcmVsZWFzZSBvZiB0aGUgTWF2ZW4gSkRlcHJTY2FuIFBsdWdpbi4KPj4KPj4gSXQgaXMgYSB3cmFwcGVyIGFyb3VuZCB0aGUgamRlcHJzY2FuIHRvb2wsIGF2YWlsYWJsZSBzaW5jZSBKYXZhIDk6Cj4+IGh0dHBzOi8vZG9jcy5vcmFjbGUuY29tL2phdmFzZS85L3Rvb2xzL2pkZXByc2Nhbi5odG0KPj4KPj4gVGhlcmUgYXJlIHplcm8gaXNzdWVzIGxlZnQgaW4gSklSQToKPj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPXByb2plY3QlMjAlM0QlCj4+IDIwTUpERVBSU0NBTiUyMEFORCUyMHN0YXR1cyUyMCUzRCUyME9wZW4lMjBPUkRFUiUyMEJZJQo+PiAyMGtleSUyMERFU0MlMkMlMjBwcmlvcml0eSUyMERFU0MKPj4KPj4gU3RhZ2luZyByZXBvOgo+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzc0Lwo+PiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zZXJ2aWNlL2xvY2FsL3JlcG9zaXRvcmllcy9tYXYKPj4gZW4tMTM3NC9jb250ZW50L29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi1qZGVwcnNjYW4tcGx1Cj4+IGdpbi8zLjAuMC1hbHBoYS0xL21hdmVuLWpkZXByc2Nhbi1wbHVnaW4tMy4wLjAtYWxwaGEtMS1zb3VyY2UtcmVsZWFzZS56aXAKPj4KPj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4+IG1hdmVuLWpkZXByc2Nhbi1wbHVnaW4tMy4wLjAtYWxwaGEtMS1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMToKPj4gY2NiZWQzM2VhM2JhYTUyN2I5YTBjZjkwZGJiNGY5Y2E4YmI4OGVmNAo+Pgo+PiBTdGFnaW5nIHNpdGU6Cj4+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWpkZXByc2Nhbi1wbHVnaW4tTEFURVNULwo+Pgo+PiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPj4KPj4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPj4KPj4gWyBdICsxCj4+IFsgXSArMAo+PiBbIF0gLTEKPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQ4OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgTm92IDE1IDE5OjU5OjMwIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQ4OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAwMTMwNDE3Q0RBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMTUgTm92IDIwMTcgMTk6NTk6MzAgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5NjA1MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNSBOb3YgMjAxNyAxOTo1OToyOSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTU5NTMgaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgTm92IDIwMTcgMTk6NTk6MjkgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NTk0MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDE1IE5vdiAyMDE3IDE5OjU5OjI5IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDE1IE5vdiAyMDE3IDE5OjU5OjI5ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDAyMjdDMUEwMTVBCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxNSBOb3YgMjAxNyAxOTo1OToyOCArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIEpEZXByU2NhbiBQbHVnaW4gdmVyc2lvbgogMy4wLjAtYWxwaGEtMQpSZWZlcmVuY2VzOiA8b3AueTlsamJoendrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkRhdGU6IFdlZCwgMTUgTm92IDIwMTcgMjA6NTk6MjggKzAxMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTlyZ2hlZ2JrZGtocnJAZGVza3RvcC0ya2hzazQ0PgpJbi1SZXBseS1UbzogPG9wLnk5bGpiaHp3a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKClN0aWxsIHdhdGluZyBmb3Igb25lIE1hdmVuIFBNQyB2b3RlLgoKdGhhbmtzLApSb2JlcnQKCk9uIFN1biwgMTIgTm92IDIwMTcgMTY6MTU6MDcgKzAxMDAsIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4gIAp3cm90ZToKCj4gSGksCj4KPiBUaGlzIGlzIHRoZSBpbml0aWFsIHJlbGVhc2Ugb2YgdGhlIE1hdmVuIEpEZXByU2NhbiBQbHVnaW4uCj4KPiBJdCBpcyBhIHdyYXBwZXIgYXJvdW5kIHRoZSBqZGVwcnNjYW4gdG9vbCwgYXZhaWxhYmxlIHNpbmNlIEphdmEgOToKPiBodHRwczovL2RvY3Mub3JhY2xlLmNvbS9qYXZhc2UvOS90b29scy9qZGVwcnNjYW4uaHRtCj4KPiBUaGVyZSBhcmUgemVybyBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJTNEJTIwTUpERVBSU0NBTiUyMEFORCUyMHN0YXR1cyUyMCUzRCUyME9wZW4lMjBPUkRFUiUyMEJZJTIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQwo+Cj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzQvCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc2VydmljZS9sb2NhbC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3NC9jb250ZW50L29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi1qZGVwcnNjYW4tcGx1Z2luLzMuMC4wLWFscGhhLTEvbWF2ZW4tamRlcHJzY2FuLXBsdWdpbi0zLjAuMC1hbHBoYS0xLXNvdXJjZS1yZWxlYXNlLnppcAo+Cj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gbWF2ZW4tamRlcHJzY2FuLXBsdWdpbi0zLjAuMC1hbHBoYS0xLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOiAgCj4gY2NiZWQzM2VhM2JhYTUyN2I5YTBjZjkwZGJiNGY5Y2E4YmI4OGVmNAo+Cj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWpkZXByc2Nhbi1wbHVnaW4tTEFURVNULwo+Cj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bWwKPgo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4KPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NDkxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBOb3YgMTUgMjA6NDU6NTAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDkxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDIxRjcyMTdGQjMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAxNSBOb3YgMjAxNyAyMDo0NTo1MCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDMwNjgwIGludm9rZWQgYnkgdWlkIDUwMCk7IDE1IE5vdiAyMDE3IDIwOjQ1OjQ5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMDYwMCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNSBOb3YgMjAxNyAyMDo0NTo0OSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMwNTgxIGludm9rZWQgYnkgdWlkIDk5KTsgMTUgTm92IDIwMTcgMjA6NDU6NDkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMTUgTm92IDIwMTcgMjA6NDU6NDkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgODg5Q0YxQTAxOTg7CglXZWQsIDE1IE5vdiAyMDE3IDIwOjQ1OjQ4ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtSRVNVTFRdIFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBKRGVwclNjYW4gUGx1Z2luIHZlcnNpb24KIDMuMC4wLWFscGhhLTEKUmVmZXJlbmNlczogPG9wLnk5bGpiaHp3a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sPgpEYXRlOiBXZWQsIDE1IE5vdiAyMDE3IDIxOjQ1OjQ3ICswMTAwCkNjOiAiQXBhY2hlIE1hdmVuIFByaXZhdGUiIDxwcml2YXRlQG1hdmVuLmFwYWNoZS5vcmc+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IFF1b3RlZC1QcmludGFibGUKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk5cmltbG9ja2RraHJyQGRlc2t0b3AtMmtoc2s0ND4KSW4tUmVwbHktVG86IDxvcC55OWxqYmh6d2tka2hyckBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubD4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpIaSwKClRoZSB2b3RlIGhhcyBwYXNzZWQgd2l0aCB0aGUgZm9sbG93aW5nIHJlc3VsdDoKCisxIDogTWFydGlqbiBWZXJidXJnLCBSb2JlcnQgU2Nob2x0ZSwgSGVydj1FOSBCT1VURU1ZLCBBcm5hdWQgSD1FOXJpdGllcj0KLCAgPQoKT2xpdmllciBMYW15CgpQTUMgcXVvcnVtOiByZWFjaGVkCgpJIHdpbGwgcHJvbW90ZSB0aGUgYXJ0aWZhY3RzIHRvIHRoZSBjZW50cmFsIHJlcG8uCgpPbiBTdW4sIDEyIE5vdiAyMDE3IDE2OjE1OjA3ICswMTAwLCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc9Cj4gID0KCndyb3RlOgoKPiBIaSwKPgo+IFRoaXMgaXMgdGhlIGluaXRpYWwgcmVsZWFzZSBvZiB0aGUgTWF2ZW4gSkRlcHJTY2FuIFBsdWdpbi4KPgo+IEl0IGlzIGEgd3JhcHBlciBhcm91bmQgdGhlIGpkZXByc2NhbiB0b29sLCBhdmFpbGFibGUgc2luY2UgSmF2YSA5Ogo+IGh0dHBzOi8vZG9jcy5vcmFjbGUuY29tL2phdmFzZS85L3Rvb2xzL2pkZXByc2Nhbi5odG0KPgo+IFRoZXJlIGFyZSB6ZXJvIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUzRCUyME1KREVQUlNDQT0KTiUyMEFORCUyMHN0YXR1cyUyMCUzRCUyME9wZW4lMjBPUkRFUiUyMEJZJTIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwPQpERVNDCj4KPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3NC8KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zZXJ2aWNlL2xvY2FsL3JlcG9zaXRvcmllcy9tYXZlbi0xMzc0L2NvPQpudGVudC9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4tamRlcHJzY2FuLXBsdWdpbi8zLjAuMC1hbHBoYS0xL21hdmU9Cm4tamRlcHJzY2FuLXBsdWdpbi0zLjAuMC1hbHBoYS0xLXNvdXJjZS1yZWxlYXNlLnppcAo+Cj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gbWF2ZW4tamRlcHJzY2FuLXBsdWdpbi0zLjAuMC1hbHBoYS0xLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOiAgPQoKPiBjY2JlZDMzZWEzYmFhNTI3YjlhMGNmOTBkYmI0ZjljYThiYjg4ZWY0Cj4KPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tamRlcHJzY2FuLXBsdWdpbi1MQVRFUz0KVC8KPgo+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG09CmwKPgo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4KPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NDk5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFRodSBOb3YgMTYgMTc6NDg6MjUgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NDk5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEIzMEY0MTA3RjcKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVGh1LCAxNiBOb3YgMjAxNyAxNzo0ODoyNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDkzNjE0IGludm9rZWQgYnkgdWlkIDUwMCk7IDE2IE5vdiAyMDE3IDE3OjQ4OjI1IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MzQ3MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNiBOb3YgMjAxNyAxNzo0ODoyNSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDkzNDU4IGludm9rZWQgYnkgdWlkIDk5KTsgMTYgTm92IDIwMTcgMTc6NDg6MjUgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMTYgTm92IDIwMTcgMTc6NDg6MjUgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgNDhCN0IxQTAxNDAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUaHUsIDE2IE5vdiAyMDE3IDE3OjQ4OjIzICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBtZXJnaW5nIE1ORy02MzAyIHRvIG1hc3RlcgpSZWZlcmVuY2VzOiA8MTYyMTE3Ni5zSmFoRW05MzI1QGdpZ2E+CkRhdGU6IFRodSwgMTYgTm92IDIwMTcgMTg6NDg6MjUgKzAxMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogUXVvdGVkLVByaW50YWJsZQpGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTlzNDJ6cjhrZGtocnJAZGVza3RvcC0ya2hzazQ0PgpJbi1SZXBseS1UbzogPDE2MjExNzYuc0phaEVtOTMyNUBnaWdhPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCisxCgoKT24gVGh1LCAxNiBOb3YgMjAxNyAxODoyNDowOSArMDEwMCwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuPQpmcj4gID0KCndyb3RlOgoKPiBJIHVwZGF0ZWQgTU5HLTYzMDIgaW1wbGVtZW50YXRpb246Cj4gc2VlIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYzMDIKPgo+IGFyZSB0aGVyZSBzZWNvbmRlcnMgZm9yIHRoaXMgaW1wbGVtZW50YXRpb24/Cj4gb3IgaWRlYXMgb24gYmV0dGVyIGRpc3BsYXlzPwo+Cj4gUmVnYXJkcywKPgo+IEhlcnY9RTkKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NTAyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBOb3YgMTcgMDk6Mjc6NTEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTAyLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDhDQjU1MTdCNDIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAxNyBOb3YgMjAxNyAwOToyNzo1MSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDM2MzQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTcgTm92IDIwMTcgMDk6Mjc6NTEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM1MzkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTcgTm92IDIwMTcgMDk6Mjc6NTEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNTA5IGludm9rZWQgYnkgdWlkIDk5KTsgMTcgTm92IDIwMTcgMDk6Mjc6NTEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMTcgTm92IDIwMTcgMDk6Mjc6NTEgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgMEQ4MjkxQTAyRTY7CglGcmksIDE3IE5vdiAyMDE3IDA5OjI3OjQ5ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzCkRhdGU6IEZyaSwgMTcgTm92IDIwMTcgMTA6Mjc6NTAgKzAxMDAKVG86IGFubm91bmNlQG1hdmVuLmFwYWNoZS5vcmcsIHVzZXJzQG1hdmVuLmFwYWNoZS5vcmcKQ2M6IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFtBTk5dIEFwYWNoZSBNYXZlbiBKRGVwclNjYW4gUGx1Z2luIDMuMC4wLWFscGhhLTEgUmVsZWFzZWQKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTl1Y2tvbTZrZGtocnJAZGVza3RvcC0ya2hzazQ0PgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKClRoZSBBcGFjaGUgTWF2ZW4gdGVhbSBpcyBwbGVhc2VkIHRvIGFubm91bmNlIHRoZSBmaXJzdCByZWxlYXNlIG9mIHRoZSAgCkFwYWNoZSBNYXZlbiBKRGVwclNjYW4gUGx1Z2luLCB2ZXJzaW9uIDMuMC4wLWFscGhhLTEKClRoZSBNYXZlbiBKRGVwclNjYW4gcGx1Z2luIGlzIHVzZWQgdG8gc2NhbiBjbGFzcyBmaWxlcyBmb3IgdXNlcyBvZiAgCmRlcHJlY2F0ZWQgQVBJIGVsZW1lbnRzLiBJdCB1c2VzIHRoZSBqZGVwcnNjYW4gdG9vbCBhcyBwcm92aWRlZCB3aXRoIEphdmEgIAo5LgoKaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMvbWF2ZW4tamRlcHJzY2FuLXBsdWdpbi8KCllvdSBzaG91bGQgc3BlY2lmeSB0aGUgdmVyc2lvbiBpbiB5b3VyIHByb2plY3QncyBwbHVnaW4gY29uZmlndXJhdGlvbjoKCjxwbHVnaW4+CiAgIDxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4KICAgPGFydGlmYWN0SWQ+bWF2ZW4tamRlcHJzY2FuLXBsdWdpbjwvYXJ0aWZhY3RJZD4KICAgPHZlcnNpb24+My4wLjAtYWxwaGEtMTwvdmVyc2lvbj4KPC9wbHVnaW4+CgpZb3UgY2FuIGRvd25sb2FkIHRoZSBhcHByb3ByaWF0ZSBzb3VyY2VzIGV0Yy4gZnJvbSB0aGUgZG93bmxvYWQgcGFnZToKCmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zL21hdmVuLWpkZXByc2Nhbi1wbHVnaW4vZG93bmxvYWQuY2dpCgpFbmpveSwKCi1UaGUgQXBhY2hlIE1hdmVuIHRlYW0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDUwNi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgTm92IDE3IDExOjI3OjUzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDUwNi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDNUM3QTE3RUU3Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMTcgTm92IDIwMTcgMTE6Mjc6NTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2MTkwNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNyBOb3YgMjAxNyAxMToyNzo1MyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjE4MTcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTcgTm92IDIwMTcgMTE6Mjc6NTMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2MTgwNCBpbnZva2VkIGJ5IHVpZCA5OSk7IDE3IE5vdiAyMDE3IDExOjI3OjUzIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDE3IE5vdiAyMDE3IDExOjI3OjUzICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDNFNUNBMUEwMTQwOwoJRnJpLCAxNyBOb3YgMjAxNyAxMToyNzo1MSArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKRGF0ZTogRnJpLCAxNyBOb3YgMjAxNyAxMjoyNzo0OSArMDEwMApDYzogc2ViYiA8c2ViYmF6QGdtYWlsLmNvbT4KU3ViamVjdDogRG93bmxvYWQgbGlua3MKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTl1aDRueXdrZGtocnJAZGVza3RvcC0ya2hzazQ0PgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKClRoaXMgdG9waWMgZGVzZXJ2ZXMgYSBzZXBhcmF0ZSBtYWlsdGhyZWFkLgoKUXVvdGluZyBTZWJiIG9uIGEgZGlmZmVyZW50IHRocmVhZDoKIlRoZSBkb3dubG9hZCBsaW5rIHBvaW50cyB0byB0aGUgdG9wLWxldmVsIG9mIHRoZSBBU0YgbWlycm9yIHN5c3RlbS4KClRoaXMgbWFrZXMgaXQgdmVyeSBoYXJkIHRvIHVzZS4iCgpBRkFJSyB0aGUgQVNGIHNheXMgdGhlcmUgc2hvdWxkIGJlIGEgZG93bmxvYWQgYnV0dG9uIGZvciBldmVyeSByZWxlYXNlZCAgCnByb2R1Y3QuCkluIGNhc2Ugb2YgTWF2ZW4gd2UncmUgdGFsa2luZyBhYm91dCBhIGxvdCBvZiBwcm9qZWN0cywgYW5kIGRvd25sb2FkcyAgCnNob3VsZCBiZSByZWRpcmVjdGVkIHZpYSBhIG1pcnJvci4KSSBkb24ndCB0aGluayBpdCBpcyBwb3NzaWJsZSB0byBkbyBhIGRlZXBsaW5rIHRvIGEgc3BlY2lmaWMgZm9sZGVyLgoKQWxzbywgaW4gY2FzZSBvZiBNYXZlbiBwbHVnaW5zIGFuZCBvdGhlciBkZXBlbmRlbmNpZXMgKGFsbCBleGNsdWRpbmcgdGhlICAKTWF2ZW4gZGlzdHJpYnV0aW9uIGl0c2VsZikgaXQgaXMga2luZCBvZiBzdHJhbmdlIHRvIHByb3ZpZGUgYSBkb3dubG9hZCAgCmxpbmsgd2hlbiB3ZSBjb3VsZCBhc3N1bWUgdGhhdCB0aGV5IG9ubHkgd2FudCB0byBoYXZlIHRoZSAgCnBsdWdpbi9kZXBlbmRlbmN5IFhNTCBmcmFnbWVudC4KCkkgYWdyZWUgdGhhdCB0aGUgbGluayBpcyBraW5kIG9mIHVzZWxlc3MgcmlnaHQgbm93LCBidXQgYWxzbyB0aGUgYmVzdCB3ZSAgCmNhbiBkbyB3aGVuIHByb3ZpZGluZyBhIGRpcmVjdCBkb3dubG9hZCBsaW5rLgpJZiB0aGVyZSdzIG5vIHdheSB0byBkbyBhIGRlZXBsaW5rLCBJJ2QgcHJlZmVyIHRvIHJlbW92ZSBpdCBmcm9tIHRoZSBwYWdlcyAgCmFuZCBhbm5vdW5jZW1lbnRzLgoKdGhhbmtzLApSb2JlcnQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDUwNS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgTm92IDE3IDExOjEwOjUzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDUwNS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAwMkRDRTE3RThCCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMTcgTm92IDIwMTcgMTE6MTA6NTMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzMDMwOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNyBOb3YgMjAxNyAxMToxMDo1MiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzAyMzEgaW52b2tlZCBieSB1aWQgNTAwKTsgMTcgTm92IDIwMTcgMTE6MTA6NTIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMDIxOSBpbnZva2VkIGJ5IHVpZCA5OSk7IDE3IE5vdiAyMDE3IDExOjEwOjUyIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDE3IE5vdiAyMDE3IDExOjEwOjUyICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEVCQTU4MUEwMTQwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAxNyBOb3YgMjAxNyAxMToxMDo1MSArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKU3ViamVjdDogUmU6IE1hdmVuIHJlc29sdmVyIGJyYW5jaCBjb25zb2xpZGF0aW9uClJlZmVyZW5jZXM6IDwyMDE3MTEwOTA1MzU1MS45NTdENDI5QzUwRDFAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPgogPDExMDM0ODkwLmNZWEpxcGdwcWVAZ2lnYT4KIDxDQStuUG5Nd2VqaGFrdUROVHVWMEwxRHc0bUFTbWhMcj1TZnFnN3ZCSjRqWE1CdnZ6PUFAbWFpbC5nbWFpbC5jb20+CiA8MTY0MDM1Ny41WFdtWU9OYkViQGdpZ2E+IDwyMDE3MTExNjE3MTMxNS4zNjYzNjI5QzAwODFAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPgpEYXRlOiBGcmksIDE3IE5vdiAyMDE3IDEyOjEwOjQ5ICswMTAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IFF1b3RlZC1QcmludGFibGUKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk5dWhjYm1pa2RraHJyQGRlc2t0b3AtMmtoc2s0ND4KSW4tUmVwbHktVG86IDwyMDE3MTExNjE3MTMxNS4zNjYzNjI5QzAwODFAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCiJXZSBjYW4gc29sdmUgYW55IHByb2JsZW0gYnkgaW50cm9kdWNpbmcgYW4gZXh0cmEgbGV2ZWwgb2YgaW5kaXJlY3Rpb24uIj0KICA9CgpbMV0KCkxvb2tpbmcgYXQgdGhpcyBuZXcgaW1hZ2VbMV0gaXQgaXMgd2VpcmQgdG8gbWUgdGhhdCBhbnQtdGFza3MgaGFzIGEgZGlyZT0KY3QgID0KCmRlcGVuZGVuY3kgb24gbWF2ZW4tcmVzb2x2ZXItcHJvdmlkZXIuIEkgd291bGQgaGF2ZSBleHBlY3RlZCBzb21lIHByb3ZpZD0KZXIgID0KCmFic3RyYWN0aW9uIHdoZXJlIHlvdSBjYW4gY2hvb3NlIHRvIHVzZSB0aGUgbWF2ZW4tcmVzb2x2ZXItcHJvdmlkZXIuCgpNZXJnaW5nIGl0IGludG8gb25lIHByb2plY3QgaXMgYW4gaW50ZXJlc3Rpbmcgb3B0aW9uLCBidXQgSSB0aGluayB0aGUgID0KCm1hdmVuLWFydGlmYWN0LXJlc29sdmVyIGlzIGlzb2xhdGVkIGVub3VnaCB0byBkZXNlcnZlIGl0cyBvd24gcHJvamVjdC4KCnRoYW5rcywKUm9iZXJ0CgpbMV0gID0KCmh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0Z1bmRhbWVudGFsX3RoZW9yZW1fb2Zfc29mdHdhcmVfZW5naW5lZXJpbj0KZwpbMl0gID0KCmh0dHBzOi8vZ2l0MS11cy13ZXN0LmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9M0RtYXZlbi1yZXNvbHZlci5naXQ7YT0zRGJsbz0KYl9wbGFpbjtmPTNEc3JjL3NpdGUvcmVzb3VyY2VzL2ltYWdlcy9tYXZlbi1yZXNvbHZlci1kZXBzLnBuZztoYj0zRGY1NDM5PQpmZGUKCk9uIFRodSwgMTYgTm92IDIwMTcgMTg6MTM6MTUgKzAxMDAsIE1hbmZyZWQgTW9zZXIgID0KCjxtYW5mcmVkQHNpbXBsaWdpbGl0eS5jb20+IHdyb3RlOgoKPiBUaGFua3MgZm9yIHRoZSBleHBsYW5hdGlvbiBhbmQgZGV0YWlscyBIZXJ2ZS4gU2VlbXMgdG8gYmUgdGhhdCB0byBkbyAgPQoKPiB0aGlzIGNsZWFubHkgd2UgaGF2ZSB0byBicmVhayB0aGUgY2lyY2xlLiBGcm9tIG15IGxpbWl0ZWQga25vd2xlZGdlICA9Cgo+IHRoZXJlIGFyZSB0d28gd2F5cyB0byBkbyB0aGF0Lgo+Cj4gMS4gQXMgc3RlcGhlbiBzdWdnZXN0ZWQuLiBnZXQgdGhlIHJlc29sdmVyIGludG8gbWF2ZW4gY29yZSB0cmVlLiBUaGF0ID0KID0KCj4gbWFrZXMgY29yZSBiaWdnZXIgYWdhaW4gYW5kIHRpZXMgdGhlIHR3byBwcm9qZWN0cyBpbnRvIG9uZSByZWxlYXNlICA9Cgo+IGN5Y2xlLiBGZWFzaWJsZSBidXQgSSBhbSBub3QgYSBmYW4uCj4KPiAyLiBJIGFtIG5vdCBzdXJlIGlmIHBvc3NpYmxlIGJ1dCAuLiBjb3VsZCB3ZSBnZXQgdGhlIG1hdmVuIHJlc29sdmVyICA9Cgo+IHByb3ZpZGVyIG91dCBvZiBtYXZlbiBjb3JlIGFuZCBpbnRvIHRoZSByZXNvbHZlciBwcm9qZWN0IGFuZCBoYXZlIGl0IGE9CmxsICA9Cgo+IHRvZ2V0aGVyIGluIHRoZXJlPwo+Cj4gSW4gZWl0aGVyIGNhc2UgLi4gYm90aCBvZiB0aG9zZSBzZWVtIHJhdGhlciBsYXJnZSB0YXNrcyBzbyBJIHdpbGwgID0KCj4gZGVmaW5pdGVseSBnbyBhaGVhZCB3aXRoIGRlbW8gYnJhbmNoIG1lcmdlIGZpcnN0LiBJIGp1c3QgaGF2ZSB0byByZWRvID0KID0KCj4gdGhlIHdvcmsgSSBkaWQgd2l0aG91dCB0aGUgYW50IHRhc2tzIGluIHRoZSB0cmVlLiBTdGF5IHR1bmVkIG9uIHRoYXQuLj0KCj4KPiBNYW5mcmVkCj4KPiBIZXJ2PUU5IEJPVVRFTVkgd3JvdGUgb24gMjAxNy0xMS0xNiAwNTo0OToKPgo+PiBmZWFzaWJsZSwgYnV0IEkgcmVhbGx5IGRvbid0IGxpa2UgaXQ6IHNlcGFyYXRpb24gaXMgZ29vZC4KPj4KPj4gc2VyaW91c2x5LCBqdXN0IG1lcmdlIGRlbW9zIGFuZCBsZXQgYW50LXRhc2tzIHNlcGFyYXRlLCBhbmQgd2UgaGF2ZSBhPQogID0KCj4+IHByZXR0eQo+PiBnb29kIGNvbXByb21pc2Ugb24gZXZlcnkgYXNwZWN0Cj4+IChvciBldmVuIGRyb3AgYW50IHRhc2tzIGlmIHJlYWxseSB0aGlzIGlzIGNhdXNpbmcgdXMgdG9vIG11Y2ggID0KCj4+IGhlYWRhY2hlLi4uKQo+Pgo+PiBSZWdhcmRzLAo+Pgo+PiBIZXJ2PUU5Cj4+Cj4+IExlIGpldWRpIDE2IG5vdmVtYnJlIDIwMTcsIDEwOjAzOjA3IENFVCBTdGVwaGVuIENvbm5vbGx5IGEgPUU5Y3JpdCA6Cj4+PiBPbiBUaHUgMTYgTm92IDIwMTcgYXQgMDc6NTEsIEhlcnY9RTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPj0KICA9Cgo+Pj4gd3JvdGU6Cj4+PiA+IEkganVzdCBwdXNoZWQgYW4gdXBkYXRlIG9mIGRlcGVuZGVuY2llcyBpbWFnZSB0aGF0IHNob3dzIHRoZSBleHRlcj0KbmFsCj4+PiA+IG1hdmVuLQo+Pj4gPiByZXNvbHZlci1wcm92aWRlciAoaW4geWVsbG93KSBpbnNpZGUgdGhlIHJlYWN0b3IgZGVwZW5kZW5jeSBncmFwaCA9Cihpbgo+Pj4gPiBibHVlKQo+Pj4gPgo+Pj4gPiBUaGF0IHNob3dzIHRoZSBjaGlja2VuIGFuZCBlZ2cgaXNzdWUgb24gcmVsZWFzaW5nIHdlJ2xsIGhhdmUgb24gQVA9CkkKPj4+ID4gYnJlYWtpbmcKPj4+ID4gY2hhbmdlLiBQZW9wbGUgYWx3YXlzIGJ1aWxkaW5nIGZyb20gc291cmNlIChsaWtlIERlYmlhbikgd2lsbCBoYXZlPQogID0KCj4+PiB0aGUKPj4+ID4gaXNzdWUKPj4+ID4gYWxzby4KPj4+ID4KPj4+ID4gRm9yIGRlbW9zLCB3aGljaCBhcmUgbm90IHJlYWxseSBwdWJsaXNoZWQgZHVyaW5nIHRoZSByZWxlYXNlIChqdXN0PQogYXMKPj4+ID4gZG9jdW1lbnRhdGlvbiksIGRpc2FibGluZyB0aGUgbW9kdWxlIGluIHRoZSBidWlsZCB3aGVuIG5lY2Vzc2FyeSBpPQpzCj4+PiA+IHN1ZmZpY2llbnQsCj4+PiA+IHdvbid0IGNoYW5nZSBtYW55IHRoaW5ncy4gRm9yIGFudCB0YXNrcywgZGlzYWJsaW5nIHRoZSBtb2R1bGUgd2lsbD0KICA9Cgo+Pj4gbm90Cj4+PiA+IHB1Ymxpc2gKPj4+ID4gdGhlIGFydGlmYWN0OiB0aGlzIHdpbGwgaGF2ZSBhIHZpc2libGUgaW1wYWN0Lgo+Pj4KPj4+IFNob3VsZCB3ZSBqdXN0IGJpdGUgdGhlIGJ1bGxldCBhbmQgYnJpbmcgcmVzb2x2ZXIgaW4tdHJlZSBhcyBtb2R1bGVzPQogaW4KPj4+IG1hdmVuIGNvcmUuLi4gbGVhdmluZyBkZW1vcyBhbmQgYW50IHRhc2tzIGhlcmU/Cj4+Pgo+Pj4gPiBSZWdhcmRzLAo+Pj4gPgo+Pj4gPiBIZXJ2PUU5Cj4+PiA+Cj4+PiA+IExlIG1lcmNyZWRpIDE1IG5vdmVtYnJlIDIwMTcsIDIzOjA1OjE0IENFVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcj0KaXQgOgo+Pj4gPiA+IGl0IHNlZW1zIEkgaGF2ZSBub3QgYmVlbiBjbGVhcjogSSdsbCB0cnkgdG8gZXhwbGFpbiBiZXR0ZXIKPj4+ID4gPgo+Pj4gPiA+IDEuIG1hdmVuLXJlc29sdmVyLWFudC10YXNrcyBkZXBlbmRzIG9uIG1hdmVuLXJlc29sdmVyLXByb3ZpZGVyICA9Cgo+Pj4gKGZyb20KPj4+ID4KPj4+ID4gTWF2ZW4KPj4+ID4KPj4+ID4gPiBjb3JlKQo+Pj4gPiA+IDIuIG1hdmVuLXJlc29sdmVyLXByb3ZpZGVyICh0aGVuIE1hdmVuIGNvcmUpIGRlcGVuZHMgb24gID0KCj4+PiBtYXZlbi1yZXNvbHZlcgo+Pj4gPiA+Cj4+PiA+ID4gaWYgd2UgcHV0IG1hdmVuLXJlc29sdmVyLWFudC10YXNrcyBpbiB0aGUgc2FtZSByZWFjdG9yIHRoYW4KPj4+ID4KPj4+ID4gbWF2ZW4tcmVzb2x2ZXIsCj4+PiA+Cj4+PiA+ID4gd2UgY2FuJ3QgcmVsZWFzZSBhbnkgbWF2ZW4tcmVzb2x2ZXIgQVBJIGNoYW5nZSB0aGF0IGJyZWFrcwo+Pj4gPgo+Pj4gPiBtYXZlbi1yZXNvbHZlci0KPj4+ID4KPj4+ID4gPiBwcm92aWRlcgo+Pj4gPiA+Cj4+PiA+ID4gZXhhbXBsZTogaWYgd2UgbW92ZSBtYXZlbi1yZXNvbHZlciBjb2RlIHRvIG9yZy5hcGFjaGUubWF2ZW4gamF2YT0KICA9Cgo+Pj4gcGFja2FnZQo+Pj4gPgo+Pj4gPiBpbgo+Pj4gPgo+Pj4gPiA+IG1hdmVuLXJlc29sdmVyIDIuMC4wLVNOQVBTSE9ULCB3ZSBuZWVkIG1hdmVuLXJlc29sdmVyLXByb3ZpZGVyCj4+PiA+ID4gNC4wLjAtU05BUFNIT1QgdGhhdCB1c2VzIG1hdmVuLXJlc29sdmVyIDIuMC4wLVNOQVBTSE9UIHdpdGggdGhpcz0KICA9Cgo+Pj4gbmV3Cj4+PiA+ID4gamF2YQo+Pj4gPiA+IHBhY2thZ2UuIFRoZW4gdHJ5IHRvIHJlbGVhc2UgYW55dGhpbmc6IHlvdSBjYW4ndCwgdW5sZXNzIHlvdSBkb249Cid0ICA9Cgo+Pj4gdHJ5Cj4+PiA+ID4gdG8KPj4+ID4gPiByZWxlYXNlIG1hdmVuLSByZXNvbHZlci1hbnQtdGFza3MKPj4+ID4gPgo+Pj4gPiA+ICh0aGUgY29uc2VxdWVuY2Ugb24gdmVyc2lvbiBjb25zaXN0ZW5jeSBpcyBhbm90aGVyIHdheSB0byBkZXNjcmk9CmJlICA9Cgo+Pj4gdGhlCj4+PiA+ID4gaXNzdWUsIGJ1dCB0aGF0IGlzIG1vcmUgc3VidGxlLCB0aGVuIEkgY2hvc2UgdG8gZGVzY3JpYmUgdGhlIG1vcz0KdAo+Pj4gPiA+IHZpc2libGUKPj4+ID4gPiBpc3N1ZSwgd2l0aCBBUEkgYnJlYWtpbmcgY2hhbmdlKQo+Pj4gPiA+Cj4+PiA+ID4gSU1ITywgYW5vdGhlciBjb25zZXF1ZW5jZSBjb3VsZCBiZTogbWF2ZW4tcmVzb2x2ZXItYW50LXRhc2tzIHdvdT0KbGQKPj4+ID4KPj4+ID4gcGVyaGFwcwo+Pj4gPgo+Pj4gPiA+IGJldHRlciBiZSB2ZXJzaW9ubmVkIGxpa2UgbWF2ZW4tcmVzb2x2ZXItcHJvdmlkZXIKPj4+ID4gPgo+Pj4gPiA+Cj4+PiA+ID4gTWVyZ2luZyByZXNvbHZlci1kZW1vcyBpcyByZWFsbHkgdGhlIGdyZWF0IGJpZyBpZGVhOiB3aXRoIHRoYXQgID0KCj4+PiBtZXJnZSwKPj4+ID4gPiBtb2RpZnlpbmcgbWF2ZW4tcnJlc29sdmVyIGNhbiBpbW1lZGlhdGVseSBiZSB0ZXN0ZWQgd2l0aCBkZW1vczogPQogPQoKPj4+IHRoYXQnbGwKPj4+ID4KPj4+ID4gYmUKPj4+ID4KPj4+ID4gPiBzbyBtdWNoIGVhc2llciB0byBtYWtlIGNoYW5nZXMgdG8gbWF2ZW4tcmVzb2x2ZXIgY29kZSEKPj4+ID4gPgo+Pj4gPiA+IFJlZ2FyZHMsCj4+PiA+ID4KPj4+ID4gPiBIZXJ2PUU5Cj4+PiA+ID4KPj4+ID4gPiBMZSBtZXJjcmVkaSAxNSBub3ZlbWJyZSAyMDE3LCAwOTowMjoxMiBDRVQgTWljaGFlbCBPc2lwb3YgYSA9RTljPQpyaXQgOgo+Pj4gPiA+ID4gV2h5IC0xIG9uIHRoZSBBbnQgdGFza3M/Cj4+PiA+ID4gPgo+Pj4gPiA+ID4gQW0gMjAxNy0xMS0xNSB1bSAwMDo1MCBzY2hyaWViIEhlcnY9RTkgQk9VVEVNWToKPj4+ID4gPiA+ID4gSSBhbnN3ZXJlZCBvbiB0aGUgbWFpbGluZyBsaXN0IGFuZCBvbiB0aGUgMiBKaXJhIGlzc3Vlcwo+Pj4gPiA+ID4gPiBJbiBzdW1tYXJ5LCArMSB0byBtZXJnZSBkZW1vcywgLTEgdG8gbWVyZ2UgYW50LXRhc2tzCj4+PiA+ID4gPiA+Cj4+PiA+ID4gPiA+IFJlZ2FyZHMsCj4+PiA+ID4gPiA+Cj4+PiA+ID4gPiA+IEhlcnY9RTkKPj4+ID4gPiA+ID4KPj4+ID4gPiA+ID4gTGUgbWFyZGkgMTQgbm92ZW1icmUgMjAxNywgMTg6MTk6NDAgQ0VUIE1hbmZyZWQgTW9zZXIgYSA9RTljPQpyaXQgOgo+Pj4gPiA+ID4gPj4gQW55IGZlZWRiYWNrIG9yIHNob3VsZCBJIGp1c3QgZ28gYWhlYWQgd2l0aCB0aGUgY2xlYW51cD8KPj4+ID4gPiA+ID4+Cj4+PiA+ID4gPiA+PiBNYW5mcmVkCj4+PiA+ID4gPiA+Pgo+Pj4gPiA+ID4gPj4gTWFuZnJlZCBNb3NlciB3cm90ZSBvbiAyMDE3LTExLTA4IDIxOjM1Ogo+Pj4gPiA+ID4gPj4+IEhpIGFsbCwKPj4+ID4gPiA+ID4+Pgo+Pj4gPiA+ID4gPj4+IEkgaGF2ZSBzdGFydGVkIGFuZCBtYWRlIGdvb2QgcHJvZ3Jlc3Mgb24gZ2V0dGluZyBNYXZlbiAgPQoKPj4+IHJlc29sdmVyCj4+PiA+ID4gPiA+Pj4gYWxsCj4+PiA+ID4gPiA+Pj4gaW50bwo+Pj4gPiA+ID4gPj4+IHRoZSBtYXN0ZXIgYnJhbmNoIGluc3RlYWQgb2YgaGF2aW5nIG1hc3RlciwgZGVtb3MgYW5kICA9Cgo+Pj4gYW50LXRhc2tzIGluCj4+PiA+ID4gPiA+Pj4gc2VwYXJhdGUgYnJhbmNoZXMuCj4+PiA+ID4gPiA+Pj4KPj4+ID4gPiA+ID4+PiBEZXRhaWxzIGFyZSB0cmFja2VkIGluCj4+PiA+ID4gPiA+Pj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NUkVTT0xWRVItMjgKPj4+ID4gPiA+ID4+Pgo+Pj4gPiA+ID4gPj4+IEFsbCBvZiBpdCBpcyBub3cgaW4gYSBuZXcgYnJhbmNoIGNhbGxlZCBtYXN0ZXItYWxsIGZvciB5b3U9CiAgPQoKPj4+IHRvIHNlZS4KPj4+ID4gPiA+ID4+Pgo+Pj4gPiA+ID4gPj4+IEkgYW0gbm93IHdvbmRlcmluZyB3aGF0IHRoZSBuZXh0IHN0ZXBzIGFyZS4gSSBhZGRlZCB3aGF0IEk9CiAgPQoKPj4+IHRoaW5rCj4+PiA+ID4gPiA+Pj4gc2hvdWxkCj4+PiA+ID4gPiA+Pj4gaGFwcGVuIG5leHQgaW4gdGhlIGlzc3VlIGluIGEgY29tbWVudCBhbmQgd291bGQgYXBwcmVjaWF0ZT0KICA9Cgo+Pj4gYW55Cj4+PiA+Cj4+PiA+IGlucHV0Cj4+PiA+Cj4+PiA+ID4gPiA+Pj4gb24KPj4+ID4gPiA+ID4+PiB0aGUgY3VycmVudCBzZXR1cCBhbmQgbmV4dCBzdGVwcy4KPj4+ID4gPiA+ID4+Pgo+Pj4gPiA+ID4gPj4+IEFueSBoZWxwIHdvdWxkIGJlIGFwcHJlY2lhdGVkLgo+Pj4gPiA+ID4gPj4+Cj4+PiA+ID4gPiA+Pj4gbWFuZnJlZAo+Pj4gPgo+Pj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0tLQo+Pj4gPgo+Pj4gPiA+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+ID4gPiA+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4+ID4gPiA+ID4KPj4+ID4gPiA+ID4gID0KCj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KCj4+PiA+ID4gPiA+IC0KPj4+ID4gPiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+ID4gPiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gPiA+Cj4+PiA+ID4gID0KCj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLQo+Pj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gPgo+Pj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0tLQo+Pj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+Pj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+PiA+Cj4+PiA+IC0tCj4+Pgo+Pj4gU2VudCBmcm9tIG15IHBob25lCj4+Cj4+Cj4+Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1MTEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIE5vdiAxNyAxNzozNzoyMCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1MTEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgODY2RjkxMEY0OQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDE3IE5vdiAyMDE3IDE3OjM3OjIwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzk5OTYgaW52b2tlZCBieSB1aWQgNTAwKTsgMTcgTm92IDIwMTcgMTc6Mzc6MjAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc5ODY3IGludm9rZWQgYnkgdWlkIDUwMCk7IDE3IE5vdiAyMDE3IDE3OjM3OjIwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzk4NTUgaW52b2tlZCBieSB1aWQgOTkpOyAxNyBOb3YgMjAxNyAxNzozNzoyMCAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAxNyBOb3YgMjAxNyAxNzozNzoyMCArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCAyMDUxOTFBMDIzNgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTcgTm92IDIwMTcgMTc6Mzc6MTggKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCkRhdGU6IEZyaSwgMTcgTm92IDIwMTcgMTg6Mzc6MTYgKzAxMDAKU3ViamVjdDogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIEphdmFkb2MgUGx1Z2luIHZlcnNpb24gMy4wLjAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTl1eThlYzVrZGtocnJAZGVza3RvcC0ya2hzazQ0PgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCkhpLAoKV2Ugc29sdmVkIDI2IGlzc3VlczoKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMxNzUyOSZ2ZXJzaW9uPTEyMzMwODc1JnN0eWxlTmFtZT1UZXh0CgpUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPXByb2plY3QlMjAlM0QlMjAxMjMxNzUyOSUyMEFORCUyMHN0YXR1cyUyMCUzRCUyME9wZW4lMjBPUkRFUiUyMEJZJTIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQwoKU3RhZ2luZyByZXBvOgpodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzc2LwpodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzc2L29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi1qYXZhZG9jLXBsdWdpbi8zLjAuMC9tYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMC1zb3VyY2UtcmVsZWFzZS56aXAKClNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgptYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogIApkZWIwMmVlNjc5NDRmY2M2YTc2NWJmM2RmODE1ODZjOTYzMmE2N2IzCgpTdGFnaW5nIHNpdGU6Cmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWphdmFkb2MtcGx1Z2luLUxBVEVTVC8KCkd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgpodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAoKVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KClsgXSArMQpbIF0gKzAKWyBdIC0xCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1MjEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAxOCAxMzowNDoyMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1MjEtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMDQ1NzUxMEQzNwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDE4IE5vdiAyMDE3IDEzOjA0OjIxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDAyMTQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggTm92IDIwMTcgMTM6MDQ6MjAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQwMTQ1IGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IE5vdiAyMDE3IDEzOjA0OjIwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDAxMzQgaW52b2tlZCBieSB1aWQgOTkpOyAxOCBOb3YgMjAxNyAxMzowNDoyMCAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAxOCBOb3YgMjAxNyAxMzowNDoyMCArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCA5NUY1QzFBMDE0MAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTggTm92IDIwMTcgMTM6MDQ6MTkgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBKYXZhZG9jIFBsdWdpbiB2ZXJzaW9uIDMuMC4wClJlZmVyZW5jZXM6IDxvcC55OXV5OGVjNWtka2hyckBkZXNrdG9wLTJraHNrNDQ+CiA8MjAxNzExMTcxOTAwNTQuMWE4YjI2YzdAY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvPgogPDIwMTcxMTE4MTE0NjUxLjdmYWI3NDYwQGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbz4KRGF0ZTogU2F0LCAxOCBOb3YgMjAxNyAxNDowNDoxNyArMDEwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC55OXdnOWZ0bGtka2hyckBkZXNrdG9wLTJraHNrNDQ+CkluLVJlcGx5LVRvOiA8MjAxNzExMTgxMTQ2NTEuN2ZhYjc0NjBAY29wcGVyaGVhZC5pbnQuYXJjNy5pbmZvPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCkhpIE1hcmssCgp0aGFua3MgZm9yIHRlc3RpbmcuIEkgY2FuIGNvbmZpcm0gdGhlIHByb2JsZW0uCkknbGwgY2FuY2VsIHRoZSB2b3RlIGFuZCByb2xsIG91dCBhbm90aGVyIHJlbGVhc2UgYmFzZWQgb24geW91ciBwYXRjaC4KCnRoYW5rcywKUm9iZXJ0CgpPbiBTYXQsIDE4IE5vdiAyMDE3IDEyOjQ2OjUxICswMTAwLCBNYXJrIFJheW5zZm9yZCAgCjxvcmcuYXBhY2hlLm1hdmVuLnVzZXJAaW83bS5jb20+IHdyb3RlOgoKPiBPbiAyMDE3LTExLTE3VDE5OjAwOjU0ICswMDAwCj4gTWFyayBSYXluc2ZvcmQgPG9yZy5hcGFjaGUubWF2ZW4udXNlckBpbzdtLmNvbT4gd3JvdGU6Cj4KPj4gLTEgKG5vbi1iaW5kaW5nKQo+Pgo+PiBUaGUgc3RhZ2VkIHZlcnNpb24gc3RpbGwgZmFpbHMgd2l0aCBhIGJhc2ljIG1vZHVsZSBzZXR1cDoKPj4KPj4gICBodHRwczovL2dpdGh1Yi5jb20vaW83bS9tYXZlbi1qYXZhZG9jLWJ1Zy0yMDE3MTExNwo+Cj4gSSd2ZSBzdWJtaXR0ZWQgYSBQUiB0aGF0IEkgYmVsaWV2ZSBmaXhlcyB0aGUgaXNzdWUsIGJ1dCBJJ20gbm90IHN1cmUgaWYKPiBpdCdzIGFscmVhZHkgdG9vIGxhdGUgdG8gZ2V0IGl0IGludG8gMy4wLjA6Cj4KPiAgIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9wdWxsLzEzNwo+Cj4gUmVsZWFzaW5nIDMuMC4wIGFzIGlzIHNpbXBseSB3b24ndCB3b3JrIGZvciBtdWx0aS1tb2R1bGUgYnVpbGRzIChhbmQKPiBtYXkgYmUgYnJva2VuIGVsc2V3aGVyZSwgSSBkb24ndCBrbm93KS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDUyMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgTm92IDE4IDEzOjA1OjM4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDUyMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBCM0NBNTEwRDNDCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMTggTm92IDIwMTcgMTM6MDU6MzggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0NTYwNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBOb3YgMjAxNyAxMzowNTozOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDU1MzEgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggTm92IDIwMTcgMTM6MDU6MzggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0NTUyMCBpbnZva2VkIGJ5IHVpZCA5OSk7IDE4IE5vdiAyMDE3IDEzOjA1OjM4IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDE4IE5vdiAyMDE3IDEzOjA1OjM4ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEI0MDY4MUEwMTQwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAxOCBOb3YgMjAxNyAxMzowNTozNyArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBbQ0FOQ0VMRURdIFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBKYXZhZG9jIFBsdWdpbiB2ZXJzaW9uIDMuMC4wClJlZmVyZW5jZXM6IDxvcC55OXV5OGVjNWtka2hyckBkZXNrdG9wLTJraHNrNDQ+CkRhdGU6IFNhdCwgMTggTm92IDIwMTcgMTQ6MDU6MzcgKzAxMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTl3aGJudzdrZGtocnJAZGVza3RvcC0ya2hzazQ0PgpJbi1SZXBseS1UbzogPG9wLnk5dXk4ZWM1a2RraHJyQGRlc2t0b3AtMmtoc2s0ND4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpJc3N1ZSBmb3VuZCByZWxhdGVkIHRvIGEgTWF2ZW4gbXVsdGltb2R1bGUgcHJvamVjdHMgYW5kIEphdmEgOSBtb2R1bGUgIApkZXNjcmlwdG9ycy4KClRoaXMgbmVlZHMgdG8gYmUgZml4ZWQgZm9yIDMuMC4wLgoKdGhhbmtzLApSb2JlcnQKCk9uIEZyaSwgMTcgTm92IDIwMTcgMTg6Mzc6MTYgKzAxMDAsIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4gIAp3cm90ZToKCj4gSGksCj4KPiBXZSBzb2x2ZWQgMjYgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZWN0SWQ9MTIzMTc1MjkmdmVyc2lvbj0xMjMzMDg3NSZzdHlsZU5hbWU9VGV4dAo+Cj4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPXByb2plY3QlMjAlM0QlMjAxMjMxNzUyOSUyMEFORCUyMHN0YXR1cyUyMCUzRCUyME9wZW4lMjBPUkRFUiUyMEJZJTIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQwo+Cj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzYvCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3Ni9vcmcvYXBhY2hlL21hdmVuL3BsdWdpbnMvbWF2ZW4tamF2YWRvYy1wbHVnaW4vMy4wLjAvbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAtc291cmNlLXJlbGVhc2UuemlwCj4KPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogIAo+IGRlYjAyZWU2Nzk0NGZjYzZhNzY1YmYzZGY4MTU4NmM5NjMyYTY3YjMKPgo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1qYXZhZG9jLXBsdWdpbi1MQVRFU1QvCj4KPiBHdWlkZSB0byB0ZXN0aW5nIHN0YWdlZCByZWxlYXNlczoKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAo+Cj4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPgo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1MjMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAxOCAxNToxMDozNyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1MjMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQTFEMEUxNzFFMgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDE4IE5vdiAyMDE3IDE1OjEwOjM3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNzgwMzkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTggTm92IDIwMTcgMTU6MTA6MzcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDc3OTYwIGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IE5vdiAyMDE3IDE1OjEwOjM3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzc5NDkgaW52b2tlZCBieSB1aWQgOTkpOyAxOCBOb3YgMjAxNyAxNToxMDozNyAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAxOCBOb3YgMjAxNyAxNToxMDozNyArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCAyOTRCRTFBMDIzNgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTggTm92IDIwMTcgMTU6MTA6MzUgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKRGF0ZTogU2F0LCAxOCBOb3YgMjAxNyAxNjoxMDozNCArMDEwMApTdWJqZWN0OiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gSmF2YWRvYyBQbHVnaW4gdmVyc2lvbiAzLjAuMCAodGFrZSAyKQpUbzogIkFwYWNoZSBNYXZlbiBEZXYiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTl3bTN3MHFrZGtocnJAZGVza3RvcC0ya2hzazQ0PgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCkhpLAoKV2Ugc29sdmVkIDI3IGlzc3VlczoKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMxNzUyOSZ2ZXJzaW9uPTEyMzMwODc1JnN0eWxlTmFtZT1UZXh0CgpUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPXByb2plY3QlMjAlM0QlMjAxMjMxNzUyOSUyMEFORCUyMHN0YXR1cyUyMCUzRCUyME9wZW4lMjBPUkRFUiUyMEJZJTIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQwoKU3RhZ2luZyByZXBvOgpodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzc3LwpodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzc3L29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi1qYXZhZG9jLXBsdWdpbi8zLjAuMC9tYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMC1zb3VyY2UtcmVsZWFzZS56aXAKClNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgptYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogIAo5ZjcwYzM4NWI2YmU3NjY2ZjM1YjVhMjRlZGU5YzVjNjBlMjhkZmNlCgpTdGFnaW5nIHNpdGU6Cmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWphdmFkb2MtcGx1Z2luLUxBVEVTVC8KCkd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgpodHRwczovL21hdmVuLmFwYWNoZS5vcmcvZ3VpZGVzL2RldmVsb3BtZW50L2d1aWRlLXRlc3RpbmctcmVsZWFzZXMuaHRtbAoKVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KClsgXSArMQpbIF0gKzAKWyBdIC0xCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1MjQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IE5vdiAxOCAxNTozMTo0NyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1MjQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRDAwNjMxNzNBRQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDE4IE5vdiAyMDE3IDE1OjMxOjQ3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMjY4ODggaW52b2tlZCBieSB1aWQgNTAwKTsgMTggTm92IDIwMTcgMTU6MzE6NDcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI2ODA5IGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IE5vdiAyMDE3IDE1OjMxOjQ3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjY3OTggaW52b2tlZCBieSB1aWQgOTkpOyAxOCBOb3YgMjAxNyAxNTozMTo0NyAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAxOCBOb3YgMjAxNyAxNTozMTo0NyArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCA2QkNDNjFBMDIzNgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTggTm92IDIwMTcgMTU6MzE6NDUgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86IGRldkBtYXZlbi5hcGFjaGUub3JnCkRhdGU6IFNhdCwgMTggTm92IDIwMTcgMTY6MzE6NDQgKzAxMDAKU3ViamVjdDogU2Vjb25kIE1ORy02Mjk2OiBOZXcgb3B0aW9uIC1Ec3R5bGUuY29sb3IgaXMgbm90IHdvcmtpbmcKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTl3bjI2b2FrZGtocnJAZGVza3RvcC0ya2hzazQ0PgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCkhpLAoKTU5HLTYyMjBbMV0gd2FzIGluY29tcGxldGUsIHdoaWNoIHdpbGwgYmUgZml4ZWQgd2l0aCBNTkctNjI5NlsyXS4KCkNvbW1pdDogIApodHRwczovL2dpdDEtdXMtd2VzdC5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPW1hdmVuLmdpdDthPWNvbW1pdDtoPWIyYWZhZmU1CkNJOiAgICAgIApodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLTMueC1qZW5raW5zZmlsZS9qb2IvTU5HLTYyOTYvCgpXaG8gd2FudHMgdG8gc2Vjb25kIHRoaXM/Cgp0aGFua3MsClJvYmVydAoKWzFdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyMjAKWzJdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyOTYKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDUyNi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgTm92IDE4IDE2OjA0OjE0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDUyNi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA2ODlGNjE3NDY4Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMTggTm92IDIwMTcgMTY6MDQ6MTQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA3NDgyNiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBOb3YgMjAxNyAxNjowNDoxNCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzQ3MzggaW52b2tlZCBieSB1aWQgNTAwKTsgMTggTm92IDIwMTcgMTY6MDQ6MTQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA3NDcyNyBpbnZva2VkIGJ5IHVpZCA5OSk7IDE4IE5vdiAyMDE3IDE2OjA0OjE0IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDE4IE5vdiAyMDE3IDE2OjA0OjE0ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDZGMTYwMUEwMjM2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU2F0LCAxOCBOb3YgMjAxNyAxNjowNDoxMyArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIEphdmFkb2MgUGx1Z2luIHZlcnNpb24gMy4wLjAgKHRha2UgMikKUmVmZXJlbmNlczogPG9wLnk5d20zdzBxa2RraHJyQGRlc2t0b3AtMmtoc2s0ND4KIDwyMDE3MTExODE1NTczNi4wNDg1ZjkwMEBjb3BwZXJoZWFkLmludC5hcmM3LmluZm8+CkRhdGU6IFNhdCwgMTggTm92IDIwMTcgMTc6MDQ6MTIgKzAxMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AueTl3cGxhcHhrZGtocnJAZGVza3RvcC0ya2hzazQ0PgpJbi1SZXBseS1UbzogPDIwMTcxMTE4MTU1NzM2LjA0ODVmOTAwQGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbz4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpUaGF0J3Mgc2ltaWxhciB0byBNSkFWQURPQy00NzlbMV0KClNlZW1zIGxpa2UgYWxsIEphdmEgOSBpc3N1ZXMgYXJlIG5vdCByZXNvbHZlZCB5ZXQuCkkgZG9uJ3QgbWluZCBjYW5jZWxpbmcgdGhlIHZvdGUgaWYgd2UgY2FuIGZpeCB0aGlzIGFzIHdlbGwuCgp0aGFua3MsClJvYmVydAoKWzFdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTUpBVkFET0MtNDc5CgpPbiBTYXQsIDE4IE5vdiAyMDE3IDE2OjU3OjM2ICswMTAwLCBNYXJrIFJheW5zZm9yZCAgCjxvcmcuYXBhY2hlLm1hdmVuLnVzZXJAaW83bS5jb20+IHdyb3RlOgoKPiBIZWxsbyEKPgo+IEknZCBsaWtlIHRvIHZvdGUgb24gdGhpcyBpc3N1ZSwgYnV0IEkgc3RpbGwgaGF2ZSBhIHJlbWFpbmluZyBwcm9ibGVtCj4gYW5kIGFtIG5vdCBzdXJlIGlmIGl0J3MgYmVjYXVzZSB0aGUgcGx1Z2luIGlzIGJyb2tlbiBkdWUgdG8gdGhlIG5ldwo+IG1vZHVsZSBjaGFuZ2VzLCBvciBqdXN0IGJlY2F1c2UgbXkgcHJvamVjdCBzZXR1cCBpcyBzbGlnaHRseQo+IHVudXN1YWwuCj4KPiBTZWUgaGVyZToKPgo+IGh0dHBzOi8vZ2l0aHViLmNvbS9pbzdtL21hdmVuLWphdmFkb2MtYnVnLTIwMTcxMTE4Cj4KPiBUaGUgImMiIG1vZHVsZSBhdHRlbXB0cyB0byBhZ2dyZWdhdGUgdGhlIGphdmFkb2Mgb2YgdGhlIG90aGVyIG1vZHVsZXMKPiBpbiB0aGUgcmVhY3RvciBpbnRvIGEgc2luZ2xlIGRpcmVjdG9yeS4gSXQgZmFpbHMgYmVjYXVzZSB0aGUgcGx1Z2luCj4gYXR0ZW1wdHMgdG8gbG9hZCB0aGUgbW9kdWxlIGRlc2NyaXB0b3JzIG9mIHRoZSBvdGhlciBwcm9qZWN0cywKPiByZXN1bHRpbmcgaW4gYSAidG9vIG1hbnkgbW9kdWxlIGRlc2NyaXB0b3JzIiBlcnJvci4KPgo+IFRoaXMgaXMgYSBzaW1wbGlmaWVkIHZlcnNpb24gb2YgYSByZWFsIHByb2plY3QgaGVyZSAoYWxsIG9mIG15Cj4gcHJvamVjdHMgZm9sbG93IHRoZSBzYW1lIGJhc2ljIHN0cnVjdHVyZSk6Cj4KPiAgIGh0dHBzOi8vZ2l0aHViLmNvbS9pbzdtL2plcXVhbGl0eQo+Cj4gVGhlIGphdmFkb2Mgb2YgYWxsIG9mIHRoZSBtb2R1bGVzIGlzIGFnZ3JlZ2F0ZWQgaW50byBhIGRpcmVjdG9yeSBhbmQKPiBjb21iaW5lZCB3aXRoIHNvbWUgb3RoZXIgZG9jdW1lbnRhdGlvbiBpbnRvIGEgLnppcCBmb3IgZGVwbG95bWVudC4KPgo+IEknZCBjb3VsZCB1c2UgdGhlICJhZ2dyZWdhdGUiIGdvYWwsIGJ1dCB0aGF0IGNhdXNlcyB0b28gbWFueSBwcm9ibGVtcwo+IGR1ZSB0byB0aGUgd2F5IHRoYXQgdGhlIGdvYWwgZm9ya3MgYW5kIHJlLXJ1bnMgcHJldmlvdXMgZ29hbHMgYm91bmQgdG8KPiB0aGUgY29tcGlsZSBwaGFzZS4gQXBhcnQgZnJvbSBhbnl0aGluZywgaW4gbGFyZ2VyIHByb2plY3RzIHdpdGggbG90cyBvZgo+IG1vZHVsZXMsIHJlLXJ1bm5pbmcgYWxsIG9mIHRob3NlIGdvYWxzIHRha2VzIHVuYWNjZXB0YWJseSBsb25nLgo+Cj4gSXQncyBub3QgY2xlYXIgdG8gbWUgaWYgdGhpcyBpcyBhY3R1YWxseSBhIHByb2JsZW0gd2l0aCB0aGUgY3VycmVudAo+IHBsdWdpbiwgb3IganVzdCBiZWNhdXNlIEknbSBub3Qgc3VwcG9zZWQgdG8gZG8gdGhpbmdzIHRoaXMgd2F5LgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NTMzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBOb3YgMTggMTc6MDc6NDEgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NTMzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDQ4OTQxMTc1NTIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAxOCBOb3YgMjAxNyAxNzowNzo0MSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDMzMjA5IGludm9rZWQgYnkgdWlkIDUwMCk7IDE4IE5vdiAyMDE3IDE3OjA3OjQxIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMzA5MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOCBOb3YgMjAxNyAxNzowNzo0MCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMzMDc5IGludm9rZWQgYnkgdWlkIDk5KTsgMTggTm92IDIwMTcgMTc6MDc6NDAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMTggTm92IDIwMTcgMTc6MDc6NDAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgQTdCRjMxQTAyMzY7CglTYXQsIDE4IE5vdiAyMDE3IDE3OjA3OjM5ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LAogPT9pc28tODg1OS0xNT9RP0hlcnY9RTlfQk9VVEVNWT89IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gSmF2YWRvYyBQbHVnaW4gdmVyc2lvbiAzLjAuMCAodGFrZSAyKQpSZWZlcmVuY2VzOiA8b3AueTl3bTN3MHFrZGtocnJAZGVza3RvcC0ya2hzazQ0PgogPDIwMTcxMTE4MTYxODA2LjVjYzEyZWE0QGNvcHBlcmhlYWQuaW50LmFyYzcuaW5mbz4gPDE4MDYwMjUuQnNtRjk2M1JxbkBnaWdhPgogPDE5MTMxNjQuY3BXaXNOS1E0UUBnaWdhPgpEYXRlOiBTYXQsIDE4IE5vdiAyMDE3IDE4OjA3OjM4ICswMTAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IFF1b3RlZC1QcmludGFibGUKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk5d3NpMGYza2RraHJyQGRlc2t0b3AtMmtoc2s0ND4KSW4tUmVwbHktVG86IDwxOTEzMTY0LmNwV2lzTktRNFFAZ2lnYT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgp0aGF0IHdvcmtzIGJlY2F1c2UgT3BlbkpESyB1c2VzIG1vZHVsZS1zb3VyY2UtcGF0aCwgaS5lLiAgPQoKc3JjLzxtb2R1bGVuYW1lPi88Ki5qYXZhPgpNYXZlbiB1c2VzIHNvdXJjZS1wYXRoIGJlY2F1c2UgaXQgbWF0Y2hlcyBleGFjdGx5IG9uZSBtb2R1bGUgLCBpLmUuICA9CgpzcmMvbWFpbi9qYXZhLzwqLmphdmE+CgpBZ2dyZWdhdG9yIGZvciBtb2R1bGVzIHJlcXVpcmVzIHRvIG1ha2UgdXNlIG9mIG1vZHVsZS1zb3VyY2UtcGF0aHMuCkkgZ3Vlc3Mgd2UgbmVlZCB0byBjb25zaWRlciB0byBtYWtlIHVzZSBvZiBzeW1ib2xpYyBsaW5rcyA6KAoKdGhhbmtzLApSb2JlcnQKCk9uIFNhdCwgMTggTm92IDIwMTcgMTc6NDQ6MjMgKzAxMDAsIEhlcnY9RTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLj0KZnI+ICA9Cgp3cm90ZToKCj4gSkRLIGphdmFkb2Mgc2VlbXMgdG8gY292ZXIgdGhlICJhZ2dyZWdhdGVkIGphdmFkb2NzIiBzY2VuYXJpbzogaW4gSmF2YT0KIDkKPiB0ZXJtcywgdGhhdCdzICJtdWx0aS1tb2R1bGVzIiA9M0QgZXhhY3RseSB0aGUgY2FzZSBmb3IgSkRLIDkgamF2YWRvYyBbPQoxXQo+IEkgZG9uJ3Qga25vdyB3aGF0J3MgdGhlIGNvbW1hbmQgbGluZSB0byBwcm9kdWNlIHRoaXMsIGJ1dCBsb29rcyBmZWFzaWI9CmxlICA9Cgo+IGZyb20KPiBqYXZhZG9jIHNpZGUKPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUU5Cj4KPiBbMV0gaHR0cHM6Ly9kb2NzLm9yYWNsZS5jb20vamF2YXNlLzkvZG9jcy9hcGkvb3ZlcnZpZXctc3VtbWFyeS5odG1sCj4KPiBMZSBzYW1lZGkgMTggbm92ZW1icmUgMjAxNywgMTc6Mzg6MjMgQ0VUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOgo+PiBMZSBzYW1lZGkgMTggbm92ZW1icmUgMjAxNywgMTc6MTg6MDYgQ0VUIE1hcmsgUmF5bnNmb3JkIGEgPUU5Y3JpdCA6Cj4+ID4gT24gMjAxNy0xMS0xOFQxNjoxNDowNCArMDAwMAo+PiA+Cj4+ID4gTWFyayBSYXluc2ZvcmQgPG9yZy5hcGFjaGUubWF2ZW4udXNlckBpbzdtLmNvbT4gd3JvdGU6Cj4+ID4gPiBQcmVzdW1hYmx5LCB3aXRoIHRoZSBtb2R1bGUtaW5mby5qYXZhIGZpbGVzCj4+ID4gPiBleGNsdWRlZCwgaXQgcmV2ZXJ0cyBiYWNrIHRvIHBsYWluIGNsYXNzcGF0aCBzdHlsZSBKYXZhRG9jLgo+PiA+Cj4+ID4gQWN0dWFsbHksIGl0IHJlc3VsdHMgaW4gc29ydCBvZiB3ZWlyZCBsb29raW5nIEphdmFEb2MgdGhhdCBvbmx5Cj4+ID4gY29udGFpbnMgYSBzaW5nbGUgbW9kdWxlLCBhbmQgY2xhaW1zIHRoYXQgYWxsIHBhY2thZ2VzIGFyZSBpbgo+PiA+Cj4+ID4gdGhhdCBtb2R1bGU6Cj4+ID4gICBodHRwOi8vb3V0bGFuZC5pdy5pbnQuYXJjNy5pbmZvLzIwMTcvMTEvMTgvYXBpZG9jcy9pbmRleC5odG1sCj4+ID4KPj4gPiBUaGF0IGJlaGF2aW91ciBzZWVtcyBsaWtlIGl0IG1pZ2h0IGJlIGEgYnVnIGluIHRoZSBhY3R1YWwgSmF2YURvYyB0PQpvb2wKPj4gPiBpdHNlbGYuCj4+Cj4+IElJVUMsIGphdmFkb2MgZG9lcyBub3QgY292ZXIgYWdncmVnYXRlZCBqYXZhZG9jcyBzY2VuYXJpbz8KPj4KPj4gSSB3b3VsZCBub3QgY2FsbCB0aGF0IGEgYnVnLCBidXQgYSBtaXNzaW5nIGZlYXR1cmUgOikKPj4KPj4gUmVnYXJkcywKPj4KPj4gSGVydj1FOQo+Pgo+Pgo+Pgo+Pgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cgo+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ1NDgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIE5vdiAxOSAxOTozNTo0MCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ1NDgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgRDdDQzUxMDk3MAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDE5IE5vdiAyMDE3IDE5OjM1OjQwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDY5NjQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTkgTm92IDIwMTcgMTk6MzU6MzUgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ2ODk2IGludm9rZWQgYnkgdWlkIDUwMCk7IDE5IE5vdiAyMDE3IDE5OjM1OjM1IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDY4ODUgaW52b2tlZCBieSB1aWQgOTkpOyAxOSBOb3YgMjAxNyAxOTozNTozNSAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxOSBOb3YgMjAxNyAxOTozNTozNSArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCBFOEE4ODFBMDIzNgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTkgTm92IDIwMTcgMTk6MzU6MzQgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IERvd25sb2FkIGxpbmtzClJlZmVyZW5jZXM6IDxvcC55OXVoNG55d2tka2hyckBkZXNrdG9wLTJraHNrNDQ+IDwxNTUyNjAxLnFsbTAzZ0M4SnRAZ2lnYT4KIDwzNDYwNTc2LnNMTVlWcGhPdHVAZ2lnYT4gPDIyMDIyNTQuaWJvTVA1QnRhQUBnaWdhPgpEYXRlOiBTdW4sIDE5IE5vdiAyMDE3IDIwOjM1OjM1ICswMTAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IFF1b3RlZC1QcmludGFibGUKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnk5eXQxbHp6a2RraHJyQGRlc2t0b3AtMmtoc2s0ND4KSW4tUmVwbHktVG86IDwyMjAyMjU0Lmlib01QNUJ0YUFAZ2lnYT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpUaGFua3MgZm9yIHBpY2tpbmcgdGhpcyB1cCBhbmQgdGhlIGdyZWF0IHJlc3VsdHMhCgpSb2JlcnQKCk9uIFN1biwgMTkgTm92IDIwMTcgMTg6NTk6MDAgKzAxMDAsIEhlcnY9RTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLj0KZnI+ICA9Cgp3cm90ZToKCj4gaXNzdWUgZml4ZWQsIGFuZCBldmVuIG1vcmUhISEKPiBldmVyeSBpc3N1ZSB3aXRoIHJld3JpdGUgcnVsZXMgYXJlIGZpeGVkOiB0aGVua3MgdG8gU2ViYiBpZGVhLCBJICA9Cgo+IHJlcGxhY2VkIHRoZQo+IHJld3JpdGUgcnVsZXMgd2l0aCBzeW1saW5rcwo+Cj4gbm93IGl0J3MgZWFzeSB0byB1bmRlcnN0YW5kIChldmVuIHRoZSBtaXJyb3Igc2NyaXB0IGNhbikgYW5kIGV2ZXJ5dGhpbj0KZyAgPQoKPiB3b3Jrcwo+IGFzIGV4cGVjdGVkOiBubyBtb3JlIC9jb21wb25lbnRzIHJlZGlyZWN0aW9uIHdoZW4geW91IGZvcmdvdCB0cmFpbGluZyA9Ci8gID0KCj4gb24gYQo+IGRpcmVjdG9yeQo+Cj4KPiB3b3csIHRoYXQncyBnb29kIHRvIGZpeCBzdWNoIGEgbG9uZ3N0YW5kaW5nIGlzc3VlLi4uCj4KPiBSZWdhcmRzLAo+Cj4gSGVydj1FOQo+Cj4gTGUgc2FtZWRpIDE4IG5vdmVtYnJlIDIwMTcsIDEzOjAzOjQ4IENFVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPj4gZm91bmQgc29tZXRoaW5nIHRoYXQgY2FuIGV4cGxhaW46IHdoZW4gdXNpbmcgdGhlIHJlYWwgdXJsIHN0YXJ0aW5nIHdpPQp0aCAgPQoKPj4gLwo+PiBjb21wb25lbnRzLywgdGhlIENHSSBzY3JpcHQgd29ya3MgWzRdCj4+IEJ1dCBub3Qgd2hlbiB1c2luZyB0aGUgdXNlci12aXNpYmxlIHVybCAodGhhdCB1c2VzIC5odGFjY2VzcyByZXdyaXRlID0KID0KCj4+IHJ1bGVzKQo+PiBbNV0KPj4KPj4gSU5GUkEgSmlyYSBpc3N1ZSBvcGVuZWQ6ICA9Cgo+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0lORlJBLTE1NTEzCj4+Cj4+IFJlZ2FyZHMsCj4+Cj4+IEhlcnY9RTkKPj4KPj4KPj4gWzRdIGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9jb21wb25lbnRzL3BsdWdpbnMvbWF2ZW4tamRlcHJzY2FuLXBsdWdpPQpuLwo+PiBkb3dubG9hZC5jZ2kKPj4KPj4gWzVdIGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zL21hdmVuLWpkZXByc2Nhbi1wbHVnaW4vZG93bmxvYWQuPQpjZ2kKPj4KPj4gTGUgc2FtZWRpIDE4IG5vdmVtYnJlIDIwMTcsIDAxOjE4OjI3IENFVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcml0IDoKPj4gPiBvaywgeGRvYy9kb3dubG9hZC54bWwudm0gd2FzIG1pc3NpbmcgZm9yIHRoaXMgbmV3IHBsdWdpbjogSSBhZGRlZCBpPQp0ICA9Cgo+PiBhbmQKPj4gPiBtYW51YWxseSBhZGRlZCBhIGdlbmVyYXRlZCBodG1sIHJlc3VsdCB0byBzdm5wdWJzdWIgbG9jYXRpb24gWzFdCj4+ID4KPj4gPiB0aGlzIGlzIG5vdCB5ZXQgc3VmZmljaWVudDogSSBkb24ndCBrbm93IHdoeSBkb3dubG9hZC5jZ2kgc2NyaXB0IGRvPQplcyAgPQoKPj4gbm90Cj4+ID4gZmluZCBkb3dubG9hZC5odG1sCj4+ID4KPj4gPiB0aGlzIGlzIHdvcmtpbmcgb24gbWFpbiBNYXZlbiBzaXRlIFsyXSBmcm9tIGl0cyBvd24gc3ZucHVic3ViICA9Cgo+PiBsb2NhdGlvbiBbM10KPj4gPgo+PiA+IGFueSBoaW50Pwo+PiA+Cj4+ID4gUmVnYXJkcywKPj4gPgo+PiA+IEhlcnY9RTkKPj4gPgo+PiA+IFsxXQo+PiA+ICA9Cgo+PiBodHRwczovL3N2bi5hcGFjaGUub3JnL3JlcG9zL2luZnJhL3dlYnNpdGVzL3Byb2R1Y3Rpb24vbWF2ZW4vY29tcG9uZW49CnRzLwo+PiA+IHBsdWdpbnMvbWF2ZW4tamRlcHJzY2FuLXBsdWdpbi8KPj4gPgo+PiA+IFsyXSBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9kb3dubG9hZC5jZ2kKPj4gPgo+PiA+IFszXSAgPQoKPj4gaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy9yZXBvcy9pbmZyYS93ZWJzaXRlcy9wcm9kdWN0aW9uL21hdmVuL2NvbnRlbnQvPQoKPj4gPgo+PiA+IExlIHZlbmRyZWRpIDE3IG5vdmVtYnJlIDIwMTcsIDEyOjQ3OjUxIENFVCBIZXJ2PUU5IEJPVVRFTVkgYSA9RTljcmk9CnQgOgo+PiA+ID4gdGhlIGRlZXBsaW5rIHVzZWQgdG8gd29yazogdGhhdCdzIHRoZSBvYmplY3RpdmUgb2Ygb3VyCj4+ID4gPiAicmVzb3VyY2VzL2Rvd25sb2FkLmNnaSArIHhkb2MvZG93bmxvYWQueG1sLnZtIiBwYXR0ZXJuIHRoYXQgd2FzID0KID0KCj4+IGNyZWF0ZWQKPj4gPiA+IHNvbWUgeWVhcnMgYWdvLgo+PiA+ID4gZG93bmxvYWQuY2dpIGlzIHN1cHBvc2VkIHRvIHVzZSBzdGFuZGFyZCBBU0Ygc2NyaXB0IHRoYXQgdXNlcwo+PiA+ID4gZG93bmxvYWQuaHRtbAo+PiA+ID4gYXMgY29udGVudAo+PiA+ID4KPj4gPiA+IEkgZG9uJ3Qga25vdyB3aHkgdGhpcyBkb2VzIG5vdCB3b3JrIGFueSBtb3JlLgo+PiA+ID4KPj4gPiA+IEkgdmFndWVseSByZW1lbWJlciBzb21ldGhpbmcgYSBmZXcgeWVhcnMgYWdvIGFib3V0IGV4ZWN1dGFibGUgYml0PQosICA9Cgo+PiBzb21lCj4+ID4gPiBoZWFkYWNoZSBJIGhhZCBhdCB0aGF0IHRpbWUgdG8gdHJ5IHRvIGZpeCB3b3JraW5nIHdpdGggaW50ZXJlc3RlZD0KICA9Cgo+PiBwZW9wbGUKPj4gPiA+IChpZS4gbm90IG1hbnksIGJ1dCBTZWJiIHdhcyBwcm9iYWJseSBvbmUgb2YgdGhlIGZldykuIFBlcmhhcHMgaXQnPQpzICA9Cgo+PiB0aW1lCj4+ID4gPiB0bwo+PiA+ID4gcmV3b3JrIG9uIGl0OiBJJ2xsIHNlZSB0b25pZ2h0IGlmIEkgY2FuIGZpbmQgcmVmZXJlbmNlcyBvbiB0aGUgID0KCj4+IGFuYWx5c2lzCj4+ID4gPiBhbHJlYWR5IGRvbmUgYXQgdGhhdCB0aW1lLgo+PiA+ID4KPj4gPiA+IFJlZ2FyZHMsCj4+ID4gPgo+PiA+ID4gSGVydj1FOQo+PiA+ID4KPj4gPiA+IExlIHZlbmRyZWRpIDE3IG5vdmVtYnJlIDIwMTcsIDEyOjI3OjQ5IENFVCBSb2JlcnQgU2Nob2x0ZSBhID1FOWNyPQppdCA6Cj4+ID4gPiA+IFRoaXMgdG9waWMgZGVzZXJ2ZXMgYSBzZXBhcmF0ZSBtYWlsdGhyZWFkLgo+PiA+ID4gPgo+PiA+ID4gPiBRdW90aW5nIFNlYmIgb24gYSBkaWZmZXJlbnQgdGhyZWFkOgo+PiA+ID4gPiAiVGhlIGRvd25sb2FkIGxpbmsgcG9pbnRzIHRvIHRoZSB0b3AtbGV2ZWwgb2YgdGhlIEFTRiBtaXJyb3IgID0KCj4+IHN5c3RlbS4KPj4gPiA+ID4KPj4gPiA+ID4gVGhpcyBtYWtlcyBpdCB2ZXJ5IGhhcmQgdG8gdXNlLiIKPj4gPiA+ID4KPj4gPiA+ID4gQUZBSUsgdGhlIEFTRiBzYXlzIHRoZXJlIHNob3VsZCBiZSBhIGRvd25sb2FkIGJ1dHRvbiBmb3IgZXZlcnkKPj4gPiA+ID4gcmVsZWFzZWQKPj4gPiA+ID4gcHJvZHVjdC4KPj4gPiA+ID4gSW4gY2FzZSBvZiBNYXZlbiB3ZSdyZSB0YWxraW5nIGFib3V0IGEgbG90IG9mIHByb2plY3RzLCBhbmQgID0KCj4+IGRvd25sb2Fkcwo+PiA+ID4gPiBzaG91bGQgYmUgcmVkaXJlY3RlZCB2aWEgYSBtaXJyb3IuCj4+ID4gPiA+IEkgZG9uJ3QgdGhpbmsgaXQgaXMgcG9zc2libGUgdG8gZG8gYSBkZWVwbGluayB0byBhIHNwZWNpZmljICA9Cgo+PiBmb2xkZXIuCj4+ID4gPiA+Cj4+ID4gPiA+IEFsc28sIGluIGNhc2Ugb2YgTWF2ZW4gcGx1Z2lucyBhbmQgb3RoZXIgZGVwZW5kZW5jaWVzIChhbGwgID0KCj4+IGV4Y2x1ZGluZwo+PiA+ID4gPiB0aGUKPj4gPiA+ID4gTWF2ZW4gZGlzdHJpYnV0aW9uIGl0c2VsZikgaXQgaXMga2luZCBvZiBzdHJhbmdlIHRvIHByb3ZpZGUgYSAgPQoKPj4gZG93bmxvYWQKPj4gPiA+ID4gbGluayB3aGVuIHdlIGNvdWxkIGFzc3VtZSB0aGF0IHRoZXkgb25seSB3YW50IHRvIGhhdmUgdGhlCj4+ID4gPiA+IHBsdWdpbi9kZXBlbmRlbmN5IFhNTCBmcmFnbWVudC4KPj4gPiA+ID4KPj4gPiA+ID4gSSBhZ3JlZSB0aGF0IHRoZSBsaW5rIGlzIGtpbmQgb2YgdXNlbGVzcyByaWdodCBub3csIGJ1dCBhbHNvIHRoPQplICA9Cgo+PiBiZXN0Cj4+ID4gPiA+IHdlCj4+ID4gPiA+IGNhbiBkbyB3aGVuIHByb3ZpZGluZyBhIGRpcmVjdCBkb3dubG9hZCBsaW5rLgo+PiA+ID4gPiBJZiB0aGVyZSdzIG5vIHdheSB0byBkbyBhIGRlZXBsaW5rLCBJJ2QgcHJlZmVyIHRvIHJlbW92ZSBpdCBmcm89Cm0gID0KCj4+IHRoZQo+PiA+ID4gPiBwYWdlcwo+PiA+ID4gPiBhbmQgYW5ub3VuY2VtZW50cy4KPj4gPiA+ID4KPj4gPiA+ID4gdGhhbmtzLAo+PiA+ID4gPiBSb2JlcnQKPj4gPiA+ID4KPj4gPiA+ID4gID0KCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KCj4+ID4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+Cj4+ID4gPiAgPQoKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQoKPj4gPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4KPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotLQo+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cgo+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3NjMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIERlYyAxMCAxMDowNjozNyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3NjMtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQTNFNUIxN0Y2OQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDEwIERlYyAyMDE3IDEwOjA2OjM3ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODc1NDggaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgRGVjIDIwMTcgMTA6MDY6MzcgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg3NDY1IGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIERlYyAyMDE3IDEwOjA2OjM3IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODc0NTQgaW52b2tlZCBieSB1aWQgOTkpOyAxMCBEZWMgMjAxNyAxMDowNjozNyAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxMCBEZWMgMjAxNyAxMDowNjozNyArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIENBNDAwMUEwMTg2Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBEZWMgMjAxNyAxMDowNjozNCArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogbWVyZ2luZyBNTkctNjMwOCBkaXNwbGF5IHBhY2thZ2luZwpSZWZlcmVuY2VzOiA8Mjc1MzA0MC44UzE1c2xqN1o1QGdpZ2E+CkRhdGU6IFN1biwgMTAgRGVjIDIwMTcgMTE6MDY6MzIgKzAxMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogUXVvdGVkLVByaW50YWJsZQpGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AuemEwem82ZzNrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkluLVJlcGx5LVRvOiA8Mjc1MzA0MC44UzE1c2xqN1o1QGdpZ2E+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKSSBzdGlsbCB0aGluayBpdCBpcyB1Z2x5IHRvIHVzZSB0aGUgSFIgZm9yIHRoaXMga2luZCBvZiBpbmZvLgpJZiB5b3UgKnJlYWxseSogd2FudCB0aGlzIGluZm8sIEknZCBwcmVmZXIgYSBuZXcgbGluZSwgb2ZmZXJpbmcgbW9yZSBzcGE9CmNlICA9Cgpmb3IgYWRkaXRpb25hbCBpbmZvLgpPdGhlciBvcHRpb24gaXMgdG8gbGVhdmUgaXQgYXMgaXQgaXMuIElmIGRldmVsb3BlcnMgd2FudCBpdCwgdGhleSBjYW4gcHU9CnQgID0KCml0IGluIHRoZSBuYW1lLgoKU28gLTEgZm9yIG1lLgoKUm9iZXJ0CgoKT24gU3VuLCAxMCBEZWMgMjAxNyAxMTowMTo0MSArMDEwMCwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuPQpmcj4gID0KCndyb3RlOgoKPiBpcyB0aGVyZSBhIHNlY29uZGVyIGZvciB0aGlzIGVuaGFuY2VtZW50Pwo+Cj4gQ0k6ICA9Cgo+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tMy54LWplbmtpbnNmaWw9CmUvCj4gam9iL01ORy02MzA4X2Rpc3BsYXlfcGFja2FnaW5nLwo+Cj4gSmlyYSBpc3N1ZTogaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjMwOAo+Cj4gUmVnYXJkcywKPgo+IEhlcnY9RTkKPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NzY2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBEZWMgMTAgMTc6MTI6MDAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzY2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDkxOUI5MTA5MDMKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAxMCBEZWMgMjAxNyAxNzoxMjowMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE3NDU1IGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIERlYyAyMDE3IDE3OjEyOjAwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNzM5MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMCBEZWMgMjAxNyAxNzoxMjowMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE3MzgwIGludm9rZWQgYnkgdWlkIDk5KTsgMTAgRGVjIDIwMTcgMTc6MTI6MDAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMTAgRGVjIDIwMTcgMTc6MTI6MDAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCA5ODY3MDFBMDE4NgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMTAgRGVjIDIwMTcgMTc6MTE6NTkgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IG1lcmdpbmcgTU5HLTYzMDggZGlzcGxheSBwYWNrYWdpbmcKUmVmZXJlbmNlczogPDI3NTMwNDAuOFMxNXNsajdaNUBnaWdhPgogPG9wLnphMHpvNmcza2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PiA8MTIwMDk2NDkuOFpWOU5RY0hiSUBnaWdhPgpEYXRlOiBTdW4sIDEwIERlYyAyMDE3IDE4OjExOjU5ICswMTAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IFF1b3RlZC1QcmludGFibGUKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnphMWpkOXAwa2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgpJbi1SZXBseS1UbzogPDEyMDA5NjQ5LjhaVjlOUWNIYklAZ2lnYT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpPbiBTdW4sIDEwIERlYyAyMDE3IDE3OjQ2OjEwICswMTAwLCBIZXJ2PUU5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS49CmZyPiAgPQoKd3JvdGU6Cgo+IExlIGRpbWFuY2hlIDEwIGQ9RTljZW1icmUgMjAxNywgMTE6MDY6MzIgQ0VUIFJvYmVydCBTY2hvbHRlIGEgPUU5Y3JpdCA9CjoKPj4gSSBzdGlsbCB0aGluayBpdCBpcyB1Z2x5IHRvIHVzZSB0aGUgSFIgZm9yIHRoaXMga2luZCBvZiBpbmZvLgo+PiBJZiB5b3UgKnJlYWxseSogd2FudCB0aGlzIGluZm8sIEknZCBwcmVmZXIgYSBuZXcgbGluZSwgb2ZmZXJpbmcgbW9yZSA9CiA9Cgo+PiBzcGFjZQo+PiBmb3IgYWRkaXRpb25hbCBpbmZvLgo+IHllcywgSSAqcmVhbGx5KiB3YW50IHRoaXMgaW5mbzogdGhlIHByZWNpc2UgZGV0YWlscyBvbiBob3cgdG8gZGlzcGxheSA9Cml0ICA9Cgo+IGlzCj4gbGVzcyBpbXBvcnRhbnQKPgo+PiBPdGhlciBvcHRpb24gaXMgdG8gbGVhdmUgaXQgYXMgaXQgaXMuIElmIGRldmVsb3BlcnMgd2FudCBpdCwgdGhleSBjYW49CiAgPQoKPj4gcHV0Cj4+IGl0IGluIHRoZSBuYW1lLgo+IHRoZSBpZGVhIGlzIHRoYXQgJHtwcm9qZWN0LnBhY2thZ2luZ30gZHJpdmVzIHRoZSBkZWZhdWx0IGJ1aWxkLCBiZWZvcmU9Cgo+IGFkZGl0aW9uYWwgcGx1Z2lucyBiaW5kaW5nczogaXQncyB1c2VmdWwgdG8gZGlzcGxheSBpdCBhcyBpdCBpcyBhIGtleSA9CiA9Cgo+IGluZm8KPgo+Pgo+PiBTbyAtMSBmb3IgbWUuCj4gaG93IGRvIHlvdSB3YW50IHRvIHByb2NlZWQgdG8gY2hvb3NlIHRoZSBiZXN0IGRpc3BsYXk/CgpJcyBpdCBhY2NlcHRhYmxlIHRvIGFkZCBpdCB0byB0aGUgIlJlYWN0b3IgQnVpbGQgT3JkZXIiPyBJdCBoYXMgZW5vdWdoICA9CgpzcGFjZSBmb3IgdGhpcyBraW5kIG9mIGluZm9ybWF0aW9uLgoKPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUU5Cj4KPj4KPj4gUm9iZXJ0Cj4+Cj4+Cj4+IE9uIFN1biwgMTAgRGVjIDIwMTcgMTE6MDE6NDEgKzAxMDAsIEhlcnY9RTkgQk9VVEVNWSAgPQoKPj4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4KPj4gd3JvdGU6Cj4+ID4gaXMgdGhlcmUgYSBzZWNvbmRlciBmb3IgdGhpcyBlbmhhbmNlbWVudD8KPj4gPgo+PiA+IENJOgo+PiA+ICA9Cgo+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLTMueC1qZW5raW5zZmk9CmxlLwo+PiA+IGpvYi9NTkctNjMwOF9kaXNwbGF5X3BhY2thZ2luZy8KPj4gPgo+PiA+IEppcmEgaXNzdWU6IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYzMDgKPj4gPgo+PiA+IFJlZ2FyZHMsCj4+ID4KPj4gPiBIZXJ2PUU5Cj4+ID4KPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotLQo+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cgo+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPgo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3NjgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIERlYyAxMCAxODoyNzowMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3NjgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQkQ3RTcxMEE1QwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDEwIERlYyAyMDE3IDE4OjI3OjAxICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODAwODIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTAgRGVjIDIwMTcgMTg6MjY6NTYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgwMDAyIGludm9rZWQgYnkgdWlkIDUwMCk7IDEwIERlYyAyMDE3IDE4OjI2OjU2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNzk5OTAgaW52b2tlZCBieSB1aWQgOTkpOyAxMCBEZWMgMjAxNyAxODoyNjo1NiAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAxMCBEZWMgMjAxNyAxODoyNjo1NiArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDlFQTZCMUEwMDNFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAxMCBEZWMgMjAxNyAxODoyNjo1MyArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogbWVyZ2luZyBNTkctNjMwOCBkaXNwbGF5IHBhY2thZ2luZwpSZWZlcmVuY2VzOiA8Mjc1MzA0MC44UzE1c2xqN1o1QGdpZ2E+CiA8b3AuemEwem82ZzNrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+IDwxMjAwOTY0OS44WlY5TlFjSGJJQGdpZ2E+CiA8b3AuemExamQ5cDBrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CiA8Q0ErblBuTXdZcy01U1QwUGtqdXh4MDJzSnNQXzB2VGcwQkhVVnpPajYtQlZNUGtrbXJ3QG1haWwuZ21haWwuY29tPgpEYXRlOiBTdW4sIDEwIERlYyAyMDE3IDE5OjI2OjUzICswMTAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IFF1b3RlZC1QcmludGFibGUKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnphMW11M3Fia2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgpJbi1SZXBseS1UbzogPENBK25Qbk13WXMtNVNUMFBranV4eDAyc0pzUF8wdlRnMEJIVVZ6T2o2LUJWTVBra21yd0BtYWlsLmdtYWlsLmNvbT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpPbiBTdW4sIDEwIERlYyAyMDE3IDE4OjM4OjU1ICswMTAwLCBTdGVwaGVuIENvbm5vbGx5ICA9Cgo8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cgo+IE9uIFN1biAxMCBEZWMgMjAxNyBhdCAxNzoxMiwgUm9iZXJ0IFNjaG9sdGUgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPiB3cm89CnRlOgo+Cj4+IE9uIFN1biwgMTAgRGVjIDIwMTcgMTc6NDY6MTAgKzAxMDAsIEhlcnY9QzM9QTkgQk9VVEVNWSAgPQoKPj4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4gd3JvdGU6Cj4+Cj4+ID4gTGUgZGltYW5jaGUgMTAgZD1DMz1BOWNlbWJyZSAyMDE3LCAxMTowNjozMiBDRVQgUm9iZXJ0IFNjaG9sdGUgYSA9QzM9Cj1BOWNyaXQgOgo+PiA+PiBJIHN0aWxsIHRoaW5rIGl0IGlzIHVnbHkgdG8gdXNlIHRoZSBIUiBmb3IgdGhpcyBraW5kIG9mIGluZm8uCj4+ID4+IElmIHlvdSAqcmVhbGx5KiB3YW50IHRoaXMgaW5mbywgSSdkIHByZWZlciBhIG5ldyBsaW5lLCBvZmZlcmluZyBtbz0KcmUKPj4gPj4gc3BhY2UKPj4gPj4gZm9yIGFkZGl0aW9uYWwgaW5mby4KPj4gPiB5ZXMsIEkgKnJlYWxseSogd2FudCB0aGlzIGluZm86IHRoZSBwcmVjaXNlIGRldGFpbHMgb24gaG93IHRvIGRpc3BsPQpheSAgPQoKPj4gaXQKPj4gPiBpcwo+PiA+IGxlc3MgaW1wb3J0YW50Cj4+ID4KPj4gPj4gT3RoZXIgb3B0aW9uIGlzIHRvIGxlYXZlIGl0IGFzIGl0IGlzLiBJZiBkZXZlbG9wZXJzIHdhbnQgaXQsIHRoZXkgPQpjYW4KPj4gPj4gcHV0Cj4+ID4+IGl0IGluIHRoZSBuYW1lLgo+PiA+IHRoZSBpZGVhIGlzIHRoYXQgJHtwcm9qZWN0LnBhY2thZ2luZ30gZHJpdmVzIHRoZSBkZWZhdWx0IGJ1aWxkLCBiZWY9Cm9yZQo+PiA+IGFkZGl0aW9uYWwgcGx1Z2lucyBiaW5kaW5nczogaXQncyB1c2VmdWwgdG8gZGlzcGxheSBpdCBhcyBpdCBpcyBhIGs9CmV5Cj4+ID4gaW5mbwo+PiA+Cj4+ID4+Cj4+ID4+IFNvIC0xIGZvciBtZS4KPj4gPiBob3cgZG8geW91IHdhbnQgdG8gcHJvY2VlZCB0byBjaG9vc2UgdGhlIGJlc3QgZGlzcGxheT8KPj4KPj4gSXMgaXQgYWNjZXB0YWJsZSB0byBhZGQgaXQgdG8gdGhlICJSZWFjdG9yIEJ1aWxkIE9yZGVyIj8gSXQgaGFzIGVub3VnPQpoCj4+IHNwYWNlIGZvciB0aGlzIGtpbmQgb2YgaW5mb3JtYXRpb24uCj4KPgo+IEk9RTI9ODA9OTlkIGxpa2UgaXQgaW4gYm90aCBwbGFjZXMuIDstKQoKU2VlbXMgbGlrZSBJJ20gb25lIG9mIHRoZSBmZXcgd2hvIGRvZXNuJ3QgdW5kZXJzdGFuZCB3aGF0IHRoaXMgaW5mbyBhZGRzPQouCklmIGl0IHNheXMgcG9tLCBpdCdsbCBydW4gKmF0IGxlYXN0KiB0aGUgbS1pbnN0YWxsLXAgYW5kIG0tZGVwbG95LXAuCklmIEkgb25seSBzZWUgdGhlIG0taW5zdGFsbC1wIGFuZCBtLWRlcGxveS1wIGJlaW5nIGV4ZWN1dGVkLCBpdCBtdXN0IGJlID0KYSAgPQoKcG9tLgpJbiBnZW5lcmFsIEkgY2FuIHNlZSBieSB0aGUgbmFtZSB3aGF0IHdpbGwgaGFwcGVuLgoKSWYgd2UncmUgZGlzY3Vzc2luZyBtb2R1bGUgImhlYWRlciIgaW5mb3JtYXRpb246CldoYXQgSSBhbSBtaXNzaW5nIGlzIGEgdGltZXN0YW1wIHdoZW4gdGhlIG1vZHVsZSBzdGFydGVkLgpSZWFzb246IGluIGNhc2Ugb2YgYSBsb25nIGJ1aWxkIEkgd291bGQgbGlrZSB0byBiZSBhYmxlIHRvIGVzdGltYXRlIGlmIHQ9CmhlICA9CgpidWlsZCBpcyBzdGlsbCBhY3RpdmUgb3IgaGFuZ2luZy4KQWxzbyBpbiBzb21lIGNhc2VzIEkgd291bGQgbGlrZSB0byBzZWUgR0FWIGluc3RlYWQgb2YgdGhlIG5hbWUsIGJlY2F1c2UgPQogPQoKdGhhdCBjYW4gaGVscCBpbnZlc3RpZ2F0aW5nIGluIGNhc2Ugb2YgYSBtdWx0aW1vZHVsZSBwcm9qZWN0IHdoZW4gdGhlcmUgPQogPQoKYXJlIGlzc3VlcyB3aXRoIHNvbWUgZGVwZW5kZW5jeSAoPTNER0FWKS4KClNvIHRoZXJlJ3MgZW5vdWdoIHRvIHRoaW5rIG9mIHRvIGZpbGwgYW4gZXh0cmEgcm93IDspCgo+Cj4KPj4KPj4gPgo+PiA+IFJlZ2FyZHMsCj4+ID4KPj4gPiBIZXJ2PUMzPUE5Cj4+ID4KPj4gPj4KPj4gPj4gUm9iZXJ0Cj4+ID4+Cj4+ID4+Cj4+ID4+IE9uIFN1biwgMTAgRGVjIDIwMTcgMTE6MDE6NDEgKzAxMDAsIEhlcnY9QzM9QTkgQk9VVEVNWQo+PiA+PiA8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+PiA+Pgo+PiA+PiB3cm90ZToKPj4gPj4gPiBpcyB0aGVyZSBhIHNlY29uZGVyIGZvciB0aGlzIGVuaGFuY2VtZW50Pwo+PiA+PiA+Cj4+ID4+ID4gQ0k6Cj4+ID4+ID4KPj4gPj4KPj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi0zLngtamVua2luc2ZpPQpsZS8KPj4gPj4gPiBqb2IvTU5HLTYzMDhfZGlzcGxheV9wYWNrYWdpbmcvCj4+ID4+ID4KPj4gPj4gPiBKaXJhIGlzc3VlOiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MzA4Cj4+ID4+ID4KPj4gPj4gPiBSZWdhcmRzLAo+PiA+PiA+Cj4+ID4+ID4gSGVydj1DMz1BOQo+PiA+PiA+Cj4+ID4+ID4gID0KCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KCj4+ID4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4+Cj4+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLS0tCj4+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4gPgo+PiA+Cj4+ID4KPj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotLQo+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cgo+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Cj4+IC0tCj4gU2VudCBmcm9tIG15IHBob25lCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ2NzAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIE5vdiAyOSAyMDoxMjo1NCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ2NzAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNTBFRTAxNzY4MQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDI5IE5vdiAyMDE3IDIwOjEyOjU0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODYxNTkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjkgTm92IDIwMTcgMjA6MTI6NTQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg2MDI1IGludm9rZWQgYnkgdWlkIDUwMCk7IDI5IE5vdiAyMDE3IDIwOjEyOjU0IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODYwMTQgaW52b2tlZCBieSB1aWQgOTkpOyAyOSBOb3YgMjAxNyAyMDoxMjo1MyAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAyOSBOb3YgMjAxNyAyMDoxMjo1MyArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQuZHluYW1pYy56aWdnby5ubCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDUyNDFDMUEwMDhDCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyOSBOb3YgMjAxNyAyMDoxMjo1MyArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogYmVhbSBsZWF2aW5nIG1hdmVuLCBhbnl0aGluZyBkb2FibGU/ClJlZmVyZW5jZXM6IDxDQUNMRT03Tmt5aWdZeG1oSnlUQzl1N1IzdFpYaEVvUE9BcGQ4ak9qR3VVRDIxWXFfeGdAbWFpbC5nbWFpbC5jb20+IDwyMDE3MTEyNzIyMDE1My4yRTRCQjI5QzQzQzlAZGQxNzMzMi5rYXNzZXJ2ZXIuY29tPiA8Q0FDTEU9N1BvV2pHcj0tNUNER19idEo4QU8xbWlhVjVRSCtmcktmeHZab0c3Rlc4LXNnQG1haWwuZ21haWwuY29tPiA8MjQxMzc5NS55aHZwemx2NVF4QGdpZ2E+CkRhdGU6IFdlZCwgMjkgTm92IDIwMTcgMjE6MTI6NTMgKzAxMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogUXVvdGVkLVByaW50YWJsZQpGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AuemFoZWZycG9rZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkluLVJlcGx5LVRvOiA8MjQxMzc5NS55aHZwemx2NVF4QGdpZ2E+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKT24gVHVlLCAyOCBOb3YgMjAxNyAwNzo0NjowNyArMDEwMCwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuPQpmcj4gID0KCndyb3RlOgoKPj4gV2l0aCBzbyBtdWNoIGRpZmZlcmVuY2UgSSBzdHJvbmdseSB0aGluayB0aGVyZSBhcmUgcm9vbSBmb3IgaW1wcm92ZW1lPQpudCAgPQoKPj4gYnV0Cj4+IGZhaWwgdG8gc2VlIGhvdyBtYXZlbiBncmFwaCBjb21wdXRhdGlvbiBjYW4gbG9vayB0aGF0IGJhZCA6KC4KPiBJTUhPLCB2aXN1YWxpemluZyB0aGF0IGdyYXBoIGFuZCB0aGUgZWZmZWN0aXZlIHRpbWUgb24gZWFjaCBidWlsZCBzdGVwPQogID0KCj4gaXMgdGhlCj4gZmlyc3QgdGhpbmcgdG8gZG8gYmVmb3JlIHRyeWluZyB0byBjaGFuZ2UgYW55dGhpbmcKPiBJdCdzIG9uIG15IFRPRE8gbGlzdCBmb3IgYSBsb25nIHRpbWU6IGhhdmluZyBzb21lIGNvbW1vbiB3b3JrIG9uIGl0ICA9Cgo+IHdvdWxkIGhlbHAKClllcywgSSBhZ3JlZSBvbiB0aGlzIG9uZS4gSSB0YWxrZWQgd2l0aCBBcm5hdWQgYWJvdXQgYWRkaW5nIHNldmVyYWwgID0KCmhvb2tzL2V4dGVuc2lvbnBvaW50cy8uLi4gaW4gTWF2ZW4gZm9yIGVhc2llciBzdXBwb3J0IGJ5IENJIHNlcnZlcnMgKGp1cz0KdCAgPQoKbGlrZSBNMy4wIHdhcyBhbiBhcmNoaXRlY3R1cmFsIHVwZGF0ZSBmb3IgYmV0dGVyIHN1cHBvcnQgYnkgSURFcykuCktub3dpbmcgdGhlIHRpbWUgcGVyIGV4ZWN1dGlvbi1ibG9jayBpcyBpbnRlcmVzdGluZyBpbmZvLgpUaGF0IG1pZ2h0IGluY2x1ZGUgYmVpbmcgYWJsZSB0byBjYXB0dXJlIE1vam9FeGNlcHRpb25zLCBzbyB0aGUgZXZpbCAgPQoKamVua2lucy1tYXZlbi1wbHVnaW4gZG9lc24ndCBoYXZlIHRvIGNoYW5nZSB0aGUgY29uZmlndXJhdGlvbiBvZiBzdXJlZmlyPQplICA9CgphdCBydW50aW1lLiBBbmQgaXQgbWlnaHQgaGVscCBNSU5WT0tFUi0yMjkuCgpSb2JlcnQKCj4KPiBSZWdhcmRzLAo+Cj4gSGVydj1FOQo+Cj4gTGUgbWFyZGkgMjggbm92ZW1icmUgMjAxNywgMDc6MDQ6MDQgQ0VUIFJvbWFpbiBNYW5uaS1CdWNhdSBhID1FOWNyaXQgOj0KCj4+IExlIDI3IG5vdi4gMjAxNyAyMzowMiwgIk1hbmZyZWQgTW9zZXIiIDxtYW5mcmVkQHNpbXBsaWdpbGl0eS5jb20+IGEgID0KCj4+ID1FOWNyaXQgOgo+Pgo+PiBKdXN0IG15IDJjIGFzIGEgbG9uZyB0ZXJtcyBNYXZlbiB1c2VyIGFuZCBjb21taXR0ZXIuLgo+Pgo+PiBQZW9wbGUgaGF2ZSBiZWVuIG1vdmluZyBmcm9tIG9uZSBidWlsZCB0b29sIHRoZSBvdGhlciBmb3IgeWVhcnMuIFRoYXQ9Cgo+PiBpbmNsdWRlcyB0byBHcmFkbGUsIHRvIE1hdmVuIGFuZCB0byBhbGwgc29ydHMgb2Ygb3RoZXJzIHN0dWZmIGFuZCBiYWM9CmsuICA9Cgo+PiBJZgo+PiB0aGUgQmVhbSBwcm9qZWN0IHRoaW5rcyB0aGV5IHdpbGwgZ2V0IHNpZ25pZmljYW50IGltcHJvdmVtZW50cyBmb3IgdGg9CmVpcgo+PiBidWlsZCB0aW1lcyBhbmQgdGhleSB3YW50IHRvIG1pZ3JhdGUuLiBsZXQgdGhlbS4gVGhleSB3aWxsIGhhdmUgdG8gID0KCj4+IGxlYXJuIGEKPj4gd2hvbGUgYnVuY2ggb2YgZGlmZmVyZW50IHRoaW5ncyBhbmQgc2VlIHNvbWUgYWR2YW50YWdlcyBhcyB3ZWxsIGFzIGxvPQp0ICA9Cgo+PiBvZgo+PiBkaXNhZHZhbnRhZ2VzLgo+Pgo+Pgo+PiBUaGV5IGFscmVhZHkgaGF2ZSBncmFkbGUgYnVpbGQgZnVuY3Rpb25hbC4KPj4KPj4KPj4KPj4gRnJvbSBteSBwZXJzcGVjdGl2ZSB0aGUgYnVpbGQgdGltZSBpcyBOT1Qgc2lnbmlmaWNhbnRseSBmYXN0ZXIgd2l0aCAgPQoKPj4gR3JhZGxlCj4+IGFuZCBkZXBlbmRzIGEgTE9UIG9uIHdoYXQgeW91ciBidWlsZCBhY3R1YWxseSBkb2VzLiBNb3JlIGltcG9ydGFudGx5ID0KdGhlCj4+IGludGVncmF0aW9uIHdpdGggSURFcyBhbmQgb3RoZXIgdG9vbHMgaXMgYSBsb3Qgd29yc2UgaW4gbWFueSBhc3BlY3RzLj0KCj4+Cj4+Cj4+IEl0IGlzIGZvciBtdWx0aW1vZHVrZSBwcm9qZWN0LiBJIGRpZG50IHJlcHJvZHVjZSB0aGVpciBmaWd1cmVzIGJ1dCAgPQoKPj4gc2tpcHBpbmcKPj4gdGhlaXIgcHl0aG9uIHBhcnQgaXQgaXMgcmVhbGx5IGxpa2UgMzAlIGZhc3RlciBmb3IgbWUgZm9yIHRoZSBzYW1lIHRoPQpnLgo+Pgo+Pgo+Pgo+PiBBcyBsb25nIGFzIHRoZXkgY2FuIG1ha2Ugc3VyZSB0aGF0IHRoZWlyIGJpbmFyaWVzIGFyZSBwdWJsaXNoZWQgc28gdGg9CmF0ICA9Cgo+PiBhbnkKPj4gdXNlciBjYW4gZWFzaWx5IGNvbnN1bWUgdGhlbSAoZS5hLiB0aGV5IHB1Ymxpc2ggcHJvcGVyIGJpbmFyaWVzIGFuZCBwPQpvbQo+PiBmaWxlcyB0byB0aGUgQ2VudHJhbCBSZXBvc2l0b3J5KSBJIGhhdmUgbm8gb2JqZWN0aW9uLgo+Pgo+PiBPZiBjb3Vyc2UgaWYgdGhleSB3b3VsZCBzdGVwIHVwIGFuZCBoZWxwIHVzIHdpdGggTWF2ZW4gYW5kIG1ha2UgaXQgID0KCj4+IGJldHRlcgo+PiB0aGF0IHdvdWxkIGNlcnRhaW5seSBiZSBiZXR0ZXIgdGhhbiBwdXR0aW5nIGVmZm9ydCBpbnRvIG1pZ3JhdGluZy4uLiA9CmJ1dAo+PiB0aGF0cyBhIGRpZmZlcmVudCBzdG9yeS4KPj4KPj4gQW5kIGFub3RoZXIgb25lIG9mIGNvdXJzZSBpcyB0aGF0IEdyYWRsZSBpcyBvcGVuIHNvdXJjZSBwcm9qZWN0IG1vc3RsPQp5Cj4+IHNwb25zb3JlZCBieSBhIHNpbmdsZSBjb21wYW55IGFuZCBoZW5jZSB1bmRlciBhIHZlcnkgZGlmZmVyZW50IGNvbnRybz0KbAo+PiBjb21wYXJlZCB0byBNYXZlbi4uCj4+Cj4+Cj4+Cj4+IEFncmVlIGJpdCAvMiAtIGZvciBtb3N0IG90aGVyIHBlb3BsZSAtIHRoZSBidWlsZCB0aW1lIHdoaWNoIGlzICA9Cgo+PiBzaWduaWZpY2FudAo+PiAoaXQgaXMgbm90IGEgY29tbW1vbnMgcHJvamVjdCB5b3UgY2FuIGJ1aWxkIGluIGxlc3MgdGhhbiA1bW4gOykpLgo+Pgo+PiBXaXRoIHNvIG11Y2ggZGlmZmVyZW5jZSBJIHN0cm9uZ2x5IHRoaW5rIHRoZXJlIGFyZSByb29tIGZvciBpbXByb3ZlbWU9Cm50ICA9Cgo+PiBidXQKPj4gZmFpbCB0byBzZWUgaG93IG1hdmVuIGdyYXBoIGNvbXB1dGF0aW9uIGNhbiBsb29rIHRoYXQgYmFkIDooLgo+Pgo+Pgo+PiBNYW5mcmVkCj4+Cj4+IFJvbWFpbiBNYW5uaS1CdWNhdSB3cm90ZSBvbiAyMDE3LTExLTI3IDEzOjQzOgo+PiA+IERvZXNudCBjaGFuZ2UgYW55dGhpbmcgc2lnbmlmaWNhdGl2ZSAtIHRoaXMgaXMgbXkgc2V0dXAuCj4+ID4KPj4gPiBMZSAyNyBub3YuIDIwMTcgMjI6MDEsICJJZ29yIEZlZG9yZW5rbyIgPGlnb3JAaWZlZG9yZW5rby5jb20+IGEgPUU5PQpjcml0ICA9Cgo+PiA6Cj4+ID4+IEkgd291bGRuJ3QgYm90aGVyIHdpdGggVGFrYXJpIGxvY2FsIHJlcG9zaXRvcnksIGl0J3MgYnJva2VuIGJyb2tlbj0KLCAgPQoKPj4gc2VlCj4+ID4+IFsxXSBhbmQgWzJdLiBEZWZhdWx0IEFldGhlciBsb2NhbCByZXBvc2l0b3J5IGltcGwgaXMgdGhyZWFkLXNhZmUgID0KCj4+IGVub3VnaCwKPj4gPj4gYXQgbGVhc3Qgd2hlbiBsb2NhbCByZXBvc2l0b3J5IGlzIHVzZWQgZnJvbSBzaW5nbGUtcHJvY2Vzcwo+PiA+PiBtdWx0aS10aHJlYWRlZCBidWlsZC4KPj4gPj4KPj4gPj4gWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS90YWthcmkvdGFrYXJpLWxvY2FsLXJlcG9zaXRvcnkvaXNzdWVzLzQKPj4gPj4gWzJdIGh0dHBzOi8vZ2l0aHViLmNvbS90YWthcmkvdGFrYXJpLWxvY2FsLXJlcG9zaXRvcnkvaXNzdWVzLzUKPj4gPj4KPj4gPj4gLS0KPj4gPj4gUmVnYXJkcywKPj4gPj4gSWdvcgo+PiA+Pgo+PiA+PiBPbiBNb24sIE5vdiAyNywgMjAxNywgYXQgMDM6MjggUE0sIE1pY2hhZWwgT3NpcG92IHdyb3RlOgo+PiA+PiA+IEkgcmVhbGx5IHdvdWxkIGxpa2UgdG8gc2VlIHRoZSBzYW1lIG51bWJlcnMgd2l0aCBUYWthcmkgU21hcnQgID0KCj4+IEJ1aWxkZXIKPj4gPj4gPiBhbmQgdGhyZWFkLXNhZmUgbG9jYWwgcmVwbyBtb2R1bGUuCj4+ID4+ID4KPj4gPj4gPiBBbSAyMDE3LTExLTI3IHVtIDIwOjUyIHNjaHJpZWIgUm9tYWluIE1hbm5pLUJ1Y2F1Ogo+PiA+PiA+ID4gRXZlbiBkb2luZyBpdCB0aGUgZGlmZmVyZW5jZSBpcyBzaWduaWZpY2F0aXZlLiBUaGUgcGFyYWxsZWxpc209CiAgPQoKPj4gYW5kCj4+ID4+ID4gPiBncmFwaCBjb21wdXRhdGlvbiAobGlua2VkIHRvIHRoZSBsb2NhbCByZXBvIHRocmVhZCBzYWZldHkpIGlzID0KdGhlCj4+Cj4+IG1haW4KPj4KPj4gPj4gPiA+IGRyYXdiYWNrIG9mIG1hdmVuIGl0IHNlZW1zLgo+PiA+PiA+ID4KPj4gPj4gPiA+IFJvbWFpbiBNYW5uaS1CdWNhdQo+PiA+PiA+ID4gQHJtYW5uaWJ1Y2F1IHwgIEJsb2cgfCBPbGQgQmxvZyB8IEdpdGh1YiB8IExpbmtlZEluCj4+ID4+ID4gPgo+PiA+PiA+ID4gMjAxNy0xMS0yNyAyMDo0NyBHTVQrMDE6MDAgTWljaGFlbCBPc2lwb3YgPG1pY2hhZWxvQGFwYWNoZS5vcmc9Cj46Cj4+ID4+ID4gPj4gQW0gMjAxNy0xMS0yNyB1bSAyMDoyNCBzY2hyaWViIFJvbWFpbiBNYW5uaS1CdWNhdToKPj4gPj4gPiA+Pj4gSGkgZ3V5cywKPj4gPj4gPiA+Pj4KPj4gPj4gPiA+Pj4gYW55dGhpbmcgZG9hYmxlIG9uIG1hdmVuIHNpZGUgKGVpdGhlciB0dW5pbmcgb3IgY29kZSBjaGFuZ2VzPQopICA9Cgo+PiB0byBiZQo+PiA+Pgo+PiA+PiBhcwo+PiA+Pgo+PiA+PiA+ID4+PiBnb29kIGFzIGdyYWRsZSBvbiBiZWFtIHByb2plY3QuIFRoZSBwcm9qZWN0IGlzIGdvaW5kIHRvIGxlYXY9CmUgID0KCj4+IG1hdmVuCj4+ID4+Cj4+ID4+IGFzCj4+ID4+Cj4+ID4+ID4gPj4+IGJ1aWxkIHRvb2wgKFsxXSkgYW5kIEkgdGhpbmsgaXQgaXMgdmVyeSBiYWQgZm9yIDEuIHRoZSAgPQoKPj4gY29tbXVuaXR5Cj4+Cj4+IGFuZAo+Pgo+PiA+PiA+ID4+PiAyLiBBU0YgYXMgYW4gZWNvc3lzdGVtLgo+PiA+PiA+ID4+Pgo+PiA+PiA+ID4+PiBbMV0KPj4gPj4gPiA+Pj4gID0KCj4+IGh0dHBzOi8vbGlzdHMuYXBhY2hlLm9yZy90aHJlYWQuaHRtbC82ZDZmN2ZmYzY2NjIyZGIxZGQ0NTllMTcwNGMzYTUKPj4gPj4KPj4gPj4gZDhhNGJjMjljMmQ5YzBiNjAzNTRmZDNiNmFAJTNDZGV2LmJlYW0uYXBhY2hlLm9yZyUzRQo+PiA+Pgo+PiA+PiA+ID4+IERpZCB0aGV5IGRpc2FibGUgdGhlIGJ1aWxkIGRhZW1vbj8gSWYgbm90LCBpdCBpcyBub3QgYSBmYWlyCj4+ID4+Cj4+ID4+IGNvbXBhcnNpb24uCj4+ID4+Cj4+ID4+ID4gPj4gTWljaGFlbAo+PiA+PiA+ID4KPj4gPj4gPiA+ICA9Cgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cgo+PiA+PiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4gPj4gPgo+PiA+PiA+ICA9Cgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cgo+PiA+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+Pgo+PiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0tLQo+PiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDY3My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgTm92IDI5IDIxOjQzOjI4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDY3My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAwM0ZFMTE3OUZBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMjkgTm92IDIwMTcgMjE6NDM6MjggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAzMDgzMCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOSBOb3YgMjAxNyAyMTo0MzoyNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzA3MjggaW52b2tlZCBieSB1aWQgNTAwKTsgMjkgTm92IDIwMTcgMjE6NDM6MjcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMDcxNyBpbnZva2VkIGJ5IHVpZCA5OSk7IDI5IE5vdiAyMDE3IDIxOjQzOjI3IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDI5IE5vdiAyMDE3IDIxOjQzOjI3ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5keW5hbWljLnppZ2dvLm5sICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgMDJFRjcxQTAwMTkKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDI5IE5vdiAyMDE3IDIxOjQzOjI2ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBNYXZlbiBJbmRleGVyIDYuMC4wClJlZmVyZW5jZXM6IDxDQVBMcFJRTDY9M3FrekFlPUZnUnJlaGVHeGZraXlkVXFCZHIteURDVm9HZVpUenJxYkFAbWFpbC5nbWFpbC5jb20+CkRhdGU6IFdlZCwgMjkgTm92IDIwMTcgMjI6NDM6MjQgKzAxMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogUXVvdGVkLVByaW50YWJsZQpGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AuemFoaW1tMnBrZGtocnJAZGVza3RvcC0ya2hzazQ0LmR5bmFtaWMuemlnZ28ubmw+CkluLVJlcGx5LVRvOiA8Q0FQTHBSUUw2PTNxa3pBZT1GZ1JyZWhlR3hma2l5ZFVxQmRyLXlEQ1ZvR2VaVHpycWJBQG1haWwuZ21haWwuY29tPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCisxCgo2LjAuMCBkb2N1bWVudGF0aW9uIGhhcyBiZWVuIHN0YWdlZCBhcyB3ZWxsLgoKUm9iZXJ0CgpPbiBUdWUsIDI4IE5vdiAyMDE3IDExOjIwOjMxICswMTAwLCBUYW09RTFzIENzZXJ2ZW49RTFrIDx0YW1hc0Bjc2VydmVuYWs9Ci5uZXQ+ICA9Cgp3cm90ZToKCj4gW1ZPVEVdIFJlbGVhc2UgTWF2ZW4gSW5kZXhlciA2LjAuMAo+Cj4gSGksCj4KPiBXZSBzb2x2ZWQgMjUgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZWN0SWQ9M0QxMjM9CjE3NTIzJnZlcnNpb249M0QxMjMzMDgwMgo+Cj4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3Byb2plY3RzL01JTkRFWEVSL2lzc3Vlcy9NSU5ERVhFUi04MT9maT0KbHRlcj0zRGFsbG9wZW5pc3N1ZXMKPgo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzc5Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc2VydmljZS9sb2NhbC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3OS9jbz0KbnRlbnQvb3JnL2FwYWNoZS9tYXZlbi9pbmRleGVyL21hdmVuLWluZGV4ZXIvNi4wLjAvbWF2ZW4taW5kZXhlci02LjAuMC1zPQpvdXJjZS1yZWxlYXNlLnppcAo+Cj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gbWF2ZW4taW5kZXhlci02LjAuMC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMToKPiAyNzk5MzlmOGRlZmYwZjU1MTgzNjRjMDZkYTg0N2IzMmFiNjEwOGVkCj4KPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvbWF2ZW4taW5kZXhlci1hcmNoaXZlcy9tYXZlbi1pbmRleGVyLUxBVEVTVC8KPgo+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG09CmwKPgo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4KPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDcyNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gRGVjICAzIDIxOjUwOjQ2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDcyNy1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA5ODNBMTEwNjE3Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgIDMgRGVjIDIwMTcgMjE6NTA6NDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0MDY1IGludm9rZWQgYnkgdWlkIDUwMCk7IDMgRGVjIDIwMTcgMjE6NTA6NDYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM5NjggaW52b2tlZCBieSB1aWQgNTAwKTsgMyBEZWMgMjAxNyAyMTo1MDo0NiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM5NTIgaW52b2tlZCBieSB1aWQgOTkpOyAzIERlYyAyMDE3IDIxOjUwOjQ2IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDAzIERlYyAyMDE3IDIxOjUwOjQ2ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgNDAyQTgxQTAwNDQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sICAzIERlYyAyMDE3IDIxOjUwOjQ0ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzCkRhdGU6IFN1biwgMDMgRGVjIDIwMTcgMjI6NTA6NDIgKzAxMDAKU3ViamVjdDogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIEphdmFkb2MgUGx1Z2luIHZlcnNpb24gMy4wLjAgKHRha2UgMykKVG86ICJBcGFjaGUgTWF2ZW4gRGV2IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ck1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnphb3htc281a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCkhpLAoKV2Ugc29sdmVkIDI3IGlzc3VlczoKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3Byb2plY3RJZD0xMjMxNzUyOSZ2ZXJzaW9uPTEyMzMwODc1JnN0eWxlTmFtZT1UZXh0CgpUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPXByb2plY3QlMjAlM0QlMjAxMjMxNzUyOSUyMEFORCUyMHN0YXR1cyUyMCUzRCUyME9wZW4lMjBPUkRFUiUyMEJZJTIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQwoKU3RhZ2luZyByZXBvOgpodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzgwLwpodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9zZXJ2aWNlL2xvY2FsL3JlcG9zaXRvcmllcy9tYXZlbi0xMzgwL2NvbnRlbnQvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL21hdmVuLWphdmFkb2MtcGx1Z2luLzMuMC4wL21hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wLXNvdXJjZS1yZWxlYXNlLnppcAoKU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cm1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOiAgCmU5N2VhNzQ0ZTBmMGY3YzAyNWUyOTRlNThiMTQ4YTE3OGIzZDI0ZGEKClN0YWdpbmcgc2l0ZToKaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tamF2YWRvYy1wbHVnaW4tTEFURVNULwoKR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCgpWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgoKWyBdICsxClsgXSArMApbIF0gLTEKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDczOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgRGVjICA1IDE4OjIyOjM2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDczOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBEODY3NzE3NkE5Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgIDUgRGVjIDIwMTcgMTg6MjI6MzYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4NjIxNCBpbnZva2VkIGJ5IHVpZCA1MDApOyA1IERlYyAyMDE3IDE4OjIyOjM2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4NjEzNiBpbnZva2VkIGJ5IHVpZCA1MDApOyA1IERlYyAyMDE3IDE4OjIyOjM2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODYxMTkgaW52b2tlZCBieSB1aWQgOTkpOyA1IERlYyAyMDE3IDE4OjIyOjM2IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDA1IERlYyAyMDE3IDE4OjIyOjM2ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgQ0NCMkUxQTAwMkIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsICA1IERlYyAyMDE3IDE4OjIyOjM1ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gSmF2YWRvYyBQbHVnaW4gdmVyc2lvbiAzLjAuMCAodGFrZSAzKQpSZWZlcmVuY2VzOiA8b3AuemFveG1zbzVrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkRhdGU6IFR1ZSwgMDUgRGVjIDIwMTcgMTk6MjI6MzUgKzAxMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AuemFzZGJ4cTlrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkluLVJlcGx5LVRvOiA8b3AuemFveG1zbzVrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKKzEKCk9uIFN1biwgMDMgRGVjIDIwMTcgMjI6NTA6NDIgKzAxMDAsIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4gIAp3cm90ZToKCj4gSGksCj4KPiBXZSBzb2x2ZWQgMjcgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT9wcm9qZWN0SWQ9MTIzMTc1MjkmdmVyc2lvbj0xMjMzMDg3NSZzdHlsZU5hbWU9VGV4dAo+Cj4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPXByb2plY3QlMjAlM0QlMjAxMjMxNzUyOSUyMEFORCUyMHN0YXR1cyUyMCUzRCUyME9wZW4lMjBPUkRFUiUyMEJZJTIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQwo+Cj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzODAvCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc2VydmljZS9sb2NhbC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM4MC9jb250ZW50L29yZy9hcGFjaGUvbWF2ZW4vcGx1Z2lucy9tYXZlbi1qYXZhZG9jLXBsdWdpbi8zLjAuMC9tYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMC1zb3VyY2UtcmVsZWFzZS56aXAKPgo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOiAgCj4gZTk3ZWE3NDRlMGYwZjdjMDI1ZTI5NGU1OGIxNDhhMTc4YjNkMjRkYQo+Cj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWphdmFkb2MtcGx1Z2luLUxBVEVTVC8KPgo+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCj4KPiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+Cj4gWyBdICsxCj4gWyBdICswCj4gWyBdIC0xCj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDc0OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgRGVjICA2IDE5OjQxOjM3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDc0OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyNDQ3NzEwNUMwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgIDYgRGVjIDIwMTcgMTk6NDE6MzcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4NzEzIGludm9rZWQgYnkgdWlkIDUwMCk7IDYgRGVjIDIwMTcgMTk6NDE6MzYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg2MzUgaW52b2tlZCBieSB1aWQgNTAwKTsgNiBEZWMgMjAxNyAxOTo0MTozNiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDg2MTQgaW52b2tlZCBieSB1aWQgOTkpOyA2IERlYyAyMDE3IDE5OjQxOjM2IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDA2IERlYyAyMDE3IDE5OjQxOjM2ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgQkQ0MUIxQTAwM0U7CglXZWQsICA2IERlYyAyMDE3IDE5OjQxOjM1ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtSRVNVTFRdIFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBKYXZhZG9jIFBsdWdpbiB2ZXJzaW9uIDMuMC4wCiAodGFrZSAzKQpSZWZlcmVuY2VzOiA8b3AuemFveG1zbzVrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkRhdGU6IFdlZCwgMDYgRGVjIDIwMTcgMjA6NDE6MzcgKzAxMDAKQ2M6ICJBcGFjaGUgTWF2ZW4gUHJpdmF0ZSIgPHByaXZhdGVAbWF2ZW4uYXBhY2hlLm9yZz4KTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogUXVvdGVkLVByaW50YWJsZQpGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AuemF1Ym5ueWVrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkluLVJlcGx5LVRvOiA8b3AuemFveG1zbzVrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKSGksCgpUaGUgdm90ZSBoYXMgcGFzc2VkIHdpdGggdGhlIGZvbGxvd2luZyByZXN1bHQ6CgorMSA6IE1hcmsgUmF5bnNmb3JkLCBSb2JlcnQgU2Nob2x0ZSwgSGVydj1FOSBCT1VURU1ZLCBPbGl2aWVyIExhbXkKClBNQyBxdW9ydW06IHJlYWNoZWQKCkkgd2lsbCBwcm9tb3RlIHRoZSBhcnRpZmFjdHMgdG8gdGhlIGNlbnRyYWwgcmVwby4KCk9uIFN1biwgMDMgRGVjIDIwMTcgMjI6NTA6NDIgKzAxMDAsIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz0KPiAgPQoKd3JvdGU6Cgo+IEhpLAo+Cj4gV2Ugc29sdmVkIDI3IGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamVjdElkPTNEMTIzPQoxNzUyOSZ2ZXJzaW9uPTNEMTIzMzA4NzUmc3R5bGVOYW1lPTNEVGV4dAo+Cj4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUzRCUyMDEyMzE3NTI5JT0KMjBBTkQlMjBzdGF0dXMlMjAlM0QlMjBPcGVuJTIwT1JERVIlMjBCWSUyMGtleSUyMERFU0MlMkMlMjBwcmlvcml0eSUyMERFPQpTQwo+Cj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzODAvCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvc2VydmljZS9sb2NhbC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM4MC9jbz0KbnRlbnQvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL21hdmVuLWphdmFkb2MtcGx1Z2luLzMuMC4wL21hdmVuLWphdmFkb2MtPQpwbHVnaW4tMy4wLjAtc291cmNlLXJlbGVhc2UuemlwCj4KPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMC1zb3VyY2UtcmVsZWFzZS56aXAgc2hhMTogID0KCj4gZTk3ZWE3NDRlMGYwZjdjMDI1ZTI5NGU1OGIxNDhhMTc4YjNkMjRkYQo+Cj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLWphdmFkb2MtcGx1Z2luLUxBVEVTVC89Cgo+Cj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bT0KbAo+Cj4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPgo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ3NTAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIERlYyAgNiAyMTowNDoyNCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ3NTAtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOEY2RTIxMDlBNQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsICA2IERlYyAyMDE3IDIxOjA0OjI0ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMTc3MSBpbnZva2VkIGJ5IHVpZCA1MDApOyA2IERlYyAyMDE3IDIxOjA0OjIyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNjcxIGludm9rZWQgYnkgdWlkIDUwMCk7IDYgRGVjIDIwMTcgMjE6MDQ6MjIgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNjQxIGludm9rZWQgYnkgdWlkIDk5KTsgNiBEZWMgMjAxNyAyMTowNDoyMiAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAwNiBEZWMgMjAxNyAyMTowNDoyMiArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEM2NTdEMUEwMEQ4OwoJV2VkLCAgNiBEZWMgMjAxNyAyMTowNDoyMSArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogYW5ub3VuY2VAbWF2ZW4uYXBhY2hlLm9yZywgdXNlcnNAbWF2ZW4uYXBhY2hlLm9yZwpEYXRlOiBXZWQsIDA2IERlYyAyMDE3IDIyOjA0OjE5ICswMTAwCkNjOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBbQU5OXSBBcGFjaGUgTWF2ZW4gSmF2YWRvYyBQbHVnaW4gMy4wLjAgUmVsZWFzZWQKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AuemF1ZmhoenVrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKVGhlIEFwYWNoZSBNYXZlbiB0ZWFtIGlzIHBsZWFzZWQgdG8gYW5ub3VuY2UgdGhlIHJlbGVhc2Ugb2YgdGhlIEFwYWNoZSAgCk1hdmVuIEphdmFkb2MgUGx1Z2luLCB2ZXJzaW9uIDMuMC4wCgpUaGlzIHBsdWdpbiB1c2VzIHRoZSBKYXZhZG9jIHRvb2wgdG8gZ2VuZXJhdGUgamF2YWRvY3MgZm9yIHRoZSBzcGVjaWZpZWQgIApwcm9qZWN0LgoKaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMvbWF2ZW4tamF2YWRvYy1wbHVnaW4vCgpZb3Ugc2hvdWxkIHNwZWNpZnkgdGhlIHZlcnNpb24gaW4geW91ciBwcm9qZWN0J3MgcGx1Z2luIGNvbmZpZ3VyYXRpb246Cgo8cGx1Z2luPgogICA8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+CiAgIDxhcnRpZmFjdElkPm1hdmVuLWphdmFkb2MtcGx1Z2luPC9hcnRpZmFjdElkPgogICA8dmVyc2lvbj4zLjAuMDwvdmVyc2lvbj4KPC9wbHVnaW4+CgpZb3UgY2FuIGRvd25sb2FkIHRoZSBhcHByb3ByaWF0ZSBzb3VyY2VzIGV0Yy4gZnJvbSB0aGUgZG93bmxvYWQgcGFnZToKCmh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zL21hdmVuLWphdmFkb2MtcGx1Z2luL2Rvd25sb2FkLmNnaQoKClJlbGVhc2UgTm90ZXMgLSBNYXZlbiBKYXZhZG9jIFBsdWdpbiAtIFZlcnNpb24gMy4wLjAKCioqIEJ1ZwogICAgICogW01KQVZBRE9DLTQ2N10gLSBBZ2dyZWdhdG9yIHJlcG9ydHMgc2hvdWxkIG5vdCByZXF1aXJlIG1vZHVsZXMgdG8gYmUgIAppbnN0YWxsZWQvZGVwbG95ZWQuCiAgICAgKiBbTUpBVkFET0MtNDcyXSAtIENvbmZsaWN0aW5nIGRlcGVuZGVuY3kgb2YgcGxleHVzLXV0aWxzIGFyZSB1c2VkCiAgICAgKiBbTUpBVkFET0MtNDc2XSAtIFJlbW92ZSBsaW5rIHRvIG5vbi1leGlzdGluZyBDb2RlaGF1cyB3aWtpCiAgICAgKiBbTUpBVkFET0MtNDc3XSAtIFVzZSBKYXZhZG9jIGluc3RlYWQgb2YgSmF2YURvYyBpbiB0aGUgcmVwb3J0aW5nICAKb3V0cHV0CiAgICAgKiBbTUpBVkFET0MtNDg4XSAtIExhdGVzdCBqZGs5IHZlcnNpb24gY2F1c2VzICAKU3RyaW5nSW5kZXhPdXRPZkJvdW5kc0V4Y2VwdGlvbgogICAgICogW01KQVZBRE9DLTQ4OV0gLSBKYXZhZG9jIHBsdWdpbiBuZWVkcyB0byBzZXQgbW9kdWxlIHBhdGgKICAgICAqIFtNSkFWQURPQy00OTRdIC0gamF2YWRvYzphZ2dyZWdhdGUgaWdub3JlcyByZXBvc2l0b3JpZXMgZGVjbGFyZWQgaW4gIApzdWItbW9kdWxlcwogICAgICogW01KQVZBRE9DLTQ5N10gLSBqYXZhZG9jOmFnZ3JlZ2F0ZSBpZ25vcmVzIGV4Y2x1ZGVQYWNrYWdlTmFtZXMKICAgICAqIFtNSkFWQURPQy00OThdIC0gIm1vZHVsZSBub3QgZm91bmQiIHdoZW4gSmF2YSA5IG1vZHVsZS1pbmZvIHByZXNlbnQKCioqIERlcGVuZGVuY3kgdXBncmFkZQogICAgICogW01KQVZBRE9DLTQ4NV0gLSBVcGdyYWRlIHRvIGNvbW1vbnMtbGFuZzMKICAgICAqIFtNSkFWQURPQy00ODZdIC0gVXBncmFkZSB0byBEb3hpYSAxLjcKCioqIEltcHJvdmVtZW50CiAgICAgKiBbTUpBVkFET0MtMzg3XSAtIEhhbmRsZSBKREs4IC1YZG9jbGludAogICAgICogW01KQVZBRE9DLTQ1Nl0gLSBVcGdyYWRlIHRvIE1hdmVuMyBwbHVnaW4KICAgICAqIFtNSkFWQURPQy00NTddIC0gQ2xlYW4gdXAgbW9qbyBwYXJhbWV0ZXJzCiAgICAgKiBbTUpBVkFET0MtNDkzXSAtIFVwZ3JhZGUgdG8gUURveCAyCiAgICAgKiBbTUpBVkFET0MtNTAyXSAtIFVwZGF0ZSBERUZBVUxUX0pBVkFfQVBJX0xJTktTCgoqKiBOZXcgRmVhdHVyZQogICAgICogW01KQVZBRE9DLTQ3NV0gLSBSZXBsYWNlIHBhcmFtZXRlciBhZGRpdGlvbmFscGFyYW0gd2l0aCAgCmFkZGl0aW9uYWxPcHRpb25zCiAgICAgKiBbTUpBVkFET0MtNTAwXSAtIEFkZCBzdXBwb3J0IGZvciBleHBsaWNpdCB0b29sY2hhaW4gcmVmZXJlbmNlCgoqKiBUYXNrCiAgICAgKiBbTUpBVkFET0MtNDU4XSAtIFVwZ3JhZGUgb2YgcGxleHVzLWFyY2hpdmVyIHRvIDMuNC4KICAgICAqIFtNSkFWQURPQy00NTldIC0gVXBncmFkZSBvZiBtYXZlbi1hcmNoaXZlciB0byAzLjEuMC4KICAgICAqIFtNSkFWQURPQy00NjBdIC0gVXBncmFkZSBvZiBtYXZlbi1hcmNoaXZlciB0byAzLjEuMS4KICAgICAqIFtNSkFWQURPQy00NjFdIC0gVXBncmFkZSBvZiBtYXZlbi1wbHVnaW5zIHBhcmVudCB0byAzMC4KICAgICAqIFtNSkFWQURPQy00NjNdIC0gVXBncmFkZSBvZiBjb21tb25zLWxvZ2dpbmcgdG8gMS4yLgogICAgICogW01KQVZBRE9DLTQ2NF0gLSBVcGdyYWRlIG9mIGxvZzRqIHRvIDEuMi4xNy4KICAgICAqIFtNSkFWQURPQy00NjVdIC0gVXBncmFkZSBvZiBjb21tb25zLWxhbmcgdG8gMi42LgogICAgICogW01KQVZBRE9DLTQ2Nl0gLSBVcGdyYWRlIG9mIGh0dHBjbGllbnQgdG8gNC41LjIuCiAgICAgKiBbTUpBVkFET0MtNDc0XSAtIERlcHJlY2F0ZSBwYXJhbWV0ZXIgYWRkaXRpb25hbHBhcmFtCiAgICAgKiBbTUpBVkFET0MtNDkxXSAtIFJlcXVpcmUgSmF2YSA3CgpFbmpveSwKCi1UaGUgQXBhY2hlIE1hdmVuIHRlYW0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDg4MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgRGVjIDMwIDE3OjMzOjA3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg4MS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBCQUY0MjE3NjgyCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMzAgRGVjIDIwMTcgMTc6MzM6MDcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5NDcwNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMCBEZWMgMjAxNyAxNzozMzowNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTQ2MjggaW52b2tlZCBieSB1aWQgNTAwKTsgMzAgRGVjIDIwMTcgMTc6MzM6MDcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5NDYxNyBpbnZva2VkIGJ5IHVpZCA5OSk7IDMwIERlYyAyMDE3IDE3OjMzOjA3IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDMwIERlYyAyMDE3IDE3OjMzOjA3ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgRDk5NjcxQTAxNDAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDMwIERlYyAyMDE3IDE3OjMzOjA0ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBNYXZlbiAzLjUuMzogTU5HLTYzMDUKUmVmZXJlbmNlczogPGFkY2M5N2E2LTJmYzItMDg1Yi02Y2E3LTZkNGFjMDg5NTJjZkBnbXguZGU+CiA8b3AuemJ6Nnc0czVrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CiA8ZjMyMzYwZDctNjRkMi05NzU5LTk3MWUtODY1NmM0MmRkMDIxQGdteC5kZT4KRGF0ZTogU2F0LCAzMCBEZWMgMjAxNyAxODozMzowMSArMDEwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC56YjJscGJ1cGtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KSW4tUmVwbHktVG86IDxmMzIzNjBkNy02NGQyLTk3NTktOTcxZS04NjU2YzQyZGQwMjFAZ214LmRlPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKClN1cmUsIGxldCBtZSBwaWNrIHRoaXMgdXAKClJvYmVydAoKT24gU2F0LCAzMCBEZWMgMjAxNyAxNToxNTo0MSArMDEwMCwgS2FybCBIZWlueiBNYXJiYWlzZSAgCjxraG1hcmJhaXNlQGdteC5kZT4gd3JvdGU6Cgo+IEhpIFJvYmVydCwKPgo+IE9uIDI5LzEyLzE3IDExOjE4LCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPj4gSGkgS2FybCBIZWlueiwKPj4gIEkgdGhpbmsgdGhlIFJFZ0V4cCB1c2FnZSBjYW4gYmUgaW1wcm92ZWQuCj4+IE5vdyBpdCB1c2VkIGZvciBidWlsZGluZyB1cCBhIG5ldyBTdHJpbmcgZm9sbG93ZWQgYnkgc2VhcmNoaW5nLCBJIHdvdWxkICAKPj4gZXhwZWN0IHRoYXQgc2VhcmNoaW5nIGZvciAkeyguKyl9IGdyb3VwcyB0byBiZSBtb3JlIGVmZmljaWVudC4KPgo+IERvIHlvdSBoYXZlIHNvbWUgc3VnZ2VzdGlvbnMgd2hhdCB5b3UgZXhhY3RseSBoYXZlIGluIG1pbmQ/Cj4KPiBLaW5kIHJlZ2FyZHMKPiBLYXJsIEhlaW56IE1hcmJhaXNlCj4+ICB0aGFua3MsCj4+IFJvYmVydAo+PiAgIE9uIEZyaSwgMjkgRGVjIDIwMTcgMTE6MTA6MzYgKzAxMDAsIEthcmwgSGVpbnogTWFyYmFpc2UgIAo+PiA8a2htYXJiYWlzZUBnbXguZGU+IHdyb3RlOgo+Pgo+Pj4gSGksCj4+Pgo+Pj4gSSB3b3VsZCBsaWtlIHRvIGtub3cgaWYgdGhlcmUgYXJlIGFueSBvYmplY3Rpb25zIHRvIG1lcmdlIE1ORy02MzA1ICAKPj4+IGludG8gbWFzdGVyIChKZW5raW5zIGlzIGZpbmUgWzFdKS4KPj4+Cj4+PiBLaW5kIHJlZ2FyZHMKPj4+IEthcmwgSGVpbnogTWFyYmFpc2UKPj4+Cj4+PiBbMV06ICAKPj4+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvam9iL21hdmVuLXdpcC9qb2IvbWF2ZW4vam9iL01ORy02MzA1LXZhbGlkYXRpb24tb2YtY2ktZnJpZW5kbHkvCj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDg4My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgRGVjIDMwIDE4OjEyOjM2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg4My1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDMjFFRTE3N0UzCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMzAgRGVjIDIwMTcgMTg6MTI6MzYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyNjQwNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMCBEZWMgMjAxNyAxODoxMjozNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjYzMTAgaW52b2tlZCBieSB1aWQgNTAwKTsgMzAgRGVjIDIwMTcgMTg6MTI6MzYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNjI5OSBpbnZva2VkIGJ5IHVpZCA5OSk7IDMwIERlYyAyMDE3IDE4OjEyOjM2IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDMwIERlYyAyMDE3IDE4OjEyOjM2ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgREI4RTgxQTAwQ0EKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDMwIERlYyAyMDE3IDE4OjEyOjM0ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBNYXZlbiAzLjUuMzogTU5HLTYzMDUKUmVmZXJlbmNlczogPGFkY2M5N2E2LTJmYzItMDg1Yi02Y2E3LTZkNGFjMDg5NTJjZkBnbXguZGU+CiA8b3AuemJ6Nnc0czVrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CiA8ZjMyMzYwZDctNjRkMi05NzU5LTk3MWUtODY1NmM0MmRkMDIxQGdteC5kZT4KIDxvcC56YjJscGJ1cGtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KIDw0NTM0NDFiMi0wMjdjLTNjZmMtNDQ5NS04YWFmOTliZGVmODRAZ214LmRlPgpEYXRlOiBTYXQsIDMwIERlYyAyMDE3IDE5OjEyOjMxICswMTAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnpiMm5pNWU0a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgpJbi1SZXBseS1UbzogPDQ1MzQ0MWIyLTAyN2MtM2NmYy00NDk1LThhYWY5OWJkZWY4NEBnbXguZGU+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKSGkgS2FybCBIZWlueiwKClBsZWFzZSB2ZXJpZnkgbXkgY29tbWl0LgoKdGhhbmtzLApSb2JlcnQKCk9uIFNhdCwgMzAgRGVjIDIwMTcgMTg6MzY6MjkgKzAxMDAsIEthcmwgSGVpbnogTWFyYmFpc2UgIAo8a2htYXJiYWlzZUBnbXguZGU+IHdyb3RlOgoKPiBIaSwKPgo+Cj4gT24gMzAvMTIvMTcgMTg6MzMsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+PiBTdXJlLCBsZXQgbWUgcGljayB0aGlzIHVwCj4KPiBJIGhhdmUgYWxyZWFkeSBpbXBsZW1lbnRlZCBkaWZmZXJlbnQgc29sdXRpb25zIGJ1dCBiYXNlZCBvbiBwZXJmb3JtYW5jZSAgCj4gbWVhc3VyZW1lbnRzIHRoZSBvbmUgSSBoYXZlIGltcGxlbWVudGVkIHNlZW1lZCB0byBiZSB0aGUgZmFzdGVzdCAgCj4gc29sdXRpb24gPy4uLgo+Cj4KPiBLaW5kIHJlZ2FyZHMKPiBLYXJsIEhlaW56IE1hcmJhaXNlCj4+ICBSb2JlcnQKPj4gIE9uIFNhdCwgMzAgRGVjIDIwMTcgMTU6MTU6NDEgKzAxMDAsIEthcmwgSGVpbnogTWFyYmFpc2UgIAo+PiA8a2htYXJiYWlzZUBnbXguZGU+IHdyb3RlOgo+Pgo+Pj4gSGkgUm9iZXJ0LAo+Pj4KPj4+IE9uIDI5LzEyLzE3IDExOjE4LCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPj4+PiBIaSBLYXJsIEhlaW56LAo+Pj4+ICBJIHRoaW5rIHRoZSBSRWdFeHAgdXNhZ2UgY2FuIGJlIGltcHJvdmVkLgo+Pj4+IE5vdyBpdCB1c2VkIGZvciBidWlsZGluZyB1cCBhIG5ldyBTdHJpbmcgZm9sbG93ZWQgYnkgc2VhcmNoaW5nLCBJICAKPj4+PiB3b3VsZCBleHBlY3QgdGhhdCBzZWFyY2hpbmcgZm9yICR7KC4rKX0gZ3JvdXBzIHRvIGJlIG1vcmUgZWZmaWNpZW50Lgo+Pj4KPj4+IERvIHlvdSBoYXZlIHNvbWUgc3VnZ2VzdGlvbnMgd2hhdCB5b3UgZXhhY3RseSBoYXZlIGluIG1pbmQ/Cj4+Pgo+Pj4gS2luZCByZWdhcmRzCj4+PiBLYXJsIEhlaW56IE1hcmJhaXNlCj4+Pj4gIHRoYW5rcywKPj4+PiBSb2JlcnQKPj4+PiAgIE9uIEZyaSwgMjkgRGVjIDIwMTcgMTE6MTA6MzYgKzAxMDAsIEthcmwgSGVpbnogTWFyYmFpc2UgIAo+Pj4+IDxraG1hcmJhaXNlQGdteC5kZT4gd3JvdGU6Cj4+Pj4KPj4+Pj4gSGksCj4+Pj4+Cj4+Pj4+IEkgd291bGQgbGlrZSB0byBrbm93IGlmIHRoZXJlIGFyZSBhbnkgb2JqZWN0aW9ucyB0byBtZXJnZSBNTkctNjMwNSAgCj4+Pj4+IGludG8gbWFzdGVyIChKZW5raW5zIGlzIGZpbmUgWzFdKS4KPj4+Pj4KPj4+Pj4gS2luZCByZWdhcmRzCj4+Pj4+IEthcmwgSGVpbnogTWFyYmFpc2UKPj4+Pj4KPj4+Pj4gWzFdOiAgCj4+Pj4+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvam9iL21hdmVuLXdpcC9qb2IvbWF2ZW4vam9iL01ORy02MzA1LXZhbGlkYXRpb24tb2YtY2ktZnJpZW5kbHkvCj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDg4NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgRGVjIDMwIDE4OjM0OjA4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg4NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA0RkZFRDE3ODE3Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMzAgRGVjIDIwMTcgMTg6MzQ6MDggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0Mjk2MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMCBEZWMgMjAxNyAxODozNDowNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDI4NzYgaW52b2tlZCBieSB1aWQgNTAwKTsgMzAgRGVjIDIwMTcgMTg6MzQ6MDcgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0Mjg2NSBpbnZva2VkIGJ5IHVpZCA5OSk7IDMwIERlYyAyMDE3IDE4OjM0OjA3IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDMwIERlYyAyMDE3IDE4OjM0OjA3ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgMTZEQzQxQTAwQ0EKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDMwIERlYyAyMDE3IDE4OjM0OjA0ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBPbGQgU3R5bGUgQnVpbGQgSm9icwpSZWZlcmVuY2VzOiA8NDE0NTdmM2ItYmJiZi1hODQ0LTI5ZjctODMxNzBlNTU2ZWUwQGdteC5kZT4KRGF0ZTogU2F0LCAzMCBEZWMgMjAxNyAxOTozNDowMiArMDEwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC56YjJvaTBkemtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KSW4tUmVwbHktVG86IDw0MTQ1N2YzYi1iYmJmLWE4NDQtMjlmNy04MzE3MGU1NTZlZTBAZ214LmRlPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKClllcCwgaWYgeW91IGNhbiBjb25maXJtIHRoZSBqb2JzIGFyZSBjb3ZlcmVkIGJ5IHRoZSBUTFAgSmVua2lucyBzY3JpcHQsICAKdGhlbiB0aGV5IGNhbiBiZSByZW1vdmVkLgpJIGRvbid0IHRoaW5rIHRoZXJlJ3MgYSByZWFzb24gdG8ga2VlcCB0aGUgaGlzdG9yaWMgc3RhdGlzdGljcy4KCisxCgpSb2JlcnQKCk9uIFNhdCwgMzAgRGVjIDIwMTcgMTk6MTQ6MzQgKzAxMDAsIEthcmwgSGVpbnogTWFyYmFpc2UgIAo8a2htYXJiYWlzZUBnbXguZGU+IHdyb3RlOgoKPiBIaSwKPgo+IGJhc2VkIG9uIHRoZSBuZXcgSmVua2luc2ZpbGUgYmFzZWQgQnVpbGRzIEkgd2lsbCBkZWxldGUgc3RlcCBieSBzdGVwICAKPiBvbGRlciBqb2JzIGZvciBleGFtcGxlOgo+Cj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy9qb2IvbWF2ZW4tZW5mb3JjZXIvCj4KPiBjYXVzZSB3ZSBoYXZlIG5vdyBhcyByZXBsYWNlbWVudHMuLgo+Cj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvam9iL21hdmVuLWVuZm9yY2VyLwo+Cj4KPiBBbnkgb2JqZWN0cyBhYm91dCB0aGF0Pwo+Cj4gS2luZCByZWdhcmRzCj4gS2FybCBIZWlueiBNYXJiYWlzZQo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4ODctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU2F0IERlYyAzMCAyMDoxNDo1OSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4ODctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMTgxMDQxN0E3QQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTYXQsIDMwIERlYyAyMDE3IDIwOjE0OjU5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDQ0NjkgaW52b2tlZCBieSB1aWQgNTAwKTsgMzAgRGVjIDIwMTcgMjA6MTQ6NTggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ0Mzk5IGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIERlYyAyMDE3IDIwOjE0OjU4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDQzODcgaW52b2tlZCBieSB1aWQgOTkpOyAzMCBEZWMgMjAxNyAyMDoxNDo1OCAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU2F0LCAzMCBEZWMgMjAxNyAyMDoxNDo1OCArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEMxQjdGMUEwMEE1OwoJU2F0LCAzMCBEZWMgMjAxNyAyMDoxNDo1NyArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwKID0/aXNvLTg4NTktMTU/UT9IZXJ2PUU5X0JPVVRFTVk/PSA8aGVydmUuYm91dGVteUBmcmVlLmZyPgpTdWJqZWN0OiBSZTogW0lNUE9SVEFOVF0gUmU6IEdpdCBtaWdyYXRpb24gbmV4dCBzdGVwcwpSZWZlcmVuY2VzOiA8MjAwOTc2NTU5Mi4yMjk3MjIxNy4xNTE0MTA5MjU2NjMyLkphdmFNYWlsLnJvb3RAc3Bvb2xlcjQtZzI3PgogPG9wLnpicTJpaTFta2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PiA8MjU2NTg1NC5aZU00UERUWDRjQGdpZ2E+CiA8MTkxNzY3MTEuT3M3eHhLYjgzZkBnaWdhPgpEYXRlOiBTYXQsIDMwIERlYyAyMDE3IDIxOjE0OjU3ICswMTAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IFF1b3RlZC1QcmludGFibGUKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnpiMnM2N3dxa2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgpJbi1SZXBseS1UbzogPDE5MTc2NzExLk9zN3h4S2I4M2ZAZ2lnYT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpIaSBIZXJ2PUU5LAoKbWVyZ2UgcmVzdWx0IGlzIGFzIGV4cGVjdGVkLgoKVGhhbmtzIGEgbG90IQpSb2JlcnQKCk9uIFNhdCwgMzAgRGVjIDIwMTcgMTA6NTE6MDYgKzAxMDAsIEhlcnY9RTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLj0KZnI+ICA9Cgp3cm90ZToKCj4gbWVyZ2UgZG9uZTogY2FuIHlvdSBjaGVjayBpdCdzIGFzIHlvdSBleHBlY3RlZD8KPgo+IG5vdGljZSB0aGF0IGlmIHlvdSBoYXZlIGZhaWxpbmcgSVQgb24gTUpBVkFET0MtNTA4IGxpa2UgSSBoYXZlIGxvY2FsbHk9CiwgID0KCj4gaXQncwo+IG5vdCB0aGUgbWVyZ2UgYnV0IGl0IHdhcyBhbHJlYWR5IHByZXNlbnQgYmVmb3JlCj4KPiBAT2xpdmllcjogSSBkb24ndCBrbm93IGluIHdoaWNoIGNvbmRpdGlvbnMgeW91IHRlc3RlZCBNSkFWQURPQy01MDgsIGJ1PQp0ICA9Cgo+IGl0IGlzCj4gZmFpbGluZyBmb3IgbWU6IExpbnV4K0phdmEgNwo+Cj4gUmVnYXJkcywKPgo+IEhlcnY9RTkKPgo+IExlIGpldWRpIDI4IGQ9RTljZW1icmUgMjAxNywgMDk6NDg6MzEgQ0VUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOgo+PiBvbiBtYXZlbi1qYXZhZG9jLXBsdWdpbjogd2hhdCBhYm91dCBtZXJnaW5nIG1hc3RlcjIgYnJhbmNoIGludG8gbWFzdGU9CnIsICA9Cgo+PiBsaWtlCj4+IGlmIGl0IHdhcyBhIFBSPwo+PiBJbiBnZW5lcmFsLCBJIGRvbid0IGxpa2UgdGhpcyB3YXkgb2YgZG9pbmcgUFIgbWVyZ2VzIChJIHByZWZlciByZWJhc2k9Cm5nICA9Cgo+PiBvcgo+PiBjaGVycnkgcGlja2luZywgdG8gYXZvaWQgdGhlIG1lcmdlIGNvbW1pdCBhbmQgdGhlIHBhcmFsbGVsIGJyYW5jaGVzICA9Cgo+PiBzdGF5aW5nCj4+IGZvciBldmVyIGluIHRoZSByZXBvKSwgYnV0IHNpbmNlIHRoaXMgd2F5IG9mIG1lcmdpbmcgUFJzIGlzIG9mdGVuIHVzZT0KZCAgPQoKPj4gYnkKPj4gdGhlIHRlYW0sIGxldCdzIHVzZSB0aGlzIHRlY2huaXF1ZSBvbiB0aGUgY3VycmVudCBjYXNlIHdoZXJlIGl0IG1ha2VzPQogID0KCj4+IG91cgo+PiBsaWZlIGVhc2llcgo+Pgo+PiBSZWdhcmRzLAo+Pgo+PiBIZXJ2PUU5Cj4+Cj4+IExlIGRpbWFuY2hlIDI0IGQ9RTljZW1icmUgMjAxNywgMTM6MDQ6NTYgQ0VUIFJvYmVydCBTY2hvbHRlIGEgPUU5Y3JpdD0KIDoKPj4gPiBJIGRpZCB0aGUgYXNzdW1wdGlvbiB0aGF0IHlvdSBjYW4gaXNvbGF0ZSBhbGwgbWF2ZW4tamF2YWRvYy1wbHVnaW4KPj4gPiBjb21taXRzLgo+PiA+IElmIGl0IGlzIGZvciBhbGwgbWF2ZW4tcGx1Z2lucyBvciBub3RoaW5nLCB0aGVuIGl0IGlzIGEgZGlmZmVyZW50ICA9Cgo+PiBzdG9yeS4KPj4gPgo+PiA+IE9uIFN1biwgMjQgRGVjIDIwMTcgMTA6NTQ6MTYgKzAxMDAsIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdyb3RlOgo+PiA+ID4gSSdkIHN1Z2dlc3QgdG8gdHJ5IHRoZSBwcm9jZXNzIHRvIGEgcGVyc29uYWwgcGVyc29uYWwgcmVwbyBvbiAgPQoKPj4gR2l0SHViIHRvCj4+ID4gPiBzZWUgaWYgeW91J3JlIGFibGUgdG8gZ2V0IGEgYmV0dGVyIHJlc3VsdCBiZWZvcmUgaW52b2x2aW5nIG1hbnVhbD0KICA9Cgo+PiB3b3JrCj4+ID4gPiBmcm9tIElORlJBIChvbiBtb3JlIHRoYW4gNjAgcmVwb3MuLi4pCj4+ID4gPgo+PiA+ID4gKGl0J3Mgc2FkIHRvIHNlZSBub2JvZHkgdHJ5IHRvIGV4cGxhaW4gd2hhdCdzIGhhcHBlbm5pbmcgb3IgaW1wcm89CnZlICA9Cgo+PiB0aGUKPj4gPiA+IGRvY3VtZW50ZWQgY29tbWFuZHMsIGp1c3QgZ2V0IHRvIGEgY29uY2x1c2lvbjogcmUtZG8gZXZlcnl0aGluZyBhPQpuZAo+PiA+ID4gcHJheSkKPj4gPiA+Cj4+ID4gPiBSZWdhcmRzLAo+PiA+ID4KPj4gPiA+IEhlcnY9RTkKPj4gPiA+Cj4+ID4gPiAtLS0tLSBNYWlsIG9yaWdpbmFsIC0tLS0tCj4+ID4gPiBEZTogIkthcmwgSGVpbnogTWFyYmFpc2UiIDxraG1hcmJhaXNlQGdteC5kZT4KPj4gPiA+ID1DMDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPiwgIlJvYmVydCBTY2hvPQpsdGUiCj4+ID4gPiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Cj4+ID4gPiBFbnZveT1FOTogRGltYW5jaGUgMjQgRD1FOWNlbWJyZSAyMDE3IDEwOjQ3OjQzCj4+ID4gPiBPYmpldDogUmU6IFtJTVBPUlRBTlRdIFJlOiBHaXQgbWlncmF0aW9uIG5leHQgc3RlcHMKPj4gPiA+Cj4+ID4gPiBIaSwKPj4gPiA+Cj4+ID4gPiBPbiAyNC8xMi8xNyAxMDo0MCwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4+ID4gPj4gSG93IGFib3V0IGEgaGFyZCByZXNldCBvciBkcm9wcGluZyB0aGUgcmVwbyBhbmQgZG9pbmcgaXQgYWxsIG92ZT0Kcgo+PiA+ID4+IGFnYWluPwo+PiA+ID4KPj4gPiA+IElmIEkgY29ycmVjdGx5IHNlZW4gdGhhdCAuLnRoZXJlIGhhZCBubyBjb21taXQgeWV0IG9uIHRoZSBuZXcgZ2l0PQoKPj4gPiA+IHJlcG9zLi4KPj4gPiA+Cj4+ID4gPiBTbyBJIHRoaW5rIGl0IHdvdWxkIGJlIHRoZSBlYXNpZXN0IHdheSB0byBkbyBhcyBSb2JlcnQgc3VnZ2VzdCAuLj0KLnRvCj4+ID4gPiByZWRvIG1pZ3JhdGlvbiBmb3IgdGhvc2UgcmVwb3MuLgo+PiA+ID4KPj4gPiA+IEtpbmQgcmVnYXJkcwo+PiA+ID4gS2FybCBIZWluego+PiA+ID4KPj4gPiA+PiBPbiBXZWQsIDIwIERlYyAyMDE3IDEwOjQyOjM2ICswMTAwLCBIZXJ2PUU5IEJPVVRFTVkKPj4gPiA+Pgo+PiA+ID4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdyb3RlOgo+PiA+ID4+PiBJTkZSQS0xNTY3OSBmaXhlZCBieSBpbmZyYSB0ZWFtCj4+ID4gPj4+IHRoZW4gSSByZS1ydW4gbWlncmF0ZS1wbHVnaW5zLnNoIHNjcmlwdCB0byBzcGxpdCB0aGUgc3ZuMmdpdCAgPQoKPj4gbWlycm9yIHRvCj4+ID4gPj4+IHBlci0KPj4gPiA+Pj4gcGx1Z2luIGdpdCByZXBvCj4+ID4gPj4+IGFuZCBJIHB1c2hlZCAibWFzdGVyMiIgYnJhbmNoZXMgZm9yIG0tamF2YWRvYy1wLCBtLXNpdGUtcCBhbmQgID0KCj4+IG0tcGRmLXAsCj4+ID4gPj4+IHdoaWNoCj4+ID4gPj4+IHdlcmUgdGhlIDMgcGx1Z2lucyB3aGljaCBzdWZmZXJlZCBmcm9tIG1pc3NpbmcgY29tbWl0cwo+PiA+ID4+Pgo+PiA+ID4+PiBvbiBtLXNpdGUtcCBhbmQgbS1wZGYtcCwgSSdsbCBjaGVycnkgcGljayB0aGUgdW5pcXVlIGNvbW1pdCB0aGE9CnQgID0KCj4+IHdhcwo+PiA+ID4+PiBtaXNzZWQ6Cj4+ID4gPj4+IG5vdCBhIGJpZyBkZWFsCj4+ID4gPj4+Cj4+ID4gPj4+IG9uIG0tamF2YWRvYy1wLCB0aGUgc2l0dWF0aW9uIGlzIG1vcmUgY29wbGV4LCBzaW5jZSB0aGVyZSB3YXMgYT0KCj4+ID4gPj4+IHJlbGVhc2UKPj4gPiA+Pj4KPj4gPiA+Pj4gSSBhbHNvIG5vdGljZWQgdGhhdCBJIGZvcmdvdCB0byBwdXNoIHRhZ3Mgd2hlbiBpbXBvcnRpbmc6IEkgID0KCj4+IHN0YXJ0ZWQgdG8KPj4gPiA+Pj4gZG8gImdpdAo+PiA+ID4+PiBwdXNoIC0tdGFncyIsIGJ1dCB0aGUgcmVzdWx0IGRvZXMgbm90IGxvb2sgYXMgSSBleHBlY3RlZDogaXQgID0KCj4+IGNyZWF0ZXMgYQo+PiA+ID4+PiBsb3Qgb2YKPj4gPiA+Pj4gcGFyYWxsZWwgYnJhbmNoZXMKPj4gPiA+Pj4KPj4gPiA+Pj4gSSdsbCBuZWVkIGhlbHAgZnJvbSBnaXQgZXhwZXJ0czogd2hhdCBpcyBoYXBwZW5pbmc/Cj4+ID4gPj4+Cj4+ID4gPj4+IEkgc3RvcHBlZCB0aGUgdGFncyBwdXNoIGhhbGYgdGhlIHdheSwgd2UnbGwgbmVlZCB0byBkZWNpZGUgd2hhdD0KIHRvCj4+ID4gPj4+IGRvLi4uCj4+ID4gPj4+IChJIGtuZXcgSSB3YXMgbm90IGEgZ2l0IGV4cGVydCBhbmQgdGhlcmUgd2FzIGEgcmlzayBmb3Igc29tZXRoaT0KbmcKPj4gPiA+Pj4gd2VpcmQgbGlrZQo+PiA+ID4+PiB3aGF0J3MgY3VycmVudGx5IGhhcHBlbmluZy4uLikKPj4gPiA+Pj4KPj4gPiA+Pj4gQW55IGhpbnQ/Cj4+ID4gPj4+Cj4+ID4gPj4+IFJlZ2FyZHMsCj4+ID4gPj4+Cj4+ID4gPj4+IEhlcnY9RTkKPj4gPiA+Pj4KPj4gPiA+Pj4gTGUgc2FtZWRpIDE2IGQ9RTljZW1icmUgMjAxNywgMTY6Mjg6NDggQ0VUIEhlcnY9RTkgQk9VVEVNWSBhID1FOT0KY3JpdCA6Cj4+ID4gPj4+PiBvaywgSSB3YXMgY29uZnVzZWQgYnkgdGhlIGRpZmZlcmVudCB0YWtlcyBhdCBtLWphdmFkb2MtcCAzLjAuMD0KCj4+ID4gPj4+Pgo+PiA+ID4+Pj4geWVzLCBzdm4yZ2l0IG1pcnJvciBpcyBzdHVjayBbMV0gYXQgcjE4MTU2NzUKPj4gPiA+Pj4+Cj4+ID4gPj4+PiBJIGp1c3Qgb3BlbmVkIGFuIElORlJBIEppcmEgaXNzdWUKPj4gPiA+Pj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvSU5GUkEtMTU2NzkKPj4gPiA+Pj4+Cj4+ID4gPj4+PiBvbmNlIHRoZSBzdm4yZ2l0IG1pcnJvciB3aWxsIGJlIHVwZGF0ZWQsIHdlJ2xsIGhhdmUgdG8gcmUtcnVuID0KdGhlCj4+ID4gPj4+PiBzcGxpdAo+PiA+ID4+Pj4gc2NyaXB0cyBhbmQgY2hlcnJ5IHBpY2sgdGhlIG1pc3NpbmcgY29tbWl0cwo+PiA+ID4+Pj4KPj4gPiA+Pj4+IFJlZ2FyZHMsCj4+ID4gPj4+Pgo+PiA+ID4+Pj4gSGVydj1FOQo+PiA+ID4+Pj4KPj4gPiA+Pj4+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvY29tbWl0cy90cnVuawo+PiA+ID4+Pj4KPj4gPiA+Pj4+IExlIHNhbWVkaSAxNiBkPUU5Y2VtYnJlIDIwMTcsIDEzOjAxOjA1IENFVCBSb2JlcnQgU2Nob2x0ZSBhID1FOT0KY3JpdCA6Cj4+ID4gPj4+PiA+IEkgd2FzIHRyaWdnZXJlZCBieSBzb21lIGZhaWxpbmcgdW5pdCB0ZXN0cywgd2hpY2ggc2hvdWxkIGhhdj0KZSAgPQoKPj4gYmVlbgo+PiA+ID4+Pj4KPj4gPiA+Pj4+IHNvbHZlZAo+PiA+ID4+Pj4KPj4gPiA+Pj4+ID4gaW4gbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAKPj4gPiA+Pj4+ID4KPj4gPiA+Pj4+ID4gTXkgbGFzdCBjb21taXQgYWNjb3JkaW5nIHRvIEdJVCB3YXMgbm92ZW1iZXIgMTh0aAo+PiA+ID4+Pj4gPiBNeSBsYXN0IGNvbW1pdCBhY2NvcmRpbmcgdG8gU1ZOIHdhcyBkZWNlbWJlciAzcmQKPj4gPiA+Pj4+ID4KPj4gPiA+Pj4+ID4gY29tcGFyaW5nIHN2bmxvZyB3aXRoIGdpdGxvZyBtb3N0IG9mIHRoZXNlIGNvbW1pdHMgYXJlIGxvc3Q6PQoKPj4gPiA+Pj4+ID4KPj4gPiA+Pj4+ID4gbW92ZWQgdG8gZ2l0Cj4+ID4gPj4+PiA+IC0tLS0KPj4gPiA+Pj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIGZvciBuZXh0IGRldmVsb3BtZW50IGl0ZXJhdGlvPQpuCj4+ID4gPj4+PiA+IC0tLS0KPj4gPiA+Pj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIHJlbGVhc2UgID0KCj4+IG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wCj4+ID4gPj4+PiA+IC0tLS0KPj4gPiA+Pj4+ID4gW01KQVZBRE9DLTQ5OF0gIm1vZHVsZSBub3QgZm91bmQiIHdoZW4gSmF2YSA5IG1vZHVsZS1pbmZvICA9Cgo+PiBwcmVzZW50Cj4+ID4gPj4+PiA+IFN1cHBvcnQgYWdncmF0ZWQgamF2YWRvYwo+PiA+ID4+Pj4gPiAtLS0tCj4+ID4gPj4+PiA+IFNraXAgc2V2ZXJhbCB1bml0dGVzdHMgZm9yIEphdmE5Cj4+ID4gPj4+PiA+IC0tLS0KPj4gPiA+Pj4+ID4gSkRLLTgwMzIyMDUgd2FzIGNsb3NlZCBhcyBub3QgYW4gaXNzdWUsIHNvIG5vdCBzb2x2ZWQgaW4gSmF2PQphOS4KPj4gPiA+Pj4+ID4gTmVlZCB0byByZXZpZXcgdGhlIGNvbmNsdXNpb24KPj4gPiA+Pj4+ID4gLS0tLQo+PiA+ID4+Pj4gPiBVcGdyYWRlIG1vY2tpdG8gdG8gcmVtb3ZlIHdhcm5pbmcgYWJvdXQgaWxsZWdhbCByZWZsZWN0aXZlICA9Cgo+PiBhY2Nlc3MKPj4gPiA+Pj4+ID4gLS0tLQo+PiA+ID4+Pj4gPiBJbXByb3ZlIFRlc3RKYXZhZG9jUmVwb3J0VGVzdCN0ZXN0VGVzdEphdmFkb2MKPj4gPiA+Pj4+ID4gSjggd2FybnMgYW5kIGNvbnRpbnVlcyB3aXRoIG1pc3NpbmcgZGVwZW5kZW5jeSwgSjkgZmFpbHMuCj4+ID4gPj4+PiA+IEluIGZhY3QgdGVzdCB3YXMgd3Jvbmc6IGRlcGVuZGVuY3kgc2hvdWxkIGhhdmUgYmVlbiBvbiAgPQoKPj4gY2xhc3NwYXRoCj4+ID4gPj4+PiA+IC0tLS0KPj4gPiA+Pj4+ID4gdW5pdHRlc3Qgc2hvdWxkIHByZWZlciBKQVZBX0hPTUUgd2hlbiBleGVjdXRpbmcgZnJvbSBjbWRsaW5lPQoKPj4gPiA+Pj4+ID4gV2hlbiBydW5uaW5nIHdpdGggSmF2YTkrIG5vIG5lZWQgdG8gc3dpdGNoIGZyb20ganJlIHRvIGpkawo+PiA+ID4+Pj4gPiBkaXJlY3RvcnkKPj4gPiA+Pj4+ID4gKGplcDIyMCkKPj4gPiA+Pj4+ID4gLS0tLQo+PiA+ID4+Pj4gPiBNSkFWQURPQy01MDIgVXBkYXRlIERFRkFVTFRfSkFWQV9BUElfTElOS1MKPj4gPiA+Pj4+ID4gLS0tLQo+PiA+ID4+Pj4gPiBzZXNzaW9uIGlzIHJlcXVpcmVkIHBhcmFtZXRlciwgc28gY2Fubm90IGJlIG51bGwuIEZpeCByZWxhdGU9CmQKPj4gPiA+Pj4+Cj4+ID4gPj4+PiB1bml0dGVzdHMKPj4gPiA+Pj4+Cj4+ID4gPj4+PiA+IC0tLS0KPj4gPiA+Pj4+ID4gQWRkIHByb2plY3QvYXJ0aWZhY3Qga2V5IHRvIHNldCBvZiBzb3VyY2VQYXRocyB0byByZWNvZ25pemUgPQogPQoKPj4gcmVhY3Rvcgo+PiA+ID4+Pj4gPiBwcm9qZWN0cyB2ZXJzdXMgZGVwZW5kZW5jaWVzCj4+ID4gPj4+PiA+IC0tLS0KPj4gPiA+Pj4+ID4gR3JvdXAgc2V0cyBvZiBzb3VyY2VwYXRocyBwZXIgcHJvamVjdCwgaW4gcHJlcGFyZSBvZiB1c2FnZSBvPQpmCj4+ID4gPj4+PiA+IG1vZHVsZS1zb3VyY2UtcGF0aC4KPj4gPiA+Pj4+ID4gLS0tLQo+PiA+ID4+Pj4gPiBTd2l0Y2ggZnJvbSBMaXN0IHRvIENvbGxlY3Rpb24gdG8gbWFrZSBpdCBlYXNpZXIgdG8gdXNlIFNldHM9CiAgPQoKPj4gd2hlbgo+PiA+ID4+Pj4gPiBwcmVmZXJyZWQKPj4gPiA+Pj4+ID4gLS0tLQo+PiA+ID4+Pj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgZm9yIG5leHQgZGV2ZWxvcG1lbnQgaXRlcmF0aW89Cm4KPj4gPiA+Pj4+ID4gLS0tLQo+PiA+ID4+Pj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgcmVsZWFzZSAgPQoKPj4gbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAKPj4gPiA+Pj4+ID4gLS0tLQo+PiA+ID4+Pj4gPgo+PiA+ID4+Pj4gPgo+PiA+ID4+Pj4gPgo+PiA+ID4+Pj4gPgo+PiA+ID4+Pj4gPiBPbiBTYXQsIDE2IERlYyAyMDE3IDEyOjUzOjIzICswMTAwLCBIZXJ2PUU5IEJPVVRFTVkKPj4gPiA+Pj4+Cj4+ID4gPj4+PiA8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+PiA+ID4+Pj4KPj4gPiA+Pj4+ID4gd3JvdGU6Cj4+ID4gPj4+PiA+ID4gbG9va2luZyBhdCBjb21taXRzQCBjb250ZW50ICA9Cgo+PiBodHRwczovL2xpc3RzLmFwYWNoZS5vcmcvbGlzdC5odG1sPwo+PiA+ID4+Pj4gPiA+IGNvbW1pdHNAbWF2ZW4uYXBhY2hlLm9yZyB3aXRoIHN1YmplY3QgY29udGFpbmluZwo+PiA+ID4+Pj4KPj4gPiA+Pj4+ICJtYXZlbi9wbHVnaW5zL3RydW5rIgo+PiA+ID4+Pj4KPj4gPiA+Pj4+ID4gPiBhbmQgcGx1Z2lucyBzdm4yZ2l0IG1pcnJvcgo+PiA+ID4+Pj4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4tcGx1Z2lucy9jb21taXRzLwo+PiA+ID4+Pj4gPiA+IHRydW5rCj4+ID4gPj4+PiA+ID4KPj4gPiA+Pj4+ID4gPiBvbmx5IDEgY29tbWl0IGlzIG1pc3Npbmc6IG15IGxhdGVzdCBjb21taXQgb24gID0KCj4+IG1hdmVuLXNpdGUtcGx1Z2luCj4+ID4gPj4+PiA+ID4gKHRoZSBsYXN0IGNvbW1pdCBmb3IgR2l0IG1pZ3JhdGlvbiBpcyBub3QgdXNlZnVsKQo+PiA+ID4+Pj4gPiA+Cj4+ID4gPj4+PiA+ID4KPj4gPiA+Pj4+ID4gPiBTYW1lIG9uIHNoYXJlZCBzaG93ZWQgbm8gbWlzc2luZyBjb21taXQuCj4+ID4gPj4+PiA+ID4KPj4gPiA+Pj4+ID4gPgo+PiA+ID4+Pj4gPiA+IHdoYXQgbGF0ZXN0IGNvbW1pdCBvZiBtYXZlbi1qYXZhZG9jLXBsdWdpbiBhcmUgeW91IGxvb2tpbmc9CiAgPQoKPj4gZm9yPwo+PiA+ID4+Pj4gPiA+Cj4+ID4gPj4+PiA+ID4gUmVnYXJkcywKPj4gPiA+Pj4+ID4gPgo+PiA+ID4+Pj4gPiA+IEhlcnY9RTkKPj4gPiA+Pj4+ID4gPgo+PiA+ID4+Pj4gPiA+IExlIHNhbWVkaSAxNiBkPUU5Y2VtYnJlIDIwMTcsIDExOjU2OjMxIENFVCBSb2JlcnQgU2Nob2x0ZSA9CmEgID0KCj4+ID1FOWNyaXQgOgo+PiA+ID4+Pj4gPiA+PiBGb3IgZXZlcnlib2R5IGp1c3QgYSB3YXJuaW5nIEkgZmFjZWQgdG9kYXk6Cj4+ID4gPj4+PiA+ID4+IElmIHlvdSBzd2l0Y2ggdG8gdGhlIGdpdCByZXBvcywgcGxlYXNlIG1ha2Ugc3VyZSBhbGwgID0KCj4+IGNvbW1pdHMgYXJlCj4+ID4gPj4+PiA+ID4+IG1pZ3JhdGVkLgo+PiA+ID4+Pj4gPiA+PiBJIG5vdGljZWQgdGhlIGxhdGVzdCBjb21taXRzIG9mIHRoZSBtYXZlbi1qYXZhZG9jLXBsdWdpbiA9CmdvdAo+PiA+ID4+Pj4KPj4gPiA+Pj4+IGxvc3QuCj4+ID4gPj4+Pgo+PiA+ID4+Pj4gPiA+PiB0aGFua3MsCj4+ID4gPj4+PiA+ID4+IFJvYmVydAo+PiA+ID4+Pj4gPiA+Pgo+PiA+ID4+Pj4gPiA+PiBPbiBTYXQsIDA5IERlYyAyMDE3IDE3OjA2OjA5ICswMTAwLCBTdGVwaGVuIENvbm5vbGx5Cj4+ID4gPj4+PiA+ID4+Cj4+ID4gPj4+PiA+ID4+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4gPiA+Pj4+ID4gPj4gPiBJIHNlZSB3ZSBoYXZlIGEgbGFyZ2UgbnVtYmVyIG9mIHJlcG9zIG5vdyBvbiBnaXRib3ggOy0pPQoKPj4gPiA+Pj4+ID4gPj4gPgo+PiA+ID4+Pj4gPiA+PiA+IE9uIFRodSA3IERlYyAyMDE3IGF0IDA3OjAwLCBIZXJ2PUU5IEJPVVRFTVkKPj4gPiA+Pj4+Cj4+ID4gPj4+PiA8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+PiA+ID4+Pj4KPj4gPiA+Pj4+ID4gPj4gd3JvdGU6Cj4+ID4gPj4+PiA+ID4+ID4+IG9rLCBJIGRpZG4ndCB1cGRhdGUgbXkgcmVwbyBjbG9uZTogbm93IHRoZSBydW4taXRzICA9Cgo+PiBwcm9maWxlIGlzCj4+ID4gPj4+PiA+ID4+Cj4+ID4gPj4+PiA+ID4+IGFjdGl2YXRlZAo+PiA+ID4+Pj4gPiA+Pgo+PiA+ID4+Pj4gPiA+PiA+PiB0aGVuIHRoZSBwbGFuIHNob3VsZCBqdXN0IGNvbmZpcm0gIml0IHdvcmtzISIgOikKPj4gPiA+Pj4+ID4gPj4gPj4KPj4gPiA+Pj4+ID4gPj4gPj4gYW5kIGZpbmQgd2hpY2ggam9icyBhcmUgc3BlY2lhbCwgbGlrZSBtYXZlbi1kaXN0LXRvb2wgPQogPQoKPj4gKHdoaWNoCj4+ID4gPj4+Pgo+PiA+ID4+Pj4gaGFzIHRvCj4+ID4gPj4+Pgo+PiA+ID4+Pj4gPiA+PiBiZQo+PiA+ID4+Pj4gPiA+Pgo+PiA+ID4+Pj4gPiA+PiA+PiBzY2hlZHVsZWQgZGFpbHkgaW5zdGVhZCBvZiBjb2RlIGNoYW5nZSwgYW5kIG9uZSBwbGF0Zm89CnJtCj4+ID4gPj4+PiA+ID4+ID4+IG9ubHkpCj4+ID4gPj4+PiA+ID4+ID4+Cj4+ID4gPj4+PiA+ID4+ID4+IFJlZ2FyZHMsCj4+ID4gPj4+PiA+ID4+ID4+Cj4+ID4gPj4+PiA+ID4+ID4+IEhlcnY9RTkKPj4gPiA+Pj4+ID4gPj4gPj4KPj4gPiA+Pj4+ID4gPj4gPj4gTGUgbWVyY3JlZGkgNiBkPUU5Y2VtYnJlIDIwMTcsIDIzOjU4OjQ1IENFVCBTdGVwaGVuICA9Cgo+PiBDb25ub2xseSBhCj4+ID4gPj4+Pgo+PiA+ID4+Pj4gPUU5Y3JpdCA6Cj4+ID4gPj4+PiA+ID4+ID4+ID4gT24gV2VkIDYgRGVjIDIwMTcgYXQgMjI6MzgsIEhlcnY9RTkgQk9VVEVNWQo+PiA+ID4+Pj4KPj4gPiA+Pj4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4+ID4gPj4+Pgo+PiA+ID4+Pj4gPiA+PiA+PiB3cm90ZToKPj4gPiA+Pj4+ID4gPj4gPj4gPiA+IE5vdyB0aGF0IHdlIGhhdmUgMiBBU0YgT3JnYW5pemF0aW9uIEplbmtpbnMgam9icyAgPQoKPj4gKG9uZSBmb3IKPj4gPiA+Pj4+Cj4+ID4gPj4+PiBnaXRib3gKPj4gPiA+Pj4+Cj4+ID4gPj4+PiA+ID4+IFsxXQo+PiA+ID4+Pj4gPiA+Pgo+PiA+ID4+Pj4gPiA+PiA+PiBhbmQKPj4gPiA+Pj4+ID4gPj4gPj4KPj4gPiA+Pj4+ID4gPj4gPj4gPiA+IG9uZQo+PiA+ID4+Pj4gPiA+PiA+PiA+ID4gZm9yIGdpdC13aXA6IHRoYW5rIHlvdSBTdGVwaGVuKSBhbmQgdGhhdCBpdCBsb29rcyA9CiA9Cgo+PiBxdWl0ZQo+PiA+ID4+Pj4gPiA+Pgo+PiA+ID4+Pj4gPiA+PiBzdWNjZXNzZnVsLAo+PiA+ID4+Pj4gPiA+Pgo+PiA+ID4+Pj4gPiA+PiA+PiBsZXQncwo+PiA+ID4+Pj4gPiA+PiA+Pgo+PiA+ID4+Pj4gPiA+PiA+PiA+ID4gcGxhbgo+PiA+ID4+Pj4gPiA+PiA+PiA+ID4gdGhlIG5leHQgc3RlcHMuCj4+ID4gPj4+PiA+ID4+ID4+ID4gPgo+PiA+ID4+Pj4gPiA+PiA+PiA+ID4gSGVyZSBpcyB3aGF0IEkgc2VlOgo+PiA+ID4+Pj4gPiA+PiA+PiA+ID4gMS4gcmVtb3ZhbCBvZiBoYW5kLWRlZmluZWQgSmVua2lucyBqb2JzIHRoYXQgYXJlIG49Cm93Cj4+ID4gPj4+Pgo+PiA+ID4+Pj4gZHVwbGljYXRlcwo+PiA+ID4+Pj4KPj4gPiA+Pj4+ID4gPj4gPj4gPiA+IDIuIHByZXBhcmF0aW9uIG9mIHRoZSA2MCBuZXcgZW1wdHkgZ2l0IHJlcG9zIGZvciAgPQoKPj4gc2hhcmVkICYKPj4gPiA+Pj4+ID4gPj4gPj4gPiA+IHBsdWdpbnMKPj4gPiA+Pj4+ID4gPj4gPj4gPiA+Cj4+ID4gPj4+PiA+ID4+ID4+ID4gPiAzLiBtaWdyYXRpb24gb2YgdGhlIDEgc2hhcmVkIGNvbXBvbmVudCBhbmQgMSBwbHVnaT0KbiAgPQoKPj4gdXNpbmcKPj4gPiA+Pj4+ID4gPj4gPj4KPj4gPiA+Pj4+ID4gPj4gPj4gbWlncmF0ZS0qLnNoCj4+ID4gPj4+PiA+ID4+ID4+Cj4+ID4gPj4+PiA+ID4+ID4+ID4gPiBzY3JpcHRzCj4+ID4gPj4+PiA+ID4+ID4+ID4gPiBbM10gdG8gdGVzdCBhbmQgZXZlbnR1YWxseSByZXdvcmsgdGhlIEplbmtpbnNmaWxlID0KKEkKPj4gPiA+Pj4+Cj4+ID4gPj4+PiBzdXBwb3NlIGl0Cj4+ID4gPj4+Pgo+PiA+ID4+Pj4gPiA+PiB3aWxsCj4+ID4gPj4+PiA+ID4+Cj4+ID4gPj4+PiA+ID4+ID4+ID4gPiByZXF1aXJlCj4+ID4gPj4+PiA+ID4+ID4+ID4gPiBzb21lIGxpdHRsZSBjaGFuZ2UsIHRvIHJ1biBhZGQgInJ1bi1pdHMiIHByb2ZpbGUpCj4+ID4gPj4+PiA+ID4+ID4+ID4KPj4gPiA+Pj4+ID4gPj4gPj4gPiBBcyBmYXIgYXMgSSByZWNhbGwsIEkgYWRkZWQgLVArcnVuLWl0cyBhbHJlYWR5Cj4+ID4gPj4+PiA+ID4+ID4+ID4KPj4gPiA+Pj4+ID4gPj4gPj4gPiBGb3IgdGhlIHBsdWdpbiwgSSdkIGxpa2UgdG8gZG8gdGhlIGpvYiBmb3IKPj4gPiA+Pj4+Cj4+ID4gPj4+PiBtYXZlbi1zaXRlLXBsdWdpbiwKPj4gPiA+Pj4+Cj4+ID4gPj4+PiA+ID4+IHNpbmNlIHdlCj4+ID4gPj4+PiA+ID4+Cj4+ID4gPj4+PiA+ID4+ID4+ID4gPiBleHBlY3QKPj4gPiA+Pj4+ID4gPj4gPj4gPiA+IHRvIHJlbGVhc2UgaXQgc29vbi4KPj4gPiA+Pj4+ID4gPj4gPj4gPiA+IEZvciB0aGUgc2hhcmVkIGNvbXBvbmVudCwgSSBkb24ndCBrbm93IGlmIHRoZXJlIGlzPQogYSAgPQoKPj4gYmVzdAo+PiA+ID4+Pj4gPiA+Pgo+PiA+ID4+Pj4gPiA+PiBjYW5kaWRhdGUKPj4gPiA+Pj4+ID4gPj4KPj4gPiA+Pj4+ID4gPj4gPj4gPiA+IDQuIG9uY2UgcHJldmlvdXMgc3RlcCBpcyBvaywgZG8gdGhlIGZ1bGwgbWlncmF0aW9uPQo6ICA9Cgo+PiBpZgo+PiA+ID4+Pj4KPj4gPiA+Pj4+IHRoZXJlIGFyZQo+PiA+ID4+Pj4KPj4gPiA+Pj4+ID4gPj4gPj4gPiA+IHZvbHVudGVlcnMKPj4gPiA+Pj4+ID4gPj4gPj4gPiA+IGZvciBoZWxwaW5nLCB0aGF0IHdvdWxkIGJlIGdyZWF0LCBzaW5jZSBwb3B1bGF0aW5nPQogID0KCj4+IDYwIGdpdAo+PiA+ID4+Pj4KPj4gPiA+Pj4+IHJlcG9zCj4+ID4gPj4+Pgo+PiA+ID4+Pj4gPiA+PiA+PiB3b24ndAo+PiA+ID4+Pj4gPiA+PiA+PiBiZQo+PiA+ID4+Pj4gPiA+PiA+Pgo+PiA+ID4+Pj4gPiA+PiA+PiA+ID4gcmVhbGx5IGZ1bi4uLgo+PiA+ID4+Pj4gPiA+PiA+PiA+ID4KPj4gPiA+Pj4+ID4gPj4gPj4gPiA+IEFuZCBhcyBwYXJ0IG9mIDYwIGVtcHR5IGdpdCByZXBvcyBjcmVhdGlvbiwgSSAgPQoKPj4gcHJvcG9zZSB0bwo+PiA+ID4+Pj4KPj4gPiA+Pj4+IG1pZ3JhdGUKPj4gPiA+Pj4+Cj4+ID4gPj4+PiA+ID4+IHRoZQo+PiA+ID4+Pj4gPiA+Pgo+PiA+ID4+Pj4gPiA+PiA+PiA+ID4gIkdvb2dsZQo+PiA+ID4+Pj4gPiA+PiA+PiA+ID4gcmVwbyBtYW5pZmVzdCIgbWF2ZW4tYWdncmVnYXRvciBbNF0gdG8gQVNGOiBteSAgPQoKPj4gcGVyc29uYWwKPj4gPiA+Pj4+Cj4+ID4gPj4+PiB1c2UgaGFzCj4+ID4gPj4+Pgo+PiA+ID4+Pj4gPiA+PiBiZWVuCj4+ID4gPj4+PiA+ID4+Cj4+ID4gPj4+PiA+ID4+ID4+IHF1aXRlCj4+ID4gPj4+PiA+ID4+ID4+Cj4+ID4gPj4+PiA+ID4+ID4+ID4gPiBzdWNjZXNzZnVsLCBJIGhvcGUgaXQncyB0aGUgc2FtZSBmb3Igb3RoZXJzLiBQZXJoYT0KcHMKPj4gPiA+Pj4+Cj4+ID4gPj4+PiB0aGVyZSBhcmUKPj4gPiA+Pj4+Cj4+ID4gPj4+PiA+ID4+ID4+IGJldHRlcgo+PiA+ID4+Pj4gPiA+PiA+Pgo+PiA+ID4+Pj4gPiA+PiA+PiA+ID4gaWRlYXMKPj4gPiA+Pj4+ID4gPj4gPj4gPiA+IGZvciBpdHMgbmFtZTogbWF2ZW4tYWdncmVnYXRvcgo+PiA+ID4+Pj4gPiA+PiA+PiA+ID4KPj4gPiA+Pj4+ID4gPj4gPj4gPiA+IEFueSBvdGhlciBpZGVhPyBhbnkgb2JqZWN0aW9uPwo+PiA+ID4+Pj4gPiA+PiA+PiA+ID4KPj4gPiA+Pj4+ID4gPj4gPj4gPiA+IFJlZ2FyZHMsCj4+ID4gPj4+PiA+ID4+ID4+ID4gPgo+PiA+ID4+Pj4gPiA+PiA+PiA+ID4gSGVydj1FOQo+PiA+ID4+Pj4gPiA+PiA+PiA+ID4KPj4gPiA+Pj4+ID4gPj4gPj4gPiA+IFsxXQo+PiA+ID4+Pj4KPj4gPiA+Pj4+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tYm94Lwo+PiA+ID4+Pj4KPj4gPiA+Pj4+ID4gPj4gPj4gPiA+IFsyXQo+PiA+ID4+Pj4KPj4gPiA+Pj4+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4td2lwLwo+PiA+ID4+Pj4KPj4gPiA+Pj4+ID4gPj4gPj4gPiA+IFszXQo+PiA+ID4+Pj4gPiA+Pgo+PiA+ID4+Pj4gPiA+PiAgPQoKPj4gaHR0cHM6Ly9zdm4uYXBhY2hlLm9yZy92aWV3dmMvbWF2ZW4vc2FuZGJveC90cnVuay9zY3JpcHRzL2dpdC8KPj4gPiA+Pj4+ID4gPj4KPj4gPiA+Pj4+ID4gPj4gPj4gPiA+IFs0XSBodHRwczovL2dpdGh1Yi5jb20vaGJvdXRlbXkvbWF2ZW4tYWdncmVnYXRvcgo+PiA+ID4KPj4gPiA+ICA9Cgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cgo+PiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+Cj4+ID4gPgo+PiA+ID4gID0KCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KCj4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+Cj4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLS0KPj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQoKPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODg2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBEZWMgMzAgMjA6MDg6NTcgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODg2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDE3MTk2MTdBMzAKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAzMCBEZWMgMjAxNyAyMDowODo1NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDM4MDE4IGludm9rZWQgYnkgdWlkIDUwMCk7IDMwIERlYyAyMDE3IDIwOjA4OjU2IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzNzkyNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAzMCBEZWMgMjAxNyAyMDowODo1NiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM3OTEzIGludm9rZWQgYnkgdWlkIDk5KTsgMzAgRGVjIDIwMTcgMjA6MDg6NTYgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMzAgRGVjIDIwMTcgMjA6MDg6NTYgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCAxMEFBRTFBMDBBNQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMzAgRGVjIDIwMTcgMjA6MDg6NTQgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IE1hdmVuIDMuNS4zOiBNTkctNjMwNQpSZWZlcmVuY2VzOiA8YWRjYzk3YTYtMmZjMi0wODViLTZjYTctNmQ0YWMwODk1MmNmQGdteC5kZT4KIDxvcC56Yno2dzRzNWtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KIDxmMzIzNjBkNy02NGQyLTk3NTktOTcxZS04NjU2YzQyZGQwMjFAZ214LmRlPgogPG9wLnpiMmxwYnVwa2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgogPDQ1MzQ0MWIyLTAyN2MtM2NmYy00NDk1LThhYWY5OWJkZWY4NEBnbXguZGU+CiA8b3AuemIybmk1ZTRrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkRhdGU6IFNhdCwgMzAgRGVjIDIwMTcgMjE6MDg6NTEgKzAxMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AuemIyc3cxdGJrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkluLVJlcGx5LVRvOiA8b3AuemIybmk1ZTRrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKKzEgdG8gbWVyZ2Ugd2l0aCB0aGUgbGF0ZXN0IGNvbW1pdHMuCgpSb2JlcnQKCk9uIFNhdCwgMzAgRGVjIDIwMTcgMTk6MTI6MzEgKzAxMDAsIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4gIAp3cm90ZToKCj4gSGkgS2FybCBIZWlueiwKPgo+IFBsZWFzZSB2ZXJpZnkgbXkgY29tbWl0Lgo+Cj4gdGhhbmtzLAo+IFJvYmVydAo+Cj4gT24gU2F0LCAzMCBEZWMgMjAxNyAxODozNjoyOSArMDEwMCwgS2FybCBIZWlueiBNYXJiYWlzZSAgCj4gPGtobWFyYmFpc2VAZ214LmRlPiB3cm90ZToKPgo+PiBIaSwKPj4KPj4KPj4gT24gMzAvMTIvMTcgMTg6MzMsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+Pj4gU3VyZSwgbGV0IG1lIHBpY2sgdGhpcyB1cAo+Pgo+PiBJIGhhdmUgYWxyZWFkeSBpbXBsZW1lbnRlZCBkaWZmZXJlbnQgc29sdXRpb25zIGJ1dCBiYXNlZCBvbiBwZXJmb3JtYW5jZSAgCj4+IG1lYXN1cmVtZW50cyB0aGUgb25lIEkgaGF2ZSBpbXBsZW1lbnRlZCBzZWVtZWQgdG8gYmUgdGhlIGZhc3Rlc3QgIAo+PiBzb2x1dGlvbiA/Li4uCj4+Cj4+Cj4+IEtpbmQgcmVnYXJkcwo+PiBLYXJsIEhlaW56IE1hcmJhaXNlCj4+PiAgUm9iZXJ0Cj4+PiAgT24gU2F0LCAzMCBEZWMgMjAxNyAxNToxNTo0MSArMDEwMCwgS2FybCBIZWlueiBNYXJiYWlzZSAgCj4+PiA8a2htYXJiYWlzZUBnbXguZGU+IHdyb3RlOgo+Pj4KPj4+PiBIaSBSb2JlcnQsCj4+Pj4KPj4+PiBPbiAyOS8xMi8xNyAxMToxOCwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4+Pj4+IEhpIEthcmwgSGVpbnosCj4+Pj4+ICBJIHRoaW5rIHRoZSBSRWdFeHAgdXNhZ2UgY2FuIGJlIGltcHJvdmVkLgo+Pj4+PiBOb3cgaXQgdXNlZCBmb3IgYnVpbGRpbmcgdXAgYSBuZXcgU3RyaW5nIGZvbGxvd2VkIGJ5IHNlYXJjaGluZywgSSAgCj4+Pj4+IHdvdWxkIGV4cGVjdCB0aGF0IHNlYXJjaGluZyBmb3IgJHsoLispfSBncm91cHMgdG8gYmUgbW9yZSBlZmZpY2llbnQuCj4+Pj4KPj4+PiBEbyB5b3UgaGF2ZSBzb21lIHN1Z2dlc3Rpb25zIHdoYXQgeW91IGV4YWN0bHkgaGF2ZSBpbiBtaW5kPwo+Pj4+Cj4+Pj4gS2luZCByZWdhcmRzCj4+Pj4gS2FybCBIZWlueiBNYXJiYWlzZQo+Pj4+PiAgdGhhbmtzLAo+Pj4+PiBSb2JlcnQKPj4+Pj4gICBPbiBGcmksIDI5IERlYyAyMDE3IDExOjEwOjM2ICswMTAwLCBLYXJsIEhlaW56IE1hcmJhaXNlICAKPj4+Pj4gPGtobWFyYmFpc2VAZ214LmRlPiB3cm90ZToKPj4+Pj4KPj4+Pj4+IEhpLAo+Pj4+Pj4KPj4+Pj4+IEkgd291bGQgbGlrZSB0byBrbm93IGlmIHRoZXJlIGFyZSBhbnkgb2JqZWN0aW9ucyB0byBtZXJnZSBNTkctNjMwNSAgCj4+Pj4+PiBpbnRvIG1hc3RlciAoSmVua2lucyBpcyBmaW5lIFsxXSkuCj4+Pj4+Pgo+Pj4+Pj4gS2luZCByZWdhcmRzCj4+Pj4+PiBLYXJsIEhlaW56IE1hcmJhaXNlCj4+Pj4+Pgo+Pj4+Pj4gWzFdOiAgCj4+Pj4+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL2pvYi9tYXZlbi13aXAvam9iL21hdmVuL2pvYi9NTkctNjMwNS12YWxpZGF0aW9uLW9mLWNpLWZyaWVuZGx5Lwo+Pgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ5MDItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgU3VuIERlYyAzMSAxMjowMjo0OSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ5MDItYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQUMyQUUxNzlBQgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBTdW4sIDMxIERlYyAyMDE3IDEyOjAyOjQ5ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgOTU3NjcgaW52b2tlZCBieSB1aWQgNTAwKTsgMzEgRGVjIDIwMTcgMTI6MDI6NDkgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDk1Njg4IGludm9rZWQgYnkgdWlkIDUwMCk7IDMxIERlYyAyMDE3IDEyOjAyOjQ5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTU2NzYgaW52b2tlZCBieSB1aWQgOTkpOyAzMSBEZWMgMjAxNyAxMjowMjo0OSAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAzMSBEZWMgMjAxNyAxMjowMjo0OSArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDg3MzdEMUEwMEZCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAzMSBEZWMgMjAxNyAxMjowMjo0OCArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIFNpdGUgUGx1Z2luIHZlcnNpb24gMy43ClJlZmVyZW5jZXM6IDwyNTE0OTA0LnlycWZOQ1ExMjRAZ2lnYT4KRGF0ZTogU3VuLCAzMSBEZWMgMjAxNyAxMzowMjo0NyArMDEwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBRdW90ZWQtUHJpbnRhYmxlCkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC56YjMwMnh6MWtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KSW4tUmVwbHktVG86IDwyNTE0OTA0LnlycWZOQ1ExMjRAZ2lnYT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgorMQoKT24gVGh1LCAyOCBEZWMgMjAxNyAxNzoyMDozMyArMDEwMCwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuPQpmcj4gID0KCndyb3RlOgoKPiBIaSwKPiBXZSBzb2x2ZWQgOCBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhPwo+IHByb2plY3RJZD0zRDEyMzE3OTIzJnZlcnNpb249M0QxMjMzODcyNiZzdHlsZU5hbWU9M0RUZXh0Cj4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUzRCUyME1TSVRFJTIwQT0KTkQKPiAlMjBzdGF0dXMlMjAlM0QlMjBPcGVuJTIwT1JERVIlMjBCWSUyMGtleSUyMERFU0MlMkMlMjBwcmlvcml0eSUyMERFU0MKPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM4Ni8KPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzg2L29yZy9hcGFjPQpoZS8KPiBtYXZlbi9wbHVnaW5zL21hdmVuLXNpdGUtcGx1Z2luLzMuNy9tYXZlbi1zaXRlLXBsdWdpbi0zLjctc291cmNlLXJlbGVhPQpzZS56aXAKPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBtYXZlbi1zaXRlLXBsdWdpbi0zLjctc291cmNlLXJlbGVhc2UuemlwIHNoYTE6Cj4gOWZhNGIyODA1M2Y0Y2I3OWEwODg2MzU2OGE2NmMxZTg3ZDhiYmM5Mwo+IFN0YWdpbmcgc2l0ZToKPiBodHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy1hcmNoaXZlcy9tYXZlbi1zaXRlLXBsdWdpbi1MQVRFU1QvCj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bT0KbAo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4gWyBdICsxCj4gWyBdICswCj4gWyBdIC0xCj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDc3OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTYXQgRGVjIDE2IDEwOjU2OjI4IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDc3OC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFMUJCQjE3QjZBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFNhdCwgMTYgRGVjIDIwMTcgMTA6NTY6MjggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2NTczNiBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNiBEZWMgMjAxNyAxMDo1NjoyOCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjU2NDUgaW52b2tlZCBieSB1aWQgNTAwKTsgMTYgRGVjIDIwMTcgMTA6NTY6MjggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2NTYzMSBpbnZva2VkIGJ5IHVpZCA5OSk7IDE2IERlYyAyMDE3IDEwOjU2OjI4IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTYXQsIDE2IERlYyAyMDE3IDEwOjU2OjI4ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgQzMyOTIxQTAxNTgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTYXQsIDE2IERlYyAyMDE3IDEwOjU2OjI1ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFtJTVBPUlRBTlRdIFJlOiBHaXQgbWlncmF0aW9uIG5leHQgc3RlcHMKUmVmZXJlbmNlczogPDE5MDA1NTguR0Z4OVFsZmFFMkBnaWdhPgogPENBK25Qbk15Vm5XbTQtdEFmYWVZdnRrMXg4SDVUMDBGRW8rU0o2cz15WVRnbj04SFh1UUBtYWlsLmdtYWlsLmNvbT4KIDwxNjE4MzAyLkUzYXJPcjVEeUpAZ2lnYT4KIDxDQStuUG5Nd2k5ZHhFUmM4VE42YXdnRWFHTkdMUHVEblJ6Y1M4ZEZKalRuelpjM1QzZlFAbWFpbC5nbWFpbC5jb20+CkRhdGU6IFNhdCwgMTYgRGVjIDIwMTcgMTE6NTY6MzEgKzAxMDAKWC1Qcmlvcml0eTogMSAoSGlnaGVzdCkKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogUXVvdGVkLVByaW50YWJsZQpGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AuemJiNTBoY2trZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkluLVJlcGx5LVRvOiA8Q0ErblBuTXdpOWR4RVJjOFRONmF3Z0VhR05HTFB1RG5SemNTOGRGSmpUbnpaYzNUM2ZRQG1haWwuZ21haWwuY29tPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCkZvciBldmVyeWJvZHkganVzdCBhIHdhcm5pbmcgSSBmYWNlZCB0b2RheToKSWYgeW91IHN3aXRjaCB0byB0aGUgZ2l0IHJlcG9zLCBwbGVhc2UgbWFrZSBzdXJlIGFsbCBjb21taXRzIGFyZSBtaWdyYXRlPQpkLgpJIG5vdGljZWQgdGhlIGxhdGVzdCBjb21taXRzIG9mIHRoZSBtYXZlbi1qYXZhZG9jLXBsdWdpbiBnb3QgbG9zdC4KCnRoYW5rcywKUm9iZXJ0CgpPbiBTYXQsIDA5IERlYyAyMDE3IDE3OjA2OjA5ICswMTAwLCBTdGVwaGVuIENvbm5vbGx5ICA9Cgo8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cgo+IEkgc2VlIHdlIGhhdmUgYSBsYXJnZSBudW1iZXIgb2YgcmVwb3Mgbm93IG9uIGdpdGJveCA7LSkKPgo+IE9uIFRodSA3IERlYyAyMDE3IGF0IDA3OjAwLCBIZXJ2PUU5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4gd3I9Cm90ZToKPgo+PiBvaywgSSBkaWRuJ3QgdXBkYXRlIG15IHJlcG8gY2xvbmU6IG5vdyB0aGUgcnVuLWl0cyBwcm9maWxlIGlzIGFjdGl2YXQ9CmVkCj4+Cj4+IHRoZW4gdGhlIHBsYW4gc2hvdWxkIGp1c3QgY29uZmlybSAiaXQgd29ya3MhIiA6KQo+Pgo+PiBhbmQgZmluZCB3aGljaCBqb2JzIGFyZSBzcGVjaWFsLCBsaWtlIG1hdmVuLWRpc3QtdG9vbCAod2hpY2ggaGFzIHRvIGI9CmUKPj4gc2NoZWR1bGVkIGRhaWx5IGluc3RlYWQgb2YgY29kZSBjaGFuZ2UsIGFuZCBvbmUgcGxhdGZvcm0gb25seSkKPj4KPj4gUmVnYXJkcywKPj4KPj4gSGVydj1FOQo+Pgo+PiBMZSBtZXJjcmVkaSA2IGQ9RTljZW1icmUgMjAxNywgMjM6NTg6NDUgQ0VUIFN0ZXBoZW4gQ29ubm9sbHkgYSA9RTljcmk9CnQgOgo+PiA+IE9uIFdlZCA2IERlYyAyMDE3IGF0IDIyOjM4LCBIZXJ2PUU5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj49CiAgPQoKPj4gd3JvdGU6Cj4+ID4gPiBOb3cgdGhhdCB3ZSBoYXZlIDIgQVNGIE9yZ2FuaXphdGlvbiBKZW5raW5zIGpvYnMgKG9uZSBmb3IgZ2l0Ym94ID0KWzFdCj4+IGFuZAo+PiA+ID4gb25lCj4+ID4gPiBmb3IgZ2l0LXdpcDogdGhhbmsgeW91IFN0ZXBoZW4pIGFuZCB0aGF0IGl0IGxvb2tzIHF1aXRlIHN1Y2Nlc3NmdT0KbCwKPj4gbGV0J3MKPj4gPiA+IHBsYW4KPj4gPiA+IHRoZSBuZXh0IHN0ZXBzLgo+PiA+ID4KPj4gPiA+IEhlcmUgaXMgd2hhdCBJIHNlZToKPj4gPiA+IDEuIHJlbW92YWwgb2YgaGFuZC1kZWZpbmVkIEplbmtpbnMgam9icyB0aGF0IGFyZSBub3cgZHVwbGljYXRlcwo+PiA+ID4KPj4gPiA+IDIuIHByZXBhcmF0aW9uIG9mIHRoZSA2MCBuZXcgZW1wdHkgZ2l0IHJlcG9zIGZvciBzaGFyZWQgJiBwbHVnaW5zPQoKPj4gPiA+Cj4+ID4gPiAzLiBtaWdyYXRpb24gb2YgdGhlIDEgc2hhcmVkIGNvbXBvbmVudCBhbmQgMSBwbHVnaW4gdXNpbmcgID0KCj4+IG1pZ3JhdGUtKi5zaAo+PiA+ID4gc2NyaXB0cwo+PiA+ID4gWzNdIHRvIHRlc3QgYW5kIGV2ZW50dWFsbHkgcmV3b3JrIHRoZSBKZW5raW5zZmlsZSAoSSBzdXBwb3NlIGl0IHc9CmlsbAo+PiA+ID4gcmVxdWlyZQo+PiA+ID4gc29tZSBsaXR0bGUgY2hhbmdlLCB0byBydW4gYWRkICJydW4taXRzIiBwcm9maWxlKQo+PiA+Cj4+ID4gQXMgZmFyIGFzIEkgcmVjYWxsLCBJIGFkZGVkIC1QK3J1bi1pdHMgYWxyZWFkeQo+PiA+Cj4+ID4gRm9yIHRoZSBwbHVnaW4sIEknZCBsaWtlIHRvIGRvIHRoZSBqb2IgZm9yIG1hdmVuLXNpdGUtcGx1Z2luLCBzaW5jZT0KIHdlCj4+ID4KPj4gPiA+IGV4cGVjdAo+PiA+ID4gdG8gcmVsZWFzZSBpdCBzb29uLgo+PiA+ID4gRm9yIHRoZSBzaGFyZWQgY29tcG9uZW50LCBJIGRvbid0IGtub3cgaWYgdGhlcmUgaXMgYSBiZXN0IGNhbmRpZGE9CnRlCj4+ID4gPgo+PiA+ID4gNC4gb25jZSBwcmV2aW91cyBzdGVwIGlzIG9rLCBkbyB0aGUgZnVsbCBtaWdyYXRpb246IGlmIHRoZXJlIGFyZQo+PiA+ID4gdm9sdW50ZWVycwo+PiA+ID4gZm9yIGhlbHBpbmcsIHRoYXQgd291bGQgYmUgZ3JlYXQsIHNpbmNlIHBvcHVsYXRpbmcgNjAgZ2l0IHJlcG9zICA9Cgo+PiB3b24ndAo+PiBiZQo+PiA+ID4gcmVhbGx5IGZ1bi4uLgo+PiA+ID4KPj4gPiA+IEFuZCBhcyBwYXJ0IG9mIDYwIGVtcHR5IGdpdCByZXBvcyBjcmVhdGlvbiwgSSBwcm9wb3NlIHRvIG1pZ3JhdGUgPQp0aGUKPj4gPiA+ICJHb29nbGUKPj4gPiA+IHJlcG8gbWFuaWZlc3QiIG1hdmVuLWFnZ3JlZ2F0b3IgWzRdIHRvIEFTRjogbXkgcGVyc29uYWwgdXNlIGhhcyBiPQplZW4KPj4gcXVpdGUKPj4gPiA+IHN1Y2Nlc3NmdWwsIEkgaG9wZSBpdCdzIHRoZSBzYW1lIGZvciBvdGhlcnMuIFBlcmhhcHMgdGhlcmUgYXJlICA9Cgo+PiBiZXR0ZXIKPj4gPiA+IGlkZWFzCj4+ID4gPiBmb3IgaXRzIG5hbWU6IG1hdmVuLWFnZ3JlZ2F0b3IKPj4gPiA+Cj4+ID4gPiBBbnkgb3RoZXIgaWRlYT8gYW55IG9iamVjdGlvbj8KPj4gPiA+Cj4+ID4gPiBSZWdhcmRzLAo+PiA+ID4KPj4gPiA+IEhlcnY9RTkKPj4gPiA+Cj4+ID4gPiBbMV0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvCj4+ID4gPgo+PiA+ID4gWzJdIGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4td2lwLwo+PiA+ID4KPj4gPiA+IFszXSBodHRwczovL3N2bi5hcGFjaGUub3JnL3ZpZXd2Yy9tYXZlbi9zYW5kYm94L3RydW5rL3NjcmlwdHMvZ2l0PQovCj4+ID4gPgo+PiA+ID4gWzRdIGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1hZ2dyZWdhdG9yCj4+ID4gPgo+PiA+ID4gID0KCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KCj4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4KPj4gPiA+IC0tCj4+ID4KPj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPj4KPj4KPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQoKPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pgo+PiAtLQo+IFNlbnQgZnJvbSBteSBwaG9uZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NzgwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFNhdCBEZWMgMTYgMTI6MDE6MDMgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzgwLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDBBNTYxMTdDNEQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU2F0LCAxNiBEZWMgMjAxNyAxMjowMTowMyArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDE5MDg0IGludm9rZWQgYnkgdWlkIDUwMCk7IDE2IERlYyAyMDE3IDEyOjAxOjAyIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxOTAwNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNiBEZWMgMjAxNyAxMjowMTowMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDE4OTkzIGludm9rZWQgYnkgdWlkIDk5KTsgMTYgRGVjIDIwMTcgMTI6MDE6MDIgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFNhdCwgMTYgRGVjIDIwMTcgMTI6MDE6MDIgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCAyQTczRDFBMDA1MgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFNhdCwgMTYgRGVjIDIwMTcgMTI6MDE6MDAgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtJTVBPUlRBTlRdIFJlOiBHaXQgbWlncmF0aW9uIG5leHQgc3RlcHMKUmVmZXJlbmNlczogPDE5MDA1NTguR0Z4OVFsZmFFMkBnaWdhPgogPENBK25Qbk13aTlkeEVSYzhUTjZhd2dFYUdOR0xQdURuUnpjUzhkRkpqVG56WmMzVDNmUUBtYWlsLmdtYWlsLmNvbT4KIDxvcC56YmI1MGhja2tka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4gPDMyNzIxNDEuVHNISHFVWkRrcEBnaWdhPgpEYXRlOiBTYXQsIDE2IERlYyAyMDE3IDEzOjAxOjA1ICswMTAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IFF1b3RlZC1QcmludGFibGUKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnpiYjh6M3p6a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgpJbi1SZXBseS1UbzogPDMyNzIxNDEuVHNISHFVWkRrcEBnaWdhPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCkkgd2FzIHRyaWdnZXJlZCBieSBzb21lIGZhaWxpbmcgdW5pdCB0ZXN0cywgd2hpY2ggc2hvdWxkIGhhdmUgYmVlbiBzb2x2ZT0KZCAgPQoKaW4gbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjAKCk15IGxhc3QgY29tbWl0IGFjY29yZGluZyB0byBHSVQgd2FzIG5vdmVtYmVyIDE4dGgKTXkgbGFzdCBjb21taXQgYWNjb3JkaW5nIHRvIFNWTiB3YXMgZGVjZW1iZXIgM3JkCgpjb21wYXJpbmcgc3ZubG9nIHdpdGggZ2l0bG9nIG1vc3Qgb2YgdGhlc2UgY29tbWl0cyBhcmUgbG9zdDoKCm1vdmVkIHRvIGdpdAotLS0tClttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSBmb3IgbmV4dCBkZXZlbG9wbWVudCBpdGVyYXRpb24KLS0tLQpbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgcmVsZWFzZSBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAotLS0tCltNSkFWQURPQy00OThdICJtb2R1bGUgbm90IGZvdW5kIiB3aGVuIEphdmEgOSBtb2R1bGUtaW5mbyBwcmVzZW50ClN1cHBvcnQgYWdncmF0ZWQgamF2YWRvYwotLS0tClNraXAgc2V2ZXJhbCB1bml0dGVzdHMgZm9yIEphdmE5Ci0tLS0KSkRLLTgwMzIyMDUgd2FzIGNsb3NlZCBhcyBub3QgYW4gaXNzdWUsIHNvIG5vdCBzb2x2ZWQgaW4gSmF2YTkuCk5lZWQgdG8gcmV2aWV3IHRoZSBjb25jbHVzaW9uCi0tLS0KVXBncmFkZSBtb2NraXRvIHRvIHJlbW92ZSB3YXJuaW5nIGFib3V0IGlsbGVnYWwgcmVmbGVjdGl2ZSBhY2Nlc3MKLS0tLQpJbXByb3ZlIFRlc3RKYXZhZG9jUmVwb3J0VGVzdCN0ZXN0VGVzdEphdmFkb2MKSjggd2FybnMgYW5kIGNvbnRpbnVlcyB3aXRoIG1pc3NpbmcgZGVwZW5kZW5jeSwgSjkgZmFpbHMuCkluIGZhY3QgdGVzdCB3YXMgd3Jvbmc6IGRlcGVuZGVuY3kgc2hvdWxkIGhhdmUgYmVlbiBvbiBjbGFzc3BhdGgKLS0tLQp1bml0dGVzdCBzaG91bGQgcHJlZmVyIEpBVkFfSE9NRSB3aGVuIGV4ZWN1dGluZyBmcm9tIGNtZGxpbmUKV2hlbiBydW5uaW5nIHdpdGggSmF2YTkrIG5vIG5lZWQgdG8gc3dpdGNoIGZyb20ganJlIHRvIGpkayBkaXJlY3RvcnkgID0KCihqZXAyMjApCi0tLS0KTUpBVkFET0MtNTAyIFVwZGF0ZSBERUZBVUxUX0pBVkFfQVBJX0xJTktTCi0tLS0Kc2Vzc2lvbiBpcyByZXF1aXJlZCBwYXJhbWV0ZXIsIHNvIGNhbm5vdCBiZSBudWxsLiBGaXggcmVsYXRlZCB1bml0dGVzdHMKLS0tLQpBZGQgcHJvamVjdC9hcnRpZmFjdCBrZXkgdG8gc2V0IG9mIHNvdXJjZVBhdGhzIHRvIHJlY29nbml6ZSByZWFjdG9yICA9Cgpwcm9qZWN0cyB2ZXJzdXMgZGVwZW5kZW5jaWVzCi0tLS0KR3JvdXAgc2V0cyBvZiBzb3VyY2VwYXRocyBwZXIgcHJvamVjdCwgaW4gcHJlcGFyZSBvZiB1c2FnZSBvZiAgPQoKbW9kdWxlLXNvdXJjZS1wYXRoLgotLS0tClN3aXRjaCBmcm9tIExpc3QgdG8gQ29sbGVjdGlvbiB0byBtYWtlIGl0IGVhc2llciB0byB1c2UgU2V0cyB3aGVuIHByZWZlcj0KcmVkCi0tLS0KW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIGZvciBuZXh0IGRldmVsb3BtZW50IGl0ZXJhdGlvbgotLS0tClttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSByZWxlYXNlIG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wCi0tLS0KCgoKCk9uIFNhdCwgMTYgRGVjIDIwMTcgMTI6NTM6MjMgKzAxMDAsIEhlcnY9RTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLj0KZnI+ICA9Cgp3cm90ZToKCj4gbG9va2luZyBhdCBjb21taXRzQCBjb250ZW50IGh0dHBzOi8vbGlzdHMuYXBhY2hlLm9yZy9saXN0Lmh0bWw/Cj4gY29tbWl0c0BtYXZlbi5hcGFjaGUub3JnIHdpdGggc3ViamVjdCBjb250YWluaW5nICJtYXZlbi9wbHVnaW5zL3RydW5rIj0KCj4KPiBhbmQgcGx1Z2lucyBzdm4yZ2l0IG1pcnJvciAgPQoKPiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvY29tbWl0cy8KPiB0cnVuawo+Cj4gb25seSAxIGNvbW1pdCBpcyBtaXNzaW5nOiBteSBsYXRlc3QgY29tbWl0IG9uIG1hdmVuLXNpdGUtcGx1Z2luCj4gKHRoZSBsYXN0IGNvbW1pdCBmb3IgR2l0IG1pZ3JhdGlvbiBpcyBub3QgdXNlZnVsKQo+Cj4KPiBTYW1lIG9uIHNoYXJlZCBzaG93ZWQgbm8gbWlzc2luZyBjb21taXQuCj4KPgo+IHdoYXQgbGF0ZXN0IGNvbW1pdCBvZiBtYXZlbi1qYXZhZG9jLXBsdWdpbiBhcmUgeW91IGxvb2tpbmcgZm9yPwo+Cj4gUmVnYXJkcywKPgo+IEhlcnY9RTkKPgo+IExlIHNhbWVkaSAxNiBkPUU5Y2VtYnJlIDIwMTcsIDExOjU2OjMxIENFVCBSb2JlcnQgU2Nob2x0ZSBhID1FOWNyaXQgOgo+PiBGb3IgZXZlcnlib2R5IGp1c3QgYSB3YXJuaW5nIEkgZmFjZWQgdG9kYXk6Cj4+IElmIHlvdSBzd2l0Y2ggdG8gdGhlIGdpdCByZXBvcywgcGxlYXNlIG1ha2Ugc3VyZSBhbGwgY29tbWl0cyBhcmUgID0KCj4+IG1pZ3JhdGVkLgo+PiBJIG5vdGljZWQgdGhlIGxhdGVzdCBjb21taXRzIG9mIHRoZSBtYXZlbi1qYXZhZG9jLXBsdWdpbiBnb3QgbG9zdC4KPj4KPj4gdGhhbmtzLAo+PiBSb2JlcnQKPj4KPj4gT24gU2F0LCAwOSBEZWMgMjAxNyAxNzowNjowOSArMDEwMCwgU3RlcGhlbiBDb25ub2xseQo+Pgo+PiA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4+ID4gSSBzZWUgd2UgaGF2ZSBhIGxhcmdlIG51bWJlciBvZiByZXBvcyBub3cgb24gZ2l0Ym94IDstKQo+PiA+Cj4+ID4gT24gVGh1IDcgRGVjIDIwMTcgYXQgMDc6MDAsIEhlcnY9RTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLmZyPj0KICA9Cgo+PiB3cm90ZToKPj4gPj4gb2ssIEkgZGlkbid0IHVwZGF0ZSBteSByZXBvIGNsb25lOiBub3cgdGhlIHJ1bi1pdHMgcHJvZmlsZSBpcyAgPQoKPj4gYWN0aXZhdGVkCj4+ID4+Cj4+ID4+IHRoZW4gdGhlIHBsYW4gc2hvdWxkIGp1c3QgY29uZmlybSAiaXQgd29ya3MhIiA6KQo+PiA+Pgo+PiA+PiBhbmQgZmluZCB3aGljaCBqb2JzIGFyZSBzcGVjaWFsLCBsaWtlIG1hdmVuLWRpc3QtdG9vbCAod2hpY2ggaGFzIHQ9Cm8gID0KCj4+IGJlCj4+ID4+IHNjaGVkdWxlZCBkYWlseSBpbnN0ZWFkIG9mIGNvZGUgY2hhbmdlLCBhbmQgb25lIHBsYXRmb3JtIG9ubHkpCj4+ID4+Cj4+ID4+IFJlZ2FyZHMsCj4+ID4+Cj4+ID4+IEhlcnY9RTkKPj4gPj4KPj4gPj4gTGUgbWVyY3JlZGkgNiBkPUU5Y2VtYnJlIDIwMTcsIDIzOjU4OjQ1IENFVCBTdGVwaGVuIENvbm5vbGx5IGEgPUU5PQpjcml0IDoKPj4gPj4gPiBPbiBXZWQgNiBEZWMgMjAxNyBhdCAyMjozOCwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuPQpmcj4KPj4gPj4KPj4gPj4gd3JvdGU6Cj4+ID4+ID4gPiBOb3cgdGhhdCB3ZSBoYXZlIDIgQVNGIE9yZ2FuaXphdGlvbiBKZW5raW5zIGpvYnMgKG9uZSBmb3IgZ2l0Yj0Kb3ggID0KCj4+IFsxXQo+PiA+Pgo+PiA+PiBhbmQKPj4gPj4KPj4gPj4gPiA+IG9uZQo+PiA+PiA+ID4gZm9yIGdpdC13aXA6IHRoYW5rIHlvdSBTdGVwaGVuKSBhbmQgdGhhdCBpdCBsb29rcyBxdWl0ZSAgPQoKPj4gc3VjY2Vzc2Z1bCwKPj4gPj4KPj4gPj4gbGV0J3MKPj4gPj4KPj4gPj4gPiA+IHBsYW4KPj4gPj4gPiA+IHRoZSBuZXh0IHN0ZXBzLgo+PiA+PiA+ID4KPj4gPj4gPiA+IEhlcmUgaXMgd2hhdCBJIHNlZToKPj4gPj4gPiA+IDEuIHJlbW92YWwgb2YgaGFuZC1kZWZpbmVkIEplbmtpbnMgam9icyB0aGF0IGFyZSBub3cgZHVwbGljYXRlPQpzCj4+ID4+ID4gPgo+PiA+PiA+ID4gMi4gcHJlcGFyYXRpb24gb2YgdGhlIDYwIG5ldyBlbXB0eSBnaXQgcmVwb3MgZm9yIHNoYXJlZCAmIHBsdWc9Cmlucwo+PiA+PiA+ID4KPj4gPj4gPiA+IDMuIG1pZ3JhdGlvbiBvZiB0aGUgMSBzaGFyZWQgY29tcG9uZW50IGFuZCAxIHBsdWdpbiB1c2luZwo+PiA+Pgo+PiA+PiBtaWdyYXRlLSouc2gKPj4gPj4KPj4gPj4gPiA+IHNjcmlwdHMKPj4gPj4gPiA+IFszXSB0byB0ZXN0IGFuZCBldmVudHVhbGx5IHJld29yayB0aGUgSmVua2luc2ZpbGUgKEkgc3VwcG9zZSBpPQp0ICA9Cgo+PiB3aWxsCj4+ID4+ID4gPiByZXF1aXJlCj4+ID4+ID4gPiBzb21lIGxpdHRsZSBjaGFuZ2UsIHRvIHJ1biBhZGQgInJ1bi1pdHMiIHByb2ZpbGUpCj4+ID4+ID4KPj4gPj4gPiBBcyBmYXIgYXMgSSByZWNhbGwsIEkgYWRkZWQgLVArcnVuLWl0cyBhbHJlYWR5Cj4+ID4+ID4KPj4gPj4gPiBGb3IgdGhlIHBsdWdpbiwgSSdkIGxpa2UgdG8gZG8gdGhlIGpvYiBmb3IgbWF2ZW4tc2l0ZS1wbHVnaW4sICA9Cgo+PiBzaW5jZSB3ZQo+PiA+PiA+Cj4+ID4+ID4gPiBleHBlY3QKPj4gPj4gPiA+IHRvIHJlbGVhc2UgaXQgc29vbi4KPj4gPj4gPiA+IEZvciB0aGUgc2hhcmVkIGNvbXBvbmVudCwgSSBkb24ndCBrbm93IGlmIHRoZXJlIGlzIGEgYmVzdCAgPQoKPj4gY2FuZGlkYXRlCj4+ID4+ID4gPgo+PiA+PiA+ID4gNC4gb25jZSBwcmV2aW91cyBzdGVwIGlzIG9rLCBkbyB0aGUgZnVsbCBtaWdyYXRpb246IGlmIHRoZXJlIGE9CnJlCj4+ID4+ID4gPiB2b2x1bnRlZXJzCj4+ID4+ID4gPiBmb3IgaGVscGluZywgdGhhdCB3b3VsZCBiZSBncmVhdCwgc2luY2UgcG9wdWxhdGluZyA2MCBnaXQgcmVwbz0Kcwo+PiA+Pgo+PiA+PiB3b24ndAo+PiA+PiBiZQo+PiA+Pgo+PiA+PiA+ID4gcmVhbGx5IGZ1bi4uLgo+PiA+PiA+ID4KPj4gPj4gPiA+IEFuZCBhcyBwYXJ0IG9mIDYwIGVtcHR5IGdpdCByZXBvcyBjcmVhdGlvbiwgSSBwcm9wb3NlIHRvIG1pZ3JhPQp0ZSAgPQoKPj4gdGhlCj4+ID4+ID4gPiAiR29vZ2xlCj4+ID4+ID4gPiByZXBvIG1hbmlmZXN0IiBtYXZlbi1hZ2dyZWdhdG9yIFs0XSB0byBBU0Y6IG15IHBlcnNvbmFsIHVzZSBoYT0KcyAgPQoKPj4gYmVlbgo+PiA+Pgo+PiA+PiBxdWl0ZQo+PiA+Pgo+PiA+PiA+ID4gc3VjY2Vzc2Z1bCwgSSBob3BlIGl0J3MgdGhlIHNhbWUgZm9yIG90aGVycy4gUGVyaGFwcyB0aGVyZSBhcmU9Cgo+PiA+Pgo+PiA+PiBiZXR0ZXIKPj4gPj4KPj4gPj4gPiA+IGlkZWFzCj4+ID4+ID4gPiBmb3IgaXRzIG5hbWU6IG1hdmVuLWFnZ3JlZ2F0b3IKPj4gPj4gPiA+Cj4+ID4+ID4gPiBBbnkgb3RoZXIgaWRlYT8gYW55IG9iamVjdGlvbj8KPj4gPj4gPiA+Cj4+ID4+ID4gPiBSZWdhcmRzLAo+PiA+PiA+ID4KPj4gPj4gPiA+IEhlcnY9RTkKPj4gPj4gPiA+Cj4+ID4+ID4gPiBbMV0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ibz0KeC8KPj4gPj4gPiA+Cj4+ID4+ID4gPiBbMl0gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi13aT0KcC8KPj4gPj4gPiA+Cj4+ID4+ID4gPiBbM10gID0KCj4+IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL21hdmVuL3NhbmRib3gvdHJ1bmsvc2NyaXB0cy9naXQvCj4+ID4+ID4gPgo+PiA+PiA+ID4gWzRdIGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1hZ2dyZWdhdG9yCj4+ID4+Cj4+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLS0tCj4+ID4+Cj4+ID4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+PiA+ID4KPj4gPj4gPiA+IC0tCj4+ID4+ID4KPj4gPj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPj4gPj4KPj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotLS0KPj4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+Pgo+PiA+PiAtLQo+PiA+Cj4+ID4gU2VudCBmcm9tIG15IHBob25lCj4+Cj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPgo+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDc5Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgRGVjIDE5IDE4OjIxOjU5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDc5Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBFRUE0RDEwMUJDCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMTkgRGVjIDIwMTcgMTg6MjE6NTggKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA4MDYzNCBpbnZva2VkIGJ5IHVpZCA1MDApOyAxOSBEZWMgMjAxNyAxODoyMTo1OCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODA1NjcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTkgRGVjIDIwMTcgMTg6MjE6NTggLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MDU1NiBpbnZva2VkIGJ5IHVpZCA5OSk7IDE5IERlYyAyMDE3IDE4OjIxOjU4IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDE5IERlYyAyMDE3IDE4OjIxOjU4ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgRTIxOEIxQTAwRTgKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDE5IERlYyAyMDE3IDE4OjIxOjU1ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbRkVFREJBQ0sgV0FOVEVEXSBlZGl0IGJ1dHRvbiBvbiBhIE1hdmVuIHNpdGUKUmVmZXJlbmNlczogPDExOTIyMTcxLmJBekRlRUZpT01AZ2lnYT4KRGF0ZTogVHVlLCAxOSBEZWMgMjAxNyAxOToyMjowNSArMDEwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBRdW90ZWQtUHJpbnRhYmxlCkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC56YmlhbTNxa2tka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KSW4tUmVwbHktVG86IDwxMTkyMjE3MS5iQXpEZUVGaU9NQGdpZ2E+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKSSB3b3VsZCBleHBlY3QgdGhlIGljb24gb24gdGhlIGNvbnRlbnQgdGhhdCBjYW4gYmUgY2hhbmdlZCwgbm90IGluIHRoZSAgPQoKbmF2aWdhdGlvbiBiYXIuClRoYXQgd291bGQgcHJvYmFibHkgYmUgdGhlIGRpdi5ib2R5Q29sdW1uIG9yIGRpdi5zZWN0aW9uCgpBbmQgbWF5YmUgd2UgbmVlZCAyIGVkaXQgYnV0dG9uczogZWRpdCtnaXRodWIgYW5kIGVkaXQrY21zX2FzZi4KVGhlIGZpcnN0IG9uZSBpcyBmb3IgdXNlcnMgdGhhdCB3YXFudCB0byBhZGp1c3QgY29udGVudCB2aWEgUFIuClRoZSBvdGhlciBvbmUgY2FuIGJlIHVzZWQgYnkgdXMgdG8gZGlyZWN0bHkgZWRpdCB0aGUgY29udGVudCB2aWEgID0KCmNtcy5hcGFjaGUub3JnCgp0aGFua3MsClJvYmVydAoKCk9uIE1vbiwgMTggRGVjIDIwMTcgMDg6NDI6MjggKzAxMDAsIEhlcnY9RTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLj0KZnI+ICA9Cgp3cm90ZToKCj4gSGksCj4KPiBJIGp1c3QgbWFuYWdlZCB0byBhZGQgYW4gImVkaXQiIGJ1dHRvbiBpbiBNYXZlbiBnZW5lcmF0ZWQgc2l0ZXMsIHRoYXQgPQogPQoKPiB3aWxsCj4gaGVscCBwZW9wbGUgZmluZCB0aGUgc291cmNlIG9mIHRoZSBkb2N1bWVudC4KPgo+IFNlZSBhbiBleGFtcGxlIGhlcmUgKHRoZSBsaXR0bGUgaWNvbiBuZWFyIHRoZSB2ZXJzaW9uKToKPiBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9za2lucy1hcmNoaXZlcy9tYXZlbi1mbHVpZG8tc2tpbi1MQVRFU1QvCj4KPiBJIHdhbnRlZCB0byBwdWJsaXNoIGl0IHRvIE1hdmVuIHNpdGUgdGhyb3VnaCAgPQoKPiBodHRwOi8vc3ZuLmFwYWNoZS5vcmcvcjE4MTg0ODkKPiBidXQgYnVpbGRib3QgZGlkIG5vdCBjYXRjaCB0aGUgU05BUFNIT1QgbS1zaXRlLXAgcGx1Z2luOiB3ZSdsbCBoYXZlIHRvPQogID0KCj4gd2FpdAo+IGZvciB0aGUgcmVsZWFzZSAoYWZ0ZXIgRG94aWEgdGhlbiBEb3hpYSBTaXRldG9vbHMgcmVsZWFzZXM6IHBsZWFzZSB2b3Q9CmUpLgo+Cj4gRmVlZGJhY2sgYXBwcmVjaWF0ZWQgb24gdGhlIG5ldyBpY29uLCBpdHMgY29uZmlndXJhdGlvbiwgb3IgYW55IGlkZWEgID0KCj4gdGhhdCBjb3VsZAo+IGltcHJvdmUgdGhlIGZlYXR1cmUuCj4gRG9uJ3QgaGVzaXRhdGUgdG8gcHJvcG9zZSBpbXByb3ZlbWVudHMgYXMgaHRtbCBjaGFuZ2VzOiB3ZSdsbCBzZWUgbGF0ZT0KciAgPQoKPiBob3cgdG8KPiBnZXQgdGhlIHVwZGF0ZSBpbiB0aGUgVmVsb2NpdHkgdGVtcGxhdGUgdGhhdCBnZW5lcmF0ZWQgdGhlIGh0bWwuLi4KPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUU5Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDgwMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgRGVjIDIwIDE4OjA2OjA2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDgwMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAzOEFBNjEwQTEwCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMjAgRGVjIDIwMTcgMTg6MDY6MDYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyMDI1NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBEZWMgMjAxNyAxODowNjowNSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjAxODUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgRGVjIDIwMTcgMTg6MDY6MDUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMDE3MyBpbnZva2VkIGJ5IHVpZCA5OSk7IDIwIERlYyAyMDE3IDE4OjA2OjA1IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDIwIERlYyAyMDE3IDE4OjA2OjA1ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgMTc3NDkxQTAwQTA7CglXZWQsIDIwIERlYyAyMDE3IDE4OjA2OjAzICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbSU1QT1JUQU5UXSBSZTogR2l0IG1pZ3JhdGlvbiBuZXh0IHN0ZXBzClJlZmVyZW5jZXM6IDwxOTAwNTU4LkdGeDlRbGZhRTJAZ2lnYT4KIDxvcC56YmI4ejN6emtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4gPDI2OTg2MTYuaHhaa2tqeTlkcEBnaWdhPgogPDIxNDk1MTIuUjhTTTdZMlVmaEBnaWdhPgpEYXRlOiBXZWQsIDIwIERlYyAyMDE3IDE5OjA2OjE1ICswMTAwCkNjOiAiTWFyayBTdHJ1YmVyZyIgPHN0cnViZXJnQHlhaG9vLmRlPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBRdW90ZWQtUHJpbnRhYmxlCkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC56Ymo0a3B0OGtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KSW4tUmVwbHktVG86IDwyMTQ5NTEyLlI4U003WTJVZmhAZ2lnYT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpJIHN0aWxsIGNvbnNpZGVyIE1hcmsgU3RydWJlcmcgYXMgdGhlIEdpdCBtYXN0ZXIgb2Ygb3VyIHRlYW0uCkxldCdzIHBpbmcgaGltLgoKUm9iZXJ0CgpPbiBXZWQsIDIwIERlYyAyMDE3IDEwOjQyOjM2ICswMTAwLCBIZXJ2PUU5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS49CmZyPiAgPQoKd3JvdGU6Cgo+IElORlJBLTE1Njc5IGZpeGVkIGJ5IGluZnJhIHRlYW0KPiB0aGVuIEkgcmUtcnVuIG1pZ3JhdGUtcGx1Z2lucy5zaCBzY3JpcHQgdG8gc3BsaXQgdGhlIHN2bjJnaXQgbWlycm9yIHRvPQogID0KCj4gcGVyLQo+IHBsdWdpbiBnaXQgcmVwbwo+IGFuZCBJIHB1c2hlZCAibWFzdGVyMiIgYnJhbmNoZXMgZm9yIG0tamF2YWRvYy1wLCBtLXNpdGUtcCBhbmQgbS1wZGYtcCw9CiAgPQoKPiB3aGljaAo+IHdlcmUgdGhlIDMgcGx1Z2lucyB3aGljaCBzdWZmZXJlZCBmcm9tIG1pc3NpbmcgY29tbWl0cwo+Cj4gb24gbS1zaXRlLXAgYW5kIG0tcGRmLXAsIEknbGwgY2hlcnJ5IHBpY2sgdGhlIHVuaXF1ZSBjb21taXQgdGhhdCB3YXMgID0KCj4gbWlzc2VkOgo+IG5vdCBhIGJpZyBkZWFsCj4KPiBvbiBtLWphdmFkb2MtcCwgdGhlIHNpdHVhdGlvbiBpcyBtb3JlIGNvcGxleCwgc2luY2UgdGhlcmUgd2FzIGEgcmVsZWFzPQplCj4KPiBJIGFsc28gbm90aWNlZCB0aGF0IEkgZm9yZ290IHRvIHB1c2ggdGFncyB3aGVuIGltcG9ydGluZzogSSBzdGFydGVkIHRvPQogID0KCj4gZG8gImdpdAo+IHB1c2ggLS10YWdzIiwgYnV0IHRoZSByZXN1bHQgZG9lcyBub3QgbG9vayBhcyBJIGV4cGVjdGVkOiBpdCBjcmVhdGVzIGE9CiAgPQoKPiBsb3Qgb2YKPiBwYXJhbGxlbCBicmFuY2hlcwo+Cj4gSSdsbCBuZWVkIGhlbHAgZnJvbSBnaXQgZXhwZXJ0czogd2hhdCBpcyBoYXBwZW5pbmc/Cj4KPiBJIHN0b3BwZWQgdGhlIHRhZ3MgcHVzaCBoYWxmIHRoZSB3YXksIHdlJ2xsIG5lZWQgdG8gZGVjaWRlIHdoYXQgdG8gZG8uPQouLgo+IChJIGtuZXcgSSB3YXMgbm90IGEgZ2l0IGV4cGVydCBhbmQgdGhlcmUgd2FzIGEgcmlzayBmb3Igc29tZXRoaW5nIHdlaXI9CmQgID0KCj4gbGlrZQo+IHdoYXQncyBjdXJyZW50bHkgaGFwcGVuaW5nLi4uKQo+Cj4gQW55IGhpbnQ/Cj4KPiBSZWdhcmRzLAo+Cj4gSGVydj1FOQo+Cj4gTGUgc2FtZWRpIDE2IGQ9RTljZW1icmUgMjAxNywgMTY6Mjg6NDggQ0VUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOj0KCj4+IG9rLCBJIHdhcyBjb25mdXNlZCBieSB0aGUgZGlmZmVyZW50IHRha2VzIGF0IG0tamF2YWRvYy1wIDMuMC4wCj4+Cj4+IHllcywgc3ZuMmdpdCBtaXJyb3IgaXMgc3R1Y2sgWzFdIGF0IHIxODE1Njc1Cj4+Cj4+IEkganVzdCBvcGVuZWQgYW4gSU5GUkEgSmlyYSBpc3N1ZQo+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0lORlJBLTE1Njc5Cj4+Cj4+IG9uY2UgdGhlIHN2bjJnaXQgbWlycm9yIHdpbGwgYmUgdXBkYXRlZCwgd2UnbGwgaGF2ZSB0byByZS1ydW4gdGhlIHNwbD0KaXQKPj4gc2NyaXB0cyBhbmQgY2hlcnJ5IHBpY2sgdGhlIG1pc3NpbmcgY29tbWl0cwo+Pgo+PiBSZWdhcmRzLAo+Pgo+PiBIZXJ2PUU5Cj4+Cj4+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvY29tbWl0cy90cnVuawo+Pgo+PiBMZSBzYW1lZGkgMTYgZD1FOWNlbWJyZSAyMDE3LCAxMzowMTowNSBDRVQgUm9iZXJ0IFNjaG9sdGUgYSA9RTljcml0IDo9Cgo+PiA+IEkgd2FzIHRyaWdnZXJlZCBieSBzb21lIGZhaWxpbmcgdW5pdCB0ZXN0cywgd2hpY2ggc2hvdWxkIGhhdmUgYmVlbiA9CiA9Cgo+PiBzb2x2ZWQKPj4gPiBpbiBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+PiA+Cj4+ID4gTXkgbGFzdCBjb21taXQgYWNjb3JkaW5nIHRvIEdJVCB3YXMgbm92ZW1iZXIgMTh0aAo+PiA+IE15IGxhc3QgY29tbWl0IGFjY29yZGluZyB0byBTVk4gd2FzIGRlY2VtYmVyIDNyZAo+PiA+Cj4+ID4gY29tcGFyaW5nIHN2bmxvZyB3aXRoIGdpdGxvZyBtb3N0IG9mIHRoZXNlIGNvbW1pdHMgYXJlIGxvc3Q6Cj4+ID4KPj4gPiBtb3ZlZCB0byBnaXQKPj4gPiAtLS0tCj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIGZvciBuZXh0IGRldmVsb3BtZW50IGl0ZXJhdGlvbgo+PiA+IC0tLS0KPj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgcmVsZWFzZSBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+PiA+IC0tLS0KPj4gPiBbTUpBVkFET0MtNDk4XSAibW9kdWxlIG5vdCBmb3VuZCIgd2hlbiBKYXZhIDkgbW9kdWxlLWluZm8gcHJlc2VudAo+PiA+IFN1cHBvcnQgYWdncmF0ZWQgamF2YWRvYwo+PiA+IC0tLS0KPj4gPiBTa2lwIHNldmVyYWwgdW5pdHRlc3RzIGZvciBKYXZhOQo+PiA+IC0tLS0KPj4gPiBKREstODAzMjIwNSB3YXMgY2xvc2VkIGFzIG5vdCBhbiBpc3N1ZSwgc28gbm90IHNvbHZlZCBpbiBKYXZhOS4KPj4gPiBOZWVkIHRvIHJldmlldyB0aGUgY29uY2x1c2lvbgo+PiA+IC0tLS0KPj4gPiBVcGdyYWRlIG1vY2tpdG8gdG8gcmVtb3ZlIHdhcm5pbmcgYWJvdXQgaWxsZWdhbCByZWZsZWN0aXZlIGFjY2Vzcwo+PiA+IC0tLS0KPj4gPiBJbXByb3ZlIFRlc3RKYXZhZG9jUmVwb3J0VGVzdCN0ZXN0VGVzdEphdmFkb2MKPj4gPiBKOCB3YXJucyBhbmQgY29udGludWVzIHdpdGggbWlzc2luZyBkZXBlbmRlbmN5LCBKOSBmYWlscy4KPj4gPiBJbiBmYWN0IHRlc3Qgd2FzIHdyb25nOiBkZXBlbmRlbmN5IHNob3VsZCBoYXZlIGJlZW4gb24gY2xhc3NwYXRoCj4+ID4gLS0tLQo+PiA+IHVuaXR0ZXN0IHNob3VsZCBwcmVmZXIgSkFWQV9IT01FIHdoZW4gZXhlY3V0aW5nIGZyb20gY21kbGluZQo+PiA+IFdoZW4gcnVubmluZyB3aXRoIEphdmE5KyBubyBuZWVkIHRvIHN3aXRjaCBmcm9tIGpyZSB0byBqZGsgZGlyZWN0b3I9CnkKPj4gPiAoamVwMjIwKQo+PiA+IC0tLS0KPj4gPiBNSkFWQURPQy01MDIgVXBkYXRlIERFRkFVTFRfSkFWQV9BUElfTElOS1MKPj4gPiAtLS0tCj4+ID4gc2Vzc2lvbiBpcyByZXF1aXJlZCBwYXJhbWV0ZXIsIHNvIGNhbm5vdCBiZSBudWxsLiBGaXggcmVsYXRlZCAgPQoKPj4gdW5pdHRlc3RzCj4+ID4gLS0tLQo+PiA+IEFkZCBwcm9qZWN0L2FydGlmYWN0IGtleSB0byBzZXQgb2Ygc291cmNlUGF0aHMgdG8gcmVjb2duaXplIHJlYWN0b3I9Cgo+PiA+IHByb2plY3RzIHZlcnN1cyBkZXBlbmRlbmNpZXMKPj4gPiAtLS0tCj4+ID4gR3JvdXAgc2V0cyBvZiBzb3VyY2VwYXRocyBwZXIgcHJvamVjdCwgaW4gcHJlcGFyZSBvZiB1c2FnZSBvZgo+PiA+IG1vZHVsZS1zb3VyY2UtcGF0aC4KPj4gPiAtLS0tCj4+ID4gU3dpdGNoIGZyb20gTGlzdCB0byBDb2xsZWN0aW9uIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHVzZSBTZXRzIHdoZW4KPj4gPiBwcmVmZXJyZWQKPj4gPiAtLS0tCj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIGZvciBuZXh0IGRldmVsb3BtZW50IGl0ZXJhdGlvbgo+PiA+IC0tLS0KPj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgcmVsZWFzZSBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+PiA+IC0tLS0KPj4gPgo+PiA+Cj4+ID4KPj4gPgo+PiA+IE9uIFNhdCwgMTYgRGVjIDIwMTcgMTI6NTM6MjMgKzAxMDAsIEhlcnY9RTkgQk9VVEVNWSAgPQoKPj4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4gPgo+PiA+IHdyb3RlOgo+PiA+ID4gbG9va2luZyBhdCBjb21taXRzQCBjb250ZW50IGh0dHBzOi8vbGlzdHMuYXBhY2hlLm9yZy9saXN0Lmh0bWw/Cj4+ID4gPiBjb21taXRzQG1hdmVuLmFwYWNoZS5vcmcgd2l0aCBzdWJqZWN0IGNvbnRhaW5pbmcgID0KCj4+ICJtYXZlbi9wbHVnaW5zL3RydW5rIgo+PiA+ID4KPj4gPiA+IGFuZCBwbHVnaW5zIHN2bjJnaXQgbWlycm9yCj4+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvY29tbWl0cy8KPj4gPiA+IHRydW5rCj4+ID4gPgo+PiA+ID4gb25seSAxIGNvbW1pdCBpcyBtaXNzaW5nOiBteSBsYXRlc3QgY29tbWl0IG9uIG1hdmVuLXNpdGUtcGx1Z2luCj4+ID4gPiAodGhlIGxhc3QgY29tbWl0IGZvciBHaXQgbWlncmF0aW9uIGlzIG5vdCB1c2VmdWwpCj4+ID4gPgo+PiA+ID4KPj4gPiA+IFNhbWUgb24gc2hhcmVkIHNob3dlZCBubyBtaXNzaW5nIGNvbW1pdC4KPj4gPiA+Cj4+ID4gPgo+PiA+ID4gd2hhdCBsYXRlc3QgY29tbWl0IG9mIG1hdmVuLWphdmFkb2MtcGx1Z2luIGFyZSB5b3UgbG9va2luZyBmb3I/Cj4+ID4gPgo+PiA+ID4gUmVnYXJkcywKPj4gPiA+Cj4+ID4gPiBIZXJ2PUU5Cj4+ID4gPgo+PiA+ID4gTGUgc2FtZWRpIDE2IGQ9RTljZW1icmUgMjAxNywgMTE6NTY6MzEgQ0VUIFJvYmVydCBTY2hvbHRlIGEgPUU5Y3I9Cml0IDoKPj4gPiA+PiBGb3IgZXZlcnlib2R5IGp1c3QgYSB3YXJuaW5nIEkgZmFjZWQgdG9kYXk6Cj4+ID4gPj4gSWYgeW91IHN3aXRjaCB0byB0aGUgZ2l0IHJlcG9zLCBwbGVhc2UgbWFrZSBzdXJlIGFsbCBjb21taXRzIGFyZT0KCj4+ID4gPj4gbWlncmF0ZWQuCj4+ID4gPj4gSSBub3RpY2VkIHRoZSBsYXRlc3QgY29tbWl0cyBvZiB0aGUgbWF2ZW4tamF2YWRvYy1wbHVnaW4gZ290IGxvcz0KdC4KPj4gPiA+Pgo+PiA+ID4+IHRoYW5rcywKPj4gPiA+PiBSb2JlcnQKPj4gPiA+Pgo+PiA+ID4+IE9uIFNhdCwgMDkgRGVjIDIwMTcgMTc6MDY6MDkgKzAxMDAsIFN0ZXBoZW4gQ29ubm9sbHkKPj4gPiA+Pgo+PiA+ID4+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4gPiA+PiA+IEkgc2VlIHdlIGhhdmUgYSBsYXJnZSBudW1iZXIgb2YgcmVwb3Mgbm93IG9uIGdpdGJveCA7LSkKPj4gPiA+PiA+Cj4+ID4gPj4gPiBPbiBUaHUgNyBEZWMgMjAxNyBhdCAwNzowMCwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZT0KZS5mcj4KPj4gPiA+Pgo+PiA+ID4+IHdyb3RlOgo+PiA+ID4+ID4+IG9rLCBJIGRpZG4ndCB1cGRhdGUgbXkgcmVwbyBjbG9uZTogbm93IHRoZSBydW4taXRzIHByb2ZpbGUgaXM9Cgo+PiA+ID4+Cj4+ID4gPj4gYWN0aXZhdGVkCj4+ID4gPj4KPj4gPiA+PiA+PiB0aGVuIHRoZSBwbGFuIHNob3VsZCBqdXN0IGNvbmZpcm0gIml0IHdvcmtzISIgOikKPj4gPiA+PiA+Pgo+PiA+ID4+ID4+IGFuZCBmaW5kIHdoaWNoIGpvYnMgYXJlIHNwZWNpYWwsIGxpa2UgbWF2ZW4tZGlzdC10b29sICh3aGljaCA9CiA9Cgo+PiBoYXMgdG8KPj4gPiA+Pgo+PiA+ID4+IGJlCj4+ID4gPj4KPj4gPiA+PiA+PiBzY2hlZHVsZWQgZGFpbHkgaW5zdGVhZCBvZiBjb2RlIGNoYW5nZSwgYW5kIG9uZSBwbGF0Zm9ybSBvbmx5PQopCj4+ID4gPj4gPj4KPj4gPiA+PiA+PiBSZWdhcmRzLAo+PiA+ID4+ID4+Cj4+ID4gPj4gPj4gSGVydj1FOQo+PiA+ID4+ID4+Cj4+ID4gPj4gPj4gTGUgbWVyY3JlZGkgNiBkPUU5Y2VtYnJlIDIwMTcsIDIzOjU4OjQ1IENFVCBTdGVwaGVuIENvbm5vbGx5ID0KYSAgPQoKPj4gPUU5Y3JpdCA6Cj4+ID4gPj4gPj4gPiBPbiBXZWQgNiBEZWMgMjAxNyBhdCAyMjozOCwgSGVydj1FOSBCT1VURU1ZICA9Cgo+PiA8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+PiA+ID4+ID4+Cj4+ID4gPj4gPj4gd3JvdGU6Cj4+ID4gPj4gPj4gPiA+IE5vdyB0aGF0IHdlIGhhdmUgMiBBU0YgT3JnYW5pemF0aW9uIEplbmtpbnMgam9icyAob25lIGZvcj0KICA9Cgo+PiBnaXRib3gKPj4gPiA+Pgo+PiA+ID4+IFsxXQo+PiA+ID4+Cj4+ID4gPj4gPj4gYW5kCj4+ID4gPj4gPj4KPj4gPiA+PiA+PiA+ID4gb25lCj4+ID4gPj4gPj4gPiA+IGZvciBnaXQtd2lwOiB0aGFuayB5b3UgU3RlcGhlbikgYW5kIHRoYXQgaXQgbG9va3MgcXVpdGUKPj4gPiA+Pgo+PiA+ID4+IHN1Y2Nlc3NmdWwsCj4+ID4gPj4KPj4gPiA+PiA+PiBsZXQncwo+PiA+ID4+ID4+Cj4+ID4gPj4gPj4gPiA+IHBsYW4KPj4gPiA+PiA+PiA+ID4gdGhlIG5leHQgc3RlcHMuCj4+ID4gPj4gPj4gPiA+Cj4+ID4gPj4gPj4gPiA+IEhlcmUgaXMgd2hhdCBJIHNlZToKPj4gPiA+PiA+PiA+ID4gMS4gcmVtb3ZhbCBvZiBoYW5kLWRlZmluZWQgSmVua2lucyBqb2JzIHRoYXQgYXJlIG5vdyAgPQoKPj4gZHVwbGljYXRlcwo+PiA+ID4+ID4+ID4gPgo+PiA+ID4+ID4+ID4gPiAyLiBwcmVwYXJhdGlvbiBvZiB0aGUgNjAgbmV3IGVtcHR5IGdpdCByZXBvcyBmb3Igc2hhcmVkICY9Cgo+PiA+ID4+ID4+ID4gPiBwbHVnaW5zCj4+ID4gPj4gPj4gPiA+Cj4+ID4gPj4gPj4gPiA+IDMuIG1pZ3JhdGlvbiBvZiB0aGUgMSBzaGFyZWQgY29tcG9uZW50IGFuZCAxIHBsdWdpbiB1c2luZz0KCj4+ID4gPj4gPj4KPj4gPiA+PiA+PiBtaWdyYXRlLSouc2gKPj4gPiA+PiA+Pgo+PiA+ID4+ID4+ID4gPiBzY3JpcHRzCj4+ID4gPj4gPj4gPiA+IFszXSB0byB0ZXN0IGFuZCBldmVudHVhbGx5IHJld29yayB0aGUgSmVua2luc2ZpbGUgKEkgID0KCj4+IHN1cHBvc2UgaXQKPj4gPiA+Pgo+PiA+ID4+IHdpbGwKPj4gPiA+Pgo+PiA+ID4+ID4+ID4gPiByZXF1aXJlCj4+ID4gPj4gPj4gPiA+IHNvbWUgbGl0dGxlIGNoYW5nZSwgdG8gcnVuIGFkZCAicnVuLWl0cyIgcHJvZmlsZSkKPj4gPiA+PiA+PiA+Cj4+ID4gPj4gPj4gPiBBcyBmYXIgYXMgSSByZWNhbGwsIEkgYWRkZWQgLVArcnVuLWl0cyBhbHJlYWR5Cj4+ID4gPj4gPj4gPgo+PiA+ID4+ID4+ID4gRm9yIHRoZSBwbHVnaW4sIEknZCBsaWtlIHRvIGRvIHRoZSBqb2IgZm9yIG1hdmVuLXNpdGUtcGx1Z2k9Cm4sCj4+ID4gPj4KPj4gPiA+PiBzaW5jZSB3ZQo+PiA+ID4+Cj4+ID4gPj4gPj4gPiA+IGV4cGVjdAo+PiA+ID4+ID4+ID4gPiB0byByZWxlYXNlIGl0IHNvb24uCj4+ID4gPj4gPj4gPiA+IEZvciB0aGUgc2hhcmVkIGNvbXBvbmVudCwgSSBkb24ndCBrbm93IGlmIHRoZXJlIGlzIGEgYmVzdD0KCj4+ID4gPj4KPj4gPiA+PiBjYW5kaWRhdGUKPj4gPiA+Pgo+PiA+ID4+ID4+ID4gPiA0LiBvbmNlIHByZXZpb3VzIHN0ZXAgaXMgb2ssIGRvIHRoZSBmdWxsIG1pZ3JhdGlvbjogaWYgID0KCj4+IHRoZXJlIGFyZQo+PiA+ID4+ID4+ID4gPiB2b2x1bnRlZXJzCj4+ID4gPj4gPj4gPiA+IGZvciBoZWxwaW5nLCB0aGF0IHdvdWxkIGJlIGdyZWF0LCBzaW5jZSBwb3B1bGF0aW5nIDYwIGdpdD0KICA9Cgo+PiByZXBvcwo+PiA+ID4+ID4+Cj4+ID4gPj4gPj4gd29uJ3QKPj4gPiA+PiA+PiBiZQo+PiA+ID4+ID4+Cj4+ID4gPj4gPj4gPiA+IHJlYWxseSBmdW4uLi4KPj4gPiA+PiA+PiA+ID4KPj4gPiA+PiA+PiA+ID4gQW5kIGFzIHBhcnQgb2YgNjAgZW1wdHkgZ2l0IHJlcG9zIGNyZWF0aW9uLCBJIHByb3Bvc2UgdG8gPQogPQoKPj4gbWlncmF0ZQo+PiA+ID4+Cj4+ID4gPj4gdGhlCj4+ID4gPj4KPj4gPiA+PiA+PiA+ID4gIkdvb2dsZQo+PiA+ID4+ID4+ID4gPiByZXBvIG1hbmlmZXN0IiBtYXZlbi1hZ2dyZWdhdG9yIFs0XSB0byBBU0Y6IG15IHBlcnNvbmFsIHU9CnNlICA9Cgo+PiBoYXMKPj4gPiA+Pgo+PiA+ID4+IGJlZW4KPj4gPiA+Pgo+PiA+ID4+ID4+IHF1aXRlCj4+ID4gPj4gPj4KPj4gPiA+PiA+PiA+ID4gc3VjY2Vzc2Z1bCwgSSBob3BlIGl0J3MgdGhlIHNhbWUgZm9yIG90aGVycy4gUGVyaGFwcyB0aGVyPQplICA9Cgo+PiBhcmUKPj4gPiA+PiA+Pgo+PiA+ID4+ID4+IGJldHRlcgo+PiA+ID4+ID4+Cj4+ID4gPj4gPj4gPiA+IGlkZWFzCj4+ID4gPj4gPj4gPiA+IGZvciBpdHMgbmFtZTogbWF2ZW4tYWdncmVnYXRvcgo+PiA+ID4+ID4+ID4gPgo+PiA+ID4+ID4+ID4gPiBBbnkgb3RoZXIgaWRlYT8gYW55IG9iamVjdGlvbj8KPj4gPiA+PiA+PiA+ID4KPj4gPiA+PiA+PiA+ID4gUmVnYXJkcywKPj4gPiA+PiA+PiA+ID4KPj4gPiA+PiA+PiA+ID4gSGVydj1FOQo+PiA+ID4+ID4+ID4gPgo+PiA+ID4+ID4+ID4gPiBbMV0gID0KCj4+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tYm94Lwo+PiA+ID4+ID4+ID4gPgo+PiA+ID4+ID4+ID4gPiBbMl0gID0KCj4+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4td2lwLwo+PiA+ID4+ID4+ID4gPgo+PiA+ID4+ID4+ID4gPiBbM10KPj4gPiA+Pgo+PiA+ID4+IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL21hdmVuL3NhbmRib3gvdHJ1bmsvc2NyaXB0cy9naXQvCj4+ID4gPj4KPj4gPiA+PiA+PiA+ID4gWzRdIGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1hZ2dyZWdhdG9yCj4+ID4gPj4gPj4KPj4gPiA+PiA+PiAgPQoKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gPiA+PiA+PiAtCj4+ID4gPj4gPj4KPj4gPiA+PiA+PiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+PiA+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yPQpnCj4+ID4gPj4gPj4gPiA+Cj4+ID4gPj4gPj4gPiA+IC0tCj4+ID4gPj4gPj4gPgo+PiA+ID4+ID4+ID4gU2VudCBmcm9tIG15IHBob25lCj4+ID4gPj4gPj4KPj4gPiA+PiA+PiAgPQoKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gPiA+PiA+PiAtCj4+ID4gPj4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+PiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPj4gPj4KPj4gPiA+PiA+PiAtLQo+PiA+ID4+ID4KPj4gPiA+PiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+PiA+ID4+Cj4+ID4gPj4gID0KCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KCj4+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPgo+PiA+ID4gID0KCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KCj4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+Cj4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLS0KPj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQoKPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODAzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFdlZCBEZWMgMjAgMTk6Mzk6MzAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODAzLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEYzODQ1MTBFRTQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgV2VkLCAyMCBEZWMgMjAxNyAxOTozOToyOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDIxODczIGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIERlYyAyMDE3IDE5OjM5OjI5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyMTgxMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMCBEZWMgMjAxNyAxOTozOToyOSAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDIxODAwIGludm9rZWQgYnkgdWlkIDk5KTsgMjAgRGVjIDIwMTcgMTk6Mzk6MjkgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMjAgRGVjIDIwMTcgMTk6Mzk6MjkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCBGMjdBQzFBMDBFOAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMjAgRGVjIDIwMTcgMTk6Mzk6MjcgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtWT1RFXSBSZWxlYXNlIEFwYWNoZSBNYXZlbiBEb3hpYSB2ZXJzaW9uIDEuOApSZWZlcmVuY2VzOiA8NTY1Nzk0My5oWW8yTW9tUVdIQGdpZ2E+CkRhdGU6IFdlZCwgMjAgRGVjIDIwMTcgMjA6Mzk6MzggKzAxMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogUXVvdGVkLVByaW50YWJsZQpGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AuemJqOHdjMXBrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkluLVJlcGx5LVRvOiA8NTY1Nzk0My5oWW8yTW9tUVdIQGdpZ2E+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKKzEKCk9uIFN1biwgMTcgRGVjIDIwMTcgMTc6MzY6NTMgKzAxMDAsIEhlcnY9RTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLj0KZnI+ICA9Cgp3cm90ZToKCj4gSGksCj4KPiBXZSBzb2x2ZWQgMTkgaXNzdWVzOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT8KPiBwcm9qZWN0SWQ9M0QxMjMxNzIzMCZ2ZXJzaW9uPTNEMTIzMzQ4NDcmc3R5bGVOYW1lPTNEVGV4dAo+IFRoZXJlIGFyZSBzdGlsbCBhIGNvdXBsZSBvZiBpc3N1ZXMgbGVmdCBpbiBKSVJBOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD0zRHByb2plY3QlMjAlM0QlMjBET1hJQSUyMEE9Ck5ECj4gJTIwc3RhdHVzJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDCj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzODMvCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM4My9vcmcvYXBhYz0KaGUvCj4gbWF2ZW4vZG94aWEvZG94aWEvMS44L2RveGlhLTEuOC1zb3VyY2UtcmVsZWFzZS56aXAKPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBkb3hpYS0xLjgtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6ICA9Cgo+IDk3YmY0MzVkYTAzZGQ0YThkNWNmYzFiMGYwNzI2NTA5MDg2M2NmZjAKPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvZG94aWEvZG94aWEtYXJjaGl2ZXMvZG94aWEtTEFURVNULwo+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG09CmwKPiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4MDQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIERlYyAyMCAxOTo1MzowMyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4MDQtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgREI0MzgxMEY2NQoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDIwIERlYyAyMDE3IDE5OjUzOjAyICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTcyNTUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjAgRGVjIDIwMTcgMTk6NTM6MDIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU3MTUzIGludm9rZWQgYnkgdWlkIDUwMCk7IDIwIERlYyAyMDE3IDE5OjUzOjAyIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTcxNDAgaW52b2tlZCBieSB1aWQgOTkpOyAyMCBEZWMgMjAxNyAxOTo1MzowMiAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgV2VkLCAyMCBEZWMgMjAxNyAxOTo1MzowMiArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEUyMTdEMUEwMEU4Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAyMCBEZWMgMjAxNyAxOTo1Mjo1OSArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogbWFpbi1jbGFzcyArIG1vZHVsZS12ZXJzaW9uClJlZmVyZW5jZXM6IDxDQUxhVGVDb25VLSstLStqY2lHMkVvM1hOOEJBYzRzd2FBUkdxS1Q5bWhwWGo0QVJXaWdAbWFpbC5nbWFpbC5jb20+CkRhdGU6IFdlZCwgMjAgRGVjIDIwMTcgMjA6NTM6MTIgKzAxMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogUXVvdGVkLVByaW50YWJsZQpGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AuemJqOWl5eHJrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkluLVJlcGx5LVRvOiA8Q0FMYVRlQ29uVS0rLS0ramNpRzJFbzNYTjhCQWM0c3dhQVJHcUtUOW1ocFhqNEFSV2lnQG1haWwuZ21haWwuY29tPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCk9uIFdlZCwgMjAgRGVjIDIwMTcgMDc6NDA6MjQgKzAxMDAsIFBsYW1lbiBUb3RldiAgPQoKPHBsYW1lbi5pdi50b3RldkBnbWFpbC5jb20+IHdyb3RlOgoKPiBIaSwKPgo+IEkndmUgc3RhcnRlZCB3b3JraW5nIG9uIGltcGxlbWVudGluZyBzdXBwb3J0IGZvciBtb2R1bGFyIEpBUnMgaW4KPiBQbGV4dXMgQXJjaGl2ZXIgYnV0IGFzIEkgcmVzZWFyY2ggdGhlIG1hdHRlciBJIGZvdW5kIHRoYXQgdGhleSBhcmUKPiBtb3JlIGNvbXBsZXggdGhhbiBJIGV4cGVjdGVkLiBJJ3ZlIHVwZGF0ZWQgdGhlIEdpdEh1YiBpc3N1ZVsxXSB3aXRoCj4gdGhlIGRldGFpbHMgYnV0IEknbGwgcG9zdCB0aGUgZmluZGluZ3MgaGVyZSBhcyB3ZWxsLiBUaGUgbW9kdWxhciBKQVIKPiBmaWxlcyBjb250YWluIG5vdCBvbmx5IHZlcnNpb24gYW5kIG1haW4gY2xhc3MgYnV0IGFsc286Cj4KPiAqIExpc3Qgb2YgdGhlIHBhY2thZ2VzIGNvbnRhaW5lZCAtIHVzdWFsbHkgcG9wdWxhdGVkIGJ5IHRoZSBjb21waWxlciwKPiBidXQgdGhlcmUgYXJlIHNvbWUgY2F2ZWF0cyBoZXJlLiBUaGUgbW9zdCBvYnZpb3VzIG9uZSBpcyB0aGF0IGZvciBqYXJzPQoKPiBjcmVhdGVkIGJ5IHRoZSBTaGFkZSBQbHVnaW4gdGhpcyBhdHRyaWJ1dGUgd2lsbCBhbG1vc3QgY2VydGFpbmx5IGJlCj4gaW5jb3JyZWN0IC0gdGhlIHBsdWdpbiB3aWxsIG1vc3QgbGlrZWx5IGludHJvZHVjZSBhZGRpdGlvbmFsIHBhY2thZ2VzCj4gYW5kIHRoZSBsaXN0IHByb2R1Y2VkIGJ5IHRoZSBjb21waWxlciB3aWxsIGJlIG91dCBvZiBkYXRlLiBUaGUgb3RoZXIKPiBjYXZlYXQgYXJlIHRoZSByZXNvdXJjZXMgLSB0aGV5IGNvdWxkIGJlIGxvY2F0ZWQgaW4gcGFja2FnZXMgYW5kCj4gZW5jYXBzdWxhdGVkIHRoZSBzYW1lIHdheSBhcyB0aGUgY2xhc3Nlcy4gVGhlIGphciB0b29scyByZWNvcmRzIG5vdAo+IG9ubHkgdGhlIGNsYXNzIHBhY2thZ2VzIGJ1dCB0aGUgcmVzb3VyY2Ugb25lcyB0b28uIFBhY2thZ2luZyByZXNvdXJjZXM9Cgo+IHRvZ2V0aGVyIHdpdGggdGhlIGNsYXNzZXMgbWF5IHJlc3VsdCBpbiBpbmNvcnJlY3QgbW9kdWxlIGRlc2NyaXB0b3IgaWY9Cgo+IHRoaXMgYXR0cmlidXRlIGlzIG5vdCB1cGRhdGVkLgo+Cj4gKiBUaGUgbW9kdWxlIG1haW4gY2xhc3MgLSBwYXNzZWQgYXMgYXJndW1lbnQgdG8gdGhlIGphciB0b29sIGFuZCBpdAo+IHNlZW1zIHRoYXQgaXQgY2Fubm90IGJlIHNldCB1c2luZyB0aGUgY29tcGlsZXIuCj4KPiAqIFRoZSBtb2R1bGUgdmVyc2lvbiAtIHBhc3NlZCBhcyBhcmd1bWVudCB0byB0aGUgamFyIHRvb2wuIENvdWxkIGJlCj4gc2V0IHVzaW5nIHRoZSBjb21waWxlcihhZ2FpbiBwYXNzZWQgYXMgYXJndW1lbnQpIGFzIHdlbGwuCj4KPiAqIEhhc2hlcyAtIGNhbGN1bGF0ZXMgdGhlIGhhc2hlcyBvZiBnaXZlbiBleHRlcm5hbCBtb2R1bGVzIHRoYXQgZGVwZW5kPQoKPiBvbiB0aGlzIG9uZS4gRHVyaW5nIHJ1bnRpbWUgamF2YSBjaGVja3MgdGhlIHJlY29yZGVkIGhhc2hlcyBhZ2FpbnN0Cj4gdGhlIHJlc29sdmVkIG1vZHVsZSBhbmQgYW5kIGlmIGRvbid0IG1hdGNoIGl0IHdpbGwgZmFpbC4gVGhlIHByaW1hcnkKPiB1c2UgY2FzZSBpcyBhIG1vZHVsZSBBIHRoYXQgZXhwb3J0cyBwYWNrYWdlcyB0byBCIGFuZCBDLiBBbiBlYXN5IHdheQo+IHRvIGJyZWFrIHRoZSBlbmNhcHN1bGF0aW9uIG9mIEEgaXMgdG8gY3JlYXRlIG1vZHVsZSBuYW1lZCBCLiBUbwo+IHByZXZlbnQgdGhhdCB5b3UgY2FuIHJlY29yZCB0aGUgaGFzaCBvZiBCIGFuZCBDIGluc2lkZSBBLiBUaGVuIEEgd2lsbAo+IGV4cG9ydCB0aGUgcGFja2FnZXMgb25seSB0byB0aGUgaW50ZW5kZWQgbW9kdWxlcy4gSXQgaXMgdXNlZCBieSB0aGUKPiBPcGVuSkRLIGJ1dCBjb3VsZCBiZSB1c2VmdWwgZm9yIHBsYXRmb3JtcyBhbmQgZnJhbWV3b3JrcyBhcyB3ZWxsLgo+Cj4gKiBNb2R1bGUgcmVzb2x1dGlvbiAtIG1hcmtzIHRoZSBtb2R1bGUgdG8gbm90IGJlIHJlc29sdmVkIGJ5IGRlZmF1bHQgbz0Kcgo+IG1hcmtzIGl0IGFzIGRlcHJlY2F0ZWQgb3IgaW5jdWJhdGluZyBzbyBhdCBydW4gdGltZSBhIHdhcm5pbmcgaXMKPiBkaXNwbGF5ZWQgaWYgaXQgaXMgcmVzb2x2ZWQuIEkgZG9uJ3QgdGhpbmsgeW91IGNhbiBzZXQgaXQgdXNpbmcgdGhlCj4gSkRLIDkgamFyIHRvb2wgYnV0IGl0J3MgcHJlc2VudCBpbiB0aGUgY29kZS4gTWF5YmUgaXQgd2lsbCBiZQo+IGltcGxlbWVudGVkIGluIGZ1dHVyZSB2ZXJzaW9uIG9mIHRoZSBqYXIgdG9vbC4KPgo+IFRvIG1lIGl0IGxvb2tzIGxpa2UgdGhlIHBhY2thZ2luZyBvZiBtb2R1bGFyIEpBUiBmaWxlIGlzIG1vcmUgY29tcGxleAo+IHRoYW4ganVzdCBwYWNraW5nIG1vZHVsZS1pbmZvLmNsYXNzIGZpbGUgYW5kIHRoZSBqYXIgdG9vbCBpcyBubyBsb25nZXI9Cgo+IGp1c3QgYSBaSVAgcHJvZ3JhbS4gU29tZXRoaW5nIHNpbWlsYXIgaXMgc3RhdGVkIGluIHRoZSB0b29sCj4gZG9jdW1lbnRhdGlvblsyXToKPgo+PiBUaGUgamFyIGNvbW1hbmQgaXMgYSBnZW5lcmFsLXB1cnBvc2UgYXJjaGl2aW5nIGFuZCBjb21wcmVzc2lvbiB0b29sLAo+PiBiYXNlZCBvbiB0aGUgWklQIGFuZCBaTElCIGNvbXByZXNzaW9uIGZvcm1hdHMuCj4+IEluaXRpYWxseSwgdGhlIGphciBjb21tYW5kIHdhcyBkZXNpZ25lZCB0byBwYWNrYWdlIEphdmEgYXBwbGV0cwo+PiBvciBhcHBsaWNhdGlvbnM7IGhvd2V2ZXIsIGJlZ2lubmluZyB3aXRoIEpESyA5LCB1c2VycyBjYW4gdXNlIHRoZQo+PiBqYXIgY29tbWFuZCB0byBjcmVhdGUgbW9kdWxhciBKQVJzLgo+PiBGb3IgdHJhbnNwb3J0YXRpb24gYW5kIGRlcGxveW1lbnQsIGl0PUUyPTgwPTk5cyB1c3VhbGx5IG1vcmUgY29udmVuaWU9Cm50IHRvCj4+IHBhY2thZ2UgbW9kdWxlcyBhcyBtb2R1bGFyIEpBUnMuCj4KPiBXaGlsZSBub3QgYXQgYWxsIHRoYXQgY29tcGxleCBmcm9tIHRlY2huaWNhbCBwb2ludCBvZiB2aWV3LCBJIGRvbid0Cj4gdGhpbmsgaXQgaXMgd29ydGggaW1wbGVtZW50aW5nLCBhbmQgd2hhdHMgbW9yZSBtYWludGFpbmluZywgYWxsIHRoaXMKPiBmdW5jdGlvbmFsaXR5LiBQcm9iYWJseSBpdCB3b3VsZCBiZSBiZXR0ZXIgaWYgdGhlIHBsdWdpbnMgdGhhdCBwcm9kdWNlPQoKPiBKQVIgZmlsZXMgdXNlIHRoZSBqYXIgdG9vbCwgdGhlIHNhbWUgd2F5IHRoZSBjb21waWxlciBwbHVnaW4gZG9lcyBub3QKPiBjb21waWxlIGJ5IGl0c2VsZiBidXQgdXNlcyB0aGUgSmF2YSBjb21waWxlci4KPgo+IFdoYXQgZG8geW91IHRoaW5rPwoKQmFzZWQgb24gdGhpcyBtZXNzYWdlIGl0IHNlZW1zIHdvcnRoIGltcGxlbWVudGluZyBhIEphclRvb2xBcmNoaXZlciwgdXNpPQpuZyAgPQoKdGhlIGphciB0b29sIHZpYSB0aGUgVG9vbFByb3ZpZGVyWzFdCkkgaG9wZSBpdCBjYW4gc3RpbGwgYmUgYSBvcmcuY29kZWhhdXMucGxleHVzLmFyY2hpdmVyLkFyY2hpdmVyLCBvdGhlcndpcz0KZSAgPQoKSSdsbCBjb250YWN0IHRoZSBvcGVuamRrIHRlYW0gYWJvdXQgdGhlIGRldGFpbHMgb2YgdGhlIHNwZWNpZmljYXRpb25zLiBJPQogID0KCmRvbid0IHRoaW5rIHdlIG5lZWQgdGhlbSBhbGwsIGdvb2QgdG8ga25vdyB0aGUgcmVhc29uIGZvciB0aGUgZXh0cmEgZmlsZT0Kcy4KCnRoYW5rcyBzbyBmYXIsClJvYmVydAoKClsxXSAgPQoKaHR0cHM6Ly9kb2NzLm9yYWNsZS5jb20vamF2YXNlLzkvZG9jcy9hcGkvamRrLmphcnRvb2wtc3VtbWFyeS5odG1sI21vZHVsPQplLmRlc2NyaXB0aW9uCgo+Cj4KPiBbMV0gID0KCj4gaHR0cHM6Ly9naXRodWIuY29tL2NvZGVoYXVzLXBsZXh1cy9wbGV4dXMtYXJjaGl2ZXIvaXNzdWVzLzY5I2lzc3VlY29tbT0KZW50LTM0OTA5NTEwMQo+IFsyXSBodHRwczovL2RvY3Mub3JhY2xlLmNvbS9qYXZhc2UvOS90b29scy9qYXIuaHRtCj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDgxNS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgRGVjIDIyIDA5OjU3OjIzIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDgxNS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDNUUxMzEwN0QxCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMjIgRGVjIDIwMTcgMDk6NTc6MjMgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1NTg2NiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMiBEZWMgMjAxNyAwOTo1NzoyMyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTU3OTUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjIgRGVjIDIwMTcgMDk6NTc6MjMgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NTc4NCBpbnZva2VkIGJ5IHVpZCA5OSk7IDIyIERlYyAyMDE3IDA5OjU3OjIzIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDIyIERlYyAyMDE3IDA5OjU3OjIzICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgQTI4MDMxQTAwQTMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDIyIERlYyAyMDE3IDA5OjU3OjIyICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpEYXRlOiBGcmksIDIyIERlYyAyMDE3IDEwOjU3OjIwICswMTAwClN1YmplY3Q6IFNlY29uZCBNTkctNjMwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC56Ym02OXVvMWtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpIaSwKCmludHJvZHVjdGlvbiBvZiB0aGUgUHJvamVjdEFydGlmYWN0c0NhY2hlIGludHJvZHVjZWQgYSBjcml0aWNhbCBpc3N1ZSAgCndoZXJlIGNhY2hlZCByZWFjdG9yIHByb2plY3RzIGFyZSBuZXZlciB1cGRhdGVkLCBhbmQgd2hpY2ggY2F1c2UgYnVpbGQgIApmYWlsdXJlIG9yIGluIHdvcnN0IGNhc2Ugc3VjY2Vzc2Z1bCBidWlsZHMgd2l0aCBjb3JydXB0IGFydGlmYWN0cyBpbiBjYXNlICAKdGhlcmUncyBzb21lIGFnZ3JlZ2F0aW9uIGFjdGl2aXRpZXMuCgpodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MzAwCgpGaXg6Cmh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vY29tcGFyZS9NTkctNjMwMF9Qcm9qZWN0QXJ0aWZhY3RzQ2FjaGUtYnVnCgpTb2x1dGlvbiBjb25maXJtZWQgYnkgdGhlIHJlcG9ydGVyLgoKUHJvamVjdEFydGlmYWN0c0NhY2hlIHdhcyBhY3R1YWxseSBpbiB0aGUgd3JvbmcgcGFja2FnZSBkdWUgdG8gdXNhZ2Ugb2YgIApwYWNrYWdlLXZpc2libGUgbWV0aG9kcy4KSSd2ZSBjbGVhbmVkIHRoaXMgdXAgYXMgd2VsbC4KCldobyB3YW50cyB0byBzZWNvbmQgdGhpcz8KCnRoYW5rcywKUm9iZXJ0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4MTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgRnJpIERlYyAyMiAxMDo1MDoyNiAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4MTYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgQzM4MDMxMDlCNgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBGcmksIDIyIERlYyAyMDE3IDEwOjUwOjI2ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzY0ODAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjIgRGVjIDIwMTcgMTA6NTA6MjYgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDM2NDAzIGludm9rZWQgYnkgdWlkIDUwMCk7IDIyIERlYyAyMDE3IDEwOjUwOjI2IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzYzOTIgaW52b2tlZCBieSB1aWQgOTkpOyAyMiBEZWMgMjAxNyAxMDo1MDoyNiAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAyMiBEZWMgMjAxNyAxMDo1MDoyNiArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIEFBRkFEMUEwMDlDCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAyMiBEZWMgMjAxNyAxMDo1MDoyNSArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTg7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogbWVyZ2luZyBNTkctNjMwOCBkaXNwbGF5IHBhY2thZ2luZwpSZWZlcmVuY2VzOiA8Mjc1MzA0MC44UzE1c2xqN1o1QGdpZ2E+CiA8Q0ErblBuTXdZcy01U1QwUGtqdXh4MDJzSnNQXzB2VGcwQkhVVnpPajYtQlZNUGtrbXJ3QG1haWwuZ21haWwuY29tPgogPG9wLnphMW11M3Fia2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PiA8MjM5OTk5MS5jU2FIVkJ6QXpiQGdpZ2E+CkRhdGU6IEZyaSwgMjIgRGVjIDIwMTcgMTE6NTA6MjQgKzAxMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogUXVvdGVkLVByaW50YWJsZQpGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AuemJtOXFhemprZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkluLVJlcGx5LVRvOiA8MjM5OTk5MS5jU2FIVkJ6QXpiQGdpZ2E+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKTm93IE1ORy02MzA4IGxvb2tzIGZpbmUgdG8gbWUuIElmIHlvdSBhZ3JlZSB5b3UgY2FuIG1lcmdlIGl0LgoKUm9iZXJ0CgpPbiBTdW4sIDEwIERlYyAyMDE3IDIwOjQ2OjM4ICswMTAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnI9CmVlLmZyPiAgPQoKd3JvdGU6Cgo+IExlIGRpbWFuY2hlIDEwIGQ9QzM9QTljZW1icmUgMjAxNywgMTk6MjY6NTMgQ0VUIFJvYmVydCBTY2hvbHRlIGEgPUMzPUE5PQpjcml0IDoKPj4gT24gU3VuLCAxMCBEZWMgMjAxNyAxODozODo1NSArMDEwMCwgU3RlcGhlbiBDb25ub2xseQo+Pgo+PiA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6Cj4+ID4gT24gU3VuIDEwIERlYyAyMDE3IGF0IDE3OjEyLCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+ID0KID0KCj4+IHdyb3RlOgo+PiA+PiBPbiBTdW4sIDEwIERlYyAyMDE3IDE3OjQ2OjEwICswMTAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkKPj4gPj4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4gPj4KPj4gPj4gd3JvdGU6Cj4+ID4+ID4gTGUgZGltYW5jaGUgMTAgZD1DMz1BOWNlbWJyZSAyMDE3LCAxMTowNjozMiBDRVQgUm9iZXJ0IFNjaG9sdGUgYT0KID1DMz1BOWNyaXQgOgo+PiA+PiA+PiBJIHN0aWxsIHRoaW5rIGl0IGlzIHVnbHkgdG8gdXNlIHRoZSBIUiBmb3IgdGhpcyBraW5kIG9mIGluZm8uCj4+ID4+ID4+IElmIHlvdSAqcmVhbGx5KiB3YW50IHRoaXMgaW5mbywgSSdkIHByZWZlciBhIG5ldyBsaW5lLCBvZmZlcmluZz0KICA9Cgo+PiBtb3JlCj4+ID4+ID4+IHNwYWNlCj4+ID4+ID4+IGZvciBhZGRpdGlvbmFsIGluZm8uCj4+ID4+ID4KPj4gPj4gPiB5ZXMsIEkgKnJlYWxseSogd2FudCB0aGlzIGluZm86IHRoZSBwcmVjaXNlIGRldGFpbHMgb24gaG93IHRvICA9Cgo+PiBkaXNwbGF5Cj4+ID4+Cj4+ID4+IGl0Cj4+ID4+Cj4+ID4+ID4gaXMKPj4gPj4gPiBsZXNzIGltcG9ydGFudAo+PiA+PiA+Cj4+ID4+ID4+IE90aGVyIG9wdGlvbiBpcyB0byBsZWF2ZSBpdCBhcyBpdCBpcy4gSWYgZGV2ZWxvcGVycyB3YW50IGl0LCB0aD0KZXkgID0KCj4+IGNhbgo+PiA+PiA+PiBwdXQKPj4gPj4gPj4gaXQgaW4gdGhlIG5hbWUuCj4+ID4+ID4KPj4gPj4gPiB0aGUgaWRlYSBpcyB0aGF0ICR7cHJvamVjdC5wYWNrYWdpbmd9IGRyaXZlcyB0aGUgZGVmYXVsdCBidWlsZCwgPQogPQoKPj4gYmVmb3JlCj4+ID4+ID4gYWRkaXRpb25hbCBwbHVnaW5zIGJpbmRpbmdzOiBpdCdzIHVzZWZ1bCB0byBkaXNwbGF5IGl0IGFzIGl0IGlzID0KYSAgPQoKPj4ga2V5Cj4+ID4+ID4gaW5mbwo+PiA+PiA+Cj4+ID4+ID4+IFNvIC0xIGZvciBtZS4KPj4gPj4gPgo+PiA+PiA+IGhvdyBkbyB5b3Ugd2FudCB0byBwcm9jZWVkIHRvIGNob29zZSB0aGUgYmVzdCBkaXNwbGF5Pwo+PiA+Pgo+PiA+PiBJcyBpdCBhY2NlcHRhYmxlIHRvIGFkZCBpdCB0byB0aGUgIlJlYWN0b3IgQnVpbGQgT3JkZXIiPyBJdCBoYXMgID0KCj4+IGVub3VnaAo+PiA+PiBzcGFjZSBmb3IgdGhpcyBraW5kIG9mIGluZm9ybWF0aW9uLgo+PiA+Cj4+ID4gST1FMj04MD05OWQgbGlrZSBpdCBpbiBib3RoIHBsYWNlcy4gOy0pCj4gKzEKPiBpZiB3ZSBoYXZlIGluZm8gb25seSBvbiAiUmVhY3RvciBCdWlsZCBPcmRlciIsIEkgc2VlIG9uZSBtaXNzaW5nIGNhc2U6PQogID0KCj4gd2hlbgo+IGl0J3MgYSBzaW1wbGUgbW9kdWxlIGJ1aWxkLCB3aXRob3V0IHJlYWN0b3IKPgo+Pgo+PiBTZWVtcyBsaWtlIEknbSBvbmUgb2YgdGhlIGZldyB3aG8gZG9lc24ndCB1bmRlcnN0YW5kIHdoYXQgdGhpcyBpbmZvICA9Cgo+PiBhZGRzLgo+PiBJZiBpdCBzYXlzIHBvbSwgaXQnbGwgcnVuICphdCBsZWFzdCogdGhlIG0taW5zdGFsbC1wIGFuZCBtLWRlcGxveS1wLgo+PiBJZiBJIG9ubHkgc2VlIHRoZSBtLWluc3RhbGwtcCBhbmQgbS1kZXBsb3ktcCBiZWluZyBleGVjdXRlZCwgaXQgbXVzdCA9CmJlICA9Cgo+PiBhCj4+IHBvbS4KPj4gSW4gZ2VuZXJhbCBJIGNhbiBzZWUgYnkgdGhlIG5hbWUgd2hhdCB3aWxsIGhhcHBlbi4KPj4KPj4gSWYgd2UncmUgZGlzY3Vzc2luZyBtb2R1bGUgImhlYWRlciIgaW5mb3JtYXRpb246Cj4+IFdoYXQgSSBhbSBtaXNzaW5nIGlzIGEgdGltZXN0YW1wIHdoZW4gdGhlIG1vZHVsZSBzdGFydGVkLgo+PiBSZWFzb246IGluIGNhc2Ugb2YgYSBsb25nIGJ1aWxkIEkgd291bGQgbGlrZSB0byBiZSBhYmxlIHRvIGVzdGltYXRlIGk9CmYgID0KCj4+IHRoZQo+PiBidWlsZCBpcyBzdGlsbCBhY3RpdmUgb3IgaGFuZ2luZy4KPiBvbiB0aGlzIHJlcXVpcmVtZW50LCBJJ2QgbW9yZSBhZGQgc29tZSB0aW1lciAic2luY2UgdGhlIGxhc3QgbG9nIiB0aGFuPQogYQo+IHRpbWVzdGFtcCBvbiBlYWNoIGxpbmUKPgo+PiBBbHNvIGluIHNvbWUgY2FzZXMgSSB3b3VsZCBsaWtlIHRvIHNlZSBHQVYgaW5zdGVhZCBvZiB0aGUgbmFtZSwgYmVjYXU9CnNlCj4+IHRoYXQgY2FuIGhlbHAgaW52ZXN0aWdhdGluZyBpbiBjYXNlIG9mIGEgbXVsdGltb2R1bGUgcHJvamVjdCB3aGVuIHRoZT0KcmUKPj4gYXJlIGlzc3VlcyB3aXRoIHNvbWUgZGVwZW5kZW5jeSAoPTNER0FWKS4KPiBkZXBlbmRlbmN5IGJldHdlZW4gbW9kdWxlcyBpbiB0aGUgcmVhY3Rvcj8gSSBkb24ndCByZWFsbHkgdW5kZXJzdGFuZAo+IEJ1dCBmb3IgdGhpcywgd2UgYWxyZWFkeSBoYXZlICJAIGFydGlmYWN0SWQiIG9uIGVhY2ggZ29hbCBzdGFydCwgYW5kICA9Cgo+IHZlcnNpb24KPiBpbiB0aGUgIkJ1aWxkaW5nIiBtZXNzYWdlOiBncm91cElkLCBmb3IgdGhlIHJlYWN0b3IsIEkgZG9uJ3Qgc2VlIHRoZSBuPQplZWQKPgo+Pgo+PiBTbyB0aGVyZSdzIGVub3VnaCB0byB0aGluayBvZiB0byBmaWxsIGFuIGV4dHJhIHJvdyA7KQo+IHNvcnJ5LCBJIGRvbid0IHRoaW5rIHdlJ2xsIGZpbGwgYSByb3cgd2l0aCByZWFsbHkgdXNlZnVsIGFkZGl0aW9uYWwgaW49CmZvCj4KPiBhbnkgb3RoZXIgb3Bpbmlvbj8KPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUMzPUE5Cj4KPj4KPj4gPj4gPiBSZWdhcmRzLAo+PiA+PiA+Cj4+ID4+ID4gSGVydj1DMz1BOQo+PiA+PiA+Cj4+ID4+ID4+IFJvYmVydAo+PiA+PiA+Pgo+PiA+PiA+Pgo+PiA+PiA+PiBPbiBTdW4sIDEwIERlYyAyMDE3IDExOjAxOjQxICswMTAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkKPj4gPj4gPj4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4gPj4gPj4KPj4gPj4gPj4gd3JvdGU6Cj4+ID4+ID4+ID4gaXMgdGhlcmUgYSBzZWNvbmRlciBmb3IgdGhpcyBlbmhhbmNlbWVudD8KPj4gPj4KPj4gPj4gPj4gPiBDSToKPj4gPj4gID0KCj4+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tMy54LWplbmtpbnNmaT0KbGUvCj4+ID4+Cj4+ID4+ID4+ID4gam9iL01ORy02MzA4X2Rpc3BsYXlfcGFja2FnaW5nLwo+PiA+PiA+PiA+Cj4+ID4+ID4+ID4gSmlyYSBpc3N1ZTogaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjMwOAo+PiA+PiA+PiA+Cj4+ID4+ID4+ID4gUmVnYXJkcywKPj4gPj4gPj4gPgo+PiA+PiA+PiA+IEhlcnY9QzM9QTkKPj4gPj4KPj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotLS0KPj4gPj4KPj4gPj4gPj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+PiA+PiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4gPj4gPj4KPj4gPj4gPj4gID0KCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KCj4+ID4+ID4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4+ID4+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4gPj4gPgo+PiA+PiA+ICA9Cgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cgo+PiA+PiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4+ID4+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+Pgo+PiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0tLQo+PiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4+Cj4+ID4+IC0tCj4+ID4KPj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQoKPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODE5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBEZWMgMjIgMTM6Mjg6MzQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODE5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIEFBM0JBMTBFRkIKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAyMiBEZWMgMjAxNyAxMzoyODozNCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDgzNTAgaW52b2tlZCBieSB1aWQgNTAwKTsgMjIgRGVjIDIwMTcgMTM6Mjg6MzQgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgyNzUgaW52b2tlZCBieSB1aWQgNTAwKTsgMjIgRGVjIDIwMTcgMTM6Mjg6MzQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA4MjY0IGludm9rZWQgYnkgdWlkIDk5KTsgMjIgRGVjIDIwMTcgMTM6Mjg6MzQgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMjIgRGVjIDIwMTcgMTM6Mjg6MzQgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCBGMjc5MDFBMDBBMwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjIgRGVjIDIwMTcgMTM6Mjg6MzIgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFNlY29uZCBNTkctNjMwMApSZWZlcmVuY2VzOiA8b3AuemJtNjl1bzFrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CiA8Q0ErblBuTXdWMlJWTytRWU1ELVFoOTA5ZF9jOUM4bnE9UEZRUE1oUnkyX3l6b2haY0NBQG1haWwuZ21haWwuY29tPgpEYXRlOiBGcmksIDIyIERlYyAyMDE3IDE0OjI4OjI4ICswMTAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnpibmcxcXN1a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgpJbi1SZXBseS1UbzogPENBK25Qbk13VjJSVk8rUVlNRC1RaDkwOWRfYzlDOG5xPVBGUVBNaFJ5Ml95em9oWmNDQUBtYWlsLmdtYWlsLmNvbT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpUaGFua3MsIGRvbmUuCgpPbiBGcmksIDIyIERlYyAyMDE3IDEzOjQwOjMxICswMTAwLCBTdGVwaGVuIENvbm5vbGx5ICAKPHN0ZXBoZW4uYWxhbi5jb25ub2xseUBnbWFpbC5jb20+IHdyb3RlOgoKPiArMQo+Cj4gT24gRnJpIDIyIERlYyAyMDE3IGF0IDA5OjU3LCBSb2JlcnQgU2Nob2x0ZSA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+IHdyb3RlOgo+Cj4+IEhpLAo+Pgo+PiBpbnRyb2R1Y3Rpb24gb2YgdGhlIFByb2plY3RBcnRpZmFjdHNDYWNoZSBpbnRyb2R1Y2VkIGEgY3JpdGljYWwgaXNzdWUKPj4gd2hlcmUgY2FjaGVkIHJlYWN0b3IgcHJvamVjdHMgYXJlIG5ldmVyIHVwZGF0ZWQsIGFuZCB3aGljaCBjYXVzZSBidWlsZAo+PiBmYWlsdXJlIG9yIGluIHdvcnN0IGNhc2Ugc3VjY2Vzc2Z1bCBidWlsZHMgd2l0aCBjb3JydXB0IGFydGlmYWN0cyBpbiAgCj4+IGNhc2UKPj4gdGhlcmUncyBzb21lIGFnZ3JlZ2F0aW9uIGFjdGl2aXRpZXMuCj4+Cj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYzMDAKPj4KPj4gRml4Ogo+PiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL2NvbXBhcmUvTU5HLTYzMDBfUHJvamVjdEFydGlmYWN0c0NhY2hlLWJ1Zwo+Pgo+PiBTb2x1dGlvbiBjb25maXJtZWQgYnkgdGhlIHJlcG9ydGVyLgo+Pgo+PiBQcm9qZWN0QXJ0aWZhY3RzQ2FjaGUgd2FzIGFjdHVhbGx5IGluIHRoZSB3cm9uZyBwYWNrYWdlIGR1ZSB0byB1c2FnZSBvZgo+PiBwYWNrYWdlLXZpc2libGUgbWV0aG9kcy4KPj4gSSd2ZSBjbGVhbmVkIHRoaXMgdXAgYXMgd2VsbC4KPj4KPj4gV2hvIHdhbnRzIHRvIHNlY29uZCB0aGlzPwo+Pgo+PiB0aGFua3MsCj4+IFJvYmVydAo+Pgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Pgo+PiAtLQo+IFNlbnQgZnJvbSBteSBwaG9uZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODIxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIEZyaSBEZWMgMjIgMTQ6NTM6MzggMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODIxLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDhEOTg5MTc0NTgKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgRnJpLCAyMiBEZWMgMjAxNyAxNDo1MzozOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDU2MzM4IGludm9rZWQgYnkgdWlkIDUwMCk7IDIyIERlYyAyMDE3IDE0OjUzOjM4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1NjI1MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMiBEZWMgMjAxNyAxNDo1MzozOCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU2MjQxIGludm9rZWQgYnkgdWlkIDk5KTsgMjIgRGVjIDIwMTcgMTQ6NTM6MzggLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IEZyaSwgMjIgRGVjIDIwMTcgMTQ6NTM6MzggKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCA2QkFFQjFBMDA5QwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMjIgRGVjIDIwMTcgMTQ6NTM6MzUgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IG1lcmdpbmcgTU5HLTYzMDggZGlzcGxheSBwYWNrYWdpbmcKUmVmZXJlbmNlczogPDI3NTMwNDAuOFMxNXNsajdaNUBnaWdhPiA8MjM5OTk5MS5jU2FIVkJ6QXpiQGdpZ2E+CiA8b3AuemJtOXFhemprZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+IDwzNzMxMjg4LklHMEdseDdlY2pAZ2lnYT4KRGF0ZTogRnJpLCAyMiBEZWMgMjAxNyAxNTo1MzozMiArMDEwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBRdW90ZWQtUHJpbnRhYmxlCkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC56Ym5remljNGtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KSW4tUmVwbHktVG86IDwzNzMxMjg4LklHMEdseDdlY2pAZ2lnYT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpIb3cgYWJvdXQgc3Vycm91bmRpbmcgdGhlIHBhY2thZ2luZyB3aXRoIHNwYWNlcywgdGhlcmUncyBlbm91Z2ggcm9vbSBhbmQ9CiAgPQoKaXQgbG9va3MgZnJpZW5kbGllciB0byBtZS4KCk9uIEZyaSwgMjIgRGVjIDIwMTcgMTU6MzU6MzAgKzAxMDAsIEhlcnY9QzM9QTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcj0KZWUuZnI+ICA9Cgp3cm90ZToKCj4gYXMgZGlzY3Vzc2VkIG9uIElSQywgc3BsaXQgaW5mb3JtYXRpb24gaW4gMiBzZXBhcmF0ZSBwYXJ0czoKPiAtIHByb2plY3QgZ3JvdXBJZCArIGFydGlmYWN0SWQgY29vcmRpbmF0ZXMgaW4gaGVhZGVyCj4gLSBwYWNrYWdpbmcgaW4gZm9vdGVyIChub3QgcGFydCBvZiBjb29yZGluYXRlcykKPgo+IHRvIG1lLCB0aGUgcmVzdWx0IGlzIG5vdyBvayB0byBtZXJnZSAoYWZ0ZXIgc3F1YXNoaW5nLi4uKQo+Cj4gbm8gb2JqZWN0aW9uIGZyb20gYW55Ym9keT8KPgo+IFJlZ2FyZHMsCj4KPiBIZXJ2PUMzPUE5Cj4KPiBMZSB2ZW5kcmVkaSAyMiBkPUMzPUE5Y2VtYnJlIDIwMTcsIDExOjUwOjI0IENFVCBSb2JlcnQgU2Nob2x0ZSBhID1DMz1BOT0KY3JpdCA6Cj4+IE5vdyBNTkctNjMwOCBsb29rcyBmaW5lIHRvIG1lLiBJZiB5b3UgYWdyZWUgeW91IGNhbiBtZXJnZSBpdC4KPj4KPj4gUm9iZXJ0Cj4+Cj4+IE9uIFN1biwgMTAgRGVjIDIwMTcgMjA6NDY6MzggKzAxMDAsIEhlcnY9QzM9QTkgQk9VVEVNWSAgPQoKPj4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4KPj4gd3JvdGU6Cj4+ID4gTGUgZGltYW5jaGUgMTAgZD1DMz1BOWNlbWJyZSAyMDE3LCAxOToyNjo1MyBDRVQgUm9iZXJ0IFNjaG9sdGUgYSA9QzM9Cj1BOWNyaXQgOgo+PiA+PiBPbiBTdW4sIDEwIERlYyAyMDE3IDE4OjM4OjU1ICswMTAwLCBTdGVwaGVuIENvbm5vbGx5Cj4+ID4+Cj4+ID4+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4gPj4gPiBPbiBTdW4gMTAgRGVjIDIwMTcgYXQgMTc6MTIsIFJvYmVydCBTY2hvbHRlIDxyZnNjaG9sdGVAYXBhY2hlLm9yPQpnPgo+PiA+Pgo+PiA+PiB3cm90ZToKPj4gPj4gPj4gT24gU3VuLCAxMCBEZWMgMjAxNyAxNzo0NjoxMCArMDEwMCwgSGVydj1DMz1BOSBCT1VURU1ZCj4+ID4+ID4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4+ID4+ID4+Cj4+ID4+ID4+IHdyb3RlOgo+PiA+PiA+PiA+IExlIGRpbWFuY2hlIDEwIGQ9QzM9QTljZW1icmUgMjAxNywgMTE6MDY6MzIgQ0VUIFJvYmVydCBTY2hvbHQ9CmUgYSAgPQoKPj4gPUMzPUE5Y3JpdCA6Cj4+ID4+ID4+ID4+IEkgc3RpbGwgdGhpbmsgaXQgaXMgdWdseSB0byB1c2UgdGhlIEhSIGZvciB0aGlzIGtpbmQgb2YgaW5mbz0KLgo+PiA+PiA+PiA+PiBJZiB5b3UgKnJlYWxseSogd2FudCB0aGlzIGluZm8sIEknZCBwcmVmZXIgYSBuZXcgbGluZSwgb2ZmZXI9CmluZwo+PiA+Pgo+PiA+PiBtb3JlCj4+ID4+Cj4+ID4+ID4+ID4+IHNwYWNlCj4+ID4+ID4+ID4+IGZvciBhZGRpdGlvbmFsIGluZm8uCj4+ID4+ID4+ID4KPj4gPj4gPj4gPiB5ZXMsIEkgKnJlYWxseSogd2FudCB0aGlzIGluZm86IHRoZSBwcmVjaXNlIGRldGFpbHMgb24gaG93IHRvPQoKPj4gPj4KPj4gPj4gZGlzcGxheQo+PiA+Pgo+PiA+PiA+PiBpdAo+PiA+PiA+Pgo+PiA+PiA+PiA+IGlzCj4+ID4+ID4+ID4gbGVzcyBpbXBvcnRhbnQKPj4gPj4gPj4gPgo+PiA+PiA+PiA+PiBPdGhlciBvcHRpb24gaXMgdG8gbGVhdmUgaXQgYXMgaXQgaXMuIElmIGRldmVsb3BlcnMgd2FudCBpdCw9CiAgPQoKPj4gdGhleQo+PiA+Pgo+PiA+PiBjYW4KPj4gPj4KPj4gPj4gPj4gPj4gcHV0Cj4+ID4+ID4+ID4+IGl0IGluIHRoZSBuYW1lLgo+PiA+PiA+PiA+Cj4+ID4+ID4+ID4gdGhlIGlkZWEgaXMgdGhhdCAke3Byb2plY3QucGFja2FnaW5nfSBkcml2ZXMgdGhlIGRlZmF1bHQgYnVpbD0KZCwKPj4gPj4KPj4gPj4gYmVmb3JlCj4+ID4+Cj4+ID4+ID4+ID4gYWRkaXRpb25hbCBwbHVnaW5zIGJpbmRpbmdzOiBpdCdzIHVzZWZ1bCB0byBkaXNwbGF5IGl0IGFzIGl0ID0KaXMgID0KCj4+IGEKPj4gPj4KPj4gPj4ga2V5Cj4+ID4+Cj4+ID4+ID4+ID4gaW5mbwo+PiA+PiA+PiA+Cj4+ID4+ID4+ID4+IFNvIC0xIGZvciBtZS4KPj4gPj4gPj4gPgo+PiA+PiA+PiA+IGhvdyBkbyB5b3Ugd2FudCB0byBwcm9jZWVkIHRvIGNob29zZSB0aGUgYmVzdCBkaXNwbGF5Pwo+PiA+PiA+Pgo+PiA+PiA+PiBJcyBpdCBhY2NlcHRhYmxlIHRvIGFkZCBpdCB0byB0aGUgIlJlYWN0b3IgQnVpbGQgT3JkZXIiPyBJdCBoYXM9Cgo+PiA+Pgo+PiA+PiBlbm91Z2gKPj4gPj4KPj4gPj4gPj4gc3BhY2UgZm9yIHRoaXMga2luZCBvZiBpbmZvcm1hdGlvbi4KPj4gPj4gPgo+PiA+PiA+IEk9RTI9ODA9OTlkIGxpa2UgaXQgaW4gYm90aCBwbGFjZXMuIDstKQo+PiA+Cj4+ID4gKzEKPj4gPiBpZiB3ZSBoYXZlIGluZm8gb25seSBvbiAiUmVhY3RvciBCdWlsZCBPcmRlciIsIEkgc2VlIG9uZSBtaXNzaW5nIGNhPQpzZToKPj4gPiB3aGVuCj4+ID4gaXQncyBhIHNpbXBsZSBtb2R1bGUgYnVpbGQsIHdpdGhvdXQgcmVhY3Rvcgo+PiA+Cj4+ID4+IFNlZW1zIGxpa2UgSSdtIG9uZSBvZiB0aGUgZmV3IHdobyBkb2Vzbid0IHVuZGVyc3RhbmQgd2hhdCB0aGlzIGluZj0Kbwo+PiA+PiBhZGRzLgo+PiA+PiBJZiBpdCBzYXlzIHBvbSwgaXQnbGwgcnVuICphdCBsZWFzdCogdGhlIG0taW5zdGFsbC1wIGFuZCBtLWRlcGxveS09CnAuCj4+ID4+IElmIEkgb25seSBzZWUgdGhlIG0taW5zdGFsbC1wIGFuZCBtLWRlcGxveS1wIGJlaW5nIGV4ZWN1dGVkLCBpdCBtdT0Kc3QgID0KCj4+IGJlCj4+ID4+IGEKPj4gPj4gcG9tLgo+PiA+PiBJbiBnZW5lcmFsIEkgY2FuIHNlZSBieSB0aGUgbmFtZSB3aGF0IHdpbGwgaGFwcGVuLgo+PiA+Pgo+PiA+PiBJZiB3ZSdyZSBkaXNjdXNzaW5nIG1vZHVsZSAiaGVhZGVyIiBpbmZvcm1hdGlvbjoKPj4gPj4gV2hhdCBJIGFtIG1pc3NpbmcgaXMgYSB0aW1lc3RhbXAgd2hlbiB0aGUgbW9kdWxlIHN0YXJ0ZWQuCj4+ID4+IFJlYXNvbjogaW4gY2FzZSBvZiBhIGxvbmcgYnVpbGQgSSB3b3VsZCBsaWtlIHRvIGJlIGFibGUgdG8gZXN0aW1hdD0KZSAgPQoKPj4gaWYKPj4gPj4gdGhlCj4+ID4+IGJ1aWxkIGlzIHN0aWxsIGFjdGl2ZSBvciBoYW5naW5nLgo+PiA+Cj4+ID4gb24gdGhpcyByZXF1aXJlbWVudCwgSSdkIG1vcmUgYWRkIHNvbWUgdGltZXIgInNpbmNlIHRoZSBsYXN0IGxvZyIgID0KCj4+IHRoYW4gYQo+PiA+IHRpbWVzdGFtcCBvbiBlYWNoIGxpbmUKPj4gPgo+PiA+PiBBbHNvIGluIHNvbWUgY2FzZXMgSSB3b3VsZCBsaWtlIHRvIHNlZSBHQVYgaW5zdGVhZCBvZiB0aGUgbmFtZSwgID0KCj4+IGJlY2F1c2UKPj4gPj4gdGhhdCBjYW4gaGVscCBpbnZlc3RpZ2F0aW5nIGluIGNhc2Ugb2YgYSBtdWx0aW1vZHVsZSBwcm9qZWN0IHdoZW4gPQogPQoKPj4gdGhlcmUKPj4gPj4gYXJlIGlzc3VlcyB3aXRoIHNvbWUgZGVwZW5kZW5jeSAoPTNER0FWKS4KPj4gPgo+PiA+IGRlcGVuZGVuY3kgYmV0d2VlbiBtb2R1bGVzIGluIHRoZSByZWFjdG9yPyBJIGRvbid0IHJlYWxseSB1bmRlcnN0YW49CmQKPj4gPiBCdXQgZm9yIHRoaXMsIHdlIGFscmVhZHkgaGF2ZSAiQCBhcnRpZmFjdElkIiBvbiBlYWNoIGdvYWwgc3RhcnQsIGFuPQpkCj4+ID4gdmVyc2lvbgo+PiA+IGluIHRoZSAiQnVpbGRpbmciIG1lc3NhZ2U6IGdyb3VwSWQsIGZvciB0aGUgcmVhY3RvciwgSSBkb24ndCBzZWUgdGg9CmUgID0KCj4+IG5lZWQKPj4gPgo+PiA+PiBTbyB0aGVyZSdzIGVub3VnaCB0byB0aGluayBvZiB0byBmaWxsIGFuIGV4dHJhIHJvdyA7KQo+PiA+Cj4+ID4gc29ycnksIEkgZG9uJ3QgdGhpbmsgd2UnbGwgZmlsbCBhIHJvdyB3aXRoIHJlYWxseSB1c2VmdWwgYWRkaXRpb25hbD0KICA9Cgo+PiBpbmZvCj4+ID4KPj4gPiBhbnkgb3RoZXIgb3Bpbmlvbj8KPj4gPgo+PiA+IFJlZ2FyZHMsCj4+ID4KPj4gPiBIZXJ2PUMzPUE5Cj4+ID4KPj4gPj4gPj4gPiBSZWdhcmRzLAo+PiA+PiA+PiA+Cj4+ID4+ID4+ID4gSGVydj1DMz1BOQo+PiA+PiA+PiA+Cj4+ID4+ID4+ID4+IFJvYmVydAo+PiA+PiA+PiA+Pgo+PiA+PiA+PiA+Pgo+PiA+PiA+PiA+PiBPbiBTdW4sIDEwIERlYyAyMDE3IDExOjAxOjQxICswMTAwLCBIZXJ2PUMzPUE5IEJPVVRFTVkKPj4gPj4gPj4gPj4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4gPj4gPj4gPj4KPj4gPj4gPj4gPj4gd3JvdGU6Cj4+ID4+ID4+ID4+ID4gaXMgdGhlcmUgYSBzZWNvbmRlciBmb3IgdGhpcyBlbmhhbmNlbWVudD8KPj4gPj4KPj4gPj4gPj4gPj4gPiBDSToKPj4gPj4gID0KCj4+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tMy54LWplbmtpbnNmaT0KbGUvCj4+ID4+Cj4+ID4+ID4+ID4+ID4gam9iL01ORy02MzA4X2Rpc3BsYXlfcGFja2FnaW5nLwo+PiA+PiA+PiA+PiA+Cj4+ID4+ID4+ID4+ID4gSmlyYSBpc3N1ZTogaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjMwOD0KCj4+ID4+ID4+ID4+ID4KPj4gPj4gPj4gPj4gPiBSZWdhcmRzLAo+PiA+PiA+PiA+PiA+Cj4+ID4+ID4+ID4+ID4gSGVydj1DMz1BOQo+PiA+PiA+Pgo+PiA+PiA+PiAgPQoKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQoKPj4gPj4gPj4KPj4gPj4gPj4gPj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+PiA+PiA+PiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc9Cgo+PiA+Pgo+PiA+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Ci0tLQo+PiA+Pgo+PiA+PiA+PiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+PiA+PiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4+Cj4+ID4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLS0tCj4+ID4+Cj4+ID4+ID4+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPj4gPj4gPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4+ID4+Cj4+ID4+ID4+ICA9Cgo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS09Cgo+PiA+PiA+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+PiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4+ID4+Cj4+ID4+ID4+IC0tCj4+ID4+ID4KPj4gPj4gPiBTZW50IGZyb20gbXkgcGhvbmUKPj4gPj4KPj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQotLS0KPj4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+Cj4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLS0KPj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQoKPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODI2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFN1biBEZWMgMjQgMTI6MDU6MDAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODI2LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDgwQTQ0MTc5REQKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgU3VuLCAyNCBEZWMgMjAxNyAxMjowNTowMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDMwOTg2IGludm9rZWQgYnkgdWlkIDUwMCk7IDI0IERlYyAyMDE3IDEyOjA1OjAwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAzMDkwNyBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNCBEZWMgMjAxNyAxMjowNTowMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMwODk0IGludm9rZWQgYnkgdWlkIDk5KTsgMjQgRGVjIDIwMTcgMTI6MDU6MDAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFN1biwgMjQgRGVjIDIwMTcgMTI6MDU6MDAgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCA3OEY4RjFBMDA1NQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFN1biwgMjQgRGVjIDIwMTcgMTI6MDQ6NTcgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IFtJTVBPUlRBTlRdIFJlOiBHaXQgbWlncmF0aW9uIG5leHQgc3RlcHMKUmVmZXJlbmNlczogPDIwMDk3NjU1OTIuMjI5NzIyMTcuMTUxNDEwOTI1NjYzMi5KYXZhTWFpbC5yb290QHNwb29sZXI0LWcyNz4KRGF0ZTogU3VuLCAyNCBEZWMgMjAxNyAxMzowNDo1NiArMDEwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBRdW90ZWQtUHJpbnRhYmxlCkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC56YnEyaWkxbWtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KSW4tUmVwbHktVG86IDwyMDA5NzY1NTkyLjIyOTcyMjE3LjE1MTQxMDkyNTY2MzIuSmF2YU1haWwucm9vdEBzcG9vbGVyNC1nMjc+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKSSBkaWQgdGhlIGFzc3VtcHRpb24gdGhhdCB5b3UgY2FuIGlzb2xhdGUgYWxsIG1hdmVuLWphdmFkb2MtcGx1Z2luIGNvbW1pPQp0cy4KSWYgaXQgaXMgZm9yIGFsbCBtYXZlbi1wbHVnaW5zIG9yIG5vdGhpbmcsIHRoZW4gaXQgaXMgYSBkaWZmZXJlbnQgc3RvcnkuPQoKCk9uIFN1biwgMjQgRGVjIDIwMTcgMTA6NTQ6MTYgKzAxMDAsIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdyb3RlOgoKPiBJJ2Qgc3VnZ2VzdCB0byB0cnkgdGhlIHByb2Nlc3MgdG8gYSBwZXJzb25hbCBwZXJzb25hbCByZXBvIG9uIEdpdEh1YiB0PQpvICA9Cgo+IHNlZSBpZiB5b3UncmUgYWJsZSB0byBnZXQgYSBiZXR0ZXIgcmVzdWx0IGJlZm9yZSBpbnZvbHZpbmcgbWFudWFsIHdvcms9CiAgPQoKPiBmcm9tIElORlJBIChvbiBtb3JlIHRoYW4gNjAgcmVwb3MuLi4pCj4KPiAoaXQncyBzYWQgdG8gc2VlIG5vYm9keSB0cnkgdG8gZXhwbGFpbiB3aGF0J3MgaGFwcGVubmluZyBvciBpbXByb3ZlIHRoPQplICA9Cgo+IGRvY3VtZW50ZWQgY29tbWFuZHMsIGp1c3QgZ2V0IHRvIGEgY29uY2x1c2lvbjogcmUtZG8gZXZlcnl0aGluZyBhbmQgcHI9CmF5KQo+Cj4gUmVnYXJkcywKPgo+IEhlcnY9RTkKPgo+IC0tLS0tIE1haWwgb3JpZ2luYWwgLS0tLS0KPiBEZTogIkthcmwgSGVpbnogTWFyYmFpc2UiIDxraG1hcmJhaXNlQGdteC5kZT4KPiA9QzA6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4sICJSb2JlcnQgU2Nob2x0ZSIgPQogPQoKPiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Cj4gRW52b3k9RTk6IERpbWFuY2hlIDI0IEQ9RTljZW1icmUgMjAxNyAxMDo0Nzo0Mwo+IE9iamV0OiBSZTogW0lNUE9SVEFOVF0gUmU6IEdpdCBtaWdyYXRpb24gbmV4dCBzdGVwcwo+Cj4gSGksCj4KPiBPbiAyNC8xMi8xNyAxMDo0MCwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4+IEhvdyBhYm91dCBhIGhhcmQgcmVzZXQgb3IgZHJvcHBpbmcgdGhlIHJlcG8gYW5kIGRvaW5nIGl0IGFsbCBvdmVyIGFnYT0KaW4/Cj4KPiBJZiBJIGNvcnJlY3RseSBzZWVuIHRoYXQgLi50aGVyZSBoYWQgbm8gY29tbWl0IHlldCBvbiB0aGUgbmV3IGdpdCByZXBvPQpzLi4KPgo+IFNvIEkgdGhpbmsgaXQgd291bGQgYmUgdGhlIGVhc2llc3Qgd2F5IHRvIGRvIGFzIFJvYmVydCBzdWdnZXN0IC4uLnRvCj4gcmVkbyBtaWdyYXRpb24gZm9yIHRob3NlIHJlcG9zLi4KPgo+IEtpbmQgcmVnYXJkcwo+IEthcmwgSGVpbnoKPj4KPj4gT24gV2VkLCAyMCBEZWMgMjAxNyAxMDo0MjozNiArMDEwMCwgSGVydj1FOSBCT1VURU1ZCj4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdyb3RlOgo+Pgo+Pj4gSU5GUkEtMTU2NzkgZml4ZWQgYnkgaW5mcmEgdGVhbQo+Pj4gdGhlbiBJIHJlLXJ1biBtaWdyYXRlLXBsdWdpbnMuc2ggc2NyaXB0IHRvIHNwbGl0IHRoZSBzdm4yZ2l0IG1pcnJvciA9CnRvCj4+PiBwZXItCj4+PiBwbHVnaW4gZ2l0IHJlcG8KPj4+IGFuZCBJIHB1c2hlZCAibWFzdGVyMiIgYnJhbmNoZXMgZm9yIG0tamF2YWRvYy1wLCBtLXNpdGUtcCBhbmQgbS1wZGYtPQpwLAo+Pj4gd2hpY2gKPj4+IHdlcmUgdGhlIDMgcGx1Z2lucyB3aGljaCBzdWZmZXJlZCBmcm9tIG1pc3NpbmcgY29tbWl0cwo+Pj4KPj4+IG9uIG0tc2l0ZS1wIGFuZCBtLXBkZi1wLCBJJ2xsIGNoZXJyeSBwaWNrIHRoZSB1bmlxdWUgY29tbWl0IHRoYXQgd2FzPQoKPj4+IG1pc3NlZDoKPj4+IG5vdCBhIGJpZyBkZWFsCj4+Pgo+Pj4gb24gbS1qYXZhZG9jLXAsIHRoZSBzaXR1YXRpb24gaXMgbW9yZSBjb3BsZXgsIHNpbmNlIHRoZXJlIHdhcyBhIHJlbGU9CmFzZQo+Pj4KPj4+IEkgYWxzbyBub3RpY2VkIHRoYXQgSSBmb3Jnb3QgdG8gcHVzaCB0YWdzIHdoZW4gaW1wb3J0aW5nOiBJIHN0YXJ0ZWQgPQp0bwo+Pj4gZG8gImdpdAo+Pj4gcHVzaCAtLXRhZ3MiLCBidXQgdGhlIHJlc3VsdCBkb2VzIG5vdCBsb29rIGFzIEkgZXhwZWN0ZWQ6IGl0IGNyZWF0ZXM9CiBhCj4+PiBsb3Qgb2YKPj4+IHBhcmFsbGVsIGJyYW5jaGVzCj4+Pgo+Pj4gSSdsbCBuZWVkIGhlbHAgZnJvbSBnaXQgZXhwZXJ0czogd2hhdCBpcyBoYXBwZW5pbmc/Cj4+Pgo+Pj4gSSBzdG9wcGVkIHRoZSB0YWdzIHB1c2ggaGFsZiB0aGUgd2F5LCB3ZSdsbCBuZWVkIHRvIGRlY2lkZSB3aGF0IHRvICA9Cgo+Pj4gZG8uLi4KPj4+IChJIGtuZXcgSSB3YXMgbm90IGEgZ2l0IGV4cGVydCBhbmQgdGhlcmUgd2FzIGEgcmlzayBmb3Igc29tZXRoaW5nCj4+PiB3ZWlyZCBsaWtlCj4+PiB3aGF0J3MgY3VycmVudGx5IGhhcHBlbmluZy4uLikKPj4+Cj4+PiBBbnkgaGludD8KPj4+Cj4+PiBSZWdhcmRzLAo+Pj4KPj4+IEhlcnY9RTkKPj4+Cj4+PiBMZSBzYW1lZGkgMTYgZD1FOWNlbWJyZSAyMDE3LCAxNjoyODo0OCBDRVQgSGVydj1FOSBCT1VURU1ZIGEgPUU5Y3JpdD0KIDoKPj4+PiBvaywgSSB3YXMgY29uZnVzZWQgYnkgdGhlIGRpZmZlcmVudCB0YWtlcyBhdCBtLWphdmFkb2MtcCAzLjAuMAo+Pj4+Cj4+Pj4geWVzLCBzdm4yZ2l0IG1pcnJvciBpcyBzdHVjayBbMV0gYXQgcjE4MTU2NzUKPj4+Pgo+Pj4+IEkganVzdCBvcGVuZWQgYW4gSU5GUkEgSmlyYSBpc3N1ZQo+Pj4+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvSU5GUkEtMTU2NzkKPj4+Pgo+Pj4+IG9uY2UgdGhlIHN2bjJnaXQgbWlycm9yIHdpbGwgYmUgdXBkYXRlZCwgd2UnbGwgaGF2ZSB0byByZS1ydW4gdGhlICA9Cgo+Pj4+IHNwbGl0Cj4+Pj4gc2NyaXB0cyBhbmQgY2hlcnJ5IHBpY2sgdGhlIG1pc3NpbmcgY29tbWl0cwo+Pj4+Cj4+Pj4gUmVnYXJkcywKPj4+Pgo+Pj4+IEhlcnY9RTkKPj4+Pgo+Pj4+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvY29tbWl0cy90cnVuawo+Pj4+Cj4+Pj4gTGUgc2FtZWRpIDE2IGQ9RTljZW1icmUgMjAxNywgMTM6MDE6MDUgQ0VUIFJvYmVydCBTY2hvbHRlIGEgPUU5Y3JpdD0KIDoKPj4+PiA+IEkgd2FzIHRyaWdnZXJlZCBieSBzb21lIGZhaWxpbmcgdW5pdCB0ZXN0cywgd2hpY2ggc2hvdWxkIGhhdmUgYmVlPQpuCj4+Pj4gc29sdmVkCj4+Pj4gPiBpbiBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+Pj4+ID4KPj4+PiA+IE15IGxhc3QgY29tbWl0IGFjY29yZGluZyB0byBHSVQgd2FzIG5vdmVtYmVyIDE4dGgKPj4+PiA+IE15IGxhc3QgY29tbWl0IGFjY29yZGluZyB0byBTVk4gd2FzIGRlY2VtYmVyIDNyZAo+Pj4+ID4KPj4+PiA+IGNvbXBhcmluZyBzdm5sb2cgd2l0aCBnaXRsb2cgbW9zdCBvZiB0aGVzZSBjb21taXRzIGFyZSBsb3N0Ogo+Pj4+ID4KPj4+PiA+IG1vdmVkIHRvIGdpdAo+Pj4+ID4gLS0tLQo+Pj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIGZvciBuZXh0IGRldmVsb3BtZW50IGl0ZXJhdGlvbgo+Pj4+ID4gLS0tLQo+Pj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIHJlbGVhc2UgbWF2ZW4tamF2YWRvYy1wbHVnaW4tMy4wLjA9Cgo+Pj4+ID4gLS0tLQo+Pj4+ID4gW01KQVZBRE9DLTQ5OF0gIm1vZHVsZSBub3QgZm91bmQiIHdoZW4gSmF2YSA5IG1vZHVsZS1pbmZvIHByZXNlbnQ9Cgo+Pj4+ID4gU3VwcG9ydCBhZ2dyYXRlZCBqYXZhZG9jCj4+Pj4gPiAtLS0tCj4+Pj4gPiBTa2lwIHNldmVyYWwgdW5pdHRlc3RzIGZvciBKYXZhOQo+Pj4+ID4gLS0tLQo+Pj4+ID4gSkRLLTgwMzIyMDUgd2FzIGNsb3NlZCBhcyBub3QgYW4gaXNzdWUsIHNvIG5vdCBzb2x2ZWQgaW4gSmF2YTkuCj4+Pj4gPiBOZWVkIHRvIHJldmlldyB0aGUgY29uY2x1c2lvbgo+Pj4+ID4gLS0tLQo+Pj4+ID4gVXBncmFkZSBtb2NraXRvIHRvIHJlbW92ZSB3YXJuaW5nIGFib3V0IGlsbGVnYWwgcmVmbGVjdGl2ZSBhY2Nlc3M9Cgo+Pj4+ID4gLS0tLQo+Pj4+ID4gSW1wcm92ZSBUZXN0SmF2YWRvY1JlcG9ydFRlc3QjdGVzdFRlc3RKYXZhZG9jCj4+Pj4gPiBKOCB3YXJucyBhbmQgY29udGludWVzIHdpdGggbWlzc2luZyBkZXBlbmRlbmN5LCBKOSBmYWlscy4KPj4+PiA+IEluIGZhY3QgdGVzdCB3YXMgd3Jvbmc6IGRlcGVuZGVuY3kgc2hvdWxkIGhhdmUgYmVlbiBvbiBjbGFzc3BhdGgKPj4+PiA+IC0tLS0KPj4+PiA+IHVuaXR0ZXN0IHNob3VsZCBwcmVmZXIgSkFWQV9IT01FIHdoZW4gZXhlY3V0aW5nIGZyb20gY21kbGluZQo+Pj4+ID4gV2hlbiBydW5uaW5nIHdpdGggSmF2YTkrIG5vIG5lZWQgdG8gc3dpdGNoIGZyb20ganJlIHRvIGpkayBkaXJlY3Q9Cm9yeQo+Pj4+ID4gKGplcDIyMCkKPj4+PiA+IC0tLS0KPj4+PiA+IE1KQVZBRE9DLTUwMiBVcGRhdGUgREVGQVVMVF9KQVZBX0FQSV9MSU5LUwo+Pj4+ID4gLS0tLQo+Pj4+ID4gc2Vzc2lvbiBpcyByZXF1aXJlZCBwYXJhbWV0ZXIsIHNvIGNhbm5vdCBiZSBudWxsLiBGaXggcmVsYXRlZAo+Pj4+IHVuaXR0ZXN0cwo+Pj4+ID4gLS0tLQo+Pj4+ID4gQWRkIHByb2plY3QvYXJ0aWZhY3Qga2V5IHRvIHNldCBvZiBzb3VyY2VQYXRocyB0byByZWNvZ25pemUgcmVhY3Q9Cm9yCj4+Pj4gPiBwcm9qZWN0cyB2ZXJzdXMgZGVwZW5kZW5jaWVzCj4+Pj4gPiAtLS0tCj4+Pj4gPiBHcm91cCBzZXRzIG9mIHNvdXJjZXBhdGhzIHBlciBwcm9qZWN0LCBpbiBwcmVwYXJlIG9mIHVzYWdlIG9mCj4+Pj4gPiBtb2R1bGUtc291cmNlLXBhdGguCj4+Pj4gPiAtLS0tCj4+Pj4gPiBTd2l0Y2ggZnJvbSBMaXN0IHRvIENvbGxlY3Rpb24gdG8gbWFrZSBpdCBlYXNpZXIgdG8gdXNlIFNldHMgd2hlbj0KCj4+Pj4gPiBwcmVmZXJyZWQKPj4+PiA+IC0tLS0KPj4+PiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSBmb3IgbmV4dCBkZXZlbG9wbWVudCBpdGVyYXRpb24KPj4+PiA+IC0tLS0KPj4+PiA+IFttYXZlbi1yZWxlYXNlLXBsdWdpbl0gcHJlcGFyZSByZWxlYXNlIG1hdmVuLWphdmFkb2MtcGx1Z2luLTMuMC4wPQoKPj4+PiA+IC0tLS0KPj4+PiA+Cj4+Pj4gPgo+Pj4+ID4KPj4+PiA+Cj4+Pj4gPiBPbiBTYXQsIDE2IERlYyAyMDE3IDEyOjUzOjIzICswMTAwLCBIZXJ2PUU5IEJPVVRFTVkKPj4+PiA8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+Pj4+ID4KPj4+PiA+IHdyb3RlOgo+Pj4+ID4gPiBsb29raW5nIGF0IGNvbW1pdHNAIGNvbnRlbnQgaHR0cHM6Ly9saXN0cy5hcGFjaGUub3JnL2xpc3QuaHRtbD89Cgo+Pj4+ID4gPiBjb21taXRzQG1hdmVuLmFwYWNoZS5vcmcgd2l0aCBzdWJqZWN0IGNvbnRhaW5pbmcKPj4+PiAibWF2ZW4vcGx1Z2lucy90cnVuayIKPj4+PiA+ID4KPj4+PiA+ID4gYW5kIHBsdWdpbnMgc3ZuMmdpdCBtaXJyb3IKPj4+PiA+ID4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9tYXZlbi1wbHVnaW5zL2NvbW1pdHMvCj4+Pj4gPiA+IHRydW5rCj4+Pj4gPiA+Cj4+Pj4gPiA+IG9ubHkgMSBjb21taXQgaXMgbWlzc2luZzogbXkgbGF0ZXN0IGNvbW1pdCBvbiBtYXZlbi1zaXRlLXBsdWdpbj0KCj4+Pj4gPiA+ICh0aGUgbGFzdCBjb21taXQgZm9yIEdpdCBtaWdyYXRpb24gaXMgbm90IHVzZWZ1bCkKPj4+PiA+ID4KPj4+PiA+ID4KPj4+PiA+ID4gU2FtZSBvbiBzaGFyZWQgc2hvd2VkIG5vIG1pc3NpbmcgY29tbWl0Lgo+Pj4+ID4gPgo+Pj4+ID4gPgo+Pj4+ID4gPiB3aGF0IGxhdGVzdCBjb21taXQgb2YgbWF2ZW4tamF2YWRvYy1wbHVnaW4gYXJlIHlvdSBsb29raW5nIGZvcj89Cgo+Pj4+ID4gPgo+Pj4+ID4gPiBSZWdhcmRzLAo+Pj4+ID4gPgo+Pj4+ID4gPiBIZXJ2PUU5Cj4+Pj4gPiA+Cj4+Pj4gPiA+IExlIHNhbWVkaSAxNiBkPUU5Y2VtYnJlIDIwMTcsIDExOjU2OjMxIENFVCBSb2JlcnQgU2Nob2x0ZSBhID1FOT0KY3JpdCA6Cj4+Pj4gPiA+PiBGb3IgZXZlcnlib2R5IGp1c3QgYSB3YXJuaW5nIEkgZmFjZWQgdG9kYXk6Cj4+Pj4gPiA+PiBJZiB5b3Ugc3dpdGNoIHRvIHRoZSBnaXQgcmVwb3MsIHBsZWFzZSBtYWtlIHN1cmUgYWxsIGNvbW1pdHMgYT0KcmUKPj4+PiA+ID4+IG1pZ3JhdGVkLgo+Pj4+ID4gPj4gSSBub3RpY2VkIHRoZSBsYXRlc3QgY29tbWl0cyBvZiB0aGUgbWF2ZW4tamF2YWRvYy1wbHVnaW4gZ290ICA9Cgo+Pj4+IGxvc3QuCj4+Pj4gPiA+Pgo+Pj4+ID4gPj4gdGhhbmtzLAo+Pj4+ID4gPj4gUm9iZXJ0Cj4+Pj4gPiA+Pgo+Pj4+ID4gPj4gT24gU2F0LCAwOSBEZWMgMjAxNyAxNzowNjowOSArMDEwMCwgU3RlcGhlbiBDb25ub2xseQo+Pj4+ID4gPj4KPj4+PiA+ID4+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4+PiA+ID4+ID4gSSBzZWUgd2UgaGF2ZSBhIGxhcmdlIG51bWJlciBvZiByZXBvcyBub3cgb24gZ2l0Ym94IDstKQo+Pj4+ID4gPj4gPgo+Pj4+ID4gPj4gPiBPbiBUaHUgNyBEZWMgMjAxNyBhdCAwNzowMCwgSGVydj1FOSBCT1VURU1ZICA9Cgo+Pj4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4+Pj4gPiA+Pgo+Pj4+ID4gPj4gd3JvdGU6Cj4+Pj4gPiA+PiA+PiBvaywgSSBkaWRuJ3QgdXBkYXRlIG15IHJlcG8gY2xvbmU6IG5vdyB0aGUgcnVuLWl0cyBwcm9maWxlID0KaXMKPj4+PiA+ID4+Cj4+Pj4gPiA+PiBhY3RpdmF0ZWQKPj4+PiA+ID4+Cj4+Pj4gPiA+PiA+PiB0aGVuIHRoZSBwbGFuIHNob3VsZCBqdXN0IGNvbmZpcm0gIml0IHdvcmtzISIgOikKPj4+PiA+ID4+ID4+Cj4+Pj4gPiA+PiA+PiBhbmQgZmluZCB3aGljaCBqb2JzIGFyZSBzcGVjaWFsLCBsaWtlIG1hdmVuLWRpc3QtdG9vbCAod2hpYz0KaAo+Pj4+IGhhcyB0bwo+Pj4+ID4gPj4KPj4+PiA+ID4+IGJlCj4+Pj4gPiA+Pgo+Pj4+ID4gPj4gPj4gc2NoZWR1bGVkIGRhaWx5IGluc3RlYWQgb2YgY29kZSBjaGFuZ2UsIGFuZCBvbmUgcGxhdGZvcm0gb249Cmx5KQo+Pj4+ID4gPj4gPj4KPj4+PiA+ID4+ID4+IFJlZ2FyZHMsCj4+Pj4gPiA+PiA+Pgo+Pj4+ID4gPj4gPj4gSGVydj1FOQo+Pj4+ID4gPj4gPj4KPj4+PiA+ID4+ID4+IExlIG1lcmNyZWRpIDYgZD1FOWNlbWJyZSAyMDE3LCAyMzo1ODo0NSBDRVQgU3RlcGhlbiBDb25ub2xsPQp5IGEKPj4+PiA9RTljcml0IDoKPj4+PiA+ID4+ID4+ID4gT24gV2VkIDYgRGVjIDIwMTcgYXQgMjI6MzgsIEhlcnY9RTkgQk9VVEVNWQo+Pj4+IDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+Cj4+Pj4gPiA+PiA+Pgo+Pj4+ID4gPj4gPj4gd3JvdGU6Cj4+Pj4gPiA+PiA+PiA+ID4gTm93IHRoYXQgd2UgaGF2ZSAyIEFTRiBPcmdhbml6YXRpb24gSmVua2lucyBqb2JzIChvbmUgZj0Kb3IKPj4+PiBnaXRib3gKPj4+PiA+ID4+Cj4+Pj4gPiA+PiBbMV0KPj4+PiA+ID4+Cj4+Pj4gPiA+PiA+PiBhbmQKPj4+PiA+ID4+ID4+Cj4+Pj4gPiA+PiA+PiA+ID4gb25lCj4+Pj4gPiA+PiA+PiA+ID4gZm9yIGdpdC13aXA6IHRoYW5rIHlvdSBTdGVwaGVuKSBhbmQgdGhhdCBpdCBsb29rcyBxdWl0ZT0KCj4+Pj4gPiA+Pgo+Pj4+ID4gPj4gc3VjY2Vzc2Z1bCwKPj4+PiA+ID4+Cj4+Pj4gPiA+PiA+PiBsZXQncwo+Pj4+ID4gPj4gPj4KPj4+PiA+ID4+ID4+ID4gPiBwbGFuCj4+Pj4gPiA+PiA+PiA+ID4gdGhlIG5leHQgc3RlcHMuCj4+Pj4gPiA+PiA+PiA+ID4KPj4+PiA+ID4+ID4+ID4gPiBIZXJlIGlzIHdoYXQgSSBzZWU6Cj4+Pj4gPiA+PiA+PiA+ID4gMS4gcmVtb3ZhbCBvZiBoYW5kLWRlZmluZWQgSmVua2lucyBqb2JzIHRoYXQgYXJlIG5vdwo+Pj4+IGR1cGxpY2F0ZXMKPj4+PiA+ID4+ID4+ID4gPgo+Pj4+ID4gPj4gPj4gPiA+IDIuIHByZXBhcmF0aW9uIG9mIHRoZSA2MCBuZXcgZW1wdHkgZ2l0IHJlcG9zIGZvciBzaGFyZWQ9CiAmCj4+Pj4gPiA+PiA+PiA+ID4gcGx1Z2lucwo+Pj4+ID4gPj4gPj4gPiA+Cj4+Pj4gPiA+PiA+PiA+ID4gMy4gbWlncmF0aW9uIG9mIHRoZSAxIHNoYXJlZCBjb21wb25lbnQgYW5kIDEgcGx1Z2luIHVzaT0KbmcKPj4+PiA+ID4+ID4+Cj4+Pj4gPiA+PiA+PiBtaWdyYXRlLSouc2gKPj4+PiA+ID4+ID4+Cj4+Pj4gPiA+PiA+PiA+ID4gc2NyaXB0cwo+Pj4+ID4gPj4gPj4gPiA+IFszXSB0byB0ZXN0IGFuZCBldmVudHVhbGx5IHJld29yayB0aGUgSmVua2luc2ZpbGUgKEkKPj4+PiBzdXBwb3NlIGl0Cj4+Pj4gPiA+Pgo+Pj4+ID4gPj4gd2lsbAo+Pj4+ID4gPj4KPj4+PiA+ID4+ID4+ID4gPiByZXF1aXJlCj4+Pj4gPiA+PiA+PiA+ID4gc29tZSBsaXR0bGUgY2hhbmdlLCB0byBydW4gYWRkICJydW4taXRzIiBwcm9maWxlKQo+Pj4+ID4gPj4gPj4gPgo+Pj4+ID4gPj4gPj4gPiBBcyBmYXIgYXMgSSByZWNhbGwsIEkgYWRkZWQgLVArcnVuLWl0cyBhbHJlYWR5Cj4+Pj4gPiA+PiA+PiA+Cj4+Pj4gPiA+PiA+PiA+IEZvciB0aGUgcGx1Z2luLCBJJ2QgbGlrZSB0byBkbyB0aGUgam9iIGZvciAgPQoKPj4+PiBtYXZlbi1zaXRlLXBsdWdpbiwKPj4+PiA+ID4+Cj4+Pj4gPiA+PiBzaW5jZSB3ZQo+Pj4+ID4gPj4KPj4+PiA+ID4+ID4+ID4gPiBleHBlY3QKPj4+PiA+ID4+ID4+ID4gPiB0byByZWxlYXNlIGl0IHNvb24uCj4+Pj4gPiA+PiA+PiA+ID4gRm9yIHRoZSBzaGFyZWQgY29tcG9uZW50LCBJIGRvbid0IGtub3cgaWYgdGhlcmUgaXMgYSBiZT0Kc3QKPj4+PiA+ID4+Cj4+Pj4gPiA+PiBjYW5kaWRhdGUKPj4+PiA+ID4+Cj4+Pj4gPiA+PiA+PiA+ID4gNC4gb25jZSBwcmV2aW91cyBzdGVwIGlzIG9rLCBkbyB0aGUgZnVsbCBtaWdyYXRpb246IGlmCj4+Pj4gdGhlcmUgYXJlCj4+Pj4gPiA+PiA+PiA+ID4gdm9sdW50ZWVycwo+Pj4+ID4gPj4gPj4gPiA+IGZvciBoZWxwaW5nLCB0aGF0IHdvdWxkIGJlIGdyZWF0LCBzaW5jZSBwb3B1bGF0aW5nIDYwIGc9Cml0Cj4+Pj4gcmVwb3MKPj4+PiA+ID4+ID4+Cj4+Pj4gPiA+PiA+PiB3b24ndAo+Pj4+ID4gPj4gPj4gYmUKPj4+PiA+ID4+ID4+Cj4+Pj4gPiA+PiA+PiA+ID4gcmVhbGx5IGZ1bi4uLgo+Pj4+ID4gPj4gPj4gPiA+Cj4+Pj4gPiA+PiA+PiA+ID4gQW5kIGFzIHBhcnQgb2YgNjAgZW1wdHkgZ2l0IHJlcG9zIGNyZWF0aW9uLCBJIHByb3Bvc2UgdD0Kbwo+Pj4+IG1pZ3JhdGUKPj4+PiA+ID4+Cj4+Pj4gPiA+PiB0aGUKPj4+PiA+ID4+Cj4+Pj4gPiA+PiA+PiA+ID4gIkdvb2dsZQo+Pj4+ID4gPj4gPj4gPiA+IHJlcG8gbWFuaWZlc3QiIG1hdmVuLWFnZ3JlZ2F0b3IgWzRdIHRvIEFTRjogbXkgcGVyc29uYWw9Cgo+Pj4+IHVzZSBoYXMKPj4+PiA+ID4+Cj4+Pj4gPiA+PiBiZWVuCj4+Pj4gPiA+Pgo+Pj4+ID4gPj4gPj4gcXVpdGUKPj4+PiA+ID4+ID4+Cj4+Pj4gPiA+PiA+PiA+ID4gc3VjY2Vzc2Z1bCwgSSBob3BlIGl0J3MgdGhlIHNhbWUgZm9yIG90aGVycy4gUGVyaGFwcwo+Pj4+IHRoZXJlIGFyZQo+Pj4+ID4gPj4gPj4KPj4+PiA+ID4+ID4+IGJldHRlcgo+Pj4+ID4gPj4gPj4KPj4+PiA+ID4+ID4+ID4gPiBpZGVhcwo+Pj4+ID4gPj4gPj4gPiA+IGZvciBpdHMgbmFtZTogbWF2ZW4tYWdncmVnYXRvcgo+Pj4+ID4gPj4gPj4gPiA+Cj4+Pj4gPiA+PiA+PiA+ID4gQW55IG90aGVyIGlkZWE/IGFueSBvYmplY3Rpb24/Cj4+Pj4gPiA+PiA+PiA+ID4KPj4+PiA+ID4+ID4+ID4gPiBSZWdhcmRzLAo+Pj4+ID4gPj4gPj4gPiA+Cj4+Pj4gPiA+PiA+PiA+ID4gSGVydj1FOQo+Pj4+ID4gPj4gPj4gPiA+Cj4+Pj4gPiA+PiA+PiA+ID4gWzFdCj4+Pj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy92aWV3L00tUi92aWV3L01hdmVuL2pvYi9tYXZlbi1ib3gvCj4+Pj4gPiA+PiA+PiA+ID4KPj4+PiA+ID4+ID4+ID4gPiBbMl0KPj4+PiBodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL3ZpZXcvTS1SL3ZpZXcvTWF2ZW4vam9iL21hdmVuLXdpcC8KPj4+PiA+ID4+ID4+ID4gPgo+Pj4+ID4gPj4gPj4gPiA+IFszXQo+Pj4+ID4gPj4KPj4+PiA+ID4+IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL21hdmVuL3NhbmRib3gvdHJ1bmsvc2NyaXB0cy9naXQvPQoKPj4+PiA+ID4+Cj4+Pj4gPiA+PiA+PiA+ID4gWzRdIGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1hZ2dyZWdhdG9yCj4+Pj4gPiA+PiA+Pgo+Pj4+ID4gPj4gPj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDgyMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gRGVjIDI0IDA5OjQwOjM1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDgyMi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBENThGNDE3ODUzCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgMjQgRGVjIDIwMTcgMDk6NDA6MzUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0ODMxOCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNCBEZWMgMjAxNyAwOTo0MDozNSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDgxODkgaW52b2tlZCBieSB1aWQgNTAwKTsgMjQgRGVjIDIwMTcgMDk6NDA6MzUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0ODE3OCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI0IERlYyAyMDE3IDA5OjQwOjM1IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBTdW4sIDI0IERlYyAyMDE3IDA5OjQwOjM1ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgOTIxMTgxQTAwQTAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBTdW4sIDI0IERlYyAyMDE3IDA5OjQwOjMyICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbSU1QT1JUQU5UXSBSZTogR2l0IG1pZ3JhdGlvbiBuZXh0IHN0ZXBzClJlZmVyZW5jZXM6IDwxOTAwNTU4LkdGeDlRbGZhRTJAZ2lnYT4KIDxvcC56YmI4ejN6emtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4gPDI2OTg2MTYuaHhaa2tqeTlkcEBnaWdhPgogPDIxNDk1MTIuUjhTTTdZMlVmaEBnaWdhPgpEYXRlOiBTdW4sIDI0IERlYyAyMDE3IDEwOjQwOjI5ICswMTAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IFF1b3RlZC1QcmludGFibGUKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnpicXZ0cmZta2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgpJbi1SZXBseS1UbzogPDIxNDk1MTIuUjhTTTdZMlVmaEBnaWdhPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCkhvdyBhYm91dCBhIGhhcmQgcmVzZXQgb3IgZHJvcHBpbmcgdGhlIHJlcG8gYW5kIGRvaW5nIGl0IGFsbCBvdmVyIGFnYWluPz0KCgpPbiBXZWQsIDIwIERlYyAyMDE3IDEwOjQyOjM2ICswMTAwLCBIZXJ2PUU5IEJPVVRFTVkgPGhlcnZlLmJvdXRlbXlAZnJlZS49CmZyPiAgPQoKd3JvdGU6Cgo+IElORlJBLTE1Njc5IGZpeGVkIGJ5IGluZnJhIHRlYW0KPiB0aGVuIEkgcmUtcnVuIG1pZ3JhdGUtcGx1Z2lucy5zaCBzY3JpcHQgdG8gc3BsaXQgdGhlIHN2bjJnaXQgbWlycm9yIHRvPQogID0KCj4gcGVyLQo+IHBsdWdpbiBnaXQgcmVwbwo+IGFuZCBJIHB1c2hlZCAibWFzdGVyMiIgYnJhbmNoZXMgZm9yIG0tamF2YWRvYy1wLCBtLXNpdGUtcCBhbmQgbS1wZGYtcCw9CiAgPQoKPiB3aGljaAo+IHdlcmUgdGhlIDMgcGx1Z2lucyB3aGljaCBzdWZmZXJlZCBmcm9tIG1pc3NpbmcgY29tbWl0cwo+Cj4gb24gbS1zaXRlLXAgYW5kIG0tcGRmLXAsIEknbGwgY2hlcnJ5IHBpY2sgdGhlIHVuaXF1ZSBjb21taXQgdGhhdCB3YXMgID0KCj4gbWlzc2VkOgo+IG5vdCBhIGJpZyBkZWFsCj4KPiBvbiBtLWphdmFkb2MtcCwgdGhlIHNpdHVhdGlvbiBpcyBtb3JlIGNvcGxleCwgc2luY2UgdGhlcmUgd2FzIGEgcmVsZWFzPQplCj4KPiBJIGFsc28gbm90aWNlZCB0aGF0IEkgZm9yZ290IHRvIHB1c2ggdGFncyB3aGVuIGltcG9ydGluZzogSSBzdGFydGVkIHRvPQogID0KCj4gZG8gImdpdAo+IHB1c2ggLS10YWdzIiwgYnV0IHRoZSByZXN1bHQgZG9lcyBub3QgbG9vayBhcyBJIGV4cGVjdGVkOiBpdCBjcmVhdGVzIGE9CiAgPQoKPiBsb3Qgb2YKPiBwYXJhbGxlbCBicmFuY2hlcwo+Cj4gSSdsbCBuZWVkIGhlbHAgZnJvbSBnaXQgZXhwZXJ0czogd2hhdCBpcyBoYXBwZW5pbmc/Cj4KPiBJIHN0b3BwZWQgdGhlIHRhZ3MgcHVzaCBoYWxmIHRoZSB3YXksIHdlJ2xsIG5lZWQgdG8gZGVjaWRlIHdoYXQgdG8gZG8uPQouLgo+IChJIGtuZXcgSSB3YXMgbm90IGEgZ2l0IGV4cGVydCBhbmQgdGhlcmUgd2FzIGEgcmlzayBmb3Igc29tZXRoaW5nIHdlaXI9CmQgID0KCj4gbGlrZQo+IHdoYXQncyBjdXJyZW50bHkgaGFwcGVuaW5nLi4uKQo+Cj4gQW55IGhpbnQ/Cj4KPiBSZWdhcmRzLAo+Cj4gSGVydj1FOQo+Cj4gTGUgc2FtZWRpIDE2IGQ9RTljZW1icmUgMjAxNywgMTY6Mjg6NDggQ0VUIEhlcnY9RTkgQk9VVEVNWSBhID1FOWNyaXQgOj0KCj4+IG9rLCBJIHdhcyBjb25mdXNlZCBieSB0aGUgZGlmZmVyZW50IHRha2VzIGF0IG0tamF2YWRvYy1wIDMuMC4wCj4+Cj4+IHllcywgc3ZuMmdpdCBtaXJyb3IgaXMgc3R1Y2sgWzFdIGF0IHIxODE1Njc1Cj4+Cj4+IEkganVzdCBvcGVuZWQgYW4gSU5GUkEgSmlyYSBpc3N1ZQo+PiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0lORlJBLTE1Njc5Cj4+Cj4+IG9uY2UgdGhlIHN2bjJnaXQgbWlycm9yIHdpbGwgYmUgdXBkYXRlZCwgd2UnbGwgaGF2ZSB0byByZS1ydW4gdGhlIHNwbD0KaXQKPj4gc2NyaXB0cyBhbmQgY2hlcnJ5IHBpY2sgdGhlIG1pc3NpbmcgY29tbWl0cwo+Pgo+PiBSZWdhcmRzLAo+Pgo+PiBIZXJ2PUU5Cj4+Cj4+IFsxXSBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvY29tbWl0cy90cnVuawo+Pgo+PiBMZSBzYW1lZGkgMTYgZD1FOWNlbWJyZSAyMDE3LCAxMzowMTowNSBDRVQgUm9iZXJ0IFNjaG9sdGUgYSA9RTljcml0IDo9Cgo+PiA+IEkgd2FzIHRyaWdnZXJlZCBieSBzb21lIGZhaWxpbmcgdW5pdCB0ZXN0cywgd2hpY2ggc2hvdWxkIGhhdmUgYmVlbiA9CiA9Cgo+PiBzb2x2ZWQKPj4gPiBpbiBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+PiA+Cj4+ID4gTXkgbGFzdCBjb21taXQgYWNjb3JkaW5nIHRvIEdJVCB3YXMgbm92ZW1iZXIgMTh0aAo+PiA+IE15IGxhc3QgY29tbWl0IGFjY29yZGluZyB0byBTVk4gd2FzIGRlY2VtYmVyIDNyZAo+PiA+Cj4+ID4gY29tcGFyaW5nIHN2bmxvZyB3aXRoIGdpdGxvZyBtb3N0IG9mIHRoZXNlIGNvbW1pdHMgYXJlIGxvc3Q6Cj4+ID4KPj4gPiBtb3ZlZCB0byBnaXQKPj4gPiAtLS0tCj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIGZvciBuZXh0IGRldmVsb3BtZW50IGl0ZXJhdGlvbgo+PiA+IC0tLS0KPj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgcmVsZWFzZSBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+PiA+IC0tLS0KPj4gPiBbTUpBVkFET0MtNDk4XSAibW9kdWxlIG5vdCBmb3VuZCIgd2hlbiBKYXZhIDkgbW9kdWxlLWluZm8gcHJlc2VudAo+PiA+IFN1cHBvcnQgYWdncmF0ZWQgamF2YWRvYwo+PiA+IC0tLS0KPj4gPiBTa2lwIHNldmVyYWwgdW5pdHRlc3RzIGZvciBKYXZhOQo+PiA+IC0tLS0KPj4gPiBKREstODAzMjIwNSB3YXMgY2xvc2VkIGFzIG5vdCBhbiBpc3N1ZSwgc28gbm90IHNvbHZlZCBpbiBKYXZhOS4KPj4gPiBOZWVkIHRvIHJldmlldyB0aGUgY29uY2x1c2lvbgo+PiA+IC0tLS0KPj4gPiBVcGdyYWRlIG1vY2tpdG8gdG8gcmVtb3ZlIHdhcm5pbmcgYWJvdXQgaWxsZWdhbCByZWZsZWN0aXZlIGFjY2Vzcwo+PiA+IC0tLS0KPj4gPiBJbXByb3ZlIFRlc3RKYXZhZG9jUmVwb3J0VGVzdCN0ZXN0VGVzdEphdmFkb2MKPj4gPiBKOCB3YXJucyBhbmQgY29udGludWVzIHdpdGggbWlzc2luZyBkZXBlbmRlbmN5LCBKOSBmYWlscy4KPj4gPiBJbiBmYWN0IHRlc3Qgd2FzIHdyb25nOiBkZXBlbmRlbmN5IHNob3VsZCBoYXZlIGJlZW4gb24gY2xhc3NwYXRoCj4+ID4gLS0tLQo+PiA+IHVuaXR0ZXN0IHNob3VsZCBwcmVmZXIgSkFWQV9IT01FIHdoZW4gZXhlY3V0aW5nIGZyb20gY21kbGluZQo+PiA+IFdoZW4gcnVubmluZyB3aXRoIEphdmE5KyBubyBuZWVkIHRvIHN3aXRjaCBmcm9tIGpyZSB0byBqZGsgZGlyZWN0b3I9CnkKPj4gPiAoamVwMjIwKQo+PiA+IC0tLS0KPj4gPiBNSkFWQURPQy01MDIgVXBkYXRlIERFRkFVTFRfSkFWQV9BUElfTElOS1MKPj4gPiAtLS0tCj4+ID4gc2Vzc2lvbiBpcyByZXF1aXJlZCBwYXJhbWV0ZXIsIHNvIGNhbm5vdCBiZSBudWxsLiBGaXggcmVsYXRlZCAgPQoKPj4gdW5pdHRlc3RzCj4+ID4gLS0tLQo+PiA+IEFkZCBwcm9qZWN0L2FydGlmYWN0IGtleSB0byBzZXQgb2Ygc291cmNlUGF0aHMgdG8gcmVjb2duaXplIHJlYWN0b3I9Cgo+PiA+IHByb2plY3RzIHZlcnN1cyBkZXBlbmRlbmNpZXMKPj4gPiAtLS0tCj4+ID4gR3JvdXAgc2V0cyBvZiBzb3VyY2VwYXRocyBwZXIgcHJvamVjdCwgaW4gcHJlcGFyZSBvZiB1c2FnZSBvZgo+PiA+IG1vZHVsZS1zb3VyY2UtcGF0aC4KPj4gPiAtLS0tCj4+ID4gU3dpdGNoIGZyb20gTGlzdCB0byBDb2xsZWN0aW9uIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHVzZSBTZXRzIHdoZW4KPj4gPiBwcmVmZXJyZWQKPj4gPiAtLS0tCj4+ID4gW21hdmVuLXJlbGVhc2UtcGx1Z2luXSBwcmVwYXJlIGZvciBuZXh0IGRldmVsb3BtZW50IGl0ZXJhdGlvbgo+PiA+IC0tLS0KPj4gPiBbbWF2ZW4tcmVsZWFzZS1wbHVnaW5dIHByZXBhcmUgcmVsZWFzZSBtYXZlbi1qYXZhZG9jLXBsdWdpbi0zLjAuMAo+PiA+IC0tLS0KPj4gPgo+PiA+Cj4+ID4KPj4gPgo+PiA+IE9uIFNhdCwgMTYgRGVjIDIwMTcgMTI6NTM6MjMgKzAxMDAsIEhlcnY9RTkgQk9VVEVNWSAgPQoKPj4gPGhlcnZlLmJvdXRlbXlAZnJlZS5mcj4KPj4gPgo+PiA+IHdyb3RlOgo+PiA+ID4gbG9va2luZyBhdCBjb21taXRzQCBjb250ZW50IGh0dHBzOi8vbGlzdHMuYXBhY2hlLm9yZy9saXN0Lmh0bWw/Cj4+ID4gPiBjb21taXRzQG1hdmVuLmFwYWNoZS5vcmcgd2l0aCBzdWJqZWN0IGNvbnRhaW5pbmcgID0KCj4+ICJtYXZlbi9wbHVnaW5zL3RydW5rIgo+PiA+ID4KPj4gPiA+IGFuZCBwbHVnaW5zIHN2bjJnaXQgbWlycm9yCj4+ID4gPiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLXBsdWdpbnMvY29tbWl0cy8KPj4gPiA+IHRydW5rCj4+ID4gPgo+PiA+ID4gb25seSAxIGNvbW1pdCBpcyBtaXNzaW5nOiBteSBsYXRlc3QgY29tbWl0IG9uIG1hdmVuLXNpdGUtcGx1Z2luCj4+ID4gPiAodGhlIGxhc3QgY29tbWl0IGZvciBHaXQgbWlncmF0aW9uIGlzIG5vdCB1c2VmdWwpCj4+ID4gPgo+PiA+ID4KPj4gPiA+IFNhbWUgb24gc2hhcmVkIHNob3dlZCBubyBtaXNzaW5nIGNvbW1pdC4KPj4gPiA+Cj4+ID4gPgo+PiA+ID4gd2hhdCBsYXRlc3QgY29tbWl0IG9mIG1hdmVuLWphdmFkb2MtcGx1Z2luIGFyZSB5b3UgbG9va2luZyBmb3I/Cj4+ID4gPgo+PiA+ID4gUmVnYXJkcywKPj4gPiA+Cj4+ID4gPiBIZXJ2PUU5Cj4+ID4gPgo+PiA+ID4gTGUgc2FtZWRpIDE2IGQ9RTljZW1icmUgMjAxNywgMTE6NTY6MzEgQ0VUIFJvYmVydCBTY2hvbHRlIGEgPUU5Y3I9Cml0IDoKPj4gPiA+PiBGb3IgZXZlcnlib2R5IGp1c3QgYSB3YXJuaW5nIEkgZmFjZWQgdG9kYXk6Cj4+ID4gPj4gSWYgeW91IHN3aXRjaCB0byB0aGUgZ2l0IHJlcG9zLCBwbGVhc2UgbWFrZSBzdXJlIGFsbCBjb21taXRzIGFyZT0KCj4+ID4gPj4gbWlncmF0ZWQuCj4+ID4gPj4gSSBub3RpY2VkIHRoZSBsYXRlc3QgY29tbWl0cyBvZiB0aGUgbWF2ZW4tamF2YWRvYy1wbHVnaW4gZ290IGxvcz0KdC4KPj4gPiA+Pgo+PiA+ID4+IHRoYW5rcywKPj4gPiA+PiBSb2JlcnQKPj4gPiA+Pgo+PiA+ID4+IE9uIFNhdCwgMDkgRGVjIDIwMTcgMTc6MDY6MDkgKzAxMDAsIFN0ZXBoZW4gQ29ubm9sbHkKPj4gPiA+Pgo+PiA+ID4+IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZToKPj4gPiA+PiA+IEkgc2VlIHdlIGhhdmUgYSBsYXJnZSBudW1iZXIgb2YgcmVwb3Mgbm93IG9uIGdpdGJveCA7LSkKPj4gPiA+PiA+Cj4+ID4gPj4gPiBPbiBUaHUgNyBEZWMgMjAxNyBhdCAwNzowMCwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZT0KZS5mcj4KPj4gPiA+Pgo+PiA+ID4+IHdyb3RlOgo+PiA+ID4+ID4+IG9rLCBJIGRpZG4ndCB1cGRhdGUgbXkgcmVwbyBjbG9uZTogbm93IHRoZSBydW4taXRzIHByb2ZpbGUgaXM9Cgo+PiA+ID4+Cj4+ID4gPj4gYWN0aXZhdGVkCj4+ID4gPj4KPj4gPiA+PiA+PiB0aGVuIHRoZSBwbGFuIHNob3VsZCBqdXN0IGNvbmZpcm0gIml0IHdvcmtzISIgOikKPj4gPiA+PiA+Pgo+PiA+ID4+ID4+IGFuZCBmaW5kIHdoaWNoIGpvYnMgYXJlIHNwZWNpYWwsIGxpa2UgbWF2ZW4tZGlzdC10b29sICh3aGljaCA9CiA9Cgo+PiBoYXMgdG8KPj4gPiA+Pgo+PiA+ID4+IGJlCj4+ID4gPj4KPj4gPiA+PiA+PiBzY2hlZHVsZWQgZGFpbHkgaW5zdGVhZCBvZiBjb2RlIGNoYW5nZSwgYW5kIG9uZSBwbGF0Zm9ybSBvbmx5PQopCj4+ID4gPj4gPj4KPj4gPiA+PiA+PiBSZWdhcmRzLAo+PiA+ID4+ID4+Cj4+ID4gPj4gPj4gSGVydj1FOQo+PiA+ID4+ID4+Cj4+ID4gPj4gPj4gTGUgbWVyY3JlZGkgNiBkPUU5Y2VtYnJlIDIwMTcsIDIzOjU4OjQ1IENFVCBTdGVwaGVuIENvbm5vbGx5ID0KYSAgPQoKPj4gPUU5Y3JpdCA6Cj4+ID4gPj4gPj4gPiBPbiBXZWQgNiBEZWMgMjAxNyBhdCAyMjozOCwgSGVydj1FOSBCT1VURU1ZICA9Cgo+PiA8aGVydmUuYm91dGVteUBmcmVlLmZyPgo+PiA+ID4+ID4+Cj4+ID4gPj4gPj4gd3JvdGU6Cj4+ID4gPj4gPj4gPiA+IE5vdyB0aGF0IHdlIGhhdmUgMiBBU0YgT3JnYW5pemF0aW9uIEplbmtpbnMgam9icyAob25lIGZvcj0KICA9Cgo+PiBnaXRib3gKPj4gPiA+Pgo+PiA+ID4+IFsxXQo+PiA+ID4+Cj4+ID4gPj4gPj4gYW5kCj4+ID4gPj4gPj4KPj4gPiA+PiA+PiA+ID4gb25lCj4+ID4gPj4gPj4gPiA+IGZvciBnaXQtd2lwOiB0aGFuayB5b3UgU3RlcGhlbikgYW5kIHRoYXQgaXQgbG9va3MgcXVpdGUKPj4gPiA+Pgo+PiA+ID4+IHN1Y2Nlc3NmdWwsCj4+ID4gPj4KPj4gPiA+PiA+PiBsZXQncwo+PiA+ID4+ID4+Cj4+ID4gPj4gPj4gPiA+IHBsYW4KPj4gPiA+PiA+PiA+ID4gdGhlIG5leHQgc3RlcHMuCj4+ID4gPj4gPj4gPiA+Cj4+ID4gPj4gPj4gPiA+IEhlcmUgaXMgd2hhdCBJIHNlZToKPj4gPiA+PiA+PiA+ID4gMS4gcmVtb3ZhbCBvZiBoYW5kLWRlZmluZWQgSmVua2lucyBqb2JzIHRoYXQgYXJlIG5vdyAgPQoKPj4gZHVwbGljYXRlcwo+PiA+ID4+ID4+ID4gPgo+PiA+ID4+ID4+ID4gPiAyLiBwcmVwYXJhdGlvbiBvZiB0aGUgNjAgbmV3IGVtcHR5IGdpdCByZXBvcyBmb3Igc2hhcmVkICY9Cgo+PiA+ID4+ID4+ID4gPiBwbHVnaW5zCj4+ID4gPj4gPj4gPiA+Cj4+ID4gPj4gPj4gPiA+IDMuIG1pZ3JhdGlvbiBvZiB0aGUgMSBzaGFyZWQgY29tcG9uZW50IGFuZCAxIHBsdWdpbiB1c2luZz0KCj4+ID4gPj4gPj4KPj4gPiA+PiA+PiBtaWdyYXRlLSouc2gKPj4gPiA+PiA+Pgo+PiA+ID4+ID4+ID4gPiBzY3JpcHRzCj4+ID4gPj4gPj4gPiA+IFszXSB0byB0ZXN0IGFuZCBldmVudHVhbGx5IHJld29yayB0aGUgSmVua2luc2ZpbGUgKEkgID0KCj4+IHN1cHBvc2UgaXQKPj4gPiA+Pgo+PiA+ID4+IHdpbGwKPj4gPiA+Pgo+PiA+ID4+ID4+ID4gPiByZXF1aXJlCj4+ID4gPj4gPj4gPiA+IHNvbWUgbGl0dGxlIGNoYW5nZSwgdG8gcnVuIGFkZCAicnVuLWl0cyIgcHJvZmlsZSkKPj4gPiA+PiA+PiA+Cj4+ID4gPj4gPj4gPiBBcyBmYXIgYXMgSSByZWNhbGwsIEkgYWRkZWQgLVArcnVuLWl0cyBhbHJlYWR5Cj4+ID4gPj4gPj4gPgo+PiA+ID4+ID4+ID4gRm9yIHRoZSBwbHVnaW4sIEknZCBsaWtlIHRvIGRvIHRoZSBqb2IgZm9yIG1hdmVuLXNpdGUtcGx1Z2k9Cm4sCj4+ID4gPj4KPj4gPiA+PiBzaW5jZSB3ZQo+PiA+ID4+Cj4+ID4gPj4gPj4gPiA+IGV4cGVjdAo+PiA+ID4+ID4+ID4gPiB0byByZWxlYXNlIGl0IHNvb24uCj4+ID4gPj4gPj4gPiA+IEZvciB0aGUgc2hhcmVkIGNvbXBvbmVudCwgSSBkb24ndCBrbm93IGlmIHRoZXJlIGlzIGEgYmVzdD0KCj4+ID4gPj4KPj4gPiA+PiBjYW5kaWRhdGUKPj4gPiA+Pgo+PiA+ID4+ID4+ID4gPiA0LiBvbmNlIHByZXZpb3VzIHN0ZXAgaXMgb2ssIGRvIHRoZSBmdWxsIG1pZ3JhdGlvbjogaWYgID0KCj4+IHRoZXJlIGFyZQo+PiA+ID4+ID4+ID4gPiB2b2x1bnRlZXJzCj4+ID4gPj4gPj4gPiA+IGZvciBoZWxwaW5nLCB0aGF0IHdvdWxkIGJlIGdyZWF0LCBzaW5jZSBwb3B1bGF0aW5nIDYwIGdpdD0KICA9Cgo+PiByZXBvcwo+PiA+ID4+ID4+Cj4+ID4gPj4gPj4gd29uJ3QKPj4gPiA+PiA+PiBiZQo+PiA+ID4+ID4+Cj4+ID4gPj4gPj4gPiA+IHJlYWxseSBmdW4uLi4KPj4gPiA+PiA+PiA+ID4KPj4gPiA+PiA+PiA+ID4gQW5kIGFzIHBhcnQgb2YgNjAgZW1wdHkgZ2l0IHJlcG9zIGNyZWF0aW9uLCBJIHByb3Bvc2UgdG8gPQogPQoKPj4gbWlncmF0ZQo+PiA+ID4+Cj4+ID4gPj4gdGhlCj4+ID4gPj4KPj4gPiA+PiA+PiA+ID4gIkdvb2dsZQo+PiA+ID4+ID4+ID4gPiByZXBvIG1hbmlmZXN0IiBtYXZlbi1hZ2dyZWdhdG9yIFs0XSB0byBBU0Y6IG15IHBlcnNvbmFsIHU9CnNlICA9Cgo+PiBoYXMKPj4gPiA+Pgo+PiA+ID4+IGJlZW4KPj4gPiA+Pgo+PiA+ID4+ID4+IHF1aXRlCj4+ID4gPj4gPj4KPj4gPiA+PiA+PiA+ID4gc3VjY2Vzc2Z1bCwgSSBob3BlIGl0J3MgdGhlIHNhbWUgZm9yIG90aGVycy4gUGVyaGFwcyB0aGVyPQplICA9Cgo+PiBhcmUKPj4gPiA+PiA+Pgo+PiA+ID4+ID4+IGJldHRlcgo+PiA+ID4+ID4+Cj4+ID4gPj4gPj4gPiA+IGlkZWFzCj4+ID4gPj4gPj4gPiA+IGZvciBpdHMgbmFtZTogbWF2ZW4tYWdncmVnYXRvcgo+PiA+ID4+ID4+ID4gPgo+PiA+ID4+ID4+ID4gPiBBbnkgb3RoZXIgaWRlYT8gYW55IG9iamVjdGlvbj8KPj4gPiA+PiA+PiA+ID4KPj4gPiA+PiA+PiA+ID4gUmVnYXJkcywKPj4gPiA+PiA+PiA+ID4KPj4gPiA+PiA+PiA+ID4gSGVydj1FOQo+PiA+ID4+ID4+ID4gPgo+PiA+ID4+ID4+ID4gPiBbMV0gID0KCj4+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4tYm94Lwo+PiA+ID4+ID4+ID4gPgo+PiA+ID4+ID4+ID4gPiBbMl0gID0KCj4+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvdmlldy9NLVIvdmlldy9NYXZlbi9qb2IvbWF2ZW4td2lwLwo+PiA+ID4+ID4+ID4gPgo+PiA+ID4+ID4+ID4gPiBbM10KPj4gPiA+Pgo+PiA+ID4+IGh0dHBzOi8vc3ZuLmFwYWNoZS5vcmcvdmlld3ZjL21hdmVuL3NhbmRib3gvdHJ1bmsvc2NyaXB0cy9naXQvCj4+ID4gPj4KPj4gPiA+PiA+PiA+ID4gWzRdIGh0dHBzOi8vZ2l0aHViLmNvbS9oYm91dGVteS9tYXZlbi1hZ2dyZWdhdG9yCj4+ID4gPj4gPj4KPj4gPiA+PiA+PiAgPQoKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gPiA+PiA+PiAtCj4+ID4gPj4gPj4KPj4gPiA+PiA+PiA+ID4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+PiA+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yPQpnCj4+ID4gPj4gPj4gPiA+Cj4+ID4gPj4gPj4gPiA+IC0tCj4+ID4gPj4gPj4gPgo+PiA+ID4+ID4+ID4gU2VudCBmcm9tIG15IHBob25lCj4+ID4gPj4gPj4KPj4gPiA+PiA+PiAgPQoKPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4gPiA+PiA+PiAtCj4+ID4gPj4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+PiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPj4gPj4KPj4gPiA+PiA+PiAtLQo+PiA+ID4+ID4KPj4gPiA+PiA+IFNlbnQgZnJvbSBteSBwaG9uZQo+PiA+ID4+Cj4+ID4gPj4gID0KCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KCj4+ID4gPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gPiA+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+ID4gPgo+PiA+ID4gID0KCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KCj4+ID4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+Cj4+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT0KLS0KPj4gPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiA+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPj4KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPQoKPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+Cj4KPgo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0ODM3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBEZWMgMjYgMTk6Mjc6NDQgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0ODM3LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDIyQjhFMTcyM0MKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAyNiBEZWMgMjAxNyAxOToyNzo0NCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDQzMzQ5IGludm9rZWQgYnkgdWlkIDUwMCk7IDI2IERlYyAyMDE3IDE5OjI3OjQzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0MzI0NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBEZWMgMjAxNyAxOToyNzo0MyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQzMjMzIGludm9rZWQgYnkgdWlkIDk5KTsgMjYgRGVjIDIwMTcgMTk6Mjc6NDMgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gbWFpbC1yZWxheS5hcGFjaGUub3JnIChIRUxPIG1haWwtcmVsYXkuYXBhY2hlLm9yZykgKDE0MC4yMTEuMTEuMTUpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFR1ZSwgMjYgRGVjIDIwMTcgMTk6Mjc6NDMgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQgKDUyNDg3NDlELmNtLTQtMWIuZHluYW1pYy56aWdnby5ubCBbODIuNzIuMTE2LjE1N10pCglieSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpIHdpdGggRVNNVFBTQSBpZCAxQkY4MjFBMDA1NAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMjYgRGVjIDIwMTcgMTk6Mjc6NDEgKzAwMDAgKFVUQykKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PWlzby04ODU5LTE1OyBmb3JtYXQ9Zmxvd2VkOyBkZWxzcD15ZXMKVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KU3ViamVjdDogUmU6IG1hdmVuLWFyY2hpdmVyIGJ1aWxkIG9uIEplbmtpbnMgLSBUZXN0IEZhaWx1cmVzClJlZmVyZW5jZXM6IDw5NTBkZTI4MC01OTI4LTRmZTMtYWNhOC0wOTIzNDE1MjRjNjZAZ214LmRlPgpEYXRlOiBUdWUsIDI2IERlYyAyMDE3IDIwOjI3OjM2ICswMTAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnpidmNjYWl4a2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgpJbi1SZXBseS1UbzogPDk1MGRlMjgwLTU5MjgtNGZlMy1hY2E4LTA5MjM0MTUyNGM2NkBnbXguZGU+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKVGhlIGpvYiBzdGFydGluZyBxdWl0ZSBzb21lIHRpbWUgYWdvLiBNYXliZSBiZXR0ZXIgdG8ga2lsbCB0aGUgaXQgYW5kICAKc3RhcnQgb3ZlciBhZ2Fpbi4KSSBoYWQgdHJvdWJsZSB2aXNpdGluZyBidWlsZHMuYXBhY2hlLm9yZyB0aGlzIGFmdGVybm9vbiwgY291bGQgYmUgcmVsYXRlZC4KCnRoYW5rcywKUm9iZXJ0CgpPbiBUdWUsIDI2IERlYyAyMDE3IDIwOjAxOjAyICswMTAwLCBLYXJsIEhlaW56IE1hcmJhaXNlICAKPGtobWFyYmFpc2VAZ214LmRlPiB3cm90ZToKCj4gSGksCj4KPiBjdXJyZW50bHkgSSdtIG9ic2VydmluZyBhIHN0cmFuZ2UgdGhpbmcuLmNhdXNlIHRoZSBidWlsZCBvbiBKZW5raW5zICAKPiBwcm9kdWNlcyB0ZXN0IGZhaWx1cmUgd2l0aCBKREsgOQo+Cj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy9qb2IvbWF2ZW4tYm94L2pvYi9tYXZlbi1hcmNoaXZlci9qb2IvbWFzdGVyLzUvY29uc29sZUZ1bGwKPgo+IFRoZSBwcm9ibGVtIEknbSBjdXJyZW50bHkgaGF2aW5nIGlzIHRoYXQgSSBjYW4ndCByZXByb2R1Y2UgdGhpcy4uCj4KPiBJIGhhdmUgdGVzdGVkIHdpdGggTWF2ZW4gMy41LjIgYW5kIEpESyA5LjAuMSB3aXRob3V0IGFueSBwcm9ibGVtIG9uIG15ICAKPiBNYWMgLi4uCj4KPiBJcyBzb21lb25lIG91dCB0aGVyZSB3aG8gY2FuIGNoZWNrIHRoZSBjdXJyZW50IHN0YXRlIG9mIG1hdmVuLWFyY2hpdmVyICAKPiBnaXQgcmVwbyBvbiBXaW5kb3dzIGFuZCBjYW4gcmVwcm9kdWNlIHRoZSBpc3N1ZSA/Cj4KPiBJdCB3b3VsZCBiZSBncmVhdC4uVGhhbmtzIGluIGFkdmFuY2UuCj4KPiBLaW5kIHJlZ2FyZHMKPiBLYXJsIEhlaW56IE1hcmJhaXNlCj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDgzOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUdWUgRGVjIDI2IDIxOjU5OjM1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDgzOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBBQUM0NDE3NEFGCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFR1ZSwgMjYgRGVjIDIwMTcgMjE6NTk6MzUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1OTY1NCBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNiBEZWMgMjAxNyAyMTo1OTozNSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTk1ODcgaW52b2tlZCBieSB1aWQgNTAwKTsgMjYgRGVjIDIwMTcgMjE6NTk6MzUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1OTU3NSBpbnZva2VkIGJ5IHVpZCA5OSk7IDI2IERlYyAyMDE3IDIxOjU5OjM1IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDI2IERlYyAyMDE3IDIxOjU5OjM1ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgOUIxREIxQTAwQTAKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBUdWUsIDI2IERlYyAyMDE3IDIxOjU5OjMyICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBtYXZlbi1hcmNoaXZlciBidWlsZCBvbiBKZW5raW5zIC0gVGVzdCBGYWlsdXJlcwpSZWZlcmVuY2VzOiA8OTUwZGUyODAtNTkyOC00ZmUzLWFjYTgtMDkyMzQxNTI0YzY2QGdteC5kZT4KIDxvcC56YnZjY2FpeGtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KIDw2M2M5MmVjZC1iMzI5LWJiNDktOTQ4YS1iNTFmNGIxOWFlMGZAZ214LmRlPgpEYXRlOiBUdWUsIDI2IERlYyAyMDE3IDIyOjU5OjI5ICswMTAwCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDdiaXQKRnJvbTogIlJvYmVydCBTY2hvbHRlIiA8cmZzY2hvbHRlQGFwYWNoZS5vcmc+Ck9yZ2FuaXphdGlvbjogQXBhY2hlIFNvZnR3YXJlIEZvdW5kYXRpb24KTWVzc2FnZS1JRDogPG9wLnpidmpkZmRua2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgpJbi1SZXBseS1UbzogPDYzYzkyZWNkLWIzMjktYmI0OS05NDhhLWI1MWY0YjE5YWUwZkBnbXguZGU+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKSW50ZXJlc3RpbmcuLi4KClRoZSBwaXBlbGluZSBzdGVwc1sxXSBzYXkgYWxsIHN1Y2NlZWRlZCwgaG93ZXZlciAjNiBvdmVydmlld1syXSBjb21wbGFpbnRzICAKYWJvdXQgZmFpbGluZyB0ZXN0cy4KClJvYmVydAoKWzFdICAKaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy9qb2IvbWF2ZW4tYm94L2pvYi9tYXZlbi1hcmNoaXZlci9qb2IvbWFzdGVyLzYvZmxvd0dyYXBoVGFibGUvClsyXSAgCmh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvam9iL21hdmVuLWJveC9qb2IvbWF2ZW4tYXJjaGl2ZXIvam9iL21hc3Rlci82LwoKT24gVHVlLCAyNiBEZWMgMjAxNyAyMDo0NDozNSArMDEwMCwgS2FybCBIZWlueiBNYXJiYWlzZSAgCjxraG1hcmJhaXNlQGdteC5kZT4gd3JvdGU6Cgo+IEhpIFJvYmVydCwKPgo+IEkgd2lsbCB0cnkgYW5kIHNlZSB0aGUgcmVzdWx0Li4KPgo+IFRoYW5rcy4KPgo+IEtpbmQgcmVnYXJkcwo+IEthcmwgSGVpbnoKPgo+Cj4gT24gMjYvMTIvMTcgMjA6MjcsIFJvYmVydCBTY2hvbHRlIHdyb3RlOgo+PiBUaGUgam9iIHN0YXJ0aW5nIHF1aXRlIHNvbWUgdGltZSBhZ28uIE1heWJlIGJldHRlciB0byBraWxsIHRoZSBpdCBhbmQgIAo+PiBzdGFydCBvdmVyIGFnYWluLgo+PiBJIGhhZCB0cm91YmxlIHZpc2l0aW5nIGJ1aWxkcy5hcGFjaGUub3JnIHRoaXMgYWZ0ZXJub29uLCBjb3VsZCBiZSAgCj4+IHJlbGF0ZWQuCj4+ICB0aGFua3MsCj4+IFJvYmVydAo+PiAgT24gVHVlLCAyNiBEZWMgMjAxNyAyMDowMTowMiArMDEwMCwgS2FybCBIZWlueiBNYXJiYWlzZSAgCj4+IDxraG1hcmJhaXNlQGdteC5kZT4gd3JvdGU6Cj4+Cj4+PiBIaSwKPj4+Cj4+PiBjdXJyZW50bHkgSSdtIG9ic2VydmluZyBhIHN0cmFuZ2UgdGhpbmcuLmNhdXNlIHRoZSBidWlsZCBvbiBKZW5raW5zICAKPj4+IHByb2R1Y2VzIHRlc3QgZmFpbHVyZSB3aXRoIEpESyA5Cj4+Pgo+Pj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy9qb2IvbWF2ZW4tYm94L2pvYi9tYXZlbi1hcmNoaXZlci9qb2IvbWFzdGVyLzUvY29uc29sZUZ1bGwgIAo+Pj4gVGhlIHByb2JsZW0gSSdtIGN1cnJlbnRseSBoYXZpbmcgaXMgdGhhdCBJIGNhbid0IHJlcHJvZHVjZSB0aGlzLi4KPj4+Cj4+PiBJIGhhdmUgdGVzdGVkIHdpdGggTWF2ZW4gMy41LjIgYW5kIEpESyA5LjAuMSB3aXRob3V0IGFueSBwcm9ibGVtIG9uIG15ICAKPj4+IE1hYyAuLi4KPj4+Cj4+PiBJcyBzb21lb25lIG91dCB0aGVyZSB3aG8gY2FuIGNoZWNrIHRoZSBjdXJyZW50IHN0YXRlIG9mIG1hdmVuLWFyY2hpdmVyICAKPj4+IGdpdCByZXBvIG9uIFdpbmRvd3MgYW5kIGNhbiByZXByb2R1Y2UgdGhlIGlzc3VlID8KPj4+Cj4+PiBJdCB3b3VsZCBiZSBncmVhdC4uVGhhbmtzIGluIGFkdmFuY2UuCj4+Pgo+Pj4gS2luZCByZWdhcmRzCj4+PiBLYXJsIEhlaW56IE1hcmJhaXNlCj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDg0NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgRGVjIDI3IDEyOjAyOjE2IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg0NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAyRjc2QjE3NkE1Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMjcgRGVjIDIwMTcgMTI6MDI6MTYgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxNjUzMSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBEZWMgMjAxNyAxMjowMjoxNSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTY0NTMgaW52b2tlZCBieSB1aWQgNTAwKTsgMjcgRGVjIDIwMTcgMTI6MDI6MTUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNjQ0MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDI3IERlYyAyMDE3IDEyOjAyOjE1IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDI3IERlYyAyMDE3IDEyOjAyOjE1ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgMDM5RjQxQTAwRkIKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDI3IERlYyAyMDE3IDEyOjAyOjE0ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gUERGIFBsdWdpbiB2ZXJzaW9uIDEuNApSZWZlcmVuY2VzOiA8MzExMTAzMi5FdEZlVTFBbFBwQGdpZ2E+CkRhdGU6IFdlZCwgMjcgRGVjIDIwMTcgMTM6MDI6MTMgKzAxMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogUXVvdGVkLVByaW50YWJsZQpGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AuemJ3bWR6aGFrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkluLVJlcGx5LVRvOiA8MzExMTAzMi5FdEZlVTFBbFBwQGdpZ2E+ClVzZXItQWdlbnQ6IE9wZXJhIE1haWwvMTIuMTggKFdpbjY0KQoKKzEKCk9uIEZyaSwgMjIgRGVjIDIwMTcgMTA6MTE6MzIgKzAxMDAsIEhlcnY9RTkgQk9VVEVNWSA8aGVydmUuYm91dGVteUBmcmVlLj0KZnI+ICA9Cgp3cm90ZToKCj4gSGksCj4gV2Ugc29sdmVkIDEyIGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/Cj4gcHJvamVjdElkPTNEMTIzMTc2MjAmdmVyc2lvbj0zRDEyMzMzMzM4JnN0eWxlTmFtZT0zRFRleHQKPiBUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9M0Rwcm9qZWN0JTIwJTNEJTIwTVBERiUyMEFOPQpEJTIwc3RhdHVzCj4gJTIwJTNEJTIwT3BlbiUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDCj4gU3RhZ2luZyByZXBvOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzODUvCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM4NS9vcmcvYXBhYz0KaGUvCj4gbWF2ZW4vcGx1Z2lucy9tYXZlbi1wZGYtcGx1Z2luLzEuNC9tYXZlbi1wZGYtcGx1Z2luLTEuNC1zb3VyY2UtcmVsZWFzZT0KLnppcAo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IG1hdmVuLXBkZi1wbHVnaW4tMS40LXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOgo+IDg4ZDJkMjU0ZTY3NDkzOGIxOTdkZjZiMzdiNTRjNzVlYzgxN2ZjZjQKPiBTdGFnaW5nIHNpdGU6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL3BsdWdpbnMtYXJjaGl2ZXMvbWF2ZW4tcGRmLXBsdWdpbi1MQVRFU1QvCj4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gaHR0cHM6Ly9tYXZlbi5hcGFjaGUub3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzLmh0bT0KbAo+IFZvdGUgb3BlbiBmb3IgYXQgbGVhc3QgNzIgaG91cnMuCj4gWyBdICsxCj4gWyBdICswCj4gWyBdIC0xCj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDg0Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBXZWQgRGVjIDI3IDEyOjA4OjE3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg0Ni1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA1QzM4RTE3NkQ2Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFdlZCwgMjcgRGVjIDIwMTcgMTI6MDg6MTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAyNDE0MiBpbnZva2VkIGJ5IHVpZCA1MDApOyAyNyBEZWMgMjAxNyAxMjowODoxNiAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMjQwNjEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjcgRGVjIDIwMTcgMTI6MDg6MTYgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNDA1MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDI3IERlYyAyMDE3IDEyOjA4OjE2IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBXZWQsIDI3IERlYyAyMDE3IDEyOjA4OjE2ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgNTY0M0YxQTAwQ0EKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBXZWQsIDI3IERlYyAyMDE3IDEyOjA4OjE0ICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gRG94aWEgU2l0ZXRvb2xzIHZlcnNpb24gMS44ClJlZmVyZW5jZXM6IDwyMTkzMTA3LmNpQTNOT2RUT05AZ2lnYT4KRGF0ZTogV2VkLCAyNyBEZWMgMjAxNyAxMzowODoxMCArMDEwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBRdW90ZWQtUHJpbnRhYmxlCkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC56Yndtbnd5OWtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KSW4tUmVwbHktVG86IDwyMTkzMTA3LmNpQTNOT2RUT05AZ2lnYT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgorMQoKT24gVGh1LCAyMSBEZWMgMjAxNyAyMzozMToxNCArMDEwMCwgSGVydj1FOSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuPQpmcj4gID0KCndyb3RlOgoKPiBIaSwKPiBXZSBzb2x2ZWQgNyBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhPwo+IHByb2plY3RJZD0zRDEyMzE3MzIwJnZlcnNpb249M0QxMjMzOTYxMyZzdHlsZU5hbWU9M0RUZXh0Cj4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUzRCUyMERPWElBU0lURT0KVE9PTFMKPiAlMjBBTkQlMjBzdGF0dXMlMjAlM0QlMjBPcGVuJTIwT1JERVIlMjBCWSUyMGtleSUyMERFU0MlMkMlMjBwcmlvcml0eSUyPQowREVTQwo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzg0Lwo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzODQvb3JnL2FwYWM9CmhlLwo+IG1hdmVuL2RveGlhL2RveGlhLXNpdGV0b29scy8xLjgvZG94aWEtc2l0ZXRvb2xzLTEuOC1zb3VyY2UtcmVsZWFzZS56aXA9Cgo+IFNvdXJjZSByZWxlYXNlIGNoZWNrc3VtKHMpOgo+IGRveGlhLXNpdGV0b29scy0xLjgtc291cmNlLXJlbGVhc2UuemlwIHNoYTE6Cj4gMDA1MWFmM2RhMmJhNjMyYTllMGY3NTNiMGZmYmMxNTM1ODk4NmNjZAo+IFN0YWdpbmcgc2l0ZToKPiBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9kb3hpYS9kb3hpYS1zaXRldG9vbHMtYXJjaGl2ZXMvZG94aWEtc2l0ZXRvb2xzPQotTEFURVNULwo+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG09CmwKPiBWb3RlIG9wZW4gZm9yIGF0IGxlYXN0IDcyIGhvdXJzLgo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQo+Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4NjUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IERlYyAyOCAxNjo1ODo0MyAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4NjUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgN0Y1QTUxMDk2QgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDI4IERlYyAyMDE3IDE2OjU4OjQzICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTM2NDEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggRGVjIDIwMTcgMTY6NTg6NDMgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDUzNTY5IGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IERlYyAyMDE3IDE2OjU4OjQzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTM1NTYgaW52b2tlZCBieSB1aWQgOTkpOyAyOCBEZWMgMjAxNyAxNjo1ODo0MyAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyOCBEZWMgMjAxNyAxNjo1ODo0MyArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDZGRTdCMUEwMDU0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyOCBEZWMgMjAxNyAxNjo1ODo0MCArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogZGV2QG1hdmVuLmFwYWNoZS5vcmcKRGF0ZTogVGh1LCAyOCBEZWMgMjAxNyAxNzo1ODozNyArMDEwMApTdWJqZWN0OiBzZWNvbmQgZml4IGZvciBNTkctNjMzMCAgW3JlZ3Jlc3Npb25dIFBhcmVudHMgcmVsYXRpdmVQYXRoIG5vdAogdmVyaWZpZWQgYW55bW9yZQpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC56Ynl1cnpuYmtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpIaSwKCkxvb2tpbmcgZm9yIHNvbWVvbmUgdG8gY29uZmlybSBhbmQgc2Vjb25kIE1ORy02MzMwWzFdCldoaWxlIHdvcmtpbmcgb24gdGhlIG1hdmVuLXJlbGVhc2UtcGx1Z2luIEkgZGlzY292ZXJlZCByZWdyZXNzaW9uICAKaW50cm9kdWNlZCBpbiBNYXZlbiAzLjUuMCBieSBhIGNoYW5nZSB0byB0aGUgUmVhY3Rvck1vZGVsQ2FjaGVbMl0KVGhpcyBvbmx5IG9jY3VycyB3aGVuIGEgcGFyZW50IHdhcyBjYWNoZWQgYW5kIGFub3RoZXIgbW9kdWxlIHBvaW50cyB0byAgCnRoaXMgcGFyZW50LCBldmVuIHRob3VnaCB0aGUgcmVsYXRpdmVQYXRoIGZvciB0aGlzIHBhcmVudCByZXN1bHRzIGluIGEgIApub24tZXhpc3RpbmcgcG9tIGZpbGUuCkNoYW5nZSBpcyBhIHNpbXBsZSBudWxsLWNoZWNrWzNdClJlZ3Jlc3Npb24gY292ZXJlZCBieSBpbnRlZ3JhdGlvbiB0ZXN0WzRdCkplbmtpbnMgaXMgaGFwcHlbNV0KCnRoYW5rcywKUm9iZXJ0CgpbMV0gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjMzMApbMl0gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL2Jyb3dzZS9NTkctNjAzMApbM10gIApodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuL2NvbW1pdC80ZWI1NzQ3ZTgyMjlkMDIwMWI3MDcwNTJjZTdmOGFlMmZlMjRlZWMyCls0XSAgCmh0dHBzOi8vZ2l0LXdpcC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPW1hdmVuLWludGVncmF0aW9uLXRlc3RpbmcuZ2l0O2E9Y29tbWl0O2g9Y2ZkMGNjNjI5YzJkZDQ5NjU1NGM1OWMxNjgwZmIxZDkwYjEzMTFiMwpbNV0gIApodHRwczovL2J1aWxkcy5hcGFjaGUub3JnL2pvYi9tYXZlbi13aXAvam9iL21hdmVuL2pvYi9NTkctNjMzMF9SZWxhdGl2ZVBhdGgvCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQ4NjctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IERlYyAyOCAxODoxMDo0OCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQ4NjctYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNkMwNjMxMEJCMwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsIDI4IERlYyAyMDE3IDE4OjEwOjQ4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNTk5MTQgaW52b2tlZCBieSB1aWQgNTAwKTsgMjggRGVjIDIwMTcgMTg6MTA6NDggLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDU5ODYxIGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IERlYyAyMDE3IDE4OjEwOjQ4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTk4NTAgaW52b2tlZCBieSB1aWQgOTkpOyAyOCBEZWMgMjAxNyAxODoxMDo0NyAtMDAwMApSZWNlaXZlZDogZnJvbSBtYWlsLXJlbGF5LmFwYWNoZS5vcmcgKEhFTE8gbWFpbC1yZWxheS5hcGFjaGUub3JnKSAoMTQwLjIxMS4xMS4xNSkKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyOCBEZWMgMjAxNyAxODoxMDo0NyArMDAwMApSZWNlaXZlZDogZnJvbSBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldCAoNTI0ODc0OUQuY20tNC0xYi5keW5hbWljLnppZ2dvLm5sIFs4Mi43Mi4xMTYuMTU3XSkKCWJ5IG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG1haWwtcmVsYXkuYXBhY2hlLm9yZykgd2l0aCBFU01UUFNBIGlkIDU4OEU3MUEwMDk0Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyOCBEZWMgMjAxNyAxODoxMDo0NyArMDAwMCAoVVRDKQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9aXNvLTg4NTktMTU7IGZvcm1hdD1mbG93ZWQ7IGRlbHNwPXllcwpUbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogc2Vjb25kIGZpeCBmb3IgTU5HLTYzMzAgW3JlZ3Jlc3Npb25dIFBhcmVudHMgcmVsYXRpdmVQYXRoIG5vdAogdmVyaWZpZWQgYW55bW9yZQpSZWZlcmVuY2VzOiA8b3AuemJ5dXJ6bmJrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CiA8NzEyOTQ1ODYtODQzMi0wNzZhLTEzZjQtZWVjYzEwOWE2MTNkQGdteC5kZT4KRGF0ZTogVGh1LCAyOCBEZWMgMjAxNyAxOToxMDo0NiArMDEwMApNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC56Ynl4Mzh0bWtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KSW4tUmVwbHktVG86IDw3MTI5NDU4Ni04NDMyLTA3NmEtMTNmNC1lZWNjMTA5YTYxM2RAZ214LmRlPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCkhpIEthcmwgSGVpbnosCgpqdXN0IGxvb2tpbmcgZm9yIGEgKzEgZnJvbSBhbm90aGVyIGNvbW1pdHRlciBiZWZvcmUgSSBtZXJnZSBpdCBiYWNrIHRvIHRoZSAgCm1hc3Rlci4KCnRoYW5rcywKUm9iZXJ0CgpPbiBUaHUsIDI4IERlYyAyMDE3IDE4OjU1OjE1ICswMTAwLCBLYXJsIEhlaW56IE1hcmJhaXNlICAKPGtobWFyYmFpc2VAZ214LmRlPiB3cm90ZToKCj4gSGkgUm9iZXJ0LAo+Cj4KPiBPbiAyOC8xMi8xNyAxNzo1OCwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4+IEhpLAo+PiAgTG9va2luZyBmb3Igc29tZW9uZSB0byBjb25maXJtIGFuZCBzZWNvbmQgTU5HLTYzMzBbMV0KPgo+IGhvdyBjYW4gSSBoZWxwIGhlcmU/Cj4KPiBLYXJsIEhlaW56IE1hcmJhaXNlCj4KPj4gV2hpbGUgd29ya2luZyBvbiB0aGUgbWF2ZW4tcmVsZWFzZS1wbHVnaW4gSSBkaXNjb3ZlcmVkIHJlZ3Jlc3Npb24gIAo+PiBpbnRyb2R1Y2VkIGluIE1hdmVuIDMuNS4wIGJ5IGEgY2hhbmdlIHRvIHRoZSBSZWFjdG9yTW9kZWxDYWNoZVsyXQo+PiBUaGlzIG9ubHkgb2NjdXJzIHdoZW4gYSBwYXJlbnQgd2FzIGNhY2hlZCBhbmQgYW5vdGhlciBtb2R1bGUgcG9pbnRzIHRvICAKPj4gdGhpcyBwYXJlbnQsIGV2ZW4gdGhvdWdoIHRoZSByZWxhdGl2ZVBhdGggZm9yIHRoaXMgcGFyZW50IHJlc3VsdHMgaW4gYSAgCj4+IG5vbi1leGlzdGluZyBwb20gZmlsZS4KPj4gQ2hhbmdlIGlzIGEgc2ltcGxlIG51bGwtY2hlY2tbM10KPj4gUmVncmVzc2lvbiBjb3ZlcmVkIGJ5IGludGVncmF0aW9uIHRlc3RbNF0KPj4gSmVua2lucyBpcyBoYXBweVs1XQo+PiAgdGhhbmtzLAo+PiBSb2JlcnQKPj4gIFsxXSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MzMwCj4+IFsyXSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MDMwCj4+IFszXSAgCj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vY29tbWl0LzRlYjU3NDdlODIyOWQwMjAxYjcwNzA1MmNlN2Y4YWUyZmUyNGVlYzIgIAo+PiAgWzRdICAKPj4gaHR0cHM6Ly9naXQtd2lwLXVzLmFwYWNoZS5vcmcvcmVwb3MvYXNmP3A9bWF2ZW4taW50ZWdyYXRpb24tdGVzdGluZy5naXQ7YT1jb21taXQ7aD1jZmQwY2M2MjljMmRkNDk2NTU0YzU5YzE2ODBmYjFkOTBiMTMxMWIzICAKPj4gIFs1XSAgCj4+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvam9iL21hdmVuLXdpcC9qb2IvbWF2ZW4vam9iL01ORy02MzMwX1JlbGF0aXZlUGF0aC8gIAo+PiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+PiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4+Cj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDg2OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgRGVjIDI4IDE4OjM1OjA0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg2OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCAzQzlGMzEwQzYyCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjggRGVjIDIwMTcgMTg6MzU6MDQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxMzgzIGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IERlYyAyMDE3IDE4OjM1OjAzIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxMzA3IGludm9rZWQgYnkgdWlkIDUwMCk7IDI4IERlYyAyMDE3IDE4OjM1OjAzIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTI5MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDI4IERlYyAyMDE3IDE4OjM1OjAzIC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUaHUsIDI4IERlYyAyMDE3IDE4OjM1OjAzICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgRDY2REQxQTAwOTQ7CglUaHUsIDI4IERlYyAyMDE3IDE4OjM1OjAwICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+LCAiS2FybCBIZWlueiBNYXJiYWlzZSIKIDxraG1hcmJhaXNlQGdteC5kZT4KU3ViamVjdDogUmU6IHNlY29uZCBmaXggZm9yIE1ORy02MzMwIFtyZWdyZXNzaW9uXSBQYXJlbnRzIHJlbGF0aXZlUGF0aCBub3QKIHZlcmlmaWVkIGFueW1vcmUKUmVmZXJlbmNlczogPG9wLnpieXVyem5ia2RraHJyQGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0PgogPDcxMjk0NTg2LTg0MzItMDc2YS0xM2Y0LWVlY2MxMDlhNjEzZEBnbXguZGU+CiA8b3AuemJ5eDM4dG1rZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CiA8YTA2ZmZlNWEtYjU4Ni1hNzFlLTNkMGItNjk4M2ExNmQ1NGMyQGdteC5kZT4KRGF0ZTogVGh1LCAyOCBEZWMgMjAxNyAxOTozNDo1OSArMDEwMApDYzogIlN0ZXBoZW4gQ29ubm9sbHkiIDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA3Yml0CkZyb206ICJSb2JlcnQgU2Nob2x0ZSIgPHJmc2Nob2x0ZUBhcGFjaGUub3JnPgpPcmdhbml6YXRpb246IEFwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCk1lc3NhZ2UtSUQ6IDxvcC56Ynl5OGxwbWtka2hyckBkZXNrdG9wLTJraHNrNDQubXNob21lLm5ldD4KSW4tUmVwbHktVG86IDxhMDZmZmU1YS1iNTg2LWE3MWUtM2QwYi02OTgzYTE2ZDU0YzJAZ214LmRlPgpVc2VyLUFnZW50OiBPcGVyYSBNYWlsLzEyLjE4IChXaW42NCkKCkhpIEthcmwgSGVpbnosCgpBRkFJSyB5b3UncmUgaGl0dGluZyBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0lORlJBLTE1NjgxCgp0aGFua3MsClJvYmVydAoKT24gVGh1LCAyOCBEZWMgMjAxNyAxOTozMTozNSArMDEwMCwgS2FybCBIZWlueiBNYXJiYWlzZSAgCjxraG1hcmJhaXNlQGdteC5kZT4gd3JvdGU6Cgo+IEhpIFJvYmVydCwKPgo+IE9uIDI4LzEyLzE3IDE5OjEwLCBSb2JlcnQgU2Nob2x0ZSB3cm90ZToKPj4gSGkgS2FybCBIZWlueiwKPj4gIGp1c3QgbG9va2luZyBmb3IgYSArMSBmcm9tIGFub3RoZXIgY29tbWl0dGVyIGJlZm9yZSBJIG1lcmdlIGl0IGJhY2sgdG8gIAo+PiB0aGUgbWFzdGVyLgo+Cj4gQWggb2suLi5TbyB0aGUgZmlyc3QgcXVlc3Rpb24gaXMgd2h5IGlzIHRoZSBtYXN0ZXIgYXQgdGhlIG1vbWVudCB5ZWxsb3cgIAo+IHdpdGggdHdvIGZhaWxlZCB0ZXN0cyA/IERvIHlvdSBoYXZlIGFueSBjbHVlIGFib3V0IHRoYXQgPwo+Cj4KPiBLaW5kIHJlZ2FyZHMKPiBLYXJsIEhlaW56Cj4KPgo+Cj4KPgo+PiAgdGhhbmtzLAo+PiBSb2JlcnQKPj4gIE9uIFRodSwgMjggRGVjIDIwMTcgMTg6NTU6MTUgKzAxMDAsIEthcmwgSGVpbnogTWFyYmFpc2UgIAo+PiA8a2htYXJiYWlzZUBnbXguZGU+IHdyb3RlOgo+Pgo+Pj4gSGkgUm9iZXJ0LAo+Pj4KPj4+Cj4+PiBPbiAyOC8xMi8xNyAxNzo1OCwgUm9iZXJ0IFNjaG9sdGUgd3JvdGU6Cj4+Pj4gSGksCj4+Pj4gIExvb2tpbmcgZm9yIHNvbWVvbmUgdG8gY29uZmlybSBhbmQgc2Vjb25kIE1ORy02MzMwWzFdCj4+Pgo+Pj4gaG93IGNhbiBJIGhlbHAgaGVyZT8KPj4+Cj4+PiBLYXJsIEhlaW56IE1hcmJhaXNlCj4+Pgo+Pj4+IFdoaWxlIHdvcmtpbmcgb24gdGhlIG1hdmVuLXJlbGVhc2UtcGx1Z2luIEkgZGlzY292ZXJlZCByZWdyZXNzaW9uICAKPj4+PiBpbnRyb2R1Y2VkIGluIE1hdmVuIDMuNS4wIGJ5IGEgY2hhbmdlIHRvIHRoZSBSZWFjdG9yTW9kZWxDYWNoZVsyXQo+Pj4+IFRoaXMgb25seSBvY2N1cnMgd2hlbiBhIHBhcmVudCB3YXMgY2FjaGVkIGFuZCBhbm90aGVyIG1vZHVsZSBwb2ludHMgIAo+Pj4+IHRvIHRoaXMgcGFyZW50LCBldmVuIHRob3VnaCB0aGUgcmVsYXRpdmVQYXRoIGZvciB0aGlzIHBhcmVudCByZXN1bHRzICAKPj4+PiBpbiBhIG5vbi1leGlzdGluZyBwb20gZmlsZS4KPj4+PiBDaGFuZ2UgaXMgYSBzaW1wbGUgbnVsbC1jaGVja1szXQo+Pj4+IFJlZ3Jlc3Npb24gY292ZXJlZCBieSBpbnRlZ3JhdGlvbiB0ZXN0WzRdCj4+Pj4gSmVua2lucyBpcyBoYXBweVs1XQo+Pj4+ICB0aGFua3MsCj4+Pj4gUm9iZXJ0Cj4+Pj4gIFsxXSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MzMwCj4+Pj4gWzJdIGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYwMzAKPj4+PiBbM10gIAo+Pj4+IGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vY29tbWl0LzRlYjU3NDdlODIyOWQwMjAxYjcwNzA1MmNlN2Y4YWUyZmUyNGVlYzIgIAo+Pj4+ICBbNF0gIAo+Pj4+IGh0dHBzOi8vZ2l0LXdpcC11cy5hcGFjaGUub3JnL3JlcG9zL2FzZj9wPW1hdmVuLWludGVncmF0aW9uLXRlc3RpbmcuZ2l0O2E9Y29tbWl0O2g9Y2ZkMGNjNjI5YzJkZDQ5NjU1NGM1OWMxNjgwZmIxZDkwYjEzMTFiMyAgCj4+Pj4gIFs1XSAgCj4+Pj4gaHR0cHM6Ly9idWlsZHMuYXBhY2hlLm9yZy9qb2IvbWF2ZW4td2lwL2pvYi9tYXZlbi9qb2IvTU5HLTYzMzBfUmVsYXRpdmVQYXRoLyAgCj4+Pj4gICAgCj4+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPj4+PiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDg3Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgRGVjIDI5IDEwOjE4OjM0IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDg3Ny1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBDMjhBRDE3MzY1Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMjkgRGVjIDIwMTcgMTA6MTg6MzQgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA1MTk5MSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyOSBEZWMgMjAxNyAxMDoxODozNCAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNTE5MDIgaW52b2tlZCBieSB1aWQgNTAwKTsgMjkgRGVjIDIwMTcgMTA6MTg6MzQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA1MTg5MSBpbnZva2VkIGJ5IHVpZCA5OSk7IDI5IERlYyAyMDE3IDEwOjE4OjM0IC0wMDAwClJlY2VpdmVkOiBmcm9tIG1haWwtcmVsYXkuYXBhY2hlLm9yZyAoSEVMTyBtYWlsLXJlbGF5LmFwYWNoZS5vcmcpICgxNDAuMjExLjExLjE1KQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBGcmksIDI5IERlYyAyMDE3IDEwOjE4OjM0ICswMDAwClJlY2VpdmVkOiBmcm9tIGRlc2t0b3AtMmtoc2s0NC5tc2hvbWUubmV0ICg1MjQ4NzQ5RC5jbS00LTFiLmR5bmFtaWMuemlnZ28ubmwgWzgyLjcyLjExNi4xNTddKQoJYnkgbWFpbC1yZWxheS5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbC1yZWxheS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQU0EgaWQgQjBCMzIxQTAwQ0EKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBGcmksIDI5IERlYyAyMDE3IDEwOjE4OjMxICswMDAwIChVVEMpCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1pc28tODg1OS0xNTsgZm9ybWF0PWZsb3dlZDsgZGVsc3A9eWVzClRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBNYXZlbiAzLjUuMzogTU5HLTYzMDUKUmVmZXJlbmNlczogPGFkY2M5N2E2LTJmYzItMDg1Yi02Y2E3LTZkNGFjMDg5NTJjZkBnbXguZGU+CkRhdGU6IEZyaSwgMjkgRGVjIDIwMTcgMTE6MTg6MzAgKzAxMDAKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdApGcm9tOiAiUm9iZXJ0IFNjaG9sdGUiIDxyZnNjaG9sdGVAYXBhY2hlLm9yZz4KT3JnYW5pemF0aW9uOiBBcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbgpNZXNzYWdlLUlEOiA8b3AuemJ6Nnc0czVrZGtocnJAZGVza3RvcC0ya2hzazQ0Lm1zaG9tZS5uZXQ+CkluLVJlcGx5LVRvOiA8YWRjYzk3YTYtMmZjMi0wODViLTZjYTctNmQ0YWMwODk1MmNmQGdteC5kZT4KVXNlci1BZ2VudDogT3BlcmEgTWFpbC8xMi4xOCAoV2luNjQpCgpIaSBLYXJsIEhlaW56LAoKSSB0aGluayB0aGUgUkVnRXhwIHVzYWdlIGNhbiBiZSBpbXByb3ZlZC4KTm93IGl0IHVzZWQgZm9yIGJ1aWxkaW5nIHVwIGEgbmV3IFN0cmluZyBmb2xsb3dlZCBieSBzZWFyY2hpbmcsIEkgd291bGQgIApleHBlY3QgdGhhdCBzZWFyY2hpbmcgZm9yICR7KC4rKX0gZ3JvdXBzIHRvIGJlIG1vcmUgZWZmaWNpZW50LgoKdGhhbmtzLApSb2JlcnQKCgpPbiBGcmksIDI5IERlYyAyMDE3IDExOjEwOjM2ICswMTAwLCBLYXJsIEhlaW56IE1hcmJhaXNlICAKPGtobWFyYmFpc2VAZ214LmRlPiB3cm90ZToKCj4gSGksCj4KPiBJIHdvdWxkIGxpa2UgdG8ga25vdyBpZiB0aGVyZSBhcmUgYW55IG9iamVjdGlvbnMgdG8gbWVyZ2UgTU5HLTYzMDUgaW50byAgCj4gbWFzdGVyIChKZW5raW5zIGlzIGZpbmUgWzFdKS4KPgo+IEtpbmQgcmVnYXJkcwo+IEthcmwgSGVpbnogTWFyYmFpc2UKPgo+IFsxXTogIAo+IGh0dHBzOi8vYnVpbGRzLmFwYWNoZS5vcmcvam9iL21hdmVuLXdpcC9qb2IvbWF2ZW4vam9iL01ORy02MzA1LXZhbGlkYXRpb24tb2YtY2ktZnJpZW5kbHkvCj4KPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQ1NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgTm92ICA5IDA4OjMxOjA5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQ1NC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA1Q0QwQTEwNEUxCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgIDkgTm92IDIwMTcgMDg6MzE6MDkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5MjgzNSBpbnZva2VkIGJ5IHVpZCA1MDApOyA5IE5vdiAyMDE3IDA4OjMxOjA5IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5Mjc1MSBpbnZva2VkIGJ5IHVpZCA1MDApOyA5IE5vdiAyMDE3IDA4OjMxOjA4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTI3NDAgaW52b2tlZCBieSB1aWQgOTkpOyA5IE5vdiAyMDE3IDA4OjMxOjA4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAwOSBOb3YgMjAxNyAwODozMTowOCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEU3OUM1MTgwNzlBCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAgOSBOb3YgMjAxNyAwODozMTowNyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDQuNTAxClgtU3BhbS1MZXZlbDogKioqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9NC41MDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0hFQURFUl9GUk9NX0RJRkZFUkVOVF9ET01BSU5TPTAuMDAxLAoJS0FNX0xBWllfRE9NQUlOX1NFQ1VSSVRZPTEsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkROU19OT05FPTNdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBULXV6bjF2MkZMUU0gZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsICA5IE5vdiAyMDE3IDA4OjMxOjA2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGJsYWluZS5nbWFuZS5vcmcgKHVua25vd24gWzE5NS4xNTkuMTc2LjIyNl0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBERjY1NDVGNjQwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAgOSBOb3YgMjAxNyAwODozMTowNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBsaXN0IGJ5IGJsYWluZS5nbWFuZS5vcmcgd2l0aCBsb2NhbCAoRXhpbSA0Ljg0XzIpCgkoZW52ZWxvcGUtZnJvbSA8Z2NqdG1kLXR1cmJpbmUtbWF2ZW4tZGV2LTc1OUBtLmdtYW5lLm9yZz4pCglpZCAxZUNpRWgtMDAwN3dLLTJOCglmb3IgZGV2QG1hdmVuLmFwYWNoZS5vcmc7IFRodSwgMDkgTm92IDIwMTcgMDk6MzA6NTUgKzAxMDAKWC1JbmplY3RlZC1WaWEtR21hbmU6IGh0dHA6Ly9nbWFuZS5vcmcvClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpGcm9tOiA9P2lzby04ODU5LTE/Yj9Tdlp5Wnc9PT89IFNjaGFpYmxlIDxqb2VyZy5zY2hhaWJsZUBicG0taW5zcGlyZS5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiA0LjAuMApEYXRlOiBUaHUsIDkgTm92IDIwMTcgMDg6MzA6NDggKzAwMDAgKFVUQykKTGluZXM6IDQ4Ck1lc3NhZ2UtSUQ6IDxvdTEzbm8kNGpvJDFAYmxhaW5lLmdtYW5lLm9yZz4KUmVmZXJlbmNlczogCgk8Q0ErblBuTXdFSDlaMm15cDcxdWFTcmRjeUxKUkZyRS1WcnQyMDE5MXJkMDFoK1VmaGp3QG1haWwuZ21haWwuY29tPgpNaW1lLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdApYLUNvbXBsYWludHMtVG86IHVzZW5ldEBibGFpbmUuZ21hbmUub3JnClVzZXItQWdlbnQ6IFBhbi8wLjE0MSAoVGFyemFuJ3MgRGVhdGg7IDE2OGIxNzkgZ2l0Lmdub21lLm9yZy9wYW4yKQoKSGksCgpvbmUgd2lzaDogQmV0dGVyIGludGVncmF0aW9uIHdpdGggcG9tLWxlc3MgVHljaG8gcHJvamVjdHMuCgpDdXJyZW50bHkgaXQgaXMgbm90IHBvc3NpYmxlIHRvIHJ1biBNYXZlbiBhbmQgdXNlIHN0YW5kYXJkIE1hdmVuLWJhc2VkIAphbmQgcG9tLWxlc3MgVHljaG8tYmFzZWQgcHJvamVjdHMgaW4gb25lIHJlYWN0b3IgaWYgdGhlIFR5Y2hvIHByb2plY3RzIApoYXZlIGRlcGVuZGVuY2llcyBvbiB0aGUgTWF2ZW4tYmFzZWQgcHJvamVjdHMuCgpBRkFJQ1MgdGhlIHByb2JsZW0gaXMgdGhhdCBQb2x5Z2xvdHQgaXMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgdGVtcG9yYXJ5IApQT01zIG91dCBvZiB0aGUgTUFOSUZFU1QuTUYgb24gdGhlIGZseSwgYnV0IHRoZSByZWFjdG9yLXBoYXNlIGhhcyBhbHJlYWR5IApwYXNzZWQgdGhhdCBjYWxjdWxhdGVzIHRoZSBidWlsZCBvcmRlci4KCkl0IHdvdWxkIGJlIG5pY2UgdG8gYWRqdXN0IE1hdmVuIENvcmUgaW4gYSB3YXkgdGhhdCBhbGxvd3Mgc3VjaCAKZXh0ZW5zaW9ucyBjb250cmlidXRlIHRvIHRoZSBidWlsZCBvcmRlci4KCkNoZWVycywKSsO2cmcKCgpBbSBTYXQsIDA0IE5vdiAyMDE3IDEyOjIwOjE4ICswMDAwIHNjaHJpZWIgU3RlcGhlbiBDb25ub2xseToKCj4gVGhlIHBhc3QgdHdvIGRheXMsIEhlcnbDqSwgUm9iZXJ0IGFuZCBJIGhhdmUgYmVlbiBkaXNjdXNzaW5nIG91ciBuZXh0Cj4gc3RlcHMuCj4gCj4gSSB0aGluayB3ZSBoYXZlIGEgc2VtaS1jb25zZW5zdXMgd2hpY2ggSSB3YW50IHRvIGJyaW5nIGJhY2sgdG8gdGhlIGxpc3Q6Cj4gCj4gV2Uga2VlcCAzLjUueCBhcyBhIHN0YWJsZSBicmFuY2ggd2l0aCBjcml0aWNhbCBidWcgZml4ZXMgb25seQo+IAo+IFdlIHN3aXRjaCBtYXN0ZXIgdG8gNC4wLjAgYW5kIHN0YXJ0IHRvIGJ1cm4gZG93biBhIHJlbGVhc2Ugc2NvcGUuCj4gCj4gNC4wLjAgd2lsbCBub3QgY2hhbmdlIHRoZSBwb20gbW9kZWxWZXJzaW9uCj4gCj4gVGhlIDQuMC4wIHNjb3BlIHNob3VsZCBwcm9iYWJseSBiZToKPiAKPiBSZXF1aXJlZDoKPiAqIGRyb3AgSmF2YSA3LCBzd2l0Y2ggY29kZWJhc2UgdG8gSmF2YSA4IGlkaW9tcyAod2hpbGUgbWFpbnRhaW5pbmcKPiBiaW5hcnkgYXBpIGNvbXBhdGliaWxpdHkgZm9yIHBsdWdpbnMpCj4gKiBzcGVjaWZ5IHRoZSBjbGFzc2xvYWRlciBiZWhhdmlvdXIgYW5kIGZpeCBpbXBsIHRvIGFsaWduIHdpdGggc3BlYyAobWF5Cj4gbmVlZCBhIHBsdWdpbiBmbGFnIHRvIGFsbG93IHBsdWdpbnMgdG8gb3B0IGluIHRvIHNwZWMgYmVoYXZpb3VyKQo+ICogc3BlY2lmeSB0aGUgZXh0ZW5zaW9uIHNwZWMgKiBhbGxvdyBsaW1pdGVkIG11dGF0aW9uIG9mIHRoZSBydW50aW1lCj4gbW9kZWwgKHJlZHVjaW5nIHRyYW5zaXRpdmUgZGVwZW5kZW5jaWVzIGZvciBjb25zdW1lcnMgd2l0aGluIHRoZQo+IHJlYWN0b3IsIG9ubHkgZm9yIHBsdWdpbiBnb2FscyB0aGF0IGRlY2xhcmUgaW50ZW50KSB1c2UgY2FzZTogc2hhZGUKPiBwbHVnaW4gKiBiZXR0ZXIgQ0kgaW50ZWdyYXRpb24gaG9va3MgKiBuaWNlIGVycm9yIG1lc3NhZ2UgZm9yIG5ld2VyIHBvbQo+IG1vZGVsVmVyc2lvbgo+IAo+IE9wdGlvbmFsOgo+ICogKGRhbW4gSSBmb3Jnb3QsIG1heWJlIFJvYmVydCByZW1lbWJlcnMpCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQ3NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gTm92IDEzIDEwOjEyOjE3IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQ3NS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBEMkE4MjEwOTI1Cglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMTMgTm92IDIwMTcgMTA6MTI6MTcgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxOTQgaW52b2tlZCBieSB1aWQgNTAwKTsgMTMgTm92IDIwMTcgMTA6MTI6MTIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDExOSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMyBOb3YgMjAxNyAxMDoxMjoxMiAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDEwOCBpbnZva2VkIGJ5IHVpZCA5OSk7IDEzIE5vdiAyMDE3IDEwOjEyOjEyIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAxMyBOb3YgMjAxNyAxMDoxMjoxMiArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDk2RDUzMUEwMkRFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMyBOb3YgMjAxNyAxMDoxMjoxMSArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDUuMDAxClgtU3BhbS1MZXZlbDogKioqKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTUuMDAxIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtIRUFERVJfRlJPTV9ESUZGRVJFTlRfRE9NQUlOUz0wLjAwMSwKCUtBTV9MQVpZX0RPTUFJTl9TRUNVUklUWT0xLCBLQU1fTElOS0JBSVQ9MC41LCBLQU1fTlVNU1VCSkVDVD0wLjUsCglSRE5TX05PTkU9M10gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC45XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCA5elVvMkIyUnZsUVogZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sIDEzIE5vdiAyMDE3IDEwOjEyOjEwICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIGJsYWluZS5nbWFuZS5vcmcgKHVua25vd24gWzE5NS4xNTkuMTc2LjIyNl0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCAwMTkyQTVGRDEwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAxMyBOb3YgMjAxNyAxMDoxMjowOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBsaXN0IGJ5IGJsYWluZS5nbWFuZS5vcmcgd2l0aCBsb2NhbCAoRXhpbSA0Ljg0XzIpCgkoZW52ZWxvcGUtZnJvbSA8Z2NqdG1kLXR1cmJpbmUtbWF2ZW4tZGV2LTc1OUBtLmdtYW5lLm9yZz4pCglpZCAxZUVCaVktMDAwNWZrLVI1Cglmb3IgZGV2QG1hdmVuLmFwYWNoZS5vcmc7IE1vbiwgMTMgTm92IDIwMTcgMTE6MTE6NTAgKzAxMDAKWC1JbmplY3RlZC1WaWEtR21hbmU6IGh0dHA6Ly9nbWFuZS5vcmcvClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpGcm9tOiA9P2lzby04ODU5LTE/Yj9Tdlp5Wnc9PT89IFNjaGFpYmxlIDxqb2VyZy5zY2hhaWJsZUBicG0taW5zcGlyZS5jb20+ClN1YmplY3Q6IFJlOiBNYXZlbiA0LjAuMApEYXRlOiBNb24sIDEzIE5vdiAyMDE3IDEwOjExOjQzICswMDAwIChVVEMpCkxpbmVzOiAxMgpNZXNzYWdlLUlEOiA8b3VicjR2JDliOSQxQGJsYWluZS5nbWFuZS5vcmc+ClJlZmVyZW5jZXM6IAoJPENBK25Qbk13RUg5WjJteXA3MXVhU3JkY3lMSlJGckUtVnJ0MjAxOTFyZDAxaCtVZmhqd0BtYWlsLmdtYWlsLmNvbT4KCTxvdTEzbm8kNGpvJDFAYmxhaW5lLmdtYW5lLm9yZz4KCTxDQUNMRT03TVh4VV92b1VDZVhId0FWdTczN3NTeEZkYkM2c1JMV0M1WkFQNWNlR2VSUWdAbWFpbC5nbWFpbC5jb20+Ck1pbWUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0ClgtQ29tcGxhaW50cy1UbzogdXNlbmV0QGJsYWluZS5nbWFuZS5vcmcKVXNlci1BZ2VudDogUGFuLzAuMTQxIChUYXJ6YW4ncyBEZWF0aDsgMTY4YjE3OSBnaXQuZ25vbWUub3JnL3BhbjIpCgpIaSBSb21haW4sCgpBbSBUaHUsIDA5IE5vdiAyMDE3IDA5OjMyOjEyICswMTAwIHNjaHJpZWIgUm9tYWluIE1hbm5pLUJ1Y2F1OgoKPiBGWUkgb3BlbmVkIGh0dHBzOi8vZ2l0aHViLmNvbS9hcGFjaGUvbWF2ZW4vcHVsbC8xMzYgZm9yIHRoZSBNTkctNjMwMgo+IChndWVzcyB3ZSBjYW4gc3dpdGNoIGZyb20gdGhyZWFkIHRvIGRpc2N1c3MgaXQgbm93PykKCkhvdyBpcyB0aGlzIGlzc3VlIHJlbGF0ZWQgd2l0aCBteSB0b3BpYyByZWdhcmRpbmcgaW1wcm92ZWQgVHljaG8gc3VwcG9ydCAKaW4gTWF2ZW4gNC4wLjA/CgpSZWdhcmRzLApKw7ZyZwoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDAzNi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBGcmkgU2VwIDE1IDEwOjE3OjA1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDAzNi1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBBNjhCNTFBQjFECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IEZyaSwgMTUgU2VwIDIwMTcgMTA6MTc6MDUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA5MjI4MyBpbnZva2VkIGJ5IHVpZCA1MDApOyAxNSBTZXAgMjAxNyAxMDoxNzowNSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgOTIxODkgaW52b2tlZCBieSB1aWQgNTAwKTsgMTUgU2VwIDIwMTcgMTA6MTc6MDUgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA5MjE1MiBpbnZva2VkIGJ5IHVpZCA5OSk7IDE1IFNlcCAyMDE3IDEwOjE3OjAzIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgRnJpLCAxNSBTZXAgMjAxNyAxMDoxNzowMyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEUxNkJCMUEwNzVDCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgRnJpLCAxNSBTZXAgMjAxNyAxMDoxNzowMiArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuOTIzClgtU3BhbS1MZXZlbDogKioKWC1TcGFtLVN0YXR1czogTm8sIHNjb3JlPTIuOTIzIHRhZ2dlZF9hYm92ZT0tOTk5IHJlcXVpcmVkPTYuMzEKCXRlc3RzPVtES0lNX0FEU1BfQ1VTVE9NX01FRD0wLjAwMSwgRlJFRU1BSUxfRU5WRlJPTV9FTkRfRElHSVQ9MC4yNSwKCUtBTV9OVU1TVUJKRUNUPTAuNSwgTk1MX0FEU1BfQ1VTVE9NX01FRD0xLjIsIFNQRl9TT0ZURkFJTD0wLjk3Ml0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgbXJHVTBYN21fRWpUIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJRnJpLCAxNSBTZXAgMjAxNyAxMDoxNzowMSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlscmVsYXkxLXVzLXdlc3QuYXBhY2hlLm9yZyAobWFpbHJlbGF5MS11cy13ZXN0LmFwYWNoZS5vcmcgWzIwOS4xODguMTQuMTM5XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgODZEMTQ1RjE5RAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTUgU2VwIDIwMTcgMTA6MTc6MDEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChjdXN0LWFzZjIucG9uZWUuaW8gWzE2My4xNzIuMjIuMTg0XSkKCWJ5IG1haWxyZWxheTEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbHJlbGF5MS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgQUQzODVFMDZDNAoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IEZyaSwgMTUgU2VwIDIwMTcgMTA6MTc6MDAgKzAwMDAgKFVUQykKTUlNRS1WZXJzaW9uOiAxLjAKTWVzc2FnZS1JRDogPHBvbnktNTZhM2FkZWFmNjBjNDA1OTZmYjI4NGIyNDUyNDE0OGY2MDVlOGQyMy0yYjJkNTYzMzUzYWQ2ZDE2MjVhYTQ4ZDg0YjAzYjIxMzM0N2E0ZDk1QGRldi5tYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xClJlZmVyZW5jZXM6IDxwb255LTU2YTNhZGVhZjYwYzQwNTk2ZmIyODRiMjQ1MjQxNDhmNjA1ZThkMjMtNTJkNDFjZDQwZjIzNDNjODk1Mjg4MGU4Zjg0ZGEzZTgwZDMzNTUwOUBkZXYubWF2ZW4uYXBhY2hlLm9yZz4gPENBK25Qbk14eUcyTmVQWHBWcWF3ZTlqUj1pdEhFVDZVdWRuTjlDakhodj1vby1LQ3J4d0BtYWlsLmdtYWlsLmNvbT4gCkZyb206ICJkZWphbjI2MDlAZ21haWwuY29tIjxkZWphbjI2MDlAZ21haWwuY29tPgpJbi1SZXBseS1UbzogPHBvbnktNTZhM2FkZWFmNjBjNDA1OTZmYjI4NGIyNDUyNDE0OGY2MDVlOGQyMy01MmQ0MWNkNDBmMjM0M2M4OTUyODgwZThmODRkYTNlODBkMzM1NTA5QGRldi5tYXZlbi5hcGFjaGUub3JnPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCngtcG9ueW1haWwtc2VuZGVyOiA1NmEzYWRlYWY2MGM0MDU5NmZiMjg0YjI0NTI0MTQ4ZjYwNWU4ZDIzCkRhdGU6IEZyaSwgMTUgU2VwIDIwMTcgMTA6MTY6NTkgLTAwMDAKeC1wb255bWFpbC1hZ2VudDogUG9ueU1haWwgQ29tcG9zZXIvMC4yClRvOiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClgtTWFpbGVyOiBMdWFTb2NrZXQgMy4wLXJjMQoKSnVzdCB0byByZXBseSB0byBteSBzZWxmIGFuZCB0byBhZGQgKzEgKG5vbi1iaW5kaW5nKS4KCk15IHR3byBjZW50cyBvbiByZWdyZXNzaW9uIChodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MjgyKTogdGlja2V0IGlzIHN0aWxsIG9wZW4gYW5kIHdlICh0aGF0IGlzOiBIZXJ2w6kgQm91dGVteSBhbmQgbWUpIGFyZSBuYXJyb3dpbmcgdGhlIGdhcCAobm8gRVRBIGF0IHRoZSBtb21lbnQpLgoKSU1ITyB0aGlzIGlzc3VlIGlzIG5vdCBhIHNob3ctc3RvcHBlcjsgSSB2b2x1bnRlZXIgdG8gd3JpdGUgYSB3b3JrYXJvdW5kL21hbnVhbCAodGhhdCBjYW4gYmUgYWRkZWQgdG8gcmVsZWFzZSBub3RlcykuCgpSZWdhcmRzLCAKRGVqYW4gU3RvamFkaW5vdmnEhwoKT24gMjAxNy0wOS0xMSAxMzozNSwgImRlamFuMjYwOUBnbWFpbC5jb20iPGRlamFuMjYwOUBnbWFpbC5jb20+IHdyb3RlOiAKPiArMSAoY29uZGl0aW9uYWxseSkuCj4gCj4gVGVzdGVkIHZpYSBwcm9qZWN0IHRoYXQgaW5jbHVkZXMgZG96ZW4gb2YgcGx1Z2luczogMXN0IHRpZXIsIE1vam9IYXVzIGFuZCBmZXcgM3JkIHBhcnR5IHBsdWdpbnMgKHNvIHRvIHNheSkuCj4gCj4gRXZlcnl0aGluZyBsb29rcyBnb29kIHdpdGggb25lIG5vdGFibGUgcmVncmVzc2lvbjoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL01ORy02MjgyIENvbnNvbGUgb3V0cHV0IGhhcyBubyBjb2xvcnMgKHJlZ3Jlc3Npb24gaW4gTWF2ZW4gMy41LjEpCj4gCj4gUmVnYXJkcywgCj4gRGVqYW4KPiAKPiBPbiAyMDE3LTA5LTEwIDE3OjM5LCBTdGVwaGVuIENvbm5vbGx5IDxzdGVwaGVuLmFsYW4uY29ubm9sbHlAZ21haWwuY29tPiB3cm90ZTogCj4gPiBIaSwKPiA+IAo+ID4gV2Ugc29sdmVkIDI1IGlzc3VlczoKPiA+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9zZWN1cmUvUmVsZWFzZU5vdGUuanNwYT92ZXJzaW9uPTEyMzM4OTY0JnN0eWxlTmFtZT1UZXh0JnByb2plY3RJZD0xMjMxNjkyMgo+ID4gCj4gPiBUaGVyZSBhcmUgMzUwIGlzc3VlcyBsZWZ0IGluIEpJUkEgZm9yIE1hdmVuIGNvcmU6Cj4gPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9cHJvamVjdCUyMCUzRCUyME1ORyUyMEFORCUyMHJlc29sdXRpb24lMjAlM0QlMjBVbnJlc29sdmVkJTIwT1JERVIlMjBCWSUyMGR1ZSUyMEFTQyUyQyUyMHByaW9yaXR5JTIwREVTQyUyQyUyMGNyZWF0ZWQlMjBBU0MKPiA+IAo+ID4gU3RhZ2luZyByZXBvOgo+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2NC8KPiA+IAo+ID4gVGhlIGRpc3RyaWJ1dGFibGUgYmluYXJpZXMgYW5kIHNvdXJjZXMgY2FuIGJlIGZvdW5kIGhlcmU6Cj4gPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xLwo+ID4gCj4gPiBTcGVjaWZpY2FsbHkgdGhlIHppcCwgdGFyYmFsbCBhbmQgc291cmNlIGFyY2hpdmVzIGNhbiBiZSBmb3VuZCBoZXJlOgo+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtYmluLnppcAo+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtYmluLnRhci5nego+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnppcAo+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtc3JjLnRhci5nego+ID4gCj4gPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiA+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMudGFyLmd6IHNoYTE6IDllYjgyMWYxNTNjNzY2NzE5NGFhMTFjY2QwOTliN2JkMjA1OTU2MGQKPiA+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwOiBzaGExOiAxMjFkNTRiMDQ1MzgwYThhNDg5NWViMTM3OTcwYWI2OWU2OThlYjBlCj4gPiAKPiA+IEdpdCB0YWc6Cj4gPiBodHRwczovL2dpdC13aXAtdXMuYXBhY2hlLm9yZy9yZXBvcy9hc2Y/cD1tYXZlbi5naXQ7YT1jb21taXQ7aD0wOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzCj4gPiAKPiA+IFN0YWdpbmcgc2l0ZToKPiA+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9jb21wb25lbnRzL3JlZi8zLUxBVEVTVC8KPiA+IAo+ID4gVm90ZSBvcGVuIGZvciA3MiBob3Vycy4KPiA+IAo+ID4gWyBdICsxCj4gPiBbIF0gKzAKPiA+IFsgXSAtMQo+ID4gCj4gPiBUaGFua3MsCj4gPiAKPiA+IFN0ZXBoZW4uCj4gPiAKPiAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKPiAKPiAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyMzk2OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBNb24gU2VwIDExIDExOjM1OjA1IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyMzk2OS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBCQUMwQzE5NzczCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMTE6MzU6MDUgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA0MTQ5NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMSBTZXAgMjAxNyAxMTozNTowNSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDEzNzcgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgU2VwIDIwMTcgMTE6MzU6MDQgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA0MTM2MSBpbnZva2VkIGJ5IHVpZCA5OSk7IDExIFNlcCAyMDE3IDExOjM1OjAzIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgTW9uLCAxMSBTZXAgMjAxNyAxMTozNTowMyArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDdDMkQxREE0REMKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sIDExIFNlcCAyMDE3IDExOjM1OjAzICswMDAwIChVVEMpClgtVmlydXMtU2Nhbm5lZDogRGViaWFuIGFtYXZpc2QtbmV3IGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcKWC1TcGFtLUZsYWc6IE5PClgtU3BhbS1TY29yZTogMi45MjQKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi45MjQgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0RLSU1fQURTUF9DVVNUT01fTUVEPTAuMDAxLCBGUkVFTUFJTF9FTlZGUk9NX0VORF9ESUdJVD0wLjI1LAoJRlJPTV9NSVNTUEFDRUQ9MC4wMDEsIEtBTV9OVU1TVUJKRUNUPTAuNSwgTk1MX0FEU1BfQ1VTVE9NX01FRD0xLjIsCglTUEZfU09GVEZBSUw9MC45NzJdIGF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgT3hvTGhYNUZYLWY1IGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJTW9uLCAxMSBTZXAgMjAxNyAxMTozNTowMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlscmVsYXkxLXVzLXdlc3QuYXBhY2hlLm9yZyAobWFpbHJlbGF5MS11cy13ZXN0LmFwYWNoZS5vcmcgWzIwOS4xODguMTQuMTM5XSkKCWJ5IG14MS1sdy11cy5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbXgxLWx3LXVzLmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgNUM5ODk2MTI3MwoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMTE6MzU6MDIgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChjdXN0LWFzZjIucG9uZWUuaW8gWzE2My4xNzIuMjIuMTg0XSkKCWJ5IG1haWxyZWxheTEtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgbWFpbHJlbGF5MS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgN0Y4OTlFMDk5QQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IE1vbiwgMTEgU2VwIDIwMTcgMTE6MzU6MDEgKzAwMDAgKFVUQykKTUlNRS1WZXJzaW9uOiAxLjAKTWVzc2FnZS1JRDogPHBvbnktNTZhM2FkZWFmNjBjNDA1OTZmYjI4NGIyNDUyNDE0OGY2MDVlOGQyMy01MmQ0MWNkNDBmMjM0M2M4OTUyODgwZThmODRkYTNlODBkMzM1NTA5QGRldi5tYXZlbi5hcGFjaGUub3JnPgpTdWJqZWN0OiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIDMuNS4xClJlZmVyZW5jZXM6IDxDQStuUG5NeHlHMk5lUFhwVnFhd2U5alI9aXRIRVQ2VXVkbk45Q2pIaHY9b28tS0NyeHdAbWFpbC5nbWFpbC5jb20+IApGcm9tOiAiZGVqYW4yNjA5QGdtYWlsLmNvbSI8ZGVqYW4yNjA5QGdtYWlsLmNvbT4KSW4tUmVwbHktVG86IDxDQStuUG5NeHlHMk5lUFhwVnFhd2U5alI9aXRIRVQ2VXVkbk45Q2pIaHY9b28tS0NyeHdAbWFpbC5nbWFpbC5jb20+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKeC1wb255bWFpbC1zZW5kZXI6IDU2YTNhZGVhZjYwYzQwNTk2ZmIyODRiMjQ1MjQxNDhmNjA1ZThkMjMKRGF0ZTogTW9uLCAxMSBTZXAgMjAxNyAxMTozNTowMCAtMDAwMAp4LXBvbnltYWlsLWFnZW50OiBQb255TWFpbCBDb21wb3Nlci8wLjIKVG86IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KWC1NYWlsZXI6IEx1YVNvY2tldCAzLjAtcmMxCgorMSAoY29uZGl0aW9uYWxseSkuCgpUZXN0ZWQgdmlhIHByb2plY3QgdGhhdCBpbmNsdWRlcyBkb3plbiBvZiBwbHVnaW5zOiAxc3QgdGllciwgTW9qb0hhdXMgYW5kIGZldyAzcmQgcGFydHkgcGx1Z2lucyAoc28gdG8gc2F5KS4KCkV2ZXJ5dGhpbmcgbG9va3MgZ29vZCB3aXRoIG9uZSBub3RhYmxlIHJlZ3Jlc3Npb246Cmh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9icm93c2UvTU5HLTYyODIgQ29uc29sZSBvdXRwdXQgaGFzIG5vIGNvbG9ycyAocmVncmVzc2lvbiBpbiBNYXZlbiAzLjUuMSkKClJlZ2FyZHMsIApEZWphbgoKT24gMjAxNy0wOS0xMCAxNzozOSwgU3RlcGhlbiBDb25ub2xseSA8c3RlcGhlbi5hbGFuLmNvbm5vbGx5QGdtYWlsLmNvbT4gd3JvdGU6IAo+IEhpLAo+IAo+IFdlIHNvbHZlZCAyNSBpc3N1ZXM6Cj4gaHR0cHM6Ly9pc3N1ZXMuYXBhY2hlLm9yZy9qaXJhL3NlY3VyZS9SZWxlYXNlTm90ZS5qc3BhP3ZlcnNpb249MTIzMzg5NjQmc3R5bGVOYW1lPVRleHQmcHJvamVjdElkPTEyMzE2OTIyCj4gCj4gVGhlcmUgYXJlIDM1MCBpc3N1ZXMgbGVmdCBpbiBKSVJBIGZvciBNYXZlbiBjb3JlOgo+IGh0dHBzOi8vaXNzdWVzLmFwYWNoZS5vcmcvamlyYS9pc3N1ZXMvP2pxbD1wcm9qZWN0JTIwJTNEJTIwTU5HJTIwQU5EJTIwcmVzb2x1dGlvbiUyMCUzRCUyMFVucmVzb2x2ZWQlMjBPUkRFUiUyMEJZJTIwZHVlJTIwQVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwY3JlYXRlZCUyMEFTQwo+IAo+IFN0YWdpbmcgcmVwbzoKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY0Lwo+IAo+IFRoZSBkaXN0cmlidXRhYmxlIGJpbmFyaWVzIGFuZCBzb3VyY2VzIGNhbiBiZSBmb3VuZCBoZXJlOgo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvCj4gCj4gU3BlY2lmaWNhbGx5IHRoZSB6aXAsIHRhcmJhbGwgYW5kIHNvdXJjZSBhcmNoaXZlcyBjYW4gYmUgZm91bmQgaGVyZToKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1iaW4uemlwCj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM2NC9vcmcvYXBhY2hlL21hdmVuL2FwYWNoZS1tYXZlbi8zLjUuMS9hcGFjaGUtbWF2ZW4tMy41LjEtYmluLnRhci5nego+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNjQvb3JnL2FwYWNoZS9tYXZlbi9hcGFjaGUtbWF2ZW4vMy41LjEvYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy56aXAKPiBodHRwczovL3JlcG9zaXRvcnkuYXBhY2hlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzY0L29yZy9hcGFjaGUvbWF2ZW4vYXBhY2hlLW1hdmVuLzMuNS4xL2FwYWNoZS1tYXZlbi0zLjUuMS1zcmMudGFyLmd6Cj4gCj4gU291cmNlIHJlbGVhc2UgY2hlY2tzdW0ocyk6Cj4gYXBhY2hlLW1hdmVuLTMuNS4xLXNyYy50YXIuZ3ogc2hhMTogOWViODIxZjE1M2M3NjY3MTk0YWExMWNjZDA5OWI3YmQyMDU5NTYwZAo+IGFwYWNoZS1tYXZlbi0zLjUuMS1zcmMuemlwOiBzaGExOiAxMjFkNTRiMDQ1MzgwYThhNDg5NWViMTM3OTcwYWI2OWU2OThlYjBlCj4gCj4gR2l0IHRhZzoKPiBodHRwczovL2dpdC13aXAtdXMuYXBhY2hlLm9yZy9yZXBvcy9hc2Y/cD1tYXZlbi5naXQ7YT1jb21taXQ7aD0wOTRlNGUzMWE1YWY1NWJiMTdiZTg3Njc1ZGE0MWQ5YWVjYTA2MmYzCj4gCj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9jb21wb25lbnRzL3JlZi8zLUxBVEVTVC8KPiAKPiBWb3RlIG9wZW4gZm9yIDcyIGhvdXJzLgo+IAo+IFsgXSArMQo+IFsgXSArMAo+IFsgXSAtMQo+IAo+IFRoYW5rcywKPiAKPiBTdGVwaGVuLgo+IAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0MTI5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIE1vbiBPY3QgIDIgMTM6MjI6MDIgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0MTI5LWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDU0RDBDMTA0QkYKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgTW9uLCAgMiBPY3QgMjAxNyAxMzoyMjowMiArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDI3ODIwIGludm9rZWQgYnkgdWlkIDUwMCk7IDIgT2N0IDIwMTcgMTM6MjI6MDIgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDI3NzUxIGludm9rZWQgYnkgdWlkIDUwMCk7IDIgT2N0IDIwMTcgMTM6MjI6MDEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAyNzc0MCBpbnZva2VkIGJ5IHVpZCA5OSk7IDIgT2N0IDIwMTcgMTM6MjI6MDEgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBNb24sIDAyIE9jdCAyMDE3IDEzOjIyOjAxICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMy11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgRThFNDUxOTUyQzQKCWZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OyBNb24sICAyIE9jdCAyMDE3IDEzOjIyOjAwICswMDAwIChVVEMpClgtUXVhcmFudGluZS1JRDogPGowZ1l0UVFnWHlueT4KWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLUFtYXZpcy1BbGVydDogQkFEIEhFQURFUiBTRUNUSU9OLCBOb24tZW5jb2RlZCA4LWJpdCBkYXRhIChjaGFyIEM0IGhleCk6CglGcm9tOiAiRGVqYW4gU3RvamFkaW5vdmlcMzAzXDIwNFwzMDJcMjA3IjxkZWphbjI2MDlAZ21bLi4uXQpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjkyMwpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjkyMyB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9BRFNQX0NVU1RPTV9NRUQ9MC4wMDEsIEZSRUVNQUlMX0VOVkZST01fRU5EX0RJR0lUPTAuMjUsCglLQU1fTlVNU1VCSkVDVD0wLjUsIE5NTF9BRFNQX0NVU1RPTV9NRUQ9MS4yLCBTUEZfU09GVEZBSUw9MC45NzJdCglhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LWV1LmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBqMGdZdFFRZ1h5bnkgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglNb24sICAyIE9jdCAyMDE3IDEzOjIxOjU5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWxyZWxheTEtdXMtd2VzdC5hcGFjaGUub3JnIChtYWlscmVsYXkxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMjA5LjE4OC4xNC4xMzldKQoJYnkgbXgxLWx3LWV1LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctZXUuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBCQ0UxQjVGQzgwCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAgMiBPY3QgMjAxNyAxMzoyMTo1OCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGN1c3QtYXNmMi5wb25lZS5pbyBbMTYzLjE3Mi4yMi4xODRdKQoJYnkgbWFpbHJlbGF5MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlscmVsYXkxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCA4NkNBQUUwNkJCCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgTW9uLCAgMiBPY3QgMjAxNyAxMzoyMTo1NyArMDAwMCAoVVRDKQpNSU1FLVZlcnNpb246IDEuMApNZXNzYWdlLUlEOiA8cG9ueS01NmEzYWRlYWY2MGM0MDU5NmZiMjg0YjI0NTI0MTQ4ZjYwNWU4ZDIzLTg1YTcwYmU3NTQ3NTY0ZGM4ZjljZTZmNzRmY2FhMDM3ZDUzOWFmNzRAZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gV0FSIFBsdWdpbiB2ZXJzaW9uIDMuMi4wClJlZmVyZW5jZXM6IDxkMzBlYTQ3Ni0wNzk0LWYwOTYtY2U2MS01ZmI0MWIwM2I5NmFAZ214LmRlPiAKRnJvbTogIkRlamFuIFN0b2phZGlub3ZpxIciPGRlamFuMjYwOUBnbWFpbC5jb20+CkluLVJlcGx5LVRvOiA8ZDMwZWE0NzYtMDc5NC1mMDk2LWNlNjEtNWZiNDFiMDNiOTZhQGdteC5kZT4KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJpc28tODg1OS0xIgp4LXBvbnltYWlsLXNlbmRlcjogNTZhM2FkZWFmNjBjNDA1OTZmYjI4NGIyNDUyNDE0OGY2MDVlOGQyMwpEYXRlOiBNb24sIDAyIE9jdCAyMDE3IDEzOjIxOjU2IC0wMDAwCngtcG9ueW1haWwtYWdlbnQ6IFBvbnlNYWlsIENvbXBvc2VyLzAuMgpUbzogPGRldkBtYXZlbi5hcGFjaGUub3JnPgpYLU1haWxlcjogTHVhU29ja2V0IDMuMC1yYzEKCisxIChub24tYmluZGluZykuCgpUZXN0ZWQgYXMgdXN1YWwgKGJpZyBwcm9qZWN0IHdpdGggZG96ZW4gb2YgcGx1Z2lucykuCgpSZWdhcmRzLCAKRGVqYW4gCgpPbiAyMDE3LTA5LTMwIDE3OjU1LCBLYXJsIEhlaW56IE1hcmJhaXNlIDxraG1hcmJhaXNlQGdteC5kZT4gd3JvdGU6IAo+IEhpLAo+IAo+IFdlIHNvbHZlZCAzIGlzc3VlczoKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlLmpzcGE/cHJvamVjdElkPTEyMzE4MTIxJnZlcnNpb249MTIzNDEzNzIKPiAKPiBUaGVyZSBhcmUgc3RpbGwgYSBjb3VwbGUgb2YgaXNzdWVzIGxlZnQgaW4gSklSQToKPiBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvaXNzdWVzLz9qcWw9cHJvamVjdCUyMCUzRCUyME1XQVIlMjBBTkQlMjByZXNvbHV0aW9uJTIwJTNEJTIwVW5yZXNvbHZlZCUyME9SREVSJTIwQlklMjBrZXklMjBERVNDJTJDJTIwcHJpb3JpdHklMjBERVNDJTJDJTIwdXBkYXRlZCUyMERFU0MKPiAKPiBTdGFnaW5nIHJlcG86Cj4gaHR0cHM6Ly9yZXBvc2l0b3J5LmFwYWNoZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvbWF2ZW4tMTM3MQo+IGh0dHBzOi8vcmVwb3NpdG9yeS5hcGFjaGUub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzNzEvb3JnL2FwYWNoZS9tYXZlbi9wbHVnaW5zL21hdmVuLXdhci1wbHVnaW4vMy4yLjAvbWF2ZW4td2FyLXBsdWdpbi0zLjIuMC1zb3VyY2UtcmVsZWFzZS56aXAKPiAKPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiBtYXZlbi13YXItcGx1Z2luLTMuMi4wLXNvdXJjZS1yZWxlYXNlLnppcCBzaGExOiAKPiA1YzY2MWY0NTU0NjE2MTQ3NDkxMDM2ZGZhYzY4OWJhOWRiOTBjZWMyCj4gCj4gCj4gU3RhZ2luZyBzaXRlOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9wbHVnaW5zLWFyY2hpdmVzL21hdmVuLXdhci1wbHVnaW4tTEFURVNULwo+IAo+IEd1aWRlIHRvIHRlc3Rpbmcgc3RhZ2VkIHJlbGVhc2VzOgo+IGh0dHBzOi8vbWF2ZW4uYXBhY2hlLm9yZy9ndWlkZXMvZGV2ZWxvcG1lbnQvZ3VpZGUtdGVzdGluZy1yZWxlYXNlcy5odG1sCj4gCj4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycy4KPiAKPiBbIF0gKzEKPiBbIF0gKzAKPiBbIF0gLTEKPiAKPiAKPiBLaW5kIHJlZ2FyZHMKPiBLYXJsIEhlaW56IE1hcmJhaXNlCj4gCj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCj4gCj4gCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQxNDYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgVGh1IE9jdCAgNSAxMTo0NToyOCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQxNDYtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgMzEzQTIxMDQ1RAoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBUaHUsICA1IE9jdCAyMDE3IDExOjQ1OjI4ICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgNDU4MzIgaW52b2tlZCBieSB1aWQgNTAwKTsgNSBPY3QgMjAxNyAxMTo0NToyNyAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNDU3NDIgaW52b2tlZCBieSB1aWQgNTAwKTsgNSBPY3QgMjAxNyAxMTo0NToyNyAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDQ1NzMxIGludm9rZWQgYnkgdWlkIDk5KTsgNSBPY3QgMjAxNyAxMTo0NToyNyAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFRodSwgMDUgT2N0IDIwMTcgMTE6NDU6MjcgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBEMkEyQTE4RDA0RgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFRodSwgIDUgT2N0IDIwMTcgMTE6NDU6MjYgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjQyMwpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjQyMyB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9BRFNQX0NVU1RPTV9NRUQ9MC4wMDEsIEZSRUVNQUlMX0VOVkZST01fRU5EX0RJR0lUPTAuMjUsCglOTUxfQURTUF9DVVNUT01fTUVEPTEuMiwgU1BGX1NPRlRGQUlMPTAuOTcyXSBhdXRvbGVhcm49ZGlzYWJsZWQKUmVjZWl2ZWQ6IGZyb20gbXgxLWx3LXVzLmFwYWNoZS5vcmcgKFsxMC40MC4wLjhdKQoJYnkgbG9jYWxob3N0IChzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIFsxMC40MC4wLjEwXSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBtSzE4Q3lDMFNfbkcgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUaHUsICA1IE9jdCAyMDE3IDExOjQ1OjI2ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWxyZWxheTEtdXMtd2VzdC5hcGFjaGUub3JnIChtYWlscmVsYXkxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMjA5LjE4OC4xNC4xMzldKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBFMDk5MjVGQkVFCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAgNSBPY3QgMjAxNyAxMTo0NToyNSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGN1c3QtYXNmMi5wb25lZS5pbyBbMTYzLjE3Mi4yMi4xODRdKQoJYnkgbWFpbHJlbGF5MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlscmVsYXkxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAwMUJDN0UwMDQxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAgNSBPY3QgMjAxNyAxMTo0NToyNCArMDAwMCAoVVRDKQpNSU1FLVZlcnNpb246IDEuMApNZXNzYWdlLUlEOiA8cG9ueS01NmEzYWRlYWY2MGM0MDU5NmZiMjg0YjI0NTI0MTQ4ZjYwNWU4ZDIzLWFkM2M1MDYyNTMyYjdiYWM0MDlmMTE3NWNhYTQ4ZGFjZTMzZDAzZWJAZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBtaWdyYXRpbmcgc29tZSBjb2RlIHRvIEdpdApSZWZlcmVuY2VzOiA8MzAwNjQ3MS5HclNGalNKakdYQGdpZ2E+IApGcm9tOiAiRGVqYW4gU3RvamFkaW5vdmljIjxkZWphbjI2MDlAZ21haWwuY29tPgpJbi1SZXBseS1UbzogPDMwMDY0NzEuR3JTRmpTSmpHWEBnaWdhPgpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9Imlzby04ODU5LTEiCngtcG9ueW1haWwtc2VuZGVyOiA1NmEzYWRlYWY2MGM0MDU5NmZiMjg0YjI0NTI0MTQ4ZjYwNWU4ZDIzCkRhdGU6IFRodSwgMDUgT2N0IDIwMTcgMTE6NDU6MjMgLTAwMDAKeC1wb255bWFpbC1hZ2VudDogUG9ueU1haWwgQ29tcG9zZXIvMC4yClRvOiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+ClgtTWFpbGVyOiBMdWFTb2NrZXQgMy4wLXJjMQoKQ291bnQgbWUgaW4gKGZvciBib3RoIGFjdHVhbCBtaWdyYXRpb24gYW5kIHJlbGF0ZWQgdGFza3MpLiAKCk15IHdlYXBvbiBvZiBjaG9pY2UgZm9yIFNWTiAtLT4+R0lUIHdvdWxkIGJlOiBodHRwczovL2dpdGh1Yi5jb20vbmlydmRydW0vc3ZuMmdpdCAoSSBtYW5hZ2VkIHRvIG1vdmUgZG96ZW4gb2YgcmVwb3MgZmV3IHllYXJzIGFnbykuCgpSZWdhcmRzLCAKRGVqYW4KCk9uIDIwMTctMTAtMDQgMDE6NDgsIEhlcnbDqSBCT1VURU1ZIDxoZXJ2ZS5ib3V0ZW15QGZyZWUuZnI+IHdyb3RlOiAKPiBJJ2QgbGlrZSB0byB3b3JrIG9uIFBsdWdpbiBUb29scyB3aXRoIGdpdAo+IAo+IFdoaWxlIGF0IGl0LCBsb29raW5nIGF0IG91ciBwbGFuIFsxXSwgSSBzZWUgd2UgaGF2ZSBhIGZldyBvdGhlciBjb21wb25lbnRzIAo+IHRoYXQgYXJlIHJlYWR5IHRvIG1pZ3JhdGU6Cj4gLSBEb3hpYSBjb3JlCj4gLSBEb3hpYSBTaXRldG9vbHMKPiAtIEVuZm9yY2VyCj4gLSBKeHIKPiAtIFBsdWdpbiBUb29scwo+IC0gUmVsZWFzZQo+IAo+IFdoYXQgY2hlY2tzIGFyZSByZXF1aXJlZCBiZWZvcmUgc3dpdGNoaW5nIHRoZXNlIDYgY29tcG9uZW50cz8KPiBBbnkgdm9sdW50ZWVyPwo+IAo+IFJlZ2FyZHMsCj4gCj4gSGVydsOpCj4gCj4gWzFdIGh0dHBzOi8vY3dpa2kuYXBhY2hlLm9yZy9jb25mbHVlbmNlL2Rpc3BsYXkvTUFWRU4vR2l0K01pZ3JhdGlvbgo+IAo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCj4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwo+IAo+IAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnCkZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmcKCgpGcm9tIGRldi1yZXR1cm4tMTI0NzczLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmcgIFR1ZSBEZWMgMTIgMjE6NTY6MjAgMjAxNwpSZXR1cm4tUGF0aDogPGRldi1yZXR1cm4tMTI0NzczLWFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZT1tYXZlbi5hcGFjaGUub3JnQG1hdmVuLmFwYWNoZS5vcmc+ClgtT3JpZ2luYWwtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZwpSZWNlaXZlZDogZnJvbSBtYWlsLmFwYWNoZS5vcmcgKGhlcm1lcy5hcGFjaGUub3JnIFsxNDAuMjExLjExLjNdKQoJYnkgbWlub3RhdXIuYXBhY2hlLm9yZyAoUG9zdGZpeCkgd2l0aCBTTVRQIGlkIDZFMTFFMTcxQ0YKCWZvciA8YXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnPjsgVHVlLCAxMiBEZWMgMjAxNyAyMTo1NjoyMCArMDAwMCAoVVRDKQpSZWNlaXZlZDogKHFtYWlsIDY5MzgyIGludm9rZWQgYnkgdWlkIDUwMCk7IDEyIERlYyAyMDE3IDIxOjU2OjIwIC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2OTMxNSBpbnZva2VkIGJ5IHVpZCA1MDApOyAxMiBEZWMgMjAxNyAyMTo1NjoyMCAtMDAwMApNYWlsaW5nLUxpc3Q6IGNvbnRhY3QgZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZzsgcnVuIGJ5IGV6bWxtClByZWNlZGVuY2U6IGJ1bGsKTGlzdC1VbnN1YnNjcmliZTogPG1haWx0bzpkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1IZWxwOiA8bWFpbHRvOmRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtUG9zdDogPG1haWx0bzpkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1JZDogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldi5tYXZlbi5hcGFjaGUub3JnPgpSZXBseS1UbzogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpEZWxpdmVyZWQtVG86IG1haWxpbmcgbGlzdCBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDY5Mjk5IGludm9rZWQgYnkgdWlkIDk5KTsgMTIgRGVjIDIwMTcgMjE6NTY6MjAgLTAwMDAKUmVjZWl2ZWQ6IGZyb20gcG5hcC11cy13ZXN0LWdlbmVyaWMtbmF0LmFwYWNoZS5vcmcgKEhFTE8gc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZykgKDIwOS4xODguMTQuMTQyKQogICAgYnkgYXBhY2hlLm9yZyAocXBzbXRwZC8wLjI5KSB3aXRoIEVTTVRQOyBUdWUsIDEyIERlYyAyMDE3IDIxOjU2OjIwICswMDAwClJlY2VpdmVkOiBmcm9tIGxvY2FsaG9zdCAobG9jYWxob3N0IFsxMjcuMC4wLjFdKQoJYnkgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpIHdpdGggRVNNVFAgaWQgOTc2QjdDNTEwNgoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFR1ZSwgMTIgRGVjIDIwMTcgMjE6NTY6MTkgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjEwOQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjEwOSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bRlJPTV9NSVNTUF9FSF9NQVRDSD0wLjEyLCBTUEZfUEFTUz0tMC4wMDEsCglUX1JQX01BVENIRVNfUkNWRD0tMC4wMV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC43XSkgKGFtYXZpc2QtbmV3LCBwb3J0IDEwMDI0KQoJd2l0aCBFU01UUCBpZCBESTZPQWhuekNrVTkgZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47CglUdWUsIDEyIERlYyAyMDE3IDIxOjU2OjE5ICswMDAwIChVVEMpClJlY2VpdmVkOiBmcm9tIG1haWxyZWxheTEtdXMtd2VzdC5hcGFjaGUub3JnIChtYWlscmVsYXkxLXVzLXdlc3QuYXBhY2hlLm9yZyBbMjA5LjE4OC4xNC4xMzldKQoJYnkgbXgxLWx3LXVzLmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBteDEtbHctdXMuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBBNEEwNzVGNUQyCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxMiBEZWMgMjAxNyAyMTo1NjoxOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGN1c3QtYXNmMi5wb25lZS5pbyBbMTYzLjE3Mi4yMi4xODRdKQoJYnkgbWFpbHJlbGF5MS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBtYWlscmVsYXkxLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBCOEU1MkUwQzI1Cglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVHVlLCAxMiBEZWMgMjAxNyAyMTo1NjoxNyArMDAwMCAoVVRDKQpNSU1FLVZlcnNpb246IDEuMApNZXNzYWdlLUlEOiA8cG9ueS1mMTJhMzgxMGMxMjMwYTUxODNlNGQ0YjA5MDU3MTY1NjQ2MmQxNzFlLWRiMzE0OTRlNWI0ZDkyMTQwNzMwMzUyZDcyYzI2MzYyZjIzYWUyZmRAZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClN1YmplY3Q6IFJlOiBHaXRib3ggcHVsbCByZXF1ZXN0cyAKUmVmZXJlbmNlczogPDcyMUU4QzIyLTA3Q0YtNDRGMC1CNDA1LTZBRDZEMEM5MjRGMUBob250b24ub3JnPiAKRnJvbTogIkhlcnZlIEJvdXRlbXkiPGhib3V0ZW15QGFwYWNoZS5vcmc+CkluLVJlcGx5LVRvOiA8NzIxRThDMjItMDdDRi00NEYwLUI0MDUtNkFENkQwQzkyNEYxQGhvbnRvbi5vcmc+CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iaXNvLTg4NTktMSIKeC1wb255bWFpbC1zZW5kZXI6IGYxMmEzODEwYzEyMzBhNTE4M2U0ZDRiMDkwNTcxNjU2NDYyZDE3MWUKRGF0ZTogVHVlLCAxMiBEZWMgMjAxNyAyMTo1NjoxNiAtMDAwMAp4LXBvbnltYWlsLWFnZW50OiBQb255TWFpbCBDb21wb3Nlci8wLjIKVG86IDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KWC1NYWlsZXI6IEx1YVNvY2tldCAzLjAtcmMxCgoKCk9uIDIwMTctMTItMTIgMDc6MTEsIENoYXMgSG9udG9uIDxjaGFzQGhvbnRvbi5vcmc+IHdyb3RlOiAKPiBQdWxsIHJlcXVlc3RzIGZvciBuZXcgcHJvamVjdCBhcmUgbm90IHNlbnQgdG8gdGhlIGRldiBtYWlsaW5nIGxpc3QgKGUuZy4KPiBodHRwczovL2dpdGh1Yi5jb20vYXBhY2hlL21hdmVuLWRlcGxveS1wbHVnaW4vcHVsbC8xKS4gQXJlIHRoZXNlIFBScwo+IHN1cHBvc2VkIHRvIGJlIGZvcndhcmRlZCB0byBzb21lIG1haWxpbmcgbGlzdD8KdGhleSBhcmUgc2VudCB0byBpc3N1ZXNAbWF2ZW4uYXBhY2hlLm9yZywgbGlrZSBKaXJhIGlzc3VlcyBbMV0KCmFzIHRvbGQgb24gdGhlIG1haWxpbmcgbGlzdCwgdGhlIGNvbmYgd2FzIGZpeGVkIDQgZGF5cyBhZ28gdGhyb3VnaCBJTkZSQS0xNTM5NiAKWzJdCgpSZWdhcmRzLAoKSGVydsOpCgo+IEFyZSB0aGVzZSBQUnMgc3VwcG9zZWQgdG8gYmUgYXV0b21hdGljYWxseSBidWlsdD8KPiAKPiBUaGFua3MsCj4gQ2hhcwoKWzFdIGh0dHBzOi8vbGlzdHMuYXBhY2hlLm9yZy9saXN0Lmh0bWw/aXNzdWVzQG1hdmVuLmFwYWNoZS5vcmcKClsyXSBodHRwczovL2lzc3Vlcy5hcGFjaGUub3JnL2ppcmEvYnJvd3NlL0lORlJBLTE1Mzk2CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmcKRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZwoKCkZyb20gZGV2LXJldHVybi0xMjQyMTUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIE9jdCAxMSAxNTo0OTo1MCAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQyMTUtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgNjZGMjExMEZEQgoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDExIE9jdCAyMDE3IDE1OjQ5OjUwICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgMzIwOTIgaW52b2tlZCBieSB1aWQgNTAwKTsgMTEgT2N0IDIwMTcgMTU6NDk6NTAgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDMyMDIxIGludm9rZWQgYnkgdWlkIDUwMCk7IDExIE9jdCAyMDE3IDE1OjQ5OjUwIC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMzIwMTAgaW52b2tlZCBieSB1aWQgOTkpOyAxMSBPY3QgMjAxNyAxNTo0OTo0OSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMTEgT2N0IDIwMTcgMTU6NDk6NDkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDMtdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCAwRUZBODE5NjE5QQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTEgT2N0IDIwMTcgMTU6NDk6NDkgKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAwLjYwMQpYLVNwYW0tTGV2ZWw6ClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0wLjYwMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bRlJFRU1BSUxfRU5WRlJPTV9FTkRfRElHSVQ9MC4yNSwgRlJPTV9TVEFSVFNfV0lUSF9OVU1TPTAuNTUzLAoJUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywgUkNWRF9JTl9TT1JCU19TUEFNPTAuNSwKCVJQX01BVENIRVNfUkNWRD0tMC4wMDEsIFNQRl9QQVNTPS0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkClJlY2VpdmVkOiBmcm9tIG14MS1sdy11cy5hcGFjaGUub3JnIChbMTAuNDAuMC44XSkKCWJ5IGxvY2FsaG9zdCAoc3BhbWQzLXVzLXdlc3QuYXBhY2hlLm9yZyBbMTAuNDAuMC4xMF0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgOEFxTC1oTFp5S1ZJIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJV2VkLCAxMSBPY3QgMjAxNyAxNTo0OTo0NyArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNy4yMF0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCBFMzk5RTYwREYyCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMSBPY3QgMjAxNyAxNTo0OTo0NiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBbODAuMTQ2LjIyOC44Nl0gYnkgM2MtYXBwLWdteC1iczM0LnNlcnZlci5sYW4gKHZpYSBIVFRQKTsKIFdlZCwgMTEgT2N0IDIwMTcgMTc6NDk6NDAgKzAyMDAKTUlNRS1WZXJzaW9uOiAxLjAKTWVzc2FnZS1JRDogPHRyaW5pdHktMjk0M2I5YTMtNDY4MC00ZDQzLWFlMmEtYmE3ODQwMDA3YzdlLTE1MDc3MzY5ODAzMzRAM2MtYXBwLWdteC1iczM0PgpGcm9tOiAiTWljaGFlbCBPc2lwb3YiIDwxOTgzLTAxLTA2QGdteC5uZXQ+ClRvOiBkZXZAbWF2ZW4uYXBhY2hlLm9yZwpTdWJqZWN0OiBSZTogQWxsb3cgY3VzdG9tIHVwZGF0ZVBvbGljeQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKRGF0ZTogV2VkLCAxMSBPY3QgMjAxNyAxNzo0OTo0MCArMDIwMApJbXBvcnRhbmNlOiBub3JtYWwKU2Vuc2l0aXZpdHk6IE5vcm1hbApJbi1SZXBseS1UbzogPENBR2ZnX2VFcXd2PWUwVXlkRWt0LV81c3NuRUZ5MkhhaldxbWdmNEtfK0MwMnhZQmZZQUBtYWlsLmdtYWlsLmNvbT4KUmVmZXJlbmNlczogPENBR2ZnX2VFcXd2PWUwVXlkRWt0LV81c3NuRUZ5MkhhaldxbWdmNEtfK0MwMnhZQmZZQUBtYWlsLmdtYWlsLmNvbT4KWC1VSS1NZXNzYWdlLVR5cGU6IG1haWwKWC1Qcmlvcml0eTogMwpYLVByb3ZhZ3MtSUQ6IFYwMzpLMTpoaUJtdEs5Z3EzTE40UEFYNXUvcCtOWkYzcUJaQlNhVGkzODN6clU4dmYrCiBoaTB6SVNVZk9zQXQ5ZncvT29yOXdpYTFLVkYvaDVIVHJianlkS3FxZ1pYaWVUUGRHSAogbFo3eGFQM0lreDduWUtzMFJ5MUNTNU9FSHMvU3lXSEt2aWRMZ2NWOEwrL0NNR1c0MXQKIGdUcFAzODNuZ3MzVDFINzFkRUNMWTRiS3VSdHJ5M1UvamlBcFJSYWRTU0FtaSsyNlYrCiB1ZmYzbHVSemQydG1vQmdoSHpuUXRGcnkwSUJLeUZLbmJEamIwbThBZXdZUUF3SzdyQwogZ1JvRmc0MTVjOUJrMXd5VlR3RTQxWW5oV1BLTng1T3kzbFd5M2hNTUIwaTBoZ213cW0gUWFKQXdrPQpYLVVJLU91dC1GaWx0ZXJyZXN1bHRzOiBub3RqdW5rOjE7VjAxOkswOjhJMjhEZExTKzhrPTpiYm1XNTJ4NEdJL2NkZDVqNE9DejRZCiBLSTUxaFkwMFFCVmFBSVMrazlzMENJcVVuOUM5NHZ4cWgxQ2hOd1RVVzRTOUU1SDd3c3l5emdyUFFtQXpyZjVpejZnWGNtN2RJCiB0QzZobnBnWjFSK0dyVkk0Z1lmRW9CelRqWlNRb0JEejdCNG5ydU1OVUZmR0VhakZIZFlaVDJxYUJsOTdnWVRmSzdtazFMdDVrCiBtYlpMdkN3WVhnako5b3h0M1BaaEFkdzVXT0dMNW0wQmc4a3ZJY2FhUWVoRld4alhtTUhXTGQ0ditKN1dQYnNORVlKWVgraURpCiBmUlZoZFVtSnk2S1U4WVJ6bTZiVWUzKzZvWnNiUVZWUDZFUVE3Nkd1cWZpMzZ3Szdhdnk4dDlOTGRtTDA3cXZHUnV2c2haVUtwCiBicWw4bXVvQy9pMm85RjZzSDF6UTZzMVhkTFRwdnFuUmFYcWhHeDN1dk90MUdMcDhGT0laV2h0NjRQYzN3eXJoRVVYSVlhaEJxCiBNNStWU00yTUY5ZDFrYVNHdEQ5UGRrMEZlSzVrVkNnZUxnVWZJWE15VVpoMFhxbnI3bVhBNXZqazJ6TU05WHJQbnBaSmRlaFlHCiAvSGh0dXJXS3QxWmh1ZFlCYUhaQmlZRFNiYloxNnd3Wll2c01TTldXMHF1K0lWOWFQN0hLCgoKPiBJIGp1c3Qgd2FudGVkIHRvIGdldCB0aG91Z2h0cyBvbiBhIHBvc3NpYmxlIG5ldyBmZWF0dXJlLiBSaWdodCBub3csIG15Cj4gY29tcGFueSBoYXMgdGhvdXNhbmRzIG9mIE1hdmVuIG1vZHVsZXMgdGhhdCBhcmUgYWxsIG9uIHNuYXBzaG90cyB3aXRoIGFuCj4gdXBkYXRlUG9saWN5IG9mICJhbHdheXMiIChiYXNpY2FsbHkgZXZlcnlvbmUgZ2V0cyB0aGUgbGF0ZXN0IGJ1aWxkIG9mCj4gZXZlcnl0aGluZywga2luZCBvZiBsaWtlIGEgcG9vciBtYW4ncyBtb25vcmVwbykuCgpXaHkgImFsd2F5cyIgdGhlbiBhbmQgbm90IDUgbWludXRlcyBvciBzbz8KCk1pY2hhZWwKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDgwOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBUaHUgRGVjIDIxIDA5OjQwOjMxIDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDgwOS1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCBCNzgzRjEwRkRBCglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFRodSwgMjEgRGVjIDIwMTcgMDk6NDA6MzEgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCAxNTQ4NSBpbnZva2VkIGJ5IHVpZCA1MDApOyAyMSBEZWMgMjAxNyAwOTo0MDozMSAtMDAwMApEZWxpdmVyZWQtVG86IGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgMTU0MTEgaW52b2tlZCBieSB1aWQgNTAwKTsgMjEgRGVjIDIwMTcgMDk6NDA6MzEgLTAwMDAKTWFpbGluZy1MaXN0OiBjb250YWN0IGRldi1oZWxwQG1hdmVuLmFwYWNoZS5vcmc7IHJ1biBieSBlem1sbQpQcmVjZWRlbmNlOiBidWxrCkxpc3QtVW5zdWJzY3JpYmU6IDxtYWlsdG86ZGV2LXVuc3Vic2NyaWJlQG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSGVscDogPG1haWx0bzpkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LVBvc3Q6IDxtYWlsdG86ZGV2QG1hdmVuLmFwYWNoZS5vcmc+Ckxpc3QtSWQ6ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXYubWF2ZW4uYXBhY2hlLm9yZz4KUmVwbHktVG86ICJNYXZlbiBEZXZlbG9wZXJzIExpc3QiIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz4KRGVsaXZlcmVkLVRvOiBtYWlsaW5nIGxpc3QgZGV2QG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCAxNTM5OSBpbnZva2VkIGJ5IHVpZCA5OSk7IDIxIERlYyAyMDE3IDA5OjQwOjMxIC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgVGh1LCAyMSBEZWMgMjAxNyAwOTo0MDozMSArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIDc3N0M5MUExMDFBCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyMSBEZWMgMjAxNyAwOTo0MDozMCArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDEuOTAxClgtU3BhbS1MZXZlbDogKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9MS45MDEgdGFnZ2VkX2Fib3ZlPS05OTkgcmVxdWlyZWQ9Ni4zMQoJdGVzdHM9W0ZSRUVNQUlMX0VOVkZST01fRU5EX0RJR0lUPTAuMjUsIEZST01fU1RBUlRTX1dJVEhfTlVNUz0wLjU1MywKCUtBTV9BU0NJSV9ESVZJREVSUz0wLjgsIEtBTV9OVU1TVUJKRUNUPTAuNSwgUkNWRF9JTl9ETlNXTF9MT1c9LTAuNywKCVJDVkRfSU5fU09SQlNfU1BBTT0wLjUsIFJQX01BVENIRVNfUkNWRD0tMC4wMDEsIFNQRl9QQVNTPS0wLjAwMV0KCWF1dG9sZWFybj1kaXNhYmxlZApSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgaUdCdUJGb0Z2dDdSIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJVGh1LCAyMSBEZWMgMjAxNyAwOTo0MDoyOSArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtb3V0LmdteC5uZXQgKG1vdXQuZ214Lm5ldCBbMjEyLjIyNy4xNy4yMl0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA3N0QwODVGMTIxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgVGh1LCAyMSBEZWMgMjAxNyAwOTo0MDoyOCArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBbODAuMTQ2LjIyOC4xMThdIChbODAuMTQ2LjIyOC4xMThdKSBieQogM2MtYXBwLWdteC1iczE1LnNlcnZlci5sYW4gKHZpYSBIVFRQKTsgVGh1LCAyMSBEZWMgMjAxNyAxMDo0MDoyNyArMDEwMApNSU1FLVZlcnNpb246IDEuMApNZXNzYWdlLUlEOiA8dHJpbml0eS01YzE4M2E2NS05MjRkLTQyZTUtOTA3MS0zMTkzNGQzZmM2MTYtMTUxMzg0OTIyNzg4NUAzYy1hcHAtZ214LWJzMTU+CkZyb206ICJNaWNoYWVsIE9zaXBvdiIgPDE5ODMtMDEtMDZAZ214Lm5ldD4KVG86IGRldkBtYXZlbi5hcGFjaGUub3JnClN1YmplY3Q6IFJlOiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIERveGlhIHZlcnNpb24gMS44CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApEYXRlOiBUaHUsIDIxIERlYyAyMDE3IDEwOjQwOjI3ICswMTAwCkltcG9ydGFuY2U6IG5vcm1hbApTZW5zaXRpdml0eTogTm9ybWFsCkluLVJlcGx5LVRvOiA8Mzc5NjMyOC5IM1dpOXJoSjdFQGdpZ2E+ClJlZmVyZW5jZXM6IDw1NjU3OTQzLmhZbzJNb21RV0hAZ2lnYT4gPDM3OTYzMjguSDNXaTlyaEo3RUBnaWdhPgpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBxdW90ZWQtcHJpbnRhYmxlClgtVUktTWVzc2FnZS1UeXBlOiBtYWlsClgtUHJpb3JpdHk6IDMKWC1Qcm92YWdzLUlEOiBWMDM6SzE6cW0wdGYvMjNVcHFvNmJTTWdJaXd1RHFwU2VvaHpKSGZsYytLcTlXMmhsawogbURUQlR4NHZZcGg4MHU3dCt6NWtQSGNFVTRYK3NaZW0ySSt3aHdOZ0pUTStqOThlT3MKIGI5ZXZIdXFFLzBqYjg1UjVXQnVkOUN3emFERzNyU3NVL2R1ZUJXK0M3RE5NRGxteUxNCiBhSFRvQU1NbjBGaDhUYjNIU3BmREcvNWdvY2tZRC8wYmp3Q01CMDAyK0NvaXUxVTNlbAogQlUyYTVaL3hBSGU4RVFUQ1lnTXNYVG1scEwxUWNMcUk2cGdkV3AxYWdXWUw0cmMxT1oKIGI4NmNVUnBabDJFTmtTMjdlT29RRER4N3BySXdnTEp6djBIcUtrZ1YwV05odEFZeUV1IEpySWJLaz0KWC1VSS1PdXQtRmlsdGVycmVzdWx0czogbm90anVuazoxO1YwMTpLMDp6RkIvWGtnSUtEOD06L3UwU2l2c2hhdFh5Q0FEYVBDRk8vYwogalZSd0szZ3RXcjFWNWVrNEtNS2plbkYzUFhmQjNmeGZiVmJwMVN0OUNubnJ5YUJGWEIwQTF3VldmYU1Ib21OUHB0U3BrRzJ2NQogR1JGdkgvWDFtK2tMQjRQd0s2MVVRRTNVYzB1VDBONk05b3p4T3dRSjc1dm9RdDROaG5Tbm00MGdTRTlNMHoyNXhVbXMxYVZkRAogNmwrUGoxTzEwZlA5Y3BrTkQ3cW1qTHZWdjZINW4rbFN3UmQxdFcvMGtBNDRlbGtlTFZhcmhjNE9yR0o1cnFRZDVMWksrZ01KRAogVmNLR2xSV3RHOWZQTUlhVVVVMURkMzJrK2JYS3J2cVRxTVJUaFdteHNNV0VJcnYrRzRMVGVJQWRkdkU4b1BCOFpzenhnaGM3cQogS1l3UzF2eVV3MzFwaTVGNjh2Z3laNXB6MEx4Z0R1blFTRWp5N3FVdVV6OGJ5Tkx0U0ZMdWdDS2RmUmNoOXpyYWJLeG4wMXBERAogNUVWQXlBQUFJMTVoWFdJbzBHVU5ETFlYeSswbS82NE9hTVAyOHZFZXhxN2w3UGY5NjRVSjFlSlorcG1sVVZ2L3NDZC9TWFA3QgogdHJJY3VRV242dHR2djVSU3pNcEVIb1JTSVh3VmxTUGhhemN3Sys4Y0FuSnhNQXE4SnBZVwoKKzEKCj4gR2VzZW5kZXQ6IERvbm5lcnN0YWcsIDIxPTJFIERlemVtYmVyIDIwMTcgdW0gMDk6MzAgVWhyCj4gVm9uOiAiSGVydj1DMz1BOSBCT1VURU1ZIiA8aGVydmU9MkVib3V0ZW15QGZyZWU9MkVmcj4KPiBBbjogIk1hdmVuIERldmVsb3BlcnMgTGlzdCIgPGRldkBtYXZlbj0yRWFwYWNoZT0yRW9yZz4KPiBCZXRyZWZmOiBSZTogW1ZPVEVdIFJlbGVhc2UgQXBhY2hlIE1hdmVuIERveGlhIHZlcnNpb24gMT0yRTgKPgo+IG9uZSB2b3RlIHN0aWxsIG1pc3Npbmc9MkU9MkU9MkUKPj0yMAo+IFJlZ2FyZHMsCj49MjAKPiBIZXJ2PUMzPUE5Cj49MjAKPiBMZSBkaW1hbmNoZSAxNyBkPUMzPUE5Y2VtYnJlIDIwMTcsIDE3OjM2OjUzIENFVCBIZXJ2PUMzPUE5IEJPVVRFTVkgYSA9QzM9Cj1BOWNyaXQgOgo+ID4gSGksCj4gPj0yMAo+ID4gV2Ugc29sdmVkIDE5IGlzc3VlczoKPiA+IGh0dHBzOi8vaXNzdWVzPTJFYXBhY2hlPTJFb3JnL2ppcmEvc2VjdXJlL1JlbGVhc2VOb3RlPTJFanNwYT8KPiA+IHByb2plY3RJZD0zRDEyMzE3MjMwJnZlcnNpb249M0QxMjMzNDg0NyZzdHlsZU5hbWU9M0RUZXh0Cj4gPj0yMAo+ID4gVGhlcmUgYXJlIHN0aWxsIGEgY291cGxlIG9mIGlzc3VlcyBsZWZ0IGluIEpJUkE6Cj4gPiBodHRwczovL2lzc3Vlcz0yRWFwYWNoZT0yRW9yZy9qaXJhL2lzc3Vlcy8/anFsPTNEcHJvamVjdCUyMCUzRCUyMERPWElBPQolMjBBTkQKPiA+ICUyMHN0YXR1cyUyMCUzRCUyME9wZW4lMjBPUkRFUiUyMEJZJTIwa2V5JTIwREVTQyUyQyUyMHByaW9yaXR5JTIwREVTQwo+ID49MjAKPiA+IFN0YWdpbmcgcmVwbzoKPiA+IGh0dHBzOi8vcmVwb3NpdG9yeT0yRWFwYWNoZT0yRW9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9tYXZlbi0xMzgzLwo+ID4gaHR0cHM6Ly9yZXBvc2l0b3J5PTJFYXBhY2hlPTJFb3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL21hdmVuLTEzODMvb3JnLz0KYXBhY2hlLwo+ID4gbWF2ZW4vZG94aWEvZG94aWEvMT0yRTgvZG94aWEtMT0yRTgtc291cmNlLXJlbGVhc2U9MkV6aXAKPiA+PTIwCj4gPiBTb3VyY2UgcmVsZWFzZSBjaGVja3N1bShzKToKPiA+IGRveGlhLTE9MkU4LXNvdXJjZS1yZWxlYXNlPTJFemlwIHNoYTE6IDk3YmY0MzVkYTAzZGQ0YThkNWNmYzFiMGYwNzI2NTA9CjkwODYzY2ZmMAo+ID49MjAKPiA+IFN0YWdpbmcgc2l0ZToKPiA+IGh0dHA6Ly9tYXZlbj0yRWFwYWNoZT0yRW9yZy9kb3hpYS9kb3hpYS1hcmNoaXZlcy9kb3hpYS1MQVRFU1QvCj4gPj0yMAo+ID4gR3VpZGUgdG8gdGVzdGluZyBzdGFnZWQgcmVsZWFzZXM6Cj4gPiBodHRwczovL21hdmVuPTJFYXBhY2hlPTJFb3JnL2d1aWRlcy9kZXZlbG9wbWVudC9ndWlkZS10ZXN0aW5nLXJlbGVhc2VzPQo9MkVodG1sCj4gPj0yMAo+ID4gVm90ZSBvcGVuIGZvciBhdCBsZWFzdCA3MiBob3Vycz0yRQo+ID49MjAKPiA+IFsgXSArMQo+ID4gWyBdICswCj4gPiBbIF0gLTEKPiA+PTIwCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiA+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGRldi11bnN1YnNjcmliZUBtYXZlbj0yRWFwYWNoZT0yRW9yZwo+ID4gRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMsIGUtbWFpbDogZGV2LWhlbHBAbWF2ZW49MkVhcGFjaGU9MkVvcmcKPj0yMAo+PTIwCj49MjAKPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW49MkVhcGFjaGU9MkVvcmcKPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbj0yRWFwYWNoZT0yRW9yZwo+PTIwCj4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUbyB1bnN1YnNjcmliZSwgZS1tYWlsOiBkZXYtdW5zdWJzY3JpYmVAbWF2ZW4uYXBhY2hlLm9yZwpGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWlsOiBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnCgoKRnJvbSBkZXYtcmV0dXJuLTEyNDQyNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnICBTdW4gTm92ICA1IDIxOjE3OjM5IDIwMTcKUmV0dXJuLVBhdGg6IDxkZXYtcmV0dXJuLTEyNDQyNC1hcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmU9bWF2ZW4uYXBhY2hlLm9yZ0BtYXZlbi5hcGFjaGUub3JnPgpYLU9yaWdpbmFsLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IGZyb20gbWFpbC5hcGFjaGUub3JnIChoZXJtZXMuYXBhY2hlLm9yZyBbMTQwLjIxMS4xMS4zXSkKCWJ5IG1pbm90YXVyLmFwYWNoZS5vcmcgKFBvc3RmaXgpIHdpdGggU01UUCBpZCA0MjRFMzEwNDJECglmb3IgPGFwbWFpbC1tYXZlbi1kZXYtYXJjaGl2ZUB3d3cuYXBhY2hlLm9yZz47IFN1biwgIDUgTm92IDIwMTcgMjE6MTc6MzkgKzAwMDAgKFVUQykKUmVjZWl2ZWQ6IChxbWFpbCA2NDI5MCBpbnZva2VkIGJ5IHVpZCA1MDApOyA1IE5vdiAyMDE3IDIxOjE3OjM4IC0wMDAwCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQG1hdmVuLmFwYWNoZS5vcmcKUmVjZWl2ZWQ6IChxbWFpbCA2NDIxNSBpbnZva2VkIGJ5IHVpZCA1MDApOyA1IE5vdiAyMDE3IDIxOjE3OjM4IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgNjQyMDMgaW52b2tlZCBieSB1aWQgOTkpOyA1IE5vdiAyMDE3IDIxOjE3OjM4IC0wMDAwClJlY2VpdmVkOiBmcm9tIHBuYXAtdXMtd2VzdC1nZW5lcmljLW5hdC5hcGFjaGUub3JnIChIRUxPIHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcpICgyMDkuMTg4LjE0LjE0MikKICAgIGJ5IGFwYWNoZS5vcmcgKHFwc210cGQvMC4yOSkgd2l0aCBFU01UUDsgU3VuLCAwNSBOb3YgMjAxNyAyMToxNzozOCArMDAwMApSZWNlaXZlZDogZnJvbSBsb2NhbGhvc3QgKGxvY2FsaG9zdCBbMTI3LjAuMC4xXSkKCWJ5IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKEFTRiBNYWlsIFNlcnZlciBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnKSB3aXRoIEVTTVRQIGlkIEM0MDA5MTBCM0JDCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAgNSBOb3YgMjAxNyAyMToxNzozNyArMDAwMCAoVVRDKQpYLVZpcnVzLVNjYW5uZWQ6IERlYmlhbiBhbWF2aXNkLW5ldyBhdCBzcGFtZDEtdXMtd2VzdC5hcGFjaGUub3JnClgtU3BhbS1GbGFnOiBOTwpYLVNwYW0tU2NvcmU6IDIuMDIKWC1TcGFtLUxldmVsOiAqKgpYLVNwYW0tU3RhdHVzOiBObywgc2NvcmU9Mi4wMiB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBNSVNTSU5HX01JRD0wLjE0LCBSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwKCVJDVkRfSU5fTVNQSUtFX0g0PS0wLjAxLCBSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMTAyNC1iaXQga2V5KSBoZWFkZXIuZD1zb3VyY2Vncm91bmRzLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctZXUuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMS11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuN10pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgRnRuNmRvUHNFWElMIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJU3VuLCAgNSBOb3YgMjAxNyAyMToxNzozNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlscmVsYXkyLTMucHViLm1haWxvdXRwb2QxLWNwaDMub25lLmNvbSAobWFpbHJlbGF5Mi0zLnB1Yi5tYWlsb3V0cG9kMS1jcGgzLm9uZS5jb20gWzQ2LjMwLjIxMi4xMV0pCglieSBteDEtbHctZXUuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy1ldS5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA5RERGRDVGQkIxCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgU3VuLCAgNSBOb3YgMjAxNyAyMToxNzozNSArMDAwMCAoVVRDKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9c2ltcGxlL3NpbXBsZTsKCWQ9c291cmNlZ3JvdW5kcy5jb207IHM9MjAxNDA5MjQ7CgloPWZyb206c3ViamVjdDpkYXRlOnRvOm1pbWUtdmVyc2lvbjpjb250ZW50LXR5cGU7CgliaD04WXAzUDZuMnQySHBlRGc3VUtEQ0xNM0s4Z3lQVVZ6NjFKOW05Q2pNZzFJPTsKCWI9VTBwbS9jc0tnUDVBMm5zNVE3d3BrOEp5b0NyODE1QTZzR0tjYUxrNmxXSW8vZE8rd2lKZUIydFcySlAySk9HTzFvVzVRNmtqTDJaQmUKCSB0aGZ3REVjNTdLWWNpbVhBS3RpR2NKc1Nlenp2Q3RWeXVzU3VsN2w3NU9ERWVWaFlwWUtER1JFVlVTb2VKMXBkbnVuZjhTa1BhbVBNQkMKCSAxc2thL0ZvNHV5UzNnNEw0PQpYLUhhbE9uZS1Db29raWU6IGExMDY2ZjUxODM3MTM2Y2E0MmY5M2FmMzNkODYzZmVlMGVmOTUzNTQKWC1IYWxPbmUtSUQ6IGI5MTc1NDdjLWMyNmUtMTFlNy1hMGY5LWQwNDMxZWE4YTI5MApSZWNlaXZlZDogZnJvbSBbMTkyLjE2OC4yNTIuMzNdICh1bmtub3duIFs4MS44Mi4yMzguMjQ4XSkKCWJ5IG1haWxyZWxheTIucHViLm1haWxvdXRwb2QxLWNwaDMub25lLmNvbSAoSGFsb24pIHdpdGggRVNNVFBTQQoJaWQgYjkxNzU0N2MtYzI2ZS0xMWU3LWEwZjktZDA0MzFlYThhMjkwOwoJU3VuLCAwNSBOb3YgMjAxNyAyMToxNzoyNiArMDAwMCAoVVRDKQpTYXZlZEZyb21FbWFpbDogYXBhY2hlQHNvdXJjZWdyb3VuZHMuY29tCkRhdGU6IFN1biwgMDUgTm92IDIwMTcgMjI6MTc6MjMgKzAxMDAKU3ViamVjdDogUmU6IFJlYWN0b3Igc2FmZS9yYWxseSBwb2ludHMKSW1wb3J0YW5jZTogbm9ybWFsCkZyb206IFJvYmVydCBTY2hvbHRlIDxhcGFjaGVAc291cmNlZ3JvdW5kcy5jb20+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ii0tX2NvbS5zYW1zdW5nLmFuZHJvaWQuZW1haWxfMTY1Mjg1MTIzNzY5NjUzMCIKCi0tLS1fY29tLnNhbXN1bmcuYW5kcm9pZC5lbWFpbF8xNjUyODUxMjM3Njk2NTMwCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD11dGYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBiYXNlNjQKClQyNWxJSFJvYVc1bklFa25aQ0JzYVd0bElIUnZJR05vWVc1blpTQnBjeUIwYUdGMElHbG1JR0VnYlc5a2RXeGxJR2x6SUdFZ1pHVncKWlc1a1pXNWplU0JwZENCdGRYTjBJSEpsWVd4c2VTQmlaV2hoZG1VZ2JHbHJaU0J2Ym1VdXdxQWdTWFFnYzJodmRXeGtJRzV2ZENCaQpaU0IwYUdVZ1RXRjJaVzVRY205cVpXTjBMQ0IwYUdGMElITm9iM1ZzWkNCdmJteDVJR0psSUhWelpXUWdabTl5SUdKMWFXeGthVzVuCklDcDBhR0YwS2lCd2NtOXFaV04wTHNLZ1NYUWdjMmh2ZFd4a0lHRmpkQ0JoY3lCcFppQnBkQ0IzWVhNZ1pHOTNibXh2WVdSbFpDQjIKYVdFZ2RHaGxJR0Z5ZEdsbVlXTjBJSEpsYzI5c2RtVnlDbEp2WW1WeWRBb0tWbVZ5ZW05dVpHVnVJSFpoYm1GbUlHMXBhbTRnVTJGdApjM1Z1WnlCSFlXeGhlSGt0YzIxaGNuUndhRzl1WlM0S0xTMHRMUzB0TFMwZ1QyOXljM0J5YjI1clpXeHBhbXNnWW1WeWFXTm9kQ0F0CkxTMHRMUzB0TFZaaGJqb2dVM1JsY0dobGJpQkRiMjV1YjJ4c2VTQThjM1JsY0dobGJpNWhiR0Z1TG1OdmJtNXZiR3g1UUdkdFlXbHMKTG1OdmJUNGdSR0YwZFcwNklEQTFMVEV4TFRFM0lDQXhPRG8xTnlBZ0tFZE5WQ3N3TVRvd01Da2dRV0Z1T2lCTllYWmxiaUJFWlhabApiRzl3WlhKeklFeHBjM1FnUEdSbGRrQnRZWFpsYmk1aGNHRmphR1V1YjNKblBpQlBibVJsY25kbGNuQTZJRkpsWVdOMGIzSWdjMkZtClpTOXlZV3hzZVNCd2IybHVkSE1nQ2xSb1pYSmxJR0Z5WlNCMGQyOGdjMlYwY3lCdlppQndjbTlpYkdWdGN5QjBhR0YwTENCaGMzTjEKYldsdVp5QjNaU0IzWVc1MElIUnZJR1pwZUN3Z1ltOTBhQ0J1WldWa0NuTnZiV1VnZDJGNUlIUnZJSEpoYkd4NUlHRWdZMjl1WTNWeQpjbVZ1ZENCdGRXeDBhVzF2WkhWc1pTQmlkV2xzWkNCaGRDNEtDakV1SUZSb1pYSmxJR2x6SUhSb1pTQnphR0ZrWlNCc2FXdGxJR05zCllYTnpJRzltSUhCeWIySnNaVzF6TENCM2FHVnlaU0JoSUhCc2RXZHBiaUIzWVc1MGN5QjBid3B0YjJScFpua2dkR2hsSUdWbVptVmoKZEdsMlpTQjBjbUZ1YzJsMGFYWmxJR1JsY0dWdVpHVnVZMmxsY3lCdlppQmhJRzF2WkhWc1pTNEtDakl1SUZSb1pYSmxJR2x6SUhSbwpaU0JsZUhSbGJuTnBZbWxzYVhSNUlHTnNZWE56SUc5bUlIQnliMkpzWlcxekxDQjNhR1Z5WlNCd1pXOXdiR1VnZDJGdWRDQjBieUJpCmRXbHNaQXBoSUhCc2RXZHBiaUJoYm1RZ1kyOXVjM1Z0WlNCMGFHVWdjMkZ0WlNCd2JIVm5hVzRnYVc0Z2IyNWxJSEpsWVdOMGIzSXUKQ2dwT2IzY2dhVzRnWW05MGFDQmpZWE5sY3l3Z1NTQjBhR2x1YXlCM1pTQmpZVzRnYzI5c2RtVWdZU0J6ZFdKelpYUWdiMllnZEdobApjMlVnY0hKdllteGxiWE1nWW5rS2FXNTBjbTlrZFdOcGJtY2dZU0JqYjI1alpYQjBJRzltSUdFZ2NtRnNiSGtnTHlCellXWmxJSEJ2CmFXNTBJR2x1SUhSb1pTQmlkV2xzWkNCd2JHRnVMZ29LVkdobElHMTFkR0ZpYkdVZ2JXOWtaV3dnWTJGdUlHSmxJSE52YkhabFpDQm0KYjNJZ2NtVmtkV05wYm1jZ2MyTnZjR1V2SUhKbGJXOTJhVzVuQ21SbGNHVnVaR1Z1WTJsbGN5NHVMaUJqYjNWc1pDQndiM056YVdKcwplU0JoYkhOdklHRnNiRzkzSUdGa1pHbHVaeUJrWlhCbGJtUmxibU5wWlhNc0lIQnliM1pwWkdWa0lIUm9aUXBrWlhCbGJtUmxibU5wClpYTWdZWEpsSUc1dmRDQndZWEowSUc5bUlIUm9aU0J5WldGamRHOXlMaUJVYUdVZ2NISnZkbWx6YnlCcGN5QjBhR0YwSUhSb1pTQncKYkhWbmFXNEtaMjloYkNCM2IzVnNaQ0J1WldWa0lIUnZJR0psSUcxaGNtdGxaQ0JoY3lCaElPS0FuRzExZEdGMGFXOXU0b0NkSUdkdgpZV3dzSUdGdVpDQjBhR1VnWlhobFkzVjBhVzl1SUc5bUlHRnNiQXJpZ0p4dGRYUmhkR2x2YnVLQW5TQm5iMkZzY3lCbWIzSWdZU0J0CmIyUjFiR1VnWkdWbWFXNWxjeUJoSUhOaFptVXRjRzlwYm5RdUlFRnNiQ0JrYjNkdWMzUnlaV0Z0SUcxdlpIVnNaWE1LZEdoaGRDQmsKWldOc1lYSmxJR0VnWkdWd1pXNWtaVzVqZVNCdGRYTjBJR0psSUdKc2IyTnJaV1FnWm5KdmJTQmxlR1ZqZFhScGIyNGdkVzUwYVd3ZwpkR2hsQ25OaFptVXRjRzlwYm5RZ2FYTWdjbVZoWTJobFpDNEtDa1JwYzJOMWMzTnBiMjRnY0c5cGJuUnpPZ29xSUdodmR5QmtieUIzClpTQm9ZVzVrYkdVZ1lTQmlkV2xzWkNCeVpYRjFaWE4wSUhSb1lYUWdkMmxzYkNCdVpYWmxjaUJ5WldGamFDQjBhR1VnYzJGbVpTMXcKYjJsdWRDd2daV2NLWUcxMmJpQjBaWE4wWUNCM2FXeHNJRzV2ZENCeVpXRmphQ0J3WVdOcllXZGxMQ0JoYm1RZ2FHVnVZMlVnZDJscwpiQ0J1YjNRZ2NuVmlJSE5vWVdSbExpNHVJSE5vYjNWc1pBcDNaU0J6WVhrNklHWnBibVVzSUc1dklITmhabVZ3YjJsdWRDQnBiaUJpCmRXbHNaQ0J3YkdGdUxDQnpieUJoYkd3Z1oyOXZaQzR1TGlCemFHOTFiR1FnZDJVZ2MyRjVPZ3B2YjNCeklHVnpZMkZzWVhSbElIUm8KWlNCdGIyUjFiR1VnZDJsMGFDQmhJSE5oWm1VZ2NHOXBiblFnZEc4Z1lIQmhZMnRoWjJWZ1B3b3FJSGRvYVd4bElIUmxZMmh1YVdOaApiR3g1SUhCdmMzTnBZbXhsSUhSdklDcGhaR1FxSUdWNExYSmxZV04wYjNJZ1pHVndaVzVrWlc1amFXVnpJQ2hwWmdwbGVDMXlaV0ZqCmRHOXlJSFJvWlhrZ1kyRnVibTkwSUdGbVptVmpkQ0IwYUdVZ1luVnBiR1FnY0d4aGJpa2dhWFFnWTI5MWJHUWdZbVVnWVNCaVlXUWcKYVdSbFlTQm1iM0lLWW5WcGJHUWdjbVZ4ZFdWemRITWdkR2hoZENCM2IzVnNaRzdpZ0psMElISmxZV05vSUhSb1pTQnpZV1psY0c5cApiblFzSUdseklIUm9ZWFFnY21WaGMyOXVJR1Z1YjNWbmFDQjBid3B5WldwbFkzUWdZV1JrYVhScGIyNC9DZ3BVYUdVZ1pYaDBaVzV6CmFXSnBiR2wwZVNCcGMzTjFaU0JwY3lCaFkzUjFZV3hzZVNCaGJpQnBiWEJ2Y25SaGJuUWdZMkZ6WlM0Z1ZYTmxjbk1nZDJGdWRDQm0KWldGMGRYSmxjd3BzYVd0bElITmpjbWx3ZEdsdVp5QmlaV05oZFhObElIUm9aWGtnYm1WbFpDQnpiMjFsZEdocGJtY2dZM1Z6ZEc5dApMaUJUWTNKcGNIUnBibWNnWW5KcGJtZHpJR0poWTJzS2FXMXdaWEpoZEdsMlpTQmlkV2xzWkhNc0lIZG9hV05vSUVsTlNFOGdUV0YyClpXNGdkbWxsZDNNZ1lYTWdZVzRnWVc1MGFTMXdZWFIwWlhKdUxnb0tVMjhnZDJoaGRDQnBjeUIwYUdVZ2NISnZZbXhsYlNCd1pXOXcKYkdVZ1lYSmxJSFJ5ZVdsdVp5QjBieUJ6YjJ4MlpUOGdWR2hsZVNCM1lXNTBJR0VnY0d4MVoybHVJR1p2Y2dwcWRYTjBJRzl1WlNCdwpjbTlxWldOMExpQlNhV2RvZENCdWIzY2dlVzkxSUdOaGJtNXZkQ0JpWldOaGRYTmxJSGRsSUdOaGJtNXZkQ0JwYm5OMFlXNTBhV0YwClpTQjBhR1VLWm5Wc2JDQmlkV2xzWkNCd2JHRnVJSFZ1ZEdsc0lIZGxJR05oYmlCcGJuTndaV04wSUhSb1pTQndiSFZuYVc0Z2JXVjAKWVdSaGRHRXVMaTRnWW5WMElIVnVkR2xzSUhkbENtSjFhV3hrSUhSb1pTQndiSFZuYVc0Z2QyVWdZMkZ1Ym05MElHZGxkQ0IwYUdVZwpiV1YwWVdSaGRHRXVDZ3BYYVhSb0lHRWdaMlZ1WlhKaGJDQndiSFZuYVc0c0lFa2dkR2hwYm1zZ2RHaGxjbVVnYVhNZ2JtOTBJRzExClkyZ2dkMlVnWTJGdUlHUnZMaUJHYjNJZ1pYaGhiWEJzWlNCaENuQnNkV2RwYmlCeVpXUmxabWx1YVc1bklHRWdiR2xtWldONVkyeGwKSUcxcFoyaDBJR0ZqZEhWaGJHeDVJRzFsWVc0Z2RHaGhkQ0IwYUdVZ1luVnBiR1FnY0d4aGJpQjNhV3hzQ21KbElHUnBabVpsY21WdQpkQ0JtYjNJZ2JXOWtkV3hsY3lCMWMybHVaeUIwYUdGMElIQnNkV2RwYmlCaGN5QmhiaUJsZUhSbGJuTnBiMjR1Q2dwQ2RYUWdhV1lnCmRHaGxJSEJzZFdkcGJpQnBjeUJxZFhOMElHUmxabWx1YVc1bklITnZiV1VnWjI5aGJITWdZVzVrSUhSb2IzTmxJR2R2WVd4eklHRnkKWlNCcWRYTjBDbUp2ZFc1a0lIUnZJSEJvWVhObGN5QnBiaUIwYUdVZ2NISmxMV1Y0YVhOMGFXNW5JR3hwWm1VZ1kzbGpiR1Z6TGk0dQpJR0ZuWVdsdUxDQnBkQ0J6WldWdGN5QjNaU0JqWVc0S1lXeHNiM2NnZEdobElHSjFhV3hrSUhSdklIQnliMk5sWldRS0NrUnBjMk4xCmMzTnBiMjRnY0c5cGJuUnpPZ29xSUdodmR5QjBieUJvWVc1a2JHVWdZRzEyYmlCMFpYTjBZQzRnU1dZZ2RHaGxJSEJzZFdkcGJpQnAKY3lCdmJteDVJR0p2ZFc1a0lIUnZJR3hoZEdWeUlIQm9ZWE5sY3l3Z2QyVUtZWEpsSUdkdmIyUXVMaTRnWW5WMElIZG9ZWFFnYVdZZwpkR2hsSUhCc2RXZHBiaUJwY3lCaWIzVnVaQ0IwYnlCaGJpQmxZWEpzZVNCd2FHRnpaVDhnUkc4Z2QyVWdhblZ6ZEFwaWIyMWlJRzkxCmRDQmhibVFnYzJGNUxDQnpiM0p5ZVNCNWIzVWdibVZsWkNCMGJ5QnBiblp2YTJVZ1lYUWdiR1ZoYzNRZ2NHRmphMkZuWlQ4Z1JHOGcKZDJVZ1ptRnNiQXBpWVdOcklIUnZJR3h2WTJGc0lISmxjRzgvSUVSdklIZGxJSFZ3YzJOaGJHVWdkR2hsSUdKMWFXeGtJSEJzWVc0ZwpabTl5SUhSb1pTQndiSFZuYVc0Z2RHOGdjR0ZqYTJGblpRb3FJR2h2ZHlCMGJ5Qm9ZVzVrYkdVZ1lHMTJiaUJ6YVhSbFlDNHVMaUJwCmJpQjBhR2x6SUdOaGMyVWdkMlVnZDI5MWJHUnU0b0NaZENCaVpTQndjbTlrZFdOcGJtY2dkR2hsQ25Cc2RXZHBiaUJwYmlCMGFHVWcKY21WaFkzUnZjaUJoYm5sM1lYa3VMaTRnWkc4Z2QyVWdZbTl0WWlCdmRYUWdZVzVrSUhOaGVTRGlnSng1YjNVZ2JYVnpkQ0JrYnlCZwpiWFp1Q25CaFkydGhaMlVnYzJsMFpXRGlnSncvSUVSdklIZGxJRzF2WkdsbWVTQjBhR1VnWW5WcGJHUWdjR3hoYmo4Z1JHOGdkMlVnCmRYTmxJR3h2WTJGc0lISmxjRzgvQ2lvZ2QyVWdZMjkxYkdRZ1ltVWdjMjFoY25SbGNpQmhibVFnZFhObElIUm9aU0JpZFdsc1pDQncKYkdGdUlITmhabVZ3YjJsdWRDQmhjeUJoSUhOMFlXZHBibWNnY0c5cGJuUUtZVzVrSUdGc2JHOTNJR3hwWm1WamVXTnNaWE1nWVc1awpJRzkwYUdWeUlIUm9hVzVuY3k0dUxpQjBhRzkxWjJnZ2IySjJhVzkxYzJ4NUlHMXZjbVVnZDI5eWF3b3FJSGRvWVhRZ1lXSnZkWFFnCmFXNTJiMnRwYm1jZ1lTQndiSFZuYVc0Z1oyOWhiQ0JtY205dElIUm9aU0JEVEVrZ1pHbHlaV04wYkhrdUxpNGdaRzhnZDJVZ1lYTnIKSUdadmNncGdiWFp1SUhCaFkydGhaMlVnWm05dk9tMWhibU5vZFdBL0lFWnZjaUIwYUdseklIUnZJSGR2Y21zc0lHWnZienB0WVc1agphSFVnZDI5MWJHUWdhR0YyWlNCMGJ5QmlaU0JoYmdwaFoyZHlaV2RoZEc5eUlHZHZZV3dzSUc5MGFHVnlkMmx6WlNCcGRDQmpiM1ZzClpDQmlaU0JoYmlCbGVHVmpkWFJwYjI0Z2NtVnhkV1Z6ZENCdmJpQmxZWEpzYVdWeUNtMXZaSFZzWlhNZ1lua2dZU0JzWVhSbGNpQnQKYjJSMWJHVS9JRU52ZFd4a0lIZGxJR1JsYkdGNUlIUm9aU0JpZFdsc1pDQndiR0Z1SUdsdWMzUmhiblJwWVhScGIyNEtkVzUwYVd3ZwpZV1owWlhJZ2RHaGxJSEJzZFdkcGJpQnBjeUJpZFdsc2REOGdRMjkxYkdRZ2QyVWdhblZ6ZENCeVpYRjFhWEpsSUhSb1pTQndiSFZuCmFXNGdZbVVnYzJWeWRtVmtDbVp5YjIwZ2RHaGxJR3h2WTJGc0lISmxjRzl6YVhSdmNua2dZVzVrSUhKbGRtRnNhV1JoZEdVZ2RHaGwKSUdKMWFXeGtJSEJzWVc0Z1lXWjBaWElnZEdobElHNWxkd3B3YkhWbmFXNGdZblZwYkdRZ2FYTWdZWFpoYVd4aFlteGxQd29LU1NCMAphR2x1YXlCMGFHVnpaU0JoY21VZ2RIZHZJR2x0Y0hKdmRtVnRaVzUwY3lCMGFHRjBJR052ZFd4a0lHSmxJRzFoWkdVZ0tuZHBkR2h2CmRYUXFJR05vWVc1blpYTWdkRzhLZEdobElHMXZaR1ZzVm1WeWMybHZiaUJoYm1RZ2RHaGxlU0IzYjNWc1pDQm9ZWFpsSUdFZ2NtVmgKYkNCaGJtUWdiV1ZoYm1sdVoyWjFiQ0JwYlhCeWIzWmxiV1Z1ZENCbWIzSUtiM1Z5SUhWelpYSnpMaTR1SUdGeklITjFZMmdnU1NCMwpiM1ZzWkNCc2FXdGxJSFZ6SUhSdklHTnZibk5wWkdWeUlDaGhjeUJ2Y0hScGIyNWhiQ0JuYjJGc2N5a2dabTl5Q2sxaGRtVnVJRFF1Ck1DNHdDZ3BYWkhsMFB3b3RMU0FLVTJWdWRDQm1jbTl0SUcxNUlIQm9iMjVsQ2c9PQoKLS0tLV9jb20uc2Ftc3VuZy5hbmRyb2lkLmVtYWlsXzE2NTI4NTEyMzc2OTY1MzAtLQoKCkZyb20gZGV2LXJldHVybi0xMjQwMDgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZyAgV2VkIFNlcCAxMyAxMjoyMToxMSAyMDE3ClJldHVybi1QYXRoOiA8ZGV2LXJldHVybi0xMjQwMDgtYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlPW1hdmVuLmFwYWNoZS5vcmdAbWF2ZW4uYXBhY2hlLm9yZz4KWC1PcmlnaW5hbC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnCkRlbGl2ZXJlZC1UbzogYXBtYWlsLW1hdmVuLWRldi1hcmNoaXZlQHd3dy5hcGFjaGUub3JnClJlY2VpdmVkOiBmcm9tIG1haWwuYXBhY2hlLm9yZyAoaGVybWVzLmFwYWNoZS5vcmcgWzE0MC4yMTEuMTEuM10pCglieSBtaW5vdGF1ci5hcGFjaGUub3JnIChQb3N0Zml4KSB3aXRoIFNNVFAgaWQgOUU5RkMxQTVCMwoJZm9yIDxhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAd3d3LmFwYWNoZS5vcmc+OyBXZWQsIDEzIFNlcCAyMDE3IDEyOjIxOjExICswMDAwIChVVEMpClJlY2VpdmVkOiAocW1haWwgODA0MDUgaW52b2tlZCBieSB1aWQgNTAwKTsgMTMgU2VwIDIwMTcgMTI6MjE6MTEgLTAwMDAKRGVsaXZlcmVkLVRvOiBhcG1haWwtbWF2ZW4tZGV2LWFyY2hpdmVAbWF2ZW4uYXBhY2hlLm9yZwpSZWNlaXZlZDogKHFtYWlsIDgwMzI5IGludm9rZWQgYnkgdWlkIDUwMCk7IDEzIFNlcCAyMDE3IDEyOjIxOjA5IC0wMDAwCk1haWxpbmctTGlzdDogY29udGFjdCBkZXYtaGVscEBtYXZlbi5hcGFjaGUub3JnOyBydW4gYnkgZXptbG0KUHJlY2VkZW5jZTogYnVsawpMaXN0LVVuc3Vic2NyaWJlOiA8bWFpbHRvOmRldi11bnN1YnNjcmliZUBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUhlbHA6IDxtYWlsdG86ZGV2LWhlbHBAbWF2ZW4uYXBhY2hlLm9yZz4KTGlzdC1Qb3N0OiA8bWFpbHRvOmRldkBtYXZlbi5hcGFjaGUub3JnPgpMaXN0LUlkOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2Lm1hdmVuLmFwYWNoZS5vcmc+ClJlcGx5LVRvOiAiTWF2ZW4gRGV2ZWxvcGVycyBMaXN0IiA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+CkRlbGl2ZXJlZC1UbzogbWFpbGluZyBsaXN0IGRldkBtYXZlbi5hcGFjaGUub3JnClJlY2VpdmVkOiAocW1haWwgODAzMTcgaW52b2tlZCBieSB1aWQgOTkpOyAxMyBTZXAgMjAxNyAxMjoyMTowOSAtMDAwMApSZWNlaXZlZDogZnJvbSBwbmFwLXVzLXdlc3QtZ2VuZXJpYy1uYXQuYXBhY2hlLm9yZyAoSEVMTyBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnKSAoMjA5LjE4OC4xNC4xNDIpCiAgICBieSBhcGFjaGUub3JnIChxcHNtdHBkLzAuMjkpIHdpdGggRVNNVFA7IFdlZCwgMTMgU2VwIDIwMTcgMTI6MjE6MDkgKzAwMDAKUmVjZWl2ZWQ6IGZyb20gbG9jYWxob3N0IChsb2NhbGhvc3QgWzEyNy4wLjAuMV0pCglieSBzcGFtZDItdXMtd2VzdC5hcGFjaGUub3JnIChBU0YgTWFpbCBTZXJ2ZXIgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZykgd2l0aCBFU01UUCBpZCBFNEUyOTFBMzNCQQoJZm9yIDxkZXZAbWF2ZW4uYXBhY2hlLm9yZz47IFdlZCwgMTMgU2VwIDIwMTcgMTI6MjE6MDggKzAwMDAgKFVUQykKWC1WaXJ1cy1TY2FubmVkOiBEZWJpYW4gYW1hdmlzZC1uZXcgYXQgc3BhbWQyLXVzLXdlc3QuYXBhY2hlLm9yZwpYLVNwYW0tRmxhZzogTk8KWC1TcGFtLVNjb3JlOiAyLjUyMQpYLVNwYW0tTGV2ZWw6ICoqClgtU3BhbS1TdGF0dXM6IE5vLCBzY29yZT0yLjUyMSB0YWdnZWRfYWJvdmU9LTk5OSByZXF1aXJlZD02LjMxCgl0ZXN0cz1bREtJTV9TSUdORUQ9MC4xLCBES0lNX1ZBTElEPS0wLjEsIERLSU1fVkFMSURfQVU9LTAuMSwKCUhUTUxfTUVTU0FHRT0yLCBLQU1fTlVNU1VCSkVDVD0wLjUsIE1JU1NJTkdfTUlEPTAuMTQsCglSQ1ZEX0lOX0ROU1dMX05PTkU9LTAuMDAwMSwgUkNWRF9JTl9NU1BJS0VfSDQ9LTAuMDEsCglSQ1ZEX0lOX01TUElLRV9XTD0tMC4wMSwgVVJJQkxfQkxPQ0tFRD0wLjAwMV0gYXV0b2xlYXJuPWRpc2FibGVkCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgKGFtYXZpc2QtbmV3KTsKCWRraW09cGFzcyAoMTAyNC1iaXQga2V5KSBoZWFkZXIuZD1zb3VyY2Vncm91bmRzLmNvbQpSZWNlaXZlZDogZnJvbSBteDEtbHctdXMuYXBhY2hlLm9yZyAoWzEwLjQwLjAuOF0pCglieSBsb2NhbGhvc3QgKHNwYW1kMi11cy13ZXN0LmFwYWNoZS5vcmcgWzEwLjQwLjAuOV0pIChhbWF2aXNkLW5ldywgcG9ydCAxMDAyNCkKCXdpdGggRVNNVFAgaWQgTF92LV9lUEt3ZWZDIGZvciA8ZGV2QG1hdmVuLmFwYWNoZS5vcmc+OwoJV2VkLCAxMyBTZXAgMjAxNyAxMjoyMTowNiArMDAwMCAoVVRDKQpSZWNlaXZlZDogZnJvbSBtYWlscmVsYXkyLTMucHViLm1haWxvdXRwb2QxLWNwaDMub25lLmNvbSAobWFpbHJlbGF5Mi0zLnB1Yi5tYWlsb3V0cG9kMS1jcGgzLm9uZS5jb20gWzQ2LjMwLjIxMi4xMV0pCglieSBteDEtbHctdXMuYXBhY2hlLm9yZyAoQVNGIE1haWwgU2VydmVyIGF0IG14MS1sdy11cy5hcGFjaGUub3JnKSB3aXRoIEVTTVRQUyBpZCA5MUUxNzVGQjMyCglmb3IgPGRldkBtYXZlbi5hcGFjaGUub3JnPjsgV2VkLCAxMyBTZXAgMjAxNyAxMjoyMTowNiArMDAwMCAoVVRDKQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IGM9c2ltcGxlL3NpbXBsZTsKCWQ9c291cmNlZ3JvdW5kcy5jb207IHM9MjAxNDA5MjQ7CgloPWZyb206c3ViamVjdDpkYXRlOnRvOm1pbWUtdmVyc2lvbjpjb250ZW50LXR5cGU7CgliaD1tZTJmZzJpRVhBUkFBL0tBeU1RUDYwb1A3YzlUbkdWM01yb3dqbUE4a1JNPTsKCWI9RHVnQ0NOM29zY3JoK1BZdWJ3eXhxakNObExWYzBpSUMycHBtSyt5Z080d3hyTmFkNjNFcUgyODBNZzFZNGc5OWQyUFdZajAzQTM3RDIKCSB1ZjlZeW95M0RIVXZ4WEw5T3N1SlcwOUFGRkZ3T3M2UEpRZkpvTGpjNE53WTFEZ3pTUEpJNWxzQmsvRUNjSGNIMTdtcGhOUTNzNzVlRFkKCSA4aG9hMjRiODlEOTM4L0J3PQpYLUhhbE9uZS1Db29raWU6IGY2MWIwNTYwMGViNzAzMDk0YWJhMGRlNjQwMWI4NTBiMDI2YmMxZWEKWC1IYWxPbmUtSUQ6IGZlMDI0NWFkLTk4N2QtMTFlNy1hODdkLWI4MmE3MmQwM2I5YgpSZWNlaXZlZDogZnJvbSBbMTAuMjEuODkuNl0gKHVua25vd24gWzYyLjE0MC4xMzIuNl0pCglieSBzbXRwZmlsdGVyMi5wdWJsaWMub25lLmNvbSAoSGFsb24pIHdpdGggRVNNVFBTQQoJaWQgZmUwMjQ1YWQtOTg3ZC0xMWU3LWE4N2QtYjgyYTcyZDAzYjliOwoJV2VkLCAxMyBTZXAgMjAxNyAxMjoyMDo1NiArMDAwMCAoVVRDKQpEYXRlOiBXZWQsIDEzIFNlcCAyMDE3IDE0OjIwOjUzICswMjAwClN1YmplY3Q6IFJlOiBbVk9URV0gUmVsZWFzZSBBcGFjaGUgTWF2ZW4gMy41LjEKSW1wb3J0YW5jZTogbm9ybWFsCkZyb206IFJvYmVydCBTY2hvbHRlIDxhcGFjaGVAc291cmNlZ3JvdW5kcy5jb20+ClRvOiBNYXZlbiBEZXZlbG9wZXJzIExpc3QgPGRldkBtYXZlbi5hcGFjaGUub3JnPgpNSU1FLVZlcnNpb246IDEuMApDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ii0tX2NvbS5zYW1zdW5nLmFuZHJvaWQuZW1haWxfMTk0MzM0NzE1NTY0NzQwIgoKLS0tLV9jb20uc2Ftc3VuZy5hbmRyb2lkLmVtYWlsXzE5NDMzNDcxNTU2NDc0MApDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTgKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0CgpTblZ6ZENCeVpXTmxhWFpsWkNCMGFHVWdZMjl1Wm1seWJXRjBhVzl1SUhSb1lYUWdibVYwWW1WaGJuTWdkWE5sY3lCMGFHVWdZMnhwCkxDQnpieUIwYUdWeVpTQnphRzkxYkdRZ1ltVWdibThnYVhOemRXVWdkR2hsY21VdXdxQUtVbTlpWlhKMHdxQUtWbVZ5ZW05dVpHVnUKSUhaaGJtRm1JRzFwYW00Z1UyRnRjM1Z1WnlCSFlXeGhlSGt0YzIxaGNuUndhRzl1WlM0S0xTMHRMUzB0TFMwZ1QyOXljM0J5YjI1cgpaV3hwYW1zZ1ltVnlhV05vZENBdExTMHRMUzB0TFZaaGJqb2dVM1JsY0dobGJpQkRiMjV1YjJ4c2VTQThjM1JsY0dobGJpNWhiR0Z1CkxtTnZibTV2Ykd4NVFHZHRZV2xzTG1OdmJUNGdSR0YwZFcwNklERXpMVEE1TFRFM0lDQXhNRG93TlNBZ0tFZE5WQ3N3TVRvd01Da2cKUVdGdU9pQk5ZWFpsYmlCRVpYWmxiRzl3WlhKeklFeHBjM1FnUEdSbGRrQnRZWFpsYmk1aGNHRmphR1V1YjNKblBpQlBibVJsY25kbApjbkE2SUZKbE9pQmJWazlVUlYwZ1VtVnNaV0Z6WlNCQmNHRmphR1VnVFdGMlpXNGdNeTQxTGpFZ0NrOXVJREV6SUZObGNIUmxiV0psCmNpQXlNREUzSUdGMElEQXdPakkyTENCQmJtUmxjbk1nU0dGdGJXRnlJRHhoYm1SbGNuTkFhR0Z0YldGeUxtNWxkRDRnZDNKdmRHVTYKQ2dvK0lFOXVJRlIxWlN3Z1UyVndJREV5TENBeU1ERTNJR0YwSURnNk5UUWdVRTBzSUZOMFpYQm9aVzRnUTI5dWJtOXNiSGtnUEFvKwpJSE4wWlhCb1pXNHVZV3hoYmk1amIyNXViMnhzZVVCbmJXRnBiQzVqYjIwK0lIZHliM1JsT2dvK0NqNGdQaUJJWVhabElIZGxJR2R2CmRDQmhibmtnWm1WbFpHSmhZMnNnWm5KdmJTQjBhR1VnWlcxaVpXUmtaWElnYVc1MFpXZHlZWFJwYjI1eklIbGxkRDhLUGlBK0NqNEsKUGlCSklHaGhkbVZ1SjNRZ2FHVmhjbVFnWVc1NWRHaHBibWNnWm5KdmJTQjBhR1VnYlRKbElIQmxiM0JzWlM0Z1RXRjVZbVVnZDJVZwpibVZsWkNCMGJ5QndhVzVuSUhSb1pXMEtQaUJrYVhKbFkzUnNlUzRnU1NCallXNGdZMjl1ZEdGamRDQkdjbVZrSUVKeWFXTnZiaTRLClBnbytJQzlCYm1SbGNuTUtQZ28rQ2xCc1pXRnpaU0JrYnl3Z1lXeHpieUJwWmlCaGJubHZibVVnYUdGeklHRWdZMjl1ZEdGamRDQnAKYmlCdVpYUmlaV0Z1Y3lCdmNpQnBiblJsYkd4cGFpQmhibVFnWTI5MWJHUUtiR1YwSUhSb1pXMGdhMjV2ZHlCM1pTZGtJR3hwYTJVZwpaV2wwYUdWeUlHWmxaV1JpWVdOcklHOXlJQ0ozWlNkeVpTQnZheUJwWmlCTlRrY3ROakkzTlNCdFlXdGxjd3AwY205MVlteGxJR1p2CmNpQjFjeXdnWjI4Z1lXaGxZV1FnWVc1a0lISmxiR1ZoYzJVaUxpQkpKMlFnYkdsclpTQjBieUJqYkc5elpTQjBhR1VnZG05MFpTQnYKYmlCR2NtbGtZWGtLTVRNNk1EQWdWVlJETGdvPQoKLS0tLV9jb20uc2Ftc3VuZy5hbmRyb2lkLmVtYWlsXzE5NDMzNDcxNTU2NDc0MC0tCgoK